From 6f2571980c2688cbfd5ed0bf2a0cbf753d3352c6 Mon Sep 17 00:00:00 2001 From: ChristLZS <50512605+ChristLZS@users.noreply.github.com> Date: Tue, 12 Jul 2022 18:43:58 +0800 Subject: [PATCH 001/444] [client] Fixed a bug where service loops reconnection after disconnection.service is shut down and can not exit goroutine (#3012) Co-authored-by: lizhisheng --- client/service.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/service.go b/client/service.go index 30bd3f8f5bc..3a08d4e193b 100644 --- a/client/service.go +++ b/client/service.go @@ -198,6 +198,10 @@ func (svr *Service) keepControllerWorking() { } for { + if atomic.LoadUint32(&svr.exit) != 0 { + return + } + xl.Info("try to reconnect to server...") conn, session, err := svr.login() if err != nil { From 1bc899ec12cd9dae74f695e122c7ebebcb7a6dcb Mon Sep 17 00:00:00 2001 From: chenjiayao Date: Thu, 14 Jul 2022 15:31:32 +0800 Subject: [PATCH 002/444] [client] Remove redundant function parameters (#3016) --- client/event/event.go | 9 +-------- client/proxy/proxy_manager.go | 2 +- client/proxy/proxy_wrapper.go | 4 ++-- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/client/event/event.go b/client/event/event.go index f9718448823..eedeff5139f 100644 --- a/client/event/event.go +++ b/client/event/event.go @@ -6,18 +6,11 @@ import ( "github.com/fatedier/frp/pkg/msg" ) -type Type int - -const ( - EvStartProxy Type = iota - EvCloseProxy -) - var ( ErrPayloadType = errors.New("error payload type") ) -type Handler func(evType Type, payload interface{}) error +type Handler func(payload interface{}) error type StartProxyPayload struct { NewProxyMsg *msg.NewProxy diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index 98c17faa984..51a8e28ef9c 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -75,7 +75,7 @@ func (pm *Manager) HandleWorkConn(name string, workConn net.Conn, m *msg.StartWo } } -func (pm *Manager) HandleEvent(evType event.Type, payload interface{}) error { +func (pm *Manager) HandleEvent(payload interface{}) error { var m msg.Message switch e := payload.(type) { case *event.StartProxyPayload: diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index a6f0233bd3f..035926e3702 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -145,7 +145,7 @@ func (pw *Wrapper) Stop() { } func (pw *Wrapper) close() { - pw.handler(event.EvCloseProxy, &event.CloseProxyPayload{ + pw.handler(&event.CloseProxyPayload{ CloseProxyMsg: &msg.CloseProxy{ ProxyName: pw.Name, }, @@ -174,7 +174,7 @@ func (pw *Wrapper) checkWorker() { var newProxyMsg msg.NewProxy pw.Cfg.MarshalToMsg(&newProxyMsg) pw.lastSendStartMsg = now - pw.handler(event.EvStartProxy, &event.StartProxyPayload{ + pw.handler(&event.StartProxyPayload{ NewProxyMsg: &newProxyMsg, }) } From 3e721d122b2d5b33fdb90be279fcec2568ff14be Mon Sep 17 00:00:00 2001 From: Yonatan Koren Date: Tue, 16 Aug 2022 15:47:56 +0300 Subject: [PATCH 003/444] Update README.md (#3062) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 92c14933c24..3b3d0e8f056 100644 --- a/README.md +++ b/README.md @@ -656,7 +656,7 @@ openssl req -new -sha256 -key server.key \ -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com")) \ -out server.csr -openssl x509 -req -days 365 \ +openssl x509 -req -days 365 -sha256 \ -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \ -extfile <(printf "subjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com") \ -out server.crt @@ -671,7 +671,7 @@ openssl req -new -sha256 -key client.key \ -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:client.com,DNS:example.client.com")) \ -out client.csr -openssl x509 -req -days 365 \ +openssl x509 -req -days 365 -sha256 \ -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial \ -extfile <(printf "subjectAltName=DNS:client.com,DNS:example.client.com") \ -out client.crt From f4e4fbea62096710f1f228be46ca42f4fee54951 Mon Sep 17 00:00:00 2001 From: Dingli Zhang Date: Tue, 23 Aug 2022 10:10:04 +0800 Subject: [PATCH 004/444] Add support for riscv64 (#3071) --- .github/workflows/build-and-push-image.yml | 4 ++-- Makefile.cross-compiles | 2 +- package.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index b7f7318b62f..70ae951ac30 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -62,7 +62,7 @@ jobs: with: context: . file: ./dockerfiles/Dockerfile-for-frpc - platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x + platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x push: true tags: | ${{ env.TAG_FRPC }} @@ -73,7 +73,7 @@ jobs: with: context: . file: ./dockerfiles/Dockerfile-for-frps - platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x + platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x push: true tags: | ${{ env.TAG_FRPS }} diff --git a/Makefile.cross-compiles b/Makefile.cross-compiles index 9351924a922..06e10d7959a 100644 --- a/Makefile.cross-compiles +++ b/Makefile.cross-compiles @@ -2,7 +2,7 @@ export PATH := $(GOPATH)/bin:$(PATH) export GO111MODULE=on LDFLAGS := -s -w -os-archs=darwin:amd64 darwin:arm64 freebsd:386 freebsd:amd64 linux:386 linux:amd64 linux:arm linux:arm64 windows:386 windows:amd64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat +os-archs=darwin:amd64 darwin:arm64 freebsd:386 freebsd:amd64 linux:386 linux:amd64 linux:arm linux:arm64 windows:386 windows:amd64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 all: build diff --git a/package.sh b/package.sh index 2f9a0f205f4..1a63a4e8c30 100755 --- a/package.sh +++ b/package.sh @@ -15,7 +15,7 @@ rm -rf ./release/packages mkdir -p ./release/packages os_all='linux windows darwin freebsd' -arch_all='386 amd64 arm arm64 mips64 mips64le mips mipsle' +arch_all='386 amd64 arm arm64 mips64 mips64le mips mipsle riscv64' cd ./release From 9d077b02cfd6967d0f2aa06f5f65cc3239bbac3f Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 29 Aug 2022 01:02:53 +0800 Subject: [PATCH 005/444] lint by golangci-lint (#3080) --- .circleci/config.yml | 6 +- .github/workflows/golangci-lint.yml | 41 ++ .github/workflows/goreleaser.yml | 2 +- .golangci.yml | 141 +++++ client/admin.go | 8 +- client/admin_api.go | 12 +- client/control.go | 45 +- client/event/event.go | 4 +- client/health/health.go | 12 +- client/proxy/proxy.go | 68 ++- client/proxy/proxy_manager.go | 10 +- client/proxy/proxy_wrapper.go | 18 +- client/service.go | 22 +- client/visitor.go | 41 +- client/visitor_manager.go | 11 +- cmd/frpc/sub/http.go | 4 +- cmd/frpc/sub/reload.go | 4 +- cmd/frpc/sub/root.go | 9 +- cmd/frpc/sub/status.go | 6 +- cmd/frpc/sub/stcp.go | 4 +- cmd/frpc/sub/sudp.go | 4 +- cmd/frpc/sub/udp.go | 4 +- cmd/frpc/sub/verify.go | 4 +- cmd/frpc/sub/xtcp.go | 4 +- cmd/frps/root.go | 11 +- cmd/frps/verify.go | 4 +- dockerfiles/Dockerfile-for-frpc | 2 +- dockerfiles/Dockerfile-for-frps | 2 +- go.mod | 43 +- go.sum | 2 - hack/run-e2e.sh | 2 +- pkg/auth/oidc.go | 6 +- pkg/config/client.go | 20 +- pkg/config/client_test.go | 8 +- pkg/config/parse.go | 2 +- pkg/config/proxy.go | 8 +- pkg/config/proxy_test.go | 6 +- pkg/config/server.go | 9 +- pkg/config/server_test.go | 12 +- pkg/config/types.go | 7 +- pkg/config/value.go | 4 +- pkg/config/visitor.go | 5 +- pkg/config/visitor_test.go | 4 +- pkg/consts/consts.go | 32 +- pkg/metrics/aggregate/server.go | 2 +- pkg/metrics/mem/server.go | 9 +- pkg/metrics/metrics.go | 6 +- pkg/metrics/prometheus/server.go | 4 +- pkg/msg/ctl.go | 4 +- pkg/msg/msg.go | 48 +- pkg/nathole/nathole.go | 18 +- pkg/plugin/client/http2https.go | 9 +- pkg/plugin/client/http_proxy.go | 22 +- pkg/plugin/client/https2http.go | 6 +- pkg/plugin/client/https2https.go | 6 +- pkg/plugin/client/socks5.go | 9 +- pkg/plugin/client/static_file.go | 10 +- pkg/plugin/client/unix_domain_socket.go | 4 +- pkg/plugin/server/http.go | 4 +- pkg/plugin/server/manager.go | 3 +- pkg/proto/udp/udp.go | 12 +- pkg/transport/tls.go | 6 +- pkg/util/log/log.go | 10 +- pkg/util/net/kcp.go | 4 +- pkg/util/net/tls.go | 16 +- pkg/util/net/udp.go | 9 +- pkg/util/net/websocket.go | 11 +- pkg/util/tcpmux/httpconnect.go | 17 +- pkg/util/util/http.go | 6 +- pkg/util/util/util.go | 9 +- pkg/util/version/version.go | 2 +- pkg/util/vhost/http.go | 38 +- pkg/util/vhost/resource.go | 4 +- pkg/util/vhost/reverseproxy.go | 636 -------------------- pkg/util/vhost/router.go | 6 +- pkg/util/vhost/vhost.go | 42 +- server/control.go | 25 +- server/dashboard.go | 10 +- server/dashboard_api.go | 14 +- server/group/http.go | 4 +- server/group/tcp.go | 9 +- server/group/tcpmux.go | 7 +- server/proxy/http.go | 6 +- server/proxy/https.go | 2 +- server/proxy/proxy.go | 8 +- server/proxy/udp.go | 16 +- server/proxy/xtcp.go | 6 +- server/service.go | 52 +- server/visitor/visitor.go | 8 +- test/e2e/basic/basic.go | 28 +- test/e2e/basic/client.go | 15 +- test/e2e/basic/client_server.go | 40 +- test/e2e/basic/cmd.go | 24 +- test/e2e/basic/config.go | 14 +- test/e2e/basic/http.go | 28 +- test/e2e/basic/server.go | 14 +- test/e2e/e2e.go | 6 +- test/e2e/e2e_test.go | 7 +- test/e2e/examples.go | 10 +- test/e2e/features/bandwidth_limit.go | 10 +- test/e2e/features/chaos.go | 12 +- test/e2e/features/group.go | 16 +- test/e2e/features/heartbeat.go | 8 +- test/e2e/features/monitor.go | 8 +- test/e2e/features/real_ip.go | 21 +- test/e2e/framework/cleanup.go | 7 +- test/e2e/framework/framework.go | 15 +- test/e2e/framework/log.go | 13 +- test/e2e/framework/mockservers.go | 8 +- test/e2e/framework/process.go | 14 +- test/e2e/framework/request.go | 2 +- test/e2e/framework/test_context.go | 1 - test/e2e/mock/server/httpserver/server.go | 20 +- test/e2e/mock/server/streamserver/server.go | 2 +- test/e2e/pkg/cert/generator.go | 4 +- test/e2e/pkg/cert/selfsigned.go | 2 +- test/e2e/pkg/port/util.go | 13 +- test/e2e/pkg/request/request.go | 7 +- test/e2e/pkg/rpc/rpc.go | 5 +- test/e2e/plugin/client.go | 26 +- test/e2e/plugin/server.go | 38 +- test/e2e/plugin/utils.go | 8 +- 122 files changed, 947 insertions(+), 1331 deletions(-) create mode 100644 .github/workflows/golangci-lint.yml create mode 100644 .golangci.yml delete mode 100644 pkg/util/vhost/reverseproxy.go diff --git a/.circleci/config.yml b/.circleci/config.yml index f8623698ae3..7499579a8d9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,14 +2,16 @@ version: 2 jobs: go-version-latest: docker: - - image: cimg/go:1.18-node + - image: cimg/go:1.19-node + resource_class: large steps: - checkout - run: make - run: make alltest go-version-last: docker: - - image: cimg/go:1.17-node + - image: cimg/go:1.18-node + resource_class: large steps: - checkout - run: make diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml new file mode 100644 index 00000000000..c9051f38ac6 --- /dev/null +++ b/.github/workflows/golangci-lint.yml @@ -0,0 +1,41 @@ +name: golangci-lint +on: + push: + branches: + - master + - dev + pull_request: +permissions: + contents: read + # Optional: allow read access to pull request. Use with `only-new-issues` option. + pull-requests: read +jobs: + golangci: + name: lint + runs-on: ubuntu-latest + steps: + - uses: actions/setup-go@v3 + with: + go-version: 1.19 + - uses: actions/checkout@v3 + - name: golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version + version: v1.49.0 + + # Optional: golangci-lint command line arguments. + # args: --issues-exit-code=0 + + # Optional: show only new issues if it's a pull request. The default value is `false`. + # only-new-issues: true + + # Optional: if set to true then the all caching functionality will be complete disabled, + # takes precedence over all other caching options. + # skip-cache: true + + # Optional: if set to true then the action don't cache or restore ~/go/pkg. + # skip-pkg-cache: true + + # Optional: if set to true then the action don't cache or restore ~/.cache/go-build. + # skip-build-cache: true diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 40914a46725..25bd76152a0 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -15,7 +15,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.18 + go-version: 1.19 - run: | # https://github.com/actions/setup-go/issues/107 diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000000..aefd468847f --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,141 @@ +service: + # When updating this, also update the version stored in docker/build-tools/Dockerfile in the istio/tools repo. + golangci-lint-version: 1.49.x # use the fixed version to not introduce new linters unexpectedly + +run: + concurrency: 4 + # timeout for analysis, e.g. 30s, 5m, default is 1m + deadline: 20m + build-tags: + - integ + - integfuzz + # which dirs to skip: they won't be analyzed; + # can use regexp here: generated.*, regexp is applied on full path; + # default value is empty list, but next dirs are always skipped independently + # from this option's value: + # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ + skip-dirs: + - genfiles$ + - vendor$ + - bin$ + + # which files to skip: they will be analyzed, but issues from them + # won't be reported. Default value is empty list, but there is + # no need to include all autogenerated files, we confidently recognize + # autogenerated files. If it's not please let us know. + skip-files: + - ".*\\.pb\\.go" + - ".*\\.gen\\.go" + +linters: + disable-all: true + enable: + - unused + - errcheck + - exportloopref + - gocritic + - gofumpt + - goimports + - revive + - gosimple + - govet + - ineffassign + - lll + - misspell + - staticcheck + - stylecheck + - typecheck + - unconvert + - unparam + - gci + - bodyclose + - gosec + - asciicheck + - prealloc + - predeclared + - makezero + fast: false + +linters-settings: + errcheck: + # report about not checking of errors in type assetions: `a := b.(MyStruct)`; + # default is false: such cases aren't reported by default. + check-type-assertions: false + + # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; + # default is false: such cases aren't reported by default. + check-blank: false + govet: + # report about shadowed variables + check-shadowing: false + maligned: + # print struct with more effective memory layout or not, false by default + suggest-new: true + misspell: + # Correct spellings using locale preferences for US or UK. + # Default is to use a neutral variety of English. + # Setting locale to US will correct the British spelling of 'colour' to 'color'. + locale: US + ignore-words: + - cancelled + - marshalled + lll: + # max line length, lines longer will be reported. Default is 120. + # '\t' is counted as 1 character by default, and can be changed with the tab-width option + line-length: 160 + # tab width in spaces. Default to 1. + tab-width: 1 + gocritic: + disabled-checks: + - exitAfterDefer + unused: + check-exported: false + unparam: + # Inspect exported functions, default is false. Set to true if no external program/library imports your code. + # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: + # if it's called for subdir of a project it can't find external interfaces. All text editor integrations + # with golangci-lint call it on a directory with the changed file. + check-exported: false + gci: + sections: + - standard + - default + - prefix(github.com/fatedier/frp/) + gosec: + severity: "low" + confidence: "low" + excludes: + - G102 + - G112 + - G306 + - G401 + - G402 + - G404 + - G501 + +issues: + # List of regexps of issue texts to exclude, empty list by default. + # But independently from this option we use default exclude patterns, + # it can be disabled by `exclude-use-default: false`. To list all + # excluded by default patterns execute `golangci-lint run --help` + # exclude: + # - composite literal uses unkeyed fields + + exclude-rules: + # Exclude some linters from running on test files. + - path: _test\.go$|^tests/|^samples/ + linters: + - errcheck + - maligned + + # Independently from option `exclude` we use default exclude patterns, + # it can be disabled by this option. To list all + # excluded by default patterns execute `golangci-lint run --help`. + # Default value for this option is true. + exclude-use-default: true + + # Maximum issues count per one linter. Set to 0 to disable. Default is 50. + max-per-linter: 0 + + # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. + max-same-issues: 0 diff --git a/client/admin.go b/client/admin.go index 6a6ceecb7c4..f96e1bc1e5a 100644 --- a/client/admin.go +++ b/client/admin.go @@ -20,10 +20,10 @@ import ( "net/http/pprof" "time" + "github.com/gorilla/mux" + "github.com/fatedier/frp/assets" frpNet "github.com/fatedier/frp/pkg/util/net" - - "github.com/gorilla/mux" ) var ( @@ -77,6 +77,8 @@ func (svr *Service) RunAdminServer(address string) (err error) { return err } - go server.Serve(ln) + go func() { + _ = server.Serve(ln) + }() return } diff --git a/client/admin_api.go b/client/admin_api.go index e434fcb19a7..545ba7fc952 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -49,7 +49,7 @@ func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { log.Info("api response [/api/reload], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { - w.Write([]byte(res.Msg)) + _, _ = w.Write([]byte(res.Msg)) } }() @@ -68,7 +68,6 @@ func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { return } log.Info("success reload conf") - return } type StatusResp struct { @@ -173,7 +172,7 @@ func (svr *Service) apiStatus(w http.ResponseWriter, r *http.Request) { defer func() { log.Info("Http response [/api/status]") buf, _ = json.Marshal(&res) - w.Write(buf) + _, _ = w.Write(buf) }() ps := svr.ctl.pm.GetAllProxyStatus() @@ -202,7 +201,6 @@ func (svr *Service) apiStatus(w http.ResponseWriter, r *http.Request) { sort.Sort(ByProxyStatusResp(res.STCP)) sort.Sort(ByProxyStatusResp(res.XTCP)) sort.Sort(ByProxyStatusResp(res.SUDP)) - return } // GET api/config @@ -214,7 +212,7 @@ func (svr *Service) apiGetConfig(w http.ResponseWriter, r *http.Request) { log.Info("Http get response [/api/config], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { - w.Write([]byte(res.Msg)) + _, _ = w.Write([]byte(res.Msg)) } }() @@ -254,7 +252,7 @@ func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { log.Info("Http put response [/api/config], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { - w.Write([]byte(res.Msg)) + _, _ = w.Write([]byte(res.Msg)) } }() @@ -315,7 +313,7 @@ func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { } content = strings.Join(newRows, "\n") - err = os.WriteFile(svr.cfgFile, []byte(content), 0644) + err = os.WriteFile(svr.cfgFile, []byte(content), 0o644) if err != nil { res.Code = 500 res.Msg = fmt.Sprintf("write content to frpc config file error: %v", err) diff --git a/client/control.go b/client/control.go index ef9a766fcda..db8c019a7a9 100644 --- a/client/control.go +++ b/client/control.go @@ -21,9 +21,13 @@ import ( "net" "runtime/debug" "strconv" - "sync" "time" + "github.com/fatedier/golib/control/shutdown" + "github.com/fatedier/golib/crypto" + libdial "github.com/fatedier/golib/net/dial" + fmux "github.com/hashicorp/yamux" + "github.com/fatedier/frp/client/proxy" "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" @@ -31,11 +35,6 @@ import ( "github.com/fatedier/frp/pkg/transport" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" - - "github.com/fatedier/golib/control/shutdown" - "github.com/fatedier/golib/crypto" - libdial "github.com/fatedier/golib/net/dial" - fmux "github.com/hashicorp/yamux" ) type Control struct { @@ -79,8 +78,6 @@ type Control struct { // The UDP port that the server is listening on serverUDPPort int - mu sync.RWMutex - xl *xlog.Logger // service context @@ -95,8 +92,8 @@ func NewControl(ctx context.Context, runID string, conn net.Conn, session *fmux. pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]config.VisitorConf, serverUDPPort int, - authSetter auth.Setter) *Control { - + authSetter auth.Setter, +) *Control { // new xlog instance ctl := &Control{ runID: runID, @@ -131,7 +128,6 @@ func (ctl *Control) Run() { // start all visitors go ctl.vm.Run() - return } func (ctl *Control) HandleReqWorkConn(inMsg *msg.ReqWorkConn) { @@ -400,24 +396,21 @@ func (ctl *Control) worker() { go ctl.reader() go ctl.writer() - select { - case <-ctl.closedCh: - // close related channels and wait until other goroutines done - close(ctl.readCh) - ctl.readerShutdown.WaitDone() - ctl.msgHandlerShutdown.WaitDone() + <-ctl.closedCh + // close related channels and wait until other goroutines done + close(ctl.readCh) + ctl.readerShutdown.WaitDone() + ctl.msgHandlerShutdown.WaitDone() - close(ctl.sendCh) - ctl.writerShutdown.WaitDone() + close(ctl.sendCh) + ctl.writerShutdown.WaitDone() - ctl.pm.Close() - ctl.vm.Close() + ctl.pm.Close() + ctl.vm.Close() - close(ctl.closedDoneCh) - if ctl.session != nil { - ctl.session.Close() - } - return + close(ctl.closedDoneCh) + if ctl.session != nil { + ctl.session.Close() } } diff --git a/client/event/event.go b/client/event/event.go index eedeff5139f..bf7090d9a30 100644 --- a/client/event/event.go +++ b/client/event/event.go @@ -6,9 +6,7 @@ import ( "github.com/fatedier/frp/pkg/msg" ) -var ( - ErrPayloadType = errors.New("error payload type") -) +var ErrPayloadType = errors.New("error payload type") type Handler func(payload interface{}) error diff --git a/client/health/health.go b/client/health/health.go index 829bee3df9f..0ee3d04ac9c 100644 --- a/client/health/health.go +++ b/client/health/health.go @@ -26,9 +26,7 @@ import ( "github.com/fatedier/frp/pkg/util/xlog" ) -var ( - ErrHealthCheckType = errors.New("error health check type") -) +var ErrHealthCheckType = errors.New("error health check type") type Monitor struct { checkType string @@ -54,8 +52,8 @@ type Monitor struct { func NewMonitor(ctx context.Context, checkType string, intervalS int, timeoutS int, maxFailedTimes int, addr string, url string, - statusNormalFn func(), statusFailedFn func()) *Monitor { - + statusNormalFn func(), statusFailedFn func(), +) *Monitor { if intervalS <= 0 { intervalS = 10 } @@ -152,7 +150,7 @@ func (monitor *Monitor) doTCPCheck(ctx context.Context) error { } func (monitor *Monitor) doHTTPCheck(ctx context.Context) error { - req, err := http.NewRequest("GET", monitor.url, nil) + req, err := http.NewRequestWithContext(ctx, "GET", monitor.url, nil) if err != nil { return err } @@ -161,7 +159,7 @@ func (monitor *Monitor) doHTTPCheck(ctx context.Context) error { return err } defer resp.Body.Close() - io.Copy(io.Discard, resp.Body) + _, _ = io.Copy(io.Discard, resp.Body) if resp.StatusCode/100 != 2 { return fmt.Errorf("do http health check, StatusCode is [%d] not 2xx", resp.StatusCode) diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 340da950c30..158773bc007 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -24,14 +24,6 @@ import ( "sync" "time" - "github.com/fatedier/frp/pkg/config" - "github.com/fatedier/frp/pkg/msg" - plugin "github.com/fatedier/frp/pkg/plugin/client" - "github.com/fatedier/frp/pkg/proto/udp" - "github.com/fatedier/frp/pkg/util/limit" - frpNet "github.com/fatedier/frp/pkg/util/net" - "github.com/fatedier/frp/pkg/util/xlog" - "github.com/fatedier/golib/errors" frpIo "github.com/fatedier/golib/io" libdial "github.com/fatedier/golib/net/dial" @@ -39,6 +31,14 @@ import ( fmux "github.com/hashicorp/yamux" pp "github.com/pires/go-proxyproto" "golang.org/x/time/rate" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + plugin "github.com/fatedier/frp/pkg/plugin/client" + "github.com/fatedier/frp/pkg/proto/udp" + "github.com/fatedier/frp/pkg/util/limit" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/xlog" ) // Proxy defines how to handle work connections for different proxy type. @@ -322,7 +322,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { // Wait for client address at most 5 seconds. var natHoleRespMsg msg.NatHoleResp - clientConn.SetReadDeadline(time.Now().Add(5 * time.Second)) + _ = clientConn.SetReadDeadline(time.Now().Add(5 * time.Second)) buf := pool.GetBuf(1024) n, err := clientConn.Read(buf) @@ -335,8 +335,8 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { xl.Error("get natHoleRespMsg error: %v", err) return } - clientConn.SetReadDeadline(time.Time{}) - clientConn.Close() + _ = clientConn.SetReadDeadline(time.Time{}) + _ = clientConn.Close() if natHoleRespMsg.Error != "" { xl.Error("natHoleRespMsg get error info: %s", natHoleRespMsg.Error) @@ -357,10 +357,13 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { xl.Error("get natHoleResp visitor address error: %v", natHoleRespMsg.VisitorAddr) return } - pxy.sendDetectMsg(host, int(port), laddr, []byte(natHoleRespMsg.Sid)) + _ = pxy.sendDetectMsg(host, int(port), laddr, []byte(natHoleRespMsg.Sid)) xl.Trace("send all detect msg done") - msg.WriteMsg(conn, &msg.NatHoleClientDetectOK{}) + if err := msg.WriteMsg(conn, &msg.NatHoleClientDetectOK{}); err != nil { + xl.Error("write message error: %v", err) + return + } // Listen for clientConn's address and wait for visitor connection lConn, err := net.ListenUDP("udp", laddr) @@ -370,7 +373,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { } defer lConn.Close() - lConn.SetReadDeadline(time.Now().Add(8 * time.Second)) + _ = lConn.SetReadDeadline(time.Now().Add(8 * time.Second)) sidBuf := pool.GetBuf(1024) var uAddr *net.UDPAddr n, uAddr, err = lConn.ReadFromUDP(sidBuf) @@ -378,7 +381,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { xl.Warn("get sid from visitor error: %v", err) return } - lConn.SetReadDeadline(time.Time{}) + _ = lConn.SetReadDeadline(time.Time{}) if string(sidBuf[:n]) != natHoleRespMsg.Sid { xl.Warn("incorrect sid from visitor") return @@ -386,7 +389,10 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { pool.PutBuf(sidBuf) xl.Info("nat hole connection make success, sid [%s]", natHoleRespMsg.Sid) - lConn.WriteToUDP(sidBuf[:n], uAddr) + if _, err := lConn.WriteToUDP(sidBuf[:n], uAddr); err != nil { + xl.Error("write uaddr error: %v", err) + return + } kcpConn, err := frpNet.NewKCPConnFromUDP(lConn, false, uAddr.String()) if err != nil { @@ -424,12 +430,13 @@ func (pxy *XTCPProxy) sendDetectMsg(addr string, port int, laddr *net.UDPAddr, c return err } - //uConn := ipv4.NewConn(tConn) - //uConn.SetTTL(3) + // uConn := ipv4.NewConn(tConn) + // uConn.SetTTL(3) - tConn.Write(content) - tConn.Close() - return nil + if _, err := tConn.Write(content); err != nil { + return err + } + return tConn.Close() } // UDP @@ -539,7 +546,7 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { } } } - heartbeatFn := func(conn net.Conn, sendCh chan msg.Message) { + heartbeatFn := func(sendCh chan msg.Message) { var errRet error for { time.Sleep(time.Duration(30) * time.Second) @@ -554,7 +561,7 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { go workConnSenderFn(pxy.workConn, pxy.sendCh) go workConnReaderFn(pxy.workConn, pxy.readCh) - go heartbeatFn(pxy.workConn, pxy.sendCh) + go heartbeatFn(pxy.sendCh) udp.Forwarder(pxy.localAddr, pxy.readCh, pxy.sendCh, int(pxy.clientCfg.UDPPacketSize)) } @@ -685,7 +692,7 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { } } - heartbeatFn := func(conn net.Conn, sendCh chan msg.Message) { + heartbeatFn := func(sendCh chan msg.Message) { ticker := time.NewTicker(30 * time.Second) defer func() { ticker.Stop() @@ -711,14 +718,15 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { go workConnSenderFn(workConn, sendCh) go workConnReaderFn(workConn, readCh) - go heartbeatFn(workConn, sendCh) + go heartbeatFn(sendCh) udp.Forwarder(pxy.localAddr, readCh, sendCh, int(pxy.clientCfg.UDPPacketSize)) } // Common handler for tcp work connections. func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf, proxyPlugin plugin.Plugin, - baseInfo *config.BaseProxyConf, limiter *rate.Limiter, workConn net.Conn, encKey []byte, m *msg.StartWorkConn) { + baseInfo *config.BaseProxyConf, limiter *rate.Limiter, workConn net.Conn, encKey []byte, m *msg.StartWorkConn, +) { xl := xlog.FromContextSafe(ctx) var ( remote io.ReadWriteCloser @@ -773,7 +781,7 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf } buf := bytes.NewBuffer(nil) - h.WriteTo(buf) + _, _ = h.WriteTo(buf) extraInfo = buf.Bytes() } } @@ -800,7 +808,11 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf localConn.RemoteAddr().String(), workConn.LocalAddr().String(), workConn.RemoteAddr().String()) if len(extraInfo) > 0 { - localConn.Write(extraInfo) + if _, err := localConn.Write(extraInfo); err != nil { + workConn.Close() + xl.Error("write extraInfo to local conn error: %v", err) + return + } } frpIo.Join(localConn, remote) diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index 51a8e28ef9c..563531e81df 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -6,12 +6,12 @@ import ( "net" "sync" + "github.com/fatedier/golib/errors" + "github.com/fatedier/frp/client/event" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/xlog" - - "github.com/fatedier/golib/errors" ) type Manager struct { @@ -113,10 +113,8 @@ func (pm *Manager) Reload(pxyCfgs map[string]config.ProxyConf) { cfg, ok := pxyCfgs[name] if !ok { del = true - } else { - if !pxy.Cfg.Compare(cfg) { - del = true - } + } else if !pxy.Cfg.Compare(cfg) { + del = true } if del { diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index 035926e3702..af217f06d1b 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -8,13 +8,13 @@ import ( "sync/atomic" "time" + "github.com/fatedier/golib/errors" + "github.com/fatedier/frp/client/event" "github.com/fatedier/frp/client/health" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/xlog" - - "github.com/fatedier/golib/errors" ) const ( @@ -27,9 +27,9 @@ const ( ) var ( - statusCheckInterval time.Duration = 3 * time.Second - waitResponseTimeout = 20 * time.Second - startErrTimeout = 30 * time.Second + statusCheckInterval = 3 * time.Second + waitResponseTimeout = 20 * time.Second + startErrTimeout = 30 * time.Second ) type WorkingStatus struct { @@ -145,7 +145,7 @@ func (pw *Wrapper) Stop() { } func (pw *Wrapper) close() { - pw.handler(&event.CloseProxyPayload{ + _ = pw.handler(&event.CloseProxyPayload{ CloseProxyMsg: &msg.CloseProxy{ ProxyName: pw.Name, }, @@ -174,7 +174,7 @@ func (pw *Wrapper) checkWorker() { var newProxyMsg msg.NewProxy pw.Cfg.MarshalToMsg(&newProxyMsg) pw.lastSendStartMsg = now - pw.handler(&event.StartProxyPayload{ + _ = pw.handler(&event.StartProxyPayload{ NewProxyMsg: &newProxyMsg, }) } @@ -201,7 +201,7 @@ func (pw *Wrapper) checkWorker() { func (pw *Wrapper) statusNormalCallback() { xl := pw.xl atomic.StoreUint32(&pw.health, 0) - errors.PanicToError(func() { + _ = errors.PanicToError(func() { select { case pw.healthNotifyCh <- struct{}{}: default: @@ -213,7 +213,7 @@ func (pw *Wrapper) statusNormalCallback() { func (pw *Wrapper) statusFailedCallback() { xl := pw.xl atomic.StoreUint32(&pw.health, 1) - errors.PanicToError(func() { + _ = errors.PanicToError(func() { select { case pw.healthNotifyCh <- struct{}{}: default: diff --git a/client/service.go b/client/service.go index 3a08d4e193b..375587676a3 100644 --- a/client/service.go +++ b/client/service.go @@ -28,6 +28,10 @@ import ( "sync/atomic" "time" + "github.com/fatedier/golib/crypto" + libdial "github.com/fatedier/golib/net/dial" + fmux "github.com/hashicorp/yamux" + "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" @@ -38,10 +42,6 @@ import ( "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/pkg/util/xlog" - "github.com/fatedier/golib/crypto" - libdial "github.com/fatedier/golib/net/dial" - - fmux "github.com/hashicorp/yamux" ) func init() { @@ -81,8 +81,12 @@ type Service struct { cancel context.CancelFunc } -func NewService(cfg config.ClientCommonConf, pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]config.VisitorConf, cfgFile string) (svr *Service, err error) { - +func NewService( + cfg config.ClientCommonConf, + pxyCfgs map[string]config.ProxyConf, + visitorCfgs map[string]config.VisitorConf, + cfgFile string, +) (svr *Service, err error) { ctx, cancel := context.WithCancel(context.Background()) svr = &Service{ authSetter: auth.NewAuthSetter(cfg.ClientConfig), @@ -208,7 +212,7 @@ func (svr *Service) keepControllerWorking() { xl.Warn("reconnect to server error: %v, wait %v for another retry", err, delayTime) util.RandomSleep(delayTime, 0.9, 1.1) - delayTime = delayTime * 2 + delayTime *= 2 if delayTime > maxDelayTime { delayTime = maxDelayTime } @@ -333,11 +337,11 @@ func (svr *Service) login() (conn net.Conn, session *fmux.Session, err error) { } var loginRespMsg msg.LoginResp - conn.SetReadDeadline(time.Now().Add(10 * time.Second)) + _ = conn.SetReadDeadline(time.Now().Add(10 * time.Second)) if err = msg.ReadMsgInto(conn, &loginRespMsg); err != nil { return } - conn.SetReadDeadline(time.Time{}) + _ = conn.SetReadDeadline(time.Time{}) if loginRespMsg.Error != "" { err = fmt.Errorf("%s", loginRespMsg.Error) diff --git a/client/visitor.go b/client/visitor.go index ba1cd7cb98b..1d7386f70db 100644 --- a/client/visitor.go +++ b/client/visitor.go @@ -24,17 +24,17 @@ import ( "sync" "time" + "github.com/fatedier/golib/errors" + frpIo "github.com/fatedier/golib/io" + "github.com/fatedier/golib/pool" + fmux "github.com/hashicorp/yamux" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/xlog" - - "github.com/fatedier/golib/errors" - frpIo "github.com/fatedier/golib/io" - "github.com/fatedier/golib/pool" - fmux "github.com/hashicorp/yamux" ) // Visitor is used for forward traffics from local port tot remote service. @@ -71,9 +71,8 @@ func NewVisitor(ctx context.Context, ctl *Control, cfg config.VisitorConf) (visi } type BaseVisitor struct { - ctl *Control - l net.Listener - closed bool + ctl *Control + l net.Listener mu sync.RWMutex ctx context.Context @@ -138,13 +137,13 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { } var newVisitorConnRespMsg msg.NewVisitorConnResp - visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) + _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) if err != nil { xl.Warn("get newVisitorConnRespMsg error: %v", err) return } - visitorConn.SetReadDeadline(time.Time{}) + _ = visitorConn.SetReadDeadline(time.Time{}) if newVisitorConnRespMsg.Error != "" { xl.Warn("start new visitor connection error: %s", newVisitorConnRespMsg.Error) @@ -239,7 +238,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { // Wait for client address at most 10 seconds. var natHoleRespMsg msg.NatHoleResp - visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) + _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) buf := pool.GetBuf(1024) n, err := visitorConn.Read(buf) if err != nil { @@ -252,7 +251,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { xl.Warn("get natHoleRespMsg error: %v", err) return } - visitorConn.SetReadDeadline(time.Time{}) + _ = visitorConn.SetReadDeadline(time.Time{}) pool.PutBuf(buf) if natHoleRespMsg.Error != "" { @@ -279,17 +278,20 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } defer lConn.Close() - lConn.Write([]byte(natHoleRespMsg.Sid)) + if _, err := lConn.Write([]byte(natHoleRespMsg.Sid)); err != nil { + xl.Error("write sid error: %v", err) + return + } // read ack sid from client sidBuf := pool.GetBuf(1024) - lConn.SetReadDeadline(time.Now().Add(8 * time.Second)) + _ = lConn.SetReadDeadline(time.Now().Add(8 * time.Second)) n, err = lConn.Read(sidBuf) if err != nil { xl.Warn("get sid from client error: %v", err) return } - lConn.SetReadDeadline(time.Time{}) + _ = lConn.SetReadDeadline(time.Time{}) if string(sidBuf[:n]) != natHoleRespMsg.Sid { xl.Warn("incorrect sid from client") return @@ -411,7 +413,6 @@ func (sv *SUDPVisitor) dispatcher() { default: } } - } func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { @@ -437,13 +438,13 @@ func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { ) // frpc will send heartbeat in workConn to frpc visitor for keeping alive - conn.SetReadDeadline(time.Now().Add(60 * time.Second)) + _ = conn.SetReadDeadline(time.Now().Add(60 * time.Second)) if rawMsg, errRet = msg.ReadMsg(conn); errRet != nil { xl.Warn("read from workconn for user udp conn error: %v", errRet) return } - conn.SetReadDeadline(time.Time{}) + _ = conn.SetReadDeadline(time.Time{}) switch m := rawMsg.(type) { case *msg.Ping: xl.Debug("frpc visitor get ping message from frpc") @@ -523,12 +524,12 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { } var newVisitorConnRespMsg msg.NewVisitorConnResp - visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) + _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) if err != nil { return nil, fmt.Errorf("frpc read newVisitorConnRespMsg error: %v", err) } - visitorConn.SetReadDeadline(time.Time{}) + _ = visitorConn.SetReadDeadline(time.Time{}) if newVisitorConnRespMsg.Error != "" { return nil, fmt.Errorf("start new visitor connection error: %s", newVisitorConnRespMsg.Error) diff --git a/client/visitor_manager.go b/client/visitor_manager.go index 642b21e8f2f..8df47150937 100644 --- a/client/visitor_manager.go +++ b/client/visitor_manager.go @@ -65,7 +65,7 @@ func (vm *VisitorManager) Run() { name := cfg.GetBaseInfo().ProxyName if _, exist := vm.visitors[name]; !exist { xl.Info("try to start visitor [%s]", name) - vm.startVisitor(cfg) + _ = vm.startVisitor(cfg) } } vm.mu.Unlock() @@ -99,10 +99,8 @@ func (vm *VisitorManager) Reload(cfgs map[string]config.VisitorConf) { cfg, ok := cfgs[name] if !ok { del = true - } else { - if !oldCfg.Compare(cfg) { - del = true - } + } else if !oldCfg.Compare(cfg) { + del = true } if del { @@ -123,13 +121,12 @@ func (vm *VisitorManager) Reload(cfgs map[string]config.VisitorConf) { if _, ok := vm.cfgs[name]; !ok { vm.cfgs[name] = cfg addNames = append(addNames, name) - vm.startVisitor(cfg) + _ = vm.startVisitor(cfg) } } if len(addNames) > 0 { xl.Info("visitor added: %v", addNames) } - return } func (vm *VisitorManager) Close() { diff --git a/cmd/frpc/sub/http.go b/cmd/frpc/sub/http.go index 2e19fce4f67..4e193b7e2b5 100644 --- a/cmd/frpc/sub/http.go +++ b/cmd/frpc/sub/http.go @@ -19,10 +19,10 @@ import ( "os" "strings" + "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" - - "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/reload.go b/cmd/frpc/sub/reload.go index c625daedb43..258317e7d6a 100644 --- a/cmd/frpc/sub/reload.go +++ b/cmd/frpc/sub/reload.go @@ -22,9 +22,9 @@ import ( "os" "strings" - "github.com/fatedier/frp/pkg/config" - "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config" ) func init() { diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index f8d7eb17708..cea8ecc6876 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -26,13 +26,13 @@ import ( "syscall" "time" + "github.com/spf13/cobra" + "github.com/fatedier/frp/client" "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" - - "github.com/spf13/cobra" ) const ( @@ -107,7 +107,7 @@ var rootCmd = &cobra.Command{ // Note that it's only designed for testing. It's not guaranteed to be stable. if cfgDir != "" { var wg sync.WaitGroup - filepath.WalkDir(cfgDir, func(path string, d fs.DirEntry, err error) error { + _ = filepath.WalkDir(cfgDir, func(path string, d fs.DirEntry, err error) error { if err != nil { return nil } @@ -183,7 +183,7 @@ func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) { cfg.Complete() if err = cfg.Validate(); err != nil { - err = fmt.Errorf("Parse config error: %v", err) + err = fmt.Errorf("parse config error: %v", err) return } return @@ -203,7 +203,6 @@ func startService( visitorCfgs map[string]config.VisitorConf, cfgFile string, ) (err error) { - log.InitLog(cfg.LogWay, cfg.LogFile, cfg.LogLevel, cfg.LogMaxDays, cfg.DisableLogColor) diff --git a/cmd/frpc/sub/status.go b/cmd/frpc/sub/status.go index 52c1c1954cf..c9a6a98dec5 100644 --- a/cmd/frpc/sub/status.go +++ b/cmd/frpc/sub/status.go @@ -23,11 +23,11 @@ import ( "os" "strings" - "github.com/fatedier/frp/client" - "github.com/fatedier/frp/pkg/config" - "github.com/rodaine/table" "github.com/spf13/cobra" + + "github.com/fatedier/frp/client" + "github.com/fatedier/frp/pkg/config" ) func init() { diff --git a/cmd/frpc/sub/stcp.go b/cmd/frpc/sub/stcp.go index 45f01e59872..989387bb795 100644 --- a/cmd/frpc/sub/stcp.go +++ b/cmd/frpc/sub/stcp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" + "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" - - "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/sudp.go b/cmd/frpc/sub/sudp.go index 45c5ad61b2d..c781223ddb5 100644 --- a/cmd/frpc/sub/sudp.go +++ b/cmd/frpc/sub/sudp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" + "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" - - "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/udp.go b/cmd/frpc/sub/udp.go index 2ce4327e4dd..984ad068d95 100644 --- a/cmd/frpc/sub/udp.go +++ b/cmd/frpc/sub/udp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" + "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" - - "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/verify.go b/cmd/frpc/sub/verify.go index 76872b90b82..c86b1e82b9c 100644 --- a/cmd/frpc/sub/verify.go +++ b/cmd/frpc/sub/verify.go @@ -18,9 +18,9 @@ import ( "fmt" "os" - "github.com/fatedier/frp/pkg/config" - "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config" ) func init() { diff --git a/cmd/frpc/sub/xtcp.go b/cmd/frpc/sub/xtcp.go index 6c6c7d84bb0..069cce7e161 100644 --- a/cmd/frpc/sub/xtcp.go +++ b/cmd/frpc/sub/xtcp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" + "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" - - "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frps/root.go b/cmd/frps/root.go index d31944ac409..955c90fb730 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -18,14 +18,14 @@ import ( "fmt" "os" + "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/server" - - "github.com/spf13/cobra" ) const ( @@ -50,16 +50,13 @@ var ( dashboardUser string dashboardPwd string enablePrometheus bool - assetsDir string logFile string logLevel string logMaxDays int64 disableLogColor bool token string subDomainHost string - tcpMux bool allowPorts string - maxPoolCount int64 maxPortsPerClient int64 tlsOnly bool dashboardTLSMode bool @@ -151,7 +148,7 @@ func parseServerCommonCfg(fileType int, source []byte) (cfg config.ServerCommonC cfg.Complete() err = cfg.Validate() if err != nil { - err = fmt.Errorf("Parse config error: %v", err) + err = fmt.Errorf("parse config error: %v", err) return } return @@ -189,7 +186,7 @@ func parseServerCommonCfgFromCmd() (cfg config.ServerCommonConf, err error) { // e.g. 1000-2000,2001,2002,3000-4000 ports, errRet := util.ParseRangeNumbers(allowPorts) if errRet != nil { - err = fmt.Errorf("Parse conf error: allow_ports: %v", errRet) + err = fmt.Errorf("parse conf error: allow_ports: %v", errRet) return } diff --git a/cmd/frps/verify.go b/cmd/frps/verify.go index 35b2acdf181..42f2ca74b08 100644 --- a/cmd/frps/verify.go +++ b/cmd/frps/verify.go @@ -18,9 +18,9 @@ import ( "fmt" "os" - "github.com/fatedier/frp/pkg/config" - "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config" ) func init() { diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index ece950f2190..b749be0704b 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,4 +1,4 @@ -FROM golang:1.18 AS building +FROM golang:1.19 AS building COPY . /building WORKDIR /building diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps index d8ab8247a3a..cd716123fb1 100644 --- a/dockerfiles/Dockerfile-for-frps +++ b/dockerfiles/Dockerfile-for-frps @@ -1,4 +1,4 @@ -FROM golang:1.18 AS building +FROM golang:1.19 AS building COPY . /building WORKDIR /building diff --git a/go.mod b/go.mod index 0a92dfb5a65..02f2b1f228b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fatedier/frp -go 1.16 +go 1.18 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 @@ -13,21 +13,54 @@ require ( github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.4.2 github.com/hashicorp/yamux v0.0.0-20210707203944-259a57b3608c - github.com/leodido/go-urn v1.2.1 // indirect github.com/onsi/ginkgo v1.16.4 github.com/onsi/gomega v1.13.0 github.com/pires/go-proxyproto v0.6.2 - github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect github.com/prometheus/client_golang v1.11.0 github.com/rodaine/table v1.0.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.7.0 golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 // indirect golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba gopkg.in/ini.v1 v1.62.0 - gopkg.in/square/go-jose.v2 v2.4.1 // indirect k8s.io/apimachinery v0.21.2 k8s.io/client-go v0.21.2 ) + +require ( + github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/go-playground/locales v0.13.0 // indirect + github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/snappy v0.0.1 // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/klauspost/cpuid/v2 v2.0.6 // indirect + github.com/klauspost/reedsolomon v1.9.15 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect + github.com/prometheus/client_model v0.2.0 // indirect + github.com/prometheus/common v0.26.0 // indirect + github.com/prometheus/procfs v0.6.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect + github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect + github.com/tjfoc/gmsm v1.4.1 // indirect + golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 // indirect + golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 // indirect + golang.org/x/text v0.3.6 // indirect + google.golang.org/appengine v1.6.5 // indirect + google.golang.org/protobuf v1.26.0 // indirect + gopkg.in/square/go-jose.v2 v2.4.1 // indirect + gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect +) diff --git a/go.sum b/go.sum index 433f03e281a..7a0d85154df 100644 --- a/go.sum +++ b/go.sum @@ -55,7 +55,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -383,7 +382,6 @@ github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVc github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= -github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37/go.mod h1:HpMP7DB2CyokmAh4lp0EQnnWhmycP/TvwBGzvuie+H0= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= diff --git a/hack/run-e2e.sh b/hack/run-e2e.sh index ee396652215..d8cfb052b32 100755 --- a/hack/run-e2e.sh +++ b/hack/run-e2e.sh @@ -5,7 +5,7 @@ ROOT=$(unset CDPATH && cd $(dirname "${BASH_SOURCE[0]}")/.. && pwd) which ginkgo &> /dev/null if [ $? -ne 0 ]; then echo "ginkgo not found, try to install..." - go install github.com/onsi/ginkgo/ginkgo@latest + go install github.com/onsi/ginkgo/ginkgo@v1.16.5 fi debug=false diff --git a/pkg/auth/oidc.go b/pkg/auth/oidc.go index 8a9f3404bf1..831180f4db1 100644 --- a/pkg/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -18,10 +18,10 @@ import ( "context" "fmt" - "github.com/fatedier/frp/pkg/msg" - "github.com/coreos/go-oidc" "golang.org/x/oauth2/clientcredentials" + + "github.com/fatedier/frp/pkg/msg" ) type OidcClientConfig struct { @@ -34,7 +34,7 @@ type OidcClientConfig struct { // is "". OidcClientSecret string `ini:"oidc_client_secret" json:"oidc_client_secret"` // OidcAudience specifies the audience of the token in OIDC authentication - //if AuthenticationMethod == "oidc". By default, this value is "". + // if AuthenticationMethod == "oidc". By default, this value is "". OidcAudience string `ini:"oidc_audience" json:"oidc_audience"` // OidcTokenEndpointURL specifies the URL which implements OIDC Token Endpoint. // It will be used to get an OIDC token if AuthenticationMethod == "oidc". diff --git a/pkg/config/client.go b/pkg/config/client.go index f503711b07a..eaf8adb0f2d 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -20,10 +20,10 @@ import ( "path/filepath" "strings" + "gopkg.in/ini.v1" + "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/util/util" - - "gopkg.in/ini.v1" ) // ClientCommonConf contains information for a client service. It is @@ -113,7 +113,7 @@ type ClientCommonConf struct { // all supplied proxies are enabled. By default, this value is an empty // set. Start []string `ini:"start" json:"start"` - //Start map[string]struct{} `json:"start"` + // Start map[string]struct{} `json:"start"` // Protocol specifies the protocol to use when interacting with the server. // Valid values are "tcp", "kcp" and "websocket". By default, this value // is "tcp". @@ -214,7 +214,7 @@ func (cfg *ClientCommonConf) Validate() error { } } - if cfg.TLSEnable == false { + if !cfg.TLSEnable { if cfg.TLSCertFile != "" { fmt.Println("WARNING! tls_cert_file is invalid when tls_enable is false") } @@ -281,7 +281,6 @@ func LoadAllProxyConfsFromIni( source interface{}, start []string, ) (map[string]ProxyConf, map[string]VisitorConf, error) { - f, err := ini.LoadSources(ini.LoadOptions{ Insensitive: false, InsensitiveSections: false, @@ -366,7 +365,6 @@ func LoadAllProxyConfsFromIni( } func renderRangeProxyTemplates(f *ini.File, section *ini.Section) error { - // Validation localPortStr := section.Key("local_port").String() remotePortStr := section.Key("remote_port").String() @@ -404,8 +402,12 @@ func renderRangeProxyTemplates(f *ini.File, section *ini.Section) error { } copySection(section, tmpsection) - tmpsection.NewKey("local_port", fmt.Sprintf("%d", localPorts[i])) - tmpsection.NewKey("remote_port", fmt.Sprintf("%d", remotePorts[i])) + if _, err := tmpsection.NewKey("local_port", fmt.Sprintf("%d", localPorts[i])); err != nil { + return fmt.Errorf("local_port new key in section error: %v", err) + } + if _, err := tmpsection.NewKey("remote_port", fmt.Sprintf("%d", remotePorts[i])); err != nil { + return fmt.Errorf("remote_port new key in section error: %v", err) + } } return nil @@ -413,6 +415,6 @@ func renderRangeProxyTemplates(f *ini.File, section *ini.Section) error { func copySection(source, target *ini.Section) { for key, value := range source.KeysHash() { - target.NewKey(key, value) + _, _ = target.NewKey(key, value) } } diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index 12f1c9e1985..ccff22936da 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -17,18 +17,17 @@ package config import ( "testing" + "github.com/stretchr/testify/assert" + "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/consts" - - "github.com/stretchr/testify/assert" ) const ( testUser = "test" ) -var ( - testClientBytesWithFull = []byte(` +var testClientBytesWithFull = []byte(` # [common] is integral section [common] server_addr = 0.0.0.9 @@ -237,7 +236,6 @@ var ( use_encryption = false use_compression = false `) -) func Test_LoadClientCommonConf(t *testing.T) { assert := assert.New(t) diff --git a/pkg/config/parse.go b/pkg/config/parse.go index 7767981e32c..9f4cdb6b74b 100644 --- a/pkg/config/parse.go +++ b/pkg/config/parse.go @@ -42,7 +42,7 @@ func ParseClientConfig(filePath string) ( } cfg.Complete() if err = cfg.Validate(); err != nil { - err = fmt.Errorf("Parse config error: %v", err) + err = fmt.Errorf("parse config error: %v", err) return } diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index e168520d377..92b499f271b 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -21,10 +21,10 @@ import ( "strconv" "strings" + "gopkg.in/ini.v1" + "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/msg" - - "gopkg.in/ini.v1" ) // Proxy @@ -420,10 +420,6 @@ func (cfg *BaseProxyConf) checkForCli() (err error) { return nil } -func (cfg *BaseProxyConf) checkForSvr(conf ServerCommonConf) error { - return nil -} - // DomainConf func (cfg *DomainConf) check() (err error) { if len(cfg.CustomDomains) == 0 && cfg.SubDomain == "" { diff --git a/pkg/config/proxy_test.go b/pkg/config/proxy_test.go index 68c87b95e78..c603dd7f4d2 100644 --- a/pkg/config/proxy_test.go +++ b/pkg/config/proxy_test.go @@ -17,10 +17,10 @@ package config import ( "testing" - "github.com/fatedier/frp/pkg/consts" "github.com/stretchr/testify/assert" - "gopkg.in/ini.v1" + + "github.com/fatedier/frp/pkg/consts" ) var ( @@ -49,7 +49,6 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { source []byte expected ProxyConf }{ - { sname: "ssh", source: []byte(` @@ -457,5 +456,4 @@ func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { assert.Equal(c.expected, actual) } - } diff --git a/pkg/config/server.go b/pkg/config/server.go index 50eb3054c3f..62644558435 100644 --- a/pkg/config/server.go +++ b/pkg/config/server.go @@ -18,12 +18,12 @@ import ( "fmt" "strings" + "github.com/go-playground/validator/v10" + "gopkg.in/ini.v1" + "github.com/fatedier/frp/pkg/auth" plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/pkg/util/util" - - "github.com/go-playground/validator/v10" - "gopkg.in/ini.v1" ) // ServerCommonConf contains information for a server service. It is @@ -236,7 +236,6 @@ func GetDefaultServerConf() ServerCommonConf { } func UnmarshalServerConfFromIni(source interface{}) (ServerCommonConf, error) { - f, err := ini.LoadSources(ini.LoadOptions{ Insensitive: false, InsensitiveSections: false, @@ -308,7 +307,7 @@ func (cfg *ServerCommonConf) Complete() { } func (cfg *ServerCommonConf) Validate() error { - if cfg.DashboardTLSMode == false { + if !cfg.DashboardTLSMode { if cfg.DashboardTLSCertFile != "" { fmt.Println("WARNING! dashboard_tls_cert_file is invalid when dashboard_tls_mode is false") } diff --git a/pkg/config/server_test.go b/pkg/config/server_test.go index 8646ca62038..5dee66db364 100644 --- a/pkg/config/server_test.go +++ b/pkg/config/server_test.go @@ -17,10 +17,10 @@ package config import ( "testing" + "github.com/stretchr/testify/assert" + "github.com/fatedier/frp/pkg/auth" plugin "github.com/fatedier/frp/pkg/plugin/server" - - "github.com/stretchr/testify/assert" ) func Test_LoadServerCommonConf(t *testing.T) { @@ -126,10 +126,10 @@ func Test_LoadServerCommonConf(t *testing.T) { HeartbeatTimeout: 99, UserConnTimeout: 9, AllowPorts: map[int]struct{}{ - 10: struct{}{}, - 11: struct{}{}, - 12: struct{}{}, - 99: struct{}{}, + 10: {}, + 11: {}, + 12: {}, + 99: {}, }, MaxPoolCount: 59, MaxPortsPerClient: 9, diff --git a/pkg/config/types.go b/pkg/config/types.go index 062cc7462cf..28a0e46d87e 100644 --- a/pkg/config/types.go +++ b/pkg/config/types.go @@ -75,21 +75,22 @@ func (q *BandwidthQuantity) UnmarshalString(s string) error { f float64 err error ) - if strings.HasSuffix(s, "MB") { + switch { + case strings.HasSuffix(s, "MB"): base = MB fstr := strings.TrimSuffix(s, "MB") f, err = strconv.ParseFloat(fstr, 64) if err != nil { return err } - } else if strings.HasSuffix(s, "KB") { + case strings.HasSuffix(s, "KB"): base = KB fstr := strings.TrimSuffix(s, "KB") f, err = strconv.ParseFloat(fstr, 64) if err != nil { return err } - } else { + default: return errors.New("unit not support") } diff --git a/pkg/config/value.go b/pkg/config/value.go index e44fbd693e1..2f228823376 100644 --- a/pkg/config/value.go +++ b/pkg/config/value.go @@ -21,9 +21,7 @@ import ( "text/template" ) -var ( - glbEnvs map[string]string -) +var glbEnvs map[string]string func init() { glbEnvs = make(map[string]string) diff --git a/pkg/config/visitor.go b/pkg/config/visitor.go index aede14d8b04..3d9440cd023 100644 --- a/pkg/config/visitor.go +++ b/pkg/config/visitor.go @@ -18,9 +18,9 @@ import ( "fmt" "reflect" - "github.com/fatedier/frp/pkg/consts" - "gopkg.in/ini.v1" + + "github.com/fatedier/frp/pkg/consts" ) // Visitor @@ -136,6 +136,7 @@ func (cfg *BaseVisitorConf) check() (err error) { } func (cfg *BaseVisitorConf) unmarshalFromIni(prefix string, name string, section *ini.Section) error { + _ = section // Custom decoration after basic unmarshal: // proxy name diff --git a/pkg/config/visitor_test.go b/pkg/config/visitor_test.go index ce200ed049b..cdfbbf4673a 100644 --- a/pkg/config/visitor_test.go +++ b/pkg/config/visitor_test.go @@ -17,10 +17,10 @@ package config import ( "testing" - "github.com/fatedier/frp/pkg/consts" - "github.com/stretchr/testify/assert" "gopkg.in/ini.v1" + + "github.com/fatedier/frp/pkg/consts" ) const testVisitorPrefix = "test." diff --git a/pkg/consts/consts.go b/pkg/consts/consts.go index 907bc73e763..9e4438349b6 100644 --- a/pkg/consts/consts.go +++ b/pkg/consts/consts.go @@ -16,26 +16,26 @@ package consts var ( // proxy status - Idle string = "idle" - Working string = "working" - Closed string = "closed" - Online string = "online" - Offline string = "offline" + Idle = "idle" + Working = "working" + Closed = "closed" + Online = "online" + Offline = "offline" // proxy type - TCPProxy string = "tcp" - UDPProxy string = "udp" - TCPMuxProxy string = "tcpmux" - HTTPProxy string = "http" - HTTPSProxy string = "https" - STCPProxy string = "stcp" - XTCPProxy string = "xtcp" - SUDPProxy string = "sudp" + TCPProxy = "tcp" + UDPProxy = "udp" + TCPMuxProxy = "tcpmux" + HTTPProxy = "http" + HTTPSProxy = "https" + STCPProxy = "stcp" + XTCPProxy = "xtcp" + SUDPProxy = "sudp" // authentication method - TokenAuthMethod string = "token" - OidcAuthMethod string = "oidc" + TokenAuthMethod = "token" + OidcAuthMethod = "oidc" // TCP multiplexer - HTTPConnectTCPMultiplexer string = "httpconnect" + HTTPConnectTCPMultiplexer = "httpconnect" ) diff --git a/pkg/metrics/aggregate/server.go b/pkg/metrics/aggregate/server.go index 1ff15e42d0e..354d85c2b68 100644 --- a/pkg/metrics/aggregate/server.go +++ b/pkg/metrics/aggregate/server.go @@ -30,7 +30,7 @@ func EnablePrometheus() { sm.Add(prometheus.ServerMetrics) } -var sm *serverMetrics = &serverMetrics{} +var sm = &serverMetrics{} func init() { metrics.Register(sm) diff --git a/pkg/metrics/mem/server.go b/pkg/metrics/mem/server.go index 55d8daf120a..38a8c68b9b4 100644 --- a/pkg/metrics/mem/server.go +++ b/pkg/metrics/mem/server.go @@ -23,9 +23,12 @@ import ( server "github.com/fatedier/frp/server/metrics" ) -var sm *serverMetrics = newServerMetrics() -var ServerMetrics server.ServerMetrics -var StatsCollector Collector +var ( + sm = newServerMetrics() + + ServerMetrics server.ServerMetrics + StatsCollector Collector +) func init() { ServerMetrics = sm diff --git a/pkg/metrics/metrics.go b/pkg/metrics/metrics.go index 6520317d8fd..696496a2357 100644 --- a/pkg/metrics/metrics.go +++ b/pkg/metrics/metrics.go @@ -4,5 +4,7 @@ import ( "github.com/fatedier/frp/pkg/metrics/aggregate" ) -var EnableMem = aggregate.EnableMem -var EnablePrometheus = aggregate.EnablePrometheus +var ( + EnableMem = aggregate.EnableMem + EnablePrometheus = aggregate.EnablePrometheus +) diff --git a/pkg/metrics/prometheus/server.go b/pkg/metrics/prometheus/server.go index 9cfdfda65aa..19eceb72fa7 100644 --- a/pkg/metrics/prometheus/server.go +++ b/pkg/metrics/prometheus/server.go @@ -1,9 +1,9 @@ package prometheus import ( - "github.com/fatedier/frp/server/metrics" - "github.com/prometheus/client_golang/prometheus" + + "github.com/fatedier/frp/server/metrics" ) const ( diff --git a/pkg/msg/ctl.go b/pkg/msg/ctl.go index 0eafdbcc5be..bf0c71a779b 100644 --- a/pkg/msg/ctl.go +++ b/pkg/msg/ctl.go @@ -22,9 +22,7 @@ import ( type Message = jsonMsg.Message -var ( - msgCtl *jsonMsg.MsgCtl -) +var msgCtl *jsonMsg.MsgCtl func init() { msgCtl = jsonMsg.NewMsgCtl() diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index ba6dd63e450..4b2823c729b 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -37,28 +37,26 @@ const ( TypeNatHoleSid = '5' ) -var ( - msgTypeMap = map[byte]interface{}{ - TypeLogin: Login{}, - TypeLoginResp: LoginResp{}, - TypeNewProxy: NewProxy{}, - TypeNewProxyResp: NewProxyResp{}, - TypeCloseProxy: CloseProxy{}, - TypeNewWorkConn: NewWorkConn{}, - TypeReqWorkConn: ReqWorkConn{}, - TypeStartWorkConn: StartWorkConn{}, - TypeNewVisitorConn: NewVisitorConn{}, - TypeNewVisitorConnResp: NewVisitorConnResp{}, - TypePing: Ping{}, - TypePong: Pong{}, - TypeUDPPacket: UDPPacket{}, - TypeNatHoleVisitor: NatHoleVisitor{}, - TypeNatHoleClient: NatHoleClient{}, - TypeNatHoleResp: NatHoleResp{}, - TypeNatHoleClientDetectOK: NatHoleClientDetectOK{}, - TypeNatHoleSid: NatHoleSid{}, - } -) +var msgTypeMap = map[byte]interface{}{ + TypeLogin: Login{}, + TypeLoginResp: LoginResp{}, + TypeNewProxy: NewProxy{}, + TypeNewProxyResp: NewProxyResp{}, + TypeCloseProxy: CloseProxy{}, + TypeNewWorkConn: NewWorkConn{}, + TypeReqWorkConn: ReqWorkConn{}, + TypeStartWorkConn: StartWorkConn{}, + TypeNewVisitorConn: NewVisitorConn{}, + TypeNewVisitorConnResp: NewVisitorConnResp{}, + TypePing: Ping{}, + TypePong: Pong{}, + TypeUDPPacket: UDPPacket{}, + TypeNatHoleVisitor: NatHoleVisitor{}, + TypeNatHoleClient: NatHoleClient{}, + TypeNatHoleResp: NatHoleResp{}, + TypeNatHoleClientDetectOK: NatHoleClientDetectOK{}, + TypeNatHoleSid: NatHoleSid{}, +} // When frpc start, client send this message to login to server. type Login struct { @@ -129,8 +127,7 @@ type NewWorkConn struct { Timestamp int64 `json:"timestamp,omitempty"` } -type ReqWorkConn struct { -} +type ReqWorkConn struct{} type StartWorkConn struct { ProxyName string `json:"proxy_name,omitempty"` @@ -187,8 +184,7 @@ type NatHoleResp struct { Error string `json:"error,omitempty"` } -type NatHoleClientDetectOK struct { -} +type NatHoleClientDetectOK struct{} type NatHoleSid struct { Sid string `json:"sid,omitempty"` diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index 545ad7aa035..da8b49c47d9 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -7,15 +7,15 @@ import ( "sync" "time" + "github.com/fatedier/golib/errors" + "github.com/fatedier/golib/pool" + "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/util" - - "github.com/fatedier/golib/errors" - "github.com/fatedier/golib/pool" ) -// Timeout seconds. +// NatHoleTimeout seconds. var NatHoleTimeout int64 = 10 type SidRequest struct { @@ -107,7 +107,7 @@ func (nc *Controller) HandleVisitor(m *msg.NatHoleVisitor, raddr *net.UDPAddr) { session := &Session{ Sid: sid, VisitorAddr: raddr, - NotifyCh: make(chan struct{}, 0), + NotifyCh: make(chan struct{}), } nc.mu.Lock() clientCfg, ok := nc.clientCfgs[m.ProxyName] @@ -115,14 +115,14 @@ func (nc *Controller) HandleVisitor(m *msg.NatHoleVisitor, raddr *net.UDPAddr) { nc.mu.Unlock() errInfo := fmt.Sprintf("xtcp server for [%s] doesn't exist", m.ProxyName) log.Debug(errInfo) - nc.listener.WriteToUDP(nc.GenNatHoleResponse(nil, errInfo), raddr) + _, _ = nc.listener.WriteToUDP(nc.GenNatHoleResponse(nil, errInfo), raddr) return } if m.SignKey != util.GetAuthKey(clientCfg.Sk, m.Timestamp) { nc.mu.Unlock() errInfo := fmt.Sprintf("xtcp connection of [%s] auth failed", m.ProxyName) log.Debug(errInfo) - nc.listener.WriteToUDP(nc.GenNatHoleResponse(nil, errInfo), raddr) + _, _ = nc.listener.WriteToUDP(nc.GenNatHoleResponse(nil, errInfo), raddr) return } @@ -151,7 +151,7 @@ func (nc *Controller) HandleVisitor(m *msg.NatHoleVisitor, raddr *net.UDPAddr) { case <-session.NotifyCh: resp := nc.GenNatHoleResponse(session, "") log.Trace("send nat hole response to visitor") - nc.listener.WriteToUDP(resp, raddr) + _, _ = nc.listener.WriteToUDP(resp, raddr) case <-time.After(time.Duration(NatHoleTimeout) * time.Second): return } @@ -169,7 +169,7 @@ func (nc *Controller) HandleClient(m *msg.NatHoleClient, raddr *net.UDPAddr) { resp := nc.GenNatHoleResponse(session, "") log.Trace("send nat hole response to client") - nc.listener.WriteToUDP(resp, raddr) + _, _ = nc.listener.WriteToUDP(resp, raddr) } func (nc *Controller) GenNatHoleResponse(session *Session, errInfo string) []byte { diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index 3074cddf34e..f50a6c41f7a 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -86,17 +86,20 @@ func NewHTTP2HTTPSPlugin(params map[string]string) (Plugin, error) { } p.s = &http.Server{ - Handler: rp, + Handler: rp, + ReadHeaderTimeout: 0, } - go p.s.Serve(listener) + go func() { + _ = p.s.Serve(listener) + }() return p, nil } func (p *HTTP2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) - p.l.PutConn(wrapConn) + _ = p.l.PutConn(wrapConn) } func (p *HTTP2HTTPSPlugin) Name() string { diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index 45bd3a9a792..78930e3952e 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -22,10 +22,10 @@ import ( "net/http" "strings" - frpNet "github.com/fatedier/frp/pkg/util/net" - frpIo "github.com/fatedier/golib/io" gnet "github.com/fatedier/golib/net" + + frpNet "github.com/fatedier/frp/pkg/util/net" ) const PluginHTTPProxy = "http_proxy" @@ -56,7 +56,9 @@ func NewHTTPProxyPlugin(params map[string]string) (Plugin, error) { Handler: hp, } - go hp.s.Serve(listener) + go func() { + _ = hp.s.Serve(listener) + }() return hp, nil } @@ -86,8 +88,7 @@ func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBuf return } - hp.l.PutConn(sc) - return + _ = hp.l.PutConn(sc) } func (hp *HTTPProxy) Close() error { @@ -153,7 +154,7 @@ func (hp *HTTPProxy) ConnectHandler(rw http.ResponseWriter, req *http.Request) { client.Close() return } - client.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) + _, _ = client.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) go frpIo.Join(remote, client) } @@ -188,7 +189,10 @@ func (hp *HTTPProxy) handleConnectReq(req *http.Request, rwc io.ReadWriteCloser) defer rwc.Close() if ok := hp.Auth(req); !ok { res := getBadResponse() - res.Write(rwc) + _ = res.Write(rwc) + if res.Body != nil { + res.Body.Close() + } return } @@ -200,10 +204,10 @@ func (hp *HTTPProxy) handleConnectReq(req *http.Request, rwc io.ReadWriteCloser) ProtoMajor: 1, ProtoMinor: 1, } - res.Write(rwc) + _ = res.Write(rwc) return } - rwc.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) + _, _ = rwc.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) frpIo.Join(remote, rwc) } diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 5aec067b17c..18138dc1c7b 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -106,7 +106,9 @@ func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) { } ln := tls.NewListener(listener, tlsConfig) - go p.s.Serve(ln) + go func() { + _ = p.s.Serve(ln) + }() return p, nil } @@ -122,7 +124,7 @@ func (p *HTTPS2HTTPPlugin) genTLSConfig() (*tls.Config, error) { func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) - p.l.PutConn(wrapConn) + _ = p.l.PutConn(wrapConn) } func (p *HTTPS2HTTPPlugin) Name() string { diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index cefa203017a..596bdc138a9 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -111,7 +111,9 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) { } ln := tls.NewListener(listener, tlsConfig) - go p.s.Serve(ln) + go func() { + _ = p.s.Serve(ln) + }() return p, nil } @@ -127,7 +129,7 @@ func (p *HTTPS2HTTPSPlugin) genTLSConfig() (*tls.Config, error) { func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) - p.l.PutConn(wrapConn) + _ = p.l.PutConn(wrapConn) } func (p *HTTPS2HTTPSPlugin) Name() string { diff --git a/pkg/plugin/client/socks5.go b/pkg/plugin/client/socks5.go index 3a543d9d2d4..f731e87da9a 100644 --- a/pkg/plugin/client/socks5.go +++ b/pkg/plugin/client/socks5.go @@ -19,9 +19,9 @@ import ( "log" "net" - frpNet "github.com/fatedier/frp/pkg/util/net" - gosocks5 "github.com/armon/go-socks5" + + frpNet "github.com/fatedier/frp/pkg/util/net" ) const PluginSocks5 = "socks5" @@ -32,9 +32,6 @@ func init() { type Socks5Plugin struct { Server *gosocks5.Server - - user string - passwd string } func NewSocks5Plugin(params map[string]string) (p Plugin, err error) { @@ -56,7 +53,7 @@ func NewSocks5Plugin(params map[string]string) (p Plugin, err error) { func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { defer conn.Close() wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) - sp.Server.ServeConn(wrapConn) + _ = sp.Server.ServeConn(wrapConn) } func (sp *Socks5Plugin) Name() string { diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index 1eeea3ba92e..4d31ea53e8b 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -19,9 +19,9 @@ import ( "net" "net/http" - frpNet "github.com/fatedier/frp/pkg/util/net" - "github.com/gorilla/mux" + + frpNet "github.com/fatedier/frp/pkg/util/net" ) const PluginStaticFile = "static_file" @@ -69,13 +69,15 @@ func NewStaticFilePlugin(params map[string]string) (Plugin, error) { sp.s = &http.Server{ Handler: router, } - go sp.s.Serve(listener) + go func() { + _ = sp.s.Serve(listener) + }() return sp, nil } func (sp *StaticFilePlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) - sp.l.PutConn(wrapConn) + _ = sp.l.PutConn(wrapConn) } func (sp *StaticFilePlugin) Name() string { diff --git a/pkg/plugin/client/unix_domain_socket.go b/pkg/plugin/client/unix_domain_socket.go index a85ada702f8..68902472242 100644 --- a/pkg/plugin/client/unix_domain_socket.go +++ b/pkg/plugin/client/unix_domain_socket.go @@ -57,7 +57,9 @@ func (uds *UnixDomainSocketPlugin) Handle(conn io.ReadWriteCloser, realConn net. return } if len(extraBufToLocal) > 0 { - localConn.Write(extraBufToLocal) + if _, err := localConn.Write(extraBufToLocal); err != nil { + return + } } frpIo.Join(localConn, conn) diff --git a/pkg/plugin/server/http.go b/pkg/plugin/server/http.go index 5ca8c0635bb..b120332dcdb 100644 --- a/pkg/plugin/server/http.go +++ b/pkg/plugin/server/http.go @@ -43,12 +43,12 @@ type httpPlugin struct { } func NewHTTPPluginOptions(options HTTPPluginOptions) Plugin { - var url = fmt.Sprintf("%s%s", options.Addr, options.Path) + url := fmt.Sprintf("%s%s", options.Addr, options.Path) var client *http.Client if strings.HasPrefix(url, "https://") { tr := &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: options.TLSVerify == false}, + TLSClientConfig: &tls.Config{InsecureSkipVerify: !options.TLSVerify}, } client = &http.Client{Transport: tr} } else { diff --git a/pkg/plugin/server/manager.go b/pkg/plugin/server/manager.go index 47d11d1c245..5a8a309c61f 100644 --- a/pkg/plugin/server/manager.go +++ b/pkg/plugin/server/manager.go @@ -154,9 +154,8 @@ func (m *Manager) CloseProxy(content *CloseProxyContent) error { if len(errs) > 0 { return fmt.Errorf("send CloseProxy request to plugin errors: %s", strings.Join(errs, "; ")) - } else { - return nil } + return nil } func (m *Manager) Ping(content *PingContent) (*PingContent, error) { diff --git a/pkg/proto/udp/udp.go b/pkg/proto/udp/udp.go index 97f6ea4098f..7a11984b2e4 100644 --- a/pkg/proto/udp/udp.go +++ b/pkg/proto/udp/udp.go @@ -20,10 +20,10 @@ import ( "sync" "time" - "github.com/fatedier/frp/pkg/msg" - "github.com/fatedier/golib/errors" "github.com/fatedier/golib/pool" + + "github.com/fatedier/frp/pkg/msg" ) func NewUDPPacket(buf []byte, laddr, raddr *net.UDPAddr) *msg.UDPPacket { @@ -47,7 +47,7 @@ func ForwardUserConn(udpConn *net.UDPConn, readCh <-chan *msg.UDPPacket, sendCh if err != nil { continue } - udpConn.WriteToUDP(buf, udpMsg.RemoteAddr) + _, _ = udpConn.WriteToUDP(buf, udpMsg.RemoteAddr) } }() @@ -70,9 +70,7 @@ func ForwardUserConn(udpConn *net.UDPConn, readCh <-chan *msg.UDPPacket, sendCh } func Forwarder(dstAddr *net.UDPAddr, readCh <-chan *msg.UDPPacket, sendCh chan<- msg.Message, bufSize int) { - var ( - mu sync.RWMutex - ) + var mu sync.RWMutex udpConnMap := make(map[string]*net.UDPConn) // read from dstAddr and write to sendCh @@ -87,7 +85,7 @@ func Forwarder(dstAddr *net.UDPAddr, readCh <-chan *msg.UDPPacket, sendCh chan<- buf := pool.GetBuf(bufSize) for { - udpConn.SetReadDeadline(time.Now().Add(30 * time.Second)) + _ = udpConn.SetReadDeadline(time.Now().Add(30 * time.Second)) n, _, err := udpConn.ReadFromUDP(buf) if err != nil { return diff --git a/pkg/transport/tls.go b/pkg/transport/tls.go index 38201f8e900..02950cc546e 100644 --- a/pkg/transport/tls.go +++ b/pkg/transport/tls.go @@ -19,7 +19,7 @@ func newCustomTLSKeyPair(certfile, keyfile string) (*tls.Certificate, error) { } func newRandomTLSKeyPair() *tls.Certificate { - key, err := rsa.GenerateKey(rand.Reader, 1024) + key, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { panic(err) } @@ -58,7 +58,7 @@ func newCertPool(caPath string) (*x509.CertPool, error) { } func NewServerTLSConfig(certPath, keyPath, caPath string) (*tls.Config, error) { - var base = &tls.Config{} + base := &tls.Config{} if certPath == "" || keyPath == "" { // server will generate tls conf by itself @@ -87,7 +87,7 @@ func NewServerTLSConfig(certPath, keyPath, caPath string) (*tls.Config, error) { } func NewClientTLSConfig(certPath, keyPath, caPath, serverName string) (*tls.Config, error) { - var base = &tls.Config{} + base := &tls.Config{} if certPath == "" || keyPath == "" { // client will not generate tls conf by itself diff --git a/pkg/util/log/log.go b/pkg/util/log/log.go index 1ddf4cdc042..01a454d595d 100644 --- a/pkg/util/log/log.go +++ b/pkg/util/log/log.go @@ -40,19 +40,19 @@ func SetLogFile(logWay string, logFile string, maxdays int64, disableLogColor bo if logWay == "console" { params := "" if disableLogColor { - params = fmt.Sprintf(`{"color": false}`) + params = `{"color": false}` } - Log.SetLogger("console", params) + _ = Log.SetLogger("console", params) } else { params := fmt.Sprintf(`{"filename": "%s", "maxdays": %d}`, logFile, maxdays) - Log.SetLogger("file", params) + _ = Log.SetLogger("file", params) } } // SetLogLevel set log level, default is warning // value: error, warning, info, debug, trace func SetLogLevel(logLevel string) { - level := 4 // warning + var level int switch logLevel { case "error": level = 3 @@ -65,7 +65,7 @@ func SetLogLevel(logLevel string) { case "trace": level = 8 default: - level = 4 + level = 4 // warning } Log.SetLevel(level) } diff --git a/pkg/util/net/kcp.go b/pkg/util/net/kcp.go index e9e0b1269b6..77b6bfa76ff 100644 --- a/pkg/util/net/kcp.go +++ b/pkg/util/net/kcp.go @@ -32,8 +32,8 @@ func ListenKcp(address string) (l *KCPListener, err error) { if err != nil { return l, err } - listener.SetReadBuffer(4194304) - listener.SetWriteBuffer(4194304) + _ = listener.SetReadBuffer(4194304) + _ = listener.SetWriteBuffer(4194304) l = &KCPListener{ listener: listener, diff --git a/pkg/util/net/tls.go b/pkg/util/net/tls.go index 1bae196adb8..3aecb482f15 100644 --- a/pkg/util/net/tls.go +++ b/pkg/util/net/tls.go @@ -23,32 +23,30 @@ import ( gnet "github.com/fatedier/golib/net" ) -var ( - FRPTLSHeadByte = 0x17 -) +var FRPTLSHeadByte = 0x17 func CheckAndEnableTLSServerConnWithTimeout( c net.Conn, tlsConfig *tls.Config, tlsOnly bool, timeout time.Duration, ) (out net.Conn, isTLS bool, custom bool, err error) { - sc, r := gnet.NewSharedConnSize(c, 2) buf := make([]byte, 1) var n int - c.SetReadDeadline(time.Now().Add(timeout)) + _ = c.SetReadDeadline(time.Now().Add(timeout)) n, err = r.Read(buf) - c.SetReadDeadline(time.Time{}) + _ = c.SetReadDeadline(time.Time{}) if err != nil { return } - if n == 1 && int(buf[0]) == FRPTLSHeadByte { + switch { + case n == 1 && int(buf[0]) == FRPTLSHeadByte: out = tls.Server(c, tlsConfig) isTLS = true custom = true - } else if n == 1 && int(buf[0]) == 0x16 { + case n == 1 && int(buf[0]) == 0x16: out = tls.Server(sc, tlsConfig) isTLS = true - } else { + default: if tlsOnly { err = fmt.Errorf("non-TLS connection received on a TlsOnly server") return diff --git a/pkg/util/net/udp.go b/pkg/util/net/udp.go index 6689732e40c..82999a5f5c2 100644 --- a/pkg/util/net/udp.go +++ b/pkg/util/net/udp.go @@ -55,7 +55,7 @@ func NewFakeUDPConn(l *UDPListener, laddr, raddr net.Addr) *FakeUDPConn { for { time.Sleep(5 * time.Second) fc.mu.RLock() - if time.Now().Sub(fc.lastActive) > 10*time.Second { + if time.Since(fc.lastActive) > 10*time.Second { fc.mu.RUnlock() fc.Close() break @@ -68,8 +68,7 @@ func NewFakeUDPConn(l *UDPListener, laddr, raddr net.Addr) *FakeUDPConn { func (c *FakeUDPConn) putPacket(content []byte) { defer func() { - if err := recover(); err != nil { - } + _ = recover() }() select { @@ -109,7 +108,7 @@ func (c *FakeUDPConn) Write(b []byte) (n int, err error) { LocalAddr: c.localAddr, RemoteAddr: c.remoteAddr, } - c.l.writeUDPPacket(packet) + _ = c.l.writeUDPPacket(packet) c.mu.Lock() c.lastActive = time.Now() @@ -208,7 +207,7 @@ func ListenUDP(bindAddr string, bindPort int) (l *UDPListener, err error) { } if addr, ok := packet.RemoteAddr.(*net.UDPAddr); ok { - readConn.WriteToUDP(packet.Buf, addr) + _, _ = readConn.WriteToUDP(packet.Buf, addr) } } }() diff --git a/pkg/util/net/websocket.go b/pkg/util/net/websocket.go index 4ec5c9fe079..6a8d369c4a9 100644 --- a/pkg/util/net/websocket.go +++ b/pkg/util/net/websocket.go @@ -9,9 +9,7 @@ import ( "golang.org/x/net/websocket" ) -var ( - ErrWebsocketListenerClosed = errors.New("websocket listener closed") -) +var ErrWebsocketListenerClosed = errors.New("websocket listener closed") const ( FrpWebsocketPath = "/~!frp" @@ -21,8 +19,7 @@ type WebsocketListener struct { ln net.Listener acceptCh chan net.Conn - server *http.Server - httpMutex *http.ServeMux + server *http.Server } // NewWebsocketListener to handle websocket connections @@ -47,7 +44,9 @@ func NewWebsocketListener(ln net.Listener) (wl *WebsocketListener) { Handler: muxer, } - go wl.server.Serve(ln) + go func() { + _ = wl.server.Serve(ln) + }() return } diff --git a/pkg/util/tcpmux/httpconnect.go b/pkg/util/tcpmux/httpconnect.go index 2639c493644..e94ff4b2bb2 100644 --- a/pkg/util/tcpmux/httpconnect.go +++ b/pkg/util/tcpmux/httpconnect.go @@ -22,9 +22,10 @@ import ( "net/http" "time" + gnet "github.com/fatedier/golib/net" + "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" - gnet "github.com/fatedier/golib/net" ) type HTTPConnectTCPMuxer struct { @@ -66,7 +67,11 @@ func (muxer *HTTPConnectTCPMuxer) sendConnectResponse(c net.Conn, reqInfo map[st if muxer.passthrough { return nil } - return util.OkResponse().Write(c) + res := util.OkResponse() + if res.Body != nil { + defer res.Body.Close() + } + return res.Write(c) } func (muxer *HTTPConnectTCPMuxer) getHostFromHTTPConnect(c net.Conn) (net.Conn, map[string]string, error) { @@ -82,11 +87,15 @@ func (muxer *HTTPConnectTCPMuxer) getHostFromHTTPConnect(c net.Conn) (net.Conn, reqInfoMap["Scheme"] = "tcp" reqInfoMap["HTTPUser"] = httpUser - var outConn net.Conn = c + outConn := c if muxer.passthrough { outConn = sc if muxer.authRequired && httpUser == "" { - util.ProxyUnauthorizedResponse().Write(c) + resp := util.ProxyUnauthorizedResponse() + if resp.Body != nil { + defer resp.Body.Close() + } + _ = resp.Write(c) outConn = c } } diff --git a/pkg/util/util/http.go b/pkg/util/util/http.go index 3b8117346f9..d89af08b76a 100644 --- a/pkg/util/util/http.go +++ b/pkg/util/util/http.go @@ -60,10 +60,8 @@ func CanonicalHost(host string) (string, error) { return "", err } } - if strings.HasSuffix(host, ".") { - // Strip trailing dot from fully qualified domain names. - host = host[:len(host)-1] - } + // Strip trailing dot from fully qualified domain names. + host = strings.TrimSuffix(host, ".") return host, nil } diff --git a/pkg/util/util/util.go b/pkg/util/util/util.go index 032675fb761..b13f9a77356 100644 --- a/pkg/util/util/util.go +++ b/pkg/util/util/util.go @@ -44,7 +44,7 @@ func RandIDWithLen(idLen int) (id string, err error) { } func GetAuthKey(token string, timestamp int64) (key string) { - token = token + fmt.Sprintf("%d", timestamp) + token += fmt.Sprintf("%d", timestamp) md5Ctx := md5.New() md5Ctx.Write([]byte(token)) data := md5Ctx.Sum(nil) @@ -70,7 +70,8 @@ func ParseRangeNumbers(rangeStr string) (numbers []int64, err error) { numArray := strings.Split(numRangeStr, "-") // length: only 1 or 2 is correct rangeType := len(numArray) - if rangeType == 1 { + switch rangeType { + case 1: // single number singleNum, errRet := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64) if errRet != nil { @@ -78,7 +79,7 @@ func ParseRangeNumbers(rangeStr string) (numbers []int64, err error) { return } numbers = append(numbers, singleNum) - } else if rangeType == 2 { + case 2: // range numbers min, errRet := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64) if errRet != nil { @@ -97,7 +98,7 @@ func ParseRangeNumbers(rangeStr string) (numbers []int64, err error) { for i := min; i <= max; i++ { numbers = append(numbers, i) } - } else { + default: err = fmt.Errorf("range number is invalid") return } diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index b5eca31735b..b8b7be86bcd 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version string = "0.44.0" +var version = "0.44.0" func Full() string { return version diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index bfbd16ea9b6..f2f08500ce0 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -23,27 +23,26 @@ import ( "log" "net" "net/http" + "net/http/httputil" "net/url" "strings" "time" - frpLog "github.com/fatedier/frp/pkg/util/log" - "github.com/fatedier/frp/pkg/util/util" frpIo "github.com/fatedier/golib/io" - "github.com/fatedier/golib/pool" -) -var ( - ErrNoRouteFound = errors.New("no route found") + frpLog "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/util" ) +var ErrNoRouteFound = errors.New("no route found") + type HTTPReverseProxyOptions struct { ResponseHeaderTimeoutS int64 } type HTTPReverseProxy struct { - proxy *ReverseProxy + proxy *httputil.ReverseProxy vhostRouter *Routers responseHeaderTimeout time.Duration @@ -57,7 +56,7 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * responseHeaderTimeout: time.Duration(option.ResponseHeaderTimeoutS) * time.Second, vhostRouter: vhostRouter, } - proxy := &ReverseProxy{ + proxy := &httputil.ReverseProxy{ // Modify incoming requests by route policies. Director: func(req *http.Request) { req.URL.Scheme = "http" @@ -81,7 +80,6 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * } else { req.URL.Host = req.Host } - }, // Create a connection to one proxy routed by route policy. Transport: &http.Transport{ @@ -114,7 +112,7 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * ErrorHandler: func(rw http.ResponseWriter, req *http.Request, err error) { frpLog.Warn("do http proxy request [host: %s] error: %v", req.Host, err) rw.WriteHeader(http.StatusNotFound) - rw.Write(getNotFoundPageContent()) + _, _ = rw.Write(getNotFoundPageContent()) }, } rp.proxy = proxy @@ -257,10 +255,28 @@ func (rp *HTTPReverseProxy) connectHandler(rw http.ResponseWriter, req *http.Req client.Close() return } - req.Write(remote) + _ = req.Write(remote) go frpIo.Join(remote, client) } +func parseBasicAuth(auth string) (username, password string, ok bool) { + const prefix = "Basic " + // Case insensitive prefix match. See Issue 22736. + if len(auth) < len(prefix) || !strings.EqualFold(auth[:len(prefix)], prefix) { + return + } + c, err := base64.StdEncoding.DecodeString(auth[len(prefix):]) + if err != nil { + return + } + cs := string(c) + s := strings.IndexByte(cs, ':') + if s < 0 { + return + } + return cs[:s], cs[s+1:], true +} + func (rp *HTTPReverseProxy) injectRequestInfoToCtx(req *http.Request) *http.Request { newctx := req.Context() newctx = context.WithValue(newctx, RouteInfoURL, req.URL.Path) diff --git a/pkg/util/vhost/resource.go b/pkg/util/vhost/resource.go index 446f40f91f2..14f6b2ad322 100644 --- a/pkg/util/vhost/resource.go +++ b/pkg/util/vhost/resource.go @@ -24,9 +24,7 @@ import ( "github.com/fatedier/frp/pkg/util/version" ) -var ( - NotFoundPagePath = "" -) +var NotFoundPagePath = "" const ( NotFound = ` diff --git a/pkg/util/vhost/reverseproxy.go b/pkg/util/vhost/reverseproxy.go deleted file mode 100644 index 975f1d14ecf..00000000000 --- a/pkg/util/vhost/reverseproxy.go +++ /dev/null @@ -1,636 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// HTTP reverse proxy handler - -package vhost - -import ( - "context" - "encoding/base64" - "fmt" - "io" - "log" - "net" - "net/http" - "net/textproto" - "net/url" - "strings" - "sync" - "time" - - "golang.org/x/net/http/httpguts" -) - -// ReverseProxy is an HTTP Handler that takes an incoming request and -// sends it to another server, proxying the response back to the -// client. -// -// ReverseProxy by default sets the client IP as the value of the -// X-Forwarded-For header. -// -// If an X-Forwarded-For header already exists, the client IP is -// appended to the existing values. As a special case, if the header -// exists in the Request.Header map but has a nil value (such as when -// set by the Director func), the X-Forwarded-For header is -// not modified. -// -// To prevent IP spoofing, be sure to delete any pre-existing -// X-Forwarded-For header coming from the client or -// an untrusted proxy. -type ReverseProxy struct { - // Director must be a function which modifies - // the request into a new request to be sent - // using Transport. Its response is then copied - // back to the original client unmodified. - // Director must not access the provided Request - // after returning. - Director func(*http.Request) - - // The transport used to perform proxy requests. - // If nil, http.DefaultTransport is used. - Transport http.RoundTripper - - // FlushInterval specifies the flush interval - // to flush to the client while copying the - // response body. - // If zero, no periodic flushing is done. - // A negative value means to flush immediately - // after each write to the client. - // The FlushInterval is ignored when ReverseProxy - // recognizes a response as a streaming response, or - // if its ContentLength is -1; for such responses, writes - // are flushed to the client immediately. - FlushInterval time.Duration - - // ErrorLog specifies an optional logger for errors - // that occur when attempting to proxy the request. - // If nil, logging is done via the log package's standard logger. - ErrorLog *log.Logger - - // BufferPool optionally specifies a buffer pool to - // get byte slices for use by io.CopyBuffer when - // copying HTTP response bodies. - BufferPool BufferPool - - // ModifyResponse is an optional function that modifies the - // Response from the backend. It is called if the backend - // returns a response at all, with any HTTP status code. - // If the backend is unreachable, the optional ErrorHandler is - // called without any call to ModifyResponse. - // - // If ModifyResponse returns an error, ErrorHandler is called - // with its error value. If ErrorHandler is nil, its default - // implementation is used. - ModifyResponse func(*http.Response) error - - // ErrorHandler is an optional function that handles errors - // reaching the backend or errors from ModifyResponse. - // - // If nil, the default is to log the provided error and return - // a 502 Status Bad Gateway response. - ErrorHandler func(http.ResponseWriter, *http.Request, error) -} - -// A BufferPool is an interface for getting and returning temporary -// byte slices for use by io.CopyBuffer. -type BufferPool interface { - Get() []byte - Put([]byte) -} - -func singleJoiningSlash(a, b string) string { - aslash := strings.HasSuffix(a, "/") - bslash := strings.HasPrefix(b, "/") - switch { - case aslash && bslash: - return a + b[1:] - case !aslash && !bslash: - return a + "/" + b - } - return a + b -} - -func joinURLPath(a, b *url.URL) (path, rawpath string) { - if a.RawPath == "" && b.RawPath == "" { - return singleJoiningSlash(a.Path, b.Path), "" - } - // Same as singleJoiningSlash, but uses EscapedPath to determine - // whether a slash should be added - apath := a.EscapedPath() - bpath := b.EscapedPath() - - aslash := strings.HasSuffix(apath, "/") - bslash := strings.HasPrefix(bpath, "/") - - switch { - case aslash && bslash: - return a.Path + b.Path[1:], apath + bpath[1:] - case !aslash && !bslash: - return a.Path + "/" + b.Path, apath + "/" + bpath - } - return a.Path + b.Path, apath + bpath -} - -// NewSingleHostReverseProxy returns a new ReverseProxy that routes -// URLs to the scheme, host, and base path provided in target. If the -// target's path is "/base" and the incoming request was for "/dir", -// the target request will be for /base/dir. -// NewSingleHostReverseProxy does not rewrite the Host header. -// To rewrite Host headers, use ReverseProxy directly with a custom -// Director policy. -func NewSingleHostReverseProxy(target *url.URL) *ReverseProxy { - targetQuery := target.RawQuery - director := func(req *http.Request) { - req.URL.Scheme = target.Scheme - req.URL.Host = target.Host - req.URL.Path, req.URL.RawPath = joinURLPath(target, req.URL) - if targetQuery == "" || req.URL.RawQuery == "" { - req.URL.RawQuery = targetQuery + req.URL.RawQuery - } else { - req.URL.RawQuery = targetQuery + "&" + req.URL.RawQuery - } - if _, ok := req.Header["User-Agent"]; !ok { - // explicitly disable User-Agent so it's not set to default value - req.Header.Set("User-Agent", "") - } - } - return &ReverseProxy{Director: director} -} - -func copyHeader(dst, src http.Header) { - for k, vv := range src { - for _, v := range vv { - dst.Add(k, v) - } - } -} - -// Hop-by-hop headers. These are removed when sent to the backend. -// As of RFC 7230, hop-by-hop headers are required to appear in the -// Connection header field. These are the headers defined by the -// obsoleted RFC 2616 (section 13.5.1) and are used for backward -// compatibility. -var hopHeaders = []string{ - "Connection", - "Proxy-Connection", // non-standard but still sent by libcurl and rejected by e.g. google - "Keep-Alive", - "Proxy-Authenticate", - "Proxy-Authorization", - "Te", // canonicalized version of "TE" - "Trailer", // not Trailers per URL above; https://www.rfc-editor.org/errata_search.php?eid=4522 - "Transfer-Encoding", - "Upgrade", -} - -func (p *ReverseProxy) defaultErrorHandler(rw http.ResponseWriter, req *http.Request, err error) { - p.logf("http: proxy error: %v", err) - rw.WriteHeader(http.StatusBadGateway) -} - -func (p *ReverseProxy) getErrorHandler() func(http.ResponseWriter, *http.Request, error) { - if p.ErrorHandler != nil { - return p.ErrorHandler - } - return p.defaultErrorHandler -} - -// modifyResponse conditionally runs the optional ModifyResponse hook -// and reports whether the request should proceed. -func (p *ReverseProxy) modifyResponse(rw http.ResponseWriter, res *http.Response, req *http.Request) bool { - if p.ModifyResponse == nil { - return true - } - if err := p.ModifyResponse(res); err != nil { - res.Body.Close() - p.getErrorHandler()(rw, req, err) - return false - } - return true -} - -func parseBasicAuth(auth string) (username, password string, ok bool) { - const prefix = "Basic " - // Case insensitive prefix match. See Issue 22736. - if len(auth) < len(prefix) || !strings.EqualFold(auth[:len(prefix)], prefix) { - return - } - c, err := base64.StdEncoding.DecodeString(auth[len(prefix):]) - if err != nil { - return - } - cs := string(c) - s := strings.IndexByte(cs, ':') - if s < 0 { - return - } - return cs[:s], cs[s+1:], true -} - -func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) { - transport := p.Transport - if transport == nil { - transport = http.DefaultTransport - } - - ctx := req.Context() - if cn, ok := rw.(http.CloseNotifier); ok { - var cancel context.CancelFunc - ctx, cancel = context.WithCancel(ctx) - defer cancel() - notifyChan := cn.CloseNotify() - go func() { - select { - case <-notifyChan: - cancel() - case <-ctx.Done(): - } - }() - } - - outreq := req.Clone(ctx) - if req.ContentLength == 0 { - outreq.Body = nil // Issue 16036: nil Body for http.Transport retries - } - if outreq.Header == nil { - outreq.Header = make(http.Header) // Issue 33142: historical behavior was to always allocate - } - - p.Director(outreq) - outreq.Close = false - - reqUpType := upgradeType(outreq.Header) - removeConnectionHeaders(outreq.Header) - - // Remove hop-by-hop headers to the backend. Especially - // important is "Connection" because we want a persistent - // connection, regardless of what the client sent to us. - for _, h := range hopHeaders { - hv := outreq.Header.Get(h) - if hv == "" { - continue - } - if h == "Te" && hv == "trailers" { - // Issue 21096: tell backend applications that - // care about trailer support that we support - // trailers. (We do, but we don't go out of - // our way to advertise that unless the - // incoming client request thought it was - // worth mentioning) - continue - } - outreq.Header.Del(h) - } - - // After stripping all the hop-by-hop connection headers above, add back any - // necessary for protocol upgrades, such as for websockets. - if reqUpType != "" { - outreq.Header.Set("Connection", "Upgrade") - outreq.Header.Set("Upgrade", reqUpType) - } - - if clientIP, _, err := net.SplitHostPort(req.RemoteAddr); err == nil { - // If we aren't the first proxy retain prior - // X-Forwarded-For information as a comma+space - // separated list and fold multiple headers into one. - prior, ok := outreq.Header["X-Forwarded-For"] - omit := ok && prior == nil // Issue 38079: nil now means don't populate the header - if len(prior) > 0 { - clientIP = strings.Join(prior, ", ") + ", " + clientIP - } - if !omit { - outreq.Header.Set("X-Forwarded-For", clientIP) - } - } - - res, err := transport.RoundTrip(outreq) - if err != nil { - p.getErrorHandler()(rw, outreq, err) - return - } - - // Deal with 101 Switching Protocols responses: (WebSocket, h2c, etc) - if res.StatusCode == http.StatusSwitchingProtocols { - if !p.modifyResponse(rw, res, outreq) { - return - } - p.handleUpgradeResponse(rw, outreq, res) - return - } - - removeConnectionHeaders(res.Header) - - for _, h := range hopHeaders { - res.Header.Del(h) - } - - if !p.modifyResponse(rw, res, outreq) { - return - } - - copyHeader(rw.Header(), res.Header) - - // The "Trailer" header isn't included in the Transport's response, - // at least for *http.Transport. Build it up from Trailer. - announcedTrailers := len(res.Trailer) - if announcedTrailers > 0 { - trailerKeys := make([]string, 0, len(res.Trailer)) - for k := range res.Trailer { - trailerKeys = append(trailerKeys, k) - } - rw.Header().Add("Trailer", strings.Join(trailerKeys, ", ")) - } - - rw.WriteHeader(res.StatusCode) - - err = p.copyResponse(rw, res.Body, p.flushInterval(res)) - if err != nil { - defer res.Body.Close() - // Since we're streaming the response, if we run into an error all we can do - // is abort the request. Issue 23643: ReverseProxy should use ErrAbortHandler - // on read error while copying body. - if !shouldPanicOnCopyError(req) { - p.logf("suppressing panic for copyResponse error in test; copy error: %v", err) - return - } - panic(http.ErrAbortHandler) - } - res.Body.Close() // close now, instead of defer, to populate res.Trailer - - if len(res.Trailer) > 0 { - // Force chunking if we saw a response trailer. - // This prevents net/http from calculating the length for short - // bodies and adding a Content-Length. - if fl, ok := rw.(http.Flusher); ok { - fl.Flush() - } - } - - if len(res.Trailer) == announcedTrailers { - copyHeader(rw.Header(), res.Trailer) - return - } - - for k, vv := range res.Trailer { - k = http.TrailerPrefix + k - for _, v := range vv { - rw.Header().Add(k, v) - } - } -} - -var inOurTests bool // whether we're in our own tests - -// shouldPanicOnCopyError reports whether the reverse proxy should -// panic with http.ErrAbortHandler. This is the right thing to do by -// default, but Go 1.10 and earlier did not, so existing unit tests -// weren't expecting panics. Only panic in our own tests, or when -// running under the HTTP server. -func shouldPanicOnCopyError(req *http.Request) bool { - if inOurTests { - // Our tests know to handle this panic. - return true - } - if req.Context().Value(http.ServerContextKey) != nil { - // We seem to be running under an HTTP server, so - // it'll recover the panic. - return true - } - // Otherwise act like Go 1.10 and earlier to not break - // existing tests. - return false -} - -// removeConnectionHeaders removes hop-by-hop headers listed in the "Connection" header of h. -// See RFC 7230, section 6.1 -func removeConnectionHeaders(h http.Header) { - for _, f := range h["Connection"] { - for _, sf := range strings.Split(f, ",") { - if sf = textproto.TrimString(sf); sf != "" { - h.Del(sf) - } - } - } -} - -// flushInterval returns the p.FlushInterval value, conditionally -// overriding its value for a specific request/response. -func (p *ReverseProxy) flushInterval(res *http.Response) time.Duration { - resCT := res.Header.Get("Content-Type") - - // For Server-Sent Events responses, flush immediately. - // The MIME type is defined in https://www.w3.org/TR/eventsource/#text-event-stream - if resCT == "text/event-stream" { - return -1 // negative means immediately - } - - // We might have the case of streaming for which Content-Length might be unset. - if res.ContentLength == -1 { - return -1 - } - - return p.FlushInterval -} - -func (p *ReverseProxy) copyResponse(dst io.Writer, src io.Reader, flushInterval time.Duration) error { - if flushInterval != 0 { - if wf, ok := dst.(writeFlusher); ok { - mlw := &maxLatencyWriter{ - dst: wf, - latency: flushInterval, - } - defer mlw.stop() - - // set up initial timer so headers get flushed even if body writes are delayed - mlw.flushPending = true - mlw.t = time.AfterFunc(flushInterval, mlw.delayedFlush) - - dst = mlw - } - } - - var buf []byte - if p.BufferPool != nil { - buf = p.BufferPool.Get() - defer p.BufferPool.Put(buf) - } - _, err := p.copyBuffer(dst, src, buf) - return err -} - -// copyBuffer returns any write errors or non-EOF read errors, and the amount -// of bytes written. -func (p *ReverseProxy) copyBuffer(dst io.Writer, src io.Reader, buf []byte) (int64, error) { - if len(buf) == 0 { - buf = make([]byte, 32*1024) - } - var written int64 - for { - nr, rerr := src.Read(buf) - if rerr != nil && rerr != io.EOF && rerr != context.Canceled { - p.logf("httputil: ReverseProxy read error during body copy: %v", rerr) - } - if nr > 0 { - nw, werr := dst.Write(buf[:nr]) - if nw > 0 { - written += int64(nw) - } - if werr != nil { - return written, werr - } - if nr != nw { - return written, io.ErrShortWrite - } - } - if rerr != nil { - if rerr == io.EOF { - rerr = nil - } - return written, rerr - } - } -} - -func (p *ReverseProxy) logf(format string, args ...interface{}) { - if p.ErrorLog != nil { - p.ErrorLog.Printf(format, args...) - } else { - log.Printf(format, args...) - } -} - -type writeFlusher interface { - io.Writer - http.Flusher -} - -type maxLatencyWriter struct { - dst writeFlusher - latency time.Duration // non-zero; negative means to flush immediately - - mu sync.Mutex // protects t, flushPending, and dst.Flush - t *time.Timer - flushPending bool -} - -func (m *maxLatencyWriter) Write(p []byte) (n int, err error) { - m.mu.Lock() - defer m.mu.Unlock() - n, err = m.dst.Write(p) - if m.latency < 0 { - m.dst.Flush() - return - } - if m.flushPending { - return - } - if m.t == nil { - m.t = time.AfterFunc(m.latency, m.delayedFlush) - } else { - m.t.Reset(m.latency) - } - m.flushPending = true - return -} - -func (m *maxLatencyWriter) delayedFlush() { - m.mu.Lock() - defer m.mu.Unlock() - if !m.flushPending { // if stop was called but AfterFunc already started this goroutine - return - } - m.dst.Flush() - m.flushPending = false -} - -func (m *maxLatencyWriter) stop() { - m.mu.Lock() - defer m.mu.Unlock() - m.flushPending = false - if m.t != nil { - m.t.Stop() - } -} - -func upgradeType(h http.Header) string { - if !httpguts.HeaderValuesContainsToken(h["Connection"], "Upgrade") { - return "" - } - return strings.ToLower(h.Get("Upgrade")) -} - -func (p *ReverseProxy) handleUpgradeResponse(rw http.ResponseWriter, req *http.Request, res *http.Response) { - reqUpType := upgradeType(req.Header) - resUpType := upgradeType(res.Header) - if reqUpType != resUpType { - p.getErrorHandler()(rw, req, fmt.Errorf("backend tried to switch protocol %q when %q was requested", resUpType, reqUpType)) - return - } - - hj, ok := rw.(http.Hijacker) - if !ok { - p.getErrorHandler()(rw, req, fmt.Errorf("can't switch protocols using non-Hijacker ResponseWriter type %T", rw)) - return - } - backConn, ok := res.Body.(io.ReadWriteCloser) - if !ok { - p.getErrorHandler()(rw, req, fmt.Errorf("internal error: 101 switching protocols response with non-writable body")) - return - } - - backConnCloseCh := make(chan bool) - go func() { - // Ensure that the cancelation of a request closes the backend. - // See issue https://golang.org/issue/35559. - select { - case <-req.Context().Done(): - case <-backConnCloseCh: - } - backConn.Close() - }() - - defer close(backConnCloseCh) - - conn, brw, err := hj.Hijack() - if err != nil { - p.getErrorHandler()(rw, req, fmt.Errorf("Hijack failed on protocol switch: %v", err)) - return - } - defer conn.Close() - - copyHeader(rw.Header(), res.Header) - - res.Header = rw.Header() - res.Body = nil // so res.Write only writes the headers; we have res.Body in backConn above - if err := res.Write(brw); err != nil { - p.getErrorHandler()(rw, req, fmt.Errorf("response write: %v", err)) - return - } - if err := brw.Flush(); err != nil { - p.getErrorHandler()(rw, req, fmt.Errorf("response flush: %v", err)) - return - } - errc := make(chan error, 1) - spc := switchProtocolCopier{user: conn, backend: backConn} - go spc.copyToBackend(errc) - go spc.copyFromBackend(errc) - <-errc - return -} - -// switchProtocolCopier exists so goroutines proxying data back and -// forth have nice names in stacks. -type switchProtocolCopier struct { - user, backend io.ReadWriter -} - -func (c switchProtocolCopier) copyFromBackend(errc chan<- error) { - _, err := io.Copy(c.user, c.backend) - errc <- err -} - -func (c switchProtocolCopier) copyToBackend(errc chan<- error) { - _, err := io.Copy(c.backend, c.user) - errc <- err -} diff --git a/pkg/util/vhost/router.go b/pkg/util/vhost/router.go index 768420a47e7..281e164bdf9 100644 --- a/pkg/util/vhost/router.go +++ b/pkg/util/vhost/router.go @@ -7,9 +7,7 @@ import ( "sync" ) -var ( - ErrRouterConfigConflict = errors.New("router config conflict") -) +var ErrRouterConfigConflict = errors.New("router config conflict") type routerByHTTPUser map[string][]*Router @@ -133,9 +131,11 @@ type ByLocation []*Router func (a ByLocation) Len() int { return len(a) } + func (a ByLocation) Swap(i, j int) { a[i], a[j] = a[j], a[i] } + func (a ByLocation) Less(i, j int) bool { return strings.Compare(a[i].location, a[j].location) < 0 } diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index 2957cec4e78..50690052f85 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -19,11 +19,11 @@ import ( "strings" "time" + "github.com/fatedier/golib/errors" + "github.com/fatedier/frp/pkg/util/log" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" - - "github.com/fatedier/golib/errors" ) type RouteInfo string @@ -36,10 +36,12 @@ const ( RouteInfoURLHost RouteInfo = "urlHost" ) -type muxFunc func(net.Conn) (net.Conn, map[string]string, error) -type httpAuthFunc func(net.Conn, string, string, string) (bool, error) -type hostRewriteFunc func(net.Conn, string) (net.Conn, error) -type successFunc func(net.Conn, map[string]string) error +type ( + muxFunc func(net.Conn) (net.Conn, map[string]string, error) + httpAuthFunc func(net.Conn, string, string, string) (bool, error) + hostRewriteFunc func(net.Conn, string) (net.Conn, error) + successFunc func(net.Conn, map[string]string) error +) // Muxer is only used for https and tcpmux proxy. type Muxer struct { @@ -60,7 +62,6 @@ func NewMuxer( rewriteFunc hostRewriteFunc, timeout time.Duration, ) (mux *Muxer, err error) { - mux = &Muxer{ listener: listener, timeout: timeout, @@ -111,9 +112,8 @@ func (v *Muxer) Listen(ctx context.Context, cfg *RouteConfig) (l *Listener, err } func (v *Muxer) getListener(name, path, httpUser string) (*Listener, bool) { - findRouter := func(inName, inPath, inHTTPUser string) (*Listener, bool) { - vr, ok := v.registryRouter.Get(inName, inPath, httpUser) + vr, ok := v.registryRouter.Get(inName, inPath, inHTTPUser) if ok { return vr.payload.(*Listener), true } @@ -167,14 +167,14 @@ func (v *Muxer) run() { func (v *Muxer) handle(c net.Conn) { if err := c.SetDeadline(time.Now().Add(v.timeout)); err != nil { - c.Close() + _ = c.Close() return } sConn, reqInfoMap, err := v.vhostFunc(c) if err != nil { log.Debug("get hostname from http/https request error: %v", err) - c.Close() + _ = c.Close() return } @@ -184,9 +184,12 @@ func (v *Muxer) handle(c net.Conn) { l, ok := v.getListener(name, path, httpUser) if !ok { res := notFoundResponse() - res.Write(c) + if res.Body != nil { + defer res.Body.Close() + } + _ = res.Write(c) log.Debug("http request for host [%s] path [%s] httpUser [%s] not found", name, path, httpUser) - c.Close() + _ = c.Close() return } @@ -194,7 +197,7 @@ func (v *Muxer) handle(c net.Conn) { if v.successFunc != nil { if err := v.successFunc(c, reqInfoMap); err != nil { xl.Info("success func failure on vhost connection: %v", err) - c.Close() + _ = c.Close() return } } @@ -203,17 +206,20 @@ func (v *Muxer) handle(c net.Conn) { // then verify user access if l.mux.authFunc != nil && l.userName != "" && l.passWord != "" { bAccess, err := l.mux.authFunc(c, l.userName, l.passWord, reqInfoMap["Authorization"]) - if bAccess == false || err != nil { + if !bAccess || err != nil { xl.Debug("check http Authorization failed") res := noAuthResponse() - res.Write(c) - c.Close() + if res.Body != nil { + defer res.Body.Close() + } + _ = res.Write(c) + _ = c.Close() return } } if err = sConn.SetDeadline(time.Time{}); err != nil { - c.Close() + _ = c.Close() return } c = sConn diff --git a/server/control.go b/server/control.go index 197c94de968..3fcd3ae434a 100644 --- a/server/control.go +++ b/server/control.go @@ -23,6 +23,10 @@ import ( "sync" "time" + "github.com/fatedier/golib/control/shutdown" + "github.com/fatedier/golib/crypto" + "github.com/fatedier/golib/errors" + "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" @@ -35,10 +39,6 @@ import ( "github.com/fatedier/frp/server/controller" "github.com/fatedier/frp/server/metrics" "github.com/fatedier/frp/server/proxy" - - "github.com/fatedier/golib/control/shutdown" - "github.com/fatedier/golib/crypto" - "github.com/fatedier/golib/errors" ) type ControlManager struct { @@ -154,7 +154,6 @@ func NewControl( loginMsg *msg.Login, serverCfg config.ServerCommonConf, ) *Control { - poolCount := loginMsg.PoolCount if poolCount > int(serverCfg.MaxPoolCount) { poolCount = int(serverCfg.MaxPoolCount) @@ -193,7 +192,7 @@ func (ctl *Control) Start() { ServerUDPPort: ctl.serverCfg.BindUDPPort, Error: "", } - msg.WriteMsg(ctl.conn, loginRespMsg) + _ = msg.WriteMsg(ctl.conn, loginRespMsg) go ctl.writer() for i := 0; i < ctl.poolCount; i++ { @@ -270,7 +269,7 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { } // When we get a work connection from pool, replace it with a new one. - errors.PanicToError(func() { + _ = errors.PanicToError(func() { ctl.sendCh <- &msg.ReqWorkConn{} }) return @@ -388,7 +387,7 @@ func (ctl *Control) stoper() { }, } go func() { - ctl.pluginManager.CloseProxy(notifyContent) + _ = ctl.pluginManager.CloseProxy(notifyContent) }() } @@ -467,7 +466,7 @@ func (ctl *Control) manager() { } ctl.sendCh <- resp case *msg.CloseProxy: - ctl.CloseProxy(m) + _ = ctl.CloseProxy(m) xl.Info("close proxy [%s] success", m.ProxyName) case *msg.Ping: content := &plugin.PingContent{ @@ -528,13 +527,13 @@ func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err err = fmt.Errorf("exceed the max_ports_per_client") return } - ctl.portsUsedNum = ctl.portsUsedNum + pxy.GetUsedPortsNum() + ctl.portsUsedNum += pxy.GetUsedPortsNum() ctl.mu.Unlock() defer func() { if err != nil { ctl.mu.Lock() - ctl.portsUsedNum = ctl.portsUsedNum - pxy.GetUsedPortsNum() + ctl.portsUsedNum -= pxy.GetUsedPortsNum() ctl.mu.Unlock() } }() @@ -570,7 +569,7 @@ func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error) { } if ctl.serverCfg.MaxPortsPerClient > 0 { - ctl.portsUsedNum = ctl.portsUsedNum - pxy.GetUsedPortsNum() + ctl.portsUsedNum -= pxy.GetUsedPortsNum() } pxy.Close() ctl.pxyManager.Del(pxy.GetName()) @@ -590,7 +589,7 @@ func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error) { }, } go func() { - ctl.pluginManager.CloseProxy(notifyContent) + _ = ctl.pluginManager.CloseProxy(notifyContent) }() return diff --git a/server/dashboard.go b/server/dashboard.go index 68e99f8a2c1..02c86325b61 100644 --- a/server/dashboard.go +++ b/server/dashboard.go @@ -21,11 +21,11 @@ import ( "net/http/pprof" "time" - "github.com/fatedier/frp/assets" - frpNet "github.com/fatedier/frp/pkg/util/net" - "github.com/gorilla/mux" "github.com/prometheus/client_golang/prometheus/promhttp" + + "github.com/fatedier/frp/assets" + frpNet "github.com/fatedier/frp/pkg/util/net" ) var ( @@ -92,6 +92,8 @@ func (svr *Service) RunDashboardServer(address string) (err error) { } ln = tls.NewListener(ln, tlsCfg) } - go server.Serve(ln) + go func() { + _ = server.Serve(ln) + }() return } diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 7d159c7a89a..6f7ecfd793c 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -18,13 +18,13 @@ import ( "encoding/json" "net/http" + "github.com/gorilla/mux" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/metrics/mem" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" - - "github.com/gorilla/mux" ) type GeneralResponse struct { @@ -63,7 +63,7 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { - w.Write([]byte(res.Msg)) + _, _ = w.Write([]byte(res.Msg)) } }() @@ -179,7 +179,7 @@ func (svr *Service) APIProxyByType(w http.ResponseWriter, r *http.Request) { log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { - w.Write([]byte(res.Msg)) + _, _ = w.Write([]byte(res.Msg)) } }() log.Info("Http request: [%s]", r.URL.Path) @@ -245,12 +245,12 @@ func (svr *Service) APIProxyByTypeAndName(w http.ResponseWriter, r *http.Request log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { - w.Write([]byte(res.Msg)) + _, _ = w.Write([]byte(res.Msg)) } }() log.Info("Http request: [%s]", r.URL.Path) - proxyStatsResp := GetProxyStatsResp{} + var proxyStatsResp GetProxyStatsResp proxyStatsResp, res.Code, res.Msg = svr.getProxyStatsByTypeAndName(proxyType, name) if res.Code != 200 { return @@ -313,7 +313,7 @@ func (svr *Service) APIProxyTraffic(w http.ResponseWriter, r *http.Request) { log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { - w.Write([]byte(res.Msg)) + _, _ = w.Write([]byte(res.Msg)) } }() log.Info("Http request: [%s]", r.URL.Path) diff --git a/server/group/http.go b/server/group/http.go index fb00f0c7086..7e081eb535e 100644 --- a/server/group/http.go +++ b/server/group/http.go @@ -31,7 +31,6 @@ func (ctl *HTTPGroupController) Register( proxyName, group, groupKey string, routeConfig vhost.RouteConfig, ) (err error) { - indexKey := group ctl.mu.Lock() g, ok := ctl.groups[indexKey] @@ -86,7 +85,6 @@ func (g *HTTPGroup) Register( proxyName, group, groupKey string, routeConfig vhost.RouteConfig, ) (err error) { - g.mu.Lock() defer g.mu.Unlock() if len(g.createFuncs) == 0 { @@ -152,7 +150,7 @@ func (g *HTTPGroup) createConn(remoteAddr string) (net.Conn, error) { routeByHTTPUser := g.routeByHTTPUser if len(g.pxyNames) > 0 { name := g.pxyNames[int(newIndex)%len(g.pxyNames)] - f, _ = g.createFuncs[name] + f = g.createFuncs[name] } g.mu.RUnlock() diff --git a/server/group/tcp.go b/server/group/tcp.go index c7fd2b2799d..c0dcd5f7e3c 100644 --- a/server/group/tcp.go +++ b/server/group/tcp.go @@ -19,9 +19,9 @@ import ( "strconv" "sync" - "github.com/fatedier/frp/server/ports" - gerr "github.com/fatedier/golib/errors" + + "github.com/fatedier/frp/server/ports" ) // TCPGroupCtl manage all TCPGroups @@ -44,8 +44,8 @@ func NewTCPGroupCtl(portManager *ports.Manager) *TCPGroupCtl { // Listen is the wrapper for TCPGroup's Listen // If there are no group, we will create one here func (tgc *TCPGroupCtl) Listen(proxyName string, group string, groupKey string, - addr string, port int) (l net.Listener, realPort int, err error) { - + addr string, port int, +) (l net.Listener, realPort int, err error) { tgc.mu.Lock() tcpGroup, ok := tgc.groups[group] if !ok { @@ -73,7 +73,6 @@ type TCPGroup struct { realPort int acceptCh chan net.Conn - index uint64 tcpLn net.Listener lns []*TCPGroupListener ctl *TCPGroupCtl diff --git a/server/group/tcpmux.go b/server/group/tcpmux.go index fd805d91ebe..2da85cee4fe 100644 --- a/server/group/tcpmux.go +++ b/server/group/tcpmux.go @@ -20,11 +20,11 @@ import ( "net" "sync" + gerr "github.com/fatedier/golib/errors" + "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/util/tcpmux" "github.com/fatedier/frp/pkg/util/vhost" - - gerr "github.com/fatedier/golib/errors" ) // TCPMuxGroupCtl manage all TCPMuxGroups @@ -51,7 +51,6 @@ func (tmgc *TCPMuxGroupCtl) Listen( multiplexer, group, groupKey string, routeConfig vhost.RouteConfig, ) (l net.Listener, err error) { - tmgc.mu.Lock() tcpMuxGroup, ok := tmgc.groups[group] if !ok { @@ -84,7 +83,6 @@ type TCPMuxGroup struct { routeByHTTPUser string acceptCh chan net.Conn - index uint64 tcpMuxLn net.Listener lns []*TCPMuxGroupListener ctl *TCPMuxGroupCtl @@ -108,7 +106,6 @@ func (tmg *TCPMuxGroup) HTTPConnectListen( group, groupKey string, routeConfig vhost.RouteConfig, ) (ln *TCPMuxGroupListener, err error) { - tmg.mu.Lock() defer tmg.mu.Unlock() if len(tmg.lns) == 0 { diff --git a/server/proxy/http.go b/server/proxy/http.go index e0e2f23cb50..e70cb65f1c5 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -19,13 +19,13 @@ import ( "net" "strings" + frpIo "github.com/fatedier/golib/io" + "github.com/fatedier/frp/pkg/config" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" "github.com/fatedier/frp/server/metrics" - - frpIo "github.com/fatedier/golib/io" ) type HTTPProxy struct { @@ -89,7 +89,7 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { pxy.rc.HTTPReverseProxy.UnRegister(tmpRouteConfig) }) } - addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, int(pxy.serverCfg.VhostHTTPPort))) + addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPPort)) xl.Info("http proxy listen for host [%s] location [%s] group [%s], routeByHTTPUser [%s]", routeConfig.Domain, routeConfig.Location, pxy.cfg.Group, pxy.cfg.RouteByHTTPUser) } diff --git a/server/proxy/https.go b/server/proxy/https.go index cd566462201..42ecf35d76f 100644 --- a/server/proxy/https.go +++ b/server/proxy/https.go @@ -62,7 +62,7 @@ func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { } xl.Info("https proxy listen for host [%s]", routeConfig.Domain) pxy.listeners = append(pxy.listeners, l) - addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, int(pxy.serverCfg.VhostHTTPSPort))) + addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPSPort)) } pxy.startListenHandler(pxy, HandleUserTCPConnection) diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 43c2c74e9b1..808d93161d5 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -23,6 +23,8 @@ import ( "sync" "time" + frpIo "github.com/fatedier/golib/io" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" @@ -30,8 +32,6 @@ import ( "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/frp/server/controller" "github.com/fatedier/frp/server/metrics" - - frpIo "github.com/fatedier/golib/io" ) type GetWorkConnFn func() (net.Conn, error) @@ -184,8 +184,8 @@ func (pxy *BaseProxy) startListenHandler(p Proxy, handler func(Proxy, net.Conn, } func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.ResourceController, poolCount int, - getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf) (pxy Proxy, err error) { - + getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, +) (pxy Proxy, err error) { xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseInfo().ProxyName) basePxy := BaseProxy{ name: pxyConf.GetBaseInfo().ProxyName, diff --git a/server/proxy/udp.go b/server/proxy/udp.go index 9e3c067509d..53865540325 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -22,14 +22,14 @@ import ( "strconv" "time" + "github.com/fatedier/golib/errors" + frpIo "github.com/fatedier/golib/io" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/server/metrics" - - "github.com/fatedier/golib/errors" - frpIo "github.com/fatedier/golib/io" ) type UDPProxy struct { @@ -98,18 +98,20 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { ) xl.Trace("loop waiting message from udp workConn") // client will send heartbeat in workConn for keeping alive - conn.SetReadDeadline(time.Now().Add(time.Duration(60) * time.Second)) + _ = conn.SetReadDeadline(time.Now().Add(time.Duration(60) * time.Second)) if rawMsg, errRet = msg.ReadMsg(conn); errRet != nil { xl.Warn("read from workConn for udp error: %v", errRet) - conn.Close() + _ = conn.Close() // notify proxy to start a new work connection // ignore error here, it means the proxy is closed - errors.PanicToError(func() { + _ = errors.PanicToError(func() { pxy.checkCloseCh <- 1 }) return } - conn.SetReadDeadline(time.Time{}) + if err := conn.SetReadDeadline(time.Time{}); err != nil { + xl.Warn("set read deadline error: %v", err) + } switch m := rawMsg.(type) { case *msg.Ping: xl.Trace("udp work conn get ping message") diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index 317a3d484c9..a1b45d5446c 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -17,10 +17,10 @@ package proxy import ( "fmt" + "github.com/fatedier/golib/errors" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" - - "github.com/fatedier/golib/errors" ) type XTCPProxy struct { @@ -91,7 +91,7 @@ func (pxy *XTCPProxy) GetConf() config.ProxyConf { func (pxy *XTCPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.NatHoleController.CloseClient(pxy.GetName()) - errors.PanicToError(func() { + _ = errors.PanicToError(func() { close(pxy.closeCh) }) } diff --git a/server/service.go b/server/service.go index c3d398b2749..68308270380 100644 --- a/server/service.go +++ b/server/service.go @@ -26,6 +26,9 @@ import ( "strconv" "time" + "github.com/fatedier/golib/net/mux" + fmux "github.com/hashicorp/yamux" + "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" @@ -47,9 +50,6 @@ import ( "github.com/fatedier/frp/server/ports" "github.com/fatedier/frp/server/proxy" "github.com/fatedier/frp/server/visitor" - - "github.com/fatedier/golib/net/mux" - fmux "github.com/hashicorp/yamux" ) const ( @@ -127,26 +127,26 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.TCPMuxHTTPConnectPort)) l, err = net.Listen("tcp", address) if err != nil { - err = fmt.Errorf("Create server listener error, %v", err) + err = fmt.Errorf("create server listener error, %v", err) return } svr.rc.TCPMuxHTTPConnectMuxer, err = tcpmux.NewHTTPConnectTCPMuxer(l, cfg.TCPMuxPassthrough, vhostReadWriteTimeout) if err != nil { - err = fmt.Errorf("Create vhost tcpMuxer error, %v", err) + err = fmt.Errorf("create vhost tcpMuxer error, %v", err) return } log.Info("tcpmux httpconnect multiplexer listen on %s, passthough: %v", address, cfg.TCPMuxPassthrough) } // Init all plugins - plugin_names := make([]string, 0, len(cfg.HTTPPlugins)) + pluginNames := make([]string, 0, len(cfg.HTTPPlugins)) for n := range cfg.HTTPPlugins { - plugin_names = append(plugin_names, n) + pluginNames = append(pluginNames, n) } - sort.Strings(plugin_names) + sort.Strings(pluginNames) - for _, name := range plugin_names { + for _, name := range pluginNames { svr.pluginManager.Register(plugin.NewHTTPPluginOptions(cfg.HTTPPlugins[name])) log.Info("plugin [%s] has been registered", name) } @@ -181,13 +181,15 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindPort)) ln, err := net.Listen("tcp", address) if err != nil { - err = fmt.Errorf("Create server listener error, %v", err) + err = fmt.Errorf("create server listener error, %v", err) return } svr.muxer = mux.NewMux(ln) svr.muxer.SetKeepAlive(time.Duration(cfg.TCPKeepAlive) * time.Second) - go svr.muxer.Serve() + go func() { + _ = svr.muxer.Serve() + }() ln = svr.muxer.DefaultListener() svr.listener = ln @@ -198,7 +200,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.KCPBindPort)) svr.kcpListener, err = frpNet.ListenKcp(address) if err != nil { - err = fmt.Errorf("Listen on kcp address udp %s error: %v", address, err) + err = fmt.Errorf("listen on kcp address udp %s error: %v", address, err) return } log.Info("frps kcp listen on udp %s", address) @@ -229,11 +231,13 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { } else { l, err = net.Listen("tcp", address) if err != nil { - err = fmt.Errorf("Create vhost http listener error, %v", err) + err = fmt.Errorf("create vhost http listener error, %v", err) return } } - go server.Serve(l) + go func() { + _ = server.Serve(l) + }() log.Info("http service listen on %s", address) } @@ -246,7 +250,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.VhostHTTPSPort)) l, err = net.Listen("tcp", address) if err != nil { - err = fmt.Errorf("Create server listener error, %v", err) + err = fmt.Errorf("create server listener error, %v", err) return } log.Info("https service listen on %s", address) @@ -254,7 +258,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { svr.rc.VhostHTTPSMuxer, err = vhost.NewHTTPSMuxer(l, vhostReadWriteTimeout) if err != nil { - err = fmt.Errorf("Create vhost httpsMuxer error, %v", err) + err = fmt.Errorf("create vhost httpsMuxer error, %v", err) return } } @@ -271,7 +275,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindUDPPort)) nc, err = nathole.NewController(address) if err != nil { - err = fmt.Errorf("Create nat hole controller error, %v", err) + err = fmt.Errorf("create nat hole controller error, %v", err) return } svr.rc.NatHoleController = nc @@ -287,7 +291,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.DashboardAddr, strconv.Itoa(cfg.DashboardPort)) err = svr.RunDashboardServer(address) if err != nil { - err = fmt.Errorf("Create dashboard web server error, %v", err) + err = fmt.Errorf("create dashboard web server error, %v", err) return } log.Info("Dashboard listen on %s", address) @@ -324,13 +328,13 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn) { err error ) - conn.SetReadDeadline(time.Now().Add(connReadTimeout)) + _ = conn.SetReadDeadline(time.Now().Add(connReadTimeout)) if rawMsg, err = msg.ReadMsg(conn); err != nil { log.Trace("Failed to read message: %v", err) conn.Close() return } - conn.SetReadDeadline(time.Time{}) + _ = conn.SetReadDeadline(time.Time{}) switch m := rawMsg.(type) { case *msg.Login: @@ -349,7 +353,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn) { // Otherwise send success message in control's work goroutine. if err != nil { xl.Warn("register control error: %v", err) - msg.WriteMsg(conn, &msg.LoginResp{ + _ = msg.WriteMsg(conn, &msg.LoginResp{ Version: version.Full(), Error: util.GenerateResponseErrorString("register control error", err, svr.cfg.DetailedErrorsToClient), }) @@ -362,13 +366,13 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn) { case *msg.NewVisitorConn: if err = svr.RegisterVisitorConn(conn, m); err != nil { xl.Warn("register visitor conn error: %v", err) - msg.WriteMsg(conn, &msg.NewVisitorConnResp{ + _ = msg.WriteMsg(conn, &msg.NewVisitorConnResp{ ProxyName: m.ProxyName, Error: util.GenerateResponseErrorString("register visitor conn error", err, svr.cfg.DetailedErrorsToClient), }) conn.Close() } else { - msg.WriteMsg(conn, &msg.NewVisitorConnResp{ + _ = msg.WriteMsg(conn, &msg.NewVisitorConnResp{ ProxyName: m.ProxyName, Error: "", }) @@ -504,7 +508,7 @@ func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) } if err != nil { xl.Warn("invalid NewWorkConn with run id [%s]", newMsg.RunID) - msg.WriteMsg(workConn, &msg.StartWorkConn{ + _ = msg.WriteMsg(workConn, &msg.StartWorkConn{ Error: util.GenerateResponseErrorString("invalid NewWorkConn", err, ctl.serverCfg.DetailedErrorsToClient), }) return fmt.Errorf("invalid NewWorkConn with run id [%s]", newMsg.RunID) diff --git a/server/visitor/visitor.go b/server/visitor/visitor.go index 4796b416fbb..70f603b2de6 100644 --- a/server/visitor/visitor.go +++ b/server/visitor/visitor.go @@ -20,10 +20,10 @@ import ( "net" "sync" + frpIo "github.com/fatedier/golib/io" + frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" - - frpIo "github.com/fatedier/golib/io" ) // Manager for visitor listeners. @@ -57,8 +57,8 @@ func (vm *Manager) Listen(name string, sk string) (l *frpNet.CustomListener, err } func (vm *Manager) NewConn(name string, conn net.Conn, timestamp int64, signKey string, - useEncryption bool, useCompression bool) (err error) { - + useEncryption bool, useCompression bool, +) (err error) { vm.mu.RLock() defer vm.mu.RUnlock() diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index 13f17168477..1f1b20072f2 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -5,6 +5,8 @@ import ( "fmt" "strings" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" @@ -12,18 +14,16 @@ import ( "github.com/fatedier/frp/test/e2e/mock/server/streamserver" "github.com/fatedier/frp/test/e2e/pkg/port" "github.com/fatedier/frp/test/e2e/pkg/request" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Basic]", func() { +var _ = ginkgo.Describe("[Feature: Basic]", func() { f := framework.NewDefaultFramework() - Describe("TCP && UDP", func() { + ginkgo.Describe("TCP && UDP", func() { types := []string{"tcp", "udp"} for _, t := range types { proxyType := t - It(fmt.Sprintf("Expose a %s echo server", strings.ToUpper(proxyType)), func() { + ginkgo.It(fmt.Sprintf("Expose a %s echo server", strings.ToUpper(proxyType)), func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -93,8 +93,8 @@ var _ = Describe("[Feature: Basic]", func() { } }) - Describe("HTTP", func() { - It("proxy to HTTP server", func() { + ginkgo.Describe("HTTP", func() { + ginkgo.It("proxy to HTTP server", func() { serverConf := consts.DefaultServerConfig vhostHTTPPort := f.AllocPort() serverConf += fmt.Sprintf(` @@ -175,8 +175,8 @@ var _ = Describe("[Feature: Basic]", func() { }) }) - Describe("HTTPS", func() { - It("proxy to HTTPS server", func() { + ginkgo.Describe("HTTPS", func() { + ginkgo.It("proxy to HTTPS server", func() { serverConf := consts.DefaultServerConfig vhostHTTPSPort := f.AllocPort() serverConf += fmt.Sprintf(` @@ -237,7 +237,7 @@ var _ = Describe("[Feature: Basic]", func() { framework.ExpectNoError(err) localServer := httpserver.New( httpserver.WithBindPort(localPort), - httpserver.WithTlsConfig(tlsConfig), + httpserver.WithTLSConfig(tlsConfig), httpserver.WithResponse([]byte("test")), ) f.RunServer("", localServer) @@ -275,11 +275,11 @@ var _ = Describe("[Feature: Basic]", func() { }) }) - Describe("STCP && SUDP", func() { + ginkgo.Describe("STCP && SUDP", func() { types := []string{"stcp", "sudp"} for _, t := range types { proxyType := t - It(fmt.Sprintf("Expose echo server with %s", strings.ToUpper(proxyType)), func() { + ginkgo.It(fmt.Sprintf("Expose echo server with %s", strings.ToUpper(proxyType)), func() { serverConf := consts.DefaultServerConfig clientServerConf := consts.DefaultClientConfig clientVisitorConf := consts.DefaultClientConfig @@ -381,8 +381,8 @@ var _ = Describe("[Feature: Basic]", func() { } }) - Describe("TCPMUX", func() { - It("Type tcpmux", func() { + ginkgo.Describe("TCPMUX", func() { + ginkgo.It("Type tcpmux", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig diff --git a/test/e2e/basic/client.go b/test/e2e/basic/client.go index 8d370928c51..10489d494d3 100644 --- a/test/e2e/basic/client.go +++ b/test/e2e/basic/client.go @@ -6,18 +6,18 @@ import ( "strings" "time" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/request" clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: ClientManage]", func() { +var _ = ginkgo.Describe("[Feature: ClientManage]", func() { f := framework.NewDefaultFramework() - It("Update && Reload API", func() { + ginkgo.It("Update && Reload API", func() { serverConf := consts.DefaultServerConfig adminPort := f.AllocPort() @@ -62,7 +62,9 @@ var _ = Describe("[Feature: ClientManage]", func() { // change p2 port and remove p3 proxy newClientConf := strings.ReplaceAll(conf, strconv.Itoa(p2Port), strconv.Itoa(newP2Port)) p3Index := strings.Index(newClientConf, "[p3]") - newClientConf = newClientConf[:p3Index] + if p3Index >= 0 { + newClientConf = newClientConf[:p3Index] + } err = client.UpdateConfig(newClientConf) framework.ExpectNoError(err) @@ -77,7 +79,7 @@ var _ = Describe("[Feature: ClientManage]", func() { framework.NewRequestExpect(f).Port(p3Port).Explain("p3 port").ExpectError(true).Ensure() }) - It("healthz", func() { + ginkgo.It("healthz", func() { serverConf := consts.DefaultServerConfig dashboardPort := f.AllocPort() @@ -99,5 +101,4 @@ var _ = Describe("[Feature: ClientManage]", func() { }).Port(dashboardPort). Ensure(framework.ExpectResponseCode(401)) }) - }) diff --git a/test/e2e/basic/client_server.go b/test/e2e/basic/client_server.go index c19077c4825..210500bac21 100644 --- a/test/e2e/basic/client_server.go +++ b/test/e2e/basic/client_server.go @@ -4,12 +4,12 @@ import ( "fmt" "strings" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/cert" "github.com/fatedier/frp/test/e2e/pkg/port" - - . "github.com/onsi/ginkgo" ) type generalTestConfigures struct { @@ -54,15 +54,15 @@ func runClientServerTest(f *framework.Framework, configures *generalTestConfigur // defineClientServerTest test a normal tcp and udp proxy with specified TestConfigures. func defineClientServerTest(desc string, f *framework.Framework, configures *generalTestConfigures) { - It(desc, func() { + ginkgo.It(desc, func() { runClientServerTest(f, configures) }) } -var _ = Describe("[Feature: Client-Server]", func() { +var _ = ginkgo.Describe("[Feature: Client-Server]", func() { f := framework.NewDefaultFramework() - Describe("Protocol", func() { + ginkgo.Describe("Protocol", func() { supportProtocols := []string{"tcp", "kcp", "websocket"} for _, protocol := range supportProtocols { configures := &generalTestConfigures{ @@ -76,7 +76,7 @@ var _ = Describe("[Feature: Client-Server]", func() { } }) - Describe("Authentication", func() { + ginkgo.Describe("Authentication", func() { defineClientServerTest("Token Correct", f, &generalTestConfigures{ server: "token = 123456", client: "token = 123456", @@ -89,7 +89,7 @@ var _ = Describe("[Feature: Client-Server]", func() { }) }) - Describe("TLS", func() { + ginkgo.Describe("TLS", func() { supportProtocols := []string{"tcp", "kcp", "websocket"} for _, protocol := range supportProtocols { tmp := protocol @@ -114,7 +114,7 @@ var _ = Describe("[Feature: Client-Server]", func() { }) }) - Describe("TLS with custom certificate", func() { + ginkgo.Describe("TLS with custom certificate", func() { supportProtocols := []string{"tcp", "kcp", "websocket"} var ( @@ -122,7 +122,7 @@ var _ = Describe("[Feature: Client-Server]", func() { serverCrtPath, serverKeyPath string clientCrtPath, clientKeyPath string ) - JustBeforeEach(func() { + ginkgo.JustBeforeEach(func() { generator := &cert.SelfSignedCertGenerator{} artifacts, err := generator.Generate("0.0.0.0") framework.ExpectNoError(err) @@ -131,7 +131,8 @@ var _ = Describe("[Feature: Client-Server]", func() { serverCrtPath = f.WriteTempFile("server.crt", string(artifacts.Cert)) serverKeyPath = f.WriteTempFile("server.key", string(artifacts.Key)) generator.SetCA(artifacts.CACert, artifacts.CAKey) - generator.Generate("0.0.0.0") + _, err = generator.Generate("0.0.0.0") + framework.ExpectNoError(err) clientCrtPath = f.WriteTempFile("client.crt", string(artifacts.Cert)) clientKeyPath = f.WriteTempFile("client.key", string(artifacts.Key)) }) @@ -139,7 +140,7 @@ var _ = Describe("[Feature: Client-Server]", func() { for _, protocol := range supportProtocols { tmp := protocol - It("one-way authentication: "+tmp, func() { + ginkgo.It("one-way authentication: "+tmp, func() { runClientServerTest(f, &generalTestConfigures{ server: fmt.Sprintf(` protocol = %s @@ -155,7 +156,7 @@ var _ = Describe("[Feature: Client-Server]", func() { }) }) - It("mutual authentication: "+tmp, func() { + ginkgo.It("mutual authentication: "+tmp, func() { runClientServerTest(f, &generalTestConfigures{ server: fmt.Sprintf(` protocol = %s @@ -176,13 +177,13 @@ var _ = Describe("[Feature: Client-Server]", func() { } }) - Describe("TLS with custom certificate and specified server name", func() { + ginkgo.Describe("TLS with custom certificate and specified server name", func() { var ( caCrtPath string serverCrtPath, serverKeyPath string clientCrtPath, clientKeyPath string ) - JustBeforeEach(func() { + ginkgo.JustBeforeEach(func() { generator := &cert.SelfSignedCertGenerator{} artifacts, err := generator.Generate("example.com") framework.ExpectNoError(err) @@ -191,12 +192,13 @@ var _ = Describe("[Feature: Client-Server]", func() { serverCrtPath = f.WriteTempFile("server.crt", string(artifacts.Cert)) serverKeyPath = f.WriteTempFile("server.key", string(artifacts.Key)) generator.SetCA(artifacts.CACert, artifacts.CAKey) - generator.Generate("example.com") + _, err = generator.Generate("example.com") + framework.ExpectNoError(err) clientCrtPath = f.WriteTempFile("client.crt", string(artifacts.Cert)) clientKeyPath = f.WriteTempFile("client.key", string(artifacts.Key)) }) - It("mutual authentication", func() { + ginkgo.It("mutual authentication", func() { runClientServerTest(f, &generalTestConfigures{ server: fmt.Sprintf(` tls_cert_file = %s @@ -213,7 +215,7 @@ var _ = Describe("[Feature: Client-Server]", func() { }) }) - It("mutual authentication with incorrect server name", func() { + ginkgo.It("mutual authentication with incorrect server name", func() { runClientServerTest(f, &generalTestConfigures{ server: fmt.Sprintf(` tls_cert_file = %s @@ -232,7 +234,7 @@ var _ = Describe("[Feature: Client-Server]", func() { }) }) - Describe("TLS with disable_custom_tls_first_byte", func() { + ginkgo.Describe("TLS with disable_custom_tls_first_byte", func() { supportProtocols := []string{"tcp", "kcp", "websocket"} for _, protocol := range supportProtocols { tmp := protocol @@ -250,7 +252,7 @@ var _ = Describe("[Feature: Client-Server]", func() { } }) - Describe("IPv6 bind address", func() { + ginkgo.Describe("IPv6 bind address", func() { supportProtocols := []string{"tcp", "kcp", "websocket"} for _, protocol := range supportProtocols { tmp := protocol diff --git a/test/e2e/basic/cmd.go b/test/e2e/basic/cmd.go index 562310fdf0e..bf8f2467cbe 100644 --- a/test/e2e/basic/cmd.go +++ b/test/e2e/basic/cmd.go @@ -5,21 +5,21 @@ import ( "strconv" "strings" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/pkg/request" - - . "github.com/onsi/ginkgo" ) const ( ConfigValidStr = "syntax is ok" ) -var _ = Describe("[Feature: Cmd]", func() { +var _ = ginkgo.Describe("[Feature: Cmd]", func() { f := framework.NewDefaultFramework() - Describe("Verify", func() { - It("frps valid", func() { + ginkgo.Describe("Verify", func() { + ginkgo.It("frps valid", func() { path := f.GenerateConfigFile(` [common] bind_addr = 0.0.0.0 @@ -29,7 +29,7 @@ var _ = Describe("[Feature: Cmd]", func() { framework.ExpectNoError(err) framework.ExpectTrue(strings.Contains(output, ConfigValidStr), "output: %s", output) }) - It("frps invalid", func() { + ginkgo.It("frps invalid", func() { path := f.GenerateConfigFile(` [common] bind_addr = 0.0.0.0 @@ -39,7 +39,7 @@ var _ = Describe("[Feature: Cmd]", func() { framework.ExpectNoError(err) framework.ExpectTrue(!strings.Contains(output, ConfigValidStr), "output: %s", output) }) - It("frpc valid", func() { + ginkgo.It("frpc valid", func() { path := f.GenerateConfigFile(` [common] server_addr = 0.0.0.0 @@ -49,7 +49,7 @@ var _ = Describe("[Feature: Cmd]", func() { framework.ExpectNoError(err) framework.ExpectTrue(strings.Contains(output, ConfigValidStr), "output: %s", output) }) - It("frpc invalid", func() { + ginkgo.It("frpc invalid", func() { path := f.GenerateConfigFile(` [common] server_addr = 0.0.0.0 @@ -62,8 +62,8 @@ var _ = Describe("[Feature: Cmd]", func() { }) }) - Describe("Single proxy", func() { - It("TCP", func() { + ginkgo.Describe("Single proxy", func() { + ginkgo.It("TCP", func() { serverPort := f.AllocPort() _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort)) framework.ExpectNoError(err) @@ -77,7 +77,7 @@ var _ = Describe("[Feature: Cmd]", func() { framework.NewRequestExpect(f).Port(remotePort).Ensure() }) - It("UDP", func() { + ginkgo.It("UDP", func() { serverPort := f.AllocPort() _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort)) framework.ExpectNoError(err) @@ -92,7 +92,7 @@ var _ = Describe("[Feature: Cmd]", func() { Port(remotePort).Ensure() }) - It("HTTP", func() { + ginkgo.It("HTTP", func() { serverPort := f.AllocPort() vhostHTTPPort := f.AllocPort() _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort), "--vhost_http_port", strconv.Itoa(vhostHTTPPort)) diff --git a/test/e2e/basic/config.go b/test/e2e/basic/config.go index d21bc57c9e2..3ea07b306b1 100644 --- a/test/e2e/basic/config.go +++ b/test/e2e/basic/config.go @@ -3,18 +3,18 @@ package basic import ( "fmt" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/port" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Config]", func() { +var _ = ginkgo.Describe("[Feature: Config]", func() { f := framework.NewDefaultFramework() - Describe("Template", func() { - It("render by env", func() { + ginkgo.Describe("Template", func() { + ginkgo.It("render by env", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -39,8 +39,8 @@ var _ = Describe("[Feature: Config]", func() { }) }) - Describe("Includes", func() { - It("split tcp proxies into different files", func() { + ginkgo.Describe("Includes", func() { + ginkgo.It("split tcp proxies into different files", func() { serverPort := f.AllocPort() serverConfigPath := f.GenerateConfigFile(fmt.Sprintf(` [common] diff --git a/test/e2e/basic/http.go b/test/e2e/basic/http.go index 8fe73594958..0de24abb80e 100644 --- a/test/e2e/basic/http.go +++ b/test/e2e/basic/http.go @@ -6,16 +6,16 @@ import ( "net/url" "strconv" + "github.com/gorilla/websocket" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/mock/server/httpserver" "github.com/fatedier/frp/test/e2e/pkg/request" - - "github.com/gorilla/websocket" - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: HTTP]", func() { +var _ = ginkgo.Describe("[Feature: HTTP]", func() { f := framework.NewDefaultFramework() getDefaultServerConf := func(vhostHTTPPort int) string { @@ -31,7 +31,7 @@ var _ = Describe("[Feature: HTTP]", func() { ) } - It("HTTP route by locations", func() { + ginkgo.It("HTTP route by locations", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) @@ -78,7 +78,7 @@ var _ = Describe("[Feature: HTTP]", func() { } }) - It("HTTP route by HTTP user", func() { + ginkgo.It("HTTP route by HTTP user", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) @@ -138,7 +138,7 @@ var _ = Describe("[Feature: HTTP]", func() { Ensure() }) - It("HTTP Basic Auth", func() { + ginkgo.It("HTTP Basic Auth", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) @@ -176,7 +176,7 @@ var _ = Describe("[Feature: HTTP]", func() { Ensure() }) - It("Wildcard domain", func() { + ginkgo.It("Wildcard domain", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) @@ -212,7 +212,7 @@ var _ = Describe("[Feature: HTTP]", func() { Ensure() }) - It("Subdomain", func() { + ginkgo.It("Subdomain", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) serverConf += ` @@ -257,7 +257,7 @@ var _ = Describe("[Feature: HTTP]", func() { Ensure() }) - It("Modify headers", func() { + ginkgo.It("Modify headers", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) @@ -265,7 +265,7 @@ var _ = Describe("[Feature: HTTP]", func() { localServer := httpserver.New( httpserver.WithBindPort(localPort), httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - w.Write([]byte(req.Header.Get("X-From-Where"))) + _, _ = w.Write([]byte(req.Header.Get("X-From-Where"))) })), ) f.RunServer("", localServer) @@ -290,7 +290,7 @@ var _ = Describe("[Feature: HTTP]", func() { Ensure() }) - It("Host Header Rewrite", func() { + ginkgo.It("Host Header Rewrite", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) @@ -298,7 +298,7 @@ var _ = Describe("[Feature: HTTP]", func() { localServer := httpserver.New( httpserver.WithBindPort(localPort), httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - w.Write([]byte(req.Host)) + _, _ = w.Write([]byte(req.Host)) })), ) f.RunServer("", localServer) @@ -322,7 +322,7 @@ var _ = Describe("[Feature: HTTP]", func() { Ensure() }) - It("Websocket protocol", func() { + ginkgo.It("Websocket protocol", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) diff --git a/test/e2e/basic/server.go b/test/e2e/basic/server.go index 74b421be5b1..a06f6d13d00 100644 --- a/test/e2e/basic/server.go +++ b/test/e2e/basic/server.go @@ -5,19 +5,19 @@ import ( "net" "strconv" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/port" "github.com/fatedier/frp/test/e2e/pkg/request" clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Server Manager]", func() { +var _ = ginkgo.Describe("[Feature: Server Manager]", func() { f := framework.NewDefaultFramework() - It("Ports Whitelist", func() { + ginkgo.It("Ports Whitelist", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -80,7 +80,7 @@ var _ = Describe("[Feature: Server Manager]", func() { }).ExpectError(true).Ensure() }) - It("Alloc Random Port", func() { + ginkgo.It("Alloc Random Port", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -124,7 +124,7 @@ var _ = Describe("[Feature: Server Manager]", func() { framework.NewRequestExpect(f).Protocol("udp").Port(port).Ensure() }) - It("Port Reuse", func() { + ginkgo.It("Port Reuse", func() { serverConf := consts.DefaultServerConfig // Use same port as PortServer serverConf += fmt.Sprintf(` @@ -145,7 +145,7 @@ var _ = Describe("[Feature: Server Manager]", func() { }).PortName(consts.PortServerName).Ensure() }) - It("healthz", func() { + ginkgo.It("healthz", func() { serverConf := consts.DefaultServerConfig dashboardPort := f.AllocPort() diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index b392954bf09..6b0d3e01c7d 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -3,12 +3,12 @@ package e2e import ( "testing" - "github.com/fatedier/frp/pkg/util/log" - "github.com/fatedier/frp/test/e2e/framework" - "github.com/onsi/ginkgo" "github.com/onsi/ginkgo/config" "github.com/onsi/gomega" + + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/test/e2e/framework" ) var _ = ginkgo.SynchronizedBeforeSuite(func() []byte { diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index 2dddb95234c..d1cc6396895 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -6,15 +6,14 @@ import ( "os" "testing" - "github.com/fatedier/frp/pkg/util/log" - "github.com/fatedier/frp/test/e2e/framework" + _ "github.com/onsi/ginkgo" + "github.com/fatedier/frp/pkg/util/log" // test source _ "github.com/fatedier/frp/test/e2e/basic" _ "github.com/fatedier/frp/test/e2e/features" + "github.com/fatedier/frp/test/e2e/framework" _ "github.com/fatedier/frp/test/e2e/plugin" - - _ "github.com/onsi/ginkgo" ) // handleFlags sets up all flags and parses the command line. diff --git a/test/e2e/examples.go b/test/e2e/examples.go index 6423aec1ede..26eca20b5a9 100644 --- a/test/e2e/examples.go +++ b/test/e2e/examples.go @@ -3,17 +3,17 @@ package e2e import ( "fmt" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Example]", func() { +var _ = ginkgo.Describe("[Feature: Example]", func() { f := framework.NewDefaultFramework() - Describe("TCP", func() { - It("Expose a TCP echo server", func() { + ginkgo.Describe("TCP", func() { + ginkgo.It("Expose a TCP echo server", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig diff --git a/test/e2e/features/bandwidth_limit.go b/test/e2e/features/bandwidth_limit.go index f984fdb9fe3..a912b06a76e 100644 --- a/test/e2e/features/bandwidth_limit.go +++ b/test/e2e/features/bandwidth_limit.go @@ -5,18 +5,18 @@ import ( "strings" "time" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/mock/server/streamserver" "github.com/fatedier/frp/test/e2e/pkg/request" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Bandwidth Limit]", func() { +var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { f := framework.NewDefaultFramework() - It("Proxy Bandwidth Limit", func() { + ginkgo.It("Proxy Bandwidth Limit", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -40,7 +40,7 @@ var _ = Describe("[Feature: Bandwidth Limit]", func() { framework.NewRequestExpect(f).Port(remotePort).RequestModify(func(r *request.Request) { r.Body([]byte(content)).Timeout(30 * time.Second) }).ExpectResp([]byte(content)).Ensure() - duration := time.Now().Sub(start) + duration := time.Since(start) framework.ExpectTrue(duration.Seconds() > 7, "100Kb with 10KB limit, want > 7 seconds, but got %d seconds", duration.Seconds()) }) diff --git a/test/e2e/features/chaos.go b/test/e2e/features/chaos.go index 2049fc77965..bae6eb7de44 100644 --- a/test/e2e/features/chaos.go +++ b/test/e2e/features/chaos.go @@ -4,15 +4,15 @@ import ( "fmt" "time" - "github.com/fatedier/frp/test/e2e/framework" + "github.com/onsi/ginkgo" - . "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" ) -var _ = Describe("[Feature: Chaos]", func() { +var _ = ginkgo.Describe("[Feature: Chaos]", func() { f := framework.NewDefaultFramework() - It("reconnect after frps restart", func() { + ginkgo.It("reconnect after frps restart", func() { serverPort := f.AllocPort() serverConfigPath := f.GenerateConfigFile(fmt.Sprintf(` [common] @@ -41,7 +41,7 @@ var _ = Describe("[Feature: Chaos]", func() { framework.NewRequestExpect(f).Port(remotePort).Ensure() // 2. stop frps, expect request failed - ps.Stop() + _ = ps.Stop() time.Sleep(200 * time.Millisecond) framework.NewRequestExpect(f).Port(remotePort).ExpectError(true).Ensure() @@ -52,7 +52,7 @@ var _ = Describe("[Feature: Chaos]", func() { framework.NewRequestExpect(f).Port(remotePort).Ensure() // 4. stop frpc, expect request failed - pc.Stop() + _ = pc.Stop() time.Sleep(200 * time.Millisecond) framework.NewRequestExpect(f).Port(remotePort).ExpectError(true).Ensure() diff --git a/test/e2e/features/group.go b/test/e2e/features/group.go index ea6b781fd89..f66fae053c3 100644 --- a/test/e2e/features/group.go +++ b/test/e2e/features/group.go @@ -6,16 +6,16 @@ import ( "sync" "time" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/mock/server/httpserver" "github.com/fatedier/frp/test/e2e/mock/server/streamserver" "github.com/fatedier/frp/test/e2e/pkg/request" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Group]", func() { +var _ = ginkgo.Describe("[Feature: Group]", func() { f := framework.NewDefaultFramework() newHTTPServer := func(port int, respContent string) *httpserver.Server { @@ -60,8 +60,8 @@ var _ = Describe("[Feature: Group]", func() { return results } - Describe("Load Balancing", func() { - It("TCP", func() { + ginkgo.Describe("Load Balancing", func() { + ginkgo.It("TCP", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -112,8 +112,8 @@ var _ = Describe("[Feature: Group]", func() { }) }) - Describe("Health Check", func() { - It("TCP", func() { + ginkgo.Describe("Health Check", func() { + ginkgo.It("TCP", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -178,7 +178,7 @@ var _ = Describe("[Feature: Group]", func() { framework.ExpectContainElements(results, []string{"foo", "bar"}) }) - It("HTTP", func() { + ginkgo.It("HTTP", func() { vhostPort := f.AllocPort() serverConf := consts.DefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d diff --git a/test/e2e/features/heartbeat.go b/test/e2e/features/heartbeat.go index b0732c37f00..3ffbd83466b 100644 --- a/test/e2e/features/heartbeat.go +++ b/test/e2e/features/heartbeat.go @@ -4,15 +4,15 @@ import ( "fmt" "time" - "github.com/fatedier/frp/test/e2e/framework" + "github.com/onsi/ginkgo" - . "github.com/onsi/ginkgo" + "github.com/fatedier/frp/test/e2e/framework" ) -var _ = Describe("[Feature: Heartbeat]", func() { +var _ = ginkgo.Describe("[Feature: Heartbeat]", func() { f := framework.NewDefaultFramework() - It("disable application layer heartbeat", func() { + ginkgo.It("disable application layer heartbeat", func() { serverPort := f.AllocPort() serverConf := fmt.Sprintf(` [common] diff --git a/test/e2e/features/monitor.go b/test/e2e/features/monitor.go index d8b656a87d0..bf074e66041 100644 --- a/test/e2e/features/monitor.go +++ b/test/e2e/features/monitor.go @@ -5,18 +5,18 @@ import ( "strings" "time" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/request" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Monitor]", func() { +var _ = ginkgo.Describe("[Feature: Monitor]", func() { f := framework.NewDefaultFramework() - It("Prometheus metrics", func() { + ginkgo.It("Prometheus metrics", func() { dashboardPort := f.AllocPort() serverConf := consts.DefaultServerConfig + fmt.Sprintf(` enable_prometheus = true diff --git a/test/e2e/features/real_ip.go b/test/e2e/features/real_ip.go index 424d4049eb1..3a2a7e40bfd 100644 --- a/test/e2e/features/real_ip.go +++ b/test/e2e/features/real_ip.go @@ -6,6 +6,9 @@ import ( "net" "net/http" + "github.com/onsi/ginkgo" + pp "github.com/pires/go-proxyproto" + "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" @@ -13,15 +16,12 @@ import ( "github.com/fatedier/frp/test/e2e/mock/server/streamserver" "github.com/fatedier/frp/test/e2e/pkg/request" "github.com/fatedier/frp/test/e2e/pkg/rpc" - - . "github.com/onsi/ginkgo" - pp "github.com/pires/go-proxyproto" ) -var _ = Describe("[Feature: Real IP]", func() { +var _ = ginkgo.Describe("[Feature: Real IP]", func() { f := framework.NewDefaultFramework() - It("HTTP X-Forwarded-For", func() { + ginkgo.It("HTTP X-Forwarded-For", func() { vhostHTTPPort := f.AllocPort() serverConf := consts.DefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d @@ -31,7 +31,7 @@ var _ = Describe("[Feature: Real IP]", func() { localServer := httpserver.New( httpserver.WithBindPort(localPort), httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - w.Write([]byte(req.Header.Get("X-Forwarded-For"))) + _, _ = w.Write([]byte(req.Header.Get("X-Forwarded-For"))) })), ) f.RunServer("", localServer) @@ -52,11 +52,10 @@ var _ = Describe("[Feature: Real IP]", func() { }). ExpectResp([]byte("127.0.0.1")). Ensure() - }) - Describe("Proxy Protocol", func() { - It("TCP", func() { + ginkgo.Describe("Proxy Protocol", func() { + ginkgo.It("TCP", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -77,7 +76,7 @@ var _ = Describe("[Feature: Real IP]", func() { } buf := []byte(ppHeader.SourceAddr.String()) - rpc.WriteBytes(c, buf) + _, _ = rpc.WriteBytes(c, buf) } })) f.RunServer("", localServer) @@ -106,7 +105,7 @@ var _ = Describe("[Feature: Real IP]", func() { }) }) - It("HTTP", func() { + ginkgo.It("HTTP", func() { vhostHTTPPort := f.AllocPort() serverConf := consts.DefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d diff --git a/test/e2e/framework/cleanup.go b/test/e2e/framework/cleanup.go index d2d1c5a6ce3..15e1a9dd4b9 100644 --- a/test/e2e/framework/cleanup.go +++ b/test/e2e/framework/cleanup.go @@ -6,13 +6,16 @@ import ( // CleanupActionHandle is an integer pointer type for handling cleanup action type CleanupActionHandle *int + type cleanupFuncHandle struct { actionHandle CleanupActionHandle actionHook func() } -var cleanupActionsLock sync.Mutex -var cleanupHookList = []cleanupFuncHandle{} +var ( + cleanupActionsLock sync.Mutex + cleanupHookList = []cleanupFuncHandle{} +) // AddCleanupAction installs a function that will be called in the event of the // whole test being terminated. This allows arbitrary pieces of the overall diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 344f64c3ab9..c22c6af75f6 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -9,12 +9,12 @@ import ( "strings" "text/template" + "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/config" + "github.com/fatedier/frp/test/e2e/mock/server" "github.com/fatedier/frp/test/e2e/pkg/port" "github.com/fatedier/frp/test/e2e/pkg/process" - - "github.com/onsi/ginkgo" - "github.com/onsi/ginkgo/config" ) type Options struct { @@ -102,7 +102,8 @@ func (f *Framework) BeforeEach() { for k, v := range params { switch t := v.(type) { case int: - f.usedPorts[k] = int(t) + f.usedPorts[k] = t + default: } } } @@ -116,14 +117,14 @@ func (f *Framework) AfterEach() { // stop processor for _, p := range f.serverProcesses { - p.Stop() + _ = p.Stop() if TestContext.Debug { fmt.Println(p.ErrorOutput()) fmt.Println(p.StdOutput()) } } for _, p := range f.clientProcesses { - p.Stop() + _ = p.Stop() if TestContext.Debug { fmt.Println(p.ErrorOutput()) fmt.Println(p.StdOutput()) @@ -259,7 +260,7 @@ func (f *Framework) SetEnvs(envs []string) { func (f *Framework) WriteTempFile(name string, content string) string { filePath := filepath.Join(f.TempDirectory, name) - err := os.WriteFile(filePath, []byte(content), 0766) + err := os.WriteFile(filePath, []byte(content), 0o766) ExpectNoError(err) return filePath } diff --git a/test/e2e/framework/log.go b/test/e2e/framework/log.go index ff33f41dbe0..b72b3772662 100644 --- a/test/e2e/framework/log.go +++ b/test/e2e/framework/log.go @@ -58,11 +58,12 @@ var codeFilterRE = regexp.MustCompile(`/github.com/onsi/ginkgo/`) // From the remaining entries it automatically filters out useless ones like // entries coming from Ginkgo. // -// This is a modified copy of PruneStack in https://github.com/onsi/ginkgo/blob/f90f37d87fa6b1dd9625e2b1e83c23ffae3de228/internal/codelocation/code_location.go#L25: -// - simplified API and thus renamed (calls debug.Stack() instead of taking a parameter) -// - source code filtering updated to be specific to Kubernetes -// - optimized to use bytes and in-place slice filtering from -// https://github.com/golang/go/wiki/SliceTricks#filter-in-place +// This is a modified copy of PruneStack in +// https://github.com/onsi/ginkgo/blob/f90f37d87fa6b1dd9625e2b1e83c23ffae3de228/internal/codelocation/code_location.go#L25: +// - simplified API and thus renamed (calls debug.Stack() instead of taking a parameter) +// - source code filtering updated to be specific to Kubernetes +// - optimized to use bytes and in-place slice filtering from +// https://github.com/golang/go/wiki/SliceTricks#filter-in-place func PrunedStack(skip int) []byte { fullStackTrace := debug.Stack() stack := bytes.Split(fullStackTrace, []byte("\n")) @@ -82,7 +83,7 @@ func PrunedStack(skip int) []byte { n := 0 for i := 0; i < len(stack)/2; i++ { // We filter out based on the source code file name. - if !codeFilterRE.Match([]byte(stack[i*2+1])) { + if !codeFilterRE.Match(stack[i*2+1]) { stack[n] = stack[i*2] stack[n+1] = stack[i*2+1] n += 2 diff --git a/test/e2e/framework/mockservers.go b/test/e2e/framework/mockservers.go index af41ab90baf..32f7ac38b69 100644 --- a/test/e2e/framework/mockservers.go +++ b/test/e2e/framework/mockservers.go @@ -33,9 +33,11 @@ func NewMockServers(portAllocator *port.Allocator) *MockServers { httpPort := portAllocator.Get() s.tcpEchoServer = streamserver.New(streamserver.TCP, streamserver.WithBindPort(tcpPort)) s.udpEchoServer = streamserver.New(streamserver.UDP, streamserver.WithBindPort(udpPort)) - s.httpSimpleServer = httpserver.New(httpserver.WithBindPort(httpPort), httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - w.Write([]byte(consts.TestString)) - }))) + s.httpSimpleServer = httpserver.New(httpserver.WithBindPort(httpPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(consts.TestString)) + })), + ) udsIndex := portAllocator.Get() udsAddr := fmt.Sprintf("%s/frp_echo_server_%d.sock", os.TempDir(), udsIndex) diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 32ef2f8424c..7b9b238e3ad 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -14,12 +14,8 @@ import ( // The first template should always be frps. func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []string) ([]*process.Process, []*process.Process) { templates := make([]string, 0, len(serverTemplates)+len(clientTemplates)) - for _, t := range serverTemplates { - templates = append(templates, t) - } - for _, t := range clientTemplates { - templates = append(templates, t) - } + templates = append(templates, serverTemplates...) + templates = append(templates, clientTemplates...) outs, ports, err := f.RenderTemplates(templates) ExpectNoError(err) ExpectTrue(len(templates) > 0) @@ -31,7 +27,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str currentServerProcesses := make([]*process.Process, 0, len(serverTemplates)) for i := range serverTemplates { path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-server-%d", i)) - err = os.WriteFile(path, []byte(outs[i]), 0666) + err = os.WriteFile(path, []byte(outs[i]), 0o666) ExpectNoError(err) flog.Trace("[%s] %s", path, outs[i]) @@ -48,7 +44,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str for i := range clientTemplates { index := i + len(serverTemplates) path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-client-%d", i)) - err = os.WriteFile(path, []byte(outs[index]), 0666) + err = os.WriteFile(path, []byte(outs[index]), 0o666) ExpectNoError(err) flog.Trace("[%s] %s", path, outs[index]) @@ -91,7 +87,7 @@ func (f *Framework) RunFrpc(args ...string) (*process.Process, string, error) { func (f *Framework) GenerateConfigFile(content string) string { f.configFileIndex++ path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-config-%d", f.configFileIndex)) - err := os.WriteFile(path, []byte(content), 0666) + err := os.WriteFile(path, []byte(content), 0o666) ExpectNoError(err) return path } diff --git a/test/e2e/framework/request.go b/test/e2e/framework/request.go index 5dccd661e4c..6b75a2593ad 100644 --- a/test/e2e/framework/request.go +++ b/test/e2e/framework/request.go @@ -11,7 +11,7 @@ import ( func SpecifiedHTTPBodyHandler(body []byte) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { - w.Write(body) + _, _ = w.Write(body) } } diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 958c78f8d7b..42a66445dd9 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -24,7 +24,6 @@ var TestContext TestContextType // The other Register*Flags methods below can be used to add more // test-specific flags. However, those settings then get added // regardless whether the test is actually in the test suite. -// func RegisterCommonFlags(flags *flag.FlagSet) { // Turn on EmitSpecProgress to get spec progress (especially on interrupt) config.GinkgoConfig.EmitSpecProgress = true diff --git a/test/e2e/mock/server/httpserver/server.go b/test/e2e/mock/server/httpserver/server.go index a811ac2700a..f9818a0db80 100644 --- a/test/e2e/mock/server/httpserver/server.go +++ b/test/e2e/mock/server/httpserver/server.go @@ -5,6 +5,7 @@ import ( "net" "net/http" "strconv" + "time" ) type Server struct { @@ -44,7 +45,7 @@ func WithBindPort(port int) Option { } } -func WithTlsConfig(tlsConfig *tls.Config) Option { +func WithTLSConfig(tlsConfig *tls.Config) Option { return func(s *Server) *Server { s.tlsConfig = tlsConfig return s @@ -61,7 +62,7 @@ func WithHandler(h http.Handler) Option { func WithResponse(resp []byte) Option { return func(s *Server) *Server { s.handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Write(resp) + _, _ = w.Write(resp) }) return s } @@ -74,16 +75,21 @@ func (s *Server) Run() error { addr := net.JoinHostPort(s.bindAddr, strconv.Itoa(s.bindPort)) hs := &http.Server{ - Addr: addr, - Handler: s.handler, - TLSConfig: s.tlsConfig, + Addr: addr, + Handler: s.handler, + TLSConfig: s.tlsConfig, + ReadHeaderTimeout: time.Minute, } s.hs = hs if s.tlsConfig == nil { - go hs.Serve(s.l) + go func() { + _ = hs.Serve(s.l) + }() } else { - go hs.ServeTLS(s.l, "", "") + go func() { + _ = hs.ServeTLS(s.l, "", "") + }() } return nil } diff --git a/test/e2e/mock/server/streamserver/server.go b/test/e2e/mock/server/streamserver/server.go index 1dde353a9db..9e237d96fba 100644 --- a/test/e2e/mock/server/streamserver/server.go +++ b/test/e2e/mock/server/streamserver/server.go @@ -127,7 +127,7 @@ func (s *Server) handle(c net.Conn) { if len(s.respContent) > 0 { buf = s.respContent } - rpc.WriteBytes(c, buf) + _, _ = rpc.WriteBytes(c, buf) } } diff --git a/test/e2e/pkg/cert/generator.go b/test/e2e/pkg/cert/generator.go index 5c11b226d1e..fb22522bec0 100644 --- a/test/e2e/pkg/cert/generator.go +++ b/test/e2e/pkg/cert/generator.go @@ -22,8 +22,8 @@ type Artifacts struct { ResourceVersion string } -// CertGenerator is an interface to provision the serving certificate. -type CertGenerator interface { +// Generator is an interface to provision the serving certificate. +type Generator interface { // Generate returns a Artifacts struct. Generate(CommonName string) (*Artifacts, error) // SetCA sets the PEM-encoded CA private key and CA cert for signing the generated serving cert. diff --git a/test/e2e/pkg/cert/selfsigned.go b/test/e2e/pkg/cert/selfsigned.go index 4f9ed57378a..82762d0990c 100644 --- a/test/e2e/pkg/cert/selfsigned.go +++ b/test/e2e/pkg/cert/selfsigned.go @@ -23,7 +23,7 @@ type SelfSignedCertGenerator struct { caCert []byte } -var _ CertGenerator = &SelfSignedCertGenerator{} +var _ Generator = &SelfSignedCertGenerator{} // SetCA sets the PEM-encoded CA private key and CA cert for signing the generated serving cert. func (cp *SelfSignedCertGenerator) SetCA(caKey, caCert []byte) { diff --git a/test/e2e/pkg/port/util.go b/test/e2e/pkg/port/util.go index 9cf1204f5e7..073bf3c7787 100644 --- a/test/e2e/pkg/port/util.go +++ b/test/e2e/pkg/port/util.go @@ -26,16 +26,17 @@ func unmarshalFromName(name string) (*nameBuilder, error) { builder.name = arrs[1] case 4: builder.name = arrs[1] - if fromPort, err := strconv.Atoi(arrs[2]); err != nil { + fromPort, err := strconv.Atoi(arrs[2]) + if err != nil { return nil, fmt.Errorf("error range port from") - } else { - builder.rangePortFrom = fromPort } - if toPort, err := strconv.Atoi(arrs[3]); err != nil { + builder.rangePortFrom = fromPort + + toPort, err := strconv.Atoi(arrs[3]) + if err != nil { return nil, fmt.Errorf("error range port to") - } else { - builder.rangePortTo = toPort } + builder.rangePortTo = toPort default: return nil, fmt.Errorf("error port name format") } diff --git a/test/e2e/pkg/request/request.go b/test/e2e/pkg/request/request.go index cf6352f3828..96e714f9e26 100644 --- a/test/e2e/pkg/request/request.go +++ b/test/e2e/pkg/request/request.go @@ -12,9 +12,10 @@ import ( "strconv" "time" + libdial "github.com/fatedier/golib/net/dial" + "github.com/fatedier/frp/test/e2e/pkg/rpc" "github.com/fatedier/frp/test/e2e/pkg/utils" - libdial "github.com/fatedier/golib/net/dial" ) type Request struct { @@ -181,7 +182,7 @@ func (r *Request) Do() (*Response, error) { defer conn.Close() if r.timeout > 0 { - conn.SetDeadline(time.Now().Add(r.timeout)) + _ = conn.SetDeadline(time.Now().Add(r.timeout)) } buf, err := r.sendRequestByConn(conn, r.body) if err != nil { @@ -199,7 +200,6 @@ type Response struct { func (r *Request) sendHTTPRequest(method, urlstr string, host string, headers map[string]string, proxy string, body []byte, tlsConfig *tls.Config, ) (*Response, error) { - var inBody io.Reader if len(body) != 0 { inBody = bytes.NewReader(body) @@ -240,6 +240,7 @@ func (r *Request) sendHTTPRequest(method, urlstr string, host string, headers ma if err != nil { return nil, err } + defer resp.Body.Close() ret := &Response{Code: resp.StatusCode, Header: resp.Header} buf, err := io.ReadAll(resp.Body) diff --git a/test/e2e/pkg/rpc/rpc.go b/test/e2e/pkg/rpc/rpc.go index ee3aef56f22..d6026449d55 100644 --- a/test/e2e/pkg/rpc/rpc.go +++ b/test/e2e/pkg/rpc/rpc.go @@ -9,7 +9,10 @@ import ( func WriteBytes(w io.Writer, buf []byte) (int, error) { out := bytes.NewBuffer(nil) - binary.Write(out, binary.BigEndian, int64(len(buf))) + if err := binary.Write(out, binary.BigEndian, int64(len(buf))); err != nil { + return 0, err + } + out.Write(buf) return w.Write(out.Bytes()) } diff --git a/test/e2e/plugin/client.go b/test/e2e/plugin/client.go index afbd0a2c7fd..081c88ff541 100644 --- a/test/e2e/plugin/client.go +++ b/test/e2e/plugin/client.go @@ -5,6 +5,8 @@ import ( "fmt" "strconv" + "github.com/onsi/ginkgo" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" @@ -12,15 +14,13 @@ import ( "github.com/fatedier/frp/test/e2e/pkg/cert" "github.com/fatedier/frp/test/e2e/pkg/port" "github.com/fatedier/frp/test/e2e/pkg/request" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Client-Plugins]", func() { +var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { f := framework.NewDefaultFramework() - Describe("UnixDomainSocket", func() { - It("Expose a unix domain socket echo server", func() { + ginkgo.Describe("UnixDomainSocket", func() { + ginkgo.It("Expose a unix domain socket echo server", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -76,7 +76,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { }) }) - It("http_proxy", func() { + ginkgo.It("http_proxy", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -108,7 +108,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { }) }) - It("socks5 proxy", func() { + ginkgo.It("socks5 proxy", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -135,7 +135,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { }).Ensure() }) - It("static_file", func() { + ginkgo.It("static_file", func() { vhostPort := f.AllocPort() serverConf := consts.DefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d @@ -184,7 +184,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { ).ExpectResp([]byte("foo")).Ensure() }) - It("http2https", func() { + ginkgo.It("http2https", func() { serverConf := consts.DefaultServerConfig vhostHTTPPort := f.AllocPort() serverConf += fmt.Sprintf(` @@ -206,7 +206,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { framework.ExpectNoError(err) localServer := httpserver.New( httpserver.WithBindPort(localPort), - httpserver.WithTlsConfig(tlsConfig), + httpserver.WithTLSConfig(tlsConfig), httpserver.WithResponse([]byte("test")), ) f.RunServer("", localServer) @@ -220,7 +220,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { Ensure() }) - It("https2http", func() { + ginkgo.It("https2http", func() { generator := &cert.SelfSignedCertGenerator{} artifacts, err := generator.Generate("example.com") framework.ExpectNoError(err) @@ -264,7 +264,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { Ensure() }) - It("https2https", func() { + ginkgo.It("https2https", func() { generator := &cert.SelfSignedCertGenerator{} artifacts, err := generator.Generate("example.com") framework.ExpectNoError(err) @@ -295,7 +295,7 @@ var _ = Describe("[Feature: Client-Plugins]", func() { localServer := httpserver.New( httpserver.WithBindPort(localPort), httpserver.WithResponse([]byte("test")), - httpserver.WithTlsConfig(tlsConfig), + httpserver.WithTLSConfig(tlsConfig), ) f.RunServer("", localServer) diff --git a/test/e2e/plugin/server.go b/test/e2e/plugin/server.go index 2af1eba8496..e4619573a7e 100644 --- a/test/e2e/plugin/server.go +++ b/test/e2e/plugin/server.go @@ -4,25 +4,25 @@ import ( "fmt" "time" + "github.com/onsi/ginkgo" + plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" - - . "github.com/onsi/ginkgo" ) -var _ = Describe("[Feature: Server-Plugins]", func() { +var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f := framework.NewDefaultFramework() - Describe("Login", func() { + ginkgo.Describe("Login", func() { newFunc := func() *plugin.Request { var r plugin.Request r.Content = &plugin.LoginContent{} return &r } - It("Auth for custom meta token", func() { + ginkgo.It("Auth for custom meta token", func() { localPort := f.AllocPort() clientAddressGot := false @@ -79,14 +79,14 @@ var _ = Describe("[Feature: Server-Plugins]", func() { }) }) - Describe("NewProxy", func() { + ginkgo.Describe("NewProxy", func() { newFunc := func() *plugin.Request { var r plugin.Request r.Content = &plugin.NewProxyContent{} return &r } - It("Validate Info", func() { + ginkgo.It("Validate Info", func() { localPort := f.AllocPort() handler := func(req *plugin.Request) *plugin.Response { var ret plugin.Response @@ -123,7 +123,7 @@ var _ = Describe("[Feature: Server-Plugins]", func() { framework.NewRequestExpect(f).Port(remotePort).Ensure() }) - It("Mofify RemotePort", func() { + ginkgo.It("Mofify RemotePort", func() { localPort := f.AllocPort() remotePort := f.AllocPort() handler := func(req *plugin.Request) *plugin.Response { @@ -158,14 +158,14 @@ var _ = Describe("[Feature: Server-Plugins]", func() { }) }) - Describe("CloseProxy", func() { + ginkgo.Describe("CloseProxy", func() { newFunc := func() *plugin.Request { var r plugin.Request r.Content = &plugin.CloseProxyContent{} return &r } - It("Validate Info", func() { + ginkgo.It("Validate Info", func() { localPort := f.AllocPort() var recordProxyName string handler := func(req *plugin.Request) *plugin.Response { @@ -199,7 +199,7 @@ var _ = Describe("[Feature: Server-Plugins]", func() { framework.NewRequestExpect(f).Port(remotePort).Ensure() for _, c := range clients { - c.Stop() + _ = c.Stop() } time.Sleep(1 * time.Second) @@ -208,14 +208,14 @@ var _ = Describe("[Feature: Server-Plugins]", func() { }) }) - Describe("Ping", func() { + ginkgo.Describe("Ping", func() { newFunc := func() *plugin.Request { var r plugin.Request r.Content = &plugin.PingContent{} return &r } - It("Validate Info", func() { + ginkgo.It("Validate Info", func() { localPort := f.AllocPort() var record string @@ -258,14 +258,14 @@ var _ = Describe("[Feature: Server-Plugins]", func() { }) }) - Describe("NewWorkConn", func() { + ginkgo.Describe("NewWorkConn", func() { newFunc := func() *plugin.Request { var r plugin.Request r.Content = &plugin.NewWorkConnContent{} return &r } - It("Validate Info", func() { + ginkgo.It("Validate Info", func() { localPort := f.AllocPort() var record string @@ -304,13 +304,13 @@ var _ = Describe("[Feature: Server-Plugins]", func() { }) }) - Describe("NewUserConn", func() { + ginkgo.Describe("NewUserConn", func() { newFunc := func() *plugin.Request { var r plugin.Request r.Content = &plugin.NewUserConnContent{} return &r } - It("Validate Info", func() { + ginkgo.It("Validate Info", func() { localPort := f.AllocPort() var record string @@ -349,13 +349,13 @@ var _ = Describe("[Feature: Server-Plugins]", func() { }) }) - Describe("HTTPS Protocol", func() { + ginkgo.Describe("HTTPS Protocol", func() { newFunc := func() *plugin.Request { var r plugin.Request r.Content = &plugin.NewUserConnContent{} return &r } - It("Validate Login Info, disable tls verify", func() { + ginkgo.It("Validate Login Info, disable tls verify", func() { localPort := f.AllocPort() var record string diff --git a/test/e2e/plugin/utils.go b/test/e2e/plugin/utils.go index c0d7db3d3db..51de01d9383 100644 --- a/test/e2e/plugin/utils.go +++ b/test/e2e/plugin/utils.go @@ -11,14 +11,14 @@ import ( "github.com/fatedier/frp/test/e2e/mock/server/httpserver" ) -type PluginHandler func(req *plugin.Request) *plugin.Response +type Handler func(req *plugin.Request) *plugin.Response type NewPluginRequest func() *plugin.Request -func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler PluginHandler, tlsConfig *tls.Config) *httpserver.Server { +func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler Handler, tlsConfig *tls.Config) *httpserver.Server { return httpserver.New( httpserver.WithBindPort(port), - httpserver.WithTlsConfig(tlsConfig), + httpserver.WithTLSConfig(tlsConfig), httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { r := newFunc() buf, err := io.ReadAll(req.Body) @@ -35,7 +35,7 @@ func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler PluginHandl resp := handler(r) buf, _ = json.Marshal(resp) log.Trace("plugin response: %s", string(buf)) - w.Write(buf) + _, _ = w.Write(buf) })), ) } From ba492f07c36dd7b7f479c15ebae4ac7354e6e7a7 Mon Sep 17 00:00:00 2001 From: Abirdcfly Date: Mon, 29 Aug 2022 12:25:36 +0800 Subject: [PATCH 006/444] chore: remove duplicate word in comments (#3081) --- README.md | 2 +- test/e2e/framework/log.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3b3d0e8f056..8fff8422f8a 100644 --- a/README.md +++ b/README.md @@ -883,7 +883,7 @@ custom_domains = test.example.com host_header_rewrite = dev.example.com ``` -The HTTP request will have the the `Host` header rewritten to `Host: dev.example.com` when it reaches the actual web server, although the request from the browser probably has `Host: test.example.com`. +The HTTP request will have the `Host` header rewritten to `Host: dev.example.com` when it reaches the actual web server, although the request from the browser probably has `Host: test.example.com`. ### Setting other HTTP Headers diff --git a/test/e2e/framework/log.go b/test/e2e/framework/log.go index b72b3772662..34ba2936b36 100644 --- a/test/e2e/framework/log.go +++ b/test/e2e/framework/log.go @@ -68,7 +68,7 @@ func PrunedStack(skip int) []byte { fullStackTrace := debug.Stack() stack := bytes.Split(fullStackTrace, []byte("\n")) // Ensure that the even entries are the method names and the - // the odd entries the source code information. + // odd entries the source code information. if len(stack) > 0 && bytes.HasPrefix(stack[0], []byte("goroutine ")) { // Ignore "goroutine 29 [running]:" line. stack = stack[1:] From 6ecc97c8571df002dd7cf42522e3f2ce9de9a14d Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 8 Sep 2022 17:16:45 +0800 Subject: [PATCH 007/444] update deps (#3094) --- go.mod | 49 ++++--- go.sum | 265 +++++++++++++++++++--------------- test/e2e/framework/process.go | 2 +- 3 files changed, 173 insertions(+), 143 deletions(-) diff --git a/go.mod b/go.mod index 02f2b1f228b..7f6740fd5eb 100644 --- a/go.mod +++ b/go.mod @@ -8,36 +8,37 @@ require ( github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb github.com/fatedier/golib v0.1.1-0.20220321042308-c306138b83ac github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible - github.com/go-playground/validator/v10 v10.6.1 - github.com/google/uuid v1.2.0 + github.com/go-playground/validator/v10 v10.11.0 + github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 - github.com/gorilla/websocket v1.4.2 - github.com/hashicorp/yamux v0.0.0-20210707203944-259a57b3608c + github.com/gorilla/websocket v1.5.0 + github.com/hashicorp/yamux v0.1.1 github.com/onsi/ginkgo v1.16.4 - github.com/onsi/gomega v1.13.0 + github.com/onsi/gomega v1.20.2 github.com/pires/go-proxyproto v0.6.2 - github.com/prometheus/client_golang v1.11.0 + github.com/prometheus/client_golang v1.13.0 github.com/rodaine/table v1.0.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.7.0 - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 - golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d - golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba - gopkg.in/ini.v1 v1.62.0 - k8s.io/apimachinery v0.21.2 - k8s.io/client-go v0.21.2 + golang.org/x/net v0.0.0-20220722155237-a158d28d115b + golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b + golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 + gopkg.in/ini.v1 v1.67.0 + k8s.io/apimachinery v0.25.0 + k8s.io/client-go v0.25.0 ) require ( github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect - github.com/go-playground/locales v0.13.0 // indirect - github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/go-playground/locales v0.14.0 // indirect + github.com/go-playground/universal-translator v0.18.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.1 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/klauspost/cpuid/v2 v2.0.6 // indirect github.com/klauspost/reedsolomon v1.9.15 // indirect @@ -48,19 +49,19 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.26.0 // indirect - github.com/prometheus/procfs v0.6.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/tjfoc/gmsm v1.4.1 // indirect - golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 // indirect - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 // indirect - golang.org/x/text v0.3.6 // indirect - google.golang.org/appengine v1.6.5 // indirect - google.golang.org/protobuf v1.26.0 // indirect + golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect + golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect + golang.org/x/text v0.3.7 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/square/go-jose.v2 v2.4.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect ) diff --git a/go.sum b/go.sum index 7a0d85154df..b00392d169e 100644 --- a/go.sum +++ b/go.sum @@ -9,34 +9,34 @@ cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6T cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= -github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -47,7 +47,6 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -56,8 +55,9 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -77,14 +77,10 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= github.com/fatedier/golib v0.1.1-0.20220321042308-c306138b83ac h1:td1FJwN/oz8+9GldeEm3YdBX0Husc0FSPywLesZxi4w= @@ -92,7 +88,6 @@ github.com/fatedier/golib v0.1.1-0.20220321042308-c306138b83ac/go.mod h1:fLV0TLw github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -103,31 +98,24 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.6.1 h1:W6TRDXt4WcWp4c4nf/G+6BkGdhiIo0k417gfr+V6u4I= -github.com/go-playground/validator/v10 v10.6.1/go.mod h1:xm76BBt941f7yWdGnI2DVPFFg1UK3YY04qifoXU3lOk= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw= +github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -138,11 +126,14 @@ github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -162,33 +153,34 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -212,11 +204,10 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/yamux v0.0.0-20210707203944-259a57b3608c h1:nqkErwUGfpZZMqj29WZ9U/wz2OpJVDuiokLhE/3Y7IQ= -github.com/hashicorp/yamux v0.0.0-20210707203944-259a57b3608c/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -224,14 +215,13 @@ github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/cpuid/v2 v2.0.6 h1:dQ5ueTiftKxp0gyjKSx5+8BtPWkyQbd95m8Gys/RarI= github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -241,18 +231,16 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= @@ -268,39 +256,31 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/ginkgo/v2 v2.1.6 h1:Fx2POJZfKRQcM1pH49qSZiYeu319wji004qX+GDovrU= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= -github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= +github.com/onsi/gomega v1.20.2 h1:8uQq0zMgLEfa0vRrrBgaJF2gyW9Da9BmfGV+OyUzfkY= +github.com/onsi/gomega v1.20.2/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8= github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -314,8 +294,10 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU= +github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -325,19 +307,26 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -345,9 +334,7 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -357,14 +344,12 @@ github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -382,13 +367,16 @@ github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVc github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= @@ -397,13 +385,12 @@ golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd h1:XcWmESyNjXJMLahc3mqVQJcgSTDxFxhETVlfk9uGc38= +golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -450,8 +437,8 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -459,25 +446,38 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -494,13 +494,11 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -512,33 +510,41 @@ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= +golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -551,7 +557,6 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -572,14 +577,21 @@ golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -590,13 +602,21 @@ google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -614,8 +634,18 @@ google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -624,6 +654,9 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -633,22 +666,23 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.4.1 h1:H0TmLt7/KmzlrDOpa1F+zr0Tk90PbJYBfsVUmRLrf9Y= gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -659,31 +693,26 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.21.2/go.mod h1:Lv6UGJZ1rlMI1qusN8ruAp9PUBFyBwpEHAdG24vIsiU= -k8s.io/apimachinery v0.21.2 h1:vezUc/BHqWlQDnZ+XkrpXSmnANSLbpnlpwo0Lhk0gpc= -k8s.io/apimachinery v0.21.2/go.mod h1:CdTY8fU/BlvAbJ2z/8kBwimGki5Zp8/fbVuLY8gJumM= -k8s.io/client-go v0.21.2 h1:Q1j4L/iMN4pTw6Y4DWppBoUxgKO8LbffEMVEV00MUp0= -k8s.io/client-go v0.21.2/go.mod h1:HdJ9iknWpbl3vMGtib6T2PyI/VYxiZfq936WNVHBRrA= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +k8s.io/apimachinery v0.25.0 h1:MlP0r6+3XbkUG2itd6vp3oxbtdQLQI94fD5gCS+gnoU= +k8s.io/apimachinery v0.25.0/go.mod h1:qMx9eAk0sZQGsXGu86fab8tZdffHbwUfsvzqKn4mfB0= +k8s.io/client-go v0.25.0 h1:CVWIaCETLMBNiTUta3d5nzRbXvY5Hy9Dpl+VvREpu5E= +k8s.io/client-go v0.25.0/go.mod h1:lxykvypVfKilxhTklov0wz1FoaUZ8X4EwbhS6rpRfN8= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed h1:jAne/RjBTyawwAy0utX5eqigAwz/lQhTmy+Hr/Cpue4= +k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 7b9b238e3ad..7c328dd4725 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -56,7 +56,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str ExpectNoError(err) time.Sleep(500 * time.Millisecond) } - time.Sleep(time.Second) + time.Sleep(2 * time.Second) return currentServerProcesses, currentClientProcesses } From 6a71d71e587357521b2f8002f7c78f79c1c8e609 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 9 Oct 2022 12:13:27 +0800 Subject: [PATCH 008/444] improve not found response (#3121) --- .golangci.yml | 1 - pkg/util/vhost/http.go | 2 +- pkg/util/vhost/resource.go | 16 +++++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index aefd468847f..39c8e3f7ece 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -48,7 +48,6 @@ linters: - unconvert - unparam - gci - - bodyclose - gosec - asciicheck - prealloc diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index f2f08500ce0..846fdca12d8 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -251,7 +251,7 @@ func (rp *HTTPReverseProxy) connectHandler(rw http.ResponseWriter, req *http.Req remote, err := rp.CreateConnection(domain, url, routeByHTTPUser, remoteAddr) if err != nil { - http.Error(rw, "Failed", http.StatusBadRequest) + _ = notFoundResponse().Write(client) client.Close() return } diff --git a/pkg/util/vhost/resource.go b/pkg/util/vhost/resource.go index 14f6b2ad322..65bdbcb6288 100644 --- a/pkg/util/vhost/resource.go +++ b/pkg/util/vhost/resource.go @@ -72,14 +72,16 @@ func notFoundResponse() *http.Response { header.Set("server", "frp/"+version.Full()) header.Set("Content-Type", "text/html") + content := getNotFoundPageContent() res := &http.Response{ - Status: "Not Found", - StatusCode: 404, - Proto: "HTTP/1.0", - ProtoMajor: 1, - ProtoMinor: 0, - Header: header, - Body: io.NopCloser(bytes.NewReader(getNotFoundPageContent())), + Status: "Not Found", + StatusCode: 404, + Proto: "HTTP/1.1", + ProtoMajor: 1, + ProtoMinor: 1, + Header: header, + Body: io.NopCloser(bytes.NewReader(content)), + ContentLength: int64(len(content)), } return res } From 3fbe6b659ea4a55459f0533735af0c4b27cd3f8f Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 19 Oct 2022 12:14:09 +0800 Subject: [PATCH 009/444] adjust sponsors (#3136) --- README.md | 11 ----------- README_zh.md | 11 ----------- 2 files changed, 22 deletions(-) diff --git a/README.md b/README.md index 8fff8422f8a..2fabdca777b 100644 --- a/README.md +++ b/README.md @@ -6,17 +6,6 @@ [README](README.md) | [中文文档](README_zh.md) -

Platinum Sponsors

- - -

- - - -

- - -

Gold Sponsors

diff --git a/README_zh.md b/README_zh.md index 854ae966a46..e0612bbfbe2 100644 --- a/README_zh.md +++ b/README_zh.md @@ -7,17 +7,6 @@ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 -

Platinum Sponsors

- - -

- - - -

- - -

Gold Sponsors

From cf66ca10b4f318eacaf59733909902172a2ba4f0 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 19 Oct 2022 12:14:35 +0800 Subject: [PATCH 010/444] improve http group load balancing (#3131) --- pkg/util/version/version.go | 2 +- pkg/util/vhost/http.go | 79 +++++++++++++++++++------------------ pkg/util/vhost/vhost.go | 23 ++++++++--- server/group/http.go | 39 +++++++++++++++++- test/e2e/features/group.go | 23 +++++++++++ 5 files changed, 119 insertions(+), 47 deletions(-) diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index b8b7be86bcd..f2805c51fd9 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.44.0" +var version = "0.45.0" func Full() string { return version diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index 846fdca12d8..5addb47542e 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -60,19 +60,28 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * // Modify incoming requests by route policies. Director: func(req *http.Request) { req.URL.Scheme = "http" - url := req.Context().Value(RouteInfoURL).(string) - routeByHTTPUser := req.Context().Value(RouteInfoHTTPUser).(string) - oldHost, _ := util.CanonicalHost(req.Context().Value(RouteInfoHost).(string)) - rc := rp.GetRouteConfig(oldHost, url, routeByHTTPUser) + reqRouteInfo := req.Context().Value(RouteInfoKey).(*RequestRouteInfo) + oldHost, _ := util.CanonicalHost(reqRouteInfo.Host) + + rc := rp.GetRouteConfig(oldHost, reqRouteInfo.URL, reqRouteInfo.HTTPUser) if rc != nil { if rc.RewriteHost != "" { req.Host = rc.RewriteHost } - // Set {domain}.{location}.{routeByHTTPUser} as URL host here to let http transport reuse connections. - // TODO(fatedier): use proxy name instead? + + var endpoint string + if rc.ChooseEndpointFn != nil { + // ignore error here, it will use CreateConnFn instead later + endpoint, _ = rc.ChooseEndpointFn() + reqRouteInfo.Endpoint = endpoint + frpLog.Trace("choose endpoint name [%s] for http request host [%s] path [%s] httpuser [%s]", + endpoint, oldHost, reqRouteInfo.URL, reqRouteInfo.HTTPUser) + } + // Set {domain}.{location}.{routeByHTTPUser}.{endpoint} as URL host here to let http transport reuse connections. req.URL.Host = rc.Domain + "." + base64.StdEncoding.EncodeToString([]byte(rc.Location)) + "." + - base64.StdEncoding.EncodeToString([]byte(rc.RouteByHTTPUser)) + base64.StdEncoding.EncodeToString([]byte(rc.RouteByHTTPUser)) + "." + + base64.StdEncoding.EncodeToString([]byte(endpoint)) for k, v := range rc.Headers { req.Header.Set(k, v) @@ -85,12 +94,9 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * Transport: &http.Transport{ ResponseHeaderTimeout: rp.responseHeaderTimeout, IdleConnTimeout: 60 * time.Second, + MaxIdleConnsPerHost: 5, DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) { - url := ctx.Value(RouteInfoURL).(string) - host, _ := util.CanonicalHost(ctx.Value(RouteInfoHost).(string)) - routerByHTTPUser := ctx.Value(RouteInfoHTTPUser).(string) - remote := ctx.Value(RouteInfoRemote).(string) - return rp.CreateConnection(host, url, routerByHTTPUser, remote) + return rp.CreateConnection(ctx.Value(RouteInfoKey).(*RequestRouteInfo), true) }, Proxy: func(req *http.Request) (*url.URL, error) { // Use proxy mode if there is host in HTTP first request line. @@ -100,7 +106,7 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * // Normal: // GET / HTTP/1.1 // Host: example.com - urlHost := req.Context().Value(RouteInfoURLHost).(string) + urlHost := req.Context().Value(RouteInfoKey).(*RequestRouteInfo).URLHost if urlHost != "" { return req.URL, nil } @@ -143,14 +149,6 @@ func (rp *HTTPReverseProxy) GetRouteConfig(domain, location, routeByHTTPUser str return nil } -func (rp *HTTPReverseProxy) GetRealHost(domain, location, routeByHTTPUser string) (host string) { - vr, ok := rp.getVhost(domain, location, routeByHTTPUser) - if ok { - host = vr.payload.(*RouteConfig).RewriteHost - } - return -} - func (rp *HTTPReverseProxy) GetHeaders(domain, location, routeByHTTPUser string) (headers map[string]string) { vr, ok := rp.getVhost(domain, location, routeByHTTPUser) if ok { @@ -160,15 +158,22 @@ func (rp *HTTPReverseProxy) GetHeaders(domain, location, routeByHTTPUser string) } // CreateConnection create a new connection by route config -func (rp *HTTPReverseProxy) CreateConnection(domain, location, routeByHTTPUser string, remoteAddr string) (net.Conn, error) { - vr, ok := rp.getVhost(domain, location, routeByHTTPUser) +func (rp *HTTPReverseProxy) CreateConnection(reqRouteInfo *RequestRouteInfo, byEndpoint bool) (net.Conn, error) { + host, _ := util.CanonicalHost(reqRouteInfo.Host) + vr, ok := rp.getVhost(host, reqRouteInfo.URL, reqRouteInfo.HTTPUser) if ok { + if byEndpoint { + fn := vr.payload.(*RouteConfig).CreateConnByEndpointFn + if fn != nil { + return fn(reqRouteInfo.Endpoint, reqRouteInfo.RemoteAddr) + } + } fn := vr.payload.(*RouteConfig).CreateConnFn if fn != nil { - return fn(remoteAddr) + return fn(reqRouteInfo.RemoteAddr) } } - return nil, fmt.Errorf("%v: %s %s %s", ErrNoRouteFound, domain, location, routeByHTTPUser) + return nil, fmt.Errorf("%v: %s %s %s", ErrNoRouteFound, host, reqRouteInfo.URL, reqRouteInfo.HTTPUser) } func (rp *HTTPReverseProxy) CheckAuth(domain, location, routeByHTTPUser, user, passwd string) bool { @@ -244,12 +249,7 @@ func (rp *HTTPReverseProxy) connectHandler(rw http.ResponseWriter, req *http.Req return } - url := req.Context().Value(RouteInfoURL).(string) - routeByHTTPUser := req.Context().Value(RouteInfoHTTPUser).(string) - domain, _ := util.CanonicalHost(req.Context().Value(RouteInfoHost).(string)) - remoteAddr := req.Context().Value(RouteInfoRemote).(string) - - remote, err := rp.CreateConnection(domain, url, routeByHTTPUser, remoteAddr) + remote, err := rp.CreateConnection(req.Context().Value(RouteInfoKey).(*RequestRouteInfo), false) if err != nil { _ = notFoundResponse().Write(client) client.Close() @@ -278,11 +278,6 @@ func parseBasicAuth(auth string) (username, password string, ok bool) { } func (rp *HTTPReverseProxy) injectRequestInfoToCtx(req *http.Request) *http.Request { - newctx := req.Context() - newctx = context.WithValue(newctx, RouteInfoURL, req.URL.Path) - newctx = context.WithValue(newctx, RouteInfoHost, req.Host) - newctx = context.WithValue(newctx, RouteInfoURLHost, req.URL.Host) - user := "" // If url host isn't empty, it's a proxy request. Get http user from Proxy-Authorization header. if req.URL.Host != "" { @@ -294,8 +289,16 @@ func (rp *HTTPReverseProxy) injectRequestInfoToCtx(req *http.Request) *http.Requ if user == "" { user, _, _ = req.BasicAuth() } - newctx = context.WithValue(newctx, RouteInfoHTTPUser, user) - newctx = context.WithValue(newctx, RouteInfoRemote, req.RemoteAddr) + + reqRouteInfo := &RequestRouteInfo{ + URL: req.URL.Path, + Host: req.Host, + HTTPUser: user, + RemoteAddr: req.RemoteAddr, + URLHost: req.URL.Host, + } + newctx := req.Context() + newctx = context.WithValue(newctx, RouteInfoKey, reqRouteInfo) return req.Clone(newctx) } diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index 50690052f85..651d9607221 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -29,13 +29,18 @@ import ( type RouteInfo string const ( - RouteInfoURL RouteInfo = "url" - RouteInfoHost RouteInfo = "host" - RouteInfoHTTPUser RouteInfo = "httpUser" - RouteInfoRemote RouteInfo = "remote" - RouteInfoURLHost RouteInfo = "urlHost" + RouteInfoKey RouteInfo = "routeInfo" ) +type RequestRouteInfo struct { + URL string + Host string + HTTPUser string + RemoteAddr string + URLHost string + Endpoint string +} + type ( muxFunc func(net.Conn) (net.Conn, map[string]string, error) httpAuthFunc func(net.Conn, string, string, string) (bool, error) @@ -75,8 +80,12 @@ func NewMuxer( return mux, nil } +type ChooseEndpointFunc func() (string, error) + type CreateConnFunc func(remoteAddr string) (net.Conn, error) +type CreateConnByEndpointFunc func(endpoint, remoteAddr string) (net.Conn, error) + // RouteConfig is the params used to match HTTP requests type RouteConfig struct { Domain string @@ -87,7 +96,9 @@ type RouteConfig struct { Headers map[string]string RouteByHTTPUser string - CreateConnFn CreateConnFunc + CreateConnFn CreateConnFunc + ChooseEndpointFn ChooseEndpointFunc + CreateConnByEndpointFn CreateConnByEndpointFunc } // listen for a new domain name, if rewriteHost is not empty and rewriteFunc is not nil diff --git a/server/group/http.go b/server/group/http.go index 7e081eb535e..640919251d3 100644 --- a/server/group/http.go +++ b/server/group/http.go @@ -10,7 +10,7 @@ import ( ) type HTTPGroupController struct { - // groups by indexKey + // groups indexed by group name groups map[string]*HTTPGroup // register createConn for each group to vhostRouter. @@ -65,7 +65,7 @@ type HTTPGroup struct { location string routeByHTTPUser string - // CreateConnFuncs indexed by echo proxy name + // CreateConnFuncs indexed by proxy name createFuncs map[string]vhost.CreateConnFunc pxyNames []string index uint64 @@ -91,6 +91,8 @@ func (g *HTTPGroup) Register( // the first proxy in this group tmp := routeConfig // copy object tmp.CreateConnFn = g.createConn + tmp.ChooseEndpointFn = g.chooseEndpoint + tmp.CreateConnByEndpointFn = g.createConnByEndpoint err = g.ctl.vhostRouter.Add(routeConfig.Domain, routeConfig.Location, routeConfig.RouteByHTTPUser, &tmp) if err != nil { return @@ -161,3 +163,36 @@ func (g *HTTPGroup) createConn(remoteAddr string) (net.Conn, error) { return f(remoteAddr) } + +func (g *HTTPGroup) chooseEndpoint() (string, error) { + newIndex := atomic.AddUint64(&g.index, 1) + name := "" + + g.mu.RLock() + group := g.group + domain := g.domain + location := g.location + routeByHTTPUser := g.routeByHTTPUser + if len(g.pxyNames) > 0 { + name = g.pxyNames[int(newIndex)%len(g.pxyNames)] + } + g.mu.RUnlock() + + if name == "" { + return "", fmt.Errorf("no healthy endpoint for http group [%s], domain [%s], location [%s], routeByHTTPUser [%s]", + group, domain, location, routeByHTTPUser) + } + return name, nil +} + +func (g *HTTPGroup) createConnByEndpoint(endpoint, remoteAddr string) (net.Conn, error) { + var f vhost.CreateConnFunc + g.mu.RLock() + f = g.createFuncs[endpoint] + g.mu.RUnlock() + + if f == nil { + return nil, fmt.Errorf("no CreateConnFunc for endpoint [%s] in group [%s]", endpoint, g.group) + } + return f(remoteAddr) +} diff --git a/test/e2e/features/group.go b/test/e2e/features/group.go index f66fae053c3..f36e75b26b4 100644 --- a/test/e2e/features/group.go +++ b/test/e2e/features/group.go @@ -217,6 +217,29 @@ var _ = ginkgo.Describe("[Feature: Group]", func() { f.RunProcesses([]string{serverConf}, []string{clientConf}) + // send first HTTP request + var contents []string + framework.NewRequestExpect(f).Port(vhostPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("example.com") + }). + Ensure(func(resp *request.Response) bool { + contents = append(contents, string(resp.Content)) + return true + }) + + // send second HTTP request, should be forwarded to another service + framework.NewRequestExpect(f).Port(vhostPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("example.com") + }). + Ensure(func(resp *request.Response) bool { + contents = append(contents, string(resp.Content)) + return true + }) + + framework.ExpectContainElements(contents, []string{"foo", "bar"}) + // check foo and bar is ok results := doFooBarHTTPRequest(vhostPort, "example.com") framework.ExpectContainElements(results, []string{"foo", "bar"}) From 34ab6b0e744b9826426fb8ceffdfdefbef0df3b0 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 26 Oct 2022 23:09:17 +0800 Subject: [PATCH 011/444] add release notes --- Release.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Release.md b/Release.md index 35c8b12ea31..61955347dbc 100644 --- a/Release.md +++ b/Release.md @@ -1,8 +1,3 @@ -### New +### Improve -* Use auto generated certificates if `plugin_key_path` and `plugin_crt_path` are empty for plugin `https2https` and `https2http`. -* Server dashboard supports TLS configs. - -### Fix - -* xtcp error with IPv6 address. +* Adjust http group load balancing to forward requests to each frpc proxy round robin. Previous behavior is always forwarding requests to single proxy in the case of single concurrency. From e8c8d5903a65555e728a132d029ed48a460440c2 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 27 Oct 2022 10:19:30 +0800 Subject: [PATCH 012/444] remove unsupported platform --- .github/workflows/build-and-push-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index 70ae951ac30..b7f7318b62f 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -62,7 +62,7 @@ jobs: with: context: . file: ./dockerfiles/Dockerfile-for-frpc - platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x + platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x push: true tags: | ${{ env.TAG_FRPC }} @@ -73,7 +73,7 @@ jobs: with: context: . file: ./dockerfiles/Dockerfile-for-frps - platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x + platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x push: true tags: | ${{ env.TAG_FRPS }} From 8ab474cc97f32df30dac26a971d5480a172ab50a Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 27 Oct 2022 10:22:47 +0800 Subject: [PATCH 013/444] remove unsupported platform (#3148) --- .github/workflows/build-and-push-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index 70ae951ac30..b7f7318b62f 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -62,7 +62,7 @@ jobs: with: context: . file: ./dockerfiles/Dockerfile-for-frpc - platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x + platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x push: true tags: | ${{ env.TAG_FRPC }} @@ -73,7 +73,7 @@ jobs: with: context: . file: ./dockerfiles/Dockerfile-for-frps - platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x + platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x push: true tags: | ${{ env.TAG_FRPS }} From e5af37bc8cef6033defeb47d27b42a75b32842f3 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 27 Oct 2022 14:22:14 +0800 Subject: [PATCH 014/444] upgrade github actions version (#3150) --- .github/workflows/build-and-push-image.yml | 14 +++++++------- .github/workflows/goreleaser.yml | 6 +++--- .github/workflows/stale.yml | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index b7f7318b62f..454995cbe53 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -16,15 +16,15 @@ jobs: steps: # environment - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: '0' - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 # get image tag name - name: Get Image Tag Name @@ -35,13 +35,13 @@ jobs: echo "TAG_NAME=${{ github.event.inputs.tag }}" >> $GITHUB_ENV fi - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Login to the GPR - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -58,7 +58,7 @@ jobs: echo "TAG_FRPS_GPR=ghcr.io/fatedier/frps:${{ env.TAG_NAME }}" >> $GITHUB_ENV - name: Build and push frpc - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: context: . file: ./dockerfiles/Dockerfile-for-frpc @@ -69,7 +69,7 @@ jobs: ${{ env.TAG_FRPC_GPR }} - name: Build and push frps - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: context: . file: ./dockerfiles/Dockerfile-for-frps diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 25bd76152a0..93354971336 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -8,12 +8,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: 1.19 @@ -26,7 +26,7 @@ jobs: ./package.sh - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 + uses: goreleaser/goreleaser-action@v3 with: version: latest args: release --rm-dist --release-notes=./Release.md diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 1a44ddf67c4..392be0bc54f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v5 + - uses: actions/stale@v6 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: 'Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.' From da51adc27670f495478f50634462954319e4fc14 Mon Sep 17 00:00:00 2001 From: Ashish Kurmi <100655670+boahc077@users.noreply.github.com> Date: Mon, 31 Oct 2022 00:46:46 -0700 Subject: [PATCH 015/444] Set least privileged token permission for GitHub Actions (#3155) Signed-off-by: Ashish Kurmi --- .github/workflows/build-and-push-image.yml | 3 +++ .github/workflows/goreleaser.yml | 3 +++ .github/workflows/stale.yml | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index 454995cbe53..99a9fa9a066 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -9,6 +9,9 @@ on: description: 'Image tag' required: true default: 'test' +permissions: + contents: read + jobs: image: name: Build Image from Dockerfile and binaries diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 93354971336..0614a105fa6 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -3,6 +3,9 @@ name: goreleaser on: workflow_dispatch: +permissions: + contents: read + jobs: goreleaser: runs-on: ubuntu-latest diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 392be0bc54f..c3642d914ac 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -8,8 +8,14 @@ on: description: 'In debug mod' required: false default: 'false' +permissions: + contents: read + jobs: stale: + permissions: + issues: write # for actions/stale to close stale issues + pull-requests: write # for actions/stale to close stale PRs runs-on: ubuntu-latest steps: - uses: actions/stale@v6 From 649df8827c58080f0a3679ab48f5c673926792aa Mon Sep 17 00:00:00 2001 From: Matt Feury Date: Thu, 8 Dec 2022 22:46:34 -0500 Subject: [PATCH 016/444] feat: Support OIDC scope parameter (#3192) --- pkg/auth/oidc.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/auth/oidc.go b/pkg/auth/oidc.go index 831180f4db1..38346c76bb0 100644 --- a/pkg/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -36,6 +36,9 @@ type OidcClientConfig struct { // OidcAudience specifies the audience of the token in OIDC authentication // if AuthenticationMethod == "oidc". By default, this value is "". OidcAudience string `ini:"oidc_audience" json:"oidc_audience"` + // OidcScope specifies the scope of the token in OIDC authentication + // if AuthenticationMethod == "oidc". By default, this value is "". + OidcScope string `ini:"oidc_scope" json:"oidc_scope"` // OidcTokenEndpointURL specifies the URL which implements OIDC Token Endpoint. // It will be used to get an OIDC token if AuthenticationMethod == "oidc". // By default, this value is "". @@ -52,6 +55,7 @@ func getDefaultOidcClientConf() OidcClientConfig { OidcClientID: "", OidcClientSecret: "", OidcAudience: "", + OidcScope: "", OidcTokenEndpointURL: "", OidcAdditionalEndpointParams: make(map[string]string), } @@ -99,10 +103,17 @@ func NewOidcAuthSetter(baseCfg BaseConfig, cfg OidcClientConfig) *OidcAuthProvid eps[k] = []string{v} } + // Previous versions hardcoded the scope to audience, + // so for backwards compatibility, use that if no scope is set + scope := cfg.OidcAudience + if cfg.OidcScope != "" { + scope = cfg.OidcScope + } + tokenGenerator := &clientcredentials.Config{ ClientID: cfg.OidcClientID, ClientSecret: cfg.OidcClientSecret, - Scopes: []string{cfg.OidcAudience}, + Scopes: []string{scope}, TokenURL: cfg.OidcTokenEndpointURL, EndpointParams: eps, } From 2f66dc3e998805d4f2a4dfa020b9c9bc1af2d16d Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 12 Dec 2022 11:04:10 +0800 Subject: [PATCH 017/444] support protocol quic between frpc and frps (#3198) --- client/control.go | 88 +---------- client/service.go | 237 +++++++++++++++++++--------- conf/frpc_full.ini | 2 +- conf/frps_full.ini | 8 +- go.mod | 14 +- go.sum | 32 +++- pkg/config/client.go | 4 +- pkg/config/server.go | 4 + pkg/util/net/conn.go | 28 ++++ server/service.go | 46 +++++- test/e2e/basic/client_server.go | 53 ++++--- test/e2e/framework/consts/consts.go | 1 + 12 files changed, 328 insertions(+), 189 deletions(-) diff --git a/client/control.go b/client/control.go index db8c019a7a9..cc49883caef 100644 --- a/client/control.go +++ b/client/control.go @@ -16,24 +16,18 @@ package client import ( "context" - "crypto/tls" "io" "net" "runtime/debug" - "strconv" "time" "github.com/fatedier/golib/control/shutdown" "github.com/fatedier/golib/crypto" - libdial "github.com/fatedier/golib/net/dial" - fmux "github.com/hashicorp/yamux" "github.com/fatedier/frp/client/proxy" "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" - "github.com/fatedier/frp/pkg/transport" - frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" ) @@ -51,8 +45,7 @@ type Control struct { // control connection conn net.Conn - // tcp stream multiplexing, if enabled - session *fmux.Session + cm *ConnectionManager // put a message in this channel to send it over control connection to server sendCh chan (msg.Message) @@ -87,7 +80,8 @@ type Control struct { authSetter auth.Setter } -func NewControl(ctx context.Context, runID string, conn net.Conn, session *fmux.Session, +func NewControl( + ctx context.Context, runID string, conn net.Conn, cm *ConnectionManager, clientCfg config.ClientCommonConf, pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]config.VisitorConf, @@ -98,7 +92,7 @@ func NewControl(ctx context.Context, runID string, conn net.Conn, session *fmux. ctl := &Control{ runID: runID, conn: conn, - session: session, + cm: cm, pxyCfgs: pxyCfgs, sendCh: make(chan msg.Message, 100), readCh: make(chan msg.Message, 100), @@ -134,6 +128,7 @@ func (ctl *Control) HandleReqWorkConn(inMsg *msg.ReqWorkConn) { xl := ctl.xl workConn, err := ctl.connectServer() if err != nil { + xl.Warn("start new connection to server error: %v", err) return } @@ -189,9 +184,7 @@ func (ctl *Control) GracefulClose(d time.Duration) error { time.Sleep(d) ctl.conn.Close() - if ctl.session != nil { - ctl.session.Close() - } + ctl.cm.Close() return nil } @@ -202,70 +195,7 @@ func (ctl *Control) ClosedDoneCh() <-chan struct{} { // connectServer return a new connection to frps func (ctl *Control) connectServer() (conn net.Conn, err error) { - xl := ctl.xl - if ctl.clientCfg.TCPMux { - stream, errRet := ctl.session.OpenStream() - if errRet != nil { - err = errRet - xl.Warn("start new connection to server error: %v", err) - return - } - conn = stream - } else { - var tlsConfig *tls.Config - sn := ctl.clientCfg.TLSServerName - if sn == "" { - sn = ctl.clientCfg.ServerAddr - } - - if ctl.clientCfg.TLSEnable { - tlsConfig, err = transport.NewClientTLSConfig( - ctl.clientCfg.TLSCertFile, - ctl.clientCfg.TLSKeyFile, - ctl.clientCfg.TLSTrustedCaFile, - sn) - - if err != nil { - xl.Warn("fail to build tls configuration when connecting to server, err: %v", err) - return - } - } - - proxyType, addr, auth, err := libdial.ParseProxyURL(ctl.clientCfg.HTTPProxy) - if err != nil { - xl.Error("fail to parse proxy url") - return nil, err - } - dialOptions := []libdial.DialOption{} - protocol := ctl.clientCfg.Protocol - if protocol == "websocket" { - protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: frpNet.DialHookWebsocket()})) - } - if ctl.clientCfg.ConnectServerLocalIP != "" { - dialOptions = append(dialOptions, libdial.WithLocalAddr(ctl.clientCfg.ConnectServerLocalIP)) - } - dialOptions = append(dialOptions, - libdial.WithProtocol(protocol), - libdial.WithTimeout(time.Duration(ctl.clientCfg.DialServerTimeout)*time.Second), - libdial.WithKeepAlive(time.Duration(ctl.clientCfg.DialServerKeepAlive)*time.Second), - libdial.WithProxy(proxyType, addr), - libdial.WithProxyAuth(auth), - libdial.WithTLSConfig(tlsConfig), - libdial.WithAfterHook(libdial.AfterHook{ - Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, ctl.clientCfg.DisableCustomTLSFirstByte), - }), - ) - conn, err = libdial.Dial( - net.JoinHostPort(ctl.clientCfg.ServerAddr, strconv.Itoa(ctl.clientCfg.ServerPort)), - dialOptions..., - ) - if err != nil { - xl.Warn("start new connection to server error: %v", err) - return nil, err - } - } - return + return ctl.cm.Connect() } // reader read all messages from frps and send to readCh @@ -409,9 +339,7 @@ func (ctl *Control) worker() { ctl.vm.Close() close(ctl.closedDoneCh) - if ctl.session != nil { - ctl.session.Close() - } + ctl.cm.Close() } func (ctl *Control) ReloadConf(pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]config.VisitorConf) error { diff --git a/client/service.go b/client/service.go index 375587676a3..f4a1e90de04 100644 --- a/client/service.go +++ b/client/service.go @@ -31,6 +31,7 @@ import ( "github.com/fatedier/golib/crypto" libdial "github.com/fatedier/golib/net/dial" fmux "github.com/hashicorp/yamux" + quic "github.com/lucas-clemente/quic-go" "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" @@ -127,7 +128,7 @@ func (svr *Service) Run() error { // login to frps for { - conn, session, err := svr.login() + conn, cm, err := svr.login() if err != nil { xl.Warn("login to server failed: %v", err) @@ -139,7 +140,7 @@ func (svr *Service) Run() error { util.RandomSleep(10*time.Second, 0.9, 1.1) } else { // login success - ctl := NewControl(svr.ctx, svr.runID, conn, session, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.serverUDPPort, svr.authSetter) + ctl := NewControl(svr.ctx, svr.runID, conn, cm, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.serverUDPPort, svr.authSetter) ctl.Run() svr.ctlMu.Lock() svr.ctl = ctl @@ -207,7 +208,7 @@ func (svr *Service) keepControllerWorking() { } xl.Info("try to reconnect to server...") - conn, session, err := svr.login() + conn, cm, err := svr.login() if err != nil { xl.Warn("reconnect to server error: %v, wait %v for another retry", err, delayTime) util.RandomSleep(delayTime, 0.9, 1.1) @@ -221,7 +222,7 @@ func (svr *Service) keepControllerWorking() { // reconnect success, init delayTime delayTime = time.Second - ctl := NewControl(svr.ctx, svr.runID, conn, session, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.serverUDPPort, svr.authSetter) + ctl := NewControl(svr.ctx, svr.runID, conn, cm, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.serverUDPPort, svr.authSetter) ctl.Run() svr.ctlMu.Lock() if svr.ctl != nil { @@ -237,83 +238,23 @@ func (svr *Service) keepControllerWorking() { // login creates a connection to frps and registers it self as a client // conn: control connection // session: if it's not nil, using tcp mux -func (svr *Service) login() (conn net.Conn, session *fmux.Session, err error) { +func (svr *Service) login() (conn net.Conn, cm *ConnectionManager, err error) { xl := xlog.FromContextSafe(svr.ctx) - var tlsConfig *tls.Config - if svr.cfg.TLSEnable { - sn := svr.cfg.TLSServerName - if sn == "" { - sn = svr.cfg.ServerAddr - } + cm = NewConnectionManager(svr.ctx, &svr.cfg) - tlsConfig, err = transport.NewClientTLSConfig( - svr.cfg.TLSCertFile, - svr.cfg.TLSKeyFile, - svr.cfg.TLSTrustedCaFile, - sn) - if err != nil { - xl.Warn("fail to build tls configuration when service login, err: %v", err) - return - } - } - - proxyType, addr, auth, err := libdial.ParseProxyURL(svr.cfg.HTTPProxy) - if err != nil { - xl.Error("fail to parse proxy url") - return - } - dialOptions := []libdial.DialOption{} - protocol := svr.cfg.Protocol - if protocol == "websocket" { - protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: frpNet.DialHookWebsocket()})) - } - if svr.cfg.ConnectServerLocalIP != "" { - dialOptions = append(dialOptions, libdial.WithLocalAddr(svr.cfg.ConnectServerLocalIP)) - } - dialOptions = append(dialOptions, - libdial.WithProtocol(protocol), - libdial.WithTimeout(time.Duration(svr.cfg.DialServerTimeout)*time.Second), - libdial.WithKeepAlive(time.Duration(svr.cfg.DialServerKeepAlive)*time.Second), - libdial.WithProxy(proxyType, addr), - libdial.WithProxyAuth(auth), - libdial.WithTLSConfig(tlsConfig), - libdial.WithAfterHook(libdial.AfterHook{ - Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, svr.cfg.DisableCustomTLSFirstByte), - }), - ) - conn, err = libdial.Dial( - net.JoinHostPort(svr.cfg.ServerAddr, strconv.Itoa(svr.cfg.ServerPort)), - dialOptions..., - ) - if err != nil { - return + if err = cm.OpenConnection(); err != nil { + return nil, nil, err } defer func() { if err != nil { - conn.Close() - if session != nil { - session.Close() - } + cm.Close() } }() - if svr.cfg.TCPMux { - fmuxCfg := fmux.DefaultConfig() - fmuxCfg.KeepAliveInterval = time.Duration(svr.cfg.TCPMuxKeepaliveInterval) * time.Second - fmuxCfg.LogOutput = io.Discard - session, err = fmux.Client(conn, fmuxCfg) - if err != nil { - return - } - stream, errRet := session.OpenStream() - if errRet != nil { - session.Close() - err = errRet - return - } - conn = stream + conn, err = cm.Connect() + if err != nil { + return } loginMsg := &msg.Login{ @@ -389,3 +330,155 @@ func (svr *Service) GracefulClose(d time.Duration) { svr.cancel() } + +type ConnectionManager struct { + ctx context.Context + cfg *config.ClientCommonConf + + muxSession *fmux.Session + quicConn quic.Connection +} + +func NewConnectionManager(ctx context.Context, cfg *config.ClientCommonConf) *ConnectionManager { + return &ConnectionManager{ + ctx: ctx, + cfg: cfg, + } +} + +func (cm *ConnectionManager) OpenConnection() error { + xl := xlog.FromContextSafe(cm.ctx) + + // special for quic + if strings.EqualFold(cm.cfg.Protocol, "quic") { + var tlsConfig *tls.Config + var err error + sn := cm.cfg.TLSServerName + if sn == "" { + sn = cm.cfg.ServerAddr + } + if cm.cfg.TLSEnable { + tlsConfig, err = transport.NewClientTLSConfig( + cm.cfg.TLSCertFile, + cm.cfg.TLSKeyFile, + cm.cfg.TLSTrustedCaFile, + sn) + } else { + tlsConfig, err = transport.NewClientTLSConfig("", "", "", sn) + } + if err != nil { + xl.Warn("fail to build tls configuration, err: %v", err) + return err + } + tlsConfig.NextProtos = []string{"frp"} + + conn, err := quic.DialAddr( + net.JoinHostPort(cm.cfg.ServerAddr, strconv.Itoa(cm.cfg.ServerPort)), + tlsConfig, nil) + if err != nil { + return err + } + cm.quicConn = conn + return nil + } + + if !cm.cfg.TCPMux { + return nil + } + + conn, err := cm.realConnect() + if err != nil { + return err + } + + fmuxCfg := fmux.DefaultConfig() + fmuxCfg.KeepAliveInterval = time.Duration(cm.cfg.TCPMuxKeepaliveInterval) * time.Second + fmuxCfg.LogOutput = io.Discard + session, err := fmux.Client(conn, fmuxCfg) + if err != nil { + return err + } + cm.muxSession = session + return nil +} + +func (cm *ConnectionManager) Connect() (net.Conn, error) { + if cm.quicConn != nil { + stream, err := cm.quicConn.OpenStreamSync(context.Background()) + if err != nil { + return nil, err + } + return frpNet.QuicStreamToNetConn(stream, cm.quicConn), nil + } else if cm.muxSession != nil { + stream, err := cm.muxSession.OpenStream() + if err != nil { + return nil, err + } + return stream, nil + } + + return cm.realConnect() +} + +func (cm *ConnectionManager) realConnect() (net.Conn, error) { + xl := xlog.FromContextSafe(cm.ctx) + var tlsConfig *tls.Config + var err error + if cm.cfg.TLSEnable { + sn := cm.cfg.TLSServerName + if sn == "" { + sn = cm.cfg.ServerAddr + } + + tlsConfig, err = transport.NewClientTLSConfig( + cm.cfg.TLSCertFile, + cm.cfg.TLSKeyFile, + cm.cfg.TLSTrustedCaFile, + sn) + if err != nil { + xl.Warn("fail to build tls configuration, err: %v", err) + return nil, err + } + } + + proxyType, addr, auth, err := libdial.ParseProxyURL(cm.cfg.HTTPProxy) + if err != nil { + xl.Error("fail to parse proxy url") + return nil, err + } + dialOptions := []libdial.DialOption{} + protocol := cm.cfg.Protocol + if protocol == "websocket" { + protocol = "tcp" + dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: frpNet.DialHookWebsocket()})) + } + if cm.cfg.ConnectServerLocalIP != "" { + dialOptions = append(dialOptions, libdial.WithLocalAddr(cm.cfg.ConnectServerLocalIP)) + } + dialOptions = append(dialOptions, + libdial.WithProtocol(protocol), + libdial.WithTimeout(time.Duration(cm.cfg.DialServerTimeout)*time.Second), + libdial.WithKeepAlive(time.Duration(cm.cfg.DialServerKeepAlive)*time.Second), + libdial.WithProxy(proxyType, addr), + libdial.WithProxyAuth(auth), + libdial.WithTLSConfig(tlsConfig), + libdial.WithAfterHook(libdial.AfterHook{ + Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, cm.cfg.DisableCustomTLSFirstByte), + }), + ) + conn, err := libdial.Dial( + net.JoinHostPort(cm.cfg.ServerAddr, strconv.Itoa(cm.cfg.ServerPort)), + dialOptions..., + ) + return conn, err +} + +func (cm *ConnectionManager) Close() error { + if cm.quicConn != nil { + _ = cm.quicConn.CloseWithError(0, "") + } + if cm.muxSession != nil { + _ = cm.muxSession.Close() + } + return nil +} diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 9c939678b1f..8fbc5407f23 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -87,7 +87,7 @@ user = your_name login_fail_exit = true # communication protocol used to connect to server -# now it supports tcp, kcp and websocket, default is tcp +# supports tcp, kcp, quic and websocket now, default is tcp protocol = tcp # set client binding ip when connect server, default is empty. diff --git a/conf/frps_full.ini b/conf/frps_full.ini index 45b222f4d6e..8a5c65dd265 100644 --- a/conf/frps_full.ini +++ b/conf/frps_full.ini @@ -9,10 +9,14 @@ bind_port = 7000 # udp port to help make udp hole to penetrate nat bind_udp_port = 7001 -# udp port used for kcp protocol, it can be same with 'bind_port' -# if not set, kcp is disabled in frps +# udp port used for kcp protocol, it can be same with 'bind_port'. +# if not set, kcp is disabled in frps. kcp_bind_port = 7000 +# udp port used for quic protocol. +# if not set, quic is disabled in frps. +# quic_bind_port = 7002 + # specify which address proxy will listen for, default value is same with bind_addr # proxy_bind_addr = 127.0.0.1 diff --git a/go.mod b/go.mod index 7f6740fd5eb..c016217cacf 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fatedier/frp -go 1.18 +go 1.19 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 @@ -13,6 +13,7 @@ require ( github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 github.com/hashicorp/yamux v0.1.1 + github.com/lucas-clemente/quic-go v0.31.0 github.com/onsi/ginkgo v1.16.4 github.com/onsi/gomega v1.20.2 github.com/pires/go-proxyproto v0.6.2 @@ -36,15 +37,21 @@ require ( github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/go-playground/locales v0.14.0 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.1 // indirect github.com/google/go-cmp v0.5.8 // indirect + github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/klauspost/cpuid/v2 v2.0.6 // indirect github.com/klauspost/reedsolomon v1.9.15 // indirect github.com/leodido/go-urn v1.2.1 // indirect + github.com/marten-seemann/qtls-go1-18 v0.1.3 // indirect + github.com/marten-seemann/qtls-go1-19 v0.1.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/nxadm/tail v1.4.8 // indirect + github.com/onsi/ginkgo/v2 v2.2.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect @@ -56,8 +63,11 @@ require ( github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/tjfoc/gmsm v1.4.1 // indirect golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect - golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect + golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 // indirect golang.org/x/text v0.3.7 // indirect + golang.org/x/tools v0.1.12 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/square/go-jose.v2 v2.4.1 // indirect diff --git a/go.sum b/go.sum index b00392d169e..baf27b0e2c1 100644 --- a/go.sum +++ b/go.sum @@ -113,6 +113,7 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw= github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -128,6 +129,8 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -170,6 +173,8 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -208,6 +213,7 @@ github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -240,7 +246,13 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/lucas-clemente/quic-go v0.31.0 h1:MfNp3fk0wjWRajw6quMFA3ap1AVtlU+2mtwmbVogB2M= +github.com/lucas-clemente/quic-go v0.31.0/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/marten-seemann/qtls-go1-18 v0.1.3 h1:R4H2Ks8P6pAtUagjFty2p7BVHn3XiwDAl7TTQf5h7TI= +github.com/marten-seemann/qtls-go1-18 v0.1.3/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= +github.com/marten-seemann/qtls-go1-19 v0.1.1 h1:mnbxeq3oEyQxQXwI4ReCgW9DPoPR94sNlqWoDZnjRIE= +github.com/marten-seemann/qtls-go1-19 v0.1.1/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= @@ -271,7 +283,8 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.1.6 h1:Fx2POJZfKRQcM1pH49qSZiYeu319wji004qX+GDovrU= +github.com/onsi/ginkgo/v2 v2.2.0 h1:3ZNA3L1c5FYDFTTxbFeVGGD8jYvjYauHD30YgLxVsNI= +github.com/onsi/ginkgo/v2 v2.2.0/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.20.2 h1:8uQq0zMgLEfa0vRrrBgaJF2gyW9Da9BmfGV+OyUzfkY= @@ -371,6 +384,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -401,6 +415,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -421,6 +437,9 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -456,6 +475,7 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -480,6 +500,7 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -522,14 +543,16 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 h1:E1pm64FqQa4v8dHd/bAneyMkR4hk8LTJhoSlc5mc1cM= +golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -589,6 +612,9 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pkg/config/client.go b/pkg/config/client.go index eaf8adb0f2d..ed020cf16a0 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -115,7 +115,7 @@ type ClientCommonConf struct { Start []string `ini:"start" json:"start"` // Start map[string]struct{} `json:"start"` // Protocol specifies the protocol to use when interacting with the server. - // Valid values are "tcp", "kcp" and "websocket". By default, this value + // Valid values are "tcp", "kcp", "quic" and "websocket". By default, this value // is "tcp". Protocol string `ini:"protocol" json:"protocol"` // TLSEnable specifies whether or not TLS should be used when communicating @@ -228,7 +228,7 @@ func (cfg *ClientCommonConf) Validate() error { } } - if cfg.Protocol != "tcp" && cfg.Protocol != "kcp" && cfg.Protocol != "websocket" { + if cfg.Protocol != "tcp" && cfg.Protocol != "kcp" && cfg.Protocol != "websocket" && cfg.Protocol != "quic" { return fmt.Errorf("invalid protocol") } diff --git a/pkg/config/server.go b/pkg/config/server.go index 62644558435..ecd3228420b 100644 --- a/pkg/config/server.go +++ b/pkg/config/server.go @@ -46,6 +46,10 @@ type ServerCommonConf struct { // value is 0, the server will not listen for KCP connections. By default, // this value is 0. KCPBindPort int `ini:"kcp_bind_port" json:"kcp_bind_port" validate:"gte=0,lte=65535"` + // QUICBindPort specifies the QUIC port that the server listens on. + // Set this value to 0 will disable this feature. + // By default, the value is 0. + QUICBindPort int `ini:"quic_bind_port" json:"quic_bind_port" validate:"gte=0,lte=65535"` // ProxyBindAddr specifies the address that the proxy binds to. This value // may be the same as BindAddr. ProxyBindAddr string `ini:"proxy_bind_addr" json:"proxy_bind_addr"` diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index f3d8caee400..1258ed48063 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -22,6 +22,8 @@ import ( "sync/atomic" "time" + quic "github.com/lucas-clemente/quic-go" + "github.com/fatedier/frp/pkg/util/xlog" ) @@ -183,3 +185,29 @@ func (statsConn *StatsConn) Close() (err error) { } return } + +type wrapQuicStream struct { + quic.Stream + c quic.Connection +} + +func QuicStreamToNetConn(s quic.Stream, c quic.Connection) net.Conn { + return &wrapQuicStream{ + Stream: s, + c: c, + } +} + +func (conn *wrapQuicStream) LocalAddr() net.Addr { + if conn.c != nil { + return conn.c.LocalAddr() + } + return (*net.TCPAddr)(nil) +} + +func (conn *wrapQuicStream) RemoteAddr() net.Addr { + if conn.c != nil { + return conn.c.RemoteAddr() + } + return (*net.TCPAddr)(nil) +} diff --git a/server/service.go b/server/service.go index 68308270380..0cbb0959060 100644 --- a/server/service.go +++ b/server/service.go @@ -28,6 +28,7 @@ import ( "github.com/fatedier/golib/net/mux" fmux "github.com/hashicorp/yamux" + quic "github.com/lucas-clemente/quic-go" "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" @@ -68,6 +69,9 @@ type Service struct { // Accept connections using kcp kcpListener net.Listener + // Accept connections using quic + quicListener quic.Listener + // Accept connections using websocket websocketListener net.Listener @@ -200,12 +204,24 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.KCPBindPort)) svr.kcpListener, err = frpNet.ListenKcp(address) if err != nil { - err = fmt.Errorf("listen on kcp address udp %s error: %v", address, err) + err = fmt.Errorf("listen on kcp udp address %s error: %v", address, err) return } log.Info("frps kcp listen on udp %s", address) } + if cfg.QUICBindPort > 0 { + address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.QUICBindPort)) + quicTLSCfg := tlsConfig.Clone() + quicTLSCfg.NextProtos = []string{"frp"} + svr.quicListener, err = quic.ListenAddr(address, quicTLSCfg, nil) + if err != nil { + err = fmt.Errorf("listen on quic udp address %s error: %v", address, err) + return + } + log.Info("frps quic listen on quic %s", address) + } + // Listen for accepting connections from client using websocket protocol. websocketPrefix := []byte("GET " + frpNet.FrpWebsocketPath) websocketLn := svr.muxer.Listen(0, uint32(len(websocketPrefix)), func(data []byte) bool { @@ -310,9 +326,12 @@ func (svr *Service) Run() { if svr.rc.NatHoleController != nil { go svr.rc.NatHoleController.Run() } - if svr.cfg.KCPBindPort > 0 { + if svr.kcpListener != nil { go svr.HandleListener(svr.kcpListener) } + if svr.quicListener != nil { + go svr.HandleQUICListener(svr.quicListener) + } go svr.HandleListener(svr.websocketListener) go svr.HandleListener(svr.tlsListener) @@ -437,6 +456,29 @@ func (svr *Service) HandleListener(l net.Listener) { } } +func (svr *Service) HandleQUICListener(l quic.Listener) { + // Listen for incoming connections from client. + for { + c, err := l.Accept(context.Background()) + if err != nil { + log.Warn("QUICListener for incoming connections from client closed") + return + } + // Start a new goroutine to handle connection. + go func(ctx context.Context, frpConn quic.Connection) { + for { + stream, err := frpConn.AcceptStream(context.Background()) + if err != nil { + log.Debug("Accept new quic mux stream error: %v", err) + _ = frpConn.CloseWithError(0, "") + return + } + go svr.handleConnection(ctx, frpNet.QuicStreamToNetConn(stream, frpConn)) + } + }(context.Background(), c) + } +} + func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login) (err error) { // If client's RunID is empty, it's a new client, we just create a new controller. // Otherwise, we check if there is one controller has the same run id. If so, we release previous controller and start new one. diff --git a/test/e2e/basic/client_server.go b/test/e2e/basic/client_server.go index 210500bac21..32a6bbe13da 100644 --- a/test/e2e/basic/client_server.go +++ b/test/e2e/basic/client_server.go @@ -18,6 +18,15 @@ type generalTestConfigures struct { expectError bool } +func renderBindPortConfig(protocol string) string { + if protocol == "kcp" { + return fmt.Sprintf(`kcp_bind_port = {{ .%s }}`, consts.PortServerName) + } else if protocol == "quic" { + return fmt.Sprintf(`quic_bind_port = {{ .%s }}`, consts.PortServerName) + } + return "" +} + func runClientServerTest(f *framework.Framework, configures *generalTestConfigures) { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -63,13 +72,12 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { f := framework.NewDefaultFramework() ginkgo.Describe("Protocol", func() { - supportProtocols := []string{"tcp", "kcp", "websocket"} + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} for _, protocol := range supportProtocols { configures := &generalTestConfigures{ server: fmt.Sprintf(` - kcp_bind_port = {{ .%s }} - protocol = %s" - `, consts.PortServerName, protocol), + %s + `, renderBindPortConfig(protocol)), client: "protocol = " + protocol, } defineClientServerTest(protocol, f, configures) @@ -90,14 +98,13 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { }) ginkgo.Describe("TLS", func() { - supportProtocols := []string{"tcp", "kcp", "websocket"} + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} for _, protocol := range supportProtocols { tmp := protocol defineClientServerTest("TLS over "+strings.ToUpper(tmp), f, &generalTestConfigures{ server: fmt.Sprintf(` - kcp_bind_port = {{ .%s }} - protocol = %s - `, consts.PortServerName, protocol), + %s + `, renderBindPortConfig(protocol)), client: fmt.Sprintf(`tls_enable = true protocol = %s `, protocol), @@ -115,7 +122,7 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { }) ginkgo.Describe("TLS with custom certificate", func() { - supportProtocols := []string{"tcp", "kcp", "websocket"} + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} var ( caCrtPath string @@ -124,14 +131,14 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { ) ginkgo.JustBeforeEach(func() { generator := &cert.SelfSignedCertGenerator{} - artifacts, err := generator.Generate("0.0.0.0") + artifacts, err := generator.Generate("127.0.0.1") framework.ExpectNoError(err) caCrtPath = f.WriteTempFile("ca.crt", string(artifacts.CACert)) serverCrtPath = f.WriteTempFile("server.crt", string(artifacts.Cert)) serverKeyPath = f.WriteTempFile("server.key", string(artifacts.Key)) generator.SetCA(artifacts.CACert, artifacts.CAKey) - _, err = generator.Generate("0.0.0.0") + _, err = generator.Generate("127.0.0.1") framework.ExpectNoError(err) clientCrtPath = f.WriteTempFile("client.crt", string(artifacts.Cert)) clientKeyPath = f.WriteTempFile("client.key", string(artifacts.Key)) @@ -143,10 +150,9 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { ginkgo.It("one-way authentication: "+tmp, func() { runClientServerTest(f, &generalTestConfigures{ server: fmt.Sprintf(` - protocol = %s - kcp_bind_port = {{ .%s }} + %s tls_trusted_ca_file = %s - `, tmp, consts.PortServerName, caCrtPath), + `, renderBindPortConfig(tmp), caCrtPath), client: fmt.Sprintf(` protocol = %s tls_enable = true @@ -159,12 +165,11 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { ginkgo.It("mutual authentication: "+tmp, func() { runClientServerTest(f, &generalTestConfigures{ server: fmt.Sprintf(` - protocol = %s - kcp_bind_port = {{ .%s }} + %s tls_cert_file = %s tls_key_file = %s tls_trusted_ca_file = %s - `, tmp, consts.PortServerName, serverCrtPath, serverKeyPath, caCrtPath), + `, renderBindPortConfig(tmp), serverCrtPath, serverKeyPath, caCrtPath), client: fmt.Sprintf(` protocol = %s tls_enable = true @@ -235,14 +240,13 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { }) ginkgo.Describe("TLS with disable_custom_tls_first_byte", func() { - supportProtocols := []string{"tcp", "kcp", "websocket"} + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} for _, protocol := range supportProtocols { tmp := protocol defineClientServerTest("TLS over "+strings.ToUpper(tmp), f, &generalTestConfigures{ server: fmt.Sprintf(` - kcp_bind_port = {{ .%s }} - protocol = %s - `, consts.PortServerName, protocol), + %s + `, renderBindPortConfig(protocol)), client: fmt.Sprintf(` tls_enable = true protocol = %s @@ -253,15 +257,14 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { }) ginkgo.Describe("IPv6 bind address", func() { - supportProtocols := []string{"tcp", "kcp", "websocket"} + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} for _, protocol := range supportProtocols { tmp := protocol defineClientServerTest("IPv6 bind address: "+strings.ToUpper(tmp), f, &generalTestConfigures{ server: fmt.Sprintf(` bind_addr = :: - kcp_bind_port = {{ .%s }} - protocol = %s - `, consts.PortServerName, protocol), + %s + `, renderBindPortConfig(protocol)), client: fmt.Sprintf(` tls_enable = true protocol = %s diff --git a/test/e2e/framework/consts/consts.go b/test/e2e/framework/consts/consts.go index d38e183daed..622eba924b0 100644 --- a/test/e2e/framework/consts/consts.go +++ b/test/e2e/framework/consts/consts.go @@ -25,6 +25,7 @@ var ( DefaultClientConfig = ` [common] + server_addr = 127.0.0.1 server_port = {{ .%s }} log_level = trace ` From af0b7939a7815199f2f7c8a7ec172b88f32a1b57 Mon Sep 17 00:00:00 2001 From: 0x7fff <4812302+blizard863@users.noreply.github.com> Date: Mon, 12 Dec 2022 15:10:38 +0800 Subject: [PATCH 018/444] feat: odic refine (#3202) Co-authored-by: Matt Feury --- .gitignore | 1 + go.mod | 19 ++-- go.sum | 269 +++++++++++++++++++++++++++++++++++++++++++---- pkg/auth/oidc.go | 11 +- 4 files changed, 265 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index eeccf24af01..0d8ca50d8d7 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ test/bin/ vendor/ dist/ .idea/ +.vscode/ # Cache *.swp diff --git a/go.mod b/go.mod index c016217cacf..d518a612d0c 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 - github.com/coreos/go-oidc v2.2.1+incompatible + github.com/coreos/go-oidc/v3 v3.4.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb github.com/fatedier/golib v0.1.1-0.20220321042308-c306138b83ac github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible @@ -21,8 +21,8 @@ require ( github.com/rodaine/table v1.0.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.7.0 - golang.org/x/net v0.0.0-20220722155237-a158d28d115b - golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b + golang.org/x/net v0.4.0 + golang.org/x/oauth2 v0.3.0 golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 gopkg.in/ini.v1 v1.67.0 k8s.io/apimachinery v0.25.0 @@ -40,9 +40,9 @@ require ( github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/golang/snappy v0.0.1 // indirect + github.com/golang/snappy v0.0.3 // indirect github.com/google/go-cmp v0.5.8 // indirect - github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect + github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/klauspost/cpuid/v2 v2.0.6 // indirect github.com/klauspost/reedsolomon v1.9.15 // indirect @@ -54,7 +54,6 @@ require ( github.com/onsi/ginkgo/v2 v2.2.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect @@ -62,15 +61,15 @@ require ( github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/tjfoc/gmsm v1.4.1 // indirect - golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect + golang.org/x/crypto v0.4.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 // indirect - golang.org/x/text v0.3.7 // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/text v0.5.0 // indirect golang.org/x/tools v0.1.12 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect - gopkg.in/square/go-jose.v2 v2.4.1 // indirect + gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect diff --git a/go.sum b/go.sum index baf27b0e2c1..3471287169a 100644 --- a/go.sum +++ b/go.sum @@ -13,15 +13,37 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -31,6 +53,7 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= @@ -42,6 +65,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= @@ -63,10 +87,18 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= -github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-oidc/v3 v3.4.0 h1:xz7elHb/LDwm/ERpwHd+5nb7wFHL32rsr6bBOgaeu6g= +github.com/coreos/go-oidc/v3 v3.4.0/go.mod h1:eHUXhZtXPQLgEaDrOVTgwbgmz1xGOkJNye6h3zkD2Pw= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -80,6 +112,12 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= @@ -129,6 +167,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -146,10 +185,11 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -159,13 +199,19 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -173,13 +219,27 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -189,6 +249,7 @@ github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -301,8 +362,6 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -336,6 +395,7 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= @@ -391,6 +451,9 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= @@ -403,8 +466,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd h1:XcWmESyNjXJMLahc3mqVQJcgSTDxFxhETVlfk9uGc38= -golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= +golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -429,6 +492,8 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -437,6 +502,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -475,21 +542,49 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8= +golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -501,6 +596,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -539,20 +635,46 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 h1:E1pm64FqQa4v8dHd/bAneyMkR4hk8LTJhoSlc5mc1cM= -golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -560,9 +682,12 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -611,14 +736,27 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -635,6 +773,29 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -666,12 +827,61 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -684,6 +894,26 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -696,6 +926,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -710,13 +942,14 @@ gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.4.1 h1:H0TmLt7/KmzlrDOpa1F+zr0Tk90PbJYBfsVUmRLrf9Y= -gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= +gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/pkg/auth/oidc.go b/pkg/auth/oidc.go index 38346c76bb0..c8ef923d3fc 100644 --- a/pkg/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -18,7 +18,7 @@ import ( "context" "fmt" - "github.com/coreos/go-oidc" + "github.com/coreos/go-oidc/v3/oidc" "golang.org/x/oauth2/clientcredentials" "github.com/fatedier/frp/pkg/msg" @@ -103,17 +103,14 @@ func NewOidcAuthSetter(baseCfg BaseConfig, cfg OidcClientConfig) *OidcAuthProvid eps[k] = []string{v} } - // Previous versions hardcoded the scope to audience, - // so for backwards compatibility, use that if no scope is set - scope := cfg.OidcAudience - if cfg.OidcScope != "" { - scope = cfg.OidcScope + if cfg.OidcAudience != "" { + eps["audience"] = []string{cfg.OidcAudience} } tokenGenerator := &clientcredentials.Config{ ClientID: cfg.OidcClientID, ClientSecret: cfg.OidcClientSecret, - Scopes: []string{scope}, + Scopes: []string{cfg.OidcScope}, TokenURL: cfg.OidcTokenEndpointURL, EndpointParams: eps, } From b2e394680048a192d40b12129b150eb86cc20b34 Mon Sep 17 00:00:00 2001 From: 0x7fff <4812302+blizard863@users.noreply.github.com> Date: Tue, 13 Dec 2022 22:37:06 +0800 Subject: [PATCH 019/444] feat: release (#3205) Co-authored-by: blizard863 <760076784@qq.com> --- Release.md | 7 ++++++- conf/frpc_full.ini | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Release.md b/Release.md index 61955347dbc..5fac62df540 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,8 @@ +### New + +* Add oidc_scope parameter to frpc when authentication_method = oidc . + + ### Improve -* Adjust http group load balancing to forward requests to each frpc proxy round robin. Previous behavior is always forwarding requests to single proxy in the case of single concurrency. +* Upgrade oidc and oauth2 package which is forward compatible. diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 8fbc5407f23..0dc2d5d592b 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -40,6 +40,8 @@ authenticate_new_work_conns = false # auth token token = 12345678 +authentication_method = + # oidc_client_id specifies the client ID to use to get a token in OIDC authentication if AuthenticationMethod == "oidc". # By default, this value is "". oidc_client_id = @@ -51,6 +53,9 @@ oidc_client_secret = # oidc_audience specifies the audience of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "". oidc_audience = +# oidc_scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "". +oidc_scope = + # oidc_token_endpoint_url specifies the URL which implements OIDC Token Endpoint. # It will be used to get an OIDC token if AuthenticationMethod == "oidc". By default, this value is "". oidc_token_endpoint_url = From 7678938c088c8d57367494ad53dd5c3b9e0cca35 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 18 Dec 2022 18:43:42 +0800 Subject: [PATCH 020/444] support quic options (#3211) --- README.md | 30 ++++++++++++++++++++++++++++++ Release.md | 3 ++- client/control.go | 2 +- client/service.go | 6 +++++- conf/frpc_full.ini | 5 +++++ conf/frps_full.ini | 4 ++++ pkg/config/client.go | 19 +++++++------------ pkg/config/client_test.go | 3 +++ pkg/config/server.go | 27 +++++++-------------------- pkg/config/server_test.go | 6 ++++++ pkg/util/version/version.go | 2 +- server/service.go | 6 +++++- 12 files changed, 76 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 2fabdca777b..57a68949b24 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ frp also has a P2P connect mode. * [For Each Proxy](#for-each-proxy) * [TCP Stream Multiplexing](#tcp-stream-multiplexing) * [Support KCP Protocol](#support-kcp-protocol) + * [Support QUIC Protocol](#support-quic-protocol) * [Connection Pooling](#connection-pooling) * [Load balancing](#load-balancing) * [Service Health Check](#service-health-check) @@ -761,6 +762,35 @@ KCP mode uses UDP as the underlying transport. Using KCP in frp: protocol = kcp ``` +### Support QUIC Protocol + +QUIC is a new multiplexed transport built on top of UDP. + +Using QUIC in frp: + +1. Enable QUIC in frps: + + ```ini + # frps.ini + [common] + bind_port = 7000 + # Specify a UDP port for QUIC. + quic_bind_port = 7000 + ``` + + The `quic_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port. + +2. Configure `frpc.ini` to use QUIC to connect to frps: + + ```ini + # frpc.ini + [common] + server_addr = x.x.x.x + # Same as the 'quic_bind_port' in frps.ini + server_port = 7000 + protocol = quic + ``` + ### Connection Pooling By default, frps creates a new frpc connection to the backend service upon a user request. With connection pooling, frps keeps a certain number of pre-established connections, reducing the time needed to establish a connection. diff --git a/Release.md b/Release.md index 5fac62df540..bbcb8c5c96f 100644 --- a/Release.md +++ b/Release.md @@ -1,6 +1,7 @@ ### New -* Add oidc_scope parameter to frpc when authentication_method = oidc . +* Add `oidc_scope` parameter to frpc when `authentication_method = oidc`. +* Support quic protocol between frpc and frps. ### Improve diff --git a/client/control.go b/client/control.go index cc49883caef..9fb15c0104f 100644 --- a/client/control.go +++ b/client/control.go @@ -147,7 +147,7 @@ func (ctl *Control) HandleReqWorkConn(inMsg *msg.ReqWorkConn) { var startMsg msg.StartWorkConn if err = msg.ReadMsgInto(workConn, &startMsg); err != nil { - xl.Error("work connection closed before response StartWorkConn message: %v", err) + xl.Trace("work connection closed before response StartWorkConn message: %v", err) workConn.Close() return } diff --git a/client/service.go b/client/service.go index f4a1e90de04..b72fea7731d 100644 --- a/client/service.go +++ b/client/service.go @@ -374,7 +374,11 @@ func (cm *ConnectionManager) OpenConnection() error { conn, err := quic.DialAddr( net.JoinHostPort(cm.cfg.ServerAddr, strconv.Itoa(cm.cfg.ServerPort)), - tlsConfig, nil) + tlsConfig, &quic.Config{ + MaxIdleTimeout: time.Duration(cm.cfg.QUICMaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(cm.cfg.QUICMaxIncomingStreams), + KeepAlivePeriod: time.Duration(cm.cfg.QUICKeepalivePeriod) * time.Second, + }) if err != nil { return err } diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 0dc2d5d592b..8e39de1c9f7 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -99,6 +99,11 @@ protocol = tcp # only when protocol = tcp or websocket, the value will be used. connect_server_local_ip = 0.0.0.0 +# quic protocol options +# quic_keepalive_period = 10 +# quic_max_idle_timeout = 30 +# quic_max_incoming_streams = 100000 + # if tls_enable is true, frpc will connect frps by tls tls_enable = true diff --git a/conf/frps_full.ini b/conf/frps_full.ini index 8a5c65dd265..2d5e08e172e 100644 --- a/conf/frps_full.ini +++ b/conf/frps_full.ini @@ -16,6 +16,10 @@ kcp_bind_port = 7000 # udp port used for quic protocol. # if not set, quic is disabled in frps. # quic_bind_port = 7002 +# quic protocol options +# quic_keepalive_period = 10 +# quic_max_idle_timeout = 30 +# quic_max_incoming_streams = 100000 # specify which address proxy will listen for, default value is same with bind_addr # proxy_bind_addr = 127.0.0.1 diff --git a/pkg/config/client.go b/pkg/config/client.go index ed020cf16a0..906ee985ebb 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -118,6 +118,10 @@ type ClientCommonConf struct { // Valid values are "tcp", "kcp", "quic" and "websocket". By default, this value // is "tcp". Protocol string `ini:"protocol" json:"protocol"` + // QUIC protocol options + QUICKeepalivePeriod int `ini:"quic_keepalive_period" json:"quic_keepalive_period" validate:"gte=0"` + QUICMaxIdleTimeout int `ini:"quic_max_idle_timeout" json:"quic_max_idle_timeout" validate:"gte=0"` + QUICMaxIncomingStreams int `ini:"quic_max_incoming_streams" json:"quic_max_incoming_streams" validate:"gte=0"` // TLSEnable specifies whether or not TLS should be used when communicating // with the server. If "tls_cert_file" and "tls_key_file" are valid, // client will load the supplied tls configuration. @@ -172,30 +176,21 @@ func GetDefaultClientConf() ClientCommonConf { LogWay: "console", LogLevel: "info", LogMaxDays: 3, - DisableLogColor: false, AdminAddr: "127.0.0.1", - AdminPort: 0, - AdminUser: "", - AdminPwd: "", - AssetsDir: "", PoolCount: 1, TCPMux: true, TCPMuxKeepaliveInterval: 60, - User: "", - DNSServer: "", LoginFailExit: true, Start: make([]string, 0), Protocol: "tcp", - TLSEnable: false, - TLSCertFile: "", - TLSKeyFile: "", - TLSTrustedCaFile: "", + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, HeartbeatInterval: 30, HeartbeatTimeout: 90, Metas: make(map[string]string), UDPPacketSize: 1500, IncludeConfigFiles: make([]string, 0), - PprofEnable: false, } } diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index ccff22936da..9cf8c805286 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -278,6 +278,9 @@ func Test_LoadClientCommonConf(t *testing.T) { User: "your_name", LoginFailExit: true, Protocol: "tcp", + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, TLSEnable: true, TLSCertFile: "client.crt", TLSKeyFile: "client.key", diff --git a/pkg/config/server.go b/pkg/config/server.go index ecd3228420b..040eaf65fe0 100644 --- a/pkg/config/server.go +++ b/pkg/config/server.go @@ -50,6 +50,10 @@ type ServerCommonConf struct { // Set this value to 0 will disable this feature. // By default, the value is 0. QUICBindPort int `ini:"quic_bind_port" json:"quic_bind_port" validate:"gte=0,lte=65535"` + // QUIC protocol options + QUICKeepalivePeriod int `ini:"quic_keepalive_period" json:"quic_keepalive_period" validate:"gte=0"` + QUICMaxIdleTimeout int `ini:"quic_max_idle_timeout" json:"quic_max_idle_timeout" validate:"gte=0"` + QUICMaxIncomingStreams int `ini:"quic_max_incoming_streams" json:"quic_max_incoming_streams" validate:"gte=0"` // ProxyBindAddr specifies the address that the proxy binds to. This value // may be the same as BindAddr. ProxyBindAddr string `ini:"proxy_bind_addr" json:"proxy_bind_addr"` @@ -199,43 +203,26 @@ func GetDefaultServerConf() ServerCommonConf { ServerConfig: auth.GetDefaultServerConf(), BindAddr: "0.0.0.0", BindPort: 7000, - BindUDPPort: 0, - KCPBindPort: 0, - ProxyBindAddr: "", - VhostHTTPPort: 0, - VhostHTTPSPort: 0, - TCPMuxHTTPConnectPort: 0, - TCPMuxPassthrough: false, + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, VhostHTTPTimeout: 60, DashboardAddr: "0.0.0.0", - DashboardPort: 0, - DashboardUser: "", - DashboardPwd: "", - EnablePrometheus: false, - AssetsDir: "", LogFile: "console", LogWay: "console", LogLevel: "info", LogMaxDays: 3, - DisableLogColor: false, DetailedErrorsToClient: true, - SubDomainHost: "", TCPMux: true, TCPMuxKeepaliveInterval: 60, TCPKeepAlive: 7200, AllowPorts: make(map[int]struct{}), MaxPoolCount: 5, MaxPortsPerClient: 0, - TLSOnly: false, - TLSCertFile: "", - TLSKeyFile: "", - TLSTrustedCaFile: "", HeartbeatTimeout: 90, UserConnTimeout: 10, - Custom404Page: "", HTTPPlugins: make(map[string]plugin.HTTPPluginOptions), UDPPacketSize: 1500, - PprofEnable: false, } } diff --git a/pkg/config/server_test.go b/pkg/config/server_test.go index 5dee66db364..475a86b6f3e 100644 --- a/pkg/config/server_test.go +++ b/pkg/config/server_test.go @@ -106,6 +106,9 @@ func Test_LoadServerCommonConf(t *testing.T) { BindPort: 7009, BindUDPPort: 7008, KCPBindPort: 7007, + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, ProxyBindAddr: "127.0.0.9", VhostHTTPPort: 89, VhostHTTPSPort: 449, @@ -179,6 +182,9 @@ func Test_LoadServerCommonConf(t *testing.T) { BindAddr: "0.0.0.9", BindPort: 7009, BindUDPPort: 7008, + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, ProxyBindAddr: "0.0.0.9", VhostHTTPTimeout: 60, DashboardAddr: "0.0.0.0", diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index f2805c51fd9..6228c092a58 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.45.0" +var version = "0.46.0" func Full() string { return version diff --git a/server/service.go b/server/service.go index 0cbb0959060..fc59b39c64b 100644 --- a/server/service.go +++ b/server/service.go @@ -214,7 +214,11 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.QUICBindPort)) quicTLSCfg := tlsConfig.Clone() quicTLSCfg.NextProtos = []string{"frp"} - svr.quicListener, err = quic.ListenAddr(address, quicTLSCfg, nil) + svr.quicListener, err = quic.ListenAddr(address, quicTLSCfg, &quic.Config{ + MaxIdleTimeout: time.Duration(cfg.QUICMaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(cfg.QUICMaxIncomingStreams), + KeepAlivePeriod: time.Duration(cfg.QUICKeepalivePeriod) * time.Second, + }) if err != nil { err = fmt.Errorf("listen on quic udp address %s error: %v", address, err) return From e2d28d99290aa5c6c04116953188fbc0a15fd436 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 18 Dec 2022 19:18:09 +0800 Subject: [PATCH 021/444] update goreleaser.yaml --- .github/workflows/goreleaser.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 0614a105fa6..d0234d5abea 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -3,9 +3,6 @@ name: goreleaser on: workflow_dispatch: -permissions: - contents: read - jobs: goreleaser: runs-on: ubuntu-latest @@ -20,10 +17,6 @@ jobs: with: go-version: 1.19 - - run: | - # https://github.com/actions/setup-go/issues/107 - cp -f `which go` /usr/bin/go - - name: Make All run: | ./package.sh From 804f2910fd7612729af14e75c3558fe2d3765fa4 Mon Sep 17 00:00:00 2001 From: 0x7fff <4812302+blizard863@users.noreply.github.com> Date: Thu, 22 Dec 2022 17:55:06 +0800 Subject: [PATCH 022/444] refactor: ifelse (#3224) --- cmd/frpc/sub/stcp.go | 7 ++++--- cmd/frpc/sub/sudp.go | 7 ++++--- cmd/frpc/sub/xtcp.go | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/cmd/frpc/sub/stcp.go b/cmd/frpc/sub/stcp.go index 989387bb795..d84b23b756e 100644 --- a/cmd/frpc/sub/stcp.go +++ b/cmd/frpc/sub/stcp.go @@ -59,7 +59,8 @@ var stcpCmd = &cobra.Command{ prefix = user + "." } - if role == "server" { + switch role { + case "server": cfg := &config.STCPProxyConf{} cfg.ProxyName = prefix + proxyName cfg.ProxyType = consts.STCPProxy @@ -75,7 +76,7 @@ var stcpCmd = &cobra.Command{ os.Exit(1) } proxyConfs[cfg.ProxyName] = cfg - } else if role == "visitor" { + case "visitor": cfg := &config.STCPVisitorConf{} cfg.ProxyName = prefix + proxyName cfg.ProxyType = consts.STCPProxy @@ -92,7 +93,7 @@ var stcpCmd = &cobra.Command{ os.Exit(1) } visitorConfs[cfg.ProxyName] = cfg - } else { + default: fmt.Println("invalid role") os.Exit(1) } diff --git a/cmd/frpc/sub/sudp.go b/cmd/frpc/sub/sudp.go index c781223ddb5..f96a12e12bc 100644 --- a/cmd/frpc/sub/sudp.go +++ b/cmd/frpc/sub/sudp.go @@ -59,7 +59,8 @@ var sudpCmd = &cobra.Command{ prefix = user + "." } - if role == "server" { + switch role { + case "server": cfg := &config.SUDPProxyConf{} cfg.ProxyName = prefix + proxyName cfg.ProxyType = consts.SUDPProxy @@ -75,7 +76,7 @@ var sudpCmd = &cobra.Command{ os.Exit(1) } proxyConfs[cfg.ProxyName] = cfg - } else if role == "visitor" { + case "visitor": cfg := &config.SUDPVisitorConf{} cfg.ProxyName = prefix + proxyName cfg.ProxyType = consts.SUDPProxy @@ -92,7 +93,7 @@ var sudpCmd = &cobra.Command{ os.Exit(1) } visitorConfs[cfg.ProxyName] = cfg - } else { + default: fmt.Println("invalid role") os.Exit(1) } diff --git a/cmd/frpc/sub/xtcp.go b/cmd/frpc/sub/xtcp.go index 069cce7e161..b84269898ad 100644 --- a/cmd/frpc/sub/xtcp.go +++ b/cmd/frpc/sub/xtcp.go @@ -59,7 +59,8 @@ var xtcpCmd = &cobra.Command{ prefix = user + "." } - if role == "server" { + switch role { + case "server": cfg := &config.XTCPProxyConf{} cfg.ProxyName = prefix + proxyName cfg.ProxyType = consts.XTCPProxy @@ -75,7 +76,7 @@ var xtcpCmd = &cobra.Command{ os.Exit(1) } proxyConfs[cfg.ProxyName] = cfg - } else if role == "visitor" { + case "visitor": cfg := &config.XTCPVisitorConf{} cfg.ProxyName = prefix + proxyName cfg.ProxyType = consts.XTCPProxy @@ -92,7 +93,7 @@ var xtcpCmd = &cobra.Command{ os.Exit(1) } visitorConfs[cfg.ProxyName] = cfg - } else { + default: fmt.Println("invalid role") os.Exit(1) } From b03f0ad1e681f72e2067e31d60d25ad09ee2f61a Mon Sep 17 00:00:00 2001 From: Craig O'Donnell Date: Sun, 8 Jan 2023 21:34:09 -0500 Subject: [PATCH 023/444] fix: incorrect op for newWorkConn (#3244) (cherry picked from commit 53b6bbf0b14ab632dc89416d7fffa9b1d0887c0a) --- pkg/plugin/server/manager.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/plugin/server/manager.go b/pkg/plugin/server/manager.go index 5a8a309c61f..516f407e1fd 100644 --- a/pkg/plugin/server/manager.go +++ b/pkg/plugin/server/manager.go @@ -211,7 +211,7 @@ func (m *Manager) NewWorkConn(content *NewWorkConnContent) (*NewWorkConnContent, ctx = NewReqidContext(ctx, reqid) for _, p := range m.newWorkConnPlugins { - res, retContent, err = p.Handle(ctx, OpPing, *content) + res, retContent, err = p.Handle(ctx, OpNewWorkConn, *content) if err != nil { xl.Warn("send NewWorkConn request to plugin [%s] error: %v", p.Name(), err) return nil, errors.New("send NewWorkConn request to plugin error") From 5cfbb976f47bedaa29ed2fc8194db4c825c7205f Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 10 Jan 2023 10:19:37 +0800 Subject: [PATCH 024/444] pkg/util/net: fix quic streams leak (#3246) --- pkg/util/net/conn.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index 1258ed48063..a09da99e702 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -211,3 +211,8 @@ func (conn *wrapQuicStream) RemoteAddr() net.Addr { } return (*net.TCPAddr)(nil) } + +func (conn *wrapQuicStream) Close() error { + conn.Stream.CancelRead(0) + return conn.Stream.Close() +} From 679992db256d97da3ccf9498727a8d3bd7e83b21 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 10 Jan 2023 10:24:44 +0800 Subject: [PATCH 025/444] update version (#3247) --- Release.md | 11 +++-------- pkg/util/version/version.go | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Release.md b/Release.md index bbcb8c5c96f..6738c32b2d8 100644 --- a/Release.md +++ b/Release.md @@ -1,9 +1,4 @@ -### New +### Fix -* Add `oidc_scope` parameter to frpc when `authentication_method = oidc`. -* Support quic protocol between frpc and frps. - - -### Improve - -* Upgrade oidc and oauth2 package which is forward compatible. +* Server Plugin send incorrect op name for NewWorkConn. +* QUIC stream leak. diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 6228c092a58..849002d7fbf 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.46.0" +var version = "0.46.1" func Full() string { return version From ad3548d3322c007773d495436dfa7abadae8aac4 Mon Sep 17 00:00:00 2001 From: bobo liu <7552030+fakeboboliu@users.noreply.github.com> Date: Sat, 14 Jan 2023 21:43:26 +0800 Subject: [PATCH 026/444] optimize: GetAuthKey (#3254) --- pkg/util/util/util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/util/util/util.go b/pkg/util/util/util.go index b13f9a77356..b72209c62d6 100644 --- a/pkg/util/util/util.go +++ b/pkg/util/util/util.go @@ -44,9 +44,9 @@ func RandIDWithLen(idLen int) (id string, err error) { } func GetAuthKey(token string, timestamp int64) (key string) { - token += fmt.Sprintf("%d", timestamp) md5Ctx := md5.New() md5Ctx.Write([]byte(token)) + md5Ctx.Write([]byte(strconv.FormatInt(timestamp, 10))) data := md5Ctx.Sum(nil) return hex.EncodeToString(data) } From 0eecab06c17d69ba11a84162aae35ed7d94f0423 Mon Sep 17 00:00:00 2001 From: Richard Kovacs Date: Sun, 15 Jan 2023 12:15:48 +0100 Subject: [PATCH 027/444] Fix basic example server to join in readme (#3209) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 57a68949b24..a02d0a5a7f2 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ Note that `local_port` (listened on client) and `remote_port` (exposed on server `./frpc -c ./frpc.ini` -5. From another machine, SSH to server B like this (assuming that username is `test`): +5. From another machine, SSH to server B via server A like this (assuming that username is `test`): `ssh -oPort=6000 test@x.x.x.x` From d205c264807b49f773f37a1efeeea86f39637e99 Mon Sep 17 00:00:00 2001 From: Gerhard Tan Date: Sun, 29 Jan 2023 23:54:40 +0800 Subject: [PATCH 028/444] Bugfix: add ipv6 parsing for custom DNS server (#3266) --- client/service.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/service.go b/client/service.go index b72fea7731d..99201f0bb63 100644 --- a/client/service.go +++ b/client/service.go @@ -114,8 +114,8 @@ func (svr *Service) Run() error { // set custom DNSServer if svr.cfg.DNSServer != "" { dnsAddr := svr.cfg.DNSServer - if !strings.Contains(dnsAddr, ":") { - dnsAddr += ":53" + if _, _, err := net.SplitHostPort(dnsAddr); err != nil { + dnsAddr = net.JoinHostPort(dnsAddr, "53") } // Change default dns server for frpc net.DefaultResolver = &net.Resolver{ From 24c7d1d9e2efeaa5b72159d9fc2127e3a7d751dc Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 1 Feb 2023 11:19:31 +0800 Subject: [PATCH 029/444] clean Release.md --- Release.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Release.md b/Release.md index 6738c32b2d8..e69de29bb2d 100644 --- a/Release.md +++ b/Release.md @@ -1,4 +0,0 @@ -### Fix - -* Server Plugin send incorrect op name for NewWorkConn. -* QUIC stream leak. From b1b8d9a82b7c4e0b0b999ec173e1038533fe88eb Mon Sep 17 00:00:00 2001 From: Gerhard Tan Date: Wed, 1 Feb 2023 13:09:31 +0800 Subject: [PATCH 030/444] frpc: do a graceful close for quic protocol at exit (#3282) --- cmd/frpc/sub/root.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index cea8ecc6876..19206c6b10e 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -216,15 +216,16 @@ func startService( return } - kcpDoneCh := make(chan struct{}) - // Capture the exit signal if we use kcp. - if cfg.Protocol == "kcp" { - go handleSignal(svr, kcpDoneCh) + closedDoneCh := make(chan struct{}) + shouldGracefulClose := cfg.Protocol == "kcp" || cfg.Protocol == "quic" + // Capture the exit signal if we use kcp or quic. + if shouldGracefulClose { + go handleSignal(svr, closedDoneCh) } err = svr.Run() - if err == nil && cfg.Protocol == "kcp" { - <-kcpDoneCh + if err == nil && shouldGracefulClose { + <-closedDoneCh } return } From 5e17bc7bf173e15e70a51d90b240736b01fa1c17 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 2 Feb 2023 12:03:20 +0800 Subject: [PATCH 031/444] remove sponsors --- README.md | 4 ---- README_zh.md | 4 ---- 2 files changed, 8 deletions(-) diff --git a/README.md b/README.md index a02d0a5a7f2..ff22141a040 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,6 @@ -

Silver Sponsors

- -* Sakura Frp - 欢迎点击 "加入我们" - ## What is frp? frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it supports **TCP** and **UDP**, as well as **HTTP** and **HTTPS** protocols, where requests can be forwarded to internal services by domain name. diff --git a/README_zh.md b/README_zh.md index e0612bbfbe2..1cc7b4eb085 100644 --- a/README_zh.md +++ b/README_zh.md @@ -18,10 +18,6 @@ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP -

Silver Sponsors

- -* Sakura Frp - 欢迎点击 "加入我们" - ## 为什么使用 frp ? 通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括: From 6b3daffaf09bd5fecc55d5a0fdf6b1b91624a71c Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 2 Feb 2023 20:20:17 +0800 Subject: [PATCH 032/444] upgrade quic-go and change import path (#3286) --- client/service.go | 2 +- go.mod | 13 +++++++------ go.sum | 26 ++++++++++++++------------ pkg/util/net/conn.go | 2 +- server/service.go | 2 +- 5 files changed, 24 insertions(+), 21 deletions(-) diff --git a/client/service.go b/client/service.go index 99201f0bb63..c8d92c6de0c 100644 --- a/client/service.go +++ b/client/service.go @@ -31,7 +31,7 @@ import ( "github.com/fatedier/golib/crypto" libdial "github.com/fatedier/golib/net/dial" fmux "github.com/hashicorp/yamux" - quic "github.com/lucas-clemente/quic-go" + quic "github.com/quic-go/quic-go" "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" diff --git a/go.mod b/go.mod index d518a612d0c..386aedb1223 100644 --- a/go.mod +++ b/go.mod @@ -13,11 +13,11 @@ require ( github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 github.com/hashicorp/yamux v0.1.1 - github.com/lucas-clemente/quic-go v0.31.0 github.com/onsi/ginkgo v1.16.4 github.com/onsi/gomega v1.20.2 github.com/pires/go-proxyproto v0.6.2 github.com/prometheus/client_golang v1.13.0 + github.com/quic-go/quic-go v0.32.0 github.com/rodaine/table v1.0.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.7.0 @@ -47,8 +47,6 @@ require ( github.com/klauspost/cpuid/v2 v2.0.6 // indirect github.com/klauspost/reedsolomon v1.9.15 // indirect github.com/leodido/go-urn v1.2.1 // indirect - github.com/marten-seemann/qtls-go1-18 v0.1.3 // indirect - github.com/marten-seemann/qtls-go1-19 v0.1.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/nxadm/tail v1.4.8 // indirect github.com/onsi/ginkgo/v2 v2.2.0 // indirect @@ -57,16 +55,19 @@ require ( github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/quic-go/qtls-go1-18 v0.2.0 // indirect + github.com/quic-go/qtls-go1-19 v0.2.0 // indirect + github.com/quic-go/qtls-go1-20 v0.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/tjfoc/gmsm v1.4.1 // indirect golang.org/x/crypto v0.4.0 // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect + golang.org/x/mod v0.6.0 // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect - golang.org/x/tools v0.1.12 // indirect + golang.org/x/tools v0.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect diff --git a/go.sum b/go.sum index 3471287169a..521f06b2ee6 100644 --- a/go.sum +++ b/go.sum @@ -307,13 +307,7 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/lucas-clemente/quic-go v0.31.0 h1:MfNp3fk0wjWRajw6quMFA3ap1AVtlU+2mtwmbVogB2M= -github.com/lucas-clemente/quic-go v0.31.0/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/marten-seemann/qtls-go1-18 v0.1.3 h1:R4H2Ks8P6pAtUagjFty2p7BVHn3XiwDAl7TTQf5h7TI= -github.com/marten-seemann/qtls-go1-18 v0.1.3/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= -github.com/marten-seemann/qtls-go1-19 v0.1.1 h1:mnbxeq3oEyQxQXwI4ReCgW9DPoPR94sNlqWoDZnjRIE= -github.com/marten-seemann/qtls-go1-19 v0.1.1/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= @@ -392,6 +386,14 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/quic-go/qtls-go1-18 v0.2.0 h1:5ViXqBZ90wpUcZS0ge79rf029yx0dYB0McyPJwqqj7U= +github.com/quic-go/qtls-go1-18 v0.2.0/go.mod h1:moGulGHK7o6O8lSPSZNoOwcLvJKJ85vVNc7oJFD65bc= +github.com/quic-go/qtls-go1-19 v0.2.0 h1:Cvn2WdhyViFUHoOqK52i51k4nDX8EwIh5VJiVM4nttk= +github.com/quic-go/qtls-go1-19 v0.2.0/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= +github.com/quic-go/qtls-go1-20 v0.1.0 h1:d1PK3ErFy9t7zxKsG3NXBJXZjp/kMLoIb3y/kV54oAI= +github.com/quic-go/qtls-go1-20 v0.1.0/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= +github.com/quic-go/quic-go v0.32.0 h1:lY02md31s1JgPiiyfqJijpu/UX/Iun304FI3yUqX7tA= +github.com/quic-go/quic-go v0.32.0/go.mod h1:/fCsKANhQIeD5l76c2JFU+07gVE3KaA0FP+0zMWwfwo= github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -478,8 +480,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o= +golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -505,8 +507,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -748,8 +750,8 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index a09da99e702..fb2ff677730 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -22,7 +22,7 @@ import ( "sync/atomic" "time" - quic "github.com/lucas-clemente/quic-go" + quic "github.com/quic-go/quic-go" "github.com/fatedier/frp/pkg/util/xlog" ) diff --git a/server/service.go b/server/service.go index fc59b39c64b..e2f849408ce 100644 --- a/server/service.go +++ b/server/service.go @@ -28,7 +28,7 @@ import ( "github.com/fatedier/golib/net/mux" fmux "github.com/hashicorp/yamux" - quic "github.com/lucas-clemente/quic-go" + quic "github.com/quic-go/quic-go" "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" From 100148d9254c4be710d171788a764435f4fc301b Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 5 Feb 2023 20:52:36 +0800 Subject: [PATCH 033/444] support go1.20 (#3287) --- .circleci/config.yml | 4 ++-- .github/workflows/golangci-lint.yml | 4 ++-- .github/workflows/goreleaser.yml | 2 +- .golangci.yml | 8 ++++++-- client/service.go | 2 -- cmd/frps/main.go | 4 ---- dockerfiles/Dockerfile-for-frpc | 2 +- dockerfiles/Dockerfile-for-frps | 2 +- go.mod | 2 +- 9 files changed, 14 insertions(+), 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7499579a8d9..b8dca0e995d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: go-version-latest: docker: - - image: cimg/go:1.19-node + - image: cimg/go:1.20-node resource_class: large steps: - checkout @@ -10,7 +10,7 @@ jobs: - run: make alltest go-version-last: docker: - - image: cimg/go:1.18-node + - image: cimg/go:1.19-node resource_class: large steps: - checkout diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index c9051f38ac6..0aa1c5dd65f 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -16,13 +16,13 @@ jobs: steps: - uses: actions/setup-go@v3 with: - go-version: 1.19 + go-version: '1.20' - uses: actions/checkout@v3 - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v1.49.0 + version: v1.51 # Optional: golangci-lint command line arguments. # args: --issues-exit-code=0 diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index d0234d5abea..484167aae5b 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -15,7 +15,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v3 with: - go-version: 1.19 + go-version: '1.20' - name: Make All run: | diff --git a/.golangci.yml b/.golangci.yml index 39c8e3f7ece..0fe5d726a5d 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,6 +1,5 @@ service: - # When updating this, also update the version stored in docker/build-tools/Dockerfile in the istio/tools repo. - golangci-lint-version: 1.49.x # use the fixed version to not introduce new linters unexpectedly + golangci-lint-version: 1.51.x # use the fixed version to not introduce new linters unexpectedly run: concurrency: 4 @@ -127,6 +126,11 @@ issues: - errcheck - maligned + # keep it until we only support go1.20 + - linters: + - staticcheck + text: "SA1019: rand.Seed has been deprecated" + # Independently from option `exclude` we use default exclude patterns, # it can be disabled by this option. To list all # excluded by default patterns execute `golangci-lint run --help`. diff --git a/client/service.go b/client/service.go index c8d92c6de0c..90d5b3a0d78 100644 --- a/client/service.go +++ b/client/service.go @@ -19,7 +19,6 @@ import ( "crypto/tls" "fmt" "io" - "math/rand" "net" "runtime" "strconv" @@ -47,7 +46,6 @@ import ( func init() { crypto.DefaultSalt = "frp" - rand.Seed(time.Now().UnixNano()) } // Service is a client service. diff --git a/cmd/frps/main.go b/cmd/frps/main.go index 56477aad139..a7c1e9b4370 100644 --- a/cmd/frps/main.go +++ b/cmd/frps/main.go @@ -15,9 +15,6 @@ package main import ( - "math/rand" - "time" - "github.com/fatedier/golib/crypto" _ "github.com/fatedier/frp/assets/frps" @@ -26,7 +23,6 @@ import ( func main() { crypto.DefaultSalt = "frp" - rand.Seed(time.Now().UnixNano()) Execute() } diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index b749be0704b..96a3d8b9209 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,4 +1,4 @@ -FROM golang:1.19 AS building +FROM golang:1.20 AS building COPY . /building WORKDIR /building diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps index cd716123fb1..12d52012c73 100644 --- a/dockerfiles/Dockerfile-for-frps +++ b/dockerfiles/Dockerfile-for-frps @@ -1,4 +1,4 @@ -FROM golang:1.19 AS building +FROM golang:1.20 AS building COPY . /building WORKDIR /building diff --git a/go.mod b/go.mod index 386aedb1223..dd631841ac5 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fatedier/frp -go 1.19 +go 1.20 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 From 113e3b0b0d823724fdeca97d7d293b459de98cdc Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 6 Feb 2023 15:55:33 +0800 Subject: [PATCH 034/444] revert random change (#3292) --- client/service.go | 3 +++ cmd/frps/main.go | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/client/service.go b/client/service.go index 90d5b3a0d78..bac57167f54 100644 --- a/client/service.go +++ b/client/service.go @@ -19,6 +19,7 @@ import ( "crypto/tls" "fmt" "io" + "math/rand" "net" "runtime" "strconv" @@ -46,6 +47,8 @@ import ( func init() { crypto.DefaultSalt = "frp" + // TODO: remove this when we drop support for go1.19 + rand.Seed(time.Now().UnixNano()) } // Service is a client service. diff --git a/cmd/frps/main.go b/cmd/frps/main.go index a7c1e9b4370..6ae5378be48 100644 --- a/cmd/frps/main.go +++ b/cmd/frps/main.go @@ -15,6 +15,9 @@ package main import ( + "math/rand" + "time" + "github.com/fatedier/golib/crypto" _ "github.com/fatedier/frp/assets/frps" @@ -23,6 +26,8 @@ import ( func main() { crypto.DefaultSalt = "frp" + // TODO: remove this when we drop support for go1.19 + rand.Seed(time.Now().UnixNano()) Execute() } From aa31d7ad0bdcc05ee0a4add6cfd0eacf04c241c5 Mon Sep 17 00:00:00 2001 From: Craig O'Donnell Date: Wed, 8 Feb 2023 11:38:36 -0500 Subject: [PATCH 035/444] support bandwidth_limit set by server plugin (#3271) * support bandwidth_limit set by server plugin * limiter at proxy level * bandwidth_limit_mode * updates tests for bandwidth_limit_mode default * bandwidth_limit_mode as string * add checkForSrv for bandwidth_limit_mode * bandwidth_limit flags for sub cmds * gci write --- README.md | 3 +++ client/proxy/proxy.go | 2 +- cmd/frpc/sub/http.go | 8 +++++++ cmd/frpc/sub/https.go | 8 +++++++ cmd/frpc/sub/root.go | 38 ++++++++++++++++--------------- cmd/frpc/sub/stcp.go | 8 +++++++ cmd/frpc/sub/sudp.go | 8 +++++++ cmd/frpc/sub/tcp.go | 8 +++++++ cmd/frpc/sub/tcpmux.go | 8 +++++++ cmd/frpc/sub/udp.go | 8 +++++++ cmd/frpc/sub/xtcp.go | 8 +++++++ conf/frpc_full.ini | 2 ++ doc/server_plugin.md | 2 ++ pkg/config/client_test.go | 35 ++++++++++++++++++++++------ pkg/config/proxy.go | 48 +++++++++++++++++++++++++++++++++++++++ pkg/config/proxy_test.go | 29 +++++++++++++++++------ pkg/config/types.go | 3 +++ pkg/msg/msg.go | 20 +++++++++------- server/proxy/http.go | 13 +++++++++++ server/proxy/https.go | 6 +++++ server/proxy/proxy.go | 19 ++++++++++++++++ server/proxy/stcp.go | 6 +++++ server/proxy/sudp.go | 6 +++++ server/proxy/tcp.go | 6 +++++ server/proxy/tcpmux.go | 6 +++++ server/proxy/udp.go | 12 ++++++++++ server/proxy/xtcp.go | 5 ++++ 27 files changed, 284 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index ff22141a040..73e48c75869 100644 --- a/README.md +++ b/README.md @@ -713,10 +713,13 @@ type = tcp local_port = 22 remote_port = 6000 bandwidth_limit = 1MB +bandwidth_limit_mode = client ``` Set `bandwidth_limit` in each proxy's configure to enable this feature. Supported units are `MB` and `KB`. +Set `bandwidth_limit_mode` to `client` or `server` to limit bandwidth on the client or server side. Default is `client`. + ### TCP Stream Multiplexing frp supports tcp stream multiplexing since v0.10.0 like HTTP2 Multiplexing, in which case all logic connections to the same frpc are multiplexed into the same TCP connection. diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 158773bc007..98a8a672d39 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -54,7 +54,7 @@ type Proxy interface { func NewProxy(ctx context.Context, pxyConf config.ProxyConf, clientCfg config.ClientCommonConf, serverUDPPort int) (pxy Proxy) { var limiter *rate.Limiter limitBytes := pxyConf.GetBaseInfo().BandwidthLimit.Bytes() - if limitBytes > 0 { + if limitBytes > 0 && pxyConf.GetBaseInfo().BandwidthLimitMode == config.BandwidthLimitModeClient { limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) } diff --git a/cmd/frpc/sub/http.go b/cmd/frpc/sub/http.go index 4e193b7e2b5..22eeefe6047 100644 --- a/cmd/frpc/sub/http.go +++ b/cmd/frpc/sub/http.go @@ -39,6 +39,8 @@ func init() { httpCmd.PersistentFlags().StringVarP(&hostHeaderRewrite, "host_header_rewrite", "", "", "host header rewrite") httpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") httpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + httpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + httpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(httpCmd) } @@ -70,6 +72,12 @@ var httpCmd = &cobra.Command{ cfg.HostHeaderRewrite = hostHeaderRewrite cfg.UseEncryption = useEncryption cfg.UseCompression = useCompression + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { diff --git a/cmd/frpc/sub/https.go b/cmd/frpc/sub/https.go index 8a14d39d73c..187aa99baf4 100644 --- a/cmd/frpc/sub/https.go +++ b/cmd/frpc/sub/https.go @@ -35,6 +35,8 @@ func init() { httpsCmd.PersistentFlags().StringVarP(&subDomain, "sd", "", "", "sub domain") httpsCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") httpsCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + httpsCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + httpsCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(httpsCmd) } @@ -62,6 +64,12 @@ var httpsCmd = &cobra.Command{ cfg.SubDomain = subDomain cfg.UseEncryption = useEncryption cfg.UseCompression = useCompression + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 19206c6b10e..cd39d882ca9 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -54,24 +54,26 @@ var ( logMaxDays int disableLogColor bool - proxyName string - localIP string - localPort int - remotePort int - useEncryption bool - useCompression bool - customDomains string - subDomain string - httpUser string - httpPwd string - locations string - hostHeaderRewrite string - role string - sk string - multiplexer string - serverName string - bindAddr string - bindPort int + proxyName string + localIP string + localPort int + remotePort int + useEncryption bool + useCompression bool + bandwidthLimit string + bandwidthLimitMode string + customDomains string + subDomain string + httpUser string + httpPwd string + locations string + hostHeaderRewrite string + role string + sk string + multiplexer string + serverName string + bindAddr string + bindPort int tlsEnable bool ) diff --git a/cmd/frpc/sub/stcp.go b/cmd/frpc/sub/stcp.go index d84b23b756e..ad0a57ce568 100644 --- a/cmd/frpc/sub/stcp.go +++ b/cmd/frpc/sub/stcp.go @@ -37,6 +37,8 @@ func init() { stcpCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "", 0, "bind port") stcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") stcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + stcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + stcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(stcpCmd) } @@ -70,6 +72,12 @@ var stcpCmd = &cobra.Command{ cfg.Sk = sk cfg.LocalIP = localIP cfg.LocalPort = localPort + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { fmt.Println(err) diff --git a/cmd/frpc/sub/sudp.go b/cmd/frpc/sub/sudp.go index f96a12e12bc..0ae8498be83 100644 --- a/cmd/frpc/sub/sudp.go +++ b/cmd/frpc/sub/sudp.go @@ -37,6 +37,8 @@ func init() { sudpCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "", 0, "bind port") sudpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") sudpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + sudpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + sudpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(sudpCmd) } @@ -70,6 +72,12 @@ var sudpCmd = &cobra.Command{ cfg.Sk = sk cfg.LocalIP = localIP cfg.LocalPort = localPort + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { fmt.Println(err) diff --git a/cmd/frpc/sub/tcp.go b/cmd/frpc/sub/tcp.go index 7e867345617..2c597f19e85 100644 --- a/cmd/frpc/sub/tcp.go +++ b/cmd/frpc/sub/tcp.go @@ -33,6 +33,8 @@ func init() { tcpCmd.PersistentFlags().IntVarP(&remotePort, "remote_port", "r", 0, "remote port") tcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") tcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + tcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + tcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(tcpCmd) } @@ -59,6 +61,12 @@ var tcpCmd = &cobra.Command{ cfg.RemotePort = remotePort cfg.UseEncryption = useEncryption cfg.UseCompression = useCompression + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { diff --git a/cmd/frpc/sub/tcpmux.go b/cmd/frpc/sub/tcpmux.go index cef845d6342..ecdd6002613 100644 --- a/cmd/frpc/sub/tcpmux.go +++ b/cmd/frpc/sub/tcpmux.go @@ -36,6 +36,8 @@ func init() { tcpMuxCmd.PersistentFlags().StringVarP(&multiplexer, "mux", "", "", "multiplexer") tcpMuxCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") tcpMuxCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + tcpMuxCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + tcpMuxCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(tcpMuxCmd) } @@ -64,6 +66,12 @@ var tcpMuxCmd = &cobra.Command{ cfg.Multiplexer = multiplexer cfg.UseEncryption = useEncryption cfg.UseCompression = useCompression + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { diff --git a/cmd/frpc/sub/udp.go b/cmd/frpc/sub/udp.go index 984ad068d95..f9dfa3f692a 100644 --- a/cmd/frpc/sub/udp.go +++ b/cmd/frpc/sub/udp.go @@ -33,6 +33,8 @@ func init() { udpCmd.PersistentFlags().IntVarP(&remotePort, "remote_port", "r", 0, "remote port") udpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") udpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + udpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + udpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(udpCmd) } @@ -59,6 +61,12 @@ var udpCmd = &cobra.Command{ cfg.RemotePort = remotePort cfg.UseEncryption = useEncryption cfg.UseCompression = useCompression + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { diff --git a/cmd/frpc/sub/xtcp.go b/cmd/frpc/sub/xtcp.go index b84269898ad..ea201d5381e 100644 --- a/cmd/frpc/sub/xtcp.go +++ b/cmd/frpc/sub/xtcp.go @@ -37,6 +37,8 @@ func init() { xtcpCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "", 0, "bind port") xtcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") xtcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") + xtcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") + xtcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(xtcpCmd) } @@ -70,6 +72,12 @@ var xtcpCmd = &cobra.Command{ cfg.Sk = sk cfg.LocalIP = localIP cfg.LocalPort = localPort + cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + cfg.BandwidthLimitMode = bandwidthLimitMode err = cfg.CheckForCli() if err != nil { fmt.Println(err) diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 8e39de1c9f7..29f6bcab59f 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -154,6 +154,8 @@ local_ip = 127.0.0.1 local_port = 22 # limit bandwidth for this proxy, unit is KB and MB bandwidth_limit = 1MB +# where to limit bandwidth, can be 'client' or 'server', default is 'client' +bandwidth_limit_mode = client # true or false, if true, messages between frps and frpc will be encrypted, default is false use_encryption = false # if true, message will be compressed diff --git a/doc/server_plugin.md b/doc/server_plugin.md index d73d2439eb7..f4e377f43c7 100644 --- a/doc/server_plugin.md +++ b/doc/server_plugin.md @@ -110,6 +110,8 @@ Create new proxy "proxy_type": , "use_encryption": , "use_compression": , + "bandwidth_limit": , + "bandwidth_limit_mode": , "group": , "group_key": , diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index 9cf8c805286..79eef5f50ea 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -74,6 +74,7 @@ var testClientBytesWithFull = []byte(` local_ip = 127.0.0.9 local_port = 29 bandwidth_limit = 19MB + bandwidth_limit_mode = server use_encryption use_compression remote_port = 6009 @@ -309,13 +310,14 @@ func Test_LoadClientBasicConf(t *testing.T) { proxyExpected := map[string]ProxyConf{ testUser + ".ssh": &TCPProxyConf{ BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".ssh", - ProxyType: consts.TCPProxy, - UseCompression: true, - UseEncryption: true, - Group: "test_group", - GroupKey: "123456", - BandwidthLimit: MustBandwidthQuantity("19MB"), + ProxyName: testUser + ".ssh", + ProxyType: consts.TCPProxy, + UseCompression: true, + UseEncryption: true, + Group: "test_group", + GroupKey: "123456", + BandwidthLimit: MustBandwidthQuantity("19MB"), + BandwidthLimitMode: BandwidthLimitModeServer, Metas: map[string]string{ "var1": "123", "var2": "234", @@ -342,6 +344,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 29, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 9, }, @@ -353,6 +356,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 6010, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6010, }, @@ -364,6 +368,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 6011, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6011, }, @@ -375,6 +380,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 6019, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6019, }, @@ -388,6 +394,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 59, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6009, }, @@ -401,6 +408,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 6000, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6000, }, @@ -414,6 +422,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 6010, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6010, }, @@ -427,6 +436,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 6011, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6011, }, @@ -447,6 +457,7 @@ func Test_LoadClientBasicConf(t *testing.T) { HealthCheckIntervalS: 19, HealthCheckURL: "http://127.0.0.9:89/status", }, + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"web02.yourdomain.com"}, @@ -471,6 +482,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalPort: 8009, }, ProxyProtocolVersion: "v2", + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"web02.yourdomain.com"}, @@ -485,6 +497,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "127.0.0.1", LocalPort: 22, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, Role: "server", Sk: "abcdefg", @@ -497,6 +510,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "127.0.0.1", LocalPort: 22, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, Role: "server", Sk: "abcdefg", @@ -509,6 +523,7 @@ func Test_LoadClientBasicConf(t *testing.T) { LocalIP: "127.0.0.1", LocalPort: 10701, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"tunnel1"}, @@ -527,6 +542,7 @@ func Test_LoadClientBasicConf(t *testing.T) { "plugin_unix_path": "/var/run/docker.sock", }, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6003, }, @@ -542,6 +558,7 @@ func Test_LoadClientBasicConf(t *testing.T) { "plugin_http_passwd": "abc", }, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6004, }, @@ -557,6 +574,7 @@ func Test_LoadClientBasicConf(t *testing.T) { "plugin_passwd": "abc", }, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6005, }, @@ -574,6 +592,7 @@ func Test_LoadClientBasicConf(t *testing.T) { "plugin_http_passwd": "abc", }, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6006, }, @@ -592,6 +611,7 @@ func Test_LoadClientBasicConf(t *testing.T) { "plugin_header_X-From-Where": "frp", }, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"test.yourdomain.com"}, @@ -610,6 +630,7 @@ func Test_LoadClientBasicConf(t *testing.T) { "plugin_header_X-From-Where": "frp", }, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"test.yourdomain.com"}, diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index 92b499f271b..3419f483358 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -141,6 +141,10 @@ type BaseProxyConf struct { // BandwidthLimit limit the bandwidth // 0 means no limit BandwidthLimit BandwidthQuantity `ini:"bandwidth_limit" json:"bandwidth_limit"` + // BandwidthLimitMode specifies whether to limit the bandwidth on the + // client or server side. Valid values include "client" and "server". + // By default, this value is "client". + BandwidthLimitMode string `ini:"bandwidth_limit_mode" json:"bandwidth_limit_mode"` // meta info for each proxy Metas map[string]string `ini:"-" json:"metas"` @@ -319,6 +323,7 @@ func defaultBaseProxyConf(proxyType string) BaseProxyConf { LocalSvrConf: LocalSvrConf{ LocalIP: "127.0.0.1", }, + BandwidthLimitMode: BandwidthLimitModeClient, } } @@ -335,6 +340,7 @@ func (cfg *BaseProxyConf) compare(cmp *BaseProxyConf) bool { cfg.GroupKey != cmp.GroupKey || cfg.ProxyProtocolVersion != cmp.ProxyProtocolVersion || !cfg.BandwidthLimit.Equal(&cmp.BandwidthLimit) || + cfg.BandwidthLimitMode != cmp.BandwidthLimitMode || !reflect.DeepEqual(cfg.Metas, cmp.Metas) { return false } @@ -389,6 +395,8 @@ func (cfg *BaseProxyConf) marshalToMsg(pMsg *msg.NewProxy) { pMsg.ProxyType = cfg.ProxyType pMsg.UseEncryption = cfg.UseEncryption pMsg.UseCompression = cfg.UseCompression + pMsg.BandwidthLimit = cfg.BandwidthLimit.String() + pMsg.BandwidthLimitMode = cfg.BandwidthLimitMode pMsg.Group = cfg.Group pMsg.GroupKey = cfg.GroupKey pMsg.Metas = cfg.Metas @@ -399,6 +407,8 @@ func (cfg *BaseProxyConf) unmarshalFromMsg(pMsg *msg.NewProxy) { cfg.ProxyType = pMsg.ProxyType cfg.UseEncryption = pMsg.UseEncryption cfg.UseCompression = pMsg.UseCompression + cfg.BandwidthLimit, _ = NewBandwidthQuantity(pMsg.BandwidthLimit) + cfg.BandwidthLimitMode = pMsg.BandwidthLimitMode cfg.Group = pMsg.Group cfg.GroupKey = pMsg.GroupKey cfg.Metas = pMsg.Metas @@ -411,6 +421,10 @@ func (cfg *BaseProxyConf) checkForCli() (err error) { } } + if cfg.BandwidthLimitMode != "client" && cfg.BandwidthLimitMode != "server" { + return fmt.Errorf("bandwidth_limit_mode should be client or server") + } + if err = cfg.LocalSvrConf.checkForCli(); err != nil { return } @@ -420,6 +434,13 @@ func (cfg *BaseProxyConf) checkForCli() (err error) { return nil } +func (cfg *BaseProxyConf) checkForSvr() (err error) { + if cfg.BandwidthLimitMode != "client" && cfg.BandwidthLimitMode != "server" { + return fmt.Errorf("bandwidth_limit_mode should be client or server") + } + return nil +} + // DomainConf func (cfg *DomainConf) check() (err error) { if len(cfg.CustomDomains) == 0 && cfg.SubDomain == "" { @@ -557,6 +578,9 @@ func (cfg *TCPProxyConf) CheckForCli() (err error) { } func (cfg *TCPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } return nil } @@ -632,6 +656,10 @@ func (cfg *TCPMuxProxyConf) CheckForCli() (err error) { } func (cfg *TCPMuxProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } + if cfg.Multiplexer != consts.HTTPConnectTCPMultiplexer { return fmt.Errorf("proxy [%s] incorrect multiplexer [%s]", cfg.ProxyName, cfg.Multiplexer) } @@ -703,6 +731,9 @@ func (cfg *UDPProxyConf) CheckForCli() (err error) { } func (cfg *UDPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } return nil } @@ -788,6 +819,10 @@ func (cfg *HTTPProxyConf) CheckForCli() (err error) { } func (cfg *HTTPProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } + if serverCfg.VhostHTTPPort == 0 { return fmt.Errorf("type [http] not support when vhost_http_port is not set") } @@ -860,6 +895,10 @@ func (cfg *HTTPSProxyConf) CheckForCli() (err error) { } func (cfg *HTTPSProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } + if serverCfg.VhostHTTPSPort == 0 { return fmt.Errorf("type [https] not support when vhost_https_port is not set") } @@ -932,6 +971,9 @@ func (cfg *SUDPProxyConf) CheckForCli() (err error) { } func (cfg *SUDPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } return nil } @@ -998,6 +1040,9 @@ func (cfg *STCPProxyConf) CheckForCli() (err error) { } func (cfg *STCPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } return nil } @@ -1064,5 +1109,8 @@ func (cfg *XTCPProxyConf) CheckForCli() (err error) { } func (cfg *XTCPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.checkForSvr(); err != nil { + return err + } return nil } diff --git a/pkg/config/proxy_test.go b/pkg/config/proxy_test.go index c603dd7f4d2..894d6fd3ec8 100644 --- a/pkg/config/proxy_test.go +++ b/pkg/config/proxy_test.go @@ -58,6 +58,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { local_ip = 127.0.0.9 local_port = 29 bandwidth_limit = 19MB + bandwidth_limit_mode = server use_encryption use_compression remote_port = 6009 @@ -71,13 +72,14 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { meta_var2 = 234`), expected: &TCPProxyConf{ BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "ssh", - ProxyType: consts.TCPProxy, - UseCompression: true, - UseEncryption: true, - Group: "test_group", - GroupKey: "123456", - BandwidthLimit: MustBandwidthQuantity("19MB"), + ProxyName: testProxyPrefix + "ssh", + ProxyType: consts.TCPProxy, + UseCompression: true, + UseEncryption: true, + Group: "test_group", + GroupKey: "123456", + BandwidthLimit: MustBandwidthQuantity("19MB"), + BandwidthLimitMode: BandwidthLimitModeServer, Metas: map[string]string{ "var1": "123", "var2": "234", @@ -114,6 +116,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 29, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 9, }, @@ -139,6 +142,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 59, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6009, }, @@ -182,6 +186,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { HealthCheckIntervalS: 19, HealthCheckURL: "http://127.0.0.9:89/status", }, + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"web02.yourdomain.com"}, @@ -220,6 +225,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { LocalPort: 8009, }, ProxyProtocolVersion: "v2", + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"web02.yourdomain.com"}, @@ -246,6 +252,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { LocalIP: "127.0.0.1", LocalPort: 22, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, Role: "server", Sk: "abcdefg", @@ -270,6 +277,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { LocalIP: "127.0.0.1", LocalPort: 22, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, Role: "server", Sk: "abcdefg", @@ -293,6 +301,7 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { LocalIP: "127.0.0.1", LocalPort: 10701, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, DomainConf: DomainConf{ CustomDomains: []string{"tunnel1"}, @@ -347,6 +356,7 @@ func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 6010, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6010, }, @@ -358,6 +368,7 @@ func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 6011, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6011, }, @@ -369,6 +380,7 @@ func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { LocalIP: "127.0.0.9", LocalPort: 6019, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6019, }, @@ -396,6 +408,7 @@ func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 6000, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6000, }, @@ -409,6 +422,7 @@ func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 6010, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6010, }, @@ -422,6 +436,7 @@ func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { LocalIP: "114.114.114.114", LocalPort: 6011, }, + BandwidthLimitMode: BandwidthLimitModeClient, }, RemotePort: 6011, }, diff --git a/pkg/config/types.go b/pkg/config/types.go index 28a0e46d87e..7aefee12600 100644 --- a/pkg/config/types.go +++ b/pkg/config/types.go @@ -24,6 +24,9 @@ import ( const ( MB = 1024 * 1024 KB = 1024 + + BandwidthLimitModeClient = "client" + BandwidthLimitModeServer = "server" ) type BandwidthQuantity struct { diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index 4b2823c729b..33e8fe5db87 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -14,7 +14,9 @@ package msg -import "net" +import ( + "net" +) const ( TypeLogin = 'o' @@ -83,13 +85,15 @@ type LoginResp struct { // When frpc login success, send this message to frps for running a new proxy. type NewProxy struct { - ProxyName string `json:"proxy_name,omitempty"` - ProxyType string `json:"proxy_type,omitempty"` - UseEncryption bool `json:"use_encryption,omitempty"` - UseCompression bool `json:"use_compression,omitempty"` - Group string `json:"group,omitempty"` - GroupKey string `json:"group_key,omitempty"` - Metas map[string]string `json:"metas,omitempty"` + ProxyName string `json:"proxy_name,omitempty"` + ProxyType string `json:"proxy_type,omitempty"` + UseEncryption bool `json:"use_encryption,omitempty"` + UseCompression bool `json:"use_compression,omitempty"` + BandwidthLimit string `json:"bandwidth_limit,omitempty"` + BandwidthLimitMode string `json:"bandwidth_limit_mode,omitempty"` + Group string `json:"group,omitempty"` + GroupKey string `json:"group_key,omitempty"` + Metas map[string]string `json:"metas,omitempty"` // tcp and udp only RemotePort int `json:"remote_port,omitempty"` diff --git a/server/proxy/http.go b/server/proxy/http.go index e70cb65f1c5..0f25c8c4e24 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -20,8 +20,10 @@ import ( "strings" frpIo "github.com/fatedier/golib/io" + "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/util/limit" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" @@ -135,6 +137,10 @@ func (pxy *HTTPProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *HTTPProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err error) { xl := pxy.xl rAddr, errRet := net.ResolveTCPAddr("tcp", remoteAddr) @@ -160,6 +166,13 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err if pxy.cfg.UseCompression { rwc = frpIo.WithCompression(rwc) } + + if pxy.GetLimiter() != nil { + rwc = frpIo.WrapReadWriteCloser(limit.NewReader(rwc, pxy.GetLimiter()), limit.NewWriter(rwc, pxy.GetLimiter()), func() error { + return rwc.Close() + }) + } + workConn = frpNet.WrapReadWriteCloserToConn(rwc, tmpConn) workConn = frpNet.WrapStatsConn(workConn, pxy.updateStatsAfterClosedConn) metrics.Server.OpenConnection(pxy.GetName(), pxy.GetConf().GetBaseInfo().ProxyType) diff --git a/server/proxy/https.go b/server/proxy/https.go index 42ecf35d76f..1fb579e1188 100644 --- a/server/proxy/https.go +++ b/server/proxy/https.go @@ -17,6 +17,8 @@ package proxy import ( "strings" + "golang.org/x/time/rate" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" @@ -74,6 +76,10 @@ func (pxy *HTTPSProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *HTTPSProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *HTTPSProxy) Close() { pxy.BaseProxy.Close() } diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 808d93161d5..0681370fd19 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -24,10 +24,12 @@ import ( "time" frpIo "github.com/fatedier/golib/io" + "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/util/limit" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/frp/server/controller" @@ -45,6 +47,7 @@ type Proxy interface { GetUsedPortsNum() int GetResourceController() *controller.ResourceController GetUserInfo() plugin.UserInfo + GetLimiter() *rate.Limiter Close() } @@ -56,6 +59,7 @@ type BaseProxy struct { poolCount int getWorkConnFn GetWorkConnFn serverCfg config.ServerCommonConf + limiter *rate.Limiter userInfo plugin.UserInfo mu sync.RWMutex @@ -187,6 +191,13 @@ func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.Reso getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, ) (pxy Proxy, err error) { xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseInfo().ProxyName) + + var limiter *rate.Limiter + limitBytes := pxyConf.GetBaseInfo().BandwidthLimit.Bytes() + if limitBytes > 0 && pxyConf.GetBaseInfo().BandwidthLimitMode == config.BandwidthLimitModeServer { + limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) + } + basePxy := BaseProxy{ name: pxyConf.GetBaseInfo().ProxyName, rc: rc, @@ -194,6 +205,7 @@ func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.Reso poolCount: poolCount, getWorkConnFn: getWorkConnFn, serverCfg: serverCfg, + limiter: limiter, xl: xl, ctx: xlog.NewContext(ctx, xl), userInfo: userInfo, @@ -287,6 +299,13 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv if cfg.UseCompression { local = frpIo.WithCompression(local) } + + if pxy.GetLimiter() != nil { + local = frpIo.WrapReadWriteCloser(limit.NewReader(local, pxy.GetLimiter()), limit.NewWriter(local, pxy.GetLimiter()), func() error { + return local.Close() + }) + } + xl.Debug("join connections, workConn(l[%s] r[%s]) userConn(l[%s] r[%s])", workConn.LocalAddr().String(), workConn.RemoteAddr().String(), userConn.LocalAddr().String(), userConn.RemoteAddr().String()) diff --git a/server/proxy/stcp.go b/server/proxy/stcp.go index 5ac47eaaca5..2ece4057805 100644 --- a/server/proxy/stcp.go +++ b/server/proxy/stcp.go @@ -15,6 +15,8 @@ package proxy import ( + "golang.org/x/time/rate" + "github.com/fatedier/frp/pkg/config" ) @@ -41,6 +43,10 @@ func (pxy *STCPProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *STCPProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *STCPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.VisitorManager.CloseListener(pxy.GetName()) diff --git a/server/proxy/sudp.go b/server/proxy/sudp.go index c4dba6d6634..93707f23cd4 100644 --- a/server/proxy/sudp.go +++ b/server/proxy/sudp.go @@ -15,6 +15,8 @@ package proxy import ( + "golang.org/x/time/rate" + "github.com/fatedier/frp/pkg/config" ) @@ -42,6 +44,10 @@ func (pxy *SUDPProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *SUDPProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *SUDPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.VisitorManager.CloseListener(pxy.GetName()) diff --git a/server/proxy/tcp.go b/server/proxy/tcp.go index 0cf9c5f95d2..1ba0fb1a729 100644 --- a/server/proxy/tcp.go +++ b/server/proxy/tcp.go @@ -19,6 +19,8 @@ import ( "net" "strconv" + "golang.org/x/time/rate" + "github.com/fatedier/frp/pkg/config" ) @@ -74,6 +76,10 @@ func (pxy *TCPProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *TCPProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *TCPProxy) Close() { pxy.BaseProxy.Close() if pxy.cfg.Group == "" { diff --git a/server/proxy/tcpmux.go b/server/proxy/tcpmux.go index b812e601fd3..4b413c367d0 100644 --- a/server/proxy/tcpmux.go +++ b/server/proxy/tcpmux.go @@ -19,6 +19,8 @@ import ( "net" "strings" + "golang.org/x/time/rate" + "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/util/util" @@ -94,6 +96,10 @@ func (pxy *TCPMuxProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *TCPMuxProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *TCPMuxProxy) Close() { pxy.BaseProxy.Close() } diff --git a/server/proxy/udp.go b/server/proxy/udp.go index 53865540325..3a136c39b67 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -24,10 +24,12 @@ import ( "github.com/fatedier/golib/errors" frpIo "github.com/fatedier/golib/io" + "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" + "github.com/fatedier/frp/pkg/util/limit" frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/server/metrics" ) @@ -198,6 +200,12 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { rwc = frpIo.WithCompression(rwc) } + if pxy.GetLimiter() != nil { + rwc = frpIo.WrapReadWriteCloser(limit.NewReader(rwc, pxy.GetLimiter()), limit.NewWriter(rwc, pxy.GetLimiter()), func() error { + return rwc.Close() + }) + } + pxy.workConn = frpNet.WrapReadWriteCloserToConn(rwc, workConn) ctx, cancel := context.WithCancel(context.Background()) go workConnReaderFn(pxy.workConn) @@ -225,6 +233,10 @@ func (pxy *UDPProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *UDPProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *UDPProxy) Close() { pxy.mu.Lock() defer pxy.mu.Unlock() diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index a1b45d5446c..b6c7be3ae99 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -18,6 +18,7 @@ import ( "fmt" "github.com/fatedier/golib/errors" + "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" @@ -88,6 +89,10 @@ func (pxy *XTCPProxy) GetConf() config.ProxyConf { return pxy.cfg } +func (pxy *XTCPProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *XTCPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.NatHoleController.CloseClient(pxy.GetName()) From 38d42dbe4b00b6bc07406ce4a16a06d77d50c800 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 9 Feb 2023 00:59:40 +0800 Subject: [PATCH 036/444] release: prepare for 0.47.0 (#3296) --- pkg/util/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 849002d7fbf..49d5643e344 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.46.1" +var version = "0.47.0" func Full() string { return version From 89fff7d11de98d48b36283a5508aa6f5078e246e Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 9 Feb 2023 01:11:00 +0800 Subject: [PATCH 037/444] e2e: add test case for bandwidth_limit_mode server (#3295) --- Makefile | 3 ++ test/e2e/features/bandwidth_limit.go | 62 +++++++++++++++++++++++++++- test/e2e/framework/process.go | 4 +- 3 files changed, 65 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index d3f09bd0460..4600abcb8c1 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,9 @@ file: fmt: go fmt ./... +fmt-more: + gofumpt -l -w . + vet: go vet ./... diff --git a/test/e2e/features/bandwidth_limit.go b/test/e2e/features/bandwidth_limit.go index a912b06a76e..238055a8b4a 100644 --- a/test/e2e/features/bandwidth_limit.go +++ b/test/e2e/features/bandwidth_limit.go @@ -7,16 +7,18 @@ import ( "github.com/onsi/ginkgo" + plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/mock/server/streamserver" "github.com/fatedier/frp/test/e2e/pkg/request" + plugintest "github.com/fatedier/frp/test/e2e/plugin" ) var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { f := framework.NewDefaultFramework() - ginkgo.It("Proxy Bandwidth Limit", func() { + ginkgo.It("Proxy Bandwidth Limit by Client", func() { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig @@ -40,8 +42,64 @@ var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { framework.NewRequestExpect(f).Port(remotePort).RequestModify(func(r *request.Request) { r.Body([]byte(content)).Timeout(30 * time.Second) }).ExpectResp([]byte(content)).Ensure() + + duration := time.Since(start) + framework.Logf("request duration: %s", duration.String()) + + framework.ExpectTrue(duration.Seconds() > 8, "100Kb with 10KB limit, want > 8 seconds, but got %s", duration.String()) + }) + + ginkgo.It("Proxy Bandwidth Limit by Server", func() { + // new test plugin server + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.NewProxyContent{} + return &r + } + pluginPort := f.AllocPort() + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.NewProxyContent) + content.BandwidthLimit = "10KB" + content.BandwidthLimitMode = "server" + ret.Content = content + return &ret + } + pluginServer := plugintest.NewHTTPPluginServer(pluginPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [plugin.test] + addr = 127.0.0.1:%d + path = /handler + ops = NewProxy + `, pluginPort) + clientConf := consts.DefaultClientConfig + + localPort := f.AllocPort() + localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort)) + f.RunServer("", localServer) + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [tcp] + type = tcp + local_port = %d + remote_port = %d + `, localPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + content := strings.Repeat("a", 50*1024) // 5KB + start := time.Now() + framework.NewRequestExpect(f).Port(remotePort).RequestModify(func(r *request.Request) { + r.Body([]byte(content)).Timeout(30 * time.Second) + }).ExpectResp([]byte(content)).Ensure() + duration := time.Since(start) + framework.Logf("request duration: %s", duration.String()) - framework.ExpectTrue(duration.Seconds() > 7, "100Kb with 10KB limit, want > 7 seconds, but got %d seconds", duration.Seconds()) + framework.ExpectTrue(duration.Seconds() > 8, "100Kb with 10KB limit, want > 8 seconds, but got %s", duration.String()) }) }) diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 7c328dd4725..6761d8f4d77 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -69,7 +69,7 @@ func (f *Framework) RunFrps(args ...string) (*process.Process, string, error) { return p, p.StdOutput(), err } // sleep for a while to get std output - time.Sleep(500 * time.Millisecond) + time.Sleep(time.Second) return p, p.StdOutput(), nil } @@ -80,7 +80,7 @@ func (f *Framework) RunFrpc(args ...string) (*process.Process, string, error) { if err != nil { return p, p.StdOutput(), err } - time.Sleep(500 * time.Millisecond) + time.Sleep(time.Second) return p, p.StdOutput(), nil } From fa0593ae2c7a9257e3b6a10b4272b6a03b6156e5 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 9 Feb 2023 22:52:48 +0800 Subject: [PATCH 038/444] add release notes --- Release.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Release.md b/Release.md index e69de29bb2d..33b44d370db 100644 --- a/Release.md +++ b/Release.md @@ -0,0 +1,8 @@ +### New + +* Added config `bandwidth_limit_mode` in frpc, default value is `client` which is current behavior. Optional value is `server`, to enable bandwidth limit in server. The major aim is to let server plugin has the ability to modify bandwidth limit for each proxy. + +### Improve + +* `dns_server` supports ipv6. +* frpc supports graceful shutdown for protocol `quic`. From 18ab58eb2574952007ae10dd07c4d8c39d07ebfa Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 10 Feb 2023 00:56:20 +0800 Subject: [PATCH 039/444] fix incompatible problem for bandwidth_limit_mode --- pkg/config/proxy.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index 3419f483358..19add6eba96 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -396,7 +396,10 @@ func (cfg *BaseProxyConf) marshalToMsg(pMsg *msg.NewProxy) { pMsg.UseEncryption = cfg.UseEncryption pMsg.UseCompression = cfg.UseCompression pMsg.BandwidthLimit = cfg.BandwidthLimit.String() - pMsg.BandwidthLimitMode = cfg.BandwidthLimitMode + // leave it empty for default value to reduce traffic + if cfg.BandwidthLimitMode != "client" { + pMsg.BandwidthLimitMode = cfg.BandwidthLimitMode + } pMsg.Group = cfg.Group pMsg.GroupKey = cfg.GroupKey pMsg.Metas = cfg.Metas @@ -407,8 +410,12 @@ func (cfg *BaseProxyConf) unmarshalFromMsg(pMsg *msg.NewProxy) { cfg.ProxyType = pMsg.ProxyType cfg.UseEncryption = pMsg.UseEncryption cfg.UseCompression = pMsg.UseCompression - cfg.BandwidthLimit, _ = NewBandwidthQuantity(pMsg.BandwidthLimit) - cfg.BandwidthLimitMode = pMsg.BandwidthLimitMode + if pMsg.BandwidthLimit != "" { + cfg.BandwidthLimit, _ = NewBandwidthQuantity(pMsg.BandwidthLimit) + } + if pMsg.BandwidthLimitMode != "" { + cfg.BandwidthLimitMode = pMsg.BandwidthLimitMode + } cfg.Group = pMsg.Group cfg.GroupKey = pMsg.GroupKey cfg.Metas = pMsg.Metas From 6a1f9ad8931cc59fcc6f52386e21b34db6aa4c07 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 10 Feb 2023 01:15:28 +0800 Subject: [PATCH 040/444] update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 73e48c75869..b83ce64fa84 100644 --- a/README.md +++ b/README.md @@ -713,7 +713,6 @@ type = tcp local_port = 22 remote_port = 6000 bandwidth_limit = 1MB -bandwidth_limit_mode = client ``` Set `bandwidth_limit` in each proxy's configure to enable this feature. Supported units are `MB` and `KB`. From 39941117b6f8c10e1656bc5122a8706ea4c26185 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 10 Feb 2023 13:25:04 +0800 Subject: [PATCH 041/444] support windows arm64 --- Makefile.cross-compiles | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile.cross-compiles b/Makefile.cross-compiles index 06e10d7959a..515a3c262b3 100644 --- a/Makefile.cross-compiles +++ b/Makefile.cross-compiles @@ -2,7 +2,7 @@ export PATH := $(GOPATH)/bin:$(PATH) export GO111MODULE=on LDFLAGS := -s -w -os-archs=darwin:amd64 darwin:arm64 freebsd:386 freebsd:amd64 linux:386 linux:amd64 linux:arm linux:arm64 windows:386 windows:amd64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 +os-archs=darwin:amd64 darwin:arm64 freebsd:386 freebsd:amd64 linux:386 linux:amd64 linux:arm linux:arm64 windows:386 windows:amd64 windows:arm64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 all: build @@ -23,3 +23,5 @@ app: @mv ./release/frps_windows_386 ./release/frps_windows_386.exe @mv ./release/frpc_windows_amd64 ./release/frpc_windows_amd64.exe @mv ./release/frps_windows_amd64 ./release/frps_windows_amd64.exe + @mv ./release/frpc_windows_arm64 ./release/frpc_windows_arm64.exe + @mv ./release/frps_windows_arm64 ./release/frps_windows_arm64.exe From 24f0b3afa5141a63a246c0b91d81ca43b288d9ae Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 16 Feb 2023 02:45:48 +0800 Subject: [PATCH 042/444] web/frps: upgrade vue and element-plus (#3310) --- .../535877f50039c0cb49a6196a5b7517cd.woff | Bin 28200 -> 0 bytes .../732389ded34cb9c52dd88271f1345af9.ttf | Bin 55956 -> 0 bytes assets/frps/static/index-4ce77078.css | 1 + assets/frps/static/index-cd02d3b4.js | 74 + assets/frps/static/index.html | 17 +- assets/frps/static/manifest.js | 1 - assets/frps/static/vendor.js | 1 - web/frps/.babelrc | 14 - web/frps/.eslintrc.cjs | 30 + web/frps/.gitignore | 30 +- web/frps/.prettierrc.json | 5 + web/frps/Makefile | 10 +- web/frps/README.md | 46 + web/frps/auto-imports.d.ts | 5 + web/frps/components.d.ts | 35 + web/frps/env.d.ts | 1 + web/frps/index.html | 14 + web/frps/package.json | 64 +- web/frps/postcss.config.js | 5 - web/frps/{src/assets => public}/favicon.ico | Bin web/frps/src/App.vue | 150 +- web/frps/src/assets/custom.css | 22 + web/frps/src/components/Overview.vue | 169 - web/frps/src/components/ProxiesHttp.vue | 177 +- web/frps/src/components/ProxiesHttps.vue | 172 +- web/frps/src/components/ProxiesStcp.vue | 130 +- web/frps/src/components/ProxiesSudp.vue | 130 +- web/frps/src/components/ProxiesTcp.vue | 138 +- web/frps/src/components/ProxiesUdp.vue | 141 +- web/frps/src/components/ProxyView.vue | 91 + web/frps/src/components/ProxyViewExpand.vue | 70 + web/frps/src/components/ServerOverview.vue | 177 + web/frps/src/components/Traffic.vue | 58 +- web/frps/src/index.html | 15 - web/frps/src/main.js | 48 - web/frps/src/main.ts | 12 + web/frps/src/router/index.js | 43 - web/frps/src/router/index.ts | 51 + web/frps/src/utils/chart.js | 186 - web/frps/src/utils/chart.ts | 293 + web/frps/src/utils/less/custom.less | 22 - web/frps/src/utils/proxy.js | 104 - web/frps/src/utils/proxy.ts | 138 + web/frps/tsconfig.config.json | 8 + web/frps/tsconfig.json | 16 + web/frps/vite.config.ts | 29 + web/frps/webpack.config.js | 107 - web/frps/yarn.lock | 8382 +++++------------ 48 files changed, 4024 insertions(+), 7408 deletions(-) delete mode 100644 assets/frps/static/535877f50039c0cb49a6196a5b7517cd.woff delete mode 100644 assets/frps/static/732389ded34cb9c52dd88271f1345af9.ttf create mode 100644 assets/frps/static/index-4ce77078.css create mode 100644 assets/frps/static/index-cd02d3b4.js delete mode 100644 assets/frps/static/manifest.js delete mode 100644 assets/frps/static/vendor.js delete mode 100644 web/frps/.babelrc create mode 100644 web/frps/.eslintrc.cjs create mode 100644 web/frps/.prettierrc.json create mode 100644 web/frps/README.md create mode 100644 web/frps/auto-imports.d.ts create mode 100644 web/frps/components.d.ts create mode 100644 web/frps/env.d.ts create mode 100644 web/frps/index.html delete mode 100644 web/frps/postcss.config.js rename web/frps/{src/assets => public}/favicon.ico (100%) create mode 100644 web/frps/src/assets/custom.css delete mode 100644 web/frps/src/components/Overview.vue create mode 100644 web/frps/src/components/ProxyView.vue create mode 100644 web/frps/src/components/ProxyViewExpand.vue create mode 100644 web/frps/src/components/ServerOverview.vue delete mode 100644 web/frps/src/index.html delete mode 100644 web/frps/src/main.js create mode 100644 web/frps/src/main.ts delete mode 100644 web/frps/src/router/index.js create mode 100644 web/frps/src/router/index.ts delete mode 100644 web/frps/src/utils/chart.js create mode 100644 web/frps/src/utils/chart.ts delete mode 100644 web/frps/src/utils/less/custom.less delete mode 100644 web/frps/src/utils/proxy.js create mode 100644 web/frps/src/utils/proxy.ts create mode 100644 web/frps/tsconfig.config.json create mode 100644 web/frps/tsconfig.json create mode 100644 web/frps/vite.config.ts delete mode 100644 web/frps/webpack.config.js diff --git a/assets/frps/static/535877f50039c0cb49a6196a5b7517cd.woff b/assets/frps/static/535877f50039c0cb49a6196a5b7517cd.woff deleted file mode 100644 index 02b9a2539e425a7a8c244faba92527602be76212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28200 zcmY(IQ*>obw1wkzY}@FV9ou%twr$%sPI!WjZQD-Aw(aEhfA7;>W6ZI?HTS9-^|Y(@ zDt85OaS%|De_=-r0{7o@E#?36|M>rhgo>Il2ngtpe=h4k3DwAvi$RS|K+0p zq|S#a)oE;N=LIoGXa4i@|K$Y#L=L?Lk!4});_=Vx{g-2afIyi18w6rwZ~R}~Ul0&5 zw*TZCR$*Xk=<#nZQ}}=$p z3j%@wci;?(=aFMWSW#Pr zM-sk`m0uq8xYb`Cmsw(7J!k}vp6qi1VS~jP7&6A5mE-EG{5)pI7l~c<3JjAJf7Ao{ z%?06O$C!E2hN3FRmRCu5Ow%tiyBh2ns`-x@zc75e`(i)8rv=+je8;kh-i@>exF|8Zoy0d%E ze^yR-Rn9=!jEdV-)~sl5yJK;fvbNWAZT=0qvKdpinc}dSaI={~ycm_gm}Gd^0er~R z)M9-DIXmj{IvSw8>#@8WklyP7dhek4qeA$TB>3Zo_|qu(V@mi_%=j`yUn2T(`yTQ; zqHm61jJ91ll zVp~T9dV8jNyJ~v-x_ZZaTgTx12W0$5X#9t){Ks&gcFBydQ8lk&_OJ3ir{DE4*RO$x zAEV#D`xGh<%>8yX{Px|y4AcrzlvS)!*GlBewa-%DN&>&QaZ`s&q%5_vQjbc+EH$-K z*`?3tfsOQ+56~*ljNeyZ-{0)jU)J+W*Qx@kC-zG!MBuUtn9Q>kDG@^I6k_nrv_eJ^ zr!eGUS$Sec8K>psVcB^KMj>irsAO_8bj;%w8dybgGtA7x529$sax)yv(+??V`*Jfp z%zY0BXlQacg0d_npv(DUULP)9)=1cYE2euqQ_K9?BF>tg?x+Ykm43d!xh;gizD4>E3L9epi+%` zorRj_F_Y3X_zqm8;Ac8yye*)KjEtAfl=ZQZHs3>2kw*h$p=Q5Krfd!#1JS9vnGU&7 zfF@M)DYt{^z(%TWmP7vArgG2-ds$sUA8RYfJsuSSWEnX*Av#u9sN1e`z6c^&K4Cge zcG$Z9MfyPnU>b>f)?3)i>LTwTBM_0)kG%=yHoH7MVp|SD?8ESk)+n{SX%tt*Ke0(x zPJEfe6<2d)(auCyWhU`aHdbPp)0JqocQMFBM1?3RR(48~gTs}4b#O7wL`B6uX-XDB znuF7oX0?B@!bC=;C#gzSPNtc|m0@*wvD-vj1u6MbHdeNo)0K6#Z*l%03)oG$!otqk z)?7X?<|=C|@5c7Xy*jpdbI=Z~rdnZb;&1CN{~kk-l?m9GZG;((l|2vG_}hp!DkmEq zcww`KXo9s6Ma;>53FE}NP*2>E#R1jUW@($SDccde(cdUIdIh8xwzJftI8X=r3ftLg z(H?LBr-bdSwHOcFfCM6T_F8NQh(KGBD+?{I19@PV$d!#2{{aIKLG+2Kiln~O5-YJw z7B2F_c1`-A8n`5SWwxepa0R3gyE0r;J;(#Pid~tmX&!6=hs3Uo*Ypm$ff(Xf=4-|W zUqDlFLW4DngFs-DIHAd!?Li+9Qi9NE&FP>3s3t*Zw&s4Y3oMZ!G+gsJNCZAg5Sp$9 z9?Sv7Bngez!VcT#(v7JXLXJ@ z){p&>^Um%ZZtNVhmcz^GoNgQ*JD2Oo>FjHq9mA8;&g~p)TpP=ld(Z70YCIUzmdnoT zoNBxpTbJVjbPhDWjPb~=13D*MAQRlPuR!kz7fc1WtlLpW-(^?8JbO;4hVkq?4_ z+Ce^}E@}x#*;jCPC<`S*{8sH;qa(5_(66nhh$H|eU2+ru1zTZ$%Xa0_QrTx%u3ne6 z1aLV{c&<^Gsf1uTcLc6Mm)!(~Y&!y{vePq?@XRYBr`A(cQi%*ZQm5imZc>TND{`mC zQzOz5?6XIF>!kv~e&tCnzJ1Br2aI~fG{E8?Nc{u<;fe`bD(!M^|ESc8`%~*cP6rd8;|6V2x@2uxge@=KyBC$ zi|`bR5K!rXMgz%-+SGYrU?UxdcEKn0MB{=ow_;1K8@Ik?DUSk+>#z`~?)SGAcL>qe+6j#(>P6M{$6J#k$uU#{R z-s{lpIh;j{n>TN#5M7|;A&LN1S5Gb5Z@ugDY*&{Z*Za%xtn`OuARbR}-%5Hcw^6D#e_2aE~PSe-7MjKb4wJ!33 z(UO00wX^f|aZYJ;{}Bj8$PK4MAY^41k{Y=@QXe(UE}6SS=V6B{B+j9W3ZjN_70#Z8 ze2jW9VXfX0r9)+Z(b4nQx^_;mAkB;{k(_6jbV@{qX~iG>E99ftViOjF*0<}%b3h6d zC08EgJC5_Dkaga%63kZv-zn>M`Ou=?caQ$DJnbbILNgE&t0i--sRVb;I1yO|gu@g*36P2j+4 z$rd6RhpMY$mQ__g$Ig_Ja`Ja{6uWErwOlScZqYlvM(_P_qf)zCTaw)CYQE%s+LMfJ zO(DqM#Jk1j^Keb=>NVQmtFrGoY7?~~*~lS_J>!F28Wfa^A*0z0~`fAN#`t$O( zy5#bxO@mI$t3XMB(*Hh|_>>5ttM0ut`nW@*>ho}!zRS2f%-)y?R=n(3%CY7b>2HW0 zCUP6(X*34R>aaC4FSNhlme{6B#*|YG*;4IPqOqi^{9uphXu)g*6Y$FZ#CSX5$hO04 zZU*T?ERi_mnCy)SKN=OGnQ>#f$!CTI1e2`d>hc19*rtTV5s|VX@nJl)Pv5uK&OE*C z2}Rqb)wQTiw>;sRpVIZU*2EQKPBn@bUhDwoj(VmS);oLJRz%?2cgi;DITjQfPMYJP z9^Xh!_U@qI91`~QR@CE9>JuHaWgcc7BV$9UY}Rc!mM{0O9OkJ6@Ggmq$)v@7#%jHJ z^O&i$E|-7tWIgs-KJJGKiiiZ@%CY)9d0#iZn`OkffC>1oHm92#C+lz9xpG&nr#e2+ z-+I*%4~C>LsU*~z8lsnaf9QcXqOu8+iz1{_%JrR$L-Ho-L>)jGrVSTpzS!KnMUDu4 zLX6me!Ucs$j#b);7sfVojBBtp&o>Xk>vF8FizA+D6J5nX4ZS9IUFSSygS3m zHi(kIix6ZDUj9hVGyQyCXIE;>-N_~qDhN_`+%O|_XfCP^MHPtppE@bzt*L~ z{_Q(lz)u=OkiCOy1~;HcrO%BO2{})w&mH<{FMDjjK%GjrLXRo;UFUpHT z`_V1WfO(#mz+cgGdoqeSvoK#0&rT;eTjHl%skfy~wD8zaL3i^tU?zw6p>+kDOji7x z8hy0SzG~Id#U6)C%6=={;CZP9d0tsTFF1M%@Il};%S8x*-z0^({Jv?T@0We8%{ zt78~Q>;b}GCK$nn2BNpX#bnjM#p^EU?MWI@WrnsTFg19NRP0*^x_3_O@X&j`{uqC` z{r%hbmk?^Aoo=Pj)(Y~1tHjQo&fWVP-bzhR;)kT0d*XmoFff}iy||DZgZx9HrtN@3 z+P-6O11*u%vcV@)xhQ+evUSc_zae=(_m0dd5WS$}w=>tqO_QiYW!mtYfEoC(B#Ti<;t7f~Vs`Xf`N(Q6xm^eE#1-Y3 zT`9C(n+;;oh&(htVZ9)uwhNb6b;(19DVsdvkma1^&tG6A&zB78x#Hk)K~rsGyN}!) zx9wwK7$E1wK4Jkg#D5`ckkJc;c?2_q{eF}Fa6Abw?kkh%v}YPF*o^%OfTjr)2 z$vkbnEmR=&8&M&$jC0~!*Ym6b&#$|9B|Y!hvbKqReN7tp^0t3h?W}g^*O{|&PvOMg zcTrz8tDh1(#@i^7%mnu~4w4M>HY}90`0p!7RHkNc1Qq%QYCC3{NQ{#s=%MxFPi3MS zK2LI(i z(`8yUH)YgFb&}h^?X6Bl@$9z#CE%CFDD1HyUwt53(s%%XTQk=PDj$I+<3m2j04g7V zK1-lDff@BEtPFbqwk`Va&~NmDnKTb_t?sju3!#(DH0!!si*51vbd2e>-1O@VEYpJc zl#{y);fp(%@o1u2l3xB{gdtZ$pr~zZ!{GMKB~bj&bl2>Pk=+Aw!_>-V29EVv?%XzY z(?~;ZZl;NLyK5+Wy7rlErWAlBa?k>Ca+SQtPb_iwQl46)CwSP%q-18b$FVh8t_zoQ>{liC%y|> z>3YN1WMK@~ch4(H`L`FId5=6X%fZHY)ok;8=}vY*C90)u z#4~^%i>K8bV)&fgE6x)J&6Y0}hWEb}?10!ovua#D?;)*~g1Sena|R;34k7+ZKj_o^ zqny~-?P&K1!ajr|9pYgVhVn1?s{s9U@GIIe+O(p0c|h*iW_Ekc^?J2&i%p%b14^V` zx8b9Gb=%QT`l%w%dAG`|r48S5@AvxP1^YG~zwbgg8|}NIDSG|3qpa=9Fh>iMmqQ_o zZMMl$&wduessya*aOG8E*xi$R9_kNCbZR^4$&wRdHm-TG)Q{`>8^=eVC^1tHbd_K~a&#uAI0o0B&j#&Q(-lfAuW{)0$J z{*(Wj1Qz9hEjHWzJSAhBu?;uh>uJw>x2Lo9V}?i^iD#RfWwx&FAtnuy9kGMxM0WK! zfozwL(_*s5+`Oh-2wQU~2JBM_=(}TD=Pi&2hN)K9!n*^M=^`?WhrW104QIP-=Pjq! zs1?dpG09!Y#1I@R4hGh*$b((^=C0zKD|G%>%kB&;bWKBu9Y=6FYH$*Q3DECN1XEI_ z2~l+T#DHBi@HG5cah5C)tAvRg7|6=fz7wNL=p_CNebNlsr^$Q)9O-ErTL2c21%3=% z~Yzh^L<@QvQuEWJOAZoiMs`StnunB{Qk$O6s5<(>5x|!PFXz_vK4s&@n&dQ3JX ztm)8tC&?Mw?qv}ajGfqu1Vp36g2i{6K4q)EW>i#K{fQ~13R)gfCjNnv49Yj8so)k} zF{!I9f~c7JV!5@mGS`QEg_#go7JAg%O06V>I#S-~@939vONBI64+ih*_qZlZBH(wa zvD9w-iXeQh>dJ^!Hp>T6-F|dfe^9lTxY-dO0Z+#*W@!S&8|n^1Ub0ma6&{eXoPbPQDjVXp&vBq$nSso=nfEl8C1@v${QKYX1*X|(bh!x@idwn@x_4O>f) zyFU7drfQZr4hD^3R$+%arp8raXeOgpI=voJb&KZAxu;Jg!LZb(}BF>+H3<)2NQaWa-&3RTIggc1U@!%Ld+ zN!mDIq?0KE62X58Wedq1S{A7OXhxlvh6YKL1>vWu^)jImVH5KNqYMQvB`HEfiqMG2 z2I0mMT!M6(GBQM%j+BLXP5;nh={SMLxzPJFA{7^5I!f(8vGzlC93d`1<`utY+nwnq?y)207lDC(quzEp0}@ zXJ+Bzk;5ATa+?U!(*kj41&U;nT%8gI0W}m-3QdF!CW(8W@nO6#hE9T5412^e_qP8q zuD{(iJ==-Qi`0J%m3=}YOlq{Xu*M!zQ$kC2;{82s!akY1SJB^gm1CjX?%V38i-F@S zLY&kJ~Q`-)%5q%!j%M*jH4ibKgzNI)6}I-USwsL=m_Eo*+Ruvw%*f zADgLC9jdAOVZ+USQtT@4Fg{jX>@Iq zM0uM8==%J$1iqPUU1ioVJnGllmp@wQmR5#JN6sHi_AvdPO00X%=zPat)y5x{;2{$t z9duj$wQ~LDxP_PL=U3#;k=zMB4L8&1T?IbGo&0?5t~PW&KZ<**>guLulwT z2cd0DA+W8;GxCRIr_z zmL=^hD?{-eW*fjOdcs<73vPggQw#UHm0@GgzU~WY)WZH3fn!y;*yy-4o&MeBc(!+; zqc+{0kB@0mQ8odV<&16ntF!M%lG5om1$qxgjt)9BB$YwCp5c$-vO-!#HE1qz)mCD3 zpdnrwji%lJ_&iTVt9!R1 z;c?NTNdQ}{bGn0&5_uacNCQStRu+W5fTj*HSfEV{N5Nj{sk$~Tb(4$s)FJ zcPPF*ES6TK`a~#(9;jy@`GO#L)76ylI~awK0SYwOzwTu)4wgnTQ|C#1$2@UO#5kJZ zH9u)@uU#C8Z{9YN<+sn`*x)D@;@P>cjFOT@!YJby$Ucld=r68&7Ux*qys4Lg^b2dV zJ8$~Uo^-hP5%uwBr^}j*?{EQuvR*BN+G&%lb=DBInmJtRnWiK)`d&bGPacRRIGDup zOgPW(19eG}Wm=McVrC`jcC(L<7@_lKV`u}lww==$z>%;Hto|m zOc>M%Gcc=YaMOfLa}M6qY1q1iZxZ!JU*q8drrP}9FLxIYEh`V%%{u%J%cJp;oOw1Z z%VJ%=&3BgH$tyVL1S^>XY?xZiS+$321B<-(7mzUC_m>lKjK9s^7YBYG=ZZ~7P4QVT zf6*U(HQ9g9b!CaZWa2(i#i;QP@JhtlJufrLGq2~#N5C?>x1wHx9P|J_ z50`d^P9ddnnTMUDDd-wgC$!gePjPK)O7xpH`n+YYb}@#+a!~TD@Uc7!Py4ZdTM=gc z*Nvn}?G{TX`%ihK@o(0eU>PQY`-p-%k(tBoDQFs#nC9@KuWE6XS}}WjsnLl{h?E)u zpCz?$jGSAJ8wtb$r3etJ5!c~S`IpUM$$ok(>ePzZNv6FcGRStOY+Xqrj}7-d%5RNo zjLZjDuu=(WbQb}Bw~LVj%|%X>cAnUc*?t{`nvZQH0a=~;K(yTcI-+wI0m`Xe18Zxh z$s>O9?LcrR$OV)vTF6jFaxlf<6bH%1-o!}Wmhsv%+qbjr>6jR6yb%cP2 z9j0)DzpY1cHMScsO+3q^a5zkN-mrY+OwcB`>T}atq0ASfYZdod&a^rRX-CT74I>Go z;=nHl14`?yj+>xAFh6yvNPs@l5>GZ85BR$0h%Cb>`pyq@vF>hs-ZVeIuq7gnH`5~u ze&|4g4-n>3uiuOOh0AJ^)C&XNNX_DPPxAvntOwn21~;W^r?9P!qt%qz3%zAv>BA+NgAOpuh81?gt}nnhV;V-* z%Kr`Hg>xFQ)PVm{%xo#>iWGq5T++~H!jNDKYLg<{iI4x@d(9-Ud=j1?mB9 zq0fybLmD}W!;XPaOMBN1#Om4JwQs7@Q~{iM^ca8nNP^XkAL?ZHI3G<;pX5n8_n+fu zYMWc$aY#Ig{;|&z$vYYi_W|Ci7D1ww^jqv3927Hg@@Qc|mP{zsx7hLOY zo+5^^pg7n76HkJ}9*QyYQH`6RVfLCV;SRnm8?(-1{N@L);9S><#dNsrjcOj3j%wn$ z@%KPe$3YasyWj{aJoLQ`m)y zT%OvYm-06wu>0s&ha{x|zLz0>GaSy&Fl0PXdj|qq*PcUf)83-*Qcl+MKC+rbIIP{H z0=~gkWh0w?s4Ma=wz`1Clnx27+r=^?{tf5Bk-{Jt7l*cklel{n<3_BfgfRSoq4V2S z9(R;)xpjfGhK*h8d!g`;b>lqGcohGT4t@EP#S({aMjZE$r0yx8(rY1IF4k|(C8em_ zXsKXQ`wW7+@5mp%m^knyG(d=nGQ>pvhic3B;)2)cSRZf7QT*Dqokvu$+nVLXa<1JmSfM zac@$*tg%_oo5ajpFfH)efc63PGBmtHz(M~C~lUE6q5d8MuSK6YqS$a z=v*P4L~>;yrksG7j*jwvSLBS&c8(eA$c1M#g?)Uc?Sf?GCLt%!-I2J=mMrfhW~cG( zPAZqZ<-_l_!)IVYFt|=Hg2$}<-6i4+y4~-)g!H0Za$rGkn5Whm-{1zrcQFA!djsd> z3(SU~KAaCYk2S6oHTQ&s0lYWP<8e^viV&(42>VKGua{RMWcV9)M;%no2C9otZ9AX% ztArWr!yO>XLul<4k{1mJ&SS3yvs5blIoK@vP~m~PBgFo%sU>hPuis*@H3RED%8qc2 z?|7fP5x=&LdRf#U&zq8Kid>D~KzJ@cQ8`hX`dZq7P@U}xOrX2OU{E+urqwet>~$4J zbvAn3nu3>bHzR#aZyQw~1?z_|@%gkleq^vGglfz;^R#a-KBB`{h@82J47X%d;Vsf{ zUA_@zM?FyH?c`?0(N}(F#1%%wyz_fz(AMeGR{QPlcl>GYWuM))b)(JC$rR1E!ou^P zOlst>YWK}D%k3j>Dk!iCroC#`O>F6NLa@HFSO7H2>f;VO7(LyX(^Y zZ63iW{YtGlHBbQKXPBRZaU-I(Kl3ef*O#9l7GKq?H#Qa=Q z5@+wM%5-}N4+{a;Rr{U#l0hNTZA}P9y8Z&4fIzK)0@-`lr}SaZfg4p!azL>36ZdzP zZ_1VS{xcFCnaOH^zMa;`PoI5_Xh#Dqx->9ZRJHE!t#9v7+66ac4^FY#uaHL(PSz$X z#L5e*a{Zt3mL+;_CDj#nXqGcfH$@g>XJR!N@ub5ka&%FG`+IvbPzU$`Y)3I(pWZv> ztYtk1BGMzxunIEDBS{@0`6#grt&&1v$nIez^f{0kh@6zaIJpVMNuqG|ie^6=CxuYB ztok2yP4F$ccII9nFhtcYA}#UmO^*VY2;P54ZhcJn0y!{BaBz{m+$h3G31H$Ht;(+V7aFgXPuwp|Y(JLiPRh*kvUFOx|0 zATAPBbz6`?LT&f5p^n~z>LY2+p;5^b=khxCBZB8UZAlaHJA$2(>j(;EIonADcS@W9 zGN1GWB_u?9WAYCs1G17!H%MwS&ZkTkZPMbi&o|BHsd~)5ZWgs4I4P4q%G&1W1gx9} zR3ashye80}*_akVx8s-uJHw$c7W%H_RD?_W8)4G|vE*5taVOVm=uhqeo)A%8#oUERPxuJ+?W%65frzV2MP=KhY}=p9nNV_UU+ z&ZmX+e;6jKClkj4JmD0GW6<%D$z+f}2 zInWYK^V4T*->xFQzBbac^#zXEXDBanCszCP^5 z9{Z5Q+1WV>Jz6Bz20;$3V#PhHwc01)r`g02z!i%c8!pIgwX<9QbOBkY#GvHtG|0jcaoT7Q((gKxUO)4jJ=%_fSd^0 zQQ9?9qyb%g&!`|D2JlZ$bxu|@MWa=wGxaoc{}9s@N+z|tc-1=%8f*?;wvI9*+?-i3 z_W`q2>eq#vk>i;9E@YMx@)b7c*vkR#uD#@d-=v*PLmwYg1(7Q&` zNy1n?RwkT33Kn$xLPmYphcK)Y@?(Su;CJE46N22IGD?L+BpZ%c&u#MRMY?1N3ZPrq zU1_NvpAwk*MQVNnMkIX8;s7z~=fls=s{Kypm%qao;GLn1r=1DB0sP0Uhy#{ zxdw&X7?(aKE(>qO3c1l82Ny3UDp1#&AoHgh%7Rg*edgQDj3bPPLxQ2^VT}88Cz_$~ z7l|T7hI}^lsQDH)@n)Zp4V*jzNFf6yG?j_5>;;}D-m?d0Jilzqz6+zJ4&Ls&Q?R^E zynoY$4Nw)|{CZ9_zQ1#{OBVuGIJ~+;BmCt5z8EeD=1c?Tk)Qrn`?)5qg~*yDpo@*|IK>$>@J>Rk0Qy$^|2RKPV^rc%*x-*O^zk3izLp6rQ*0 z_-Q;6`9$wFM9h-?xD4TeVL2sIwBs$TRuDu|ZXMyB1a-xUu|T+kKEZvB$J(%*!(hPv zklS55?~1J%#Y$@Ddw$=*y86|VQ5{V`6Ag@JxPY7D_tIGH*$&G(jK5jV-fafM0+Z&$Czpc&FZzyd4gk68!lrq{D- zDbK(?VbErfa*@lyjZA6%&Y>qeRFpn0(Y$%abiK95(`t4p*Eols$7jTCO>OC>&)x2U zhJX|!uibcD`9}6CbA@u+q}{T)P=(RzjAQBdXLia*ZW(qxBs$c(4a1ujQLwU{ zOa*dG1>Nu#)*MYvRo5X@7HOqTRd>;Z(oLhh;h=>+_6R-7BG+sU>UTNXk~)pErNj_| zE;{XT3Et$9e9kkCGudP2?M@%w5N_oUU-|ngN+K_iJE2o77V1x6(hRhUVE9QfF838@ z{=lO+A@EOJ{?cIZ3pxHxM=UeGzf$8ic2k5{P1mmu+kvm2lAjpwoQ+eq`mM&t;m6m% z|9)v=L?V;O?#K=|Xh(WZRj64XAlY}F1)IvG(Y^1`#<4N&@=L(dsV4x>GR0jau`xn) zFbEgWt71Yk_R#VPz`ds08M@4PL3CtmLN1?qFdBK?pV9`6HFRBNO|H_*3OLu%EdhLg4>1SaC&$>Rhz5x~j-ITEH)7u}#)cl_JTLUSCTX2JqE~&`qSrE={qBo$3 zV=!d>n*Bgp9V697`&EbmvN`lArWKlQu*wRfQ`V0Bo`}_RcXW;w&9!h1_8$?~awY#w5P;59sB}ZW^CyijuN^3whUkJcPNxHsGO%t@!&9SCKZ&6r-lo zSh`_#Q(WaaZpT*B9aym6r_;6EU0dq#%Zq4%^9-|p2uH7h@Wx1Ds+Q@&Gb?=hu2ZNq z*)8HDj}&gI*hU{9qy<0!aLuMWvfHi*tn*36BtyoWXylf>S1P6#)&=s zo@w$HPM<2h(M;h#%51Y;XRs?@+PntWOh-=disri8PIY6!`WMeep{(0KwOg(adkU7- zF(=RS8t7Yx{}D5e;t!~No;H>7yR&+O;g(G*X8IT|sgHvrh_~s@7E}6pA?5xI5>Id* z2j(vBlv#Wt{bq#IwP#-LUgCR;?;ImFNo*6fFHH*)oCi1|E&i$0u1z{r_0-P&uC4?N z0D%C5euZn^UOnhZ;C46eR!En_mojnnCI7JNz-i4VbK_)AUst1DX#1tu?zh;HixSET zRtGi+JqU{oph5%BC*wz+WwmtKKy3_()IQdHLngYh6Ri)u@jy8MCJQSiMMEOkX8!3$ zpz%Z+^q`ywt{tjiM28(JoK&`vuqDt6DV~LN%>e)Hm0GLxmqF)&xhWH(A>4Ya3rdMk z$|;+=!TL7&SAK_1GxRDeFAR$Pe7v=UH;IZHi=>y;a#xk|`Yo-M$8X1Qb*%f(anOjV z`5h90=9Vm5!4!XE)|RzEVZVR}{3iD%t?21$Hbj~-894L_6SYj4MLH$82+ig+II%N? zP}*Nj`8Y&0Ij)IoMFZx8VbVtd-;tp|q7syXp>Z|$<4}u&fKrH-Ik<5o(bJXch*Fvk zO`7wqr4|)j8vA>KHM>qAlvI$Whb!r@p-}|OqZf}e(f7akgcai}nKXXud7BJ^Q&%1D ziKh%EiR%8y+|i@!_Ap9-ilIKkCOc^x`pC0Vm+7vqnV3K0NYuYC`Z#u68in^|T{hzL zR(Os91|t69qnNg>tM2?!1Ju4yj(wX(09@LX^JJGCU@jL`z5%cJ%(b=6{?ac%XPH?{ z|7=8gpM!n`3^SDpdMvGGL6TAf!R$Lbt;83Iy%ZoQr3V)f%hceVs}Gvj?R(_%5=OZG zkjCGqAvqNx%1E8Nc@$79*pye)3iN!JfiV zLF$les_t$V?o4_0W>2OO&N=C+XoRVDDIa~DEUF_k!YRmWMN`v&o?b!RWcYbJLD&{wRKdo78c_Xt)^SZgvExSJk{}~ zc1LoA!j{WIGU;lY+rLY%q90x|a)-AzuB&i`3p4OM9iQ|fDTqxk9k~P54J@53nGLGi z6|~>OR>nR^+PD=z_Jc4}tv{B}u)gofD6?B%`XuBy5ODG4S}W)Ji;x&FZGjSm_!zc9 zdpvroF1@Ws-dxY>%9sTQvtIm~&>xP;(hz5a@eW6jCAfq8VnaW37zJU{U{y7}mG>m> zR#m995+&=^VZ`7nO!b7PZ1c+=%V6$xDE z&A9&iVKMBPOJI2pA?ub&$6_1a?3|>U&w+}TkyT1I?4qmW%&?Gl(bQ|S)5o>vI*SWE z^Eh4(HM%M)7@WUc#=_7;9Eqw2j+^mW)uKmZ4k-Pp3i4LVV~1d^lsoyv?xsBgZ(~ik ze+9=LAjuYi)+@@0=x5YUUe);l@8&EU)k1Zc%_!46@*QbLK*)VRCqbAi#mC+%;rL`t zxnTWm_dHfVBcJsl|GMzX+qQNJp!;b6AAr6Pwiw2ZkR(HwJUz&g_pJs=XjH%a@?D5~ zz-K}busXd`IZcj_^_JnKDC)SHbwbZZ{HVJ`xzulCKla^VzWU+nt=h#JUqS}sxx>GZ zB{o@#uV!uJm9*Pn1Y%2)j43J~*DFF9Ktrb01D^+0FD&kPMzudw&(*6m`7=XyM?z;g z92nPmr_vcqxt+AwRz)mSNGc{2+j1B5YjTai*y~4|D8a(j5)Q&{u|UqmG6kApQ9;}b zI9;J2VqB|UhC`JYX{KClFBs#d!+@O0yIjKfvrT8tgHE^m_2C^}`ZWdCh%mvI&}o6G z`2LYbIvwl;k}WNR7P57G*gCG+6o2y~Q_IJu949ZRe);x1f05&=$b5be8TvUqqt;!; zNAT0%Ah97isDXLo26OgCF*cS?JqPBqR>Cd?1d=Q~bmu`5+FHRDR;`rK4>3)x-kd?Bmx1tYVoRK|sT+ID;L9Dx}^-lW;_}3%* zb`OW`pb2rGC*>7!r!8Oi$Ldw`ZRc%WK9>TbZ6ue%W`u@Ncpe^=i}83IdB31qY9~)q zzoAtt6dlN4NGA6UAx(luO}vR_Pm!7@j>e>ROq9E_fcs-GC}JxIl^MH4x($PwTQgp` zYusc|pJH=&E3YX5MIsBE=*j$!BECe+zJQMacFYE#n}R}EHW_(Vj$JI<1gOU{VP&ZX z$0GDP8Q)z|IeKRkHeqP8iSIA;I=L0@btDVOxvs}A)k*;_R?aHMtxIoX$x=KPkBcw< z^rkU;qWbm&=bJHj1F0_E+ipu}1SpRZXu^lr+Y*uv(m!{vhUjP5j0s?f7J;;Xa6f&z zaH_w}5-Iafg-IDmj9Lm}>pd8+pmDK!)c}Ril&Rc(qSju$v+fQCxfAS*Tx;_SuG2lP zZdHhEbUwx%<@WogclH|oz81@|(LuWeEm!tz;z#;27bLosO{UWX_cyQWHvKnJEq~tE zUX_e*>g^f0*<{|{taN`he@;Qh1}^C?gg@I~kh#0I(8(jTuW|Aw|K@S91sDqAwi(;W z&;hM8omYpu=ar`x4?S*mv483khvyU7_5yPIbWSWuquRSLO|A-NG(p&#=@}P7g{&$s)f?<(~nLM(BVfSMGUpl=J|G6_0eT)0l|`0%u17p{qXG_5}un_}qKy39Da!F83b5)#Q_k zsdMpFsR5W1@k2~j-oI)na;Tls>LXx@mAEzA0;tZcsU}?BrJA1#6Nf}^QnBuPXJ;Im zI9O4K|FHde<RXh%dnq#?Q$dj@l%%TygRLpIvLK}|z3 z{{BQ9$ER=n%Il=((Y#2{qL)I?B$Uwz@%^=QPm#)-g?f`rcM=@Dm?mmEo+*m&qjLtz z|5-t4E{bc}1k^S+W&@sIfF?Jg__1dt@eZ`fR?2DOZeIa-7O_wCXQcqHnL&21x z%uH>0IwN0oxQq2>f{PVKR?DZpYJlppYOC9V8H-T=>benjT7ij))qH=3hPHB#9tKoC1aJzAlVS)90p~v z_Eyw@lh53J!Woa_&%U128LQr}XIw98Cxyr33t8)de^=aawcZI;rsmd^LP-#)V`*~v z2EoOw{VDuv@*s#|LV@!blIM)&y%XeR8H^Z%`*+qBI3jR3H0X-Ebfj%50m5lvk;P^7 zisuYilDo6F^9Ykz#DCYc=6IYo{*F=T>p+8lm_@uS_Wp{xINAe6cU+=DatkOH=*^GD zV~WBMf=jwZLiJ3BQ2Fu-V^;9VFeb(BG9}XfTyNk=8~3}qaxES;NcE2Z;;_=!2a}^n zjZa4aHp_9{BV1OCVxe@9ZED>{R2sC*F{hKhugM%lgs*bD3tz(2_8|Ti_%e$p_oq|a zME0jR`(t!;Iz~XlKtFyX!Rda_~q!Dh=+44tpS7C?BH~Ig< zUT{_}lgu2r(G>$UI;})v%|U~G65$(mTg3uIs+CuJ2OQ~!5AMOkbcri5oAbZDqD*wg zD{NdrLnerBj1w|)X5hLK*^WMV*A7!s!O|$Bl7Q`QI4^ER!1vK(9`MH{8M3tSFcuOT zJ~zFyPF4A=ihgCQrPW)A4FvYBnoGs`R9I=|!bP9<#%RtlDUzm9Gn-4eXBmyB>T}y) zj2O9vFvU9?PgRTjpObkrCr$WDX-y4qN$@M(tnxTBi6GI5KN0=ogfHP)IT zgiSXWeWOZF^M~goG^&F&HRpbMj90$VI7HJKB}DuID2@GAOdX}LFf?gaLvZ?o{a$P7 zvShIk{-@{q>h#>v9}qVYgc}{=csAZEk-|>?T~C2)OVTIs^5M5lgw5cC^x_11WEt_= zr-1c_J*`AZtIZdNc%z0(WP5K~vF1eNN}Xkg4vDy_iDfMIb1z`>mrm-!&^~WWz3_0V zJ>}E7j-HpGXJ&b5MrvhQQ>fa`p}Gf2HRN(C52V)8be_5b=^2cpKW{7A*U{1G)KvUU zun(v}oVAc2g$M0q?u+^(0PJ0xZYve;Mgr@m5U#ES{L3XX$?LNfnKCeuf%WhQ`CKvd ztk5+vR?K|XeZq-AODvO*|4&CRu2}b|oV3+4Mdu}kqmtbjLW&UJF zYCyBAR_W>YOd{F01d`?T)AW%&UKZbXMw{~6ygqzbj}Oc|1Izl>>|cZMH(7pIT13V7 zqsFegTRH!B4)qg{628QJQ$17j<-#?g>;=6XAs+6D;NN0U=JPJPYk{(V3+y&iP{uwGeq<*w(S{5rL1stpVq@yFZ`oX+Af#HF6d>HkX0km(v}3OQ(8Wf9#JR zj<7)Dv{_dsX$FLpC$Cc`_VCl6z!(V3l%|(qwH53^?`2JIE3Nuzw#)8j^AvBAi{n6= z)@5`~Zw6GVJ}{fAqD%RcvC`}ALb&r6FG{4VZ5+lJWp^PQh}@!cY92+0Hd%aQZ&@ef zglV@7tbWqOLf9^X%k>s5$s6rpT?<1wV66_t-{qRDOl{Aeb~`rsPzi*!i`=Ax0iBte zT%b#M(&|$PLt0)r6BvT9Ue7uGMfA3E@-pqhR#bwcmsUtVil?LpB2*_ve1s0a+!HPECKTm3r{ZP7jRd+*NM$`M&5F%V=o1Z z5DRX_-5!$%^E*1plQm%u3kTPDL_$#rAU{1XNAP`8ouLQE;~q)FI!0KRi2pfKH=Zp2 zij+IJ+Ge)ZE-%w zaw^d!Mp`o$^xPEw{gECpxFbJ&wAa|XQ-S*Pnz{%5%{Z`@&~%kLhciAqD@F_HWZKZ$ z*2IXYT$A(t3=$mhi#uWm8d4}7!DH{=A;12eBHTq) zVP3+wN>weaDD>?z2wbo$N2Y|RFmQeB8waJ%RUQ*p@69A^mO0ltG}mG1ah@GJmQ=4Z z{q%Su!~>YV{gTt$ZL6lY*Dp=}VzI+(wUZ%1Y9Fc*Do0FN+2&$+kDj4IUpjLi*b8Mt zoPY0Joy4qXJ?^SpOg>gTl>_yo)b*_@m-(0K=SWcrHOd)KtgubY|9o&c@0f7J^+a(- zVjg)ef+$k7N@Oh))r4B8VQJ|vfX;7%Pa!x2nNU(n1>mpxD54|TO|ya~>Nouy=4-=7HNpn zCA+<<*7PNFi8KY9wRfUFx$SOW4~pcdQQ1nw%k*8tIx!ef^05ClQc_(z3Yn1NhnqCA%xvU ziph=*F1v!_z7xh6h#&7z-aWd#6R&81%HAa{u!gK#XC~$%a^2?%S3RWwm|LnVs4FjL z9;#lraoD_z;2ph!4wj2G>7F|K6EB8aVlk3L$!m?R^{Y{>sA&!48ZsDfC)!n-F!9iM zg6v?(iEzoY$FzwZzDd~Z3&d=ByuK>kziO$s+@-K=kY$Lyw>tt8y0mGuW%;78f2{td z)TpNZLqo)ql-8&)=rJUD4Jie=`(wcHvfh+H+xZE>F>IDD#L#WZ0J&%)RAdv2GF$vn z6K?D^VLVZ19s@?y=?$c29$8R^|NP-3&7*lLktm~KszLPFF^QdA^%&V-S3;+!{nPE0 zf%7w~qp@<8!<~DT&9}NLGsTRP`%nNW7L|ot)Mi?|{_iCRPNYW_g=N%~CW8Q_RA|+L zS3p5#vl@>5Z1v0>X>z-RdpwF^IdR#ogsMG}e{XQMAvMa5@pxivn+wNrR4eJJ3H;v# z{Nh9E8?VQM_6QNp&v%OKXtVMW$GHCqqb*$0F1BFhf|%}lehm5s7Z3WL2zJT>eQ2rY zfpB(?^D}kP&dw1a;n(xyxZA;35$ByYdEDurwy3jn(KMD`5Q;`aNf+5E=L^HS@R#y= zd7R)kBb`J!3f#v_;hj`mjB@5uVI%6QYWX22tJIsdRL^R>C1@rLb0g~28@P!G5TXF0 z$XY{erHZ_34np}b!yrIr@}i@`uNy1U(hQl#9jgb@?J0@e@J#A(h@dEs#ZWJwW(fd9YBR&z~Wjx-$OqK^wLs zlt8~=-mtKnmC5GQL(9gMHRY<^kE94!$pC?pC5%zaeS=WBCIf0bF`*3*xrakc^W!Bc z%r(5sH6Qnqk(AwY*kqIol|5A|Hs}E0ssSFA%Ak0~at%9IN%u0(kE!n0@+Em7)IxNx z+cdk{$ZQ3VDGVSNp(B$u|@=1DBNwa>P$Kc|MW(k)lyoiUQ6iuDxGqhU(?6o+Nh^g zE@+&iN4UQ<5sIX!ekr@Fzx)v?!f^S~jk zO|BN_v}vW+rcHCUxJ+i{n)Xeb<_N>}iGo<*zXH-|I;%P(`B3#Wxk5gqe5vF_uBgg6 zA>js0THCQ6=54cLnKUB$gINmLT{BOCi^RZBabQN0v1Hog;=F0bMP@%I3eU;A$OBHx z8zw$aO>bBx5L{9y^fdJ-tfnZuQ+kKCy(3vaFxyIxv5C6MX8ynmf^;9okaNJ!!OTL_{n)( zyo_E2QrW7PKNVfxG{veEV5$UEY@vdnptvjWm1U=5&!MR>Y9)TPD0pBNGm11BZ|c=B zBr!EKaFIf3syPEv@;jcX;*O26sHmg_r{eo06cznPQPGDKwd)LAAdSr6+$fXABPgoR zCNYGCmzb`GXrLVb*B7Bhw*!SThr57rtvCb~Uk=9v;oRj5xJ3iSRagbU{CNf;heZn~ z*Y#PXGA@5fvEjC({Z_A1kn#zsa3~5}%C|Ygedfp$N{rCy{8&1Nu^+&@Md@azN6b@~ zO_t#D>ZiypD@*?tR)XLW6oC0%R%t7gUMVGboW6B0ii8;+aP91rfR>Ld`4OqHeQk`NX)QglRgR070 z)$P@VlJF;Mvv|^&L${1i+<4@obI$4T%tQ#|A{tBmHRRUlHpe-$L?cznSE1yzb=Za)|t# zSbss{Mx*=_;OG9EO)8hOygv8p@_Jz&4WWC|DlIFCh}h&PCB>A;eXL*9Q9w6C$zhcRXMMes3RZ_K@Flx)p)AW( z`o5LHg=4HzCBBpG=PU%2upEnV~;h{w?l_Q0RP;yH<>2BiyV zjrVfuDI$FU)E^$XbSGawC&OUINLdpT^uU%a2Pi%8f`)f9m1&ewqjzLBK;nwIVpCB| zt%A>2^Md51{AA>jLfc*SAGD^xf081YI8aC_mJNN}+Gnkz{H5)5}fr%wHw0(z+=&`C8YR{1Yz#`Khs=U~j@uP{kyTSki|XjTDbv{Qx|j=+j; zu)y{K^$JbEdvu~d0!X_!;&SDpjA)2-u^3IcS$07QZoiAz3e zG|3M!g0s$KBs*N3zvptVs6@Nzt$~41GvCcL^WD8-(u0~ie>UgAEmkqkym1`5FsunQ z`UVoO8++cVU*2-S+F*XC=beV-E!S8ZOmt!jJOlqqPbNuYizRTLNwg40oBYQXQ~frR zXr1K0iZi6IY^~%NMYCkJ3QlH2LpZthjKNvkH5Y-9?@oQQaU^sT5Xk?T_P5}0)6M39 zS=ol-RQJN4uusgXZ!{Qu=NhSTqHDsh^TL@)sQ4u@+*rr95TdKJ{FoX%) zSuHkspTr#FW~z;v1#Xy8EK$HB6mV-_G=sr_p0tMauN?F9R~7Xyj17KW;GX^XIsRIM zgwr{#hyF0~AW(`@Sg=*IHdfv9F?ULxm{R(a*M)mAN&kyFoFVLD)p*a<80(od+)euw zLd$+gF=83Mm=J%b4tEgh#@RoV>WcVps*ye}kCXg3qpNTtkMmPSzkgIjDK^R^D%IgP zrqPZu0U?6ke<{L(#2N{1@Q?t>8$ANKGoB(oDZzP><@;=gjNmFM`5AIwQS8B50_NQ&ytIqmN&yU)JX$%=Ua_rNmJRMM`HAqMGt1o ze|dp0%(N&1hO2~$@N#fY@a573>f8W_egt#tBS53baLoIH&-VrT3=)}N0H*x5(fDn^ zm147_;!`;RP16iqC$2$Sh%0kq$(S+574%hG%wSt#B<89xO1YXB^yo#4FS-|guL50T z-NPCJKnbHZN)B_c_Q$IZ1?*O6r!e<=EKT6r2U#GR;A5I~)fy2(Q2buMA^u9-4kND~ zFs*joNSa6d8zg!cn;7UC86m~be$`y}Z%2>36_i5qhfh8EYrXgb(oQxzUwHG}<2TPW z$PsbYaOgjde(q(R_{6PW`+>>zx2GQc3z6@??S-xu!`z#XpDR?gBhnog)4;-f^+nQb z?5kre5X%Mhv1BeR7EegP1eYXLz47AW+jC^$;%jrj4lpfhiH(+tzlVSFlQ6H>PXQk^ zvVGPfg3w7^dP6eq^634!c-9|4br{~@-mu8MP+&ym!w!dh*i826^<-aj2WhF7uhHw} zYwBA_2f0*|B3XJcLusaT9sO2@kc^mUE?rk2)8TH8x>!9u*qm5jk`!L=KVVKvtbSIY ztSVP6AYYGbfC-DPllI{*DEQN(JtCP4KwS`nj|0zKERA&@LT`yfou&1iWHvt)C8V!F z*%6a8zzz8ikQ^^Rue2}c;V>cuix-E|CfofGP$G9VL0O}gWsXb$6cgOR06j68C8PxC zjAUy#!9)8MIbJ&tke$SkUJYk=6~=F|`HH&Cg~BRfC%`yag$c}}qQZ2kYR=>-Dq+;= zRVy_ET2U{jOt6IN!3-57|I*Xr4%JyqCQDt&-P3dDq{}-8CI5^DJN#>y;g<%hFLxq` z$uS#4X&8Q(7L-rr52~{wUgcU+@{&KO&YO6Z>jLL;^UAbE|MhIUqE}OK4(=B?C8Fsd z91WpPJkB?y2=M(Vl4Qpz2<26dY3M?RSOU1*Aag~w{+oDQ?1hmyjeE2cV|j;nz^ggjLct&4ySTv2ggKcLJs7#w zC?*MR-wD+FgmrWZn*i%-8Y8@#U)>e(zibuu2Xf!K_RUO7;PFJe%xLM?R z4=RYDVwhCoOS66TI@qpy>e3j_mU8X^_)*ljC{L6CB%-85;Xx%8bA&=Ima>Z+*Je>k zv*|MMq1;&tK9Yx{Aq& zF_u;=r!8cXJ*gHyg%nN{UJc7{hJQVtGKV~*+Z{5e#>)yP^0?NPtl7kjG7(ymHr9DO zbsMz^2Bvt$PCQ4mg_%(HZJ&aMzj!WS2A8EW`X@<^DEUFB{1ULuevM#p9y9q8+mUt0e9^3hRpcS_#b z*9W)A?0CFwds2QE1znQpl;3stq+9JEpB-V(<(EcB;S=(?lzjfc(OG?cWH!8>NWcfU zBMpAwaoAgXyWJWeMAX;JRc!x^6RhTY5$XA+;E#O~)GFxlp{q9~LNhr;p9|v`ib~*D zBB;I)MuRh_iP``lI|WvH1OstT$A z#iEj%{6!^qe7gv!9XPgm>~oft{0u?65#*wwhkB5s{6dtETby@3q8Yj{Y%*LSf=UpK zjv&KuZG2D;6AbUCbow&1n*j|bLP?;~gAX!I<+!Rn#*m=+LbWcJm&@&FwaP|e6~#C- z%!ND%DGMV3)iW5~AjCbTPvz+~J@SKvU(FO< zR=TXz&uB9M02402y*5aZsp$cy|JrKDjof&I5=WkUYG~FrVO?w1bn4noSuH;HpA{b# zR|~jrx`o*xgj~Rr6azU=AO~!Ko^<1C0N<-GPQ3V0QHv+-CE%*H1R6}LXJgU-XQD{E)fp$Ha=zdLSF>P zPlXq+_Fqz>d1^SffaW~+3GYK+BF84PJ-`63@POHsUUgucjI7uzInsCNc8M{PA~tue)00ODY1BIh@>2evGp0}(oHn>Y-8~JHh*gE#_542 zJ?BS*zFB9@i&>kV?OM|wTy@Tnu7ZPzx`(ph(byZ~HO{qLQib9}B(6+KRqRz0KyfFuGF;>IM)+%ok76@p@TW#G!wl5% zcrE?CP!F7ZZp!d(r0GAV4&c^w#njQ+%5opdMNXy_VSC24ZpB_8%IHivt+3@w%!)wS_VfM%4+1A72 zC2N&8FR9`QoxokU3&P|X6lbenKw^kujAl`ToAN5d4ioCcJWHeHVbS_WOUUwhbJK%m z1XKz5;&A`RJd5RF61CZ$u@Vw50x@SOIA>=*YD}gCea>{$az>SPNUBdV5`ZEq5)%a zR)IlCV>FtMM&p!ZOfG|&tkXBO#LjLZc&WFDYmH5@o{?(E{@Bvn0)O)73|{kWvxVv` z#MjiOBmL8z7Is5#l|N`m8cE-zv0GmavB;zI@NFKepo;qI$fa0i`Ifp#%`y*ehyDJl zcy0A)ch=?{h#CSOW}ty4C@*=co)C>u8lavg52VpX9=@fjq-PS1fG=Gxz@3c=Ss+aq zt);1|TrZ3MukC%cDCU8d<{=>yY=J8BCDj1%GW}T1IeD9TcxdR-@UUxmQPP^NMhNqi zvWX25DOou@yvy&MF|$1y^358ZQJ$Lxn49RQ+l;=*W$!3pvm@2p!N#aCp;2Jc5PGte zH-B|dNuv-g4QqFK#i?g5)4a*{cJ#hxiy>Vx5oC%0THJwCh@iKsE9UaB70a;*O5rsX4U-|ah>-*fG}(gfMD?y}ENNs?%I z#jQQ{!wI(|KF2@w^{qSa3bXvKt?u zCyMle8!vl{?q9cVKV>PoXxcls-ulk8uaG0^El8C--(mBDVP)XPq2CRtaxf%~$y_1{ z-Ji`RbAfCi7ZA%-1JKcl!G_(t8wPU^=GLr%r0VJt?PAUAq}9dM(&qeTzaJ9qh5VSt zQ9?_rj3CFmm_G*UcCbfCl887yisK~-6^2)&j+5D)^6!U;fKFX>LX!WJ-}(djSw62B z7Z@ubSoS?kGqs$N#h%SE9!U&DsKWTag}wbm7~M%R*~WbAI8#4P!{g)sUtQN18b=Yv zcV=#HFL%3px4ZWzIon(=m&-M^sYx%_)8$yE7^2pw~M(z(0PQHz`Ma1D?JTp6LU2ljS_NE%1S$GB3gj`hbD1!;47=6Bc%J zJvKLeV>KRMy)iu(Ykt^~B@SP$$5(&md*Fx8T%cc4pd}XtZ9`atG;Jv1!n8H|!r{8W%Z6f{PX-x4d!HMmfj=eJs|CF8G0m2|9FI!%-T)Xa!y4~>AP6zo$Y;5VHZpwIzu1jt%;tybq97uY(uYqc5|){)xYmghlt57vQF zF)yO|l|c7V$$NoikkQQZpj-2uE!n;~IO-u9-qkoxD@CM6BiN2(UT-fxIfZv2Rm*GB zMQF{VOQTEvf6QyyyrU!of&Fv`HgA4EZTv#qGoOhV2s|4IQb_OzlM&ZO?rEbvXR0GU z$B(cGEA|k}$k@!Ty9bEd{Pe{J03A(xgS_qDbkCEgUh&42%}stB@#ctNYriKACLQ>~ z@)aT+34kvn%v&A57b@gRYr0;4_#|cUF!JW`Dj^01U6p*0ss>x~vyYMFT2q_-0G~qu1wflB;BRMZ7yp;;-;X^^r5>tTaGsa#5ab@M1W?MqmX@Af zj_-*tM~Ifz$zeUM5f6vy;=2oUb&G53h~5Z}XqC%;&GNzbbt?tbtf@@mC=Q>=H*kTE}Lf;D7!kJ7(jUxlIIrHlNTtxa8g}72L-7& ze*R8{9W3uLfocV)oM2D#>5RPr3~Dl>SY`~J%{TXLAPxHmB@~HAnWdXPj=I^PzpUQ&yO@A zMb;s8$5h=_UR)!in$b?H<`glse$_D4e$BYfld!*EZQ)vfvo{#{bDsugK`2L3X`mki zKDrkWQ`F%r$h@xZMF%Ac{{wQ1EV4jchr(5|>lzt8V=_7HI+28Isy)_&2$Kmrc>9HO zqf_>`=aV}%GsMDL;+p%@ndAHEyS!LNkEVx|M0mFxQs}+oGmAN*#N}UQrflQI-;)y& zMyt`W+3(K3JUXRDt!yMNt3AhO-sC6yKE#wlW;~JM#~$K!we-fb$l5MQV|Z7sI8*@| zMmf)ACWgN85d#tL&+~vA%#fM@0|g)`)C@5FTH{l|1}FjajT}E=)7&5K<@rzHSp5)949E_&BQ;_m(Q9;UVAWnGbe< zOdTO%H*2{4^402dM+sffV__PK$BM?>-KQ(1V+XEJQzD1LD@G)mkadMjsB-+M>yo({ zg~>Z)J)BGSXh~UTcDt@IsQaUrT=(@$)#oEoUMOQkViTofb9eWRM8*jV>+)rOie80< zzKZJPiHlYDHq-@mCbcJ%xiFLd10vsvod5uMoMT{QU|;~^O#A7&@%%Pl8Ms*(K;Xvn zy=@5k|4bGJ<^~{_gMkSo3IH~J3rYZZoMT{QU|??e-@p*V!Tv7Aupj&&S|GL|0wHK2s3IUDq9Yh1awFO#6eN};_9coYCMKXJ{wH21wkPx`WGI>` z4k=tIqAB1iE-Iud@+(#=z${KIek|ZEDlLL7;4V-uh%V+YBrm=&7%+4&+%Y6E=rT+) zm@@1$WHazINHm-^5;d+h{5DWFpf?sbsyHk-dN}wwHaUhl(mEbGdOEf{06Q!@cstfS zJUoaz+&w@&ay`;M96oM7%0D(glt17=I6!JZ(m@VEK0$s#zCsW}q(bmROhd3k>O@{d zltk=BGDUzz%0?zeU`D`42uCnSSVyKv97tG5m`Kn`8cAA7j!DKz{7O1XY)Yg`;!6xm zI!lgBI!s7RR!n3}a!jsF@J%93kWIW!7*149XimIN@J}*Nc2BrZ^iWPvdQi4e08utk zc2S~Hyiwdz7*aw~h*GXn;8Pk?FjHDnic`W<`cxoPJXCB{npCn>&Q%&!I#p6tdR3ZL z=2kRTh*r8*-d6%wgjeiXMp(vpoMT{QU|^JF=waYv00AZ-<^nvc1-N6DcL<;RKw36VTFd z3Oar}g9NcPGvE9>GalOjuJ8#Dr|X7xVh>$rCvK4Mgq!4h;TE|s+(r*0;STjDVIPl} z3ioi0oD;m(1+zY0ggsp1Rk%TZ6K;~d5Jp zS{~IlHhE%l=j&8wI(G}b-lvh3OhTw_xiz^O1w&EhI@k7hMtN9|ol8_=O{Qk1YDgZ&N>f;9L~!&gC@gWL-y(+L$4F}LSf`QFGFp`{7}wZSi|YQr zXaBR1(W2zUYLenl2rxXWnb)zZJKv+kfzKIJb=*bKEazmTnQT@~O34aEeYT?#QxCAI zy9!J&;GLY+2lX3fKVSxHu>b&goNZPGnB%$;-rs8qZT9WnJt{N0?OvIgnHdyWNz~Yu zPm(t;S7v5rW@ct)W@cvQj^reJ_u714>=|h^8vMr_!AAS*Zv5XLPD6lAgoqF$L5dE# z=%J4RwlKstPQng$aR`TTGETv%B!4>2g0tdmI6KaPbK+b$H_n6e;(RziE`ST-Lbxz4 zf{P-<#c*+40(&@uOX5JcThrk#UOd)Z1 z%ut|21%(<%p|dwfd!7?9=Ip&g?r;ZxG(O9`{Mz4ARdGV;~{t`9)^eG5qKmX zg-7Etcq|@=$KwfjBA$dN<0*J5o`$F68F(h1g=gbAcrKoY=i>!cr9Ls*W(R%Bi@8J<1KhA-iEj19e5|+g?HmUcrV_E_u~WjAU=c-<0JSe zK8BCu6Zj-Pg-_!%_$)q$&*KaDBEEz#<16?ozJ{;k8~7%^g>U0K_%6PO@8bvfA%27( z<0tqjeukgp7x*Q9gVRjg3~vKl8cOM!OBdlrpmVu zcyqL2TBL<43R$aqP%F!<%8b>rHfbq~S!M<6xC6PC)huxot;Af7$3nzPvuYy3S}+~4 zx-LY_r$XyRch0QPr6^PtO*E@TUyHGp6QN1H-kGRTA?)(@Y}^#Z;Dn{#l5;z8OLw^{ z^45rMdwIs2y5sNh)KuBbbDgz&NiK{L+D4|CFx|0?6wOI}JZdzV(w$XuOxG(t>$*o~ zYNe`#PbHs;DjX}7$GJ4qY%g>#?}8w<5Mw)7G33&$z{T1h&=>89xt9jKsPCRYtrrw;1McB~w zaZ?qF&qDXuw5smVe<|xIrz`SoIAVMjkCe5l?6D1*nXEd6Q|(gI^^{-i&Lyd@ z)m-R^Duz!J|IGFxD@&n!tYEryH}YA(WaN|L%t}=a+c>ZJKFjkpb7)0mvZ7)tJ-xkN zTxLD03&urC<;2y#(1Wqm#%4_B*-TOZwW_C!Y%gw!s1!LX693HhI)>uw4c#myPe;s% z5u^4nigTe;s#fdxE^W+&CsSjY&Zt)gT-6K8EpJLu*`DjF%ut7jYGCHlxjt$rCDkUA zWytC7ROPB9S9Rzj(&tihDnVaVTUwN4`pTi*<({j$b@h)36pl@sa70zQl$B%I z2BS;%I|r$tcWt99XJU4+me$HhC+7&una(K$#;}Rl=2K=fcf}GXhJGPeE8N&x^B(AW zo;_aFpY?lP&wDbaDxwlkSGI(z78QX^RSE9w2%r}Fu(;{=g=|a%)^1ew&x-rv)P$Z|yNGau-3Yn#bOGA)s z`umh~MNuWNU~!Aj3A0u+ZWBtUq!E`MQv`8japDPCQIRptr*V6#Z`n++Ia_2d-A(P_ z|48c4*HIlGWKJWQDnVA%hy7LaW`sHEirHST`qmWr;9!9|ez@jZ;5y*j9!^{wgf&}Z z8YFItE|o0V_RxxJk93zDS+Ux1%_8!+ zZcF?5VJLspUofc|(MA}LU2X=pDr1vPwA0)Mj#yVg^m3sX5E|As&F_ZFVUdzd zL-<{iu%+fQ?odH!+aYPH!HNr_xGG(CoQ8r;dL}EGru?|i0=kO6MhtB^sG*nZ?b!I> z_nlxx?z_WuQ=3)NM^!7RgWMrPbJAC9RVwF2&!5yj1azXQoXK4hD42D_i|(W5p!wvC zT1$4@G?37uwAEEu}1ivXw_Ew0$k5g}UvlZr_9Q=nAimZoZ#0BiV8i1AV{W_pk4B za_-#y&T{6Q&pC5u#5iNj!O~1+?Q>SFn(?sl$R8Qwy*N8#$%;vx(*pCJ#PP*AUcF`4 z<~_akAK%NE1=l?jw(q=P+r(ea7-p>UON@Q=;`-)2XP$k|f1GWuX6%Ot7;`xouBhpwX?C)SUdphg(iHviN^u5fPaC+oZByyg zzcGir_f7q&&(e)DJ$j1?Z^B^-Q|K)I@C=^5hPlNNoweg1V@JiY{F0s3u~x9n;1XD%&bKDoboEpUN2MrF6-oYR$*opXHW3A zbla@0Ov?`GugLNv?`hnYFFk$g|LFhf;Qx5w|9Ig4Egpb~F@s1xwMucL{zJ+i<*ztP zlBg9aBqq+Al$UYbz(Np9N_Hsw_3XE^&t%`v{v~@<_vw{-NS~-r*JtUQ^_TQljzYrX zp2OLDvyW$=&3=&myRPVdy;^V3+w?(wj=n|z0p0Tne;nUyU=!FNTh1O}-(t_REPJ1Q z#O=J3ck>-eJD%qdu`2RphD^3XHrtS22XitPq<$$YV;<&ZK32~BEWm=Sf>p9AR?TWy zE#!VZN)yHxBCL@$u_%kNX4Zo5O+>ldSe#8_?W}`!vM$!mdRT%bSudN+rm#LXl}%&) zY=CKOI-9{}B8RisY&M6@W%Jm4wty{Ui`Zhege_&ukoOgAC0oT-vo&ljJBh7h>)FX{ z1KY?pu@u|PPGMWvR(2}e#@;>dJA>_HyV!1aCfmc#Vtd)y>>PG3+sDph=d%mg zh3q1BF}s9a%J#D~yNq4Vu3%TP&#=$3tJnedId+g;4V`x_yN+GY4zbU(FR(AN8`zEP zCU!IQ@-6IE_GR`J_EmNpyPXZOJJ_A&hBCNvisQmsO@jC2iZgHVfIbb z`y=d8_89v%`wn}YeV0AKz6UJu6nmOI!!qny_8j{@TIL1zB72Fw%znULVgJTnWj|#9 z&VI&z&R%10vR|+tvDeuf?8odU>@D_F_Dl9F_BMNm{TdkKH|)3UckDmd@6on8`vdz= z_FwE>_8$8qTKd1)2kcMm&+ISkuk3H^@9abN5&IwZ5B5)XgyopQj&jC1SGdYe+{`W9 z%1gKn+~MF(?&5A<%FDQid%2I7b3YI8AYl?ty8Hj@e@?0Z7xf?fQLSW$BvG%=9+pHn zD*H7_Bqg$UNg`m9y;~AVknGnb5h}_8SrVZyvh0152t#G>mxTVwvJXfi$&&qsB=lL9 zeNYm5FUvk83H_L5AC^QoF8fVM=-Vv&ElKF*Ec=Kg^mmqhR1$hV%RVLvGJs{jEeX`aFvQJ2YtYF#iNrKd1S)gAc$Pbo%N)jXq%RVg$GKFQIkp$_&vd>C_ zoMGALBthb^?Dr)>_OR^pk|2dx_613hM=blIBuFNfeMu5z6w5*a6G2+B><=VCZn5ku zk|4oY_TMByma*)sk|5Ps_J@)n-&poFNsx3b`y)w^c`W<7B+>@iHzYw0vh0r~K_as3 zPb5J$vMekBB1lP={dY-_mn{1;Nsyc@`*TTjRRhE5A5+p3k{!$WT zEzAB&5~ME6zAXvzmu26P1WC-Yzm^1<%(BChAe~wEHdy=3PSoV*S zpdVQFeM!(1Ec<~Z=nR(qlO$*lmi@CN=n5qG}CJ&L0>byRuVKf)9WNbhcmri60|wfLz1A^ncg4?8lLG9NznC7 zZCMG|lV(GFug+(&<4{xB>{IZy-N}h2-DHGiGW3z-XjU9gy{)Mz$Z*kN&-@0 zdaop47N$>@1oXmm^lc*G7^e400-|C1R7t=#OrItRD2M6&l7M%ZJ|GFmhv}LmU?8TW zZxaCxF?~=Ha1qmINdiJ*`W#8XN=%$C$oc5|A0wS4aXzWBN)-Kx<52B?-8V>8m9H z!7+V}Bw#tFuayK;$MlmV0pBrwog^SVrmvR-%*XVTB?0|0eS;+6K&Ee$1VqU6O_G2O znVymal*shWl7JVPPJI;w0l1Rp;VrBXsNx-g5KT8tJAl)koc$VpB zO9HZG`Z5F4NSjT z5-bR&e@PN-38vp7304KuZ!t~oE!6IS$ zkR;e9Ous`CtQ4l-DGBxp(+^96<-+u@NrDZ-^t&X%nqm6gl3>>`{p*ro;V}IkNw9U8 zey=20Jxsq(66_zQ-!BQ45Yr!!1e=KI-;f0Bi0KbXf}O7noJc#raNn{_1zuoK!9_Q~Uvy}(bI(4`Dchfr4`{o_y+bmNpS6be; zwpw>u?Tet0?&9EP|zvGzU_>$A)+~@qrrMW)qdfDxCuXBG?y0rB1GH2P= zvLl|go)^7#?`rRJzE0nry}<+Uf*K3%u7?)Cbm^$*t{ z39So#JFJ9vgzsqxHQX7gi0qBL)mYwmQ{&&84o0KVp{Nnt82fhYugzPVZ*6h6oZNC} z%kYHwgs)Bb^TgE?Gp&nTFKr!eo6vT7+i-ko{6IWAsd3WN?G^3kwEwE3vEvV&3p>Bm z`Cix7t`EBBc7LVE+w)-0k;Kx(P%@CbueY`L!rqT2CnkS(@{gy~O}TK&xBFOMYv1{O zKbtyr>Vc`hnx;+LJMG8)HT}E$Ul~XY+%Pb#^=hYUKc4QM-aq})=}*rnoAI?7AIw}h z^WmBQHMnu`hQaq{bPf13b|ki#C*UOL@?0i7Nv<7VXB#&S0P%CmSXyR!e!HGs(qa zoR40T`@H*i_DcJ!y}eU!>3h}o`2)2JC-a)C+N!HxUGnOZ1q)uSSyH>M?SRc!Y3G;O zY>&AcZLY`cRa@=$$6OJ+>oHq3zxj7I+pB%IOzrJ`)n4`9RW*F_!rB9EwM%MVU9bS} zc(tZxecJ(hrO&36;7gCWY>jxsR(qBGQL$?yf56d<%2W;3cQaXlJlvV+@pMNc;RcJ} zQy%Ct``x@D8taL~dCb$#li@lZ^ticoBKM5p7FK4(cZZb5tR~u?cBwB{(ri{GVpofO&CFrG)O-KK!zO2rL#Xk`i-)!V8+Ry8_ z#ahSvc~2K|5a*L{A{a;{6VX`IVx`ML%4XE!lg$yur9iNbTirMrvs&tSQsJhWo(ayH zDo@`)OjFhk4z5!!ExmH%#zPh5OIEG}Abdry9?Zoy<;{aT`X^OoPQ zS?QfU|JR2r{V%xe5f{%?PjFQCOtjVny`5pa18=I^c!5>jx&GukTAJDywb*8!KX1_) zR`WXJiPx(6xp6NFCqsob;0r+S=x$mvmi$`H5!Z1b>ltJ5i(eaIV%`Hd$VCUQQpfe-p)A@5LAk1g8h zax{t5X0D!4F_aEgRt6Po$t1t)w%c6(NhMZgnBMffbB}zD(|C28qqNkqEzd{KsF$m0 zcwXZ0G-y<_;Nq^%K)D6Agt`dVDVEVHjf1o-=gEHb*d|nq><#4s?sF>v@Oz>q zO&`RDYq5lBQnXoVtTN88YE+t|lT3+NcQZd=UV5_0x@);P_g6)un{yd#`9A~6IVDq7 z76PlIO1$n6?_50Docmr?nDcOzGRr)9aVO8@GIIj^SFG6Um`;s=|3(S#aV*)hmV9$Z zpHYWU9u>Ufgr960`8v42D;bUiyL|qxIJLjED~Z04FXRZjL>i*qi9Raem@4r5!oIM= zJ}5IXnX-qqk1DRZWpK0aaqXN3D(6tvwaKPPg|Vk1Vwx<9GN=5rn~Lh-4@P^4AL5yG zI?eY#vwDZsyLs@aa`j%yc5g*J=k*o*WgKk!j6YT=c5WEJ1$Y8wNuw+^Xq^~*MSbW2 zGs)-TLmp9pI$jI^Z*k**YZFQ0eK+dM7ba;njm!3_<>i53mp{_S{S!G-ALzx32lnlI zpdu9I(Qt<;Qfch1jF>vYI6Q@aP;u2sCtbyVZg|`Ibw*`TGd-wj8BI%T^ru{W_VtQ# z{n@t8uomvJ8RzCpbhWJuCpulLcPPpZ<31zJGpH$1U2bm%4|3u)A;&W6#gMO5!d4++ z(Jb{m0PaJ>K+HyCDjH@0&4NzZoj^YfltRn~t>IYM3QqK?Nw?FZ1QcIsM~r)2##EP= z$2v-VIOTD=tv;91=l1bAX2WhuDyP_U57-wp@dHgtrqr2s2XpVZJRXKH75lKO5j%Y)4znB>z4HF2}wASG^4qaC<+o!G)A|`CUkSP9}Uz1MW}?P?v8(_)XUAWxY@{=ZQNsy$G&4T zUmV{()myq*UN!!St6VkPjQ<|J>M5K4bk1zfJuSD@jg5)MMm~Cd**Z7h|}v5jc6}a33xJv`luoQBh-zXqirwP%)!q|(AWrk8ljTjS~-7himb8gDK4+GekJx+AU53b(~sS7V>P*69Qj zn_j%>rWZ|oTEba+u5yXf<*`c;=43%#0n!70I@2av`f|XWZ zbE$XpjK$5nvfsBuUCoP^?m#g_Ii6SVRA<5)dos$A2zDWVfnY!ZFhQ9j7U+gJ zie(47QT;yglkkt(GMklTbe7U$NeMOhmPslmqb$;r9C zwe{|@U{6CZ7O<9w>kYC zRXyu!x+hJp(ps7lZEZcV=B~!2j%0FCdHodS(GrzgZNV8EjaSca_IfHSxy`Ox&E^ut zX6K4FXE%49(LYDwPNzeyD{r3Wa+CyJlh3OT*|@jL?y`A!Z~L}Ct!SCfO|^~I;F`d2kq$@qHbt_lj6pl<;IepFfYdix7V!GI|VbcMF1vMTqtPU}hD z7QemsMbF`DHaky0lQ*2Ve$~4dU;I#g?Sd3`#3d9DYrn26Jr9IoX zH+Va0h1|{v;SJ3U0Gs%^Oz!=dM0v_mU(s4KVZ-hP*2uz{E#~eWvu5q+Hn+@N7_lzc zyTpClW55i97n2T zS`xobWm2-QWYj_A$BVp>4Mch@3H;rGZ<12$3Fjq56zmfLB!}3DHAJBelF-}Kp#VKC zR)AXcEK+?0M-Ylt;_B%S#Oh*G8e3+C6ay@I$wm7vc9fS_bkqi#>v_}UNXwkey%(9h zZc@{xi|$QPPLDF$rj)bHW*cyZFIZQ_>#CJ6|8o1q3g5fQRmiFGH#0a#xn71>fw@HIXOS8)%rlrQ&7>O3Hg$utVb>lC*VQ~hJuqK8L; z>=MbY80A!l5BTNqdv@C6skJS&tpj&ED$5l6YsMM;MzkkvRy68!P$>b77q`$@ zDer`YQ%Erg^SRIm$c~N!z>anUp9gi^h0`9D^_P0ZtbUTy;I z!j_p%K8>S(xhQ_>DC6@IiFvtaWl5B@A#UBdoNJQrhJpD) zkSh@y8E*1~>GP;zAE5-Wm^DHhAx=i}+|`*#_MlrU!?_G^tcC^LI9+Q_a-M9~@HIn2 z9%W`V)ER0jrKEG|>PF5Rl|BfPVaSuTC`UpWqGDu>Vf05gw6N3@cdF;B8^IkOVnS_3m814EY48(VKeO`&q+tB?Ep6D)j-%o%Wn?dd?-A4P{#9K%9kNnVA zTV7rZx2BZ$x4<5n0r^_VLa2qfw1oP}5~BZIa4N-MsY4dHxjCQMI3PzbPMWliUuHdH zi95Y^?Rh21K{Ge*vNza_L(_Skb!l(!Qofegmn@mwyTo_{AvN6id;QiauC@DCInaQa zC8t|gpTW&%uMKYO%l*OaRw{bua6YG3Y|l5&=GWfd(WOqFqs*UTpOm*l(~uq2&;^rV zFZ9zmxDPGTuRwYwk=q10Bakb91Z>mP1vEi`lW=4wa2vv6N<^&$tOvN-V2VbKKl$R_aj)5D3N}Ps*E?;F zYVR(Sx4hiTOGmCm8eG@8N*q<*+;0BNG%q(+t+SX+mILKoz8g>5hwVP&m)BP)J{K%p zY(J+&%&~3F#-Hdlrd{4@hs}AtE7A}&`OIE?&BsggSE?K(uIpV5k)ZmPGR<4H&N9bp zIpFi%sPFUPod>S}oXe*un`v7?*aU)PNL|RRkadmHvL)zC%F9Z+N~n91A_Ym}i;%fg z$|FrkELQFh_b9Jui%N1cN)~B>^;;o4R0fyI*7cAs2BZuB;X1Dk78|Zs{C&`eVkM~U%BBokl2KhAK_=?2}%P99NO`|MInVeDk5oy#0j6VP# zC8rNGdBJr6RwV%<3?XzWGK+-bAs-2tQuH+|CuBotYk*vou&1A+uZLh&sFnVx8Yg5;V3)9?r_-8pmIQ|l@zf(@TN8QaOT$rTmhU)^u6@GrtHJRkh` zypIZKynuW{L_Zg<4?^#i9;De7xI&4BmbeU1&XquOKf?TPZ0%q(f;uTdBAgU zvxF#{4||Ujx+1n{1H$8vsL#SzTY_FbE7!c-5 zl047w)Vje=-vH(pj6EJ-U$XhxkYI%h>+i4tl_I-?7g z)O~?3oxS|tE1gSbKei;%`o`+XC7aLdTQ>L$UfvX|v6eNI_c}**CqHtTwZeUwEu=*1 zmM(}olPw{|Hf6<}sH^t#iyxb_*m>o>%V#a)%OW$EP2IQIHhIk(zb|j_SZiZV<=iy4 zJdE8ac2$z=V7Bj}U)RFg=wKS8`f~J{f_Isuw=&YDd!i}|O0b2LljtdwG+4}#>`J5o z&LY%;8pcS0uvD4=F-StB`KGUZUF$sUq?oOy!PI&`(7{m#cyNEKDYQQCl-HE~n>Ovg zRM<`Y+q10B#-6&M-)r|ZRw$bdINM0f8~5_v3sdDeZ+S|o=O?Nue!^=4On)L0Ut22WL7cj1NCbjz(;Px z28My;q|X>-^as4waMY_7X{v%Z5;_jb&Ck=y+(croa_58oBL@QyU8-vI<|7$w;|Os6 z#o@!h;7^jji7UIh2o23mc6J;8eeb>8V_3kv_@6%f3zO*=yfy?kS9M7AeQbUJ5kRP* zm2xx2LE*1ck*R)#OF&SZIX;{coXkY=HhyhihwI1zSI54u8Ad)cjYSz$_D`2Nm~LJD z#cyrc@U1VdHs*@V7;no9jH3@2>b0s%)QSM?1Z@j4s9(SousV2wpd^|bdr=DyZ=f99 zh)s=m_1kBhei0W{VbVxaK5F8-H*9=LS>vr1z>#iqcP?sbYk%?_@%h72Af9@AG(slu zm^=tcCowB2-#+w0^fgFp`nVh>BB7E9sGj22Z&>`3EvKxms=ap)KCj8l@C#2r<89^E zPLWlCVXM8%Bi)JTckjGHK}Ka>&UtcDyotIAbPHs126E1UIMWazX=wWqCt$JYN)l8c zk*t!;mQuPqp|E17rhL2D{)AUISL6RAQD0tFEAmzzc|m4YY#%76+p77K5Y@w!Z6H;F zrzvlbi@epttF@M5?Vy*DyDm=z3ep<0kjn>c6Y+ESaEfVsDgu$l$W87n+U7r_q zS1Edb2jm|bmYli-4j{Av+a~cSYKf3r(24;gtJ;GqAR{lIE>XDEXUmmYoVS#e+h!Xd zM9e1Zte+7|8ST^iO$i1hXms3Cu>; z1?=c14$Me^n;M{>2b-kpNZ8M2+9%%{~mPW&|g(dfsF&e4xa z|Ja|^%Tzb8P#<{EEu7+{)&S{*22SSPB>>$RnMYj+HxCR4szID#N^nG0Mgqu7P&EFn{BziyKJ?o;uXj*gC&hdnrxDN1a8tfiX!x{!o2T z?GhuY`ybn6JTp$qAsZgkJ1IAFs zWCvx|*G(e`;5%yvl|ZUnSYI_>hu3E{er~g&mH(2V1KuJJa7_&n^Bwu4y|lzc=c{dY z`(Kn>#37y$hdE(O#|MR0M$PD%n;RB@98ASGQiFO4nnaJZ9{=+SG+>GF_fA6THe=}7OqI1t=)R| z8t=MY3hJ8AngXbzxxLDsLyB@}k0RwUUv$~I4L7}{sxLh$pCNZ4xiSR?2G+U~?LHA! zJUmU*-|BfJ7V(o}o5o>dh%^Fg0|N_5pszj=>48F6fz7F$ejdx;Ron--lDWd=QG8n2 zHe~H6S;yPD_({eUZl5w)@wl##wk7#EsYE}Rha2V*E2qJzX|S@ADsz2*NLGy88cg$J zq{3AeSiM(K_O1>D`WAD(xG!MT%+FH2W#uFf$Q-q<;amE zq-BpBaY0Ov?l&s;9yvn6h`4|c7475Q3VlEw#EfI|-ZP4UBmpcGO40_=96Rm|f5BE^ z;|pvy<1t%>*T#E|mu(*&e@c0`q{O)2R%J8pFY)35jcc|F`w7k!<)I9?o$`Pj*aSoo z%Hg;ZiibXIyv%!Tcr&tLQx+U|=3V-#kufs1N>2%2Wv{gHRmYu@b*tQf@*|4bMggI4 z^CCJFje|jII4tmTly&rT%DX63rMnCo}+Y&_bAjv^robEjjD-!RCtjOREWrj zGBKb365~LWGE`~#G?&(URF5OXub)QckTIt7JXpkUC2`> zbgnF$A2~wBb|!oBulrBq0h`T+s-f1Y#4e6&lxE}0_6j@4rN|cj^-Jk3;ogS9vTwc9oN}Rmu%Z{TflSL*JvzEcmb82 z{Bgd+2xZRO= zgvAciHx!Mw1VZG8a~YBHc{mMOmZ{!1Yu0McQz;CRowecQuQpMbn~|o6D56E90;c7o z9O><&NSw!}Yfks}Ia;(Tz42gq+3Gb^-%<}yeamu4OEn*A{HaPpV~|3b`>6Vy#?`oO(}J9>bsA~L5MoHwf~27i z&14w1cukF0yk7~?SH^$8)GeFweyWo&h5L13xJyL8OBn$fr2HlK4a&H(;+W!d(tQ6( zU*Px-)yrs}(|D(Y>I7PsOngx@q+DnyR8~2}{BY68cr~}v^Tselj>xunJ-!e!K0Njt z$oJ9T!w2&b<+}-?HN=WSGmeT~s}edv_7FBsWyxLsk={U_lK3j`$y`9P(3(CEwCaf z;Bnh>%okdUKLCHy(F|5$S}0=DrDp@@QjA^eF#keG)<0TBn%_bK(u zqiQ!IT8VGmh%ZSbF+U?|@gca)VuA}Zh9X$JAI$ISyZJ{i%sJ=R_x9J=zOjc#&zoo* zx#ynWmN~w6c&kl0wCJTDUOP!!QqzC$ug@tluG?wbdiZ;evftiw4>wIb&v;AfkE81A zLY{?brhE&RL4y5c{X^t7g$wf&D1sE{RB~WJbXnjdry5jN8-G6i2D>SJdjGrWOD`|4 zdI8}iWxMb2d(YT@TBfTkvLvOJoOwoX-L(C;Us_)ssn~qphKW@Z`Daf*{Y&nBo15F- zy7G!Urt>Ry?tG*%ykv8|$$s{drCa%e$v1v+C0{jPElc*RGxnU>QsA4{)c|B~7~CHI zgq(i5oN1qslfrj1stJ8;0{Do0cru`t93)|cb&yEME)*2$E(|FN4W;}h>d{e0{ zHgB25e)OzaXeqTo6+-hgK%PL7l| zo6-!S*@iA`i`#PBN5jxn7&IF7BW!Y4*lcYi{o=MN#c!j;M<+7lKoRAsqGyZVqg;ab zkoAifY`;HG!+djADrh*XREW|URkfDV*yO!HluUxs>`0&~b-&?$J z;o|o$)I#`6(+1f z3ml<#c)yUfl<<&X@ayn}2;8PI8xr^YF1vk@oMwae$|Jvmk7|&d1cUYrU4)RMY-bQ7 zj)!Hqx1s?g(%Z4Qcl3Vy=xavmn?Z+?&$p9C28zoky**eh(0+VL^5Qym^&_hK$kltUQ>My9D z-)ZdWSToqjcdrdxvU=6Q(8*`#8f4L5J5i!+ur&0|ELk$pY;|p#v0#g$q!unb`x^kG zje~33*In*ee!9hc(vtFn#wnwf@$q}86Vh`}iFkx&NHEsq2U`{u8NJ9#ReV08?EHCn@0uQ4Fm*v0BVK6R zICwOHxDoJak*4^B)s{6wMErJM>3dfp@odEI^TC1f8%A|s#LEj5j_-5n0k5Wtrkpra2>+H0y%tS zy=suPQqMI((@iG7+o#fSRyc(L;4nuH@XZHLT%;%Lhk@SHMS)waV6swBuN<8h+j}JY zdr8QqLqi$ZO-ESC7E-bu~ynyt|#*vSb_Qpr^GBsVqA93n+Bt)fx6T)J|145w- zR;s92vOD36)NwK)8!SFBM&6Gr(7(cp*dZS>AwwGoqKg0zH%2_fgsV+jike>fZHt&< zW>JWPaPG74eymP5K}b*r!A>Ye%vs=!Gy&SP9CbpihO<&z;2c7UeTcI5hkY#o z;A%*slIuVJ`Rk2gV@N_3V@TF~wH(wDTi&=0H)M?AZOWOspDk3Lyvul~I; znQOxmtqf=K?L9p|hC(AL&mLu(##yG2|IOe->hBehn_?_ITnze7To{VT9I-z62=Y@- zTm)Qaq0mtf{>IHKXLK1^$;TJ70*!KC0;7d`$V9oPm}u-GRP-pdk7JAnBUY=6sYsD*-q!DJ54X1n1*~) z+)_rRd>456U*Y5Nc=!0sja#4NWK8C3R8|r?8AndWMx1tV$B0l#^f7sFkLYbM{2^37 z$HXDI@@(+?6&*Y=R z(=yGamHgb3oJ{#mBmHY+Cxd|Pp&}=gk}izQ7e?zxCb~e7@l0Z#K@)67o)C}EeE|Mv!4L!f5=Gn=MQG5d07 zZ?uPlI7(?#%$VM?OVfrGMrzBT?R8Qiiy0IuJDMNe;0(nwh9&SLn>DjH9B}^4$Y@jU za+Pbv2Sz%R*UtqtE&I3F|_v zO1`!*7YXi@=tOP?_P_!ch|TB2OV06!L!I_EOtJ`hPmmDNSOx70-!ZF4+F z8W}@4#4GtZRZhn(7JDXRx7^|YcNb)@CS+I;`Z$7>Rk}Y0S7C~DS7$Kk4+LoqheVPB zc&%{AgAgJ*4$z*P4q^6z*3=R+u0A)`()48|fp~=}_uqH_6va0V)>fyzTvGD#uUvk^ z@Vj_Tpw#$GD#b4<#ezv=Z3S8bAdZ%T*LPer*agcaf^|tEJ-+`{0qzmD*3kc=82oL5 z4glM!af`!fTyIpy)qPAkutrZbiFzJKyw&w-y%#p;1B8Wq8zb3XH~z7E@$9v`solvQ z&xo~jG?oJT>_WGe&=}k;AaYR(-VcxPchSIS9*klDv_3x?Dn~r%QIZUJXJMR=4+E6R z0fdxfQ@Mq(BA|TYD?@_&Or&w0jc=k4KVMd~I7`n7u&TdkX3S~xFc+_Nz=Z%(A8 zA=F$sb=u)YmYE~Z9lYXUJXLsB>9txH-=p;hCe}sTLh}~BWc;)xGG|_9qs6l5@U*Fw z&0*3_dA>0tl7YrPPC`p^OC6R+P?OxPTARou;Bo{c0Om1~!AQ`cPMfdPXfbe&E% zC2+4bhBL8*S)3U+YW~iOU{!N?lCrCzGd!U>Xx!
%#5t+7yTm^Z{)9pPFdh-)p? z70Lyb71b@_PUHS~9CyvfrBIBY6sik5TZ@D3`-%{avZo>tk4%nDNlxf(>hQldU@{F@ ze6B#R$59h-4LCf;$#i8BOsn$trrrtrEf(C;i3_~}x@iDw;0ZY^`-c@CBEkZ3AfPz~ zTh$sM^$+)VKRN)dG~vd;h{`d9Bu=A_&^a)ugxH7x?g_?KA39Z`gQTcBOc6MAkyTMw0?i2G4Ox3=#$`p!h`_Y`L;Hvi4>H9YH@*6wq=g0d!E$hD* zUDJ1Iucc2L{Nl{|NW@e>b~R3zw?V zp;DWxuKb-Xwua^g+m?6A>z%gJp{QCKj`?1^;e2i~8IP(~-lUsMdJ`5DdektPc&}Zp zXexjEEACjVQVspUS6=S>K}fBP#oS+cyS%AFwVhUsm4om-L7Iu>ZqOJch{=Ihz^nvT z3i~I*uPVYArIbV}Fk0ivdqsc}JHBX_$tk!(g~3eNa22_Nzzg zj|?;fP%gsZ2_7jxhWXu$I6;@y5P5sVA!i6!WprnT96%~uf+GjGQn>9X@+)YjR4jZ!)5kD34BKK9qOKpkC6^i9 zA3`mUdLi@pgvux441?MC3 zkhgk((=V(k4Qqpqj;_XOv>MZ8t{|pPgT|>!{ypivq(VvLjlFGwnFCe9$#dG2Cp{(A zUgIs3ctut4*mBbEk6^aY$8bzOoCiHlEp{Z0Tc&qJ&3nBe&V=h~oNO!KD>nY6i!0xk z3jEwWe!fP6i)hT6#xBRr&O{nPrjRB35Do5rZoKR)r>hizGei#@EcEL_ULxq%BisjP zauGTRf&nBuV4;%~C(e`MxDOUMpZLGX|G)*$!PS}?Co_4U(&)Eoo=(x%gF^hth9NN{ zIS~9fUQY7v{Lm+4C{vXAACH$eS_5y?P9eW%H#`IV@L!M1Ma5XEIFCNeLW@F|#uAvs zmkdC~1})<@5>I^T=Cv5@qhsS|G#+GAG9rOvT+M1GGp? z(q9fIQo1w61lh#!rnW zwG$Osi?3YK6h*e{s_rOmP~ML99U?sMNo&=1%8ES7;`5x=#@^6m?Sk&L-Ib@t8&H$S zR)JPMvt>&{o}IX$?(4-3PCkdX)qB)tv^?B6K65n}b9gY>3sx%W&zSlTKG6JLuGLYh zI_#?5=5+%Nzhd$s0-%HcdZO`)vc&iuFAaKO$(l@VukFZ3c86N(;Azx7{6b)=j4~|Z zb?JAt=ohqR;7gwrvs;*PIwp346){B9v7{lZ<8vgj+zml+L16R`^i02?uqd;hog*MU@HBR4^4R?frnN{O_yUX8L~fs{*oUk#mR=4 z58|M^Um8YTMf>5R{fDlqSe_bz0*#Tt$-Zjql;&2`N6$b1kqO&fr~JqrbmKn?ao@{_Fw+DR7lgv6sk(OJ;S6o^ zbv2szPs0V#*h7~Gmv6iO$Ey0q0}s5RHiiT1(89gV6O=!`@x~t&<^9*sKe@Tp*=&0G zh8tfpnO?fFcSmdOvuMI=doG?a(u6!N*4iBwwm6M@(U?FFqH$=Ivo&nXCy#&uB_BU> zKc)&#c*mFs?P1y96|EpE3IZaR5qQtB3u^4kk_4Y@+HwfLGbzi?3*M&A^o2dQ{H zDb4&_g%~oP&5P#ZAb{JcSuju~h4yh*7~wL=ZbNxl;2ANFLWl-3J8xtO`HeFqzJX{u zQAu*OTHGQ|5kP<`F@GnmKe&_cl&Nt8-+A?SO{VW&ZQLN!x{f;hj{|h}#}{o^lnyu?Re;4%`?`u`(Ngne^}R9Tif~nmrTpP zL3$E8DNObU_eW5#1aYaVv0A)X+JbyuRM#XX)gA#EaYWh*i~IyB1d*>BNoLk`*Mi6L>AKM?ZN{J4cxl`EzH2(;uHNT;WscR^-J! zV(ZENPbKk?dSU?OU(*nD45x6*4;T(XaCsv39L;zQl^@K{5>yXeiI)&9V z@^4g5t9Dx)_(_gZg;n}rt8e0sk5+`I&6*Z=I$mq(ph^1%tMBnXhUKX%e66Qq_C5*B ze;zDXyw1kb4_q!j-QQs8w|9i^sctk@`gl4rwXtz(2bu37@jO(}x;$@j3%k2G zhI5(-s^Sc{;!lim{9Qe$+C?;1C2~b^=ZV4?2jMLm-7LzQuQ=AUk9Tw;k^>R5h~rRW z__^0ZoA#^f{!J;dbQeGWc2&LoJh45!<~KF?k4;U@-eu~z@ZGZ>KWn`FtIwSq~R|ot5{2Cw2YRP2gZgubCgK#HDx(=O%l4JsUjWBS!M4v~&$lWkr?@|ya zlLuFn3hBk9s2taMqUOy+`5ea^iXNbKFND{Dw&XV{cwL0A>Ztl%brQx8L+D-P&-6nF zjQ&nW6zd@&vlw&sla|BKvnL!3C(W>FsYv*l7shWY^_dp>w$3o_oUzrn(Bv!St9f0S zTm1umY&rY+&l@*-m2Y`-i))=TTlvP;na*0Cn^sk7{B>Xf=L-h7v$TrO#~c7FS1+~4 zN+L6s7!PP#ddq}P%(a-XCC_iD+^3X`u)65iJqGD_Pz&pipl?8JLE8j<^kWzSa3P#8 zk$ft64oj244;b#kDj#(y1XhD6U|@4$=d!TqBAVNK7k(roq4?YxsjL)lFR>GicaSV5J980Y)Hjcndt)VXQTQrK zguW$(WARP!Mo58!YNBOsRI$btNg&KQqhE0dl8DT6j^v*Lr_g-(g76-f361N71c91K zsqV^vXvDi7nP^s33EA&v@2k7y7-O^ z4xKceslgg46#jw%s$^55bENf)>t|Te zKJ>NvF662c5;X1hI=R}kw)J>pMVXO%TAA@mX=&$A?WH*^1P_mS2Kv@(yhAh? zPtw@~Kmkcdza>JokI+uH{Oup4?)TU1ZVZ-BbyV3d6c{jxR6gFqla3ZN%ZL#QfQ zZd8D*iJnhWOIU4N{0m~MrcD-Wsja3y_i}xWtrYQE`D3Lwf2`R`JoTj$Cgfh8Frl>G zQ)0^>E4>pYxI;KTl2+4_(xju6sbgPc92k4d&o>U_pUl6BpFif!Q4NYxE65k>w`TO) zTGRw-aw~~H^ioLoqJ9b#Nef$HHD^yO66>N`AZ&`?{+RZZ%APWI@;giIua(G^W=meP z4^x&g4%S)InTMJxdo%Z@()_08c+cj{Js|q{N~i5T2MlQ}y~BH7){e6L>O-k~%rfQ8 z3eUfc#h|`BC?a<~fVjwJ3&#ez0{7+x%9ufIAdM3^tWI>24;#Zg1WJi5_KXxwUZ$u5 zEu?C4R4;YBOh0)1DGpG@Xh9Ql5TtV{QP3f1sn7|e{J;s$5gvq2N~7#5W+^wpGj{^H zX{P99h%GU4Nd}fbgP%J{6^1kLRsOzIi}`SDT8m22NJyqdmaxraq)N?Xq{hw^^dWuQ z18ZawMj|0Sgf$)}n|&IOP+lN6@kI!fA`XF3LVg+i-WFO!$zVVYVE~BIP|^_20zD4V zcV(c)Fqi1^S^9|vMN8qnG|-R8q0CEhK1D7KyT%H#{QJlsjp4S?_$_3!)F2}}Bao$@ z#@Pv$lD3Jd^gDC>;rv>ntuoD>Ou51@0xAv4rc$4pQanyW!{J4b@@tmo{ymgm1dr!a zwH_eC?Yz69)X*Gmw^P}MU!zFpb<7iJx*$+|Bjw9C@@)dg#GoEAfQzAJ--y;5$#Y6g z;_G`PdLg6A4xLL;kWY@XX5e4d$kH`MqaV>{JCGE zJ!8j5>D%IlJ6=|l7j(!BdgA$WWtvXEPIsscMR}s}6_N)@a9Kb~18&9`KURn->VN3| zmAT3RtdC`l|(ME*K=)AQd^8g{8jwM=2Zp3fkd^)W% z8W<*-$>=cxn>mIvsob!Z7o8AoX*~B_iic9E6pgW*fN$xSvnGi(vrZt%2_+Q%HRbb4 z2m-%{*N42%oM1U!@ps$$eMsRL*OOcf}YkFbsMfPRJXM^q?Jw>=_5 zD~4$0t6iK8P2Zp>8>Ua+aGTVgD(MG^{?On#JLKF?1I&zo8Dn@@xnwg|22d_}wg|gP zzgZf5Yt7rbBV&Nv6T!dZtqgOqgU>(i0Z(bEV}(bY#_q=cM{P1mU=3lIxK$0EIE25^ z4Q#ezJua>CLQcgxA1Bo7)SJf5;P_cbjg1j{iW`ec4#_@s{PqO7*K$l5&HU(|;Dcj$ z`h>kO37#cFuNh;sEmkr)R4W4vIG)Xj1Ho!c`Ua^@Em)VO2H2yG;t^o&635Z>GT9BR z;5JOv11u*+P#6rtIe#)p>)wjF4~SZz>d25EEU!x;pXNoOMaz|?xrdcQ2pW7D0x4j9aWF2CaVJ=4;^;+wKv0 zg6vz_{~SmIl%0E z)c;7Cgj4!oFN=&~(*74^_>_4^=PTlO%J&I0K@bBgVN4y&D_W6~#=y{um`q3$3Xf-Z z7$As>b;i2`hfoh7?TJd=Tm`+3i;dM$O^a@dyob=7T~PfTeoiAx^>*;i8t{fyDqwP^<~yx;u5n3F*Ahyd=a+nw1>A>nNQP)R$Z|g@2Gw? z)D-tP=~DQs1Dj@BD_xAQ!h5g~{ueh0gVK7qV!TV3ly9xPVCAx$f+fL`V!7H`Z!bzT_`vrhzwbCv2AYB4IbqM~noxM^)FXl?D zc;eY7&+pk2GfA1dM~LBKA)1Z$SthTGs1Ky~raz1C^O(PL^F07+0q((doTRBNIU+*_A|qT7EOVZ?i0%cwEKc4vVn|AF-w3a^T|K9+hA`lPC~KsdIV0CL0j-KOJypSD~BStv$e$S zk;(@mv{ME(y^Qgd#yJ_a;~C5(ZjT&ae2(HR_!dR^>=8ovizBqs&Rq$XC{0axu5q@N zIa)w17F1@zY@d0)SP7|s6+@(5av5Cfwioad9G})0VAQ&pYDg7|xYl~?t=91yf?ipd zc?mod%>e&SS7Ab?v{aa|FOX`^fiqOXtkVbvTrGhuvKjREBkqun?xY1N{YllfMCR@7?6 zbt^CPt@^yF)ruFT#4EDY1(Cx~u)yWAwqWrbEdKO?$Bam&Obw$s7l&pr8)BU}?CIH2 zVo07xF+kI2FqG#dr%^8vj3va|P42rX>Fx7*KY44ho|}NZVB)Jh!lv?{yzX|tz1RO$ zCSswd?A|14GNRcTS0=24&Cg!L@hYwROt|t~V-Q25s;eIp?F^ zRh=a7KM+RzTs<@at>Jnz^J8-sOcD90GG4DA?UO%vvj=sTTRl2=@905UC|53&%W%(* z-JPs1g>Zulx3U^e2c-RLAke$5ms=((D%b5r^$~{!S8oyX&6V=97(^2=-dXM7^UV}& zn8WBSDi>f;2bJe}1!@ni9jjc0A1zV3Y3wqn*5_IIQ z$2Bl>6vuPxceLa15!(&@lCWsULFDK^kRQktb`I1pP7&E<`EkXv#Ha?z92+}elfuXM zAtiRBVcB+2<<*={Qk7ZSyK`r(B`~yQYo`0K`IgHbYn$~x7|NDvMy+ETCr~o z24~jVpjrmDSbUpL`-L>jM`17$GpAwdTdjrytp31MqpTKrBwkWfW4wZfP6hE$Y1~xC z1%O%PXm0$@<2r3PM+Zm+Ov^%V&h~A5PKUIu;toVVF1IT-B;*UO26ll}6&IvP37YNZ zrQuX{@!GPe|4NN!vT9TRdl>cmyy8QP+K3ZALqGIxgM*1=qm zG`J+{TL1;siK$6Z!h)%$&Yn-zd62YH2`fDASLTmD*FLZ9#<|4oU5s~dV<1{jjy3E? z8J?hn&9&AGEj690t-6V~tK9T4^Xa*)W9~-Uee@$O=0WKfOk9ICoq6v~>|EfcWXng6 z((W7Q9N9VZ>7PgkWa3IU%8H*}r)}?ECu^G%MqHL>f%}4eGu~}{_c|UyvEvNj@oM1R zYg(V4Uu0N<*VVxC-5~kyHG8*uaG6p!!s7(Xa4bP>1!ZD%)dsqqy&J9dMv?fScDW46T!rUC?PqSXoTJBY3^Z7XW;-E6#XPdd6cWy zO-m{ZWv)A4z~XdODPtit%(rL(Uxh=baJ8t0`w$3N1X=KTd(e@|)g>;8^`A~0`oS6- zevM0Nrn~hM5Nc`Xpf1r@y};Z>-{pJevskG5Bl-1>;^2XW3V)Y67E~-YrvA4Cq()O_bQC_EDKk)FD&(88gd=`j2PlRo3;MfELP6+IT4}MY) z?Ra4OmM!M9SNziz`}WbN2hEu+TX2hZ_Vt}JHDJEN6J6?$n6ESsZ(IX!>*_t?x%uqA zeRzfLA2j3JAK0;F3++U59B2IsI};Hvv^4tGY#M4-mTVANUvr_g_AeyCdbyXG9y7su zlL=5R>?FDac77PxG^k){S&fpbINUJ?ITk9n)PK*7B-zL!QQC`h=QeExC6@(}8_J*N$Um zm=<{UE0O4Oy@*i+lRGHCRsGm8p{Xn}l4(FP_Ls^D(ES#Si=Y=-u3SeuTiHBWrBm)fn0cJp}_18orE@ON6fF=ZSW)%uSy#i7lW@!A$& zdVKKp&qlbd$QwKdfRU49ZgA!Ajz?a92-H)ZBbEh!Xi=>7!sT>NeE>PzwWF!RejbDi zQ6IH}()_f=DGeSN#&w_xrVw134qY!g8!8_iJPdSKBOR5vgLE*qar8#zOALrJV8DHU z78qcv3@`u?&VjQ*;zDdMz+MFGDL6EEHhBCTdlRb3&g_GZvzE{Of0lB;FB`lp`~eyT zAF2N+TCley%;jKTi)Ll+=^6$p@C#%F{L;9i8R|>RI?x?2q86UvBjhAI?K!)kE?PTO#zLkxl`<5+iTxT%W!Sau_uZBIH zrL4OpcUrzMi#4IVQ>Qex(aFl#yv9b(7NhYzzK=tGBCKT_wExyHJlisErKseDa1 z@_6MeE+DFVD46$#;2nv*E+58Trkrw%#Mm=VXT(A~@(Sd92$=C9RAZfxVk zJey@JHu$K9|9|eIFIi$U`GPQ;2_aNs+>y+sglJgjc>U%3^-=M3xqA>66)f3u24Q(E zf>X&5Sc<|Ac+pPWF~?CF{>$(F!>CFEUv*Vy%x$1h7NRkB{2TH&^VvVxy~n?`54d*w}yQ10(*+u2XxT z?pPT=CpdWU+Vet}4##^|w(WS|o?g$Yr#Bo}yYi}Q&WD_!0MBtL(*k5^_O_?A2;5~= z)h?<%m%27ASB|j~jP+nD)|@|GAE`ZsTCNKcY3=u6-RVC7mx406UTRtk^fd4-~DkfMBXKPDl|~EbG`J4 zw2U4GKK5Z*UL|4xVzd>yFl@_V4V`_{F5ZpC>y>!GIx@Df)RcO44WoLwW{#r0!G}0>TFC!MjhvM;2&1O?|~K%|5CjmH7^!k zX*a9C!ODw*8Ow6+-DuSt%R6veb;I)B*#I-f4>`|beUh}_S<+Vt)?pn6%K9r22cxL! zvzC2cVwxmDndPOR5U|g@P33CZQ{oNz9*0f+Y)`n#pgi#IlE$_az-aau2XyYk@WxCG zD;1+4B=n*asNS}bcUtwTQh`ZSu3Xd<3^r}U!6@VpuL=7JuAjH@EnNa#4}yc9IPz$F zbGWrN+}!bK;RFx{W@(~az$*-rQWeN$;2JPuQWXlb#A+@;NGKOU>K4tFv@r0Ucjlep zd%1T&+F<+7zMr~eX_U(HH$Uj=YBqn*dVsgOM!N7nG)6QwRO7r>EwOG%vEJifsRl4F z>m1zyR2~}|8oOJ%^byx89Ls>C2kZNMk}+F63C_@h$txdTDrT~S*k^1hdc|n=r!j9= z$a9M)>>;P$bFN>j_2^jnb<7j$^xop(hv$0O4o~)%ET@0@a>Pk??BHM*3^GQU=<197 z`V5Nn&dhj2UAQ)_^Y~@Bu4wZk)^nNG?^)M`RCo_{K&N5td>nnko{>-sR;b}0two#B z@=n4yf2KLLs|ARt7`tBxQ5jOWBb2)=$^+^^|5;nKe>PG z0R1i0pnZLt*W9h;WSWBqbFv<&Oc~YjL%Lq8D5p~x&YZ>SGiD69LO848P2*y`)A?FC zxd$%79??9%b9cHw)3EB;A_J0w8B!qK8#u%L5$f@JpYjm(E%KPU{@`8Pwf&C$h^;|v zTjoOxvBR19A7*q6m$o__xc@$;nfrp_;9{V@FJ@~Wi8P`Q*f%HRTdUAs*OY9r+SXvp zrp*IT_Yc4jQ~2U^wmCxRsSxa(F>G`C}2?*@}~z}y}Lf=P>&;oaT=>f z0Kwv>thyq;-qE9m)Rt8(xb}2N_bqiLJ=Nay22`U+p?;z+*Z~#*S2Vp z0)z$HMvw=30OnDEI?E;X6_8~HxtSN>!1=NB&(DX)0%PwP@IW6}vjMcS$10n=%t-0V zv9Uz3b^W%rJ)Lbk_CXgf>a+lTUl?I8&p8Q)pP)=hoCLnUlXa!txXEiOsJ33}p$yROXZ-qgZI?5ARZC#SzZr!H4Arnb1_qs$MP&d_vJ&KFcYv zqQLkhR&O>!{t%;FsQzOr2kbWUiE{8FiGhFNCe**}}%v65wR{D-_M-)TgBFr-!g;A2^;qSQz_lZf?7G=8C_(c~515rmrsCp+c*thTnVF@QShi=ElAYg6BUOoB4}SV9nIs zA2Q}uU3=(eZl)@Dc?tO9;u#@hFt2}wfVFb;!f2-!Zu`7?vaEjow!(|*k*lvhqKYe} z*S&n#T`#Zu8@i`@3lFS3Ul#NzxH6=1^gA%$IpBca2)pRe{hLRjhu92d5^utmqXyW~ z$zAQqWc#ksW1|NS;8GXM)mSyCNA>;X{rU&TKNt++QX4V9SYs%`Jy;#9oS4VM(2+zp zLfCM^@PjnQk8-J^m!QzOVemNg(&lf@$F6{KC9E#!=D)~WzolP}k8@tgu!tW%`GrS$ zS#d1BLoMgT`Z~)@EF)>5Zq*X}U*z6?Jj~{#e3>lrL`Il~Qb`S$O2S~2FKSl_*+Y)R z*ve%{zk|%ps%wqt5T0}bDXIYt%21fSstYT+x;AumyKOhTDul&Pak1;Zt*5MeAsVRgJzs+7jZ`B(+$Jds4e(}IB}R}>hWuz5ho0-!AR z^Js_qn`??sZ1@De>Wb=a7$%sDr~YBxXYi$h+@^x!7iH(LB56lhC1L*!%?|n_?(wFq{hzwGg0TC=wH>+{eT z1PzzLJ6H~CL3y$m;ex*#ZQ(U^bzI~*4u}Zx9c-vrE^$sJ$pg!*&_uPD>h5B{=@j4v z9b~{8H&lImya>j{dmYS$@o@<23UfjJ$oIg~Ag5#0>0=`&9&<;%*f=&0x?=q~diGfL~z{2sUA6zGi5PjclPgA|O@*@FY{qI-k~ zEx|0UIAn;L=e;BJG0)JhArI{_pArG{5A>V}d`vztw_6FGGq=n8#nrvNt95Z99Ko?% zc#-~U$1c`@SO4H}sL0(6fS?JyptCe|EtHDYzDF9+7xppq2@P!b2>dt%Ft(Mk+ygB+ ze~OD^rPY^JE4?MI3~7NkY(mqz#Fxi;nC0*IB4Y-!Ko6iQq61OzBE7NIA8d<&bwD;$ zpj)iGg0#vKSGhl71dk?^%gobMy(oBY*^(ba7=6!_e_rB+Or>*TBZwGtS>!=gtPCi$orTn+sZ@=i6f7pM_MZRDoUD_D*36yjQ zJS&4QSMA-Uc2%-1!K{EGi*>6zy^$T$K&v2+ay)Ald&BsY`EvH!sjI@+oEav3tzQ9d z)a@7AXHhqnxJMY~s0uStUI(q&{Q?x}s5o#i z%vLqvdlntVES>bJjp~;+PC*lSO2I`P4<5*>YW6^|$%loIwl)ZhZ-l?yf zSEE}yRcNGetTk4sRi|{6Dvy81Obm}PnsYNSP_mC8p2%+MN3x}e7U}5eZLb__@9pVO z4^@t>IIpLrrRTgA>LDw1k1r7D2n5VKyv_Xk1rcrb${+O~dpgX{_TJuhdaVOal$!CT z*@-usIYh5<=!s^p`4W=*DB=q&g}u!?DB$b#1_ItrU*J;+a+*%BfF<+j-)lE%?9Y8C z+P>L_BWhqXXJ;=Y>_v^8s|^gYBQ2;aU_=M~3@qxL!c536qind&iAU+YJE;F~vu1ag zC0CQZ+1t?aOP6LRZO^0ou8Zu@e-Le5=WDiU4qww9<|~Jf5{C01{Rl7cl!hQnvZEt9( zDTH?~MqU_cc+4qlW5Q~?7am)_5u`Zf%6drD9O3 z3gt2b&&C!o1%x)yWD>$M09>W<4>mF~u30Ms`bnfvOFUgffOLMurlPfB3>LD^I`D7@ ze8<7o9JIzJVU~#)e13;;$US?FU>{{m292<%i)sobv zSH{Kf^ZC*D;N;`EMvp_a`8|Ds{ZDQg8MyL-PwiC6ZgV^rfTgg#(Mg-UcK>@#llJd& zYW8#NjgGF?24AZkmI;u`t-LmH-hX|CY2J_<-Rp8AQ7GW@Y#O+7|C8I+x`s$|G}@1% zh!sxF_8oU4t;~+XQ5TYNo~^!fTf3m=#-~~Nx#U0yx8WJ2P|iB#s1-)%Dvw%W72&U0VGZHut*{N@ zA6sENY(HMN!VcVj#|pcZ1LU;A9;KhIbzhh@qIqL7JTV`R$I_{(bSm#Q5=PQU<*ziR z3yEmfidjDgjBGBRPKAdCH&}NrHd02mnn&))^l&~u6`snbli`bynUP4O!a0Y0i?`gfiNy|3ZoMSL3s6PE*80Ry3^~CQ;wjVVU(ChUBdWg zkxvq#i>#V)P6>p=aHz=7u18)mq#lG(KEIWLi?{XotG1+?eo(Y9iH>GjRD9gl?`c2O zPAX|+!|JXB8Uq(KkefWv9{E6Berm$1TQknoYo#^{V$fQF^c}R4R)N{G+q*DKV0x&R z)=(eyW4e3}t)+F?m2nNsejnHNoXKkUav<*8_cff*-U3cj;Mi1RELl(muMBE~Cro3VJWSkFKQm(^a$|Ho^z#YWe^jqQi6zT}#)|2Qht( z(gek5k_?)nX_}!pT~D)=pd_UzO*mhRvXrAd73c`f(G4_DAEuAcjdT;;Ot)a7eU$!$ zZl#aX$LLS#HcW=^ppVm?^a;9)?xsJZd+1*JbNVFRM}I+|qEFNP^Z@-O{TKQSJxHIW zhp0rKqtDY{(Zlp#=@|Vt`T{*d|D7JCFVbJrWAr!lI8@VLqA$}Ebez6IPtsTEYxH;Y z6g^FUPhY2RU=r|6dWN2*Z_#t~ZF-)*L*J!;pns%)qVLi7=>>X`en3B@m*_|IWBLjG zlwPKPrdQ}^^grlT`Z@iA7U-AQk^efqLI0C}MgKx?(*L4=rTQfuBk*i4! zsLg7N+N!pxL1;f$sO@Tp;*ZCSNDSnijAYY=)MV3AJoljj=-QP?Clc{YI^)Zv^U-`d zlFMh~nVc&bPs~R0Mzn!nn9RmgvrZ1-jw6+6moX-LTuI^OQds# zZ!!|iX47-Brrv6d8{w7@YJ!vLxs<0Sxl4u%8Ew{>w-r#lqmW9ZW3x8CX!&%e0biN5 zi$k23UBJXP5sl3{CerzQI_Z@^GM&eYh+>m~cqGLzv~jQrRW3}IU_RUv_kF~BYI>$l8wew4GGSgyT&a-;--5pj_fn( zIU{Qa#>8fv;u;yU=i^Bu>xp8lOLB>^S#L6mHl<_HJcc^Ig!5wD8=ah7jI>r$MdBDc zvq|wr)8b7FG3=Q{G-kMfPOTG(H)bjptqYY&tVD9~pAUfIVqUMiWkP zjSMy90AEp2Eg6rwCZaiGA`0@zrDHK8>jJjsIqt@TSwjR}xqLJm0j>CA>CAj&G94@M zXzpREisV2cM#`6)ivs|Wi2}MQrA6aOTMU(Or6Nf;~S|NKQDWjAS%n*!W_fF2pAd+l-OO*iyz^ z&X${rXYBcGAvWurh{xsuwuVerFwN++?Dj$`@0deJ8F^bQ9Z%Vl0K!QHUp)GkNoAu%Ub;17@DZ`*~v`ot}*hF9nC}Q%I3x zMxBs=YseZgBYp&L`!n$vz`KYxZKuWMz~s&qfQ>-x$dIcVv?0@^*O-jwtLW9ZR6ryj zo%T&e^HDI2XktDW&oyM?jHm#JTil;WGyY)g<2HDb(dl>$qZ=4Js+rE>CdMgr0YK0o z(ldhCC$fdyj1ydB5}4samqYYTL|wU9JO`GX^BzH;r_ozr7Ey=f&(3H*pN+=yPIPA+ zL!9fw>2#87>=c1`3P={s#%3JyEpI+LYeeUw^AYauLWbG@u#34bhZ+QsV;GWw32}(X zS#OniBj7nmCn>q98jz%EO!}5?fa3j&G0C`=;*y4)3(6xbubjFM!pB0rw6ftdIuaC78`*;f*LIGsWmZ$cJhE}M%K(BQimg{display:block;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled) .el-color-picker__trigger{border:1px solid var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;text-align:left}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px;word-break:break-all}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size);word-break:break-all}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret,.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select-v2__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret,.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret,.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotate(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;line-height:var(--el-tabs-header-height);display:inline-block;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item .is-icon-close svg{margin-top:1px}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;width:auto}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item-status-label,.el-upload-list.is-disabled .el-upload-list__item:hover{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5fae\8f6f\96c5\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}body{background-color:#fafafa;margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}#content{margin-top:20px;padding-right:40px}.brand{color:#fff;background-color:transparent;margin-left:20px;float:left;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.source{border:1px solid #eaeefb;border-radius:4px;transition:.2s;padding:24px}.server_info{margin-left:40px;font-size:0px}.server_info .el-form-item__label{color:#99a9bf;height:40px;line-height:40px}.server_info .el-form-item__content{height:40px;line-height:40px}.server_info .el-form-item{margin-right:0;margin-bottom:0;width:100%}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px} diff --git a/assets/frps/static/index-cd02d3b4.js b/assets/frps/static/index-cd02d3b4.js new file mode 100644 index 00000000000..44b23d272bc --- /dev/null +++ b/assets/frps/static/index-cd02d3b4.js @@ -0,0 +1,74 @@ +var TL=Object.defineProperty;var ML=(e,t,r)=>t in e?TL(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var AL=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,r)=>(ML(e,typeof t!="symbol"?t+"":t,r),r);var Iee=AL((Or,kr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function mm(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function At(e){if(ye(e)){const t={};for(let r=0;r{if(r){const n=r.split(PL);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function de(e){let t="";if(Ue(e))t=e;else if(ye(e))for(let r=0;rgd(r,t))}const Re=e=>Ue(e)?e:e==null?"":ye(e)||je(e)&&(e.toString===KS||!Ee(e.toString))?JSON.stringify(e,qS,2):String(e),qS=(e,t)=>t&&t.__v_isRef?qS(e,t.value):Qo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:yd(t)?{[`Set(${t.size})`]:[...t.values()]}:je(t)&&!ye(t)&&!XS(t)?String(t):t,mt={},Zo=[],or=()=>{},kL=()=>!1,NL=/^on[^a-z]/,md=e=>NL.test(e),ym=e=>e.startsWith("onUpdate:"),jt=Object.assign,_m=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},BL=Object.prototype.hasOwnProperty,ze=(e,t)=>BL.call(e,t),ye=Array.isArray,Qo=e=>Du(e)==="[object Map]",yd=e=>Du(e)==="[object Set]",N0=e=>Du(e)==="[object Date]",Ee=e=>typeof e=="function",Ue=e=>typeof e=="string",Zl=e=>typeof e=="symbol",je=e=>e!==null&&typeof e=="object",jS=e=>je(e)&&Ee(e.then)&&Ee(e.catch),KS=Object.prototype.toString,Du=e=>KS.call(e),FL=e=>Du(e).slice(8,-1),XS=e=>Du(e)==="[object Object]",bm=e=>Ue(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nc=mm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_d=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},$L=/-(\w)/g,Sn=_d(e=>e.replace($L,(t,r)=>r?r.toUpperCase():"")),HL=/\B([A-Z])/g,Ps=_d(e=>e.replace(HL,"-$1").toLowerCase()),bd=_d(e=>e.charAt(0).toUpperCase()+e.slice(1)),ic=_d(e=>e?`on${bd(e)}`:""),Ql=(e,t)=>!Object.is(e,t),ac=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},wm=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let B0;const zL=()=>B0||(B0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Dr;class WL{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Dr,!t&&Dr&&(this.index=(Dr.scopes||(Dr.scopes=[])).push(this)-1)}run(t){if(this.active){const r=Dr;try{return Dr=this,t()}finally{Dr=r}}}on(){Dr=this}off(){Dr=this.parent}stop(t){if(this.active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},ZS=e=>(e.w&Zi)>0,QS=e=>(e.n&Zi)>0,YL=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(f==="length"||f>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":ye(e)?bm(r)&&s.push(o.get("length")):(s.push(o.get(Qa)),Qo(e)&&s.push(o.get(gp)));break;case"delete":ye(e)||(s.push(o.get(Qa)),Qo(e)&&s.push(o.get(gp)));break;case"set":Qo(e)&&s.push(o.get(Qa));break}if(s.length===1)s[0]&&mp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);mp(xm(l))}}function mp(e,t){const r=ye(e)?e:[...e];for(const n of r)n.computed&&$0(n);for(const n of r)n.computed||$0(n)}function $0(e,t){(e!==mn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const jL=mm("__proto__,__v_isRef,__isVue"),tC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Zl)),KL=Cm(),XL=Cm(!1,!0),ZL=Cm(!0),H0=QL();function QL(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ze(this);for(let a=0,o=this.length;a{e[t]=function(...r){Ls();const n=Ze(this)[t].apply(this,r);return Ds(),n}}),e}function Cm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?vD:oC:t?aC:iC).get(n))return n;const o=ye(n);if(!e&&o&&ze(H0,i))return Reflect.get(H0,i,a);const s=Reflect.get(n,i,a);return(Zl(i)?tC.has(i):jL(i))||(e||Fr(n,"get",i),t)?s:St(s)?o&&bm(i)?s:s.value:je(s)?e?xd(s):ln(s):s}}const JL=rC(),eD=rC(!0);function rC(e=!1){return function(r,n,i,a){let o=r[n];if(us(o)&&St(o)&&!St(i))return!1;if(!e&&(!Rc(i)&&!us(i)&&(o=Ze(o),i=Ze(i)),!ye(r)&&St(o)&&!St(i)))return o.value=i,!0;const s=ye(r)&&bm(n)?Number(n)e,wd=e=>Reflect.getPrototypeOf(e);function Xu(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ze(e),a=Ze(t);r||(t!==a&&Fr(i,"get",t),Fr(i,"get",a));const{has:o}=wd(i),s=n?Tm:r?Em:Jl;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function Zu(e,t=!1){const r=this.__v_raw,n=Ze(r),i=Ze(e);return t||(e!==i&&Fr(n,"has",e),Fr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function Qu(e,t=!1){return e=e.__v_raw,!t&&Fr(Ze(e),"iterate",Qa),Reflect.get(e,"size",e)}function z0(e){e=Ze(e);const t=Ze(this);return wd(t).has.call(t,e)||(t.add(e),di(t,"add",e,e)),this}function W0(e,t){t=Ze(t);const r=Ze(this),{has:n,get:i}=wd(r);let a=n.call(r,e);a||(e=Ze(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?Ql(t,o)&&di(r,"set",e,t):di(r,"add",e,t),this}function V0(e){const t=Ze(this),{has:r,get:n}=wd(t);let i=r.call(t,e);i||(e=Ze(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&di(t,"delete",e,void 0),a}function G0(){const e=Ze(this),t=e.size!==0,r=e.clear();return t&&di(e,"clear",void 0,void 0),r}function Ju(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ze(o),l=t?Tm:e?Em:Jl;return!e&&Fr(s,"iterate",Qa),o.forEach((u,f)=>n.call(i,l(u),l(f),a))}}function ef(e,t,r){return function(...n){const i=this.__v_raw,a=Ze(i),o=Qo(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),f=r?Tm:t?Em:Jl;return!t&&Fr(a,"iterate",l?gp:Qa),{next(){const{value:c,done:d}=u.next();return d?{value:c,done:d}:{value:s?[f(c[0]),f(c[1])]:f(c),done:d}},[Symbol.iterator](){return this}}}}function Ti(e){return function(...t){return e==="delete"?!1:this}}function oD(){const e={get(a){return Xu(this,a)},get size(){return Qu(this)},has:Zu,add:z0,set:W0,delete:V0,clear:G0,forEach:Ju(!1,!1)},t={get(a){return Xu(this,a,!1,!0)},get size(){return Qu(this)},has:Zu,add:z0,set:W0,delete:V0,clear:G0,forEach:Ju(!1,!0)},r={get(a){return Xu(this,a,!0)},get size(){return Qu(this,!0)},has(a){return Zu.call(this,a,!0)},add:Ti("add"),set:Ti("set"),delete:Ti("delete"),clear:Ti("clear"),forEach:Ju(!0,!1)},n={get(a){return Xu(this,a,!0,!0)},get size(){return Qu(this,!0)},has(a){return Zu.call(this,a,!0)},add:Ti("add"),set:Ti("set"),delete:Ti("delete"),clear:Ti("clear"),forEach:Ju(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=ef(a,!1,!1),r[a]=ef(a,!0,!1),t[a]=ef(a,!1,!0),n[a]=ef(a,!0,!0)}),[e,r,t,n]}const[sD,lD,uD,fD]=oD();function Mm(e,t){const r=t?e?fD:uD:e?lD:sD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(ze(r,i)&&i in n?r:n,i,a)}const cD={get:Mm(!1,!1)},dD={get:Mm(!1,!0)},hD={get:Mm(!0,!1)},iC=new WeakMap,aC=new WeakMap,oC=new WeakMap,vD=new WeakMap;function pD(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function gD(e){return e.__v_skip||!Object.isExtensible(e)?0:pD(FL(e))}function ln(e){return us(e)?e:Am(e,!1,nC,cD,iC)}function sC(e){return Am(e,!1,aD,dD,aC)}function xd(e){return Am(e,!0,iD,hD,oC)}function Am(e,t,r,n,i){if(!je(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=gD(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function Jo(e){return us(e)?Jo(e.__v_raw):!!(e&&e.__v_isReactive)}function us(e){return!!(e&&e.__v_isReadonly)}function Rc(e){return!!(e&&e.__v_isShallow)}function lC(e){return Jo(e)||us(e)}function Ze(e){const t=e&&e.__v_raw;return t?Ze(t):e}function uC(e){return Ic(e,"__v_skip",!0),e}const Jl=e=>je(e)?ln(e):e,Em=e=>je(e)?xd(e):e;function fC(e){qi&&mn&&(e=Ze(e),eC(e.dep||(e.dep=xm())))}function cC(e,t){e=Ze(e),e.dep&&mp(e.dep)}function St(e){return!!(e&&e.__v_isRef===!0)}function H(e){return dC(e,!1)}function mD(e){return dC(e,!0)}function dC(e,t){return St(e)?e:new yD(e,t)}class yD{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ze(t),this._value=r?t:Jl(t)}get value(){return fC(this),this._value}set value(t){const r=this.__v_isShallow||Rc(t)||us(t);t=r?t:Ze(t),Ql(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:Jl(t),cC(this))}}function L(e){return St(e)?e.value:e}const _D={get:(e,t,r)=>L(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return St(i)&&!St(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function hC(e){return Jo(e)?e:new Proxy(e,_D)}function Sd(e){const t=ye(e)?new Array(e.length):{};for(const r in e)t[r]=wn(e,r);return t}class bD{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function wn(e,t,r){const n=e[t];return St(n)?n:new bD(e,t,r)}var vC;class wD{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[vC]=!1,this._dirty=!0,this.effect=new Sm(t,()=>{this._dirty||(this._dirty=!0,cC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ze(this);return fC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}vC="__v_isReadonly";function xD(e,t,r=!1){let n,i;const a=Ee(e);return a?(n=e,i=or):(n=e.get,i=e.set),new wD(n,i,a||!i,r)}function SD(e,...t){}function ji(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Cd(a,t,r)}return i}function en(e,t,r,n){if(Ee(e)){const a=ji(e,t,r,n);return a&&jS(a)&&a.catch(o=>{Cd(o,t,r)}),a}const i=[];for(let a=0;a>>1;tu(Jt[n])Nn&&Jt.splice(t,1)}function AD(e){ye(e)?es.push(...e):(!oi||!oi.includes(e,e.allowRecurse?$a+1:$a))&&es.push(e),gC()}function U0(e,t=eu?Nn+1:0){for(;ttu(r)-tu(n)),$a=0;$ae.id==null?1/0:e.id,ED=(e,t)=>{const r=tu(e)-tu(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function yC(e){yp=!1,eu=!0,Jt.sort(ED);const t=or;try{for(Nn=0;NnUe(h)?h.trim():h)),c&&(i=r.map(wm))}let s,l=n[s=ic(t)]||n[s=ic(Sn(t))];!l&&a&&(l=n[s=ic(Ps(t))]),l&&en(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,en(u,e,6,i)}}function _C(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!Ee(e)){const l=u=>{const f=_C(u,t,!0);f&&(s=!0,jt(o,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(je(e)&&n.set(e,null),null):(ye(a)?a.forEach(l=>o[l]=null):jt(o,a),je(e)&&n.set(e,o),o)}function Td(e,t){return!e||!md(t)?!1:(t=t.slice(2).replace(/Once$/,""),ze(e,t[0].toLowerCase()+t.slice(1))||ze(e,Ps(t))||ze(e,t))}let Yt=null,bC=null;function Oc(e){const t=Yt;return Yt=e,bC=e&&e.type.__scopeId||null,t}function ee(e,t=Yt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&n_(-1);const a=Oc(t);let o;try{o=e(...i)}finally{Oc(a),n._d&&n_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function xh(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:f,renderCache:c,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Oc(e);try{if(r.shapeFlag&4){const b=i||n;g=kn(f.call(b,b,c,a,h,d,v)),m=l}else{const b=t;g=kn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:LD(l)}}catch(b){Al.length=0,Cd(b,e,1),g=J(br)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(ym)&&(m=DD(m,o)),_=vi(_,m))}return r.dirs&&(_=vi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Oc(y),g}const LD=e=>{let t;for(const r in e)(r==="class"||r==="style"||md(r))&&((t||(t={}))[r]=e[r]);return t},DD=(e,t)=>{const r={};for(const n in e)(!ym(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function ID(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?Y0(n,o,u):!!o;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function kD(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):AD(e)}function Ct(e,t){if($t){let r=$t.provides;const n=$t.parent&&$t.parent.provides;n===r&&(r=$t.provides=Object.create(n)),r[e]=t}}function De(e,t,r=!1){const n=$t||Yt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&Ee(t)?t.call(n.proxy):t}}function ts(e,t){return Dm(e,null,t)}const tf={};function Me(e,t,r){return Dm(e,t,r)}function Dm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=mt){const s=$t;let l,u=!1,f=!1;if(St(e)?(l=()=>e.value,u=Rc(e)):Jo(e)?(l=()=>e,n=!0):ye(e)?(f=!0,u=e.some(_=>Jo(_)||Rc(_)),l=()=>e.map(_=>{if(St(_))return _.value;if(Jo(_))return Ua(_);if(Ee(_))return ji(_,s,2)})):Ee(e)?t?l=()=>ji(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return c&&c(),en(e,s,3,[d])}:l=or,t&&n){const _=l;l=()=>Ua(_())}let c,d=_=>{c=m.onStop=()=>{ji(_,s,4)}},h;if(nu)if(d=or,t?r&&en(t,s,3,[l(),f?[]:void 0,d]):l(),i==="sync"){const _=AI();h=_.__watcherHandles||(_.__watcherHandles=[])}else return or;let v=f?new Array(e.length).fill(tf):tf;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(f?_.some((b,x)=>Ql(b,v[x])):Ql(_,v)))&&(c&&c(),en(t,s,3,[_,v===tf?void 0:f&&v[0]===tf?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>pr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>Lm(p));const m=new Sm(l,g);t?r?p():v=m.run():i==="post"?pr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&_m(s.scope.effects,m)};return h&&h.push(y),y}function ND(e,t,r){const n=this.proxy,i=Ue(e)?e.includes(".")?wC(n,e):()=>n[e]:e.bind(n,n);let a;Ee(t)?a=t:(a=t.handler,r=t);const o=$t;fs(this);const s=Dm(i,a.bind(n),r);return o?fs(o):Ja(),s}function wC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Ua(r,t)});else if(XS(e))for(const r in e)Ua(e[r],t);return e}function BD(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Et(()=>{e.isMounted=!0}),tr(()=>{e.isUnmounting=!0}),e}const zr=[Function,Array],FD={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:zr,onEnter:zr,onAfterEnter:zr,onEnterCancelled:zr,onBeforeLeave:zr,onLeave:zr,onAfterLeave:zr,onLeaveCancelled:zr,onBeforeAppear:zr,onAppear:zr,onAfterAppear:zr,onAppearCancelled:zr},setup(e,{slots:t}){const r=dt(),n=BD();let i;return()=>{const a=t.default&&CC(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==br){o=p;break}}const s=Ze(e),{mode:l}=s;if(n.isLeaving)return Sh(o);const u=q0(o);if(!u)return Sh(o);const f=_p(u,s,n,r);bp(u,f);const c=r.subTree,d=c&&q0(c);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==br&&(!Ha(u,d)||h)){const p=_p(d,s,n,r);if(bp(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Sh(o);l==="in-out"&&u.type!==br&&(p.delayLeave=(g,m,y)=>{const _=SC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=y})}return o}}},xC=FD;function SC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function _p(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=SC(r,e),x=(C,T)=>{C&&en(C,n,9,T)},w=(C,T)=>{const E=T[1];x(C,T),ye(C)?C.every(A=>A.length<=1)&&E():C.length<=1&&E()},S={mode:a,persisted:o,beforeEnter(C){let T=s;if(!r.isMounted)if(i)T=p||s;else return;C._leaveCb&&C._leaveCb(!0);const E=b[_];E&&Ha(e,E)&&E.el._leaveCb&&E.el._leaveCb(),x(T,[C])},enter(C){let T=l,E=u,A=f;if(!r.isMounted)if(i)T=g||l,E=m||u,A=y||f;else return;let M=!1;const D=C._enterCb=O=>{M||(M=!0,O?x(A,[C]):x(E,[C]),S.delayedLeave&&S.delayedLeave(),C._enterCb=void 0)};T?w(T,[C,D]):D()},leave(C,T){const E=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return T();x(c,[C]);let A=!1;const M=C._leaveCb=D=>{A||(A=!0,T(),D?x(v,[C]):x(h,[C]),C._leaveCb=void 0,b[E]===e&&delete b[E])};b[E]=e,d?w(d,[C,M]):M()},clone(C){return _p(C,t,r,n)}};return S}function Sh(e){if(Md(e))return e=vi(e),e.children=null,e}function q0(e){return Md(e)?e.children?e.children[0]:void 0:e}function bp(e,t){e.shapeFlag&6&&e.component?bp(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function CC(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Md=e=>e.type.__isKeepAlive;function $D(e,t){MC(e,"a",t)}function TC(e,t){MC(e,"da",t)}function MC(e,t,r=$t){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Ad(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Md(i.parent.vnode)&&HD(n,t,r,i),i=i.parent}}function HD(e,t,r,n){const i=Ad(t,e,n,!0);Iu(()=>{_m(n[t],i)},r)}function Ad(e,t,r=$t,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Ls(),fs(r);const s=en(t,r,e,o);return Ja(),Ds(),s});return n?i.unshift(a):i.push(a),a}}const bi=e=>(t,r=$t)=>(!nu||e==="sp")&&Ad(e,(...n)=>t(...n),r),Ed=bi("bm"),Et=bi("m"),zD=bi("bu"),Pd=bi("u"),tr=bi("bum"),Iu=bi("um"),WD=bi("sp"),VD=bi("rtg"),GD=bi("rtc");function UD(e,t=$t){Ad("ec",e,t)}function sr(e,t){const r=Yt;if(r===null)return e;const n=Dd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sQi(t)?!(t.type===br||t.type===wt&&!EC(t.children)):!0)?e:null}function qD(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:ic(n)]=e[n];return r}const wp=e=>e?$C(e)?Dd(e)||e.proxy:wp(e.parent):null,Tl=jt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>wp(e.parent),$root:e=>wp(e.root),$emit:e=>e.emit,$options:e=>km(e),$forceUpdate:e=>e.f||(e.f=()=>Lm(e.update)),$nextTick:e=>e.n||(e.n=Ht.bind(e.proxy)),$watch:e=>ND.bind(e)}),Ch=(e,t)=>e!==mt&&!e.__isScriptSetup&&ze(e,t),jD={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Ch(n,t))return o[t]=1,n[t];if(i!==mt&&ze(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&ze(u,t))return o[t]=3,a[t];if(r!==mt&&ze(r,t))return o[t]=4,r[t];xp&&(o[t]=0)}}const f=Tl[t];let c,d;if(f)return t==="$attrs"&&Fr(e,"get",t),f(e);if((c=s.__cssModules)&&(c=c[t]))return c;if(r!==mt&&ze(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,ze(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Ch(i,t)?(i[t]=r,!0):n!==mt&&ze(n,t)?(n[t]=r,!0):ze(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==mt&&ze(e,o)||Ch(t,o)||(s=a[0])&&ze(s,o)||ze(n,o)||ze(Tl,o)||ze(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:ze(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let xp=!0;function KD(e){const t=km(e),r=e.proxy,n=e.ctx;xp=!1,t.beforeCreate&&X0(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:f,beforeMount:c,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:T,expose:E,inheritAttrs:A,components:M,directives:D,filters:O}=t;if(u&&XD(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const j in o){const B=o[j];Ee(B)&&(n[j]=B.bind(r))}if(i){const j=i.call(r,r);je(j)&&(e.data=ln(j))}if(xp=!0,a)for(const j in a){const B=a[j],N=Ee(B)?B.bind(r,r):Ee(B.get)?B.get.bind(r,r):or,U=!Ee(B)&&Ee(B.set)?B.set.bind(r):or,re=$({get:N,set:U});Object.defineProperty(n,j,{enumerable:!0,configurable:!0,get:()=>re.value,set:ae=>re.value=ae})}if(s)for(const j in s)PC(s[j],n,r,j);if(l){const j=Ee(l)?l.call(r):l;Reflect.ownKeys(j).forEach(B=>{Ct(B,j[B])})}f&&X0(f,e,"c");function F(j,B){ye(B)?B.forEach(N=>j(N.bind(r))):B&&j(B.bind(r))}if(F(Ed,c),F(Et,d),F(zD,h),F(Pd,v),F($D,p),F(TC,g),F(UD,C),F(GD,w),F(VD,S),F(tr,y),F(Iu,b),F(WD,T),ye(E))if(E.length){const j=e.exposed||(e.exposed={});E.forEach(B=>{Object.defineProperty(j,B,{get:()=>r[B],set:N=>r[B]=N})})}else e.exposed||(e.exposed={});x&&e.render===or&&(e.render=x),A!=null&&(e.inheritAttrs=A),M&&(e.components=M),D&&(e.directives=D)}function XD(e,t,r=or,n=!1){ye(e)&&(e=Sp(e));for(const i in e){const a=e[i];let o;je(a)?"default"in a?o=De(a.from||i,a.default,!0):o=De(a.from||i):o=De(a),St(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function X0(e,t,r){en(ye(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function PC(e,t,r,n){const i=n.includes(".")?wC(r,n):()=>r[n];if(Ue(e)){const a=t[e];Ee(a)&&Me(i,a)}else if(Ee(e))Me(i,e.bind(r));else if(je(e))if(ye(e))e.forEach(a=>PC(a,t,r,n));else{const a=Ee(e.handler)?e.handler.bind(r):t[e.handler];Ee(a)&&Me(i,a,e)}}function km(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>kc(l,u,o,!0)),kc(l,t,o)),je(t)&&a.set(t,l),l}function kc(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&kc(e,a,r,!0),i&&i.forEach(o=>kc(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=ZD[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const ZD={data:Z0,props:Na,emits:Na,methods:Na,computed:Na,beforeCreate:rr,created:rr,beforeMount:rr,mounted:rr,beforeUpdate:rr,updated:rr,beforeDestroy:rr,beforeUnmount:rr,destroyed:rr,unmounted:rr,activated:rr,deactivated:rr,errorCaptured:rr,serverPrefetch:rr,components:Na,directives:Na,watch:JD,provide:Z0,inject:QD};function Z0(e,t){return t?e?function(){return jt(Ee(e)?e.call(this,this):e,Ee(t)?t.call(this,this):t)}:t:e}function QD(e,t){return Na(Sp(e),Sp(t))}function Sp(e){if(ye(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[d,h]=DC(c,t,!0);jt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!a&&!l)return je(e)&&n.set(e,Zo),Zo;if(ye(a))for(let f=0;f-1,h[1]=p<0||v-1||ze(h,"default"))&&s.push(c)}}}const u=[o,s];return je(e)&&n.set(e,u),u}function Q0(e){return e[0]!=="$"}function J0(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function e_(e,t){return J0(e)===J0(t)}function t_(e,t){return ye(t)?t.findIndex(r=>e_(r,e)):Ee(t)&&e_(t,e)?0:-1}const IC=e=>e[0]==="_"||e==="$stable",Nm=e=>ye(e)?e.map(kn):[kn(e)],rI=(e,t,r)=>{if(t._n)return t;const n=ee((...i)=>Nm(t(...i)),r);return n._c=!1,n},RC=(e,t,r)=>{const n=e._ctx;for(const i in e){if(IC(i))continue;const a=e[i];if(Ee(a))t[i]=rI(i,a,n);else if(a!=null){const o=Nm(a);t[i]=()=>o}}},OC=(e,t)=>{const r=Nm(t);e.slots.default=()=>r},nI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ze(t),Ic(t,"_",r)):RC(t,e.slots={})}else e.slots={},t&&OC(e,t);Ic(e.slots,Ld,1)},iI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=mt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(jt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,RC(t,i)),o=t}else t&&(OC(e,t),o={default:1});if(a)for(const s in i)!IC(s)&&!(s in o)&&delete i[s]};function kC(){return{app:null,config:{isNativeTag:kL,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let aI=0;function oI(e,t){return function(n,i=null){Ee(n)||(n=Object.assign({},n)),i!=null&&!je(i)&&(i=null);const a=kC(),o=new Set;let s=!1;const l=a.app={_uid:aI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:EI,get config(){return a.config},set config(u){},use(u,...f){return o.has(u)||(u&&Ee(u.install)?(o.add(u),u.install(l,...f)):Ee(u)&&(o.add(u),u(l,...f))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,f){return f?(a.components[u]=f,l):a.components[u]},directive(u,f){return f?(a.directives[u]=f,l):a.directives[u]},mount(u,f,c){if(!s){const d=J(n,i);return d.appContext=a,f&&t?t(d,u):e(d,u,c),s=!0,l._container=u,u.__vue_app__=l,Dd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,f){return a.provides[u]=f,l}};return l}}function Tp(e,t,r,n,i=!1){if(ye(e)){e.forEach((d,h)=>Tp(d,t&&(ye(t)?t[h]:t),r,n,i));return}if(Cl(n)&&!i)return;const a=n.shapeFlag&4?Dd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,f=s.refs===mt?s.refs={}:s.refs,c=s.setupState;if(u!=null&&u!==l&&(Ue(u)?(f[u]=null,ze(c,u)&&(c[u]=null)):St(u)&&(u.value=null)),Ee(l))ji(l,s,12,[o,f]);else{const d=Ue(l),h=St(l);if(d||h){const v=()=>{if(e.f){const p=d?ze(c,l)?c[l]:f[l]:l.value;i?ye(p)&&_m(p,a):ye(p)?p.includes(a)||p.push(a):d?(f[l]=[a],ze(c,l)&&(c[l]=f[l])):(l.value=[a],e.k&&(f[e.k]=l.value))}else d?(f[l]=o,ze(c,l)&&(c[l]=o)):h&&(l.value=o,e.k&&(f[e.k]=o))};o?(v.id=-1,pr(v,r)):v()}}}const pr=kD;function sI(e){return lI(e)}function lI(e,t){const r=zL();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:d,setScopeId:h=or,insertStaticContent:v}=e,p=(P,I,z,G=null,q=null,ne=null,ce=!1,te=null,ie=!!I.dynamicChildren)=>{if(P===I)return;P&&!Ha(P,I)&&(G=W(P),ae(P,q,ne,!0),P=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:K,ref:_e,shapeFlag:ve}=I;switch(K){case Is:g(P,I,z,G);break;case br:m(P,I,z,G);break;case Th:P==null&&y(I,z,G,ce);break;case wt:M(P,I,z,G,q,ne,ce,te,ie);break;default:ve&1?x(P,I,z,G,q,ne,ce,te,ie):ve&6?D(P,I,z,G,q,ne,ce,te,ie):(ve&64||ve&128)&&K.process(P,I,z,G,q,ne,ce,te,ie,se)}_e!=null&&q&&Tp(_e,P&&P.ref,ne,I||P,!I)},g=(P,I,z,G)=>{if(P==null)n(I.el=s(I.children),z,G);else{const q=I.el=P.el;I.children!==P.children&&u(q,I.children)}},m=(P,I,z,G)=>{P==null?n(I.el=l(I.children||""),z,G):I.el=P.el},y=(P,I,z,G)=>{[P.el,P.anchor]=v(P.children,I,z,G,P.el,P.anchor)},_=({el:P,anchor:I},z,G)=>{let q;for(;P&&P!==I;)q=d(P),n(P,z,G),P=q;n(I,z,G)},b=({el:P,anchor:I})=>{let z;for(;P&&P!==I;)z=d(P),i(P),P=z;i(I)},x=(P,I,z,G,q,ne,ce,te,ie)=>{ce=ce||I.type==="svg",P==null?w(I,z,G,q,ne,ce,te,ie):T(P,I,q,ne,ce,te,ie)},w=(P,I,z,G,q,ne,ce,te)=>{let ie,K;const{type:_e,props:ve,shapeFlag:be,transition:Le,dirs:Fe}=P;if(ie=P.el=o(P.type,ne,ve&&ve.is,ve),be&8?f(ie,P.children):be&16&&C(P.children,ie,null,G,q,ne&&_e!=="foreignObject",ce,te),Fe&&sa(P,null,G,"created"),ve){for(const Je in ve)Je!=="value"&&!nc(Je)&&a(ie,Je,null,ve[Je],ne,P.children,G,q,Q);"value"in ve&&a(ie,"value",null,ve.value),(K=ve.onVnodeBeforeMount)&&Ln(K,G,P)}S(ie,P,P.scopeId,ce,G),Fe&&sa(P,null,G,"beforeMount");const tt=(!q||q&&!q.pendingBranch)&&Le&&!Le.persisted;tt&&Le.beforeEnter(ie),n(ie,I,z),((K=ve&&ve.onVnodeMounted)||tt||Fe)&&pr(()=>{K&&Ln(K,G,P),tt&&Le.enter(ie),Fe&&sa(P,null,G,"mounted")},q)},S=(P,I,z,G,q)=>{if(z&&h(P,z),G)for(let ne=0;ne{for(let K=ie;K{const te=I.el=P.el;let{patchFlag:ie,dynamicChildren:K,dirs:_e}=I;ie|=P.patchFlag&16;const ve=P.props||mt,be=I.props||mt;let Le;z&&la(z,!1),(Le=be.onVnodeBeforeUpdate)&&Ln(Le,z,I,P),_e&&sa(I,P,z,"beforeUpdate"),z&&la(z,!0);const Fe=q&&I.type!=="foreignObject";if(K?E(P.dynamicChildren,K,te,z,G,Fe,ne):ce||B(P,I,te,null,z,G,Fe,ne,!1),ie>0){if(ie&16)A(te,I,ve,be,z,G,q);else if(ie&2&&ve.class!==be.class&&a(te,"class",null,be.class,q),ie&4&&a(te,"style",ve.style,be.style,q),ie&8){const tt=I.dynamicProps;for(let Je=0;Je{Le&&Ln(Le,z,I,P),_e&&sa(I,P,z,"updated")},G)},E=(P,I,z,G,q,ne,ce)=>{for(let te=0;te{if(z!==G){if(z!==mt)for(const te in z)!nc(te)&&!(te in G)&&a(P,te,z[te],null,ce,I.children,q,ne,Q);for(const te in G){if(nc(te))continue;const ie=G[te],K=z[te];ie!==K&&te!=="value"&&a(P,te,K,ie,ce,I.children,q,ne,Q)}"value"in G&&a(P,"value",z.value,G.value)}},M=(P,I,z,G,q,ne,ce,te,ie)=>{const K=I.el=P?P.el:s(""),_e=I.anchor=P?P.anchor:s("");let{patchFlag:ve,dynamicChildren:be,slotScopeIds:Le}=I;Le&&(te=te?te.concat(Le):Le),P==null?(n(K,z,G),n(_e,z,G),C(I.children,z,_e,q,ne,ce,te,ie)):ve>0&&ve&64&&be&&P.dynamicChildren?(E(P.dynamicChildren,be,z,q,ne,ce,te),(I.key!=null||q&&I===q.subTree)&&Bm(P,I,!0)):B(P,I,z,_e,q,ne,ce,te,ie)},D=(P,I,z,G,q,ne,ce,te,ie)=>{I.slotScopeIds=te,P==null?I.shapeFlag&512?q.ctx.activate(I,z,G,ce,ie):O(I,z,G,q,ne,ce,ie):k(P,I,ie)},O=(P,I,z,G,q,ne,ce)=>{const te=P.component=_I(P,G,q);if(Md(P)&&(te.ctx.renderer=se),bI(te),te.asyncDep){if(q&&q.registerDep(te,F),!P.el){const ie=te.subTree=J(br);m(null,ie,I,z)}return}F(te,P,I,z,q,ne,ce)},k=(P,I,z)=>{const G=I.component=P.component;if(ID(P,I,z))if(G.asyncDep&&!G.asyncResolved){j(G,I,z);return}else G.next=I,MD(G.update),G.update();else I.el=P.el,G.vnode=I},F=(P,I,z,G,q,ne,ce)=>{const te=()=>{if(P.isMounted){let{next:_e,bu:ve,u:be,parent:Le,vnode:Fe}=P,tt=_e,Je;la(P,!1),_e?(_e.el=Fe.el,j(P,_e,ce)):_e=Fe,ve&&ac(ve),(Je=_e.props&&_e.props.onVnodeBeforeUpdate)&&Ln(Je,Le,_e,Fe),la(P,!0);const fe=xh(P),xe=P.subTree;P.subTree=fe,p(xe,fe,c(xe.el),W(xe),P,q,ne),_e.el=fe.el,tt===null&&RD(P,fe.el),be&&pr(be,q),(Je=_e.props&&_e.props.onVnodeUpdated)&&pr(()=>Ln(Je,Le,_e,Fe),q)}else{let _e;const{el:ve,props:be}=I,{bm:Le,m:Fe,parent:tt}=P,Je=Cl(I);if(la(P,!1),Le&&ac(Le),!Je&&(_e=be&&be.onVnodeBeforeMount)&&Ln(_e,tt,I),la(P,!0),ve&&Z){const fe=()=>{P.subTree=xh(P),Z(ve,P.subTree,P,q,null)};Je?I.type.__asyncLoader().then(()=>!P.isUnmounted&&fe()):fe()}else{const fe=P.subTree=xh(P);p(null,fe,z,G,P,q,ne),I.el=fe.el}if(Fe&&pr(Fe,q),!Je&&(_e=be&&be.onVnodeMounted)){const fe=I;pr(()=>Ln(_e,tt,fe),q)}(I.shapeFlag&256||tt&&Cl(tt.vnode)&&tt.vnode.shapeFlag&256)&&P.a&&pr(P.a,q),P.isMounted=!0,I=z=G=null}},ie=P.effect=new Sm(te,()=>Lm(K),P.scope),K=P.update=()=>ie.run();K.id=P.uid,la(P,!0),K()},j=(P,I,z)=>{I.component=P;const G=P.vnode.props;P.vnode=I,P.next=null,tI(P,I.props,G,z),iI(P,I.children,z),Ls(),U0(),Ds()},B=(P,I,z,G,q,ne,ce,te,ie=!1)=>{const K=P&&P.children,_e=P?P.shapeFlag:0,ve=I.children,{patchFlag:be,shapeFlag:Le}=I;if(be>0){if(be&128){U(K,ve,z,G,q,ne,ce,te,ie);return}else if(be&256){N(K,ve,z,G,q,ne,ce,te,ie);return}}Le&8?(_e&16&&Q(K,q,ne),ve!==K&&f(z,ve)):_e&16?Le&16?U(K,ve,z,G,q,ne,ce,te,ie):Q(K,q,ne,!0):(_e&8&&f(z,""),Le&16&&C(ve,z,G,q,ne,ce,te,ie))},N=(P,I,z,G,q,ne,ce,te,ie)=>{P=P||Zo,I=I||Zo;const K=P.length,_e=I.length,ve=Math.min(K,_e);let be;for(be=0;be_e?Q(P,q,ne,!0,!1,ve):C(I,z,G,q,ne,ce,te,ie,ve)},U=(P,I,z,G,q,ne,ce,te,ie)=>{let K=0;const _e=I.length;let ve=P.length-1,be=_e-1;for(;K<=ve&&K<=be;){const Le=P[K],Fe=I[K]=ie?$i(I[K]):kn(I[K]);if(Ha(Le,Fe))p(Le,Fe,z,null,q,ne,ce,te,ie);else break;K++}for(;K<=ve&&K<=be;){const Le=P[ve],Fe=I[be]=ie?$i(I[be]):kn(I[be]);if(Ha(Le,Fe))p(Le,Fe,z,null,q,ne,ce,te,ie);else break;ve--,be--}if(K>ve){if(K<=be){const Le=be+1,Fe=Le<_e?I[Le].el:G;for(;K<=be;)p(null,I[K]=ie?$i(I[K]):kn(I[K]),z,Fe,q,ne,ce,te,ie),K++}}else if(K>be)for(;K<=ve;)ae(P[K],q,ne,!0),K++;else{const Le=K,Fe=K,tt=new Map;for(K=Fe;K<=be;K++){const ht=I[K]=ie?$i(I[K]):kn(I[K]);ht.key!=null&&tt.set(ht.key,K)}let Je,fe=0;const xe=be-Fe+1;let $e=!1,He=0;const Ke=new Array(xe);for(K=0;K=xe){ae(ht,q,ne,!0);continue}let zt;if(ht.key!=null)zt=tt.get(ht.key);else for(Je=Fe;Je<=be;Je++)if(Ke[Je-Fe]===0&&Ha(ht,I[Je])){zt=Je;break}zt===void 0?ae(ht,q,ne,!0):(Ke[zt-Fe]=K+1,zt>=He?He=zt:$e=!0,p(ht,I[zt],z,null,q,ne,ce,te,ie),fe++)}const Ot=$e?uI(Ke):Zo;for(Je=Ot.length-1,K=xe-1;K>=0;K--){const ht=Fe+K,zt=I[ht],Hr=ht+1<_e?I[ht+1].el:G;Ke[K]===0?p(null,zt,z,Hr,q,ne,ce,te,ie):$e&&(Je<0||K!==Ot[Je]?re(zt,z,Hr,2):Je--)}}},re=(P,I,z,G,q=null)=>{const{el:ne,type:ce,transition:te,children:ie,shapeFlag:K}=P;if(K&6){re(P.component.subTree,I,z,G);return}if(K&128){P.suspense.move(I,z,G);return}if(K&64){ce.move(P,I,z,se);return}if(ce===wt){n(ne,I,z);for(let ve=0;vete.enter(ne),q);else{const{leave:ve,delayLeave:be,afterLeave:Le}=te,Fe=()=>n(ne,I,z),tt=()=>{ve(ne,()=>{Fe(),Le&&Le()})};be?be(ne,Fe,tt):tt()}else n(ne,I,z)},ae=(P,I,z,G=!1,q=!1)=>{const{type:ne,props:ce,ref:te,children:ie,dynamicChildren:K,shapeFlag:_e,patchFlag:ve,dirs:be}=P;if(te!=null&&Tp(te,null,z,P,!0),_e&256){I.ctx.deactivate(P);return}const Le=_e&1&&be,Fe=!Cl(P);let tt;if(Fe&&(tt=ce&&ce.onVnodeBeforeUnmount)&&Ln(tt,I,P),_e&6)V(P.component,z,G);else{if(_e&128){P.suspense.unmount(z,G);return}Le&&sa(P,null,I,"beforeUnmount"),_e&64?P.type.remove(P,I,z,q,se,G):K&&(ne!==wt||ve>0&&ve&64)?Q(K,I,z,!1,!0):(ne===wt&&ve&384||!q&&_e&16)&&Q(ie,I,z),G&&me(P)}(Fe&&(tt=ce&&ce.onVnodeUnmounted)||Le)&&pr(()=>{tt&&Ln(tt,I,P),Le&&sa(P,null,I,"unmounted")},z)},me=P=>{const{type:I,el:z,anchor:G,transition:q}=P;if(I===wt){Te(z,G);return}if(I===Th){b(P);return}const ne=()=>{i(z),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(P.shapeFlag&1&&q&&!q.persisted){const{leave:ce,delayLeave:te}=q,ie=()=>ce(z,ne);te?te(P.el,ne,ie):ie()}else ne()},Te=(P,I)=>{let z;for(;P!==I;)z=d(P),i(P),P=z;i(I)},V=(P,I,z)=>{const{bum:G,scope:q,update:ne,subTree:ce,um:te}=P;G&&ac(G),q.stop(),ne&&(ne.active=!1,ae(ce,P,I,z)),te&&pr(te,I),pr(()=>{P.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&P.asyncDep&&!P.asyncResolved&&P.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Q=(P,I,z,G=!1,q=!1,ne=0)=>{for(let ce=ne;ceP.shapeFlag&6?W(P.component.subTree):P.shapeFlag&128?P.suspense.next():d(P.anchor||P.el),Y=(P,I,z)=>{P==null?I._vnode&&ae(I._vnode,null,null,!0):p(I._vnode||null,P,I,null,null,null,z),U0(),mC(),I._vnode=P},se={p,um:ae,m:re,r:me,mt:O,mc:C,pc:B,pbc:E,n:W,o:e};let he,Z;return t&&([he,Z]=t(se)),{render:Y,hydrate:he,createApp:oI(Y,he)}}function la({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function Bm(e,t,r=!1){const n=e.children,i=t.children;if(ye(n)&&ye(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const fI=e=>e.__isTeleport,Ml=e=>e&&(e.disabled||e.disabled===""),r_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Mp=(e,t)=>{const r=e&&e.to;return Ue(r)?t?t(r):null:r},cI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:f,pc:c,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ml(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");h(x,r,n),h(w,r,n);const S=t.target=Mp(t.props,v),C=t.targetAnchor=p("");S&&(h(C,S),o=o||r_(S));const T=(E,A)=>{y&16&&f(_,E,A,i,a,o,s,l)};m?T(r,w):S&&T(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Ml(e.props),T=C?r:w,E=C?x:S;if(o=o||r_(w),b?(d(e.dynamicChildren,b,T,i,a,o,s),Bm(e,t,!0)):l||c(e,t,T,E,i,a,o,s,!1),m)C||rf(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Mp(t.props,v);A&&rf(t,A,null,u,0)}else C&&rf(t,w,S,u,1)}NC(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:f,target:c,props:d}=e;if(c&&a(f),(o||!Ml(d))&&(a(u),s&16))for(let h=0;h0?yn||Zo:null,vI(),ru>0&&yn&&yn.push(e),e}function Se(e,t,r,n,i,a){return BC(le(e,t,r,n,i,a,!0))}function Ie(e,t,r,n,i){return BC(J(e,t,r,n,i,!0))}function Qi(e){return e?e.__v_isVNode===!0:!1}function Ha(e,t){return e.type===t.type&&e.key===t.key}const Ld="__vInternal",FC=({key:e})=>e??null,oc=({ref:e,ref_key:t,ref_for:r})=>e!=null?Ue(e)||St(e)||Ee(e)?{i:Yt,r:e,k:t,f:!!r}:e:null;function le(e,t=null,r=null,n=0,i=null,a=e===wt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&FC(t),ref:t&&oc(t),scopeId:bC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Yt};return s?(Fm(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=Ue(r)?8:16),ru>0&&!o&&yn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&yn.push(l),l}const J=pI;function pI(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===AC)&&(e=br),Qi(e)){const s=vi(e,t,!0);return r&&Fm(s,r),ru>0&&!a&&yn&&(s.shapeFlag&6?yn[yn.indexOf(e)]=s:yn.push(s)),s.patchFlag|=-2,s}if(CI(e)&&(e=e.__vccOpts),t){t=gI(t);let{class:s,style:l}=t;s&&!Ue(s)&&(t.class=de(s)),je(l)&&(lC(l)&&!ye(l)&&(l=jt({},l)),t.style=At(l))}const o=Ue(e)?1:OD(e)?128:fI(e)?64:je(e)?4:Ee(e)?2:0;return le(e,t,r,n,i,o,a,!0)}function gI(e){return e?lC(e)||Ld in e?jt({},e):e:null}function vi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?go(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&FC(s),ref:t&&t.ref?r&&i?ye(i)?i.concat(oc(t)):[i,oc(t)]:oc(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==wt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&vi(e.ssContent),ssFallback:e.ssFallback&&vi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function kt(e=" ",t=0){return J(Is,null,e,t)}function ct(e="",t=!1){return t?(X(),Ie(br,null,e)):J(br,null,e)}function kn(e){return e==null||typeof e=="boolean"?J(br):ye(e)?J(wt,null,e.slice()):typeof e=="object"?$i(e):J(Is,null,String(e))}function $i(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:vi(e)}function Fm(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(ye(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Fm(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Ld in t)?t._ctx=Yt:i===3&&Yt&&(Yt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ee(t)?(t={default:t,_ctx:Yt},r=32):(t=String(t),n&64?(r=16,t=[kt(t)]):r=8);e.children=t,e.shapeFlag|=r}function go(...e){const t={};for(let r=0;r$t||Yt,fs=e=>{$t=e,e.scope.on()},Ja=()=>{$t&&$t.scope.off(),$t=null};function $C(e){return e.vnode.shapeFlag&4}let nu=!1;function bI(e,t=!1){nu=t;const{props:r,children:n}=e.vnode,i=$C(e);eI(e,r,i,t),nI(e,n);const a=i?wI(e,t):void 0;return nu=!1,a}function wI(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=uC(new Proxy(e.ctx,jD));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?zC(e):null;fs(e),Ls();const a=ji(n,e,0,[e.props,i]);if(Ds(),Ja(),jS(a)){if(a.then(Ja,Ja),t)return a.then(o=>{i_(e,o,t)}).catch(o=>{Cd(o,e,0)});e.asyncDep=a}else i_(e,a,t)}else HC(e,t)}function i_(e,t,r){Ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:je(t)&&(e.setupState=hC(t)),HC(e,r)}let a_;function HC(e,t,r){const n=e.type;if(!e.render){if(!t&&a_&&!n.render){const i=n.template||km(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=jt(jt({isCustomElement:a,delimiters:s},o),l);n.render=a_(i,u)}}e.render=n.render||or}fs(e),Ls(),KD(e),Ds(),Ja()}function xI(e){return new Proxy(e.attrs,{get(t,r){return Fr(e,"get","$attrs"),t[r]}})}function zC(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=xI(e))},slots:e.slots,emit:e.emit,expose:t}}function Dd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(hC(uC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Tl)return Tl[r](e)},has(t,r){return r in t||r in Tl}}))}function SI(e,t=!0){return Ee(e)?e.displayName||e.name:e.name||t&&e.__name}function CI(e){return Ee(e)&&"__vccOpts"in e}const $=(e,t)=>xD(e,t,nu);function Id(){return TI().slots}function TI(){const e=dt();return e.setupContext||(e.setupContext=zC(e))}function we(e,t,r){const n=arguments.length;return n===2?je(t)&&!ye(t)?Qi(t)?J(e,null,[t]):J(e,t):J(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&Qi(r)&&(r=[r]),J(e,t,r))}const MI=Symbol(""),AI=()=>De(MI),EI="3.2.45",PI="http://www.w3.org/2000/svg",za=typeof document<"u"?document:null,o_=za&&za.createElement("template"),LI={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?za.createElementNS(PI,e):za.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>za.createTextNode(e),createComment:e=>za.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>za.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{o_.innerHTML=n?`${e}`:e;const s=o_.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function DI(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function II(e,t,r){const n=e.style,i=Ue(r);if(r&&!i){for(const a in r)Ap(n,a,r[a]);if(t&&!Ue(t))for(const a in t)r[a]==null&&Ap(n,a,"")}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const s_=/\s*!important$/;function Ap(e,t,r){if(ye(r))r.forEach(n=>Ap(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=RI(e,t);s_.test(r)?e.setProperty(Ps(n),r.replace(s_,""),"important"):e[n]=r}}const l_=["Webkit","Moz","ms"],Mh={};function RI(e,t){const r=Mh[t];if(r)return r;let n=Sn(t);if(n!=="filter"&&n in e)return Mh[t]=n;n=bd(n);for(let i=0;iAh||($I.then(()=>Ah=0),Ah=Date.now());function zI(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;en(WI(n,r.value),t,5,[n])};return r.value=e,r.attached=HI(),r}function WI(e,t){if(ye(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const c_=/^on[a-z]/,VI=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?DI(e,n,i):t==="style"?II(e,r,n):md(t)?ym(t)||BI(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):GI(e,t,n,i))?kI(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),OI(e,t,n,i))};function GI(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&c_.test(t)&&Ee(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||c_.test(t)&&Ue(r)?!1:t in e}const Mi="transition",Vs="animation",Kn=(e,{slots:t})=>we(xC,UI(e),t);Kn.displayName="Transition";const VC={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Kn.props=jt({},xC.props,VC);const ua=(e,t=[])=>{ye(e)?e.forEach(r=>r(...t)):e&&e(...t)},d_=e=>e?ye(e)?e.some(t=>t.length>1):e.length>1:!1;function UI(e){const t={};for(const M in e)M in VC||(t[M]=e[M]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:f=s,leaveFromClass:c=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=YI(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:S=y,onAppearCancelled:C=_}=t,T=(M,D,O)=>{fa(M,D?f:s),fa(M,D?u:o),O&&O()},E=(M,D)=>{M._isLeaving=!1,fa(M,c),fa(M,h),fa(M,d),D&&D()},A=M=>(D,O)=>{const k=M?S:y,F=()=>T(D,M,O);ua(k,[D,F]),h_(()=>{fa(D,M?l:a),Ai(D,M?f:s),d_(k)||v_(D,n,p,F)})};return jt(t,{onBeforeEnter(M){ua(m,[M]),Ai(M,a),Ai(M,o)},onBeforeAppear(M){ua(w,[M]),Ai(M,l),Ai(M,u)},onEnter:A(!1),onAppear:A(!0),onLeave(M,D){M._isLeaving=!0;const O=()=>E(M,D);Ai(M,c),KI(),Ai(M,d),h_(()=>{M._isLeaving&&(fa(M,c),Ai(M,h),d_(b)||v_(M,n,g,O))}),ua(b,[M,O])},onEnterCancelled(M){T(M,!1),ua(_,[M])},onAppearCancelled(M){T(M,!0),ua(C,[M])},onLeaveCancelled(M){E(M),ua(x,[M])}})}function YI(e){if(e==null)return null;if(je(e))return[Eh(e.enter),Eh(e.leave)];{const t=Eh(e);return[t,t]}}function Eh(e){return wm(e)}function Ai(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function fa(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function h_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let qI=0;function v_(e,t,r,n){const i=e._endId=++qI,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=jI(e,t);if(!o)return n();const u=o+"end";let f=0;const c=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[v]||"").split(", "),i=n(`${Mi}Delay`),a=n(`${Mi}Duration`),o=p_(i,a),s=n(`${Vs}Delay`),l=n(`${Vs}Duration`),u=p_(s,l);let f=null,c=0,d=0;t===Mi?o>0&&(f=Mi,c=o,d=a.length):t===Vs?u>0&&(f=Vs,c=u,d=l.length):(c=Math.max(o,u),f=c>0?o>u?Mi:Vs:null,d=f?f===Mi?a.length:l.length:0);const h=f===Mi&&/\b(transform|all)(,|$)/.test(n(`${Mi}Property`).toString());return{type:f,timeout:c,propCount:d,hasTransform:h}}function p_(e,t){for(;e.lengthg_(r)+g_(e[n])))}function g_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function KI(){return document.body.offsetHeight}const m_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ye(t)?r=>ac(t,r):t},Nc={deep:!0,created(e,t,r){e._assign=m_(r),WC(e,"change",()=>{const n=e._modelValue,i=XI(e),a=e.checked,o=e._assign;if(ye(n)){const s=YS(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(yd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(GC(e,a))})},mounted:y_,beforeUpdate(e,t,r){e._assign=m_(r),y_(e,t,r)}};function y_(e,{value:t,oldValue:r},n){e._modelValue=t,ye(t)?e.checked=YS(t,n.props.value)>-1:yd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=gd(t,GC(e,!0)))}function XI(e){return"_value"in e?e._value:e.value}function GC(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const ZI=["ctrl","shift","alt","meta"],QI={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ZI.some(r=>e[`${r}Key`]&&!t.includes(r))},Ep=(e,t)=>(r,...n)=>{for(let i=0;i{Gs(e,!1)}):Gs(e,t))},beforeUnmount(e,{value:t}){Gs(e,t)}};function Gs(e,t){e.style.display=t?e._vod:"none"}const JI=jt({patchProp:VI},LI);let __;function UC(){return __||(__=sI(JI))}const b_=(...e)=>{UC().render(...e)},eR=(...e)=>{const t=UC().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=tR(n);if(!i)return;const a=t._component;!Ee(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function tR(e){return Ue(e)?document.querySelector(e):e}var rR=typeof global=="object"&&global&&global.Object===Object&&global;const YC=rR;var nR=typeof self=="object"&&self&&self.Object===Object&&self,iR=YC||nR||Function("return this")();const Mn=iR;var aR=Mn.Symbol;const nn=aR;var qC=Object.prototype,oR=qC.hasOwnProperty,sR=qC.toString,Us=nn?nn.toStringTag:void 0;function lR(e){var t=oR.call(e,Us),r=e[Us];try{e[Us]=void 0;var n=!0}catch{}var i=sR.call(e);return n&&(t?e[Us]=r:delete e[Us]),i}var uR=Object.prototype,fR=uR.toString;function cR(e){return fR.call(e)}var dR="[object Null]",hR="[object Undefined]",w_=nn?nn.toStringTag:void 0;function mo(e){return e==null?e===void 0?hR:dR:w_&&w_ in Object(e)?lR(e):cR(e)}function Yn(e){return e!=null&&typeof e=="object"}var vR="[object Symbol]";function Rd(e){return typeof e=="symbol"||Yn(e)&&mo(e)==vR}function jC(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=YR)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function XR(e){return function(){return e}}var ZR=function(){try{var e=_o(Object,"defineProperty");return e({},"",{}),e}catch{}}();const Bc=ZR;var QR=Bc?function(e,t){return Bc(e,"toString",{configurable:!0,enumerable:!1,value:XR(t),writable:!0})}:$m;const JR=QR;var eO=KR(JR);const ZC=eO;function tO(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=sO}function Rs(e){return e!=null&&Vm(e.length)&&!Hm(e)}function lO(e,t,r){if(!Cr(r))return!1;var n=typeof t;return(n=="number"?Rs(r)&&Od(t,r.length):n=="string"&&t in r)?Ru(r[t],e):!1}function uO(e){return oO(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&lO(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function Tk(e,t){var r=this.__data__,n=kd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function wi(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?Zm(s,t-1,r,n,i):Xm(i,s):n||(i[i.length]=s)}return i}function Vk(e){var t=e==null?0:e.length;return t?Zm(e,1):[]}function Gk(e){return ZC(QC(e,void 0,Vk),e+"")}var Uk=nT(Object.getPrototypeOf,Object);const Qm=Uk;var Yk="[object Object]",qk=Function.prototype,jk=Object.prototype,iT=qk.toString,Kk=jk.hasOwnProperty,Xk=iT.call(Object);function Zk(e){if(!Yn(e)||mo(e)!=Yk)return!1;var t=Qm(e);if(t===null)return!0;var r=Kk.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&iT.call(r)==Xk}function Lp(){if(!arguments.length)return[];var e=arguments[0];return ur(e)?e:[e]}function Qk(){this.__data__=new wi,this.size=0}function Jk(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function eN(e){return this.__data__.get(e)}function tN(e){return this.__data__.has(e)}var rN=200;function nN(e,t){var r=this.__data__;if(r instanceof wi){var n=r.__data__;if(!su||n.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,d=!0,h=r&HB?new $c:void 0;for(a.set(e,t),a.set(t,e);++c=t||S<0||c&&C>=a}function m(){var w=Ih();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Ih())}function x(){var w=Ih(),S=g(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(c)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return x.cancel=_,x.flush=b,x}function kp(e,t,r){(r!==void 0&&!Ru(e[t],r)||r===void 0&&!(t in e))&&zm(e,t,r)}function OF(e){return Yn(e)&&Rs(e)}function Np(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function kF(e){return Ou(e,Nu(e))}function NF(e,t,r,n,i,a,o){var s=Np(e,r),l=Np(t,r),u=o.get(l);if(u){kp(e,r,u);return}var f=a?a(s,l,r+"",e,t,o):void 0,c=f===void 0;if(c){var d=ur(l),h=!d&&au(l),v=!d&&!h&&Ym(l);f=l,d||h||v?ur(s)?f=s:OF(s)?f=XC(s):h?(c=!1,f=oT(l,!0)):v?(c=!1,f=fT(l,!0)):f=[]:Zk(l)||iu(l)?(f=s,iu(s)?f=kF(s):(!Cr(s)||Hm(s))&&(f=cT(l))):c=!1}c&&(o.set(l,f),i(f,l,n,a,o),o.delete(l)),kp(e,r,f)}function bT(e,t,r,n,i){e!==t&&_T(t,function(a,o){if(i||(i=new xn),Cr(a))NF(e,t,o,r,bT,n,i);else{var s=n?n(Np(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),kp(e,o,s)}},Nu)}function BF(e,t){var r=-1,n=Rs(e)?Array(e.length):[];return PF(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function FF(e,t){var r=ur(e)?jC:BF;return r(e,SF(t))}function $F(e,t){return Zm(FF(e,t),1)}function HF(e){for(var t=-1,r=e==null?0:e.length,n={};++ti=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var Q_;const Rt=typeof window<"u",pi=e=>typeof e=="boolean",_r=e=>typeof e=="number",jF=e=>typeof e=="string",Bp=()=>{};Rt&&((Q_=window==null?void 0:window.navigator)!=null&&Q_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function zc(e){return typeof e=="function"?e():L(e)}function KF(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}function XF(e,t={}){let r,n,i=Bp;const a=s=>{clearTimeout(s),i(),i=Bp};return s=>{const l=zc(e),u=zc(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((f,c)=>{i=t.rejectOnCancel?c:f,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,f(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,f(s())},l)})}}function ZF(e){return e}function $d(e){return GL()?(UL(e),!0):!1}function QF(e,t=200,r={}){return KF(XF(t,r),e)}function JF(e,t=200,r={}){const n=H(e.value),i=QF(()=>{n.value=e.value},t,r);return Me(e,()=>i()),n}function e$(e,t=!0){dt()?Et(e):t?e():Ht(e)}function Fp(e,t,r={}){const{immediate:n=!0}=r,i=H(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},zc(t))}return n&&(i.value=!0,Rt&&l()),$d(s),{isPending:xd(i),start:l,stop:s}}function zi(e){var t;const r=zc(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ry=Rt?window:void 0;function $n(...e){let t,r,n,i;if(jF(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ry):[t,r,n,i]=e,!t)return Bp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(f=>f()),a.length=0},s=(f,c,d)=>(f.addEventListener(c,d,i),()=>f.removeEventListener(c,d,i)),l=Me(()=>zi(t),f=>{o(),f&&a.push(...r.flatMap(c=>n.map(d=>s(f,c,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return $d(u),u}function t$(e,t,r={}){const{window:n=ry,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=zi(v);return p&&(h.target===p||h.composedPath().includes(p))}}),f=h=>{n.clearTimeout(l);const v=zi(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},c=[$n(n,"click",f,{passive:!0,capture:a}),$n(n,"pointerdown",h=>{const v=zi(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),$n(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>f(h),50)}},{passive:!0}),o&&$n(n,"blur",h=>{var v;const p=zi(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>c.forEach(h=>h())}function r$(e,t=!1){const r=H(),n=()=>r.value=Boolean(e());return n(),e$(n,t),r}const $p=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Hp="__vueuse_ssr_handlers__";$p[Hp]=$p[Hp]||{};$p[Hp];var J_=Object.getOwnPropertySymbols,n$=Object.prototype.hasOwnProperty,i$=Object.prototype.propertyIsEnumerable,a$=(e,t)=>{var r={};for(var n in e)n$.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&J_)for(var n of J_(e))t.indexOf(n)<0&&i$.call(e,n)&&(r[n]=e[n]);return r};function ds(e,t,r={}){const n=r,{window:i=ry}=n,a=a$(n,["window"]);let o;const s=r$(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=Me(()=>zi(e),c=>{l(),s.value&&i&&c&&(o=new ResizeObserver(t),o.observe(c,a))},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return $d(f),{isSupported:s,stop:f}}var eb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(eb||(eb={}));var o$=Object.defineProperty,tb=Object.getOwnPropertySymbols,s$=Object.prototype.hasOwnProperty,l$=Object.prototype.propertyIsEnumerable,rb=(e,t,r)=>t in e?o$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u$=(e,t)=>{for(var r in t||(t={}))s$.call(t,r)&&rb(e,r,t[r]);if(tb)for(var r of tb(t))l$.call(t,r)&&rb(e,r,t[r]);return e};const f$={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};u$({linear:ZF},f$);const Wc=e=>e===void 0,hs=e=>typeof Element>"u"?!1:e instanceof Element,c$=e=>Ue(e)?!Number.isNaN(Number(e)):!1,nb=e=>Object.keys(e),uc=(e,t,r)=>({get value(){return lu(e,t,r)},set value(n){qF(e,t,n)}});class d$ extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function lo(e,t){throw new d$(`[${e}] ${t}`)}const ST=(e="")=>e.split(" ").filter(t=>!!t.trim()),Pl=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Uo=(e,t)=>{!e||!t.trim()||e.classList.add(...ST(t))},rs=(e,t)=>{!e||!t.trim()||e.classList.remove(...ST(t))},ib=(e,t)=>{var r;if(!Rt||!e||!t)return"";let n=Sn(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function vs(e,t="px"){if(!e)return"";if(_r(e)||c$(e))return`${e}${t}`;if(Ue(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Xn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},h$={name:"ArrowDown"},v$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},p$=le("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),g$=[p$];function m$(e,t,r,n,i,a){return X(),Se("svg",v$,g$)}var CT=Xn(h$,[["render",m$],["__file","arrow-down.vue"]]),y$={name:"ArrowRight"},_$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},b$=le("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),w$=[b$];function x$(e,t,r,n,i,a){return X(),Se("svg",_$,w$)}var ny=Xn(y$,[["render",x$],["__file","arrow-right.vue"]]),S$={name:"ArrowUp"},C$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},T$=le("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),M$=[T$];function A$(e,t,r,n,i,a){return X(),Se("svg",C$,M$)}var E$=Xn(S$,[["render",A$],["__file","arrow-up.vue"]]),P$={name:"CircleCloseFilled"},L$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},D$=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),I$=[D$];function R$(e,t,r,n,i,a){return X(),Se("svg",L$,I$)}var TT=Xn(P$,[["render",R$],["__file","circle-close-filled.vue"]]),O$={name:"Close"},k$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},N$=le("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),B$=[N$];function F$(e,t,r,n,i,a){return X(),Se("svg",k$,B$)}var zp=Xn(O$,[["render",F$],["__file","close.vue"]]),$$={name:"InfoFilled"},H$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z$=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),W$=[z$];function V$(e,t,r,n,i,a){return X(),Se("svg",H$,W$)}var MT=Xn($$,[["render",V$],["__file","info-filled.vue"]]),G$={name:"Loading"},U$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Y$=le("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),q$=[Y$];function j$(e,t,r,n,i,a){return X(),Se("svg",U$,q$)}var AT=Xn(G$,[["render",j$],["__file","loading.vue"]]),K$={name:"More"},X$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z$=le("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),Q$=[Z$];function J$(e,t,r,n,i,a){return X(),Se("svg",X$,Q$)}var e5=Xn(K$,[["render",J$],["__file","more.vue"]]),t5={name:"SuccessFilled"},r5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n5=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),i5=[n5];function a5(e,t,r,n,i,a){return X(),Se("svg",r5,i5)}var ET=Xn(t5,[["render",a5],["__file","success-filled.vue"]]),o5={name:"WarningFilled"},s5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l5=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),u5=[l5];function f5(e,t,r,n,i,a){return X(),Se("svg",s5,u5)}var PT=Xn(o5,[["render",f5],["__file","warning-filled.vue"]]);const LT="__epPropKey",Ae=e=>e,c5=e=>je(e)&&!!e[LT],Hd=(e,t)=>{if(!je(e)||c5(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let f=!1,c=[];if(r&&(c=Array.from(r),ze(e,"default")&&c.push(i),f||(f=c.includes(u))),o&&(f||(f=o(u))),!f&&c.length>0){const d=[...new Set(c)].map(h=>JSON.stringify(h)).join(", ");SD(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return f}:void 0,[LT]:!0};return ze(e,"default")&&(l.default=i),l},at=e=>HF(Object.entries(e).map(([t,r])=>[t,Hd(r,t)])),Wi=Ae([String,Object,Function]),d5={Close:zp,SuccessFilled:ET,InfoFilled:MT,WarningFilled:PT,CircleCloseFilled:TT},ab={success:ET,warning:PT,error:TT,info:MT},Er=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},h5=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),v5=(e,t)=>(e.install=r=>{r.directive(t,e)},e),ia=e=>(e.install=or,e),Lt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},zd="update:modelValue",Wd=["","default","small","large"],fc=e=>{const t=ye(e)?e:[e],r=[];return t.forEach(n=>{var i;ye(n)?r.push(...fc(n)):Qi(n)&&ye(n.children)?r.push(...fc(n.children)):(r.push(n),Qi(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...fc(n.component.subTree)))}),r},Wa=e=>e,DT=Symbol("buttonGroupContextKey"),Os=Symbol("checkboxGroupContextKey"),IT=Symbol(),ks=Symbol("formContextKey"),uo=Symbol("formItemContextKey"),RT=Symbol("rowContextKey"),OT=Symbol("scrollbarContextKey"),iy=Symbol("popper"),kT=Symbol("popperContent"),ay=Symbol("elTooltip"),NT=e=>{const t=dt();return $(()=>{var r,n;return(n=((r=t.proxy)==null?void 0:r.$props)[e])!=null?n:void 0})},Vc=H();function aa(e,t=void 0){const r=dt()?De(IT,Vc):Vc;return e?$(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}const p5=(e,t,r=!1)=>{var n;const i=!!dt(),a=i?aa():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?Ct:void 0;if(!o)return;const s=$(()=>{const l=L(e);return a!=null&&a.value?g5(a.value,l):l});return o(IT,s),(r||!Vc.value)&&(Vc.value=s.value),s},g5=(e,t)=>{var r;const n=[...new Set([...nb(e),...nb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},Vd=Hd({type:String,values:Wd,required:!1}),fo=(e,t={})=>{const r=H(void 0),n=t.prop?r:NT("size"),i=t.global?r:aa("size"),a=t.form?{size:void 0}:De(ks,void 0),o=t.formItem?{size:void 0}:De(uo,void 0);return $(()=>n.value||L(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},oy=e=>{const t=NT("disabled"),r=De(ks,void 0);return $(()=>t.value||L(e)||(r==null?void 0:r.disabled)||!1)},m5=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{Me(()=>L(o),s=>{},{immediate:!0})},sy="el",y5="is-",ca=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},Ne=e=>{const t=aa("namespace",sy);return{namespace:t,b:(v="")=>ca(t.value,e,v,"",""),e:v=>v?ca(t.value,e,"",v,""):"",m:v=>v?ca(t.value,e,"","",v):"",be:(v,p)=>v&&p?ca(t.value,e,v,p,""):"",em:(v,p)=>v&&p?ca(t.value,e,"",v,p):"",bm:(v,p)=>v&&p?ca(t.value,e,v,"",p):"",bem:(v,p,g)=>v&&p&&g?ca(t.value,e,v,p,g):"",is:(v,...p)=>{const g=p.length>=1?p[0]:!0;return v&&g?`${y5}${v}`:""},cssVar:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${g}`]=v[g]);return p},cssVarName:v=>`--${t.value}-${v}`,cssVarBlock:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${e}-${g}`]=v[g]);return p},cssVarBlockName:v=>`--${t.value}-${e}-${v}`}},ob={prefix:Math.floor(Math.random()*1e4),current:0},_5=Symbol("elIdInjection"),BT=()=>dt()?De(_5,ob):ob,ly=e=>{const t=BT(),r=aa("namespace",sy);return $(()=>L(e)||`${r.value}-id-${t.prefix}-${t.current++}`)},Gd=()=>{const e=De(ks,void 0),t=De(uo,void 0);return{form:e,formItem:t}},FT=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=H(!1)),n||(n=H(!1));const i=H();let a;const o=$(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return Et(()=>{a=Me([wn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:ly().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),Iu(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}};var b5={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const w5=e=>(t,r)=>x5(t,r,L(e)),x5=(e,t,r)=>lu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),S5=e=>{const t=$(()=>L(e).name),r=St(e)?e:H(e);return{lang:t,locale:r,t:w5(e)}},$T=()=>{const e=aa("locale");return S5($(()=>e.value||b5))},C5=Hd({type:Ae(Boolean),default:null}),T5=Hd({type:Ae(Function)}),M5=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:C5,[r]:T5};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:f,onHide:c})=>{const d=dt(),{emit:h}=d,v=d.props,p=$(()=>Ee(v[r])),g=$(()=>v[e]===null),m=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),Ee(f)&&f(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),Ee(c)&&c(S))},_=S=>{if(v.disabled===!0||Ee(u)&&!u())return;const C=p.value&&Rt;C&&h(t,!0),(g.value||!C)&&m(S)},b=S=>{if(v.disabled===!0||!Rt)return;const C=p.value&&Rt;C&&h(t,!1),(g.value||!C)&&y(S)},x=S=>{pi(S)&&(v.disabled&&S?p.value&&h(t,!1):o.value!==S&&(S?m():y()))},w=()=>{o.value?b():_()};return Me(()=>v[e],x),l&&d.appContext.config.globalProperties.$route!==void 0&&Me(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),Et(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}};var wr="top",an="bottom",on="right",xr="left",uy="auto",Fu=[wr,an,on,xr],ps="start",fu="end",A5="clippingParents",HT="viewport",Ys="popper",E5="reference",sb=Fu.reduce(function(e,t){return e.concat([t+"-"+ps,t+"-"+fu])},[]),fy=[].concat(Fu,[uy]).reduce(function(e,t){return e.concat([t,t+"-"+ps,t+"-"+fu])},[]),P5="beforeRead",L5="read",D5="afterRead",I5="beforeMain",R5="main",O5="afterMain",k5="beforeWrite",N5="write",B5="afterWrite",F5=[P5,L5,D5,I5,R5,O5,k5,N5,B5];function qn(e){return e?(e.nodeName||"").toLowerCase():null}function An(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function gs(e){var t=An(e).Element;return e instanceof t||e instanceof Element}function tn(e){var t=An(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function cy(e){if(typeof ShadowRoot>"u")return!1;var t=An(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function $5(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!tn(a)||!qn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function H5(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!tn(i)||!qn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var zT={name:"applyStyles",enabled:!0,phase:"write",fn:$5,effect:H5,requires:["computeStyles"]};function Gn(e){return e.split("-")[0]}var eo=Math.max,Gc=Math.min,ms=Math.round;function ys(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(tn(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ms(r.width)/o||1),a>0&&(i=ms(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function dy(e){var t=ys(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function WT(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&cy(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function gi(e){return An(e).getComputedStyle(e)}function z5(e){return["table","td","th"].indexOf(qn(e))>=0}function oa(e){return((gs(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ud(e){return qn(e)==="html"?e:e.assignedSlot||e.parentNode||(cy(e)?e.host:null)||oa(e)}function lb(e){return!tn(e)||gi(e).position==="fixed"?null:e.offsetParent}function W5(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&tn(e)){var n=gi(e);if(n.position==="fixed")return null}var i=Ud(e);for(cy(i)&&(i=i.host);tn(i)&&["html","body"].indexOf(qn(i))<0;){var a=gi(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function $u(e){for(var t=An(e),r=lb(e);r&&z5(r)&&gi(r).position==="static";)r=lb(r);return r&&(qn(r)==="html"||qn(r)==="body"&&gi(r).position==="static")?t:r||W5(e)||t}function hy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ll(e,t,r){return eo(e,Gc(t,r))}function V5(e,t,r){var n=Ll(e,t,r);return n>r?r:n}function VT(){return{top:0,right:0,bottom:0,left:0}}function GT(e){return Object.assign({},VT(),e)}function UT(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var G5=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,GT(typeof e!="number"?e:UT(e,Fu))};function U5(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=Gn(r.placement),l=hy(s),u=[xr,on].indexOf(s)>=0,f=u?"height":"width";if(!(!a||!o)){var c=G5(i.padding,r),d=dy(a),h=l==="y"?wr:xr,v=l==="y"?an:on,p=r.rects.reference[f]+r.rects.reference[l]-o[l]-r.rects.popper[f],g=o[l]-r.rects.reference[l],m=$u(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=c[h],x=y-d[f]-c[v],w=y/2-d[f]/2+_,S=Ll(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function Y5(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!WT(t.elements.popper,i)||(t.elements.arrow=i))}var q5={name:"arrow",enabled:!0,phase:"main",fn:U5,effect:Y5,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function _s(e){return e.split("-")[1]}var j5={top:"auto",right:"auto",bottom:"auto",left:"auto"};function K5(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ms(t*i)/i||0,y:ms(r*i)/i||0}}function ub(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,f=e.roundOffsets,c=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof f=="function"?f({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=xr,b=wr,x=window;if(u){var w=$u(r),S="clientHeight",C="clientWidth";if(w===An(r)&&(w=oa(r),gi(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===wr||(i===xr||i===on)&&a===fu){b=an;var T=c&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=T-n.height,p*=l?1:-1}if(i===xr||(i===wr||i===an)&&a===fu){_=on;var E=c&&w===x&&x.visualViewport?x.visualViewport.width:w[C];h-=E-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&j5),M=f===!0?K5({x:h,y:p}):{x:h,y:p};if(h=M.x,p=M.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function X5(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:Gn(t.placement),variation:_s(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,ub(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,ub(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var YT={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:X5,data:{}},af={passive:!0};function Z5(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=An(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(f){f.addEventListener("scroll",r.update,af)}),s&&l.addEventListener("resize",r.update,af),function(){a&&u.forEach(function(f){f.removeEventListener("scroll",r.update,af)}),s&&l.removeEventListener("resize",r.update,af)}}var qT={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Z5,data:{}},Q5={left:"right",right:"left",bottom:"top",top:"bottom"};function cc(e){return e.replace(/left|right|bottom|top/g,function(t){return Q5[t]})}var J5={start:"end",end:"start"};function fb(e){return e.replace(/start|end/g,function(t){return J5[t]})}function vy(e){var t=An(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function py(e){return ys(oa(e)).left+vy(e).scrollLeft}function e3(e){var t=An(e),r=oa(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+py(e),y:s}}function t3(e){var t,r=oa(e),n=vy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=eo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=eo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+py(e),l=-n.scrollTop;return gi(i||r).direction==="rtl"&&(s+=eo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function gy(e){var t=gi(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function jT(e){return["html","body","#document"].indexOf(qn(e))>=0?e.ownerDocument.body:tn(e)&&gy(e)?e:jT(Ud(e))}function Dl(e,t){var r;t===void 0&&(t=[]);var n=jT(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=An(n),o=i?[a].concat(a.visualViewport||[],gy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(Dl(Ud(o)))}function Wp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function r3(e){var t=ys(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function cb(e,t){return t===HT?Wp(e3(e)):gs(t)?r3(t):Wp(t3(oa(e)))}function n3(e){var t=Dl(Ud(e)),r=["absolute","fixed"].indexOf(gi(e).position)>=0,n=r&&tn(e)?$u(e):e;return gs(n)?t.filter(function(i){return gs(i)&&WT(i,n)&&qn(i)!=="body"}):[]}function i3(e,t,r){var n=t==="clippingParents"?n3(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=cb(e,l);return s.top=eo(u.top,s.top),s.right=Gc(u.right,s.right),s.bottom=Gc(u.bottom,s.bottom),s.left=eo(u.left,s.left),s},cb(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function KT(e){var t=e.reference,r=e.element,n=e.placement,i=n?Gn(n):null,a=n?_s(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case wr:l={x:o,y:t.y-r.height};break;case an:l={x:o,y:t.y+t.height};break;case on:l={x:t.x+t.width,y:s};break;case xr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?hy(i):null;if(u!=null){var f=u==="y"?"height":"width";switch(a){case ps:l[u]=l[u]-(t[f]/2-r[f]/2);break;case fu:l[u]=l[u]+(t[f]/2-r[f]/2);break}}return l}function cu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?A5:a,s=r.rootBoundary,l=s===void 0?HT:s,u=r.elementContext,f=u===void 0?Ys:u,c=r.altBoundary,d=c===void 0?!1:c,h=r.padding,v=h===void 0?0:h,p=GT(typeof v!="number"?v:UT(v,Fu)),g=f===Ys?E5:Ys,m=e.rects.popper,y=e.elements[d?g:f],_=i3(gs(y)?y:y.contextElement||oa(e.elements.popper),o,l),b=ys(e.elements.reference),x=KT({reference:b,element:m,strategy:"absolute",placement:i}),w=Wp(Object.assign({},m,x)),S=f===Ys?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},T=e.modifiersData.offset;if(f===Ys&&T){var E=T[i];Object.keys(C).forEach(function(A){var M=[on,an].indexOf(A)>=0?1:-1,D=[wr,an].indexOf(A)>=0?"y":"x";C[A]+=E[D]*M})}return C}function a3(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?fy:l,f=_s(n),c=f?s?sb:sb.filter(function(v){return _s(v)===f}):Fu,d=c.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=c);var h=d.reduce(function(v,p){return v[p]=cu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[Gn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function o3(e){if(Gn(e)===uy)return[];var t=cc(e);return[fb(e),t,fb(t)]}function s3(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,f=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=Gn(g),y=m===g,_=l||(y||!v?[cc(g)]:o3(g)),b=[g].concat(_).reduce(function(Te,V){return Te.concat(Gn(V)===uy?a3(t,{placement:V,boundary:f,rootBoundary:c,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,T=b[0],E=0;E=0,k=O?"width":"height",F=cu(t,{placement:A,boundary:f,rootBoundary:c,altBoundary:d,padding:u}),j=O?D?on:xr:D?an:wr;x[k]>w[k]&&(j=cc(j));var B=cc(j),N=[];if(a&&N.push(F[M]<=0),s&&N.push(F[j]<=0,F[B]<=0),N.every(function(Te){return Te})){T=A,C=!1;break}S.set(A,N)}if(C)for(var U=v?3:1,re=function(Te){var V=b.find(function(Q){var W=S.get(Q);if(W)return W.slice(0,Te).every(function(Y){return Y})});if(V)return T=V,"break"},ae=U;ae>0;ae--){var me=re(ae);if(me==="break")break}t.placement!==T&&(t.modifiersData[n]._skip=!0,t.placement=T,t.reset=!0)}}var l3={name:"flip",enabled:!0,phase:"main",fn:s3,requiresIfExists:["offset"],data:{_skip:!1}};function db(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function hb(e){return[wr,on,an,xr].some(function(t){return e[t]>=0})}function u3(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=cu(t,{elementContext:"reference"}),s=cu(t,{altBoundary:!0}),l=db(o,n),u=db(s,i,a),f=hb(l),c=hb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:f,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":c})}var f3={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:u3};function c3(e,t,r){var n=Gn(e),i=[xr,wr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[xr,on].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function d3(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=fy.reduce(function(f,c){return f[c]=c3(c,t.rects,a),f},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var h3={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:d3};function v3(e){var t=e.state,r=e.name;t.modifiersData[r]=KT({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var XT={name:"popperOffsets",enabled:!0,phase:"read",fn:v3,data:{}};function p3(e){return e==="x"?"y":"x"}function g3(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,f=r.altBoundary,c=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=cu(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:f}),m=Gn(t.placement),y=_s(t.placement),_=!y,b=hy(m),x=p3(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,T=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,E=typeof T=="number"?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,M={x:0,y:0};if(w){if(a){var D,O=b==="y"?wr:xr,k=b==="y"?an:on,F=b==="y"?"height":"width",j=w[b],B=j+g[O],N=j-g[k],U=h?-C[F]/2:0,re=y===ps?S[F]:C[F],ae=y===ps?-C[F]:-S[F],me=t.elements.arrow,Te=h&&me?dy(me):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:VT(),Q=V[O],W=V[k],Y=Ll(0,S[F],Te[F]),se=_?S[F]/2-U-Y-Q-E.mainAxis:re-Y-Q-E.mainAxis,he=_?-S[F]/2+U+Y+W+E.mainAxis:ae+Y+W+E.mainAxis,Z=t.elements.arrow&&$u(t.elements.arrow),P=Z?b==="y"?Z.clientTop||0:Z.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=j+se-I-P,G=j+he-I,q=Ll(h?Gc(B,z):B,j,h?eo(N,G):N);w[b]=q,M[b]=q-j}if(s){var ne,ce=b==="x"?wr:xr,te=b==="x"?an:on,ie=w[x],K=x==="y"?"height":"width",_e=ie+g[ce],ve=ie-g[te],be=[wr,xr].indexOf(m)!==-1,Le=(ne=A==null?void 0:A[x])!=null?ne:0,Fe=be?_e:ie-S[K]-C[K]-Le+E.altAxis,tt=be?ie+S[K]+C[K]-Le-E.altAxis:ve,Je=h&&be?V5(Fe,ie,tt):Ll(h?Fe:_e,ie,h?tt:ve);w[x]=Je,M[x]=Je-ie}t.modifiersData[n]=M}}var m3={name:"preventOverflow",enabled:!0,phase:"main",fn:g3,requiresIfExists:["offset"]};function y3(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function _3(e){return e===An(e)||!tn(e)?vy(e):y3(e)}function b3(e){var t=e.getBoundingClientRect(),r=ms(t.width)/e.offsetWidth||1,n=ms(t.height)/e.offsetHeight||1;return r!==1||n!==1}function w3(e,t,r){r===void 0&&(r=!1);var n=tn(t),i=tn(t)&&b3(t),a=oa(t),o=ys(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((qn(t)!=="body"||gy(a))&&(s=_3(t)),tn(t)?(l=ys(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=py(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function x3(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function S3(e){var t=x3(e);return F5.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function C3(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function T3(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var vb={placement:"bottom",modifiers:[],strategy:"absolute"};function pb(){for(var e=arguments.length,t=new Array(e),r=0;r{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return $d(()=>r()),{registerTimeout:t,cancelTimeout:r}}let zo=[];const gb=e=>{const t=e;t.key===Lt.esc&&zo.forEach(r=>r(t))},P3=e=>{Et(()=>{zo.length===0&&document.addEventListener("keydown",gb),Rt&&zo.push(e)}),tr(()=>{zo=zo.filter(t=>t!==e),zo.length===0&&Rt&&document.removeEventListener("keydown",gb)})};let mb;const QT=()=>{const e=aa("namespace",sy),t=BT(),r=$(()=>`${e.value}-popper-container-${t.prefix}`),n=$(()=>`#${r.value}`);return{id:r,selector:n}},L3=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},D3=()=>{Ed(()=>{if(!Rt)return;const{id:e,selector:t}=QT();!mb&&!document.body.querySelector(t.value)&&(mb=L3(e.value))})},I3=at({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),JT=({showAfter:e,hideAfter:t,open:r,close:n})=>{const{registerTimeout:i}=E3();return{onOpen:s=>{i(()=>{r(s)},L(e))},onClose:s=>{i(()=>{n(s)},L(t))}}},eM=Symbol("elForwardRef"),R3=e=>{Ct(eM,{setForwardRef:r=>{e.value=r}})},O3=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),yb=H(0),yy=()=>{const e=aa("zIndex",2e3),t=$(()=>e.value+yb.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(yb.value++,t.value)}};var Qe=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const k3=at({size:{type:Ae([Number,String])},color:{type:String}}),N3=ue({name:"ElIcon",inheritAttrs:!1}),B3=ue({...N3,props:k3,setup(e){const t=e,r=Ne("icon"),n=$(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:Wc(i)?void 0:vs(i),"--color":a}});return(i,a)=>(X(),Se("i",go({class:L(r).b(),style:L(n)},i.$attrs),[Be(i.$slots,"default")],16))}});var F3=Qe(B3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const Cn=Er(F3),Yo=4,$3={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},H3=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),z3=at({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),W3="Thumb",V3=ue({__name:"thumb",props:z3,setup(e){const t=e,r=De(OT),n=Ne("scrollbar");r||lo(W3,"can not inject scrollbar context");const i=H(),a=H(),o=H({}),s=H(!1);let l=!1,u=!1,f=Rt?document.onselectstart:null;const c=$(()=>$3[t.vertical?"vertical":"horizontal"]),d=$(()=>H3({size:t.size,move:t.move,bar:c.value})),h=$(()=>i.value[c.value.offset]**2/r.wrapElement[c.value.scrollSize]/t.ratio/a.value[c.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[c.value.axis]=C[c.value.offset]-(w[c.value.client]-C.getBoundingClientRect()[c.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[c.value.direction]-w[c.value.client]),C=a.value[c.value.offset]/2,T=(S-C)*100*h.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=T*r.wrapElement[c.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),f=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[c.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[c.value.direction]-w[c.value.client])*-1,T=a.value[c.value.offset]-S,E=(C-T)*100*h.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=E*r.wrapElement[c.value.scrollSize]/100},y=()=>{l=!1,o.value[c.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};tr(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==f&&(document.onselectstart=f)};return $n(wn(r,"scrollbarElement"),"mousemove",_),$n(wn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(X(),Ie(Kn,{name:L(n).b("fade"),persisted:""},{default:ee(()=>[sr(le("div",{ref_key:"instance",ref:i,class:de([L(n).e("bar"),L(n).is(L(c).key)]),onMousedown:p},[le("div",{ref_key:"thumb",ref:a,class:de(L(n).e("thumb")),style:At(L(d)),onMousedown:v},null,38)],34),[[oo,w.always||s.value]])]),_:1},8,["name"]))}});var _b=Qe(V3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const G3=at({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),U3=ue({__name:"bar",props:G3,setup(e,{expose:t}){const r=e,n=H(0),i=H(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Yo,l=o.offsetWidth-Yo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(X(),Se(wt,null,[J(_b,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),J(_b,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var Y3=Qe(U3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const q3=at({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Ae([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),j3={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(_r)},K3="ElScrollbar",X3=ue({name:K3}),Z3=ue({...X3,props:q3,emits:j3,setup(e,{expose:t,emit:r}){const n=e,i=Ne("scrollbar");let a,o;const s=H(),l=H(),u=H(),f=H("0"),c=H("0"),d=H(),h=H(1),v=H(1),p=$(()=>{const S={};return n.height&&(S.height=vs(n.height)),n.maxHeight&&(S.maxHeight=vs(n.maxHeight)),[n.wrapStyle,S]}),g=$(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=$(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=d.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){je(S)?l.value.scrollTo(S):_r(S)&&_r(C)&&l.value.scrollTo(S,C)}const b=S=>{_r(S)&&(l.value.scrollTop=S)},x=S=>{_r(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Yo,C=l.value.offsetWidth-Yo,T=S**2/l.value.scrollHeight,E=C**2/l.value.scrollWidth,A=Math.max(T,n.minSize),M=Math.max(E,n.minSize);h.value=T/(S-T)/(A/(S-A)),v.value=E/(C-E)/(M/(C-M)),c.value=A+Yon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=ds(u,w),o=$n("resize",w))},{immediate:!0}),Me(()=>[n.maxHeight,n.height],()=>{n.native||Ht(()=>{var S;w(),l.value&&((S=d.value)==null||S.handleScroll(l.value))})}),Ct(OT,ln({scrollbarElement:s,wrapElement:l})),Et(()=>{n.native||Ht(()=>{w()})}),Pd(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(X(),Se("div",{ref_key:"scrollbarRef",ref:s,class:de(L(i).b())},[le("div",{ref_key:"wrapRef",ref:l,class:de(L(g)),style:At(L(p)),onScroll:y},[(X(),Ie(hi(S.tag),{ref_key:"resizeRef",ref:u,class:de(L(m)),style:At(S.viewStyle)},{default:ee(()=>[Be(S.$slots,"default")]),_:3},8,["class","style"]))],38),S.native?ct("v-if",!0):(X(),Ie(Y3,{key:0,ref_key:"barRef",ref:d,height:c.value,width:f.value,always:S.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var Q3=Qe(Z3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const tM=Er(Q3),J3=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],rM=at({role:{type:String,values:J3,default:"tooltip"}}),e4=ue({name:"ElPopperRoot",inheritAttrs:!1}),t4=ue({...e4,props:rM,setup(e,{expose:t}){const r=e,n=H(),i=H(),a=H(),o=H(),s=$(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),Ct(iy,l),(u,f)=>Be(u.$slots,"default")}});var r4=Qe(t4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const nM=at({arrowOffset:{type:Number,default:5}}),n4=ue({name:"ElPopperArrow",inheritAttrs:!1}),i4=ue({...n4,props:nM,setup(e,{expose:t}){const r=e,n=Ne("popper"),{arrowOffset:i,arrowRef:a}=De(kT,void 0);return Me(()=>r.arrowOffset,o=>{i.value=o}),tr(()=>{a.value=void 0}),t({arrowRef:a}),(o,s)=>(X(),Se("span",{ref_key:"arrowRef",ref:a,class:de(L(n).e("arrow")),"data-popper-arrow":""},null,2))}});var a4=Qe(i4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const o4="ElOnlyChild",s4=ue({name:o4,setup(e,{slots:t,attrs:r}){var n;const i=De(eM),a=O3((n=i==null?void 0:i.setForwardRef)!=null?n:or);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=iM(s);return l?sr(vi(l,r),[[a]]):null}}});function iM(e){if(!e)return null;const t=e;for(const r of t){if(je(r))switch(r.type){case br:continue;case Is:case"svg":return bb(r);case wt:return iM(r.children);default:return r}return bb(r)}return null}function bb(e){const t=Ne("only-child");return J("span",{class:t.e("content")},[e])}const aM=at({virtualRef:{type:Ae(Object)},virtualTriggering:Boolean,onMouseenter:{type:Ae(Function)},onMouseleave:{type:Ae(Function)},onClick:{type:Ae(Function)},onKeydown:{type:Ae(Function)},onFocus:{type:Ae(Function)},onBlur:{type:Ae(Function)},onContextmenu:{type:Ae(Function)},id:String,open:Boolean}),l4=ue({name:"ElPopperTrigger",inheritAttrs:!1}),u4=ue({...l4,props:aM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=De(iy,void 0);R3(i);const a=$(()=>s.value?r.id:void 0),o=$(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=$(()=>{if(n&&n.value!=="tooltip")return n.value}),l=$(()=>s.value?`${r.open}`:void 0);let u;return Et(()=>{Me(()=>r.virtualRef,f=>{f&&(i.value=zi(f))},{immediate:!0}),Me(i,(f,c)=>{u==null||u(),u=void 0,hs(f)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(f.addEventListener(d.slice(2).toLowerCase(),v),(h=c==null?void 0:c.removeEventListener)==null||h.call(c,d.slice(2).toLowerCase(),v))}),u=Me([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{ty(d[v])?f.removeAttribute(h):f.setAttribute(h,d[v])})},{immediate:!0})),hs(c)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>c.removeAttribute(d))},{immediate:!0})}),tr(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(f,c)=>f.virtualTriggering?ct("v-if",!0):(X(),Ie(L(s4),go({key:0},f.$attrs,{"aria-controls":L(a),"aria-describedby":L(o),"aria-expanded":L(l),"aria-haspopup":L(s)}),{default:ee(()=>[Be(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var f4=Qe(u4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Rh="focus-trap.focus-after-trapped",Oh="focus-trap.focus-after-released",c4="focus-trap.focusout-prevented",wb={cancelable:!0,bubbles:!1},d4={cancelable:!0,bubbles:!1},xb="focusAfterTrapped",Sb="focusAfterReleased",h4=Symbol("elFocusTrap"),_y=H(),Yd=H(0),by=H(0);let of=0;const oM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Cb=(e,t)=>{for(const r of e)if(!v4(r,t))return r},v4=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},p4=e=>{const t=oM(e),r=Cb(t,e),n=Cb(t.reverse(),e);return[r,n]},g4=e=>e instanceof HTMLInputElement&&"select"in e,ki=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),by.value=window.performance.now(),e!==r&&g4(e)&&t&&e.select()}};function Tb(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const m4=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=Tb(e,n),e.unshift(n)},remove:n=>{var i,a;e=Tb(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},y4=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(ki(n,t),document.activeElement!==r)return},Mb=m4(),_4=()=>Yd.value>by.value,sf=()=>{_y.value="pointer",Yd.value=window.performance.now()},Ab=()=>{_y.value="keyboard",Yd.value=window.performance.now()},b4=()=>(Et(()=>{of===0&&(document.addEventListener("mousedown",sf),document.addEventListener("touchstart",sf),document.addEventListener("keydown",Ab)),of++}),tr(()=>{of--,of<=0&&(document.removeEventListener("mousedown",sf),document.removeEventListener("touchstart",sf),document.removeEventListener("keydown",Ab))}),{focusReason:_y,lastUserFocusTimestamp:Yd,lastAutomatedFocusTimestamp:by}),lf=e=>new CustomEvent(c4,{...d4,detail:e}),w4=ue({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[xb,Sb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=H();let n,i;const{focusReason:a}=b4();P3(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===Lt.tab&&!g&&!m&&!y,S=document.activeElement;if(w&&S){const C=_,[T,E]=p4(C);if(T&&E){if(!b&&S===E){const M=lf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),x&&ki(T,!0))}else if(b&&[T,C].includes(S)){const M=lf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),x&&ki(E,!0))}}else if(S===C){const M=lf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||v.preventDefault()}}};Ct(h4,{focusTrapRef:r,onKeydown:s}),Me(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),Me([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",f),v.addEventListener("focusout",c)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",f),p.removeEventListener("focusout",c))});const l=v=>{t(xb,v)},u=v=>t(Sb,v),f=v=>{const p=L(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:ki(i,!0))},c=v=>{const p=L(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!ty(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=lf({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||ki(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Ht();const v=L(r);if(v){Mb.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Rh,wb);v.addEventListener(Rh,l),v.dispatchEvent(m),m.defaultPrevented||Ht(()=>{let y=e.focusStartEl;Ue(y)||(ki(y),document.activeElement!==y&&(y="first")),y==="first"&&y4(oM(v),!0),(document.activeElement===p||y==="container")&&ki(v)})}}}function h(){const v=L(r);if(v){v.removeEventListener(Rh,l);const p=new CustomEvent(Oh,{...wb,detail:{focusReason:a.value}});v.addEventListener(Oh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!_4())&&ki(n??document.body),v.removeEventListener(Oh,l),Mb.remove(o)}}return Et(()=>{e.trapped&&d(),Me(()=>e.trapped,v=>{v?d():h()})}),tr(()=>{e.trapped&&h()}),{onKeydown:s}}});function x4(e,t,r,n,i,a){return Be(e.$slots,"default",{handleKeydown:e.onKeydown})}var S4=Qe(w4,[["render",x4],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const C4=["fixed","absolute"],T4=at({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Ae(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:fy,default:"bottom"},popperOptions:{type:Ae(Object),default:()=>({})},strategy:{type:String,values:C4,default:"absolute"}}),sM=at({...T4,id:String,style:{type:Ae([String,Array,Object])},className:{type:Ae([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Ae([String,Array,Object])},popperStyle:{type:Ae([String,Array,Object])},referenceEl:{type:Ae(Object)},triggerTargetEl:{type:Ae(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),M4={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},Eb=(e,t)=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:E4(e)};return P4(a,t),L4(a,i==null?void 0:i.modifiers),a},A4=e=>{if(Rt)return zi(e)};function E4(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function P4(e,{arrowEl:t,arrowOffset:r}){e.modifiers.push({name:"arrow",options:{element:t,padding:r??5}})}function L4(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const D4=ue({name:"ElPopperContent"}),I4=ue({...D4,props:sM,emits:M4,setup(e,{expose:t,emit:r}){const n=e,{popperInstanceRef:i,contentRef:a,triggerRef:o,role:s}=De(iy,void 0),l=De(uo,void 0),{nextZIndex:u}=yy(),f=Ne("popper"),c=H(),d=H("first"),h=H(),v=H();Ct(kT,{arrowRef:h,arrowOffset:v}),l&&(l.addInputId||l.removeInputId)&&Ct(uo,{...l,addInputId:or,removeInputId:or});const p=H(n.zIndex||u()),g=H(!1);let m;const y=$(()=>A4(n.referenceEl)||L(o)),_=$(()=>[{zIndex:L(p)},n.popperStyle]),b=$(()=>[f.b(),f.is("pure",n.pure),f.is(n.effect),n.popperClass]),x=$(()=>s&&s.value==="dialog"?"false":void 0),w=({referenceEl:O,popperContentEl:k,arrowEl:F})=>{const j=Eb(n,{arrowEl:F,arrowOffset:L(v)});return ZT(O,k,j)},S=(O=!0)=>{var k;(k=L(i))==null||k.update(),O&&(p.value=n.zIndex||u())},C=()=>{var O,k;const F={name:"eventListeners",enabled:n.visible};(k=(O=L(i))==null?void 0:O.setOptions)==null||k.call(O,j=>({...j,modifiers:[...j.modifiers||[],F]})),S(!1),n.visible&&n.focusOnShow?g.value=!0:n.visible===!1&&(g.value=!1)},T=()=>{r("focus")},E=O=>{var k;((k=O.detail)==null?void 0:k.focusReason)!=="pointer"&&(d.value="first",r("blur"))},A=O=>{n.visible&&!g.value&&(O.target&&(d.value=O.target),g.value=!0)},M=O=>{n.trapping||(O.detail.focusReason==="pointer"&&O.preventDefault(),g.value=!1)},D=()=>{g.value=!1,r("close")};return Et(()=>{let O;Me(y,k=>{var F;O==null||O();const j=L(i);if((F=j==null?void 0:j.destroy)==null||F.call(j),k){const B=L(c);a.value=B,i.value=w({referenceEl:k,popperContentEl:B,arrowEl:L(h)}),O=Me(()=>k.getBoundingClientRect(),()=>S(),{immediate:!0})}else i.value=void 0},{immediate:!0}),Me(()=>n.triggerTargetEl,(k,F)=>{m==null||m(),m=void 0;const j=L(k||c.value),B=L(F||c.value);hs(j)&&(m=Me([s,()=>n.ariaLabel,x,()=>n.id],N=>{["role","aria-label","aria-modal","id"].forEach((U,re)=>{ty(N[re])?j.removeAttribute(U):j.setAttribute(U,N[re])})},{immediate:!0})),B!==j&&hs(B)&&["role","aria-label","aria-modal","id"].forEach(N=>{B.removeAttribute(N)})},{immediate:!0}),Me(()=>n.visible,C,{immediate:!0}),Me(()=>Eb(n,{arrowEl:L(h),arrowOffset:L(v)}),k=>{var F;return(F=i.value)==null?void 0:F.setOptions(k)})}),tr(()=>{m==null||m(),m=void 0}),t({popperContentRef:c,popperInstanceRef:i,updatePopper:S,contentStyle:_}),(O,k)=>(X(),Se("div",{ref_key:"popperContentRef",ref:c,style:At(L(_)),class:de(L(b)),tabindex:"-1",onMouseenter:k[0]||(k[0]=F=>O.$emit("mouseenter",F)),onMouseleave:k[1]||(k[1]=F=>O.$emit("mouseleave",F))},[J(L(S4),{trapped:g.value,"trap-on-focus-in":!0,"focus-trap-el":c.value,"focus-start-el":d.value,onFocusAfterTrapped:T,onFocusAfterReleased:E,onFocusin:A,onFocusoutPrevented:M,onReleaseRequested:D},{default:ee(()=>[Be(O.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el"])],38))}});var R4=Qe(I4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const O4=Er(r4),k4=Ne("tooltip"),qr=at({...I3,...sM,appendTo:{type:Ae([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Ae(Boolean),default:null},transition:{type:String,default:`${k4.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),du=at({...aM,disabled:Boolean,trigger:{type:Ae([String,Array]),default:"hover"},triggerKeys:{type:Ae(Array),default:()=>[Lt.enter,Lt.space]}}),{useModelToggleProps:N4,useModelToggleEmits:B4,useModelToggle:F4}=M5("visible"),$4=at({...rM,...N4,...qr,...du,...nM,showArrow:{type:Boolean,default:!0}}),H4=[...B4,"before-show","before-hide","show","hide","open","close"],z4=(e,t)=>ye(e)?e.includes(t):e===t,Co=(e,t,r)=>n=>{z4(L(e),t)&&r(n)},W4=ue({name:"ElTooltipTrigger"}),V4=ue({...W4,props:du,setup(e,{expose:t}){const r=e,n=Ne("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=De(ay,void 0),f=H(null),c=()=>{if(L(i)||r.disabled)return!0},d=wn(r,"trigger"),h=si(c,Co(d,"hover",s)),v=si(c,Co(d,"hover",l)),p=si(c,Co(d,"click",b=>{b.button===0&&u(b)})),g=si(c,Co(d,"focus",s)),m=si(c,Co(d,"focus",l)),y=si(c,Co(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=si(c,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:f}),(b,x)=>(X(),Ie(L(f4),{id:L(a),"virtual-ref":b.virtualRef,open:L(o),"virtual-triggering":b.virtualTriggering,class:de(L(n).e("trigger")),onBlur:L(m),onClick:L(p),onContextmenu:L(y),onFocus:L(g),onMouseenter:L(h),onMouseleave:L(v),onKeydown:L(_)},{default:ee(()=>[Be(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var G4=Qe(V4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const U4=ue({name:"ElTooltipContent",inheritAttrs:!1}),Y4=ue({...U4,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=QT(),i=H(null),a=H(!1),{controlled:o,id:s,open:l,trigger:u,onClose:f,onOpen:c,onShow:d,onHide:h,onBeforeShow:v,onBeforeHide:p}=De(ay,void 0),g=$(()=>r.persistent);tr(()=>{a.value=!0});const m=$(()=>L(g)?!0:L(l)),y=$(()=>r.disabled?!1:L(l)),_=$(()=>r.appendTo||n.value),b=$(()=>{var k;return(k=r.style)!=null?k:{}}),x=$(()=>!L(l)),w=()=>{h()},S=()=>{if(L(o))return!0},C=si(S,()=>{r.enterable&&L(u)==="hover"&&c()}),T=si(S,()=>{L(u)==="hover"&&f()}),E=()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k),v==null||v()},A=()=>{p==null||p()},M=()=>{d(),O=t$($(()=>{var k;return(k=i.value)==null?void 0:k.popperContentRef}),()=>{if(L(o))return;L(u)!=="hover"&&f()})},D=()=>{r.virtualTriggering||f()};let O;return Me(()=>L(l),k=>{k||O==null||O()},{flush:"post"}),Me(()=>r.content,()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k)}),t({contentRef:i}),(k,F)=>(X(),Ie(hI,{disabled:!k.teleported,to:L(_)},[J(Kn,{name:k.transition,onAfterLeave:w,onBeforeEnter:E,onAfterEnter:M,onBeforeLeave:A},{default:ee(()=>[L(m)?sr((X(),Ie(L(R4),go({key:0,id:L(s),ref_key:"contentRef",ref:i},k.$attrs,{"aria-label":k.ariaLabel,"aria-hidden":L(x),"boundaries-padding":k.boundariesPadding,"fallback-placements":k.fallbackPlacements,"gpu-acceleration":k.gpuAcceleration,offset:k.offset,placement:k.placement,"popper-options":k.popperOptions,strategy:k.strategy,effect:k.effect,enterable:k.enterable,pure:k.pure,"popper-class":k.popperClass,"popper-style":[k.popperStyle,L(b)],"reference-el":k.referenceEl,"trigger-target-el":k.triggerTargetEl,visible:L(y),"z-index":k.zIndex,onMouseenter:L(C),onMouseleave:L(T),onBlur:D,onClose:L(f)}),{default:ee(()=>[a.value?ct("v-if",!0):Be(k.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[oo,L(y)]]):ct("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var q4=Qe(Y4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const j4=["innerHTML"],K4={key:1},X4=ue({name:"ElTooltip"}),Z4=ue({...X4,props:$4,emits:H4,setup(e,{expose:t,emit:r}){const n=e;D3();const i=ly(),a=H(),o=H(),s=()=>{var m;const y=L(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=H(!1),u=H(),{show:f,hide:c,hasUpdateHandler:d}=F4({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=JT({showAfter:wn(n,"showAfter"),hideAfter:wn(n,"hideAfter"),open:f,close:c}),p=$(()=>pi(n.visible)&&!d.value);Ct(ay,{controlled:p,id:i,open:xd(l),trigger:wn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{L(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),Me(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return TC(()=>l.value&&c()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:c}),(m,y)=>(X(),Ie(L(O4),{ref_key:"popperRef",ref:a,role:m.role},{default:ee(()=>[J(G4,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:ee(()=>[m.$slots.default?Be(m.$slots,"default",{key:0}):ct("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),J(q4,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:ee(()=>[Be(m.$slots,"content",{},()=>[m.rawContent?(X(),Se("span",{key:0,innerHTML:m.content},null,8,j4)):(X(),Se("span",K4,Re(m.content),1))]),m.showArrow?(X(),Ie(L(a4),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):ct("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var Q4=Qe(Z4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const qd=Er(Q4),J4=at({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),eH=["textContent"],tH=ue({name:"ElBadge"}),rH=ue({...tH,props:J4,setup(e,{expose:t}){const r=e,n=Ne("badge"),i=$(()=>r.isDot?"":_r(r.value)&&_r(r.max)?r.max(X(),Se("div",{class:de(L(n).b())},[Be(a.$slots,"default"),J(Kn,{name:`${L(n).namespace.value}-zoom-in-center`,persisted:""},{default:ee(()=>[sr(le("sup",{class:de([L(n).e("content"),L(n).em("content",a.type),L(n).is("fixed",!!a.$slots.default),L(n).is("dot",a.isDot)]),textContent:Re(L(i))},null,10,eH),[[oo,!a.hidden&&(L(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var nH=Qe(rH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const iH=Er(nH),aH=(e,t)=>{m5({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},$(()=>e.type==="text"));const r=De(DT,void 0),n=aa("button"),{form:i}=Gd(),a=fo($(()=>r==null?void 0:r.size)),o=oy(),s=H(),l=Id(),u=$(()=>e.type||(r==null?void 0:r.type)||""),f=$(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),c=$(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(f.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Is){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:c,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},oH=["default","primary","success","warning","info","danger","text",""],sH=["button","submit","reset"],Vp=at({size:Vd,disabled:Boolean,type:{type:String,values:oH,default:""},icon:{type:Wi},nativeType:{type:String,values:sH,default:"button"},loading:Boolean,loadingIcon:{type:Wi,default:()=>AT},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),lH={click:e=>e instanceof MouseEvent};function qt(e,t){uH(e)&&(e="100%");var r=fH(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function uf(e){return Math.min(1,Math.max(0,e))}function uH(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function fH(e){return typeof e=="string"&&e.indexOf("%")!==-1}function lM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ff(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ya(e){return e.length===1?"0"+e:String(e)}function cH(e,t,r){return{r:qt(e,255)*255,g:qt(t,255)*255,b:qt(r,255)*255}}function Pb(e,t,r){e=qt(e,255),t=qt(t,255),r=qt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function dH(e,t,r){var n,i,a;if(e=qt(e,360),t=qt(t,100),r=qt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=kh(s,o,e+1/3),i=kh(s,o,e),a=kh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function Lb(e,t,r){e=qt(e,255),t=qt(t,255),r=qt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var Gp={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function mH(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=bH(e)),typeof e=="object"&&(ti(e.r)&&ti(e.g)&&ti(e.b)?(t=cH(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ti(e.h)&&ti(e.s)&&ti(e.v)?(n=ff(e.s),i=ff(e.v),t=hH(e.h,n,i),o=!0,s="hsv"):ti(e.h)&&ti(e.s)&&ti(e.l)&&(n=ff(e.s),a=ff(e.l),t=dH(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=lM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var yH="[-\\+]?\\d+%?",_H="[-\\+]?\\d*\\.\\d+%?",Vi="(?:".concat(_H,")|(?:").concat(yH,")"),Nh="[\\s|\\(]+(".concat(Vi,")[,|\\s]+(").concat(Vi,")[,|\\s]+(").concat(Vi,")\\s*\\)?"),Bh="[\\s|\\(]+(".concat(Vi,")[,|\\s]+(").concat(Vi,")[,|\\s]+(").concat(Vi,")[,|\\s]+(").concat(Vi,")\\s*\\)?"),dn={CSS_UNIT:new RegExp(Vi),rgb:new RegExp("rgb"+Nh),rgba:new RegExp("rgba"+Bh),hsl:new RegExp("hsl"+Nh),hsla:new RegExp("hsla"+Bh),hsv:new RegExp("hsv"+Nh),hsva:new RegExp("hsva"+Bh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function bH(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(Gp[e])e=Gp[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=dn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=dn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=dn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=dn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=dn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=dn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=dn.hex8.exec(e),r?{r:Lr(r[1]),g:Lr(r[2]),b:Lr(r[3]),a:Ib(r[4]),format:t?"name":"hex8"}:(r=dn.hex6.exec(e),r?{r:Lr(r[1]),g:Lr(r[2]),b:Lr(r[3]),format:t?"name":"hex"}:(r=dn.hex4.exec(e),r?{r:Lr(r[1]+r[1]),g:Lr(r[2]+r[2]),b:Lr(r[3]+r[3]),a:Ib(r[4]+r[4]),format:t?"name":"hex8"}:(r=dn.hex3.exec(e),r?{r:Lr(r[1]+r[1]),g:Lr(r[2]+r[2]),b:Lr(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ti(e){return Boolean(dn.CSS_UNIT.exec(String(e)))}var uM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=gH(t)),this.originalInput=t;var i=mH(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=lM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Lb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Lb(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Pb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Pb(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Db(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),vH(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(qt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(qt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Db(this.r,this.g,this.b,!1),r=0,n=Object.entries(Gp);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=uf(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=uf(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=uf(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=uf(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new uM(i),o=e.dark?a.tint(20).toString():Ei(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Ei(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Ei(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Ei(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Ei(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Ei(a,80):a.tint(80).toString());else{const s=e.dark?Ei(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Ei(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const xH=["aria-disabled","disabled","autofocus","type"],SH=ue({name:"ElButton"}),CH=ue({...SH,props:Vp,emits:lH,setup(e,{expose:t,emit:r}){const n=e,i=wH(n),a=Ne("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:f,handleClick:c}=aH(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:f}),(d,h)=>(X(),Se("button",{ref_key:"_ref",ref:o,class:de([L(a).b(),L(a).m(L(l)),L(a).m(L(s)),L(a).is("disabled",L(u)),L(a).is("loading",d.loading),L(a).is("plain",d.plain),L(a).is("round",d.round),L(a).is("circle",d.circle),L(a).is("text",d.text),L(a).is("link",d.link),L(a).is("has-bg",d.bg)]),"aria-disabled":L(u)||d.loading,disabled:L(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:At(L(i)),onClick:h[0]||(h[0]=(...v)=>L(c)&&L(c)(...v))},[d.loading?(X(),Se(wt,{key:0},[d.$slots.loading?Be(d.$slots,"loading",{key:0}):(X(),Ie(L(Cn),{key:1,class:de(L(a).is("loading"))},{default:ee(()=>[(X(),Ie(hi(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(X(),Ie(L(Cn),{key:1},{default:ee(()=>[d.icon?(X(),Ie(hi(d.icon),{key:0})):Be(d.$slots,"icon",{key:1})]),_:3})):ct("v-if",!0),d.$slots.default?(X(),Se("span",{key:2,class:de({[L(a).em("text","expand")]:L(f)})},[Be(d.$slots,"default")],2)):ct("v-if",!0)],14,xH))}});var TH=Qe(CH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const MH={size:Vp.size,type:Vp.type},AH=ue({name:"ElButtonGroup"}),EH=ue({...AH,props:MH,setup(e){const t=e;Ct(DT,ln({size:wn(t,"size"),type:wn(t,"type")}));const r=Ne("button");return(n,i)=>(X(),Se("div",{class:de(`${L(r).b("group")}`)},[Be(n.$slots,"default")],2))}});var fM=Qe(EH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const PH=Er(TH,{ButtonGroup:fM});ia(fM);var LH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Ni=new Map;let Rb;Rt&&(document.addEventListener("mousedown",e=>Rb=e),document.addEventListener("mouseup",e=>{for(const t of Ni.values())for(const{documentHandler:r}of t)r(e,Rb)}));function Ob(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:hs(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,f=e.contains(o)||e.contains(s),c=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||f||c||d||h||t.value(n,i)}}const DH={beforeMount(e,t){Ni.has(e)||Ni.set(e,[]),Ni.get(e).push({documentHandler:Ob(e,t),bindingFn:t.value})},updated(e,t){Ni.has(e)||Ni.set(e,[]);const r=Ni.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:Ob(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Ni.delete(e)}};var kb=!1,Va,Up,Yp,dc,hc,cM,vc,qp,jp,Kp,dM,Xp,Zp,hM,vM;function cr(){if(!kb){kb=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Xp=/\b(iPhone|iP[ao]d)/.exec(e),Zp=/\b(iP[ao]d)/.exec(e),Kp=/Android/i.exec(e),hM=/FBAN\/\w+;/i.exec(e),vM=/Mobile/i.exec(e),dM=!!/Win64/.exec(e),t){Va=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,Va&&document&&document.documentMode&&(Va=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);cM=n?parseFloat(n[1])+4:Va,Up=t[2]?parseFloat(t[2]):NaN,Yp=t[3]?parseFloat(t[3]):NaN,dc=t[4]?parseFloat(t[4]):NaN,dc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),hc=t&&t[1]?parseFloat(t[1]):NaN):hc=NaN}else Va=Up=Yp=hc=dc=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);vc=i?parseFloat(i[1].replace("_",".")):!0}else vc=!1;qp=!!r[2],jp=!!r[3]}else vc=qp=jp=!1}}var Qp={ie:function(){return cr()||Va},ieCompatibilityMode:function(){return cr()||cM>Va},ie64:function(){return Qp.ie()&&dM},firefox:function(){return cr()||Up},opera:function(){return cr()||Yp},webkit:function(){return cr()||dc},safari:function(){return Qp.webkit()},chrome:function(){return cr()||hc},windows:function(){return cr()||qp},osx:function(){return cr()||vc},linux:function(){return cr()||jp},iphone:function(){return cr()||Xp},mobile:function(){return cr()||Xp||Zp||Kp||vM},nativeApp:function(){return cr()||hM},android:function(){return cr()||Kp},ipad:function(){return cr()||Zp}},IH=Qp,cf=!!(typeof window<"u"&&window.document&&window.document.createElement),RH={canUseDOM:cf,canUseWorkers:typeof Worker<"u",canUseEventListeners:cf&&!!(window.addEventListener||window.attachEvent),canUseViewport:cf&&!!window.screen,isInWorker:!cf},pM=RH,gM;pM.canUseDOM&&(gM=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function OH(e,t){if(!pM.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&gM&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var kH=OH,Nb=10,Bb=40,Fb=800;function mM(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*Nb,i=r*Nb,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=Bb,i*=Bb):(n*=Fb,i*=Fb)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}mM.getEventType=function(){return IH.firefox()?"DOMMouseScroll":kH("wheel")?"wheel":"mousewheel"};var NH=mM;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const BH=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=NH(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},FH={beforeMount(e,t){BH(e,t.value)}},yM={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Vd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},_M={[zd]:e=>Ue(e)||_r(e)||pi(e),change:e=>Ue(e)||_r(e)||pi(e)},$H=({model:e,isChecked:t})=>{const r=De(Os,void 0),n=$(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!Wc(s)&&e.value.length>=s&&!t.value||!Wc(l)&&e.value.length<=l&&t.value});return{isDisabled:oy($(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},HH=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=De(Os,void 0),{formItem:s}=Gd(),{emit:l}=dt();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function f(v,p){l("change",u(v),p)}function c(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ht(),f(t.value,v)))}const h=$(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return Me(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:c,onClickRoot:d}},zH=e=>{const t=H(!1),{emit:r}=dt(),n=De(Os,void 0),i=$(()=>Wc(n)===!1),a=H(!1);return{model:$({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&ye(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(zd,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},WH=(e,t,{model:r})=>{const n=De(Os,void 0),i=H(!1),a=$(()=>{const u=r.value;return pi(u)?u:ye(u)?je(e.label)?u.map(Ze).some(f=>zF(f,e.label)):u.map(Ze).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=fo($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=fo($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=$(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},VH=(e,{model:t})=>{function r(){ye(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},bM=(e,t)=>{const{formItem:r}=Gd(),{model:n,isGroup:i,isLimitExceeded:a}=zH(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f}=WH(e,t,{model:n}),{isDisabled:c}=$H({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=FT(e,{formItemContext:r,disableIdGeneration:f,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=HH(e,{model:n,isLimitExceeded:a,hasOwnLabel:f,isDisabled:c,isLabeledByFormItem:h});return VH(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:c,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f,model:n,handleChange:v,onClickRoot:p}},GH=["tabindex","role","aria-checked"],UH=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],YH=["id","aria-hidden","disabled","value","name","tabindex"],qH=ue({name:"ElCheckbox"}),jH=ue({...qH,props:yM,emits:_M,setup(e){const t=e,r=Id(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:f,handleChange:c,onClickRoot:d}=bM(t,r),h=Ne("checkbox"),v=$(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=$(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(X(),Ie(hi(!L(u)&&L(i)?"span":"label"),{class:de(L(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:L(d)},{default:ee(()=>[le("span",{class:de(L(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?sr((X(),Se("input",{key:0,id:L(n),"onUpdate:modelValue":m[0]||(m[0]=y=>St(f)?f.value=y:null),class:de(L(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:L(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>L(c)&&L(c)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,UH)),[[Nc,L(f)]]):sr((X(),Se("input",{key:1,id:L(n),"onUpdate:modelValue":m[4]||(m[4]=y=>St(f)?f.value=y:null),class:de(L(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:L(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>L(c)&&L(c)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,YH)),[[Nc,L(f)]]),le("span",{class:de(L(h).e("inner"))},null,2)],10,GH),L(u)?(X(),Se("span",{key:0,class:de(L(h).e("label"))},[Be(g.$slots,"default"),g.$slots.default?ct("v-if",!0):(X(),Se(wt,{key:0},[kt(Re(g.label),1)],64))],2)):ct("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var KH=Qe(jH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const XH=["name","tabindex","disabled","true-value","false-value"],ZH=["name","tabindex","disabled","value"],QH=ue({name:"ElCheckboxButton"}),JH=ue({...QH,props:yM,emits:_M,setup(e){const t=e,r=Id(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=bM(t,r),u=De(Os,void 0),f=Ne("checkbox"),c=$(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=$(()=>[f.b("button"),f.bm("button",o.value),f.is("disabled",a.value),f.is("checked",i.value),f.is("focus",n.value)]);return(h,v)=>(X(),Se("label",{class:de(L(d))},[h.trueLabel||h.falseLabel?sr((X(),Se("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>St(s)?s.value=p:null),class:de(L(f).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:L(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>L(l)&&L(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,XH)),[[Nc,L(s)]]):sr((X(),Se("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>St(s)?s.value=p:null),class:de(L(f).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:L(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>L(l)&&L(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,ZH)),[[Nc,L(s)]]),h.$slots.default||h.label?(X(),Se("span",{key:2,class:de(L(f).be("button","inner")),style:At(L(i)?L(c):void 0)},[Be(h.$slots,"default",{},()=>[kt(Re(h.label),1)])],6)):ct("v-if",!0)],2))}});var wM=Qe(JH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const ez=at({modelValue:{type:Ae(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Vd,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),tz={[zd]:e=>ye(e),change:e=>ye(e)},rz=ue({name:"ElCheckboxGroup"}),nz=ue({...rz,props:ez,emits:tz,setup(e,{emit:t}){const r=e,n=Ne("checkbox"),{formItem:i}=Gd(),{inputId:a,isLabeledByFormItem:o}=FT(r,{formItemContext:i}),s=async u=>{t(zd,u),await Ht(),t("change",u)},l=$({get(){return r.modelValue},set(u){s(u)}});return Ct(Os,{...YF(Sd(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),Me(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,f)=>{var c;return X(),Ie(hi(u.tag),{id:L(a),class:de(L(n).b("group")),role:"group","aria-label":L(o)?void 0:u.label||"checkbox-group","aria-labelledby":L(o)?(c=L(i))==null?void 0:c.labelId:void 0},{default:ee(()=>[Be(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var xM=Qe(nz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const bs=Er(KH,{CheckboxButton:wM,CheckboxGroup:xM});ia(wM);ia(xM);const iz=at({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Wd,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),az={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},oz=ue({name:"ElTag"}),sz=ue({...oz,props:iz,emits:az,setup(e,{emit:t}){const r=e,n=fo(),i=Ne("tag"),a=$(()=>{const{type:l,hit:u,effect:f,closable:c,round:d}=r;return[i.b(),i.is("closable",c),i.m(l),i.m(n.value),i.m(f),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(X(),Se("span",{key:0,class:de(L(a)),style:At({backgroundColor:l.color}),onClick:s},[le("span",{class:de(L(i).e("content"))},[Be(l.$slots,"default")],2),l.closable?(X(),Ie(L(Cn),{key:0,class:de(L(i).e("close")),onClick:Ep(o,["stop"])},{default:ee(()=>[J(L(zp))]),_:1},8,["class","onClick"])):ct("v-if",!0)],6)):(X(),Ie(Kn,{key:1,name:`${L(i).namespace.value}-zoom-in-center`,appear:""},{default:ee(()=>[le("span",{class:de(L(a)),style:At({backgroundColor:l.color}),onClick:s},[le("span",{class:de(L(i).e("content"))},[Be(l.$slots,"default")],2),l.closable?(X(),Ie(L(Cn),{key:0,class:de(L(i).e("close")),onClick:Ep(o,["stop"])},{default:ee(()=>[J(L(zp))]),_:1},8,["class","onClick"])):ct("v-if",!0)],6)]),_:3},8,["name"]))}});var lz=Qe(sz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const uz=Er(lz),fz=at({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Ae([Number,Object]),default:()=>Wa({})},sm:{type:Ae([Number,Object]),default:()=>Wa({})},md:{type:Ae([Number,Object]),default:()=>Wa({})},lg:{type:Ae([Number,Object]),default:()=>Wa({})},xl:{type:Ae([Number,Object]),default:()=>Wa({})}}),cz=ue({name:"ElCol"}),dz=ue({...cz,props:fz,setup(e){const t=e,{gutter:r}=De(RT,{gutter:$(()=>0)}),n=Ne("col"),i=$(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=$(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const f=t[u];_r(f)&&(u==="span"?o.push(n.b(`${t[u]}`)):f>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{_r(t[u])?o.push(n.b(`${u}-${t[u]}`)):je(t[u])&&Object.entries(t[u]).forEach(([f,c])=>{o.push(f!=="span"?n.b(`${u}-${f}-${c}`):n.b(`${u}-${c}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(X(),Ie(hi(o.tag),{class:de(L(a)),style:At(L(i))},{default:ee(()=>[Be(o.$slots,"default")]),_:3},8,["class","style"]))}});var hz=Qe(dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const SM=Er(hz),vz=ue({name:"ElCollapseTransition"}),pz=ue({...vz,setup(e){const t=Ne("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(X(),Ie(Kn,go({name:L(t).b()},qD(r)),{default:ee(()=>[Be(n.$slots,"default")]),_:3},16,["name"]))}});var pc=Qe(pz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);pc.install=e=>{e.component(pc.name,pc)};const gz=pc,Jp={},mz=at({a11y:{type:Boolean,default:!0},locale:{type:Ae(Object)},size:Vd,button:{type:Ae(Object)},experimentalFeatures:{type:Ae(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Ae(Object)},zIndex:Number,namespace:{type:String,default:"el"}});ue({name:"ElConfigProvider",props:mz,setup(e,{slots:t}){Me(()=>e.message,n=>{Object.assign(Jp,n??{})},{immediate:!0,deep:!0});const r=p5(e);return()=>Be(t,"default",{config:r==null?void 0:r.value})}});const yz=ue({inheritAttrs:!1});function _z(e,t,r,n,i,a){return Be(e.$slots,"default")}var bz=Qe(yz,[["render",_z],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const wz=ue({name:"ElCollectionItem",inheritAttrs:!1});function xz(e,t,r,n,i,a){return Be(e.$slots,"default")}var Sz=Qe(wz,[["render",xz],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const Cz="data-el-collection-item",Tz=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...bz,name:t,setup(){const s=H(null),l=new Map;Ct(n,{itemMap:l,getItems:()=>{const f=L(s);if(!f)return[];const c=Array.from(f.querySelectorAll(`[${Cz}]`));return[...l.values()].sort((h,v)=>c.indexOf(h.ref)-c.indexOf(v.ref))},collectionRef:s})}},o={...Sz,name:r,setup(s,{attrs:l}){const u=H(null),f=De(n,void 0);Ct(i,{collectionItemRef:u}),Et(()=>{const c=L(u);c&&f.itemMap.set(c,{ref:c,...l})}),tr(()=>{const c=L(u);f.itemMap.delete(c)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Fh=at({trigger:du.trigger,effect:{...qr.effect,default:"light"},type:{type:Ae(String)},placement:{type:Ae(String),default:"bottom"},popperOptions:{type:Ae(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Ae([Number,String]),default:0},maxHeight:{type:Ae([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Ae(Object)},teleported:qr.teleported});at({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wi}});at({onKeydown:{type:Ae(Function)}});Lt.down,Lt.pageDown,Lt.home;Lt.up,Lt.pageUp,Lt.end;Tz("Dropdown");const Mz=at({model:Object,rules:{type:Ae(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:{type:String,values:Wd},disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean}),Az={validate:(e,t,r)=>(ye(e)||Ue(e))&&pi(t)&&Ue(r)};function Ez(){const e=H([]),t=$(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const df=(e,t)=>{const r=Lp(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},Pz="ElForm",Lz=ue({name:Pz}),Dz=ue({...Lz,props:Mz,emits:Az,setup(e,{expose:t,emit:r}){const n=e,i=[],a=fo(),o=Ne("form"),s=$(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},f=(y=[])=>{n.model&&df(i,y).forEach(_=>_.resetField())},c=(y=[])=>{df(i,y).forEach(_=>_.clearValidate())},d=$(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=df(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const x of _)try{await x.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!Ee(_);try{const x=await p(y);return x===!0&&(_==null||_(x)),x}catch(x){if(x instanceof Error)throw x;const w=x;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=df(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView())};return Me(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),Ct(ks,ln({...Sd(n),emit:r,resetFields:f,clearValidate:c,validateField:g,addField:l,removeField:u,...Ez()})),t({validate:v,validateField:g,resetFields:f,clearValidate:c,scrollToField:m}),(y,_)=>(X(),Se("form",{class:de(L(s))},[Be(y.$slots,"default")],2))}});var Iz=Qe(Dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function qa(){return qa=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function gc(e,t,r){return Oz()?gc=Reflect.construct.bind():gc=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&hu(u,o.prototype),u},gc.apply(null,arguments)}function kz(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function tg(e){var t=typeof Map=="function"?new Map:void 0;return tg=function(n){if(n===null||!kz(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return gc(n,arguments,eg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),hu(i,n)},tg(e)}var Nz=/%[sdj%]/g,Bz=function(){};typeof process<"u"&&process.env;function rg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function Rr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function Fz(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Bt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||Fz(t)&&typeof e=="string"&&!e)}function $z(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function $b(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,s()\[\]\\.,;:\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},gl={integer:function(t){return gl.number(t)&&parseInt(t,10)===t},float:function(t){return gl.number(t)&&!gl.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 typeof t=="object"&&!gl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(Vb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(Uz())},hex:function(t){return typeof t=="string"&&!!t.match(Vb.hex)}},Yz=function(t,r,n,i,a){if(t.required&&r===void 0){CM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?gl[s](r)||i.push(Rr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(Rr(a.messages.types[s],t.fullField,t.type))},qz=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=r,c=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?c="number":h?c="string":v&&(c="array"),!c)return!1;v&&(f=r.length),h&&(f=r.replace(u,"_").length),o?f!==t.len&&i.push(Rr(a.messages[c].len,t.fullField,t.len)):s&&!l&&ft.max?i.push(Rr(a.messages[c].max,t.fullField,t.max)):s&&l&&(ft.max)&&i.push(Rr(a.messages[c].range,t.fullField,t.min,t.max))},To="enum",jz=function(t,r,n,i,a){t[To]=Array.isArray(t[To])?t[To]:[],t[To].indexOf(r)===-1&&i.push(Rr(a.messages[To],t.fullField,t[To].join(", ")))},Kz=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:CM,whitespace:Gz,type:Yz,range:qz,enum:jz,pattern:Kz},Xz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),Bt(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},Zz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},Qz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},Jz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},e6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),Bt(r)||Ye.type(t,r,i,o,a)}n(o)},t6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},r6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},n6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},i6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},a6="enum",o6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[a6](t,r,i,o,a)}n(o)},s6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),Bt(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},l6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!Bt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},u6=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},$h=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(Bt(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),Bt(r,o)||Ye.type(t,r,i,s,a)}n(s)},f6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},Il={string:Xz,method:Zz,number:Qz,boolean:Jz,regexp:e6,integer:t6,float:r6,array:n6,object:i6,enum:o6,pattern:s6,date:l6,url:$h,hex:$h,email:$h,required:u6,any:f6};function ng(){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 ig=ng(),Hu=function(){function e(r){this.rules=null,this._messages=ig,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Wb(ng(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function f(p){var g=[],m={};function y(b){if(Array.isArray(b)){var x;g=(x=g).concat.apply(x,b)}else g.push(b)}for(var _=0;_");const i=Ne("form"),a=H(),o=H(0),s=()=>{var f;if((f=a.value)!=null&&f.firstElementChild){const c=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(c))}else return 0},l=(f="update")=>{Ht(()=>{t.default&&e.isAutoWidth&&(f==="update"?o.value=s():f==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return Et(()=>{u()}),tr(()=>{l("remove")}),Pd(()=>u()),Me(o,(f,c)=>{e.updateAll&&(r==null||r.registerLabelWidth(f,c))}),ds($(()=>{var f,c;return(c=(f=a.value)==null?void 0:f.firstElementChild)!=null?c:null}),u),()=>{var f,c;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return J("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(f=t.default)==null?void 0:f.call(t)])}else return J(wt,{ref:a},[(c=t.default)==null?void 0:c.call(t)])}}});const v6=["role","aria-labelledby"],p6=ue({name:"ElFormItem"}),g6=ue({...p6,props:d6,setup(e,{expose:t}){const r=e,n=Id(),i=De(ks,void 0),a=De(uo,void 0),o=fo(void 0,{formItem:!1}),s=Ne("form-item"),l=ly().value,u=H([]),f=H(""),c=JF(f,100),d=H(""),h=H();let v,p=!1;const g=$(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=vs(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=$(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&T)return{};const W=vs(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=$(()=>[s.b(),s.m(o.value),s.is("error",f.value==="error"),s.is("validating",f.value==="validating"),s.is("success",f.value==="success"),s.is("required",O.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=$(()=>pi(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=$(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=$(()=>r.prop?Ue(r.prop)?r.prop:r.prop.join("."):""),w=$(()=>!!(r.label||n.label)),S=$(()=>r.for||u.value.length===1?u.value[0]:void 0),C=$(()=>!S.value&&w.value),T=!!a,E=$(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return uc(W,r.prop).value}),A=$(()=>{const{required:W}=r,Y=[];r.rules&&Y.push(...Lp(r.rules));const se=i==null?void 0:i.rules;if(se&&r.prop){const he=uc(se,r.prop).value;he&&Y.push(...Lp(he))}if(W!==void 0){const he=Y.map((Z,P)=>[Z,P]).filter(([Z])=>Object.keys(Z).includes("required"));if(he.length>0)for(const[Z,P]of he)Z.required!==W&&(Y[P]={...Z,required:W});else Y.push({required:W})}return Y}),M=$(()=>A.value.length>0),D=W=>A.value.filter(se=>!se.trigger||!W?!0:Array.isArray(se.trigger)?se.trigger.includes(W):se.trigger===W).map(({trigger:se,...he})=>he),O=$(()=>A.value.some(W=>W.required)),k=$(()=>{var W;return c.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),F=$(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),j=W=>{f.value=W},B=W=>{var Y,se;const{errors:he,fields:Z}=W;(!he||!Z)&&console.error(W),j("error"),d.value=he?(se=(Y=he==null?void 0:he[0])==null?void 0:Y.message)!=null?se:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},N=()=>{j("success"),i==null||i.emit("validate",r.prop,!0,"")},U=async W=>{const Y=x.value;return new Hu({[Y]:W}).validate({[Y]:E.value},{firstFields:!0}).then(()=>(N(),!0)).catch(he=>(B(he),Promise.reject(he)))},re=async(W,Y)=>{if(p||!r.prop)return!1;const se=Ee(Y);if(!M.value)return Y==null||Y(!1),!1;const he=D(W);return he.length===0?(Y==null||Y(!0),!0):(j("validating"),U(he).then(()=>(Y==null||Y(!0),!0)).catch(Z=>{const{fields:P}=Z;return Y==null||Y(!1,P),se?!1:Promise.reject(P)}))},ae=()=>{j(""),d.value="",p=!1},me=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const Y=uc(W,r.prop);p=!0,Y.value=q_(v),await Ht(),ae(),p=!1},Te=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(Y=>Y!==W)};Me(()=>r.error,W=>{d.value=W||"",j(W?"error":"")},{immediate:!0}),Me(()=>r.validateStatus,W=>j(W||""));const Q=ln({...Sd(r),$el:h,size:o,validateState:f,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Te,removeInputId:V,resetField:me,clearValidate:ae,validate:re});return Ct(uo,Q),Et(()=>{r.prop&&(i==null||i.addField(Q),v=q_(E.value))}),tr(()=>{i==null||i.removeField(Q)}),t({size:o,validateMessage:d,validateState:f,validate:re,clearValidate:ae,resetField:me}),(W,Y)=>{var se;return X(),Se("div",{ref_key:"formItemRef",ref:h,class:de(L(y)),role:L(C)?"group":void 0,"aria-labelledby":L(C)?L(l):void 0},[J(L(h6),{"is-auto-width":L(g).width==="auto","update-all":((se=L(i))==null?void 0:se.labelWidth)==="auto"},{default:ee(()=>[L(w)?(X(),Ie(hi(L(S)?"label":"div"),{key:0,id:L(l),for:L(S),class:de(L(s).e("label")),style:At(L(g))},{default:ee(()=>[Be(W.$slots,"label",{label:L(F)},()=>[kt(Re(L(F)),1)])]),_:3},8,["id","for","class","style"])):ct("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),le("div",{class:de(L(s).e("content")),style:At(L(m))},[Be(W.$slots,"default"),J(Kn,{name:`${L(s).namespace.value}-zoom-in-top`},{default:ee(()=>[L(k)?Be(W.$slots,"error",{key:0,error:d.value},()=>[le("div",{class:de(L(b))},Re(d.value),3)]):ct("v-if",!0)]),_:3},8,["name"])],6)],10,v6)}}});var TM=Qe(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const MM=Er(Iz,{FormItem:TM}),AM=ia(TM);let m6=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Lt.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Lt.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Lt.tab:{lc(t,"mouseleave");break}case Lt.enter:case Lt.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},y6=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new m6(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Lt.down:{lc(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Lt.up:{lc(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Lt.tab:{lc(t.currentTarget,"mouseleave");break}case Lt.enter:case Lt.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},_6=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new y6(n,t)})}};const b6=ue({name:"ElMenuCollapseTransition",setup(){const e=Ne("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Uo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){rs(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Pl(r,e.m("collapse"))?(rs(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Uo(r,e.m("collapse"))):(Uo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),rs(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Uo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function w6(e,t,r,n,i,a){return X(),Ie(Kn,go({mode:"out-in"},e.listeners),{default:ee(()=>[Be(e.$slots,"default")]),_:3},16)}var x6=Qe(b6,[["render",w6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function EM(e,t){const r=$(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:$(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function S6(e){return $(()=>{const r=e.backgroundColor;return r?new uM(r).shade(20).toString():""})}const PM=(e,t)=>{const r=Ne("menu");return $(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":S6(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},C6=at({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wi},expandOpenIcon:{type:Wi},collapseCloseIcon:{type:Wi},collapseOpenIcon:{type:Wi}}),Hh="ElSubMenu";var wy=ue({name:Hh,props:C6,setup(e,{slots:t,expose:r}){const n=dt(),{indexPath:i,parentMenu:a}=EM(n,$(()=>e.index)),o=Ne("menu"),s=Ne("sub-menu"),l=De("rootMenu");l||lo(Hh,"can not inject root menu");const u=De(`subMenu:${a.value.uid}`);u||lo(Hh,"can not inject sub menu");const f=H({}),c=H({});let d;const h=H(!1),v=H(),p=H(null),g=$(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=$(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:CT:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:ny),y=$(()=>u.level===0),_=$(()=>e.popperAppendToBody===void 0?y.value:Boolean(e.popperAppendToBody)),b=$(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=$(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=$(()=>l.openedMenus.includes(e.index)),S=$(()=>{let N=!1;return Object.values(f.value).forEach(U=>{U.active&&(N=!0)}),Object.values(c.value).forEach(U=>{U.active&&(N=!0)}),N}),C=$(()=>l.props.backgroundColor||""),T=$(()=>l.props.activeTextColor||""),E=$(()=>l.props.textColor||""),A=$(()=>l.props.mode),M=ln({index:e.index,indexPath:i,active:S}),D=$(()=>A.value!=="horizontal"?{color:E.value}:{borderBottomColor:S.value?l.props.activeTextColor?T.value:"":"transparent",color:S.value?T.value:E.value}),O=()=>{var N,U,re;return(re=(U=(N=p.value)==null?void 0:N.popperRef)==null?void 0:U.popperInstanceRef)==null?void 0:re.destroy()},k=N=>{N||O()},F=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},j=(N,U=e.showTimeout)=>{var re;N.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=Fp(()=>{l.openMenu(e.index,i.value)},U),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},B=(N=!1)=>{var U,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=Fp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&N&&((U=n.parent)==null?void 0:U.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};Me(()=>l.props.collapse,N=>k(Boolean(N)));{const N=re=>{c.value[re.index]=re},U=re=>{delete c.value[re.index]};Ct(`subMenu:${n.uid}`,{addSubMenu:N,removeSubMenu:U,handleMouseleave:B,mouseInChild:h,level:u.level+1})}return r({opened:w}),Et(()=>{l.addSubMenu(M),u.addSubMenu(M)}),tr(()=>{u.removeSubMenu(M),l.removeSubMenu(M)}),()=>{var N;const U=[(N=t.title)==null?void 0:N.call(t),we(Cn,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>Ue(m.value)?we(n.appContext.components[m.value]):we(m.value)})],re=PM(l.props,u.level+1),ae=l.isMenuPopup?we(qd,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var me;return we("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Te=>j(Te,100),onMouseleave:()=>B(!0),onFocus:Te=>j(Te,100)},[we("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(me=t.default)==null?void 0:me.call(t)])])},default:()=>we("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:F},U)}):we(wt,{},[we("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:F},U),we(gz,{},{default:()=>{var me;return sr(we("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(me=t.default)==null?void 0:me.call(t)]),[[oo,w.value]])}})]);return we("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:j,onMouseleave:()=>B(!0),onFocus:j},[ae])}}});const T6=at({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Ae(Array),default:()=>Wa([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),zh=e=>Array.isArray(e)&&e.every(t=>Ue(t)),M6={close:(e,t)=>Ue(e)&&zh(t),open:(e,t)=>Ue(e)&&zh(t),select:(e,t,r,n)=>Ue(e)&&zh(t)&&je(r)&&(n===void 0||n instanceof Promise)};var A6=ue({name:"ElMenu",props:T6,emits:M6,setup(e,{emit:t,slots:r,expose:n}){const i=dt(),a=i.appContext.config.globalProperties.$router,o=H(),s=Ne("menu"),l=Ne("sub-menu"),u=H(-1),f=H(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),c=H(e.defaultActive),d=H({}),h=H({}),v=$(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const E=c.value&&d.value[c.value];if(!E||e.mode==="horizontal"||e.collapse)return;E.indexPath.forEach(M=>{const D=h.value[M];D&&g(M,D.indexPath)})},g=(E,A)=>{f.value.includes(E)||(e.uniqueOpened&&(f.value=f.value.filter(M=>A.includes(M))),f.value.push(E),t("open",E,A))},m=(E,A)=>{const M=f.value.indexOf(E);M!==-1&&f.value.splice(M,1),t("close",E,A)},y=({index:E,indexPath:A})=>{f.value.includes(E)?m(E,A):g(E,A)},_=E=>{(e.mode==="horizontal"||e.collapse)&&(f.value=[]);const{index:A,indexPath:M}=E;if(!(A===void 0||M===void 0))if(e.router&&a){const D=E.route||A,O=a.push(D).then(k=>(k||(c.value=A),k));t("select",A,M,{index:A,indexPath:M,route:D},O)}else c.value=A,t("select",A,M,{index:A,indexPath:M})},b=E=>{const A=d.value,M=A[E]||c.value&&A[c.value]||A[e.defaultActive];M?c.value=M.index:c.value=E},x=()=>{var E,A;if(!o.value)return-1;const M=Array.from((A=(E=o.value)==null?void 0:E.childNodes)!=null?A:[]).filter(N=>N.nodeName!=="#text"||N.nodeValue),D=64,O=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),k=Number.parseInt(getComputedStyle(o.value).paddingRight,10),F=o.value.clientWidth-O-k;let j=0,B=0;return M.forEach((N,U)=>{j+=N.offsetWidth||0,j<=F-D&&(B=U+1)}),B===M.length?-1:B},w=(E,A=33.34)=>{let M;return()=>{M&&clearTimeout(M),M=setTimeout(()=>{E()},A)}};let S=!0;const C=()=>{const E=()=>{u.value=-1,Ht(()=>{u.value=x()})};S?E():w(E)(),S=!1};Me(()=>e.defaultActive,E=>{d.value[E]||(c.value=""),b(E)}),Me(()=>e.collapse,E=>{E&&(f.value=[])}),Me(d.value,p);let T;ts(()=>{e.mode==="horizontal"&&e.ellipsis?T=ds(o,C).stop:T==null||T()});{const E=O=>{h.value[O.index]=O},A=O=>{delete h.value[O.index]};Ct("rootMenu",ln({props:e,openedMenus:f,items:d,subMenus:h,activeIndex:c,isMenuPopup:v,addMenuItem:O=>{d.value[O.index]=O},removeMenuItem:O=>{delete d.value[O.index]},addSubMenu:E,removeSubMenu:A,openMenu:g,closeMenu:m,handleMenuItemClick:_,handleSubMenuClick:y})),Ct(`subMenu:${i.uid}`,{addSubMenu:E,removeSubMenu:A,mouseInChild:H(!1),level:0})}return Et(()=>{e.mode==="horizontal"&&new _6(i.vnode.el,s.namespace.value)}),n({open:A=>{const{indexPath:M}=h.value[A];M.forEach(D=>g(D,M))},close:m,handleResize:C}),()=>{var E,A;let M=(A=(E=r.default)==null?void 0:E.call(r))!=null?A:[];const D=[];if(e.mode==="horizontal"&&o.value){const F=fc(M),j=u.value===-1?F:F.slice(0,u.value),B=u.value===-1?[]:F.slice(u.value);B!=null&&B.length&&e.ellipsis&&(M=j,D.push(we(wy,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>we(Cn,{class:l.e("icon-more")},{default:()=>we(e5)}),default:()=>B})))}const O=PM(e,0),k=we("ul",{key:String(e.collapse),role:"menubar",ref:o,style:O.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...M,...D]);return e.collapseTransition&&e.mode==="vertical"?we(x6,()=>k):k}}});const E6=at({index:{type:Ae([String,null]),default:null},route:{type:Ae([String,Object])},disabled:Boolean}),P6={click:e=>Ue(e.index)&&Array.isArray(e.indexPath)},Wh="ElMenuItem",L6=ue({name:Wh,components:{ElTooltip:qd},props:E6,emits:P6,setup(e,{emit:t}){const r=dt(),n=De("rootMenu"),i=Ne("menu"),a=Ne("menu-item");n||lo(Wh,"can not inject root menu");const{parentMenu:o,indexPath:s}=EM(r,wn(e,"index")),l=De(`subMenu:${o.value.uid}`);l||lo(Wh,"can not inject sub menu");const u=$(()=>e.index===n.activeIndex),f=ln({index:e.index,indexPath:s,active:u}),c=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",f))};return Et(()=>{l.addSubMenu(f),n.addMenuItem(f)}),tr(()=>{l.removeSubMenu(f),n.removeMenuItem(f)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:c}}});function D6(e,t,r,n,i,a){const o=gr("el-tooltip");return X(),Se("li",{class:de([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(X(),Ie(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:ee(()=>[Be(e.$slots,"title")]),default:ee(()=>[le("div",{class:de(e.nsMenu.be("tooltip","trigger"))},[Be(e.$slots,"default")],2)]),_:3},8,["effect"])):(X(),Se(wt,{key:1},[Be(e.$slots,"default"),Be(e.$slots,"title")],64))],2)}var LM=Qe(L6,[["render",D6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const I6={title:String},R6="ElMenuItemGroup",O6=ue({name:R6,props:I6,setup(){return{ns:Ne("menu-item-group")}}});function k6(e,t,r,n,i,a){return X(),Se("li",{class:de(e.ns.b())},[le("div",{class:de(e.ns.e("title"))},[e.$slots.title?Be(e.$slots,"title",{key:1}):(X(),Se(wt,{key:0},[kt(Re(e.title),1)],64))],2),le("ul",null,[Be(e.$slots,"default")])],2)}var DM=Qe(O6,[["render",k6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const N6=Er(A6,{MenuItem:LM,MenuItemGroup:DM,SubMenu:wy}),B6=ia(LM);ia(DM);const F6=ia(wy),$6=at({trigger:du.trigger,placement:Fh.placement,disabled:du.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Fh.popperOptions,tabindex:Fh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),H6={"update:visible":e=>pi(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},z6="onUpdate:visible",W6=ue({name:"ElPopover"}),V6=ue({...W6,props:$6,emits:H6,setup(e,{expose:t,emit:r}){const n=e,i=$(()=>n[z6]),a=Ne("popover"),o=H(),s=$(()=>{var g;return(g=L(o))==null?void 0:g.popperRef}),l=$(()=>[{width:vs(n.width)},n.popperStyle]),u=$(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),f=$(()=>n.transition===`${a.namespace.value}-fade-in-linear`),c=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:c}),(g,m)=>(X(),Ie(L(qd),go({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":L(u),"popper-style":L(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":L(f),"onUpdate:visible":L(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:ee(()=>[g.title?(X(),Se("div",{key:0,class:de(L(a).e("title")),role:"title"},Re(g.title),3)):ct("v-if",!0),Be(g.$slots,"default",{},()=>[kt(Re(g.content),1)])]),default:ee(()=>[g.$slots.reference?Be(g.$slots,"reference",{key:0}):ct("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var G6=Qe(V6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const Ub=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var U6={mounted(e,t){Ub(e,t)},updated(e,t){Ub(e,t)}};const Y6="popover",q6=v5(U6,Y6),j6=Er(G6,{directive:q6}),K6=["start","center","end","space-around","space-between","space-evenly"],X6=["top","middle","bottom"],Z6=at({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:K6,default:"start"},align:{type:String,values:X6,default:"top"}}),Q6=ue({name:"ElRow"}),J6=ue({...Q6,props:Z6,setup(e){const t=e,r=Ne("row"),n=$(()=>t.gutter);Ct(RT,{gutter:n});const i=$(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=$(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(X(),Ie(hi(o.tag),{class:de(L(a)),style:At(L(i))},{default:ee(()=>[Be(o.$slots,"default")]),_:3},8,["class","style"]))}});var e8=Qe(J6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const IM=Er(e8);/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var t8=/["'&<>]/,r8=n8;function n8(e){var t=""+e,r=t8.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?lu(s,u):u(s,l,e))):(t!=="$key"&&je(s)&&"$value"in s&&(s=s.$value),[je(s)?lu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,f=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},RM=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},a8=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},ja=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Ut(n,t)]={row:n,index:i}}),r};function o8(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(ze(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function xy(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function OM(e){return e===""||e!==void 0&&(e=xy(e),Number.isNaN(e)&&(e=80)),e}function s8(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function l8(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Rl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,ye(t.children)&&t.children.forEach(l=>{Rl(e,l,r??!a)})};return pi(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function u8(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const f=u[r];i(f)||a(u,f,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ai;function f8(e,t,r,n){n=wT({enterable:!0,showArrow:!0},n);const{nextZIndex:i}=yy(),a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=n.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",n.popperClass||""].join(" "),r=r8(r),m.innerHTML=r,m.style.zIndex=String(i()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){f&&f.update()}ai==null||ai(),ai=()=>{try{f&&f.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ai),ai=void 0}catch{}};let f=null,c=u,d=ai;n.enterable&&({onOpen:c,onClose:d}=JT({showAfter:n.showAfter,hideAfter:n.hideAfter,open:u,close:ai}));const h=s();h.onmouseenter=c,h.onmouseleave=d;const v=[];if(n.offset&&v.push({name:"offset",options:{offset:[0,n.offset]}}),n.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=n.popperOptions||{};return f=ZT(t,h,{placement:n.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",c),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ai),f}function kM(e){return e.children?$F(e.children,kM):[e]}function qb(e,t){return e+t.colSpan}const NM=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=kM(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(qb,0),a=i+l.reduce(qb,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Sy=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=NM(t,r,n,i);if(s){const f=s==="left";o.push(`${e}-fixed-column--${s}`),f&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!f&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function jb(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Cy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=NM(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(jb,0):s.right=u.slice(o+1).reverse().reduce(jb,0),s},ws=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function c8(e){const t=dt(),r=H(!1),n=H([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const f=ja(n.value,u);n.value=l.reduce((c,d)=>{const h=Ut(d,u);return f[h]&&c.push(d),c},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Rl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],f=e.rowKey.value,c=ja(u,f);n.value=l.reduce((d,h)=>{const v=c[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!ja(n.value,u)[Ut(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function d8(e){const t=dt(),r=H(null),n=H(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:f,rowKey:c}=e;let d=null;c.value&&(d=(L(f)||[]).find(h=>Ut(h,c.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const f=n.value;if(u&&u!==f){n.value=u,t.emit("current-change",n.value,f);return}!u&&f&&(n.value=null,t.emit("current-change",null,f))},updateCurrentRowData:()=>{const u=e.rowKey.value,f=e.data.value||[],c=n.value;if(!f.includes(c)&&c){if(u){const d=Ut(c,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,c)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function h8(e){const t=H([]),r=H({}),n=H(16),i=H(!1),a=H({}),o=H("hasChildren"),s=H("children"),l=dt(),u=$(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return c(m)}),f=$(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Ut(w,m);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),c=m=>{const y=e.rowKey.value,_={};return u8(m,(b,x,w)=>{const S=Ut(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Ut(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=f.value,w=Object.keys(b),S={};if(w.length){const C=L(r),T=[],E=(M,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||M!=null&&M.expanded);{const O=y||t.value&&t.value.includes(D);return!!(M!=null&&M.expanded||O)}};w.forEach(M=>{const D=C[M],O={...b[M]};if(O.expanded=E(D,M),O.lazy){const{loaded:k=!1,loading:F=!1}=D||{};O.loaded=!!k,O.loading=!!F,T.push(M)}S[M]=O});const A=Object.keys(x);i.value&&A.length&&T.length&&A.forEach(M=>{const D=C[M],O=x[M].children;if(T.includes(M)){if(S[M].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[M].children=O}else{const{loaded:k=!1,loading:F=!1}=D||{};S[M]={lazy:!0,loaded:!!k,loading:!!F,expanded:E(D,M),children:O,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};Me(()=>t.value,()=>{d(!0)}),Me(()=>u.value,()=>{d()}),Me(()=>f.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Ut(m,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Ut(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:c,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const v8=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:i8(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},mc=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,mc(r.children)):t.push(r)}),t};function p8(){var e;const t=dt(),{size:r}=Sd((e=t.proxy)==null?void 0:e.$props),n=H(null),i=H([]),a=H([]),o=H(!1),s=H([]),l=H([]),u=H([]),f=H([]),c=H([]),d=H([]),h=H([]),v=H([]),p=H(0),g=H(0),m=H(0),y=H(!1),_=H([]),b=H(!1),x=H(!1),w=H(null),S=H({}),C=H(null),T=H(null),E=H(null),A=H(null),M=H(null);Me(i,()=>t.state&&F(!1),{deep:!0});const D=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},O=fe=>{var xe;(xe=fe.children)==null||xe.forEach($e=>{$e.fixed=fe.fixed,O($e)})},k=()=>{s.value.forEach(Ke=>{O(Ke)}),f.value=s.value.filter(Ke=>Ke.fixed===!0||Ke.fixed==="left"),c.value=s.value.filter(Ke=>Ke.fixed==="right"),f.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,f.value.unshift(s.value[0]));const fe=s.value.filter(Ke=>!Ke.fixed);l.value=[].concat(f.value).concat(fe).concat(c.value);const xe=mc(fe),$e=mc(f.value),He=mc(c.value);p.value=xe.length,g.value=$e.length,m.value=He.length,u.value=[].concat($e).concat(xe).concat(He),o.value=f.value.length>0||c.value.length>0},F=(fe,xe=!1)=>{fe&&k(),xe?t.state.doLayout():t.state.debouncedUpdateLayout()},j=fe=>_.value.includes(fe),B=()=>{y.value=!1,_.value.length&&(_.value=[],t.emit("selection-change",[]))},N=()=>{let fe;if(n.value){fe=[];const xe=ja(_.value,n.value),$e=ja(i.value,n.value);for(const He in xe)ze(xe,He)&&!$e[He]&&fe.push(xe[He].row)}else fe=_.value.filter(xe=>!i.value.includes(xe));if(fe.length){const xe=_.value.filter($e=>!fe.includes($e));_.value=xe,t.emit("selection-change",xe.slice())}},U=()=>(_.value||[]).slice(),re=(fe,xe=void 0,$e=!0)=>{if(Rl(_.value,fe,xe)){const Ke=(_.value||[]).slice();$e&&t.emit("select",Ke,fe),t.emit("selection-change",Ke)}},ae=()=>{var fe,xe;const $e=x.value?!y.value:!(y.value||_.value.length);y.value=$e;let He=!1,Ke=0;const Ot=(xe=(fe=t==null?void 0:t.store)==null?void 0:fe.states)==null?void 0:xe.rowKey.value;i.value.forEach((ht,zt)=>{const Hr=zt+Ke;w.value?w.value.call(null,ht,Hr)&&Rl(_.value,ht,$e)&&(He=!0):Rl(_.value,ht,$e)&&(He=!0),Ke+=V(Ut(ht,Ot))}),He&&t.emit("selection-change",_.value?_.value.slice():[]),t.emit("select-all",_.value)},me=()=>{const fe=ja(_.value,n.value);i.value.forEach(xe=>{const $e=Ut(xe,n.value),He=fe[$e];He&&(_.value[He.index]=xe)})},Te=()=>{var fe,xe,$e;if(((fe=i.value)==null?void 0:fe.length)===0){y.value=!1;return}let He;n.value&&(He=ja(_.value,n.value));const Ke=function(Hr){return He?!!He[Ut(Hr,n.value)]:_.value.includes(Hr)};let Ot=!0,ht=0,zt=0;for(let Hr=0,wL=(i.value||[]).length;Hr{var xe;if(!t||!t.store)return 0;const{treeData:$e}=t.store.states;let He=0;const Ke=(xe=$e.value[fe])==null?void 0:xe.children;return Ke&&(He+=Ke.length,Ke.forEach(Ot=>{He+=V(Ot)})),He},Q=(fe,xe)=>{Array.isArray(fe)||(fe=[fe]);const $e={};return fe.forEach(He=>{S.value[He.id]=xe,$e[He.columnKey||He.id]=xe}),$e},W=(fe,xe,$e)=>{T.value&&T.value!==fe&&(T.value.order=null),T.value=fe,E.value=xe,A.value=$e},Y=()=>{let fe=L(a);Object.keys(S.value).forEach(xe=>{const $e=S.value[xe];if(!$e||$e.length===0)return;const He=RM({columns:u.value},xe);He&&He.filterMethod&&(fe=fe.filter(Ke=>$e.some(Ot=>He.filterMethod.call(null,Ot,Ke,He))))}),C.value=fe},se=()=>{i.value=v8(C.value,{sortingColumn:T.value,sortProp:E.value,sortOrder:A.value})},he=(fe=void 0)=>{fe&&fe.filter||Y(),se()},Z=fe=>{const{tableHeaderRef:xe}=t.refs;if(!xe)return;const $e=Object.assign({},xe.filterPanels),He=Object.keys($e);if(He.length)if(typeof fe=="string"&&(fe=[fe]),Array.isArray(fe)){const Ke=fe.map(Ot=>a8({columns:u.value},Ot));He.forEach(Ot=>{const ht=Ke.find(zt=>zt.id===Ot);ht&&(ht.filteredValue=[])}),t.store.commit("filterChange",{column:Ke,values:[],silent:!0,multi:!0})}else He.forEach(Ke=>{const Ot=u.value.find(ht=>ht.id===Ke);Ot&&(Ot.filteredValue=[])}),S.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},P=()=>{T.value&&(W(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:I,toggleRowExpansion:z,updateExpandRows:G,states:q,isRowExpanded:ne}=c8({data:i,rowKey:n}),{updateTreeExpandKeys:ce,toggleTreeExpansion:te,updateTreeData:ie,loadOrToggle:K,states:_e}=h8({data:i,rowKey:n}),{updateCurrentRowData:ve,updateCurrentRow:be,setCurrentRowKey:Le,states:Fe}=d8({data:i,rowKey:n});return{assertRowKey:D,updateColumns:k,scheduleLayout:F,isSelected:j,clearSelection:B,cleanSelection:N,getSelectionRows:U,toggleRowSelection:re,_toggleAllSelection:ae,toggleAllSelection:null,updateSelectionByRowKey:me,updateAllSelected:Te,updateFilters:Q,updateCurrentRow:be,updateSort:W,execFilter:Y,execSort:se,execQuery:he,clearFilter:Z,clearSort:P,toggleRowExpansion:z,setExpandRowKeysAdapter:fe=>{I(fe),ce(fe)},setCurrentRowKey:Le,toggleRowExpansionAdapter:(fe,xe)=>{u.value.some(({type:He})=>He==="expand")?z(fe,xe):te(fe,xe)},isRowExpanded:ne,updateExpandRows:G,updateCurrentRowData:ve,loadOrToggle:K,updateTreeData:ie,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:f,rightFixedColumns:c,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,leafColumnsLength:p,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:m,isAllSelected:y,selection:_,reserveSelection:b,selectOnIndeterminate:x,selectable:w,filters:S,filteredData:C,sortingColumn:T,sortProp:E,sortOrder:A,hoverRow:M,...q,..._e,...Fe}}}function ag(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=ag(r.children,t)),r)})}function BM(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&BM(t.children)}),e.sort((t,r)=>t.no-r.no)}function g8(){const e=dt(),t=p8();return{ns:Ne("table"),...t,mutations:{setData(o,s){const l=L(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),L(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l){const u=L(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=ag(u,l)):(u.push(s),f=u),BM(f),o._columns.value=f,s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(o,s,l){const u=L(o._columns)||[];if(l)l.children.splice(l.children.findIndex(f=>f.id===s.id),1),Ht(()=>{var f;((f=l.children)==null?void 0:f.length)===0&&delete l.children}),o._columns.value=ag(u,l);else{const f=u.indexOf(s);f>-1&&(u.splice(f,1),o._columns.value=u)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:f}=s;if(l){const c=L(o.columns).find(d=>d.property===l);c&&(c.order=u,e.store.updateSort(c,l,u),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:f}=o,c=L(l),d=L(u),h=L(f);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:c,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:f}=s,c=e.store.updateFilters(l,u);e.store.execQuery(),f||e.emit("filter-change",c),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Ht(()=>e.layout.updateScrollY.apply(e.layout))}}}const Ol={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function m8(e,t){if(!e)throw new Error("Table is required.");const r=g8();return r.toggleAllSelection=Hc(r._toggleAllSelection,10),Object.keys(Ol).forEach(n=>{FM($M(t,n),n,r)}),y8(r,t),r}function y8(e,t){Object.keys(Ol).forEach(r=>{Me(()=>$M(t,r),n=>{FM(n,r,e)})})}function FM(e,t,r){let n=e,i=Ol[t];typeof Ol[t]=="object"&&(i=i.key,n=n||Ol[t].default),r.states[i].value=n}function $M(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class _8{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=H(null),this.scrollX=H(!1),this.scrollY=H(!1),this.bodyWidth=H(null),this.fixedWidth=H(null),this.rightFixedWidth=H(null),this.gutterWidth=0;for(const r in t)ze(t,r)&&(St(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&r){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Rt)return;const n=this.table.vnode.el;if(t=s8(t),this.height.value=Number(t),!n&&(t||t===0))return Ht(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Rt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),f=l/u;let c=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*f);c+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-c}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:b8}=bs,w8=ue({name:"ElTableFilterPanel",components:{ElCheckbox:bs,ElCheckboxGroup:b8,ElScrollbar:tM,ElTooltip:qd,ElIcon:Cn,ArrowDown:CT,ArrowUp:E$},directives:{ClickOutside:DH},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=dt(),{t:r}=$T(),n=Ne("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=H(!1),o=H(null),s=$(()=>e.column&&e.column.filters),l=$({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=$({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),f=$(()=>e.column?e.column.filterMultiple:!0),c=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};Me(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=$(()=>{var b,x;return(x=(b=o.value)==null?void 0:b.popperRef)==null?void 0:x.contentRef});return{tooltipVisible:a,multiple:f,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:c,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),x8={key:0},S8=["disabled"],C8=["label","onClick"];function T8(e,t,r,n,i,a){const o=gr("el-checkbox"),s=gr("el-checkbox-group"),l=gr("el-scrollbar"),u=gr("arrow-up"),f=gr("arrow-down"),c=gr("el-icon"),d=gr("el-tooltip"),h=Rm("click-outside");return X(),Ie(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:ee(()=>[e.multiple?(X(),Se("div",x8,[le("div",{class:de(e.ns.e("content"))},[J(l,{"wrap-class":e.ns.e("wrap")},{default:ee(()=>[J(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:de(e.ns.e("checkbox-group"))},{default:ee(()=>[(X(!0),Se(wt,null,K0(e.filters,v=>(X(),Ie(o,{key:v.value,label:v.value},{default:ee(()=>[kt(Re(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),le("div",{class:de(e.ns.e("bottom"))},[le("button",{class:de({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Re(e.t("el.table.confirmFilter")),11,S8),le("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Re(e.t("el.table.resetFilter")),1)],2)])):(X(),Se("ul",{key:1,class:de(e.ns.e("list"))},[le("li",{class:de([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Re(e.t("el.table.clearFilter")),3),(X(!0),Se(wt,null,K0(e.filters,v=>(X(),Se("li",{key:v.value,class:de([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Re(v.text),11,C8))),128))],2))]),default:ee(()=>[sr((X(),Se("span",{class:de([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[J(c,null,{default:ee(()=>[e.column.filterOpened?(X(),Ie(u,{key:0})):(X(),Ie(f,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var M8=Qe(w8,[["render",T8],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function HM(e){const t=dt();Ed(()=>{r.value.addObserver(t)}),Et(()=>{n(r.value),i(r.value)}),Pd(()=>{n(r.value),i(r.value)}),Iu(()=>{r.value.removeObserver(t)});const r=$(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(f=>{u[f.id]=f});for(let f=0,c=s.length;f{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let f=0,c=l.length;f{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=H(null),l=H(!1),u=H({}),f=(p,g)=>{if(Rt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Uo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=m==null?void 0:m.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=E=>{const A=E.clientX-u.value.startMouseLeft,M=u.value.startLeft+A;S.style.left=`${Math.max(w,M)}px`},T=()=>{if(l.value){const{startColumnLeft:E,startLeft:A}=u.value,D=Number.parseInt(S.style.left,10)-E;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-E,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",T),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{rs(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",T)}},c=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Pl(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Pl(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Rt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Pl(b,"noclick")){rs(b,"noclick");return}if(!g.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=g,w=g.property),_?S=g.order=_:S=g.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function E8(e){const t=De(Zn),r=Ne("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,f)=>{var c;let d=(c=t==null?void 0:t.props.headerCellStyle)!=null?c:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:f}));const h=Cy(l,f.fixed,e.store,u);return ws(h,"left"),ws(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,f)=>{const c=Sy(r.b(),l,f.fixed,e.store,u),d=[f.id,f.order,f.headerAlign,f.className,f.labelClassName,...c];f.children||d.push("is-leaf"),f.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:f})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const zM=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,zM(r.children))):t.push(r)}),t},P8=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function L8(e){const t=De(Zn),r=$(()=>P8(e.store.states.originColumns.value));return{isGroup:$(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var D8=ue({name:"ElTableHeader",components:{ElCheckbox:bs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=dt(),n=De(Zn),i=Ne("table"),a=H({}),{onColumnsChange:o,onScrollableChange:s}=HM(n);Et(async()=>{await Ht(),await Ht();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=A8(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=E8(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=L8(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:f,handleSortClick:c,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return we("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>we("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),we("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>f(b,y),onMouseout:d},[we("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&we("span",{onClick:b=>c(b,y),class:"caret-wrapper"},[we("i",{onClick:b=>c(b,y,"ascending"),class:"sort-caret ascending"}),we("i",{onClick:b=>c(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&we(M8,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function I8(e){const t=De(Zn),r=H(""),n=H(we("div")),i=(d,h,v)=>{var p;const g=t,m=Vh(d);let y;const _=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;m&&(y=Yb({columns:e.store.states.columns.value},m,_),y&&(g==null||g.emit(`cell-${v}`,h,y,m,d))),g==null||g.emit(`row-${v}`,h,y,d)},a=(d,h)=>{i(d,h,"dblclick")},o=(d,h)=>{e.store.commit("setCurrentRow",h),i(d,h,"click")},s=(d,h)=>{i(d,h,"contextmenu")},l=Hc(d=>{e.store.commit("setHoverRow",d)},30),u=Hc(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(d,h,v)=>{var p;const g=t,m=Vh(d),y=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;if(m){const S=Yb({columns:e.store.states.columns.value},m,y),C=g.hoverState={cell:m,column:S,row:h};g==null||g.emit("cell-mouse-enter",C.row,C.column,C.cell,d)}if(!v)return;const _=d.target.querySelector(".cell");if(!(Pl(_,`${y}-tooltip`)&&_.childNodes.length))return;const b=document.createRange();b.setStart(_,0),b.setEnd(_,_.childNodes.length);const x=Math.round(b.getBoundingClientRect().width),w=(Number.parseInt(ib(_,"paddingLeft"),10)||0)+(Number.parseInt(ib(_,"paddingRight"),10)||0);(x+w>_.offsetWidth||_.scrollWidth>_.offsetWidth)&&f8(t==null?void 0:t.refs.tableWrapper,m,m.innerText||m.textContent,v)},handleCellMouseLeave:d=>{if(!Vh(d))return;const v=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",v==null?void 0:v.row,v==null?void 0:v.column,v==null?void 0:v.cell,d)},tooltipContent:r,tooltipTrigger:n}}function R8(e){const t=De(Zn),r=Ne("table");return{getRowStyle:(u,f)=>{const c=t==null?void 0:t.props.rowStyle;return typeof c=="function"?c.call(null,{row:u,rowIndex:f}):c||null},getRowClass:(u,f)=>{const c=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&c.push("current-row"),e.stripe&&f%2===1&&c.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?c.push(d):typeof d=="function"&&c.push(d.call(null,{row:u,rowIndex:f})),c},getCellStyle:(u,f,c,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:f,row:c,column:d}));const p=Cy(f,e==null?void 0:e.fixed,e.store);return ws(p,"left"),ws(p,"right"),Object.assign({},v,p)},getCellClass:(u,f,c,d,h)=>{const v=Sy(r.b(),f,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:f,row:c,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,f,c,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:f,rowIndex:c,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,f,c)=>{if(f<1)return u[c].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(c,c+f);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function O8(e){const t=De(Zn),r=Ne("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:f,tooltipTrigger:c}=I8(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=R8(e),y=$(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const T=t.props.rowKey;return T?Ut(S,T):C},b=(S,C,T,E=!1)=>{const{tooltipEffect:A,tooltipOptions:M,store:D}=e,{indent:O,columns:k}=D.states,F=h(S,C);let j=!0;return T&&(F.push(r.em("row",`level-${T.level}`)),j=T.display),we("tr",{style:[j?null:{display:"none"},d(S,C)],class:F,key:_(S,C),onDblclick:N=>n(N,S),onClick:N=>i(N,S),onContextmenu:N=>a(N,S),onMouseenter:()=>o(C),onMouseleave:s},k.value.map((N,U)=>{const{rowspan:re,colspan:ae}=g(S,N,C,U);if(!re||!ae)return null;const me={...N};me.realWidth=m(k.value,ae,U);const Te={store:e.store,_self:e.context||t,column:me,row:S,$index:C,cellIndex:U,expanded:E};U===y.value&&T&&(Te.treeNode={indent:T.level*O.value,level:T.level},typeof T.expanded=="boolean"&&(Te.treeNode.expanded=T.expanded,"loading"in T&&(Te.treeNode.loading=T.loading),"noLazyChildren"in T&&(Te.treeNode.noLazyChildren=T.noLazyChildren)));const V=`${C},${U}`,Q=me.columnKey||me.rawColumnKey||"",W=x(U,N,Te),Y=N.showOverflowTooltip&&wT({effect:A},M,N.showOverflowTooltip);return we("td",{style:v(C,U,S,N),class:p(C,U,S,N,ae-1),key:`${Q}${V}`,rowspan:re,colspan:ae,onMouseenter:se=>l(se,S,Y),onMouseleave:u},[W])}))},x=(S,C,T)=>C.renderCell(T);return{wrappedRowRender:(S,C)=>{const T=e.store,{isRowExpanded:E,assertRowKey:A}=T,{treeData:M,lazyTreeNodeMap:D,childrenColumnName:O,rowKey:k}=T.states,F=T.states.columns.value;if(F.some(({type:B})=>B==="expand")){const B=E(S),N=b(S,C,void 0,B),U=t.renderExpanded;return B?U?[[N,we("tr",{key:`expanded-row__${N.key}`},[we("td",{colspan:F.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[U({row:S,$index:C,store:T,expanded:B})])])]]:(console.error("[Element Error]renderExpanded is required."),N):[[N]]}else if(Object.keys(M.value).length){A();const B=Ut(S,k.value);let N=M.value[B],U=null;N&&(U={expanded:N.expanded,level:N.level,display:!0},typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(U.noLazyChildren=!(N.children&&N.children.length)),U.loading=N.loading));const re=[b(S,C,U)];if(N){let ae=0;const me=(V,Q)=>{V&&V.length&&Q&&V.forEach(W=>{const Y={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},se=Ut(W,k.value);if(se==null)throw new Error("For nested data item, row-key is required.");if(N={...M.value[se]},N&&(Y.expanded=N.expanded,N.level=N.level||Y.level,N.display=!!(N.expanded&&Y.display),typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(Y.noLazyChildren=!(N.children&&N.children.length)),Y.loading=N.loading)),ae++,re.push(b(W,C+ae,Y)),N){const he=D.value[se]||W[O.value];me(he,N)}})};N.display=!0;const Te=D.value[B]||S[O.value];me(Te,N)}return re}else return b(S,C,void 0)},tooltipContent:f,tooltipTrigger:c}}const k8={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var N8=ue({name:"ElTableBody",props:k8,setup(e){const t=dt(),r=De(Zn),n=Ne("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=O8(e),{onColumnsChange:s,onScrollableChange:l}=HM(r);return Me(e.store.states.hoverRow,(u,f)=>{if(!e.store.states.isComplex.value||!Rt)return;let c=window.requestAnimationFrame;c||(c=d=>window.setTimeout(d,16)),c(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[f],p=h[u];v&&rs(v,"hover-row"),p&&Uo(p,"hover-row")})}),Iu(()=>{var u;(u=ai)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return we("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function Ty(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return we("colgroup",{},r.map(i=>we("col",n(i))))}Ty.props=["columns","tableLayout"];function B8(){const e=De(Zn),t=e==null?void 0:e.store,r=$(()=>t.states.fixedLeafColumnsLength.value),n=$(()=>t.states.rightFixedColumns.value.length),i=$(()=>t.states.columns.value.length),a=$(()=>t.states.fixedColumns.value.length),o=$(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function F8(e){const{columns:t}=B8(),r=Ne("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Sy(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Cy(o,a.fixed,e.store);return ws(s,"left"),ws(s,"right"),s},columns:t}}var $8=ue({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=F8(e);return{ns:Ne("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const f=o.map(v=>Number(v[l.property])),c=[];let d=!0;f.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];c.push(p?p.length:0)}});const h=Math.max.apply(null,c);d?s[u]="":s[u]=f.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),we("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[Ty({columns:e}),we("tbody",[we("tr",{},[...e.map((l,u)=>we("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[we("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function H8(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,c)=>{e.toggleRowSelection(f,c,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,c)=>{e.toggleRowExpansionAdapter(f,c)},clearSort:()=>{e.clearSort()},sort:(f,c)=>{e.commit("sort",{prop:f,order:c})}}}function z8(e,t,r,n){const i=H(!1),a=H(null),o=H(!1),s=B=>{o.value=B},l=H({width:null,height:null,headerHeight:null}),u=H(!1),f={display:"inline-block",verticalAlign:"middle"},c=H(),d=H(0),h=H(0),v=H(0),p=H(0);ts(()=>{t.setHeight(e.height)}),ts(()=>{t.setMaxHeight(e.maxHeight)}),Me(()=>[e.currentRowKey,r.states.rowKey],([B,N])=>{!L(N)||!L(B)||r.setCurrentRowKey(`${B}`)},{immediate:!0}),Me(()=>e.data,B=>{n.store.commit("setData",B)},{immediate:!0,deep:!0}),ts(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(B,N)=>{const{pixelX:U,pixelY:re}=N;Math.abs(U)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=N.pixelX/5)},y=$(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=$(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};Et(async()=>{await Ht(),r.updateColumns(),T(),requestAnimationFrame(b);const B=n.vnode.el,N=n.refs.headerWrapper;e.flexible&&B&&B.parentElement&&(B.parentElement.style.minWidth="0"),l.value={width:c.value=B.offsetWidth,height:B.offsetHeight,headerHeight:e.showHeader&&N?N.offsetHeight:null},r.states.columns.value.forEach(U=>{U.filteredValue&&U.filteredValue.length&&n.store.commit("filterChange",{column:U,values:U.filteredValue,silent:!0})}),n.$ready=!0});const x=(B,N)=>{if(!B)return;const U=Array.from(B.classList).filter(re=>!re.startsWith("is-scrolling-"));U.push(t.scrollX.value?N:"is-scrolling-none"),B.className=U.join(" ")},w=B=>{const{tableWrapper:N}=n.refs;x(N,B)},S=B=>{const{tableWrapper:N}=n.refs;return!!(N&&N.classList.contains(B))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";S(V)||w(V);return}const B=n.refs.scrollBarRef.wrapRef;if(!B)return;const{scrollLeft:N,offsetWidth:U,scrollWidth:re}=B,{headerWrapper:ae,footerWrapper:me}=n.refs;ae&&(ae.scrollLeft=N),me&&(me.scrollLeft=N);const Te=re-U-1;N>=Te?w("is-scrolling-right"):w(N===0?"is-scrolling-left":"is-scrolling-middle")},T=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&$n(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?ds(n.vnode.el,E):$n(window,"resize",E),ds(n.refs.bodyWrapper,()=>{var B,N;E(),(N=(B=n.refs)==null?void 0:B.scrollBarRef)==null||N.update()}))},E=()=>{var B,N,U;const re=n.vnode.el;if(!n.$ready||!re)return;let ae=!1;const{width:me,height:Te,headerHeight:V}=l.value,Q=c.value=re.offsetWidth;me!==Q&&(ae=!0);const W=re.offsetHeight;(e.height||y.value)&&Te!==W&&(ae=!0);const Y=e.tableLayout==="fixed"?n.refs.headerWrapper:(B=n.refs.tableHeaderRef)==null?void 0:B.$el;e.showHeader&&(Y==null?void 0:Y.offsetHeight)!==V&&(ae=!0),d.value=((N=n.refs.tableWrapper)==null?void 0:N.scrollHeight)||0,v.value=(Y==null?void 0:Y.scrollHeight)||0,p.value=((U=n.refs.footerWrapper)==null?void 0:U.offsetHeight)||0,h.value=d.value-v.value-p.value,ae&&(l.value={width:Q,height:W,headerHeight:e.showHeader&&(Y==null?void 0:Y.offsetHeight)||0},b())},A=fo(),M=$(()=>{const{bodyWidth:B,scrollY:N,gutterWidth:U}=t;return B.value?`${B.value-(N.value?U:0)}px`:""}),D=$(()=>e.maxHeight?"fixed":e.tableLayout),O=$(()=>{if(e.data&&e.data.length)return null;let B="100%";e.height&&h.value&&(B=`${h.value}px`);const N=c.value;return{width:N?`${N}px`:"",height:B}}),k=$(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),F=$(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const B=e.maxHeight;if(d.value>=Number(B))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:O,handleFixedMousewheel:(B,N)=>{const U=n.refs.bodyWrapper;if(Math.abs(N.spinY)>0){const re=U.scrollTop;N.pixelY<0&&re!==0&&B.preventDefault(),N.pixelY>0&&U.scrollHeight-U.clientHeight>re&&B.preventDefault(),U.scrollTop+=Math.ceil(N.pixelY/5)}else U.scrollLeft+=Math.ceil(N.pixelX/5)},resizeProxyVisible:o,bodyWidth:M,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:f,tableInnerStyle:k,scrollbarStyle:F}}var W8={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const V8=()=>{const e=H(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&_r(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let G8=1;const U8=ue({name:"ElTable",directives:{Mousewheel:FH},components:{TableHeader:D8,TableBody:N8,TableFooter:$8,ElScrollbar:tM,hColgroup:Ty},props:W8,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=$T(),r=Ne("table"),n=dt();Ct(Zn,n);const i=m8(n,e);n.store=i;const a=new _8({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=$(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=H8(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:T,bodyWidth:E,resizeState:A,doLayout:M,tableBodyStyles:D,tableLayout:O,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:j}=z8(e,a,i,n),{scrollBarRef:B,scrollTo:N,setScrollLeft:U,setScrollTop:re}=V8(),ae=Hc(M,50),me=`${r.namespace.value}-table_${G8++}`;n.tableId=me,n.state={isGroup:_,resizeState:A,doLayout:M,debouncedUpdateLayout:ae};const Te=$(()=>e.sumText||t("el.table.sumText")),V=$(()=>e.emptyText||t("el.table.emptyText"));return{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:me,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:T,resizeState:A,isGroup:_,bodyWidth:E,tableBodyStyles:D,emptyBlockStyle:S,debouncedUpdateLayout:ae,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:M,sort:p,t,setDragVisible:y,context:n,computedSumText:Te,computedEmptyText:V,tableLayout:O,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:j,scrollBarRef:B,scrollTo:N,setScrollLeft:U,setScrollTop:re}}}),Y8=["data-prefix"],q8={ref:"hiddenColumns",class:"hidden-columns"};function j8(e,t,r,n,i,a){const o=gr("hColgroup"),s=gr("table-header"),l=gr("table-body"),u=gr("el-scrollbar"),f=gr("table-footer"),c=Rm("mousewheel");return X(),Se("div",{ref:"tableWrapper",class:de([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:At(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=d=>e.handleMouseLeave())},[le("div",{class:de(e.ns.e("inner-wrapper")),style:At(e.tableInnerStyle)},[le("div",q8,[Be(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?sr((X(),Se("div",{key:0,ref:"headerWrapper",class:de(e.ns.e("header-wrapper"))},[le("table",{ref:"tableHeader",class:de(e.ns.e("header")),style:At(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[J(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),J(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[c,e.handleHeaderFooterMousewheel]]):ct("v-if",!0),le("div",{ref:"bodyWrapper",class:de(e.ns.e("body-wrapper"))},[J(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:ee(()=>[le("table",{ref:"tableBody",class:de(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:At({width:e.bodyWidth,tableLayout:e.tableLayout})},[J(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(X(),Ie(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):ct("v-if",!0),J(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(X(),Se("div",{key:0,ref:"emptyBlock",style:At(e.emptyBlockStyle),class:de(e.ns.e("empty-block"))},[le("span",{class:de(e.ns.e("empty-text"))},[Be(e.$slots,"empty",{},()=>[kt(Re(e.computedEmptyText),1)])],2)],6)):ct("v-if",!0),e.$slots.append?(X(),Se("div",{key:1,ref:"appendWrapper",class:de(e.ns.e("append-wrapper"))},[Be(e.$slots,"append")],2)):ct("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?sr((X(),Se("div",{key:1,ref:"footerWrapper",class:de(e.ns.e("footer-wrapper"))},[J(f,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:At(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[oo,!e.isEmpty],[c,e.handleHeaderFooterMousewheel]]):ct("v-if",!0),e.border||e.isGroup?(X(),Se("div",{key:2,class:de(e.ns.e("border-left-patch"))},null,2)):ct("v-if",!0)],6),sr(le("div",{ref:"resizeProxy",class:de(e.ns.e("column-resize-proxy"))},null,2),[[oo,e.resizeProxyVisible]])],46,Y8)}var K8=Qe(U8,[["render",j8],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const X8={selection:"table-column--selection",expand:"table__expand-column"},Z8={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},Q8=e=>X8[e]||"",J8={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return we(bs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return we(bs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),we("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),we("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[we(Cn,null,{default:()=>[we(ny)]})]})},sortable:!1,resizable:!1}};function eW({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&uc(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function tW({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[we("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(we("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=ny;t.loading&&(l=AT),a.push(we("div",{class:s,onClick:o},{default:()=>[we(Cn,{class:{[i.is("loading")]:t.loading}},{default:()=>[we(l)]})]}))}else a.push(we("span",{class:i.e("placeholder")}));return a}function Kb(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function rW(e,t){const r=dt();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=Kb(a,o);Object.keys(s).forEach(l=>{const u=o[l];ze(t,u)&&Me(()=>t[u],f=>{let c=f;u==="width"&&l==="realWidth"&&(c=xy(f)),u==="minWidth"&&l==="realMinWidth"&&(c=OM(f)),r.columnConfig.value[u]=c,r.columnConfig.value[l]=c;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=Kb(a,o);Object.keys(s).forEach(l=>{const u=o[l];ze(t,u)&&Me(()=>t[u],f=>{r.columnConfig.value[l]=f})})}}}function nW(e,t,r){const n=dt(),i=H(""),a=H(!1),o=H(),s=H(),l=Ne("table");ts(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),ts(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=$(()=>{let _=n.vnode.vParent||n.parent;for(;_&&!_.tableId&&!_.columnId;)_=_.vnode.vParent||_.parent;return _}),f=$(()=>{const{store:_}=n.parent;if(!_)return!1;const{treeData:b}=_.states,x=b.value;return x&&Object.keys(x).length>0}),c=H(xy(e.width)),d=H(OM(e.minWidth)),h=_=>(c.value&&(_.width=c.value),d.value&&(_.minWidth=d.value),!c.value&&d.value&&(_.width=void 0),_.minWidth||(_.minWidth=80),_.realWidth=Number(_.width===void 0?_.minWidth:_.width),_),v=_=>{const b=_.type,x=J8[b]||{};Object.keys(x).forEach(S=>{const C=x[S];S!=="className"&&C!==void 0&&(_[S]=C)});const w=Q8(b);if(w){const S=`${L(l.namespace)}-${w}`;_.className=_.className?`${_.className} ${S}`:S}return _},p=_=>{Array.isArray(_)?_.forEach(x=>b(x)):b(_);function b(x){var w;((w=x==null?void 0:x.type)==null?void 0:w.name)==="ElTableColumn"&&(x.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:_=>{e.renderHeader||_.type!=="selection"&&(_.renderHeader=x=>{n.columnConfig.value.label;const w=t.header;return w?w(x):_.label});let b=_.renderCell;return _.type==="expand"?(_.renderCell=x=>we("div",{class:"cell"},[b(x)]),r.value.renderExpanded=x=>t.default?t.default(x):t.default):(b=b||eW,_.renderCell=x=>{let w=null;if(t.default){const E=t.default(x);w=E.some(A=>A.type!==br)?E:b(x)}else w=b(x);const S=f.value&&x.cellIndex===0&&x.column.type!=="selection",C=tW(x,S),T={class:"cell",style:{}};return _.showOverflowTooltip&&(T.class=`${T.class} ${L(l.namespace)}-tooltip`,T.style={width:`${(x.column.realWidth||Number(x.column.width))-1}px`}),p(w),we("div",T,[C,w])}),_},getPropsData:(..._)=>_.reduce((b,x)=>(Array.isArray(x)&&x.forEach(w=>{b[w]=e[w]}),b),{}),getColumnElIndex:(_,b)=>Array.prototype.indexOf.call(_,b)}}var iW={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let aW=1;var WM=ue({name:"ElTableColumn",components:{ElCheckbox:bs},props:iW,setup(e,{slots:t}){const r=dt(),n=H({}),i=$(()=>{let y=r.parent;for(;y&&!y.tableId;)y=y.parent;return y}),{registerNormalWatchers:a,registerComplexWatchers:o}=rW(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:f,setColumnWidth:c,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g}=nW(e,t,i),m=f.value;s.value=`${m.tableId||m.columnId}_column_${aW++}`,Ed(()=>{l.value=i.value!==m;const y=e.type||"default",_=e.sortable===""?!0:e.sortable,b={...Z8[y],id:s.value,type:y,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:_,index:e.index,rawColumnKey:r.vnode.key};let T=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);T=o8(b,T),T=l8(h,c,d)(T),n.value=T,a(),o()}),Et(()=>{var y;const _=f.value,b=l.value?_.vnode.el.children:(y=_.refs.hiddenColumns)==null?void 0:y.children,x=()=>p(b||[],r.vnode.el);n.value.getColumnIndex=x,x()>-1&&i.value.store.commit("insertColumn",n.value,l.value?_.columnConfig.value:null)}),tr(()=>{i.value.store.commit("removeColumn",n.value,l.value?m.columnConfig.value:null)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===wt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!Ue(s==null?void 0:s.children)&&i.push(s)});return we("div",i)}catch{return we("div",[])}}});const oW=Er(K8,{TableColumn:WM}),sW=ia(WM),VM=["success","info","warning","error"],vr=Wa({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Rt?document.body:void 0}),lW=at({customClass:{type:String,default:vr.customClass},center:{type:Boolean,default:vr.center},dangerouslyUseHTMLString:{type:Boolean,default:vr.dangerouslyUseHTMLString},duration:{type:Number,default:vr.duration},icon:{type:Wi,default:vr.icon},id:{type:String,default:vr.id},message:{type:Ae([String,Object,Function]),default:vr.message},onClose:{type:Ae(Function),required:!1},showClose:{type:Boolean,default:vr.showClose},type:{type:String,values:VM,default:vr.type},offset:{type:Number,default:vr.offset},zIndex:{type:Number,default:vr.zIndex},grouping:{type:Boolean,default:vr.grouping},repeatNum:{type:Number,default:vr.repeatNum}}),uW={destroy:()=>!0},Hn=sC([]),fW=e=>{const t=Hn.findIndex(i=>i.id===e),r=Hn[t];let n;return t>0&&(n=Hn[t-1]),{current:r,prev:n}},cW=e=>{const{prev:t}=fW(e);return t?t.vm.exposed.bottom.value:0},dW=["id"],hW=["innerHTML"],vW=ue({name:"ElMessage"}),pW=ue({...vW,props:lW,emits:uW,setup(e,{expose:t}){const r=e,{Close:n}=d5,i=Ne("message"),a=H(),o=H(!1),s=H(0);let l;const u=$(()=>r.type?r.type==="error"?"danger":r.type:"info"),f=$(()=>{const b=r.type;return{[i.bm("icon",b)]:b&&ab[b]}}),c=$(()=>r.icon||ab[r.type]||""),d=$(()=>cW(r.id)),h=$(()=>r.offset+d.value),v=$(()=>s.value+h.value),p=$(()=>({top:`${h.value}px`,zIndex:r.zIndex}));function g(){r.duration!==0&&({stop:l}=Fp(()=>{y()},r.duration))}function m(){l==null||l()}function y(){o.value=!1}function _({code:b}){b===Lt.esc&&y()}return Et(()=>{g(),o.value=!0}),Me(()=>r.repeatNum,()=>{m(),g()}),$n(document,"keydown",_),ds(a,()=>{s.value=a.value.getBoundingClientRect().height}),t({visible:o,bottom:v,close:y}),(b,x)=>(X(),Ie(Kn,{name:L(i).b("fade"),onBeforeLeave:b.onClose,onAfterLeave:x[0]||(x[0]=w=>b.$emit("destroy")),persisted:""},{default:ee(()=>[sr(le("div",{id:b.id,ref_key:"messageRef",ref:a,class:de([L(i).b(),{[L(i).m(b.type)]:b.type&&!b.icon},L(i).is("center",b.center),L(i).is("closable",b.showClose),b.customClass]),style:At(L(p)),role:"alert",onMouseenter:m,onMouseleave:g},[b.repeatNum>1?(X(),Ie(L(iH),{key:0,value:b.repeatNum,type:L(u),class:de(L(i).e("badge"))},null,8,["value","type","class"])):ct("v-if",!0),L(c)?(X(),Ie(L(Cn),{key:1,class:de([L(i).e("icon"),L(f)])},{default:ee(()=>[(X(),Ie(hi(L(c))))]),_:1},8,["class"])):ct("v-if",!0),Be(b.$slots,"default",{},()=>[b.dangerouslyUseHTMLString?(X(),Se(wt,{key:1},[ct(" Caution here, message could've been compromised, never use user's input as message "),le("p",{class:de(L(i).e("content")),innerHTML:b.message},null,10,hW)],2112)):(X(),Se("p",{key:0,class:de(L(i).e("content"))},Re(b.message),3))]),b.showClose?(X(),Ie(L(Cn),{key:2,class:de(L(i).e("closeBtn")),onClick:Ep(y,["stop"])},{default:ee(()=>[J(L(n))]),_:1},8,["class","onClick"])):ct("v-if",!0)],46,dW),[[oo,o.value]])]),_:3},8,["name","onBeforeLeave"]))}});var gW=Qe(pW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let mW=1;const GM=e=>{const t=!e||Ue(e)||Qi(e)||Ee(e)?{message:e}:e,r={...vr,...t};if(!r.appendTo)r.appendTo=document.body;else if(Ue(r.appendTo)){let n=document.querySelector(r.appendTo);hs(n)||(n=document.body),r.appendTo=n}return r},yW=e=>{const t=Hn.indexOf(e);if(t===-1)return;Hn.splice(t,1);const{handler:r}=e;r.close()},_W=({appendTo:e,...t},r)=>{const{nextZIndex:n}=yy(),i=`message_${mW++}`,a=t.onClose,o=document.createElement("div"),s={...t,zIndex:n()+t.zIndex,id:i,onClose:()=>{a==null||a(),yW(c)},onDestroy:()=>{b_(null,o)}},l=J(gW,s,Ee(s.message)||Qi(s.message)?{default:Ee(s.message)?s.message:()=>s.message}:null);l.appContext=r||xs._context,b_(l,o),e.appendChild(o.firstElementChild);const u=l.component,c={id:i,vnode:l,vm:u,handler:{close:()=>{u.exposed.visible.value=!1}},props:l.component.props};return c},xs=(e={},t)=>{if(!Rt)return{close:()=>{}};if(_r(Jp.max)&&Hn.length>=Jp.max)return{close:()=>{}};const r=GM(e);if(r.grouping&&Hn.length){const i=Hn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=_W(r,t);return Hn.push(n),n.handler};VM.forEach(e=>{xs[e]=(t={},r)=>{const n=GM(t);return xs({...n,type:e},r)}});function bW(e){for(const t of Hn)(!e||e===t.props.type)&&t.handler.close()}xs.closeAll=bW;xs._context=null;const UM=h5(xs,"$message"),wW={id:"app"},xW={class:"grid-content header-color"},SW=le("a",{class:"brand",href:"#"},"frp",-1),CW=le("span",null,"Proxies",-1),TW={id:"content"},MW=le("footer",null,null,-1),AW=ue({__name:"App",setup(e){const t=r=>{r==""&&window.open("https://github.com/fatedier/frp")};return(r,n)=>{const i=IM,a=B6,o=F6,s=N6,l=SM,u=gr("router-view");return X(),Se("div",wW,[le("header",xW,[J(i,null,{default:ee(()=>[SW]),_:1})]),le("section",null,[J(i,null,{default:ee(()=>[J(l,{id:"side-nav",xs:24,md:4},{default:ee(()=>[J(s,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:t},{default:ee(()=>[J(a,{index:"/"},{default:ee(()=>[kt("Overview")]),_:1}),J(o,{index:"/proxies"},{title:ee(()=>[CW]),default:ee(()=>[J(a,{index:"/proxies/tcp"},{default:ee(()=>[kt("TCP")]),_:1}),J(a,{index:"/proxies/udp"},{default:ee(()=>[kt("UDP")]),_:1}),J(a,{index:"/proxies/http"},{default:ee(()=>[kt("HTTP")]),_:1}),J(a,{index:"/proxies/https"},{default:ee(()=>[kt("HTTPS")]),_:1}),J(a,{index:"/proxies/stcp"},{default:ee(()=>[kt("STCP")]),_:1}),J(a,{index:"/proxies/sudp"},{default:ee(()=>[kt("SUDP")]),_:1})]),_:1}),J(a,{index:""},{default:ee(()=>[kt("Help")]),_:1})]),_:1})]),_:1}),J(l,{xs:24,md:20},{default:ee(()=>[le("div",TW,[J(u)])]),_:1})]),_:1})]),MW])}}});/*! + * vue-router v4.1.6 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */const Wo=typeof window<"u";function EW(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const ot=Object.assign;function Gh(e,t){const r={};for(const n in t){const i=t[n];r[n]=Tn(i)?i.map(e):e(i)}return r}const kl=()=>{},Tn=Array.isArray,PW=/\/$/,LW=e=>e.replace(PW,"");function Uh(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=OW(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function DW(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function Xb(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function IW(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&Ss(t.matched[n],r.matched[i])&&YM(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Ss(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function YM(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!RW(e[r],t[r]))return!1;return!0}function RW(e,t){return Tn(e)?Zb(e,t):Tn(t)?Zb(t,e):e===t}function Zb(e,t){return Tn(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function OW(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/");let i=r.length-1,a,o;for(a=0;a1&&i--;else break;return r.slice(0,i).join("/")+"/"+n.slice(a-(a===n.length?1:0)).join("/")}var vu;(function(e){e.pop="pop",e.push="push"})(vu||(vu={}));var Nl;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Nl||(Nl={}));function kW(e){if(!e)if(Wo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),LW(e)}const NW=/^[^#]+#/;function BW(e,t){return e.replace(NW,"#")+t}function FW(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const jd=()=>({left:window.pageXOffset,top:window.pageYOffset});function $W(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=FW(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Qb(e,t){return(history.state?history.state.position-t:-1)+e}const og=new Map;function HW(e,t){og.set(e,t)}function zW(e){const t=og.get(e);return og.delete(e),t}let WW=()=>location.protocol+"//"+location.host;function qM(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),Xb(l,"")}return Xb(r,e)+n+i}function VW(e,t,r,n){let i=[],a=[],o=null;const s=({state:d})=>{const h=qM(e,location),v=r.value,p=t.value;let g=0;if(d){if(r.value=h,t.value=d,o&&o===v){o=null;return}g=p?d.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,v,{delta:g,type:vu.pop,direction:g?g>0?Nl.forward:Nl.back:Nl.unknown})})};function l(){o=r.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return a.push(h),h}function f(){const{history:d}=window;d.state&&d.replaceState(ot({},d.state,{scroll:jd()}),"")}function c(){for(const d of a)d();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f),{pauseListeners:l,listen:u,destroy:c}}function Jb(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?jd():null}}function GW(e){const{history:t,location:r}=window,n={value:qM(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=e.indexOf("#"),d=c>-1?(r.host&&document.querySelector("base")?e:e.slice(c))+l:WW()+e+l;try{t[f?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),r[f?"replace":"assign"](d)}}function o(l,u){const f=ot({},t.state,Jb(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,f,!0),n.value=l}function s(l,u){const f=ot({},i.value,t.state,{forward:l,scroll:jd()});a(f.current,f,!0);const c=ot({},Jb(n.value,l,null),{position:f.position+1},u);a(l,c,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function UW(e){e=kW(e);const t=GW(e),r=VW(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=ot({location:"",base:e,go:n,createHref:BW.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function YW(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),UW(e)}function qW(e){return typeof e=="string"||e&&typeof e=="object"}function jM(e){return typeof e=="string"||typeof e=="symbol"}const Pi={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},KM=Symbol("");var e1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(e1||(e1={}));function Cs(e,t){return ot(new Error,{type:e,[KM]:!0},t)}function ri(e,t){return e instanceof Error&&KM in e&&(t==null||!!(e.type&t))}const t1="[^/]+?",jW={sensitive:!1,strict:!1,start:!0,end:!0},KW=/[.+*?^${}()[\]/\\]/g;function XW(e,t){const r=ot({},jW,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const f=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let c=0;ct.length?t.length===1&&t[0]===40+40?1:-1:0}function QW(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const JW={type:0,value:""},eV=/[a-zA-Z0-9_]/;function tV(e){if(!e)return[[]];if(e==="/")return[[JW]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{o(y)}:kl}function o(f){if(jM(f)){const c=n.get(f);c&&(n.delete(f),r.splice(r.indexOf(c),1),c.children.forEach(o),c.alias.forEach(o))}else{const c=r.indexOf(f);c>-1&&(r.splice(c,1),f.record.name&&n.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return r}function l(f){let c=0;for(;c=0&&(f.record.path!==r[c].record.path||!XM(f,r[c]));)c++;r.splice(c,0,f),f.record.name&&!i1(f)&&n.set(f.record.name,f)}function u(f,c){let d,h={},v,p;if("name"in f&&f.name){if(d=n.get(f.name),!d)throw Cs(1,{location:f});p=d.record.name,h=ot(n1(c.params,d.keys.filter(y=>!y.optional).map(y=>y.name)),f.params&&n1(f.params,d.keys.map(y=>y.name))),v=d.stringify(h)}else if("path"in f)v=f.path,d=r.find(y=>y.re.test(v)),d&&(h=d.parse(v),p=d.record.name);else{if(d=c.name?n.get(c.name):r.find(y=>y.re.test(c.path)),!d)throw Cs(1,{location:f,currentLocation:c});p=d.record.name,h=ot({},c.params,f.params),v=d.stringify(h)}const g=[];let m=d;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:v,params:h,matched:g,meta:oV(g)}}return e.forEach(f=>a(f)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function n1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function iV(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:aV(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function aV(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="boolean"?r:r[n];return t}function i1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function oV(e){return e.reduce((t,r)=>ot(t,r.meta),{})}function a1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function XM(e,t){return t.children.some(r=>r===e||XM(e,r))}const ZM=/#/g,sV=/&/g,lV=/\//g,uV=/=/g,fV=/\?/g,QM=/\+/g,cV=/%5B/g,dV=/%5D/g,JM=/%5E/g,hV=/%60/g,eA=/%7B/g,vV=/%7C/g,tA=/%7D/g,pV=/%20/g;function My(e){return encodeURI(""+e).replace(vV,"|").replace(cV,"[").replace(dV,"]")}function gV(e){return My(e).replace(eA,"{").replace(tA,"}").replace(JM,"^")}function sg(e){return My(e).replace(QM,"%2B").replace(pV,"+").replace(ZM,"%23").replace(sV,"%26").replace(hV,"`").replace(eA,"{").replace(tA,"}").replace(JM,"^")}function mV(e){return sg(e).replace(uV,"%3D")}function yV(e){return My(e).replace(ZM,"%23").replace(fV,"%3F")}function _V(e){return e==null?"":yV(e).replace(lV,"%2F")}function Uc(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function bV(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&sg(a)):[n&&sg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function wV(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=Tn(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const xV=Symbol(""),s1=Symbol(""),Ay=Symbol(""),rA=Symbol(""),lg=Symbol("");function qs(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function Hi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=c=>{c===!1?s(Cs(4,{from:r,to:t})):c instanceof Error?s(c):qW(c)?s(Cs(2,{from:t,to:c})):(a&&n.enterCallbacks[i]===a&&typeof c=="function"&&a.push(c),o())},u=e.call(n&&n.instances[i],t,r,l);let f=Promise.resolve(u);e.length<3&&(f=f.then(l)),f.catch(c=>s(c))})}function Yh(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(SV(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Hi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const f=EW(u)?u.default:u;a.components[o]=f;const d=(f.__vccOpts||f)[t];return d&&Hi(d,r,n,a,o)()}))}}return i}function SV(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function l1(e){const t=De(Ay),r=De(rA),n=$(()=>t.resolve(L(e.to))),i=$(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const d=c.findIndex(Ss.bind(null,f));if(d>-1)return d;const h=u1(l[u-2]);return u>1&&u1(f)===h&&c[c.length-1].path!==h?c.findIndex(Ss.bind(null,l[u-2])):d}),a=$(()=>i.value>-1&&AV(r.params,n.value.params)),o=$(()=>i.value>-1&&i.value===r.matched.length-1&&YM(r.params,n.value.params));function s(l={}){return MV(l)?t[L(e.replace)?"replace":"push"](L(e.to)).catch(kl):Promise.resolve()}return{route:n,href:$(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const CV=ue({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:l1,setup(e,{slots:t}){const r=ln(l1(e)),{options:n}=De(Ay),i=$(()=>({[f1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[f1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:we("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),TV=CV;function MV(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function AV(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!Tn(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function u1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const f1=(e,t,r)=>e??t??r,EV=ue({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=De(lg),i=$(()=>e.route||n.value),a=De(s1,0),o=$(()=>{let u=L(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=$(()=>i.value.matched[o.value]);Ct(s1,$(()=>o.value+1)),Ct(xV,s),Ct(lg,i);const l=H();return Me(()=>[l.value,s.value,e.name],([u,f,c],[d,h,v])=>{f&&(f.instances[c]=u,h&&h!==f&&u&&u===d&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),u&&f&&(!h||!Ss(f,h)||!d)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=e.name,c=s.value,d=c&&c.components[f];if(!d)return c1(r.default,{Component:d,route:u});const h=c.props[f],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,g=we(d,ot({},v,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return c1(r.default,{Component:g,route:u})||g}}});function c1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const PV=EV;function LV(e){const t=nV(e.routes,e),r=e.parseQuery||bV,n=e.stringifyQuery||o1,i=e.history,a=qs(),o=qs(),s=qs(),l=mD(Pi);let u=Pi;Wo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Gh.bind(null,V=>""+V),c=Gh.bind(null,_V),d=Gh.bind(null,Uc);function h(V,Q){let W,Y;return jM(V)?(W=t.getRecordMatcher(V),Y=Q):Y=V,t.addRoute(Y,W)}function v(V){const Q=t.getRecordMatcher(V);Q&&t.removeRoute(Q)}function p(){return t.getRoutes().map(V=>V.record)}function g(V){return!!t.getRecordMatcher(V)}function m(V,Q){if(Q=ot({},Q||l.value),typeof V=="string"){const P=Uh(r,V,Q.path),I=t.resolve({path:P.path},Q),z=i.createHref(P.fullPath);return ot(P,I,{params:d(I.params),hash:Uc(P.hash),redirectedFrom:void 0,href:z})}let W;if("path"in V)W=ot({},V,{path:Uh(r,V.path,Q.path).path});else{const P=ot({},V.params);for(const I in P)P[I]==null&&delete P[I];W=ot({},V,{params:c(V.params)}),Q.params=c(Q.params)}const Y=t.resolve(W,Q),se=V.hash||"";Y.params=f(d(Y.params));const he=DW(n,ot({},V,{hash:gV(se),path:Y.path})),Z=i.createHref(he);return ot({fullPath:he,hash:se,query:n===o1?wV(V.query):V.query||{}},Y,{redirectedFrom:void 0,href:Z})}function y(V){return typeof V=="string"?Uh(r,V,l.value.path):ot({},V)}function _(V,Q){if(u!==V)return Cs(8,{from:Q,to:V})}function b(V){return S(V)}function x(V){return b(ot(y(V),{replace:!0}))}function w(V){const Q=V.matched[V.matched.length-1];if(Q&&Q.redirect){const{redirect:W}=Q;let Y=typeof W=="function"?W(V):W;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=y(Y):{path:Y},Y.params={}),ot({query:V.query,hash:V.hash,params:"path"in Y?{}:V.params},Y)}}function S(V,Q){const W=u=m(V),Y=l.value,se=V.state,he=V.force,Z=V.replace===!0,P=w(W);if(P)return S(ot(y(P),{state:typeof P=="object"?ot({},se,P.state):se,force:he,replace:Z}),Q||W);const I=W;I.redirectedFrom=Q;let z;return!he&&IW(n,Y,W)&&(z=Cs(16,{to:I,from:Y}),U(Y,Y,!0,!1)),(z?Promise.resolve(z):T(I,Y)).catch(G=>ri(G)?ri(G,2)?G:N(G):j(G,I,Y)).then(G=>{if(G){if(ri(G,2))return S(ot({replace:Z},y(G.to),{state:typeof G.to=="object"?ot({},se,G.to.state):se,force:he}),Q||I)}else G=A(I,Y,!0,Z,se);return E(I,Y,G),G})}function C(V,Q){const W=_(V,Q);return W?Promise.reject(W):Promise.resolve()}function T(V,Q){let W;const[Y,se,he]=DV(V,Q);W=Yh(Y.reverse(),"beforeRouteLeave",V,Q);for(const P of Y)P.leaveGuards.forEach(I=>{W.push(Hi(I,V,Q))});const Z=C.bind(null,V,Q);return W.push(Z),Mo(W).then(()=>{W=[];for(const P of a.list())W.push(Hi(P,V,Q));return W.push(Z),Mo(W)}).then(()=>{W=Yh(se,"beforeRouteUpdate",V,Q);for(const P of se)P.updateGuards.forEach(I=>{W.push(Hi(I,V,Q))});return W.push(Z),Mo(W)}).then(()=>{W=[];for(const P of V.matched)if(P.beforeEnter&&!Q.matched.includes(P))if(Tn(P.beforeEnter))for(const I of P.beforeEnter)W.push(Hi(I,V,Q));else W.push(Hi(P.beforeEnter,V,Q));return W.push(Z),Mo(W)}).then(()=>(V.matched.forEach(P=>P.enterCallbacks={}),W=Yh(he,"beforeRouteEnter",V,Q),W.push(Z),Mo(W))).then(()=>{W=[];for(const P of o.list())W.push(Hi(P,V,Q));return W.push(Z),Mo(W)}).catch(P=>ri(P,8)?P:Promise.reject(P))}function E(V,Q,W){for(const Y of s.list())Y(V,Q,W)}function A(V,Q,W,Y,se){const he=_(V,Q);if(he)return he;const Z=Q===Pi,P=Wo?history.state:{};W&&(Y||Z?i.replace(V.fullPath,ot({scroll:Z&&P&&P.scroll},se)):i.push(V.fullPath,se)),l.value=V,U(V,Q,W,Z),N()}let M;function D(){M||(M=i.listen((V,Q,W)=>{if(!Te.listening)return;const Y=m(V),se=w(Y);if(se){S(ot(se,{replace:!0}),Y).catch(kl);return}u=Y;const he=l.value;Wo&&HW(Qb(he.fullPath,W.delta),jd()),T(Y,he).catch(Z=>ri(Z,12)?Z:ri(Z,2)?(S(Z.to,Y).then(P=>{ri(P,20)&&!W.delta&&W.type===vu.pop&&i.go(-1,!1)}).catch(kl),Promise.reject()):(W.delta&&i.go(-W.delta,!1),j(Z,Y,he))).then(Z=>{Z=Z||A(Y,he,!1),Z&&(W.delta&&!ri(Z,8)?i.go(-W.delta,!1):W.type===vu.pop&&ri(Z,20)&&i.go(-1,!1)),E(Y,he,Z)}).catch(kl)}))}let O=qs(),k=qs(),F;function j(V,Q,W){N(V);const Y=k.list();return Y.length?Y.forEach(se=>se(V,Q,W)):console.error(V),Promise.reject(V)}function B(){return F&&l.value!==Pi?Promise.resolve():new Promise((V,Q)=>{O.add([V,Q])})}function N(V){return F||(F=!V,D(),O.list().forEach(([Q,W])=>V?W(V):Q()),O.reset()),V}function U(V,Q,W,Y){const{scrollBehavior:se}=e;if(!Wo||!se)return Promise.resolve();const he=!W&&zW(Qb(V.fullPath,0))||(Y||!W)&&history.state&&history.state.scroll||null;return Ht().then(()=>se(V,Q,he)).then(Z=>Z&&$W(Z)).catch(Z=>j(Z,V,Q))}const re=V=>i.go(V);let ae;const me=new Set,Te={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,hasRoute:g,getRoutes:p,resolve:m,options:e,push:b,replace:x,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:k.add,isReady:B,install(V){const Q=this;V.component("RouterLink",TV),V.component("RouterView",PV),V.config.globalProperties.$router=Q,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>L(l)}),Wo&&!ae&&l.value===Pi&&(ae=!0,b(i.location).catch(se=>{}));const W={};for(const se in Pi)W[se]=$(()=>l.value[se]);V.provide(Ay,Q),V.provide(rA,ln(W)),V.provide(lg,l);const Y=V.unmount;me.add(V),V.unmount=function(){me.delete(V),me.size<1&&(u=Pi,M&&M(),M=null,l.value=Pi,ae=!1,F=!1),Y()}}};return Te}function Mo(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function DV(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oSs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>Ss(u,l))||i.push(l))}return[r,n,i]}var Ji={},IV={get exports(){return Ji},set exports(e){Ji=e}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(LH,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(c){return typeof c<"u"&&c!==null},o=function(c){return c!==c},s=function(c){return isFinite(c)&&!o(parseFloat(c))},l=function(c){var d=Object.prototype.toString.call(c);return d==="[object Array]"},u={intword:function(c,d){var h=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(c,h)},compactInteger:function(c){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1];d=Math.max(d,0);var h=parseInt(c,10),v=h<0?"-":"",p=Math.abs(h),g=String(p),m=g.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+g;if(m>y[0]+3)return h.toExponential(d).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=m-b+1,C=g.split(""),T=C.slice(0,S),E=C.slice(S,S+d+1),A=T.join(""),M=E.join("");M.length=v)return u.formatNumber(c/v,d,"")+" "+h+"B"}return c>=1024?u.formatNumber(c/1024,0)+" KB":u.formatNumber(c,0)+u.pluralize(c," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(c){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1],h=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,T){return T?S.substr(0,T)+C:""},g=function(S,C,T){return S.substr(T).replace(/(\d{3})(?=\d)/g,"$1"+C)},m=function(S,C,T){return T?C+u.toFixed(Math.abs(S),T).split(".")[1]:""},y=u.normalizePrecision(d),_=c<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(c||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,h,x)+g(b,h,x)+m(c,v,y)},toFixed:function(c,d){d=a(d)?d:u.normalizePrecision(d,0);var h=Math.pow(10,d);return(Math.round(c*h)/h).toFixed(d)},normalizePrecision:function(c,d){return c=Math.round(Math.abs(c)),o(c)?d:c},ordinal:function(c){var d=parseInt(c,10);if(d===0)return c;var h=d%100;if([11,12,13].indexOf(h)>=0)return d+"th";var v=d%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+d+p},times:function(c){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(c)&&c>=0){var h=parseFloat(c),v=["never","once","twice"];if(a(d[h]))return String(d[h]);var p=a(v[h])&&v[h].toString();return p||h.toString()+" times"}return null},pluralize:function(c,d,h){return a(c)&&a(d)?(h=a(h)?h:d+"s",parseInt(c,10)===1?d:h):null},truncate:function(c){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return c.length>d?c.substring(0,d-h.length)+h:c},truncateWords:function(c,d){for(var h=c.split(" "),v="",p=0;pd?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(c){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(c)&&s(d)&&c>d&&(v=d+h),(v||c).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(c,d,h){var v=c.length,p=void 0;if(v<2)return String(c);if(v===2)return c.join(" and ");if(a(d)&&v>d){var g=v-d;p=d,h=a(h)?h:", and "+g+" "+u.pluralize(g,"other")}else p=-1,h=", and "+c[v-1];return c.slice(0,p).join(", ")+h},dictionary:function(c){var d=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],h=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(c)&&(typeof c>"u"?"undefined":r(c))==="object"&&!l(c)){var p=[];for(var g in c)if(c.hasOwnProperty(g)){var m=c[g];p.push(""+g+d+m)}return p.join(h)}return v},frequency:function(c,d){if(!l(c))return null;var h=c.length,v=u.times(h);return h===0?v+" "+d:d+" "+v},pace:function(c,d){var h=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(c===0||d===0)return"No "+u.pluralize(0,h);for(var v="Approximately",p=void 0,g=void 0,m=c/d,y=0;y1){p=_.name;break}}p||(v="Less than",g=1,p=n[n.length-1].name);var b=Math.round(g);return h=u.pluralize(b,h),v+" "+b+" "+h+" per "+p},nl2br:function(c){var d=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return c.replace(/\n/g,d)},br2nl:function(c){var d=arguments.length<=1||arguments[1]===void 0?`\r +`:arguments[1];return c.replace(/\/g,d)},capitalize:function(c){var d=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+c.charAt(0).toUpperCase()+(d?c.slice(1).toLowerCase():c.slice(1))},capitalizeAll:function(c){return c.replace(/(?:^|\s)\S/g,function(d){return d.toUpperCase()})},titleCase:function(c){var d=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,h=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,g=void 0;return g=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],x=[],w=y.split(_?p:v),S=0;S"u"&&typeof self<"u"?Fa.worker=!0:typeof navigator>"u"?(Fa.node=!0,Fa.svgSupported=!0):kV(navigator.userAgent,Fa);function kV(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ve=Fa;var Ey=12,NV="sans-serif",co=Ey+"px "+NV,BV=20,FV=100,$V="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function HV(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function dG(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=e[u].getBoundingClientRect(),c=2*u,d=f.left,h=f.top;o.push(d,h),l=l&&a&&d===a[c]&&h===a[c+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?p1(s,o):p1(o,s))}function fA(e){return e.nodeName.toUpperCase()==="CANVAS"}var hG=/([&<>"'])/g,vG={"&":"&","<":"<",">":">",'"':""","'":"'"};function Kr(e){return e==null?"":(e+"").replace(hG,function(t,r){return vG[r]})}var pG=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xh=[],gG=Ve.browser.firefox&&+Ve.browser.version.split(".")[0]<39;function gg(e,t,r,n){return r=r||{},n?m1(e,t,r):gG&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):m1(e,t,r),r}function m1(e,t,r){if(Ve.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(fA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(pg(Xh,e,n,i)){r.zrX=Xh[0],r.zrY=Xh[1];return}}r.zrX=r.zrY=0}function Ry(e){return e||window.event}function Ur(e,t,r){if(t=Ry(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&gg(e,o,t,r)}else{gg(e,t,t,r);var a=mG(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&pG.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function mG(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function yG(e,t,r,n){e.addEventListener(t,r,n)}function _G(e,t,r,n){e.removeEventListener(t,r,n)}var cA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},bG=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=y1(n)/y1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=wG(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function gu(){return[1,0,0,1,0,0]}function Oy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function xG(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function is(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function mg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function ky(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),f=Math.cos(r);return e[0]=n*f+o*u,e[1]=-n*u+o*f,e[2]=i*f+s*u,e[3]=-i*u+f*s,e[4]=f*a+u*l,e[5]=f*l-u*a,e}function SG(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function Qd(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var CG=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const ke=CG;var pf=Math.min,gf=Math.max,da=new ke,ha=new ke,va=new ke,pa=new ke,js=new ke,Ks=new ke,TG=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=pf(t.x,this.x),n=pf(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=gf(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=gf(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=gu();return mg(a,a,[-r.x,-r.y]),SG(a,a,[n,i]),mg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,f=t.y,c=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}da.x=va.x=r.x,da.y=pa.y=r.y,ha.x=pa.x=r.x+r.width,ha.y=va.y=r.y+r.height,da.transform(n),pa.transform(n),ha.transform(n),va.transform(n),t.x=pf(da.x,ha.x,va.x,pa.x),t.y=pf(da.y,ha.y,va.y,pa.y);var l=gf(da.x,ha.x,va.x,pa.x),u=gf(da.y,ha.y,va.y,pa.y);t.width=l-t.x,t.height=u-t.y},e}();const et=TG;var dA="silent";function MG(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:AG}}function AG(){cA(this.event)}var EG=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(Jn),Xs=function(){function e(t,r){this.x=t,this.y=r}return e}(),PG=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Qh=new et(0,0,0,0),hA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new Xs(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new EG,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new sG(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(R(PG,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=vA(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new Xs(n,i):this.findHover(n,i),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new Xs(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=MG(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new Xs(r,n);if(_1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new et(r-u,n-u,l,l),c=a.length-1;c>=0;c--){var d=a[c];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(Qh.copy(d.getBoundingRect()),d.transform&&Qh.applyTransform(d.transform),Qh.intersect(f)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function LG(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?dA:!0}return!1}function _1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=LG(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==dA)){t.target=o;break}}}function vA(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const DG=hA;var pA=32,Zs=7;function IG(e){for(var t=0;e>=pA;)t|=e&1,e>>=1;return e+t}function b1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function RG(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function Jh(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+f])>0?o=f+1:l=f}return l}function ev(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+f])<0?l=f:o=f+1}return l}function OG(e,t){var r=Zs,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;f(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=Zs||S>=Zs);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[x+m];e[b]=o[_];return}for(var S=r;;){var C=0,T=0,E=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,T=0,--v===0){E=!0;break}}else if(e[b--]=o[_--],T++,C=0,--g===1){E=!0;break}while((C|T)=0;m--)e[w+m]=e[x+m];if(v===0){E=!0;break}}if(e[b--]=o[_--],--g===1){E=!0;break}if(T=g-Jh(e[y],o,0,g,g-1,t),T!==0){for(b-=T,_-=T,g-=T,w=b+1,x=_+1,m=0;m=Zs||T>=Zs);if(E)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,x=y+1,m=v-1;m>=0;m--)e[w+m]=e[x+m];e[b]=o[_]}else{if(g===0)throw new Error;for(x=b-(g-1),m=0;ms&&(l=s),w1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Ir=1,ml=2,Vo=4,x1=!1;function tv(){x1||(x1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function S1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var kG=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=S1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(tv(),f.z=0),isNaN(f.z2)&&(tv(),f.z2=0),isNaN(f.zlevel)&&(tv(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const NG=kG;var gA;gA=Ve.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const yg=gA;var _c={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-_c.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?_c.bounceIn(e*2)*.5:_c.bounceOut(e*2-1)*.5+.5}};const mA=_c;var mf=Math.pow,Ki=Math.sqrt,jc=1e-8,yA=1e-4,C1=Ki(3),yf=1/3,Bn=Ns(),Xr=Ns(),as=Ns();function Gi(e){return e>-jc&&ejc||e<-jc}function Gt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function T1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function bA(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,f=s*s-3*o*l,c=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Gi(f)&&Gi(c))if(Gi(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=c*c-4*f*d;if(Gi(p)){var g=c/f,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Ki(p),_=f*s+1.5*o*(-c+y),b=f*s+1.5*o*(-c-y);_<0?_=-mf(-_,yf):_=mf(_,yf),b<0?b=-mf(-b,yf):b=mf(b,yf);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var x=(2*f*s-3*o*c)/(2*Ki(f*f*f)),w=Math.acos(x)/3,S=Ki(f),C=Math.cos(w),v=(-s-2*S*C)/(3*o),m=(-s+S*(C+C1*Math.sin(w)))/(3*o),T=(-s+S*(C-C1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),T>=0&&T<=1&&(a[h++]=T)}}return h}function wA(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Gi(o)){if(_A(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Gi(f))i[0]=-a/(2*o);else if(f>0){var c=Ki(f),u=(-a+c)/(2*o),d=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function Kc(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function xA(e,t,r,n,i,a,o,s,l,u,f){var c,d=.005,h=1/0,v,p,g,m;Bn[0]=l,Bn[1]=u;for(var y=0;y<1;y+=.05)Xr[0]=Gt(e,r,i,o,y),Xr[1]=Gt(t,n,a,s,y),g=ns(Bn,Xr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Gi(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=Ki(f),u=(-o+c)/(2*a),d=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function SA(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function Xc(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function CA(e,t,r,n,i,a,o,s,l){var u,f=.005,c=1/0;Bn[0]=o,Bn[1]=s;for(var d=0;d<1;d+=.05){Xr[0]=Zt(e,r,i,d),Xr[1]=Zt(t,n,a,d);var h=ns(Bn,Xr);h=0&&h=1?1:bA(0,n,a,1,l,s)&&Gt(0,i,o,1,s[0])}}}var zG=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Sr,this.ondestroy=t.ondestroy||Sr,this.onrestart=t.onrestart||Sr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=We(t)?t:mA[t]||TA(t)},e}();const WG=zG;var MA=function(){function e(t){this.value=t}return e}(),VG=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new MA(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),GG=function(){function e(t){this._list=new VG,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new MA(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const Wu=GG;var A1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function $l(e){return e=Math.round(e),e<0?0:e>255?255:e}function E1(e){return e<0?0:e>1?1:e}function rv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?$l(parseFloat(t)/100*255):$l(parseInt(t,10))}function Hl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?E1(parseFloat(t)/100):E1(parseFloat(t))}function nv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Gr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function _g(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var AA=new Wu(20),_f=null;function Eo(e,t){_f&&_g(_f,t),_f=AA.put(e,_f||t.slice())}function to(e,t){if(e){t=t||[];var r=AA.get(e);if(r)return _g(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in A1)return _g(t,A1[n]),Eo(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Gr(t,0,0,0,1);return}return Gr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Eo(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Gr(t,0,0,0,1);return}return Gr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Eo(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Gr(t,+u[0],+u[1],+u[2],1):Gr(t,0,0,0,1);f=Hl(u.pop());case"rgb":if(u.length>=3)return Gr(t,rv(u[0]),rv(u[1]),rv(u[2]),u.length===3?f:Hl(u[3])),Eo(e,t),t;Gr(t,0,0,0,1);return;case"hsla":if(u.length!==4){Gr(t,0,0,0,1);return}return u[3]=Hl(u[3]),P1(u,t),Eo(e,t),t;case"hsl":if(u.length!==3){Gr(t,0,0,0,1);return}return P1(u,t),Eo(e,t),t;default:return}}Gr(t,0,0,0,1)}}function P1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Hl(e[1]),i=Hl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Gr(t,$l(nv(o,a,r+1/3)*255),$l(nv(o,a,r)*255),$l(nv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function L1(e,t){var r=to(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ny(r,r.length===4?"rgba":"rgb")}}function Ny(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function Zc(e,t){var r=to(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function UG(e){return e.type==="linear"}function YG(e){return e.type==="radial"}(function(){return Ve.hasGlobalWindow&&We(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var bg=Array.prototype.slice;function li(e,t,r){return(t-e)*r+e}function iv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=I1,l=r;if(Tr(r)){var u=XG(r);s=u,(u===1&&!_t(r[0])||u===2&&!_t(r[0][0]))&&(o=!0)}else if(_t(r)&&!qc(r))s=wf;else if(Ce(r))if(!isNaN(+r))s=wf;else{var f=to(r);f&&(l=f,s=yl)}else if(Xd(r)){var c=oe({},l);c.colorStops=Oe(r.colorStops,function(h){return{offset:h.offset,color:to(h.color)}}),UG(r)?s=wg:YG(r)&&(s=xg),l=c}a===0?this.valType=s:(s!==this.valType||s===I1)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=We(n)?n:mA[n]||TA(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=xf(i),u=R1(i),f=0;f=0&&!(o[f].percent<=r);f--);f=d(f,s-2)}else{for(f=c;fr);f++);f=d(f-1,s-2)}v=o[f+1],h=o[f]}if(h&&v){this._lastFr=f,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?Qs:t[l];if((xf(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(xf(a))a===xc?iv(y,h[i],v[i],m):qG(y,h[i],v[i],m);else if(R1(a)){var _=h[i],b=v[i],x=a===wg;t[l]={type:x?"linear":"radial",x:li(_.x,b.x,m),y:li(_.y,b.y,m),colorStops:Oe(_.colorStops,function(S,C){var T=b.colorStops[C];return{offset:li(S.offset,T.offset,m),color:wc(iv([],S.color,T.color,m))}}),global:b.global},x?(t[l].x2=li(_.x2,b.x2,m),t[l].y2=li(_.y2,b.y2,m)):t[l].r=li(_.r,b.r,m)}else if(u)iv(y,h[i],v[i],m),n||(t[l]=wc(y));else{var w=li(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===wf?t[n]=t[n]+i:r===yl?(to(t[n],Qs),bf(Qs,Qs,i,1),t[n]=wc(Qs)):r===xc?bf(t[n],t[n],i,1):r===EA&&D1(t[n],t[n],i,1)},e}(),QG=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Dy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,xt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,bc(u),i),this._trackKeys.push(s)}l.addKeyframe(t,bc(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const By=QG;function Ko(){return new Date().getTime()}var JG=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=Ko()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(yg(n),!r._paused&&r.update())}yg(n)},t.prototype.start=function(){this._running||(this._time=Ko(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=Ko(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=Ko()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new By(r,n.loop);return this.addAnimator(i),i},t}(Jn);const eU=JG;var tU=300,av=Ve.domSupported,ov=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Oe(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),O1={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},k1=!1;function Sg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function rU(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function sv(e){e&&(e.zrByTouch=!0)}function nU(e,t){return Ur(e.dom,new iU(e,t),!0)}function PA(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var iU=function(){function e(t,r){this.stopPropagation=Sr,this.stopImmediatePropagation=Sr,this.preventDefault=Sr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),vn={mousedown:function(e){e=Ur(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Ur(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Ur(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Ur(this.dom,e);var t=e.toElement||e.relatedTarget;PA(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){k1=!0,e=Ur(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){k1||(e=Ur(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Ur(this.dom,e),sv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),vn.mousemove.call(this,e),vn.mousedown.call(this,e)},touchmove:function(e){e=Ur(this.dom,e),sv(e),this.handler.processGesture(e,"change"),vn.mousemove.call(this,e)},touchend:function(e){e=Ur(this.dom,e),sv(e),this.handler.processGesture(e,"end"),vn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentF1||e<-F1}var ma=[],Po=[],uv=gu(),fv=Math.abs,fU=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return ga(this.rotation)||ga(this.x)||ga(this.y)||ga(this.scaleX-1)||ga(this.scaleY-1)||ga(this.skewX)||ga(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&B1(n);return}n=n||gu(),r?this.getLocalTransform(n):B1(n),t&&(r?is(n,t,n):xG(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(ma);var n=ma[0]<0?-1:1,i=ma[1]<0?-1:1,a=((ma[0]-n)*r+n)/ma[0]||0,o=((ma[1]-i)*r+i)/ma[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||gu(),Qd(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(is(Po,t.invTransform,r),r=Po);var n=this.originX,i=this.originY;(n||i)&&(uv[4]=n,uv[5]=i,is(Po,r,uv),Po[4]-=n,Po[5]-=i,r=Po),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&rn(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&rn(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&fv(t[0]-1)>1e-10&&fv(t[3]-1)>1e-10?Math.sqrt(fv(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){cU(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,f=t.x,c=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&ky(r,r,u),r[4]+=n+f,r[5]+=i+c,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),mu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function cU(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function Jc(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,f="left",c="top";if(n instanceof Array)l+=ta(n[0],r.width),u+=ta(n[1],r.height),f=null,c=null;else switch(n){case"left":l-=i,u+=s,f="right",c="middle";break;case"right":l+=i+o,u+=s,c="middle";break;case"top":l+=o/2,u-=i,f="center",c="bottom";break;case"bottom":l+=o/2,u+=a+i,f="center";break;case"inside":l+=o/2,u+=s,f="center",c="middle";break;case"insideLeft":l+=i,u+=s,c="middle";break;case"insideRight":l+=o-i,u+=s,f="right",c="middle";break;case"insideTop":l+=o/2,u+=i,f="center";break;case"insideBottom":l+=o/2,u+=a-i,f="center",c="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,f="right";break;case"insideBottomLeft":l+=i,u+=a-i,c="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,f="right",c="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=f,e.verticalAlign=c,e}var cv="__zr_normal__",dv=mu.concat(["ignore"]),dU=ea(mu,function(e,t){return e[t]=!0,e},{ignore:!1}),Lo={},hU=new et(0,0,0,0),Hy=function(){function e(t){this.id=aA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var f=hU;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Lo,n,f):Jc(Lo,n,f),a.x=Lo.x,a.y=Lo.y,o=Lo.align,s=Lo.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var d=void 0,h=void 0;c==="center"?(d=f.width*.5,h=f.height*.5):(d=ta(c[0],f.width),h=ta(c[1],f.height)),u=!0,a.originX=-a.x+d+(i?0:f.x),a.originY=-a.y+h+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Ir,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Ag:Mg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&to(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ny(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},oe(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Pe(t))for(var n=t,i=xt(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(cv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===cv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(nt(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Dy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||i);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,d=this._textGuide;return c&&c.useState(t,r,n,f),d&&d.useState(t,r,n,f),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Ir),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Ir)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=nt(i,t),o=nt(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,T=void 0,E=void 0;if(s){T={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];T[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){E={};for(var b=0;b<_;b++){var m=p[b];E[m]=bc(r[m]),pU(r,n,m)}}var x=new By(r,!1,!1,c?Ft(v,function(M){return M.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),d&&C&&x.whenWithKeys(0,C,p),E&&x.whenWithKeys(0,E,p),x.whenWithKeys(u??500,s?T:n,p).delay(f||0),e.addAnimator(x,t),o.push(x)}}const IA=Hy;var RA=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=nt(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=nt(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function pt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Ce(e)?xU(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function It(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),kA),e=(+e).toFixed(t),r?e:+e}function ui(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return SU(e)}function SU(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function CU(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function TU(e,t){var r=ea(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Oe(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Oe(i,function(h){return Math.floor(h)}),s=ea(o,function(h,v){return h+v},0),l=Oe(i,function(h,v){return h-o[v]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return Oe(o,function(h){return h/n})}function MU(e,t){var r=Math.max(ui(e),ui(t)),n=e+t;return r>kA?n:It(n,r)}function NA(e){var t=Math.PI*2;return(e%t+t)%t}function ed(e){return e>-W1&&e=10&&t++,t}function BA(e,t){var r=zy(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function td(e){var t=parseFloat(e);return t==e&&(t!==0||!Ce(e)||e.indexOf("x")<=0)?t:NaN}function PU(e){return!isNaN(td(e))}function FA(){return Math.round(Math.random()*9)}function $A(e,t){return t===0?e:$A(t,e%t)}function V1(e,t){return e==null?t:t==null?e:e*t/$A(e,t)}function mr(e){throw new Error(e)}function G1(e,t,r){return(t-e)*r+e}var HA="series\0",LU="\0_ec_\0";function lr(e){return e instanceof Array?e:e==null?[]:[e]}function Pg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&nt(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var JU=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],e9=_u(JU),t9=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return e9(this,t,r)},e}(),Lg=new Wu(50);function r9(e){if(typeof e=="string"){var t=Lg.get(e);return t&&t.image}else return e}function UA(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=Lg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!th(t)&&a.pending.push(o)):(t=bo.loadImage(e,Y1,Y1),t.__zrImageSrc=e,Lg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function Y1(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=Nr(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function qA(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=Nr(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?i9(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=Nr(e,n)}return e===""&&(e=t.placeholder),e}function i9(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);c=c.slice(0,v)}if(e&&a&&f!=null)for(var p=YA(f,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&mv(r,e.substring(s,u),t,o),mv(r,l[2],t,o,l[1]),s=gv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var M=S.width,D=M==null||M==="auto";if(typeof M=="string"&&M.charAt(M.length-1)==="%")w.percentWidth=M,f.push(w),w.contentWidth=Nr(w.text,E);else{if(D){var O=S.backgroundColor,k=O&&O.image;k&&(k=r9(k),th(k)&&(w.width=Math.max(w.width,k.width*A/k.height)))}var F=v&&n!=null?n-b:null;F!=null&&F0&&v+n.accumWidth>n.width&&(f=t.split(` +`),u=!0),n.accumWidth=v}else{var p=jA(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,c=p.linesWidths,f=p.lines}}else f=t.split(` +`);for(var g=0;g=33&&t<=383}var f9=ea(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function c9(e){return u9(e)?!!f9[e]:!0}function jA(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,f=0,c=0;cr:i+f+h>r){f?(s||l)&&(v?(s||(s=l,l="",u=0,f=u),a.push(s),o.push(f-u),l+=d,u+=h,s="",f=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(f),s=d,f=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}f+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(f)),a.length===1&&(f+=i),{accumWidth:f,lines:a,linesWidths:o}}var Dg="__zr_style_"+Math.round(Math.random()*10),ro={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},rh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};ro[Dg]=!0;var j1=["z","z2","invisible"],d9=["invisible"],h9=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=xt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Sf[0]=wv(i)*r+e,Sf[1]=bv(i)*n+t,Cf[0]=wv(a)*r+e,Cf[1]=bv(a)*n+t,u(s,Sf,Cf),f(l,Sf,Cf),i=i%_a,i<0&&(i=i+_a),a=a%_a,a<0&&(a=a+_a),i>a&&!o?a+=_a:ii&&(Tf[0]=wv(h)*r+e,Tf[1]=bv(h)*n+t,u(s,Tf,s),f(l,Tf,l))}var rt={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},ba=[],wa=[],Dn=[],Li=[],In=[],Rn=[],xv=Math.min,Sv=Math.max,xa=Math.cos,Sa=Math.sin,ni=Math.abs,Ig=Math.PI,Bi=Ig*2,Cv=typeof Float32Array<"u",Js=[];function Tv(e){var t=Math.round(e/Ig*1e8)/1e8;return t%2*Ig}function y9(e,t){var r=Tv(e[0]);r<0&&(r+=Bi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=Bi?i=r+Bi:t&&r-i>=Bi?i=r-Bi:!t&&r>i?i=r+(Bi-Tv(r-i)):t&&r0&&(this._ux=ni(n/Qc/t)||0,this._uy=ni(n/Qc/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(rt.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=ni(t-this._xi),i=ni(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(rt.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(rt.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(rt.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),Js[0]=i,Js[1]=a,y9(Js,o),i=Js[0],a=Js[1];var s=a-i;return this.addData(rt.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=xa(a)*n+t,this._yi=Sa(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(rt.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(rt.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Cv&&(this.data=new Float32Array(r));for(var n=0;nf.length&&(this._expandData(),f=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Dn[0]=Dn[1]=In[0]=In[1]=Number.MAX_VALUE,Li[0]=Li[1]=Rn[0]=Rn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||ni(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case rt.C:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++],w=t[d++],S=t[d++];p=BG(a,o,b,x,g,m,w,S,10),a=w,o=S;break}case rt.Q:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++];p=$G(a,o,b,x,g,m,10),a=g,o=m;break}case rt.A:var C=t[d++],T=t[d++],E=t[d++],A=t[d++],M=t[d++],D=t[d++],O=D+M;d+=1,t[d++],v&&(s=xa(M)*E+C,l=Sa(M)*A+T),p=Sv(E,A)*xv(Bi,Math.abs(D)),a=xa(O)*E+C,o=Sa(O)*A+T;break;case rt.R:{s=a=t[d++],l=o=t[d++];var k=t[d++],F=t[d++];p=k*2+F*2;break}case rt.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[c++]=p,f+=p)}return this._pathLen=f,f},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,f,c,d,h=r<1,v,p,g=0,m=0,y,_=0,b,x;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case rt.M:s=u=n[w++],l=f=n[w++],t.moveTo(u,f);break;case rt.L:{c=n[w++],d=n[w++];var T=ni(c-u),E=ni(d-f);if(T>i||E>a){if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+c*M,f*(1-M)+d*M);break e}g+=A}t.lineTo(c,d),u=c,f=d,_=0}else{var D=T*T+E*E;D>_&&(b=c,x=d,_=D)}break}case rt.C:{var O=n[w++],k=n[w++],F=n[w++],j=n[w++],B=n[w++],N=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;Kc(u,O,F,B,M,ba),Kc(f,k,j,N,M,wa),t.bezierCurveTo(ba[1],wa[1],ba[2],wa[2],ba[3],wa[3]);break e}g+=A}t.bezierCurveTo(O,k,F,j,B,N),u=B,f=N;break}case rt.Q:{var O=n[w++],k=n[w++],F=n[w++],j=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;Xc(u,O,F,M,ba),Xc(f,k,j,M,wa),t.quadraticCurveTo(ba[1],wa[1],ba[2],wa[2]);break e}g+=A}t.quadraticCurveTo(O,k,F,j),u=F,f=j;break}case rt.A:var U=n[w++],re=n[w++],ae=n[w++],me=n[w++],Te=n[w++],V=n[w++],Q=n[w++],W=!n[w++],Y=ae>me?ae:me,se=ni(ae-me)>.001,he=Te+V,Z=!1;if(h){var A=v[m++];g+A>y&&(he=Te+V*(y-g)/A,Z=!0),g+=A}if(se&&t.ellipse?t.ellipse(U,re,ae,me,Q,Te,he,W):t.arc(U,re,Y,Te,he,W),Z)break e;C&&(s=xa(Te)*ae+U,l=Sa(Te)*me+re),u=xa(he)*ae+U,f=Sa(he)*me+re;break;case rt.R:s=u=n[w],l=f=n[w+1],c=n[w++],d=n[w++];var P=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(c,d),t.lineTo(c+xv(z,P),d),z-=P,z>0&&t.lineTo(c+P,d+xv(z,I)),z-=I,z>0&&t.lineTo(c+Sv(P-z,0),d+I),z-=P,z>0&&t.lineTo(c,d+Sv(I-z,0));break e}g+=A}t.rect(c,d,P,I);break;case rt.Z:if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+s*M,f*(1-M)+l*M);break e}g+=A}t.closePath(),u=s,f=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=rt,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const ho=_9;function Do(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+c&&f>n+c&&f>a+c&&f>s+c||fe+c&&u>r+c&&u>i+c&&u>o+c||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||f+ui&&(i+=el);var d=Math.atan2(l,s);return d<0&&(d+=el),d>=n&&d<=i||d+el>=n&&d+el<=i}function Ca(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Di=ho.CMD,Ta=Math.PI*2,S9=1e-4;function C9(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&T9(),h=Gt(t,n,a,s,jr[0]),d>1&&(v=Gt(t,n,a,s,jr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=Zt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);ir[0]=-l,ir[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Ta-1e-4){n=0,i=Ta;var f=a?1:-1;return o>=ir[0]+e&&o<=ir[1]+e?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=Ta,i+=Ta);for(var d=0,h=0;h<2;h++){var v=ir[h];if(v+e>o){var p=Math.atan2(s,v),f=a?1:-1;p<0&&(p=Ta+p),(p>=n&&p<=i||p+Ta>=n&&p+Ta<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Ca(l,u,f,c,n,i))),g&&(l=a[v],u=a[v+1],f=l,c=u),p){case Di.M:f=a[v++],c=a[v++],l=f,u=c;break;case Di.L:if(r){if(Do(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Ca(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Di.C:if(r){if(b9(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=M9(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Di.Q:if(r){if(w9(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=A9(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Di.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);d=Math.cos(x)*_+m,h=Math.sin(x)*b+y,g?(f=d,c=h):s+=Ca(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(x9(m,y,b,x,x+w,S,t,C,i))return!0}else s+=E9(m,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+m,u=Math.sin(x+w)*b+y;break;case Di.R:f=l=a[v++],c=u=a[v++];var T=a[v++],E=a[v++];if(d=f+T,h=c+E,r){if(Do(f,c,d,c,t,n,i)||Do(d,c,d,h,t,n,i)||Do(d,h,f,h,t,n,i)||Do(f,h,f,c,t,n,i))return!0}else s+=Ca(d,c,d,h,n,i),s+=Ca(f,h,f,c,n,i);break;case Di.Z:if(r){if(Do(l,u,f,c,t,n,i))return!0}else s+=Ca(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!C9(u,c)&&(s+=Ca(l,u,f,c,n,i)||0),s!==0}function P9(e,t,r){return KA(e,0,!1,t,r)}function L9(e,t,r,n){return KA(e,t,!0,r,n)}var XA=ut({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},ro),D9={style:ut({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},rh.style)},Mv=mu.concat(["invisible","culling","z","z2","zlevel","parent"]),I9=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Mg:n>.2?uU:Ag}else if(r)return Ag}return Mg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Ce(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Zc(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Vo)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),L9(s,l/u,r,n)))return!0}if(this.hasFill())return P9(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Vo,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:oe(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Vo)},t.prototype.createStyle=function(r){return Zd(XA,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=oe({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=oe({},i.shape),oe(u,n.shape)):(u=oe({},a?this.shape:i.shape),oe(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=oe({},this.shape);for(var f={},c=xt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return Zd(R9,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Fy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(Yu);ZA.prototype.type="tspan";const Rg=ZA;var O9=ut({x:0,y:0},ro),k9={style:ut({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},rh.style)};function N9(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var QA=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return Zd(O9,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=N9(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return k9},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new et(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(Yu);QA.prototype.type="image";const Bs=QA;function B9(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,f;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var c;s+l>i&&(c=s+l,s*=i/c,l*=i/c),u+f>i&&(c=u+f,u*=i/c,f*=i/c),l+u>a&&(c=l+u,l*=a/c,u*=a/c),s+f>a&&(c=s+f,s*=a/c,f*=a/c),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+f,n+a),f!==0&&e.arc(r+f,n+a-f,f,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var Xo=Math.round;function JA(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(Xo(n*2)===Xo(i*2)&&(e.x1=e.x2=Ka(n,s,!0)),Xo(a*2)===Xo(o*2)&&(e.y1=e.y2=Ka(a,s,!0))),e}}function e2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=Ka(n,s,!0),e.y=Ka(i,s,!0),e.width=Math.max(Ka(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(Ka(i+o,s,!1)-e.y,o===0?0:1)),e}}function Ka(e,t,r){if(!t)return e;var n=Xo(e*2);return(n+Xo(t))%2===0?n/2:(n+(r?1:-1))/2}var F9=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),$9={},t2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new F9},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=e2($9,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?B9(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ft);t2.prototype.type="rect";const Nt=t2;var J1={fill:"#000"},ew=2,H9={style:ut({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},rh.style)},r2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=J1,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,M=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,O=0;O=0&&(O=w[D],O.align==="right");)this._placeToken(O,r,C,m,M,"right",_),T-=O.width,M-=O.width,D--;for(A+=(a-(A-g)-(y-M)-T)/2;E<=D;)O=w[E],this._placeToken(O,r,C,m,A+O.width/2,"center",_),A+=O.width,E++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var f=r.verticalAlign,c=a+i/2;f==="top"?c=a+r.height/2:f==="bottom"&&(c=a+i-r.height/2);var d=!r.isLineHolder&&Av(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,c-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=ow(o,s,v),c-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Rg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),x=iw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=ew,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=c,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||co,g.opacity=Bl(u.opacity,n.opacity,1),rw(g,u),x&&(g.lineWidth=Bl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=x),b&&(g.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new et(_l(g.x,S,g.textAlign),Go(g.y,C,g.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,d=l&&!c,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&f){p=this._getOrCreateChild(Nt),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(c){g=this._getOrCreateChild(Bs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&f){var y=p.style;y.lineWidth=u,y.stroke=f,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=Bl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return G9(r)&&(n=[r.fontStyle,r.fontWeight,V9(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&zn(n)||r.textFont||r.font},t}(Yu),z9={left:!0,right:1,center:1},W9={top:1,bottom:1,middle:1},tw=["fontStyle","fontWeight","fontSize","fontFamily"];function V9(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?Ey+"px":e+"px"}function rw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ft){var o=n2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Io(s)||Io(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=oe({},n),u=oe({},u),u.fill=s):!Io(u.fill)&&Io(s)?(a=!0,n=oe({},n),u=oe({},u),u.fill=cw(s)):!Io(u.stroke)&&Io(l)&&(a||(n=oe({},n),u=oe({},u)),u.stroke=cw(l)),n.style=u}}if(n&&n.z2==null){a||(n=oe({},n));var f=e.z2EmphasisLift;n.z2=e.z2+(f??q9)}return n}function J9(e,t,r){if(r&&r.z2==null){r=oe({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??j9)}return r}function eY(e,t,r){var n=nt(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:Z9(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=oe({},r),o=oe({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Ev(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return Q9(this,e,t,r);if(e==="blur")return eY(this,e,r);if(e==="select")return J9(this,e,r)}return r}function tY(e){e.stateProxy=Ev;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Ev),r&&(r.stateProxy=Ev)}function hw(e,t){!c2(e,t)&&!e.__highByOuter&&Si(e,a2)}function vw(e,t){!c2(e,t)&&!e.__highByOuter&&Si(e,o2)}function Og(e,t){e.__highByOuter|=1<<(t||0),Si(e,a2)}function kg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Si(e,o2)}function rY(e){Si(e,jy)}function l2(e){Si(e,s2)}function u2(e){Si(e,K9)}function f2(e){Si(e,X9)}function c2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function d2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=Uy(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){s2(u)}),s&&r.push(a)),o.isBlured=!1}),R(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Ng(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,f){for(var c=0;c0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Fg(e,t,r){p2(e,!0),Si(e,tY),uY(e,t,r)}function lY(e){p2(e,!1)}function h2(e,t,r,n){n?lY(e):Fg(e,t,r)}function uY(e,t,r){var n=lt(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var gw=["emphasis","blur","select"],fY={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function v2(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Pv(v),s*=Pv(v));var p=(i===a?-1:1)*Pv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Af(c)*g-Mf(c)*m,_=(t+n)/2+Mf(c)*g+Af(c)*m,b=bw([1,0],[(d-g)/o,(h-m)/s]),x=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],S=bw(x,w);if(zg(x,w)<=-1&&(S=tl),zg(x,w)>=1&&(S=0),S<0){var C=Math.round(S/tl*1e6)/1e6;S=tl*2+C%2*tl}f.addData(u,y,_,o,s,b,S,c,a)}var gY=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,mY=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function yY(e){var t=new ho;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=ho.CMD,l=e.match(gY);if(!l)return t;for(var u=0;uO*O+k*k&&(C=E,T=A),{cx:C,cy:T,x0:-f,y0:-c,x1:C*(i/x-1),y1:T*(i/x-1)}}function MY(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function AY(e,t){var r,n=bl(t.r,0),i=bl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var f=t.cx,c=t.cy,d=!!t.clockwise,h=xw(u-l),v=h>Lv&&h%Lv;if(v>hn&&(h=v),!(n>hn))e.moveTo(f,c);else if(h>Lv-hn)e.moveTo(f+n*Oo(l),c+n*Ma(l)),e.arc(f,c,n,l,u,!d),i>hn&&(e.moveTo(f+i*Oo(u),c+i*Ma(u)),e.arc(f,c,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,T=void 0,E=void 0,A=void 0,M=void 0,D=void 0,O=void 0,k=n*Oo(l),F=n*Ma(l),j=i*Oo(u),B=i*Ma(u),N=h>hn;if(N){var U=t.cornerRadius;U&&(r=MY(U),p=r[0],g=r[1],m=r[2],y=r[3]);var re=xw(n-i)/2;if(_=On(re,m),b=On(re,y),x=On(re,p),w=On(re,g),T=S=bl(_,b),E=C=bl(x,w),(S>hn||C>hn)&&(A=n*Oo(u),M=n*Ma(u),D=i*Oo(l),O=i*Ma(l),hhn){var se=On(m,T),he=On(y,T),Z=Ef(D,O,k,F,n,se,d),P=Ef(A,M,j,B,n,he,d);e.moveTo(f+Z.cx+Z.x0,c+Z.cy+Z.y0),T0&&e.arc(f+Z.cx,c+Z.cy,se,Kt(Z.y0,Z.x0),Kt(Z.y1,Z.x1),!d),e.arc(f,c,n,Kt(Z.cy+Z.y1,Z.cx+Z.x1),Kt(P.cy+P.y1,P.cx+P.x1),!d),he>0&&e.arc(f+P.cx,c+P.cy,he,Kt(P.y1,P.x1),Kt(P.y0,P.x0),!d))}else e.moveTo(f+k,c+F),e.arc(f,c,n,l,u,!d);if(!(i>hn)||!N)e.lineTo(f+j,c+B);else if(E>hn){var se=On(p,E),he=On(g,E),Z=Ef(j,B,A,M,i,-he,d),P=Ef(k,F,D,O,i,-se,d);e.lineTo(f+Z.cx+Z.x0,c+Z.cy+Z.y0),E0&&e.arc(f+Z.cx,c+Z.cy,he,Kt(Z.y0,Z.x0),Kt(Z.y1,Z.x1),!d),e.arc(f,c,i,Kt(Z.cy+Z.y1,Z.cx+Z.x1),Kt(P.cy+P.y1,P.cx+P.x1),d),se>0&&e.arc(f+P.cx,c+P.cy,se,Kt(P.y1,P.x1),Kt(P.y0,P.x0),!d))}else e.lineTo(f+j,c+B),e.arc(f,c,i,u,l,d)}e.closePath()}}}var EY=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),S2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new EY},t.prototype.buildPath=function(r,n){AY(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ft);S2.prototype.type="sector";const wo=S2;var PY=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),C2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new PY},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ft);C2.prototype.type="ring";const T2=C2;function LY(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,f,c;if(n){f=[1/0,1/0],c=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=LY(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],f=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;sEa[1]){if(s=!1,a)return s;var f=Math.abs(Ea[0]-Aa[1]),c=Math.abs(Aa[0]-Ea[1]);Math.min(f,c)>i.len()&&(f0){var c=f.duration,d=f.delay,h=f.easing,v={duration:c,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Mr(e,t,r,n,i,a){Qy("update",e,t,r,n,i,a)}function Br(e,t,r,n,i,a){Qy("enter",e,t,r,n,i,a)}function os(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Tw(e){return!e.isGroup}function a7(e){return e.shape!=null}function H2(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Tw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return a7(o)&&(s.shape=oe({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Tw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Mr(o,l,r,lt(o).dataIndex)}}})}function o7(e,t){return Oe(e,function(r){var n=r[0];n=ad(n,t.x),n=od(n,t.x+t.width);var i=r[1];return i=ad(i,t.y),i=od(i,t.y+t.height),[n,i]})}function s7(e,t){var r=ad(e.x,t.x),n=od(e.x+e.width,t.x+t.width),i=ad(e.y,t.y),a=od(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function t0(e,t,r){var n=oe({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),ut(i,r),new Bs(n)):Jy(e.replace("path://",""),n,r,"center")}function l7(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Dv(h,v,f,c)/d;return!(g<0||g>1)}function Dv(e,t,r,n){return e*n-r*t}function u7(e){return e<=1e-6&&e>=-1e-6}function r0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Ce(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&R(xt(l),function(f){Ts(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=lt(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:ut({content:n,formatterParams:s},i)}}function Mw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function n0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function Y2(e,t){return it(it({},e,!0),t,!0)}const M7={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},A7={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var sd="ZH",a0="EN",wu=a0,Ac={},o0={},q2=Ve.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(sd)>-1?sd:wu}():wu;function j2(e,t){e=e.toUpperCase(),o0[e]=new er(t),Ac[e]=t}function E7(e){if(Ce(e)){var t=Ac[e.toUpperCase()]||{};return e===sd||e===a0?Xe(t):it(Xe(t),Xe(Ac[wu]),!1)}else return it(Xe(e),Xe(Ac[wu]),!1)}function P7(e){return o0[e]}function L7(){return o0[wu]}j2(a0,M7);j2(sd,A7);var s0=1e3,l0=s0*60,Ul=l0*60,Jr=Ul*24,Iw=Jr*365,wl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Df="{yyyy}-{MM}-{dd}",Rw={year:"{yyyy}",month:"{yyyy}-{MM}",day:Df,hour:Df+" "+wl.hour,minute:Df+" "+wl.minute,second:Df+" "+wl.second,millisecond:wl.none},Ov=["year","month","day","hour","minute","second","millisecond"],K2=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Pa(e,t){return e+="","0000".substr(0,t-e.length)+e}function ss(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function D7(e){return e===ss(e)}function I7(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function sh(e,t,r,n){var i=yi(e),a=i[u0(r)](),o=i[ls(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[lh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[xu(r)](),c=(f-1)%12+1,d=i[uh(r)](),h=i[fh(r)](),v=i[ch(r)](),p=n instanceof er?n:P7(n||q2)||L7(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Pa(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Pa(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Pa(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,Pa(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Pa(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Pa(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Pa(v,3)).replace(/{S}/g,v+"")}function R7(e,t,r,n,i){var a=null;if(Ce(r))a=r;else if(We(r))a=r(e.value,t,{level:e.level});else{var o=oe({},wl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var c=e.level==null?0:e.level>=0?e.level:a.length+e.level;c=Math.min(c,a.length-1),a=a[c]}}return sh(new Date(e.value),a,i,n)}function X2(e,t){var r=yi(e),n=r[ls(t)]()+1,i=r[lh(t)](),a=r[xu(t)](),o=r[uh(t)](),s=r[fh(t)](),l=r[ch(t)](),u=l===0,f=u&&s===0,c=f&&o===0,d=c&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":c?"hour":f?"minute":u?"second":"millisecond"}function Ow(e,t,r){var n=_t(e)?yi(e):e;switch(t=t||X2(e,r),t){case"year":return n[u0(r)]();case"half-year":return n[ls(r)]()>=6?1:0;case"quarter":return Math.floor((n[ls(r)]()+1)/4);case"month":return n[ls(r)]();case"day":return n[lh(r)]();case"half-day":return n[xu(r)]()/24;case"hour":return n[xu(r)]();case"minute":return n[uh(r)]();case"second":return n[fh(r)]();case"millisecond":return n[ch(r)]()}}function u0(e){return e?"getUTCFullYear":"getFullYear"}function ls(e){return e?"getUTCMonth":"getMonth"}function lh(e){return e?"getUTCDate":"getDate"}function xu(e){return e?"getUTCHours":"getHours"}function uh(e){return e?"getUTCMinutes":"getMinutes"}function fh(e){return e?"getUTCSeconds":"getSeconds"}function ch(e){return e?"getUTCMilliseconds":"getMilliseconds"}function O7(e){return e?"setUTCFullYear":"setFullYear"}function Z2(e){return e?"setUTCMonth":"setMonth"}function Q2(e){return e?"setUTCDate":"setDate"}function J2(e){return e?"setUTCHours":"setHours"}function eE(e){return e?"setUTCMinutes":"setMinutes"}function tE(e){return e?"setUTCSeconds":"setSeconds"}function rE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function nE(e){if(!PU(e))return Ce(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function iE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var dh=oA;function Gg(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&zn(f)?f:"-"}function a(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?yi(e):e;if(isNaN(+l)){if(s)return"-"}else return sh(l,n,r)}if(t==="ordinal")return fg(e)?i(e):_t(e)&&a(e)?e+"":"-";var u=td(e);return a(u)?nE(u):fg(e)?i(e):typeof e=="boolean"?e+"":"-"}var kw=["a","b","c","d","e","f","g"],kv=function(e,t){return"{"+e+(t??"")+"}"};function aE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Su(e,t){return t=t||"transparent",Ce(e)?e:Pe(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function Nw(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Ec=R,N7=["left","right","top","bottom","width","height"],If=[["width","left","right"],["height","top","bottom"]];function f0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var f=l.getBoundingRect(),c=t.childAt(u+1),d=c&&c.getBoundingRect(),h,v;if(e==="horizontal"){var p=f.width+(d?-d.x+f.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=f.height):s=Math.max(s,f.height)}else{var g=f.height+(d?-d.y+f.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Yl=f0;Dt(f0,"vertical");Dt(f0,"horizontal");function Ms(e,t,r){r=dh(r||0);var n=t.width,i=t.height,a=pt(e.left,n),o=pt(e.top,i),s=pt(e.right,n),l=pt(e.bottom,i),u=pt(e.width,n),f=pt(e.height,i),c=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(f)&&(f=i-l-c-o),h!=null&&(isNaN(u)&&isNaN(f)&&(h>n/i?u=n*.8:f=i*.8),isNaN(u)&&(u=h*f),isNaN(f)&&(f=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-f-c),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-f/2-r[0];break;case"bottom":o=i-f-c;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var v=new et(a+r[3],o+r[0],u,f);return v.margin=r,v}function Cu(e){var t=e.layoutMode||e.constructor.layoutMode;return Pe(t)?t:t?{type:t}:null}function As(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(If[0],0),a=o(If[1],1);u(If[0],e,i),u(If[1],e,a);function o(f,c){var d={},h=0,v={},p=0,g=2;if(Ec(f,function(_){v[_]=e[_]}),Ec(f,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[c])return l(t,f[1])?v[f[2]]=null:l(t,f[2])&&(v[f[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=it(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return Uu(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(er);GA(Fs,er);eh(Fs);C7(Fs);T7(Fs,$7);function $7(e){var t=[];return R(Fs.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Oe(t,function(r){return Wn(r).main}),e!=="dataset"&&nt(t,"dataset")<=0&&t.unshift("dataset"),t}const bt=Fs;var oE="";typeof navigator<"u"&&(oE=navigator.platform||"");var ko="rgba(0, 0, 0, 0.2)";const H7={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:ko,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:ko,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:ko,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:ko,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:ko,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:ko,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:oE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var sE=Ge(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),un="original",Ar="arrayRows",Pn="objectRows",ei="keyedColumns",Xi="typedArray",lE="unknown",ci="column",$s="row",Vt={Must:1,Might:2,Not:3},uE=Tt();function z7(e){uE(e).datasetMap=Ge()}function W7(e,t,r){var n={},i=c0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=uE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;e=e.slice(),R(e,function(p,g){var m=Pe(p)?p:e[g]={name:p};m.type==="ordinal"&&f==null&&(f=g,c=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});R(e,function(p,g){var m=p.name,y=v(p);if(f==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(f===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function j7(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var f=o==null||!n?r:q7(n,o);if(f=f||r,!(!f||!f.length)){var c=f[l];return i&&(u[i]=c),s.paletteIdx=(l+1)%f.length,c}}function K7(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Rf,rl,Fw,$w="\0_ec_inner",X7=1,dE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new er(a),this._locale=new er(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=Ww(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,Ww(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?Fw(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&R(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ge(),u=n&&n.replaceMergeMainTypeMap;z7(this),R(r,function(c,d){c!=null&&(bt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Xe(c):it(i[d],c,!0))}),u&&u.each(function(c,d){bt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),bt.topologicalTravel(s,bt.getAllClassMainTypes(),f,this);function f(c){var d=Y7(this,c,lr(r[c])),h=a.get(c),v=h?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=IU(h,d,v);$U(p,c,bt),i[c]=null,a.set(c,null),o.set(c,0);var g=[],m=[],y=0,_;R(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=c==="series",T=bt.getClass(c,b.keyInfo.subType,!C);if(!T)return;if(c==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===T)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var E=oe({componentIndex:x},b.keyInfo);w=new T(S,this,this,E),oe(w,E),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[c]=g,a.set(c,m),o.set(c,y),c==="series"&&Rf(this)}this._seriesIndices||Rf(this)},t.prototype.getOption=function(){var r=Xe(this.option);return R(r,function(n,i){if(bt.hasClass(i)){for(var a=lr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!yu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[$w],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function sq(e,t){return e.join(",")===t.join(",")}const lq=nq;var fn=R,Tu=Pe,Vw=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Bv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=Vw.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=MU(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var vh=function(){function e(t){this.data=t.data||(t.sourceFormat===ei?{}:[]),this.sourceFormat=t.sourceFormat||lE,this.seriesLayoutBy=t.seriesLayoutBy||ci,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};Xw=(t={},t[Ar+"_"+ci]={pure:!0,appendData:a},t[Ar+"_"+$s]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Pn]={pure:!0,appendData:a},t[ei]={pure:!0,appendData:function(o){var s=this._data;R(o,function(l,u){for(var f=s[u]||(s[u]=[]),c=0;c<(l||[]).length;c++)f.push(l[c])})}},t[un]={appendData:a},t[Xi]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Es(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function ex(e){var t,r;return Pe(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function ql(e){return new Mq(e)}var Mq=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function f(y){return!(y>=1)&&(y=1),y}var c;(this._dirty||a==="reset")&&(this._dirty=!1,c=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(c||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),Eq=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Pc(t,r)},e}();function Pq(e,t){var r=new Eq,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==ci&&mr(o);var s=[],l={},u=e.dimensionsDefine;if(u)R(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ts(l,m)&&mr(_),l[m]=y}});else for(var f=0;f65535?Bq:Fq}function No(){return[1/0,-1/0]}function $q(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function nx(e,t,r,n,i){var a=TE[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Oe(o,function(y){return y.property}),f=0;fm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,f=0,c=this.count();f=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=f))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=c&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],x=t[i[1]][1],m=0;m=c&&y<=d||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=c&&y<=d||isNaN(y))&&(l[u++]=S)}else for(var m=0;mt[E][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),f,c,d,h=new(il(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vf&&(f=c,d=b)}A>0&&Af-v&&(l=f-v,s.length=l);for(var p=0;pc[1]&&(c[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=c)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Pc(r[a],this._dimensions[a])}Hv={arrayRows:t,objectRows:function(r,n,i,a){return Pc(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Pc(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),Hq=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(Of(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var f=r[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,a=[f._getVersionSign()]}else s=o.get("data",!0),l=$r(s)?Xi:un,a=[];var c=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(c.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(c.sourceHeader,d.sourceHeader),p=qe(c.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[Ug(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[Ug(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&ix(a)}var o,s=[],l=[];return R(t,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&ix(c),s.push(f),l.push(u._getVersionSign())}),n?o=kq(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[yq(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return R(e.blocks,function(i){var a=PE(i);a>=t&&(t=a+ +(n&&(!a||qg(i)&&!i.noHeader)))}),t}return 0}function Vq(e,t,r,n){var i=t.noHeader,a=Uq(PE(t)),o=[],s=t.blocks||[];mi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ts(u,l)){var f=new Aq(u[l],null);s.sort(function(v,p){return f.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(v,p){var g=t.valueFormatter,m=EE(v)(g?oe(oe({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var c=e.renderMode==="richText"?o.join(a.richText):jg(o.join(""),i?r:a.html);if(i)return c;var d=Gg(t.header,"ordinal",e.useUTC),h=AE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?LE(e,d,h)+a.richText+c:jg('
'+Kr(d)+"
"+c,r)}function Gq(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,f=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Oe(b,function(x,w){return Gg(x,ge(h)?h[w]:h,u)})};if(!(a&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":Gg(l,"ordinal",u),h=t.valueType,v=o?[]:f(t.value),p=!s||!a,g=!s&&a,m=AE(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":c)+(a?"":LE(e,d,y))+(o?"":jq(e,v,p,g,_)):jg((s?"":c)+(a?"":Yq(d,!s,y))+(o?"":qq(v,p,g,_)),r)}}function ax(e,t,r,n,i,a){if(e){var o=EE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function Uq(e){return{html:zq[e],richText:Wq[e]}}function jg(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function Yq(e,t,r){var n=t?"margin-left:2px":"";return''+Kr(e)+""}function qq(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Oe(e,function(o){return Kr(o)}).join("  ")+""}function LE(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function jq(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function Kq(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Su(n)}function DE(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var zv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=FA()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=k7({color:r,type:t,renderMode:n,markerId:i});return Ce(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?R(r,function(a){return oe(n,a)}):oe(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function Xq(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=Kq(t,r),f,c,d,h;if(o>1||l&&!o){var v=Zq(s,t,r,a,u);f=v.inlineValues,c=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=f=Es(i,r,a[0]),c=p.type}else h=f=l?s[0]:s;var g=Wy(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Mu("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Mu("nameValue",{markerType:"item",markerColor:u,name:_,noName:!zn(_),value:f,valueType:c})].concat(d||[])})}function Zq(e,t,r,n,i){var a=t.getData(),o=ea(e,function(c,d,h){var v=a.getDimensionInfo(h);return c=c||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(c){f(Es(a,r,c),c)}):R(e,f);function f(c,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Mu("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:c,valueType:h.type})):(s.push(c),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Ii=Tt();function kf(e,t){return e.getName(t)||e.getId(t)}var Qq="__universalTransitionEnabled",gh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=ql({count:ej,reset:tj}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=Ii(this).sourceManager=new Hq(this);a.prepareSource();var o=this.getInitialData(r,i);sx(o,this),this.dataTask.context.data=o,Ii(this).dataBeforeProcessed=o,ox(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Cu(this),a=i?hh(r):{},o=this.subType;bt.hasClass(o)&&(o+="Series"),it(r,n.getTheme().get(this.subType)),it(r,this.getDefaultOption()),Pg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&As(r,a,i)},t.prototype.mergeOption=function(r,n){r=it(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Cu(this);i&&As(this.option,r,i);var a=Ii(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);sx(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Ii(this).dataBeforeProcessed=o,ox(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!$r(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=d0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[kf(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[Qq])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Pe(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(r,n)}},t.registerClass=function(r){return bt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(bt);Qn(gh,Tq);Qn(gh,d0);GA(gh,bt);function ox(e){var t=e.name;Wy(e)||(e.name=Jq(e)||t)}function Jq(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return R(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function ej(e){return e.model.getRawData().count()}function tj(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),rj}function rj(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function sx(e,t){R(QV(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Dt(nj,t))})}function nj(e,t){var r=Kg(e);return r&&r.setOutputEnd((t||this).count()),t}function Kg(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const po=gh;var y0=function(){function e(){this.group=new sn,this.uid=oh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();Gy(y0);eh(y0);const _i=y0;function IE(){var e=Tt();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var RE=Tt(),ij=IE(),_0=function(){function e(){this.group=new sn,this.uid=oh("viewChart"),this.renderTask=ql({plan:aj,reset:oj}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&ux(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&ux(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){n0(this.group,t)},e.markUpdateMethod=function(t,r){RE(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function lx(e,t,r){e&&$g(e)&&(t==="emphasis"?Og:kg)(e,r)}function ux(e,t,r){var n=Gu(e,t),i=t&&t.highlightKey!=null?cY(t.highlightKey):null;n!=null?R(lr(n),function(a){lx(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){lx(a,r,i)})}Gy(_0);eh(_0);function aj(e){return ij(e.model)}function oj(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&RE(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),sj[l]}var sj={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const io=_0;var ld="\0__throttleOriginMethod",fx="\0__throttleRate",cx="\0__throttleType";function b0(e,t,r){var n,i=0,a=0,o=null,s,l,u,f;t=t||0;function c(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?c():o=setTimeout(c,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){f=h},d}function OE(e,t,r,n){var i=e[t];if(i){var a=i[ld]||i,o=i[cx],s=i[fx];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=b0(a,r,n==="debounce"),i[ld]=a,i[cx]=n,i[fx]=r}return i}}function Xg(e,t){var r=e[t];r&&r[ld]&&(r.clear&&r.clear(),e[t]=r[ld])}var dx=Tt(),hx={itemStyle:_u(U2,!0),lineStyle:_u(G2,!0)},lj={lineStyle:"stroke",itemStyle:"fill"};function kE(e,t){var r=e.visualStyleMapper||hx[t];return r||(console.warn("Unknown style type '"+t+"'."),hx.itemStyle)}function NE(e,t){var r=e.visualDrawType||lj[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var uj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=kE(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=NE(e,n),u=o[l],f=We(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||We(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||We(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=oe({},o);g[l]=f(p),h.setItemVisual(v,"style",g)}}}},al=new er,fj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=kE(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){al.option=l[n];var u=i(al),f=o.ensureUniqueItemVisual(s,"style");oe(f,u),al.option.decal&&(o.setItemVisual(s,"decal",al.option.decal),al.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},cj={performRawSeries:!0,overallReset:function(e){var t=Ge();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),dx(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=dx(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=NE(r,s);a.each(function(u){var f=a.getRawIndex(u);i[f]=u}),n.each(function(u){var f=i[u],c=a.getItemVisual(f,"colorFromPalette");if(c){var d=a.ensureUniqueItemVisual(f,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Nf=Math.PI;function dj(e,t){t=t||{},ut(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new sn,n=new Nt({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new fr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Nt({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new Zy({shape:{startAngle:-Nf/2,endAngle:-Nf/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Nf*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Nf*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),f=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:f}),a.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var hj=function(){function e(t,r,n,i){this._stageTaskMap=Ge(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ge();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;R(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";mi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;R(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,d=f.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else c&&c.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ge(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(f):l?n.eachRawSeriesByType(l,f):u&&u(n,i).each(f);function f(c){var d=c.uid,h=s.set(d,o&&o.get(d)||ql({plan:yj,reset:_j,count:wj}));h.context={model:c,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(c,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||ql({reset:vj});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ge(),u=t.seriesType,f=t.getTargetSeries,c=!0,d=!1,h="";mi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):f?f(n,i).each(v):(c=!1,R(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,ql({reset:pj,onDirty:mj})));m.context={model:p,overallProgress:c},m.agent=o,m.__block=c,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return We(t)&&(t={overallReset:t,seriesType:xj(t)}),t.uid=oh("stageHandler"),r&&(t.visualType=r),t},e}();function vj(e){e.overallReset(e.ecModel,e.api,e.payload)}function pj(e){return e.overallProgress&&gj}function gj(){this.agent.dirty(),this.getDownstream().dirty()}function mj(){this.agent&&this.agent.dirty()}function yj(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function _j(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=lr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Oe(t,function(r,n){return BE(n)}):bj}var bj=BE(0);function BE(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(n[u]=l,f=!0),f||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,a,"name")&&f(u,a,"dataIndex")&&f(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function f(c,d,h,v){return c[h]==null||d[v||h]===c[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),Zg=["symbol","symbolSize","symbolRotate","symbolOffset"],mx=Zg.concat(["symbolKeepAspect"]),Mj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&Xa(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function Jg(e,t,r){for(var n=t.type==="radial"?Yj(e,t,r):Uj(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:_t(e)?[e]:ge(e)?e:null}function WE(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&jj(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Oe(r,function(a){return a/i}),n/=i)}return[r,n]}var Kj=new ho(!0);function fd(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function yx(e){return typeof e=="string"&&e!=="none"}function cd(e){var t=e.fill;return t!=null&&t!=="none"}function _x(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function bx(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function em(e,t,r){var n=UA(t.image,t.__image,r);if(th(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*JV),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function Xj(e,t,r,n){var i,a=fd(r),o=cd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var f=t.path||Kj,c=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=c?Jg(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=c?Jg(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=c||!t.__canvasFillPattern?em(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(x=c||!t.__canvasStrokePattern?em(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();f.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,T;e.setLineDash&&r.lineDash&&(i=WE(t),C=i[0],T=i[1]);var E=!0;(u||c&Vo)&&(f.setDPR(e.dpr),l?f.setContext(null):(f.setContext(e),E=!1),f.reset(),t.buildPath(f,t.shape,n),f.toStatic(),t.pathUpdated()),E&&f.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=T),n||(r.strokeFirst?(a&&bx(e,r),o&&_x(e,r)):(o&&_x(e,r),a&&bx(e,r))),C&&e.setLineDash([])}function Zj(e,t,r){var n=t.__image=UA(r.image,t.__image,t,t.onload);if(!(!n||!th(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,f=r.sy||0;e.drawImage(n,u,f,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,f=r.sy,c=o-u,d=s-f;e.drawImage(n,u,f,c,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function Qj(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||co,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=WE(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(fd(r)&&e.strokeText(i,r.x,r.y),cd(r)&&e.fillText(i,r.x,r.y)):(cd(r)&&e.fillText(i,r.x,r.y),fd(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var xx=["shadowBlur","shadowOffsetX","shadowOffsetY"],Sx=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function VE(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){yr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?ro.opacity:o}(n||t.blend!==r.blend)&&(a||(yr(e,i),a=!0),e.globalCompositeOperation=t.blend||ro.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Xt]){if(this._disposed){this.id;return}var a,o,s;if(Pe(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Xt]=!0,!this._model||n){var l=new lq(this._api),u=this._theme,f=this._model=new hE;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},nm);var c={seriesTransition:s,optionChanged:!0};if(i)this[hr]={silent:a,updateParams:c},this[Xt]=!1,this.getZr().wakeUp();else{try{Fo(this),Ri.update.call(this,null,c)}catch(d){throw this[hr]=null,this[Xt]=!1,d}this._ssr||this._zr.flush(),this[hr]=null,this[Xt]=!1,ol.call(this,a),sl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ve.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ve.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return R(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;R(n,function(l){i.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(a.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return R(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(Fx[i]){var l=s,u=s,f=-s,c=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();R(Kl,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Xe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),f=o(w.right,f),c=o(w.bottom,c),d.push({dom:x,left:w.left,top:w.top})}}),l*=h,u*=h,f*=h,c*=h;var v=f-l,p=c-u,g=bo.createCanvas(),m=z1(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return R(d,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Nt({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),R(d,function(_){var b=new Bs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return Yv(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return Yv(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=pv(i,r);return R(o,function(s,l){l.indexOf("Models")>=0&&R(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)a=a||!!f.containPoint(n);else if(l==="seriesModels"){var c=this._chartsMap[u.__viewId];c&&c.containPoint&&(a=a||c.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=pv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?Ej(s,l,n):Pj(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;R(CK,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Sl(s,function(v){var p=lt(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=oe({},p.eventData),!0},!0),l){var f=l.componentType,c=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",c=l.seriesIndex);var d=f&&c!=null&&o.getComponent(f,c),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),R(jl,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),R(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),Dj(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&WA(this.getDom(),C0,"");var n=this,i=n._api,a=n._model;R(n._componentsViews,function(o){o.dispose(a,i)}),R(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Kl[n.id]},t.prototype.resize=function(r){if(!this[Xt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[hr]&&(a==null&&(a=this[hr].silent),i=!0,this[hr]=null),this[Xt]=!0;try{i&&Fo(this),Ri.update.call(this,{type:"resize",animation:oe({duration:0},r&&r.animation)})}catch(o){throw this[Xt]=!1,o}this[Xt]=!1,ol.call(this,a),sl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Pe(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!im[r]){var i=im[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=oe({},r);return n.type=jl[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Pe(n)||(n={silent:!!n}),!!dd[r.type]&&this._model){if(this[Xt]){this._pendingActions.push(r);return}var i=n.silent;jv.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ve.browser.weChat&&this._throttledZrFlush(),ol.call(this,i),sl.call(this,i)}},t.prototype.updateLabelLayout=function(){pn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Fo=function(c){var d=c._scheduler;d.restorePipelines(c._model),d.prepareStageTasks(),Uv(c,!0),Uv(c,!1),d.plan()},Uv=function(c,d){for(var h=c._model,v=c._scheduler,p=d?c._componentsViews:c._chartsViews,g=d?c._componentsMap:c._chartsMap,m=c._zr,y=c._api,_=0;_d.get("hoverLayerThreshold")&&!Ve.node&&!Ve.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=c._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(c,d){var h=c.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(c,d){if(!c.preventAutoZ){var h=c.get("z")||0,v=c.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(c,d,h,v){var p=c.getTextContent(),g=c.getTextGuideLine(),m=c.isGroup;if(m)for(var y=c.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(os(m))return;if(m instanceof ft&&dY(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}Nx=function(c){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Og(v,p),Wr(c)},h.prototype.leaveEmphasis=function(v,p){kg(v,p),Wr(c)},h.prototype.enterBlur=function(v){rY(v),Wr(c)},h.prototype.leaveBlur=function(v){l2(v),Wr(c)},h.prototype.enterSelect=function(v){u2(v),Wr(c)},h.prototype.leaveSelect=function(v){f2(v),Wr(c)},h.prototype.getModel=function(){return c.getModel()},h.prototype.getViewOfComponentModel=function(v){return c.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return c.getViewOfSeriesModel(v)},h}(vE))(c)},iP=function(c){function d(h,v){for(var p=0;p=0)){$x.push(r);var a=HE.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function fP(e,t){im[e]=t}function DK(e,t,r){var n=uK("registerMap");n&&n(e,t,r)}var IK=Oq;So(x0,uj);So(mh,fj);So(mh,cj);So(x0,Mj);So(mh,Aj);So(QE,oK);lP(gE);uP(dK,gq);fP("default",dj);Hs({type:no,event:no,update:no},Sr);Hs({type:Tc,event:Tc,update:Tc},Sr);Hs({type:Wl,event:Wl,update:Wl},Sr);Hs({type:Mc,event:Mc,update:Mc},Sr);Hs({type:Vl,event:Vl,update:Vl},Sr);sP("light",Sj);sP("dark",Cj);function ll(e){return e==null?0:e.length||1}function Hx(e){return e}var RK=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||Hx,this._newKeyGetter=i||Hx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(f,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&d>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&d===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&d>1)this._updateManyToMany&&this._updateManyToMany(f,u),i[l]=null;else if(c>1)for(var h=0;h1)for(var s=0;s30}var ul=Pe,Oi=Oe,WK=typeof Int32Array>"u"?Array:Int32Array,VK="e\0\0",zx=-1,GK=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],UK=["_approximateExtent"],Wx,Wf,fl,cl,Zv,Vf,Qv,YK=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;dP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},f=0;f=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===un;if(l&&!i.pure)for(var u=[],f=t;f0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():ul(a)&&(a=oe({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,ul(r)?oe(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){ul(t)?oe(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?oe(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;Y9(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){R(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Oi(this.dimensions,this._getDimInfo,this),this.hostModel)),Zv(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];We(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Iy(arguments)))})},e.internalField=function(){Wx=function(t){var r=t._invertedIndicesMap;R(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new WK(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}}(),e}();const gP=YK;function mP(e,t){v0(e)||(e=p0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ge(),a=[],o=jK(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&pP(o),l=n===e.dimensionsDefine,u=l?vP(e):hP(n),f=t.encodeDefine;!f&&t.encodeDefaulter&&(f=t.encodeDefaulter(e,o));for(var c=Ge(f),d=new CE(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function jK(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return R(t,function(a){var o;Pe(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function KK(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var XK=function(){function e(t){this.coordSysDims=[],this.axisMap=Ge(),this.categoryAxisMap=Ge(),this.coordSysName=t}return e}();function ZK(e){var t=e.get("coordinateSystem"),r=new XK(t),n=QK[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var QK={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",_n).models[0],a=e.getReferringComponents("yAxis",_n).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),$o(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),$o(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",_n).models[0];t.coordSysDims=["single"],r.set("single",i),$o(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",_n).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),$o(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),$o(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();R(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),$o(u)&&(n.set(f,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function $o(e){return e.get("type")==="category"}function JK(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;eX(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,f,c,d;if(R(a,function(y,_){Ce(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!f&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(f=y))}),f&&!n&&!u&&(n=!0),f){c="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=f.coordDim,v=f.type,p=0;R(a,function(y){y.coordDim===h&&p++});var g={name:c,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(c,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:c}}function eX(e){return!dP(e.schema)}function yP(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function tX(e,t){return yP(e,t)?e.getCalculationInfo("stackResultDimension"):t}function rX(e,t){var r=e.get("coordinateSystem"),n=h0.get(r),i;return t&&t.coordSysDims&&(i=Oe(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=BK(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function nX(e,t,r){var n,i;return r&&R(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function _P(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=p0(e)):(i=n.getSource(),a=i.sourceFormat===un);var o=ZK(t),s=rX(t,o),l=r.useEncodeDefaulter,u=We(l)?l:l?Dt(W7,s,t):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=mP(i,f),d=nX(c.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(c),v=JK(t,{schema:c,store:h}),p=new gP(c,t);p.setCalculationInfo(v);var g=d!=null&&iX(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function iX(e){if(e.sourceFormat===un){var t=aX(e.data||[]);return!ge(Vu(t))}}function aX(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();eh(bP);const Ci=bP;var oX=0,sX=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++oX}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Oe(n,lX);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Ce(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ge(this.categories))},e}();function lX(e){return Pe(e)&&e.value!=null?e.value:e+""}const am=sX;function om(e){return e.type==="interval"||e.type==="log"}function uX(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=BA(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=wP(o),l=i.niceTickExtent=[It(Math.ceil(e[0]/o)*o,s),It(Math.floor(e[1]/o)*o,s)];return fX(l,e),i}function Jv(e){var t=Math.pow(10,zy(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,It(r*t)}function wP(e){return ui(e)+2}function Vx(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function fX(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Vx(e,0,t),Vx(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function yh(e,t){return e>=t[0]&&e<=t[1]}function _h(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function bh(e,t){return e*(t[1]-t[0])+t[0]}var xP=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new am({})),ge(i)&&(i=new am({categories:Oe(i,function(a){return Pe(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Ce(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),yh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),_h(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(bh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Ci);Ci.registerClass(xP);const SP=xP;var Ra=It,CP=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return yh(r,this._extent)},t.prototype.normalize=function(r){return _h(r,this._extent)},t.prototype.scale=function(r){return bh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=wP(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var f=s.length?s[s.length-1].value:a[1];return i[1]>f&&(r?s.push({value:Ra(f+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function AP(e){var t=hX(e),r=[];return R(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],f=Math.abs(o[1]-o[0]),c=a.scale.getExtent(),d=Math.abs(c[1]-c[0]);s=u?f/d*u:f}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=pt(n.get("barWidth"),s),p=pt(n.get("barMaxWidth"),s),g=pt(n.get("barMinWidth")||(PP(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:P0(a),stackId:E0(n)})}),vX(r)}function vX(e){var t={};R(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=n.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var c=n.barMaxWidth;c&&(l[u].maxWidth=c);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return R(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=xt(a).length;s=Math.max(35-l*4,15)+"%"}var u=pt(s,o),f=pt(n.gap,1),c=n.remainedWidth,d=n.autoWidthCount,h=(c-u)/(d+(d-1)*f);h=Math.max(h,0),R(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,c-=b+f*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,c-=b+f*b,d--)}}),h=(c-u)/(d+(d-1)*f),h=Math.max(h,0);var v=0,p;R(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+f)}),p&&(v-=p.width*f);var g=-v/2;R(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+f)})}),r}function pX(e,t,r){if(e&&t){var n=e[P0(t)];return n!=null&&r!=null?n[E0(r)]:n}}function gX(e,t){var r=MP(e,t),n=AP(r);R(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=E0(i),u=n[P0(s)][l],f=u.offset,c=u.width;a.setLayout({bandWidth:u.bandWidth,offset:f,size:c})})}function mX(e){return{seriesType:e,plan:IE(),reset:function(t){if(EP(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),f=r.getCalculationInfo("stackResultDimension"),c=yP(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=yX(i,a),v=PP(t),p=t.get("barMinHeight")||0,g=f&&r.getDimensionIndex(f),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&ep(x*3),S=v&&l&&ep(x*3),C=v&&ep(x),T=n.master.getRect(),E=d?T.width:T.height,A,M=b.getStore(),D=0;(A=_.next())!=null;){var O=M.get(c?g:o,A),k=M.get(s,A),F=h,j=void 0;c&&(j=+O-M.get(o,A));var B=void 0,N=void 0,U=void 0,re=void 0;if(d){var ae=n.dataToPoint([O,k]);if(c){var me=n.dataToPoint([j,k]);F=me[0]}B=F,N=ae[1]+y,U=ae[0]-F,re=m,Math.abs(U)>>1;e[i][1]i&&(this._approxInterval=i);var s=Gf.length,l=Math.min(_X(Gf,this._approxInterval,0,s),s-1);this._interval=Gf[l][1],this._minLevelUnit=Gf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return _t(r)?r:+yi(r)},t.prototype.contain=function(r){return yh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return _h(this.parse(r),this._extent)},t.prototype.scale=function(r){return bh(r,this._extent)},t.type="time",t}(ju),Gf=[["second",s0],["minute",l0],["hour",Ul],["quarter-day",Ul*6],["half-day",Ul*12],["day",Jr*1.2],["half-week",Jr*3.5],["week",Jr*7],["month",Jr*31],["quarter",Jr*95],["half-year",Iw/2],["year",Iw]];function bX(e,t,r,n){var i=yi(t),a=yi(r),o=function(v){return Ow(i,v,n)===Ow(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},c=function(){return f()&&o("minute")},d=function(){return c()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return c();case"second":return d();case"millisecond":return h()}}function wX(e,t){return e/=Jr,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function xX(e){var t=30*Jr;return e/=t,e>6?6:e>3?3:e>2?2:1}function SX(e){return e/=Ul,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Gx(e,t){return e/=t?l0:s0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function CX(e){return BA(e,!0)}function TX(e,t,r){var n=new Date(e);switch(ss(t)){case"year":case"month":n[Z2(r)](0);case"day":n[Q2(r)](1);case"hour":n[J2(r)](0);case"minute":n[eE(r)](0);case"second":n[tE(r)](0),n[rE(r)](0)}return n.getTime()}function MX(e,t,r,n){var i=1e4,a=K2,o=0;function s(E,A,M,D,O,k,F){for(var j=new Date(A),B=A,N=j[D]();B1&&k===0&&M.unshift({value:M[0].value-B})}}for(var k=0;k=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&d>_/1.5||(u.push(g),c>_||e===a[h]))break}f=[]}}}for(var b=Ft(Oe(u,function(E){return Ft(E,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(E){return E.length>0}),x=[],w=b.length-1,h=0;h0;)a*=10;var s=[It(LX(n[0]/a)*a),It(PX(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){Xl.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=cn(r)/cn(this.base),yh(r,this._extent)},t.prototype.normalize=function(r){return r=cn(r)/cn(this.base),_h(r,this._extent)},t.prototype.scale=function(r){return r=bh(r,this._extent),Uf(this.base,r)},t.type="log",t}(Ci),DP=L0.prototype;DP.getMinorTicks=Xl.getMinorTicks;DP.getLabel=Xl.getLabel;function Yf(e,t){return EX(e,ui(t))}Ci.registerClass(L0);const DX=L0;var IX=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:c}},e.prototype.modifyDataMinMax=function(t,r){this[OX[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=RX[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),RX={min:"_determinedMin",max:"_determinedMax"},OX={min:"_dataMin",max:"_dataMax"};function kX(e,t,r){var n=e.rawExtentInfo;return n||(n=new IX(e,t,r),e.rawExtentInfo=n,n)}function qf(e,t){return t==null?null:qc(t)?NaN:e.parse(t)}function IP(e,t){var r=e.type,n=kX(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=MP("bar",o),l=!1;if(R(s,function(c){l=l||c.getBaseAxis()===t.axis}),l){var u=AP(s),f=NX(i,a,t,u);i=f.min,a=f.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function NX(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=pX(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;R(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;R(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=t-e,c=1-(s+l)/a,d=f/c-f;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function Yx(e,t){var r=t,n=IP(e,r),i=n.extent,a=r.get("splitNumber");e instanceof DX&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function BX(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new SP({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new AX({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Ci.getClass(t)||ju)}}function FX(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function Ku(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Ce(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):We(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(D0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function D0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function $X(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof SP?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=Ku(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var f=0;f=0||(qx.push(e),We(e)&&(e={install:e}),e.install(VX))}var Pu=Tt();function GX(e){return e.type==="category"?YX(e):jX(e)}function UX(e,t){return e.type==="category"?qX(e,t):{ticks:Oe(e.scale.getTicks(),function(r){return r.value})}}function YX(e){var t=e.getLabelModel(),r=OP(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function OP(e,t){var r=kP(e,"labels"),n=I0(t),i=NP(r,n);if(i)return i;var a,o;return We(n)?a=$P(e,n):(o=n==="auto"?KX(e):n,a=FP(e,o)),BP(r,n,{labels:a,labelCategoryInterval:o})}function qX(e,t){var r=kP(e,"ticks"),n=I0(t),i=NP(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),We(n))a=$P(e,n,!0);else if(n==="auto"){var s=OP(e,e.getLabelModel());o=s.labelCategoryInterval,a=Oe(s.labels,function(l){return l.tickValue})}else o=n,a=FP(e,o,!0);return BP(r,n,{ticks:a,tickCategoryInterval:o})}function jX(e){var t=e.scale.getTicks(),r=Ku(e);return{labels:Oe(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function kP(e,t){return Pu(e)[t]||(Pu(e)[t]=[])}function NP(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),f=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Fy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/f,y=h/c;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Pu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function ZX(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function FP(e,t,r){var n=Ku(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],f=i.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=RP(e),d=o.get("showMinLabel")||c,h=o.get("showMaxLabel")||c;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function $P(e,t,r){var n=e.scale,i=Ku(e),a=[];return R(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var jx=[0,1],QX=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return CU(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),Kx(n,i.count())),Eg(t,jx,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),Kx(n,i.count()));var a=Eg(t,n,jx,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=UX(this,r),i=n.ticks,a=Oe(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return JX(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Oe(n,function(a){return Oe(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return GX(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return XX(this)},e}();function Kx(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function JX(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;R(t,function(h){h.coord-=u/2});var f=e.scale.getExtent();s=1+f[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var c=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=It(h),v=It(v),c?h>v:hi&&(i+=dl);var h=Math.atan2(s,o);if(h<0&&(h+=dl),h>=n&&h<=i||h+dl>=n&&h+dl<=i)return l[0]=f,l[1]=c,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function vd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,f=r-e,c=n-t,d=Math.sqrt(f*f+c*c);f/=d,c/=d;var h=l*f+u*c,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*f,g=o[1]=t+v*c;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function HP(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),f=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(f-a)*(f-a))}var gn=[];function iZ(e,t,r){var n=HP(t.x,t.y,t.width,t.height,e.x,e.y,gn);return r.set(gn[0],gn[1]),n}function aZ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,f=t.data,c=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,bn.fromArray(e[0]),st.fromArray(e[1]),Mt.fromArray(e[2]),ke.sub(Vn,bn,st),ke.sub(Fn,Mt,st);var r=Vn.len(),n=Fn.len();if(!(r<.001||n<.001)){Vn.scale(1/r),Fn.scale(1/n);var i=Vn.dot(Fn),a=Math.cos(t);if(a1&&ke.copy(ar,Mt),ar.toArray(e[1])}}}}function oZ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,bn.fromArray(e[0]),st.fromArray(e[1]),Mt.fromArray(e[2]),ke.sub(Vn,st,bn),ke.sub(Fn,Mt,st);var n=Vn.len(),i=Fn.len();if(!(n<.001||i<.001)){Vn.scale(1/n),Fn.scale(1/i);var a=Vn.dot(t),o=Math.cos(r);if(a=l)ke.copy(ar,Mt);else{ar.scaleAndAdd(Fn,s/Math.tan(Math.PI/2-f));var c=Mt.x!==st.x?(ar.x-st.x)/(Mt.x-st.x):(ar.y-st.y)/(Mt.y-st.y);if(isNaN(c))return;c<0?ke.copy(ar,st):c>1&&ke.copy(ar,Mt)}ar.toArray(e[1])}}}}function Zx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function sZ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=hg(n[0],n[1]),a=hg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=jh([],n[1],n[0],o/i),l=jh([],n[1],n[2],o/a),u=jh([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var f=1;f0&&a&&x(-f/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&S(-m),y<0&&S(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,T,E){if(C<0){var A=Math.min(T,-C);if(A>0){x(A*E,0,o);var M=A+C;M<0&&w(-M*E,1)}else w(-C*E,1)}}function x(C,T,E){C!==0&&(u=!0);for(var A=T;A0)for(var M=0;M0;M--){var F=E[M-1]*k;x(-F,M,o)}}}function S(C){var T=C<0?-1:1;C=Math.abs(C);for(var E=Math.ceil(C/(o-1)),A=0;A0?x(E,0,A+1):x(-E,o-A-1,o),C-=E,C<=0)return}return u}function lZ(e,t,r,n){return UP(e,"x","width",t,r,n)}function YP(e,t,r,n){return UP(e,"y","height",t,r,n)}function qP(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new et(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),nt(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Mr(n,u,r,l)}else if(n.attr(u),!qu(n).valueAnimation){var c=qe(n.style.opacity,1);n.style.opacity=0,Br(n,{style:{opacity:c}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};jf(h,u,Kf),jf(h,n.states.select,Kf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};jf(v,u,Kf),jf(v,n.states.emphasis,Kf)}p7(n,l,f,r,r)}if(i&&!i.ignore&&!i.invisible){var a=cZ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Mr(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Br(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const hZ=dZ;var rp=Tt();function vZ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=rp(r).labelManager;i||(i=rp(r).labelManager=new hZ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=rp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function pZ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Es(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function mZ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,f=r.get(["lineStyle","width"])||2;o-=f/2,s-=f/2,l+=f,u+=f,o=Math.floor(o),l=Math.round(l);var c=new Nt({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(c.shape.x+=l),c.shape.width=0):(v||(c.shape.y+=u),c.shape.height=0);var p=We(i)?function(g){i(g,c)}:null;Br(c,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return c}function yZ(e,t,r){var n=e.getArea(),i=It(n.r0,1),a=It(n.r,1),o=new wo({shape:{cx:It(e.cx,1),cy:It(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Br(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function _Z(e,t,r,n,i){if(e){if(e.type==="polar")return yZ(e,t,r);if(e.type==="cartesian2d")return mZ(e,t,r,n,i)}else return null;return null}function jP(e,t){return e.type===t}var bZ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),c=n.getDevicePixelRatio(),d=Math.abs(f[1]-f[0])*(c||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Ce(a)?v=bZ[a]:We(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,wZ))}}}}}var KP=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return _P(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)R(a.getAxes(),function(c,d){if(c.type==="category"){var h=c.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=c.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),f=a.getBaseAxis().isHorizontal()?0:1;o[f]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(po);po.registerClass(KP);const Jx=KP;var SZ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return _P(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=Y2(Jx.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(Jx);const CZ=SZ;var TZ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),MZ=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new TZ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,f=n.startAngle,c=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?c-fMath.PI/2&&fs)return!0;s=c}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){id(a,r,lt(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(io),tS={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=np(t.x,e.x),s=ip(t.x+t.width,i),l=np(t.y,e.y),u=ip(t.y+t.height,a),f=si?s:o,t.y=c&&l>a?u:l,t.width=f?0:s-o,t.height=c?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),f||c},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=ip(t.r,e.r),a=np(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},rS={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Nt({shape:oe({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var f=u.shape,c=i?"height":"width";f[c]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?eS:wo,f=new u({shape:n,z2:1});f.name="item";var c=XP(i);if(f.calculateTextPosition=AZ(c,{isRoundCap:u===eS}),a){var d=f.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Mr:Br)(f,{shape:v},a)}return f}};function DZ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function nS(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Mr:Br)(r,{shape:l},t,i,null);var f=t?e.baseAxis.model:null;(o?Mr:Br)(r,{shape:u},f,i)}function iS(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function OZ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function XP(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function oS(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var f=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",c=V2(n);i0(e,c,{labelFetcher:a,labelDataIndex:r,defaultText:pZ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:f});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,EZ(e,h==="outside"?f:h,XP(o),n.get(["label","rotate"]))}v7(d,c,a.getRawValue(r),function(p){return gZ(t,p)});var v=n.getModel(["emphasis"]);h2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),v2(e,n),OZ(i)&&(e.style.fill="none",e.style.stroke="none",R(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function kZ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var NZ=function(){function e(){}return e}(),sS=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new NZ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?r:null},30,!1);function BZ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,f=0,c=a.length/3;f=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[f]}return-1}function ZP(e,t,r){if(jP(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function FZ(e,t,r){var n=e.type==="polar"?wo:Nt;return new n({shape:ZP(t,r,e),silent:!0,z2:0})}const $Z=LZ;function HZ(e){e.registerChartView($Z),e.registerSeriesModel(CZ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Dt(gX,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,mX("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,xZ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var Jf=Math.PI*2,fS=Math.PI/180;function QP(e,t){return Ms(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function JP(e,t){var r=QP(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=pt(r.width,t.getWidth()),o=pt(r.height,t.getHeight()),s=Math.min(a,o),l=pt(i[0],s/2),u=pt(i[1],s/2),f,c,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);f=h[0]||0,c=h[1]||0}else ge(n)||(n=[n,n]),f=pt(n[0],a)+r.x,c=pt(n[1],o)+r.y;return{cx:f,cy:c,r0:l,r:u}}function zZ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=QP(n,r),s=JP(n,r),l=s.cx,u=s.cy,f=s.r,c=s.r0,d=-n.get("startAngle")*fS,h=n.get("minAngle")*fS,v=0;i.each(a,function(E){!isNaN(E)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=Jf,w=0,S=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:f}),i.each(a,function(E,A){var M;if(isNaN(E)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:c,r:y?NaN:f});return}y!=="area"?M=p===0&&_?g:E*g:M=Jf/v,Mr?m:g,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-c)/2}}}function ap(e){return e.position==="center"}function UZ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*VZ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,f=s.x,c=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,T=S.getTextContent(),E=S.getTextGuideLine(),A=t.getItemModel(w),M=A.getModel("label"),D=M.get("position")||A.get(["emphasis","label","position"]),O=M.get("distanceToLabelLine"),k=M.get("alignTo"),F=pt(M.get("edgeDistance"),u),j=M.get("bleedMargin"),B=A.getModel("labelLine"),N=B.get("length");N=pt(N,u);var U=B.get("length2");if(U=pt(U,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":ae>0?"left":"right"}var G=Math.PI,q=0,ne=M.get("rotate");if(_t(ne))q=ne*(G/180);else if(D==="center")q=0;else if(ne==="radial"||ne===!0){var ce=ae<0?-re+G:-re;q=ce}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(ae,me);te<0&&(te=G*2+te);var ie=me>0;ie&&(te=G+te),q=te-G}if(a=!!q,T.x=Te,T.y=V,T.rotation=q,T.setStyle({verticalAlign:"middle"}),Y){T.setStyle({align:W});var ve=T.states.select;ve&&(ve.x+=T.x,ve.y+=T.y)}else{var K=T.getBoundingRect().clone();K.applyTransform(T.getComputedTransform());var _e=(T.style.margin||0)+2.1;K.y-=_e/2,K.height+=_e,r.push({label:T,labelLine:E,position:D,len:N,len2:U,minTurnAngle:B.get("minTurnAngle"),maxSurfaceAngle:B.get("maxSurfaceAngle"),surfaceNormal:new ke(ae,me),linePoints:Q,textAlign:W,labelDistance:O,labelAlignTo:k,edgeDistance:F,bleedMargin:j,rect:K,unconstrainedWidth:K.width,labelStyleWidth:T.style.width})}S.setTextConfig({inside:Y})}}),!a&&e.get("avoidLabelOverlap")&&GZ(r,n,i,l,u,d,f,c);for(var p=0;p0){for(var f=o.getItemLayout(0),c=1;isNaN(f&&f.startAngle)&&c=a.r0}},t.type="pie",t}(io);const jZ=qZ;function KZ(e,t,r){t=ge(t)&&{coordDimensions:t}||oe({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=mP(n,t).dimensions,a=new gP(i,e);return a.initData(n,r),a}var XZ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const ZZ=XZ;var QZ=Tt(),JZ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new ZZ(yt(this.getData,this),yt(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return KZ(this,{coordDimensions:["value"],encodeDefaulter:Dt(V7,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=QZ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=TU(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Pg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(po);const eQ=JZ;function tQ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(_t(o)&&!isNaN(o)&&o<0)})}}}function rQ(e){e.registerChartView(jZ),e.registerSeriesModel(eQ),Lj("pie",e.registerAction),e.registerLayout(Dt(zZ,"pie")),e.registerProcessor(WZ("pie")),e.registerProcessor(tQ("pie"))}var nQ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(bt);const iQ=nQ;var sm=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",_n).models[0]},t.type="cartesian2dAxis",t}(bt);Qn(sm,WX);var tL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},aQ=it({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},tL),R0=it({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},tL),oQ=it({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},R0),sQ=ut({logBase:10},R0);const lQ={category:aQ,value:R0,time:oQ,log:sQ};var uQ={value:1,category:1,time:1,log:1};function dS(e,t,r,n){R(uQ,function(i,a){var o=it(it({},lQ[a],!0),n,!0),s=function(l){pe(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=t+"Axis."+a,f}return u.prototype.mergeDefaultAndTheme=function(f,c){var d=Cu(this),h=d?hh(f):{},v=c.getTheme();it(f,v.get(a+"Axis")),it(f,this.getDefaultOption()),f.type=hS(f),d&&As(f,h,d)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=am.createByAxisModel(this))},u.prototype.getCategories=function(f){var c=this.option;if(c.type==="category")return f?c.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",hS)}function hS(e){return e.type||(e.data?"category":"value")}var fQ=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Oe(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Ft(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const cQ=fQ;var lm=["x","y"];function vS(e){return e.type==="interval"||e.type==="time"}var dQ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=lm,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!vS(r)||!vS(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,c=(s[1]-o[1])/u,d=o[0]-i[0]*f,h=o[1]-a[0]*c,v=this._transform=[f,0,0,c,d,h];this._invTransform=Qd([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new et(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return rn(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return rn(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new et(i,a,o,s)},t}(cQ),hQ=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(eZ);const vQ=hQ;function um(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,f=n.getRect(),c=[f.x,f.x+f.width,f.y,f.y+f.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[c[2]-h,c[3]+h]:[c[0]-h,c[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:c[0],u==="x"?v[d[l]]:c[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),pu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function pS(e){return e.get("coordinateSystem")==="cartesian2d"}function gS(e){var t={xAxisModel:null,yAxisModel:null};return R(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,_n).models[0];t[n]=a}),t}var op=Math.log;function pQ(e,t,r){var n=ju.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=IP(e,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(e.type==="log"){var d=op(e.base);u=[op(u[0])/d,op(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:c});var h=n.getExtent.call(e);f&&(u[0]=h[0]),c&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(f&&c)v=(g-p)/o;else if(f)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=Jv(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=Jv(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=It(g-y),p<0&&u[0]>=0?(p=0,g=It(y)):g>0&&u[1]<=0&&(g=0,p=-It(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var gQ=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=lm,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=xt(o),u=l.length;if(u){for(var f=[],c=u-1;c>=0;c--){var d=+l[c],h=o[d],v=h.model,p=h.scale;om(p)&&v.get("alignTicks")&&v.get("interval")==null?f.push(h):(Yx(p,v),om(p)&&(s=h))}f.length&&(s||(s=f.pop(),Yx(s.scale,s.model)),R(f,function(g){pQ(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};R(n.x,function(o){mS(n,"y",o,a)}),R(n.y,function(o){mS(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ms(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(R(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=$X(u);if(f){var c=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+d,u.position==="top"?o.y+=f.height+d:u.position==="left"&&(o.x+=f.width+d)}}}),l()),R(this._coordsList,function(u){u.calcAffineTransform()});function l(){R(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(c[d],c[1-d]),mQ(u,f?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Pe(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):ed(i-Yi)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),_S={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(rn(s,s,o),rn(l,l,o));var f=oe({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new vo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});bu(c.shape,c.style.lineWidth),c.anid="line",r.add(c);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Ce(d)&&(d=[d,d]),(Ce(h)||_t(h))&&(h=[h,h]);var v=Gj(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];R([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=w0(d[y],-p/2,-g/2,p,g,f.stroke,!0),b=m.r+m.offset,x=u?l:s;_.attr({rotation:m.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=wQ(r,n,t,e),a=SQ(r,n,t,e);if(bQ(t,a,i),xQ(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=GP(Oe(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));qP(o)}},axisName:function(e,t,r,n){var i=pu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),f=u[0]>u[1]?-1:1,c=[a==="start"?u[0]-f*l:a==="end"?u[1]+f*l:(u[0]+u[1])/2,wS(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Yi/180);var v;wS(a)?d=ao.innerTextLayout(e.rotation,h??e.rotation,o):(d=_Q(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=pu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new fr({x:c[0],y:c[1],rotation:d.rotation,silent:ao.isLabelSilent(t),style:ra(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(r0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=ao.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,lt(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function _Q(e,t,r,n){var i=NA(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return ed(i-Yi/2)?(o=l?"bottom":"top",a="center"):ed(i-Yi*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iYi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function bQ(e,t,r){if(!RP(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],f=r[1],c=r[r.length-1],d=r[r.length-2];n===!1?(Vr(a),Vr(u)):bS(a,o)&&(n?(Vr(o),Vr(f)):(Vr(a),Vr(u))),i===!1?(Vr(s),Vr(c)):bS(l,s)&&(i?(Vr(l),Vr(d)):(Vr(s),Vr(c)))}}function Vr(e){e&&(e.ignore=!0)}function bS(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Oy([]);return ky(i,i,-e.rotation),r.applyTransform(is([],i,e.getLocalTransform())),n.applyTransform(is([],i,t.getLocalTransform())),r.intersect(n)}}function wS(e){return e==="middle"||e==="center"}function rL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function PQ(e){var t=O0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=fm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var c=this.__startIndex;c15)break}}O.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var E=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?tc:0),this._needsManuallyCompositing),f.__builtin__||Dy("ZLevel "+u+" has been used by unkown layer "+f.id),f!==a&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,r(l),a=f),i.__dirty&Ir&&!i.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(c,d){!c.__used&&c.getElementCount()>0&&(c.__dirty=!0,c.__startIndex=c.__endIndex=c.__drawIndex=0),c.__dirty&&c.__drawIndex<0&&(c.__drawIndex=c.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,R(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?it(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=O0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ga(t).pointerEl=new f7[a.type](MS(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ga(t).labelEl=new fr(MS(r.label));t.add(a),ES(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ga(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ga(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),ES(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=t0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){cA(u.event)},onmousedown:fp(this._onHandleDragMove,this,0,0),drift:fp(this._onHandleDragMove,this),ondragend:fp(this._onHandleDragEnd,this)}),n.add(i)),PS(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,OE(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){AS(this._axisPointerModel,!r&&this._moveAnimation,this._handle,cp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(cp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(cp(i)),Ga(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),Xg(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function AS(e,t,r,n){sL(Ga(r).lastProp,n)||(Ga(r).lastProp=n,t?Mr(r,n,e):(r.stopAnimation(),r.attr(n)))}function sL(e,t){if(Pe(e)&&Pe(t)){var r=!0;return R(t,function(n,i){r=r&&sL(e[i],n)}),!!r}else return e===t}function ES(e,t){e[t.get(["label","show"])?"show":"hide"]()}function cp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function PS(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const jQ=qQ;function KQ(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function XQ(e,t,r,n,i){var a=r.get("value"),o=lL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=dh(s.get("padding")||0),u=s.getFont(),f=Fy(o,u),c=i.position,d=f.width+l[1]+l[3],h=f.height+l[0]+l[2],v=i.align;v==="right"&&(c[0]-=d),v==="center"&&(c[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=h),p==="middle"&&(c[1]-=h/2),ZQ(c,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:c[0],y:c[1],style:ra(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function ZQ(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function lL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:D0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};R(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,c=u&&u.getDataParams(f);c&&s.seriesData.push(c)}),Ce(o)?a=o.replace("{value}",a):We(o)&&(a=o(s))}return a}function uL(e,t,r){var n=gu();return ky(n,n,r.rotation),mg(n,n,r.position),e0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function QQ(e,t,r,n,i,a){var o=nL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),XQ(t,n,i,a,{position:uL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function JQ(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function eJ(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var tJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),f=LS(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=KQ(a),h=rJ[u](s,c,f);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=um(l.model,i);QQ(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=um(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=uL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=LS(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,c=[r.x,r.y];c[f]+=n[f],c[f]=Math.min(l[1],c[f]),c[f]=Math.max(l[0],c[f]);var d=(u[1]+u[0])/2,h=[d,d];h[f]=c[f];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[f]}},t}(jQ);function LS(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var rJ={line:function(e,t,r){var n=JQ([t,r[0]],[t,r[1]],DS(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:eJ([t-n/2,r[0]],[n,i],DS(e))}}};function DS(e){return e.dim==="x"?0:1}const nJ=tJ;var iJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(bt);const aJ=iJ;var fi=Tt(),oJ=R;function fL(e,t,r){if(!Ve.node){var n=t.getZr();fi(n).records||(fi(n).records={}),sJ(n,t);var i=fi(n).records[e]||(fi(n).records[e]={});i.handler=r}}function sJ(e,t){if(fi(e).initialized)return;fi(e).initialized=!0,r("click",Dt(IS,"click")),r("mousemove",Dt(IS,"mousemove")),r("globalout",uJ);function r(n,i){e.on(n,function(a){var o=fJ(t);oJ(fi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),lJ(o.pendings,t)})}}function lJ(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function uJ(e,t,r){e.handler("leave",null,r)}function IS(e,t,r,n){t.handler(e,r,n)}function fJ(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function dm(e,t){if(!Ve.node){var r=t.getZr(),n=(fi(r).records||{})[e];n&&(fi(r).records[e]=null)}}var cJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";fL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){dm("axisPointer",n)},t.prototype.dispose=function(r,n){dm("axisPointer",n)},t.type="axisPointer",t}(_i);const dJ=cJ;function cL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=Gu(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),c=f.dim,d=u.dim,h=c==="x"||c==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Oe(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var RS=Tt();function hJ(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||yt(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Dc(i)&&(i=cL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Dc(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Dc(i),d={},h={},v={list:[],map:{}},p={showPointer:Dt(pJ,h),showTooltip:Dt(gJ,v)};R(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);R(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=bJ(u,b);if(!c&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&OS(b,C,p,!1,d)}})});var g={};return R(f,function(m,y){var _=m.linkGroup;_&&!h[y]&&R(_.axesInfo,function(b,x){var w=h[x];if(b!==m&&w){var S=w.value;_.mapper&&(S=m.axis.scale.parse(_.mapper(S,kS(b),kS(m)))),g[m.key]=S}})}),R(g,function(m,y){OS(f[y],m,p,!0,d)}),mJ(h,f,d),yJ(v,i,e,o),_J(f,o,r),d}}function OS(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=vJ(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&oe(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function vJ(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return R(t.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(f,e,r);d=h.dataIndices,c=h.nestestValue}else{if(d=l.getData().indicesOfNearest(f[0],e,r.type==="category"?.5:null),!d.length)return;c=l.getData().get(f[0],d[0])}if(!(c==null||!isFinite(c))){var v=e-c,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=c,a.length=0),R(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function pJ(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function gJ(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Lu(l),f=e.map[u];f||(f=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(f)),f.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function mJ(e,t,r){var n=r.axesInfo=[];R(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function yJ(e,t,r,n){if(Dc(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function _J(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=RS(n)[i]||{},o=RS(n)[i]={};R(e,function(u,f){var c=u.axisPointerModel.option;c.status==="show"&&R(c.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];R(a,function(u,f){!o[f]&&l.push(u)}),R(o,function(u,f){!a[f]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function bJ(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function kS(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Dc(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function dL(e){iL.registerAxisPointerClass("CartesianAxisPointer",nJ),e.registerComponentModel(aJ),e.registerComponentView(dJ),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=CQ(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},hJ)}function wJ(e){na($Q),na(dL)}function xJ(e,t){var r=dh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Nt({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var SJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(bt);const CJ=SJ;function hL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function vL(e){if(Ve.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var f=u*Math.PI/180,c=o+i,d=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-c)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function DJ(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ve.transformSupported?","+k0+n:",left"+n+",top"+n),AJ+":"+i}function NS(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ve.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ve.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+k0+":"+o+";":[["top",0],["left",0],[pL,o]]}function IJ(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),R(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function RJ(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),f=e.getModel("textStyle"),c=DE(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(DJ(i,r)),a&&n.push("background-color:"+a),R(["width","color","radius"],function(h){var v="border-"+h,p=iE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(IJ(f)),c!=null&&n.push("padding:"+dh(c).join("px ")+"px"),n.join(";")+";"}function BS(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&fG(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var OJ=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ve.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;BS(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,f=a.painter.getViewportRoot();Ur(f,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=MJ(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=EJ+RJ(t,!this._firstShow,this._longHide)+NS(a[0],a[1],!0)+("border-color:"+Su(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Ce(a)&&n.get("trigger")==="item"&&!hL(n)&&(s=LJ(n,i,a)),Ce(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ve.node||!i.getDom())){var o=HS(a,i);this._ticket="";var s=a.dataByCoordSys,l=VJ(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var f=FJ;f.x=a.x,f.y=a.y,f.update(),lt(f).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:f},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var c=cL(a,n),d=c.point[0],h=c.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:c.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(HS(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var f=u.getData(),c=hl([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(c.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Sl(i,function(u){if(lt(u).dataIndex!=null)return s=u,!0;if(lt(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=yt(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=hl([n.tooltipOption],a),l=this._renderMode,u=[],f=Mu("section",{blocks:[],noHeader:!0}),c=[],d=new zv;R(r,function(y){R(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=lL(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Mu("section",{header:w,noHeader:!zn(w),sortBlocks:!0,blocks:[]});f.blocks.push(S),R(_.seriesDataIndices,function(C){var T=i.getSeriesByIndex(C.seriesIndex),E=C.dataIndexInside,A=T.getDataParams(E);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=D0(b.axis,{value:x}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Su(A.color),l);var M=ex(T.formatTooltip(E,!0,null)),D=M.frag;if(D){var O=hl([T],a).get("valueFormatter");S.blocks.push(O?oe({valueFormatter:O},D):D)}M.text&&c.push(M.text),u.push(A)}})}})}),f.blocks.reverse(),c.reverse();var h=n.position,v=s.get("order"),p=ax(f,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var g=l==="richText"?` + +`:"
",m=c.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=lt(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,d=u.getData(c),h=this._renderMode,v=r.positionDefault,p=hl([d.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(f,c),y=new zv;m.marker=y.makeTooltipMarker("item",Su(m.color),h);var _=ex(u.formatTooltip(f,!1,c)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?ax(x?oe({valueFormatter:x},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,S,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:d.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=lt(n),o=a.tooltipConfig,s=o.option||{};if(Ce(s)){var l=s;s={content:l,formatter:l}}var u=[s],f=this._ecModel.getComponent(a.componentMainType,a.componentIndex);f&&u.push(f),u.push({formatter:s.content});var c=r.positionDefault,d=hl(u,this._tooltipModel,c?{position:c}:null),h=d.get("content"),v=Math.random()+"",p=new zv;this._showOrMove(d,function(){var g=Xe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,f){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var c=this._tooltipContent;c.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Ce(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=sh(m.axisValue,h,g)),h=aE(h,i,!0)}else if(We(d)){var _=yt(function(b,x){b===this._ticket&&(c.setContent(x,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;c.setContent(h,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||r.get("position");var c=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),We(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,f],contentSize:c.slice()})),ge(n))i=pt(n[0],u),a=pt(n[1],f);else if(Pe(n)){var p=n;p.width=c[0],p.height=c[1];var g=Ms(p,{width:u,height:f});i=g.x,a=g.y,d=null,h=null}else if(Ce(n)&&l){var m=WJ(n,v,c,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=HJ(i,a,o,u,f,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=zS(d)?c[0]/2:d==="right"?c[0]:0),h&&(a-=zS(h)?c[1]/2:h==="bottom"?c[1]:0),hL(r)){var m=zJ(i,a,o,u,f);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&R(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&R(u,function(d,h){var v=c[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&R(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&R(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ve.node||!n.getDom()||(Xg(this,"_updatePosition"),this._tooltipContent.dispose(),dm("itemTooltip",n))},t.type="tooltip",t}(_i);function hl(e,t,r){var n=t.ecModel,i;r?(i=new er(r,n,n),i=new er(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof er&&(o=o.get("tooltip",!0)),Ce(o)&&(o={formatter:o}),o&&(i=new er(o,i,n)))}return i}function HS(e,t){return e.dispatchAction||yt(t.dispatchAction,t)}function HJ(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function zJ(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function WJ(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function zS(e){return e==="center"||e==="middle"}function VJ(e,t,r){var n=Vy(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=Uu(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=lt(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const GJ=$J;function UJ(e){na(dL),e.registerComponentModel(CJ),e.registerComponentView(GJ),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Sr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Sr)}var YJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(bt),qJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),f=new fr({style:ra(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),d=r.get("subtext"),h=new fr({style:ra(s,{text:d,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);f.silent=!v&&!g,h.silent=!p&&!g,v&&f.on("click",function(){Nw(v,"_"+r.get("target"))}),p&&h.on("click",function(){Nw(p,"_"+r.get("subtarget"))}),lt(f).eventData=lt(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ms(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Nt({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(_i);function jJ(e){e.registerComponentModel(YJ),e.registerComponentView(qJ)}var KJ=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},XJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&R(n,function(a,o){Ce(a)&&(a={type:a}),n[o]=it(a,KJ(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(bt);const hm=XJ;var Ho=Dt,vm=R,rc=sn,ZJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new rc),this.group.add(this._selectorGroup=new rc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var f=r.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ms(f,c,d),v=this.layoutInner(r,o,h,a,l,u),p=Ms(ut({width:v.width,height:v.height},f),c,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=xJ(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=Ge(),c=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),vm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` +`)){var g=new rc;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!f.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,x,b,c,a);w.on("click",Ho(WS,p,null,a,d)).on("mouseover",Ho(pm,m.name,null,a,d)).on("mouseout",Ho(gm,m.name,null,a,d)),f.set(p,!0)}else i.eachRawSeries(function(S){if(!f.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var T=C.indexOfName(p),E=C.getItemVisual(T,"style"),A=C.getItemVisual(T,"legendIcon"),M=to(E.fill);M&&M[3]===0&&(M[3]=.2,E=oe(oe({},E),{fill:Ny(M,"rgba")}));var D=this._createItem(S,p,v,h,n,r,{},E,A,c,a);D.on("click",Ho(WS,null,p,a,d)).on("mouseover",Ho(pm,null,p,a,d)).on("mouseout",Ho(gm,null,p,a,d)),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();vm(r,function(u){var f=u.type,c=new fr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);i0(c,{normal:d,emphasis:h},{defaultText:u.title}),Fg(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var b=QJ(f,a,l,u,h,g,d),x=new rc,w=a.getModel("textStyle");if(We(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:f,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;x.add(JJ({itemWidth:v,itemHeight:p,icon:f,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,T=s,E=o.get("formatter"),A=n;Ce(E)&&E?A=E.replace("{name}",n??""):We(E)&&(A=E(n));var M=a.get("inactiveColor");x.add(new fr({style:ra(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():M,align:T,verticalAlign:"middle"})}));var D=new Nt({shape:x.getBoundingRect(),invisible:!0}),O=a.getModel("tooltip");return O.get("show")&&r0({el:D,componentModel:o,itemName:n,itemTooltipOption:O.option}),x.add(D),x.eachChild(function(k){k.silent=!0}),D.silent=!c,this.getContentGroup().add(x),Fg(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Yl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){Yl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=f[g]+v:c[p]+=d[g]+v,h[1-p]+=f[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[g]=f[g]+v+d[g],_[m]=Math.max(f[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(_i);function QJ(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),vm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=e.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:tm(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function JJ(e){var t=e.icon||"roundRect",r=w0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function WS(e,t,r,n){gm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),pm(e,t,r,n)}function mL(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=f[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,f.setPosition(g),c.setPosition(m),d.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:h[o],x[s]=Math.max(h[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Nt({shape:w})),c.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Mr(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",d=n[c]!=null,h=i.childOfName(f);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ce(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=dp[o],l=hp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],d=f.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(f[g]),(!_&&y.e>m.s+a||_&&!x(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(f[g]),(!_||!x(y,_.s))&&m.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(yL);const aee=iee;function oee(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function see(e){na(_L),e.registerComponentModel(nee),e.registerComponentView(aee),oee(e)}function lee(e){na(_L),na(see)}na([rQ,HZ,YQ,vZ,jJ,UJ,lee,wJ]);function uee(e,t,r){const n=T0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return Ji.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function fee(e,t){const r=T0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function cee(e,t,r){const n={width:"600px",height:"400px"},i=T0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+Ji.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return Ji.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const dee={class:"source"},hee=le("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),vee=le("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),pee=ue({__name:"ServerOverview",setup(e){let t=H({version:"",bind_port:"",bind_udp_port:"",vhost_http_port:"",vhost_https_port:"",subdomain_host:"",max_pool_count:"",max_ports_per_client:"",heart_beat_timeout:"",client_counts:"",cur_conns:"",proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.bind_udp_port=n.bind_udp_port,t.value.bind_udp_port=="0"&&(t.value.bind_udp_port="disable"),t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_http_port=="0"&&(t.value.vhost_http_port="disable"),t.value.vhost_https_port=n.vhost_https_port,t.value.vhost_https_port=="0"&&(t.value.vhost_https_port="disable"),t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),uee("traffic",n.total_traffic_in,n.total_traffic_out),fee("proxies",n)}).catch(()=>{UM({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=AM,o=MM,s=SM,l=IM;return X(),Se("div",null,[J(l,null,{default:ee(()=>[J(s,{md:12},{default:ee(()=>[le("div",dee,[J(o,{"label-position":"left","label-width":"160px",class:"server_info"},{default:ee(()=>[J(a,{label:"Version"},{default:ee(()=>[le("span",null,Re(L(t).version),1)]),_:1}),J(a,{label:"BindPort"},{default:ee(()=>[le("span",null,Re(L(t).bind_port),1)]),_:1}),J(a,{label:"BindUdpPort"},{default:ee(()=>[le("span",null,Re(L(t).bind_udp_port),1)]),_:1}),J(a,{label:"Http Port"},{default:ee(()=>[le("span",null,Re(L(t).vhost_http_port),1)]),_:1}),J(a,{label:"Https Port"},{default:ee(()=>[le("span",null,Re(L(t).vhost_https_port),1)]),_:1}),J(a,{label:"Subdomain Host"},{default:ee(()=>[le("span",null,Re(L(t).subdomain_host),1)]),_:1}),J(a,{label:"Max PoolCount"},{default:ee(()=>[le("span",null,Re(L(t).max_pool_count),1)]),_:1}),J(a,{label:"Max Ports Per Client"},{default:ee(()=>[le("span",null,Re(L(t).max_ports_per_client),1)]),_:1}),J(a,{label:"HeartBeat Timeout"},{default:ee(()=>[le("span",null,Re(L(t).heart_beat_timeout),1)]),_:1}),J(a,{label:"Client Counts"},{default:ee(()=>[le("span",null,Re(L(t).client_counts),1)]),_:1}),J(a,{label:"Current Connections"},{default:ee(()=>[le("span",null,Re(L(t).cur_conns),1)]),_:1}),J(a,{label:"Proxy Counts"},{default:ee(()=>[le("span",null,Re(L(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),J(s,{md:12},{default:ee(()=>[hee,vee]),_:1})]),_:1})])}}});class zs{constructor(t){Wt(this,"name");Wt(this,"type");Wt(this,"encryption");Wt(this,"compression");Wt(this,"conns");Wt(this,"traffic_in");Wt(this,"traffic_out");Wt(this,"last_start_time");Wt(this,"last_close_time");Wt(this,"status");Wt(this,"addr");Wt(this,"port");Wt(this,"custom_domains");Wt(this,"host_header_rewrite");Wt(this,"locations");Wt(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class gee extends zs{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class mee extends zs{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class yee extends zs{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class _ee extends zs{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class bee extends zs{constructor(t){super(t),this.type="stcp"}}class wee extends zs{constructor(t){super(t),this.type="sudp"}}const xee=["id"],See=ue({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{cee(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{UM({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(X(),Se("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,xee))}}),Cee=ue({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=AM,i=MM;return e.proxyType==="http"||e.proxyType==="https"?(X(),Ie(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:ee(()=>[J(n,{label:"Name"},{default:ee(()=>[le("span",null,Re(e.row.name),1)]),_:1}),J(n,{label:"Type"},{default:ee(()=>[le("span",null,Re(e.row.type),1)]),_:1}),J(n,{label:"Domains"},{default:ee(()=>[le("span",null,Re(e.row.custom_domains),1)]),_:1}),J(n,{label:"SubDomain"},{default:ee(()=>[le("span",null,Re(e.row.subdomain),1)]),_:1}),J(n,{label:"locations"},{default:ee(()=>[le("span",null,Re(e.row.locations),1)]),_:1}),J(n,{label:"HostRewrite"},{default:ee(()=>[le("span",null,Re(e.row.host_header_rewrite),1)]),_:1}),J(n,{label:"Encryption"},{default:ee(()=>[le("span",null,Re(e.row.encryption),1)]),_:1}),J(n,{label:"Compression"},{default:ee(()=>[le("span",null,Re(e.row.compression),1)]),_:1}),J(n,{label:"Last Start"},{default:ee(()=>[le("span",null,Re(e.row.last_start_time),1)]),_:1}),J(n,{label:"Last Close"},{default:ee(()=>[le("span",null,Re(e.row.last_close_time),1)]),_:1})]),_:1})):(X(),Ie(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:ee(()=>[J(n,{label:"Name"},{default:ee(()=>[le("span",null,Re(e.row.name),1)]),_:1}),J(n,{label:"Type"},{default:ee(()=>[le("span",null,Re(e.row.type),1)]),_:1}),J(n,{label:"Addr"},{default:ee(()=>[le("span",null,Re(e.row.addr),1)]),_:1}),J(n,{label:"Encryption"},{default:ee(()=>[le("span",null,Re(e.row.encryption),1)]),_:1}),J(n,{label:"Compression"},{default:ee(()=>[le("span",null,Re(e.row.compression),1)]),_:1}),J(n,{label:"Last Start"},{default:ee(()=>[le("span",null,Re(e.row.last_start_time),1)]),_:1}),J(n,{label:"Last Close"},{default:ee(()=>[le("span",null,Re(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),Ws=ue({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(o,s)=>Ji.fileSize(o.traffic_in),r=(o,s)=>Ji.fileSize(o.traffic_out),n=H(),i=H(),a=()=>{var o,s;(s=(o=L(i).popoverTraffic)==null?void 0:o.delayHide)==null||s.call(o)};return(o,s)=>{const l=See,u=j6,f=PH,c=sW,d=uz,h=oW,v=Rm("click-outside");return X(),Se("div",null,[J(h,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:ee(()=>[J(c,{type:"expand"},{default:ee(p=>[J(u,{ref_key:"popoverTraffic",ref:i,"virtual-ref":n.value,placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click","virtual-triggering":""},{default:ee(()=>[J(l,{proxy_name:p.row.name},null,8,["proxy_name"])]),_:2},1032,["virtual-ref"]),sr((X(),Ie(f,{ref_key:"buttonTraffic",ref:n,type:"primary",size:"large",name:p.row.name,style:{"margin-bottom":"10px"}},{default:ee(()=>[kt("Traffic Statistics ")]),_:2},1032,["name"])),[[v,a]]),J(Cee,{row:p.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),J(c,{label:"Name",prop:"name",sortable:""}),J(c,{label:"Port",prop:"port",sortable:""}),J(c,{label:"Connections",prop:"conns",sortable:""}),J(c,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),J(c,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),J(c,{label:"status",prop:"status",sortable:""},{default:ee(p=>[p.row.status==="online"?(X(),Ie(d,{key:0,type:"success"},{default:ee(()=>[kt(Re(p.row.status),1)]),_:2},1024)):(X(),Ie(d,{key:1,type:"danger"},{default:ee(()=>[kt(Re(p.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),Tee=ue({__name:"ProxiesTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new gee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"tcp"},null,8,["proxies"]))}}),Mee=ue({__name:"ProxiesUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new mee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"udp"},null,8,["proxies"]))}}),Aee=ue({__name:"ProxiesHTTP",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new yee(s,n,i))})})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"http"},null,8,["proxies"]))}}),Eee=ue({__name:"ProxiesHTTPS",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new _ee(s,n,i))})})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"https"},null,8,["proxies"]))}}),Pee=ue({__name:"ProxiesSTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new bee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"stcp"},null,8,["proxies"]))}}),Lee=ue({__name:"ProxiesSUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new wee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"sudp"},null,8,["proxies"]))}}),Dee=LV({history:YW(),routes:[{path:"/",name:"ServerOverview",component:pee},{path:"/proxies/tcp",name:"ProxiesTCP",component:Tee},{path:"/proxies/udp",name:"ProxiesUDP",component:Mee},{path:"/proxies/http",name:"ProxiesHTTP",component:Aee},{path:"/proxies/https",name:"ProxiesHTTPS",component:Eee},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Pee},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Lee}]}),bL=eR(AW);bL.use(Dee);bL.mount("#app")});export default Iee(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index 7a35c049605..20e86af504d 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -1 +1,16 @@ - frps dashboard
\ No newline at end of file + + + + + + frps dashboard + + + + + +
+ + + + diff --git a/assets/frps/static/manifest.js b/assets/frps/static/manifest.js deleted file mode 100644 index bf66eb524ab..00000000000 --- a/assets/frps/static/manifest.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,u,c){for(var i,a,f,l=0,s=[];lt.get("hoverLayerThreshold")&&!X.node&&n.traverse(function(e){e.isGroup||(e.useHoverLayer=!0)})}function x(e,t){var n=0;t.group.traverse(function(e){"group"===e.type||e.ignore||n++});var o=+e.get("progressive"),i=n>e.get("progressiveThreshold")&&o&&!X.node;i&&t.group.traverse(function(e){e.isGroup||(e.progressive=i?Math.floor(n++/o):-1,i&&e.stopAnimation(!0))});var r=e.get("blendMode")||null;t.group.traverse(function(e){e.isGroup||e.setStyle("blend",r)})}function y(e,t){var n=e.get("z"),o=e.get("zlevel");t.group.traverse(function(e){"group"!==e.type&&(null!=n&&(e.z=n),null!=o&&(e.zlevel=o))})}function _(e){var t=e._coordSysMgr;return Y.extend(new ee(e),{getCoordinateSystems:Y.bind(t.getCoordinateSystems,t),getComponentByElement:function(t){for(;t;){var n=t.__ecComponentInfo;if(null!=n)return e._model.getComponent(n.mainType,n.index);t=t.parent}}})}function w(e){function t(e,t){for(var o=0;o=0&&Y.each(e,function(e){var i=e.coordinateSystem;if(i&&i.containPoint)n|=!!i.containPoint(t);else if("seriesModels"===o){var r=this._chartsMap[e.__viewId];r&&r.containPoint&&(n|=r.containPoint(t,e))}},this)},this),!!n},Se.getVisual=function(e,t){var n=this._model;e=ce.parseFinder(n,e,{defaultMainType:"series"});var o=e.seriesModel,i=o.getData(),r=e.hasOwnProperty("dataIndexInside")?e.dataIndexInside:e.hasOwnProperty("dataIndex")?i.indexOfRawIndex(e.dataIndex):null;return null!=r?i.getItemVisual(r,t):i.getVisual(t)},Se.getViewOfComponentModel=function(e){return this._componentsMap[e.__viewId]},Se.getViewOfSeriesModel=function(e){return this._chartsMap[e.__viewId]};var Me={update:function(e){var t=this._model,n=this._api,o=this._coordSysMgr,i=this._zr;if(t){t.restoreData(),o.create(this._model,this._api),p.call(this,t,n),h.call(this,t),o.update(t,n),m.call(this,t,e),v.call(this,t,e);var r=t.get("backgroundColor")||"transparent",a=i.painter;if(a.isSingleCanvas&&a.isSingleCanvas())i.configLayer(0,{clearColor:r});else{if(!X.canvasSupported){var l=Z.parse(r);r=Z.stringify(l,"rgb"),0===l[3]&&(r="transparent")}r.colorStops||r.image?(i.configLayer(0,{clearColor:r}),this.__hasGradientOrPatternBg=!0,this._dom.style.background="transparent"):(this.__hasGradientOrPatternBg&&i.configLayer(0,{clearColor:null}),this.__hasGradientOrPatternBg=!1,this._dom.style.background=r)}he(Oe,function(e){e(t,n)})}},updateView:function(e){var t=this._model;t&&(t.eachSeries(function(e){e.getData().clearAllVisual()}),m.call(this,t,e),d.call(this,"updateView",t,e))},updateVisual:function(e){var t=this._model;t&&(t.eachSeries(function(e){e.getData().clearAllVisual()}),m.call(this,t,e,!0),d.call(this,"updateVisual",t,e))},updateLayout:function(e){var t=this._model;t&&(g.call(this,t,e),d.call(this,"updateLayout",t,e))},prepareAndUpdate:function(e){var t=this._model;f.call(this,"component",t),f.call(this,"chart",t),Me.update.call(this,e)}};Se.resize=function(e){this[_e]=!0,this._zr.resize(e);var t=this._model&&this._model.resetOption("media");Me[t?"prepareAndUpdate":"update"].call(this),this._loadingFX&&this._loadingFX.resize(),this[_e]=!1;var n=e&&e.silent;c.call(this,n),u.call(this,n)},Se.showLoading=function(e,t){if(Y.isObject(e)&&(t=e,e=""),e=e||"default",this.hideLoading(),De[e]){var n=De[e](this._api,t),o=this._zr;this._loadingFX=n,o.add(n)}},Se.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},Se.makeActionFromEvent=function(e){var t=Y.extend({},e);return t.type=Te[e.type],t},Se.dispatchAction=function(e,t){if(Y.isObject(t)||(t={silent:!!t}),Ae[e.type]&&this._model){if(this[_e])return void this._pendingActions.push(e);s.call(this,e,t.silent),t.flush?this._zr.flush(!0):!1!==t.flush&&X.browser.weChat&&this._throttledZrFlush(),c.call(this,t.silent),u.call(this,t.silent)}},Se.on=o("on"),Se.off=o("off"),Se.one=o("one");var Ce=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];Se._initEvents=function(){he(Ce,function(e){this._zr.on(e,function(t){var n,o=this.getModel(),i=t.target;if("globalout"===e)n={};else if(i&&null!=i.dataIndex){var r=i.dataModel||o.getSeriesByIndex(i.seriesIndex);n=r&&r.getDataParams(i.dataIndex,i.dataType)||{}}else i&&i.eventData&&(n=Y.extend({},i.eventData));n&&(n.event=t,n.type=e,this.trigger(e,n))},this)},this),he(Te,function(e,t){this._messageCenter.on(t,function(e){this.trigger(t,e)},this)},this)},Se.isDisposed=function(){return this._disposed},Se.clear=function(){this.setOption({series:[]},!0)},Se.dispose=function(){if(!this._disposed){this._disposed=!0;var e=this._api,t=this._model;he(this._componentsViews,function(n){n.dispose(t,e)}),he(this._chartsViews,function(n){n.dispose(t,e)}),this._zr.dispose(),delete ze[this.id]}},Y.mixin(r,J);var Ae={},Te={},Ee=[],Ie=[],Oe=[],Le=[],Pe={},De={},ze={},Re={},Ne=new Date-0,Be=new Date-0,Fe="_echarts_instance_",Ve={},je=M;N(2e3,fe),I(oe),B("default",pe),P({type:"highlight",event:"highlight",update:"highlight"},Y.noop),P({type:"downplay",event:"downplay",update:"downplay"},Y.noop);var $e={};t.version="3.8.5",t.dependencies=me,t.PRIORITY=ye,t.init=k,t.connect=S,t.disConnect=M,t.disconnect=je,t.dispose=C,t.getInstanceByDom=A,t.getInstanceById=T,t.registerTheme=E,t.registerPreprocessor=I,t.registerProcessor=O,t.registerPostUpdate=L,t.registerAction=P,t.registerCoordinateSystem=D,t.getCoordinateSystemDimensions=z,t.registerLayout=R,t.registerVisual=N,t.registerLoading=B,t.extendComponentModel=F,t.extendComponentView=V,t.extendSeriesModel=j,t.extendChartView=$,t.setCanvasCreator=H,t.registerMap=W,t.getMap=G,t.dataTool=$e;var He=n(214);!function(){for(var e in He)He.hasOwnProperty(e)&&(t[e]=He[e])}()},function(e,t,n){function o(e){return X.extend(e)}function i(e,t){return U.extendFromString(e,t)}function r(e,t,n,o){var i=U.createFromString(e,t),r=i.getBoundingRect();return n&&("center"===o&&(n=l(n,r)),s(i,n)),i}function a(e,t,n){var o=new J({style:{image:e,x:t.x,y:t.y,width:t.width,height:t.height},onload:function(e){if("center"===n){var i={width:e.width,height:e.height};o.setStyle(l(t,i))}}});return o}function l(e,t){var n,o=t.width/t.height,i=e.height*o;return i<=e.width?n=e.height:(i=e.width,n=i/o),{x:e.x+e.width/2-i/2,y:e.y+e.height/2-n/2,width:i,height:n}}function s(e,t){if(e.applyTransform){var n=e.getBoundingRect(),o=n.calculateTransform(t);e.applyTransform(o)}}function c(e){var t=e.shape,n=e.style.lineWidth;return he(2*t.x1)===he(2*t.x2)&&(t.x1=t.x2=d(t.x1,n,!0)),he(2*t.y1)===he(2*t.y2)&&(t.y1=t.y2=d(t.y1,n,!0)),e}function u(e){var t=e.shape,n=e.style.lineWidth,o=t.x,i=t.y,r=t.width,a=t.height;return t.x=d(t.x,n,!0),t.y=d(t.y,n,!0),t.width=Math.max(d(o+r,n,!1)-t.x,0===r?0:1),t.height=Math.max(d(i+a,n,!1)-t.y,0===a?0:1),e}function d(e,t,n){var o=he(2*e);return(o+he(t))%2==0?o/2:(o+(n?1:-1))/2}function f(e){return null!=e&&"none"!=e}function p(e){return"string"==typeof e?q.lift(e,-.1):e}function h(e){if(e.__hoverStlDirty){var t=e.style.stroke,n=e.style.fill,o=e.__hoverStl;o.fill=o.fill||(f(n)?p(n):null),o.stroke=o.stroke||(f(t)?p(t):null);var i={};for(var r in o)null!=o[r]&&(i[r]=e.style[r]);e.__normalStl=i,e.__hoverStlDirty=!1}}function g(e){if(!e.__isHover){if(h(e),e.useHoverLayer)e.__zr&&e.__zr.addHover(e,e.__hoverStl);else{var t=e.style,n=t.insideRollbackOpt;n&&P(t),t.extendFrom(e.__hoverStl),n&&(L(t,t.insideOriginalTextPosition,n),null==t.textFill&&(t.textFill=n.autoColor)),e.dirty(!1),e.z2+=1}e.__isHover=!0}}function m(e){if(e.__isHover){var t=e.__normalStl;e.useHoverLayer?e.__zr&&e.__zr.removeHover(e):(t&&e.setStyle(t),e.z2-=1),e.__isHover=!1}}function v(e){"group"===e.type?e.traverse(function(e){"group"!==e.type&&g(e)}):g(e)}function b(e){"group"===e.type?e.traverse(function(e){"group"!==e.type&&m(e)}):m(e)}function x(e,t){e.__hoverStl=e.hoverStyle||t||{},e.__hoverStlDirty=!0,e.__isHover&&h(e)}function y(e){this.__hoverSilentOnTouch&&e.zrByTouch||!this.__isEmphasis&&v(this)}function _(e){this.__hoverSilentOnTouch&&e.zrByTouch||!this.__isEmphasis&&b(this)}function w(){this.__isEmphasis=!0,v(this)}function k(){this.__isEmphasis=!1,b(this)}function S(e,t,n){e.__hoverSilentOnTouch=n&&n.hoverSilentOnTouch,"group"===e.type?e.traverse(function(e){"group"!==e.type&&x(e,t)}):x(e,t),e.on("mouseover",y).on("mouseout",_),e.on("emphasis",w).on("normal",k)}function M(e,t,n,o,i,r,a){i=i||ve;var l=i.labelFetcher,s=i.labelDataIndex,c=i.labelDimIndex,u=n.getShallow("show"),d=o.getShallow("show"),f=u||d?G.retrieve2(l?l.getFormattedLabel(s,"normal",null,c):null,i.defaultText):null,p=u?f:null,h=d?G.retrieve2(l?l.getFormattedLabel(s,"emphasis",null,c):null,f):null;null==p&&null==h||(C(e,n,r,i),C(t,o,a,i,!0)),e.text=p,t.text=h}function C(e,t,n,o,i){return T(e,t,o,i),n&&G.extend(e,n),e.host&&e.host.dirty&&e.host.dirty(!1),e}function A(e,t,n){var o,i={isRectText:!0};!1===n?o=!0:i.autoColor=n,T(e,t,i,o),e.host&&e.host.dirty&&e.host.dirty(!1)}function T(e,t,n,o){if(n=n||ve,n.isRectText){var i=t.getShallow("position")||(o?null:"inside");"outside"===i&&(i="top"),e.textPosition=i,e.textOffset=t.getShallow("offset");var r=t.getShallow("rotate");null!=r&&(r*=Math.PI/180),e.textRotation=r,e.textDistance=G.retrieve2(t.getShallow("distance"),o?null:5)}var a,l=t.ecModel,s=l&&l.option.textStyle,c=E(t);if(c){a={};for(var u in c)if(c.hasOwnProperty(u)){var d=t.getModel(["rich",u]);I(a[u]={},d,s,n,o)}}return e.rich=a,I(e,t,s,n,o,!0),n.forceRich&&!n.textStyle&&(n.textStyle={}),e}function E(e){for(var t;e&&e!==e.ecModel;){var n=(e.option||ve).rich;if(n){t=t||{};for(var o in n)n.hasOwnProperty(o)&&(t[o]=1)}e=e.parentModel}return t}function I(e,t,n,o,i,r){if(n=!i&&n||ve,e.textFill=O(t.getShallow("color"),o)||n.color,e.textStroke=O(t.getShallow("textBorderColor"),o)||n.textBorderColor,e.textStrokeWidth=G.retrieve2(t.getShallow("textBorderWidth"),n.textBorderWidth),!i){if(r){var a=e.textPosition;e.insideRollback=L(e,a,o),e.insideOriginalTextPosition=a,e.insideRollbackOpt=o}null==e.textFill&&(e.textFill=o.autoColor)}e.fontStyle=t.getShallow("fontStyle")||n.fontStyle,e.fontWeight=t.getShallow("fontWeight")||n.fontWeight,e.fontSize=t.getShallow("fontSize")||n.fontSize,e.fontFamily=t.getShallow("fontFamily")||n.fontFamily,e.textAlign=t.getShallow("align"),e.textVerticalAlign=t.getShallow("verticalAlign")||t.getShallow("baseline"),e.textLineHeight=t.getShallow("lineHeight"),e.textWidth=t.getShallow("width"),e.textHeight=t.getShallow("height"),e.textTag=t.getShallow("tag"),r&&o.disableBox||(e.textBackgroundColor=O(t.getShallow("backgroundColor"),o),e.textPadding=t.getShallow("padding"),e.textBorderColor=O(t.getShallow("borderColor"),o),e.textBorderWidth=t.getShallow("borderWidth"),e.textBorderRadius=t.getShallow("borderRadius"),e.textBoxShadowColor=t.getShallow("shadowColor"),e.textBoxShadowBlur=t.getShallow("shadowBlur"),e.textBoxShadowOffsetX=t.getShallow("shadowOffsetX"),e.textBoxShadowOffsetY=t.getShallow("shadowOffsetY")),e.textShadowColor=t.getShallow("textShadowColor")||n.textShadowColor,e.textShadowBlur=t.getShallow("textShadowBlur")||n.textShadowBlur,e.textShadowOffsetX=t.getShallow("textShadowOffsetX")||n.textShadowOffsetX,e.textShadowOffsetY=t.getShallow("textShadowOffsetY")||n.textShadowOffsetY}function O(e,t){return"auto"!==e?e:t&&t.autoColor?t.autoColor:null}function L(e,t,n){var o,i=n.useInsideStyle;return null==e.textFill&&!1!==i&&(!0===i||n.isRectText&&t&&"string"==typeof t&&t.indexOf("inside")>=0)&&(o={textFill:null,textStroke:e.textStroke,textStrokeWidth:e.textStrokeWidth},e.textFill="#fff",null==e.textStroke&&(e.textStroke=n.autoColor,null==e.textStrokeWidth&&(e.textStrokeWidth=2))),o}function P(e){var t=e.insideRollback;t&&(e.textFill=t.textFill,e.textStroke=t.textStroke,e.textStrokeWidth=t.textStrokeWidth)}function D(e,t){var n=t||t.getModel("textStyle");return[e.fontStyle||n&&n.getShallow("fontStyle")||"",e.fontWeight||n&&n.getShallow("fontWeight")||"",(e.fontSize||n&&n.getShallow("fontSize")||12)+"px",e.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" ")}function z(e,t,n,o,i,r){if("function"==typeof i&&(r=i,i=null),o&&o.isAnimationEnabled()){var a=e?"Update":"",l=o.getShallow("animationDuration"+a),s=o.getShallow("animationEasing"+a),c=o.getShallow("animationDelay"+a);"function"==typeof c&&(c=c(i,o.getAnimationDelayParams?o.getAnimationDelayParams(t,i):null)),"function"==typeof l&&(l=l(i)),l>0?t.animateTo(n,l,c||0,s,r,!!r):(t.stopAnimation(),t.attr(n),r&&r())}else t.stopAnimation(),t.attr(n),r&&r()}function R(e,t,n,o,i){z(!0,e,t,n,o,i)}function N(e,t,n,o,i){z(!1,e,t,n,o,i)}function B(e,t){for(var n=Y.identity([]);e&&e!==t;)Y.mul(n,e.getLocalTransform(),n),e=e.parent;return n}function F(e,t,n){return t&&!G.isArrayLike(t)&&(t=K.getLocalTransform(t)),n&&(t=Y.invert([],t)),Z.applyTransform([],e,t)}function V(e,t,n){var o=0===t[4]||0===t[5]||0===t[0]?1:Math.abs(2*t[4]/t[0]),i=0===t[4]||0===t[5]||0===t[2]?1:Math.abs(2*t[4]/t[2]),r=["left"===e?-o:"right"===e?o:0,"top"===e?-i:"bottom"===e?i:0];return r=F(r,t,n),Math.abs(r[0])>Math.abs(r[1])?r[0]>0?"right":"left":r[1]>0?"bottom":"top"}function j(e,t,n,o){function i(e){var t={position:Z.clone(e.position),rotation:e.rotation};return e.shape&&(t.shape=G.extend({},e.shape)),t}if(e&&t){var r=function(e){var t={};return e.traverse(function(e){!e.isGroup&&e.anid&&(t[e.anid]=e)}),t}(e);t.traverse(function(e){if(!e.isGroup&&e.anid){var t=r[e.anid];if(t){var o=i(e);e.attr(i(t)),R(e,o,n,e.dataIndex)}}})}}function $(e,t){return G.map(e,function(e){var n=e[0];n=ge(n,t.x),n=me(n,t.x+t.width);var o=e[1];return o=ge(o,t.y),o=me(o,t.y+t.height),[n,o]})}function H(e,t){var n=ge(e.x,t.x),o=me(e.x+e.width,t.x+t.width),i=ge(e.y,t.y),r=me(e.y+e.height,t.y+t.height);if(o>=n&&r>=i)return{x:n,y:i,width:o-n,height:r-i}}function W(e,t,n){t=G.extend({rectHover:!0},t);var o=t.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},e)return 0===e.indexOf("image://")?(o.image=e.slice(8),G.defaults(o,n),new J(t)):r(e.replace("path://",""),t,n,"center")}var G=n(0),U=n(692),q=n(32),Y=n(24),Z=n(7),X=n(16),K=n(136),J=n(73);t.Image=J;var Q=n(96);t.Group=Q;var ee=n(74);t.Text=ee;var te=n(679);t.Circle=te;var ne=n(685);t.Sector=ne;var oe=n(684);t.Ring=oe;var ie=n(681);t.Polygon=ie;var re=n(682);t.Polyline=re;var ae=n(683);t.Rect=ae;var le=n(680);t.Line=le;var se=n(678);t.BezierCurve=se;var ce=n(677);t.Arc=ce;var ue=n(673);t.CompoundPath=ue;var de=n(246);t.LinearGradient=de;var fe=n(674);t.RadialGradient=fe;var pe=n(10);t.BoundingRect=pe;var he=Math.round,ge=Math.max,me=Math.min,ve={},be=U.mergePath;t.extendShape=o,t.extendPath=i,t.makePath=r,t.makeImage=a,t.mergePath=be,t.resizePath=s,t.subPixelOptimizeLine=c,t.subPixelOptimizeRect=u,t.subPixelOptimize=d,t.setHoverStyle=S,t.setLabelStyle=M,t.setTextStyle=C,t.setText=A,t.getFont=D,t.updateProps=R,t.initProps=N,t.getTransform=B,t.applyTransform=F,t.transformDirection=V,t.groupTransition=j,t.clipPointsByRect=$,t.clipRectByRect=H,t.createIcon=W},function(e,t,n){function o(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function i(e,t,n,o){var i=t[1]-t[0],r=n[1]-n[0];if(0===i)return 0===r?n[0]:(n[0]+n[1])/2;if(o)if(i>0){if(e<=t[0])return n[0];if(e>=t[1])return n[1]}else{if(e>=t[0])return n[0];if(e<=t[1])return n[1]}else{if(e===t[0])return n[0];if(e===t[1])return n[1]}return(e-t[0])/i*r+n[0]}function r(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%"}return"string"==typeof e?o(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):null==e?NaN:+e}function a(e,t,n){return null==t&&(t=10),t=Math.min(Math.max(0,t),20),e=(+e).toFixed(t),n?e:+e}function l(e){return e.sort(function(e,t){return e-t}),e}function s(e){if(e=+e,isNaN(e))return 0;for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n++;return n}function c(e){var t=e.toString(),n=t.indexOf("e");if(n>0){var o=+t.slice(n+1);return o<0?-o:0}var i=t.indexOf(".");return i<0?0:t.length-1-i}function u(e,t){var n=Math.log,o=Math.LN10,i=Math.floor(n(e[1]-e[0])/o),r=Math.round(n(Math.abs(t[1]-t[0]))/o),a=Math.min(Math.max(-i+r,0),20);return isFinite(a)?a:20}function d(e,t,n){if(!e[t])return 0;var o=y.reduce(e,function(e,t){return e+(isNaN(t)?0:t)},0);if(0===o)return 0;for(var i=Math.pow(10,n),r=y.map(e,function(e){return(isNaN(e)?0:e)/o*i*100}),a=100*i,l=y.map(r,function(e){return Math.floor(e)}),s=y.reduce(l,function(e,t){return e+t},0),c=y.map(r,function(e,t){return e-l[t]});su&&(u=c[f],d=f);++l[d],c[d]=0,++s}return l[t]/i}function f(e){var t=2*Math.PI;return(e%t+t)%t}function p(e){return e>-_&&e<_}function h(e){if(e instanceof Date)return e;if("string"==typeof e){var t=w.exec(e);if(!t)return new Date(NaN);if(t[8]){var n=+t[4]||0;return"Z"!==t[8].toUpperCase()&&(n-=t[8].slice(0,3)),new Date(Date.UTC(+t[1],+(t[2]||1)-1,+t[3]||1,n,+(t[5]||0),+t[6]||0,+t[7]||0))}return new Date(+t[1],+(t[2]||1)-1,+t[3]||1,+t[4]||0,+(t[5]||0),+t[6]||0,+t[7]||0)}return null==e?new Date(NaN):new Date(Math.round(e))}function g(e){return Math.pow(10,m(e))}function m(e){return Math.floor(Math.log(e)/Math.LN10)}function v(e,t){var n,o=m(e),i=Math.pow(10,o),r=e/i;return n=t?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10,e=n*i,o>=-20?+e.toFixed(o<0?-o:0):e}function b(e){function t(e,n,o){return e.interval[o]=0}var y=n(0),_=1e-4,w=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;t.linearMap=i,t.parsePercent=r,t.round=a,t.asc=l,t.getPrecision=s,t.getPrecisionSafe=c,t.getPixelPrecision=u,t.getPercentWithPrecision=d,t.MAX_SAFE_INTEGER=9007199254740991,t.remRadian=f,t.isRadianAroundZero=p,t.parseDate=h,t.quantity=g,t.nice=v,t.reformIntervals=b,t.isNumeric=x},function(e,t,n){(function(e){var n;"undefined"!=typeof window?n=window.__DEV__:void 0!==e&&(n=e.__DEV__),void 0===n&&(n=!0);var o=n;t.__DEV__=o}).call(t,n(48))},function(e,t,n){function o(e){return e instanceof Array?e:null==e?[]:[e]}function i(e,t){if(e)for(var n=e.emphasis=e.emphasis||{},o=e.normal=e.normal||{},i=0,r=t.length;i=n.length&&n.push({option:e})}}),n}function u(e){var t=x.createHashMap();k(e,function(e,n){var o=e.exist;o&&t.set(o.id,e)}),k(e,function(e,n){var o=e.option;x.assert(!o||null==o.id||!t.get(o.id)||t.get(o.id)===e,"id duplicates: "+(o&&o.id)),o&&null!=o.id&&t.set(o.id,e),!e.keyInfo&&(e.keyInfo={})}),k(e,function(e,n){var o=e.exist,i=e.option,r=e.keyInfo;if(S(i)){if(r.name=null!=i.name?i.name+"":o?o.name:"\0-",o)r.id=o.id;else if(null!=i.id)r.id=i.id+"";else{var a=0;do{r.id="\0"+r.name+"\0"+a++}while(t.get(r.id))}t.set(r.id,e)}})}function d(e){return S(e)&&e.id&&0===(e.id+"").indexOf("\0_ec_\0")}function f(e,t){function n(e,t,n){for(var i=0,r=e.length;io||s.newline?(r=0,u=m,a+=l+n,l=p.height):l=Math.max(l,p.height)}else{var v=p.height+(g?-g.y+p.y:0);d=a+v,d>i||s.newline?(r+=l+n,a=0,d=v,l=p.width):l=Math.max(l,p.width)}s.newline||(f[0]=r,f[1]=a,"horizontal"===e?r=u+n:a=d+n)})}function i(e,t,n){var o=t.width,i=t.height,r=h(e.x,o),a=h(e.y,i),l=h(e.x2,o),s=h(e.y2,i);return(isNaN(r)||isNaN(parseFloat(e.x)))&&(r=0),(isNaN(l)||isNaN(parseFloat(e.x2)))&&(l=o),(isNaN(a)||isNaN(parseFloat(e.y)))&&(a=0),(isNaN(s)||isNaN(parseFloat(e.y2)))&&(s=i),n=g.normalizeCssArray(n||0),{width:Math.max(l-r-n[1]-n[3],0),height:Math.max(s-a-n[0]-n[2],0)}}function r(e,t,n){n=g.normalizeCssArray(n||0);var o=t.width,i=t.height,r=h(e.left,o),a=h(e.top,i),l=h(e.right,o),s=h(e.bottom,i),c=h(e.width,o),u=h(e.height,i),d=n[2]+n[0],p=n[1]+n[3],m=e.aspect;switch(isNaN(c)&&(c=o-l-p-r),isNaN(u)&&(u=i-s-d-a),null!=m&&(isNaN(c)&&isNaN(u)&&(m>o/i?c=.8*o:u=.8*i),isNaN(c)&&(c=m*u),isNaN(u)&&(u=c/m)),isNaN(r)&&(r=o-l-c-p),isNaN(a)&&(a=i-s-u-d),e.left||e.right){case"center":r=o/2-c/2-n[3];break;case"right":r=o-c-p}switch(e.top||e.bottom){case"middle":case"center":a=i/2-u/2-n[0];break;case"bottom":a=i-u-d}r=r||0,a=a||0,isNaN(c)&&(c=o-p-r-(l||0)),isNaN(u)&&(u=i-d-a-(s||0));var v=new f(r+n[3],a+n[0],c,u);return v.margin=n,v}function a(e,t,n,o,i){var a=!i||!i.hv||i.hv[0],l=!i||!i.hv||i.hv[1],s=i&&i.boundingMode||"all";if(a||l){var c;if("raw"===s)c="group"===e.type?new f(0,0,+t.width||0,+t.height||0):e.getBoundingRect();else if(c=e.getBoundingRect(),e.needLocalTransform()){var u=e.getLocalTransform();c=c.clone(),c.applyTransform(u)}t=r(d.defaults({width:c.width,height:c.height},t),n,o);var p=e.position,h=a?t.x-c.x:0,g=l?t.y-c.y:0;e.attr("position","raw"===s?[h,g]:[p[0]+h,p[1]+g])}}function l(e,t){return null!=e[b[t][0]]||null!=e[b[t][1]]&&null!=e[b[t][2]]}function s(e,t,n){function o(n,o){var a={},s=0,c={},u=0;if(m(n,function(t){c[t]=e[t]}),m(n,function(e){i(t,e)&&(a[e]=c[e]=t[e]),r(a,e)&&s++,r(c,e)&&u++}),l[o])return r(t,n[1])?c[n[2]]=null:r(t,n[2])&&(c[n[1]]=null),c;if(2!==u&&s){if(s>=2)return a;for(var d=0;d1?"."+e[1]:""))}function i(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(e,t){return t.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}function r(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function a(e,t,n){d.isArray(t)||(t=[t]);var o=t.length;if(!o)return"";for(var i=t[0].$vars||[],a=0;a':""}function c(e,t,n){"week"!==e&&"month"!==e&&"quarter"!==e&&"half-year"!==e&&"year"!==e||(e="MM-dd\nyyyy");var o=p.parseDate(t),i=n?"UTC":"",r=o["get"+i+"FullYear"](),a=o["get"+i+"Month"]()+1,l=o["get"+i+"Date"](),s=o["get"+i+"Hours"](),c=o["get"+i+"Minutes"](),u=o["get"+i+"Seconds"]();return e=e.replace("MM",v(a)).replace("M",a).replace("yyyy",r).replace("yy",r%100).replace("dd",v(l)).replace("d",l).replace("hh",v(s)).replace("h",s).replace("mm",v(c)).replace("m",c).replace("ss",v(u)).replace("s",u)}function u(e){return e?e.charAt(0).toUpperCase()+e.substr(1):e}var d=n(0),f=n(27),p=n(3),h=d.normalizeCssArray,g=["a","b","c","d","e","f","g"],m=function(e,t){return"{"+e+(null==t?"":t)+"}"},v=function(e){return e<10?"0"+e:e},b=f.truncateText,x=f.getBoundingRect;t.addCommas=o,t.toCamelCase=i,t.normalizeCssArray=h,t.encodeHTML=r,t.formatTpl=a,t.formatTplSimple=l,t.getTooltipMarker=s,t.formatTime=c,t.capitalFirst=u,t.truncateText=b,t.getTextRect=x},function(e,t,n){var o=n(341);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){function o(e,t,n,o){n<0&&(e+=n,n=-n),o<0&&(t+=o,o=-o),this.x=e,this.y=t,this.width=n,this.height=o}var i=n(7),r=n(24),a=i.applyTransform,l=Math.min,s=Math.max;o.prototype={constructor:o,union:function(e){var t=l(e.x,this.x),n=l(e.y,this.y);this.width=s(e.x+e.width,this.x+this.width)-t,this.height=s(e.y+e.height,this.y+this.height)-n,this.x=t,this.y=n},applyTransform:function(){var e=[],t=[],n=[],o=[];return function(i){if(i){e[0]=n[0]=this.x,e[1]=o[1]=this.y,t[0]=o[0]=this.x+this.width,t[1]=n[1]=this.y+this.height,a(e,e,i),a(t,t,i),a(n,n,i),a(o,o,i),this.x=l(e[0],t[0],n[0],o[0]),this.y=l(e[1],t[1],n[1],o[1]);var r=s(e[0],t[0],n[0],o[0]),c=s(e[1],t[1],n[1],o[1]);this.width=r-this.x,this.height=c-this.y}}}(),calculateTransform:function(e){var t=this,n=e.width/t.width,o=e.height/t.height,i=r.create();return r.translate(i,i,[-t.x,-t.y]),r.scale(i,i,[n,o]),r.translate(i,i,[e.x,e.y]),i},intersect:function(e){if(!e)return!1;e instanceof o||(e=o.create(e));var t=this,n=t.x,i=t.x+t.width,r=t.y,a=t.y+t.height,l=e.x,s=e.x+e.width,c=e.y,u=e.y+e.height;return!(i=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height},clone:function(){return new o(this.x,this.y,this.width,this.height)},copy:function(e){this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},o.create=function(e){return new o(e.x,e.y,e.width,e.height)};var c=o;e.exports=c},function(e,t,n){"use strict";function o(){for(var e=arguments.length,t=Array(e),n=0;n=r)return e;switch(e){case"%s":return String(t[o++]);case"%d":return Number(t[o++]);case"%j":try{return JSON.stringify(t[o++])}catch(e){return"[Circular]"}break;default:return e}}),l=t[o];o=0?r[c]=new u.constructor(a[c].length):r[c]=a[c]}return i}var l=n(4),s=(l.__DEV__,n(0)),c=n(12),u=n(56),d=n(5),f=s.isObject,p="undefined"==typeof window?t:window,h={float:void 0===p.Float64Array?Array:p.Float64Array,int:void 0===p.Int32Array?Array:p.Int32Array,ordinal:Array,number:Array,time:Array},g=["stackedOn","hasItemOption","_nameList","_idList","_rawData"];i.prototype.pure=!1,i.prototype.count=function(){return this._array.length},i.prototype.getItem=function(e){return this._array[e]};var m=function(e,t){e=e||["x","y"];for(var n={},o=[],i=0;i0&&(k+="__ec__"+p[w]),p[w]++),k&&(f[g]=k)}this._nameList=t,this._idList=f},v.count=function(){return this.indices.length},v.get=function(e,t,n){var o=this._storage,i=this.indices[t];if(null==i||!o[e])return NaN;var r=o[e][i];if(n){var a=this._dimensionInfos[e];if(a&&a.stackable)for(var l=this.stackedOn;l;){var s=l.get(e,t);(r>=0&&s>0||r<=0&&s<0)&&(r+=s),l=l.stackedOn}}return r},v.getValues=function(e,t,n){var o=[];s.isArray(e)||(n=t,t=e,e=this.dimensions);for(var i=0,r=e.length;is&&(s=r));return this._extent[e+!!t]=[l,s]}return[1/0,-1/0]},v.getSum=function(e,t){var n=this._storage[e],o=0;if(n)for(var i=0,r=this.count();ie))return r;i=r-1}}return-1},v.indicesOfNearest=function(e,t,n,o){var i=this._storage,r=i[e],a=[];if(!r)return a;null==o&&(o=1/0);for(var l=Number.MAX_VALUE,s=-1,c=0,u=this.count();c=0&&s<0)&&(l=f,s=d,a.length=0),a.push(c))}return a},v.getRawIndex=function(e){var t=this.indices[e];return null==t?-1:t},v.getRawDataItem=function(e){return this._rawData.getItem(this.getRawIndex(e))},v.getName=function(e){return this._nameList[this.indices[e]]||""},v.getId=function(e){return this._idList[this.indices[e]]||this.getRawIndex(e)+""},v.each=function(e,t,n,o){"function"==typeof e&&(o=n,n=t,t=e,e=[]),e=s.map(r(e),this.getDimension,this);var i=[],a=e.length,l=this.indices;o=o||this;for(var c=0;ch-g&&(f=h-g,u.length=f);for(var m=0;m=0;r--)o=i.merge(o,e[r],!0);l.set(this,"__defaultOption",o)}return l.get(this,"__defaultOption")},getReferringComponents:function(e){return this.ecModel.queryComponents({mainType:e,index:this.get(e+"Index",!0),id:this.get(e+"Id",!0)})}});l.enableClassManagement(d,{registerWhenExtend:!0}),a.enableSubTypeDefaulter(d),a.enableTopologicalTravel(d,o),i.mixin(d,c);var f=d;e.exports=f},function(e,t){var n={};n="undefined"==typeof navigator?{browser:{},os:{},node:!0,canvasSupported:!0,svgSupported:!0}:function(e){var t={},n={},o=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),r=e.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(e);return o&&(n.firefox=!0,n.version=o[1]),i&&(n.ie=!0,n.version=i[1]),r&&(n.edge=!0,n.version=r[1]),a&&(n.weChat=!0),{browser:n,os:t,node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!n.ie&&!n.edge,pointerEventsSupported:"onpointerdown"in window&&(n.edge||n.ie&&n.version>=11)}}(navigator.userAgent);var o=n;e.exports=o},function(e,t,n){function o(e){i.call(this,e),this.path=null}var i=n(97),r=n(0),a=n(61),l=n(669),s=n(247),c=s.prototype.getCanvasPattern,u=Math.abs,d=new a(!0);o.prototype={constructor:o,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(e,t){var n=this.style,o=this.path||d,i=n.hasStroke(),r=n.hasFill(),a=n.fill,l=n.stroke,s=r&&!!a.colorStops,u=i&&!!l.colorStops,f=r&&!!a.image,p=i&&!!l.image;if(n.bind(e,this,t),this.setTransform(e),this.__dirty){var h;s&&(h=h||this.getBoundingRect(),this._fillGradient=n.getGradient(e,a,h)),u&&(h=h||this.getBoundingRect(),this._strokeGradient=n.getGradient(e,l,h))}s?e.fillStyle=this._fillGradient:f&&(e.fillStyle=c.call(a,e)),u?e.strokeStyle=this._strokeGradient:p&&(e.strokeStyle=c.call(l,e));var g=n.lineDash,m=n.lineDashOffset,v=!!e.setLineDash,b=this.getGlobalScale();o.setScale(b[0],b[1]),this.__dirtyPath||g&&!v&&i?(o.beginPath(e),g&&!v&&(o.setLineDash(g),o.setLineDashOffset(m)),this.buildPath(o,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(e.beginPath(),this.path.rebuildPath(e)),r&&o.fill(e),g&&v&&(e.setLineDash(g),e.lineDashOffset=m),i&&o.stroke(e),g&&v&&e.setLineDash([]),this.restoreTransform(e),null!=n.text&&this.drawRectText(e,this.getBoundingRect())},buildPath:function(e,t,n){},createPathProxy:function(){this.path=new a},getBoundingRect:function(){var e=this._rect,t=this.style,n=!e;if(n){var o=this.path;o||(o=this.path=new a),this.__dirtyPath&&(o.beginPath(),this.buildPath(o,this.shape,!1)),e=o.getBoundingRect()}if(this._rect=e,t.hasStroke()){var i=this._rectWithStroke||(this._rectWithStroke=e.clone());if(this.__dirty||n){i.copy(e);var r=t.lineWidth,l=t.strokeNoScale?this.getLineScale():1;t.hasFill()||(r=Math.max(r,this.strokeContainThreshold||4)),l>1e-10&&(i.width+=r/l,i.height+=r/l,i.x-=r/l/2,i.y-=r/l/2)}return i}return e},contain:function(e,t){var n=this.transformCoordToLocal(e,t),o=this.getBoundingRect(),i=this.style;if(e=n[0],t=n[1],o.contain(e,t)){var r=this.path.data;if(i.hasStroke()){var a=i.lineWidth,s=i.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(i.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),l.containStroke(r,a/s,e,t)))return!0}if(i.hasFill())return l.contain(r,e,t)}return!1},dirty:function(e){null==e&&(e=!0),e&&(this.__dirtyPath=e,this._rect=null),this.__dirty=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(e){return this.animate("shape",e)},attrKV:function(e,t){"shape"===e?(this.setShape(t),this.__dirtyPath=!0,this._rect=null):i.prototype.attrKV.call(this,e,t)},setShape:function(e,t){var n=this.shape;if(n){if(r.isObject(e))for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);else n[e]=t;this.dirty(!0)}return this},getLineScale:function(){var e=this.transform;return e&&u(e[0]-1)>1e-10&&u(e[3]-1)>1e-10?Math.sqrt(u(e[0]*e[3]-e[2]*e[1])):1}},o.extend=function(e){var t=function(t){o.call(this,t),e.style&&this.style.extendFrom(e.style,!1);var n=e.shape;if(n){this.shape=this.shape||{};var i=this.shape;for(var r in n)!i.hasOwnProperty(r)&&n.hasOwnProperty(r)&&(i[r]=n[r])}e.init&&e.init.call(this,t)};r.inherits(t,o);for(var n in e)"style"!==n&&"shape"!==n&&(t.prototype[n]=e[n]);return t},r.inherits(o,i);var f=o;e.exports=f},function(e,t,n){(function(t){function n(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t){var r=o(i);return[n].concat(i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"})).concat([r]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+new t(JSON.stringify(e)).toString("base64")+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=n(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var o={},i=0;i":"")+u.join(a?"
":", ")}(r):s(c(r)),d=o.getName(e),f=o.getItemVisual(e,"color");i.isObject(f)&&f.colorStops&&(f=(f.colorStops[0]||{}).color),f=f||"transparent";var g=u(f),m=this.name;return"\0-"===m&&(m=""),m=m?s(m)+(t?": ":"
"):"",t?g+m+a:m+g+(d?s(d)+": "+a:a)},isAnimationEnabled:function(){if(r.node)return!1;var e=this.getShallow("animation");return e&&this.getData().count()>this.getShallow("animationThreshold")&&(e=!1),e},restoreData:function(){f(this,"data",p(this,"dataBeforeProcessed").cloneShallow())},getColorFromPalette:function(e,t){var n=this.ecModel,o=m.getColorFromPalette.call(this,e,t);return o||(o=n.getColorFromPalette(e,t)),o},getAxisTooltipData:null,getTooltipPosition:null});i.mixin(y,h.dataFormatMixin),i.mixin(y,m);var _=y;e.exports=_},function(e,t){function n(e,t){for(var n=0;n=0&&b.splice(t,1)}function a(e){var t=document.createElement("style");return t.type="text/css",i(e,t),t}function l(e){var t=document.createElement("link");return t.rel="stylesheet",i(e,t),t}function s(e,t){var n,o,i;if(t.singleton){var s=v++;n=m||(m=a(t)),o=c.bind(null,n,s,!1),i=c.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(t),o=d.bind(null,n),i=function(){r(n),n.href&&URL.revokeObjectURL(n.href)}):(n=a(t),o=u.bind(null,n),i=function(){r(n)});return o(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;o(e=t)}else i()}}function c(e,t,n,o){var i=n?"":o.css;if(e.styleSheet)e.styleSheet.cssText=x(t,i);else{var r=document.createTextNode(i),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(r,a[t]):e.appendChild(r)}}function u(e,t){var n=t.css,o=t.media;if(o&&e.setAttribute("media",o),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function d(e,t){var n=t.css,o=t.sourceMap;o&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var i=new Blob([n],{type:"text/css"}),r=e.href;e.href=URL.createObjectURL(i),r&&URL.revokeObjectURL(r)}var f={},p=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}},h=p(function(){return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase())}),g=p(function(){return document.head||document.getElementsByTagName("head")[0]}),m=null,v=0,b=[];e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");t=t||{},void 0===t.singleton&&(t.singleton=h()),void 0===t.insertAt&&(t.insertAt="bottom");var i=o(e);return n(i,t),function(e){for(var r=[],a=0;a=0&&Math.floor(t)===t&&isFinite(e)}function f(e){return i(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function p(e){return null==e?"":Array.isArray(e)||c(e)&&e.toString===Mr?JSON.stringify(e,null,2):String(e)}function h(e){var t=parseFloat(e);return isNaN(t)?e:t}function g(e,t){for(var n=Object.create(null),o=e.split(","),i=0;i-1)return e.splice(n,1)}}function v(e,t){return Tr.call(e,t)}function b(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}function x(e,t){function n(n){var o=arguments.length;return o?o>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function y(e,t){return e.bind(t)}function _(e,t){t=t||0;for(var n=e.length-t,o=new Array(n);n--;)o[n]=e[n+t];return o}function w(e,t){for(var n in t)e[n]=t[n];return e}function k(e){for(var t={},n=0;n-1)if(r&&!v(i,"default"))a=!1;else if(""===a||a===Pr(e)){var s=ie(String,i.type);(s<0||l0&&(a=_e(a,(t||"")+"_"+n),ye(a[0])&&ye(c)&&(u[s]=D(c.text+a[0].text),a.shift()),u.push.apply(u,a)):l(a)?ye(c)?u[s]=D(c.text+a):""!==a&&u.push(D(a)):ye(a)&&ye(c)?u[s]=D(c.text+a.text):(r(e._isVList)&&i(a.tag)&&o(a.key)&&i(t)&&(a.key="__vlist"+t+"_"+n+"__"),u.push(a)));return u}function we(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}function ke(e){var t=Se(e.$options.inject,e);t&&(R(!1),Object.keys(t).forEach(function(n){V(e,n,t[n])}),R(!0))}function Se(e,t){if(e){for(var n=Object.create(null),o=aa?Reflect.ownKeys(e):Object.keys(e),i=0;i0,r=e?!!e.$stable:!i,a=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(r&&n&&n!==Sr&&a===n.$key&&!i&&!n.$hasNormal)return n;o={};for(var l in e)e[l]&&"$"!==l[0]&&(o[l]=Te(t,l,e[l]))}else o={};for(var s in t)s in o||(o[s]=Ee(t,s));return e&&Object.isExtensible(e)&&(e._normalized=o),E(o,"$stable",r),E(o,"$key",a),E(o,"$hasNormal",i),o}function Te(e,t,n){var o=function(){var e=arguments.length?n.apply(null,arguments):n({});return e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:xe(e),e&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:o,enumerable:!0,configurable:!0}),o}function Ee(e,t){return function(){return e[t]}}function Ie(e,t){var n,o,r,a,l;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),o=0,r=e.length;oHa&&Ba[n].id>e.id;)n--;Ba.splice(n+1,0,e)}else Ba.push(e);ja||(ja=!0,ue(St))}}function Et(e,t,n){Za.get=function(){return this[t][n]},Za.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Za)}function It(e){e._watchers=[];var t=e.$options;t.props&&Ot(e,t.props),t.methods&&Bt(e,t.methods),t.data?Lt(e):F(e._data={},!0),t.computed&&Dt(e,t.computed),t.watch&&t.watch!==Qr&&Ft(e,t.watch)}function Ot(e,t){var n=e.$options.propsData||{},o=e._props={},i=e.$options._propKeys=[];!e.$parent||R(!1);for(var r in t)!function(r){i.push(r);var a=ee(r,t,n,e);V(o,r,a),r in e||Et(e,"_props",r)}(r);R(!0)}function Lt(e){var t=e.$options.data;t=e._data="function"==typeof t?Pt(t,e):t||{},c(t)||(t={});for(var n=Object.keys(t),o=e.$options.props,i=(e.$options.methods,n.length);i--;){var r=n[i];o&&v(o,r)||T(r)||Et(e,"_data",r)}F(t,!0)}function Pt(e,t){L();try{return e.call(t,t)}catch(e){return re(e,t,"data()"),{}}finally{P()}}function Dt(e,t){var n=e._computedWatchers=Object.create(null),o=ia();for(var i in t){var r=t[i],a="function"==typeof r?r:r.get;o||(n[i]=new Ya(e,a||S,S,Xa)),i in e||zt(e,i,r)}}function zt(e,t,n){var o=!ia();"function"==typeof n?(Za.get=o?Rt(t):Nt(n),Za.set=S):(Za.get=n.get?o&&!1!==n.cache?Rt(t):Nt(n.get):S,Za.set=n.set||S),Object.defineProperty(e,t,Za)}function Rt(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),ca.target&&t.depend(),t.value}}function Nt(e){return function(){return e.call(this,this)}}function Bt(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?S:Dr(t[n],e)}function Ft(e,t){for(var n in t){var o=t[n];if(Array.isArray(o))for(var i=0;i-1)return this;var n=_(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}function Ut(e){e.mixin=function(e){return this.options=J(this.options,e),this}}function qt(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,o=n.cid,i=e._Ctor||(e._Ctor={});if(i[o])return i[o];var r=e.name||n.options.name,a=function(e){this._init(e)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=t++,a.options=J(n.options,e),a.super=n,a.options.props&&Yt(a),a.options.computed&&Zt(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,Br.forEach(function(e){a[e]=n[e]}),r&&(a.options.components[r]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=w({},a.options),i[o]=a,a}}function Yt(e){var t=e.options.props;for(var n in t)Et(e.prototype,"_props",n)}function Zt(e){var t=e.options.computed;for(var n in t)zt(e.prototype,n,t[n])}function Xt(e){Br.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&c(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}function Kt(e){return e&&(e.Ctor.options.name||e.tag)}function Jt(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!u(e)&&e.test(t)}function Qt(e,t){var n=e.cache,o=e.keys,i=e._vnode;for(var r in n){var a=n[r];if(a){var l=Kt(a.componentOptions);l&&!t(l)&&en(n,r,o,i)}}}function en(e,t,n,o){var i=e[t];!i||o&&i.tag===o.tag||i.componentInstance.$destroy(),e[t]=null,m(n,t)}function tn(e){for(var t=e.data,n=e,o=e;i(o.componentInstance);)(o=o.componentInstance._vnode)&&o.data&&(t=nn(o.data,t));for(;i(n=n.parent);)n&&n.data&&(t=nn(t,n.data));return on(t.staticClass,t.class)}function nn(e,t){return{staticClass:rn(e.staticClass,t.staticClass),class:i(e.class)?[e.class,t.class]:t.class}}function on(e,t){return i(e)||i(t)?rn(e,an(t)):""}function rn(e,t){return e?t?e+" "+t:e:t||""}function an(e){return Array.isArray(e)?ln(e):s(e)?sn(e):"string"==typeof e?e:""}function ln(e){for(var t,n="",o=0,r=e.length;o-1?Al[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Al[e]=/HTMLUnknownElement/.test(t.toString())}function dn(e){if("string"==typeof e){return document.querySelector(e)||document.createElement("div")}return e}function fn(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function pn(e,t){return document.createElementNS(wl[e],t)}function hn(e){return document.createTextNode(e)}function gn(e){return document.createComment(e)}function mn(e,t,n){e.insertBefore(t,n)}function vn(e,t){e.removeChild(t)}function bn(e,t){e.appendChild(t)}function xn(e){return e.parentNode}function yn(e){return e.nextSibling}function _n(e){return e.tagName}function wn(e,t){e.textContent=t}function kn(e,t){e.setAttribute(t,"")}function Sn(e,t){var n=e.data.ref;if(i(n)){var o=e.context,r=e.componentInstance||e.elm,a=o.$refs;t?Array.isArray(a[n])?m(a[n],r):a[n]===r&&(a[n]=void 0):e.data.refInFor?Array.isArray(a[n])?a[n].indexOf(r)<0&&a[n].push(r):a[n]=[r]:a[n]=r}}function Mn(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&i(e.data)===i(t.data)&&Cn(e,t)||r(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&o(t.asyncFactory.error))}function Cn(e,t){if("input"!==e.tag)return!0;var n,o=i(n=e.data)&&i(n=n.attrs)&&n.type,r=i(n=t.data)&&i(n=n.attrs)&&n.type;return o===r||Tl(o)&&Tl(r)}function An(e,t,n){var o,r,a={};for(o=t;o<=n;++o)r=e[o].key,i(r)&&(a[r]=o);return a}function Tn(e,t){(e.data.directives||t.data.directives)&&En(e,t)}function En(e,t){var n,o,i,r=e===Ol,a=t===Ol,l=In(e.data.directives,e.context),s=In(t.data.directives,t.context),c=[],u=[];for(n in s)o=l[n],i=s[n],o?(i.oldValue=o.value,i.oldArg=o.arg,Ln(i,"update",t,e),i.def&&i.def.componentUpdated&&u.push(i)):(Ln(i,"bind",t,e),i.def&&i.def.inserted&&c.push(i));if(c.length){var d=function(){for(var n=0;n-1?zn(e,t,n):vl(t)?_l(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):hl(t)?e.setAttribute(t,ml(t,n)):xl(t)?_l(n)?e.removeAttributeNS(bl,yl(t)):e.setAttributeNS(bl,t,n):zn(e,t,n)}function zn(e,t,n){if(_l(n))e.removeAttribute(t);else{if(Yr&&!Zr&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var o=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",o)};e.addEventListener("input",o),e.__ieph=!0}e.setAttribute(t,n)}}function Rn(e,t){var n=t.elm,r=t.data,a=e.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var l=tn(t),s=n._transitionClasses;i(s)&&(l=rn(l,an(s))),l!==n._prevClass&&(n.setAttribute("class",l),n._prevClass=l)}}function Nn(e){function t(){(a||(a=[])).push(e.slice(h,i).trim()),h=i+1}var n,o,i,r,a,l=!1,s=!1,c=!1,u=!1,d=0,f=0,p=0,h=0;for(i=0;i=0&&" "===(m=e.charAt(g));g--);m&&Bl.test(m)||(u=!0)}}else void 0===r?(h=i+1,r=e.slice(0,i).trim()):t();if(void 0===r?r=e.slice(0,i).trim():0!==h&&t(),a)for(i=0;i-1?{exp:e.slice(0,il),key:'"'+e.slice(il+1)+'"'}:{exp:e,key:null};for(nl=e,il=rl=al=0;!no();)ol=to(),oo(ol)?ro(ol):91===ol&&io(ol);return{exp:e.slice(0,rl),key:e.slice(rl+1,al)}}function to(){return nl.charCodeAt(++il)}function no(){return il>=tl}function oo(e){return 34===e||39===e}function io(e){var t=1;for(rl=il;!no();)if(e=to(),oo(e))ro(e);else if(91===e&&t++,93===e&&t--,0===t){al=il;break}}function ro(e){for(var t=e;!no()&&(e=to())!==t;);}function ao(e,t,n){ll=n;var o=t.value,i=t.modifiers,r=e.tag,a=e.attrsMap.type;if(e.component)return Jn(e,o,i),!1;if("select"===r)co(e,o,i);else if("input"===r&&"checkbox"===a)lo(e,o,i);else if("input"===r&&"radio"===a)so(e,o,i);else if("input"===r||"textarea"===r)uo(e,o,i);else if(!Vr.isReservedTag(r))return Jn(e,o,i),!1;return!0}function lo(e,t,n){var o=n&&n.number,i=Yn(e,"value")||"null",r=Yn(e,"true-value")||"true",a=Yn(e,"false-value")||"false";jn(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1"+("true"===r?":("+t+")":":_q("+t+","+r+")")),Un(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+r+"):("+a+");if(Array.isArray($$a)){var $$v="+(o?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Qn(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Qn(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Qn(t,"$$c")+"}",null,!0)}function so(e,t,n){var o=n&&n.number,i=Yn(e,"value")||"null";i=o?"_n("+i+")":i,jn(e,"checked","_q("+t+","+i+")"),Un(e,"change",Qn(t,i),null,!0)}function co(e,t,n){var o=n&&n.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(o?"_n(val)":"val")+"})",r="var $$selectedVal = "+i+";";r=r+" "+Qn(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Un(e,"change",r,null,!0)}function uo(e,t,n){var o=e.attrsMap.type,i=n||{},r=i.lazy,a=i.number,l=i.trim,s=!r&&"range"!==o,c=r?"change":"range"===o?Fl:"input",u="$event.target.value";l&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var d=Qn(t,u);s&&(d="if($event.target.composing)return;"+d),jn(e,"value","("+t+")"),Un(e,c,d,null,!0),(l||a)&&Un(e,"blur","$forceUpdate()")}function fo(e){if(i(e[Fl])){var t=Yr?"change":"input";e[t]=[].concat(e[Fl],e[t]||[]),delete e[Fl]}i(e[Vl])&&(e.change=[].concat(e[Vl],e.change||[]),delete e[Vl])}function po(e,t,n){var o=sl;return function i(){null!==t.apply(null,arguments)&&go(e,i,n,o)}}function ho(e,t,n,o){if(jl){var i=Wa,r=t;t=r._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return r.apply(this,arguments)}}sl.addEventListener(e,t,ea?{capture:n,passive:o}:n)}function go(e,t,n,o){(o||sl).removeEventListener(e,t._wrapper||t,n)}function mo(e,t){if(!o(e.data.on)||!o(t.data.on)){var n=t.data.on||{},i=e.data.on||{};sl=t.elm,fo(n),he(n,i,ho,go,po,t.context),sl=void 0}}function vo(e,t){if(!o(e.data.domProps)||!o(t.data.domProps)){var n,r,a=t.elm,l=e.data.domProps||{},s=t.data.domProps||{};i(s.__ob__)&&(s=t.data.domProps=w({},s));for(n in l)n in s||(a[n]="");for(n in s){if(r=s[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===l[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var c=o(r)?"":String(r);bo(a,c)&&(a.value=c)}else if("innerHTML"===n&&Sl(a.tagName)&&o(a.innerHTML)){cl=cl||document.createElement("div"),cl.innerHTML=""+r+"";for(var u=cl.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;u.firstChild;)a.appendChild(u.firstChild)}else if(r!==l[n])try{a[n]=r}catch(e){}}}}function bo(e,t){return!e.composing&&("OPTION"===e.tagName||xo(e,t)||yo(e,t))}function xo(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}function yo(e,t){var n=e.value,o=e._vModifiers;if(i(o)){if(o.number)return h(n)!==h(t);if(o.trim)return n.trim()!==t.trim()}return n!==t}function _o(e){var t=wo(e.style);return e.staticStyle?w(e.staticStyle,t):t}function wo(e){return Array.isArray(e)?k(e):"string"==typeof e?Wl(e):e}function ko(e,t){var n,o={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=_o(i.data))&&w(o,n);(n=_o(e.data))&&w(o,n);for(var r=e;r=r.parent;)r.data&&(n=_o(r.data))&&w(o,n);return o}function So(e,t){var n=t.data,r=e.data;if(!(o(n.staticStyle)&&o(n.style)&&o(r.staticStyle)&&o(r.style))){var a,l,s=t.elm,c=r.staticStyle,u=r.normalizedStyle||r.style||{},d=c||u,f=wo(t.data.style)||{};t.data.normalizedStyle=i(f.__ob__)?w({},f):f;var p=ko(t,!0);for(l in d)o(p[l])&&ql(s,l,"");for(l in p)(a=p[l])!==d[l]&&ql(s,l,null==a?"":a)}}function Mo(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Kl).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Co(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Kl).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",o=" "+t+" ";n.indexOf(o)>=0;)n=n.replace(o," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function Ao(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&w(t,Jl(e.name||"v")),w(t,e),t}return"string"==typeof e?Jl(e):void 0}}function To(e){as(function(){as(e)})}function Eo(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Mo(e,t))}function Io(e,t){e._transitionClasses&&m(e._transitionClasses,t),Co(e,t)}function Oo(e,t,n){var o=Lo(e,t),i=o.type,r=o.timeout,a=o.propCount;if(!i)return n();var l=i===es?os:rs,s=0,c=function(){e.removeEventListener(l,u),n()},u=function(t){t.target===e&&++s>=a&&c()};setTimeout(function(){s0&&(n=es,u=a,d=r.length):t===ts?c>0&&(n=ts,u=c,d=s.length):(u=Math.max(a,c),n=u>0?a>c?es:ts:null,d=n?n===es?r.length:s.length:0),{type:n,timeout:u,propCount:d,hasTransform:n===es&&ls.test(o[ns+"Property"])}}function Po(e,t){for(;e.length1}function Fo(e,t){!0!==t.data.show&&zo(t)}function Vo(e,t,n){jo(e,t,n),(Yr||Xr)&&setTimeout(function(){jo(e,t,n)},0)}function jo(e,t,n){var o=t.value,i=e.multiple;if(!i||Array.isArray(o)){for(var r,a,l=0,s=e.options.length;l-1,a.selected!==r&&(a.selected=r);else if(M(Ho(a),o))return void(e.selectedIndex!==l&&(e.selectedIndex=l));i||(e.selectedIndex=-1)}}function $o(e,t){return t.every(function(t){return!M(t,e)})}function Ho(e){return"_value"in e?e._value:e.value}function Wo(e){e.target.composing=!0}function Go(e){e.target.composing&&(e.target.composing=!1,Uo(e.target,"input"))}function Uo(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function qo(e){return!e.componentInstance||e.data&&e.data.transition?e:qo(e.componentInstance._vnode)}function Yo(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Yo(ct(t.children)):e}function Zo(e){var t={},n=e.$options;for(var o in n.propsData)t[o]=e[o];var i=n._parentListeners;for(var r in i)t[Ir(r)]=i[r];return t}function Xo(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function Ko(e){for(;e=e.parent;)if(e.data.transition)return!0}function Jo(e,t){return t.key===e.key&&t.tag===e.tag}function Qo(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function ei(e){e.data.newPos=e.elm.getBoundingClientRect()}function ti(e){var t=e.data.pos,n=e.data.newPos,o=t.left-n.left,i=t.top-n.top;if(o||i){e.data.moved=!0;var r=e.elm.style;r.transform=r.WebkitTransform="translate("+o+"px,"+i+"px)",r.transitionDuration="0s"}}function ni(e,t){var n=t?Ns(t):zs;if(n.test(e)){for(var o,i,r,a=[],l=[],s=n.lastIndex=0;o=n.exec(e);){(i=o.index)>s&&(l.push(r=e.slice(s,i)),a.push(JSON.stringify(r)));var c=Nn(o[1].trim());a.push("_s("+c+")"),l.push({"@binding":c}),s=i+o[0].length}return s=0&&a[i].lowerCasedTag!==l;i--);else i=0;if(i>=0){for(var s=a.length-1;s>=i;s--)t.end&&t.end(a[s].tag,n,o);a.length=i,r=i&&a[i-1].tag}else"br"===l?t.start&&t.start(e,[],!0,n,o):"p"===l&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}for(var i,r,a=[],l=t.expectHTML,s=t.isUnaryTag||zr,c=t.canBeLeftOpenTag||zr,u=0;e;){if(i=e,r&&ec(r)){var d=0,f=r.toLowerCase(),p=tc[f]||(tc[f]=new RegExp("([\\s\\S]*?)(]*>)","i")),h=e.replace(p,function(e,n,o){return d=o.length,ec(f)||"noscript"===f||(n=n.replace(//g,"$1").replace(//g,"$1")),ac(f,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});u+=e.length-h.length,e=h,o(f,u-d,u)}else{var g=e.indexOf("<");if(0===g){if(Js.test(e)){var m=e.indexOf("--\x3e");if(m>=0){t.shouldKeepComment&&t.comment(e.substring(4,m),u,u+m+3),n(m+3);continue}}if(Qs.test(e)){var v=e.indexOf("]>");if(v>=0){n(v+2);continue}}var b=e.match(Ks);if(b){n(b[0].length);continue}var x=e.match(Xs);if(x){var y=u;n(x[0].length),o(x[1],y,u);continue}var _=function(){var t=e.match(Ys);if(t){var o={tagName:t[1],attrs:[],start:u};n(t[0].length);for(var i,r;!(i=e.match(Zs))&&(r=e.match(Gs)||e.match(Ws));)r.start=u,n(r[0].length),r.end=u,o.attrs.push(r);if(i)return o.unarySlash=i[1],n(i[0].length),o.end=u,o}}();if(_){!function(e){var n=e.tagName,i=e.unarySlash;l&&("p"===r&&Hs(n)&&o(r),c(n)&&r===n&&o(n));for(var u=s(n)||!!i,d=e.attrs.length,f=new Array(d),p=0;p=0){for(k=e.slice(g);!(Xs.test(k)||Ys.test(k)||Js.test(k)||Qs.test(k)||(S=k.indexOf("<",1))<0);)g+=S,k=e.slice(g);w=e.substring(0,g)}g<0&&(w=e),w&&n(w.length),t.chars&&w&&t.chars(w,u-w.length,u)}if(e===i){t.chars&&t.chars(e);break}}o()}function ci(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:Ii(t),rawAttrsMap:{},parent:n,children:[]}}function ui(e,t){function n(e){if(o(e),u||e.processed||(e=pi(e,t)),l.length||e===r||r.if&&(e.elseif||e.else)&&_i(r,{exp:e.elseif,block:e}),a&&!e.forbidden)if(e.elseif||e.else)xi(e,a);else{if(e.slotScope){var n=e.slotTarget||'"default"';(a.scopedSlots||(a.scopedSlots={}))[n]=e}a.children.push(e),e.parent=a}e.children=e.children.filter(function(e){return!e.slotScope}),o(e),e.pre&&(u=!1),Ts(e.tag)&&(d=!1);for(var i=0;i>>0}function sr(e){return 1===e.type&&("slot"===e.tag||e.children.some(sr))}function cr(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return er(e,t,cr,"null");if(e.for&&!e.forProcessed)return nr(e,t,cr);var o=e.slotScope===yc?"":String(e.slotScope),i="function("+o+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(ur(e,t)||"undefined")+":undefined":ur(e,t)||"undefined":Ki(e,t))+"}",r=o?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+r+"}"}function ur(e,t,n,o,i){var r=e.children;if(r.length){var a=r[0];if(1===r.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var l=n?t.maybeComponent(a)?",1":",0":"";return""+(o||Ki)(a,t)+l}var s=n?dr(r,t.maybeComponent):0,c=i||pr;return"["+r.map(function(e){return c(e,t)}).join(",")+"]"+(s?","+s:"")}}function dr(e,t){for(var n=0,o=0;o':'
',Ds.innerHTML.indexOf(" ")>0}function kr(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}var Sr=Object.freeze({}),Mr=Object.prototype.toString,Cr=g("slot,component",!0),Ar=g("key,ref,slot,slot-scope,is"),Tr=Object.prototype.hasOwnProperty,Er=/-(\w)/g,Ir=b(function(e){return e.replace(Er,function(e,t){return t?t.toUpperCase():""})}),Or=b(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),Lr=/\B([A-Z])/g,Pr=b(function(e){return e.replace(Lr,"-$1").toLowerCase()}),Dr=Function.prototype.bind?y:x,zr=function(e,t,n){return!1},Rr=function(e){return e},Nr="data-server-rendered",Br=["component","directive","filter"],Fr=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],Vr={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:zr,isReservedAttr:zr,isUnknownElement:zr,getTagNamespace:S,parsePlatformTagName:Rr,mustUseProp:zr,async:!0,_lifecycleHooks:Fr},jr=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/,$r=new RegExp("[^"+jr.source+".$_\\d]"),Hr="__proto__"in{},Wr="undefined"!=typeof window,Gr="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,Ur=Gr&&WXEnvironment.platform.toLowerCase(),qr=Wr&&window.navigator.userAgent.toLowerCase(),Yr=qr&&/msie|trident/.test(qr),Zr=qr&&qr.indexOf("msie 9.0")>0,Xr=qr&&qr.indexOf("edge/")>0,Kr=(qr&&qr.indexOf("android"),qr&&/iphone|ipad|ipod|ios/.test(qr)||"ios"===Ur),Jr=(qr&&/chrome\/\d+/.test(qr),qr&&/phantomjs/.test(qr),qr&&qr.match(/firefox\/(\d+)/)),Qr={}.watch,ea=!1;if(Wr)try{var ta={};Object.defineProperty(ta,"passive",{get:function(){ea=!0}}),window.addEventListener("test-passive",null,ta)}catch(e){}var na,oa,ia=function(){return void 0===na&&(na=!Wr&&!Gr&&void 0!==e&&e.process&&"server"===e.process.env.VUE_ENV),na},ra=Wr&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,aa="undefined"!=typeof Symbol&&O(Symbol)&&"undefined"!=typeof Reflect&&O(Reflect.ownKeys);oa="undefined"!=typeof Set&&O(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var la=S,sa=0,ca=function(){this.id=sa++,this.subs=[]};ca.prototype.addSub=function(e){this.subs.push(e)},ca.prototype.removeSub=function(e){m(this.subs,e)},ca.prototype.depend=function(){ca.target&&ca.target.addDep(this)},ca.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;tdocument.createEvent("Event").timeStamp&&(Ga=function(){return Ua.now()})}var qa=0,Ya=function(e,t,n,o,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),o?(this.deep=!!o.deep,this.user=!!o.user,this.lazy=!!o.lazy,this.sync=!!o.sync,this.before=o.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++qa,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new oa,this.newDepIds=new oa,this.expression="","function"==typeof t?this.getter=t:(this.getter=I(t),this.getter||(this.getter=S)),this.value=this.lazy?void 0:this.get()};Ya.prototype.get=function(){L(this);var e,t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;re(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&de(e),P(),this.cleanupDeps()}return e},Ya.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},Ya.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},Ya.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():Tt(this)},Ya.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||s(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){re(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},Ya.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Ya.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},Ya.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||m(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Za={enumerable:!0,configurable:!0,get:S,set:S},Xa={lazy:!0},Ka=0;!function(e){e.prototype._init=function(e){var t=this;t._uid=Ka++,t._isVue=!0,e&&e._isComponent?jt(t,e):t.$options=J($t(t.constructor),e||{},t),t._renderProxy=t,t._self=t,mt(t),ut(t),it(t),wt(t,"beforeCreate"),ke(t),It(t),we(t),wt(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(Wt),function(e){var t={};t.get=function(){return this._data};var n={};n.get=function(){return this._props},Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=j,e.prototype.$delete=$,e.prototype.$watch=function(e,t,n){var o=this;if(c(t))return Vt(o,e,t,n);n=n||{},n.user=!0;var i=new Ya(o,e,t,n);if(n.immediate)try{t.call(o,i.value)}catch(e){re(e,o,'callback for immediate watcher "'+i.expression+'"')}return function(){i.teardown()}}}(Wt),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var o=this;if(Array.isArray(e))for(var i=0,r=e.length;i1?_(n):n;for(var o=_(arguments,1),i='event handler for "'+e+'"',r=0,a=n.length;rparseInt(this.max)&&en(s,c[0],c,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}},el={KeepAlive:Qa};!function(e){var t={};t.get=function(){return Vr},Object.defineProperty(e,"config",t),e.util={warn:la,extend:w,mergeOptions:J,defineReactive:V},e.set=j,e.delete=$,e.nextTick=ue,e.observable=function(e){return F(e),e},e.options=Object.create(null),Br.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,w(e.options.components,el),Gt(e),Ut(e),qt(e),Xt(e)}(Wt),Object.defineProperty(Wt.prototype,"$isServer",{get:ia}),Object.defineProperty(Wt.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Wt,"FunctionalRenderContext",{value:Ge}),Wt.version="2.6.12";var tl,nl,ol,il,rl,al,ll,sl,cl,ul,dl=g("style,class"),fl=g("input,textarea,option,select,progress"),pl=function(e,t,n){return"value"===n&&fl(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},hl=g("contenteditable,draggable,spellcheck"),gl=g("events,caret,typing,plaintext-only"),ml=function(e,t){return _l(t)||"false"===t?"false":"contenteditable"===e&&gl(t)?t:"true"},vl=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),bl="http://www.w3.org/1999/xlink",xl=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},yl=function(e){return xl(e)?e.slice(6,e.length):""},_l=function(e){return null==e||!1===e},wl={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},kl=g("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Sl=g("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Ml=function(e){return"pre"===e},Cl=function(e){return kl(e)||Sl(e)},Al=Object.create(null),Tl=g("text,number,password,search,email,tel,url"),El=Object.freeze({createElement:fn,createElementNS:pn,createTextNode:hn,createComment:gn,insertBefore:mn,removeChild:vn,appendChild:bn,parentNode:xn,nextSibling:yn,tagName:_n,setTextContent:wn,setStyleScope:kn}),Il={create:function(e,t){Sn(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Sn(e,!0),Sn(t))},destroy:function(e){Sn(e,!0)}},Ol=new da("",{},[]),Ll=["create","activate","update","remove","destroy"],Pl={create:Tn,update:Tn,destroy:function(e){Tn(e,Ol)}},Dl=Object.create(null),zl=[Il,Pl],Rl={create:Pn,update:Pn},Nl={create:Rn,update:Rn},Bl=/[\w).+\-_$\]]/,Fl="__r",Vl="__c",jl=wa&&!(Jr&&Number(Jr[1])<=53),$l={create:mo,update:mo},Hl={create:vo,update:vo},Wl=b(function(e){var t={},n=/;(?![^(]*\))/g,o=/:(.+)/;return e.split(n).forEach(function(e){if(e){var n=e.split(o);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}),Gl=/^--/,Ul=/\s*!important$/,ql=function(e,t,n){if(Gl.test(t))e.style.setProperty(t,n);else if(Ul.test(n))e.style.setProperty(Pr(t),n.replace(Ul,""),"important");else{var o=Zl(t);if(Array.isArray(n))for(var i=0,r=n.length;ih?(d=o(n[v+1])?null:n[v+1].elm,b(e,d,n,p,v,r)):p>v&&y(t,f,h)}function k(e,t,n,o){for(var r=n;r\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Gs=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Us="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+jr.source+"]*",qs="((?:"+Us+"\\:)?"+Us+")",Ys=new RegExp("^<"+qs),Zs=/^\s*(\/?)>/,Xs=new RegExp("^<\\/"+qs+"[^>]*>"),Ks=/^]+>/i,Js=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},oc=/&(?:lt|gt|quot|amp|#39);/g,ic=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,rc=g("pre,textarea",!0),ac=function(e,t){return e&&rc(e)&&"\n"===t[0]},lc=/^@|^v-on:/,sc=/^v-|^@|^:|^#/,cc=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,uc=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,dc=/^\(|\)$/g,fc=/^\[.*\]$/,pc=/:(.*)$/,hc=/^:|^\.|^v-bind:/,gc=/\.[^.\]]+(?=[^\]]*$)/g,mc=/^v-slot(:|$)|^#/,vc=/[\r\n]/,bc=/\s+/g,xc=b(Vs.decode),yc="_empty_",_c=/^xmlns:NS\d+/,wc=/^NS\d+:/,kc={preTransformNode:Di},Sc=[Bs,Fs,kc],Mc={model:ao,text:Ri,html:Ni},Cc={expectHTML:!0,modules:Sc,directives:Mc,isPreTag:Ml,isUnaryTag:js,mustUseProp:pl,canBeLeftOpenTag:$s,isReservedTag:Cl,getTagNamespace:cn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(Sc)},Ac=b(Fi),Tc=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,Ec=/\([^)]*?\);*$/,Ic=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Oc={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Lc={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Pc=function(e){return"if("+e+")return null;"},Dc={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Pc("$event.target !== $event.currentTarget"),ctrl:Pc("!$event.ctrlKey"),shift:Pc("!$event.shiftKey"),alt:Pc("!$event.altKey"),meta:Pc("!$event.metaKey"),left:Pc("'button' in $event && $event.button !== 0"),middle:Pc("'button' in $event && $event.button !== 1"),right:Pc("'button' in $event && $event.button !== 2")},zc={on:Yi,bind:Zi,cloak:S},Rc=function(e){this.options=e,this.warn=e.warn||Fn,this.transforms=Vn(e.modules,"transformCode"),this.dataGenFns=Vn(e.modules,"genData"),this.directives=w(w({},zc),e.directives);var t=e.isReservedTag||zr;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1},Nc=(new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)"),function(e){return function(t){function n(n,o){var i=Object.create(t),r=[],a=[],l=function(e,t,n){(n?a:r).push(e)};if(o){o.modules&&(i.modules=(t.modules||[]).concat(o.modules)),o.directives&&(i.directives=w(Object.create(t.directives||null),o.directives));for(var s in o)"modules"!==s&&"directives"!==s&&(i[s]=o[s])}i.warn=l;var c=e(n.trim(),i);return c.errors=r,c.tips=a,c}return{compile:n,compileToFunctions:_r(n)}}}(function(e,t){var n=ui(e.trim(),t);!1!==t.optimize&&Bi(n,t);var o=Xi(n,t);return{ast:n,render:o.render,staticRenderFns:o.staticRenderFns}})),Bc=Nc(Cc),Fc=(Bc.compile,Bc.compileToFunctions),Vc=!!Wr&&wr(!1),jc=!!Wr&&wr(!0),$c=b(function(e){var t=dn(e);return t&&t.innerHTML}),Hc=Wt.prototype.$mount;Wt.prototype.$mount=function(e,t){if((e=e&&dn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var o=n.template;if(o)if("string"==typeof o)"#"===o.charAt(0)&&(o=$c(o));else{if(!o.nodeType)return this;o=o.innerHTML}else e&&(o=kr(e));if(o){var i=Fc(o,{outputSourceRange:!1,shouldDecodeNewlines:Vc,shouldDecodeNewlinesForHref:jc,delimiters:n.delimiters,comments:n.comments},this),r=i.render,a=i.staticRenderFns;n.render=r,n.staticRenderFns=a}}return Hc.call(this,e,t)},Wt.compile=Fc,t.default=Wt}.call(t,n(48),n(631).setImmediate)},function(e,t,n){function o(e,t){var n,o,i,r=e.type,a=t.getMin(),l=t.getMax(),s=null!=a,c=null!=l,u=e.getExtent();return"ordinal"===r?n=(t.get("data")||[]).length:(o=t.get("boundaryGap"),d.isArray(o)||(o=[o||0,o||0]),"boolean"==typeof o[0]&&(o=[0,0]),o[0]=m.parsePercent(o[0],1),o[1]=m.parsePercent(o[1],1),i=u[1]-u[0]||Math.abs(u[0])),null==a&&(a="ordinal"===r?n?0:NaN:u[0]-o[0]*i),null==l&&(l="ordinal"===r?n?n-1:NaN:u[1]+o[1]*i),"dataMin"===a?a=u[0]:"function"==typeof a&&(a=a({min:u[0],max:u[1]})),"dataMax"===l?l=u[1]:"function"==typeof l&&(l=l({min:u[0],max:u[1]})),(null==a||!isFinite(a))&&(a=NaN),(null==l||!isFinite(l))&&(l=NaN),e.setBlank(d.eqNaN(a)||d.eqNaN(l)),t.getNeedCrossZero()&&(a>0&&l>0&&!s&&(a=0),a<0&&l<0&&!c&&(l=0)),[a,l]}function i(e,t){var n=o(e,t),i=null!=t.getMin(),r=null!=t.getMax(),a=t.get("splitNumber");"log"===e.type&&(e.base=t.get("logBase"));var l=e.type;e.setExtent(n[0],n[1]),e.niceExtent({splitNumber:a,fixMin:i,fixMax:r,minInterval:"interval"===l||"time"===l?t.get("minInterval"):null,maxInterval:"interval"===l||"time"===l?t.get("maxInterval"):null});var s=t.get("interval");null!=s&&e.setInterval&&e.setInterval(s)}function r(e,t){if(t=t||e.get("type"))switch(t){case"category":return new p(e.getCategories(),[1/0,-1/0]);case"value":return new h;default:return(g.getClass(t)||h).create(e)}}function a(e){var t=e.scale.getExtent(),n=t[0],o=t[1];return!(n>0&&o>0||n<0&&o<0)}function l(e,t,n,o,i){var r,a=0,l=0,s=(o-i)/180*Math.PI,c=1;t.length>40&&(c=Math.floor(t.length/40));for(var u=0;u1?c:(a+1)*c-1}function s(e,t){var n=e.scale,o=n.getTicksLabels(),i=n.getTicks();return"string"==typeof t?(t=function(e){return function(t){return e.replace("{value}",null!=t?t:"")}}(t),d.map(o,t)):"function"==typeof t?d.map(i,function(n,o){return t(c(e,n),o)},this):o}function c(e,t){return"category"===e.type?e.scale.getLabel(t):t}var u=n(4),d=(u.__DEV__,n(0)),f=n(27),p=n(604),h=n(90),g=n(91),m=n(3);n(605),n(603),t.getScaleExtent=o,t.niceScaleExtent=i,t.createScaleByModel=r,t.ifAxisCrossZero=a,t.getAxisLabelInterval=l,t.getFormattedLabels=s,t.getAxisRawValue=c},function(e,t,n){function o(e,t){if("image"!==this.type){var n=this.style,o=this.shape;o&&"line"===o.symbolType?n.stroke=e:this.__isEmptyBrush?(n.stroke=e,n.fill=t||"#fff"):(n.fill&&(n.fill=e),n.stroke&&(n.stroke=e)),this.dirty(!1)}}function i(e,t,n,i,r,s,c){var u=0===e.indexOf("empty");u&&(e=e.substr(5,1).toLowerCase()+e.substr(6));var d;return d=0===e.indexOf("image://")?a.makeImage(e.slice(8),new l(t,n,i,r),c?"center":"cover"):0===e.indexOf("path://")?a.makePath(e.slice(7),{},new l(t,n,i,r),c?"center":"cover"):new g({shape:{symbolType:e,x:t,y:n,width:i,height:r}}),d.__isEmptyBrush=u,d.setColor=o,d.setColor(s),d}var r=n(0),a=n(2),l=n(10),s=a.extendShape({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,o=t.cy,i=t.width/2,r=t.height/2;e.moveTo(n,o-r),e.lineTo(n+i,o+r),e.lineTo(n-i,o+r),e.closePath()}}),c=a.extendShape({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,o=t.cy,i=t.width/2,r=t.height/2;e.moveTo(n,o-r),e.lineTo(n+i,o),e.lineTo(n,o+r),e.lineTo(n-i,o),e.closePath()}}),u=a.extendShape({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.x,o=t.y,i=t.width/5*3,r=Math.max(i,t.height),a=i/2,l=a*a/(r-a),s=o-r+a+l,c=Math.asin(l/a),u=Math.cos(c)*a,d=Math.sin(c),f=Math.cos(c),p=.6*a,h=.7*a;e.moveTo(n-u,s+l),e.arc(n,s,a,Math.PI-c,2*Math.PI+c),e.bezierCurveTo(n+u-d*p,s+l+f*p,n,o-h,n,o),e.bezierCurveTo(n,o-h,n-u+d*p,s+l+f*p,n-u,s+l),e.closePath()}}),d=a.extendShape({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.height,o=t.width,i=t.x,r=t.y,a=o/3*2;e.moveTo(i,r),e.lineTo(i+a,r+n),e.lineTo(i,r+n/4*3),e.lineTo(i-a,r+n),e.lineTo(i,r),e.closePath()}}),f={line:a.Line,rect:a.Rect,roundRect:a.Rect,square:a.Rect,circle:a.Circle,diamond:c,pin:u,arrow:d,triangle:s},p={line:function(e,t,n,o,i){i.x1=e,i.y1=t+o/2,i.x2=e+n,i.y2=t+o/2},rect:function(e,t,n,o,i){i.x=e,i.y=t,i.width=n,i.height=o},roundRect:function(e,t,n,o,i){i.x=e,i.y=t,i.width=n,i.height=o,i.r=Math.min(n,o)/4},square:function(e,t,n,o,i){var r=Math.min(n,o);i.x=e,i.y=t,i.width=r,i.height=r},circle:function(e,t,n,o,i){i.cx=e+n/2,i.cy=t+o/2,i.r=Math.min(n,o)/2},diamond:function(e,t,n,o,i){i.cx=e+n/2,i.cy=t+o/2,i.width=n,i.height=o},pin:function(e,t,n,o,i){i.x=e+n/2,i.y=t+o/2,i.width=n,i.height=o},arrow:function(e,t,n,o,i){i.x=e+n/2,i.y=t+o/2,i.width=n,i.height=o},triangle:function(e,t,n,o,i){i.cx=e+n/2,i.cy=t+o/2,i.width=n,i.height=o}},h={};r.each(f,function(e,t){h[t]=new e});var g=a.extendShape({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var e=this.style;"pin"===this.shape.symbolType&&"inside"===e.textPosition&&(e.textPosition=["50%","40%"],e.textAlign="center",e.textVerticalAlign="middle")},buildPath:function(e,t,n){var o=t.symbolType,i=h[o];"none"!==t.symbolType&&(i||(o="rect",i=h[o]),p[o](t.x,t.y,t.width,t.height,i.shape),i.buildPath(e,i.shape,n))}});t.createSymbol=i},function(e,t){function n(){var e=new u(6);return o(e),e}function o(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function i(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function r(e,t,n){var o=t[0]*n[0]+t[2]*n[1],i=t[1]*n[0]+t[3]*n[1],r=t[0]*n[2]+t[2]*n[3],a=t[1]*n[2]+t[3]*n[3],l=t[0]*n[4]+t[2]*n[5]+t[4],s=t[1]*n[4]+t[3]*n[5]+t[5];return e[0]=o,e[1]=i,e[2]=r,e[3]=a,e[4]=l,e[5]=s,e}function a(e,t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+n[0],e[5]=t[5]+n[1],e}function l(e,t,n){var o=t[0],i=t[2],r=t[4],a=t[1],l=t[3],s=t[5],c=Math.sin(n),u=Math.cos(n);return e[0]=o*u+a*c,e[1]=-o*c+a*u,e[2]=i*u+l*c,e[3]=-i*c+u*l,e[4]=u*r+c*s,e[5]=u*s-c*r,e}function s(e,t,n){var o=n[0],i=n[1];return e[0]=t[0]*o,e[1]=t[1]*i,e[2]=t[2]*o,e[3]=t[3]*i,e[4]=t[4]*o,e[5]=t[5]*i,e}function c(e,t){var n=t[0],o=t[2],i=t[4],r=t[1],a=t[3],l=t[5],s=n*a-r*o;return s?(s=1/s,e[0]=a*s,e[1]=-r*s,e[2]=-o*s,e[3]=n*s,e[4]=(o*l-a*i)*s,e[5]=(r*i-n*l)*s,e):null}var u="undefined"==typeof Float32Array?Array:Float32Array;t.create=n,t.identity=o,t.copy=i,t.mul=r,t.translate=a,t.rotate=l,t.scale=s,t.invert=c},function(e,t,n){function o(e,t,n){function o(e,t,n){d[t]?e.otherDims[t]=n:(e.coordDim=t,e.coordDimIndex=n,m.set(t,!0))}function a(e,t,n){if(n||null!=t.get(e)){for(var o=0;null!=t.get(e+o);)o++;e+=o}return t.set(e,!0),e}t=t||[],n=n||{},e=(e||[]).slice();var p=(n.dimsDef||[]).slice(),h=r.createHashMap(n.encodeDef),g=r.createHashMap(),m=r.createHashMap(),v=[],b=n.dimCount;if(null==b){var x=i(t[0]);b=Math.max(r.isArray(x)&&x.length||1,e.length,p.length),s(e,function(e){var t=e.dimsDef;t&&(b=Math.max(b,t.length))})}for(var y=0;yI&&(E=0,T={}),E++,T[n]=i,i}function r(e,t,n,o,i,r,s){return r?l(e,t,n,o,i,r,s):a(e,t,n,o,i,s)}function a(e,t,n,o,r,a){var l=v(e,t,r,a),u=i(e,t);r&&(u+=r[1]+r[3]);var d=l.outerHeight,f=s(0,u,n),p=c(0,d,o),h=new _(f,p,u,d);return h.lineHeight=l.lineHeight,h}function l(e,t,n,o,i,r,a){var l=b(e,{rich:r,truncate:a,font:t,textAlign:n,textPadding:i}),u=l.outerWidth,d=l.outerHeight,f=s(0,u,n),p=c(0,d,o);return new _(f,p,u,d)}function s(e,t,n){return"right"===n?e-=t:"center"===n&&(e-=t/2),e}function c(e,t,n){return"middle"===n?e-=t/2:"bottom"===n&&(e-=t),e}function u(e,t,n){var o=t.x,i=t.y,r=t.height,a=t.width,l=r/2,s="left",c="top";switch(e){case"left":o-=n,i+=l,s="right",c="middle";break;case"right":o+=n+a,i+=l,c="middle";break;case"top":o+=a/2,i-=n,s="center",c="bottom";break;case"bottom":o+=a/2,i+=r+n,s="center";break;case"inside":o+=a/2,i+=l,s="center",c="middle";break;case"insideLeft":o+=n,i+=l,c="middle";break;case"insideRight":o+=a-n,i+=l,s="right",c="middle";break;case"insideTop":o+=a/2,i+=n,s="center";break;case"insideBottom":o+=a/2,i+=r-n,s="center",c="bottom";break;case"insideTopLeft":o+=n,i+=n;break;case"insideTopRight":o+=a-n,i+=n,s="right";break;case"insideBottomLeft":o+=n,i+=r-n,c="bottom";break;case"insideBottomRight":o+=a-n,i+=r-n,s="right",c="bottom"}return{x:o,y:i,textAlign:s,textVerticalAlign:c}}function d(e,t,n,o,i){if(!t)return"";var r=(e+"").split("\n");i=f(t,n,o,i);for(var a=0,l=r.length;a=a;s++)l-=a;var c=i(n);return c>l&&(n="",c=0),l=e-c,o.ellipsis=n,o.ellipsisWidth=c,o.contentWidth=l,o.containerWidth=e,o}function p(e,t){var n=t.containerWidth,o=t.font,r=t.contentWidth;if(!n)return"";var a=i(e,o);if(a<=n)return e;for(var l=0;;l++){if(a<=r||l>=t.maxIterations){e+=t.ellipsis;break}var s=0===l?h(e,r,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*r/a):0;e=e.substr(0,s),a=i(e,o)}return""===e&&(e=t.placeholder),e}function h(e,t,n,o){for(var i=0,r=0,a=e.length;rs)e="",r=[];else if(null!=c)for(var u=f(c-(n?n[1]+n[3]:0),t,o.ellipsis,{minChar:o.minChar,placeholder:o.placeholder}),d=0,h=r.length;dr&&x(n,e.substring(r,a)),x(n,o[2],o[1]),r=O.lastIndex}rm)return{lines:[],width:0,height:0};S.textWidth=i(S.text,E);var L=M.textWidth,P=null==L||"auto"===L;if("string"==typeof L&&"%"===L.charAt(L.length-1))S.percentWidth=L,u.push(S),L=0;else{if(P){L=S.textWidth;var D=M.textBackgroundColor,z=D&&D.image;z&&(z=w.findExistImage(z),w.isImageReady(z)&&(L=Math.max(L,z.width*I/z.height)))}var R=T?T[1]+T[3]:0;L+=R;var N=null!=h?h-_:null;null!=N&&N-1}function i(e,t){if(e){for(var n=e.className,i=(t||"").split(" "),r=0,a=i.length;ro.top&&n.right>o.left&&n.left=0){var r="touchend"!=o?t.targetTouches[0]:t.changedTouches[0];r&&i(e,r,t,n)}else i(e,t,t,n),t.zrDelta=t.wheelDelta?t.wheelDelta/120:-(t.detail||0)/3;var a=t.button;return null==t.which&&void 0!==a&&p.test(t.type)&&(t.which=1&a?1:2&a?3:4&a?2:0),t}function l(e,t,n){f?e.addEventListener(t,n):e.attachEvent("on"+t,n)}function s(e,t,n){f?e.removeEventListener(t,n):e.detachEvent("on"+t,n)}function c(e){return e.which>1}var u=n(49);t.Dispatcher=u;var d=n(15),f="undefined"!=typeof window&&!!window.addEventListener,p=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,h=f?function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0}:function(e){e.returnValue=!1,e.cancelBubble=!0};t.clientToLocal=i,t.normalizeEvent=a,t.addEventListener=l,t.removeEventListener=s,t.stop=h,t.notLeftMouse=c},function(e,t,n){function o(e){return e=Math.round(e),e<0?0:e>255?255:e}function i(e){return e=Math.round(e),e<0?0:e>360?360:e}function r(e){return e<0?0:e>1?1:e}function a(e){return o(e.length&&"%"===e.charAt(e.length-1)?parseFloat(e)/100*255:parseInt(e,10))}function l(e){return r(e.length&&"%"===e.charAt(e.length-1)?parseFloat(e)/100:parseFloat(e))}function s(e,t,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}function c(e,t,n){return e+(t-e)*n}function u(e,t,n,o,i){return e[0]=t,e[1]=n,e[2]=o,e[3]=i,e}function d(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function f(e,t){C&&d(C,t),C=M.put(e,C||t.slice())}function p(e,t){if(e){t=t||[];var n=M.get(e);if(n)return d(t,n);e+="";var o=e.replace(/ /g,"").toLowerCase();if(o in S)return d(t,S[o]),f(e,t),t;if("#"!==o.charAt(0)){var i=o.indexOf("("),r=o.indexOf(")");if(-1!==i&&r+1===o.length){var s=o.substr(0,i),c=o.substr(i+1,r-(i+1)).split(","),p=1;switch(s){case"rgba":if(4!==c.length)return void u(t,0,0,0,1);p=l(c.pop());case"rgb":return 3!==c.length?void u(t,0,0,0,1):(u(t,a(c[0]),a(c[1]),a(c[2]),p),f(e,t),t);case"hsla":return 4!==c.length?void u(t,0,0,0,1):(c[3]=l(c[3]),h(c,t),f(e,t),t);case"hsl":return 3!==c.length?void u(t,0,0,0,1):(h(c,t),f(e,t),t);default:return}}u(t,0,0,0,1)}else{if(4===o.length){var g=parseInt(o.substr(1),16);return g>=0&&g<=4095?(u(t,(3840&g)>>4|(3840&g)>>8,240&g|(240&g)>>4,15&g|(15&g)<<4,1),f(e,t),t):void u(t,0,0,0,1)}if(7===o.length){var g=parseInt(o.substr(1),16);return g>=0&&g<=16777215?(u(t,(16711680&g)>>16,(65280&g)>>8,255&g,1),f(e,t),t):void u(t,0,0,0,1)}}}}function h(e,t){var n=(parseFloat(e[0])%360+360)%360/360,i=l(e[1]),r=l(e[2]),a=r<=.5?r*(i+1):r+i-r*i,c=2*r-a;return t=t||[],u(t,o(255*s(c,a,n+1/3)),o(255*s(c,a,n)),o(255*s(c,a,n-1/3)),1),4===e.length&&(t[3]=e[3]),t}function g(e){if(e){var t,n,o=e[0]/255,i=e[1]/255,r=e[2]/255,a=Math.min(o,i,r),l=Math.max(o,i,r),s=l-a,c=(l+a)/2;if(0===s)t=0,n=0;else{n=c<.5?s/(l+a):s/(2-l-a);var u=((l-o)/6+s/2)/s,d=((l-i)/6+s/2)/s,f=((l-r)/6+s/2)/s;o===l?t=f-d:i===l?t=1/3+u-f:r===l&&(t=2/3+d-u),t<0&&(t+=1),t>1&&(t-=1)}var p=[360*t,n,c];return null!=e[3]&&p.push(e[3]),p}}function m(e,t){var n=p(e);if(n){for(var o=0;o<3;o++)n[o]=t<0?n[o]*(1-t)|0:(255-n[o])*t+n[o]|0;return w(n,4===n.length?"rgba":"rgb")}}function v(e){var t=p(e);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)}function b(e,t,n){if(t&&t.length&&e>=0&&e<=1){n=n||[];var i=e*(t.length-1),a=Math.floor(i),l=Math.ceil(i),s=t[a],u=t[l],d=i-a;return n[0]=o(c(s[0],u[0],d)),n[1]=o(c(s[1],u[1],d)),n[2]=o(c(s[2],u[2],d)),n[3]=r(c(s[3],u[3],d)),n}}function x(e,t,n){if(t&&t.length&&e>=0&&e<=1){var i=e*(t.length-1),a=Math.floor(i),l=Math.ceil(i),s=p(t[a]),u=p(t[l]),d=i-a,f=w([o(c(s[0],u[0],d)),o(c(s[1],u[1],d)),o(c(s[2],u[2],d)),r(c(s[3],u[3],d))],"rgba");return n?{color:f,leftIndex:a,rightIndex:l,value:i}:f}}function y(e,t,n,o){if(e=p(e))return e=g(e),null!=t&&(e[0]=i(t)),null!=n&&(e[1]=l(n)),null!=o&&(e[2]=l(o)),w(h(e),"rgba")}function _(e,t){if((e=p(e))&&null!=t)return e[3]=r(t),w(e,"rgba")}function w(e,t){if(e&&e.length){var n=e[0]+","+e[1]+","+e[2];return"rgba"!==t&&"hsva"!==t&&"hsla"!==t||(n+=","+e[3]),t+"("+n+")"}}var k=n(244),S={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},M=new k(20),C=null,A=b,T=x;t.parse=p,t.lift=m,t.toHex=v,t.fastLerp=b,t.fastMapToColor=A,t.lerp=x,t.mapToColor=T,t.modifyHSL=y,t.modifyAlpha=_,t.stringify=w},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){function o(e){for(var t=0;t=0&&i(e)?function(e,t,n,o){return m(e)&&(y.hasItemOption=!0),o===x?n:g(h(e),p[o])}:function(e,t,n,o){var i=h(e),r=g(i&&i[o],p[o]);m(e)&&(y.hasItemOption=!0);var a=c&&c.categoryAxesModels;return a&&a[t]&&"string"==typeof r&&(w[t]=w[t]||a[t].getCategories(),(r=u.indexOf(w[t],r))<0&&!isNaN(r)&&(r=+r)),r};return y.hasItemOption=!1,y.initData(e,_,k),y}function a(e){return"category"!==e&&"time"!==e}function l(e){return"category"===e?"ordinal":"time"===e?"time":"float"}function s(e,t){var n,o=[],i=e&&e.dimensions[e.categoryIndex];if(i&&(n=e.categoryAxesModels[i.name]),n){var r=n.getCategories();if(r){var a=t.length;if(u.isArray(t[0])&&t[0].length>1){o=[];for(var l=0;l=n&&e<=o},containData:function(e){return this.contain(this.dataToCoord(e))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(e){return r.getPixelPrecision(e||this.scale.getExtent(),this._extent)},setExtent:function(e,t){var n=this._extent;n[0]=e,n[1]=t},dataToCoord:function(e,t){var n=this._extent,i=this.scale;return e=i.normalize(e),this.onBand&&"ordinal"===i.type&&(n=n.slice(),o(n,i.count())),l(e,s,n,t)},coordToData:function(e,t){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&(n=n.slice(),o(n,i.count()));var r=l(e,n,s,t);return this.scale.scale(r)},pointToData:function(e,t){},getTicksCoords:function(e){if(this.onBand&&!e){for(var t=this.getBands(),n=[],o=0;o0&&void 0!==arguments[0]?arguments[0]:"";return String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},t.arrayFindIndex=function(e,t){for(var n=0;n!==e.length;++n)if(t(e[n]))return n;return-1}),m=(t.arrayFind=function(e,t){var n=g(e,t);return-1!==n?e[n]:void 0},t.coerceTruthyValueToArray=function(e){return Array.isArray(e)?e:e?[e]:[]},t.isIE=function(){return!f.default.prototype.$isServer&&!isNaN(Number(document.documentMode))},t.isEdge=function(){return!f.default.prototype.$isServer&&navigator.userAgent.indexOf("Edge")>-1},t.isFirefox=function(){return!f.default.prototype.$isServer&&!!window.navigator.userAgent.match(/firefox/i)},t.autoprefixer=function(e){if("object"!==(void 0===e?"undefined":u(e)))return e;var t=["ms-","webkit-"];return["transform","transition","animation"].forEach(function(n){var o=e[n];n&&o&&t.forEach(function(t){e[t+n]=o})}),e},t.kebabCase=function(e){var t=/([^-])([A-Z])/g;return e.replace(t,"$1-$2").replace(t,"$1-$2").toLowerCase()},t.capitalize=function(e){return(0,p.isString)(e)?e.charAt(0).toUpperCase()+e.slice(1):e},t.looseEqual=function(e,t){var n=(0,p.isObject)(e),o=(0,p.isObject)(t);return n&&o?JSON.stringify(e)===JSON.stringify(t):!n&&!o&&String(e)===String(t)}),v=t.arrayEquals=function(e,t){if(e=e||[],t=t||[],e.length!==t.length)return!1;for(var n=0;n-w&&ew||e<-w}function r(e,t,n,o,i){var r=1-i;return r*r*(r*e+3*i*t)+i*i*(i*o+3*r*n)}function a(e,t,n,o,i){var r=1-i;return 3*(((t-e)*r+2*(n-t)*i)*r+(o-n)*i*i)}function l(e,t,n,i,r,a){var l=i+3*(t-n)-e,s=3*(n-2*t+e),c=3*(t-e),u=e-r,d=s*s-3*l*c,f=s*c-9*l*u,p=c*c-3*s*u,h=0;if(o(d)&&o(f))if(o(s))a[0]=0;else{var g=-c/s;g>=0&&g<=1&&(a[h++]=g)}else{var m=f*f-4*d*p;if(o(m)){var v=f/d,g=-s/l+v,b=-v/2;g>=0&&g<=1&&(a[h++]=g),b>=0&&b<=1&&(a[h++]=b)}else if(m>0){var x=_(m),w=d*s+1.5*l*(-f+x),k=d*s+1.5*l*(-f-x);w=w<0?-y(-w,M):y(w,M),k=k<0?-y(-k,M):y(k,M);var g=(-s-(w+k))/(3*l);g>=0&&g<=1&&(a[h++]=g)}else{var C=(2*d*s-3*l*f)/(2*_(d*d*d)),A=Math.acos(C)/3,T=_(d),E=Math.cos(A),g=(-s-2*T*E)/(3*l),b=(-s+T*(E+S*Math.sin(A)))/(3*l),I=(-s+T*(E-S*Math.sin(A)))/(3*l);g>=0&&g<=1&&(a[h++]=g),b>=0&&b<=1&&(a[h++]=b),I>=0&&I<=1&&(a[h++]=I)}}return h}function s(e,t,n,r,a){var l=6*n-12*t+6*e,s=9*t+3*r-3*e-9*n,c=3*t-3*e,u=0;if(o(s)){if(i(l)){var d=-c/l;d>=0&&d<=1&&(a[u++]=d)}}else{var f=l*l-4*s*c;if(o(f))a[0]=-l/(2*s);else if(f>0){var p=_(f),d=(-l+p)/(2*s),h=(-l-p)/(2*s);d>=0&&d<=1&&(a[u++]=d),h>=0&&h<=1&&(a[u++]=h)}}return u}function c(e,t,n,o,i,r){var a=(t-e)*i+e,l=(n-t)*i+t,s=(o-n)*i+n,c=(l-a)*i+a,u=(s-l)*i+l,d=(u-c)*i+c;r[0]=e,r[1]=a,r[2]=c,r[3]=d,r[4]=d,r[5]=u,r[6]=s,r[7]=o}function u(e,t,n,o,i,a,l,s,c,u,d){var f,p,h,g,m,v=.005,b=1/0;C[0]=c,C[1]=u;for(var y=0;y<1;y+=.05)A[0]=r(e,n,i,l,y),A[1]=r(t,o,a,s,y),(g=x(C,A))=0&&g=0&&d<=1&&(a[u++]=d)}}else{var f=s*s-4*l*c;if(o(f)){var d=-s/(2*l);d>=0&&d<=1&&(a[u++]=d)}else if(f>0){var p=_(f),d=(-s+p)/(2*l),h=(-s-p)/(2*l);d>=0&&d<=1&&(a[u++]=d),h>=0&&h<=1&&(a[u++]=h)}}return u}function h(e,t,n){var o=e+n-2*t;return 0===o?.5:(e-t)/o}function g(e,t,n,o,i){var r=(t-e)*o+e,a=(n-t)*o+t,l=(a-r)*o+r;i[0]=e,i[1]=r,i[2]=l,i[3]=l,i[4]=a,i[5]=n}function m(e,t,n,o,i,r,a,l,s){var c,u=.005,f=1/0;C[0]=a,C[1]=l;for(var p=0;p<1;p+=.05){A[0]=d(e,n,i,p),A[1]=d(t,o,r,p);var h=x(C,A);h=0&&ho[1],s="start"===t&&!l||"start"!==t&&l;return _(a-T/2)?(r=s?"bottom":"top",i="center"):_(a-1.5*T)?(r=s?"top":"bottom",i="center"):(r="middle",i=a<1.5*T&&a>T/2?s?"left":"right":s?"right":"left"),{rotation:a,textAlign:i,textVerticalAlign:r}}function r(e){var t=e.get("tooltip");return e.get("silent")||!(e.get("triggerEvent")||t&&t.show)}function a(e,t,n){var o=e.get("axisLabel.showMinLabel"),i=e.get("axisLabel.showMaxLabel");t=t||[],n=n||[];var r=t[0],a=t[1],c=t[t.length-1],u=t[t.length-2],d=n[0],f=n[1],p=n[n.length-1],h=n[n.length-2];!1===o?(l(r),l(d)):s(r,a)&&(o?(l(a),l(f)):(l(r),l(d))),!1===i?(l(c),l(p)):s(u,c)&&(i?(l(u),l(h)):(l(c),l(p)))}function l(e){e&&(e.ignore=!0)}function s(e,t,n){var o=e&&e.getBoundingRect().clone(),i=t&&t.getBoundingRect().clone();if(o&&i){var r=M.identity([]);return M.rotate(r,r,-e.rotation),o.applyTransform(M.mul([],r,e.getLocalTransform())),i.applyTransform(M.mul([],r,t.getLocalTransform())),o.intersect(i)}}function c(e){return"middle"===e||"center"===e}function u(e,t,n){var o=t.axis;if(t.get("axisTick.show")&&!o.scale.isBlank()){for(var i=t.getModel("axisTick"),r=i.getModel("lineStyle"),a=i.get("length"),l=P(i,n.labelInterval),s=o.getTicksCoords(i.get("alignWithLabel")),c=o.scale.getTicks(),u=t.get("axisLabel.showMinLabel"),d=t.get("axisLabel.showMaxLabel"),f=[],p=[],g=e._transform,m=[],v=s.length,x=0;xf[1]?-1:1,m=["start"===l?f[0]-h*d:"end"===l?f[1]+h*d:(f[0]+f[1])/2,c(l)?e.labelOffset+s*d:0],x=t.get("nameRotate");null!=x&&(x=x*T/180);var y;c(l)?a=O(e.rotation,null!=x?x:e.rotation,s):(a=i(e,l,x||0,f),null!=(y=e.axisNameAvailableWidth)&&(y=Math.abs(y/Math.sin(a.rotation)),!isFinite(y)&&(y=null)));var _=u.getFont(),w=t.get("nameTruncate",!0)||{},k=w.ellipsis,S=p(e.nameTruncateMaxWidth,w.maxWidth,y),M=null!=k&&null!=S?v.truncateText(n,S,_,k,{minChar:2,placeholder:w.placeholder}):n,C=t.get("tooltip",!0),A=t.mainType,E={componentType:A,name:n,$vars:["name"]};E[A+"Index"]=t.componentIndex;var I=new b.Text({anid:"name",__fullText:n,__truncatedText:M,position:m,rotation:a.rotation,silent:r(t),z2:1,tooltip:C&&C.show?g({content:n,formatter:function(){return n},formatterParams:E},C):null});b.setTextStyle(I.style,u,{text:M,textFont:_,textFill:u.getTextColor()||t.get("axisLine.lineStyle.color"),textAlign:a.textAlign,textVerticalAlign:a.textVerticalAlign}),t.get("triggerEvent")&&(I.eventData=o(t),I.eventData.targetType="axisName",I.eventData.name=n),this._dumbGroup.add(I),I.updateTransform(),this.group.add(I),I.decomposeTransform()}}},O=E.innerTextLayout=function(e,t,n){var o,i,r=w(t-e);return _(r)?(i=n>0?"top":"bottom",o="center"):_(r-T)?(i=n>0?"bottom":"top",o="center"):(i="middle",o=r>0&&r0?"right":"left":n>0?"left":"right"),{rotation:r,textAlign:o,textVerticalAlign:i}},L=E.ifIgnoreOnTick=function(e,t,n,o,i,r){if(0===t&&i||t===o-1&&r)return!1;var a,l=e.scale;return"ordinal"===l.type&&("function"==typeof n?(a=l.getTicks()[t],!n(a,l.getLabel(a))):t%(n+1))},P=E.getInterval=function(e,t){var n=e.get("interval");return null!=n&&"auto"!=n||(n=t),n},D=E;e.exports=D},function(e,t,n){function o(e,t,n,o,r,a){var c=s.getAxisPointerClass(e.axisPointerClass);if(c){var u=l.getAxisPointerModel(t);u?(e._axisPointer||(e._axisPointer=new c)).render(t,u,o,a):i(e,o)}}function i(e,t,n){var o=e._axisPointer;o&&o.dispose(t,n),e._axisPointer=null}var r=n(4),a=(r.__DEV__,n(1)),l=n(84),s=a.extendComponentView({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(e,t,n,i){this.axisPointerClass&&l.fixValue(e),s.superApply(this,"render",arguments),o(this,e,t,n,i,!0)},updateAxisPointer:function(e,t,n,i,r){o(this,e,t,n,i,!1)},remove:function(e,t){var n=this._axisPointer;n&&n.remove(t),s.superApply(this,"remove",arguments)},dispose:function(e,t){i(this,t),s.superApply(this,"dispose",arguments)}}),c=[];s.registerAxisPointerClass=function(e,t){c[e]=t},s.getAxisPointerClass=function(e){return e&&c[e]};var u=s;e.exports=u},function(e,t){function n(e,t,n){function o(){u=(new Date).getTime(),d=null,e.apply(a,l||[])}var i,r,a,l,s,c=0,u=0,d=null;t=t||0;var f=function(){i=(new Date).getTime(),a=this,l=arguments;var e=s||t,f=s||n;s=null,r=i-(f?c:u)-e,clearTimeout(d),f?d=setTimeout(o,e):r>=0?o():d=setTimeout(o,-r),c=i};return f.clear=function(){d&&(clearTimeout(d),d=null)},f.debounceNextCall=function(e){s=e},f}function o(e,t,o,i){var s=e[t];if(s){var c=s[r]||s,u=s[l];if(s[a]!==o||u!==i){if(null==o||!i)return e[t]=c;s=e[t]=n(c,o,"debounce"===i),s[r]=c,s[l]=i,s[a]=o}return s}}function i(e,t){var n=e[t];n&&n[r]&&(e[t]=n[r])}var r="\0__throttleOriginMethod",a="\0__throttleRate",l="\0__throttleType";t.throttle=n,t.createOrUpdate=o,t.clear=i},function(e,t,n){function o(e){var t=e.pieceList;e.hasSpecialVisual=!1,g.each(t,function(t,n){t.originIndex=n,null!=t.visual&&(e.hasSpecialVisual=!0)})}function i(e){var t=e.categories,n=e.visual,o=e.categoryMap={};if(x(t,function(e,t){o[e]=t}),!g.isArray(n)){var i=[];g.isObject(n)?x(n,function(e,t){var n=o[t];i[null!=n?n:_]=e}):i[_]=n,n=p(e,i)}for(var r=t.length-1;r>=0;r--)null==n[r]&&(delete o[t[r]],t.pop())}function r(e,t){var n=e.visual,o=[];g.isObject(n)?x(n,function(e){o.push(e)}):null!=n&&o.push(n);var i={color:1,symbol:1};t||1!==o.length||i.hasOwnProperty(e.type)||(o[1]=o[0]),p(e,o)}function a(e){return{applyVisual:function(t,n,o){t=this.mapValueToVisual(t),o("color",e(n("color"),t))},_doMap:d([0,1])}}function l(e){var t=this.option.visual;return t[Math.round(b(e,[0,1],[0,t.length-1],!0))]||{}}function s(e){return function(t,n,o){o(e,this.mapValueToVisual(t))}}function c(e){var t=this.option.visual;return t[this.option.loop&&e!==_?e%t.length:e]}function u(){return this.option.visual[0]}function d(e){return{linear:function(t){return b(t,e,this.option.visual,!0)},category:c,piecewise:function(t,n){var o=f.call(this,n);return null==o&&(o=b(t,e,this.option.visual,!0)),o},fixed:u}}function f(e){var t=this.option,n=t.pieceList;if(t.hasSpecialVisual){var o=w.findPieceIndex(e,n),i=n[o];if(i&&i.visual)return i.visual[this.type]}}function p(e,t){return e.visual=t,"color"===e.type&&(e.parsedVisual=g.map(t,function(e){return m.parse(e)})),t}function h(e,t,n){return e?t<=n:tl[0]+3)return n.toExponential(t).replace("e+","x10^");for(var c=void 0,u=0;u=d){c=d;break}}var f=a-c+1,p=r.split(""),h=p.slice(0,f),g=p.slice(f,f+t+1),m=h.join(""),v=g.join("");v.length=i)return l.formatNumber(e/i,n,"")+" "+o+"B"}return e>=1024?l.formatNumber(e/1024,0)+" KB":l.formatNumber(e,0)+l.pluralize(e," byte")},filesize:function(){return l.fileSize.apply(l,arguments)},formatNumber:function(e){var t=arguments.length<=1||void 0===arguments[1]?0:arguments[1],n=arguments.length<=2||void 0===arguments[2]?",":arguments[2],o=arguments.length<=3||void 0===arguments[3]?".":arguments[3],i=l.normalizePrecision(t),r=e<0&&"-"||"",a=String(parseInt(l.toFixed(Math.abs(e||0),i),10)),s=a.length>3?a.length%3:0;return r+function(e,t,n){return n?e.substr(0,n)+t:""}(a,n,s)+function(e,t,n){return e.substr(n).replace(/(\d{3})(?=\d)/g,"$1"+t)}(a,n,s)+function(e,t,n){return n?t+l.toFixed(Math.abs(e),n).split(".")[1]:""}(e,o,i)},toFixed:function(e,t){t=n(t)?t:l.normalizePrecision(t,0);var o=Math.pow(10,t);return(Math.round(e*o)/o).toFixed(t)},normalizePrecision:function(e,t){return e=Math.round(Math.abs(e)),o(e)?t:e},ordinal:function(e){var t=parseInt(e,10);if(0===t)return e;if([11,12,13].indexOf(t%100)>=0)return t+"th";var n=t%10,o=void 0;switch(n){case 1:o="st";break;case 2:o="nd";break;case 3:o="rd";break;default:o="th"}return""+t+o},times:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(i(e)&&e>=0){var o=parseFloat(e),r=["never","once","twice"];return n(t[o])?String(t[o]):n(r[o])&&r[o].toString()||o.toString()+" times"}return null},pluralize:function(e,t,o){return n(e)&&n(t)?(o=n(o)?o:t+"s",1===parseInt(e,10)?t:o):null},truncate:function(e){var t=arguments.length<=1||void 0===arguments[1]?100:arguments[1],n=arguments.length<=2||void 0===arguments[2]?"...":arguments[2];return e.length>t?e.substring(0,t-n.length)+n:e},truncateWords:function(e,t){for(var o=e.split(" "),i="",r=0;rt?i+"...":null},truncatewords:function(){return l.truncateWords.apply(l,arguments)},boundedNumber:function(e){var t=arguments.length<=1||void 0===arguments[1]?100:arguments[1],n=arguments.length<=2||void 0===arguments[2]?"+":arguments[2],o=void 0;return i(e)&&i(t)&&e>t&&(o=t+n),(o||e).toString()},truncatenumber:function(){return l.boundedNumber.apply(l,arguments)},oxford:function(e,t,o){var i=e.length,r=void 0;if(i<2)return String(e);if(2===i)return e.join(" and ");if(n(t)&&i>t){var a=i-t;r=t,o=n(o)?o:", and "+a+" "+l.pluralize(a,"other")}else r=-1,o=", and "+e[i-1];return e.slice(0,r).join(", ")+o},dictionary:function(e){var t=arguments.length<=1||void 0===arguments[1]?" is ":arguments[1],o=arguments.length<=2||void 0===arguments[2]?", ":arguments[2];if(n(e)&&"object"===(void 0===e?"undefined":r(e))&&!a(e)){var i=[];for(var l in e)if(e.hasOwnProperty(l)){var s=e[l];i.push(""+l+t+s)}return i.join(o)}return""},frequency:function(e,t){if(!a(e))return null;var n=e.length,o=l.times(n);return 0===n?o+" "+t:t+" "+o},pace:function(t,n){var o=arguments.length<=2||void 0===arguments[2]?"time":arguments[2];if(0===t||0===n)return"No "+l.pluralize(0,o);for(var i="Approximately",r=void 0,a=void 0,s=t/n,c=0;c1){r=u.name;break}}r||(i="Less than",a=1,r=e[e.length-1].name);var d=Math.round(a);return o=l.pluralize(d,o),i+" "+d+" "+o+" per "+r},nl2br:function(e){var t=arguments.length<=1||void 0===arguments[1]?"
":arguments[1];return e.replace(/\n/g,t)},br2nl:function(e){var t=arguments.length<=1||void 0===arguments[1]?"\r\n":arguments[1];return e.replace(/\/g,t)},capitalize:function(e){var t=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];return""+e.charAt(0).toUpperCase()+(t?e.slice(1).toLowerCase():e.slice(1))},capitalizeAll:function(e){return e.replace(/(?:^|\s)\S/g,function(e){return e.toUpperCase()})},titleCase:function(e){var t=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,n=/\S+[A-Z]+\S*/,o=/\s+/,i=/-/,r=void 0;return(r=function(e){for(var a=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],s=arguments.length<=2||void 0===arguments[2]||arguments[2],c=[],u=e.split(a?i:o),d=0;d3&&(t=n.call(t,1));for(var i=this._$handlers[e],r=i.length,a=0;a4&&(t=n.call(t,1,t.length-1));for(var i=t[t.length-1],r=this._$handlers[e],a=r.length,l=0;l=0||o&&i.indexOf(o,l)<0)){var s=t.getShallow(l);null!=s&&(r[e[a][0]]=s)}}return r}}var i=n(0);e.exports=o},function(e,t,n){"use strict";function o(e,t,n){this.$children.forEach(function(i){i.$options.componentName===e?i.$emit.apply(i,[t].concat(n)):o.apply(i,[e,t].concat([n]))})}t.__esModule=!0,t.default={methods:{dispatch:function(e,t,n){for(var o=this.$parent||this.$root,i=o.$options.componentName;o&&(!i||i!==e);)(o=o.$parent)&&(i=o.$options.componentName);o&&o.$emit.apply(o,[t].concat(n))},broadcast:function(e,t,n){o.call(this,e,t,n)}}}},function(e,t,n){"use strict";var o=n(649),i=n(235),r=n(30),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){var o=n(39),i=n(7),r=n(133),a=n(10),l=n(95),s=l.devicePixelRatio,c={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},u=[],d=[],f=[],p=[],h=Math.min,g=Math.max,m=Math.cos,v=Math.sin,b=Math.sqrt,x=Math.abs,y="undefined"!=typeof Float32Array,_=function(e){this._saveData=!e,this._saveData&&(this.data=[]),this._ctx=null};_.prototype={constructor:_,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(e,t){this._ux=x(1/s/e)||0,this._uy=x(1/s/t)||0},getContext:function(){return this._ctx},beginPath:function(e){return this._ctx=e,e&&e.beginPath(),e&&(this.dpr=e.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(e,t){return this.addData(c.M,e,t),this._ctx&&this._ctx.moveTo(e,t),this._x0=e,this._y0=t,this._xi=e,this._yi=t,this},lineTo:function(e,t){var n=x(e-this._xi)>this._ux||x(t-this._yi)>this._uy||this._len<5;return this.addData(c.L,e,t),this._ctx&&n&&(this._needsDash()?this._dashedLineTo(e,t):this._ctx.lineTo(e,t)),n&&(this._xi=e,this._yi=t),this},bezierCurveTo:function(e,t,n,o,i,r){return this.addData(c.C,e,t,n,o,i,r),this._ctx&&(this._needsDash()?this._dashedBezierTo(e,t,n,o,i,r):this._ctx.bezierCurveTo(e,t,n,o,i,r)),this._xi=i,this._yi=r,this},quadraticCurveTo:function(e,t,n,o){return this.addData(c.Q,e,t,n,o),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(e,t,n,o):this._ctx.quadraticCurveTo(e,t,n,o)),this._xi=n,this._yi=o,this},arc:function(e,t,n,o,i,r){return this.addData(c.A,e,t,n,n,o,i-o,0,r?0:1),this._ctx&&this._ctx.arc(e,t,n,o,i,r),this._xi=m(i)*n+e,this._yi=v(i)*n+e,this},arcTo:function(e,t,n,o,i){return this._ctx&&this._ctx.arcTo(e,t,n,o,i),this},rect:function(e,t,n,o){return this._ctx&&this._ctx.rect(e,t,n,o),this.addData(c.R,e,t,n,o),this},closePath:function(){this.addData(c.Z);var e=this._ctx,t=this._x0,n=this._y0;return e&&(this._needsDash()&&this._dashedLineTo(t,n),e.closePath()),this._xi=t,this._yi=n,this},fill:function(e){e&&e.fill(),this.toStatic()},stroke:function(e){e&&e.stroke(),this.toStatic()},setLineDash:function(e){if(e instanceof Array){this._lineDash=e,this._dashIdx=0;for(var t=0,n=0;nt.length&&(this._expandData(),t=this.data);for(var n=0;n0&&p<=e||u<0&&p>=e||0==u&&(d>0&&m<=t||d<0&&m>=t);)o=this._dashIdx,n=a[o],p+=u*n,m+=d*n,this._dashIdx=(o+1)%v,u>0&&ps||d>0&&mc||l[o%2?"moveTo":"lineTo"](u>=0?h(p,e):g(p,e),d>=0?h(m,t):g(m,t));u=p-e,d=m-t,this._dashOffset=-b(u*u+d*d)},_dashedBezierTo:function(e,t,n,i,r,a){var l,s,c,u,d,f=this._dashSum,p=this._dashOffset,h=this._lineDash,g=this._ctx,m=this._xi,v=this._yi,x=o.cubicAt,y=0,_=this._dashIdx,w=h.length,k=0;for(p<0&&(p=f+p),p%=f,l=0;l<1;l+=.1)s=x(m,e,n,r,l+.1)-x(m,e,n,r,l),c=x(v,t,i,a,l+.1)-x(v,t,i,a,l),y+=b(s*s+c*c);for(;_p);_++);for(l=(k-p)/y;l<=1;)u=x(m,e,n,r,l),d=x(v,t,i,a,l),_%2?g.moveTo(u,d):g.lineTo(u,d),l+=h[_]/y,_=(_+1)%w;_%2!=0&&g.lineTo(r,a),s=r-u,c=a-d,this._dashOffset=-b(s*s+c*c)},_dashedQuadraticTo:function(e,t,n,o){var i=n,r=o;n=(n+2*e)/3,o=(o+2*t)/3,e=(this._xi+2*e)/3,t=(this._yi+2*t)/3,this._dashedBezierTo(e,t,n,o,i,r)},toStatic:function(){var e=this.data;e instanceof Array&&(e.length=this._len,y&&(this.data=new Float32Array(e)))},getBoundingRect:function(){u[0]=u[1]=f[0]=f[1]=Number.MAX_VALUE,d[0]=d[1]=p[0]=p[1]=-Number.MAX_VALUE;for(var e=this.data,t=0,n=0,o=0,l=0,s=0;ss||x(a-i)>u||f===d-1)&&(e.lineTo(r,a),o=r,i=a);break;case c.C:e.bezierCurveTo(l[f++],l[f++],l[f++],l[f++],l[f++],l[f++]),o=l[f-2],i=l[f-1];break;case c.Q:e.quadraticCurveTo(l[f++],l[f++],l[f++],l[f++]),o=l[f-2],i=l[f-1];break;case c.A:var h=l[f++],g=l[f++],b=l[f++],y=l[f++],_=l[f++],w=l[f++],k=l[f++],S=l[f++],M=b>y?b:y,C=b>y?1:b/y,A=b>y?y/b:1,T=Math.abs(b-y)>.001,E=_+w;T?(e.translate(h,g),e.rotate(k),e.scale(C,A),e.arc(0,0,M,_,E,1-S),e.scale(1/C,1/A),e.rotate(-k),e.translate(-h,-g)):e.arc(h,g,M,_,E,1-S),1==f&&(t=m(_)*b+h,n=v(_)*y+g),o=m(E)*b+h,i=v(E)*y+g;break;case c.R:t=o=l[f],n=i=l[f+1],e.rect(l[f++],l[f++],l[f++],l[f++]);break;case c.Z:e.closePath(),o=t,i=n}}}},_.CMD=c;var w=_;e.exports=w},function(e,t){var n=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){function o(e){this.group=new r.Group,this._symbolCtor=e||a}function i(e,t,n){var o=e.getItemLayout(t);return o&&!isNaN(o[0])&&!isNaN(o[1])&&!(n&&n(t))&&"none"!==e.getItemVisual(t,"symbol")}var r=n(2),a=n(82),l=o.prototype;l.updateData=function(e,t){var n=this.group,o=e.hostModel,a=this._data,l=this._symbolCtor,s={itemStyle:o.getModel("itemStyle.normal").getItemStyle(["color"]),hoverItemStyle:o.getModel("itemStyle.emphasis").getItemStyle(),symbolRotate:o.get("symbolRotate"),symbolOffset:o.get("symbolOffset"),hoverAnimation:o.get("hoverAnimation"),labelModel:o.getModel("label.normal"),hoverLabelModel:o.getModel("label.emphasis"),cursorStyle:o.get("cursor")};e.diff(a).add(function(o){var r=e.getItemLayout(o);if(i(e,o,t)){var a=new l(e,o,s);a.attr("position",r),e.setItemGraphicEl(o,a),n.add(a)}}).update(function(c,u){var d=a.getItemGraphicEl(u),f=e.getItemLayout(c);if(!i(e,c,t))return void n.remove(d);d?(d.updateData(e,c,s),r.updateProps(d,{position:f},o)):(d=new l(e,c),d.attr("position",f)),n.add(d),e.setItemGraphicEl(c,d)}).remove(function(e){var t=a.getItemGraphicEl(e);t&&t.fadeOut(function(){n.remove(t)})}).execute(),this._data=e},l.updateLayout=function(){var e=this._data;e&&e.eachItemGraphicEl(function(t,n){var o=e.getItemLayout(n);t.attr("position",o)})},l.remove=function(e){var t=this.group,n=this._data;n&&(e?n.eachItemGraphicEl(function(e){e.fadeOut(function(){t.remove(e)})}):t.removeAll())};var s=o;e.exports=s},function(e,t,n){function o(e,t){if(e&&("treemapZoomToNode"===e.type||"treemapRootToNode"===e.type)){var n=t.getData().tree.root,o=e.targetNode;if(o&&n.contains(o))return{node:o};var i=e.targetNodeId;if(null!=i&&(o=n.getNodeById(i)))return{node:o}}}function i(e){for(var t=[];e;)(e=e.parentNode)&&t.push(e);return t.reverse()}function r(e,t){var n=i(e);return l.indexOf(n,t)>=0}function a(e,t){for(var n=[];e;){var o=e.dataIndex;n.push({name:e.name,dataIndex:o,value:t.getRawValue(o)}),e=e.parentNode}return n.reverse(),n}var l=n(0);t.retrieveTargetInfo=o,t.getPathToRoot=i,t.aboveViewRoot=r,t.wrapTreePathInfo=a},function(e,t,n){var o=n(1),i=n(0),r=n(84),a=n(481);n(477),n(478),n(180),o.registerPreprocessor(function(e){if(e){(!e.axisPointer||0===e.axisPointer.length)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!i.isArray(t)&&(e.axisPointer.link=[t])}}),o.registerProcessor(o.PRIORITY.PROCESSOR.STATISTIC,function(e,t){e.getComponent("axisPointer").coordSysAxesInfo=r.collect(e,t)}),o.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},a)},function(e,t,n){function o(e){var t={};return f(["start","end","startValue","endValue","throttle"],function(n){e.hasOwnProperty(n)&&(t[n]=e[n])}),t}function i(e,t){var n=e._rangePropMode,o=e.get("rangeMode");f([["start","startValue"],["end","endValue"]],function(e,i){var r=null!=t[e[0]],a=null!=t[e[1]];r&&!a?n[i]="percent":!r&&a?n[i]="value":o?n[i]=o[i]:r&&(n[i]="percent")})}var r=n(4),a=(r.__DEV__,n(1)),l=n(0),s=n(15),c=n(5),u=n(117),d=n(492),f=l.each,p=u.eachAxisDim,h=a.extendComponentModel({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(e,t,n){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var i=o(e);this.mergeDefaultAndTheme(e,n),this.doInit(i)},mergeOption:function(e){var t=o(e);l.merge(this.option,e,!0),this.doInit(t)},doInit:function(e){var t=this.option;s.canvasSupported||(t.realtime=!1),this._setDefaultThrottle(e),i(this,e),f([["start","startValue"],["end","endValue"]],function(e,n){"value"===this._rangePropMode[n]&&(t[e[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var e=this._axisProxies;this.eachTargetAxis(function(t,n,o,i){var r=this.dependentModels[t.axis][n],a=r.__dzAxisProxy||(r.__dzAxisProxy=new d(t.name,n,this,i));e[t.name+"_"+n]=a},this)},_resetTarget:function(){var e=this.option,t=this._judgeAutoMode();p(function(t){var n=t.axisIndex;e[n]=c.normalizeToArray(e[n])},this),"axisIndex"===t?this._autoSetAxisIndex():"orient"===t&&this._autoSetOrient()},_judgeAutoMode:function(){var e=this.option,t=!1;p(function(n){null!=e[n.axisIndex]&&(t=!0)},this);var n=e.orient;return null==n&&t?"orient":t?void 0:(null==n&&(e.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var e=!0,t=this.get("orient",!0),n=this.option,o=this.dependentModels;if(e){var i="vertical"===t?"y":"x";o[i+"Axis"].length?(n[i+"AxisIndex"]=[0],e=!1):f(o.singleAxis,function(o){e&&o.get("orient",!0)===t&&(n.singleAxisIndex=[o.componentIndex],e=!1)})}e&&p(function(t){if(e){var o=[],i=this.dependentModels[t.axis];if(i.length&&!o.length)for(var r=0,a=i.length;r0?100:20}},getFirstTargetAxisModel:function(){var e;return p(function(t){if(null==e){var n=this.get(t.axisIndex);n.length&&(e=this.dependentModels[t.axis][n[0]])}},this),e},eachTargetAxis:function(e,t){var n=this.ecModel;p(function(o){f(this.get(o.axisIndex),function(i){e.call(t,o,i,this,n)},this)},this)},getAxisProxy:function(e,t){return this._axisProxies[e+"_"+t]},getAxisModel:function(e,t){var n=this.getAxisProxy(e,t);return n&&n.getAxisModel()},setRawRange:function(e,t){var n=this.option;f([["start","startValue"],["end","endValue"]],function(t){null==e[t[0]]&&null==e[t[1]]||(n[t[0]]=e[t[0]],n[t[1]]=e[t[1]])},this),!t&&i(this,e)},getPercentRange:function(){var e=this.findRepresentativeAxisProxy();if(e)return e.getDataPercentWindow()},getValueRange:function(e,t){if(null!=e||null!=t)return this.getAxisProxy(e,t).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(e){if(e)return e.__dzAxisProxy;var t=this._axisProxies;for(var n in t)if(t.hasOwnProperty(n)&&t[n].hostedBy(this))return t[n];for(var n in t)if(t.hasOwnProperty(n)&&!t[n].hostedBy(this))return t[n]},getRangePropMode:function(){return this._rangePropMode.slice()}}),g=h;e.exports=g},function(e,t,n){var o=n(129),i=o.extend({type:"dataZoom",render:function(e,t,n,o){this.dataZoomModel=e,this.ecModel=t,this.api=n},getTargetCoordInfo:function(){function e(e,t,n,o){for(var i,r=0;rl&&(t[1-r]=t[r]+f.sign*l),t}function o(e,t){var n=e[t]-e[1-t];return{span:Math.abs(n),sign:n>0?-1:n<0?1:t?-1:1}}function i(e,t){return Math.min(t[1],Math.max(t[0],e))}e.exports=n},function(e,t,n){var o=n(95),i=o.debugMode,r=function(){};1===i?r=function(){for(var e in arguments)throw new Error(arguments[e])}:i>1&&(r=function(){for(var e in arguments)console.log(arguments[e])});var a=r;e.exports=a},function(e,t,n){function o(e){i.call(this,e)}var i=n(97),r=n(10),a=n(0),l=n(135);o.prototype={constructor:o,type:"image",brush:function(e,t){var n=this.style,o=n.image;n.bind(e,this,t);var i=this._image=l.createOrUpdateImage(o,this._image,this,this.onload);if(i&&l.isImageReady(i)){var r=n.x||0,a=n.y||0,s=n.width,c=n.height,u=i.width/i.height;if(null==s&&null!=c?s=c*u:null==c&&null!=s?c=s/u:null==s&&null==c&&(s=i.width,c=i.height),this.setTransform(e),n.sWidth&&n.sHeight){var d=n.sx||0,f=n.sy||0;e.drawImage(i,d,f,n.sWidth,n.sHeight,r,a,s,c)}else if(n.sx&&n.sy){var d=n.sx,f=n.sy,p=s-d,h=c-f;e.drawImage(i,d,f,p,h,r,a,s,c)}else e.drawImage(i,r,a,s,c);this.restoreTransform(e),null!=n.text&&this.drawRectText(e,this.getBoundingRect())}},getBoundingRect:function(){var e=this.style;return this._rect||(this._rect=new r(e.x||0,e.y||0,e.width||0,e.height||0)),this._rect}},a.inherits(o,i);var s=o;e.exports=s},function(e,t,n){var o=n(97),i=n(0),r=n(27),a=n(99),l=function(e){o.call(this,e)};l.prototype={constructor:l,type:"text",brush:function(e,t){var n=this.style;this.__dirty&&a.normalizeTextStyle(n,!0),n.fill=n.stroke=n.shadowBlur=n.shadowColor=n.shadowOffsetX=n.shadowOffsetY=null;var o=n.text;null!=o&&(o+=""),n.bind(e,this,t),a.needDrawText(o,n)&&(this.setTransform(e),a.renderText(this,e,o,n),this.restoreTransform(e))},getBoundingRect:function(){var e=this.style;if(this.__dirty&&a.normalizeTextStyle(e,!0),!this._rect){var t=e.text;null!=t?t+="":t="";var n=r.getBoundingRect(e.text+"",e.font,e.textAlign,e.textVerticalAlign,e.textPadding,e.rich);if(n.x+=e.x||0,n.y+=e.y||0,a.getStroke(e.textStroke,e.textStrokeWidth)){var o=e.textStrokeWidth;n.x-=o/2,n.y-=o/2,n.width+=o,n.height+=o}this._rect=n}return this._rect}},i.inherits(l,o);var s=l;e.exports=s},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(309),r=o(i),a=n(308),l=o(a),s="function"==typeof l.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof l.default&&e.constructor===l.default&&e!==l.default.prototype?"symbol":typeof e};t.default="function"==typeof l.default&&"symbol"===s(r.default)?function(e){return void 0===e?"undefined":s(e)}:function(e){return e&&"function"==typeof l.default&&e.constructor===l.default&&e!==l.default.prototype?"symbol":void 0===e?"undefined":s(e)}},function(e,t,n){var o=n(64);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=!0},function(e,t,n){var o=n(160),i=n(102);e.exports=Object.keys||function(e){return o(e,i)}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var n=0,o=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+o).toString(36))}},function(e,t,n){function o(e,t){var n=e.getItemVisual(t,"symbolSize");return n instanceof Array?n.slice():[+n,+n]}function i(e){return[e[0]/2,e[1]/2]}function r(e,t,n){u.Group.call(this),this.updateData(e,t,n)}function a(e,t){this.parent.drift(e,t)}var l=n(0),s=n(23),c=s.createSymbol,u=n(2),d=n(3),f=d.parsePercent,p=n(173),h=p.findLabelValueDim,g=r.prototype;g._createSymbol=function(e,t,n,o){this.removeAll();var r=t.getItemVisual(n,"color"),l=c(e,-1,-1,2,2,r);l.attr({z2:100,culling:!0,scale:i(o)}),l.drift=a,this._symbolType=e,this.add(l)},g.stopSymbolAnimation=function(e){this.childAt(0).stopAnimation(e)},g.getSymbolPath=function(){return this.childAt(0)},g.getScale=function(){return this.childAt(0).scale},g.highlight=function(){this.childAt(0).trigger("emphasis")},g.downplay=function(){this.childAt(0).trigger("normal")},g.setZ=function(e,t){var n=this.childAt(0);n.zlevel=e,n.z=t},g.setDraggable=function(e){var t=this.childAt(0);t.draggable=e,t.cursor=e?"move":"pointer"},g.updateData=function(e,t,n){this.silent=!1;var r=e.getItemVisual(t,"symbol")||"circle",a=e.hostModel,l=o(e,t),s=r!==this._symbolType;if(s)this._createSymbol(r,e,t,l);else{var c=this.childAt(0);c.silent=!1,u.updateProps(c,{scale:i(l)},a,t)}if(this._updateCommon(e,t,l,n),s){var c=this.childAt(0),d=n&&n.fadeIn,f={scale:c.scale.slice()};d&&(f.style={opacity:c.style.opacity}),c.scale=[0,0],d&&(c.style.opacity=0),u.initProps(c,f,a,t)}this._seriesModel=a};var m=["itemStyle","normal"],v=["itemStyle","emphasis"],b=["label","normal"],x=["label","emphasis"];g._updateCommon=function(e,t,n,o){var r=this.childAt(0),a=e.hostModel,s=e.getItemVisual(t,"color");"image"!==r.type&&r.useStyle({strokeNoScale:!0});var c=o&&o.itemStyle,d=o&&o.hoverItemStyle,p=o&&o.symbolRotate,g=o&&o.symbolOffset,y=o&&o.labelModel,_=o&&o.hoverLabelModel,w=o&&o.hoverAnimation,k=o&&o.cursorStyle;if(!o||e.hasItemOption){var S=o&&o.itemModel?o.itemModel:e.getItemModel(t);c=S.getModel(m).getItemStyle(["color"]),d=S.getModel(v).getItemStyle(),p=S.getShallow("symbolRotate"),g=S.getShallow("symbolOffset"),y=S.getModel(b),_=S.getModel(x),w=S.getShallow("hoverAnimation"),k=S.getShallow("cursor")}else d=l.extend({},d);var M=r.style;r.attr("rotation",(p||0)*Math.PI/180||0),g&&r.attr("position",[f(g[0],n[0]),f(g[1],n[1])]),k&&r.attr("cursor",k),r.setColor(s,o&&o.symbolInnerColor),r.setStyle(c);var C=e.getItemVisual(t,"opacity");null!=C&&(M.opacity=C);var A=o&&o.useNameLabel,T=!A&&h(e);(A||null!=T)&&u.setLabelStyle(M,d,y,_,{labelFetcher:a,labelDataIndex:t,defaultText:A?e.getName(t):e.get(T,t),isRectText:!0,autoColor:s}),r.off("mouseover").off("mouseout").off("emphasis").off("normal"),r.hoverStyle=d,u.setHoverStyle(r);var E=i(n);if(w&&a.isAnimationEnabled()){var I=function(){var e=E[1]/E[0];this.animateTo({scale:[Math.max(1.1*E[0],E[0]+3),Math.max(1.1*E[1],E[1]+3*e)]},400,"elasticOut")},O=function(){this.animateTo({scale:E},400,"elasticOut")};r.on("mouseover",I).on("mouseout",O).on("emphasis",I).on("normal",O)}},g.fadeOut=function(e,t){var n=this.childAt(0);this.silent=n.silent=!0,!(t&&t.keepLabel)&&(n.style.text=null),u.updateProps(n,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,e)},l.inherits(r,u.Group);var y=r;e.exports=y},function(e,t,n){var o=n(13),i=n(25),r=n(411),a=n(0),l={_baseAxisDim:null,getInitialData:function(e,t){var n,r,l=t.getComponent("xAxis",this.get("xAxisIndex")),s=t.getComponent("yAxis",this.get("yAxisIndex")),c=l.get("type"),u=s.get("type");"category"===c?(e.layout="horizontal",n=l.getCategories(),r=!0):"category"===u?(e.layout="vertical",n=s.getCategories(),r=!0):e.layout=e.layout||"horizontal";var d=["x","y"],f="horizontal"===e.layout?0:1,p=this._baseAxisDim=d[f],h=d[1-f],g=e.data;r&&a.each(g,function(e,t){e.value&&a.isArray(e.value)?e.value.unshift(t):a.isArray(e)&&e.unshift(t)});var m=this.defaultValueDimensions,v=[{name:p,otherDims:{tooltip:!1},dimsDef:["base"]},{name:h,dimsDef:m.slice()}];v=i(v,g,{encodeDef:this.get("encode"),dimsDef:this.get("dimensions"),dimCount:m.length+1});var b=new o(v,this);return b.initData(g,n?n.slice():null),b},getBaseAxis:function(){var e=this._baseAxisDim;return this.ecModel.getComponent(e+"Axis",this.get(e+"AxisIndex")).axis}},s={init:function(){var e=this._whiskerBoxDraw=new r(this.getStyleUpdater());this.group.add(e.group)},render:function(e,t,n){this._whiskerBoxDraw.updateData(e.getData())},remove:function(e){this._whiskerBoxDraw.remove()}};t.seriesModelMixin=l,t.viewMixin=s},function(e,t,n){function o(e,t){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return i(n,e,t),n.seriesInvolved&&a(n,e),n}function i(e,t,n){var o=t.getComponent("tooltip"),i=t.getComponent("axisPointer"),a=i.get("link",!0)||[],s=[];m(n.getCoordinateSystems(),function(n){function c(o,c,u){var h=u.model.getModel("axisPointer",i),m=h.get("show");if(m&&("auto"!==m||o||f(h))){null==c&&(c=h.get("triggerTooltip")),h=o?r(u,g,i,t,o,c):h;var v=h.get("snap"),b=p(u.model),x=c||v||"category"===u.type,y=e.axesInfo[b]={key:b,axis:u,coordSys:n,axisPointerModel:h,triggerTooltip:c,involveSeries:x,snap:v,useHandle:f(h),seriesModels:[]};d[b]=y,e.seriesInvolved|=x;var _=l(a,u);if(null!=_){var w=s[_]||(s[_]={axesInfo:{}});w.axesInfo[b]=y,w.mapper=a[_].mapper,y.linkGroup=w}}}if(n.axisPointerEnabled){var u=p(n.model),d=e.coordSysAxesInfo[u]={};e.coordSysMap[u]=n;var h=n.model,g=h.getModel("tooltip",o);if(m(n.getAxes(),v(c,!1,null)),n.getTooltipAxes&&o&&g.get("show")){var b="axis"===g.get("trigger"),x="cross"===g.get("axisPointer.type"),y=n.getTooltipAxes(g.get("axisPointer.axis"));(b||x)&&m(y.baseAxes,v(c,!x||"cross",b)),x&&m(y.otherAxes,v(c,"cross",!1))}}})}function r(e,t,n,o,i,r){var a=t.getModel("axisPointer"),l={};m(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],function(e){l[e]=h.clone(a.get(e))}),l.snap="category"!==e.type&&!!r,"cross"===a.get("type")&&(l.type="line");var s=l.label||(l.label={});if(null==s.show&&(s.show=!1),"cross"===i&&(s.show=!0,!r)){var c=l.lineStyle=a.get("crossStyle");c&&h.defaults(s,c.textStyle)}return e.model.getModel("axisPointer",new g(l,n,o))}function a(e,t){t.eachSeries(function(t){var n=t.coordinateSystem,o=t.get("tooltip.trigger",!0),i=t.get("tooltip.show",!0);n&&"none"!==o&&!1!==o&&"item"!==o&&!1!==i&&!1!==t.get("axisPointer.show",!0)&&m(e.coordSysAxesInfo[p(n.model)],function(e){var o=e.axis;n.getAxis(o.dim)===o&&(e.seriesModels.push(t),null==e.seriesDataCount&&(e.seriesDataCount=0),e.seriesDataCount+=t.getData().count())})},this)}function l(e,t){for(var n=t.model,o=t.dim,i=0;i=0||e===t}function c(e){var t=u(e);if(t){var n=t.axisPointerModel,o=t.axis.scale,i=n.option,r=n.get("status"),a=n.get("value");null!=a&&(a=o.parse(a));var l=f(n);null==r&&(i.status=l?"show":"hide");var s=o.getExtent().slice();s[0]>s[1]&&s.reverse(),(null==a||a>s[1])&&(a=s[1]),a0?1.1:1/1.1;c.call(this,e,t,e.offsetX,e.offsetY)}}function s(e){if(!h.isTaken(this._zr,"globalPan")){var t=e.pinchScale>1?1.1:1/1.1;c.call(this,e,t,e.pinchX,e.pinchY)}}function c(e,t,n,o){this.pointerChecker&&this.pointerChecker(e,n,o)&&(p.stop(e.event),this.trigger("zoom",t,n,o))}function u(e,t,n){var o=e._opt[t];return o&&(!d.isString(o)||n.event[o+"Key"])}var d=n(0),f=n(49),p=n(31),h=n(190);d.mixin(o,f);var g=o;e.exports=g},function(e,t,n){function o(e,t,n,o){i.each(u,function(a){t.extend({type:e+"Axis."+a,mergeDefaultAndTheme:function(t,o){var r=this.layoutMode,l=r?s(t):{},u=o.getTheme();i.merge(t,u.get(a+"Axis")),i.merge(t,this.getDefaultOption()),t.type=n(e,t),r&&c(t,l,r)},defaultOption:i.mergeAll([{},r[a+"Axis"],o],!0)})}),a.registerSubTypeDefaulter(e+"Axis",i.curry(n,e))}var i=n(0),r=n(207),a=n(14),l=n(6),s=l.getLayoutParams,c=l.mergeLayoutParam,u=["value","category","time","log"];e.exports=o},function(e,t,n){function o(e,t){var n=e.get("boundingCoords");if(null!=n){var o=n[0],i=n[1];isNaN(o[0])||isNaN(o[1])||isNaN(i[0])||isNaN(i[1])||this.setBoundingRect(o[0],o[1],i[0]-o[0],i[1]-o[1])}var r,a=this.getBoundingRect(),l=e.get("layoutCenter"),s=e.get("layoutSize"),d=t.getWidth(),f=t.getHeight(),p=e.get("aspectScale")||.75,h=a.width/a.height*p,g=!1;l&&s&&(l=[u.parsePercent(l[0],d),u.parsePercent(l[1],f)],s=u.parsePercent(s,Math.min(d,f)),isNaN(l[0])||isNaN(l[1])||isNaN(s)||(g=!0));var m;if(g){var m={};h>1?(m.width=s,m.height=s/h):(m.height=s,m.width=s*h),m.y=l[1]-m.height/2,m.x=l[0]-m.width/2}else r=e.getBoxLayoutParams(),r.aspect=h,m=c.getLayoutRect(r,{width:d,height:f});this.setViewRect(m.x,m.y,m.width,m.height),this.setCenter(e.get("center")),this.setZoom(e.get("zoom"))}function i(e,t){l.each(t.get("geoCoord"),function(t,n){e.addGeoCoord(n,t)})}var r=n(4),a=(r.__DEV__,n(1)),l=n(0),s=n(562),c=n(6),u=n(3),d={dimensions:s.prototype.dimensions,create:function(e,t){var n=[];e.eachComponent("geo",function(e,r){var l=e.get("map"),c=a.getMap(l),u=new s(l+r,l,c&&c.geoJson,c&&c.specialAreas,e.get("nameMap"));u.zoomLimit=e.get("scaleLimit"),n.push(u),i(u,e),e.coordinateSystem=u,u.model=e,u.resize=o,u.resize(e,t)}),e.eachSeries(function(e){if("geo"===e.get("coordinateSystem")){var t=e.get("geoIndex")||0;e.coordinateSystem=n[t]}});var r={};return e.eachSeriesByType("map",function(e){if(!e.getHostGeoModel()){var t=e.getMapType();r[t]=r[t]||[],r[t].push(e)}}),l.each(r,function(e,r){var c=a.getMap(r),u=l.map(e,function(e){return e.get("nameMap")}),d=new s(r,r,c&&c.geoJson,c&&c.specialAreas,l.mergeAll(u));d.zoomLimit=l.retrieve.apply(null,l.map(e,function(e){return e.get("scaleLimit")})),n.push(d),d.resize=o,d.resize(e[0],t),l.each(e,function(e){e.coordinateSystem=d,i(d,e)})}),n},getFilledRegions:function(e,t,n){var o=(e||[]).slice();n=n||{};var i=a.getMap(t),r=i&&i.geoJson;if(!r)return e;for(var s=l.createHashMap(),c=r.features,u=0;ut[1]&&(t[1]=e[1]),s.prototype.setExtent.call(this,t[0],t[1])},getInterval:function(){return this._interval},setInterval:function(e){this._interval=e,this._niceExtent=this._extent.slice(),this._intervalPrecision=a.getIntervalPrecision(e)},getTicks:function(){return a.intervalScaleGetTicks(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getTicksLabels:function(){for(var e=[],t=this.getTicks(),n=0;n=t[0]&&e<=t[1]},o.prototype.normalize=function(e){var t=this._extent;return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])},o.prototype.scale=function(e){var t=this._extent;return e*(t[1]-t[0])+t[0]},o.prototype.unionExtent=function(e){var t=this._extent;e[0]t[1]&&(t[1]=e[1])},o.prototype.unionExtentFromData=function(e,t){this.unionExtent(e.getDataExtent(t,!0))},o.prototype.getExtent=function(){return this._extent.slice()},o.prototype.setExtent=function(e,t){var n=this._extent;isNaN(e)||(n[0]=e),isNaN(t)||(n[1]=t)},o.prototype.getTicksLabels=function(){for(var e=[],t=this.getTicks(),n=0;n-1?"center "+n:n+" center"}},appendArrow:function(e){var t=void 0;if(!this.appended){this.appended=!0;for(var n in e.attributes)if(/^_v-/.test(e.attributes[n].name)){t=e.attributes[n].name;break}var o=document.createElement("div");t&&o.setAttribute(t,""),o.setAttribute("x-arrow",""),o.className="popper__arrow",e.appendChild(o)}}},beforeDestroy:function(){this.doDestroy(!0),this.popperElm&&this.popperElm.parentNode===document.body&&(this.popperElm.removeEventListener("click",l),document.body.removeChild(this.popperElm))},deactivated:function(){this.$options.beforeDestroy[0].call(this)}}},function(e,t){var n=1;"undefined"!=typeof window&&(n=Math.max(window.devicePixelRatio||1,1));var o=n;t.debugMode=0,t.devicePixelRatio=o},function(e,t,n){var o=n(0),i=n(236),r=n(10),a=function(e){e=e||{},i.call(this,e);for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);this._children=[],this.__storage=null,this.__dirty=!0};a.prototype={constructor:a,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(e){return this._children[e]},childOfName:function(e){for(var t=this._children,n=0;n=0&&(n.splice(o,0,e),this._doAdd(e))}return this},_doAdd:function(e){e.parent&&e.parent.remove(e),e.parent=this;var t=this.__storage,n=this.__zr;t&&t!==e.__storage&&(t.addToStorage(e),e instanceof a&&e.addChildrenToStorage(t)),n&&n.refresh()},remove:function(e){var t=this.__zr,n=this.__storage,i=this._children,r=o.indexOf(i,e);return r<0?this:(i.splice(r,1),e.parent=null,n&&(n.delFromStorage(e),e instanceof a&&e.delChildrenFromStorage(n)),t&&t.refresh(),this)},removeAll:function(){var e,t,n=this._children,o=this.__storage;for(t=0;t=0&&(M=A[z],"right"===M.textAlign);)u(e,t,M,o,I,w,D,"right"),O-=M.width,D-=M.width,z--;for(P+=(r-(P-_)-(k-D)-O)/2;L<=z;)M=A[L],u(e,t,M,o,I,w,P+M.width/2,"center"),P+=M.width,L++;w+=I}}function c(e,t,n,o,i){if(n&&t.textRotation){var r=t.textOrigin;"center"===r?(o=n.width/2+n.x,i=n.height/2+n.y):r&&(o=r[0]+n.x,i=r[1]+n.y),e.translate(o,i),e.rotate(-t.textRotation),e.translate(-o,-i)}}function u(e,t,n,o,i,r,a,l){var s=o.rich[n.styleName]||{},c=n.textVerticalAlign,u=r+i/2;"top"===c?u=r+n.height/2:"bottom"===c&&(u=r+i-n.height/2),!n.isLineHolder&&d(s)&&f(e,t,s,"right"===l?a-n.width:"center"===l?a-n.width/2:a,u-n.height/2,n.width,n.height);var p=n.textPadding;p&&(a=x(a,l,p),u-=n.height/2-p[2]-n.textHeight/2),g(t,"shadowBlur",k(s.textShadowBlur,o.textShadowBlur,0)),g(t,"shadowColor",s.textShadowColor||o.textShadowColor||"transparent"),g(t,"shadowOffsetX",k(s.textShadowOffsetX,o.textShadowOffsetX,0)),g(t,"shadowOffsetY",k(s.textShadowOffsetY,o.textShadowOffsetY,0)),g(t,"textAlign",l),g(t,"textBaseline","middle"),g(t,"font",n.font||T.DEFAULT_FONT);var h=m(s.textStroke||o.textStroke,y),b=v(s.textFill||o.textFill),y=w(s.textStrokeWidth,o.textStrokeWidth);h&&(g(t,"lineWidth",y),g(t,"strokeStyle",h),t.strokeText(n.text,a,u)),b&&(g(t,"fillStyle",b),t.fillText(n.text,a,u))}function d(e){return e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor}function f(e,t,n,o,i,r,a){var l=n.textBackgroundColor,s=n.textBorderWidth,c=n.textBorderColor,u=C(l);if(g(t,"shadowBlur",n.textBoxShadowBlur||0),g(t,"shadowColor",n.textBoxShadowColor||"transparent"),g(t,"shadowOffsetX",n.textBoxShadowOffsetX||0),g(t,"shadowOffsetY",n.textBoxShadowOffsetY||0),u||s&&c){t.beginPath();var d=n.textBorderRadius;d?E.buildPath(t,{x:o,y:i,width:r,height:a,r:d}):t.rect(o,i,r,a),t.closePath()}if(u)g(t,"fillStyle",l),t.fill();else if(A(l)){var f=l.image;(f=I.createOrUpdateImage(f,null,e,p,l))&&I.isImageReady(f)&&t.drawImage(f,o,i,r,a)}s&&c&&(g(t,"lineWidth",s),g(t,"strokeStyle",c),t.stroke())}function p(e,t){t.image=e}function h(e,t,n){var o=t.x||0,i=t.y||0,r=t.textAlign,a=t.textVerticalAlign;if(n){var l=t.textPosition;if(l instanceof Array)o=n.x+b(l[0],n.width),i=n.y+b(l[1],n.height);else{var s=T.adjustTextPositionOnRect(l,n,t.textDistance);o=s.x,i=s.y,r=r||s.textAlign,a=a||s.textVerticalAlign}var c=t.textOffset;c&&(o+=c[0],i+=c[1])}return{baseX:o,baseY:i,textAlign:r,textVerticalAlign:a}}function g(e,t,n){return e[t]=n,e[t]}function m(e,t){return null==e||t<=0||"transparent"===e||"none"===e?null:e.image||e.colorStops?"#000":e}function v(e){return null==e||"none"===e?null:e.image||e.colorStops?"#000":e}function b(e,t){return"string"==typeof e?e.lastIndexOf("%")>=0?parseFloat(e)/100*t:parseFloat(e):e}function x(e,t,n){return"right"===t?e-n[1]:"center"===t?e+n[3]/2-n[1]/2:e+n[3]}function y(e,t){return null!=e&&(e||t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor||t.textPadding)}var _=n(0),w=_.retrieve2,k=_.retrieve3,S=_.each,M=_.normalizeCssArray,C=_.isString,A=_.isObject,T=n(27),E=n(251),I=n(135),O={left:1,right:1,center:1},L={top:1,bottom:1,middle:1};t.normalizeTextStyle=o,t.renderText=r,t.getStroke=m,t.getFill=v,t.needDrawText=y},function(e,t,n){function o(e,t){var n=new x(s(),e,t);return b[n.id]=n,n}function i(e){if(e)e.dispose();else{for(var t in b)b.hasOwnProperty(t)&&b[t].dispose();b={}}return this}function r(e){return b[e]}function a(e,t){v[e]=t}function l(e){delete b[e]}var s=n(245),c=n(15),u=n(0),d=n(660),f=n(663),p=n(662),h=n(664),g=n(672),m=!c.canvasSupported,v={canvas:p},b={},x=function(e,t,n){n=n||{},this.dom=t,this.id=e;var o=this,i=new f,r=n.renderer;if(m){if(!v.vml)throw new Error("You need to require 'zrender/vml/vml' to support IE8");r="vml"}else r&&v[r]||(r="canvas");var a=new v[r](t,i,n);this.storage=i,this.painter=a;var l=c.node?null:new g(a.getViewportRoot());this.handler=new d(i,a,l,a.root),this.animation=new h({stage:{update:u.bind(this.flush,this)}}),this.animation.start(),this._needsRefresh;var s=i.delFromStorage,p=i.addToStorage;i.delFromStorage=function(e){s.call(i,e),e&&e.removeSelfFromZr(o)},i.addToStorage=function(e){p.call(i,e),e.addSelfToZr(o)}};x.prototype={constructor:x,getId:function(){return this.id},add:function(e){this.storage.addRoot(e),this._needsRefresh=!0},remove:function(e){this.storage.delRoot(e),this._needsRefresh=!0},configLayer:function(e,t){this.painter.configLayer(e,t),this._needsRefresh=!0},refreshImmediately:function(){this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},refresh:function(){this._needsRefresh=!0},flush:function(){this._needsRefresh&&this.refreshImmediately(),this._needsRefreshHover&&this.refreshHoverImmediately()},addHover:function(e,t){this.painter.addHover&&(this.painter.addHover(e,t),this.refreshHover())},removeHover:function(e){this.painter.removeHover&&(this.painter.removeHover(e),this.refreshHover())},clearHover:function(){this.painter.clearHover&&(this.painter.clearHover(),this.refreshHover())},refreshHover:function(){this._needsRefreshHover=!0},refreshHoverImmediately:function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.refreshHover()},resize:function(e){e=e||{},this.painter.resize(e.width,e.height),this.handler.resize()},clearAnimation:function(){this.animation.clear()},getWidth:function(){return this.painter.getWidth()},getHeight:function(){return this.painter.getHeight()},pathToImage:function(e,t){return this.painter.pathToImage(e,t)},setCursorStyle:function(e){this.handler.setCursorStyle(e)},findHover:function(e,t){return this.handler.findHover(e,t)},on:function(e,t,n){this.handler.on(e,t,n)},off:function(e,t){this.handler.off(e,t)},trigger:function(e,t){this.handler.trigger(e,t)},clear:function(){this.storage.delRoot(),this.painter.clear()},dispose:function(){this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,l(this.id)}},t.version="3.7.4",t.init=o,t.dispose=i,t.getInstance=r,t.registerPainter=a},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var o=n(33),i=n(62),r=n(318),a=n(51),l=n(41),s=function(e,t,n){var c,u,d,f=e&s.F,p=e&s.G,h=e&s.S,g=e&s.P,m=e&s.B,v=e&s.W,b=p?i:i[t]||(i[t]={}),x=b.prototype,y=p?o:h?o[t]:(o[t]||{}).prototype;p&&(n=t);for(c in n)(u=!f&&y&&void 0!==y[c])&&l(b,c)||(d=u?y[c]:n[c],b[c]=p&&"function"!=typeof y[c]?n[c]:m&&u?r(d,o):v&&y[c]==d?function(e){var t=function(t,n,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,o)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):g&&"function"==typeof d?r(Function.call,d):d,g&&((b.virtual||(b.virtual={}))[c]=d,e&s.R&&x&&!x[c]&&a(x,c,d)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,t){e.exports={}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var o=n(52).f,i=n(41),r=n(54)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,r)&&o(e,r,{configurable:!0,value:t})}},function(e,t,n){var o=n(108)("keys"),i=n(81);e.exports=function(e){return o[e]||(o[e]=i(e))}},function(e,t,n){var o=n(62),i=n(33),r=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:o.version,mode:n(77)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){var n=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},function(e,t,n){var o=n(101);e.exports=function(e){return Object(o(e))}},function(e,t,n){var o=n(64);e.exports=function(e,t){if(!o(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!o(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!o(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!o(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var o=n(33),i=n(62),r=n(77),a=n(113),l=n(52).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=r?{}:o.Symbol||{});"_"==e.charAt(0)||e in t||l(t,e,{value:a.f(e)})}},function(e,t,n){t.f=n(54)},function(e,t,n){function o(e){return"_"+e+"Type"}function i(e,t,n){var o=t.getItemVisual(n,"color"),i=t.getItemVisual(n,e),r=t.getItemVisual(n,e+"Size");if(i&&"none"!==i){c.isArray(r)||(r=[r,r]);var a=d.createSymbol(i,-r[0]/2,-r[1]/2,r[0],r[1],o);return a.name=e,a}}function r(e){var t=new f({name:"line"});return a(t.shape,e),t}function a(e,t){var n=t[0],o=t[1],i=t[2];e.x1=n[0],e.y1=n[1],e.x2=o[0],e.y2=o[1],e.percent=1,i?(e.cpx1=i[0],e.cpy1=i[1]):(e.cpx1=NaN,e.cpy1=NaN)}function l(){var e=this,t=e.childOfName("fromSymbol"),n=e.childOfName("toSymbol"),o=e.childOfName("label");if(t||n||!o.ignore){for(var i=1,r=this.parent;r;)r.scale&&(i/=r.scale[0]),r=r.parent;var a=e.childOfName("line");if(this.__dirty||a.__dirty){var l=a.shape.percent,s=a.pointAt(0),c=a.pointAt(l),d=u.sub([],c,s);if(u.normalize(d,d),t){t.attr("position",s);var f=a.tangentAt(0);t.attr("rotation",Math.PI/2-Math.atan2(f[1],f[0])),t.attr("scale",[i*l,i*l])}if(n){n.attr("position",c);var f=a.tangentAt(1);n.attr("rotation",-Math.PI/2-Math.atan2(f[1],f[0])),n.attr("scale",[i*l,i*l])}if(!o.ignore){o.attr("position",c);var p,h,g,m=5*i;if("end"===o.__position)p=[d[0]*m+c[0],d[1]*m+c[1]],h=d[0]>.8?"left":d[0]<-.8?"right":"center",g=d[1]>.8?"top":d[1]<-.8?"bottom":"middle";else if("middle"===o.__position){var v=l/2,f=a.tangentAt(v),b=[f[1],-f[0]],x=a.pointAt(v);b[1]>0&&(b[0]=-b[0],b[1]=-b[1]),p=[x[0]+b[0]*m,x[1]+b[1]*m],h="center",g="bottom";var y=-Math.atan2(f[1],f[0]);c[0].8?"right":d[0]<-.8?"left":"center",g=d[1]>.8?"bottom":d[1]<-.8?"top":"middle";o.attr({style:{textVerticalAlign:o.__verticalAlign||g,textAlign:o.__textAlign||h},position:p,scale:[i,i]})}}}}function s(e,t,n){p.Group.call(this),this._createLine(e,t,n)}var c=n(0),u=n(7),d=n(23),f=n(410),p=n(2),h=n(3),g=h.round,m=["fromSymbol","toSymbol"],v=s.prototype;v.beforeUpdate=l,v._createLine=function(e,t,n){var a=e.hostModel,l=e.getItemLayout(t),s=r(l);s.shape.percent=0,p.initProps(s,{shape:{percent:1}},a,t),this.add(s);var u=new p.Text({name:"label"});this.add(u),c.each(m,function(n){var r=i(n,e,t);this.add(r),this[o(n)]=e.getItemVisual(t,n)},this),this._updateCommonStl(e,t,n)},v.updateData=function(e,t,n){var r=e.hostModel,l=this.childOfName("line"),s=e.getItemLayout(t),u={shape:{}};a(u.shape,s),p.updateProps(l,u,r,t),c.each(m,function(n){var r=e.getItemVisual(t,n),a=o(n);if(this[a]!==r){this.remove(this.childOfName(n));var l=i(n,e,t);this.add(l)}this[a]=r},this),this._updateCommonStl(e,t,n)},v._updateCommonStl=function(e,t,n){var o=e.hostModel,i=this.childOfName("line"),r=n&&n.lineStyle,a=n&&n.hoverLineStyle,l=n&&n.labelModel,s=n&&n.hoverLabelModel;if(!n||e.hasItemOption){var u=e.getItemModel(t);r=u.getModel("lineStyle.normal").getLineStyle(),a=u.getModel("lineStyle.emphasis").getLineStyle(),l=u.getModel("label.normal"),s=u.getModel("label.emphasis")}var d=e.getItemVisual(t,"color"),f=c.retrieve3(e.getItemVisual(t,"opacity"),r.opacity,1);i.useStyle(c.defaults({strokeNoScale:!0,fill:"none",stroke:d,opacity:f},r)),i.hoverStyle=a,c.each(m,function(e){var t=this.childOfName(e);t&&(t.setColor(d),t.setStyle({opacity:f}))},this);var h,v,b,x,y=l.getShallow("show"),_=s.getShallow("show"),w=this.childOfName("label");if(y||_){var k=o.getRawValue(t);v=null==k?v=e.getName(t):isFinite(k)?g(k):k,h=d||"#000",b=c.retrieve2(o.getFormattedLabel(t,"normal",e.dataType),v),x=c.retrieve2(o.getFormattedLabel(t,"emphasis",e.dataType),b)}if(y){var S=p.setTextStyle(w.style,l,{text:b},{autoColor:h});w.__textAlign=S.textAlign,w.__verticalAlign=S.textVerticalAlign,w.__position=l.get("position")||"middle"}else w.setStyle("text",null);w.hoverStyle=_?{text:x,textFill:s.getTextColor(!0),fontStyle:s.getShallow("fontStyle"),fontWeight:s.getShallow("fontWeight"),fontSize:s.getShallow("fontSize"),fontFamily:s.getShallow("fontFamily")}:{text:null},w.ignore=!y&&!_,p.setHoverStyle(this)},v.highlight=function(){this.trigger("emphasis")},v.downplay=function(){this.trigger("normal")},v.updateLayout=function(e,t){this.setLinePoints(e.getItemLayout(t))},v.setLinePoints=function(e){var t=this.childOfName("line");a(t.shape,e),t.dirty()},c.inherits(s,p.Group);var b=s;e.exports=b},function(e,t,n){function o(e){return isNaN(e[0])||isNaN(e[1])}function i(e){return!o(e[0])&&!o(e[1])}function r(e){this._ctor=e||l,this.group=new a.Group}var a=n(2),l=n(114),s=r.prototype;s.updateData=function(e){var t=this._lineData,n=this.group,o=this._ctor,r=e.hostModel,a={lineStyle:r.getModel("lineStyle.normal").getLineStyle(),hoverLineStyle:r.getModel("lineStyle.emphasis").getLineStyle(),labelModel:r.getModel("label.normal"),hoverLabelModel:r.getModel("label.emphasis")};e.diff(t).add(function(t){if(i(e.getItemLayout(t))){var r=new o(e,t,a);e.setItemGraphicEl(t,r),n.add(r)}}).update(function(r,l){var s=t.getItemGraphicEl(l);if(!i(e.getItemLayout(r)))return void n.remove(s);s?s.updateData(e,r,a):s=new o(e,r,a),e.setItemGraphicEl(r,s),n.add(s)}).remove(function(e){n.remove(t.getItemGraphicEl(e))}).execute(),this._lineData=e},s.updateLayout=function(){var e=this._lineData;e.eachItemGraphicEl(function(t,n){t.updateLayout(e,n)},this)},s.remove=function(){this.group.removeAll()};var c=r;e.exports=c},function(e,t,n){function o(){}function i(e,t,n,o){r(m(n).lastProp,o)||(m(n).lastProp=o,t?d.updateProps(n,o,e):(n.stopAnimation(),n.attr(o)))}function r(e,t){if(c.isObject(e)&&c.isObject(t)){var n=!0;return c.each(t,function(t,o){n=n&&r(e[o],t)}),!!n}return e===t}function a(e,t){e[t.get("label.show")?"show":"hide"]()}function l(e){return{position:e.position.slice(),rotation:e.rotation||0}}function s(e,t,n){var o=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(e){"group"!==e.type&&(null!=o&&(e.z=o),null!=i&&(e.zlevel=i),e.silent=n)})}var c=n(0),u=n(28),d=n(2),f=n(84),p=n(31),h=n(44),g=n(5),m=g.makeGetter(),v=c.clone,b=c.bind;o.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(e,t,n,o){var r=t.get("value"),a=t.get("status");if(this._axisModel=e,this._axisPointerModel=t,this._api=n,o||this._lastValue!==r||this._lastStatus!==a){this._lastValue=r,this._lastStatus=a;var l=this._group,u=this._handle;if(!a||"hide"===a)return l&&l.hide(),void(u&&u.hide());l&&l.show(),u&&u.show();var f={};this.makeElOption(f,r,e,t,n);var p=f.graphicKey;p!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=p;var h=this._moveAnimation=this.determineAnimation(e,t);if(l){var g=c.curry(i,t,h);this.updatePointerEl(l,f,g,t),this.updateLabelEl(l,f,g,t)}else l=this._group=new d.Group,this.createPointerEl(l,f,e,t),this.createLabelEl(l,f,e,t),n.getZr().add(l);s(l,t,!0),this._renderHandle(r)}},remove:function(e){this.clear(e)},dispose:function(e){this.clear(e)},determineAnimation:function(e,t){var n=t.get("animation"),o=e.axis,i="category"===o.type,r=t.get("snap");if(!r&&!i)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(i&&o.getBandWidth()>a)return!0;if(r){var l=f.getAxisInfo(e).seriesDataCount,s=o.getExtent();return Math.abs(s[0]-s[1])/l>a}return!1}return!0===n},makeElOption:function(e,t,n,o,i){},createPointerEl:function(e,t,n,o){var i=t.pointer;if(i){var r=m(e).pointerEl=new d[i.type](v(t.pointer));e.add(r)}},createLabelEl:function(e,t,n,o){if(t.label){var i=m(e).labelEl=new d.Rect(v(t.label));e.add(i),a(i,o)}},updatePointerEl:function(e,t,n){var o=m(e).pointerEl;o&&(o.setStyle(t.pointer.style),n(o,{shape:t.pointer.shape}))},updateLabelEl:function(e,t,n,o){var i=m(e).labelEl;i&&(i.setStyle(t.label.style),n(i,{shape:t.label.shape,position:t.label.position}),a(i,o))},_renderHandle:function(e){if(!this._dragging&&this.updateHandleTransform){var t=this._axisPointerModel,n=this._api.getZr(),o=this._handle,i=t.getModel("handle"),r=t.get("status");if(!i.get("show")||!r||"hide"===r)return o&&n.remove(o),void(this._handle=null);var a;this._handle||(a=!0,o=this._handle=d.createIcon(i.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(e){p.stop(e.event)},onmousedown:b(this._onHandleDragMove,this,0,0),drift:b(this._onHandleDragMove,this),ondragend:b(this._onHandleDragEnd,this)}),n.add(o)),s(o,t,!1);var l=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];o.setStyle(i.getItemStyle(null,l));var u=i.get("size");c.isArray(u)||(u=[u,u]),o.attr("scale",[u[0]/2,u[1]/2]),h.createOrUpdate(this,"_doDispatchAxisPointer",i.get("throttle")||0,"fixRate"),this._moveHandleToValue(e,a)}},_moveHandleToValue:function(e,t){i(this._axisPointerModel,!t&&this._moveAnimation,this._handle,l(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(e,t){var n=this._handle;if(n){this._dragging=!0;var o=this.updateHandleTransform(l(n),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=o,n.stopAnimation(),n.attr(l(o)),m(n).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var e=this._payloadInfo,t=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:t.axis.dim,axisIndex:t.componentIndex}]})}},_onHandleDragEnd:function(e){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(e){this._lastValue=null,this._lastStatus=null;var t=e.getZr(),n=this._group,o=this._handle;t&&n&&(this._lastGraphicKey=null,n&&t.remove(n),o&&t.remove(o),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(e,t,n){return n=n||0,{x:e[n],y:e[1-n],width:t[n],height:t[1-n]}}},o.prototype.constructor=o,u.enableClassExtend(o);var x=o;e.exports=x},function(e,t,n){function o(e){return a.indexOf(c,e)>=0}function i(e,t){e=e.slice();var n=a.map(e,l.capitalFirst);t=(t||[]).slice();var o=a.map(t,l.capitalFirst);return function(i,r){a.each(e,function(e,a){for(var l={name:e,capital:n[a]},s=0;s=0}function i(e,o){var i=!1;return t(function(t){a.each(n(e,t)||[],function(e){o.records[t.name][e]&&(i=!0)})}),i}function r(e,o){o.nodes.push(e),t(function(t){a.each(n(e,t)||[],function(e){o.records[t.name][e]=!0})})}return function(n){function a(e){!o(e,l)&&i(e,l)&&(r(e,l),s=!0)}var l={nodes:[],records:{}};if(t(function(e){l.records[e.name]={}}),!n)return l;r(n,l);var s;do{s=!1,e(a)}while(s);return l}}var a=n(0),l=n(8),s=["x","y","z","radius","angle","single"],c=["cartesian2d","polar","singleAxis"],u=i(s,["axisIndex","axis","index","id"]);t.isCoordSupported=o,t.createNameEach=i,t.eachAxisDim=u,t.createLinkedNodesFinder=r},function(e,t,n){function o(e){V.call(this),this._zr=e,this.group=new j.Group,this._brushType,this._brushOption,this._panels,this._track=[],this._dragging,this._covers=[],this._creatingCover,this._creatingPanel,this._enableGlobalPan,this._uid="brushController_"+oe++,this._handlers={},G(ie,function(e,t){this._handlers[t]=F.bind(e,this)},this)}function i(e,t){var n=e._zr;e._enableGlobalPan||$.take(n,Q,e._uid),G(e._handlers,function(e,t){n.on(t,e)}),e._brushType=t.brushType,e._brushOption=F.merge(F.clone(ne),t,!0)}function r(e){var t=e._zr;$.release(t,Q,e._uid),G(e._handlers,function(e,n){t.off(n,e)}),e._brushType=e._brushOption=null}function a(e,t){var n=re[t.brushType].createCover(e,t);return n.__brushOption=t,c(n,t),e.group.add(n),n}function l(e,t){var n=d(t);return n.endCreating&&(n.endCreating(e,t),c(t,t.__brushOption)),t}function s(e,t){var n=t.__brushOption;d(t).updateCoverShape(e,t,n.range,n)}function c(e,t){var n=t.z;null==n&&(n=X),e.traverse(function(e){e.z=n,e.z2=n})}function u(e,t){d(t).updateCommon(e,t),s(e,t)}function d(e){return re[e.__brushOption.brushType]}function f(e,t,n){var o=e._panels;if(!o)return!0;var i,r=e._transform;return G(o,function(e){e.isTargetByCursor(t,n,r)&&(i=e)}),i}function p(e,t){var n=e._panels;if(!n)return!0;var o=t.__brushOption.panelId;return null==o||n[o]}function h(e){var t=e._covers,n=t.length;return G(t,function(t){e.group.remove(t)},e),t.length=0,!!n}function g(e,t){var n=U(e._covers,function(e){var t=e.__brushOption,n=F.clone(t.range);return{brushType:t.brushType,panelId:t.panelId,range:n}});e.trigger("brush",n,{isEnd:!!t.isEnd,removeOnClick:!!t.removeOnClick})}function m(e){var t=e._track;if(!t.length)return!1;var n=t[t.length-1],o=t[0],i=n[0]-o[0],r=n[1]-o[1];return Z(i*i+r*r,.5)>K}function v(e){var t=e.length-1;return t<0&&(t=0),[e[0],e[t]]}function b(e,t,n,o){var i=new j.Group;return i.add(new j.Rect({name:"main",style:w(n),silent:!0,draggable:!0,cursor:"move",drift:W(e,t,i,"nswe"),ondragend:W(g,t,{isEnd:!0})})),G(o,function(n){i.add(new j.Rect({name:n,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:W(e,t,i,n),ondragend:W(g,t,{isEnd:!0})}))}),i}function x(e,t,n,o){var i=o.brushStyle.lineWidth||0,r=Y(i,J),a=n[0][0],l=n[1][0],s=a-i/2,c=l-i/2,u=n[0][1],d=n[1][1],f=u-r+i/2,p=d-r+i/2,h=u-a,g=d-l,m=h+i,v=g+i;_(e,t,"main",a,l,h,g),o.transformable&&(_(e,t,"w",s,c,r,v),_(e,t,"e",f,c,r,v),_(e,t,"n",s,c,m,r),_(e,t,"s",s,p,m,r),_(e,t,"nw",s,c,r,r),_(e,t,"ne",f,c,r,r),_(e,t,"sw",s,p,r,r),_(e,t,"se",f,p,r,r))}function y(e,t){var n=t.__brushOption,o=n.transformable,i=t.childAt(0);i.useStyle(w(n)),i.attr({silent:!o,cursor:o?"move":"default"}),G(["w","e","n","s","se","sw","ne","nw"],function(n){var i=t.childOfName(n),r=M(e,n);i&&i.attr({silent:!o,invisible:!o,cursor:o?te[r]+"-resize":null})})}function _(e,t,n,o,i,r,a){var l=t.childOfName(n);l&&l.setShape(I(E(e,t,[[o,i],[o+r,i+a]])))}function w(e){return F.defaults({strokeNoScale:!0},e.brushStyle)}function k(e,t,n,o){var i=[q(e,n),q(t,o)],r=[Y(e,n),Y(t,o)];return[[i[0],r[0]],[i[1],r[1]]]}function S(e){return j.getTransform(e.group)}function M(e,t){if(t.length>1){t=t.split("");var n=[M(e,t[0]),M(e,t[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}var o={w:"left",e:"right",n:"top",s:"bottom"},i={left:"w",right:"e",top:"n",bottom:"s"},n=j.transformDirection(o[t],S(e));return i[n]}function C(e,t,n,o,i,r,a,l){var s=o.__brushOption,c=e(s.range),d=T(n,r,a);G(i.split(""),function(e){var t=ee[e];c[t[0]][t[1]]+=d[t[0]]}),s.range=t(k(c[0][0],c[1][0],c[0][1],c[1][1])),u(n,o),g(n,{isEnd:!1})}function A(e,t,n,o,i){var r=t.__brushOption.range,a=T(e,n,o);G(r,function(e){e[0]+=a[0],e[1]+=a[1]}),u(e,t),g(e,{isEnd:!1})}function T(e,t,n){var o=e.group,i=o.transformCoordToLocal(t,n),r=o.transformCoordToLocal(0,0);return[i[0]-r[0],i[1]-r[1]]}function E(e,t,n){var o=p(e,t);return o&&!0!==o?o.clipPath(n,e._transform):F.clone(n)}function I(e){var t=q(e[0][0],e[1][0]),n=q(e[0][1],e[1][1]);return{x:t,y:n,width:Y(e[0][0],e[1][0])-t,height:Y(e[0][1],e[1][1])-n}}function O(e,t,n){if(e._brushType){var o=e._zr,i=e._covers,r=f(e,t,n);if(!e._dragging)for(var a=0;a"),i&&(r+=d(i),null!=n&&(r+=" : ")),null!=n&&(r+=d(o)),r},getData:function(){return this._data},setData:function(e){this._data=e}});a.mixin(f,s.dataFormatMixin);var p=f;e.exports=p},function(e,t,n){var o=n(1),i=n(0),r=o.extendComponentView({type:"marker",init:function(){this.markerGroupMap=i.createHashMap()},render:function(e,t,n){var o=this.markerGroupMap;o.each(function(e){e.__keep=!1});var i=this.type+"Model";t.eachSeries(function(e){var o=e[i];o&&this.renderSeries(e,o,t,n)},this),o.each(function(e){!e.__keep&&this.group.remove(e.group)},this)},renderSeries:function(){}});e.exports=r},function(e,t,n){function o(e){return!(isNaN(parseFloat(e.x))&&isNaN(parseFloat(e.y)))}function i(e){return!isNaN(parseFloat(e.x))&&!isNaN(parseFloat(e.y))}function r(e,t,n){var o=-1;do{o=Math.max(p.getPrecision(e.get(t,n)),o),e=e.stackedOn}while(e);return o}function a(e,t,n,o,i,a){var l=[],s=d(t,o,e),c=t.indicesOfNearest(o,s,!0)[0];l[i]=t.get(n,c,!0),l[a]=t.get(o,c,!0);var u=r(t,o,c);return u=Math.min(u,20),u>=0&&(l[a]=+l[a].toFixed(u)),l}function l(e,t){var n=e.getData(),o=e.coordinateSystem;if(t&&!i(t)&&!f.isArray(t.coord)&&o){var r=o.dimensions,a=s(t,n,o,e);if(t=f.clone(t),t.type&&m[t.type]&&a.baseAxis&&a.valueAxis){var l=h(r,a.baseAxis.dim),c=h(r,a.valueAxis.dim);t.coord=m[t.type](n,a.baseDataDim,a.valueDataDim,l,c),t.value=t.coord[c]}else{for(var u=[null!=t.xAxis?t.xAxis:t.radiusAxis,null!=t.yAxis?t.yAxis:t.angleAxis],p=0;p<2;p++)if(m[u[p]]){var g=e.coordDimToDataDim(r[p])[0];u[p]=d(n,g,u[p])}t.coord=u}}return t}function s(e,t,n,o){var i={};return null!=e.valueIndex||null!=e.valueDim?(i.valueDataDim=null!=e.valueIndex?t.getDimension(e.valueIndex):e.valueDim,i.valueAxis=n.getAxis(o.dataDimToCoordDim(i.valueDataDim)),i.baseAxis=n.getOtherAxis(i.valueAxis),i.baseDataDim=o.coordDimToDataDim(i.baseAxis.dim)[0]):(i.baseAxis=o.getBaseAxis(),i.valueAxis=n.getOtherAxis(i.baseAxis),i.baseDataDim=o.coordDimToDataDim(i.baseAxis.dim)[0],i.valueDataDim=o.coordDimToDataDim(i.valueAxis.dim)[0]),i}function c(e,t){return!(e&&e.containData&&t.coord&&!o(t))||e.containData(t.coord)}function u(e,t,n,o){return o<2?e.coord&&e.coord[o]:e.value}function d(e,t,n){if("average"===n){var o=0,i=0;return e.each(t,function(e,t){isNaN(e)||(o+=e,i++)},!0),o/i}return e.getDataExtent(t,!0)["max"===n?1:0]}var f=n(0),p=n(3),h=f.indexOf,g=f.curry,m={min:g(a,"min"),max:g(a,"max"),average:g(a,"average")};t.dataTransform=l,t.getAxisInfo=s,t.dataFilter=c,t.dimValueGetter=u,t.numCalculate=d},function(e,t,n){function o(e,t,n){return e.getCoordSysModel()===t}function i(e,t){var n=t*Math.PI/180,o=e.plain(),i=o.width,r=o.height,a=i*Math.cos(n)+r*Math.sin(n),l=i*Math.sin(n)+r*Math.cos(n);return new h(o.x,o.y,a,l)}function r(e){var t,n=e.model,o=n.getFormattedLabels(),r=n.getModel("axisLabel"),a=1,l=o.length;l>40&&(a=Math.ceil(l/40));for(var s=0;s=0?"p":"n",m=v[n],b=l[c][n][u],x=s[c][n][u];p.isHorizontal()?(o=b,i=m[1]+d,r=m[0]-x,a=f,s[c][n][u]+=r,Math.abs(r)=0&&n.push(e)}),n}e.topologicalTravel=function(e,t,o,i){function r(e){0==--c[e].entryCount&&u.push(e)}function l(e){d[e]=!0,r(e)}if(e.length){var s=n(t),c=s.graph,u=s.noEntryList,d={};for(a.each(e,function(e){d[e]=!0});u.length;){var f=u.pop(),p=c[f],h=!!d[f];h&&(o.call(i,f,p.originalDeps.slice()),delete d[f]),a.each(p.successor,h?l:r)}a.each(d,function(){throw new Error("Circle dependency may exists")})}}}var a=n(0),l=n(28),s=l.parseClassType,c=0,u="_";t.getUID=o,t.enableSubTypeDefaulter=i,t.enableTopologicalTravel=r},function(e,t,n){var o=n(96),i=n(128),r=n(28),a=function(){this.group=new o,this.uid=i.getUID("viewComponent")};a.prototype={constructor:a,init:function(e,t){},render:function(e,t,n,o){},dispose:function(){}};var l=a.prototype;l.updateView=l.updateLayout=l.updateVisual=function(e,t,n,o){},r.enableClassExtend(a),r.enableClassManagement(a,{registerWhenExtend:!0});var s=a;e.exports=s},function(e,t){function n(e,t){var n={};t.eachRawSeriesByType(e,function(e){var o=e.getRawData(),i={};if(!t.isSeriesFiltered(e)){var r=e.getData();r.each(function(e){var t=r.getRawIndex(e);i[t]=e}),o.each(function(t){var a=i[t],l=null!=a&&r.getItemVisual(a,"color",!0);if(l)o.setItemVisual(t,"color",l);else{var s=o.getItemModel(t),c=s.get("itemStyle.normal.color")||e.getColorFromPalette(o.getName(t),n);o.setItemVisual(t,"color",c),null!=a&&r.setItemVisual(a,"color",c)}})}})}e.exports=n},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(){if(i.default.prototype.$isServer)return 0;if(void 0!==r)return r;var e=document.createElement("div");e.className="el-scrollbar__wrap",e.style.visibility="hidden",e.style.width="100px",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow="scroll";var n=document.createElement("div");n.style.width="100%",e.appendChild(n);var o=n.offsetWidth;return e.parentNode.removeChild(e),r=t-o};var o=n(21),i=function(e){return e&&e.__esModule?e:{default:e}}(o),r=void 0},function(e,t,n){var o=n(224);e.exports=function(e,t,n){return void 0===n?o(e,t,!1):o(e,n,!1!==t)}},function(e,t,n){function o(e,t,n){if(0!==e.length){var o,i=e[0],r=i[0],a=i[0],l=i[1],s=i[1];for(o=1;o1e-4)return l[0]=e-n,l[1]=t-o,c[0]=e+n,void(c[1]=t+o);if(g[0]=p(i)*n+e,g[1]=f(i)*o+t,m[0]=p(r)*n+e,m[1]=f(r)*o+t,u(l,g,m),d(c,g,m),i%=h,i<0&&(i+=h),r%=h,r<0&&(r+=h),i>r&&!a?r+=h:ii&&(v[0]=p(y)*n+e,v[1]=f(y)*o+t,u(l,v,l),d(c,v,c))}var s=n(7),c=n(39),u=Math.min,d=Math.max,f=Math.sin,p=Math.cos,h=2*Math.PI,g=s.create(),m=s.create(),v=s.create(),b=[],x=[];t.fromPoints=o,t.fromLine=i,t.fromCubic=r,t.fromQuadratic=a,t.fromArc=l},function(e,t){function n(e){for(var t=0;e>=u;)t|=1&e,e>>=1;return e+t}function o(e,t,n,o){var r=t+1;if(r===n)return 1;if(o(e[r++],e[t])<0){for(;r=0;)r++;return r-t}function i(e,t,n){for(n--;t>>1,i(a,e[r])<0?s=r:l=r+1;var c=o-l;switch(c){case 3:e[l+3]=e[l+2];case 2:e[l+2]=e[l+1];case 1:e[l+1]=e[l];break;default:for(;c>0;)e[l+c]=e[l+c-1],c--}e[l]=a}}function a(e,t,n,o,i,r){var a=0,l=0,s=1;if(r(e,t[n+i])>0){for(l=o-i;s0;)a=s,(s=1+(s<<1))<=0&&(s=l);s>l&&(s=l),a+=i,s+=i}else{for(l=i+1;sl&&(s=l);var c=a;a=i-s,s=i-c}for(a++;a>>1);r(e,t[n+u])>0?a=u+1:s=u}return s}function l(e,t,n,o,i,r){var a=0,l=0,s=1;if(r(e,t[n+i])<0){for(l=i+1;sl&&(s=l);var c=a;a=i-s,s=i-c}else{for(l=o-i;s=0;)a=s,(s=1+(s<<1))<=0&&(s=l);s>l&&(s=l),a+=i,s+=i}for(a++;a>>1);r(e,t[n+u])<0?s=u:a=u+1}return s}function s(e,t){function n(e,t){u[h]=e,f[h]=t,h+=1}function o(){for(;h>1;){var e=h-2;if(e>=1&&f[e-1]<=f[e]+f[e+1]||e>=2&&f[e-2]<=f[e]+f[e-1])f[e-1]f[e+1])break;r(e)}}function i(){for(;h>1;){var e=h-2;e>0&&f[e-1]=d||m>=d);if(v)break;b<0&&(b=0),b+=2}if(p=b,p<1&&(p=1),1===o){for(s=0;s=0;s--)e[m+s]=e[h+s];return void(e[f]=g[u])}for(var v=p;;){var b=0,x=0,y=!1;do{if(t(g[u],e[c])<0){if(e[f--]=e[c--],b++,x=0,0==--o){y=!0;break}}else if(e[f--]=g[u--],x++,b=0,1==--r){y=!0;break}}while((b|x)=0;s--)e[m+s]=e[h+s];if(0===o){y=!0;break}}if(e[f--]=g[u--],1==--r){y=!0;break}if(0!=(x=r-a(e[c],g,0,r,r-1,t))){for(f-=x,u-=x,r-=x,m=f+1,h=u+1,s=0;s=d||x>=d);if(y)break;v<0&&(v=0),v+=2}if(p=v,p<1&&(p=1),1===r){for(f-=o,c-=o,m=f+1,h=c+1,s=o-1;s>=0;s--)e[m+s]=e[h+s];e[f]=g[u]}else{if(0===r)throw new Error;for(h=f-(r-1),s=0;sf&&(p=f),r(e,i,i+p,i+c,t),c=p}d.pushRun(i,c),d.mergeRuns(),l-=c,i+=c}while(0!==l);d.forceMergeRuns()}}var u=32,d=7;e.exports=c},function(e,t,n){function o(e){if("string"==typeof e){var t=s.get(e);return t&&t.image}return e}function i(e,t,n,o,i){if(e){if("string"==typeof e){if(t&&t.__zrImageSrc===e||!n)return t;var l=s.get(e),c={hostEl:n,cb:o,cbPayload:i};return l?(t=l.image,!a(t)&&l.pending.push(c)):(!t&&(t=new Image),t.onload=r,s.put(e,t.__cachedImgObj={image:t,pending:[c]}),t.src=t.__zrImageSrc=e),t}return e}return t}function r(){var e=this.__cachedImgObj;this.onload=this.__cachedImgObj=null;for(var t=0;tl||e<-l}var i=n(24),r=n(7),a=i.identity,l=5e-5,s=function(e){e=e||{},e.position||(this.position=[0,0]),null==e.rotation&&(this.rotation=0),e.scale||(this.scale=[1,1]),this.origin=this.origin||null},c=s.prototype;c.transform=null,c.needLocalTransform=function(){return o(this.rotation)||o(this.position[0])||o(this.position[1])||o(this.scale[0]-1)||o(this.scale[1]-1)},c.updateTransform=function(){var e=this.parent,t=e&&e.transform,n=this.needLocalTransform(),o=this.transform;if(!n&&!t)return void(o&&a(o));o=o||i.create(),n?this.getLocalTransform(o):a(o),t&&(n?i.mul(o,e.transform,o):i.copy(o,e.transform)),this.transform=o,this.invTransform=this.invTransform||i.create(),i.invert(this.invTransform,o)},c.getLocalTransform=function(e){return s.getLocalTransform(this,e)},c.setTransform=function(e){var t=this.transform,n=e.dpr||1;t?e.setTransform(n*t[0],n*t[1],n*t[2],n*t[3],n*t[4],n*t[5]):e.setTransform(n,0,0,n,0,0)},c.restoreTransform=function(e){var t=e.dpr||1;e.setTransform(t,0,0,t,0,0)};var u=[];c.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(i.mul(u,e.invTransform,t),t=u);var n=t[0]*t[0]+t[1]*t[1],r=t[2]*t[2]+t[3]*t[3],a=this.position,l=this.scale;o(n-1)&&(n=Math.sqrt(n)),o(r-1)&&(r=Math.sqrt(r)),t[0]<0&&(n=-n),t[3]<0&&(r=-r),a[0]=t[4],a[1]=t[5],l[0]=n,l[1]=r,this.rotation=Math.atan2(-t[1]/r,t[0]/n)}},c.getGlobalScale=function(){var e=this.transform;if(!e)return[1,1];var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]),n=Math.sqrt(e[2]*e[2]+e[3]*e[3]);return e[0]<0&&(t=-t),e[3]<0&&(n=-n),[t,n]},c.transformCoordToLocal=function(e,t){var n=[e,t],o=this.invTransform;return o&&r.applyTransform(n,n,o),n},c.transformCoordToGlobal=function(e,t){var n=[e,t],o=this.transform;return o&&r.applyTransform(n,n,o),n},s.getLocalTransform=function(e,t){t=t||[],a(t);var n=e.origin,o=e.scale||[1,1],r=e.rotation||0,l=e.position||[0,0];return n&&(t[4]-=n[0],t[5]-=n[1]),i.scale(t,t,o),r&&i.rotate(t,t,r),n&&(t[4]+=n[0],t[5]+=n[1]),t[4]+=l[0],t[5]+=l[1],t};var d=s;e.exports=d},function(e,t){function n(e){return document.createElementNS(o,e)}var o="http://www.w3.org/2000/svg";t.createElement=n},function(e,t,n){function o(e){return k(1e4*e)/1e4}function i(e){return e-E}function r(e,t){var n=t?e.textFill:e.fill;return null!=n&&n!==w}function a(e,t){var n=t?e.textStroke:e.stroke;return null!=n&&n!==w}function l(e,t){t&&s(e,"transform","matrix("+_.call(t,",")+")")}function s(e,t,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&e.setAttribute(t,n)}function c(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function u(e,t,n){if(r(t,n)){var o=n?t.textFill:t.fill;o="transparent"===o?w:o,"none"!==e.getAttribute("clip-path")&&o===w&&(o="rgba(0, 0, 0, 0.002)"),s(e,"fill",o),s(e,"fill-opacity",t.opacity)}else s(e,"fill",w);if(a(t,n)){var i=n?t.textStroke:t.stroke;i="transparent"===i?w:i,s(e,"stroke",i),s(e,"stroke-width",(n?t.textStrokeWidth:t.lineWidth)/(t.strokeNoScale?t.host.getLineScale():1)),s(e,"paint-order","stroke"),s(e,"stroke-opacity",t.opacity),t.lineDash?(s(e,"stroke-dasharray",t.lineDash.join(",")),s(e,"stroke-dashoffset",k(t.lineDashOffset||0))):s(e,"stroke-dasharray",""),t.lineCap&&s(e,"stroke-linecap",t.lineCap),t.lineJoin&&s(e,"stroke-linejoin",t.lineJoin),t.miterLimit&&s(e,"stroke-miterlimit",t.miterLimit)}else s(e,"stroke",w)}function d(e){for(var t=[],n=e.data,r=e.len(),a=0;a=A||!i(b)&&(g>-C&&g<0||g>C)==!!v;var w=o(u+f*M(h)),E=o(d+p*S(h));x&&(g=v?A-1e-4:1e-4-A,_=!0,9===a&&t.push("M",w,E));var I=o(u+f*M(h+g)),O=o(d+p*S(h+g));t.push("A",o(f),o(p),k(m*T),+_,+v,I,O);break;case y.Z:s="Z";break;case y.R:var I=o(n[a++]),O=o(n[a++]),L=o(n[a++]),P=o(n[a++]);t.push("M",I,O,"L",I+L,O,"L",I+L,O+P,"L",I,O+P,"L",I,O)}s&&t.push(s);for(var D=0;D0&&(t+=e[0].name+"
");var n=!0,o=!1,i=void 0;try{for(var r,a=e[Symbol.iterator]();!(n=(r=a.next()).done);n=!0){var s=r.value;t+=''+s.seriesName+": "+l.a.fileSize(s.value)+"
"}}catch(e){o=!0,i=e}finally{try{!n&&a.return&&a.return()}finally{if(o)throw i}}return t}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:a}],yAxis:[{type:"value",axisLabel:{formatter:function(e){return l.a.fileSize(e)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:n}]};i.setOption(u),i.hideLoading()}n.d(t,"b",function(){return o}),n.d(t,"c",function(){return i}),n.d(t,"a",function(){return r});var a=n(47),l=n.n(a),s=n(1),c=n.n(s),u=n(608),d=(n.n(u),n(165)),f=(n.n(d),n(175)),p=(n.n(f),n(198)),h=(n.n(p),n(197));n.n(h)},function(e,t,n){"use strict";t.__esModule=!0;var o=n(307),i=function(e){return e&&e.__esModule?e:{default:e}}(o);t.default=i.default||function(e){for(var t=1;tdocument.F=Object<\/script>"),e.close(),s=e.F;o--;)delete s.prototype[r[o]];return s()};e.exports=Object.create||function(e,t){var n;return null!==e?(l.prototype=o(e),n=new l,l.prototype=null,n[a]=e):n=s(),void 0===t?n:i(n,t)}},function(e,t,n){var o=n(160),i=n(102).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,i)}},function(e,t,n){var o=n(41),i=n(53),r=n(317)(!1),a=n(107)("IE_PROTO");e.exports=function(e,t){var n,l=i(e),s=0,c=[];for(n in l)n!=a&&o(l,n)&&c.push(n);for(;t.length>s;)o(l,n=t[s++])&&(~r(c,n)||c.push(n));return c}},function(e,t,n){e.exports=n(51)},function(e,t,n){function o(e,t){r.each(t,function(t){t.update="updateView",i.registerAction(t,function(n,o){var i={};return o.eachComponent({mainType:"series",subType:e,query:n},function(e){e[t.method]&&e[t.method](n.name,n.dataIndex);var o=e.getData();o.each(function(t){var n=o.getName(t);i[n]=e.isSelected(n)||!1})}),{name:n.name,selected:i}})})}var i=n(1),r=n(0);e.exports=o},function(e,t,n){var o=n(1),i=n(0),r=n(164),a=r.updateCenterAndZoom;o.registerAction({type:"geoRoam",event:"geoRoam",update:"updateLayout"},function(e,t){var n=e.componentType||"series";t.eachComponent({mainType:n,query:e},function(t){var o=t.coordinateSystem;if("geo"===o.type){var r=a(o,e,t.get("scaleLimit"));t.setCenter&&t.setCenter(r.center),t.setZoom&&t.setZoom(r.zoom),"series"===n&&i.each(t.seriesGroup,function(e){e.setCenter(r.center),e.setZoom(r.zoom)})}})})},function(e,t){function n(e,t,n){var o=e.getZoom(),i=e.getCenter(),r=t.zoom,a=e.dataToPoint(i);if(null!=t.dx&&null!=t.dy){a[0]-=t.dx,a[1]-=t.dy;var i=e.pointToData(a);e.setCenter(i)}if(null!=r){if(n){var l=n.min||0,s=n.max||1/0;r=Math.max(Math.min(o*r,s),l)/o}e.scale[0]*=r,e.scale[1]*=r;var c=e.position,u=(t.originX-c[0])*(r-1),d=(t.originY-c[1])*(r-1);c[0]-=u,c[1]-=d,e.updateTransform();var i=e.pointToData(a);e.setCenter(i),e.setZoom(r*o)}return{center:e.getCenter(),zoom:e.getZoom()}}t.updateCenterAndZoom=n},function(e,t,n){var o=n(1),i=n(0),r=n(126);n(124),n(361),n(362),n(70),o.registerLayout(i.curry(r,"bar")),o.registerVisual(function(e){e.eachSeriesByType("bar",function(e){e.getData().setVisual("legendSymbol","roundRect")})})},function(e,t,n){var o=n(18),i=n(34),r=o.extend({type:"series.__base_bar__",getInitialData:function(e,t){return i(e.data,this,t)},getMarkerPosition:function(e){var t=this.coordinateSystem;if(t){var n=t.dataToPoint(e,!0),o=this.getData(),i=o.getLayout("offset"),r=o.getLayout("size");return n[t.getBaseAxis().isHorizontal()?0:1]+=i+r/2,n}return[NaN,NaN]},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,itemStyle:{}}});e.exports=r},function(e,t,n){function o(e,t,n,o,a,l,s){var c=n.getModel("label.normal"),u=n.getModel("label.emphasis");r.setLabelStyle(e,t,c,u,{labelFetcher:a,labelDataIndex:l,defaultText:a.getRawValue(l),isRectText:!0,autoColor:o}),i(e),i(t)}function i(e,t){"outside"===e.textPosition&&(e.textPosition=t)}var r=n(2);t.setLabel=o},function(e,t,n){function o(e){var t=e.coordinateSystem;if(!t||"view"===t.type){var n=t.getBoundingRect(),o=e.getData(),r=o.graph,a=0,l=o.getSum("value"),s=2*Math.PI/(l||o.count()),c=n.width/2+n.x,u=n.height/2+n.y,d=Math.min(n.width,n.height)/2;r.eachNode(function(e){var t=e.getValue("value");a+=s*(l?t:1)/2,e.setLayout([d*Math.cos(a)+c,d*Math.sin(a)+u]),a+=s*(l?t:1)/2}),o.setLayout({cx:c,cy:u}),r.eachEdge(function(e){var t,n=e.getModel().get("lineStyle.normal.curveness")||0,o=i.clone(e.node1.getLayout()),r=i.clone(e.node2.getLayout()),a=(o[0]+r[0])/2,l=(o[1]+r[1])/2;+n&&(n*=3,t=[c*n+a*(1-n),u*n+l*(1-n)]),e.setLayout([o,r,t])})}}var i=n(7);t.circularLayout=o},function(e,t,n){function o(e){var t=e.coordinateSystem;if(!t||"view"===t.type){var n=e.getGraph();n.eachNode(function(e){var t=e.getModel();e.setLayout([+t.get("x"),+t.get("y")])}),i(n)}}function i(e){e.eachEdge(function(e){var t=e.getModel().get("lineStyle.normal.curveness")||0,n=r.clone(e.node1.getLayout()),o=r.clone(e.node2.getLayout()),i=[n,o];+t&&i.push([(n[0]+o[0])/2-(n[1]-o[1])*t,(n[1]+o[1])/2-(o[0]-n[0])*t]),e.setLayout(i)})}var r=n(7);t.simpleLayout=o,t.simpleLayoutEdge=i},function(e,t,n){function o(e,t,n){i.Group.call(this),this.add(this.createLine(e,t,n)),this._updateEffectSymbol(e,t)}var i=n(2),r=n(114),a=n(0),l=n(23),s=l.createSymbol,c=n(7),u=n(39),d=o.prototype;d.createLine=function(e,t,n){return new r(e,t,n)},d._updateEffectSymbol=function(e,t){var n=e.getItemModel(t),o=n.getModel("effect"),i=o.get("symbolSize"),r=o.get("symbol");a.isArray(i)||(i=[i,i]);var l=o.get("color")||e.getItemVisual(t,"color"),c=this.childAt(1);this._symbolType!==r&&(this.remove(c),c=s(r,-.5,-.5,1,1,l),c.z2=100,c.culling=!0,this.add(c)),c&&(c.setStyle("shadowColor",l),c.setStyle(o.getItemStyle(["color"])),c.attr("scale",i),c.setColor(l),c.attr("scale",i),this._symbolType=r,this._updateEffectAnimation(e,o,t))},d._updateEffectAnimation=function(e,t,n){var o=this.childAt(1);if(o){var i=this,r=e.getItemLayout(n),l=1e3*t.get("period"),s=t.get("loop"),c=t.get("constantSpeed"),u=a.retrieve(t.get("delay"),function(t){return t/e.count()*l/3}),d="function"==typeof u;if(o.ignore=!0,this.updateAnimationPoints(o,r),c>0&&(l=this.getLineLength(o)/c*1e3),l!==this._period||s!==this._loop){o.stopAnimation();var f=u;d&&(f=u(n)),o.__t>0&&(f=-l*o.__t),o.__t=0;var p=o.animate("",s).when(l,{__t:1}).delay(f).during(function(){i.updateSymbolPosition(o)});s||p.done(function(){i.remove(o)}),p.start()}this._period=l,this._loop=s}},d.getLineLength=function(e){return c.dist(e.__p1,e.__cp1)+c.dist(e.__cp1,e.__p2)},d.updateAnimationPoints=function(e,t){e.__p1=t[0],e.__p2=t[1],e.__cp1=t[2]||[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]},d.updateData=function(e,t,n){this.childAt(0).updateData(e,t,n),this._updateEffectSymbol(e,t)},d.updateSymbolPosition=function(e){var t=e.__p1,n=e.__p2,o=e.__cp1,i=e.__t,r=e.position,a=u.quadraticAt,l=u.quadraticDerivativeAt;r[0]=a(t[0],o[0],n[0],i),r[1]=a(t[1],o[1],n[1],i);var s=l(t[0],o[0],n[0],i),c=l(t[1],o[1],n[1],i);e.rotation=-Math.atan2(c,s)-Math.PI/2,e.ignore=!1},d.updateLayout=function(e,t){this.childAt(0).updateLayout(e,t);var n=e.getItemModel(t).getModel("effect");this._updateEffectAnimation(e,n,t)},a.inherits(o,i.Group);var f=o;e.exports=f},function(e,t,n){function o(e,t,n){i.Group.call(this),this._createPolyline(e,t,n)}var i=n(2),r=n(0),a=o.prototype;a._createPolyline=function(e,t,n){var o=e.getItemLayout(t),r=new i.Polyline({shape:{points:o}});this.add(r),this._updateCommonStl(e,t,n)},a.updateData=function(e,t,n){var o=e.hostModel,r=this.childAt(0),a={shape:{points:e.getItemLayout(t)}};i.updateProps(r,a,o,t),this._updateCommonStl(e,t,n)},a._updateCommonStl=function(e,t,n){var o=this.childAt(0),a=e.getItemModel(t),l=e.getItemVisual(t,"color"),s=n&&n.lineStyle,c=n&&n.hoverLineStyle;n&&!e.hasItemOption||(s=a.getModel("lineStyle.normal").getLineStyle(),c=a.getModel("lineStyle.emphasis").getLineStyle()),o.useStyle(r.defaults({strokeNoScale:!0,fill:"none",stroke:l},s)),o.hoverStyle=c,i.setHoverStyle(this)},a.updateLayout=function(e,t){this.childAt(0).setShape("points",e.getItemLayout(t))},r.inherits(o,i.Group);var l=o;e.exports=l},function(e,t,n){function o(e,t,n,o,d){for(var f=new a(o),p=0;p "+x)),m++)}var y,_=n.get("coordinateSystem");if("cartesian2d"===_||"polar"===_)y=u(e,n,n.ecModel);else{var w=c.get(_),k=s((w&&"view"!==w.type?w.dimensions||[]:[]).concat(["value"]),e);y=new r(k,n),y.initData(e)}var S=new r(["value"],n);return S.initData(g,h),d&&d(y,S),l({mainData:y,struct:f,structAttr:"graph",datas:{node:y,edge:S},datasAttr:{node:"data",edge:"edgeData"}}),f.update(),f}var i=n(0),r=n(13),a=n(588),l=n(213),s=n(25),c=n(26),u=n(34);e.exports=o},function(e,t,n){function o(e){var t,n=r(e,"label");if(n.length)t=n[0];else for(var o,i=e.dimensions.slice();i.length&&(t=i.pop(),"ordinal"===(o=e.getDimensionInfo(t).type)||"time"===o););return t}var i=n(5),r=i.otherDimToDataDim;t.findLabelValueDim=o},function(e,t,n){function o(e){return isNaN(e[0])||isNaN(e[1])}function i(e,t,n,i,r,a,s,m,v,b,x){for(var y=0,_=n,w=0;w=r||_<0)break;if(o(k)){if(x){_+=a;continue}break}if(_===n)e[a>0?"moveTo":"lineTo"](k[0],k[1]),f(h,k);else if(v>0){var S=_+a,M=t[S];if(x)for(;M&&o(t[S]);)S+=a,M=t[S];var C=.5,A=t[y],M=t[S];if(!M||o(M))f(g,k);else{o(M)&&!x&&(M=k),l.sub(p,M,A);var T,E;if("x"===b||"y"===b){var I="x"===b?0:1;T=Math.abs(k[I]-A[I]),E=Math.abs(k[I]-M[I])}else T=l.dist(k,A),E=l.dist(k,M);C=E/(E+T),d(g,k,p,-v*(1-C))}c(h,h,m),u(h,h,s),c(g,g,m),u(g,g,s),e.bezierCurveTo(h[0],h[1],g[0],g[1],k[0],k[1]),d(h,k,p,v*C)}else e.lineTo(k[0],k[1]);y=_,_+=a}return w}function r(e,t){var n=[1/0,1/0],o=[-1/0,-1/0];if(t)for(var i=0;io[0]&&(o[0]=r[0]),r[1]>o[1]&&(o[1]=r[1])}return{min:t?n:o,max:t?o:n}}var a=n(16),l=n(7),s=n(249),c=l.min,u=l.max,d=l.scaleAndAdd,f=l.copy,p=[],h=[],g=[],m=a.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},brush:s(a.prototype.brush),buildPath:function(e,t){var n=t.points,a=0,l=n.length,s=r(n,t.smoothConstraint);if(t.connectNulls){for(;l>0&&o(n[l-1]);l--);for(;a0&&o(n[s-1]);s--);for(;lb.getLayout().x&&(b=e),e.depth>x.depth&&(x=e)});var y=v===b?1:h(v,b)/2,_=y-v.getLayout().x,w=0,k=0,S=0,M=0;"radial"===o?(w=i/(b.getLayout().x+y+_),k=l/(x.depth-1||1),a(m,function(e){S=(e.getLayout().x+_)*w,M=(e.depth-1)*k;var t=f(S,M);e.setLayout({x:t.x,y:t.y,rawX:S,rawY:M},!0)})):"horizontal"===e.get("orient")?(k=l/(b.getLayout().x+y+_),w=i/(x.depth-1||1),a(m,function(e){M=(e.getLayout().x+_)*k,S=(e.depth-1)*w,e.setLayout({x:S,y:M},!0)})):(w=i/(b.getLayout().x+y+_),k=l/(x.depth-1||1),a(m,function(e){S=(e.getLayout().x+_)*w,M=(e.depth-1)*k,e.setLayout({x:S,y:M},!0)}))}var i=n(460),r=i.eachAfter,a=i.eachBefore,l=n(177),s=l.init,c=l.firstWalk,u=l.secondWalk,d=l.separation,f=l.radialCoordinate,p=l.getViewRect;e.exports=o},function(e,t,n){function o(e){e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var t,n,o=[e];t=o.pop();)if(n=t.children,t.isExpand&&n.length)for(var i=n.length,r=i-1;r>=0;r--){var a=n[r];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:r,thread:null},o.push(a)}}function i(e,t){var n=e.isExpand?e.children:[],o=e.parentNode.children,i=e.hierNode.i?o[e.hierNode.i-1]:null;if(n.length){c(e);var r=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;i?(e.hierNode.prelim=i.hierNode.prelim+t(e,i),e.hierNode.modifier=e.hierNode.prelim-r):e.hierNode.prelim=r}else i&&(e.hierNode.prelim=i.hierNode.prelim+t(e,i));e.parentNode.hierNode.defaultAncestor=u(e,i,e.parentNode.hierNode.defaultAncestor||o[0],t)}function r(e){var t=e.hierNode.prelim+e.parentNode.hierNode.modifier;e.setLayout({x:t},!0),e.hierNode.modifier+=e.parentNode.hierNode.modifier}function a(e){return arguments.length?e:g}function l(e,t){var n={};return e-=Math.PI/2,n.x=t*Math.cos(e),n.y=t*Math.sin(e),n}function s(e,t){return m.getLayoutRect(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function c(e){for(var t=e.children,n=t.length,o=0,i=0;--n>=0;){var r=t[n];r.hierNode.prelim+=o,r.hierNode.modifier+=o,i+=r.hierNode.change,o+=r.hierNode.shift+i}}function u(e,t,n,o){if(t){for(var i=e,r=e,a=r.parentNode.children[0],l=t,s=i.hierNode.modifier,c=r.hierNode.modifier,u=a.hierNode.modifier,g=l.hierNode.modifier;l=d(l),r=f(r),l&&r;){i=d(i),a=f(a),i.hierNode.ancestor=e;var m=l.hierNode.prelim+g-r.hierNode.prelim-c+o(l,r);m>0&&(h(p(l,e,n),e,m),c+=m,s+=m),g+=l.hierNode.modifier,c+=r.hierNode.modifier,s+=i.hierNode.modifier,u+=a.hierNode.modifier}l&&!d(i)&&(i.hierNode.thread=l,i.hierNode.modifier+=g-s),r&&!f(a)&&(a.hierNode.thread=r,a.hierNode.modifier+=c-u,n=e)}return n}function d(e){var t=e.children;return t.length&&e.isExpand?t[t.length-1]:e.hierNode.thread}function f(e){var t=e.children;return t.length&&e.isExpand?t[0]:e.hierNode.thread}function p(e,t,n){return e.hierNode.ancestor.parentNode===t.parentNode?e.hierNode.ancestor:n}function h(e,t,n){var o=n/(t.hierNode.i-e.hierNode.i);t.hierNode.change-=o,t.hierNode.shift+=n,t.hierNode.modifier+=n,t.hierNode.prelim+=n,e.hierNode.change+=o}function g(e,t){return e.parentNode===t.parentNode?1:2}var m=n(6);t.init=o,t.firstWalk=i,t.secondWalk=r,t.separation=a,t.radialCoordinate=l,t.getViewRect=s},function(e,t,n){function o(e,t,n){n=n||{};var o=e.coordinateSystem,r=t.axis,a={},l=r.position,s=r.onZero?"onZero":l,c=r.dim,u=o.getRect(),d=[u.x,u.x+u.width,u.y,u.y+u.height],f={left:0,right:1,top:0,bottom:1,onZero:2},p=t.get("offset")||0,h="x"===c?[d[2]-p,d[3]+p]:[d[0]-p,d[1]+p];if(r.onZero){var g=o.getAxis("x"===c?"y":"x",r.onZeroAxisIndex),m=g.toGlobalCoord(g.dataToCoord(0));h[f.onZero]=Math.max(Math.min(m,h[1]),h[0])}a.position=["y"===c?h[f[s]]:d[0],"x"===c?h[f[s]]:d[3]],a.rotation=Math.PI/2*("x"===c?0:1);var v={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=v[l],a.labelOffset=r.onZero?h[f[l]]-h[f.onZero]:0,t.get("axisTick.inside")&&(a.tickDirection=-a.tickDirection),i.retrieve(n.labelInside,t.get("axisLabel.inside"))&&(a.labelDirection=-a.labelDirection);var b=t.get("axisLabel.rotate");return a.labelRotate="top"===s?-b:b,a.labelInterval=r.getLabelInterval(),a.z2=1,a}var i=n(0);t.layout=o},function(e,t,n){function o(e,t){t=t||{};var n=e.coordinateSystem,o=e.axis,r={},a=o.position,l=o.orient,s=n.getRect(),c=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:c[2],bottom:c[3]},vertical:{left:c[0],right:c[1]}};r.position=["vertical"===l?u.vertical[a]:c[0],"horizontal"===l?u.horizontal[a]:c[3]];var d={horizontal:0,vertical:1};r.rotation=Math.PI/2*d[l];var f={top:-1,bottom:1,right:1,left:-1};r.labelDirection=r.tickDirection=r.nameDirection=f[a],e.get("axisTick.inside")&&(r.tickDirection=-r.tickDirection),i.retrieve(t.labelInside,e.get("axisLabel.inside"))&&(r.labelDirection=-r.labelDirection);var p=t.rotate;return null==p&&(p=e.get("axisLabel.rotate")),r.labelRotation="top"===a?-p:p,r.labelInterval=o.getLabelInterval(),r.z2=1,r}var i=n(0);t.layout=o},function(e,t,n){function o(e,t){var n={};return n[t.dim+"AxisIndex"]=t.index,e.getCartesian(n)}function i(e){return"x"===e.dim?0:1}var r=n(2),a=n(116),l=n(85),s=n(178),c=n(43),u=a.extend({makeElOption:function(e,t,n,i,r){var a=n.axis,c=a.grid,u=i.get("type"),f=o(c,a).getOtherAxis(a).getGlobalExtent(),p=a.toGlobalCoord(a.dataToCoord(t,!0));if(u&&"none"!==u){var h=l.buildElStyle(i),g=d[u](a,p,f,h);g.style=h,e.graphicKey=g.type,e.pointer=g}var m=s.layout(c.model,n);l.buildCartesianSingleLabelElOption(t,e,m,n,i,r)},getHandleTransform:function(e,t,n){var o=s.layout(t.axis.grid.model,t,{labelInside:!1});return o.labelMargin=n.get("handle.margin"),{position:l.getTransformedPosition(t.axis,e,o),rotation:o.rotation+(o.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(e,t,n,i){var r=n.axis,a=r.grid,l=r.getGlobalExtent(!0),s=o(a,r).getOtherAxis(r).getGlobalExtent(),c="x"===r.dim?0:1,u=e.position;u[c]+=t[c],u[c]=Math.min(l[1],u[c]),u[c]=Math.max(l[0],u[c]);var d=(s[1]+s[0])/2,f=[d,d];f[c]=u[c];var p=[{verticalAlign:"middle"},{align:"center"}];return{position:u,rotation:e.rotation,cursorPoint:f,tooltipOption:p[c]}}}),d={line:function(e,t,n,o){var a=l.makeLineShape([t,n[0]],[t,n[1]],i(e));return r.subPixelOptimizeLine({shape:a,style:o}),{type:"Line",shape:a}},shadow:function(e,t,n,o){var r=e.getBandWidth(),a=n[1]-n[0];return{type:"Rect",shape:l.makeRectShape([t-r/2,n[0]],[r,a],i(e))}}};c.registerAxisPointerClass("CartesianAxisPointer",u);var f=u;e.exports=f},function(e,t,n){function o(e,t){var n,o=[],a=e.seriesIndex;if(null==a||!(n=t.getSeriesByIndex(a)))return{point:[]};var l=n.getData(),s=r.queryDataIndex(l,e);if(null==s||i.isArray(s))return{point:[]};var c=l.getItemGraphicEl(s),u=n.coordinateSystem;if(n.getTooltipPosition)o=n.getTooltipPosition(s)||[];else if(u&&u.dataToPoint)o=u.dataToPoint(l.getValues(i.map(u.dimensions,function(e){return n.coordDimToDataDim(e)[0]}),s,!0))||[];else if(c){var d=c.getBoundingRect().clone();d.applyTransform(c.transform),o=[d.x+d.width/2,d.y+d.height/2]}return{point:o,el:c}}var i=n(0),r=n(5);e.exports=o},function(e,t,n){function o(e,t,n){if(!d.node){var o=t.getZr();p(o).records||(p(o).records={}),i(o,t),(p(o).records[e]||(p(o).records[e]={})).handler=n}}function i(e,t){function n(n,o){e.on(n,function(n){var i=s(t);h(p(e).records,function(e){e&&o(e,n,i.dispatchAction)}),r(i.pendings,t)})}p(e).initialized||(p(e).initialized=!0,n("click",u.curry(l,"click")),n("mousemove",u.curry(l,"mousemove")),n("globalout",a))}function r(e,t){var n,o=e.showTip.length,i=e.hideTip.length;o?n=e.showTip[o-1]:i&&(n=e.hideTip[i-1]),n&&(n.dispatchAction=null,t.dispatchAction(n))}function a(e,t,n){e.handler("leave",null,n)}function l(e,t,n,o){t.handler(e,n,o)}function s(e){var t={showTip:[],hideTip:[]},n=function(o){var i=t[o.type];i?i.push(o):(o.dispatchAction=n,e.dispatchAction(o))};return{dispatchAction:n,pendings:t}}function c(e,t){if(!d.node){var n=t.getZr();(p(n).records||{})[e]&&(p(n).records[e]=null)}}var u=n(0),d=n(15),f=n(5),p=f.makeGetter(),h=u.each;t.register=o,t.unregister=c},function(e,t,n){var o=n(1),i=n(0),r=n(117);o.registerAction("dataZoom",function(e,t){var n=r.createLinkedNodesFinder(i.bind(t.eachComponent,t,"dataZoom"),r.eachAxisDim,function(e,t){return e.get(t.axisIndex)}),o=[];t.eachComponent({mainType:"dataZoom",query:e},function(e,t){o.push.apply(o,n(e).nodes)}),i.each(o,function(t,n){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})})},function(e,t,n){function o(e,t,n){n.getAxisProxy(e.name,t).reset(n)}function i(e,t,n){n.getAxisProxy(e.name,t).filterData(n)}n(1).registerProcessor(function(e,t){e.eachComponent("dataZoom",function(e){e.eachTargetAxis(o),e.eachTargetAxis(i)}),e.eachComponent("dataZoom",function(e){var t=e.findRepresentativeAxisProxy(),n=t.getDataPercentWindow(),o=t.getDataValueWindow();e.setRawRange({start:n[0],end:n[1],startValue:o[0],endValue:o[1]},!0)})})},function(e,t,n){function o(e,t){var n=l(e);c(t,function(t,o){for(var i=n.length-1;i>=0&&!n[i][o];i--);if(i<0){var r=e.queryComponents({mainType:"dataZoom",subType:"select",id:o})[0];if(r){var a=r.getPercentRange();n[0][o]={dataZoomId:o,start:a[0],end:a[1]}}}}),n.push(t)}function i(e){var t=l(e),n=t[t.length-1];t.length>1&&t.pop();var o={};return c(n,function(e,n){for(var i=t.length-1;i>=0;i--){var e=t[i][n];if(e){o[n]=e;break}}}),o}function r(e){e[u]=null}function a(e){return l(e).length}function l(e){var t=e[u];return t||(t=e[u]=[{}]),t}var s=n(0),c=s.each,u="\0_ec_hist_store";t.push=o,t.pop=i,t.clear=r,t.count=a},function(e,t,n){n(14).registerSubTypeDefaulter("dataZoom",function(){return"slider"})},function(e,t,n){function o(e,t,n){var o=this._targetInfoList=[],i={},a=r(t,e);g(_,function(e,t){(!n||!n.include||m(n.include,t)>=0)&&e(a,o,i)})}function i(e){return e[0]>e[1]&&e.reverse(),e}function r(e,t){return p.parseFinder(e,t,{includeMainTypes:x})}function a(e,t,n,o){var r=n.getAxis(["x","y"][e]),a=i(d.map([0,1],function(e){return t?r.coordToData(r.toLocalCoord(o[e])):r.toGlobalCoord(r.dataToCoord(o[e]))})),l=[];return l[e]=a,l[1-e]=[NaN,NaN],{values:a,xyMinMax:l}}function l(e,t,n,o){return[t[0]-o[e]*n[0],t[1]-o[e]*n[1]]}function s(e,t){var n=c(e),o=c(t),i=[n[0]/o[0],n[1]/o[1]];return isNaN(i[0])&&(i[0]=1),isNaN(i[1])&&(i[1]=1),i}function c(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]}var u=n(4),d=(u.__DEV__,n(0)),f=n(2),p=n(5),h=n(189),g=d.each,m=d.indexOf,v=d.curry,b=["dataToPoint","pointToData"],x=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],y=o.prototype;y.setOutputRanges=function(e,t){this.matchOutputRanges(e,t,function(e,t,n){if((e.coordRanges||(e.coordRanges=[])).push(t),!e.coordRange){e.coordRange=t;var o=S[e.brushType](0,n,t);e.__rangeOffset={offset:M[e.brushType](o.values,e.range,[1,1]),xyMinMax:o.xyMinMax}}})},y.matchOutputRanges=function(e,t,n){g(e,function(e){var o=this.findTargetInfo(e,t);o&&!0!==o&&d.each(o.coordSyses,function(o){var i=S[e.brushType](1,o,e.range);n(e,i.values,o,t)})},this)},y.setInputRanges=function(e,t){g(e,function(e){var n=this.findTargetInfo(e,t);if(e.range=e.range||[],n&&!0!==n){e.panelId=n.panelId;var o=S[e.brushType](0,n.coordSys,e.coordRange),i=e.__rangeOffset;e.range=i?M[e.brushType](o.values,i.offset,s(o.xyMinMax,i.xyMinMax)):o.values}},this)},y.makePanelOpts=function(e,t){return d.map(this._targetInfoList,function(n){var o=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:t&&t(n),clipPath:h.makeRectPanelClipPath(o),isTargetByCursor:h.makeRectIsTargetByCursor(o,e,n.coordSysModel),getLinearBrushOtherExtent:h.makeLinearBrushOtherExtent(o)}})},y.controlSeries=function(e,t,n){var o=this.findTargetInfo(e,n);return!0===o||o&&m(o.coordSyses,t.coordinateSystem)>=0},y.findTargetInfo=function(e,t){for(var n=this._targetInfoList,o=r(t,e),i=0;i=0||m(o,e.getAxis("y").model)>=0)&&r.push(e)}),t.push({panelId:"grid--"+e.id,gridModel:e,coordSysModel:e,coordSys:r[0],coordSyses:r,getPanelRect:k.grid,xAxisDeclared:a[e.id],yAxisDeclared:l[e.id]})}))},geo:function(e,t){g(e.geoModels,function(e){var n=e.coordinateSystem;t.push({panelId:"geo--"+e.id,geoModel:e,coordSysModel:e,coordSys:n,coordSyses:[n],getPanelRect:k.geo})})}},w=[function(e,t){var n=e.xAxisModel,o=e.yAxisModel,i=e.gridModel;return!i&&n&&(i=n.axis.grid.model),!i&&o&&(i=o.axis.grid.model),i&&i===t.gridModel},function(e,t){var n=e.geoModel;return n&&n===t.geoModel}],k={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var e=this.coordSys,t=e.getBoundingRect().clone();return t.applyTransform(f.getTransform(e)),t}},S={lineX:v(a,0),lineY:v(a,1),rect:function(e,t,n){var o=t[b[e]]([n[0][0],n[1][0]]),r=t[b[e]]([n[0][1],n[1][1]]),a=[i([o[0],r[0]]),i([o[1],r[1]])];return{values:a,xyMinMax:a}},polygon:function(e,t,n){var o=[[1/0,-1/0],[1/0,-1/0]];return{values:d.map(n,function(n){var i=t[b[e]](n);return o[0][0]=Math.min(o[0][0],i[0]),o[1][0]=Math.min(o[1][0],i[1]),o[0][1]=Math.max(o[0][1],i[0]),o[1][1]=Math.max(o[1][1],i[1]),i}),xyMinMax:o}}},M={lineX:v(l,0),lineY:v(l,1),rect:function(e,t,n){return[[e[0][0]-n[0]*t[0][0],e[0][1]-n[0]*t[0][1]],[e[1][0]-n[1]*t[1][0],e[1][1]-n[1]*t[1][1]]]},polygon:function(e,t,n){return d.map(e,function(e,o){return[e[0]-n[0]*t[o][0],e[1]-n[1]*t[o][1]]})}},C=o;e.exports=C},function(e,t,n){function o(e,t){var n=e.getItemStyle(),o=e.get("areaColor");return null!=o&&(n.fill=o),n}function i(e,t,n,o,i){n.off("click"),n.off("mousedown"),t.get("selectedMode")&&(n.on("mousedown",function(){e._mouseDownFlag=!0}),n.on("click",function(a){if(e._mouseDownFlag){e._mouseDownFlag=!1;for(var s=a.target;!s.__regions;)s=s.parent;if(s){var c={type:("geo"===t.mainType?"geo":"map")+"ToggleSelect",batch:l.map(s.__regions,function(e){return{name:e.name,from:i.uid}})};c[t.mainType+"Id"]=t.id,o.dispatchAction(c),r(t,n)}}}))}function r(e,t){t.eachChild(function(t){l.each(t.__regions,function(n){t.trigger(e.isSelected(n.name)?"emphasis":"normal")})})}function a(e,t){var n=new f.Group;this._controller=new s(e.getZr()),this._controllerHost={target:t?n:null},this.group=n,this._updateGroup=t,this._mouseDownFlag}var l=n(0),s=n(86),c=n(192),u=n(119),d=u.onIrrelevantElement,f=n(2);a.prototype={constructor:a,draw:function(e,t,n,a,s){var c="geo"===e.mainType,u=e.getData&&e.getData();c&&t.eachComponent({mainType:"series",subType:"map"},function(t){u||t.getHostGeoModel()!==e||(u=t.getData())});var d=e.coordinateSystem,p=this.group,h=d.scale,g={position:d.position,scale:h};!p.childAt(0)||s?p.attr(g):f.updateProps(p,g,e),p.removeAll();var m=["itemStyle","normal"],v=["itemStyle","emphasis"],b=["label","normal"],x=["label","emphasis"],y=l.createHashMap();l.each(d.regions,function(t){var n=y.get(t.name)||y.set(t.name,new f.Group),i=new f.CompoundPath({shape:{paths:[]}});n.add(i);var r,a=e.getRegionModel(t.name)||e,s=a.getModel(m),d=a.getModel(v),g=o(s,h),_=o(d,h),w=a.getModel(b),k=a.getModel(x);if(u){r=u.indexOfName(t.name);var S=u.getItemVisual(r,"color",!0);S&&(g.fill=S)}l.each(t.geometries,function(e){if("polygon"===e.type){i.shape.paths.push(new f.Polygon({shape:{points:e.exterior}}));for(var t=0;t<(e.interiors?e.interiors.length:0);t++)i.shape.paths.push(new f.Polygon({shape:{points:e.interiors[t]}}))}}),i.setStyle(g),i.style.strokeNoScale=!0,i.culling=!0;var M=w.get("show"),C=k.get("show"),A=u&&isNaN(u.get("value",r)),T=u&&u.getItemLayout(r);if(c||A&&(M||C)||T&&T.showLabel){var E,I=c?t.name:r;(!u||r>=0)&&(E=e);var O=new f.Text({position:t.center.slice(),scale:[1/h[0],1/h[1]],z2:10,silent:!0});f.setLabelStyle(O.style,O.hoverStyle={},w,k,{labelFetcher:E,labelDataIndex:I,defaultText:t.name,useInsideStyle:!1},{textAlign:"center",textVerticalAlign:"middle"}),n.add(O)}if(u)u.setItemGraphicEl(r,n);else{var a=e.getRegionModel(t.name);i.eventData={componentType:"geo",geoIndex:e.componentIndex,name:t.name,region:a&&a.option||{}}}(n.__regions||(n.__regions=[])).push(t),f.setHoverStyle(n,_,{hoverSilentOnTouch:!!e.get("selectedMode")}),p.add(n)}),this._updateController(e,t,n),i(this,e,p,n,a),r(e,p)},remove:function(){this.group.removeAll(),this._controller.dispose(),this._controllerHost={}},_updateController:function(e,t,n){function o(){var t={type:"geoRoam",componentType:s};return t[s+"Id"]=e.id,t}var i=e.coordinateSystem,r=this._controller,a=this._controllerHost;a.zoomLimit=e.get("scaleLimit"),a.zoom=i.getZoom(),r.enable(e.get("roam")||!1);var s=e.mainType;r.off("pan").on("pan",function(e,t){this._mouseDownFlag=!1,c.updateViewOnPan(a,e,t),n.dispatchAction(l.extend(o(),{dx:e,dy:t}))},this),r.off("zoom").on("zoom",function(e,t,i){if(this._mouseDownFlag=!1,c.updateViewOnZoom(a,e,t,i),n.dispatchAction(l.extend(o(),{zoom:e,originX:t,originY:i})),this._updateGroup){var r=this.group,s=r.scale;r.traverse(function(e){"text"===e.type&&e.attr("scale",[1/s[0],1/s[1]])})}},this),r.setPointerChecker(function(t,o,r){return i.getViewRectAfterRoam().contain(o,r)&&!d(t,n,e)})}};var p=a;e.exports=p},function(e,t,n){function o(e){return e=a(e),function(t,n){return u.clipPointsByRect(t,e)}}function i(e,t){return e=a(e),function(n){var o=null!=t?t:n,i=o?e.width:e.height,r=o?e.x:e.y;return[r,r+(i||0)]}}function r(e,t,n){return e=a(e),function(o,i,r){return e.contain(i[0],i[1])&&!c(o,t,n)}}function a(e){return l.create(e)}var l=n(10),s=n(119),c=s.onIrrelevantElement,u=n(2);t.makeRectPanelClipPath=o,t.makeLinearBrushOtherExtent=i,t.makeRectIsTargetByCursor=r},function(e,t,n){function o(e,t,n){a(e)[t]=n}function i(e,t,n){var o=a(e);o[t]===n&&(o[t]=null)}function r(e,t){return!!a(e)[t]}function a(e){return e[s]||(e[s]={})}var l=n(1),s="\0_ec_interaction_mutex";l.registerAction({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),t.take=o,t.release=i,t.isTaken=r},function(e,t,n){function o(e,t,n){var o=t.getBoxLayoutParams(),i=t.get("padding"),r={width:n.getWidth(),height:n.getHeight()},c=a(o,r,i);l(t.get("orient"),e,t.get("itemGap"),c.width,c.height),s(e,o,r,i)}function i(e,t){var n=c.normalizeCssArray(t.get("padding")),o=t.getItemStyle(["color","opacity"]);o.fill=t.get("backgroundColor");var e=new u.Rect({shape:{x:e.x-n[3],y:e.y-n[0],width:e.width+n[1]+n[3],height:e.height+n[0]+n[2],r:t.get("borderRadius")},style:o,silent:!0,z2:-1});return e}var r=n(6),a=r.getLayoutRect,l=r.box,s=r.positionElement,c=n(8),u=n(2);t.layout=o,t.makeBackground=i},function(e,t){function n(e,t,n){var o=e.target,i=o.position;i[0]+=t,i[1]+=n,o.dirty()}function o(e,t,n,o){var i=e.target,r=e.zoomLimit,a=i.position,l=i.scale,s=e.zoom=e.zoom||1;if(s*=t,r){var c=r.min||0,u=r.max||1/0;s=Math.max(Math.min(u,s),c)}var d=s/e.zoom;e.zoom=s,a[0]-=(n-a[0])*(d-1),a[1]-=(o-a[1])*(d-1),l[0]*=d,l[1]*=d,i.dirty()}t.updateViewOnPan=n,t.updateViewOnZoom=o},function(e,t,n){var o=n(1),i=n(0),r=n(12),a=o.extendComponentModel({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(e,t,n){this.mergeDefaultAndTheme(e,n),e.selected=e.selected||{}},mergeOption:function(e){a.superCall(this,"mergeOption",e)},optionUpdated:function(){this._updateData(this.ecModel);var e=this._data;if(e[0]&&"single"===this.get("selectedMode")){for(var t=!1,n=0;n=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}}),l=a;e.exports=l},function(e,t,n){function o(e,t){t.dispatchAction({type:"legendToggleSelect",name:e})}function i(e,t,n){var o=n.getZr().storage.getDisplayList()[0];o&&o.useHoverLayer||e.get("legendHoverLink")&&n.dispatchAction({type:"highlight",seriesName:e.name,name:t})}function r(e,t,n){var o=n.getZr().storage.getDisplayList()[0];o&&o.useHoverLayer||e.get("legendHoverLink")&&n.dispatchAction({type:"downplay",seriesName:e.name,name:t})}var a=n(4),l=(a.__DEV__,n(1)),s=n(0),c=n(23),u=c.createSymbol,d=n(2),f=n(191),p=f.makeBackground,h=n(6),g=s.curry,m=s.each,v=d.Group,b=l.extendComponentView({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new v),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(e,t,n){if(this.resetInner(),e.get("show",!0)){var o=e.get("align");o&&"auto"!==o||(o="right"===e.get("left")&&"vertical"===e.get("orient")?"right":"left"),this.renderInner(o,e,t,n);var i=e.getBoxLayoutParams(),r={width:n.getWidth(),height:n.getHeight()},a=e.get("padding"),l=h.getLayoutRect(i,r,a),c=this.layoutInner(e,o,l),u=h.getLayoutRect(s.defaults({width:c.width,height:c.height},i),r,a);this.group.attr("position",[u.x-c.x,u.y-c.y]),this.group.add(this._backgroundEl=p(c,e))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(e,t,n,a){var l=this.getContentGroup(),c=s.createHashMap(),u=t.get("selectedMode");m(t.getData(),function(s,d){var f=s.get("name");if(!this.newlineDisabled&&(""===f||"\n"===f))return void l.add(new v({newline:!0}));var p=n.getSeriesByName(f)[0];if(!c.get(f))if(p){var h=p.getData(),m=h.getVisual("color");"function"==typeof m&&(m=m(p.getDataParams(0)));var b=h.getVisual("legendSymbol")||"roundRect",x=h.getVisual("symbol"),y=this._createItem(f,d,s,t,b,x,e,m,u);y.on("click",g(o,f,a)).on("mouseover",g(i,p,null,a)).on("mouseout",g(r,p,null,a)),c.set(f,!0)}else n.eachRawSeries(function(n){if(!c.get(f)&&n.legendDataProvider){var l=n.legendDataProvider(),p=l.indexOfName(f);if(p<0)return;var h=l.getItemVisual(p,"color");this._createItem(f,d,s,t,"roundRect",null,e,h,u).on("click",g(o,f,a)).on("mouseover",g(i,n,f,a)).on("mouseout",g(r,n,f,a)),c.set(f,!0)}},this)},this)},_createItem:function(e,t,n,o,i,r,a,l,c){var f=o.get("itemWidth"),p=o.get("itemHeight"),h=o.get("inactiveColor"),g=o.isSelected(e),m=new v,b=n.getModel("textStyle"),x=n.get("icon"),y=n.getModel("tooltip"),_=y.parentModel;if(i=x||i,m.add(u(i,0,0,f,p,g?l:h,!0)),!x&&r&&(r!==i||"none"==r)){var w=.8*p;"none"===r&&(r="circle"),m.add(u(r,(f-w)/2,(p-w)/2,w,w,g?l:h))}var k="left"===a?f+5:-5,S=a,M=o.get("formatter"),C=e;"string"==typeof M&&M?C=M.replace("{name}",null!=e?e:""):"function"==typeof M&&(C=M(e)),m.add(new d.Text({style:d.setTextStyle({},b,{text:C,x:k,y:p/2,textFill:g?b.getTextColor():h,textAlign:S,textVerticalAlign:"middle"})}));var A=new d.Rect({shape:m.getBoundingRect(),invisible:!0,tooltip:y.get("show")?s.extend({content:e,formatter:_.get("formatter",!0)||function(){return e},formatterParams:{componentType:"legend",legendIndex:o.componentIndex,name:e,$vars:["name"]}},y.option):null});return m.add(A),m.eachChild(function(e){e.silent=!0}),A.silent=!c,this.getContentGroup().add(m),d.setHoverStyle(m),m.__legendDataIndex=t,m},layoutInner:function(e,t,n){var o=this.getContentGroup();h.box(e.get("orient"),o,e.get("itemGap"),n.width,n.height);var i=o.getBoundingRect();return o.attr("position",[-i.x,-i.y]),this.group.getBoundingRect()}});e.exports=b},function(e,t,n){function o(e,t){var n=e._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===t}var i=n(1),r=n(0),a=n(44),l=n(573);n(211),n(572),n(521),i.extendComponentView({type:"parallel",render:function(e,t,n){this._model=e,this._api=n,this._handlers||(this._handlers={},r.each(s,function(e,t){n.getZr().on(t,this._handlers[t]=r.bind(e,this))},this)),a.createOrUpdate(this,"_throttledDispatchExpand",e.get("axisExpandRate"),"fixRate")},dispose:function(e,t){r.each(this._handlers,function(e,n){t.getZr().off(n,e)}),this._handlers=null},_throttledDispatchExpand:function(e){this._dispatchExpand(e)},_dispatchExpand:function(e){e&&this._api.dispatchAction(r.extend({type:"parallelAxisExpand"},e))}});var s={mousedown:function(e){o(this,"click")&&(this._mouseDownPoint=[e.offsetX,e.offsetY])},mouseup:function(e){var t=this._mouseDownPoint;if(o(this,"click")&&t){var n=[e.offsetX,e.offsetY];if(Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)>5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(e){if(!this._mouseDownPoint&&o(this,"mousemove")){var t=this._model,n=t.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(t.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i&&null})}}};i.registerPreprocessor(l)},function(e,t,n){var o=n(1);n(587),n(475),n(583),n(67),n(480),o.extendComponentView({type:"single"})},function(e,t,n){var o=n(1),i=n(2),r=n(6),a=r.getLayoutRect;o.extendComponentModel({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),o.extendComponentView({type:"title",render:function(e,t,n){if(this.group.removeAll(),e.get("show")){var o=this.group,r=e.getModel("textStyle"),l=e.getModel("subtextStyle"),s=e.get("textAlign"),c=e.get("textBaseline"),u=new i.Text({style:i.setTextStyle({},r,{text:e.get("text"),textFill:r.getTextColor()},{disableBox:!0}),z2:10}),d=u.getBoundingRect(),f=e.get("subtext"),p=new i.Text({style:i.setTextStyle({},l,{text:f,textFill:l.getTextColor(),y:d.height+e.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),h=e.get("link"),g=e.get("sublink");u.silent=!h,p.silent=!g,h&&u.on("click",function(){window.open(h,"_"+e.get("target"))}),g&&p.on("click",function(){window.open(g,"_"+e.get("subtarget"))}),o.add(u),f&&o.add(p);var m=o.getBoundingRect(),v=e.getBoxLayoutParams();v.width=m.width,v.height=m.height;var b=a(v,{width:n.getWidth(),height:n.getHeight()},e.get("padding"));s||(s=e.get("left")||e.get("right"),"middle"===s&&(s="center"),"right"===s?b.x+=b.width:"center"===s&&(b.x+=b.width/2)),c||(c=e.get("top")||e.get("bottom"),"center"===c&&(c="middle"),"bottom"===c?b.y+=b.height:"middle"===c&&(b.y+=b.height/2),c=c||"top"),o.attr("position",[b.x,b.y]);var x={textAlign:s,textVerticalAlign:c};u.setStyle(x),p.setStyle(x),m=o.getBoundingRect();var y=b.margin,_=e.getItemStyle(["color","opacity"]);_.fill=e.get("backgroundColor");var w=new i.Rect({shape:{x:m.x-y[3],y:m.y-y[0],width:m.width+y[1]+y[3],height:m.height+y[0]+y[2],r:e.get("borderRadius")},style:_,silent:!0});i.subPixelOptimizeRect(w),o.add(w)}}})},function(e,t,n){var o=n(1);n(67),n(545),n(546),o.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),o.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){})},function(e,t,n){var o=n(1),i=n(0),r=n(15),a=n(218),l=n(45),s=n(92),c=n(5),u=n(3),d=l.mapVisual,f=l.eachVisual,p=i.isArray,h=i.each,g=u.asc,m=u.linearMap,v=i.noop,b=["#f6efa6","#d88273","#bf444c"],x=o.extendComponentModel({type:"visualMap",dependencies:["series"],stateList:["inRange","outOfRange"],replacableOptionKeys:["inRange","outOfRange","target","controller","color"],dataBound:[-1/0,1/0],layoutMode:{type:"box",ignoreSize:!0},defaultOption:{show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,dimension:null,inRange:null,outOfRange:null,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,color:null,formatter:null,text:null,textStyle:{color:"#333"}},init:function(e,t,n){this._dataExtent,this.targetVisuals={},this.controllerVisuals={},this.textStyleModel,this.itemSize,this.mergeDefaultAndTheme(e,n)},optionUpdated:function(e,t){var n=this.option;r.canvasSupported||(n.realtime=!1),!t&&s.replaceVisualOption(n,e,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},resetVisual:function(e){var t=this.stateList;e=i.bind(e,this),this.controllerVisuals=s.createVisualMappings(this.option.controller,t,e),this.targetVisuals=s.createVisualMappings(this.option.target,t,e)},getTargetSeriesIndices:function(){var e=this.option.seriesIndex,t=[];return null==e||"all"===e?this.ecModel.eachSeries(function(e,n){t.push(n)}):t=c.normalizeToArray(e),t},eachTargetSeries:function(e,t){i.each(this.getTargetSeriesIndices(),function(n){e.call(t,this.ecModel.getSeriesByIndex(n))},this)},isTargetSeries:function(e){var t=!1;return this.eachTargetSeries(function(n){n===e&&(t=!0)}),t},formatValueText:function(e,t,n){function o(e){return e===c[0]?"min":e===c[1]?"max":(+e).toFixed(Math.min(s,20))}var r,a,l=this.option,s=l.precision,c=this.dataBound,u=l.formatter;return n=n||["<",">"],i.isArray(e)&&(e=e.slice(),r=!0),a=t?e:r?[o(e[0]),o(e[1])]:o(e),i.isString(u)?u.replace("{value}",r?a[0]:a).replace("{value2}",r?a[1]:a):i.isFunction(u)?r?u(e[0],e[1]):u(e):r?e[0]===c[0]?n[0]+" "+a[1]:e[1]===c[1]?n[1]+" "+a[0]:a[0]+" - "+a[1]:a},resetExtent:function(){var e=this.option,t=g([e.min,e.max]);this._dataExtent=t},getDataDimension:function(e){var t=this.option.dimension;return null!=t?t:e.dimensions.length-1},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){function e(e){p(o.color)&&!e.inRange&&(e.inRange={color:o.color.slice().reverse()}),e.inRange=e.inRange||{color:b},h(this.stateList,function(t){var n=e[t];if(i.isString(n)){var o=a.get(n,"active",u);o?(e[t]={},e[t][n]=o):delete e[t]}},this)}function t(e,t,n){var o=e[t],i=e[n];o&&!i&&(i=e[n]={},h(o,function(e,t){if(l.isValidType(t)){var n=a.get(t,"inactive",u);null!=n&&(i[t]=n,"color"!==t||i.hasOwnProperty("opacity")||i.hasOwnProperty("colorAlpha")||(i.opacity=[0,0]))}}))}function n(e){var t=(e.inRange||{}).symbol||(e.outOfRange||{}).symbol,n=(e.inRange||{}).symbolSize||(e.outOfRange||{}).symbolSize,o=this.get("inactiveColor");h(this.stateList,function(r){var a=this.itemSize,l=e[r];l||(l=e[r]={color:u?o:[o]}),null==l.symbol&&(l.symbol=t&&i.clone(t)||(u?"roundRect":["roundRect"])),null==l.symbolSize&&(l.symbolSize=n&&i.clone(n)||(u?a[0]:[a[0],a[0]])),l.symbol=d(l.symbol,function(e){return"none"===e||"square"===e?"roundRect":e});var s=l.symbolSize;if(null!=s){var c=-1/0;f(s,function(e){e>c&&(c=e)}),l.symbolSize=d(s,function(e){return m(e,[0,c],[0,a[0]],!0)})}},this)}var o=this.option,r={inRange:o.inRange,outOfRange:o.outOfRange},s=o.target||(o.target={}),c=o.controller||(o.controller={});i.merge(s,r),i.merge(c,r);var u=this.isCategory();e.call(this,s),e.call(this,c),t.call(this,s,"inRange","outOfRange"),n.call(this,c)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this.option.categories},setSelected:v,getValueState:v,getVisualMeta:v}),y=x;e.exports=y},function(e,t,n){var o=n(1),i=n(0),r=n(2),a=n(8),l=n(6),s=n(45),c=o.extendComponentView({type:"visualMap",autoPositionValues:{left:1,right:1,top:1,bottom:1},init:function(e,t){this.ecModel=e,this.api=t,this.visualMapModel},render:function(e,t,n,o){if(this.visualMapModel=e,!1===e.get("show"))return void this.group.removeAll();this.doRender.apply(this,arguments)},renderBackground:function(e){var t=this.visualMapModel,n=a.normalizeCssArray(t.get("padding")||0),o=e.getBoundingRect();e.add(new r.Rect({z2:-1,silent:!0,shape:{x:o.x-n[3],y:o.y-n[0],width:o.width+n[3]+n[1],height:o.height+n[0]+n[2]},style:{fill:t.get("backgroundColor"),stroke:t.get("borderColor"),lineWidth:t.get("borderWidth")}}))},getControllerVisual:function(e,t,n){function o(e){return c[e]}function r(e,t){c[e]=t}n=n||{};var a=n.forceState,l=this.visualMapModel,c={};if("symbol"===t&&(c.symbol=l.get("itemSymbol")),"color"===t){var u=l.get("contentColor");c.color=u}var d=l.controllerVisuals[a||l.getValueState(e)],f=s.prepareVisualTypes(d);return i.each(f,function(i){var a=d[i];n.convertOpacityToAlpha&&"opacity"===i&&(i="colorAlpha",a=d.__alphaForOpacity),s.dependsOn(i,t)&&a&&a.applyVisual(e,o,r)}),c[t]},positionGroup:function(e){var t=this.visualMapModel,n=this.api;l.positionElement(e,t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()})},doRender:i.noop});e.exports=c},function(e,t,n){function o(e,t,n){var o=e.option,i=o.align;if(null!=i&&"auto"!==i)return i;for(var r={width:t.getWidth(),height:t.getHeight()},a="horizontal"===o.orient?1:0,s=[["left","right","width"],["top","bottom","height"]],c=s[a],u=[0,null,10],d={},f=0;f<3;f++)d[s[1-a][f]]=u[f],d[c[f]]=2===f?n[0]:o[c[f]];var p=[["x","width",3],["y","height",0]][a],h=l(d,r,o.padding);return c[(h.margin[p[2]]||0)+h[p[0]]+.5*h[p[1]]<.5*r[p[1]]?0:1]}function i(e){return r.each(e||[],function(t){null!=e.dataIndex&&(e.dataIndexInside=e.dataIndex,e.dataIndex=null)}),e}var r=n(0),a=n(6),l=a.getLayoutRect;t.getItemAlign=o,t.convertDataIndex=i},function(e,t,n){function o(e){var t=e&&e.visualMap;r.isArray(t)||(t=t?[t]:[]),a(t,function(e){if(e){i(e,"splitList")&&!i(e,"pieces")&&(e.pieces=e.splitList,delete e.splitList);var t=e.pieces;t&&r.isArray(t)&&a(t,function(e){r.isObject(e)&&(i(e,"start")&&!i(e,"min")&&(e.min=e.start),i(e,"end")&&!i(e,"max")&&(e.max=e.end))})}})}function i(e,t){return e&&e.hasOwnProperty&&e.hasOwnProperty(t)}var r=n(0),a=r.each;e.exports=o},function(e,t,n){n(14).registerSubTypeDefaulter("visualMap",function(e){return e.categories||(e.pieces?e.pieces.length>0:e.splitNumber>0)&&!e.calculable?"piecewise":"continuous"})},function(e,t,n){function o(e,t){e.eachTargetSeries(function(t){var n=t.getData();s.applyVisual(e.stateList,e.targetVisuals,n,e.getValueState,e,e.getDataDimension(n))})}function i(e){e.eachSeries(function(t){var n=t.getData(),o=[];e.eachComponent("visualMap",function(e){if(e.isTargetSeries(t)){var i=e.getVisualMeta(l.bind(r,null,t,e))||{stops:[],outerColors:[]};i.dimension=e.getDataDimension(n),o.push(i)}}),t.getData().setVisual("visualMeta",o)})}function r(e,t,n,o){function i(e){return s[e]}function r(e,t){s[e]=t}for(var a=t.targetVisuals[o],l=c.prepareVisualTypes(a),s={color:e.getData().getVisual("color")},u=0,d=l.length;u>1^-(1&l),s=s>>1^-(1&s),l+=i,s+=r,i=l,r=s,o.push([l/n,s/n])}return o}function r(e){return o(e),a.map(a.filter(e.features,function(e){return e.geometry&&e.properties&&e.geometry.coordinates.length>0}),function(e){var t=e.properties,n=e.geometry,o=n.coordinates,i=[];"Polygon"===n.type&&i.push({type:"polygon",exterior:o[0],interiors:o.slice(1)}),"MultiPolygon"===n.type&&a.each(o,function(e){e[0]&&i.push({type:"polygon",exterior:e[0],interiors:e.slice(1)})});var r=new l(t.name,i,t.cp);return r.properties=t,r})}var a=n(0),l=n(209);e.exports=r},function(e,t,n){function o(e,t){var n=[];return e.eachComponent("parallel",function(o,r){var a=new i(o,e,t);a.name="parallel_"+r,a.resize(o,t),o.coordinateSystem=a,a.model=o,n.push(a)}),e.eachSeries(function(t){if("parallel"===t.get("coordinateSystem")){var n=e.queryComponents({mainType:"parallel",index:t.get("parallelIndex"),id:t.get("parallelId")})[0];t.coordinateSystem=n.coordinateSystem}}),n}var i=n(570);n(26).register("parallel",{create:o})},function(e,t,n){function o(e,t,n){this.root,this.data,this._nodes=[],this.hostModel=e,this.levelModels=r.map(t||[],function(t){return new a(t,e,e.ecModel)}),this.leavesModel=new a(n||{},e,e.ecModel)}function i(e,t){var n=t.children;e.parentNode!==t&&(n.push(e),e.parentNode=t)}var r=n(0),a=n(12),l=n(13),s=n(213),c=n(25),u=function(e,t){this.name=e||"",this.depth=0,this.height=0,this.parentNode=null,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.hostTree=t};u.prototype={constructor:u,isRemoved:function(){return this.dataIndex<0},eachNode:function(e,t,n){"function"==typeof e&&(n=t,t=e,e=null),e=e||{},r.isString(e)&&(e={order:e});var o,i=e.order||"preorder",a=this[e.attr||"children"];"preorder"===i&&(o=t.call(n,this));for(var l=0;!o&&lt&&(t=o.height)}this.height=t+1},getNodeById:function(e){if(this.getId()===e)return this;for(var t=0,n=this.children,o=n.length;t=0&&this.hostTree.data.setItemLayout(this.dataIndex,e,t)},getLayout:function(){return this.hostTree.data.getItemLayout(this.dataIndex)},getModel:function(e){if(!(this.dataIndex<0)){var t,n=this.hostTree,o=n.data.getItemModel(this.dataIndex),i=this.getLevelModel();return i||0!==this.children.length&&(0===this.children.length||!1!==this.isExpand)||(t=this.getLeavesModel()),o.getModel(e,(i||t||n.hostModel).getModel(e))}},getLevelModel:function(){return(this.hostTree.levelModels||[])[this.depth]},getLeavesModel:function(){return this.hostTree.leavesModel},setVisual:function(e,t){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,e,t)},getVisual:function(e,t){return this.hostTree.data.getItemVisual(this.dataIndex,e,t)},getRawIndex:function(){return this.hostTree.data.getRawIndex(this.dataIndex)},getId:function(){return this.hostTree.data.getId(this.dataIndex)}},o.prototype={constructor:o,type:"tree",eachNode:function(e,t,n){this.root.eachNode(e,t,n)},getNodeByDataIndex:function(e){var t=this.data.getRawIndex(e);return this._nodes[t]},getNodeByName:function(e){return this.root.getNodeByName(e)},update:function(){for(var e=this.data,t=this._nodes,n=0,o=t.length;no&&(u=r.interval=o);var d=r.intervalPrecision=i(u);return a(r.niceTickExtent=[c(Math.ceil(e[0]/u)*u,d),c(Math.floor(e[1]/u)*u,d)],e),r}function i(e){return s.getPrecisionSafe(e)+2}function r(e,t,n){e[t]=Math.max(Math.min(e[t],n[1]),n[0])}function a(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),r(e,0,t),r(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function l(e,t,n,o){var i=[];if(!e)return i;t[0]1e4)return[];return t[1]>(i.length?i[i.length-1]:n[1])&&i.push(t[1]),i}var s=n(3),c=s.round;t.intervalScaleNiceTicks=o,t.getIntervalPrecision=i,t.fixExtent=a,t.intervalScaleGetTicks=l},function(e,t,n){function o(){function e(t,o){if(o>=n.length)return t;for(var r=-1,a=t.length,l=n[o++],s={},c={};++r=n.length)return e;var a=[],l=o[r++];return i.each(e,function(e,n){a.push({key:n,values:t(e,r)})}),l?a.sort(function(e,t){return l(e.key,t.key)}):a}var n=[],o=[];return{key:function(e){return n.push(e),this},sortKeys:function(e){return o[n.length-1]=e,this},entries:function(n){return t(e(n,0),0)}}}var i=n(0);e.exports=o},function(e,t,n){var o=n(0),i={get:function(e,t,n){var i=o.clone((r[e]||{})[t]);return n&&o.isArray(i)?i[i.length-1]:i}},r={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},a=i;e.exports=a},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=83)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},4:function(e,t){e.exports=n(59)},83:function(e,t,n){"use strict";n.r(t);var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"el-checkbox",class:[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}],attrs:{id:e.id}},[n("span",{staticClass:"el-checkbox__input",class:{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus},attrs:{tabindex:!!e.indeterminate&&0,role:!!e.indeterminate&&"checkbox","aria-checked":!!e.indeterminate&&"mixed"}},[n("span",{staticClass:"el-checkbox__inner"}),e.trueLabel||e.falseLabel?n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var n=e.model,o=t.target,i=o.checked?e.trueLabel:e.falseLabel;if(Array.isArray(n)){var r=e._i(n,null);o.checked?r<0&&(e.model=n.concat([null])):r>-1&&(e.model=n.slice(0,r).concat(n.slice(r+1)))}else e.model=i},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var n=e.model,o=t.target,i=!!o.checked;if(Array.isArray(n)){var r=e.label,a=e._i(n,r);o.checked?a<0&&(e.model=n.concat([r])):a>-1&&(e.model=n.slice(0,a).concat(n.slice(a+1)))}else e.model=i},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?n("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])},i=[];o._withStripped=!0;var r=n(4),a=n.n(r),l={name:"ElCheckbox",mixins:[a.a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,n=e.min;return!(!t&&!n)&&this.model.length>=t&&!this.isChecked||this.model.length<=n&&this.isChecked},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup?this._checkboxGroup.checkboxGroupSize||e:e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var n=void 0;n=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",n,e),this.$nextTick(function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])})}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}},s=l,c=n(0),u=Object(c.a)(s,o,i,!1,null,null,null);u.options.__file="packages/checkbox/src/checkbox.vue";var d=u.exports;d.install=function(e){e.component(d.name,d)},t.default=d}})},function(e,t,n){"use strict";t.__esModule=!0,n(38),t.default={mounted:function(){},methods:{getMigratingConfig:function(){return{props:{},events:{}}}}}},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=131)}({131:function(e,t,n){"use strict";n.r(t);var o=n(5),i=n.n(o),r=n(17),a=n.n(r),l=n(2),s=n(3),c=n(7),u=n.n(c),d={name:"ElTooltip",mixins:[i.a],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0},tabindex:{type:Number,default:0}},data:function(){return{tooltipId:"el-tooltip-"+Object(s.generateId)(),timeoutPending:null,focusing:!1}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new u.a({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=a()(200,function(){return e.handleClosePopper()}))},render:function(e){var t=this;this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])]));var n=this.getFirstElement();if(!n)return null;var o=n.data=n.data||{};return o.staticClass=this.addTooltipClass(o.staticClass),n},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",this.tabindex),Object(l.on)(this.referenceElm,"mouseenter",this.show),Object(l.on)(this.referenceElm,"mouseleave",this.hide),Object(l.on)(this.referenceElm,"focus",function(){if(!e.$slots.default||!e.$slots.default.length)return void e.handleFocus();var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}),Object(l.on)(this.referenceElm,"blur",this.handleBlur),Object(l.on)(this.referenceElm,"click",this.removeFocusing)),this.value&&this.popperVM&&this.popperVM.$nextTick(function(){e.value&&e.updatePopper()})},watch:{focusing:function(e){e?Object(l.addClass)(this.referenceElm,"focusing"):Object(l.removeClass)(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},addTooltipClass:function(e){return e?"el-tooltip "+e.replace("el-tooltip",""):"el-tooltip"},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.showPopper=!0},this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout(function(){e.showPopper=!1},this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e},getFirstElement:function(){var e=this.$slots.default;if(!Array.isArray(e))return null;for(var t=null,n=0;n0?this._openTimer=setTimeout(function(){t._openTimer=null,t.doOpen(n)},o):this.doOpen(n)},doOpen:function(e){if(!this.$isServer&&(!this.willOpen||this.willOpen())&&!this.opened){this._opening=!0;var t=this.$el,n=e.modal,o=e.zIndex;if(o&&(c.default.zIndex=o),n&&(this._closing&&(c.default.closeModal(this._popupId),this._closing=!1),c.default.openModal(this._popupId,c.default.nextZIndex(),this.modalAppendToBody?void 0:t,e.modalClass,e.modalFade),e.lockScroll)){this.withoutHiddenClass=!(0,f.hasClass)(document.body,"el-popup-parent--hidden"),this.withoutHiddenClass&&(this.bodyPaddingRight=document.body.style.paddingRight,this.computedBodyPaddingRight=parseInt((0,f.getStyle)(document.body,"paddingRight"),10)),h=(0,d.default)();var i=document.documentElement.clientHeight0&&(i||"scroll"===r)&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.computedBodyPaddingRight+h+"px"),(0,f.addClass)(document.body,"el-popup-parent--hidden")}"static"===getComputedStyle(t).position&&(t.style.position="absolute"),t.style.zIndex=c.default.nextZIndex(),this.opened=!0,this.onOpen&&this.onOpen(),this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var e=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var t=Number(this.closeDelay);t>0?this._closeTimer=setTimeout(function(){e._closeTimer=null,e.doClose()},t):this.doClose()}},doClose:function(){this._closing=!0,this.onClose&&this.onClose(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose()},doAfterClose:function(){c.default.closeModal(this._popupId),this._closing=!1},restoreBodyStyle:function(){this.modal&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.bodyPaddingRight,(0,f.removeClass)(document.body,"el-popup-parent--hidden")),this.withoutHiddenClass=!0}}},t.PopupManager=c.default},function(e,t,n){"use strict";t.__esModule=!0,t.removeResizeListener=t.addResizeListener=void 0;var o=n(626),i=function(e){return e&&e.__esModule?e:{default:e}}(o),r="undefined"==typeof window,a=function(e){for(var t=e,n=Array.isArray(t),o=0,t=n?t:t[Symbol.iterator]();;){var i;if(n){if(o>=t.length)break;i=t[o++]}else{if(o=t.next(),o.done)break;i=o.value}var r=i,a=r.target.__resizeListeners__||[];a.length&&a.forEach(function(e){e()})}};t.addResizeListener=function(e,t){r||(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new i.default(a),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},t.removeResizeListener=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())}},function(e,t){e.exports=function(e,t,n,o){function i(){function i(){a=Number(new Date),n.apply(s,u)}function l(){r=void 0}var s=this,c=Number(new Date)-a,u=arguments;o&&!r&&i(),r&&clearTimeout(r),void 0===o&&c>e?i():!0!==t&&(r=setTimeout(o?l:i,void 0===o?e-c:e))}var r,a=0;return"boolean"!=typeof t&&(o=n,n=t,t=void 0),i}},function(e,t,n){e.exports=n.p+"732389ded34cb9c52dd88271f1345af9.ttf"},function(e,t,n){e.exports=n.p+"535877f50039c0cb49a6196a5b7517cd.woff"},function(e,t,n){"use strict";var o=n(142);t.a=o.a},function(e,t,n){"use strict";var o=n(143);t.a=o.a},function(e,t,n){"use strict";var o=n(144);t.a=o.a},function(e,t,n){"use strict";var o=n(145);t.a=o.a},function(e,t,n){"use strict";var o=n(146);t.a=o.a},function(e,t,n){"use strict";var o=n(147);t.a=o.a},function(e,t,n){"use strict";var o=n(148);t.a=o.a},function(e,t,n){"use strict";var o=n(149);t.a=o.a},function(e,t,n){"use strict";var o=n(150);t.a=o.a},function(e,t,n){var o=n(245),i=n(49),r=n(136),a=n(686),l=n(0),s=function(e){r.call(this,e),i.call(this,e),a.call(this,e),this.id=e.id||o()};s.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,drift:function(e,t){switch(this.draggable){case"horizontal":t=0;break;case"vertical":e=0}var n=this.transform;n||(n=this.transform=[1,0,0,1,0,0]),n[4]+=e,n[5]+=t,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(e,t){},attrKV:function(e,t){if("position"===e||"scale"===e||"origin"===e){if(t){var n=this[e];n||(n=this[e]=[]),n[0]=t[0],n[1]=t[1]}}else this[e]=t},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(e,t){if("string"==typeof e)this.attrKV(e,t);else if(l.isObject(e))for(var n in e)e.hasOwnProperty(n)&&this.attrKV(n,e[n]);return this.dirty(!1),this},setClipPath:function(e){var t=this.__zr;t&&e.addSelfToZr(t),this.clipPath&&this.clipPath!==e&&this.removeClipPath(),this.clipPath=e,e.__zr=t,e.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var e=this.clipPath;e&&(e.__zr&&e.removeSelfFromZr(e.__zr),e.__zr=null,e.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(e){this.__zr=e;var t=this.animators;if(t)for(var n=0;n.5?t:e}function l(e,t,n,o,i){var a=e.length;if(1==i)for(var l=0;li)e.length=i;else for(var r=o;r=0&&!(T[n]<=t);n--);n=Math.min(n,_-2)}else{for(n=$;n<_&&!(T[n]>t);n++);n=Math.min(n-1,_-2)}$=n,H=t;var o=T[n+1]-T[n];if(0!==o)if(N=(t-T[n])/o,y)if(F=E[n],B=E[0===n?n:n-1],V=E[n>_-2?_-1:n+1],j=E[n>_-3?_-1:n+2],S)u(B,F,V,j,N,N*N,N*N*N,g(e,i),A);else{var s;if(M)s=u(B,F,V,j,N,N*N,N*N*N,W,1),s=p(W);else{if(C)return a(F,V,N);s=d(B,F,V,j,N,N*N,N*N*N)}b(e,i,s)}else if(S)l(E[n],E[n+1],N,g(e,i),A);else{var s;if(M)l(E[n],E[n+1],N,W,1),s=p(W);else{if(C)return a(E[n],E[n+1],N);s=r(E[n],E[n+1],N)}b(e,i,s)}},U=new m({target:e._target,life:w,loop:e._loop,delay:e._delay,onframe:G,ondestroy:n});return t&&"spline"!==t&&(U.easing=t),U}}}var m=n(665),v=n(32),b=n(0),x=b.isArrayLike,y=Array.prototype.slice,_=function(e,t,n,r){this._tracks={},this._target=e,this._loop=t||!1,this._getter=n||o,this._setter=r||i,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};_.prototype={when:function(e,t){var n=this._tracks;for(var o in t)if(t.hasOwnProperty(o)){if(!n[o]){n[o]=[];var i=this._getter(this._target,o);if(null==i)continue;0!==e&&n[o].push({time:0,value:f(i)})}n[o].push({time:e,value:t[o]})}return this},during:function(e){return this._onframeList.push(e),this},pause:function(){for(var e=0;et+l&&a>o+l||ae+l&&r>n+l||rt+u&&c>o+u&&c>a+u||ce+u&&s>n+u&&s>i+u||st&&r>o||ri?a:0}e.exports=n},function(e,t){var n=function(){this.head=null,this.tail=null,this._len=0},o=n.prototype;o.insert=function(e){var t=new i(e);return this.insertEntry(t),t},o.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e):this.head=this.tail=e,this._len++},o.remove=function(e){var t=e.prev,n=e.next;t?t.next=n:this.head=n,n?n.prev=t:this.tail=t,e.next=e.prev=null,this._len--},o.len=function(){return this._len},o.clear=function(){this.head=this.tail=null,this._len=0};var i=function(e){this.value=e,this.next,this.prev},r=function(e){this._list=new n,this._map={},this._maxSize=e||10,this._lastRemovedEntry=null},a=r.prototype;a.put=function(e,t){var n=this._list,o=this._map,r=null;if(null==o[e]){var a=n.len(),l=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=n.head;n.remove(s),delete o[s.key],r=s.value,this._lastRemovedEntry=s}l?l.value=t:l=new i(t),l.key=e,n.insertEntry(l),o[e]=l}return r},a.get=function(e){var t=this._map[e],n=this._list;if(null!=t)return t!==n.tail&&(n.remove(t),n.insertEntry(t)),t.value},a.clear=function(){this._list.clear(),this._map={}};var l=r;e.exports=l},function(e,t){function n(){return o++}var o=2311;e.exports=n},function(e,t,n){var o=n(0),i=n(98),r=function(e,t,n,o,r,a){this.x=null==e?0:e,this.y=null==t?0:t,this.x2=null==n?1:n,this.y2=null==o?0:o,this.type="linear",this.global=a||!1,i.call(this,r)};r.prototype={constructor:r},o.inherits(r,i);var a=r;e.exports=a},function(e,t){var n=function(e,t){this.image=e,this.repeat=t,this.type="pattern"};n.prototype.getCanvasPattern=function(e){return e.createPattern(this.image,this.repeat||"repeat")};var o=n;e.exports=o},function(e,t){function n(e,t,n){var o=null==t.x?0:t.x,i=null==t.x2?1:t.x2,r=null==t.y?0:t.y,a=null==t.y2?0:t.y2;return t.global||(o=o*n.width+n.x,i=i*n.width+n.x,r=r*n.height+n.y,a=a*n.height+n.y),e.createLinearGradient(o,r,i,a)}function o(e,t,n){var o=n.width,i=n.height,r=Math.min(o,i),a=null==t.x?.5:t.x,l=null==t.y?.5:t.y,s=null==t.r?.5:t.r;return t.global||(a=a*o+n.x,l=l*i+n.y,s*=r),e.createRadialGradient(a,l,0,a,l,s)}var i=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],r=function(e,t){this.extendFrom(e,!1),this.host=t};r.prototype={constructor:r,host:null,fill:"#000",stroke:null,opacity:1,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(e,t,n){for(var o=this,r=n&&n.style,a=!r,l=0;l0},extendFrom:function(e,t){if(e)for(var n in e)!e.hasOwnProperty(n)||!0!==t&&(!1===t?this.hasOwnProperty(n):null==e[n])||(this[n]=e[n])},set:function(e,t){"string"==typeof e?this[e]=t:this.extendFrom(e,!0)},clone:function(){var e=new this.constructor;return e.extendFrom(this,!0),e},getGradient:function(e,t,i){for(var r="radial"===t.type?o:n,a=r(e,t,i),l=t.colorStops,s=0;s=11?function(){var t,n=this.__clipPaths,o=this.style;if(n)for(var i=0;i=2){if(a&&"spline"!==a){var l=r(o,a,n,t.smoothConstraint);e.moveTo(o[0][0],o[0][1]);for(var s=o.length,c=0;c<(n?s:s-1);c++){var u=l[2*c],d=l[2*c+1],f=o[(c+1)%s];e.bezierCurveTo(u[0],u[1],d[0],d[1],f[0],f[1])}}else{"spline"===a&&(o=i(o,n)),e.moveTo(o[0][0],o[0][1]);for(var c=1,p=o.length;cs&&(d=n+o,n*=s/d,o*=s/d),i+r>s&&(d=i+r,i*=s/d,r*=s/d),o+i>c&&(d=o+i,o*=c/d,i*=c/d),n+r>c&&(d=n+r,n*=c/d,r*=c/d),e.moveTo(a+n,l),e.lineTo(a+s-o,l),0!==o&&e.quadraticCurveTo(a+s,l,a+s,l+o),e.lineTo(a+s,l+c-i),0!==i&&e.quadraticCurveTo(a+s,l+c,a+s-i,l+c),e.lineTo(a+r,l+c),0!==r&&e.quadraticCurveTo(a,l+c,a,l+c-r),e.lineTo(a,l+n),0!==n&&e.quadraticCurveTo(a,l,a+n,l)}t.buildPath=n},function(e,t,n){var o=n(99),i=n(10),r=new i,a=function(){};a.prototype={constructor:a,drawRectText:function(e,t){var n=this.style;t=n.textRect||t,this.__dirty&&o.normalizeTextStyle(n,!0);var i=n.text;if(null!=i&&(i+=""),o.needDrawText(i,n)){e.save();var a=this.transform;n.transformText?this.setTransform(e):a&&(r.copy(t),r.applyTransform(a),t=r),o.renderText(this,e,i,n,t),e.restore()}}};var l=a;e.exports=l},function(e,t,n){function o(e,t,n){this._svgRoot=e,this._tagNames="string"==typeof t?[t]:t,this._markLabel=n,this.nextId=0}var i=n(137),r=i.createElement,a=n(0),l=n(16),s=n(73),c=n(74),u=n(138),d=u.path,f=u.image,p=u.text;o.prototype.createElement=r,o.prototype.getDefs=function(e){var t=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");return 0===n.length?e?(n=t.insertBefore(this.createElement("defs"),t.firstChild),n.contains||(n.contains=function(e){var t=n.children;if(!t)return!1;for(var o=t.length-1;o>=0;--o)if(t[o]===e)return!0;return!1}),n):null:n[0]},o.prototype.update=function(e,t){if(e){var n=this.getDefs(!1);if(e._dom&&n.contains(e._dom))"function"==typeof t&&t();else{var o=this.add(e);o&&(e._dom=o)}}},o.prototype.addDom=function(e){this.getDefs(!0).appendChild(e)},o.prototype.removeDom=function(e){this.getDefs(!1).removeChild(e._dom)},o.prototype.getDoms=function(){var e=this.getDefs(!1);if(!e)return[];var t=[];return a.each(this._tagNames,function(n){var o=e.getElementsByTagName(n);t=t.concat([].slice.call(o))}),t},o.prototype.markAllUnused=function(){var e=this.getDoms(),t=this;a.each(e,function(e){e[t._markLabel]="0"})},o.prototype.markUsed=function(e){e&&(e[this._markLabel]="1")},o.prototype.removeUnused=function(){var e=this.getDefs(!1);if(e){var t=this.getDoms(),n=this;a.each(t,function(t){"1"!==t[n._markLabel]&&e.removeChild(t)})}},o.prototype.getSvgProxy=function(e){return e instanceof l?d:e instanceof s?f:e instanceof c?p:d},o.prototype.getTextSvgElement=function(e){return e.__textSvgEl},o.prototype.getSvgElement=function(e){return e.__svgEl};var h=o;e.exports=h},function(e,t,n){function o(e){return r(e)}function i(){if(!c&&u){c=!0;var e=u.styleSheets;e.length<31?u.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):e[0].addRule(".zrvml","behavior:url(#default#VML)")}}var r,a=n(15),l="urn:schemas-microsoft-com:vml",s="undefined"==typeof window?null:window,c=!1,u=s&&s.document;if(u&&!a.canvasSupported)try{!u.namespaces.zrvml&&u.namespaces.add("zrvml",l),r=function(e){return u.createElement("')}}catch(e){r=function(e){return u.createElement("<"+e+' xmlns="'+l+'" class="zrvml">')}}t.doc=u,t.createNode=o,t.initVML=i},function(e,t,n){"use strict";var o=n(21),i=n(659),r=n(632),a=n(637),l=n(638),s=n(633),c=n(634),u=n(635),d=n(636);o.default.use(i.a),t.a=new i.a({routes:[{path:"/",name:"Overview",component:r.a},{path:"/proxies/tcp",name:"ProxiesTcp",component:a.a},{path:"/proxies/udp",name:"ProxiesUdp",component:l.a},{path:"/proxies/http",name:"ProxiesHttp",component:s.a},{path:"/proxies/https",name:"ProxiesHttps",component:c.a},{path:"/proxies/stcp",name:"ProxiesStcp",component:u.a},{path:"/proxies/sudp",name:"ProxiesSudp",component:d.a}]})},function(e,t){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=97)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},97:function(e,t,n){"use strict";n.r(t);var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("button",{staticClass:"el-button",class:[e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],attrs:{disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType},on:{click:e.handleClick}},[e.loading?n("i",{staticClass:"el-icon-loading"}):e._e(),e.icon&&!e.loading?n("i",{class:e.icon}):e._e(),e.$slots.default?n("span",[e._t("default")],2):e._e()])},i=[];o._withStripped=!0;var r={name:"ElButton",inject:{elForm:{default:""},elFormItem:{default:""}},props:{type:{type:String,default:"default"},size:String,icon:{type:String,default:""},nativeType:{type:String,default:"button"},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},buttonSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},buttonDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},methods:{handleClick:function(e){this.$emit("click",e)}}},a=r,l=n(0),s=Object(l.a)(a,o,i,!1,null,null,null);s.options.__file="packages/button/src/button.vue";var c=s.exports;c.install=function(e){e.component(c.name,c)},t.default=c}})},function(e,t){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=134)}({134:function(e,t,n){"use strict";n.r(t);var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i={name:"ElCol",props:{span:{type:Number,default:24},tag:{type:String,default:"div"},offset:Number,pull:Number,push:Number,xs:[Number,Object],sm:[Number,Object],md:[Number,Object],lg:[Number,Object],xl:[Number,Object]},computed:{gutter:function(){for(var e=this.$parent;e&&"ElRow"!==e.$options.componentName;)e=e.$parent;return e?e.gutter:0}},render:function(e){var t=this,n=[],i={};return this.gutter&&(i.paddingLeft=this.gutter/2+"px",i.paddingRight=i.paddingLeft),["span","offset","pull","push"].forEach(function(e){(t[e]||0===t[e])&&n.push("span"!==e?"el-col-"+e+"-"+t[e]:"el-col-"+t[e])}),["xs","sm","md","lg","xl"].forEach(function(e){if("number"==typeof t[e])n.push("el-col-"+e+"-"+t[e]);else if("object"===o(t[e])){var i=t[e];Object.keys(i).forEach(function(t){n.push("span"!==t?"el-col-"+e+"-"+t+"-"+i[t]:"el-col-"+e+"-"+i[t])})}}),e(this.tag,{class:["el-col",n],style:i},this.$slots.default)}};i.install=function(e){e.component(i.name,i)},t.default=i}})},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=67)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},3:function(e,t){e.exports=n(38)},4:function(e,t){e.exports=n(59)},48:function(e,t){e.exports=n(284)},67:function(e,t,n){"use strict";n.r(t);var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-form-item",class:[{"el-form-item--feedback":e.elForm&&e.elForm.statusIcon,"is-error":"error"===e.validateState,"is-validating":"validating"===e.validateState,"is-success":"success"===e.validateState,"is-required":e.isRequired||e.required,"is-no-asterisk":e.elForm&&e.elForm.hideRequiredAsterisk},e.sizeClass?"el-form-item--"+e.sizeClass:""]},[n("label-wrap",{attrs:{"is-auto-width":e.labelStyle&&"auto"===e.labelStyle.width,"update-all":"auto"===e.form.labelWidth}},[e.label||e.$slots.label?n("label",{staticClass:"el-form-item__label",style:e.labelStyle,attrs:{for:e.labelFor}},[e._t("label",[e._v(e._s(e.label+e.form.labelSuffix))])],2):e._e()]),n("div",{staticClass:"el-form-item__content",style:e.contentStyle},[e._t("default"),n("transition",{attrs:{name:"el-zoom-in-top"}},["error"===e.validateState&&e.showMessage&&e.form.showMessage?e._t("error",[n("div",{staticClass:"el-form-item__error",class:{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm&&e.elForm.inlineMessage||!1}},[e._v("\n "+e._s(e.validateMessage)+"\n ")])],{error:e.validateMessage}):e._e()],2)],2)],1)},i=[];o._withStripped=!0;var r=n(48),a=n.n(r),l=n(4),s=n.n(l),c=n(9),u=n.n(c),d=n(3),f={props:{isAutoWidth:Boolean,updateAll:Boolean},inject:["elForm","elFormItem"],render:function(){var e=arguments[0],t=this.$slots.default;if(!t)return null;if(this.isAutoWidth){var n=this.elForm.autoLabelWidth,o={};if(n&&"auto"!==n){var i=parseInt(n,10)-this.computedWidth;i&&(o.marginLeft=i+"px")}return e("div",{class:"el-form-item__label-wrap",style:o},[t])}return t[0]},methods:{getLabelWidth:function(){if(this.$el&&this.$el.firstElementChild){var e=window.getComputedStyle(this.$el.firstElementChild).width;return Math.ceil(parseFloat(e))}return 0},updateLabelWidth:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";this.$slots.default&&this.isAutoWidth&&this.$el.firstElementChild&&("update"===e?this.computedWidth=this.getLabelWidth():"remove"===e&&this.elForm.deregisterLabelWidth(this.computedWidth))}},watch:{computedWidth:function(e,t){this.updateAll&&(this.elForm.registerLabelWidth(e,t),this.elFormItem.updateComputedLabelWidth(e))}},data:function(){return{computedWidth:0}},mounted:function(){this.updateLabelWidth("update")},updated:function(){this.updateLabelWidth("update")},beforeDestroy:function(){this.updateLabelWidth("remove")}},p=f,h=n(0),g=Object(h.a)(p,void 0,void 0,!1,null,null,null);g.options.__file="packages/form/src/label-wrap.vue";var m=g.exports,v={name:"ElFormItem",componentName:"ElFormItem",mixins:[s.a],provide:function(){return{elFormItem:this}},inject:["elForm"],props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:String},components:{LabelWrap:m},watch:{error:{immediate:!0,handler:function(e){this.validateMessage=e,this.validateState=e?"error":""}},validateStatus:function(e){this.validateState=e}},computed:{labelFor:function(){return this.for||this.prop},labelStyle:function(){var e={};if("top"===this.form.labelPosition)return e;var t=this.labelWidth||this.form.labelWidth;return t&&(e.width=t),e},contentStyle:function(){var e={},t=this.label;if("top"===this.form.labelPosition||this.form.inline)return e;if(!t&&!this.labelWidth&&this.isNested)return e;var n=this.labelWidth||this.form.labelWidth;return"auto"===n?"auto"===this.labelWidth?e.marginLeft=this.computedLabelWidth:"auto"===this.form.labelWidth&&(e.marginLeft=this.elForm.autoLabelWidth):e.marginLeft=n,e},form:function(){for(var e=this.$parent,t=e.$options.componentName;"ElForm"!==t;)"ElFormItem"===t&&(this.isNested=!0),e=e.$parent,t=e.$options.componentName;return e},fieldValue:function(){var e=this.form.model;if(e&&this.prop){var t=this.prop;return-1!==t.indexOf(":")&&(t=t.replace(/:/,".")),Object(d.getPropByPath)(e,t,!0).v}},isRequired:function(){var e=this.getRules(),t=!1;return e&&e.length&&e.every(function(e){return!e.required||(t=!0,!1)}),t},_formSize:function(){return this.elForm.size},elFormItemSize:function(){return this.size||this._formSize},sizeClass:function(){return this.elFormItemSize||(this.$ELEMENT||{}).size}},data:function(){return{validateState:"",validateMessage:"",validateDisabled:!1,validator:{},isNested:!1,computedLabelWidth:""}},methods:{validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d.noop;this.validateDisabled=!1;var o=this.getFilteredRule(e);if((!o||0===o.length)&&void 0===this.required)return n(),!0;this.validateState="validating";var i={};o&&o.length>0&&o.forEach(function(e){delete e.trigger}),i[this.prop]=o;var r=new a.a(i),l={};l[this.prop]=this.fieldValue,r.validate(l,{firstFields:!0},function(e,o){t.validateState=e?"error":"success",t.validateMessage=e?e[0].message:"",n(t.validateMessage,o),t.elForm&&t.elForm.$emit("validate",t.prop,!e,t.validateMessage||null)})},clearValidate:function(){this.validateState="",this.validateMessage="",this.validateDisabled=!1},resetField:function(){var e=this;this.validateState="",this.validateMessage="";var t=this.form.model,n=this.fieldValue,o=this.prop;-1!==o.indexOf(":")&&(o=o.replace(/:/,"."));var i=Object(d.getPropByPath)(t,o,!0);this.validateDisabled=!0,Array.isArray(n)?i.o[i.k]=[].concat(this.initialValue):i.o[i.k]=this.initialValue,this.$nextTick(function(){e.validateDisabled=!1}),this.broadcast("ElTimeSelect","fieldReset",this.initialValue)},getRules:function(){var e=this.form.rules,t=this.rules,n=void 0!==this.required?{required:!!this.required}:[],o=Object(d.getPropByPath)(e,this.prop||"");return e=e?o.o[this.prop||""]||o.v:[],[].concat(t||e||[]).concat(n)},getFilteredRule:function(e){return this.getRules().filter(function(t){return!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e)}).map(function(e){return u()({},e)})},onFieldBlur:function(){this.validate("blur")},onFieldChange:function(){if(this.validateDisabled)return void(this.validateDisabled=!1);this.validate("change")},updateComputedLabelWidth:function(e){this.computedLabelWidth=e?e+"px":""},addValidateEvents:function(){(this.getRules().length||void 0!==this.required)&&(this.$on("el.form.blur",this.onFieldBlur),this.$on("el.form.change",this.onFieldChange))},removeValidateEvents:function(){this.$off()}},mounted:function(){if(this.prop){this.dispatch("ElForm","el.form.addField",[this]);var e=this.fieldValue;Array.isArray(e)&&(e=[].concat(e)),Object.defineProperty(this,"initialValue",{value:e}),this.addValidateEvents()}},beforeDestroy:function(){this.dispatch("ElForm","el.form.removeField",[this])}},b=v,x=Object(h.a)(b,o,i,!1,null,null,null);x.options.__file="packages/form/src/form-item.vue";var y=x.exports;y.install=function(e){e.component(y.name,y)},t.default=y},9:function(e,t){e.exports=n(93)}})},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=121)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},121:function(e,t,n){"use strict";n.r(t);var o=function(){var e=this,t=e.$createElement;return(e._self._c||t)("form",{staticClass:"el-form",class:[e.labelPosition?"el-form--label-"+e.labelPosition:"",{"el-form--inline":e.inline}]},[e._t("default")],2)},i=[];o._withStripped=!0;var r=n(9),a=n.n(r),l={name:"ElForm",componentName:"ElForm",provide:function(){return{elForm:this}},props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},watch:{rules:function(){this.fields.forEach(function(e){e.removeValidateEvents(),e.addValidateEvents()}),this.validateOnRuleChange&&this.validate(function(){})}},computed:{autoLabelWidth:function(){if(!this.potentialLabelWidthArr.length)return 0;var e=Math.max.apply(Math,this.potentialLabelWidthArr);return e?e+"px":""}},data:function(){return{fields:[],potentialLabelWidthArr:[]}},created:function(){var e=this;this.$on("el.form.addField",function(t){t&&e.fields.push(t)}),this.$on("el.form.removeField",function(t){t.prop&&e.fields.splice(e.fields.indexOf(t),1)})},methods:{resetFields:function(){if(!this.model)return void console.warn("[Element Warn][Form]model is required for resetFields to work.");this.fields.forEach(function(e){e.resetField()})},clearValidate:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];(e.length?"string"==typeof e?this.fields.filter(function(t){return e===t.prop}):this.fields.filter(function(t){return e.indexOf(t.prop)>-1}):this.fields).forEach(function(e){e.clearValidate()})},validate:function(e){var t=this;if(!this.model)return void console.warn("[Element Warn][Form]model is required for validate to work!");var n=void 0;"function"!=typeof e&&window.Promise&&(n=new window.Promise(function(t,n){e=function(e){e?t(e):n(e)}}));var o=!0,i=0;0===this.fields.length&&e&&e(!0);var r={};return this.fields.forEach(function(n){n.validate("",function(n,l){n&&(o=!1),r=a()({},r,l),"function"==typeof e&&++i===t.fields.length&&e(o,r)})}),n||void 0},validateField:function(e,t){e=[].concat(e);var n=this.fields.filter(function(t){return-1!==e.indexOf(t.prop)});if(!n.length)return void console.warn("[Element Warn]please pass correct props!");n.forEach(function(e){e.validate("",t)})},getLabelWidthIndex:function(e){var t=this.potentialLabelWidthArr.indexOf(e);if(-1===t)throw new Error("[ElementForm]unpected width ",e);return t},registerLabelWidth:function(e,t){if(e&&t){var n=this.getLabelWidthIndex(t);this.potentialLabelWidthArr.splice(n,1,e)}else e&&this.potentialLabelWidthArr.push(e)},deregisterLabelWidth:function(e){var t=this.getLabelWidthIndex(e);this.potentialLabelWidthArr.splice(t,1)}}},s=l,c=n(0),u=Object(c.a)(s,o,i,!1,null,null,null);u.options.__file="packages/form/src/form.vue";var d=u.exports;d.install=function(e){e.component(d.name,d)},t.default=d},9:function(e,t){e.exports=n(93)}})},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=101)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},101:function(e,t,n){"use strict";n.r(t);var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{staticClass:"el-menu-item",class:{"is-active":e.active,"is-disabled":e.disabled},style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],attrs:{role:"menuitem",tabindex:"-1"},on:{click:e.handleClick,mouseenter:e.onMouseEnter,focus:e.onMouseEnter,blur:e.onMouseLeave,mouseleave:e.onMouseLeave}},["ElMenu"===e.parentMenu.$options.componentName&&e.rootMenu.collapse&&e.$slots.title?n("el-tooltip",{attrs:{effect:"dark",placement:"right"}},[n("div",{attrs:{slot:"content"},slot:"content"},[e._t("title")],2),n("div",{staticStyle:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}},[e._t("default")],2)]):[e._t("default"),e._t("title")]],2)},i=[];o._withStripped=!0;var r=n(36),a=n(29),l=n.n(a),s=n(4),c=n.n(s),u={name:"ElMenuItem",componentName:"ElMenuItem",mixins:[r.a,c.a],components:{ElTooltip:l.a},props:{index:{default:null,validator:function(e){return"string"==typeof e||null===e}},route:[String,Object],disabled:Boolean},computed:{active:function(){return this.index===this.rootMenu.activeIndex},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},itemStyle:function(){var e={color:this.active?this.activeTextColor:this.textColor};return"horizontal"!==this.mode||this.isNested||(e.borderBottomColor=this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent"),e},isNested:function(){return this.parentMenu!==this.rootMenu}},methods:{onMouseEnter:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.hoverBackground)},onMouseLeave:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.backgroundColor)},handleClick:function(){this.disabled||(this.dispatch("ElMenu","item-click",this),this.$emit("click",this))}},mounted:function(){this.parentMenu.addItem(this),this.rootMenu.addItem(this)},beforeDestroy:function(){this.parentMenu.removeItem(this),this.rootMenu.removeItem(this)}},d=u,f=n(0),p=Object(f.a)(d,o,i,!1,null,null,null);p.options.__file="packages/menu/src/menu-item.vue";var h=p.exports;h.install=function(e){e.component(h.name,h)},t.default=h},29:function(e,t){e.exports=n(221)},36:function(e,t,n){"use strict";t.a={inject:["rootMenu"],computed:{indexPath:function(){for(var e=[this.index],t=this.$parent;"ElMenu"!==t.$options.componentName;)t.index&&e.unshift(t.index),t=t.$parent;return e},parentMenu:function(){for(var e=this.$parent;e&&-1===["ElMenu","ElSubmenu"].indexOf(e.$options.componentName);)e=e.$parent;return e},paddingStyle:function(){if("vertical"!==this.rootMenu.mode)return{};var e=20,t=this.$parent;if(this.rootMenu.collapse)e=20;else for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return{paddingLeft:e+"px"}}}}},4:function(e,t){e.exports=n(59)}})},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=69)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},11:function(e,t){e.exports=n(220)},2:function(e,t){e.exports=n(29)},4:function(e,t){e.exports=n(59)},69:function(e,t,n){"use strict";n.r(t);var o=n(4),i=n.n(o),r=n(11),a=n.n(r),l=l||{};l.Utils=l.Utils||{},l.Utils.focusFirstDescendant=function(e){for(var t=0;t=0;t--){var n=e.childNodes[t];if(l.Utils.attemptFocus(n)||l.Utils.focusLastDescendant(n))return!0}return!1},l.Utils.attemptFocus=function(e){if(!l.Utils.isFocusable(e))return!1;l.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return l.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},l.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},l.Utils.triggerEvent=function(e,t){var n=void 0;n=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var o=document.createEvent(n),i=arguments.length,r=Array(i>2?i-2:0),a=2;a=0;t--)e.splice(t,0,e[t]);e=e.join("")}return/^[0-9a-fA-F]{6}$/.test(e)?{red:parseInt(e.slice(0,2),16),green:parseInt(e.slice(2,4),16),blue:parseInt(e.slice(4,6),16)}:{red:255,green:255,blue:255}},mixColor:function(e,t){var n=this.getColorChannels(e),o=n.red,i=n.green,r=n.blue;return t>0?(o*=1-t,i*=1-t,r*=1-t):(o+=(255-o)*t,i+=(255-i)*t,r+=(255-r)*t),"rgb("+Math.round(o)+", "+Math.round(i)+", "+Math.round(r)+")"},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},openMenu:function(e,t){var n=this.openedMenus;-1===n.indexOf(e)&&(this.uniqueOpened&&(this.openedMenus=n.filter(function(e){return-1!==t.indexOf(e)})),this.openedMenus.push(e))},closeMenu:function(e){var t=this.openedMenus.indexOf(e);-1!==t&&this.openedMenus.splice(t,1)},handleSubmenuClick:function(e){var t=e.index,n=e.indexPath;-1!==this.openedMenus.indexOf(t)?(this.closeMenu(t),this.$emit("close",t,n)):(this.openMenu(t,n),this.$emit("open",t,n))},handleItemClick:function(e){var t=this,n=e.index,o=e.indexPath,i=this.activeIndex,r=null!==e.index;r&&(this.activeIndex=e.index),this.$emit("select",n,o,e),("horizontal"===this.mode||this.collapse)&&(this.openedMenus=[]),this.router&&r&&this.routeToItem(e,function(e){if(t.activeIndex=i,e){if("NavigationDuplicated"===e.name)return;console.error(e)}})},initOpenedMenu:function(){var e=this,t=this.activeIndex,n=this.items[t];n&&"horizontal"!==this.mode&&!this.collapse&&n.indexPath.forEach(function(t){var n=e.submenus[t];n&&e.openMenu(t,n.indexPath)})},routeToItem:function(e,t){var n=e.route||e.index;try{this.$router.push(n,function(){},t)}catch(e){console.error(e)}},open:function(e){var t=this,n=this.submenus[e.toString()].indexPath;n.forEach(function(e){return t.openMenu(e,n)})},close:function(e){this.closeMenu(e)}},mounted:function(){this.initOpenedMenu(),this.$on("item-click",this.handleItemClick),this.$on("submenu-click",this.handleSubmenuClick),"horizontal"===this.mode&&new h(this.$el),this.$watch("items",this.updateActiveIndex)}},v=m,b=n(0),x=Object(b.a)(v,void 0,void 0,!1,null,null,null);x.options.__file="packages/menu/src/menu.vue";var y=x.exports;y.install=function(e){e.component(y.name,y)},t.default=y}})},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=74)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},2:function(e,t){e.exports=n(29)},3:function(e,t){e.exports=n(38)},5:function(e,t){e.exports=n(94)},7:function(e,t){e.exports=n(21)},74:function(e,t,n){"use strict";n.r(t);var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",[n("transition",{attrs:{name:e.transition},on:{"after-enter":e.handleAfterEnter,"after-leave":e.handleAfterLeave}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.disabled&&e.showPopper,expression:"!disabled && showPopper"}],ref:"popper",staticClass:"el-popover el-popper",class:[e.popperClass,e.content&&"el-popover--plain"],style:{width:e.width+"px"},attrs:{role:"tooltip",id:e.tooltipId,"aria-hidden":e.disabled||!e.showPopper?"true":"false"}},[e.title?n("div",{staticClass:"el-popover__title",domProps:{textContent:e._s(e.title)}}):e._e(),e._t("default",[e._v(e._s(e.content))])],2)]),n("span",{ref:"wrapper",staticClass:"el-popover__reference-wrapper"},[e._t("reference")],2)],1)},i=[];o._withStripped=!0;var r=n(5),a=n.n(r),l=n(2),s=n(3),c={name:"ElPopover",mixins:[a.a],props:{trigger:{type:String,default:"click",validator:function(e){return["click","focus","hover","manual"].indexOf(e)>-1}},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:200},title:String,disabled:Boolean,content:String,reference:{},popperClass:String,width:{},visibleArrow:{default:!0},arrowOffset:{type:Number,default:0},transition:{type:String,default:"fade-in-linear"},tabindex:{type:Number,default:0}},computed:{tooltipId:function(){return"el-popover-"+Object(s.generateId)()}},watch:{showPopper:function(e){this.disabled||(e?this.$emit("show"):this.$emit("hide"))}},mounted:function(){var e=this,t=this.referenceElm=this.reference||this.$refs.reference,n=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),t&&(Object(l.addClass)(t,"el-popover__reference"),t.setAttribute("aria-describedby",this.tooltipId),t.setAttribute("tabindex",this.tabindex),n.setAttribute("tabindex",0),"click"!==this.trigger&&(Object(l.on)(t,"focusin",function(){e.handleFocus();var n=t.__vue__;n&&"function"==typeof n.focus&&n.focus()}),Object(l.on)(n,"focusin",this.handleFocus),Object(l.on)(t,"focusout",this.handleBlur),Object(l.on)(n,"focusout",this.handleBlur)),Object(l.on)(t,"keydown",this.handleKeydown),Object(l.on)(t,"click",this.handleClick)),"click"===this.trigger?(Object(l.on)(t,"click",this.doToggle),Object(l.on)(document,"click",this.handleDocumentClick)):"hover"===this.trigger?(Object(l.on)(t,"mouseenter",this.handleMouseEnter),Object(l.on)(n,"mouseenter",this.handleMouseEnter),Object(l.on)(t,"mouseleave",this.handleMouseLeave),Object(l.on)(n,"mouseleave",this.handleMouseLeave)):"focus"===this.trigger&&(this.tabindex<0&&console.warn("[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key"),t.querySelector("input, textarea")?(Object(l.on)(t,"focusin",this.doShow),Object(l.on)(t,"focusout",this.doClose)):(Object(l.on)(t,"mousedown",this.doShow),Object(l.on)(t,"mouseup",this.doClose)))},beforeDestroy:function(){this.cleanup()},deactivated:function(){this.cleanup()},methods:{doToggle:function(){this.showPopper=!this.showPopper},doShow:function(){this.showPopper=!0},doClose:function(){this.showPopper=!1},handleFocus:function(){Object(l.addClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!0)},handleClick:function(){Object(l.removeClass)(this.referenceElm,"focusing")},handleBlur:function(){Object(l.removeClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!1)},handleMouseEnter:function(){var e=this;clearTimeout(this._timer),this.openDelay?this._timer=setTimeout(function(){e.showPopper=!0},this.openDelay):this.showPopper=!0},handleKeydown:function(e){27===e.keyCode&&"manual"!==this.trigger&&this.doClose()},handleMouseLeave:function(){var e=this;clearTimeout(this._timer),this.closeDelay?this._timer=setTimeout(function(){e.showPopper=!1},this.closeDelay):this.showPopper=!1},handleDocumentClick:function(e){var t=this.reference||this.$refs.reference,n=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),this.$el&&t&&!this.$el.contains(e.target)&&!t.contains(e.target)&&n&&!n.contains(e.target)&&(this.showPopper=!1)},handleAfterEnter:function(){this.$emit("after-enter")},handleAfterLeave:function(){this.$emit("after-leave"),this.doDestroy()},cleanup:function(){(this.openDelay||this.closeDelay)&&clearTimeout(this._timer)}},destroyed:function(){var e=this.reference;Object(l.off)(e,"click",this.doToggle),Object(l.off)(e,"mouseup",this.doClose),Object(l.off)(e,"mousedown",this.doShow),Object(l.off)(e,"focusin",this.doShow),Object(l.off)(e,"focusout",this.doClose),Object(l.off)(e,"mousedown",this.doShow),Object(l.off)(e,"mouseup",this.doClose),Object(l.off)(e,"mouseleave",this.handleMouseLeave),Object(l.off)(e,"mouseenter",this.handleMouseEnter),Object(l.off)(document,"click",this.handleDocumentClick)}},u=c,d=n(0),f=Object(d.a)(u,o,i,!1,null,null,null);f.options.__file="packages/popover/src/main.vue";var p=f.exports,h=function(e,t,n){var o=t.expression?t.value:t.arg,i=n.context.$refs[o];i&&(Array.isArray(i)?i[0].$refs.reference=e:i.$refs.reference=e)},g={bind:function(e,t,n){h(e,t,n)},inserted:function(e,t,n){h(e,t,n)}},m=n(7);n.n(m).a.directive("popover",g),p.install=function(e){e.directive("popover",g),e.component(p.name,p)},p.directive=g,t.default=p}})},function(e,t){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=132)}({132:function(e,t,n){"use strict";n.r(t);var o={name:"ElRow",componentName:"ElRow",props:{tag:{type:String,default:"div"},gutter:Number,type:String,justify:{type:String,default:"start"},align:{type:String,default:"top"}},computed:{style:function(){var e={};return this.gutter&&(e.marginLeft="-"+this.gutter/2+"px",e.marginRight=e.marginLeft),e}},render:function(e){return e(this.tag,{class:["el-row","start"!==this.justify?"is-justify-"+this.justify:"","top"!==this.align?"is-align-"+this.align:"",{"el-row--flex":"flex"===this.type}],style:this.style},this.$slots.default)}};o.install=function(e){e.component(o.name,o)},t.default=o}})},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=129)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},129:function(e,t,n){"use strict";n.r(t);var o=n(28),i=n.n(o),r=n(36),a=n(4),l=n.n(a),s=n(5),c=n.n(s),u={props:{transformOrigin:{type:[Boolean,String],default:!1},offset:c.a.props.offset,boundariesPadding:c.a.props.boundariesPadding,popperOptions:c.a.props.popperOptions},data:c.a.data,methods:c.a.methods,beforeDestroy:c.a.beforeDestroy,deactivated:c.a.deactivated},d={name:"ElSubmenu",componentName:"ElSubmenu",mixins:[r.a,l.a,u],components:{ElCollapseTransition:i.a},props:{index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0}},data:function(){return{popperJS:null,timeout:null,items:{},submenus:{},mouseInChild:!1}},watch:{opened:function(e){var t=this;this.isMenuPopup&&this.$nextTick(function(e){t.updatePopper()})}},computed:{appendToBody:function(){return void 0===this.popperAppendToBody?this.isFirstLevel:this.popperAppendToBody},menuTransitionName:function(){return this.rootMenu.collapse?"el-zoom-in-left":"el-zoom-in-top"},opened:function(){return this.rootMenu.openedMenus.indexOf(this.index)>-1},active:function(){var e=!1,t=this.submenus,n=this.items;return Object.keys(n).forEach(function(t){n[t].active&&(e=!0)}),Object.keys(t).forEach(function(n){t[n].active&&(e=!0)}),e},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},isMenuPopup:function(){return this.rootMenu.isMenuPopup},titleStyle:function(){return"horizontal"!==this.mode?{color:this.textColor}:{borderBottomColor:this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent",color:this.active?this.activeTextColor:this.textColor}},isFirstLevel:function(){for(var e=!0,t=this.$parent;t&&t!==this.rootMenu;){if(["ElSubmenu","ElMenuItemGroup"].indexOf(t.$options.componentName)>-1){e=!1;break}t=t.$parent}return e}},methods:{handleCollapseToggle:function(e){e?this.initPopper():this.doDestroy()},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},handleClick:function(){var e=this.rootMenu,t=this.disabled;"hover"===e.menuTrigger&&"horizontal"===e.mode||e.collapse&&"vertical"===e.mode||t||this.dispatch("ElMenu","submenu-click",this)},handleMouseenter:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.showTimeout;if("ActiveXObject"in window||"focus"!==e.type||e.relatedTarget){var o=this.rootMenu,i=this.disabled;"click"===o.menuTrigger&&"horizontal"===o.mode||!o.collapse&&"vertical"===o.mode||i||(this.dispatch("ElSubmenu","mouse-enter-child"),clearTimeout(this.timeout),this.timeout=setTimeout(function(){t.rootMenu.openMenu(t.index,t.indexPath)},n),this.appendToBody&&this.$parent.$el.dispatchEvent(new MouseEvent("mouseenter")))}},handleMouseleave:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this.rootMenu;"click"===n.menuTrigger&&"horizontal"===n.mode||!n.collapse&&"vertical"===n.mode||(this.dispatch("ElSubmenu","mouse-leave-child"),clearTimeout(this.timeout),this.timeout=setTimeout(function(){!e.mouseInChild&&e.rootMenu.closeMenu(e.index)},this.hideTimeout),this.appendToBody&&t&&"ElSubmenu"===this.$parent.$options.name&&this.$parent.handleMouseleave(!0))},handleTitleMouseenter:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.hoverBackground)}},handleTitleMouseleave:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.backgroundColor||"")}},updatePlacement:function(){this.currentPlacement="horizontal"===this.mode&&this.isFirstLevel?"bottom-start":"right-start"},initPopper:function(){this.referenceElm=this.$el,this.popperElm=this.$refs.menu,this.updatePlacement()}},created:function(){var e=this;this.$on("toggle-collapse",this.handleCollapseToggle),this.$on("mouse-enter-child",function(){e.mouseInChild=!0,clearTimeout(e.timeout)}),this.$on("mouse-leave-child",function(){e.mouseInChild=!1,clearTimeout(e.timeout)})},mounted:function(){this.parentMenu.addSubmenu(this),this.rootMenu.addSubmenu(this),this.initPopper()},beforeDestroy:function(){this.parentMenu.removeSubmenu(this),this.rootMenu.removeSubmenu(this)},render:function(e){var t=this,n=this.active,o=this.opened,i=this.paddingStyle,r=this.titleStyle,a=this.backgroundColor,l=this.rootMenu,s=this.currentPlacement,c=this.menuTransitionName,u=this.mode,d=this.disabled,f=this.popperClass,p=this.$slots,h=this.isFirstLevel,g=e("transition",{attrs:{name:c}},[e("div",{ref:"menu",directives:[{name:"show",value:o}],class:["el-menu--"+u,f],on:{mouseenter:function(e){return t.handleMouseenter(e,100)},mouseleave:function(){return t.handleMouseleave(!0)},focus:function(e){return t.handleMouseenter(e,100)}}},[e("ul",{attrs:{role:"menu"},class:["el-menu el-menu--popup","el-menu--popup-"+s],style:{backgroundColor:l.backgroundColor||""}},[p.default])])]),m=e("el-collapse-transition",[e("ul",{attrs:{role:"menu"},class:"el-menu el-menu--inline",directives:[{name:"show",value:o}],style:{backgroundColor:l.backgroundColor||""}},[p.default])]),v="horizontal"===l.mode&&h||"vertical"===l.mode&&!l.collapse?"el-icon-arrow-down":"el-icon-arrow-right";return e("li",{class:{"el-submenu":!0,"is-active":n,"is-opened":o,"is-disabled":d},attrs:{role:"menuitem","aria-haspopup":"true","aria-expanded":o},on:{mouseenter:this.handleMouseenter,mouseleave:function(){return t.handleMouseleave(!1)},focus:this.handleMouseenter}},[e("div",{class:"el-submenu__title",ref:"submenu-title",on:{click:this.handleClick,mouseenter:this.handleTitleMouseenter,mouseleave:this.handleTitleMouseleave},style:[i,r,{backgroundColor:a}]},[p.title,e("i",{class:["el-submenu__icon-arrow",v]})]),this.isMenuPopup?g:m])}},f=d,p=n(0),h=Object(p.a)(f,void 0,void 0,!1,null,null,null);h.options.__file="packages/menu/src/submenu.vue";var g=h.exports;g.install=function(e){e.component(g.name,g)},t.default=g},28:function(e,t){e.exports=n(613)},36:function(e,t,n){"use strict";t.a={inject:["rootMenu"],computed:{indexPath:function(){for(var e=[this.index],t=this.$parent;"ElMenu"!==t.$options.componentName;)t.index&&e.unshift(t.index),t=t.$parent;return e},parentMenu:function(){for(var e=this.$parent;e&&-1===["ElMenu","ElSubmenu"].indexOf(e.$options.componentName);)e=e.$parent;return e},paddingStyle:function(){if("vertical"!==this.rootMenu.mode)return{};var e=20,t=this.$parent;if(this.rootMenu.collapse)e=20;else for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return{paddingLeft:e+"px"}}}}},4:function(e,t){e.exports=n(59)},5:function(e,t){e.exports=n(94)}})},function(e,t,n){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=130)}({130:function(e,t,n){"use strict";function o(e,t){var n=t.row,o=t.column,i=t.$index,a=o.property,l=a&&Object(r.getPropByPath)(n,a).v;return o&&o.formatter?o.formatter(n,o,l,i):l}function i(e,t){var n=t.row,o=t.treeNode,i=t.store;if(!o)return null;var r=[],a=function(e){e.stopPropagation(),i.loadOrToggle(n)};if(o.indent&&r.push(e("span",{class:"el-table__indent",style:{"padding-left":o.indent+"px"}})),"boolean"!=typeof o.expanded||o.noLazyChildren)r.push(e("span",{class:"el-table__placeholder"}));else{var l=["el-table__expand-icon",o.expanded?"el-table__expand-icon--expanded":""],s=["el-icon-arrow-right"];o.loading&&(s=["el-icon-loading"]),r.push(e("div",{class:l,on:{click:a}},[e("i",{class:s})]))}return r}n.r(t);var r=n(3),a={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},l={selection:{renderHeader:function(e,t){var n=t.store;return e("el-checkbox",{attrs:{disabled:n.states.data&&0===n.states.data.length,indeterminate:n.states.selection.length>0&&!this.isAllSelected,value:this.isAllSelected},nativeOn:{click:this.toggleAllSelection}})},renderCell:function(e,t){var n=t.row,o=t.column,i=t.store,r=t.$index;return e("el-checkbox",{nativeOn:{click:function(e){return e.stopPropagation()}},attrs:{value:i.isSelected(n),disabled:!!o.selectable&&!o.selectable.call(null,n,r)},on:{input:function(){i.commit("rowSelectedChanged",n)}}})},sortable:!1,resizable:!1},index:{renderHeader:function(e,t){return t.column.label||"#"},renderCell:function(e,t){var n=t.$index,o=t.column,i=n+1,r=o.index;return"number"==typeof r?i=n+r:"function"==typeof r&&(i=r(n)),e("div",[i])},sortable:!1},expand:{renderHeader:function(e,t){return t.column.label||""},renderCell:function(e,t){var n=t.row,o=t.store,i=["el-table__expand-icon"];return o.states.expandRows.indexOf(n)>-1&&i.push("el-table__expand-icon--expanded"),e("div",{class:i,on:{click:function(e){e.stopPropagation(),o.toggleRowExpansion(n)}}},[e("i",{class:"el-icon el-icon-arrow-right"})])},sortable:!1,resizable:!1,className:"el-table__expand-column"}},s=n(8),c=n(18),u=n.n(c),d=Object.assign||function(e){for(var t=1;t-1})}}},data:function(){return{isSubColumn:!1,columns:[]}},computed:{owner:function(){for(var e=this.$parent;e&&!e.tableId;)e=e.$parent;return e},columnOrTableParent:function(){for(var e=this.$parent;e&&!e.tableId&&!e.columnId;)e=e.$parent;return e},realWidth:function(){return Object(s.l)(this.width)},realMinWidth:function(){return Object(s.k)(this.minWidth)},realAlign:function(){return this.align?"is-"+this.align:null},realHeaderAlign:function(){return this.headerAlign?"is-"+this.headerAlign:this.realAlign}},methods:{getPropsData:function(){for(var e=this,t=arguments.length,n=Array(t),o=0;o2&&void 0!==arguments[2]?arguments[2]:"children",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"hasChildren",r=function(e){return!(Array.isArray(e)&&e.length)};e.forEach(function(e){if(e[i])return void t(e,null,0);var a=e[o];r(a)||n(e,a,0)})}n.d(t,"b",function(){return p}),n.d(t,"i",function(){return g}),n.d(t,"d",function(){return m}),n.d(t,"e",function(){return v}),n.d(t,"c",function(){return b}),n.d(t,"g",function(){return x}),n.d(t,"f",function(){return y}),n.d(t,"h",function(){return i}),n.d(t,"l",function(){return r}),n.d(t,"k",function(){return a}),n.d(t,"j",function(){return l}),n.d(t,"a",function(){return s}),n.d(t,"m",function(){return c}),n.d(t,"n",function(){return u});var d=n(3),f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},h=function(e){return null!==e&&"object"===(void 0===e?"undefined":f(e))},g=function(e,t,n,o,i){if(!t&&!o&&(!i||Array.isArray(i)&&!i.length))return e;n="string"==typeof n?"descending"===n?-1:1:n&&n<0?-1:1;var r=o?null:function(n,o){return i?(Array.isArray(i)||(i=[i]),i.map(function(t){return"string"==typeof t?Object(d.getValueByPath)(n,t):t(n,o,e)})):("$key"!==t&&h(n)&&"$value"in n&&(n=n.$value),[h(n)?Object(d.getValueByPath)(n,t):n])},a=function(e,t){if(o)return o(e.value,t.value);for(var n=0,i=e.key.length;nt.key[n])return 1}return 0};return e.map(function(e,t){return{value:e,index:t,key:r?r(e,t):null}}).sort(function(e,t){var o=a(e,t);return o||(o=e.index-t.index),o*n}).map(function(e){return e.value})},m=function(e,t){var n=null;return e.columns.forEach(function(e){e.id===t&&(n=e)}),n},v=function(e,t){for(var n=null,o=0;o2&&void 0!==arguments[2]?arguments[2]:"children",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"hasChildren",r=function(e){return!(Array.isArray(e)&&e.length)};e.forEach(function(e){if(e[i])return void t(e,null,0);var a=e[o];r(a)||n(e,a,0)})}n.d(t,"b",function(){return p}),n.d(t,"i",function(){return g}),n.d(t,"d",function(){return m}),n.d(t,"e",function(){return v}),n.d(t,"c",function(){return b}),n.d(t,"g",function(){return x}),n.d(t,"f",function(){return y}),n.d(t,"h",function(){return i}),n.d(t,"l",function(){return r}),n.d(t,"k",function(){return a}),n.d(t,"j",function(){return l}),n.d(t,"a",function(){return s}),n.d(t,"m",function(){return c}),n.d(t,"n",function(){return u});var d=n(3),f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},h=function(e){return null!==e&&"object"===(void 0===e?"undefined":f(e))},g=function(e,t,n,o,i){if(!t&&!o&&(!i||Array.isArray(i)&&!i.length))return e;n="string"==typeof n?"descending"===n?-1:1:n&&n<0?-1:1;var r=o?null:function(n,o){return i?(Array.isArray(i)||(i=[i]),i.map(function(t){return"string"==typeof t?Object(d.getValueByPath)(n,t):t(n,o,e)})):("$key"!==t&&h(n)&&"$value"in n&&(n=n.$value),[h(n)?Object(d.getValueByPath)(n,t):n])},a=function(e,t){if(o)return o(e.value,t.value);for(var n=0,i=e.key.length;nt.key[n])return 1}return 0};return e.map(function(e,t){return{value:e,index:t,key:r?r(e,t):null}}).sort(function(e,t){var o=a(e,t);return o||(o=e.index-t.index),o*n}).map(function(e){return e.value})},m=function(e,t){var n=null;return e.columns.forEach(function(e){e.id===t&&(n=e)}),n},v=function(e,t){for(var n=null,o=0;o1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Table is required.");var n=new D;return n.table=e,n.toggleAllSelection=R()(10,n._toggleAllSelection),Object.keys(t).forEach(function(e){n.states[e]=t[e]}),n}function i(e){var t={};return Object.keys(e).forEach(function(n){var o=e[n],i=void 0;"string"==typeof o?i=function(){return this.store.states[o]}:"function"==typeof o?i=function(){return o.call(this,this.store.states)}:console.error("invalid value type"),i&&(t[n]=i)}),t}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.r(t);var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-table",class:[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX,"el-table--scrollable-y":e.layout.scrollY,"el-table--enable-row-hover":!e.store.states.isComplex,"el-table--enable-row-transition":0!==(e.store.states.data||[]).length&&(e.store.states.data||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],on:{mouseleave:function(t){e.handleMouseLeave(t)}}},[n("div",{ref:"hiddenColumns",staticClass:"hidden-columns"},[e._t("default")],2),e.showHeader?n("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"headerWrapper",staticClass:"el-table__header-wrapper"},[n("table-header",{ref:"tableHeader",style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"default-sort":e.defaultSort}})],1):e._e(),n("div",{ref:"bodyWrapper",staticClass:"el-table__body-wrapper",class:[e.layout.scrollX?"is-scrolling-"+e.scrollPosition:"is-scrolling-none"],style:[e.bodyHeight]},[n("table-body",{style:{width:e.bodyWidth},attrs:{context:e.context,store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.data&&0!==e.data.length?e._e():n("div",{ref:"emptyBlock",staticClass:"el-table__empty-block",style:e.emptyBlockStyle},[n("span",{staticClass:"el-table__empty-text"},[e._t("empty",[e._v(e._s(e.emptyText||e.t("el.table.emptyText")))])],2)]),e.$slots.append?n("div",{ref:"appendWrapper",staticClass:"el-table__append-wrapper"},[e._t("append")],2):e._e()],1),e.showSummary?n("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"},{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"footerWrapper",staticClass:"el-table__footer-wrapper"},[n("table-footer",{style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,"default-sort":e.defaultSort}})],1):e._e(),e.fixedColumns.length>0?n("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"fixedWrapper",staticClass:"el-table__fixed",style:[{width:e.layout.fixedWidth?e.layout.fixedWidth+"px":""},e.fixedHeight]},[e.showHeader?n("div",{ref:"fixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[n("table-header",{ref:"fixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,store:e.store}})],1):e._e(),n("div",{ref:"fixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[n("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"left",store:e.store,stripe:e.stripe,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"row-style":e.rowStyle}}),e.$slots.append?n("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?n("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"fixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[n("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?n("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"rightFixedWrapper",staticClass:"el-table__fixed-right",style:[{width:e.layout.rightFixedWidth?e.layout.rightFixedWidth+"px":"",right:e.layout.scrollY?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight]},[e.showHeader?n("div",{ref:"rightFixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[n("table-header",{ref:"rightFixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,store:e.store}})],1):e._e(),n("div",{ref:"rightFixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[n("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"right",store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.$slots.append?n("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?n("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"rightFixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[n("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?n("div",{ref:"rightFixedPatch",staticClass:"el-table__fixed-right-patch",style:{width:e.layout.scrollY?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight+"px"}}):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.resizeProxyVisible,expression:"resizeProxyVisible"}],ref:"resizeProxy",staticClass:"el-table__column-resize-proxy"})])},l=[];a._withStripped=!0;var s=n(18),c=n.n(s),u=n(43),d=n(16),f=n(46),p=n.n(f),h="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,g=function(e,t){e&&e.addEventListener&&e.addEventListener(h?"DOMMouseScroll":"mousewheel",function(e){var n=p()(e);t&&t.apply(this,[e,n])})},m={bind:function(e,t){g(e,t.value)}},v=n(6),b=n.n(v),x=n(11),y=n.n(x),_=n(7),w=n.n(_),k=n(9),S=n.n(k),M=n(8),C={data:function(){return{states:{defaultExpandAll:!1,expandRows:[]}}},methods:{updateExpandRows:function(){var e=this.states,t=e.data,n=void 0===t?[]:t,o=e.rowKey,i=e.defaultExpandAll,r=e.expandRows;if(i)this.states.expandRows=n.slice();else if(o){var a=Object(M.f)(r,o);this.states.expandRows=n.reduce(function(e,t){var n=Object(M.g)(t,o);return a[n]&&e.push(t),e},[])}else this.states.expandRows=[]},toggleRowExpansion:function(e,t){Object(M.m)(this.states.expandRows,e,t)&&(this.table.$emit("expand-change",e,this.states.expandRows.slice()),this.scheduleLayout())},setExpandRowKeys:function(e){this.assertRowKey();var t=this.states,n=t.data,o=t.rowKey,i=Object(M.f)(n,o);this.states.expandRows=e.reduce(function(e,t){var n=i[t];return n&&e.push(n.row),e},[])},isRowExpanded:function(e){var t=this.states,n=t.expandRows,o=void 0===n?[]:n,i=t.rowKey;return i?!!Object(M.f)(o,i)[Object(M.g)(e,i)]:-1!==o.indexOf(e)}}},A=n(3),T={data:function(){return{states:{_currentRowKey:null,currentRow:null}}},methods:{setCurrentRowKey:function(e){this.assertRowKey(),this.states._currentRowKey=e,this.setCurrentRowByKey(e)},restoreCurrentRowKey:function(){this.states._currentRowKey=null},setCurrentRowByKey:function(e){var t=this.states,n=t.data,o=void 0===n?[]:n,i=t.rowKey,r=null;i&&(r=Object(A.arrayFind)(o,function(t){return Object(M.g)(t,i)===e})),t.currentRow=r},updateCurrentRow:function(e){var t=this.states,n=this.table,o=t.currentRow;if(e&&e!==o)return t.currentRow=e,void n.$emit("current-change",e,o);!e&&o&&(t.currentRow=null,n.$emit("current-change",null,o))},updateCurrentRowData:function(){var e=this.states,t=this.table,n=e.rowKey,o=e._currentRowKey,i=e.data||[],r=e.currentRow;if(-1===i.indexOf(r)&&r){if(n){var a=Object(M.g)(r,n);this.setCurrentRowByKey(a)}else e.currentRow=null;null===e.currentRow&&t.$emit("current-change",null,r)}else o&&(this.setCurrentRowByKey(o),this.restoreCurrentRowKey())}}},E=Object.assign||function(e){for(var t=1;t0&&t[0]&&"selection"===t[0].type&&!t[0].fixed&&(t[0].fixed=!0,e.fixedColumns.unshift(t[0]));var n=t.filter(function(e){return!e.fixed});e.originColumns=[].concat(e.fixedColumns).concat(n).concat(e.rightFixedColumns);var o=L(n),i=L(e.fixedColumns),r=L(e.rightFixedColumns);e.leafColumnsLength=o.length,e.fixedLeafColumnsLength=i.length,e.rightFixedLeafColumnsLength=r.length,e.columns=[].concat(i).concat(o).concat(r),e.isComplex=e.fixedColumns.length>0||e.rightFixedColumns.length>0},scheduleLayout:function(e){e&&this.updateColumns(),this.table.debouncedUpdateLayout()},isSelected:function(e){var t=this.states.selection;return(void 0===t?[]:t).indexOf(e)>-1},clearSelection:function(){var e=this.states;e.isAllSelected=!1,e.selection.length&&(e.selection=[],this.table.$emit("selection-change",[]))},cleanSelection:function(){var e=this.states,t=e.data,n=e.rowKey,o=e.selection,i=void 0;if(n){i=[];var r=Object(M.f)(o,n),a=Object(M.f)(t,n);for(var l in r)r.hasOwnProperty(l)&&!a[l]&&i.push(r[l].row)}else i=o.filter(function(e){return-1===t.indexOf(e)});if(i.length){var s=o.filter(function(e){return-1===i.indexOf(e)});e.selection=s,this.table.$emit("selection-change",s.slice())}},toggleRowSelection:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Object(M.m)(this.states.selection,e,t)){var o=(this.states.selection||[]).slice();n&&this.table.$emit("select",o,e),this.table.$emit("selection-change",o)}},_toggleAllSelection:function(){var e=this.states,t=e.data,n=void 0===t?[]:t,o=e.selection,i=e.selectOnIndeterminate?!e.isAllSelected:!(e.isAllSelected||o.length);e.isAllSelected=i;var r=!1;n.forEach(function(t,n){e.selectable?e.selectable.call(null,t,n)&&Object(M.m)(o,t,i)&&(r=!0):Object(M.m)(o,t,i)&&(r=!0)}),r&&this.table.$emit("selection-change",o?o.slice():[]),this.table.$emit("select-all",o)},updateSelectionByRowKey:function(){var e=this.states,t=e.selection,n=e.rowKey,o=e.data,i=Object(M.f)(t,n);o.forEach(function(e){var o=Object(M.g)(e,n),r=i[o];r&&(t[r.index]=e)})},updateAllSelected:function(){var e=this.states,t=e.selection,n=e.rowKey,o=e.selectable,i=e.data||[];if(0===i.length)return void(e.isAllSelected=!1);var r=void 0;n&&(r=Object(M.f)(t,n));for(var a=!0,l=0,s=0,c=i.length;s1?n-1:0),i=1;ithis.bodyHeight;return this.scrollY=o,n!==o}return!1},e.prototype.setHeight=function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"height";if(!w.a.prototype.$isServer){var o=this.table.$el;if(e=Object(M.j)(e),this.height=e,!o&&(e||0===e))return w.a.nextTick(function(){return t.setHeight(e,n)});"number"==typeof e?(o.style[n]=e+"px",this.updateElsHeight()):"string"==typeof e&&(o.style[n]=e,this.updateElsHeight())}},e.prototype.setMaxHeight=function(e){this.setHeight(e,"max-height")},e.prototype.getFlattenColumns=function(){var e=[];return this.table.columns.forEach(function(t){t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e},e.prototype.updateElsHeight=function(){var e=this;if(!this.table.$ready)return w.a.nextTick(function(){return e.updateElsHeight()});var t=this.table.$refs,n=t.headerWrapper,o=t.appendWrapper,i=t.footerWrapper;if(this.appendHeight=o?o.offsetHeight:0,!this.showHeader||n){var r=n?n.querySelector(".el-table__header tr"):null,a=this.headerDisplayNone(r),l=this.headerHeight=this.showHeader?n.offsetHeight:0;if(this.showHeader&&!a&&n.offsetWidth>0&&(this.table.columns||[]).length>0&&l<2)return w.a.nextTick(function(){return e.updateElsHeight()});var s=this.tableHeight=this.table.$el.clientHeight,c=this.footerHeight=i?i.offsetHeight:0;null!==this.height&&(this.bodyHeight=s-l-c+(i?1:0)),this.fixedBodyHeight=this.scrollX?this.bodyHeight-this.gutterWidth:this.bodyHeight;var u=!(this.store.states.data&&this.store.states.data.length);this.viewportHeight=this.scrollX?s-(u?0:this.gutterWidth):s,this.updateScrollY(),this.notifyObservers("scrollable")}},e.prototype.headerDisplayNone=function(e){if(!e)return!0;for(var t=e;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1},e.prototype.updateColumnsWidth=function(){if(!w.a.prototype.$isServer){var e=this.fit,t=this.table.$el.clientWidth,n=0,o=this.getFlattenColumns(),i=o.filter(function(e){return"number"!=typeof e.width});if(o.forEach(function(e){"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)}),i.length>0&&e){o.forEach(function(e){n+=e.width||e.minWidth||80});var r=this.scrollY?this.gutterWidth:0;if(n<=t-r){this.scrollX=!1;var a=t-r-n;if(1===i.length)i[0].realWidth=(i[0].minWidth||80)+a;else{var l=i.reduce(function(e,t){return e+(t.minWidth||80)},0),s=a/l,c=0;i.forEach(function(e,t){if(0!==t){var n=Math.floor((e.minWidth||80)*s);c+=n,e.realWidth=(e.minWidth||80)+n}}),i[0].realWidth=(i[0].minWidth||80)+a-c}}else this.scrollX=!0,i.forEach(function(e){e.realWidth=e.minWidth});this.bodyWidth=Math.max(n,t),this.table.resizeState.width=this.bodyWidth}else o.forEach(function(e){e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,n+=e.realWidth}),this.scrollX=n>t,this.bodyWidth=n;var u=this.store.states.fixedColumns;if(u.length>0){var d=0;u.forEach(function(e){d+=e.realWidth||e.width}),this.fixedWidth=d}var f=this.store.states.rightFixedColumns;if(f.length>0){var p=0;f.forEach(function(e){p+=e.realWidth||e.width}),this.rightFixedWidth=p}this.notifyObservers("columns")}},e.prototype.addObserver=function(e){this.observers.push(e)},e.prototype.removeObserver=function(e){var t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)},e.prototype.notifyObservers=function(e){var t=this;this.observers.forEach(function(n){switch(e){case"columns":n.onColumnsChange(t);break;case"scrollable":n.onScrollableChange(t);break;default:throw new Error("Table Layout don't have event "+e+".")}})},e}(),V=F,j=n(2),$=n(29),H=n.n($),W={created:function(){this.tableLayout.addObserver(this)},destroyed:function(){this.tableLayout.removeObserver(this)},computed:{tableLayout:function(){var e=this.layout;if(!e&&this.table&&(e=this.table.layout),!e)throw new Error("Can not find table layout.");return e}},mounted:function(){this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout)},updated:function(){this.__updated__||(this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout),this.__updated__=!0)},methods:{onColumnsChange:function(e){var t=this.$el.querySelectorAll("colgroup > col");if(t.length){var n=e.getFlattenColumns(),o={};n.forEach(function(e){o[e.id]=e});for(var i=0,r=t.length;i col[name=gutter]"),n=0,o=t.length;n=this.leftFixedLeafCount:"right"===this.fixed?e=this.columnsCount-this.rightFixedLeafCount},getSpan:function(e,t,n,o){var i=1,r=1,a=this.table.spanMethod;if("function"==typeof a){var l=a({row:e,column:t,rowIndex:n,columnIndex:o});Array.isArray(l)?(i=l[0],r=l[1]):"object"===(void 0===l?"undefined":G(l))&&(i=l.rowspan,r=l.colspan)}return{rowspan:i,colspan:r}},getRowStyle:function(e,t){var n=this.table.rowStyle;return"function"==typeof n?n.call(null,{row:e,rowIndex:t}):n||null},getRowClass:function(e,t){var n=["el-table__row"];this.table.highlightCurrentRow&&e===this.store.states.currentRow&&n.push("current-row"),this.stripe&&t%2==1&&n.push("el-table__row--striped");var o=this.table.rowClassName;return"string"==typeof o?n.push(o):"function"==typeof o&&n.push(o.call(null,{row:e,rowIndex:t})),this.store.states.expandRows.indexOf(e)>-1&&n.push("expanded"),n},getCellStyle:function(e,t,n,o){var i=this.table.cellStyle;return"function"==typeof i?i.call(null,{rowIndex:e,columnIndex:t,row:n,column:o}):i},getCellClass:function(e,t,n,o){var i=[o.id,o.align,o.className];this.isColumnHidden(t)&&i.push("is-hidden");var r=this.table.cellClassName;return"string"==typeof r?i.push(r):"function"==typeof r&&i.push(r.call(null,{rowIndex:e,columnIndex:t,row:n,column:o})),i.join(" ")},getColspanRealWidth:function(e,t,n){return t<1?e[n].realWidth:e.map(function(e){return e.realWidth}).slice(n,n+t).reduce(function(e,t){return e+t},-1)},handleCellMouseEnter:function(e,t){var n=this.table,o=Object(M.b)(e);if(o){var i=Object(M.c)(n,o),r=n.hoverState={cell:o,column:i,row:t};n.$emit("cell-mouse-enter",r.row,r.column,r.cell,e)}var a=e.target.querySelector(".cell");if(Object(j.hasClass)(a,"el-tooltip")&&a.childNodes.length){var l=document.createRange();if(l.setStart(a,0),l.setEnd(a,a.childNodes.length),(l.getBoundingClientRect().width+((parseInt(Object(j.getStyle)(a,"paddingLeft"),10)||0)+(parseInt(Object(j.getStyle)(a,"paddingRight"),10)||0))>a.offsetWidth||a.scrollWidth>a.offsetWidth)&&this.$refs.tooltip){var s=this.$refs.tooltip;this.tooltipContent=o.innerText||o.textContent,s.referenceElm=o,s.$refs.popper&&(s.$refs.popper.style.display="none"),s.doDestroy(),s.setExpectedState(!0),this.activateTooltip(s)}}},handleCellMouseLeave:function(e){var t=this.$refs.tooltip;if(t&&(t.setExpectedState(!1),t.handleClosePopper()),Object(M.b)(e)){var n=this.table.hoverState||{};this.table.$emit("cell-mouse-leave",n.row,n.column,n.cell,e)}},handleMouseEnter:R()(30,function(e){this.store.commit("setHoverRow",e)}),handleMouseLeave:R()(30,function(){this.store.commit("setHoverRow",null)}),handleContextMenu:function(e,t){this.handleEvent(e,t,"contextmenu")},handleDoubleClick:function(e,t){this.handleEvent(e,t,"dblclick")},handleClick:function(e,t){this.store.commit("setCurrentRow",t),this.handleEvent(e,t,"click")},handleEvent:function(e,t,n){var o=this.table,i=Object(M.b)(e),r=void 0;i&&(r=Object(M.c)(o,i))&&o.$emit("cell-"+n,t,r,i,e),o.$emit("row-"+n,t,r,e)},rowRender:function(e,t,n){var o=this,i=this.$createElement,r=this.treeIndent,a=this.columns,l=this.firstDefaultColumnIndex,s=a.map(function(e,t){return o.isColumnHidden(t)}),c=this.getRowClass(e,t),u=!0;return n&&(c.push("el-table__row--level-"+n.level),u=n.display),i("tr",{style:[u?null:{display:"none"},this.getRowStyle(e,t)],class:c,key:this.getKeyOfRow(e,t),on:{dblclick:function(t){return o.handleDoubleClick(t,e)},click:function(t){return o.handleClick(t,e)},contextmenu:function(t){return o.handleContextMenu(t,e)},mouseenter:function(e){return o.handleMouseEnter(t)},mouseleave:this.handleMouseLeave}},[a.map(function(c,u){var d=o.getSpan(e,c,t,u),f=d.rowspan,p=d.colspan;if(!f||!p)return null;var h=U({},c);h.realWidth=o.getColspanRealWidth(a,p,u);var g={store:o.store,_self:o.context||o.table.$vnode.context,column:h,row:e,$index:t};return u===l&&n&&(g.treeNode={indent:n.level*r,level:n.level},"boolean"==typeof n.expanded&&(g.treeNode.expanded=n.expanded,"loading"in n&&(g.treeNode.loading=n.loading),"noLazyChildren"in n&&(g.treeNode.noLazyChildren=n.noLazyChildren))),i("td",{style:o.getCellStyle(t,u,e,c),class:o.getCellClass(t,u,e,c),attrs:{rowspan:f,colspan:p},on:{mouseenter:function(t){return o.handleCellMouseEnter(t,e)},mouseleave:o.handleCellMouseLeave}},[c.renderCell.call(o._renderProxy,o.$createElement,g,s[u])])})])},wrappedRowRender:function(e,t){var n=this,o=this.$createElement,i=this.store,r=i.isRowExpanded,a=i.assertRowKey,l=i.states,s=l.treeData,c=l.lazyTreeNodeMap,u=l.childrenColumnName,d=l.rowKey;if(this.hasExpandColumn&&r(e)){var f=this.table.renderExpanded,p=this.rowRender(e,t);return f?[[p,o("tr",{key:"expanded-row__"+p.key},[o("td",{attrs:{colspan:this.columnsCount},class:"el-table__expanded-cell"},[f(this.$createElement,{row:e,$index:t,store:this.store})])])]]:(console.error("[Element Error]renderExpanded is required."),p)}if(Object.keys(s).length){a();var h=Object(M.g)(e,d),g=s[h],m=null;g&&(m={expanded:g.expanded,level:g.level,display:!0},"boolean"==typeof g.lazy&&("boolean"==typeof g.loaded&&g.loaded&&(m.noLazyChildren=!(g.children&&g.children.length)),m.loading=g.loading));var v=[this.rowRender(e,t,m)];if(g){var b=0;g.display=!0;var x=c[h]||e[u];!function e(o,i){o&&o.length&&i&&o.forEach(function(o){var r={display:i.display&&i.expanded,level:i.level+1},a=Object(M.g)(o,d);if(void 0===a||null===a)throw new Error("for nested data item, row-key is required.");if(g=U({},s[a]),g&&(r.expanded=g.expanded,g.level=g.level||r.level,g.display=!(!g.expanded||!r.display),"boolean"==typeof g.lazy&&("boolean"==typeof g.loaded&&g.loaded&&(r.noLazyChildren=!(g.children&&g.children.length)),r.loading=g.loading)),b++,v.push(n.rowRender(o,t+b,r)),g){var l=c[a]||o[u];e(l,g)}})}(x,g)}return v}return this.rowRender(e,t)}}},Y=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"}},[e.multiple?n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[n("div",{staticClass:"el-table-filter__content"},[n("el-scrollbar",{attrs:{"wrap-class":"el-table-filter__wrap"}},[n("el-checkbox-group",{staticClass:"el-table-filter__checkbox-group",model:{value:e.filteredValue,callback:function(t){e.filteredValue=t},expression:"filteredValue"}},e._l(e.filters,function(t){return n("el-checkbox",{key:t.value,attrs:{label:t.value}},[e._v(e._s(t.text))])}),1)],1)],1),n("div",{staticClass:"el-table-filter__bottom"},[n("button",{class:{"is-disabled":0===e.filteredValue.length},attrs:{disabled:0===e.filteredValue.length},on:{click:e.handleConfirm}},[e._v(e._s(e.t("el.table.confirmFilter")))]),n("button",{on:{click:e.handleReset}},[e._v(e._s(e.t("el.table.resetFilter")))])])]):n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[n("ul",{staticClass:"el-table-filter__list"},[n("li",{staticClass:"el-table-filter__list-item",class:{"is-active":void 0===e.filterValue||null===e.filterValue},on:{click:function(t){e.handleSelect(null)}}},[e._v(e._s(e.t("el.table.clearFilter")))]),e._l(e.filters,function(t){return n("li",{key:t.value,staticClass:"el-table-filter__list-item",class:{"is-active":e.isActive(t)},attrs:{label:t.value},on:{click:function(n){e.handleSelect(t.value)}}},[e._v(e._s(t.text))])})],2)])])},Z=[];Y._withStripped=!0;var X=n(5),K=n.n(X),J=n(15),Q=n(12),ee=n.n(Q),te=[];!w.a.prototype.$isServer&&document.addEventListener("click",function(e){te.forEach(function(t){var n=e.target;t&&t.$el&&(n===t.$el||t.$el.contains(n)||t.handleOutsideClick&&t.handleOutsideClick(e))})});var ne={open:function(e){e&&te.push(e)},close:function(e){-1!==te.indexOf(e)&&te.splice(e,1)}},oe=n(39),ie=n.n(oe),re=n(14),ae=n.n(re),le={name:"ElTableFilterPanel",mixins:[K.a,b.a],directives:{Clickoutside:ee.a},components:{ElCheckbox:c.a,ElCheckboxGroup:ie.a,ElScrollbar:ae.a},props:{placement:{type:String,default:"bottom-end"}},methods:{isActive:function(e){return e.value===this.filterValue},handleOutsideClick:function(){var e=this;setTimeout(function(){e.showPopper=!1},16)},handleConfirm:function(){this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleReset:function(){this.filteredValue=[],this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleSelect:function(e){this.filterValue=e,void 0!==e&&null!==e?this.confirmFilter(this.filteredValue):this.confirmFilter([]),this.handleOutsideClick()},confirmFilter:function(e){this.table.store.commit("filterChange",{column:this.column,values:e}),this.table.store.updateAllSelected()}},data:function(){return{table:null,cell:null,column:null}},computed:{filters:function(){return this.column&&this.column.filters},filterValue:{get:function(){return(this.column.filteredValue||[])[0]},set:function(e){this.filteredValue&&(void 0!==e&&null!==e?this.filteredValue.splice(0,1,e):this.filteredValue.splice(0,1))}},filteredValue:{get:function(){return this.column?this.column.filteredValue||[]:[]},set:function(e){this.column&&(this.column.filteredValue=e)}},multiple:function(){return!this.column||this.column.filterMultiple}},mounted:function(){var e=this;this.popperElm=this.$el,this.referenceElm=this.cell,this.table.bodyWrapper.addEventListener("scroll",function(){e.updatePopper()}),this.$watch("showPopper",function(t){e.column&&(e.column.filterOpened=t),t?ne.open(e):ne.close(e)})},watch:{showPopper:function(e){!0===e&&parseInt(this.popperJS._popper.style.zIndex,10)1;return i&&(this.$parent.isGroup=!0),e("table",{class:"el-table__header",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",[this.columns.map(function(t){return e("col",{attrs:{name:t.id},key:t.id})}),this.hasGutter?e("col",{attrs:{name:"gutter"}}):""]),e("thead",{class:[{"is-group":i,"has-gutter":this.hasGutter}]},[this._l(o,function(n,o){return e("tr",{style:t.getHeaderRowStyle(o),class:t.getHeaderRowClass(o)},[n.map(function(i,r){return e("th",{attrs:{colspan:i.colSpan,rowspan:i.rowSpan},on:{mousemove:function(e){return t.handleMouseMove(e,i)},mouseout:t.handleMouseOut,mousedown:function(e){return t.handleMouseDown(e,i)},click:function(e){return t.handleHeaderClick(e,i)},contextmenu:function(e){return t.handleHeaderContextMenu(e,i)}},style:t.getHeaderCellStyle(o,r,n,i),class:t.getHeaderCellClass(o,r,n,i),key:i.id},[e("div",{class:["cell",i.filteredValue&&i.filteredValue.length>0?"highlight":"",i.labelClassName]},[i.renderHeader?i.renderHeader.call(t._renderProxy,e,{column:i,$index:r,store:t.store,_self:t.$parent.$vnode.context}):i.label,i.sortable?e("span",{class:"caret-wrapper",on:{click:function(e){return t.handleSortClick(e,i)}}},[e("i",{class:"sort-caret ascending",on:{click:function(e){return t.handleSortClick(e,i,"ascending")}}}),e("i",{class:"sort-caret descending",on:{click:function(e){return t.handleSortClick(e,i,"descending")}}})]):"",i.filterable?e("span",{class:"el-table__column-filter-trigger",on:{click:function(e){return t.handleFilterClick(e,i)}}},[e("i",{class:["el-icon-arrow-down",i.filterOpened?"el-icon-arrow-up":""]})]):""])])}),t.hasGutter?e("th",{class:"gutter"}):""])})])])},props:{fixed:String,store:{required:!0},border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},components:{ElCheckbox:c.a},computed:fe({table:function(){return this.$parent},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},i({columns:"columns",isAllSelected:"isAllSelected",leftFixedLeafCount:"fixedLeafColumnsLength",rightFixedLeafCount:"rightFixedLeafColumnsLength",columnsCount:function(e){return e.columns.length},leftFixedCount:function(e){return e.fixedColumns.length},rightFixedCount:function(e){return e.rightFixedColumns.length}})),created:function(){this.filterPanels={}},mounted:function(){var e=this;this.$nextTick(function(){var t=e.defaultSort,n=t.prop,o=t.order;e.store.commit("sort",{prop:n,order:o,init:!0})})},beforeDestroy:function(){var e=this.filterPanels;for(var t in e)e.hasOwnProperty(t)&&e[t]&&e[t].$destroy(!0)},methods:{isCellHidden:function(e,t){for(var n=0,o=0;o=this.leftFixedLeafCount:"right"===this.fixed?n=this.columnsCount-this.rightFixedLeafCount},getHeaderRowStyle:function(e){var t=this.table.headerRowStyle;return"function"==typeof t?t.call(null,{rowIndex:e}):t},getHeaderRowClass:function(e){var t=[],n=this.table.headerRowClassName;return"string"==typeof n?t.push(n):"function"==typeof n&&t.push(n.call(null,{rowIndex:e})),t.join(" ")},getHeaderCellStyle:function(e,t,n,o){var i=this.table.headerCellStyle;return"function"==typeof i?i.call(null,{rowIndex:e,columnIndex:t,row:n,column:o}):i},getHeaderCellClass:function(e,t,n,o){var i=[o.id,o.order,o.headerAlign,o.className,o.labelClassName];0===e&&this.isCellHidden(t,n)&&i.push("is-hidden"),o.children||i.push("is-leaf"),o.sortable&&i.push("is-sortable");var r=this.table.headerCellClassName;return"string"==typeof r?i.push(r):"function"==typeof r&&i.push(r.call(null,{rowIndex:e,columnIndex:t,row:n,column:o})),i.join(" ")},toggleAllSelection:function(e){e.stopPropagation(),this.store.commit("toggleAllSelection")},handleFilterClick:function(e,t){e.stopPropagation();var n=e.target,o="TH"===n.tagName?n:n.parentNode;if(!Object(j.hasClass)(o,"noclick")){o=o.querySelector(".el-table__column-filter-trigger")||o;var i=this.$parent,r=this.filterPanels[t.id];if(r&&t.filterOpened)return void(r.showPopper=!1);r||(r=new w.a(de),this.filterPanels[t.id]=r,t.filterPlacement&&(r.placement=t.filterPlacement),r.table=i,r.cell=o,r.column=t,!this.$isServer&&r.$mount(document.createElement("div"))),setTimeout(function(){r.showPopper=!0},16)}},handleHeaderClick:function(e,t){!t.filters&&t.sortable?this.handleSortClick(e,t):t.filterable&&!t.sortable&&this.handleFilterClick(e,t),this.$parent.$emit("header-click",t,e)},handleHeaderContextMenu:function(e,t){this.$parent.$emit("header-contextmenu",t,e)},handleMouseDown:function(e,t){var n=this;if(!this.$isServer&&!(t.children&&t.children.length>0)&&this.draggingColumn&&this.border){this.dragging=!0,this.$parent.resizeProxyVisible=!0;var o=this.$parent,i=o.$el,r=i.getBoundingClientRect().left,a=this.$el.querySelector("th."+t.id),l=a.getBoundingClientRect(),s=l.left-r+30;Object(j.addClass)(a,"noclick"),this.dragState={startMouseLeft:e.clientX,startLeft:l.right-r,startColumnLeft:l.left-r,tableLeft:r};var c=o.$refs.resizeProxy;c.style.left=this.dragState.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};var u=function(e){var t=e.clientX-n.dragState.startMouseLeft,o=n.dragState.startLeft+t;c.style.left=Math.max(s,o)+"px"},d=function i(){if(n.dragging){var r=n.dragState,l=r.startColumnLeft,s=r.startLeft,d=parseInt(c.style.left,10),f=d-l;t.width=t.realWidth=f,o.$emit("header-dragend",t.width,s-l,t,e),n.store.scheduleLayout(),document.body.style.cursor="",n.dragging=!1,n.draggingColumn=null,n.dragState={},o.resizeProxyVisible=!1}document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",i),document.onselectstart=null,document.ondragstart=null,setTimeout(function(){Object(j.removeClass)(a,"noclick")},0)};document.addEventListener("mousemove",u),document.addEventListener("mouseup",d)}},handleMouseMove:function(e,t){if(!(t.children&&t.children.length>0)){for(var n=e.target;n&&"TH"!==n.tagName;)n=n.parentNode;if(t&&t.resizable&&!this.dragging&&this.border){var o=n.getBoundingClientRect(),i=document.body.style;o.width>12&&o.right-e.pageX<8?(i.cursor="col-resize",Object(j.hasClass)(n,"is-sortable")&&(n.style.cursor="col-resize"),this.draggingColumn=t):this.dragging||(i.cursor="",Object(j.hasClass)(n,"is-sortable")&&(n.style.cursor="pointer"),this.draggingColumn=null)}}},handleMouseOut:function(){this.$isServer||(document.body.style.cursor="")},toggleOrder:function(e){var t=e.order,n=e.sortOrders;if(""===t)return n[0];var o=n.indexOf(t||null);return n[o>n.length-2?0:o+1]},handleSortClick:function(e,t,n){e.stopPropagation();for(var o=t.order===n?null:n||this.toggleOrder(t),i=e.target;i&&"TH"!==i.tagName;)i=i.parentNode;if(i&&"TH"===i.tagName&&Object(j.hasClass)(i,"noclick"))return void Object(j.removeClass)(i,"noclick");if(t.sortable){var r=this.store.states,a=r.sortProp,l=void 0,s=r.sortingColumn;(s!==t||s===t&&null===s.order)&&(s&&(s.order=null),r.sortingColumn=t,a=t.property),l=t.order=o||null,r.sortProp=a,r.sortOrder=l,this.store.commit("changeSortCondition")}}},data:function(){return{draggingColumn:null,dragging:!1,dragState:{}}}},me=Object.assign||function(e){for(var t=1;t=this.leftFixedLeafCount;if("right"===this.fixed){for(var o=0,i=0;i=this.columnsCount-this.rightFixedCount},getRowClasses:function(e,t){var n=[e.id,e.align,e.labelClassName];return e.className&&n.push(e.className),this.isCellHidden(t,this.columns,e)&&n.push("is-hidden"),e.children||n.push("is-leaf"),n}}},be=Object.assign||function(e){for(var t=1;t0){var o=n.scrollTop;t.pixelY<0&&0!==o&&e.preventDefault(),t.pixelY>0&&n.scrollHeight-n.clientHeight>o&&e.preventDefault(),n.scrollTop+=Math.ceil(t.pixelY/5)}else n.scrollLeft+=Math.ceil(t.pixelX/5)},handleHeaderFooterMousewheel:function(e,t){var n=t.pixelX,o=t.pixelY;Math.abs(n)>=Math.abs(o)&&(this.bodyWrapper.scrollLeft+=t.pixelX/5)},syncPostion:Object(u.throttle)(20,function(){var e=this.bodyWrapper,t=e.scrollLeft,n=e.scrollTop,o=e.offsetWidth,i=e.scrollWidth,r=this.$refs,a=r.headerWrapper,l=r.footerWrapper,s=r.fixedBodyWrapper,c=r.rightFixedBodyWrapper;a&&(a.scrollLeft=t),l&&(l.scrollLeft=t),s&&(s.scrollTop=n),c&&(c.scrollTop=n);var u=i-o-1;this.scrollPosition=t>=u?"right":0===t?"left":"middle"}),bindEvents:function(){this.bodyWrapper.addEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(d.addResizeListener)(this.$el,this.resizeListener)},unbindEvents:function(){this.bodyWrapper.removeEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(d.removeResizeListener)(this.$el,this.resizeListener)},resizeListener:function(){if(this.$ready){var e=!1,t=this.$el,n=this.resizeState,o=n.width,i=n.height,r=t.offsetWidth;o!==r&&(e=!0);var a=t.offsetHeight;(this.height||this.shouldUpdateHeight)&&i!==a&&(e=!0),e&&(this.resizeState.width=r,this.resizeState.height=a,this.doLayout())}},doLayout:function(){this.shouldUpdateHeight&&this.layout.updateElsHeight(),this.layout.updateColumnsWidth()},sort:function(e,t){this.store.commit("sort",{prop:e,order:t})},toggleAllSelection:function(){this.store.commit("toggleAllSelection")}},computed:be({tableSize:function(){return this.size||(this.$ELEMENT||{}).size},bodyWrapper:function(){return this.$refs.bodyWrapper},shouldUpdateHeight:function(){return this.height||this.maxHeight||this.fixedColumns.length>0||this.rightFixedColumns.length>0},bodyWidth:function(){var e=this.layout,t=e.bodyWidth,n=e.scrollY,o=e.gutterWidth;return t?t-(n?o:0)+"px":""},bodyHeight:function(){var e=this.layout,t=e.headerHeight,n=void 0===t?0:t,o=e.bodyHeight,i=e.footerHeight,r=void 0===i?0:i;if(this.height)return{height:o?o+"px":""};if(this.maxHeight){var a=Object(M.j)(this.maxHeight);if("number"==typeof a)return{"max-height":a-r-(this.showHeader?n:0)+"px"}}return{}},fixedBodyHeight:function(){if(this.height)return{height:this.layout.fixedBodyHeight?this.layout.fixedBodyHeight+"px":""};if(this.maxHeight){var e=Object(M.j)(this.maxHeight);if("number"==typeof e)return e=this.layout.scrollX?e-this.layout.gutterWidth:e,this.showHeader&&(e-=this.layout.headerHeight),e-=this.layout.footerHeight,{"max-height":e+"px"}}return{}},fixedHeight:function(){return this.maxHeight?this.showSummary?{bottom:0}:{bottom:this.layout.scrollX&&this.data.length?this.layout.gutterWidth+"px":""}:this.showSummary?{height:this.layout.tableHeight?this.layout.tableHeight+"px":""}:{height:this.layout.viewportHeight?this.layout.viewportHeight+"px":""}},emptyBlockStyle:function(){if(this.data&&this.data.length)return null;var e="100%";return this.layout.appendHeight&&(e="calc(100% - "+this.layout.appendHeight+"px)"),{width:this.bodyWidth,height:e}}},i({selection:"selection",columns:"columns",tableData:"data",fixedColumns:"fixedColumns",rightFixedColumns:"rightFixedColumns"})),watch:{height:{immediate:!0,handler:function(e){this.layout.setHeight(e)}},maxHeight:{immediate:!0,handler:function(e){this.layout.setMaxHeight(e)}},currentRowKey:{immediate:!0,handler:function(e){this.rowKey&&this.store.setCurrentRowKey(e)}},data:{immediate:!0,handler:function(e){this.store.commit("setData",e)}},expandRowKeys:{immediate:!0,handler:function(e){e&&this.store.setExpandRowKeysAdapter(e)}}},created:function(){var e=this;this.tableId="el-table_"+xe++,this.debouncedUpdateLayout=Object(u.debounce)(50,function(){return e.doLayout()})},mounted:function(){var e=this;this.bindEvents(),this.store.updateColumns(),this.doLayout(),this.resizeState={width:this.$el.offsetWidth,height:this.$el.offsetHeight},this.store.states.columns.forEach(function(t){t.filteredValue&&t.filteredValue.length&&e.store.commit("filterChange",{column:t,values:t.filteredValue,silent:!0})}),this.$ready=!0},destroyed:function(){this.unbindEvents()},data:function(){var e=this.treeProps,t=e.hasChildren,n=void 0===t?"hasChildren":t,i=e.children,r=void 0===i?"children":i;return this.store=o(this,{rowKey:this.rowKey,defaultExpandAll:this.defaultExpandAll,selectOnIndeterminate:this.selectOnIndeterminate,indent:this.indent,lazy:this.lazy,lazyColumnIdentifier:n,childrenColumnName:r}),{layout:new V({store:this.store,table:this,fit:this.fit,showHeader:this.showHeader}),isHidden:!1,renderExpanded:null,resizeProxyVisible:!1,resizeState:{width:null,height:null},isGroup:!1,scrollPosition:"left"}}},_e=ye,we=Object(ce.a)(_e,a,l,!1,null,null,null);we.options.__file="packages/table/src/table.vue";var ke=we.exports;ke.install=function(e){e.component(ke.name,ke)},t.default=ke}])},function(e,t){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(o,i,function(t){return e[t]}.bind(null,i));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=124)}({0:function(e,t,n){"use strict";function o(e,t,n,o,i,r,a,l){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),r&&(s._scopeId="data-v-"+r);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},s._ssrRegister=c):i&&(c=l?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(s.functional){s._injectStyles=c;var u=s.render;s.render=function(e,t){return c.call(t),u(e,t)}}else{var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:s}}n.d(t,"a",function(){return o})},124:function(e,t,n){"use strict";n.r(t);var o={name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String,effect:{type:String,default:"light",validator:function(e){return-1!==["dark","light","plain"].indexOf(e)}}},methods:{handleClose:function(e){e.stopPropagation(),this.$emit("close",e)},handleClick:function(e){this.$emit("click",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}},render:function(e){var t=this.type,n=this.tagSize,o=this.hit,i=this.effect,r=["el-tag",t?"el-tag--"+t:"",n?"el-tag--"+n:"",i?"el-tag--"+i:"",o&&"is-hit"],a=e("span",{class:r,style:{backgroundColor:this.color},on:{click:this.handleClick}},[this.$slots.default,this.closable&&e("i",{class:"el-tag__close el-icon-close",on:{click:this.handleClose}})]);return this.disableTransitions?a:e("transition",{attrs:{name:"el-zoom-in-center"}},[a])}},i=o,r=n(0),a=Object(r.a)(i,void 0,void 0,!1,null,null,null);a.options.__file="packages/tag/src/tag.vue";var l=a.exports;l.install=function(e){e.component(l.name,l)},t.default=l}})},function(e,t,n){var o=n(342);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(343);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(344);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(345);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(346);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(347);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(348);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(349);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(350);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(351);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(352);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(353);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(354);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){var o=n(355);"string"==typeof o&&(o=[[e.i,o,""]]),n(19)(o,{}),o.locals&&(e.exports=o.locals)},function(e,t,n){"use strict";var o=n(641),i=n(227),r=(n(639),n(30)),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function o(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return v.iterable&&(t[Symbol.iterator]=function(){return t}),t}function i(e){this.map={},e instanceof i?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function r(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function a(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function l(e){var t=new FileReader,n=a(t);return t.readAsArrayBuffer(e),n}function s(e){var t=new FileReader,n=a(t);return t.readAsText(e),n}function c(e){for(var t=new Uint8Array(e),n=new Array(t.length),o=0;o-1?t:e}function p(e,t){t=t||{};var n=t.body;if(e instanceof p){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new i(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new i(t.headers)),this.method=f(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),o=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(o),decodeURIComponent(i))}}),t}function g(e){var t=new i;return e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(e){var n=e.split(":"),o=n.shift().trim();if(o){var i=n.join(":").trim();t.append(o,i)}}),t}function m(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new i(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var v={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(v.arrayBuffer)var b=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],x=function(e){return e&&DataView.prototype.isPrototypeOf(e)},y=ArrayBuffer.isView||function(e){return e&&b.indexOf(Object.prototype.toString.call(e))>-1};i.prototype.append=function(e,o){e=t(e),o=n(o);var i=this.map[e];this.map[e]=i?i+","+o:o},i.prototype.delete=function(e){delete this.map[t(e)]},i.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},i.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},i.prototype.set=function(e,o){this.map[t(e)]=n(o)},i.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},i.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),o(e)},i.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),o(e)},i.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),o(e)},v.iterable&&(i.prototype[Symbol.iterator]=i.prototype.entries);var _=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];p.prototype.clone=function(){return new p(this,{body:this._bodyInit})},d.call(p.prototype),d.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new i(this.headers),url:this.url})},m.error=function(){var e=new m(null,{status:0,statusText:""});return e.type="error",e};var w=[301,302,303,307,308];m.redirect=function(e,t){if(-1===w.indexOf(t))throw new RangeError("Invalid status code");return new m(null,{status:t,headers:{location:e}})},e.Headers=i,e.Request=p,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,o){var i=new p(e,t),r=new XMLHttpRequest;r.onload=function(){var e={status:r.status,statusText:r.statusText,headers:g(r.getAllResponseHeaders()||"")};e.url="responseURL"in r?r.responseURL:e.headers.get("X-Request-URL");var t="response"in r?r.response:r.responseText;n(new m(t,e))},r.onerror=function(){o(new TypeError("Network request failed"))},r.ontimeout=function(){o(new TypeError("Network request failed"))},r.open(i.method,i.url,!0),"include"===i.credentials?r.withCredentials=!0:"omit"===i.credentials&&(r.withCredentials=!1),"responseType"in r&&v.blob&&(r.responseType="blob"),i.headers.forEach(function(e,t){r.setRequestHeader(t,e)}),r.send(void 0===i._bodyInit?null:i._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},function(e,t,n){"use strict";function o(e){this.rules=null,this._messages=u.a,this.define(e)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(152),r=n.n(i),a=n(75),l=n.n(a),s=n(11),c=n(296),u=n(285);o.prototype={messages:function(e){return e&&(this._messages=n.i(s.a)(n.i(u.b)(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":l()(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){function t(e){var t=void 0,n=void 0,o=[],i={};for(t=0;t1&&void 0!==arguments[1]?arguments[1]:{},c=arguments[2],d=e,f=a,p=c;if("function"==typeof f&&(p=f,f={}),!this.rules||0===Object.keys(this.rules).length)return void(p&&p());if(f.messages){var h=this.messages();h===u.a&&(h=n.i(u.b)()),n.i(s.a)(h,f.messages),f.messages=h}else f.messages=this.messages();var g=void 0,m=void 0,v={};(f.keys||Object.keys(this.rules)).forEach(function(t){g=i.rules[t],m=d[t],g.forEach(function(n){var o=n;"function"==typeof o.transform&&(d===e&&(d=r()({},d)),m=d[t]=o.transform(m)),o="function"==typeof o?{validator:o}:r()({},o),o.validator=i.getValidationMethod(o),o.field=t,o.fullField=o.fullField||t,o.type=i.getType(o),o.validator&&(v[t]=v[t]||[],v[t].push({rule:o,value:m,source:d,field:t}))})});var b={};n.i(s.b)(v,f,function(e,t){function i(e,t){return r()({},t,{fullField:c.fullField+"."+e})}function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],l=a;if(Array.isArray(l)||(l=[l]),l.length&&n.i(s.c)("async-validator:",l),l.length&&c.message&&(l=[].concat(c.message)),l=l.map(n.i(s.d)(c)),f.first&&l.length)return b[c.field]=1,t(l);if(u){if(c.required&&!e.value)return l=c.message?[].concat(c.message).map(n.i(s.d)(c)):f.error?[f.error(c,n.i(s.e)(f.messages.required,c.field))]:[],t(l);var d={};if(c.defaultField)for(var p in e.value)e.value.hasOwnProperty(p)&&(d[p]=c.defaultField);d=r()({},d,e.rule.fields);for(var h in d)if(d.hasOwnProperty(h)){var g=Array.isArray(d[h])?d[h]:[d[h]];d[h]=g.map(i.bind(null,h))}var m=new o(d);m.messages(f.messages),e.rule.options&&(e.rule.options.messages=f.messages,e.rule.options.error=f.error),m.validate(e.value,e.rule.options||f,function(e){t(e&&e.length?l.concat(e):e)})}else t(l)}var c=e.rule,u=!("object"!==c.type&&"array"!==c.type||"object"!==l()(c.fields)&&"object"!==l()(c.defaultField));u=u&&(c.required||!c.required&&e.value),c.field=e.field;var d=c.validator(c,e.value,a,e.source,f);d&&d.then&&d.then(function(){return a()},function(e){return a(e)})},function(e){t(e)})},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!c.a.hasOwnProperty(e.type))throw new Error(n.i(s.e)("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),n=t.indexOf("message");return-1!==n&&t.splice(n,1),1===t.length&&"required"===t[0]?c.a.required:c.a[this.getType(e)]||!1}},o.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");c.a[e]=t},o.messages=u.a,t.default=o},function(e,t,n){"use strict";function o(){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 e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}t.b=o,n.d(t,"a",function(){return i});var i=o()},function(e,t,n){"use strict";function o(e,t,n,o,a){e[r]=Array.isArray(e[r])?e[r]:[],-1===e[r].indexOf(t)&&o.push(i.e(a.messages[r],e.fullField,e[r].join(", ")))}var i=n(11),r="enum";t.a=o},function(e,t,n){"use strict";function o(e,t,n,o,r){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||o.push(i.e(r.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){var a=new RegExp(e.pattern);a.test(t)||o.push(i.e(r.messages.pattern.mismatch,e.fullField,t,e.pattern))}}var i=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,n,o,r){var a="number"==typeof e.len,l="number"==typeof e.min,s="number"==typeof e.max,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=t,d=null,f="number"==typeof t,p="string"==typeof t,h=Array.isArray(t);if(f?d="number":p?d="string":h&&(d="array"),!d)return!1;h&&(u=t.length),p&&(u=t.replace(c,"_").length),a?u!==e.len&&o.push(i.e(r.messages[d].len,e.fullField,e.len)):l&&!s&&ue.max?o.push(i.e(r.messages[d].max,e.fullField,e.max)):l&&s&&(ue.max)&&o.push(i.e(r.messages[d].range,e.fullField,e.min,e.max))}var i=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,i,s){if(e.required&&void 0===t)return void n.i(l.a)(e,t,o,i,s);var u=["integer","float","array","regexp","object","method","email","number","date","url","hex"],d=e.type;u.indexOf(d)>-1?c[d](t)||i.push(a.e(s.messages.types[d],e.fullField,e.type)):d&&(void 0===t?"undefined":r()(t))!==e.type&&i.push(a.e(s.messages.types[d],e.fullField,e.type))}var i=n(75),r=n.n(i),a=n(11),l=n(141),s={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},c={integer:function(e){return c.number(e)&&parseInt(e,10)===e},float:function(e){return c.number(e)&&!c.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":r()(e))&&!c.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(s.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(s.url)},hex:function(e){return"string"==typeof e&&!!e.match(s.hex)}};t.a=o},function(e,t,n){"use strict";function o(e,t,n,o,r){(/^\s+$/.test(t)||""===t)&&o.push(i.e(r.messages.whitespace,e.fullField))}var i=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t,"array")&&!e.required)return o();i.a.required(e,t,a,s,l,"array"),n.i(r.f)(t,"array")||(i.a.type(e,t,a,s,l),i.a.range(e,t,a,s,l))}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(i.f)(t)&&!e.required)return o();r.a.required(e,t,a,s,l),void 0!==t&&r.a.type(e,t,a,s,l)}o(s)}var i=n(11),r=n(20);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();if(i.a.required(e,t,a,s,l),!n.i(r.f)(t)){var c=void 0;c="number"==typeof t?new Date(t):t,i.a.type(e,c,a,s,l),c&&i.a.range(e,c.getTime(),a,s,l)}}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,l,s){var c=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();i.a.required(e,t,l,c,s),t&&i.a[a](e,t,l,c,s)}o(c)}var i=n(20),r=n(11),a="enum";t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();i.a.required(e,t,a,s,l),void 0!==t&&(i.a.type(e,t,a,s,l),i.a.range(e,t,a,s,l))}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";var o=n(304),i=n(298),r=n(299),a=n(292),l=n(302),s=n(297),c=n(295),u=n(291),d=n(300),f=n(294),p=n(301),h=n(293),g=n(303),m=n(305);t.a={string:o.a,method:i.a,number:r.a,boolean:a.a,regexp:l.a,integer:s.a,float:c.a,array:u.a,object:d.a,enum:f.a,pattern:p.a,date:h.a,url:m.a,hex:m.a,email:m.a,required:g.a}},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();i.a.required(e,t,a,s,l),void 0!==t&&(i.a.type(e,t,a,s,l),i.a.range(e,t,a,s,l))}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();i.a.required(e,t,a,s,l),void 0!==t&&i.a.type(e,t,a,s,l)}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();i.a.required(e,t,a,s,l),void 0!==t&&(i.a.type(e,t,a,s,l),i.a.range(e,t,a,s,l))}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();i.a.required(e,t,a,s,l),void 0!==t&&i.a.type(e,t,a,s,l)}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t,"string")&&!e.required)return o();i.a.required(e,t,a,s,l),n.i(r.f)(t,"string")||i.a.pattern(e,t,a,s,l)}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t)&&!e.required)return o();i.a.required(e,t,a,s,l),n.i(r.f)(t)||i.a.type(e,t,a,s,l)}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,n,o,i){var l=[],s=Array.isArray(t)?"array":void 0===t?"undefined":r()(t);a.a.required(e,t,o,l,i,s),n(l)}var i=n(75),r=n.n(i),a=n(20);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t,"string")&&!e.required)return o();i.a.required(e,t,a,s,l,"string"),n.i(r.f)(t,"string")||(i.a.type(e,t,a,s,l),i.a.range(e,t,a,s,l),i.a.pattern(e,t,a,s,l),!0===e.whitespace&&i.a.whitespace(e,t,a,s,l))}o(s)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";function o(e,t,o,a,l){var s=e.type,c=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(n.i(r.f)(t,s)&&!e.required)return o();i.a.required(e,t,a,c,l,s),n.i(r.f)(t,s)||i.a.type(e,t,a,c,l)}o(c)}var i=n(20),r=n(11);t.a=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(280),i=(n.n(o),n(9)),r=(n.n(i),n(267)),a=n.n(r),l=n(273),s=(n.n(l),n(260)),c=n.n(s),u=n(277),d=(n.n(u),n(264)),f=n.n(d),p=n(274),h=(n.n(p),n(261)),g=n.n(h),m=n(275),v=(n.n(m),n(262)),b=n.n(v),x=n(278),y=(n.n(x),n(265)),_=n.n(y),w=n(279),k=(n.n(w),n(266)),S=n.n(k),M=n(269),C=(n.n(M),n(257)),A=n.n(C),T=n(276),E=(n.n(T),n(263)),I=n.n(E),O=n(270),L=(n.n(O),n(258)),P=n.n(L),D=n(271),z=(n.n(D),n(259)),R=n.n(z),N=n(268),B=(n.n(N),n(256)),F=n.n(B),V=n(21),j=n(140),$=n.n(j),H=n(139),W=n.n(H),G=n(272),U=(n.n(G),n(281)),q=(n.n(U),n(282)),Y=n(255),Z=n(283);n.n(Z),W.a.use($.a),V.default.use(F.a),V.default.use(R.a),V.default.use(P.a),V.default.use(I.a),V.default.use(A.a),V.default.use(S.a),V.default.use(_.a),V.default.use(b.a),V.default.use(g.a),V.default.use(f.a),V.default.use(c.a),V.default.use(a.a),V.default.config.productionTip=!1,new V.default({el:"#app",router:Y.a,template:"",components:{App:q.a}})},function(e,t,n){e.exports={default:n(312),__esModule:!0}},function(e,t,n){e.exports={default:n(313),__esModule:!0}},function(e,t,n){e.exports={default:n(314),__esModule:!0}},function(e,t,n){"use strict";function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function i(e){var t=o(e),n=t[0],i=t[1];return 3*(n+i)/4-i}function r(e,t,n){return 3*(t+n)/4-n}function a(e){var t,n,i=o(e),a=i[0],l=i[1],s=new f(r(e,a,l)),c=0,u=l>0?a-4:a;for(n=0;n>16&255,s[c++]=t>>8&255,s[c++]=255&t;return 2===l&&(t=d[e.charCodeAt(n)]<<2|d[e.charCodeAt(n+1)]>>4,s[c++]=255&t),1===l&&(t=d[e.charCodeAt(n)]<<10|d[e.charCodeAt(n+1)]<<4|d[e.charCodeAt(n+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t),s}function l(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function s(e,t,n){for(var o,i=[],r=t;ra?a:r+16383));return 1===o?(t=e[n-1],i.push(u[t>>2]+u[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(u[t>>10]+u[t>>4&63]+u[t<<2&63]+"=")),i.join("")}t.byteLength=i,t.toByteArray=a,t.fromByteArray=c;for(var u=[],d=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,g=p.length;h=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),r.alloc(+e)}function m(e,t){if(r.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(o)return W(e).length;t=(""+t).toLowerCase(),o=!0}}function v(e,t,n){var o=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return L(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return I(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return A(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(o)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),o=!0}}function b(e,t,n){var o=e[t];e[t]=e[n],e[n]=o}function x(e,t,n,o,i){if(0===e.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=r.from(t,o)),r.isBuffer(t))return 0===t.length?-1:y(e,t,n,o,i);if("number"==typeof t)return t&=255,r.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,o,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,o,i){function r(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,l=e.length,s=t.length;if(void 0!==o&&("ucs2"===(o=String(o).toLowerCase())||"ucs-2"===o||"utf16le"===o||"utf-16le"===o)){if(e.length<2||t.length<2)return-1;a=2,l/=2,s/=2,n/=2}var c;if(i){var u=-1;for(c=n;cl&&(n=l-s),c=n;c>=0;c--){for(var d=!0,f=0;fi&&(o=i):o=i;var r=t.length;if(r%2!=0)throw new TypeError("Invalid hex string");o>r/2&&(o=r/2);for(var a=0;a239?4:r>223?3:r>191?2:1;if(i+l<=n){var s,c,u,d;switch(l){case 1:r<128&&(a=r);break;case 2:128==(192&(s=e[i+1]))&&(d=(31&r)<<6|63&s)>127&&(a=d);break;case 3:s=e[i+1],c=e[i+2],128==(192&s)&&128==(192&c)&&(d=(15&r)<<12|(63&s)<<6|63&c)>2047&&(d<55296||d>57343)&&(a=d);break;case 4:s=e[i+1],c=e[i+2],u=e[i+3],128==(192&s)&&128==(192&c)&&128==(192&u)&&(d=(15&r)<<18|(63&s)<<12|(63&c)<<6|63&u)>65535&&d<1114112&&(a=d)}}null===a?(a=65533,l=1):a>65535&&(a-=65536,o.push(a>>>10&1023|55296),a=56320|1023&a),o.push(a),i+=l}return E(o)}function E(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var n="",o=0;oo)&&(n=o);for(var i="",r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function z(e,t,n,o,i,a){if(!r.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function R(e,t,n,o){t<0&&(t=65535+t+1);for(var i=0,r=Math.min(e.length-n,2);i>>8*(o?i:1-i)}function N(e,t,n,o){t<0&&(t=4294967295+t+1);for(var i=0,r=Math.min(e.length-n,4);i>>8*(o?i:3-i)&255}function B(e,t,n,o,i,r){if(n+o>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function F(e,t,n,o,i){return i||B(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),K.write(e,t,n,o,23,4),n+4}function V(e,t,n,o,i){return i||B(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),K.write(e,t,n,o,52,8),n+8}function j(e){if(e=$(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function $(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function H(e){return e<16?"0"+e.toString(16):e.toString(16)}function W(e,t){t=t||1/0;for(var n,o=e.length,i=null,r=[],a=0;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&r.push(239,191,189);continue}if(a+1===o){(t-=3)>-1&&r.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&r.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&r.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;r.push(n)}else if(n<2048){if((t-=2)<0)break;r.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;r.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;r.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return r}function G(e){for(var t=[],n=0;n>8,i=n%256,r.push(i),r.push(o);return r}function q(e){return X.toByteArray(j(e))}function Y(e,t,n,o){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Z(e){return e!==e}var X=n(310),K=n(618),J=n(619);t.Buffer=r,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,r.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),r.poolSize=8192,r._augment=function(e){return e.__proto__=r.prototype,e},r.from=function(e,t,n){return a(null,e,t,n)},r.TYPED_ARRAY_SUPPORT&&(r.prototype.__proto__=Uint8Array.prototype,r.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&r[Symbol.species]===r&&Object.defineProperty(r,Symbol.species,{value:null,configurable:!0})),r.alloc=function(e,t,n){return s(null,e,t,n)},r.allocUnsafe=function(e){return c(null,e)},r.allocUnsafeSlow=function(e){return c(null,e)},r.isBuffer=function(e){return!(null==e||!e._isBuffer)},r.compare=function(e,t){if(!r.isBuffer(e)||!r.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,o=t.length,i=0,a=Math.min(n,o);i0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},r.prototype.compare=function(e,t,n,o,i){if(!r.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===o&&(o=0),void 0===i&&(i=this.length),t<0||n>e.length||o<0||i>this.length)throw new RangeError("out of range index");if(o>=i&&t>=n)return 0;if(o>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,o>>>=0,i>>>=0,this===e)return 0;for(var a=i-o,l=n-t,s=Math.min(a,l),c=this.slice(o,i),u=e.slice(t,n),d=0;di)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");o||(o="utf8");for(var r=!1;;)switch(o){case"hex":return _(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return M(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(r)throw new TypeError("Unknown encoding: "+o);o=(""+o).toLowerCase(),r=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;r.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n)<0&&(e=0):e>n&&(e=n),t<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)o+=this[e+--t]*i;return o},r.prototype.readUInt8=function(e,t){return t||D(e,1,this.length),this[e]},r.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},r.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},r.prototype.readUInt32LE=function(e,t){return t||D(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},r.prototype.readUInt32BE=function(e,t){return t||D(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},r.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||D(e,t,this.length);for(var o=this[e],i=1,r=0;++r=i&&(o-=Math.pow(2,8*t)),o},r.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||D(e,t,this.length);for(var o=t,i=1,r=this[e+--o];o>0&&(i*=256);)r+=this[e+--o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},r.prototype.readInt8=function(e,t){return t||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},r.prototype.readInt16LE=function(e,t){t||D(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},r.prototype.readInt16BE=function(e,t){t||D(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},r.prototype.readInt32LE=function(e,t){return t||D(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},r.prototype.readInt32BE=function(e,t){return t||D(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},r.prototype.readFloatLE=function(e,t){return t||D(e,4,this.length),K.read(this,e,!0,23,4)},r.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),K.read(this,e,!1,23,4)},r.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),K.read(this,e,!0,52,8)},r.prototype.readDoubleBE=function(e,t){return t||D(e,8,this.length),K.read(this,e,!1,52,8)},r.prototype.writeUIntLE=function(e,t,n,o){e=+e,t|=0,n|=0,o||z(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,r=0;for(this[t]=255&e;++r=0&&(r*=256);)this[t+i]=e/r&255;return t+n},r.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,1,255,0),r.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},r.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,2,65535,0),r.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},r.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,2,65535,0),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},r.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,4,4294967295,0),r.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},r.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,4,4294967295,0),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},r.prototype.writeIntLE=function(e,t,n,o){if(e=+e,t|=0,!o){var i=Math.pow(2,8*n-1);z(this,e,t,n,i-1,-i)}var r=0,a=1,l=0;for(this[t]=255&e;++r>0)-l&255;return t+n},r.prototype.writeIntBE=function(e,t,n,o){if(e=+e,t|=0,!o){var i=Math.pow(2,8*n-1);z(this,e,t,n,i-1,-i)}var r=n-1,a=1,l=0;for(this[t+r]=255&e;--r>=0&&(a*=256);)e<0&&0===l&&0!==this[t+r+1]&&(l=1),this[t+r]=(e/a>>0)-l&255;return t+n},r.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,1,127,-128),r.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},r.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,2,32767,-32768),r.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},r.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,2,32767,-32768),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},r.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,4,2147483647,-2147483648),r.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},r.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||z(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},r.prototype.writeFloatLE=function(e,t,n){return F(this,e,t,!0,n)},r.prototype.writeFloatBE=function(e,t,n){return F(this,e,t,!1,n)},r.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},r.prototype.writeDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},r.prototype.copy=function(e,t,n,o){if(n||(n=0),o||0===o||(o=this.length),t>=e.length&&(t=e.length),t||(t=0),o>0&&o=this.length)throw new RangeError("sourceStart out of bounds");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(a<1e3||!r.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;au;)if((l=s[u++])!=l)return!0}else for(;c>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var o=n(315);e.exports=function(e,t,n){if(o(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,i){return e.call(t,n,o,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var o=n(78),i=n(105),r=n(79);e.exports=function(e){var t=o(e),n=i.f;if(n)for(var a,l=n(e),s=r.f,c=0;l.length>c;)s.call(e,a=l[c++])&&t.push(a);return t}},function(e,t,n){var o=n(33).document;e.exports=o&&o.documentElement},function(e,t,n){var o=n(153);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,n){"use strict";var o=n(158),i=n(80),r=n(106),a={};n(51)(a,n(54)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=o(a,{next:i(1,n)}),r(e,t+" Iterator")}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var o=n(81)("meta"),i=n(64),r=n(41),a=n(52).f,l=0,s=Object.isExtensible||function(){return!0},c=!n(63)(function(){return s(Object.preventExtensions({}))}),u=function(e){a(e,o,{value:{i:"O"+ ++l,w:{}}})},d=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!r(e,o)){if(!s(e))return"F";if(!t)return"E";u(e)}return e[o].i},f=function(e,t){if(!r(e,o)){if(!s(e))return!0;if(!t)return!1;u(e)}return e[o].w},p=function(e){return c&&h.NEED&&s(e)&&!r(e,o)&&u(e),e},h=e.exports={KEY:o,NEED:!1,fastKey:d,getWeak:f,onFreeze:p}},function(e,t,n){"use strict";var o=n(40),i=n(78),r=n(105),a=n(79),l=n(110),s=n(156),c=Object.assign;e.exports=!c||n(63)(function(){var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join("")!=o})?function(e,t){for(var n=l(e),c=arguments.length,u=1,d=r.f,f=a.f;c>u;)for(var p,h=s(arguments[u++]),g=d?i(h).concat(d(h)):i(h),m=g.length,v=0;m>v;)p=g[v++],o&&!f.call(h,p)||(n[p]=h[p]);return n}:c},function(e,t,n){var o=n(52),i=n(76),r=n(78);e.exports=n(40)?Object.defineProperties:function(e,t){i(e);for(var n,a=r(t),l=a.length,s=0;l>s;)o.f(e,n=a[s++],t[n]);return e}},function(e,t,n){var o=n(79),i=n(80),r=n(53),a=n(111),l=n(41),s=n(155),c=Object.getOwnPropertyDescriptor;t.f=n(40)?c:function(e,t){if(e=r(e),t=a(t,!0),s)try{return c(e,t)}catch(e){}if(l(e,t))return i(!o.f.call(e,t),e[t])}},function(e,t,n){var o=n(53),i=n(159).f,r={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(e){try{return i(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==r.call(e)?l(e):i(o(e))}},function(e,t,n){var o=n(41),i=n(110),r=n(107)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),o(e,r)?e[r]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){var o=n(109),i=n(101);e.exports=function(e){return function(t,n){var r,a,l=String(i(t)),s=o(n),c=l.length;return s<0||s>=c?e?"":void 0:(r=l.charCodeAt(s),r<55296||r>56319||s+1===c||(a=l.charCodeAt(s+1))<56320||a>57343?e?l.charAt(s):r:e?l.slice(s,s+2):a-56320+(r-55296<<10)+65536)}}},function(e,t,n){var o=n(109),i=Math.max,r=Math.min;e.exports=function(e,t){return e=o(e),e<0?i(e+t,0):r(e,t)}},function(e,t,n){var o=n(109),i=Math.min;e.exports=function(e){return e>0?i(o(e),9007199254740991):0}},function(e,t,n){"use strict";var o=n(316),i=n(323),r=n(104),a=n(53);e.exports=n(157)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),r.Arguments=r.Array,o("keys"),o("values"),o("entries")},function(e,t,n){var o=n(103);o(o.S+o.F,"Object",{assign:n(325)})},function(e,t){},function(e,t,n){"use strict";var o=n(330)(!0);n(157)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=o(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";var o=n(33),i=n(41),r=n(40),a=n(103),l=n(161),s=n(324).KEY,c=n(63),u=n(108),d=n(106),f=n(81),p=n(54),h=n(113),g=n(112),m=n(319),v=n(321),b=n(76),x=n(64),y=n(110),_=n(53),w=n(111),k=n(80),S=n(158),M=n(328),C=n(327),A=n(105),T=n(52),E=n(78),I=C.f,O=T.f,L=M.f,P=o.Symbol,D=o.JSON,z=D&&D.stringify,R=p("_hidden"),N=p("toPrimitive"),B={}.propertyIsEnumerable,F=u("symbol-registry"),V=u("symbols"),j=u("op-symbols"),$=Object.prototype,H="function"==typeof P&&!!A.f,W=o.QObject,G=!W||!W.prototype||!W.prototype.findChild,U=r&&c(function(){return 7!=S(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(e,t,n){var o=I($,t);o&&delete $[t],O(e,t,n),o&&e!==$&&O($,t,o)}:O,q=function(e){var t=V[e]=S(P.prototype);return t._k=e,t},Y=H&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},Z=function(e,t,n){return e===$&&Z(j,t,n),b(e),t=w(t,!0),b(n),i(V,t)?(n.enumerable?(i(e,R)&&e[R][t]&&(e[R][t]=!1),n=S(n,{enumerable:k(0,!1)})):(i(e,R)||O(e,R,k(1,{})),e[R][t]=!0),U(e,t,n)):O(e,t,n)},X=function(e,t){b(e);for(var n,o=m(t=_(t)),i=0,r=o.length;r>i;)Z(e,n=o[i++],t[n]);return e},K=function(e,t){return void 0===t?S(e):X(S(e),t)},J=function(e){var t=B.call(this,e=w(e,!0));return!(this===$&&i(V,e)&&!i(j,e))&&(!(t||!i(this,e)||!i(V,e)||i(this,R)&&this[R][e])||t)},Q=function(e,t){if(e=_(e),t=w(t,!0),e!==$||!i(V,t)||i(j,t)){var n=I(e,t);return!n||!i(V,t)||i(e,R)&&e[R][t]||(n.enumerable=!0),n}},ee=function(e){for(var t,n=L(_(e)),o=[],r=0;n.length>r;)i(V,t=n[r++])||t==R||t==s||o.push(t);return o},te=function(e){for(var t,n=e===$,o=L(n?j:_(e)),r=[],a=0;o.length>a;)!i(V,t=o[a++])||n&&!i($,t)||r.push(V[t]);return r};H||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===$&&t.call(j,n),i(this,R)&&i(this[R],e)&&(this[R][e]=!1),U(this,e,k(1,n))};return r&&G&&U($,e,{configurable:!0,set:t}),q(e)},l(P.prototype,"toString",function(){return this._k}),C.f=Q,T.f=Z,n(159).f=M.f=ee,n(79).f=J,A.f=te,r&&!n(77)&&l($,"propertyIsEnumerable",J,!0),h.f=function(e){return q(p(e))}),a(a.G+a.W+a.F*!H,{Symbol:P});for(var ne="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),oe=0;ne.length>oe;)p(ne[oe++]);for(var ie=E(p.store),re=0;ie.length>re;)g(ie[re++]);a(a.S+a.F*!H,"Symbol",{for:function(e){return i(F,e+="")?F[e]:F[e]=P(e)},keyFor:function(e){if(!Y(e))throw TypeError(e+" is not a symbol!");for(var t in F)if(F[t]===e)return t},useSetter:function(){G=!0},useSimple:function(){G=!1}}),a(a.S+a.F*!H,"Object",{create:K,defineProperty:Z,defineProperties:X,getOwnPropertyDescriptor:Q,getOwnPropertyNames:ee,getOwnPropertySymbols:te});var ae=c(function(){A.f(1)});a(a.S+a.F*ae,"Object",{getOwnPropertySymbols:function(e){return A.f(y(e))}}),D&&a(a.S+a.F*(!H||c(function(){var e=P();return"[null]"!=z([e])||"{}"!=z({a:e})||"{}"!=z(Object(e))})),"JSON",{stringify:function(e){for(var t,n,o=[e],i=1;arguments.length>i;)o.push(arguments[i++]);if(n=t=o[1],(x(t)||void 0!==e)&&!Y(e))return v(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!Y(t))return t}),o[1]=t,z.apply(D,o)}}),P.prototype[N]||n(51)(P.prototype,N,P.prototype.valueOf),d(P,"Symbol"),d(Math,"Math",!0),d(o.JSON,"JSON",!0)},function(e,t,n){n(112)("asyncIterator")},function(e,t,n){n(112)("observable")},function(e,t,n){n(333);for(var o=n(33),i=n(51),r=n(104),a=n(54)("toStringTag"),l="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s.el-button.is-active,.el-button-group>.el-button.is-disabled,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,".el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24{position:relative}[class*=el-col-]{float:left;box-sizing:border-box}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}",""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,'.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,".el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}@font-face{font-family:element-icons;src:url("+n(226)+') format("woff"),url('+n(225)+') format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\\E6A0"}.el-icon-ice-cream-square:before{content:"\\E6A3"}.el-icon-lollipop:before{content:"\\E6A4"}.el-icon-potato-strips:before{content:"\\E6A5"}.el-icon-milk-tea:before{content:"\\E6A6"}.el-icon-ice-drink:before{content:"\\E6A7"}.el-icon-ice-tea:before{content:"\\E6A9"}.el-icon-coffee:before{content:"\\E6AA"}.el-icon-orange:before{content:"\\E6AB"}.el-icon-pear:before{content:"\\E6AC"}.el-icon-apple:before{content:"\\E6AD"}.el-icon-cherry:before{content:"\\E6AE"}.el-icon-watermelon:before{content:"\\E6AF"}.el-icon-grape:before{content:"\\E6B0"}.el-icon-refrigerator:before{content:"\\E6B1"}.el-icon-goblet-square-full:before{content:"\\E6B2"}.el-icon-goblet-square:before{content:"\\E6B3"}.el-icon-goblet-full:before{content:"\\E6B4"}.el-icon-goblet:before{content:"\\E6B5"}.el-icon-cold-drink:before{content:"\\E6B6"}.el-icon-coffee-cup:before{content:"\\E6B8"}.el-icon-water-cup:before{content:"\\E6B9"}.el-icon-hot-water:before{content:"\\E6BA"}.el-icon-ice-cream:before{content:"\\E6BB"}.el-icon-dessert:before{content:"\\E6BC"}.el-icon-sugar:before{content:"\\E6BD"}.el-icon-tableware:before{content:"\\E6BE"}.el-icon-burger:before{content:"\\E6BF"}.el-icon-knife-fork:before{content:"\\E6C1"}.el-icon-fork-spoon:before{content:"\\E6C2"}.el-icon-chicken:before{content:"\\E6C3"}.el-icon-food:before{content:"\\E6C4"}.el-icon-dish-1:before{content:"\\E6C5"}.el-icon-dish:before{content:"\\E6C6"}.el-icon-moon-night:before{content:"\\E6EE"}.el-icon-moon:before{content:"\\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\\E6F1"}.el-icon-partly-cloudy:before{content:"\\E6F2"}.el-icon-cloudy:before{content:"\\E6F3"}.el-icon-sunny:before{content:"\\E6F6"}.el-icon-sunset:before{content:"\\E6F7"}.el-icon-sunrise-1:before{content:"\\E6F8"}.el-icon-sunrise:before{content:"\\E6F9"}.el-icon-heavy-rain:before{content:"\\E6FA"}.el-icon-lightning:before{content:"\\E6FB"}.el-icon-light-rain:before{content:"\\E6FC"}.el-icon-wind-power:before{content:"\\E6FD"}.el-icon-baseball:before{content:"\\E712"}.el-icon-soccer:before{content:"\\E713"}.el-icon-football:before{content:"\\E715"}.el-icon-basketball:before{content:"\\E716"}.el-icon-ship:before{content:"\\E73F"}.el-icon-truck:before{content:"\\E740"}.el-icon-bicycle:before{content:"\\E741"}.el-icon-mobile-phone:before{content:"\\E6D3"}.el-icon-service:before{content:"\\E6D4"}.el-icon-key:before{content:"\\E6E2"}.el-icon-unlock:before{content:"\\E6E4"}.el-icon-lock:before{content:"\\E6E5"}.el-icon-watch:before{content:"\\E6FE"}.el-icon-watch-1:before{content:"\\E6FF"}.el-icon-timer:before{content:"\\E702"}.el-icon-alarm-clock:before{content:"\\E703"}.el-icon-map-location:before{content:"\\E704"}.el-icon-delete-location:before{content:"\\E705"}.el-icon-add-location:before{content:"\\E706"}.el-icon-location-information:before{content:"\\E707"}.el-icon-location-outline:before{content:"\\E708"}.el-icon-location:before{content:"\\E79E"}.el-icon-place:before{content:"\\E709"}.el-icon-discover:before{content:"\\E70A"}.el-icon-first-aid-kit:before{content:"\\E70B"}.el-icon-trophy-1:before{content:"\\E70C"}.el-icon-trophy:before{content:"\\E70D"}.el-icon-medal:before{content:"\\E70E"}.el-icon-medal-1:before{content:"\\E70F"}.el-icon-stopwatch:before{content:"\\E710"}.el-icon-mic:before{content:"\\E711"}.el-icon-copy-document:before{content:"\\E718"}.el-icon-full-screen:before{content:"\\E719"}.el-icon-switch-button:before{content:"\\E71B"}.el-icon-aim:before{content:"\\E71C"}.el-icon-crop:before{content:"\\E71D"}.el-icon-odometer:before{content:"\\E71E"}.el-icon-time:before{content:"\\E71F"}.el-icon-bangzhu:before{content:"\\E724"}.el-icon-close-notification:before{content:"\\E726"}.el-icon-microphone:before{content:"\\E727"}.el-icon-turn-off-microphone:before{content:"\\E728"}.el-icon-position:before{content:"\\E729"}.el-icon-postcard:before{content:"\\E72A"}.el-icon-message:before{content:"\\E72B"}.el-icon-chat-line-square:before{content:"\\E72D"}.el-icon-chat-dot-square:before{content:"\\E72E"}.el-icon-chat-dot-round:before{content:"\\E72F"}.el-icon-chat-square:before{content:"\\E730"}.el-icon-chat-line-round:before{content:"\\E731"}.el-icon-chat-round:before{content:"\\E732"}.el-icon-set-up:before{content:"\\E733"}.el-icon-turn-off:before{content:"\\E734"}.el-icon-open:before{content:"\\E735"}.el-icon-connection:before{content:"\\E736"}.el-icon-link:before{content:"\\E737"}.el-icon-cpu:before{content:"\\E738"}.el-icon-thumb:before{content:"\\E739"}.el-icon-female:before{content:"\\E73A"}.el-icon-male:before{content:"\\E73B"}.el-icon-guide:before{content:"\\E73C"}.el-icon-news:before{content:"\\E73E"}.el-icon-price-tag:before{content:"\\E744"}.el-icon-discount:before{content:"\\E745"}.el-icon-wallet:before{content:"\\E747"}.el-icon-coin:before{content:"\\E748"}.el-icon-money:before{content:"\\E749"}.el-icon-bank-card:before{content:"\\E74A"}.el-icon-box:before{content:"\\E74B"}.el-icon-present:before{content:"\\E74C"}.el-icon-sell:before{content:"\\E6D5"}.el-icon-sold-out:before{content:"\\E6D6"}.el-icon-shopping-bag-2:before{content:"\\E74D"}.el-icon-shopping-bag-1:before{content:"\\E74E"}.el-icon-shopping-cart-2:before{content:"\\E74F"}.el-icon-shopping-cart-1:before{content:"\\E750"}.el-icon-shopping-cart-full:before{content:"\\E751"}.el-icon-smoking:before{content:"\\E752"}.el-icon-no-smoking:before{content:"\\E753"}.el-icon-house:before{content:"\\E754"}.el-icon-table-lamp:before{content:"\\E755"}.el-icon-school:before{content:"\\E756"}.el-icon-office-building:before{content:"\\E757"}.el-icon-toilet-paper:before{content:"\\E758"}.el-icon-notebook-2:before{content:"\\E759"}.el-icon-notebook-1:before{content:"\\E75A"}.el-icon-files:before{content:"\\E75B"}.el-icon-collection:before{content:"\\E75C"}.el-icon-receiving:before{content:"\\E75D"}.el-icon-suitcase-1:before{content:"\\E760"}.el-icon-suitcase:before{content:"\\E761"}.el-icon-film:before{content:"\\E763"}.el-icon-collection-tag:before{content:"\\E765"}.el-icon-data-analysis:before{content:"\\E766"}.el-icon-pie-chart:before{content:"\\E767"}.el-icon-data-board:before{content:"\\E768"}.el-icon-data-line:before{content:"\\E76D"}.el-icon-reading:before{content:"\\E769"}.el-icon-magic-stick:before{content:"\\E76A"}.el-icon-coordinate:before{content:"\\E76B"}.el-icon-mouse:before{content:"\\E76C"}.el-icon-brush:before{content:"\\E76E"}.el-icon-headset:before{content:"\\E76F"}.el-icon-umbrella:before{content:"\\E770"}.el-icon-scissors:before{content:"\\E771"}.el-icon-mobile:before{content:"\\E773"}.el-icon-attract:before{content:"\\E774"}.el-icon-monitor:before{content:"\\E775"}.el-icon-search:before{content:"\\E778"}.el-icon-takeaway-box:before{content:"\\E77A"}.el-icon-paperclip:before{content:"\\E77D"}.el-icon-printer:before{content:"\\E77E"}.el-icon-document-add:before{content:"\\E782"}.el-icon-document:before{content:"\\E785"}.el-icon-document-checked:before{content:"\\E786"}.el-icon-document-copy:before{content:"\\E787"}.el-icon-document-delete:before{content:"\\E788"}.el-icon-document-remove:before{content:"\\E789"}.el-icon-tickets:before{content:"\\E78B"}.el-icon-folder-checked:before{content:"\\E77F"}.el-icon-folder-delete:before{content:"\\E780"}.el-icon-folder-remove:before{content:"\\E781"}.el-icon-folder-add:before{content:"\\E783"}.el-icon-folder-opened:before{content:"\\E784"}.el-icon-folder:before{content:"\\E78A"}.el-icon-edit-outline:before{content:"\\E764"}.el-icon-edit:before{content:"\\E78C"}.el-icon-date:before{content:"\\E78E"}.el-icon-c-scale-to-original:before{content:"\\E7C6"}.el-icon-view:before{content:"\\E6CE"}.el-icon-loading:before{content:"\\E6CF"}.el-icon-rank:before{content:"\\E6D1"}.el-icon-sort-down:before{content:"\\E7C4"}.el-icon-sort-up:before{content:"\\E7C5"}.el-icon-sort:before{content:"\\E6D2"}.el-icon-finished:before{content:"\\E6CD"}.el-icon-refresh-left:before{content:"\\E6C7"}.el-icon-refresh-right:before{content:"\\E6C8"}.el-icon-refresh:before{content:"\\E6D0"}.el-icon-video-play:before{content:"\\E7C0"}.el-icon-video-pause:before{content:"\\E7C1"}.el-icon-d-arrow-right:before{content:"\\E6DC"}.el-icon-d-arrow-left:before{content:"\\E6DD"}.el-icon-arrow-up:before{content:"\\E6E1"}.el-icon-arrow-down:before{content:"\\E6DF"}.el-icon-arrow-right:before{content:"\\E6E0"}.el-icon-arrow-left:before{content:"\\E6DE"}.el-icon-top-right:before{content:"\\E6E7"}.el-icon-top-left:before{content:"\\E6E8"}.el-icon-top:before{content:"\\E6E6"}.el-icon-bottom:before{content:"\\E6EB"}.el-icon-right:before{content:"\\E6E9"}.el-icon-back:before{content:"\\E6EA"}.el-icon-bottom-right:before{content:"\\E6EC"}.el-icon-bottom-left:before{content:"\\E6ED"}.el-icon-caret-top:before{content:"\\E78F"}.el-icon-caret-bottom:before{content:"\\E790"}.el-icon-caret-right:before{content:"\\E791"}.el-icon-caret-left:before{content:"\\E792"}.el-icon-d-caret:before{content:"\\E79A"}.el-icon-share:before{content:"\\E793"}.el-icon-menu:before{content:"\\E798"}.el-icon-s-grid:before{content:"\\E7A6"}.el-icon-s-check:before{content:"\\E7A7"}.el-icon-s-data:before{content:"\\E7A8"}.el-icon-s-opportunity:before{content:"\\E7AA"}.el-icon-s-custom:before{content:"\\E7AB"}.el-icon-s-claim:before{content:"\\E7AD"}.el-icon-s-finance:before{content:"\\E7AE"}.el-icon-s-comment:before{content:"\\E7AF"}.el-icon-s-flag:before{content:"\\E7B0"}.el-icon-s-marketing:before{content:"\\E7B1"}.el-icon-s-shop:before{content:"\\E7B4"}.el-icon-s-open:before{content:"\\E7B5"}.el-icon-s-management:before{content:"\\E7B6"}.el-icon-s-ticket:before{content:"\\E7B7"}.el-icon-s-release:before{content:"\\E7B8"}.el-icon-s-home:before{content:"\\E7B9"}.el-icon-s-promotion:before{content:"\\E7BA"}.el-icon-s-operation:before{content:"\\E7BB"}.el-icon-s-unfold:before{content:"\\E7BC"}.el-icon-s-fold:before{content:"\\E7A9"}.el-icon-s-platform:before{content:"\\E7BD"}.el-icon-s-order:before{content:"\\E7BE"}.el-icon-s-cooperation:before{content:"\\E7BF"}.el-icon-bell:before{content:"\\E725"}.el-icon-message-solid:before{content:"\\E799"}.el-icon-video-camera:before{content:"\\E772"}.el-icon-video-camera-solid:before{content:"\\E796"}.el-icon-camera:before{content:"\\E779"}.el-icon-camera-solid:before{content:"\\E79B"}.el-icon-download:before{content:"\\E77C"}.el-icon-upload2:before{content:"\\E77B"}.el-icon-upload:before{content:"\\E7C3"}.el-icon-picture-outline-round:before{content:"\\E75F"}.el-icon-picture-outline:before{content:"\\E75E"}.el-icon-picture:before{content:"\\E79F"}.el-icon-close:before{content:"\\E6DB"}.el-icon-check:before{content:"\\E6DA"}.el-icon-plus:before{content:"\\E6D9"}.el-icon-minus:before{content:"\\E6D8"}.el-icon-help:before{content:"\\E73D"}.el-icon-s-help:before{content:"\\E7B3"}.el-icon-circle-close:before{content:"\\E78D"}.el-icon-circle-check:before{content:"\\E720"}.el-icon-circle-plus-outline:before{content:"\\E723"}.el-icon-remove-outline:before{content:"\\E722"}.el-icon-zoom-out:before{content:"\\E776"}.el-icon-zoom-in:before{content:"\\E777"}.el-icon-error:before{content:"\\E79D"}.el-icon-success:before{content:"\\E79C"}.el-icon-circle-plus:before{content:"\\E7A0"}.el-icon-remove:before{content:"\\E7A2"}.el-icon-info:before{content:"\\E7A1"}.el-icon-question:before{content:"\\E7A4"}.el-icon-warning-outline:before{content:"\\E6C9"}.el-icon-warning:before{content:"\\E7A3"}.el-icon-goods:before{content:"\\E7C2"}.el-icon-s-goods:before{content:"\\E7B2"}.el-icon-star-off:before{content:"\\E717"}.el-icon-star-on:before{content:"\\E797"}.el-icon-more-outline:before{content:"\\E6CC"}.el-icon-more:before{content:"\\E794"}.el-icon-phone-outline:before{content:"\\E6CB"}.el-icon-phone:before{content:"\\E795"}.el-icon-user:before{content:"\\E6E3"}.el-icon-user-solid:before{content:"\\E7A5"}.el-icon-setting:before{content:"\\E6CA"}.el-icon-s-tools:before{content:"\\E7AC"}.el-icon-delete:before{content:"\\E6D7"}.el-icon-delete-solid:before{content:"\\E7C9"}.el-icon-eleme:before{content:"\\E7C7"}.el-icon-platform-eleme:before{content:"\\E7CA"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-dialog,.el-pager li{background:#fff;-webkit-box-sizing:border-box}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-date-table,.el-pager,.el-table th{-webkit-user-select:none;-moz-user-select:none}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box;text-align:center}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}.el-dialog{position:relative;margin:0 auto 50px;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;box-sizing:border-box;background-color:#fff}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #409eff}.el-switch{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;box-sizing:border-box;background:#dcdfe6;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;transition:transform .3s;transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotate(180deg);border-radius:100%;color:#c0c4cc;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell,.el-table .cell{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table th>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div,.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder,.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409eff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder,.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;user-select:none;box-sizing:content-box}.el-slider__button,.el-slider__button-wrapper,.el-time-panel{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{animation:msgbox-fade-out .3s}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-collapse-item__arrow,.el-tabs__nav{-webkit-transition:-webkit-transform .3s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave .3s}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave .3s}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-upload-cover:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{vertical-align:middle;display:inline-block}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;user-select:none}.el-image-viewer__btn,.el-slider__button,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner:after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner:after{height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;padding:15px 15px 15px 20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-message.is-center{-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border:1px solid #ebeef5;background-color:#fff;color:#303133;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-ms-flex-positive:1;flex-grow:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:.3s}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#ecf5ff;border:1px solid #d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{transition:transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#409eff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder,.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;transform:translate3d(-50%,-50%,0);color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder,.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder,.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder,.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder,.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409eff;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-divider__text,.el-link{font-weight:500;font-size:14px}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;box-sizing:border-box;min-width:0}.el-aside,.el-header{-webkit-box-sizing:border-box}.el-container.is-vertical{-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto}.el-footer,.el-main{-webkit-box-sizing:border-box}.el-main{display:block;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;padding:20px}.el-footer,.el-main{box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;color:#303133}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);display:block}.el-image__error{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;user-select:none}.el-button,.el-checkbox,.el-image-viewer__btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{top:50%;width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__prev{transform:translateY(-50%);left:40px}.el-image-viewer__next{transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{animation:viewer-fade-in .3s}.viewer-fade-leave-active{animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-backtop,.el-page-header{display:-ms-flexbox}.el-calendar__title{color:#000;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-backtop,.el-calendar-table td.is-today{color:#409eff}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:20px;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:-ms-flexbox;display:flex;line-height:24px}.el-page-header__left{display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#dcdfe6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox,.el-checkbox-button__inner,.el-radio{font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-radio,.el-radio__input{line-height:1;white-space:nowrap;outline:0}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio{color:#606266;cursor:pointer;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:hsla(220,4%,58%,.3);transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:hsla(220,4%,58%,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:#606266;border-right:1px solid #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-avatar,.el-drawer{-webkit-box-sizing:border-box;overflow:hidden}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409eff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;box-sizing:border-box;text-align:center;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-drawer,.el-drawer__header{display:-ms-flexbox}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}.el-drawer.btt,.el-drawer.ttb,.el-drawer__container{left:0;right:0;width:100%}.el-drawer.ltr,.el-drawer.rtl,.el-drawer__container{top:0;bottom:0;height:100%}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);outline:0}.el-drawer.rtl{animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-ms-flex-align:center;align-items:center;color:#72767b;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{-ms-flex:1;flex:1}.el-drawer__title{margin:0;-ms-flex:1;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-ms-flex:1;flex:1}.el-drawer__body>*{box-sizing:border-box}.el-drawer__container{position:relative}.el-drawer-fade-enter-active{animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,'.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;list-style:none;position:relative;white-space:nowrap}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,'.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,'.el-row{position:relative;box-sizing:border-box}.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row--flex{display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,'.el-checkbox,.el-checkbox__input{white-space:nowrap;display:inline-block;position:relative}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox-button__inner,.el-tag{-webkit-box-sizing:border-box;white-space:nowrap}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-tag{background-color:#ecf5ff;border:1px solid #d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;box-sizing:border-box}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,'.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-table,.el-table__append-wrapper{overflow:hidden}.el-table--hidden,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox,.el-checkbox-button__inner,.el-table th{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-tag{background-color:#ecf5ff;border:1px solid #d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-table,.el-table__expanded-cell{background-color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-table{position:relative;box-sizing:border-box;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell,.el-table .cell{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table th>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}',""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,".el-tag{background-color:#ecf5ff;border:1px solid #d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}",""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,".el-form-item span{margin-left:15px}.demo-table-expand{font-size:0}.demo-table-expand label{width:90px;color:#99a9bf}.demo-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}",""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,"body{background-color:#fafafa;margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}#content{margin-top:20px;padding-right:40px}.brand{color:#fff;background-color:transparent;margin-left:20px;float:left;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}",""])},function(e,t,n){t=e.exports=n(17)(void 0),t.push([e.i,".source{border:1px solid #eaeefb;border-radius:4px;transition:.2s;padding:24px}.server_info{margin-left:40px;font-size:0}.server_info label{width:150px;color:#99a9bf}.server_info .el-form-item{margin-right:0;margin-bottom:0;width:100%}",""])},function(e,t,n){"use strict";function o(e){return!!e&&"object"==typeof e}function i(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||r(e)}function r(e){return e.$$typeof===p}function a(e){return Array.isArray(e)?[]:{}}function l(e,t){return t&&!0===t.clone&&d(e)?u(a(e),e,t):e}function s(e,t,n){var o=e.slice();return t.forEach(function(t,i){void 0===o[i]?o[i]=l(t,n):d(t)?o[i]=u(e[i],t,n):-1===e.indexOf(t)&&o.push(l(t,n))}),o}function c(e,t,n){var o={};return d(e)&&Object.keys(e).forEach(function(t){o[t]=l(e[t],n)}),Object.keys(t).forEach(function(i){d(t[i])&&e[i]?o[i]=u(e[i],t[i],n):o[i]=l(t[i],n)}),o}function u(e,t,n){var o=Array.isArray(t),i=Array.isArray(e),r=n||{arrayMerge:s};return o===i?o?(r.arrayMerge||s)(e,t,n):c(e,t,n):l(t,n)}var d=function(e){return o(e)&&!i(e)},f="function"==typeof Symbol&&Symbol.for,p=f?Symbol.for("react.element"):60103;u.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce(function(e,n){return u(e,n,t)})};var h=u;e.exports=h},function(e,t,n){var o=n(1);!function(){for(var e in o){if(null==o||!o.hasOwnProperty(e)||"default"===e||"__esModule"===e)return;t[e]=o[e]}}();var i=n(214);!function(){for(var e in i){if(null==i||!i.hasOwnProperty(e)||"default"===e||"__esModule"===e)return;t[e]=i[e]}}(),n(412),n(165),n(175),n(447),n(437),n(421),n(455),n(462),n(389),n(385),n(381),n(428),n(442),n(366),n(371),n(378),n(416),n(402),n(432),n(450),n(377),n(503),n(504),n(511),n(198),n(67),n(522),n(501),n(195),n(196),n(482),n(489),n(197),n(491),n(547),n(514),n(513),n(512),n(526),n(535),n(696),n(691)},function(e,t,n){function o(e){i.each(r,function(t){this[t]=i.bind(e[t],e)},this)}var i=n(0),r=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],a=o;e.exports=a},function(e,t,n){var o=n(166),i=o.extend({type:"series.bar",dependencies:["grid","polar"],brushSelector:"rect"});e.exports=i},function(e,t,n){function o(e,t,n){n.style.text=null,u.updateProps(n,{shape:{width:0}},t,e,function(){n.parent&&n.parent.remove(n)})}function i(e,t,n){n.style.text=null,u.updateProps(n,{shape:{r:n.shape.r0}},t,e,function(){n.parent&&n.parent.remove(n)})}function r(e,t,n,o,i,r,a,l){var s=t.getItemVisual(n,"color"),d=t.getItemVisual(n,"opacity"),p=o.getModel("itemStyle.normal"),h=o.getModel("itemStyle.emphasis").getBarItemStyle();l||e.setShape("r",p.get("barBorderRadius")||0),e.useStyle(c.defaults({fill:s,opacity:d},p.getBarItemStyle()));var g=o.getShallow("cursor");g&&e.attr("cursor",g);var m=a?i.height>0?"bottom":"top":i.width>0?"left":"right";l||f(e.style,h,o,s,r,n,m),u.setHoverStyle(e,h)}function a(e,t){var n=e.get(g)||0;return Math.min(n,Math.abs(t.width),Math.abs(t.height))}var l=n(4),s=(l.__DEV__,n(1)),c=n(0),u=n(2),d=n(167),f=d.setLabel,p=n(12),h=n(365),g=["itemStyle","normal","barBorderWidth"];c.extend(p.prototype,h);var m=s.extendChartView({type:"bar",render:function(e,t,n){var o=e.get("coordinateSystem");return"cartesian2d"!==o&&"polar"!==o||this._render(e,t,n),this.group},dispose:c.noop,_render:function(e,t,n){var a,l=this.group,s=e.getData(),c=this._data,d=e.coordinateSystem,f=d.getBaseAxis();"cartesian2d"===d.type?a=f.isHorizontal():"polar"===d.type&&(a="angle"===f.dim);var p=e.isAnimationEnabled()?e:null;s.diff(c).add(function(t){if(s.hasValue(t)){var n=s.getItemModel(t),o=b[d.type](s,t,n),i=v[d.type](s,t,n,o,a,p);s.setItemGraphicEl(t,i),l.add(i),r(i,s,t,n,o,e,a,"polar"===d.type)}}).update(function(t,n){var o=c.getItemGraphicEl(n);if(!s.hasValue(t))return void l.remove(o);var i=s.getItemModel(t),f=b[d.type](s,t,i);o?u.updateProps(o,{shape:f},p,t):o=v[d.type](s,t,i,f,a,p,!0),s.setItemGraphicEl(t,o),l.add(o),r(o,s,t,i,f,e,a,"polar"===d.type)}).remove(function(e){var t=c.getItemGraphicEl(e);"cartesian2d"===d.type?t&&o(e,p,t):t&&i(e,p,t)}).execute(),this._data=s},remove:function(e,t){var n=this.group,r=this._data;e.get("animation")?r&&r.eachItemGraphicEl(function(t){"sector"===t.type?i(t.dataIndex,e,t):o(t.dataIndex,e,t)}):n.removeAll()}}),v={cartesian2d:function(e,t,n,o,i,r,a){var l=new u.Rect({shape:c.extend({},o)});if(r){var s=l.shape,d=i?"height":"width",f={};s[d]=0,f[d]=o[d],u[a?"updateProps":"initProps"](l,{shape:f},r,t)}return l},polar:function(e,t,n,o,i,r,a){var l=new u.Sector({shape:c.extend({},o)});if(r){var s=l.shape,d=i?"r":"endAngle",f={};s[d]=i?0:o.startAngle,f[d]=o[d],u[a?"updateProps":"initProps"](l,{shape:f},r,t)}return l}},b={cartesian2d:function(e,t,n){var o=e.getItemLayout(t),i=a(n,o),r=o.width>0?1:-1,l=o.height>0?1:-1;return{x:o.x+r*i/2,y:o.y+l*i/2,width:o.width-r*i,height:o.height-l*i}},polar:function(e,t,n){var o=e.getItemLayout(t);return{cx:o.cx,cy:o.cy,r0:o.r0,r:o.r,startAngle:o.startAngle,endAngle:o.endAngle}}};e.exports=m},function(e,t,n){var o=n(166),i=o.extend({type:"series.pictorialBar",dependencies:["grid"],defaultOption:{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,hoverAnimation:!1},getInitialData:function(e){return e.stack=null,i.superApply(this,"getInitialData",arguments)}}),r=i;e.exports=r},function(e,t,n){function o(e,t,n,o){var r=e.getItemLayout(t),c=n.get("symbolRepeat"),u=n.get("symbolClip"),d=n.get("symbolPosition")||"start",f=n.get("symbolRotate"),p=(f||0)*Math.PI/180||0,h=n.get("symbolPatternSize")||2,g=n.isAnimationEnabled(),m={dataIndex:t,layout:r,itemModel:n,symbolType:e.getItemVisual(t,"symbol")||"circle",color:e.getItemVisual(t,"color"),symbolClip:u,symbolRepeat:c,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:h,rotation:p,animationModel:g?n:null,hoverAnimation:g&&n.get("hoverAnimation"),z2:n.getShallow("z",!0)||0};i(n,c,r,o,m),a(e,t,r,c,u,m.boundingLength,m.pxSign,h,o,m),l(n,m.symbolScale,p,o,m);var v=m.symbolSize,b=n.get("symbolOffset");return A.isArray(b)&&(b=[L(b[0],v[0]),L(b[1],v[1])]),s(n,v,r,c,u,b,d,m.valueLineWidth,m.boundingLength,m.repeatCutLength,o,m),m}function i(e,t,n,o,i){var a,l=o.valueDim,s=e.get("symbolBoundingData"),c=o.coordSys.getOtherAxis(o.coordSys.getBaseAxis()),u=c.toGlobalCoord(c.dataToCoord(0)),d=1-+(n[l.wh]<=0);if(A.isArray(s)){var f=[r(c,s[0])-u,r(c,s[1])-u];f[1]0?1:a<0?-1:0}function r(e,t){return e.toGlobalCoord(e.dataToCoord(e.scale.parse(t)))}function a(e,t,n,o,i,r,a,l,s,c){var u=s.valueDim,d=s.categoryDim,f=Math.abs(n[d.wh]),p=e.getItemVisual(t,"symbolSize");A.isArray(p)?p=p.slice():(null==p&&(p="100%"),p=[p,p]),p[d.index]=L(p[d.index],f),p[u.index]=L(p[u.index],o?f:Math.abs(r)),c.symbolSize=p,(c.symbolScale=[p[0]/l,p[1]/l])[u.index]*=(s.isHorizontal?-1:1)*a}function l(e,t,n,o,i){var r=e.get(R)||0;r&&(B.attr({scale:t.slice(),rotation:n}),B.updateTransform(),r/=B.getLineScale(),r*=t[o.valueDim.index]),i.valueLineWidth=r}function s(e,t,n,o,i,r,a,l,s,c,u,d){var f=u.categoryDim,p=u.valueDim,h=d.pxSign,g=Math.max(t[p.index]+l,0),m=g;if(o){var v=Math.abs(s),b=A.retrieve(e.get("symbolMargin"),"15%")+"",x=!1;b.lastIndexOf("!")===b.length-1&&(x=!0,b=b.slice(0,b.length-1)),b=L(b,t[p.index]);var y=Math.max(g+2*b,0),_=x?0:2*b,w=P(o),k=w?o:M((v+_)/y);b=(v-k*g)/2/(x?k:k-1),y=g+2*b,_=x?0:2*b,w||"fixed"===o||(k=c?M((Math.abs(c)+_)/y):0),m=k*y-_,d.repeatTimes=k,d.symbolMargin=b}var S=h*(m/2),C=d.pathPosition=[];C[f.index]=n[f.wh]/2,C[p.index]="start"===a?S:"end"===a?s-S:s/2,r&&(C[0]+=r[0],C[1]+=r[1]);var T=d.bundlePosition=[];T[f.index]=n[f.xy],T[p.index]=n[p.xy];var E=d.barRectShape=A.extend({},n);E[p.wh]=h*Math.max(Math.abs(n[p.wh]),Math.abs(C[p.index]+S)),E[f.wh]=n[f.wh];var I=d.clipShape={};I[f.xy]=-n[f.xy],I[f.wh]=u.ecSize[f.wh],I[p.xy]=0,I[p.wh]=n[p.wh]}function c(e){var t=e.symbolPatternSize,n=I(e.symbolType,-t/2,-t/2,t,t,e.color);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function u(e,t,n,o){function i(e){var t=d.slice(),o=n.pxSign,i=e;return("start"===n.symbolRepeatDirection?o>0:o<0)&&(i=p-1-e),t[f.index]=g*(i-p/2+.5)+d[f.index],{position:t,scale:n.symbolScale.slice(),rotation:n.rotation}}function r(){w(e,function(e){e.trigger("emphasis")})}function a(){w(e,function(e){e.trigger("normal")})}var l=e.__pictorialBundle,s=n.symbolSize,u=n.valueLineWidth,d=n.pathPosition,f=t.valueDim,p=n.repeatTimes||0,h=0,g=s[t.valueDim.index]+u+2*n.symbolMargin;for(w(e,function(e){e.__pictorialAnimationIndex=h,e.__pictorialRepeatTimes=p,h0)],d=e.__pictorialBarRect;z(d.style,c,r,o,t.seriesModel,i,u),T.setHoverStyle(d,c)}function M(e){var t=Math.round(e);return Math.abs(e-t)<1e-4?t:Math.ceil(e)}var C=n(1),A=n(0),T=n(2),E=n(23),I=E.createSymbol,O=n(3),L=O.parsePercent,P=O.isNumeric,D=n(167),z=D.setLabel,R=["itemStyle","normal","borderWidth"],N=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],B=new T.Circle,F=C.extendChartView({type:"pictorialBar",render:function(e,t,n){var i=this.group,r=e.getData(),a=this._data,l=e.coordinateSystem,s=l.getBaseAxis(),c=!!s.isHorizontal(),u=l.grid.getRect(),d={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:e,coordSys:l,coordSysExtent:[[u.x,u.x+u.width],[u.y,u.y+u.height]],isHorizontal:c,valueDim:N[+c],categoryDim:N[1-c]};return r.diff(a).add(function(e){if(r.hasValue(e)){var t=h(r,e),n=o(r,e,t,d),a=b(r,d,n);r.setItemGraphicEl(e,a),i.add(a),S(a,d,n)}}).update(function(e,t){var n=a.getItemGraphicEl(t);if(!r.hasValue(e))return void i.remove(n);var l=h(r,e),s=o(r,e,l,d),c=_(r,s);n&&c!==n.__pictorialShapeStr&&(i.remove(n),r.setItemGraphicEl(e,null),n=null),n?x(n,d,s):n=b(r,d,s,!0),r.setItemGraphicEl(e,n),n.__pictorialSymbolMeta=s,i.add(n),S(n,d,s)}).remove(function(e){var t=a.getItemGraphicEl(e);t&&y(a,e,t.__pictorialSymbolMeta.animationModel,t)}).execute(),this._data=r,this.group},dispose:A.noop,remove:function(e,t){var n=this.group,o=this._data;e.get("animation")?o&&o.eachItemGraphicEl(function(t){y(o,t.dataIndex,e,t)}):n.removeAll()}}),V=F;e.exports=V},function(e,t,n){var o=n(58),i=o([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),r={getBarItemStyle:function(e){var t=i(this,e);if(this.getBorderLineDash){var n=this.getBorderLineDash();n&&(t.lineDash=n)}return t}};e.exports=r},function(e,t,n){var o=n(1);n(367),n(368);var i=n(370),r=n(369);o.registerVisual(i),o.registerLayout(r)},function(e,t,n){var o=n(0),i=n(18),r=n(83),a=r.seriesModelMixin,l=i.extend({type:"series.boxplot",dependencies:["xAxis","yAxis","grid"],defaultValueDimensions:["min","Q1","median","Q3","max"],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,boxWidth:[7,50],itemStyle:{normal:{color:"#fff",borderWidth:1},emphasis:{borderWidth:2,shadowBlur:5,shadowOffsetX:2,shadowOffsetY:2,shadowColor:"rgba(0,0,0,0.4)"}},animationEasing:"elasticOut",animationDuration:800}});o.mixin(l,a,!0);var s=l;e.exports=s},function(e,t,n){function o(e,t,n){var o=t.getItemModel(n),i=o.getModel(u),r=t.getItemVisual(n,"color"),l=i.getItemStyle(["borderColor"]),s=e.childAt(e.whiskerIndex);s.style.set(l),s.style.stroke=r,s.dirty();var c=e.childAt(e.bodyIndex);c.style.set(l),c.style.stroke=r,c.dirty();var f=o.getModel(d).getItemStyle();a.setHoverStyle(e,f)}var i=n(0),r=n(37),a=n(2),l=n(83),s=l.viewMixin,c=r.extend({type:"boxplot",getStyleUpdater:function(){return o},dispose:i.noop});i.mixin(c,s,!0);var u=["itemStyle","normal"],d=["itemStyle","emphasis"],f=c;e.exports=f},function(e,t,n){function o(e){var t=i(e);u(t,function(e){var t=e.seriesModels;t.length&&(r(e),u(t,function(t,n){a(t,e.boxOffsetList[n],e.boxWidthList[n])}))})}function i(e){var t=[],n=[];return e.eachSeriesByType("boxplot",function(e){var o=e.getBaseAxis(),i=l.indexOf(n,o);i<0&&(i=n.length,n[i]=o,t[i]={axis:o,seriesModels:[]}),t[i].seriesModels.push(e)}),t}function r(e){var t,n,o=e.axis,i=e.seriesModels,r=i.length,a=e.boxWidthList=[],s=e.boxOffsetList=[],d=[];if("category"===o.type)n=o.getBandWidth();else{var f=0;u(i,function(e){f=Math.max(f,e.getData().count())}),t=o.getExtent(),Math.abs(t[1]-t[0])}u(i,function(e){var t=e.get("boxWidth");l.isArray(t)||(t=[t,t]),d.push([c(t[0],n)||0,c(t[1],n)||0])});var p=.8*n-2,h=p/r*.3,g=(p-h*(r-1))/r,m=g/2-p/2;u(i,function(e,t){s.push(m),m+=h+g,a.push(Math.min(Math.max(g,d[t][0]),d[t][1]))})}function a(e,t,n){var o,i=e.coordinateSystem,r=e.getData(),a=n/2,s=e.get("layout"),c="horizontal"===s?0:1,u=1-c,d=["x","y"],f=[];l.each(r.dimensions,function(e){var t=r.getDimensionInfo(e),n=t.coordDim;n===d[u]?f.push(e):n===d[c]&&(o=e)}),null==o||f.length<5||r.each([o].concat(f),function(){function e(e){var n=[];n[c]=d,n[u]=e;var o;return isNaN(d)||isNaN(e)?o=[NaN,NaN]:(o=i.dataToPoint(n),o[c]+=t),o}function n(e,t){var n=e.slice(),o=e.slice();n[c]+=a,o[c]-=a,t?b.push(n,o):b.push(o,n)}function o(e){var t=[e.slice(),e.slice()];t[0][c]-=a,t[1][c]+=a,v.push(t)}var l=arguments,d=l[0],p=l[f.length+1],h=e(l[3]),g=e(l[1]),m=e(l[5]),v=[[g,e(l[2])],[m,e(l[4])]];o(g),o(m),o(h);var b=[];n(v[0][1],0),n(v[1][1],1),r.setItemLayout(p,{chartLayout:s,initBaseline:h[u],median:h,bodyEnds:b,whiskerEnds:v})})}var l=n(0),s=n(3),c=s.parsePercent,u=l.each;e.exports=o},function(e,t){function n(e,t){var n=e.get("color");e.eachRawSeriesByType("boxplot",function(t){var i=n[t.seriesIndex%n.length],r=t.getData();r.setVisual({legendSymbol:"roundRect",color:t.get(o)||i}),e.isSeriesFiltered(t)||r.each(function(e){var t=r.getItemModel(e);r.setItemVisual(e,{color:t.get(o,!0)})})})}var o=["itemStyle","normal","borderColor"];e.exports=n},function(e,t,n){var o=n(1);n(372),n(373);var i=n(376),r=n(375),a=n(374);o.registerPreprocessor(i),o.registerVisual(r),o.registerLayout(a)},function(e,t,n){var o=n(0),i=n(18),r=n(83),a=r.seriesModelMixin,l=i.extend({type:"series.candlestick",dependencies:["xAxis","yAxis","grid"],defaultValueDimensions:["open","close","lowest","highest"],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,itemStyle:{normal:{color:"#c23531",color0:"#314656",borderWidth:1,borderColor:"#c23531",borderColor0:"#314656"},emphasis:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,animationUpdate:!1,animationEasing:"linear",animationDuration:300},getShadowDim:function(){return"open"},brushSelector:function(e,t,n){var o=t.getItemLayout(e);return n.rect(o.brushRect)}});o.mixin(l,a,!0);var s=l;e.exports=s},function(e,t,n){function o(e,t,n){var o=t.getItemModel(n),i=o.getModel(u),r=t.getItemVisual(n,"color"),l=t.getItemVisual(n,"borderColor")||r,s=i.getItemStyle(["color","color0","borderColor","borderColor0"]),c=e.childAt(e.whiskerIndex);c.useStyle(s),c.style.stroke=l;var f=e.childAt(e.bodyIndex);f.useStyle(s),f.style.fill=r,f.style.stroke=l;var p=o.getModel(d).getItemStyle();a.setHoverStyle(e,p)}var i=n(0),r=n(37),a=n(2),l=n(83),s=l.viewMixin,c=r.extend({type:"candlestick",getStyleUpdater:function(){return o},dispose:i.noop});i.mixin(c,s,!0);var u=["itemStyle","normal"],d=["itemStyle","emphasis"],f=c;e.exports=f},function(e,t,n){function o(e){e.eachSeriesByType("candlestick",function(e){var t,n=e.coordinateSystem,o=e.getData(),a=i(e,o),l=e.get("layout"),s="horizontal"===l?0:1,u=1-s,d=["x","y"],f=[];if(r.each(o.dimensions,function(e){var n=o.getDimensionInfo(e),i=n.coordDim;i===d[u]?f.push(e):i===d[s]&&(t=e)}),!(null==t||f.length<4)){var p=0;o.each([t].concat(f),function(){function e(e){var t=[];return t[s]=d,t[u]=e,isNaN(d)||isNaN(e)?[NaN,NaN]:n.dataToPoint(t)}function t(e,t){var n=e.slice(),o=e.slice();n[s]=c(n[s]+a/2,1,!1),o[s]=c(o[s]-a/2,1,!0),t?C.push(n,o):C.push(o,n)}function i(e){return e[s]=c(e[s],1),e}var r=arguments,d=r[0],h=r[f.length+1],g=r[1],m=r[2],v=r[3],b=r[4],x=Math.min(g,m),y=Math.max(g,m),_=e(x),w=e(y),k=e(v),S=e(b),M=[[i(S),i(w)],[i(k),i(_)]],C=[];t(w,0),t(_,1);var A;A=g>m?-1:g0?o.getItemModel(p-1).get()[2]<=m?1:-1:1,o.setItemLayout(h,{chartLayout:l,sign:A,initBaseline:g>m?w[u]:_[u],bodyEnds:C,whiskerEnds:M,brushRect:function(){var t=e(Math.min(g,m,v,b)),n=e(Math.max(g,m,v,b));return t[s]-=a/2,n[s]-=a/2,{x:t[0],y:t[1],width:u?a:n[0]-t[0],height:u?n[1]-t[1]:a}}()}),++p},!0)}})}function i(e,t){var n,o=e.getBaseAxis(),i="category"===o.type?o.getBandWidth():(n=o.getExtent(),Math.abs(n[1]-n[0])/t.count()),r=l(u(e.get("barMaxWidth"),i),i),a=l(u(e.get("barMinWidth"),1),i),s=e.get("barWidth");return null!=s?l(s,i):Math.max(Math.min(i/2,r),a)}var r=n(0),a=n(3),l=a.parsePercent,s=n(2),c=s.subPixelOptimize,u=r.retrieve2;e.exports=o},function(e,t){function n(e,t){e.eachRawSeriesByType("candlestick",function(t){var n=t.getData();n.setVisual({legendSymbol:"roundRect"}),e.isSeriesFiltered(t)||n.each(function(e){var t=n.getItemModel(e),l=n.getItemLayout(e).sign;n.setItemVisual(e,{color:t.get(l>0?r:a),borderColor:t.get(l>0?o:i)})})})}var o=["itemStyle","normal","borderColor"],i=["itemStyle","normal","borderColor0"],r=["itemStyle","normal","color"],a=["itemStyle","normal","color0"];e.exports=n},function(e,t,n){function o(e){e&&i.isArray(e.series)&&i.each(e.series,function(e){i.isObject(e)&&"k"===e.type&&(e.type="candlestick")})}var i=n(0);e.exports=o},function(e,t,n){function o(e){var t,n=e.type;if("path"===n){var o=e.shape;t=v.makePath(o.pathData,null,{x:o.x||0,y:o.y||0,width:o.width||0,height:o.height||0},"center"),t.__customPathData=e.pathData}else if("image"===n)t=new v.Image({}),t.__customImagePath=e.style.image;else if("text"===n)t=new v.Text({}),t.__customText=e.style.text;else{var i=v[n.charAt(0).toUpperCase()+n.slice(1)];t=new i}return t.__customGraphicType=n,t.name=e.name,t}function i(e,t,n,o,i,a){var l={},s=n.style||{};if(n.shape&&(l.shape=m.clone(n.shape)),n.position&&(l.position=n.position.slice()),n.scale&&(l.scale=n.scale.slice()),n.origin&&(l.origin=n.origin.slice()),n.rotation&&(l.rotation=n.rotation),"image"===e.type&&n.style){var c=l.style={};m.each(["x","y","width","height"],function(t){r(t,c,s,e.style,a)})}if("text"===e.type&&n.style){var c=l.style={};m.each(["x","y"],function(t){r(t,c,s,e.style,a)}),!s.hasOwnProperty("textFill")&&s.fill&&(s.textFill=s.fill),!s.hasOwnProperty("textStroke")&&s.stroke&&(s.textStroke=s.stroke)}if("group"!==e.type&&(e.useStyle(s),a)){e.style.opacity=0;var u=s.opacity;null==u&&(u=1),v.initProps(e,{style:{opacity:u}},o,t)}a?e.attr(l):v.updateProps(e,l,o,t),e.attr({z2:n.z2||0,silent:n.silent}),!1!==n.styleEmphasis&&v.setHoverStyle(e,n.styleEmphasis)}function r(e,t,n,o,i){null==n[e]||i||(t[e]=n[e],n[e]=o[e])}function a(e,t,n,o){function i(e){null==e&&(e=b),L&&(y=t.getItemModel(e),w=y.getModel(I),k=y.getModel(O),S=x(t),M=t.getItemVisual(e,"color"),L=!1)}function r(e,n){return null==n&&(n=b),t.get(t.getDimension(e||0),n)}function a(n,o){null==o&&(o=b),i(o);var r=y.getModel(T).getItemStyle();null!=M&&(r.fill=M);var a=t.getItemVisual(o,"opacity");return null!=a&&(r.opacity=a),null!=S&&(v.setTextStyle(r,w,null,{autoColor:M,isRectText:!0}),r.text=w.getShallow("show")?m.retrieve2(e.getFormattedLabel(o,"normal"),t.get(S,o)):null),n&&m.extend(r,n),r}function s(n,o){null==o&&(o=b),i(o);var r=y.getModel(E).getItemStyle();return null!=S&&(v.setTextStyle(r,k,null,{isRectText:!0},!0),r.text=k.getShallow("show")?m.retrieve3(e.getFormattedLabel(o,"emphasis"),e.getFormattedLabel(o,"normal"),t.get(S,o)):null),n&&m.extend(r,n),r}function c(e,n){return null==n&&(n=b),t.getItemVisual(n,e)}function u(e){if(h.getBaseAxis){var t=h.getBaseAxis();return _.getLayoutOnAxis(m.defaults({axis:t},e),o)}}function d(){return n.getCurrentSeriesIndices()}function f(e){return v.getFont(e,n)}var p=e.get("renderItem"),h=e.coordinateSystem,g={};h&&(g=h.prepareCustoms?h.prepareCustoms():P[h.type](h));var b,y,w,k,S,M,C=m.defaults({getWidth:o.getWidth,getHeight:o.getHeight,getZr:o.getZr,getDevicePixelRatio:o.getDevicePixelRatio,value:r,style:a,styleEmphasis:s,visual:c,barLayout:u,currentSeriesIndices:d,font:f},g.api||{}),A={context:{},seriesId:e.id,seriesName:e.name,seriesIndex:e.seriesIndex,coordSys:g.coordSys,dataInsideLength:t.count(),encode:l(e.getData())},L=!0;return function(e){return b=e,L=!0,p&&p(m.defaults({dataIndexInside:e,dataIndex:t.getRawIndex(e)},A),C)||{}}}function l(e){var t={};return m.each(e.dimensions,function(n,o){var i=e.getDimensionInfo(n);if(!i.isExtraCoord){var r=i.coordDim;(t[r]=t[r]||[])[i.coordDimIndex]=o}}),t}function s(e,t,n,o,i,r){(e=c(e,t,n,o,i,r))&&r.setItemGraphicEl(t,e)}function c(e,t,n,r,a,l){var s=n.type;if(!e||s===e.__customGraphicType||"path"===s&&n.pathData===e.__customPathData||"image"===s&&n.style.image===e.__customImagePath||"text"===s&&n.style.text===e.__customText||(a.remove(e),e=null),null!=s){var d=!e;if(!e&&(e=o(n)),i(e,t,n,r,l,d),"group"===s){var f=e.children()||[],p=n.children||[];if(n.diffChildrenByName)u({oldChildren:f,newChildren:p,dataIndex:t,animatableModel:r,group:e,data:l});else{for(var h=0;h=e&&(0===t?0:o[t-1][0]).4?"bottom":"middle",textAlign:O<-.4?"left":O>.4?"right":"center"},{autoColor:R}),silent:!0}))}if(x.get("show")&&I!==_){for(var N=0;N<=w;N++){var O=Math.cos(M),L=Math.sin(M),B=new a.Line({shape:{x1:O*g+p,y1:L*g+h,x2:O*(g-S)+p,y2:L*(g-S)+h},silent:!0,style:E});"auto"===E.stroke&&B.setStyle({stroke:o((I+N/w)/_)}),f.add(B),M+=A}M-=A}else M+=C}},_renderPointer:function(e,t,n,o,i,l,s,u){var f=this.group,p=this._data;if(!e.get("pointer.show"))return void(p&&p.eachItemGraphicEl(function(e){f.remove(e)}));var h=[+e.get("min"),+e.get("max")],g=[l,s],m=e.getData();m.diff(p).add(function(t){var n=new r({shape:{angle:l}});a.initProps(n,{shape:{angle:d(m.get("value",t),h,g,!0)}},e),f.add(n),m.setItemGraphicEl(t,n)}).update(function(t,n){var o=p.getItemGraphicEl(n);a.updateProps(o,{shape:{angle:d(m.get("value",t),h,g,!0)}},e),f.add(o),m.setItemGraphicEl(t,o)}).remove(function(e){var t=p.getItemGraphicEl(e);f.remove(t)}).execute(),m.eachItemGraphicEl(function(e,t){var n=m.getItemModel(t),r=n.getModel("pointer");e.setShape({x:i.cx,y:i.cy,width:c(r.get("width"),i.r),r:c(r.get("length"),i.r)}),e.useStyle(n.getModel("itemStyle.normal").getItemStyle()),"auto"===e.style.fill&&e.setStyle("fill",o(d(m.get("value",t),h,[0,1],!0))),a.setHoverStyle(e,n.getModel("itemStyle.emphasis").getItemStyle())}),this._data=m},_renderTitle:function(e,t,n,o,i){var r=e.getModel("title");if(r.get("show")){var l=r.get("offsetCenter"),s=i.cx+c(l[0],i.r),u=i.cy+c(l[1],i.r),f=+e.get("min"),p=+e.get("max"),h=e.getData().get("value",0),g=o(d(h,[f,p],[0,1],!0));this.group.add(new a.Text({silent:!0,style:a.setTextStyle({},r,{x:s,y:u,text:e.getData().getName(0),textAlign:"center",textVerticalAlign:"middle"},{autoColor:g,forceRich:!0})}))}},_renderDetail:function(e,t,n,o,r){var l=e.getModel("detail"),s=+e.get("min"),u=+e.get("max");if(l.get("show")){var f=l.get("offsetCenter"),p=r.cx+c(f[0],r.r),h=r.cy+c(f[1],r.r),g=c(l.get("width"),r.r),m=c(l.get("height"),r.r),v=e.getData().get("value",0),b=o(d(v,[s,u],[0,1],!0));this.group.add(new a.Text({silent:!0,style:a.setTextStyle({},l,{x:p,y:h,text:i(v,l.get("formatter")),textWidth:isNaN(g)?null:g,textHeight:isNaN(m)?null:m,textAlign:"center",textVerticalAlign:"middle"},{autoColor:b,forceRich:!0})}))}}}),h=p;e.exports=h},function(e,t,n){var o=n(16),i=o.extend({type:"echartsGaugePointer",shape:{angle:0,width:10,r:10,x:0,y:0},buildPath:function(e,t){var n=Math.cos,o=Math.sin,i=t.r,r=t.width,a=t.angle,l=t.x-n(a)*r*(r>=i/3?1:2),s=t.y-o(a)*r*(r>=i/3?1:2);a=t.angle-Math.PI/2,e.moveTo(l,s),e.lineTo(t.x+n(a)*r,t.y+o(a)*r),e.lineTo(t.x+n(t.angle)*i,t.y+o(t.angle)*i),e.lineTo(t.x-n(a)*r,t.y-o(a)*r),e.lineTo(l,s)}});e.exports=i},function(e,t,n){var o=n(1),i=n(0);n(390),n(391),n(400);var r=n(393),a=n(46),l=n(394),s=n(397),c=n(401),u=n(395),d=n(399),f=n(396);o.registerProcessor(r),o.registerVisual(i.curry(a,"graph","circle",null)),o.registerVisual(l),o.registerVisual(s),o.registerLayout(c),o.registerLayout(u),o.registerLayout(d),o.registerCoordinateSystem("graphView",{create:f})},function(e,t,n){var o=n(1),i=n(13),r=n(0),a=n(5),l=a.defaultEmphasis,s=n(12),c=n(8),u=c.encodeHTML,d=n(172),f=o.extendSeriesModel({type:"series.graph",init:function(e){f.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},mergeOption:function(e){f.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(e){f.superApply(this,"mergeDefaultAndTheme",arguments),l(e.edgeLabel,["show"])},getInitialData:function(e,t){function n(e,n){function o(e){return e=this.parsePath(e),e&&"label"===e[0]?a:this.parentModel}e.wrapMethod("getItemModel",function(e){var t=r._categoriesModels,n=e.getShallow("category"),o=t[n];return o&&(o.parentModel=e.parentModel,e.parentModel=o),e});var i=r.getModel("edgeLabel"),a=new s({label:i.option},i.parentModel,t);n.wrapMethod("getItemModel",function(e){return e.customizeGetParent(o),e})}var o=e.edges||e.links||[],i=e.data||e.nodes||[],r=this;if(i&&o)return d(i,o,this,!0,n).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(e,t,n){if("edge"===n){var o=this.getData(),i=this.getDataParams(e,n),r=o.graph.getEdgeByIndex(e),a=o.getName(r.node1.dataIndex),l=o.getName(r.node2.dataIndex),s=[];return null!=a&&s.push(a),null!=l&&s.push(l),s=u(s.join(" > ")),i.value&&(s+=" : "+u(i.value)),s}return f.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var e=r.map(this.option.categories||[],function(e){return null!=e.value?e:r.extend({value:0},e)}),t=new i(["value"],this);t.initData(e),this._categoriesData=t,this._categoriesModels=t.mapArray(function(e){return t.getItemModel(e,!0)})},setZoom:function(e){this.option.zoom=e},setCenter:function(e){this.option.center=e},isAnimationEnabled:function(){return f.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{normal:{position:"middle"},emphasis:{}},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{normal:{show:!1,formatter:"{b}"},emphasis:{show:!0}},itemStyle:{normal:{},emphasis:{}},lineStyle:{normal:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{}}}}),p=f;e.exports=p},function(e,t,n){function o(e,t){return e.getVisual("opacity")||e.getModel().get(t)}function i(e,t,n){var i=e.getGraphicEl(),r=o(e,t);null!=n&&(null==r&&(r=1),r*=n),i.downplay&&i.downplay(),i.traverse(function(e){"group"!==e.type&&e.setStyle("opacity",r)})}function r(e,t){var n=o(e,t),i=e.getGraphicEl();i.highlight&&i.highlight(),i.traverse(function(e){"group"!==e.type&&e.setStyle("opacity",n)})}var a=n(1),l=n(0),s=n(65),c=n(115),u=n(86),d=n(192),f=n(119),p=f.onIrrelevantElement,h=n(2),g=n(392),m=["itemStyle","normal","opacity"],v=["lineStyle","normal","opacity"],b=a.extendChartView({type:"graph",init:function(e,t){var n=new s,o=new c,i=this.group;this._controller=new u(t.getZr()),this._controllerHost={target:i},i.add(n.group),i.add(o.group),this._symbolDraw=n,this._lineDraw=o,this._firstRender=!0},render:function(e,t,n){var o=e.coordinateSystem;this._model=e,this._nodeScaleRatio=e.get("nodeScaleRatio");var i=this._symbolDraw,r=this._lineDraw,a=this.group;if("view"===o.type){var l={position:o.position,scale:o.scale};this._firstRender?a.attr(l):h.updateProps(a,l,e)}g(e.getGraph(),this._getNodeGlobalScale(e));var s=e.getData();i.updateData(s);var c=e.getEdgeData();r.updateData(c),this._updateNodeAndLinkScale(),this._updateController(e,t,n),clearTimeout(this._layoutTimeout);var u=e.forceLayout,d=e.get("force.layoutAnimation");u&&this._startForceLayoutIteration(u,d),s.eachItemGraphicEl(function(t,o){var i=s.getItemModel(o);t.off("drag").off("dragend");var r=s.getItemModel(o).get("draggable");r&&t.on("drag",function(){u&&(u.warmUp(),!this._layouting&&this._startForceLayoutIteration(u,d),u.setFixed(o),s.setItemLayout(o,t.position))},this).on("dragend",function(){u&&u.setUnfixed(o)},this),t.setDraggable(r&&u),t.off("mouseover",t.__focusNodeAdjacency),t.off("mouseout",t.__unfocusNodeAdjacency),i.get("focusNodeAdjacency")&&(t.on("mouseover",t.__focusNodeAdjacency=function(){n.dispatchAction({type:"focusNodeAdjacency",seriesId:e.id,dataIndex:t.dataIndex})}),t.on("mouseout",t.__unfocusNodeAdjacency=function(){n.dispatchAction({type:"unfocusNodeAdjacency",seriesId:e.id})}))},this),s.graph.eachEdge(function(t){var o=t.getGraphicEl();o.off("mouseover",o.__focusNodeAdjacency),o.off("mouseout",o.__unfocusNodeAdjacency),t.getModel().get("focusNodeAdjacency")&&(o.on("mouseover",o.__focusNodeAdjacency=function(){n.dispatchAction({type:"focusNodeAdjacency",seriesId:e.id,edgeDataIndex:t.dataIndex})}),o.on("mouseout",o.__unfocusNodeAdjacency=function(){n.dispatchAction({type:"unfocusNodeAdjacency",seriesId:e.id})}))});var f="circular"===e.get("layout")&&e.get("circular.rotateLabel"),p=s.getLayout("cx"),m=s.getLayout("cy");s.eachItemGraphicEl(function(e,t){var n=e.getSymbolPath();if(f){var o=s.getItemLayout(t),i=Math.atan2(o[1]-m,o[0]-p);i<0&&(i=2*Math.PI+i);var r=o[0]=0?o+=g:o-=g:y>=0?o-=g:o+=g}return o}function i(e,t){function n(e){var t=e.getVisual("symbolSize");return t instanceof Array&&(t=(t[0]+t[1])/2),t}var i=[],l=r.quadraticSubdivide,s=[[],[],[]],c=[[],[]],u=[];t/=2,e.eachEdge(function(e,r){var d=e.getLayout(),f=e.getVisual("fromSymbol"),p=e.getVisual("toSymbol");d.__original||(d.__original=[a.clone(d[0]),a.clone(d[1])],d[2]&&d.__original.push(a.clone(d[2])));var h=d.__original;if(null!=d[2]){if(a.copy(s[0],h[0]),a.copy(s[1],h[2]),a.copy(s[2],h[1]),f&&"none"!=f){var g=n(e.node1),m=o(s,h[0],g*t);l(s[0][0],s[1][0],s[2][0],m,i),s[0][0]=i[3],s[1][0]=i[4],l(s[0][1],s[1][1],s[2][1],m,i),s[0][1]=i[3],s[1][1]=i[4]}if(p&&"none"!=p){var g=n(e.node2),m=o(s,h[1],g*t);l(s[0][0],s[1][0],s[2][0],m,i),s[1][0]=i[1],s[2][0]=i[2],l(s[0][1],s[1][1],s[2][1],m,i),s[1][1]=i[1],s[2][1]=i[2]}a.copy(d[0],s[0]),a.copy(d[1],s[2]),a.copy(d[2],s[1])}else{if(a.copy(c[0],h[0]),a.copy(c[1],h[1]),a.sub(u,c[1],c[0]),a.normalize(u,u),f&&"none"!=f){var g=n(e.node1);a.scaleAndAdd(c[0],c[0],u,g*t)}if(p&&"none"!=p){var g=n(e.node2);a.scaleAndAdd(c[1],c[1],u,-g*t)}a.copy(d[0],c[0]),a.copy(d[1],c[1])}})}var r=n(39),a=n(7),l=[],s=[],c=[],u=r.quadraticAt,d=a.distSquare,f=Math.abs;e.exports=i},function(e,t){function n(e){var t=e.findComponents({mainType:"legend"});t&&t.length&&e.eachSeriesByType("graph",function(e){var n=e.getCategoriesData(),o=e.getGraph(),i=o.data,r=n.mapArray(n.getName);i.filterSelf(function(e){var n=i.getItemModel(e),o=n.getShallow("category");if(null!=o){"number"==typeof o&&(o=r[o]);for(var a=0;a0){var A=r(b)?l:s;b>0&&(b=b*M+k),y[_++]=A[C],y[_++]=A[C+1],y[_++]=A[C+2],y[_++]=A[C+3]*b*256}else _+=4}return d.putImageData(x,0,0),u},_getBrush:function(){var e=this._brushCanvas||(this._brushCanvas=i.createCanvas()),t=this.pointSize+this.blurSize,n=2*t;e.width=n,e.height=n;var o=e.getContext("2d");return o.clearRect(0,0,n,n),o.shadowOffsetX=n,o.shadowBlur=this.blurSize,o.shadowColor="#000",o.beginPath(),o.arc(-t,t,this.pointSize,0,2*Math.PI,!0),o.closePath(),o.fill(),e},_getGradient:function(e,t,n){for(var o=this._gradientPixels,i=o[n]||(o[n]=new Uint8ClampedArray(1024)),r=[0,0,0,0],a=0,l=0;l<256;l++)t[n](l/255,!0,r),i[a++]=r[0],i[a++]=r[1],i[a++]=r[2],i[a++]=r[3];return i}};var r=o;e.exports=r},function(e,t,n){var o=n(18),i=n(34),r=o.extend({type:"series.heatmap",getInitialData:function(e,t){return i(e.data,this,t)},defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0}});e.exports=r},function(e,t,n){function o(e,t,n){var o=e[1]-e[0];t=u.map(t,function(t){return{interval:[(t.interval[0]-e[0])/o,(t.interval[1]-e[0])/o]}});var i=t.length,r=0;return function(e){for(var o=r;o=0;o--){var a=t[o].interval;if(a[0]<=e&&e<=a[1]){r=o;break}}return o>=0&&o=t[0]&&e<=t[1]}}function r(e){var t=e.dimensions;return"lng"===t[0]&&"lat"===t[1]}var a=n(4),l=(a.__DEV__,n(1)),s=n(2),c=n(403),u=n(0),d=l.extendChartView({type:"heatmap",render:function(e,t,n){var o;t.eachComponent("visualMap",function(t){t.eachTargetSeries(function(n){n===e&&(o=t)})}),this.group.removeAll();var i=e.coordinateSystem;"cartesian2d"===i.type||"calendar"===i.type?this._renderOnCartesianAndCalendar(i,e,n):r(i)&&this._renderOnGeo(i,e,o,n)},dispose:function(){},_renderOnCartesianAndCalendar:function(e,t,n){if("cartesian2d"===e.type)var o=e.getAxis("x"),i=e.getAxis("y"),r=o.getBandWidth(),a=i.getBandWidth();var l=this.group,c=t.getData(),d=t.getModel("itemStyle.normal").getItemStyle(["color"]),f=t.getModel("itemStyle.emphasis").getItemStyle(),p=t.getModel("label.normal"),h=t.getModel("label.emphasis"),g=e.type,m="cartesian2d"===g?[t.coordDimToDataDim("x")[0],t.coordDimToDataDim("y")[0],t.coordDimToDataDim("value")[0]]:[t.coordDimToDataDim("time")[0],t.coordDimToDataDim("value")[0]];c.each(function(n){var o;if("cartesian2d"===g){if(isNaN(c.get(m[2],n)))return;var i=e.dataToPoint([c.get(m[0],n),c.get(m[1],n)]);o=new s.Rect({shape:{x:i[0]-r/2,y:i[1]-a/2,width:r,height:a},style:{fill:c.getItemVisual(n,"color"),opacity:c.getItemVisual(n,"opacity")}})}else{if(isNaN(c.get(m[1],n)))return;o=new s.Rect({z2:1,shape:e.dataToRect([c.get(m[0],n)]).contentShape,style:{fill:c.getItemVisual(n,"color"),opacity:c.getItemVisual(n,"opacity")}})}var v=c.getItemModel(n);c.hasItemOption&&(d=v.getModel("itemStyle.normal").getItemStyle(["color"]),f=v.getModel("itemStyle.emphasis").getItemStyle(),p=v.getModel("label.normal"),h=v.getModel("label.emphasis"));var b=t.getRawValue(n),x="-";b&&null!=b[2]&&(x=b[2]),s.setLabelStyle(d,f,p,h,{labelFetcher:t,labelDataIndex:n,defaultText:x,isRectText:!0}),o.setStyle(d),s.setHoverStyle(o,c.hasItemOption?f:u.extend({},f)),l.add(o),c.setItemGraphicEl(n,o)})},_renderOnGeo:function(e,t,n,r){var a=n.targetVisuals.inRange,l=n.targetVisuals.outOfRange,u=t.getData(),d=this._hmLayer||this._hmLayer||new c;d.blurSize=t.get("blurSize"),d.pointSize=t.get("pointSize"),d.minOpacity=t.get("minOpacity"),d.maxOpacity=t.get("maxOpacity");var f=e.getViewRect().clone(),p=e.getRoamTransform().transform;f.applyTransform(p);var h=Math.max(f.x,0),g=Math.max(f.y,0),m=Math.min(f.width+f.x,r.getWidth()),v=Math.min(f.height+f.y,r.getHeight()),b=m-h,x=v-g,y=u.mapArray(["lng","lat","value"],function(t,n,o){var i=e.dataToPoint([t,n]);return i[0]-=h,i[1]-=g,i.push(o),i}),_=n.getExtent(),w="visualMap.continuous"===n.type?i(_,n.option.range):o(_,n.getPieceList(),n.option.selected);d.update(y,b,x,a.color.getNormalizer(),{inRange:a.color.getColorMapper(),outOfRange:l.color.getColorMapper()},w);var k=new s.Image({style:{width:b,height:x,x:h,y:g,image:d.canvas},silent:!0});this.group.add(k)}});e.exports=d},function(e,t,n){function o(e,t,n){a.call(this,e,t,n),this._lastFrame=0,this._lastFramePercent=0}var i=n(171),r=n(0),a=n(170),l=n(7),s=o.prototype;s.createLine=function(e,t,n){return new i(e,t,n)},s.updateAnimationPoints=function(e,t){this._points=t;for(var n=[0],o=0,i=1;i=0&&!(o[r]<=t);r--);r=Math.min(r,i-2)}else{for(var r=a;rt);r++);r=Math.min(r-1,i-2)}l.lerp(e.position,n[r],n[r+1],(t-o[r])/(o[r+1]-o[r]));var c=n[r+1][0]-n[r][0],u=n[r+1][1]-n[r][1];e.rotation=-Math.atan2(u,c)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=t,e.ignore=!1}},r.inherits(o,a);var c=o;e.exports=c},function(e,t,n){function o(e){return a.isArray(e)||(e=[+e,+e]),e}function i(e,t){e.eachChild(function(e){e.attr({z:t.z,zlevel:t.zlevel,style:{stroke:"stroke"===t.brushType?t.color:null,fill:"fill"===t.brushType?t.color:null}})})}function r(e,t){u.call(this);var n=new p(e,t),o=new u;this.add(n),this.add(o),o.beforeUpdate=function(){this.attr(n.getScale())},this.updateData(e,t)}var a=n(0),l=n(23),s=l.createSymbol,c=n(2),u=c.Group,d=n(3),f=d.parsePercent,p=n(82),h=r.prototype;h.stopEffectAnimation=function(){this.childAt(1).removeAll()},h.startEffectAnimation=function(e){for(var t=e.symbolType,n=e.color,o=this.childAt(1),r=0;r<3;r++){var a=s(t,-1,-1,2,2,n);a.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scale:[.5,.5]});var l=-r/3*e.period+e.effectOffset;a.animate("",!0).when(e.period,{scale:[e.rippleScale/2,e.rippleScale/2]}).delay(l).start(),a.animateStyle(!0).when(e.period,{opacity:0}).delay(l).start(),o.add(a)}i(o,e)},h.updateEffectAnimation=function(e){for(var t=this._effectCfg,n=this.childAt(1),o=["symbolType","period","rippleScale"],r=0;r2?e.quadraticCurveTo(r[2][0],r[2][1],r[1][0],r[1][1]):e.lineTo(r[1][0],r[1][1])}},findDataIndex:function(e,t){for(var n=this.shape,o=n.segs,i=n.polyline,l=Math.max(this.style.lineWidth,1),s=0;s2){if(a.containStroke(c[0][0],c[0][1],c[2][0],c[2][1],c[1][0],c[1][1],l,e,t))return s}else if(r.containStroke(c[0][0],c[0][1],c[1][0],c[1][1],l,e,t))return s}return-1}}),s=o.prototype;s.updateData=function(e){this.group.removeAll();var t=this._lineEl,n=e.hostModel;t.setShape({segs:e.mapArray(e.getItemLayout),polyline:n.get("polyline")}),t.useStyle(n.getModel("lineStyle.normal").getLineStyle());var o=e.getVisual("color");o&&t.setStyle("stroke",o),t.setStyle("fill"),t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>0&&(t.dataIndex=n)}),this.group.add(t)},s.updateLayout=function(e){var t=e.getData();this._lineEl.setShape({segs:t.mapArray(t.getItemLayout)})},s.remove=function(){this.group.removeAll()};var c=o;e.exports=c},function(e,t,n){function o(){this.group=new i.Group,this._symbolEl=new l({})}var i=n(2),r=n(23),a=r.createSymbol,l=i.extendShape({shape:{points:null,sizes:null},symbolProxy:null,buildPath:function(e,t){for(var n=t.points,o=t.sizes,i=this.symbolProxy,r=i.shape,a=0;a=0;r--){var a=o[r],l=i[r],s=a[0]-l[0]/2,c=a[1]-l[1]/2;if(e>=s&&t>=c&&e<=s+l[0]&&t<=c+l[1])return r}return-1}}),s=o.prototype;s.updateData=function(e){this.group.removeAll();var t=this._symbolEl,n=e.hostModel;t.setShape({points:e.mapArray(e.getItemLayout),sizes:e.mapArray(function(t){var n=e.getItemVisual(t,"symbolSize");return n instanceof Array||(n=[n,n]),n})}),t.symbolProxy=a(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor,t.useStyle(n.getModel("itemStyle.normal").getItemStyle(["color"]));var o=e.getVisual("color");o&&t.setColor(o),t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(t.dataIndex=n)}),this.group.add(t)},s.updateLayout=function(e){var t=e.getData();this._symbolEl.setShape({points:t.mapArray(t.getItemLayout)})},s.remove=function(){this.group.removeAll()};var c=o;e.exports=c},function(e,t,n){function o(e){return isNaN(+e.cpx1)||isNaN(+e.cpy1)}var i=n(2),r=n(7),a=i.Line.prototype,l=i.BezierCurve.prototype,s=i.extendShape({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(e,t){(o(t)?a:l).buildPath(e,t)},pointAt:function(e){return o(this.shape)?a.pointAt.call(this,e):l.pointAt.call(this,e)},tangentAt:function(e){var t=this.shape,n=o(t)?[t.x2-t.x1,t.y2-t.y1]:l.tangentAt.call(this,e);return r.normalize(n,n)}});e.exports=s},function(e,t,n){function o(e,t,n,o){s.Group.call(this),this.bodyIndex,this.whiskerIndex,this.styleUpdater=n,this._createContent(e,t,o),this.updateData(e,t,o),this._seriesModel}function i(e,t,n){return l.map(e,function(e){return e=e.slice(),e[t]=n.initBaseline,e})}function r(e){var t={};return l.each(e,function(e,n){t["ends"+n]=e}),t}function a(e){this.group=new s.Group,this.styleUpdater=e}var l=n(0),s=n(2),c=n(16),u=c.extend({type:"whiskerInBox",shape:{},buildPath:function(e,t){for(var n in t)if(t.hasOwnProperty(n)&&0===n.indexOf("ends")){var o=t[n];e.moveTo(o[0][0],o[0][1]),e.lineTo(o[1][0],o[1][1])}}}),d=o.prototype;d._createContent=function(e,t,n){var o=e.getItemLayout(t),a="horizontal"===o.chartLayout?1:0,c=0;this.add(new s.Polygon({shape:{points:n?i(o.bodyEnds,a,o):o.bodyEnds},style:{strokeNoScale:!0},z2:100})),this.bodyIndex=c++;var d=l.map(o.whiskerEnds,function(e){return n?i(e,a,o):e});this.add(new u({shape:r(d),style:{strokeNoScale:!0},z2:100})),this.whiskerIndex=c++},d.updateData=function(e,t,n){var o=this._seriesModel=e.hostModel,i=e.getItemLayout(t),a=s[n?"initProps":"updateProps"];a(this.childAt(this.bodyIndex),{shape:{points:i.bodyEnds}},o,t),a(this.childAt(this.whiskerIndex),{shape:r(i.whiskerEnds)},o,t),this.styleUpdater.call(null,this,e,t)},l.inherits(o,s.Group);var f=a.prototype;f.updateData=function(e){var t=this.group,n=this._data,i=this.styleUpdater;e.diff(n).add(function(n){if(e.hasValue(n)){var r=new o(e,n,i,!0);e.setItemGraphicEl(n,r),t.add(r)}}).update(function(r,a){var l=n.getItemGraphicEl(a);if(!e.hasValue(r))return void t.remove(l);l?l.updateData(e,r):l=new o(e,r,i),t.add(l),e.setItemGraphicEl(r,l)}).remove(function(e){var o=n.getItemGraphicEl(e);o&&t.remove(o)}).execute(),this._data=e},f.remove=function(){var e=this.group,t=this._data;this._data=null,t&&t.eachItemGraphicEl(function(t){t&&e.remove(t)})};var p=a;e.exports=p},function(e,t,n){var o=n(1),i=n(0);n(413),n(414);var r=n(46),a=n(127),l=n(602);n(70),o.registerVisual(i.curry(r,"line","circle","line")),o.registerLayout(i.curry(a,"line")),o.registerProcessor(o.PRIORITY.PROCESSOR.STATISTIC,i.curry(l,"line"))},function(e,t,n){var o=n(4),i=(o.__DEV__,n(34)),r=n(18),a=r.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(e,t){return i(e.data,this,t)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,clipOverflow:!0,label:{normal:{position:"top"}},lineStyle:{normal:{width:2,type:"solid"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:!1,connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0}});e.exports=a},function(e,t,n){function o(e,t){if(e.length===t.length){for(var n=0;nt[0]?1:-1;t[0]+=o*n,t[1]-=o*n}return t}function a(e){return e>=0?1:-1}function l(e,t){var n=e.getBaseAxis(),o=e.getOtherAxis(n),i=0;if(!n.onZero){var r=o.scale.getExtent();r[0]>0?i=r[0]:r[1]<0&&(i=r[1])}var l=o.dim,s="x"===l||"radius"===l?1:0;return t.mapArray([l],function(o,r){for(var c,u=t.stackedOn;u&&a(u.get(l,r))===a(o);){c=u;break}var d=[];return d[s]=t.get(n.dim,r),d[1-s]=c?c.get(l,r,!0):i,e.dataToPoint(d)},!0)}function s(e,t,n){var o=r(e.getAxis("x")),i=r(e.getAxis("y")),a=e.getBaseAxis().isHorizontal(),l=Math.min(o[0],o[1]),s=Math.min(i[0],i[1]),c=Math.max(o[0],o[1])-l,u=Math.max(i[0],i[1])-s,d=n.get("lineStyle.normal.width")||2,f=n.get("clipOverflow")?d/2:Math.max(c,u);a?(s-=f,u+=2*f):(l-=f,c+=2*f);var p=new b.Rect({shape:{x:l,y:s,width:c,height:u}});return t&&(p.shape[a?"width":"height"]=0,b.initProps(p,{shape:{width:c,height:u}},n)),p}function c(e,t,n){var o=e.getAngleAxis(),i=e.getRadiusAxis(),r=i.getExtent(),a=o.getExtent(),l=Math.PI/180,s=new b.Sector({shape:{cx:e.cx,cy:e.cy,r0:r[0],r:r[1],startAngle:-a[0]*l,endAngle:-a[1]*l,clockwise:o.inverse}});return t&&(s.shape.endAngle=-a[0]*l,b.initProps(s,{shape:{endAngle:-a[1]*l}},n)),s}function u(e,t,n){return"polar"===e.type?c(e,t,n):s(e,t,n)}function d(e,t,n){for(var o=t.getBaseAxis(),i="x"===o.dim||"radius"===o.dim?0:1,r=[],a=0;a=0;i--)if(n[i].dimension<2){o=n[i];break}if(o&&"cartesian2d"===t.type){var r=o.dimension,a=e.dimensions[r],l=t.getAxis(a),s=h.map(o.stops,function(e){return{coord:l.toGlobalCoord(l.dataToCoord(e.value)),color:e.color}}),c=s.length,u=o.outerColors.slice();c&&s[0].coord>s[c-1].coord&&(s.reverse(),u.reverse());var d=s[0].coord-10,f=s[c-1].coord+10,p=f-d;if(p<.001)return"transparent";h.each(s,function(e){e.offset=(e.coord-d)/p}),s.push({offset:c?s[c-1].offset:.5,color:u[1]||"transparent"}),s.unshift({offset:c?s[0].offset:.5,color:u[0]||"transparent"});var g=new b.LinearGradient(0,0,0,0,s,!0);return g[a]=d,g[a+"2"]=f,g}}}var p=n(4),h=(p.__DEV__,n(0)),g=n(65),m=n(82),v=n(415),b=n(2),x=n(5),y=n(174),_=y.Polyline,w=y.Polygon,k=n(37),S=k.extend({type:"line",init:function(){var e=new b.Group,t=new g;this.group.add(t.group),this._symbolDraw=t,this._lineGroup=e},render:function(e,t,n){var r=e.coordinateSystem,a=this.group,s=e.getData(),c=e.getModel("lineStyle.normal"),p=e.getModel("areaStyle.normal"),g=s.mapArray(s.getItemLayout,!0),m="polar"===r.type,v=this._coordSys,b=this._symbolDraw,x=this._polyline,y=this._polygon,_=this._lineGroup,w=e.get("animation"),k=!p.isEmpty(),S=l(r,s),M=e.get("showSymbol"),C=M&&!m&&!e.get("showAllSymbol")&&this._getSymbolIgnoreFunc(s,r),A=this._data;A&&A.eachItemGraphicEl(function(e,t){e.__temp&&(a.remove(e),A.setItemGraphicEl(t,null))}),M||b.remove(),a.add(_);var T=!m&&e.get("step");x&&v.type===r.type&&T===this._step?(k&&!y?y=this._newPolygon(g,S,r,w):y&&!k&&(_.remove(y),y=this._polygon=null),_.setClipPath(u(r,!1,e)),M&&b.updateData(s,C),s.eachItemGraphicEl(function(e){e.stopAnimation(!0)}),o(this._stackedOnPoints,S)&&o(this._points,g)||(w?this._updateAnimation(s,S,r,n,T):(T&&(g=d(g,r,T),S=d(S,r,T)),x.setShape({points:g}),y&&y.setShape({points:g,stackedOnPoints:S})))):(M&&b.updateData(s,C),T&&(g=d(g,r,T),S=d(S,r,T)),x=this._newPolyline(g,r,w),k&&(y=this._newPolygon(g,S,r,w)),_.setClipPath(u(r,!0,e)));var E=f(s,r)||s.getVisual("color");x.useStyle(h.defaults(c.getLineStyle(),{fill:"none",stroke:E,lineJoin:"bevel"}));var I=e.get("smooth");if(I=i(e.get("smooth")),x.setShape({smooth:I,smoothMonotone:e.get("smoothMonotone"),connectNulls:e.get("connectNulls")}),y){var O=s.stackedOn,L=0;y.useStyle(h.defaults(p.getAreaStyle(),{fill:E,opacity:.7,lineJoin:"bevel"})),O&&(L=i(O.hostModel.get("smooth"))),y.setShape({smooth:I,stackedOnSmooth:L,smoothMonotone:e.get("smoothMonotone"),connectNulls:e.get("connectNulls")})}this._data=s,this._coordSys=r,this._stackedOnPoints=S,this._points=g,this._step=T},dispose:function(){},highlight:function(e,t,n,o){var i=e.getData(),r=x.queryDataIndex(i,o);if(!(r instanceof Array)&&null!=r&&r>=0){var a=i.getItemGraphicEl(r);if(!a){var l=i.getItemLayout(r);if(!l)return;a=new m(i,r),a.position=l,a.setZ(e.get("zlevel"),e.get("z")),a.ignore=isNaN(l[0])||isNaN(l[1]),a.__temp=!0,i.setItemGraphicEl(r,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else k.prototype.highlight.call(this,e,t,n,o)},downplay:function(e,t,n,o){var i=e.getData(),r=x.queryDataIndex(i,o);if(null!=r&&r>=0){var a=i.getItemGraphicEl(r);a&&(a.__temp?(i.setItemGraphicEl(r,null),this.group.remove(a)):a.downplay())}else k.prototype.downplay.call(this,e,t,n,o)},_newPolyline:function(e){var t=this._polyline;return t&&this._lineGroup.remove(t),t=new _({shape:{points:e},silent:!0,z2:10}),this._lineGroup.add(t),this._polyline=t,t},_newPolygon:function(e,t){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new w({shape:{points:e,stackedOnPoints:t},silent:!0}),this._lineGroup.add(n),this._polygon=n,n},_getSymbolIgnoreFunc:function(e,t){var n=t.getAxesByScale("ordinal")[0];if(n&&n.isLabelIgnored)return h.bind(n.isLabelIgnored,n)},_updateAnimation:function(e,t,n,o,i){var r=this._polyline,a=this._polygon,l=e.hostModel,s=v(this._data,e,this._stackedOnPoints,t,this._coordSys,n),c=s.current,u=s.stackedOnCurrent,f=s.next,p=s.stackedOnNext;i&&(c=d(s.current,n,i),u=d(s.stackedOnCurrent,n,i),f=d(s.next,n,i),p=d(s.stackedOnNext,n,i)),r.shape.__points=s.current,r.shape.points=c,b.updateProps(r,{shape:{points:f}},l),a&&(a.setShape({points:c,stackedOnPoints:u}),b.updateProps(a,{shape:{points:f,stackedOnPoints:p}},l));for(var h=[],g=s.status,m=0;m=0?1:-1}function o(e,t,o){for(var i,r=e.getBaseAxis(),a=e.getOtherAxis(r),l=r.onZero?0:a.scale.getExtent()[0],s=a.dim,c="x"===s||"radius"===s?1:0,u=t.stackedOn,d=t.get(s,o);u&&n(u.get(s,o))===n(d);){i=u;break}var f=[];return f[c]=t.get(r.dim,o),f[1-c]=i?i.get(s,o,!0):l,e.dataToPoint(f)}function i(e,t){var n=[];return t.diff(e).add(function(e){n.push({cmd:"+",idx:e})}).update(function(e,t){n.push({cmd:"=",idx:t,idx1:e})}).remove(function(e){n.push({cmd:"-",idx:e})}).execute(),n}function r(e,t,n,r,a,l){for(var s=i(e,t),c=[],u=[],d=[],f=[],p=[],h=[],g=[],m=l.dimensions,v=0;v "))},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,label:{normal:{show:!1,position:"end"}},lineStyle:{normal:{opacity:.5}}}})),d=u;e.exports=d},function(e,t,n){var o=n(4),i=(o.__DEV__,n(1)),r=n(115),a=n(170),l=n(114),s=n(171),c=n(406),u=n(408),d=i.extendChartView({type:"lines",init:function(){},render:function(e,t,n){var o=e.getData(),i=this._lineDraw,d=e.get("effect.show"),f=e.get("polyline"),p=e.get("large")&&o.count()>=e.get("largeThreshold");d===this._hasEffet&&f===this._isPolyline&&p===this._isLarge||(i&&i.remove(),i=this._lineDraw=p?new u:new r(f?d?c:s:d?a:l),this._hasEffet=d,this._isPolyline=f,this._isLarge=p);var h=e.get("zlevel"),g=e.get("effect.trailLength"),m=n.getZr(),v="svg"===m.painter.getType();v||m.painter.getLayer(h).clear(!0),null==this._lastZlevel||v||m.configLayer(this._lastZlevel,{motionBlur:!1}),d&&g&&(v||m.configLayer(h,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(g/10+.9,1),0)})),this.group.add(i.group),i.updateData(o),this._lastZlevel=h},updateLayout:function(e,t,n){this._lineDraw.updateLayout(e);var o=n.getZr();"svg"===o.painter.getType()||o.painter.getLayer(this._lastZlevel).clear(!0)},remove:function(e,t){this._lineDraw&&this._lineDraw.remove(t,!0);var n=t.getZr();"svg"===n.painter.getType()||n.painter.getLayer(this._lastZlevel).clear(!0)},dispose:function(){}});e.exports=d},function(e,t,n){function o(e){e.eachSeriesByType("lines",function(e){var t=e.coordinateSystem,n=e.getData();n.each(function(o){var i=n.getItemModel(o),r=i.option instanceof Array?i.option:i.get("coords"),a=[];if(e.get("polyline"))for(var l=0;l"+s(o+" : "+n)},getTooltipPosition:function(e){if(null!=e){var t=this.getData().getName(e),n=this.coordinateSystem,o=n.getRegion(t);return o&&n.dataToPoint(o.center)}},setZoom:function(e){this.option.zoom=e},setCenter:function(e){this.option.center=e},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{normal:{show:!1,color:"#000"},emphasis:{show:!0,color:"rgb(100,0,0)"}},itemStyle:{normal:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{areaColor:"rgba(255,215,0,0.8)"}}}});o.mixin(f,u);var p=f;e.exports=p},function(e,t,n){var o=n(1),i=n(0),r=n(2),a=n(188),l=o.extendChartView({type:"map",render:function(e,t,n,o){if(!o||"mapToggleSelect"!==o.type||o.from!==this.uid){var i=this.group;if(i.removeAll(),!e.getHostGeoModel()){if(o&&"geoRoam"===o.type&&"series"===o.componentType&&o.seriesId===e.id){var r=this._mapDraw;r&&i.add(r.group)}else if(e.needsDrawMap){var r=this._mapDraw||new a(n,!0);i.add(r.group),r.draw(e,t,n,this,o),this._mapDraw=r}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;e.get("showLegendSymbol")&&t.getComponent("legend")&&this._renderSymbols(e,t,n)}}},remove:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},dispose:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},_renderSymbols:function(e,t,n){var o=e.originalData,a=this.group;o.each("value",function(t,n){if(!isNaN(t)){var l=o.getItemLayout(n);if(l&&l.point){var s=l.point,c=l.offset,u=new r.Circle({style:{fill:e.getData().getVisual("color")},shape:{cx:s[0]+9*c,cy:s[1],r:3},silent:!0,z2:c?8:10});if(!c){var d=e.mainSeries.getData(),f=o.getName(n),p=d.indexOfName(f),h=o.getItemModel(n),g=h.getModel("label.normal"),m=h.getModel("label.emphasis"),v=d.getItemGraphicEl(p),b=i.retrieve2(e.getFormattedLabel(n,"normal"),f),x=i.retrieve2(e.getFormattedLabel(n,"emphasis"),b),y=function(){var e=r.setTextStyle({},m,{text:m.get("show")?x:null},{isRectText:!0,useInsideStyle:!1},!0);u.style.extendFrom(e),u.__mapOriginalZ2=u.z2,u.z2+=1},_=function(){r.setTextStyle(u.style,g,{text:g.get("show")?b:null,textPosition:g.getShallow("position")||"bottom"},{isRectText:!0,useInsideStyle:!1}),null!=u.__mapOriginalZ2&&(u.z2=u.__mapOriginalZ2,u.__mapOriginalZ2=null)};v.on("mouseover",y).on("mouseout",_).on("emphasis",y).on("normal",_),_()}a.add(u)}}})}});e.exports=l},function(e,t,n){function o(e){var t=[];i.each(e.series,function(e){e&&"map"===e.type&&(t.push(e),e.map=e.map||e.mapType,i.defaults(e,e.mapLocation))})}var i=n(0);e.exports=o},function(e,t,n){function o(e,t){var n={},o=["value"];return r.each(e,function(e){e.each(o,function(t,o){var i="ec-"+e.getName(o);n[i]=n[i]||[],isNaN(t)||n[i].push(t)})}),e[0].map(o,function(o,i){for(var r="ec-"+e[0].getName(i),a=0,l=1/0,s=-1/0,c=n[r].length,u=0;u=0?t:NaN}})}function i(e){return+e.replace("dim","")}function r(e,t){var n=0;l.each(e,function(e){var t=i(e);t>n&&(n=t)});var o=t[0];o&&o.length-1>n&&(n=o.length-1);for(var r=[],a=0;a<=n;a++)r.push("dim"+a);return r}var a=n(13),l=n(0),s=n(18),c=n(25),u=s.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.normal.color",getInitialData:function(e,t){var n=t.getComponent("parallel",this.get("parallelIndex")),i=n.parallelAxisIndex,s=e.data,u=n.dimensions,d=r(u,s),f=l.map(d,function(e,n){var r=l.indexOf(u,e),a=r>=0&&t.getComponent("parallelAxis",i[r]);return a&&"category"===a.get("type")?(o(a,e,s),{name:e,type:"ordinal"}):r<0&&c.guessOrdinal(s,n)?{name:e,type:"ordinal"}:e}),p=new a(f,this);return p.initData(s),this.option.progressive&&(this.option.animation=!1),p},getRawIndicesByActiveState:function(e){var t=this.coordinateSystem,n=this.getData(),o=[];return t.eachActiveState(n,function(t,i){e===t&&o.push(n.getRawIndex(i))}),o},defaultOption:{zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{normal:{show:!1},emphasis:{show:!1}},inactiveOpacity:.05,activeOpacity:1,lineStyle:{normal:{width:1,opacity:.45,type:"solid"}},progressive:!1,smooth:!1,animationEasing:"linear"}});e.exports=u},function(e,t,n){function o(e,t,n){var o=e.model,i=e.getRect(),r=new s.Rect({shape:{x:i.x,y:i.y,width:i.width,height:i.height}}),a="horizontal"===o.get("layout")?"width":"height";return r.setShape(a,0),s.initProps(r,{shape:{width:i.width,height:i.height}},t,n),r}function i(e,t,n,o){for(var i=[],r=0;r0&&"scale"!==f){var g=l.getItemLayout(0),m=Math.max(n.getWidth(),n.getHeight())/2,v=a.bind(c.removeClipPath,c);c.setClipPath(this._createClipPath(g.cx,g.cy,m,g.startAngle,g.clockwise,v,e))}this._data=l}},dispose:function(){},_createClipPath:function(e,t,n,o,i,r,a){var s=new l.Sector({shape:{cx:e,cy:t,r0:0,r:n,startAngle:o,endAngle:o,clockwise:i}});return l.initProps(s,{shape:{endAngle:o+(i?1:-1)*Math.PI*2}},a,r),s},containPoint:function(e,t){var n=t.getData(),o=n.getItemLayout(0);if(o){var i=e[0]-o.cx,r=e[1]-o.cy,a=Math.sqrt(i*i+r*r);return a<=o.r&&a>=o.r0}}}),d=u;e.exports=d},function(e,t,n){function o(e,t,n,o,i,r,a){function l(t,n){for(var o=t;o>=0&&(e[o].y-=n,!(o>0&&e[o].y>e[o-1].y+e[o-1].height));o--);}function s(e,t,n,o,i,r){for(var a=t?Number.MAX_VALUE:0,l=0,s=e.length;l=a&&(f=a-10),!t&&f<=a&&(f=a+10),e[l].x=n+f*r,a=f}}e.sort(function(e,t){return e.y-t.y});for(var c,u=0,d=e.length,f=[],p=[],h=0;ht&&r+1e[r].y+e[r].height)return void l(r,o/2);l(n-1,o/2)}(h,d,-c),u=e[h].y+e[h].height;a-u<0&&l(d-1,u-a);for(var h=0;h=n?p.push(e[h]):f.push(e[h]);s(f,!1,t,n,o,i),s(p,!0,t,n,o,i)}function i(e,t,n,i,r,a){for(var l=[],s=[],c=0;c0?"left":"right"}var I=g.getFont(),O=g.get("rotate")?_<0?-y+Math.PI:-y:0,L=e.getFormattedLabel(n,"normal")||s.getName(n),P=a.getBoundingRect(L,I,f,"top");u=!!O,p.label={x:o,y:i,position:m,height:P.height,len:b,len2:x,linePoints:d,textAlign:f,verticalAlign:"middle",rotation:O,inside:k},k||c.push(p.label)}),!u&&e.get("avoidLabelOverlap")&&i(c,r,l,t,n,o)}var a=n(27);e.exports=r},function(e,t,n){function o(e,t,n,o){t.eachSeriesByType(e,function(e){var t=e.get("center"),o=e.get("radius");s.isArray(o)||(o=[0,o]),s.isArray(t)||(t=[t,t]);var i=n.getWidth(),d=n.getHeight(),f=Math.min(i,d),p=r(t[0],i),h=r(t[1],d),g=r(o[0],f/2),m=r(o[1],f/2),v=e.getData(),b=-e.get("startAngle")*u,x=e.get("minAngle")*u,y=0;v.each("value",function(e){!isNaN(e)&&y++});var _=v.getSum("value"),w=Math.PI/(_||y)*2,k=e.get("clockwise"),S=e.get("roseType"),M=e.get("stillShowZeroSum"),C=v.getDataExtent("value");C[0]=0;var A=c,T=0,E=b,I=k?1:-1;if(v.each("value",function(e,t){var n;if(isNaN(e))return void v.setItemLayout(t,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:k,cx:p,cy:h,r0:g,r:S?NaN:m});n="area"!==S?0===_&&M?w:e*w:c/y,n"+a.map(o,function(e,n){return s(e.name+" : "+t[n])}).join("
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{normal:{width:2,type:"solid"}},label:{normal:{position:"top"}},symbol:"emptyCircle",symbolSize:4}}),u=c;e.exports=u},function(e,t,n){function o(e){return a.isArray(e)||(e=[+e,+e]),e}var i=n(1),r=n(2),a=n(0),l=n(23),s=i.extendChartView({type:"radar",render:function(e,t,n){function i(e,t){var n=e.getItemVisual(t,"symbol")||"circle",i=e.getItemVisual(t,"color");if("none"!==n){var r=o(e.getItemVisual(t,"symbolSize")),a=l.createSymbol(n,-1,-1,2,2,i);return a.attr({style:{strokeNoScale:!0},z2:100,scale:[r[0]/2,r[1]/2]}),a}}function s(t,n,o,a,l,s){o.removeAll();for(var c=0;c0;i--)a*=.99,p(r,a),f(r,o,n),g(r,a),f(r,o,n)}function d(e,t,n,o,i){var r=[];A.each(t,function(e){var t=e.length,n=0;A.each(e,function(e){n+=e.getLayout().value});var a=(o-(t-1)*i)/n;r.push(a)}),r.sort(function(e,t){return e-t});var a=r[0];A.each(t,function(e){A.each(e,function(e,t){e.setLayout({y:t},!0);var n=e.getLayout().value*a;e.setLayout({dy:n},!0)})}),A.each(n,function(e){var t=+e.getValue()*a;e.setLayout({dy:t},!0)})}function f(e,t,n){A.each(e,function(e){var o,i,r,a=0,l=e.length;for(e.sort(w),r=0;r0){var s=o.getLayout().y+i;o.setLayout({y:s},!0)}a=o.getLayout().y+o.getLayout().dy+t}if((i=a-t-n)>0){var s=o.getLayout().y-i;for(o.setLayout({y:s},!0),a=o.getLayout().y,r=l-2;r>=0;--r)o=e[r],i=o.getLayout().y+o.getLayout().dy+t-a,i>0&&(s=o.getLayout().y-i,o.setLayout({y:s},!0)),a=o.getLayout().y}})}function p(e,t){A.each(e.slice().reverse(),function(e){A.each(e,function(e){if(e.outEdges.length){var n=y(e.outEdges,h)/y(e.outEdges,S),o=e.getLayout().y+(n-_(e))*t;e.setLayout({y:o},!0)}})})}function h(e){return _(e.node2)*e.getValue()}function g(e,t){A.each(e,function(e){A.each(e,function(e){if(e.inEdges.length){var n=y(e.inEdges,m)/y(e.inEdges,S),o=e.getLayout().y+(n-_(e))*t;e.setLayout({y:o},!0)}})})}function m(e){return _(e.node1)*e.getValue()}function v(e){A.each(e,function(e){e.outEdges.sort(b),e.inEdges.sort(x)}),A.each(e,function(e){var t=0,n=0;A.each(e.outEdges,function(e){e.setLayout({sy:t},!0),t+=e.getLayout().dy}),A.each(e.inEdges,function(e){e.setLayout({ty:n},!0),n+=e.getLayout().dy})})}function b(e,t){return e.node2.getLayout().y-t.node2.getLayout().y}function x(e,t){return e.node1.getLayout().y-t.node1.getLayout().y}function y(e,t){for(var n=0,o=e.length,i=-1;++it?1:e===t?0:NaN}function S(e){return e.getValue()}var M=n(6),C=n(217),A=n(0);e.exports=o},function(e,t,n){function o(e,t){e.eachSeriesByType("sankey",function(e){var t=e.getGraph(),n=t.nodes;n.sort(function(e,t){return e.getLayout().value-t.getLayout().value});var o=n[0].getLayout().value,a=n[n.length-1].getLayout().value;r.each(n,function(t){var n=new i({type:"color",mappingMethod:"linear",dataExtent:[o,a],visual:e.get("color")}),r=n.mapValueToVisual(t.getLayout().value);t.setVisual("color",r);var l=t.getModel(),s=l.get("itemStyle.normal.color");null!=s&&t.setVisual("color",s)})})}var i=n(45),r=n(0);e.exports=o},function(e,t,n){var o=n(1),i=n(0);n(448),n(449);var r=n(46),a=n(127);n(70),o.registerVisual(i.curry(r,"scatter","circle",null)),o.registerLayout(i.curry(a,"scatter"))},function(e,t,n){var o=n(34),i=n(18),r=i.extend({type:"series.scatter",dependencies:["grid","polar","geo","singleAxis","calendar"],getInitialData:function(e,t){return o(e.data,this,t)},brushSelector:"point",defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{normal:{opacity:.8}}}});e.exports=r},function(e,t,n){var o=n(1),i=n(65),r=n(409);o.extendChartView({type:"scatter",init:function(){this._normalSymbolDraw=new i,this._largeSymbolDraw=new r},render:function(e,t,n){var o=e.getData(),i=this._largeSymbolDraw,r=this._normalSymbolDraw,a=this.group,l=e.get("large")&&o.count()>e.get("largeThreshold")?i:r;this._symbolDraw=l,l.updateData(o),a.add(l.group),a.remove(l===i?r.group:i.group)},updateLayout:function(e){this._symbolDraw.updateLayout(e)},remove:function(e,t){this._symbolDraw&&this._symbolDraw.remove(t,!0)},dispose:function(){}})},function(e,t,n){var o=n(1),i=n(0);n(196),n(451),n(452);var r=n(453),a=n(454),l=n(89);o.registerLayout(r),o.registerVisual(a),o.registerProcessor(i.curry(l,"themeRiver"))},function(e,t,n){var o=n(25),i=n(18),r=n(13),a=n(0),l=n(8),s=l.encodeHTML,c=n(217),u=i.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(e){u.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(e){for(var t=e.length,n=c().key(function(e){return e[2]}).entries(e),o=a.map(n,function(e){return{name:e.key,dataList:e.values}}),i=o.length,r=-1,l=-1,s=0;sr&&(r=u,l=s)}for(var d=0;da&&(a=t),i.push(t)}for(var u=0;ua&&(a=f)}return l.y0=r,l.max=a,l}var a=n(0),l=n(3);e.exports=o},function(e,t,n){function o(e){e.eachSeriesByType("themeRiver",function(e){var t=e.getData(),n=e.getRawData(),o=e.get("color"),i=r();t.each(function(e){i.set(t.getRawIndex(e),e)}),n.each(function(r){var a=n.getName(r),l=o[(e.nameMap.get(a)-1)%o.length];n.setItemVisual(r,"color",l);var s=i.get(r);null!=s&&t.setItemVisual(s,"color",l)})})}var i=n(0),r=i.createHashMap;e.exports=o},function(e,t,n){var o=n(1),i=n(0);n(456),n(457),n(461);var r=n(46),a=n(458),l=n(459);o.registerVisual(i.curry(r,"tree","circle",null)),o.registerLayout(a),o.registerLayout(l)},function(e,t,n){var o=n(18),i=n(212),r=n(8),a=r.encodeHTML,l=o.extend({type:"series.tree",layoutInfo:null,layoutMode:"box",getInitialData:function(e){var t={name:e.name,children:e.data},n=e.leaves||{},o={};o.leaves=n;var r=i.createTree(t,this,o),a=0;r.eachNode("preorder",function(e){e.depth>a&&(a=e.depth)});var l=e.expandAndCollapse,s=l&&e.initialTreeDepth>=0?e.initialTreeDepth:a;return r.root.eachNode("preorder",function(e){var t=e.hostTree.data.getRawDataItem(e.dataIndex);e.isExpand=t&&null!=t.collapsed?!t.collapsed:e.depth<=s}),r.data},formatTooltip:function(e){for(var t=this.getData().tree,n=t.root.children[0],o=t.getNodeByDataIndex(e),i=o.getValue(),r=o.name;o&&o!==n;)r=o.parentNode.name+"."+r,o=o.parentNode;return a(r+(isNaN(i)||null==i?"":" : "+i))},defaultOption:{zlevel:0,z:2,left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",orient:"horizontal",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{normal:{color:"#ccc",width:1.5,curveness:.5}},itemStyle:{normal:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5}},label:{normal:{show:!0,color:"#555"}},leaves:{label:{normal:{show:!0}}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}});e.exports=l},function(e,t,n){function o(e,t){var n=e.getItemLayout(t);return n&&!isNaN(n.x)&&!isNaN(n.y)&&"none"!==e.getItemVisual(t,"symbol")}function i(e,t,n){return n.itemModel=t,n.itemStyle=t.getModel("itemStyle.normal").getItemStyle(),n.hoverItemStyle=t.getModel("itemStyle.emphasis").getItemStyle(),n.lineStyle=t.getModel("lineStyle.normal").getLineStyle(),n.labelModel=t.getModel("label.normal"),n.hoverLabelModel=t.getModel("label.emphasis"),!1===e.isExpand&&0!==e.children.length?n.symbolInnerColor=n.itemStyle.fill:n.symbolInnerColor="#fff",n}function r(e,t,n,o,r,a){var d=!n,f=e.tree.getNodeByDataIndex(t),p=f.getModel(),a=i(f,p,a),h=e.tree.root,g=f.parentNode===h?f:f.parentNode||f,m=e.getItemGraphicEl(g.dataIndex),v=g.getLayout(),b=m?{x:m.position[0],y:m.position[1],rawX:m.__radialOldRawX,rawY:m.__radialOldRawY}:v,x=f.getLayout();d?(n=new u(e,t,a),n.attr("position",[b.x,b.y])):n.updateData(e,t,a),n.__radialOldRawX=n.__radialRawX,n.__radialOldRawY=n.__radialRawY,n.__radialRawX=x.rawX,n.__radialRawY=x.rawY,o.add(n),e.setItemGraphicEl(t,n),c.updateProps(n,{position:[x.x,x.y]},r);var y=n.getSymbolPath();if("radial"===a.layout){var _,w,k=h.children[0],S=k.getLayout(),M=k.children.length;if(x.x===S.x&&!0===f.isExpand){var C={};C.x=(k.children[0].getLayout().x+k.children[M-1].getLayout().x)/2,C.y=(k.children[0].getLayout().y+k.children[M-1].getLayout().y)/2,_=Math.atan2(C.y-S.y,C.x-S.x),_<0&&(_=2*Math.PI+_),(w=C.xS.x)||(_-=Math.PI);var A=w?"left":"right";y.setStyle({textPosition:A,textRotation:-_,textOrigin:"center",verticalAlign:"middle"})}if(f.parentNode&&f.parentNode!==h){var T=n.__edge;T||(T=n.__edge=new c.BezierCurve({shape:l(a,b,b),style:s.defaults({opacity:0},a.lineStyle)})),c.updateProps(T,{shape:l(a,v,x),style:{opacity:1}},r),o.add(T)}}function a(e,t,n,o,r,a){for(var s,u=e.tree.getNodeByDataIndex(t),d=e.tree.root,f=u.getModel(),a=i(u,f,a),p=u.parentNode===d?u:u.parentNode||u;null==(s=p.getLayout());)p=p.parentNode===d?p:p.parentNode||p;c.updateProps(n,{position:[s.x+1,s.y+1]},r,function(){o.remove(n),e.setItemGraphicEl(t,null)}),n.fadeOut(null,{keepLabel:!0});var h=n.__edge;h&&c.updateProps(h,{shape:l(a,s,s),style:{opacity:0}},r,function(){o.remove(h)})}function l(e,t,n){var o,i,r,a,l=e.orient;if("radial"===e.layout){var s=t.rawX,c=t.rawY,u=n.rawX,d=n.rawY,p=f(s,c),h=f(s,c+(d-c)*e.curvature),g=f(u,d+(c-d)*e.curvature),m=f(u,d);return{x1:p.x,y1:p.y,x2:m.x,y2:m.y,cpx1:h.x,cpy1:h.y,cpx2:g.x,cpy2:g.y}}var s=t.x,c=t.y,u=n.x,d=n.y;return"horizontal"===l&&(o=s+(u-s)*e.curvature,i=c,r=u+(s-u)*e.curvature,a=d),"vertical"===l&&(o=s,i=c+(d-c)*e.curvature,r=u,a=d+(c-d)*e.curvature),{x1:s,y1:c,x2:u,y2:d,cpx1:o,cpy1:i,cpx2:r,cpy2:a}}var s=n(0),c=n(2),u=n(82),d=n(177),f=d.radialCoordinate,p=n(1),h=p.extendChartView({type:"tree",init:function(e,t){this._oldTree,this._mainGroup=new c.Group,this.group.add(this._mainGroup)},render:function(e,t,n,i){var l=e.getData(),s=e.layoutInfo,c=this._mainGroup,u=e.get("layout");"radial"===u?c.attr("position",[s.x+s.width/2,s.y+s.height/2]):c.attr("position",[s.x,s.y]);var d=this._data,f={expandAndCollapse:e.get("expandAndCollapse"),layout:u,orient:e.get("orient"),curvature:e.get("lineStyle.normal.curveness"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverAnimation:e.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};l.diff(d).add(function(t){o(l,t)&&r(l,t,null,c,e,f)}).update(function(t,n){var i=d.getItemGraphicEl(n);if(!o(l,t))return void(i&&a(l,t,i,c,e,f));r(l,t,i,c,e,f)}).remove(function(t){var n=d.getItemGraphicEl(t);a(l,t,n,c,e,f)}).execute(),!0===f.expandAndCollapse&&l.eachItemGraphicEl(function(t,o){t.off("click").on("click",function(){n.dispatchAction({type:"treeExpandAndCollapse",seriesId:e.id,dataIndex:o})})}),this._data=l},dispose:function(){},remove:function(){this._mainGroup.removeAll(),this._data=null}});e.exports=h},function(e,t,n){function o(e,t){e.eachSeriesByType("tree",function(e){i(e,t)})}var i=n(176);e.exports=o},function(e,t,n){function o(e,t){e.eachSeriesByType("tree",function(e){i(e,t)})}var i=n(176);e.exports=o},function(e,t){function n(e,t,n){for(var o,i=[e],r=[];o=i.pop();)if(r.push(o),o.isExpand){var a=o.children;if(a.length)for(var l=0;l=0;r--)o.push(i[r])}}t.eachAfter=n,t.eachBefore=o},function(e,t,n){n(1).registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(e,t){t.eachComponent({mainType:"series",subType:"tree",query:e},function(t){var n=e.dataIndex,o=t.getData().tree,i=o.getNodeByDataIndex(n);i.isExpand=!i.isExpand})})},function(e,t,n){var o=n(1);n(464),n(465),n(466);var i=n(468),r=n(467);o.registerVisual(i),o.registerLayout(r)},function(e,t,n){function o(e){this.group=new a.Group,e.add(this.group)}function i(e,t,n,o,i,r){var a=[[i?e:e-d,t],[e+n,t],[e+n,t+o],[i?e:e-d,t+o]];return!r&&a.splice(2,0,[e+n+d,t+o/2]),!i&&a.push([e,t+o/2]),a}function r(e,t,n){e.eventData={componentType:"series",componentSubType:"treemap",seriesIndex:t.componentIndex,seriesName:t.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&u(n,t)}}var a=n(2),l=n(6),s=n(0),c=n(66),u=c.wrapTreePathInfo,d=5;o.prototype={constructor:o,render:function(e,t,n,o){var i=e.getModel("breadcrumb"),r=this.group;if(r.removeAll(),i.get("show")&&n){var a=i.getModel("itemStyle.normal"),s=a.getModel("textStyle"),c={pos:{left:i.get("left"),right:i.get("right"),top:i.get("top"),bottom:i.get("bottom")},box:{width:t.getWidth(),height:t.getHeight()},emptyItemWidth:i.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,c,s),this._renderContent(e,c,a,s,o),l.positionElement(r,c.pos,c.box)}},_prepare:function(e,t,n){for(var o=e;o;o=o.parentNode){var i=o.getModel().get("name"),r=n.getTextRect(i),a=Math.max(r.width+16,t.emptyItemWidth);t.totalWidth+=a+8,t.renderList.push({node:o,text:i,width:a})}},_renderContent:function(e,t,n,o,c){for(var u=0,d=t.emptyItemWidth,f=e.get("breadcrumb.height"),p=l.getAvailableSize(t.pos,t.box),h=t.totalWidth,g=t.renderList,m=g.length-1;m>=0;m--){var v=g[m],b=v.node,x=v.width,y=v.text;h>p.width&&(h-=x-d,x=d,y=null);var _=new a.Polygon({shape:{points:i(u,0,x,f,m===g.length-1,0===m)},style:s.defaults(n.getItemStyle(),{lineJoin:"bevel",text:y,textFill:o.getTextColor(),textFont:o.getFont()}),z:10,onclick:s.curry(c,b)});this.group.add(_),r(_,e,b),u+=x+8}},remove:function(){this.group.removeAll()}};var f=o;e.exports=f},function(e,t,n){function o(e){var t=0;r.each(e.children,function(e){o(e);var n=e.value;r.isArray(n)&&(n=n[0]),t+=n});var n=e.value;r.isArray(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=t),n<0&&(n=0),r.isArray(e.value)?e.value[0]=n:e.value=n}function i(e,t){var n=t.get("color");if(n){e=e||[];var o;return r.each(e,function(e){var t=new s(e),n=t.get("color");(t.get("itemStyle.normal.color")||n&&"none"!==n)&&(o=!0)}),o||((e[0]||(e[0]={})).color=n.slice()),e}}var r=n(0),a=n(18),l=n(212),s=n(12),c=n(8),u=c.encodeHTML,d=c.addCommas,f=n(66),p=f.wrapTreePathInfo,h=a.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],_viewRoot:null,defaultOption:{progressive:0,hoverLayerThreshold:1/0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{normal:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}}},label:{normal:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0}},upperLabel:{normal:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},emphasis:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},itemStyle:{normal:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(e,t){var n={name:e.name,children:e.data};o(n);var r=e.levels||[];r=e.levels=i(r,t);var a={};return a.levels=r,l.createTree(n,this,a).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(e){var t=this.getData(),n=this.getRawValue(e),o=d(r.isArray(n)?n[0]:n),i=t.getName(e);return u(i+": "+o)},getDataParams:function(e){var t=a.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(e);return t.treePathInfo=p(n,this),t},setLayoutInfo:function(e){this.layoutInfo=this.layoutInfo||{},r.extend(this.layoutInfo,e)},mapIdToIndex:function(e){var t=this._idIndexMap;t||(t=this._idIndexMap=r.createHashMap(),this._idIndexMapCount=0);var n=t.get(e);return null==n&&t.set(e,n=this._idIndexMapCount++),n},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(e){e?this._viewRoot=e:e=this._viewRoot;var t=this.getData().tree.root;e&&(e===t||t.contains(e))||(this._viewRoot=t)}});e.exports=h},function(e,t,n){function o(){return{nodeGroup:[],background:[],content:[]}}function i(e,t,n,o,i,a,c,u,d,f){function p(e,t){L?!e.invisible&&a.push(e):(t(),e.__tmWillVisible||(e.invisible=!1))}function h(t,n,o,i,r,a){var u=c.getModel(),d=l.retrieve(e.getFormattedLabel(c.dataIndex,"normal",null,null,a?"upperLabel":"label"),u.get("name"));if(!a&&y.isLeafRoot){var f=e.get("drillDownIcon",!0);d=f?f+" "+d:d}var p=u.getModel(a?k:_),h=u.getModel(a?S:w),g=p.getShallow("show");s.setLabelStyle(t,n,p,h,{defaultText:g?d:null,autoColor:o,isRectText:!0}),a&&(t.textRect=l.clone(a)),t.truncate=g&&p.get("ellipsis")?{outerWidth:i,outerHeight:r,minChar:2}:null}function g(e,o,a,l){var s=null!=D&&n[e][D],c=i[e];return s?(n[e][D]=null,m(c,s,e)):L||(s=new o({z:r(a,l)}),s.__tmDepth=a,s.__tmStorageName=e,v(c,s,e)),t[e][P]=s}function m(e,t,n){(e[P]={}).old="nodeGroup"===n?t.position.slice():l.extend({},t.shape)}function v(e,t,n){var r=e[P]={},a=c.parentNode;if(a&&(!o||"drillDown"===o.direction)){var l=0,s=0,u=i.background[a.getRawIndex()];!o&&u&&u.old&&(l=u.old.width,s=u.old.height),r.old="nodeGroup"===n?[0,s]:{x:l,y:s,width:0,height:0}}r.fadein="nodeGroup"!==n}if(c){var y=c.getLayout();if(y&&y.isInView){var M=y.width,I=y.height,O=y.borderWidth,L=y.invisible,P=c.getRawIndex(),D=u&&u.getRawIndex(),z=c.viewChildren,R=y.upperHeight,N=z&&z.length,B=c.getModel("itemStyle.normal"),F=c.getModel("itemStyle.emphasis"),V=g("nodeGroup",b);if(V){if(d.add(V),V.attr("position",[y.x||0,y.y||0]),V.__tmNodeWidth=M,V.__tmNodeHeight=I,y.isAboveViewRoot)return V;var j=g("background",x,f,C);if(j&&function(t,n,o){n.dataIndex=c.dataIndex,n.seriesIndex=e.seriesIndex,n.setShape({x:0,y:0,width:M,height:I});var i=c.getVisual("borderColor",!0),r=F.get("borderColor");p(n,function(){var e=E(B);e.fill=i;var t=T(F);if(t.fill=r,o){var a=M-2*O;h(e,t,i,a,R,{x:O,y:0,width:a,height:R})}else e.text=t.text=null;n.setStyle(e),s.setHoverStyle(n,t)}),t.add(n)}(V,j,N&&y.upperHeight),!N){var $=g("content",x,f,A);$&&function(t,n){n.dataIndex=c.dataIndex,n.seriesIndex=e.seriesIndex;var o=Math.max(M-2*O,0),i=Math.max(I-2*O,0);n.culling=!0,n.setShape({x:O,y:O,width:o,height:i});var r=c.getVisual("color",!0);p(n,function(){var e=E(B);e.fill=r;var t=T(F);h(e,t,r,o,i),n.setStyle(e),s.setHoverStyle(n,t)}),t.add(n)}(V,$)}return V}}}}function r(e,t){var n=e*M+t;return(n-1)/n}var a=n(1),l=n(0),s=n(2),c=n(56),u=n(66),d=n(463),f=n(86),p=n(10),h=n(24),g=n(606),m=n(58),v=l.bind,b=s.Group,x=s.Rect,y=l.each,_=["label","normal"],w=["label","emphasis"],k=["upperLabel","normal"],S=["upperLabel","emphasis"],M=10,C=1,A=2,T=m([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),E=function(e){var t=T(e);return t.stroke=t.fill=t.lineWidth=null,t},I=a.extendChartView({type:"treemap",init:function(e,t){this._containerGroup,this._storage=o(),this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(e,t,n,o){var i=t.findComponents({mainType:"series",subType:"treemap",query:o});if(!(l.indexOf(i,e)<0)){this.seriesModel=e,this.api=n,this.ecModel=t;var r=u.retrieveTargetInfo(o,e),a=o&&o.type,s=e.layoutInfo,c=!this._oldTree,d=this._storage,f="treemapRootToNode"===a&&r&&d?{rootNodeGroup:d.nodeGroup[r.node.getRawIndex()],direction:o.direction}:null,p=this._giveContainerGroup(s),h=this._doRender(p,e,f);c||a&&"treemapZoomToNode"!==a&&"treemapRootToNode"!==a?h.renderFinally():this._doAnimation(p,h,e,f),this._resetController(n),this._renderBreadcrumb(e,n,r)}},_giveContainerGroup:function(e){var t=this._containerGroup;return t||(t=this._containerGroup=new b,this._initEvents(t),this.group.add(t)),t.attr("position",[e.x,e.y]),t},_doRender:function(e,t,n){function r(e,t,n,o,i){function a(e){return e.getId()}function s(a,l){var s=null!=a?e[a]:null,c=null!=l?t[l]:null,u=g(s,c,n,i);u&&r(s&&s.viewChildren||[],c&&c.viewChildren||[],u,o,i+1)}o?(t=e,y(e,function(e,t){!e.isRemoved()&&s(t,t)})):new c(t,e,a,a).add(s).update(s).remove(l.curry(s,null)).execute()}function a(){y(m,function(e){y(e,function(e){e.parent&&e.parent.remove(e)})}),y(h,function(e){e.invisible=!0,e.dirty()})}var s=t.getData().tree,u=this._oldTree,d=o(),f=o(),p=this._storage,h=[],g=l.curry(i,t,f,p,n,d,h);r(s.root?[s.root]:[],u&&u.root?[u.root]:[],e,s===u||!u,0);var m=function(e){var t=o();return e&&y(e,function(e,n){var o=t[n];y(e,function(e){e&&(o.push(e),e.__tmWillDelete=1)})}),t}(p);return this._oldTree=s,this._storage=f,{lastsForAnimation:d,willDeleteEls:m,renderFinally:a}},_doAnimation:function(e,t,n,o){if(n.get("animation")){var i=n.get("animationDurationUpdate"),r=n.get("animationEasing"),a=g.createWrap();y(t.willDeleteEls,function(e,t){y(e,function(e,n){if(!e.invisible){var l,s=e.parent;if(o&&"drillDown"===o.direction)l=s===o.rootNodeGroup?{shape:{x:0,y:0,width:s.__tmNodeWidth,height:s.__tmNodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var c=0,u=0;s.__tmWillDelete||(c=s.__tmNodeWidth/2,u=s.__tmNodeHeight/2),l="nodeGroup"===t?{position:[c,u],style:{opacity:0}}:{shape:{x:c,y:u,width:0,height:0},style:{opacity:0}}}l&&a.add(e,l,i,r)}})}),y(this._storage,function(e,n){y(e,function(e,o){var s=t.lastsForAnimation[n][o],c={};s&&("nodeGroup"===n?s.old&&(c.position=e.position.slice(),e.attr("position",s.old)):(s.old&&(c.shape=l.extend({},e.shape),e.setShape(s.old)),s.fadein?(e.setStyle("opacity",0),c.style={opacity:1}):1!==e.style.opacity&&(c.style={opacity:1})),a.add(e,c,i,r))})},this),this._state="animating",a.done(v(function(){this._state="ready",t.renderFinally()},this)).start()}},_resetController:function(e){var t=this._controller;t||(t=this._controller=new f(e.getZr()),t.enable(this.seriesModel.get("roam")),t.on("pan",v(this._onPan,this)),t.on("zoom",v(this._onZoom,this)));var n=new p(0,0,e.getWidth(),e.getHeight());t.setPointerChecker(function(e,t,o){return n.contain(t,o)})},_clearController:function(){var e=this._controller;e&&(e.dispose(),e=null)},_onPan:function(e,t){if("animating"!==this._state&&(Math.abs(e)>3||Math.abs(t)>3)){var n=this.seriesModel.getData().tree.root;if(!n)return;var o=n.getLayout();if(!o)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x+e,y:o.y+t,width:o.width,height:o.height}})}},_onZoom:function(e,t,n){if("animating"!==this._state){var o=this.seriesModel.getData().tree.root;if(!o)return;var i=o.getLayout();if(!i)return;var r=new p(i.x,i.y,i.width,i.height),a=this.seriesModel.layoutInfo;t-=a.x,n-=a.y;var l=h.create();h.translate(l,l,[-t,-n]),h.scale(l,l,[e,e]),h.translate(l,l,[t,n]),r.applyTransform(l),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:r.x,y:r.y,width:r.width,height:r.height}})}},_initEvents:function(e){e.on("click",function(e){if("ready"===this._state){var t=this.seriesModel.get("nodeClick",!0);if(t){var n=this.findTarget(e.offsetX,e.offsetY);if(n){var o=n.node;if(o.getLayout().isLeafRoot)this._rootToNode(n);else if("zoomToNode"===t)this._zoomToNode(n);else if("link"===t){var i=o.hostTree.data.getItemModel(o.dataIndex),r=i.get("link",!0),a=i.get("target",!0)||"blank";r&&window.open(r,a)}}}}},this)},_renderBreadcrumb:function(e,t,n){function o(t){"animating"!==this._state&&(u.aboveViewRoot(e.getViewRoot(),t)?this._rootToNode({node:t}):this._zoomToNode({node:t}))}n||(n=null!=e.get("leafDepth",!0)?{node:e.getViewRoot()}:this.findTarget(t.getWidth()/2,t.getHeight()/2))||(n={node:e.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new d(this.group))).render(e,t,n.node,v(o,this))},remove:function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=o(),this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},dispose:function(){this._clearController()},_zoomToNode:function(e){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},_rootToNode:function(e){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},findTarget:function(e,t){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},function(o){var i=this._storage.background[o.getRawIndex()];if(i){var r=i.transformCoordToLocal(e,t),a=i.shape;if(!(a.x<=r[0]&&r[0]<=a.x+a.width&&a.y<=r[1]&&r[1]<=a.y+a.height))return!1;n={node:o,offsetX:r[0],offsetY:r[1]}}},this),n}});e.exports=I},function(e,t,n){for(var o=n(1),i=n(66),r=function(){},a=["treemapZoomToNode","treemapRender","treemapMove"],l=0;l=0;s--){var c=i["asc"===o?a-s-1:s].getValue();c/n*ta[1]&&(a[1]=t)})}else a=[NaN,NaN];return{sum:o,dataExtent:a}}function c(e,t,n){for(var o,i=0,r=1/0,a=0,l=e.length;ai&&(i=o));var s=e.area*e.area,c=t*t*n;return s?w(c*i/s,s/(c*r)):1/0}function u(e,t,n,o,i){var r=t===n.width?0:1,a=1-r,l=["x","y"],s=["width","height"],c=n[l[r]],u=t?e.area/t:0;(i||u>n[s[a]])&&(u=n[s[a]]);for(var d=0,f=e.length;dx&&(c=x),r=l}c=s.length||e===s[e.depth])&&i(e,d(f,x,e,t,k,u),n,o,s,u)})}else g=a(x),e.setVisual("color",g)}}function r(e,t,n,o){var i=h.extend({},t);return h.each(["color","colorAlpha","colorSaturation"],function(r){var a=e.get(r,!0);null==a&&n&&(a=n[r]),null==a&&(a=t[r]),null==a&&(a=o.get(r)),null!=a&&(i[r]=a)}),i}function a(e){var t=s(e,"color");if(t){var n=s(e,"colorAlpha"),o=s(e,"colorSaturation");return o&&(t=p.modifyHSL(t,null,null,o)),n&&(t=p.modifyAlpha(t,n)),t}}function l(e,t){return null!=t?p.modifyHSL(t,null,null,e):null}function s(e,t){var n=e[t];if(null!=n&&"none"!==n)return n}function c(e,t,n,o,i,r){if(r&&r.length){var a=u(t,"color")||null!=i.color&&"none"!==i.color&&(u(t,"colorAlpha")||u(t,"colorSaturation"));if(a){var l=t.get("visualMin"),s=t.get("visualMax"),c=n.dataExtent.slice();null!=l&&lc[1]&&(c[1]=s);var d=t.get("colorMappingBy"),p={type:a.name,dataExtent:c,visual:a.range};"color"!==p.type||"index"!==d&&"id"!==d?p.mappingMethod="linear":(p.mappingMethod="category",p.loop=!0);var h=new f(p);return h.__drColorMappingBy=d,h}}}function u(e,t){var n=e.get(t);return g(n)&&n.length?{name:t,range:n}:null}function d(e,t,n,o,i,r){var a=h.extend({},t);if(i){var l=i.type,s="color"===l&&i.__drColorMappingBy,c="index"===s?o:"id"===s?r.mapIdToIndex(n.getId()):n.getValue(e.get("visualDimension"));a[l]=i.mapValueToVisual(c)}return a}var f=n(45),p=n(32),h=n(0),g=h.isArray,m="itemStyle.normal";e.exports=o},function(e,t,n){n(125),n(471)},function(e,t,n){n(208),n(472)},function(e,t,n){function o(e,t,n){t[1]>t[0]&&(t=t.slice().reverse());var o=e.coordToPoint([t[0],n]),i=e.coordToPoint([t[1],n]);return{x1:o[0],y1:o[1],x2:i[0],y2:i[1]}}function i(e){return e.getRadiusAxis().inverse?0:1}var r=n(0),a=n(2),l=n(12),s=n(43),c=["axisLine","axisLabel","axisTick","splitLine","splitArea"],u=s.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(e,t){if(this.group.removeAll(),e.get("show")){var n=e.axis,o=n.polar,i=o.getRadiusAxis().getExtent(),a=n.getTicksCoords();"category"!==n.type&&a.pop(),r.each(c,function(t){!e.get(t+".show")||n.scale.isBlank()&&"axisLine"!==t||this["_"+t](e,o,a,i)},this)}},_axisLine:function(e,t,n,o){var r=e.getModel("axisLine.lineStyle"),l=new a.Circle({shape:{cx:t.cx,cy:t.cy,r:o[i(t)]},style:r.getLineStyle(),z2:1,silent:!0});l.style.fill=null,this.group.add(l)},_axisTick:function(e,t,n,l){var s=e.getModel("axisTick"),c=(s.get("inside")?-1:1)*s.get("length"),u=l[i(t)],d=r.map(n,function(e){return new a.Line({shape:o(t,[u,u+c],e)})});this.group.add(a.mergePath(d,{style:r.defaults(s.getModel("lineStyle").getLineStyle(),{stroke:e.get("axisLine.lineStyle.color")})}))},_axisLabel:function(e,t,n,o){for(var r=e.axis,s=e.get("data"),c=e.getModel("axisLabel"),u=e.getFormattedLabels(),d=c.get("margin"),f=r.getLabelsCoords(),p=0;pm?"left":"right",x=Math.abs(g[1]-v)/h<.3?"middle":g[1]>v?"top":"bottom";s&&s[p]&&s[p].textStyle&&(c=new l(s[p].textStyle,c,c.ecModel));var y=new a.Text({silent:!0});this.group.add(y),a.setTextStyle(y.style,c,{x:g[0],y:g[1],textFill:c.getTextColor()||e.get("axisLine.lineStyle.color"),text:u[p],textAlign:b,textVerticalAlign:x})}},_splitLine:function(e,t,n,i){var l=e.getModel("splitLine"),s=l.getModel("lineStyle"),c=s.get("color"),u=0;c=c instanceof Array?c:[c];for(var d=[],f=0;f=0)&&n({type:"updateAxisPointer",currTrigger:e,x:t&&t.offsetX,y:t&&t.offsetY})})},remove:function(e,t){i.unregister(t.getZr(),"axisPointer"),r.superApply(this._model,"remove",arguments)},dispose:function(e,t){i.unregister("axisPointer",t),r.superApply(this._model,"dispose",arguments)}}),a=r;e.exports=a},function(e,t,n){function o(e,t,n,o,i){var r=t.axis,l=r.dataToCoord(e),u=o.getAngleAxis().getExtent()[0];u=u/180*Math.PI;var d,f,p,h=o.getRadiusAxis().getExtent();if("radius"===r.dim){var g=s.create();s.rotate(g,g,u),s.translate(g,g,[o.cx,o.cy]),d=a.applyTransform([l,-i],g);var m=t.getModel("axisLabel").get("rotate")||0,v=c.innerTextLayout(u,m*Math.PI/180,-1);f=v.textAlign,p=v.textVerticalAlign}else{var b=h[1];d=o.coordToPoint([b+i,l]);var x=o.cx,y=o.cy;f=Math.abs(d[0]-x)/b<.3?"center":d[0]>x?"left":"right",p=Math.abs(d[1]-y)/b<.3?"middle":d[1]>y?"top":"bottom"}return{position:d,align:f,verticalAlign:p}}var i=n(8),r=n(116),a=n(2),l=n(85),s=n(24),c=n(42),u=n(43),d=r.extend({makeElOption:function(e,t,n,r,a){var s=n.axis;"angle"===s.dim&&(this.animationThreshold=Math.PI/18);var c,u=s.polar,d=u.getOtherAxis(s),p=d.getExtent();c=s["dataTo"+i.capitalFirst(s.dim)](t);var h=r.get("type");if(h&&"none"!==h){var g=l.buildElStyle(r),m=f[h](s,u,c,p,g);m.style=g,e.graphicKey=m.type,e.pointer=m}var v=r.get("label.margin"),b=o(t,n,r,u,v);l.buildLabelElOption(e,n,r,a,b)}}),f={line:function(e,t,n,o,i){return"angle"===e.dim?{type:"Line",shape:l.makeLineShape(t.coordToPoint([o[0],n]),t.coordToPoint([o[1],n]))}:{type:"Circle",shape:{cx:t.cx,cy:t.cy,r:n}}},shadow:function(e,t,n,o,i){var r=e.getBandWidth(),a=Math.PI/180;return"angle"===e.dim?{type:"Sector",shape:l.makeSectorShape(t.cx,t.cy,o[0],o[1],(-n-r/2)*a,(r/2-n)*a)}:{type:"Sector",shape:l.makeSectorShape(t.cx,t.cy,n-r/2,n+r/2,0,2*Math.PI)}}};u.registerAxisPointerClass("PolarAxisPointer",d);var p=d;e.exports=p},function(e,t,n){function o(e){return e.isHorizontal()?0:1}function i(e,t){var n=e.getRect();return[n[u[t]],n[u[t]]+n[d[t]]]}var r=n(2),a=n(116),l=n(85),s=n(179),c=n(43),u=["x","y"],d=["width","height"],f=a.extend({makeElOption:function(e,t,n,r,a){var c=n.axis,u=c.coordinateSystem,d=i(u,1-o(c)),f=u.dataToPoint(t)[0],h=r.get("type");if(h&&"none"!==h){var g=l.buildElStyle(r),m=p[h](c,f,d,g);m.style=g,e.graphicKey=m.type,e.pointer=m}var v=s.layout(n);l.buildCartesianSingleLabelElOption(t,e,v,n,r,a)},getHandleTransform:function(e,t,n){var o=s.layout(t,{labelInside:!1});return o.labelMargin=n.get("handle.margin"),{position:l.getTransformedPosition(t.axis,e,o),rotation:o.rotation+(o.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(e,t,n,r){var a=n.axis,l=a.coordinateSystem,s=o(a),c=i(l,s),u=e.position;u[s]+=t[s],u[s]=Math.min(c[1],u[s]),u[s]=Math.max(c[0],u[s]);var d=i(l,1-s),f=(d[1]+d[0])/2,p=[f,f];return p[s]=u[s],{position:u,rotation:e.rotation,cursorPoint:p,tooltipOption:{verticalAlign:"middle"}}}}),p={line:function(e,t,n,i){var a=l.makeLineShape([t,n[0]],[t,n[1]],o(e));return r.subPixelOptimizeLine({shape:a,style:i}),{type:"Line",shape:a}},shadow:function(e,t,n,i){var r=e.getBandWidth(),a=n[1]-n[0];return{type:"Rect",shape:l.makeRectShape([t-r/2,n[0]],[r,a],o(e))}}};c.registerAxisPointerClass("SingleAxisPointer",f);var h=f;e.exports=h},function(e,t,n){function o(e,t,n){var o=e.currTrigger,r=[e.x,e.y],g=e,m=e.dispatchAction||h.bind(n.dispatchAction,n),y=t.getComponent("axisPointer").coordSysAxesInfo;if(y){p(r)&&(r=v({seriesIndex:g.seriesIndex,dataIndex:g.dataIndex},t).point);var _=p(r),w=g.axesInfo,k=y.axesInfo,S="leave"===o||p(r),M={},C={},A={list:[],map:{}},T={showPointer:x(a,C),showTooltip:x(l,A)};b(y.coordSysMap,function(e,t){var n=_||e.containPoint(r);b(y.coordSysAxesInfo[t],function(e,t){var o=e.axis,a=d(w,e);if(!S&&n&&(!w||a)){var l=a&&a.value;null!=l||_||(l=o.pointToData(r)),null!=l&&i(e,l,T,!1,M)}})});var E={};return b(k,function(e,t){var n=e.linkGroup;n&&!C[t]&&b(n.axesInfo,function(t,o){var i=C[o];if(t!==e&&i){var r=i.value;n.mapper&&(r=e.axis.scale.parse(n.mapper(r,f(t),f(e)))),E[e.key]=r}})}),b(E,function(e,t){i(k[t],e,T,!0,M)}),s(C,k,M),c(A,r,e,m),u(k,m,n),M}}function i(e,t,n,o,i){var a=e.axis;if(!a.scale.isBlank()&&a.containData(t)){if(!e.involveSeries)return void n.showPointer(e,t);var l=r(t,e),s=l.payloadBatch,c=l.snapToValue;s[0]&&null==i.seriesIndex&&h.extend(i,s[0]),!o&&e.snap&&a.containData(c)&&null!=c&&(t=c),n.showPointer(e,t,s,i),n.showTooltip(e,l,c)}}function r(e,t){var n=t.axis,o=n.dim,i=e,r=[],a=Number.MAX_VALUE,l=-1;return b(t.seriesModels,function(t,s){var c,u,d=t.coordDimToDataDim(o);if(t.getAxisTooltipData){var f=t.getAxisTooltipData(d,e,n);u=f.dataIndices,c=f.nestestValue}else{if(u=t.getData().indicesOfNearest(d[0],e,!1,"category"===n.type?.5:null),!u.length)return;c=t.getData().get(d[0],u[0])}if(null!=c&&isFinite(c)){var p=e-c,h=Math.abs(p);h<=a&&((h=0&&l<0)&&(a=h,l=p,i=c,r.length=0),b(u,function(e){r.push({seriesIndex:t.seriesIndex,dataIndexInside:e,dataIndex:t.getData().getRawIndex(e)})}))}}),{payloadBatch:r,snapToValue:i}}function a(e,t,n,o){e[t.key]={value:n,payloadBatch:o}}function l(e,t,n,o){var i=n.payloadBatch,r=t.axis,a=r.model,l=t.axisPointerModel;if(t.triggerTooltip&&i.length){var s=t.coordSys.model,c=m.makeKey(s),u=e.map[c];u||(u=e.map[c]={coordSysId:s.id,coordSysIndex:s.componentIndex,coordSysType:s.type,coordSysMainType:s.mainType,dataByAxis:[]},e.list.push(u)),u.dataByAxis.push({axisDim:r.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:o,valueLabelOpt:{precision:l.get("label.precision"),formatter:l.get("label.formatter")},seriesDataIndices:i.slice()})}}function s(e,t,n){var o=n.axesInfo=[];b(t,function(t,n){var i=t.axisPointerModel.option,r=e[n];r?(!t.useHandle&&(i.status="show"),i.value=r.value,i.seriesDataIndices=(r.payloadBatch||[]).slice()):!t.useHandle&&(i.status="hide"),"show"===i.status&&o.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:i.value})})}function c(e,t,n,o){if(p(t)||!e.list.length)return void o({type:"hideTip"});var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};o({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function u(e,t,n){var o=n.getZr(),i=y(o).axisPointerLastHighlights||{},r=y(o).axisPointerLastHighlights={};b(e,function(e,t){var n=e.axisPointerModel.option;"show"===n.status&&b(n.seriesDataIndices,function(e){var t=e.seriesIndex+" | "+e.dataIndex;r[t]=e})});var a=[],l=[];h.each(i,function(e,t){!r[t]&&l.push(e)}),h.each(r,function(e,t){!i[t]&&a.push(e)}),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),a.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,batch:a})}function d(e,t){for(var n=0;n<(e||[]).length;n++){var o=e[n];if(t.axis.dim===o.axisDim&&t.axis.model.componentIndex===o.axisIndex)return o}}function f(e){var t=e.axis.model,n={},o=n.axisDim=e.axis.dim;return n.axisIndex=n[o+"AxisIndex"]=t.componentIndex,n.axisName=n[o+"AxisName"]=t.name,n.axisId=n[o+"AxisId"]=t.id,n}function p(e){return!e||null==e[0]||isNaN(e[0])||null==e[1]||isNaN(e[1])}var h=n(0),g=n(5),m=n(84),v=n(181),b=h.each,x=h.curry,y=g.makeGetter();e.exports=o},function(e,t,n){var o=n(1),i=n(486);n(488),n(483),n(484),n(485),n(538),o.registerPreprocessor(i)},function(e,t,n){function o(e,t){return a.merge({brushType:e.brushType,brushMode:e.brushMode,transformable:e.transformable,brushStyle:new s(e.brushStyle).getItemStyle(),removeOnClick:e.removeOnClick,z:e.z},t,!0)}var i=n(4),r=(i.__DEV__,n(1)),a=n(0),l=n(92),s=n(12),c=["#ddd"],u=r.extendComponentModel({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(e,t){var n=this.option;!t&&l.replaceVisualOption(n,e,["inBrush","outOfBrush"]),n.inBrush=n.inBrush||{},n.outOfBrush=n.outOfBrush||{color:c}},setAreas:function(e){e&&(this.areas=a.map(e,function(e){return o(this.option,e)},this))},setBrushOption:function(e){this.brushOption=o(this.option,e),this.brushType=this.brushOption.brushType}}),d=u;e.exports=d},function(e,t,n){function o(e,t,n,o){(!o||o.$from!==e.id)&&this._brushController.setPanels(e.brushTargetManager.makePanelOpts(n)).enableBrush(e.brushOption).updateCovers(e.areas.slice())}var i=n(1),r=n(0),a=n(118),l=i.extendComponentView({type:"brush",init:function(e,t){this.ecModel=e,this.api=t,this.model,(this._brushController=new a(t.getZr())).on("brush",r.bind(this._onBrush,this)).mount()},render:function(e){return this.model=e,o.apply(this,arguments)},updateView:o,updateLayout:o,updateVisual:o,dispose:function(){this._brushController.dispose()},_onBrush:function(e,t){var n=this.model.id;this.model.brushTargetManager.setOutputRanges(e,this.ecModel),(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:n,areas:r.clone(e),$from:n})}});e.exports=l},function(e,t,n){var o=n(1);o.registerAction({type:"brush",event:"brush",update:"updateView"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(t){t.setAreas(e.areas)})}),o.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},function(){})},function(e,t,n){function o(e,t){var n=e&&e.brush;if(r.isArray(n)||(n=n?[n]:[]),n.length){var o=[];r.each(n,function(e){var t=e.hasOwnProperty("toolbox")?e.toolbox:[];t instanceof Array&&(o=o.concat(t))});var l=e&&e.toolbox;r.isArray(l)&&(l=l[0]),l||(l={feature:{}},e.toolbox=[l]);var s=l.feature||(l.feature={}),c=s.brush||(s.brush={}),u=c.type||(c.type=[]);u.push.apply(u,o),i(u),t&&!u.length&&u.push.apply(u,a)}}function i(e){var t={};r.each(e,function(e){t[e]=1}),e.length=0,r.each(t,function(t,n){e.push(n)})}var r=n(0),a=["rect","polygon","keep","clear"];e.exports=o},function(e,t,n){function o(e){var t=["x","y"],n=["width","height"];return{point:function(t,n,o){if(t){var r=o.range;return i(t[e],r)}},rect:function(o,r,a){if(o){var l=a.range,s=[o[t[e]],o[t[e]]+o[n[e]]];return s[1]1)return!1;var f=s(n-e,i-e,o-t,r-t)/u;return!(f<0||f>1)}function l(e){return e<=1e-6&&e>=-1e-6}function s(e,t,n,o){return e*o-t*n}var c=n(240),u=n(10),d={lineX:o(0),lineY:o(1),rect:{point:function(e,t,n){return e&&n.boundingRect.contain(e[0],e[1])},rect:function(e,t,n){return e&&n.boundingRect.intersect(e)}},polygon:{point:function(e,t,n){return e&&n.boundingRect.contain(e[0],e[1])&&c.contain(n.range,e[0],e[1])},rect:function(e,t,n){var o=n.range;if(!e||o.length<=1)return!1;var i=e.x,a=e.y,l=e.width,s=e.height,d=o[0];return!!(c.contain(o,i,a)||c.contain(o,i+l,a)||c.contain(o,i,a+s)||c.contain(o,i+l,a+s)||u.create(e).contain(d[0],d[1])||r(i,a,i+l,a,o)||r(i,a,i,a+s,o)||r(i+l,a,i+l,a+s,o)||r(i,a+s,i+l,a+s,o))||void 0}}},f=d;e.exports=f},function(e,t,n){function o(e,t,n,o,r){if(r){var a=e.getZr();a[x]||(a[b]||(a[b]=i),g.createOrUpdate(a,b,n,t)(e,o))}}function i(e,t){if(!e.isDisposed()){var n=e.getZr();n[x]=!0,e.dispatchAction({type:"brushSelect",batch:t}),n[x]=!1}}function r(e,t,n,o){for(var i=0,r=t.length;it[0][1]&&(t[0][1]=r[0]),r[1]t[1][1]&&(t[1][1]=r[1])}return t&&c(t)}}},function(e,t,n){n(554),n(555),n(490)},function(e,t,n){var o=n(1),i=n(0),r=n(2),a=n(8),l=n(3),s={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},c={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},u=o.extendComponentView({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(e,t,n){var o=this.group;o.removeAll();var i=e.coordinateSystem,r=i.getRangeInfo(),a=i.getOrient();this._renderDayRect(e,r,o),this._renderLines(e,r,a,o),this._renderYearText(e,r,a,o),this._renderMonthText(e,a,o),this._renderWeekText(e,r,a,o)},_renderDayRect:function(e,t,n){for(var o=e.coordinateSystem,i=e.getModel("itemStyle.normal").getItemStyle(),a=o.getCellWidth(),l=o.getCellHeight(),s=t.start.time;s<=t.end.time;s=o.getNextNDay(s,1).time){var c=o.dataToRect([s],!1).tl,u=new r.Rect({shape:{x:c[0],y:c[1],width:a,height:l},cursor:"default",style:i});n.add(u)}},_renderLines:function(e,t,n,o){function i(t){r._firstDayOfMonth.push(a.getDateInfo(t)),r._firstDayPoints.push(a.dataToRect([t],!1).tl);var i=r._getLinePointsOfOneWeek(e,t,n);r._tlpoints.push(i[0]),r._blpoints.push(i[i.length-1]),s&&r._drawSplitline(i,l,o)}var r=this,a=e.coordinateSystem,l=e.getModel("splitLine.lineStyle").getLineStyle(),s=e.get("splitLine.show"),c=l.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=t.start,d=0;u.time<=t.end.time;d++){i(u.formatedDate),0===d&&(u=a.getDateInfo(t.start.y+"-"+t.start.m));var f=u.date;f.setMonth(f.getMonth()+1),u=a.getDateInfo(f)}i(a.getNextNDay(t.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,c,n),l,o),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,c,n),l,o)},_getEdgesPoints:function(e,t,n){var o=[e[0].slice(),e[e.length-1].slice()],i="horizontal"===n?0:1;return o[0][i]=o[0][i]-t/2,o[1][i]=o[1][i]+t/2,o},_drawSplitline:function(e,t,n){var o=new r.Polyline({z2:20,shape:{points:e},style:t});n.add(o)},_getLinePointsOfOneWeek:function(e,t,n){var o=e.coordinateSystem;t=o.getDateInfo(t);for(var i=[],r=0;r<7;r++){var a=o.getNextNDay(t.time,r),l=o.dataToRect([a.time],!1);i[2*a.day]=l.tl,i[2*a.day+1]=l["horizontal"===n?"bl":"tr"]}return i},_formatterLabel:function(e,t){return"string"==typeof e&&e?a.formatTplSimple(e,t):"function"==typeof e?e(t):t.nameMap},_yearTextPositionControl:function(e,t,n,o,i){t=t.slice();var r=["center","bottom"];"bottom"===o?(t[1]+=i,r=["center","top"]):"left"===o?t[0]-=i:"right"===o?(t[0]+=i,r=["center","top"]):t[1]-=i;var a=0;return"left"!==o&&"right"!==o||(a=Math.PI/2),{rotation:a,position:t,style:{textAlign:r[0],textVerticalAlign:r[1]}}},_renderYearText:function(e,t,n,o){var i=e.getModel("yearLabel");if(i.get("show")){var a=i.get("margin"),l=i.get("position");l||(l="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],c=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,d="horizontal"===n?0:1,f={top:[c,s[d][1]],bottom:[c,s[1-d][1]],left:[s[1-d][0],u],right:[s[d][0],u]},p=t.start.y;+t.end.y>+t.start.y&&(p=p+"-"+t.end.y);var h=i.get("formatter"),g={start:t.start.y,end:t.end.y,nameMap:p},m=this._formatterLabel(h,g),v=new r.Text({z2:30});r.setTextStyle(v.style,i,{text:m}),v.attr(this._yearTextPositionControl(v,f[l],n,l,a)),o.add(v)}},_monthTextPositionControl:function(e,t,n,o,i){var r="left",a="top",l=e[0],s=e[1];return"horizontal"===n?(s+=i,t&&(r="center"),"start"===o&&(a="bottom")):(l+=i,t&&(a="middle"),"start"===o&&(r="right")),{x:l,y:s,textAlign:r,textVerticalAlign:a}},_renderMonthText:function(e,t,n){var o=e.getModel("monthLabel");if(o.get("show")){var a=o.get("nameMap"),l=o.get("margin"),c=o.get("position"),u=o.get("align"),d=[this._tlpoints,this._blpoints];i.isString(a)&&(a=s[a.toUpperCase()]||[]);var f="start"===c?0:1,p="horizontal"===t?0:1;l="start"===c?-l:l;for(var h="center"===u,g=0;go[1]&&(o[1]=t[1])})}),o[1]0?0:NaN);var a=n.getMax(!0);return null!=a&&"dataMax"!==a&&"function"!=typeof a?t[1]=a:i&&(t[1]=r>0?r-1:NaN),n.get("scale",!0)||(t[0]>0&&(t[0]=0),t[1]<0&&(t[1]=0)),t}function r(e,t){var n=e.getAxisModel(),o=e._percentWindow,i=e._valueWindow;if(o){var r=s.getPixelPrecision(i,[0,500]);r=Math.min(r,20);var a=t||0===o[0]&&100===o[1];n.setRange(a?null:+i[0].toFixed(r),a?null:+i[1].toFixed(r))}}function a(e){var t=e._minMaxSpan={},n=e._dataZoomModel;u(["min","max"],function(o){t[o+"Span"]=n.get(o+"Span");var i=n.get(o+"ValueSpan");if(null!=i&&(t[o+"ValueSpan"]=i,null!=(i=e.getAxisModel().axis.scale.parse(i)))){var r=e._dataExtent;t[o+"Span"]=s.linearMap(r[0]+i,r,[0,100],!0)}})}var l=n(0),s=n(3),c=n(117),u=l.each,d=s.asc,f=function(e,t,n,o){this._dimName=e,this._axisIndex=t,this._valueWindow,this._percentWindow,this._dataExtent,this._minMaxSpan,this.ecModel=o,this._dataZoomModel=n};f.prototype={constructor:f,hostedBy:function(e){return this._dataZoomModel===e},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var e=[],t=this.ecModel;return t.eachSeries(function(n){if(c.isCoordSupported(n.get("coordinateSystem"))){var o=this._dimName,i=t.queryComponents({mainType:o+"Axis",index:n.get(o+"AxisIndex"),id:n.get(o+"AxisId")})[0];this._axisIndex===(i&&i.componentIndex)&&e.push(n)}},this),e},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var e,t,n=this._dimName,o=this.ecModel,i=this.getAxisModel();"x"===n||"y"===n?(t="gridIndex",e="x"===n?"y":"x"):(t="polarIndex",e="angle"===n?"radius":"angle");var r;return o.eachComponent(e+"Axis",function(e){(e.get(t)||0)===(i.get(t)||0)&&(r=e)}),r},getMinMaxSpan:function(){return l.clone(this._minMaxSpan)},calculateDataWindow:function(e){var t=this._dataExtent,n=this.getAxisModel(),o=n.axis.scale,i=this._dataZoomModel.getRangePropMode(),r=[0,100],a=[e.start,e.end],l=[];return u(["startValue","endValue"],function(t){l.push(null!=e[t]?o.parse(e[t]):null)}),u([0,1],function(e){var n=l[e],c=a[e];"percent"===i[e]?(null==c&&(c=r[e]),n=o.parse(s.linearMap(c,r,t,!0))):c=s.linearMap(n,t,r,!0),l[e]=n,a[e]=c}),{valueWindow:d(l),percentWindow:d(a)}},reset:function(e){if(e===this._dataZoomModel){this._dataExtent=o(this,this._dimName,this.getTargetSeriesModels());var t=this.calculateDataWindow(e.option);this._valueWindow=t.valueWindow,this._percentWindow=t.percentWindow,a(this),r(this)}},restore:function(e){e===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,r(this,!0))},filterData:function(e){function t(e){return e>=r[0]&&e<=r[1]}if(e===this._dataZoomModel){var n=this._dimName,o=this.getTargetSeriesModels(),i=e.get("filterMode"),r=this._valueWindow;if("none"!==i){var a=this.getOtherAxisModel();e.get("$fromToolbox")&&a&&"category"===a.get("type")&&(i="empty"),u(o,function(e){var o=e.getData(),a=e.coordDimToDataDim(n);"weakFilter"===i?o&&o.filterSelf(function(e){for(var t,n,i,l=0;lr[1];if(c&&!u&&!d)return!0;c&&(i=!0),u&&(t=!0),d&&(n=!0)}return i&&t&&n}):o&&u(a,function(n){"empty"===i?e.setData(o.map(n,function(e){return t(e)?e:NaN})):o.filterSelf(n,t)})})}}}};var p=f;e.exports=p},function(e,t,n){var o=n(68),i=o.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}});e.exports=i},function(e,t,n){var o=n(0),i=n(69),r=n(71),a=n(499),l=o.bind,s=i.extend({type:"dataZoom.inside",init:function(e,t){this._range},render:function(e,t,n,i){s.superApply(this,"render",arguments),a.shouldRecordRange(i,e.id)&&(this._range=e.getPercentRange()),o.each(this.getTargetCoordInfo(),function(t,i){var r=o.map(t,function(e){return a.generateCoordId(e.model)});o.each(t,function(t){var o=t.model,s=e.option;a.register(n,{coordId:a.generateCoordId(o),allCoordIds:r,containsPoint:function(e,t,n){return o.coordinateSystem.containPoint([t,n])},dataZoomId:e.id,throttleRate:e.get("throttle",!0),panGetRange:l(this._onPan,this,t,i),zoomGetRange:l(this._onZoom,this,t,i),zoomLock:s.zoomLock,disabled:s.disabled,roamControllerOpt:{zoomOnMouseWheel:s.zoomOnMouseWheel,moveOnMouseMove:s.moveOnMouseMove,preventDefaultMouseMove:s.preventDefaultMouseMove}})},this)},this)},dispose:function(){a.unregister(this.api,this.dataZoomModel.id),s.superApply(this,"dispose",arguments),this._range=null},_onPan:function(e,t,n,o,i,a,l,s,u){var d=this._range.slice(),f=e.axisModels[0];if(f){var p=c[t]([a,l],[s,u],f,n,e),h=p.signal*(d[1]-d[0])*p.pixel/p.pixelLength;return r(h,d,[0,100],"all"),this._range=d}},_onZoom:function(e,t,n,o,i,a){var l=this._range.slice(),s=e.axisModels[0];if(s){var u=c[t](null,[i,a],s,n,e),d=(u.signal>0?u.pixelStart+u.pixelLength-u.pixel:u.pixel-u.pixelStart)/u.pixelLength*(l[1]-l[0])+l[0];o=Math.max(1/o,0),l[0]=(l[0]-d)*o+d,l[1]=(l[1]-d)*o+d;var f=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return r(0,l,[0,100],0,f.minSpan,f.maxSpan),this._range=l}}}),c={grid:function(e,t,n,o,i){var r=n.axis,a={},l=i.model.coordinateSystem.getRect();return e=e||[0,0],"x"===r.dim?(a.pixel=t[0]-e[0],a.pixelLength=l.width,a.pixelStart=l.x,a.signal=r.inverse?1:-1):(a.pixel=t[1]-e[1],a.pixelLength=l.height,a.pixelStart=l.y,a.signal=r.inverse?-1:1),a},polar:function(e,t,n,o,i){var r=n.axis,a={},l=i.model.coordinateSystem,s=l.getRadiusAxis().getExtent(),c=l.getAngleAxis().getExtent();return e=e?l.pointToCoord(e):[0,0],t=l.pointToCoord(t),"radiusAxis"===n.mainType?(a.pixel=t[0]-e[0],a.pixelLength=s[1]-s[0],a.pixelStart=s[0],a.signal=r.inverse?1:-1):(a.pixel=t[1]-e[1],a.pixelLength=c[1]-c[0],a.pixelStart=c[0],a.signal=r.inverse?-1:1),a},singleAxis:function(e,t,n,o,i){var r=n.axis,a=i.model.coordinateSystem.getRect(),l={};return e=e||[0,0],"horizontal"===r.orient?(l.pixel=t[0]-e[0],l.pixelLength=a.width,l.pixelStart=a.x,l.signal=r.inverse?1:-1):(l.pixel=t[1]-e[1],l.pixelLength=a.height,l.pixelStart=a.y,l.signal=r.inverse?-1:1),l}},u=s;e.exports=u},function(e,t,n){var o=n(68),i=o.extend({type:"dataZoom.select"});e.exports=i},function(e,t,n){var o=n(69),i=o.extend({type:"dataZoom.select"});e.exports=i},function(e,t,n){var o=n(68),i=o.extend({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}}),r=i;e.exports=r},function(e,t,n){function o(e){return{x:"y",y:"x",radius:"angle",angle:"radius"}[e]}function i(e){return"vertical"===e?"ns-resize":"ew-resize"}var r=n(0),a=n(31),l=n(2),s=n(44),c=n(69),u=n(3),d=n(6),f=n(71),p=l.Rect,h=u.linearMap,g=u.asc,m=r.bind,v=r.each,b="horizontal",x=5,y=["line","bar","candlestick","scatter"],_=c.extend({type:"dataZoom.slider",init:function(e,t){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=t},render:function(e,t,n,o){if(_.superApply(this,"render",arguments),s.createOrUpdate(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=e.get("orient"),!1===this.dataZoomModel.get("show"))return void this.group.removeAll();o&&"dataZoom"===o.type&&o.from===this.uid||this._buildView(),this._updateView()},remove:function(){_.superApply(this,"remove",arguments),s.clear(this,"_dispatchZoomAction")},dispose:function(){_.superApply(this,"dispose",arguments),s.clear(this,"_dispatchZoomAction")},_buildView:function(){var e=this.group;e.removeAll(),this._resetLocation(),this._resetInterval();var t=this._displayables.barGroup=new l.Group;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),e.add(t),this._positionGroup()},_resetLocation:function(){var e=this.dataZoomModel,t=this.api,n=this._findCoordRect(),o={width:t.getWidth(),height:t.getHeight()},i=this._orient===b?{right:o.width-n.x-n.width,top:o.height-30-7,width:n.width,height:30}:{right:7,top:n.y,width:30,height:n.height},a=d.getLayoutParams(e.option);r.each(["right","top","width","height"],function(e){"ph"===a[e]&&(a[e]=i[e])});var l=d.getLayoutRect(a,o,e.padding);this._location={x:l.x,y:l.y},this._size=[l.width,l.height],"vertical"===this._orient&&this._size.reverse()},_positionGroup:function(){var e=this.group,t=this._location,n=this._orient,o=this.dataZoomModel.getFirstTargetAxisModel(),i=o&&o.get("inverse"),r=this._displayables.barGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;r.attr(n!==b||i?n===b&&i?{scale:a?[-1,1]:[-1,-1]}:"vertical"!==n||i?{scale:a?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:a?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:a?[1,1]:[1,-1]});var l=e.getBoundingRect([r]);e.attr("position",[t.x-l.x,t.y-l.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var e=this.dataZoomModel,t=this._size,n=this._displayables.barGroup;n.add(new p({silent:!0,shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:e.get("backgroundColor")},z2:-40})),n.add(new p({shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:"transparent"},z2:0,onclick:r.bind(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var e=this._dataShadowInfo=this._prepareDataShadowInfo();if(e){var t=this._size,n=e.series,o=n.getRawData(),i=n.getShadowDim?n.getShadowDim():e.otherDim;if(null!=i){var a=o.getDataExtent(i),s=.3*(a[1]-a[0]);a=[a[0]-s,a[1]+s];var c,u=[0,t[1]],d=[0,t[0]],f=[[t[0],0],[0,0]],p=[],g=d[1]/(o.count()-1),m=0,v=Math.round(o.count()/t[0]);o.each([i],function(e,t){if(v>0&&t%v)return void(m+=g);var n=null==e||isNaN(e)||""===e,o=n?0:h(e,a,u,!0);n&&!c&&t?(f.push([f[f.length-1][0],0]),p.push([p[p.length-1][0],0])):!n&&c&&(f.push([m,0]),p.push([m,0])),f.push([m,o]),p.push([m,o]),m+=g,c=n});var b=this.dataZoomModel;this._displayables.barGroup.add(new l.Polygon({shape:{points:f},style:r.defaults({fill:b.get("dataBackgroundColor")},b.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new l.Polyline({shape:{points:p},style:b.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var e=this.dataZoomModel,t=e.get("showDataShadow");if(!1!==t){var n,i=this.ecModel;return e.eachTargetAxis(function(a,l){var s=e.getAxisProxy(a.name,l).getTargetSeriesModels();r.each(s,function(e){if(!(n||!0!==t&&r.indexOf(y,e.get("type"))<0)){var s,c=i.getComponent(a.axis,l).axis,u=o(a.name),d=e.coordinateSystem;null!=u&&d.getOtherAxis&&(s=d.getOtherAxis(c).inverse),n={thisAxis:c,series:e,thisDim:a.name,otherDim:u,otherAxisInverse:s}}},this)},this),n}},_renderHandle:function(){var e=this._displayables,t=e.handles=[],n=e.handleLabels=[],o=this._displayables.barGroup,r=this._size,s=this.dataZoomModel;o.add(e.filler=new p({draggable:!0,cursor:i(this._orient),drift:m(this._onDragMove,this,"all"),onmousemove:function(e){a.stop(e.event)},ondragstart:m(this._showDataInfo,this,!0),ondragend:m(this._onDragEnd,this),onmouseover:m(this._showDataInfo,this,!0),onmouseout:m(this._showDataInfo,this,!1),style:{fill:s.get("fillerColor"),textPosition:"inside"}})),o.add(new p(l.subPixelOptimizeRect({silent:!0,shape:{x:0,y:0,width:r[0],height:r[1]},style:{stroke:s.get("dataBackgroundColor")||s.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}}))),v([0,1],function(e){var r=l.createIcon(s.get("handleIcon"),{cursor:i(this._orient),draggable:!0,drift:m(this._onDragMove,this,e),onmousemove:function(e){a.stop(e.event)},ondragend:m(this._onDragEnd,this),onmouseover:m(this._showDataInfo,this,!0),onmouseout:m(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),c=r.getBoundingRect();this._handleHeight=u.parsePercent(s.get("handleSize"),this._size[1]),this._handleWidth=c.width/c.height*this._handleHeight,r.setStyle(s.getModel("handleStyle").getItemStyle());var d=s.get("handleColor");null!=d&&(r.style.fill=d),o.add(t[e]=r);var f=s.textStyleModel;this.group.add(n[e]=new l.Text({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:f.getTextColor(),textFont:f.getFont()},z2:10}))},this)},_resetInterval:function(){var e=this._range=this.dataZoomModel.getPercentRange(),t=this._getViewExtent();this._handleEnds=[h(e[0],[0,100],t,!0),h(e[1],[0,100],t,!0)]},_updateInterval:function(e,t){var n=this.dataZoomModel,o=this._handleEnds,i=this._getViewExtent(),r=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];f(t,o,i,n.get("zoomLock")?"all":e,null!=r.minSpan?h(r.minSpan,a,i,!0):null,null!=r.maxSpan?h(r.maxSpan,a,i,!0):null),this._range=g([h(o[0],i,a,!0),h(o[1],i,a,!0)])},_updateView:function(e){var t=this._displayables,n=this._handleEnds,o=g(n.slice()),i=this._size;v([0,1],function(e){var o=t.handles[e],r=this._handleHeight;o.attr({scale:[r/2,r/2],position:[n[e],i[1]/2-r/2]})},this),t.filler.setShape({x:o[0],y:0,width:o[1]-o[0],height:i[1]}),this._updateDataInfo(e)},_updateDataInfo:function(e){function t(e){var t=l.getTransform(o.handles[e].parent,this.group),n=l.transformDirection(0===e?"right":"left",t),s=this._handleWidth/2+x,c=l.applyTransform([f[e]+(0===e?-s:s),this._size[1]/2],t);i[e].setStyle({x:c[0],y:c[1],textVerticalAlign:r===b?"middle":n,textAlign:r===b?n:"center",text:a[e]})}var n=this.dataZoomModel,o=this._displayables,i=o.handleLabels,r=this._orient,a=["",""];if(n.get("showDetail")){var s=n.findRepresentativeAxisProxy();if(s){var c=s.getAxisModel().axis,u=this._range,d=e?s.calculateDataWindow({start:u[0],end:u[1]}).valueWindow:s.getDataValueWindow();a=[this._formatLabel(d[0],c),this._formatLabel(d[1],c)]}}var f=g(this._handleEnds.slice());t.call(this,0),t.call(this,1)},_formatLabel:function(e,t){var n=this.dataZoomModel,o=n.get("labelFormatter"),i=n.get("labelPrecision");null!=i&&"auto"!==i||(i=t.getPixelPrecision());var a=null==e||isNaN(e)?"":"category"===t.type||"time"===t.type?t.scale.getLabel(Math.round(e)):e.toFixed(Math.min(i,20));return r.isFunction(o)?o(e,a):r.isString(o)?o.replace("{value}",a):a},_showDataInfo:function(e){e=this._dragging||e;var t=this._displayables.handleLabels;t[0].attr("invisible",!e),t[1].attr("invisible",!e)},_onDragMove:function(e,t,n){this._dragging=!0;var o=this._displayables.barGroup.getLocalTransform(),i=l.applyTransform([t,n],o,!0);this._updateInterval(e,i[0]);var r=this.dataZoomModel.get("realtime");this._updateView(!r),r&&r&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),this._dispatchZoomAction()},_onClickPanelClick:function(e){var t=this._size,n=this._displayables.barGroup.transformCoordToLocal(e.offsetX,e.offsetY);if(!(n[0]<0||n[0]>t[0]||n[1]<0||n[1]>t[1])){var o=this._handleEnds,i=(o[0]+o[1])/2;this._updateInterval("all",n[0]-i),this._updateView(),this._dispatchZoomAction()}},_dispatchZoomAction:function(){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:e[0],end:e[1]})},_findCoordRect:function(){var e;if(v(this.getTargetCoordInfo(),function(t){if(!e&&t.length){var n=t[0].model.coordinateSystem;e=n.getRect&&n.getRect()}}),!e){var t=this.api.getWidth(),n=this.api.getHeight();e={x:.2*t,y:.2*n,width:.6*t,height:.6*n}}return e}}),w=_;e.exports=w},function(e,t,n){function o(e,t){var n=l(e),o=t.dataZoomId,i=t.coordId;g.each(n,function(e,n){var r=e.dataZoomInfos;r[o]&&g.indexOf(t.allCoordIds,i)<0&&(delete r[o],e.count--)}),c(n);var r=n[i];r||(r=n[i]={coordId:i,dataZoomInfos:{},count:0},r.controller=s(e,r),r.dispatchAction=g.curry(p,e)),!r.dataZoomInfos[o]&&r.count++,r.dataZoomInfos[o]=t;var a=h(r.dataZoomInfos);r.controller.enable(a.controlType,a.opt),r.controller.setPointerChecker(t.containsPoint),v.createOrUpdate(r,"dispatchAction",t.throttleRate,"fixRate")}function i(e,t){var n=l(e);g.each(n,function(e){e.controller.dispose();var n=e.dataZoomInfos;n[t]&&(delete n[t],e.count--)}),c(n)}function r(e,t){if(e&&"dataZoom"===e.type&&e.batch)for(var n=0,o=e.batch.length;no[t]&&(t=i),g.extend(n,e.roamControllerOpt)}),{controlType:t,opt:n}}var g=n(0),m=n(86),v=n(44),b=g.curry,x="\0_ec_dataZoom_roams";t.register=o,t.unregister=i,t.shouldRecordRange=r,t.generateCoordId=a},function(e,t,n){n(186),n(68),n(69),n(495),n(496),n(184),n(183)},function(e,t,n){function o(e,t){t.update="updateView",i.registerAction(t,function(t,n){var o={};return n.eachComponent({mainType:"geo",query:t},function(n){n[e](t.name);var i=n.coordinateSystem;r.each(i.regions,function(e){o[e.name]=n.isSelected(e.name)||!1})}),{selected:o,name:t.name}})}var i=n(1),r=n(0);n(563),n(88),n(502),n(163),o("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),o("select",{type:"geoSelect",event:"geoselected"}),o("unSelect",{type:"geoUnSelect",event:"geounselected"})},function(e,t,n){var o=n(188),i=n(1),r=i.extendComponentView({type:"geo",init:function(e,t){var n=new o(t,!0);this._mapDraw=n,this.group.add(n.group)},render:function(e,t,n,o){if(!o||"geoToggleSelect"!==o.type||o.from!==this.uid){var i=this._mapDraw;e.get("show")?i.draw(e,t,n,this,o):this._mapDraw.group.removeAll(),this.group.silent=e.get("silent")}},dispose:function(){this._mapDraw&&this._mapDraw.remove()}});e.exports=r},function(e,t,n){function o(e,t,n,o){var i=n.type,r=h[i.charAt(0).toUpperCase()+i.slice(1)],a=new r(n);t.add(a),o.set(e,a),a.__ecGraphicId=e}function i(e,t){var n=e&&e.parent;n&&("group"===e.type&&e.traverse(function(e){i(e,t)}),t.removeKey(e.__ecGraphicId),n.remove(e))}function r(e){return e=f.extend({},e),f.each(["id","parentId","$action","hv","bounding"].concat(g.LOCATION_PARAMS),function(t){delete e[t]}),e}function a(e,t){var n;return f.each(t,function(t){null!=e[t]&&"auto"!==e[t]&&(n=!0)}),n}function l(e,t){var n=e.exist;if(t.id=e.keyInfo.id,!t.type&&n&&(t.type=n.type),null==t.parentId){var o=t.parentOption;o?t.parentId=o.id:n&&(t.parentId=n.parentId)}t.parentOption=null}function s(e,t,n){var o=f.extend({},n),i=e[t],r=n.$action||"merge";"merge"===r?i?(f.merge(i,o,!0),g.mergeLayoutParam(i,o,{ignoreSize:!0}),g.copyLayoutParams(n,i)):e[t]=o:"replace"===r?e[t]=o:"remove"===r&&i&&(e[t]=null)}function c(e,t){e&&(e.hv=t.hv=[a(t,["left","right"]),a(t,["top","bottom"])],"group"===e.type&&(null==e.width&&(e.width=t.width=0),null==e.height&&(e.height=t.height=0)))}var u=n(4),d=(u.__DEV__,n(1)),f=n(0),p=n(5),h=n(2),g=n(6);d.registerPreprocessor(function(e){var t=e.graphic;f.isArray(t)?t[0]&&t[0].elements?e.graphic=[e.graphic[0]]:e.graphic=[{elements:t}]:t&&!t.elements&&(e.graphic=[{elements:[t]}])});var m=d.extendComponentModel({type:"graphic",defaultOption:{elements:[],parentId:null},_elOptionsToUpdate:null,mergeOption:function(e){var t=this.option.elements;this.option.elements=null,m.superApply(this,"mergeOption",arguments),this.option.elements=t},optionUpdated:function(e,t){var n=this.option,o=(t?n:e).elements,i=n.elements=t?[]:n.elements,r=[];this._flatten(o,r);var a=p.mappingToExists(i,r);p.makeIdAndName(a);var u=this._elOptionsToUpdate=[];f.each(a,function(e,t){var n=e.option;n&&(u.push(n),l(e,n),s(i,t,n),c(i[t],n))},this);for(var d=i.length-1;d>=0;d--)null==i[d]?i.splice(d,1):delete i[d].$action},_flatten:function(e,t,n){f.each(e,function(e){if(e){n&&(e.parentOption=n),t.push(e);var o=e.children;"group"===e.type&&o&&this._flatten(o,t,e),delete e.children}},this)},useElOptionsToUpdate:function(){var e=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,e}});d.extendComponentView({type:"graphic",init:function(e,t){this._elMap=f.createHashMap(),this._lastGraphicModel},render:function(e,t,n){e!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=e,this._updateElements(e,n),this._relocate(e,n)},_updateElements:function(e,t){var n=e.useElOptionsToUpdate();if(n){var a=this._elMap,l=this.group;f.each(n,function(e){var t=e.$action,n=e.id,s=a.get(n),c=e.parentId,u=null!=c?a.get(c):l;if("text"===e.type){var d=e.style;e.hv&&e.hv[1]&&(d.textVerticalAlign=d.textBaseline=null),!d.hasOwnProperty("textFill")&&d.fill&&(d.textFill=d.fill),!d.hasOwnProperty("textStroke")&&d.stroke&&(d.textStroke=d.stroke)}var f=r(e);t&&"merge"!==t?"replace"===t?(i(s,a),o(n,u,f,a)):"remove"===t&&i(s,a):s?s.attr(f):o(n,u,f,a);var p=a.get(n);p&&(p.__ecGraphicWidth=e.width,p.__ecGraphicHeight=e.height)})}},_relocate:function(e,t){for(var n=e.option.elements,o=this.group,i=this._elMap,r=n.length-1;r>=0;r--){var a=n[r],l=i.get(a.id);if(l){var s=l.parent,c=s===o?{width:t.getWidth(),height:t.getHeight()}:{width:s.__ecGraphicWidth||0,height:s.__ecGraphicHeight||0};g.positionElement(l,a,c,null,{hv:a.hv,boundingMode:a.bounding})}}},_clear:function(){var e=this._elMap;e.each(function(t){i(t,e)}),this._elMap=f.createHashMap()},dispose:function(){this._clear()}})},function(e,t,n){n(70),n(180),n(67)},function(e,t,n){var o=n(1);n(193),n(508),n(194);var i=n(509),r=n(14);o.registerProcessor(i),r.registerSubTypeDefaulter("legend",function(){return"plain"})},function(e,t,n){function o(e,t,n){var o=e.getOrient(),i=[1,1];i[o.index]=0,a(t,n,{type:"box",ignoreSize:i})}var i=n(193),r=n(6),a=r.mergeLayoutParam,l=r.getLayoutParams,s=i.extend({type:"legend.scroll",setScrollDataIndex:function(e){this.option.scrollDataIndex=e},defaultOption:{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800},init:function(e,t,n,i){var r=l(e);s.superCall(this,"init",e,t,n,i),o(this,e,r)},mergeOption:function(e,t){s.superCall(this,"mergeOption",e,t),o(this,this.option,e)},getOrient:function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}}}),c=s;e.exports=c},function(e,t,n){var o=n(0),i=n(2),r=n(6),a=n(194),l=i.Group,s=["width","height"],c=["x","y"],u=a.extend({type:"legend.scroll",newlineDisabled:!0,init:function(){u.superCall(this,"init"),this._currentIndex=0,this.group.add(this._containerGroup=new l),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new l),this._showController},resetInner:function(){u.superCall(this,"resetInner"),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},renderInner:function(e,t,n,r){function a(e,n){var a=e+"DataIndex",u=i.createIcon(t.get("pageIcons",!0)[t.getOrient().name][n],{onclick:o.bind(l._pageGo,l,a,t,r)},{x:-c[0]/2,y:-c[1]/2,width:c[0],height:c[1]});u.name=e,s.add(u)}var l=this;u.superCall(this,"renderInner",e,t,n,r);var s=this._controllerGroup,c=t.get("pageIconSize",!0);o.isArray(c)||(c=[c,c]),a("pagePrev",0);var d=t.getModel("pageTextStyle");s.add(new i.Text({name:"pageText",style:{textFill:d.getTextColor(),font:d.getFont(),textVerticalAlign:"middle",textAlign:"center"},silent:!0})),a("pageNext",1)},layoutInner:function(e,t,n){var a=this.getContentGroup(),l=this._containerGroup,u=this._controllerGroup,d=e.getOrient().index,f=s[d],p=s[1-d],h=c[1-d];r.box(e.get("orient"),a,e.get("itemGap"),d?n.width:null,d?null:n.height),r.box("horizontal",u,e.get("pageButtonItemGap",!0));var g=a.getBoundingRect(),m=u.getBoundingRect(),v=this._showController=g[f]>n[f],b=[-g.x,-g.y];b[d]=a.position[d];var x=[0,0],y=[-m.x,-m.y],_=o.retrieve2(e.get("pageButtonGap",!0),e.get("itemGap",!0));v&&("end"===e.get("pageButtonPosition",!0)?y[d]+=n[f]-m[f]:x[d]+=m[f]+_),y[1-d]+=g[p]/2-m[p]/2,a.attr("position",b),l.attr("position",x),u.attr("position",y);var w=this.group.getBoundingRect(),w={x:0,y:0};if(w[f]=v?n[f]:g[f],w[p]=Math.max(g[p],m[p]),w[h]=Math.min(0,m[h]+y[1-d]),l.__rectSize=n[f],v){var k={x:0,y:0};k[f]=Math.max(n[f]-m[f]-_,0),k[p]=w[p],l.setClipPath(new i.Rect({shape:k})),l.__rectSize=k[f]}else u.eachChild(function(e){e.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(e);return null!=S.pageIndex&&i.updateProps(a,{position:S.contentPosition},!!v&&e),this._updatePageInfoView(e,S),w},_pageGo:function(e,t,n){var o=this._getPageInfo(t)[e];null!=o&&n.dispatchAction({type:"legendScroll",scrollDataIndex:o,legendId:t.id})},_updatePageInfoView:function(e,t){var n=this._controllerGroup;o.each(["pagePrev","pageNext"],function(o){var i=null!=t[o+"DataIndex"],r=n.childOfName(o);r&&(r.setStyle("fill",i?e.get("pageIconColor",!0):e.get("pageIconInactiveColor",!0)),r.cursor=i?"pointer":"default")});var i=n.childOfName("pageText"),r=e.get("pageFormatter"),a=t.pageIndex,l=null!=a?a+1:0,s=t.pageCount;i&&r&&i.setStyle("text",o.isString(r)?r.replace("{current}",l).replace("{total}",s):r({current:l,total:s}))},_getPageInfo:function(e){function t(e){var t=e.getBoundingRect().clone();return t[g]+=e.position[f],t}var n,o,i,r,a=e.get("scrollDataIndex",!0),l=this.getContentGroup(),u=l.getBoundingRect(),d=this._containerGroup.__rectSize,f=e.getOrient().index,p=s[f],h=s[1-f],g=c[f],m=l.position.slice();this._showController?l.eachChild(function(e){e.__legendDataIndex===a&&(r=e)}):r=l.childAt(0);var v=d?Math.ceil(u[p]/d):0;if(r){var b=r.getBoundingRect(),x=r.position[f]+b[g];m[f]=-x-u[g],n=Math.floor(v*(x+b[g]+d/2)/u[p]),n=u[p]&&v?Math.max(0,Math.min(v-1,n)):-1;var y={x:0,y:0};y[p]=d,y[h]=u[h],y[g]=-m[f]-u[g];var _,w=l.children();if(l.eachChild(function(e,n){var o=t(e);o.intersect(y)&&(null==_&&(_=n),i=e.__legendDataIndex),n===w.length-1&&o[g]+o[p]<=y[g]+y[p]&&(i=null)}),null!=_){var k=w[_],S=t(k);if(y[g]=S[g]+S[p]-y[p],_<=0&&S[g]>=y[g])o=null;else{for(;_>0&&t(w[_-1]).intersect(y);)_--;o=w[_].__legendDataIndex}}}return{contentPosition:m,pageIndex:n,pageCount:v,pagePrevDataIndex:o,pageNextDataIndex:i}}}),d=u;e.exports=d},function(e,t,n){function o(e,t,n){var o,i={},a="toggleSelected"===e;return n.eachComponent("legend",function(n){a&&null!=o?n[o?"select":"unSelect"](t.name):(n[e](t.name),o=n.isSelected(t.name));var l=n.getData();r.each(l,function(e){var t=e.get("name");if("\n"!==t&&""!==t){var o=n.isSelected(t);i.hasOwnProperty(t)?i[t]=i[t]&&o:i[t]=o}})}),{name:t.name,selected:i}}var i=n(1),r=n(0);i.registerAction("legendToggleSelect","legendselectchanged",r.curry(o,"toggleSelected")),i.registerAction("legendSelect","legendselected",r.curry(o,"select")),i.registerAction("legendUnSelect","legendunselected",r.curry(o,"unSelect"))},function(e,t){function n(e){var t=e.findComponents({mainType:"legend"});t&&t.length&&e.filterSeries(function(e){for(var n=0;n=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(g,20))),p.coord[u]=h.coord[u]=l,o=[p,h,{type:r,valueIndex:o.valueIndex,value:l}]}return o=[d.dataTransform(e,o[0]),d.dataTransform(e,o[1]),s.extend({},o[2])],o[2].type=o[2].type||"",s.merge(o[2],o[0]),s.merge(o[2],o[1]),o},g=p.extend({type:"markLine",updateLayout:function(e,t,n){t.eachSeries(function(e){var t=e.markLineModel;if(t){var o=t.getData(),i=t.__from,r=t.__to;i.each(function(t){a(i,t,!0,e,n),a(r,t,!1,e,n)}),o.each(function(e){o.setItemLayout(e,[i.getItemLayout(e),r.getItemLayout(e)])}),this.markerGroupMap.get(e.id).updateLayout()}},this)},renderSeries:function(e,t,n,o){function i(t,n,i){var r=t.getItemModel(n);a(t,n,i,e,o),t.setItemVisual(n,{symbolSize:r.get("symbolSize")||x[i?0:1],symbol:r.get("symbol",!0)||b[i?0:1],color:r.get("itemStyle.normal.color")||u.getVisual("color")})}var r=e.coordinateSystem,c=e.id,u=e.getData(),d=this.markerGroupMap,p=d.get(c)||d.set(c,new f);this.group.add(p.group);var h=l(r,e,t),g=h.from,m=h.to,v=h.line;t.__from=g,t.__to=m,t.setData(v);var b=t.get("symbol"),x=t.get("symbolSize");s.isArray(b)||(b=[b,b]),"number"==typeof x&&(x=[x,x]),h.from.each(function(e){i(g,e,!0),i(m,e,!1)}),v.each(function(e){var t=v.getItemModel(e).get("lineStyle.normal.color");v.setItemVisual(e,{color:t||g.getItemVisual(e,"color")}),v.setItemLayout(e,[g.getItemLayout(e),m.getItemLayout(e)]),v.setItemVisual(e,{fromSymbolSize:g.getItemVisual(e,"symbolSize"),fromSymbol:g.getItemVisual(e,"symbol"),toSymbolSize:m.getItemVisual(e,"symbolSize"),toSymbol:m.getItemVisual(e,"symbol")})}),p.updateData(v),h.line.eachItemGraphicEl(function(e,n){e.traverse(function(e){e.dataModel=t})}),p.__keep=!0,p.group.silent=t.get("silent")||e.get("silent")}});e.exports=g},function(e,t,n){var o=n(121),i=o.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{normal:{show:!0,position:"inside"},emphasis:{show:!0}},itemStyle:{normal:{borderWidth:2}}}});e.exports=i},function(e,t,n){function o(e,t,n){var o=t.coordinateSystem;e.each(function(i){var r,a=e.getItemModel(i),s=l.parsePercent(a.get("x"),n.getWidth()),c=l.parsePercent(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(c)){if(t.getMarkerPosition)r=t.getMarkerPosition(e.getValues(e.dimensions,i));else if(o){var u=e.get(o.dimensions[0],i),d=e.get(o.dimensions[1],i);r=o.dataToPoint([u,d])}}else r=[s,c];isNaN(s)||(r[0]=s),isNaN(c)||(r[1]=c),e.setItemLayout(i,r)})}function i(e,t,n){var o;o=e?r.map(e&&e.dimensions,function(e){var n=t.getData().getDimensionInfo(t.coordDimToDataDim(e)[0])||{};return n.name=e,n}):[{name:"value",type:"float"}];var i=new s(o,n),a=r.map(n.get("data"),r.curry(c.dataTransform,t));return e&&(a=r.filter(a,r.curry(c.dataFilter,e))),i.initData(a,null,e?c.dimValueGetter:function(e){return e.value}),i}var r=n(0),a=n(65),l=n(3),s=n(13),c=n(123),u=n(122),d=u.extend({type:"markPoint",updateLayout:function(e,t,n){t.eachSeries(function(e){var t=e.markPointModel;t&&(o(t.getData(),e,n),this.markerGroupMap.get(e.id).updateLayout(t))},this)},renderSeries:function(e,t,n,r){var l=e.coordinateSystem,s=e.id,c=e.getData(),u=this.markerGroupMap,d=u.get(s)||u.set(s,new a),f=i(l,e,t);t.setData(f),o(t.getData(),e,r),f.each(function(e){var n=f.getItemModel(e),o=n.getShallow("symbolSize");"function"==typeof o&&(o=o(t.getRawValue(e),t.getDataParams(e))),f.setItemVisual(e,{symbolSize:o,color:n.get("itemStyle.normal.color")||c.getVisual("color"),symbol:n.getShallow("symbol")})}),d.updateData(f),this.group.add(d.group),f.eachItemGraphicEl(function(e){e.traverse(function(e){e.dataModel=t})}),d.__keep=!0,d.group.silent=t.get("silent")||e.get("silent")}});e.exports=d},function(e,t,n){n(211),n(476),n(473)},function(e,t,n){var o=n(1),i=n(0),r=n(590);n(125),n(469),n(525),n(67),n(479),o.registerLayout(i.curry(r,"bar")),o.extendComponentView({type:"polar"})},function(e,t,n){n(581),n(582),n(524)},function(e,t,n){var o=n(4),i=(o.__DEV__,n(1)),r=n(0),a=n(42),l=n(2),s=["axisLine","axisTickLabel","axisName"],c=i.extendComponentView({type:"radar",render:function(e,t,n){this.group.removeAll(),this._buildAxes(e),this._buildSplitLineAndArea(e)},_buildAxes:function(e){var t=e.coordinateSystem,n=t.getIndicatorAxes(),o=r.map(n,function(e){return new a(e.model,{position:[t.cx,t.cy],rotation:e.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})});r.each(o,function(e){r.each(s,e.add,e),this.group.add(e.getGroup())},this)},_buildSplitLineAndArea:function(e){function t(e,t,n){var o=n%t.length;return e[o]=e[o]||[],o}var n=e.coordinateSystem,o=n.getIndicatorAxes();if(o.length){var i=e.get("shape"),a=e.getModel("splitLine"),s=e.getModel("splitArea"),c=a.getModel("lineStyle"),u=s.getModel("areaStyle"),d=a.get("show"),f=s.get("show"),p=c.get("color"),h=u.get("color");p=r.isArray(p)?p:[p],h=r.isArray(h)?h:[h];var g=[],m=[];if("circle"===i)for(var v=o[0].getTicksCoords(),b=n.cx,x=n.cy,y=0;y=0||"+"===n?"left":"right"},l={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},s={horizontal:0,vertical:w/2},c="vertical"===i?r.height:r.width,u=e.getModel("controlStyle"),d=u.get("show"),f=d?u.get("itemSize"):0,p=d?u.get("itemGap"):0,h=f+p,g=e.get("label.normal.rotate")||0;g=g*w/180;var m,v,b,x,y=u.get("position",!0),d=u.get("show",!0),_=d&&u.get("showPlayBtn",!0),k=d&&u.get("showPrevBtn",!0),S=d&&u.get("showNextBtn",!0),M=0,C=c;return"left"===y||"bottom"===y?(_&&(m=[0,0],M+=h),k&&(v=[M,0],M+=h),S&&(b=[C-f,0],C-=h)):(_&&(m=[C-f,0],C-=h),k&&(v=[0,0],M+=h),S&&(b=[C-f,0],C-=h)),x=[M,C],e.get("inverse")&&x.reverse(),{viewRect:r,mainLength:c,orient:i,rotation:s[i],labelRotation:g,labelPosOpt:n,labelAlign:e.get("label.normal.align")||a[i],labelBaseline:e.get("label.normal.verticalAlign")||e.get("label.normal.baseline")||l[i],playPosition:m,prevBtnPosition:v,nextBtnPosition:b,axisExtent:x,controlSize:f,controlGap:p}},_position:function(e,t){function n(e){var t=e.position;e.origin=[f[0][0]-t[0],f[1][0]-t[1]]}function o(e){return[[e.x,e.x+e.width],[e.y,e.y+e.height]]}function i(e,t,n,o,i){e[o]+=n[o][i]-t[o][i]}var r=this._mainGroup,a=this._labelGroup,l=e.viewRect;if("vertical"===e.orient){var s=c.create(),u=l.x,d=l.y+l.height;c.translate(s,s,[-u,-d]),c.rotate(s,s,-w/2),c.translate(s,s,[u,d]),l=l.clone(),l.applyTransform(s)}var f=o(l),p=o(r.getBoundingRect()),h=o(a.getBoundingRect()),g=r.position,m=a.position;m[0]=g[0]=f[0][0];var v=e.labelPosOpt;if(isNaN(v)){var b="+"===v?0:1;i(g,p,f,1,b),i(m,h,f,1,1-b)}else{var b=v>=0?0:1;i(g,p,f,1,b),m[1]=g[1]+v}r.attr("position",g),a.attr("position",m),r.rotation=a.rotation=e.rotation,n(r),n(a)},_createAxis:function(e,t){var n=t.getData(),o=t.get("axisType"),i=m.createScaleByModel(t,o),r=n.getDataExtent("value");i.setExtent(r[0],r[1]),this._customizeScale(i,n),i.niceTicks();var a=new p("value",i,e.axisExtent,o);return a.model=t,a},_customizeScale:function(e,t){e.getTicks=function(){return t.mapArray(["value"],function(e){return e})},e.getTicksLabels=function(){return l.map(this.getTicks(),e.getLabel,e)}},_createGroup:function(e){var t=this["_"+e]=new u.Group;return this.group.add(t),t},_renderAxisLine:function(e,t,n,o){var i=n.getExtent();o.get("lineStyle.show")&&t.add(new u.Line({shape:{x1:i[0],y1:0,x2:i[1],y2:0},style:l.extend({lineCap:"round"},o.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(e,t,n,o){var i=o.getData(),a=n.scale.getTicks();_(a,function(e,a){var l=n.dataToCoord(e),s=i.getItemModel(a),c=s.getModel("itemStyle.normal"),d=s.getModel("itemStyle.emphasis"),f={position:[l,0],onclick:y(this._changeTimeline,this,a)},p=r(s,c,t,f);u.setHoverStyle(p,d.getItemStyle()),s.get("tooltip")?(p.dataIndex=a,p.dataModel=o):p.dataIndex=p.dataModel=null},this)},_renderAxisLabel:function(e,t,n,o){var i=o.getModel("label.normal");if(i.get("show")){var r=o.getData(),a=n.scale.getTicks(),l=m.getFormattedLabels(n,i.get("formatter")),s=n.getLabelInterval();_(a,function(o,i){if(!n.isLabelIgnored(i,s)){var a=r.getItemModel(i),c=a.getModel("label.normal"),d=a.getModel("label.emphasis"),f=n.dataToCoord(o),p=new u.Text({position:[f,0],rotation:e.labelRotation-e.rotation,onclick:y(this._changeTimeline,this,i),silent:!1});u.setTextStyle(p.style,c,{text:l[i],textAlign:e.labelAlign,textVerticalAlign:e.labelBaseline}),t.add(p),u.setHoverStyle(p,u.setTextStyle({},d))}},this)}},_renderControl:function(e,t,n,o){function r(e,n,r,f){if(e){var p={position:e,origin:[a/2,0],rotation:f?-l:0,rectHover:!0,style:s,onclick:r},h=i(o,n,d,p);t.add(h),u.setHoverStyle(h,c)}}var a=e.controlSize,l=e.rotation,s=o.getModel("controlStyle.normal").getItemStyle(),c=o.getModel("controlStyle.emphasis").getItemStyle(),d=[0,-a/2,a,a],f=o.getPlayState(),p=o.get("inverse",!0);r(e.nextBtnPosition,"controlStyle.nextIcon",y(this._changeTimeline,this,p?"-":"+")),r(e.prevBtnPosition,"controlStyle.prevIcon",y(this._changeTimeline,this,p?"+":"-")),r(e.playPosition,"controlStyle."+(f?"stopIcon":"playIcon"),y(this._handlePlayClick,this,!f),!0)},_renderCurrentPointer:function(e,t,n,o){var i=o.getData(),l=o.getCurrentIndex(),s=i.getItemModel(l).getModel("checkpointStyle"),c=this,u={onCreate:function(e){e.draggable=!0,e.drift=y(c._handlePointerDrag,c),e.ondragend=y(c._handlePointerDragend,c),a(e,l,n,o,!0)},onUpdate:function(e){a(e,l,n,o)}};this._currentPointer=r(s,s,this._mainGroup,{},this._currentPointer,u)},_handlePlayClick:function(e){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:e,from:this.uid})},_handlePointerDrag:function(e,t,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},_handlePointerDragend:function(e){this._pointerChangeTimeline([e.offsetX,e.offsetY],!0)},_pointerChangeTimeline:function(e,t){var n=this._toAxisCoord(e)[0],o=this._axis,i=v.asc(o.getExtent().slice());n>i[1]&&(n=i[1]),n=t&&(e=t-1),e<0&&(e=0)),this.option.currentIndex=e},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(e){this.option.autoPlay=!!e},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var e=this.option,t=e.data||[],n=e.axisType,i=this._names=[];if("category"===n){var l=[];o.each(t,function(e,t){var n,r=a.getDataItemValue(e);o.isObject(e)?(n=o.clone(e),n.value=t):n=t,l.push(n),o.isString(r)||null!=r&&!isNaN(r)||(r=""),i.push(r+"")}),t=l}var s={category:"ordinal",time:"time"}[n]||"number";(this._data=new r([{name:"value",type:s}],this)).initData(t,i)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}}),s=l;e.exports=s},function(e,t,n){var o=n(129),i=o.extend({type:"timeline"});e.exports=i},function(e,t,n){function o(e){var t=e&&e.timeline;l.isArray(t)||(t=t?[t]:[]),l.each(t,function(e){e&&i(e)})}function i(e){var t=e.type,n={number:"value",time:"time"};if(n[t]&&(e.axisType=n[t],delete e.type),r(e),a(e,"controlPosition")){var o=e.controlStyle||(e.controlStyle={});a(o,"position")||(o.position=e.controlPosition),"none"!==o.position||a(o,"show")||(o.show=!1,delete o.position),delete e.controlPosition}l.each(e.data||[],function(e){l.isObject(e)&&!l.isArray(e)&&(!a(e,"value")&&a(e,"name")&&(e.value=e.name),r(e))})}function r(e){var t=e.itemStyle||(e.itemStyle={}),n=t.emphasis||(t.emphasis={}),o=e.label||e.label||{},i=o.normal||(o.normal={}),r={normal:1,emphasis:1};l.each(o,function(e,t){r[t]||a(i,t)||(i[t]=e)}),n.label&&!a(o,"emphasis")&&(o.emphasis=n.label,delete n.label)}function a(e,t){return e.hasOwnProperty(t)}var l=n(0);e.exports=o},function(e,t,n){var o=n(1),i=n(0);o.registerAction({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(e,t){var n=t.getComponent("timeline");return n&&null!=e.currentIndex&&(n.setCurrentIndex(e.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),t.resetOption("timeline"),i.defaults({currentIndex:n.option.currentIndex},e)}),o.registerAction({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(e,t){var n=t.getComponent("timeline");n&&null!=e.playState&&n.setPlayState(e.playState)})},function(e,t,n){n(14).registerSubTypeDefaulter("timeline",function(){return"slider"})},function(e,t,n){n(536),n(537),n(543),n(541),n(539),n(540),n(542)},function(e,t,n){var o=n(1),i=n(0),r=n(35),a=o.extendComponentModel({type:"toolbox",layoutMode:{type:"box",ignoreSize:!0},mergeDefaultAndTheme:function(e){a.superApply(this,"mergeDefaultAndTheme",arguments),i.each(this.option.feature,function(e,t){var n=r.get(t);n&&i.merge(e,n.defaultOption)})},defaultOption:{show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{normal:{borderColor:"#666",color:"none"},emphasis:{borderColor:"#3E98C5"}}}}),l=a;e.exports=l},function(e,t,n){function o(e){return 0===e.indexOf("my")}var i=n(1),r=n(0),a=n(27),l=n(35),s=n(2),c=n(12),u=n(56),d=n(191),f=i.extendComponentView({type:"toolbox",render:function(e,t,n,i){function f(r,a){var s,u=b[r],d=b[a],f=m[u],h=new c(f,e,e.ecModel);if(u&&!d){if(o(u))s={model:h,onclick:h.option.onclick,featureName:u};else{var g=l.get(u);if(!g)return;s=new g(h,t,n)}v[u]=s}else{if(!(s=v[d]))return;s.model=h,s.ecModel=t,s.api=n}return!u&&d?void(s.dispose&&s.dispose(t,n)):!h.get("show")||s.unusable?void(s.remove&&s.remove(t,n)):(p(h,s,u),h.setIconStatus=function(e,t){var n=this.option,o=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[e]=t,o[e]&&o[e].trigger(t)},void(s.render&&s.render(h,t,n,i)))}function p(o,i,a){var l=o.getModel("iconStyle"),c=i.getIcons?i.getIcons():o.get("icon"),u=o.get("title")||{};if("string"==typeof c){var d=c,f=u;c={},u={},c[a]=d,u[a]=f}var p=o.iconPaths={};r.each(c,function(a,c){var d=s.createIcon(a,{},{x:-g/2,y:-g/2,width:g,height:g});d.setStyle(l.getModel("normal").getItemStyle()),d.hoverStyle=l.getModel("emphasis").getItemStyle(),s.setHoverStyle(d),e.get("showTitle")&&(d.__title=u[c],d.on("mouseover",function(){var e=l.getModel("emphasis").getItemStyle();d.setStyle({text:u[c],textPosition:e.textPosition||"bottom",textFill:e.fill||e.stroke||"#000",textAlign:e.textAlign||"center"})}).on("mouseout",function(){d.setStyle({textFill:null})})),d.trigger(o.get("iconStatus."+c)||"normal"),h.add(d),d.on("click",r.bind(i.onclick,i,t,n,c)),p[c]=d})}var h=this.group;if(h.removeAll(),e.get("show")){var g=+e.get("itemSize"),m=e.get("feature")||{},v=this._features||(this._features={}),b=[];r.each(m,function(e,t){b.push(t)}),new u(this._featureNames||[],b).add(f).update(f).remove(r.curry(f,null)).execute(),this._featureNames=b,d.layout(h,e,n),h.add(d.makeBackground(h.getBoundingRect(),e)),h.eachChild(function(e){var t=e.__title,o=e.hoverStyle;if(o&&t){var i=a.getBoundingRect(t,a.makeFont(o)),r=e.position[0]+h.position[0],l=e.position[1]+h.position[1]+g,s=!1;l+i.height>n.getHeight()&&(o.textPosition="top",s=!0);var c=s?-5-i.height:g+8;r+i.width/2>n.getWidth()?(o.textPosition=["100%",c],o.textAlign="right"):r-i.width/2<0&&(o.textPosition=[0,c],o.textAlign="left")}})}},updateView:function(e,t,n,o){r.each(this._features,function(e){e.updateView&&e.updateView(e.model,t,n,o)})},updateLayout:function(e,t,n,o){r.each(this._features,function(e){e.updateLayout&&e.updateLayout(e.model,t,n,o)})},remove:function(e,t){r.each(this._features,function(n){n.remove&&n.remove(e,t)}),this.group.removeAll()},dispose:function(e,t){r.each(this._features,function(n){n.dispose&&n.dispose(e,t)})}});e.exports=f},function(e,t,n){function o(e,t,n){this.model=e,this.ecModel=t,this.api=n,this._brushType,this._brushMode}var i=n(0),r=n(35),a=n(57),l=a.toolbox.brush;o.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:i.clone(l.title)};var s=o.prototype;s.render=s.updateView=s.updateLayout=function(e,t,n){var o,r,a;t.eachComponent({mainType:"brush"},function(e){o=e.brushType,r=e.brushOption.brushMode||"single",a|=e.areas.length}),this._brushType=o,this._brushMode=r,i.each(e.get("type",!0),function(t){e.setIconStatus(t,("keep"===t?"multiple"===r:"clear"===t?a:t===o)?"emphasis":"normal")})},s.getIcons=function(){var e=this.model,t=e.get("icon",!0),n={};return i.each(e.get("type",!0),function(e){t[e]&&(n[e]=t[e])}),n},s.onclick=function(e,t,n){var o=this._brushType,i=this._brushMode;"clear"===n?(t.dispatchAction({type:"axisAreaSelect",intervals:[]}),t.dispatchAction({type:"brush",command:"clear",areas:[]})):t.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?o:o!==n&&n,brushMode:"keep"===n?"multiple"===i?"single":"multiple":i}})},r.register("brush",o);var c=o;e.exports=c},function(e,t,n){function o(e){var t={},n=[],o=[];return e.eachRawSeries(function(e){var i=e.coordinateSystem;if(!i||"cartesian2d"!==i.type&&"polar"!==i.type)n.push(e);else{var r=i.getBaseAxis();if("category"===r.type){var a=r.dim+"_"+r.index;t[a]||(t[a]={categoryAxis:r,valueAxis:i.getOtherAxis(r),series:[]},o.push({axisDim:r.dim,axisIndex:r.index})),t[a].series.push(e)}else n.push(e)}}),{seriesGroupByCategoryAxis:t,other:n,meta:o}}function i(e){var t=[];return g.each(e,function(e,n){var o=e.categoryAxis,i=e.valueAxis,r=i.dim,a=[" "].concat(g.map(e.series,function(e){return e.name})),l=[o.model.getCategories()];g.each(e.series,function(e){l.push(e.getRawData().mapArray(r,function(e){return e}))});for(var s=[a.join(_)],c=0;c=0)return!0}function c(e){for(var t=e.split(/\n+/g),n=l(t.shift()).split(w),o=[],i=g.map(n,function(e){return{name:e,data:[]}}),r=0;r1?"emphasis":"normal")}function a(e,t,n,o,r){var a=n._isZoomActive;o&&"takeGlobalCursor"===o.type&&(a="dataZoomSelect"===o.key&&o.dataZoomSelectActive),n._isZoomActive=a,e.setIconStatus("zoom",a?"emphasis":"normal");var l=new u(i(e.option),t,{include:["grid"]});n._brushController.setPanels(l.makePanelOpts(r,function(e){return e.xAxisDeclared&&!e.yAxisDeclared?"lineX":!e.xAxisDeclared&&e.yAxisDeclared?"lineY":"rect"})).enableBrush(!!a&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}var l=n(1),s=n(0),c=n(118),u=n(187),d=n(185),f=n(71),p=n(57),h=n(35);n(500);var g=p.toolbox.dataZoom,m=s.each,v="\0_ec_\0toolbox-dataZoom_";o.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:s.clone(g.title)};var b=o.prototype;b.render=function(e,t,n,o){this.model=e,this.ecModel=t,this.api=n,a(e,t,this,o,n),r(e,t)},b.onclick=function(e,t,n){x[n].call(this)},b.remove=function(e,t){this._brushController.unmount()},b.dispose=function(e,t){this._brushController.dispose()};var x={zoom:function(){var e=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:e})},back:function(){this._dispatchZoomAction(d.pop(this.ecModel))}};b._onBrush=function(e,t){function n(e,t,n){var i=t.getAxis(e),l=i.model,s=o(e,l,a),c=s.findRepresentativeAxisProxy(l).getMinMaxSpan();null==c.minValueSpan&&null==c.maxValueSpan||(n=f(0,n.slice(),i.scale.getExtent(),0,c.minValueSpan,c.maxValueSpan)),s&&(r[s.id]={dataZoomId:s.id,startValue:n[0],endValue:n[1]})}function o(e,t,n){var o;return n.eachComponent({mainType:"dataZoom",subType:"select"},function(n){n.getAxisModel(e,t.componentIndex)&&(o=n)}),o}if(t.isEnd&&e.length){var r={},a=this.ecModel;this._brushController.updateCovers([]),new u(i(this.model.option),a,{include:["grid"]}).matchOutputRanges(e,a,function(e,t,o){if("cartesian2d"===o.type){var i=e.brushType;"rect"===i?(n("x",o,t[0]),n("y",o,t[1])):n({lineX:"x",lineY:"y"}[i],o,t)}}),d.push(a,r),this._dispatchZoomAction(r)}},b._dispatchZoomAction=function(e){var t=[];m(e,function(e,n){t.push(s.clone(e))}),t.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:t})},h.register("dataZoom",o),l.registerPreprocessor(function(e){function t(e,t){if(t){var i=e+"Index",r=t[i];null==r||"all"==r||s.isArray(r)||(r=!1===r||"none"===r?[]:[r]),n(e,function(t,n){if(null==r||"all"==r||-1!==s.indexOf(r,n)){var a={type:"select",$fromToolbox:!0,id:v+e+n};a[i]=n,o.push(a)}})}}function n(t,n){var o=e[t];s.isArray(o)||(o=o?[o]:[]),m(o,n)}if(e){var o=e.dataZoom||(e.dataZoom=[]);s.isArray(o)||(e.dataZoom=o=[o]);var i=e.toolbox;if(i&&(s.isArray(i)&&(i=i[0]),i&&i.feature)){var r=i.feature.dataZoom;t("xAxis",r),t("yAxis",r)}}});var y=o;e.exports=y},function(e,t,n){function o(e){this.model=e}var i=n(1),r=n(0),a=n(57),l=n(35),s=a.toolbox.magicType;o.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:r.clone(s.title),option:{},seriesIndex:{}};var c=o.prototype;c.getIcons=function(){var e=this.model,t=e.get("icon"),n={};return r.each(e.get("type"),function(e){t[e]&&(n[e]=t[e])}),n};var u={line:function(e,t,n,o){if("bar"===e)return r.merge({id:t,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},o.get("option.line")||{},!0)},bar:function(e,t,n,o){if("line"===e)return r.merge({id:t,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},o.get("option.bar")||{},!0)},stack:function(e,t,n,o){if("line"===e||"bar"===e)return r.merge({id:t,stack:"__ec_magicType_stack__"},o.get("option.stack")||{},!0)},tiled:function(e,t,n,o){if("line"===e||"bar"===e)return r.merge({id:t,stack:""},o.get("option.tiled")||{},!0)}},d=[["line","bar"],["stack","tiled"]];c.onclick=function(e,t,n){var o=this.model,i=o.get("seriesIndex."+n);if(u[n]){var a={series:[]},l=function(t){var i=t.subType,l=t.id,s=u[n](i,l,t,o);s&&(r.defaults(s,t.option),a.series.push(s));var c=t.coordinateSystem;if(c&&"cartesian2d"===c.type&&("line"===n||"bar"===n)){var d=c.getAxesByScale("ordinal")[0];if(d){var f=d.dim,p=f+"Axis",h=e.queryComponents({mainType:p,index:t.get(name+"Index"),id:t.get(name+"Id")})[0],g=h.componentIndex;a[p]=a[p]||[];for(var m=0;m<=g;m++)a[p][g]=a[p][g]||{};a[p][g].boundaryGap="bar"===n}}};r.each(d,function(e){r.indexOf(e,n)>=0&&r.each(e,function(e){o.setIconStatus(e,"normal")})}),o.setIconStatus(n,"emphasis"),e.eachComponent({mainType:"series",query:null==i?null:{seriesIndex:i}},l),t.dispatchAction({type:"changeMagicType",currentType:n,newOption:a})}},i.registerAction({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(e,t){t.mergeOption(e.newOption)}),l.register("magicType",o);var f=o;e.exports=f},function(e,t,n){function o(e){this.model=e}var i=n(1),r=n(185),a=n(57),l=n(35),s=a.toolbox.restore;o.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:s.title},o.prototype.onclick=function(e,t,n){r.clear(e),t.dispatchAction({type:"restore",from:this.uid})},l.register("restore",o),i.registerAction({type:"restore",event:"restore",update:"prepareAndUpdate"},function(e,t){t.resetOption("recreate")});var c=o;e.exports=c},function(e,t,n){function o(e){this.model=e}var i=n(15),r=n(57),a=n(35),l=r.toolbox.saveAsImage;o.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:l.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:l.lang.slice()},o.prototype.unusable=!i.canvasSupported,o.prototype.onclick=function(e,t){var n=this.model,o=n.get("name")||e.get("title.0.text")||"echarts",r=document.createElement("a"),a=n.get("type",!0)||"png";r.download=o+"."+a,r.target="_blank";var l=t.getConnectedDataURL({type:a,backgroundColor:n.get("backgroundColor",!0)||e.get("backgroundColor")||"#fff",excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if(r.href=l,"function"!=typeof MouseEvent||i.browser.ie||i.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var s=atob(l.split(",")[1]),c=s.length,u=new Uint8Array(c);c--;)u[c]=s.charCodeAt(c);var d=new Blob([u]);window.navigator.msSaveOrOpenBlob(d,o+"."+a)}else{var f=n.get("lang"),p='',h=window.open();h.document.write(p)}else{var g=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});r.dispatchEvent(g)}},a.register("saveAsImage",o);var s=o;e.exports=s},function(e,t,n){function o(e){var t="left "+e+"s cubic-bezier(0.23, 1, 0.32, 1),top "+e+"s cubic-bezier(0.23, 1, 0.32, 1)";return l.map(h,function(e){return e+"transition:"+t}).join(";")}function i(e){var t=[],n=e.get("fontSize"),o=e.getTextColor();return o&&t.push("color:"+o),t.push("font:"+e.getFont()),n&&t.push("line-height:"+Math.round(3*n/2)+"px"),f(["decoration","align"],function(n){var o=e.get(n);o&&t.push("text-"+n+":"+o)}),t.join(";")}function r(e){var t=[],n=e.get("transitionDuration"),r=e.get("backgroundColor"),a=e.getModel("textStyle"),l=e.get("padding");return n&&t.push(o(n)),r&&(u.canvasSupported?t.push("background-Color:"+r):(t.push("background-Color:#"+s.toHex(r)),t.push("filter:alpha(opacity=70)"))),f(["width","color","radius"],function(n){var o="border-"+n,i=p(o),r=e.get(i);null!=r&&t.push(o+":"+r+("color"===n?"":"px"))}),t.push(i(a)),null!=l&&t.push("padding:"+d.normalizeCssArray(l).join("px ")+"px"),t.join(";")+";"}function a(e,t){var n=document.createElement("div"),o=this._zr=t.getZr();this.el=n,this._x=t.getWidth()/2,this._y=t.getHeight()/2,e.appendChild(n),this._container=e,this._show=!1,this._hideTimeout;var i=this;n.onmouseenter=function(){i._enterable&&(clearTimeout(i._hideTimeout),i._show=!0),i._inContent=!0},n.onmousemove=function(t){if(t=t||window.event,!i._enterable){var n=o.handler;c.normalizeEvent(e,t,!0),n.dispatch("mousemove",t)}},n.onmouseleave=function(){i._enterable&&i._show&&i.hideLater(i._hideDelay),i._inContent=!1}}var l=n(0),s=n(32),c=n(31),u=n(15),d=n(8),f=l.each,p=d.toCamelCase,h=["","-webkit-","-moz-","-o-"];a.prototype={constructor:a,_enterable:!0,update:function(){var e=this._container,t=e.currentStyle||document.defaultView.getComputedStyle(e),n=e.style;"absolute"!==n.position&&"absolute"!==t.position&&(n.position="relative")},show:function(e){clearTimeout(this._hideTimeout);var t=this.el;t.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+r(e)+";left:"+this._x+"px;top:"+this._y+"px;"+(e.get("extraCssText")||""),t.style.display=t.innerHTML?"block":"none",this._show=!0},setContent:function(e){this.el.innerHTML=null==e?"":e},setEnterable:function(e){this._enterable=e},getSize:function(){var e=this.el;return[e.clientWidth,e.clientHeight]},moveTo:function(e,t){var n,o=this._zr;o&&o.painter&&(n=o.painter.getViewportRootOffset())&&(e+=n.offsetLeft,t+=n.offsetTop);var i=this.el.style;i.left=e+"px",i.top=t+"px",this._x=e,this._y=t},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(e){!this._show||this._inContent&&this._enterable||(e?(this._hideDelay=e,this._show=!1,this._hideTimeout=setTimeout(l.bind(this.hide,this),e)):this.hide())},isShow:function(){return this._show}};var g=a;e.exports=g},function(e,t,n){var o=n(1),i=o.extendComponentModel({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});e.exports=i},function(e,t,n){function o(e){for(var t=e.pop();e.length;){var n=e.pop();n&&(n instanceof x&&(n=n.get("tooltip",!0)),"string"==typeof n&&(n={formatter:n}),t=new x(n,t,t.ecModel))}return t}function i(e,t){return e.dispatchAction||d.bind(t.dispatchAction,t)}function r(e,t,n,o,i,r,a){var s=l(n),c=s.width,u=s.height;return null!=r&&(e+c+r>o?e-=c+r:e+=r),null!=a&&(t+u+a>i?t-=u+a:t+=a),[e,t]}function a(e,t,n,o,i){var r=l(n),a=r.width,s=r.height;return e=Math.min(e+a,o)-a,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function l(e){var t=e.clientWidth,n=e.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var o=document.defaultView.getComputedStyle(e);o&&(t+=parseInt(o.paddingLeft,10)+parseInt(o.paddingRight,10)+parseInt(o.borderLeftWidth,10)+parseInt(o.borderRightWidth,10),n+=parseInt(o.paddingTop,10)+parseInt(o.paddingBottom,10)+parseInt(o.borderTopWidth,10)+parseInt(o.borderBottomWidth,10))}return{width:t,height:n}}function s(e,t,n){var o=n[0],i=n[1],r=0,a=0,l=t.width,s=t.height;switch(e){case"inside":r=t.x+l/2-o/2,a=t.y+s/2-i/2;break;case"top":r=t.x+l/2-o/2,a=t.y-i-5;break;case"bottom":r=t.x+l/2-o/2,a=t.y+s+5;break;case"left":r=t.x-o-5,a=t.y+s/2-i/2;break;case"right":r=t.x+l+5,a=t.y+s/2-i/2}return[r,a]}function c(e){return"center"===e||"middle"===e}var u=n(1),d=n(0),f=n(15),p=n(544),h=n(8),g=n(3),m=n(2),v=n(181),b=n(6),x=n(12),y=n(182),_=n(22),w=n(85),k=d.bind,S=d.each,M=g.parsePercent,C=new m.Rect({shape:{x:-1,y:-1,width:2,height:2}}),A=u.extendComponentView({type:"tooltip",init:function(e,t){if(!f.node){var n=new p(t.getDom(),t);this._tooltipContent=n}},render:function(e,t,n){if(!f.node){this.group.removeAll(),this._tooltipModel=e,this._ecModel=t,this._api=n,this._lastDataByCoordSys=null,this._alwaysShowContent=e.get("alwaysShowContent");var o=this._tooltipContent;o.update(),o.setEnterable(e.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var e=this._tooltipModel,t=e.get("triggerOn");y.register("itemTooltip",this._api,k(function(e,n,o){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,o):"leave"===e&&this._hide(o))},this))},_keepShow:function(){var e=this._tooltipModel,t=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==e.get("triggerOn")){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){o.manuallyShowTip(e,t,n,{x:o._lastX,y:o._lastY})})}},manuallyShowTip:function(e,t,n,o){if(o.from!==this.uid&&!f.node){var r=i(o,n);this._ticket="";var a=o.dataByCoordSys;if(o.tooltip&&null!=o.x&&null!=o.y){var l=C;l.position=[o.x,o.y],l.update(),l.tooltip=o.tooltip,this._tryShow({offsetX:o.x,offsetY:o.y,target:l},r)}else if(a)this._tryShow({offsetX:o.x,offsetY:o.y,position:o.position,event:{},dataByCoordSys:o.dataByCoordSys,tooltipOption:o.tooltipOption},r);else if(null!=o.seriesIndex){if(this._manuallyAxisShowTip(e,t,n,o))return;var s=v(o,t),c=s.point[0],u=s.point[1];null!=c&&null!=u&&this._tryShow({offsetX:c,offsetY:u,position:o.position,target:s.el,event:{}},r)}else null!=o.x&&null!=o.y&&(n.dispatchAction({type:"updateAxisPointer",x:o.x,y:o.y}),this._tryShow({offsetX:o.x,offsetY:o.y,position:o.position,target:n.getZr().findHover(o.x,o.y).target,event:{}},r))}},manuallyHideTip:function(e,t,n,o){var r=this._tooltipContent;this._alwaysShowContent||r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,o.from!==this.uid&&this._hide(i(o,n))},_manuallyAxisShowTip:function(e,t,n,i){var r=i.seriesIndex,a=i.dataIndex,l=t.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=a&&null!=l){var s=t.getSeriesByIndex(r);if(s){var c=s.getData(),e=o([c.getItemModel(a),s,(s.coordinateSystem||{}).model,e]);if("axis"===e.get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:a,position:i.position}),!0}}},_tryShow:function(e,t){var n=e.target;if(this._tooltipModel){this._lastX=e.offsetX,this._lastY=e.offsetY;var o=e.dataByCoordSys;o&&o.length?this._showAxisTooltip(o,e):n&&null!=n.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(e,n,t)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(e,n,t)):(this._lastDataByCoordSys=null,this._hide(t))}},_showOrMove:function(e,t){var n=e.get("showDelay");t=d.bind(t,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(t,n):t()},_showAxisTooltip:function(e,t){var n=this._ecModel,i=this._tooltipModel,r=[t.offsetX,t.offsetY],a=[],l=[],s=o([t.tooltipOption,i]);S(e,function(e){S(e.dataByAxis,function(e){var t=n.getComponent(e.axisDim+"Axis",e.axisIndex),o=e.value,i=[];if(t&&null!=o){var r=w.getValueLabel(o,t.axis,n,e.seriesDataIndices,e.valueLabelOpt);d.each(e.seriesDataIndices,function(a){var s=n.getSeriesByIndex(a.seriesIndex),c=a.dataIndexInside,u=s&&s.getDataParams(c);u.axisDim=e.axisDim,u.axisIndex=e.axisIndex,u.axisType=e.axisType,u.axisId=e.axisId,u.axisValue=_.getAxisRawValue(t.axis,o),u.axisValueLabel=r,u&&(l.push(u),i.push(s.formatTooltip(c,!0)))});var s=r;a.push((s?h.encodeHTML(s)+"
":"")+i.join("
"))}})},this),a.reverse(),a=a.join("

");var c=t.position;this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(e)?this._updatePosition(s,c,r[0],r[1],this._tooltipContent,l):this._showTooltipContent(s,a,l,Math.random(),r[0],r[1],c)})},_showSeriesItemTooltip:function(e,t,n){var i=this._ecModel,r=t.seriesIndex,a=i.getSeriesByIndex(r),l=t.dataModel||a,s=t.dataIndex,c=t.dataType,u=l.getData(),d=o([u.getItemModel(s),l,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),f=d.get("trigger");if(null==f||"item"===f){var p=l.getDataParams(s,c),h=l.formatTooltip(s,!1,c),g="item_"+l.name+"_"+s;this._showOrMove(d,function(){this._showTooltipContent(d,h,p,g,e.offsetX,e.offsetY,e.position,e.target)}),n({type:"showTip",dataIndexInside:s,dataIndex:u.getRawIndex(s),seriesIndex:r,from:this.uid})}},_showComponentItemTooltip:function(e,t,n){var o=t.tooltip;if("string"==typeof o){var i=o;o={content:i,formatter:i}}var r=new x(o,this._tooltipModel,this._ecModel),a=r.get("content"),l=Math.random();this._showOrMove(r,function(){this._showTooltipContent(r,a,r.get("formatterParams")||{},l,e.offsetX,e.offsetY,e.position,t)}),n({type:"showTip",from:this.uid})},_showTooltipContent:function(e,t,n,o,i,r,a,l){if(this._ticket="",e.get("showContent")&&e.get("show")){var s=this._tooltipContent,c=e.get("formatter");a=a||e.get("position");var u=t;if(c&&"string"==typeof c)u=h.formatTpl(c,n,!0);else if("function"==typeof c){var d=k(function(t,o){t===this._ticket&&(s.setContent(o),this._updatePosition(e,a,i,r,s,n,l))},this);this._ticket=o,u=c(n,o,d)}s.setContent(u),s.show(e),this._updatePosition(e,a,i,r,s,n,l)}},_updatePosition:function(e,t,n,o,i,l,u){var f=this._api.getWidth(),p=this._api.getHeight();t=t||e.get("position");var h=i.getSize(),g=e.get("align"),m=e.get("verticalAlign"),v=u&&u.getBoundingRect().clone();if(u&&v.applyTransform(u.transform),"function"==typeof t&&(t=t([n,o],l,i.el,v,{viewSize:[f,p],contentSize:h.slice()})),d.isArray(t))n=M(t[0],f),o=M(t[1],p);else if(d.isObject(t)){t.width=h[0],t.height=h[1];var x=b.getLayoutRect(t,{width:f,height:p});n=x.x,o=x.y,g=null,m=null}else if("string"==typeof t&&u){var y=s(t,v,h);n=y[0],o=y[1]}else{var y=r(n,o,i.el,f,p,g?null:20,m?null:20);n=y[0],o=y[1]}if(g&&(n-=c(g)?h[0]/2:"right"===g?h[0]:0),m&&(o-=c(m)?h[1]/2:"bottom"===m?h[1]:0),e.get("confine")){var y=a(n,o,i.el,f,p);n=y[0],o=y[1]}i.moveTo(n,o)},_updateContentNotChangedOnAxis:function(e){var t=this._lastDataByCoordSys,n=!!t&&t.length===e.length;return n&&S(t,function(t,o){var i=t.dataByAxis||{},r=e[o]||{},a=r.dataByAxis||[];(n&=i.length===a.length)&&S(i,function(e,t){var o=a[t]||{},i=e.seriesDataIndices||[],r=o.seriesDataIndices||[];(n&=e.value===o.value&&e.axisType===o.axisType&&e.axisId===o.axisId&&i.length===r.length)&&S(i,function(e,t){var o=r[t];n&=e.seriesIndex===o.seriesIndex&&e.dataIndex===o.dataIndex})})}),this._lastDataByCoordSys=e,!!n},_hide:function(e){this._lastDataByCoordSys=null,e({type:"hideTip",from:this.uid})},dispose:function(e,t){f.node||(this._tooltipContent.hide(),y.unregister("itemTooltip",t))}});e.exports=A},function(e,t,n){n(552),n(553)},function(e,t,n){function o(e,t,n){if(n[0]===n[1])return n.slice();for(var o=(n[1]-n[0])/200,i=n[0],r=[],a=0;a<=200&&it[1]&&t.reverse(),t[0]=Math.max(t[0],e[0]),t[1]=Math.min(t[1],e[1]))},completeVisualOption:function(){r.prototype.completeVisualOption.apply(this,arguments),i.each(this.stateList,function(e){var t=this.option.controller[e].symbolSize;t&&t[0]!==t[1]&&(t[0]=0)},this)},setSelected:function(e){this.option.range=e.slice(),this._resetRange()},getSelected:function(){var e=this.getExtent(),t=a.asc((this.get("range")||[]).slice());return t[0]>e[1]&&(t[0]=e[1]),t[1]>e[1]&&(t[1]=e[1]),t[0]=n[1]||e<=t[1])?"inRange":"outOfRange"},findTargetDataIndices:function(e){var t=[];return this.eachTargetSeries(function(n){var o=[],i=n.getData();i.each(this.getDataDimension(i),function(t,n){e[0]<=t&&t<=e[1]&&o.push(n)},!0,this),t.push({seriesId:n.id,dataIndex:o})},this),t},getVisualMeta:function(e){function t(t,n){r.push({value:t,color:e(t,n)})}for(var n=o(this,"outOfRange",this.getExtent()),i=o(this,"inRange",this.option.range.slice()),r=[],a=0,l=0,s=i.length,c=n.length;le[1])break;n.push({color:this.getControllerVisual(r,"color",t),offset:i/100})}return n.push({color:this.getControllerVisual(e[1],"color",t),offset:1}),n},_createBarPoints:function(e,t){var n=this.visualMapModel.itemSize;return[[n[0]-t[0],e[0]],[n[0],e[0]],[n[0],e[1]],[n[0]-t[1],e[1]]]},_createBarGroup:function(e){var t=this._orient,n=this.visualMapModel.get("inverse");return new p.Group("horizontal"!==t||n?"horizontal"===t&&n?{scale:"bottom"===e?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==t||n?{scale:"left"===e?[1,1]:[-1,1]}:{scale:"left"===e?[1,-1]:[-1,-1]}:{scale:"bottom"===e?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(e,t){if(this._useHandle){var n=this._shapes,o=this.visualMapModel,i=n.handleThumbs,r=n.handleLabels;x([0,1],function(a){var l=i[a];l.setStyle("fill",t.handlesColor[a]),l.position[1]=e[a];var s=p.applyTransform(n.handleLabelPoints[a],p.getTransform(l,this.group));r[a].setStyle({x:s[0],y:s[1],text:o.formatValueText(this._dataInterval[a]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===a?"bottom":"top":"left",n.barGroup)})},this)}},_showIndicator:function(e,t,n,o){var i=this.visualMapModel,a=i.getExtent(),l=i.itemSize,s=[0,l[1]],c=b(e,a,s,!0),u=this._shapes,d=u.indicator;if(d){d.position[1]=c,d.attr("invisible",!1),d.setShape("points",r(!!n,o,c,l[1]));var f={convertOpacityToAlpha:!0},h=this.getControllerVisual(e,"color",f);d.setStyle("fill",h);var g=p.applyTransform(u.indicatorLabelPoint,p.getTransform(d,this.group)),m=u.indicatorLabel;m.attr("invisible",!1);var v=this._applyTransform("left",u.barGroup),x=this._orient;m.setStyle({text:(n||"")+i.formatValueText(t),textVerticalAlign:"horizontal"===x?v:"middle",textAlign:"horizontal"===x?"center":v,x:g[0],y:g[1]})}},_enableHoverLinkToSeries:function(){var e=this;this._shapes.barGroup.on("mousemove",function(t){if(e._hovering=!0,!e._dragging){var n=e.visualMapModel.itemSize,o=e._applyTransform([t.offsetX,t.offsetY],e._shapes.barGroup,!0,!0);o[1]=y(_(0,o[1]),n[1]),e._doHoverLinkToSeries(o[1],0<=o[0]&&o[0]<=n[0])}}).on("mouseout",function(){e._hovering=!1,!e._dragging&&e._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var e=this.api.getZr();this.visualMapModel.option.hoverLink?(e.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),e.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(e,t){var n=this.visualMapModel,o=n.itemSize;if(n.option.hoverLink){var i=[0,o[1]],r=n.getExtent();e=y(_(i[0],e),i[1]);var s=a(n,r,i),c=[e-s,e+s],u=b(e,i,r,!0),d=[b(c[0],i,r,!0),b(c[1],i,r,!0)];c[0]i[1]&&(d[1]=1/0),t&&(d[0]===-1/0?this._showIndicator(u,d[1],"< ",s):d[1]===1/0?this._showIndicator(u,d[0],"> ",s):this._showIndicator(u,u,"≈ ",s));var f=this._hoverLinkDataIndices,p=[];(t||l(n))&&(p=this._hoverLinkDataIndices=n.findTargetDataIndices(d));var h=v.compressBatches(f,p);this._dispatchHighDown("downplay",m.convertDataIndex(h[0])),this._dispatchHighDown("highlight",m.convertDataIndex(h[1]))}},_hoverLinkFromSeriesMouseOver:function(e){var t=e.target,n=this.visualMapModel;if(t&&null!=t.dataIndex){var o=this.ecModel.getSeriesByIndex(t.seriesIndex);if(n.isTargetSeries(o)){var i=o.getData(t.dataType),r=i.getDimension(n.getDataDimension(i)),a=i.get(r,t.dataIndex,!0);isNaN(a)||this._showIndicator(a,a)}}},_hideIndicator:function(){var e=this._shapes;e.indicator&&e.indicator.attr("invisible",!0),e.indicatorLabel&&e.indicatorLabel.attr("invisible",!0)},_clearHoverLinkToSeries:function(){this._hideIndicator();var e=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",m.convertDataIndex(e)),e.length=0},_clearHoverLinkFromSeries:function(){this._hideIndicator();var e=this.api.getZr();e.off("mouseover",this._hoverLinkFromSeriesMouseOver),e.off("mouseout",this._hideIndicator)},_applyTransform:function(e,t,n,o){var i=p.getTransform(t,o?null:this.group);return p[c.isArray(e)?"applyTransform":"transformDirection"](e,i,n)},_dispatchHighDown:function(e,t){t&&t.length&&this.api.dispatchAction({type:e,batch:t})},dispose:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},remove:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()}}),M=S;e.exports=M},function(e,t,n){function o(e,t){var n=e.inverse;("vertical"===e.orient?!n:n)&&t.reverse()}var i=n(4),r=(i.__DEV__,n(0)),a=n(199),l=n(45),s=n(218),c=n(3),u=c.reformIntervals,d=a.extend({type:"visualMap.piecewise",defaultOption:{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieceList:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0,showLabel:null},optionUpdated:function(e,t){d.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var n=this._mode=this._determineMode();f[this._mode].call(this),this._resetSelected(e,t);var o=this.option.categories;this.resetVisual(function(e,t){"categories"===n?(e.mappingMethod="category",e.categories=r.clone(o)):(e.dataExtent=this.getExtent(),e.mappingMethod="piecewise",e.pieceList=r.map(this._pieceList,function(e){var e=r.clone(e);return"inRange"!==t&&(e.visual=null),e}))})},completeVisualOption:function(){function e(e,t,n){return e&&e[t]&&(r.isObject(e[t])?e[t].hasOwnProperty(n):e[t]===n)}var t=this.option,n={},o=l.listVisualTypes(),i=this.isCategory();r.each(t.pieces,function(e){r.each(o,function(t){e.hasOwnProperty(t)&&(n[t]=1)})}),r.each(n,function(n,o){var a=0;r.each(this.stateList,function(n){a|=e(t,n,o)||e(t.target,n,o)},this),!a&&r.each(this.stateList,function(e){(t[e]||(t[e]={}))[o]=s.get(o,"inRange"===e?"active":"inactive",i)})},this),a.prototype.completeVisualOption.apply(this,arguments)},_resetSelected:function(e,t){var n=this.option,o=this._pieceList,i=(t?n:e).selected||{};if(n.selected=i,r.each(o,function(e,t){var n=this.getSelectedMapKey(e);i.hasOwnProperty(n)||(i[n]=!0)},this),"single"===n.selectedMode){var a=!1;r.each(o,function(e,t){var n=this.getSelectedMapKey(e);i[n]&&(a?i[n]=!1:a=!0)},this)}},getSelectedMapKey:function(e){return"categories"===this._mode?e.value+"":e.index+""},getPieceList:function(){return this._pieceList},_determineMode:function(){var e=this.option;return e.pieces&&e.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},setSelected:function(e){this.option.selected=r.clone(e)},getValueState:function(e){var t=l.findPieceIndex(e,this._pieceList);return null!=t&&this.option.selected[this.getSelectedMapKey(this._pieceList[t])]?"inRange":"outOfRange"},findTargetDataIndices:function(e){var t=[];return this.eachTargetSeries(function(n){var o=[],i=n.getData();i.each(this.getDataDimension(i),function(t,n){l.findPieceIndex(t,this._pieceList)===e&&o.push(n)},!0,this),t.push({seriesId:n.id,dataIndex:o})},this),t},getRepresentValue:function(e){var t;if(this.isCategory())t=e.value;else if(null!=e.value)t=e.value;else{var n=e.interval||[];t=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return t},getVisualMeta:function(e){function t(t,r){var a=i.getRepresentValue({interval:t});r||(r=i.getValueState(a));var l=e(a,r);t[0]===-1/0?o[0]=l:t[1]===1/0?o[1]=l:n.push({value:t[0],color:l},{value:t[1],color:l})}if(!this.isCategory()){var n=[],o=[],i=this,a=this._pieceList.slice();if(a.length){var l=a[0].interval[0];l!==-1/0&&a.unshift({interval:[-1/0,l]}),(l=a[a.length-1].interval[1])!==1/0&&a.push({interval:[l,1/0]})}else a.push({interval:[-1/0,1/0]});var s=-1/0;return r.each(a,function(e){var n=e.interval;n&&(n[0]>s&&t([s,n[0]],"outOfRange"),t(n.slice()),s=n[1])},this),{stops:n,outerColors:o}}}}),f={splitNumber:function(){var e=this.option,t=this._pieceList,n=Math.min(e.precision,20),o=this.getExtent(),i=e.splitNumber;i=Math.max(parseInt(i,10),1),e.splitNumber=i;for(var a=(o[1]-o[0])/i;+a.toFixed(n)!==a&&n<5;)n++;e.precision=n,a=+a.toFixed(n);var l=0;e.minOpen&&t.push({index:l++,interval:[-1/0,o[0]],close:[0,0]});for(var s=o[0],c=l+i;l","≥"][t[0]]];e.text=e.text||this.formatValueText(null!=e.value?e.value:e.interval,!1,n)},this)}},p=d;e.exports=p},function(e,t,n){var o=n(0),i=n(200),r=n(2),a=n(23),l=a.createSymbol,s=n(6),c=n(201),u=i.extend({type:"visualMap.piecewise",doRender:function(){function e(e){var a=e.piece,s=new r.Group;s.onclick=o.bind(this._onItemClick,this,a),this._enableHoverLink(s,e.indexInModelPieceList);var f=n.getRepresentValue(a);if(this._createItemSymbol(s,f,[0,0,d[0],d[1]]),h){var p=this.visualMapModel.getValueState(f);s.add(new r.Text({style:{x:"right"===u?-i:d[0]+i,y:d[1]/2,text:a.text,textVerticalAlign:"middle",textAlign:u,textFont:l,textFill:c,opacity:"outOfRange"===p?.5:1}}))}t.add(s)}var t=this.group;t.removeAll();var n=this.visualMapModel,i=n.get("textGap"),a=n.textStyleModel,l=a.getFont(),c=a.getTextColor(),u=this._getItemAlign(),d=n.itemSize,f=this._getViewData(),p=f.endsText,h=o.retrieve(n.get("showLabel",!0),!p);p&&this._renderEndsText(t,p[0],d,h,u),o.each(f.viewPieceList,e,this),p&&this._renderEndsText(t,p[1],d,h,u),s.box(n.get("orient"),t,n.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},_enableHoverLink:function(e,t){function n(e){var n=this.visualMapModel;n.option.hoverLink&&this.api.dispatchAction({type:e,batch:c.convertDataIndex(n.findTargetDataIndices(t))})}e.on("mouseover",o.bind(n,this,"highlight")).on("mouseout",o.bind(n,this,"downplay"))},_getItemAlign:function(){var e=this.visualMapModel,t=e.option;if("vertical"===t.orient)return c.getItemAlign(e,this.api,e.itemSize);var n=t.align;return n&&"auto"!==n||(n="left"),n},_renderEndsText:function(e,t,n,o,i){if(t){var a=new r.Group,l=this.visualMapModel.textStyleModel;a.add(new r.Text({style:{x:o?"right"===i?n[0]:0:n[0]/2,y:n[1]/2,textVerticalAlign:"middle",textAlign:o?i:"center",text:t,textFont:l.getFont(),textFill:l.getTextColor()}})),e.add(a)}},_getViewData:function(){var e=this.visualMapModel,t=o.map(e.getPieceList(),function(e,t){return{piece:e,indexInModelPieceList:t}}),n=e.get("text"),i=e.get("orient"),r=e.get("inverse");return("horizontal"===i?r:!r)?t.reverse():n&&(n=n.slice().reverse()),{viewPieceList:t,endsText:n}},_createItemSymbol:function(e,t,n){e.add(l(this.getControllerVisual(t,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(t,"color")))},_onItemClick:function(e){var t=this.visualMapModel,n=t.option,i=o.clone(n.selected),r=t.getSelectedMapKey(e);"single"===n.selectedMode?(i[r]=!0,o.each(i,function(e,t){i[t]=t===r})):i[r]=!i[r],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})}}),d=u;e.exports=d},function(e,t,n){var o=n(1),i=n(202);n(203),n(204),n(548),n(549),n(205),o.registerPreprocessor(i)},function(e,t,n){var o=n(1),i=n(202);n(203),n(204),n(550),n(551),n(205),o.registerPreprocessor(i)},function(e,t,n){function o(e,t,n){this._model=e}function i(e,t,n,o){var i=n.calendarModel,r=n.seriesModel,a=i?i.coordinateSystem:r?r.coordinateSystem:null;return a===this?a[e](o):null}var r=n(0),a=n(6),l=n(3),s=n(26);o.prototype={constructor:o,type:"calendar",dimensions:["time","value"],getDimensionsInfo:function(){return[{name:"time",type:"time"}]},getRangeInfo:function(){return this._rangeInfo},getModel:function(){return this._model},getRect:function(){return this._rect},getCellWidth:function(){return this._sw},getCellHeight:function(){return this._sh},getOrient:function(){return this._orient},getFirstDayOfWeek:function(){return this._firstDayOfWeek},getDateInfo:function(e){e=l.parseDate(e);var t=e.getFullYear(),n=e.getMonth()+1;n=n<10?"0"+n:n;var o=e.getDate();o=o<10?"0"+o:o;var i=e.getDay();return i=Math.abs((i+7-this.getFirstDayOfWeek())%7),{y:t,m:n,d:o,day:i,time:e.getTime(),formatedDate:t+"-"+n+"-"+o,date:e}},getNextNDay:function(e,t){return 0===(t=t||0)?this.getDateInfo(e):(e=new Date(this.getDateInfo(e).time),e.setDate(e.getDate()+t),this.getDateInfo(e))},update:function(e,t){function n(e,t){return null!=e[t]&&"auto"!==e[t]}this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle.normal").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var o=this._rangeInfo.weeks||1,i=["width","height"],l=this._model.get("cellSize").slice(),s=this._model.getBoxLayoutParams(),c="horizontal"===this._orient?[o,7]:[7,o];r.each([0,1],function(e){n(l,e)&&(s[i[e]]=l[e]*c[e])});var u={width:t.getWidth(),height:t.getHeight()},d=this._rect=a.getLayoutRect(s,u);r.each([0,1],function(e){n(l,e)||(l[e]=d[i[e]]/c[e])}),this._sw=l[0],this._sh=l[1]},dataToPoint:function(e,t){r.isArray(e)&&(e=e[0]),null==t&&(t=!0);var n=this.getDateInfo(e),o=this._rangeInfo,i=n.formatedDate;if(t&&!(n.time>=o.start.time&&n.time<=o.end.time))return[NaN,NaN];var a=n.day,l=this._getRangeInfo([o.start.time,i]).nthWeek;return"vertical"===this._orient?[this._rect.x+a*this._sw+this._sw/2,this._rect.y+l*this._sh+this._sh/2]:[this._rect.x+l*this._sw+this._sw/2,this._rect.y+a*this._sh+this._sh/2]},pointToData:function(e){var t=this.pointToDate(e);return t&&t.time},dataToRect:function(e,t){var n=this.dataToPoint(e,t);return{contentShape:{x:n[0]-(this._sw-this._lineWidth)/2,y:n[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:n,tl:[n[0]-this._sw/2,n[1]-this._sh/2],tr:[n[0]+this._sw/2,n[1]-this._sh/2],br:[n[0]+this._sw/2,n[1]+this._sh/2],bl:[n[0]-this._sw/2,n[1]+this._sh/2]}},pointToDate:function(e){var t=Math.floor((e[0]-this._rect.x)/this._sw)+1,n=Math.floor((e[1]-this._rect.y)/this._sh)+1,o=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(n,t-1,o):this._getDateByWeeksAndDay(t,n-1,o)},convertToPixel:r.curry(i,"dataToPoint"),convertFromPixel:r.curry(i,"pointToData"),_initRangeOption:function(){var e=this._model.get("range"),t=e;if(r.isArray(t)&&1===t.length&&(t=t[0]),/^\d{4}$/.test(t)&&(e=[t+"-01-01",t+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(t)){var n=this.getDateInfo(t),o=n.date;o.setMonth(o.getMonth()+1);var i=this.getNextNDay(o,-1);e=[n.formatedDate,i.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(t)&&(e=[t,t]);var a=this._getRangeInfo(e);return a.start.time>a.end.time&&e.reverse(),e},_getRangeInfo:function(e){e=[this.getDateInfo(e[0]),this.getDateInfo(e[1])];var t;e[0].time>e[1].time&&(t=!0,e.reverse());var n=Math.floor(e[1].time/864e5)-Math.floor(e[0].time/864e5)+1,o=new Date(e[0].time),i=o.getDate(),r=e[1].date.getDate();if(o.setDate(i+n-1),o.getDate()!==r)for(var a=o.getTime()-e[1].time>0?1:-1;o.getDate()!==r&&(o.getTime()-e[1].time)*a>0;)n-=a,o.setDate(i+n-1);var l=Math.floor((n+e[0].day+6)/7),s=t?1-l:l-1;return t&&e.reverse(),{range:[e[0].formatedDate,e[1].formatedDate],start:e[0],end:e[1],allDay:n,weeks:l,nthWeek:s,fweek:e[0].day,lweek:e[1].day}},_getDateByWeeksAndDay:function(e,t,n){var o=this._getRangeInfo(n);if(e>o.weeks||0===e&&to.lweek)return!1;var i=7*(e-1)-o.fweek+t,r=new Date(o.start.time);return r.setDate(o.start.d+i),this.getDateInfo(r)}},o.dimensions=o.prototype.dimensions,o.getDimensionsInfo=o.prototype.getDimensionsInfo,o.create=function(e,t){var n=[];return e.eachComponent("calendar",function(i){var r=new o(i,e,t);n.push(r),i.coordinateSystem=r}),e.eachSeries(function(e){"calendar"===e.get("coordinateSystem")&&(e.coordinateSystem=n[e.get("calendarIndex")||0])}),n},s.register("calendar",o);var c=o;e.exports=c},function(e,t,n){function o(e,t){var n=e.cellSize;i.isArray(n)?1===n.length&&(n[1]=n[0]):n=e.cellSize=[n,n];var o=i.map([0,1],function(e){return s(t,e)&&(n[e]="auto"),null!=n[e]&&"auto"!==n[e]});c(e,t,{type:"box",ignoreSize:o})}var i=n(0),r=n(14),a=n(6),l=a.getLayoutParams,s=a.sizeCalculable,c=a.mergeLayoutParam,u=r.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{normal:{color:"#fff",borderWidth:1,borderColor:"#ccc"}},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(e,t,n,i){var r=l(e);u.superApply(this,"init",arguments),o(e,r)},mergeOption:function(e,t){u.superApply(this,"mergeOption",arguments),o(this.option,e)}}),d=u;e.exports=d},function(e,t,n){function o(e){var t=e.getRect(),n=e.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:e.getCellWidth(),cellHeight:e.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:i.bind(e.dataToPoint,e)}}}var i=n(0);e.exports=o},function(e,t,n){var o=n(0),i=n(36),r=function(e,t,n,o,r){i.call(this,e,t,n),this.type=o||"value",this.position=r||"bottom"};r.prototype={constructor:r,index:0,onZero:!1,model:null,isHorizontal:function(){var e=this.position;return"top"===e||"bottom"===e},getGlobalExtent:function(e){var t=this.getExtent();return t[0]=this.toGlobalCoord(t[0]),t[1]=this.toGlobalCoord(t[1]),e&&t[0]>t[1]&&t.reverse(),t},getOtherAxis:function(){this.grid.getOtherAxis()},isLabelIgnored:function(e){if("category"===this.type){var t=this.getLabelInterval();return"function"==typeof t&&!t(e,this.scale.getLabel(e))||e%(t+1)}},pointToData:function(e,t){return this.coordToData(this.toLocalCoord(e["x"===this.dim?0:1]),t)},toLocalCoord:null,toGlobalCoord:null},o.inherits(r,i);var a=r;e.exports=a},function(e,t,n){function o(e){return this._axes[e]}var i=n(0),r=function(e){this._axes={},this._dimList=[],this.name=e||""};r.prototype={constructor:r,type:"cartesian",getAxis:function(e){return this._axes[e]},getAxes:function(){return i.map(this._dimList,o,this)},getAxesByScale:function(e){return e=e.toLowerCase(),i.filter(this.getAxes(),function(t){return t.scale.type===e})},addAxis:function(e){var t=e.dim;this._axes[t]=e,this._dimList.push(t)},dataToCoord:function(e){return this._dataCoordConvert(e,"dataToCoord")},coordToData:function(e){return this._dataCoordConvert(e,"coordToData")},_dataCoordConvert:function(e,t){for(var n=this._dimList,o=e instanceof Array?[]:{},i=0;i=0;n--)s.asc(t[n])},getActiveState:function(e){var t=this.activeIntervals;if(!t.length)return"normal";if(null==e)return"inactive";for(var n=0,o=t.length;n=n&&r<=n+t.axisLength&&a>=o&&a<=o+t.layoutLength},getModel:function(){return this._model},_updateAxesFromSeries:function(e,t){t.eachSeries(function(n){if(e.contains(n,t)){var o=n.getData();g(this.dimensions,function(e){var t=this._axesMap.get(e);t.scale.unionExtentFromData(o,e),u.niceScaleExtent(t.scale,t.model)},this)}},this)},resize:function(e,t){this._rect=c.getLayoutRect(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()}),this._layoutAxes()},getRect:function(){return this._rect},_makeLayoutInfo:function(){var e,t=this._model,n=this._rect,o=["x","y"],r=["width","height"],a=t.get("layout"),l="horizontal"===a?0:1,s=n[r[l]],c=[0,s],u=this.dimensions.length,d=i(t.get("axisExpandWidth"),c),f=i(t.get("axisExpandCount")||0,[0,u]),p=t.get("axisExpandable")&&u>3&&u>f&&f>1&&d>0&&s>0,h=t.get("axisExpandWindow");h?(e=i(h[1]-h[0],c),h[1]=h[0]+e):(e=i(d*(f-1),c),h=[d*(t.get("axisExpandCenter")||b(u/2))-e/2],h[1]=h[0]+e);var g=(s-e)/(u-f);g<3&&(g=0);var m=[b(y(h[0]/d,1))+1,x(y(h[1]/d,1))-1],v=g/d*h[0];return{layout:a,pixelDimIndex:l,layoutBase:n[o[l]],layoutLength:s,axisBase:n[o[1-l]],axisLength:n[r[1-l]],axisExpandable:p,axisExpandWidth:d,axisCollapseWidth:g,axisExpandWindow:h,axisCount:u,winInnerIndices:m,axisExpandWindow0Pos:v}},_layoutAxes:function(){var e=this._rect,t=this._axesMap,n=this.dimensions,o=this._makeLayoutInfo(),i=o.layout;t.each(function(e){var t=[0,o.axisLength],n=e.inverse?1:0;e.setExtent(t[n],t[1-n])}),g(n,function(n,l){var c=(o.axisExpandable?a:r)(l,o),u={horizontal:{x:c.position,y:o.axisLength},vertical:{x:0,y:c.position}},d={horizontal:_/2,vertical:0},f=[u[i].x+e.x,u[i].y+e.y],p=d[i],h=s.create();s.rotate(h,h,p),s.translate(h,h,f),this._axesLayout[n]={position:f,rotation:p,transform:h,axisNameAvailableWidth:c.axisNameAvailableWidth,axisLabelShow:c.axisLabelShow,nameTruncateMaxWidth:c.nameTruncateMaxWidth,tickDirection:1,labelDirection:1,labelInterval:t.get(n).getLabelInterval()}},this)},getAxis:function(e){return this._axesMap.get(e)},dataToPoint:function(e,t){return this.axisCoordToPoint(this._axesMap.get(t).dataToCoord(e),t)},eachActiveState:function(e,t,n){for(var o=this.dimensions,i=this._axesMap,r=this.hasAxisBrushed(),a=0,l=e.count();ai*(1-u[0])?(s="jump",a=l-i*(1-u[2])):(a=l-i*u[1])>=0&&(a=l-i*(1-u[1]))<=0&&(a=0),a*=t.axisExpandWidth/c,a?h(a,o,r,"all"):s="none";else{var i=o[1]-o[0];o=[v(0,r[1]*l/i-i/2)],o[1]=m(r[1],o[0]+i),o[0]=o[1]-i}return{axisExpandWindow:o,behavior:s}}};var w=o;e.exports=w},function(e,t,n){var o=n(0),i=n(36),r=function(e,t,n,o,r){i.call(this,e,t,n),this.type=o||"value",this.axisIndex=r};r.prototype={constructor:r,model:null,isHorizontal:function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")}},o.inherits(r,i);var a=r;e.exports=a},function(e,t,n){var o=n(0),i=n(14);n(569);var r=i.extend({type:"parallel",dependencies:["parallelAxis"],coordinateSystem:null,dimensions:null,parallelAxisIndex:null,layoutMode:"box",defaultOption:{zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},init:function(){i.prototype.init.apply(this,arguments),this.mergeOption({})},mergeOption:function(e){var t=this.option;e&&o.merge(t,e,!0),this._initDimensions()},contains:function(e,t){var n=e.get("parallelIndex");return null!=n&&t.getComponent("parallel",n)===this},setAxisExpand:function(e){o.each(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],function(t){e.hasOwnProperty(t)&&(this.option[t]=e[t])},this)},_initDimensions:function(){var e=this.dimensions=[],t=this.parallelAxisIndex=[],n=o.filter(this.dependentModels.parallelAxis,function(e){return(e.get("parallelIndex")||0)===this.componentIndex},this);o.each(n,function(n){e.push("dim"+n.get("dim")),t.push(n.componentIndex)})}});e.exports=r},function(e,t,n){function o(e){i(e),r(e)}function i(e){if(!e.parallel){var t=!1;a.each(e.series,function(e){e&&"parallel"===e.type&&(t=!0)}),t&&(e.parallel=[{}])}}function r(e){var t=l.normalizeToArray(e.parallelAxis);a.each(t,function(t){if(a.isObject(t)){var n=t.parallelIndex||0,o=l.normalizeToArray(e.parallel)[n];o&&o.parallelAxisDefault&&a.merge(t,o.parallelAxisDefault,!1)}})}var a=n(0),l=n(5);e.exports=o},function(e,t,n){function o(e,t){t=t||[0,360],r.call(this,"angle",e,t),this.type="category"}var i=n(0),r=n(36);o.prototype={constructor:o,pointToData:function(e,t){return this.polar.pointToData(e,t)["radius"===this.dim?0:1]},dataToAngle:r.prototype.dataToCoord,angleToData:r.prototype.coordToData},i.inherits(o,r);var a=o;e.exports=a},function(e,t,n){function o(e,t){return t.type||(t.data?"category":"value")}var i=n(0),r=n(14),a=n(87),l=n(55),s=r.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});i.merge(s.prototype,l);var c={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};a("angle",s,o,c.angle),a("radius",s,o,c.radius)},function(e,t,n){var o=n(578),i=n(574),r=function(e){this.name=e||"",this.cx=0,this.cy=0,this._radiusAxis=new o,this._angleAxis=new i,this._radiusAxis.polar=this._angleAxis.polar=this};r.prototype={type:"polar",axisPointerEnabled:!0,constructor:r,dimensions:["radius","angle"],model:null,containPoint:function(e){var t=this.pointToCoord(e);return this._radiusAxis.contain(t[0])&&this._angleAxis.contain(t[1])},containData:function(e){return this._radiusAxis.containData(e[0])&&this._angleAxis.containData(e[1])},getAxis:function(e){return this["_"+e+"Axis"]},getAxes:function(){return[this._radiusAxis,this._angleAxis]},getAxesByScale:function(e){var t=[],n=this._angleAxis,o=this._radiusAxis;return n.scale.type===e&&t.push(n),o.scale.type===e&&t.push(o),t},getAngleAxis:function(){return this._angleAxis},getRadiusAxis:function(){return this._radiusAxis},getOtherAxis:function(e){var t=this._angleAxis;return e===t?this._radiusAxis:t},getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},getTooltipAxes:function(e){var t=null!=e&&"auto"!==e?this.getAxis(e):this.getBaseAxis();return{baseAxes:[t],otherAxes:[this.getOtherAxis(t)]}},dataToPoint:function(e,t){return this.coordToPoint([this._radiusAxis.dataToRadius(e[0],t),this._angleAxis.dataToAngle(e[1],t)])},pointToData:function(e,t){var n=this.pointToCoord(e);return[this._radiusAxis.radiusToData(n[0],t),this._angleAxis.angleToData(n[1],t)]},pointToCoord:function(e){var t=e[0]-this.cx,n=e[1]-this.cy,o=this.getAngleAxis(),i=o.getExtent(),r=Math.min(i[0],i[1]),a=Math.max(i[0],i[1]);o.inverse?r=a-360:a=r+360;var l=Math.sqrt(t*t+n*n);t/=l,n/=l;for(var s=Math.atan2(-n,t)/Math.PI*180,c=sa;)s+=360*c;return[l,s]},coordToPoint:function(e){var t=e[0],n=e[1]/180*Math.PI;return[Math.cos(n)*t+this.cx,-Math.sin(n)*t+this.cy]}};var a=r;e.exports=a},function(e,t,n){var o=n(1);n(575);var i=o.extendComponentModel({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(e){var t;return this.ecModel.eachComponent(e,function(e){e.getCoordSysModel()===this&&(t=e)},this),t},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}});e.exports=i},function(e,t,n){function o(e,t){r.call(this,"radius",e,t),this.type="category"}var i=n(0),r=n(36);o.prototype={constructor:o,pointToData:function(e,t){return this.polar.pointToData(e,t)["radius"===this.dim?0:1]},dataToRadius:r.prototype.dataToCoord,radiusToData:r.prototype.coordToData},i.inherits(o,r);var a=o;e.exports=a},function(e,t,n){function o(e,t){return r.map(["Radius","Angle"],function(n,o){var i=this["get"+n+"Axis"](),r=t[o],a=e[o]/2,l="dataTo"+n,s="category"===i.type?i.getBandWidth():Math.abs(i[l](r-a)-i[l](r+a));return"Angle"===n&&(s=s*Math.PI/180),s},this)}function i(e){var t=e.getRadiusAxis(),n=e.getAngleAxis(),i=t.getExtent();return i[0]>i[1]&&i.reverse(),{coordSys:{type:"polar",cx:e.cx,cy:e.cy,r:i[1],r0:i[0]},api:{coord:r.bind(function(o){var i=t.dataToRadius(o[0]),r=n.dataToAngle(o[1]),a=e.coordToPoint([i,r]);return a.push(i,r*Math.PI/180),a}),size:r.bind(o,e)}}}var r=n(0);e.exports=i},function(e,t,n){function o(e,t,n){r.call(this,e,t,n),this.type="value",this.angle=0,this.name="",this.model}var i=n(0),r=n(36);i.inherits(o,r);var a=o;e.exports=a},function(e,t,n){function o(e,t,n){this._model=e,this.dimensions=[],this._indicatorAxes=i.map(e.getIndicatorModels(),function(e,t){var n="indicator_"+t,o=new r(n,new a);return o.name=e.get("name"),o.model=e,e.axis=o,this.dimensions.push(n),o},this),this.resize(e,n),this.cx,this.cy,this.r,this.startAngle}var i=n(0),r=n(580),a=n(90),l=n(3),s=n(22),c=s.getScaleExtent,u=s.niceScaleExtent,d=n(26);o.prototype.getIndicatorAxes=function(){return this._indicatorAxes},o.prototype.dataToPoint=function(e,t){var n=this._indicatorAxes[t];return this.coordToPoint(n.dataToCoord(e),t)},o.prototype.coordToPoint=function(e,t){var n=this._indicatorAxes[t],o=n.angle;return[this.cx+e*Math.cos(o),this.cy-e*Math.sin(o)]},o.prototype.pointToData=function(e){var t=e[0]-this.cx,n=e[1]-this.cy,o=Math.sqrt(t*t+n*n);t/=o,n/=o;for(var i,r=Math.atan2(-n,t),a=1/0,l=-1,s=0;so[0]&&isFinite(h)&&isFinite(o[0]))}else{var g=r.getTicks().length-1;g>a&&(f=n(f));var m=Math.round((o[0]+o[1])/2/f)*f,v=Math.round(a/2);r.setExtent(l.round(m-v*f),l.round(m+(a-v)*f)),r.setInterval(f)}})},o.dimensions=[],o.create=function(e,t){var n=[];return e.eachComponent("radar",function(i){var r=new o(i,e,t);n.push(r),i.coordinateSystem=r}),e.eachSeriesByType("radar",function(e){"radar"===e.get("coordinateSystem")&&(e.coordinateSystem=n[e.get("radarIndex")||0])}),n},d.register("radar",o);var f=o;e.exports=f},function(e,t,n){function o(e,t){return r.defaults({show:t},e)}var i=n(1),r=n(0),a=n(207),l=n(12),s=n(55),c=a.valueAxis,u=i.extendComponentModel({type:"radar",optionUpdated:function(){var e=this.get("boundaryGap"),t=this.get("splitNumber"),n=this.get("scale"),o=this.get("axisLine"),i=this.get("axisTick"),a=this.get("axisLabel"),c=this.get("name"),u=this.get("name.show"),d=this.get("name.formatter"),f=this.get("nameGap"),p=this.get("triggerEvent"),h=r.map(this.get("indicator")||[],function(h){null!=h.max&&h.max>0&&!h.min?h.min=0:null!=h.min&&h.min<0&&!h.max&&(h.max=0);var g=c;if(null!=h.color&&(g=r.defaults({color:h.color},c)),h=r.merge(r.clone(h),{boundaryGap:e,splitNumber:t,scale:n,axisLine:o,axisTick:i,axisLabel:a,name:h.text,nameLocation:"end",nameGap:f,nameTextStyle:g,triggerEvent:p},!1),u||(h.name=""),"string"==typeof d){var m=h.name;h.name=d.replace("{value}",null!=m?m:"")}else"function"==typeof d&&(h.name=d(h.name,h));var v=r.extend(new l(h,null,this.ecModel),s);return v.mainType="radar",v.componentIndex=this.componentIndex,v},this);this.getIndicatorModels=function(){return h}},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,name:{show:!0},boundaryGap:[0,0],splitNumber:5,nameGap:15,scale:!1,shape:"polygon",axisLine:r.merge({lineStyle:{color:"#bbb"}},c.axisLine),axisLabel:o(c.axisLabel,!1),axisTick:o(c.axisTick,!1),splitLine:o(c.splitLine,!0),splitArea:o(c.splitArea,!0),indicator:[]}}),d=u;e.exports=d},function(e,t,n){function o(e,t){return t.type||(t.data?"category":"value")}var i=n(0),r=n(14),a=n(87),l=n(55),s=r.extend({type:"singleAxis",layoutMode:"box",axis:null,coordinateSystem:null,getCoordSysModel:function(){return this}}),c={left:"5%",top:"5%",right:"5%",bottom:"5%",type:"value",position:"bottom",orient:"horizontal",axisLine:{show:!0,lineStyle:{width:2,type:"solid"}},tooltip:{show:!0},axisTick:{show:!0,length:6,lineStyle:{width:2}},axisLabel:{show:!0,interval:"auto"},splitLine:{show:!0,lineStyle:{type:"dashed",opacity:.2}}};i.merge(s.prototype,l),a("single",s,o,c);var u=s;e.exports=u},function(e,t,n){function o(e,t,n){this.dimension="single",this.dimensions=["single"],this._axis=null,this._rect,this._init(e,t,n),this.model=e}var i=n(585),r=n(22),a=n(6),l=a.getLayoutRect;o.prototype={type:"singleAxis",axisPointerEnabled:!0,constructor:o,_init:function(e,t,n){var o=this.dimension,a=new i(o,r.createScaleByModel(e),[0,0],e.get("type"),e.get("position")),l="category"===a.type;a.onBand=l&&e.get("boundaryGap"),a.inverse=e.get("inverse"),a.orient=e.get("orient"),e.axis=a,a.model=e,a.coordinateSystem=this,this._axis=a},update:function(e,t){e.eachSeries(function(e){if(e.coordinateSystem===this){var t=e.getData(),n=this.dimension;this._axis.scale.unionExtentFromData(t,e.coordDimToDataDim(n)),r.niceScaleExtent(this._axis.scale,this._axis.model)}},this)},resize:function(e,t){this._rect=l({left:e.get("left"),top:e.get("top"),right:e.get("right"),bottom:e.get("bottom"),width:e.get("width"),height:e.get("height")},{width:t.getWidth(),height:t.getHeight()}),this._adjustAxis()},getRect:function(){return this._rect},_adjustAxis:function(){var e=this._rect,t=this._axis,n=t.isHorizontal(),o=n?[0,e.width]:[0,e.height],i=t.reverse?1:0;t.setExtent(o[i],o[1-i]),this._updateAxisTransform(t,n?e.x:e.y)},_updateAxisTransform:function(e,t){var n=e.getExtent(),o=n[0]+n[1],i=e.isHorizontal();e.toGlobalCoord=i?function(e){return e+t}:function(e){return o-e+t},e.toLocalCoord=i?function(e){return e-t}:function(e){return o-e+t}},getAxis:function(){return this._axis},getBaseAxis:function(){return this._axis},getAxes:function(){return[this._axis]},getTooltipAxes:function(){return{baseAxes:[this.getAxis()]}},containPoint:function(e){var t=this.getRect(),n=this.getAxis();return"horizontal"===n.orient?n.contain(n.toLocalCoord(e[0]))&&e[1]>=t.y&&e[1]<=t.y+t.height:n.contain(n.toLocalCoord(e[1]))&&e[0]>=t.y&&e[0]<=t.y+t.height},pointToData:function(e){var t=this.getAxis();return[t.coordToData(t.toLocalCoord(e["horizontal"===t.orient?0:1]))]},dataToPoint:function(e){var t=this.getAxis(),n=this.getRect(),o=[],i="horizontal"===t.orient?0:1;return e instanceof Array&&(e=e[0]),o[i]=t.toGlobalCoord(t.dataToCoord(+e)),o[1-i]=0===i?n.y+n.height/2:n.x+n.width/2,o}};var s=o;e.exports=s},function(e,t,n){var o=n(0),i=n(36),r=function(e,t,n,o,r){i.call(this,e,t,n),this.type=o||"value",this.position=r||"bottom",this.orient=null,this._labelInterval=null};r.prototype={constructor:r,model:null,isHorizontal:function(){var e=this.position;return"top"===e||"bottom"===e},pointToData:function(e,t){return this.coordinateSystem.pointToData(e,t)[0]},toGlobalCoord:null,toLocalCoord:null},o.inherits(r,i);var a=r;e.exports=a},function(e,t,n){function o(e,t){var n=this.getAxis(),o=t instanceof Array?t[0]:t,i=(e instanceof Array?e[0]:e)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(o-i)-n.dataToCoord(o+i))}function i(e){var t=e.getRect();return{coordSys:{type:"singleAxis",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:r.bind(e.dataToPoint,e),size:r.bind(o,e)}}}var r=n(0);e.exports=i},function(e,t,n){function o(e,t){var n=[];return e.eachComponent("singleAxis",function(o,r){var a=new i(o,e,t);a.name="single_"+r,a.resize(o,t),o.coordinateSystem=a,n.push(a)}),e.eachSeries(function(t){if("singleAxis"===t.get("coordinateSystem")){var n=e.queryComponents({mainType:"singleAxis",index:t.get("singleAxisIndex"),id:t.get("singleAxisId")})[0];t.coordinateSystem=n&&n.coordinateSystem}}),n}var i=n(584);n(26).register("single",{create:o,dimensions:i.prototype.dimensions})},function(e,t,n){function o(e){return"_EC_"+e}function i(e,t){this.id=null==e?"":e,this.inEdges=[],this.outEdges=[],this.edges=[],this.hostGraph,this.dataIndex=null==t?-1:t}function r(e,t,n){this.node1=e,this.node2=t,this.dataIndex=null==n?-1:n}var a=n(4),l=(a.__DEV__,n(0)),s=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this.data,this.edgeData},c=s.prototype;c.type="graph",c.isDirected=function(){return this._directed},c.addNode=function(e,t){e=e||""+t;var n=this._nodesMap;if(!n[o(e)]){var r=new i(e,t);return r.hostGraph=this,this.nodes.push(r),n[o(e)]=r,r}},c.getNodeByIndex=function(e){var t=this.data.getRawIndex(e);return this.nodes[t]},c.getNodeById=function(e){return this._nodesMap[o(e)]},c.addEdge=function(e,t,n){var a=this._nodesMap,l=this._edgesMap;if("number"==typeof e&&(e=this.nodes[e]),"number"==typeof t&&(t=this.nodes[t]),e instanceof i||(e=a[o(e)]),t instanceof i||(t=a[o(t)]),e&&t){var s=e.id+"-"+t.id;if(!l[s]){var c=new r(e,t,n);return c.hostGraph=this,this._directed&&(e.outEdges.push(c),t.inEdges.push(c)),e.edges.push(c),e!==t&&t.edges.push(c),this.edges.push(c),l[s]=c,c}}},c.getEdgeByIndex=function(e){var t=this.edgeData.getRawIndex(e);return this.edges[t]},c.getEdge=function(e,t){e instanceof i&&(e=e.id),t instanceof i&&(t=t.id);var n=this._edgesMap;return this._directed?n[e+"-"+t]:n[e+"-"+t]||n[t+"-"+e]},c.eachNode=function(e,t){for(var n=this.nodes,o=n.length,i=0;i=0&&e.call(t,n[i],i)},c.eachEdge=function(e,t){for(var n=this.edges,o=n.length,i=0;i=0&&n[i].node1.dataIndex>=0&&n[i].node2.dataIndex>=0&&e.call(t,n[i],i)},c.breadthFirstTraverse=function(e,t,n,r){if(t instanceof i||(t=this._nodesMap[o(t)]),t){for(var a="out"===n?"outEdges":"in"===n?"inEdges":"edges",l=0;l=0&&n.node2.dataIndex>=0});for(var i=0,r=o.length;i=0&&this[e][t].setItemVisual(this.dataIndex,n,o)},getVisual:function(n,o){return this[e][t].getItemVisual(this.dataIndex,n,o)},setLayout:function(n,o){this.dataIndex>=0&&this[e][t].setItemLayout(this.dataIndex,n,o)},getLayout:function(){return this[e][t].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[e][t].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[e][t].getRawIndex(this.dataIndex)}}};l.mixin(i,u("hostGraph","data")),l.mixin(r,u("hostGraph","edgeData")),s.Node=i,s.Edge=r;var d=s;e.exports=d},function(e,t,n){function o(e){var t=e.get("data");return l(t,e,e.ecModel)}function i(e,t){var n=t;t instanceof u||(n=new u(t),a.mixin(n,c));var o=s.createScaleByModel(n);return o.setExtent(e[0],e[1]),s.niceScaleExtent(o,n),o}function r(e){a.mixin(e,c)}var a=n(0),l=n(34),s=n(22),c=n(55),u=n(12),d=n(25);t.completeDimensions=d;var f=n(23);t.createSymbol=f.createSymbol,t.createList=o,t.createScale=i,t.mixinAxisModelCommonMethods=r},function(e,t,n){function o(e){return e.get("stack")||"__ec_stack_"+e.seriesIndex}function i(e){return e.dim}function r(e,t,n){var r=n.getWidth(),s=n.getHeight(),u={},d={},f=a(l.filter(t.getSeriesByType(e),function(e){return!t.isSeriesFiltered(e)&&e.coordinateSystem&&"polar"===e.coordinateSystem.type}));t.eachSeriesByType(e,function(e){if("polar"===e.coordinateSystem.type){var t=e.getData(),n=e.coordinateSystem,a=n.getAngleAxis(),l=n.getBaseAxis(),p=o(e),h=f[i(l)][p],g=h.offset,m=h.width,v=n.getOtherAxis(l),b=e.get("center")||["50%","50%"],x=c(b[0],r),y=c(b[1],s),_=e.get("barMinHeight")||0,w=e.get("barMinAngle")||0,k=v.getExtent()[0],S=v.model.get("max"),M=v.model.get("min"),C=[e.coordDimToDataDim("radius")[0],e.coordDimToDataDim("angle")[0]],A=t.mapArray(C,function(e,t){return n.dataToPoint([e,t])},!0);u[p]=u[p]||[],d[p]=d[p]||[],t.each(e.coordDimToDataDim(v.dim)[0],function(e,o){if(!isNaN(e)){u[p][o]||(u[p][o]={p:k,n:k},d[p][o]={p:k,n:k});var i,r,l,s,c=e>=0?"p":"n",f=n.pointToCoord(A[o]),h=d[p][o][c];if("radius"===v.dim)i=h,r=f[0],l=(-f[1]+g)*Math.PI/180,s=l+m*Math.PI/180,Math.abs(r)<_&&(r=i+(r<0?-1:1)*_),d[p][o][c]=r;else{i=f[0]+g,r=i+m,null!=S&&(e=Math.min(e,S)),null!=M&&(e=Math.max(e,M));var b=a.dataToAngle(e);Math.abs(b-h)0?T=C[1]:T===C[1]&&e<0&&(T=C[0]),d[p][o][c]=T}t.setItemLayout(o,{cx:x,cy:y,r0:i,r:r,startAngle:l,endAngle:s})}},!0)}},this)}function a(e,t){var n={};l.each(e,function(e,t){var r=e.getData(),a=e.coordinateSystem,l=a.getBaseAxis(),s=l.getExtent(),u="category"===l.type?l.getBandWidth():Math.abs(s[1]-s[0])/r.count(),d=n[i(l)]||{bandWidth:u,remainedWidth:u,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},f=d.stacks;n[i(l)]=d;var p=o(e);f[p]||d.autoWidthCount++,f[p]=f[p]||{width:0,maxWidth:0};var h=c(e.get("barWidth"),u),g=c(e.get("barMaxWidth"),u),m=e.get("barGap"),v=e.get("barCategoryGap");h&&!f[p].width&&(h=Math.min(d.remainedWidth,h),f[p].width=h,d.remainedWidth-=h),g&&(f[p].maxWidth=g),null!=m&&(d.gap=m),null!=v&&(d.categoryGap=v)});var r={};return l.each(n,function(e,t){r[t]={};var n=e.stacks,o=e.bandWidth,i=c(e.categoryGap,o),a=c(e.gap,1),s=e.remainedWidth,u=e.autoWidthCount,d=(s-i)/(u+(u-1)*a);d=Math.max(d,0),l.each(n,function(e,t){var n=e.maxWidth;n&&n=0;o--)d.isIdInner(t[o])&&t.splice(o,1);e[n]=t}}),delete e[w],e},getTheme:function(){return this._theme},getComponent:function(e,t){var n=this._componentsMap.get(e);if(n)return n[t||0]},queryComponents:function(e){var t=e.mainType;if(!t)return[];var n=e.index,o=e.id,i=e.name,r=this._componentsMap.get(t);if(!r||!r.length)return[];var a;if(null!=n)x(n)||(n=[n]),a=v(b(n,function(e){return r[e]}),function(e){return!!e});else if(null!=o){var l=x(o);a=v(r,function(e){return l&&y(o,e.id)>=0||!l&&e.id===o})}else if(null!=i){var c=x(i);a=v(r,function(e){return c&&y(i,e.name)>=0||!c&&e.name===i})}else a=r.slice();return s(a,e)},findComponents:function(e){var t=e.query,n=e.mainType,o=function(e){var t=n+"Index",o=n+"Id",i=n+"Name";return!e||null==e[t]&&null==e[o]&&null==e[i]?null:{mainType:n,index:e[t],id:e[o],name:e[i]}}(t),i=o?this.queryComponents(o):this._componentsMap.get(n);return function(t){return e.filter?v(t,e.filter):t}(s(i,e))},eachComponent:function(e,t,n){var o=this._componentsMap;if("function"==typeof e)n=t,t=e,o.each(function(e,o){m(e,function(e,i){t.call(n,o,e,i)})});else if(u.isString(e))m(o.get(e),t,n);else if(_(e)){var i=this.findComponents(e);m(i,t,n)}},getSeriesByName:function(e){var t=this._componentsMap.get("series");return v(t,function(t){return t.name===e})},getSeriesByIndex:function(e){return this._componentsMap.get("series")[e]},getSeriesByType:function(e){var t=this._componentsMap.get("series");return v(t,function(t){return t.subType===e})},getSeries:function(){return this._componentsMap.get("series").slice()},eachSeries:function(e,t){m(this._seriesIndices,function(n){var o=this._componentsMap.get("series")[n];e.call(t,o,n)},this)},eachRawSeries:function(e,t){m(this._componentsMap.get("series"),e,t)},eachSeriesByType:function(e,t,n){m(this._seriesIndices,function(o){var i=this._componentsMap.get("series")[o];i.subType===e&&t.call(n,i,o)},this)},eachRawSeriesByType:function(e,t,n){return m(this.getSeriesByType(e),t,n)},isSeriesFiltered:function(e){return u.indexOf(this._seriesIndices,e.componentIndex)<0},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(e,t){var n=v(this._componentsMap.get("series"),e,t);this._seriesIndices=l(n)},restoreData:function(){var e=this._componentsMap;this._seriesIndices=l(e.get("series"));var t=[];e.each(function(e,n){t.push(n)}),p.topologicalTravel(t,p.getAllClassMainTypes(),function(t,n){m(e.get(t),function(e){e.restoreData()})})}});u.mixin(k,g);var S=k;e.exports=S},function(e,t,n){function o(e){this._api=e,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function i(e,t,n){var o,i,r=[],a=[],l=e.timeline;if(e.baseOption&&(i=e.baseOption),(l||e.options)&&(i=i||{},r=(e.options||[]).slice()),e.media){i=i||{};var s=e.media;f(s,function(e){e&&e.option&&(e.query?a.push(e):o||(o=e))})}return i||(i=e),i.timeline||(i.timeline=l),f([i].concat(r).concat(c.map(a,function(e){return e.option})),function(e){f(t,function(t){t(e,n)})}),{baseOption:i,timelineOptions:r,mediaDefault:o,mediaList:a}}function r(e,t,n){var o={width:t,height:n,aspectratio:t/n},i=!0;return c.each(e,function(e,t){var n=t.match(m);if(n&&n[1]&&n[2]){var r=n[1],l=n[2].toLowerCase();a(o[l],e,r)||(i=!1)}}),i}function a(e,t,n){return"min"===n?e>=t:"max"===n?e<=t:e===t}function l(e,t){return e.join(",")===t.join(",")}function s(e,t){t=t||{},f(t,function(t,n){if(null!=t){var o=e[n];if(d.hasClass(n)){t=u.normalizeToArray(t),o=u.normalizeToArray(o);var i=u.mappingToExists(o,t);e[n]=h(i,function(e){return e.option&&e.exist?g(e.exist,e.option,!0):e.exist||e.option})}else e[n]=g(o,t,!0)}})}var c=n(0),u=n(5),d=n(14),f=c.each,p=c.clone,h=c.map,g=c.merge,m=/^(min|max)?(.+)$/;o.prototype={constructor:o,setOption:function(e,t){e=p(e,!0);var n=this._optionBackup,o=i.call(this,e,t,!n);this._newBaseOption=o.baseOption,n?(s(n.baseOption,o.baseOption),o.timelineOptions.length&&(n.timelineOptions=o.timelineOptions),o.mediaList.length&&(n.mediaList=o.mediaList),o.mediaDefault&&(n.mediaDefault=o.mediaDefault)):this._optionBackup=o},mountOption:function(e){var t=this._optionBackup;return this._timelineOptions=h(t.timelineOptions,p),this._mediaList=h(t.mediaList,p),this._mediaDefault=p(t.mediaDefault),this._currentMediaIndices=[],p(e?t.baseOption:this._newBaseOption)},getTimelineOption:function(e){var t,n=this._timelineOptions;if(n.length){var o=e.getComponent("timeline");o&&(t=p(n[o.getCurrentIndex()],!0))}return t},getMediaOption:function(e){var t=this._api.getWidth(),n=this._api.getHeight(),o=this._mediaList,i=this._mediaDefault,a=[],s=[];if(!o.length&&!i)return s;for(var c=0,u=o.length;c1){var d;"string"==typeof n?d=o[n]:"function"==typeof n&&(d=n),d&&(t=t.downSample(l.dim,1/u,d,i),e.setData(t))}}},this)}var o={average:function(e){for(var t=0,n=0,o=0;ot&&(t=e[n]);return t},min:function(e){for(var t=1/0,n=0;n0}))},niceTicks:function(e){e=e||10;var t=this._extent,n=t[1]-t[0];if(!(n===1/0||n<=0)){var o=a.quantity(n),i=e/n*o;for(i<=.5&&(o*=10);!isNaN(o)&&Math.abs(o)<1&&Math.abs(o)>0;)o*=10;var r=[a.round(p(t[0]/o)*o),a.round(f(t[1]/o)*o)];this._interval=o,this._niceExtent=r}},niceExtent:function(e){c.niceExtent.call(this,e);var t=this._originalScale;t.__fixMin=e.fixMin,t.__fixMax=e.fixMax}});i.each(["contain","normalize"],function(e){m.prototype[e]=function(t){return t=g(t)/g(this.base),s[e].call(this,t)}}),m.create=function(){return new m};var v=m;e.exports=v},function(e,t,n){var o=n(0),i=n(91),r=i.prototype,a=i.extend({type:"ordinal",init:function(e,t){this._data=e,this._extent=t||[0,e.length-1]},parse:function(e){return"string"==typeof e?o.indexOf(this._data,e):Math.round(e)},contain:function(e){return e=this.parse(e),r.contain.call(this,e)&&null!=this._data[e]},normalize:function(e){return r.normalize.call(this,this.parse(e))},scale:function(e){return Math.round(r.scale.call(this,e))},getTicks:function(){for(var e=[],t=this._extent,n=t[0];n<=t[1];)e.push(n),n++;return e},getLabel:function(e){return this._data[e]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(e,t){this.unionExtent(e.getDataExtent(t,!1))},niceTicks:o.noop,niceExtent:o.noop});a.create=function(){return new a};var l=a;e.exports=l},function(e,t,n){var o=n(0),i=n(3),r=n(8),a=n(216),l=n(90),s=l.prototype,c=Math.ceil,u=Math.floor,d=function(e,t,n,o){for(;n>>1;e[i][1]n&&(l=n);var s=p.length,f=d(p,l,0,s),h=p[Math.min(f,s-1)],g=h[1];if("year"===h[0]){var m=r/g;g*=i.nice(m/e,!0)}var v=this.getSetting("useUTC")?0:60*new Date(+o[0]||+o[1]).getTimezoneOffset()*1e3,b=[Math.round(c((o[0]-v)/g)*g+v),Math.round(u((o[1]-v)/g)*g+v)];a.fixExtent(b,o),this._stepLvl=h,this._interval=g,this._niceExtent=b},parse:function(e){return+i.parseDate(e)}});o.each(["contain","normalize"],function(e){f.prototype[e]=function(t){return s[e].call(this,this.parse(t))}});var p=[["hh:mm:ss",1e3],["hh:mm:ss",5e3],["hh:mm:ss",1e4],["hh:mm:ss",15e3],["hh:mm:ss",3e4],["hh:mm\nMM-dd",6e4],["hh:mm\nMM-dd",3e5],["hh:mm\nMM-dd",6e5],["hh:mm\nMM-dd",9e5],["hh:mm\nMM-dd",18e5],["hh:mm\nMM-dd",36e5],["hh:mm\nMM-dd",72e5],["hh:mm\nMM-dd",216e5],["hh:mm\nMM-dd",432e5],["MM-dd\nyyyy",864e5],["MM-dd\nyyyy",1728e5],["MM-dd\nyyyy",2592e5],["MM-dd\nyyyy",3456e5],["MM-dd\nyyyy",432e6],["MM-dd\nyyyy",5184e5],["week",6048e5],["MM-dd\nyyyy",864e6],["week",12096e5],["week",18144e5],["month",26784e5],["week",36288e5],["month",53568e5],["week",36288e5],["quarter",8208e6],["month",107136e5],["month",13392e6],["half-year",16416e6],["month",214272e5],["month",26784e6],["year",32832e6]];f.create=function(e){return new f({useUTC:e.ecModel.get("useUTC")})};var h=f;e.exports=h},function(e,t,n){function o(){var e,t=[],n={};return{add:function(e,o,r,a,l){return i.isString(a)&&(l=a,a=0),!n[e.id]&&(n[e.id]=1,t.push({el:e,target:o,time:r,delay:a,easing:l}),!0)},done:function(t){return e=t,this},start:function(){function o(){--i||(t.length=0,n={},e&&e())}for(var i=t.length,r=0,a=t.length;r1?t-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!(n&&n.context&&o.target&&i.target)||e.contains(o.target)||e.contains(i.target)||e===o.target||n.context.popperElm&&(n.context.popperElm.contains(o.target)||n.context.popperElm.contains(i.target))||(t.expression&&e[s].methodName&&n.context[e[s].methodName]?n.context[e[s].methodName]():e[s].bindingFn&&e[s].bindingFn())}}t.__esModule=!0;var i=n(21),r=function(e){return e&&e.__esModule?e:{default:e}}(i),a=n(29),l=[],s="@@clickoutsideContext",c=void 0,u=0;!r.default.prototype.$isServer&&(0,a.on)(document,"mousedown",function(e){return c=e}),!r.default.prototype.$isServer&&(0,a.on)(document,"mouseup",function(e){l.forEach(function(t){return t[s].documentHandler(e,c)})}),t.default={bind:function(e,t,n){l.push(e);var i=u++;e[s]={id:i,documentHandler:o(e,t,n),methodName:t.expression,bindingFn:t.value}},update:function(e,t,n){e[s].documentHandler=o(e,t,n),e[s].methodName=t.expression,e[s].bindingFn=t.value},unbind:function(e){for(var t=l.length,n=0;n1&&console.warn("WARNING: the given `parent` query("+e.parent+") matched more than one element, the first one will be used"),0===l.length)throw"ERROR: the given `parent` doesn't exists!";l=l[0]}return l.length>1&&l instanceof Element==0&&(console.warn("WARNING: you have passed as parent a list of elements, the first one will be used"),l=l[0]),l.appendChild(r),r},e.prototype._getPosition=function(e,t){var n=a(t);return this._options.forceAbsolute?"absolute":s(t,n)?"fixed":"absolute"},e.prototype._getOffsets=function(e,n,o){o=o.split("-")[0];var i={};i.position=this.state.position;var r="fixed"===i.position,l=p(n,a(e),r),s=t(e);return-1!==["right","left"].indexOf(o)?(i.top=l.top+l.height/2-s.height/2,i.left="left"===o?l.left-s.width:l.right):(i.left=l.left+l.width/2-s.width/2,i.top="top"===o?l.top-s.height:l.bottom),i.width=s.width,i.height=s.height,{popper:i,reference:l}},e.prototype._setupEventListeners=function(){if(this.state.updateBound=this.update.bind(this),g.addEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement){var e=l(this._reference);e!==g.document.body&&e!==g.document.documentElement||(e=g),e.addEventListener("scroll",this.state.updateBound),this.state.scrollTarget=e}},e.prototype._removeEventListeners=function(){g.removeEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement&&this.state.scrollTarget&&(this.state.scrollTarget.removeEventListener("scroll",this.state.updateBound),this.state.scrollTarget=null),this.state.updateBound=null},e.prototype._getBoundaries=function(e,t,n){var o,i,r={};if("window"===n){var s=g.document.body,c=g.document.documentElement;i=Math.max(s.scrollHeight,s.offsetHeight,c.clientHeight,c.scrollHeight,c.offsetHeight),o=Math.max(s.scrollWidth,s.offsetWidth,c.clientWidth,c.scrollWidth,c.offsetWidth),r={top:0,right:o,bottom:i,left:0}}else if("viewport"===n){var u=a(this._popper),f=l(this._popper),p=d(u),h="fixed"===e.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollTop,document.body.scrollTop):e.scrollTop}(f),m="fixed"===e.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollLeft,document.body.scrollLeft):e.scrollLeft}(f);r={top:0-(p.top-h),right:g.document.documentElement.clientWidth-(p.left-m),bottom:g.document.documentElement.clientHeight-(p.top-h),left:0-(p.left-m)}}else r=a(this._popper)===n?{top:0,left:0,right:n.clientWidth,bottom:n.clientHeight}:d(n);return r.left+=t,r.right-=t,r.top=r.top+t,r.bottom=r.bottom-t,r},e.prototype.runModifiers=function(e,t,n){var o=t.slice();return void 0!==n&&(o=this._options.modifiers.slice(0,i(this._options.modifiers,n))),o.forEach(function(t){u(t)&&(e=t.call(this,e))}.bind(this)),e},e.prototype.isModifierRequired=function(e,t){var n=i(this._options.modifiers,e);return!!this._options.modifiers.slice(0,n).filter(function(e){return e===t}).length},e.prototype.modifiers={},e.prototype.modifiers.applyStyle=function(e){var t,n={position:e.offsets.popper.position},o=Math.round(e.offsets.popper.left),i=Math.round(e.offsets.popper.top);return this._options.gpuAcceleration&&(t=h("transform"))?(n[t]="translate3d("+o+"px, "+i+"px, 0)",n.top=0,n.left=0):(n.left=o,n.top=i),Object.assign(n,e.styles),c(this._popper,n),this._popper.setAttribute("x-placement",e.placement),this.isModifierRequired(this.modifiers.applyStyle,this.modifiers.arrow)&&e.offsets.arrow&&c(e.arrowElement,e.offsets.arrow),e},e.prototype.modifiers.shift=function(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var r=e.offsets.reference,a=o(e.offsets.popper),l={y:{start:{top:r.top},end:{top:r.top+r.height-a.height}},x:{start:{left:r.left},end:{left:r.left+r.width-a.width}}},s=-1!==["bottom","top"].indexOf(n)?"x":"y";e.offsets.popper=Object.assign(a,l[s][i])}return e},e.prototype.modifiers.preventOverflow=function(e){var t=this._options.preventOverflowOrder,n=o(e.offsets.popper),i={left:function(){var t=n.left;return n.lefte.boundaries.right&&(t=Math.min(n.left,e.boundaries.right-n.width)),{left:t}},top:function(){var t=n.top;return n.tope.boundaries.bottom&&(t=Math.min(n.top,e.boundaries.bottom-n.height)),{top:t}}};return t.forEach(function(t){e.offsets.popper=Object.assign(n,i[t]())}),e},e.prototype.modifiers.keepTogether=function(e){var t=o(e.offsets.popper),n=e.offsets.reference,i=Math.floor;return t.righti(n.right)&&(e.offsets.popper.left=i(n.right)),t.bottomi(n.bottom)&&(e.offsets.popper.top=i(n.bottom)),e},e.prototype.modifiers.flip=function(e){if(!this.isModifierRequired(this.modifiers.flip,this.modifiers.preventOverflow))return console.warn("WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!"),e;if(e.flipped&&e.placement===e._originalPlacement)return e;var t=e.placement.split("-")[0],i=n(t),r=e.placement.split("-")[1]||"",a=[];return a="flip"===this._options.flipBehavior?[t,i]:this._options.flipBehavior,a.forEach(function(l,s){if(t===l&&a.length!==s+1){t=e.placement.split("-")[0],i=n(t);var c=o(e.offsets.popper),u=-1!==["right","bottom"].indexOf(t);(u&&Math.floor(e.offsets.reference[t])>Math.floor(c[i])||!u&&Math.floor(e.offsets.reference[t])l[p]&&(e.offsets.popper[d]+=s[d]+h-l[p]);var g=s[d]+(i||s[u]/2-h/2),m=g-l[d];return m=Math.max(Math.min(l[u]-h-8,m),8),r[d]=m,r[f]="",e.offsets.arrow=r,e.arrowElement=n,e},Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert first argument to object");for(var t=Object(e),n=1;n0){var o=t[t.length-1];if(o.id===e)o.modalClass&&o.modalClass.trim().split(/\s+/).forEach(function(e){return(0,r.removeClass)(n,e)}),t.pop(),t.length>0&&(n.style.zIndex=t[t.length-1].zIndex);else for(var i=t.length-1;i>=0;i--)if(t[i].id===e){t.splice(i,1);break}}0===t.length&&(this.modalFade&&(0,r.addClass)(n,"v-modal-leave"),setTimeout(function(){0===t.length&&(n.parentNode&&n.parentNode.removeChild(n),n.style.display="none",d.modalDom=void 0),(0,r.removeClass)(n,"v-modal-leave")},200))}};Object.defineProperty(d,"zIndex",{configurable:!0,get:function(){return l||(s=s||(i.default.prototype.$ELEMENT||{}).zIndex||2e3,l=!0),s},set:function(e){s=e}});var f=function(){if(!i.default.prototype.$isServer&&d.modalStack.length>0){var e=d.modalStack[d.modalStack.length-1];if(!e)return;return d.getInstance(e.id)}};i.default.prototype.$isServer||window.addEventListener("keydown",function(e){if(27===e.keyCode){var t=f();t&&t.closeOnPressEscape&&(t.handleClose?t.handleClose():t.handleAction?t.handleAction("cancel"):t.close())}}),t.default=d},function(e,t,n){"use strict";function o(e){return"[object String]"===Object.prototype.toString.call(e)}function i(e){return"[object Object]"===Object.prototype.toString.call(e)}function r(e){return e&&e.nodeType===Node.ELEMENT_NODE}t.__esModule=!0,t.isString=o,t.isObject=i,t.isHtmlElement=r,t.isFunction=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)},t.isUndefined=function(e){return void 0===e},t.isDefined=function(e){return void 0!==e&&null!==e}},function(e,t){t.read=function(e,t,n,o,i){var r,a,l=8*i-o-1,s=(1<>1,u=-7,d=n?i-1:0,f=n?-1:1,p=e[t+d];for(d+=f,r=p&(1<<-u)-1,p>>=-u,u+=l;u>0;r=256*r+e[t+d],d+=f,u-=8);for(a=r&(1<<-u)-1,r>>=-u,u+=o;u>0;a=256*a+e[t+d],d+=f,u-=8);if(0===r)r=1-c;else{if(r===s)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,o),r-=c}return(p?-1:1)*a*Math.pow(2,r-o)},t.write=function(e,t,n,o,i,r){var a,l,s,c=8*r-i-1,u=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=o?0:r-1,h=o?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-a))<1&&(a--,s*=2),t+=a+d>=1?f/s:f*Math.pow(2,1-d),t*s>=2&&(a++,s/=2),a+d>=u?(l=0,a=u):a+d>=1?(l=(t*s-1)*Math.pow(2,i),a+=d):(l=t*Math.pow(2,d-1)*Math.pow(2,i),a=0));i>=8;e[n+p]=255&l,p+=h,l/=256,i-=8);for(a=a<0;e[n+p]=255&a,p+=h,a/=256,c-=8);e[n+p-h]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){e.exports=n(624)},function(e,t,n){"use strict";var o=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:o,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:o&&!!window.screen,isInWorker:!o};e.exports=i},function(e,t){function n(){if(!b){b=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(h=/\b(iPhone|iP[ao]d)/.exec(e),g=/\b(iP[ao]d)/.exec(e),f=/Android/i.exec(e),m=/FBAN\/\w+;/i.exec(e),v=/Mobile/i.exec(e),p=!!/Win64/.exec(e),t){(o=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(o=document.documentMode);var x=/(?:Trident\/(\d+.\d+))/.exec(e);s=x?parseFloat(x[1])+4:o,i=t[2]?parseFloat(t[2]):NaN,r=t[3]?parseFloat(t[3]):NaN,a=t[4]?parseFloat(t[4]):NaN,a?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),l=t&&t[1]?parseFloat(t[1]):NaN):l=NaN}else o=i=r=l=a=NaN;if(n){if(n[1]){var y=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);c=!y||parseFloat(y[1].replace("_","."))}else c=!1;u=!!n[2],d=!!n[3]}else c=u=d=!1}}var o,i,r,a,l,s,c,u,d,f,p,h,g,m,v,b=!1,x={ie:function(){return n()||o},ieCompatibilityMode:function(){return n()||s>o},ie64:function(){return x.ie()&&p},firefox:function(){return n()||i},opera:function(){return n()||r},webkit:function(){return n()||a},safari:function(){return x.webkit()},chrome:function(){return n()||l},windows:function(){return n()||u},osx:function(){return n()||c},linux:function(){return n()||d},iphone:function(){return n()||h},mobile:function(){return n()||h||g||f||v},nativeApp:function(){return n()||m},android:function(){return n()||f},ipad:function(){return n()||g}};e.exports=x},function(e,t,n){"use strict";function o(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var a=document.createElement("div");a.setAttribute(n,"return;"),o="function"==typeof a[n]}return!o&&i&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}var i,r=n(621);r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=o},function(e,t,n){"use strict";function o(e){var t=0,n=0,o=0,i=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=t*a,i=n*a,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||i)&&e.deltaMode&&(1==e.deltaMode?(o*=l,i*=l):(o*=s,i*=s)),o&&!t&&(t=o<1?-1:1),i&&!n&&(n=i<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:i}}var i=n(622),r=n(623),a=10,l=40,s=800;o.getEventType=function(){return i.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=o},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(u===setTimeout)return setTimeout(e,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(e,0);try{return u(e,0)}catch(t){try{return u.call(null,e,0)}catch(t){return u.call(this,e,0)}}}function r(e){if(d===clearTimeout)return clearTimeout(e);if((d===o||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{return d(e)}catch(t){try{return d.call(null,e)}catch(t){return d.call(this,e)}}}function a(){g&&p&&(g=!1,p.length?h=p.concat(h):m=-1,h.length&&l())}function l(){if(!g){var e=i(a);g=!0;for(var t=h.length;t;){for(p=h,h=[];++m1)for(var n=1;n0},e.prototype.connect_=function(){p&&!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(){p&&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(e){var t=e.propertyName,n=void 0===t?"":t;b.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),_=function(e,t){for(var n=0,o=Object.keys(t);n0},e}(),T="undefined"!=typeof WeakMap?new WeakMap:new f,E=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=y.getInstance(),o=new A(t,n,this);T.set(this,o)}return e}();["observe","unobserve","disconnect"].forEach(function(e){E.prototype[e]=function(){var t;return(t=T.get(this))[e].apply(t,arguments)}});var I=function(){return void 0!==h.ResizeObserver?h.ResizeObserver:E}();t.default=I}.call(t,n(48))},function(e,t,n){(function(e,t){!function(e,n){"use strict";function o(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(627),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(t,n(48))},function(e,t,n){"use strict";var o=n(642),i=n(228),r=(n(640),n(30)),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){"use strict";var o=n(643),i=n(229),r=n(30),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){"use strict";var o=n(644),i=n(230),r=n(30),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){"use strict";var o=n(645),i=n(231),r=n(30),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){"use strict";var o=n(646),i=n(232),r=n(30),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){"use strict";var o=n(647),i=n(233),r=n(30),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){"use strict";var o=n(648),i=n(234),r=n(30),a=n.i(r.a)(i.a,o.a,o.b,!1,null,null,null);t.a=a.exports},function(e,t,n){"use strict";var o=n(628);n.n(o)},function(e,t,n){"use strict";var o=n(629);n.n(o)},function(e,t,n){"use strict";var o=n(650);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(651);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(652);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(653);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(654);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(655);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(656);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(657);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";var o=n(658);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b})},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("header",{staticClass:"grid-content header-color"},[n("el-row",[n("a",{staticClass:"brand",attrs:{href:"#"}},[e._v("frp")])])],1),e._v(" "),n("section",[n("el-row",[n("el-col",{attrs:{id:"side-nav",xs:24,md:4}},[n("el-menu",{attrs:{"default-active":"1",mode:"vertical",theme:"light",router:"false"},on:{select:e.handleSelect}},[n("el-menu-item",{attrs:{index:"/"}},[e._v("Overview")]),e._v(" "),n("el-submenu",{attrs:{index:"/proxies"}},[n("template",{slot:"title"},[e._v("Proxies")]),e._v(" "),n("el-menu-item",{attrs:{index:"/proxies/tcp"}},[e._v("TCP")]),e._v(" "),n("el-menu-item",{attrs:{index:"/proxies/udp"}},[e._v("UDP")]),e._v(" "),n("el-menu-item",{attrs:{index:"/proxies/http"}},[e._v("HTTP")]),e._v(" "),n("el-menu-item",{attrs:{index:"/proxies/https"}},[e._v("HTTPS")]),e._v(" "),n("el-menu-item",{attrs:{index:"/proxies/stcp"}},[e._v("STCP")]),e._v(" "),n("el-menu-item",{attrs:{index:"/proxies/sudp"}},[e._v("SUDP")])],2),e._v(" "),n("el-menu-item",{attrs:{index:""}},[e._v("Help")])],1)],1),e._v(" "),n("el-col",{attrs:{xs:24,md:20}},[n("div",{attrs:{id:"content"}},[n("router-view")],1)])],1)],1),e._v(" "),n("footer")])},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-row",[n("el-col",{attrs:{md:12}},[n("div",{staticClass:"source"},[n("el-form",{staticClass:"server_info",attrs:{"label-position":"left"}},[n("el-form-item",{attrs:{label:"Version"}},[n("span",[e._v(e._s(e.version))])]),e._v(" "),n("el-form-item",{attrs:{label:"BindPort"}},[n("span",[e._v(e._s(e.bind_port))])]),e._v(" "),n("el-form-item",{attrs:{label:"BindUdpPort"}},[n("span",[e._v(e._s(e.bind_udp_port))])]),e._v(" "),n("el-form-item",{attrs:{label:"Http Port"}},[n("span",[e._v(e._s(e.vhost_http_port))])]),e._v(" "),n("el-form-item",{attrs:{label:"Https Port"}},[n("span",[e._v(e._s(e.vhost_https_port))])]),e._v(" "),n("el-form-item",{attrs:{label:"Subdomain Host"}},[n("span",[e._v(e._s(e.subdomain_host))])]),e._v(" "),n("el-form-item",{attrs:{label:"Max PoolCount"}},[n("span",[e._v(e._s(e.max_pool_count))])]),e._v(" "),n("el-form-item",{attrs:{label:"Max Ports Per Client"}},[n("span",[e._v(e._s(e.max_ports_per_client))])]),e._v(" "),n("el-form-item",{attrs:{label:"HeartBeat Timeout"}},[n("span",[e._v(e._s(e.heart_beat_timeout))])]),e._v(" "),n("el-form-item",{attrs:{label:"Client Counts"}},[n("span",[e._v(e._s(e.client_counts))])]),e._v(" "),n("el-form-item",{attrs:{label:"Current Connections"}},[n("span",[e._v(e._s(e.cur_conns))])]),e._v(" "),n("el-form-item",{attrs:{label:"Proxy Counts"}},[n("span",[e._v(e._s(e.proxy_counts))])])],1)],1)]),e._v(" "),n("el-col",{attrs:{md:12}},[n("div",{staticStyle:{width:"400px",height:"250px","margin-bottom":"30px"},attrs:{id:"traffic"}}),e._v(" "),n("div",{staticStyle:{width:"400px",height:"250px"},attrs:{id:"proxies"}})])],1)],1)},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.proxies,"default-sort":{prop:"name",order:"ascending"}}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{ref:"popover4",staticStyle:{"margin-left":"0px"},attrs:{placement:"right",width:"600",trigger:"click"}},[n("my-traffic-chart",{attrs:{proxy_name:t.row.name}})],1),e._v(" "),n("el-button",{directives:[{name:"popover",rawName:"v-popover:popover4",arg:"popover4"}],staticStyle:{"margin-bottom":"10px"},attrs:{type:"primary",size:"small",icon:"view"}},[e._v("Traffic Statistics")]),e._v(" "),n("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{attrs:{label:"Name"}},[n("span",[e._v(e._s(t.row.name))])]),e._v(" "),n("el-form-item",{attrs:{label:"Type"}},[n("span",[e._v(e._s(t.row.type))])]),e._v(" "),n("el-form-item",{attrs:{label:"Domains"}},[n("span",[e._v(e._s(t.row.custom_domains))])]),e._v(" "),n("el-form-item",{attrs:{label:"SubDomain"}},[n("span",[e._v(e._s(t.row.subdomain))])]),e._v(" "),n("el-form-item",{attrs:{label:"locations"}},[n("span",[e._v(e._s(t.row.locations))])]),e._v(" "),n("el-form-item",{attrs:{label:"HostRewrite"}},[n("span",[e._v(e._s(t.row.host_header_rewrite))])]),e._v(" "),n("el-form-item",{attrs:{label:"Encryption"}},[n("span",[e._v(e._s(t.row.encryption))])]),e._v(" "),n("el-form-item",{attrs:{label:"Compression"}},[n("span",[e._v(e._s(t.row.compression))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Start"}},[n("span",[e._v(e._s(t.row.last_start_time))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Close"}},[n("span",[e._v(e._s(t.row.last_close_time))])])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Name",prop:"name",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Port",prop:"port",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Connections",prop:"conns",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic In",prop:"traffic_in",formatter:e.formatTrafficIn,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic Out",prop:"traffic_out",formatter:e.formatTrafficOut,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"status",prop:"status",sortable:""},scopedSlots:e._u([{key:"default",fn:function(t){return["online"===t.row.status?n("el-tag",{attrs:{type:"success"}},[e._v(e._s(t.row.status))]):n("el-tag",{attrs:{type:"danger"}},[e._v(e._s(t.row.status))])]}}])})],1)],1)},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.proxies,"default-sort":{prop:"name",order:"ascending"}}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{ref:"popover4",staticStyle:{"margin-left":"0px"},attrs:{placement:"right",width:"600",trigger:"click"}},[n("my-traffic-chart",{attrs:{proxy_name:t.row.name}})],1),e._v(" "),n("el-button",{directives:[{name:"popover",rawName:"v-popover:popover4",arg:"popover4"}],staticStyle:{"margin-bottom":"10px"},attrs:{type:"primary",size:"small",icon:"view"}},[e._v("Traffic Statistics")]),e._v(" "),n("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{attrs:{label:"Name"}},[n("span",[e._v(e._s(t.row.name))])]),e._v(" "),n("el-form-item",{attrs:{label:"Type"}},[n("span",[e._v(e._s(t.row.type))])]),e._v(" "),n("el-form-item",{attrs:{label:"Domains"}},[n("span",[e._v(e._s(t.row.custom_domains))])]),e._v(" "),n("el-form-item",{attrs:{label:"SubDomain"}},[n("span",[e._v(e._s(t.row.subdomain))])]),e._v(" "),n("el-form-item",{attrs:{label:"Encryption"}},[n("span",[e._v(e._s(t.row.encryption))])]),e._v(" "),n("el-form-item",{attrs:{label:"Compression"}},[n("span",[e._v(e._s(t.row.compression))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Start"}},[n("span",[e._v(e._s(t.row.last_start_time))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Close"}},[n("span",[e._v(e._s(t.row.last_close_time))])])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Name",prop:"name",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Port",prop:"port",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Connections",prop:"conns",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic In",prop:"traffic_in",formatter:e.formatTrafficIn,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic Out",prop:"traffic_out",formatter:e.formatTrafficOut,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"status",prop:"status",sortable:""},scopedSlots:e._u([{key:"default",fn:function(t){return["online"===t.row.status?n("el-tag",{attrs:{type:"success"}},[e._v(e._s(t.row.status))]):n("el-tag",{attrs:{type:"danger"}},[e._v(e._s(t.row.status))])]}}])})],1)],1)},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.proxies,"default-sort":{prop:"name",order:"ascending"}}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{ref:"popover4",staticStyle:{"margin-left":"0px"},attrs:{placement:"right",width:"600",trigger:"click"}},[n("my-traffic-chart",{attrs:{proxy_name:t.row.name}})],1),e._v(" "),n("el-button",{directives:[{name:"popover",rawName:"v-popover:popover4",arg:"popover4"}],staticStyle:{"margin-bottom":"10px"},attrs:{type:"primary",size:"small",icon:"view",name:t.row.name},on:{click:e.fetchData2}},[e._v("Traffic Statistics")]),e._v(" "),n("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{attrs:{label:"Name"}},[n("span",[e._v(e._s(t.row.name))])]),e._v(" "),n("el-form-item",{attrs:{label:"Type"}},[n("span",[e._v(e._s(t.row.type))])]),e._v(" "),n("el-form-item",{attrs:{label:"Encryption"}},[n("span",[e._v(e._s(t.row.encryption))])]),e._v(" "),n("el-form-item",{attrs:{label:"Compression"}},[n("span",[e._v(e._s(t.row.compression))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Start"}},[n("span",[e._v(e._s(t.row.last_start_time))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Close"}},[n("span",[e._v(e._s(t.row.last_close_time))])])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Name",prop:"name",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Connections",prop:"conns",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic In",prop:"traffic_in",formatter:e.formatTrafficIn,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic Out",prop:"traffic_out",formatter:e.formatTrafficOut,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"status",prop:"status",sortable:""},scopedSlots:e._u([{key:"default",fn:function(t){return["online"===t.row.status?n("el-tag",{attrs:{type:"success"}},[e._v(e._s(t.row.status))]):n("el-tag",{attrs:{type:"danger"}},[e._v(e._s(t.row.status))])]}}])})],1)],1)},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.proxies,"default-sort":{prop:"name",order:"ascending"}}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{ref:"popover4",staticStyle:{"margin-left":"0px"},attrs:{placement:"right",width:"600",trigger:"click"}},[n("my-traffic-chart",{attrs:{proxy_name:t.row.name}})],1),e._v(" "),n("el-button",{directives:[{name:"popover",rawName:"v-popover:popover4",arg:"popover4"}],staticStyle:{"margin-bottom":"10px"},attrs:{type:"primary",size:"small",icon:"view",name:t.row.name},on:{click:e.fetchData2}},[e._v("Traffic Statistics")]),e._v(" "),n("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{attrs:{label:"Name"}},[n("span",[e._v(e._s(t.row.name))])]),e._v(" "),n("el-form-item",{attrs:{label:"Type"}},[n("span",[e._v(e._s(t.row.type))])]),e._v(" "),n("el-form-item",{attrs:{label:"Encryption"}},[n("span",[e._v(e._s(t.row.encryption))])]),e._v(" "),n("el-form-item",{attrs:{label:"Compression"}},[n("span",[e._v(e._s(t.row.compression))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Start"}},[n("span",[e._v(e._s(t.row.last_start_time))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Close"}},[n("span",[e._v(e._s(t.row.last_close_time))])])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Name",prop:"name",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Connections",prop:"conns",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic In",prop:"traffic_in",formatter:e.formatTrafficIn,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic Out",prop:"traffic_out",formatter:e.formatTrafficOut,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"status",prop:"status",sortable:""},scopedSlots:e._u([{key:"default",fn:function(t){return["online"===t.row.status?n("el-tag",{attrs:{type:"success"}},[e._v(e._s(t.row.status))]):n("el-tag",{attrs:{type:"danger"}},[e._v(e._s(t.row.status))])]}}])})],1)],1)},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.proxies,"default-sort":{prop:"name",order:"ascending"}}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{ref:"popover4",staticStyle:{"margin-left":"0px"},attrs:{placement:"right",width:"600",trigger:"click"}},[n("my-traffic-chart",{attrs:{proxy_name:t.row.name}})],1),e._v(" "),n("el-button",{directives:[{name:"popover",rawName:"v-popover:popover4",arg:"popover4"}],staticStyle:{"margin-bottom":"10px"},attrs:{type:"primary",size:"small",icon:"view",name:t.row.name},on:{click:e.fetchData2}},[e._v("Traffic Statistics")]),e._v(" "),n("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{attrs:{label:"Name"}},[n("span",[e._v(e._s(t.row.name))])]),e._v(" "),n("el-form-item",{attrs:{label:"Type"}},[n("span",[e._v(e._s(t.row.type))])]),e._v(" "),n("el-form-item",{attrs:{label:"Addr"}},[n("span",[e._v(e._s(t.row.addr))])]),e._v(" "),n("el-form-item",{attrs:{label:"Encryption"}},[n("span",[e._v(e._s(t.row.encryption))])]),e._v(" "),n("el-form-item",{attrs:{label:"Compression"}},[n("span",[e._v(e._s(t.row.compression))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Start"}},[n("span",[e._v(e._s(t.row.last_start_time))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Close"}},[n("span",[e._v(e._s(t.row.last_close_time))])])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Name",prop:"name",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Port",prop:"port",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Connections",prop:"conns",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic In",prop:"traffic_in",formatter:e.formatTrafficIn,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic Out",prop:"traffic_out",formatter:e.formatTrafficOut,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"status",prop:"status",sortable:""},scopedSlots:e._u([{key:"default",fn:function(t){return["online"===t.row.status?n("el-tag",{attrs:{type:"success"}},[e._v(e._s(t.row.status))]):n("el-tag",{attrs:{type:"danger"}},[e._v(e._s(t.row.status))])]}}])})],1)],1)},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.proxies,"default-sort":{prop:"name",order:"ascending"}}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{ref:"popover4",staticStyle:{"margin-left":"0px"},attrs:{placement:"right",width:"600",trigger:"click"}},[n("my-traffic-chart",{attrs:{proxy_name:t.row.name}})],1),e._v(" "),n("el-button",{directives:[{name:"popover",rawName:"v-popover:popover4",arg:"popover4"}],staticStyle:{"margin-bottom":"10px"},attrs:{type:"primary",size:"small",icon:"view"}},[e._v("Traffic Statistics")]),e._v(" "),n("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{attrs:{label:"Name"}},[n("span",[e._v(e._s(t.row.name))])]),e._v(" "),n("el-form-item",{attrs:{label:"Type"}},[n("span",[e._v(e._s(t.row.type))])]),e._v(" "),n("el-form-item",{attrs:{label:"Addr"}},[n("span",[e._v(e._s(t.row.addr))])]),e._v(" "),n("el-form-item",{attrs:{label:"Encryption"}},[n("span",[e._v(e._s(t.row.encryption))])]),e._v(" "),n("el-form-item",{attrs:{label:"Compression"}},[n("span",[e._v(e._s(t.row.compression))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Start"}},[n("span",[e._v(e._s(t.row.last_start_time))])]),e._v(" "),n("el-form-item",{attrs:{label:"Last Close"}},[n("span",[e._v(e._s(t.row.last_close_time))])])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Name",prop:"name",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Port",prop:"port",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Connections",prop:"conns",sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic In",prop:"traffic_in",formatter:e.formatTrafficIn,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"Traffic Out",prop:"traffic_out",formatter:e.formatTrafficOut,sortable:""}}),e._v(" "),n("el-table-column",{attrs:{label:"status",prop:"status",sortable:""},scopedSlots:e._u([{key:"default",fn:function(t){return["online"===t.row.status?n("el-tag",{attrs:{type:"success"}},[e._v(e._s(t.row.status))]):n("el-tag",{attrs:{type:"danger"}},[e._v(e._s(t.row.status))])]}}])})],1)],1)},i=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i});var o=function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{staticStyle:{width:"600px",height:"400px"},attrs:{id:e.proxy_name}})},i=[]},function(e,t,n){"use strict";function o(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function i(e,t){switch(typeof t){case"undefined":return;case"object":return t;case"function":return t(e);case"boolean":return t?e.params:void 0}}function r(e,t){for(var n in t)e[n]=t[n];return e}function a(e,t,n){void 0===t&&(t={});var o,i=n||l;try{o=i(e||"")}catch(e){o={}}for(var r in t)o[r]=t[r];return o}function l(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var n=e.replace(/\+/g," ").split("="),o=Fe(n.shift()),i=n.length>0?Fe(n.join("=")):null;void 0===t[o]?t[o]=i:Array.isArray(t[o])?t[o].push(i):t[o]=[t[o],i]}),t):t}function s(e){var t=e?Object.keys(e).map(function(t){var n=e[t];if(void 0===n)return"";if(null===n)return Be(t);if(Array.isArray(n)){var o=[];return n.forEach(function(e){void 0!==e&&(null===e?o.push(Be(t)):o.push(Be(t)+"="+Be(e)))}),o.join("&")}return Be(t)+"="+Be(n)}).filter(function(e){return e.length>0}).join("&"):null;return t?"?"+t:""}function c(e,t,n,o){var i=o&&o.options.stringifyQuery,r=t.query||{};try{r=u(r)}catch(e){}var a={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:r,params:t.params||{},fullPath:f(t,i),matched:e?d(e):[]};return n&&(a.redirectedFrom=f(n,i)),Object.freeze(a)}function u(e){if(Array.isArray(e))return e.map(u);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=u(e[n]);return t}return e}function d(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function f(e,t){var n=e.path,o=e.query;void 0===o&&(o={});var i=e.hash;void 0===i&&(i="");var r=t||s;return(n||"/")+r(o)+i}function p(e,t){return t===je?e===t:!!t&&(e.path&&t.path?e.path.replace(Ve,"")===t.path.replace(Ve,"")&&e.hash===t.hash&&h(e.query,t.query):!(!e.name||!t.name)&&e.name===t.name&&e.hash===t.hash&&h(e.query,t.query)&&h(e.params,t.params))}function h(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e),o=Object.keys(t);return n.length===o.length&&n.every(function(n){var o=e[n],i=t[n];return"object"==typeof o&&"object"==typeof i?h(o,i):String(o)===String(i)})}function g(e,t){return 0===e.path.replace(Ve,"/").indexOf(t.path.replace(Ve,"/"))&&(!t.hash||e.hash===t.hash)&&m(e.query,t.query)}function m(e,t){for(var n in t)if(!(n in e))return!1;return!0}function v(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute&&/\b_blank\b/i.test(e.currentTarget.getAttribute("target")))return;return e.preventDefault&&e.preventDefault(),!0}}function b(e){if(e)for(var t,n=0;n=0&&(t=e.slice(o),e=e.slice(0,o));var i=e.indexOf("?");return i>=0&&(n=e.slice(i+1),e=e.slice(0,i)),{path:e,query:n,hash:t}}function w(e){return e.replace(/\/\//g,"/")}function k(e,t){for(var n,o=[],i=0,r=0,a="",l=t&&t.delimiter||"/";null!=(n=Je.exec(e));){var s=n[0],c=n[1],u=n.index;if(a+=e.slice(r,u),r=u+s.length,c)a+=c[1];else{var d=e[r],f=n[2],p=n[3],h=n[4],g=n[5],m=n[6],v=n[7];a&&(o.push(a),a="");var b=null!=f&&null!=d&&d!==f,x="+"===m||"*"===m,y="?"===m||"*"===m,_=n[2]||l,w=h||g;o.push({name:p||i++,prefix:f||"",delimiter:_,optional:y,repeat:x,partial:b,asterisk:!!v,pattern:w?E(w):v?".*":"[^"+T(_)+"]+?"})}}return r-1&&(i.params[f]=n.params[f]);if(l)return i.path=N(l.path,i.params,'named route "'+r+'"'),a(l,i,o)}else if(i.path){i.params={};for(var p=0;p=e.length?n():e[i]?t(e[i],function(){o(i+1)}):o(i+1)};o(0)}function ce(e){return function(t,n,i){var r=!1,a=0,l=null;ue(e,function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){r=!0,a++;var c,u=pe(function(t){fe(t)&&(t=t.default),e.resolved="function"==typeof t?t:Pe.extend(t),n.components[s]=t,--a<=0&&i()}),d=pe(function(e){var t="Failed to resolve async component "+s+": "+e;l||(l=o(e)?e:new Error(t),i(l))});try{c=e(u,d)}catch(e){d(e)}if(c)if("function"==typeof c.then)c.then(u,d);else{var f=c.component;f&&"function"==typeof f.then&&f.then(u,d)}}}),r||i()}}function ue(e,t){return de(e.map(function(e){return Object.keys(e.components).map(function(n){return t(e.components[n],e.instances[n],e,n)})}))}function de(e){return Array.prototype.concat.apply([],e)}function fe(e){return e.__esModule||it&&"Module"===e[Symbol.toStringTag]}function pe(e){var t=!1;return function(){for(var n=[],o=arguments.length;o--;)n[o]=arguments[o];if(!t)return t=!0,e.apply(this,n)}}function he(e){if(!e)if(Ge){var t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^https?:\/\/[^\/]+/,"")}else e="/";return"/"!==e.charAt(0)&&(e="/"+e),e.replace(/\/$/,"")}function ge(e,t){var n,o=Math.max(e.length,t.length);for(n=0;n=0?t.slice(0,n):t)+"#"+e}function Ee(e){tt?ae(Te(e)):window.location.hash=e}function Ie(e){tt?le(Te(e)):window.location.replace(Te(e))}function Oe(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function Le(e,t,n){var o="hash"===n?"#"+t:t;return e?w(e+"/"+o):o}var Pe,De={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,t){var n=t.props,o=t.children,a=t.parent,l=t.data;l.routerView=!0;for(var s=a.$createElement,c=n.name,u=a.$route,d=a._routerViewCache||(a._routerViewCache={}),f=0,p=!1;a&&a._routerRoot!==a;)a.$vnode&&a.$vnode.data.routerView&&f++,a._inactive&&(p=!0),a=a.$parent;if(l.routerViewDepth=f,p)return s(d[c],l,o);var h=u.matched[f];if(!h)return d[c]=null,s();var g=d[c]=h.components[c];l.registerRouteInstance=function(e,t){var n=h.instances[c];(t&&n!==e||!t&&n===e)&&(h.instances[c]=t)},(l.hook||(l.hook={})).prepatch=function(e,t){h.instances[c]=t.componentInstance};var m=l.props=i(u,h.props&&h.props[c]);if(m){m=l.props=r({},m);var v=l.attrs=l.attrs||{};for(var b in m)g.props&&b in g.props||(v[b]=m[b],delete m[b])}return s(g,l,o)}},ze=/[!'()*]/g,Re=function(e){return"%"+e.charCodeAt(0).toString(16)},Ne=/%2C/g,Be=function(e){return encodeURIComponent(e).replace(ze,Re).replace(Ne,",")},Fe=decodeURIComponent,Ve=/\/?$/,je=c(null,{path:"/"}),$e=[String,Object],He=[String,Array],We={name:"router-link",props:{to:{type:$e,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:He,default:"click"}},render:function(e){var t=this,n=this.$router,o=this.$route,i=n.resolve(this.to,o,this.append),r=i.location,a=i.route,l=i.href,s={},u=n.options.linkActiveClass,d=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,h=null==d?"router-link-exact-active":d,m=null==this.activeClass?f:this.activeClass,x=null==this.exactActiveClass?h:this.exactActiveClass,y=r.path?c(null,r,null,n):a;s[x]=p(o,y),s[m]=this.exact?s[x]:g(o,y);var _=function(e){v(e)&&(t.replace?n.replace(r):n.push(r))},w={click:v};Array.isArray(this.event)?this.event.forEach(function(e){w[e]=_}):w[this.event]=_;var k={class:s};if("a"===this.tag)k.on=w,k.attrs={href:l};else{var S=b(this.$slots.default);if(S){S.isStatic=!1;var M=Pe.util.extend;(S.data=M({},S.data)).on=w,(S.data.attrs=M({},S.data.attrs)).href=l}else k.on=w}return e(this.tag,k,this.$slots.default)}},Ge="undefined"!=typeof window,Ue=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},qe=R,Ye=k,Ze=S,Xe=A,Ke=z,Je=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");qe.parse=Ye,qe.compile=Ze,qe.tokensToFunction=Xe,qe.tokensToRegExp=Ke;var Qe=Object.create(null),et=Object.create(null),tt=Ge&&function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history}(),nt=Ge&&window.performance&&window.performance.now?window.performance:Date,ot=oe(),it="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,rt=function(e,t){this.router=e,this.base=he(t),this.current=je,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};rt.prototype.listen=function(e){this.cb=e},rt.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},rt.prototype.onError=function(e){this.errorCbs.push(e)},rt.prototype.transitionTo=function(e,t,n){var o=this,i=this.router.match(e,this.current);this.confirmTransition(i,function(){o.updateRoute(i),t&&t(i),o.ensureURL(),o.ready||(o.ready=!0,o.readyCbs.forEach(function(e){e(i)}))},function(e){n&&n(e),e&&!o.ready&&(o.ready=!0,o.readyErrorCbs.forEach(function(t){t(e)}))})},rt.prototype.confirmTransition=function(e,t,n){var i=this,r=this.current,a=function(e){o(e)&&(i.errorCbs.length?i.errorCbs.forEach(function(t){t(e)}):console.error(e)),n&&n(e)};if(p(e,r)&&e.matched.length===r.matched.length)return this.ensureURL(),a();var l=ge(this.current.matched,e.matched),s=l.updated,c=l.deactivated,u=l.activated,d=[].concat(be(c),this.router.beforeHooks,xe(s),u.map(function(e){return e.beforeEnter}),ce(u));this.pending=e;var f=function(t,n){if(i.pending!==e)return a();try{t(e,r,function(e){!1===e||o(e)?(i.ensureURL(!0),a(e)):"string"==typeof e||"object"==typeof e&&("string"==typeof e.path||"string"==typeof e.name)?(a(),"object"==typeof e&&e.replace?i.replace(e):i.push(e)):n(e)})}catch(e){a(e)}};se(d,f,function(){var n=[];se(_e(u,n,function(){return i.current===e}).concat(i.router.resolveHooks),f,function(){if(i.pending!==e)return a();i.pending=null,t(e),i.router.app&&i.router.app.$nextTick(function(){n.forEach(function(e){e()})})})})},rt.prototype.updateRoute=function(e){var t=this.current;this.current=e,this.cb&&this.cb(e),this.router.afterHooks.forEach(function(n){n&&n(e,t)})};var at=function(e){function t(t,n){var o=this;e.call(this,t,n);var i=t.options.scrollBehavior;i&&q();var r=Se(this.base);window.addEventListener("popstate",function(e){var n=o.current,a=Se(o.base);o.current===je&&a===r||o.transitionTo(a,function(e){i&&Y(t,e,n,!0)})})}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var o=this,i=this,r=i.current;this.transitionTo(e,function(e){ae(w(o.base+e.fullPath)),Y(o.router,e,r,!1),t&&t(e)},n)},t.prototype.replace=function(e,t,n){var o=this,i=this,r=i.current;this.transitionTo(e,function(e){le(w(o.base+e.fullPath)),Y(o.router,e,r,!1),t&&t(e)},n)},t.prototype.ensureURL=function(e){if(Se(this.base)!==this.current.fullPath){var t=w(this.base+this.current.fullPath);e?ae(t):le(t)}},t.prototype.getCurrentLocation=function(){return Se(this.base)},t}(rt),lt=function(e){function t(t,n,o){e.call(this,t,n),o&&Me(this.base)||Ce()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this,t=this.router,n=t.options.scrollBehavior,o=tt&&n;o&&q(),window.addEventListener(tt?"popstate":"hashchange",function(){var t=e.current;Ce()&&e.transitionTo(Ae(),function(n){o&&Y(e.router,n,t,!0),tt||Ie(n.fullPath)})})},t.prototype.push=function(e,t,n){var o=this,i=this,r=i.current;this.transitionTo(e,function(e){Ee(e.fullPath),Y(o.router,e,r,!1),t&&t(e)},n)},t.prototype.replace=function(e,t,n){var o=this,i=this,r=i.current;this.transitionTo(e,function(e){Ie(e.fullPath),Y(o.router,e,r,!1),t&&t(e)},n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Ae()!==t&&(e?Ee(t):Ie(t))},t.prototype.getCurrentLocation=function(){return Ae()},t}(rt),st=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var o=this;this.transitionTo(e,function(e){o.stack=o.stack.slice(0,o.index+1).concat(e),o.index++,t&&t(e)},n)},t.prototype.replace=function(e,t,n){var o=this;this.transitionTo(e,function(e){o.stack=o.stack.slice(0,o.index).concat(e),t&&t(e)},n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var o=this.stack[n];this.confirmTransition(o,function(){t.index=n,t.updateRoute(o)})}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(rt),ct=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=W(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!tt&&!1!==e.fallback,this.fallback&&(t="hash"),Ge||(t="abstract"),this.mode=t,t){case"history":this.history=new at(this,e.base);break;case"hash":this.history=new lt(this,e.base,this.fallback);break;case"abstract":this.history=new st(this,e.base)}},ut={currentRoute:{configurable:!0}};ct.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},ut.currentRoute.get=function(){return this.history&&this.history.current},ct.prototype.init=function(e){var t=this;if(this.apps.push(e),!this.app){this.app=e;var n=this.history;if(n instanceof at)n.transitionTo(n.getCurrentLocation());else if(n instanceof lt){var o=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen(function(e){t.apps.forEach(function(t){t._route=e})})}},ct.prototype.beforeEach=function(e){return Oe(this.beforeHooks,e)},ct.prototype.beforeResolve=function(e){return Oe(this.resolveHooks,e)},ct.prototype.afterEach=function(e){return Oe(this.afterHooks,e)},ct.prototype.onReady=function(e,t){this.history.onReady(e,t)},ct.prototype.onError=function(e){this.history.onError(e)},ct.prototype.push=function(e,t,n){this.history.push(e,t,n)},ct.prototype.replace=function(e,t,n){this.history.replace(e,t,n)},ct.prototype.go=function(e){this.history.go(e)},ct.prototype.back=function(){this.go(-1)},ct.prototype.forward=function(){this.go(1)},ct.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map(function(e){return Object.keys(e.components).map(function(t){return e.components[t]})})):[]},ct.prototype.resolve=function(e,t,n){var o=$(e,t||this.history.current,n,this),i=this.match(o,t),r=i.redirectedFrom||i.fullPath;return{location:o,route:i,href:Le(this.history.base,r,this.mode),normalizedTo:o,resolved:i}},ct.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==je&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(ct.prototype,ut),ct.install=x,ct.version="2.8.1",Ge&&window.Vue&&window.Vue.use(ct),t.a=ct},function(e,t,n){function o(e,t,n){return{type:e,event:n,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which}}function i(){}function r(e,t,n){if(e[e.rectHover?"rectContain":"contain"](t,n)){for(var o,i=e;i;){if(i.clipPath&&!i.clipPath.contain(t,n))return!1;i.silent&&(o=!0),i=i.parent}return!o||u}return!1}var a=n(0),l=n(7),s=n(687),c=n(49),u="silent";i.prototype.dispose=function(){};var d=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],f=function(e,t,n,o){c.call(this),this.storage=e,this.painter=t,this.painterRoot=o,n=n||new i,this.proxy=n,n.handler=this,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,s.call(this),a.each(d,function(e){n.on&&n.on(e,this[e],this)},this)};f.prototype={constructor:f,mousemove:function(e){var t=e.zrX,n=e.zrY,o=this._hovered,i=o.target;i&&!i.__zr&&(o=this.findHover(o.x,o.y),i=o.target);var r=this._hovered=this.findHover(t,n),a=r.target,l=this.proxy;l.setCursor&&l.setCursor(a?a.cursor:"default"),i&&a!==i&&this.dispatchToElement(o,"mouseout",e),this.dispatchToElement(r,"mousemove",e),a&&a!==i&&this.dispatchToElement(r,"mouseover",e)},mouseout:function(e){this.dispatchToElement(this._hovered,"mouseout",e);var t,n=e.toElement||e.relatedTarget;do{n=n&&n.parentNode}while(n&&9!=n.nodeType&&!(t=n===this.painterRoot));!t&&this.trigger("globalout",{event:e})},resize:function(e){this._hovered={}},dispatch:function(e,t){var n=this[e];n&&n.call(this,t)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(e){var t=this.proxy;t.setCursor&&t.setCursor(e)},dispatchToElement:function(e,t,n){e=e||{};var i=e.target;if(!i||!i.silent){for(var r="on"+t,a=o(t,e,n);i&&(i[r]&&(a.cancelBubble=i[r].call(i,a)),i.trigger(t,a),i=i.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(t,a),this.painter&&this.painter.eachOtherLayer(function(e){"function"==typeof e[r]&&e[r].call(e,a),e.trigger&&e.trigger(t,a)}))}},findHover:function(e,t,n){for(var o=this.storage.getDisplayList(),i={x:e,y:t},a=o.length-1;a>=0;a--){var l;if(o[a]!==n&&!o[a].ignore&&(l=r(o[a],e,t))&&(!i.topTarget&&(i.topTarget=o[a]),l!==u)){i.target=o[a];break}}return i}},a.each(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(e){f.prototype[e]=function(t){var n=this.findHover(t.zrX,t.zrY),o=n.target;if("mousedown"===e)this._downEl=o,this._downPoint=[t.zrX,t.zrY],this._upEl=o;else if("mosueup"===e)this._upEl=o;else if("click"===e){if(this._downEl!==this._upEl||!this._downPoint||l.dist(this._downPoint,[t.zrX,t.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,e,t)}}),a.mixin(f,c),a.mixin(f,s);var p=f;e.exports=p},function(e,t,n){function o(){return!1}function i(e,t,n){var o=r.createCanvas(),i=t.getWidth(),a=t.getHeight(),l=o.style;return l.position="absolute",l.left=0,l.top=0,l.width=i+"px",l.height=a+"px",o.width=i*n,o.height=a*n,o.setAttribute("data-zr-dom-id",e),o}var r=n(0),a=n(95),l=a.devicePixelRatio,s=n(248),c=n(247),u=function(e,t,n){var a;n=n||l,"string"==typeof e?a=i(e,t,n):r.isObject(e)&&(a=e,e=a.id),this.id=e,this.dom=a;var s=a.style;s&&(a.onselectstart=o,s["-webkit-user-select"]="none",s["user-select"]="none",s["-webkit-touch-callout"]="none",s["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",s.padding=0,s.margin=0,s["border-width"]=0),this.domBack=null,this.ctxBack=null,this.painter=t,this.config=null,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.dpr=n};u.prototype={constructor:u,elCount:0,__dirty:!0,initContext:function(){this.ctx=this.dom.getContext("2d"),this.ctx.__currentValues={},this.ctx.dpr=this.dpr},createBackBuffer:function(){var e=this.dpr;this.domBack=i("back-"+this.id,this.painter,e),this.ctxBack=this.domBack.getContext("2d"),this.ctxBack.__currentValues={},1!=e&&this.ctxBack.scale(e,e)},resize:function(e,t){var n=this.dpr,o=this.dom,i=o.style,r=this.domBack;i.width=e+"px",i.height=t+"px",o.width=e*n,o.height=t*n,r&&(r.width=e*n,r.height=t*n,1!=n&&this.ctxBack.scale(n,n))},clear:function(e){var t=this.dom,n=this.ctx,o=t.width,i=t.height,r=this.clearColor,a=this.motionBlur&&!e,l=this.lastFrameAlpha,u=this.dpr;if(a&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(t,0,0,o/u,i/u)),n.clearRect(0,0,o,i),r){var d;r.colorStops?(d=r.__canvasGradient||s.getGradient(n,r,{x:0,y:0,width:o,height:i}),r.__canvasGradient=d):r.image&&(d=c.prototype.getCanvasPattern.call(r,n)),n.save(),n.fillStyle=d||r,n.fillRect(0,0,o,i),n.restore()}if(a){var f=this.domBack;n.save(),n.globalAlpha=l,n.drawImage(f,0,0,o,i),n.restore()}}};var d=u;e.exports=d},function(e,t,n){function o(e){return parseInt(e,10)}function i(e){return!!e&&(!!e.__builtin__||"function"==typeof e.resize&&"function"==typeof e.refresh)}function r(e){e.__unusedCount++}function a(e){1==e.__unusedCount&&e.clear()}function l(e,t,n){return y.copy(e.getBoundingRect()),e.transform&&y.applyTransform(e.transform),_.width=t,_.height=n,!y.intersect(_)}function s(e,t){if(e==t)return!1;if(!e||!t||e.length!==t.length)return!0;for(var n=0;n=0&&n.splice(o,1),e.__hoverMir=null},clearHover:function(e){for(var t=this._hoverElements,n=0;n=0){if(!l){if(l=this._progressiveLayers[Math.min(c++,4)],l.ctx.save(),l.renderScope={},l&&l.__progress>l.__maxProgress){g=l.__nextIdxNotProg-1;continue}s=l.__progress,l.__dirty||(f=s),l.__progress=f+1}x===f&&this._doPaintEl(v,l,!0,l.renderScope)}else this._doPaintEl(v,o,t,a);v.__dirty=!1}}l&&n(l),r&&r.restore(),this._furtherProgressive=!1,p.each(this._progressiveLayers,function(e){e.__maxProgress>=e.__progress&&(this._furtherProgressive=!0)},this)},_doPaintEl:function(e,t,n,o){var i=t.ctx,r=e.transform;if((t.__dirty||n)&&!e.invisible&&0!==e.style.opacity&&(!r||r[0]||r[3])&&(!e.culling||!l(e,this._width,this._height))){var a=e.__clipPaths;(o.prevClipLayer!==t||s(a,o.prevElClipPaths))&&(o.prevElClipPaths&&(o.prevClipLayer.ctx.restore(),o.prevClipLayer=o.prevElClipPaths=null,o.prevEl=null),a&&(i.save(),c(a,i),o.prevClipLayer=t,o.prevElClipPaths=a)),e.beforeBrush&&e.beforeBrush(i),e.brush(i,o.prevEl||null),o.prevEl=e,e.afterBrush&&e.afterBrush(i)}},getLayer:function(e){if(this._singleCanvas)return this._layers[0];var t=this._layers[e];return t||(t=new v("zr_"+e,this,this.dpr),t.__builtin__=!0,this._layerConfig[e]&&p.merge(t,this._layerConfig[e],!0),this.insertLayer(e,t),t.initContext()),t},insertLayer:function(e,t){var n=this._layers,o=this._zlevelList,r=o.length,a=null,l=-1,s=this._domRoot;if(n[e])return void h("ZLevel "+e+" has been used already");if(!i(t))return void h("Layer of zlevel "+e+" is not valid");if(r>0&&e>o[0]){for(l=0;le);l++);a=n[o[l]]}if(o.splice(l+1,0,e),n[e]=t,!t.virtual)if(a){var c=a.dom;c.nextSibling?s.insertBefore(t.dom,c.nextSibling):s.appendChild(t.dom)}else s.firstChild?s.insertBefore(t.dom,s.firstChild):s.appendChild(t.dom)},eachLayer:function(e,t){var n,o,i=this._zlevelList;for(o=0;o=0){a!==g&&(a=g,s++);var m=d.__frame=s-1;if(!r){var b=Math.min(l,4);r=n[b],r||(r=n[b]=new v("progressive",this,this.dpr),r.initContext()),r.__maxProgress=0}r.__dirty=r.__dirty||d.__dirty,r.elCount++,r.__maxProgress=Math.max(r.__maxProgress,m),r.__maxProgress>=r.__progress&&(h.__dirty=!0)}else d.__frame=-1,r&&(r.__nextIdxNotProg=c,l++,r=null)}r&&(l++,r.__nextIdxNotProg=c),this.eachBuiltinLayer(function(e,t){o[t]!==e.elCount&&(e.__dirty=!0)}),n.length=Math.min(l,5),p.each(n,function(e,t){i[t]!==e.elCount&&(d.__dirty=!0),e.__dirty&&(e.__progress=0)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(e){e.clear()},configLayer:function(e,t){if(t){var n=this._layerConfig;n[e]?p.merge(n[e],t,!0):n[e]=t;var o=this._layers[e];o&&p.merge(o,n[e],!0)}},delLayer:function(e){var t=this._layers,n=this._zlevelList,o=t[e];o&&(o.dom.parentNode.removeChild(o.dom),delete t[e],n.splice(p.indexOf(n,e),1))},resize:function(e,t){var n=this._domRoot;n.style.display="none";var o=this._opts;if(null!=e&&(o.width=e),null!=t&&(o.height=t),e=this._getSize(0),t=this._getSize(1),n.style.display="",this._width!=e||t!=this._height){n.style.width=e+"px",n.style.height=t+"px";for(var i in this._layers)this._layers.hasOwnProperty(i)&&this._layers[i].resize(e,t);p.each(this._progressiveLayers,function(n){n.resize(e,t)}),this.refresh(!0)}return this._width=e,this._height=t,this},clearLayer:function(e){var t=this._layers[e];t&&t.clear()},dispose:function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},getRenderedCanvas:function(e){function t(e,t){var o=a._zlevelList;null==e&&(e=-1/0);for(var i,r=0;re&&l=0&&(this.delFromStorage(e),this._roots.splice(r,1),e instanceof a&&e.delChildrenFromStorage(this))}},addToStorage:function(e){return e.__storage=this,e.dirty(!1),this},delFromStorage:function(e){return e&&(e.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:o};var c=s;e.exports=c},function(e,t,n){var o=n(0),i=n(31),r=i.Dispatcher,a=n(238),l=n(237),s=function(e){e=e||{},this.stage=e.stage||{},this.onframe=e.onframe||function(){},this._clips=[],this._running=!1,this._time,this._pausedTime,this._pauseStart,this._paused=!1,r.call(this)};s.prototype={constructor:s,addClip:function(e){this._clips.push(e)},addAnimator:function(e){e.animation=this;for(var t=e.getClips(),n=0;n=0&&this._clips.splice(t,1)},removeAnimator:function(e){for(var t=e.getClips(),n=0;nn||f+di&&(i+=a);var h=Math.atan2(u,c);return h<0&&(h+=a),h>=o&&h<=i||h+a>=o&&h+a<=i}var i=n(242),r=i.normalizeRadian,a=2*Math.PI;t.containStroke=o},function(e,t,n){function o(e,t,n,o,r,a,l,s,c,u,d){if(0===c)return!1;var f=c;return!(d>t+f&&d>o+f&&d>a+f&&d>s+f||de+f&&u>n+f&&u>r+f&&u>l+f||ut&&u>o&&u>a&&u>s||u1&&i(),f=b.cubicAt(t,o,a,s,S[0]),g>1&&(p=b.cubicAt(t,o,a,s,S[1]))),2==g?vt&&l>o&&l>r||l=0&&c<=1){for(var u=0,d=b.quadraticAt(t,o,r,c),f=0;fn||l<-n)return 0;var s=Math.sqrt(n*n-l*l);k[0]=-s,k[1]=s;var c=Math.abs(o-i);if(c<1e-4)return 0;if(c%_<1e-4){o=0,i=_;var u=r?1:-1;return a>=k[0]+e&&a<=k[1]+e?u:0}if(r){var s=o;o=v(i),i=v(s)}else o=v(o),i=v(i);o>i&&(i+=_);for(var d=0,f=0;f<2;f++){var p=k[f];if(p+e>a){var h=Math.atan2(l,p),u=r?1:-1;h<0&&(h=_+h),(h>=o&&h<=i||h+_>=o&&h+_<=i)&&(h>Math.PI/2&&h<1.5*Math.PI&&(u=-u),d+=u)}}return d}function s(e,t,n,i,s){for(var c=0,u=0,d=0,m=0,v=0,b=0;b1&&(n||(c+=x(u,d,m,v,i,s))),1==b&&(u=e[b],d=e[b+1],m=u,v=d),_){case y.M:m=e[b++],v=e[b++],u=m,d=v;break;case y.L:if(n){if(f.containStroke(u,d,e[b],e[b+1],t,i,s))return!0}else c+=x(u,d,e[b],e[b+1],i,s)||0;u=e[b++],d=e[b++];break;case y.C:if(n){if(p.containStroke(u,d,e[b++],e[b++],e[b++],e[b++],e[b],e[b+1],t,i,s))return!0}else c+=r(u,d,e[b++],e[b++],e[b++],e[b++],e[b],e[b+1],i,s)||0;u=e[b++],d=e[b++];break;case y.Q:if(n){if(h.containStroke(u,d,e[b++],e[b++],e[b],e[b+1],t,i,s))return!0}else c+=a(u,d,e[b++],e[b++],e[b],e[b+1],i,s)||0;u=e[b++],d=e[b++];break;case y.A:var w=e[b++],k=e[b++],S=e[b++],M=e[b++],C=e[b++],A=e[b++],T=(e[b++],1-e[b++]),E=Math.cos(C)*S+w,I=Math.sin(C)*M+k;b>1?c+=x(u,d,E,I,i,s):(m=E,v=I);var O=(i-w)*M/S+w;if(n){if(g.containStroke(w,k,M,C,C+A,T,t,O,s))return!0}else c+=l(w,k,M,C,C+A,T,O,s);u=Math.cos(C+A)*S+w,d=Math.sin(C+A)*M+k;break;case y.R:m=u=e[b++],v=d=e[b++];var L=e[b++],P=e[b++],E=m+L,I=v+P;if(n){if(f.containStroke(m,v,E,v,t,i,s)||f.containStroke(E,v,E,I,t,i,s)||f.containStroke(E,I,m,I,t,i,s)||f.containStroke(m,I,m,v,t,i,s))return!0}else c+=x(E,v,E,I,i,s),c+=x(m,I,m,v,i,s);break;case y.Z:if(n){if(f.containStroke(u,d,m,v,t,i,s))return!0}else c+=x(u,d,m,v,i,s);u=m,d=v}}return n||o(d,v)||(c+=x(u,d,m,v,i,s)||0),0!==c}function c(e,t,n){return s(e,0,!1,t,n)}function u(e,t,n,o){return s(e,t,!0,n,o)}var d=n(61),f=n(239),p=n(668),h=n(241),g=n(667),m=n(242),v=m.normalizeRadian,b=n(39),x=n(243),y=d.CMD,_=2*Math.PI,w=1e-4,k=[-1,-1,-1],S=[-1,-1];t.contain=c,t.containStroke=u},function(e,t,n){function o(e){var t=e[1][0]-e[0][0],n=e[1][1]-e[0][1];return Math.sqrt(t*t+n*n)}function i(e){return[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]}var r=n(31),a=function(){this._track=[]};a.prototype={constructor:a,recognize:function(e,t,n){return this._doTrack(e,t,n),this._recognize(e)},clear:function(){return this._track.length=0,this},_doTrack:function(e,t,n){var o=e.touches;if(o){for(var i={points:[],touches:[],target:t,event:e},a=0,l=o.length;a1&&r&&r.length>1){var l=o(r)/o(a);!isFinite(l)&&(l=1),t.pinchScale=l;var s=i(r);return t.pinchX=s[0],t.pinchY=s[1],{type:"pinch",target:e[0].target,event:t}}}}},s=a;e.exports=s},function(e,t){function n(){}function o(e,t,n,o){for(var i=0,r=t.length,a=0,l=0;i=a&&d+1>=l){for(var f=[],p=0;p=a&&p+1>=l)return o(r,c.components,t,e);u[n]=c}else u[n]=void 0}s++}();if(h)return h}},pushComponent:function(e,t,n){var o=e[e.length-1];o&&o.added===t&&o.removed===n?e[e.length-1]={count:o.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,o){for(var i=t.length,r=n.length,a=e.newPos,l=a-o,s=0;a+1n-2?n-1:p+1],d=e[p>n-3?n-1:p+2]);var m=h*h,v=h*m;i.push([o(c[0],g[0],u[0],d[0],h,m,v),o(c[1],g[1],u[1],d[1],h,m,v)])}return i}var r=n(7),a=r.distance;e.exports=i},function(e,t,n){var o=n(16),i=o.extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(e,t){var n=t.cx,o=t.cy,i=Math.max(t.r,0),r=t.startAngle,a=t.endAngle,l=t.clockwise,s=Math.cos(r),c=Math.sin(r);e.moveTo(s*i+n,c*i+o),e.arc(n,o,i,r,a,!l)}});e.exports=i},function(e,t,n){function o(e,t,n){var o=e.cpx2,i=e.cpy2;return null===o||null===i?[(n?f:u)(e.x1,e.cpx1,e.cpx2,e.x2,t),(n?f:u)(e.y1,e.cpy1,e.cpy2,e.y2,t)]:[(n?d:c)(e.x1,e.cpx1,e.x2,t),(n?d:c)(e.y1,e.cpy1,e.y2,t)]}var i=n(16),r=n(7),a=n(39),l=a.quadraticSubdivide,s=a.cubicSubdivide,c=a.quadraticAt,u=a.cubicAt,d=a.quadraticDerivativeAt,f=a.cubicDerivativeAt,p=[],h=i.extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(e,t){var n=t.x1,o=t.y1,i=t.x2,r=t.y2,a=t.cpx1,c=t.cpy1,u=t.cpx2,d=t.cpy2,f=t.percent;0!==f&&(e.moveTo(n,o),null==u||null==d?(f<1&&(l(n,a,i,f,p),a=p[1],i=p[2],l(o,c,r,f,p),c=p[1],r=p[2]),e.quadraticCurveTo(a,c,i,r)):(f<1&&(s(n,a,u,i,f,p),a=p[1],u=p[2],i=p[3],s(o,c,d,r,f,p),c=p[1],d=p[2],r=p[3]),e.bezierCurveTo(a,c,u,d,i,r)))},pointAt:function(e){return o(this.shape,e,!1)},tangentAt:function(e){var t=o(this.shape,e,!0);return r.normalize(t,t)}});e.exports=h},function(e,t,n){var o=n(16),i=o.extend({type:"circle",shape:{cx:0,cy:0,r:0},buildPath:function(e,t,n){n&&e.moveTo(t.cx+t.r,t.cy),e.arc(t.cx,t.cy,t.r,0,2*Math.PI,!0)}});e.exports=i},function(e,t,n){var o=n(16),i=o.extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(e,t){var n=t.x1,o=t.y1,i=t.x2,r=t.y2,a=t.percent;0!==a&&(e.moveTo(n,o),a<1&&(i=n*(1-a)+i*a,r=o*(1-a)+r*a),e.lineTo(i,r))},pointAt:function(e){var t=this.shape;return[t.x1*(1-e)+t.x2*e,t.y1*(1-e)+t.y2*e]}});e.exports=i},function(e,t,n){var o=n(16),i=n(250),r=o.extend({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(e,t){i.buildPath(e,t,!0)}});e.exports=r},function(e,t,n){var o=n(16),i=n(250),r=o.extend({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(e,t){i.buildPath(e,t,!1)}});e.exports=r},function(e,t,n){var o=n(16),i=n(251),r=o.extend({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.x,o=t.y,r=t.width,a=t.height;t.r?i.buildPath(e,t):e.rect(n,o,r,a),e.closePath()}});e.exports=r},function(e,t,n){var o=n(16),i=o.extend({type:"ring",shape:{cx:0,cy:0,r:0,r0:0},buildPath:function(e,t){var n=t.cx,o=t.cy,i=2*Math.PI;e.moveTo(n+t.r,o),e.arc(n,o,t.r,0,i,!1),e.moveTo(n+t.r0,o),e.arc(n,o,t.r0,0,i,!0)}});e.exports=i},function(e,t,n){var o=n(16),i=n(249),r=o.extend({type:"sector",shape:{cx:0,cy:0,r0:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},brush:i(o.prototype.brush),buildPath:function(e,t){var n=t.cx,o=t.cy,i=Math.max(t.r0||0,0),r=Math.max(t.r,0),a=t.startAngle,l=t.endAngle,s=t.clockwise,c=Math.cos(a),u=Math.sin(a);e.moveTo(c*i+n,u*i+o),e.lineTo(c*r+n,u*r+o),e.arc(n,o,r,a,l,!s),e.lineTo(Math.cos(l)*i+n,Math.sin(l)*i+o),0!==i&&e.arc(n,o,i,l,a,s),e.closePath()}});e.exports=r},function(e,t,n){var o=n(237),i=n(72),r=n(0),a=r.isString,l=r.isFunction,s=r.isObject,c=r.isArrayLike,u=r.indexOf,d=function(){this.animators=[]};d.prototype={constructor:d,animate:function(e,t){var n,r=!1,a=this,l=this.__zr;if(e){var s=e.split("."),c=a;r="shape"===s[0];for(var d=0,f=s.length;d0&&this.animate(e,!1).when(null==o?500:o,r).delay(i||0),this}};var f=d;e.exports=f},function(e,t){function n(){this.on("mousedown",this._dragStart,this),this.on("mousemove",this._drag,this),this.on("mouseup",this._dragEnd,this),this.on("globalout",this._dragEnd,this)}function o(e,t){return{target:e,topTarget:t&&t.topTarget}}n.prototype={constructor:n,_dragStart:function(e){var t=e.target;t&&t.draggable&&(this._draggingTarget=t,t.dragging=!0,this._x=e.offsetX,this._y=e.offsetY,this.dispatchToElement(o(t,e),"dragstart",e.event))},_drag:function(e){var t=this._draggingTarget;if(t){var n=e.offsetX,i=e.offsetY,r=n-this._x,a=i-this._y;this._x=n,this._y=i,t.drift(r,a,e),this.dispatchToElement(o(t,e),"drag",e.event);var l=this.findHover(n,i,t).target,s=this._dropTarget;this._dropTarget=l,t!==l&&(s&&l!==s&&this.dispatchToElement(o(s,e),"dragleave",e.event),l&&l!==s&&this.dispatchToElement(o(l,e),"dragenter",e.event))}},_dragEnd:function(e){var t=this._draggingTarget;t&&(t.dragging=!1),this.dispatchToElement(o(t,e),"dragend",e.event),this._dropTarget&&this.dispatchToElement(o(this._dropTarget,e),"drop",e.event),this._draggingTarget=null,this._dropTarget=null}};var i=n;e.exports=i},function(e,t,n){function o(e){return parseInt(e,10)}function i(e){return e instanceof v?S:e instanceof b?M:e instanceof x?C:S}function r(e,t){return t&&e&&t.parentNode!==e}function a(e,t,n){if(r(e,t)&&n){var o=n.nextSibling;o?e.insertBefore(t,o):e.appendChild(t)}}function l(e,t){if(r(e,t)){var n=e.firstChild;n?e.insertBefore(t,n):e.appendChild(t)}}function s(e,t){t&&e&&t.parentNode===e&&e.removeChild(t)}function c(e){return e.__textSvgEl}function u(e){return e.__svgEl}function d(e){return function(){m('In SVG mode painter not support method "'+e+'"')}}var f=n(137),p=f.createElement,h=n(0),g=h.each,m=n(72),v=n(16),b=n(73),x=n(74),y=n(671),_=n(690),w=n(689),k=n(138),S=k.path,M=k.image,C=k.text,A=function(e,t,n){this.root=e,this.storage=t,this._opts=n=h.extend({},n||{});var o=p("svg");o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("version","1.1"),o.setAttribute("baseProfile","full"),o.style["user-select"]="none",o.style.cssText="position:absolute;left:0;top:0;",this.gradientManager=new _(o),this.clipPathManager=new w(o);var i=document.createElement("div");i.style.cssText="overflow:hidden;position:relative",this._svgRoot=o,this._viewport=i,e.appendChild(i),i.appendChild(o),this.resize(n.width,n.height),this._visibleList=[]};A.prototype={constructor:A,getType:function(){return"svg"},getViewportRoot:function(){return this._viewport},getViewportRootOffset:function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},refresh:function(){var e=this.storage.getDisplayList(!0);this._paintList(e)},_paintList:function(e){this.gradientManager.markAllUnused(),this.clipPathManager.markAllUnused();var t,n=this._svgRoot,o=this._visibleList,r=e.length,d=[];for(t=0;t=0;--o)if(t[o]===e)return!0;return!1}),n}return null}return n[0]},resize:function(e,t){var n=this._viewport;n.style.display="none";var o=this._opts;if(null!=e&&(o.width=e),null!=t&&(o.height=t),e=this._getSize(0),t=this._getSize(1),n.style.display="",this._width!==e&&this._height!==t){this._width=e,this._height=t;var i=n.style;i.width=e+"px",i.height=t+"px";var r=this._svgRoot;r.setAttribute("width",e),r.setAttribute("height",t)}},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(e){var t=this._opts,n=["width","height"][e],i=["clientWidth","clientHeight"][e],r=["paddingLeft","paddingTop"][e],a=["paddingRight","paddingBottom"][e];if(null!=t[n]&&"auto"!==t[n])return parseFloat(t[n]);var l=this.root,s=document.defaultView.getComputedStyle(l);return(l[i]||o(s[n])||o(l.style[n]))-(o(s[r])||0)-(o(s[a])||0)|0},dispose:function(){this.root.innerHTML="",this._svgRoot=this._viewport=this.storage=null},clear:function(){this._viewport&&this.root.removeChild(this._viewport)},pathToSvg:function(){this.refresh();var e=this._svgRoot.outerHTML;return"data:img/svg+xml;utf-8,"+unescape(e)}},g(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(e){A.prototype[e]=d(e)});var T=A;e.exports=T},function(e,t,n){function o(e){i.call(this,e,"clipPath","__clippath_in_use__")}var i=n(253),r=n(0),a=n(24);r.inherits(o,i),o.prototype.update=function(e){var t=this.getSvgElement(e);t&&this.updateDom(t,e.__clipPaths,!1);var n=this.getTextSvgElement(e);n&&this.updateDom(n,e.__clipPaths,!0),this.markUsed(e)},o.prototype.updateDom=function(e,t,n){if(t&&t.length>0){var o,i,r=this.getDefs(!0),l=t[0],s=n?"_textDom":"_dom";l[s]?(i=l[s].getAttribute("id"),o=l[s],r.contains(o)||r.appendChild(o)):(i="zr-clip-"+this.nextId,++this.nextId,o=this.createElement("clipPath"),o.setAttribute("id",i),r.appendChild(o),l[s]=o);var c=this.getSvgProxy(l);if(l.transform&&l.parent.invTransform&&!n){var u=Array.prototype.slice.call(l.transform);a.mul(l.transform,l.parent.invTransform,l.transform),c.brush(l),l.transform=u}else c.brush(l);var d=this.getSvgElement(l);o.appendChild(d.cloneNode()),e.setAttribute("clip-path","url(#"+i+")"),t.length>1&&this.updateDom(o,t.slice(1),n)}else e&&e.setAttribute("clip-path","none")},o.prototype.markUsed=function(e){var t=this;e.__clipPaths&&e.__clipPaths.length>0&&r.each(e.__clipPaths,function(e){e._dom&&i.prototype.markUsed.call(t,e._dom),e._textDom&&i.prototype.markUsed.call(t,e._textDom)})};var l=o;e.exports=l},function(e,t,n){function o(e){i.call(this,e,["linearGradient","radialGradient"],"__gradient_in_use__")}var i=n(253),r=n(0),a=n(72);r.inherits(o,i),o.prototype.addWithoutUpdate=function(e,t){if(t&&t.style){var n=this;r.each(["fill","stroke"],function(o){if(t.style[o]&&("linear"===t.style[o].type||"radial"===t.style[o].type)){var i,r=t.style[o],a=n.getDefs(!0);r._dom?(i=r._dom,a.contains(r._dom)||n.addDom(i)):i=n.add(r),n.markUsed(t);var l=i.getAttribute("id");e.setAttribute(o,"url(#"+l+")")}})}},o.prototype.add=function(e){var t;if("linear"===e.type)t=this.createElement("linearGradient");else{if("radial"!==e.type)return a("Illegal gradient type."),null;t=this.createElement("radialGradient")}return e.id=e.id||this.nextId++,t.setAttribute("id","zr-gradient-"+e.id),this.updateDom(e,t),this.addDom(t),t},o.prototype.update=function(e){var t=this;i.prototype.update.call(this,e,function(){var n=e.type,o=e._dom.tagName;"linear"===n&&"linearGradient"===o||"radial"===n&&"radialGradient"===o?t.updateDom(e,e._dom):(t.removeDom(e),t.add(e))})},o.prototype.updateDom=function(e,t){if("linear"===e.type)t.setAttribute("x1",e.x),t.setAttribute("y1",e.y),t.setAttribute("x2",e.x2),t.setAttribute("y2",e.y2);else{if("radial"!==e.type)return void a("Illegal gradient type.");t.setAttribute("cx",e.x),t.setAttribute("cy",e.y),t.setAttribute("r",e.r)}e.global?t.setAttribute("gradientUnits","userSpaceOnUse"):t.setAttribute("gradientUnits","objectBoundingBox"),t.innerHTML="";for(var n=e.colorStops,o=0,i=n.length;o1&&(a*=p(y),l*=p(y));var _=(i===r?-1:1)*p((a*a*(l*l)-a*a*(v*v)-l*l*(f*f))/(a*a*(v*v)+l*l*(f*f)))||0,w=_*a*v/l,k=_*-l*f/a,S=(e+n)/2+g(d)*w-h(d)*k,M=(t+o)/2+h(d)*w+g(d)*k,C=x([1,0],[(f-w)/a,(v-k)/l]),A=[(f-w)/a,(v-k)/l],T=[(-1*f-w)/a,(-1*v-k)/l],E=x(A,T);b(A,T)<=-1&&(E=m),b(A,T)>=1&&(E=0),0===r&&E>0&&(E-=2*m),1===r&&E<0&&(E+=2*m),u.addData(c,S,M,a,l,C,E,d,r)}function i(e){if(!e)return[];var t,n=e.replace(/-/g," -").replace(/ /g," ").replace(/ /g,",").replace(/,,/g,",");for(t=0;t0&&""===m[0]&&m.shift();for(var v=0;v=0?parseFloat(e)/100*t:parseFloat(e):e},D=function(e,t,n){var o=l.parse(t);n=+n,isNaN(n)&&(n=1),o&&(e.color=E(o[0],o[1],o[2]),e.opacity=n*o[3])},z=function(e){var t=l.parse(e);return[E(t[0],t[1],t[2]),t[3]]},R=function(e,t,n){var o=t.fill;if(null!=o)if(o instanceof m){var i,a=0,l=[0,0],s=0,c=1,u=n.getBoundingRect(),d=u.width,f=u.height;if("linear"===o.type){i="gradient";var p=n.transform,h=[o.x*d,o.y*f],g=[o.x2*d,o.y2*f];p&&(r(h,h,p),r(g,g,p));var v=g[0]-h[0],b=g[1]-h[1];a=180*Math.atan2(v,b)/Math.PI,a<0&&(a+=360),a<1e-6&&(a=0)}else{i="gradientradial";var h=[o.x*d,o.y*f],p=n.transform,x=n.scale,y=d,_=f;l=[(h[0]-u.x)/y,(h[1]-u.y)/_],p&&r(h,h,p),y/=x[0]*M,_/=x[1]*M;var w=S(y,_);s=0/w,c=2*o.r/w-s}var k=o.colorStops.slice();k.sort(function(e,t){return e.offset-t.offset});for(var C=k.length,A=[],T=[],E=0;E=2){var L=A[0][0],P=A[1][0],R=A[0][1]*t.opacity,N=A[1][1]*t.opacity;e.type=i,e.method="none",e.focus="100%",e.angle=a,e.color=L,e.color2=P,e.colors=T.join(","),e.opacity=N,e.opacity2=R}"radial"===i&&(e.focusposition=l.join(","))}else D(e,o,t.opacity)},N=function(e,t){null!=t.lineDash&&(e.dashstyle=t.lineDash.join(" ")),null==t.stroke||t.stroke instanceof m||D(e,t.stroke,t.opacity)},B=function(e,t,n,o){var i="fill"==t,r=e.getElementsByTagName(t)[0];null!=n[t]&&"none"!==n[t]&&(i||!i&&n.lineWidth)?(e[i?"filled":"stroked"]="true",n[t]instanceof m&&O(e,r),r||(r=v.createNode(t)),i?R(r,n,o):N(r,n),I(e,r)):(e[i?"filled":"stroked"]="false",O(e,r))},F=[[],[],[]],V=function(e,t){var n,o,i,a,l,s,c=b.M,u=b.C,d=b.L,f=b.A,p=b.Q,h=[],g=e.data,m=e.len();for(a=0;a.01?$&&(H+=.0125):Math.abs(W-R)<1e-4?$&&Hz?A-=.0125:A+=.0125:$&&WR?S+=.0125:S-=.0125),h.push(G,x(((z-N)*L+I)*M-C),",",x(((R-B)*P+O)*M-C),",",x(((z+N)*L+I)*M-C),",",x(((R+B)*P+O)*M-C),",",x((H*L+I)*M-C),",",x((W*P+O)*M-C),",",x((S*L+I)*M-C),",",x((A*P+O)*M-C)),l=S,s=A;break;case b.R:var U=F[0],q=F[1];U[0]=g[a++],U[1]=g[a++],q[0]=U[0]+g[a++],q[1]=U[1]+g[a++],t&&(r(U,U,t),r(q,q,t)),U[0]=x(U[0]*M-C),q[0]=x(q[0]*M-C),U[1]=x(U[1]*M-C),q[1]=x(q[1]*M-C),h.push(" m ",U[0],",",U[1]," l ",q[0],",",U[1]," l ",q[0],",",q[1]," l ",U[0],",",q[1]);break;case b.Z:h.push(" x ")}if(n>0){h.push(o);for(var Y=0;Y100&&(W=0,H={});var n,o=G.style;try{o.font=e,n=o.fontFamily.split(",")[0]}catch(e){}t={style:o.fontStyle||"normal",variant:o.fontVariant||"normal",weight:o.fontWeight||"normal",size:0|parseFloat(o.fontSize||12),family:n||"Microsoft YaHei"},H[e]=t,W++}return t};s.$override("measureText",function(e,t){var n=v.doc;$||($=n.createElement("div"),$.style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",v.doc.body.appendChild($));try{$.style.font=t}catch(e){}return $.innerHTML="",$.appendChild(n.createTextNode(e)),{width:$.offsetWidth}});for(var q=new a,Y=function(e,t,n,o){var i=this.style;this.__dirty&&c.normalizeTextStyle(i,!0);var a=i.text;if(null!=a&&(a+=""),a){if(i.rich){var l=s.parseRichText(a,i);a=[];for(var u=0;u diff --git a/web/frps/index.html b/web/frps/index.html new file mode 100644 index 00000000000..ac21bba3c7a --- /dev/null +++ b/web/frps/index.html @@ -0,0 +1,14 @@ + + + + + + frps dashboard + + + +
+ + + + diff --git a/web/frps/package.json b/web/frps/package.json index 1c5afaf4fe9..63ee9f53748 100644 --- a/web/frps/package.json +++ b/web/frps/package.json @@ -1,48 +1,38 @@ { "name": "frps-dashboard", - "description": "A dashboard for frp server.", - "author": "fatedier", + "version": "0.0.1", "private": true, "scripts": { - "dev": "webpack-dev-server -d --inline --hot --env.dev", - "build": "rimraf dist && webpack -p --progress --hide-modules" + "dev": "vite", + "build": "run-p type-check build-only", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --noEmit", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { - "bootstrap": "^3.3.7", - "echarts": "^3.5.0", - "element-ui": "^2.3.8", + "@types/humanize-plus": "^1.8.0", + "echarts": "^5.4.1", + "element-plus": "^2.2.28", "humanize-plus": "^1.8.2", - "vue": "^2.5.16", - "vue-resource": "^1.2.1", - "vue-router": "^2.3.0", - "whatwg-fetch": "^2.0.3" - }, - "engines": { - "node": ">=6" + "vue": "^3.2.45", + "vue-router": "^4.1.6" }, "devDependencies": { - "autoprefixer": "^6.6.0", - "babel-core": "^6.21.0", - "babel-eslint": "^7.1.1", - "babel-loader": "^6.4.0", - "babel-plugin-component": "^1.1.1", - "babel-preset-es2015": "^6.13.2", - "css-loader": "^0.27.0", - "eslint": "^3.12.2", - "eslint-config-enough": "^0.2.2", - "eslint-loader": "^1.6.3", - "file-loader": "^0.10.1", - "html-loader": "^0.4.5", - "html-webpack-plugin": "^2.24.1", - "less": "^3.0.4", - "less-loader": "^4.1.0", - "postcss-loader": "^1.3.3", - "rimraf": "^2.5.4", - "style-loader": "^0.13.2", - "url-loader": "^1.0.1", - "vue-loader": "^15.0.10", - "vue-template-compiler": "^2.1.8", - "webpack": "^2.2.0-rc.4", - "webpack-dev-server": "^3.1.4" + "@rushstack/eslint-patch": "^1.1.4", + "@types/node": "^18.11.12", + "@vitejs/plugin-vue": "^4.0.0", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-typescript": "^11.0.0", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.22.0", + "eslint-plugin-vue": "^9.3.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.7.1", + "typescript": "~4.7.4", + "unplugin-auto-import": "^0.13.0", + "unplugin-vue-components": "^0.23.0", + "vite": "^4.0.4", + "vue-tsc": "^1.0.12" } } diff --git a/web/frps/postcss.config.js b/web/frps/postcss.config.js deleted file mode 100644 index af65640308a..00000000000 --- a/web/frps/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: [ - require('autoprefixer')() - ] -} \ No newline at end of file diff --git a/web/frps/src/assets/favicon.ico b/web/frps/public/favicon.ico similarity index 100% rename from web/frps/src/assets/favicon.ico rename to web/frps/public/favicon.ico diff --git a/web/frps/src/App.vue b/web/frps/src/App.vue index 79a7981aaca..bbd98c383b5 100644 --- a/web/frps/src/App.vue +++ b/web/frps/src/App.vue @@ -1,81 +1,85 @@ - diff --git a/web/frps/src/assets/custom.css b/web/frps/src/assets/custom.css new file mode 100644 index 00000000000..107ddc5a280 --- /dev/null +++ b/web/frps/src/assets/custom.css @@ -0,0 +1,22 @@ +.el-form-item span { + margin-left: 15px; +} + +.proxy-table-expand { + font-size: 0; +} + +.proxy-table-expand .el-form-item__label{ + width: 90px; + color: #99a9bf; +} + +.proxy-table-expand .el-form-item { + margin-right: 0; + margin-bottom: 0; + width: 50%; +} + +.el-table .el-table__expanded-cell { + padding: 20px 50px; +} diff --git a/web/frps/src/components/Overview.vue b/web/frps/src/components/Overview.vue deleted file mode 100644 index 1a98a6e3c89..00000000000 --- a/web/frps/src/components/Overview.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxiesHttp.vue b/web/frps/src/components/ProxiesHttp.vue index 74fcb38d1ca..645893d4fa5 100644 --- a/web/frps/src/components/ProxiesHttp.vue +++ b/web/frps/src/components/ProxiesHttp.vue @@ -1,148 +1,41 @@ - - + diff --git a/web/frps/src/components/ProxiesHttps.vue b/web/frps/src/components/ProxiesHttps.vue index 606a07eca2f..992aa411e75 100644 --- a/web/frps/src/components/ProxiesHttps.vue +++ b/web/frps/src/components/ProxiesHttps.vue @@ -1,143 +1,41 @@ - - + diff --git a/web/frps/src/components/ProxiesStcp.vue b/web/frps/src/components/ProxiesStcp.vue index 98def112f6c..d28938d4fa7 100644 --- a/web/frps/src/components/ProxiesStcp.vue +++ b/web/frps/src/components/ProxiesStcp.vue @@ -1,116 +1,26 @@ - - + diff --git a/web/frps/src/components/ProxiesSudp.vue b/web/frps/src/components/ProxiesSudp.vue index d1844d27600..2b997d732db 100644 --- a/web/frps/src/components/ProxiesSudp.vue +++ b/web/frps/src/components/ProxiesSudp.vue @@ -1,116 +1,26 @@ - - + diff --git a/web/frps/src/components/ProxiesTcp.vue b/web/frps/src/components/ProxiesTcp.vue index 8d48944ec85..452d1d981ab 100644 --- a/web/frps/src/components/ProxiesTcp.vue +++ b/web/frps/src/components/ProxiesTcp.vue @@ -1,124 +1,26 @@ - - + diff --git a/web/frps/src/components/ProxiesUdp.vue b/web/frps/src/components/ProxiesUdp.vue index 1556cc47cb3..f0f0a5abb70 100644 --- a/web/frps/src/components/ProxiesUdp.vue +++ b/web/frps/src/components/ProxiesUdp.vue @@ -1,126 +1,27 @@ - - + diff --git a/web/frps/src/components/ProxyView.vue b/web/frps/src/components/ProxyView.vue new file mode 100644 index 00000000000..42facae6e58 --- /dev/null +++ b/web/frps/src/components/ProxyView.vue @@ -0,0 +1,91 @@ + + + diff --git a/web/frps/src/components/ProxyViewExpand.vue b/web/frps/src/components/ProxyViewExpand.vue new file mode 100644 index 00000000000..e20f4a49290 --- /dev/null +++ b/web/frps/src/components/ProxyViewExpand.vue @@ -0,0 +1,70 @@ + + + diff --git a/web/frps/src/components/ServerOverview.vue b/web/frps/src/components/ServerOverview.vue new file mode 100644 index 00000000000..e298fe6ea6f --- /dev/null +++ b/web/frps/src/components/ServerOverview.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/web/frps/src/components/Traffic.vue b/web/frps/src/components/Traffic.vue index 7e2928e21ad..49c48ae8276 100644 --- a/web/frps/src/components/Traffic.vue +++ b/web/frps/src/components/Traffic.vue @@ -1,36 +1,32 @@ - - - + diff --git a/web/frps/src/index.html b/web/frps/src/index.html deleted file mode 100644 index aebd655a179..00000000000 --- a/web/frps/src/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - frps dashboard - - - -
- - - - - diff --git a/web/frps/src/main.js b/web/frps/src/main.js deleted file mode 100644 index d713c13f66b..00000000000 --- a/web/frps/src/main.js +++ /dev/null @@ -1,48 +0,0 @@ -import Vue from 'vue' -//import ElementUI from 'element-ui' -import { - Button, - Form, - FormItem, - Row, - Col, - Table, - TableColumn, - Popover, - Menu, - Submenu, - MenuItem, - Tag -} from 'element-ui' -import lang from 'element-ui/lib/locale/lang/en' -import locale from 'element-ui/lib/locale' -import 'element-ui/lib/theme-chalk/index.css' -import './utils/less/custom.less' - -import App from './App.vue' -import router from './router' -import 'whatwg-fetch' - -locale.use(lang) - -Vue.use(Button) -Vue.use(Form) -Vue.use(FormItem) -Vue.use(Row) -Vue.use(Col) -Vue.use(Table) -Vue.use(TableColumn) -Vue.use(Popover) -Vue.use(Menu) -Vue.use(Submenu) -Vue.use(MenuItem) -Vue.use(Tag) - -Vue.config.productionTip = false - -new Vue({ - el: '#app', - router, - template: '', - components: { App } -}) diff --git a/web/frps/src/main.ts b/web/frps/src/main.ts new file mode 100644 index 00000000000..33cfbd5cbf4 --- /dev/null +++ b/web/frps/src/main.ts @@ -0,0 +1,12 @@ +import { createApp } from 'vue' +import 'element-plus/dist/index.css' +import App from './App.vue' +import router from './router' + +import './assets/custom.css' + +const app = createApp(App) + +app.use(router) + +app.mount('#app') diff --git a/web/frps/src/router/index.js b/web/frps/src/router/index.js deleted file mode 100644 index 394be1db97b..00000000000 --- a/web/frps/src/router/index.js +++ /dev/null @@ -1,43 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' -import Overview from '../components/Overview.vue' -import ProxiesTcp from '../components/ProxiesTcp.vue' -import ProxiesUdp from '../components/ProxiesUdp.vue' -import ProxiesHttp from '../components/ProxiesHttp.vue' -import ProxiesHttps from '../components/ProxiesHttps.vue' -import ProxiesStcp from '../components/ProxiesStcp.vue' -import ProxiesSudp from '../components/ProxiesSudp.vue' - -Vue.use(Router) - -export default new Router({ - routes: [{ - path: '/', - name: 'Overview', - component: Overview - }, { - path: '/proxies/tcp', - name: 'ProxiesTcp', - component: ProxiesTcp - }, { - path: '/proxies/udp', - name: 'ProxiesUdp', - component: ProxiesUdp - }, { - path: '/proxies/http', - name: 'ProxiesHttp', - component: ProxiesHttp - }, { - path: '/proxies/https', - name: 'ProxiesHttps', - component: ProxiesHttps - }, { - path: '/proxies/stcp', - name: 'ProxiesStcp', - component: ProxiesStcp - }, { - path: '/proxies/sudp', - name: 'ProxiesSudp', - component: ProxiesSudp - }] -}) diff --git a/web/frps/src/router/index.ts b/web/frps/src/router/index.ts new file mode 100644 index 00000000000..c234b9e5e8a --- /dev/null +++ b/web/frps/src/router/index.ts @@ -0,0 +1,51 @@ +import { createRouter, createWebHashHistory } from 'vue-router' +import ServerOverview from '../components/ServerOverview.vue' +import ProxiesTCP from '../components/ProxiesTCP.vue' +import ProxiesUDP from '../components/ProxiesUDP.vue' +import ProxiesHTTP from '../components/ProxiesHTTP.vue' +import ProxiesHTTPS from '../components/ProxiesHTTPS.vue' +import ProxiesSTCP from '../components/ProxiesSTCP.vue' +import ProxiesSUDP from '../components/ProxiesSUDP.vue' + +const router = createRouter({ + history: createWebHashHistory(), + routes: [ + { + path: '/', + name: 'ServerOverview', + component: ServerOverview, + }, + { + path: '/proxies/tcp', + name: 'ProxiesTCP', + component: ProxiesTCP, + }, + { + path: '/proxies/udp', + name: 'ProxiesUDP', + component: ProxiesUDP, + }, + { + path: '/proxies/http', + name: 'ProxiesHTTP', + component: ProxiesHTTP, + }, + { + path: '/proxies/https', + name: 'ProxiesHTTPS', + component: ProxiesHTTPS, + }, + { + path: '/proxies/stcp', + name: 'ProxiesSTCP', + component: ProxiesSTCP, + }, + { + path: '/proxies/sudp', + name: 'ProxiesSUDP', + component: ProxiesSUDP, + }, + ], +}) + +export default router diff --git a/web/frps/src/utils/chart.js b/web/frps/src/utils/chart.js deleted file mode 100644 index a8246c0ad93..00000000000 --- a/web/frps/src/utils/chart.js +++ /dev/null @@ -1,186 +0,0 @@ -import Humanize from "humanize-plus" -import echarts from "echarts/lib/echarts" - -import "echarts/theme/macarons" -import "echarts/lib/chart/bar" -import "echarts/lib/chart/pie" -import "echarts/lib/component/tooltip" -import "echarts/lib/component/title" - -function DrawTrafficChart(elementId, trafficIn, trafficOut) { - let myChart = echarts.init(document.getElementById(elementId), 'macarons'); - myChart.showLoading() - - let option = { - title: { - text: 'Network Traffic', - subtext: 'today', - x: 'center' - }, - tooltip: { - trigger: 'item', - formatter: function(v) { - return Humanize.fileSize(v.data.value) + " (" + v.percent + "%)" - } - }, - series: [{ - type: 'pie', - radius: '55%', - center: ['50%', '60%'], - data: [{ - value: trafficIn, - name: 'Traffic In' - }, { - value: trafficOut, - name: 'Traffic Out' - }, ], - itemStyle: { - emphasis: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - }] - }; - myChart.setOption(option); - myChart.hideLoading() -} - -function DrawProxyChart(elementId, serverInfo) { - let myChart = echarts.init(document.getElementById(elementId), 'macarons') - myChart.showLoading() - - let option = { - title: { - text: 'Proxies', - subtext: 'now', - x: 'center' - }, - tooltip: { - trigger: 'item', - formatter: function(v) { - return v.data.value - } - }, - series: [{ - type: 'pie', - radius: '55%', - center: ['50%', '60%'], - data: [], - itemStyle: { - emphasis: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - }] - }; - - if (serverInfo.proxy_type_count.tcp != null && serverInfo.proxy_type_count.tcp != 0) { - option.series[0].data.push({value: serverInfo.proxy_type_count.tcp, name: 'TCP'}) - } - if (serverInfo.proxy_type_count.udp != null && serverInfo.proxy_type_count.udp != 0) { - option.series[0].data.push({value: serverInfo.proxy_type_count.udp, name: 'UDP'}) - } - if (serverInfo.proxy_type_count.http != null && serverInfo.proxy_type_count.http != 0) { - option.series[0].data.push({value: serverInfo.proxy_type_count.http, name: 'HTTP'}) - } - if (serverInfo.proxy_type_count.https != null && serverInfo.proxy_type_count.https != 0) { - option.series[0].data.push({value: serverInfo.proxy_type_count.https, name: 'HTTPS'}) - } - if (serverInfo.proxy_type_count.stcp != null && serverInfo.proxy_type_count.stcp != 0) { - option.series[0].data.push({value: serverInfo.proxy_type_count.stcp, name: 'STCP'}) - } - if (serverInfo.proxy_type_count.sudp != null && serverInfo.proxy_type_count.sudp != 0) { - option.series[0].data.push({value: serverInfo.proxy_type_count.sudp, name: 'SUDP'}) - } - if (serverInfo.proxy_type_count.xtcp != null && serverInfo.proxy_type_count.xtcp != 0) { - option.series[0].data.push({value: serverInfo.proxy_type_count.xtcp, name: 'XTCP'}) - } - - myChart.setOption(option); - myChart.hideLoading() -} - -// 7 days -function DrawProxyTrafficChart(elementId, trafficInArr, trafficOutArr) { - let params = { - width: '600px', - height: '400px' - } - - let myChart = echarts.init(document.getElementById(elementId), 'macarons', params); - myChart.showLoading() - - trafficInArr = trafficInArr.reverse() - trafficOutArr = trafficOutArr.reverse() - let now = new Date() - now = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 6) - let dates = new Array() - for (let i = 0; i < 7; i++) { - dates.push(now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate()) - now = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1) - } - - let option = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'shadow' - }, - formatter: function(data) { - let html = '' - if (data.length > 0) { - html += data[0].name + '
' - } - for (let v of data) { - let colorEl = ''; - html += colorEl + v.seriesName + ': ' + Humanize.fileSize(v.value) + '
' - } - return html - } - }, - legend: { - data: ['Traffic In', 'Traffic Out'] - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true - }, - xAxis: [{ - type: 'category', - data: dates - }], - yAxis: [{ - type: 'value', - axisLabel: { - formatter: function(value) { - return Humanize.fileSize(value) - } - } - }], - series: [{ - name: 'Traffic In', - type: 'bar', - data: trafficInArr - }, { - - name: 'Traffic Out', - type: 'bar', - data: trafficOutArr - }] - }; - myChart.setOption(option); - myChart.hideLoading() -} - -export { - DrawTrafficChart, - DrawProxyChart, - DrawProxyTrafficChart -} diff --git a/web/frps/src/utils/chart.ts b/web/frps/src/utils/chart.ts new file mode 100644 index 00000000000..3d7bbbd57e5 --- /dev/null +++ b/web/frps/src/utils/chart.ts @@ -0,0 +1,293 @@ +import * as Humanize from 'humanize-plus' +import * as echarts from 'echarts/core' +import { PieChart, BarChart } from 'echarts/charts' +import { CanvasRenderer } from 'echarts/renderers' +import { LabelLayout } from 'echarts/features' + +import { + TitleComponent, + TooltipComponent, + LegendComponent, + GridComponent, +} from 'echarts/components' + +echarts.use([ + PieChart, + BarChart, + CanvasRenderer, + LabelLayout, + TitleComponent, + TooltipComponent, + LegendComponent, + GridComponent, +]) + +function DrawTrafficChart( + elementId: string, + trafficIn: number, + trafficOut: number +) { + const myChart = echarts.init( + document.getElementById(elementId) as HTMLElement, + 'macarons' + ) + myChart.showLoading() + + const option = { + title: { + text: 'Network Traffic', + subtext: 'today', + left: 'center', + }, + tooltip: { + trigger: 'item', + formatter: function (v: any) { + return Humanize.fileSize(v.data.value) + ' (' + v.percent + '%)' + }, + }, + legend: { + orient: 'vertical', + left: 'left', + data: ['Traffic In', 'Traffic Out'], + }, + series: [ + { + type: 'pie', + radius: '55%', + center: ['50%', '60%'], + data: [ + { + value: trafficIn, + name: 'Traffic In', + }, + { + value: trafficOut, + name: 'Traffic Out', + }, + ], + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)', + }, + }, + }, + ], + } + myChart.setOption(option) + myChart.hideLoading() +} + +function DrawProxyChart(elementId: string, serverInfo: any) { + const myChart = echarts.init( + document.getElementById(elementId) as HTMLElement, + 'macarons' + ) + myChart.showLoading() + + const option = { + title: { + text: 'Proxies', + subtext: 'now', + left: 'center', + }, + tooltip: { + trigger: 'item', + formatter: function (v: any) { + return String(v.data.value) + }, + }, + legend: { + orient: 'vertical', + left: 'left', + data: [], + }, + series: [ + { + type: 'pie', + radius: '55%', + center: ['50%', '60%'], + data: [], + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)', + }, + }, + }, + ], + } + + if ( + serverInfo.proxy_type_count.tcp != null && + serverInfo.proxy_type_count.tcp != 0 + ) { + option.series[0].data.push({ + value: serverInfo.proxy_type_count.tcp, + name: 'TCP', + }) + option.legend.data.push('TCP') + } + if ( + serverInfo.proxy_type_count.udp != null && + serverInfo.proxy_type_count.udp != 0 + ) { + option.series[0].data.push({ + value: serverInfo.proxy_type_count.udp, + name: 'UDP', + }) + option.legend.data.push('UDP') + } + if ( + serverInfo.proxy_type_count.http != null && + serverInfo.proxy_type_count.http != 0 + ) { + option.series[0].data.push({ + value: serverInfo.proxy_type_count.http, + name: 'HTTP', + }) + option.legend.data.push('HTTP') + } + if ( + serverInfo.proxy_type_count.https != null && + serverInfo.proxy_type_count.https != 0 + ) { + option.series[0].data.push({ + value: serverInfo.proxy_type_count.https, + name: 'HTTPS', + }) + option.legend.data.push('HTTPS') + } + if ( + serverInfo.proxy_type_count.stcp != null && + serverInfo.proxy_type_count.stcp != 0 + ) { + option.series[0].data.push({ + value: serverInfo.proxy_type_count.stcp, + name: 'STCP', + }) + option.legend.data.push('STCP') + } + if ( + serverInfo.proxy_type_count.sudp != null && + serverInfo.proxy_type_count.sudp != 0 + ) { + option.series[0].data.push({ + value: serverInfo.proxy_type_count.sudp, + name: 'SUDP', + }) + option.legend.data.push('SUDP') + } + if ( + serverInfo.proxy_type_count.xtcp != null && + serverInfo.proxy_type_count.xtcp != 0 + ) { + option.series[0].data.push({ + value: serverInfo.proxy_type_count.xtcp, + name: 'XTCP', + }) + option.legend.data.push('XTCP') + } + + myChart.setOption(option) + myChart.hideLoading() +} + +// 7 days +function DrawProxyTrafficChart( + elementId: string, + trafficInArr: number[], + trafficOutArr: number[] +) { + const params = { + width: '600px', + height: '400px', + } + + const myChart = echarts.init( + document.getElementById(elementId) as HTMLElement, + 'macarons', + params + ) + myChart.showLoading() + + trafficInArr = trafficInArr.reverse() + trafficOutArr = trafficOutArr.reverse() + let now = new Date() + now = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 6) + const dates: Array = [] + for (let i = 0; i < 7; i++) { + dates.push( + now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ) + now = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1) + } + + const option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow', + }, + formatter: function (data: any) { + let html = '' + if (data.length > 0) { + html += data[0].name + '
' + } + for (const v of data) { + const colorEl = + '' + html += + colorEl + v.seriesName + ': ' + Humanize.fileSize(v.value) + '
' + } + return html + }, + }, + legend: { + data: ['Traffic In', 'Traffic Out'], + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true, + }, + xAxis: [ + { + type: 'category', + data: dates, + }, + ], + yAxis: [ + { + type: 'value', + axisLabel: { + formatter: function (value: number) { + return Humanize.fileSize(value) + }, + }, + }, + ], + series: [ + { + name: 'Traffic In', + type: 'bar', + data: trafficInArr, + }, + { + name: 'Traffic Out', + type: 'bar', + data: trafficOutArr, + }, + ], + } + myChart.setOption(option) + myChart.hideLoading() +} + +export { DrawTrafficChart, DrawProxyChart, DrawProxyTrafficChart } diff --git a/web/frps/src/utils/less/custom.less b/web/frps/src/utils/less/custom.less deleted file mode 100644 index b83a4007466..00000000000 --- a/web/frps/src/utils/less/custom.less +++ /dev/null @@ -1,22 +0,0 @@ -@color: red; - -.el-form-item { - span { - margin-left: 15px; - } -} - -.demo-table-expand { - font-size: 0; - - label { - width: 90px; - color: #99a9bf; - } - - .el-form-item { - margin-right: 0; - margin-bottom: 0; - width: 50%; - } -} diff --git a/web/frps/src/utils/proxy.js b/web/frps/src/utils/proxy.js deleted file mode 100644 index 948e13cd8e8..00000000000 --- a/web/frps/src/utils/proxy.js +++ /dev/null @@ -1,104 +0,0 @@ -class BaseProxy { - constructor(proxyStats) { - this.name = proxyStats.name - if (proxyStats.conf != null) { - this.encryption = proxyStats.conf.use_encryption - this.compression = proxyStats.conf.use_compression - } else { - this.encryption = "" - this.compression = "" - } - this.conns = proxyStats.cur_conns - this.traffic_in = proxyStats.today_traffic_in - this.traffic_out = proxyStats.today_traffic_out - this.last_start_time = proxyStats.last_start_time - this.last_close_time = proxyStats.last_close_time - this.status = proxyStats.status - } -} - -class TcpProxy extends BaseProxy { - constructor(proxyStats) { - super(proxyStats) - this.type = "tcp" - if (proxyStats.conf != null) { - this.addr = ":" + proxyStats.conf.remote_port - this.port = proxyStats.conf.remote_port - } else { - this.addr = "" - this.port = "" - } - } -} - -class UdpProxy extends BaseProxy { - constructor(proxyStats) { - super(proxyStats) - this.type = "udp" - if (proxyStats.conf != null) { - this.addr = ":" + proxyStats.conf.remote_port - this.port = proxyStats.conf.remote_port - } else { - this.addr = "" - this.port = "" - } - } -} - -class HttpProxy extends BaseProxy { - constructor(proxyStats, port, subdomain_host) { - super(proxyStats) - this.type = "http" - this.port = port - if (proxyStats.conf != null) { - this.custom_domains = proxyStats.conf.custom_domains - this.host_header_rewrite = proxyStats.conf.host_header_rewrite - this.locations = proxyStats.conf.locations - if (proxyStats.conf.subdomain != "") { - this.subdomain = proxyStats.conf.subdomain + "." + subdomain_host - } else { - this.subdomain = "" - } - } else { - this.custom_domains = "" - this.host_header_rewrite = "" - this.subdomain = "" - this.locations = "" - } - } -} - -class HttpsProxy extends BaseProxy { - constructor(proxyStats, port, subdomain_host) { - super(proxyStats) - this.type = "https" - this.port = port - if (proxyStats.conf != null) { - this.custom_domains = proxyStats.conf.custom_domains - if (proxyStats.conf.subdomain != "") { - this.subdomain = proxyStats.conf.subdomain + "." + subdomain_host - } else { - this.subdomain = "" - } - } else { - this.custom_domains = "" - this.subdomain = "" - } - } -} - -class StcpProxy extends BaseProxy { - constructor(proxyStats) { - super(proxyStats) - this.type = "stcp" - } -} - -class SudpProxy extends BaseProxy { - constructor(proxyStats) { - super(proxyStats) - this.type = "sudp" - } -} - -export {BaseProxy, TcpProxy, UdpProxy, HttpProxy, HttpsProxy, StcpProxy, SudpProxy} diff --git a/web/frps/src/utils/proxy.ts b/web/frps/src/utils/proxy.ts new file mode 100644 index 00000000000..643ac5218ec --- /dev/null +++ b/web/frps/src/utils/proxy.ts @@ -0,0 +1,138 @@ +class BaseProxy { + name: string + type: string + encryption: boolean + compression: boolean + conns: number + traffic_in: number + traffic_out: number + last_start_time: string + last_close_time: string + status: string + addr: string + port: number + + custom_domains: string + host_header_rewrite: string + locations: string + subdomain: string + + constructor(proxyStats: any) { + this.name = proxyStats.name + this.type = '' + if (proxyStats.conf != null) { + this.encryption = proxyStats.conf.use_encryption + this.compression = proxyStats.conf.use_compression + } else { + this.encryption = false + this.compression = false + } + this.conns = proxyStats.cur_conns + this.traffic_in = proxyStats.today_traffic_in + this.traffic_out = proxyStats.today_traffic_out + this.last_start_time = proxyStats.last_start_time + this.last_close_time = proxyStats.last_close_time + this.status = proxyStats.status + + this.addr = '' + this.port = 0 + this.custom_domains = '' + this.host_header_rewrite = '' + this.locations = '' + this.subdomain = '' + } +} + +class TCPProxy extends BaseProxy { + constructor(proxyStats: any) { + super(proxyStats) + this.type = 'tcp' + if (proxyStats.conf != null) { + this.addr = ':' + proxyStats.conf.remote_port + this.port = proxyStats.conf.remote_port + } else { + this.addr = '' + this.port = 0 + } + } +} + +class UDPProxy extends BaseProxy { + constructor(proxyStats: any) { + super(proxyStats) + this.type = 'udp' + if (proxyStats.conf != null) { + this.addr = ':' + proxyStats.conf.remote_port + this.port = proxyStats.conf.remote_port + } else { + this.addr = '' + this.port = 0 + } + } +} + +class HTTPProxy extends BaseProxy { + constructor(proxyStats: any, port: number, subdomain_host: string) { + super(proxyStats) + this.type = 'http' + this.port = port + if (proxyStats.conf != null) { + this.custom_domains = proxyStats.conf.custom_domains + this.host_header_rewrite = proxyStats.conf.host_header_rewrite + this.locations = proxyStats.conf.locations + if (proxyStats.conf.subdomain != '') { + this.subdomain = proxyStats.conf.subdomain + '.' + subdomain_host + } else { + this.subdomain = '' + } + } else { + this.custom_domains = '' + this.host_header_rewrite = '' + this.subdomain = '' + this.locations = '' + } + } +} + +class HTTPSProxy extends BaseProxy { + constructor(proxyStats: any, port: number, subdomain_host: string) { + super(proxyStats) + this.type = 'https' + this.port = port + if (proxyStats.conf != null) { + this.custom_domains = proxyStats.conf.custom_domains + if (proxyStats.conf.subdomain != '') { + this.subdomain = proxyStats.conf.subdomain + '.' + subdomain_host + } else { + this.subdomain = '' + } + } else { + this.custom_domains = '' + this.subdomain = '' + } + } +} + +class STCPProxy extends BaseProxy { + constructor(proxyStats: any) { + super(proxyStats) + this.type = 'stcp' + } +} + +class SUDPProxy extends BaseProxy { + constructor(proxyStats: any) { + super(proxyStats) + this.type = 'sudp' + } +} + +export { + BaseProxy, + TCPProxy, + UDPProxy, + HTTPProxy, + HTTPSProxy, + STCPProxy, + SUDPProxy, +} diff --git a/web/frps/tsconfig.config.json b/web/frps/tsconfig.config.json new file mode 100644 index 00000000000..424084aa55c --- /dev/null +++ b/web/frps/tsconfig.config.json @@ -0,0 +1,8 @@ +{ + "extends": "@vue/tsconfig/tsconfig.node.json", + "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], + "compilerOptions": { + "composite": true, + "types": ["node"] + } +} diff --git a/web/frps/tsconfig.json b/web/frps/tsconfig.json new file mode 100644 index 00000000000..8d2359999ec --- /dev/null +++ b/web/frps/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@vue/tsconfig/tsconfig.web.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + + "references": [ + { + "path": "./tsconfig.config.json" + } + ] +} diff --git a/web/frps/vite.config.ts b/web/frps/vite.config.ts new file mode 100644 index 00000000000..656ab9ebf61 --- /dev/null +++ b/web/frps/vite.config.ts @@ -0,0 +1,29 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' + +// https://vitejs.dev/config/ +export default defineConfig({ + base: '', + plugins: [ + vue(), + AutoImport({ + resolvers: [ElementPlusResolver()], + }), + Components({ + resolvers: [ElementPlusResolver()], + }), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, + build: { + assetsDir: '', + }, +}) diff --git a/web/frps/webpack.config.js b/web/frps/webpack.config.js deleted file mode 100644 index 6947920524d..00000000000 --- a/web/frps/webpack.config.js +++ /dev/null @@ -1,107 +0,0 @@ -const path = require('path') -var webpack = require('webpack') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var VueLoaderPlugin = require('vue-loader/lib/plugin') -var url = require('url') -var publicPath = '' - -module.exports = (options = {}) => ({ - entry: { - vendor: './src/main' - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: options.dev ? '[name].js' : '[name].js?[chunkhash]', - chunkFilename: '[id].js?[chunkhash]', - publicPath: options.dev ? '/assets/' : publicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': path.resolve(__dirname, 'src'), - } - }, - module: { - rules: [{ - test: /\.vue$/, - loader: 'vue-loader' - }, { - test: /\.js$/, - use: ['babel-loader'], - exclude: /node_modules/ - }, { - test: /\.html$/, - use: [{ - loader: 'html-loader', - options: { - root: path.resolve(__dirname, 'src'), - attrs: ['img:src', 'link:href'] - } - }] - }, { - test: /\.less$/, - loader: 'style-loader!css-loader!postcss-loader!less-loader' - }, { - test: /\.css$/, - use: ['style-loader', 'css-loader', 'postcss-loader'] - }, { - test: /favicon\.png$/, - use: [{ - loader: 'file-loader', - options: { - name: '[name].[ext]?[hash]' - } - }] - }, { - test: /\.(png|jpg|jpeg|gif|eot|ttf|woff|woff2|svg|svgz)(\?.+)?$/, - exclude: /favicon\.png$/, - use: [{ - loader: 'url-loader', - options: { - limit: 10000 - } - }] - }] - }, - plugins: [ - new webpack.optimize.CommonsChunkPlugin({ - names: ['vendor', 'manifest'] - }), - new HtmlWebpackPlugin({ - favicon: 'src/assets/favicon.ico', - template: 'src/index.html' - }), - new webpack.NormalModuleReplacementPlugin(/element-ui[\/\\]lib[\/\\]locale[\/\\]lang[\/\\]zh-CN/, 'element-ui/lib/locale/lang/en'), - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: false, - comments: false, - compress: { - warnings: false - } - }), - new VueLoaderPlugin() - ], - devServer: { - host: '127.0.0.1', - port: 8010, - proxy: { - '/api/': { - target: 'http://127.0.0.1:8080', - changeOrigin: true, - pathRewrite: { - '^/api': '' - } - } - }, - historyApiFallback: { - index: url.parse(options.dev ? '/assets/' : publicPath).pathname - } - }//, - //devtool: options.dev ? '#eval-source-map' : '#source-map' -}) diff --git a/web/frps/yarn.lock b/web/frps/yarn.lock index a0e0bb4e77a..fa607609258 100644 --- a/web/frps/yarn.lock +++ b/web/frps/yarn.lock @@ -2,5472 +2,2697 @@ # yarn lockfile v1 -"@babel/helper-module-imports@7.0.0-beta.35": - version "7.0.0-beta.35" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz#308e350e731752cdb4d0f058df1d704925c64e0a" - integrity sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg== - dependencies: - "@babel/types" "7.0.0-beta.35" - lodash "^4.2.0" - -"@babel/types@7.0.0-beta.35": - version "7.0.0-beta.35" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.35.tgz#cf933a9a9a38484ca724b335b88d83726d5ab960" - integrity sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w== +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^2.0.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== +"@antfu/utils@^0.7.2": + version "0.7.2" + resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.2.tgz" + integrity sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g== + +"@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.20.5": + version "7.20.14" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz" + integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== + +"@babel/core@^7.20.12": + version "7.20.12" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== +"@babel/generator@^7.20.7": + version "7.20.14" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz" + integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== dependencies: - "@types/minimatch" "*" - "@types/node" "*" + "@babel/types" "^7.20.7" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "14.14.22" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" - integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== - -"@vue/component-compiler-utils@^3.1.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" - integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.14" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2" - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ= - dependencies: - acorn "^4.0.3" +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.20.11": + version "7.20.11" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.20.7": + version "7.20.13" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz" + integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.13" + "@babel/types" "^7.20.7" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.16.4", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": + version "7.20.13" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz" + integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== + +"@babel/standalone@^7.20.12": + version "7.20.15" + resolved "https://registry.npmjs.org/@babel/standalone/-/standalone-7.20.15.tgz" + integrity sha512-B3LmZ1NHlTb2eFEaw8rftZc730Wh9MlmsH8ubb6IjsNoIk9+SQ2aAA0nrm/1806+PftPRAACPClmKTu8PG7Tew== + +"@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13": + version "7.20.13" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz" + integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.13" + "@babel/types" "^7.20.7" + debug "^4.1.0" + globals "^11.1.0" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= +"@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: - acorn "^3.0.4" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= +"@ctrl/tinycolor@^3.4.1": + version "3.5.0" + resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz" + integrity sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg== + +"@element-plus/icons-vue@^2.0.6": + version "2.0.10" + resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz" + integrity sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ== + +"@esbuild/android-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" + integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== + +"@esbuild/android-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" + integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== + +"@esbuild/android-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" + integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== + +"@esbuild/darwin-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" + integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== + +"@esbuild/darwin-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz" + integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== + +"@esbuild/freebsd-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" + integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== + +"@esbuild/freebsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" + integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== + +"@esbuild/linux-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" + integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== + +"@esbuild/linux-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" + integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== + +"@esbuild/linux-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" + integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== + +"@esbuild/linux-loong64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" + integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== + +"@esbuild/linux-mips64el@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" + integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== + +"@esbuild/linux-ppc64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" + integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== + +"@esbuild/linux-riscv64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" + integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== + +"@esbuild/linux-s390x@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" + integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== + +"@esbuild/linux-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" + integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== + +"@esbuild/netbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" + integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== + +"@esbuild/openbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" + integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== + +"@esbuild/sunos-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" + integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== + +"@esbuild/win32-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" + integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== + +"@esbuild/win32-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" + integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== + +"@esbuild/win32-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" + integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== + +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@floating-ui/core@^1.1.0": + version "1.1.1" + resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz" + integrity sha512-PL7g3dhA4dHgZfujkuD8Q+tfJJynEtnNQSPzmucCnxMvkxf4cLBJw/ZYqZUn4HCh33U3WHrAfv2R2tbi9UCSmw== -acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= +"@floating-ui/dom@^1.0.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz" + integrity sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw== + dependencies: + "@floating-ui/core" "^1.1.0" -acorn@^5.0.0, acorn@^5.5.0: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" -ajv-errors@^1.0.0: +"@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" - integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= - -ajv-keywords@^3.1.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^4.7.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -ajv@^6.1.0: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - color-convert "^1.9.0" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +"@nuxt/kit@^3.1.1": + version "3.1.2" + resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-3.1.2.tgz" + integrity sha512-m8/AF8hBJiG7aTx2CpiDGeLYYz30fUoPbJ9XiSmHqRIXv1goAFWHSkzWfRNEsoAAbMHf76oB917wVUQ3VSSQHg== + dependencies: + "@nuxt/schema" "3.1.2" + c12 "^1.1.0" + consola "^2.15.3" + defu "^6.1.2" + globby "^13.1.3" + hash-sum "^2.0.0" + ignore "^5.2.4" + jiti "^1.16.2" + knitwork "^1.0.0" + lodash.template "^4.5.0" + mlly "^1.1.0" + pathe "^1.1.0" + pkg-types "^1.0.1" + scule "^1.0.0" + semver "^7.3.8" + unctx "^2.1.1" + unimport "^2.1.0" + untyped "^1.2.2" + +"@nuxt/schema@3.1.2": + version "3.1.2" + resolved "https://registry.npmjs.org/@nuxt/schema/-/schema-3.1.2.tgz" + integrity sha512-wru9LhRXTa6WQlx7c0oYrtvJY7TiVlkBKXY5Rsmfo0StJuWohgZiReu9fu6z6GU4MzZlX25TVjwvq9Q7bNVbSQ== + dependencies: + c12 "^1.1.0" + create-require "^1.1.1" + defu "^6.1.2" + hookable "^5.4.2" + jiti "^1.16.2" + pathe "^1.1.0" + pkg-types "^1.0.1" + postcss-import-resolver "^2.0.0" + scule "^1.0.0" + std-env "^3.3.2" + ufo "^1.0.1" + unimport "^2.1.0" + untyped "^1.2.2" + +"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": + version "2.11.7" + resolved "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" + integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== + +"@rollup/pluginutils@^5.0.2": + version "5.0.2" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rushstack/eslint-patch@^1.1.4": + version "1.2.0" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +"@types/estree@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/humanize-plus@^1.8.0": + version "1.8.0" + resolved "https://registry.npmjs.org/@types/humanize-plus/-/humanize-plus-1.8.0.tgz" + integrity sha512-c7QNInYzgvbrNZvbwI/iYvHDTik/GqONxAvRUqwYF0AjgycoiyELrRR3RrILGXdZcaLt6Y+ds0+gSRQFzc71IQ== + +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/lodash-es@^4.17.6": + version "4.17.6" + resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz" + integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*", "@types/lodash@^4.14.182": + version "4.14.191" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + +"@types/node@^18.11.12": + version "18.11.18" + resolved "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + +"@types/web-bluetooth@^0.0.16": + version "0.0.16" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz" + integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== + +"@typescript-eslint/eslint-plugin@^5.0.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz" + integrity sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ== + dependencies: + "@typescript-eslint/scope-manager" "5.50.0" + "@typescript-eslint/type-utils" "5.50.0" + "@typescript-eslint/utils" "5.50.0" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.0.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz" + integrity sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ== + dependencies: + "@typescript-eslint/scope-manager" "5.50.0" + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/typescript-estree" "5.50.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.50.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz" + integrity sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg== + dependencies: + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/visitor-keys" "5.50.0" + +"@typescript-eslint/type-utils@5.50.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz" + integrity sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ== + dependencies: + "@typescript-eslint/typescript-estree" "5.50.0" + "@typescript-eslint/utils" "5.50.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.50.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz" + integrity sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w== + +"@typescript-eslint/typescript-estree@5.50.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz" + integrity sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow== + dependencies: + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/visitor-keys" "5.50.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.50.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz" + integrity sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.50.0" + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/typescript-estree" "5.50.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.50.0": + version "5.50.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz" + integrity sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg== + dependencies: + "@typescript-eslint/types" "5.50.0" + eslint-visitor-keys "^3.3.0" + +"@vitejs/plugin-vue@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz" + integrity sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA== + +"@volar/language-core@1.0.24": + version "1.0.24" + resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.24.tgz" + integrity sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg== + dependencies: + "@volar/source-map" "1.0.24" + muggle-string "^0.1.0" + +"@volar/source-map@1.0.24": + version "1.0.24" + resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.24.tgz" + integrity sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A== + dependencies: + muggle-string "^0.1.0" + +"@volar/typescript@1.0.24": + version "1.0.24" + resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.24.tgz" + integrity sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A== + dependencies: + "@volar/language-core" "1.0.24" + +"@volar/vue-language-core@1.0.24": + version "1.0.24" + resolved "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.24.tgz" + integrity sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg== + dependencies: + "@volar/language-core" "1.0.24" + "@volar/source-map" "1.0.24" + "@vue/compiler-dom" "^3.2.45" + "@vue/compiler-sfc" "^3.2.45" + "@vue/reactivity" "^3.2.45" + "@vue/shared" "^3.2.45" + minimatch "^5.1.1" + vue-template-compiler "^2.7.14" + +"@volar/vue-typescript@1.0.24": + version "1.0.24" + resolved "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.24.tgz" + integrity sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA== + dependencies: + "@volar/typescript" "1.0.24" + "@volar/vue-language-core" "1.0.24" + +"@vue/compiler-core@3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz" + integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + source-map "^0.6.1" -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== +"@vue/compiler-dom@3.2.45", "@vue/compiler-dom@^3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz" + integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw== + dependencies: + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/compiler-sfc@3.2.45", "@vue/compiler-sfc@^3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz" + integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-ssr" "3.2.45" + "@vue/reactivity-transform" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= +"@vue/compiler-ssr@3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz" + integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ== dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + "@vue/compiler-dom" "3.2.45" + "@vue/shared" "3.2.45" -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +"@vue/devtools-api@^6.4.5": + version "6.5.0" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" + integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" +"@vue/eslint-config-prettier@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz" + integrity sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw== + dependencies: + eslint-config-prettier "^8.3.0" + eslint-plugin-prettier "^4.0.0" + +"@vue/eslint-config-typescript@^11.0.0": + version "11.0.2" + resolved "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.2.tgz" + integrity sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw== + dependencies: + "@typescript-eslint/eslint-plugin" "^5.0.0" + "@typescript-eslint/parser" "^5.0.0" + vue-eslint-parser "^9.0.0" + +"@vue/reactivity-transform@3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz" + integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.45", "@vue/reactivity@^3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz" + integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A== + dependencies: + "@vue/shared" "3.2.45" + +"@vue/runtime-core@3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz" + integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A== + dependencies: + "@vue/reactivity" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/runtime-dom@3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz" + integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA== + dependencies: + "@vue/runtime-core" "3.2.45" + "@vue/shared" "3.2.45" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz" + integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g== + dependencies: + "@vue/compiler-ssr" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/shared@3.2.45", "@vue/shared@^3.2.45": + version "3.2.45" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz" + integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg== + +"@vue/tsconfig@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz" + integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg== -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== +"@vueuse/core@^9.1.0": + version "9.12.0" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.12.0.tgz" + integrity sha512-h/Di8Bvf6xRcvS/PvUVheiMYYz3U0tH3X25YxONSaAUBa841ayMwxkuzx/DGUMCW/wHWzD8tRy2zYmOC36r4sg== dependencies: - object-assign "^4.1.1" - util "0.10.3" + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.12.0" + "@vueuse/shared" "9.12.0" + vue-demi "*" -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +"@vueuse/metadata@9.12.0": + version "9.12.0" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.12.0.tgz" + integrity sha512-9oJ9MM9lFLlmvxXUqsR1wLt1uF7EVbP5iYaHJYqk+G2PbMjY6EXvZeTjbdO89HgoF5cI6z49o2zT/jD9SVoNpQ== -ast-types@0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" - integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= +"@vueuse/shared@9.12.0": + version "9.12.0" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.12.0.tgz" + integrity sha512-TWuJLACQ0BVithVTRbex4Wf1a1VaRuSpVeyEd4vMUWl54PzlE0ciFUshKCXnlLuD0lxIaLK4Ypj3NXYzZh4+SQ== + dependencies: + vue-demi "*" -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: + version "8.8.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -async-validator@~1.8.1: - version "1.8.5" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0" - integrity sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA== +agent-base@6: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: - babel-runtime "6.x" + debug "4" -async@^2.1.2, async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: - lodash "^4.17.14" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^6.3.1, autoprefixer@^6.6.0: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.21.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" -babel-eslint@^7.1.1: - version "7.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" - integrity sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc= - dependencies: - babel-code-frame "^6.22.0" - babel-traverse "^6.23.1" - babel-types "^6.23.0" - babylon "^6.17.0" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-vue-jsx-merge-props@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" - integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" + color-convert "^1.9.0" -babel-loader@^6.4.0: - version "6.4.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca" - integrity sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo= +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - find-cache-dir "^0.1.1" - loader-utils "^0.2.16" - mkdirp "^0.5.1" - object-assign "^4.0.1" + color-convert "^2.0.1" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: - babel-runtime "^6.22.0" + normalize-path "^3.0.0" + picomatch "^2.0.4" -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -babel-plugin-component@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz#9b023a23ff5c9aae0fd56c5a18b9cab8c4d45eea" - integrity sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag== - dependencies: - "@babel/helper-module-imports" "7.0.0-beta.35" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-es2015@^6.13.2: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - integrity sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk= - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -babylon@^6.17.0, babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== +async-validator@^4.2.5: + version "4.2.5" + resolved "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz" + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.1.1, bluebird@^3.4.7: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -bootstrap@^3.3.7: - version "3.4.1" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72" - integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA== + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@~3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== +browserslist@^4.21.3: + version "4.21.5" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" +c12@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/c12/-/c12-1.1.0.tgz" + integrity sha512-9KRFWEng+TH8sGST4NNdiKzZGw1Z1CHnPGAmNqAyVP7suluROmBjD8hsiR34f94DdlrvtGvvmiGDsoFXlCBWIw== + dependencies: + defu "^6.1.1" + dotenv "^16.0.3" + giget "^1.0.0" + jiti "^1.16.0" + mlly "^1.0.0" + pathe "^1.0.0" + pkg-types "^1.0.1" + rc9 "^2.0.0" call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" get-intrinsic "^1.0.2" -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw= - dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30001179" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001179.tgz#7af76065c071b85b1f6aa0cbccd180eb32a71c50" - integrity sha512-YgqeMhTgW75OI7emeIpVTol3E2EQTQJqUJp/R1uA6aYzXOSyvGAGAkadvSdYqB/JPDBkXWwT3fLSxA+AuqttlA== - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" +caniuse-lite@^1.0.30001449: + version "1.0.30001450" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz" + integrity sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew== -chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" -chokidar@^3.4.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + fsevents "~2.3.2" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: - chalk "^1.1.3" + color-name "1.1.3" -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" + color-name "~1.1.4" -clean-css@4.2.x: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= - dependencies: - restore-cursor "^1.0.1" +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== +colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" +convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +create-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: - mimic-response "^1.0.0" + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +csstype@^2.6.8: + version "2.6.21" + resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= - dependencies: - q "^1.1.2" +dayjs@^1.11.3: + version "1.11.7" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" + ms "2.1.2" -color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - color-name "1.1.3" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +defu@^6.1.1, defu@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz" + integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +destr@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/destr/-/destr-1.2.2.tgz" + integrity sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA== -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - color-name "^1.0.0" + path-type "^4.0.0" -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" + esutils "^2.0.2" -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM= - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= - -commander@2.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-anything@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a" - integrity sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g== - dependencies: - is-what "^3.7.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" - integrity sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A== - dependencies: - is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-loader@^0.27.0: - version "0.27.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.27.3.tgz#69ab6f47b69bfb1b5acee61bac2aab14302ff0dc" - integrity sha1-aatvR7ab+xtazuYbrCqrFDAv8Nw= - dependencies: - babel-code-frame "^6.11.0" - css-selector-tokenizer "^0.7.0" - cssnano ">=2.6.1 <4" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.0" - object-assign "^4.0.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.0.0" - postcss-modules-local-by-default "^1.0.1" - postcss-modules-scope "^1.0.0" - postcss-modules-values "^1.1.0" - source-list-map "^0.1.7" - -css-select@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.0: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -"cssnano@>=2.6.1 <4": - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg= - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.1, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^1.2.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -doctrine@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -echarts@^3.5.0: - version "3.8.5" - resolved "https://registry.yarnpkg.com/echarts/-/echarts-3.8.5.tgz#58e4a51d2743c6fb75257b0dc0a9cf9f5378ac0e" - integrity sha512-E+nnROMfCeiLeoT/fZyX8SE8mKzwkTjyemyoBF543oqjRtjTSKQAVDEihMXy4oC6pJS0tYGdMqCA2ATk8onyRg== - dependencies: - zrender "3.7.4" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.2.7: - version "1.3.644" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz#c89721733ec26b8d117275fb6b2acbeb3d45a6b6" - integrity sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw== - -element-ui@^2.3.8: - version "2.15.0" - resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.0.tgz#de9b73a8d1e3e3b50e82b923a5fa95295239bd41" - integrity sha512-9z/1+b7V8fvp08OnKUEW4/BZ72kT+IhuKR9cTMz3XoCTKmEsqLLb32XjbO/DznSFaaiFbOYU93G7WtkvrCAL9A== - dependencies: - async-validator "~1.8.1" - babel-helper-vue-jsx-merge-props "^2.0.0" - deepmerge "^1.2.0" - normalize-wheel "^1.0.1" - resize-observer-polyfill "^1.5.0" - throttle-debounce "^1.0.1" - -elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^3.3.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= +echarts@^5.4.1: + version "5.4.1" + resolved "https://registry.npmjs.org/echarts/-/echarts-5.4.1.tgz" + integrity sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ== + dependencies: + tslib "2.3.0" + zrender "5.4.1" + +electron-to-chromium@^1.4.284: + version "1.4.286" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz" + integrity sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ== + +element-plus@^2.2.28: + version "2.2.28" + resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.2.28.tgz" + integrity sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A== + dependencies: + "@ctrl/tinycolor" "^3.4.1" + "@element-plus/icons-vue" "^2.0.6" + "@floating-ui/dom" "^1.0.1" + "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" + "@types/lodash" "^4.14.182" + "@types/lodash-es" "^4.17.6" + "@vueuse/core" "^9.1.0" + async-validator "^4.2.5" + dayjs "^1.11.3" + escape-html "^1.0.3" + lodash "^4.17.21" + lodash-es "^4.17.21" + lodash-unified "^1.0.2" + memoize-one "^6.0.0" + normalize-wheel-es "^1.2.0" + +enhanced-resolve@^4.1.1: + version "4.5.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + memory-fs "^0.5.0" + tapable "^1.0.0" -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -errno@^0.1.1, errno@^0.1.3: +errno@^0.1.3: version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" -error-ex@^1.2.0: +error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-templates@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" - integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= - dependencies: - recast "~0.11.12" - through "~2.3.6" - -es6-weak-map@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-enough@^0.2.2: - version "0.2.10" - resolved "https://registry.yarnpkg.com/eslint-config-enough/-/eslint-config-enough-0.2.10.tgz#56f133ab86767a9e5b77b74fbcc0ad1859a229e5" - integrity sha512-/ykPXJ4LvoKOp4X1zdT11JmBZ3rki1AN7SiAOUxYRhSM094g+45jfDT4pVnhHcxBz0iJppK10iIERCklrDaQVw== - -eslint-loader@^1.6.3: - version "1.9.0" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13" - integrity sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg== - dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - -eslint@^3.12.2: - version "3.19.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" - integrity sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw= - dependencies: - babel-code-frame "^6.16.0" - chalk "^1.1.3" - concat-stream "^1.5.2" - debug "^2.1.1" - doctrine "^2.0.0" - escope "^3.6.0" - espree "^3.4.0" - esquery "^1.0.0" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.14.0" - ignore "^3.2.0" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.7.5" - strip-bom "^3.0.0" - strip-json-comments "~2.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - -espree@^3.4.0: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esprima@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esquery@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend-shallow@^2.0.1: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.4" + is-array-buffer "^3.0.1" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-set-tostringtag@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: - is-extendable "^0.1.0" + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastparse@^1.1.1, fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-loader@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.1.tgz#815034119891fc6441fb5a64c11bc93c22ddd842" - integrity sha1-gVA0EZiR/GRB+1pkwRvJPCLd2EI= - dependencies: - loader-utils "^1.0.2" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -follow-redirects@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" - integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" - integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -generate-function@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" - integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== - dependencies: - is-property "^1.0.2" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= - dependencies: - is-property "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" - integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^9.14.0, globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -got@^8.0.3: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-loader@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.4.5.tgz#5fbcd87cd63a5c49a7fce2fe56f425e05729c68c" - integrity sha1-X7zYfNY6XEmn/OL+VvQl4Fcpxow= - dependencies: - es6-templates "^0.2.2" - fastparse "^1.1.1" - html-minifier "^3.0.1" - loader-utils "^1.0.2" - object-assign "^4.1.0" - -html-minifier@^3.0.1, html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-webpack-plugin@^2.24.1: - version "2.30.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" - integrity sha1-f5xCG36pHsRg9WUn1430hO51N9U= - dependencies: - bluebird "^3.4.7" - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - toposort "^1.0.0" - -htmlparser2@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -humanize-plus@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/humanize-plus/-/humanize-plus-1.8.2.tgz#a65b34459ad6367adbb3707a82a3c9f916167030" - integrity sha1-pls0RZrWNnrbs3B6gqPJ+RYWcDA= - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^3.2.0: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" - integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34= - dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - figures "^1.3.5" - lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== - dependencies: - call-bind "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-core-module@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-my-ip-valid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== - -is-my-json-valid@^2.10.0: - version "2.20.5" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz#5eca6a8232a687f68869b7361be1612e7512e5df" - integrity sha512-VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A== - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - is-my-ip-valid "^1.0.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-property@^1.0.0, is-property@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= - -is-regex@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk= - dependencies: - html-comment-regex "^1.1.0" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-what@^3.7.1: - version "3.12.0" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz#f4405ce4bd6dd420d3ced51a026fb90e03705e55" - integrity sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -js-base64@^2.1.9: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.4.3, js-yaml@^3.5.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsonpointer@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc" - integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg== - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -less-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" - integrity sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^3.0.0" - -less@^3.0.4: - version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== - dependencies: - copy-anything "^2.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - native-request "^1.0.5" - source-map "~0.6.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-fs-cache@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" - integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== - dependencies: - find-cache-dir "^0.1.1" - mkdirp "^0.5.1" - -loader-runner@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lru-cache@^4.1.2: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -math-expression-evaluator@^1.2.14: - version "1.3.7" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.7.tgz#1b62225db86af06f7ea1fd9576a34af605a5b253" - integrity sha512-nrbaifCl42w37hYd6oRLvoymFK42tWB+WQTMFtksDGQMi5GvlJwnz/CsS30FFAISFLtX+A0csJ0xLiuuyyec7w== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": - version "1.45.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== - -mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== - dependencies: - mime-db "1.45.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3, mime@^2.4.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" - integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +esbuild@^0.16.3: + version "0.16.17" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz" + integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== + optionalDependencies: + "@esbuild/android-arm" "0.16.17" + "@esbuild/android-arm64" "0.16.17" + "@esbuild/android-x64" "0.16.17" + "@esbuild/darwin-arm64" "0.16.17" + "@esbuild/darwin-x64" "0.16.17" + "@esbuild/freebsd-arm64" "0.16.17" + "@esbuild/freebsd-x64" "0.16.17" + "@esbuild/linux-arm" "0.16.17" + "@esbuild/linux-arm64" "0.16.17" + "@esbuild/linux-ia32" "0.16.17" + "@esbuild/linux-loong64" "0.16.17" + "@esbuild/linux-mips64el" "0.16.17" + "@esbuild/linux-ppc64" "0.16.17" + "@esbuild/linux-riscv64" "0.16.17" + "@esbuild/linux-s390x" "0.16.17" + "@esbuild/linux-x64" "0.16.17" + "@esbuild/netbsd-x64" "0.16.17" + "@esbuild/openbsd-x64" "0.16.17" + "@esbuild/sunos-x64" "0.16.17" + "@esbuild/win32-arm64" "0.16.17" + "@esbuild/win32-ia32" "0.16.17" + "@esbuild/win32-x64" "0.16.17" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" - integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA= - -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-request@^1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb" - integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -neo-async@^2.5.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +eslint-config-prettier@^8.3.0: + version "8.6.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz" + integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +eslint-plugin-prettier@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" +eslint-plugin-vue@^9.3.0: + version "9.9.0" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz" + integrity sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ== + dependencies: + eslint-utils "^3.0.0" + natural-compare "^1.4.0" + nth-check "^2.0.1" + postcss-selector-parser "^6.0.9" + semver "^7.3.5" + vue-eslint-parser "^9.0.1" + xml-name-validator "^4.0.0" -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" + esrecurse "^4.3.0" + estraverse "^4.1.1" -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: - remove-trailing-separator "^1.0.1" + esrecurse "^4.3.0" + estraverse "^5.2.0" -normalize-path@^3.0.0, normalize-path@~3.0.0: +eslint-utils@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.22.0: + version "8.33.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz" + integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== + dependencies: + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.3.1, espree@^9.4.0: + version "9.4.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" + estraverse "^5.1.0" -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" + estraverse "^5.2.0" -normalize-wheel@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45" - integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU= +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -npm-run-path@^2.0.0: +estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +estree-walker@^3.0.1: + version "3.0.3" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== dependencies: - boolbase "~1.0.0" + "@types/estree" "^1.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= +fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^1.1.4: - version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" -object-is@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: - isobject "^3.0.0" + reusify "^1.0.4" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - isobject "^3.0.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + flat-cache "^3.0.4" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: - ee-first "1.1.1" + to-regex-range "^5.0.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - wrappy "1" + flatted "^3.1.0" + rimraf "^3.0.2" -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -optionator@^0.8.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + is-callable "^1.1.3" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: - url-parse "^1.4.3" + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== dependencies: - lcid "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" -os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.2.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" -p-finally@^1.0.0: +get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= +giget@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/giget/-/giget-1.0.0.tgz" + integrity sha512-KWELZn3Nxq5+0So485poHrFriK9Bn3V/x9y+wgqrHkbmnGbjfLmZ685/SVA/ovW+ewoqW0gVI47pI4yW/VNobQ== + dependencies: + colorette "^2.0.19" + defu "^6.1.1" + https-proxy-agent "^5.0.1" + mri "^1.2.0" + node-fetch-native "^1.0.1" + pathe "^1.0.0" + tar "^6.1.12" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: - p-try "^2.0.0" + is-glob "^4.0.3" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: - p-limit "^2.0.0" + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: - retry "^0.12.0" + type-fest "^0.20.2" -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: - p-finally "^1.0.0" + define-properties "^1.1.3" -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.1.3: + version "13.1.3" + resolved "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz" + integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +graceful-fs@^4.1.2: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: - no-case "^2.2.0" + get-intrinsic "^1.1.1" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" + has-symbols "^1.0.2" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: - error-ex "^1.2.0" + function-bind "^1.1.1" -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +hookable@^5.4.2: + version "5.4.2" + resolved "https://registry.npmjs.org/hookable/-/hookable-5.4.2.tgz" + integrity sha512-6rOvaUiNKy9lET1X0ECnyZ5O5kSV0PJbtA5yZUgdEF7fGJEVwSLSislltyt7nFwVVALYHQJtfGeAR2Y0A0uJkg== -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: - pinkie-promise "^2.0.0" + agent-base "6" + debug "4" -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +humanize-plus@^1.8.2: + version "1.8.2" + resolved "https://registry.npmjs.org/humanize-plus/-/humanize-plus-1.8.2.tgz" + integrity sha512-jaLeQyyzjjINGv7O9JJegjsaUcWjSj/1dcXvLEgU3pGdqCdP1PiC/uwr+saJXhTNBHZtmKnmpXyazgh+eceRxA== -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +ignore@^5.2.0, ignore@^5.2.4: + version "5.2.4" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== -path-parse@^1.0.6: +inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +inherits@2, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= +internal-slot@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" + get-intrinsic "^1.1.3" + has "^1.0.3" + side-channel "^1.0.4" -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== +is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: - pinkie "^2.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: - find-up "^1.0.0" + has "^1.0.3" -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: - find-up "^3.0.0" + has-tostringtag "^1.0.0" -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" - integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU= +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" + has-tostringtag "^1.0.0" -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14= +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks= +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" + call-bind "^1.0.2" -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0= +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" + has-tostringtag "^1.0.0" -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0= +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - postcss "^5.0.14" + has-symbols "^1.0.2" -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - integrity sha1-uavye4isGIFYpesSq8riAmO5GTI= +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== dependencies: - postcss "^5.0.4" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU= +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: - postcss "^5.0.14" + call-bind "^1.0.2" -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg= +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jiti@^1.16.0, jiti@^1.16.2: + version "1.16.2" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.16.2.tgz" + integrity sha512-OKBOVWmU3FxDt/UH4zSwiKPuc1nihFZiOD722FuJlngvLz2glX1v2/TJIgoA4+mrpnXxHV6dSAoCvPcYQtoG5A== + +js-sdsl@^4.1.4: + version "4.3.0" + resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - postcss "^5.0.16" + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM= - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -postcss-filter-plugins@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" - integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== - dependencies: - postcss "^5.0.4" +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - integrity sha1-U56a/J3chiASHr+djDZz4M5Q0oo= - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" +json5@^2.2.2: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" - integrity sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw= - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" - integrity sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI= - dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" +knitwork@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/knitwork/-/knitwork-1.0.0.tgz" + integrity sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q== -postcss-loader@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-1.3.3.tgz#a621ea1fa29062a83972a46f54486771301916eb" - integrity sha1-piHqH6KQYqg5cqRvVEhncTAZFus= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - loader-utils "^1.0.2" - object-assign "^4.1.1" - postcss "^5.2.15" - postcss-load-config "^1.2.0" + prelude-ls "^1.2.1" + type-check "~0.4.0" -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA= +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg= - dependencies: - postcss "^5.0.4" +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE= +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" + p-locate "^5.0.0" -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k= - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" +lodash-unified@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" + integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE= - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM= - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8= +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" -postcss-modules-extract-imports@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" - integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== dependencies: - postcss "^6.0.1" + lodash._reinterpolate "^3.0.0" -postcss-modules-local-by-default@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -postcss-modules-scope@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + yallist "^3.0.2" -postcss-modules-values@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" + yallist "^4.0.0" -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E= +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: - postcss "^5.0.5" + sourcemap-codec "^1.4.8" -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI= +magic-string@^0.26.7: + version "0.26.7" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz" + integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" + sourcemap-codec "^1.4.8" -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0= +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" + "@jridgewell/sourcemap-codec" "^1.4.13" -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM= - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo= +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: - postcss "^5.0.4" + errno "^0.1.3" + readable-stream "^2.0.1" -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE= - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" + braces "^3.0.2" + picomatch "^2.3.1" -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0= +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" + brace-expansion "^1.1.7" -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0= +minimatch@^5.1.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + brace-expansion "^2.0.1" -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI= +minimatch@^6.1.6: + version "6.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-6.1.6.tgz" + integrity sha512-6bR3UIeh/DF8+p6A9Spyuy67ShOq42rOkHWi7eUe3Ua99Zo5lZfGC6lJJWkeoK4k9jQFT3Pl7czhTXimG2XheA== dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" + brace-expansion "^2.0.1" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.15, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" + yallist "^4.0.0" -postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" +minipass@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz" + integrity sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A== -postcss@^7.0.14: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + minipass "^3.0.0" + yallist "^4.0.0" -prepend-http@^1.0.0: +mkdirp@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +mlly@^1.0.0, mlly@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.1.0.tgz" + integrity sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ== + dependencies: + acorn "^8.8.1" + pathe "^1.0.0" + pkg-types "^1.0.1" + ufo "^1.0.1" -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +mri@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== -pretty-error@^2.0.2: +ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -private@^0.1.6, private@^0.1.8, private@~0.1.5: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +muggle-string@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz" + integrity sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg== -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -prr@~1.0.1: +node-fetch-native@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.0.1.tgz" + integrity sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg== -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" -pump@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= +normalize-wheel-es@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz" + integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw== -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" -punycode@^2.1.0: +nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + wrappy "1" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - safe-buffer "^5.1.0" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" + yocto-queue "^0.1.0" -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" + p-limit "^3.0.2" -read-pkg-up@^1.0.1: +parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" + callsites "^3.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -recast@~0.11.12: - version "0.11.23" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" - integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= - dependencies: - ast-types "0.9.6" - esprima "~3.1.0" - private "~0.1.5" - source-map "~0.5.0" +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: - resolve "^1.1.6" + pify "^3.0.0" -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -reduce-function-call@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" - integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== - dependencies: - balanced-match "^1.0.0" +pathe@^1.0.0, pathe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz" + integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== -regenerate@^1.2.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== +pkg-types@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.1.tgz" + integrity sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + jsonc-parser "^3.2.0" + mlly "^1.0.0" + pathe "^1.0.0" -regexpu-core@^2.0.0: +postcss-import-resolver@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + resolved "https://registry.npmjs.org/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz" + integrity sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw== dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + enhanced-resolve "^4.1.1" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== +postcss-selector-parser@^6.0.9: + version "6.0.11" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + cssesc "^3.0.0" + util-deprecate "^1.0.2" -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= +postcss@^8.1.10, postcss@^8.4.20: + version "8.4.21" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== dependencies: - is-finite "^1.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" -require-from-string@^1.1.0: +prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - integrity sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -require-uncached@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -requires-port@^1.0.0: +prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resize-observer-polyfill@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: - resolve-from "^3.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + fast-diff "^1.1.2" -resolve@^1.1.6, resolve@^1.10.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" +prettier@^2.7.1: + version "2.8.3" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz" + integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -restore-cursor@^1.0.1: +prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= +rc9@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/rc9/-/rc9-2.0.1.tgz" + integrity sha512-9EfjLgNmzP9255YX8bGnILQcmdtOXKtUlFTu8bOZPJVtaUDZ2imswcUdpK51tMjTRQyB7r5RebNijrzuyGXcVA== dependencies: - align-text "^0.1.1" + defu "^6.1.2" + destr "^1.2.2" + flat "^5.0.2" -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== dependencies: - glob "^7.1.3" + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== +readable-stream@^2.0.1: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: - glob "^7.1.3" + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" + picomatch "^2.2.1" -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k= +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: - once "^1.3.0" - -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI= + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= +resolve@^1.10.0, resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - ret "~0.1.10" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -sax@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== +rollup@^3.7.0: + version "3.12.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.12.1.tgz" + integrity sha512-t9elERrz2i4UU9z7AwISj3CQcXP39cWxgRWLdf4Tm6aKm1eYrqHIgjzXBgb67GNY1sZckTFFi0oMozh3/S++Ig== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" + queue-microtask "^1.2.2" -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -selfsigned@^1.10.8: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: - node-forge "^0.10.0" + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +scule@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/scule/-/scule-1.0.0.tgz" + integrity sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ== -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== +semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + lru-cache "^6.0.0" shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shelljs@^0.7.5: - version "0.7.8" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" - integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM= +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + shebang-regex "^3.0.0" -slash@^1.0.0: +shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" - integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.4.7" - -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== - dependencies: - faye-websocket "^0.11.3" - uuid "^3.4.0" - websocket-driver "^0.7.4" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== -source-list-map@^0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" - integrity sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +shell-quote@^1.6.1: + version "1.8.0" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz" + integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + spdx-correct@^3.0.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" @@ -5475,903 +2700,444 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" + version "3.0.12" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +std-env@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz" + integrity sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA== -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== +string.prototype.padend@^3.0.0: + version "3.1.4" + resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz" + integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: - safe-buffer "~5.2.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^4.1.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" + ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -style-loader@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.2.tgz#74533384cf698c7104c7951150b49717adc2f3bb" - integrity sha1-dFMzhM9pjHEEx5URULSXF63C87s= - dependencies: - loader-utils "^1.0.2" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@^3.1.0, supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= +strip-literal@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz" + integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== dependencies: - has-flag "^1.0.0" + acorn "^8.8.2" -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" - integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" - integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8= - dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" - -tapable@^0.2.7, tapable@~0.2.5: - version "0.2.9" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" - integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== - -text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -throttle-debounce@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" - integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg== - -through@^2.3.6, through@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: - setimmediate "^1.0.4" + has-flag "^4.0.0" -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^6.1.12: + version "6.1.13" + resolved "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^4.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= +tslib@2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== -tslib@^1.10.0: +tslib@^1.8.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: - prelude-ls "~1.1.2" + tslib "^1.8.1" -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" - integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + prelude-ls "^1.2.1" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: - commander "~2.19.0" - source-map "~0.6.1" + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" -uglify-js@^2.8.27: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" +typescript@~4.7.4: + version "4.7.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + +ufo@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.0.1.tgz" + integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA== -uglify-to-browserify@~1.0.0: +unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== +unctx@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/unctx/-/unctx-2.1.1.tgz" + integrity sha512-RffJlpvLOtolWsn0fxXsuSDfwiWcR6cyuykw2e0+zAggvGW1SesXt9WxIWlWpJhwVCZD/WlxxLqKLS50Q0CkWA== dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" + acorn "^8.8.1" + estree-walker "^3.0.1" + magic-string "^0.26.7" + unplugin "^1.0.0" -uniq@^1.0.1: +unimport@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unimport/-/unimport-2.1.0.tgz" + integrity sha512-GDVIxATluUquX8EqelT6DtnmnZaXGID1jsO9IXwlnxb0OIEqKAxTOnTlnGmHbseoGTh+ZC9kcNDaO18HYQj9KA== + dependencies: + "@rollup/pluginutils" "^5.0.2" + escape-string-regexp "^5.0.0" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.27.0" + mlly "^1.1.0" + pathe "^1.1.0" + pkg-types "^1.0.1" + scule "^1.0.0" + strip-literal "^1.0.0" + unplugin "^1.0.1" + +unplugin-auto-import@^0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.13.0.tgz" + integrity sha512-nKMxDbkjM4FRPInFfm7sWrJOKgxfKKwb5yLPP+DEGl/SG0/FtBoW1LnZL4PQfx0FXjertoHO1P/5nDf+RSip2Q== + dependencies: + "@antfu/utils" "^0.7.2" + "@rollup/pluginutils" "^5.0.2" + local-pkg "^0.4.3" + magic-string "^0.27.0" + unimport "^2.1.0" + unplugin "^1.0.1" + +unplugin-vue-components@^0.23.0: + version "0.23.0" + resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.23.0.tgz" + integrity sha512-JAJ+BGvjHvi9P7lICwOzDx2Av+OcI6ZTzvySmjXDNGCNVPrt2NQQmbcp7cW027CR1mRugIX5G//awm3doHyqkg== + dependencies: + "@antfu/utils" "^0.7.2" + "@nuxt/kit" "^3.1.1" + "@rollup/pluginutils" "^5.0.2" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.27.0" + minimatch "^6.1.6" + resolve "^1.22.1" + unplugin "^1.0.1" + +unplugin@^1.0.0, unplugin@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz" + integrity sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA== dependencies: - has-value "^0.3.1" - isobject "^3.0.0" + acorn "^8.8.1" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.5.0" -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +untyped@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/untyped/-/untyped-1.2.2.tgz" + integrity sha512-EANYd5L6AdpgfldlgMcmvOOnj092nWhy0ybhc7uhEH12ipytDYz89EOegBQKj8qWL3u1wgYnmFjADhsuCJs5Aw== + dependencies: + "@babel/core" "^7.20.12" + "@babel/standalone" "^7.20.12" + "@babel/types" "^7.20.7" + scule "^1.0.0" -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= +update-browserslist-db@^1.0.10: + version "1.0.10" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3, url-parse@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= - dependencies: - os-homedir "^1.0.0" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" - integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== - -vue-loader@^15.0.10: - version "15.9.6" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz#f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b" - integrity sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg== - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-resource@^1.2.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/vue-resource/-/vue-resource-1.5.1.tgz#0f3d685e3254d21800bebd966edcf56c34b3b6e4" - integrity sha512-o6V4wNgeqP+9v9b2bPXrr20CGNQPEXjpbUWdZWq9GJhqVeAGcYoeTtn/D4q059ZiyN0DIrDv/ADrQUmlUQcsmg== - dependencies: - got "^8.0.3" - -vue-router@^2.3.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.8.1.tgz#9833c9ee57ac83beb0269056fefee71713f20695" - integrity sha512-MC4jacHBhTPKtmcfzvaj2N7g6jgJ/Z/eIjZdt+yUaUOM1iKC0OUIlO/xCtz6OZFFTNUJs/1YNro2GN/lE+nOXA== - -vue-style-loader@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" - integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== +vite@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz" + integrity sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw== dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.1.8: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz#947ed7196744c8a5285ebe1233fe960437fcc57e" - integrity sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg== + esbuild "^0.16.3" + postcss "^8.4.20" + resolve "^1.22.1" + rollup "^3.7.0" + optionalDependencies: + fsevents "~2.3.2" + +vue-demi@*: + version "0.13.11" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== + +vue-eslint-parser@^9.0.0, vue-eslint-parser@^9.0.1: + version "9.1.0" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz" + integrity sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-router@^4.1.6: + version "4.1.6" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz" + integrity sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ== + dependencies: + "@vue/devtools-api" "^6.4.5" + +vue-template-compiler@^2.7.14: + version "2.7.14" + resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz" + integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== dependencies: de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + he "^1.2.0" -vue@^2.5.16: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" - integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg== - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== +vue-tsc@^1.0.12: + version "1.0.24" + resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.24.tgz" + integrity sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg== dependencies: - chokidar "^2.1.8" + "@volar/vue-language-core" "1.0.24" + "@volar/vue-typescript" "1.0.24" -watchpack@^1.3.1: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.1.4: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== +vue@^3.2.45: + version "3.2.45" + resolved "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz" + integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA== dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-sfc" "3.2.45" + "@vue/runtime-dom" "3.2.45" + "@vue/server-renderer" "3.2.45" + "@vue/shared" "3.2.45" -webpack-sources@^1.0.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^2.2.0-rc.4: - version "2.7.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.7.0.tgz#b2a1226804373ffd3d03ea9c6bd525067034f6b1" - integrity sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg== - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^4.7.0" - ajv-keywords "^1.1.1" - async "^2.1.2" - enhanced-resolve "^3.3.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^0.2.16" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^3.1.0" - tapable "~0.2.5" - uglify-js "^2.8.27" - watchpack "^1.3.1" - webpack-sources "^1.0.1" - yargs "^6.0.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-fetch@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= +webpack-virtual-modules@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz" + integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" which@^1.2.9: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" - -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -y18n@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== +zrender@5.4.1: + version "5.4.1" + resolved "https://registry.npmjs.org/zrender/-/zrender-5.4.1.tgz" + integrity sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA== dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - integrity sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw= - dependencies: - camelcase "^3.0.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^6.0.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - integrity sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg= - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -zrender@3.7.4: - version "3.7.4" - resolved "https://registry.yarnpkg.com/zrender/-/zrender-3.7.4.tgz#f847d53948481ef6d42906d1ea9aeec7acbefdf2" - integrity sha512-5Nz7+L1wIoL0+Pp/iOP56jD6eD017qC9VRSgUBheXBiAHgOBJZ4uh4/g6e83acIwa8RKSyZf/FlceKu5ntUuxQ== + tslib "2.3.0" From fe8374e99b708fb40f8ec0ef1f4a513a469a02d6 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 20 Feb 2023 23:52:55 +0800 Subject: [PATCH 043/444] web/frpc: upgrade vue and element-plus (#3322) --- .../535877f50039c0cb49a6196a5b7517cd.woff | Bin 28200 -> 0 bytes .../732389ded34cb9c52dd88271f1345af9.ttf | Bin 55956 -> 0 bytes assets/frpc/static/index-26827c97.css | 1 + assets/frpc/static/index-fec891f3.js | 32 + assets/frpc/static/index.html | 17 +- assets/frpc/static/manifest.js | 1 - assets/frpc/static/vendor.js | 1 - web/frpc/.babelrc | 14 - web/frpc/.eslintrc.cjs | 30 + web/frpc/.gitignore | 30 +- web/frpc/.prettierrc.json | 1 + web/frpc/Makefile | 11 +- web/frpc/README.md | 25 + web/frpc/auto-imports.d.ts | 8 + web/frpc/components.d.ts | 25 + web/frpc/env.d.ts | 1 + web/frpc/{src => }/index.html | 3 +- web/frpc/package.json | 63 +- web/frpc/postcss.config.js | 5 - web/frpc/{src/assets => public}/favicon.ico | Bin web/frpc/src/App.vue | 132 +- web/frpc/src/components/ClientConfigure.vue | 102 + web/frpc/src/components/Configure.vue | 93 - web/frpc/src/components/Overview.vue | 156 +- web/frpc/src/main.js | 52 - web/frpc/src/main.ts | 12 + web/frpc/src/router/index.js | 18 - web/frpc/src/router/index.ts | 21 + web/frpc/src/utils/less/custom.less | 22 - web/frpc/src/utils/status.js | 13 - web/frpc/tsconfig.config.json | 8 + web/frpc/tsconfig.json | 16 + web/frpc/vite.config.ts | 29 + web/frpc/webpack.config.js | 107 - web/frpc/yarn.lock | 7901 ++++++----------- web/frps/README.md | 29 +- 36 files changed, 3044 insertions(+), 5935 deletions(-) delete mode 100644 assets/frpc/static/535877f50039c0cb49a6196a5b7517cd.woff delete mode 100644 assets/frpc/static/732389ded34cb9c52dd88271f1345af9.ttf create mode 100644 assets/frpc/static/index-26827c97.css create mode 100644 assets/frpc/static/index-fec891f3.js delete mode 100644 assets/frpc/static/manifest.js delete mode 100644 assets/frpc/static/vendor.js delete mode 100644 web/frpc/.babelrc create mode 100644 web/frpc/.eslintrc.cjs create mode 100644 web/frpc/.prettierrc.json create mode 100644 web/frpc/README.md create mode 100644 web/frpc/auto-imports.d.ts create mode 100644 web/frpc/components.d.ts create mode 100644 web/frpc/env.d.ts rename web/frpc/{src => }/index.html (50%) delete mode 100644 web/frpc/postcss.config.js rename web/frpc/{src/assets => public}/favicon.ico (100%) create mode 100644 web/frpc/src/components/ClientConfigure.vue delete mode 100644 web/frpc/src/components/Configure.vue delete mode 100644 web/frpc/src/main.js create mode 100644 web/frpc/src/main.ts delete mode 100644 web/frpc/src/router/index.js create mode 100644 web/frpc/src/router/index.ts delete mode 100644 web/frpc/src/utils/less/custom.less delete mode 100644 web/frpc/src/utils/status.js create mode 100644 web/frpc/tsconfig.config.json create mode 100644 web/frpc/tsconfig.json create mode 100644 web/frpc/vite.config.ts delete mode 100644 web/frpc/webpack.config.js diff --git a/assets/frpc/static/535877f50039c0cb49a6196a5b7517cd.woff b/assets/frpc/static/535877f50039c0cb49a6196a5b7517cd.woff deleted file mode 100644 index 02b9a2539e425a7a8c244faba92527602be76212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28200 zcmY(IQ*>obw1wkzY}@FV9ou%twr$%sPI!WjZQD-Aw(aEhfA7;>W6ZI?HTS9-^|Y(@ zDt85OaS%|De_=-r0{7o@E#?36|M>rhgo>Il2ngtpe=h4k3DwAvi$RS|K+0p zq|S#a)oE;N=LIoGXa4i@|K$Y#L=L?Lk!4});_=Vx{g-2afIyi18w6rwZ~R}~Ul0&5 zw*TZCR$*Xk=<#nZQ}}=$p z3j%@wci;?(=aFMWSW#Pr zM-sk`m0uq8xYb`Cmsw(7J!k}vp6qi1VS~jP7&6A5mE-EG{5)pI7l~c<3JjAJf7Ao{ z%?06O$C!E2hN3FRmRCu5Ow%tiyBh2ns`-x@zc75e`(i)8rv=+je8;kh-i@>exF|8Zoy0d%E ze^yR-Rn9=!jEdV-)~sl5yJK;fvbNWAZT=0qvKdpinc}dSaI={~ycm_gm}Gd^0er~R z)M9-DIXmj{IvSw8>#@8WklyP7dhek4qeA$TB>3Zo_|qu(V@mi_%=j`yUn2T(`yTQ; zqHm61jJ91ll zVp~T9dV8jNyJ~v-x_ZZaTgTx12W0$5X#9t){Ks&gcFBydQ8lk&_OJ3ir{DE4*RO$x zAEV#D`xGh<%>8yX{Px|y4AcrzlvS)!*GlBewa-%DN&>&QaZ`s&q%5_vQjbc+EH$-K z*`?3tfsOQ+56~*ljNeyZ-{0)jU)J+W*Qx@kC-zG!MBuUtn9Q>kDG@^I6k_nrv_eJ^ zr!eGUS$Sec8K>psVcB^KMj>irsAO_8bj;%w8dybgGtA7x529$sax)yv(+??V`*Jfp z%zY0BXlQacg0d_npv(DUULP)9)=1cYE2euqQ_K9?BF>tg?x+Ykm43d!xh;gizD4>E3L9epi+%` zorRj_F_Y3X_zqm8;Ac8yye*)KjEtAfl=ZQZHs3>2kw*h$p=Q5Krfd!#1JS9vnGU&7 zfF@M)DYt{^z(%TWmP7vArgG2-ds$sUA8RYfJsuSSWEnX*Av#u9sN1e`z6c^&K4Cge zcG$Z9MfyPnU>b>f)?3)i>LTwTBM_0)kG%=yHoH7MVp|SD?8ESk)+n{SX%tt*Ke0(x zPJEfe6<2d)(auCyWhU`aHdbPp)0JqocQMFBM1?3RR(48~gTs}4b#O7wL`B6uX-XDB znuF7oX0?B@!bC=;C#gzSPNtc|m0@*wvD-vj1u6MbHdeNo)0K6#Z*l%03)oG$!otqk z)?7X?<|=C|@5c7Xy*jpdbI=Z~rdnZb;&1CN{~kk-l?m9GZG;((l|2vG_}hp!DkmEq zcww`KXo9s6Ma;>53FE}NP*2>E#R1jUW@($SDccde(cdUIdIh8xwzJftI8X=r3ftLg z(H?LBr-bdSwHOcFfCM6T_F8NQh(KGBD+?{I19@PV$d!#2{{aIKLG+2Kiln~O5-YJw z7B2F_c1`-A8n`5SWwxepa0R3gyE0r;J;(#Pid~tmX&!6=hs3Uo*Ypm$ff(Xf=4-|W zUqDlFLW4DngFs-DIHAd!?Li+9Qi9NE&FP>3s3t*Zw&s4Y3oMZ!G+gsJNCZAg5Sp$9 z9?Sv7Bngez!VcT#(v7JXLXJ@ z){p&>^Um%ZZtNVhmcz^GoNgQ*JD2Oo>FjHq9mA8;&g~p)TpP=ld(Z70YCIUzmdnoT zoNBxpTbJVjbPhDWjPb~=13D*MAQRlPuR!kz7fc1WtlLpW-(^?8JbO;4hVkq?4_ z+Ce^}E@}x#*;jCPC<`S*{8sH;qa(5_(66nhh$H|eU2+ru1zTZ$%Xa0_QrTx%u3ne6 z1aLV{c&<^Gsf1uTcLc6Mm)!(~Y&!y{vePq?@XRYBr`A(cQi%*ZQm5imZc>TND{`mC zQzOz5?6XIF>!kv~e&tCnzJ1Br2aI~fG{E8?Nc{u<;fe`bD(!M^|ESc8`%~*cP6rd8;|6V2x@2uxge@=KyBC$ zi|`bR5K!rXMgz%-+SGYrU?UxdcEKn0MB{=ow_;1K8@Ik?DUSk+>#z`~?)SGAcL>qe+6j#(>P6M{$6J#k$uU#{R z-s{lpIh;j{n>TN#5M7|;A&LN1S5Gb5Z@ugDY*&{Z*Za%xtn`OuARbR}-%5Hcw^6D#e_2aE~PSe-7MjKb4wJ!33 z(UO00wX^f|aZYJ;{}Bj8$PK4MAY^41k{Y=@QXe(UE}6SS=V6B{B+j9W3ZjN_70#Z8 ze2jW9VXfX0r9)+Z(b4nQx^_;mAkB;{k(_6jbV@{qX~iG>E99ftViOjF*0<}%b3h6d zC08EgJC5_Dkaga%63kZv-zn>M`Ou=?caQ$DJnbbILNgE&t0i--sRVb;I1yO|gu@g*36P2j+4 z$rd6RhpMY$mQ__g$Ig_Ja`Ja{6uWErwOlScZqYlvM(_P_qf)zCTaw)CYQE%s+LMfJ zO(DqM#Jk1j^Keb=>NVQmtFrGoY7?~~*~lS_J>!F28Wfa^A*0z0~`fAN#`t$O( zy5#bxO@mI$t3XMB(*Hh|_>>5ttM0ut`nW@*>ho}!zRS2f%-)y?R=n(3%CY7b>2HW0 zCUP6(X*34R>aaC4FSNhlme{6B#*|YG*;4IPqOqi^{9uphXu)g*6Y$FZ#CSX5$hO04 zZU*T?ERi_mnCy)SKN=OGnQ>#f$!CTI1e2`d>hc19*rtTV5s|VX@nJl)Pv5uK&OE*C z2}Rqb)wQTiw>;sRpVIZU*2EQKPBn@bUhDwoj(VmS);oLJRz%?2cgi;DITjQfPMYJP z9^Xh!_U@qI91`~QR@CE9>JuHaWgcc7BV$9UY}Rc!mM{0O9OkJ6@Ggmq$)v@7#%jHJ z^O&i$E|-7tWIgs-KJJGKiiiZ@%CY)9d0#iZn`OkffC>1oHm92#C+lz9xpG&nr#e2+ z-+I*%4~C>LsU*~z8lsnaf9QcXqOu8+iz1{_%JrR$L-Ho-L>)jGrVSTpzS!KnMUDu4 zLX6me!Ucs$j#b);7sfVojBBtp&o>Xk>vF8FizA+D6J5nX4ZS9IUFSSygS3m zHi(kIix6ZDUj9hVGyQyCXIE;>-N_~qDhN_`+%O|_XfCP^MHPtppE@bzt*L~ z{_Q(lz)u=OkiCOy1~;HcrO%BO2{})w&mH<{FMDjjK%GjrLXRo;UFUpHT z`_V1WfO(#mz+cgGdoqeSvoK#0&rT;eTjHl%skfy~wD8zaL3i^tU?zw6p>+kDOji7x z8hy0SzG~Id#U6)C%6=={;CZP9d0tsTFF1M%@Il};%S8x*-z0^({Jv?T@0We8%{ zt78~Q>;b}GCK$nn2BNpX#bnjM#p^EU?MWI@WrnsTFg19NRP0*^x_3_O@X&j`{uqC` z{r%hbmk?^Aoo=Pj)(Y~1tHjQo&fWVP-bzhR;)kT0d*XmoFff}iy||DZgZx9HrtN@3 z+P-6O11*u%vcV@)xhQ+evUSc_zae=(_m0dd5WS$}w=>tqO_QiYW!mtYfEoC(B#Ti<;t7f~Vs`Xf`N(Q6xm^eE#1-Y3 zT`9C(n+;;oh&(htVZ9)uwhNb6b;(19DVsdvkma1^&tG6A&zB78x#Hk)K~rsGyN}!) zx9wwK7$E1wK4Jkg#D5`ckkJc;c?2_q{eF}Fa6Abw?kkh%v}YPF*o^%OfTjr)2 z$vkbnEmR=&8&M&$jC0~!*Ym6b&#$|9B|Y!hvbKqReN7tp^0t3h?W}g^*O{|&PvOMg zcTrz8tDh1(#@i^7%mnu~4w4M>HY}90`0p!7RHkNc1Qq%QYCC3{NQ{#s=%MxFPi3MS zK2LI(i z(`8yUH)YgFb&}h^?X6Bl@$9z#CE%CFDD1HyUwt53(s%%XTQk=PDj$I+<3m2j04g7V zK1-lDff@BEtPFbqwk`Va&~NmDnKTb_t?sju3!#(DH0!!si*51vbd2e>-1O@VEYpJc zl#{y);fp(%@o1u2l3xB{gdtZ$pr~zZ!{GMKB~bj&bl2>Pk=+Aw!_>-V29EVv?%XzY z(?~;ZZl;NLyK5+Wy7rlErWAlBa?k>Ca+SQtPb_iwQl46)CwSP%q-18b$FVh8t_zoQ>{liC%y|> z>3YN1WMK@~ch4(H`L`FId5=6X%fZHY)ok;8=}vY*C90)u z#4~^%i>K8bV)&fgE6x)J&6Y0}hWEb}?10!ovua#D?;)*~g1Sena|R;34k7+ZKj_o^ zqny~-?P&K1!ajr|9pYgVhVn1?s{s9U@GIIe+O(p0c|h*iW_Ekc^?J2&i%p%b14^V` zx8b9Gb=%QT`l%w%dAG`|r48S5@AvxP1^YG~zwbgg8|}NIDSG|3qpa=9Fh>iMmqQ_o zZMMl$&wduessya*aOG8E*xi$R9_kNCbZR^4$&wRdHm-TG)Q{`>8^=eVC^1tHbd_K~a&#uAI0o0B&j#&Q(-lfAuW{)0$J z{*(Wj1Qz9hEjHWzJSAhBu?;uh>uJw>x2Lo9V}?i^iD#RfWwx&FAtnuy9kGMxM0WK! zfozwL(_*s5+`Oh-2wQU~2JBM_=(}TD=Pi&2hN)K9!n*^M=^`?WhrW104QIP-=Pjq! zs1?dpG09!Y#1I@R4hGh*$b((^=C0zKD|G%>%kB&;bWKBu9Y=6FYH$*Q3DECN1XEI_ z2~l+T#DHBi@HG5cah5C)tAvRg7|6=fz7wNL=p_CNebNlsr^$Q)9O-ErTL2c21%3=% z~Yzh^L<@QvQuEWJOAZoiMs`StnunB{Qk$O6s5<(>5x|!PFXz_vK4s&@n&dQ3JX ztm)8tC&?Mw?qv}ajGfqu1Vp36g2i{6K4q)EW>i#K{fQ~13R)gfCjNnv49Yj8so)k} zF{!I9f~c7JV!5@mGS`QEg_#go7JAg%O06V>I#S-~@939vONBI64+ih*_qZlZBH(wa zvD9w-iXeQh>dJ^!Hp>T6-F|dfe^9lTxY-dO0Z+#*W@!S&8|n^1Ub0ma6&{eXoPbPQDjVXp&vBq$nSso=nfEl8C1@v${QKYX1*X|(bh!x@idwn@x_4O>f) zyFU7drfQZr4hD^3R$+%arp8raXeOgpI=voJb&KZAxu;Jg!LZb(}BF>+H3<)2NQaWa-&3RTIggc1U@!%Ld+ zN!mDIq?0KE62X58Wedq1S{A7OXhxlvh6YKL1>vWu^)jImVH5KNqYMQvB`HEfiqMG2 z2I0mMT!M6(GBQM%j+BLXP5;nh={SMLxzPJFA{7^5I!f(8vGzlC93d`1<`utY+nwnq?y)207lDC(quzEp0}@ zXJ+Bzk;5ATa+?U!(*kj41&U;nT%8gI0W}m-3QdF!CW(8W@nO6#hE9T5412^e_qP8q zuD{(iJ==-Qi`0J%m3=}YOlq{Xu*M!zQ$kC2;{82s!akY1SJB^gm1CjX?%V38i-F@S zLY&kJ~Q`-)%5q%!j%M*jH4ibKgzNI)6}I-USwsL=m_Eo*+Ruvw%*f zADgLC9jdAOVZ+USQtT@4Fg{jX>@Iq zM0uM8==%J$1iqPUU1ioVJnGllmp@wQmR5#JN6sHi_AvdPO00X%=zPat)y5x{;2{$t z9duj$wQ~LDxP_PL=U3#;k=zMB4L8&1T?IbGo&0?5t~PW&KZ<**>guLulwT z2cd0DA+W8;GxCRIr_z zmL=^hD?{-eW*fjOdcs<73vPggQw#UHm0@GgzU~WY)WZH3fn!y;*yy-4o&MeBc(!+; zqc+{0kB@0mQ8odV<&16ntF!M%lG5om1$qxgjt)9BB$YwCp5c$-vO-!#HE1qz)mCD3 zpdnrwji%lJ_&iTVt9!R1 z;c?NTNdQ}{bGn0&5_uacNCQStRu+W5fTj*HSfEV{N5Nj{sk$~Tb(4$s)FJ zcPPF*ES6TK`a~#(9;jy@`GO#L)76ylI~awK0SYwOzwTu)4wgnTQ|C#1$2@UO#5kJZ zH9u)@uU#C8Z{9YN<+sn`*x)D@;@P>cjFOT@!YJby$Ucld=r68&7Ux*qys4Lg^b2dV zJ8$~Uo^-hP5%uwBr^}j*?{EQuvR*BN+G&%lb=DBInmJtRnWiK)`d&bGPacRRIGDup zOgPW(19eG}Wm=McVrC`jcC(L<7@_lKV`u}lww==$z>%;Hto|m zOc>M%Gcc=YaMOfLa}M6qY1q1iZxZ!JU*q8drrP}9FLxIYEh`V%%{u%J%cJp;oOw1Z z%VJ%=&3BgH$tyVL1S^>XY?xZiS+$321B<-(7mzUC_m>lKjK9s^7YBYG=ZZ~7P4QVT zf6*U(HQ9g9b!CaZWa2(i#i;QP@JhtlJufrLGq2~#N5C?>x1wHx9P|J_ z50`d^P9ddnnTMUDDd-wgC$!gePjPK)O7xpH`n+YYb}@#+a!~TD@Uc7!Py4ZdTM=gc z*Nvn}?G{TX`%ihK@o(0eU>PQY`-p-%k(tBoDQFs#nC9@KuWE6XS}}WjsnLl{h?E)u zpCz?$jGSAJ8wtb$r3etJ5!c~S`IpUM$$ok(>ePzZNv6FcGRStOY+Xqrj}7-d%5RNo zjLZjDuu=(WbQb}Bw~LVj%|%X>cAnUc*?t{`nvZQH0a=~;K(yTcI-+wI0m`Xe18Zxh z$s>O9?LcrR$OV)vTF6jFaxlf<6bH%1-o!}Wmhsv%+qbjr>6jR6yb%cP2 z9j0)DzpY1cHMScsO+3q^a5zkN-mrY+OwcB`>T}atq0ASfYZdod&a^rRX-CT74I>Go z;=nHl14`?yj+>xAFh6yvNPs@l5>GZ85BR$0h%Cb>`pyq@vF>hs-ZVeIuq7gnH`5~u ze&|4g4-n>3uiuOOh0AJ^)C&XNNX_DPPxAvntOwn21~;W^r?9P!qt%qz3%zAv>BA+NgAOpuh81?gt}nnhV;V-* z%Kr`Hg>xFQ)PVm{%xo#>iWGq5T++~H!jNDKYLg<{iI4x@d(9-Ud=j1?mB9 zq0fybLmD}W!;XPaOMBN1#Om4JwQs7@Q~{iM^ca8nNP^XkAL?ZHI3G<;pX5n8_n+fu zYMWc$aY#Ig{;|&z$vYYi_W|Ci7D1ww^jqv3927Hg@@Qc|mP{zsx7hLOY zo+5^^pg7n76HkJ}9*QyYQH`6RVfLCV;SRnm8?(-1{N@L);9S><#dNsrjcOj3j%wn$ z@%KPe$3YasyWj{aJoLQ`m)y zT%OvYm-06wu>0s&ha{x|zLz0>GaSy&Fl0PXdj|qq*PcUf)83-*Qcl+MKC+rbIIP{H z0=~gkWh0w?s4Ma=wz`1Clnx27+r=^?{tf5Bk-{Jt7l*cklel{n<3_BfgfRSoq4V2S z9(R;)xpjfGhK*h8d!g`;b>lqGcohGT4t@EP#S({aMjZE$r0yx8(rY1IF4k|(C8em_ zXsKXQ`wW7+@5mp%m^knyG(d=nGQ>pvhic3B;)2)cSRZf7QT*Dqokvu$+nVLXa<1JmSfM zac@$*tg%_oo5ajpFfH)efc63PGBmtHz(M~C~lUE6q5d8MuSK6YqS$a z=v*P4L~>;yrksG7j*jwvSLBS&c8(eA$c1M#g?)Uc?Sf?GCLt%!-I2J=mMrfhW~cG( zPAZqZ<-_l_!)IVYFt|=Hg2$}<-6i4+y4~-)g!H0Za$rGkn5Whm-{1zrcQFA!djsd> z3(SU~KAaCYk2S6oHTQ&s0lYWP<8e^viV&(42>VKGua{RMWcV9)M;%no2C9otZ9AX% ztArWr!yO>XLul<4k{1mJ&SS3yvs5blIoK@vP~m~PBgFo%sU>hPuis*@H3RED%8qc2 z?|7fP5x=&LdRf#U&zq8Kid>D~KzJ@cQ8`hX`dZq7P@U}xOrX2OU{E+urqwet>~$4J zbvAn3nu3>bHzR#aZyQw~1?z_|@%gkleq^vGglfz;^R#a-KBB`{h@82J47X%d;Vsf{ zUA_@zM?FyH?c`?0(N}(F#1%%wyz_fz(AMeGR{QPlcl>GYWuM))b)(JC$rR1E!ou^P zOlst>YWK}D%k3j>Dk!iCroC#`O>F6NLa@HFSO7H2>f;VO7(LyX(^Y zZ63iW{YtGlHBbQKXPBRZaU-I(Kl3ef*O#9l7GKq?H#Qa=Q z5@+wM%5-}N4+{a;Rr{U#l0hNTZA}P9y8Z&4fIzK)0@-`lr}SaZfg4p!azL>36ZdzP zZ_1VS{xcFCnaOH^zMa;`PoI5_Xh#Dqx->9ZRJHE!t#9v7+66ac4^FY#uaHL(PSz$X z#L5e*a{Zt3mL+;_CDj#nXqGcfH$@g>XJR!N@ub5ka&%FG`+IvbPzU$`Y)3I(pWZv> ztYtk1BGMzxunIEDBS{@0`6#grt&&1v$nIez^f{0kh@6zaIJpVMNuqG|ie^6=CxuYB ztok2yP4F$ccII9nFhtcYA}#UmO^*VY2;P54ZhcJn0y!{BaBz{m+$h3G31H$Ht;(+V7aFgXPuwp|Y(JLiPRh*kvUFOx|0 zATAPBbz6`?LT&f5p^n~z>LY2+p;5^b=khxCBZB8UZAlaHJA$2(>j(;EIonADcS@W9 zGN1GWB_u?9WAYCs1G17!H%MwS&ZkTkZPMbi&o|BHsd~)5ZWgs4I4P4q%G&1W1gx9} zR3ashye80}*_akVx8s-uJHw$c7W%H_RD?_W8)4G|vE*5taVOVm=uhqeo)A%8#oUERPxuJ+?W%65frzV2MP=KhY}=p9nNV_UU+ z&ZmX+e;6jKClkj4JmD0GW6<%D$z+f}2 zInWYK^V4T*->xFQzBbac^#zXEXDBanCszCP^5 z9{Z5Q+1WV>Jz6Bz20;$3V#PhHwc01)r`g02z!i%c8!pIgwX<9QbOBkY#GvHtG|0jcaoT7Q((gKxUO)4jJ=%_fSd^0 zQQ9?9qyb%g&!`|D2JlZ$bxu|@MWa=wGxaoc{}9s@N+z|tc-1=%8f*?;wvI9*+?-i3 z_W`q2>eq#vk>i;9E@YMx@)b7c*vkR#uD#@d-=v*PLmwYg1(7Q&` zNy1n?RwkT33Kn$xLPmYphcK)Y@?(Su;CJE46N22IGD?L+BpZ%c&u#MRMY?1N3ZPrq zU1_NvpAwk*MQVNnMkIX8;s7z~=fls=s{Kypm%qao;GLn1r=1DB0sP0Uhy#{ zxdw&X7?(aKE(>qO3c1l82Ny3UDp1#&AoHgh%7Rg*edgQDj3bPPLxQ2^VT}88Cz_$~ z7l|T7hI}^lsQDH)@n)Zp4V*jzNFf6yG?j_5>;;}D-m?d0Jilzqz6+zJ4&Ls&Q?R^E zynoY$4Nw)|{CZ9_zQ1#{OBVuGIJ~+;BmCt5z8EeD=1c?Tk)Qrn`?)5qg~*yDpo@*|IK>$>@J>Rk0Qy$^|2RKPV^rc%*x-*O^zk3izLp6rQ*0 z_-Q;6`9$wFM9h-?xD4TeVL2sIwBs$TRuDu|ZXMyB1a-xUu|T+kKEZvB$J(%*!(hPv zklS55?~1J%#Y$@Ddw$=*y86|VQ5{V`6Ag@JxPY7D_tIGH*$&G(jK5jV-fafM0+Z&$Czpc&FZzyd4gk68!lrq{D- zDbK(?VbErfa*@lyjZA6%&Y>qeRFpn0(Y$%abiK95(`t4p*Eols$7jTCO>OC>&)x2U zhJX|!uibcD`9}6CbA@u+q}{T)P=(RzjAQBdXLia*ZW(qxBs$c(4a1ujQLwU{ zOa*dG1>Nu#)*MYvRo5X@7HOqTRd>;Z(oLhh;h=>+_6R-7BG+sU>UTNXk~)pErNj_| zE;{XT3Et$9e9kkCGudP2?M@%w5N_oUU-|ngN+K_iJE2o77V1x6(hRhUVE9QfF838@ z{=lO+A@EOJ{?cIZ3pxHxM=UeGzf$8ic2k5{P1mmu+kvm2lAjpwoQ+eq`mM&t;m6m% z|9)v=L?V;O?#K=|Xh(WZRj64XAlY}F1)IvG(Y^1`#<4N&@=L(dsV4x>GR0jau`xn) zFbEgWt71Yk_R#VPz`ds08M@4PL3CtmLN1?qFdBK?pV9`6HFRBNO|H_*3OLu%EdhLg4>1SaC&$>Rhz5x~j-ITEH)7u}#)cl_JTLUSCTX2JqE~&`qSrE={qBo$3 zV=!d>n*Bgp9V697`&EbmvN`lArWKlQu*wRfQ`V0Bo`}_RcXW;w&9!h1_8$?~awY#w5P;59sB}ZW^CyijuN^3whUkJcPNxHsGO%t@!&9SCKZ&6r-lo zSh`_#Q(WaaZpT*B9aym6r_;6EU0dq#%Zq4%^9-|p2uH7h@Wx1Ds+Q@&Gb?=hu2ZNq z*)8HDj}&gI*hU{9qy<0!aLuMWvfHi*tn*36BtyoWXylf>S1P6#)&=s zo@w$HPM<2h(M;h#%51Y;XRs?@+PntWOh-=disri8PIY6!`WMeep{(0KwOg(adkU7- zF(=RS8t7Yx{}D5e;t!~No;H>7yR&+O;g(G*X8IT|sgHvrh_~s@7E}6pA?5xI5>Id* z2j(vBlv#Wt{bq#IwP#-LUgCR;?;ImFNo*6fFHH*)oCi1|E&i$0u1z{r_0-P&uC4?N z0D%C5euZn^UOnhZ;C46eR!En_mojnnCI7JNz-i4VbK_)AUst1DX#1tu?zh;HixSET zRtGi+JqU{oph5%BC*wz+WwmtKKy3_()IQdHLngYh6Ri)u@jy8MCJQSiMMEOkX8!3$ zpz%Z+^q`ywt{tjiM28(JoK&`vuqDt6DV~LN%>e)Hm0GLxmqF)&xhWH(A>4Ya3rdMk z$|;+=!TL7&SAK_1GxRDeFAR$Pe7v=UH;IZHi=>y;a#xk|`Yo-M$8X1Qb*%f(anOjV z`5h90=9Vm5!4!XE)|RzEVZVR}{3iD%t?21$Hbj~-894L_6SYj4MLH$82+ig+II%N? zP}*Nj`8Y&0Ij)IoMFZx8VbVtd-;tp|q7syXp>Z|$<4}u&fKrH-Ik<5o(bJXch*Fvk zO`7wqr4|)j8vA>KHM>qAlvI$Whb!r@p-}|OqZf}e(f7akgcai}nKXXud7BJ^Q&%1D ziKh%EiR%8y+|i@!_Ap9-ilIKkCOc^x`pC0Vm+7vqnV3K0NYuYC`Z#u68in^|T{hzL zR(Os91|t69qnNg>tM2?!1Ju4yj(wX(09@LX^JJGCU@jL`z5%cJ%(b=6{?ac%XPH?{ z|7=8gpM!n`3^SDpdMvGGL6TAf!R$Lbt;83Iy%ZoQr3V)f%hceVs}Gvj?R(_%5=OZG zkjCGqAvqNx%1E8Nc@$79*pye)3iN!JfiV zLF$les_t$V?o4_0W>2OO&N=C+XoRVDDIa~DEUF_k!YRmWMN`v&o?b!RWcYbJLD&{wRKdo78c_Xt)^SZgvExSJk{}~ zc1LoA!j{WIGU;lY+rLY%q90x|a)-AzuB&i`3p4OM9iQ|fDTqxk9k~P54J@53nGLGi z6|~>OR>nR^+PD=z_Jc4}tv{B}u)gofD6?B%`XuBy5ODG4S}W)Ji;x&FZGjSm_!zc9 zdpvroF1@Ws-dxY>%9sTQvtIm~&>xP;(hz5a@eW6jCAfq8VnaW37zJU{U{y7}mG>m> zR#m995+&=^VZ`7nO!b7PZ1c+=%V6$xDE z&A9&iVKMBPOJI2pA?ub&$6_1a?3|>U&w+}TkyT1I?4qmW%&?Gl(bQ|S)5o>vI*SWE z^Eh4(HM%M)7@WUc#=_7;9Eqw2j+^mW)uKmZ4k-Pp3i4LVV~1d^lsoyv?xsBgZ(~ik ze+9=LAjuYi)+@@0=x5YUUe);l@8&EU)k1Zc%_!46@*QbLK*)VRCqbAi#mC+%;rL`t zxnTWm_dHfVBcJsl|GMzX+qQNJp!;b6AAr6Pwiw2ZkR(HwJUz&g_pJs=XjH%a@?D5~ zz-K}busXd`IZcj_^_JnKDC)SHbwbZZ{HVJ`xzulCKla^VzWU+nt=h#JUqS}sxx>GZ zB{o@#uV!uJm9*Pn1Y%2)j43J~*DFF9Ktrb01D^+0FD&kPMzudw&(*6m`7=XyM?z;g z92nPmr_vcqxt+AwRz)mSNGc{2+j1B5YjTai*y~4|D8a(j5)Q&{u|UqmG6kApQ9;}b zI9;J2VqB|UhC`JYX{KClFBs#d!+@O0yIjKfvrT8tgHE^m_2C^}`ZWdCh%mvI&}o6G z`2LYbIvwl;k}WNR7P57G*gCG+6o2y~Q_IJu949ZRe);x1f05&=$b5be8TvUqqt;!; zNAT0%Ah97isDXLo26OgCF*cS?JqPBqR>Cd?1d=Q~bmu`5+FHRDR;`rK4>3)x-kd?Bmx1tYVoRK|sT+ID;L9Dx}^-lW;_}3%* zb`OW`pb2rGC*>7!r!8Oi$Ldw`ZRc%WK9>TbZ6ue%W`u@Ncpe^=i}83IdB31qY9~)q zzoAtt6dlN4NGA6UAx(luO}vR_Pm!7@j>e>ROq9E_fcs-GC}JxIl^MH4x($PwTQgp` zYusc|pJH=&E3YX5MIsBE=*j$!BECe+zJQMacFYE#n}R}EHW_(Vj$JI<1gOU{VP&ZX z$0GDP8Q)z|IeKRkHeqP8iSIA;I=L0@btDVOxvs}A)k*;_R?aHMtxIoX$x=KPkBcw< z^rkU;qWbm&=bJHj1F0_E+ipu}1SpRZXu^lr+Y*uv(m!{vhUjP5j0s?f7J;;Xa6f&z zaH_w}5-Iafg-IDmj9Lm}>pd8+pmDK!)c}Ril&Rc(qSju$v+fQCxfAS*Tx;_SuG2lP zZdHhEbUwx%<@WogclH|oz81@|(LuWeEm!tz;z#;27bLosO{UWX_cyQWHvKnJEq~tE zUX_e*>g^f0*<{|{taN`he@;Qh1}^C?gg@I~kh#0I(8(jTuW|Aw|K@S91sDqAwi(;W z&;hM8omYpu=ar`x4?S*mv483khvyU7_5yPIbWSWuquRSLO|A-NG(p&#=@}P7g{&$s)f?<(~nLM(BVfSMGUpl=J|G6_0eT)0l|`0%u17p{qXG_5}un_}qKy39Da!F83b5)#Q_k zsdMpFsR5W1@k2~j-oI)na;Tls>LXx@mAEzA0;tZcsU}?BrJA1#6Nf}^QnBuPXJ;Im zI9O4K|FHde<RXh%dnq#?Q$dj@l%%TygRLpIvLK}|z3 z{{BQ9$ER=n%Il=((Y#2{qL)I?B$Uwz@%^=QPm#)-g?f`rcM=@Dm?mmEo+*m&qjLtz z|5-t4E{bc}1k^S+W&@sIfF?Jg__1dt@eZ`fR?2DOZeIa-7O_wCXQcqHnL&21x z%uH>0IwN0oxQq2>f{PVKR?DZpYJlppYOC9V8H-T=>benjT7ij))qH=3hPHB#9tKoC1aJzAlVS)90p~v z_Eyw@lh53J!Woa_&%U128LQr}XIw98Cxyr33t8)de^=aawcZI;rsmd^LP-#)V`*~v z2EoOw{VDuv@*s#|LV@!blIM)&y%XeR8H^Z%`*+qBI3jR3H0X-Ebfj%50m5lvk;P^7 zisuYilDo6F^9Ykz#DCYc=6IYo{*F=T>p+8lm_@uS_Wp{xINAe6cU+=DatkOH=*^GD zV~WBMf=jwZLiJ3BQ2Fu-V^;9VFeb(BG9}XfTyNk=8~3}qaxES;NcE2Z;;_=!2a}^n zjZa4aHp_9{BV1OCVxe@9ZED>{R2sC*F{hKhugM%lgs*bD3tz(2_8|Ti_%e$p_oq|a zME0jR`(t!;Iz~XlKtFyX!Rda_~q!Dh=+44tpS7C?BH~Ig< zUT{_}lgu2r(G>$UI;})v%|U~G65$(mTg3uIs+CuJ2OQ~!5AMOkbcri5oAbZDqD*wg zD{NdrLnerBj1w|)X5hLK*^WMV*A7!s!O|$Bl7Q`QI4^ER!1vK(9`MH{8M3tSFcuOT zJ~zFyPF4A=ihgCQrPW)A4FvYBnoGs`R9I=|!bP9<#%RtlDUzm9Gn-4eXBmyB>T}y) zj2O9vFvU9?PgRTjpObkrCr$WDX-y4qN$@M(tnxTBi6GI5KN0=ogfHP)IT zgiSXWeWOZF^M~goG^&F&HRpbMj90$VI7HJKB}DuID2@GAOdX}LFf?gaLvZ?o{a$P7 zvShIk{-@{q>h#>v9}qVYgc}{=csAZEk-|>?T~C2)OVTIs^5M5lgw5cC^x_11WEt_= zr-1c_J*`AZtIZdNc%z0(WP5K~vF1eNN}Xkg4vDy_iDfMIb1z`>mrm-!&^~WWz3_0V zJ>}E7j-HpGXJ&b5MrvhQQ>fa`p}Gf2HRN(C52V)8be_5b=^2cpKW{7A*U{1G)KvUU zun(v}oVAc2g$M0q?u+^(0PJ0xZYve;Mgr@m5U#ES{L3XX$?LNfnKCeuf%WhQ`CKvd ztk5+vR?K|XeZq-AODvO*|4&CRu2}b|oV3+4Mdu}kqmtbjLW&UJF zYCyBAR_W>YOd{F01d`?T)AW%&UKZbXMw{~6ygqzbj}Oc|1Izl>>|cZMH(7pIT13V7 zqsFegTRH!B4)qg{628QJQ$17j<-#?g>;=6XAs+6D;NN0U=JPJPYk{(V3+y&iP{uwGeq<*w(S{5rL1stpVq@yFZ`oX+Af#HF6d>HkX0km(v}3OQ(8Wf9#JR zj<7)Dv{_dsX$FLpC$Cc`_VCl6z!(V3l%|(qwH53^?`2JIE3Nuzw#)8j^AvBAi{n6= z)@5`~Zw6GVJ}{fAqD%RcvC`}ALb&r6FG{4VZ5+lJWp^PQh}@!cY92+0Hd%aQZ&@ef zglV@7tbWqOLf9^X%k>s5$s6rpT?<1wV66_t-{qRDOl{Aeb~`rsPzi*!i`=Ax0iBte zT%b#M(&|$PLt0)r6BvT9Ue7uGMfA3E@-pqhR#bwcmsUtVil?LpB2*_ve1s0a+!HPECKTm3r{ZP7jRd+*NM$`M&5F%V=o1Z z5DRX_-5!$%^E*1plQm%u3kTPDL_$#rAU{1XNAP`8ouLQE;~q)FI!0KRi2pfKH=Zp2 zij+IJ+Ge)ZE-%w zaw^d!Mp`o$^xPEw{gECpxFbJ&wAa|XQ-S*Pnz{%5%{Z`@&~%kLhciAqD@F_HWZKZ$ z*2IXYT$A(t3=$mhi#uWm8d4}7!DH{=A;12eBHTq) zVP3+wN>weaDD>?z2wbo$N2Y|RFmQeB8waJ%RUQ*p@69A^mO0ltG}mG1ah@GJmQ=4Z z{q%Su!~>YV{gTt$ZL6lY*Dp=}VzI+(wUZ%1Y9Fc*Do0FN+2&$+kDj4IUpjLi*b8Mt zoPY0Joy4qXJ?^SpOg>gTl>_yo)b*_@m-(0K=SWcrHOd)KtgubY|9o&c@0f7J^+a(- zVjg)ef+$k7N@Oh))r4B8VQJ|vfX;7%Pa!x2nNU(n1>mpxD54|TO|ya~>Nouy=4-=7HNpn zCA+<<*7PNFi8KY9wRfUFx$SOW4~pcdQQ1nw%k*8tIx!ef^05ClQc_(z3Yn1NhnqCA%xvU ziph=*F1v!_z7xh6h#&7z-aWd#6R&81%HAa{u!gK#XC~$%a^2?%S3RWwm|LnVs4FjL z9;#lraoD_z;2ph!4wj2G>7F|K6EB8aVlk3L$!m?R^{Y{>sA&!48ZsDfC)!n-F!9iM zg6v?(iEzoY$FzwZzDd~Z3&d=ByuK>kziO$s+@-K=kY$Lyw>tt8y0mGuW%;78f2{td z)TpNZLqo)ql-8&)=rJUD4Jie=`(wcHvfh+H+xZE>F>IDD#L#WZ0J&%)RAdv2GF$vn z6K?D^VLVZ19s@?y=?$c29$8R^|NP-3&7*lLktm~KszLPFF^QdA^%&V-S3;+!{nPE0 zf%7w~qp@<8!<~DT&9}NLGsTRP`%nNW7L|ot)Mi?|{_iCRPNYW_g=N%~CW8Q_RA|+L zS3p5#vl@>5Z1v0>X>z-RdpwF^IdR#ogsMG}e{XQMAvMa5@pxivn+wNrR4eJJ3H;v# z{Nh9E8?VQM_6QNp&v%OKXtVMW$GHCqqb*$0F1BFhf|%}lehm5s7Z3WL2zJT>eQ2rY zfpB(?^D}kP&dw1a;n(xyxZA;35$ByYdEDurwy3jn(KMD`5Q;`aNf+5E=L^HS@R#y= zd7R)kBb`J!3f#v_;hj`mjB@5uVI%6QYWX22tJIsdRL^R>C1@rLb0g~28@P!G5TXF0 z$XY{erHZ_34np}b!yrIr@}i@`uNy1U(hQl#9jgb@?J0@e@J#A(h@dEs#ZWJwW(fd9YBR&z~Wjx-$OqK^wLs zlt8~=-mtKnmC5GQL(9gMHRY<^kE94!$pC?pC5%zaeS=WBCIf0bF`*3*xrakc^W!Bc z%r(5sH6Qnqk(AwY*kqIol|5A|Hs}E0ssSFA%Ak0~at%9IN%u0(kE!n0@+Em7)IxNx z+cdk{$ZQ3VDGVSNp(B$u|@=1DBNwa>P$Kc|MW(k)lyoiUQ6iuDxGqhU(?6o+Nh^g zE@+&iN4UQ<5sIX!ekr@Fzx)v?!f^S~jk zO|BN_v}vW+rcHCUxJ+i{n)Xeb<_N>}iGo<*zXH-|I;%P(`B3#Wxk5gqe5vF_uBgg6 zA>js0THCQ6=54cLnKUB$gINmLT{BOCi^RZBabQN0v1Hog;=F0bMP@%I3eU;A$OBHx z8zw$aO>bBx5L{9y^fdJ-tfnZuQ+kKCy(3vaFxyIxv5C6MX8ynmf^;9okaNJ!!OTL_{n)( zyo_E2QrW7PKNVfxG{veEV5$UEY@vdnptvjWm1U=5&!MR>Y9)TPD0pBNGm11BZ|c=B zBr!EKaFIf3syPEv@;jcX;*O26sHmg_r{eo06cznPQPGDKwd)LAAdSr6+$fXABPgoR zCNYGCmzb`GXrLVb*B7Bhw*!SThr57rtvCb~Uk=9v;oRj5xJ3iSRagbU{CNf;heZn~ z*Y#PXGA@5fvEjC({Z_A1kn#zsa3~5}%C|Ygedfp$N{rCy{8&1Nu^+&@Md@azN6b@~ zO_t#D>ZiypD@*?tR)XLW6oC0%R%t7gUMVGboW6B0ii8;+aP91rfR>Ld`4OqHeQk`NX)QglRgR070 z)$P@VlJF;Mvv|^&L${1i+<4@obI$4T%tQ#|A{tBmHRRUlHpe-$L?cznSE1yzb=Za)|t# zSbss{Mx*=_;OG9EO)8hOygv8p@_Jz&4WWC|DlIFCh}h&PCB>A;eXL*9Q9w6C$zhcRXMMes3RZ_K@Flx)p)AW( z`o5LHg=4HzCBBpG=PU%2upEnV~;h{w?l_Q0RP;yH<>2BiyV zjrVfuDI$FU)E^$XbSGawC&OUINLdpT^uU%a2Pi%8f`)f9m1&ewqjzLBK;nwIVpCB| zt%A>2^Md51{AA>jLfc*SAGD^xf081YI8aC_mJNN}+Gnkz{H5)5}fr%wHw0(z+=&`C8YR{1Yz#`Khs=U~j@uP{kyTSki|XjTDbv{Qx|j=+j; zu)y{K^$JbEdvu~d0!X_!;&SDpjA)2-u^3IcS$07QZoiAz3e zG|3M!g0s$KBs*N3zvptVs6@Nzt$~41GvCcL^WD8-(u0~ie>UgAEmkqkym1`5FsunQ z`UVoO8++cVU*2-S+F*XC=beV-E!S8ZOmt!jJOlqqPbNuYizRTLNwg40oBYQXQ~frR zXr1K0iZi6IY^~%NMYCkJ3QlH2LpZthjKNvkH5Y-9?@oQQaU^sT5Xk?T_P5}0)6M39 zS=ol-RQJN4uusgXZ!{Qu=NhSTqHDsh^TL@)sQ4u@+*rr95TdKJ{FoX%) zSuHkspTr#FW~z;v1#Xy8EK$HB6mV-_G=sr_p0tMauN?F9R~7Xyj17KW;GX^XIsRIM zgwr{#hyF0~AW(`@Sg=*IHdfv9F?ULxm{R(a*M)mAN&kyFoFVLD)p*a<80(od+)euw zLd$+gF=83Mm=J%b4tEgh#@RoV>WcVps*ye}kCXg3qpNTtkMmPSzkgIjDK^R^D%IgP zrqPZu0U?6ke<{L(#2N{1@Q?t>8$ANKGoB(oDZzP><@;=gjNmFM`5AIwQS8B50_NQ&ytIqmN&yU)JX$%=Ua_rNmJRMM`HAqMGt1o ze|dp0%(N&1hO2~$@N#fY@a573>f8W_egt#tBS53baLoIH&-VrT3=)}N0H*x5(fDn^ zm147_;!`;RP16iqC$2$Sh%0kq$(S+574%hG%wSt#B<89xO1YXB^yo#4FS-|guL50T z-NPCJKnbHZN)B_c_Q$IZ1?*O6r!e<=EKT6r2U#GR;A5I~)fy2(Q2buMA^u9-4kND~ zFs*joNSa6d8zg!cn;7UC86m~be$`y}Z%2>36_i5qhfh8EYrXgb(oQxzUwHG}<2TPW z$PsbYaOgjde(q(R_{6PW`+>>zx2GQc3z6@??S-xu!`z#XpDR?gBhnog)4;-f^+nQb z?5kre5X%Mhv1BeR7EegP1eYXLz47AW+jC^$;%jrj4lpfhiH(+tzlVSFlQ6H>PXQk^ zvVGPfg3w7^dP6eq^634!c-9|4br{~@-mu8MP+&ym!w!dh*i826^<-aj2WhF7uhHw} zYwBA_2f0*|B3XJcLusaT9sO2@kc^mUE?rk2)8TH8x>!9u*qm5jk`!L=KVVKvtbSIY ztSVP6AYYGbfC-DPllI{*DEQN(JtCP4KwS`nj|0zKERA&@LT`yfou&1iWHvt)C8V!F z*%6a8zzz8ikQ^^Rue2}c;V>cuix-E|CfofGP$G9VL0O}gWsXb$6cgOR06j68C8PxC zjAUy#!9)8MIbJ&tke$SkUJYk=6~=F|`HH&Cg~BRfC%`yag$c}}qQZ2kYR=>-Dq+;= zRVy_ET2U{jOt6IN!3-57|I*Xr4%JyqCQDt&-P3dDq{}-8CI5^DJN#>y;g<%hFLxq` z$uS#4X&8Q(7L-rr52~{wUgcU+@{&KO&YO6Z>jLL;^UAbE|MhIUqE}OK4(=B?C8Fsd z91WpPJkB?y2=M(Vl4Qpz2<26dY3M?RSOU1*Aag~w{+oDQ?1hmyjeE2cV|j;nz^ggjLct&4ySTv2ggKcLJs7#w zC?*MR-wD+FgmrWZn*i%-8Y8@#U)>e(zibuu2Xf!K_RUO7;PFJe%xLM?R z4=RYDVwhCoOS66TI@qpy>e3j_mU8X^_)*ljC{L6CB%-85;Xx%8bA&=Ima>Z+*Je>k zv*|MMq1;&tK9Yx{Aq& zF_u;=r!8cXJ*gHyg%nN{UJc7{hJQVtGKV~*+Z{5e#>)yP^0?NPtl7kjG7(ymHr9DO zbsMz^2Bvt$PCQ4mg_%(HZJ&aMzj!WS2A8EW`X@<^DEUFB{1ULuevM#p9y9q8+mUt0e9^3hRpcS_#b z*9W)A?0CFwds2QE1znQpl;3stq+9JEpB-V(<(EcB;S=(?lzjfc(OG?cWH!8>NWcfU zBMpAwaoAgXyWJWeMAX;JRc!x^6RhTY5$XA+;E#O~)GFxlp{q9~LNhr;p9|v`ib~*D zBB;I)MuRh_iP``lI|WvH1OstT$A z#iEj%{6!^qe7gv!9XPgm>~oft{0u?65#*wwhkB5s{6dtETby@3q8Yj{Y%*LSf=UpK zjv&KuZG2D;6AbUCbow&1n*j|bLP?;~gAX!I<+!Rn#*m=+LbWcJm&@&FwaP|e6~#C- z%!ND%DGMV3)iW5~AjCbTPvz+~J@SKvU(FO< zR=TXz&uB9M02402y*5aZsp$cy|JrKDjof&I5=WkUYG~FrVO?w1bn4noSuH;HpA{b# zR|~jrx`o*xgj~Rr6azU=AO~!Ko^<1C0N<-GPQ3V0QHv+-CE%*H1R6}LXJgU-XQD{E)fp$Ha=zdLSF>P zPlXq+_Fqz>d1^SffaW~+3GYK+BF84PJ-`63@POHsUUgucjI7uzInsCNc8M{PA~tue)00ODY1BIh@>2evGp0}(oHn>Y-8~JHh*gE#_542 zJ?BS*zFB9@i&>kV?OM|wTy@Tnu7ZPzx`(ph(byZ~HO{qLQib9}B(6+KRqRz0KyfFuGF;>IM)+%ok76@p@TW#G!wl5% zcrE?CP!F7ZZp!d(r0GAV4&c^w#njQ+%5opdMNXy_VSC24ZpB_8%IHivt+3@w%!)wS_VfM%4+1A72 zC2N&8FR9`QoxokU3&P|X6lbenKw^kujAl`ToAN5d4ioCcJWHeHVbS_WOUUwhbJK%m z1XKz5;&A`RJd5RF61CZ$u@Vw50x@SOIA>=*YD}gCea>{$az>SPNUBdV5`ZEq5)%a zR)IlCV>FtMM&p!ZOfG|&tkXBO#LjLZc&WFDYmH5@o{?(E{@Bvn0)O)73|{kWvxVv` z#MjiOBmL8z7Is5#l|N`m8cE-zv0GmavB;zI@NFKepo;qI$fa0i`Ifp#%`y*ehyDJl zcy0A)ch=?{h#CSOW}ty4C@*=co)C>u8lavg52VpX9=@fjq-PS1fG=Gxz@3c=Ss+aq zt);1|TrZ3MukC%cDCU8d<{=>yY=J8BCDj1%GW}T1IeD9TcxdR-@UUxmQPP^NMhNqi zvWX25DOou@yvy&MF|$1y^358ZQJ$Lxn49RQ+l;=*W$!3pvm@2p!N#aCp;2Jc5PGte zH-B|dNuv-g4QqFK#i?g5)4a*{cJ#hxiy>Vx5oC%0THJwCh@iKsE9UaB70a;*O5rsX4U-|ah>-*fG}(gfMD?y}ENNs?%I z#jQQ{!wI(|KF2@w^{qSa3bXvKt?u zCyMle8!vl{?q9cVKV>PoXxcls-ulk8uaG0^El8C--(mBDVP)XPq2CRtaxf%~$y_1{ z-Ji`RbAfCi7ZA%-1JKcl!G_(t8wPU^=GLr%r0VJt?PAUAq}9dM(&qeTzaJ9qh5VSt zQ9?_rj3CFmm_G*UcCbfCl887yisK~-6^2)&j+5D)^6!U;fKFX>LX!WJ-}(djSw62B z7Z@ubSoS?kGqs$N#h%SE9!U&DsKWTag}wbm7~M%R*~WbAI8#4P!{g)sUtQN18b=Yv zcV=#HFL%3px4ZWzIon(=m&-M^sYx%_)8$yE7^2pw~M(z(0PQHz`Ma1D?JTp6LU2ljS_NE%1S$GB3gj`hbD1!;47=6Bc%J zJvKLeV>KRMy)iu(Ykt^~B@SP$$5(&md*Fx8T%cc4pd}XtZ9`atG;Jv1!n8H|!r{8W%Z6f{PX-x4d!HMmfj=eJs|CF8G0m2|9FI!%-T)Xa!y4~>AP6zo$Y;5VHZpwIzu1jt%;tybq97uY(uYqc5|){)xYmghlt57vQF zF)yO|l|c7V$$NoikkQQZpj-2uE!n;~IO-u9-qkoxD@CM6BiN2(UT-fxIfZv2Rm*GB zMQF{VOQTEvf6QyyyrU!of&Fv`HgA4EZTv#qGoOhV2s|4IQb_OzlM&ZO?rEbvXR0GU z$B(cGEA|k}$k@!Ty9bEd{Pe{J03A(xgS_qDbkCEgUh&42%}stB@#ctNYriKACLQ>~ z@)aT+34kvn%v&A57b@gRYr0;4_#|cUF!JW`Dj^01U6p*0ss>x~vyYMFT2q_-0G~qu1wflB;BRMZ7yp;;-;X^^r5>tTaGsa#5ab@M1W?MqmX@Af zj_-*tM~Ifz$zeUM5f6vy;=2oUb&G53h~5Z}XqC%;&GNzbbt?tbtf@@mC=Q>=H*kTE}Lf;D7!kJ7(jUxlIIrHlNTtxa8g}72L-7& ze*R8{9W3uLfocV)oM2D#>5RPr3~Dl>SY`~J%{TXLAPxHmB@~HAnWdXPj=I^PzpUQ&yO@A zMb;s8$5h=_UR)!in$b?H<`glse$_D4e$BYfld!*EZQ)vfvo{#{bDsugK`2L3X`mki zKDrkWQ`F%r$h@xZMF%Ac{{wQ1EV4jchr(5|>lzt8V=_7HI+28Isy)_&2$Kmrc>9HO zqf_>`=aV}%GsMDL;+p%@ndAHEyS!LNkEVx|M0mFxQs}+oGmAN*#N}UQrflQI-;)y& zMyt`W+3(K3JUXRDt!yMNt3AhO-sC6yKE#wlW;~JM#~$K!we-fb$l5MQV|Z7sI8*@| zMmf)ACWgN85d#tL&+~vA%#fM@0|g)`)C@5FTH{l|1}FjajT}E=)7&5K<@rzHSp5)949E_&BQ;_m(Q9;UVAWnGbe< zOdTO%H*2{4^402dM+sffV__PK$BM?>-KQ(1V+XEJQzD1LD@G)mkadMjsB-+M>yo({ zg~>Z)J)BGSXh~UTcDt@IsQaUrT=(@$)#oEoUMOQkViTofb9eWRM8*jV>+)rOie80< zzKZJPiHlYDHq-@mCbcJ%xiFLd10vsvod5uMoMT{QU|;~^O#A7&@%%Pl8Ms*(K;Xvn zy=@5k|4bGJ<^~{_gMkSo3IH~J3rYZZoMT{QU|??e-@p*V!Tv7Aupj&&S|GL|0wHK2s3IUDq9Yh1awFO#6eN};_9coYCMKXJ{wH21wkPx`WGI>` z4k=tIqAB1iE-Iud@+(#=z${KIek|ZEDlLL7;4V-uh%V+YBrm=&7%+4&+%Y6E=rT+) zm@@1$WHazINHm-^5;d+h{5DWFpf?sbsyHk-dN}wwHaUhl(mEbGdOEf{06Q!@cstfS zJUoaz+&w@&ay`;M96oM7%0D(glt17=I6!JZ(m@VEK0$s#zCsW}q(bmROhd3k>O@{d zltk=BGDUzz%0?zeU`D`42uCnSSVyKv97tG5m`Kn`8cAA7j!DKz{7O1XY)Yg`;!6xm zI!lgBI!s7RR!n3}a!jsF@J%93kWIW!7*149XimIN@J}*Nc2BrZ^iWPvdQi4e08utk zc2S~Hyiwdz7*aw~h*GXn;8Pk?FjHDnic`W<`cxoPJXCB{npCn>&Q%&!I#p6tdR3ZL z=2kRTh*r8*-d6%wgjeiXMp(vpoMT{QU|^JF=waYv00AZ-<^nvc1-N6DcL<;RKw36VTFd z3Oar}g9NcPGvE9>GalOjuJ8#Dr|X7xVh>$rCvK4Mgq!4h;TE|s+(r*0;STjDVIPl} z3ioi0oD;m(1+zY0ggsp1Rk%TZ6K;~d5Jp zS{~IlHhE%l=j&8wI(G}b-lvh3OhTw_xiz^O1w&EhI@k7hMtN9|ol8_=O{Qk1YDgZ&N>f;9L~!&gC@gWL-y(+L$4F}LSf`QFGFp`{7}wZSi|YQr zXaBR1(W2zUYLenl2rxXWnb)zZJKv+kfzKIJb=*bKEazmTnQT@~O34aEeYT?#QxCAI zy9!J&;GLY+2lX3fKVSxHu>b&goNZPGnB%$;-rs8qZT9WnJt{N0?OvIgnHdyWNz~Yu zPm(t;S7v5rW@ct)W@cvQj^reJ_u714>=|h^8vMr_!AAS*Zv5XLPD6lAgoqF$L5dE# z=%J4RwlKstPQng$aR`TTGETv%B!4>2g0tdmI6KaPbK+b$H_n6e;(RziE`ST-Lbxz4 zf{P-<#c*+40(&@uOX5JcThrk#UOd)Z1 z%ut|21%(<%p|dwfd!7?9=Ip&g?r;ZxG(O9`{Mz4ARdGV;~{t`9)^eG5qKmX zg-7Etcq|@=$KwfjBA$dN<0*J5o`$F68F(h1g=gbAcrKoY=i>!cr9Ls*W(R%Bi@8J<1KhA-iEj19e5|+g?HmUcrV_E_u~WjAU=c-<0JSe zK8BCu6Zj-Pg-_!%_$)q$&*KaDBEEz#<16?ozJ{;k8~7%^g>U0K_%6PO@8bvfA%27( z<0tqjeukgp7x*Q9gVRjg3~vKl8cOM!OBdlrpmVu zcyqL2TBL<43R$aqP%F!<%8b>rHfbq~S!M<6xC6PC)huxot;Af7$3nzPvuYy3S}+~4 zx-LY_r$XyRch0QPr6^PtO*E@TUyHGp6QN1H-kGRTA?)(@Y}^#Z;Dn{#l5;z8OLw^{ z^45rMdwIs2y5sNh)KuBbbDgz&NiK{L+D4|CFx|0?6wOI}JZdzV(w$XuOxG(t>$*o~ zYNe`#PbHs;DjX}7$GJ4qY%g>#?}8w<5Mw)7G33&$z{T1h&=>89xt9jKsPCRYtrrw;1McB~w zaZ?qF&qDXuw5smVe<|xIrz`SoIAVMjkCe5l?6D1*nXEd6Q|(gI^^{-i&Lyd@ z)m-R^Duz!J|IGFxD@&n!tYEryH}YA(WaN|L%t}=a+c>ZJKFjkpb7)0mvZ7)tJ-xkN zTxLD03&urC<;2y#(1Wqm#%4_B*-TOZwW_C!Y%gw!s1!LX693HhI)>uw4c#myPe;s% z5u^4nigTe;s#fdxE^W+&CsSjY&Zt)gT-6K8EpJLu*`DjF%ut7jYGCHlxjt$rCDkUA zWytC7ROPB9S9Rzj(&tihDnVaVTUwN4`pTi*<({j$b@h)36pl@sa70zQl$B%I z2BS;%I|r$tcWt99XJU4+me$HhC+7&una(K$#;}Rl=2K=fcf}GXhJGPeE8N&x^B(AW zo;_aFpY?lP&wDbaDxwlkSGI(z78QX^RSE9w2%r}Fu(;{=g=|a%)^1ew&x-rv)P$Z|yNGau-3Yn#bOGA)s z`umh~MNuWNU~!Aj3A0u+ZWBtUq!E`MQv`8japDPCQIRptr*V6#Z`n++Ia_2d-A(P_ z|48c4*HIlGWKJWQDnVA%hy7LaW`sHEirHST`qmWr;9!9|ez@jZ;5y*j9!^{wgf&}Z z8YFItE|o0V_RxxJk93zDS+Ux1%_8!+ zZcF?5VJLspUofc|(MA}LU2X=pDr1vPwA0)Mj#yVg^m3sX5E|As&F_ZFVUdzd zL-<{iu%+fQ?odH!+aYPH!HNr_xGG(CoQ8r;dL}EGru?|i0=kO6MhtB^sG*nZ?b!I> z_nlxx?z_WuQ=3)NM^!7RgWMrPbJAC9RVwF2&!5yj1azXQoXK4hD42D_i|(W5p!wvC zT1$4@G?37uwAEEu}1ivXw_Ew0$k5g}UvlZr_9Q=nAimZoZ#0BiV8i1AV{W_pk4B za_-#y&T{6Q&pC5u#5iNj!O~1+?Q>SFn(?sl$R8Qwy*N8#$%;vx(*pCJ#PP*AUcF`4 z<~_akAK%NE1=l?jw(q=P+r(ea7-p>UON@Q=;`-)2XP$k|f1GWuX6%Ot7;`xouBhpwX?C)SUdphg(iHviN^u5fPaC+oZByyg zzcGir_f7q&&(e)DJ$j1?Z^B^-Q|K)I@C=^5hPlNNoweg1V@JiY{F0s3u~x9n;1XD%&bKDoboEpUN2MrF6-oYR$*opXHW3A zbla@0Ov?`GugLNv?`hnYFFk$g|LFhf;Qx5w|9Ig4Egpb~F@s1xwMucL{zJ+i<*ztP zlBg9aBqq+Al$UYbz(Np9N_Hsw_3XE^&t%`v{v~@<_vw{-NS~-r*JtUQ^_TQljzYrX zp2OLDvyW$=&3=&myRPVdy;^V3+w?(wj=n|z0p0Tne;nUyU=!FNTh1O}-(t_REPJ1Q z#O=J3ck>-eJD%qdu`2RphD^3XHrtS22XitPq<$$YV;<&ZK32~BEWm=Sf>p9AR?TWy zE#!VZN)yHxBCL@$u_%kNX4Zo5O+>ldSe#8_?W}`!vM$!mdRT%bSudN+rm#LXl}%&) zY=CKOI-9{}B8RisY&M6@W%Jm4wty{Ui`Zhege_&ukoOgAC0oT-vo&ljJBh7h>)FX{ z1KY?pu@u|PPGMWvR(2}e#@;>dJA>_HyV!1aCfmc#Vtd)y>>PG3+sDph=d%mg zh3q1BF}s9a%J#D~yNq4Vu3%TP&#=$3tJnedId+g;4V`x_yN+GY4zbU(FR(AN8`zEP zCU!IQ@-6IE_GR`J_EmNpyPXZOJJ_A&hBCNvisQmsO@jC2iZgHVfIbb z`y=d8_89v%`wn}YeV0AKz6UJu6nmOI!!qny_8j{@TIL1zB72Fw%znULVgJTnWj|#9 z&VI&z&R%10vR|+tvDeuf?8odU>@D_F_Dl9F_BMNm{TdkKH|)3UckDmd@6on8`vdz= z_FwE>_8$8qTKd1)2kcMm&+ISkuk3H^@9abN5&IwZ5B5)XgyopQj&jC1SGdYe+{`W9 z%1gKn+~MF(?&5A<%FDQid%2I7b3YI8AYl?ty8Hj@e@?0Z7xf?fQLSW$BvG%=9+pHn zD*H7_Bqg$UNg`m9y;~AVknGnb5h}_8SrVZyvh0152t#G>mxTVwvJXfi$&&qsB=lL9 zeNYm5FUvk83H_L5AC^QoF8fVM=-Vv&ElKF*Ec=Kg^mmqhR1$hV%RVLvGJs{jEeX`aFvQJ2YtYF#iNrKd1S)gAc$Pbo%N)jXq%RVg$GKFQIkp$_&vd>C_ zoMGALBthb^?Dr)>_OR^pk|2dx_613hM=blIBuFNfeMu5z6w5*a6G2+B><=VCZn5ku zk|4oY_TMByma*)sk|5Ps_J@)n-&poFNsx3b`y)w^c`W<7B+>@iHzYw0vh0r~K_as3 zPb5J$vMekBB1lP={dY-_mn{1;Nsyc@`*TTjRRhE5A5+p3k{!$WT zEzAB&5~ME6zAXvzmu26P1WC-Yzm^1<%(BChAe~wEHdy=3PSoV*S zpdVQFeM!(1Ec<~Z=nR(qlO$*lmi@CN=n5qG}CJ&L0>byRuVKf)9WNbhcmri60|wfLz1A^ncg4?8lLG9NznC7 zZCMG|lV(GFug+(&<4{xB>{IZy-N}h2-DHGiGW3z-XjU9gy{)Mz$Z*kN&-@0 zdaop47N$>@1oXmm^lc*G7^e400-|C1R7t=#OrItRD2M6&l7M%ZJ|GFmhv}LmU?8TW zZxaCxF?~=Ha1qmINdiJ*`W#8XN=%$C$oc5|A0wS4aXzWBN)-Kx<52B?-8V>8m9H z!7+V}Bw#tFuayK;$MlmV0pBrwog^SVrmvR-%*XVTB?0|0eS;+6K&Ee$1VqU6O_G2O znVymal*shWl7JVPPJI;w0l1Rp;VrBXsNx-g5KT8tJAl)koc$VpB zO9HZG`Z5F4NSjT z5-bR&e@PN-38vp7304KuZ!t~oE!6IS$ zkR;e9Ous`CtQ4l-DGBxp(+^96<-+u@NrDZ-^t&X%nqm6gl3>>`{p*ro;V}IkNw9U8 zey=20Jxsq(66_zQ-!BQ45Yr!!1e=KI-;f0Bi0KbXf}O7noJc#raNn{_1zuoK!9_Q~Uvy}(bI(4`Dchfr4`{o_y+bmNpS6be; zwpw>u?Tet0?&9EP|zvGzU_>$A)+~@qrrMW)qdfDxCuXBG?y0rB1GH2P= zvLl|go)^7#?`rRJzE0nry}<+Uf*K3%u7?)Cbm^$*t{ z39So#JFJ9vgzsqxHQX7gi0qBL)mYwmQ{&&84o0KVp{Nnt82fhYugzPVZ*6h6oZNC} z%kYHwgs)Bb^TgE?Gp&nTFKr!eo6vT7+i-ko{6IWAsd3WN?G^3kwEwE3vEvV&3p>Bm z`Cix7t`EBBc7LVE+w)-0k;Kx(P%@CbueY`L!rqT2CnkS(@{gy~O}TK&xBFOMYv1{O zKbtyr>Vc`hnx;+LJMG8)HT}E$Ul~XY+%Pb#^=hYUKc4QM-aq})=}*rnoAI?7AIw}h z^WmBQHMnu`hQaq{bPf13b|ki#C*UOL@?0i7Nv<7VXB#&S0P%CmSXyR!e!HGs(qa zoR40T`@H*i_DcJ!y}eU!>3h}o`2)2JC-a)C+N!HxUGnOZ1q)uSSyH>M?SRc!Y3G;O zY>&AcZLY`cRa@=$$6OJ+>oHq3zxj7I+pB%IOzrJ`)n4`9RW*F_!rB9EwM%MVU9bS} zc(tZxecJ(hrO&36;7gCWY>jxsR(qBGQL$?yf56d<%2W;3cQaXlJlvV+@pMNc;RcJ} zQy%Ct``x@D8taL~dCb$#li@lZ^ticoBKM5p7FK4(cZZb5tR~u?cBwB{(ri{GVpofO&CFrG)O-KK!zO2rL#Xk`i-)!V8+Ry8_ z#ahSvc~2K|5a*L{A{a;{6VX`IVx`ML%4XE!lg$yur9iNbTirMrvs&tSQsJhWo(ayH zDo@`)OjFhk4z5!!ExmH%#zPh5OIEG}Abdry9?Zoy<;{aT`X^OoPQ zS?QfU|JR2r{V%xe5f{%?PjFQCOtjVny`5pa18=I^c!5>jx&GukTAJDywb*8!KX1_) zR`WXJiPx(6xp6NFCqsob;0r+S=x$mvmi$`H5!Z1b>ltJ5i(eaIV%`Hd$VCUQQpfe-p)A@5LAk1g8h zax{t5X0D!4F_aEgRt6Po$t1t)w%c6(NhMZgnBMffbB}zD(|C28qqNkqEzd{KsF$m0 zcwXZ0G-y<_;Nq^%K)D6Agt`dVDVEVHjf1o-=gEHb*d|nq><#4s?sF>v@Oz>q zO&`RDYq5lBQnXoVtTN88YE+t|lT3+NcQZd=UV5_0x@);P_g6)un{yd#`9A~6IVDq7 z76PlIO1$n6?_50Docmr?nDcOzGRr)9aVO8@GIIj^SFG6Um`;s=|3(S#aV*)hmV9$Z zpHYWU9u>Ufgr960`8v42D;bUiyL|qxIJLjED~Z04FXRZjL>i*qi9Raem@4r5!oIM= zJ}5IXnX-qqk1DRZWpK0aaqXN3D(6tvwaKPPg|Vk1Vwx<9GN=5rn~Lh-4@P^4AL5yG zI?eY#vwDZsyLs@aa`j%yc5g*J=k*o*WgKk!j6YT=c5WEJ1$Y8wNuw+^Xq^~*MSbW2 zGs)-TLmp9pI$jI^Z*k**YZFQ0eK+dM7ba;njm!3_<>i53mp{_S{S!G-ALzx32lnlI zpdu9I(Qt<;Qfch1jF>vYI6Q@aP;u2sCtbyVZg|`Ibw*`TGd-wj8BI%T^ru{W_VtQ# z{n@t8uomvJ8RzCpbhWJuCpulLcPPpZ<31zJGpH$1U2bm%4|3u)A;&W6#gMO5!d4++ z(Jb{m0PaJ>K+HyCDjH@0&4NzZoj^YfltRn~t>IYM3QqK?Nw?FZ1QcIsM~r)2##EP= z$2v-VIOTD=tv;91=l1bAX2WhuDyP_U57-wp@dHgtrqr2s2XpVZJRXKH75lKO5j%Y)4znB>z4HF2}wASG^4qaC<+o!G)A|`CUkSP9}Uz1MW}?P?v8(_)XUAWxY@{=ZQNsy$G&4T zUmV{()myq*UN!!St6VkPjQ<|J>M5K4bk1zfJuSD@jg5)MMm~Cd**Z7h|}v5jc6}a33xJv`luoQBh-zXqirwP%)!q|(AWrk8ljTjS~-7himb8gDK4+GekJx+AU53b(~sS7V>P*69Qj zn_j%>rWZ|oTEba+u5yXf<*`c;=43%#0n!70I@2av`f|XWZ zbE$XpjK$5nvfsBuUCoP^?m#g_Ii6SVRA<5)dos$A2zDWVfnY!ZFhQ9j7U+gJ zie(47QT;yglkkt(GMklTbe7U$NeMOhmPslmqb$;r9C zwe{|@U{6CZ7O<9w>kYC zRXyu!x+hJp(ps7lZEZcV=B~!2j%0FCdHodS(GrzgZNV8EjaSca_IfHSxy`Ox&E^ut zX6K4FXE%49(LYDwPNzeyD{r3Wa+CyJlh3OT*|@jL?y`A!Z~L}Ct!SCfO|^~I;F`d2kq$@qHbt_lj6pl<;IepFfYdix7V!GI|VbcMF1vMTqtPU}hD z7QemsMbF`DHaky0lQ*2Ve$~4dU;I#g?Sd3`#3d9DYrn26Jr9IoX zH+Va0h1|{v;SJ3U0Gs%^Oz!=dM0v_mU(s4KVZ-hP*2uz{E#~eWvu5q+Hn+@N7_lzc zyTpClW55i97n2T zS`xobWm2-QWYj_A$BVp>4Mch@3H;rGZ<12$3Fjq56zmfLB!}3DHAJBelF-}Kp#VKC zR)AXcEK+?0M-Ylt;_B%S#Oh*G8e3+C6ay@I$wm7vc9fS_bkqi#>v_}UNXwkey%(9h zZc@{xi|$QPPLDF$rj)bHW*cyZFIZQ_>#CJ6|8o1q3g5fQRmiFGH#0a#xn71>fw@HIXOS8)%rlrQ&7>O3Hg$utVb>lC*VQ~hJuqK8L; z>=MbY80A!l5BTNqdv@C6skJS&tpj&ED$5l6YsMM;MzkkvRy68!P$>b77q`$@ zDer`YQ%Erg^SRIm$c~N!z>anUp9gi^h0`9D^_P0ZtbUTy;I z!j_p%K8>S(xhQ_>DC6@IiFvtaWl5B@A#UBdoNJQrhJpD) zkSh@y8E*1~>GP;zAE5-Wm^DHhAx=i}+|`*#_MlrU!?_G^tcC^LI9+Q_a-M9~@HIn2 z9%W`V)ER0jrKEG|>PF5Rl|BfPVaSuTC`UpWqGDu>Vf05gw6N3@cdF;B8^IkOVnS_3m814EY48(VKeO`&q+tB?Ep6D)j-%o%Wn?dd?-A4P{#9K%9kNnVA zTV7rZx2BZ$x4<5n0r^_VLa2qfw1oP}5~BZIa4N-MsY4dHxjCQMI3PzbPMWliUuHdH zi95Y^?Rh21K{Ge*vNza_L(_Skb!l(!Qofegmn@mwyTo_{AvN6id;QiauC@DCInaQa zC8t|gpTW&%uMKYO%l*OaRw{bua6YG3Y|l5&=GWfd(WOqFqs*UTpOm*l(~uq2&;^rV zFZ9zmxDPGTuRwYwk=q10Bakb91Z>mP1vEi`lW=4wa2vv6N<^&$tOvN-V2VbKKl$R_aj)5D3N}Ps*E?;F zYVR(Sx4hiTOGmCm8eG@8N*q<*+;0BNG%q(+t+SX+mILKoz8g>5hwVP&m)BP)J{K%p zY(J+&%&~3F#-Hdlrd{4@hs}AtE7A}&`OIE?&BsggSE?K(uIpV5k)ZmPGR<4H&N9bp zIpFi%sPFUPod>S}oXe*un`v7?*aU)PNL|RRkadmHvL)zC%F9Z+N~n91A_Ym}i;%fg z$|FrkELQFh_b9Jui%N1cN)~B>^;;o4R0fyI*7cAs2BZuB;X1Dk78|Zs{C&`eVkM~U%BBokl2KhAK_=?2}%P99NO`|MInVeDk5oy#0j6VP# zC8rNGdBJr6RwV%<3?XzWGK+-bAs-2tQuH+|CuBotYk*vou&1A+uZLh&sFnVx8Yg5;V3)9?r_-8pmIQ|l@zf(@TN8QaOT$rTmhU)^u6@GrtHJRkh` zypIZKynuW{L_Zg<4?^#i9;De7xI&4BmbeU1&XquOKf?TPZ0%q(f;uTdBAgU zvxF#{4||Ujx+1n{1H$8vsL#SzTY_FbE7!c-5 zl047w)Vje=-vH(pj6EJ-U$XhxkYI%h>+i4tl_I-?7g z)O~?3oxS|tE1gSbKei;%`o`+XC7aLdTQ>L$UfvX|v6eNI_c}**CqHtTwZeUwEu=*1 zmM(}olPw{|Hf6<}sH^t#iyxb_*m>o>%V#a)%OW$EP2IQIHhIk(zb|j_SZiZV<=iy4 zJdE8ac2$z=V7Bj}U)RFg=wKS8`f~J{f_Isuw=&YDd!i}|O0b2LljtdwG+4}#>`J5o z&LY%;8pcS0uvD4=F-StB`KGUZUF$sUq?oOy!PI&`(7{m#cyNEKDYQQCl-HE~n>Ovg zRM<`Y+q10B#-6&M-)r|ZRw$bdINM0f8~5_v3sdDeZ+S|o=O?Nue!^=4On)L0Ut22WL7cj1NCbjz(;Px z28My;q|X>-^as4waMY_7X{v%Z5;_jb&Ck=y+(croa_58oBL@QyU8-vI<|7$w;|Os6 z#o@!h;7^jji7UIh2o23mc6J;8eeb>8V_3kv_@6%f3zO*=yfy?kS9M7AeQbUJ5kRP* zm2xx2LE*1ck*R)#OF&SZIX;{coXkY=HhyhihwI1zSI54u8Ad)cjYSz$_D`2Nm~LJD z#cyrc@U1VdHs*@V7;no9jH3@2>b0s%)QSM?1Z@j4s9(SousV2wpd^|bdr=DyZ=f99 zh)s=m_1kBhei0W{VbVxaK5F8-H*9=LS>vr1z>#iqcP?sbYk%?_@%h72Af9@AG(slu zm^=tcCowB2-#+w0^fgFp`nVh>BB7E9sGj22Z&>`3EvKxms=ap)KCj8l@C#2r<89^E zPLWlCVXM8%Bi)JTckjGHK}Ka>&UtcDyotIAbPHs126E1UIMWazX=wWqCt$JYN)l8c zk*t!;mQuPqp|E17rhL2D{)AUISL6RAQD0tFEAmzzc|m4YY#%76+p77K5Y@w!Z6H;F zrzvlbi@epttF@M5?Vy*DyDm=z3ep<0kjn>c6Y+ESaEfVsDgu$l$W87n+U7r_q zS1Edb2jm|bmYli-4j{Av+a~cSYKf3r(24;gtJ;GqAR{lIE>XDEXUmmYoVS#e+h!Xd zM9e1Zte+7|8ST^iO$i1hXms3Cu>; z1?=c14$Me^n;M{>2b-kpNZ8M2+9%%{~mPW&|g(dfsF&e4xa z|Ja|^%Tzb8P#<{EEu7+{)&S{*22SSPB>>$RnMYj+HxCR4szID#N^nG0Mgqu7P&EFn{BziyKJ?o;uXj*gC&hdnrxDN1a8tfiX!x{!o2T z?GhuY`ybn6JTp$qAsZgkJ1IAFs zWCvx|*G(e`;5%yvl|ZUnSYI_>hu3E{er~g&mH(2V1KuJJa7_&n^Bwu4y|lzc=c{dY z`(Kn>#37y$hdE(O#|MR0M$PD%n;RB@98ASGQiFO4nnaJZ9{=+SG+>GF_fA6THe=}7OqI1t=)R| z8t=MY3hJ8AngXbzxxLDsLyB@}k0RwUUv$~I4L7}{sxLh$pCNZ4xiSR?2G+U~?LHA! zJUmU*-|BfJ7V(o}o5o>dh%^Fg0|N_5pszj=>48F6fz7F$ejdx;Ron--lDWd=QG8n2 zHe~H6S;yPD_({eUZl5w)@wl##wk7#EsYE}Rha2V*E2qJzX|S@ADsz2*NLGy88cg$J zq{3AeSiM(K_O1>D`WAD(xG!MT%+FH2W#uFf$Q-q<;amE zq-BpBaY0Ov?l&s;9yvn6h`4|c7475Q3VlEw#EfI|-ZP4UBmpcGO40_=96Rm|f5BE^ z;|pvy<1t%>*T#E|mu(*&e@c0`q{O)2R%J8pFY)35jcc|F`w7k!<)I9?o$`Pj*aSoo z%Hg;ZiibXIyv%!Tcr&tLQx+U|=3V-#kufs1N>2%2Wv{gHRmYu@b*tQf@*|4bMggI4 z^CCJFje|jII4tmTly&rT%DX63rMnCo}+Y&_bAjv^robEjjD-!RCtjOREWrj zGBKb365~LWGE`~#G?&(URF5OXub)QckTIt7JXpkUC2`> zbgnF$A2~wBb|!oBulrBq0h`T+s-f1Y#4e6&lxE}0_6j@4rN|cj^-Jk3;ogS9vTwc9oN}Rmu%Z{TflSL*JvzEcmb82 z{Bgd+2xZRO= zgvAciHx!Mw1VZG8a~YBHc{mMOmZ{!1Yu0McQz;CRowecQuQpMbn~|o6D56E90;c7o z9O><&NSw!}Yfks}Ia;(Tz42gq+3Gb^-%<}yeamu4OEn*A{HaPpV~|3b`>6Vy#?`oO(}J9>bsA~L5MoHwf~27i z&14w1cukF0yk7~?SH^$8)GeFweyWo&h5L13xJyL8OBn$fr2HlK4a&H(;+W!d(tQ6( zU*Px-)yrs}(|D(Y>I7PsOngx@q+DnyR8~2}{BY68cr~}v^Tselj>xunJ-!e!K0Njt z$oJ9T!w2&b<+}-?HN=WSGmeT~s}edv_7FBsWyxLsk={U_lK3j`$y`9P(3(CEwCaf z;Bnh>%okdUKLCHy(F|5$S}0=DrDp@@QjA^eF#keG)<0TBn%_bK(u zqiQ!IT8VGmh%ZSbF+U?|@gca)VuA}Zh9X$JAI$ISyZJ{i%sJ=R_x9J=zOjc#&zoo* zx#ynWmN~w6c&kl0wCJTDUOP!!QqzC$ug@tluG?wbdiZ;evftiw4>wIb&v;AfkE81A zLY{?brhE&RL4y5c{X^t7g$wf&D1sE{RB~WJbXnjdry5jN8-G6i2D>SJdjGrWOD`|4 zdI8}iWxMb2d(YT@TBfTkvLvOJoOwoX-L(C;Us_)ssn~qphKW@Z`Daf*{Y&nBo15F- zy7G!Urt>Ry?tG*%ykv8|$$s{drCa%e$v1v+C0{jPElc*RGxnU>QsA4{)c|B~7~CHI zgq(i5oN1qslfrj1stJ8;0{Do0cru`t93)|cb&yEME)*2$E(|FN4W;}h>d{e0{ zHgB25e)OzaXeqTo6+-hgK%PL7l| zo6-!S*@iA`i`#PBN5jxn7&IF7BW!Y4*lcYi{o=MN#c!j;M<+7lKoRAsqGyZVqg;ab zkoAifY`;HG!+djADrh*XREW|URkfDV*yO!HluUxs>`0&~b-&?$J z;o|o$)I#`6(+1f z3ml<#c)yUfl<<&X@ayn}2;8PI8xr^YF1vk@oMwae$|Jvmk7|&d1cUYrU4)RMY-bQ7 zj)!Hqx1s?g(%Z4Qcl3Vy=xavmn?Z+?&$p9C28zoky**eh(0+VL^5Qym^&_hK$kltUQ>My9D z-)ZdWSToqjcdrdxvU=6Q(8*`#8f4L5J5i!+ur&0|ELk$pY;|p#v0#g$q!unb`x^kG zje~33*In*ee!9hc(vtFn#wnwf@$q}86Vh`}iFkx&NHEsq2U`{u8NJ9#ReV08?EHCn@0uQ4Fm*v0BVK6R zICwOHxDoJak*4^B)s{6wMErJM>3dfp@odEI^TC1f8%A|s#LEj5j_-5n0k5Wtrkpra2>+H0y%tS zy=suPQqMI((@iG7+o#fSRyc(L;4nuH@XZHLT%;%Lhk@SHMS)waV6swBuN<8h+j}JY zdr8QqLqi$ZO-ESC7E-bu~ynyt|#*vSb_Qpr^GBsVqA93n+Bt)fx6T)J|145w- zR;s92vOD36)NwK)8!SFBM&6Gr(7(cp*dZS>AwwGoqKg0zH%2_fgsV+jike>fZHt&< zW>JWPaPG74eymP5K}b*r!A>Ye%vs=!Gy&SP9CbpihO<&z;2c7UeTcI5hkY#o z;A%*slIuVJ`Rk2gV@N_3V@TF~wH(wDTi&=0H)M?AZOWOspDk3Lyvul~I; znQOxmtqf=K?L9p|hC(AL&mLu(##yG2|IOe->hBehn_?_ITnze7To{VT9I-z62=Y@- zTm)Qaq0mtf{>IHKXLK1^$;TJ70*!KC0;7d`$V9oPm}u-GRP-pdk7JAnBUY=6sYsD*-q!DJ54X1n1*~) z+)_rRd>456U*Y5Nc=!0sja#4NWK8C3R8|r?8AndWMx1tV$B0l#^f7sFkLYbM{2^37 z$HXDI@@(+?6&*Y=R z(=yGamHgb3oJ{#mBmHY+Cxd|Pp&}=gk}izQ7e?zxCb~e7@l0Z#K@)67o)C}EeE|Mv!4L!f5=Gn=MQG5d07 zZ?uPlI7(?#%$VM?OVfrGMrzBT?R8Qiiy0IuJDMNe;0(nwh9&SLn>DjH9B}^4$Y@jU za+Pbv2Sz%R*UtqtE&I3F|_v zO1`!*7YXi@=tOP?_P_!ch|TB2OV06!L!I_EOtJ`hPmmDNSOx70-!ZF4+F z8W}@4#4GtZRZhn(7JDXRx7^|YcNb)@CS+I;`Z$7>Rk}Y0S7C~DS7$Kk4+LoqheVPB zc&%{AgAgJ*4$z*P4q^6z*3=R+u0A)`()48|fp~=}_uqH_6va0V)>fyzTvGD#uUvk^ z@Vj_Tpw#$GD#b4<#ezv=Z3S8bAdZ%T*LPer*agcaf^|tEJ-+`{0qzmD*3kc=82oL5 z4glM!af`!fTyIpy)qPAkutrZbiFzJKyw&w-y%#p;1B8Wq8zb3XH~z7E@$9v`solvQ z&xo~jG?oJT>_WGe&=}k;AaYR(-VcxPchSIS9*klDv_3x?Dn~r%QIZUJXJMR=4+E6R z0fdxfQ@Mq(BA|TYD?@_&Or&w0jc=k4KVMd~I7`n7u&TdkX3S~xFc+_Nz=Z%(A8 zA=F$sb=u)YmYE~Z9lYXUJXLsB>9txH-=p;hCe}sTLh}~BWc;)xGG|_9qs6l5@U*Fw z&0*3_dA>0tl7YrPPC`p^OC6R+P?OxPTARou;Bo{c0Om1~!AQ`cPMfdPXfbe&E% zC2+4bhBL8*S)3U+YW~iOU{!N?lCrCzGd!U>Xx!
%#5t+7yTm^Z{)9pPFdh-)p? z70Lyb71b@_PUHS~9CyvfrBIBY6sik5TZ@D3`-%{avZo>tk4%nDNlxf(>hQldU@{F@ ze6B#R$59h-4LCf;$#i8BOsn$trrrtrEf(C;i3_~}x@iDw;0ZY^`-c@CBEkZ3AfPz~ zTh$sM^$+)VKRN)dG~vd;h{`d9Bu=A_&^a)ugxH7x?g_?KA39Z`gQTcBOc6MAkyTMw0?i2G4Ox3=#$`p!h`_Y`L;Hvi4>H9YH@*6wq=g0d!E$hD* zUDJ1Iucc2L{Nl{|NW@e>b~R3zw?V zp;DWxuKb-Xwua^g+m?6A>z%gJp{QCKj`?1^;e2i~8IP(~-lUsMdJ`5DdektPc&}Zp zXexjEEACjVQVspUS6=S>K}fBP#oS+cyS%AFwVhUsm4om-L7Iu>ZqOJch{=Ihz^nvT z3i~I*uPVYArIbV}Fk0ivdqsc}JHBX_$tk!(g~3eNa22_Nzzg zj|?;fP%gsZ2_7jxhWXu$I6;@y5P5sVA!i6!WprnT96%~uf+GjGQn>9X@+)YjR4jZ!)5kD34BKK9qOKpkC6^i9 zA3`mUdLi@pgvux441?MC3 zkhgk((=V(k4Qqpqj;_XOv>MZ8t{|pPgT|>!{ypivq(VvLjlFGwnFCe9$#dG2Cp{(A zUgIs3ctut4*mBbEk6^aY$8bzOoCiHlEp{Z0Tc&qJ&3nBe&V=h~oNO!KD>nY6i!0xk z3jEwWe!fP6i)hT6#xBRr&O{nPrjRB35Do5rZoKR)r>hizGei#@EcEL_ULxq%BisjP zauGTRf&nBuV4;%~C(e`MxDOUMpZLGX|G)*$!PS}?Co_4U(&)Eoo=(x%gF^hth9NN{ zIS~9fUQY7v{Lm+4C{vXAACH$eS_5y?P9eW%H#`IV@L!M1Ma5XEIFCNeLW@F|#uAvs zmkdC~1})<@5>I^T=Cv5@qhsS|G#+GAG9rOvT+M1GGp? z(q9fIQo1w61lh#!rnW zwG$Osi?3YK6h*e{s_rOmP~ML99U?sMNo&=1%8ES7;`5x=#@^6m?Sk&L-Ib@t8&H$S zR)JPMvt>&{o}IX$?(4-3PCkdX)qB)tv^?B6K65n}b9gY>3sx%W&zSlTKG6JLuGLYh zI_#?5=5+%Nzhd$s0-%HcdZO`)vc&iuFAaKO$(l@VukFZ3c86N(;Azx7{6b)=j4~|Z zb?JAt=ohqR;7gwrvs;*PIwp346){B9v7{lZ<8vgj+zml+L16R`^i02?uqd;hog*MU@HBR4^4R?frnN{O_yUX8L~fs{*oUk#mR=4 z58|M^Um8YTMf>5R{fDlqSe_bz0*#Tt$-Zjql;&2`N6$b1kqO&fr~JqrbmKn?ao@{_Fw+DR7lgv6sk(OJ;S6o^ zbv2szPs0V#*h7~Gmv6iO$Ey0q0}s5RHiiT1(89gV6O=!`@x~t&<^9*sKe@Tp*=&0G zh8tfpnO?fFcSmdOvuMI=doG?a(u6!N*4iBwwm6M@(U?FFqH$=Ivo&nXCy#&uB_BU> zKc)&#c*mFs?P1y96|EpE3IZaR5qQtB3u^4kk_4Y@+HwfLGbzi?3*M&A^o2dQ{H zDb4&_g%~oP&5P#ZAb{JcSuju~h4yh*7~wL=ZbNxl;2ANFLWl-3J8xtO`HeFqzJX{u zQAu*OTHGQ|5kP<`F@GnmKe&_cl&Nt8-+A?SO{VW&ZQLN!x{f;hj{|h}#}{o^lnyu?Re;4%`?`u`(Ngne^}R9Tif~nmrTpP zL3$E8DNObU_eW5#1aYaVv0A)X+JbyuRM#XX)gA#EaYWh*i~IyB1d*>BNoLk`*Mi6L>AKM?ZN{J4cxl`EzH2(;uHNT;WscR^-J! zV(ZENPbKk?dSU?OU(*nD45x6*4;T(XaCsv39L;zQl^@K{5>yXeiI)&9V z@^4g5t9Dx)_(_gZg;n}rt8e0sk5+`I&6*Z=I$mq(ph^1%tMBnXhUKX%e66Qq_C5*B ze;zDXyw1kb4_q!j-QQs8w|9i^sctk@`gl4rwXtz(2bu37@jO(}x;$@j3%k2G zhI5(-s^Sc{;!lim{9Qe$+C?;1C2~b^=ZV4?2jMLm-7LzQuQ=AUk9Tw;k^>R5h~rRW z__^0ZoA#^f{!J;dbQeGWc2&LoJh45!<~KF?k4;U@-eu~z@ZGZ>KWn`FtIwSq~R|ot5{2Cw2YRP2gZgubCgK#HDx(=O%l4JsUjWBS!M4v~&$lWkr?@|ya zlLuFn3hBk9s2taMqUOy+`5ea^iXNbKFND{Dw&XV{cwL0A>Ztl%brQx8L+D-P&-6nF zjQ&nW6zd@&vlw&sla|BKvnL!3C(W>FsYv*l7shWY^_dp>w$3o_oUzrn(Bv!St9f0S zTm1umY&rY+&l@*-m2Y`-i))=TTlvP;na*0Cn^sk7{B>Xf=L-h7v$TrO#~c7FS1+~4 zN+L6s7!PP#ddq}P%(a-XCC_iD+^3X`u)65iJqGD_Pz&pipl?8JLE8j<^kWzSa3P#8 zk$ft64oj244;b#kDj#(y1XhD6U|@4$=d!TqBAVNK7k(roq4?YxsjL)lFR>GicaSV5J980Y)Hjcndt)VXQTQrK zguW$(WARP!Mo58!YNBOsRI$btNg&KQqhE0dl8DT6j^v*Lr_g-(g76-f361N71c91K zsqV^vXvDi7nP^s33EA&v@2k7y7-O^ z4xKceslgg46#jw%s$^55bENf)>t|Te zKJ>NvF662c5;X1hI=R}kw)J>pMVXO%TAA@mX=&$A?WH*^1P_mS2Kv@(yhAh? zPtw@~Kmkcdza>JokI+uH{Oup4?)TU1ZVZ-BbyV3d6c{jxR6gFqla3ZN%ZL#QfQ zZd8D*iJnhWOIU4N{0m~MrcD-Wsja3y_i}xWtrYQE`D3Lwf2`R`JoTj$Cgfh8Frl>G zQ)0^>E4>pYxI;KTl2+4_(xju6sbgPc92k4d&o>U_pUl6BpFif!Q4NYxE65k>w`TO) zTGRw-aw~~H^ioLoqJ9b#Nef$HHD^yO66>N`AZ&`?{+RZZ%APWI@;giIua(G^W=meP z4^x&g4%S)InTMJxdo%Z@()_08c+cj{Js|q{N~i5T2MlQ}y~BH7){e6L>O-k~%rfQ8 z3eUfc#h|`BC?a<~fVjwJ3&#ez0{7+x%9ufIAdM3^tWI>24;#Zg1WJi5_KXxwUZ$u5 zEu?C4R4;YBOh0)1DGpG@Xh9Ql5TtV{QP3f1sn7|e{J;s$5gvq2N~7#5W+^wpGj{^H zX{P99h%GU4Nd}fbgP%J{6^1kLRsOzIi}`SDT8m22NJyqdmaxraq)N?Xq{hw^^dWuQ z18ZawMj|0Sgf$)}n|&IOP+lN6@kI!fA`XF3LVg+i-WFO!$zVVYVE~BIP|^_20zD4V zcV(c)Fqi1^S^9|vMN8qnG|-R8q0CEhK1D7KyT%H#{QJlsjp4S?_$_3!)F2}}Bao$@ z#@Pv$lD3Jd^gDC>;rv>ntuoD>Ou51@0xAv4rc$4pQanyW!{J4b@@tmo{ymgm1dr!a zwH_eC?Yz69)X*Gmw^P}MU!zFpb<7iJx*$+|Bjw9C@@)dg#GoEAfQzAJ--y;5$#Y6g z;_G`PdLg6A4xLL;kWY@XX5e4d$kH`MqaV>{JCGE zJ!8j5>D%IlJ6=|l7j(!BdgA$WWtvXEPIsscMR}s}6_N)@a9Kb~18&9`KURn->VN3| zmAT3RtdC`l|(ME*K=)AQd^8g{8jwM=2Zp3fkd^)W% z8W<*-$>=cxn>mIvsob!Z7o8AoX*~B_iic9E6pgW*fN$xSvnGi(vrZt%2_+Q%HRbb4 z2m-%{*N42%oM1U!@ps$$eMsRL*OOcf}YkFbsMfPRJXM^q?Jw>=_5 zD~4$0t6iK8P2Zp>8>Ua+aGTVgD(MG^{?On#JLKF?1I&zo8Dn@@xnwg|22d_}wg|gP zzgZf5Yt7rbBV&Nv6T!dZtqgOqgU>(i0Z(bEV}(bY#_q=cM{P1mU=3lIxK$0EIE25^ z4Q#ezJua>CLQcgxA1Bo7)SJf5;P_cbjg1j{iW`ec4#_@s{PqO7*K$l5&HU(|;Dcj$ z`h>kO37#cFuNh;sEmkr)R4W4vIG)Xj1Ho!c`Ua^@Em)VO2H2yG;t^o&635Z>GT9BR z;5JOv11u*+P#6rtIe#)p>)wjF4~SZz>d25EEU!x;pXNoOMaz|?xrdcQ2pW7D0x4j9aWF2CaVJ=4;^;+wKv0 zg6vz_{~SmIl%0E z)c;7Cgj4!oFN=&~(*74^_>_4^=PTlO%J&I0K@bBgVN4y&D_W6~#=y{um`q3$3Xf-Z z7$As>b;i2`hfoh7?TJd=Tm`+3i;dM$O^a@dyob=7T~PfTeoiAx^>*;i8t{fyDqwP^<~yx;u5n3F*Ahyd=a+nw1>A>nNQP)R$Z|g@2Gw? z)D-tP=~DQs1Dj@BD_xAQ!h5g~{ueh0gVK7qV!TV3ly9xPVCAx$f+fL`V!7H`Z!bzT_`vrhzwbCv2AYB4IbqM~noxM^)FXl?D zc;eY7&+pk2GfA1dM~LBKA)1Z$SthTGs1Ky~raz1C^O(PL^F07+0q((doTRBNIU+*_A|qT7EOVZ?i0%cwEKc4vVn|AF-w3a^T|K9+hA`lPC~KsdIV0CL0j-KOJypSD~BStv$e$S zk;(@mv{ME(y^Qgd#yJ_a;~C5(ZjT&ae2(HR_!dR^>=8ovizBqs&Rq$XC{0axu5q@N zIa)w17F1@zY@d0)SP7|s6+@(5av5Cfwioad9G})0VAQ&pYDg7|xYl~?t=91yf?ipd zc?mod%>e&SS7Ab?v{aa|FOX`^fiqOXtkVbvTrGhuvKjREBkqun?xY1N{YllfMCR@7?6 zbt^CPt@^yF)ruFT#4EDY1(Cx~u)yWAwqWrbEdKO?$Bam&Obw$s7l&pr8)BU}?CIH2 zVo07xF+kI2FqG#dr%^8vj3va|P42rX>Fx7*KY44ho|}NZVB)Jh!lv?{yzX|tz1RO$ zCSswd?A|14GNRcTS0=24&Cg!L@hYwROt|t~V-Q25s;eIp?F^ zRh=a7KM+RzTs<@at>Jnz^J8-sOcD90GG4DA?UO%vvj=sTTRl2=@905UC|53&%W%(* z-JPs1g>Zulx3U^e2c-RLAke$5ms=((D%b5r^$~{!S8oyX&6V=97(^2=-dXM7^UV}& zn8WBSDi>f;2bJe}1!@ni9jjc0A1zV3Y3wqn*5_IIQ z$2Bl>6vuPxceLa15!(&@lCWsULFDK^kRQktb`I1pP7&E<`EkXv#Ha?z92+}elfuXM zAtiRBVcB+2<<*={Qk7ZSyK`r(B`~yQYo`0K`IgHbYn$~x7|NDvMy+ETCr~o z24~jVpjrmDSbUpL`-L>jM`17$GpAwdTdjrytp31MqpTKrBwkWfW4wZfP6hE$Y1~xC z1%O%PXm0$@<2r3PM+Zm+Ov^%V&h~A5PKUIu;toVVF1IT-B;*UO26ll}6&IvP37YNZ zrQuX{@!GPe|4NN!vT9TRdl>cmyy8QP+K3ZALqGIxgM*1=qm zG`J+{TL1;siK$6Z!h)%$&Yn-zd62YH2`fDASLTmD*FLZ9#<|4oU5s~dV<1{jjy3E? z8J?hn&9&AGEj690t-6V~tK9T4^Xa*)W9~-Uee@$O=0WKfOk9ICoq6v~>|EfcWXng6 z((W7Q9N9VZ>7PgkWa3IU%8H*}r)}?ECu^G%MqHL>f%}4eGu~}{_c|UyvEvNj@oM1R zYg(V4Uu0N<*VVxC-5~kyHG8*uaG6p!!s7(Xa4bP>1!ZD%)dsqqy&J9dMv?fScDW46T!rUC?PqSXoTJBY3^Z7XW;-E6#XPdd6cWy zO-m{ZWv)A4z~XdODPtit%(rL(Uxh=baJ8t0`w$3N1X=KTd(e@|)g>;8^`A~0`oS6- zevM0Nrn~hM5Nc`Xpf1r@y};Z>-{pJevskG5Bl-1>;^2XW3V)Y67E~-YrvA4Cq()O_bQC_EDKk)FD&(88gd=`j2PlRo3;MfELP6+IT4}MY) z?Ra4OmM!M9SNziz`}WbN2hEu+TX2hZ_Vt}JHDJEN6J6?$n6ESsZ(IX!>*_t?x%uqA zeRzfLA2j3JAK0;F3++U59B2IsI};Hvv^4tGY#M4-mTVANUvr_g_AeyCdbyXG9y7su zlL=5R>?FDac77PxG^k){S&fpbINUJ?ITk9n)PK*7B-zL!QQC`h=QeExC6@(}8_J*N$Um zm=<{UE0O4Oy@*i+lRGHCRsGm8p{Xn}l4(FP_Ls^D(ES#Si=Y=-u3SeuTiHBWrBm)fn0cJp}_18orE@ON6fF=ZSW)%uSy#i7lW@!A$& zdVKKp&qlbd$QwKdfRU49ZgA!Ajz?a92-H)ZBbEh!Xi=>7!sT>NeE>PzwWF!RejbDi zQ6IH}()_f=DGeSN#&w_xrVw134qY!g8!8_iJPdSKBOR5vgLE*qar8#zOALrJV8DHU z78qcv3@`u?&VjQ*;zDdMz+MFGDL6EEHhBCTdlRb3&g_GZvzE{Of0lB;FB`lp`~eyT zAF2N+TCley%;jKTi)Ll+=^6$p@C#%F{L;9i8R|>RI?x?2q86UvBjhAI?K!)kE?PTO#zLkxl`<5+iTxT%W!Sau_uZBIH zrL4OpcUrzMi#4IVQ>Qex(aFl#yv9b(7NhYzzK=tGBCKT_wExyHJlisErKseDa1 z@_6MeE+DFVD46$#;2nv*E+58Trkrw%#Mm=VXT(A~@(Sd92$=C9RAZfxVk zJey@JHu$K9|9|eIFIi$U`GPQ;2_aNs+>y+sglJgjc>U%3^-=M3xqA>66)f3u24Q(E zf>X&5Sc<|Ac+pPWF~?CF{>$(F!>CFEUv*Vy%x$1h7NRkB{2TH&^VvVxy~n?`54d*w}yQ10(*+u2XxT z?pPT=CpdWU+Vet}4##^|w(WS|o?g$Yr#Bo}yYi}Q&WD_!0MBtL(*k5^_O_?A2;5~= z)h?<%m%27ASB|j~jP+nD)|@|GAE`ZsTCNKcY3=u6-RVC7mx406UTRtk^fd4-~DkfMBXKPDl|~EbG`J4 zw2U4GKK5Z*UL|4xVzd>yFl@_V4V`_{F5ZpC>y>!GIx@Df)RcO44WoLwW{#r0!G}0>TFC!MjhvM;2&1O?|~K%|5CjmH7^!k zX*a9C!ODw*8Ow6+-DuSt%R6veb;I)B*#I-f4>`|beUh}_S<+Vt)?pn6%K9r22cxL! zvzC2cVwxmDndPOR5U|g@P33CZQ{oNz9*0f+Y)`n#pgi#IlE$_az-aau2XyYk@WxCG zD;1+4B=n*asNS}bcUtwTQh`ZSu3Xd<3^r}U!6@VpuL=7JuAjH@EnNa#4}yc9IPz$F zbGWrN+}!bK;RFx{W@(~az$*-rQWeN$;2JPuQWXlb#A+@;NGKOU>K4tFv@r0Ucjlep zd%1T&+F<+7zMr~eX_U(HH$Uj=YBqn*dVsgOM!N7nG)6QwRO7r>EwOG%vEJifsRl4F z>m1zyR2~}|8oOJ%^byx89Ls>C2kZNMk}+F63C_@h$txdTDrT~S*k^1hdc|n=r!j9= z$a9M)>>;P$bFN>j_2^jnb<7j$^xop(hv$0O4o~)%ET@0@a>Pk??BHM*3^GQU=<197 z`V5Nn&dhj2UAQ)_^Y~@Bu4wZk)^nNG?^)M`RCo_{K&N5td>nnko{>-sR;b}0two#B z@=n4yf2KLLs|ARt7`tBxQ5jOWBb2)=$^+^^|5;nKe>PG z0R1i0pnZLt*W9h;WSWBqbFv<&Oc~YjL%Lq8D5p~x&YZ>SGiD69LO848P2*y`)A?FC zxd$%79??9%b9cHw)3EB;A_J0w8B!qK8#u%L5$f@JpYjm(E%KPU{@`8Pwf&C$h^;|v zTjoOxvBR19A7*q6m$o__xc@$;nfrp_;9{V@FJ@~Wi8P`Q*f%HRTdUAs*OY9r+SXvp zrp*IT_Yc4jQ~2U^wmCxRsSxa(F>G`C}2?*@}~z}y}Lf=P>&;oaT=>f z0Kwv>thyq;-qE9m)Rt8(xb}2N_bqiLJ=Nay22`U+p?;z+*Z~#*S2Vp z0)z$HMvw=30OnDEI?E;X6_8~HxtSN>!1=NB&(DX)0%PwP@IW6}vjMcS$10n=%t-0V zv9Uz3b^W%rJ)Lbk_CXgf>a+lTUl?I8&p8Q)pP)=hoCLnUlXa!txXEiOsJ33}p$yROXZ-qgZI?5ARZC#SzZr!H4Arnb1_qs$MP&d_vJ&KFcYv zqQLkhR&O>!{t%;FsQzOr2kbWUiE{8FiGhFNCe**}}%v65wR{D-_M-)TgBFr-!g;A2^;qSQz_lZf?7G=8C_(c~515rmrsCp+c*thTnVF@QShi=ElAYg6BUOoB4}SV9nIs zA2Q}uU3=(eZl)@Dc?tO9;u#@hFt2}wfVFb;!f2-!Zu`7?vaEjow!(|*k*lvhqKYe} z*S&n#T`#Zu8@i`@3lFS3Ul#NzxH6=1^gA%$IpBca2)pRe{hLRjhu92d5^utmqXyW~ z$zAQqWc#ksW1|NS;8GXM)mSyCNA>;X{rU&TKNt++QX4V9SYs%`Jy;#9oS4VM(2+zp zLfCM^@PjnQk8-J^m!QzOVemNg(&lf@$F6{KC9E#!=D)~WzolP}k8@tgu!tW%`GrS$ zS#d1BLoMgT`Z~)@EF)>5Zq*X}U*z6?Jj~{#e3>lrL`Il~Qb`S$O2S~2FKSl_*+Y)R z*ve%{zk|%ps%wqt5T0}bDXIYt%21fSstYT+x;AumyKOhTDul&Pak1;Zt*5MeAsVRgJzs+7jZ`B(+$Jds4e(}IB}R}>hWuz5ho0-!AR z^Js_qn`??sZ1@De>Wb=a7$%sDr~YBxXYi$h+@^x!7iH(LB56lhC1L*!%?|n_?(wFq{hzwGg0TC=wH>+{eT z1PzzLJ6H~CL3y$m;ex*#ZQ(U^bzI~*4u}Zx9c-vrE^$sJ$pg!*&_uPD>h5B{=@j4v z9b~{8H&lImya>j{dmYS$@o@<23UfjJ$oIg~Ag5#0>0=`&9&<;%*f=&0x?=q~diGfL~z{2sUA6zGi5PjclPgA|O@*@FY{qI-k~ zEx|0UIAn;L=e;BJG0)JhArI{_pArG{5A>V}d`vztw_6FGGq=n8#nrvNt95Z99Ko?% zc#-~U$1c`@SO4H}sL0(6fS?JyptCe|EtHDYzDF9+7xppq2@P!b2>dt%Ft(Mk+ygB+ ze~OD^rPY^JE4?MI3~7NkY(mqz#Fxi;nC0*IB4Y-!Ko6iQq61OzBE7NIA8d<&bwD;$ zpj)iGg0#vKSGhl71dk?^%gobMy(oBY*^(ba7=6!_e_rB+Or>*TBZwGtS>!=gtPCi$orTn+sZ@=i6f7pM_MZRDoUD_D*36yjQ zJS&4QSMA-Uc2%-1!K{EGi*>6zy^$T$K&v2+ay)Ald&BsY`EvH!sjI@+oEav3tzQ9d z)a@7AXHhqnxJMY~s0uStUI(q&{Q?x}s5o#i z%vLqvdlntVES>bJjp~;+PC*lSO2I`P4<5*>YW6^|$%loIwl)ZhZ-l?yf zSEE}yRcNGetTk4sRi|{6Dvy81Obm}PnsYNSP_mC8p2%+MN3x}e7U}5eZLb__@9pVO z4^@t>IIpLrrRTgA>LDw1k1r7D2n5VKyv_Xk1rcrb${+O~dpgX{_TJuhdaVOal$!CT z*@-usIYh5<=!s^p`4W=*DB=q&g}u!?DB$b#1_ItrU*J;+a+*%BfF<+j-)lE%?9Y8C z+P>L_BWhqXXJ;=Y>_v^8s|^gYBQ2;aU_=M~3@qxL!c536qind&iAU+YJE;F~vu1ag zC0CQZ+1t?aOP6LRZO^0ou8Zu@e-Le5=WDiU4qww9<|~Jf5{C01{Rl7cl!hQnvZEt9( zDTH?~MqU_cc+4qlW5Q~?7am)_5u`Zf%6drD9O3 z3gt2b&&C!o1%x)yWD>$M09>W<4>mF~u30Ms`bnfvOFUgffOLMurlPfB3>LD^I`D7@ ze8<7o9JIzJVU~#)e13;;$US?FU>{{m292<%i)sobv zSH{Kf^ZC*D;N;`EMvp_a`8|Ds{ZDQg8MyL-PwiC6ZgV^rfTgg#(Mg-UcK>@#llJd& zYW8#NjgGF?24AZkmI;u`t-LmH-hX|CY2J_<-Rp8AQ7GW@Y#O+7|C8I+x`s$|G}@1% zh!sxF_8oU4t;~+XQ5TYNo~^!fTf3m=#-~~Nx#U0yx8WJ2P|iB#s1-)%Dvw%W72&U0VGZHut*{N@ zA6sENY(HMN!VcVj#|pcZ1LU;A9;KhIbzhh@qIqL7JTV`R$I_{(bSm#Q5=PQU<*ziR z3yEmfidjDgjBGBRPKAdCH&}NrHd02mnn&))^l&~u6`snbli`bynUP4O!a0Y0i?`gfiNy|3ZoMSL3s6PE*80Ry3^~CQ;wjVVU(ChUBdWg zkxvq#i>#V)P6>p=aHz=7u18)mq#lG(KEIWLi?{XotG1+?eo(Y9iH>GjRD9gl?`c2O zPAX|+!|JXB8Uq(KkefWv9{E6Berm$1TQknoYo#^{V$fQF^c}R4R)N{G+q*DKV0x&R z)=(eyW4e3}t)+F?m2nNsejnHNoXKkUav<*8_cff*-U3cj;Mi1RELl(muMBE~Cro3VJWSkFKQm(^a$|Ho^z#YWe^jqQi6zT}#)|2Qht( z(gek5k_?)nX_}!pT~D)=pd_UzO*mhRvXrAd73c`f(G4_DAEuAcjdT;;Ot)a7eU$!$ zZl#aX$LLS#HcW=^ppVm?^a;9)?xsJZd+1*JbNVFRM}I+|qEFNP^Z@-O{TKQSJxHIW zhp0rKqtDY{(Zlp#=@|Vt`T{*d|D7JCFVbJrWAr!lI8@VLqA$}Ebez6IPtsTEYxH;Y z6g^FUPhY2RU=r|6dWN2*Z_#t~ZF-)*L*J!;pns%)qVLi7=>>X`en3B@m*_|IWBLjG zlwPKPrdQ}^^grlT`Z@iA7U-AQk^efqLI0C}MgKx?(*L4=rTQfuBk*i4! zsLg7N+N!pxL1;f$sO@Tp;*ZCSNDSnijAYY=)MV3AJoljj=-QP?Clc{YI^)Zv^U-`d zlFMh~nVc&bPs~R0Mzn!nn9RmgvrZ1-jw6+6moX-LTuI^OQds# zZ!!|iX47-Brrv6d8{w7@YJ!vLxs<0Sxl4u%8Ew{>w-r#lqmW9ZW3x8CX!&%e0biN5 zi$k23UBJXP5sl3{CerzQI_Z@^GM&eYh+>m~cqGLzv~jQrRW3}IU_RUv_kF~BYI>$l8wew4GGSgyT&a-;--5pj_fn( zIU{Qa#>8fv;u;yU=i^Bu>xp8lOLB>^S#L6mHl<_HJcc^Ig!5wD8=ah7jI>r$MdBDc zvq|wr)8b7FG3=Q{G-kMfPOTG(H)bjptqYY&tVD9~pAUfIVqUMiWkP zjSMy90AEp2Eg6rwCZaiGA`0@zrDHK8>jJjsIqt@TSwjR}xqLJm0j>CA>CAj&G94@M zXzpREisV2cM#`6)ivs|Wi2}MQrA6aOTMU(Or6Nf;~S|NKQDWjAS%n*!W_fF2pAd+l-OO*iyz^ z&X${rXYBcGAvWurh{xsuwuVerFwN++?Dj$`@0deJ8F^bQ9Z%Vl0K!QHUp)GkNoAu%Ub;17@DZ`*~v`ot}*hF9nC}Q%I3x zMxBs=YseZgBYp&L`!n$vz`KYxZKuWMz~s&qfQ>-x$dIcVv?0@^*O-jwtLW9ZR6ryj zo%T&e^HDI2XktDW&oyM?jHm#JTil;WGyY)g<2HDb(dl>$qZ=4Js+rE>CdMgr0YK0o z(ldhCC$fdyj1ydB5}4samqYYTL|wU9JO`GX^BzH;r_ozr7Ey=f&(3H*pN+=yPIPA+ zL!9fw>2#87>=c1`3P={s#%3JyEpI+LYeeUw^AYauLWbG@u#34bhZ+QsV;GWw32}(X zS#OniBj7nmCn>q98jz%EO!}5?fa3j&G0C`=;*y4)3(6xbubjFM!pB0rw6ftdIuaC78`*;f*LIGsWmZ$cJhE}M%K(BQimg{display:block;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled) .el-color-picker__trigger{border:1px solid var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;text-align:left}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret,.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select-v2__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret,.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret,.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotate(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;line-height:var(--el-tabs-header-height);display:inline-block;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item .is-icon-close svg{margin-top:1px}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;width:auto}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item-status-label,.el-upload-list.is-disabled .el-upload-list__item:hover{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5fae\8f6f\96c5\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}body{background-color:#fafafa;margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}#content{margin-top:20px;padding-right:40px}.brand{color:#fff;background-color:transparent;margin-left:20px;float:left;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}#head{margin-bottom:30px} diff --git a/assets/frpc/static/index-fec891f3.js b/assets/frpc/static/index-fec891f3.js new file mode 100644 index 00000000000..d10044eca0b --- /dev/null +++ b/assets/frpc/static/index-fec891f3.js @@ -0,0 +1,32 @@ +var yh=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var CO=yh((Mt,$t)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function o(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();function Ea(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}function et(e){if(ce(e)){const t={};for(let n=0;n{if(n){const o=n.split(wh);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Y(e){let t="";if(Me(e))t=e;else if(ce(e))for(let n=0;nBs(n,t))}const tt=e=>Me(e)?e:e==null?"":ce(e)||Re(e)&&(e.toString===of||!me(e.toString))?JSON.stringify(e,tf,2):String(e),tf=(e,t)=>t&&t.__v_isRef?tf(e,t.value):Mo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r])=>(n[`${o} =>`]=r,n),{})}:zs(t)?{[`Set(${t.size})`]:[...t.values()]}:Re(t)&&!ce(t)&&!rf(t)?String(t):t,Ye={},Ao=[],rt=()=>{},Th=()=>!1,Oh=/^on[^a-z]/,Hs=e=>Oh.test(e),Sa=e=>e.startsWith("onUpdate:"),ct=Object.assign,xa=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ah=Object.prototype.hasOwnProperty,Oe=(e,t)=>Ah.call(e,t),ce=Array.isArray,Mo=e=>Nr(e)==="[object Map]",zs=e=>Nr(e)==="[object Set]",Pi=e=>Nr(e)==="[object Date]",me=e=>typeof e=="function",Me=e=>typeof e=="string",br=e=>typeof e=="symbol",Re=e=>e!==null&&typeof e=="object",nf=e=>Re(e)&&me(e.then)&&me(e.catch),of=Object.prototype.toString,Nr=e=>of.call(e),Mh=e=>Nr(e).slice(8,-1),rf=e=>Nr(e)==="[object Object]",Ta=e=>Me(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ls=Ea(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ds=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},$h=/-(\w)/g,Vt=Ds(e=>e.replace($h,(t,n)=>n?n.toUpperCase():"")),Rh=/\B([A-Z])/g,mo=Ds(e=>e.replace(Rh,"-$1").toLowerCase()),Ws=Ds(e=>e.charAt(0).toUpperCase()+e.slice(1)),as=Ds(e=>e?`on${Ws(e)}`:""),wr=(e,t)=>!Object.is(e,t),is=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ph=e=>{const t=parseFloat(e);return isNaN(t)?e:t},kh=e=>{const t=Me(e)?Number(e):NaN;return isNaN(t)?e:t};let ki;const Ih=()=>ki||(ki=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let At;class Lh{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=At,!t&&At&&(this.index=(At.scopes||(At.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=At;try{return At=this,t()}finally{At=n}}}on(){At=this}off(){At=this.parent}stop(t){if(this._active){let n,o;for(n=0,o=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},af=e=>(e.w&Hn)>0,uf=e=>(e.n&Hn)>0,Fh=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{(c==="length"||c>=i)&&a.push(u)})}else switch(n!==void 0&&a.push(l.get(n)),t){case"add":ce(e)?Ta(n)&&a.push(l.get("length")):(a.push(l.get(ao)),Mo(e)&&a.push(l.get(Fl)));break;case"delete":ce(e)||(a.push(l.get(ao)),Mo(e)&&a.push(l.get(Fl)));break;case"set":Mo(e)&&a.push(l.get(ao));break}if(a.length===1)a[0]&&Bl(a[0]);else{const i=[];for(const u of a)u&&i.push(...u);Bl(Oa(i))}}function Bl(e,t){const n=ce(e)?e:[...e];for(const o of n)o.computed&&Li(o);for(const o of n)o.computed||Li(o)}function Li(e,t){(e!==Wt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Hh(e,t){var n;return(n=ws.get(e))===null||n===void 0?void 0:n.get(t)}const zh=Ea("__proto__,__v_isRef,__isVue"),df=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(br)),Dh=Ma(),Wh=Ma(!1,!0),jh=Ma(!0),Ni=Kh();function Kh(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=Ie(this);for(let s=0,l=this.length;s{e[t]=function(...n){qo();const o=Ie(this)[t].apply(this,n);return Yo(),o}}),e}function Uh(e){const t=Ie(this);return xt(t,"has",e),t.hasOwnProperty(e)}function Ma(e=!1,t=!1){return function(o,r,s){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&s===(e?t?av:mf:t?gf:vf).get(o))return o;const l=ce(o);if(!e){if(l&&Oe(Ni,r))return Reflect.get(Ni,r,s);if(r==="hasOwnProperty")return Uh}const a=Reflect.get(o,r,s);return(br(r)?df.has(r):zh(r))||(e||xt(o,"get",r),t)?a:Ve(a)?l&&Ta(r)?a:a.value:Re(a)?e?Ks(a):Yt(a):a}}const Vh=pf(),qh=pf(!0);function pf(e=!1){return function(n,o,r,s){let l=n[o];if(Po(l)&&Ve(l)&&!Ve(r))return!1;if(!e&&(!Cs(r)&&!Po(r)&&(l=Ie(l),r=Ie(r)),!ce(n)&&Ve(l)&&!Ve(r)))return l.value=r,!0;const a=ce(n)&&Ta(o)?Number(o)e,js=e=>Reflect.getPrototypeOf(e);function Wr(e,t,n=!1,o=!1){e=e.__v_raw;const r=Ie(e),s=Ie(t);n||(t!==s&&xt(r,"get",t),xt(r,"get",s));const{has:l}=js(r),a=o?$a:n?ka:Cr;if(l.call(r,t))return a(e.get(t));if(l.call(r,s))return a(e.get(s));e!==r&&e.get(t)}function jr(e,t=!1){const n=this.__v_raw,o=Ie(n),r=Ie(e);return t||(e!==r&&xt(o,"has",e),xt(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Kr(e,t=!1){return e=e.__v_raw,!t&&xt(Ie(e),"iterate",ao),Reflect.get(e,"size",e)}function Fi(e){e=Ie(e);const t=Ie(this);return js(t).has.call(t,e)||(t.add(e),mn(t,"add",e,e)),this}function Bi(e,t){t=Ie(t);const n=Ie(this),{has:o,get:r}=js(n);let s=o.call(n,e);s||(e=Ie(e),s=o.call(n,e));const l=r.call(n,e);return n.set(e,t),s?wr(t,l)&&mn(n,"set",e,t):mn(n,"add",e,t),this}function Hi(e){const t=Ie(this),{has:n,get:o}=js(t);let r=n.call(t,e);r||(e=Ie(e),r=n.call(t,e)),o&&o.call(t,e);const s=t.delete(e);return r&&mn(t,"delete",e,void 0),s}function zi(){const e=Ie(this),t=e.size!==0,n=e.clear();return t&&mn(e,"clear",void 0,void 0),n}function Ur(e,t){return function(o,r){const s=this,l=s.__v_raw,a=Ie(l),i=t?$a:e?ka:Cr;return!e&&xt(a,"iterate",ao),l.forEach((u,c)=>o.call(r,i(u),i(c),s))}}function Vr(e,t,n){return function(...o){const r=this.__v_raw,s=Ie(r),l=Mo(s),a=e==="entries"||e===Symbol.iterator&&l,i=e==="keys"&&l,u=r[e](...o),c=n?$a:t?ka:Cr;return!t&&xt(s,"iterate",i?Fl:ao),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:a?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Sn(e){return function(...t){return e==="delete"?!1:this}}function Qh(){const e={get(s){return Wr(this,s)},get size(){return Kr(this)},has:jr,add:Fi,set:Bi,delete:Hi,clear:zi,forEach:Ur(!1,!1)},t={get(s){return Wr(this,s,!1,!0)},get size(){return Kr(this)},has:jr,add:Fi,set:Bi,delete:Hi,clear:zi,forEach:Ur(!1,!0)},n={get(s){return Wr(this,s,!0)},get size(){return Kr(this,!0)},has(s){return jr.call(this,s,!0)},add:Sn("add"),set:Sn("set"),delete:Sn("delete"),clear:Sn("clear"),forEach:Ur(!0,!1)},o={get(s){return Wr(this,s,!0,!0)},get size(){return Kr(this,!0)},has(s){return jr.call(this,s,!0)},add:Sn("add"),set:Sn("set"),delete:Sn("delete"),clear:Sn("clear"),forEach:Ur(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Vr(s,!1,!1),n[s]=Vr(s,!0,!1),t[s]=Vr(s,!1,!0),o[s]=Vr(s,!0,!0)}),[e,n,t,o]}const[ev,tv,nv,ov]=Qh();function Ra(e,t){const n=t?e?ov:nv:e?tv:ev;return(o,r,s)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(Oe(n,r)&&r in o?n:o,r,s)}const rv={get:Ra(!1,!1)},sv={get:Ra(!1,!0)},lv={get:Ra(!0,!1)},vf=new WeakMap,gf=new WeakMap,mf=new WeakMap,av=new WeakMap;function iv(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function uv(e){return e.__v_skip||!Object.isExtensible(e)?0:iv(Mh(e))}function Yt(e){return Po(e)?e:Pa(e,!1,hf,rv,vf)}function yf(e){return Pa(e,!1,Jh,sv,gf)}function Ks(e){return Pa(e,!0,Zh,lv,mf)}function Pa(e,t,n,o,r){if(!Re(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const l=uv(e);if(l===0)return e;const a=new Proxy(e,l===2?o:n);return r.set(e,a),a}function $o(e){return Po(e)?$o(e.__v_raw):!!(e&&e.__v_isReactive)}function Po(e){return!!(e&&e.__v_isReadonly)}function Cs(e){return!!(e&&e.__v_isShallow)}function bf(e){return $o(e)||Po(e)}function Ie(e){const t=e&&e.__v_raw;return t?Ie(t):e}function wf(e){return bs(e,"__v_skip",!0),e}const Cr=e=>Re(e)?Yt(e):e,ka=e=>Re(e)?Ks(e):e;function Cf(e){Fn&&Wt&&(e=Ie(e),ff(e.dep||(e.dep=Oa())))}function _f(e,t){e=Ie(e);const n=e.dep;n&&Bl(n)}function Ve(e){return!!(e&&e.__v_isRef===!0)}function R(e){return Ef(e,!1)}function ar(e){return Ef(e,!0)}function Ef(e,t){return Ve(e)?e:new cv(e,t)}class cv{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Ie(t),this._value=n?t:Cr(t)}get value(){return Cf(this),this._value}set value(t){const n=this.__v_isShallow||Cs(t)||Po(t);t=n?t:Ie(t),wr(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Cr(t),_f(this))}}function y(e){return Ve(e)?e.value:e}const fv={get:(e,t,n)=>y(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Ve(r)&&!Ve(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function Sf(e){return $o(e)?e:new Proxy(e,fv)}function Ia(e){const t=ce(e)?new Array(e.length):{};for(const n in e)t[n]=It(e,n);return t}class dv{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Hh(Ie(this._object),this._key)}}function It(e,t,n){const o=e[t];return Ve(o)?o:new dv(e,t,n)}var xf;class pv{constructor(t,n,o,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[xf]=!1,this._dirty=!0,this.effect=new Aa(t,()=>{this._dirty||(this._dirty=!0,_f(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=o}get value(){const t=Ie(this);return Cf(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}xf="__v_isReadonly";function Tf(e,t,n=!1){let o,r;const s=me(e);return s?(o=e,r=rt):(o=e.get,r=e.set),new pv(o,r,s||!r,n)}function hv(e,...t){}function Bn(e,t,n,o){let r;try{r=o?e(...o):e()}catch(s){Us(s,t,n)}return r}function Lt(e,t,n,o){if(me(e)){const s=Bn(e,t,n,o);return s&&nf(s)&&s.catch(l=>{Us(l,t,n)}),s}const r=[];for(let s=0;s>>1;Er(ft[o])Qt&&ft.splice(t,1)}function yv(e){ce(e)?Ro.push(...e):(!pn||!pn.includes(e,e.allowRecurse?Jn+1:Jn))&&Ro.push(e),Af()}function Di(e,t=_r?Qt+1:0){for(;tEr(n)-Er(o)),Jn=0;Jne.id==null?1/0:e.id,bv=(e,t)=>{const n=Er(e)-Er(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function $f(e){Hl=!1,_r=!0,ft.sort(bv);const t=rt;try{for(Qt=0;QtMe(h)?h.trim():h)),f&&(r=n.map(Ph))}let a,i=o[a=as(t)]||o[a=as(Vt(t))];!i&&s&&(i=o[a=as(mo(t))]),i&&Lt(i,e,6,r);const u=o[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Lt(u,e,6,r)}}function Rf(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(r!==void 0)return r;const s=e.emits;let l={},a=!1;if(!me(e)){const i=u=>{const c=Rf(u,t,!0);c&&(a=!0,ct(l,c))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!s&&!a?(Re(e)&&o.set(e,null),null):(ce(s)?s.forEach(i=>l[i]=null):ct(l,s),Re(e)&&o.set(e,l),l)}function Vs(e,t){return!e||!Hs(t)?!1:(t=t.slice(2).replace(/Once$/,""),Oe(e,t[0].toLowerCase()+t.slice(1))||Oe(e,mo(t))||Oe(e,t))}let it=null,Pf=null;function _s(e){const t=it;return it=e,Pf=e&&e.type.__scopeId||null,t}function fe(e,t=it,n){if(!t||e._n)return e;const o=(...r)=>{o._d&&Qi(-1);const s=_s(t);let l;try{l=e(...r)}finally{_s(s),o._d&&Qi(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function hl(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:s,propsOptions:[l],slots:a,attrs:i,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:p,inheritAttrs:v}=e;let b,g;const C=_s(e);try{if(n.shapeFlag&4){const m=r||o;b=Jt(c.call(m,m,f,s,h,d,p)),g=i}else{const m=t;b=Jt(m.length>1?m(s,{attrs:i,slots:a,emit:u}):m(s,null)),g=t.props?i:Cv(i)}}catch(m){fr.length=0,Us(m,e,1),b=ae(Ct)}let E=b;if(g&&v!==!1){const m=Object.keys(g),{shapeFlag:M}=E;m.length&&M&7&&(l&&m.some(Sa)&&(g=_v(g,l)),E=yn(E,g))}return n.dirs&&(E=yn(E),E.dirs=E.dirs?E.dirs.concat(n.dirs):n.dirs),n.transition&&(E.transition=n.transition),b=E,_s(C),b}const Cv=e=>{let t;for(const n in e)(n==="class"||n==="style"||Hs(n))&&((t||(t={}))[n]=e[n]);return t},_v=(e,t)=>{const n={};for(const o in e)(!Sa(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Ev(e,t,n){const{props:o,children:r,component:s}=e,{props:l,children:a,patchFlag:i}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return o?Wi(o,l,u):!!l;if(i&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function Tv(e,t){t&&t.pendingBranch?ce(e)?t.effects.push(...e):t.effects.push(e):yv(e)}function st(e,t){if(nt){let n=nt.provides;const o=nt.parent&&nt.parent.provides;o===n&&(n=nt.provides=Object.create(o)),n[e]=t}}function Se(e,t,n=!1){const o=nt||it;if(o){const r=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&me(t)?t.call(o.proxy):t}}function io(e,t){return Fa(e,null,t)}const qr={};function he(e,t,n){return Fa(e,t,n)}function Fa(e,t,{immediate:n,deep:o,flush:r,onTrack:s,onTrigger:l}=Ye){const a=sf()===(nt==null?void 0:nt.scope)?nt:null;let i,u=!1,c=!1;if(Ve(e)?(i=()=>e.value,u=Cs(e)):$o(e)?(i=()=>e,o=!0):ce(e)?(c=!0,u=e.some(E=>$o(E)||Cs(E)),i=()=>e.map(E=>{if(Ve(E))return E.value;if($o(E))return no(E);if(me(E))return Bn(E,a,2)})):me(e)?t?i=()=>Bn(e,a,2):i=()=>{if(!(a&&a.isUnmounted))return f&&f(),Lt(e,a,3,[d])}:i=rt,t&&o){const E=i;i=()=>no(E())}let f,d=E=>{f=g.onStop=()=>{Bn(E,a,4)}},h;if(xr)if(d=rt,t?n&&Lt(t,a,3,[i(),c?[]:void 0,d]):i(),r==="sync"){const E=yg();h=E.__watcherHandles||(E.__watcherHandles=[])}else return rt;let p=c?new Array(e.length).fill(qr):qr;const v=()=>{if(g.active)if(t){const E=g.run();(o||u||(c?E.some((m,M)=>wr(m,p[M])):wr(E,p)))&&(f&&f(),Lt(t,a,3,[E,p===qr?void 0:c&&p[0]===qr?[]:p,d]),p=E)}else g.run()};v.allowRecurse=!!t;let b;r==="sync"?b=v:r==="post"?b=()=>wt(v,a&&a.suspense):(v.pre=!0,a&&(v.id=a.uid),b=()=>Na(v));const g=new Aa(i,b);t?n?v():p=g.run():r==="post"?wt(g.run.bind(g),a&&a.suspense):g.run();const C=()=>{g.stop(),a&&a.scope&&xa(a.scope.effects,g)};return h&&h.push(C),C}function Ov(e,t,n){const o=this.proxy,r=Me(e)?e.includes(".")?kf(o,e):()=>o[e]:e.bind(o,o);let s;me(t)?s=t:(s=t.handler,n=t);const l=nt;ko(this);const a=Fa(r,s.bind(o),n);return l?ko(l):uo(),a}function kf(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;r{no(n,t)});else if(rf(e))for(const n in e)no(e[n],t);return e}function Av(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ze(()=>{e.isMounted=!0}),vt(()=>{e.isUnmounting=!0}),e}const kt=[Function,Array],Mv={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:kt,onEnter:kt,onAfterEnter:kt,onEnterCancelled:kt,onBeforeLeave:kt,onLeave:kt,onAfterLeave:kt,onLeaveCancelled:kt,onBeforeAppear:kt,onAppear:kt,onAfterAppear:kt,onAppearCancelled:kt},setup(e,{slots:t}){const n=je(),o=Av();let r;return()=>{const s=t.default&&Nf(t.default(),!0);if(!s||!s.length)return;let l=s[0];if(s.length>1){for(const v of s)if(v.type!==Ct){l=v;break}}const a=Ie(e),{mode:i}=a;if(o.isLeaving)return vl(l);const u=ji(l);if(!u)return vl(l);const c=zl(u,a,o,n);Dl(u,c);const f=n.subTree,d=f&&ji(f);let h=!1;const{getTransitionKey:p}=u.type;if(p){const v=p();r===void 0?r=v:v!==r&&(r=v,h=!0)}if(d&&d.type!==Ct&&(!Qn(u,d)||h)){const v=zl(d,a,o,n);if(Dl(d,v),i==="out-in")return o.isLeaving=!0,v.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&n.update()},vl(l);i==="in-out"&&u.type!==Ct&&(v.delayLeave=(b,g,C)=>{const E=Lf(o,d);E[String(d.key)]=d,b._leaveCb=()=>{g(),b._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=C})}return l}}},If=Mv;function Lf(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function zl(e,t,n,o){const{appear:r,mode:s,persisted:l=!1,onBeforeEnter:a,onEnter:i,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:p,onBeforeAppear:v,onAppear:b,onAfterAppear:g,onAppearCancelled:C}=t,E=String(e.key),m=Lf(n,e),M=(T,F)=>{T&&Lt(T,o,9,F)},x=(T,F)=>{const $=F[1];M(T,F),ce(T)?T.every(N=>N.length<=1)&&$():T.length<=1&&$()},_={mode:s,persisted:l,beforeEnter(T){let F=a;if(!n.isMounted)if(r)F=v||a;else return;T._leaveCb&&T._leaveCb(!0);const $=m[E];$&&Qn(e,$)&&$.el._leaveCb&&$.el._leaveCb(),M(F,[T])},enter(T){let F=i,$=u,N=c;if(!n.isMounted)if(r)F=b||i,$=g||u,N=C||c;else return;let O=!1;const z=T._enterCb=Q=>{O||(O=!0,Q?M(N,[T]):M($,[T]),_.delayedLeave&&_.delayedLeave(),T._enterCb=void 0)};F?x(F,[T,z]):z()},leave(T,F){const $=String(e.key);if(T._enterCb&&T._enterCb(!0),n.isUnmounting)return F();M(f,[T]);let N=!1;const O=T._leaveCb=z=>{N||(N=!0,F(),z?M(p,[T]):M(h,[T]),T._leaveCb=void 0,m[$]===e&&delete m[$])};m[$]=e,d?x(d,[T,O]):O()},clone(T){return zl(T,t,n,o)}};return _}function vl(e){if(qs(e))return e=yn(e),e.children=null,e}function ji(e){return qs(e)?e.children?e.children[0]:void 0:e}function Dl(e,t){e.shapeFlag&6&&e.component?Dl(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Nf(e,t=!1,n){let o=[],r=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader,qs=e=>e.type.__isKeepAlive;function $v(e,t){Bf(e,"a",t)}function Ff(e,t){Bf(e,"da",t)}function Bf(e,t,n=nt){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Ys(t,o,n),n){let r=n.parent;for(;r&&r.parent;)qs(r.parent.vnode)&&Rv(o,t,n,r),r=r.parent}}function Rv(e,t,n,o){const r=Ys(t,e,o,!0);Go(()=>{xa(o[t],r)},n)}function Ys(e,t,n=nt,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;qo(),ko(n);const a=Lt(t,n,e,l);return uo(),Yo(),a});return o?r.unshift(s):r.push(s),s}}const wn=e=>(t,n=nt)=>(!xr||e==="sp")&&Ys(e,(...o)=>t(...o),n),Gs=wn("bm"),Ze=wn("m"),Pv=wn("bu"),Ba=wn("u"),vt=wn("bum"),Go=wn("um"),kv=wn("sp"),Iv=wn("rtg"),Lv=wn("rtc");function Nv(e,t=nt){Ys("ec",e,t)}function lt(e,t){const n=it;if(n===null)return e;const o=Zs(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let s=0;st(l,a,void 0,s&&s[a]));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,i=l.length;aon(t)?!(t.type===Ct||t.type===Ke&&!Df(t.children)):!0)?e:null}function Bv(e,t){const n={};for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:as(o)]=e[o];return n}const Wl=e=>e?Jf(e)?Zs(e)||e.proxy:Wl(e.parent):null,ur=ct(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Wl(e.parent),$root:e=>Wl(e.root),$emit:e=>e.emit,$options:e=>Da(e),$forceUpdate:e=>e.f||(e.f=()=>Na(e.update)),$nextTick:e=>e.n||(e.n=Ue.bind(e.proxy)),$watch:e=>Ov.bind(e)}),gl=(e,t)=>e!==Ye&&!e.__isScriptSetup&&Oe(e,t),Hv={get({_:e},t){const{ctx:n,setupState:o,data:r,props:s,accessCache:l,type:a,appContext:i}=e;let u;if(t[0]!=="$"){const h=l[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(gl(o,t))return l[t]=1,o[t];if(r!==Ye&&Oe(r,t))return l[t]=2,r[t];if((u=e.propsOptions[0])&&Oe(u,t))return l[t]=3,s[t];if(n!==Ye&&Oe(n,t))return l[t]=4,n[t];jl&&(l[t]=0)}}const c=ur[t];let f,d;if(c)return t==="$attrs"&&xt(e,"get",t),c(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==Ye&&Oe(n,t))return l[t]=4,n[t];if(d=i.config.globalProperties,Oe(d,t))return d[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return gl(r,t)?(r[t]=n,!0):o!==Ye&&Oe(o,t)?(o[t]=n,!0):Oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:s}},l){let a;return!!n[l]||e!==Ye&&Oe(e,l)||gl(t,l)||(a=s[0])&&Oe(a,l)||Oe(o,l)||Oe(ur,l)||Oe(r.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let jl=!0;function zv(e){const t=Da(e),n=e.proxy,o=e.ctx;jl=!1,t.beforeCreate&&Vi(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:l,watch:a,provide:i,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:p,activated:v,deactivated:b,beforeDestroy:g,beforeUnmount:C,destroyed:E,unmounted:m,render:M,renderTracked:x,renderTriggered:_,errorCaptured:T,serverPrefetch:F,expose:$,inheritAttrs:N,components:O,directives:z,filters:Q}=t;if(u&&Dv(u,o,null,e.appContext.config.unwrapInjectedRef),l)for(const oe in l){const W=l[oe];me(W)&&(o[oe]=W.bind(n))}if(r){const oe=r.call(n,n);Re(oe)&&(e.data=Yt(oe))}if(jl=!0,s)for(const oe in s){const W=s[oe],P=me(W)?W.bind(n,n):me(W.get)?W.get.bind(n,n):rt,te=!me(W)&&me(W.set)?W.set.bind(n):rt,pe=A({get:P,set:te});Object.defineProperty(o,oe,{enumerable:!0,configurable:!0,get:()=>pe.value,set:Ce=>pe.value=Ce})}if(a)for(const oe in a)Wf(a[oe],o,n,oe);if(i){const oe=me(i)?i.call(n):i;Reflect.ownKeys(oe).forEach(W=>{st(W,oe[W])})}c&&Vi(c,e,"c");function J(oe,W){ce(W)?W.forEach(P=>oe(P.bind(n))):W&&oe(W.bind(n))}if(J(Gs,f),J(Ze,d),J(Pv,h),J(Ba,p),J($v,v),J(Ff,b),J(Nv,T),J(Lv,x),J(Iv,_),J(vt,C),J(Go,m),J(kv,F),ce($))if($.length){const oe=e.exposed||(e.exposed={});$.forEach(W=>{Object.defineProperty(oe,W,{get:()=>n[W],set:P=>n[W]=P})})}else e.exposed||(e.exposed={});M&&e.render===rt&&(e.render=M),N!=null&&(e.inheritAttrs=N),O&&(e.components=O),z&&(e.directives=z)}function Dv(e,t,n=rt,o=!1){ce(e)&&(e=Kl(e));for(const r in e){const s=e[r];let l;Re(s)?"default"in s?l=Se(s.from||r,s.default,!0):l=Se(s.from||r):l=Se(s),Ve(l)&&o?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>l.value,set:a=>l.value=a}):t[r]=l}}function Vi(e,t,n){Lt(ce(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Wf(e,t,n,o){const r=o.includes(".")?kf(n,o):()=>n[o];if(Me(e)){const s=t[e];me(s)&&he(r,s)}else if(me(e))he(r,e.bind(n));else if(Re(e))if(ce(e))e.forEach(s=>Wf(s,t,n,o));else{const s=me(e.handler)?e.handler.bind(n):t[e.handler];me(s)&&he(r,s,e)}}function Da(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:l}}=e.appContext,a=s.get(t);let i;return a?i=a:!r.length&&!n&&!o?i=t:(i={},r.length&&r.forEach(u=>Es(i,u,l,!0)),Es(i,t,l)),Re(t)&&s.set(t,i),i}function Es(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&Es(e,s,n,!0),r&&r.forEach(l=>Es(e,l,n,!0));for(const l in t)if(!(o&&l==="expose")){const a=Wv[l]||n&&n[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const Wv={data:qi,props:Gn,emits:Gn,methods:Gn,computed:Gn,beforeCreate:gt,created:gt,beforeMount:gt,mounted:gt,beforeUpdate:gt,updated:gt,beforeDestroy:gt,beforeUnmount:gt,destroyed:gt,unmounted:gt,activated:gt,deactivated:gt,errorCaptured:gt,serverPrefetch:gt,components:Gn,directives:Gn,watch:Kv,provide:qi,inject:jv};function qi(e,t){return t?e?function(){return ct(me(e)?e.call(this,this):e,me(t)?t.call(this,this):t)}:t:e}function jv(e,t){return Gn(Kl(e),Kl(t))}function Kl(e){if(ce(e)){const t={};for(let n=0;n0)&&!(l&16)){if(l&8){const c=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[d,h]=Kf(f,t,!0);ct(l,d),h&&a.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!i)return Re(e)&&o.set(e,Ao),Ao;if(ce(s))for(let c=0;c-1,h[1]=v<0||p-1||Oe(h,"default"))&&a.push(f)}}}const u=[l,a];return Re(e)&&o.set(e,u),u}function Yi(e){return e[0]!=="$"}function Gi(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Xi(e,t){return Gi(e)===Gi(t)}function Zi(e,t){return ce(t)?t.findIndex(n=>Xi(n,e)):me(t)&&Xi(t,e)?0:-1}const Uf=e=>e[0]==="_"||e==="$stable",Wa=e=>ce(e)?e.map(Jt):[Jt(e)],qv=(e,t,n)=>{if(t._n)return t;const o=fe((...r)=>Wa(t(...r)),n);return o._c=!1,o},Vf=(e,t,n)=>{const o=e._ctx;for(const r in e){if(Uf(r))continue;const s=e[r];if(me(s))t[r]=qv(r,s,o);else if(s!=null){const l=Wa(s);t[r]=()=>l}}},qf=(e,t)=>{const n=Wa(t);e.slots.default=()=>n},Yv=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Ie(t),bs(t,"_",n)):Vf(t,e.slots={})}else e.slots={},t&&qf(e,t);bs(e.slots,Xs,1)},Gv=(e,t,n)=>{const{vnode:o,slots:r}=e;let s=!0,l=Ye;if(o.shapeFlag&32){const a=t._;a?n&&a===1?s=!1:(ct(r,t),!n&&a===1&&delete r._):(s=!t.$stable,Vf(t,r)),l=t}else t&&(qf(e,t),l={default:1});if(s)for(const a in r)!Uf(a)&&!(a in l)&&delete r[a]};function Yf(){return{app:null,config:{isNativeTag:Th,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Xv=0;function Zv(e,t){return function(o,r=null){me(o)||(o=Object.assign({},o)),r!=null&&!Re(r)&&(r=null);const s=Yf(),l=new Set;let a=!1;const i=s.app={_uid:Xv++,_component:o,_props:r,_container:null,_context:s,_instance:null,version:bg,get config(){return s.config},set config(u){},use(u,...c){return l.has(u)||(u&&me(u.install)?(l.add(u),u.install(i,...c)):me(u)&&(l.add(u),u(i,...c))),i},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),i},component(u,c){return c?(s.components[u]=c,i):s.components[u]},directive(u,c){return c?(s.directives[u]=c,i):s.directives[u]},mount(u,c,f){if(!a){const d=ae(o,r);return d.appContext=s,c&&t?t(d,u):e(d,u,f),a=!0,i._container=u,u.__vue_app__=i,Zs(d.component)||d.component.proxy}},unmount(){a&&(e(null,i._container),delete i._container.__vue_app__)},provide(u,c){return s.provides[u]=c,i}};return i}}function Vl(e,t,n,o,r=!1){if(ce(e)){e.forEach((d,h)=>Vl(d,t&&(ce(t)?t[h]:t),n,o,r));return}if(ir(o)&&!r)return;const s=o.shapeFlag&4?Zs(o.component)||o.component.proxy:o.el,l=r?null:s,{i:a,r:i}=e,u=t&&t.r,c=a.refs===Ye?a.refs={}:a.refs,f=a.setupState;if(u!=null&&u!==i&&(Me(u)?(c[u]=null,Oe(f,u)&&(f[u]=null)):Ve(u)&&(u.value=null)),me(i))Bn(i,a,12,[l,c]);else{const d=Me(i),h=Ve(i);if(d||h){const p=()=>{if(e.f){const v=d?Oe(f,i)?f[i]:c[i]:i.value;r?ce(v)&&xa(v,s):ce(v)?v.includes(s)||v.push(s):d?(c[i]=[s],Oe(f,i)&&(f[i]=c[i])):(i.value=[s],e.k&&(c[e.k]=i.value))}else d?(c[i]=l,Oe(f,i)&&(f[i]=l)):h&&(i.value=l,e.k&&(c[e.k]=l))};l?(p.id=-1,wt(p,n)):p()}}}const wt=Tv;function Jv(e){return Qv(e)}function Qv(e,t){const n=Ih();n.__VUE__=!0;const{insert:o,remove:r,patchProp:s,createElement:l,createText:a,createComment:i,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=rt,insertStaticContent:p}=e,v=(w,S,L,B=null,D=null,X=null,ne=!1,q=null,Z=!!S.dynamicChildren)=>{if(w===S)return;w&&!Qn(w,S)&&(B=U(w),Ce(w,D,X,!0),w=null),S.patchFlag===-2&&(Z=!1,S.dynamicChildren=null);const{type:j,ref:k,shapeFlag:G}=S;switch(j){case Xo:b(w,S,L,B);break;case Ct:g(w,S,L,B);break;case ml:w==null&&C(S,L,B,ne);break;case Ke:O(w,S,L,B,D,X,ne,q,Z);break;default:G&1?M(w,S,L,B,D,X,ne,q,Z):G&6?z(w,S,L,B,D,X,ne,q,Z):(G&64||G&128)&&j.process(w,S,L,B,D,X,ne,q,Z,be)}k!=null&&D&&Vl(k,w&&w.ref,X,S||w,!S)},b=(w,S,L,B)=>{if(w==null)o(S.el=a(S.children),L,B);else{const D=S.el=w.el;S.children!==w.children&&u(D,S.children)}},g=(w,S,L,B)=>{w==null?o(S.el=i(S.children||""),L,B):S.el=w.el},C=(w,S,L,B)=>{[w.el,w.anchor]=p(w.children,S,L,B,w.el,w.anchor)},E=({el:w,anchor:S},L,B)=>{let D;for(;w&&w!==S;)D=d(w),o(w,L,B),w=D;o(S,L,B)},m=({el:w,anchor:S})=>{let L;for(;w&&w!==S;)L=d(w),r(w),w=L;r(S)},M=(w,S,L,B,D,X,ne,q,Z)=>{ne=ne||S.type==="svg",w==null?x(S,L,B,D,X,ne,q,Z):F(w,S,D,X,ne,q,Z)},x=(w,S,L,B,D,X,ne,q)=>{let Z,j;const{type:k,props:G,shapeFlag:le,transition:ve,dirs:Ae}=w;if(Z=w.el=l(w.type,X,G&&G.is,G),le&8?c(Z,w.children):le&16&&T(w.children,Z,null,B,D,X&&k!=="foreignObject",ne,q),Ae&&Kn(w,null,B,"created"),_(Z,w,w.scopeId,ne,B),G){for(const Fe in G)Fe!=="value"&&!ls(Fe)&&s(Z,Fe,null,G[Fe],X,w.children,B,D,V);"value"in G&&s(Z,"value",null,G.value),(j=G.onVnodeBeforeMount)&&Zt(j,B,w)}Ae&&Kn(w,null,B,"beforeMount");const Be=(!D||D&&!D.pendingBranch)&&ve&&!ve.persisted;Be&&ve.beforeEnter(Z),o(Z,S,L),((j=G&&G.onVnodeMounted)||Be||Ae)&&wt(()=>{j&&Zt(j,B,w),Be&&ve.enter(Z),Ae&&Kn(w,null,B,"mounted")},D)},_=(w,S,L,B,D)=>{if(L&&h(w,L),B)for(let X=0;X{for(let j=Z;j{const q=S.el=w.el;let{patchFlag:Z,dynamicChildren:j,dirs:k}=S;Z|=w.patchFlag&16;const G=w.props||Ye,le=S.props||Ye;let ve;L&&Un(L,!1),(ve=le.onVnodeBeforeUpdate)&&Zt(ve,L,S,w),k&&Kn(S,w,L,"beforeUpdate"),L&&Un(L,!0);const Ae=D&&S.type!=="foreignObject";if(j?$(w.dynamicChildren,j,q,L,B,Ae,X):ne||W(w,S,q,null,L,B,Ae,X,!1),Z>0){if(Z&16)N(q,S,G,le,L,B,D);else if(Z&2&&G.class!==le.class&&s(q,"class",null,le.class,D),Z&4&&s(q,"style",G.style,le.style,D),Z&8){const Be=S.dynamicProps;for(let Fe=0;Fe{ve&&Zt(ve,L,S,w),k&&Kn(S,w,L,"updated")},B)},$=(w,S,L,B,D,X,ne)=>{for(let q=0;q{if(L!==B){if(L!==Ye)for(const q in L)!ls(q)&&!(q in B)&&s(w,q,L[q],null,ne,S.children,D,X,V);for(const q in B){if(ls(q))continue;const Z=B[q],j=L[q];Z!==j&&q!=="value"&&s(w,q,j,Z,ne,S.children,D,X,V)}"value"in B&&s(w,"value",L.value,B.value)}},O=(w,S,L,B,D,X,ne,q,Z)=>{const j=S.el=w?w.el:a(""),k=S.anchor=w?w.anchor:a("");let{patchFlag:G,dynamicChildren:le,slotScopeIds:ve}=S;ve&&(q=q?q.concat(ve):ve),w==null?(o(j,L,B),o(k,L,B),T(S.children,L,k,D,X,ne,q,Z)):G>0&&G&64&&le&&w.dynamicChildren?($(w.dynamicChildren,le,L,D,X,ne,q),(S.key!=null||D&&S===D.subTree)&&ja(w,S,!0)):W(w,S,L,k,D,X,ne,q,Z)},z=(w,S,L,B,D,X,ne,q,Z)=>{S.slotScopeIds=q,w==null?S.shapeFlag&512?D.ctx.activate(S,L,B,ne,Z):Q(S,L,B,D,X,ne,Z):K(w,S,Z)},Q=(w,S,L,B,D,X,ne)=>{const q=w.component=cg(w,B,D);if(qs(w)&&(q.ctx.renderer=be),fg(q),q.asyncDep){if(D&&D.registerDep(q,J),!w.el){const Z=q.subTree=ae(Ct);g(null,Z,S,L)}return}J(q,w,S,L,D,X,ne)},K=(w,S,L)=>{const B=S.component=w.component;if(Ev(w,S,L))if(B.asyncDep&&!B.asyncResolved){oe(B,S,L);return}else B.next=S,mv(B.update),B.update();else S.el=w.el,B.vnode=S},J=(w,S,L,B,D,X,ne)=>{const q=()=>{if(w.isMounted){let{next:k,bu:G,u:le,parent:ve,vnode:Ae}=w,Be=k,Fe;Un(w,!1),k?(k.el=Ae.el,oe(w,k,ne)):k=Ae,G&&is(G),(Fe=k.props&&k.props.onVnodeBeforeUpdate)&&Zt(Fe,ve,k,Ae),Un(w,!0);const Qe=hl(w),re=w.subTree;w.subTree=Qe,v(re,Qe,f(re.el),U(re),w,D,X),k.el=Qe.el,Be===null&&Sv(w,Qe.el),le&&wt(le,D),(Fe=k.props&&k.props.onVnodeUpdated)&&wt(()=>Zt(Fe,ve,k,Ae),D)}else{let k;const{el:G,props:le}=S,{bm:ve,m:Ae,parent:Be}=w,Fe=ir(S);if(Un(w,!1),ve&&is(ve),!Fe&&(k=le&&le.onVnodeBeforeMount)&&Zt(k,Be,S),Un(w,!0),G&&we){const Qe=()=>{w.subTree=hl(w),we(G,w.subTree,w,D,null)};Fe?S.type.__asyncLoader().then(()=>!w.isUnmounted&&Qe()):Qe()}else{const Qe=w.subTree=hl(w);v(null,Qe,L,B,w,D,X),S.el=Qe.el}if(Ae&&wt(Ae,D),!Fe&&(k=le&&le.onVnodeMounted)){const Qe=S;wt(()=>Zt(k,Be,Qe),D)}(S.shapeFlag&256||Be&&ir(Be.vnode)&&Be.vnode.shapeFlag&256)&&w.a&&wt(w.a,D),w.isMounted=!0,S=L=B=null}},Z=w.effect=new Aa(q,()=>Na(j),w.scope),j=w.update=()=>Z.run();j.id=w.uid,Un(w,!0),j()},oe=(w,S,L)=>{S.component=w;const B=w.vnode.props;w.vnode=S,w.next=null,Vv(w,S.props,B,L),Gv(w,S.children,L),qo(),Di(),Yo()},W=(w,S,L,B,D,X,ne,q,Z=!1)=>{const j=w&&w.children,k=w?w.shapeFlag:0,G=S.children,{patchFlag:le,shapeFlag:ve}=S;if(le>0){if(le&128){te(j,G,L,B,D,X,ne,q,Z);return}else if(le&256){P(j,G,L,B,D,X,ne,q,Z);return}}ve&8?(k&16&&V(j,D,X),G!==j&&c(L,G)):k&16?ve&16?te(j,G,L,B,D,X,ne,q,Z):V(j,D,X,!0):(k&8&&c(L,""),ve&16&&T(G,L,B,D,X,ne,q,Z))},P=(w,S,L,B,D,X,ne,q,Z)=>{w=w||Ao,S=S||Ao;const j=w.length,k=S.length,G=Math.min(j,k);let le;for(le=0;lek?V(w,D,X,!0,!1,G):T(S,L,B,D,X,ne,q,Z,G)},te=(w,S,L,B,D,X,ne,q,Z)=>{let j=0;const k=S.length;let G=w.length-1,le=k-1;for(;j<=G&&j<=le;){const ve=w[j],Ae=S[j]=Z?Pn(S[j]):Jt(S[j]);if(Qn(ve,Ae))v(ve,Ae,L,null,D,X,ne,q,Z);else break;j++}for(;j<=G&&j<=le;){const ve=w[G],Ae=S[le]=Z?Pn(S[le]):Jt(S[le]);if(Qn(ve,Ae))v(ve,Ae,L,null,D,X,ne,q,Z);else break;G--,le--}if(j>G){if(j<=le){const ve=le+1,Ae=vele)for(;j<=G;)Ce(w[j],D,X,!0),j++;else{const ve=j,Ae=j,Be=new Map;for(j=Ae;j<=le;j++){const ze=S[j]=Z?Pn(S[j]):Jt(S[j]);ze.key!=null&&Be.set(ze.key,j)}let Fe,Qe=0;const re=le-Ae+1;let ge=!1,ke=0;const Te=new Array(re);for(j=0;j=re){Ce(ze,D,X,!0);continue}let Je;if(ze.key!=null)Je=Be.get(ze.key);else for(Fe=Ae;Fe<=le;Fe++)if(Te[Fe-Ae]===0&&Qn(ze,S[Fe])){Je=Fe;break}Je===void 0?Ce(ze,D,X,!0):(Te[Je-Ae]=j+1,Je>=ke?ke=Je:ge=!0,v(ze,S[Je],L,null,D,X,ne,q,Z),Qe++)}const He=ge?eg(Te):Ao;for(Fe=He.length-1,j=re-1;j>=0;j--){const ze=Ae+j,Je=S[ze],an=ze+1{const{el:X,type:ne,transition:q,children:Z,shapeFlag:j}=w;if(j&6){pe(w.component.subTree,S,L,B);return}if(j&128){w.suspense.move(S,L,B);return}if(j&64){ne.move(w,S,L,be);return}if(ne===Ke){o(X,S,L);for(let G=0;Gq.enter(X),D);else{const{leave:G,delayLeave:le,afterLeave:ve}=q,Ae=()=>o(X,S,L),Be=()=>{G(X,()=>{Ae(),ve&&ve()})};le?le(X,Ae,Be):Be()}else o(X,S,L)},Ce=(w,S,L,B=!1,D=!1)=>{const{type:X,props:ne,ref:q,children:Z,dynamicChildren:j,shapeFlag:k,patchFlag:G,dirs:le}=w;if(q!=null&&Vl(q,null,L,w,!0),k&256){S.ctx.deactivate(w);return}const ve=k&1&&le,Ae=!ir(w);let Be;if(Ae&&(Be=ne&&ne.onVnodeBeforeUnmount)&&Zt(Be,S,w),k&6)I(w.component,L,B);else{if(k&128){w.suspense.unmount(L,B);return}ve&&Kn(w,null,S,"beforeUnmount"),k&64?w.type.remove(w,S,L,D,be,B):j&&(X!==Ke||G>0&&G&64)?V(j,S,L,!1,!0):(X===Ke&&G&384||!D&&k&16)&&V(Z,S,L),B&&Pe(w)}(Ae&&(Be=ne&&ne.onVnodeUnmounted)||ve)&&wt(()=>{Be&&Zt(Be,S,w),ve&&Kn(w,null,S,"unmounted")},L)},Pe=w=>{const{type:S,el:L,anchor:B,transition:D}=w;if(S===Ke){Le(L,B);return}if(S===ml){m(w);return}const X=()=>{r(L),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(w.shapeFlag&1&&D&&!D.persisted){const{leave:ne,delayLeave:q}=D,Z=()=>ne(L,X);q?q(w.el,X,Z):Z()}else X()},Le=(w,S)=>{let L;for(;w!==S;)L=d(w),r(w),w=L;r(S)},I=(w,S,L)=>{const{bum:B,scope:D,update:X,subTree:ne,um:q}=w;B&&is(B),D.stop(),X&&(X.active=!1,Ce(ne,w,S,L)),q&&wt(q,S),wt(()=>{w.isUnmounted=!0},S),S&&S.pendingBranch&&!S.isUnmounted&&w.asyncDep&&!w.asyncResolved&&w.suspenseId===S.pendingId&&(S.deps--,S.deps===0&&S.resolve())},V=(w,S,L,B=!1,D=!1,X=0)=>{for(let ne=X;new.shapeFlag&6?U(w.component.subTree):w.shapeFlag&128?w.suspense.next():d(w.anchor||w.el),ee=(w,S,L)=>{w==null?S._vnode&&Ce(S._vnode,null,null,!0):v(S._vnode||null,w,S,null,null,null,L),Di(),Mf(),S._vnode=w},be={p:v,um:Ce,m:pe,r:Pe,mt:Q,mc:T,pc:W,pbc:$,n:U,o:e};let Ne,we;return t&&([Ne,we]=t(be)),{render:ee,hydrate:Ne,createApp:Zv(ee,Ne)}}function Un({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ja(e,t,n=!1){const o=e.children,r=t.children;if(ce(o)&&ce(r))for(let s=0;s>1,e[n[a]]0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,l=n[s-1];s-- >0;)n[s]=l,l=t[l];return n}const tg=e=>e.__isTeleport,cr=e=>e&&(e.disabled||e.disabled===""),Ji=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ql=(e,t)=>{const n=e&&e.to;return Me(n)?t?t(n):null:n},ng={__isTeleport:!0,process(e,t,n,o,r,s,l,a,i,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:p,createText:v,createComment:b}}=u,g=cr(t.props);let{shapeFlag:C,children:E,dynamicChildren:m}=t;if(e==null){const M=t.el=v(""),x=t.anchor=v("");h(M,n,o),h(x,n,o);const _=t.target=ql(t.props,p),T=t.targetAnchor=v("");_&&(h(T,_),l=l||Ji(_));const F=($,N)=>{C&16&&c(E,$,N,r,s,l,a,i)};g?F(n,x):_&&F(_,T)}else{t.el=e.el;const M=t.anchor=e.anchor,x=t.target=e.target,_=t.targetAnchor=e.targetAnchor,T=cr(e.props),F=T?n:x,$=T?M:_;if(l=l||Ji(x),m?(d(e.dynamicChildren,m,F,r,s,l,a),ja(e,t,!0)):i||f(e,t,F,$,r,s,l,a,!1),g)T||Yr(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=ql(t.props,p);N&&Yr(t,N,null,u,0)}else T&&Yr(t,x,_,u,1)}Gf(t)},remove(e,t,n,o,{um:r,o:{remove:s}},l){const{shapeFlag:a,children:i,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&s(c),(l||!cr(d))&&(s(u),a&16))for(let h=0;h0?jt||Ao:null,sg(),Sr>0&&jt&&jt.push(e),e}function se(e,t,n,o,r,s){return Xf(ie(e,t,n,o,r,s,!0))}function ye(e,t,n,o,r){return Xf(ae(e,t,n,o,r,!0))}function on(e){return e?e.__v_isVNode===!0:!1}function Qn(e,t){return e.type===t.type&&e.key===t.key}const Xs="__vInternal",Zf=({key:e})=>e??null,us=({ref:e,ref_key:t,ref_for:n})=>e!=null?Me(e)||Ve(e)||me(e)?{i:it,r:e,k:t,f:!!n}:e:null;function ie(e,t=null,n=null,o=0,r=null,s=e===Ke?0:1,l=!1,a=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Zf(t),ref:t&&us(t),scopeId:Pf,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:it};return a?(Ka(i,n),s&128&&e.normalize(i)):n&&(i.shapeFlag|=Me(n)?8:16),Sr>0&&!l&&jt&&(i.patchFlag>0||s&6)&&i.patchFlag!==32&&jt.push(i),i}const ae=lg;function lg(e,t=null,n=null,o=0,r=null,s=!1){if((!e||e===Hf)&&(e=Ct),on(e)){const a=yn(e,t,!0);return n&&Ka(a,n),Sr>0&&!s&&jt&&(a.shapeFlag&6?jt[jt.indexOf(e)]=a:jt.push(a)),a.patchFlag|=-2,a}if(vg(e)&&(e=e.__vccOpts),t){t=ag(t);let{class:a,style:i}=t;a&&!Me(a)&&(t.class=Y(a)),Re(i)&&(bf(i)&&!ce(i)&&(i=ct({},i)),t.style=et(i))}const l=Me(e)?1:xv(e)?128:tg(e)?64:Re(e)?4:me(e)?2:0;return ie(e,t,n,o,r,l,s,!0)}function ag(e){return e?bf(e)||Xs in e?ct({},e):e:null}function yn(e,t,n=!1){const{props:o,ref:r,patchFlag:s,children:l}=e,a=t?en(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&Zf(a),ref:t&&t.ref?n&&r?ce(r)?r.concat(us(t)):[r,us(t)]:us(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ke?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&yn(e.ssContent),ssFallback:e.ssFallback&&yn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function _t(e=" ",t=0){return ae(Xo,null,e,t)}function _e(e="",t=!1){return t?(H(),ye(Ct,null,e)):ae(Ct,null,e)}function Jt(e){return e==null||typeof e=="boolean"?ae(Ct):ce(e)?ae(Ke,null,e.slice()):typeof e=="object"?Pn(e):ae(Xo,null,String(e))}function Pn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:yn(e)}function Ka(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ce(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Ka(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Xs in t)?t._ctx=it:r===3&&it&&(it.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else me(t)?(t={default:t,_ctx:it},n=32):(t=String(t),o&64?(n=16,t=[_t(t)]):n=8);e.children=t,e.shapeFlag|=n}function en(...e){const t={};for(let n=0;nnt||it,ko=e=>{nt=e,e.scope.on()},uo=()=>{nt&&nt.scope.off(),nt=null};function Jf(e){return e.vnode.shapeFlag&4}let xr=!1;function fg(e,t=!1){xr=t;const{props:n,children:o}=e.vnode,r=Jf(e);Uv(e,n,r,t),Yv(e,o);const s=r?dg(e,t):void 0;return xr=!1,s}function dg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=wf(new Proxy(e.ctx,Hv));const{setup:o}=n;if(o){const r=e.setupContext=o.length>1?ed(e):null;ko(e),qo();const s=Bn(o,e,0,[e.props,r]);if(Yo(),uo(),nf(s)){if(s.then(uo,uo),t)return s.then(l=>{eu(e,l,t)}).catch(l=>{Us(l,e,0)});e.asyncDep=s}else eu(e,s,t)}else Qf(e,t)}function eu(e,t,n){me(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Re(t)&&(e.setupState=Sf(t)),Qf(e,n)}let tu;function Qf(e,t,n){const o=e.type;if(!e.render){if(!t&&tu&&!o.render){const r=o.template||Da(e).template;if(r){const{isCustomElement:s,compilerOptions:l}=e.appContext.config,{delimiters:a,compilerOptions:i}=o,u=ct(ct({isCustomElement:s,delimiters:a},l),i);o.render=tu(r,u)}}e.render=o.render||rt}ko(e),qo(),zv(e),Yo(),uo()}function pg(e){return new Proxy(e.attrs,{get(t,n){return xt(e,"get","$attrs"),t[n]}})}function ed(e){const t=o=>{e.exposed=o||{}};let n;return{get attrs(){return n||(n=pg(e))},slots:e.slots,emit:e.emit,expose:t}}function Zs(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Sf(wf(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ur)return ur[n](e)},has(t,n){return n in t||n in ur}}))}function hg(e,t=!0){return me(e)?e.displayName||e.name:e.name||t&&e.__name}function vg(e){return me(e)&&"__vccOpts"in e}const A=(e,t)=>Tf(e,t,xr);function Js(){return td().slots}function gg(){return td().attrs}function td(){const e=je();return e.setupContext||(e.setupContext=ed(e))}function de(e,t,n){const o=arguments.length;return o===2?Re(t)&&!ce(t)?on(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&on(n)&&(n=[n]),ae(e,t,n))}const mg=Symbol(""),yg=()=>Se(mg),bg="3.2.47",wg="http://www.w3.org/2000/svg",eo=typeof document<"u"?document:null,nu=eo&&eo.createElement("template"),Cg={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?eo.createElementNS(wg,e):eo.createElement(e,n?{is:n}:void 0);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>eo.createTextNode(e),createComment:e=>eo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>eo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,s){const l=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===s||!(r=r.nextSibling)););else{nu.innerHTML=o?`${e}`:e;const a=nu.content;if(o){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function _g(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Eg(e,t,n){const o=e.style,r=Me(n);if(n&&!r){if(t&&!Me(t))for(const s in t)n[s]==null&&Yl(o,s,"");for(const s in n)Yl(o,s,n[s])}else{const s=o.display;r?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=s)}}const ou=/\s*!important$/;function Yl(e,t,n){if(ce(n))n.forEach(o=>Yl(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=Sg(e,t);ou.test(n)?e.setProperty(mo(o),n.replace(ou,""),"important"):e[o]=n}}const ru=["Webkit","Moz","ms"],yl={};function Sg(e,t){const n=yl[t];if(n)return n;let o=Vt(t);if(o!=="filter"&&o in e)return yl[t]=o;o=Ws(o);for(let r=0;rbl||($g.then(()=>bl=0),bl=Date.now());function Pg(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Lt(kg(o,n.value),t,5,[o])};return n.value=e,n.attached=Rg(),n}function kg(e,t){if(ce(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const au=/^on[a-z]/,Ig=(e,t,n,o,r=!1,s,l,a,i)=>{t==="class"?_g(e,o,r):t==="style"?Eg(e,n,o):Hs(t)?Sa(t)||Ag(e,t,n,o,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Lg(e,t,o,r))?Tg(e,t,o,s,l,a,i):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),xg(e,t,o,r))};function Lg(e,t,n,o){return o?!!(t==="innerHTML"||t==="textContent"||t in e&&au.test(t)&&me(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||au.test(t)&&Me(n)?!1:t in e}const xn="transition",tr="animation",Cn=(e,{slots:t})=>de(If,Ng(e),t);Cn.displayName="Transition";const od={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Cn.props=ct({},If.props,od);const Vn=(e,t=[])=>{ce(e)?e.forEach(n=>n(...t)):e&&e(...t)},iu=e=>e?ce(e)?e.some(t=>t.length>1):e.length>1:!1;function Ng(e){const t={};for(const O in e)O in od||(t[O]=e[O]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:s=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=s,appearActiveClass:u=l,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,p=Fg(r),v=p&&p[0],b=p&&p[1],{onBeforeEnter:g,onEnter:C,onEnterCancelled:E,onLeave:m,onLeaveCancelled:M,onBeforeAppear:x=g,onAppear:_=C,onAppearCancelled:T=E}=t,F=(O,z,Q)=>{qn(O,z?c:a),qn(O,z?u:l),Q&&Q()},$=(O,z)=>{O._isLeaving=!1,qn(O,f),qn(O,h),qn(O,d),z&&z()},N=O=>(z,Q)=>{const K=O?_:C,J=()=>F(z,O,Q);Vn(K,[z,J]),uu(()=>{qn(z,O?i:s),Tn(z,O?c:a),iu(K)||cu(z,o,v,J)})};return ct(t,{onBeforeEnter(O){Vn(g,[O]),Tn(O,s),Tn(O,l)},onBeforeAppear(O){Vn(x,[O]),Tn(O,i),Tn(O,u)},onEnter:N(!1),onAppear:N(!0),onLeave(O,z){O._isLeaving=!0;const Q=()=>$(O,z);Tn(O,f),zg(),Tn(O,d),uu(()=>{O._isLeaving&&(qn(O,f),Tn(O,h),iu(m)||cu(O,o,b,Q))}),Vn(m,[O,Q])},onEnterCancelled(O){F(O,!1),Vn(E,[O])},onAppearCancelled(O){F(O,!0),Vn(T,[O])},onLeaveCancelled(O){$(O),Vn(M,[O])}})}function Fg(e){if(e==null)return null;if(Re(e))return[wl(e.enter),wl(e.leave)];{const t=wl(e);return[t,t]}}function wl(e){return kh(e)}function Tn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function qn(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function uu(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Bg=0;function cu(e,t,n,o){const r=e._endId=++Bg,s=()=>{r===e._endId&&o()};if(n)return setTimeout(s,n);const{type:l,timeout:a,propCount:i}=Hg(e,t);if(!l)return o();const u=l+"end";let c=0;const f=()=>{e.removeEventListener(u,d),s()},d=h=>{h.target===e&&++c>=i&&f()};setTimeout(()=>{c(n[p]||"").split(", "),r=o(`${xn}Delay`),s=o(`${xn}Duration`),l=fu(r,s),a=o(`${tr}Delay`),i=o(`${tr}Duration`),u=fu(a,i);let c=null,f=0,d=0;t===xn?l>0&&(c=xn,f=l,d=s.length):t===tr?u>0&&(c=tr,f=u,d=i.length):(f=Math.max(l,u),c=f>0?l>u?xn:tr:null,d=c?c===xn?s.length:i.length:0);const h=c===xn&&/\b(transform|all)(,|$)/.test(o(`${xn}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function fu(e,t){for(;e.lengthdu(n)+du(e[o])))}function du(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function zg(){return document.body.offsetHeight}const pu=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ce(t)?n=>is(t,n):t},Ss={deep:!0,created(e,t,n){e._assign=pu(n),nd(e,"change",()=>{const o=e._modelValue,r=Dg(e),s=e.checked,l=e._assign;if(ce(o)){const a=ef(o,r),i=a!==-1;if(s&&!i)l(o.concat(r));else if(!s&&i){const u=[...o];u.splice(a,1),l(u)}}else if(zs(o)){const a=new Set(o);s?a.add(r):a.delete(r),l(a)}else l(rd(e,s))})},mounted:hu,beforeUpdate(e,t,n){e._assign=pu(n),hu(e,t,n)}};function hu(e,{value:t,oldValue:n},o){e._modelValue=t,ce(t)?e.checked=ef(t,o.props.value)>-1:zs(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=Bs(t,rd(e,!0)))}function Dg(e){return"_value"in e?e._value:e.value}function rd(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Wg=["ctrl","shift","alt","meta"],jg={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Wg.some(n=>e[`${n}Key`]&&!t.includes(n))},To=(e,t)=>(n,...o)=>{for(let r=0;rn=>{if(!("key"in n))return;const o=mo(n.key);if(t.some(r=>r===o||Kg[r]===o))return e(n)},Ut={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):nr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),nr(e,!0),o.enter(e)):o.leave(e,()=>{nr(e,!1)}):nr(e,t))},beforeUnmount(e,{value:t}){nr(e,t)}};function nr(e,t){e.style.display=t?e._vod:"none"}const Ug=ct({patchProp:Ig},Cg);let vu;function sd(){return vu||(vu=Jv(Ug))}const xs=(...e)=>{sd().render(...e)},Vg=(...e)=>{const t=sd().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=qg(o);if(!r)return;const s=t._component;!me(s)&&!s.render&&!s.template&&(s.template=r.innerHTML),r.innerHTML="";const l=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function qg(e){return Me(e)?document.querySelector(e):e}var Yg=typeof global=="object"&&global&&global.Object===Object&&global;const ld=Yg;var Gg=typeof self=="object"&&self&&self.Object===Object&&self,Xg=ld||Gg||Function("return this")();const Gt=Xg;var Zg=Gt.Symbol;const rn=Zg;var ad=Object.prototype,Jg=ad.hasOwnProperty,Qg=ad.toString,or=rn?rn.toStringTag:void 0;function em(e){var t=Jg.call(e,or),n=e[or];try{e[or]=void 0;var o=!0}catch{}var r=Qg.call(e);return o&&(t?e[or]=n:delete e[or]),r}var tm=Object.prototype,nm=tm.toString;function om(e){return nm.call(e)}var rm="[object Null]",sm="[object Undefined]",gu=rn?rn.toStringTag:void 0;function yo(e){return e==null?e===void 0?sm:rm:gu&&gu in Object(e)?em(e):om(e)}function zn(e){return e!=null&&typeof e=="object"}var lm="[object Symbol]";function Qs(e){return typeof e=="symbol"||zn(e)&&yo(e)==lm}function id(e,t){for(var n=-1,o=e==null?0:e.length,r=Array(o);++n0){if(++t>=Hm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function jm(e){return function(){return e}}var Km=function(){try{var e=wo(Object,"defineProperty");return e({},"",{}),e}catch{}}();const Ts=Km;var Um=Ts?function(e,t){return Ts(e,"toString",{configurable:!0,enumerable:!1,value:jm(t),writable:!0})}:Ua;const Vm=Um;var qm=Wm(Vm);const cd=qm;var Ym=9007199254740991,Gm=/^(?:0|[1-9]\d*)$/;function el(e,t){var n=typeof e;return t=t??Ym,!!t&&(n=="number"||n!="symbol"&&Gm.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=e0}function Zo(e){return e!=null&&Ya(e.length)&&!Va(e)}function t0(e,t,n){if(!Pt(n))return!1;var o=typeof t;return(o=="number"?Zo(n)&&el(t,n.length):o=="string"&&t in n)?Fr(n[t],e):!1}function n0(e){return Qm(function(t,n){var o=-1,r=n.length,s=r>1?n[r-1]:void 0,l=r>2?n[2]:void 0;for(s=e.length>3&&typeof s=="function"?(r--,s):void 0,l&&t0(n[0],n[1],l)&&(s=r<3?void 0:s,r=1),t=Object(t);++o-1}function by(e,t){var n=this.__data__,o=tl(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function _n(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(a)?t>1?ti(a,t-1,n,o,r):bd(r,a):o||(r[r.length]=a)}return r}function Fy(e){var t=e==null?0:e.length;return t?ti(e,1):[]}function By(e){return cd(dd(e,void 0,Fy),e+"")}var Hy=md(Object.getPrototypeOf,Object);const wd=Hy;var zy="[object Object]",Dy=Function.prototype,Wy=Object.prototype,Cd=Dy.toString,jy=Wy.hasOwnProperty,Ky=Cd.call(Object);function Uy(e){if(!zn(e)||yo(e)!=zy)return!1;var t=wd(e);if(t===null)return!0;var n=jy.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Cd.call(n)==Ky}function Vy(){this.__data__=new _n,this.size=0}function qy(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Yy(e){return this.__data__.get(e)}function Gy(e){return this.__data__.has(e)}var Xy=200;function Zy(e,t){var n=this.__data__;if(n instanceof _n){var o=n.__data__;if(!Ar||o.lengtha))return!1;var u=s.get(e),c=s.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=n&Tb?new Ms:void 0;for(s.set(e,t),s.set(t,e);++f=t||_<0||f&&T>=s}function g(){var x=Sl();if(b(x))return C(x);a=setTimeout(g,v(x))}function C(x){return a=void 0,d&&o?h(x):(o=r=void 0,l)}function E(){a!==void 0&&clearTimeout(a),u=0,o=i=r=a=void 0}function m(){return a===void 0?l:C(Sl())}function M(){var x=Sl(),_=b(x);if(o=arguments,r=this,i=x,_){if(a===void 0)return p(i);if(f)return clearTimeout(a),a=setTimeout(g,t),h(i)}return a===void 0&&(a=setTimeout(g,t)),l}return M.cancel=E,M.flush=m,M}function Ql(e,t,n){(n!==void 0&&!Fr(e[t],n)||n===void 0&&!(t in e))&&qa(e,t,n)}function ww(e){return zn(e)&&Zo(e)}function ea(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function Cw(e){return Jm(e,yd(e))}function _w(e,t,n,o,r,s,l){var a=ea(e,n),i=ea(t,n),u=l.get(i);if(u){Ql(e,n,u);return}var c=s?s(a,i,n+"",e,t,l):void 0,f=c===void 0;if(f){var d=Rt(i),h=!d&&Os(i),p=!d&&!h&&Xa(i);c=i,d||h||p?Rt(a)?c=a:ww(a)?c=Bm(a):h?(f=!1,c=Qy(i,!0)):p?(f=!1,c=yb(i,!0)):c=[]:Uy(i)||Tr(i)?(c=a,Tr(a)?c=Cw(a):(!Pt(a)||Va(a))&&(c=bb(i))):f=!1}f&&(l.set(i,c),r(c,i,o,s,l),l.delete(i)),Ql(e,n,c)}function Ad(e,t,n,o,r){e!==t&&Od(t,function(s,l){if(r||(r=new tn),Pt(s))_w(e,t,l,n,Ad,o,r);else{var a=o?o(ea(e,l),s,l+"",e,t,r):void 0;a===void 0&&(a=s),Ql(e,l,a)}},yd)}function Ew(e,t){var n=-1,o=Zo(e)?Array(e.length):[];return vw(e,function(r,s,l){o[++n]=t(r,s,l)}),o}function Sw(e,t){var n=Rt(e)?id:Ew;return n(e,uw(t))}function xw(e,t){return ti(Sw(e,t),1)}function Rs(e){for(var t=-1,n=e==null?0:e.length,o={};++tgetComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,Uu=e=>Array.from(e.querySelectorAll(Iw)).filter(t=>Nw(t)&&Lw(t)),Nw=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},cs=function(e,t,...n){let o;t.includes("mouse")||t.includes("click")?o="MouseEvents":t.includes("key")?o="KeyboardEvent":o="HTMLEvents";const r=document.createEvent(o);return r.initEvent(t,...n),e.dispatchEvent(r),e},hn=(e,t,{checkForDefaultPrevented:n=!0}={})=>r=>{const s=e==null?void 0:e(r);if(n===!1||!s)return t==null?void 0:t(r)};var Vu;const Ge=typeof window<"u",Io=e=>typeof e=="boolean",ht=e=>typeof e=="number",Fw=e=>typeof e=="string",Rd=()=>{},Bw=Ge&&((Vu=window==null?void 0:window.navigator)==null?void 0:Vu.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ni(e){return typeof e=="function"?e():y(e)}function Hw(e){return e}function ll(e){return sf()?(lf(e),!0):!1}function zw(e,t=!0){je()?Ze(e):t?e():Ue(e)}function ta(e,t,n={}){const{immediate:o=!0}=n,r=R(!1);let s=null;function l(){s&&(clearTimeout(s),s=null)}function a(){r.value=!1,l()}function i(...u){l(),r.value=!0,s=setTimeout(()=>{r.value=!1,s=null,e(...u)},ni(t))}return o&&(r.value=!0,Ge&&i()),ll(a),{isPending:Ks(r),start:i,stop:a}}function Ln(e){var t;const n=ni(e);return(t=n==null?void 0:n.$el)!=null?t:n}const oi=Ge?window:void 0;function gn(...e){let t,n,o,r;if(Fw(e[0])||Array.isArray(e[0])?([n,o,r]=e,t=oi):[t,n,o,r]=e,!t)return Rd;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const s=[],l=()=>{s.forEach(c=>c()),s.length=0},a=(c,f,d,h)=>(c.addEventListener(f,d,h),()=>c.removeEventListener(f,d,h)),i=he(()=>[Ln(t),ni(r)],([c,f])=>{l(),c&&s.push(...n.flatMap(d=>o.map(h=>a(c,d,h,f))))},{immediate:!0,flush:"post"}),u=()=>{i(),l()};return ll(u),u}let qu=!1;function Dw(e,t,n={}){const{window:o=oi,ignore:r=[],capture:s=!0,detectIframe:l=!1}=n;if(!o)return;Bw&&!qu&&(qu=!0,Array.from(o.document.body.children).forEach(d=>d.addEventListener("click",Rd)));let a=!0;const i=d=>r.some(h=>{if(typeof h=="string")return Array.from(o.document.querySelectorAll(h)).some(p=>p===d.target||d.composedPath().includes(p));{const p=Ln(h);return p&&(d.target===p||d.composedPath().includes(p))}}),c=[gn(o,"click",d=>{const h=Ln(e);if(!(!h||h===d.target||d.composedPath().includes(h))){if(d.detail===0&&(a=!i(d)),!a){a=!0;return}t(d)}},{passive:!0,capture:s}),gn(o,"pointerdown",d=>{const h=Ln(e);h&&(a=!d.composedPath().includes(h)&&!i(d))},{passive:!0}),l&&gn(o,"blur",d=>{var h;const p=Ln(e);((h=o.document.activeElement)==null?void 0:h.tagName)==="IFRAME"&&!(p!=null&&p.contains(o.document.activeElement))&&t(d)})].filter(Boolean);return()=>c.forEach(d=>d())}function Ww(e,t=!1){const n=R(),o=()=>n.value=Boolean(e());return o(),zw(o,t),n}const na=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},oa="__vueuse_ssr_handlers__";na[oa]=na[oa]||{};na[oa];var Yu=Object.getOwnPropertySymbols,jw=Object.prototype.hasOwnProperty,Kw=Object.prototype.propertyIsEnumerable,Uw=(e,t)=>{var n={};for(var o in e)jw.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&Yu)for(var o of Yu(e))t.indexOf(o)<0&&Kw.call(e,o)&&(n[o]=e[o]);return n};function Lo(e,t,n={}){const o=n,{window:r=oi}=o,s=Uw(o,["window"]);let l;const a=Ww(()=>r&&"ResizeObserver"in r),i=()=>{l&&(l.disconnect(),l=void 0)},u=he(()=>Ln(e),f=>{i(),a.value&&r&&f&&(l=new ResizeObserver(t),l.observe(f,s))},{immediate:!0,flush:"post"}),c=()=>{i(),u()};return ll(c),{isSupported:a,stop:c}}var Gu;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Gu||(Gu={}));var Vw=Object.defineProperty,Xu=Object.getOwnPropertySymbols,qw=Object.prototype.hasOwnProperty,Yw=Object.prototype.propertyIsEnumerable,Zu=(e,t,n)=>t in e?Vw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Gw=(e,t)=>{for(var n in t||(t={}))qw.call(t,n)&&Zu(e,n,t[n]);if(Xu)for(var n of Xu(t))Yw.call(t,n)&&Zu(e,n,t[n]);return e};const Xw={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Gw({linear:Hw},Xw);const $r=e=>e===void 0,Dn=e=>typeof Element>"u"?!1:e instanceof Element,Zw=e=>Me(e)?!Number.isNaN(Number(e)):!1,Ju=e=>Object.keys(e),Jw=(e,t,n)=>({get value(){return Mr(e,t,n)},set value(o){kw(e,t,o)}});class Qw extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function vo(e,t){throw new Qw(`[${e}] ${t}`)}const Pd=(e="")=>e.split(" ").filter(t=>!!t.trim()),co=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},oo=(e,t)=>{!e||!t.trim()||e.classList.add(...Pd(t))},fo=(e,t)=>{!e||!t.trim()||e.classList.remove(...Pd(t))},ra=(e,t)=>{var n;if(!Ge||!e||!t)return"";let o=Vt(t);o==="float"&&(o="cssFloat");try{const r=e.style[o];if(r)return r;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[o]:""}catch{return e.style[o]}};function Rr(e,t="px"){if(!e)return"";if(ht(e)||Zw(e))return`${e}${t}`;if(Me(e))return e}let Zr;const e1=e=>{var t;if(!Ge)return 0;if(Zr!==void 0)return Zr;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const r=document.createElement("div");r.style.width="100%",n.appendChild(r);const s=r.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),Zr=o-s,Zr};/*! Element Plus Icons Vue v2.0.10 */var Tt=(e,t)=>{let n=e.__vccOpts||e;for(let[o,r]of t)n[o]=r;return n},t1={name:"ArrowDown"},n1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},o1=ie("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),r1=[o1];function s1(e,t,n,o,r,s){return H(),se("svg",n1,r1)}var kd=Tt(t1,[["render",s1],["__file","arrow-down.vue"]]),l1={name:"ArrowRight"},a1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},i1=ie("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),u1=[i1];function c1(e,t,n,o,r,s){return H(),se("svg",a1,u1)}var ri=Tt(l1,[["render",c1],["__file","arrow-right.vue"]]),f1={name:"ArrowUp"},d1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},p1=ie("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),h1=[p1];function v1(e,t,n,o,r,s){return H(),se("svg",d1,h1)}var g1=Tt(f1,[["render",v1],["__file","arrow-up.vue"]]),m1={name:"CircleCheck"},y1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},b1=ie("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),w1=ie("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"},null,-1),C1=[b1,w1];function _1(e,t,n,o,r,s){return H(),se("svg",y1,C1)}var E1=Tt(m1,[["render",_1],["__file","circle-check.vue"]]),S1={name:"CircleCloseFilled"},x1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},T1=ie("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),O1=[T1];function A1(e,t,n,o,r,s){return H(),se("svg",x1,O1)}var Id=Tt(S1,[["render",A1],["__file","circle-close-filled.vue"]]),M1={name:"CircleClose"},$1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R1=ie("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"},null,-1),P1=ie("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),k1=[R1,P1];function I1(e,t,n,o,r,s){return H(),se("svg",$1,k1)}var Ld=Tt(M1,[["render",I1],["__file","circle-close.vue"]]),L1={name:"Close"},N1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},F1=ie("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),B1=[F1];function H1(e,t,n,o,r,s){return H(),se("svg",N1,B1)}var z1=Tt(L1,[["render",H1],["__file","close.vue"]]),D1={name:"Hide"},W1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},j1=ie("path",{d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z",fill:"currentColor"},null,-1),K1=ie("path",{d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z",fill:"currentColor"},null,-1),U1=[j1,K1];function V1(e,t,n,o,r,s){return H(),se("svg",W1,U1)}var q1=Tt(D1,[["render",V1],["__file","hide.vue"]]),Y1={name:"InfoFilled"},G1={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},X1=ie("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),Z1=[X1];function J1(e,t,n,o,r,s){return H(),se("svg",G1,Z1)}var Nd=Tt(Y1,[["render",J1],["__file","info-filled.vue"]]),Q1={name:"Loading"},eC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},tC=ie("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),nC=[tC];function oC(e,t,n,o,r,s){return H(),se("svg",eC,nC)}var si=Tt(Q1,[["render",oC],["__file","loading.vue"]]),rC={name:"More"},sC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},lC=ie("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),aC=[lC];function iC(e,t,n,o,r,s){return H(),se("svg",sC,aC)}var uC=Tt(rC,[["render",iC],["__file","more.vue"]]),cC={name:"SuccessFilled"},fC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},dC=ie("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),pC=[dC];function hC(e,t,n,o,r,s){return H(),se("svg",fC,pC)}var Fd=Tt(cC,[["render",hC],["__file","success-filled.vue"]]),vC={name:"View"},gC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},mC=ie("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z"},null,-1),yC=[mC];function bC(e,t,n,o,r,s){return H(),se("svg",gC,yC)}var wC=Tt(vC,[["render",bC],["__file","view.vue"]]),CC={name:"WarningFilled"},_C={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},EC=ie("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),SC=[EC];function xC(e,t,n,o,r,s){return H(),se("svg",_C,SC)}var Bd=Tt(CC,[["render",xC],["__file","warning-filled.vue"]]);const Hd="__epPropKey",Ee=e=>e,TC=e=>Re(e)&&!!e[Hd],al=(e,t)=>{if(!Re(e)||TC(e))return e;const{values:n,required:o,default:r,type:s,validator:l}=e,i={type:s,required:!!o,validator:n||l?u=>{let c=!1,f=[];if(n&&(f=Array.from(n),Oe(e,"default")&&f.push(r),c||(c=f.includes(u))),l&&(c||(c=l(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");hv(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[Hd]:!0};return Oe(e,"default")&&(i.default=r),i},Xe=e=>Rs(Object.entries(e).map(([t,n])=>[t,al(n,t)])),vn=Ee([String,Object,Function]),zd={Close:z1,SuccessFilled:Fd,InfoFilled:Nd,WarningFilled:Bd,CircleCloseFilled:Id},Ps={success:Fd,warning:Bd,error:Id,info:Nd},OC={validating:si,success:E1,error:Ld},Ht=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(t??{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},AC=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Co=e=>(e.install=rt,e),dt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},go="update:modelValue",Dd=["","default","small","large"],MC=e=>["",...Dd].includes(e);var fs=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(fs||{});const ds=e=>{const t=ce(e)?e:[e],n=[];return t.forEach(o=>{var r;ce(o)?n.push(...ds(o)):on(o)&&ce(o.children)?n.push(...ds(o.children)):(n.push(o),on(o)&&((r=o.component)!=null&&r.subTree)&&n.push(...ds(o.component.subTree)))}),n},$C=()=>Ge&&/firefox/i.test(window.navigator.userAgent),RC=e=>/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e),In=e=>e,PC=["class","style"],kC=/^on[A-Z]/,IC=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=A(()=>((n==null?void 0:n.value)||[]).concat(PC)),r=je();return A(r?()=>{var s;return Rs(Object.entries((s=r.proxy)==null?void 0:s.$attrs).filter(([l])=>!o.value.includes(l)&&!(t&&kC.test(l))))}:()=>({}))},Wd=Symbol("buttonGroupContextKey"),Jo=Symbol("checkboxGroupContextKey"),jd=Symbol(),li=Symbol("formContextKey"),ks=Symbol("formItemContextKey"),Kd=Symbol("rowContextKey"),Ud=Symbol("scrollbarContextKey"),ai=Symbol("popper"),Vd=Symbol("popperContent"),ii=Symbol("elTooltip"),qd=e=>{const t=je();return A(()=>{var n,o;return(o=((n=t.proxy)==null?void 0:n.$props)[e])!=null?o:void 0})},Is=R();function Wn(e,t=void 0){const n=je()?Se(jd,Is):Is;return e?A(()=>{var o,r;return(r=(o=n.value)==null?void 0:o[e])!=null?r:t}):n}const LC=(e,t,n=!1)=>{var o;const r=!!je(),s=r?Wn():void 0,l=(o=t==null?void 0:t.provide)!=null?o:r?st:void 0;if(!l)return;const a=A(()=>{const i=y(e);return s!=null&&s.value?NC(s.value,i):i});return l(jd,a),(n||!Is.value)&&(Is.value=a.value),a},NC=(e,t)=>{var n;const o=[...new Set([...Ju(e),...Ju(t)])],r={};for(const s of o)r[s]=(n=t[s])!=null?n:e[s];return r},Qo=al({type:String,values:Dd,required:!1}),No=(e,t={})=>{const n=R(void 0),o=t.prop?n:qd("size"),r=t.global?n:Wn("size"),s=t.form?{size:void 0}:Se(li,void 0),l=t.formItem?{size:void 0}:Se(ks,void 0);return A(()=>o.value||y(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||r.value||"")},il=e=>{const t=qd("disabled"),n=Se(li,void 0);return A(()=>t.value||y(e)||(n==null?void 0:n.disabled)||!1)},Yd=({from:e,replacement:t,scope:n,version:o,ref:r,type:s="API"},l)=>{he(()=>y(l),a=>{},{immediate:!0})},FC=(e,t,n)=>{let o={offsetX:0,offsetY:0};const r=a=>{const i=a.clientX,u=a.clientY,{offsetX:c,offsetY:f}=o,d=e.value.getBoundingClientRect(),h=d.left,p=d.top,v=d.width,b=d.height,g=document.documentElement.clientWidth,C=document.documentElement.clientHeight,E=-h+c,m=-p+f,M=g-h-v+c,x=C-p-b+f,_=F=>{const $=Math.min(Math.max(c+F.clientX-i,E),M),N=Math.min(Math.max(f+F.clientY-u,m),x);o={offsetX:$,offsetY:N},e.value.style.transform=`translate(${Rr($)}, ${Rr(N)})`},T=()=>{document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",T)};document.addEventListener("mousemove",_),document.addEventListener("mouseup",T)},s=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",r)},l=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",r)};Ze(()=>{io(()=>{n.value?s():l()})}),vt(()=>{l()})},ui="el",BC="is-",Yn=(e,t,n,o,r)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),o&&(s+=`__${o}`),r&&(s+=`--${r}`),s},xe=e=>{const t=Wn("namespace",ui);return{namespace:t,b:(p="")=>Yn(t.value,e,p,"",""),e:p=>p?Yn(t.value,e,"",p,""):"",m:p=>p?Yn(t.value,e,"","",p):"",be:(p,v)=>p&&v?Yn(t.value,e,p,v,""):"",em:(p,v)=>p&&v?Yn(t.value,e,"",p,v):"",bm:(p,v)=>p&&v?Yn(t.value,e,p,"",v):"",bem:(p,v,b)=>p&&v&&b?Yn(t.value,e,p,v,b):"",is:(p,...v)=>{const b=v.length>=1?v[0]:!0;return p&&b?`${BC}${p}`:""},cssVar:p=>{const v={};for(const b in p)p[b]&&(v[`--${t.value}-${b}`]=p[b]);return v},cssVarName:p=>`--${t.value}-${p}`,cssVarBlock:p=>{const v={};for(const b in p)p[b]&&(v[`--${t.value}-${e}-${b}`]=p[b]);return v},cssVarBlockName:p=>`--${t.value}-${e}-${p}`}},Qu={prefix:Math.floor(Math.random()*1e4),current:0},HC=Symbol("elIdInjection"),Gd=()=>je()?Se(HC,Qu):Qu,Ls=e=>{const t=Gd(),n=Wn("namespace",ui);return A(()=>y(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},Hr=()=>{const e=Se(li,void 0),t=Se(ks,void 0);return{form:e,formItem:t}},ci=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=R(!1)),o||(o=R(!1));const r=R();let s;const l=A(()=>{var a;return!!(!e.label&&t&&t.inputIds&&((a=t.inputIds)==null?void 0:a.length)<=1)});return Ze(()=>{s=he([It(e,"id"),n],([a,i])=>{const u=a??(i?void 0:Ls().value);u!==r.value&&(t!=null&&t.removeInputId&&(r.value&&t.removeInputId(r.value),!(o!=null&&o.value)&&!i&&u&&t.addInputId(u)),r.value=u)},{immediate:!0})}),Go(()=>{s&&s(),t!=null&&t.removeInputId&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:l,inputId:r}};var zC={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const DC=e=>(t,n)=>WC(t,n,y(e)),WC=(e,t,n)=>Mr(n,e,e).replace(/\{(\w+)\}/g,(o,r)=>{var s;return`${(s=t==null?void 0:t[r])!=null?s:`{${r}}`}`}),jC=e=>{const t=A(()=>y(e).name),n=Ve(e)?e:R(e);return{lang:t,locale:n,t:DC(e)}},fi=()=>{const e=Wn("locale");return jC(A(()=>e.value||zC))},KC=e=>{Ve(e)||vo("[useLockscreen]","You need to pass a ref param to this function");const t=xe("popup"),n=Tf(()=>t.bm("parent","hidden"));if(!Ge||co(document.body,n.value))return;let o=0,r=!1,s="0";const l=()=>{setTimeout(()=>{fo(document==null?void 0:document.body,n.value),r&&document&&(document.body.style.width=s)},200)};he(e,a=>{if(!a){l();return}r=!co(document.body,n.value),r&&(s=document.body.style.width),o=e1(t.namespace.value);const i=document.documentElement.clientHeight0&&(i||u==="scroll")&&r&&(document.body.style.width=`calc(100% - ${o}px)`),oo(document.body,n.value)}),lf(()=>l())},UC=al({type:Ee(Boolean),default:null}),VC=al({type:Ee(Function)}),Xd=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t],r={[e]:UC,[n]:VC};return{useModelToggle:({indicator:l,toggleReason:a,shouldHideWhenRouteChanges:i,shouldProceed:u,onShow:c,onHide:f})=>{const d=je(),{emit:h}=d,p=d.props,v=A(()=>me(p[n])),b=A(()=>p[e]===null),g=_=>{l.value!==!0&&(l.value=!0,a&&(a.value=_),me(c)&&c(_))},C=_=>{l.value!==!1&&(l.value=!1,a&&(a.value=_),me(f)&&f(_))},E=_=>{if(p.disabled===!0||me(u)&&!u())return;const T=v.value&&Ge;T&&h(t,!0),(b.value||!T)&&g(_)},m=_=>{if(p.disabled===!0||!Ge)return;const T=v.value&&Ge;T&&h(t,!1),(b.value||!T)&&C(_)},M=_=>{Io(_)&&(p.disabled&&_?v.value&&h(t,!1):l.value!==_&&(_?g():C()))},x=()=>{l.value?m():E()};return he(()=>p[e],M),i&&d.appContext.config.globalProperties.$route!==void 0&&he(()=>({...d.proxy.$route}),()=>{i.value&&l.value&&m()}),Ze(()=>{M(p[e])}),{hide:m,show:E,toggle:x,hasUpdateHandler:v}},useModelToggleProps:r,useModelToggleEmits:o}};Xd("modelValue");var Et="top",Ft="bottom",Bt="right",St="left",di="auto",zr=[Et,Ft,Bt,St],Fo="start",Pr="end",qC="clippingParents",Zd="viewport",rr="popper",YC="reference",ec=zr.reduce(function(e,t){return e.concat([t+"-"+Fo,t+"-"+Pr])},[]),pi=[].concat(zr,[di]).reduce(function(e,t){return e.concat([t,t+"-"+Fo,t+"-"+Pr])},[]),GC="beforeRead",XC="read",ZC="afterRead",JC="beforeMain",QC="main",e_="afterMain",t_="beforeWrite",n_="write",o_="afterWrite",r_=[GC,XC,ZC,JC,QC,e_,t_,n_,o_];function sn(e){return e?(e.nodeName||"").toLowerCase():null}function Xt(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Bo(e){var t=Xt(e).Element;return e instanceof t||e instanceof Element}function Nt(e){var t=Xt(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function hi(e){if(typeof ShadowRoot>"u")return!1;var t=Xt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function s_(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},r=t.attributes[n]||{},s=t.elements[n];!Nt(s)||!sn(s)||(Object.assign(s.style,o),Object.keys(r).forEach(function(l){var a=r[l];a===!1?s.removeAttribute(l):s.setAttribute(l,a===!0?"":a)}))})}function l_(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var r=t.elements[o],s=t.attributes[o]||{},l=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),a=l.reduce(function(i,u){return i[u]="",i},{});!Nt(r)||!sn(r)||(Object.assign(r.style,a),Object.keys(s).forEach(function(i){r.removeAttribute(i)}))})}}var Jd={name:"applyStyles",enabled:!0,phase:"write",fn:s_,effect:l_,requires:["computeStyles"]};function nn(e){return e.split("-")[0]}var po=Math.max,Ns=Math.min,Ho=Math.round;function zo(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),o=1,r=1;if(Nt(e)&&t){var s=e.offsetHeight,l=e.offsetWidth;l>0&&(o=Ho(n.width)/l||1),s>0&&(r=Ho(n.height)/s||1)}return{width:n.width/o,height:n.height/r,top:n.top/r,right:n.right/o,bottom:n.bottom/r,left:n.left/o,x:n.left/o,y:n.top/r}}function vi(e){var t=zo(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function Qd(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&hi(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function bn(e){return Xt(e).getComputedStyle(e)}function a_(e){return["table","td","th"].indexOf(sn(e))>=0}function jn(e){return((Bo(e)?e.ownerDocument:e.document)||window.document).documentElement}function ul(e){return sn(e)==="html"?e:e.assignedSlot||e.parentNode||(hi(e)?e.host:null)||jn(e)}function tc(e){return!Nt(e)||bn(e).position==="fixed"?null:e.offsetParent}function i_(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&Nt(e)){var o=bn(e);if(o.position==="fixed")return null}var r=ul(e);for(hi(r)&&(r=r.host);Nt(r)&&["html","body"].indexOf(sn(r))<0;){var s=bn(r);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return r;r=r.parentNode}return null}function Dr(e){for(var t=Xt(e),n=tc(e);n&&a_(n)&&bn(n).position==="static";)n=tc(n);return n&&(sn(n)==="html"||sn(n)==="body"&&bn(n).position==="static")?t:n||i_(e)||t}function gi(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function pr(e,t,n){return po(e,Ns(t,n))}function u_(e,t,n){var o=pr(e,t,n);return o>n?n:o}function ep(){return{top:0,right:0,bottom:0,left:0}}function tp(e){return Object.assign({},ep(),e)}function np(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var c_=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,tp(typeof e!="number"?e:np(e,zr))};function f_(e){var t,n=e.state,o=e.name,r=e.options,s=n.elements.arrow,l=n.modifiersData.popperOffsets,a=nn(n.placement),i=gi(a),u=[St,Bt].indexOf(a)>=0,c=u?"height":"width";if(!(!s||!l)){var f=c_(r.padding,n),d=vi(s),h=i==="y"?Et:St,p=i==="y"?Ft:Bt,v=n.rects.reference[c]+n.rects.reference[i]-l[i]-n.rects.popper[c],b=l[i]-n.rects.reference[i],g=Dr(s),C=g?i==="y"?g.clientHeight||0:g.clientWidth||0:0,E=v/2-b/2,m=f[h],M=C-d[c]-f[p],x=C/2-d[c]/2+E,_=pr(m,x,M),T=i;n.modifiersData[o]=(t={},t[T]=_,t.centerOffset=_-x,t)}}function d_(e){var t=e.state,n=e.options,o=n.element,r=o===void 0?"[data-popper-arrow]":o;r!=null&&(typeof r=="string"&&(r=t.elements.popper.querySelector(r),!r)||!Qd(t.elements.popper,r)||(t.elements.arrow=r))}var p_={name:"arrow",enabled:!0,phase:"main",fn:f_,effect:d_,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Do(e){return e.split("-")[1]}var h_={top:"auto",right:"auto",bottom:"auto",left:"auto"};function v_(e){var t=e.x,n=e.y,o=window,r=o.devicePixelRatio||1;return{x:Ho(t*r)/r||0,y:Ho(n*r)/r||0}}function nc(e){var t,n=e.popper,o=e.popperRect,r=e.placement,s=e.variation,l=e.offsets,a=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=l.x,h=d===void 0?0:d,p=l.y,v=p===void 0?0:p,b=typeof c=="function"?c({x:h,y:v}):{x:h,y:v};h=b.x,v=b.y;var g=l.hasOwnProperty("x"),C=l.hasOwnProperty("y"),E=St,m=Et,M=window;if(u){var x=Dr(n),_="clientHeight",T="clientWidth";if(x===Xt(n)&&(x=jn(n),bn(x).position!=="static"&&a==="absolute"&&(_="scrollHeight",T="scrollWidth")),x=x,r===Et||(r===St||r===Bt)&&s===Pr){m=Ft;var F=f&&x===M&&M.visualViewport?M.visualViewport.height:x[_];v-=F-o.height,v*=i?1:-1}if(r===St||(r===Et||r===Ft)&&s===Pr){E=Bt;var $=f&&x===M&&M.visualViewport?M.visualViewport.width:x[T];h-=$-o.width,h*=i?1:-1}}var N=Object.assign({position:a},u&&h_),O=c===!0?v_({x:h,y:v}):{x:h,y:v};if(h=O.x,v=O.y,i){var z;return Object.assign({},N,(z={},z[m]=C?"0":"",z[E]=g?"0":"",z.transform=(M.devicePixelRatio||1)<=1?"translate("+h+"px, "+v+"px)":"translate3d("+h+"px, "+v+"px, 0)",z))}return Object.assign({},N,(t={},t[m]=C?v+"px":"",t[E]=g?h+"px":"",t.transform="",t))}function g_(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=o===void 0?!0:o,s=n.adaptive,l=s===void 0?!0:s,a=n.roundOffsets,i=a===void 0?!0:a,u={placement:nn(t.placement),variation:Do(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,nc(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:l,roundOffsets:i})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,nc(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var op={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:g_,data:{}},Jr={passive:!0};function m_(e){var t=e.state,n=e.instance,o=e.options,r=o.scroll,s=r===void 0?!0:r,l=o.resize,a=l===void 0?!0:l,i=Xt(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,Jr)}),a&&i.addEventListener("resize",n.update,Jr),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,Jr)}),a&&i.removeEventListener("resize",n.update,Jr)}}var rp={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:m_,data:{}},y_={left:"right",right:"left",bottom:"top",top:"bottom"};function ps(e){return e.replace(/left|right|bottom|top/g,function(t){return y_[t]})}var b_={start:"end",end:"start"};function oc(e){return e.replace(/start|end/g,function(t){return b_[t]})}function mi(e){var t=Xt(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function yi(e){return zo(jn(e)).left+mi(e).scrollLeft}function w_(e){var t=Xt(e),n=jn(e),o=t.visualViewport,r=n.clientWidth,s=n.clientHeight,l=0,a=0;return o&&(r=o.width,s=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(l=o.offsetLeft,a=o.offsetTop)),{width:r,height:s,x:l+yi(e),y:a}}function C_(e){var t,n=jn(e),o=mi(e),r=(t=e.ownerDocument)==null?void 0:t.body,s=po(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),l=po(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-o.scrollLeft+yi(e),i=-o.scrollTop;return bn(r||n).direction==="rtl"&&(a+=po(n.clientWidth,r?r.clientWidth:0)-s),{width:s,height:l,x:a,y:i}}function bi(e){var t=bn(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function sp(e){return["html","body","#document"].indexOf(sn(e))>=0?e.ownerDocument.body:Nt(e)&&bi(e)?e:sp(ul(e))}function hr(e,t){var n;t===void 0&&(t=[]);var o=sp(e),r=o===((n=e.ownerDocument)==null?void 0:n.body),s=Xt(o),l=r?[s].concat(s.visualViewport||[],bi(o)?o:[]):o,a=t.concat(l);return r?a:a.concat(hr(ul(l)))}function sa(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function __(e){var t=zo(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function rc(e,t){return t===Zd?sa(w_(e)):Bo(t)?__(t):sa(C_(jn(e)))}function E_(e){var t=hr(ul(e)),n=["absolute","fixed"].indexOf(bn(e).position)>=0,o=n&&Nt(e)?Dr(e):e;return Bo(o)?t.filter(function(r){return Bo(r)&&Qd(r,o)&&sn(r)!=="body"}):[]}function S_(e,t,n){var o=t==="clippingParents"?E_(e):[].concat(t),r=[].concat(o,[n]),s=r[0],l=r.reduce(function(a,i){var u=rc(e,i);return a.top=po(u.top,a.top),a.right=Ns(u.right,a.right),a.bottom=Ns(u.bottom,a.bottom),a.left=po(u.left,a.left),a},rc(e,s));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function lp(e){var t=e.reference,n=e.element,o=e.placement,r=o?nn(o):null,s=o?Do(o):null,l=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,i;switch(r){case Et:i={x:l,y:t.y-n.height};break;case Ft:i={x:l,y:t.y+t.height};break;case Bt:i={x:t.x+t.width,y:a};break;case St:i={x:t.x-n.width,y:a};break;default:i={x:t.x,y:t.y}}var u=r?gi(r):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Fo:i[u]=i[u]-(t[c]/2-n[c]/2);break;case Pr:i[u]=i[u]+(t[c]/2-n[c]/2);break}}return i}function kr(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=o===void 0?e.placement:o,s=n.boundary,l=s===void 0?qC:s,a=n.rootBoundary,i=a===void 0?Zd:a,u=n.elementContext,c=u===void 0?rr:u,f=n.altBoundary,d=f===void 0?!1:f,h=n.padding,p=h===void 0?0:h,v=tp(typeof p!="number"?p:np(p,zr)),b=c===rr?YC:rr,g=e.rects.popper,C=e.elements[d?b:c],E=S_(Bo(C)?C:C.contextElement||jn(e.elements.popper),l,i),m=zo(e.elements.reference),M=lp({reference:m,element:g,strategy:"absolute",placement:r}),x=sa(Object.assign({},g,M)),_=c===rr?x:m,T={top:E.top-_.top+v.top,bottom:_.bottom-E.bottom+v.bottom,left:E.left-_.left+v.left,right:_.right-E.right+v.right},F=e.modifiersData.offset;if(c===rr&&F){var $=F[r];Object.keys(T).forEach(function(N){var O=[Bt,Ft].indexOf(N)>=0?1:-1,z=[Et,Ft].indexOf(N)>=0?"y":"x";T[N]+=$[z]*O})}return T}function x_(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=n.boundary,s=n.rootBoundary,l=n.padding,a=n.flipVariations,i=n.allowedAutoPlacements,u=i===void 0?pi:i,c=Do(o),f=c?a?ec:ec.filter(function(p){return Do(p)===c}):zr,d=f.filter(function(p){return u.indexOf(p)>=0});d.length===0&&(d=f);var h=d.reduce(function(p,v){return p[v]=kr(e,{placement:v,boundary:r,rootBoundary:s,padding:l})[nn(v)],p},{});return Object.keys(h).sort(function(p,v){return h[p]-h[v]})}function T_(e){if(nn(e)===di)return[];var t=ps(e);return[oc(e),t,oc(t)]}function O_(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,s=r===void 0?!0:r,l=n.altAxis,a=l===void 0?!0:l,i=n.fallbackPlacements,u=n.padding,c=n.boundary,f=n.rootBoundary,d=n.altBoundary,h=n.flipVariations,p=h===void 0?!0:h,v=n.allowedAutoPlacements,b=t.options.placement,g=nn(b),C=g===b,E=i||(C||!p?[ps(b)]:T_(b)),m=[b].concat(E).reduce(function(Le,I){return Le.concat(nn(I)===di?x_(t,{placement:I,boundary:c,rootBoundary:f,padding:u,flipVariations:p,allowedAutoPlacements:v}):I)},[]),M=t.rects.reference,x=t.rects.popper,_=new Map,T=!0,F=m[0],$=0;$=0,K=Q?"width":"height",J=kr(t,{placement:N,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),oe=Q?z?Bt:St:z?Ft:Et;M[K]>x[K]&&(oe=ps(oe));var W=ps(oe),P=[];if(s&&P.push(J[O]<=0),a&&P.push(J[oe]<=0,J[W]<=0),P.every(function(Le){return Le})){F=N,T=!1;break}_.set(N,P)}if(T)for(var te=p?3:1,pe=function(Le){var I=m.find(function(V){var U=_.get(V);if(U)return U.slice(0,Le).every(function(ee){return ee})});if(I)return F=I,"break"},Ce=te;Ce>0;Ce--){var Pe=pe(Ce);if(Pe==="break")break}t.placement!==F&&(t.modifiersData[o]._skip=!0,t.placement=F,t.reset=!0)}}var A_={name:"flip",enabled:!0,phase:"main",fn:O_,requiresIfExists:["offset"],data:{_skip:!1}};function sc(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function lc(e){return[Et,Bt,Ft,St].some(function(t){return e[t]>=0})}function M_(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,s=t.modifiersData.preventOverflow,l=kr(t,{elementContext:"reference"}),a=kr(t,{altBoundary:!0}),i=sc(l,o),u=sc(a,r,s),c=lc(i),f=lc(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var $_={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:M_};function R_(e,t,n){var o=nn(e),r=[St,Et].indexOf(o)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,l=s[0],a=s[1];return l=l||0,a=(a||0)*r,[St,Bt].indexOf(o)>=0?{x:a,y:l}:{x:l,y:a}}function P_(e){var t=e.state,n=e.options,o=e.name,r=n.offset,s=r===void 0?[0,0]:r,l=pi.reduce(function(c,f){return c[f]=R_(f,t.rects,s),c},{}),a=l[t.placement],i=a.x,u=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=l}var k_={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:P_};function I_(e){var t=e.state,n=e.name;t.modifiersData[n]=lp({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var ap={name:"popperOffsets",enabled:!0,phase:"read",fn:I_,data:{}};function L_(e){return e==="x"?"y":"x"}function N_(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,s=r===void 0?!0:r,l=n.altAxis,a=l===void 0?!1:l,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,f=n.padding,d=n.tether,h=d===void 0?!0:d,p=n.tetherOffset,v=p===void 0?0:p,b=kr(t,{boundary:i,rootBoundary:u,padding:f,altBoundary:c}),g=nn(t.placement),C=Do(t.placement),E=!C,m=gi(g),M=L_(m),x=t.modifiersData.popperOffsets,_=t.rects.reference,T=t.rects.popper,F=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,$=typeof F=="number"?{mainAxis:F,altAxis:F}:Object.assign({mainAxis:0,altAxis:0},F),N=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(x){if(s){var z,Q=m==="y"?Et:St,K=m==="y"?Ft:Bt,J=m==="y"?"height":"width",oe=x[m],W=oe+b[Q],P=oe-b[K],te=h?-T[J]/2:0,pe=C===Fo?_[J]:T[J],Ce=C===Fo?-T[J]:-_[J],Pe=t.elements.arrow,Le=h&&Pe?vi(Pe):{width:0,height:0},I=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:ep(),V=I[Q],U=I[K],ee=pr(0,_[J],Le[J]),be=E?_[J]/2-te-ee-V-$.mainAxis:pe-ee-V-$.mainAxis,Ne=E?-_[J]/2+te+ee+U+$.mainAxis:Ce+ee+U+$.mainAxis,we=t.elements.arrow&&Dr(t.elements.arrow),w=we?m==="y"?we.clientTop||0:we.clientLeft||0:0,S=(z=N==null?void 0:N[m])!=null?z:0,L=oe+be-S-w,B=oe+Ne-S,D=pr(h?Ns(W,L):W,oe,h?po(P,B):P);x[m]=D,O[m]=D-oe}if(a){var X,ne=m==="x"?Et:St,q=m==="x"?Ft:Bt,Z=x[M],j=M==="y"?"height":"width",k=Z+b[ne],G=Z-b[q],le=[Et,St].indexOf(g)!==-1,ve=(X=N==null?void 0:N[M])!=null?X:0,Ae=le?k:Z-_[j]-T[j]-ve+$.altAxis,Be=le?Z+_[j]+T[j]-ve-$.altAxis:G,Fe=h&&le?u_(Ae,Z,Be):pr(h?Ae:k,Z,h?Be:G);x[M]=Fe,O[M]=Fe-Z}t.modifiersData[o]=O}}var F_={name:"preventOverflow",enabled:!0,phase:"main",fn:N_,requiresIfExists:["offset"]};function B_(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function H_(e){return e===Xt(e)||!Nt(e)?mi(e):B_(e)}function z_(e){var t=e.getBoundingClientRect(),n=Ho(t.width)/e.offsetWidth||1,o=Ho(t.height)/e.offsetHeight||1;return n!==1||o!==1}function D_(e,t,n){n===void 0&&(n=!1);var o=Nt(t),r=Nt(t)&&z_(t),s=jn(t),l=zo(e,r),a={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(o||!o&&!n)&&((sn(t)!=="body"||bi(s))&&(a=H_(t)),Nt(t)?(i=zo(t,!0),i.x+=t.clientLeft,i.y+=t.clientTop):s&&(i.x=yi(s))),{x:l.left+a.scrollLeft-i.x,y:l.top+a.scrollTop-i.y,width:l.width,height:l.height}}function W_(e){var t=new Map,n=new Set,o=[];e.forEach(function(s){t.set(s.name,s)});function r(s){n.add(s.name);var l=[].concat(s.requires||[],s.requiresIfExists||[]);l.forEach(function(a){if(!n.has(a)){var i=t.get(a);i&&r(i)}}),o.push(s)}return e.forEach(function(s){n.has(s.name)||r(s)}),o}function j_(e){var t=W_(e);return r_.reduce(function(n,o){return n.concat(t.filter(function(r){return r.phase===o}))},[])}function K_(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function U_(e){var t=e.reduce(function(n,o){var r=n[o.name];return n[o.name]=r?Object.assign({},r,o,{options:Object.assign({},r.options,o.options),data:Object.assign({},r.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var ac={placement:"bottom",modifiers:[],strategy:"absolute"};function ic(){for(var e=arguments.length,t=new Array(e),n=0;n{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:i})=>{const u=G_(i);Object.assign(l.value,u)},requires:["computeStyles"]},r=A(()=>{const{onFirstUpdate:i,placement:u,strategy:c,modifiers:f}=y(n);return{onFirstUpdate:i,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],o,{name:"applyStyles",enabled:!1}]}}),s=ar(),l=R({styles:{popper:{position:y(r).strategy,left:"0",right:"0"},arrow:{position:"absolute"}},attributes:{}}),a=()=>{s.value&&(s.value.destroy(),s.value=void 0)};return he(r,i=>{const u=y(s);u&&u.setOptions(i)},{deep:!0}),he([e,t],([i,u])=>{a(),!(!i||!u)&&(s.value=ip(i,u,y(r)))}),vt(()=>{a()}),{state:A(()=>{var i;return{...((i=y(s))==null?void 0:i.state)||{}}}),styles:A(()=>y(l).styles),attributes:A(()=>y(l).attributes),update:()=>{var i;return(i=y(s))==null?void 0:i.update()},forceUpdate:()=>{var i;return(i=y(s))==null?void 0:i.forceUpdate()},instanceRef:A(()=>y(s))}};function G_(e){const t=Object.keys(e.elements),n=Rs(t.map(r=>[r,e.styles[r]||{}])),o=Rs(t.map(r=>[r,e.attributes[r]]));return{styles:n,attributes:o}}const X_=(e,t)=>{let n;he(()=>e.value,o=>{var r,s;o?(n=document.activeElement,Ve(t)&&((s=(r=t.value).focus)==null||s.call(r))):n.focus()})},up=e=>{if(!e)return{onClick:rt,onMousedown:rt,onMouseup:rt};let t=!1,n=!1;return{onClick:l=>{t&&n&&e(l),t=n=!1},onMousedown:l=>{t=l.target===l.currentTarget},onMouseup:l=>{n=l.target===l.currentTarget}}};function Z_(){let e;const t=(o,r)=>{n(),e=window.setTimeout(o,r)},n=()=>window.clearTimeout(e);return ll(()=>n()),{registerTimeout:t,cancelTimeout:n}}let So=[];const uc=e=>{const t=e;t.key===dt.esc&&So.forEach(n=>n(t))},J_=e=>{Ze(()=>{So.length===0&&document.addEventListener("keydown",uc),Ge&&So.push(e)}),vt(()=>{So=So.filter(t=>t!==e),So.length===0&&Ge&&document.removeEventListener("keydown",uc)})};let cc;const cp=()=>{const e=Wn("namespace",ui),t=Gd(),n=A(()=>`${e.value}-popper-container-${t.prefix}`),o=A(()=>`#${n.value}`);return{id:n,selector:o}},Q_=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},eE=()=>{Gs(()=>{if(!Ge)return;const{id:e,selector:t}=cp();!cc&&!document.body.querySelector(t.value)&&(cc=Q_(e.value))})},tE=Xe({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),fp=({showAfter:e,hideAfter:t,open:n,close:o})=>{const{registerTimeout:r}=Z_();return{onOpen:a=>{r(()=>{n(a)},y(e))},onClose:a=>{r(()=>{o(a)},y(t))}}},dp=Symbol("elForwardRef"),nE=e=>{st(dp,{setForwardRef:n=>{e.value=n}})},oE=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),fc=R(0),cl=()=>{const e=Wn("zIndex",2e3),t=A(()=>e.value+fc.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(fc.value++,t.value)}};function rE(e){const t=R();function n(){if(e.value==null)return;const{selectionStart:r,selectionEnd:s,value:l}=e.value;if(r==null||s==null)return;const a=l.slice(0,Math.max(0,r)),i=l.slice(Math.max(0,s));t.value={selectionStart:r,selectionEnd:s,value:l,beforeTxt:a,afterTxt:i}}function o(){if(e.value==null||t.value==null)return;const{value:r}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:a}=t.value;if(s==null||l==null||a==null)return;let i=r.length;if(r.endsWith(l))i=r.length-l.length;else if(r.startsWith(s))i=s.length;else{const u=s[a-1],c=r.indexOf(u,a-1);c!==-1&&(i=c+1)}e.value.setSelectionRange(i,i)}return[n,o]}var We=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};const sE=Xe({size:{type:Ee([Number,String])},color:{type:String}}),lE=ue({name:"ElIcon",inheritAttrs:!1}),aE=ue({...lE,props:sE,setup(e){const t=e,n=xe("icon"),o=A(()=>{const{size:r,color:s}=t;return!r&&!s?{}:{fontSize:$r(r)?void 0:Rr(r),"--color":s}});return(r,s)=>(H(),se("i",en({class:y(n).b(),style:y(o)},r.$attrs),[$e(r.$slots,"default")],16))}});var iE=We(aE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const mt=Ht(iE);let zt;const uE=` + height:0 !important; + visibility:hidden !important; + ${$C()?"":"overflow:hidden !important;"} + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; +`,cE=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function fE(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),r=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:cE.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:o,borderSize:r,boxSizing:n}}function dc(e,t=1,n){var o;zt||(zt=document.createElement("textarea"),document.body.appendChild(zt));const{paddingSize:r,borderSize:s,boxSizing:l,contextStyle:a}=fE(e);zt.setAttribute("style",`${a};${uE}`),zt.value=e.value||e.placeholder||"";let i=zt.scrollHeight;const u={};l==="border-box"?i=i+s:l==="content-box"&&(i=i-r),zt.value="";const c=zt.scrollHeight-r;if(ht(t)){let f=c*t;l==="border-box"&&(f=f+r+s),i=Math.max(f,i),u.minHeight=`${f}px`}if(ht(n)){let f=c*n;l==="border-box"&&(f=f+r+s),i=Math.min(f,i)}return u.height=`${i}px`,(o=zt.parentNode)==null||o.removeChild(zt),zt=void 0,u}const dE=Xe({id:{type:String,default:void 0},size:Qo,disabled:Boolean,modelValue:{type:Ee([String,Number,Object]),default:""},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:Ee([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:vn},prefixIcon:{type:vn},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Ee([Object,Array,String]),default:()=>In({})}}),pE={[go]:e=>Me(e),input:e=>Me(e),change:e=>Me(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},hE=["role"],vE=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],gE=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],mE=ue({name:"ElInput",inheritAttrs:!1}),yE=ue({...mE,props:dE,emits:pE,setup(e,{expose:t,emit:n}){const o=e,r=gg(),s=Js(),l=A(()=>{const k={};return o.containerRole==="combobox"&&(k["aria-haspopup"]=r["aria-haspopup"],k["aria-owns"]=r["aria-owns"],k["aria-expanded"]=r["aria-expanded"]),k}),a=A(()=>[o.type==="textarea"?b.b():v.b(),v.m(h.value),v.is("disabled",p.value),v.is("exceed",pe.value),{[v.b("group")]:s.prepend||s.append,[v.bm("group","append")]:s.append,[v.bm("group","prepend")]:s.prepend,[v.m("prefix")]:s.prefix||o.prefixIcon,[v.m("suffix")]:s.suffix||o.suffixIcon||o.clearable||o.showPassword,[v.bm("suffix","password-clear")]:oe.value&&W.value},r.class]),i=A(()=>[v.e("wrapper"),v.is("focus",E.value)]),u=IC({excludeKeys:A(()=>Object.keys(l.value))}),{form:c,formItem:f}=Hr(),{inputId:d}=ci(o,{formItemContext:f}),h=No(),p=il(),v=xe("input"),b=xe("textarea"),g=ar(),C=ar(),E=R(!1),m=R(!1),M=R(!1),x=R(!1),_=R(),T=ar(o.inputStyle),F=A(()=>g.value||C.value),$=A(()=>{var k;return(k=c==null?void 0:c.statusIcon)!=null?k:!1}),N=A(()=>(f==null?void 0:f.validateState)||""),O=A(()=>N.value&&OC[N.value]),z=A(()=>x.value?wC:q1),Q=A(()=>[r.style,o.inputStyle]),K=A(()=>[o.inputStyle,T.value,{resize:o.resize}]),J=A(()=>sl(o.modelValue)?"":String(o.modelValue)),oe=A(()=>o.clearable&&!p.value&&!o.readonly&&!!J.value&&(E.value||m.value)),W=A(()=>o.showPassword&&!p.value&&!o.readonly&&!!J.value&&(!!J.value||E.value)),P=A(()=>o.showWordLimit&&!!u.value.maxlength&&(o.type==="text"||o.type==="textarea")&&!p.value&&!o.readonly&&!o.showPassword),te=A(()=>Array.from(J.value).length),pe=A(()=>!!P.value&&te.value>Number(u.value.maxlength)),Ce=A(()=>!!s.suffix||!!o.suffixIcon||oe.value||o.showPassword||P.value||!!N.value&&$.value),[Pe,Le]=rE(g);Lo(C,k=>{if(!P.value||o.resize!=="both")return;const G=k[0],{width:le}=G.contentRect;_.value={right:`calc(100% - ${le+15+6}px)`}});const I=()=>{const{type:k,autosize:G}=o;if(!(!Ge||k!=="textarea"||!C.value))if(G){const le=Re(G)?G.minRows:void 0,ve=Re(G)?G.maxRows:void 0;T.value={...dc(C.value,le,ve)}}else T.value={minHeight:dc(C.value).minHeight}},V=()=>{const k=F.value;!k||k.value===J.value||(k.value=J.value)},U=async k=>{Pe();let{value:G}=k.target;if(o.formatter&&(G=o.parser?o.parser(G):G,G=o.formatter(G)),!M.value){if(G===J.value){V();return}n(go,G),n("input",G),await Ue(),V(),Le()}},ee=k=>{n("change",k.target.value)},be=k=>{n("compositionstart",k),M.value=!0},Ne=k=>{var G;n("compositionupdate",k);const le=(G=k.target)==null?void 0:G.value,ve=le[le.length-1]||"";M.value=!RC(ve)},we=k=>{n("compositionend",k),M.value&&(M.value=!1,U(k))},w=()=>{x.value=!x.value,S()},S=async()=>{var k;await Ue(),(k=F.value)==null||k.focus()},L=()=>{var k;return(k=F.value)==null?void 0:k.blur()},B=k=>{E.value=!0,n("focus",k)},D=k=>{var G;E.value=!1,n("blur",k),o.validateEvent&&((G=f==null?void 0:f.validate)==null||G.call(f,"blur").catch(le=>void 0))},X=k=>{m.value=!1,n("mouseleave",k)},ne=k=>{m.value=!0,n("mouseenter",k)},q=k=>{n("keydown",k)},Z=()=>{var k;(k=F.value)==null||k.select()},j=()=>{n(go,""),n("change",""),n("clear"),n("input","")};return he(()=>o.modelValue,()=>{var k;Ue(()=>I()),o.validateEvent&&((k=f==null?void 0:f.validate)==null||k.call(f,"change").catch(G=>void 0))}),he(J,()=>V()),he(()=>o.type,async()=>{await Ue(),V(),I()}),Ze(()=>{!o.formatter&&o.parser,V(),Ue(I)}),t({input:g,textarea:C,ref:F,textareaStyle:K,autosize:It(o,"autosize"),focus:S,blur:L,select:Z,clear:j,resizeTextarea:I}),(k,G)=>lt((H(),se("div",en(y(l),{class:y(a),style:y(Q),role:k.containerRole,onMouseenter:ne,onMouseleave:X}),[_e(" input "),k.type!=="textarea"?(H(),se(Ke,{key:0},[_e(" prepend slot "),k.$slots.prepend?(H(),se("div",{key:0,class:Y(y(v).be("group","prepend"))},[$e(k.$slots,"prepend")],2)):_e("v-if",!0),ie("div",{class:Y(y(i))},[_e(" prefix slot "),k.$slots.prefix||k.prefixIcon?(H(),se("span",{key:0,class:Y(y(v).e("prefix"))},[ie("span",{class:Y(y(v).e("prefix-inner")),onClick:S},[$e(k.$slots,"prefix"),k.prefixIcon?(H(),ye(y(mt),{key:0,class:Y(y(v).e("icon"))},{default:fe(()=>[(H(),ye(pt(k.prefixIcon)))]),_:1},8,["class"])):_e("v-if",!0)],2)],2)):_e("v-if",!0),ie("input",en({id:y(d),ref_key:"input",ref:g,class:y(v).e("inner")},y(u),{type:k.showPassword?x.value?"text":"password":k.type,disabled:y(p),formatter:k.formatter,parser:k.parser,readonly:k.readonly,autocomplete:k.autocomplete,tabindex:k.tabindex,"aria-label":k.label,placeholder:k.placeholder,style:k.inputStyle,form:o.form,onCompositionstart:be,onCompositionupdate:Ne,onCompositionend:we,onInput:U,onFocus:B,onBlur:D,onChange:ee,onKeydown:q}),null,16,vE),_e(" suffix slot "),y(Ce)?(H(),se("span",{key:1,class:Y(y(v).e("suffix"))},[ie("span",{class:Y(y(v).e("suffix-inner")),onClick:S},[!y(oe)||!y(W)||!y(P)?(H(),se(Ke,{key:0},[$e(k.$slots,"suffix"),k.suffixIcon?(H(),ye(y(mt),{key:0,class:Y(y(v).e("icon"))},{default:fe(()=>[(H(),ye(pt(k.suffixIcon)))]),_:1},8,["class"])):_e("v-if",!0)],64)):_e("v-if",!0),y(oe)?(H(),ye(y(mt),{key:1,class:Y([y(v).e("icon"),y(v).e("clear")]),onMousedown:To(y(rt),["prevent"]),onClick:j},{default:fe(()=>[ae(y(Ld))]),_:1},8,["class","onMousedown"])):_e("v-if",!0),y(W)?(H(),ye(y(mt),{key:2,class:Y([y(v).e("icon"),y(v).e("password")]),onClick:w},{default:fe(()=>[(H(),ye(pt(y(z))))]),_:1},8,["class"])):_e("v-if",!0),y(P)?(H(),se("span",{key:3,class:Y(y(v).e("count"))},[ie("span",{class:Y(y(v).e("count-inner"))},tt(y(te))+" / "+tt(y(u).maxlength),3)],2)):_e("v-if",!0),y(N)&&y(O)&&y($)?(H(),ye(y(mt),{key:4,class:Y([y(v).e("icon"),y(v).e("validateIcon"),y(v).is("loading",y(N)==="validating")])},{default:fe(()=>[(H(),ye(pt(y(O))))]),_:1},8,["class"])):_e("v-if",!0)],2)],2)):_e("v-if",!0)],2),_e(" append slot "),k.$slots.append?(H(),se("div",{key:1,class:Y(y(v).be("group","append"))},[$e(k.$slots,"append")],2)):_e("v-if",!0)],64)):(H(),se(Ke,{key:1},[_e(" textarea "),ie("textarea",en({id:y(d),ref_key:"textarea",ref:C,class:y(b).e("inner")},y(u),{tabindex:k.tabindex,disabled:y(p),readonly:k.readonly,autocomplete:k.autocomplete,style:y(K),"aria-label":k.label,placeholder:k.placeholder,form:o.form,onCompositionstart:be,onCompositionupdate:Ne,onCompositionend:we,onInput:U,onFocus:B,onBlur:D,onChange:ee,onKeydown:q}),null,16,gE),y(P)?(H(),se("span",{key:0,style:et(_.value),class:Y(y(v).e("count"))},tt(y(te))+" / "+tt(y(u).maxlength),7)):_e("v-if",!0)],64))],16,hE)),[[Ut,k.type!=="hidden"]])}});var bE=We(yE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]]);const pp=Ht(bE),Oo=4,wE={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},CE=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),_E=Xe({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),EE="Thumb",SE=ue({__name:"thumb",props:_E,setup(e){const t=e,n=Se(Ud),o=xe("scrollbar");n||vo(EE,"can not inject scrollbar context");const r=R(),s=R(),l=R({}),a=R(!1);let i=!1,u=!1,c=Ge?document.onselectstart:null;const f=A(()=>wE[t.vertical?"vertical":"horizontal"]),d=A(()=>CE({size:t.size,move:t.move,bar:f.value})),h=A(()=>r.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/s.value[f.value.offset]),p=x=>{var _;if(x.stopPropagation(),x.ctrlKey||[1,2].includes(x.button))return;(_=window.getSelection())==null||_.removeAllRanges(),b(x);const T=x.currentTarget;T&&(l.value[f.value.axis]=T[f.value.offset]-(x[f.value.client]-T.getBoundingClientRect()[f.value.direction]))},v=x=>{if(!s.value||!r.value||!n.wrapElement)return;const _=Math.abs(x.target.getBoundingClientRect()[f.value.direction]-x[f.value.client]),T=s.value[f.value.offset]/2,F=(_-T)*100*h.value/r.value[f.value.offset];n.wrapElement[f.value.scroll]=F*n.wrapElement[f.value.scrollSize]/100},b=x=>{x.stopImmediatePropagation(),i=!0,document.addEventListener("mousemove",g),document.addEventListener("mouseup",C),c=document.onselectstart,document.onselectstart=()=>!1},g=x=>{if(!r.value||!s.value||i===!1)return;const _=l.value[f.value.axis];if(!_)return;const T=(r.value.getBoundingClientRect()[f.value.direction]-x[f.value.client])*-1,F=s.value[f.value.offset]-_,$=(T-F)*100*h.value/r.value[f.value.offset];n.wrapElement[f.value.scroll]=$*n.wrapElement[f.value.scrollSize]/100},C=()=>{i=!1,l.value[f.value.axis]=0,document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",C),M(),u&&(a.value=!1)},E=()=>{u=!1,a.value=!!t.size},m=()=>{u=!0,a.value=i};vt(()=>{M(),document.removeEventListener("mouseup",C)});const M=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return gn(It(n,"scrollbarElement"),"mousemove",E),gn(It(n,"scrollbarElement"),"mouseleave",m),(x,_)=>(H(),ye(Cn,{name:y(o).b("fade"),persisted:""},{default:fe(()=>[lt(ie("div",{ref_key:"instance",ref:r,class:Y([y(o).e("bar"),y(o).is(y(f).key)]),onMousedown:v},[ie("div",{ref_key:"thumb",ref:s,class:Y(y(o).e("thumb")),style:et(y(d)),onMousedown:p},null,38)],34),[[Ut,x.always||a.value]])]),_:1},8,["name"]))}});var pc=We(SE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const xE=Xe({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),TE=ue({__name:"bar",props:xE,setup(e,{expose:t}){const n=e,o=R(0),r=R(0);return t({handleScroll:l=>{if(l){const a=l.offsetHeight-Oo,i=l.offsetWidth-Oo;r.value=l.scrollTop*100/a*n.ratioY,o.value=l.scrollLeft*100/i*n.ratioX}}}),(l,a)=>(H(),se(Ke,null,[ae(pc,{move:o.value,ratio:l.ratioX,size:l.width,always:l.always},null,8,["move","ratio","size","always"]),ae(pc,{move:r.value,ratio:l.ratioY,size:l.height,vertical:"",always:l.always},null,8,["move","ratio","size","always"])],64))}});var OE=We(TE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const AE=Xe({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Ee([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),ME={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(ht)},$E="ElScrollbar",RE=ue({name:$E}),PE=ue({...RE,props:AE,emits:ME,setup(e,{expose:t,emit:n}){const o=e,r=xe("scrollbar");let s,l;const a=R(),i=R(),u=R(),c=R("0"),f=R("0"),d=R(),h=R(1),p=R(1),v=A(()=>{const _={};return o.height&&(_.height=Rr(o.height)),o.maxHeight&&(_.maxHeight=Rr(o.maxHeight)),[o.wrapStyle,_]}),b=A(()=>[o.wrapClass,r.e("wrap"),{[r.em("wrap","hidden-default")]:!o.native}]),g=A(()=>[r.e("view"),o.viewClass]),C=()=>{var _;i.value&&((_=d.value)==null||_.handleScroll(i.value),n("scroll",{scrollTop:i.value.scrollTop,scrollLeft:i.value.scrollLeft}))};function E(_,T){Re(_)?i.value.scrollTo(_):ht(_)&&ht(T)&&i.value.scrollTo(_,T)}const m=_=>{ht(_)&&(i.value.scrollTop=_)},M=_=>{ht(_)&&(i.value.scrollLeft=_)},x=()=>{if(!i.value)return;const _=i.value.offsetHeight-Oo,T=i.value.offsetWidth-Oo,F=_**2/i.value.scrollHeight,$=T**2/i.value.scrollWidth,N=Math.max(F,o.minSize),O=Math.max($,o.minSize);h.value=F/(_-F)/(N/(_-N)),p.value=$/(T-$)/(O/(T-O)),f.value=N+Oo<_?`${N}px`:"",c.value=O+Ooo.noresize,_=>{_?(s==null||s(),l==null||l()):({stop:s}=Lo(u,x),l=gn("resize",x))},{immediate:!0}),he(()=>[o.maxHeight,o.height],()=>{o.native||Ue(()=>{var _;x(),i.value&&((_=d.value)==null||_.handleScroll(i.value))})}),st(Ud,Yt({scrollbarElement:a,wrapElement:i})),Ze(()=>{o.native||Ue(()=>{x()})}),Ba(()=>x()),t({wrapRef:i,update:x,scrollTo:E,setScrollTop:m,setScrollLeft:M,handleScroll:C}),(_,T)=>(H(),se("div",{ref_key:"scrollbarRef",ref:a,class:Y(y(r).b())},[ie("div",{ref_key:"wrapRef",ref:i,class:Y(y(b)),style:et(y(v)),onScroll:C},[(H(),ye(pt(_.tag),{ref_key:"resizeRef",ref:u,class:Y(y(g)),style:et(_.viewStyle)},{default:fe(()=>[$e(_.$slots,"default")]),_:3},8,["class","style"]))],38),_.native?_e("v-if",!0):(H(),ye(OE,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:_.always,"ratio-x":p.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var kE=We(PE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const hp=Ht(kE),IE=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],vp=Xe({role:{type:String,values:IE,default:"tooltip"}}),LE=ue({name:"ElPopper",inheritAttrs:!1}),NE=ue({...LE,props:vp,setup(e,{expose:t}){const n=e,o=R(),r=R(),s=R(),l=R(),a=A(()=>n.role),i={triggerRef:o,popperInstanceRef:r,contentRef:s,referenceRef:l,role:a};return t(i),st(ai,i),(u,c)=>$e(u.$slots,"default")}});var FE=We(NE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const gp=Xe({arrowOffset:{type:Number,default:5}}),BE=ue({name:"ElPopperArrow",inheritAttrs:!1}),HE=ue({...BE,props:gp,setup(e,{expose:t}){const n=e,o=xe("popper"),{arrowOffset:r,arrowRef:s,arrowStyle:l}=Se(Vd,void 0);return he(()=>n.arrowOffset,a=>{r.value=a}),vt(()=>{s.value=void 0}),t({arrowRef:s}),(a,i)=>(H(),se("span",{ref_key:"arrowRef",ref:s,class:Y(y(o).e("arrow")),style:et(y(l)),"data-popper-arrow":""},null,6))}});var zE=We(HE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const DE="ElOnlyChild",WE=ue({name:DE,setup(e,{slots:t,attrs:n}){var o;const r=Se(dp),s=oE((o=r==null?void 0:r.setForwardRef)!=null?o:rt);return()=>{var l;const a=(l=t.default)==null?void 0:l.call(t,n);if(!a||a.length>1)return null;const i=mp(a);return i?lt(yn(i,n),[[s]]):null}}});function mp(e){if(!e)return null;const t=e;for(const n of t){if(Re(n))switch(n.type){case Ct:continue;case Xo:case"svg":return hc(n);case Ke:return mp(n.children);default:return n}return hc(n)}return null}function hc(e){const t=xe("only-child");return ae("span",{class:t.e("content")},[e])}const yp=Xe({virtualRef:{type:Ee(Object)},virtualTriggering:Boolean,onMouseenter:{type:Ee(Function)},onMouseleave:{type:Ee(Function)},onClick:{type:Ee(Function)},onKeydown:{type:Ee(Function)},onFocus:{type:Ee(Function)},onBlur:{type:Ee(Function)},onContextmenu:{type:Ee(Function)},id:String,open:Boolean}),jE=ue({name:"ElPopperTrigger",inheritAttrs:!1}),KE=ue({...jE,props:yp,setup(e,{expose:t}){const n=e,{role:o,triggerRef:r}=Se(ai,void 0);nE(r);const s=A(()=>a.value?n.id:void 0),l=A(()=>{if(o&&o.value==="tooltip")return n.open&&n.id?n.id:void 0}),a=A(()=>{if(o&&o.value!=="tooltip")return o.value}),i=A(()=>a.value?`${n.open}`:void 0);let u;return Ze(()=>{he(()=>n.virtualRef,c=>{c&&(r.value=Ln(c))},{immediate:!0}),he(r,(c,f)=>{u==null||u(),u=void 0,Dn(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const p=n[d];p&&(c.addEventListener(d.slice(2).toLowerCase(),p),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),p))}),u=he([s,l,a,i],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,p)=>{sl(d[p])?c.removeAttribute(h):c.setAttribute(h,d[p])})},{immediate:!0})),Dn(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),vt(()=>{u==null||u(),u=void 0}),t({triggerRef:r}),(c,f)=>c.virtualTriggering?_e("v-if",!0):(H(),ye(y(WE),en({key:0},c.$attrs,{"aria-controls":y(s),"aria-describedby":y(l),"aria-expanded":y(i),"aria-haspopup":y(a)}),{default:fe(()=>[$e(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var UE=We(KE,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const xl="focus-trap.focus-after-trapped",Tl="focus-trap.focus-after-released",VE="focus-trap.focusout-prevented",vc={cancelable:!0,bubbles:!1},qE={cancelable:!0,bubbles:!1},gc="focusAfterTrapped",mc="focusAfterReleased",YE=Symbol("elFocusTrap"),Ci=R(),fl=R(0),_i=R(0);let Qr=0;const bp=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},yc=(e,t)=>{for(const n of e)if(!GE(n,t))return n},GE=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},XE=e=>{const t=bp(e),n=yc(t,e),o=yc(t.reverse(),e);return[n,o]},ZE=e=>e instanceof HTMLInputElement&&"select"in e,Mn=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),_i.value=window.performance.now(),e!==n&&ZE(e)&&t&&e.select()}};function bc(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const JE=()=>{let e=[];return{push:o=>{const r=e[0];r&&o!==r&&r.pause(),e=bc(e,o),e.unshift(o)},remove:o=>{var r,s;e=bc(e,o),(s=(r=e[0])==null?void 0:r.resume)==null||s.call(r)}}},QE=(e,t=!1)=>{const n=document.activeElement;for(const o of e)if(Mn(o,t),document.activeElement!==n)return},wc=JE(),eS=()=>fl.value>_i.value,es=()=>{Ci.value="pointer",fl.value=window.performance.now()},Cc=()=>{Ci.value="keyboard",fl.value=window.performance.now()},tS=()=>(Ze(()=>{Qr===0&&(document.addEventListener("mousedown",es),document.addEventListener("touchstart",es),document.addEventListener("keydown",Cc)),Qr++}),vt(()=>{Qr--,Qr<=0&&(document.removeEventListener("mousedown",es),document.removeEventListener("touchstart",es),document.removeEventListener("keydown",Cc))}),{focusReason:Ci,lastUserFocusTimestamp:fl,lastAutomatedFocusTimestamp:_i}),ts=e=>new CustomEvent(VE,{...qE,detail:e}),nS=ue({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[gc,mc,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=R();let o,r;const{focusReason:s}=tS();J_(p=>{e.trapped&&!l.paused&&t("release-requested",p)});const l={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},a=p=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:v,altKey:b,ctrlKey:g,metaKey:C,currentTarget:E,shiftKey:m}=p,{loop:M}=e,x=v===dt.tab&&!b&&!g&&!C,_=document.activeElement;if(x&&_){const T=E,[F,$]=XE(T);if(F&&$){if(!m&&_===$){const O=ts({focusReason:s.value});t("focusout-prevented",O),O.defaultPrevented||(p.preventDefault(),M&&Mn(F,!0))}else if(m&&[F,T].includes(_)){const O=ts({focusReason:s.value});t("focusout-prevented",O),O.defaultPrevented||(p.preventDefault(),M&&Mn($,!0))}}else if(_===T){const O=ts({focusReason:s.value});t("focusout-prevented",O),O.defaultPrevented||p.preventDefault()}}};st(YE,{focusTrapRef:n,onKeydown:a}),he(()=>e.focusTrapEl,p=>{p&&(n.value=p)},{immediate:!0}),he([n],([p],[v])=>{p&&(p.addEventListener("keydown",a),p.addEventListener("focusin",c),p.addEventListener("focusout",f)),v&&(v.removeEventListener("keydown",a),v.removeEventListener("focusin",c),v.removeEventListener("focusout",f))});const i=p=>{t(gc,p)},u=p=>t(mc,p),c=p=>{const v=y(n);if(!v)return;const b=p.target,g=p.relatedTarget,C=b&&v.contains(b);e.trapped||g&&v.contains(g)||(o=g),C&&t("focusin",p),!l.paused&&e.trapped&&(C?r=b:Mn(r,!0))},f=p=>{const v=y(n);if(!(l.paused||!v))if(e.trapped){const b=p.relatedTarget;!sl(b)&&!v.contains(b)&&setTimeout(()=>{if(!l.paused&&e.trapped){const g=ts({focusReason:s.value});t("focusout-prevented",g),g.defaultPrevented||Mn(r,!0)}},0)}else{const b=p.target;b&&v.contains(b)||t("focusout",p)}};async function d(){await Ue();const p=y(n);if(p){wc.push(l);const v=p.contains(document.activeElement)?o:document.activeElement;if(o=v,!p.contains(v)){const g=new Event(xl,vc);p.addEventListener(xl,i),p.dispatchEvent(g),g.defaultPrevented||Ue(()=>{let C=e.focusStartEl;Me(C)||(Mn(C),document.activeElement!==C&&(C="first")),C==="first"&&QE(bp(p),!0),(document.activeElement===v||C==="container")&&Mn(p)})}}}function h(){const p=y(n);if(p){p.removeEventListener(xl,i);const v=new CustomEvent(Tl,{...vc,detail:{focusReason:s.value}});p.addEventListener(Tl,u),p.dispatchEvent(v),!v.defaultPrevented&&(s.value=="keyboard"||!eS()||p.contains(document.activeElement))&&Mn(o??document.body),p.removeEventListener(Tl,i),wc.remove(l)}}return Ze(()=>{e.trapped&&d(),he(()=>e.trapped,p=>{p?d():h()})}),vt(()=>{e.trapped&&h()}),{onKeydown:a}}});function oS(e,t,n,o,r,s){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var wp=We(nS,[["render",oS],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const rS=["fixed","absolute"],sS=Xe({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Ee(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:pi,default:"bottom"},popperOptions:{type:Ee(Object),default:()=>({})},strategy:{type:String,values:rS,default:"absolute"}}),Cp=Xe({...sS,id:String,style:{type:Ee([String,Array,Object])},className:{type:Ee([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Ee([String,Array,Object])},popperStyle:{type:Ee([String,Array,Object])},referenceEl:{type:Ee(Object)},triggerTargetEl:{type:Ee(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),lS={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},aS=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:r}=e,s={placement:n,strategy:o,...r,modifiers:[...uS(e),...t]};return cS(s,r==null?void 0:r.modifiers),s},iS=e=>{if(Ge)return Ln(e)};function uS(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function cS(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const fS=0,dS=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:r}=Se(ai,void 0),s=R(),l=R(),a=A(()=>({name:"eventListeners",enabled:!!e.visible})),i=A(()=>{var g;const C=y(s),E=(g=y(l))!=null?g:fS;return{name:"arrow",enabled:!Ow(C),options:{element:C,padding:E}}}),u=A(()=>({onFirstUpdate:()=>{p()},...aS(e,[y(i),y(a)])})),c=A(()=>iS(e.referenceEl)||y(o)),{attributes:f,state:d,styles:h,update:p,forceUpdate:v,instanceRef:b}=Y_(c,n,u);return he(b,g=>t.value=g),Ze(()=>{he(()=>{var g;return(g=y(c))==null?void 0:g.getBoundingClientRect()},()=>{p()})}),{attributes:f,arrowRef:s,contentRef:n,instanceRef:b,state:d,styles:h,role:r,forceUpdate:v,update:p}},pS=(e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:r}=cl(),s=xe("popper"),l=A(()=>y(t).popper),a=R(e.zIndex||r()),i=A(()=>[s.b(),s.is("pure",e.pure),s.is(e.effect),e.popperClass]),u=A(()=>[{zIndex:y(a)},e.popperStyle||{},y(n).popper]),c=A(()=>o.value==="dialog"?"false":void 0),f=A(()=>y(n).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:l,contentClass:i,contentStyle:u,contentZIndex:a,updateZIndex:()=>{a.value=e.zIndex||r()}}},hS=(e,t)=>{const n=R(!1),o=R();return{focusStartRef:o,trapped:n,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!n.value&&(u.target&&(o.value=u.target),n.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},vS=ue({name:"ElPopperContent"}),gS=ue({...vS,props:Cp,emits:lS,setup(e,{expose:t,emit:n}){const o=e,{focusStartRef:r,trapped:s,onFocusAfterReleased:l,onFocusAfterTrapped:a,onFocusInTrap:i,onFocusoutPrevented:u,onReleaseRequested:c}=hS(o,n),{attributes:f,arrowRef:d,contentRef:h,styles:p,instanceRef:v,role:b,update:g}=dS(o),{ariaModal:C,arrowStyle:E,contentAttrs:m,contentClass:M,contentStyle:x,updateZIndex:_}=pS(o,{styles:p,attributes:f,role:b}),T=Se(ks,void 0),F=R();st(Vd,{arrowStyle:E,arrowRef:d,arrowOffset:F}),T&&(T.addInputId||T.removeInputId)&&st(ks,{...T,addInputId:rt,removeInputId:rt});let $;const N=(z=!0)=>{g(),z&&_()},O=()=>{N(!1),o.visible&&o.focusOnShow?s.value=!0:o.visible===!1&&(s.value=!1)};return Ze(()=>{he(()=>o.triggerTargetEl,(z,Q)=>{$==null||$(),$=void 0;const K=y(z||h.value),J=y(Q||h.value);Dn(K)&&($=he([b,()=>o.ariaLabel,C,()=>o.id],oe=>{["role","aria-label","aria-modal","id"].forEach((W,P)=>{sl(oe[P])?K.removeAttribute(W):K.setAttribute(W,oe[P])})},{immediate:!0})),J!==K&&Dn(J)&&["role","aria-label","aria-modal","id"].forEach(oe=>{J.removeAttribute(oe)})},{immediate:!0}),he(()=>o.visible,O,{immediate:!0})}),vt(()=>{$==null||$(),$=void 0}),t({popperContentRef:h,popperInstanceRef:v,updatePopper:N,contentStyle:x}),(z,Q)=>(H(),se("div",en({ref_key:"contentRef",ref:h},y(m),{style:y(x),class:y(M),tabindex:"-1",onMouseenter:Q[0]||(Q[0]=K=>z.$emit("mouseenter",K)),onMouseleave:Q[1]||(Q[1]=K=>z.$emit("mouseleave",K))}),[ae(y(wp),{trapped:y(s),"trap-on-focus-in":!0,"focus-trap-el":y(h),"focus-start-el":y(r),onFocusAfterTrapped:y(a),onFocusAfterReleased:y(l),onFocusin:y(i),onFocusoutPrevented:y(u),onReleaseRequested:y(c)},{default:fe(()=>[$e(z.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var mS=We(gS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const yS=Ht(FE),bS=xe("tooltip"),_p=Xe({...tE,...Cp,appendTo:{type:Ee([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Ee(Boolean),default:null},transition:{type:String,default:`${bS.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),Ep=Xe({...yp,disabled:Boolean,trigger:{type:Ee([String,Array]),default:"hover"},triggerKeys:{type:Ee(Array),default:()=>[dt.enter,dt.space]}}),{useModelToggleProps:wS,useModelToggleEmits:CS,useModelToggle:_S}=Xd("visible"),ES=Xe({...vp,...wS,..._p,...Ep,...gp,showArrow:{type:Boolean,default:!0}}),SS=[...CS,"before-show","before-hide","show","hide","open","close"],xS=(e,t)=>ce(e)?e.includes(t):e===t,_o=(e,t,n)=>o=>{xS(y(e),t)&&n(o)},TS=ue({name:"ElTooltipTrigger"}),OS=ue({...TS,props:Ep,setup(e,{expose:t}){const n=e,o=xe("tooltip"),{controlled:r,id:s,open:l,onOpen:a,onClose:i,onToggle:u}=Se(ii,void 0),c=R(null),f=()=>{if(y(r)||n.disabled)return!0},d=It(n,"trigger"),h=hn(f,_o(d,"hover",a)),p=hn(f,_o(d,"hover",i)),v=hn(f,_o(d,"click",m=>{m.button===0&&u(m)})),b=hn(f,_o(d,"focus",a)),g=hn(f,_o(d,"focus",i)),C=hn(f,_o(d,"contextmenu",m=>{m.preventDefault(),u(m)})),E=hn(f,m=>{const{code:M}=m;n.triggerKeys.includes(M)&&(m.preventDefault(),u(m))});return t({triggerRef:c}),(m,M)=>(H(),ye(y(UE),{id:y(s),"virtual-ref":m.virtualRef,open:y(l),"virtual-triggering":m.virtualTriggering,class:Y(y(o).e("trigger")),onBlur:y(g),onClick:y(v),onContextmenu:y(C),onFocus:y(b),onMouseenter:y(h),onMouseleave:y(p),onKeydown:y(E)},{default:fe(()=>[$e(m.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var AS=We(OS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const MS=ue({name:"ElTooltipContent",inheritAttrs:!1}),$S=ue({...MS,props:_p,setup(e,{expose:t}){const n=e,{selector:o}=cp(),r=R(null),s=R(!1),{controlled:l,id:a,open:i,trigger:u,onClose:c,onOpen:f,onShow:d,onHide:h,onBeforeShow:p,onBeforeHide:v}=Se(ii,void 0),b=A(()=>n.persistent);vt(()=>{s.value=!0});const g=A(()=>y(b)?!0:y(i)),C=A(()=>n.disabled?!1:y(i)),E=A(()=>n.appendTo||o.value),m=A(()=>{var K;return(K=n.style)!=null?K:{}}),M=A(()=>!y(i)),x=()=>{h()},_=()=>{if(y(l))return!0},T=hn(_,()=>{n.enterable&&y(u)==="hover"&&f()}),F=hn(_,()=>{y(u)==="hover"&&c()}),$=()=>{var K,J;(J=(K=r.value)==null?void 0:K.updatePopper)==null||J.call(K),p==null||p()},N=()=>{v==null||v()},O=()=>{d(),Q=Dw(A(()=>{var K;return(K=r.value)==null?void 0:K.popperContentRef}),()=>{if(y(l))return;y(u)!=="hover"&&c()})},z=()=>{n.virtualTriggering||c()};let Q;return he(()=>y(i),K=>{K||Q==null||Q()},{flush:"post"}),he(()=>n.content,()=>{var K,J;(J=(K=r.value)==null?void 0:K.updatePopper)==null||J.call(K)}),t({contentRef:r}),(K,J)=>(H(),ye(rg,{disabled:!K.teleported,to:y(E)},[ae(Cn,{name:K.transition,onAfterLeave:x,onBeforeEnter:$,onAfterEnter:O,onBeforeLeave:N},{default:fe(()=>[y(g)?lt((H(),ye(y(mS),en({key:0,id:y(a),ref_key:"contentRef",ref:r},K.$attrs,{"aria-label":K.ariaLabel,"aria-hidden":y(M),"boundaries-padding":K.boundariesPadding,"fallback-placements":K.fallbackPlacements,"gpu-acceleration":K.gpuAcceleration,offset:K.offset,placement:K.placement,"popper-options":K.popperOptions,strategy:K.strategy,effect:K.effect,enterable:K.enterable,pure:K.pure,"popper-class":K.popperClass,"popper-style":[K.popperStyle,y(m)],"reference-el":K.referenceEl,"trigger-target-el":K.triggerTargetEl,visible:y(C),"z-index":K.zIndex,onMouseenter:y(T),onMouseleave:y(F),onBlur:z,onClose:y(c)}),{default:fe(()=>[s.value?_e("v-if",!0):$e(K.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Ut,y(C)]]):_e("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var RS=We($S,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const PS=["innerHTML"],kS={key:1},IS=ue({name:"ElTooltip"}),LS=ue({...IS,props:ES,emits:SS,setup(e,{expose:t,emit:n}){const o=e;eE();const r=Ls(),s=R(),l=R(),a=()=>{var g;const C=y(s);C&&((g=C.popperInstanceRef)==null||g.update())},i=R(!1),u=R(),{show:c,hide:f,hasUpdateHandler:d}=_S({indicator:i,toggleReason:u}),{onOpen:h,onClose:p}=fp({showAfter:It(o,"showAfter"),hideAfter:It(o,"hideAfter"),open:c,close:f}),v=A(()=>Io(o.visible)&&!d.value);st(ii,{controlled:v,id:r,open:Ks(i),trigger:It(o,"trigger"),onOpen:g=>{h(g)},onClose:g=>{p(g)},onToggle:g=>{y(i)?p(g):h(g)},onShow:()=>{n("show",u.value)},onHide:()=>{n("hide",u.value)},onBeforeShow:()=>{n("before-show",u.value)},onBeforeHide:()=>{n("before-hide",u.value)},updatePopper:a}),he(()=>o.disabled,g=>{g&&i.value&&(i.value=!1)});const b=()=>{var g,C;const E=(C=(g=l.value)==null?void 0:g.contentRef)==null?void 0:C.popperContentRef;return E&&E.contains(document.activeElement)};return Ff(()=>i.value&&f()),t({popperRef:s,contentRef:l,isFocusInsideContent:b,updatePopper:a,onOpen:h,onClose:p,hide:f}),(g,C)=>(H(),ye(y(yS),{ref_key:"popperRef",ref:s,role:g.role},{default:fe(()=>[ae(AS,{disabled:g.disabled,trigger:g.trigger,"trigger-keys":g.triggerKeys,"virtual-ref":g.virtualRef,"virtual-triggering":g.virtualTriggering},{default:fe(()=>[g.$slots.default?$e(g.$slots,"default",{key:0}):_e("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ae(RS,{ref_key:"contentRef",ref:l,"aria-label":g.ariaLabel,"boundaries-padding":g.boundariesPadding,content:g.content,disabled:g.disabled,effect:g.effect,enterable:g.enterable,"fallback-placements":g.fallbackPlacements,"hide-after":g.hideAfter,"gpu-acceleration":g.gpuAcceleration,offset:g.offset,persistent:g.persistent,"popper-class":g.popperClass,"popper-style":g.popperStyle,placement:g.placement,"popper-options":g.popperOptions,pure:g.pure,"raw-content":g.rawContent,"reference-el":g.referenceEl,"trigger-target-el":g.triggerTargetEl,"show-after":g.showAfter,strategy:g.strategy,teleported:g.teleported,transition:g.transition,"virtual-triggering":g.virtualTriggering,"z-index":g.zIndex,"append-to":g.appendTo},{default:fe(()=>[$e(g.$slots,"content",{},()=>[g.rawContent?(H(),se("span",{key:0,innerHTML:g.content},null,8,PS)):(H(),se("span",kS,tt(g.content),1))]),g.showArrow?(H(),ye(y(zE),{key:0,"arrow-offset":g.arrowOffset},null,8,["arrow-offset"])):_e("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var NS=We(LS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ei=Ht(NS),FS=Xe({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),BS=["textContent"],HS=ue({name:"ElBadge"}),zS=ue({...HS,props:FS,setup(e,{expose:t}){const n=e,o=xe("badge"),r=A(()=>n.isDot?"":ht(n.value)&&ht(n.max)?n.max(H(),se("div",{class:Y(y(o).b())},[$e(s.$slots,"default"),ae(Cn,{name:`${y(o).namespace.value}-zoom-in-center`,persisted:""},{default:fe(()=>[lt(ie("sup",{class:Y([y(o).e("content"),y(o).em("content",s.type),y(o).is("fixed",!!s.$slots.default),y(o).is("dot",s.isDot)]),textContent:tt(y(r))},null,10,BS),[[Ut,!s.hidden&&(y(r)||s.isDot)]])]),_:1},8,["name"])],2))}});var DS=We(zS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const WS=Ht(DS),jS=(e,t)=>{Yd({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},A(()=>e.type==="text"));const n=Se(Wd,void 0),o=Wn("button"),{form:r}=Hr(),s=No(A(()=>n==null?void 0:n.size)),l=il(),a=R(),i=Js(),u=A(()=>e.type||(n==null?void 0:n.type)||""),c=A(()=>{var h,p,v;return(v=(p=e.autoInsertSpace)!=null?p:(h=o.value)==null?void 0:h.autoInsertSpace)!=null?v:!1}),f=A(()=>{var h;const p=(h=i.default)==null?void 0:h.call(i);if(c.value&&(p==null?void 0:p.length)===1){const v=p[0];if((v==null?void 0:v.type)===Xo){const b=v.children;return/^\p{Unified_Ideograph}{2}$/u.test(b.trim())}}return!1});return{_disabled:l,_size:s,_type:u,_ref:a,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(r==null||r.resetFields()),t("click",h)}}},KS=["default","primary","success","warning","info","danger","text",""],US=["button","submit","reset"],la=Xe({size:Qo,disabled:Boolean,type:{type:String,values:KS,default:""},icon:{type:vn},nativeType:{type:String,values:US,default:"button"},loading:Boolean,loadingIcon:{type:vn,default:()=>si},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),VS={click:e=>e instanceof MouseEvent};function ut(e,t){qS(e)&&(e="100%");var n=YS(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function ns(e){return Math.min(1,Math.max(0,e))}function qS(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function YS(e){return typeof e=="string"&&e.indexOf("%")!==-1}function Sp(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function os(e){return e<=1?"".concat(Number(e)*100,"%"):e}function ro(e){return e.length===1?"0"+e:String(e)}function GS(e,t,n){return{r:ut(e,255)*255,g:ut(t,255)*255,b:ut(n,255)*255}}function _c(e,t,n){e=ut(e,255),t=ut(t,255),n=ut(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),s=0,l=0,a=(o+r)/2;if(o===r)l=0,s=0;else{var i=o-r;switch(l=a>.5?i/(2-o-r):i/(o+r),o){case e:s=(t-n)/i+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function XS(e,t,n){var o,r,s;if(e=ut(e,360),t=ut(t,100),n=ut(n,100),t===0)r=n,s=n,o=n;else{var l=n<.5?n*(1+t):n+t-n*t,a=2*n-l;o=Ol(a,l,e+1/3),r=Ol(a,l,e),s=Ol(a,l,e-1/3)}return{r:o*255,g:r*255,b:s*255}}function Ec(e,t,n){e=ut(e,255),t=ut(t,255),n=ut(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),s=0,l=o,a=o-r,i=o===0?0:a/o;if(o===r)s=0;else{switch(o){case e:s=(t-n)/a+(t>16,g:(e&65280)>>8,b:e&255}}var aa={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function t2(e){var t={r:0,g:0,b:0},n=1,o=null,r=null,s=null,l=!1,a=!1;return typeof e=="string"&&(e=r2(e)),typeof e=="object"&&(cn(e.r)&&cn(e.g)&&cn(e.b)?(t=GS(e.r,e.g,e.b),l=!0,a=String(e.r).substr(-1)==="%"?"prgb":"rgb"):cn(e.h)&&cn(e.s)&&cn(e.v)?(o=os(e.s),r=os(e.v),t=ZS(e.h,o,r),l=!0,a="hsv"):cn(e.h)&&cn(e.s)&&cn(e.l)&&(o=os(e.s),s=os(e.l),t=XS(e.h,o,s),l=!0,a="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=Sp(n),{ok:l,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var n2="[-\\+]?\\d+%?",o2="[-\\+]?\\d*\\.\\d+%?",Nn="(?:".concat(o2,")|(?:").concat(n2,")"),Al="[\\s|\\(]+(".concat(Nn,")[,|\\s]+(").concat(Nn,")[,|\\s]+(").concat(Nn,")\\s*\\)?"),Ml="[\\s|\\(]+(".concat(Nn,")[,|\\s]+(").concat(Nn,")[,|\\s]+(").concat(Nn,")[,|\\s]+(").concat(Nn,")\\s*\\)?"),Dt={CSS_UNIT:new RegExp(Nn),rgb:new RegExp("rgb"+Al),rgba:new RegExp("rgba"+Ml),hsl:new RegExp("hsl"+Al),hsla:new RegExp("hsla"+Ml),hsv:new RegExp("hsv"+Al),hsva:new RegExp("hsva"+Ml),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function r2(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(aa[e])e=aa[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=Dt.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=Dt.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Dt.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=Dt.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Dt.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=Dt.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Dt.hex8.exec(e),n?{r:Ot(n[1]),g:Ot(n[2]),b:Ot(n[3]),a:xc(n[4]),format:t?"name":"hex8"}:(n=Dt.hex6.exec(e),n?{r:Ot(n[1]),g:Ot(n[2]),b:Ot(n[3]),format:t?"name":"hex"}:(n=Dt.hex4.exec(e),n?{r:Ot(n[1]+n[1]),g:Ot(n[2]+n[2]),b:Ot(n[3]+n[3]),a:xc(n[4]+n[4]),format:t?"name":"hex8"}:(n=Dt.hex3.exec(e),n?{r:Ot(n[1]+n[1]),g:Ot(n[2]+n[2]),b:Ot(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function cn(e){return Boolean(Dt.CSS_UNIT.exec(String(e)))}var xp=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t=="number"&&(t=e2(t)),this.originalInput=t;var r=t2(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:r.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,r,s=t.r/255,l=t.g/255,a=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?o=l/12.92:o=Math.pow((l+.055)/1.055,2.4),a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),.2126*n+.7152*o+.0722*r},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=Sp(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Ec(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Ec(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(o,"%, ").concat(r,"%)"):"hsva(".concat(n,", ").concat(o,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=_c(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=_c(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(o,"%, ").concat(r,"%)"):"hsla(".concat(n,", ").concat(o,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Sc(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),JS(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(o,")"):"rgba(".concat(t,", ").concat(n,", ").concat(o,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(ut(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(ut(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Sc(this.r,this.g,this.b,!1),n=0,o=Object.entries(aa);n=0,s=!n&&r&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(!0)),t==="hex4"&&(o=this.toHex8String(!0)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=ns(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=ns(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=ns(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=ns(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),r=new e(t).toRgb(),s=n/100,l={r:(r.r-o.r)*s+o.r,g:(r.g-o.g)*s+o.g,b:(r.b-o.b)*s+o.b,a:(r.a-o.a)*s+o.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),r=360/n,s=[this];for(o.h=(o.h-(r*t>>1)+720)%360;--t;)o.h=(o.h+r)%360,s.push(new e(o));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,r=n.s,s=n.v,l=[],a=1/t;t--;)l.push(new e({h:o,s:r,v:s})),s=(s+a)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),r=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/r,g:(n.g*n.a+o.g*o.a*(1-n.a))/r,b:(n.b*n.a+o.b*o.a*(1-n.a))/r,a:r})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,r=[this],s=360/t,l=1;l{let o={};const r=e.color;if(r){const s=new xp(r),l=e.dark?s.tint(20).toString():On(s,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?On(s,90):s.tint(90).toString(),"text-color":r,"border-color":e.dark?On(s,50):s.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":r,"hover-border-color":r,"active-bg-color":l,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":l}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?On(s,90):s.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?On(s,50):s.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?On(s,80):s.tint(80).toString());else{const a=e.dark?On(s,30):s.tint(30).toString(),i=s.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":r,"text-color":i,"border-color":r,"hover-bg-color":a,"hover-text-color":i,"hover-border-color":a,"active-bg-color":l,"active-border-color":l}),t.value){const u=e.dark?On(s,50):s.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=u,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=u}}}return o})}const l2=["aria-disabled","disabled","autofocus","type"],a2=ue({name:"ElButton"}),i2=ue({...a2,props:la,emits:VS,setup(e,{expose:t,emit:n}){const o=e,r=s2(o),s=xe("button"),{_ref:l,_size:a,_type:i,_disabled:u,shouldAddSpace:c,handleClick:f}=jS(o,n);return t({ref:l,size:a,type:i,disabled:u,shouldAddSpace:c}),(d,h)=>(H(),se("button",{ref_key:"_ref",ref:l,class:Y([y(s).b(),y(s).m(y(i)),y(s).m(y(a)),y(s).is("disabled",y(u)),y(s).is("loading",d.loading),y(s).is("plain",d.plain),y(s).is("round",d.round),y(s).is("circle",d.circle),y(s).is("text",d.text),y(s).is("link",d.link),y(s).is("has-bg",d.bg)]),"aria-disabled":y(u)||d.loading,disabled:y(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:et(y(r)),onClick:h[0]||(h[0]=(...p)=>y(f)&&y(f)(...p))},[d.loading?(H(),se(Ke,{key:0},[d.$slots.loading?$e(d.$slots,"loading",{key:0}):(H(),ye(y(mt),{key:1,class:Y(y(s).is("loading"))},{default:fe(()=>[(H(),ye(pt(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(H(),ye(y(mt),{key:1},{default:fe(()=>[d.icon?(H(),ye(pt(d.icon),{key:0})):$e(d.$slots,"icon",{key:1})]),_:3})):_e("v-if",!0),d.$slots.default?(H(),se("span",{key:2,class:Y({[y(s).em("text","expand")]:y(c)})},[$e(d.$slots,"default")],2)):_e("v-if",!0)],14,l2))}});var u2=We(i2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const c2={size:la.size,type:la.type},f2=ue({name:"ElButtonGroup"}),d2=ue({...f2,props:c2,setup(e){const t=e;st(Wd,Yt({size:It(t,"size"),type:It(t,"type")}));const n=xe("button");return(o,r)=>(H(),se("div",{class:Y(`${y(n).b("group")}`)},[$e(o.$slots,"default")],2))}});var Tp=We(d2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Op=Ht(u2,{ButtonGroup:Tp});Co(Tp);const $n=new Map;let Tc;Ge&&(document.addEventListener("mousedown",e=>Tc=e),document.addEventListener("mouseup",e=>{for(const t of $n.values())for(const{documentHandler:n}of t)n(e,Tc)}));function Oc(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:Dn(t.arg)&&n.push(t.arg),function(o,r){const s=t.instance.popperRef,l=o.target,a=r==null?void 0:r.target,i=!t||!t.instance,u=!l||!a,c=e.contains(l)||e.contains(a),f=e===l,d=n.length&&n.some(p=>p==null?void 0:p.contains(l))||n.length&&n.includes(a),h=s&&(s.contains(l)||s.contains(a));i||u||c||f||d||h||t.value(o,r)}}const p2={beforeMount(e,t){$n.has(e)||$n.set(e,[]),$n.get(e).push({documentHandler:Oc(e,t),bindingFn:t.value})},updated(e,t){$n.has(e)||$n.set(e,[]);const n=$n.get(e),o=n.findIndex(s=>s.bindingFn===t.oldValue),r={documentHandler:Oc(e,t),bindingFn:t.value};o>=0?n.splice(o,1,r):n.push(r)},unmounted(e){$n.delete(e)}},ia="_trap-focus-children",so=[],Ac=e=>{if(so.length===0)return;const t=so[so.length-1][ia];if(t.length>0&&e.code===dt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,o=e.target===t[0],r=e.target===t[t.length-1];o&&n&&(e.preventDefault(),t[t.length-1].focus()),r&&!n&&(e.preventDefault(),t[0].focus())}},h2={beforeMount(e){e[ia]=Uu(e),so.push(e),so.length<=1&&document.addEventListener("keydown",Ac)},updated(e){Ue(()=>{e[ia]=Uu(e)})},unmounted(){so.shift(),so.length===0&&document.removeEventListener("keydown",Ac)}};var Mc=!1,to,ua,ca,hs,vs,Ap,gs,fa,da,pa,Mp,ha,va,$p,Rp;function yt(){if(!Mc){Mc=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(ha=/\b(iPhone|iP[ao]d)/.exec(e),va=/\b(iP[ao]d)/.exec(e),pa=/Android/i.exec(e),$p=/FBAN\/\w+;/i.exec(e),Rp=/Mobile/i.exec(e),Mp=!!/Win64/.exec(e),t){to=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,to&&document&&document.documentMode&&(to=document.documentMode);var o=/(?:Trident\/(\d+.\d+))/.exec(e);Ap=o?parseFloat(o[1])+4:to,ua=t[2]?parseFloat(t[2]):NaN,ca=t[3]?parseFloat(t[3]):NaN,hs=t[4]?parseFloat(t[4]):NaN,hs?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),vs=t&&t[1]?parseFloat(t[1]):NaN):vs=NaN}else to=ua=ca=vs=hs=NaN;if(n){if(n[1]){var r=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);gs=r?parseFloat(r[1].replace("_",".")):!0}else gs=!1;fa=!!n[2],da=!!n[3]}else gs=fa=da=!1}}var ga={ie:function(){return yt()||to},ieCompatibilityMode:function(){return yt()||Ap>to},ie64:function(){return ga.ie()&&Mp},firefox:function(){return yt()||ua},opera:function(){return yt()||ca},webkit:function(){return yt()||hs},safari:function(){return ga.webkit()},chrome:function(){return yt()||vs},windows:function(){return yt()||fa},osx:function(){return yt()||gs},linux:function(){return yt()||da},iphone:function(){return yt()||ha},mobile:function(){return yt()||ha||va||pa||Rp},nativeApp:function(){return yt()||$p},android:function(){return yt()||pa},ipad:function(){return yt()||va}},v2=ga,rs=!!(typeof window<"u"&&window.document&&window.document.createElement),g2={canUseDOM:rs,canUseWorkers:typeof Worker<"u",canUseEventListeners:rs&&!!(window.addEventListener||window.attachEvent),canUseViewport:rs&&!!window.screen,isInWorker:!rs},Pp=g2,kp;Pp.canUseDOM&&(kp=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function m2(e,t){if(!Pp.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var r=document.createElement("div");r.setAttribute(n,"return;"),o=typeof r[n]=="function"}return!o&&kp&&e==="wheel"&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}var y2=m2,$c=10,Rc=40,Pc=800;function Ip(e){var t=0,n=0,o=0,r=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=t*$c,r=n*$c,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||r)&&e.deltaMode&&(e.deltaMode==1?(o*=Rc,r*=Rc):(o*=Pc,r*=Pc)),o&&!t&&(t=o<1?-1:1),r&&!n&&(n=r<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:r}}Ip.getEventType=function(){return v2.firefox()?"DOMMouseScroll":y2("wheel")?"wheel":"mousewheel"};var b2=Ip;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const w2=function(e,t){if(e&&e.addEventListener){const n=function(o){const r=b2(o);t&&Reflect.apply(t,this,[o,r])};e.addEventListener("wheel",n,{passive:!0})}},C2={beforeMount(e,t){w2(e,t.value)}},Lp={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Qo,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},Np={[go]:e=>Me(e)||ht(e)||Io(e),change:e=>Me(e)||ht(e)||Io(e)},_2=({model:e,isChecked:t})=>{const n=Se(Jo,void 0),o=A(()=>{var s,l;const a=(s=n==null?void 0:n.max)==null?void 0:s.value,i=(l=n==null?void 0:n.min)==null?void 0:l.value;return!$r(a)&&e.value.length>=a&&!t.value||!$r(i)&&e.value.length<=i&&t.value});return{isDisabled:il(A(()=>(n==null?void 0:n.disabled.value)||o.value)),isLimitDisabled:o}},E2=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:r,isLabeledByFormItem:s})=>{const l=Se(Jo,void 0),{formItem:a}=Hr(),{emit:i}=je();function u(p){var v,b;return p===e.trueLabel||p===!0?(v=e.trueLabel)!=null?v:!0:(b=e.falseLabel)!=null?b:!1}function c(p,v){i("change",u(p),v)}function f(p){if(n.value)return;const v=p.target;i("change",u(v.checked),p)}async function d(p){n.value||!o.value&&!r.value&&s.value&&(p.composedPath().some(g=>g.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ue(),c(t.value,p)))}const h=A(()=>(l==null?void 0:l.validateEvent)||e.validateEvent);return he(()=>e.modelValue,()=>{h.value&&(a==null||a.validate("change").catch(p=>void 0))}),{handleChange:f,onClickRoot:d}},S2=e=>{const t=R(!1),{emit:n}=je(),o=Se(Jo,void 0),r=A(()=>$r(o)===!1),s=R(!1);return{model:A({get(){var a,i;return r.value?(a=o==null?void 0:o.modelValue)==null?void 0:a.value:(i=e.modelValue)!=null?i:t.value},set(a){var i,u;r.value&&ce(a)?(s.value=((i=o==null?void 0:o.max)==null?void 0:i.value)!==void 0&&a.length>(o==null?void 0:o.max.value),s.value===!1&&((u=o==null?void 0:o.changeEvent)==null||u.call(o,a))):(n(go,a),t.value=a)}}),isGroup:r,isLimitExceeded:s}},x2=(e,t,{model:n})=>{const o=Se(Jo,void 0),r=R(!1),s=A(()=>{const u=n.value;return Io(u)?u:ce(u)?Re(e.label)?u.map(Ie).some(c=>Tw(c,e.label)):u.map(Ie).includes(e.label):u!=null?u===e.trueLabel:!!u}),l=No(A(()=>{var u;return(u=o==null?void 0:o.size)==null?void 0:u.value}),{prop:!0}),a=No(A(()=>{var u;return(u=o==null?void 0:o.size)==null?void 0:u.value})),i=A(()=>!!(t.default||e.label));return{checkboxButtonSize:l,isChecked:s,isFocused:r,checkboxSize:a,hasOwnLabel:i}},T2=(e,{model:t})=>{function n(){ce(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&n()},Fp=(e,t)=>{const{formItem:n}=Hr(),{model:o,isGroup:r,isLimitExceeded:s}=S2(e),{isFocused:l,isChecked:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c}=x2(e,t,{model:o}),{isDisabled:f}=_2({model:o,isChecked:a}),{inputId:d,isLabeledByFormItem:h}=ci(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:r}),{handleChange:p,onClickRoot:v}=E2(e,{model:o,isLimitExceeded:s,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return T2(e,{model:o}),{inputId:d,isLabeledByFormItem:h,isChecked:a,isDisabled:f,isFocused:l,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:o,handleChange:p,onClickRoot:v}},O2=["tabindex","role","aria-checked"],A2=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],M2=["id","aria-hidden","disabled","value","name","tabindex"],$2=ue({name:"ElCheckbox"}),R2=ue({...$2,props:Lp,emits:Np,setup(e){const t=e,n=Js(),{inputId:o,isLabeledByFormItem:r,isChecked:s,isDisabled:l,isFocused:a,checkboxSize:i,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=Fp(t,n),h=xe("checkbox"),p=A(()=>[h.b(),h.m(i.value),h.is("disabled",l.value),h.is("bordered",t.border),h.is("checked",s.value)]),v=A(()=>[h.e("input"),h.is("disabled",l.value),h.is("checked",s.value),h.is("indeterminate",t.indeterminate),h.is("focus",a.value)]);return(b,g)=>(H(),ye(pt(!y(u)&&y(r)?"span":"label"),{class:Y(y(p)),"aria-controls":b.indeterminate?b.controls:null,onClick:y(d)},{default:fe(()=>[ie("span",{class:Y(y(v)),tabindex:b.indeterminate?0:void 0,role:b.indeterminate?"checkbox":void 0,"aria-checked":b.indeterminate?"mixed":void 0},[b.trueLabel||b.falseLabel?lt((H(),se("input",{key:0,id:y(o),"onUpdate:modelValue":g[0]||(g[0]=C=>Ve(c)?c.value=C:null),class:Y(y(h).e("original")),type:"checkbox","aria-hidden":b.indeterminate?"true":"false",name:b.name,tabindex:b.tabindex,disabled:y(l),"true-value":b.trueLabel,"false-value":b.falseLabel,onChange:g[1]||(g[1]=(...C)=>y(f)&&y(f)(...C)),onFocus:g[2]||(g[2]=C=>a.value=!0),onBlur:g[3]||(g[3]=C=>a.value=!1)},null,42,A2)),[[Ss,y(c)]]):lt((H(),se("input",{key:1,id:y(o),"onUpdate:modelValue":g[4]||(g[4]=C=>Ve(c)?c.value=C:null),class:Y(y(h).e("original")),type:"checkbox","aria-hidden":b.indeterminate?"true":"false",disabled:y(l),value:b.label,name:b.name,tabindex:b.tabindex,onChange:g[5]||(g[5]=(...C)=>y(f)&&y(f)(...C)),onFocus:g[6]||(g[6]=C=>a.value=!0),onBlur:g[7]||(g[7]=C=>a.value=!1)},null,42,M2)),[[Ss,y(c)]]),ie("span",{class:Y(y(h).e("inner"))},null,2)],10,O2),y(u)?(H(),se("span",{key:0,class:Y(y(h).e("label"))},[$e(b.$slots,"default"),b.$slots.default?_e("v-if",!0):(H(),se(Ke,{key:0},[_t(tt(b.label),1)],64))],2)):_e("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var P2=We(R2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const k2=["name","tabindex","disabled","true-value","false-value"],I2=["name","tabindex","disabled","value"],L2=ue({name:"ElCheckboxButton"}),N2=ue({...L2,props:Lp,emits:Np,setup(e){const t=e,n=Js(),{isFocused:o,isChecked:r,isDisabled:s,checkboxButtonSize:l,model:a,handleChange:i}=Fp(t,n),u=Se(Jo,void 0),c=xe("checkbox"),f=A(()=>{var h,p,v,b;const g=(p=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?p:"";return{backgroundColor:g,borderColor:g,color:(b=(v=u==null?void 0:u.textColor)==null?void 0:v.value)!=null?b:"",boxShadow:g?`-1px 0 0 0 ${g}`:void 0}}),d=A(()=>[c.b("button"),c.bm("button",l.value),c.is("disabled",s.value),c.is("checked",r.value),c.is("focus",o.value)]);return(h,p)=>(H(),se("label",{class:Y(y(d))},[h.trueLabel||h.falseLabel?lt((H(),se("input",{key:0,"onUpdate:modelValue":p[0]||(p[0]=v=>Ve(a)?a.value=v:null),class:Y(y(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:y(s),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:p[1]||(p[1]=(...v)=>y(i)&&y(i)(...v)),onFocus:p[2]||(p[2]=v=>o.value=!0),onBlur:p[3]||(p[3]=v=>o.value=!1)},null,42,k2)),[[Ss,y(a)]]):lt((H(),se("input",{key:1,"onUpdate:modelValue":p[4]||(p[4]=v=>Ve(a)?a.value=v:null),class:Y(y(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:y(s),value:h.label,onChange:p[5]||(p[5]=(...v)=>y(i)&&y(i)(...v)),onFocus:p[6]||(p[6]=v=>o.value=!0),onBlur:p[7]||(p[7]=v=>o.value=!1)},null,42,I2)),[[Ss,y(a)]]),h.$slots.default||h.label?(H(),se("span",{key:2,class:Y(y(c).be("button","inner")),style:et(y(r)?y(f):void 0)},[$e(h.$slots,"default",{},()=>[_t(tt(h.label),1)])],6)):_e("v-if",!0)],2))}});var Bp=We(N2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const F2=Xe({modelValue:{type:Ee(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Qo,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),B2={[go]:e=>ce(e),change:e=>ce(e)},H2=ue({name:"ElCheckboxGroup"}),z2=ue({...H2,props:F2,emits:B2,setup(e,{emit:t}){const n=e,o=xe("checkbox"),{formItem:r}=Hr(),{inputId:s,isLabeledByFormItem:l}=ci(n,{formItemContext:r}),a=async u=>{t(go,u),await Ue(),t("change",u)},i=A({get(){return n.modelValue},set(u){a(u)}});return st(Jo,{...Pw(Ia(n),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:i,changeEvent:a}),he(()=>n.modelValue,()=>{n.validateEvent&&(r==null||r.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return H(),ye(pt(u.tag),{id:y(s),class:Y(y(o).b("group")),role:"group","aria-label":y(l)?void 0:u.label||"checkbox-group","aria-labelledby":y(l)?(f=y(r))==null?void 0:f.labelId:void 0},{default:fe(()=>[$e(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var Hp=We(z2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Wo=Ht(P2,{CheckboxButton:Bp,CheckboxGroup:Hp});Co(Bp);Co(Hp);const D2=Xe({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Ee([Number,Object]),default:()=>In({})},sm:{type:Ee([Number,Object]),default:()=>In({})},md:{type:Ee([Number,Object]),default:()=>In({})},lg:{type:Ee([Number,Object]),default:()=>In({})},xl:{type:Ee([Number,Object]),default:()=>In({})}}),W2=ue({name:"ElCol"}),j2=ue({...W2,props:D2,setup(e){const t=e,{gutter:n}=Se(Kd,{gutter:A(()=>0)}),o=xe("col"),r=A(()=>{const l={};return n.value&&(l.paddingLeft=l.paddingRight=`${n.value/2}px`),l}),s=A(()=>{const l=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];ht(c)&&(u==="span"?l.push(o.b(`${t[u]}`)):c>0&&l.push(o.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{ht(t[u])?l.push(o.b(`${u}-${t[u]}`)):Re(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{l.push(c!=="span"?o.b(`${u}-${c}-${f}`):o.b(`${u}-${f}`))})}),n.value&&l.push(o.is("guttered")),[o.b(),l]});return(l,a)=>(H(),ye(pt(l.tag),{class:Y(y(s)),style:et(y(r))},{default:fe(()=>[$e(l.$slots,"default")]),_:3},8,["class","style"]))}});var K2=We(j2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const zp=Ht(K2),U2=ue({name:"ElCollapseTransition"}),V2=ue({...U2,setup(e){const t=xe("collapse-transition"),n={beforeEnter(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0},enter(o){o.dataset.oldOverflow=o.style.overflow,o.scrollHeight!==0?(o.style.maxHeight=`${o.scrollHeight}px`,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom):(o.style.maxHeight=0,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom),o.style.overflow="hidden"},afterEnter(o){o.style.maxHeight="",o.style.overflow=o.dataset.oldOverflow},beforeLeave(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.dataset.oldOverflow=o.style.overflow,o.style.maxHeight=`${o.scrollHeight}px`,o.style.overflow="hidden"},leave(o){o.scrollHeight!==0&&(o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0)},afterLeave(o){o.style.maxHeight="",o.style.overflow=o.dataset.oldOverflow,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom}};return(o,r)=>(H(),ye(Cn,en({name:y(t).b()},Bv(n)),{default:fe(()=>[$e(o.$slots,"default")]),_:3},16,["name"]))}});var ms=We(V2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);ms.install=e=>{e.component(ms.name,ms)};const q2=ms,ma={},Y2=Xe({a11y:{type:Boolean,default:!0},locale:{type:Ee(Object)},size:Qo,button:{type:Ee(Object)},experimentalFeatures:{type:Ee(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Ee(Object)},zIndex:Number,namespace:{type:String,default:"el"}});ue({name:"ElConfigProvider",props:Y2,setup(e,{slots:t}){he(()=>e.message,o=>{Object.assign(ma,o??{})},{immediate:!0,deep:!0});const n=LC(e);return()=>$e(t,"default",{config:n==null?void 0:n.value})}});const G2=Xe({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Ee([String,Array,Object])},zIndex:{type:Ee([String,Number])}}),X2={click:e=>e instanceof MouseEvent};var Z2=ue({name:"ElOverlay",props:G2,emits:X2,setup(e,{slots:t,emit:n}){const o=xe("overlay"),r=i=>{n("click",i)},{onClick:s,onMousedown:l,onMouseup:a}=up(e.customMaskEvent?void 0:r);return()=>e.mask?ae("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:l,onMouseup:a},[$e(t,"default")],fs.STYLE|fs.CLASS|fs.PROPS,["onClick","onMouseup","onMousedown"]):de("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[$e(t,"default")])}});const J2=Z2;let Q2=class{constructor(t,n){this.parent=t,this.domNode=n,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,n=>{n.addEventListener("keydown",o=>{let r=!1;switch(o.code){case dt.down:{this.gotoSubIndex(this.subIndex+1),r=!0;break}case dt.up:{this.gotoSubIndex(this.subIndex-1),r=!0;break}case dt.tab:{cs(t,"mouseleave");break}case dt.enter:case dt.space:{r=!0,o.currentTarget.click();break}}return r&&(o.preventDefault(),o.stopPropagation()),!1})})}},ex=class{constructor(t,n){this.domNode=t,this.submenu=null,this.submenu=null,this.init(n)}init(t){this.domNode.setAttribute("tabindex","0");const n=this.domNode.querySelector(`.${t}-menu`);n&&(this.submenu=new Q2(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let n=!1;switch(t.code){case dt.down:{cs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),n=!0;break}case dt.up:{cs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break}case dt.tab:{cs(t.currentTarget,"mouseleave");break}case dt.enter:case dt.space:{n=!0,t.currentTarget.click();break}}n&&t.preventDefault()})}},tx=class{constructor(t,n){this.domNode=t,this.init(n)}init(t){const n=this.domNode.childNodes;Array.from(n).forEach(o=>{o.nodeType===1&&new ex(o,t)})}};const nx=ue({name:"ElMenuCollapseTransition",setup(){const e=xe("menu");return{listeners:{onBeforeEnter:n=>n.style.opacity="0.2",onEnter(n,o){oo(n,`${e.namespace.value}-opacity-transition`),n.style.opacity="1",o()},onAfterEnter(n){fo(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=""},onBeforeLeave(n){n.dataset||(n.dataset={}),co(n,e.m("collapse"))?(fo(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),oo(n,e.m("collapse"))):(oo(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),fo(n,e.m("collapse"))),n.style.width=`${n.scrollWidth}px`,n.style.overflow="hidden"},onLeave(n){oo(n,"horizontal-collapse-transition"),n.style.width=`${n.dataset.scrollWidth}px`}}}}});function ox(e,t,n,o,r,s){return H(),ye(Cn,en({mode:"out-in"},e.listeners),{default:fe(()=>[$e(e.$slots,"default")]),_:3},16)}var rx=We(nx,[["render",ox],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function Dp(e,t){const n=A(()=>{let r=e.parent;const s=[t.value];for(;r.type.name!=="ElMenu";)r.props.index&&s.unshift(r.props.index),r=r.parent;return s});return{parentMenu:A(()=>{let r=e.parent;for(;r&&!["ElMenu","ElSubMenu"].includes(r.type.name);)r=r.parent;return r}),indexPath:n}}function sx(e){return A(()=>{const n=e.backgroundColor;return n?new xp(n).shade(20).toString():""})}const Wp=(e,t)=>{const n=xe("menu");return A(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":sx(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},lx=Xe({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:vn},expandOpenIcon:{type:vn},collapseCloseIcon:{type:vn},collapseOpenIcon:{type:vn}}),ss="ElSubMenu";var Si=ue({name:ss,props:lx,setup(e,{slots:t,expose:n}){Yd({from:"popper-append-to-body",replacement:"teleported",scope:ss,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},A(()=>e.popperAppendToBody!==void 0));const o=je(),{indexPath:r,parentMenu:s}=Dp(o,A(()=>e.index)),l=xe("menu"),a=xe("sub-menu"),i=Se("rootMenu");i||vo(ss,"can not inject root menu");const u=Se(`subMenu:${s.value.uid}`);u||vo(ss,"can not inject sub menu");const c=R({}),f=R({});let d;const h=R(!1),p=R(),v=R(null),b=A(()=>N.value==="horizontal"&&C.value?"bottom-start":"right-start"),g=A(()=>N.value==="horizontal"&&C.value||N.value==="vertical"&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?x.value?e.expandOpenIcon:e.expandCloseIcon:kd:e.collapseCloseIcon&&e.collapseOpenIcon?x.value?e.collapseOpenIcon:e.collapseCloseIcon:ri),C=A(()=>u.level===0),E=A(()=>{var P;const te=(P=e.teleported)!=null?P:e.popperAppendToBody;return te===void 0?C.value:te}),m=A(()=>i.props.collapse?`${l.namespace.value}-zoom-in-left`:`${l.namespace.value}-zoom-in-top`),M=A(()=>N.value==="horizontal"&&C.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),x=A(()=>i.openedMenus.includes(e.index)),_=A(()=>{let P=!1;return Object.values(c.value).forEach(te=>{te.active&&(P=!0)}),Object.values(f.value).forEach(te=>{te.active&&(P=!0)}),P}),T=A(()=>i.props.backgroundColor||""),F=A(()=>i.props.activeTextColor||""),$=A(()=>i.props.textColor||""),N=A(()=>i.props.mode),O=Yt({index:e.index,indexPath:r,active:_}),z=A(()=>N.value!=="horizontal"?{color:$.value}:{borderBottomColor:_.value?i.props.activeTextColor?F.value:"":"transparent",color:_.value?F.value:$.value}),Q=()=>{var P,te,pe;return(pe=(te=(P=v.value)==null?void 0:P.popperRef)==null?void 0:te.popperInstanceRef)==null?void 0:pe.destroy()},K=P=>{P||Q()},J=()=>{i.props.menuTrigger==="hover"&&i.props.mode==="horizontal"||i.props.collapse&&i.props.mode==="vertical"||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:r.value,active:_.value})},oe=(P,te=e.showTimeout)=>{var pe;P.type!=="focus"&&(i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=ta(()=>{i.openMenu(e.index,r.value)},te),E.value&&((pe=s.value.vnode.el)==null||pe.dispatchEvent(new MouseEvent("mouseenter")))))},W=(P=!1)=>{var te,pe;i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=ta(()=>!h.value&&i.closeMenu(e.index,r.value),e.hideTimeout),E.value&&P&&((te=o.parent)==null?void 0:te.type.name)==="ElSubMenu"&&((pe=u.handleMouseleave)==null||pe.call(u,!0)))};he(()=>i.props.collapse,P=>K(Boolean(P)));{const P=pe=>{f.value[pe.index]=pe},te=pe=>{delete f.value[pe.index]};st(`subMenu:${o.uid}`,{addSubMenu:P,removeSubMenu:te,handleMouseleave:W,mouseInChild:h,level:u.level+1})}return n({opened:x}),Ze(()=>{i.addSubMenu(O),u.addSubMenu(O)}),vt(()=>{u.removeSubMenu(O),i.removeSubMenu(O)}),()=>{var P;const te=[(P=t.title)==null?void 0:P.call(t),de(mt,{class:a.e("icon-arrow"),style:{transform:x.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>Me(g.value)?de(o.appContext.components[g.value]):de(g.value)})],pe=Wp(i.props,u.level+1),Ce=i.isMenuPopup?de(Ei,{ref:v,visible:x.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:b.value,teleported:E.value,fallbackPlacements:M.value,transition:m.value,gpuAcceleration:!1},{content:()=>{var Pe;return de("div",{class:[l.m(N.value),l.m("popup-container"),e.popperClass],onMouseenter:Le=>oe(Le,100),onMouseleave:()=>W(!0),onFocus:Le=>oe(Le,100)},[de("ul",{class:[l.b(),l.m("popup"),l.m(`popup-${b.value}`)],style:pe.value},[(Pe=t.default)==null?void 0:Pe.call(t)])])},default:()=>de("div",{class:a.e("title"),style:[z.value,{backgroundColor:T.value}],onClick:J},te)}):de(Ke,{},[de("div",{class:a.e("title"),style:[z.value,{backgroundColor:T.value}],ref:p,onClick:J},te),de(q2,{},{default:()=>{var Pe;return lt(de("ul",{role:"menu",class:[l.b(),l.m("inline")],style:pe.value},[(Pe=t.default)==null?void 0:Pe.call(t)]),[[Ut,x.value]])}})]);return de("li",{class:[a.b(),a.is("active",_.value),a.is("opened",x.value),a.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:x.value,onMouseenter:oe,onMouseleave:()=>W(!0),onFocus:oe},[Ce])}}});const ax=Xe({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Ee(Array),default:()=>In([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),$l=e=>Array.isArray(e)&&e.every(t=>Me(t)),ix={close:(e,t)=>Me(e)&&$l(t),open:(e,t)=>Me(e)&&$l(t),select:(e,t,n,o)=>Me(e)&&$l(t)&&Re(n)&&(o===void 0||o instanceof Promise)};var ux=ue({name:"ElMenu",props:ax,emits:ix,setup(e,{emit:t,slots:n,expose:o}){const r=je(),s=r.appContext.config.globalProperties.$router,l=R(),a=xe("menu"),i=xe("sub-menu"),u=R(-1),c=R(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=R(e.defaultActive),d=R({}),h=R({}),p=A(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),v=()=>{const $=f.value&&d.value[f.value];if(!$||e.mode==="horizontal"||e.collapse)return;$.indexPath.forEach(O=>{const z=h.value[O];z&&b(O,z.indexPath)})},b=($,N)=>{c.value.includes($)||(e.uniqueOpened&&(c.value=c.value.filter(O=>N.includes(O))),c.value.push($),t("open",$,N))},g=($,N)=>{const O=c.value.indexOf($);O!==-1&&c.value.splice(O,1),t("close",$,N)},C=({index:$,indexPath:N})=>{c.value.includes($)?g($,N):b($,N)},E=$=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:N,indexPath:O}=$;if(!(N===void 0||O===void 0))if(e.router&&s){const z=$.route||N,Q=s.push(z).then(K=>(K||(f.value=N),K));t("select",N,O,{index:N,indexPath:O,route:z},Q)}else f.value=N,t("select",N,O,{index:N,indexPath:O})},m=$=>{const N=d.value,O=N[$]||f.value&&N[f.value]||N[e.defaultActive];O?f.value=O.index:f.value=$},M=()=>{var $,N;if(!l.value)return-1;const O=Array.from((N=($=l.value)==null?void 0:$.childNodes)!=null?N:[]).filter(P=>P.nodeName!=="#text"||P.nodeValue),z=64,Q=Number.parseInt(getComputedStyle(l.value).paddingLeft,10),K=Number.parseInt(getComputedStyle(l.value).paddingRight,10),J=l.value.clientWidth-Q-K;let oe=0,W=0;return O.forEach((P,te)=>{oe+=P.offsetWidth||0,oe<=J-z&&(W=te+1)}),W===O.length?-1:W},x=($,N=33.34)=>{let O;return()=>{O&&clearTimeout(O),O=setTimeout(()=>{$()},N)}};let _=!0;const T=()=>{const $=()=>{u.value=-1,Ue(()=>{u.value=M()})};_?$():x($)(),_=!1};he(()=>e.defaultActive,$=>{d.value[$]||(f.value=""),m($)}),he(()=>e.collapse,$=>{$&&(c.value=[])}),he(d.value,v);let F;io(()=>{e.mode==="horizontal"&&e.ellipsis?F=Lo(l,T).stop:F==null||F()});{const $=Q=>{h.value[Q.index]=Q},N=Q=>{delete h.value[Q.index]};st("rootMenu",Yt({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:p,addMenuItem:Q=>{d.value[Q.index]=Q},removeMenuItem:Q=>{delete d.value[Q.index]},addSubMenu:$,removeSubMenu:N,openMenu:b,closeMenu:g,handleMenuItemClick:E,handleSubMenuClick:C})),st(`subMenu:${r.uid}`,{addSubMenu:$,removeSubMenu:N,mouseInChild:R(!1),level:0})}return Ze(()=>{e.mode==="horizontal"&&new tx(r.vnode.el,a.namespace.value)}),o({open:N=>{const{indexPath:O}=h.value[N];O.forEach(z=>b(z,O))},close:g,handleResize:T}),()=>{var $,N;let O=(N=($=n.default)==null?void 0:$.call(n))!=null?N:[];const z=[];if(e.mode==="horizontal"&&l.value){const J=ds(O),oe=u.value===-1?J:J.slice(0,u.value),W=u.value===-1?[]:J.slice(u.value);W!=null&&W.length&&e.ellipsis&&(O=oe,z.push(de(Si,{index:"sub-menu-more",class:i.e("hide-arrow")},{title:()=>de(mt,{class:i.e("icon-more")},{default:()=>de(uC)}),default:()=>W})))}const Q=Wp(e,0),K=de("ul",{key:String(e.collapse),role:"menubar",ref:l,style:Q.value,class:{[a.b()]:!0,[a.m(e.mode)]:!0,[a.m("collapse")]:e.collapse}},[...O,...z]);return e.collapseTransition&&e.mode==="vertical"?de(rx,()=>K):K}}});const cx=Xe({index:{type:Ee([String,null]),default:null},route:{type:Ee([String,Object])},disabled:Boolean}),fx={click:e=>Me(e.index)&&Array.isArray(e.indexPath)},Rl="ElMenuItem",dx=ue({name:Rl,components:{ElTooltip:Ei},props:cx,emits:fx,setup(e,{emit:t}){const n=je(),o=Se("rootMenu"),r=xe("menu"),s=xe("menu-item");o||vo(Rl,"can not inject root menu");const{parentMenu:l,indexPath:a}=Dp(n,It(e,"index")),i=Se(`subMenu:${l.value.uid}`);i||vo(Rl,"can not inject sub menu");const u=A(()=>e.index===o.activeIndex),c=Yt({index:e.index,indexPath:a,active:u}),f=()=>{e.disabled||(o.handleMenuItemClick({index:e.index,indexPath:a.value,route:e.route}),t("click",c))};return Ze(()=>{i.addSubMenu(c),o.addMenuItem(c)}),vt(()=>{i.removeSubMenu(c),o.removeMenuItem(c)}),{parentMenu:l,rootMenu:o,active:u,nsMenu:r,nsMenuItem:s,handleClick:f}}});function px(e,t,n,o,r,s){const l=ot("el-tooltip");return H(),se("li",{class:Y([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...a)=>e.handleClick&&e.handleClick(...a))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(H(),ye(l,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:fe(()=>[$e(e.$slots,"title")]),default:fe(()=>[ie("div",{class:Y(e.nsMenu.be("tooltip","trigger"))},[$e(e.$slots,"default")],2)]),_:3},8,["effect"])):(H(),se(Ke,{key:1},[$e(e.$slots,"default"),$e(e.$slots,"title")],64))],2)}var jp=We(dx,[["render",px],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const hx={title:String},vx="ElMenuItemGroup",gx=ue({name:vx,props:hx,setup(){return{ns:xe("menu-item-group")}}});function mx(e,t,n,o,r,s){return H(),se("li",{class:Y(e.ns.b())},[ie("div",{class:Y(e.ns.e("title"))},[e.$slots.title?$e(e.$slots,"title",{key:1}):(H(),se(Ke,{key:0},[_t(tt(e.title),1)],64))],2),ie("ul",null,[$e(e.$slots,"default")])],2)}var Kp=We(gx,[["render",mx],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const yx=Ht(ux,{MenuItem:jp,MenuItemGroup:Kp,SubMenu:Si}),bx=Co(jp);Co(Kp);Co(Si);const wx=["start","center","end","space-around","space-between","space-evenly"],Cx=["top","middle","bottom"],_x=Xe({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:wx,default:"start"},align:{type:String,values:Cx,default:"top"}}),Ex=ue({name:"ElRow"}),Sx=ue({...Ex,props:_x,setup(e){const t=e,n=xe("row"),o=A(()=>t.gutter);st(Kd,{gutter:o});const r=A(()=>{const l={};return t.gutter&&(l.marginRight=l.marginLeft=`-${t.gutter/2}px`),l}),s=A(()=>[n.b(),n.is(`justify-${t.justify}`,t.justify!=="start"),n.is(`align-${t.align}`,t.align!=="top")]);return(l,a)=>(H(),ye(pt(l.tag),{class:Y(y(s)),style:et(y(r))},{default:fe(()=>[$e(l.$slots,"default")]),_:3},8,["class","style"]))}});var xx=We(Sx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const xi=Ht(xx);/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var Tx=/["'&<>]/,Ox=Ax;function Ax(e){var t=""+e,n=Tx.exec(t);if(!n)return t;var o,r="",s=0,l=0;for(s=n.index;stypeof u=="string"?Mr(a,u):u(a,i,e))):(t!=="$key"&&Re(a)&&"$value"in a&&(a=a.$value),[Re(a)?Mr(a,t):a])},l=function(a,i){if(o)return o(a.value,i.value);for(let u=0,c=a.key.length;ui.key[u])return 1}return 0};return e.map((a,i)=>({value:a,index:i,key:s?s(a,i):null})).sort((a,i)=>{let u=l(a,i);return u||(u=a.index-i.index),u*+n}).map(a=>a.value)},Up=function(e,t){let n=null;return e.columns.forEach(o=>{o.id===t&&(n=o)}),n},$x=function(e,t){let n=null;for(let o=0;o{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let o=e;for(const r of n)o=o[r];return`${o}`}else if(typeof t=="function")return t.call(null,e)},lo=function(e,t){const n={};return(e||[]).forEach((o,r)=>{n[at(o,t)]={row:o,index:r}}),n};function Rx(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(Oe(t,o)){const r=t[o];typeof r<"u"&&(n[o]=r)}return n}function Ti(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Vp(e){return e===""||e!==void 0&&(e=Ti(e),Number.isNaN(e)&&(e=80)),e}function Px(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function kx(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...o)=>t(n(...o)))}function vr(e,t,n){let o=!1;const r=e.indexOf(t),s=r!==-1,l=a=>{a==="add"?e.push(t):e.splice(r,1),o=!0,ce(t.children)&&t.children.forEach(i=>{vr(e,i,n??!s)})};return Io(n)?n&&!s?l("add"):!n&&s&&l("remove"):l(s?"remove":"add"),o}function Ix(e,t,n="children",o="hasChildren"){const r=l=>!(Array.isArray(l)&&l.length);function s(l,a,i){t(l,a,i),a.forEach(u=>{if(u[o]){t(u,null,i+1);return}const c=u[n];r(c)||s(u,c,i+1)})}e.forEach(l=>{if(l[o]){t(l,null,0);return}const a=l[n];r(a)||s(l,a,0)})}let dn;function Lx(e,t,n,o){o=Md({enterable:!0,showArrow:!0},o);const{nextZIndex:r}=cl(),s=e==null?void 0:e.dataset.prefix,l=e==null?void 0:e.querySelector(`.${s}-scrollbar__wrap`);function a(){const b=o.effect==="light",g=document.createElement("div");return g.className=[`${s}-popper`,b?"is-light":"is-dark",o.popperClass||""].join(" "),n=Ox(n),g.innerHTML=n,g.style.zIndex=String(r()),e==null||e.appendChild(g),g}function i(){const b=document.createElement("div");return b.className=`${s}-popper__arrow`,b}function u(){c&&c.update()}dn==null||dn(),dn=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),l==null||l.removeEventListener("scroll",dn),dn=void 0}catch{}};let c=null,f=u,d=dn;o.enterable&&({onOpen:f,onClose:d}=fp({showAfter:o.showAfter,hideAfter:o.hideAfter,open:u,close:dn}));const h=a();h.onmouseenter=f,h.onmouseleave=d;const p=[];if(o.offset&&p.push({name:"offset",options:{offset:[0,o.offset]}}),o.showArrow){const b=h.appendChild(i());p.push({name:"arrow",options:{element:b,padding:10}})}const v=o.popperOptions||{};return c=ip(t,h,{placement:o.placement||"top",strategy:"fixed",...v,modifiers:v.modifiers?p.concat(v.modifiers):p}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),l==null||l.addEventListener("scroll",dn),c}function qp(e){return e.children?xw(e.children,qp):[e]}function Ic(e,t){return e+t.colSpan}const Yp=(e,t,n,o)=>{let r=0,s=e;const l=n.states.columns.value;if(o){const i=qp(o[e]);r=l.slice(0,l.indexOf(i[0])).reduce(Ic,0),s=r+i.reduce(Ic,0)-1}else r=e;let a;switch(t){case"left":s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right");break;default:s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right")}return a?{direction:a,start:r,after:s}:{}},Oi=(e,t,n,o,r,s=0)=>{const l=[],{direction:a,start:i,after:u}=Yp(t,n,o,r);if(a){const c=a==="left";l.push(`${e}-fixed-column--${a}`),c&&u+s===o.states.fixedLeafColumnsLength.value-1?l.push("is-last-column"):!c&&i-s===o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value&&l.push("is-first-column")}return l};function Lc(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Ai=(e,t,n,o)=>{const{direction:r,start:s=0,after:l=0}=Yp(e,t,n,o);if(!r)return;const a={},i=r==="left",u=n.states.columns.value;return i?a.left=u.slice(0,s).reduce(Lc,0):a.right=u.slice(l+1).reverse().reduce(Lc,0),a},jo=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function Nx(e){const t=je(),n=R(!1),o=R([]);return{updateExpandRows:()=>{const i=e.data.value||[],u=e.rowKey.value;if(n.value)o.value=i.slice();else if(u){const c=lo(o.value,u);o.value=i.reduce((f,d)=>{const h=at(d,u);return c[h]&&f.push(d),f},[])}else o.value=[]},toggleRowExpansion:(i,u)=>{vr(o.value,i,u)&&t.emit("expand-change",i,o.value.slice())},setExpandRowKeys:i=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=lo(u,c);o.value=i.reduce((d,h)=>{const p=f[h];return p&&d.push(p.row),d},[])},isRowExpanded:i=>{const u=e.rowKey.value;return u?!!lo(o.value,u)[at(i,u)]:o.value.includes(i)},states:{expandRows:o,defaultExpandAll:n}}}function Fx(e){const t=je(),n=R(null),o=R(null),r=u=>{t.store.assertRowKey(),n.value=u,l(u)},s=()=>{n.value=null},l=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(y(c)||[]).find(h=>at(h,f.value)===u)),o.value=d,t.emit("current-change",o.value,null)};return{setCurrentRowKey:r,restoreCurrentRowKey:s,setCurrentRowByKey:l,updateCurrentRow:u=>{const c=o.value;if(u&&u!==c){o.value=u,t.emit("current-change",o.value,c);return}!u&&c&&(o.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=o.value;if(!c.includes(f)&&f){if(u){const d=at(f,u);l(d)}else o.value=null;o.value===null&&t.emit("current-change",null,f)}else n.value&&(l(n.value),s())},states:{_currentRowKey:n,currentRow:o}}}function Bx(e){const t=R([]),n=R({}),o=R(16),r=R(!1),s=R({}),l=R("hasChildren"),a=R("children"),i=je(),u=A(()=>{if(!e.rowKey.value)return{};const g=e.data.value||[];return f(g)}),c=A(()=>{const g=e.rowKey.value,C=Object.keys(s.value),E={};return C.length&&C.forEach(m=>{if(s.value[m].length){const M={children:[]};s.value[m].forEach(x=>{const _=at(x,g);M.children.push(_),x[l.value]&&!E[_]&&(E[_]={children:[]})}),E[m]=M}}),E}),f=g=>{const C=e.rowKey.value,E={};return Ix(g,(m,M,x)=>{const _=at(m,C);Array.isArray(M)?E[_]={children:M.map(T=>at(T,C)),level:x}:r.value&&(E[_]={children:[],lazy:!0,level:x})},a.value,l.value),E},d=(g=!1,C=(E=>(E=i.store)==null?void 0:E.states.defaultExpandAll.value)())=>{var E;const m=u.value,M=c.value,x=Object.keys(m),_={};if(x.length){const T=y(n),F=[],$=(O,z)=>{if(g)return t.value?C||t.value.includes(z):!!(C||O!=null&&O.expanded);{const Q=C||t.value&&t.value.includes(z);return!!(O!=null&&O.expanded||Q)}};x.forEach(O=>{const z=T[O],Q={...m[O]};if(Q.expanded=$(z,O),Q.lazy){const{loaded:K=!1,loading:J=!1}=z||{};Q.loaded=!!K,Q.loading=!!J,F.push(O)}_[O]=Q});const N=Object.keys(M);r.value&&N.length&&F.length&&N.forEach(O=>{const z=T[O],Q=M[O].children;if(F.includes(O)){if(_[O].children.length!==0)throw new Error("[ElTable]children must be an empty array.");_[O].children=Q}else{const{loaded:K=!1,loading:J=!1}=z||{};_[O]={lazy:!0,loaded:!!K,loading:!!J,expanded:$(z,O),children:Q,level:""}}})}n.value=_,(E=i.store)==null||E.updateTableScrollY()};he(()=>t.value,()=>{d(!0)}),he(()=>u.value,()=>{d()}),he(()=>c.value,()=>{d()});const h=g=>{t.value=g,d()},p=(g,C)=>{i.store.assertRowKey();const E=e.rowKey.value,m=at(g,E),M=m&&n.value[m];if(m&&M&&"expanded"in M){const x=M.expanded;C=typeof C>"u"?!M.expanded:C,n.value[m].expanded=C,x!==C&&i.emit("expand-change",g,C),i.store.updateTableScrollY()}},v=g=>{i.store.assertRowKey();const C=e.rowKey.value,E=at(g,C),m=n.value[E];r.value&&m&&"loaded"in m&&!m.loaded?b(g,E,m):p(g,void 0)},b=(g,C,E)=>{const{load:m}=i.props;m&&!n.value[C].loaded&&(n.value[C].loading=!0,m(g,E,M=>{if(!Array.isArray(M))throw new TypeError("[ElTable] data must be an array");n.value[C].loading=!1,n.value[C].loaded=!0,n.value[C].expanded=!0,M.length&&(s.value[C]=M),i.emit("expand-change",g,!0)}))};return{loadData:b,loadOrToggle:v,toggleTreeExpansion:p,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:n,indent:o,lazy:r,lazyTreeNodeMap:s,lazyColumnIdentifier:l,childrenColumnName:a}}}const Hx=(e,t)=>{const n=t.sortingColumn;return!n||typeof n.sortable=="string"?e:Mx(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},ys=e=>{const t=[];return e.forEach(n=>{n.children?t.push.apply(t,ys(n.children)):t.push(n)}),t};function zx(){var e;const t=je(),{size:n}=Ia((e=t.proxy)==null?void 0:e.$props),o=R(null),r=R([]),s=R([]),l=R(!1),a=R([]),i=R([]),u=R([]),c=R([]),f=R([]),d=R([]),h=R([]),p=R([]),v=[],b=R(0),g=R(0),C=R(0),E=R(!1),m=R([]),M=R(!1),x=R(!1),_=R(null),T=R({}),F=R(null),$=R(null),N=R(null),O=R(null),z=R(null);he(r,()=>t.state&&oe(!1),{deep:!0});const Q=()=>{if(!o.value)throw new Error("[ElTable] prop row-key is required")},K=re=>{var ge;(ge=re.children)==null||ge.forEach(ke=>{ke.fixed=re.fixed,K(ke)})},J=()=>{a.value.forEach(He=>{K(He)}),c.value=a.value.filter(He=>He.fixed===!0||He.fixed==="left"),f.value=a.value.filter(He=>He.fixed==="right"),c.value.length>0&&a.value[0]&&a.value[0].type==="selection"&&!a.value[0].fixed&&(a.value[0].fixed=!0,c.value.unshift(a.value[0]));const re=a.value.filter(He=>!He.fixed);i.value=[].concat(c.value).concat(re).concat(f.value);const ge=ys(re),ke=ys(c.value),Te=ys(f.value);b.value=ge.length,g.value=ke.length,C.value=Te.length,u.value=[].concat(ke).concat(ge).concat(Te),l.value=c.value.length>0||f.value.length>0},oe=(re,ge=!1)=>{re&&J(),ge?t.state.doLayout():t.state.debouncedUpdateLayout()},W=re=>m.value.includes(re),P=()=>{E.value=!1,m.value.length&&(m.value=[],t.emit("selection-change",[]))},te=()=>{let re;if(o.value){re=[];const ge=lo(m.value,o.value),ke=lo(r.value,o.value);for(const Te in ge)Oe(ge,Te)&&!ke[Te]&&re.push(ge[Te].row)}else re=m.value.filter(ge=>!r.value.includes(ge));if(re.length){const ge=m.value.filter(ke=>!re.includes(ke));m.value=ge,t.emit("selection-change",ge.slice())}},pe=()=>(m.value||[]).slice(),Ce=(re,ge=void 0,ke=!0)=>{if(vr(m.value,re,ge)){const He=(m.value||[]).slice();ke&&t.emit("select",He,re),t.emit("selection-change",He)}},Pe=()=>{var re,ge;const ke=x.value?!E.value:!(E.value||m.value.length);E.value=ke;let Te=!1,He=0;const ze=(ge=(re=t==null?void 0:t.store)==null?void 0:re.states)==null?void 0:ge.rowKey.value;r.value.forEach((Je,an)=>{const un=an+He;_.value?_.value.call(null,Je,un)&&vr(m.value,Je,ke)&&(Te=!0):vr(m.value,Je,ke)&&(Te=!0),He+=V(at(Je,ze))}),Te&&t.emit("selection-change",m.value?m.value.slice():[]),t.emit("select-all",m.value)},Le=()=>{const re=lo(m.value,o.value);r.value.forEach(ge=>{const ke=at(ge,o.value),Te=re[ke];Te&&(m.value[Te.index]=ge)})},I=()=>{var re,ge,ke;if(((re=r.value)==null?void 0:re.length)===0){E.value=!1;return}let Te;o.value&&(Te=lo(m.value,o.value));const He=function(un){return Te?!!Te[at(un,o.value)]:m.value.includes(un)};let ze=!0,Je=0,an=0;for(let un=0,hh=(r.value||[]).length;un{var ge;if(!t||!t.store)return 0;const{treeData:ke}=t.store.states;let Te=0;const He=(ge=ke.value[re])==null?void 0:ge.children;return He&&(Te+=He.length,He.forEach(ze=>{Te+=V(ze)})),Te},U=(re,ge)=>{Array.isArray(re)||(re=[re]);const ke={};return re.forEach(Te=>{T.value[Te.id]=ge,ke[Te.columnKey||Te.id]=ge}),ke},ee=(re,ge,ke)=>{$.value&&$.value!==re&&($.value.order=null),$.value=re,N.value=ge,O.value=ke},be=()=>{let re=y(s);Object.keys(T.value).forEach(ge=>{const ke=T.value[ge];if(!ke||ke.length===0)return;const Te=Up({columns:u.value},ge);Te&&Te.filterMethod&&(re=re.filter(He=>ke.some(ze=>Te.filterMethod.call(null,ze,He,Te))))}),F.value=re},Ne=()=>{r.value=Hx(F.value,{sortingColumn:$.value,sortProp:N.value,sortOrder:O.value})},we=(re=void 0)=>{re&&re.filter||be(),Ne()},w=re=>{const{tableHeaderRef:ge}=t.refs;if(!ge)return;const ke=Object.assign({},ge.filterPanels),Te=Object.keys(ke);if(Te.length)if(typeof re=="string"&&(re=[re]),Array.isArray(re)){const He=re.map(ze=>$x({columns:u.value},ze));Te.forEach(ze=>{const Je=He.find(an=>an.id===ze);Je&&(Je.filteredValue=[])}),t.store.commit("filterChange",{column:He,values:[],silent:!0,multi:!0})}else Te.forEach(He=>{const ze=u.value.find(Je=>Je.id===He);ze&&(ze.filteredValue=[])}),T.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},S=()=>{$.value&&(ee(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:L,toggleRowExpansion:B,updateExpandRows:D,states:X,isRowExpanded:ne}=Nx({data:r,rowKey:o}),{updateTreeExpandKeys:q,toggleTreeExpansion:Z,updateTreeData:j,loadOrToggle:k,states:G}=Bx({data:r,rowKey:o}),{updateCurrentRowData:le,updateCurrentRow:ve,setCurrentRowKey:Ae,states:Be}=Fx({data:r,rowKey:o});return{assertRowKey:Q,updateColumns:J,scheduleLayout:oe,isSelected:W,clearSelection:P,cleanSelection:te,getSelectionRows:pe,toggleRowSelection:Ce,_toggleAllSelection:Pe,toggleAllSelection:null,updateSelectionByRowKey:Le,updateAllSelected:I,updateFilters:U,updateCurrentRow:ve,updateSort:ee,execFilter:be,execSort:Ne,execQuery:we,clearFilter:w,clearSort:S,toggleRowExpansion:B,setExpandRowKeysAdapter:re=>{L(re),q(re)},setCurrentRowKey:Ae,toggleRowExpansionAdapter:(re,ge)=>{u.value.some(({type:Te})=>Te==="expand")?B(re,ge):Z(re,ge)},isRowExpanded:ne,updateExpandRows:D,updateCurrentRowData:le,loadOrToggle:k,updateTreeData:j,states:{tableSize:n,rowKey:o,data:r,_data:s,isComplex:l,_columns:a,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:p,updateOrderFns:v,leafColumnsLength:b,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:C,isAllSelected:E,selection:m,reserveSelection:M,selectOnIndeterminate:x,selectable:_,filters:T,filteredData:F,sortingColumn:$,sortProp:N,sortOrder:O,hoverRow:z,...X,...G,...Be}}}function ya(e,t){return e.map(n=>{var o;return n.id===t.id?t:((o=n.children)!=null&&o.length&&(n.children=ya(n.children,t)),n)})}function ba(e){e.forEach(t=>{var n,o;t.no=(n=t.getColumnIndex)==null?void 0:n.call(t),(o=t.children)!=null&&o.length&&ba(t.children)}),e.sort((t,n)=>t.no-n.no)}function Dx(){const e=je(),t=zx();return{ns:xe("table"),...t,mutations:{setData(l,a){const i=y(l._data)!==a;l.data.value=a,l._data.value=a,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),y(l.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):i?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(l,a,i,u){const c=y(l._columns);let f=[];i?(i&&!i.children&&(i.children=[]),i.children.push(a),f=ya(c,i)):(c.push(a),f=c),ba(f),l._columns.value=f,l.updateOrderFns.push(u),a.type==="selection"&&(l.selectable.value=a.selectable,l.reserveSelection.value=a.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(l,a){var i;((i=a.getColumnIndex)==null?void 0:i.call(a))!==a.no&&(ba(l._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(l,a,i,u){const c=y(l._columns)||[];if(i)i.children.splice(i.children.findIndex(d=>d.id===a.id),1),Ue(()=>{var d;((d=i.children)==null?void 0:d.length)===0&&delete i.children}),l._columns.value=ya(c,i);else{const d=c.indexOf(a);d>-1&&(c.splice(d,1),l._columns.value=c)}const f=l.updateOrderFns.indexOf(u);f>-1&&l.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(l,a){const{prop:i,order:u,init:c}=a;if(i){const f=y(l.columns).find(d=>d.property===i);f&&(f.order=u,e.store.updateSort(f,i,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(l,a){const{sortingColumn:i,sortProp:u,sortOrder:c}=l,f=y(i),d=y(u),h=y(c);h===null&&(l.sortingColumn.value=null,l.sortProp.value=null);const p={filter:!0};e.store.execQuery(p),(!a||!(a.silent||a.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(l,a){const{column:i,values:u,silent:c}=a,f=e.store.updateFilters(i,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(l,a){e.store.toggleRowSelection(a),e.store.updateAllSelected()},setHoverRow(l,a){l.hoverRow.value=a},setCurrentRow(l,a){e.store.updateCurrentRow(a)}},commit:function(l,...a){const i=e.store.mutations;if(i[l])i[l].apply(e,[e.store.states].concat(a));else throw new Error(`Action not found: ${l}`)},updateTableScrollY:function(){Ue(()=>e.layout.updateScrollY.apply(e.layout))}}}const gr={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function Wx(e,t){if(!e)throw new Error("Table is required.");const n=Dx();return n.toggleAllSelection=$s(n._toggleAllSelection,10),Object.keys(gr).forEach(o=>{Gp(Xp(t,o),o,n)}),jx(n,t),n}function jx(e,t){Object.keys(gr).forEach(n=>{he(()=>Xp(t,n),o=>{Gp(o,n,e)})})}function Gp(e,t,n){let o=e,r=gr[t];typeof gr[t]=="object"&&(r=r.key,o=o||gr[t].default),n.states[r].value=o}function Xp(e,t){if(t.includes(".")){const n=t.split(".");let o=e;return n.forEach(r=>{o=o[r]}),o}else return e[t]}class Kx{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=R(null),this.scrollX=R(!1),this.scrollY=R(!1),this.bodyWidth=R(null),this.fixedWidth=R(null),this.rightFixedWidth=R(null),this.gutterWidth=0;for(const n in t)Oe(t,n)&&(Ve(this[n])?this[n].value=t[n]:this[n]=t[n]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const n=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(n!=null&&n.wrapRef)){let o=!0;const r=this.scrollY.value;return o=n.wrapRef.scrollHeight>n.wrapRef.clientHeight,this.scrollY.value=o,r!==o}return!1}setHeight(t,n="height"){if(!Ge)return;const o=this.table.vnode.el;if(t=Px(t),this.height.value=Number(t),!o&&(t||t===0))return Ue(()=>this.setHeight(t,n));typeof t=="number"?(o.style[n]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(o.style[n]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(o=>{o.isColumnGroup?t.push.apply(t,o.columns):t.push(o)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let n=t;for(;n.tagName!=="DIV";){if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}updateColumnsWidth(){if(!Ge)return;const t=this.fit,n=this.table.vnode.el.clientWidth;let o=0;const r=this.getFlattenColumns(),s=r.filter(i=>typeof i.width!="number");if(r.forEach(i=>{typeof i.width=="number"&&i.realWidth&&(i.realWidth=null)}),s.length>0&&t){if(r.forEach(i=>{o+=Number(i.width||i.minWidth||80)}),o<=n){this.scrollX.value=!1;const i=n-o;if(s.length===1)s[0].realWidth=Number(s[0].minWidth||80)+i;else{const u=s.reduce((d,h)=>d+Number(h.minWidth||80),0),c=i/u;let f=0;s.forEach((d,h)=>{if(h===0)return;const p=Math.floor(Number(d.minWidth||80)*c);f+=p,d.realWidth=Number(d.minWidth||80)+p}),s[0].realWidth=Number(s[0].minWidth||80)+i-f}}else this.scrollX.value=!0,s.forEach(i=>{i.realWidth=Number(i.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else r.forEach(i=>{!i.width&&!i.minWidth?i.realWidth=80:i.realWidth=Number(i.width||i.minWidth),o+=i.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const l=this.store.states.fixedColumns.value;if(l.length>0){let i=0;l.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.fixedWidth.value=i}const a=this.store.states.rightFixedColumns.value;if(a.length>0){let i=0;a.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=i}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&this.observers.splice(n,1)}notifyObservers(t){this.observers.forEach(o=>{var r,s;switch(t){case"columns":(r=o.state)==null||r.onColumnsChange(this);break;case"scrollable":(s=o.state)==null||s.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:Ux}=Wo,Vx=ue({name:"ElTableFilterPanel",components:{ElCheckbox:Wo,ElCheckboxGroup:Ux,ElScrollbar:hp,ElTooltip:Ei,ElIcon:mt,ArrowDown:kd,ArrowUp:g1},directives:{ClickOutside:p2},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=je(),{t:n}=fi(),o=xe("table-filter"),r=t==null?void 0:t.parent;r.filterPanels.value[e.column.id]||(r.filterPanels.value[e.column.id]=t);const s=R(!1),l=R(null),a=A(()=>e.column&&e.column.filters),i=A({get:()=>{var m;return(((m=e.column)==null?void 0:m.filteredValue)||[])[0]},set:m=>{u.value&&(typeof m<"u"&&m!==null?u.value.splice(0,1,m):u.value.splice(0,1))}}),u=A({get(){return e.column?e.column.filteredValue||[]:[]},set(m){e.column&&e.upDataColumn("filteredValue",m)}}),c=A(()=>e.column?e.column.filterMultiple:!0),f=m=>m.value===i.value,d=()=>{s.value=!1},h=m=>{m.stopPropagation(),s.value=!s.value},p=()=>{s.value=!1},v=()=>{C(u.value),d()},b=()=>{u.value=[],C(u.value),d()},g=m=>{i.value=m,C(typeof m<"u"&&m!==null?u.value:[]),d()},C=m=>{e.store.commit("filterChange",{column:e.column,values:m}),e.store.updateAllSelected()};he(s,m=>{e.column&&e.upDataColumn("filterOpened",m)},{immediate:!0});const E=A(()=>{var m,M;return(M=(m=l.value)==null?void 0:m.popperRef)==null?void 0:M.contentRef});return{tooltipVisible:s,multiple:c,filteredValue:u,filterValue:i,filters:a,handleConfirm:v,handleReset:b,handleSelect:g,isActive:f,t:n,ns:o,showFilterPanel:h,hideFilterPanel:p,popperPaneRef:E,tooltip:l}}}),qx={key:0},Yx=["disabled"],Gx=["label","onClick"];function Xx(e,t,n,o,r,s){const l=ot("el-checkbox"),a=ot("el-checkbox-group"),i=ot("el-scrollbar"),u=ot("arrow-up"),c=ot("arrow-down"),f=ot("el-icon"),d=ot("el-tooltip"),h=zf("click-outside");return H(),ye(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:fe(()=>[e.multiple?(H(),se("div",qx,[ie("div",{class:Y(e.ns.e("content"))},[ae(i,{"wrap-class":e.ns.e("wrap")},{default:fe(()=>[ae(a,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=p=>e.filteredValue=p),class:Y(e.ns.e("checkbox-group"))},{default:fe(()=>[(H(!0),se(Ke,null,Ui(e.filters,p=>(H(),ye(l,{key:p.value,label:p.value},{default:fe(()=>[_t(tt(p.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ie("div",{class:Y(e.ns.e("bottom"))},[ie("button",{class:Y({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...p)=>e.handleConfirm&&e.handleConfirm(...p))},tt(e.t("el.table.confirmFilter")),11,Yx),ie("button",{type:"button",onClick:t[2]||(t[2]=(...p)=>e.handleReset&&e.handleReset(...p))},tt(e.t("el.table.resetFilter")),1)],2)])):(H(),se("ul",{key:1,class:Y(e.ns.e("list"))},[ie("li",{class:Y([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=p=>e.handleSelect(null))},tt(e.t("el.table.clearFilter")),3),(H(!0),se(Ke,null,Ui(e.filters,p=>(H(),se("li",{key:p.value,class:Y([e.ns.e("list-item"),e.ns.is("active",e.isActive(p))]),label:p.value,onClick:v=>e.handleSelect(p.value)},tt(p.text),11,Gx))),128))],2))]),default:fe(()=>[lt((H(),se("span",{class:Y([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...p)=>e.showFilterPanel&&e.showFilterPanel(...p))},[ae(f,null,{default:fe(()=>[e.column.filterOpened?(H(),ye(u,{key:0})):(H(),ye(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var Zx=We(Vx,[["render",Xx],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function Zp(e){const t=je();Gs(()=>{n.value.addObserver(t)}),Ze(()=>{o(n.value),r(n.value)}),Ba(()=>{o(n.value),r(n.value)}),Go(()=>{n.value.removeObserver(t)});const n=A(()=>{const s=e.layout;if(!s)throw new Error("Can not find table layout.");return s}),o=s=>{var l;const a=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col"))||[];if(!a.length)return;const i=s.getFlattenColumns(),u={};i.forEach(c=>{u[c.id]=c});for(let c=0,f=a.length;c{var l,a;const i=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=i.length;c{v.stopPropagation()},s=(v,b)=>{!b.filters&&b.sortable?p(v,b,!1):b.filterable&&!b.sortable&&r(v),o==null||o.emit("header-click",b,v)},l=(v,b)=>{o==null||o.emit("header-contextmenu",b,v)},a=R(null),i=R(!1),u=R({}),c=(v,b)=>{if(Ge&&!(b.children&&b.children.length>0)&&a.value&&e.border){i.value=!0;const g=o;t("set-drag-visible",!0);const E=(g==null?void 0:g.vnode.el).getBoundingClientRect().left,m=n.vnode.el.querySelector(`th.${b.id}`),M=m.getBoundingClientRect(),x=M.left-E+30;oo(m,"noclick"),u.value={startMouseLeft:v.clientX,startLeft:M.right-E,startColumnLeft:M.left-E,tableLeft:E};const _=g==null?void 0:g.refs.resizeProxy;_.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const T=$=>{const N=$.clientX-u.value.startMouseLeft,O=u.value.startLeft+N;_.style.left=`${Math.max(x,O)}px`},F=()=>{if(i.value){const{startColumnLeft:$,startLeft:N}=u.value,z=Number.parseInt(_.style.left,10)-$;b.width=b.realWidth=z,g==null||g.emit("header-dragend",b.width,N-$,b,v),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",i.value=!1,a.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",F),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{fo(m,"noclick")},0)};document.addEventListener("mousemove",T),document.addEventListener("mouseup",F)}},f=(v,b)=>{var g;if(b.children&&b.children.length>0)return;const C=(g=v.target)==null?void 0:g.closest("th");if(!(!b||!b.resizable)&&!i.value&&e.border){const E=C.getBoundingClientRect(),m=document.body.style;E.width>12&&E.right-v.pageX<8?(m.cursor="col-resize",co(C,"is-sortable")&&(C.style.cursor="col-resize"),a.value=b):i.value||(m.cursor="",co(C,"is-sortable")&&(C.style.cursor="pointer"),a.value=null)}},d=()=>{Ge&&(document.body.style.cursor="")},h=({order:v,sortOrders:b})=>{if(v==="")return b[0];const g=b.indexOf(v||null);return b[g>b.length-2?0:g+1]},p=(v,b,g)=>{var C;v.stopPropagation();const E=b.order===g?null:g||h(b),m=(C=v.target)==null?void 0:C.closest("th");if(m&&co(m,"noclick")){fo(m,"noclick");return}if(!b.sortable)return;const M=e.store.states;let x=M.sortProp.value,_;const T=M.sortingColumn.value;(T!==b||T===b&&T.order===null)&&(T&&(T.order=null),M.sortingColumn.value=b,x=b.property),E?_=b.order=E:_=b.order=null,M.sortProp.value=x,M.sortOrder.value=_,o==null||o.store.commit("changeSortCondition")};return{handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:p,handleFilterClick:r}}function Qx(e){const t=Se(ln),n=xe("table");return{getHeaderRowStyle:a=>{const i=t==null?void 0:t.props.headerRowStyle;return typeof i=="function"?i.call(null,{rowIndex:a}):i},getHeaderRowClass:a=>{const i=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?i.push(u):typeof u=="function"&&i.push(u.call(null,{rowIndex:a})),i.join(" ")},getHeaderCellStyle:(a,i,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:a,columnIndex:i,row:u,column:c}));const h=Ai(i,c.fixed,e.store,u);return jo(h,"left"),jo(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(a,i,u,c)=>{const f=Oi(n.b(),i,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:a,columnIndex:i,row:u,column:c})),d.push(n.e("cell")),d.filter(p=>Boolean(p)).join(" ")}}}const Jp=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,Jp(n.children))):t.push(n)}),t},eT=e=>{let t=1;const n=(s,l)=>{if(l&&(s.level=l.level+1,t{n(i,s),a+=i.colSpan}),s.colSpan=a}else s.colSpan=1};e.forEach(s=>{s.level=1,n(s,void 0)});const o=[];for(let s=0;s{s.children?(s.rowSpan=1,s.children.forEach(l=>l.isSubColumn=!0)):s.rowSpan=t-s.level+1,o[s.level-1].push(s)}),o};function tT(e){const t=Se(ln),n=A(()=>eT(e.store.states.originColumns.value));return{isGroup:A(()=>{const s=n.value.length>1;return s&&t&&(t.state.isGroup.value=!0),s}),toggleAllSelection:s=>{s.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:n}}var nT=ue({name:"ElTableHeader",components:{ElCheckbox:Wo},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const n=je(),o=Se(ln),r=xe("table"),s=R({}),{onColumnsChange:l,onScrollableChange:a}=Zp(o);Ze(async()=>{await Ue(),await Ue();const{prop:x,order:_}=e.defaultSort;o==null||o.store.commit("sort",{prop:x,order:_,init:!0})});const{handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:p}=Jx(e,t),{getHeaderRowStyle:v,getHeaderRowClass:b,getHeaderCellStyle:g,getHeaderCellClass:C}=Qx(e),{isGroup:E,toggleAllSelection:m,columnRows:M}=tT(e);return n.state={onColumnsChange:l,onScrollableChange:a},n.filterPanels=s,{ns:r,filterPanels:s,onColumnsChange:l,onScrollableChange:a,columnRows:M,getHeaderRowClass:b,getHeaderRowStyle:v,getHeaderCellClass:C,getHeaderCellStyle:g,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:p,isGroup:E,toggleAllSelection:m}},render(){const{ns:e,isGroup:t,columnRows:n,getHeaderCellStyle:o,getHeaderCellClass:r,getHeaderRowClass:s,getHeaderRowStyle:l,handleHeaderClick:a,handleHeaderContextMenu:i,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:p}=this;let v=1;return de("thead",{class:{[e.is("group")]:t}},n.map((b,g)=>de("tr",{class:s(g),key:g,style:l(g)},b.map((C,E)=>(C.rowSpan>v&&(v=C.rowSpan),de("th",{class:r(g,E,b,C),colspan:C.colSpan,key:`${C.id}-thead`,rowspan:C.rowSpan,style:o(g,E,b,C),onClick:m=>a(m,C),onContextmenu:m=>i(m,C),onMousedown:m=>u(m,C),onMousemove:m=>c(m,C),onMouseout:d},[de("div",{class:["cell",C.filteredValue&&C.filteredValue.length>0?"highlight":""]},[C.renderHeader?C.renderHeader({column:C,$index:E,store:h,_self:p}):C.label,C.sortable&&de("span",{onClick:m=>f(m,C),class:"caret-wrapper"},[de("i",{onClick:m=>f(m,C,"ascending"),class:"sort-caret ascending"}),de("i",{onClick:m=>f(m,C,"descending"),class:"sort-caret descending"})]),C.filterable&&de(Zx,{store:h,placement:C.filterPlacement||"bottom-start",column:C,upDataColumn:(m,M)=>{C[m]=M}})])]))))))}});function oT(e){const t=Se(ln),n=R(""),o=R(de("div")),r=(d,h,p)=>{var v;const b=t,g=Pl(d);let C;const E=(v=b==null?void 0:b.vnode.el)==null?void 0:v.dataset.prefix;g&&(C=kc({columns:e.store.states.columns.value},g,E),C&&(b==null||b.emit(`cell-${p}`,h,C,g,d))),b==null||b.emit(`row-${p}`,h,C,d)},s=(d,h)=>{r(d,h,"dblclick")},l=(d,h)=>{e.store.commit("setCurrentRow",h),r(d,h,"click")},a=(d,h)=>{r(d,h,"contextmenu")},i=$s(d=>{e.store.commit("setHoverRow",d)},30),u=$s(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:s,handleClick:l,handleContextMenu:a,handleMouseEnter:i,handleMouseLeave:u,handleCellMouseEnter:(d,h,p)=>{var v;const b=t,g=Pl(d),C=(v=b==null?void 0:b.vnode.el)==null?void 0:v.dataset.prefix;if(g){const _=kc({columns:e.store.states.columns.value},g,C),T=b.hoverState={cell:g,column:_,row:h};b==null||b.emit("cell-mouse-enter",T.row,T.column,T.cell,d)}if(!p)return;const E=d.target.querySelector(".cell");if(!(co(E,`${C}-tooltip`)&&E.childNodes.length))return;const m=document.createRange();m.setStart(E,0),m.setEnd(E,E.childNodes.length);const M=Math.round(m.getBoundingClientRect().width),x=(Number.parseInt(ra(E,"paddingLeft"),10)||0)+(Number.parseInt(ra(E,"paddingRight"),10)||0);(M+x>E.offsetWidth||E.scrollWidth>E.offsetWidth)&&Lx(t==null?void 0:t.refs.tableWrapper,g,g.innerText||g.textContent,p)},handleCellMouseLeave:d=>{if(!Pl(d))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,d)},tooltipContent:n,tooltipTrigger:o}}function rT(e){const t=Se(ln),n=xe("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[n.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(n.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let p=h??{};typeof h=="function"&&(p=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const v=Ai(c,e==null?void 0:e.fixed,e.store);return jo(v,"left"),jo(v,"right"),Object.assign({},p,v)},getCellClass:(u,c,f,d,h)=>{const p=Oi(n.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),v=[d.id,d.align,d.className,...p],b=t==null?void 0:t.props.cellClassName;return typeof b=="string"?v.push(b):typeof b=="function"&&v.push(b.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),v.push(n.e("cell")),v.filter(g=>Boolean(g)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,p=1;const v=t==null?void 0:t.props.spanMethod;if(typeof v=="function"){const b=v({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(b)?(h=b[0],p=b[1]):typeof b=="object"&&(h=b.rowspan,p=b.colspan)}return{rowspan:h,colspan:p}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:p})=>h||p).slice(f,f+c);return Number(d.reduce((h,p)=>Number(h)+Number(p),-1))}}}function sT(e){const t=Se(ln),n=xe("table"),{handleDoubleClick:o,handleClick:r,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:a,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=oT(e),{getRowStyle:d,getRowClass:h,getCellStyle:p,getCellClass:v,getSpan:b,getColspanRealWidth:g}=rT(e),C=A(()=>e.store.states.columns.value.findIndex(({type:_})=>_==="default")),E=(_,T)=>{const F=t.props.rowKey;return F?at(_,F):T},m=(_,T,F,$=!1)=>{const{tooltipEffect:N,tooltipOptions:O,store:z}=e,{indent:Q,columns:K}=z.states,J=h(_,T);let oe=!0;return F&&(J.push(n.em("row",`level-${F.level}`)),oe=F.display),de("tr",{style:[oe?null:{display:"none"},d(_,T)],class:J,key:E(_,T),onDblclick:P=>o(P,_),onClick:P=>r(P,_),onContextmenu:P=>s(P,_),onMouseenter:()=>l(T),onMouseleave:a},K.value.map((P,te)=>{const{rowspan:pe,colspan:Ce}=b(_,P,T,te);if(!pe||!Ce)return null;const Pe={...P};Pe.realWidth=g(K.value,Ce,te);const Le={store:e.store,_self:e.context||t,column:Pe,row:_,$index:T,cellIndex:te,expanded:$};te===C.value&&F&&(Le.treeNode={indent:F.level*Q.value,level:F.level},typeof F.expanded=="boolean"&&(Le.treeNode.expanded=F.expanded,"loading"in F&&(Le.treeNode.loading=F.loading),"noLazyChildren"in F&&(Le.treeNode.noLazyChildren=F.noLazyChildren)));const I=`${T},${te}`,V=Pe.columnKey||Pe.rawColumnKey||"",U=M(te,P,Le),ee=P.showOverflowTooltip&&Md({effect:N},O,P.showOverflowTooltip);return de("td",{style:p(T,te,_,P),class:v(T,te,_,P,Ce-1),key:`${V}${I}`,rowspan:pe,colspan:Ce,onMouseenter:be=>i(be,_,ee),onMouseleave:u},[U])}))},M=(_,T,F)=>T.renderCell(F);return{wrappedRowRender:(_,T)=>{const F=e.store,{isRowExpanded:$,assertRowKey:N}=F,{treeData:O,lazyTreeNodeMap:z,childrenColumnName:Q,rowKey:K}=F.states,J=F.states.columns.value;if(J.some(({type:W})=>W==="expand")){const W=$(_),P=m(_,T,void 0,W),te=t.renderExpanded;return W?te?[[P,de("tr",{key:`expanded-row__${P.key}`},[de("td",{colspan:J.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[te({row:_,$index:T,store:F,expanded:W})])])]]:(console.error("[Element Error]renderExpanded is required."),P):[[P]]}else if(Object.keys(O.value).length){N();const W=at(_,K.value);let P=O.value[W],te=null;P&&(te={expanded:P.expanded,level:P.level,display:!0},typeof P.lazy=="boolean"&&(typeof P.loaded=="boolean"&&P.loaded&&(te.noLazyChildren=!(P.children&&P.children.length)),te.loading=P.loading));const pe=[m(_,T,te)];if(P){let Ce=0;const Pe=(I,V)=>{I&&I.length&&V&&I.forEach(U=>{const ee={display:V.display&&V.expanded,level:V.level+1,expanded:!1,noLazyChildren:!1,loading:!1},be=at(U,K.value);if(be==null)throw new Error("For nested data item, row-key is required.");if(P={...O.value[be]},P&&(ee.expanded=P.expanded,P.level=P.level||ee.level,P.display=!!(P.expanded&&ee.display),typeof P.lazy=="boolean"&&(typeof P.loaded=="boolean"&&P.loaded&&(ee.noLazyChildren=!(P.children&&P.children.length)),ee.loading=P.loading)),Ce++,pe.push(m(U,T+Ce,ee)),P){const Ne=z.value[be]||U[Q.value];Pe(Ne,P)}})};P.display=!0;const Le=z.value[W]||_[Q.value];Pe(Le,P)}return pe}else return m(_,T,void 0)},tooltipContent:c,tooltipTrigger:f}}const lT={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var aT=ue({name:"ElTableBody",props:lT,setup(e){const t=je(),n=Se(ln),o=xe("table"),{wrappedRowRender:r,tooltipContent:s,tooltipTrigger:l}=sT(e),{onColumnsChange:a,onScrollableChange:i}=Zp(n);return he(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Ge)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(b=>b==null?void 0:b.classList.contains(`${o.e("row")}`)),p=h[c],v=h[u];p&&fo(p,"hover-row"),v&&oo(v,"hover-row")})}),Go(()=>{var u;(u=dn)==null||u()}),{ns:o,onColumnsChange:a,onScrollableChange:i,wrappedRowRender:r,tooltipContent:s,tooltipTrigger:l}},render(){const{wrappedRowRender:e,store:t}=this,n=t.states.data.value||[];return de("tbody",{},[n.reduce((o,r)=>o.concat(e(r,o.length)),[])])}});function Mi(e){const t=e.tableLayout==="auto";let n=e.columns||[];t&&n.every(r=>r.width===void 0)&&(n=[]);const o=r=>{const s={key:`${e.tableLayout}_${r.id}`,style:{},name:void 0};return t?s.style={width:`${r.width}px`}:s.name=r.id,s};return de("colgroup",{},n.map(r=>de("col",o(r))))}Mi.props=["columns","tableLayout"];function iT(){const e=Se(ln),t=e==null?void 0:e.store,n=A(()=>t.states.fixedLeafColumnsLength.value),o=A(()=>t.states.rightFixedColumns.value.length),r=A(()=>t.states.columns.value.length),s=A(()=>t.states.fixedColumns.value.length),l=A(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:n,rightFixedLeafCount:o,columnsCount:r,leftFixedCount:s,rightFixedCount:l,columns:t.states.columns}}function uT(e){const{columns:t}=iT(),n=xe("table");return{getCellClasses:(s,l)=>{const a=s[l],i=[n.e("cell"),a.id,a.align,a.labelClassName,...Oi(n.b(),l,a.fixed,e.store)];return a.className&&i.push(a.className),a.children||i.push(n.is("leaf")),i},getCellStyles:(s,l)=>{const a=Ai(l,s.fixed,e.store);return jo(a,"left"),jo(a,"right"),a},columns:t}}var cT=ue({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:n,columns:o}=uT(e);return{ns:xe("table"),getCellClasses:t,getCellStyles:n,columns:o}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:r,ns:s}=this,l=this.store.states.data.value;let a=[];return o?a=o({columns:e,data:l}):e.forEach((i,u)=>{if(u===0){a[u]=r;return}const c=l.map(p=>Number(p[i.property])),f=[];let d=!0;c.forEach(p=>{if(!Number.isNaN(+p)){d=!1;const v=`${p}`.split(".")[1];f.push(v?v.length:0)}});const h=Math.max.apply(null,f);d?a[u]="":a[u]=c.reduce((p,v)=>{const b=Number(v);return Number.isNaN(+b)?p:Number.parseFloat((p+v).toFixed(Math.min(h,20)))},0)}),de("table",{class:s.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[Mi({columns:e}),de("tbody",[de("tr",{},[...e.map((i,u)=>de("td",{key:u,colspan:i.colSpan,rowspan:i.rowSpan,class:n(e,u),style:t(i,u)},[de("div",{class:["cell",i.labelClassName]},[a[u]])]))])])])}});function fT(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function dT(e,t,n,o){const r=R(!1),s=R(null),l=R(!1),a=W=>{l.value=W},i=R({width:null,height:null,headerHeight:null}),u=R(!1),c={display:"inline-block",verticalAlign:"middle"},f=R(),d=R(0),h=R(0),p=R(0),v=R(0);io(()=>{t.setHeight(e.height)}),io(()=>{t.setMaxHeight(e.maxHeight)}),he(()=>[e.currentRowKey,n.states.rowKey],([W,P])=>{!y(P)||!y(W)||n.setCurrentRowKey(`${W}`)},{immediate:!0}),he(()=>e.data,W=>{o.store.commit("setData",W)},{immediate:!0,deep:!0}),io(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const b=()=>{o.store.commit("setHoverRow",null),o.hoverState&&(o.hoverState=null)},g=(W,P)=>{const{pixelX:te,pixelY:pe}=P;Math.abs(te)>=Math.abs(pe)&&(o.refs.bodyWrapper.scrollLeft+=P.pixelX/5)},C=A(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),E=A(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),m=()=>{C.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(T)};Ze(async()=>{await Ue(),n.updateColumns(),F(),requestAnimationFrame(m);const W=o.vnode.el,P=o.refs.headerWrapper;e.flexible&&W&&W.parentElement&&(W.parentElement.style.minWidth="0"),i.value={width:f.value=W.offsetWidth,height:W.offsetHeight,headerHeight:e.showHeader&&P?P.offsetHeight:null},n.states.columns.value.forEach(te=>{te.filteredValue&&te.filteredValue.length&&o.store.commit("filterChange",{column:te,values:te.filteredValue,silent:!0})}),o.$ready=!0});const M=(W,P)=>{if(!W)return;const te=Array.from(W.classList).filter(pe=>!pe.startsWith("is-scrolling-"));te.push(t.scrollX.value?P:"is-scrolling-none"),W.className=te.join(" ")},x=W=>{const{tableWrapper:P}=o.refs;M(P,W)},_=W=>{const{tableWrapper:P}=o.refs;return!!(P&&P.classList.contains(W))},T=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const I="is-scrolling-none";_(I)||x(I);return}const W=o.refs.scrollBarRef.wrapRef;if(!W)return;const{scrollLeft:P,offsetWidth:te,scrollWidth:pe}=W,{headerWrapper:Ce,footerWrapper:Pe}=o.refs;Ce&&(Ce.scrollLeft=P),Pe&&(Pe.scrollLeft=P);const Le=pe-te-1;P>=Le?x("is-scrolling-right"):x(P===0?"is-scrolling-left":"is-scrolling-middle")},F=()=>{o.refs.scrollBarRef&&(o.refs.scrollBarRef.wrapRef&&gn(o.refs.scrollBarRef.wrapRef,"scroll",T,{passive:!0}),e.fit?Lo(o.vnode.el,$):gn(window,"resize",$),Lo(o.refs.bodyWrapper,()=>{var W,P;$(),(P=(W=o.refs)==null?void 0:W.scrollBarRef)==null||P.update()}))},$=()=>{var W,P,te;const pe=o.vnode.el;if(!o.$ready||!pe)return;let Ce=!1;const{width:Pe,height:Le,headerHeight:I}=i.value,V=f.value=pe.offsetWidth;Pe!==V&&(Ce=!0);const U=pe.offsetHeight;(e.height||C.value)&&Le!==U&&(Ce=!0);const ee=e.tableLayout==="fixed"?o.refs.headerWrapper:(W=o.refs.tableHeaderRef)==null?void 0:W.$el;e.showHeader&&(ee==null?void 0:ee.offsetHeight)!==I&&(Ce=!0),d.value=((P=o.refs.tableWrapper)==null?void 0:P.scrollHeight)||0,p.value=(ee==null?void 0:ee.scrollHeight)||0,v.value=((te=o.refs.footerWrapper)==null?void 0:te.offsetHeight)||0,h.value=d.value-p.value-v.value,Ce&&(i.value={width:V,height:U,headerHeight:e.showHeader&&(ee==null?void 0:ee.offsetHeight)||0},m())},N=No(),O=A(()=>{const{bodyWidth:W,scrollY:P,gutterWidth:te}=t;return W.value?`${W.value-(P.value?te:0)}px`:""}),z=A(()=>e.maxHeight?"fixed":e.tableLayout),Q=A(()=>{if(e.data&&e.data.length)return null;let W="100%";e.height&&h.value&&(W=`${h.value}px`);const P=f.value;return{width:P?`${P}px`:"",height:W}}),K=A(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),J=A(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${p.value+v.value}px)`};{const W=e.maxHeight;if(d.value>=Number(W))return{maxHeight:`${d.value-p.value-v.value}px`}}}return{}});return{isHidden:r,renderExpanded:s,setDragVisible:a,isGroup:u,handleMouseLeave:b,handleHeaderFooterMousewheel:g,tableSize:N,emptyBlockStyle:Q,handleFixedMousewheel:(W,P)=>{const te=o.refs.bodyWrapper;if(Math.abs(P.spinY)>0){const pe=te.scrollTop;P.pixelY<0&&pe!==0&&W.preventDefault(),P.pixelY>0&&te.scrollHeight-te.clientHeight>pe&&W.preventDefault(),te.scrollTop+=Math.ceil(P.pixelY/5)}else te.scrollLeft+=Math.ceil(P.pixelX/5)},resizeProxyVisible:l,bodyWidth:O,resizeState:i,doLayout:m,tableBodyStyles:E,tableLayout:z,scrollbarViewStyle:c,tableInnerStyle:K,scrollbarStyle:J}}function pT(e){const t=R(),n=()=>{const r=e.vnode.el.querySelector(".hidden-columns"),s={childList:!0,subtree:!0},l=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{l.forEach(a=>a())}),t.value.observe(r,s)};Ze(()=>{n()}),Go(()=>{var o;(o=t.value)==null||o.disconnect()})}var hT={data:{type:Array,default:()=>[]},size:Qo,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const vT=()=>{const e=R(),t=(s,l)=>{const a=e.value;a&&a.scrollTo(s,l)},n=(s,l)=>{const a=e.value;a&&ht(l)&&["Top","Left"].includes(s)&&a[`setScroll${s}`](l)};return{scrollBarRef:e,scrollTo:t,setScrollTop:s=>n("Top",s),setScrollLeft:s=>n("Left",s)}};let gT=1;const mT=ue({name:"ElTable",directives:{Mousewheel:C2},components:{TableHeader:nT,TableBody:aT,TableFooter:cT,ElScrollbar:hp,hColgroup:Mi},props:hT,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=fi(),n=xe("table"),o=je();st(ln,o);const r=Wx(o,e);o.store=r;const s=new Kx({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=s;const l=A(()=>(r.states.data.value||[]).length===0),{setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:p,sort:v}=fT(r),{isHidden:b,renderExpanded:g,setDragVisible:C,isGroup:E,handleMouseLeave:m,handleHeaderFooterMousewheel:M,tableSize:x,emptyBlockStyle:_,handleFixedMousewheel:T,resizeProxyVisible:F,bodyWidth:$,resizeState:N,doLayout:O,tableBodyStyles:z,tableLayout:Q,scrollbarViewStyle:K,tableInnerStyle:J,scrollbarStyle:oe}=dT(e,s,r,o),{scrollBarRef:W,scrollTo:P,setScrollLeft:te,setScrollTop:pe}=vT(),Ce=$s(O,50),Pe=`${n.namespace.value}-table_${gT++}`;o.tableId=Pe,o.state={isGroup:E,resizeState:N,doLayout:O,debouncedUpdateLayout:Ce};const Le=A(()=>e.sumText||t("el.table.sumText")),I=A(()=>e.emptyText||t("el.table.emptyText"));return pT(o),{ns:n,layout:s,store:r,handleHeaderFooterMousewheel:M,handleMouseLeave:m,tableId:Pe,tableSize:x,isHidden:b,isEmpty:l,renderExpanded:g,resizeProxyVisible:F,resizeState:N,isGroup:E,bodyWidth:$,tableBodyStyles:z,emptyBlockStyle:_,debouncedUpdateLayout:Ce,handleFixedMousewheel:T,setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:p,doLayout:O,sort:v,t,setDragVisible:C,context:o,computedSumText:Le,computedEmptyText:I,tableLayout:Q,scrollbarViewStyle:K,tableInnerStyle:J,scrollbarStyle:oe,scrollBarRef:W,scrollTo:P,setScrollLeft:te,setScrollTop:pe}}}),yT=["data-prefix"],bT={ref:"hiddenColumns",class:"hidden-columns"};function wT(e,t,n,o,r,s){const l=ot("hColgroup"),a=ot("table-header"),i=ot("table-body"),u=ot("el-scrollbar"),c=ot("table-footer"),f=zf("mousewheel");return H(),se("div",{ref:"tableWrapper",class:Y([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:et(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=d=>e.handleMouseLeave())},[ie("div",{class:Y(e.ns.e("inner-wrapper")),style:et(e.tableInnerStyle)},[ie("div",bT,[$e(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?lt((H(),se("div",{key:0,ref:"headerWrapper",class:Y(e.ns.e("header-wrapper"))},[ie("table",{ref:"tableHeader",class:Y(e.ns.e("header")),style:et(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ae(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ae(a,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):_e("v-if",!0),ie("div",{ref:"bodyWrapper",class:Y(e.ns.e("body-wrapper"))},[ae(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:fe(()=>[ie("table",{ref:"tableBody",class:Y(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:et({width:e.bodyWidth,tableLayout:e.tableLayout})},[ae(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(H(),ye(a,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):_e("v-if",!0),ae(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(H(),se("div",{key:0,ref:"emptyBlock",style:et(e.emptyBlockStyle),class:Y(e.ns.e("empty-block"))},[ie("span",{class:Y(e.ns.e("empty-text"))},[$e(e.$slots,"empty",{},()=>[_t(tt(e.computedEmptyText),1)])],2)],6)):_e("v-if",!0),e.$slots.append?(H(),se("div",{key:1,ref:"appendWrapper",class:Y(e.ns.e("append-wrapper"))},[$e(e.$slots,"append")],2)):_e("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?lt((H(),se("div",{key:1,ref:"footerWrapper",class:Y(e.ns.e("footer-wrapper"))},[ae(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:et(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[Ut,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):_e("v-if",!0),e.border||e.isGroup?(H(),se("div",{key:2,class:Y(e.ns.e("border-left-patch"))},null,2)):_e("v-if",!0)],6),lt(ie("div",{ref:"resizeProxy",class:Y(e.ns.e("column-resize-proxy"))},null,2),[[Ut,e.resizeProxyVisible]])],46,yT)}var CT=We(mT,[["render",wT],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const _T={selection:"table-column--selection",expand:"table__expand-column"},ET={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},ST=e=>_T[e]||"",xT={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return de(Wo,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:n,$index:o}){return de(Wo,{disabled:t.selectable?!t.selectable.call(null,e,o):!1,size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:r=>r.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return typeof o=="number"?n=t+o:typeof o=="function"&&(n=o(t)),de("div",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:n}){const{ns:o}=t,r=[o.e("expand-icon")];return n&&r.push(o.em("expand-icon","expanded")),de("div",{class:r,onClick:function(l){l.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[de(mt,null,{default:()=>[de(ri)]})]})},sortable:!1,resizable:!1}};function TT({row:e,column:t,$index:n}){var o;const r=t.property,s=r&&Jw(e,r).value;return t&&t.formatter?t.formatter(e,t,s,n):((o=s==null?void 0:s.toString)==null?void 0:o.call(s))||""}function OT({row:e,treeNode:t,store:n},o=!1){const{ns:r}=n;if(!t)return o?[de("span",{class:r.e("placeholder")})]:null;const s=[],l=function(a){a.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&s.push(de("span",{class:r.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const a=[r.e("expand-icon"),t.expanded?r.em("expand-icon","expanded"):""];let i=ri;t.loading&&(i=si),s.push(de("div",{class:a,onClick:l},{default:()=>[de(mt,{class:{[r.is("loading")]:t.loading}},{default:()=>[de(i)]})]}))}else s.push(de("span",{class:r.e("placeholder")}));return s}function Nc(e,t){return e.reduce((n,o)=>(n[o]=o,n),t)}function AT(e,t){const n=je();return{registerComplexWatchers:()=>{const s=["fixed"],l={realWidth:"width",realMinWidth:"minWidth"},a=Nc(s,l);Object.keys(a).forEach(i=>{const u=l[i];Oe(t,u)&&he(()=>t[u],c=>{let f=c;u==="width"&&i==="realWidth"&&(f=Ti(c)),u==="minWidth"&&i==="realMinWidth"&&(f=Vp(c)),n.columnConfig.value[u]=f,n.columnConfig.value[i]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const s=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],l={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},a=Nc(s,l);Object.keys(a).forEach(i=>{const u=l[i];Oe(t,u)&&he(()=>t[u],c=>{n.columnConfig.value[i]=c})})}}}function MT(e,t,n){const o=je(),r=R(""),s=R(!1),l=R(),a=R(),i=xe("table");io(()=>{l.value=e.align?`is-${e.align}`:null,l.value}),io(()=>{a.value=e.headerAlign?`is-${e.headerAlign}`:l.value,a.value});const u=A(()=>{let m=o.vnode.vParent||o.parent;for(;m&&!m.tableId&&!m.columnId;)m=m.vnode.vParent||m.parent;return m}),c=A(()=>{const{store:m}=o.parent;if(!m)return!1;const{treeData:M}=m.states,x=M.value;return x&&Object.keys(x).length>0}),f=R(Ti(e.width)),d=R(Vp(e.minWidth)),h=m=>(f.value&&(m.width=f.value),d.value&&(m.minWidth=d.value),!f.value&&d.value&&(m.width=void 0),m.minWidth||(m.minWidth=80),m.realWidth=Number(m.width===void 0?m.minWidth:m.width),m),p=m=>{const M=m.type,x=xT[M]||{};Object.keys(x).forEach(T=>{const F=x[T];T!=="className"&&F!==void 0&&(m[T]=F)});const _=ST(M);if(_){const T=`${y(i.namespace)}-${_}`;m.className=m.className?`${m.className} ${T}`:T}return m},v=m=>{Array.isArray(m)?m.forEach(x=>M(x)):M(m);function M(x){var _;((_=x==null?void 0:x.type)==null?void 0:_.name)==="ElTableColumn"&&(x.vParent=o)}};return{columnId:r,realAlign:l,isSubColumn:s,realHeaderAlign:a,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:p,setColumnRenders:m=>{e.renderHeader||m.type!=="selection"&&(m.renderHeader=x=>{o.columnConfig.value.label;const _=t.header;return _?_(x):m.label});let M=m.renderCell;return m.type==="expand"?(m.renderCell=x=>de("div",{class:"cell"},[M(x)]),n.value.renderExpanded=x=>t.default?t.default(x):t.default):(M=M||TT,m.renderCell=x=>{let _=null;if(t.default){const N=t.default(x);_=N.some(O=>O.type!==Ct)?N:M(x)}else _=M(x);const T=c.value&&x.cellIndex===0&&x.column.type!=="selection",F=OT(x,T),$={class:"cell",style:{}};return m.showOverflowTooltip&&($.class=`${$.class} ${y(i.namespace)}-tooltip`,$.style={width:`${(x.column.realWidth||Number(x.column.width))-1}px`}),v(_),de("div",$,[F,_])}),m},getPropsData:(...m)=>m.reduce((M,x)=>(Array.isArray(x)&&x.forEach(_=>{M[_]=e[_]}),M),{}),getColumnElIndex:(m,M)=>Array.prototype.indexOf.call(m,M),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",o.columnConfig.value)}}}var $T={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let RT=1;var Qp=ue({name:"ElTableColumn",components:{ElCheckbox:Wo},props:$T,setup(e,{slots:t}){const n=je(),o=R({}),r=A(()=>{let E=n.parent;for(;E&&!E.tableId;)E=E.parent;return E}),{registerNormalWatchers:s,registerComplexWatchers:l}=AT(r,e),{columnId:a,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:p,getColumnElIndex:v,realAlign:b,updateColumnOrder:g}=MT(e,t,r),C=c.value;a.value=`${C.tableId||C.columnId}_column_${RT++}`,Gs(()=>{i.value=r.value!==C;const E=e.type||"default",m=e.sortable===""?!0:e.sortable,M={...ET[E],id:a.value,type:E,property:e.prop||e.property,align:b,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:m,index:e.index,rawColumnKey:n.vnode.key};let $=p(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);$=Rx(M,$),$=kx(h,f,d)($),o.value=$,s(),l()}),Ze(()=>{var E;const m=c.value,M=i.value?m.vnode.el.children:(E=m.refs.hiddenColumns)==null?void 0:E.children,x=()=>v(M||[],n.vnode.el);o.value.getColumnIndex=x,x()>-1&&r.value.store.commit("insertColumn",o.value,i.value?m.columnConfig.value:null,g)}),vt(()=>{r.value.store.commit("removeColumn",o.value,i.value?C.columnConfig.value:null,g)}),n.columnId=a.value,n.columnConfig=o},render(){var e,t,n;try{const o=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),r=[];if(Array.isArray(o))for(const l of o)((n=l.type)==null?void 0:n.name)==="ElTableColumn"||l.shapeFlag&2?r.push(l):l.type===Ke&&Array.isArray(l.children)&&l.children.forEach(a=>{(a==null?void 0:a.patchFlag)!==1024&&!Me(a==null?void 0:a.children)&&r.push(a)});return de("div",r)}catch{return de("div",[])}}});const PT=Ht(CT,{TableColumn:Qp}),kT=Co(Qp),eh=["success","info","warning","error"],bt=In({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Ge?document.body:void 0}),IT=Xe({customClass:{type:String,default:bt.customClass},center:{type:Boolean,default:bt.center},dangerouslyUseHTMLString:{type:Boolean,default:bt.dangerouslyUseHTMLString},duration:{type:Number,default:bt.duration},icon:{type:vn,default:bt.icon},id:{type:String,default:bt.id},message:{type:Ee([String,Object,Function]),default:bt.message},onClose:{type:Ee(Function),required:!1},showClose:{type:Boolean,default:bt.showClose},type:{type:String,values:eh,default:bt.type},offset:{type:Number,default:bt.offset},zIndex:{type:Number,default:bt.zIndex},grouping:{type:Boolean,default:bt.grouping},repeatNum:{type:Number,default:bt.repeatNum}}),LT={destroy:()=>!0},Kt=yf([]),NT=e=>{const t=Kt.findIndex(r=>r.id===e),n=Kt[t];let o;return t>0&&(o=Kt[t-1]),{current:n,prev:o}},FT=e=>{const{prev:t}=NT(e);return t?t.vm.exposed.bottom.value:0},BT=(e,t)=>Kt.findIndex(o=>o.id===e)>0?20:t,HT=["id"],zT=["innerHTML"],DT=ue({name:"ElMessage"}),WT=ue({...DT,props:IT,emits:LT,setup(e,{expose:t}){const n=e,{Close:o}=zd,r=xe("message"),s=R(),l=R(!1),a=R(0);let i;const u=A(()=>n.type?n.type==="error"?"danger":n.type:"info"),c=A(()=>{const m=n.type;return{[r.bm("icon",m)]:m&&Ps[m]}}),f=A(()=>n.icon||Ps[n.type]||""),d=A(()=>FT(n.id)),h=A(()=>BT(n.id,n.offset)+d.value),p=A(()=>a.value+h.value),v=A(()=>({top:`${h.value}px`,zIndex:n.zIndex}));function b(){n.duration!==0&&({stop:i}=ta(()=>{C()},n.duration))}function g(){i==null||i()}function C(){l.value=!1}function E({code:m}){m===dt.esc&&C()}return Ze(()=>{b(),l.value=!0}),he(()=>n.repeatNum,()=>{g(),b()}),gn(document,"keydown",E),Lo(s,()=>{a.value=s.value.getBoundingClientRect().height}),t({visible:l,bottom:p,close:C}),(m,M)=>(H(),ye(Cn,{name:y(r).b("fade"),onBeforeLeave:m.onClose,onAfterLeave:M[0]||(M[0]=x=>m.$emit("destroy")),persisted:""},{default:fe(()=>[lt(ie("div",{id:m.id,ref_key:"messageRef",ref:s,class:Y([y(r).b(),{[y(r).m(m.type)]:m.type&&!m.icon},y(r).is("center",m.center),y(r).is("closable",m.showClose),m.customClass]),style:et(y(v)),role:"alert",onMouseenter:g,onMouseleave:b},[m.repeatNum>1?(H(),ye(y(WS),{key:0,value:m.repeatNum,type:y(u),class:Y(y(r).e("badge"))},null,8,["value","type","class"])):_e("v-if",!0),y(f)?(H(),ye(y(mt),{key:1,class:Y([y(r).e("icon"),y(c)])},{default:fe(()=>[(H(),ye(pt(y(f))))]),_:1},8,["class"])):_e("v-if",!0),$e(m.$slots,"default",{},()=>[m.dangerouslyUseHTMLString?(H(),se(Ke,{key:1},[_e(" Caution here, message could've been compromised, never use user's input as message "),ie("p",{class:Y(y(r).e("content")),innerHTML:m.message},null,10,zT)],2112)):(H(),se("p",{key:0,class:Y(y(r).e("content"))},tt(m.message),3))]),m.showClose?(H(),ye(y(mt),{key:2,class:Y(y(r).e("closeBtn")),onClick:To(C,["stop"])},{default:fe(()=>[ae(y(o))]),_:1},8,["class","onClick"])):_e("v-if",!0)],46,HT),[[Ut,l.value]])]),_:3},8,["name","onBeforeLeave"]))}});var jT=We(WT,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let KT=1;const th=e=>{const t=!e||Me(e)||on(e)||me(e)?{message:e}:e,n={...bt,...t};if(!n.appendTo)n.appendTo=document.body;else if(Me(n.appendTo)){let o=document.querySelector(n.appendTo);Dn(o)||(o=document.body),n.appendTo=o}return n},UT=e=>{const t=Kt.indexOf(e);if(t===-1)return;Kt.splice(t,1);const{handler:n}=e;n.close()},VT=({appendTo:e,...t},n)=>{const{nextZIndex:o}=cl(),r=`message_${KT++}`,s=t.onClose,l=document.createElement("div"),a={...t,zIndex:o()+t.zIndex,id:r,onClose:()=>{s==null||s(),UT(f)},onDestroy:()=>{xs(null,l)}},i=ae(jT,a,me(a.message)||on(a.message)?{default:me(a.message)?a.message:()=>a.message}:null);i.appContext=n||Ko._context,xs(i,l),e.appendChild(l.firstElementChild);const u=i.component,f={id:r,vnode:i,vm:u,handler:{close:()=>{u.exposed.visible.value=!1}},props:i.component.props};return f},Ko=(e={},t)=>{if(!Ge)return{close:()=>{}};if(ht(ma.max)&&Kt.length>=ma.max)return{close:()=>{}};const n=th(e);if(n.grouping&&Kt.length){const r=Kt.find(({vnode:s})=>{var l;return((l=s.props)==null?void 0:l.message)===n.message});if(r)return r.props.repeatNum+=1,r.props.type=n.type,r.handler}const o=VT(n,t);return Kt.push(o),o.handler};eh.forEach(e=>{Ko[e]=(t={},n)=>{const o=th(t);return Ko({...o,type:e},n)}});function qT(e){for(const t of Kt)(!e||e===t.props.type)&&t.handler.close()}Ko.closeAll=qT;Ko._context=null;const Zn=AC(Ko,"$message"),YT=ue({name:"ElMessageBox",directives:{TrapFocus:h2},components:{ElButton:Op,ElFocusTrap:wp,ElInput:pp,ElOverlay:J2,ElIcon:mt,...zd},inheritAttrs:!1,props:{buttonSize:{type:String,validator:MC},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{t:n}=fi(),o=xe("message-box"),r=R(!1),{nextZIndex:s}=cl(),l=Yt({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:s()}),a=A(()=>{const z=l.type;return{[o.bm("icon",z)]:z&&Ps[z]}}),i=Ls(),u=Ls(),c=No(A(()=>e.buttonSize),{prop:!0,form:!0,formItem:!0}),f=A(()=>l.icon||Ps[l.type]||""),d=A(()=>!!l.message),h=R(),p=R(),v=R(),b=R(),g=R(),C=A(()=>l.confirmButtonClass);he(()=>l.inputValue,async z=>{await Ue(),e.boxType==="prompt"&&z!==null&&F()},{immediate:!0}),he(()=>r.value,z=>{var Q,K;z&&(e.boxType!=="prompt"&&(l.autofocus?v.value=(K=(Q=g.value)==null?void 0:Q.$el)!=null?K:h.value:v.value=h.value),l.zIndex=s()),e.boxType==="prompt"&&(z?Ue().then(()=>{var J;b.value&&b.value.$el&&(l.autofocus?v.value=(J=$())!=null?J:h.value:v.value=h.value)}):(l.editorErrorMessage="",l.validateError=!1))});const E=A(()=>e.draggable);FC(h,p,E),Ze(async()=>{await Ue(),e.closeOnHashChange&&window.addEventListener("hashchange",m)}),vt(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",m)});function m(){r.value&&(r.value=!1,Ue(()=>{l.action&&t("action",l.action)}))}const M=()=>{e.closeOnClickModal&&T(l.distinguishCancelAndClose?"close":"cancel")},x=up(M),_=z=>{if(l.inputType!=="textarea")return z.preventDefault(),T("confirm")},T=z=>{var Q;e.boxType==="prompt"&&z==="confirm"&&!F()||(l.action=z,l.beforeClose?(Q=l.beforeClose)==null||Q.call(l,z,l,m):m())},F=()=>{if(e.boxType==="prompt"){const z=l.inputPattern;if(z&&!z.test(l.inputValue||""))return l.editorErrorMessage=l.inputErrorMessage||n("el.messagebox.error"),l.validateError=!0,!1;const Q=l.inputValidator;if(typeof Q=="function"){const K=Q(l.inputValue);if(K===!1)return l.editorErrorMessage=l.inputErrorMessage||n("el.messagebox.error"),l.validateError=!0,!1;if(typeof K=="string")return l.editorErrorMessage=K,l.validateError=!0,!1}}return l.editorErrorMessage="",l.validateError=!1,!0},$=()=>{const z=b.value.$refs;return z.input||z.textarea},N=()=>{T("close")},O=()=>{e.closeOnPressEscape&&N()};return e.lockScroll&&KC(r),X_(r),{...Ia(l),ns:o,overlayEvent:x,visible:r,hasMessage:d,typeClass:a,contentId:i,inputId:u,btnSize:c,iconComponent:f,confirmButtonClasses:C,rootRef:h,focusStartRef:v,headerRef:p,inputRef:b,confirmRef:g,doClose:m,handleClose:N,onCloseRequested:O,handleWrapperClick:M,handleInputEnter:_,handleAction:T,t:n}}}),GT=["aria-label","aria-describedby"],XT=["aria-label"],ZT=["id"];function JT(e,t,n,o,r,s){const l=ot("el-icon"),a=ot("close"),i=ot("el-input"),u=ot("el-button"),c=ot("el-focus-trap"),f=ot("el-overlay");return H(),ye(Cn,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=d=>e.$emit("vanish")),persisted:""},{default:fe(()=>[lt(ae(f,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:fe(()=>[ie("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:Y(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...d)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...d)),onMousedown:t[9]||(t[9]=(...d)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...d)),onMouseup:t[10]||(t[10]=(...d)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...d))},[ae(c,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:fe(()=>[ie("div",{ref:"rootRef",class:Y([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:et(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=To(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(H(),se("div",{key:0,ref:"headerRef",class:Y(e.ns.e("header"))},[ie("div",{class:Y(e.ns.e("title"))},[e.iconComponent&&e.center?(H(),ye(l,{key:0,class:Y([e.ns.e("status"),e.typeClass])},{default:fe(()=>[(H(),ye(pt(e.iconComponent)))]),_:1},8,["class"])):_e("v-if",!0),ie("span",null,tt(e.title),1)],2),e.showClose?(H(),se("button",{key:0,type:"button",class:Y(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=Gr(To(d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[ae(l,{class:Y(e.ns.e("close"))},{default:fe(()=>[ae(a)]),_:1},8,["class"])],42,XT)):_e("v-if",!0)],2)):_e("v-if",!0),ie("div",{id:e.contentId,class:Y(e.ns.e("content"))},[ie("div",{class:Y(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(H(),ye(l,{key:0,class:Y([e.ns.e("status"),e.typeClass])},{default:fe(()=>[(H(),ye(pt(e.iconComponent)))]),_:1},8,["class"])):_e("v-if",!0),e.hasMessage?(H(),se("div",{key:1,class:Y(e.ns.e("message"))},[$e(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(H(),ye(pt(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(H(),ye(pt(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:fe(()=>[_t(tt(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):_e("v-if",!0)],2),lt(ie("div",{class:Y(e.ns.e("input"))},[ae(i,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=d=>e.inputValue=d),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:Y({invalid:e.validateError}),onKeydown:Gr(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),ie("div",{class:Y(e.ns.e("errormsg")),style:et({visibility:e.editorErrorMessage?"visible":"hidden"})},tt(e.editorErrorMessage),7)],2),[[Ut,e.showInput]])],10,ZT),ie("div",{class:Y(e.ns.e("btns"))},[e.showCancelButton?(H(),ye(u,{key:0,loading:e.cancelButtonLoading,class:Y([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=d=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=Gr(To(d=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:fe(()=>[_t(tt(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):_e("v-if",!0),lt(ae(u,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:Y([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=d=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=Gr(To(d=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:fe(()=>[_t(tt(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[Ut,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,GT)]),_:3},8,["z-index","overlay-class","mask"]),[[Ut,e.visible]])]),_:3})}var QT=We(YT,[["render",JT],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const Ir=new Map,e4=e=>{let t=document.body;return e.appendTo&&(Me(e.appendTo)&&(t=document.querySelector(e.appendTo)),Dn(e.appendTo)&&(t=e.appendTo),Dn(t)||(t=document.body)),t},t4=(e,t,n=null)=>{const o=ae(QT,e,me(e.message)||on(e.message)?{default:me(e.message)?e.message:()=>e.message}:null);return o.appContext=n,xs(o,t),e4(e).appendChild(t.firstElementChild),o.component},n4=()=>document.createElement("div"),o4=(e,t)=>{const n=n4();e.onVanish=()=>{xs(null,n),Ir.delete(r)},e.onAction=s=>{const l=Ir.get(r);let a;e.showInput?a={value:r.inputValue,action:s}:a=s,e.callback?e.callback(a,o.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?l.reject("close"):l.reject("cancel"):l.resolve(a)};const o=t4(e,n,t),r=o.proxy;for(const s in e)Oe(e,s)&&!Oe(r.$props,s)&&(r[s]=e[s]);return r.visible=!0,r};function er(e,t=null){if(!Ge)return Promise.reject();let n;return Me(e)||on(e)?e={message:e}:n=e.callback,new Promise((o,r)=>{const s=o4(e,t??er._context);Ir.set(s,{options:e,callback:n,resolve:o,reject:r})})}const r4=["alert","confirm","prompt"],s4={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};r4.forEach(e=>{er[e]=l4(e)});function l4(e){return(t,n,o,r)=>{let s="";return Re(n)?(o=n,s=""):$r(n)?s="":s=n,er(Object.assign({title:s,message:t,type:"",...s4[e]},o,{boxType:e}),r)}}er.close=()=>{Ir.forEach((e,t)=>{t.doClose()}),Ir.clear()};er._context=null;const Rn=er;Rn.install=e=>{Rn._context=e._context,e.config.globalProperties.$msgbox=Rn,e.config.globalProperties.$messageBox=Rn,e.config.globalProperties.$alert=Rn.alert,e.config.globalProperties.$confirm=Rn.confirm,e.config.globalProperties.$prompt=Rn.prompt};const a4=Rn,i4={id:"app"},u4={class:"grid-content header-color"},c4=ie("a",{class:"brand",href:"#"},"frp client",-1),f4={id:"content"},d4=ie("footer",null,null,-1),p4=ue({__name:"App",setup(e){const t=n=>{n==""&&window.open("https://github.com/fatedier/frp")};return(n,o)=>{const r=xi,s=bx,l=yx,a=zp,i=ot("router-view");return H(),se("div",i4,[ie("header",u4,[ae(r,null,{default:fe(()=>[c4]),_:1})]),ie("section",null,[ae(r,null,{default:fe(()=>[ae(a,{id:"side-nav",xs:24,md:4},{default:fe(()=>[ae(l,{"default-active":"1",mode:"vertical",theme:"light",router:"false",onSelect:t},{default:fe(()=>[ae(s,{index:"/"},{default:fe(()=>[_t("Overview")]),_:1}),ae(s,{index:"/configure"},{default:fe(()=>[_t("Configure")]),_:1}),ae(s,{index:""},{default:fe(()=>[_t("Help")]),_:1})]),_:1})]),_:1}),ae(a,{xs:24,md:20},{default:fe(()=>[ie("div",f4,[ae(i)])]),_:1})]),_:1})]),d4])}}});/*! + * vue-router v4.1.6 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */const xo=typeof window<"u";function h4(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const De=Object.assign;function kl(e,t){const n={};for(const o in t){const r=t[o];n[o]=qt(r)?r.map(e):e(r)}return n}const mr=()=>{},qt=Array.isArray,v4=/\/$/,g4=e=>e.replace(v4,"");function Il(e,t,n="/"){let o,r={},s="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(o=t.slice(0,i),s=t.slice(i+1,a>-1?a:t.length),r=e(s)),a>-1&&(o=o||t.slice(0,a),l=t.slice(a,t.length)),o=w4(o??t,n),{fullPath:o+(s&&"?")+s+l,path:o,query:r,hash:l}}function m4(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Fc(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function y4(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&Uo(t.matched[o],n.matched[r])&&nh(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Uo(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function nh(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!b4(e[n],t[n]))return!1;return!0}function b4(e,t){return qt(e)?Bc(e,t):qt(t)?Bc(t,e):e===t}function Bc(e,t){return qt(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function w4(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/");let r=n.length-1,s,l;for(s=0;s1&&r--;else break;return n.slice(0,r).join("/")+"/"+o.slice(s-(s===o.length?1:0)).join("/")}var Lr;(function(e){e.pop="pop",e.push="push"})(Lr||(Lr={}));var yr;(function(e){e.back="back",e.forward="forward",e.unknown=""})(yr||(yr={}));function C4(e){if(!e)if(xo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),g4(e)}const _4=/^[^#]+#/;function E4(e,t){return e.replace(_4,"#")+t}function S4(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const dl=()=>({left:window.pageXOffset,top:window.pageYOffset});function x4(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=S4(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Hc(e,t){return(history.state?history.state.position-t:-1)+e}const wa=new Map;function T4(e,t){wa.set(e,t)}function O4(e){const t=wa.get(e);return wa.delete(e),t}let A4=()=>location.protocol+"//"+location.host;function oh(e,t){const{pathname:n,search:o,hash:r}=t,s=e.indexOf("#");if(s>-1){let a=r.includes(e.slice(s))?e.slice(s).length:1,i=r.slice(a);return i[0]!=="/"&&(i="/"+i),Fc(i,"")}return Fc(n,e)+o+r}function M4(e,t,n,o){let r=[],s=[],l=null;const a=({state:d})=>{const h=oh(e,location),p=n.value,v=t.value;let b=0;if(d){if(n.value=h,t.value=d,l&&l===p){l=null;return}b=v?d.position-v.position:0}else o(h);r.forEach(g=>{g(n.value,p,{delta:b,type:Lr.pop,direction:b?b>0?yr.forward:yr.back:yr.unknown})})};function i(){l=n.value}function u(d){r.push(d);const h=()=>{const p=r.indexOf(d);p>-1&&r.splice(p,1)};return s.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(De({},d.state,{scroll:dl()}),"")}function f(){for(const d of s)d();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",c),{pauseListeners:i,listen:u,destroy:f}}function zc(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?dl():null}}function $4(e){const{history:t,location:n}=window,o={value:oh(e,n)},r={value:t.state};r.value||s(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(i,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:A4()+e+i;try{t[c?"replaceState":"pushState"](u,"",d),r.value=u}catch(h){console.error(h),n[c?"replace":"assign"](d)}}function l(i,u){const c=De({},t.state,zc(r.value.back,i,r.value.forward,!0),u,{position:r.value.position});s(i,c,!0),o.value=i}function a(i,u){const c=De({},r.value,t.state,{forward:i,scroll:dl()});s(c.current,c,!0);const f=De({},zc(o.value,i,null),{position:c.position+1},u);s(i,f,!1),o.value=i}return{location:o,state:r,push:a,replace:l}}function R4(e){e=C4(e);const t=$4(e),n=M4(e,t.state,t.location,t.replace);function o(s,l=!0){l||n.pauseListeners(),history.go(s)}const r=De({location:"",base:e,go:o,createHref:E4.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function P4(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),R4(e)}function k4(e){return typeof e=="string"||e&&typeof e=="object"}function rh(e){return typeof e=="string"||typeof e=="symbol"}const An={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},sh=Symbol("");var Dc;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Dc||(Dc={}));function Vo(e,t){return De(new Error,{type:e,[sh]:!0},t)}function fn(e,t){return e instanceof Error&&sh in e&&(t==null||!!(e.type&t))}const Wc="[^/]+?",I4={sensitive:!1,strict:!1,start:!0,end:!0},L4=/[.+*?^${}()[\]/\\]/g;function N4(e,t){const n=De({},I4,t),o=[];let r=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(r+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function B4(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const H4={type:0,value:""},z4=/[a-zA-Z0-9_]/;function D4(e){if(!e)return[[]];if(e==="/")return[[H4]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${u}": ${h}`)}let n=0,o=n;const r=[];let s;function l(){s&&r.push(s),s=[]}let a=0,i,u="",c="";function f(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=i}for(;a{l(C)}:mr}function l(c){if(rh(c)){const f=o.get(c);f&&(o.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(l),f.alias.forEach(l))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&o.delete(c.record.name),c.children.forEach(l),c.alias.forEach(l))}}function a(){return n}function i(c){let f=0;for(;f=0&&(c.record.path!==n[f].record.path||!lh(c,n[f]));)f++;n.splice(f,0,c),c.record.name&&!Uc(c)&&o.set(c.record.name,c)}function u(c,f){let d,h={},p,v;if("name"in c&&c.name){if(d=o.get(c.name),!d)throw Vo(1,{location:c});v=d.record.name,h=De(Kc(f.params,d.keys.filter(C=>!C.optional).map(C=>C.name)),c.params&&Kc(c.params,d.keys.map(C=>C.name))),p=d.stringify(h)}else if("path"in c)p=c.path,d=n.find(C=>C.re.test(p)),d&&(h=d.parse(p),v=d.record.name);else{if(d=f.name?o.get(f.name):n.find(C=>C.re.test(f.path)),!d)throw Vo(1,{location:c,currentLocation:f});v=d.record.name,h=De({},f.params,c.params),p=d.stringify(h)}const b=[];let g=d;for(;g;)b.unshift(g.record),g=g.parent;return{name:v,path:p,params:h,matched:b,meta:V4(b)}}return e.forEach(c=>s(c)),{addRoute:s,resolve:u,removeRoute:l,getRoutes:a,getRecordMatcher:r}}function Kc(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function K4(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:U4(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function U4(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="boolean"?n:n[o];return t}function Uc(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function V4(e){return e.reduce((t,n)=>De(t,n.meta),{})}function Vc(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function lh(e,t){return t.children.some(n=>n===e||lh(e,n))}const ah=/#/g,q4=/&/g,Y4=/\//g,G4=/=/g,X4=/\?/g,ih=/\+/g,Z4=/%5B/g,J4=/%5D/g,uh=/%5E/g,Q4=/%60/g,ch=/%7B/g,eO=/%7C/g,fh=/%7D/g,tO=/%20/g;function $i(e){return encodeURI(""+e).replace(eO,"|").replace(Z4,"[").replace(J4,"]")}function nO(e){return $i(e).replace(ch,"{").replace(fh,"}").replace(uh,"^")}function Ca(e){return $i(e).replace(ih,"%2B").replace(tO,"+").replace(ah,"%23").replace(q4,"%26").replace(Q4,"`").replace(ch,"{").replace(fh,"}").replace(uh,"^")}function oO(e){return Ca(e).replace(G4,"%3D")}function rO(e){return $i(e).replace(ah,"%23").replace(X4,"%3F")}function sO(e){return e==null?"":rO(e).replace(Y4,"%2F")}function Fs(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function lO(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ca(s)):[o&&Ca(o)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function aO(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=qt(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const iO=Symbol(""),Yc=Symbol(""),Ri=Symbol(""),dh=Symbol(""),_a=Symbol("");function sr(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function kn(e,t,n,o,r){const s=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((l,a)=>{const i=f=>{f===!1?a(Vo(4,{from:n,to:t})):f instanceof Error?a(f):k4(f)?a(Vo(2,{from:t,to:f})):(s&&o.enterCallbacks[r]===s&&typeof f=="function"&&s.push(f),l())},u=e.call(o&&o.instances[r],t,n,i);let c=Promise.resolve(u);e.length<3&&(c=c.then(i)),c.catch(f=>a(f))})}function Ll(e,t,n,o){const r=[];for(const s of e)for(const l in s.components){let a=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(uO(a)){const u=(a.__vccOpts||a)[t];u&&r.push(kn(u,n,o,s,l))}else{let i=a();r.push(()=>i.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${s.path}"`));const c=h4(u)?u.default:u;s.components[l]=c;const d=(c.__vccOpts||c)[t];return d&&kn(d,n,o,s,l)()}))}}return r}function uO(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Gc(e){const t=Se(Ri),n=Se(dh),o=A(()=>t.resolve(y(e.to))),r=A(()=>{const{matched:i}=o.value,{length:u}=i,c=i[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(Uo.bind(null,c));if(d>-1)return d;const h=Xc(i[u-2]);return u>1&&Xc(c)===h&&f[f.length-1].path!==h?f.findIndex(Uo.bind(null,i[u-2])):d}),s=A(()=>r.value>-1&&pO(n.params,o.value.params)),l=A(()=>r.value>-1&&r.value===n.matched.length-1&&nh(n.params,o.value.params));function a(i={}){return dO(i)?t[y(e.replace)?"replace":"push"](y(e.to)).catch(mr):Promise.resolve()}return{route:o,href:A(()=>o.value.href),isActive:s,isExactActive:l,navigate:a}}const cO=ue({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Gc,setup(e,{slots:t}){const n=Yt(Gc(e)),{options:o}=Se(Ri),r=A(()=>({[Zc(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[Zc(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:de("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},s)}}}),fO=cO;function dO(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function pO(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!qt(r)||r.length!==o.length||o.some((s,l)=>s!==r[l]))return!1}return!0}function Xc(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Zc=(e,t,n)=>e??t??n,hO=ue({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=Se(_a),r=A(()=>e.route||o.value),s=Se(Yc,0),l=A(()=>{let u=y(s);const{matched:c}=r.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=A(()=>r.value.matched[l.value]);st(Yc,A(()=>l.value+1)),st(iO,a),st(_a,r);const i=R();return he(()=>[i.value,a.value,e.name],([u,c,f],[d,h,p])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!Uo(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(v=>v(u))},{flush:"post"}),()=>{const u=r.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return Jc(n.default,{Component:d,route:u});const h=f.props[c],p=h?h===!0?u.params:typeof h=="function"?h(u):h:null,b=de(d,De({},p,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[c]=null)},ref:i}));return Jc(n.default,{Component:b,route:u})||b}}});function Jc(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const vO=hO;function gO(e){const t=j4(e.routes,e),n=e.parseQuery||lO,o=e.stringifyQuery||qc,r=e.history,s=sr(),l=sr(),a=sr(),i=ar(An);let u=An;xo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=kl.bind(null,I=>""+I),f=kl.bind(null,sO),d=kl.bind(null,Fs);function h(I,V){let U,ee;return rh(I)?(U=t.getRecordMatcher(I),ee=V):ee=I,t.addRoute(ee,U)}function p(I){const V=t.getRecordMatcher(I);V&&t.removeRoute(V)}function v(){return t.getRoutes().map(I=>I.record)}function b(I){return!!t.getRecordMatcher(I)}function g(I,V){if(V=De({},V||i.value),typeof I=="string"){const w=Il(n,I,V.path),S=t.resolve({path:w.path},V),L=r.createHref(w.fullPath);return De(w,S,{params:d(S.params),hash:Fs(w.hash),redirectedFrom:void 0,href:L})}let U;if("path"in I)U=De({},I,{path:Il(n,I.path,V.path).path});else{const w=De({},I.params);for(const S in w)w[S]==null&&delete w[S];U=De({},I,{params:f(I.params)}),V.params=f(V.params)}const ee=t.resolve(U,V),be=I.hash||"";ee.params=c(d(ee.params));const Ne=m4(o,De({},I,{hash:nO(be),path:ee.path})),we=r.createHref(Ne);return De({fullPath:Ne,hash:be,query:o===qc?aO(I.query):I.query||{}},ee,{redirectedFrom:void 0,href:we})}function C(I){return typeof I=="string"?Il(n,I,i.value.path):De({},I)}function E(I,V){if(u!==I)return Vo(8,{from:V,to:I})}function m(I){return _(I)}function M(I){return m(De(C(I),{replace:!0}))}function x(I){const V=I.matched[I.matched.length-1];if(V&&V.redirect){const{redirect:U}=V;let ee=typeof U=="function"?U(I):U;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=C(ee):{path:ee},ee.params={}),De({query:I.query,hash:I.hash,params:"path"in ee?{}:I.params},ee)}}function _(I,V){const U=u=g(I),ee=i.value,be=I.state,Ne=I.force,we=I.replace===!0,w=x(U);if(w)return _(De(C(w),{state:typeof w=="object"?De({},be,w.state):be,force:Ne,replace:we}),V||U);const S=U;S.redirectedFrom=V;let L;return!Ne&&y4(o,ee,U)&&(L=Vo(16,{to:S,from:ee}),te(ee,ee,!0,!1)),(L?Promise.resolve(L):F(S,ee)).catch(B=>fn(B)?fn(B,2)?B:P(B):oe(B,S,ee)).then(B=>{if(B){if(fn(B,2))return _(De({replace:we},C(B.to),{state:typeof B.to=="object"?De({},be,B.to.state):be,force:Ne}),V||S)}else B=N(S,ee,!0,we,be);return $(S,ee,B),B})}function T(I,V){const U=E(I,V);return U?Promise.reject(U):Promise.resolve()}function F(I,V){let U;const[ee,be,Ne]=mO(I,V);U=Ll(ee.reverse(),"beforeRouteLeave",I,V);for(const w of ee)w.leaveGuards.forEach(S=>{U.push(kn(S,I,V))});const we=T.bind(null,I,V);return U.push(we),Eo(U).then(()=>{U=[];for(const w of s.list())U.push(kn(w,I,V));return U.push(we),Eo(U)}).then(()=>{U=Ll(be,"beforeRouteUpdate",I,V);for(const w of be)w.updateGuards.forEach(S=>{U.push(kn(S,I,V))});return U.push(we),Eo(U)}).then(()=>{U=[];for(const w of I.matched)if(w.beforeEnter&&!V.matched.includes(w))if(qt(w.beforeEnter))for(const S of w.beforeEnter)U.push(kn(S,I,V));else U.push(kn(w.beforeEnter,I,V));return U.push(we),Eo(U)}).then(()=>(I.matched.forEach(w=>w.enterCallbacks={}),U=Ll(Ne,"beforeRouteEnter",I,V),U.push(we),Eo(U))).then(()=>{U=[];for(const w of l.list())U.push(kn(w,I,V));return U.push(we),Eo(U)}).catch(w=>fn(w,8)?w:Promise.reject(w))}function $(I,V,U){for(const ee of a.list())ee(I,V,U)}function N(I,V,U,ee,be){const Ne=E(I,V);if(Ne)return Ne;const we=V===An,w=xo?history.state:{};U&&(ee||we?r.replace(I.fullPath,De({scroll:we&&w&&w.scroll},be)):r.push(I.fullPath,be)),i.value=I,te(I,V,U,we),P()}let O;function z(){O||(O=r.listen((I,V,U)=>{if(!Le.listening)return;const ee=g(I),be=x(ee);if(be){_(De(be,{replace:!0}),ee).catch(mr);return}u=ee;const Ne=i.value;xo&&T4(Hc(Ne.fullPath,U.delta),dl()),F(ee,Ne).catch(we=>fn(we,12)?we:fn(we,2)?(_(we.to,ee).then(w=>{fn(w,20)&&!U.delta&&U.type===Lr.pop&&r.go(-1,!1)}).catch(mr),Promise.reject()):(U.delta&&r.go(-U.delta,!1),oe(we,ee,Ne))).then(we=>{we=we||N(ee,Ne,!1),we&&(U.delta&&!fn(we,8)?r.go(-U.delta,!1):U.type===Lr.pop&&fn(we,20)&&r.go(-1,!1)),$(ee,Ne,we)}).catch(mr)}))}let Q=sr(),K=sr(),J;function oe(I,V,U){P(I);const ee=K.list();return ee.length?ee.forEach(be=>be(I,V,U)):console.error(I),Promise.reject(I)}function W(){return J&&i.value!==An?Promise.resolve():new Promise((I,V)=>{Q.add([I,V])})}function P(I){return J||(J=!I,z(),Q.list().forEach(([V,U])=>I?U(I):V()),Q.reset()),I}function te(I,V,U,ee){const{scrollBehavior:be}=e;if(!xo||!be)return Promise.resolve();const Ne=!U&&O4(Hc(I.fullPath,0))||(ee||!U)&&history.state&&history.state.scroll||null;return Ue().then(()=>be(I,V,Ne)).then(we=>we&&x4(we)).catch(we=>oe(we,I,V))}const pe=I=>r.go(I);let Ce;const Pe=new Set,Le={currentRoute:i,listening:!0,addRoute:h,removeRoute:p,hasRoute:b,getRoutes:v,resolve:g,options:e,push:m,replace:M,go:pe,back:()=>pe(-1),forward:()=>pe(1),beforeEach:s.add,beforeResolve:l.add,afterEach:a.add,onError:K.add,isReady:W,install(I){const V=this;I.component("RouterLink",fO),I.component("RouterView",vO),I.config.globalProperties.$router=V,Object.defineProperty(I.config.globalProperties,"$route",{enumerable:!0,get:()=>y(i)}),xo&&!Ce&&i.value===An&&(Ce=!0,m(r.location).catch(be=>{}));const U={};for(const be in An)U[be]=A(()=>i.value[be]);I.provide(Ri,V),I.provide(dh,Yt(U)),I.provide(_a,i);const ee=I.unmount;Pe.add(I),I.unmount=function(){Pe.delete(I),Pe.size<1&&(u=An,O&&O(),O=null,i.value=An,Ce=!1,J=!1),ee()}}};return Le}function Eo(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function mO(e,t){const n=[],o=[],r=[],s=Math.max(t.matched.length,e.matched.length);for(let l=0;lUo(u,a))?o.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(u=>Uo(u,i))||r.push(i))}return[n,o,r]}const yO=ue({__name:"Overview",setup(e){let t=R([]);return(()=>{fetch("/api/status",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=new Array;for(let r of o.tcp)t.value.push(r);for(let r of o.udp)t.value.push(r);for(let r of o.http)t.value.push(r);for(let r of o.https)t.value.push(r);for(let r of o.stcp)t.value.push(r);for(let r of o.sudp)t.value.push(r);for(let r of o.xtcp)t.value.push(r)}).catch(()=>{Zn({showClose:!0,message:"Get status info from frpc failed!",type:"warning"})})})(),(o,r)=>{const s=kT,l=PT,a=zp,i=xi;return H(),se("div",null,[ae(i,null,{default:fe(()=>[ae(a,{md:24},{default:fe(()=>[ie("div",null,[ae(l,{data:y(t),stripe:"",style:{width:"100%"},"default-sort":{prop:"type",order:"ascending"}},{default:fe(()=>[ae(s,{prop:"name",label:"name"}),ae(s,{prop:"type",label:"type",width:"150"}),ae(s,{prop:"local_addr",label:"local address",width:"200"}),ae(s,{prop:"plugin",label:"plugin",width:"200"}),ae(s,{prop:"remote_addr",label:"remote address"}),ae(s,{prop:"status",label:"status",width:"150"}),ae(s,{prop:"err",label:"info"})]),_:1},8,["data"])])]),_:1})]),_:1})])}}}),bO=ue({__name:"ClientConfigure",setup(e){let t=R("");const n=()=>{fetch("/api/config",{credentials:"include"}).then(r=>r.text()).then(r=>{t.value=r}).catch(()=>{Zn({showClose:!0,message:"Get configure content from frpc failed!",type:"warning"})})},o=()=>{a4.confirm("This operation will upload your frpc configure file content and hot reload it, do you want to continue?","Notice",{confirmButtonText:"Yes",cancelButtonText:"No",type:"warning"}).then(()=>{if(t.value==""){Zn({message:"Configure content can not be empty!",type:"warning"});return}fetch("/api/config",{credentials:"include",method:"PUT",body:t.value}).then(()=>{fetch("/api/reload",{credentials:"include"}).then(()=>{Zn({type:"success",message:"Success"})}).catch(r=>{Zn({showClose:!0,message:"Reload frpc configure file error, "+r,type:"warning"})})}).catch(()=>{Zn({showClose:!0,message:"Put config to frpc and hot reload failed!",type:"warning"})})}).catch(()=>{Zn({message:"Canceled",type:"info"})})};return n(),(r,s)=>{const l=Op,a=xi,i=pp;return H(),se("div",null,[ae(a,{id:"head"},{default:fe(()=>[ae(l,{type:"primary",onClick:n},{default:fe(()=>[_t("Refresh")]),_:1}),ae(l,{type:"primary",onClick:o},{default:fe(()=>[_t("Upload")]),_:1})]),_:1}),ae(i,{type:"textarea",autosize:"",modelValue:y(t),"onUpdate:modelValue":s[0]||(s[0]=u=>Ve(t)?t.value=u:t=u),placeholder:"frpc configrue file, can not be empty..."},null,8,["modelValue"])])}}}),wO=gO({history:P4(),routes:[{path:"/",name:"Overview",component:yO},{path:"/configure",name:"ClientConfigure",component:bO}]}),ph=Vg(p4);ph.use(wO);ph.mount("#app")});export default CO(); diff --git a/assets/frpc/static/index.html b/assets/frpc/static/index.html index 0eb31dcd1ce..21e179efbc1 100644 --- a/assets/frpc/static/index.html +++ b/assets/frpc/static/index.html @@ -1 +1,16 @@ - frp client admin UI
\ No newline at end of file + + + + + + frp client admin UI + + + + + +
+ + + + diff --git a/assets/frpc/static/manifest.js b/assets/frpc/static/manifest.js deleted file mode 100644 index 7a6e69a30b9..00000000000 --- a/assets/frpc/static/manifest.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,u){for(var i,a,f,l=0,s=[];l=i)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}),a=t[r];r=0&&y.splice(t,1)}function a(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var o=d();o&&(e.attrs.nonce=o)}return c(t,e.attrs),i(e,t),t}function s(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",c(t,e.attrs),i(e,t),t}function c(e,t){Object.keys(t).forEach(function(o){e.setAttribute(o,t[o])})}function d(){return o.nc}function u(e,t){var o,r,n,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var c=x++;o=v||(v=a(t)),r=p.bind(null,o,c,!1),n=p.bind(null,o,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=s(t),r=h.bind(null,o,t),n=function(){l(o),o.href&&URL.revokeObjectURL(o.href)}):(o=a(t),r=f.bind(null,o),n=function(){l(o)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else n()}}function p(e,t,o,r){var n=o?"":r.css;if(e.styleSheet)e.styleSheet.cssText=k(t,n);else{var i=document.createTextNode(n),l=e.childNodes;l[t]&&e.removeChild(l[t]),l.length?e.insertBefore(i,l[t]):e.appendChild(i)}}function f(e,t){var o=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}function h(e,t,o){var r=o.css,n=o.sourceMap,i=void 0===t.convertToAbsoluteUrls&&n;(t.convertToAbsoluteUrls||i)&&(r=w(r)),n&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */");var l=new Blob([r],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(l),a&&URL.revokeObjectURL(a)}var b={},g=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}}(function(){return window&&document&&document.all&&!window.atob}),m=function(e,t){return t?t.querySelector(e):document.querySelector(e)},_=function(e){var t={};return function(e,o){if("function"==typeof e)return e();if(void 0===t[e]){var r=m.call(this,e,o);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),v=null,x=0,y=[],w=o(197);e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");t=t||{},t.attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=g()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var o=n(e,t);return r(o,t),function(e){for(var i=[],l=0;l=0&&Math.floor(t)===t&&isFinite(e)}function p(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function f(e){return null==e?"":Array.isArray(e)||c(e)&&e.toString===Ci?JSON.stringify(e,null,2):String(e)}function h(e){var t=parseFloat(e);return isNaN(t)?e:t}function b(e,t){for(var o=Object.create(null),r=e.split(","),n=0;n-1)return e.splice(o,1)}}function m(e,t){return zi.call(e,t)}function _(e){var t=Object.create(null);return function(o){return t[o]||(t[o]=e(o))}}function v(e,t){function o(o){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,o):e.call(t)}return o._length=e.length,o}function x(e,t){return e.bind(t)}function y(e,t){t=t||0;for(var o=e.length-t,r=new Array(o);o--;)r[o]=e[o+t];return r}function w(e,t){for(var o in t)e[o]=t[o];return e}function k(e){for(var t={},o=0;o-1)if(i&&!m(n,"default"))l=!1;else if(""===l||l===ji(e)){var s=ne(String,n.type);(s<0||a0&&(l=ye(l,(t||"")+"_"+o),xe(l[0])&&xe(c)&&(d[s]=M(c.text+l[0].text),l.shift()),d.push.apply(d,l)):a(l)?xe(c)?d[s]=M(c.text+l):""!==l&&d.push(M(l)):xe(l)&&xe(c)?d[s]=M(c.text+l.text):(i(e._isVList)&&n(l.tag)&&r(l.key)&&n(t)&&(l.key="__vlist"+t+"_"+o+"__"),d.push(l)));return d}function we(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}function ke(e){var t=Fe(e.$options.inject,e);t&&(I(!1),Object.keys(t).forEach(function(o){R(e,o,t[o])}),I(!0))}function Fe(e,t){if(e){for(var o=Object.create(null),r=ll?Reflect.ownKeys(e):Object.keys(e),n=0;n0,i=e?!!e.$stable:!n,l=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(i&&o&&o!==Fi&&l===o.$key&&!n&&!o.$hasNormal)return o;r={};for(var a in e)e[a]&&"$"!==a[0]&&(r[a]=ze(t,a,e[a]))}else r={};for(var s in t)s in r||(r[s]=Oe(t,s));return e&&Object.isExtensible(e)&&(e._normalized=r),O(r,"$stable",i),O(r,"$key",l),O(r,"$hasNormal",n),r}function ze(e,t,o){var r=function(){var e=arguments.length?o.apply(null,arguments):o({});return e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:ve(e),e&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return o.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function Oe(e,t){return function(){return e[t]}}function Ae(e,t){var o,r,i,l,a;if(Array.isArray(e)||"string"==typeof e)for(o=new Array(e.length),r=0,i=e.length;rWl&&Nl[o].id>e.id;)o--;Nl.splice(o+1,0,e)}else Nl.push(e);Bl||(Bl=!0,de(Ft))}}function Ot(e,t,o){Xl.get=function(){return this[t][o]},Xl.set=function(e){this[t][o]=e},Object.defineProperty(e,o,Xl)}function At(e){e._watchers=[];var t=e.$options;t.props&&$t(e,t.props),t.methods&&Nt(e,t.methods),t.data?Tt(e):D(e._data={},!0),t.computed&&Mt(e,t.computed),t.watch&&t.watch!==Qi&&Dt(e,t.watch)}function $t(e,t){var o=e.$options.propsData||{},r=e._props={},n=e.$options._propKeys=[];!e.$parent||I(!1);for(var i in t)!function(i){n.push(i);var l=ee(i,t,o,e);R(r,i,l),i in e||Ot(e,"_props",i)}(i);I(!0)}function Tt(e){var t=e.$options.data;t=e._data="function"==typeof t?jt(t,e):t||{},c(t)||(t={});for(var o=Object.keys(t),r=e.$options.props,n=(e.$options.methods,o.length);n--;){var i=o[n];r&&m(r,i)||z(i)||Ot(e,"_data",i)}D(t,!0)}function jt(e,t){T();try{return e.call(t,t)}catch(e){return ie(e,t,"data()"),{}}finally{j()}}function Mt(e,t){var o=e._computedWatchers=Object.create(null),r=nl();for(var n in t){var i=t[n],l="function"==typeof i?i:i.get;r||(o[n]=new Kl(e,l||F,F,Gl)),n in e||Lt(e,n,i)}}function Lt(e,t,o){var r=!nl();"function"==typeof o?(Xl.get=r?It(t):Pt(o),Xl.set=F):(Xl.get=o.get?r&&!1!==o.cache?It(t):Pt(o.get):F,Xl.set=o.set||F),Object.defineProperty(e,t,Xl)}function It(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),cl.target&&t.depend(),t.value}}function Pt(e){return function(){return e.call(this,this)}}function Nt(e,t){e.$options.props;for(var o in t)e[o]="function"!=typeof t[o]?F:Mi(t[o],e)}function Dt(e,t){for(var o in t){var r=t[o];if(Array.isArray(r))for(var n=0;n-1)return this;var o=y(arguments,1);return o.unshift(this),"function"==typeof e.install?e.install.apply(e,o):"function"==typeof e&&e.apply(null,o),t.push(e),this}}function Vt(e){e.mixin=function(e){return this.options=Z(this.options,e),this}}function Yt(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var o=this,r=o.cid,n=e._Ctor||(e._Ctor={});if(n[r])return n[r];var i=e.name||o.options.name,l=function(e){this._init(e)};return l.prototype=Object.create(o.prototype),l.prototype.constructor=l,l.cid=t++,l.options=Z(o.options,e),l.super=o,l.options.props&&Kt(l),l.options.computed&&Xt(l),l.extend=o.extend,l.mixin=o.mixin,l.use=o.use,Ni.forEach(function(e){l[e]=o[e]}),i&&(l.options.components[i]=l),l.superOptions=o.options,l.extendOptions=e,l.sealedOptions=w({},l.options),n[r]=l,l}}function Kt(e){var t=e.options.props;for(var o in t)Ot(e.prototype,"_props",o)}function Xt(e){var t=e.options.computed;for(var o in t)Lt(e.prototype,o,t[o])}function Gt(e){Ni.forEach(function(t){e[t]=function(e,o){return o?("component"===t&&c(o)&&(o.name=o.name||e,o=this.options._base.extend(o)),"directive"===t&&"function"==typeof o&&(o={bind:o,update:o}),this.options[t+"s"][e]=o,o):this.options[t+"s"][e]}})}function Jt(e){return e&&(e.Ctor.options.name||e.tag)}function Zt(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function Qt(e,t){var o=e.cache,r=e.keys,n=e._vnode;for(var i in o){var l=o[i];if(l){var a=Jt(l.componentOptions);a&&!t(a)&&eo(o,i,r,n)}}}function eo(e,t,o,r){var n=e[t];!n||r&&n.tag===r.tag||n.componentInstance.$destroy(),e[t]=null,g(o,t)}function to(e){for(var t=e.data,o=e,r=e;n(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=oo(r.data,t));for(;n(o=o.parent);)o&&o.data&&(t=oo(t,o.data));return ro(t.staticClass,t.class)}function oo(e,t){return{staticClass:no(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function ro(e,t){return n(e)||n(t)?no(e,io(t)):""}function no(e,t){return e?t?e+" "+t:e:t||""}function io(e){return Array.isArray(e)?lo(e):s(e)?ao(e):"string"==typeof e?e:""}function lo(e){for(var t,o="",r=0,i=e.length;r-1?Sa[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Sa[e]=/HTMLUnknownElement/.test(t.toString())}function uo(e){if("string"==typeof e){return document.querySelector(e)||document.createElement("div")}return e}function po(e,t){var o=document.createElement(e);return"select"!==e?o:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&o.setAttribute("multiple","multiple"),o)}function fo(e,t){return document.createElementNS(wa[e],t)}function ho(e){return document.createTextNode(e)}function bo(e){return document.createComment(e)}function go(e,t,o){e.insertBefore(t,o)}function mo(e,t){e.removeChild(t)}function _o(e,t){e.appendChild(t)}function vo(e){return e.parentNode}function xo(e){return e.nextSibling}function yo(e){return e.tagName}function wo(e,t){e.textContent=t}function ko(e,t){e.setAttribute(t,"")}function Fo(e,t){var o=e.data.ref;if(n(o)){var r=e.context,i=e.componentInstance||e.elm,l=r.$refs;t?Array.isArray(l[o])?g(l[o],i):l[o]===i&&(l[o]=void 0):e.data.refInFor?Array.isArray(l[o])?l[o].indexOf(i)<0&&l[o].push(i):l[o]=[i]:l[o]=i}}function Co(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&n(e.data)===n(t.data)&&Eo(e,t)||i(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&r(t.asyncFactory.error))}function Eo(e,t){if("input"!==e.tag)return!0;var o,r=n(o=e.data)&&n(o=o.attrs)&&o.type,i=n(o=t.data)&&n(o=o.attrs)&&o.type;return r===i||za(r)&&za(i)}function So(e,t,o){var r,i,l={};for(r=t;r<=o;++r)i=e[r].key,n(i)&&(l[i]=r);return l}function zo(e,t){(e.data.directives||t.data.directives)&&Oo(e,t)}function Oo(e,t){var o,r,n,i=e===$a,l=t===$a,a=Ao(e.data.directives,e.context),s=Ao(t.data.directives,t.context),c=[],d=[];for(o in s)r=a[o],n=s[o],r?(n.oldValue=r.value,n.oldArg=r.arg,To(n,"update",t,e),n.def&&n.def.componentUpdated&&d.push(n)):(To(n,"bind",t,e),n.def&&n.def.inserted&&c.push(n));if(c.length){var u=function(){for(var o=0;o-1?Lo(e,t,o):ma(t)?ya(o)?e.removeAttribute(t):(o="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,o)):ha(t)?e.setAttribute(t,ga(t,o)):va(t)?ya(o)?e.removeAttributeNS(_a,xa(t)):e.setAttributeNS(_a,t,o):Lo(e,t,o)}function Lo(e,t,o){if(ya(o))e.removeAttribute(t);else{if(Ki&&!Xi&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==o&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,o)}}function Io(e,t){var o=t.elm,i=t.data,l=e.data;if(!(r(i.staticClass)&&r(i.class)&&(r(l)||r(l.staticClass)&&r(l.class)))){var a=to(t),s=o._transitionClasses;n(s)&&(a=no(a,io(s))),a!==o._prevClass&&(o.setAttribute("class",a),o._prevClass=a)}}function Po(e){function t(){(l||(l=[])).push(e.slice(h,n).trim()),h=n+1}var o,r,n,i,l,a=!1,s=!1,c=!1,d=!1,u=0,p=0,f=0,h=0;for(n=0;n=0&&" "===(g=e.charAt(b));b--);g&&Na.test(g)||(d=!0)}}else void 0===i?(h=n+1,i=e.slice(0,n).trim()):t();if(void 0===i?i=e.slice(0,n).trim():0!==h&&t(),l)for(n=0;n-1?{exp:e.slice(0,na),key:'"'+e.slice(na+1)+'"'}:{exp:e,key:null};for(oa=e,na=ia=la=0;!or();)ra=tr(),rr(ra)?ir(ra):91===ra&&nr(ra);return{exp:e.slice(0,ia),key:e.slice(ia+1,la)}}function tr(){return oa.charCodeAt(++na)}function or(){return na>=ta}function rr(e){return 34===e||39===e}function nr(e){var t=1;for(ia=na;!or();)if(e=tr(),rr(e))ir(e);else if(91===e&&t++,93===e&&t--,0===t){la=na;break}}function ir(e){for(var t=e;!or()&&(e=tr())!==t;);}function lr(e,t,o){aa=o;var r=t.value,n=t.modifiers,i=e.tag,l=e.attrsMap.type;if(e.component)return Zo(e,r,n),!1;if("select"===i)cr(e,r,n);else if("input"===i&&"checkbox"===l)ar(e,r,n);else if("input"===i&&"radio"===l)sr(e,r,n);else if("input"===i||"textarea"===i)dr(e,r,n);else if(!Ri.isReservedTag(i))return Zo(e,r,n),!1;return!0}function ar(e,t,o){var r=o&&o.number,n=Ko(e,"value")||"null",i=Ko(e,"true-value")||"true",l=Ko(e,"false-value")||"false";Bo(e,"checked","Array.isArray("+t+")?_i("+t+","+n+")>-1"+("true"===i?":("+t+")":":_q("+t+","+i+")")),Vo(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+i+"):("+l+");if(Array.isArray($$a)){var $$v="+(r?"_n("+n+")":n)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Qo(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Qo(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Qo(t,"$$c")+"}",null,!0)}function sr(e,t,o){var r=o&&o.number,n=Ko(e,"value")||"null";n=r?"_n("+n+")":n,Bo(e,"checked","_q("+t+","+n+")"),Vo(e,"change",Qo(t,n),null,!0)}function cr(e,t,o){var r=o&&o.number,n='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(r?"_n(val)":"val")+"})",i="var $$selectedVal = "+n+";";i=i+" "+Qo(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Vo(e,"change",i,null,!0)}function dr(e,t,o){var r=e.attrsMap.type,n=o||{},i=n.lazy,l=n.number,a=n.trim,s=!i&&"range"!==r,c=i?"change":"range"===r?Da:"input",d="$event.target.value";a&&(d="$event.target.value.trim()"),l&&(d="_n("+d+")");var u=Qo(t,d);s&&(u="if($event.target.composing)return;"+u),Bo(e,"value","("+t+")"),Vo(e,c,u,null,!0),(a||l)&&Vo(e,"blur","$forceUpdate()")}function ur(e){if(n(e[Da])){var t=Ki?"change":"input";e[t]=[].concat(e[Da],e[t]||[]),delete e[Da]}n(e[Ra])&&(e.change=[].concat(e[Ra],e.change||[]),delete e[Ra])}function pr(e,t,o){var r=sa;return function n(){null!==t.apply(null,arguments)&&hr(e,n,o,r)}}function fr(e,t,o,r){if(Ba){var n=ql,i=t;t=i._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=n||e.timeStamp<=0||e.target.ownerDocument!==document)return i.apply(this,arguments)}}sa.addEventListener(e,t,el?{capture:o,passive:r}:o)}function hr(e,t,o,r){(r||sa).removeEventListener(e,t._wrapper||t,o)}function br(e,t){if(!r(e.data.on)||!r(t.data.on)){var o=t.data.on||{},n=e.data.on||{};sa=t.elm,ur(o),he(o,n,fr,hr,pr,t.context),sa=void 0}}function gr(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var o,i,l=t.elm,a=e.data.domProps||{},s=t.data.domProps||{};n(s.__ob__)&&(s=t.data.domProps=w({},s));for(o in a)o in s||(l[o]="");for(o in s){if(i=s[o],"textContent"===o||"innerHTML"===o){if(t.children&&(t.children.length=0),i===a[o])continue;1===l.childNodes.length&&l.removeChild(l.childNodes[0])}if("value"===o&&"PROGRESS"!==l.tagName){l._value=i;var c=r(i)?"":String(i);mr(l,c)&&(l.value=c)}else if("innerHTML"===o&&Fa(l.tagName)&&r(l.innerHTML)){ca=ca||document.createElement("div"),ca.innerHTML=""+i+"";for(var d=ca.firstChild;l.firstChild;)l.removeChild(l.firstChild);for(;d.firstChild;)l.appendChild(d.firstChild)}else if(i!==a[o])try{l[o]=i}catch(e){}}}}function mr(e,t){return!e.composing&&("OPTION"===e.tagName||_r(e,t)||vr(e,t))}function _r(e,t){var o=!0;try{o=document.activeElement!==e}catch(e){}return o&&e.value!==t}function vr(e,t){var o=e.value,r=e._vModifiers;if(n(r)){if(r.number)return h(o)!==h(t);if(r.trim)return o.trim()!==t.trim()}return o!==t}function xr(e){var t=yr(e.style);return e.staticStyle?w(e.staticStyle,t):t}function yr(e){return Array.isArray(e)?k(e):"string"==typeof e?qa(e):e}function wr(e,t){var o,r={};if(t)for(var n=e;n.componentInstance;)(n=n.componentInstance._vnode)&&n.data&&(o=xr(n.data))&&w(r,o);(o=xr(e.data))&&w(r,o);for(var i=e;i=i.parent;)i.data&&(o=xr(i.data))&&w(r,o);return r}function kr(e,t){var o=t.data,i=e.data;if(!(r(o.staticStyle)&&r(o.style)&&r(i.staticStyle)&&r(i.style))){var l,a,s=t.elm,c=i.staticStyle,d=i.normalizedStyle||i.style||{},u=c||d,p=yr(t.data.style)||{};t.data.normalizedStyle=n(p.__ob__)?w({},p):p;var f=wr(t,!0);for(a in u)r(f[a])&&Ya(s,a,"");for(a in f)(l=f[a])!==u[a]&&Ya(s,a,null==l?"":l)}}function Fr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Ja).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var o=" "+(e.getAttribute("class")||"")+" ";o.indexOf(" "+t+" ")<0&&e.setAttribute("class",(o+t).trim())}}function Cr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Ja).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var o=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";o.indexOf(r)>=0;)o=o.replace(r," ");o=o.trim(),o?e.setAttribute("class",o):e.removeAttribute("class")}}function Er(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&w(t,Za(e.name||"v")),w(t,e),t}return"string"==typeof e?Za(e):void 0}}function Sr(e){ls(function(){ls(e)})}function zr(e,t){var o=e._transitionClasses||(e._transitionClasses=[]);o.indexOf(t)<0&&(o.push(t),Fr(e,t))}function Or(e,t){e._transitionClasses&&g(e._transitionClasses,t),Cr(e,t)}function Ar(e,t,o){var r=$r(e,t),n=r.type,i=r.timeout,l=r.propCount;if(!n)return o();var a=n===es?rs:is,s=0,c=function(){e.removeEventListener(a,d),o()},d=function(t){t.target===e&&++s>=l&&c()};setTimeout(function(){s0&&(o=es,d=l,u=i.length):t===ts?c>0&&(o=ts,d=c,u=s.length):(d=Math.max(l,c),o=d>0?l>c?es:ts:null,u=o?o===es?i.length:s.length:0),{type:o,timeout:d,propCount:u,hasTransform:o===es&&as.test(r[os+"Property"])}}function Tr(e,t){for(;e.length1}function Nr(e,t){!0!==t.data.show&&Mr(t)}function Dr(e,t,o){Rr(e,t,o),(Ki||Gi)&&setTimeout(function(){Rr(e,t,o)},0)}function Rr(e,t,o){var r=t.value,n=e.multiple;if(!n||Array.isArray(r)){for(var i,l,a=0,s=e.options.length;a-1,l.selected!==i&&(l.selected=i);else if(C(Hr(l),r))return void(e.selectedIndex!==a&&(e.selectedIndex=a));n||(e.selectedIndex=-1)}}function Br(e,t){return t.every(function(t){return!C(t,e)})}function Hr(e){return"_value"in e?e._value:e.value}function Wr(e){e.target.composing=!0}function qr(e){e.target.composing&&(e.target.composing=!1,Ur(e.target,"input"))}function Ur(e,t){var o=document.createEvent("HTMLEvents");o.initEvent(t,!0,!0),e.dispatchEvent(o)}function Vr(e){return!e.componentInstance||e.data&&e.data.transition?e:Vr(e.componentInstance._vnode)}function Yr(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Yr(ct(t.children)):e}function Kr(e){var t={},o=e.$options;for(var r in o.propsData)t[r]=e[r];var n=o._parentListeners;for(var i in n)t[Ai(i)]=n[i];return t}function Xr(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function Gr(e){for(;e=e.parent;)if(e.data.transition)return!0}function Jr(e,t){return t.key===e.key&&t.tag===e.tag}function Zr(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Qr(e){e.data.newPos=e.elm.getBoundingClientRect()}function en(e){var t=e.data.pos,o=e.data.newPos,r=t.left-o.left,n=t.top-o.top;if(r||n){e.data.moved=!0;var i=e.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+n+"px)",i.transitionDuration="0s"}}function tn(e,t){var o=t?Ps(t):Ls;if(o.test(e)){for(var r,n,i,l=[],a=[],s=o.lastIndex=0;r=o.exec(e);){(n=r.index)>s&&(a.push(i=e.slice(s,n)),l.push(JSON.stringify(i)));var c=Po(r[1].trim());l.push("_s("+c+")"),a.push({"@binding":c}),s=n+r[0].length}return s=0&&l[n].lowerCasedTag!==a;n--);else n=0;if(n>=0){for(var s=l.length-1;s>=n;s--)t.end&&t.end(l[s].tag,o,r);l.length=n,i=n&&l[n-1].tag}else"br"===a?t.start&&t.start(e,[],!0,o,r):"p"===a&&(t.start&&t.start(e,[],!1,o,r),t.end&&t.end(e,o,r))}for(var n,i,l=[],a=t.expectHTML,s=t.isUnaryTag||Li,c=t.canBeLeftOpenTag||Li,d=0;e;){if(n=e,i&&ec(i)){var u=0,p=i.toLowerCase(),f=tc[p]||(tc[p]=new RegExp("([\\s\\S]*?)(]*>)","i")),h=e.replace(f,function(e,o,r){return u=r.length,ec(p)||"noscript"===p||(o=o.replace(//g,"$1").replace(//g,"$1")),lc(p,o)&&(o=o.slice(1)),t.chars&&t.chars(o),""});d+=e.length-h.length,e=h,r(p,d-u,d)}else{var b=e.indexOf("<");if(0===b){if(Zs.test(e)){var g=e.indexOf("--\x3e");if(g>=0){t.shouldKeepComment&&t.comment(e.substring(4,g),d,d+g+3),o(g+3);continue}}if(Qs.test(e)){var m=e.indexOf("]>");if(m>=0){o(m+2);continue}}var _=e.match(Js);if(_){o(_[0].length);continue}var v=e.match(Gs);if(v){var x=d;o(v[0].length),r(v[1],x,d);continue}var y=function(){var t=e.match(Ks);if(t){var r={tagName:t[1],attrs:[],start:d};o(t[0].length);for(var n,i;!(n=e.match(Xs))&&(i=e.match(Us)||e.match(qs));)i.start=d,o(i[0].length),i.end=d,r.attrs.push(i);if(n)return r.unarySlash=n[1],o(n[0].length),r.end=d,r}}();if(y){!function(e){var o=e.tagName,n=e.unarySlash;a&&("p"===i&&Ws(o)&&r(i),c(o)&&i===o&&r(o));for(var d=s(o)||!!n,u=e.attrs.length,p=new Array(u),f=0;f=0){for(k=e.slice(b);!(Gs.test(k)||Ks.test(k)||Zs.test(k)||Qs.test(k)||(F=k.indexOf("<",1))<0);)b+=F,k=e.slice(b);w=e.substring(0,b)}b<0&&(w=e),w&&o(w.length),t.chars&&w&&t.chars(w,d-w.length,d)}if(e===n){t.chars&&t.chars(e);break}}r()}function cn(e,t,o){return{type:1,tag:e,attrsList:t,attrsMap:An(t),rawAttrsMap:{},parent:o,children:[]}}function dn(e,t){function o(e){if(r(e),d||e.processed||(e=fn(e,t)),a.length||e===i||i.if&&(e.elseif||e.else)&&yn(i,{exp:e.elseif,block:e}),l&&!e.forbidden)if(e.elseif||e.else)vn(e,l);else{if(e.slotScope){var o=e.slotTarget||'"default"';(l.scopedSlots||(l.scopedSlots={}))[o]=e}l.children.push(e),e.parent=l}e.children=e.children.filter(function(e){return!e.slotScope}),r(e),e.pre&&(d=!1),zs(e.tag)&&(u=!1);for(var n=0;n>>0}function si(e){return 1===e.type&&("slot"===e.tag||e.children.some(si))}function ci(e,t){var o=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!o)return ei(e,t,ci,"null");if(e.for&&!e.forProcessed)return oi(e,t,ci);var r=e.slotScope===xc?"":String(e.slotScope),n="function("+r+"){return "+("template"===e.tag?e.if&&o?"("+e.if+")?"+(di(e,t)||"undefined")+":undefined":di(e,t)||"undefined":Jn(e,t))+"}",i=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+n+i+"}"}function di(e,t,o,r,n){var i=e.children;if(i.length){var l=i[0];if(1===i.length&&l.for&&"template"!==l.tag&&"slot"!==l.tag){var a=o?t.maybeComponent(l)?",1":",0":"";return""+(r||Jn)(l,t)+a}var s=o?ui(i,t.maybeComponent):0,c=n||fi;return"["+i.map(function(e){return c(e,t)}).join(",")+"]"+(s?","+s:"")}}function ui(e,t){for(var o=0,r=0;r':'
',Ms.innerHTML.indexOf(" ")>0}function ki(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}var Fi=Object.freeze({}),Ci=Object.prototype.toString,Ei=b("slot,component",!0),Si=b("key,ref,slot,slot-scope,is"),zi=Object.prototype.hasOwnProperty,Oi=/-(\w)/g,Ai=_(function(e){return e.replace(Oi,function(e,t){return t?t.toUpperCase():""})}),$i=_(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),Ti=/\B([A-Z])/g,ji=_(function(e){return e.replace(Ti,"-$1").toLowerCase()}),Mi=Function.prototype.bind?x:v,Li=function(e,t,o){return!1},Ii=function(e){return e},Pi="data-server-rendered",Ni=["component","directive","filter"],Di=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],Ri={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:Li,isReservedAttr:Li,isUnknownElement:Li,getTagNamespace:F,parsePlatformTagName:Ii,mustUseProp:Li,async:!0,_lifecycleHooks:Di},Bi=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/,Hi=new RegExp("[^"+Bi.source+".$_\\d]"),Wi="__proto__"in{},qi="undefined"!=typeof window,Ui="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,Vi=Ui&&WXEnvironment.platform.toLowerCase(),Yi=qi&&window.navigator.userAgent.toLowerCase(),Ki=Yi&&/msie|trident/.test(Yi),Xi=Yi&&Yi.indexOf("msie 9.0")>0,Gi=Yi&&Yi.indexOf("edge/")>0,Ji=(Yi&&Yi.indexOf("android"),Yi&&/iphone|ipad|ipod|ios/.test(Yi)||"ios"===Vi),Zi=(Yi&&/chrome\/\d+/.test(Yi),Yi&&/phantomjs/.test(Yi),Yi&&Yi.match(/firefox\/(\d+)/)),Qi={}.watch,el=!1;if(qi)try{var tl={};Object.defineProperty(tl,"passive",{get:function(){el=!0}}),window.addEventListener("test-passive",null,tl)}catch(e){}var ol,rl,nl=function(){return void 0===ol&&(ol=!qi&&!Ui&&void 0!==e&&e.process&&"server"===e.process.env.VUE_ENV),ol},il=qi&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,ll="undefined"!=typeof Symbol&&$(Symbol)&&"undefined"!=typeof Reflect&&$(Reflect.ownKeys);rl="undefined"!=typeof Set&&$(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var al=F,sl=0,cl=function(){this.id=sl++,this.subs=[]};cl.prototype.addSub=function(e){this.subs.push(e)},cl.prototype.removeSub=function(e){g(this.subs,e)},cl.prototype.depend=function(){cl.target&&cl.target.addDep(this)},cl.prototype.notify=function(){for(var e=this.subs.slice(),t=0,o=e.length;tdocument.createEvent("Event").timeStamp&&(Ul=function(){return Vl.now()})}var Yl=0,Kl=function(e,t,o,r,n){this.vm=e,n&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=o,this.id=++Yl,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new rl,this.newDepIds=new rl,this.expression="","function"==typeof t?this.getter=t:(this.getter=A(t),this.getter||(this.getter=F)),this.value=this.lazy?void 0:this.get()};Kl.prototype.get=function(){T(this);var e,t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;ie(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&ue(e),j(),this.cleanupDeps()}return e},Kl.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},Kl.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var o=this.depIds;this.depIds=this.newDepIds,this.newDepIds=o,this.newDepIds.clear(),o=this.deps,this.deps=this.newDeps,this.newDeps=o,this.newDeps.length=0},Kl.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():zt(this)},Kl.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||s(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){ie(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},Kl.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Kl.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},Kl.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Xl={enumerable:!0,configurable:!0,get:F,set:F},Gl={lazy:!0},Jl=0;!function(e){e.prototype._init=function(e){var t=this;t._uid=Jl++,t._isVue=!0,e&&e._isComponent?Bt(t,e):t.$options=Z(Ht(t.constructor),e||{},t),t._renderProxy=t,t._self=t,gt(t),dt(t),nt(t),wt(t,"beforeCreate"),ke(t),At(t),we(t),wt(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(qt),function(e){var t={};t.get=function(){return this._data};var o={};o.get=function(){return this._props},Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",o),e.prototype.$set=B,e.prototype.$delete=H,e.prototype.$watch=function(e,t,o){var r=this;if(c(t))return Rt(r,e,t,o);o=o||{},o.user=!0;var n=new Kl(r,e,t,o);if(o.immediate)try{t.call(r,n.value)}catch(e){ie(e,r,'callback for immediate watcher "'+n.expression+'"')}return function(){n.teardown()}}}(qt),function(e){var t=/^hook:/;e.prototype.$on=function(e,o){var r=this;if(Array.isArray(e))for(var n=0,i=e.length;n1?y(o):o;for(var r=y(arguments,1),n='event handler for "'+e+'"',i=0,l=o.length;iparseInt(this.max)&&eo(s,c[0],c,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}},ea={KeepAlive:Ql};!function(e){var t={};t.get=function(){return Ri},Object.defineProperty(e,"config",t),e.util={warn:al,extend:w,mergeOptions:Z,defineReactive:R},e.set=B,e.delete=H,e.nextTick=de,e.observable=function(e){return D(e),e},e.options=Object.create(null),Ni.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,w(e.options.components,ea),Ut(e),Vt(e),Yt(e),Gt(e)}(qt),Object.defineProperty(qt.prototype,"$isServer",{get:nl}),Object.defineProperty(qt.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(qt,"FunctionalRenderContext",{value:Ue}),qt.version="2.6.12";var ta,oa,ra,na,ia,la,aa,sa,ca,da,ua=b("style,class"),pa=b("input,textarea,option,select,progress"),fa=function(e,t,o){return"value"===o&&pa(e)&&"button"!==t||"selected"===o&&"option"===e||"checked"===o&&"input"===e||"muted"===o&&"video"===e},ha=b("contenteditable,draggable,spellcheck"),ba=b("events,caret,typing,plaintext-only"),ga=function(e,t){return ya(t)||"false"===t?"false":"contenteditable"===e&&ba(t)?t:"true"},ma=b("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),_a="http://www.w3.org/1999/xlink",va=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},xa=function(e){return va(e)?e.slice(6,e.length):""},ya=function(e){return null==e||!1===e},wa={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},ka=b("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Fa=b("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Ca=function(e){return"pre"===e},Ea=function(e){return ka(e)||Fa(e)},Sa=Object.create(null),za=b("text,number,password,search,email,tel,url"),Oa=Object.freeze({createElement:po,createElementNS:fo,createTextNode:ho,createComment:bo,insertBefore:go,removeChild:mo,appendChild:_o,parentNode:vo,nextSibling:xo,tagName:yo,setTextContent:wo,setStyleScope:ko}),Aa={create:function(e,t){Fo(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Fo(e,!0),Fo(t))},destroy:function(e){Fo(e,!0)}},$a=new ul("",{},[]),Ta=["create","activate","update","remove","destroy"],ja={create:zo,update:zo,destroy:function(e){zo(e,$a)}},Ma=Object.create(null),La=[Aa,ja],Ia={create:jo,update:jo},Pa={create:Io,update:Io},Na=/[\w).+\-_$\]]/,Da="__r",Ra="__c",Ba=wl&&!(Zi&&Number(Zi[1])<=53),Ha={create:br,update:br},Wa={create:gr,update:gr},qa=_(function(e){var t={},o=/;(?![^(]*\))/g,r=/:(.+)/;return e.split(o).forEach(function(e){if(e){var o=e.split(r);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}),Ua=/^--/,Va=/\s*!important$/,Ya=function(e,t,o){if(Ua.test(t))e.style.setProperty(t,o);else if(Va.test(o))e.style.setProperty(ji(t),o.replace(Va,""),"important");else{var r=Xa(t);if(Array.isArray(o))for(var n=0,i=o.length;nh?(u=r(o[m+1])?null:o[m+1].elm,_(e,u,o,f,m,i)):f>m&&x(t,p,h)}function k(e,t,o,r){for(var i=o;i\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Us=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Vs="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+Bi.source+"]*",Ys="((?:"+Vs+"\\:)?"+Vs+")",Ks=new RegExp("^<"+Ys),Xs=/^\s*(\/?)>/,Gs=new RegExp("^<\\/"+Ys+"[^>]*>"),Js=/^]+>/i,Zs=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},rc=/&(?:lt|gt|quot|amp|#39);/g,nc=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,ic=b("pre,textarea",!0),lc=function(e,t){return e&&ic(e)&&"\n"===t[0]},ac=/^@|^v-on:/,sc=/^v-|^@|^:|^#/,cc=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,dc=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,uc=/^\(|\)$/g,pc=/^\[.*\]$/,fc=/:(.*)$/,hc=/^:|^\.|^v-bind:/,bc=/\.[^.\]]+(?=[^\]]*$)/g,gc=/^v-slot(:|$)|^#/,mc=/[\r\n]/,_c=/\s+/g,vc=_(Rs.decode),xc="_empty_",yc=/^xmlns:NS\d+/,wc=/^NS\d+:/,kc={preTransformNode:Mn},Fc=[Ns,Ds,kc],Cc={model:lr,text:In,html:Pn},Ec={expectHTML:!0,modules:Fc,directives:Cc,isPreTag:Ca,isUnaryTag:Bs,mustUseProp:fa,canBeLeftOpenTag:Hs,isReservedTag:Ea,getTagNamespace:so,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(Fc)},Sc=_(Dn),zc=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,Oc=/\([^)]*?\);*$/,Ac=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,$c={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Tc={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},jc=function(e){return"if("+e+")return null;"},Mc={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:jc("$event.target !== $event.currentTarget"),ctrl:jc("!$event.ctrlKey"),shift:jc("!$event.shiftKey"),alt:jc("!$event.altKey"),meta:jc("!$event.metaKey"),left:jc("'button' in $event && $event.button !== 0"),middle:jc("'button' in $event && $event.button !== 1"),right:jc("'button' in $event && $event.button !== 2")},Lc={on:Kn,bind:Xn,cloak:F},Ic=function(e){this.options=e,this.warn=e.warn||Do,this.transforms=Ro(e.modules,"transformCode"),this.dataGenFns=Ro(e.modules,"genData"),this.directives=w(w({},Lc),e.directives);var t=e.isReservedTag||Li;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1},Pc=(new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)"),function(e){return function(t){function o(o,r){var n=Object.create(t),i=[],l=[],a=function(e,t,o){(o?l:i).push(e)};if(r){r.modules&&(n.modules=(t.modules||[]).concat(r.modules)),r.directives&&(n.directives=w(Object.create(t.directives||null),r.directives));for(var s in r)"modules"!==s&&"directives"!==s&&(n[s]=r[s])}n.warn=a;var c=e(o.trim(),n);return c.errors=i,c.tips=l,c}return{compile:o,compileToFunctions:yi(o)}}}(function(e,t){var o=dn(e.trim(),t);!1!==t.optimize&&Nn(o,t);var r=Gn(o,t);return{ast:o,render:r.render,staticRenderFns:r.staticRenderFns}})),Nc=Pc(Ec),Dc=(Nc.compile,Nc.compileToFunctions),Rc=!!qi&&wi(!1),Bc=!!qi&&wi(!0),Hc=_(function(e){var t=uo(e);return t&&t.innerHTML}),Wc=qt.prototype.$mount;qt.prototype.$mount=function(e,t){if((e=e&&uo(e))===document.body||e===document.documentElement)return this;var o=this.$options;if(!o.render){var r=o.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=Hc(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=ki(e));if(r){var n=Dc(r,{outputSourceRange:!1,shouldDecodeNewlines:Rc,shouldDecodeNewlinesForHref:Bc,delimiters:o.delimiters,comments:o.comments},this),i=n.render,l=n.staticRenderFns;o.render=i,o.staticRenderFns=l}}return Wc.call(this,e,t)},qt.compile=Dc,t.default=qt}.call(t,o(28),o(199).setImmediate)},function(e,t,o){"use strict";var r=o(50),n=o(110),i=o(109),l=o(108),a=o(106),s=o(107);t.a={required:r.a,whitespace:n.a,type:i.a,range:l.a,enum:a.a,pattern:s.a}},function(e,t){var o=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=o)},function(e,t,o){"use strict";function r(e,t){if(!e||!t)return!1;if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}function n(e,t){if(e){for(var o=e.className,n=(t||"").split(" "),i=0,l=n.length;ir.top&&o.right>r.left&&o.left0&&void 0!==arguments[0]?arguments[0]:"";return String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},t.arrayFindIndex=function(e,t){for(var o=0;o!==e.length;++o)if(t(e[o]))return o;return-1}),g=(t.arrayFind=function(e,t){var o=b(e,t);return-1!==o?e[o]:void 0},t.coerceTruthyValueToArray=function(e){return Array.isArray(e)?e:e?[e]:[]},t.isIE=function(){return!p.default.prototype.$isServer&&!isNaN(Number(document.documentMode))},t.isEdge=function(){return!p.default.prototype.$isServer&&navigator.userAgent.indexOf("Edge")>-1},t.isFirefox=function(){return!p.default.prototype.$isServer&&!!window.navigator.userAgent.match(/firefox/i)},t.autoprefixer=function(e){if("object"!==(void 0===e?"undefined":d(e)))return e;var t=["ms-","webkit-"];return["transform","transition","animation"].forEach(function(o){var r=e[o];o&&r&&t.forEach(function(t){e[t+o]=r})}),e},t.kebabCase=function(e){var t=/([^-])([A-Z])/g;return e.replace(t,"$1-$2").replace(t,"$1-$2").toLowerCase()},t.capitalize=function(e){return(0,f.isString)(e)?e.charAt(0).toUpperCase()+e.slice(1):e},t.looseEqual=function(e,t){var o=(0,f.isObject)(e),r=(0,f.isObject)(t);return o&&r?JSON.stringify(e)===JSON.stringify(t):!o&&!r&&String(e)===String(t)}),m=t.arrayEquals=function(e,t){if(e=e||[],t=t||[],e.length!==t.length)return!1;for(var o=0;o0?this._openTimer=setTimeout(function(){t._openTimer=null,t.doOpen(o)},r):this.doOpen(o)},doOpen:function(e){if(!this.$isServer&&(!this.willOpen||this.willOpen())&&!this.opened){this._opening=!0;var t=this.$el,o=e.modal,r=e.zIndex;if(r&&(c.default.zIndex=r),o&&(this._closing&&(c.default.closeModal(this._popupId),this._closing=!1),c.default.openModal(this._popupId,c.default.nextZIndex(),this.modalAppendToBody?void 0:t,e.modalClass,e.modalFade),e.lockScroll)){this.withoutHiddenClass=!(0,p.hasClass)(document.body,"el-popup-parent--hidden"),this.withoutHiddenClass&&(this.bodyPaddingRight=document.body.style.paddingRight,this.computedBodyPaddingRight=parseInt((0,p.getStyle)(document.body,"paddingRight"),10)),h=(0,u.default)();var n=document.documentElement.clientHeight0&&(n||"scroll"===i)&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.computedBodyPaddingRight+h+"px"),(0,p.addClass)(document.body,"el-popup-parent--hidden")}"static"===getComputedStyle(t).position&&(t.style.position="absolute"),t.style.zIndex=c.default.nextZIndex(),this.opened=!0,this.onOpen&&this.onOpen(),this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var e=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var t=Number(this.closeDelay);t>0?this._closeTimer=setTimeout(function(){e._closeTimer=null,e.doClose()},t):this.doClose()}},doClose:function(){this._closing=!0,this.onClose&&this.onClose(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose()},doAfterClose:function(){c.default.closeModal(this._popupId),this._closing=!1},restoreBodyStyle:function(){this.modal&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.bodyPaddingRight,(0,p.removeClass)(document.body,"el-popup-parent--hidden")),this.withoutHiddenClass=!0}}},t.PopupManager=c.default},function(e,t){var o;o=function(){return this}();try{o=o||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.i18n=t.use=t.t=void 0;var n=o(49),i=r(n),l=o(4),a=r(l),s=o(176),c=r(s),d=o(178),u=r(d),p=(0,u.default)(a.default),f=i.default,h=!1,b=function(){var e=Object.getPrototypeOf(this||a.default).$t;if("function"==typeof e&&a.default.locale)return h||(h=!0,a.default.locale(a.default.config.lang,(0,c.default)(f,a.default.locale(a.default.config.lang)||{},{clone:!0}))),e.apply(this,arguments)},g=t.t=function(e,t){var o=b.apply(this,arguments);if(null!==o&&void 0!==o)return o;for(var r=e.split("."),n=f,i=0,l=r.length;i0?r:o)(e)}},function(e,t,o){var r=o(30);e.exports=function(e){return Object(r(e))}},function(e,t,o){var r=o(19);e.exports=function(e,t){if(!r(e))return e;var o,n;if(t&&"function"==typeof(o=e.toString)&&!r(n=o.call(e)))return n;if("function"==typeof(o=e.valueOf)&&!r(n=o.call(e)))return n;if(!t&&"function"==typeof(o=e.toString)&&!r(n=o.call(e)))return n;throw TypeError("Can't convert object to primitive value")}},function(e,t,o){var r=o(6),n=o(17),i=o(22),l=o(42),a=o(12).f;e.exports=function(e){var t=n.Symbol||(n.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:l.f(e)})}},function(e,t,o){t.f=o(14)},function(e,t,o){"use strict";t.__esModule=!0,o(8),t.default={mounted:function(){},methods:{getMigratingConfig:function(){return{props:{},events:{}}}}}},function(e,t,o){"use strict";t.__esModule=!0,t.default=function(){if(n.default.prototype.$isServer)return 0;if(void 0!==i)return i;var e=document.createElement("div");e.className="el-scrollbar__wrap",e.style.visibility="hidden",e.style.width="100px",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow="scroll";var o=document.createElement("div");o.style.width="100%",e.appendChild(o);var r=o.offsetWidth;return e.parentNode.removeChild(e),i=t-r};var r=o(4),n=function(e){return e&&e.__esModule?e:{default:e}}(r),i=void 0},function(e,t,o){var r=o(71);e.exports=function(e,t,o){return void 0===o?r(e,t,!1):r(e,o,!1!==t)}},function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}t.a=r},function(e,t){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=97)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},97:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("button",{staticClass:"el-button",class:[e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],attrs:{disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType},on:{click:e.handleClick}},[e.loading?o("i",{staticClass:"el-icon-loading"}):e._e(),e.icon&&!e.loading?o("i",{class:e.icon}):e._e(),e.$slots.default?o("span",[e._t("default")],2):e._e()])},n=[];r._withStripped=!0;var i={name:"ElButton",inject:{elForm:{default:""},elFormItem:{default:""}},props:{type:{type:String,default:"default"},size:String,icon:{type:String,default:""},nativeType:{type:String,default:"button"},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},buttonSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},buttonDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},methods:{handleClick:function(e){this.$emit("click",e)}}},l=i,a=o(0),s=Object(a.a)(l,r,n,!1,null,null,null);s.options.__file="packages/button/src/button.vue";var c=s.exports;c.install=function(e){e.component(c.name,c)},t.default=c}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=76)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},11:function(e,t){e.exports=o(43)},21:function(e,t){e.exports=o(185)},4:function(e,t){e.exports=o(15)},76:function(e,t,o){"use strict";function r(e){var t=window.getComputedStyle(e),o=t.getPropertyValue("box-sizing"),r=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),n=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:f.map(function(e){return e+":"+t.getPropertyValue(e)}).join(";"),paddingSize:r,borderSize:n,boxSizing:o}}function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;u||(u=document.createElement("textarea"),document.body.appendChild(u));var n=r(e),i=n.paddingSize,l=n.borderSize,a=n.boxSizing,s=n.contextStyle;u.setAttribute("style",s+";"+p),u.value=e.value||e.placeholder||"";var c=u.scrollHeight,d={};"border-box"===a?c+=l:"content-box"===a&&(c-=i),u.value="";var f=u.scrollHeight-i;if(null!==t){var h=f*t;"border-box"===a&&(h=h+i+l),c=Math.max(h,c),d.minHeight=h+"px"}if(null!==o){var b=f*o;"border-box"===a&&(b=b+i+l),c=Math.min(b,c)}return d.height=c+"px",u.parentNode&&u.parentNode.removeChild(u),u=null,d}o.r(t);var i=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"is-exceed":e.inputExceed,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword}],on:{mouseenter:function(t){e.hovering=!0},mouseleave:function(t){e.hovering=!1}}},["textarea"!==e.type?[e.$slots.prepend?o("div",{staticClass:"el-input-group__prepend"},[e._t("prepend")],2):e._e(),"textarea"!==e.type?o("input",e._b({ref:"input",staticClass:"el-input__inner",attrs:{tabindex:e.tabindex,type:e.showPassword?e.passwordVisible?"text":"password":e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"input",e.$attrs,!1)):e._e(),e.$slots.prefix||e.prefixIcon?o("span",{staticClass:"el-input__prefix"},[e._t("prefix"),e.prefixIcon?o("i",{staticClass:"el-input__icon",class:e.prefixIcon}):e._e()],2):e._e(),e.getSuffixVisible()?o("span",{staticClass:"el-input__suffix"},[o("span",{staticClass:"el-input__suffix-inner"},[e.showClear&&e.showPwdVisible&&e.isWordLimitVisible?e._e():[e._t("suffix"),e.suffixIcon?o("i",{staticClass:"el-input__icon",class:e.suffixIcon}):e._e()],e.showClear?o("i",{staticClass:"el-input__icon el-icon-circle-close el-input__clear",on:{mousedown:function(e){e.preventDefault()},click:e.clear}}):e._e(),e.showPwdVisible?o("i",{staticClass:"el-input__icon el-icon-view el-input__clear",on:{click:e.handlePasswordVisible}}):e._e(),e.isWordLimitVisible?o("span",{staticClass:"el-input__count"},[o("span",{staticClass:"el-input__count-inner"},[e._v("\n "+e._s(e.textLength)+"/"+e._s(e.upperLimit)+"\n ")])]):e._e()],2),e.validateState?o("i",{staticClass:"el-input__icon",class:["el-input__validateIcon",e.validateIcon]}):e._e()]):e._e(),e.$slots.append?o("div",{staticClass:"el-input-group__append"},[e._t("append")],2):e._e()]:o("textarea",e._b({ref:"textarea",staticClass:"el-textarea__inner",style:e.textareaStyle,attrs:{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"textarea",e.$attrs,!1)),e.isWordLimitVisible&&"textarea"===e.type?o("span",{staticClass:"el-input__count"},[e._v(e._s(e.textLength)+"/"+e._s(e.upperLimit))]):e._e()],2)},l=[];i._withStripped=!0;var a=o(4),s=o.n(a),c=o(11),d=o.n(c),u=void 0,p="\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",f=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"],h=o(9),b=o.n(h),g=o(21),m={name:"ElInput",componentName:"ElInput",mixins:[s.a,d.a],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{textareaCalcStyle:{},hovering:!1,focused:!1,isComposing:!1,passwordVisible:!1}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return b()({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},nativeInputValue:function(){return null===this.value||void 0===this.value?"":String(this.value)},showClear:function(){return this.clearable&&!this.inputDisabled&&!this.readonly&&this.nativeInputValue&&(this.focused||this.hovering)},showPwdVisible:function(){return this.showPassword&&!this.inputDisabled&&!this.readonly&&(!!this.nativeInputValue||this.focused)},isWordLimitVisible:function(){return this.showWordLimit&&this.$attrs.maxlength&&("text"===this.type||"textarea"===this.type)&&!this.inputDisabled&&!this.readonly&&!this.showPassword},upperLimit:function(){return this.$attrs.maxlength},textLength:function(){return"number"==typeof this.value?String(this.value).length:(this.value||"").length},inputExceed:function(){return this.isWordLimitVisible&&this.textLength>this.upperLimit}},watch:{value:function(e){this.$nextTick(this.resizeTextarea),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[e])},nativeInputValue:function(){this.setNativeInputValue()},type:function(){var e=this;this.$nextTick(function(){e.setNativeInputValue(),e.resizeTextarea(),e.updateIconOffset()})}},methods:{focus:function(){this.getInput().focus()},blur:function(){this.getInput().blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.value])},select:function(){this.getInput().select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type){if(!e)return void(this.textareaCalcStyle={minHeight:n(this.$refs.textarea).minHeight});var t=e.minRows,o=e.maxRows;this.textareaCalcStyle=n(this.$refs.textarea,t,o)}}},setNativeInputValue:function(){var e=this.getInput();e&&e.value!==this.nativeInputValue&&(e.value=this.nativeInputValue)},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(e){var t=e.target.value,o=t[t.length-1]||"";this.isComposing=!Object(g.isKorean)(o)},handleCompositionEnd:function(e){this.isComposing&&(this.isComposing=!1,this.handleInput(e))},handleInput:function(e){this.isComposing||e.target.value!==this.nativeInputValue&&(this.$emit("input",e.target.value),this.$nextTick(this.setNativeInputValue))},handleChange:function(e){this.$emit("change",e.target.value)},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var o=null,r=0;rdocument.F=Object<\/script>"),e.close(),s=e.F;r--;)delete s.prototype[i[r]];return s()};e.exports=Object.create||function(e,t){var o;return null!==e?(a.prototype=r(e),o=new a,a.prototype=null,o[l]=e):o=s(),void 0===t?o:n(o,t)}},function(e,t,o){var r=o(62),n=o(31).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,n)}},function(e,t,o){var r=o(10),n=o(13),i=o(135)(!1),l=o(36)("IE_PROTO");e.exports=function(e,t){var o,a=n(e),s=0,c=[];for(o in a)o!=l&&r(a,o)&&c.push(o);for(;t.length>s;)r(a,o=t[s++])&&(~i(c,o)||c.push(o));return c}},function(e,t,o){e.exports=o(11)},function(e,t,o){"use strict";e.exports=function(e,t){return"string"!=typeof e?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),/["'() \t\n]/.test(e)||t?'"'+e.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':e)}},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=83)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},4:function(e,t){e.exports=o(15)},83:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("label",{staticClass:"el-checkbox",class:[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}],attrs:{id:e.id}},[o("span",{staticClass:"el-checkbox__input",class:{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus},attrs:{tabindex:!!e.indeterminate&&0,role:!!e.indeterminate&&"checkbox","aria-checked":!!e.indeterminate&&"mixed"}},[o("span",{staticClass:"el-checkbox__inner"}),e.trueLabel||e.falseLabel?o("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var o=e.model,r=t.target,n=r.checked?e.trueLabel:e.falseLabel;if(Array.isArray(o)){var i=e._i(o,null);r.checked?i<0&&(e.model=o.concat([null])):i>-1&&(e.model=o.slice(0,i).concat(o.slice(i+1)))}else e.model=n},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):o("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var o=e.model,r=t.target,n=!!r.checked;if(Array.isArray(o)){var i=e.label,l=e._i(o,i);r.checked?l<0&&(e.model=o.concat([i])):l>-1&&(e.model=o.slice(0,l).concat(o.slice(l+1)))}else e.model=n},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?o("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])},n=[];r._withStripped=!0;var i=o(4),l=o.n(i),a={name:"ElCheckbox",mixins:[l.a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,o=e.min;return!(!t&&!o)&&this.model.length>=t&&!this.isChecked||this.model.length<=o&&this.isChecked},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup?this._checkboxGroup.checkboxGroupSize||e:e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var o=void 0;o=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",o,e),this.$nextTick(function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])})}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}},s=a,c=o(0),d=Object(c.a)(s,r,n,!1,null,null,null);d.options.__file="packages/checkbox/src/checkbox.vue";var u=d.exports;u.install=function(e){e.component(u.name,u)},t.default=u}})},function(e,t,o){"use strict";t.__esModule=!0;var r=o(29);t.default={methods:{t:function(){for(var e=arguments.length,t=Array(e),o=0;o0&&(this.timeoutPending=setTimeout(function(){e.showPopper=!1},this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e},getFirstElement:function(){var e=this.$slots.default;if(!Array.isArray(e))return null;for(var t=null,o=0;o=t.length)break;n=t[r++]}else{if(r=t.next(),r.done)break;n=r.value}var i=n,l=i.target.__resizeListeners__||[];l.length&&l.forEach(function(e){e()})}};t.addResizeListener=function(e,t){i||(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new n.default(l),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},t.removeResizeListener=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())}},function(e,t,o){"use strict";function r(e){return null!==e&&"object"===(void 0===e?"undefined":n(e))&&(0,i.hasOwn)(e,"componentOptions")}t.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.isVNode=r;var i=o(8)},function(e,t,o){"use strict";t.__esModule=!0;var r=o(4),n=function(e){return e&&e.__esModule?e:{default:e}}(r),i=o(27),l=n.default.prototype.$isServer?function(){}:o(183),a=function(e){return e.stopPropagation()};t.default={props:{transformOrigin:{type:[Boolean,String],default:!0},placement:{type:String,default:"bottom"},boundariesPadding:{type:Number,default:5},reference:{},popper:{},offset:{default:0},value:Boolean,visibleArrow:Boolean,arrowOffset:{type:Number,default:35},appendToBody:{type:Boolean,default:!0},popperOptions:{type:Object,default:function(){return{gpuAcceleration:!1}}}},data:function(){return{showPopper:!1,currentPlacement:""}},watch:{value:{immediate:!0,handler:function(e){this.showPopper=e,this.$emit("input",e)}},showPopper:function(e){this.disabled||(e?this.updatePopper():this.destroyPopper(),this.$emit("input",e))}},methods:{createPopper:function(){var e=this;if(!this.$isServer&&(this.currentPlacement=this.currentPlacement||this.placement,/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement))){var t=this.popperOptions,o=this.popperElm=this.popperElm||this.popper||this.$refs.popper,r=this.referenceElm=this.referenceElm||this.reference||this.$refs.reference;!r&&this.$slots.reference&&this.$slots.reference[0]&&(r=this.referenceElm=this.$slots.reference[0].elm),o&&r&&(this.visibleArrow&&this.appendArrow(o),this.appendToBody&&document.body.appendChild(this.popperElm),this.popperJS&&this.popperJS.destroy&&this.popperJS.destroy(),t.placement=this.currentPlacement,t.offset=this.offset,t.arrowOffset=this.arrowOffset,this.popperJS=new l(r,o,t),this.popperJS.onCreate(function(t){e.$emit("created",e),e.resetTransformOrigin(),e.$nextTick(e.updatePopper)}),"function"==typeof t.onUpdate&&this.popperJS.onUpdate(t.onUpdate),this.popperJS._popper.style.zIndex=i.PopupManager.nextZIndex(),this.popperElm.addEventListener("click",a))}},updatePopper:function(){var e=this.popperJS;e?(e.update(),e._popper&&(e._popper.style.zIndex=i.PopupManager.nextZIndex())):this.createPopper()},doDestroy:function(e){!this.popperJS||this.showPopper&&!e||(this.popperJS.destroy(),this.popperJS=null)},destroyPopper:function(){this.popperJS&&this.resetTransformOrigin()},resetTransformOrigin:function(){if(this.transformOrigin){var e={top:"bottom",bottom:"top",left:"right",right:"left"},t=this.popperJS._popper.getAttribute("x-placement").split("-")[0],o=e[t];this.popperJS._popper.style.transformOrigin="string"==typeof this.transformOrigin?this.transformOrigin:["top","bottom"].indexOf(t)>-1?"center "+o:o+" center"}},appendArrow:function(e){var t=void 0;if(!this.appended){this.appended=!0;for(var o in e.attributes)if(/^_v-/.test(e.attributes[o].name)){t=e.attributes[o].name;break}var r=document.createElement("div");t&&r.setAttribute(t,""),r.setAttribute("x-arrow",""),r.className="popper__arrow",e.appendChild(r)}}},beforeDestroy:function(){this.doDestroy(!0),this.popperElm&&this.popperElm.parentNode===document.body&&(this.popperElm.removeEventListener("click",a),document.body.removeChild(this.popperElm))},deactivated:function(){this.$options.beforeDestroy[0].call(this)}}},function(e,t){e.exports=function(e,t,o,r){function n(){function n(){l=Number(new Date),o.apply(s,d)}function a(){i=void 0}var s=this,c=Number(new Date)-l,d=arguments;r&&!i&&n(),i&&clearTimeout(i),void 0===r&&c>e?n():!0!==t&&(i=setTimeout(r?a:n,void 0===r?e-c:e))}var i,l=0;return"boolean"!=typeof t&&(r=o,o=t,t=void 0),n}},function(e,t,o){e.exports=o.p+"732389ded34cb9c52dd88271f1345af9.ttf"},function(e,t,o){e.exports=o.p+"535877f50039c0cb49a6196a5b7517cd.woff"},function(e,t,o){"use strict";var r=o(51);t.a=r.a},function(e,t,o){"use strict";var r=o(52);t.a=r.a},function(e,t,o){"use strict";var r=o(53);t.a=r.a},function(e,t,o){"use strict";var r=o(4),n=o(210),i=o(201),l=o(200);r.default.use(n.a),t.a=new n.a({routes:[{path:"/",name:"Overview",component:i.a},{path:"/configure",name:"Configure",component:l.a}]})},function(e,t){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=134)}({134:function(e,t,o){"use strict";o.r(t);var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n={name:"ElCol",props:{span:{type:Number,default:24},tag:{type:String,default:"div"},offset:Number,pull:Number,push:Number,xs:[Number,Object],sm:[Number,Object],md:[Number,Object],lg:[Number,Object],xl:[Number,Object]},computed:{gutter:function(){for(var e=this.$parent;e&&"ElRow"!==e.$options.componentName;)e=e.$parent;return e?e.gutter:0}},render:function(e){var t=this,o=[],n={};return this.gutter&&(n.paddingLeft=this.gutter/2+"px",n.paddingRight=n.paddingLeft),["span","offset","pull","push"].forEach(function(e){(t[e]||0===t[e])&&o.push("span"!==e?"el-col-"+e+"-"+t[e]:"el-col-"+t[e])}),["xs","sm","md","lg","xl"].forEach(function(e){if("number"==typeof t[e])o.push("el-col-"+e+"-"+t[e]);else if("object"===r(t[e])){var n=t[e];Object.keys(n).forEach(function(t){o.push("span"!==t?"el-col-"+e+"-"+t+"-"+n[t]:"el-col-"+e+"-"+n[t])})}}),e(this.tag,{class:["el-col",o],style:n},this.$slots.default)}};n.install=function(e){e.component(n.name,n)},t.default=n}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=67)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},3:function(e,t){e.exports=o(8)},4:function(e,t){e.exports=o(15)},48:function(e,t){e.exports=o(104)},67:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"el-form-item",class:[{"el-form-item--feedback":e.elForm&&e.elForm.statusIcon,"is-error":"error"===e.validateState,"is-validating":"validating"===e.validateState,"is-success":"success"===e.validateState,"is-required":e.isRequired||e.required,"is-no-asterisk":e.elForm&&e.elForm.hideRequiredAsterisk},e.sizeClass?"el-form-item--"+e.sizeClass:""]},[o("label-wrap",{attrs:{"is-auto-width":e.labelStyle&&"auto"===e.labelStyle.width,"update-all":"auto"===e.form.labelWidth}},[e.label||e.$slots.label?o("label",{staticClass:"el-form-item__label",style:e.labelStyle,attrs:{for:e.labelFor}},[e._t("label",[e._v(e._s(e.label+e.form.labelSuffix))])],2):e._e()]),o("div",{staticClass:"el-form-item__content",style:e.contentStyle},[e._t("default"),o("transition",{attrs:{name:"el-zoom-in-top"}},["error"===e.validateState&&e.showMessage&&e.form.showMessage?e._t("error",[o("div",{staticClass:"el-form-item__error",class:{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm&&e.elForm.inlineMessage||!1}},[e._v("\n "+e._s(e.validateMessage)+"\n ")])],{error:e.validateMessage}):e._e()],2)],2)],1)},n=[];r._withStripped=!0;var i=o(48),l=o.n(i),a=o(4),s=o.n(a),c=o(9),d=o.n(c),u=o(3),p={props:{isAutoWidth:Boolean,updateAll:Boolean},inject:["elForm","elFormItem"],render:function(){var e=arguments[0],t=this.$slots.default;if(!t)return null;if(this.isAutoWidth){var o=this.elForm.autoLabelWidth,r={};if(o&&"auto"!==o){var n=parseInt(o,10)-this.computedWidth;n&&(r.marginLeft=n+"px")}return e("div",{class:"el-form-item__label-wrap",style:r},[t])}return t[0]},methods:{getLabelWidth:function(){if(this.$el&&this.$el.firstElementChild){var e=window.getComputedStyle(this.$el.firstElementChild).width;return Math.ceil(parseFloat(e))}return 0},updateLabelWidth:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";this.$slots.default&&this.isAutoWidth&&this.$el.firstElementChild&&("update"===e?this.computedWidth=this.getLabelWidth():"remove"===e&&this.elForm.deregisterLabelWidth(this.computedWidth))}},watch:{computedWidth:function(e,t){this.updateAll&&(this.elForm.registerLabelWidth(e,t),this.elFormItem.updateComputedLabelWidth(e))}},data:function(){return{computedWidth:0}},mounted:function(){this.updateLabelWidth("update")},updated:function(){this.updateLabelWidth("update")},beforeDestroy:function(){this.updateLabelWidth("remove")}},f=p,h=o(0),b=Object(h.a)(f,void 0,void 0,!1,null,null,null);b.options.__file="packages/form/src/label-wrap.vue";var g=b.exports,m={name:"ElFormItem",componentName:"ElFormItem",mixins:[s.a],provide:function(){return{elFormItem:this}},inject:["elForm"],props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:String},components:{LabelWrap:g},watch:{error:{immediate:!0,handler:function(e){this.validateMessage=e,this.validateState=e?"error":""}},validateStatus:function(e){this.validateState=e}},computed:{labelFor:function(){return this.for||this.prop},labelStyle:function(){var e={};if("top"===this.form.labelPosition)return e;var t=this.labelWidth||this.form.labelWidth;return t&&(e.width=t),e},contentStyle:function(){var e={},t=this.label;if("top"===this.form.labelPosition||this.form.inline)return e;if(!t&&!this.labelWidth&&this.isNested)return e;var o=this.labelWidth||this.form.labelWidth;return"auto"===o?"auto"===this.labelWidth?e.marginLeft=this.computedLabelWidth:"auto"===this.form.labelWidth&&(e.marginLeft=this.elForm.autoLabelWidth):e.marginLeft=o,e},form:function(){for(var e=this.$parent,t=e.$options.componentName;"ElForm"!==t;)"ElFormItem"===t&&(this.isNested=!0),e=e.$parent,t=e.$options.componentName;return e},fieldValue:function(){var e=this.form.model;if(e&&this.prop){var t=this.prop;return-1!==t.indexOf(":")&&(t=t.replace(/:/,".")),Object(u.getPropByPath)(e,t,!0).v}},isRequired:function(){var e=this.getRules(),t=!1;return e&&e.length&&e.every(function(e){return!e.required||(t=!0,!1)}),t},_formSize:function(){return this.elForm.size},elFormItemSize:function(){return this.size||this._formSize},sizeClass:function(){return this.elFormItemSize||(this.$ELEMENT||{}).size}},data:function(){return{validateState:"",validateMessage:"",validateDisabled:!1,validator:{},isNested:!1,computedLabelWidth:""}},methods:{validate:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u.noop;this.validateDisabled=!1;var r=this.getFilteredRule(e);if((!r||0===r.length)&&void 0===this.required)return o(),!0;this.validateState="validating";var n={};r&&r.length>0&&r.forEach(function(e){delete e.trigger}),n[this.prop]=r;var i=new l.a(n),a={};a[this.prop]=this.fieldValue,i.validate(a,{firstFields:!0},function(e,r){t.validateState=e?"error":"success",t.validateMessage=e?e[0].message:"",o(t.validateMessage,r),t.elForm&&t.elForm.$emit("validate",t.prop,!e,t.validateMessage||null)})},clearValidate:function(){this.validateState="",this.validateMessage="",this.validateDisabled=!1},resetField:function(){var e=this;this.validateState="",this.validateMessage="";var t=this.form.model,o=this.fieldValue,r=this.prop;-1!==r.indexOf(":")&&(r=r.replace(/:/,"."));var n=Object(u.getPropByPath)(t,r,!0);this.validateDisabled=!0,Array.isArray(o)?n.o[n.k]=[].concat(this.initialValue):n.o[n.k]=this.initialValue,this.$nextTick(function(){e.validateDisabled=!1}),this.broadcast("ElTimeSelect","fieldReset",this.initialValue)},getRules:function(){var e=this.form.rules,t=this.rules,o=void 0!==this.required?{required:!!this.required}:[],r=Object(u.getPropByPath)(e,this.prop||"");return e=e?r.o[this.prop||""]||r.v:[],[].concat(t||e||[]).concat(o)},getFilteredRule:function(e){return this.getRules().filter(function(t){return!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e)}).map(function(e){return d()({},e)})},onFieldBlur:function(){this.validate("blur")},onFieldChange:function(){if(this.validateDisabled)return void(this.validateDisabled=!1);this.validate("change")},updateComputedLabelWidth:function(e){this.computedLabelWidth=e?e+"px":""},addValidateEvents:function(){(this.getRules().length||void 0!==this.required)&&(this.$on("el.form.blur",this.onFieldBlur),this.$on("el.form.change",this.onFieldChange))},removeValidateEvents:function(){this.$off()}},mounted:function(){if(this.prop){this.dispatch("ElForm","el.form.addField",[this]);var e=this.fieldValue;Array.isArray(e)&&(e=[].concat(e)),Object.defineProperty(this,"initialValue",{value:e}),this.addValidateEvents()}},beforeDestroy:function(){this.dispatch("ElForm","el.form.removeField",[this])}},_=m,v=Object(h.a)(_,r,n,!1,null,null,null);v.options.__file="packages/form/src/form-item.vue";var x=v.exports;x.install=function(e){e.component(x.name,x)},t.default=x},9:function(e,t){e.exports=o(16)}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=121)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},121:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement;return(e._self._c||t)("form",{staticClass:"el-form",class:[e.labelPosition?"el-form--label-"+e.labelPosition:"",{"el-form--inline":e.inline}]},[e._t("default")],2)},n=[];r._withStripped=!0;var i=o(9),l=o.n(i),a={name:"ElForm",componentName:"ElForm",provide:function(){return{elForm:this}},props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},watch:{rules:function(){this.fields.forEach(function(e){e.removeValidateEvents(),e.addValidateEvents()}),this.validateOnRuleChange&&this.validate(function(){})}},computed:{autoLabelWidth:function(){if(!this.potentialLabelWidthArr.length)return 0;var e=Math.max.apply(Math,this.potentialLabelWidthArr);return e?e+"px":""}},data:function(){return{fields:[],potentialLabelWidthArr:[]}},created:function(){var e=this;this.$on("el.form.addField",function(t){t&&e.fields.push(t)}),this.$on("el.form.removeField",function(t){t.prop&&e.fields.splice(e.fields.indexOf(t),1)})},methods:{resetFields:function(){if(!this.model)return void console.warn("[Element Warn][Form]model is required for resetFields to work.");this.fields.forEach(function(e){e.resetField()})},clearValidate:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];(e.length?"string"==typeof e?this.fields.filter(function(t){return e===t.prop}):this.fields.filter(function(t){return e.indexOf(t.prop)>-1}):this.fields).forEach(function(e){e.clearValidate()})},validate:function(e){var t=this;if(!this.model)return void console.warn("[Element Warn][Form]model is required for validate to work!");var o=void 0;"function"!=typeof e&&window.Promise&&(o=new window.Promise(function(t,o){e=function(e){e?t(e):o(e)}}));var r=!0,n=0;0===this.fields.length&&e&&e(!0);var i={};return this.fields.forEach(function(o){o.validate("",function(o,a){o&&(r=!1),i=l()({},i,a),"function"==typeof e&&++n===t.fields.length&&e(r,i)})}),o||void 0},validateField:function(e,t){e=[].concat(e);var o=this.fields.filter(function(t){return-1!==e.indexOf(t.prop)});if(!o.length)return void console.warn("[Element Warn]please pass correct props!");o.forEach(function(e){e.validate("",t)})},getLabelWidthIndex:function(e){var t=this.potentialLabelWidthArr.indexOf(e);if(-1===t)throw new Error("[ElementForm]unpected width ",e);return t},registerLabelWidth:function(e,t){if(e&&t){var o=this.getLabelWidthIndex(t);this.potentialLabelWidthArr.splice(o,1,e)}else e&&this.potentialLabelWidthArr.push(e)},deregisterLabelWidth:function(e){var t=this.getLabelWidthIndex(e);this.potentialLabelWidthArr.splice(t,1)}}},s=a,c=o(0),d=Object(c.a)(s,r,n,!1,null,null,null);d.options.__file="packages/form/src/form.vue";var u=d.exports;u.install=function(e){e.component(u.name,u)},t.default=u},9:function(e,t){e.exports=o(16)}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=101)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},101:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("li",{staticClass:"el-menu-item",class:{"is-active":e.active,"is-disabled":e.disabled},style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],attrs:{role:"menuitem",tabindex:"-1"},on:{click:e.handleClick,mouseenter:e.onMouseEnter,focus:e.onMouseEnter,blur:e.onMouseLeave,mouseleave:e.onMouseLeave}},["ElMenu"===e.parentMenu.$options.componentName&&e.rootMenu.collapse&&e.$slots.title?o("el-tooltip",{attrs:{effect:"dark",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[e._t("title")],2),o("div",{staticStyle:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}},[e._t("default")],2)]):[e._t("default"),e._t("title")]],2)},n=[];r._withStripped=!0;var i=o(36),l=o(29),a=o.n(l),s=o(4),c=o.n(s),d={name:"ElMenuItem",componentName:"ElMenuItem",mixins:[i.a,c.a],components:{ElTooltip:a.a},props:{index:{default:null,validator:function(e){return"string"==typeof e||null===e}},route:[String,Object],disabled:Boolean},computed:{active:function(){return this.index===this.rootMenu.activeIndex},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},itemStyle:function(){var e={color:this.active?this.activeTextColor:this.textColor};return"horizontal"!==this.mode||this.isNested||(e.borderBottomColor=this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent"),e},isNested:function(){return this.parentMenu!==this.rootMenu}},methods:{onMouseEnter:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.hoverBackground)},onMouseLeave:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.backgroundColor)},handleClick:function(){this.disabled||(this.dispatch("ElMenu","item-click",this),this.$emit("click",this))}},mounted:function(){this.parentMenu.addItem(this),this.rootMenu.addItem(this)},beforeDestroy:function(){this.parentMenu.removeItem(this),this.rootMenu.removeItem(this)}},u=d,p=o(0),f=Object(p.a)(u,r,n,!1,null,null,null);f.options.__file="packages/menu/src/menu-item.vue";var h=f.exports;h.install=function(e){e.component(h.name,h)},t.default=h},29:function(e,t){e.exports=o(67)},36:function(e,t,o){"use strict";t.a={inject:["rootMenu"],computed:{indexPath:function(){for(var e=[this.index],t=this.$parent;"ElMenu"!==t.$options.componentName;)t.index&&e.unshift(t.index),t=t.$parent;return e},parentMenu:function(){for(var e=this.$parent;e&&-1===["ElMenu","ElSubmenu"].indexOf(e.$options.componentName);)e=e.$parent;return e},paddingStyle:function(){if("vertical"!==this.rootMenu.mode)return{};var e=20,t=this.$parent;if(this.rootMenu.collapse)e=20;else for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return{paddingLeft:e+"px"}}}}},4:function(e,t){e.exports=o(15)}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=69)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},11:function(e,t){e.exports=o(43)},2:function(e,t){e.exports=o(7)},4:function(e,t){e.exports=o(15)},69:function(e,t,o){"use strict";o.r(t);var r=o(4),n=o.n(r),i=o(11),l=o.n(i),a=a||{};a.Utils=a.Utils||{},a.Utils.focusFirstDescendant=function(e){for(var t=0;t=0;t--){var o=e.childNodes[t];if(a.Utils.attemptFocus(o)||a.Utils.focusLastDescendant(o))return!0}return!1},a.Utils.attemptFocus=function(e){if(!a.Utils.isFocusable(e))return!1;a.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return a.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},a.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},a.Utils.triggerEvent=function(e,t){var o=void 0;o=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var r=document.createEvent(o),n=arguments.length,i=Array(n>2?n-2:0),l=2;l=0;t--)e.splice(t,0,e[t]);e=e.join("")}return/^[0-9a-fA-F]{6}$/.test(e)?{red:parseInt(e.slice(0,2),16),green:parseInt(e.slice(2,4),16),blue:parseInt(e.slice(4,6),16)}:{red:255,green:255,blue:255}},mixColor:function(e,t){var o=this.getColorChannels(e),r=o.red,n=o.green,i=o.blue;return t>0?(r*=1-t,n*=1-t,i*=1-t):(r+=(255-r)*t,n+=(255-n)*t,i+=(255-i)*t),"rgb("+Math.round(r)+", "+Math.round(n)+", "+Math.round(i)+")"},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},openMenu:function(e,t){var o=this.openedMenus;-1===o.indexOf(e)&&(this.uniqueOpened&&(this.openedMenus=o.filter(function(e){return-1!==t.indexOf(e)})),this.openedMenus.push(e))},closeMenu:function(e){var t=this.openedMenus.indexOf(e);-1!==t&&this.openedMenus.splice(t,1)},handleSubmenuClick:function(e){var t=e.index,o=e.indexPath;-1!==this.openedMenus.indexOf(t)?(this.closeMenu(t),this.$emit("close",t,o)):(this.openMenu(t,o),this.$emit("open",t,o))},handleItemClick:function(e){var t=this,o=e.index,r=e.indexPath,n=this.activeIndex,i=null!==e.index;i&&(this.activeIndex=e.index),this.$emit("select",o,r,e),("horizontal"===this.mode||this.collapse)&&(this.openedMenus=[]),this.router&&i&&this.routeToItem(e,function(e){if(t.activeIndex=n,e){if("NavigationDuplicated"===e.name)return;console.error(e)}})},initOpenedMenu:function(){var e=this,t=this.activeIndex,o=this.items[t];o&&"horizontal"!==this.mode&&!this.collapse&&o.indexPath.forEach(function(t){var o=e.submenus[t];o&&e.openMenu(t,o.indexPath)})},routeToItem:function(e,t){var o=e.route||e.index;try{this.$router.push(o,function(){},t)}catch(e){console.error(e)}},open:function(e){var t=this,o=this.submenus[e.toString()].indexPath;o.forEach(function(e){return t.openMenu(e,o)})},close:function(e){this.closeMenu(e)}},mounted:function(){this.initOpenedMenu(),this.$on("item-click",this.handleItemClick),this.$on("submenu-click",this.handleSubmenuClick),"horizontal"===this.mode&&new h(this.$el),this.$watch("items",this.updateActiveIndex)}},m=g,_=o(0),v=Object(_.a)(m,void 0,void 0,!1,null,null,null);v.options.__file="packages/menu/src/menu.vue";var x=v.exports;x.install=function(e){e.component(x.name,x)},t.default=x}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=77)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},10:function(e,t){e.exports=o(48)},13:function(e,t){e.exports=o(47)},15:function(e,t){e.exports=o(27)},2:function(e,t){e.exports=o(7)},20:function(e,t){e.exports=o(29)},23:function(e,t){e.exports=o(69)},47:function(e,t){e.exports=o(180)},6:function(e,t){e.exports=o(66)},7:function(e,t){e.exports=o(4)},77:function(e,t,o){"use strict";o.r(t);var r=o(7),n=o.n(r),i=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("transition",{attrs:{name:"msgbox-fade"}},[o("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-message-box__wrapper",attrs:{tabindex:"-1",role:"dialog","aria-modal":"true","aria-label":e.title||"dialog"},on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[o("div",{staticClass:"el-message-box",class:[e.customClass,e.center&&"el-message-box--center"]},[null!==e.title?o("div",{staticClass:"el-message-box__header"},[o("div",{staticClass:"el-message-box__title"},[e.icon&&e.center?o("div",{class:["el-message-box__status",e.icon]}):e._e(),o("span",[e._v(e._s(e.title))])]),e.showClose?o("button",{staticClass:"el-message-box__headerbtn",attrs:{type:"button","aria-label":"Close"},on:{click:function(t){e.handleAction(e.distinguishCancelAndClose?"close":"cancel")},keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.handleAction(e.distinguishCancelAndClose?"close":"cancel")}}},[o("i",{staticClass:"el-message-box__close el-icon-close"})]):e._e()]):e._e(),o("div",{staticClass:"el-message-box__content"},[o("div",{staticClass:"el-message-box__container"},[e.icon&&!e.center&&""!==e.message?o("div",{class:["el-message-box__status",e.icon]}):e._e(),""!==e.message?o("div",{staticClass:"el-message-box__message"},[e._t("default",[e.dangerouslyUseHTMLString?o("p",{domProps:{innerHTML:e._s(e.message)}}):o("p",[e._v(e._s(e.message))])])],2):e._e()]),o("div",{directives:[{name:"show",rawName:"v-show",value:e.showInput,expression:"showInput"}],staticClass:"el-message-box__input"},[o("el-input",{ref:"input",attrs:{type:e.inputType,placeholder:e.inputPlaceholder},nativeOn:{keydown:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.handleInputEnter(t):null}},model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}}),o("div",{staticClass:"el-message-box__errormsg",style:{visibility:e.editorErrorMessage?"visible":"hidden"}},[e._v(e._s(e.editorErrorMessage))])],1)]),o("div",{staticClass:"el-message-box__btns"},[e.showCancelButton?o("el-button",{class:[e.cancelButtonClasses],attrs:{loading:e.cancelButtonLoading,round:e.roundButton,size:"small"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.handleAction("cancel")}},nativeOn:{click:function(t){e.handleAction("cancel")}}},[e._v("\n "+e._s(e.cancelButtonText||e.t("el.messagebox.cancel"))+"\n ")]):e._e(),o("el-button",{directives:[{name:"show",rawName:"v-show",value:e.showConfirmButton,expression:"showConfirmButton"}],ref:"confirm",class:[e.confirmButtonClasses],attrs:{loading:e.confirmButtonLoading,round:e.roundButton,size:"small"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.handleAction("confirm")}},nativeOn:{click:function(t){e.handleAction("confirm")}}},[e._v("\n "+e._s(e.confirmButtonText||e.t("el.messagebox.confirm"))+"\n ")])],1)])])])},l=[];i._withStripped=!0;var a=o(15),s=o.n(a),c=o(6),d=o.n(c),u=o(10),p=o.n(u),f=o(13),h=o.n(f),b=o(2),g=o(20),m=o(47),_=o.n(m),v=void 0,x={success:"success",info:"info",warning:"warning",error:"error"},y={mixins:[s.a,d.a],props:{modal:{default:!0},lockScroll:{default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{default:!0},closeOnPressEscape:{default:!0},closeOnHashChange:{default:!0},center:{default:!1,type:Boolean},roundButton:{default:!1,type:Boolean}},components:{ElInput:p.a,ElButton:h.a},computed:{icon:function(){var e=this.type;return this.iconClass||(e&&x[e]?"el-icon-"+x[e]:"")},confirmButtonClasses:function(){return"el-button--primary "+this.confirmButtonClass},cancelButtonClasses:function(){return""+this.cancelButtonClass}},methods:{getSafeClose:function(){var e=this,t=this.uid;return function(){e.$nextTick(function(){t===e.uid&&e.doClose()})}},doClose:function(){var e=this;this.visible&&(this.visible=!1,this._closing=!0,this.onClose&&this.onClose(),v.closeDialog(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose(),setTimeout(function(){e.action&&e.callback(e.action,e)}))},handleWrapperClick:function(){this.closeOnClickModal&&this.handleAction(this.distinguishCancelAndClose?"close":"cancel")},handleInputEnter:function(){if("textarea"!==this.inputType)return this.handleAction("confirm")},handleAction:function(e){("prompt"!==this.$type||"confirm"!==e||this.validate())&&(this.action=e,"function"==typeof this.beforeClose?(this.close=this.getSafeClose(),this.beforeClose(e,this,this.close)):this.doClose())},validate:function(){if("prompt"===this.$type){var e=this.inputPattern;if(e&&!e.test(this.inputValue||""))return this.editorErrorMessage=this.inputErrorMessage||Object(g.t)("el.messagebox.error"),Object(b.addClass)(this.getInputElement(),"invalid"),!1;var t=this.inputValidator;if("function"==typeof t){var o=t(this.inputValue);if(!1===o)return this.editorErrorMessage=this.inputErrorMessage||Object(g.t)("el.messagebox.error"),Object(b.addClass)(this.getInputElement(),"invalid"),!1;if("string"==typeof o)return this.editorErrorMessage=o,Object(b.addClass)(this.getInputElement(),"invalid"),!1}}return this.editorErrorMessage="",Object(b.removeClass)(this.getInputElement(),"invalid"),!0},getFirstFocus:function(){var e=this.$el.querySelector(".el-message-box__btns .el-button"),t=this.$el.querySelector(".el-message-box__btns .el-message-box__title");return e||t},getInputElement:function(){var e=this.$refs.input.$refs;return e.input||e.textarea},handleClose:function(){this.handleAction("close")}},watch:{inputValue:{immediate:!0,handler:function(e){var t=this;this.$nextTick(function(o){"prompt"===t.$type&&null!==e&&t.validate()})}},visible:function(e){var t=this;e&&(this.uid++,"alert"!==this.$type&&"confirm"!==this.$type||this.$nextTick(function(){t.$refs.confirm.$el.focus()}),this.focusAfterClosed=document.activeElement,v=new _.a(this.$el,this.focusAfterClosed,this.getFirstFocus())),"prompt"===this.$type&&(e?setTimeout(function(){t.$refs.input&&t.$refs.input.$el&&t.getInputElement().focus()},500):(this.editorErrorMessage="",Object(b.removeClass)(this.getInputElement(),"invalid")))}},mounted:function(){var e=this;this.$nextTick(function(){e.closeOnHashChange&&window.addEventListener("hashchange",e.close)})},beforeDestroy:function(){this.closeOnHashChange&&window.removeEventListener("hashchange",this.close),setTimeout(function(){v.closeDialog()})},data:function(){return{uid:1,title:void 0,message:"",type:"",iconClass:"",customClass:"",showInput:!1,inputValue:null,inputPlaceholder:"",inputType:"text",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,action:"",confirmButtonText:"",cancelButtonText:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonClass:"",confirmButtonDisabled:!1,cancelButtonClass:"",editorErrorMessage:null,callback:null,dangerouslyUseHTMLString:!1,focusAfterClosed:null,isOnComposition:!1,distinguishCancelAndClose:!1}}},w=y,k=o(0),F=Object(k.a)(w,i,l,!1,null,null,null);F.options.__file="packages/message-box/src/main.vue";var C=F.exports,E=o(9),S=o.n(E),z=o(23),O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A={title:null,message:"",type:"",iconClass:"",showInput:!1,showClose:!0,modalFade:!0,lockScroll:!0,closeOnClickModal:!0,closeOnPressEscape:!0,closeOnHashChange:!0,inputValue:null,inputPlaceholder:"",inputType:"text",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,confirmButtonPosition:"right",confirmButtonHighlight:!1,cancelButtonHighlight:!1,confirmButtonText:"",cancelButtonText:"",confirmButtonClass:"",cancelButtonClass:"",customClass:"",beforeClose:null,dangerouslyUseHTMLString:!1,center:!1,roundButton:!1,distinguishCancelAndClose:!1},$=n.a.extend(C),T=void 0,j=void 0,M=[],L=function(e){if(T){var t=T.callback;"function"==typeof t&&(j.showInput?t(j.inputValue,e):t(e)),T.resolve&&("confirm"===e?j.showInput?T.resolve({value:j.inputValue,action:e}):T.resolve(e):!T.reject||"cancel"!==e&&"close"!==e||T.reject(e))}},I=function(){j=new $({el:document.createElement("div")}),j.callback=L},P=function e(){if(j||I(),j.action="",(!j.visible||j.closeTimer)&&M.length>0){T=M.shift();var t=T.options;for(var o in t)t.hasOwnProperty(o)&&(j[o]=t[o]);void 0===t.callback&&(j.callback=L);var r=j.callback;j.callback=function(t,o){r(t,o),e()},Object(z.isVNode)(j.message)?(j.$slots.default=[j.message],j.message=null):delete j.$slots.default,["modal","showClose","closeOnClickModal","closeOnPressEscape","closeOnHashChange"].forEach(function(e){void 0===j[e]&&(j[e]=!0)}),document.body.appendChild(j.$el),n.a.nextTick(function(){j.visible=!0})}},N=function e(t,o){if(!n.a.prototype.$isServer){if("string"==typeof t||Object(z.isVNode)(t)?(t={message:t},"string"==typeof arguments[1]&&(t.title=arguments[1])):t.callback&&!o&&(o=t.callback),"undefined"!=typeof Promise)return new Promise(function(r,n){M.push({options:S()({},A,e.defaults,t),callback:o,resolve:r,reject:n}),P()});M.push({options:S()({},A,e.defaults,t),callback:o}),P()}};N.setDefaults=function(e){N.defaults=e},N.alert=function(e,t,o){return"object"===(void 0===t?"undefined":O(t))?(o=t,t=""):void 0===t&&(t=""),N(S()({title:t,message:e,$type:"alert",closeOnPressEscape:!1,closeOnClickModal:!1},o))},N.confirm=function(e,t,o){return"object"===(void 0===t?"undefined":O(t))?(o=t,t=""):void 0===t&&(t=""),N(S()({title:t,message:e,$type:"confirm",showCancelButton:!0},o))},N.prompt=function(e,t,o){return"object"===(void 0===t?"undefined":O(t))?(o=t,t=""):void 0===t&&(t=""),N(S()({title:t,message:e,showCancelButton:!0,showInput:!0,$type:"prompt"},o))},N.close=function(){j.doClose(),j.visible=!1,M=[],T=null};var D=N;t.default=D},9:function(e,t){e.exports=o(16)}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=75)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},15:function(e,t){e.exports=o(27)},23:function(e,t){e.exports=o(69)},7:function(e,t){e.exports=o(4)},75:function(e,t,o){"use strict";o.r(t);var r=o(7),n=o.n(r),i=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("transition",{attrs:{name:"el-message-fade"},on:{"after-leave":e.handleAfterLeave}},[o("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-message",e.type&&!e.iconClass?"el-message--"+e.type:"",e.center?"is-center":"",e.showClose?"is-closable":"",e.customClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:e.clearTimer,mouseleave:e.startTimer}},[e.iconClass?o("i",{class:e.iconClass}):o("i",{class:e.typeClass}),e._t("default",[e.dangerouslyUseHTMLString?o("p",{staticClass:"el-message__content",domProps:{innerHTML:e._s(e.message)}}):o("p",{staticClass:"el-message__content"},[e._v(e._s(e.message))])]),e.showClose?o("i",{staticClass:"el-message__closeBtn el-icon-close",on:{click:e.close}}):e._e()],2)])},l=[];i._withStripped=!0;var a={success:"success",info:"info",warning:"warning",error:"error"},s={data:function(){return{visible:!1,message:"",duration:3e3,type:"info",iconClass:"",customClass:"",onClose:null,showClose:!1,closed:!1,verticalOffset:20,timer:null,dangerouslyUseHTMLString:!1,center:!1}},computed:{typeClass:function(){return this.type&&!this.iconClass?"el-message__icon el-icon-"+a[this.type]:""},positionStyle:function(){return{top:this.verticalOffset+"px"}}},watch:{closed:function(e){e&&(this.visible=!1)}},methods:{handleAfterLeave:function(){this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose(this)},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout(function(){e.closed||e.close()},this.duration))},keydown:function(e){27===e.keyCode&&(this.closed||this.close())}},mounted:function(){this.startTimer(),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}},c=s,d=o(0),u=Object(d.a)(c,i,l,!1,null,null,null);u.options.__file="packages/message/src/main.vue";var p=u.exports,f=o(15),h=o(23),b=n.a.extend(p),g=void 0,m=[],_=1,v=function e(t){if(!n.a.prototype.$isServer){"string"==typeof(t=t||{})&&(t={message:t});var o=t.onClose,r="message_"+_++;t.onClose=function(){e.close(r,o)},g=new b({data:t}),g.id=r,Object(h.isVNode)(g.message)&&(g.$slots.default=[g.message],g.message=null),g.$mount(),document.body.appendChild(g.$el);var i=t.offset||20;return m.forEach(function(e){i+=e.$el.offsetHeight+16}),g.verticalOffset=i,g.visible=!0,g.$el.style.zIndex=f.PopupManager.nextZIndex(),m.push(g),g}};["success","warning","info","error"].forEach(function(e){v[e]=function(t){return"string"==typeof t&&(t={message:t}),t.type=e,v(t)}}),v.close=function(e,t){for(var o=m.length,r=-1,n=void 0,i=0;im.length-1))for(var l=r;l=0;e--)m[e].close()};var x=v;t.default=x}})},function(e,t){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=132)}({132:function(e,t,o){"use strict";o.r(t);var r={name:"ElRow",componentName:"ElRow",props:{tag:{type:String,default:"div"},gutter:Number,type:String,justify:{type:String,default:"start"},align:{type:String,default:"top"}},computed:{style:function(){var e={};return this.gutter&&(e.marginLeft="-"+this.gutter/2+"px",e.marginRight=e.marginLeft),e}},render:function(e){return e(this.tag,{class:["el-row","start"!==this.justify?"is-justify-"+this.justify:"","top"!==this.align?"is-align-"+this.align:"",{"el-row--flex":"flex"===this.type}],style:this.style},this.$slots.default)}};r.install=function(e){e.component(r.name,r)},t.default=r}})},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=130)}({130:function(e,t,o){"use strict";function r(e,t){var o=t.row,r=t.column,n=t.$index,l=r.property,a=l&&Object(i.getPropByPath)(o,l).v;return r&&r.formatter?r.formatter(o,r,a,n):a}function n(e,t){var o=t.row,r=t.treeNode,n=t.store;if(!r)return null;var i=[],l=function(e){e.stopPropagation(),n.loadOrToggle(o)};if(r.indent&&i.push(e("span",{class:"el-table__indent",style:{"padding-left":r.indent+"px"}})),"boolean"!=typeof r.expanded||r.noLazyChildren)i.push(e("span",{class:"el-table__placeholder"}));else{var a=["el-table__expand-icon",r.expanded?"el-table__expand-icon--expanded":""],s=["el-icon-arrow-right"];r.loading&&(s=["el-icon-loading"]),i.push(e("div",{class:a,on:{click:l}},[e("i",{class:s})]))}return i}o.r(t);var i=o(3),l={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},a={selection:{renderHeader:function(e,t){var o=t.store;return e("el-checkbox",{attrs:{disabled:o.states.data&&0===o.states.data.length,indeterminate:o.states.selection.length>0&&!this.isAllSelected,value:this.isAllSelected},nativeOn:{click:this.toggleAllSelection}})},renderCell:function(e,t){var o=t.row,r=t.column,n=t.store,i=t.$index;return e("el-checkbox",{nativeOn:{click:function(e){return e.stopPropagation()}},attrs:{value:n.isSelected(o),disabled:!!r.selectable&&!r.selectable.call(null,o,i)},on:{input:function(){n.commit("rowSelectedChanged",o)}}})},sortable:!1,resizable:!1},index:{renderHeader:function(e,t){return t.column.label||"#"},renderCell:function(e,t){var o=t.$index,r=t.column,n=o+1,i=r.index;return"number"==typeof i?n=o+i:"function"==typeof i&&(n=i(o)),e("div",[n])},sortable:!1},expand:{renderHeader:function(e,t){return t.column.label||""},renderCell:function(e,t){var o=t.row,r=t.store,n=["el-table__expand-icon"];return r.states.expandRows.indexOf(o)>-1&&n.push("el-table__expand-icon--expanded"),e("div",{class:n,on:{click:function(e){e.stopPropagation(),r.toggleRowExpansion(o)}}},[e("i",{class:"el-icon el-icon-arrow-right"})])},sortable:!1,resizable:!1,className:"el-table__expand-column"}},s=o(8),c=o(18),d=o.n(c),u=Object.assign||function(e){for(var t=1;t-1})}}},data:function(){return{isSubColumn:!1,columns:[]}},computed:{owner:function(){for(var e=this.$parent;e&&!e.tableId;)e=e.$parent;return e},columnOrTableParent:function(){for(var e=this.$parent;e&&!e.tableId&&!e.columnId;)e=e.$parent;return e},realWidth:function(){return Object(s.l)(this.width)},realMinWidth:function(){return Object(s.k)(this.minWidth)},realAlign:function(){return this.align?"is-"+this.align:null},realHeaderAlign:function(){return this.headerAlign?"is-"+this.headerAlign:this.realAlign}},methods:{getPropsData:function(){for(var e=this,t=arguments.length,o=Array(t),r=0;r2&&void 0!==arguments[2]?arguments[2]:"children",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"hasChildren",i=function(e){return!(Array.isArray(e)&&e.length)};e.forEach(function(e){if(e[n])return void t(e,null,0);var l=e[r];i(l)||o(e,l,0)})}o.d(t,"b",function(){return f}),o.d(t,"i",function(){return b}),o.d(t,"d",function(){return g}),o.d(t,"e",function(){return m}),o.d(t,"c",function(){return _}),o.d(t,"g",function(){return v}),o.d(t,"f",function(){return x}),o.d(t,"h",function(){return n}),o.d(t,"l",function(){return i}),o.d(t,"k",function(){return l}),o.d(t,"j",function(){return a}),o.d(t,"a",function(){return s}),o.d(t,"m",function(){return c}),o.d(t,"n",function(){return d});var u=o(3),p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},h=function(e){return null!==e&&"object"===(void 0===e?"undefined":p(e))},b=function(e,t,o,r,n){if(!t&&!r&&(!n||Array.isArray(n)&&!n.length))return e;o="string"==typeof o?"descending"===o?-1:1:o&&o<0?-1:1;var i=r?null:function(o,r){return n?(Array.isArray(n)||(n=[n]),n.map(function(t){return"string"==typeof t?Object(u.getValueByPath)(o,t):t(o,r,e)})):("$key"!==t&&h(o)&&"$value"in o&&(o=o.$value),[h(o)?Object(u.getValueByPath)(o,t):o])},l=function(e,t){if(r)return r(e.value,t.value);for(var o=0,n=e.key.length;ot.key[o])return 1}return 0};return e.map(function(e,t){return{value:e,index:t,key:i?i(e,t):null}}).sort(function(e,t){var r=l(e,t);return r||(r=e.index-t.index),r*o}).map(function(e){return e.value})},g=function(e,t){var o=null;return e.columns.forEach(function(e){e.id===t&&(o=e)}),o},m=function(e,t){for(var o=null,r=0;r2&&void 0!==arguments[2]?arguments[2]:"children",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"hasChildren",i=function(e){return!(Array.isArray(e)&&e.length)};e.forEach(function(e){if(e[n])return void t(e,null,0);var l=e[r];i(l)||o(e,l,0)})}o.d(t,"b",function(){return f}),o.d(t,"i",function(){return b}),o.d(t,"d",function(){return g}),o.d(t,"e",function(){return m}),o.d(t,"c",function(){return _}),o.d(t,"g",function(){return v}),o.d(t,"f",function(){return x}),o.d(t,"h",function(){return n}),o.d(t,"l",function(){return i}),o.d(t,"k",function(){return l}),o.d(t,"j",function(){return a}),o.d(t,"a",function(){return s}),o.d(t,"m",function(){return c}),o.d(t,"n",function(){return d});var u=o(3),p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},h=function(e){return null!==e&&"object"===(void 0===e?"undefined":p(e))},b=function(e,t,o,r,n){if(!t&&!r&&(!n||Array.isArray(n)&&!n.length))return e;o="string"==typeof o?"descending"===o?-1:1:o&&o<0?-1:1;var i=r?null:function(o,r){return n?(Array.isArray(n)||(n=[n]),n.map(function(t){return"string"==typeof t?Object(u.getValueByPath)(o,t):t(o,r,e)})):("$key"!==t&&h(o)&&"$value"in o&&(o=o.$value),[h(o)?Object(u.getValueByPath)(o,t):o])},l=function(e,t){if(r)return r(e.value,t.value);for(var o=0,n=e.key.length;ot.key[o])return 1}return 0};return e.map(function(e,t){return{value:e,index:t,key:i?i(e,t):null}}).sort(function(e,t){var r=l(e,t);return r||(r=e.index-t.index),r*o}).map(function(e){return e.value})},g=function(e,t){var o=null;return e.columns.forEach(function(e){e.id===t&&(o=e)}),o},m=function(e,t){for(var o=null,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Table is required.");var o=new M;return o.table=e,o.toggleAllSelection=I()(10,o._toggleAllSelection),Object.keys(t).forEach(function(e){o.states[e]=t[e]}),o}function n(e){var t={};return Object.keys(e).forEach(function(o){var r=e[o],n=void 0;"string"==typeof r?n=function(){return this.store.states[r]}:"function"==typeof r?n=function(){return r.call(this,this.store.states)}:console.error("invalid value type"),n&&(t[o]=n)}),t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}o.r(t);var l=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"el-table",class:[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX,"el-table--scrollable-y":e.layout.scrollY,"el-table--enable-row-hover":!e.store.states.isComplex,"el-table--enable-row-transition":0!==(e.store.states.data||[]).length&&(e.store.states.data||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],on:{mouseleave:function(t){e.handleMouseLeave(t)}}},[o("div",{ref:"hiddenColumns",staticClass:"hidden-columns"},[e._t("default")],2),e.showHeader?o("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"headerWrapper",staticClass:"el-table__header-wrapper"},[o("table-header",{ref:"tableHeader",style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"default-sort":e.defaultSort}})],1):e._e(),o("div",{ref:"bodyWrapper",staticClass:"el-table__body-wrapper",class:[e.layout.scrollX?"is-scrolling-"+e.scrollPosition:"is-scrolling-none"],style:[e.bodyHeight]},[o("table-body",{style:{width:e.bodyWidth},attrs:{context:e.context,store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.data&&0!==e.data.length?e._e():o("div",{ref:"emptyBlock",staticClass:"el-table__empty-block",style:e.emptyBlockStyle},[o("span",{staticClass:"el-table__empty-text"},[e._t("empty",[e._v(e._s(e.emptyText||e.t("el.table.emptyText")))])],2)]),e.$slots.append?o("div",{ref:"appendWrapper",staticClass:"el-table__append-wrapper"},[e._t("append")],2):e._e()],1),e.showSummary?o("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"},{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"footerWrapper",staticClass:"el-table__footer-wrapper"},[o("table-footer",{style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,"default-sort":e.defaultSort}})],1):e._e(),e.fixedColumns.length>0?o("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"fixedWrapper",staticClass:"el-table__fixed",style:[{width:e.layout.fixedWidth?e.layout.fixedWidth+"px":""},e.fixedHeight]},[e.showHeader?o("div",{ref:"fixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[o("table-header",{ref:"fixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,store:e.store}})],1):e._e(),o("div",{ref:"fixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[o("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"left",store:e.store,stripe:e.stripe,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"row-style":e.rowStyle}}),e.$slots.append?o("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?o("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"fixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[o("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?o("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"rightFixedWrapper",staticClass:"el-table__fixed-right",style:[{width:e.layout.rightFixedWidth?e.layout.rightFixedWidth+"px":"",right:e.layout.scrollY?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight]},[e.showHeader?o("div",{ref:"rightFixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[o("table-header",{ref:"rightFixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,store:e.store}})],1):e._e(),o("div",{ref:"rightFixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[o("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"right",store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.$slots.append?o("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?o("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"rightFixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[o("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?o("div",{ref:"rightFixedPatch",staticClass:"el-table__fixed-right-patch",style:{width:e.layout.scrollY?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight+"px"}}):e._e(),o("div",{directives:[{name:"show",rawName:"v-show",value:e.resizeProxyVisible,expression:"resizeProxyVisible"}],ref:"resizeProxy",staticClass:"el-table__column-resize-proxy"})])},a=[];l._withStripped=!0;var s=o(18),c=o.n(s),d=o(43),u=o(16),p=o(46),f=o.n(p),h="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,b=function(e,t){e&&e.addEventListener&&e.addEventListener(h?"DOMMouseScroll":"mousewheel",function(e){var o=f()(e);t&&t.apply(this,[e,o])})},g={bind:function(e,t){b(e,t.value)}},m=o(6),_=o.n(m),v=o(11),x=o.n(v),y=o(7),w=o.n(y),k=o(9),F=o.n(k),C=o(8),E={data:function(){return{states:{defaultExpandAll:!1,expandRows:[]}}},methods:{updateExpandRows:function(){var e=this.states,t=e.data,o=void 0===t?[]:t,r=e.rowKey,n=e.defaultExpandAll,i=e.expandRows;if(n)this.states.expandRows=o.slice();else if(r){var l=Object(C.f)(i,r);this.states.expandRows=o.reduce(function(e,t){var o=Object(C.g)(t,r);return l[o]&&e.push(t),e},[])}else this.states.expandRows=[]},toggleRowExpansion:function(e,t){Object(C.m)(this.states.expandRows,e,t)&&(this.table.$emit("expand-change",e,this.states.expandRows.slice()),this.scheduleLayout())},setExpandRowKeys:function(e){this.assertRowKey();var t=this.states,o=t.data,r=t.rowKey,n=Object(C.f)(o,r);this.states.expandRows=e.reduce(function(e,t){var o=n[t];return o&&e.push(o.row),e},[])},isRowExpanded:function(e){var t=this.states,o=t.expandRows,r=void 0===o?[]:o,n=t.rowKey;return n?!!Object(C.f)(r,n)[Object(C.g)(e,n)]:-1!==r.indexOf(e)}}},S=o(3),z={data:function(){return{states:{_currentRowKey:null,currentRow:null}}},methods:{setCurrentRowKey:function(e){this.assertRowKey(),this.states._currentRowKey=e,this.setCurrentRowByKey(e)},restoreCurrentRowKey:function(){this.states._currentRowKey=null},setCurrentRowByKey:function(e){var t=this.states,o=t.data,r=void 0===o?[]:o,n=t.rowKey,i=null;n&&(i=Object(S.arrayFind)(r,function(t){return Object(C.g)(t,n)===e})),t.currentRow=i},updateCurrentRow:function(e){var t=this.states,o=this.table,r=t.currentRow;if(e&&e!==r)return t.currentRow=e,void o.$emit("current-change",e,r);!e&&r&&(t.currentRow=null,o.$emit("current-change",null,r))},updateCurrentRowData:function(){var e=this.states,t=this.table,o=e.rowKey,r=e._currentRowKey,n=e.data||[],i=e.currentRow;if(-1===n.indexOf(i)&&i){if(o){var l=Object(C.g)(i,o);this.setCurrentRowByKey(l)}else e.currentRow=null;null===e.currentRow&&t.$emit("current-change",null,i)}else r&&(this.setCurrentRowByKey(r),this.restoreCurrentRowKey())}}},O=Object.assign||function(e){for(var t=1;t0&&t[0]&&"selection"===t[0].type&&!t[0].fixed&&(t[0].fixed=!0,e.fixedColumns.unshift(t[0]));var o=t.filter(function(e){return!e.fixed});e.originColumns=[].concat(e.fixedColumns).concat(o).concat(e.rightFixedColumns);var r=T(o),n=T(e.fixedColumns),i=T(e.rightFixedColumns);e.leafColumnsLength=r.length,e.fixedLeafColumnsLength=n.length,e.rightFixedLeafColumnsLength=i.length,e.columns=[].concat(n).concat(r).concat(i),e.isComplex=e.fixedColumns.length>0||e.rightFixedColumns.length>0},scheduleLayout:function(e){e&&this.updateColumns(),this.table.debouncedUpdateLayout()},isSelected:function(e){var t=this.states.selection;return(void 0===t?[]:t).indexOf(e)>-1},clearSelection:function(){var e=this.states;e.isAllSelected=!1,e.selection.length&&(e.selection=[],this.table.$emit("selection-change",[]))},cleanSelection:function(){var e=this.states,t=e.data,o=e.rowKey,r=e.selection,n=void 0;if(o){n=[];var i=Object(C.f)(r,o),l=Object(C.f)(t,o);for(var a in i)i.hasOwnProperty(a)&&!l[a]&&n.push(i[a].row)}else n=r.filter(function(e){return-1===t.indexOf(e)});if(n.length){var s=r.filter(function(e){return-1===n.indexOf(e)});e.selection=s,this.table.$emit("selection-change",s.slice())}},toggleRowSelection:function(e,t){var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Object(C.m)(this.states.selection,e,t)){var r=(this.states.selection||[]).slice();o&&this.table.$emit("select",r,e),this.table.$emit("selection-change",r)}},_toggleAllSelection:function(){var e=this.states,t=e.data,o=void 0===t?[]:t,r=e.selection,n=e.selectOnIndeterminate?!e.isAllSelected:!(e.isAllSelected||r.length);e.isAllSelected=n;var i=!1;o.forEach(function(t,o){e.selectable?e.selectable.call(null,t,o)&&Object(C.m)(r,t,n)&&(i=!0):Object(C.m)(r,t,n)&&(i=!0)}),i&&this.table.$emit("selection-change",r?r.slice():[]),this.table.$emit("select-all",r)},updateSelectionByRowKey:function(){var e=this.states,t=e.selection,o=e.rowKey,r=e.data,n=Object(C.f)(t,o);r.forEach(function(e){var r=Object(C.g)(e,o),i=n[r];i&&(t[i.index]=e)})},updateAllSelected:function(){var e=this.states,t=e.selection,o=e.rowKey,r=e.selectable,n=e.data||[];if(0===n.length)return void(e.isAllSelected=!1);var i=void 0;o&&(i=Object(C.f)(t,o));for(var l=!0,a=0,s=0,c=n.length;s1?o-1:0),n=1;nthis.bodyHeight;return this.scrollY=r,o!==r}return!1},e.prototype.setHeight=function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"height";if(!w.a.prototype.$isServer){var r=this.table.$el;if(e=Object(C.j)(e),this.height=e,!r&&(e||0===e))return w.a.nextTick(function(){return t.setHeight(e,o)});"number"==typeof e?(r.style[o]=e+"px",this.updateElsHeight()):"string"==typeof e&&(r.style[o]=e,this.updateElsHeight())}},e.prototype.setMaxHeight=function(e){this.setHeight(e,"max-height")},e.prototype.getFlattenColumns=function(){var e=[];return this.table.columns.forEach(function(t){t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e},e.prototype.updateElsHeight=function(){var e=this;if(!this.table.$ready)return w.a.nextTick(function(){return e.updateElsHeight()});var t=this.table.$refs,o=t.headerWrapper,r=t.appendWrapper,n=t.footerWrapper;if(this.appendHeight=r?r.offsetHeight:0,!this.showHeader||o){var i=o?o.querySelector(".el-table__header tr"):null,l=this.headerDisplayNone(i),a=this.headerHeight=this.showHeader?o.offsetHeight:0;if(this.showHeader&&!l&&o.offsetWidth>0&&(this.table.columns||[]).length>0&&a<2)return w.a.nextTick(function(){return e.updateElsHeight()});var s=this.tableHeight=this.table.$el.clientHeight,c=this.footerHeight=n?n.offsetHeight:0;null!==this.height&&(this.bodyHeight=s-a-c+(n?1:0)),this.fixedBodyHeight=this.scrollX?this.bodyHeight-this.gutterWidth:this.bodyHeight;var d=!(this.store.states.data&&this.store.states.data.length);this.viewportHeight=this.scrollX?s-(d?0:this.gutterWidth):s,this.updateScrollY(),this.notifyObservers("scrollable")}},e.prototype.headerDisplayNone=function(e){if(!e)return!0;for(var t=e;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1},e.prototype.updateColumnsWidth=function(){if(!w.a.prototype.$isServer){var e=this.fit,t=this.table.$el.clientWidth,o=0,r=this.getFlattenColumns(),n=r.filter(function(e){return"number"!=typeof e.width});if(r.forEach(function(e){"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)}),n.length>0&&e){r.forEach(function(e){o+=e.width||e.minWidth||80});var i=this.scrollY?this.gutterWidth:0;if(o<=t-i){this.scrollX=!1;var l=t-i-o;if(1===n.length)n[0].realWidth=(n[0].minWidth||80)+l;else{var a=n.reduce(function(e,t){return e+(t.minWidth||80)},0),s=l/a,c=0;n.forEach(function(e,t){if(0!==t){var o=Math.floor((e.minWidth||80)*s);c+=o,e.realWidth=(e.minWidth||80)+o}}),n[0].realWidth=(n[0].minWidth||80)+l-c}}else this.scrollX=!0,n.forEach(function(e){e.realWidth=e.minWidth});this.bodyWidth=Math.max(o,t),this.table.resizeState.width=this.bodyWidth}else r.forEach(function(e){e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,o+=e.realWidth}),this.scrollX=o>t,this.bodyWidth=o;var d=this.store.states.fixedColumns;if(d.length>0){var u=0;d.forEach(function(e){u+=e.realWidth||e.width}),this.fixedWidth=u}var p=this.store.states.rightFixedColumns;if(p.length>0){var f=0;p.forEach(function(e){f+=e.realWidth||e.width}),this.rightFixedWidth=f}this.notifyObservers("columns")}},e.prototype.addObserver=function(e){this.observers.push(e)},e.prototype.removeObserver=function(e){var t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)},e.prototype.notifyObservers=function(e){var t=this;this.observers.forEach(function(o){switch(e){case"columns":o.onColumnsChange(t);break;case"scrollable":o.onScrollableChange(t);break;default:throw new Error("Table Layout don't have event "+e+".")}})},e}(),R=D,B=o(2),H=o(29),W=o.n(H),q={created:function(){this.tableLayout.addObserver(this)},destroyed:function(){this.tableLayout.removeObserver(this)},computed:{tableLayout:function(){var e=this.layout;if(!e&&this.table&&(e=this.table.layout),!e)throw new Error("Can not find table layout.");return e}},mounted:function(){this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout)},updated:function(){this.__updated__||(this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout),this.__updated__=!0)},methods:{onColumnsChange:function(e){var t=this.$el.querySelectorAll("colgroup > col");if(t.length){var o=e.getFlattenColumns(),r={};o.forEach(function(e){r[e.id]=e});for(var n=0,i=t.length;n col[name=gutter]"),o=0,r=t.length;o=this.leftFixedLeafCount:"right"===this.fixed?e=this.columnsCount-this.rightFixedLeafCount},getSpan:function(e,t,o,r){var n=1,i=1,l=this.table.spanMethod;if("function"==typeof l){var a=l({row:e,column:t,rowIndex:o,columnIndex:r});Array.isArray(a)?(n=a[0],i=a[1]):"object"===(void 0===a?"undefined":U(a))&&(n=a.rowspan,i=a.colspan)}return{rowspan:n,colspan:i}},getRowStyle:function(e,t){var o=this.table.rowStyle;return"function"==typeof o?o.call(null,{row:e,rowIndex:t}):o||null},getRowClass:function(e,t){var o=["el-table__row"];this.table.highlightCurrentRow&&e===this.store.states.currentRow&&o.push("current-row"),this.stripe&&t%2==1&&o.push("el-table__row--striped");var r=this.table.rowClassName;return"string"==typeof r?o.push(r):"function"==typeof r&&o.push(r.call(null,{row:e,rowIndex:t})),this.store.states.expandRows.indexOf(e)>-1&&o.push("expanded"),o},getCellStyle:function(e,t,o,r){var n=this.table.cellStyle;return"function"==typeof n?n.call(null,{rowIndex:e,columnIndex:t,row:o,column:r}):n},getCellClass:function(e,t,o,r){var n=[r.id,r.align,r.className];this.isColumnHidden(t)&&n.push("is-hidden");var i=this.table.cellClassName;return"string"==typeof i?n.push(i):"function"==typeof i&&n.push(i.call(null,{rowIndex:e,columnIndex:t,row:o,column:r})),n.join(" ")},getColspanRealWidth:function(e,t,o){return t<1?e[o].realWidth:e.map(function(e){return e.realWidth}).slice(o,o+t).reduce(function(e,t){return e+t},-1)},handleCellMouseEnter:function(e,t){var o=this.table,r=Object(C.b)(e);if(r){var n=Object(C.c)(o,r),i=o.hoverState={cell:r,column:n,row:t};o.$emit("cell-mouse-enter",i.row,i.column,i.cell,e)}var l=e.target.querySelector(".cell");if(Object(B.hasClass)(l,"el-tooltip")&&l.childNodes.length){var a=document.createRange();if(a.setStart(l,0),a.setEnd(l,l.childNodes.length),(a.getBoundingClientRect().width+((parseInt(Object(B.getStyle)(l,"paddingLeft"),10)||0)+(parseInt(Object(B.getStyle)(l,"paddingRight"),10)||0))>l.offsetWidth||l.scrollWidth>l.offsetWidth)&&this.$refs.tooltip){var s=this.$refs.tooltip;this.tooltipContent=r.innerText||r.textContent,s.referenceElm=r,s.$refs.popper&&(s.$refs.popper.style.display="none"),s.doDestroy(),s.setExpectedState(!0),this.activateTooltip(s)}}},handleCellMouseLeave:function(e){var t=this.$refs.tooltip;if(t&&(t.setExpectedState(!1),t.handleClosePopper()),Object(C.b)(e)){var o=this.table.hoverState||{};this.table.$emit("cell-mouse-leave",o.row,o.column,o.cell,e)}},handleMouseEnter:I()(30,function(e){this.store.commit("setHoverRow",e)}),handleMouseLeave:I()(30,function(){this.store.commit("setHoverRow",null)}),handleContextMenu:function(e,t){this.handleEvent(e,t,"contextmenu")},handleDoubleClick:function(e,t){this.handleEvent(e,t,"dblclick")},handleClick:function(e,t){this.store.commit("setCurrentRow",t),this.handleEvent(e,t,"click")},handleEvent:function(e,t,o){var r=this.table,n=Object(C.b)(e),i=void 0;n&&(i=Object(C.c)(r,n))&&r.$emit("cell-"+o,t,i,n,e),r.$emit("row-"+o,t,i,e)},rowRender:function(e,t,o){var r=this,n=this.$createElement,i=this.treeIndent,l=this.columns,a=this.firstDefaultColumnIndex,s=l.map(function(e,t){return r.isColumnHidden(t)}),c=this.getRowClass(e,t),d=!0;return o&&(c.push("el-table__row--level-"+o.level),d=o.display),n("tr",{style:[d?null:{display:"none"},this.getRowStyle(e,t)],class:c,key:this.getKeyOfRow(e,t),on:{dblclick:function(t){return r.handleDoubleClick(t,e)},click:function(t){return r.handleClick(t,e)},contextmenu:function(t){return r.handleContextMenu(t,e)},mouseenter:function(e){return r.handleMouseEnter(t)},mouseleave:this.handleMouseLeave}},[l.map(function(c,d){var u=r.getSpan(e,c,t,d),p=u.rowspan,f=u.colspan;if(!p||!f)return null;var h=V({},c);h.realWidth=r.getColspanRealWidth(l,f,d);var b={store:r.store,_self:r.context||r.table.$vnode.context,column:h,row:e,$index:t};return d===a&&o&&(b.treeNode={indent:o.level*i,level:o.level},"boolean"==typeof o.expanded&&(b.treeNode.expanded=o.expanded,"loading"in o&&(b.treeNode.loading=o.loading),"noLazyChildren"in o&&(b.treeNode.noLazyChildren=o.noLazyChildren))),n("td",{style:r.getCellStyle(t,d,e,c),class:r.getCellClass(t,d,e,c),attrs:{rowspan:p,colspan:f},on:{mouseenter:function(t){return r.handleCellMouseEnter(t,e)},mouseleave:r.handleCellMouseLeave}},[c.renderCell.call(r._renderProxy,r.$createElement,b,s[d])])})])},wrappedRowRender:function(e,t){var o=this,r=this.$createElement,n=this.store,i=n.isRowExpanded,l=n.assertRowKey,a=n.states,s=a.treeData,c=a.lazyTreeNodeMap,d=a.childrenColumnName,u=a.rowKey;if(this.hasExpandColumn&&i(e)){var p=this.table.renderExpanded,f=this.rowRender(e,t);return p?[[f,r("tr",{key:"expanded-row__"+f.key},[r("td",{attrs:{colspan:this.columnsCount},class:"el-table__expanded-cell"},[p(this.$createElement,{row:e,$index:t,store:this.store})])])]]:(console.error("[Element Error]renderExpanded is required."),f)}if(Object.keys(s).length){l();var h=Object(C.g)(e,u),b=s[h],g=null;b&&(g={expanded:b.expanded,level:b.level,display:!0},"boolean"==typeof b.lazy&&("boolean"==typeof b.loaded&&b.loaded&&(g.noLazyChildren=!(b.children&&b.children.length)),g.loading=b.loading));var m=[this.rowRender(e,t,g)];if(b){var _=0;b.display=!0;var v=c[h]||e[d];!function e(r,n){r&&r.length&&n&&r.forEach(function(r){var i={display:n.display&&n.expanded,level:n.level+1},l=Object(C.g)(r,u);if(void 0===l||null===l)throw new Error("for nested data item, row-key is required.");if(b=V({},s[l]),b&&(i.expanded=b.expanded,b.level=b.level||i.level,b.display=!(!b.expanded||!i.display),"boolean"==typeof b.lazy&&("boolean"==typeof b.loaded&&b.loaded&&(i.noLazyChildren=!(b.children&&b.children.length)),i.loading=b.loading)),_++,m.push(o.rowRender(r,t+_,i)),b){var a=c[l]||r[d];e(a,b)}})}(v,b)}return m}return this.rowRender(e,t)}}},K=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("transition",{attrs:{name:"el-zoom-in-top"}},[e.multiple?o("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[o("div",{staticClass:"el-table-filter__content"},[o("el-scrollbar",{attrs:{"wrap-class":"el-table-filter__wrap"}},[o("el-checkbox-group",{staticClass:"el-table-filter__checkbox-group",model:{value:e.filteredValue,callback:function(t){e.filteredValue=t},expression:"filteredValue"}},e._l(e.filters,function(t){return o("el-checkbox",{key:t.value,attrs:{label:t.value}},[e._v(e._s(t.text))])}),1)],1)],1),o("div",{staticClass:"el-table-filter__bottom"},[o("button",{class:{"is-disabled":0===e.filteredValue.length},attrs:{disabled:0===e.filteredValue.length},on:{click:e.handleConfirm}},[e._v(e._s(e.t("el.table.confirmFilter")))]),o("button",{on:{click:e.handleReset}},[e._v(e._s(e.t("el.table.resetFilter")))])])]):o("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[o("ul",{staticClass:"el-table-filter__list"},[o("li",{staticClass:"el-table-filter__list-item",class:{"is-active":void 0===e.filterValue||null===e.filterValue},on:{click:function(t){e.handleSelect(null)}}},[e._v(e._s(e.t("el.table.clearFilter")))]),e._l(e.filters,function(t){return o("li",{key:t.value,staticClass:"el-table-filter__list-item",class:{"is-active":e.isActive(t)},attrs:{label:t.value},on:{click:function(o){e.handleSelect(t.value)}}},[e._v(e._s(t.text))])})],2)])])},X=[];K._withStripped=!0;var G=o(5),J=o.n(G),Z=o(15),Q=o(12),ee=o.n(Q),te=[];!w.a.prototype.$isServer&&document.addEventListener("click",function(e){te.forEach(function(t){var o=e.target;t&&t.$el&&(o===t.$el||t.$el.contains(o)||t.handleOutsideClick&&t.handleOutsideClick(e))})});var oe={open:function(e){e&&te.push(e)},close:function(e){-1!==te.indexOf(e)&&te.splice(e,1)}},re=o(39),ne=o.n(re),ie=o(14),le=o.n(ie),ae={name:"ElTableFilterPanel",mixins:[J.a,_.a],directives:{Clickoutside:ee.a},components:{ElCheckbox:c.a,ElCheckboxGroup:ne.a,ElScrollbar:le.a},props:{placement:{type:String,default:"bottom-end"}},methods:{isActive:function(e){return e.value===this.filterValue},handleOutsideClick:function(){var e=this;setTimeout(function(){e.showPopper=!1},16)},handleConfirm:function(){this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleReset:function(){this.filteredValue=[],this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleSelect:function(e){this.filterValue=e,void 0!==e&&null!==e?this.confirmFilter(this.filteredValue):this.confirmFilter([]),this.handleOutsideClick()},confirmFilter:function(e){this.table.store.commit("filterChange",{column:this.column,values:e}),this.table.store.updateAllSelected()}},data:function(){return{table:null,cell:null,column:null}},computed:{filters:function(){return this.column&&this.column.filters},filterValue:{get:function(){return(this.column.filteredValue||[])[0]},set:function(e){this.filteredValue&&(void 0!==e&&null!==e?this.filteredValue.splice(0,1,e):this.filteredValue.splice(0,1))}},filteredValue:{get:function(){return this.column?this.column.filteredValue||[]:[]},set:function(e){this.column&&(this.column.filteredValue=e)}},multiple:function(){return!this.column||this.column.filterMultiple}},mounted:function(){var e=this;this.popperElm=this.$el,this.referenceElm=this.cell,this.table.bodyWrapper.addEventListener("scroll",function(){e.updatePopper()}),this.$watch("showPopper",function(t){e.column&&(e.column.filterOpened=t),t?oe.open(e):oe.close(e)})},watch:{showPopper:function(e){!0===e&&parseInt(this.popperJS._popper.style.zIndex,10)1;return n&&(this.$parent.isGroup=!0),e("table",{class:"el-table__header",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",[this.columns.map(function(t){return e("col",{attrs:{name:t.id},key:t.id})}),this.hasGutter?e("col",{attrs:{name:"gutter"}}):""]),e("thead",{class:[{"is-group":n,"has-gutter":this.hasGutter}]},[this._l(r,function(o,r){return e("tr",{style:t.getHeaderRowStyle(r),class:t.getHeaderRowClass(r)},[o.map(function(n,i){return e("th",{attrs:{colspan:n.colSpan,rowspan:n.rowSpan},on:{mousemove:function(e){return t.handleMouseMove(e,n)},mouseout:t.handleMouseOut,mousedown:function(e){return t.handleMouseDown(e,n)},click:function(e){return t.handleHeaderClick(e,n)},contextmenu:function(e){return t.handleHeaderContextMenu(e,n)}},style:t.getHeaderCellStyle(r,i,o,n),class:t.getHeaderCellClass(r,i,o,n),key:n.id},[e("div",{class:["cell",n.filteredValue&&n.filteredValue.length>0?"highlight":"",n.labelClassName]},[n.renderHeader?n.renderHeader.call(t._renderProxy,e,{column:n,$index:i,store:t.store,_self:t.$parent.$vnode.context}):n.label,n.sortable?e("span",{class:"caret-wrapper",on:{click:function(e){return t.handleSortClick(e,n)}}},[e("i",{class:"sort-caret ascending",on:{click:function(e){return t.handleSortClick(e,n,"ascending")}}}),e("i",{class:"sort-caret descending",on:{click:function(e){return t.handleSortClick(e,n,"descending")}}})]):"",n.filterable?e("span",{class:"el-table__column-filter-trigger",on:{click:function(e){return t.handleFilterClick(e,n)}}},[e("i",{class:["el-icon-arrow-down",n.filterOpened?"el-icon-arrow-up":""]})]):""])])}),t.hasGutter?e("th",{class:"gutter"}):""])})])])},props:{fixed:String,store:{required:!0},border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},components:{ElCheckbox:c.a},computed:pe({table:function(){return this.$parent},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},n({columns:"columns",isAllSelected:"isAllSelected",leftFixedLeafCount:"fixedLeafColumnsLength",rightFixedLeafCount:"rightFixedLeafColumnsLength",columnsCount:function(e){return e.columns.length},leftFixedCount:function(e){return e.fixedColumns.length},rightFixedCount:function(e){return e.rightFixedColumns.length}})),created:function(){this.filterPanels={}},mounted:function(){var e=this;this.$nextTick(function(){var t=e.defaultSort,o=t.prop,r=t.order;e.store.commit("sort",{prop:o,order:r,init:!0})})},beforeDestroy:function(){var e=this.filterPanels;for(var t in e)e.hasOwnProperty(t)&&e[t]&&e[t].$destroy(!0)},methods:{isCellHidden:function(e,t){for(var o=0,r=0;r=this.leftFixedLeafCount:"right"===this.fixed?o=this.columnsCount-this.rightFixedLeafCount},getHeaderRowStyle:function(e){var t=this.table.headerRowStyle;return"function"==typeof t?t.call(null,{rowIndex:e}):t},getHeaderRowClass:function(e){var t=[],o=this.table.headerRowClassName;return"string"==typeof o?t.push(o):"function"==typeof o&&t.push(o.call(null,{rowIndex:e})),t.join(" ")},getHeaderCellStyle:function(e,t,o,r){var n=this.table.headerCellStyle;return"function"==typeof n?n.call(null,{rowIndex:e,columnIndex:t,row:o,column:r}):n},getHeaderCellClass:function(e,t,o,r){var n=[r.id,r.order,r.headerAlign,r.className,r.labelClassName];0===e&&this.isCellHidden(t,o)&&n.push("is-hidden"),r.children||n.push("is-leaf"),r.sortable&&n.push("is-sortable");var i=this.table.headerCellClassName;return"string"==typeof i?n.push(i):"function"==typeof i&&n.push(i.call(null,{rowIndex:e,columnIndex:t,row:o,column:r})),n.join(" ")},toggleAllSelection:function(e){e.stopPropagation(),this.store.commit("toggleAllSelection")},handleFilterClick:function(e,t){e.stopPropagation();var o=e.target,r="TH"===o.tagName?o:o.parentNode;if(!Object(B.hasClass)(r,"noclick")){r=r.querySelector(".el-table__column-filter-trigger")||r;var n=this.$parent,i=this.filterPanels[t.id];if(i&&t.filterOpened)return void(i.showPopper=!1);i||(i=new w.a(ue),this.filterPanels[t.id]=i,t.filterPlacement&&(i.placement=t.filterPlacement),i.table=n,i.cell=r,i.column=t,!this.$isServer&&i.$mount(document.createElement("div"))),setTimeout(function(){i.showPopper=!0},16)}},handleHeaderClick:function(e,t){!t.filters&&t.sortable?this.handleSortClick(e,t):t.filterable&&!t.sortable&&this.handleFilterClick(e,t),this.$parent.$emit("header-click",t,e)},handleHeaderContextMenu:function(e,t){this.$parent.$emit("header-contextmenu",t,e)},handleMouseDown:function(e,t){var o=this;if(!this.$isServer&&!(t.children&&t.children.length>0)&&this.draggingColumn&&this.border){this.dragging=!0,this.$parent.resizeProxyVisible=!0;var r=this.$parent,n=r.$el,i=n.getBoundingClientRect().left,l=this.$el.querySelector("th."+t.id),a=l.getBoundingClientRect(),s=a.left-i+30;Object(B.addClass)(l,"noclick"),this.dragState={startMouseLeft:e.clientX,startLeft:a.right-i,startColumnLeft:a.left-i,tableLeft:i};var c=r.$refs.resizeProxy;c.style.left=this.dragState.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};var d=function(e){var t=e.clientX-o.dragState.startMouseLeft,r=o.dragState.startLeft+t;c.style.left=Math.max(s,r)+"px"},u=function n(){if(o.dragging){var i=o.dragState,a=i.startColumnLeft,s=i.startLeft,u=parseInt(c.style.left,10),p=u-a;t.width=t.realWidth=p,r.$emit("header-dragend",t.width,s-a,t,e),o.store.scheduleLayout(),document.body.style.cursor="",o.dragging=!1,o.draggingColumn=null,o.dragState={},r.resizeProxyVisible=!1}document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",n),document.onselectstart=null,document.ondragstart=null,setTimeout(function(){Object(B.removeClass)(l,"noclick")},0)};document.addEventListener("mousemove",d),document.addEventListener("mouseup",u)}},handleMouseMove:function(e,t){if(!(t.children&&t.children.length>0)){for(var o=e.target;o&&"TH"!==o.tagName;)o=o.parentNode;if(t&&t.resizable&&!this.dragging&&this.border){var r=o.getBoundingClientRect(),n=document.body.style;r.width>12&&r.right-e.pageX<8?(n.cursor="col-resize",Object(B.hasClass)(o,"is-sortable")&&(o.style.cursor="col-resize"),this.draggingColumn=t):this.dragging||(n.cursor="",Object(B.hasClass)(o,"is-sortable")&&(o.style.cursor="pointer"),this.draggingColumn=null)}}},handleMouseOut:function(){this.$isServer||(document.body.style.cursor="")},toggleOrder:function(e){var t=e.order,o=e.sortOrders;if(""===t)return o[0];var r=o.indexOf(t||null);return o[r>o.length-2?0:r+1]},handleSortClick:function(e,t,o){e.stopPropagation();for(var r=t.order===o?null:o||this.toggleOrder(t),n=e.target;n&&"TH"!==n.tagName;)n=n.parentNode;if(n&&"TH"===n.tagName&&Object(B.hasClass)(n,"noclick"))return void Object(B.removeClass)(n,"noclick");if(t.sortable){var i=this.store.states,l=i.sortProp,a=void 0,s=i.sortingColumn;(s!==t||s===t&&null===s.order)&&(s&&(s.order=null),i.sortingColumn=t,l=t.property),a=t.order=r||null,i.sortProp=l,i.sortOrder=a,this.store.commit("changeSortCondition")}}},data:function(){return{draggingColumn:null,dragging:!1,dragState:{}}}},ge=Object.assign||function(e){for(var t=1;t=this.leftFixedLeafCount;if("right"===this.fixed){for(var r=0,n=0;n=this.columnsCount-this.rightFixedCount},getRowClasses:function(e,t){var o=[e.id,e.align,e.labelClassName];return e.className&&o.push(e.className),this.isCellHidden(t,this.columns,e)&&o.push("is-hidden"),e.children||o.push("is-leaf"),o}}},_e=Object.assign||function(e){for(var t=1;t0){var r=o.scrollTop;t.pixelY<0&&0!==r&&e.preventDefault(),t.pixelY>0&&o.scrollHeight-o.clientHeight>r&&e.preventDefault(),o.scrollTop+=Math.ceil(t.pixelY/5)}else o.scrollLeft+=Math.ceil(t.pixelX/5)},handleHeaderFooterMousewheel:function(e,t){var o=t.pixelX,r=t.pixelY;Math.abs(o)>=Math.abs(r)&&(this.bodyWrapper.scrollLeft+=t.pixelX/5)},syncPostion:Object(d.throttle)(20,function(){var e=this.bodyWrapper,t=e.scrollLeft,o=e.scrollTop,r=e.offsetWidth,n=e.scrollWidth,i=this.$refs,l=i.headerWrapper,a=i.footerWrapper,s=i.fixedBodyWrapper,c=i.rightFixedBodyWrapper;l&&(l.scrollLeft=t),a&&(a.scrollLeft=t),s&&(s.scrollTop=o),c&&(c.scrollTop=o);var d=n-r-1;this.scrollPosition=t>=d?"right":0===t?"left":"middle"}),bindEvents:function(){this.bodyWrapper.addEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(u.addResizeListener)(this.$el,this.resizeListener)},unbindEvents:function(){this.bodyWrapper.removeEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(u.removeResizeListener)(this.$el,this.resizeListener)},resizeListener:function(){if(this.$ready){var e=!1,t=this.$el,o=this.resizeState,r=o.width,n=o.height,i=t.offsetWidth;r!==i&&(e=!0);var l=t.offsetHeight;(this.height||this.shouldUpdateHeight)&&n!==l&&(e=!0),e&&(this.resizeState.width=i,this.resizeState.height=l,this.doLayout())}},doLayout:function(){this.shouldUpdateHeight&&this.layout.updateElsHeight(),this.layout.updateColumnsWidth()},sort:function(e,t){this.store.commit("sort",{prop:e,order:t})},toggleAllSelection:function(){this.store.commit("toggleAllSelection")}},computed:_e({tableSize:function(){return this.size||(this.$ELEMENT||{}).size},bodyWrapper:function(){return this.$refs.bodyWrapper},shouldUpdateHeight:function(){return this.height||this.maxHeight||this.fixedColumns.length>0||this.rightFixedColumns.length>0},bodyWidth:function(){var e=this.layout,t=e.bodyWidth,o=e.scrollY,r=e.gutterWidth;return t?t-(o?r:0)+"px":""},bodyHeight:function(){var e=this.layout,t=e.headerHeight,o=void 0===t?0:t,r=e.bodyHeight,n=e.footerHeight,i=void 0===n?0:n;if(this.height)return{height:r?r+"px":""};if(this.maxHeight){var l=Object(C.j)(this.maxHeight);if("number"==typeof l)return{"max-height":l-i-(this.showHeader?o:0)+"px"}}return{}},fixedBodyHeight:function(){if(this.height)return{height:this.layout.fixedBodyHeight?this.layout.fixedBodyHeight+"px":""};if(this.maxHeight){var e=Object(C.j)(this.maxHeight);if("number"==typeof e)return e=this.layout.scrollX?e-this.layout.gutterWidth:e,this.showHeader&&(e-=this.layout.headerHeight),e-=this.layout.footerHeight,{"max-height":e+"px"}}return{}},fixedHeight:function(){return this.maxHeight?this.showSummary?{bottom:0}:{bottom:this.layout.scrollX&&this.data.length?this.layout.gutterWidth+"px":""}:this.showSummary?{height:this.layout.tableHeight?this.layout.tableHeight+"px":""}:{height:this.layout.viewportHeight?this.layout.viewportHeight+"px":""}},emptyBlockStyle:function(){if(this.data&&this.data.length)return null;var e="100%";return this.layout.appendHeight&&(e="calc(100% - "+this.layout.appendHeight+"px)"),{width:this.bodyWidth,height:e}}},n({selection:"selection",columns:"columns",tableData:"data",fixedColumns:"fixedColumns",rightFixedColumns:"rightFixedColumns"})),watch:{height:{immediate:!0,handler:function(e){this.layout.setHeight(e)}},maxHeight:{immediate:!0,handler:function(e){this.layout.setMaxHeight(e)}},currentRowKey:{immediate:!0,handler:function(e){this.rowKey&&this.store.setCurrentRowKey(e)}},data:{immediate:!0,handler:function(e){this.store.commit("setData",e)}},expandRowKeys:{immediate:!0,handler:function(e){e&&this.store.setExpandRowKeysAdapter(e)}}},created:function(){var e=this;this.tableId="el-table_"+ve++,this.debouncedUpdateLayout=Object(d.debounce)(50,function(){return e.doLayout()})},mounted:function(){var e=this;this.bindEvents(),this.store.updateColumns(),this.doLayout(),this.resizeState={width:this.$el.offsetWidth,height:this.$el.offsetHeight},this.store.states.columns.forEach(function(t){t.filteredValue&&t.filteredValue.length&&e.store.commit("filterChange",{column:t,values:t.filteredValue,silent:!0})}),this.$ready=!0},destroyed:function(){this.unbindEvents()},data:function(){var e=this.treeProps,t=e.hasChildren,o=void 0===t?"hasChildren":t,n=e.children,i=void 0===n?"children":n;return this.store=r(this,{rowKey:this.rowKey,defaultExpandAll:this.defaultExpandAll,selectOnIndeterminate:this.selectOnIndeterminate,indent:this.indent,lazy:this.lazy,lazyColumnIdentifier:o,childrenColumnName:i}),{layout:new R({store:this.store,table:this,fit:this.fit,showHeader:this.showHeader}),isHidden:!1,renderExpanded:null,resizeProxyVisible:!1,resizeState:{width:null,height:null},isGroup:!1,scrollPosition:"left"}}},ye=xe,we=Object(ce.a)(ye,l,a,!1,null,null,null);we.options.__file="packages/table/src/table.vue";var ke=we.exports;ke.install=function(e){e.component(ke.name,ke)},t.default=ke}])},function(e,t,o){var r=o(160);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(161);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(162);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(163);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(164);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(165);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(166);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(167);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(168);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(169);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(170);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(171);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(172);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(173);"string"==typeof r&&(r=[[e.i,r,""]]);var n={hmr:!0};n.transform=void 0,n.insertInto=void 0,o(3)(r,n),r.locals&&(e.exports=r.locals)},function(e,t,o){"use strict";var r=o(204),n=o(74),i=(o(202),o(46)),l=o.i(i.a)(n.a,r.a,r.b,!1,null,null,null);t.a=l.exports},function(e,t,o){"use strict";function r(e){return e&&DataView.prototype.isPrototypeOf(e)}function n(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function i(e){return"string"!=typeof e&&(e=String(e)),e}function l(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return w.iterable&&(t[Symbol.iterator]=function(){return t}),t}function a(e){this.map={},e instanceof a?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function s(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function c(e){return new Promise(function(t,o){e.onload=function(){t(e.result)},e.onerror=function(){o(e.error)}})}function d(e){var t=new FileReader,o=c(t);return t.readAsArrayBuffer(e),o}function u(e){var t=new FileReader,o=c(t);return t.readAsText(e),o}function p(e){for(var t=new Uint8Array(e),o=new Array(t.length),r=0;r-1?t:e}function g(e,t){if(!(this instanceof g))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t=t||{};var o=t.body;if(e instanceof g){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new a(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,o||null==e._bodyInit||(o=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new a(t.headers)),this.method=b(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(o),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var r=/([?&])_=[^&]*/;if(r.test(this.url))this.url=this.url.replace(r,"$1_="+(new Date).getTime());else{var n=/\?/;this.url+=(n.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function m(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var o=e.split("="),r=o.shift().replace(/\+/g," "),n=o.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(n))}}),t}function _(e){var t=new a;return e.replace(/\r?\n[\t ]+/g," ").split("\r").map(function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e}).forEach(function(e){var o=e.split(":"),r=o.shift().trim();if(r){var n=o.join(":").trim();t.append(r,n)}}),t}function v(e,t){if(!(this instanceof v))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"",this.headers=new a(t.headers),this.url=t.url||"",this._initBody(e)}function x(e,t){return new Promise(function(o,r){function n(){s.abort()}var l=new g(e,t);if(l.signal&&l.signal.aborted)return r(new S("Aborted","AbortError"));var s=new XMLHttpRequest;s.onload=function(){var e={status:s.status,statusText:s.statusText,headers:_(s.getAllResponseHeaders()||"")};e.url="responseURL"in s?s.responseURL:e.headers.get("X-Request-URL");var t="response"in s?s.response:s.responseText;setTimeout(function(){o(new v(t,e))},0)},s.onerror=function(){setTimeout(function(){r(new TypeError("Network request failed"))},0)},s.ontimeout=function(){setTimeout(function(){r(new TypeError("Network request failed"))},0)},s.onabort=function(){setTimeout(function(){r(new S("Aborted","AbortError"))},0)},s.open(l.method,function(e){try{return""===e&&y.location.href?y.location.href:e}catch(t){return e}}(l.url),!0),"include"===l.credentials?s.withCredentials=!0:"omit"===l.credentials&&(s.withCredentials=!1),"responseType"in s&&(w.blob?s.responseType="blob":w.arrayBuffer&&l.headers.get("Content-Type")&&-1!==l.headers.get("Content-Type").indexOf("application/octet-stream")&&(s.responseType="arraybuffer")),!t||"object"!=typeof t.headers||t.headers instanceof a?l.headers.forEach(function(e,t){s.setRequestHeader(t,e)}):Object.getOwnPropertyNames(t.headers).forEach(function(e){s.setRequestHeader(e,i(t.headers[e]))}),l.signal&&(l.signal.addEventListener("abort",n),s.onreadystatechange=function(){4===s.readyState&&l.signal.removeEventListener("abort",n)}),s.send(void 0===l._bodyInit?null:l._bodyInit)})}var y="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==y&&y,w={searchParams:"URLSearchParams"in y,iterable:"Symbol"in y&&"iterator"in Symbol,blob:"FileReader"in y&&"Blob"in y&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in y,arrayBuffer:"ArrayBuffer"in y};if(w.arrayBuffer)var k=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],F=ArrayBuffer.isView||function(e){return e&&k.indexOf(Object.prototype.toString.call(e))>-1};a.prototype.append=function(e,t){e=n(e),t=i(t);var o=this.map[e];this.map[e]=o?o+", "+t:t},a.prototype.delete=function(e){delete this.map[n(e)]},a.prototype.get=function(e){return e=n(e),this.has(e)?this.map[e]:null},a.prototype.has=function(e){return this.map.hasOwnProperty(n(e))},a.prototype.set=function(e,t){this.map[n(e)]=i(t)},a.prototype.forEach=function(e,t){for(var o in this.map)this.map.hasOwnProperty(o)&&e.call(t,this.map[o],o,this)},a.prototype.keys=function(){var e=[];return this.forEach(function(t,o){e.push(o)}),l(e)},a.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),l(e)},a.prototype.entries=function(){var e=[];return this.forEach(function(t,o){e.push([o,t])}),l(e)},w.iterable&&(a.prototype[Symbol.iterator]=a.prototype.entries);var C=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];g.prototype.clone=function(){return new g(this,{body:this._bodyInit})},h.call(g.prototype),h.call(v.prototype),v.prototype.clone=function(){return new v(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new a(this.headers),url:this.url})},v.error=function(){var e=new v(null,{status:0,statusText:""});return e.type="error",e};var E=[301,302,303,307,308];v.redirect=function(e,t){if(-1===E.indexOf(t))throw new RangeError("Invalid status code");return new v(null,{status:t,headers:{location:e}})};var S=y.DOMException;try{new S}catch(e){S=function(e,t){this.message=e,this.name=t;var o=Error(e);this.stack=o.stack},S.prototype=Object.create(Error.prototype),S.prototype.constructor=S}x.polyfill=!0,y.fetch||(y.fetch=x,y.Headers=a,y.Request=g,y.Response=v)},function(e,t,o){"use strict";function r(e){this.rules=null,this._messages=d.a,this.define(e)}Object.defineProperty(t,"__esModule",{value:!0});var n=o(54),i=o.n(n),l=o(20),a=o.n(l),s=o(1),c=o(116),d=o(105);r.prototype={messages:function(e){return e&&(this._messages=o.i(s.a)(o.i(d.b)(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":a()(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,o=void 0;for(t in e)e.hasOwnProperty(t)&&(o=e[t],this.rules[t]=Array.isArray(o)?o:[o])},validate:function(e){function t(e){var t=void 0,o=void 0,r=[],n={};for(t=0;t1&&void 0!==arguments[1]?arguments[1]:{},c=arguments[2],u=e,p=l,f=c;if("function"==typeof p&&(f=p,p={}),!this.rules||0===Object.keys(this.rules).length)return void(f&&f());if(p.messages){var h=this.messages();h===d.a&&(h=o.i(d.b)()),o.i(s.a)(h,p.messages),p.messages=h}else p.messages=this.messages();var b=void 0,g=void 0,m={};(p.keys||Object.keys(this.rules)).forEach(function(t){b=n.rules[t],g=u[t],b.forEach(function(o){var r=o;"function"==typeof r.transform&&(u===e&&(u=i()({},u)),g=u[t]=r.transform(g)),r="function"==typeof r?{validator:r}:i()({},r),r.validator=n.getValidationMethod(r),r.field=t,r.fullField=r.fullField||t,r.type=n.getType(r),r.validator&&(m[t]=m[t]||[],m[t].push({rule:r,value:g,source:u,field:t}))})});var _={};o.i(s.b)(m,p,function(e,t){function n(e,t){return i()({},t,{fullField:c.fullField+"."+e})}function l(){var l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],a=l;if(Array.isArray(a)||(a=[a]),a.length&&o.i(s.c)("async-validator:",a),a.length&&c.message&&(a=[].concat(c.message)),a=a.map(o.i(s.d)(c)),p.first&&a.length)return _[c.field]=1,t(a);if(d){if(c.required&&!e.value)return a=c.message?[].concat(c.message).map(o.i(s.d)(c)):p.error?[p.error(c,o.i(s.e)(p.messages.required,c.field))]:[],t(a);var u={};if(c.defaultField)for(var f in e.value)e.value.hasOwnProperty(f)&&(u[f]=c.defaultField);u=i()({},u,e.rule.fields);for(var h in u)if(u.hasOwnProperty(h)){var b=Array.isArray(u[h])?u[h]:[u[h]];u[h]=b.map(n.bind(null,h))}var g=new r(u);g.messages(p.messages),e.rule.options&&(e.rule.options.messages=p.messages,e.rule.options.error=p.error),g.validate(e.value,e.rule.options||p,function(e){t(e&&e.length?a.concat(e):e)})}else t(a)}var c=e.rule,d=!("object"!==c.type&&"array"!==c.type||"object"!==a()(c.fields)&&"object"!==a()(c.defaultField));d=d&&(c.required||!c.required&&e.value),c.field=e.field;var u=c.validator(c,e.value,l,e.source,p);u&&u.then&&u.then(function(){return l()},function(e){return l(e)})},function(e){t(e)})},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!c.a.hasOwnProperty(e.type))throw new Error(o.i(s.e)("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),o=t.indexOf("message");return-1!==o&&t.splice(o,1),1===t.length&&"required"===t[0]?c.a.required:c.a[this.getType(e)]||!1}},r.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");c.a[e]=t},r.messages=d.a,t.default=r},function(e,t,o){"use strict";function r(){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 e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}t.b=r,o.d(t,"a",function(){return n});var n=r()},function(e,t,o){"use strict";function r(e,t,o,r,l){e[i]=Array.isArray(e[i])?e[i]:[],-1===e[i].indexOf(t)&&r.push(n.e(l.messages[i],e.fullField,e[i].join(", ")))}var n=o(1),i="enum";t.a=r},function(e,t,o){"use strict";function r(e,t,o,r,i){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||r.push(n.e(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){var l=new RegExp(e.pattern);l.test(t)||r.push(n.e(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}var n=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,o,r,i){var l="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,d=t,u=null,p="number"==typeof t,f="string"==typeof t,h=Array.isArray(t);if(p?u="number":f?u="string":h&&(u="array"),!u)return!1;h&&(d=t.length),f&&(d=t.replace(c,"_").length),l?d!==e.len&&r.push(n.e(i.messages[u].len,e.fullField,e.len)):a&&!s&&de.max?r.push(n.e(i.messages[u].max,e.fullField,e.max)):a&&s&&(de.max)&&r.push(n.e(i.messages[u].range,e.fullField,e.min,e.max))}var n=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,n,s){if(e.required&&void 0===t)return void o.i(a.a)(e,t,r,n,s);var d=["integer","float","array","regexp","object","method","email","number","date","url","hex"],u=e.type;d.indexOf(u)>-1?c[u](t)||n.push(l.e(s.messages.types[u],e.fullField,e.type)):u&&(void 0===t?"undefined":i()(t))!==e.type&&n.push(l.e(s.messages.types[u],e.fullField,e.type))}var n=o(20),i=o.n(n),l=o(1),a=o(50),s={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},c={integer:function(e){return c.number(e)&&parseInt(e,10)===e},float:function(e){return c.number(e)&&!c.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":i()(e))&&!c.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(s.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(s.url)},hex:function(e){return"string"==typeof e&&!!e.match(s.hex)}};t.a=r},function(e,t,o){"use strict";function r(e,t,o,r,i){(/^\s+$/.test(t)||""===t)&&r.push(n.e(i.messages.whitespace,e.fullField))}var n=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t,"array")&&!e.required)return r();n.a.required(e,t,l,s,a,"array"),o.i(i.f)(t,"array")||(n.a.type(e,t,l,s,a),n.a.range(e,t,l,s,a))}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(n.f)(t)&&!e.required)return r();i.a.required(e,t,l,s,a),void 0!==t&&i.a.type(e,t,l,s,a)}r(s)}var n=o(1),i=o(5);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();if(n.a.required(e,t,l,s,a),!o.i(i.f)(t)){var c=void 0;c="number"==typeof t?new Date(t):t,n.a.type(e,c,l,s,a),c&&n.a.range(e,c.getTime(),l,s,a)}}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,a,s){var c=[];if(e.required||!e.required&&a.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();n.a.required(e,t,a,c,s),t&&n.a[l](e,t,a,c,s)}r(c)}var n=o(5),i=o(1),l="enum";t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();n.a.required(e,t,l,s,a),void 0!==t&&(n.a.type(e,t,l,s,a),n.a.range(e,t,l,s,a))}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";var r=o(124),n=o(118),i=o(119),l=o(112),a=o(122),s=o(117),c=o(115),d=o(111),u=o(120),p=o(114),f=o(121),h=o(113),b=o(123),g=o(125);t.a={string:r.a,method:n.a,number:i.a,boolean:l.a,regexp:a.a,integer:s.a,float:c.a,array:d.a,object:u.a,enum:p.a,pattern:f.a,date:h.a,url:g.a,hex:g.a,email:g.a,required:b.a}},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();n.a.required(e,t,l,s,a),void 0!==t&&(n.a.type(e,t,l,s,a),n.a.range(e,t,l,s,a))}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();n.a.required(e,t,l,s,a),void 0!==t&&n.a.type(e,t,l,s,a)}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();n.a.required(e,t,l,s,a),void 0!==t&&(n.a.type(e,t,l,s,a),n.a.range(e,t,l,s,a))}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();n.a.required(e,t,l,s,a),void 0!==t&&n.a.type(e,t,l,s,a)}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t,"string")&&!e.required)return r();n.a.required(e,t,l,s,a),o.i(i.f)(t,"string")||n.a.pattern(e,t,l,s,a)}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t)&&!e.required)return r();n.a.required(e,t,l,s,a),o.i(i.f)(t)||n.a.type(e,t,l,s,a)}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,o,r,n){var a=[],s=Array.isArray(t)?"array":void 0===t?"undefined":i()(t);l.a.required(e,t,r,a,n,s),o(a)}var n=o(20),i=o.n(n),l=o(5);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t,"string")&&!e.required)return r();n.a.required(e,t,l,s,a,"string"),o.i(i.f)(t,"string")||(n.a.type(e,t,l,s,a),n.a.range(e,t,l,s,a),n.a.pattern(e,t,l,s,a),!0===e.whitespace&&n.a.whitespace(e,t,l,s,a))}r(s)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";function r(e,t,r,l,a){var s=e.type,c=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(o.i(i.f)(t,s)&&!e.required)return r();n.a.required(e,t,l,c,a,s),o.i(i.f)(t,s)||n.a.type(e,t,l,c,a)}r(c)}var n=o(5),i=o(1);t.a=r},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(97),n=(o.n(r),o(0)),i=(o.n(n),o(84)),l=o.n(i),a=o(96),s=(o.n(a),o(83)),c=o.n(s),d=o(93),u=(o.n(d),o(48)),p=o.n(u),f=o(94),h=(o.n(f),o(81)),b=o.n(h),g=o(95),m=(o.n(g),o(82)),_=o.n(m),v=o(99),x=(o.n(v),o(86)),y=o.n(x),w=o(100),k=(o.n(w),o(87)),F=o.n(k),C=o(89),E=(o.n(C),o(78)),S=o.n(E),z=o(98),O=(o.n(z),o(85)),A=o.n(O),$=o(90),T=(o.n($),o(79)),j=o.n(T),M=o(91),L=(o.n(M),o(80)),I=o.n(L),P=o(88),N=(o.n(P),o(47)),D=o.n(N),R=o(4),B=o(49),H=o.n(B),W=o(29),q=o.n(W),U=o(92),V=(o.n(U),o(101)),Y=(o.n(V),o(102)),K=o(77);o(103),q.a.use(H.a),R.default.use(D.a),R.default.use(I.a),R.default.use(j.a),R.default.use(A.a),R.default.use(S.a),R.default.use(F.a),R.default.use(y.a),R.default.use(_.a),R.default.use(b.a),R.default.use(p.a),R.default.prototype.$msgbox=c.a,R.default.prototype.$confirm=c.a.confirm,R.default.prototype.$message=l.a,R.default.config.productionTip=!1,new R.default({el:"#app",router:K.a,template:"",components:{App:Y.a}})},function(e,t,o){e.exports={default:o(130),__esModule:!0}},function(e,t,o){e.exports={default:o(131),__esModule:!0}},function(e,t,o){e.exports={default:o(132),__esModule:!0}},function(e,t,o){o(152),e.exports=o(17).Object.assign},function(e,t,o){o(155),o(153),o(156),o(157),e.exports=o(17).Symbol},function(e,t,o){o(154),o(158),e.exports=o(42).f("iterator")},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){e.exports=function(){}},function(e,t,o){var r=o(13),n=o(150),i=o(149);e.exports=function(e){return function(t,o,l){var a,s=r(t),c=n(s.length),d=i(l,c);if(e&&o!=o){for(;c>d;)if((a=s[d++])!=a)return!0}else for(;c>d;d++)if((e||d in s)&&s[d]===o)return e||d||0;return!e&&-1}}},function(e,t,o){var r=o(133);e.exports=function(e,t,o){if(r(e),void 0===t)return e;switch(o){case 1:return function(o){return e.call(t,o)};case 2:return function(o,r){return e.call(t,o,r)};case 3:return function(o,r,n){return e.call(t,o,r,n)}}return function(){return e.apply(t,arguments)}}},function(e,t,o){var r=o(23),n=o(34),i=o(24);e.exports=function(e){var t=r(e),o=n.f;if(o)for(var l,a=o(e),s=i.f,c=0;a.length>c;)s.call(e,l=a[c++])&&t.push(l);return t}},function(e,t,o){var r=o(6).document;e.exports=r&&r.documentElement},function(e,t,o){var r=o(55);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,o){"use strict";var r=o(60),n=o(25),i=o(35),l={};o(11)(l,o(14)("iterator"),function(){return this}),e.exports=function(e,t,o){e.prototype=r(l,{next:n(1,o)}),i(e,t+" Iterator")}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,o){var r=o(26)("meta"),n=o(19),i=o(10),l=o(12).f,a=0,s=Object.isExtensible||function(){return!0},c=!o(18)(function(){return s(Object.preventExtensions({}))}),d=function(e){l(e,r,{value:{i:"O"+ ++a,w:{}}})},u=function(e,t){if(!n(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!s(e))return"F";if(!t)return"E";d(e)}return e[r].i},p=function(e,t){if(!i(e,r)){if(!s(e))return!0;if(!t)return!1;d(e)}return e[r].w},f=function(e){return c&&h.NEED&&s(e)&&!i(e,r)&&d(e),e},h=e.exports={KEY:r,NEED:!1,fastKey:u,getWeak:p,onFreeze:f}},function(e,t,o){"use strict";var r=o(9),n=o(23),i=o(34),l=o(24),a=o(39),s=o(58),c=Object.assign;e.exports=!c||o(18)(function(){var e={},t={},o=Symbol(),r="abcdefghijklmnopqrst";return e[o]=7,r.split("").forEach(function(e){t[e]=e}),7!=c({},e)[o]||Object.keys(c({},t)).join("")!=r})?function(e,t){for(var o=a(e),c=arguments.length,d=1,u=i.f,p=l.f;c>d;)for(var f,h=s(arguments[d++]),b=u?n(h).concat(u(h)):n(h),g=b.length,m=0;g>m;)f=b[m++],r&&!p.call(h,f)||(o[f]=h[f]);return o}:c},function(e,t,o){var r=o(12),n=o(21),i=o(23);e.exports=o(9)?Object.defineProperties:function(e,t){n(e);for(var o,l=i(t),a=l.length,s=0;a>s;)r.f(e,o=l[s++],t[o]);return e}},function(e,t,o){var r=o(24),n=o(25),i=o(13),l=o(40),a=o(10),s=o(57),c=Object.getOwnPropertyDescriptor;t.f=o(9)?c:function(e,t){if(e=i(e),t=l(t,!0),s)try{return c(e,t)}catch(e){}if(a(e,t))return n(!r.f.call(e,t),e[t])}},function(e,t,o){var r=o(13),n=o(61).f,i={}.toString,l="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return n(e)}catch(e){return l.slice()}};e.exports.f=function(e){return l&&"[object Window]"==i.call(e)?a(e):n(r(e))}},function(e,t,o){var r=o(10),n=o(39),i=o(36)("IE_PROTO"),l=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=n(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,o){var r=o(38),n=o(30);e.exports=function(e){return function(t,o){var i,l,a=String(n(t)),s=r(o),c=a.length;return s<0||s>=c?e?"":void 0:(i=a.charCodeAt(s),i<55296||i>56319||s+1===c||(l=a.charCodeAt(s+1))<56320||l>57343?e?a.charAt(s):i:e?a.slice(s,s+2):l-56320+(i-55296<<10)+65536)}}},function(e,t,o){var r=o(38),n=Math.max,i=Math.min;e.exports=function(e,t){return e=r(e),e<0?n(e+t,0):i(e,t)}},function(e,t,o){var r=o(38),n=Math.min;e.exports=function(e){return e>0?n(r(e),9007199254740991):0}},function(e,t,o){"use strict";var r=o(134),n=o(141),i=o(33),l=o(13);e.exports=o(59)(Array,"Array",function(e,t){this._t=l(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,o=this._i++;return!e||o>=e.length?(this._t=void 0,n(1)):"keys"==t?n(0,o):"values"==t?n(0,e[o]):n(0,[o,e[o]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,o){var r=o(32);r(r.S+r.F,"Object",{assign:o(143)})},function(e,t){},function(e,t,o){"use strict";var r=o(148)(!0);o(59)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,o=this._i;return o>=t.length?{value:void 0,done:!0}:(e=r(t,o),this._i+=e.length,{value:e,done:!1})})},function(e,t,o){"use strict";var r=o(6),n=o(10),i=o(9),l=o(32),a=o(63),s=o(142).KEY,c=o(18),d=o(37),u=o(35),p=o(26),f=o(14),h=o(42),b=o(41),g=o(137),m=o(139),_=o(21),v=o(19),x=o(39),y=o(13),w=o(40),k=o(25),F=o(60),C=o(146),E=o(145),S=o(34),z=o(12),O=o(23),A=E.f,$=z.f,T=C.f,j=r.Symbol,M=r.JSON,L=M&&M.stringify,I=f("_hidden"),P=f("toPrimitive"),N={}.propertyIsEnumerable,D=d("symbol-registry"),R=d("symbols"),B=d("op-symbols"),H=Object.prototype,W="function"==typeof j&&!!S.f,q=r.QObject,U=!q||!q.prototype||!q.prototype.findChild,V=i&&c(function(){return 7!=F($({},"a",{get:function(){return $(this,"a",{value:7}).a}})).a})?function(e,t,o){var r=A(H,t);r&&delete H[t],$(e,t,o),r&&e!==H&&$(H,t,r)}:$,Y=function(e){var t=R[e]=F(j.prototype);return t._k=e,t},K=W&&"symbol"==typeof j.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof j},X=function(e,t,o){return e===H&&X(B,t,o),_(e),t=w(t,!0),_(o),n(R,t)?(o.enumerable?(n(e,I)&&e[I][t]&&(e[I][t]=!1),o=F(o,{enumerable:k(0,!1)})):(n(e,I)||$(e,I,k(1,{})),e[I][t]=!0),V(e,t,o)):$(e,t,o)},G=function(e,t){_(e);for(var o,r=g(t=y(t)),n=0,i=r.length;i>n;)X(e,o=r[n++],t[o]);return e},J=function(e,t){return void 0===t?F(e):G(F(e),t)},Z=function(e){var t=N.call(this,e=w(e,!0));return!(this===H&&n(R,e)&&!n(B,e))&&(!(t||!n(this,e)||!n(R,e)||n(this,I)&&this[I][e])||t)},Q=function(e,t){if(e=y(e),t=w(t,!0),e!==H||!n(R,t)||n(B,t)){var o=A(e,t);return!o||!n(R,t)||n(e,I)&&e[I][t]||(o.enumerable=!0),o}},ee=function(e){for(var t,o=T(y(e)),r=[],i=0;o.length>i;)n(R,t=o[i++])||t==I||t==s||r.push(t);return r},te=function(e){for(var t,o=e===H,r=T(o?B:y(e)),i=[],l=0;r.length>l;)!n(R,t=r[l++])||o&&!n(H,t)||i.push(R[t]);return i};W||(j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(o){this===H&&t.call(B,o),n(this,I)&&n(this[I],e)&&(this[I][e]=!1),V(this,e,k(1,o))};return i&&U&&V(H,e,{configurable:!0,set:t}),Y(e)},a(j.prototype,"toString",function(){return this._k}),E.f=Q,z.f=X,o(61).f=C.f=ee,o(24).f=Z,S.f=te,i&&!o(22)&&a(H,"propertyIsEnumerable",Z,!0),h.f=function(e){return Y(f(e))}),l(l.G+l.W+l.F*!W,{Symbol:j});for(var oe="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;oe.length>re;)f(oe[re++]);for(var ne=O(f.store),ie=0;ne.length>ie;)b(ne[ie++]);l(l.S+l.F*!W,"Symbol",{for:function(e){return n(D,e+="")?D[e]:D[e]=j(e)},keyFor:function(e){if(!K(e))throw TypeError(e+" is not a symbol!");for(var t in D)if(D[t]===e)return t},useSetter:function(){U=!0},useSimple:function(){U=!1}}),l(l.S+l.F*!W,"Object",{create:J,defineProperty:X,defineProperties:G,getOwnPropertyDescriptor:Q,getOwnPropertyNames:ee,getOwnPropertySymbols:te});var le=c(function(){S.f(1)});l(l.S+l.F*le,"Object",{getOwnPropertySymbols:function(e){return S.f(x(e))}}),M&&l(l.S+l.F*(!W||c(function(){var e=j();return"[null]"!=L([e])||"{}"!=L({a:e})||"{}"!=L(Object(e))})),"JSON",{stringify:function(e){for(var t,o,r=[e],n=1;arguments.length>n;)r.push(arguments[n++]);if(o=t=r[1],(v(t)||void 0!==e)&&!K(e))return m(t)||(t=function(e,t){if("function"==typeof o&&(t=o.call(this,e,t)),!K(t))return t}),r[1]=t,L.apply(M,r)}}),j.prototype[P]||o(11)(j.prototype,P,j.prototype.valueOf),u(j,"Symbol"),u(Math,"Math",!0),u(r.JSON,"JSON",!0)},function(e,t,o){o(41)("asyncIterator")},function(e,t,o){o(41)("observable")},function(e,t,o){o(151);for(var r=o(6),n=o(11),i=o(33),l=o(14)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s.el-button.is-active,.el-button-group>.el-button.is-disabled,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#FFF;border-color:#409EFF;color:#409EFF}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#FFF;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#FFF;border-color:#EBEEF5;color:#C0C4CC}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#FFF;background-color:#409EFF;border-color:#409EFF}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#FFF}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#FFF;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409EFF;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409EFF;border-color:#409EFF;color:#FFF}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#FFF;background-color:#67C23A;border-color:#67C23A}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#FFF}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#FFF}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#FFF;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67C23A;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67C23A;border-color:#67C23A;color:#FFF}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#FFF;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#FFF;background-color:#E6A23C;border-color:#E6A23C}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#FFF}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#FFF}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#FFF;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#E6A23C;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#E6A23C;border-color:#E6A23C;color:#FFF}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#FFF;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#FFF;background-color:#F56C6C;border-color:#F56C6C}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#FFF}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#FFF}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#FFF;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#F56C6C;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#F56C6C;border-color:#F56C6C;color:#FFF}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#FFF;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#FFF;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#FFF}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#FFF}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#FFF;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#FFF}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#FFF;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409EFF;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:\"\"}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,".el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9{position:relative}[class*=el-col-]{float:left;box-sizing:border-box}.el-col-0{display:none;width:0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,"",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,'.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item::after,.el-form-item__content::after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#F56C6C;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:\'*\';color:#F56C6C;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#F56C6C}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#F56C6C}.el-form-item--feedback .el-input__validateIcon{display:inline-block}',""])},function(e,t,o){t=e.exports=o(2)(!1);var r=o(64),n=r(o(73)),i=r(o(72));t.push([e.i,'@charset "UTF-8";.el-pagination--small .arrow.disabled,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*,.el-table--hidden{visibility:hidden}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}@font-face{font-family:element-icons;src:url('+n+') format("woff"),url('+i+') format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\\e6a0"}.el-icon-ice-cream-square:before{content:"\\e6a3"}.el-icon-lollipop:before{content:"\\e6a4"}.el-icon-potato-strips:before{content:"\\e6a5"}.el-icon-milk-tea:before{content:"\\e6a6"}.el-icon-ice-drink:before{content:"\\e6a7"}.el-icon-ice-tea:before{content:"\\e6a9"}.el-icon-coffee:before{content:"\\e6aa"}.el-icon-orange:before{content:"\\e6ab"}.el-icon-pear:before{content:"\\e6ac"}.el-icon-apple:before{content:"\\e6ad"}.el-icon-cherry:before{content:"\\e6ae"}.el-icon-watermelon:before{content:"\\e6af"}.el-icon-grape:before{content:"\\e6b0"}.el-icon-refrigerator:before{content:"\\e6b1"}.el-icon-goblet-square-full:before{content:"\\e6b2"}.el-icon-goblet-square:before{content:"\\e6b3"}.el-icon-goblet-full:before{content:"\\e6b4"}.el-icon-goblet:before{content:"\\e6b5"}.el-icon-cold-drink:before{content:"\\e6b6"}.el-icon-coffee-cup:before{content:"\\e6b8"}.el-icon-water-cup:before{content:"\\e6b9"}.el-icon-hot-water:before{content:"\\e6ba"}.el-icon-ice-cream:before{content:"\\e6bb"}.el-icon-dessert:before{content:"\\e6bc"}.el-icon-sugar:before{content:"\\e6bd"}.el-icon-tableware:before{content:"\\e6be"}.el-icon-burger:before{content:"\\e6bf"}.el-icon-knife-fork:before{content:"\\e6c1"}.el-icon-fork-spoon:before{content:"\\e6c2"}.el-icon-chicken:before{content:"\\e6c3"}.el-icon-food:before{content:"\\e6c4"}.el-icon-dish-1:before{content:"\\e6c5"}.el-icon-dish:before{content:"\\e6c6"}.el-icon-moon-night:before{content:"\\e6ee"}.el-icon-moon:before{content:"\\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\\e6f1"}.el-icon-partly-cloudy:before{content:"\\e6f2"}.el-icon-cloudy:before{content:"\\e6f3"}.el-icon-sunny:before{content:"\\e6f6"}.el-icon-sunset:before{content:"\\e6f7"}.el-icon-sunrise-1:before{content:"\\e6f8"}.el-icon-sunrise:before{content:"\\e6f9"}.el-icon-heavy-rain:before{content:"\\e6fa"}.el-icon-lightning:before{content:"\\e6fb"}.el-icon-light-rain:before{content:"\\e6fc"}.el-icon-wind-power:before{content:"\\e6fd"}.el-icon-baseball:before{content:"\\e712"}.el-icon-soccer:before{content:"\\e713"}.el-icon-football:before{content:"\\e715"}.el-icon-basketball:before{content:"\\e716"}.el-icon-ship:before{content:"\\e73f"}.el-icon-truck:before{content:"\\e740"}.el-icon-bicycle:before{content:"\\e741"}.el-icon-mobile-phone:before{content:"\\e6d3"}.el-icon-service:before{content:"\\e6d4"}.el-icon-key:before{content:"\\e6e2"}.el-icon-unlock:before{content:"\\e6e4"}.el-icon-lock:before{content:"\\e6e5"}.el-icon-watch:before{content:"\\e6fe"}.el-icon-watch-1:before{content:"\\e6ff"}.el-icon-timer:before{content:"\\e702"}.el-icon-alarm-clock:before{content:"\\e703"}.el-icon-map-location:before{content:"\\e704"}.el-icon-delete-location:before{content:"\\e705"}.el-icon-add-location:before{content:"\\e706"}.el-icon-location-information:before{content:"\\e707"}.el-icon-location-outline:before{content:"\\e708"}.el-icon-location:before{content:"\\e79e"}.el-icon-place:before{content:"\\e709"}.el-icon-discover:before{content:"\\e70a"}.el-icon-first-aid-kit:before{content:"\\e70b"}.el-icon-trophy-1:before{content:"\\e70c"}.el-icon-trophy:before{content:"\\e70d"}.el-icon-medal:before{content:"\\e70e"}.el-icon-medal-1:before{content:"\\e70f"}.el-icon-stopwatch:before{content:"\\e710"}.el-icon-mic:before{content:"\\e711"}.el-icon-copy-document:before{content:"\\e718"}.el-icon-full-screen:before{content:"\\e719"}.el-icon-switch-button:before{content:"\\e71b"}.el-icon-aim:before{content:"\\e71c"}.el-icon-crop:before{content:"\\e71d"}.el-icon-odometer:before{content:"\\e71e"}.el-icon-time:before{content:"\\e71f"}.el-icon-bangzhu:before{content:"\\e724"}.el-icon-close-notification:before{content:"\\e726"}.el-icon-microphone:before{content:"\\e727"}.el-icon-turn-off-microphone:before{content:"\\e728"}.el-icon-position:before{content:"\\e729"}.el-icon-postcard:before{content:"\\e72a"}.el-icon-message:before{content:"\\e72b"}.el-icon-chat-line-square:before{content:"\\e72d"}.el-icon-chat-dot-square:before{content:"\\e72e"}.el-icon-chat-dot-round:before{content:"\\e72f"}.el-icon-chat-square:before{content:"\\e730"}.el-icon-chat-line-round:before{content:"\\e731"}.el-icon-chat-round:before{content:"\\e732"}.el-icon-set-up:before{content:"\\e733"}.el-icon-turn-off:before{content:"\\e734"}.el-icon-open:before{content:"\\e735"}.el-icon-connection:before{content:"\\e736"}.el-icon-link:before{content:"\\e737"}.el-icon-cpu:before{content:"\\e738"}.el-icon-thumb:before{content:"\\e739"}.el-icon-female:before{content:"\\e73a"}.el-icon-male:before{content:"\\e73b"}.el-icon-guide:before{content:"\\e73c"}.el-icon-news:before{content:"\\e73e"}.el-icon-price-tag:before{content:"\\e744"}.el-icon-discount:before{content:"\\e745"}.el-icon-wallet:before{content:"\\e747"}.el-icon-coin:before{content:"\\e748"}.el-icon-money:before{content:"\\e749"}.el-icon-bank-card:before{content:"\\e74a"}.el-icon-box:before{content:"\\e74b"}.el-icon-present:before{content:"\\e74c"}.el-icon-sell:before{content:"\\e6d5"}.el-icon-sold-out:before{content:"\\e6d6"}.el-icon-shopping-bag-2:before{content:"\\e74d"}.el-icon-shopping-bag-1:before{content:"\\e74e"}.el-icon-shopping-cart-2:before{content:"\\e74f"}.el-icon-shopping-cart-1:before{content:"\\e750"}.el-icon-shopping-cart-full:before{content:"\\e751"}.el-icon-smoking:before{content:"\\e752"}.el-icon-no-smoking:before{content:"\\e753"}.el-icon-house:before{content:"\\e754"}.el-icon-table-lamp:before{content:"\\e755"}.el-icon-school:before{content:"\\e756"}.el-icon-office-building:before{content:"\\e757"}.el-icon-toilet-paper:before{content:"\\e758"}.el-icon-notebook-2:before{content:"\\e759"}.el-icon-notebook-1:before{content:"\\e75a"}.el-icon-files:before{content:"\\e75b"}.el-icon-collection:before{content:"\\e75c"}.el-icon-receiving:before{content:"\\e75d"}.el-icon-suitcase-1:before{content:"\\e760"}.el-icon-suitcase:before{content:"\\e761"}.el-icon-film:before{content:"\\e763"}.el-icon-collection-tag:before{content:"\\e765"}.el-icon-data-analysis:before{content:"\\e766"}.el-icon-pie-chart:before{content:"\\e767"}.el-icon-data-board:before{content:"\\e768"}.el-icon-data-line:before{content:"\\e76d"}.el-icon-reading:before{content:"\\e769"}.el-icon-magic-stick:before{content:"\\e76a"}.el-icon-coordinate:before{content:"\\e76b"}.el-icon-mouse:before{content:"\\e76c"}.el-icon-brush:before{content:"\\e76e"}.el-icon-headset:before{content:"\\e76f"}.el-icon-umbrella:before{content:"\\e770"}.el-icon-scissors:before{content:"\\e771"}.el-icon-mobile:before{content:"\\e773"}.el-icon-attract:before{content:"\\e774"}.el-icon-monitor:before{content:"\\e775"}.el-icon-search:before{content:"\\e778"}.el-icon-takeaway-box:before{content:"\\e77a"}.el-icon-paperclip:before{content:"\\e77d"}.el-icon-printer:before{content:"\\e77e"}.el-icon-document-add:before{content:"\\e782"}.el-icon-document:before{content:"\\e785"}.el-icon-document-checked:before{content:"\\e786"}.el-icon-document-copy:before{content:"\\e787"}.el-icon-document-delete:before{content:"\\e788"}.el-icon-document-remove:before{content:"\\e789"}.el-icon-tickets:before{content:"\\e78b"}.el-icon-folder-checked:before{content:"\\e77f"}.el-icon-folder-delete:before{content:"\\e780"}.el-icon-folder-remove:before{content:"\\e781"}.el-icon-folder-add:before{content:"\\e783"}.el-icon-folder-opened:before{content:"\\e784"}.el-icon-folder:before{content:"\\e78a"}.el-icon-edit-outline:before{content:"\\e764"}.el-icon-edit:before{content:"\\e78c"}.el-icon-date:before{content:"\\e78e"}.el-icon-c-scale-to-original:before{content:"\\e7c6"}.el-icon-view:before{content:"\\e6ce"}.el-icon-loading:before{content:"\\e6cf"}.el-icon-rank:before{content:"\\e6d1"}.el-icon-sort-down:before{content:"\\e7c4"}.el-icon-sort-up:before{content:"\\e7c5"}.el-icon-sort:before{content:"\\e6d2"}.el-icon-finished:before{content:"\\e6cd"}.el-icon-refresh-left:before{content:"\\e6c7"}.el-icon-refresh-right:before{content:"\\e6c8"}.el-icon-refresh:before{content:"\\e6d0"}.el-icon-video-play:before{content:"\\e7c0"}.el-icon-video-pause:before{content:"\\e7c1"}.el-icon-d-arrow-right:before{content:"\\e6dc"}.el-icon-d-arrow-left:before{content:"\\e6dd"}.el-icon-arrow-up:before{content:"\\e6e1"}.el-icon-arrow-down:before{content:"\\e6df"}.el-icon-arrow-right:before{content:"\\e6e0"}.el-icon-arrow-left:before{content:"\\e6de"}.el-icon-top-right:before{content:"\\e6e7"}.el-icon-top-left:before{content:"\\e6e8"}.el-icon-top:before{content:"\\e6e6"}.el-icon-bottom:before{content:"\\e6eb"}.el-icon-right:before{content:"\\e6e9"}.el-icon-back:before{content:"\\e6ea"}.el-icon-bottom-right:before{content:"\\e6ec"}.el-icon-bottom-left:before{content:"\\e6ed"}.el-icon-caret-top:before{content:"\\e78f"}.el-icon-caret-bottom:before{content:"\\e790"}.el-icon-caret-right:before{content:"\\e791"}.el-icon-caret-left:before{content:"\\e792"}.el-icon-d-caret:before{content:"\\e79a"}.el-icon-share:before{content:"\\e793"}.el-icon-menu:before{content:"\\e798"}.el-icon-s-grid:before{content:"\\e7a6"}.el-icon-s-check:before{content:"\\e7a7"}.el-icon-s-data:before{content:"\\e7a8"}.el-icon-s-opportunity:before{content:"\\e7aa"}.el-icon-s-custom:before{content:"\\e7ab"}.el-icon-s-claim:before{content:"\\e7ad"}.el-icon-s-finance:before{content:"\\e7ae"}.el-icon-s-comment:before{content:"\\e7af"}.el-icon-s-flag:before{content:"\\e7b0"}.el-icon-s-marketing:before{content:"\\e7b1"}.el-icon-s-shop:before{content:"\\e7b4"}.el-icon-s-open:before{content:"\\e7b5"}.el-icon-s-management:before{content:"\\e7b6"}.el-icon-s-ticket:before{content:"\\e7b7"}.el-icon-s-release:before{content:"\\e7b8"}.el-icon-s-home:before{content:"\\e7b9"}.el-icon-s-promotion:before{content:"\\e7ba"}.el-icon-s-operation:before{content:"\\e7bb"}.el-icon-s-unfold:before{content:"\\e7bc"}.el-icon-s-fold:before{content:"\\e7a9"}.el-icon-s-platform:before{content:"\\e7bd"}.el-icon-s-order:before{content:"\\e7be"}.el-icon-s-cooperation:before{content:"\\e7bf"}.el-icon-bell:before{content:"\\e725"}.el-icon-message-solid:before{content:"\\e799"}.el-icon-video-camera:before{content:"\\e772"}.el-icon-video-camera-solid:before{content:"\\e796"}.el-icon-camera:before{content:"\\e779"}.el-icon-camera-solid:before{content:"\\e79b"}.el-icon-download:before{content:"\\e77c"}.el-icon-upload2:before{content:"\\e77b"}.el-icon-upload:before{content:"\\e7c3"}.el-icon-picture-outline-round:before{content:"\\e75f"}.el-icon-picture-outline:before{content:"\\e75e"}.el-icon-picture:before{content:"\\e79f"}.el-icon-close:before{content:"\\e6db"}.el-icon-check:before{content:"\\e6da"}.el-icon-plus:before{content:"\\e6d9"}.el-icon-minus:before{content:"\\e6d8"}.el-icon-help:before{content:"\\e73d"}.el-icon-s-help:before{content:"\\e7b3"}.el-icon-circle-close:before{content:"\\e78d"}.el-icon-circle-check:before{content:"\\e720"}.el-icon-circle-plus-outline:before{content:"\\e723"}.el-icon-remove-outline:before{content:"\\e722"}.el-icon-zoom-out:before{content:"\\e776"}.el-icon-zoom-in:before{content:"\\e777"}.el-icon-error:before{content:"\\e79d"}.el-icon-success:before{content:"\\e79c"}.el-icon-circle-plus:before{content:"\\e7a0"}.el-icon-remove:before{content:"\\e7a2"}.el-icon-info:before{content:"\\e7a1"}.el-icon-question:before{content:"\\e7a4"}.el-icon-warning-outline:before{content:"\\e6c9"}.el-icon-warning:before{content:"\\e7a3"}.el-icon-goods:before{content:"\\e7c2"}.el-icon-s-goods:before{content:"\\e7b2"}.el-icon-star-off:before{content:"\\e717"}.el-icon-star-on:before{content:"\\e797"}.el-icon-more-outline:before{content:"\\e6cc"}.el-icon-more:before{content:"\\e794"}.el-icon-phone-outline:before{content:"\\e6cb"}.el-icon-phone:before{content:"\\e795"}.el-icon-user:before{content:"\\e6e3"}.el-icon-user-solid:before{content:"\\e7a5"}.el-icon-setting:before{content:"\\e6ca"}.el-icon-s-tools:before{content:"\\e7ac"}.el-icon-delete:before{content:"\\e6d7"}.el-icon-delete-solid:before{content:"\\e7c9"}.el-icon-eleme:before{content:"\\e7c7"}.el-icon-platform-eleme:before{content:"\\e7ca"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination::after,.el-pagination::before{display:table;content:""}.el-pagination::after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409EFF}.el-pagination button:disabled{color:#C0C4CC;background-color:#FFF;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat #FFF;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#C0C4CC;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more::before,.el-pagination--small li.more::before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409EFF}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#C0C4CC}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409EFF}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409EFF;color:#FFF}.el-dialog,.el-pager li{background:#FFF;-webkit-box-sizing:border-box}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-date-table,.el-table th{-webkit-user-select:none;-moz-user-select:none}.el-pager .more::before{line-height:30px}.el-pager li{padding:0 4px;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box;text-align:center}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#C0C4CC}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409EFF}.el-pager li.active{color:#409EFF;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409EFF}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #E4E7ED;box-sizing:border-box;background-color:#FFF}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#F5F7FA}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#FFF}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button::before{content:\'\';position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:rgba(255,255,255,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default::before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover::before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#FFF;border:1px solid #EBEEF5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #EBEEF5}.el-dropdown-menu__item--divided:before{content:\'\';height:6px;display:block;margin:0 -20px;background-color:#FFF}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#FFF}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu::after,.el-menu::before{display:table;content:""}.el-menu::after{clear:both}.el-menu.el-menu--horizontal{border-bottom:solid 1px #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409EFF;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#FFF;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409EFF;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #E4E7ED;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409EFF}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409EFF}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotateZ(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#FFF;border:1px solid #DCDFE6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409EFF}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;box-shadow:-1px 0 0 0 #409EFF}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#F2F6FC}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #409EFF}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409EFF}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #DCDFE6;outline:0;border-radius:10px;box-sizing:border-box;background:#DCDFE6;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#FFF}.el-switch.is-checked .el-switch__core{border-color:#409EFF;background-color:#409EFF}.el-switch.is-checked .el-switch__core::after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #E4E7ED;border-radius:4px;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409EFF;background-color:#FFF}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#F5F7FA}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"\\e6da";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#FFF}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#F5F7FA}.el-select-dropdown__item.selected{color:#409EFF;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:\'\';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#E4E7ED}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#C0C4CC}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409EFF}.el-select .el-input .el-select__caret{color:#C0C4CC;font-size:14px;transition:transform .3s;transform:rotateZ(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotateZ(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotateZ(180deg);border-radius:100%;color:#C0C4CC;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#E4E7ED}.el-select .el-input.is-focus .el-input__inner{border-color:#409EFF}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#C0C4CC;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:flex;align-items:center;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#C0C4CC;right:-7px;top:0;color:#FFF}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#FFF}.el-select .el-tag__close.el-icon-close::before{display:block;transform:translate(0,.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#F5F7FA}.el-table th,.el-table tr{background-color:#FFF}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #EBEEF5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table th>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#409EFF}.el-table th.required>div::before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #EBEEF5}.el-table--border::after,.el-table--group::after,.el-table::before{content:\'\';position:absolute;background-color:#EBEEF5;z-index:1}.el-table--border::after,.el-table--group::after{top:0;right:0;width:1px;height:100%}.el-table::before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #EBEEF5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #EBEEF5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #EBEEF5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right::before,.el-table__fixed::before{content:\'\';position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#EBEEF5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#FFF}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #EBEEF5;background-color:#F5F7FA;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #EBEEF5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#F5F7FA;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #EBEEF5}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#C0C4CC;top:5px}.el-table .sort-caret.descending{border-top-color:#C0C4CC;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409EFF}.el-table .descending .sort-caret.descending{border-top-color:#409EFF}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#FAFAFA}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#F5F7FA}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #EBEEF5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#F5F7FA}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #EBEEF5;border-radius:2px;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409EFF;color:#FFF}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #EBEEF5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#F2F6FC}.el-table-filter__bottom button:hover{color:#409EFF}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#C0C4CC}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409EFF;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#FFF}.el-date-table td.available:hover{color:#409EFF}.el-date-table td.current:not(.disabled) span{color:#FFF;background-color:#409EFF}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#FFF}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409EFF}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#F5F7FA;opacity:1;cursor:not-allowed;color:#C0C4CC}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#F2F6FC;border-radius:15px}.el-date-table td.selected div:hover{background-color:#F2F6FC}.el-date-table td.selected span{background-color:#409EFF;color:#FFF;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:solid 1px #EBEEF5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:#409EFF;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#FFF}.el-month-table td.disabled .cell{background-color:#F5F7FA;cursor:not-allowed;color:#C0C4CC}.el-month-table td.disabled .cell:hover{color:#C0C4CC}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409EFF}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#F2F6FC}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#FFF}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#FFF;background-color:#409EFF}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409EFF}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409EFF;font-weight:700}.el-year-table td.disabled .cell{background-color:#F5F7FA;cursor:not-allowed;color:#C0C4CC}.el-year-table td.disabled .cell:hover{color:#C0C4CC}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409EFF}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#FFF}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #EBEEF5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409EFF}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409EFF;font-weight:700}.time-select-item.disabled{color:#E4E7ED;cursor:not-allowed}.time-select-item:hover{background-color:#F5F7FA;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#C0C4CC;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input:-ms-input-placeholder{color:#C0C4CC}.el-date-editor .el-range-input::-moz-placeholder{color:#C0C4CC}.el-date-editor .el-range-input::placeholder{color:#C0C4CC}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#C0C4CC;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:inline-flex;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409EFF}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#E4E7ED}.el-range-editor.is-disabled input{background-color:#F5F7FA;color:#C0C4CC;cursor:not-allowed}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input::-moz-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input::placeholder{color:#C0C4CC}.el-range-editor.is-disabled .el-range-separator{color:#C0C4CC}.el-picker-panel{color:#606266;border:1px solid #E4E7ED;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#FFF;border-radius:4px;line-height:30px;margin:5px 0}.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#FFF;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409EFF}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409EFF}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409EFF}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#FFF;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#FFF;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409EFF}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list::after,.el-time-spinner__list::before{content:\'\';display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#F5F7FA;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#C0C4CC;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #E4E7ED;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-slider__button,.el-slider__button-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #E4E7ED;border-bottom:1px solid #E4E7ED}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409EFF}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #E4E7ED}.el-popover{position:absolute;background:#FFF;min-width:150px;border:1px solid #EBEEF5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#FFF;border-radius:4px;border:1px solid #EBEEF5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#F56C6C}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409EFF}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67C23A}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#E6A23C}.el-message-box__status.el-icon-error{color:#F56C6C}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#F56C6C;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#C0C4CC}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#409EFF;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:""}.el-form-item::after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item__content::after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#F56C6C;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:\'*\';color:#F56C6C;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#F56C6C}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409EFF;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-collapse-item__arrow,.el-tabs__nav{-webkit-transition:-webkit-transform .3s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#409EFF}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#E4E7ED;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){box-shadow:0 0 2px 2px #409EFF inset;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#C0C4CC;color:#FFF}.el-tabs__item.is-active{color:#409EFF}.el-tabs__item:hover{color:#409EFF;cursor:pointer}.el-tabs__item.is-disabled{color:#C0C4CC;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #E4E7ED}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #E4E7ED;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #E4E7ED;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#FFF}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#FFF;border:1px solid #DCDFE6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#F5F7FA;border-bottom:1px solid #E4E7ED;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409EFF;background-color:#FFF;border-right-color:#DCDFE6;border-left-color:#DCDFE6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409EFF}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#C0C4CC}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #DCDFE6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotateZ(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left::after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left::after,.el-tabs--left .el-tabs__nav-wrap.is-right::after,.el-tabs--right .el-tabs__nav-wrap.is-left::after,.el-tabs--right .el-tabs__nav-wrap.is-right::after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #E4E7ED;border-bottom:none;border-top:1px solid #E4E7ED;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #E4E7ED;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #E4E7ED;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #E4E7ED;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right::after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #E4E7ED}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #E4E7ED;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #E4E7ED;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #E4E7ED;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#FFF;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409EFF}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#F5F7FA}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409EFF;color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#F5F7FA}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#C0C4CC;font-size:12px;transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#C0C4CC}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#FFF;overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#C0C4CC}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#FFF}.el-alert.is-center{justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67C23A}.el-alert--success.is-light .el-alert__description{color:#67C23A}.el-alert--success.is-dark{background-color:#67C23A;color:#FFF}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#FFF}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#E6A23C}.el-alert--warning.is-light .el-alert__description{color:#E6A23C}.el-alert--warning.is-dark{background-color:#E6A23C;color:#FFF}.el-alert--error.is-light{background-color:#fef0f0;color:#F56C6C}.el-alert--error.is-light .el-alert__description{color:#F56C6C}.el-alert--error.is-dark{background-color:#F56C6C;color:#FFF}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #EBEEF5;position:fixed;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67C23A}.el-notification .el-icon-error{color:#F56C6C}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#E6A23C}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#F5F7FA;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409EFF}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409EFF}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #DCDFE6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #DCDFE6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#E4E7ED;color:#E4E7ED}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#E4E7ED;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #DCDFE6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #DCDFE6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-progress-bar__inner::after,.el-row::after,.el-row::before,.el-slider::after,.el-slider::before,.el-slider__button-wrapper::after,.el-upload-cover::after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#FFF}.el-tooltip__popper.is-light{background:#FFF;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#FFF}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#FFF}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#FFF}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#FFF}.el-slider::after,.el-slider::before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper::after{vertical-align:middle;display:inline-block}.el-slider::after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#E4E7ED;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#C0C4CC}.el-slider__runway.disabled .el-slider__button{border-color:#C0C4CC}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409EFF;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper::after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409EFF;background-color:#FFF;border-radius:50%;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#FFF;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #DCDFE6;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#C0C4CC}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409EFF}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409EFF;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409EFF;stroke-linecap:round}.el-loading-spinner i{color:#409EFF}@-webkit-keyframes loading-rotate{100%{transform:rotate(360deg)}}@keyframes loading-rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box}.el-row::after,.el-row::before{display:table}.el-row::after{clear:both}.el-row--flex{display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{justify-content:center}.el-row--flex.is-justify-end{justify-content:flex-end}.el-row--flex.is-justify-space-between{justify-content:space-between}.el-row--flex.is-justify-space-around{justify-content:space-around}.el-row--flex.is-align-middle{align-items:center}.el-row--flex.is-align-bottom{align-items:flex-end}[class*=el-col-]{float:left;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409EFF;color:#409EFF}.el-upload:focus .el-upload-dragger{border-color:#409EFF}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#C0C4CC;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #DCDFE6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409EFF;font-style:normal}.el-upload-dragger:hover{border-color:#409EFF}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409EFF}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67C23A}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409EFF}.el-upload-list__item:hover{background-color:#F5F7FA}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409EFF;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409EFF}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#FFF}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#FFF}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#FFF}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#FFF;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#FFF;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#FFF;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translate(0,-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner::after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67C23A}.el-progress.is-success .el-progress__text{color:#67C23A}.el-progress.is-warning .el-progress-bar__inner{background-color:#E6A23C}.el-progress.is-warning .el-progress__text{color:#E6A23C}.el-progress.is-exception .el-progress-bar__inner{background-color:#F56C6C}.el-progress.is-exception .el-progress__text{color:#F56C6C}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#EBEEF5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409EFF;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner::after{height:100%}.el-progress-bar__innerText{color:#FFF;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{transform:rotate(360deg)}}@keyframes rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#EBEEF5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;padding:15px 15px 15px 20px;display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67C23A}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#E6A23C}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#F56C6C}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#C0C4CC;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67C23A}.el-message .el-icon-error{color:#F56C6C}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#E6A23C}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#F56C6C;border-radius:10px;color:#FFF;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #FFF}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409EFF}.el-badge__content--success{background-color:#67C23A}.el-badge__content--warning{background-color:#E6A23C}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#F56C6C}.el-card{border:1px solid #EBEEF5;background-color:#FFF;color:#303133;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #EBEEF5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#C0C4CC;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#F5F7FA}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#C0C4CC;border-color:#C0C4CC}.el-step__head.is-success{color:#67C23A;border-color:#67C23A}.el-step__head.is-error{color:#F56C6C;border-color:#F56C6C}.el-step__head.is-finish{color:#409EFF;border-color:#409EFF}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#FFF;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#C0C4CC}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#C0C4CC}.el-step__title.is-success{color:#67C23A}.el-step__title.is-error{color:#F56C6C}.el-step__title.is-finish{color:#409EFF}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#C0C4CC}.el-step__description.is-success{color:#67C23A}.el-step__description.is-error{color:#F56C6C}.el-step__description.is-finish{color:#409EFF}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{content:\'\';display:inline-block;position:absolute;height:15px;width:1px;background:#C0C4CC}.el-step.is-simple .el-step__arrow::before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#FFF;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#C0C4CC;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#FFF;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:.3s}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#FFF;opacity:.24;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45,.45)}.collapse-transition{transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #EBEEF5;border-bottom:1px solid #EBEEF5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:48px;line-height:48px;background-color:#FFF;color:#303133;cursor:pointer;border-bottom:1px solid #EBEEF5;font-size:13px;font-weight:500;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409EFF}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#FFF;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #EBEEF5}.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#EBEEF5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#FFF;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#EBEEF5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#FFF}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#EBEEF5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#FFF;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#EBEEF5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#FFF}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409EFF;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409EFF}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67C23A}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close::before{display:block}.el-tag--dark{background-color:#409eff;border-color:#409eff;color:#fff}.el-tag--dark.is-hit{border-color:#409EFF}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#FFF;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67C23A}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409EFF}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67C23A}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#C0C4CC}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409EFF}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{transition:transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotateZ(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#C0C4CC}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#FFF;border:1px solid #E4E7ED;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:#C0C4CC;color:#FFF}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#F5F7FA}.el-cascader__suggestion-item.is-checked{color:#409EFF;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#C0C4CC}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input:-ms-input-placeholder{color:#C0C4CC}.el-cascader__search-input::-moz-placeholder{color:#C0C4CC}.el-cascader__search-input::placeholder{color:#C0C4CC}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #409EFF}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409EFF;border-color:#409EFF}.el-color-dropdown__link-btn{cursor:pointer;color:#409EFF;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409EFF,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;transform:translate3d(-50%,-50%,0);color:#FFF;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#FFF;border:1px solid #EBEEF5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#FFF;background-image:none;border:1px solid #DCDFE6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::-moz-placeholder{color:#C0C4CC}.el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea__inner:hover{border-color:#C0C4CC}.el-textarea__inner:focus{outline:0;border-color:#409EFF}.el-textarea .el-input__count{color:#909399;background:#FFF;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea.is-exceed .el-textarea__inner{border-color:#F56C6C}.el-textarea.is-exceed .el-input__count{color:#F56C6C}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#C0C4CC;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#FFF;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#FFF;background-image:none;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#C0C4CC;text-align:center}.el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input__inner::-moz-placeholder{color:#C0C4CC}.el-input__inner::placeholder{color:#C0C4CC}.el-input__inner:hover{border-color:#C0C4CC}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409EFF;outline:0}.el-input__suffix{right:5px;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:\'\';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-input.is-exceed .el-input__inner{border-color:#F56C6C}.el-input.is-exceed .el-input__suffix .el-input__count{color:#F56C6C}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#F5F7FA;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #DCDFE6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#FFF;background-color:#409EFF;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #DCDFE6;background-color:#F5F7FA;color:#C0C4CC}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #EBEEF5;border-radius:4px;overflow:hidden;background:#FFF;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409EFF}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#F5F7FA;margin:0;padding-left:15px;border-bottom:1px solid #EBEEF5;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-divider__text,.el-link{font-weight:500;font-size:14px}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#FFF;margin:0;padding:0;border-top:1px solid #EBEEF5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical,.el-drawer{-webkit-box-orient:vertical}.el-aside,.el-header{-webkit-box-sizing:border-box}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px;box-sizing:border-box;flex-shrink:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0}.el-footer,.el-main{-webkit-box-sizing:border-box}.el-main{display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:20px}.el-footer{padding:0 20px;box-sizing:border-box;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #E4E7ED}.el-timeline-item__icon{color:#FFF;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#E4E7ED;border-radius:50%;display:flex;justify-content:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409EFF}.el-timeline-item__node--success{background-color:#67C23A}.el-timeline-item__node--warning{background-color:#E6A23C}.el-timeline-item__node--danger{background-color:#F56C6C}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409EFF}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409EFF}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409EFF}.el-link.el-link--default.is-disabled{color:#C0C4CC}.el-link.el-link--primary{color:#409EFF}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#F56C6C}.el-link.el-link--danger{color:#F56C6C}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67C23A}.el-link.el-link--success{color:#67C23A}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#E6A23C}.el-link.el-link--warning{color:#E6A23C}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#DCDFE6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#FFF;padding:0 20px;color:#303133}.el-image__error,.el-image__placeholder{background:#F5F7FA}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);display:block}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;color:#C0C4CC;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-button,.el-checkbox{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{top:50%;width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__prev{transform:translateY(-50%);left:40px}.el-image-viewer__next{transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#FFF;border-color:#409EFF;color:#409EFF}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#FFF;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#FFF;border-color:#EBEEF5;color:#C0C4CC}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:\'\';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#FFF;background-color:#409EFF;border-color:#409EFF}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#FFF}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#FFF;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409EFF;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409EFF;border-color:#409EFF;color:#FFF}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#FFF;background-color:#67C23A;border-color:#67C23A}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#FFF}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#FFF}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#FFF;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67C23A;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67C23A;border-color:#67C23A;color:#FFF}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#FFF;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#FFF;background-color:#E6A23C;border-color:#E6A23C}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#FFF}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#FFF}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#FFF;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#E6A23C;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#E6A23C;border-color:#E6A23C;color:#FFF}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#FFF;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#FFF;background-color:#F56C6C;border-color:#F56C6C}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#FFF}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#FFF}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#FFF;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#F56C6C;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#F56C6C;border-color:#F56C6C;color:#FFF}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#FFF;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#FFF;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#FFF}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#FFF}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#FFF;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#FFF}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#FFF;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409EFF;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:""}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #EBEEF5}.el-backtop,.el-page-header{display:-ms-flexbox}.el-calendar__title{color:#000;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#C0C4CC}.el-backtop,.el-calendar-table td.is-today{color:#409EFF}.el-calendar-table td{border-bottom:1px solid #EBEEF5;border-right:1px solid #EBEEF5;vertical-align:top;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#F2F8FE}.el-calendar-table tr:first-child td{border-top:1px solid #EBEEF5}.el-calendar-table tr td:first-child{border-left:1px solid #EBEEF5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#F2F8FE}.el-backtop{position:fixed;background-color:#FFF;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#F2F6FC}.el-page-header{display:flex;line-height:24px}.el-page-header__left{display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left::after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#DCDFE6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox-button__inner,.el-radio{font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409EFF}.el-checkbox.is-bordered.is-disabled{border-color:#EBEEF5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#DCDFE6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#C0C4CC}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#C0C4CC}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#C0C4CC;border-color:#C0C4CC}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409EFF;border-color:#409EFF}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#C0C4CC;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409EFF}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409EFF}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:\'\';position:absolute;display:block;background-color:#FFF;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #DCDFE6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#FFF;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409EFF}.el-checkbox__inner::after{box-sizing:content-box;content:"";border:1px solid #FFF;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409EFF}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-radio,.el-radio__input{line-height:1;white-space:nowrap;outline:0}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409EFF}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#EBEEF5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409EFF}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio{color:#606266;cursor:pointer;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409EFF}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#EBEEF5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#F5F7FA;border-color:#E4E7ED}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#F5F7FA}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#C0C4CC}.el-radio__input.is-disabled+span.el-radio__label{color:#C0C4CC;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409EFF;background:#409EFF}.el-radio__input.is-checked .el-radio__inner::after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409EFF}.el-radio__input.is-focus .el-radio__inner{border-color:#409EFF}.el-radio__inner{border:1px solid #DCDFE6;border-radius:100%;width:14px;height:14px;background-color:#FFF;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#409EFF}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#FFF;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #409EFF}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #E4E7ED;border-radius:4px}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:#606266;border-right:solid 1px #E4E7ED}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-avatar,.el-drawer{-webkit-box-sizing:border-box;overflow:hidden}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#C0C4CC}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409EFF;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#F5F7FA}.el-cascader-node.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;box-sizing:border-box;text-align:center;color:#fff;background:#C0C4CC;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-drawer,.el-drawer__header{display:-ms-flexbox}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}.el-drawer.btt,.el-drawer.ttb,.el-drawer__container{left:0;right:0;width:100%}.el-drawer.ltr,.el-drawer.rtl,.el-drawer__container{top:0;bottom:0;height:100%}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{transform:translate(100%,0)}100%{transform:translate(0,0)}}@keyframes rtl-drawer-in{0%{transform:translate(100%,0)}100%{transform:translate(0,0)}}@-webkit-keyframes rtl-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(100%,0)}}@keyframes rtl-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(100%,0)}}@-webkit-keyframes ltr-drawer-in{0%{transform:translate(-100%,0)}100%{transform:translate(0,0)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%,0)}100%{transform:translate(0,0)}}@-webkit-keyframes ltr-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(-100%,0)}}@keyframes ltr-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(-100%,0)}}@-webkit-keyframes ttb-drawer-in{0%{transform:translate(0,-100%)}100%{transform:translate(0,0)}}@keyframes ttb-drawer-in{0%{transform:translate(0,-100%)}100%{transform:translate(0,0)}}@-webkit-keyframes ttb-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(0,-100%)}}@keyframes ttb-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(0,-100%)}}@-webkit-keyframes btt-drawer-in{0%{transform:translate(0,100%)}100%{transform:translate(0,0)}}@keyframes btt-drawer-in{0%{transform:translate(0,100%)}100%{transform:translate(0,0)}}@-webkit-keyframes btt-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(0,100%)}}@keyframes btt-drawer-out{0%{transform:translate(0,0)}100%{transform:translate(0,100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#FFF;display:flex;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);outline:0}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{flex:1}.el-drawer__body>*{box-sizing:border-box}.el-drawer__container{position:relative}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}',""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,".el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#FFF;background-image:none;border:1px solid #DCDFE6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::-moz-placeholder{color:#C0C4CC}.el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea__inner:hover{border-color:#C0C4CC}.el-textarea__inner:focus{outline:0;border-color:#409EFF}.el-textarea .el-input__count{color:#909399;background:#FFF;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea.is-exceed .el-textarea__inner{border-color:#F56C6C}.el-textarea.is-exceed .el-input__count{color:#F56C6C}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#C0C4CC;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#FFF;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#FFF;background-image:none;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;text-align:center;height:100%;color:#C0C4CC}.el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input__inner::-moz-placeholder{color:#C0C4CC}.el-input__inner::placeholder{color:#C0C4CC}.el-input__inner:hover{border-color:#C0C4CC}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409EFF;outline:0}.el-input__suffix{right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#F56C6C}.el-input.is-exceed .el-input__suffix .el-input__count{color:#F56C6C}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#F5F7FA;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #DCDFE6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,"",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,'.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45,.45)}.collapse-transition{transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#FFF}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu::after,.el-menu::before{display:table;content:""}.el-menu::after{clear:both}.el-menu.el-menu--horizontal{border-bottom:solid 1px #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409EFF;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#FFF;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409EFF;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #E4E7ED;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;list-style:none;position:relative;white-space:nowrap}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409EFF}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409EFF}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotateZ(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}',""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,".el-button-group>.el-button.is-active,.el-button-group>.el-button.is-disabled,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button,.el-input__inner{-webkit-appearance:none;outline:0}.el-message-box,.el-popup-parent--hidden{overflow:hidden}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;color:#606266;text-align:center;box-sizing:border-box;margin:0;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#FFF;border-color:#409EFF;color:#409EFF}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#FFF;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#FFF;border-color:#EBEEF5;color:#C0C4CC}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#FFF;background-color:#409EFF;border-color:#409EFF}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#FFF}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#FFF;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409EFF;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409EFF;border-color:#409EFF;color:#FFF}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#FFF;background-color:#67C23A;border-color:#67C23A}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#FFF}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#FFF}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#FFF;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67C23A;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67C23A;border-color:#67C23A;color:#FFF}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#FFF;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#FFF;background-color:#E6A23C;border-color:#E6A23C}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#FFF}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#FFF}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#FFF;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#E6A23C;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#E6A23C;border-color:#E6A23C;color:#FFF}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#FFF;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#FFF;background-color:#F56C6C;border-color:#F56C6C}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#FFF}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#FFF}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#FFF;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#F56C6C;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#F56C6C;border-color:#F56C6C;color:#FFF}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#FFF;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#FFF;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#FFF}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#FFF}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#FFF;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#FFF}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#FFF;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409EFF;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:\"\"}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#FFF;background-image:none;border:1px solid #DCDFE6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::-moz-placeholder{color:#C0C4CC}.el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea__inner:hover{border-color:#C0C4CC}.el-textarea__inner:focus{outline:0;border-color:#409EFF}.el-textarea .el-input__count{color:#909399;background:#FFF;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea.is-exceed .el-textarea__inner{border-color:#F56C6C}.el-textarea.is-exceed .el-input__count{color:#F56C6C}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#C0C4CC;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#FFF;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{background-color:#FFF;background-image:none;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;-webkit-transition:all .3s;text-align:center;height:100%;color:#C0C4CC;top:0}.el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input__inner::-moz-placeholder{color:#C0C4CC}.el-input__inner::placeholder{color:#C0C4CC}.el-input__inner:hover{border-color:#C0C4CC}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409EFF;outline:0}.el-input__suffix{right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#F56C6C}.el-input.is-exceed .el-input__suffix .el-input__count{color:#F56C6C}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#F5F7FA;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #DCDFE6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#FFF;border-radius:4px;border:1px solid #EBEEF5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper::after{content:\"\";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409EFF}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#F56C6C}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67C23A}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#E6A23C}.el-message-box__status.el-icon-error{color:#F56C6C}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#F56C6C;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,".el-message__closeBtn:focus,.el-message__content:focus{outline-width:0}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#EBEEF5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;overflow:hidden;padding:15px 15px 15px 20px;display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67C23A}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#E6A23C}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#F56C6C}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#C0C4CC;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67C23A}.el-message .el-icon-error{color:#F56C6C}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#E6A23C}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,'.el-row{position:relative;box-sizing:border-box}.el-row::after,.el-row::before{display:table;content:""}.el-row::after{clear:both}.el-row--flex{display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{justify-content:center}.el-row--flex.is-justify-end{justify-content:flex-end}.el-row--flex.is-justify-space-between{justify-content:space-between}.el-row--flex.is-justify-space-around{justify-content:space-around}.el-row--flex.is-align-middle{align-items:center}.el-row--flex.is-align-bottom{align-items:flex-end}',""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,'@charset "UTF-8";.el-checkbox,.el-checkbox__input{white-space:nowrap;display:inline-block;position:relative}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409EFF}.el-checkbox.is-bordered.is-disabled{border-color:#EBEEF5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#DCDFE6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#C0C4CC}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#C0C4CC}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#C0C4CC;border-color:#C0C4CC}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409EFF;border-color:#409EFF}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#C0C4CC;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409EFF}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409EFF}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:\'\';position:absolute;display:block;background-color:#FFF;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #DCDFE6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#FFF;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409EFF}.el-checkbox__inner::after{box-sizing:content-box;content:"";border:1px solid #FFF;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox-button__inner,.el-tag{-webkit-box-sizing:border-box;white-space:nowrap}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;vertical-align:middle;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409EFF}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409EFF}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#EBEEF5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409EFF}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409EFF;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box}.el-tag.is-hit{border-color:#409EFF}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67C23A}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close::before{display:block}.el-tag--dark{background-color:#409eff;border-color:#409eff;color:#fff}.el-tag--dark.is-hit{border-color:#409EFF}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#FFF;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67C23A}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409EFF}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67C23A}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #EBEEF5;border-radius:2px;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409EFF;color:#FFF}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #EBEEF5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#409EFF}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}',""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,'@charset "UTF-8";.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-table,.el-table__append-wrapper{overflow:hidden}.el-table td.is-hidden>*,.el-table th.is-hidden>*,.el-table--hidden{visibility:hidden}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox-button__inner,.el-table th{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409EFF}.el-checkbox.is-bordered.is-disabled{border-color:#EBEEF5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#DCDFE6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#C0C4CC}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#C0C4CC}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#C0C4CC;border-color:#C0C4CC}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409EFF;border-color:#409EFF}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#C0C4CC;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409EFF}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409EFF}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:\'\';position:absolute;display:block;background-color:#FFF;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #DCDFE6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#FFF;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409EFF}.el-checkbox__inner::after{box-sizing:content-box;content:"";border:1px solid #FFF;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409EFF}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409EFF}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#EBEEF5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409EFF}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409EFF;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409EFF}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67C23A}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close::before{display:block}.el-tag--dark{background-color:#409eff;border-color:#409eff;color:#fff}.el-tag--dark.is-hit{border-color:#409EFF}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#FFF;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67C23A}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409EFF}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67C23A}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#FFF}.el-table,.el-table__expanded-cell{background-color:#FFF}.el-tooltip__popper.is-light{background:#FFF;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#FFF}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#FFF}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#FFF}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#FFF}.el-table{position:relative;box-sizing:border-box;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#F5F7FA}.el-table th,.el-table tr{background-color:#FFF}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #EBEEF5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table th>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#409EFF}.el-table th.required>div::before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #EBEEF5}.el-table--border::after,.el-table--group::after,.el-table::before{content:\'\';position:absolute;background-color:#EBEEF5;z-index:1}.el-table--border::after,.el-table--group::after{top:0;right:0;width:1px;height:100%}.el-table::before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #EBEEF5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #EBEEF5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #EBEEF5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right::before,.el-table__fixed::before{content:\'\';position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#EBEEF5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#FFF}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #EBEEF5;background-color:#F5F7FA;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #EBEEF5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#F5F7FA;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #EBEEF5}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#C0C4CC;top:5px}.el-table .sort-caret.descending{border-top-color:#C0C4CC;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409EFF}.el-table .descending .sort-caret.descending{border-top-color:#409EFF}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#FAFAFA}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#F5F7FA}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #EBEEF5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#F5F7FA}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}',""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,".el-form-item span{margin-left:15px}.demo-table-expand{font-size:0}.demo-table-expand label{width:90px;color:#99a9bf}.demo-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,"\nbody {\n background-color: #fafafa;\n margin: 0px;\n font-family: -apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;\n}\nheader {\n width: 100%;\n height: 60px;\n}\n.header-color {\n background: #58B7FF;\n}\n#content {\n margin-top: 20px;\n padding-right: 40px;\n}\n.brand {\n color: #fff;\n background-color: transparent;\n margin-left: 20px;\n float: left;\n line-height: 25px;\n font-size: 25px;\n padding: 15px 15px;\n height: 30px;\n text-decoration: none;\n}\n",""])},function(e,t,o){t=e.exports=o(2)(!1),t.push([e.i,"\n#head {\n margin-bottom: 30px;\n}\n",""])},function(e,t,o){"use strict";function r(e){return!!e&&"object"==typeof e}function n(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||i(e)}function i(e){return e.$$typeof===f}function l(e){return Array.isArray(e)?[]:{}}function a(e,t){return t&&!0===t.clone&&u(e)?d(l(e),e,t):e}function s(e,t,o){var r=e.slice();return t.forEach(function(t,n){void 0===r[n]?r[n]=a(t,o):u(t)?r[n]=d(e[n],t,o):-1===e.indexOf(t)&&r.push(a(t,o))}),r}function c(e,t,o){var r={};return u(e)&&Object.keys(e).forEach(function(t){r[t]=a(e[t],o)}),Object.keys(t).forEach(function(n){u(t[n])&&e[n]?r[n]=d(e[n],t[n],o):r[n]=a(t[n],o)}),r}function d(e,t,o){var r=Array.isArray(t),n=Array.isArray(e),i=o||{arrayMerge:s};return r===n?r?(i.arrayMerge||s)(e,t,o):c(e,t,o):a(t,o)}var u=function(e){return r(e)&&!n(e)},p="function"==typeof Symbol&&Symbol.for,f=p?Symbol.for("react.element"):60103;d.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce(function(e,o){return d(e,o,t)})};var h=d;e.exports=h},function(e,t,o){e.exports=function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(t){return e[t]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=86)}({0:function(e,t,o){"use strict";function r(e,t,o,r,n,i,l,a){var s="function"==typeof e?e.options:e;t&&(s.render=t,s.staticRenderFns=o,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i);var c;if(l?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},s._ssrRegister=c):n&&(c=a?function(){n.call(this,this.$root.$options.shadowRoot)}:n),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,t){return c.call(t),d(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}o.d(t,"a",function(){return r})},4:function(e,t){e.exports=o(15)},86:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{staticClass:"el-checkbox-group",attrs:{role:"group","aria-label":"checkbox-group"}},[e._t("default")],2)},n=[];r._withStripped=!0;var i=o(4),l=o.n(i),a={name:"ElCheckboxGroup",componentName:"ElCheckboxGroup",mixins:[l.a],inject:{elFormItem:{default:""}},props:{value:{},disabled:Boolean,min:Number,max:Number,size:String,fill:String,textColor:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[e])}}},s=a,c=o(0),d=Object(c.a)(s,r,n,!1,null,null,null);d.options.__file="packages/checkbox/src/checkbox-group.vue";var u=d.exports;u.install=function(e){e.component(u.name,u)},t.default=u}})},function(e,t,o){"use strict";t.__esModule=!0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e){function t(e){for(var t=arguments.length,o=Array(t>1?t-1:0),l=1;l=0;t--){var o=e.childNodes[t];if(r.Utils.attemptFocus(o)||r.Utils.focusLastDescendant(o))return!0}return!1},r.Utils.attemptFocus=function(e){if(!r.Utils.isFocusable(e))return!1;r.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return r.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},r.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},r.Utils.triggerEvent=function(e,t){var o=void 0;o=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var r=document.createEvent(o),n=arguments.length,i=Array(n>2?n-2:0),l=2;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!(o&&o.context&&r.target&&n.target)||e.contains(r.target)||e.contains(n.target)||e===r.target||o.context.popperElm&&(o.context.popperElm.contains(r.target)||o.context.popperElm.contains(n.target))||(t.expression&&e[s].methodName&&o.context[e[s].methodName]?o.context[e[s].methodName]():e[s].bindingFn&&e[s].bindingFn())}}t.__esModule=!0;var n=o(4),i=function(e){return e&&e.__esModule?e:{default:e}}(n),l=o(7),a=[],s="@@clickoutsideContext",c=void 0,d=0;!i.default.prototype.$isServer&&(0,l.on)(document,"mousedown",function(e){return c=e}),!i.default.prototype.$isServer&&(0,l.on)(document,"mouseup",function(e){a.forEach(function(t){return t[s].documentHandler(e,c)})}),t.default={bind:function(e,t,o){a.push(e);var n=d++;e[s]={id:n,documentHandler:r(e,t,o),methodName:t.expression,bindingFn:t.value}},update:function(e,t,o){e[s].documentHandler=r(e,t,o),e[s].methodName=t.expression,e[s].bindingFn=t.value},unbind:function(e){for(var t=a.length,o=0;o1&&console.warn("WARNING: the given `parent` query("+e.parent+") matched more than one element, the first one will be used"),0===a.length)throw"ERROR: the given `parent` doesn't exists!";a=a[0]}return a.length>1&&a instanceof Element==0&&(console.warn("WARNING: you have passed as parent a list of elements, the first one will be used"),a=a[0]),a.appendChild(i),i},e.prototype._getPosition=function(e,t){var o=l(t);return this._options.forceAbsolute?"absolute":s(t,o)?"fixed":"absolute"},e.prototype._getOffsets=function(e,o,r){r=r.split("-")[0];var n={};n.position=this.state.position;var i="fixed"===n.position,a=f(o,l(e),i),s=t(e);return-1!==["right","left"].indexOf(r)?(n.top=a.top+a.height/2-s.height/2,n.left="left"===r?a.left-s.width:a.right):(n.left=a.left+a.width/2-s.width/2,n.top="top"===r?a.top-s.height:a.bottom),n.width=s.width,n.height=s.height,{popper:n,reference:a}},e.prototype._setupEventListeners=function(){if(this.state.updateBound=this.update.bind(this),b.addEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement){var e=a(this._reference);e!==b.document.body&&e!==b.document.documentElement||(e=b),e.addEventListener("scroll",this.state.updateBound),this.state.scrollTarget=e}},e.prototype._removeEventListeners=function(){b.removeEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement&&this.state.scrollTarget&&(this.state.scrollTarget.removeEventListener("scroll",this.state.updateBound),this.state.scrollTarget=null),this.state.updateBound=null},e.prototype._getBoundaries=function(e,t,o){var r,n,i={};if("window"===o){var s=b.document.body,c=b.document.documentElement;n=Math.max(s.scrollHeight,s.offsetHeight,c.clientHeight,c.scrollHeight,c.offsetHeight),r=Math.max(s.scrollWidth,s.offsetWidth,c.clientWidth,c.scrollWidth,c.offsetWidth),i={top:0,right:r,bottom:n,left:0}}else if("viewport"===o){var d=l(this._popper),p=a(this._popper),f=u(d),h="fixed"===e.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollTop,document.body.scrollTop):e.scrollTop}(p),g="fixed"===e.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollLeft,document.body.scrollLeft):e.scrollLeft}(p);i={top:0-(f.top-h),right:b.document.documentElement.clientWidth-(f.left-g),bottom:b.document.documentElement.clientHeight-(f.top-h),left:0-(f.left-g)}}else i=l(this._popper)===o?{top:0,left:0,right:o.clientWidth,bottom:o.clientHeight}:u(o);return i.left+=t,i.right-=t,i.top=i.top+t,i.bottom=i.bottom-t,i},e.prototype.runModifiers=function(e,t,o){var r=t.slice();return void 0!==o&&(r=this._options.modifiers.slice(0,n(this._options.modifiers,o))),r.forEach(function(t){d(t)&&(e=t.call(this,e))}.bind(this)),e},e.prototype.isModifierRequired=function(e,t){var o=n(this._options.modifiers,e);return!!this._options.modifiers.slice(0,o).filter(function(e){return e===t}).length},e.prototype.modifiers={},e.prototype.modifiers.applyStyle=function(e){var t,o={position:e.offsets.popper.position},r=Math.round(e.offsets.popper.left),n=Math.round(e.offsets.popper.top);return this._options.gpuAcceleration&&(t=h("transform"))?(o[t]="translate3d("+r+"px, "+n+"px, 0)",o.top=0,o.left=0):(o.left=r,o.top=n),Object.assign(o,e.styles),c(this._popper,o),this._popper.setAttribute("x-placement",e.placement),this.isModifierRequired(this.modifiers.applyStyle,this.modifiers.arrow)&&e.offsets.arrow&&c(e.arrowElement,e.offsets.arrow),e},e.prototype.modifiers.shift=function(e){var t=e.placement,o=t.split("-")[0],n=t.split("-")[1];if(n){var i=e.offsets.reference,l=r(e.offsets.popper),a={y:{start:{top:i.top},end:{top:i.top+i.height-l.height}},x:{start:{left:i.left},end:{left:i.left+i.width-l.width}}},s=-1!==["bottom","top"].indexOf(o)?"x":"y";e.offsets.popper=Object.assign(l,a[s][n])}return e},e.prototype.modifiers.preventOverflow=function(e){var t=this._options.preventOverflowOrder,o=r(e.offsets.popper),n={left:function(){var t=o.left;return o.lefte.boundaries.right&&(t=Math.min(o.left,e.boundaries.right-o.width)),{left:t}},top:function(){var t=o.top;return o.tope.boundaries.bottom&&(t=Math.min(o.top,e.boundaries.bottom-o.height)),{top:t}}};return t.forEach(function(t){e.offsets.popper=Object.assign(o,n[t]())}),e},e.prototype.modifiers.keepTogether=function(e){var t=r(e.offsets.popper),o=e.offsets.reference,n=Math.floor;return t.rightn(o.right)&&(e.offsets.popper.left=n(o.right)),t.bottomn(o.bottom)&&(e.offsets.popper.top=n(o.bottom)),e},e.prototype.modifiers.flip=function(e){if(!this.isModifierRequired(this.modifiers.flip,this.modifiers.preventOverflow))return console.warn("WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!"),e;if(e.flipped&&e.placement===e._originalPlacement)return e;var t=e.placement.split("-")[0],n=o(t),i=e.placement.split("-")[1]||"",l=[];return l="flip"===this._options.flipBehavior?[t,n]:this._options.flipBehavior,l.forEach(function(a,s){if(t===a&&l.length!==s+1){t=e.placement.split("-")[0],n=o(t);var c=r(e.offsets.popper),d=-1!==["right","bottom"].indexOf(t);(d&&Math.floor(e.offsets.reference[t])>Math.floor(c[n])||!d&&Math.floor(e.offsets.reference[t])a[f]&&(e.offsets.popper[u]+=s[u]+h-a[f]);var b=s[u]+(n||s[d]/2-h/2),g=b-a[u];return g=Math.max(Math.min(a[d]-h-8,g),8),i[u]=g,i[p]="",e.offsets.arrow=i,e.arrowElement=o,e},Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert first argument to object");for(var t=Object(e),o=1;o0){var r=t[t.length-1];if(r.id===e)r.modalClass&&r.modalClass.trim().split(/\s+/).forEach(function(e){return(0,i.removeClass)(o,e)}),t.pop(),t.length>0&&(o.style.zIndex=t[t.length-1].zIndex);else for(var n=t.length-1;n>=0;n--)if(t[n].id===e){t.splice(n,1);break}}0===t.length&&(this.modalFade&&(0,i.addClass)(o,"v-modal-leave"),setTimeout(function(){0===t.length&&(o.parentNode&&o.parentNode.removeChild(o),o.style.display="none",u.modalDom=void 0),(0,i.removeClass)(o,"v-modal-leave")},200))}};Object.defineProperty(u,"zIndex",{configurable:!0,get:function(){return a||(s=s||(n.default.prototype.$ELEMENT||{}).zIndex||2e3,a=!0),s},set:function(e){s=e}});var p=function(){if(!n.default.prototype.$isServer&&u.modalStack.length>0){var e=u.modalStack[u.modalStack.length-1];if(!e)return;return u.getInstance(e.id)}};n.default.prototype.$isServer||window.addEventListener("keydown",function(e){if(27===e.keyCode){var t=p();t&&t.closeOnPressEscape&&(t.handleClose?t.handleClose():t.handleAction?t.handleAction("cancel"):t.close())}}),t.default=u},function(e,t,o){"use strict";function r(e){return void 0!==e&&null!==e}function n(e){return/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e)}t.__esModule=!0,t.isDef=r,t.isKorean=n},function(e,t,o){"use strict";function r(e){return"[object String]"===Object.prototype.toString.call(e)}function n(e){return"[object Object]"===Object.prototype.toString.call(e)}function i(e){return e&&e.nodeType===Node.ELEMENT_NODE}t.__esModule=!0,t.isString=r,t.isObject=n,t.isHtmlElement=i,t.isFunction=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)},t.isUndefined=function(e){return void 0===e},t.isDefined=function(e){return void 0!==e&&null!==e}},function(e,t,o){e.exports=o(191)},function(e,t,o){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),n={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=n},function(e,t){function o(){if(!_){_=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),o=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(h=/\b(iPhone|iP[ao]d)/.exec(e),b=/\b(iP[ao]d)/.exec(e),p=/Android/i.exec(e),g=/FBAN\/\w+;/i.exec(e),m=/Mobile/i.exec(e),f=!!/Win64/.exec(e),t){(r=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(r=document.documentMode);var v=/(?:Trident\/(\d+.\d+))/.exec(e);s=v?parseFloat(v[1])+4:r,n=t[2]?parseFloat(t[2]):NaN,i=t[3]?parseFloat(t[3]):NaN,l=t[4]?parseFloat(t[4]):NaN,l?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),a=t&&t[1]?parseFloat(t[1]):NaN):a=NaN}else r=n=i=a=l=NaN;if(o){if(o[1]){var x=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);c=!x||parseFloat(x[1].replace("_","."))}else c=!1;d=!!o[2],u=!!o[3]}else c=d=u=!1}}var r,n,i,l,a,s,c,d,u,p,f,h,b,g,m,_=!1,v={ie:function(){return o()||r},ieCompatibilityMode:function(){return o()||s>r},ie64:function(){return v.ie()&&f},firefox:function(){return o()||n},opera:function(){return o()||i},webkit:function(){return o()||l},safari:function(){return v.webkit()},chrome:function(){return o()||a},windows:function(){return o()||d},osx:function(){return o()||c},linux:function(){return o()||u},iphone:function(){return o()||h},mobile:function(){return o()||h||b||p||m},nativeApp:function(){return o()||g},android:function(){return o()||p},ipad:function(){return o()||b}};e.exports=v},function(e,t,o){"use strict";function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var o="on"+e,r=o in document;if(!r){var l=document.createElement("div");l.setAttribute(o,"return;"),r="function"==typeof l[o]}return!r&&n&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var n,i=o(188);i.canUseDOM&&(n=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=r},function(e,t,o){"use strict";function r(e){var t=0,o=0,r=0,n=0;return"detail"in e&&(o=e.detail),"wheelDelta"in e&&(o=-e.wheelDelta/120),"wheelDeltaY"in e&&(o=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=o,o=0),r=t*l,n=o*l,"deltaY"in e&&(n=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||n)&&e.deltaMode&&(1==e.deltaMode?(r*=a,n*=a):(r*=s,n*=s)),r&&!t&&(t=r<1?-1:1),n&&!o&&(o=n<1?-1:1),{spinX:t,spinY:o,pixelX:r,pixelY:n}}var n=o(189),i=o(190),l=10,a=40,s=800;r.getEventType=function(){return n.firefox()?"DOMMouseScroll":i("wheel")?"wheel":"mousewheel"},e.exports=r},function(e,t){function o(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function n(e){if(d===setTimeout)return setTimeout(e,0);if((d===o||!d)&&setTimeout)return d=setTimeout,setTimeout(e,0);try{return d(e,0)}catch(t){try{return d.call(null,e,0)}catch(t){return d.call(this,e,0)}}}function i(e){if(u===clearTimeout)return clearTimeout(e);if((u===r||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(e);try{return u(e)}catch(t){try{return u.call(null,e)}catch(t){return u.call(this,e)}}}function l(){b&&f&&(b=!1,f.length?h=f.concat(h):g=-1,h.length&&a())}function a(){if(!b){var e=n(l);b=!0;for(var t=h.length;t;){for(f=h,h=[];++g1)for(var o=1;o0},e.prototype.connect_=function(){f&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),v?(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(){f&&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(e){var t=e.propertyName,o=void 0===t?"":t;_.some(function(e){return!!~o.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),y=function(e,t){for(var o=0,r=Object.keys(t);o0},e}(),z="undefined"!=typeof WeakMap?new WeakMap:new p,O=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 o=x.getInstance(),r=new S(t,o,this);z.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){O.prototype[e]=function(){var t;return(t=z.get(this))[e].apply(t,arguments)}});var A=function(){return void 0!==h.ResizeObserver?h.ResizeObserver:O}();t.default=A}.call(t,o(28))},function(e,t,o){(function(e,t){!function(e,o){"use strict";function r(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),o=0;o=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},o(194),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(t,o(28))},function(e,t,o){"use strict";var r=o(205),n=o(75),i=(o(203),o(46)),l=o.i(i.a)(n.a,r.a,r.b,!1,null,null,null);t.a=l.exports},function(e,t,o){"use strict";var r=o(206),n=o(76),i=o(46),l=o.i(i.a)(n.a,r.a,r.b,!1,null,null,null);t.a=l.exports},function(e,t,o){"use strict";var r=o(195);o.n(r)},function(e,t,o){"use strict";var r=o(196);o.n(r)},function(e,t,o){"use strict";var r=o(207);o.d(t,"a",function(){return r.a}),o.d(t,"b",function(){return r.b})},function(e,t,o){"use strict";var r=o(208);o.d(t,"a",function(){return r.a}),o.d(t,"b",function(){return r.b})},function(e,t,o){"use strict";var r=o(209);o.d(t,"a",function(){return r.a}),o.d(t,"b",function(){return r.b})},function(e,t,o){"use strict";o.d(t,"a",function(){return r}),o.d(t,"b",function(){return n});var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{attrs:{id:"app"}},[o("header",{staticClass:"grid-content header-color"},[o("el-row",[o("a",{staticClass:"brand",attrs:{href:"#"}},[e._v("frp client")])])],1),e._v(" "),o("section",[o("el-row",[o("el-col",{attrs:{id:"side-nav",xs:24,md:4}},[o("el-menu",{attrs:{"default-active":"1",mode:"vertical",theme:"light",router:"false"},on:{select:e.handleSelect}},[o("el-menu-item",{attrs:{index:"/"}},[e._v("Overview")]),e._v(" "),o("el-menu-item",{attrs:{index:"/configure"}},[e._v("Configure")]),e._v(" "),o("el-menu-item",{attrs:{index:""}},[e._v("Help")])],1)],1),e._v(" "),o("el-col",{attrs:{xs:24,md:20}},[o("div",{attrs:{id:"content"}},[o("router-view")],1)])],1)],1),e._v(" "),o("footer")])},n=[]},function(e,t,o){"use strict";o.d(t,"a",function(){return r}),o.d(t,"b",function(){return n});var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",[o("el-row",{attrs:{id:"head"}},[o("el-button",{attrs:{type:"primary"},on:{click:e.fetchData}},[e._v("Refresh")]),e._v(" "),o("el-button",{attrs:{type:"primary"},on:{click:e.uploadConfig}},[e._v("Upload")])],1),e._v(" "),o("el-input",{attrs:{type:"textarea",autosize:"",placeholder:"frpc configrue file, can not be empty..."},model:{value:e.textarea,callback:function(t){e.textarea=t},expression:"textarea"}})],1)},n=[]},function(e,t,o){"use strict";o.d(t,"a",function(){return r}),o.d(t,"b",function(){return n});var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",[o("el-row",[o("el-col",{attrs:{md:24}},[o("div",[o("el-table",{staticStyle:{width:"100%"},attrs:{data:e.status,stripe:"","default-sort":{prop:"type",order:"ascending"}}},[o("el-table-column",{attrs:{prop:"name",label:"name"}}),e._v(" "),o("el-table-column",{attrs:{prop:"type",label:"type",width:"150"}}),e._v(" "),o("el-table-column",{attrs:{prop:"local_addr",label:"local address",width:"200"}}),e._v(" "),o("el-table-column",{attrs:{prop:"plugin",label:"plugin",width:"200"}}),e._v(" "),o("el-table-column",{attrs:{prop:"remote_addr",label:"remote address"}}),e._v(" "),o("el-table-column",{attrs:{prop:"status",label:"status",width:"150"}}),e._v(" "),o("el-table-column",{attrs:{prop:"err",label:"info"}})],1)],1)])],1)],1)},n=[]},function(e,t,o){"use strict";function r(e,t){for(var o in t)e[o]=t[o];return e}function n(e){try{return decodeURIComponent(e)}catch(e){}return e}function i(e,t,o){void 0===t&&(t={});var r,n=o||l;try{r=n(e||"")}catch(e){r={}}for(var i in t){var a=t[i];r[i]=Array.isArray(a)?a.map(Ve):Ve(a)}return r}function l(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var o=e.replace(/\+/g," ").split("="),r=n(o.shift()),i=o.length>0?n(o.join("=")):null;void 0===t[r]?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]}),t):t}function a(e){var t=e?Object.keys(e).map(function(t){var o=e[t];if(void 0===o)return"";if(null===o)return Ue(t);if(Array.isArray(o)){var r=[];return o.forEach(function(e){void 0!==e&&(null===e?r.push(Ue(t)):r.push(Ue(t)+"="+Ue(e)))}),r.join("&")}return Ue(t)+"="+Ue(o)}).filter(function(e){return e.length>0}).join("&"):null;return t?"?"+t:""}function s(e,t,o,r){var n=r&&r.options.stringifyQuery,i=t.query||{};try{i=c(i)}catch(e){}var l={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:i,params:t.params||{},fullPath:u(t,n),matched:e?d(e):[]};return o&&(l.redirectedFrom=u(o,n)),Object.freeze(l)}function c(e){if(Array.isArray(e))return e.map(c);if(e&&"object"==typeof e){var t={};for(var o in e)t[o]=c(e[o]);return t}return e}function d(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function u(e,t){var o=e.path,r=e.query;void 0===r&&(r={});var n=e.hash;void 0===n&&(n="");var i=t||a;return(o||"/")+i(r)+n}function p(e,t){return t===Ke?e===t:!!t&&(e.path&&t.path?e.path.replace(Ye,"")===t.path.replace(Ye,"")&&e.hash===t.hash&&f(e.query,t.query):!(!e.name||!t.name)&&e.name===t.name&&e.hash===t.hash&&f(e.query,t.query)&&f(e.params,t.params))}function f(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var o=Object.keys(e).sort(),r=Object.keys(t).sort();return o.length===r.length&&o.every(function(o,n){var i=e[o];if(r[n]!==o)return!1;var l=t[o];return null==i||null==l?i===l:"object"==typeof i&&"object"==typeof l?f(i,l):String(i)===String(l)})}function h(e,t){return 0===e.path.replace(Ye,"/").indexOf(t.path.replace(Ye,"/"))&&(!t.hash||e.hash===t.hash)&&b(e.query,t.query)}function b(e,t){for(var o in t)if(!(o in e))return!1;return!0}function g(e){for(var t=0;t=0&&(t=e.slice(r),e=e.slice(0,r));var n=e.indexOf("?");return n>=0&&(o=e.slice(n+1),e=e.slice(0,n)),{path:e,query:o,hash:t}}function y(e){return e.replace(/\/\//g,"/")}function w(e,t){for(var o,r=[],n=0,i=0,l="",a=t&&t.delimiter||"/";null!=(o=ot.exec(e));){var s=o[0],c=o[1],d=o.index;if(l+=e.slice(i,d),i=d+s.length,c)l+=c[1];else{var u=e[i],p=o[2],f=o[3],h=o[4],b=o[5],g=o[6],m=o[7];l&&(r.push(l),l="");var _=null!=p&&null!=u&&u!==p,v="+"===g||"*"===g,x="?"===g||"*"===g,y=o[2]||a,w=h||b;r.push({name:f||n++,prefix:p||"",delimiter:y,optional:x,repeat:v,partial:_,asterisk:!!m,pattern:w?z(w):m?".*":"[^"+S(y)+"]+?"})}}return i-1&&(n.params[p]=o.params[p]);return n.path=I(a.path,n.params,'named route "'+i+'"'),l(a,n,r)}if(n.path){n.params={};for(var f=0;f=e.length?o():e[n]?t(e[n],function(){r(n+1)}):r(n+1)};r(0)}function ue(e,t){return be(e,t,bt.redirected,'Redirected when going from "'+e.fullPath+'" to "'+ge(t)+'" via a navigation guard.')}function pe(e,t){var o=be(e,t,bt.duplicated,'Avoided redundant navigation to current location: "'+e.fullPath+'".');return o.name="NavigationDuplicated",o}function fe(e,t){return be(e,t,bt.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function he(e,t){return be(e,t,bt.aborted,'Navigation aborted from "'+e.fullPath+'" to "'+t.fullPath+'" via a navigation guard.')}function be(e,t,o,r){var n=new Error(r);return n._isRouter=!0,n.from=e,n.to=t,n.type=o,n}function ge(e){if("string"==typeof e)return e;if("path"in e)return e.path;var t={};return gt.forEach(function(o){o in e&&(t[o]=e[o])}),JSON.stringify(t,null,2)}function me(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function _e(e,t){return me(e)&&e._isRouter&&(null==t||e.type===t)}function ve(e){return function(t,o,r){var n=!1,i=0,l=null;xe(e,function(e,t,o,a){if("function"==typeof e&&void 0===e.cid){n=!0,i++;var s,c=ke(function(t){we(t)&&(t=t.default),e.resolved="function"==typeof t?t:rt.extend(t),o.components[a]=t,--i<=0&&r()}),d=ke(function(e){var t="Failed to resolve async component "+a+": "+e;l||(l=me(e)?e:new Error(t),r(l))});try{s=e(c,d)}catch(e){d(e)}if(s)if("function"==typeof s.then)s.then(c,d);else{var u=s.component;u&&"function"==typeof u.then&&u.then(c,d)}}}),n||r()}}function xe(e,t){return ye(e.map(function(e){return Object.keys(e.components).map(function(o){return t(e.components[o],e.instances[o],e,o)})}))}function ye(e){return Array.prototype.concat.apply([],e)}function we(e){return e.__esModule||mt&&"Module"===e[Symbol.toStringTag]}function ke(e){var t=!1;return function(){for(var o=[],r=arguments.length;r--;)o[r]=arguments[r];if(!t)return t=!0,e.apply(this,o)}}function Fe(e){if(!e)if(ct){var t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^https?:\/\/[^\/]+/,"")}else e="/";return"/"!==e.charAt(0)&&(e="/"+e),e.replace(/\/$/,"")}function Ce(e,t){var o,r=Math.max(e.length,t.length);for(o=0;o=0?t.slice(0,o):t)+"#"+e}function Ne(e){ht?se(Pe(e)):window.location.hash=e}function De(e){ht?ce(Pe(e)):window.location.replace(Pe(e))}function Re(e,t){return e.push(t),function(){var o=e.indexOf(t);o>-1&&e.splice(o,1)}}function Be(e,t,o){var r="hash"===o?"#"+t:t;return e?y(e+"/"+r):r}var He=/[!'()*]/g,We=function(e){return"%"+e.charCodeAt(0).toString(16)},qe=/%2C/g,Ue=function(e){return encodeURIComponent(e).replace(He,We).replace(qe,",")},Ve=function(e){return null==e||"object"==typeof e?e:String(e)},Ye=/\/?$/,Ke=s(null,{path:"/"}),Xe={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,t){var o=t.props,n=t.children,i=t.parent,l=t.data;l.routerView=!0;for(var a=i.$createElement,s=o.name,c=i.$route,d=i._routerViewCache||(i._routerViewCache={}),u=0,p=!1;i&&i._routerRoot!==i;){var f=i.$vnode?i.$vnode.data:{};f.routerView&&u++,f.keepAlive&&i._directInactive&&i._inactive&&(p=!0),i=i.$parent}if(l.routerViewDepth=u,p){var h=d[s],b=h&&h.component;return b?(h.configProps&&m(b,l,h.route,h.configProps),a(b,l,n)):a()}var _=c.matched[u],v=_&&_.components[s];if(!_||!v)return d[s]=null,a();d[s]={component:v},l.registerRouteInstance=function(e,t){var o=_.instances[s];(t&&o!==e||!t&&o===e)&&(_.instances[s]=t)},(l.hook||(l.hook={})).prepatch=function(e,t){_.instances[s]=t.componentInstance},l.hook.init=function(e){e.data.keepAlive&&e.componentInstance&&e.componentInstance!==_.instances[s]&&(_.instances[s]=e.componentInstance),g(c)};var x=_.props&&_.props[s];return x&&(r(d[s],{route:c,configProps:x}),m(v,l,c,x)),a(v,l,n)}},Ge=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},Je=L,Ze=w,Qe=k,et=E,tt=M,ot=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");Je.parse=Ze,Je.compile=Qe,Je.tokensToFunction=et,Je.tokensToRegExp=tt;var rt,nt=Object.create(null),it=[String,Object],lt=[String,Array],at=function(){},st={name:"RouterLink",props:{to:{type:it,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:lt,default:"click"}},render:function(e){var t=this,o=this.$router,n=this.$route,i=o.resolve(this.to,n,this.append),l=i.location,a=i.route,c=i.href,d={},u=o.options.linkActiveClass,f=o.options.linkExactActiveClass,b=null==u?"router-link-active":u,g=null==f?"router-link-exact-active":f,m=null==this.activeClass?b:this.activeClass,_=null==this.exactActiveClass?g:this.exactActiveClass,v=a.redirectedFrom?s(null,P(a.redirectedFrom),null,o):a;d[_]=p(n,v),d[m]=this.exact?d[_]:h(n,v);var x=d[_]?this.ariaCurrentValue:null,y=function(e){N(e)&&(t.replace?o.replace(l,at):o.push(l,at))},w={click:N};Array.isArray(this.event)?this.event.forEach(function(e){w[e]=y}):w[this.event]=y;var k={class:d},F=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:c,route:a,navigate:y,isActive:d[m],isExactActive:d[_]});if(F){if(1===F.length)return F[0];if(F.length>1||!F.length)return 0===F.length?e():e("span",{},F)}if("a"===this.tag)k.on=w,k.attrs={href:c,"aria-current":x};else{var C=D(this.$slots.default);if(C){C.isStatic=!1;var E=C.data=r({},C.data);E.on=E.on||{};for(var S in E.on){var z=E.on[S];S in w&&(E.on[S]=Array.isArray(z)?z:[z])}for(var O in w)O in E.on?E.on[O].push(w[O]):E.on[O]=y;var A=C.data.attrs=r({},C.data.attrs);A.href=c,A["aria-current"]=x}else k.on=w}return e(this.tag,k,this.$slots.default)}},ct="undefined"!=typeof window,dt=ct&&window.performance&&window.performance.now?window.performance:Date,ut=K(),pt=Object.create(null),ft=/^#\d/,ht=ct&&function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"function"==typeof window.history.pushState}(),bt={redirected:2,aborted:4,cancelled:8,duplicated:16},gt=["params","query","hash"],mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,_t=function(e,t){this.router=e,this.base=Fe(t),this.current=Ke,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};_t.prototype.listen=function(e){this.cb=e},_t.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},_t.prototype.onError=function(e){this.errorCbs.push(e)},_t.prototype.transitionTo=function(e,t,o){var r,n=this;try{r=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach(function(t){t(e)}),e}var i=this.current;this.confirmTransition(r,function(){n.updateRoute(r),t&&t(r),n.ensureURL(),n.router.afterHooks.forEach(function(e){e&&e(r,i)}),n.ready||(n.ready=!0,n.readyCbs.forEach(function(e){e(r)}))},function(e){o&&o(e),e&&!n.ready&&(_e(e,bt.redirected)&&i===Ke||(n.ready=!0,n.readyErrorCbs.forEach(function(t){t(e)})))})},_t.prototype.confirmTransition=function(e,t,o){var r=this,n=this.current;this.pending=e;var i=function(e){!_e(e)&&me(e)&&(r.errorCbs.length?r.errorCbs.forEach(function(t){t(e)}):console.error(e)),o&&o(e)},l=e.matched.length-1,a=n.matched.length-1;if(p(e,n)&&l===a&&e.matched[l]===n.matched[a])return this.ensureURL(),i(pe(n,e));var s=Ce(this.current.matched,e.matched),c=s.updated,d=s.deactivated,u=s.activated,f=[].concat(ze(d),this.router.beforeHooks,Oe(c),u.map(function(e){return e.beforeEnter}),ve(u)),h=function(t,o){if(r.pending!==e)return i(fe(n,e));try{t(e,n,function(t){!1===t?(r.ensureURL(!0),i(he(n,e))):me(t)?(r.ensureURL(!0),i(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(i(ue(n,e)),"object"==typeof t&&t.replace?r.replace(t):r.push(t)):o(t)})}catch(e){i(e)}};de(f,h,function(){de($e(u).concat(r.router.resolveHooks),h,function(){if(r.pending!==e)return i(fe(n,e));r.pending=null,t(e),r.router.app&&r.router.app.$nextTick(function(){g(e)})})})},_t.prototype.updateRoute=function(e){this.current=e,this.cb&&this.cb(e)},_t.prototype.setupListeners=function(){},_t.prototype.teardown=function(){this.listeners.forEach(function(e){e()}),this.listeners=[],this.current=Ke,this.pending=null};var vt=function(e){function t(t,o){e.call(this,t,o),this._startLocation=je(this.base)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,o=t.options.scrollBehavior,r=ht&&o;r&&this.listeners.push(J());var n=function(){var o=e.current,n=je(e.base);e.current===Ke&&n===e._startLocation||e.transitionTo(n,function(e){r&&Z(t,e,o,!0)})};window.addEventListener("popstate",n),this.listeners.push(function(){window.removeEventListener("popstate",n)})}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,o){var r=this,n=this,i=n.current;this.transitionTo(e,function(e){se(y(r.base+e.fullPath)),Z(r.router,e,i,!1),t&&t(e)},o)},t.prototype.replace=function(e,t,o){var r=this,n=this,i=n.current;this.transitionTo(e,function(e){ce(y(r.base+e.fullPath)),Z(r.router,e,i,!1),t&&t(e)},o)},t.prototype.ensureURL=function(e){if(je(this.base)!==this.current.fullPath){var t=y(this.base+this.current.fullPath);e?se(t):ce(t)}},t.prototype.getCurrentLocation=function(){return je(this.base)},t}(_t),xt=function(e){function t(t,o,r){e.call(this,t,o),r&&Me(this.base)||Le()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,o=t.options.scrollBehavior,r=ht&&o;r&&this.listeners.push(J());var n=function(){var t=e.current;Le()&&e.transitionTo(Ie(),function(o){r&&Z(e.router,o,t,!0),ht||De(o.fullPath)})},i=ht?"popstate":"hashchange";window.addEventListener(i,n),this.listeners.push(function(){window.removeEventListener(i,n)})}},t.prototype.push=function(e,t,o){var r=this,n=this,i=n.current;this.transitionTo(e,function(e){Ne(e.fullPath),Z(r.router,e,i,!1),t&&t(e)},o)},t.prototype.replace=function(e,t,o){var r=this,n=this,i=n.current;this.transitionTo(e,function(e){De(e.fullPath),Z(r.router,e,i,!1),t&&t(e)},o)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Ie()!==t&&(e?Ne(t):De(t))},t.prototype.getCurrentLocation=function(){return Ie()},t}(_t),yt=function(e){function t(t,o){e.call(this,t,o),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,o){var r=this;this.transitionTo(e,function(e){r.stack=r.stack.slice(0,r.index+1).concat(e),r.index++,t&&t(e)},o)},t.prototype.replace=function(e,t,o){var r=this;this.transitionTo(e,function(e){r.stack=r.stack.slice(0,r.index).concat(e),t&&t(e)},o)},t.prototype.go=function(e){var t=this,o=this.index+e;if(!(o<0||o>=this.stack.length)){var r=this.stack[o];this.confirmTransition(r,function(){var e=t.current;t.index=o,t.updateRoute(r),t.router.afterHooks.forEach(function(t){t&&t(r,e)})},function(e){_e(e,bt.duplicated)&&(t.index=o)})}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(_t),wt=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=U(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ht&&!1!==e.fallback,this.fallback&&(t="hash"),ct||(t="abstract"),this.mode=t,t){case"history":this.history=new vt(this,e.base);break;case"hash":this.history=new xt(this,e.base,this.fallback);break;case"abstract":this.history=new yt(this,e.base)}},kt={currentRoute:{configurable:!0}};wt.prototype.match=function(e,t,o){return this.matcher.match(e,t,o)},kt.currentRoute.get=function(){return this.history&&this.history.current},wt.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",function(){var o=t.apps.indexOf(e);o>-1&&t.apps.splice(o,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()}),!this.app){this.app=e;var o=this.history;if(o instanceof vt||o instanceof xt){var r=function(e){var r=o.current,n=t.options.scrollBehavior;ht&&n&&"fullPath"in e&&Z(t,e,r,!1)},n=function(e){o.setupListeners(),r(e)};o.transitionTo(o.getCurrentLocation(),n,n)}o.listen(function(e){t.apps.forEach(function(t){t._route=e})})}},wt.prototype.beforeEach=function(e){return Re(this.beforeHooks,e)},wt.prototype.beforeResolve=function(e){return Re(this.resolveHooks,e)},wt.prototype.afterEach=function(e){return Re(this.afterHooks,e)},wt.prototype.onReady=function(e,t){this.history.onReady(e,t)},wt.prototype.onError=function(e){this.history.onError(e)},wt.prototype.push=function(e,t,o){var r=this;if(!t&&!o&&"undefined"!=typeof Promise)return new Promise(function(t,o){r.history.push(e,t,o)});this.history.push(e,t,o)},wt.prototype.replace=function(e,t,o){var r=this;if(!t&&!o&&"undefined"!=typeof Promise)return new Promise(function(t,o){r.history.replace(e,t,o)});this.history.replace(e,t,o)},wt.prototype.go=function(e){this.history.go(e)},wt.prototype.back=function(){this.go(-1)},wt.prototype.forward=function(){this.go(1)},wt.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map(function(e){return Object.keys(e.components).map(function(t){return e.components[t]})})):[]},wt.prototype.resolve=function(e,t,o){t=t||this.history.current;var r=P(e,t,o,this),n=this.match(r,t),i=n.redirectedFrom||n.fullPath;return{location:r,route:n,href:Be(this.history.base,i,this.mode),normalizedTo:r,resolved:n}},wt.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==Ke&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(wt.prototype,kt),wt.install=R,wt.version="3.4.9",wt.isNavigationFailure=_e,wt.NavigationFailureType=bt,ct&&window.Vue&&window.Vue.use(wt),t.a=wt}],[126]); \ No newline at end of file diff --git a/web/frpc/.babelrc b/web/frpc/.babelrc deleted file mode 100644 index b5510156ea9..00000000000 --- a/web/frpc/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "presets": [ - ["es2015", { "modules": false }] - ], - "plugins": [ - [ - "component", - { - "libraryName": "element-ui", - "styleLibraryName": "theme-chalk" - } - ] - ] -} diff --git a/web/frpc/.eslintrc.cjs b/web/frpc/.eslintrc.cjs new file mode 100644 index 00000000000..0667b52c488 --- /dev/null +++ b/web/frpc/.eslintrc.cjs @@ -0,0 +1,30 @@ +/* eslint-env node */ +require("@rushstack/eslint-patch/modern-module-resolution"); + +module.exports = { + root: true, + extends: [ + "plugin:vue/vue3-essential", + "eslint:recommended", + "@vue/eslint-config-typescript", + "@vue/eslint-config-prettier", + ], + parserOptions: { + ecmaVersion: "latest", + }, + rules: { + "@typescript-eslint/no-unused-vars": [ + "warn", + { + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + }, + ], + "vue/multi-word-component-names": [ + "error", + { + ignores: ["Overview"], + }, + ], + }, +}; diff --git a/web/frpc/.gitignore b/web/frpc/.gitignore index 3cd34b42d53..38adffa64e8 100644 --- a/web/frpc/.gitignore +++ b/web/frpc/.gitignore @@ -1,6 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules .DS_Store -node_modules/ -dist/ -npm-debug.log +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json .idea -.vscode/settings.json +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/web/frpc/.prettierrc.json b/web/frpc/.prettierrc.json new file mode 100644 index 00000000000..9e26dfeeb6e --- /dev/null +++ b/web/frpc/.prettierrc.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/web/frpc/Makefile b/web/frpc/Makefile index 620a9689151..6e3083e7c8f 100644 --- a/web/frpc/Makefile +++ b/web/frpc/Makefile @@ -1,6 +1,13 @@ -.PHONY: dist build +.PHONY: dist build preview lint + build: @npm run build -dev: +dev: @npm run dev + +preview: + @npm run preview + +lint: + @npm run lint diff --git a/web/frpc/README.md b/web/frpc/README.md new file mode 100644 index 00000000000..acbdbb087ee --- /dev/null +++ b/web/frpc/README.md @@ -0,0 +1,25 @@ +# frpc-dashboard + +## Project Setup + +```sh +yarn install +``` + +### Compile and Hot-Reload for Development + +```sh +make dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +make build +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +make lint +``` diff --git a/web/frpc/auto-imports.d.ts b/web/frpc/auto-imports.d.ts new file mode 100644 index 00000000000..918aad88084 --- /dev/null +++ b/web/frpc/auto-imports.d.ts @@ -0,0 +1,8 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-auto-import +export {} +declare global { + +} diff --git a/web/frpc/components.d.ts b/web/frpc/components.d.ts new file mode 100644 index 00000000000..194837db16a --- /dev/null +++ b/web/frpc/components.d.ts @@ -0,0 +1,25 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' + +export {} + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + ClientConfigure: typeof import('./src/components/ClientConfigure.vue')['default'] + ElButton: typeof import('element-plus/es')['ElButton'] + ElCol: typeof import('element-plus/es')['ElCol'] + ElInput: typeof import('element-plus/es')['ElInput'] + ElMenu: typeof import('element-plus/es')['ElMenu'] + ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] + ElRow: typeof import('element-plus/es')['ElRow'] + ElTable: typeof import('element-plus/es')['ElTable'] + ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + Overview: typeof import('./src/components/Overview.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + } +} diff --git a/web/frpc/env.d.ts b/web/frpc/env.d.ts new file mode 100644 index 00000000000..11f02fe2a00 --- /dev/null +++ b/web/frpc/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/web/frpc/src/index.html b/web/frpc/index.html similarity index 50% rename from web/frpc/src/index.html rename to web/frpc/index.html index 791291f1eea..79837f73c48 100644 --- a/web/frpc/src/index.html +++ b/web/frpc/index.html @@ -8,8 +8,7 @@
- - + diff --git a/web/frpc/package.json b/web/frpc/package.json index 65d0c4682bb..38d024e59df 100644 --- a/web/frpc/package.json +++ b/web/frpc/package.json @@ -1,46 +1,35 @@ { - "name": "frpc-web", - "description": "An admin web ui for frp client.", - "author": "fatedier", + "name": "-frpc-dashboard", + "version": "0.0.0", "private": true, "scripts": { - "dev": "webpack-dev-server -d --inline --hot --env.dev", - "build": "rimraf dist && webpack -p --progress --hide-modules" + "dev": "vite", + "build": "run-p type-check build-only", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --noEmit", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { - "element-ui": "^2.5.3", - "vue": "^2.5.22", - "vue-resource": "^1.5.1", - "vue-router": "^3.0.2", - "whatwg-fetch": "^3.0.0" - }, - "engines": { - "node": ">=6" + "element-plus": "^2.2.28", + "vue": "^3.2.45", + "vue-router": "^4.1.6" }, "devDependencies": { - "autoprefixer": "^9.4.7", - "babel-core": "^6.26.3", - "babel-eslint": "^10.0.1", - "babel-loader": "^7.1.5", - "babel-plugin-component": "^1.1.1", - "babel-preset-es2015": "^6.24.1", - "css-loader": "^2.1.0", - "eslint": "^5.12.1", - "eslint-config-enough": "^0.3.4", - "eslint-loader": "^2.1.1", - "file-loader": "^3.0.1", - "html-loader": "^0.5.5", - "html-webpack-plugin": "^2.24.1", - "less": "^3.9.0", - "less-loader": "^4.1.0", - "postcss-loader": "^3.0.0", - "rimraf": "^2.6.3", - "style-loader": "^0.23.1", - "url-loader": "^1.1.2", - "vue-loader": "^15.6.2", - "vue-template-compiler": "^2.5.22", - "webpack": "^2.7.0", - "webpack-cli": "^3.2.1", - "webpack-dev-server": "^3.1.14" + "@rushstack/eslint-patch": "^1.1.4", + "@types/node": "^18.11.12", + "@vitejs/plugin-vue": "^4.0.0", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-typescript": "^11.0.0", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.22.0", + "eslint-plugin-vue": "^9.3.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.7.1", + "typescript": "~4.7.4", + "unplugin-auto-import": "^0.14.3", + "unplugin-vue-components": "^0.24.0", + "vite": "^4.0.0", + "vue-tsc": "^1.0.12" } } diff --git a/web/frpc/postcss.config.js b/web/frpc/postcss.config.js deleted file mode 100644 index af65640308a..00000000000 --- a/web/frpc/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: [ - require('autoprefixer')() - ] -} \ No newline at end of file diff --git a/web/frpc/src/assets/favicon.ico b/web/frpc/public/favicon.ico similarity index 100% rename from web/frpc/src/assets/favicon.ico rename to web/frpc/public/favicon.ico diff --git a/web/frpc/src/App.vue b/web/frpc/src/App.vue index 0dd5c972d51..a5142e3d563 100644 --- a/web/frpc/src/App.vue +++ b/web/frpc/src/App.vue @@ -1,73 +1,75 @@ - diff --git a/web/frpc/src/components/ClientConfigure.vue b/web/frpc/src/components/ClientConfigure.vue new file mode 100644 index 00000000000..10006568ed7 --- /dev/null +++ b/web/frpc/src/components/ClientConfigure.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/web/frpc/src/components/Configure.vue b/web/frpc/src/components/Configure.vue deleted file mode 100644 index ffda46458e3..00000000000 --- a/web/frpc/src/components/Configure.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - - - diff --git a/web/frpc/src/components/Overview.vue b/web/frpc/src/components/Overview.vue index c25c3adb3a8..e49bc5360c4 100644 --- a/web/frpc/src/components/Overview.vue +++ b/web/frpc/src/components/Overview.vue @@ -1,75 +1,91 @@ - - + diff --git a/web/frpc/src/main.js b/web/frpc/src/main.js deleted file mode 100644 index 337eb479824..00000000000 --- a/web/frpc/src/main.js +++ /dev/null @@ -1,52 +0,0 @@ -import Vue from 'vue' -// import ElementUI from 'element-ui' -import { - Button, - Form, - FormItem, - Row, - Col, - Table, - TableColumn, - Menu, - MenuItem, - MessageBox, - Message, - Input -} from 'element-ui' -import lang from 'element-ui/lib/locale/lang/en' -import locale from 'element-ui/lib/locale' -import 'element-ui/lib/theme-chalk/index.css' -import './utils/less/custom.less' - -import App from './App.vue' -import router from './router' -import 'whatwg-fetch' - -locale.use(lang) - -Vue.use(Button) -Vue.use(Form) -Vue.use(FormItem) -Vue.use(Row) -Vue.use(Col) -Vue.use(Table) -Vue.use(TableColumn) -Vue.use(Menu) -Vue.use(MenuItem) -Vue.use(Input) - -Vue.prototype.$msgbox = MessageBox; -Vue.prototype.$confirm = MessageBox.confirm -Vue.prototype.$message = Message - -//Vue.use(ElementUI) - -Vue.config.productionTip = false - -new Vue({ - el: '#app', - router, - template: '', - components: { App } -}) diff --git a/web/frpc/src/main.ts b/web/frpc/src/main.ts new file mode 100644 index 00000000000..d956da8ed40 --- /dev/null +++ b/web/frpc/src/main.ts @@ -0,0 +1,12 @@ +import { createApp } from "vue"; +import "element-plus/dist/index.css"; +import App from "./App.vue"; +import router from "./router"; + +// import './assets/custom.css' + +const app = createApp(App); + +app.use(router); + +app.mount("#app"); diff --git a/web/frpc/src/router/index.js b/web/frpc/src/router/index.js deleted file mode 100644 index 572b1ca4540..00000000000 --- a/web/frpc/src/router/index.js +++ /dev/null @@ -1,18 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' -import Overview from '../components/Overview.vue' -import Configure from '../components/Configure.vue' - -Vue.use(Router) - -export default new Router({ - routes: [{ - path: '/', - name: 'Overview', - component: Overview - },{ - path: '/configure', - name: 'Configure', - component: Configure, - }] -}) diff --git a/web/frpc/src/router/index.ts b/web/frpc/src/router/index.ts new file mode 100644 index 00000000000..ea63b7126a7 --- /dev/null +++ b/web/frpc/src/router/index.ts @@ -0,0 +1,21 @@ +import { createRouter, createWebHashHistory } from "vue-router"; +import Overview from "../components/Overview.vue"; +import ClientConfigure from "../components/ClientConfigure.vue"; + +const router = createRouter({ + history: createWebHashHistory(), + routes: [ + { + path: "/", + name: "Overview", + component: Overview, + }, + { + path: "/configure", + name: "ClientConfigure", + component: ClientConfigure, + }, + ], +}); + +export default router; diff --git a/web/frpc/src/utils/less/custom.less b/web/frpc/src/utils/less/custom.less deleted file mode 100644 index b83a4007466..00000000000 --- a/web/frpc/src/utils/less/custom.less +++ /dev/null @@ -1,22 +0,0 @@ -@color: red; - -.el-form-item { - span { - margin-left: 15px; - } -} - -.demo-table-expand { - font-size: 0; - - label { - width: 90px; - color: #99a9bf; - } - - .el-form-item { - margin-right: 0; - margin-bottom: 0; - width: 50%; - } -} diff --git a/web/frpc/src/utils/status.js b/web/frpc/src/utils/status.js deleted file mode 100644 index 9ccc418e658..00000000000 --- a/web/frpc/src/utils/status.js +++ /dev/null @@ -1,13 +0,0 @@ -class ProxyStatus { - constructor(status) { - this.name = status.name - this.type = status.type - this.status = status.status - this.err = status.err - this.local_addr = status.local_addr - this.plugin = status.plugin - this.remote_addr = status.remote_addr - } -} - -export {ProxyStatus} diff --git a/web/frpc/tsconfig.config.json b/web/frpc/tsconfig.config.json new file mode 100644 index 00000000000..424084aa55c --- /dev/null +++ b/web/frpc/tsconfig.config.json @@ -0,0 +1,8 @@ +{ + "extends": "@vue/tsconfig/tsconfig.node.json", + "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], + "compilerOptions": { + "composite": true, + "types": ["node"] + } +} diff --git a/web/frpc/tsconfig.json b/web/frpc/tsconfig.json new file mode 100644 index 00000000000..8d2359999ec --- /dev/null +++ b/web/frpc/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@vue/tsconfig/tsconfig.web.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + + "references": [ + { + "path": "./tsconfig.config.json" + } + ] +} diff --git a/web/frpc/vite.config.ts b/web/frpc/vite.config.ts new file mode 100644 index 00000000000..6c1e5bddd3e --- /dev/null +++ b/web/frpc/vite.config.ts @@ -0,0 +1,29 @@ +import { fileURLToPath, URL } from "node:url"; + +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import AutoImport from "unplugin-auto-import/vite"; +import Components from "unplugin-vue-components/vite"; +import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; + +// https://vitejs.dev/config/ +export default defineConfig({ + base: "", + plugins: [ + vue(), + AutoImport({ + resolvers: [ElementPlusResolver()], + }), + Components({ + resolvers: [ElementPlusResolver()], + }), + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, + build: { + assetsDir: "", + }, +}); diff --git a/web/frpc/webpack.config.js b/web/frpc/webpack.config.js deleted file mode 100644 index 6947920524d..00000000000 --- a/web/frpc/webpack.config.js +++ /dev/null @@ -1,107 +0,0 @@ -const path = require('path') -var webpack = require('webpack') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var VueLoaderPlugin = require('vue-loader/lib/plugin') -var url = require('url') -var publicPath = '' - -module.exports = (options = {}) => ({ - entry: { - vendor: './src/main' - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: options.dev ? '[name].js' : '[name].js?[chunkhash]', - chunkFilename: '[id].js?[chunkhash]', - publicPath: options.dev ? '/assets/' : publicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': path.resolve(__dirname, 'src'), - } - }, - module: { - rules: [{ - test: /\.vue$/, - loader: 'vue-loader' - }, { - test: /\.js$/, - use: ['babel-loader'], - exclude: /node_modules/ - }, { - test: /\.html$/, - use: [{ - loader: 'html-loader', - options: { - root: path.resolve(__dirname, 'src'), - attrs: ['img:src', 'link:href'] - } - }] - }, { - test: /\.less$/, - loader: 'style-loader!css-loader!postcss-loader!less-loader' - }, { - test: /\.css$/, - use: ['style-loader', 'css-loader', 'postcss-loader'] - }, { - test: /favicon\.png$/, - use: [{ - loader: 'file-loader', - options: { - name: '[name].[ext]?[hash]' - } - }] - }, { - test: /\.(png|jpg|jpeg|gif|eot|ttf|woff|woff2|svg|svgz)(\?.+)?$/, - exclude: /favicon\.png$/, - use: [{ - loader: 'url-loader', - options: { - limit: 10000 - } - }] - }] - }, - plugins: [ - new webpack.optimize.CommonsChunkPlugin({ - names: ['vendor', 'manifest'] - }), - new HtmlWebpackPlugin({ - favicon: 'src/assets/favicon.ico', - template: 'src/index.html' - }), - new webpack.NormalModuleReplacementPlugin(/element-ui[\/\\]lib[\/\\]locale[\/\\]lang[\/\\]zh-CN/, 'element-ui/lib/locale/lang/en'), - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: false, - comments: false, - compress: { - warnings: false - } - }), - new VueLoaderPlugin() - ], - devServer: { - host: '127.0.0.1', - port: 8010, - proxy: { - '/api/': { - target: 'http://127.0.0.1:8080', - changeOrigin: true, - pathRewrite: { - '^/api': '' - } - } - }, - historyApiFallback: { - index: url.parse(options.dev ? '/assets/' : publicPath).pathname - } - }//, - //devtool: options.dev ? '#eval-source-map' : '#source-map' -}) diff --git a/web/frpc/yarn.lock b/web/frpc/yarn.lock index 8135e37ec4b..d9cac5b7545 100644 --- a/web/frpc/yarn.lock +++ b/web/frpc/yarn.lock @@ -2,5134 +2,2672 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@antfu/utils@^0.7.2": + version "0.7.2" + resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.2.tgz" + integrity sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g== + +"@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.20.5": + version "7.20.14" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz" + integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== + +"@babel/core@^7.20.12": + version "7.20.12" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" -"@babel/generator@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" - integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== +"@babel/generator@^7.20.7": + version "7.20.14" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz" + integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== dependencies: - "@babel/types" "^7.12.11" + "@babel/types" "^7.20.7" + "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-function-name@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" - integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/types" "^7.12.11" - -"@babel/helper-get-function-arity@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" - integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== - dependencies: - "@babel/types" "^7.12.10" -"@babel/helper-module-imports@7.0.0-beta.35": - version "7.0.0-beta.35" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz#308e350e731752cdb4d0f058df1d704925c64e0a" - integrity sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg== +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - "@babel/types" "7.0.0-beta.35" - lodash "^4.2.0" - -"@babel/helper-split-export-declaration@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" - integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== - dependencies: - "@babel/types" "^7.12.11" - -"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.20.11": + version "7.20.11" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.20.7": + version "7.20.13" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz" + integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.13" + "@babel/types" "^7.20.7" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.7.0": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" - integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== - -"@babel/template@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" - integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.12.7" - "@babel/types" "^7.12.7" - -"@babel/traverse@^7.7.0": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" - integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== - dependencies: - "@babel/code-frame" "^7.12.11" - "@babel/generator" "^7.12.11" - "@babel/helper-function-name" "^7.12.11" - "@babel/helper-split-export-declaration" "^7.12.11" - "@babel/parser" "^7.12.11" - "@babel/types" "^7.12.12" +"@babel/parser@^7.16.4", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": + version "7.20.15" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz" + integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== + +"@babel/standalone@^7.20.12": + version "7.20.15" + resolved "https://registry.npmjs.org/@babel/standalone/-/standalone-7.20.15.tgz" + integrity sha512-B3LmZ1NHlTb2eFEaw8rftZc730Wh9MlmsH8ubb6IjsNoIk9+SQ2aAA0nrm/1806+PftPRAACPClmKTu8PG7Tew== + +"@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13": + version "7.20.13" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz" + integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.13" + "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@7.0.0-beta.35": - version "7.0.0-beta.35" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.35.tgz#cf933a9a9a38484ca724b335b88d83726d5ab960" - integrity sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w== - dependencies: - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^2.0.0" -"@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.7", "@babel/types@^7.7.0": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" - integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== +"@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== +"@ctrl/tinycolor@^3.4.1": + version "3.6.0" + resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz" + integrity sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ== + +"@element-plus/icons-vue@^2.0.6": + version "2.0.10" + resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz" + integrity sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ== + +"@esbuild/android-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" + integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== + +"@esbuild/android-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" + integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== + +"@esbuild/android-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" + integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== + +"@esbuild/darwin-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" + integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== + +"@esbuild/darwin-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz" + integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== + +"@esbuild/freebsd-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" + integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== + +"@esbuild/freebsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" + integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== + +"@esbuild/linux-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" + integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== + +"@esbuild/linux-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" + integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== + +"@esbuild/linux-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" + integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== + +"@esbuild/linux-loong64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" + integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== + +"@esbuild/linux-mips64el@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" + integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== + +"@esbuild/linux-ppc64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" + integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== + +"@esbuild/linux-riscv64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" + integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== + +"@esbuild/linux-s390x@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" + integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== + +"@esbuild/linux-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" + integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== + +"@esbuild/netbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" + integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== + +"@esbuild/openbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" + integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== + +"@esbuild/sunos-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" + integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== + +"@esbuild/win32-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" + integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== + +"@esbuild/win32-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" + integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== + +"@esbuild/win32-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" + integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== + +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@floating-ui/core@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.1.tgz" + integrity sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg== -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== +"@floating-ui/dom@^1.0.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.1.tgz" + integrity sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA== dependencies: - "@types/minimatch" "*" - "@types/node" "*" + "@floating-ui/core" "^1.2.1" -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" -"@types/node@*": - version "14.14.22" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" - integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@vue/component-compiler-utils@^3.1.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" - integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.14" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2" +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ= +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - acorn "^4.0.3" - -acorn-jsx@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= - -acorn@^5.0.0: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.0.7: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" - integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -ajv-keywords@^3.1.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -ajv@^4.7.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.9.1: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +"@nuxt/kit@^3.1.2", "@nuxt/kit@^3.2.0": + version "3.2.2" + resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-3.2.2.tgz" + integrity sha512-T3UeLxGSNl7dQgKzmtBbPEkUiiBYgXI+KkemmpkYbQK/l+bWy2f9VQw/Rl0HkQLfRTE2fS8q8jhsOedFiEnHQQ== + dependencies: + "@nuxt/schema" "3.2.2" + c12 "^1.1.2" + consola "^2.15.3" + defu "^6.1.2" + globby "^13.1.3" + hash-sum "^2.0.0" + ignore "^5.2.4" + jiti "^1.17.1" + knitwork "^1.0.0" + lodash.template "^4.5.0" + mlly "^1.1.1" + pathe "^1.1.0" + pkg-types "^1.0.2" + scule "^1.0.0" + semver "^7.3.8" + unctx "^2.1.2" + unimport "^2.2.4" + untyped "^1.2.2" + +"@nuxt/schema@3.2.2": + version "3.2.2" + resolved "https://registry.npmjs.org/@nuxt/schema/-/schema-3.2.2.tgz" + integrity sha512-o3O2OqLAMKqb/DlGpK8eJq4tH29NA4OMaohknSSXl35+Nw/qHB5eOLDz+cFxNE+MKHoMj1rRVMCfi/Y/PrCN6g== + dependencies: + c12 "^1.1.2" + create-require "^1.1.1" + defu "^6.1.2" + hookable "^5.4.2" + jiti "^1.17.1" + pathe "^1.1.0" + pkg-types "^1.0.2" + postcss-import-resolver "^2.0.0" + scule "^1.0.0" + std-env "^3.3.2" + ufo "^1.1.0" + unimport "^2.2.4" + untyped "^1.2.2" + +"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": + version "2.11.7" + resolved "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" + integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== + +"@rollup/pluginutils@^5.0.2": + version "5.0.2" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rushstack/eslint-patch@^1.1.4": + version "1.2.0" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= +"@types/estree@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/lodash-es@^4.17.6": + version "4.17.6" + resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz" + integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*", "@types/lodash@^4.14.182": + version "4.14.191" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + +"@types/node@^18.11.12": + version "18.14.0" + resolved "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz" + integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A== + +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + +"@types/web-bluetooth@^0.0.16": + version "0.0.16" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz" + integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== + +"@typescript-eslint/eslint-plugin@^5.0.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz" + integrity sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg== + dependencies: + "@typescript-eslint/scope-manager" "5.52.0" + "@typescript-eslint/type-utils" "5.52.0" + "@typescript-eslint/utils" "5.52.0" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.0.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz" + integrity sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA== + dependencies: + "@typescript-eslint/scope-manager" "5.52.0" + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/typescript-estree" "5.52.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.52.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz" + integrity sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw== + dependencies: + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/visitor-keys" "5.52.0" + +"@typescript-eslint/type-utils@5.52.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz" + integrity sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw== + dependencies: + "@typescript-eslint/typescript-estree" "5.52.0" + "@typescript-eslint/utils" "5.52.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.52.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz" + integrity sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ== + +"@typescript-eslint/typescript-estree@5.52.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz" + integrity sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ== + dependencies: + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/visitor-keys" "5.52.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.52.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz" + integrity sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.52.0" + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/typescript-estree" "5.52.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.52.0": + version "5.52.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz" + integrity sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA== + dependencies: + "@typescript-eslint/types" "5.52.0" + eslint-visitor-keys "^3.3.0" + +"@vitejs/plugin-vue@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz" + integrity sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== +"@volar/language-core@1.2.0-alpha.16": + version "1.2.0-alpha.16" + resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-1.2.0-alpha.16.tgz" + integrity sha512-aIktWe9Zg0M+u/RIXHCuL+IoLRHTrpsbTib8olrg4etlurHDXahoVhoEnH9wmlliray0iigIo2z5vwueYInp3g== dependencies: - color-convert "^1.9.0" + "@volar/source-map" "1.2.0-alpha.16" -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== +"@volar/source-map@1.2.0-alpha.16": + version "1.2.0-alpha.16" + resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-1.2.0-alpha.16.tgz" + integrity sha512-/AK3VqnFqONd221COI2ZnEvfgBulfoQkjA/ZjPOXpsOkWri99TLcfZY/NTQRytp7Hx6EP/1p1DDeyGuMCUYjgA== dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" + muggle-string "^0.2.2" -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +"@volar/typescript@1.2.0-alpha.16": + version "1.2.0-alpha.16" + resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-1.2.0-alpha.16.tgz" + integrity sha512-ltlTLHIkLxgmTVBZmOnhmnlNzEj2lpvlBmmaV2GWYTrBUMt0z1OgeCq0Utlj9HjjrGPhwWxZNkv86ZABgrMA3Q== dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" + "@volar/language-core" "1.2.0-alpha.16" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== +"@volar/vue-language-core@1.1.4": + version "1.1.4" + resolved "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.1.4.tgz" + integrity sha512-2C2CwHvaT5AzNzDbYZQ85lNr4jACZARoZMZBLuU5+JyIwhWeAfxvyAeoE3VbgfgycN5t6X4uBqx/Wzh1QLgD8Q== + dependencies: + "@volar/language-core" "1.2.0-alpha.16" + "@volar/source-map" "1.2.0-alpha.16" + "@vue/compiler-dom" "^3.2.47" + "@vue/compiler-sfc" "^3.2.47" + "@vue/reactivity" "^3.2.47" + "@vue/shared" "^3.2.47" + minimatch "^6.1.6" + muggle-string "^0.2.2" + vue-template-compiler "^2.7.14" + +"@volar/vue-typescript@1.1.4": + version "1.1.4" + resolved "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.1.4.tgz" + integrity sha512-x5i5TUUXb1PM0rM80Y8XUeMBUcoS3/TjR3WTxvvEUIol9uEOPp6uxxQQ67uSv7ocN6vB0LugJqS6FA7Z93oL0Q== dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + "@volar/typescript" "1.2.0-alpha.16" + "@volar/vue-language-core" "1.1.4" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +"@vue/compiler-core@3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz" + integrity sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.47" + estree-walker "^2.0.2" + source-map "^0.6.1" -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== +"@vue/compiler-dom@3.2.47", "@vue/compiler-dom@^3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz" + integrity sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ== + dependencies: + "@vue/compiler-core" "3.2.47" + "@vue/shared" "3.2.47" + +"@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz" + integrity sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.47" + "@vue/compiler-dom" "3.2.47" + "@vue/compiler-ssr" "3.2.47" + "@vue/reactivity-transform" "3.2.47" + "@vue/shared" "3.2.47" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= +"@vue/compiler-ssr@3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz" + integrity sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw== dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + "@vue/compiler-dom" "3.2.47" + "@vue/shared" "3.2.47" -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +"@vue/devtools-api@^6.4.5": + version "6.5.0" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" + integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" +"@vue/eslint-config-prettier@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz" + integrity sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw== + dependencies: + eslint-config-prettier "^8.3.0" + eslint-plugin-prettier "^4.0.0" + +"@vue/eslint-config-typescript@^11.0.0": + version "11.0.2" + resolved "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.2.tgz" + integrity sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw== + dependencies: + "@typescript-eslint/eslint-plugin" "^5.0.0" + "@typescript-eslint/parser" "^5.0.0" + vue-eslint-parser "^9.0.0" + +"@vue/reactivity-transform@3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz" + integrity sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.47" + "@vue/shared" "3.2.47" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.47", "@vue/reactivity@^3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz" + integrity sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ== + dependencies: + "@vue/shared" "3.2.47" + +"@vue/runtime-core@3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz" + integrity sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA== + dependencies: + "@vue/reactivity" "3.2.47" + "@vue/shared" "3.2.47" + +"@vue/runtime-dom@3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz" + integrity sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA== + dependencies: + "@vue/runtime-core" "3.2.47" + "@vue/shared" "3.2.47" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz" + integrity sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA== + dependencies: + "@vue/compiler-ssr" "3.2.47" + "@vue/shared" "3.2.47" + +"@vue/shared@3.2.47", "@vue/shared@^3.2.47": + version "3.2.47" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz" + integrity sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ== + +"@vue/tsconfig@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz" + integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg== -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== +"@vueuse/core@^9.1.0": + version "9.13.0" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz" + integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw== dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.13.0" + "@vueuse/shared" "9.13.0" + vue-demi "*" -ast-types@0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" - integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= +"@vueuse/metadata@9.13.0": + version "9.13.0" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz" + integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ== -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +"@vueuse/shared@9.13.0": + version "9.13.0" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz" + integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw== + dependencies: + vue-demi "*" -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +acorn@^8.8.0, acorn@^8.8.2: + version "8.8.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -async-validator@~1.8.1: - version "1.8.5" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0" - integrity sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA== +agent-base@6: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: - babel-runtime "6.x" + debug "4" -async@^2.1.2, async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: - lodash "^4.17.14" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^9.4.7: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-eslint@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-vue-jsx-merge-props@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" - integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -babel-loader@^7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68" - integrity sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw== +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" + color-convert "^1.9.0" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - babel-runtime "^6.22.0" + color-convert "^2.0.1" -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: - babel-runtime "^6.22.0" - -babel-plugin-component@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz#9b023a23ff5c9aae0fd56c5a18b9cab8c4d45eea" - integrity sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag== - dependencies: - "@babel/helper-module-imports" "7.0.0-beta.35" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-es2015@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - integrity sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk= - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" + normalize-path "^3.0.0" + picomatch "^2.0.4" -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== +async-validator@^4.2.5: + version "4.2.5" + resolved "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz" + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.1.1, bluebird@^3.4.7: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@~3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.12.0: - version "4.16.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" - integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== - dependencies: - caniuse-lite "^1.0.30001173" - colorette "^1.2.1" - electron-to-chromium "^1.3.634" - escalade "^3.1.1" - node-releases "^1.1.69" - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== +browserslist@^4.21.3: + version "4.21.5" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" +c12@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/c12/-/c12-1.1.2.tgz" + integrity sha512-fHT5HDEHNMb2oImnqJ88/UlpEOkY/chdyYxSd3YCpvBqBvU0IDlHTkNc7GnjObDMxdis2lL+rwlQcNq8VeZESA== + dependencies: + defu "^6.1.2" + dotenv "^16.0.3" + giget "^1.1.0" + jiti "^1.17.1" + mlly "^1.1.1" + pathe "^1.1.0" + pkg-types "^1.0.2" + rc9 "^2.0.1" call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" get-intrinsic "^1.0.2" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - -camelcase@^5.0.0, camelcase@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001173: - version "1.0.30001179" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz#b0803883b4471a6c62066fb1752756f8afc699c8" - integrity sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA== - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" +caniuse-lite@^1.0.30001449: + version "1.0.30001457" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001457.tgz" + integrity sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA== -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" -chokidar@^3.4.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + fsevents "~2.3.2" -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -clean-css@4.2.x: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: - source-map "~0.6.0" + color-name "1.1.3" -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: - restore-cursor "^2.0.0" + color-name "~1.1.4" -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" +colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= +convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +create-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -commander@2.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== +csstype@^2.6.8: + version "2.6.21" + resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +dayjs@^1.11.3: + version "1.11.7" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -console-browserify@^1.1.0: +define-properties@^1.1.3, define-properties@^1.1.4: version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: - bluebird "^3.1.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +defu@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz" + integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== + +destr@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/destr/-/destr-1.2.2.tgz" + integrity sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA== -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-anything@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a" - integrity sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g== - dependencies: - is-what "^3.7.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-loader@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" - integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== - dependencies: - camelcase "^5.2.0" - icss-utils "^4.1.0" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.14" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.6" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" - -css-select@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.1, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^1.2.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" + path-type "^4.0.0" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.634: - version "1.3.644" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz#c89721733ec26b8d117275fb6b2acbeb3d45a6b6" - integrity sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw== - -element-ui@^2.5.3: - version "2.15.0" - resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.0.tgz#de9b73a8d1e3e3b50e82b923a5fa95295239bd41" - integrity sha512-9z/1+b7V8fvp08OnKUEW4/BZ72kT+IhuKR9cTMz3XoCTKmEsqLLb32XjbO/DznSFaaiFbOYU93G7WtkvrCAL9A== - dependencies: - async-validator "~1.8.1" - babel-helper-vue-jsx-merge-props "^2.0.0" - deepmerge "^1.2.0" - normalize-wheel "^1.0.1" - resize-observer-polyfill "^1.5.0" - throttle-debounce "^1.0.1" - -elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^3.3.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + +electron-to-chromium@^1.4.284: + version "1.4.302" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz" + integrity sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw== + +element-plus@^2.2.28: + version "2.2.32" + resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.2.32.tgz" + integrity sha512-DTJMhYOy6MApbmh6z/95hPTK5WrBiNHGzV4IN+uEkup1WoimQ+Qyt8RxKdTe/X1LWEJ8YgWv/Cl8P4ocrt5z5g== + dependencies: + "@ctrl/tinycolor" "^3.4.1" + "@element-plus/icons-vue" "^2.0.6" + "@floating-ui/dom" "^1.0.1" + "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" + "@types/lodash" "^4.14.182" + "@types/lodash-es" "^4.17.6" + "@vueuse/core" "^9.1.0" + async-validator "^4.2.5" + dayjs "^1.11.3" + escape-html "^1.0.3" + lodash "^4.17.21" + lodash-es "^4.17.21" + lodash-unified "^1.0.2" + memoize-one "^6.0.0" + normalize-wheel-es "^1.2.0" enhanced-resolve@^4.1.1: version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -errno@^0.1.1, errno@^0.1.3: +errno@^0.1.3: version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es6-templates@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" - integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.4" + is-array-buffer "^3.0.1" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: - recast "~0.11.12" - through "~2.3.6" + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild@^0.16.14: + version "0.16.17" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz" + integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== + optionalDependencies: + "@esbuild/android-arm" "0.16.17" + "@esbuild/android-arm64" "0.16.17" + "@esbuild/android-x64" "0.16.17" + "@esbuild/darwin-arm64" "0.16.17" + "@esbuild/darwin-x64" "0.16.17" + "@esbuild/freebsd-arm64" "0.16.17" + "@esbuild/freebsd-x64" "0.16.17" + "@esbuild/linux-arm" "0.16.17" + "@esbuild/linux-arm64" "0.16.17" + "@esbuild/linux-ia32" "0.16.17" + "@esbuild/linux-loong64" "0.16.17" + "@esbuild/linux-mips64el" "0.16.17" + "@esbuild/linux-ppc64" "0.16.17" + "@esbuild/linux-riscv64" "0.16.17" + "@esbuild/linux-s390x" "0.16.17" + "@esbuild/linux-x64" "0.16.17" + "@esbuild/netbsd-x64" "0.16.17" + "@esbuild/openbsd-x64" "0.16.17" + "@esbuild/sunos-x64" "0.16.17" + "@esbuild/win32-arm64" "0.16.17" + "@esbuild/win32-ia32" "0.16.17" + "@esbuild/win32-x64" "0.16.17" escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@~1.0.3: +escape-html@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-config-enough@^0.3.4: - version "0.3.8" - resolved "https://registry.yarnpkg.com/eslint-config-enough/-/eslint-config-enough-0.3.8.tgz#62f19fc470bde83b7ad848ce338af93171e6a637" - integrity sha512-kp3wK5KRENv6DFG3b/++wlBPlah/euyWJqQSqsh9cFUcsDN+LVhVKFznqzRB/MXma4MmeRNKKw+Na1wzNpjkvg== - -eslint-loader@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" - integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== - dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint@^5.12.1: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.11" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.2.3" - text-table "^0.2.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== - dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esprima@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esquery@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== +eslint-config-prettier@^8.3.0: + version "8.6.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz" + integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== +eslint-plugin-prettier@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: - original "^1.0.0" + prettier-linter-helpers "^1.0.0" -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== +eslint-plugin-vue@^9.3.0: + version "9.9.0" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz" + integrity sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ== dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" + eslint-utils "^3.0.0" + natural-compare "^1.4.0" + nth-check "^2.0.1" + postcss-selector-parser "^6.0.9" + semver "^7.3.5" + vue-eslint-parser "^9.0.1" + xml-name-validator "^4.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - is-extendable "^0.1.0" + esrecurse "^4.3.0" + estraverse "^4.1.1" -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" + esrecurse "^4.3.0" + estraverse "^5.2.0" -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + eslint-visitor-keys "^2.0.0" -fast-json-stable-stringify@^2.0.0: +eslint-visitor-keys@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastparse@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -follow-redirects@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" - integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" - integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" - integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0, globals@^11.7.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -got@^8.0.3: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-loader@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea" - integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog== - dependencies: - es6-templates "^0.2.3" - fastparse "^1.1.1" - html-minifier "^3.5.8" - loader-utils "^1.1.0" - object-assign "^4.1.1" - -html-minifier@^3.2.3, html-minifier@^3.5.8: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-webpack-plugin@^2.24.1: - version "2.30.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" - integrity sha1-f5xCG36pHsRg9WUn1430hO51N9U= - dependencies: - bluebird "^3.4.7" - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - toposort "^1.0.0" - -htmlparser2@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0: +eslint-visitor-keys@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inquirer@^6.2.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -interpret@^1.0.0, interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== - dependencies: - call-bind "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-core-module@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-what@^3.7.1: - version "3.12.0" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz#f4405ce4bd6dd420d3ced51a026fb90e03705e55" - integrity sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw== - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.0, js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -less-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" - integrity sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^3.0.0" - -less@^3.9.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== - dependencies: - copy-anything "^2.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - native-request "^1.0.5" - source-map "~0.6.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-fs-cache@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" - integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== - dependencies: - find-cache-dir "^0.1.1" - mkdirp "^0.5.1" - -loader-runner@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.22.0: + version "8.34.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz" + integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg== + dependencies: + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== +espree@^9.3.1, espree@^9.4.0: + version "9.4.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= +esquery@^1.4.0: + version "1.4.2" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz" + integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" + estraverse "^5.1.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" + estraverse "^5.2.0" -lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + "@types/estree" "^1.0.0" -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -lru-cache@^4.1.2: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== +fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: - pify "^3.0.0" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" -make-dir@^2.1.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: - object-visit "^1.0.0" + reusify "^1.0.4" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" + flat-cache "^3.0.4" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" -memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + locate-path "^6.0.0" + path-exists "^4.0.0" -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + flatted "^3.1.0" + rimraf "^3.0.2" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": - version "1.45.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== - -mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== - dependencies: - mime-db "1.45.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3, mime@^2.4.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" - integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== dependencies: - brace-expansion "^1.1.7" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +giget@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/giget/-/giget-1.1.2.tgz" + integrity sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A== + dependencies: + colorette "^2.0.19" + defu "^6.1.2" + https-proxy-agent "^5.0.1" + mri "^1.2.0" + node-fetch-native "^1.0.2" + pathe "^1.1.0" + tar "^6.1.13" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-request@^1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb" - integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" -neo-async@^2.5.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.1.3: + version "13.1.3" + resolved "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz" + integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.69: - version "1.1.70" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" - integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== +graceful-fs@^4.1.2: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== -normalize-path@^3.0.0, normalize-path@~3.0.0: +has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" + get-intrinsic "^1.1.1" -normalize-wheel@^1.0.1: +has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45" - integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU= + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: - boolbase "~1.0.0" + has-symbols "^1.0.2" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" + function-bind "^1.1.1" -object-hash@^1.1.4: - version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== -object-is@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" +he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +hookable@^5.4.2: + version "5.4.2" + resolved "https://registry.npmjs.org/hookable/-/hookable-5.4.2.tgz" + integrity sha512-6rOvaUiNKy9lET1X0ECnyZ5O5kSV0PJbtA5yZUgdEF7fGJEVwSLSislltyt7nFwVVALYHQJtfGeAR2Y0A0uJkg== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: - isobject "^3.0.1" + agent-base "6" + debug "4" -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +ignore@^5.2.0, ignore@^5.2.4: + version "5.2.4" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: - ee-first "1.1.1" + parent-module "^1.0.0" + resolve-from "^4.0.0" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: + once "^1.3.0" wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" +inherits@2, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -optionator@^0.8.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +internal-slot@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== +is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: - lcid "^1.0.0" - -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + has-bigints "^1.0.1" -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: - p-try "^1.0.0" + binary-extensions "^2.0.0" -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: - p-try "^2.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: - p-limit "^1.1.0" + has "^1.0.3" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: - p-limit "^2.0.0" + has-tostringtag "^1.0.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: - retry "^0.12.0" + is-extglob "^2.1.1" -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: - p-finally "^1.0.0" + has-tostringtag "^1.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: - no-case "^2.2.0" + call-bind "^1.0.2" -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: - callsites "^3.0.0" + has-tostringtag "^1.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" + has-symbols "^1.0.2" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== dependencies: - error-ex "^1.2.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" + call-bind "^1.0.2" -parse-passwd@^1.0.0: +isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +jiti@^1.17.1: + version "1.17.1" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz" + integrity sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw== -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +js-sdsl@^4.1.4: + version "4.3.0" + resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - pinkie-promise "^2.0.0" + argparse "^2.0.1" -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= +json5@^2.2.2: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +knitwork@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/knitwork/-/knitwork-1.0.0.tgz" + integrity sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== dependencies: graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" + p-locate "^5.0.0" -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +lodash-unified@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" + integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== -pify@^3.0.0: +lodash._reinterpolate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== dependencies: - find-up "^1.0.0" + lodash._reinterpolate "^3.0.0" -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: - find-up "^3.0.0" + yallist "^3.0.2" -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + yallist "^4.0.0" -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" + sourcemap-codec "^1.4.8" -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.13" -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== +magic-string@^0.29.0: + version "0.29.0" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz" + integrity sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q== dependencies: - postcss "^7.0.5" + "@jridgewell/sourcemap-codec" "^1.4.13" -postcss-modules-local-by-default@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" - integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^3.3.1" + errno "^0.1.3" + readable-stream "^2.0.1" -postcss-modules-scope@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" + braces "^3.0.2" + picomatch "^2.3.1" -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" - integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - icss-replace-symbols "^1.1.0" - postcss "^7.0.6" + brace-expansion "^1.1.7" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== +minimatch@^6.1.6, minimatch@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz" + integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg== dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" + brace-expansion "^2.0.1" -postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" -postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== +minipass@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz" + integrity sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw== -postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" + minipass "^3.0.0" + yallist "^4.0.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +mlly@^1.1.0, mlly@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.1.1.tgz" + integrity sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw== + dependencies: + acorn "^8.8.2" + pathe "^1.1.0" + pkg-types "^1.0.1" + ufo "^1.1.0" -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +mri@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== -pretty-error@^2.0.2: +ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -private@^0.1.6, private@^0.1.8, private@~0.1.5: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +muggle-string@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.2.2.tgz" + integrity sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -pseudomap@^1.0.2: +node-fetch-native@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.0.2.tgz" + integrity sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" -pump@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= +normalize-wheel-es@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz" + integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw== -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" -punycode@^2.1.0: +nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" + boolbase "^1.0.0" -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: - safe-buffer "^5.1.0" + wrappy "1" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" + p-limit "^3.0.2" -read-pkg-up@^1.0.1: +parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" + callsites "^3.0.0" -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -recast@~0.11.12: - version "0.11.23" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" - integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: - ast-types "0.9.6" - esprima "~3.1.0" - private "~0.1.5" - source-map "~0.5.0" + pify "^3.0.0" -regenerate@^1.2.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +pathe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz" + integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= +pkg-types@^1.0.1, pkg-types@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz" + integrity sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ== dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + jsonc-parser "^3.2.0" + mlly "^1.1.1" + pathe "^1.1.0" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= +postcss-import-resolver@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz" + integrity sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw== + dependencies: + enhanced-resolve "^4.1.1" -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= +postcss-selector-parser@^6.0.9: + version "6.0.11" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== dependencies: - jsesc "~0.5.0" + cssesc "^3.0.0" + util-deprecate "^1.0.2" -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +postcss@^8.1.10, postcss@^8.4.21: + version "8.4.21" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + fast-diff "^1.1.2" -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +prettier@^2.7.1: + version "2.8.4" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== -repeating@^2.0.0: +process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -require-main-filename@^1.0.1: +prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -resize-observer-polyfill@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= +rc9@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/rc9/-/rc9-2.0.1.tgz" + integrity sha512-9EfjLgNmzP9255YX8bGnILQcmdtOXKtUlFTu8bOZPJVtaUDZ2imswcUdpK51tMjTRQyB7r5RebNijrzuyGXcVA== dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" + defu "^6.1.2" + destr "^1.2.2" + flat "^5.0.2" -resolve-from@^3.0.0: +read-pkg@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0, resolve@^1.12.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= +readable-stream@^2.0.1: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: - lowercase-keys "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + picomatch "^2.2.1" -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: - align-text "^0.1.1" + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== +resolve@^1.10.0, resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - glob "^7.1.3" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" + glob "^7.1.3" -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +rollup@^3.10.0: + version "3.17.2" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.17.2.tgz" + integrity sha512-qMNZdlQPCkWodrAZ3qnJtvCAl4vpQ8q77uEujVCCbC/6CLB7Lcmvjq7HyiOSnf4fxTT9XgsE36oLHJBH49xjqA== + optionalDependencies: + fsevents "~2.3.2" -rxjs@^6.4.0: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: - tslib "^1.9.0" + queue-microtask "^1.2.2" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -schema-utils@^1.0.0: +safe-regex-test@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" -selfsigned@^1.10.8: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== - dependencies: - node-forge "^0.10.0" +scule@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/scule/-/scule-1.0.0.tgz" + integrity sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ== -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== +semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + lru-cache "^6.0.0" shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" + shebang-regex "^3.0.0" -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" - integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.4.7" - -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== - dependencies: - faye-websocket "^0.11.3" - uuid "^3.4.0" - websocket-driver "^0.7.4" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +shell-quote@^1.6.1: + version "1.8.0" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz" + integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + spdx-correct@^3.0.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" @@ -5137,876 +2675,433 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" + version "3.0.12" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" +std-env@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz" + integrity sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA== -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== +string.prototype.padend@^3.0.0: + version "3.1.4" + resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz" + integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: - safe-buffer "~5.2.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - is-utf8 "^0.2.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + ansi-regex "^5.0.1" -style-loader@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" - integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== - dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@^3.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= +strip-literal@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz" + integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== dependencies: - has-flag "^1.0.0" + acorn "^8.8.2" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + has-flag "^4.0.0" -tapable@^0.2.7, tapable@~0.2.5: - version "0.2.9" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" - integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tapable@^1.0.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -throttle-debounce@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" - integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg== - -through@^2.3.6, through@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== +tar@^6.1.13: + version "6.1.13" + resolved "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^4.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tslib@^1.10.0, tslib@^1.9.0: +tslib@^1.8.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" + tslib "^1.8.1" -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -uglify-js@^2.8.27: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" + prelude-ls "^1.2.1" -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= +typescript@~4.7.4: + version "4.7.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +ufo@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.1.0.tgz" + integrity sha512-LQc2s/ZDMaCN3QLpa+uzHUOQ7SdV0qgv3VBXOolQGXTaaZpIur6PwUclF5nN2hNkiTRcUugXd1zFOW3FLJ135Q== -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== +unctx@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/unctx/-/unctx-2.1.2.tgz" + integrity sha512-KK18aLRKe3OlbPyHbXAkIWSU3xK8GInomXfA7fzDMGFXQ1crX1UWrCzKesVXeUyHIayHUrnTvf87IPCKMyeKTg== dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + acorn "^8.8.2" + estree-walker "^3.0.3" + magic-string "^0.27.0" + unplugin "^1.0.1" -url-loader@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== +unimport@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/unimport/-/unimport-2.2.4.tgz" + integrity sha512-qMgmeEGqqrrmEtm0dqxMG37J6xBtrriqxq9hILvDb+e6l2F0yTnJomLoCCp0eghLR7bYGeBsUU5Y0oyiUYhViw== + dependencies: + "@rollup/pluginutils" "^5.0.2" + escape-string-regexp "^5.0.0" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.27.0" + mlly "^1.1.0" + pathe "^1.1.0" + pkg-types "^1.0.1" + scule "^1.0.0" + strip-literal "^1.0.0" + unplugin "^1.0.1" + +unplugin-auto-import@^0.14.3: + version "0.14.3" + resolved "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.14.3.tgz" + integrity sha512-6eCHLnsOPwLjNZHQkb95S5jbTWW2JH/jKiQUzTeWJAb8XFpDFZPEhxDeIDAr7HOF76Nz6EGhKF8PQduzygdICg== + dependencies: + "@antfu/utils" "^0.7.2" + "@nuxt/kit" "^3.1.2" + "@rollup/pluginutils" "^5.0.2" + local-pkg "^0.4.3" + magic-string "^0.27.0" + unimport "^2.2.4" + unplugin "^1.0.1" + +unplugin-vue-components@^0.24.0: + version "0.24.0" + resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.24.0.tgz" + integrity sha512-U+Pr5StEhlD1LzsJC63f3FoTje3IbqRuSIui9RBnOokowzMM2uK2jZkc1ccLWmhLa8P9qJwEdj93LE/NG83eiw== + dependencies: + "@antfu/utils" "^0.7.2" + "@nuxt/kit" "^3.2.0" + "@rollup/pluginutils" "^5.0.2" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.29.0" + minimatch "^6.2.0" + resolve "^1.22.1" + unplugin "^1.1.0" + +unplugin@^1.0.1, unplugin@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.1.0.tgz" + integrity sha512-I8obQ8Rs/hnkxokRV6g8JKOQFgYNnTd9DL58vcSt5IJ9AkK8wbrtsnzD5hi4BJlvcY536JzfEXj9L6h7j559/A== dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" + acorn "^8.8.2" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.5.0" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= +untyped@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/untyped/-/untyped-1.2.2.tgz" + integrity sha512-EANYd5L6AdpgfldlgMcmvOOnj092nWhy0ybhc7uhEH12ipytDYz89EOegBQKj8qWL3u1wgYnmFjADhsuCJs5Aw== dependencies: - prepend-http "^2.0.0" + "@babel/core" "^7.20.12" + "@babel/standalone" "^7.20.12" + "@babel/types" "^7.20.7" + scule "^1.0.0" -url-parse@^1.4.3, url-parse@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== +update-browserslist-db@^1.0.10: + version "1.0.10" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + escalade "^3.1.1" + picocolors "^1.0.0" -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + punycode "^2.1.0" -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" - integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== - -vue-loader@^15.6.2: - version "15.9.6" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz#f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b" - integrity sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg== - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-resource@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/vue-resource/-/vue-resource-1.5.1.tgz#0f3d685e3254d21800bebd966edcf56c34b3b6e4" - integrity sha512-o6V4wNgeqP+9v9b2bPXrr20CGNQPEXjpbUWdZWq9GJhqVeAGcYoeTtn/D4q059ZiyN0DIrDv/ADrQUmlUQcsmg== - dependencies: - got "^8.0.3" - -vue-router@^3.0.2: - version "3.4.9" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.9.tgz#c016f42030ae2932f14e4748b39a1d9a0e250e66" - integrity sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA== - -vue-style-loader@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" - integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== +vite@^4.0.0: + version "4.1.3" + resolved "https://registry.npmjs.org/vite/-/vite-4.1.3.tgz" + integrity sha512-0Zqo4/Fr/swSOBmbl+HAAhOjrqNwju+yTtoe4hQX9UsARdcuc9njyOdr6xU0DDnV7YP0RT6mgTTOiRtZgxfCxA== dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.5.22: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz#947ed7196744c8a5285ebe1233fe960437fcc57e" - integrity sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg== + esbuild "^0.16.14" + postcss "^8.4.21" + resolve "^1.22.1" + rollup "^3.10.0" + optionalDependencies: + fsevents "~2.3.2" + +vue-demi@*: + version "0.13.11" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== + +vue-eslint-parser@^9.0.0, vue-eslint-parser@^9.0.1: + version "9.1.0" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz" + integrity sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-router@^4.1.6: + version "4.1.6" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz" + integrity sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ== + dependencies: + "@vue/devtools-api" "^6.4.5" + +vue-template-compiler@^2.7.14: + version "2.7.14" + resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz" + integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== dependencies: de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== - -vue@^2.5.22: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" - integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg== - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.3.1: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" + he "^1.2.0" -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== +vue-tsc@^1.0.12: + version "1.1.4" + resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.1.4.tgz" + integrity sha512-CMG8KZsBBPyulYie05XxJCfq/yAPiB/uMMeHmog09aLm2Kml82C6tUSRgQz8ujM4JoCrpDqVCd9G0NuM9aLt1g== dependencies: - minimalistic-assert "^1.0.0" + "@volar/vue-language-core" "1.1.4" + "@volar/vue-typescript" "1.1.4" -webpack-cli@^3.2.1: - version "3.3.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" - integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== - dependencies: - chalk "^2.4.2" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.1" - findup-sync "^3.0.0" - global-modules "^2.0.0" - import-local "^2.0.0" - interpret "^1.4.0" - loader-utils "^1.4.0" - supports-color "^6.1.0" - v8-compile-cache "^2.1.1" - yargs "^13.3.2" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.1.14: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== +vue@^3.2.45: + version "3.2.47" + resolved "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz" + integrity sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ== dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" + "@vue/compiler-dom" "3.2.47" + "@vue/compiler-sfc" "3.2.47" + "@vue/runtime-dom" "3.2.47" + "@vue/server-renderer" "3.2.47" + "@vue/shared" "3.2.47" -webpack-sources@^1.0.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.7.0.tgz#b2a1226804373ffd3d03ea9c6bd525067034f6b1" - integrity sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg== - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^4.7.0" - ajv-keywords "^1.1.1" - async "^2.1.2" - enhanced-resolve "^3.3.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^0.2.16" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^3.1.0" - tapable "~0.2.5" - uglify-js "^2.8.27" - watchpack "^1.3.1" - webpack-sources "^1.0.1" - yargs "^6.0.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -whatwg-fetch@^3.0.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz#605a2cd0a7146e5db141e29d1c62ab84c0c4c868" - integrity sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A== +webpack-virtual-modules@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz" + integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" -which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@^1.2.9: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - integrity sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw= - dependencies: - camelcase "^3.0.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^6.0.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - integrity sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg= - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/web/frps/README.md b/web/frps/README.md index dc23e3fb427..a2e08e66d98 100644 --- a/web/frps/README.md +++ b/web/frps/README.md @@ -1,46 +1,25 @@ # frps-dashboard -This template should help get you started developing with Vue 3 in Vite. - -## Recommended IDE Setup - -[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). - -## Type Support for `.vue` Imports in TS - -TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types. - -If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps: - -1. Disable the built-in TypeScript Extension - 1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette - 2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)` -2. Reload the VSCode window by running `Developer: Reload Window` from the command palette. - -## Customize configuration - -See [Vite Configuration Reference](https://vitejs.dev/config/). - ## Project Setup ```sh -npm install +yarn install ``` ### Compile and Hot-Reload for Development ```sh -npm run dev +make dev ``` ### Type-Check, Compile and Minify for Production ```sh -npm run build +make build ``` ### Lint with [ESLint](https://eslint.org/) ```sh -npm run lint +make lint ``` From 2f59e967a0f891697d8274c3463af47d33e9140d Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 22 Feb 2023 00:39:56 +0800 Subject: [PATCH 044/444] web/frps: more info (#3326) --- .../{index-cd02d3b4.js => index-2a8cf2f5.js} | 38 +++++----- assets/frps/static/index.html | 2 +- pkg/config/server.go | 3 + pkg/config/server_test.go | 1 + server/control.go | 2 +- server/dashboard_api.go | 52 ++++++++------ server/proxy/proxy.go | 9 ++- web/frps/components.d.ts | 2 + web/frps/src/components/LongSpan.vue | 15 ++++ web/frps/src/components/ProxyView.vue | 4 +- web/frps/src/components/ServerOverview.vue | 72 +++++++++++++------ web/frps/src/utils/proxy.ts | 2 + 12 files changed, 136 insertions(+), 66 deletions(-) rename assets/frps/static/{index-cd02d3b4.js => index-2a8cf2f5.js} (51%) create mode 100644 web/frps/src/components/LongSpan.vue diff --git a/assets/frps/static/index-cd02d3b4.js b/assets/frps/static/index-2a8cf2f5.js similarity index 51% rename from assets/frps/static/index-cd02d3b4.js rename to assets/frps/static/index-2a8cf2f5.js index 44b23d272bc..2ba05a6e4f1 100644 --- a/assets/frps/static/index-cd02d3b4.js +++ b/assets/frps/static/index-2a8cf2f5.js @@ -1,4 +1,4 @@ -var TL=Object.defineProperty;var ML=(e,t,r)=>t in e?TL(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var AL=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,r)=>(ML(e,typeof t!="symbol"?t+"":t,r),r);var Iee=AL((Or,kr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function mm(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function At(e){if(ye(e)){const t={};for(let r=0;r{if(r){const n=r.split(PL);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function de(e){let t="";if(Ue(e))t=e;else if(ye(e))for(let r=0;rgd(r,t))}const Re=e=>Ue(e)?e:e==null?"":ye(e)||je(e)&&(e.toString===KS||!Ee(e.toString))?JSON.stringify(e,qS,2):String(e),qS=(e,t)=>t&&t.__v_isRef?qS(e,t.value):Qo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:yd(t)?{[`Set(${t.size})`]:[...t.values()]}:je(t)&&!ye(t)&&!XS(t)?String(t):t,mt={},Zo=[],or=()=>{},kL=()=>!1,NL=/^on[^a-z]/,md=e=>NL.test(e),ym=e=>e.startsWith("onUpdate:"),jt=Object.assign,_m=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},BL=Object.prototype.hasOwnProperty,ze=(e,t)=>BL.call(e,t),ye=Array.isArray,Qo=e=>Du(e)==="[object Map]",yd=e=>Du(e)==="[object Set]",N0=e=>Du(e)==="[object Date]",Ee=e=>typeof e=="function",Ue=e=>typeof e=="string",Zl=e=>typeof e=="symbol",je=e=>e!==null&&typeof e=="object",jS=e=>je(e)&&Ee(e.then)&&Ee(e.catch),KS=Object.prototype.toString,Du=e=>KS.call(e),FL=e=>Du(e).slice(8,-1),XS=e=>Du(e)==="[object Object]",bm=e=>Ue(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nc=mm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_d=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},$L=/-(\w)/g,Sn=_d(e=>e.replace($L,(t,r)=>r?r.toUpperCase():"")),HL=/\B([A-Z])/g,Ps=_d(e=>e.replace(HL,"-$1").toLowerCase()),bd=_d(e=>e.charAt(0).toUpperCase()+e.slice(1)),ic=_d(e=>e?`on${bd(e)}`:""),Ql=(e,t)=>!Object.is(e,t),ac=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},wm=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let B0;const zL=()=>B0||(B0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Dr;class WL{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Dr,!t&&Dr&&(this.index=(Dr.scopes||(Dr.scopes=[])).push(this)-1)}run(t){if(this.active){const r=Dr;try{return Dr=this,t()}finally{Dr=r}}}on(){Dr=this}off(){Dr=this.parent}stop(t){if(this.active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},ZS=e=>(e.w&Zi)>0,QS=e=>(e.n&Zi)>0,YL=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(f==="length"||f>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":ye(e)?bm(r)&&s.push(o.get("length")):(s.push(o.get(Qa)),Qo(e)&&s.push(o.get(gp)));break;case"delete":ye(e)||(s.push(o.get(Qa)),Qo(e)&&s.push(o.get(gp)));break;case"set":Qo(e)&&s.push(o.get(Qa));break}if(s.length===1)s[0]&&mp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);mp(xm(l))}}function mp(e,t){const r=ye(e)?e:[...e];for(const n of r)n.computed&&$0(n);for(const n of r)n.computed||$0(n)}function $0(e,t){(e!==mn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const jL=mm("__proto__,__v_isRef,__isVue"),tC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Zl)),KL=Cm(),XL=Cm(!1,!0),ZL=Cm(!0),H0=QL();function QL(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ze(this);for(let a=0,o=this.length;a{e[t]=function(...r){Ls();const n=Ze(this)[t].apply(this,r);return Ds(),n}}),e}function Cm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?vD:oC:t?aC:iC).get(n))return n;const o=ye(n);if(!e&&o&&ze(H0,i))return Reflect.get(H0,i,a);const s=Reflect.get(n,i,a);return(Zl(i)?tC.has(i):jL(i))||(e||Fr(n,"get",i),t)?s:St(s)?o&&bm(i)?s:s.value:je(s)?e?xd(s):ln(s):s}}const JL=rC(),eD=rC(!0);function rC(e=!1){return function(r,n,i,a){let o=r[n];if(us(o)&&St(o)&&!St(i))return!1;if(!e&&(!Rc(i)&&!us(i)&&(o=Ze(o),i=Ze(i)),!ye(r)&&St(o)&&!St(i)))return o.value=i,!0;const s=ye(r)&&bm(n)?Number(n)e,wd=e=>Reflect.getPrototypeOf(e);function Xu(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ze(e),a=Ze(t);r||(t!==a&&Fr(i,"get",t),Fr(i,"get",a));const{has:o}=wd(i),s=n?Tm:r?Em:Jl;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function Zu(e,t=!1){const r=this.__v_raw,n=Ze(r),i=Ze(e);return t||(e!==i&&Fr(n,"has",e),Fr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function Qu(e,t=!1){return e=e.__v_raw,!t&&Fr(Ze(e),"iterate",Qa),Reflect.get(e,"size",e)}function z0(e){e=Ze(e);const t=Ze(this);return wd(t).has.call(t,e)||(t.add(e),di(t,"add",e,e)),this}function W0(e,t){t=Ze(t);const r=Ze(this),{has:n,get:i}=wd(r);let a=n.call(r,e);a||(e=Ze(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?Ql(t,o)&&di(r,"set",e,t):di(r,"add",e,t),this}function V0(e){const t=Ze(this),{has:r,get:n}=wd(t);let i=r.call(t,e);i||(e=Ze(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&di(t,"delete",e,void 0),a}function G0(){const e=Ze(this),t=e.size!==0,r=e.clear();return t&&di(e,"clear",void 0,void 0),r}function Ju(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ze(o),l=t?Tm:e?Em:Jl;return!e&&Fr(s,"iterate",Qa),o.forEach((u,f)=>n.call(i,l(u),l(f),a))}}function ef(e,t,r){return function(...n){const i=this.__v_raw,a=Ze(i),o=Qo(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),f=r?Tm:t?Em:Jl;return!t&&Fr(a,"iterate",l?gp:Qa),{next(){const{value:c,done:d}=u.next();return d?{value:c,done:d}:{value:s?[f(c[0]),f(c[1])]:f(c),done:d}},[Symbol.iterator](){return this}}}}function Ti(e){return function(...t){return e==="delete"?!1:this}}function oD(){const e={get(a){return Xu(this,a)},get size(){return Qu(this)},has:Zu,add:z0,set:W0,delete:V0,clear:G0,forEach:Ju(!1,!1)},t={get(a){return Xu(this,a,!1,!0)},get size(){return Qu(this)},has:Zu,add:z0,set:W0,delete:V0,clear:G0,forEach:Ju(!1,!0)},r={get(a){return Xu(this,a,!0)},get size(){return Qu(this,!0)},has(a){return Zu.call(this,a,!0)},add:Ti("add"),set:Ti("set"),delete:Ti("delete"),clear:Ti("clear"),forEach:Ju(!0,!1)},n={get(a){return Xu(this,a,!0,!0)},get size(){return Qu(this,!0)},has(a){return Zu.call(this,a,!0)},add:Ti("add"),set:Ti("set"),delete:Ti("delete"),clear:Ti("clear"),forEach:Ju(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=ef(a,!1,!1),r[a]=ef(a,!0,!1),t[a]=ef(a,!1,!0),n[a]=ef(a,!0,!0)}),[e,r,t,n]}const[sD,lD,uD,fD]=oD();function Mm(e,t){const r=t?e?fD:uD:e?lD:sD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(ze(r,i)&&i in n?r:n,i,a)}const cD={get:Mm(!1,!1)},dD={get:Mm(!1,!0)},hD={get:Mm(!0,!1)},iC=new WeakMap,aC=new WeakMap,oC=new WeakMap,vD=new WeakMap;function pD(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function gD(e){return e.__v_skip||!Object.isExtensible(e)?0:pD(FL(e))}function ln(e){return us(e)?e:Am(e,!1,nC,cD,iC)}function sC(e){return Am(e,!1,aD,dD,aC)}function xd(e){return Am(e,!0,iD,hD,oC)}function Am(e,t,r,n,i){if(!je(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=gD(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function Jo(e){return us(e)?Jo(e.__v_raw):!!(e&&e.__v_isReactive)}function us(e){return!!(e&&e.__v_isReadonly)}function Rc(e){return!!(e&&e.__v_isShallow)}function lC(e){return Jo(e)||us(e)}function Ze(e){const t=e&&e.__v_raw;return t?Ze(t):e}function uC(e){return Ic(e,"__v_skip",!0),e}const Jl=e=>je(e)?ln(e):e,Em=e=>je(e)?xd(e):e;function fC(e){qi&&mn&&(e=Ze(e),eC(e.dep||(e.dep=xm())))}function cC(e,t){e=Ze(e),e.dep&&mp(e.dep)}function St(e){return!!(e&&e.__v_isRef===!0)}function H(e){return dC(e,!1)}function mD(e){return dC(e,!0)}function dC(e,t){return St(e)?e:new yD(e,t)}class yD{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ze(t),this._value=r?t:Jl(t)}get value(){return fC(this),this._value}set value(t){const r=this.__v_isShallow||Rc(t)||us(t);t=r?t:Ze(t),Ql(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:Jl(t),cC(this))}}function L(e){return St(e)?e.value:e}const _D={get:(e,t,r)=>L(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return St(i)&&!St(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function hC(e){return Jo(e)?e:new Proxy(e,_D)}function Sd(e){const t=ye(e)?new Array(e.length):{};for(const r in e)t[r]=wn(e,r);return t}class bD{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function wn(e,t,r){const n=e[t];return St(n)?n:new bD(e,t,r)}var vC;class wD{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[vC]=!1,this._dirty=!0,this.effect=new Sm(t,()=>{this._dirty||(this._dirty=!0,cC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ze(this);return fC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}vC="__v_isReadonly";function xD(e,t,r=!1){let n,i;const a=Ee(e);return a?(n=e,i=or):(n=e.get,i=e.set),new wD(n,i,a||!i,r)}function SD(e,...t){}function ji(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Cd(a,t,r)}return i}function en(e,t,r,n){if(Ee(e)){const a=ji(e,t,r,n);return a&&jS(a)&&a.catch(o=>{Cd(o,t,r)}),a}const i=[];for(let a=0;a>>1;tu(Jt[n])Nn&&Jt.splice(t,1)}function AD(e){ye(e)?es.push(...e):(!oi||!oi.includes(e,e.allowRecurse?$a+1:$a))&&es.push(e),gC()}function U0(e,t=eu?Nn+1:0){for(;ttu(r)-tu(n)),$a=0;$ae.id==null?1/0:e.id,ED=(e,t)=>{const r=tu(e)-tu(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function yC(e){yp=!1,eu=!0,Jt.sort(ED);const t=or;try{for(Nn=0;NnUe(h)?h.trim():h)),c&&(i=r.map(wm))}let s,l=n[s=ic(t)]||n[s=ic(Sn(t))];!l&&a&&(l=n[s=ic(Ps(t))]),l&&en(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,en(u,e,6,i)}}function _C(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!Ee(e)){const l=u=>{const f=_C(u,t,!0);f&&(s=!0,jt(o,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(je(e)&&n.set(e,null),null):(ye(a)?a.forEach(l=>o[l]=null):jt(o,a),je(e)&&n.set(e,o),o)}function Td(e,t){return!e||!md(t)?!1:(t=t.slice(2).replace(/Once$/,""),ze(e,t[0].toLowerCase()+t.slice(1))||ze(e,Ps(t))||ze(e,t))}let Yt=null,bC=null;function Oc(e){const t=Yt;return Yt=e,bC=e&&e.type.__scopeId||null,t}function ee(e,t=Yt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&n_(-1);const a=Oc(t);let o;try{o=e(...i)}finally{Oc(a),n._d&&n_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function xh(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:f,renderCache:c,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Oc(e);try{if(r.shapeFlag&4){const b=i||n;g=kn(f.call(b,b,c,a,h,d,v)),m=l}else{const b=t;g=kn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:LD(l)}}catch(b){Al.length=0,Cd(b,e,1),g=J(br)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(ym)&&(m=DD(m,o)),_=vi(_,m))}return r.dirs&&(_=vi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Oc(y),g}const LD=e=>{let t;for(const r in e)(r==="class"||r==="style"||md(r))&&((t||(t={}))[r]=e[r]);return t},DD=(e,t)=>{const r={};for(const n in e)(!ym(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function ID(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?Y0(n,o,u):!!o;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function kD(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):AD(e)}function Ct(e,t){if($t){let r=$t.provides;const n=$t.parent&&$t.parent.provides;n===r&&(r=$t.provides=Object.create(n)),r[e]=t}}function De(e,t,r=!1){const n=$t||Yt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&Ee(t)?t.call(n.proxy):t}}function ts(e,t){return Dm(e,null,t)}const tf={};function Me(e,t,r){return Dm(e,t,r)}function Dm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=mt){const s=$t;let l,u=!1,f=!1;if(St(e)?(l=()=>e.value,u=Rc(e)):Jo(e)?(l=()=>e,n=!0):ye(e)?(f=!0,u=e.some(_=>Jo(_)||Rc(_)),l=()=>e.map(_=>{if(St(_))return _.value;if(Jo(_))return Ua(_);if(Ee(_))return ji(_,s,2)})):Ee(e)?t?l=()=>ji(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return c&&c(),en(e,s,3,[d])}:l=or,t&&n){const _=l;l=()=>Ua(_())}let c,d=_=>{c=m.onStop=()=>{ji(_,s,4)}},h;if(nu)if(d=or,t?r&&en(t,s,3,[l(),f?[]:void 0,d]):l(),i==="sync"){const _=AI();h=_.__watcherHandles||(_.__watcherHandles=[])}else return or;let v=f?new Array(e.length).fill(tf):tf;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(f?_.some((b,x)=>Ql(b,v[x])):Ql(_,v)))&&(c&&c(),en(t,s,3,[_,v===tf?void 0:f&&v[0]===tf?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>pr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>Lm(p));const m=new Sm(l,g);t?r?p():v=m.run():i==="post"?pr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&_m(s.scope.effects,m)};return h&&h.push(y),y}function ND(e,t,r){const n=this.proxy,i=Ue(e)?e.includes(".")?wC(n,e):()=>n[e]:e.bind(n,n);let a;Ee(t)?a=t:(a=t.handler,r=t);const o=$t;fs(this);const s=Dm(i,a.bind(n),r);return o?fs(o):Ja(),s}function wC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Ua(r,t)});else if(XS(e))for(const r in e)Ua(e[r],t);return e}function BD(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Et(()=>{e.isMounted=!0}),tr(()=>{e.isUnmounting=!0}),e}const zr=[Function,Array],FD={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:zr,onEnter:zr,onAfterEnter:zr,onEnterCancelled:zr,onBeforeLeave:zr,onLeave:zr,onAfterLeave:zr,onLeaveCancelled:zr,onBeforeAppear:zr,onAppear:zr,onAfterAppear:zr,onAppearCancelled:zr},setup(e,{slots:t}){const r=dt(),n=BD();let i;return()=>{const a=t.default&&CC(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==br){o=p;break}}const s=Ze(e),{mode:l}=s;if(n.isLeaving)return Sh(o);const u=q0(o);if(!u)return Sh(o);const f=_p(u,s,n,r);bp(u,f);const c=r.subTree,d=c&&q0(c);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==br&&(!Ha(u,d)||h)){const p=_p(d,s,n,r);if(bp(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Sh(o);l==="in-out"&&u.type!==br&&(p.delayLeave=(g,m,y)=>{const _=SC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=y})}return o}}},xC=FD;function SC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function _p(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=SC(r,e),x=(C,T)=>{C&&en(C,n,9,T)},w=(C,T)=>{const E=T[1];x(C,T),ye(C)?C.every(A=>A.length<=1)&&E():C.length<=1&&E()},S={mode:a,persisted:o,beforeEnter(C){let T=s;if(!r.isMounted)if(i)T=p||s;else return;C._leaveCb&&C._leaveCb(!0);const E=b[_];E&&Ha(e,E)&&E.el._leaveCb&&E.el._leaveCb(),x(T,[C])},enter(C){let T=l,E=u,A=f;if(!r.isMounted)if(i)T=g||l,E=m||u,A=y||f;else return;let M=!1;const D=C._enterCb=O=>{M||(M=!0,O?x(A,[C]):x(E,[C]),S.delayedLeave&&S.delayedLeave(),C._enterCb=void 0)};T?w(T,[C,D]):D()},leave(C,T){const E=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return T();x(c,[C]);let A=!1;const M=C._leaveCb=D=>{A||(A=!0,T(),D?x(v,[C]):x(h,[C]),C._leaveCb=void 0,b[E]===e&&delete b[E])};b[E]=e,d?w(d,[C,M]):M()},clone(C){return _p(C,t,r,n)}};return S}function Sh(e){if(Md(e))return e=vi(e),e.children=null,e}function q0(e){return Md(e)?e.children?e.children[0]:void 0:e}function bp(e,t){e.shapeFlag&6&&e.component?bp(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function CC(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Md=e=>e.type.__isKeepAlive;function $D(e,t){MC(e,"a",t)}function TC(e,t){MC(e,"da",t)}function MC(e,t,r=$t){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Ad(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Md(i.parent.vnode)&&HD(n,t,r,i),i=i.parent}}function HD(e,t,r,n){const i=Ad(t,e,n,!0);Iu(()=>{_m(n[t],i)},r)}function Ad(e,t,r=$t,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Ls(),fs(r);const s=en(t,r,e,o);return Ja(),Ds(),s});return n?i.unshift(a):i.push(a),a}}const bi=e=>(t,r=$t)=>(!nu||e==="sp")&&Ad(e,(...n)=>t(...n),r),Ed=bi("bm"),Et=bi("m"),zD=bi("bu"),Pd=bi("u"),tr=bi("bum"),Iu=bi("um"),WD=bi("sp"),VD=bi("rtg"),GD=bi("rtc");function UD(e,t=$t){Ad("ec",e,t)}function sr(e,t){const r=Yt;if(r===null)return e;const n=Dd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sQi(t)?!(t.type===br||t.type===wt&&!EC(t.children)):!0)?e:null}function qD(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:ic(n)]=e[n];return r}const wp=e=>e?$C(e)?Dd(e)||e.proxy:wp(e.parent):null,Tl=jt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>wp(e.parent),$root:e=>wp(e.root),$emit:e=>e.emit,$options:e=>km(e),$forceUpdate:e=>e.f||(e.f=()=>Lm(e.update)),$nextTick:e=>e.n||(e.n=Ht.bind(e.proxy)),$watch:e=>ND.bind(e)}),Ch=(e,t)=>e!==mt&&!e.__isScriptSetup&&ze(e,t),jD={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Ch(n,t))return o[t]=1,n[t];if(i!==mt&&ze(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&ze(u,t))return o[t]=3,a[t];if(r!==mt&&ze(r,t))return o[t]=4,r[t];xp&&(o[t]=0)}}const f=Tl[t];let c,d;if(f)return t==="$attrs"&&Fr(e,"get",t),f(e);if((c=s.__cssModules)&&(c=c[t]))return c;if(r!==mt&&ze(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,ze(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Ch(i,t)?(i[t]=r,!0):n!==mt&&ze(n,t)?(n[t]=r,!0):ze(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==mt&&ze(e,o)||Ch(t,o)||(s=a[0])&&ze(s,o)||ze(n,o)||ze(Tl,o)||ze(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:ze(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let xp=!0;function KD(e){const t=km(e),r=e.proxy,n=e.ctx;xp=!1,t.beforeCreate&&X0(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:f,beforeMount:c,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:T,expose:E,inheritAttrs:A,components:M,directives:D,filters:O}=t;if(u&&XD(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const j in o){const B=o[j];Ee(B)&&(n[j]=B.bind(r))}if(i){const j=i.call(r,r);je(j)&&(e.data=ln(j))}if(xp=!0,a)for(const j in a){const B=a[j],N=Ee(B)?B.bind(r,r):Ee(B.get)?B.get.bind(r,r):or,U=!Ee(B)&&Ee(B.set)?B.set.bind(r):or,re=$({get:N,set:U});Object.defineProperty(n,j,{enumerable:!0,configurable:!0,get:()=>re.value,set:ae=>re.value=ae})}if(s)for(const j in s)PC(s[j],n,r,j);if(l){const j=Ee(l)?l.call(r):l;Reflect.ownKeys(j).forEach(B=>{Ct(B,j[B])})}f&&X0(f,e,"c");function F(j,B){ye(B)?B.forEach(N=>j(N.bind(r))):B&&j(B.bind(r))}if(F(Ed,c),F(Et,d),F(zD,h),F(Pd,v),F($D,p),F(TC,g),F(UD,C),F(GD,w),F(VD,S),F(tr,y),F(Iu,b),F(WD,T),ye(E))if(E.length){const j=e.exposed||(e.exposed={});E.forEach(B=>{Object.defineProperty(j,B,{get:()=>r[B],set:N=>r[B]=N})})}else e.exposed||(e.exposed={});x&&e.render===or&&(e.render=x),A!=null&&(e.inheritAttrs=A),M&&(e.components=M),D&&(e.directives=D)}function XD(e,t,r=or,n=!1){ye(e)&&(e=Sp(e));for(const i in e){const a=e[i];let o;je(a)?"default"in a?o=De(a.from||i,a.default,!0):o=De(a.from||i):o=De(a),St(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function X0(e,t,r){en(ye(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function PC(e,t,r,n){const i=n.includes(".")?wC(r,n):()=>r[n];if(Ue(e)){const a=t[e];Ee(a)&&Me(i,a)}else if(Ee(e))Me(i,e.bind(r));else if(je(e))if(ye(e))e.forEach(a=>PC(a,t,r,n));else{const a=Ee(e.handler)?e.handler.bind(r):t[e.handler];Ee(a)&&Me(i,a,e)}}function km(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>kc(l,u,o,!0)),kc(l,t,o)),je(t)&&a.set(t,l),l}function kc(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&kc(e,a,r,!0),i&&i.forEach(o=>kc(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=ZD[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const ZD={data:Z0,props:Na,emits:Na,methods:Na,computed:Na,beforeCreate:rr,created:rr,beforeMount:rr,mounted:rr,beforeUpdate:rr,updated:rr,beforeDestroy:rr,beforeUnmount:rr,destroyed:rr,unmounted:rr,activated:rr,deactivated:rr,errorCaptured:rr,serverPrefetch:rr,components:Na,directives:Na,watch:JD,provide:Z0,inject:QD};function Z0(e,t){return t?e?function(){return jt(Ee(e)?e.call(this,this):e,Ee(t)?t.call(this,this):t)}:t:e}function QD(e,t){return Na(Sp(e),Sp(t))}function Sp(e){if(ye(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[d,h]=DC(c,t,!0);jt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!a&&!l)return je(e)&&n.set(e,Zo),Zo;if(ye(a))for(let f=0;f-1,h[1]=p<0||v-1||ze(h,"default"))&&s.push(c)}}}const u=[o,s];return je(e)&&n.set(e,u),u}function Q0(e){return e[0]!=="$"}function J0(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function e_(e,t){return J0(e)===J0(t)}function t_(e,t){return ye(t)?t.findIndex(r=>e_(r,e)):Ee(t)&&e_(t,e)?0:-1}const IC=e=>e[0]==="_"||e==="$stable",Nm=e=>ye(e)?e.map(kn):[kn(e)],rI=(e,t,r)=>{if(t._n)return t;const n=ee((...i)=>Nm(t(...i)),r);return n._c=!1,n},RC=(e,t,r)=>{const n=e._ctx;for(const i in e){if(IC(i))continue;const a=e[i];if(Ee(a))t[i]=rI(i,a,n);else if(a!=null){const o=Nm(a);t[i]=()=>o}}},OC=(e,t)=>{const r=Nm(t);e.slots.default=()=>r},nI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ze(t),Ic(t,"_",r)):RC(t,e.slots={})}else e.slots={},t&&OC(e,t);Ic(e.slots,Ld,1)},iI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=mt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(jt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,RC(t,i)),o=t}else t&&(OC(e,t),o={default:1});if(a)for(const s in i)!IC(s)&&!(s in o)&&delete i[s]};function kC(){return{app:null,config:{isNativeTag:kL,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let aI=0;function oI(e,t){return function(n,i=null){Ee(n)||(n=Object.assign({},n)),i!=null&&!je(i)&&(i=null);const a=kC(),o=new Set;let s=!1;const l=a.app={_uid:aI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:EI,get config(){return a.config},set config(u){},use(u,...f){return o.has(u)||(u&&Ee(u.install)?(o.add(u),u.install(l,...f)):Ee(u)&&(o.add(u),u(l,...f))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,f){return f?(a.components[u]=f,l):a.components[u]},directive(u,f){return f?(a.directives[u]=f,l):a.directives[u]},mount(u,f,c){if(!s){const d=J(n,i);return d.appContext=a,f&&t?t(d,u):e(d,u,c),s=!0,l._container=u,u.__vue_app__=l,Dd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,f){return a.provides[u]=f,l}};return l}}function Tp(e,t,r,n,i=!1){if(ye(e)){e.forEach((d,h)=>Tp(d,t&&(ye(t)?t[h]:t),r,n,i));return}if(Cl(n)&&!i)return;const a=n.shapeFlag&4?Dd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,f=s.refs===mt?s.refs={}:s.refs,c=s.setupState;if(u!=null&&u!==l&&(Ue(u)?(f[u]=null,ze(c,u)&&(c[u]=null)):St(u)&&(u.value=null)),Ee(l))ji(l,s,12,[o,f]);else{const d=Ue(l),h=St(l);if(d||h){const v=()=>{if(e.f){const p=d?ze(c,l)?c[l]:f[l]:l.value;i?ye(p)&&_m(p,a):ye(p)?p.includes(a)||p.push(a):d?(f[l]=[a],ze(c,l)&&(c[l]=f[l])):(l.value=[a],e.k&&(f[e.k]=l.value))}else d?(f[l]=o,ze(c,l)&&(c[l]=o)):h&&(l.value=o,e.k&&(f[e.k]=o))};o?(v.id=-1,pr(v,r)):v()}}}const pr=kD;function sI(e){return lI(e)}function lI(e,t){const r=zL();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:d,setScopeId:h=or,insertStaticContent:v}=e,p=(P,I,z,G=null,q=null,ne=null,ce=!1,te=null,ie=!!I.dynamicChildren)=>{if(P===I)return;P&&!Ha(P,I)&&(G=W(P),ae(P,q,ne,!0),P=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:K,ref:_e,shapeFlag:ve}=I;switch(K){case Is:g(P,I,z,G);break;case br:m(P,I,z,G);break;case Th:P==null&&y(I,z,G,ce);break;case wt:M(P,I,z,G,q,ne,ce,te,ie);break;default:ve&1?x(P,I,z,G,q,ne,ce,te,ie):ve&6?D(P,I,z,G,q,ne,ce,te,ie):(ve&64||ve&128)&&K.process(P,I,z,G,q,ne,ce,te,ie,se)}_e!=null&&q&&Tp(_e,P&&P.ref,ne,I||P,!I)},g=(P,I,z,G)=>{if(P==null)n(I.el=s(I.children),z,G);else{const q=I.el=P.el;I.children!==P.children&&u(q,I.children)}},m=(P,I,z,G)=>{P==null?n(I.el=l(I.children||""),z,G):I.el=P.el},y=(P,I,z,G)=>{[P.el,P.anchor]=v(P.children,I,z,G,P.el,P.anchor)},_=({el:P,anchor:I},z,G)=>{let q;for(;P&&P!==I;)q=d(P),n(P,z,G),P=q;n(I,z,G)},b=({el:P,anchor:I})=>{let z;for(;P&&P!==I;)z=d(P),i(P),P=z;i(I)},x=(P,I,z,G,q,ne,ce,te,ie)=>{ce=ce||I.type==="svg",P==null?w(I,z,G,q,ne,ce,te,ie):T(P,I,q,ne,ce,te,ie)},w=(P,I,z,G,q,ne,ce,te)=>{let ie,K;const{type:_e,props:ve,shapeFlag:be,transition:Le,dirs:Fe}=P;if(ie=P.el=o(P.type,ne,ve&&ve.is,ve),be&8?f(ie,P.children):be&16&&C(P.children,ie,null,G,q,ne&&_e!=="foreignObject",ce,te),Fe&&sa(P,null,G,"created"),ve){for(const Je in ve)Je!=="value"&&!nc(Je)&&a(ie,Je,null,ve[Je],ne,P.children,G,q,Q);"value"in ve&&a(ie,"value",null,ve.value),(K=ve.onVnodeBeforeMount)&&Ln(K,G,P)}S(ie,P,P.scopeId,ce,G),Fe&&sa(P,null,G,"beforeMount");const tt=(!q||q&&!q.pendingBranch)&&Le&&!Le.persisted;tt&&Le.beforeEnter(ie),n(ie,I,z),((K=ve&&ve.onVnodeMounted)||tt||Fe)&&pr(()=>{K&&Ln(K,G,P),tt&&Le.enter(ie),Fe&&sa(P,null,G,"mounted")},q)},S=(P,I,z,G,q)=>{if(z&&h(P,z),G)for(let ne=0;ne{for(let K=ie;K{const te=I.el=P.el;let{patchFlag:ie,dynamicChildren:K,dirs:_e}=I;ie|=P.patchFlag&16;const ve=P.props||mt,be=I.props||mt;let Le;z&&la(z,!1),(Le=be.onVnodeBeforeUpdate)&&Ln(Le,z,I,P),_e&&sa(I,P,z,"beforeUpdate"),z&&la(z,!0);const Fe=q&&I.type!=="foreignObject";if(K?E(P.dynamicChildren,K,te,z,G,Fe,ne):ce||B(P,I,te,null,z,G,Fe,ne,!1),ie>0){if(ie&16)A(te,I,ve,be,z,G,q);else if(ie&2&&ve.class!==be.class&&a(te,"class",null,be.class,q),ie&4&&a(te,"style",ve.style,be.style,q),ie&8){const tt=I.dynamicProps;for(let Je=0;Je{Le&&Ln(Le,z,I,P),_e&&sa(I,P,z,"updated")},G)},E=(P,I,z,G,q,ne,ce)=>{for(let te=0;te{if(z!==G){if(z!==mt)for(const te in z)!nc(te)&&!(te in G)&&a(P,te,z[te],null,ce,I.children,q,ne,Q);for(const te in G){if(nc(te))continue;const ie=G[te],K=z[te];ie!==K&&te!=="value"&&a(P,te,K,ie,ce,I.children,q,ne,Q)}"value"in G&&a(P,"value",z.value,G.value)}},M=(P,I,z,G,q,ne,ce,te,ie)=>{const K=I.el=P?P.el:s(""),_e=I.anchor=P?P.anchor:s("");let{patchFlag:ve,dynamicChildren:be,slotScopeIds:Le}=I;Le&&(te=te?te.concat(Le):Le),P==null?(n(K,z,G),n(_e,z,G),C(I.children,z,_e,q,ne,ce,te,ie)):ve>0&&ve&64&&be&&P.dynamicChildren?(E(P.dynamicChildren,be,z,q,ne,ce,te),(I.key!=null||q&&I===q.subTree)&&Bm(P,I,!0)):B(P,I,z,_e,q,ne,ce,te,ie)},D=(P,I,z,G,q,ne,ce,te,ie)=>{I.slotScopeIds=te,P==null?I.shapeFlag&512?q.ctx.activate(I,z,G,ce,ie):O(I,z,G,q,ne,ce,ie):k(P,I,ie)},O=(P,I,z,G,q,ne,ce)=>{const te=P.component=_I(P,G,q);if(Md(P)&&(te.ctx.renderer=se),bI(te),te.asyncDep){if(q&&q.registerDep(te,F),!P.el){const ie=te.subTree=J(br);m(null,ie,I,z)}return}F(te,P,I,z,q,ne,ce)},k=(P,I,z)=>{const G=I.component=P.component;if(ID(P,I,z))if(G.asyncDep&&!G.asyncResolved){j(G,I,z);return}else G.next=I,MD(G.update),G.update();else I.el=P.el,G.vnode=I},F=(P,I,z,G,q,ne,ce)=>{const te=()=>{if(P.isMounted){let{next:_e,bu:ve,u:be,parent:Le,vnode:Fe}=P,tt=_e,Je;la(P,!1),_e?(_e.el=Fe.el,j(P,_e,ce)):_e=Fe,ve&&ac(ve),(Je=_e.props&&_e.props.onVnodeBeforeUpdate)&&Ln(Je,Le,_e,Fe),la(P,!0);const fe=xh(P),xe=P.subTree;P.subTree=fe,p(xe,fe,c(xe.el),W(xe),P,q,ne),_e.el=fe.el,tt===null&&RD(P,fe.el),be&&pr(be,q),(Je=_e.props&&_e.props.onVnodeUpdated)&&pr(()=>Ln(Je,Le,_e,Fe),q)}else{let _e;const{el:ve,props:be}=I,{bm:Le,m:Fe,parent:tt}=P,Je=Cl(I);if(la(P,!1),Le&&ac(Le),!Je&&(_e=be&&be.onVnodeBeforeMount)&&Ln(_e,tt,I),la(P,!0),ve&&Z){const fe=()=>{P.subTree=xh(P),Z(ve,P.subTree,P,q,null)};Je?I.type.__asyncLoader().then(()=>!P.isUnmounted&&fe()):fe()}else{const fe=P.subTree=xh(P);p(null,fe,z,G,P,q,ne),I.el=fe.el}if(Fe&&pr(Fe,q),!Je&&(_e=be&&be.onVnodeMounted)){const fe=I;pr(()=>Ln(_e,tt,fe),q)}(I.shapeFlag&256||tt&&Cl(tt.vnode)&&tt.vnode.shapeFlag&256)&&P.a&&pr(P.a,q),P.isMounted=!0,I=z=G=null}},ie=P.effect=new Sm(te,()=>Lm(K),P.scope),K=P.update=()=>ie.run();K.id=P.uid,la(P,!0),K()},j=(P,I,z)=>{I.component=P;const G=P.vnode.props;P.vnode=I,P.next=null,tI(P,I.props,G,z),iI(P,I.children,z),Ls(),U0(),Ds()},B=(P,I,z,G,q,ne,ce,te,ie=!1)=>{const K=P&&P.children,_e=P?P.shapeFlag:0,ve=I.children,{patchFlag:be,shapeFlag:Le}=I;if(be>0){if(be&128){U(K,ve,z,G,q,ne,ce,te,ie);return}else if(be&256){N(K,ve,z,G,q,ne,ce,te,ie);return}}Le&8?(_e&16&&Q(K,q,ne),ve!==K&&f(z,ve)):_e&16?Le&16?U(K,ve,z,G,q,ne,ce,te,ie):Q(K,q,ne,!0):(_e&8&&f(z,""),Le&16&&C(ve,z,G,q,ne,ce,te,ie))},N=(P,I,z,G,q,ne,ce,te,ie)=>{P=P||Zo,I=I||Zo;const K=P.length,_e=I.length,ve=Math.min(K,_e);let be;for(be=0;be_e?Q(P,q,ne,!0,!1,ve):C(I,z,G,q,ne,ce,te,ie,ve)},U=(P,I,z,G,q,ne,ce,te,ie)=>{let K=0;const _e=I.length;let ve=P.length-1,be=_e-1;for(;K<=ve&&K<=be;){const Le=P[K],Fe=I[K]=ie?$i(I[K]):kn(I[K]);if(Ha(Le,Fe))p(Le,Fe,z,null,q,ne,ce,te,ie);else break;K++}for(;K<=ve&&K<=be;){const Le=P[ve],Fe=I[be]=ie?$i(I[be]):kn(I[be]);if(Ha(Le,Fe))p(Le,Fe,z,null,q,ne,ce,te,ie);else break;ve--,be--}if(K>ve){if(K<=be){const Le=be+1,Fe=Le<_e?I[Le].el:G;for(;K<=be;)p(null,I[K]=ie?$i(I[K]):kn(I[K]),z,Fe,q,ne,ce,te,ie),K++}}else if(K>be)for(;K<=ve;)ae(P[K],q,ne,!0),K++;else{const Le=K,Fe=K,tt=new Map;for(K=Fe;K<=be;K++){const ht=I[K]=ie?$i(I[K]):kn(I[K]);ht.key!=null&&tt.set(ht.key,K)}let Je,fe=0;const xe=be-Fe+1;let $e=!1,He=0;const Ke=new Array(xe);for(K=0;K=xe){ae(ht,q,ne,!0);continue}let zt;if(ht.key!=null)zt=tt.get(ht.key);else for(Je=Fe;Je<=be;Je++)if(Ke[Je-Fe]===0&&Ha(ht,I[Je])){zt=Je;break}zt===void 0?ae(ht,q,ne,!0):(Ke[zt-Fe]=K+1,zt>=He?He=zt:$e=!0,p(ht,I[zt],z,null,q,ne,ce,te,ie),fe++)}const Ot=$e?uI(Ke):Zo;for(Je=Ot.length-1,K=xe-1;K>=0;K--){const ht=Fe+K,zt=I[ht],Hr=ht+1<_e?I[ht+1].el:G;Ke[K]===0?p(null,zt,z,Hr,q,ne,ce,te,ie):$e&&(Je<0||K!==Ot[Je]?re(zt,z,Hr,2):Je--)}}},re=(P,I,z,G,q=null)=>{const{el:ne,type:ce,transition:te,children:ie,shapeFlag:K}=P;if(K&6){re(P.component.subTree,I,z,G);return}if(K&128){P.suspense.move(I,z,G);return}if(K&64){ce.move(P,I,z,se);return}if(ce===wt){n(ne,I,z);for(let ve=0;vete.enter(ne),q);else{const{leave:ve,delayLeave:be,afterLeave:Le}=te,Fe=()=>n(ne,I,z),tt=()=>{ve(ne,()=>{Fe(),Le&&Le()})};be?be(ne,Fe,tt):tt()}else n(ne,I,z)},ae=(P,I,z,G=!1,q=!1)=>{const{type:ne,props:ce,ref:te,children:ie,dynamicChildren:K,shapeFlag:_e,patchFlag:ve,dirs:be}=P;if(te!=null&&Tp(te,null,z,P,!0),_e&256){I.ctx.deactivate(P);return}const Le=_e&1&&be,Fe=!Cl(P);let tt;if(Fe&&(tt=ce&&ce.onVnodeBeforeUnmount)&&Ln(tt,I,P),_e&6)V(P.component,z,G);else{if(_e&128){P.suspense.unmount(z,G);return}Le&&sa(P,null,I,"beforeUnmount"),_e&64?P.type.remove(P,I,z,q,se,G):K&&(ne!==wt||ve>0&&ve&64)?Q(K,I,z,!1,!0):(ne===wt&&ve&384||!q&&_e&16)&&Q(ie,I,z),G&&me(P)}(Fe&&(tt=ce&&ce.onVnodeUnmounted)||Le)&&pr(()=>{tt&&Ln(tt,I,P),Le&&sa(P,null,I,"unmounted")},z)},me=P=>{const{type:I,el:z,anchor:G,transition:q}=P;if(I===wt){Te(z,G);return}if(I===Th){b(P);return}const ne=()=>{i(z),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(P.shapeFlag&1&&q&&!q.persisted){const{leave:ce,delayLeave:te}=q,ie=()=>ce(z,ne);te?te(P.el,ne,ie):ie()}else ne()},Te=(P,I)=>{let z;for(;P!==I;)z=d(P),i(P),P=z;i(I)},V=(P,I,z)=>{const{bum:G,scope:q,update:ne,subTree:ce,um:te}=P;G&&ac(G),q.stop(),ne&&(ne.active=!1,ae(ce,P,I,z)),te&&pr(te,I),pr(()=>{P.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&P.asyncDep&&!P.asyncResolved&&P.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Q=(P,I,z,G=!1,q=!1,ne=0)=>{for(let ce=ne;ceP.shapeFlag&6?W(P.component.subTree):P.shapeFlag&128?P.suspense.next():d(P.anchor||P.el),Y=(P,I,z)=>{P==null?I._vnode&&ae(I._vnode,null,null,!0):p(I._vnode||null,P,I,null,null,null,z),U0(),mC(),I._vnode=P},se={p,um:ae,m:re,r:me,mt:O,mc:C,pc:B,pbc:E,n:W,o:e};let he,Z;return t&&([he,Z]=t(se)),{render:Y,hydrate:he,createApp:oI(Y,he)}}function la({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function Bm(e,t,r=!1){const n=e.children,i=t.children;if(ye(n)&&ye(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const fI=e=>e.__isTeleport,Ml=e=>e&&(e.disabled||e.disabled===""),r_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Mp=(e,t)=>{const r=e&&e.to;return Ue(r)?t?t(r):null:r},cI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:f,pc:c,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ml(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");h(x,r,n),h(w,r,n);const S=t.target=Mp(t.props,v),C=t.targetAnchor=p("");S&&(h(C,S),o=o||r_(S));const T=(E,A)=>{y&16&&f(_,E,A,i,a,o,s,l)};m?T(r,w):S&&T(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Ml(e.props),T=C?r:w,E=C?x:S;if(o=o||r_(w),b?(d(e.dynamicChildren,b,T,i,a,o,s),Bm(e,t,!0)):l||c(e,t,T,E,i,a,o,s,!1),m)C||rf(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Mp(t.props,v);A&&rf(t,A,null,u,0)}else C&&rf(t,w,S,u,1)}NC(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:f,target:c,props:d}=e;if(c&&a(f),(o||!Ml(d))&&(a(u),s&16))for(let h=0;h0?yn||Zo:null,vI(),ru>0&&yn&&yn.push(e),e}function Se(e,t,r,n,i,a){return BC(le(e,t,r,n,i,a,!0))}function Ie(e,t,r,n,i){return BC(J(e,t,r,n,i,!0))}function Qi(e){return e?e.__v_isVNode===!0:!1}function Ha(e,t){return e.type===t.type&&e.key===t.key}const Ld="__vInternal",FC=({key:e})=>e??null,oc=({ref:e,ref_key:t,ref_for:r})=>e!=null?Ue(e)||St(e)||Ee(e)?{i:Yt,r:e,k:t,f:!!r}:e:null;function le(e,t=null,r=null,n=0,i=null,a=e===wt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&FC(t),ref:t&&oc(t),scopeId:bC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Yt};return s?(Fm(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=Ue(r)?8:16),ru>0&&!o&&yn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&yn.push(l),l}const J=pI;function pI(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===AC)&&(e=br),Qi(e)){const s=vi(e,t,!0);return r&&Fm(s,r),ru>0&&!a&&yn&&(s.shapeFlag&6?yn[yn.indexOf(e)]=s:yn.push(s)),s.patchFlag|=-2,s}if(CI(e)&&(e=e.__vccOpts),t){t=gI(t);let{class:s,style:l}=t;s&&!Ue(s)&&(t.class=de(s)),je(l)&&(lC(l)&&!ye(l)&&(l=jt({},l)),t.style=At(l))}const o=Ue(e)?1:OD(e)?128:fI(e)?64:je(e)?4:Ee(e)?2:0;return le(e,t,r,n,i,o,a,!0)}function gI(e){return e?lC(e)||Ld in e?jt({},e):e:null}function vi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?go(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&FC(s),ref:t&&t.ref?r&&i?ye(i)?i.concat(oc(t)):[i,oc(t)]:oc(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==wt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&vi(e.ssContent),ssFallback:e.ssFallback&&vi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function kt(e=" ",t=0){return J(Is,null,e,t)}function ct(e="",t=!1){return t?(X(),Ie(br,null,e)):J(br,null,e)}function kn(e){return e==null||typeof e=="boolean"?J(br):ye(e)?J(wt,null,e.slice()):typeof e=="object"?$i(e):J(Is,null,String(e))}function $i(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:vi(e)}function Fm(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(ye(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Fm(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Ld in t)?t._ctx=Yt:i===3&&Yt&&(Yt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ee(t)?(t={default:t,_ctx:Yt},r=32):(t=String(t),n&64?(r=16,t=[kt(t)]):r=8);e.children=t,e.shapeFlag|=r}function go(...e){const t={};for(let r=0;r$t||Yt,fs=e=>{$t=e,e.scope.on()},Ja=()=>{$t&&$t.scope.off(),$t=null};function $C(e){return e.vnode.shapeFlag&4}let nu=!1;function bI(e,t=!1){nu=t;const{props:r,children:n}=e.vnode,i=$C(e);eI(e,r,i,t),nI(e,n);const a=i?wI(e,t):void 0;return nu=!1,a}function wI(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=uC(new Proxy(e.ctx,jD));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?zC(e):null;fs(e),Ls();const a=ji(n,e,0,[e.props,i]);if(Ds(),Ja(),jS(a)){if(a.then(Ja,Ja),t)return a.then(o=>{i_(e,o,t)}).catch(o=>{Cd(o,e,0)});e.asyncDep=a}else i_(e,a,t)}else HC(e,t)}function i_(e,t,r){Ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:je(t)&&(e.setupState=hC(t)),HC(e,r)}let a_;function HC(e,t,r){const n=e.type;if(!e.render){if(!t&&a_&&!n.render){const i=n.template||km(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=jt(jt({isCustomElement:a,delimiters:s},o),l);n.render=a_(i,u)}}e.render=n.render||or}fs(e),Ls(),KD(e),Ds(),Ja()}function xI(e){return new Proxy(e.attrs,{get(t,r){return Fr(e,"get","$attrs"),t[r]}})}function zC(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=xI(e))},slots:e.slots,emit:e.emit,expose:t}}function Dd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(hC(uC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Tl)return Tl[r](e)},has(t,r){return r in t||r in Tl}}))}function SI(e,t=!0){return Ee(e)?e.displayName||e.name:e.name||t&&e.__name}function CI(e){return Ee(e)&&"__vccOpts"in e}const $=(e,t)=>xD(e,t,nu);function Id(){return TI().slots}function TI(){const e=dt();return e.setupContext||(e.setupContext=zC(e))}function we(e,t,r){const n=arguments.length;return n===2?je(t)&&!ye(t)?Qi(t)?J(e,null,[t]):J(e,t):J(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&Qi(r)&&(r=[r]),J(e,t,r))}const MI=Symbol(""),AI=()=>De(MI),EI="3.2.45",PI="http://www.w3.org/2000/svg",za=typeof document<"u"?document:null,o_=za&&za.createElement("template"),LI={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?za.createElementNS(PI,e):za.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>za.createTextNode(e),createComment:e=>za.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>za.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{o_.innerHTML=n?`${e}`:e;const s=o_.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function DI(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function II(e,t,r){const n=e.style,i=Ue(r);if(r&&!i){for(const a in r)Ap(n,a,r[a]);if(t&&!Ue(t))for(const a in t)r[a]==null&&Ap(n,a,"")}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const s_=/\s*!important$/;function Ap(e,t,r){if(ye(r))r.forEach(n=>Ap(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=RI(e,t);s_.test(r)?e.setProperty(Ps(n),r.replace(s_,""),"important"):e[n]=r}}const l_=["Webkit","Moz","ms"],Mh={};function RI(e,t){const r=Mh[t];if(r)return r;let n=Sn(t);if(n!=="filter"&&n in e)return Mh[t]=n;n=bd(n);for(let i=0;iAh||($I.then(()=>Ah=0),Ah=Date.now());function zI(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;en(WI(n,r.value),t,5,[n])};return r.value=e,r.attached=HI(),r}function WI(e,t){if(ye(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const c_=/^on[a-z]/,VI=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?DI(e,n,i):t==="style"?II(e,r,n):md(t)?ym(t)||BI(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):GI(e,t,n,i))?kI(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),OI(e,t,n,i))};function GI(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&c_.test(t)&&Ee(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||c_.test(t)&&Ue(r)?!1:t in e}const Mi="transition",Vs="animation",Kn=(e,{slots:t})=>we(xC,UI(e),t);Kn.displayName="Transition";const VC={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Kn.props=jt({},xC.props,VC);const ua=(e,t=[])=>{ye(e)?e.forEach(r=>r(...t)):e&&e(...t)},d_=e=>e?ye(e)?e.some(t=>t.length>1):e.length>1:!1;function UI(e){const t={};for(const M in e)M in VC||(t[M]=e[M]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:f=s,leaveFromClass:c=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=YI(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:S=y,onAppearCancelled:C=_}=t,T=(M,D,O)=>{fa(M,D?f:s),fa(M,D?u:o),O&&O()},E=(M,D)=>{M._isLeaving=!1,fa(M,c),fa(M,h),fa(M,d),D&&D()},A=M=>(D,O)=>{const k=M?S:y,F=()=>T(D,M,O);ua(k,[D,F]),h_(()=>{fa(D,M?l:a),Ai(D,M?f:s),d_(k)||v_(D,n,p,F)})};return jt(t,{onBeforeEnter(M){ua(m,[M]),Ai(M,a),Ai(M,o)},onBeforeAppear(M){ua(w,[M]),Ai(M,l),Ai(M,u)},onEnter:A(!1),onAppear:A(!0),onLeave(M,D){M._isLeaving=!0;const O=()=>E(M,D);Ai(M,c),KI(),Ai(M,d),h_(()=>{M._isLeaving&&(fa(M,c),Ai(M,h),d_(b)||v_(M,n,g,O))}),ua(b,[M,O])},onEnterCancelled(M){T(M,!1),ua(_,[M])},onAppearCancelled(M){T(M,!0),ua(C,[M])},onLeaveCancelled(M){E(M),ua(x,[M])}})}function YI(e){if(e==null)return null;if(je(e))return[Eh(e.enter),Eh(e.leave)];{const t=Eh(e);return[t,t]}}function Eh(e){return wm(e)}function Ai(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function fa(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function h_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let qI=0;function v_(e,t,r,n){const i=e._endId=++qI,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=jI(e,t);if(!o)return n();const u=o+"end";let f=0;const c=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[v]||"").split(", "),i=n(`${Mi}Delay`),a=n(`${Mi}Duration`),o=p_(i,a),s=n(`${Vs}Delay`),l=n(`${Vs}Duration`),u=p_(s,l);let f=null,c=0,d=0;t===Mi?o>0&&(f=Mi,c=o,d=a.length):t===Vs?u>0&&(f=Vs,c=u,d=l.length):(c=Math.max(o,u),f=c>0?o>u?Mi:Vs:null,d=f?f===Mi?a.length:l.length:0);const h=f===Mi&&/\b(transform|all)(,|$)/.test(n(`${Mi}Property`).toString());return{type:f,timeout:c,propCount:d,hasTransform:h}}function p_(e,t){for(;e.lengthg_(r)+g_(e[n])))}function g_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function KI(){return document.body.offsetHeight}const m_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ye(t)?r=>ac(t,r):t},Nc={deep:!0,created(e,t,r){e._assign=m_(r),WC(e,"change",()=>{const n=e._modelValue,i=XI(e),a=e.checked,o=e._assign;if(ye(n)){const s=YS(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(yd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(GC(e,a))})},mounted:y_,beforeUpdate(e,t,r){e._assign=m_(r),y_(e,t,r)}};function y_(e,{value:t,oldValue:r},n){e._modelValue=t,ye(t)?e.checked=YS(t,n.props.value)>-1:yd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=gd(t,GC(e,!0)))}function XI(e){return"_value"in e?e._value:e.value}function GC(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const ZI=["ctrl","shift","alt","meta"],QI={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ZI.some(r=>e[`${r}Key`]&&!t.includes(r))},Ep=(e,t)=>(r,...n)=>{for(let i=0;i{Gs(e,!1)}):Gs(e,t))},beforeUnmount(e,{value:t}){Gs(e,t)}};function Gs(e,t){e.style.display=t?e._vod:"none"}const JI=jt({patchProp:VI},LI);let __;function UC(){return __||(__=sI(JI))}const b_=(...e)=>{UC().render(...e)},eR=(...e)=>{const t=UC().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=tR(n);if(!i)return;const a=t._component;!Ee(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function tR(e){return Ue(e)?document.querySelector(e):e}var rR=typeof global=="object"&&global&&global.Object===Object&&global;const YC=rR;var nR=typeof self=="object"&&self&&self.Object===Object&&self,iR=YC||nR||Function("return this")();const Mn=iR;var aR=Mn.Symbol;const nn=aR;var qC=Object.prototype,oR=qC.hasOwnProperty,sR=qC.toString,Us=nn?nn.toStringTag:void 0;function lR(e){var t=oR.call(e,Us),r=e[Us];try{e[Us]=void 0;var n=!0}catch{}var i=sR.call(e);return n&&(t?e[Us]=r:delete e[Us]),i}var uR=Object.prototype,fR=uR.toString;function cR(e){return fR.call(e)}var dR="[object Null]",hR="[object Undefined]",w_=nn?nn.toStringTag:void 0;function mo(e){return e==null?e===void 0?hR:dR:w_&&w_ in Object(e)?lR(e):cR(e)}function Yn(e){return e!=null&&typeof e=="object"}var vR="[object Symbol]";function Rd(e){return typeof e=="symbol"||Yn(e)&&mo(e)==vR}function jC(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=YR)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function XR(e){return function(){return e}}var ZR=function(){try{var e=_o(Object,"defineProperty");return e({},"",{}),e}catch{}}();const Bc=ZR;var QR=Bc?function(e,t){return Bc(e,"toString",{configurable:!0,enumerable:!1,value:XR(t),writable:!0})}:$m;const JR=QR;var eO=KR(JR);const ZC=eO;function tO(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=sO}function Rs(e){return e!=null&&Vm(e.length)&&!Hm(e)}function lO(e,t,r){if(!Cr(r))return!1;var n=typeof t;return(n=="number"?Rs(r)&&Od(t,r.length):n=="string"&&t in r)?Ru(r[t],e):!1}function uO(e){return oO(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&lO(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function Tk(e,t){var r=this.__data__,n=kd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function wi(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?Zm(s,t-1,r,n,i):Xm(i,s):n||(i[i.length]=s)}return i}function Vk(e){var t=e==null?0:e.length;return t?Zm(e,1):[]}function Gk(e){return ZC(QC(e,void 0,Vk),e+"")}var Uk=nT(Object.getPrototypeOf,Object);const Qm=Uk;var Yk="[object Object]",qk=Function.prototype,jk=Object.prototype,iT=qk.toString,Kk=jk.hasOwnProperty,Xk=iT.call(Object);function Zk(e){if(!Yn(e)||mo(e)!=Yk)return!1;var t=Qm(e);if(t===null)return!0;var r=Kk.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&iT.call(r)==Xk}function Lp(){if(!arguments.length)return[];var e=arguments[0];return ur(e)?e:[e]}function Qk(){this.__data__=new wi,this.size=0}function Jk(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function eN(e){return this.__data__.get(e)}function tN(e){return this.__data__.has(e)}var rN=200;function nN(e,t){var r=this.__data__;if(r instanceof wi){var n=r.__data__;if(!su||n.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,d=!0,h=r&HB?new $c:void 0;for(a.set(e,t),a.set(t,e);++c=t||S<0||c&&C>=a}function m(){var w=Ih();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Ih())}function x(){var w=Ih(),S=g(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(c)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return x.cancel=_,x.flush=b,x}function kp(e,t,r){(r!==void 0&&!Ru(e[t],r)||r===void 0&&!(t in e))&&zm(e,t,r)}function OF(e){return Yn(e)&&Rs(e)}function Np(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function kF(e){return Ou(e,Nu(e))}function NF(e,t,r,n,i,a,o){var s=Np(e,r),l=Np(t,r),u=o.get(l);if(u){kp(e,r,u);return}var f=a?a(s,l,r+"",e,t,o):void 0,c=f===void 0;if(c){var d=ur(l),h=!d&&au(l),v=!d&&!h&&Ym(l);f=l,d||h||v?ur(s)?f=s:OF(s)?f=XC(s):h?(c=!1,f=oT(l,!0)):v?(c=!1,f=fT(l,!0)):f=[]:Zk(l)||iu(l)?(f=s,iu(s)?f=kF(s):(!Cr(s)||Hm(s))&&(f=cT(l))):c=!1}c&&(o.set(l,f),i(f,l,n,a,o),o.delete(l)),kp(e,r,f)}function bT(e,t,r,n,i){e!==t&&_T(t,function(a,o){if(i||(i=new xn),Cr(a))NF(e,t,o,r,bT,n,i);else{var s=n?n(Np(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),kp(e,o,s)}},Nu)}function BF(e,t){var r=-1,n=Rs(e)?Array(e.length):[];return PF(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function FF(e,t){var r=ur(e)?jC:BF;return r(e,SF(t))}function $F(e,t){return Zm(FF(e,t),1)}function HF(e){for(var t=-1,r=e==null?0:e.length,n={};++ti=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var Q_;const Rt=typeof window<"u",pi=e=>typeof e=="boolean",_r=e=>typeof e=="number",jF=e=>typeof e=="string",Bp=()=>{};Rt&&((Q_=window==null?void 0:window.navigator)!=null&&Q_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function zc(e){return typeof e=="function"?e():L(e)}function KF(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}function XF(e,t={}){let r,n,i=Bp;const a=s=>{clearTimeout(s),i(),i=Bp};return s=>{const l=zc(e),u=zc(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((f,c)=>{i=t.rejectOnCancel?c:f,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,f(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,f(s())},l)})}}function ZF(e){return e}function $d(e){return GL()?(UL(e),!0):!1}function QF(e,t=200,r={}){return KF(XF(t,r),e)}function JF(e,t=200,r={}){const n=H(e.value),i=QF(()=>{n.value=e.value},t,r);return Me(e,()=>i()),n}function e$(e,t=!0){dt()?Et(e):t?e():Ht(e)}function Fp(e,t,r={}){const{immediate:n=!0}=r,i=H(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},zc(t))}return n&&(i.value=!0,Rt&&l()),$d(s),{isPending:xd(i),start:l,stop:s}}function zi(e){var t;const r=zc(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ry=Rt?window:void 0;function $n(...e){let t,r,n,i;if(jF(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ry):[t,r,n,i]=e,!t)return Bp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(f=>f()),a.length=0},s=(f,c,d)=>(f.addEventListener(c,d,i),()=>f.removeEventListener(c,d,i)),l=Me(()=>zi(t),f=>{o(),f&&a.push(...r.flatMap(c=>n.map(d=>s(f,c,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return $d(u),u}function t$(e,t,r={}){const{window:n=ry,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=zi(v);return p&&(h.target===p||h.composedPath().includes(p))}}),f=h=>{n.clearTimeout(l);const v=zi(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},c=[$n(n,"click",f,{passive:!0,capture:a}),$n(n,"pointerdown",h=>{const v=zi(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),$n(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>f(h),50)}},{passive:!0}),o&&$n(n,"blur",h=>{var v;const p=zi(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>c.forEach(h=>h())}function r$(e,t=!1){const r=H(),n=()=>r.value=Boolean(e());return n(),e$(n,t),r}const $p=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Hp="__vueuse_ssr_handlers__";$p[Hp]=$p[Hp]||{};$p[Hp];var J_=Object.getOwnPropertySymbols,n$=Object.prototype.hasOwnProperty,i$=Object.prototype.propertyIsEnumerable,a$=(e,t)=>{var r={};for(var n in e)n$.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&J_)for(var n of J_(e))t.indexOf(n)<0&&i$.call(e,n)&&(r[n]=e[n]);return r};function ds(e,t,r={}){const n=r,{window:i=ry}=n,a=a$(n,["window"]);let o;const s=r$(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=Me(()=>zi(e),c=>{l(),s.value&&i&&c&&(o=new ResizeObserver(t),o.observe(c,a))},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return $d(f),{isSupported:s,stop:f}}var eb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(eb||(eb={}));var o$=Object.defineProperty,tb=Object.getOwnPropertySymbols,s$=Object.prototype.hasOwnProperty,l$=Object.prototype.propertyIsEnumerable,rb=(e,t,r)=>t in e?o$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u$=(e,t)=>{for(var r in t||(t={}))s$.call(t,r)&&rb(e,r,t[r]);if(tb)for(var r of tb(t))l$.call(t,r)&&rb(e,r,t[r]);return e};const f$={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};u$({linear:ZF},f$);const Wc=e=>e===void 0,hs=e=>typeof Element>"u"?!1:e instanceof Element,c$=e=>Ue(e)?!Number.isNaN(Number(e)):!1,nb=e=>Object.keys(e),uc=(e,t,r)=>({get value(){return lu(e,t,r)},set value(n){qF(e,t,n)}});class d$ extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function lo(e,t){throw new d$(`[${e}] ${t}`)}const ST=(e="")=>e.split(" ").filter(t=>!!t.trim()),Pl=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Uo=(e,t)=>{!e||!t.trim()||e.classList.add(...ST(t))},rs=(e,t)=>{!e||!t.trim()||e.classList.remove(...ST(t))},ib=(e,t)=>{var r;if(!Rt||!e||!t)return"";let n=Sn(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function vs(e,t="px"){if(!e)return"";if(_r(e)||c$(e))return`${e}${t}`;if(Ue(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Xn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},h$={name:"ArrowDown"},v$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},p$=le("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),g$=[p$];function m$(e,t,r,n,i,a){return X(),Se("svg",v$,g$)}var CT=Xn(h$,[["render",m$],["__file","arrow-down.vue"]]),y$={name:"ArrowRight"},_$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},b$=le("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),w$=[b$];function x$(e,t,r,n,i,a){return X(),Se("svg",_$,w$)}var ny=Xn(y$,[["render",x$],["__file","arrow-right.vue"]]),S$={name:"ArrowUp"},C$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},T$=le("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),M$=[T$];function A$(e,t,r,n,i,a){return X(),Se("svg",C$,M$)}var E$=Xn(S$,[["render",A$],["__file","arrow-up.vue"]]),P$={name:"CircleCloseFilled"},L$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},D$=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),I$=[D$];function R$(e,t,r,n,i,a){return X(),Se("svg",L$,I$)}var TT=Xn(P$,[["render",R$],["__file","circle-close-filled.vue"]]),O$={name:"Close"},k$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},N$=le("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),B$=[N$];function F$(e,t,r,n,i,a){return X(),Se("svg",k$,B$)}var zp=Xn(O$,[["render",F$],["__file","close.vue"]]),$$={name:"InfoFilled"},H$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z$=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),W$=[z$];function V$(e,t,r,n,i,a){return X(),Se("svg",H$,W$)}var MT=Xn($$,[["render",V$],["__file","info-filled.vue"]]),G$={name:"Loading"},U$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Y$=le("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),q$=[Y$];function j$(e,t,r,n,i,a){return X(),Se("svg",U$,q$)}var AT=Xn(G$,[["render",j$],["__file","loading.vue"]]),K$={name:"More"},X$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z$=le("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),Q$=[Z$];function J$(e,t,r,n,i,a){return X(),Se("svg",X$,Q$)}var e5=Xn(K$,[["render",J$],["__file","more.vue"]]),t5={name:"SuccessFilled"},r5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n5=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),i5=[n5];function a5(e,t,r,n,i,a){return X(),Se("svg",r5,i5)}var ET=Xn(t5,[["render",a5],["__file","success-filled.vue"]]),o5={name:"WarningFilled"},s5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l5=le("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),u5=[l5];function f5(e,t,r,n,i,a){return X(),Se("svg",s5,u5)}var PT=Xn(o5,[["render",f5],["__file","warning-filled.vue"]]);const LT="__epPropKey",Ae=e=>e,c5=e=>je(e)&&!!e[LT],Hd=(e,t)=>{if(!je(e)||c5(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let f=!1,c=[];if(r&&(c=Array.from(r),ze(e,"default")&&c.push(i),f||(f=c.includes(u))),o&&(f||(f=o(u))),!f&&c.length>0){const d=[...new Set(c)].map(h=>JSON.stringify(h)).join(", ");SD(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return f}:void 0,[LT]:!0};return ze(e,"default")&&(l.default=i),l},at=e=>HF(Object.entries(e).map(([t,r])=>[t,Hd(r,t)])),Wi=Ae([String,Object,Function]),d5={Close:zp,SuccessFilled:ET,InfoFilled:MT,WarningFilled:PT,CircleCloseFilled:TT},ab={success:ET,warning:PT,error:TT,info:MT},Er=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},h5=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),v5=(e,t)=>(e.install=r=>{r.directive(t,e)},e),ia=e=>(e.install=or,e),Lt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},zd="update:modelValue",Wd=["","default","small","large"],fc=e=>{const t=ye(e)?e:[e],r=[];return t.forEach(n=>{var i;ye(n)?r.push(...fc(n)):Qi(n)&&ye(n.children)?r.push(...fc(n.children)):(r.push(n),Qi(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...fc(n.component.subTree)))}),r},Wa=e=>e,DT=Symbol("buttonGroupContextKey"),Os=Symbol("checkboxGroupContextKey"),IT=Symbol(),ks=Symbol("formContextKey"),uo=Symbol("formItemContextKey"),RT=Symbol("rowContextKey"),OT=Symbol("scrollbarContextKey"),iy=Symbol("popper"),kT=Symbol("popperContent"),ay=Symbol("elTooltip"),NT=e=>{const t=dt();return $(()=>{var r,n;return(n=((r=t.proxy)==null?void 0:r.$props)[e])!=null?n:void 0})},Vc=H();function aa(e,t=void 0){const r=dt()?De(IT,Vc):Vc;return e?$(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}const p5=(e,t,r=!1)=>{var n;const i=!!dt(),a=i?aa():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?Ct:void 0;if(!o)return;const s=$(()=>{const l=L(e);return a!=null&&a.value?g5(a.value,l):l});return o(IT,s),(r||!Vc.value)&&(Vc.value=s.value),s},g5=(e,t)=>{var r;const n=[...new Set([...nb(e),...nb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},Vd=Hd({type:String,values:Wd,required:!1}),fo=(e,t={})=>{const r=H(void 0),n=t.prop?r:NT("size"),i=t.global?r:aa("size"),a=t.form?{size:void 0}:De(ks,void 0),o=t.formItem?{size:void 0}:De(uo,void 0);return $(()=>n.value||L(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},oy=e=>{const t=NT("disabled"),r=De(ks,void 0);return $(()=>t.value||L(e)||(r==null?void 0:r.disabled)||!1)},m5=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{Me(()=>L(o),s=>{},{immediate:!0})},sy="el",y5="is-",ca=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},Ne=e=>{const t=aa("namespace",sy);return{namespace:t,b:(v="")=>ca(t.value,e,v,"",""),e:v=>v?ca(t.value,e,"",v,""):"",m:v=>v?ca(t.value,e,"","",v):"",be:(v,p)=>v&&p?ca(t.value,e,v,p,""):"",em:(v,p)=>v&&p?ca(t.value,e,"",v,p):"",bm:(v,p)=>v&&p?ca(t.value,e,v,"",p):"",bem:(v,p,g)=>v&&p&&g?ca(t.value,e,v,p,g):"",is:(v,...p)=>{const g=p.length>=1?p[0]:!0;return v&&g?`${y5}${v}`:""},cssVar:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${g}`]=v[g]);return p},cssVarName:v=>`--${t.value}-${v}`,cssVarBlock:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${e}-${g}`]=v[g]);return p},cssVarBlockName:v=>`--${t.value}-${e}-${v}`}},ob={prefix:Math.floor(Math.random()*1e4),current:0},_5=Symbol("elIdInjection"),BT=()=>dt()?De(_5,ob):ob,ly=e=>{const t=BT(),r=aa("namespace",sy);return $(()=>L(e)||`${r.value}-id-${t.prefix}-${t.current++}`)},Gd=()=>{const e=De(ks,void 0),t=De(uo,void 0);return{form:e,formItem:t}},FT=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=H(!1)),n||(n=H(!1));const i=H();let a;const o=$(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return Et(()=>{a=Me([wn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:ly().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),Iu(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}};var b5={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const w5=e=>(t,r)=>x5(t,r,L(e)),x5=(e,t,r)=>lu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),S5=e=>{const t=$(()=>L(e).name),r=St(e)?e:H(e);return{lang:t,locale:r,t:w5(e)}},$T=()=>{const e=aa("locale");return S5($(()=>e.value||b5))},C5=Hd({type:Ae(Boolean),default:null}),T5=Hd({type:Ae(Function)}),M5=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:C5,[r]:T5};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:f,onHide:c})=>{const d=dt(),{emit:h}=d,v=d.props,p=$(()=>Ee(v[r])),g=$(()=>v[e]===null),m=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),Ee(f)&&f(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),Ee(c)&&c(S))},_=S=>{if(v.disabled===!0||Ee(u)&&!u())return;const C=p.value&&Rt;C&&h(t,!0),(g.value||!C)&&m(S)},b=S=>{if(v.disabled===!0||!Rt)return;const C=p.value&&Rt;C&&h(t,!1),(g.value||!C)&&y(S)},x=S=>{pi(S)&&(v.disabled&&S?p.value&&h(t,!1):o.value!==S&&(S?m():y()))},w=()=>{o.value?b():_()};return Me(()=>v[e],x),l&&d.appContext.config.globalProperties.$route!==void 0&&Me(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),Et(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}};var wr="top",an="bottom",on="right",xr="left",uy="auto",Fu=[wr,an,on,xr],ps="start",fu="end",A5="clippingParents",HT="viewport",Ys="popper",E5="reference",sb=Fu.reduce(function(e,t){return e.concat([t+"-"+ps,t+"-"+fu])},[]),fy=[].concat(Fu,[uy]).reduce(function(e,t){return e.concat([t,t+"-"+ps,t+"-"+fu])},[]),P5="beforeRead",L5="read",D5="afterRead",I5="beforeMain",R5="main",O5="afterMain",k5="beforeWrite",N5="write",B5="afterWrite",F5=[P5,L5,D5,I5,R5,O5,k5,N5,B5];function qn(e){return e?(e.nodeName||"").toLowerCase():null}function An(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function gs(e){var t=An(e).Element;return e instanceof t||e instanceof Element}function tn(e){var t=An(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function cy(e){if(typeof ShadowRoot>"u")return!1;var t=An(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function $5(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!tn(a)||!qn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function H5(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!tn(i)||!qn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var zT={name:"applyStyles",enabled:!0,phase:"write",fn:$5,effect:H5,requires:["computeStyles"]};function Gn(e){return e.split("-")[0]}var eo=Math.max,Gc=Math.min,ms=Math.round;function ys(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(tn(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ms(r.width)/o||1),a>0&&(i=ms(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function dy(e){var t=ys(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function WT(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&cy(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function gi(e){return An(e).getComputedStyle(e)}function z5(e){return["table","td","th"].indexOf(qn(e))>=0}function oa(e){return((gs(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ud(e){return qn(e)==="html"?e:e.assignedSlot||e.parentNode||(cy(e)?e.host:null)||oa(e)}function lb(e){return!tn(e)||gi(e).position==="fixed"?null:e.offsetParent}function W5(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&tn(e)){var n=gi(e);if(n.position==="fixed")return null}var i=Ud(e);for(cy(i)&&(i=i.host);tn(i)&&["html","body"].indexOf(qn(i))<0;){var a=gi(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function $u(e){for(var t=An(e),r=lb(e);r&&z5(r)&&gi(r).position==="static";)r=lb(r);return r&&(qn(r)==="html"||qn(r)==="body"&&gi(r).position==="static")?t:r||W5(e)||t}function hy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ll(e,t,r){return eo(e,Gc(t,r))}function V5(e,t,r){var n=Ll(e,t,r);return n>r?r:n}function VT(){return{top:0,right:0,bottom:0,left:0}}function GT(e){return Object.assign({},VT(),e)}function UT(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var G5=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,GT(typeof e!="number"?e:UT(e,Fu))};function U5(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=Gn(r.placement),l=hy(s),u=[xr,on].indexOf(s)>=0,f=u?"height":"width";if(!(!a||!o)){var c=G5(i.padding,r),d=dy(a),h=l==="y"?wr:xr,v=l==="y"?an:on,p=r.rects.reference[f]+r.rects.reference[l]-o[l]-r.rects.popper[f],g=o[l]-r.rects.reference[l],m=$u(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=c[h],x=y-d[f]-c[v],w=y/2-d[f]/2+_,S=Ll(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function Y5(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!WT(t.elements.popper,i)||(t.elements.arrow=i))}var q5={name:"arrow",enabled:!0,phase:"main",fn:U5,effect:Y5,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function _s(e){return e.split("-")[1]}var j5={top:"auto",right:"auto",bottom:"auto",left:"auto"};function K5(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ms(t*i)/i||0,y:ms(r*i)/i||0}}function ub(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,f=e.roundOffsets,c=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof f=="function"?f({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=xr,b=wr,x=window;if(u){var w=$u(r),S="clientHeight",C="clientWidth";if(w===An(r)&&(w=oa(r),gi(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===wr||(i===xr||i===on)&&a===fu){b=an;var T=c&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=T-n.height,p*=l?1:-1}if(i===xr||(i===wr||i===an)&&a===fu){_=on;var E=c&&w===x&&x.visualViewport?x.visualViewport.width:w[C];h-=E-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&j5),M=f===!0?K5({x:h,y:p}):{x:h,y:p};if(h=M.x,p=M.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function X5(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:Gn(t.placement),variation:_s(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,ub(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,ub(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var YT={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:X5,data:{}},af={passive:!0};function Z5(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=An(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(f){f.addEventListener("scroll",r.update,af)}),s&&l.addEventListener("resize",r.update,af),function(){a&&u.forEach(function(f){f.removeEventListener("scroll",r.update,af)}),s&&l.removeEventListener("resize",r.update,af)}}var qT={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Z5,data:{}},Q5={left:"right",right:"left",bottom:"top",top:"bottom"};function cc(e){return e.replace(/left|right|bottom|top/g,function(t){return Q5[t]})}var J5={start:"end",end:"start"};function fb(e){return e.replace(/start|end/g,function(t){return J5[t]})}function vy(e){var t=An(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function py(e){return ys(oa(e)).left+vy(e).scrollLeft}function e3(e){var t=An(e),r=oa(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+py(e),y:s}}function t3(e){var t,r=oa(e),n=vy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=eo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=eo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+py(e),l=-n.scrollTop;return gi(i||r).direction==="rtl"&&(s+=eo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function gy(e){var t=gi(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function jT(e){return["html","body","#document"].indexOf(qn(e))>=0?e.ownerDocument.body:tn(e)&&gy(e)?e:jT(Ud(e))}function Dl(e,t){var r;t===void 0&&(t=[]);var n=jT(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=An(n),o=i?[a].concat(a.visualViewport||[],gy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(Dl(Ud(o)))}function Wp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function r3(e){var t=ys(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function cb(e,t){return t===HT?Wp(e3(e)):gs(t)?r3(t):Wp(t3(oa(e)))}function n3(e){var t=Dl(Ud(e)),r=["absolute","fixed"].indexOf(gi(e).position)>=0,n=r&&tn(e)?$u(e):e;return gs(n)?t.filter(function(i){return gs(i)&&WT(i,n)&&qn(i)!=="body"}):[]}function i3(e,t,r){var n=t==="clippingParents"?n3(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=cb(e,l);return s.top=eo(u.top,s.top),s.right=Gc(u.right,s.right),s.bottom=Gc(u.bottom,s.bottom),s.left=eo(u.left,s.left),s},cb(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function KT(e){var t=e.reference,r=e.element,n=e.placement,i=n?Gn(n):null,a=n?_s(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case wr:l={x:o,y:t.y-r.height};break;case an:l={x:o,y:t.y+t.height};break;case on:l={x:t.x+t.width,y:s};break;case xr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?hy(i):null;if(u!=null){var f=u==="y"?"height":"width";switch(a){case ps:l[u]=l[u]-(t[f]/2-r[f]/2);break;case fu:l[u]=l[u]+(t[f]/2-r[f]/2);break}}return l}function cu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?A5:a,s=r.rootBoundary,l=s===void 0?HT:s,u=r.elementContext,f=u===void 0?Ys:u,c=r.altBoundary,d=c===void 0?!1:c,h=r.padding,v=h===void 0?0:h,p=GT(typeof v!="number"?v:UT(v,Fu)),g=f===Ys?E5:Ys,m=e.rects.popper,y=e.elements[d?g:f],_=i3(gs(y)?y:y.contextElement||oa(e.elements.popper),o,l),b=ys(e.elements.reference),x=KT({reference:b,element:m,strategy:"absolute",placement:i}),w=Wp(Object.assign({},m,x)),S=f===Ys?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},T=e.modifiersData.offset;if(f===Ys&&T){var E=T[i];Object.keys(C).forEach(function(A){var M=[on,an].indexOf(A)>=0?1:-1,D=[wr,an].indexOf(A)>=0?"y":"x";C[A]+=E[D]*M})}return C}function a3(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?fy:l,f=_s(n),c=f?s?sb:sb.filter(function(v){return _s(v)===f}):Fu,d=c.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=c);var h=d.reduce(function(v,p){return v[p]=cu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[Gn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function o3(e){if(Gn(e)===uy)return[];var t=cc(e);return[fb(e),t,fb(t)]}function s3(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,f=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=Gn(g),y=m===g,_=l||(y||!v?[cc(g)]:o3(g)),b=[g].concat(_).reduce(function(Te,V){return Te.concat(Gn(V)===uy?a3(t,{placement:V,boundary:f,rootBoundary:c,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,T=b[0],E=0;E=0,k=O?"width":"height",F=cu(t,{placement:A,boundary:f,rootBoundary:c,altBoundary:d,padding:u}),j=O?D?on:xr:D?an:wr;x[k]>w[k]&&(j=cc(j));var B=cc(j),N=[];if(a&&N.push(F[M]<=0),s&&N.push(F[j]<=0,F[B]<=0),N.every(function(Te){return Te})){T=A,C=!1;break}S.set(A,N)}if(C)for(var U=v?3:1,re=function(Te){var V=b.find(function(Q){var W=S.get(Q);if(W)return W.slice(0,Te).every(function(Y){return Y})});if(V)return T=V,"break"},ae=U;ae>0;ae--){var me=re(ae);if(me==="break")break}t.placement!==T&&(t.modifiersData[n]._skip=!0,t.placement=T,t.reset=!0)}}var l3={name:"flip",enabled:!0,phase:"main",fn:s3,requiresIfExists:["offset"],data:{_skip:!1}};function db(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function hb(e){return[wr,on,an,xr].some(function(t){return e[t]>=0})}function u3(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=cu(t,{elementContext:"reference"}),s=cu(t,{altBoundary:!0}),l=db(o,n),u=db(s,i,a),f=hb(l),c=hb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:f,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":c})}var f3={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:u3};function c3(e,t,r){var n=Gn(e),i=[xr,wr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[xr,on].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function d3(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=fy.reduce(function(f,c){return f[c]=c3(c,t.rects,a),f},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var h3={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:d3};function v3(e){var t=e.state,r=e.name;t.modifiersData[r]=KT({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var XT={name:"popperOffsets",enabled:!0,phase:"read",fn:v3,data:{}};function p3(e){return e==="x"?"y":"x"}function g3(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,f=r.altBoundary,c=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=cu(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:f}),m=Gn(t.placement),y=_s(t.placement),_=!y,b=hy(m),x=p3(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,T=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,E=typeof T=="number"?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,M={x:0,y:0};if(w){if(a){var D,O=b==="y"?wr:xr,k=b==="y"?an:on,F=b==="y"?"height":"width",j=w[b],B=j+g[O],N=j-g[k],U=h?-C[F]/2:0,re=y===ps?S[F]:C[F],ae=y===ps?-C[F]:-S[F],me=t.elements.arrow,Te=h&&me?dy(me):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:VT(),Q=V[O],W=V[k],Y=Ll(0,S[F],Te[F]),se=_?S[F]/2-U-Y-Q-E.mainAxis:re-Y-Q-E.mainAxis,he=_?-S[F]/2+U+Y+W+E.mainAxis:ae+Y+W+E.mainAxis,Z=t.elements.arrow&&$u(t.elements.arrow),P=Z?b==="y"?Z.clientTop||0:Z.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=j+se-I-P,G=j+he-I,q=Ll(h?Gc(B,z):B,j,h?eo(N,G):N);w[b]=q,M[b]=q-j}if(s){var ne,ce=b==="x"?wr:xr,te=b==="x"?an:on,ie=w[x],K=x==="y"?"height":"width",_e=ie+g[ce],ve=ie-g[te],be=[wr,xr].indexOf(m)!==-1,Le=(ne=A==null?void 0:A[x])!=null?ne:0,Fe=be?_e:ie-S[K]-C[K]-Le+E.altAxis,tt=be?ie+S[K]+C[K]-Le-E.altAxis:ve,Je=h&&be?V5(Fe,ie,tt):Ll(h?Fe:_e,ie,h?tt:ve);w[x]=Je,M[x]=Je-ie}t.modifiersData[n]=M}}var m3={name:"preventOverflow",enabled:!0,phase:"main",fn:g3,requiresIfExists:["offset"]};function y3(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function _3(e){return e===An(e)||!tn(e)?vy(e):y3(e)}function b3(e){var t=e.getBoundingClientRect(),r=ms(t.width)/e.offsetWidth||1,n=ms(t.height)/e.offsetHeight||1;return r!==1||n!==1}function w3(e,t,r){r===void 0&&(r=!1);var n=tn(t),i=tn(t)&&b3(t),a=oa(t),o=ys(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((qn(t)!=="body"||gy(a))&&(s=_3(t)),tn(t)?(l=ys(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=py(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function x3(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function S3(e){var t=x3(e);return F5.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function C3(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function T3(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var vb={placement:"bottom",modifiers:[],strategy:"absolute"};function pb(){for(var e=arguments.length,t=new Array(e),r=0;r{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return $d(()=>r()),{registerTimeout:t,cancelTimeout:r}}let zo=[];const gb=e=>{const t=e;t.key===Lt.esc&&zo.forEach(r=>r(t))},P3=e=>{Et(()=>{zo.length===0&&document.addEventListener("keydown",gb),Rt&&zo.push(e)}),tr(()=>{zo=zo.filter(t=>t!==e),zo.length===0&&Rt&&document.removeEventListener("keydown",gb)})};let mb;const QT=()=>{const e=aa("namespace",sy),t=BT(),r=$(()=>`${e.value}-popper-container-${t.prefix}`),n=$(()=>`#${r.value}`);return{id:r,selector:n}},L3=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},D3=()=>{Ed(()=>{if(!Rt)return;const{id:e,selector:t}=QT();!mb&&!document.body.querySelector(t.value)&&(mb=L3(e.value))})},I3=at({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),JT=({showAfter:e,hideAfter:t,open:r,close:n})=>{const{registerTimeout:i}=E3();return{onOpen:s=>{i(()=>{r(s)},L(e))},onClose:s=>{i(()=>{n(s)},L(t))}}},eM=Symbol("elForwardRef"),R3=e=>{Ct(eM,{setForwardRef:r=>{e.value=r}})},O3=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),yb=H(0),yy=()=>{const e=aa("zIndex",2e3),t=$(()=>e.value+yb.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(yb.value++,t.value)}};var Qe=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const k3=at({size:{type:Ae([Number,String])},color:{type:String}}),N3=ue({name:"ElIcon",inheritAttrs:!1}),B3=ue({...N3,props:k3,setup(e){const t=e,r=Ne("icon"),n=$(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:Wc(i)?void 0:vs(i),"--color":a}});return(i,a)=>(X(),Se("i",go({class:L(r).b(),style:L(n)},i.$attrs),[Be(i.$slots,"default")],16))}});var F3=Qe(B3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const Cn=Er(F3),Yo=4,$3={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},H3=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),z3=at({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),W3="Thumb",V3=ue({__name:"thumb",props:z3,setup(e){const t=e,r=De(OT),n=Ne("scrollbar");r||lo(W3,"can not inject scrollbar context");const i=H(),a=H(),o=H({}),s=H(!1);let l=!1,u=!1,f=Rt?document.onselectstart:null;const c=$(()=>$3[t.vertical?"vertical":"horizontal"]),d=$(()=>H3({size:t.size,move:t.move,bar:c.value})),h=$(()=>i.value[c.value.offset]**2/r.wrapElement[c.value.scrollSize]/t.ratio/a.value[c.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[c.value.axis]=C[c.value.offset]-(w[c.value.client]-C.getBoundingClientRect()[c.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[c.value.direction]-w[c.value.client]),C=a.value[c.value.offset]/2,T=(S-C)*100*h.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=T*r.wrapElement[c.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),f=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[c.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[c.value.direction]-w[c.value.client])*-1,T=a.value[c.value.offset]-S,E=(C-T)*100*h.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=E*r.wrapElement[c.value.scrollSize]/100},y=()=>{l=!1,o.value[c.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};tr(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==f&&(document.onselectstart=f)};return $n(wn(r,"scrollbarElement"),"mousemove",_),$n(wn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(X(),Ie(Kn,{name:L(n).b("fade"),persisted:""},{default:ee(()=>[sr(le("div",{ref_key:"instance",ref:i,class:de([L(n).e("bar"),L(n).is(L(c).key)]),onMousedown:p},[le("div",{ref_key:"thumb",ref:a,class:de(L(n).e("thumb")),style:At(L(d)),onMousedown:v},null,38)],34),[[oo,w.always||s.value]])]),_:1},8,["name"]))}});var _b=Qe(V3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const G3=at({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),U3=ue({__name:"bar",props:G3,setup(e,{expose:t}){const r=e,n=H(0),i=H(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Yo,l=o.offsetWidth-Yo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(X(),Se(wt,null,[J(_b,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),J(_b,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var Y3=Qe(U3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const q3=at({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Ae([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),j3={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(_r)},K3="ElScrollbar",X3=ue({name:K3}),Z3=ue({...X3,props:q3,emits:j3,setup(e,{expose:t,emit:r}){const n=e,i=Ne("scrollbar");let a,o;const s=H(),l=H(),u=H(),f=H("0"),c=H("0"),d=H(),h=H(1),v=H(1),p=$(()=>{const S={};return n.height&&(S.height=vs(n.height)),n.maxHeight&&(S.maxHeight=vs(n.maxHeight)),[n.wrapStyle,S]}),g=$(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=$(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=d.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){je(S)?l.value.scrollTo(S):_r(S)&&_r(C)&&l.value.scrollTo(S,C)}const b=S=>{_r(S)&&(l.value.scrollTop=S)},x=S=>{_r(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Yo,C=l.value.offsetWidth-Yo,T=S**2/l.value.scrollHeight,E=C**2/l.value.scrollWidth,A=Math.max(T,n.minSize),M=Math.max(E,n.minSize);h.value=T/(S-T)/(A/(S-A)),v.value=E/(C-E)/(M/(C-M)),c.value=A+Yon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=ds(u,w),o=$n("resize",w))},{immediate:!0}),Me(()=>[n.maxHeight,n.height],()=>{n.native||Ht(()=>{var S;w(),l.value&&((S=d.value)==null||S.handleScroll(l.value))})}),Ct(OT,ln({scrollbarElement:s,wrapElement:l})),Et(()=>{n.native||Ht(()=>{w()})}),Pd(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(X(),Se("div",{ref_key:"scrollbarRef",ref:s,class:de(L(i).b())},[le("div",{ref_key:"wrapRef",ref:l,class:de(L(g)),style:At(L(p)),onScroll:y},[(X(),Ie(hi(S.tag),{ref_key:"resizeRef",ref:u,class:de(L(m)),style:At(S.viewStyle)},{default:ee(()=>[Be(S.$slots,"default")]),_:3},8,["class","style"]))],38),S.native?ct("v-if",!0):(X(),Ie(Y3,{key:0,ref_key:"barRef",ref:d,height:c.value,width:f.value,always:S.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var Q3=Qe(Z3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const tM=Er(Q3),J3=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],rM=at({role:{type:String,values:J3,default:"tooltip"}}),e4=ue({name:"ElPopperRoot",inheritAttrs:!1}),t4=ue({...e4,props:rM,setup(e,{expose:t}){const r=e,n=H(),i=H(),a=H(),o=H(),s=$(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),Ct(iy,l),(u,f)=>Be(u.$slots,"default")}});var r4=Qe(t4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const nM=at({arrowOffset:{type:Number,default:5}}),n4=ue({name:"ElPopperArrow",inheritAttrs:!1}),i4=ue({...n4,props:nM,setup(e,{expose:t}){const r=e,n=Ne("popper"),{arrowOffset:i,arrowRef:a}=De(kT,void 0);return Me(()=>r.arrowOffset,o=>{i.value=o}),tr(()=>{a.value=void 0}),t({arrowRef:a}),(o,s)=>(X(),Se("span",{ref_key:"arrowRef",ref:a,class:de(L(n).e("arrow")),"data-popper-arrow":""},null,2))}});var a4=Qe(i4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const o4="ElOnlyChild",s4=ue({name:o4,setup(e,{slots:t,attrs:r}){var n;const i=De(eM),a=O3((n=i==null?void 0:i.setForwardRef)!=null?n:or);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=iM(s);return l?sr(vi(l,r),[[a]]):null}}});function iM(e){if(!e)return null;const t=e;for(const r of t){if(je(r))switch(r.type){case br:continue;case Is:case"svg":return bb(r);case wt:return iM(r.children);default:return r}return bb(r)}return null}function bb(e){const t=Ne("only-child");return J("span",{class:t.e("content")},[e])}const aM=at({virtualRef:{type:Ae(Object)},virtualTriggering:Boolean,onMouseenter:{type:Ae(Function)},onMouseleave:{type:Ae(Function)},onClick:{type:Ae(Function)},onKeydown:{type:Ae(Function)},onFocus:{type:Ae(Function)},onBlur:{type:Ae(Function)},onContextmenu:{type:Ae(Function)},id:String,open:Boolean}),l4=ue({name:"ElPopperTrigger",inheritAttrs:!1}),u4=ue({...l4,props:aM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=De(iy,void 0);R3(i);const a=$(()=>s.value?r.id:void 0),o=$(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=$(()=>{if(n&&n.value!=="tooltip")return n.value}),l=$(()=>s.value?`${r.open}`:void 0);let u;return Et(()=>{Me(()=>r.virtualRef,f=>{f&&(i.value=zi(f))},{immediate:!0}),Me(i,(f,c)=>{u==null||u(),u=void 0,hs(f)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(f.addEventListener(d.slice(2).toLowerCase(),v),(h=c==null?void 0:c.removeEventListener)==null||h.call(c,d.slice(2).toLowerCase(),v))}),u=Me([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{ty(d[v])?f.removeAttribute(h):f.setAttribute(h,d[v])})},{immediate:!0})),hs(c)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>c.removeAttribute(d))},{immediate:!0})}),tr(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(f,c)=>f.virtualTriggering?ct("v-if",!0):(X(),Ie(L(s4),go({key:0},f.$attrs,{"aria-controls":L(a),"aria-describedby":L(o),"aria-expanded":L(l),"aria-haspopup":L(s)}),{default:ee(()=>[Be(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var f4=Qe(u4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Rh="focus-trap.focus-after-trapped",Oh="focus-trap.focus-after-released",c4="focus-trap.focusout-prevented",wb={cancelable:!0,bubbles:!1},d4={cancelable:!0,bubbles:!1},xb="focusAfterTrapped",Sb="focusAfterReleased",h4=Symbol("elFocusTrap"),_y=H(),Yd=H(0),by=H(0);let of=0;const oM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Cb=(e,t)=>{for(const r of e)if(!v4(r,t))return r},v4=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},p4=e=>{const t=oM(e),r=Cb(t,e),n=Cb(t.reverse(),e);return[r,n]},g4=e=>e instanceof HTMLInputElement&&"select"in e,ki=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),by.value=window.performance.now(),e!==r&&g4(e)&&t&&e.select()}};function Tb(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const m4=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=Tb(e,n),e.unshift(n)},remove:n=>{var i,a;e=Tb(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},y4=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(ki(n,t),document.activeElement!==r)return},Mb=m4(),_4=()=>Yd.value>by.value,sf=()=>{_y.value="pointer",Yd.value=window.performance.now()},Ab=()=>{_y.value="keyboard",Yd.value=window.performance.now()},b4=()=>(Et(()=>{of===0&&(document.addEventListener("mousedown",sf),document.addEventListener("touchstart",sf),document.addEventListener("keydown",Ab)),of++}),tr(()=>{of--,of<=0&&(document.removeEventListener("mousedown",sf),document.removeEventListener("touchstart",sf),document.removeEventListener("keydown",Ab))}),{focusReason:_y,lastUserFocusTimestamp:Yd,lastAutomatedFocusTimestamp:by}),lf=e=>new CustomEvent(c4,{...d4,detail:e}),w4=ue({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[xb,Sb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=H();let n,i;const{focusReason:a}=b4();P3(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===Lt.tab&&!g&&!m&&!y,S=document.activeElement;if(w&&S){const C=_,[T,E]=p4(C);if(T&&E){if(!b&&S===E){const M=lf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),x&&ki(T,!0))}else if(b&&[T,C].includes(S)){const M=lf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),x&&ki(E,!0))}}else if(S===C){const M=lf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||v.preventDefault()}}};Ct(h4,{focusTrapRef:r,onKeydown:s}),Me(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),Me([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",f),v.addEventListener("focusout",c)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",f),p.removeEventListener("focusout",c))});const l=v=>{t(xb,v)},u=v=>t(Sb,v),f=v=>{const p=L(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:ki(i,!0))},c=v=>{const p=L(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!ty(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=lf({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||ki(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Ht();const v=L(r);if(v){Mb.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Rh,wb);v.addEventListener(Rh,l),v.dispatchEvent(m),m.defaultPrevented||Ht(()=>{let y=e.focusStartEl;Ue(y)||(ki(y),document.activeElement!==y&&(y="first")),y==="first"&&y4(oM(v),!0),(document.activeElement===p||y==="container")&&ki(v)})}}}function h(){const v=L(r);if(v){v.removeEventListener(Rh,l);const p=new CustomEvent(Oh,{...wb,detail:{focusReason:a.value}});v.addEventListener(Oh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!_4())&&ki(n??document.body),v.removeEventListener(Oh,l),Mb.remove(o)}}return Et(()=>{e.trapped&&d(),Me(()=>e.trapped,v=>{v?d():h()})}),tr(()=>{e.trapped&&h()}),{onKeydown:s}}});function x4(e,t,r,n,i,a){return Be(e.$slots,"default",{handleKeydown:e.onKeydown})}var S4=Qe(w4,[["render",x4],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const C4=["fixed","absolute"],T4=at({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Ae(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:fy,default:"bottom"},popperOptions:{type:Ae(Object),default:()=>({})},strategy:{type:String,values:C4,default:"absolute"}}),sM=at({...T4,id:String,style:{type:Ae([String,Array,Object])},className:{type:Ae([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Ae([String,Array,Object])},popperStyle:{type:Ae([String,Array,Object])},referenceEl:{type:Ae(Object)},triggerTargetEl:{type:Ae(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),M4={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},Eb=(e,t)=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:E4(e)};return P4(a,t),L4(a,i==null?void 0:i.modifiers),a},A4=e=>{if(Rt)return zi(e)};function E4(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function P4(e,{arrowEl:t,arrowOffset:r}){e.modifiers.push({name:"arrow",options:{element:t,padding:r??5}})}function L4(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const D4=ue({name:"ElPopperContent"}),I4=ue({...D4,props:sM,emits:M4,setup(e,{expose:t,emit:r}){const n=e,{popperInstanceRef:i,contentRef:a,triggerRef:o,role:s}=De(iy,void 0),l=De(uo,void 0),{nextZIndex:u}=yy(),f=Ne("popper"),c=H(),d=H("first"),h=H(),v=H();Ct(kT,{arrowRef:h,arrowOffset:v}),l&&(l.addInputId||l.removeInputId)&&Ct(uo,{...l,addInputId:or,removeInputId:or});const p=H(n.zIndex||u()),g=H(!1);let m;const y=$(()=>A4(n.referenceEl)||L(o)),_=$(()=>[{zIndex:L(p)},n.popperStyle]),b=$(()=>[f.b(),f.is("pure",n.pure),f.is(n.effect),n.popperClass]),x=$(()=>s&&s.value==="dialog"?"false":void 0),w=({referenceEl:O,popperContentEl:k,arrowEl:F})=>{const j=Eb(n,{arrowEl:F,arrowOffset:L(v)});return ZT(O,k,j)},S=(O=!0)=>{var k;(k=L(i))==null||k.update(),O&&(p.value=n.zIndex||u())},C=()=>{var O,k;const F={name:"eventListeners",enabled:n.visible};(k=(O=L(i))==null?void 0:O.setOptions)==null||k.call(O,j=>({...j,modifiers:[...j.modifiers||[],F]})),S(!1),n.visible&&n.focusOnShow?g.value=!0:n.visible===!1&&(g.value=!1)},T=()=>{r("focus")},E=O=>{var k;((k=O.detail)==null?void 0:k.focusReason)!=="pointer"&&(d.value="first",r("blur"))},A=O=>{n.visible&&!g.value&&(O.target&&(d.value=O.target),g.value=!0)},M=O=>{n.trapping||(O.detail.focusReason==="pointer"&&O.preventDefault(),g.value=!1)},D=()=>{g.value=!1,r("close")};return Et(()=>{let O;Me(y,k=>{var F;O==null||O();const j=L(i);if((F=j==null?void 0:j.destroy)==null||F.call(j),k){const B=L(c);a.value=B,i.value=w({referenceEl:k,popperContentEl:B,arrowEl:L(h)}),O=Me(()=>k.getBoundingClientRect(),()=>S(),{immediate:!0})}else i.value=void 0},{immediate:!0}),Me(()=>n.triggerTargetEl,(k,F)=>{m==null||m(),m=void 0;const j=L(k||c.value),B=L(F||c.value);hs(j)&&(m=Me([s,()=>n.ariaLabel,x,()=>n.id],N=>{["role","aria-label","aria-modal","id"].forEach((U,re)=>{ty(N[re])?j.removeAttribute(U):j.setAttribute(U,N[re])})},{immediate:!0})),B!==j&&hs(B)&&["role","aria-label","aria-modal","id"].forEach(N=>{B.removeAttribute(N)})},{immediate:!0}),Me(()=>n.visible,C,{immediate:!0}),Me(()=>Eb(n,{arrowEl:L(h),arrowOffset:L(v)}),k=>{var F;return(F=i.value)==null?void 0:F.setOptions(k)})}),tr(()=>{m==null||m(),m=void 0}),t({popperContentRef:c,popperInstanceRef:i,updatePopper:S,contentStyle:_}),(O,k)=>(X(),Se("div",{ref_key:"popperContentRef",ref:c,style:At(L(_)),class:de(L(b)),tabindex:"-1",onMouseenter:k[0]||(k[0]=F=>O.$emit("mouseenter",F)),onMouseleave:k[1]||(k[1]=F=>O.$emit("mouseleave",F))},[J(L(S4),{trapped:g.value,"trap-on-focus-in":!0,"focus-trap-el":c.value,"focus-start-el":d.value,onFocusAfterTrapped:T,onFocusAfterReleased:E,onFocusin:A,onFocusoutPrevented:M,onReleaseRequested:D},{default:ee(()=>[Be(O.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el"])],38))}});var R4=Qe(I4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const O4=Er(r4),k4=Ne("tooltip"),qr=at({...I3,...sM,appendTo:{type:Ae([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Ae(Boolean),default:null},transition:{type:String,default:`${k4.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),du=at({...aM,disabled:Boolean,trigger:{type:Ae([String,Array]),default:"hover"},triggerKeys:{type:Ae(Array),default:()=>[Lt.enter,Lt.space]}}),{useModelToggleProps:N4,useModelToggleEmits:B4,useModelToggle:F4}=M5("visible"),$4=at({...rM,...N4,...qr,...du,...nM,showArrow:{type:Boolean,default:!0}}),H4=[...B4,"before-show","before-hide","show","hide","open","close"],z4=(e,t)=>ye(e)?e.includes(t):e===t,Co=(e,t,r)=>n=>{z4(L(e),t)&&r(n)},W4=ue({name:"ElTooltipTrigger"}),V4=ue({...W4,props:du,setup(e,{expose:t}){const r=e,n=Ne("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=De(ay,void 0),f=H(null),c=()=>{if(L(i)||r.disabled)return!0},d=wn(r,"trigger"),h=si(c,Co(d,"hover",s)),v=si(c,Co(d,"hover",l)),p=si(c,Co(d,"click",b=>{b.button===0&&u(b)})),g=si(c,Co(d,"focus",s)),m=si(c,Co(d,"focus",l)),y=si(c,Co(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=si(c,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:f}),(b,x)=>(X(),Ie(L(f4),{id:L(a),"virtual-ref":b.virtualRef,open:L(o),"virtual-triggering":b.virtualTriggering,class:de(L(n).e("trigger")),onBlur:L(m),onClick:L(p),onContextmenu:L(y),onFocus:L(g),onMouseenter:L(h),onMouseleave:L(v),onKeydown:L(_)},{default:ee(()=>[Be(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var G4=Qe(V4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const U4=ue({name:"ElTooltipContent",inheritAttrs:!1}),Y4=ue({...U4,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=QT(),i=H(null),a=H(!1),{controlled:o,id:s,open:l,trigger:u,onClose:f,onOpen:c,onShow:d,onHide:h,onBeforeShow:v,onBeforeHide:p}=De(ay,void 0),g=$(()=>r.persistent);tr(()=>{a.value=!0});const m=$(()=>L(g)?!0:L(l)),y=$(()=>r.disabled?!1:L(l)),_=$(()=>r.appendTo||n.value),b=$(()=>{var k;return(k=r.style)!=null?k:{}}),x=$(()=>!L(l)),w=()=>{h()},S=()=>{if(L(o))return!0},C=si(S,()=>{r.enterable&&L(u)==="hover"&&c()}),T=si(S,()=>{L(u)==="hover"&&f()}),E=()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k),v==null||v()},A=()=>{p==null||p()},M=()=>{d(),O=t$($(()=>{var k;return(k=i.value)==null?void 0:k.popperContentRef}),()=>{if(L(o))return;L(u)!=="hover"&&f()})},D=()=>{r.virtualTriggering||f()};let O;return Me(()=>L(l),k=>{k||O==null||O()},{flush:"post"}),Me(()=>r.content,()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k)}),t({contentRef:i}),(k,F)=>(X(),Ie(hI,{disabled:!k.teleported,to:L(_)},[J(Kn,{name:k.transition,onAfterLeave:w,onBeforeEnter:E,onAfterEnter:M,onBeforeLeave:A},{default:ee(()=>[L(m)?sr((X(),Ie(L(R4),go({key:0,id:L(s),ref_key:"contentRef",ref:i},k.$attrs,{"aria-label":k.ariaLabel,"aria-hidden":L(x),"boundaries-padding":k.boundariesPadding,"fallback-placements":k.fallbackPlacements,"gpu-acceleration":k.gpuAcceleration,offset:k.offset,placement:k.placement,"popper-options":k.popperOptions,strategy:k.strategy,effect:k.effect,enterable:k.enterable,pure:k.pure,"popper-class":k.popperClass,"popper-style":[k.popperStyle,L(b)],"reference-el":k.referenceEl,"trigger-target-el":k.triggerTargetEl,visible:L(y),"z-index":k.zIndex,onMouseenter:L(C),onMouseleave:L(T),onBlur:D,onClose:L(f)}),{default:ee(()=>[a.value?ct("v-if",!0):Be(k.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[oo,L(y)]]):ct("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var q4=Qe(Y4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const j4=["innerHTML"],K4={key:1},X4=ue({name:"ElTooltip"}),Z4=ue({...X4,props:$4,emits:H4,setup(e,{expose:t,emit:r}){const n=e;D3();const i=ly(),a=H(),o=H(),s=()=>{var m;const y=L(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=H(!1),u=H(),{show:f,hide:c,hasUpdateHandler:d}=F4({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=JT({showAfter:wn(n,"showAfter"),hideAfter:wn(n,"hideAfter"),open:f,close:c}),p=$(()=>pi(n.visible)&&!d.value);Ct(ay,{controlled:p,id:i,open:xd(l),trigger:wn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{L(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),Me(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return TC(()=>l.value&&c()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:c}),(m,y)=>(X(),Ie(L(O4),{ref_key:"popperRef",ref:a,role:m.role},{default:ee(()=>[J(G4,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:ee(()=>[m.$slots.default?Be(m.$slots,"default",{key:0}):ct("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),J(q4,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:ee(()=>[Be(m.$slots,"content",{},()=>[m.rawContent?(X(),Se("span",{key:0,innerHTML:m.content},null,8,j4)):(X(),Se("span",K4,Re(m.content),1))]),m.showArrow?(X(),Ie(L(a4),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):ct("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var Q4=Qe(Z4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const qd=Er(Q4),J4=at({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),eH=["textContent"],tH=ue({name:"ElBadge"}),rH=ue({...tH,props:J4,setup(e,{expose:t}){const r=e,n=Ne("badge"),i=$(()=>r.isDot?"":_r(r.value)&&_r(r.max)?r.max(X(),Se("div",{class:de(L(n).b())},[Be(a.$slots,"default"),J(Kn,{name:`${L(n).namespace.value}-zoom-in-center`,persisted:""},{default:ee(()=>[sr(le("sup",{class:de([L(n).e("content"),L(n).em("content",a.type),L(n).is("fixed",!!a.$slots.default),L(n).is("dot",a.isDot)]),textContent:Re(L(i))},null,10,eH),[[oo,!a.hidden&&(L(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var nH=Qe(rH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const iH=Er(nH),aH=(e,t)=>{m5({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},$(()=>e.type==="text"));const r=De(DT,void 0),n=aa("button"),{form:i}=Gd(),a=fo($(()=>r==null?void 0:r.size)),o=oy(),s=H(),l=Id(),u=$(()=>e.type||(r==null?void 0:r.type)||""),f=$(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),c=$(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(f.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Is){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:c,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},oH=["default","primary","success","warning","info","danger","text",""],sH=["button","submit","reset"],Vp=at({size:Vd,disabled:Boolean,type:{type:String,values:oH,default:""},icon:{type:Wi},nativeType:{type:String,values:sH,default:"button"},loading:Boolean,loadingIcon:{type:Wi,default:()=>AT},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),lH={click:e=>e instanceof MouseEvent};function qt(e,t){uH(e)&&(e="100%");var r=fH(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function uf(e){return Math.min(1,Math.max(0,e))}function uH(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function fH(e){return typeof e=="string"&&e.indexOf("%")!==-1}function lM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ff(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ya(e){return e.length===1?"0"+e:String(e)}function cH(e,t,r){return{r:qt(e,255)*255,g:qt(t,255)*255,b:qt(r,255)*255}}function Pb(e,t,r){e=qt(e,255),t=qt(t,255),r=qt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function dH(e,t,r){var n,i,a;if(e=qt(e,360),t=qt(t,100),r=qt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=kh(s,o,e+1/3),i=kh(s,o,e),a=kh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function Lb(e,t,r){e=qt(e,255),t=qt(t,255),r=qt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var Gp={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function mH(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=bH(e)),typeof e=="object"&&(ti(e.r)&&ti(e.g)&&ti(e.b)?(t=cH(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ti(e.h)&&ti(e.s)&&ti(e.v)?(n=ff(e.s),i=ff(e.v),t=hH(e.h,n,i),o=!0,s="hsv"):ti(e.h)&&ti(e.s)&&ti(e.l)&&(n=ff(e.s),a=ff(e.l),t=dH(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=lM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var yH="[-\\+]?\\d+%?",_H="[-\\+]?\\d*\\.\\d+%?",Vi="(?:".concat(_H,")|(?:").concat(yH,")"),Nh="[\\s|\\(]+(".concat(Vi,")[,|\\s]+(").concat(Vi,")[,|\\s]+(").concat(Vi,")\\s*\\)?"),Bh="[\\s|\\(]+(".concat(Vi,")[,|\\s]+(").concat(Vi,")[,|\\s]+(").concat(Vi,")[,|\\s]+(").concat(Vi,")\\s*\\)?"),dn={CSS_UNIT:new RegExp(Vi),rgb:new RegExp("rgb"+Nh),rgba:new RegExp("rgba"+Bh),hsl:new RegExp("hsl"+Nh),hsla:new RegExp("hsla"+Bh),hsv:new RegExp("hsv"+Nh),hsva:new RegExp("hsva"+Bh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function bH(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(Gp[e])e=Gp[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=dn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=dn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=dn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=dn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=dn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=dn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=dn.hex8.exec(e),r?{r:Lr(r[1]),g:Lr(r[2]),b:Lr(r[3]),a:Ib(r[4]),format:t?"name":"hex8"}:(r=dn.hex6.exec(e),r?{r:Lr(r[1]),g:Lr(r[2]),b:Lr(r[3]),format:t?"name":"hex"}:(r=dn.hex4.exec(e),r?{r:Lr(r[1]+r[1]),g:Lr(r[2]+r[2]),b:Lr(r[3]+r[3]),a:Ib(r[4]+r[4]),format:t?"name":"hex8"}:(r=dn.hex3.exec(e),r?{r:Lr(r[1]+r[1]),g:Lr(r[2]+r[2]),b:Lr(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ti(e){return Boolean(dn.CSS_UNIT.exec(String(e)))}var uM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=gH(t)),this.originalInput=t;var i=mH(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=lM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Lb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Lb(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Pb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Pb(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Db(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),vH(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(qt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(qt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Db(this.r,this.g,this.b,!1),r=0,n=Object.entries(Gp);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=uf(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=uf(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=uf(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=uf(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new uM(i),o=e.dark?a.tint(20).toString():Ei(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Ei(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Ei(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Ei(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Ei(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Ei(a,80):a.tint(80).toString());else{const s=e.dark?Ei(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Ei(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const xH=["aria-disabled","disabled","autofocus","type"],SH=ue({name:"ElButton"}),CH=ue({...SH,props:Vp,emits:lH,setup(e,{expose:t,emit:r}){const n=e,i=wH(n),a=Ne("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:f,handleClick:c}=aH(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:f}),(d,h)=>(X(),Se("button",{ref_key:"_ref",ref:o,class:de([L(a).b(),L(a).m(L(l)),L(a).m(L(s)),L(a).is("disabled",L(u)),L(a).is("loading",d.loading),L(a).is("plain",d.plain),L(a).is("round",d.round),L(a).is("circle",d.circle),L(a).is("text",d.text),L(a).is("link",d.link),L(a).is("has-bg",d.bg)]),"aria-disabled":L(u)||d.loading,disabled:L(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:At(L(i)),onClick:h[0]||(h[0]=(...v)=>L(c)&&L(c)(...v))},[d.loading?(X(),Se(wt,{key:0},[d.$slots.loading?Be(d.$slots,"loading",{key:0}):(X(),Ie(L(Cn),{key:1,class:de(L(a).is("loading"))},{default:ee(()=>[(X(),Ie(hi(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(X(),Ie(L(Cn),{key:1},{default:ee(()=>[d.icon?(X(),Ie(hi(d.icon),{key:0})):Be(d.$slots,"icon",{key:1})]),_:3})):ct("v-if",!0),d.$slots.default?(X(),Se("span",{key:2,class:de({[L(a).em("text","expand")]:L(f)})},[Be(d.$slots,"default")],2)):ct("v-if",!0)],14,xH))}});var TH=Qe(CH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const MH={size:Vp.size,type:Vp.type},AH=ue({name:"ElButtonGroup"}),EH=ue({...AH,props:MH,setup(e){const t=e;Ct(DT,ln({size:wn(t,"size"),type:wn(t,"type")}));const r=Ne("button");return(n,i)=>(X(),Se("div",{class:de(`${L(r).b("group")}`)},[Be(n.$slots,"default")],2))}});var fM=Qe(EH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const PH=Er(TH,{ButtonGroup:fM});ia(fM);var LH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Ni=new Map;let Rb;Rt&&(document.addEventListener("mousedown",e=>Rb=e),document.addEventListener("mouseup",e=>{for(const t of Ni.values())for(const{documentHandler:r}of t)r(e,Rb)}));function Ob(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:hs(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,f=e.contains(o)||e.contains(s),c=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||f||c||d||h||t.value(n,i)}}const DH={beforeMount(e,t){Ni.has(e)||Ni.set(e,[]),Ni.get(e).push({documentHandler:Ob(e,t),bindingFn:t.value})},updated(e,t){Ni.has(e)||Ni.set(e,[]);const r=Ni.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:Ob(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Ni.delete(e)}};var kb=!1,Va,Up,Yp,dc,hc,cM,vc,qp,jp,Kp,dM,Xp,Zp,hM,vM;function cr(){if(!kb){kb=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Xp=/\b(iPhone|iP[ao]d)/.exec(e),Zp=/\b(iP[ao]d)/.exec(e),Kp=/Android/i.exec(e),hM=/FBAN\/\w+;/i.exec(e),vM=/Mobile/i.exec(e),dM=!!/Win64/.exec(e),t){Va=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,Va&&document&&document.documentMode&&(Va=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);cM=n?parseFloat(n[1])+4:Va,Up=t[2]?parseFloat(t[2]):NaN,Yp=t[3]?parseFloat(t[3]):NaN,dc=t[4]?parseFloat(t[4]):NaN,dc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),hc=t&&t[1]?parseFloat(t[1]):NaN):hc=NaN}else Va=Up=Yp=hc=dc=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);vc=i?parseFloat(i[1].replace("_",".")):!0}else vc=!1;qp=!!r[2],jp=!!r[3]}else vc=qp=jp=!1}}var Qp={ie:function(){return cr()||Va},ieCompatibilityMode:function(){return cr()||cM>Va},ie64:function(){return Qp.ie()&&dM},firefox:function(){return cr()||Up},opera:function(){return cr()||Yp},webkit:function(){return cr()||dc},safari:function(){return Qp.webkit()},chrome:function(){return cr()||hc},windows:function(){return cr()||qp},osx:function(){return cr()||vc},linux:function(){return cr()||jp},iphone:function(){return cr()||Xp},mobile:function(){return cr()||Xp||Zp||Kp||vM},nativeApp:function(){return cr()||hM},android:function(){return cr()||Kp},ipad:function(){return cr()||Zp}},IH=Qp,cf=!!(typeof window<"u"&&window.document&&window.document.createElement),RH={canUseDOM:cf,canUseWorkers:typeof Worker<"u",canUseEventListeners:cf&&!!(window.addEventListener||window.attachEvent),canUseViewport:cf&&!!window.screen,isInWorker:!cf},pM=RH,gM;pM.canUseDOM&&(gM=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function OH(e,t){if(!pM.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&gM&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var kH=OH,Nb=10,Bb=40,Fb=800;function mM(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*Nb,i=r*Nb,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=Bb,i*=Bb):(n*=Fb,i*=Fb)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}mM.getEventType=function(){return IH.firefox()?"DOMMouseScroll":kH("wheel")?"wheel":"mousewheel"};var NH=mM;/** +var ML=Object.defineProperty;var AL=(e,t,r)=>t in e?ML(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var EL=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ft=(e,t,r)=>(AL(e,typeof t!="symbol"?t+"":t,r),r);var Ree=EL((Or,kr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function mm(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function At(e){if(ye(e)){const t={};for(let r=0;r{if(r){const n=r.split(LL);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function de(e){let t="";if(Ue(e))t=e;else if(ye(e))for(let r=0;rmd(r,t))}const Ae=e=>Ue(e)?e:e==null?"":ye(e)||Ke(e)&&(e.toString===XS||!Le(e.toString))?JSON.stringify(e,jS,2):String(e),jS=(e,t)=>t&&t.__v_isRef?jS(e,t.value):Qo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:_d(t)?{[`Set(${t.size})`]:[...t.values()]}:Ke(t)&&!ye(t)&&!ZS(t)?String(t):t,mt={},Zo=[],sr=()=>{},NL=()=>!1,BL=/^on[^a-z]/,yd=e=>BL.test(e),ym=e=>e.startsWith("onUpdate:"),Kt=Object.assign,_m=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},FL=Object.prototype.hasOwnProperty,ze=(e,t)=>FL.call(e,t),ye=Array.isArray,Qo=e=>Du(e)==="[object Map]",_d=e=>Du(e)==="[object Set]",N0=e=>Du(e)==="[object Date]",Le=e=>typeof e=="function",Ue=e=>typeof e=="string",Zl=e=>typeof e=="symbol",Ke=e=>e!==null&&typeof e=="object",KS=e=>Ke(e)&&Le(e.then)&&Le(e.catch),XS=Object.prototype.toString,Du=e=>XS.call(e),$L=e=>Du(e).slice(8,-1),ZS=e=>Du(e)==="[object Object]",bm=e=>Ue(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ic=mm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bd=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},HL=/-(\w)/g,Sn=bd(e=>e.replace(HL,(t,r)=>r?r.toUpperCase():"")),zL=/\B([A-Z])/g,Ps=bd(e=>e.replace(zL,"-$1").toLowerCase()),wd=bd(e=>e.charAt(0).toUpperCase()+e.slice(1)),ac=bd(e=>e?`on${wd(e)}`:""),Ql=(e,t)=>!Object.is(e,t),oc=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},wm=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let B0;const WL=()=>B0||(B0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Dr;class VL{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Dr,!t&&Dr&&(this.index=(Dr.scopes||(Dr.scopes=[])).push(this)-1)}run(t){if(this.active){const r=Dr;try{return Dr=this,t()}finally{Dr=r}}}on(){Dr=this}off(){Dr=this.parent}stop(t){if(this.active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},QS=e=>(e.w&Qi)>0,JS=e=>(e.n&Qi)>0,qL=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(f==="length"||f>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":ye(e)?bm(r)&&s.push(o.get("length")):(s.push(o.get(Ja)),Qo(e)&&s.push(o.get(gp)));break;case"delete":ye(e)||(s.push(o.get(Ja)),Qo(e)&&s.push(o.get(gp)));break;case"set":Qo(e)&&s.push(o.get(Ja));break}if(s.length===1)s[0]&&mp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);mp(xm(l))}}function mp(e,t){const r=ye(e)?e:[...e];for(const n of r)n.computed&&$0(n);for(const n of r)n.computed||$0(n)}function $0(e,t){(e!==mn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const KL=mm("__proto__,__v_isRef,__isVue"),rC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Zl)),XL=Cm(),ZL=Cm(!1,!0),QL=Cm(!0),H0=JL();function JL(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Qe(this);for(let a=0,o=this.length;a{e[t]=function(...r){Ls();const n=Qe(this)[t].apply(this,r);return Ds(),n}}),e}function Cm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?pD:sC:t?oC:aC).get(n))return n;const o=ye(n);if(!e&&o&&ze(H0,i))return Reflect.get(H0,i,a);const s=Reflect.get(n,i,a);return(Zl(i)?rC.has(i):KL(i))||(e||Fr(n,"get",i),t)?s:St(s)?o&&bm(i)?s:s.value:Ke(s)?e?Sd(s):ln(s):s}}const eD=nC(),tD=nC(!0);function nC(e=!1){return function(r,n,i,a){let o=r[n];if(us(o)&&St(o)&&!St(i))return!1;if(!e&&(!Oc(i)&&!us(i)&&(o=Qe(o),i=Qe(i)),!ye(r)&&St(o)&&!St(i)))return o.value=i,!0;const s=ye(r)&&bm(n)?Number(n)e,xd=e=>Reflect.getPrototypeOf(e);function Zu(e,t,r=!1,n=!1){e=e.__v_raw;const i=Qe(e),a=Qe(t);r||(t!==a&&Fr(i,"get",t),Fr(i,"get",a));const{has:o}=xd(i),s=n?Tm:r?Em:Jl;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function Qu(e,t=!1){const r=this.__v_raw,n=Qe(r),i=Qe(e);return t||(e!==i&&Fr(n,"has",e),Fr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function Ju(e,t=!1){return e=e.__v_raw,!t&&Fr(Qe(e),"iterate",Ja),Reflect.get(e,"size",e)}function z0(e){e=Qe(e);const t=Qe(this);return xd(t).has.call(t,e)||(t.add(e),di(t,"add",e,e)),this}function W0(e,t){t=Qe(t);const r=Qe(this),{has:n,get:i}=xd(r);let a=n.call(r,e);a||(e=Qe(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?Ql(t,o)&&di(r,"set",e,t):di(r,"add",e,t),this}function V0(e){const t=Qe(this),{has:r,get:n}=xd(t);let i=r.call(t,e);i||(e=Qe(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&di(t,"delete",e,void 0),a}function G0(){const e=Qe(this),t=e.size!==0,r=e.clear();return t&&di(e,"clear",void 0,void 0),r}function ef(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Qe(o),l=t?Tm:e?Em:Jl;return!e&&Fr(s,"iterate",Ja),o.forEach((u,f)=>n.call(i,l(u),l(f),a))}}function tf(e,t,r){return function(...n){const i=this.__v_raw,a=Qe(i),o=Qo(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),f=r?Tm:t?Em:Jl;return!t&&Fr(a,"iterate",l?gp:Ja),{next(){const{value:c,done:d}=u.next();return d?{value:c,done:d}:{value:s?[f(c[0]),f(c[1])]:f(c),done:d}},[Symbol.iterator](){return this}}}}function Mi(e){return function(...t){return e==="delete"?!1:this}}function sD(){const e={get(a){return Zu(this,a)},get size(){return Ju(this)},has:Qu,add:z0,set:W0,delete:V0,clear:G0,forEach:ef(!1,!1)},t={get(a){return Zu(this,a,!1,!0)},get size(){return Ju(this)},has:Qu,add:z0,set:W0,delete:V0,clear:G0,forEach:ef(!1,!0)},r={get(a){return Zu(this,a,!0)},get size(){return Ju(this,!0)},has(a){return Qu.call(this,a,!0)},add:Mi("add"),set:Mi("set"),delete:Mi("delete"),clear:Mi("clear"),forEach:ef(!0,!1)},n={get(a){return Zu(this,a,!0,!0)},get size(){return Ju(this,!0)},has(a){return Qu.call(this,a,!0)},add:Mi("add"),set:Mi("set"),delete:Mi("delete"),clear:Mi("clear"),forEach:ef(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=tf(a,!1,!1),r[a]=tf(a,!0,!1),t[a]=tf(a,!1,!0),n[a]=tf(a,!0,!0)}),[e,r,t,n]}const[lD,uD,fD,cD]=sD();function Mm(e,t){const r=t?e?cD:fD:e?uD:lD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(ze(r,i)&&i in n?r:n,i,a)}const dD={get:Mm(!1,!1)},hD={get:Mm(!1,!0)},vD={get:Mm(!0,!1)},aC=new WeakMap,oC=new WeakMap,sC=new WeakMap,pD=new WeakMap;function gD(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function mD(e){return e.__v_skip||!Object.isExtensible(e)?0:gD($L(e))}function ln(e){return us(e)?e:Am(e,!1,iC,dD,aC)}function lC(e){return Am(e,!1,oD,hD,oC)}function Sd(e){return Am(e,!0,aD,vD,sC)}function Am(e,t,r,n,i){if(!Ke(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=mD(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function Jo(e){return us(e)?Jo(e.__v_raw):!!(e&&e.__v_isReactive)}function us(e){return!!(e&&e.__v_isReadonly)}function Oc(e){return!!(e&&e.__v_isShallow)}function uC(e){return Jo(e)||us(e)}function Qe(e){const t=e&&e.__v_raw;return t?Qe(t):e}function fC(e){return Rc(e,"__v_skip",!0),e}const Jl=e=>Ke(e)?ln(e):e,Em=e=>Ke(e)?Sd(e):e;function cC(e){ji&&mn&&(e=Qe(e),tC(e.dep||(e.dep=xm())))}function dC(e,t){e=Qe(e),e.dep&&mp(e.dep)}function St(e){return!!(e&&e.__v_isRef===!0)}function H(e){return hC(e,!1)}function yD(e){return hC(e,!0)}function hC(e,t){return St(e)?e:new _D(e,t)}class _D{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Qe(t),this._value=r?t:Jl(t)}get value(){return cC(this),this._value}set value(t){const r=this.__v_isShallow||Oc(t)||us(t);t=r?t:Qe(t),Ql(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:Jl(t),dC(this))}}function L(e){return St(e)?e.value:e}const bD={get:(e,t,r)=>L(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return St(i)&&!St(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function vC(e){return Jo(e)?e:new Proxy(e,bD)}function Cd(e){const t=ye(e)?new Array(e.length):{};for(const r in e)t[r]=wn(e,r);return t}class wD{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function wn(e,t,r){const n=e[t];return St(n)?n:new wD(e,t,r)}var pC;class xD{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[pC]=!1,this._dirty=!0,this.effect=new Sm(t,()=>{this._dirty||(this._dirty=!0,dC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Qe(this);return cC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}pC="__v_isReadonly";function SD(e,t,r=!1){let n,i;const a=Le(e);return a?(n=e,i=sr):(n=e.get,i=e.set),new xD(n,i,a||!i,r)}function CD(e,...t){}function Ki(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Td(a,t,r)}return i}function en(e,t,r,n){if(Le(e)){const a=Ki(e,t,r,n);return a&&KS(a)&&a.catch(o=>{Td(o,t,r)}),a}const i=[];for(let a=0;a>>1;tu(er[n])Nn&&er.splice(t,1)}function ED(e){ye(e)?es.push(...e):(!oi||!oi.includes(e,e.allowRecurse?Ha+1:Ha))&&es.push(e),mC()}function U0(e,t=eu?Nn+1:0){for(;ttu(r)-tu(n)),Ha=0;Hae.id==null?1/0:e.id,PD=(e,t)=>{const r=tu(e)-tu(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function _C(e){yp=!1,eu=!0,er.sort(PD);const t=sr;try{for(Nn=0;NnUe(h)?h.trim():h)),c&&(i=r.map(wm))}let s,l=n[s=ac(t)]||n[s=ac(Sn(t))];!l&&a&&(l=n[s=ac(Ps(t))]),l&&en(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,en(u,e,6,i)}}function bC(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!Le(e)){const l=u=>{const f=bC(u,t,!0);f&&(s=!0,Kt(o,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(Ke(e)&&n.set(e,null),null):(ye(a)?a.forEach(l=>o[l]=null):Kt(o,a),Ke(e)&&n.set(e,o),o)}function Md(e,t){return!e||!yd(t)?!1:(t=t.slice(2).replace(/Once$/,""),ze(e,t[0].toLowerCase()+t.slice(1))||ze(e,Ps(t))||ze(e,t))}let Yt=null,wC=null;function kc(e){const t=Yt;return Yt=e,wC=e&&e.type.__scopeId||null,t}function Z(e,t=Yt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&n_(-1);const a=kc(t);let o;try{o=e(...i)}finally{kc(a),n._d&&n_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function xh(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:f,renderCache:c,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=kc(e);try{if(r.shapeFlag&4){const b=i||n;g=kn(f.call(b,b,c,a,h,d,v)),m=l}else{const b=t;g=kn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:DD(l)}}catch(b){Al.length=0,Td(b,e,1),g=ee(br)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(ym)&&(m=ID(m,o)),_=vi(_,m))}return r.dirs&&(_=vi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,kc(y),g}const DD=e=>{let t;for(const r in e)(r==="class"||r==="style"||yd(r))&&((t||(t={}))[r]=e[r]);return t},ID=(e,t)=>{const r={};for(const n in e)(!ym(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function RD(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?Y0(n,o,u):!!o;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function ND(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):ED(e)}function Ct(e,t){if(Ht){let r=Ht.provides;const n=Ht.parent&&Ht.parent.provides;n===r&&(r=Ht.provides=Object.create(n)),r[e]=t}}function Re(e,t,r=!1){const n=Ht||Yt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&Le(t)?t.call(n.proxy):t}}function ts(e,t){return Dm(e,null,t)}const rf={};function Ee(e,t,r){return Dm(e,t,r)}function Dm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=mt){const s=Ht;let l,u=!1,f=!1;if(St(e)?(l=()=>e.value,u=Oc(e)):Jo(e)?(l=()=>e,n=!0):ye(e)?(f=!0,u=e.some(_=>Jo(_)||Oc(_)),l=()=>e.map(_=>{if(St(_))return _.value;if(Jo(_))return Ya(_);if(Le(_))return Ki(_,s,2)})):Le(e)?t?l=()=>Ki(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return c&&c(),en(e,s,3,[d])}:l=sr,t&&n){const _=l;l=()=>Ya(_())}let c,d=_=>{c=m.onStop=()=>{Ki(_,s,4)}},h;if(nu)if(d=sr,t?r&&en(t,s,3,[l(),f?[]:void 0,d]):l(),i==="sync"){const _=EI();h=_.__watcherHandles||(_.__watcherHandles=[])}else return sr;let v=f?new Array(e.length).fill(rf):rf;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(f?_.some((b,x)=>Ql(b,v[x])):Ql(_,v)))&&(c&&c(),en(t,s,3,[_,v===rf?void 0:f&&v[0]===rf?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>pr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>Lm(p));const m=new Sm(l,g);t?r?p():v=m.run():i==="post"?pr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&_m(s.scope.effects,m)};return h&&h.push(y),y}function BD(e,t,r){const n=this.proxy,i=Ue(e)?e.includes(".")?xC(n,e):()=>n[e]:e.bind(n,n);let a;Le(t)?a=t:(a=t.handler,r=t);const o=Ht;fs(this);const s=Dm(i,a.bind(n),r);return o?fs(o):eo(),s}function xC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Ya(r,t)});else if(ZS(e))for(const r in e)Ya(e[r],t);return e}function FD(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Et(()=>{e.isMounted=!0}),rr(()=>{e.isUnmounting=!0}),e}const zr=[Function,Array],$D={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:zr,onEnter:zr,onAfterEnter:zr,onEnterCancelled:zr,onBeforeLeave:zr,onLeave:zr,onAfterLeave:zr,onLeaveCancelled:zr,onBeforeAppear:zr,onAppear:zr,onAfterAppear:zr,onAppearCancelled:zr},setup(e,{slots:t}){const r=dt(),n=FD();let i;return()=>{const a=t.default&&TC(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==br){o=p;break}}const s=Qe(e),{mode:l}=s;if(n.isLeaving)return Sh(o);const u=q0(o);if(!u)return Sh(o);const f=_p(u,s,n,r);bp(u,f);const c=r.subTree,d=c&&q0(c);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==br&&(!za(u,d)||h)){const p=_p(d,s,n,r);if(bp(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Sh(o);l==="in-out"&&u.type!==br&&(p.delayLeave=(g,m,y)=>{const _=CC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=y})}return o}}},SC=$D;function CC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function _p(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=CC(r,e),x=(C,T)=>{C&&en(C,n,9,T)},w=(C,T)=>{const E=T[1];x(C,T),ye(C)?C.every(A=>A.length<=1)&&E():C.length<=1&&E()},S={mode:a,persisted:o,beforeEnter(C){let T=s;if(!r.isMounted)if(i)T=p||s;else return;C._leaveCb&&C._leaveCb(!0);const E=b[_];E&&za(e,E)&&E.el._leaveCb&&E.el._leaveCb(),x(T,[C])},enter(C){let T=l,E=u,A=f;if(!r.isMounted)if(i)T=g||l,E=m||u,A=y||f;else return;let M=!1;const D=C._enterCb=O=>{M||(M=!0,O?x(A,[C]):x(E,[C]),S.delayedLeave&&S.delayedLeave(),C._enterCb=void 0)};T?w(T,[C,D]):D()},leave(C,T){const E=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return T();x(c,[C]);let A=!1;const M=C._leaveCb=D=>{A||(A=!0,T(),D?x(v,[C]):x(h,[C]),C._leaveCb=void 0,b[E]===e&&delete b[E])};b[E]=e,d?w(d,[C,M]):M()},clone(C){return _p(C,t,r,n)}};return S}function Sh(e){if(Ad(e))return e=vi(e),e.children=null,e}function q0(e){return Ad(e)?e.children?e.children[0]:void 0:e}function bp(e,t){e.shapeFlag&6&&e.component?bp(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function TC(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Ad=e=>e.type.__isKeepAlive;function HD(e,t){AC(e,"a",t)}function MC(e,t){AC(e,"da",t)}function AC(e,t,r=Ht){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Ed(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Ad(i.parent.vnode)&&zD(n,t,r,i),i=i.parent}}function zD(e,t,r,n){const i=Ed(t,e,n,!0);Iu(()=>{_m(n[t],i)},r)}function Ed(e,t,r=Ht,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Ls(),fs(r);const s=en(t,r,e,o);return eo(),Ds(),s});return n?i.unshift(a):i.push(a),a}}const wi=e=>(t,r=Ht)=>(!nu||e==="sp")&&Ed(e,(...n)=>t(...n),r),Pd=wi("bm"),Et=wi("m"),WD=wi("bu"),Ld=wi("u"),rr=wi("bum"),Iu=wi("um"),VD=wi("sp"),GD=wi("rtg"),UD=wi("rtc");function YD(e,t=Ht){Ed("ec",e,t)}function qt(e,t){const r=Yt;if(r===null)return e;const n=Id(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sJi(t)?!(t.type===br||t.type===yt&&!PC(t.children)):!0)?e:null}function jD(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:ac(n)]=e[n];return r}const wp=e=>e?HC(e)?Id(e)||e.proxy:wp(e.parent):null,Tl=Kt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>wp(e.parent),$root:e=>wp(e.root),$emit:e=>e.emit,$options:e=>km(e),$forceUpdate:e=>e.f||(e.f=()=>Lm(e.update)),$nextTick:e=>e.n||(e.n=zt.bind(e.proxy)),$watch:e=>BD.bind(e)}),Ch=(e,t)=>e!==mt&&!e.__isScriptSetup&&ze(e,t),KD={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Ch(n,t))return o[t]=1,n[t];if(i!==mt&&ze(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&ze(u,t))return o[t]=3,a[t];if(r!==mt&&ze(r,t))return o[t]=4,r[t];xp&&(o[t]=0)}}const f=Tl[t];let c,d;if(f)return t==="$attrs"&&Fr(e,"get",t),f(e);if((c=s.__cssModules)&&(c=c[t]))return c;if(r!==mt&&ze(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,ze(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Ch(i,t)?(i[t]=r,!0):n!==mt&&ze(n,t)?(n[t]=r,!0):ze(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==mt&&ze(e,o)||Ch(t,o)||(s=a[0])&&ze(s,o)||ze(n,o)||ze(Tl,o)||ze(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:ze(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let xp=!0;function XD(e){const t=km(e),r=e.proxy,n=e.ctx;xp=!1,t.beforeCreate&&X0(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:f,beforeMount:c,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:T,expose:E,inheritAttrs:A,components:M,directives:D,filters:O}=t;if(u&&ZD(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const j in o){const B=o[j];Le(B)&&(n[j]=B.bind(r))}if(i){const j=i.call(r,r);Ke(j)&&(e.data=ln(j))}if(xp=!0,a)for(const j in a){const B=a[j],N=Le(B)?B.bind(r,r):Le(B.get)?B.get.bind(r,r):sr,U=!Le(B)&&Le(B.set)?B.set.bind(r):sr,re=$({get:N,set:U});Object.defineProperty(n,j,{enumerable:!0,configurable:!0,get:()=>re.value,set:ae=>re.value=ae})}if(s)for(const j in s)LC(s[j],n,r,j);if(l){const j=Le(l)?l.call(r):l;Reflect.ownKeys(j).forEach(B=>{Ct(B,j[B])})}f&&X0(f,e,"c");function F(j,B){ye(B)?B.forEach(N=>j(N.bind(r))):B&&j(B.bind(r))}if(F(Pd,c),F(Et,d),F(WD,h),F(Ld,v),F(HD,p),F(MC,g),F(YD,C),F(UD,w),F(GD,S),F(rr,y),F(Iu,b),F(VD,T),ye(E))if(E.length){const j=e.exposed||(e.exposed={});E.forEach(B=>{Object.defineProperty(j,B,{get:()=>r[B],set:N=>r[B]=N})})}else e.exposed||(e.exposed={});x&&e.render===sr&&(e.render=x),A!=null&&(e.inheritAttrs=A),M&&(e.components=M),D&&(e.directives=D)}function ZD(e,t,r=sr,n=!1){ye(e)&&(e=Sp(e));for(const i in e){const a=e[i];let o;Ke(a)?"default"in a?o=Re(a.from||i,a.default,!0):o=Re(a.from||i):o=Re(a),St(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function X0(e,t,r){en(ye(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function LC(e,t,r,n){const i=n.includes(".")?xC(r,n):()=>r[n];if(Ue(e)){const a=t[e];Le(a)&&Ee(i,a)}else if(Le(e))Ee(i,e.bind(r));else if(Ke(e))if(ye(e))e.forEach(a=>LC(a,t,r,n));else{const a=Le(e.handler)?e.handler.bind(r):t[e.handler];Le(a)&&Ee(i,a,e)}}function km(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>Nc(l,u,o,!0)),Nc(l,t,o)),Ke(t)&&a.set(t,l),l}function Nc(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Nc(e,a,r,!0),i&&i.forEach(o=>Nc(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=QD[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const QD={data:Z0,props:Ba,emits:Ba,methods:Ba,computed:Ba,beforeCreate:nr,created:nr,beforeMount:nr,mounted:nr,beforeUpdate:nr,updated:nr,beforeDestroy:nr,beforeUnmount:nr,destroyed:nr,unmounted:nr,activated:nr,deactivated:nr,errorCaptured:nr,serverPrefetch:nr,components:Ba,directives:Ba,watch:eI,provide:Z0,inject:JD};function Z0(e,t){return t?e?function(){return Kt(Le(e)?e.call(this,this):e,Le(t)?t.call(this,this):t)}:t:e}function JD(e,t){return Ba(Sp(e),Sp(t))}function Sp(e){if(ye(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[d,h]=IC(c,t,!0);Kt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!a&&!l)return Ke(e)&&n.set(e,Zo),Zo;if(ye(a))for(let f=0;f-1,h[1]=p<0||v-1||ze(h,"default"))&&s.push(c)}}}const u=[o,s];return Ke(e)&&n.set(e,u),u}function Q0(e){return e[0]!=="$"}function J0(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function e_(e,t){return J0(e)===J0(t)}function t_(e,t){return ye(t)?t.findIndex(r=>e_(r,e)):Le(t)&&e_(t,e)?0:-1}const RC=e=>e[0]==="_"||e==="$stable",Nm=e=>ye(e)?e.map(kn):[kn(e)],nI=(e,t,r)=>{if(t._n)return t;const n=Z((...i)=>Nm(t(...i)),r);return n._c=!1,n},OC=(e,t,r)=>{const n=e._ctx;for(const i in e){if(RC(i))continue;const a=e[i];if(Le(a))t[i]=nI(i,a,n);else if(a!=null){const o=Nm(a);t[i]=()=>o}}},kC=(e,t)=>{const r=Nm(t);e.slots.default=()=>r},iI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Qe(t),Rc(t,"_",r)):OC(t,e.slots={})}else e.slots={},t&&kC(e,t);Rc(e.slots,Dd,1)},aI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=mt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Kt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,OC(t,i)),o=t}else t&&(kC(e,t),o={default:1});if(a)for(const s in i)!RC(s)&&!(s in o)&&delete i[s]};function NC(){return{app:null,config:{isNativeTag:NL,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let oI=0;function sI(e,t){return function(n,i=null){Le(n)||(n=Object.assign({},n)),i!=null&&!Ke(i)&&(i=null);const a=NC(),o=new Set;let s=!1;const l=a.app={_uid:oI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:PI,get config(){return a.config},set config(u){},use(u,...f){return o.has(u)||(u&&Le(u.install)?(o.add(u),u.install(l,...f)):Le(u)&&(o.add(u),u(l,...f))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,f){return f?(a.components[u]=f,l):a.components[u]},directive(u,f){return f?(a.directives[u]=f,l):a.directives[u]},mount(u,f,c){if(!s){const d=ee(n,i);return d.appContext=a,f&&t?t(d,u):e(d,u,c),s=!0,l._container=u,u.__vue_app__=l,Id(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,f){return a.provides[u]=f,l}};return l}}function Tp(e,t,r,n,i=!1){if(ye(e)){e.forEach((d,h)=>Tp(d,t&&(ye(t)?t[h]:t),r,n,i));return}if(Cl(n)&&!i)return;const a=n.shapeFlag&4?Id(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,f=s.refs===mt?s.refs={}:s.refs,c=s.setupState;if(u!=null&&u!==l&&(Ue(u)?(f[u]=null,ze(c,u)&&(c[u]=null)):St(u)&&(u.value=null)),Le(l))Ki(l,s,12,[o,f]);else{const d=Ue(l),h=St(l);if(d||h){const v=()=>{if(e.f){const p=d?ze(c,l)?c[l]:f[l]:l.value;i?ye(p)&&_m(p,a):ye(p)?p.includes(a)||p.push(a):d?(f[l]=[a],ze(c,l)&&(c[l]=f[l])):(l.value=[a],e.k&&(f[e.k]=l.value))}else d?(f[l]=o,ze(c,l)&&(c[l]=o)):h&&(l.value=o,e.k&&(f[e.k]=o))};o?(v.id=-1,pr(v,r)):v()}}}const pr=ND;function lI(e){return uI(e)}function uI(e,t){const r=WL();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:d,setScopeId:h=sr,insertStaticContent:v}=e,p=(P,I,z,G=null,q=null,ne=null,ce=!1,te=null,ie=!!I.dynamicChildren)=>{if(P===I)return;P&&!za(P,I)&&(G=W(P),ae(P,q,ne,!0),P=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:X,ref:_e,shapeFlag:ve}=I;switch(X){case Is:g(P,I,z,G);break;case br:m(P,I,z,G);break;case Th:P==null&&y(I,z,G,ce);break;case yt:M(P,I,z,G,q,ne,ce,te,ie);break;default:ve&1?x(P,I,z,G,q,ne,ce,te,ie):ve&6?D(P,I,z,G,q,ne,ce,te,ie):(ve&64||ve&128)&&X.process(P,I,z,G,q,ne,ce,te,ie,le)}_e!=null&&q&&Tp(_e,P&&P.ref,ne,I||P,!I)},g=(P,I,z,G)=>{if(P==null)n(I.el=s(I.children),z,G);else{const q=I.el=P.el;I.children!==P.children&&u(q,I.children)}},m=(P,I,z,G)=>{P==null?n(I.el=l(I.children||""),z,G):I.el=P.el},y=(P,I,z,G)=>{[P.el,P.anchor]=v(P.children,I,z,G,P.el,P.anchor)},_=({el:P,anchor:I},z,G)=>{let q;for(;P&&P!==I;)q=d(P),n(P,z,G),P=q;n(I,z,G)},b=({el:P,anchor:I})=>{let z;for(;P&&P!==I;)z=d(P),i(P),P=z;i(I)},x=(P,I,z,G,q,ne,ce,te,ie)=>{ce=ce||I.type==="svg",P==null?w(I,z,G,q,ne,ce,te,ie):T(P,I,q,ne,ce,te,ie)},w=(P,I,z,G,q,ne,ce,te)=>{let ie,X;const{type:_e,props:ve,shapeFlag:be,transition:Ie,dirs:Fe}=P;if(ie=P.el=o(P.type,ne,ve&&ve.is,ve),be&8?f(ie,P.children):be&16&&C(P.children,ie,null,G,q,ne&&_e!=="foreignObject",ce,te),Fe&&la(P,null,G,"created"),ve){for(const et in ve)et!=="value"&&!ic(et)&&a(ie,et,null,ve[et],ne,P.children,G,q,J);"value"in ve&&a(ie,"value",null,ve.value),(X=ve.onVnodeBeforeMount)&&Ln(X,G,P)}S(ie,P,P.scopeId,ce,G),Fe&&la(P,null,G,"beforeMount");const rt=(!q||q&&!q.pendingBranch)&&Ie&&!Ie.persisted;rt&&Ie.beforeEnter(ie),n(ie,I,z),((X=ve&&ve.onVnodeMounted)||rt||Fe)&&pr(()=>{X&&Ln(X,G,P),rt&&Ie.enter(ie),Fe&&la(P,null,G,"mounted")},q)},S=(P,I,z,G,q)=>{if(z&&h(P,z),G)for(let ne=0;ne{for(let X=ie;X{const te=I.el=P.el;let{patchFlag:ie,dynamicChildren:X,dirs:_e}=I;ie|=P.patchFlag&16;const ve=P.props||mt,be=I.props||mt;let Ie;z&&ua(z,!1),(Ie=be.onVnodeBeforeUpdate)&&Ln(Ie,z,I,P),_e&&la(I,P,z,"beforeUpdate"),z&&ua(z,!0);const Fe=q&&I.type!=="foreignObject";if(X?E(P.dynamicChildren,X,te,z,G,Fe,ne):ce||B(P,I,te,null,z,G,Fe,ne,!1),ie>0){if(ie&16)A(te,I,ve,be,z,G,q);else if(ie&2&&ve.class!==be.class&&a(te,"class",null,be.class,q),ie&4&&a(te,"style",ve.style,be.style,q),ie&8){const rt=I.dynamicProps;for(let et=0;et{Ie&&Ln(Ie,z,I,P),_e&&la(I,P,z,"updated")},G)},E=(P,I,z,G,q,ne,ce)=>{for(let te=0;te{if(z!==G){if(z!==mt)for(const te in z)!ic(te)&&!(te in G)&&a(P,te,z[te],null,ce,I.children,q,ne,J);for(const te in G){if(ic(te))continue;const ie=G[te],X=z[te];ie!==X&&te!=="value"&&a(P,te,X,ie,ce,I.children,q,ne,J)}"value"in G&&a(P,"value",z.value,G.value)}},M=(P,I,z,G,q,ne,ce,te,ie)=>{const X=I.el=P?P.el:s(""),_e=I.anchor=P?P.anchor:s("");let{patchFlag:ve,dynamicChildren:be,slotScopeIds:Ie}=I;Ie&&(te=te?te.concat(Ie):Ie),P==null?(n(X,z,G),n(_e,z,G),C(I.children,z,_e,q,ne,ce,te,ie)):ve>0&&ve&64&&be&&P.dynamicChildren?(E(P.dynamicChildren,be,z,q,ne,ce,te),(I.key!=null||q&&I===q.subTree)&&Bm(P,I,!0)):B(P,I,z,_e,q,ne,ce,te,ie)},D=(P,I,z,G,q,ne,ce,te,ie)=>{I.slotScopeIds=te,P==null?I.shapeFlag&512?q.ctx.activate(I,z,G,ce,ie):O(I,z,G,q,ne,ce,ie):k(P,I,ie)},O=(P,I,z,G,q,ne,ce)=>{const te=P.component=bI(P,G,q);if(Ad(P)&&(te.ctx.renderer=le),wI(te),te.asyncDep){if(q&&q.registerDep(te,F),!P.el){const ie=te.subTree=ee(br);m(null,ie,I,z)}return}F(te,P,I,z,q,ne,ce)},k=(P,I,z)=>{const G=I.component=P.component;if(RD(P,I,z))if(G.asyncDep&&!G.asyncResolved){j(G,I,z);return}else G.next=I,AD(G.update),G.update();else I.el=P.el,G.vnode=I},F=(P,I,z,G,q,ne,ce)=>{const te=()=>{if(P.isMounted){let{next:_e,bu:ve,u:be,parent:Ie,vnode:Fe}=P,rt=_e,et;ua(P,!1),_e?(_e.el=Fe.el,j(P,_e,ce)):_e=Fe,ve&&oc(ve),(et=_e.props&&_e.props.onVnodeBeforeUpdate)&&Ln(et,Ie,_e,Fe),ua(P,!0);const fe=xh(P),Ce=P.subTree;P.subTree=fe,p(Ce,fe,c(Ce.el),W(Ce),P,q,ne),_e.el=fe.el,rt===null&&OD(P,fe.el),be&&pr(be,q),(et=_e.props&&_e.props.onVnodeUpdated)&&pr(()=>Ln(et,Ie,_e,Fe),q)}else{let _e;const{el:ve,props:be}=I,{bm:Ie,m:Fe,parent:rt}=P,et=Cl(I);if(ua(P,!1),Ie&&oc(Ie),!et&&(_e=be&&be.onVnodeBeforeMount)&&Ln(_e,rt,I),ua(P,!0),ve&&Q){const fe=()=>{P.subTree=xh(P),Q(ve,P.subTree,P,q,null)};et?I.type.__asyncLoader().then(()=>!P.isUnmounted&&fe()):fe()}else{const fe=P.subTree=xh(P);p(null,fe,z,G,P,q,ne),I.el=fe.el}if(Fe&&pr(Fe,q),!et&&(_e=be&&be.onVnodeMounted)){const fe=I;pr(()=>Ln(_e,rt,fe),q)}(I.shapeFlag&256||rt&&Cl(rt.vnode)&&rt.vnode.shapeFlag&256)&&P.a&&pr(P.a,q),P.isMounted=!0,I=z=G=null}},ie=P.effect=new Sm(te,()=>Lm(X),P.scope),X=P.update=()=>ie.run();X.id=P.uid,ua(P,!0),X()},j=(P,I,z)=>{I.component=P;const G=P.vnode.props;P.vnode=I,P.next=null,rI(P,I.props,G,z),aI(P,I.children,z),Ls(),U0(),Ds()},B=(P,I,z,G,q,ne,ce,te,ie=!1)=>{const X=P&&P.children,_e=P?P.shapeFlag:0,ve=I.children,{patchFlag:be,shapeFlag:Ie}=I;if(be>0){if(be&128){U(X,ve,z,G,q,ne,ce,te,ie);return}else if(be&256){N(X,ve,z,G,q,ne,ce,te,ie);return}}Ie&8?(_e&16&&J(X,q,ne),ve!==X&&f(z,ve)):_e&16?Ie&16?U(X,ve,z,G,q,ne,ce,te,ie):J(X,q,ne,!0):(_e&8&&f(z,""),Ie&16&&C(ve,z,G,q,ne,ce,te,ie))},N=(P,I,z,G,q,ne,ce,te,ie)=>{P=P||Zo,I=I||Zo;const X=P.length,_e=I.length,ve=Math.min(X,_e);let be;for(be=0;be_e?J(P,q,ne,!0,!1,ve):C(I,z,G,q,ne,ce,te,ie,ve)},U=(P,I,z,G,q,ne,ce,te,ie)=>{let X=0;const _e=I.length;let ve=P.length-1,be=_e-1;for(;X<=ve&&X<=be;){const Ie=P[X],Fe=I[X]=ie?Hi(I[X]):kn(I[X]);if(za(Ie,Fe))p(Ie,Fe,z,null,q,ne,ce,te,ie);else break;X++}for(;X<=ve&&X<=be;){const Ie=P[ve],Fe=I[be]=ie?Hi(I[be]):kn(I[be]);if(za(Ie,Fe))p(Ie,Fe,z,null,q,ne,ce,te,ie);else break;ve--,be--}if(X>ve){if(X<=be){const Ie=be+1,Fe=Ie<_e?I[Ie].el:G;for(;X<=be;)p(null,I[X]=ie?Hi(I[X]):kn(I[X]),z,Fe,q,ne,ce,te,ie),X++}}else if(X>be)for(;X<=ve;)ae(P[X],q,ne,!0),X++;else{const Ie=X,Fe=X,rt=new Map;for(X=Fe;X<=be;X++){const ht=I[X]=ie?Hi(I[X]):kn(I[X]);ht.key!=null&&rt.set(ht.key,X)}let et,fe=0;const Ce=be-Fe+1;let $e=!1,He=0;const Xe=new Array(Ce);for(X=0;X=Ce){ae(ht,q,ne,!0);continue}let Wt;if(ht.key!=null)Wt=rt.get(ht.key);else for(et=Fe;et<=be;et++)if(Xe[et-Fe]===0&&za(ht,I[et])){Wt=et;break}Wt===void 0?ae(ht,q,ne,!0):(Xe[Wt-Fe]=X+1,Wt>=He?He=Wt:$e=!0,p(ht,I[Wt],z,null,q,ne,ce,te,ie),fe++)}const Ot=$e?fI(Xe):Zo;for(et=Ot.length-1,X=Ce-1;X>=0;X--){const ht=Fe+X,Wt=I[ht],Hr=ht+1<_e?I[ht+1].el:G;Xe[X]===0?p(null,Wt,z,Hr,q,ne,ce,te,ie):$e&&(et<0||X!==Ot[et]?re(Wt,z,Hr,2):et--)}}},re=(P,I,z,G,q=null)=>{const{el:ne,type:ce,transition:te,children:ie,shapeFlag:X}=P;if(X&6){re(P.component.subTree,I,z,G);return}if(X&128){P.suspense.move(I,z,G);return}if(X&64){ce.move(P,I,z,le);return}if(ce===yt){n(ne,I,z);for(let ve=0;vete.enter(ne),q);else{const{leave:ve,delayLeave:be,afterLeave:Ie}=te,Fe=()=>n(ne,I,z),rt=()=>{ve(ne,()=>{Fe(),Ie&&Ie()})};be?be(ne,Fe,rt):rt()}else n(ne,I,z)},ae=(P,I,z,G=!1,q=!1)=>{const{type:ne,props:ce,ref:te,children:ie,dynamicChildren:X,shapeFlag:_e,patchFlag:ve,dirs:be}=P;if(te!=null&&Tp(te,null,z,P,!0),_e&256){I.ctx.deactivate(P);return}const Ie=_e&1&&be,Fe=!Cl(P);let rt;if(Fe&&(rt=ce&&ce.onVnodeBeforeUnmount)&&Ln(rt,I,P),_e&6)V(P.component,z,G);else{if(_e&128){P.suspense.unmount(z,G);return}Ie&&la(P,null,I,"beforeUnmount"),_e&64?P.type.remove(P,I,z,q,le,G):X&&(ne!==yt||ve>0&&ve&64)?J(X,I,z,!1,!0):(ne===yt&&ve&384||!q&&_e&16)&&J(ie,I,z),G&&me(P)}(Fe&&(rt=ce&&ce.onVnodeUnmounted)||Ie)&&pr(()=>{rt&&Ln(rt,I,P),Ie&&la(P,null,I,"unmounted")},z)},me=P=>{const{type:I,el:z,anchor:G,transition:q}=P;if(I===yt){Me(z,G);return}if(I===Th){b(P);return}const ne=()=>{i(z),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(P.shapeFlag&1&&q&&!q.persisted){const{leave:ce,delayLeave:te}=q,ie=()=>ce(z,ne);te?te(P.el,ne,ie):ie()}else ne()},Me=(P,I)=>{let z;for(;P!==I;)z=d(P),i(P),P=z;i(I)},V=(P,I,z)=>{const{bum:G,scope:q,update:ne,subTree:ce,um:te}=P;G&&oc(G),q.stop(),ne&&(ne.active=!1,ae(ce,P,I,z)),te&&pr(te,I),pr(()=>{P.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&P.asyncDep&&!P.asyncResolved&&P.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},J=(P,I,z,G=!1,q=!1,ne=0)=>{for(let ce=ne;ceP.shapeFlag&6?W(P.component.subTree):P.shapeFlag&128?P.suspense.next():d(P.anchor||P.el),Y=(P,I,z)=>{P==null?I._vnode&&ae(I._vnode,null,null,!0):p(I._vnode||null,P,I,null,null,null,z),U0(),yC(),I._vnode=P},le={p,um:ae,m:re,r:me,mt:O,mc:C,pc:B,pbc:E,n:W,o:e};let he,Q;return t&&([he,Q]=t(le)),{render:Y,hydrate:he,createApp:sI(Y,he)}}function ua({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function Bm(e,t,r=!1){const n=e.children,i=t.children;if(ye(n)&&ye(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const cI=e=>e.__isTeleport,Ml=e=>e&&(e.disabled||e.disabled===""),r_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Mp=(e,t)=>{const r=e&&e.to;return Ue(r)?t?t(r):null:r},dI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:f,pc:c,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ml(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");h(x,r,n),h(w,r,n);const S=t.target=Mp(t.props,v),C=t.targetAnchor=p("");S&&(h(C,S),o=o||r_(S));const T=(E,A)=>{y&16&&f(_,E,A,i,a,o,s,l)};m?T(r,w):S&&T(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Ml(e.props),T=C?r:w,E=C?x:S;if(o=o||r_(w),b?(d(e.dynamicChildren,b,T,i,a,o,s),Bm(e,t,!0)):l||c(e,t,T,E,i,a,o,s,!1),m)C||nf(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Mp(t.props,v);A&&nf(t,A,null,u,0)}else C&&nf(t,w,S,u,1)}BC(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:f,target:c,props:d}=e;if(c&&a(f),(o||!Ml(d))&&(a(u),s&16))for(let h=0;h0?yn||Zo:null,pI(),ru>0&&yn&&yn.push(e),e}function Se(e,t,r,n,i,a){return FC(se(e,t,r,n,i,a,!0))}function xe(e,t,r,n,i){return FC(ee(e,t,r,n,i,!0))}function Ji(e){return e?e.__v_isVNode===!0:!1}function za(e,t){return e.type===t.type&&e.key===t.key}const Dd="__vInternal",$C=({key:e})=>e??null,sc=({ref:e,ref_key:t,ref_for:r})=>e!=null?Ue(e)||St(e)||Le(e)?{i:Yt,r:e,k:t,f:!!r}:e:null;function se(e,t=null,r=null,n=0,i=null,a=e===yt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&$C(t),ref:t&&sc(t),scopeId:wC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Yt};return s?(Fm(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=Ue(r)?8:16),ru>0&&!o&&yn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&yn.push(l),l}const ee=gI;function gI(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===EC)&&(e=br),Ji(e)){const s=vi(e,t,!0);return r&&Fm(s,r),ru>0&&!a&&yn&&(s.shapeFlag&6?yn[yn.indexOf(e)]=s:yn.push(s)),s.patchFlag|=-2,s}if(TI(e)&&(e=e.__vccOpts),t){t=mI(t);let{class:s,style:l}=t;s&&!Ue(s)&&(t.class=de(s)),Ke(l)&&(uC(l)&&!ye(l)&&(l=Kt({},l)),t.style=At(l))}const o=Ue(e)?1:kD(e)?128:cI(e)?64:Ke(e)?4:Le(e)?2:0;return se(e,t,r,n,i,o,a,!0)}function mI(e){return e?uC(e)||Dd in e?Kt({},e):e:null}function vi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?go(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&$C(s),ref:t&&t.ref?r&&i?ye(i)?i.concat(sc(t)):[i,sc(t)]:sc(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==yt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&vi(e.ssContent),ssFallback:e.ssFallback&&vi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function kt(e=" ",t=0){return ee(Is,null,e,t)}function Ye(e="",t=!1){return t?(K(),xe(br,null,e)):ee(br,null,e)}function kn(e){return e==null||typeof e=="boolean"?ee(br):ye(e)?ee(yt,null,e.slice()):typeof e=="object"?Hi(e):ee(Is,null,String(e))}function Hi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:vi(e)}function Fm(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(ye(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Fm(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Dd in t)?t._ctx=Yt:i===3&&Yt&&(Yt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Le(t)?(t={default:t,_ctx:Yt},r=32):(t=String(t),n&64?(r=16,t=[kt(t)]):r=8);e.children=t,e.shapeFlag|=r}function go(...e){const t={};for(let r=0;rHt||Yt,fs=e=>{Ht=e,e.scope.on()},eo=()=>{Ht&&Ht.scope.off(),Ht=null};function HC(e){return e.vnode.shapeFlag&4}let nu=!1;function wI(e,t=!1){nu=t;const{props:r,children:n}=e.vnode,i=HC(e);tI(e,r,i,t),iI(e,n);const a=i?xI(e,t):void 0;return nu=!1,a}function xI(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=fC(new Proxy(e.ctx,KD));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?WC(e):null;fs(e),Ls();const a=Ki(n,e,0,[e.props,i]);if(Ds(),eo(),KS(a)){if(a.then(eo,eo),t)return a.then(o=>{i_(e,o,t)}).catch(o=>{Td(o,e,0)});e.asyncDep=a}else i_(e,a,t)}else zC(e,t)}function i_(e,t,r){Le(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ke(t)&&(e.setupState=vC(t)),zC(e,r)}let a_;function zC(e,t,r){const n=e.type;if(!e.render){if(!t&&a_&&!n.render){const i=n.template||km(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Kt(Kt({isCustomElement:a,delimiters:s},o),l);n.render=a_(i,u)}}e.render=n.render||sr}fs(e),Ls(),XD(e),Ds(),eo()}function SI(e){return new Proxy(e.attrs,{get(t,r){return Fr(e,"get","$attrs"),t[r]}})}function WC(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=SI(e))},slots:e.slots,emit:e.emit,expose:t}}function Id(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(vC(fC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Tl)return Tl[r](e)},has(t,r){return r in t||r in Tl}}))}function CI(e,t=!0){return Le(e)?e.displayName||e.name:e.name||t&&e.__name}function TI(e){return Le(e)&&"__vccOpts"in e}const $=(e,t)=>SD(e,t,nu);function Rd(){return MI().slots}function MI(){const e=dt();return e.setupContext||(e.setupContext=WC(e))}function we(e,t,r){const n=arguments.length;return n===2?Ke(t)&&!ye(t)?Ji(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&Ji(r)&&(r=[r]),ee(e,t,r))}const AI=Symbol(""),EI=()=>Re(AI),PI="3.2.45",LI="http://www.w3.org/2000/svg",Wa=typeof document<"u"?document:null,o_=Wa&&Wa.createElement("template"),DI={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?Wa.createElementNS(LI,e):Wa.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Wa.createTextNode(e),createComment:e=>Wa.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Wa.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{o_.innerHTML=n?`${e}`:e;const s=o_.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function II(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function RI(e,t,r){const n=e.style,i=Ue(r);if(r&&!i){for(const a in r)Ap(n,a,r[a]);if(t&&!Ue(t))for(const a in t)r[a]==null&&Ap(n,a,"")}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const s_=/\s*!important$/;function Ap(e,t,r){if(ye(r))r.forEach(n=>Ap(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=OI(e,t);s_.test(r)?e.setProperty(Ps(n),r.replace(s_,""),"important"):e[n]=r}}const l_=["Webkit","Moz","ms"],Mh={};function OI(e,t){const r=Mh[t];if(r)return r;let n=Sn(t);if(n!=="filter"&&n in e)return Mh[t]=n;n=wd(n);for(let i=0;iAh||(HI.then(()=>Ah=0),Ah=Date.now());function WI(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;en(VI(n,r.value),t,5,[n])};return r.value=e,r.attached=zI(),r}function VI(e,t){if(ye(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const c_=/^on[a-z]/,GI=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?II(e,n,i):t==="style"?RI(e,r,n):yd(t)?ym(t)||FI(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):UI(e,t,n,i))?NI(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),kI(e,t,n,i))};function UI(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&c_.test(t)&&Le(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||c_.test(t)&&Ue(r)?!1:t in e}const Ai="transition",Vs="animation",Kn=(e,{slots:t})=>we(SC,YI(e),t);Kn.displayName="Transition";const GC={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Kn.props=Kt({},SC.props,GC);const fa=(e,t=[])=>{ye(e)?e.forEach(r=>r(...t)):e&&e(...t)},d_=e=>e?ye(e)?e.some(t=>t.length>1):e.length>1:!1;function YI(e){const t={};for(const M in e)M in GC||(t[M]=e[M]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:f=s,leaveFromClass:c=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=qI(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:S=y,onAppearCancelled:C=_}=t,T=(M,D,O)=>{ca(M,D?f:s),ca(M,D?u:o),O&&O()},E=(M,D)=>{M._isLeaving=!1,ca(M,c),ca(M,h),ca(M,d),D&&D()},A=M=>(D,O)=>{const k=M?S:y,F=()=>T(D,M,O);fa(k,[D,F]),h_(()=>{ca(D,M?l:a),Ei(D,M?f:s),d_(k)||v_(D,n,p,F)})};return Kt(t,{onBeforeEnter(M){fa(m,[M]),Ei(M,a),Ei(M,o)},onBeforeAppear(M){fa(w,[M]),Ei(M,l),Ei(M,u)},onEnter:A(!1),onAppear:A(!0),onLeave(M,D){M._isLeaving=!0;const O=()=>E(M,D);Ei(M,c),XI(),Ei(M,d),h_(()=>{M._isLeaving&&(ca(M,c),Ei(M,h),d_(b)||v_(M,n,g,O))}),fa(b,[M,O])},onEnterCancelled(M){T(M,!1),fa(_,[M])},onAppearCancelled(M){T(M,!0),fa(C,[M])},onLeaveCancelled(M){E(M),fa(x,[M])}})}function qI(e){if(e==null)return null;if(Ke(e))return[Eh(e.enter),Eh(e.leave)];{const t=Eh(e);return[t,t]}}function Eh(e){return wm(e)}function Ei(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function ca(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function h_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let jI=0;function v_(e,t,r,n){const i=e._endId=++jI,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=KI(e,t);if(!o)return n();const u=o+"end";let f=0;const c=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[v]||"").split(", "),i=n(`${Ai}Delay`),a=n(`${Ai}Duration`),o=p_(i,a),s=n(`${Vs}Delay`),l=n(`${Vs}Duration`),u=p_(s,l);let f=null,c=0,d=0;t===Ai?o>0&&(f=Ai,c=o,d=a.length):t===Vs?u>0&&(f=Vs,c=u,d=l.length):(c=Math.max(o,u),f=c>0?o>u?Ai:Vs:null,d=f?f===Ai?a.length:l.length:0);const h=f===Ai&&/\b(transform|all)(,|$)/.test(n(`${Ai}Property`).toString());return{type:f,timeout:c,propCount:d,hasTransform:h}}function p_(e,t){for(;e.lengthg_(r)+g_(e[n])))}function g_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function XI(){return document.body.offsetHeight}const m_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ye(t)?r=>oc(t,r):t},Bc={deep:!0,created(e,t,r){e._assign=m_(r),VC(e,"change",()=>{const n=e._modelValue,i=ZI(e),a=e.checked,o=e._assign;if(ye(n)){const s=qS(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(_d(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(UC(e,a))})},mounted:y_,beforeUpdate(e,t,r){e._assign=m_(r),y_(e,t,r)}};function y_(e,{value:t,oldValue:r},n){e._modelValue=t,ye(t)?e.checked=qS(t,n.props.value)>-1:_d(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=md(t,UC(e,!0)))}function ZI(e){return"_value"in e?e._value:e.value}function UC(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const QI=["ctrl","shift","alt","meta"],JI={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>QI.some(r=>e[`${r}Key`]&&!t.includes(r))},Ep=(e,t)=>(r,...n)=>{for(let i=0;i{Gs(e,!1)}):Gs(e,t))},beforeUnmount(e,{value:t}){Gs(e,t)}};function Gs(e,t){e.style.display=t?e._vod:"none"}const eR=Kt({patchProp:GI},DI);let __;function YC(){return __||(__=lI(eR))}const b_=(...e)=>{YC().render(...e)},tR=(...e)=>{const t=YC().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=rR(n);if(!i)return;const a=t._component;!Le(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function rR(e){return Ue(e)?document.querySelector(e):e}var nR=typeof global=="object"&&global&&global.Object===Object&&global;const qC=nR;var iR=typeof self=="object"&&self&&self.Object===Object&&self,aR=qC||iR||Function("return this")();const Mn=aR;var oR=Mn.Symbol;const nn=oR;var jC=Object.prototype,sR=jC.hasOwnProperty,lR=jC.toString,Us=nn?nn.toStringTag:void 0;function uR(e){var t=sR.call(e,Us),r=e[Us];try{e[Us]=void 0;var n=!0}catch{}var i=lR.call(e);return n&&(t?e[Us]=r:delete e[Us]),i}var fR=Object.prototype,cR=fR.toString;function dR(e){return cR.call(e)}var hR="[object Null]",vR="[object Undefined]",w_=nn?nn.toStringTag:void 0;function mo(e){return e==null?e===void 0?vR:hR:w_&&w_ in Object(e)?uR(e):dR(e)}function Yn(e){return e!=null&&typeof e=="object"}var pR="[object Symbol]";function Od(e){return typeof e=="symbol"||Yn(e)&&mo(e)==pR}function KC(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=qR)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function ZR(e){return function(){return e}}var QR=function(){try{var e=_o(Object,"defineProperty");return e({},"",{}),e}catch{}}();const Fc=QR;var JR=Fc?function(e,t){return Fc(e,"toString",{configurable:!0,enumerable:!1,value:ZR(t),writable:!0})}:$m;const eO=JR;var tO=XR(eO);const QC=tO;function rO(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=lO}function Rs(e){return e!=null&&Vm(e.length)&&!Hm(e)}function uO(e,t,r){if(!Cr(r))return!1;var n=typeof t;return(n=="number"?Rs(r)&&kd(t,r.length):n=="string"&&t in r)?Ru(r[t],e):!1}function fO(e){return sO(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&uO(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function Mk(e,t){var r=this.__data__,n=Nd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function xi(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?Zm(s,t-1,r,n,i):Xm(i,s):n||(i[i.length]=s)}return i}function Gk(e){var t=e==null?0:e.length;return t?Zm(e,1):[]}function Uk(e){return QC(JC(e,void 0,Gk),e+"")}var Yk=iT(Object.getPrototypeOf,Object);const Qm=Yk;var qk="[object Object]",jk=Function.prototype,Kk=Object.prototype,aT=jk.toString,Xk=Kk.hasOwnProperty,Zk=aT.call(Object);function Qk(e){if(!Yn(e)||mo(e)!=qk)return!1;var t=Qm(e);if(t===null)return!0;var r=Xk.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&aT.call(r)==Zk}function Lp(){if(!arguments.length)return[];var e=arguments[0];return ur(e)?e:[e]}function Jk(){this.__data__=new xi,this.size=0}function eN(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function tN(e){return this.__data__.get(e)}function rN(e){return this.__data__.has(e)}var nN=200;function iN(e,t){var r=this.__data__;if(r instanceof xi){var n=r.__data__;if(!su||n.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,d=!0,h=r&zB?new Hc:void 0;for(a.set(e,t),a.set(t,e);++c=t||S<0||c&&C>=a}function m(){var w=Ih();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Ih())}function x(){var w=Ih(),S=g(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(c)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return x.cancel=_,x.flush=b,x}function kp(e,t,r){(r!==void 0&&!Ru(e[t],r)||r===void 0&&!(t in e))&&zm(e,t,r)}function kF(e){return Yn(e)&&Rs(e)}function Np(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function NF(e){return Ou(e,Nu(e))}function BF(e,t,r,n,i,a,o){var s=Np(e,r),l=Np(t,r),u=o.get(l);if(u){kp(e,r,u);return}var f=a?a(s,l,r+"",e,t,o):void 0,c=f===void 0;if(c){var d=ur(l),h=!d&&au(l),v=!d&&!h&&Ym(l);f=l,d||h||v?ur(s)?f=s:kF(s)?f=ZC(s):h?(c=!1,f=sT(l,!0)):v?(c=!1,f=cT(l,!0)):f=[]:Qk(l)||iu(l)?(f=s,iu(s)?f=NF(s):(!Cr(s)||Hm(s))&&(f=dT(l))):c=!1}c&&(o.set(l,f),i(f,l,n,a,o),o.delete(l)),kp(e,r,f)}function wT(e,t,r,n,i){e!==t&&bT(t,function(a,o){if(i||(i=new xn),Cr(a))BF(e,t,o,r,wT,n,i);else{var s=n?n(Np(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),kp(e,o,s)}},Nu)}function FF(e,t){var r=-1,n=Rs(e)?Array(e.length):[];return LF(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function $F(e,t){var r=ur(e)?KC:FF;return r(e,CF(t))}function HF(e,t){return Zm($F(e,t),1)}function zF(e){for(var t=-1,r=e==null?0:e.length,n={};++ti=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var Q_;const Rt=typeof window<"u",gi=e=>typeof e=="boolean",_r=e=>typeof e=="number",KF=e=>typeof e=="string",Bp=()=>{};Rt&&((Q_=window==null?void 0:window.navigator)!=null&&Q_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Wc(e){return typeof e=="function"?e():L(e)}function XF(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}function ZF(e,t={}){let r,n,i=Bp;const a=s=>{clearTimeout(s),i(),i=Bp};return s=>{const l=Wc(e),u=Wc(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((f,c)=>{i=t.rejectOnCancel?c:f,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,f(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,f(s())},l)})}}function QF(e){return e}function Hd(e){return UL()?(YL(e),!0):!1}function JF(e,t=200,r={}){return XF(ZF(t,r),e)}function e$(e,t=200,r={}){const n=H(e.value),i=JF(()=>{n.value=e.value},t,r);return Ee(e,()=>i()),n}function t$(e,t=!0){dt()?Et(e):t?e():zt(e)}function Fp(e,t,r={}){const{immediate:n=!0}=r,i=H(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},Wc(t))}return n&&(i.value=!0,Rt&&l()),Hd(s),{isPending:Sd(i),start:l,stop:s}}function Wi(e){var t;const r=Wc(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ry=Rt?window:void 0;function $n(...e){let t,r,n,i;if(KF(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ry):[t,r,n,i]=e,!t)return Bp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(f=>f()),a.length=0},s=(f,c,d)=>(f.addEventListener(c,d,i),()=>f.removeEventListener(c,d,i)),l=Ee(()=>Wi(t),f=>{o(),f&&a.push(...r.flatMap(c=>n.map(d=>s(f,c,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return Hd(u),u}function r$(e,t,r={}){const{window:n=ry,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=Wi(v);return p&&(h.target===p||h.composedPath().includes(p))}}),f=h=>{n.clearTimeout(l);const v=Wi(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},c=[$n(n,"click",f,{passive:!0,capture:a}),$n(n,"pointerdown",h=>{const v=Wi(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),$n(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>f(h),50)}},{passive:!0}),o&&$n(n,"blur",h=>{var v;const p=Wi(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>c.forEach(h=>h())}function n$(e,t=!1){const r=H(),n=()=>r.value=Boolean(e());return n(),t$(n,t),r}const $p=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Hp="__vueuse_ssr_handlers__";$p[Hp]=$p[Hp]||{};$p[Hp];var J_=Object.getOwnPropertySymbols,i$=Object.prototype.hasOwnProperty,a$=Object.prototype.propertyIsEnumerable,o$=(e,t)=>{var r={};for(var n in e)i$.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&J_)for(var n of J_(e))t.indexOf(n)<0&&a$.call(e,n)&&(r[n]=e[n]);return r};function ds(e,t,r={}){const n=r,{window:i=ry}=n,a=o$(n,["window"]);let o;const s=n$(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=Ee(()=>Wi(e),c=>{l(),s.value&&i&&c&&(o=new ResizeObserver(t),o.observe(c,a))},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return Hd(f),{isSupported:s,stop:f}}var eb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(eb||(eb={}));var s$=Object.defineProperty,tb=Object.getOwnPropertySymbols,l$=Object.prototype.hasOwnProperty,u$=Object.prototype.propertyIsEnumerable,rb=(e,t,r)=>t in e?s$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,f$=(e,t)=>{for(var r in t||(t={}))l$.call(t,r)&&rb(e,r,t[r]);if(tb)for(var r of tb(t))u$.call(t,r)&&rb(e,r,t[r]);return e};const c$={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};f$({linear:QF},c$);const Vc=e=>e===void 0,hs=e=>typeof Element>"u"?!1:e instanceof Element,d$=e=>Ue(e)?!Number.isNaN(Number(e)):!1,nb=e=>Object.keys(e),fc=(e,t,r)=>({get value(){return lu(e,t,r)},set value(n){jF(e,t,n)}});class h$ extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function lo(e,t){throw new h$(`[${e}] ${t}`)}const CT=(e="")=>e.split(" ").filter(t=>!!t.trim()),Pl=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Uo=(e,t)=>{!e||!t.trim()||e.classList.add(...CT(t))},rs=(e,t)=>{!e||!t.trim()||e.classList.remove(...CT(t))},ib=(e,t)=>{var r;if(!Rt||!e||!t)return"";let n=Sn(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function vs(e,t="px"){if(!e)return"";if(_r(e)||d$(e))return`${e}${t}`;if(Ue(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Xn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},v$={name:"ArrowDown"},p$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},g$=se("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),m$=[g$];function y$(e,t,r,n,i,a){return K(),Se("svg",p$,m$)}var TT=Xn(v$,[["render",y$],["__file","arrow-down.vue"]]),_$={name:"ArrowRight"},b$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},w$=se("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),x$=[w$];function S$(e,t,r,n,i,a){return K(),Se("svg",b$,x$)}var ny=Xn(_$,[["render",S$],["__file","arrow-right.vue"]]),C$={name:"ArrowUp"},T$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},M$=se("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),A$=[M$];function E$(e,t,r,n,i,a){return K(),Se("svg",T$,A$)}var P$=Xn(C$,[["render",E$],["__file","arrow-up.vue"]]),L$={name:"CircleCloseFilled"},D$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},I$=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),R$=[I$];function O$(e,t,r,n,i,a){return K(),Se("svg",D$,R$)}var MT=Xn(L$,[["render",O$],["__file","circle-close-filled.vue"]]),k$={name:"Close"},N$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},B$=se("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),F$=[B$];function $$(e,t,r,n,i,a){return K(),Se("svg",N$,F$)}var zp=Xn(k$,[["render",$$],["__file","close.vue"]]),H$={name:"InfoFilled"},z$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},W$=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),V$=[W$];function G$(e,t,r,n,i,a){return K(),Se("svg",z$,V$)}var AT=Xn(H$,[["render",G$],["__file","info-filled.vue"]]),U$={name:"Loading"},Y$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},q$=se("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),j$=[q$];function K$(e,t,r,n,i,a){return K(),Se("svg",Y$,j$)}var ET=Xn(U$,[["render",K$],["__file","loading.vue"]]),X$={name:"More"},Z$={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Q$=se("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),J$=[Q$];function e5(e,t,r,n,i,a){return K(),Se("svg",Z$,J$)}var t5=Xn(X$,[["render",e5],["__file","more.vue"]]),r5={name:"SuccessFilled"},n5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},i5=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),a5=[i5];function o5(e,t,r,n,i,a){return K(),Se("svg",n5,a5)}var PT=Xn(r5,[["render",o5],["__file","success-filled.vue"]]),s5={name:"WarningFilled"},l5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},u5=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),f5=[u5];function c5(e,t,r,n,i,a){return K(),Se("svg",l5,f5)}var LT=Xn(s5,[["render",c5],["__file","warning-filled.vue"]]);const DT="__epPropKey",Pe=e=>e,d5=e=>Ke(e)&&!!e[DT],zd=(e,t)=>{if(!Ke(e)||d5(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let f=!1,c=[];if(r&&(c=Array.from(r),ze(e,"default")&&c.push(i),f||(f=c.includes(u))),o&&(f||(f=o(u))),!f&&c.length>0){const d=[...new Set(c)].map(h=>JSON.stringify(h)).join(", ");CD(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return f}:void 0,[DT]:!0};return ze(e,"default")&&(l.default=i),l},ot=e=>zF(Object.entries(e).map(([t,r])=>[t,zd(r,t)])),Vi=Pe([String,Object,Function]),h5={Close:zp,SuccessFilled:PT,InfoFilled:AT,WarningFilled:LT,CircleCloseFilled:MT},ab={success:PT,warning:LT,error:MT,info:AT},Er=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},v5=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),p5=(e,t)=>(e.install=r=>{r.directive(t,e)},e),aa=e=>(e.install=sr,e),Lt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},Wd="update:modelValue",Vd=["","default","small","large"],cc=e=>{const t=ye(e)?e:[e],r=[];return t.forEach(n=>{var i;ye(n)?r.push(...cc(n)):Ji(n)&&ye(n.children)?r.push(...cc(n.children)):(r.push(n),Ji(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...cc(n.component.subTree)))}),r},Va=e=>e,IT=Symbol("buttonGroupContextKey"),Os=Symbol("checkboxGroupContextKey"),RT=Symbol(),ks=Symbol("formContextKey"),uo=Symbol("formItemContextKey"),OT=Symbol("rowContextKey"),kT=Symbol("scrollbarContextKey"),iy=Symbol("popper"),NT=Symbol("popperContent"),ay=Symbol("elTooltip"),BT=e=>{const t=dt();return $(()=>{var r,n;return(n=((r=t.proxy)==null?void 0:r.$props)[e])!=null?n:void 0})},Gc=H();function oa(e,t=void 0){const r=dt()?Re(RT,Gc):Gc;return e?$(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}const g5=(e,t,r=!1)=>{var n;const i=!!dt(),a=i?oa():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?Ct:void 0;if(!o)return;const s=$(()=>{const l=L(e);return a!=null&&a.value?m5(a.value,l):l});return o(RT,s),(r||!Gc.value)&&(Gc.value=s.value),s},m5=(e,t)=>{var r;const n=[...new Set([...nb(e),...nb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},Gd=zd({type:String,values:Vd,required:!1}),fo=(e,t={})=>{const r=H(void 0),n=t.prop?r:BT("size"),i=t.global?r:oa("size"),a=t.form?{size:void 0}:Re(ks,void 0),o=t.formItem?{size:void 0}:Re(uo,void 0);return $(()=>n.value||L(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},oy=e=>{const t=BT("disabled"),r=Re(ks,void 0);return $(()=>t.value||L(e)||(r==null?void 0:r.disabled)||!1)},y5=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{Ee(()=>L(o),s=>{},{immediate:!0})},sy="el",_5="is-",da=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},Ne=e=>{const t=oa("namespace",sy);return{namespace:t,b:(v="")=>da(t.value,e,v,"",""),e:v=>v?da(t.value,e,"",v,""):"",m:v=>v?da(t.value,e,"","",v):"",be:(v,p)=>v&&p?da(t.value,e,v,p,""):"",em:(v,p)=>v&&p?da(t.value,e,"",v,p):"",bm:(v,p)=>v&&p?da(t.value,e,v,"",p):"",bem:(v,p,g)=>v&&p&&g?da(t.value,e,v,p,g):"",is:(v,...p)=>{const g=p.length>=1?p[0]:!0;return v&&g?`${_5}${v}`:""},cssVar:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${g}`]=v[g]);return p},cssVarName:v=>`--${t.value}-${v}`,cssVarBlock:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${e}-${g}`]=v[g]);return p},cssVarBlockName:v=>`--${t.value}-${e}-${v}`}},ob={prefix:Math.floor(Math.random()*1e4),current:0},b5=Symbol("elIdInjection"),FT=()=>dt()?Re(b5,ob):ob,ly=e=>{const t=FT(),r=oa("namespace",sy);return $(()=>L(e)||`${r.value}-id-${t.prefix}-${t.current++}`)},Ud=()=>{const e=Re(ks,void 0),t=Re(uo,void 0);return{form:e,formItem:t}},$T=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=H(!1)),n||(n=H(!1));const i=H();let a;const o=$(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return Et(()=>{a=Ee([wn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:ly().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),Iu(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}};var w5={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const x5=e=>(t,r)=>S5(t,r,L(e)),S5=(e,t,r)=>lu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),C5=e=>{const t=$(()=>L(e).name),r=St(e)?e:H(e);return{lang:t,locale:r,t:x5(e)}},HT=()=>{const e=oa("locale");return C5($(()=>e.value||w5))},T5=zd({type:Pe(Boolean),default:null}),M5=zd({type:Pe(Function)}),A5=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:T5,[r]:M5};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:f,onHide:c})=>{const d=dt(),{emit:h}=d,v=d.props,p=$(()=>Le(v[r])),g=$(()=>v[e]===null),m=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),Le(f)&&f(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),Le(c)&&c(S))},_=S=>{if(v.disabled===!0||Le(u)&&!u())return;const C=p.value&&Rt;C&&h(t,!0),(g.value||!C)&&m(S)},b=S=>{if(v.disabled===!0||!Rt)return;const C=p.value&&Rt;C&&h(t,!1),(g.value||!C)&&y(S)},x=S=>{gi(S)&&(v.disabled&&S?p.value&&h(t,!1):o.value!==S&&(S?m():y()))},w=()=>{o.value?b():_()};return Ee(()=>v[e],x),l&&d.appContext.config.globalProperties.$route!==void 0&&Ee(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),Et(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}};var wr="top",an="bottom",on="right",xr="left",uy="auto",Fu=[wr,an,on,xr],ps="start",fu="end",E5="clippingParents",zT="viewport",Ys="popper",P5="reference",sb=Fu.reduce(function(e,t){return e.concat([t+"-"+ps,t+"-"+fu])},[]),fy=[].concat(Fu,[uy]).reduce(function(e,t){return e.concat([t,t+"-"+ps,t+"-"+fu])},[]),L5="beforeRead",D5="read",I5="afterRead",R5="beforeMain",O5="main",k5="afterMain",N5="beforeWrite",B5="write",F5="afterWrite",$5=[L5,D5,I5,R5,O5,k5,N5,B5,F5];function qn(e){return e?(e.nodeName||"").toLowerCase():null}function An(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function gs(e){var t=An(e).Element;return e instanceof t||e instanceof Element}function tn(e){var t=An(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function cy(e){if(typeof ShadowRoot>"u")return!1;var t=An(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function H5(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!tn(a)||!qn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function z5(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!tn(i)||!qn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var WT={name:"applyStyles",enabled:!0,phase:"write",fn:H5,effect:z5,requires:["computeStyles"]};function Gn(e){return e.split("-")[0]}var to=Math.max,Uc=Math.min,ms=Math.round;function ys(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(tn(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ms(r.width)/o||1),a>0&&(i=ms(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function dy(e){var t=ys(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function VT(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&cy(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function mi(e){return An(e).getComputedStyle(e)}function W5(e){return["table","td","th"].indexOf(qn(e))>=0}function sa(e){return((gs(e)?e.ownerDocument:e.document)||window.document).documentElement}function Yd(e){return qn(e)==="html"?e:e.assignedSlot||e.parentNode||(cy(e)?e.host:null)||sa(e)}function lb(e){return!tn(e)||mi(e).position==="fixed"?null:e.offsetParent}function V5(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&tn(e)){var n=mi(e);if(n.position==="fixed")return null}var i=Yd(e);for(cy(i)&&(i=i.host);tn(i)&&["html","body"].indexOf(qn(i))<0;){var a=mi(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function $u(e){for(var t=An(e),r=lb(e);r&&W5(r)&&mi(r).position==="static";)r=lb(r);return r&&(qn(r)==="html"||qn(r)==="body"&&mi(r).position==="static")?t:r||V5(e)||t}function hy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ll(e,t,r){return to(e,Uc(t,r))}function G5(e,t,r){var n=Ll(e,t,r);return n>r?r:n}function GT(){return{top:0,right:0,bottom:0,left:0}}function UT(e){return Object.assign({},GT(),e)}function YT(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var U5=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,UT(typeof e!="number"?e:YT(e,Fu))};function Y5(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=Gn(r.placement),l=hy(s),u=[xr,on].indexOf(s)>=0,f=u?"height":"width";if(!(!a||!o)){var c=U5(i.padding,r),d=dy(a),h=l==="y"?wr:xr,v=l==="y"?an:on,p=r.rects.reference[f]+r.rects.reference[l]-o[l]-r.rects.popper[f],g=o[l]-r.rects.reference[l],m=$u(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=c[h],x=y-d[f]-c[v],w=y/2-d[f]/2+_,S=Ll(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function q5(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!VT(t.elements.popper,i)||(t.elements.arrow=i))}var j5={name:"arrow",enabled:!0,phase:"main",fn:Y5,effect:q5,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function _s(e){return e.split("-")[1]}var K5={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X5(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ms(t*i)/i||0,y:ms(r*i)/i||0}}function ub(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,f=e.roundOffsets,c=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof f=="function"?f({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=xr,b=wr,x=window;if(u){var w=$u(r),S="clientHeight",C="clientWidth";if(w===An(r)&&(w=sa(r),mi(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===wr||(i===xr||i===on)&&a===fu){b=an;var T=c&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=T-n.height,p*=l?1:-1}if(i===xr||(i===wr||i===an)&&a===fu){_=on;var E=c&&w===x&&x.visualViewport?x.visualViewport.width:w[C];h-=E-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&K5),M=f===!0?X5({x:h,y:p}):{x:h,y:p};if(h=M.x,p=M.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function Z5(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:Gn(t.placement),variation:_s(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,ub(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,ub(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var qT={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Z5,data:{}},of={passive:!0};function Q5(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=An(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(f){f.addEventListener("scroll",r.update,of)}),s&&l.addEventListener("resize",r.update,of),function(){a&&u.forEach(function(f){f.removeEventListener("scroll",r.update,of)}),s&&l.removeEventListener("resize",r.update,of)}}var jT={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Q5,data:{}},J5={left:"right",right:"left",bottom:"top",top:"bottom"};function dc(e){return e.replace(/left|right|bottom|top/g,function(t){return J5[t]})}var e3={start:"end",end:"start"};function fb(e){return e.replace(/start|end/g,function(t){return e3[t]})}function vy(e){var t=An(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function py(e){return ys(sa(e)).left+vy(e).scrollLeft}function t3(e){var t=An(e),r=sa(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+py(e),y:s}}function r3(e){var t,r=sa(e),n=vy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=to(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=to(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+py(e),l=-n.scrollTop;return mi(i||r).direction==="rtl"&&(s+=to(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function gy(e){var t=mi(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function KT(e){return["html","body","#document"].indexOf(qn(e))>=0?e.ownerDocument.body:tn(e)&&gy(e)?e:KT(Yd(e))}function Dl(e,t){var r;t===void 0&&(t=[]);var n=KT(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=An(n),o=i?[a].concat(a.visualViewport||[],gy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(Dl(Yd(o)))}function Wp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function n3(e){var t=ys(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function cb(e,t){return t===zT?Wp(t3(e)):gs(t)?n3(t):Wp(r3(sa(e)))}function i3(e){var t=Dl(Yd(e)),r=["absolute","fixed"].indexOf(mi(e).position)>=0,n=r&&tn(e)?$u(e):e;return gs(n)?t.filter(function(i){return gs(i)&&VT(i,n)&&qn(i)!=="body"}):[]}function a3(e,t,r){var n=t==="clippingParents"?i3(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=cb(e,l);return s.top=to(u.top,s.top),s.right=Uc(u.right,s.right),s.bottom=Uc(u.bottom,s.bottom),s.left=to(u.left,s.left),s},cb(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function XT(e){var t=e.reference,r=e.element,n=e.placement,i=n?Gn(n):null,a=n?_s(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case wr:l={x:o,y:t.y-r.height};break;case an:l={x:o,y:t.y+t.height};break;case on:l={x:t.x+t.width,y:s};break;case xr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?hy(i):null;if(u!=null){var f=u==="y"?"height":"width";switch(a){case ps:l[u]=l[u]-(t[f]/2-r[f]/2);break;case fu:l[u]=l[u]+(t[f]/2-r[f]/2);break}}return l}function cu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?E5:a,s=r.rootBoundary,l=s===void 0?zT:s,u=r.elementContext,f=u===void 0?Ys:u,c=r.altBoundary,d=c===void 0?!1:c,h=r.padding,v=h===void 0?0:h,p=UT(typeof v!="number"?v:YT(v,Fu)),g=f===Ys?P5:Ys,m=e.rects.popper,y=e.elements[d?g:f],_=a3(gs(y)?y:y.contextElement||sa(e.elements.popper),o,l),b=ys(e.elements.reference),x=XT({reference:b,element:m,strategy:"absolute",placement:i}),w=Wp(Object.assign({},m,x)),S=f===Ys?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},T=e.modifiersData.offset;if(f===Ys&&T){var E=T[i];Object.keys(C).forEach(function(A){var M=[on,an].indexOf(A)>=0?1:-1,D=[wr,an].indexOf(A)>=0?"y":"x";C[A]+=E[D]*M})}return C}function o3(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?fy:l,f=_s(n),c=f?s?sb:sb.filter(function(v){return _s(v)===f}):Fu,d=c.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=c);var h=d.reduce(function(v,p){return v[p]=cu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[Gn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function s3(e){if(Gn(e)===uy)return[];var t=dc(e);return[fb(e),t,fb(t)]}function l3(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,f=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=Gn(g),y=m===g,_=l||(y||!v?[dc(g)]:s3(g)),b=[g].concat(_).reduce(function(Me,V){return Me.concat(Gn(V)===uy?o3(t,{placement:V,boundary:f,rootBoundary:c,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,T=b[0],E=0;E=0,k=O?"width":"height",F=cu(t,{placement:A,boundary:f,rootBoundary:c,altBoundary:d,padding:u}),j=O?D?on:xr:D?an:wr;x[k]>w[k]&&(j=dc(j));var B=dc(j),N=[];if(a&&N.push(F[M]<=0),s&&N.push(F[j]<=0,F[B]<=0),N.every(function(Me){return Me})){T=A,C=!1;break}S.set(A,N)}if(C)for(var U=v?3:1,re=function(Me){var V=b.find(function(J){var W=S.get(J);if(W)return W.slice(0,Me).every(function(Y){return Y})});if(V)return T=V,"break"},ae=U;ae>0;ae--){var me=re(ae);if(me==="break")break}t.placement!==T&&(t.modifiersData[n]._skip=!0,t.placement=T,t.reset=!0)}}var u3={name:"flip",enabled:!0,phase:"main",fn:l3,requiresIfExists:["offset"],data:{_skip:!1}};function db(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function hb(e){return[wr,on,an,xr].some(function(t){return e[t]>=0})}function f3(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=cu(t,{elementContext:"reference"}),s=cu(t,{altBoundary:!0}),l=db(o,n),u=db(s,i,a),f=hb(l),c=hb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:f,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":c})}var c3={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:f3};function d3(e,t,r){var n=Gn(e),i=[xr,wr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[xr,on].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function h3(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=fy.reduce(function(f,c){return f[c]=d3(c,t.rects,a),f},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var v3={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:h3};function p3(e){var t=e.state,r=e.name;t.modifiersData[r]=XT({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var ZT={name:"popperOffsets",enabled:!0,phase:"read",fn:p3,data:{}};function g3(e){return e==="x"?"y":"x"}function m3(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,f=r.altBoundary,c=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=cu(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:f}),m=Gn(t.placement),y=_s(t.placement),_=!y,b=hy(m),x=g3(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,T=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,E=typeof T=="number"?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,M={x:0,y:0};if(w){if(a){var D,O=b==="y"?wr:xr,k=b==="y"?an:on,F=b==="y"?"height":"width",j=w[b],B=j+g[O],N=j-g[k],U=h?-C[F]/2:0,re=y===ps?S[F]:C[F],ae=y===ps?-C[F]:-S[F],me=t.elements.arrow,Me=h&&me?dy(me):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:GT(),J=V[O],W=V[k],Y=Ll(0,S[F],Me[F]),le=_?S[F]/2-U-Y-J-E.mainAxis:re-Y-J-E.mainAxis,he=_?-S[F]/2+U+Y+W+E.mainAxis:ae+Y+W+E.mainAxis,Q=t.elements.arrow&&$u(t.elements.arrow),P=Q?b==="y"?Q.clientTop||0:Q.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=j+le-I-P,G=j+he-I,q=Ll(h?Uc(B,z):B,j,h?to(N,G):N);w[b]=q,M[b]=q-j}if(s){var ne,ce=b==="x"?wr:xr,te=b==="x"?an:on,ie=w[x],X=x==="y"?"height":"width",_e=ie+g[ce],ve=ie-g[te],be=[wr,xr].indexOf(m)!==-1,Ie=(ne=A==null?void 0:A[x])!=null?ne:0,Fe=be?_e:ie-S[X]-C[X]-Ie+E.altAxis,rt=be?ie+S[X]+C[X]-Ie-E.altAxis:ve,et=h&&be?G5(Fe,ie,rt):Ll(h?Fe:_e,ie,h?rt:ve);w[x]=et,M[x]=et-ie}t.modifiersData[n]=M}}var y3={name:"preventOverflow",enabled:!0,phase:"main",fn:m3,requiresIfExists:["offset"]};function _3(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function b3(e){return e===An(e)||!tn(e)?vy(e):_3(e)}function w3(e){var t=e.getBoundingClientRect(),r=ms(t.width)/e.offsetWidth||1,n=ms(t.height)/e.offsetHeight||1;return r!==1||n!==1}function x3(e,t,r){r===void 0&&(r=!1);var n=tn(t),i=tn(t)&&w3(t),a=sa(t),o=ys(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((qn(t)!=="body"||gy(a))&&(s=b3(t)),tn(t)?(l=ys(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=py(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function S3(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function C3(e){var t=S3(e);return $5.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function T3(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function M3(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var vb={placement:"bottom",modifiers:[],strategy:"absolute"};function pb(){for(var e=arguments.length,t=new Array(e),r=0;r{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return Hd(()=>r()),{registerTimeout:t,cancelTimeout:r}}let zo=[];const gb=e=>{const t=e;t.key===Lt.esc&&zo.forEach(r=>r(t))},L3=e=>{Et(()=>{zo.length===0&&document.addEventListener("keydown",gb),Rt&&zo.push(e)}),rr(()=>{zo=zo.filter(t=>t!==e),zo.length===0&&Rt&&document.removeEventListener("keydown",gb)})};let mb;const JT=()=>{const e=oa("namespace",sy),t=FT(),r=$(()=>`${e.value}-popper-container-${t.prefix}`),n=$(()=>`#${r.value}`);return{id:r,selector:n}},D3=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},I3=()=>{Pd(()=>{if(!Rt)return;const{id:e,selector:t}=JT();!mb&&!document.body.querySelector(t.value)&&(mb=D3(e.value))})},R3=ot({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),eM=({showAfter:e,hideAfter:t,open:r,close:n})=>{const{registerTimeout:i}=P3();return{onOpen:s=>{i(()=>{r(s)},L(e))},onClose:s=>{i(()=>{n(s)},L(t))}}},tM=Symbol("elForwardRef"),O3=e=>{Ct(tM,{setForwardRef:r=>{e.value=r}})},k3=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),yb=H(0),yy=()=>{const e=oa("zIndex",2e3),t=$(()=>e.value+yb.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(yb.value++,t.value)}};var Je=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const N3=ot({size:{type:Pe([Number,String])},color:{type:String}}),B3=ue({name:"ElIcon",inheritAttrs:!1}),F3=ue({...B3,props:N3,setup(e){const t=e,r=Ne("icon"),n=$(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:Vc(i)?void 0:vs(i),"--color":a}});return(i,a)=>(K(),Se("i",go({class:L(r).b(),style:L(n)},i.$attrs),[Be(i.$slots,"default")],16))}});var $3=Je(F3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const Cn=Er($3),Yo=4,H3={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},z3=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),W3=ot({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),V3="Thumb",G3=ue({__name:"thumb",props:W3,setup(e){const t=e,r=Re(kT),n=Ne("scrollbar");r||lo(V3,"can not inject scrollbar context");const i=H(),a=H(),o=H({}),s=H(!1);let l=!1,u=!1,f=Rt?document.onselectstart:null;const c=$(()=>H3[t.vertical?"vertical":"horizontal"]),d=$(()=>z3({size:t.size,move:t.move,bar:c.value})),h=$(()=>i.value[c.value.offset]**2/r.wrapElement[c.value.scrollSize]/t.ratio/a.value[c.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[c.value.axis]=C[c.value.offset]-(w[c.value.client]-C.getBoundingClientRect()[c.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[c.value.direction]-w[c.value.client]),C=a.value[c.value.offset]/2,T=(S-C)*100*h.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=T*r.wrapElement[c.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),f=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[c.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[c.value.direction]-w[c.value.client])*-1,T=a.value[c.value.offset]-S,E=(C-T)*100*h.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=E*r.wrapElement[c.value.scrollSize]/100},y=()=>{l=!1,o.value[c.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};rr(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==f&&(document.onselectstart=f)};return $n(wn(r,"scrollbarElement"),"mousemove",_),$n(wn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(K(),xe(Kn,{name:L(n).b("fade"),persisted:""},{default:Z(()=>[qt(se("div",{ref_key:"instance",ref:i,class:de([L(n).e("bar"),L(n).is(L(c).key)]),onMousedown:p},[se("div",{ref_key:"thumb",ref:a,class:de(L(n).e("thumb")),style:At(L(d)),onMousedown:v},null,38)],34),[[pi,w.always||s.value]])]),_:1},8,["name"]))}});var _b=Je(G3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const U3=ot({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),Y3=ue({__name:"bar",props:U3,setup(e,{expose:t}){const r=e,n=H(0),i=H(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Yo,l=o.offsetWidth-Yo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(K(),Se(yt,null,[ee(_b,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),ee(_b,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var q3=Je(Y3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const j3=ot({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Pe([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),K3={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(_r)},X3="ElScrollbar",Z3=ue({name:X3}),Q3=ue({...Z3,props:j3,emits:K3,setup(e,{expose:t,emit:r}){const n=e,i=Ne("scrollbar");let a,o;const s=H(),l=H(),u=H(),f=H("0"),c=H("0"),d=H(),h=H(1),v=H(1),p=$(()=>{const S={};return n.height&&(S.height=vs(n.height)),n.maxHeight&&(S.maxHeight=vs(n.maxHeight)),[n.wrapStyle,S]}),g=$(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=$(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=d.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){Ke(S)?l.value.scrollTo(S):_r(S)&&_r(C)&&l.value.scrollTo(S,C)}const b=S=>{_r(S)&&(l.value.scrollTop=S)},x=S=>{_r(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Yo,C=l.value.offsetWidth-Yo,T=S**2/l.value.scrollHeight,E=C**2/l.value.scrollWidth,A=Math.max(T,n.minSize),M=Math.max(E,n.minSize);h.value=T/(S-T)/(A/(S-A)),v.value=E/(C-E)/(M/(C-M)),c.value=A+Yon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=ds(u,w),o=$n("resize",w))},{immediate:!0}),Ee(()=>[n.maxHeight,n.height],()=>{n.native||zt(()=>{var S;w(),l.value&&((S=d.value)==null||S.handleScroll(l.value))})}),Ct(kT,ln({scrollbarElement:s,wrapElement:l})),Et(()=>{n.native||zt(()=>{w()})}),Ld(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(K(),Se("div",{ref_key:"scrollbarRef",ref:s,class:de(L(i).b())},[se("div",{ref_key:"wrapRef",ref:l,class:de(L(g)),style:At(L(p)),onScroll:y},[(K(),xe(hi(S.tag),{ref_key:"resizeRef",ref:u,class:de(L(m)),style:At(S.viewStyle)},{default:Z(()=>[Be(S.$slots,"default")]),_:3},8,["class","style"]))],38),S.native?Ye("v-if",!0):(K(),xe(q3,{key:0,ref_key:"barRef",ref:d,height:c.value,width:f.value,always:S.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var J3=Je(Q3,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const rM=Er(J3),e4=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],nM=ot({role:{type:String,values:e4,default:"tooltip"}}),t4=ue({name:"ElPopperRoot",inheritAttrs:!1}),r4=ue({...t4,props:nM,setup(e,{expose:t}){const r=e,n=H(),i=H(),a=H(),o=H(),s=$(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),Ct(iy,l),(u,f)=>Be(u.$slots,"default")}});var n4=Je(r4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const iM=ot({arrowOffset:{type:Number,default:5}}),i4=ue({name:"ElPopperArrow",inheritAttrs:!1}),a4=ue({...i4,props:iM,setup(e,{expose:t}){const r=e,n=Ne("popper"),{arrowOffset:i,arrowRef:a}=Re(NT,void 0);return Ee(()=>r.arrowOffset,o=>{i.value=o}),rr(()=>{a.value=void 0}),t({arrowRef:a}),(o,s)=>(K(),Se("span",{ref_key:"arrowRef",ref:a,class:de(L(n).e("arrow")),"data-popper-arrow":""},null,2))}});var o4=Je(a4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const s4="ElOnlyChild",l4=ue({name:s4,setup(e,{slots:t,attrs:r}){var n;const i=Re(tM),a=k3((n=i==null?void 0:i.setForwardRef)!=null?n:sr);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=aM(s);return l?qt(vi(l,r),[[a]]):null}}});function aM(e){if(!e)return null;const t=e;for(const r of t){if(Ke(r))switch(r.type){case br:continue;case Is:case"svg":return bb(r);case yt:return aM(r.children);default:return r}return bb(r)}return null}function bb(e){const t=Ne("only-child");return ee("span",{class:t.e("content")},[e])}const oM=ot({virtualRef:{type:Pe(Object)},virtualTriggering:Boolean,onMouseenter:{type:Pe(Function)},onMouseleave:{type:Pe(Function)},onClick:{type:Pe(Function)},onKeydown:{type:Pe(Function)},onFocus:{type:Pe(Function)},onBlur:{type:Pe(Function)},onContextmenu:{type:Pe(Function)},id:String,open:Boolean}),u4=ue({name:"ElPopperTrigger",inheritAttrs:!1}),f4=ue({...u4,props:oM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Re(iy,void 0);O3(i);const a=$(()=>s.value?r.id:void 0),o=$(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=$(()=>{if(n&&n.value!=="tooltip")return n.value}),l=$(()=>s.value?`${r.open}`:void 0);let u;return Et(()=>{Ee(()=>r.virtualRef,f=>{f&&(i.value=Wi(f))},{immediate:!0}),Ee(i,(f,c)=>{u==null||u(),u=void 0,hs(f)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(f.addEventListener(d.slice(2).toLowerCase(),v),(h=c==null?void 0:c.removeEventListener)==null||h.call(c,d.slice(2).toLowerCase(),v))}),u=Ee([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{ty(d[v])?f.removeAttribute(h):f.setAttribute(h,d[v])})},{immediate:!0})),hs(c)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>c.removeAttribute(d))},{immediate:!0})}),rr(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(f,c)=>f.virtualTriggering?Ye("v-if",!0):(K(),xe(L(l4),go({key:0},f.$attrs,{"aria-controls":L(a),"aria-describedby":L(o),"aria-expanded":L(l),"aria-haspopup":L(s)}),{default:Z(()=>[Be(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var c4=Je(f4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Rh="focus-trap.focus-after-trapped",Oh="focus-trap.focus-after-released",d4="focus-trap.focusout-prevented",wb={cancelable:!0,bubbles:!1},h4={cancelable:!0,bubbles:!1},xb="focusAfterTrapped",Sb="focusAfterReleased",v4=Symbol("elFocusTrap"),_y=H(),qd=H(0),by=H(0);let sf=0;const sM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Cb=(e,t)=>{for(const r of e)if(!p4(r,t))return r},p4=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},g4=e=>{const t=sM(e),r=Cb(t,e),n=Cb(t.reverse(),e);return[r,n]},m4=e=>e instanceof HTMLInputElement&&"select"in e,Ni=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),by.value=window.performance.now(),e!==r&&m4(e)&&t&&e.select()}};function Tb(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const y4=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=Tb(e,n),e.unshift(n)},remove:n=>{var i,a;e=Tb(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},_4=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(Ni(n,t),document.activeElement!==r)return},Mb=y4(),b4=()=>qd.value>by.value,lf=()=>{_y.value="pointer",qd.value=window.performance.now()},Ab=()=>{_y.value="keyboard",qd.value=window.performance.now()},w4=()=>(Et(()=>{sf===0&&(document.addEventListener("mousedown",lf),document.addEventListener("touchstart",lf),document.addEventListener("keydown",Ab)),sf++}),rr(()=>{sf--,sf<=0&&(document.removeEventListener("mousedown",lf),document.removeEventListener("touchstart",lf),document.removeEventListener("keydown",Ab))}),{focusReason:_y,lastUserFocusTimestamp:qd,lastAutomatedFocusTimestamp:by}),uf=e=>new CustomEvent(d4,{...h4,detail:e}),x4=ue({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[xb,Sb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=H();let n,i;const{focusReason:a}=w4();L3(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===Lt.tab&&!g&&!m&&!y,S=document.activeElement;if(w&&S){const C=_,[T,E]=g4(C);if(T&&E){if(!b&&S===E){const M=uf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),x&&Ni(T,!0))}else if(b&&[T,C].includes(S)){const M=uf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),x&&Ni(E,!0))}}else if(S===C){const M=uf({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||v.preventDefault()}}};Ct(v4,{focusTrapRef:r,onKeydown:s}),Ee(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),Ee([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",f),v.addEventListener("focusout",c)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",f),p.removeEventListener("focusout",c))});const l=v=>{t(xb,v)},u=v=>t(Sb,v),f=v=>{const p=L(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:Ni(i,!0))},c=v=>{const p=L(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!ty(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=uf({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||Ni(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await zt();const v=L(r);if(v){Mb.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Rh,wb);v.addEventListener(Rh,l),v.dispatchEvent(m),m.defaultPrevented||zt(()=>{let y=e.focusStartEl;Ue(y)||(Ni(y),document.activeElement!==y&&(y="first")),y==="first"&&_4(sM(v),!0),(document.activeElement===p||y==="container")&&Ni(v)})}}}function h(){const v=L(r);if(v){v.removeEventListener(Rh,l);const p=new CustomEvent(Oh,{...wb,detail:{focusReason:a.value}});v.addEventListener(Oh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!b4())&&Ni(n??document.body),v.removeEventListener(Oh,l),Mb.remove(o)}}return Et(()=>{e.trapped&&d(),Ee(()=>e.trapped,v=>{v?d():h()})}),rr(()=>{e.trapped&&h()}),{onKeydown:s}}});function S4(e,t,r,n,i,a){return Be(e.$slots,"default",{handleKeydown:e.onKeydown})}var C4=Je(x4,[["render",S4],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const T4=["fixed","absolute"],M4=ot({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Pe(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:fy,default:"bottom"},popperOptions:{type:Pe(Object),default:()=>({})},strategy:{type:String,values:T4,default:"absolute"}}),lM=ot({...M4,id:String,style:{type:Pe([String,Array,Object])},className:{type:Pe([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Pe([String,Array,Object])},popperStyle:{type:Pe([String,Array,Object])},referenceEl:{type:Pe(Object)},triggerTargetEl:{type:Pe(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),A4={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},Eb=(e,t)=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:P4(e)};return L4(a,t),D4(a,i==null?void 0:i.modifiers),a},E4=e=>{if(Rt)return Wi(e)};function P4(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function L4(e,{arrowEl:t,arrowOffset:r}){e.modifiers.push({name:"arrow",options:{element:t,padding:r??5}})}function D4(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const I4=ue({name:"ElPopperContent"}),R4=ue({...I4,props:lM,emits:A4,setup(e,{expose:t,emit:r}){const n=e,{popperInstanceRef:i,contentRef:a,triggerRef:o,role:s}=Re(iy,void 0),l=Re(uo,void 0),{nextZIndex:u}=yy(),f=Ne("popper"),c=H(),d=H("first"),h=H(),v=H();Ct(NT,{arrowRef:h,arrowOffset:v}),l&&(l.addInputId||l.removeInputId)&&Ct(uo,{...l,addInputId:sr,removeInputId:sr});const p=H(n.zIndex||u()),g=H(!1);let m;const y=$(()=>E4(n.referenceEl)||L(o)),_=$(()=>[{zIndex:L(p)},n.popperStyle]),b=$(()=>[f.b(),f.is("pure",n.pure),f.is(n.effect),n.popperClass]),x=$(()=>s&&s.value==="dialog"?"false":void 0),w=({referenceEl:O,popperContentEl:k,arrowEl:F})=>{const j=Eb(n,{arrowEl:F,arrowOffset:L(v)});return QT(O,k,j)},S=(O=!0)=>{var k;(k=L(i))==null||k.update(),O&&(p.value=n.zIndex||u())},C=()=>{var O,k;const F={name:"eventListeners",enabled:n.visible};(k=(O=L(i))==null?void 0:O.setOptions)==null||k.call(O,j=>({...j,modifiers:[...j.modifiers||[],F]})),S(!1),n.visible&&n.focusOnShow?g.value=!0:n.visible===!1&&(g.value=!1)},T=()=>{r("focus")},E=O=>{var k;((k=O.detail)==null?void 0:k.focusReason)!=="pointer"&&(d.value="first",r("blur"))},A=O=>{n.visible&&!g.value&&(O.target&&(d.value=O.target),g.value=!0)},M=O=>{n.trapping||(O.detail.focusReason==="pointer"&&O.preventDefault(),g.value=!1)},D=()=>{g.value=!1,r("close")};return Et(()=>{let O;Ee(y,k=>{var F;O==null||O();const j=L(i);if((F=j==null?void 0:j.destroy)==null||F.call(j),k){const B=L(c);a.value=B,i.value=w({referenceEl:k,popperContentEl:B,arrowEl:L(h)}),O=Ee(()=>k.getBoundingClientRect(),()=>S(),{immediate:!0})}else i.value=void 0},{immediate:!0}),Ee(()=>n.triggerTargetEl,(k,F)=>{m==null||m(),m=void 0;const j=L(k||c.value),B=L(F||c.value);hs(j)&&(m=Ee([s,()=>n.ariaLabel,x,()=>n.id],N=>{["role","aria-label","aria-modal","id"].forEach((U,re)=>{ty(N[re])?j.removeAttribute(U):j.setAttribute(U,N[re])})},{immediate:!0})),B!==j&&hs(B)&&["role","aria-label","aria-modal","id"].forEach(N=>{B.removeAttribute(N)})},{immediate:!0}),Ee(()=>n.visible,C,{immediate:!0}),Ee(()=>Eb(n,{arrowEl:L(h),arrowOffset:L(v)}),k=>{var F;return(F=i.value)==null?void 0:F.setOptions(k)})}),rr(()=>{m==null||m(),m=void 0}),t({popperContentRef:c,popperInstanceRef:i,updatePopper:S,contentStyle:_}),(O,k)=>(K(),Se("div",{ref_key:"popperContentRef",ref:c,style:At(L(_)),class:de(L(b)),tabindex:"-1",onMouseenter:k[0]||(k[0]=F=>O.$emit("mouseenter",F)),onMouseleave:k[1]||(k[1]=F=>O.$emit("mouseleave",F))},[ee(L(C4),{trapped:g.value,"trap-on-focus-in":!0,"focus-trap-el":c.value,"focus-start-el":d.value,onFocusAfterTrapped:T,onFocusAfterReleased:E,onFocusin:A,onFocusoutPrevented:M,onReleaseRequested:D},{default:Z(()=>[Be(O.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el"])],38))}});var O4=Je(R4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const k4=Er(n4),N4=Ne("tooltip"),qr=ot({...R3,...lM,appendTo:{type:Pe([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Pe(Boolean),default:null},transition:{type:String,default:`${N4.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),du=ot({...oM,disabled:Boolean,trigger:{type:Pe([String,Array]),default:"hover"},triggerKeys:{type:Pe(Array),default:()=>[Lt.enter,Lt.space]}}),{useModelToggleProps:B4,useModelToggleEmits:F4,useModelToggle:$4}=A5("visible"),H4=ot({...nM,...B4,...qr,...du,...iM,showArrow:{type:Boolean,default:!0}}),z4=[...F4,"before-show","before-hide","show","hide","open","close"],W4=(e,t)=>ye(e)?e.includes(t):e===t,Co=(e,t,r)=>n=>{W4(L(e),t)&&r(n)},V4=ue({name:"ElTooltipTrigger"}),G4=ue({...V4,props:du,setup(e,{expose:t}){const r=e,n=Ne("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Re(ay,void 0),f=H(null),c=()=>{if(L(i)||r.disabled)return!0},d=wn(r,"trigger"),h=si(c,Co(d,"hover",s)),v=si(c,Co(d,"hover",l)),p=si(c,Co(d,"click",b=>{b.button===0&&u(b)})),g=si(c,Co(d,"focus",s)),m=si(c,Co(d,"focus",l)),y=si(c,Co(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=si(c,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:f}),(b,x)=>(K(),xe(L(c4),{id:L(a),"virtual-ref":b.virtualRef,open:L(o),"virtual-triggering":b.virtualTriggering,class:de(L(n).e("trigger")),onBlur:L(m),onClick:L(p),onContextmenu:L(y),onFocus:L(g),onMouseenter:L(h),onMouseleave:L(v),onKeydown:L(_)},{default:Z(()=>[Be(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var U4=Je(G4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const Y4=ue({name:"ElTooltipContent",inheritAttrs:!1}),q4=ue({...Y4,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=JT(),i=H(null),a=H(!1),{controlled:o,id:s,open:l,trigger:u,onClose:f,onOpen:c,onShow:d,onHide:h,onBeforeShow:v,onBeforeHide:p}=Re(ay,void 0),g=$(()=>r.persistent);rr(()=>{a.value=!0});const m=$(()=>L(g)?!0:L(l)),y=$(()=>r.disabled?!1:L(l)),_=$(()=>r.appendTo||n.value),b=$(()=>{var k;return(k=r.style)!=null?k:{}}),x=$(()=>!L(l)),w=()=>{h()},S=()=>{if(L(o))return!0},C=si(S,()=>{r.enterable&&L(u)==="hover"&&c()}),T=si(S,()=>{L(u)==="hover"&&f()}),E=()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k),v==null||v()},A=()=>{p==null||p()},M=()=>{d(),O=r$($(()=>{var k;return(k=i.value)==null?void 0:k.popperContentRef}),()=>{if(L(o))return;L(u)!=="hover"&&f()})},D=()=>{r.virtualTriggering||f()};let O;return Ee(()=>L(l),k=>{k||O==null||O()},{flush:"post"}),Ee(()=>r.content,()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k)}),t({contentRef:i}),(k,F)=>(K(),xe(vI,{disabled:!k.teleported,to:L(_)},[ee(Kn,{name:k.transition,onAfterLeave:w,onBeforeEnter:E,onAfterEnter:M,onBeforeLeave:A},{default:Z(()=>[L(m)?qt((K(),xe(L(O4),go({key:0,id:L(s),ref_key:"contentRef",ref:i},k.$attrs,{"aria-label":k.ariaLabel,"aria-hidden":L(x),"boundaries-padding":k.boundariesPadding,"fallback-placements":k.fallbackPlacements,"gpu-acceleration":k.gpuAcceleration,offset:k.offset,placement:k.placement,"popper-options":k.popperOptions,strategy:k.strategy,effect:k.effect,enterable:k.enterable,pure:k.pure,"popper-class":k.popperClass,"popper-style":[k.popperStyle,L(b)],"reference-el":k.referenceEl,"trigger-target-el":k.triggerTargetEl,visible:L(y),"z-index":k.zIndex,onMouseenter:L(C),onMouseleave:L(T),onBlur:D,onClose:L(f)}),{default:Z(()=>[a.value?Ye("v-if",!0):Be(k.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[pi,L(y)]]):Ye("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var j4=Je(q4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const K4=["innerHTML"],X4={key:1},Z4=ue({name:"ElTooltip"}),Q4=ue({...Z4,props:H4,emits:z4,setup(e,{expose:t,emit:r}){const n=e;I3();const i=ly(),a=H(),o=H(),s=()=>{var m;const y=L(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=H(!1),u=H(),{show:f,hide:c,hasUpdateHandler:d}=$4({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=eM({showAfter:wn(n,"showAfter"),hideAfter:wn(n,"hideAfter"),open:f,close:c}),p=$(()=>gi(n.visible)&&!d.value);Ct(ay,{controlled:p,id:i,open:Sd(l),trigger:wn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{L(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),Ee(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return MC(()=>l.value&&c()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:c}),(m,y)=>(K(),xe(L(k4),{ref_key:"popperRef",ref:a,role:m.role},{default:Z(()=>[ee(U4,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:Z(()=>[m.$slots.default?Be(m.$slots,"default",{key:0}):Ye("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(j4,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:Z(()=>[Be(m.$slots,"content",{},()=>[m.rawContent?(K(),Se("span",{key:0,innerHTML:m.content},null,8,K4)):(K(),Se("span",X4,Ae(m.content),1))]),m.showArrow?(K(),xe(L(o4),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):Ye("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var J4=Je(Q4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Hu=Er(J4),eH=ot({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),tH=["textContent"],rH=ue({name:"ElBadge"}),nH=ue({...rH,props:eH,setup(e,{expose:t}){const r=e,n=Ne("badge"),i=$(()=>r.isDot?"":_r(r.value)&&_r(r.max)?r.max(K(),Se("div",{class:de(L(n).b())},[Be(a.$slots,"default"),ee(Kn,{name:`${L(n).namespace.value}-zoom-in-center`,persisted:""},{default:Z(()=>[qt(se("sup",{class:de([L(n).e("content"),L(n).em("content",a.type),L(n).is("fixed",!!a.$slots.default),L(n).is("dot",a.isDot)]),textContent:Ae(L(i))},null,10,tH),[[pi,!a.hidden&&(L(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var iH=Je(nH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const aH=Er(iH),oH=(e,t)=>{y5({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},$(()=>e.type==="text"));const r=Re(IT,void 0),n=oa("button"),{form:i}=Ud(),a=fo($(()=>r==null?void 0:r.size)),o=oy(),s=H(),l=Rd(),u=$(()=>e.type||(r==null?void 0:r.type)||""),f=$(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),c=$(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(f.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Is){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:c,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},sH=["default","primary","success","warning","info","danger","text",""],lH=["button","submit","reset"],Vp=ot({size:Gd,disabled:Boolean,type:{type:String,values:sH,default:""},icon:{type:Vi},nativeType:{type:String,values:lH,default:"button"},loading:Boolean,loadingIcon:{type:Vi,default:()=>ET},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),uH={click:e=>e instanceof MouseEvent};function jt(e,t){fH(e)&&(e="100%");var r=cH(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function ff(e){return Math.min(1,Math.max(0,e))}function fH(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function cH(e){return typeof e=="string"&&e.indexOf("%")!==-1}function uM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function cf(e){return e<=1?"".concat(Number(e)*100,"%"):e}function qa(e){return e.length===1?"0"+e:String(e)}function dH(e,t,r){return{r:jt(e,255)*255,g:jt(t,255)*255,b:jt(r,255)*255}}function Pb(e,t,r){e=jt(e,255),t=jt(t,255),r=jt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function hH(e,t,r){var n,i,a;if(e=jt(e,360),t=jt(t,100),r=jt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=kh(s,o,e+1/3),i=kh(s,o,e),a=kh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function Lb(e,t,r){e=jt(e,255),t=jt(t,255),r=jt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var Gp={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function yH(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=wH(e)),typeof e=="object"&&(ti(e.r)&&ti(e.g)&&ti(e.b)?(t=dH(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ti(e.h)&&ti(e.s)&&ti(e.v)?(n=cf(e.s),i=cf(e.v),t=vH(e.h,n,i),o=!0,s="hsv"):ti(e.h)&&ti(e.s)&&ti(e.l)&&(n=cf(e.s),a=cf(e.l),t=hH(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=uM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var _H="[-\\+]?\\d+%?",bH="[-\\+]?\\d*\\.\\d+%?",Gi="(?:".concat(bH,")|(?:").concat(_H,")"),Nh="[\\s|\\(]+(".concat(Gi,")[,|\\s]+(").concat(Gi,")[,|\\s]+(").concat(Gi,")\\s*\\)?"),Bh="[\\s|\\(]+(".concat(Gi,")[,|\\s]+(").concat(Gi,")[,|\\s]+(").concat(Gi,")[,|\\s]+(").concat(Gi,")\\s*\\)?"),dn={CSS_UNIT:new RegExp(Gi),rgb:new RegExp("rgb"+Nh),rgba:new RegExp("rgba"+Bh),hsl:new RegExp("hsl"+Nh),hsla:new RegExp("hsla"+Bh),hsv:new RegExp("hsv"+Nh),hsva:new RegExp("hsva"+Bh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function wH(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(Gp[e])e=Gp[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=dn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=dn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=dn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=dn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=dn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=dn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=dn.hex8.exec(e),r?{r:Lr(r[1]),g:Lr(r[2]),b:Lr(r[3]),a:Ib(r[4]),format:t?"name":"hex8"}:(r=dn.hex6.exec(e),r?{r:Lr(r[1]),g:Lr(r[2]),b:Lr(r[3]),format:t?"name":"hex"}:(r=dn.hex4.exec(e),r?{r:Lr(r[1]+r[1]),g:Lr(r[2]+r[2]),b:Lr(r[3]+r[3]),a:Ib(r[4]+r[4]),format:t?"name":"hex8"}:(r=dn.hex3.exec(e),r?{r:Lr(r[1]+r[1]),g:Lr(r[2]+r[2]),b:Lr(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ti(e){return Boolean(dn.CSS_UNIT.exec(String(e)))}var fM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=mH(t)),this.originalInput=t;var i=yH(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=uM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Lb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Lb(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Pb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Pb(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Db(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),pH(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(jt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(jt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Db(this.r,this.g,this.b,!1),r=0,n=Object.entries(Gp);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=ff(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=ff(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=ff(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=ff(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new fM(i),o=e.dark?a.tint(20).toString():Pi(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Pi(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Pi(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Pi(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Pi(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Pi(a,80):a.tint(80).toString());else{const s=e.dark?Pi(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Pi(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const SH=["aria-disabled","disabled","autofocus","type"],CH=ue({name:"ElButton"}),TH=ue({...CH,props:Vp,emits:uH,setup(e,{expose:t,emit:r}){const n=e,i=xH(n),a=Ne("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:f,handleClick:c}=oH(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:f}),(d,h)=>(K(),Se("button",{ref_key:"_ref",ref:o,class:de([L(a).b(),L(a).m(L(l)),L(a).m(L(s)),L(a).is("disabled",L(u)),L(a).is("loading",d.loading),L(a).is("plain",d.plain),L(a).is("round",d.round),L(a).is("circle",d.circle),L(a).is("text",d.text),L(a).is("link",d.link),L(a).is("has-bg",d.bg)]),"aria-disabled":L(u)||d.loading,disabled:L(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:At(L(i)),onClick:h[0]||(h[0]=(...v)=>L(c)&&L(c)(...v))},[d.loading?(K(),Se(yt,{key:0},[d.$slots.loading?Be(d.$slots,"loading",{key:0}):(K(),xe(L(Cn),{key:1,class:de(L(a).is("loading"))},{default:Z(()=>[(K(),xe(hi(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(K(),xe(L(Cn),{key:1},{default:Z(()=>[d.icon?(K(),xe(hi(d.icon),{key:0})):Be(d.$slots,"icon",{key:1})]),_:3})):Ye("v-if",!0),d.$slots.default?(K(),Se("span",{key:2,class:de({[L(a).em("text","expand")]:L(f)})},[Be(d.$slots,"default")],2)):Ye("v-if",!0)],14,SH))}});var MH=Je(TH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const AH={size:Vp.size,type:Vp.type},EH=ue({name:"ElButtonGroup"}),PH=ue({...EH,props:AH,setup(e){const t=e;Ct(IT,ln({size:wn(t,"size"),type:wn(t,"type")}));const r=Ne("button");return(n,i)=>(K(),Se("div",{class:de(`${L(r).b("group")}`)},[Be(n.$slots,"default")],2))}});var cM=Je(PH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const LH=Er(MH,{ButtonGroup:cM});aa(cM);var DH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Bi=new Map;let Rb;Rt&&(document.addEventListener("mousedown",e=>Rb=e),document.addEventListener("mouseup",e=>{for(const t of Bi.values())for(const{documentHandler:r}of t)r(e,Rb)}));function Ob(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:hs(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,f=e.contains(o)||e.contains(s),c=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||f||c||d||h||t.value(n,i)}}const IH={beforeMount(e,t){Bi.has(e)||Bi.set(e,[]),Bi.get(e).push({documentHandler:Ob(e,t),bindingFn:t.value})},updated(e,t){Bi.has(e)||Bi.set(e,[]);const r=Bi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:Ob(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Bi.delete(e)}};var kb=!1,Ga,Up,Yp,hc,vc,dM,pc,qp,jp,Kp,hM,Xp,Zp,vM,pM;function cr(){if(!kb){kb=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Xp=/\b(iPhone|iP[ao]d)/.exec(e),Zp=/\b(iP[ao]d)/.exec(e),Kp=/Android/i.exec(e),vM=/FBAN\/\w+;/i.exec(e),pM=/Mobile/i.exec(e),hM=!!/Win64/.exec(e),t){Ga=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,Ga&&document&&document.documentMode&&(Ga=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);dM=n?parseFloat(n[1])+4:Ga,Up=t[2]?parseFloat(t[2]):NaN,Yp=t[3]?parseFloat(t[3]):NaN,hc=t[4]?parseFloat(t[4]):NaN,hc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),vc=t&&t[1]?parseFloat(t[1]):NaN):vc=NaN}else Ga=Up=Yp=vc=hc=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);pc=i?parseFloat(i[1].replace("_",".")):!0}else pc=!1;qp=!!r[2],jp=!!r[3]}else pc=qp=jp=!1}}var Qp={ie:function(){return cr()||Ga},ieCompatibilityMode:function(){return cr()||dM>Ga},ie64:function(){return Qp.ie()&&hM},firefox:function(){return cr()||Up},opera:function(){return cr()||Yp},webkit:function(){return cr()||hc},safari:function(){return Qp.webkit()},chrome:function(){return cr()||vc},windows:function(){return cr()||qp},osx:function(){return cr()||pc},linux:function(){return cr()||jp},iphone:function(){return cr()||Xp},mobile:function(){return cr()||Xp||Zp||Kp||pM},nativeApp:function(){return cr()||vM},android:function(){return cr()||Kp},ipad:function(){return cr()||Zp}},RH=Qp,df=!!(typeof window<"u"&&window.document&&window.document.createElement),OH={canUseDOM:df,canUseWorkers:typeof Worker<"u",canUseEventListeners:df&&!!(window.addEventListener||window.attachEvent),canUseViewport:df&&!!window.screen,isInWorker:!df},gM=OH,mM;gM.canUseDOM&&(mM=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function kH(e,t){if(!gM.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&mM&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var NH=kH,Nb=10,Bb=40,Fb=800;function yM(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*Nb,i=r*Nb,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=Bb,i*=Bb):(n*=Fb,i*=Fb)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}yM.getEventType=function(){return RH.firefox()?"DOMMouseScroll":NH("wheel")?"wheel":"mousewheel"};var BH=yM;/** * Checks if an event is supported in the current execution environment. * * NOTE: This will not work correctly for non-generic events such as `change`, @@ -11,7 +11,7 @@ var TL=Object.defineProperty;var ML=(e,t,r)=>t in e?TL(e,t,{enumerable:!0,config * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const BH=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=NH(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},FH={beforeMount(e,t){BH(e,t.value)}},yM={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Vd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},_M={[zd]:e=>Ue(e)||_r(e)||pi(e),change:e=>Ue(e)||_r(e)||pi(e)},$H=({model:e,isChecked:t})=>{const r=De(Os,void 0),n=$(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!Wc(s)&&e.value.length>=s&&!t.value||!Wc(l)&&e.value.length<=l&&t.value});return{isDisabled:oy($(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},HH=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=De(Os,void 0),{formItem:s}=Gd(),{emit:l}=dt();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function f(v,p){l("change",u(v),p)}function c(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ht(),f(t.value,v)))}const h=$(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return Me(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:c,onClickRoot:d}},zH=e=>{const t=H(!1),{emit:r}=dt(),n=De(Os,void 0),i=$(()=>Wc(n)===!1),a=H(!1);return{model:$({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&ye(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(zd,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},WH=(e,t,{model:r})=>{const n=De(Os,void 0),i=H(!1),a=$(()=>{const u=r.value;return pi(u)?u:ye(u)?je(e.label)?u.map(Ze).some(f=>zF(f,e.label)):u.map(Ze).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=fo($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=fo($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=$(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},VH=(e,{model:t})=>{function r(){ye(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},bM=(e,t)=>{const{formItem:r}=Gd(),{model:n,isGroup:i,isLimitExceeded:a}=zH(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f}=WH(e,t,{model:n}),{isDisabled:c}=$H({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=FT(e,{formItemContext:r,disableIdGeneration:f,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=HH(e,{model:n,isLimitExceeded:a,hasOwnLabel:f,isDisabled:c,isLabeledByFormItem:h});return VH(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:c,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f,model:n,handleChange:v,onClickRoot:p}},GH=["tabindex","role","aria-checked"],UH=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],YH=["id","aria-hidden","disabled","value","name","tabindex"],qH=ue({name:"ElCheckbox"}),jH=ue({...qH,props:yM,emits:_M,setup(e){const t=e,r=Id(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:f,handleChange:c,onClickRoot:d}=bM(t,r),h=Ne("checkbox"),v=$(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=$(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(X(),Ie(hi(!L(u)&&L(i)?"span":"label"),{class:de(L(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:L(d)},{default:ee(()=>[le("span",{class:de(L(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?sr((X(),Se("input",{key:0,id:L(n),"onUpdate:modelValue":m[0]||(m[0]=y=>St(f)?f.value=y:null),class:de(L(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:L(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>L(c)&&L(c)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,UH)),[[Nc,L(f)]]):sr((X(),Se("input",{key:1,id:L(n),"onUpdate:modelValue":m[4]||(m[4]=y=>St(f)?f.value=y:null),class:de(L(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:L(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>L(c)&&L(c)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,YH)),[[Nc,L(f)]]),le("span",{class:de(L(h).e("inner"))},null,2)],10,GH),L(u)?(X(),Se("span",{key:0,class:de(L(h).e("label"))},[Be(g.$slots,"default"),g.$slots.default?ct("v-if",!0):(X(),Se(wt,{key:0},[kt(Re(g.label),1)],64))],2)):ct("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var KH=Qe(jH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const XH=["name","tabindex","disabled","true-value","false-value"],ZH=["name","tabindex","disabled","value"],QH=ue({name:"ElCheckboxButton"}),JH=ue({...QH,props:yM,emits:_M,setup(e){const t=e,r=Id(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=bM(t,r),u=De(Os,void 0),f=Ne("checkbox"),c=$(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=$(()=>[f.b("button"),f.bm("button",o.value),f.is("disabled",a.value),f.is("checked",i.value),f.is("focus",n.value)]);return(h,v)=>(X(),Se("label",{class:de(L(d))},[h.trueLabel||h.falseLabel?sr((X(),Se("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>St(s)?s.value=p:null),class:de(L(f).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:L(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>L(l)&&L(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,XH)),[[Nc,L(s)]]):sr((X(),Se("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>St(s)?s.value=p:null),class:de(L(f).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:L(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>L(l)&&L(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,ZH)),[[Nc,L(s)]]),h.$slots.default||h.label?(X(),Se("span",{key:2,class:de(L(f).be("button","inner")),style:At(L(i)?L(c):void 0)},[Be(h.$slots,"default",{},()=>[kt(Re(h.label),1)])],6)):ct("v-if",!0)],2))}});var wM=Qe(JH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const ez=at({modelValue:{type:Ae(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Vd,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),tz={[zd]:e=>ye(e),change:e=>ye(e)},rz=ue({name:"ElCheckboxGroup"}),nz=ue({...rz,props:ez,emits:tz,setup(e,{emit:t}){const r=e,n=Ne("checkbox"),{formItem:i}=Gd(),{inputId:a,isLabeledByFormItem:o}=FT(r,{formItemContext:i}),s=async u=>{t(zd,u),await Ht(),t("change",u)},l=$({get(){return r.modelValue},set(u){s(u)}});return Ct(Os,{...YF(Sd(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),Me(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,f)=>{var c;return X(),Ie(hi(u.tag),{id:L(a),class:de(L(n).b("group")),role:"group","aria-label":L(o)?void 0:u.label||"checkbox-group","aria-labelledby":L(o)?(c=L(i))==null?void 0:c.labelId:void 0},{default:ee(()=>[Be(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var xM=Qe(nz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const bs=Er(KH,{CheckboxButton:wM,CheckboxGroup:xM});ia(wM);ia(xM);const iz=at({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Wd,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),az={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},oz=ue({name:"ElTag"}),sz=ue({...oz,props:iz,emits:az,setup(e,{emit:t}){const r=e,n=fo(),i=Ne("tag"),a=$(()=>{const{type:l,hit:u,effect:f,closable:c,round:d}=r;return[i.b(),i.is("closable",c),i.m(l),i.m(n.value),i.m(f),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(X(),Se("span",{key:0,class:de(L(a)),style:At({backgroundColor:l.color}),onClick:s},[le("span",{class:de(L(i).e("content"))},[Be(l.$slots,"default")],2),l.closable?(X(),Ie(L(Cn),{key:0,class:de(L(i).e("close")),onClick:Ep(o,["stop"])},{default:ee(()=>[J(L(zp))]),_:1},8,["class","onClick"])):ct("v-if",!0)],6)):(X(),Ie(Kn,{key:1,name:`${L(i).namespace.value}-zoom-in-center`,appear:""},{default:ee(()=>[le("span",{class:de(L(a)),style:At({backgroundColor:l.color}),onClick:s},[le("span",{class:de(L(i).e("content"))},[Be(l.$slots,"default")],2),l.closable?(X(),Ie(L(Cn),{key:0,class:de(L(i).e("close")),onClick:Ep(o,["stop"])},{default:ee(()=>[J(L(zp))]),_:1},8,["class","onClick"])):ct("v-if",!0)],6)]),_:3},8,["name"]))}});var lz=Qe(sz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const uz=Er(lz),fz=at({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Ae([Number,Object]),default:()=>Wa({})},sm:{type:Ae([Number,Object]),default:()=>Wa({})},md:{type:Ae([Number,Object]),default:()=>Wa({})},lg:{type:Ae([Number,Object]),default:()=>Wa({})},xl:{type:Ae([Number,Object]),default:()=>Wa({})}}),cz=ue({name:"ElCol"}),dz=ue({...cz,props:fz,setup(e){const t=e,{gutter:r}=De(RT,{gutter:$(()=>0)}),n=Ne("col"),i=$(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=$(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const f=t[u];_r(f)&&(u==="span"?o.push(n.b(`${t[u]}`)):f>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{_r(t[u])?o.push(n.b(`${u}-${t[u]}`)):je(t[u])&&Object.entries(t[u]).forEach(([f,c])=>{o.push(f!=="span"?n.b(`${u}-${f}-${c}`):n.b(`${u}-${c}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(X(),Ie(hi(o.tag),{class:de(L(a)),style:At(L(i))},{default:ee(()=>[Be(o.$slots,"default")]),_:3},8,["class","style"]))}});var hz=Qe(dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const SM=Er(hz),vz=ue({name:"ElCollapseTransition"}),pz=ue({...vz,setup(e){const t=Ne("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(X(),Ie(Kn,go({name:L(t).b()},qD(r)),{default:ee(()=>[Be(n.$slots,"default")]),_:3},16,["name"]))}});var pc=Qe(pz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);pc.install=e=>{e.component(pc.name,pc)};const gz=pc,Jp={},mz=at({a11y:{type:Boolean,default:!0},locale:{type:Ae(Object)},size:Vd,button:{type:Ae(Object)},experimentalFeatures:{type:Ae(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Ae(Object)},zIndex:Number,namespace:{type:String,default:"el"}});ue({name:"ElConfigProvider",props:mz,setup(e,{slots:t}){Me(()=>e.message,n=>{Object.assign(Jp,n??{})},{immediate:!0,deep:!0});const r=p5(e);return()=>Be(t,"default",{config:r==null?void 0:r.value})}});const yz=ue({inheritAttrs:!1});function _z(e,t,r,n,i,a){return Be(e.$slots,"default")}var bz=Qe(yz,[["render",_z],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const wz=ue({name:"ElCollectionItem",inheritAttrs:!1});function xz(e,t,r,n,i,a){return Be(e.$slots,"default")}var Sz=Qe(wz,[["render",xz],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const Cz="data-el-collection-item",Tz=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...bz,name:t,setup(){const s=H(null),l=new Map;Ct(n,{itemMap:l,getItems:()=>{const f=L(s);if(!f)return[];const c=Array.from(f.querySelectorAll(`[${Cz}]`));return[...l.values()].sort((h,v)=>c.indexOf(h.ref)-c.indexOf(v.ref))},collectionRef:s})}},o={...Sz,name:r,setup(s,{attrs:l}){const u=H(null),f=De(n,void 0);Ct(i,{collectionItemRef:u}),Et(()=>{const c=L(u);c&&f.itemMap.set(c,{ref:c,...l})}),tr(()=>{const c=L(u);f.itemMap.delete(c)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Fh=at({trigger:du.trigger,effect:{...qr.effect,default:"light"},type:{type:Ae(String)},placement:{type:Ae(String),default:"bottom"},popperOptions:{type:Ae(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Ae([Number,String]),default:0},maxHeight:{type:Ae([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Ae(Object)},teleported:qr.teleported});at({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wi}});at({onKeydown:{type:Ae(Function)}});Lt.down,Lt.pageDown,Lt.home;Lt.up,Lt.pageUp,Lt.end;Tz("Dropdown");const Mz=at({model:Object,rules:{type:Ae(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:{type:String,values:Wd},disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean}),Az={validate:(e,t,r)=>(ye(e)||Ue(e))&&pi(t)&&Ue(r)};function Ez(){const e=H([]),t=$(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const df=(e,t)=>{const r=Lp(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},Pz="ElForm",Lz=ue({name:Pz}),Dz=ue({...Lz,props:Mz,emits:Az,setup(e,{expose:t,emit:r}){const n=e,i=[],a=fo(),o=Ne("form"),s=$(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},f=(y=[])=>{n.model&&df(i,y).forEach(_=>_.resetField())},c=(y=[])=>{df(i,y).forEach(_=>_.clearValidate())},d=$(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=df(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const x of _)try{await x.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!Ee(_);try{const x=await p(y);return x===!0&&(_==null||_(x)),x}catch(x){if(x instanceof Error)throw x;const w=x;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=df(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView())};return Me(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),Ct(ks,ln({...Sd(n),emit:r,resetFields:f,clearValidate:c,validateField:g,addField:l,removeField:u,...Ez()})),t({validate:v,validateField:g,resetFields:f,clearValidate:c,scrollToField:m}),(y,_)=>(X(),Se("form",{class:de(L(s))},[Be(y.$slots,"default")],2))}});var Iz=Qe(Dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function qa(){return qa=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function gc(e,t,r){return Oz()?gc=Reflect.construct.bind():gc=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&hu(u,o.prototype),u},gc.apply(null,arguments)}function kz(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function tg(e){var t=typeof Map=="function"?new Map:void 0;return tg=function(n){if(n===null||!kz(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return gc(n,arguments,eg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),hu(i,n)},tg(e)}var Nz=/%[sdj%]/g,Bz=function(){};typeof process<"u"&&process.env;function rg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function Rr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function Fz(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Bt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||Fz(t)&&typeof e=="string"&&!e)}function $z(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function $b(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,sUe(e)||_r(e)||gi(e),change:e=>Ue(e)||_r(e)||gi(e)},HH=({model:e,isChecked:t})=>{const r=Re(Os,void 0),n=$(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!Vc(s)&&e.value.length>=s&&!t.value||!Vc(l)&&e.value.length<=l&&t.value});return{isDisabled:oy($(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},zH=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Re(Os,void 0),{formItem:s}=Ud(),{emit:l}=dt();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function f(v,p){l("change",u(v),p)}function c(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await zt(),f(t.value,v)))}const h=$(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return Ee(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:c,onClickRoot:d}},WH=e=>{const t=H(!1),{emit:r}=dt(),n=Re(Os,void 0),i=$(()=>Vc(n)===!1),a=H(!1);return{model:$({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&ye(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(Wd,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},VH=(e,t,{model:r})=>{const n=Re(Os,void 0),i=H(!1),a=$(()=>{const u=r.value;return gi(u)?u:ye(u)?Ke(e.label)?u.map(Qe).some(f=>WF(f,e.label)):u.map(Qe).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=fo($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=fo($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=$(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},GH=(e,{model:t})=>{function r(){ye(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},wM=(e,t)=>{const{formItem:r}=Ud(),{model:n,isGroup:i,isLimitExceeded:a}=WH(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f}=VH(e,t,{model:n}),{isDisabled:c}=HH({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=$T(e,{formItemContext:r,disableIdGeneration:f,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=zH(e,{model:n,isLimitExceeded:a,hasOwnLabel:f,isDisabled:c,isLabeledByFormItem:h});return GH(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:c,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f,model:n,handleChange:v,onClickRoot:p}},UH=["tabindex","role","aria-checked"],YH=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],qH=["id","aria-hidden","disabled","value","name","tabindex"],jH=ue({name:"ElCheckbox"}),KH=ue({...jH,props:_M,emits:bM,setup(e){const t=e,r=Rd(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:f,handleChange:c,onClickRoot:d}=wM(t,r),h=Ne("checkbox"),v=$(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=$(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(K(),xe(hi(!L(u)&&L(i)?"span":"label"),{class:de(L(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:L(d)},{default:Z(()=>[se("span",{class:de(L(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?qt((K(),Se("input",{key:0,id:L(n),"onUpdate:modelValue":m[0]||(m[0]=y=>St(f)?f.value=y:null),class:de(L(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:L(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>L(c)&&L(c)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,YH)),[[Bc,L(f)]]):qt((K(),Se("input",{key:1,id:L(n),"onUpdate:modelValue":m[4]||(m[4]=y=>St(f)?f.value=y:null),class:de(L(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:L(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>L(c)&&L(c)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,qH)),[[Bc,L(f)]]),se("span",{class:de(L(h).e("inner"))},null,2)],10,UH),L(u)?(K(),Se("span",{key:0,class:de(L(h).e("label"))},[Be(g.$slots,"default"),g.$slots.default?Ye("v-if",!0):(K(),Se(yt,{key:0},[kt(Ae(g.label),1)],64))],2)):Ye("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var XH=Je(KH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const ZH=["name","tabindex","disabled","true-value","false-value"],QH=["name","tabindex","disabled","value"],JH=ue({name:"ElCheckboxButton"}),ez=ue({...JH,props:_M,emits:bM,setup(e){const t=e,r=Rd(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=wM(t,r),u=Re(Os,void 0),f=Ne("checkbox"),c=$(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=$(()=>[f.b("button"),f.bm("button",o.value),f.is("disabled",a.value),f.is("checked",i.value),f.is("focus",n.value)]);return(h,v)=>(K(),Se("label",{class:de(L(d))},[h.trueLabel||h.falseLabel?qt((K(),Se("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>St(s)?s.value=p:null),class:de(L(f).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:L(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>L(l)&&L(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,ZH)),[[Bc,L(s)]]):qt((K(),Se("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>St(s)?s.value=p:null),class:de(L(f).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:L(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>L(l)&&L(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,QH)),[[Bc,L(s)]]),h.$slots.default||h.label?(K(),Se("span",{key:2,class:de(L(f).be("button","inner")),style:At(L(i)?L(c):void 0)},[Be(h.$slots,"default",{},()=>[kt(Ae(h.label),1)])],6)):Ye("v-if",!0)],2))}});var xM=Je(ez,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const tz=ot({modelValue:{type:Pe(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Gd,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),rz={[Wd]:e=>ye(e),change:e=>ye(e)},nz=ue({name:"ElCheckboxGroup"}),iz=ue({...nz,props:tz,emits:rz,setup(e,{emit:t}){const r=e,n=Ne("checkbox"),{formItem:i}=Ud(),{inputId:a,isLabeledByFormItem:o}=$T(r,{formItemContext:i}),s=async u=>{t(Wd,u),await zt(),t("change",u)},l=$({get(){return r.modelValue},set(u){s(u)}});return Ct(Os,{...qF(Cd(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),Ee(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,f)=>{var c;return K(),xe(hi(u.tag),{id:L(a),class:de(L(n).b("group")),role:"group","aria-label":L(o)?void 0:u.label||"checkbox-group","aria-labelledby":L(o)?(c=L(i))==null?void 0:c.labelId:void 0},{default:Z(()=>[Be(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var SM=Je(iz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const bs=Er(XH,{CheckboxButton:xM,CheckboxGroup:SM});aa(xM);aa(SM);const az=ot({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Vd,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),oz={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},sz=ue({name:"ElTag"}),lz=ue({...sz,props:az,emits:oz,setup(e,{emit:t}){const r=e,n=fo(),i=Ne("tag"),a=$(()=>{const{type:l,hit:u,effect:f,closable:c,round:d}=r;return[i.b(),i.is("closable",c),i.m(l),i.m(n.value),i.m(f),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(K(),Se("span",{key:0,class:de(L(a)),style:At({backgroundColor:l.color}),onClick:s},[se("span",{class:de(L(i).e("content"))},[Be(l.$slots,"default")],2),l.closable?(K(),xe(L(Cn),{key:0,class:de(L(i).e("close")),onClick:Ep(o,["stop"])},{default:Z(()=>[ee(L(zp))]),_:1},8,["class","onClick"])):Ye("v-if",!0)],6)):(K(),xe(Kn,{key:1,name:`${L(i).namespace.value}-zoom-in-center`,appear:""},{default:Z(()=>[se("span",{class:de(L(a)),style:At({backgroundColor:l.color}),onClick:s},[se("span",{class:de(L(i).e("content"))},[Be(l.$slots,"default")],2),l.closable?(K(),xe(L(Cn),{key:0,class:de(L(i).e("close")),onClick:Ep(o,["stop"])},{default:Z(()=>[ee(L(zp))]),_:1},8,["class","onClick"])):Ye("v-if",!0)],6)]),_:3},8,["name"]))}});var uz=Je(lz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const fz=Er(uz),cz=ot({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Pe([Number,Object]),default:()=>Va({})},sm:{type:Pe([Number,Object]),default:()=>Va({})},md:{type:Pe([Number,Object]),default:()=>Va({})},lg:{type:Pe([Number,Object]),default:()=>Va({})},xl:{type:Pe([Number,Object]),default:()=>Va({})}}),dz=ue({name:"ElCol"}),hz=ue({...dz,props:cz,setup(e){const t=e,{gutter:r}=Re(OT,{gutter:$(()=>0)}),n=Ne("col"),i=$(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=$(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const f=t[u];_r(f)&&(u==="span"?o.push(n.b(`${t[u]}`)):f>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{_r(t[u])?o.push(n.b(`${u}-${t[u]}`)):Ke(t[u])&&Object.entries(t[u]).forEach(([f,c])=>{o.push(f!=="span"?n.b(`${u}-${f}-${c}`):n.b(`${u}-${c}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(K(),xe(hi(o.tag),{class:de(L(a)),style:At(L(i))},{default:Z(()=>[Be(o.$slots,"default")]),_:3},8,["class","style"]))}});var vz=Je(hz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const CM=Er(vz),pz=ue({name:"ElCollapseTransition"}),gz=ue({...pz,setup(e){const t=Ne("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(K(),xe(Kn,go({name:L(t).b()},jD(r)),{default:Z(()=>[Be(n.$slots,"default")]),_:3},16,["name"]))}});var gc=Je(gz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);gc.install=e=>{e.component(gc.name,gc)};const mz=gc,Jp={},yz=ot({a11y:{type:Boolean,default:!0},locale:{type:Pe(Object)},size:Gd,button:{type:Pe(Object)},experimentalFeatures:{type:Pe(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Pe(Object)},zIndex:Number,namespace:{type:String,default:"el"}});ue({name:"ElConfigProvider",props:yz,setup(e,{slots:t}){Ee(()=>e.message,n=>{Object.assign(Jp,n??{})},{immediate:!0,deep:!0});const r=g5(e);return()=>Be(t,"default",{config:r==null?void 0:r.value})}});const _z=ue({inheritAttrs:!1});function bz(e,t,r,n,i,a){return Be(e.$slots,"default")}var wz=Je(_z,[["render",bz],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const xz=ue({name:"ElCollectionItem",inheritAttrs:!1});function Sz(e,t,r,n,i,a){return Be(e.$slots,"default")}var Cz=Je(xz,[["render",Sz],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const Tz="data-el-collection-item",Mz=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...wz,name:t,setup(){const s=H(null),l=new Map;Ct(n,{itemMap:l,getItems:()=>{const f=L(s);if(!f)return[];const c=Array.from(f.querySelectorAll(`[${Tz}]`));return[...l.values()].sort((h,v)=>c.indexOf(h.ref)-c.indexOf(v.ref))},collectionRef:s})}},o={...Cz,name:r,setup(s,{attrs:l}){const u=H(null),f=Re(n,void 0);Ct(i,{collectionItemRef:u}),Et(()=>{const c=L(u);c&&f.itemMap.set(c,{ref:c,...l})}),rr(()=>{const c=L(u);f.itemMap.delete(c)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Fh=ot({trigger:du.trigger,effect:{...qr.effect,default:"light"},type:{type:Pe(String)},placement:{type:Pe(String),default:"bottom"},popperOptions:{type:Pe(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Pe([Number,String]),default:0},maxHeight:{type:Pe([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Pe(Object)},teleported:qr.teleported});ot({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Vi}});ot({onKeydown:{type:Pe(Function)}});Lt.down,Lt.pageDown,Lt.home;Lt.up,Lt.pageUp,Lt.end;Mz("Dropdown");const Az=ot({model:Object,rules:{type:Pe(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:{type:String,values:Vd},disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean}),Ez={validate:(e,t,r)=>(ye(e)||Ue(e))&&gi(t)&&Ue(r)};function Pz(){const e=H([]),t=$(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const hf=(e,t)=>{const r=Lp(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},Lz="ElForm",Dz=ue({name:Lz}),Iz=ue({...Dz,props:Az,emits:Ez,setup(e,{expose:t,emit:r}){const n=e,i=[],a=fo(),o=Ne("form"),s=$(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},f=(y=[])=>{n.model&&hf(i,y).forEach(_=>_.resetField())},c=(y=[])=>{hf(i,y).forEach(_=>_.clearValidate())},d=$(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=hf(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const x of _)try{await x.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!Le(_);try{const x=await p(y);return x===!0&&(_==null||_(x)),x}catch(x){if(x instanceof Error)throw x;const w=x;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=hf(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView())};return Ee(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),Ct(ks,ln({...Cd(n),emit:r,resetFields:f,clearValidate:c,validateField:g,addField:l,removeField:u,...Pz()})),t({validate:v,validateField:g,resetFields:f,clearValidate:c,scrollToField:m}),(y,_)=>(K(),Se("form",{class:de(L(s))},[Be(y.$slots,"default")],2))}});var Rz=Je(Iz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function ja(){return ja=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function mc(e,t,r){return kz()?mc=Reflect.construct.bind():mc=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&hu(u,o.prototype),u},mc.apply(null,arguments)}function Nz(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function tg(e){var t=typeof Map=="function"?new Map:void 0;return tg=function(n){if(n===null||!Nz(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return mc(n,arguments,eg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),hu(i,n)},tg(e)}var Bz=/%[sdj%]/g,Fz=function(){};typeof process<"u"&&process.env;function rg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function Rr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function $z(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Bt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||$z(t)&&typeof e=="string"&&!e)}function Hz(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function $b(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,st in e?TL(e,t,{enumerable:!0,config (?:`+n+":){1}(?:(?::"+n+"){0,4}:"+r+"|(?::"+n+`){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4 (?::(?:(?::`+n+"){0,5}:"+r+"|(?::"+n+`){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4 )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1 -`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",f="(?:\\S+(?::\\S*)?@)?",c=l.v4().source,d=l.v6().source,h="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",g="(?::\\d{2,5})?",m='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+f+"(?:localhost|"+c+"|"+d+"|"+h+v+p+")"+g+m;return hf=new RegExp("(?:^"+y+"$)","i"),hf},Vb={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},gl={integer:function(t){return gl.number(t)&&parseInt(t,10)===t},float:function(t){return gl.number(t)&&!gl.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 typeof t=="object"&&!gl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(Vb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(Uz())},hex:function(t){return typeof t=="string"&&!!t.match(Vb.hex)}},Yz=function(t,r,n,i,a){if(t.required&&r===void 0){CM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?gl[s](r)||i.push(Rr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(Rr(a.messages.types[s],t.fullField,t.type))},qz=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=r,c=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?c="number":h?c="string":v&&(c="array"),!c)return!1;v&&(f=r.length),h&&(f=r.replace(u,"_").length),o?f!==t.len&&i.push(Rr(a.messages[c].len,t.fullField,t.len)):s&&!l&&ft.max?i.push(Rr(a.messages[c].max,t.fullField,t.max)):s&&l&&(ft.max)&&i.push(Rr(a.messages[c].range,t.fullField,t.min,t.max))},To="enum",jz=function(t,r,n,i,a){t[To]=Array.isArray(t[To])?t[To]:[],t[To].indexOf(r)===-1&&i.push(Rr(a.messages[To],t.fullField,t[To].join(", ")))},Kz=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:CM,whitespace:Gz,type:Yz,range:qz,enum:jz,pattern:Kz},Xz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),Bt(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},Zz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},Qz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},Jz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},e6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),Bt(r)||Ye.type(t,r,i,o,a)}n(o)},t6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},r6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},n6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},i6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},a6="enum",o6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[a6](t,r,i,o,a)}n(o)},s6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),Bt(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},l6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!Bt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},u6=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},$h=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(Bt(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),Bt(r,o)||Ye.type(t,r,i,s,a)}n(s)},f6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},Il={string:Xz,method:Zz,number:Qz,boolean:Jz,regexp:e6,integer:t6,float:r6,array:n6,object:i6,enum:o6,pattern:s6,date:l6,url:$h,hex:$h,email:$h,required:u6,any:f6};function ng(){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 ig=ng(),Hu=function(){function e(r){this.rules=null,this._messages=ig,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Wb(ng(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function f(p){var g=[],m={};function y(b){if(Array.isArray(b)){var x;g=(x=g).concat.apply(x,b)}else g.push(b)}for(var _=0;_");const i=Ne("form"),a=H(),o=H(0),s=()=>{var f;if((f=a.value)!=null&&f.firstElementChild){const c=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(c))}else return 0},l=(f="update")=>{Ht(()=>{t.default&&e.isAutoWidth&&(f==="update"?o.value=s():f==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return Et(()=>{u()}),tr(()=>{l("remove")}),Pd(()=>u()),Me(o,(f,c)=>{e.updateAll&&(r==null||r.registerLabelWidth(f,c))}),ds($(()=>{var f,c;return(c=(f=a.value)==null?void 0:f.firstElementChild)!=null?c:null}),u),()=>{var f,c;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return J("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(f=t.default)==null?void 0:f.call(t)])}else return J(wt,{ref:a},[(c=t.default)==null?void 0:c.call(t)])}}});const v6=["role","aria-labelledby"],p6=ue({name:"ElFormItem"}),g6=ue({...p6,props:d6,setup(e,{expose:t}){const r=e,n=Id(),i=De(ks,void 0),a=De(uo,void 0),o=fo(void 0,{formItem:!1}),s=Ne("form-item"),l=ly().value,u=H([]),f=H(""),c=JF(f,100),d=H(""),h=H();let v,p=!1;const g=$(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=vs(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=$(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&T)return{};const W=vs(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=$(()=>[s.b(),s.m(o.value),s.is("error",f.value==="error"),s.is("validating",f.value==="validating"),s.is("success",f.value==="success"),s.is("required",O.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=$(()=>pi(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=$(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=$(()=>r.prop?Ue(r.prop)?r.prop:r.prop.join("."):""),w=$(()=>!!(r.label||n.label)),S=$(()=>r.for||u.value.length===1?u.value[0]:void 0),C=$(()=>!S.value&&w.value),T=!!a,E=$(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return uc(W,r.prop).value}),A=$(()=>{const{required:W}=r,Y=[];r.rules&&Y.push(...Lp(r.rules));const se=i==null?void 0:i.rules;if(se&&r.prop){const he=uc(se,r.prop).value;he&&Y.push(...Lp(he))}if(W!==void 0){const he=Y.map((Z,P)=>[Z,P]).filter(([Z])=>Object.keys(Z).includes("required"));if(he.length>0)for(const[Z,P]of he)Z.required!==W&&(Y[P]={...Z,required:W});else Y.push({required:W})}return Y}),M=$(()=>A.value.length>0),D=W=>A.value.filter(se=>!se.trigger||!W?!0:Array.isArray(se.trigger)?se.trigger.includes(W):se.trigger===W).map(({trigger:se,...he})=>he),O=$(()=>A.value.some(W=>W.required)),k=$(()=>{var W;return c.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),F=$(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),j=W=>{f.value=W},B=W=>{var Y,se;const{errors:he,fields:Z}=W;(!he||!Z)&&console.error(W),j("error"),d.value=he?(se=(Y=he==null?void 0:he[0])==null?void 0:Y.message)!=null?se:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},N=()=>{j("success"),i==null||i.emit("validate",r.prop,!0,"")},U=async W=>{const Y=x.value;return new Hu({[Y]:W}).validate({[Y]:E.value},{firstFields:!0}).then(()=>(N(),!0)).catch(he=>(B(he),Promise.reject(he)))},re=async(W,Y)=>{if(p||!r.prop)return!1;const se=Ee(Y);if(!M.value)return Y==null||Y(!1),!1;const he=D(W);return he.length===0?(Y==null||Y(!0),!0):(j("validating"),U(he).then(()=>(Y==null||Y(!0),!0)).catch(Z=>{const{fields:P}=Z;return Y==null||Y(!1,P),se?!1:Promise.reject(P)}))},ae=()=>{j(""),d.value="",p=!1},me=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const Y=uc(W,r.prop);p=!0,Y.value=q_(v),await Ht(),ae(),p=!1},Te=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(Y=>Y!==W)};Me(()=>r.error,W=>{d.value=W||"",j(W?"error":"")},{immediate:!0}),Me(()=>r.validateStatus,W=>j(W||""));const Q=ln({...Sd(r),$el:h,size:o,validateState:f,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Te,removeInputId:V,resetField:me,clearValidate:ae,validate:re});return Ct(uo,Q),Et(()=>{r.prop&&(i==null||i.addField(Q),v=q_(E.value))}),tr(()=>{i==null||i.removeField(Q)}),t({size:o,validateMessage:d,validateState:f,validate:re,clearValidate:ae,resetField:me}),(W,Y)=>{var se;return X(),Se("div",{ref_key:"formItemRef",ref:h,class:de(L(y)),role:L(C)?"group":void 0,"aria-labelledby":L(C)?L(l):void 0},[J(L(h6),{"is-auto-width":L(g).width==="auto","update-all":((se=L(i))==null?void 0:se.labelWidth)==="auto"},{default:ee(()=>[L(w)?(X(),Ie(hi(L(S)?"label":"div"),{key:0,id:L(l),for:L(S),class:de(L(s).e("label")),style:At(L(g))},{default:ee(()=>[Be(W.$slots,"label",{label:L(F)},()=>[kt(Re(L(F)),1)])]),_:3},8,["id","for","class","style"])):ct("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),le("div",{class:de(L(s).e("content")),style:At(L(m))},[Be(W.$slots,"default"),J(Kn,{name:`${L(s).namespace.value}-zoom-in-top`},{default:ee(()=>[L(k)?Be(W.$slots,"error",{key:0,error:d.value},()=>[le("div",{class:de(L(b))},Re(d.value),3)]):ct("v-if",!0)]),_:3},8,["name"])],6)],10,v6)}}});var TM=Qe(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const MM=Er(Iz,{FormItem:TM}),AM=ia(TM);let m6=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Lt.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Lt.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Lt.tab:{lc(t,"mouseleave");break}case Lt.enter:case Lt.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},y6=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new m6(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Lt.down:{lc(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Lt.up:{lc(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Lt.tab:{lc(t.currentTarget,"mouseleave");break}case Lt.enter:case Lt.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},_6=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new y6(n,t)})}};const b6=ue({name:"ElMenuCollapseTransition",setup(){const e=Ne("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Uo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){rs(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Pl(r,e.m("collapse"))?(rs(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Uo(r,e.m("collapse"))):(Uo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),rs(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Uo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function w6(e,t,r,n,i,a){return X(),Ie(Kn,go({mode:"out-in"},e.listeners),{default:ee(()=>[Be(e.$slots,"default")]),_:3},16)}var x6=Qe(b6,[["render",w6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function EM(e,t){const r=$(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:$(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function S6(e){return $(()=>{const r=e.backgroundColor;return r?new uM(r).shade(20).toString():""})}const PM=(e,t)=>{const r=Ne("menu");return $(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":S6(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},C6=at({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wi},expandOpenIcon:{type:Wi},collapseCloseIcon:{type:Wi},collapseOpenIcon:{type:Wi}}),Hh="ElSubMenu";var wy=ue({name:Hh,props:C6,setup(e,{slots:t,expose:r}){const n=dt(),{indexPath:i,parentMenu:a}=EM(n,$(()=>e.index)),o=Ne("menu"),s=Ne("sub-menu"),l=De("rootMenu");l||lo(Hh,"can not inject root menu");const u=De(`subMenu:${a.value.uid}`);u||lo(Hh,"can not inject sub menu");const f=H({}),c=H({});let d;const h=H(!1),v=H(),p=H(null),g=$(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=$(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:CT:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:ny),y=$(()=>u.level===0),_=$(()=>e.popperAppendToBody===void 0?y.value:Boolean(e.popperAppendToBody)),b=$(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=$(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=$(()=>l.openedMenus.includes(e.index)),S=$(()=>{let N=!1;return Object.values(f.value).forEach(U=>{U.active&&(N=!0)}),Object.values(c.value).forEach(U=>{U.active&&(N=!0)}),N}),C=$(()=>l.props.backgroundColor||""),T=$(()=>l.props.activeTextColor||""),E=$(()=>l.props.textColor||""),A=$(()=>l.props.mode),M=ln({index:e.index,indexPath:i,active:S}),D=$(()=>A.value!=="horizontal"?{color:E.value}:{borderBottomColor:S.value?l.props.activeTextColor?T.value:"":"transparent",color:S.value?T.value:E.value}),O=()=>{var N,U,re;return(re=(U=(N=p.value)==null?void 0:N.popperRef)==null?void 0:U.popperInstanceRef)==null?void 0:re.destroy()},k=N=>{N||O()},F=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},j=(N,U=e.showTimeout)=>{var re;N.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=Fp(()=>{l.openMenu(e.index,i.value)},U),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},B=(N=!1)=>{var U,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=Fp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&N&&((U=n.parent)==null?void 0:U.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};Me(()=>l.props.collapse,N=>k(Boolean(N)));{const N=re=>{c.value[re.index]=re},U=re=>{delete c.value[re.index]};Ct(`subMenu:${n.uid}`,{addSubMenu:N,removeSubMenu:U,handleMouseleave:B,mouseInChild:h,level:u.level+1})}return r({opened:w}),Et(()=>{l.addSubMenu(M),u.addSubMenu(M)}),tr(()=>{u.removeSubMenu(M),l.removeSubMenu(M)}),()=>{var N;const U=[(N=t.title)==null?void 0:N.call(t),we(Cn,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>Ue(m.value)?we(n.appContext.components[m.value]):we(m.value)})],re=PM(l.props,u.level+1),ae=l.isMenuPopup?we(qd,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var me;return we("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Te=>j(Te,100),onMouseleave:()=>B(!0),onFocus:Te=>j(Te,100)},[we("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(me=t.default)==null?void 0:me.call(t)])])},default:()=>we("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:F},U)}):we(wt,{},[we("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:F},U),we(gz,{},{default:()=>{var me;return sr(we("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(me=t.default)==null?void 0:me.call(t)]),[[oo,w.value]])}})]);return we("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:j,onMouseleave:()=>B(!0),onFocus:j},[ae])}}});const T6=at({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Ae(Array),default:()=>Wa([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),zh=e=>Array.isArray(e)&&e.every(t=>Ue(t)),M6={close:(e,t)=>Ue(e)&&zh(t),open:(e,t)=>Ue(e)&&zh(t),select:(e,t,r,n)=>Ue(e)&&zh(t)&&je(r)&&(n===void 0||n instanceof Promise)};var A6=ue({name:"ElMenu",props:T6,emits:M6,setup(e,{emit:t,slots:r,expose:n}){const i=dt(),a=i.appContext.config.globalProperties.$router,o=H(),s=Ne("menu"),l=Ne("sub-menu"),u=H(-1),f=H(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),c=H(e.defaultActive),d=H({}),h=H({}),v=$(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const E=c.value&&d.value[c.value];if(!E||e.mode==="horizontal"||e.collapse)return;E.indexPath.forEach(M=>{const D=h.value[M];D&&g(M,D.indexPath)})},g=(E,A)=>{f.value.includes(E)||(e.uniqueOpened&&(f.value=f.value.filter(M=>A.includes(M))),f.value.push(E),t("open",E,A))},m=(E,A)=>{const M=f.value.indexOf(E);M!==-1&&f.value.splice(M,1),t("close",E,A)},y=({index:E,indexPath:A})=>{f.value.includes(E)?m(E,A):g(E,A)},_=E=>{(e.mode==="horizontal"||e.collapse)&&(f.value=[]);const{index:A,indexPath:M}=E;if(!(A===void 0||M===void 0))if(e.router&&a){const D=E.route||A,O=a.push(D).then(k=>(k||(c.value=A),k));t("select",A,M,{index:A,indexPath:M,route:D},O)}else c.value=A,t("select",A,M,{index:A,indexPath:M})},b=E=>{const A=d.value,M=A[E]||c.value&&A[c.value]||A[e.defaultActive];M?c.value=M.index:c.value=E},x=()=>{var E,A;if(!o.value)return-1;const M=Array.from((A=(E=o.value)==null?void 0:E.childNodes)!=null?A:[]).filter(N=>N.nodeName!=="#text"||N.nodeValue),D=64,O=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),k=Number.parseInt(getComputedStyle(o.value).paddingRight,10),F=o.value.clientWidth-O-k;let j=0,B=0;return M.forEach((N,U)=>{j+=N.offsetWidth||0,j<=F-D&&(B=U+1)}),B===M.length?-1:B},w=(E,A=33.34)=>{let M;return()=>{M&&clearTimeout(M),M=setTimeout(()=>{E()},A)}};let S=!0;const C=()=>{const E=()=>{u.value=-1,Ht(()=>{u.value=x()})};S?E():w(E)(),S=!1};Me(()=>e.defaultActive,E=>{d.value[E]||(c.value=""),b(E)}),Me(()=>e.collapse,E=>{E&&(f.value=[])}),Me(d.value,p);let T;ts(()=>{e.mode==="horizontal"&&e.ellipsis?T=ds(o,C).stop:T==null||T()});{const E=O=>{h.value[O.index]=O},A=O=>{delete h.value[O.index]};Ct("rootMenu",ln({props:e,openedMenus:f,items:d,subMenus:h,activeIndex:c,isMenuPopup:v,addMenuItem:O=>{d.value[O.index]=O},removeMenuItem:O=>{delete d.value[O.index]},addSubMenu:E,removeSubMenu:A,openMenu:g,closeMenu:m,handleMenuItemClick:_,handleSubMenuClick:y})),Ct(`subMenu:${i.uid}`,{addSubMenu:E,removeSubMenu:A,mouseInChild:H(!1),level:0})}return Et(()=>{e.mode==="horizontal"&&new _6(i.vnode.el,s.namespace.value)}),n({open:A=>{const{indexPath:M}=h.value[A];M.forEach(D=>g(D,M))},close:m,handleResize:C}),()=>{var E,A;let M=(A=(E=r.default)==null?void 0:E.call(r))!=null?A:[];const D=[];if(e.mode==="horizontal"&&o.value){const F=fc(M),j=u.value===-1?F:F.slice(0,u.value),B=u.value===-1?[]:F.slice(u.value);B!=null&&B.length&&e.ellipsis&&(M=j,D.push(we(wy,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>we(Cn,{class:l.e("icon-more")},{default:()=>we(e5)}),default:()=>B})))}const O=PM(e,0),k=we("ul",{key:String(e.collapse),role:"menubar",ref:o,style:O.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...M,...D]);return e.collapseTransition&&e.mode==="vertical"?we(x6,()=>k):k}}});const E6=at({index:{type:Ae([String,null]),default:null},route:{type:Ae([String,Object])},disabled:Boolean}),P6={click:e=>Ue(e.index)&&Array.isArray(e.indexPath)},Wh="ElMenuItem",L6=ue({name:Wh,components:{ElTooltip:qd},props:E6,emits:P6,setup(e,{emit:t}){const r=dt(),n=De("rootMenu"),i=Ne("menu"),a=Ne("menu-item");n||lo(Wh,"can not inject root menu");const{parentMenu:o,indexPath:s}=EM(r,wn(e,"index")),l=De(`subMenu:${o.value.uid}`);l||lo(Wh,"can not inject sub menu");const u=$(()=>e.index===n.activeIndex),f=ln({index:e.index,indexPath:s,active:u}),c=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",f))};return Et(()=>{l.addSubMenu(f),n.addMenuItem(f)}),tr(()=>{l.removeSubMenu(f),n.removeMenuItem(f)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:c}}});function D6(e,t,r,n,i,a){const o=gr("el-tooltip");return X(),Se("li",{class:de([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(X(),Ie(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:ee(()=>[Be(e.$slots,"title")]),default:ee(()=>[le("div",{class:de(e.nsMenu.be("tooltip","trigger"))},[Be(e.$slots,"default")],2)]),_:3},8,["effect"])):(X(),Se(wt,{key:1},[Be(e.$slots,"default"),Be(e.$slots,"title")],64))],2)}var LM=Qe(L6,[["render",D6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const I6={title:String},R6="ElMenuItemGroup",O6=ue({name:R6,props:I6,setup(){return{ns:Ne("menu-item-group")}}});function k6(e,t,r,n,i,a){return X(),Se("li",{class:de(e.ns.b())},[le("div",{class:de(e.ns.e("title"))},[e.$slots.title?Be(e.$slots,"title",{key:1}):(X(),Se(wt,{key:0},[kt(Re(e.title),1)],64))],2),le("ul",null,[Be(e.$slots,"default")])],2)}var DM=Qe(O6,[["render",k6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const N6=Er(A6,{MenuItem:LM,MenuItemGroup:DM,SubMenu:wy}),B6=ia(LM);ia(DM);const F6=ia(wy),$6=at({trigger:du.trigger,placement:Fh.placement,disabled:du.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Fh.popperOptions,tabindex:Fh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),H6={"update:visible":e=>pi(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},z6="onUpdate:visible",W6=ue({name:"ElPopover"}),V6=ue({...W6,props:$6,emits:H6,setup(e,{expose:t,emit:r}){const n=e,i=$(()=>n[z6]),a=Ne("popover"),o=H(),s=$(()=>{var g;return(g=L(o))==null?void 0:g.popperRef}),l=$(()=>[{width:vs(n.width)},n.popperStyle]),u=$(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),f=$(()=>n.transition===`${a.namespace.value}-fade-in-linear`),c=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:c}),(g,m)=>(X(),Ie(L(qd),go({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":L(u),"popper-style":L(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":L(f),"onUpdate:visible":L(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:ee(()=>[g.title?(X(),Se("div",{key:0,class:de(L(a).e("title")),role:"title"},Re(g.title),3)):ct("v-if",!0),Be(g.$slots,"default",{},()=>[kt(Re(g.content),1)])]),default:ee(()=>[g.$slots.reference?Be(g.$slots,"reference",{key:0}):ct("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var G6=Qe(V6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const Ub=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var U6={mounted(e,t){Ub(e,t)},updated(e,t){Ub(e,t)}};const Y6="popover",q6=v5(U6,Y6),j6=Er(G6,{directive:q6}),K6=["start","center","end","space-around","space-between","space-evenly"],X6=["top","middle","bottom"],Z6=at({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:K6,default:"start"},align:{type:String,values:X6,default:"top"}}),Q6=ue({name:"ElRow"}),J6=ue({...Q6,props:Z6,setup(e){const t=e,r=Ne("row"),n=$(()=>t.gutter);Ct(RT,{gutter:n});const i=$(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=$(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(X(),Ie(hi(o.tag),{class:de(L(a)),style:At(L(i))},{default:ee(()=>[Be(o.$slots,"default")]),_:3},8,["class","style"]))}});var e8=Qe(J6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const IM=Er(e8);/*! +`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",f="(?:\\S+(?::\\S*)?@)?",c=l.v4().source,d=l.v6().source,h="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",g="(?::\\d{2,5})?",m='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+f+"(?:localhost|"+c+"|"+d+"|"+h+v+p+")"+g+m;return vf=new RegExp("(?:^"+y+"$)","i"),vf},Vb={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},gl={integer:function(t){return gl.number(t)&&parseInt(t,10)===t},float:function(t){return gl.number(t)&&!gl.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 typeof t=="object"&&!gl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(Vb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(Yz())},hex:function(t){return typeof t=="string"&&!!t.match(Vb.hex)}},qz=function(t,r,n,i,a){if(t.required&&r===void 0){TM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?gl[s](r)||i.push(Rr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(Rr(a.messages.types[s],t.fullField,t.type))},jz=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=r,c=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?c="number":h?c="string":v&&(c="array"),!c)return!1;v&&(f=r.length),h&&(f=r.replace(u,"_").length),o?f!==t.len&&i.push(Rr(a.messages[c].len,t.fullField,t.len)):s&&!l&&ft.max?i.push(Rr(a.messages[c].max,t.fullField,t.max)):s&&l&&(ft.max)&&i.push(Rr(a.messages[c].range,t.fullField,t.min,t.max))},To="enum",Kz=function(t,r,n,i,a){t[To]=Array.isArray(t[To])?t[To]:[],t[To].indexOf(r)===-1&&i.push(Rr(a.messages[To],t.fullField,t[To].join(", ")))},Xz=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},qe={required:TM,whitespace:Uz,type:qz,range:jz,enum:Kz,pattern:Xz},Zz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"string")&&!t.required)return n();qe.required(t,r,i,o,a,"string"),Bt(r,"string")||(qe.type(t,r,i,o,a),qe.range(t,r,i,o,a),qe.pattern(t,r,i,o,a),t.whitespace===!0&&qe.whitespace(t,r,i,o,a))}n(o)},Qz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),r!==void 0&&qe.type(t,r,i,o,a)}n(o)},Jz=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),r!==void 0&&(qe.type(t,r,i,o,a),qe.range(t,r,i,o,a))}n(o)},e6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),r!==void 0&&qe.type(t,r,i,o,a)}n(o)},t6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),Bt(r)||qe.type(t,r,i,o,a)}n(o)},r6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),r!==void 0&&(qe.type(t,r,i,o,a),qe.range(t,r,i,o,a))}n(o)},n6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),r!==void 0&&(qe.type(t,r,i,o,a),qe.range(t,r,i,o,a))}n(o)},i6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();qe.required(t,r,i,o,a,"array"),r!=null&&(qe.type(t,r,i,o,a),qe.range(t,r,i,o,a))}n(o)},a6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),r!==void 0&&qe.type(t,r,i,o,a)}n(o)},o6="enum",s6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a),r!==void 0&&qe[o6](t,r,i,o,a)}n(o)},l6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"string")&&!t.required)return n();qe.required(t,r,i,o,a),Bt(r,"string")||qe.pattern(t,r,i,o,a)}n(o)},u6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r,"date")&&!t.required)return n();if(qe.required(t,r,i,o,a),!Bt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),qe.type(t,l,i,o,a),l&&qe.range(t,l.getTime(),i,o,a)}}n(o)},f6=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;qe.required(t,r,i,o,a,s),n(o)},$h=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(Bt(r,o)&&!t.required)return n();qe.required(t,r,i,s,a,o),Bt(r,o)||qe.type(t,r,i,s,a)}n(s)},c6=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Bt(r)&&!t.required)return n();qe.required(t,r,i,o,a)}n(o)},Il={string:Zz,method:Qz,number:Jz,boolean:e6,regexp:t6,integer:r6,float:n6,array:i6,object:a6,enum:s6,pattern:l6,date:u6,url:$h,hex:$h,email:$h,required:f6,any:c6};function ng(){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 ig=ng(),zu=function(){function e(r){this.rules=null,this._messages=ig,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Wb(ng(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function f(p){var g=[],m={};function y(b){if(Array.isArray(b)){var x;g=(x=g).concat.apply(x,b)}else g.push(b)}for(var _=0;_");const i=Ne("form"),a=H(),o=H(0),s=()=>{var f;if((f=a.value)!=null&&f.firstElementChild){const c=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(c))}else return 0},l=(f="update")=>{zt(()=>{t.default&&e.isAutoWidth&&(f==="update"?o.value=s():f==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return Et(()=>{u()}),rr(()=>{l("remove")}),Ld(()=>u()),Ee(o,(f,c)=>{e.updateAll&&(r==null||r.registerLabelWidth(f,c))}),ds($(()=>{var f,c;return(c=(f=a.value)==null?void 0:f.firstElementChild)!=null?c:null}),u),()=>{var f,c;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return ee("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(f=t.default)==null?void 0:f.call(t)])}else return ee(yt,{ref:a},[(c=t.default)==null?void 0:c.call(t)])}}});const p6=["role","aria-labelledby"],g6=ue({name:"ElFormItem"}),m6=ue({...g6,props:h6,setup(e,{expose:t}){const r=e,n=Rd(),i=Re(ks,void 0),a=Re(uo,void 0),o=fo(void 0,{formItem:!1}),s=Ne("form-item"),l=ly().value,u=H([]),f=H(""),c=e$(f,100),d=H(""),h=H();let v,p=!1;const g=$(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=vs(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=$(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&T)return{};const W=vs(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=$(()=>[s.b(),s.m(o.value),s.is("error",f.value==="error"),s.is("validating",f.value==="validating"),s.is("success",f.value==="success"),s.is("required",O.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=$(()=>gi(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=$(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=$(()=>r.prop?Ue(r.prop)?r.prop:r.prop.join("."):""),w=$(()=>!!(r.label||n.label)),S=$(()=>r.for||u.value.length===1?u.value[0]:void 0),C=$(()=>!S.value&&w.value),T=!!a,E=$(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return fc(W,r.prop).value}),A=$(()=>{const{required:W}=r,Y=[];r.rules&&Y.push(...Lp(r.rules));const le=i==null?void 0:i.rules;if(le&&r.prop){const he=fc(le,r.prop).value;he&&Y.push(...Lp(he))}if(W!==void 0){const he=Y.map((Q,P)=>[Q,P]).filter(([Q])=>Object.keys(Q).includes("required"));if(he.length>0)for(const[Q,P]of he)Q.required!==W&&(Y[P]={...Q,required:W});else Y.push({required:W})}return Y}),M=$(()=>A.value.length>0),D=W=>A.value.filter(le=>!le.trigger||!W?!0:Array.isArray(le.trigger)?le.trigger.includes(W):le.trigger===W).map(({trigger:le,...he})=>he),O=$(()=>A.value.some(W=>W.required)),k=$(()=>{var W;return c.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),F=$(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),j=W=>{f.value=W},B=W=>{var Y,le;const{errors:he,fields:Q}=W;(!he||!Q)&&console.error(W),j("error"),d.value=he?(le=(Y=he==null?void 0:he[0])==null?void 0:Y.message)!=null?le:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},N=()=>{j("success"),i==null||i.emit("validate",r.prop,!0,"")},U=async W=>{const Y=x.value;return new zu({[Y]:W}).validate({[Y]:E.value},{firstFields:!0}).then(()=>(N(),!0)).catch(he=>(B(he),Promise.reject(he)))},re=async(W,Y)=>{if(p||!r.prop)return!1;const le=Le(Y);if(!M.value)return Y==null||Y(!1),!1;const he=D(W);return he.length===0?(Y==null||Y(!0),!0):(j("validating"),U(he).then(()=>(Y==null||Y(!0),!0)).catch(Q=>{const{fields:P}=Q;return Y==null||Y(!1,P),le?!1:Promise.reject(P)}))},ae=()=>{j(""),d.value="",p=!1},me=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const Y=fc(W,r.prop);p=!0,Y.value=q_(v),await zt(),ae(),p=!1},Me=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(Y=>Y!==W)};Ee(()=>r.error,W=>{d.value=W||"",j(W?"error":"")},{immediate:!0}),Ee(()=>r.validateStatus,W=>j(W||""));const J=ln({...Cd(r),$el:h,size:o,validateState:f,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Me,removeInputId:V,resetField:me,clearValidate:ae,validate:re});return Ct(uo,J),Et(()=>{r.prop&&(i==null||i.addField(J),v=q_(E.value))}),rr(()=>{i==null||i.removeField(J)}),t({size:o,validateMessage:d,validateState:f,validate:re,clearValidate:ae,resetField:me}),(W,Y)=>{var le;return K(),Se("div",{ref_key:"formItemRef",ref:h,class:de(L(y)),role:L(C)?"group":void 0,"aria-labelledby":L(C)?L(l):void 0},[ee(L(v6),{"is-auto-width":L(g).width==="auto","update-all":((le=L(i))==null?void 0:le.labelWidth)==="auto"},{default:Z(()=>[L(w)?(K(),xe(hi(L(S)?"label":"div"),{key:0,id:L(l),for:L(S),class:de(L(s).e("label")),style:At(L(g))},{default:Z(()=>[Be(W.$slots,"label",{label:L(F)},()=>[kt(Ae(L(F)),1)])]),_:3},8,["id","for","class","style"])):Ye("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),se("div",{class:de(L(s).e("content")),style:At(L(m))},[Be(W.$slots,"default"),ee(Kn,{name:`${L(s).namespace.value}-zoom-in-top`},{default:Z(()=>[L(k)?Be(W.$slots,"error",{key:0,error:d.value},()=>[se("div",{class:de(L(b))},Ae(d.value),3)]):Ye("v-if",!0)]),_:3},8,["name"])],6)],10,p6)}}});var MM=Je(m6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const AM=Er(Rz,{FormItem:MM}),EM=aa(MM);let y6=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Lt.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Lt.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Lt.tab:{uc(t,"mouseleave");break}case Lt.enter:case Lt.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},_6=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new y6(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Lt.down:{uc(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Lt.up:{uc(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Lt.tab:{uc(t.currentTarget,"mouseleave");break}case Lt.enter:case Lt.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},b6=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new _6(n,t)})}};const w6=ue({name:"ElMenuCollapseTransition",setup(){const e=Ne("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Uo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){rs(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Pl(r,e.m("collapse"))?(rs(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Uo(r,e.m("collapse"))):(Uo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),rs(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Uo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function x6(e,t,r,n,i,a){return K(),xe(Kn,go({mode:"out-in"},e.listeners),{default:Z(()=>[Be(e.$slots,"default")]),_:3},16)}var S6=Je(w6,[["render",x6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function PM(e,t){const r=$(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:$(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function C6(e){return $(()=>{const r=e.backgroundColor;return r?new fM(r).shade(20).toString():""})}const LM=(e,t)=>{const r=Ne("menu");return $(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":C6(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},T6=ot({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Vi},expandOpenIcon:{type:Vi},collapseCloseIcon:{type:Vi},collapseOpenIcon:{type:Vi}}),Hh="ElSubMenu";var wy=ue({name:Hh,props:T6,setup(e,{slots:t,expose:r}){const n=dt(),{indexPath:i,parentMenu:a}=PM(n,$(()=>e.index)),o=Ne("menu"),s=Ne("sub-menu"),l=Re("rootMenu");l||lo(Hh,"can not inject root menu");const u=Re(`subMenu:${a.value.uid}`);u||lo(Hh,"can not inject sub menu");const f=H({}),c=H({});let d;const h=H(!1),v=H(),p=H(null),g=$(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=$(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:TT:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:ny),y=$(()=>u.level===0),_=$(()=>e.popperAppendToBody===void 0?y.value:Boolean(e.popperAppendToBody)),b=$(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=$(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=$(()=>l.openedMenus.includes(e.index)),S=$(()=>{let N=!1;return Object.values(f.value).forEach(U=>{U.active&&(N=!0)}),Object.values(c.value).forEach(U=>{U.active&&(N=!0)}),N}),C=$(()=>l.props.backgroundColor||""),T=$(()=>l.props.activeTextColor||""),E=$(()=>l.props.textColor||""),A=$(()=>l.props.mode),M=ln({index:e.index,indexPath:i,active:S}),D=$(()=>A.value!=="horizontal"?{color:E.value}:{borderBottomColor:S.value?l.props.activeTextColor?T.value:"":"transparent",color:S.value?T.value:E.value}),O=()=>{var N,U,re;return(re=(U=(N=p.value)==null?void 0:N.popperRef)==null?void 0:U.popperInstanceRef)==null?void 0:re.destroy()},k=N=>{N||O()},F=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},j=(N,U=e.showTimeout)=>{var re;N.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=Fp(()=>{l.openMenu(e.index,i.value)},U),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},B=(N=!1)=>{var U,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=Fp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&N&&((U=n.parent)==null?void 0:U.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};Ee(()=>l.props.collapse,N=>k(Boolean(N)));{const N=re=>{c.value[re.index]=re},U=re=>{delete c.value[re.index]};Ct(`subMenu:${n.uid}`,{addSubMenu:N,removeSubMenu:U,handleMouseleave:B,mouseInChild:h,level:u.level+1})}return r({opened:w}),Et(()=>{l.addSubMenu(M),u.addSubMenu(M)}),rr(()=>{u.removeSubMenu(M),l.removeSubMenu(M)}),()=>{var N;const U=[(N=t.title)==null?void 0:N.call(t),we(Cn,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>Ue(m.value)?we(n.appContext.components[m.value]):we(m.value)})],re=LM(l.props,u.level+1),ae=l.isMenuPopup?we(Hu,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var me;return we("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Me=>j(Me,100),onMouseleave:()=>B(!0),onFocus:Me=>j(Me,100)},[we("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(me=t.default)==null?void 0:me.call(t)])])},default:()=>we("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:F},U)}):we(yt,{},[we("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:F},U),we(mz,{},{default:()=>{var me;return qt(we("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(me=t.default)==null?void 0:me.call(t)]),[[pi,w.value]])}})]);return we("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:j,onMouseleave:()=>B(!0),onFocus:j},[ae])}}});const M6=ot({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Pe(Array),default:()=>Va([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),zh=e=>Array.isArray(e)&&e.every(t=>Ue(t)),A6={close:(e,t)=>Ue(e)&&zh(t),open:(e,t)=>Ue(e)&&zh(t),select:(e,t,r,n)=>Ue(e)&&zh(t)&&Ke(r)&&(n===void 0||n instanceof Promise)};var E6=ue({name:"ElMenu",props:M6,emits:A6,setup(e,{emit:t,slots:r,expose:n}){const i=dt(),a=i.appContext.config.globalProperties.$router,o=H(),s=Ne("menu"),l=Ne("sub-menu"),u=H(-1),f=H(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),c=H(e.defaultActive),d=H({}),h=H({}),v=$(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const E=c.value&&d.value[c.value];if(!E||e.mode==="horizontal"||e.collapse)return;E.indexPath.forEach(M=>{const D=h.value[M];D&&g(M,D.indexPath)})},g=(E,A)=>{f.value.includes(E)||(e.uniqueOpened&&(f.value=f.value.filter(M=>A.includes(M))),f.value.push(E),t("open",E,A))},m=(E,A)=>{const M=f.value.indexOf(E);M!==-1&&f.value.splice(M,1),t("close",E,A)},y=({index:E,indexPath:A})=>{f.value.includes(E)?m(E,A):g(E,A)},_=E=>{(e.mode==="horizontal"||e.collapse)&&(f.value=[]);const{index:A,indexPath:M}=E;if(!(A===void 0||M===void 0))if(e.router&&a){const D=E.route||A,O=a.push(D).then(k=>(k||(c.value=A),k));t("select",A,M,{index:A,indexPath:M,route:D},O)}else c.value=A,t("select",A,M,{index:A,indexPath:M})},b=E=>{const A=d.value,M=A[E]||c.value&&A[c.value]||A[e.defaultActive];M?c.value=M.index:c.value=E},x=()=>{var E,A;if(!o.value)return-1;const M=Array.from((A=(E=o.value)==null?void 0:E.childNodes)!=null?A:[]).filter(N=>N.nodeName!=="#text"||N.nodeValue),D=64,O=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),k=Number.parseInt(getComputedStyle(o.value).paddingRight,10),F=o.value.clientWidth-O-k;let j=0,B=0;return M.forEach((N,U)=>{j+=N.offsetWidth||0,j<=F-D&&(B=U+1)}),B===M.length?-1:B},w=(E,A=33.34)=>{let M;return()=>{M&&clearTimeout(M),M=setTimeout(()=>{E()},A)}};let S=!0;const C=()=>{const E=()=>{u.value=-1,zt(()=>{u.value=x()})};S?E():w(E)(),S=!1};Ee(()=>e.defaultActive,E=>{d.value[E]||(c.value=""),b(E)}),Ee(()=>e.collapse,E=>{E&&(f.value=[])}),Ee(d.value,p);let T;ts(()=>{e.mode==="horizontal"&&e.ellipsis?T=ds(o,C).stop:T==null||T()});{const E=O=>{h.value[O.index]=O},A=O=>{delete h.value[O.index]};Ct("rootMenu",ln({props:e,openedMenus:f,items:d,subMenus:h,activeIndex:c,isMenuPopup:v,addMenuItem:O=>{d.value[O.index]=O},removeMenuItem:O=>{delete d.value[O.index]},addSubMenu:E,removeSubMenu:A,openMenu:g,closeMenu:m,handleMenuItemClick:_,handleSubMenuClick:y})),Ct(`subMenu:${i.uid}`,{addSubMenu:E,removeSubMenu:A,mouseInChild:H(!1),level:0})}return Et(()=>{e.mode==="horizontal"&&new b6(i.vnode.el,s.namespace.value)}),n({open:A=>{const{indexPath:M}=h.value[A];M.forEach(D=>g(D,M))},close:m,handleResize:C}),()=>{var E,A;let M=(A=(E=r.default)==null?void 0:E.call(r))!=null?A:[];const D=[];if(e.mode==="horizontal"&&o.value){const F=cc(M),j=u.value===-1?F:F.slice(0,u.value),B=u.value===-1?[]:F.slice(u.value);B!=null&&B.length&&e.ellipsis&&(M=j,D.push(we(wy,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>we(Cn,{class:l.e("icon-more")},{default:()=>we(t5)}),default:()=>B})))}const O=LM(e,0),k=we("ul",{key:String(e.collapse),role:"menubar",ref:o,style:O.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...M,...D]);return e.collapseTransition&&e.mode==="vertical"?we(S6,()=>k):k}}});const P6=ot({index:{type:Pe([String,null]),default:null},route:{type:Pe([String,Object])},disabled:Boolean}),L6={click:e=>Ue(e.index)&&Array.isArray(e.indexPath)},Wh="ElMenuItem",D6=ue({name:Wh,components:{ElTooltip:Hu},props:P6,emits:L6,setup(e,{emit:t}){const r=dt(),n=Re("rootMenu"),i=Ne("menu"),a=Ne("menu-item");n||lo(Wh,"can not inject root menu");const{parentMenu:o,indexPath:s}=PM(r,wn(e,"index")),l=Re(`subMenu:${o.value.uid}`);l||lo(Wh,"can not inject sub menu");const u=$(()=>e.index===n.activeIndex),f=ln({index:e.index,indexPath:s,active:u}),c=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",f))};return Et(()=>{l.addSubMenu(f),n.addMenuItem(f)}),rr(()=>{l.removeSubMenu(f),n.removeMenuItem(f)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:c}}});function I6(e,t,r,n,i,a){const o=gr("el-tooltip");return K(),Se("li",{class:de([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(K(),xe(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:Z(()=>[Be(e.$slots,"title")]),default:Z(()=>[se("div",{class:de(e.nsMenu.be("tooltip","trigger"))},[Be(e.$slots,"default")],2)]),_:3},8,["effect"])):(K(),Se(yt,{key:1},[Be(e.$slots,"default"),Be(e.$slots,"title")],64))],2)}var DM=Je(D6,[["render",I6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const R6={title:String},O6="ElMenuItemGroup",k6=ue({name:O6,props:R6,setup(){return{ns:Ne("menu-item-group")}}});function N6(e,t,r,n,i,a){return K(),Se("li",{class:de(e.ns.b())},[se("div",{class:de(e.ns.e("title"))},[e.$slots.title?Be(e.$slots,"title",{key:1}):(K(),Se(yt,{key:0},[kt(Ae(e.title),1)],64))],2),se("ul",null,[Be(e.$slots,"default")])],2)}var IM=Je(k6,[["render",N6],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const B6=Er(E6,{MenuItem:DM,MenuItemGroup:IM,SubMenu:wy}),F6=aa(DM);aa(IM);const $6=aa(wy),H6=ot({trigger:du.trigger,placement:Fh.placement,disabled:du.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Fh.popperOptions,tabindex:Fh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),z6={"update:visible":e=>gi(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},W6="onUpdate:visible",V6=ue({name:"ElPopover"}),G6=ue({...V6,props:H6,emits:z6,setup(e,{expose:t,emit:r}){const n=e,i=$(()=>n[W6]),a=Ne("popover"),o=H(),s=$(()=>{var g;return(g=L(o))==null?void 0:g.popperRef}),l=$(()=>[{width:vs(n.width)},n.popperStyle]),u=$(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),f=$(()=>n.transition===`${a.namespace.value}-fade-in-linear`),c=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:c}),(g,m)=>(K(),xe(L(Hu),go({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":L(u),"popper-style":L(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":L(f),"onUpdate:visible":L(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:Z(()=>[g.title?(K(),Se("div",{key:0,class:de(L(a).e("title")),role:"title"},Ae(g.title),3)):Ye("v-if",!0),Be(g.$slots,"default",{},()=>[kt(Ae(g.content),1)])]),default:Z(()=>[g.$slots.reference?Be(g.$slots,"reference",{key:0}):Ye("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var U6=Je(G6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const Ub=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var Y6={mounted(e,t){Ub(e,t)},updated(e,t){Ub(e,t)}};const q6="popover",j6=p5(Y6,q6),K6=Er(U6,{directive:j6}),X6=["start","center","end","space-around","space-between","space-evenly"],Z6=["top","middle","bottom"],Q6=ot({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:X6,default:"start"},align:{type:String,values:Z6,default:"top"}}),J6=ue({name:"ElRow"}),e8=ue({...J6,props:Q6,setup(e){const t=e,r=Ne("row"),n=$(()=>t.gutter);Ct(OT,{gutter:n});const i=$(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=$(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(K(),xe(hi(o.tag),{class:de(L(a)),style:At(L(i))},{default:Z(()=>[Be(o.$slots,"default")]),_:3},8,["class","style"]))}});var t8=Je(e8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const RM=Er(t8);/*! * escape-html * Copyright(c) 2012-2013 TJ Holowaychuk * Copyright(c) 2015 Andreas Lubbe * Copyright(c) 2015 Tiancheng "Timothy" Gu * MIT Licensed - */var t8=/["'&<>]/,r8=n8;function n8(e){var t=""+e,r=t8.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?lu(s,u):u(s,l,e))):(t!=="$key"&&je(s)&&"$value"in s&&(s=s.$value),[je(s)?lu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,f=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},RM=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},a8=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},ja=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Ut(n,t)]={row:n,index:i}}),r};function o8(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(ze(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function xy(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function OM(e){return e===""||e!==void 0&&(e=xy(e),Number.isNaN(e)&&(e=80)),e}function s8(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function l8(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Rl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,ye(t.children)&&t.children.forEach(l=>{Rl(e,l,r??!a)})};return pi(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function u8(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const f=u[r];i(f)||a(u,f,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ai;function f8(e,t,r,n){n=wT({enterable:!0,showArrow:!0},n);const{nextZIndex:i}=yy(),a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=n.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",n.popperClass||""].join(" "),r=r8(r),m.innerHTML=r,m.style.zIndex=String(i()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){f&&f.update()}ai==null||ai(),ai=()=>{try{f&&f.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ai),ai=void 0}catch{}};let f=null,c=u,d=ai;n.enterable&&({onOpen:c,onClose:d}=JT({showAfter:n.showAfter,hideAfter:n.hideAfter,open:u,close:ai}));const h=s();h.onmouseenter=c,h.onmouseleave=d;const v=[];if(n.offset&&v.push({name:"offset",options:{offset:[0,n.offset]}}),n.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=n.popperOptions||{};return f=ZT(t,h,{placement:n.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",c),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ai),f}function kM(e){return e.children?$F(e.children,kM):[e]}function qb(e,t){return e+t.colSpan}const NM=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=kM(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(qb,0),a=i+l.reduce(qb,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Sy=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=NM(t,r,n,i);if(s){const f=s==="left";o.push(`${e}-fixed-column--${s}`),f&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!f&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function jb(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Cy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=NM(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(jb,0):s.right=u.slice(o+1).reverse().reduce(jb,0),s},ws=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function c8(e){const t=dt(),r=H(!1),n=H([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const f=ja(n.value,u);n.value=l.reduce((c,d)=>{const h=Ut(d,u);return f[h]&&c.push(d),c},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Rl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],f=e.rowKey.value,c=ja(u,f);n.value=l.reduce((d,h)=>{const v=c[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!ja(n.value,u)[Ut(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function d8(e){const t=dt(),r=H(null),n=H(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:f,rowKey:c}=e;let d=null;c.value&&(d=(L(f)||[]).find(h=>Ut(h,c.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const f=n.value;if(u&&u!==f){n.value=u,t.emit("current-change",n.value,f);return}!u&&f&&(n.value=null,t.emit("current-change",null,f))},updateCurrentRowData:()=>{const u=e.rowKey.value,f=e.data.value||[],c=n.value;if(!f.includes(c)&&c){if(u){const d=Ut(c,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,c)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function h8(e){const t=H([]),r=H({}),n=H(16),i=H(!1),a=H({}),o=H("hasChildren"),s=H("children"),l=dt(),u=$(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return c(m)}),f=$(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Ut(w,m);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),c=m=>{const y=e.rowKey.value,_={};return u8(m,(b,x,w)=>{const S=Ut(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Ut(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=f.value,w=Object.keys(b),S={};if(w.length){const C=L(r),T=[],E=(M,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||M!=null&&M.expanded);{const O=y||t.value&&t.value.includes(D);return!!(M!=null&&M.expanded||O)}};w.forEach(M=>{const D=C[M],O={...b[M]};if(O.expanded=E(D,M),O.lazy){const{loaded:k=!1,loading:F=!1}=D||{};O.loaded=!!k,O.loading=!!F,T.push(M)}S[M]=O});const A=Object.keys(x);i.value&&A.length&&T.length&&A.forEach(M=>{const D=C[M],O=x[M].children;if(T.includes(M)){if(S[M].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[M].children=O}else{const{loaded:k=!1,loading:F=!1}=D||{};S[M]={lazy:!0,loaded:!!k,loading:!!F,expanded:E(D,M),children:O,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};Me(()=>t.value,()=>{d(!0)}),Me(()=>u.value,()=>{d()}),Me(()=>f.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Ut(m,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Ut(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:c,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const v8=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:i8(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},mc=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,mc(r.children)):t.push(r)}),t};function p8(){var e;const t=dt(),{size:r}=Sd((e=t.proxy)==null?void 0:e.$props),n=H(null),i=H([]),a=H([]),o=H(!1),s=H([]),l=H([]),u=H([]),f=H([]),c=H([]),d=H([]),h=H([]),v=H([]),p=H(0),g=H(0),m=H(0),y=H(!1),_=H([]),b=H(!1),x=H(!1),w=H(null),S=H({}),C=H(null),T=H(null),E=H(null),A=H(null),M=H(null);Me(i,()=>t.state&&F(!1),{deep:!0});const D=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},O=fe=>{var xe;(xe=fe.children)==null||xe.forEach($e=>{$e.fixed=fe.fixed,O($e)})},k=()=>{s.value.forEach(Ke=>{O(Ke)}),f.value=s.value.filter(Ke=>Ke.fixed===!0||Ke.fixed==="left"),c.value=s.value.filter(Ke=>Ke.fixed==="right"),f.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,f.value.unshift(s.value[0]));const fe=s.value.filter(Ke=>!Ke.fixed);l.value=[].concat(f.value).concat(fe).concat(c.value);const xe=mc(fe),$e=mc(f.value),He=mc(c.value);p.value=xe.length,g.value=$e.length,m.value=He.length,u.value=[].concat($e).concat(xe).concat(He),o.value=f.value.length>0||c.value.length>0},F=(fe,xe=!1)=>{fe&&k(),xe?t.state.doLayout():t.state.debouncedUpdateLayout()},j=fe=>_.value.includes(fe),B=()=>{y.value=!1,_.value.length&&(_.value=[],t.emit("selection-change",[]))},N=()=>{let fe;if(n.value){fe=[];const xe=ja(_.value,n.value),$e=ja(i.value,n.value);for(const He in xe)ze(xe,He)&&!$e[He]&&fe.push(xe[He].row)}else fe=_.value.filter(xe=>!i.value.includes(xe));if(fe.length){const xe=_.value.filter($e=>!fe.includes($e));_.value=xe,t.emit("selection-change",xe.slice())}},U=()=>(_.value||[]).slice(),re=(fe,xe=void 0,$e=!0)=>{if(Rl(_.value,fe,xe)){const Ke=(_.value||[]).slice();$e&&t.emit("select",Ke,fe),t.emit("selection-change",Ke)}},ae=()=>{var fe,xe;const $e=x.value?!y.value:!(y.value||_.value.length);y.value=$e;let He=!1,Ke=0;const Ot=(xe=(fe=t==null?void 0:t.store)==null?void 0:fe.states)==null?void 0:xe.rowKey.value;i.value.forEach((ht,zt)=>{const Hr=zt+Ke;w.value?w.value.call(null,ht,Hr)&&Rl(_.value,ht,$e)&&(He=!0):Rl(_.value,ht,$e)&&(He=!0),Ke+=V(Ut(ht,Ot))}),He&&t.emit("selection-change",_.value?_.value.slice():[]),t.emit("select-all",_.value)},me=()=>{const fe=ja(_.value,n.value);i.value.forEach(xe=>{const $e=Ut(xe,n.value),He=fe[$e];He&&(_.value[He.index]=xe)})},Te=()=>{var fe,xe,$e;if(((fe=i.value)==null?void 0:fe.length)===0){y.value=!1;return}let He;n.value&&(He=ja(_.value,n.value));const Ke=function(Hr){return He?!!He[Ut(Hr,n.value)]:_.value.includes(Hr)};let Ot=!0,ht=0,zt=0;for(let Hr=0,wL=(i.value||[]).length;Hr{var xe;if(!t||!t.store)return 0;const{treeData:$e}=t.store.states;let He=0;const Ke=(xe=$e.value[fe])==null?void 0:xe.children;return Ke&&(He+=Ke.length,Ke.forEach(Ot=>{He+=V(Ot)})),He},Q=(fe,xe)=>{Array.isArray(fe)||(fe=[fe]);const $e={};return fe.forEach(He=>{S.value[He.id]=xe,$e[He.columnKey||He.id]=xe}),$e},W=(fe,xe,$e)=>{T.value&&T.value!==fe&&(T.value.order=null),T.value=fe,E.value=xe,A.value=$e},Y=()=>{let fe=L(a);Object.keys(S.value).forEach(xe=>{const $e=S.value[xe];if(!$e||$e.length===0)return;const He=RM({columns:u.value},xe);He&&He.filterMethod&&(fe=fe.filter(Ke=>$e.some(Ot=>He.filterMethod.call(null,Ot,Ke,He))))}),C.value=fe},se=()=>{i.value=v8(C.value,{sortingColumn:T.value,sortProp:E.value,sortOrder:A.value})},he=(fe=void 0)=>{fe&&fe.filter||Y(),se()},Z=fe=>{const{tableHeaderRef:xe}=t.refs;if(!xe)return;const $e=Object.assign({},xe.filterPanels),He=Object.keys($e);if(He.length)if(typeof fe=="string"&&(fe=[fe]),Array.isArray(fe)){const Ke=fe.map(Ot=>a8({columns:u.value},Ot));He.forEach(Ot=>{const ht=Ke.find(zt=>zt.id===Ot);ht&&(ht.filteredValue=[])}),t.store.commit("filterChange",{column:Ke,values:[],silent:!0,multi:!0})}else He.forEach(Ke=>{const Ot=u.value.find(ht=>ht.id===Ke);Ot&&(Ot.filteredValue=[])}),S.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},P=()=>{T.value&&(W(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:I,toggleRowExpansion:z,updateExpandRows:G,states:q,isRowExpanded:ne}=c8({data:i,rowKey:n}),{updateTreeExpandKeys:ce,toggleTreeExpansion:te,updateTreeData:ie,loadOrToggle:K,states:_e}=h8({data:i,rowKey:n}),{updateCurrentRowData:ve,updateCurrentRow:be,setCurrentRowKey:Le,states:Fe}=d8({data:i,rowKey:n});return{assertRowKey:D,updateColumns:k,scheduleLayout:F,isSelected:j,clearSelection:B,cleanSelection:N,getSelectionRows:U,toggleRowSelection:re,_toggleAllSelection:ae,toggleAllSelection:null,updateSelectionByRowKey:me,updateAllSelected:Te,updateFilters:Q,updateCurrentRow:be,updateSort:W,execFilter:Y,execSort:se,execQuery:he,clearFilter:Z,clearSort:P,toggleRowExpansion:z,setExpandRowKeysAdapter:fe=>{I(fe),ce(fe)},setCurrentRowKey:Le,toggleRowExpansionAdapter:(fe,xe)=>{u.value.some(({type:He})=>He==="expand")?z(fe,xe):te(fe,xe)},isRowExpanded:ne,updateExpandRows:G,updateCurrentRowData:ve,loadOrToggle:K,updateTreeData:ie,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:f,rightFixedColumns:c,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,leafColumnsLength:p,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:m,isAllSelected:y,selection:_,reserveSelection:b,selectOnIndeterminate:x,selectable:w,filters:S,filteredData:C,sortingColumn:T,sortProp:E,sortOrder:A,hoverRow:M,...q,..._e,...Fe}}}function ag(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=ag(r.children,t)),r)})}function BM(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&BM(t.children)}),e.sort((t,r)=>t.no-r.no)}function g8(){const e=dt(),t=p8();return{ns:Ne("table"),...t,mutations:{setData(o,s){const l=L(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),L(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l){const u=L(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=ag(u,l)):(u.push(s),f=u),BM(f),o._columns.value=f,s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(o,s,l){const u=L(o._columns)||[];if(l)l.children.splice(l.children.findIndex(f=>f.id===s.id),1),Ht(()=>{var f;((f=l.children)==null?void 0:f.length)===0&&delete l.children}),o._columns.value=ag(u,l);else{const f=u.indexOf(s);f>-1&&(u.splice(f,1),o._columns.value=u)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:f}=s;if(l){const c=L(o.columns).find(d=>d.property===l);c&&(c.order=u,e.store.updateSort(c,l,u),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:f}=o,c=L(l),d=L(u),h=L(f);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:c,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:f}=s,c=e.store.updateFilters(l,u);e.store.execQuery(),f||e.emit("filter-change",c),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Ht(()=>e.layout.updateScrollY.apply(e.layout))}}}const Ol={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function m8(e,t){if(!e)throw new Error("Table is required.");const r=g8();return r.toggleAllSelection=Hc(r._toggleAllSelection,10),Object.keys(Ol).forEach(n=>{FM($M(t,n),n,r)}),y8(r,t),r}function y8(e,t){Object.keys(Ol).forEach(r=>{Me(()=>$M(t,r),n=>{FM(n,r,e)})})}function FM(e,t,r){let n=e,i=Ol[t];typeof Ol[t]=="object"&&(i=i.key,n=n||Ol[t].default),r.states[i].value=n}function $M(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class _8{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=H(null),this.scrollX=H(!1),this.scrollY=H(!1),this.bodyWidth=H(null),this.fixedWidth=H(null),this.rightFixedWidth=H(null),this.gutterWidth=0;for(const r in t)ze(t,r)&&(St(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&r){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Rt)return;const n=this.table.vnode.el;if(t=s8(t),this.height.value=Number(t),!n&&(t||t===0))return Ht(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Rt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),f=l/u;let c=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*f);c+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-c}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:b8}=bs,w8=ue({name:"ElTableFilterPanel",components:{ElCheckbox:bs,ElCheckboxGroup:b8,ElScrollbar:tM,ElTooltip:qd,ElIcon:Cn,ArrowDown:CT,ArrowUp:E$},directives:{ClickOutside:DH},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=dt(),{t:r}=$T(),n=Ne("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=H(!1),o=H(null),s=$(()=>e.column&&e.column.filters),l=$({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=$({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),f=$(()=>e.column?e.column.filterMultiple:!0),c=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};Me(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=$(()=>{var b,x;return(x=(b=o.value)==null?void 0:b.popperRef)==null?void 0:x.contentRef});return{tooltipVisible:a,multiple:f,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:c,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),x8={key:0},S8=["disabled"],C8=["label","onClick"];function T8(e,t,r,n,i,a){const o=gr("el-checkbox"),s=gr("el-checkbox-group"),l=gr("el-scrollbar"),u=gr("arrow-up"),f=gr("arrow-down"),c=gr("el-icon"),d=gr("el-tooltip"),h=Rm("click-outside");return X(),Ie(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:ee(()=>[e.multiple?(X(),Se("div",x8,[le("div",{class:de(e.ns.e("content"))},[J(l,{"wrap-class":e.ns.e("wrap")},{default:ee(()=>[J(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:de(e.ns.e("checkbox-group"))},{default:ee(()=>[(X(!0),Se(wt,null,K0(e.filters,v=>(X(),Ie(o,{key:v.value,label:v.value},{default:ee(()=>[kt(Re(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),le("div",{class:de(e.ns.e("bottom"))},[le("button",{class:de({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Re(e.t("el.table.confirmFilter")),11,S8),le("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Re(e.t("el.table.resetFilter")),1)],2)])):(X(),Se("ul",{key:1,class:de(e.ns.e("list"))},[le("li",{class:de([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Re(e.t("el.table.clearFilter")),3),(X(!0),Se(wt,null,K0(e.filters,v=>(X(),Se("li",{key:v.value,class:de([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Re(v.text),11,C8))),128))],2))]),default:ee(()=>[sr((X(),Se("span",{class:de([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[J(c,null,{default:ee(()=>[e.column.filterOpened?(X(),Ie(u,{key:0})):(X(),Ie(f,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var M8=Qe(w8,[["render",T8],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function HM(e){const t=dt();Ed(()=>{r.value.addObserver(t)}),Et(()=>{n(r.value),i(r.value)}),Pd(()=>{n(r.value),i(r.value)}),Iu(()=>{r.value.removeObserver(t)});const r=$(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(f=>{u[f.id]=f});for(let f=0,c=s.length;f{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let f=0,c=l.length;f{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=H(null),l=H(!1),u=H({}),f=(p,g)=>{if(Rt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Uo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=m==null?void 0:m.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=E=>{const A=E.clientX-u.value.startMouseLeft,M=u.value.startLeft+A;S.style.left=`${Math.max(w,M)}px`},T=()=>{if(l.value){const{startColumnLeft:E,startLeft:A}=u.value,D=Number.parseInt(S.style.left,10)-E;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-E,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",T),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{rs(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",T)}},c=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Pl(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Pl(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Rt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Pl(b,"noclick")){rs(b,"noclick");return}if(!g.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=g,w=g.property),_?S=g.order=_:S=g.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function E8(e){const t=De(Zn),r=Ne("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,f)=>{var c;let d=(c=t==null?void 0:t.props.headerCellStyle)!=null?c:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:f}));const h=Cy(l,f.fixed,e.store,u);return ws(h,"left"),ws(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,f)=>{const c=Sy(r.b(),l,f.fixed,e.store,u),d=[f.id,f.order,f.headerAlign,f.className,f.labelClassName,...c];f.children||d.push("is-leaf"),f.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:f})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const zM=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,zM(r.children))):t.push(r)}),t},P8=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function L8(e){const t=De(Zn),r=$(()=>P8(e.store.states.originColumns.value));return{isGroup:$(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var D8=ue({name:"ElTableHeader",components:{ElCheckbox:bs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=dt(),n=De(Zn),i=Ne("table"),a=H({}),{onColumnsChange:o,onScrollableChange:s}=HM(n);Et(async()=>{await Ht(),await Ht();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=A8(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=E8(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=L8(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:f,handleSortClick:c,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return we("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>we("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),we("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>f(b,y),onMouseout:d},[we("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&we("span",{onClick:b=>c(b,y),class:"caret-wrapper"},[we("i",{onClick:b=>c(b,y,"ascending"),class:"sort-caret ascending"}),we("i",{onClick:b=>c(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&we(M8,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function I8(e){const t=De(Zn),r=H(""),n=H(we("div")),i=(d,h,v)=>{var p;const g=t,m=Vh(d);let y;const _=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;m&&(y=Yb({columns:e.store.states.columns.value},m,_),y&&(g==null||g.emit(`cell-${v}`,h,y,m,d))),g==null||g.emit(`row-${v}`,h,y,d)},a=(d,h)=>{i(d,h,"dblclick")},o=(d,h)=>{e.store.commit("setCurrentRow",h),i(d,h,"click")},s=(d,h)=>{i(d,h,"contextmenu")},l=Hc(d=>{e.store.commit("setHoverRow",d)},30),u=Hc(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(d,h,v)=>{var p;const g=t,m=Vh(d),y=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;if(m){const S=Yb({columns:e.store.states.columns.value},m,y),C=g.hoverState={cell:m,column:S,row:h};g==null||g.emit("cell-mouse-enter",C.row,C.column,C.cell,d)}if(!v)return;const _=d.target.querySelector(".cell");if(!(Pl(_,`${y}-tooltip`)&&_.childNodes.length))return;const b=document.createRange();b.setStart(_,0),b.setEnd(_,_.childNodes.length);const x=Math.round(b.getBoundingClientRect().width),w=(Number.parseInt(ib(_,"paddingLeft"),10)||0)+(Number.parseInt(ib(_,"paddingRight"),10)||0);(x+w>_.offsetWidth||_.scrollWidth>_.offsetWidth)&&f8(t==null?void 0:t.refs.tableWrapper,m,m.innerText||m.textContent,v)},handleCellMouseLeave:d=>{if(!Vh(d))return;const v=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",v==null?void 0:v.row,v==null?void 0:v.column,v==null?void 0:v.cell,d)},tooltipContent:r,tooltipTrigger:n}}function R8(e){const t=De(Zn),r=Ne("table");return{getRowStyle:(u,f)=>{const c=t==null?void 0:t.props.rowStyle;return typeof c=="function"?c.call(null,{row:u,rowIndex:f}):c||null},getRowClass:(u,f)=>{const c=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&c.push("current-row"),e.stripe&&f%2===1&&c.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?c.push(d):typeof d=="function"&&c.push(d.call(null,{row:u,rowIndex:f})),c},getCellStyle:(u,f,c,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:f,row:c,column:d}));const p=Cy(f,e==null?void 0:e.fixed,e.store);return ws(p,"left"),ws(p,"right"),Object.assign({},v,p)},getCellClass:(u,f,c,d,h)=>{const v=Sy(r.b(),f,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:f,row:c,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,f,c,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:f,rowIndex:c,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,f,c)=>{if(f<1)return u[c].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(c,c+f);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function O8(e){const t=De(Zn),r=Ne("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:f,tooltipTrigger:c}=I8(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=R8(e),y=$(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const T=t.props.rowKey;return T?Ut(S,T):C},b=(S,C,T,E=!1)=>{const{tooltipEffect:A,tooltipOptions:M,store:D}=e,{indent:O,columns:k}=D.states,F=h(S,C);let j=!0;return T&&(F.push(r.em("row",`level-${T.level}`)),j=T.display),we("tr",{style:[j?null:{display:"none"},d(S,C)],class:F,key:_(S,C),onDblclick:N=>n(N,S),onClick:N=>i(N,S),onContextmenu:N=>a(N,S),onMouseenter:()=>o(C),onMouseleave:s},k.value.map((N,U)=>{const{rowspan:re,colspan:ae}=g(S,N,C,U);if(!re||!ae)return null;const me={...N};me.realWidth=m(k.value,ae,U);const Te={store:e.store,_self:e.context||t,column:me,row:S,$index:C,cellIndex:U,expanded:E};U===y.value&&T&&(Te.treeNode={indent:T.level*O.value,level:T.level},typeof T.expanded=="boolean"&&(Te.treeNode.expanded=T.expanded,"loading"in T&&(Te.treeNode.loading=T.loading),"noLazyChildren"in T&&(Te.treeNode.noLazyChildren=T.noLazyChildren)));const V=`${C},${U}`,Q=me.columnKey||me.rawColumnKey||"",W=x(U,N,Te),Y=N.showOverflowTooltip&&wT({effect:A},M,N.showOverflowTooltip);return we("td",{style:v(C,U,S,N),class:p(C,U,S,N,ae-1),key:`${Q}${V}`,rowspan:re,colspan:ae,onMouseenter:se=>l(se,S,Y),onMouseleave:u},[W])}))},x=(S,C,T)=>C.renderCell(T);return{wrappedRowRender:(S,C)=>{const T=e.store,{isRowExpanded:E,assertRowKey:A}=T,{treeData:M,lazyTreeNodeMap:D,childrenColumnName:O,rowKey:k}=T.states,F=T.states.columns.value;if(F.some(({type:B})=>B==="expand")){const B=E(S),N=b(S,C,void 0,B),U=t.renderExpanded;return B?U?[[N,we("tr",{key:`expanded-row__${N.key}`},[we("td",{colspan:F.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[U({row:S,$index:C,store:T,expanded:B})])])]]:(console.error("[Element Error]renderExpanded is required."),N):[[N]]}else if(Object.keys(M.value).length){A();const B=Ut(S,k.value);let N=M.value[B],U=null;N&&(U={expanded:N.expanded,level:N.level,display:!0},typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(U.noLazyChildren=!(N.children&&N.children.length)),U.loading=N.loading));const re=[b(S,C,U)];if(N){let ae=0;const me=(V,Q)=>{V&&V.length&&Q&&V.forEach(W=>{const Y={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},se=Ut(W,k.value);if(se==null)throw new Error("For nested data item, row-key is required.");if(N={...M.value[se]},N&&(Y.expanded=N.expanded,N.level=N.level||Y.level,N.display=!!(N.expanded&&Y.display),typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(Y.noLazyChildren=!(N.children&&N.children.length)),Y.loading=N.loading)),ae++,re.push(b(W,C+ae,Y)),N){const he=D.value[se]||W[O.value];me(he,N)}})};N.display=!0;const Te=D.value[B]||S[O.value];me(Te,N)}return re}else return b(S,C,void 0)},tooltipContent:f,tooltipTrigger:c}}const k8={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var N8=ue({name:"ElTableBody",props:k8,setup(e){const t=dt(),r=De(Zn),n=Ne("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=O8(e),{onColumnsChange:s,onScrollableChange:l}=HM(r);return Me(e.store.states.hoverRow,(u,f)=>{if(!e.store.states.isComplex.value||!Rt)return;let c=window.requestAnimationFrame;c||(c=d=>window.setTimeout(d,16)),c(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[f],p=h[u];v&&rs(v,"hover-row"),p&&Uo(p,"hover-row")})}),Iu(()=>{var u;(u=ai)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return we("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function Ty(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return we("colgroup",{},r.map(i=>we("col",n(i))))}Ty.props=["columns","tableLayout"];function B8(){const e=De(Zn),t=e==null?void 0:e.store,r=$(()=>t.states.fixedLeafColumnsLength.value),n=$(()=>t.states.rightFixedColumns.value.length),i=$(()=>t.states.columns.value.length),a=$(()=>t.states.fixedColumns.value.length),o=$(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function F8(e){const{columns:t}=B8(),r=Ne("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Sy(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Cy(o,a.fixed,e.store);return ws(s,"left"),ws(s,"right"),s},columns:t}}var $8=ue({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=F8(e);return{ns:Ne("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const f=o.map(v=>Number(v[l.property])),c=[];let d=!0;f.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];c.push(p?p.length:0)}});const h=Math.max.apply(null,c);d?s[u]="":s[u]=f.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),we("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[Ty({columns:e}),we("tbody",[we("tr",{},[...e.map((l,u)=>we("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[we("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function H8(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,c)=>{e.toggleRowSelection(f,c,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,c)=>{e.toggleRowExpansionAdapter(f,c)},clearSort:()=>{e.clearSort()},sort:(f,c)=>{e.commit("sort",{prop:f,order:c})}}}function z8(e,t,r,n){const i=H(!1),a=H(null),o=H(!1),s=B=>{o.value=B},l=H({width:null,height:null,headerHeight:null}),u=H(!1),f={display:"inline-block",verticalAlign:"middle"},c=H(),d=H(0),h=H(0),v=H(0),p=H(0);ts(()=>{t.setHeight(e.height)}),ts(()=>{t.setMaxHeight(e.maxHeight)}),Me(()=>[e.currentRowKey,r.states.rowKey],([B,N])=>{!L(N)||!L(B)||r.setCurrentRowKey(`${B}`)},{immediate:!0}),Me(()=>e.data,B=>{n.store.commit("setData",B)},{immediate:!0,deep:!0}),ts(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(B,N)=>{const{pixelX:U,pixelY:re}=N;Math.abs(U)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=N.pixelX/5)},y=$(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=$(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};Et(async()=>{await Ht(),r.updateColumns(),T(),requestAnimationFrame(b);const B=n.vnode.el,N=n.refs.headerWrapper;e.flexible&&B&&B.parentElement&&(B.parentElement.style.minWidth="0"),l.value={width:c.value=B.offsetWidth,height:B.offsetHeight,headerHeight:e.showHeader&&N?N.offsetHeight:null},r.states.columns.value.forEach(U=>{U.filteredValue&&U.filteredValue.length&&n.store.commit("filterChange",{column:U,values:U.filteredValue,silent:!0})}),n.$ready=!0});const x=(B,N)=>{if(!B)return;const U=Array.from(B.classList).filter(re=>!re.startsWith("is-scrolling-"));U.push(t.scrollX.value?N:"is-scrolling-none"),B.className=U.join(" ")},w=B=>{const{tableWrapper:N}=n.refs;x(N,B)},S=B=>{const{tableWrapper:N}=n.refs;return!!(N&&N.classList.contains(B))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";S(V)||w(V);return}const B=n.refs.scrollBarRef.wrapRef;if(!B)return;const{scrollLeft:N,offsetWidth:U,scrollWidth:re}=B,{headerWrapper:ae,footerWrapper:me}=n.refs;ae&&(ae.scrollLeft=N),me&&(me.scrollLeft=N);const Te=re-U-1;N>=Te?w("is-scrolling-right"):w(N===0?"is-scrolling-left":"is-scrolling-middle")},T=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&$n(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?ds(n.vnode.el,E):$n(window,"resize",E),ds(n.refs.bodyWrapper,()=>{var B,N;E(),(N=(B=n.refs)==null?void 0:B.scrollBarRef)==null||N.update()}))},E=()=>{var B,N,U;const re=n.vnode.el;if(!n.$ready||!re)return;let ae=!1;const{width:me,height:Te,headerHeight:V}=l.value,Q=c.value=re.offsetWidth;me!==Q&&(ae=!0);const W=re.offsetHeight;(e.height||y.value)&&Te!==W&&(ae=!0);const Y=e.tableLayout==="fixed"?n.refs.headerWrapper:(B=n.refs.tableHeaderRef)==null?void 0:B.$el;e.showHeader&&(Y==null?void 0:Y.offsetHeight)!==V&&(ae=!0),d.value=((N=n.refs.tableWrapper)==null?void 0:N.scrollHeight)||0,v.value=(Y==null?void 0:Y.scrollHeight)||0,p.value=((U=n.refs.footerWrapper)==null?void 0:U.offsetHeight)||0,h.value=d.value-v.value-p.value,ae&&(l.value={width:Q,height:W,headerHeight:e.showHeader&&(Y==null?void 0:Y.offsetHeight)||0},b())},A=fo(),M=$(()=>{const{bodyWidth:B,scrollY:N,gutterWidth:U}=t;return B.value?`${B.value-(N.value?U:0)}px`:""}),D=$(()=>e.maxHeight?"fixed":e.tableLayout),O=$(()=>{if(e.data&&e.data.length)return null;let B="100%";e.height&&h.value&&(B=`${h.value}px`);const N=c.value;return{width:N?`${N}px`:"",height:B}}),k=$(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),F=$(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const B=e.maxHeight;if(d.value>=Number(B))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:O,handleFixedMousewheel:(B,N)=>{const U=n.refs.bodyWrapper;if(Math.abs(N.spinY)>0){const re=U.scrollTop;N.pixelY<0&&re!==0&&B.preventDefault(),N.pixelY>0&&U.scrollHeight-U.clientHeight>re&&B.preventDefault(),U.scrollTop+=Math.ceil(N.pixelY/5)}else U.scrollLeft+=Math.ceil(N.pixelX/5)},resizeProxyVisible:o,bodyWidth:M,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:f,tableInnerStyle:k,scrollbarStyle:F}}var W8={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const V8=()=>{const e=H(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&_r(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let G8=1;const U8=ue({name:"ElTable",directives:{Mousewheel:FH},components:{TableHeader:D8,TableBody:N8,TableFooter:$8,ElScrollbar:tM,hColgroup:Ty},props:W8,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=$T(),r=Ne("table"),n=dt();Ct(Zn,n);const i=m8(n,e);n.store=i;const a=new _8({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=$(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=H8(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:T,bodyWidth:E,resizeState:A,doLayout:M,tableBodyStyles:D,tableLayout:O,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:j}=z8(e,a,i,n),{scrollBarRef:B,scrollTo:N,setScrollLeft:U,setScrollTop:re}=V8(),ae=Hc(M,50),me=`${r.namespace.value}-table_${G8++}`;n.tableId=me,n.state={isGroup:_,resizeState:A,doLayout:M,debouncedUpdateLayout:ae};const Te=$(()=>e.sumText||t("el.table.sumText")),V=$(()=>e.emptyText||t("el.table.emptyText"));return{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:me,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:T,resizeState:A,isGroup:_,bodyWidth:E,tableBodyStyles:D,emptyBlockStyle:S,debouncedUpdateLayout:ae,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:M,sort:p,t,setDragVisible:y,context:n,computedSumText:Te,computedEmptyText:V,tableLayout:O,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:j,scrollBarRef:B,scrollTo:N,setScrollLeft:U,setScrollTop:re}}}),Y8=["data-prefix"],q8={ref:"hiddenColumns",class:"hidden-columns"};function j8(e,t,r,n,i,a){const o=gr("hColgroup"),s=gr("table-header"),l=gr("table-body"),u=gr("el-scrollbar"),f=gr("table-footer"),c=Rm("mousewheel");return X(),Se("div",{ref:"tableWrapper",class:de([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:At(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=d=>e.handleMouseLeave())},[le("div",{class:de(e.ns.e("inner-wrapper")),style:At(e.tableInnerStyle)},[le("div",q8,[Be(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?sr((X(),Se("div",{key:0,ref:"headerWrapper",class:de(e.ns.e("header-wrapper"))},[le("table",{ref:"tableHeader",class:de(e.ns.e("header")),style:At(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[J(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),J(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[c,e.handleHeaderFooterMousewheel]]):ct("v-if",!0),le("div",{ref:"bodyWrapper",class:de(e.ns.e("body-wrapper"))},[J(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:ee(()=>[le("table",{ref:"tableBody",class:de(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:At({width:e.bodyWidth,tableLayout:e.tableLayout})},[J(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(X(),Ie(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):ct("v-if",!0),J(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(X(),Se("div",{key:0,ref:"emptyBlock",style:At(e.emptyBlockStyle),class:de(e.ns.e("empty-block"))},[le("span",{class:de(e.ns.e("empty-text"))},[Be(e.$slots,"empty",{},()=>[kt(Re(e.computedEmptyText),1)])],2)],6)):ct("v-if",!0),e.$slots.append?(X(),Se("div",{key:1,ref:"appendWrapper",class:de(e.ns.e("append-wrapper"))},[Be(e.$slots,"append")],2)):ct("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?sr((X(),Se("div",{key:1,ref:"footerWrapper",class:de(e.ns.e("footer-wrapper"))},[J(f,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:At(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[oo,!e.isEmpty],[c,e.handleHeaderFooterMousewheel]]):ct("v-if",!0),e.border||e.isGroup?(X(),Se("div",{key:2,class:de(e.ns.e("border-left-patch"))},null,2)):ct("v-if",!0)],6),sr(le("div",{ref:"resizeProxy",class:de(e.ns.e("column-resize-proxy"))},null,2),[[oo,e.resizeProxyVisible]])],46,Y8)}var K8=Qe(U8,[["render",j8],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const X8={selection:"table-column--selection",expand:"table__expand-column"},Z8={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},Q8=e=>X8[e]||"",J8={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return we(bs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return we(bs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),we("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),we("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[we(Cn,null,{default:()=>[we(ny)]})]})},sortable:!1,resizable:!1}};function eW({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&uc(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function tW({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[we("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(we("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=ny;t.loading&&(l=AT),a.push(we("div",{class:s,onClick:o},{default:()=>[we(Cn,{class:{[i.is("loading")]:t.loading}},{default:()=>[we(l)]})]}))}else a.push(we("span",{class:i.e("placeholder")}));return a}function Kb(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function rW(e,t){const r=dt();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=Kb(a,o);Object.keys(s).forEach(l=>{const u=o[l];ze(t,u)&&Me(()=>t[u],f=>{let c=f;u==="width"&&l==="realWidth"&&(c=xy(f)),u==="minWidth"&&l==="realMinWidth"&&(c=OM(f)),r.columnConfig.value[u]=c,r.columnConfig.value[l]=c;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=Kb(a,o);Object.keys(s).forEach(l=>{const u=o[l];ze(t,u)&&Me(()=>t[u],f=>{r.columnConfig.value[l]=f})})}}}function nW(e,t,r){const n=dt(),i=H(""),a=H(!1),o=H(),s=H(),l=Ne("table");ts(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),ts(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=$(()=>{let _=n.vnode.vParent||n.parent;for(;_&&!_.tableId&&!_.columnId;)_=_.vnode.vParent||_.parent;return _}),f=$(()=>{const{store:_}=n.parent;if(!_)return!1;const{treeData:b}=_.states,x=b.value;return x&&Object.keys(x).length>0}),c=H(xy(e.width)),d=H(OM(e.minWidth)),h=_=>(c.value&&(_.width=c.value),d.value&&(_.minWidth=d.value),!c.value&&d.value&&(_.width=void 0),_.minWidth||(_.minWidth=80),_.realWidth=Number(_.width===void 0?_.minWidth:_.width),_),v=_=>{const b=_.type,x=J8[b]||{};Object.keys(x).forEach(S=>{const C=x[S];S!=="className"&&C!==void 0&&(_[S]=C)});const w=Q8(b);if(w){const S=`${L(l.namespace)}-${w}`;_.className=_.className?`${_.className} ${S}`:S}return _},p=_=>{Array.isArray(_)?_.forEach(x=>b(x)):b(_);function b(x){var w;((w=x==null?void 0:x.type)==null?void 0:w.name)==="ElTableColumn"&&(x.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:_=>{e.renderHeader||_.type!=="selection"&&(_.renderHeader=x=>{n.columnConfig.value.label;const w=t.header;return w?w(x):_.label});let b=_.renderCell;return _.type==="expand"?(_.renderCell=x=>we("div",{class:"cell"},[b(x)]),r.value.renderExpanded=x=>t.default?t.default(x):t.default):(b=b||eW,_.renderCell=x=>{let w=null;if(t.default){const E=t.default(x);w=E.some(A=>A.type!==br)?E:b(x)}else w=b(x);const S=f.value&&x.cellIndex===0&&x.column.type!=="selection",C=tW(x,S),T={class:"cell",style:{}};return _.showOverflowTooltip&&(T.class=`${T.class} ${L(l.namespace)}-tooltip`,T.style={width:`${(x.column.realWidth||Number(x.column.width))-1}px`}),p(w),we("div",T,[C,w])}),_},getPropsData:(..._)=>_.reduce((b,x)=>(Array.isArray(x)&&x.forEach(w=>{b[w]=e[w]}),b),{}),getColumnElIndex:(_,b)=>Array.prototype.indexOf.call(_,b)}}var iW={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let aW=1;var WM=ue({name:"ElTableColumn",components:{ElCheckbox:bs},props:iW,setup(e,{slots:t}){const r=dt(),n=H({}),i=$(()=>{let y=r.parent;for(;y&&!y.tableId;)y=y.parent;return y}),{registerNormalWatchers:a,registerComplexWatchers:o}=rW(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:f,setColumnWidth:c,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g}=nW(e,t,i),m=f.value;s.value=`${m.tableId||m.columnId}_column_${aW++}`,Ed(()=>{l.value=i.value!==m;const y=e.type||"default",_=e.sortable===""?!0:e.sortable,b={...Z8[y],id:s.value,type:y,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:_,index:e.index,rawColumnKey:r.vnode.key};let T=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);T=o8(b,T),T=l8(h,c,d)(T),n.value=T,a(),o()}),Et(()=>{var y;const _=f.value,b=l.value?_.vnode.el.children:(y=_.refs.hiddenColumns)==null?void 0:y.children,x=()=>p(b||[],r.vnode.el);n.value.getColumnIndex=x,x()>-1&&i.value.store.commit("insertColumn",n.value,l.value?_.columnConfig.value:null)}),tr(()=>{i.value.store.commit("removeColumn",n.value,l.value?m.columnConfig.value:null)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===wt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!Ue(s==null?void 0:s.children)&&i.push(s)});return we("div",i)}catch{return we("div",[])}}});const oW=Er(K8,{TableColumn:WM}),sW=ia(WM),VM=["success","info","warning","error"],vr=Wa({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Rt?document.body:void 0}),lW=at({customClass:{type:String,default:vr.customClass},center:{type:Boolean,default:vr.center},dangerouslyUseHTMLString:{type:Boolean,default:vr.dangerouslyUseHTMLString},duration:{type:Number,default:vr.duration},icon:{type:Wi,default:vr.icon},id:{type:String,default:vr.id},message:{type:Ae([String,Object,Function]),default:vr.message},onClose:{type:Ae(Function),required:!1},showClose:{type:Boolean,default:vr.showClose},type:{type:String,values:VM,default:vr.type},offset:{type:Number,default:vr.offset},zIndex:{type:Number,default:vr.zIndex},grouping:{type:Boolean,default:vr.grouping},repeatNum:{type:Number,default:vr.repeatNum}}),uW={destroy:()=>!0},Hn=sC([]),fW=e=>{const t=Hn.findIndex(i=>i.id===e),r=Hn[t];let n;return t>0&&(n=Hn[t-1]),{current:r,prev:n}},cW=e=>{const{prev:t}=fW(e);return t?t.vm.exposed.bottom.value:0},dW=["id"],hW=["innerHTML"],vW=ue({name:"ElMessage"}),pW=ue({...vW,props:lW,emits:uW,setup(e,{expose:t}){const r=e,{Close:n}=d5,i=Ne("message"),a=H(),o=H(!1),s=H(0);let l;const u=$(()=>r.type?r.type==="error"?"danger":r.type:"info"),f=$(()=>{const b=r.type;return{[i.bm("icon",b)]:b&&ab[b]}}),c=$(()=>r.icon||ab[r.type]||""),d=$(()=>cW(r.id)),h=$(()=>r.offset+d.value),v=$(()=>s.value+h.value),p=$(()=>({top:`${h.value}px`,zIndex:r.zIndex}));function g(){r.duration!==0&&({stop:l}=Fp(()=>{y()},r.duration))}function m(){l==null||l()}function y(){o.value=!1}function _({code:b}){b===Lt.esc&&y()}return Et(()=>{g(),o.value=!0}),Me(()=>r.repeatNum,()=>{m(),g()}),$n(document,"keydown",_),ds(a,()=>{s.value=a.value.getBoundingClientRect().height}),t({visible:o,bottom:v,close:y}),(b,x)=>(X(),Ie(Kn,{name:L(i).b("fade"),onBeforeLeave:b.onClose,onAfterLeave:x[0]||(x[0]=w=>b.$emit("destroy")),persisted:""},{default:ee(()=>[sr(le("div",{id:b.id,ref_key:"messageRef",ref:a,class:de([L(i).b(),{[L(i).m(b.type)]:b.type&&!b.icon},L(i).is("center",b.center),L(i).is("closable",b.showClose),b.customClass]),style:At(L(p)),role:"alert",onMouseenter:m,onMouseleave:g},[b.repeatNum>1?(X(),Ie(L(iH),{key:0,value:b.repeatNum,type:L(u),class:de(L(i).e("badge"))},null,8,["value","type","class"])):ct("v-if",!0),L(c)?(X(),Ie(L(Cn),{key:1,class:de([L(i).e("icon"),L(f)])},{default:ee(()=>[(X(),Ie(hi(L(c))))]),_:1},8,["class"])):ct("v-if",!0),Be(b.$slots,"default",{},()=>[b.dangerouslyUseHTMLString?(X(),Se(wt,{key:1},[ct(" Caution here, message could've been compromised, never use user's input as message "),le("p",{class:de(L(i).e("content")),innerHTML:b.message},null,10,hW)],2112)):(X(),Se("p",{key:0,class:de(L(i).e("content"))},Re(b.message),3))]),b.showClose?(X(),Ie(L(Cn),{key:2,class:de(L(i).e("closeBtn")),onClick:Ep(y,["stop"])},{default:ee(()=>[J(L(n))]),_:1},8,["class","onClick"])):ct("v-if",!0)],46,dW),[[oo,o.value]])]),_:3},8,["name","onBeforeLeave"]))}});var gW=Qe(pW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let mW=1;const GM=e=>{const t=!e||Ue(e)||Qi(e)||Ee(e)?{message:e}:e,r={...vr,...t};if(!r.appendTo)r.appendTo=document.body;else if(Ue(r.appendTo)){let n=document.querySelector(r.appendTo);hs(n)||(n=document.body),r.appendTo=n}return r},yW=e=>{const t=Hn.indexOf(e);if(t===-1)return;Hn.splice(t,1);const{handler:r}=e;r.close()},_W=({appendTo:e,...t},r)=>{const{nextZIndex:n}=yy(),i=`message_${mW++}`,a=t.onClose,o=document.createElement("div"),s={...t,zIndex:n()+t.zIndex,id:i,onClose:()=>{a==null||a(),yW(c)},onDestroy:()=>{b_(null,o)}},l=J(gW,s,Ee(s.message)||Qi(s.message)?{default:Ee(s.message)?s.message:()=>s.message}:null);l.appContext=r||xs._context,b_(l,o),e.appendChild(o.firstElementChild);const u=l.component,c={id:i,vnode:l,vm:u,handler:{close:()=>{u.exposed.visible.value=!1}},props:l.component.props};return c},xs=(e={},t)=>{if(!Rt)return{close:()=>{}};if(_r(Jp.max)&&Hn.length>=Jp.max)return{close:()=>{}};const r=GM(e);if(r.grouping&&Hn.length){const i=Hn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=_W(r,t);return Hn.push(n),n.handler};VM.forEach(e=>{xs[e]=(t={},r)=>{const n=GM(t);return xs({...n,type:e},r)}});function bW(e){for(const t of Hn)(!e||e===t.props.type)&&t.handler.close()}xs.closeAll=bW;xs._context=null;const UM=h5(xs,"$message"),wW={id:"app"},xW={class:"grid-content header-color"},SW=le("a",{class:"brand",href:"#"},"frp",-1),CW=le("span",null,"Proxies",-1),TW={id:"content"},MW=le("footer",null,null,-1),AW=ue({__name:"App",setup(e){const t=r=>{r==""&&window.open("https://github.com/fatedier/frp")};return(r,n)=>{const i=IM,a=B6,o=F6,s=N6,l=SM,u=gr("router-view");return X(),Se("div",wW,[le("header",xW,[J(i,null,{default:ee(()=>[SW]),_:1})]),le("section",null,[J(i,null,{default:ee(()=>[J(l,{id:"side-nav",xs:24,md:4},{default:ee(()=>[J(s,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:t},{default:ee(()=>[J(a,{index:"/"},{default:ee(()=>[kt("Overview")]),_:1}),J(o,{index:"/proxies"},{title:ee(()=>[CW]),default:ee(()=>[J(a,{index:"/proxies/tcp"},{default:ee(()=>[kt("TCP")]),_:1}),J(a,{index:"/proxies/udp"},{default:ee(()=>[kt("UDP")]),_:1}),J(a,{index:"/proxies/http"},{default:ee(()=>[kt("HTTP")]),_:1}),J(a,{index:"/proxies/https"},{default:ee(()=>[kt("HTTPS")]),_:1}),J(a,{index:"/proxies/stcp"},{default:ee(()=>[kt("STCP")]),_:1}),J(a,{index:"/proxies/sudp"},{default:ee(()=>[kt("SUDP")]),_:1})]),_:1}),J(a,{index:""},{default:ee(()=>[kt("Help")]),_:1})]),_:1})]),_:1}),J(l,{xs:24,md:20},{default:ee(()=>[le("div",TW,[J(u)])]),_:1})]),_:1})]),MW])}}});/*! + */var r8=/["'&<>]/,n8=i8;function i8(e){var t=""+e,r=r8.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?lu(s,u):u(s,l,e))):(t!=="$key"&&Ke(s)&&"$value"in s&&(s=s.$value),[Ke(s)?lu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,f=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},OM=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},o8=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},Ka=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Ut(n,t)]={row:n,index:i}}),r};function s8(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(ze(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function xy(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function kM(e){return e===""||e!==void 0&&(e=xy(e),Number.isNaN(e)&&(e=80)),e}function l8(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function u8(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Rl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,ye(t.children)&&t.children.forEach(l=>{Rl(e,l,r??!a)})};return gi(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function f8(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const f=u[r];i(f)||a(u,f,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ai;function c8(e,t,r,n){n=xT({enterable:!0,showArrow:!0},n);const{nextZIndex:i}=yy(),a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=n.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",n.popperClass||""].join(" "),r=n8(r),m.innerHTML=r,m.style.zIndex=String(i()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){f&&f.update()}ai==null||ai(),ai=()=>{try{f&&f.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ai),ai=void 0}catch{}};let f=null,c=u,d=ai;n.enterable&&({onOpen:c,onClose:d}=eM({showAfter:n.showAfter,hideAfter:n.hideAfter,open:u,close:ai}));const h=s();h.onmouseenter=c,h.onmouseleave=d;const v=[];if(n.offset&&v.push({name:"offset",options:{offset:[0,n.offset]}}),n.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=n.popperOptions||{};return f=QT(t,h,{placement:n.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",c),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ai),f}function NM(e){return e.children?HF(e.children,NM):[e]}function qb(e,t){return e+t.colSpan}const BM=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=NM(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(qb,0),a=i+l.reduce(qb,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Sy=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=BM(t,r,n,i);if(s){const f=s==="left";o.push(`${e}-fixed-column--${s}`),f&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!f&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function jb(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Cy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=BM(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(jb,0):s.right=u.slice(o+1).reverse().reduce(jb,0),s},ws=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function d8(e){const t=dt(),r=H(!1),n=H([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const f=Ka(n.value,u);n.value=l.reduce((c,d)=>{const h=Ut(d,u);return f[h]&&c.push(d),c},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Rl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],f=e.rowKey.value,c=Ka(u,f);n.value=l.reduce((d,h)=>{const v=c[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Ka(n.value,u)[Ut(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function h8(e){const t=dt(),r=H(null),n=H(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:f,rowKey:c}=e;let d=null;c.value&&(d=(L(f)||[]).find(h=>Ut(h,c.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const f=n.value;if(u&&u!==f){n.value=u,t.emit("current-change",n.value,f);return}!u&&f&&(n.value=null,t.emit("current-change",null,f))},updateCurrentRowData:()=>{const u=e.rowKey.value,f=e.data.value||[],c=n.value;if(!f.includes(c)&&c){if(u){const d=Ut(c,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,c)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function v8(e){const t=H([]),r=H({}),n=H(16),i=H(!1),a=H({}),o=H("hasChildren"),s=H("children"),l=dt(),u=$(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return c(m)}),f=$(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Ut(w,m);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),c=m=>{const y=e.rowKey.value,_={};return f8(m,(b,x,w)=>{const S=Ut(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Ut(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=f.value,w=Object.keys(b),S={};if(w.length){const C=L(r),T=[],E=(M,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||M!=null&&M.expanded);{const O=y||t.value&&t.value.includes(D);return!!(M!=null&&M.expanded||O)}};w.forEach(M=>{const D=C[M],O={...b[M]};if(O.expanded=E(D,M),O.lazy){const{loaded:k=!1,loading:F=!1}=D||{};O.loaded=!!k,O.loading=!!F,T.push(M)}S[M]=O});const A=Object.keys(x);i.value&&A.length&&T.length&&A.forEach(M=>{const D=C[M],O=x[M].children;if(T.includes(M)){if(S[M].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[M].children=O}else{const{loaded:k=!1,loading:F=!1}=D||{};S[M]={lazy:!0,loaded:!!k,loading:!!F,expanded:E(D,M),children:O,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};Ee(()=>t.value,()=>{d(!0)}),Ee(()=>u.value,()=>{d()}),Ee(()=>f.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Ut(m,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Ut(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:c,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const p8=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:a8(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},yc=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,yc(r.children)):t.push(r)}),t};function g8(){var e;const t=dt(),{size:r}=Cd((e=t.proxy)==null?void 0:e.$props),n=H(null),i=H([]),a=H([]),o=H(!1),s=H([]),l=H([]),u=H([]),f=H([]),c=H([]),d=H([]),h=H([]),v=H([]),p=H(0),g=H(0),m=H(0),y=H(!1),_=H([]),b=H(!1),x=H(!1),w=H(null),S=H({}),C=H(null),T=H(null),E=H(null),A=H(null),M=H(null);Ee(i,()=>t.state&&F(!1),{deep:!0});const D=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},O=fe=>{var Ce;(Ce=fe.children)==null||Ce.forEach($e=>{$e.fixed=fe.fixed,O($e)})},k=()=>{s.value.forEach(Xe=>{O(Xe)}),f.value=s.value.filter(Xe=>Xe.fixed===!0||Xe.fixed==="left"),c.value=s.value.filter(Xe=>Xe.fixed==="right"),f.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,f.value.unshift(s.value[0]));const fe=s.value.filter(Xe=>!Xe.fixed);l.value=[].concat(f.value).concat(fe).concat(c.value);const Ce=yc(fe),$e=yc(f.value),He=yc(c.value);p.value=Ce.length,g.value=$e.length,m.value=He.length,u.value=[].concat($e).concat(Ce).concat(He),o.value=f.value.length>0||c.value.length>0},F=(fe,Ce=!1)=>{fe&&k(),Ce?t.state.doLayout():t.state.debouncedUpdateLayout()},j=fe=>_.value.includes(fe),B=()=>{y.value=!1,_.value.length&&(_.value=[],t.emit("selection-change",[]))},N=()=>{let fe;if(n.value){fe=[];const Ce=Ka(_.value,n.value),$e=Ka(i.value,n.value);for(const He in Ce)ze(Ce,He)&&!$e[He]&&fe.push(Ce[He].row)}else fe=_.value.filter(Ce=>!i.value.includes(Ce));if(fe.length){const Ce=_.value.filter($e=>!fe.includes($e));_.value=Ce,t.emit("selection-change",Ce.slice())}},U=()=>(_.value||[]).slice(),re=(fe,Ce=void 0,$e=!0)=>{if(Rl(_.value,fe,Ce)){const Xe=(_.value||[]).slice();$e&&t.emit("select",Xe,fe),t.emit("selection-change",Xe)}},ae=()=>{var fe,Ce;const $e=x.value?!y.value:!(y.value||_.value.length);y.value=$e;let He=!1,Xe=0;const Ot=(Ce=(fe=t==null?void 0:t.store)==null?void 0:fe.states)==null?void 0:Ce.rowKey.value;i.value.forEach((ht,Wt)=>{const Hr=Wt+Xe;w.value?w.value.call(null,ht,Hr)&&Rl(_.value,ht,$e)&&(He=!0):Rl(_.value,ht,$e)&&(He=!0),Xe+=V(Ut(ht,Ot))}),He&&t.emit("selection-change",_.value?_.value.slice():[]),t.emit("select-all",_.value)},me=()=>{const fe=Ka(_.value,n.value);i.value.forEach(Ce=>{const $e=Ut(Ce,n.value),He=fe[$e];He&&(_.value[He.index]=Ce)})},Me=()=>{var fe,Ce,$e;if(((fe=i.value)==null?void 0:fe.length)===0){y.value=!1;return}let He;n.value&&(He=Ka(_.value,n.value));const Xe=function(Hr){return He?!!He[Ut(Hr,n.value)]:_.value.includes(Hr)};let Ot=!0,ht=0,Wt=0;for(let Hr=0,xL=(i.value||[]).length;Hr{var Ce;if(!t||!t.store)return 0;const{treeData:$e}=t.store.states;let He=0;const Xe=(Ce=$e.value[fe])==null?void 0:Ce.children;return Xe&&(He+=Xe.length,Xe.forEach(Ot=>{He+=V(Ot)})),He},J=(fe,Ce)=>{Array.isArray(fe)||(fe=[fe]);const $e={};return fe.forEach(He=>{S.value[He.id]=Ce,$e[He.columnKey||He.id]=Ce}),$e},W=(fe,Ce,$e)=>{T.value&&T.value!==fe&&(T.value.order=null),T.value=fe,E.value=Ce,A.value=$e},Y=()=>{let fe=L(a);Object.keys(S.value).forEach(Ce=>{const $e=S.value[Ce];if(!$e||$e.length===0)return;const He=OM({columns:u.value},Ce);He&&He.filterMethod&&(fe=fe.filter(Xe=>$e.some(Ot=>He.filterMethod.call(null,Ot,Xe,He))))}),C.value=fe},le=()=>{i.value=p8(C.value,{sortingColumn:T.value,sortProp:E.value,sortOrder:A.value})},he=(fe=void 0)=>{fe&&fe.filter||Y(),le()},Q=fe=>{const{tableHeaderRef:Ce}=t.refs;if(!Ce)return;const $e=Object.assign({},Ce.filterPanels),He=Object.keys($e);if(He.length)if(typeof fe=="string"&&(fe=[fe]),Array.isArray(fe)){const Xe=fe.map(Ot=>o8({columns:u.value},Ot));He.forEach(Ot=>{const ht=Xe.find(Wt=>Wt.id===Ot);ht&&(ht.filteredValue=[])}),t.store.commit("filterChange",{column:Xe,values:[],silent:!0,multi:!0})}else He.forEach(Xe=>{const Ot=u.value.find(ht=>ht.id===Xe);Ot&&(Ot.filteredValue=[])}),S.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},P=()=>{T.value&&(W(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:I,toggleRowExpansion:z,updateExpandRows:G,states:q,isRowExpanded:ne}=d8({data:i,rowKey:n}),{updateTreeExpandKeys:ce,toggleTreeExpansion:te,updateTreeData:ie,loadOrToggle:X,states:_e}=v8({data:i,rowKey:n}),{updateCurrentRowData:ve,updateCurrentRow:be,setCurrentRowKey:Ie,states:Fe}=h8({data:i,rowKey:n});return{assertRowKey:D,updateColumns:k,scheduleLayout:F,isSelected:j,clearSelection:B,cleanSelection:N,getSelectionRows:U,toggleRowSelection:re,_toggleAllSelection:ae,toggleAllSelection:null,updateSelectionByRowKey:me,updateAllSelected:Me,updateFilters:J,updateCurrentRow:be,updateSort:W,execFilter:Y,execSort:le,execQuery:he,clearFilter:Q,clearSort:P,toggleRowExpansion:z,setExpandRowKeysAdapter:fe=>{I(fe),ce(fe)},setCurrentRowKey:Ie,toggleRowExpansionAdapter:(fe,Ce)=>{u.value.some(({type:He})=>He==="expand")?z(fe,Ce):te(fe,Ce)},isRowExpanded:ne,updateExpandRows:G,updateCurrentRowData:ve,loadOrToggle:X,updateTreeData:ie,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:f,rightFixedColumns:c,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,leafColumnsLength:p,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:m,isAllSelected:y,selection:_,reserveSelection:b,selectOnIndeterminate:x,selectable:w,filters:S,filteredData:C,sortingColumn:T,sortProp:E,sortOrder:A,hoverRow:M,...q,..._e,...Fe}}}function ag(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=ag(r.children,t)),r)})}function FM(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&FM(t.children)}),e.sort((t,r)=>t.no-r.no)}function m8(){const e=dt(),t=g8();return{ns:Ne("table"),...t,mutations:{setData(o,s){const l=L(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),L(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l){const u=L(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=ag(u,l)):(u.push(s),f=u),FM(f),o._columns.value=f,s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(o,s,l){const u=L(o._columns)||[];if(l)l.children.splice(l.children.findIndex(f=>f.id===s.id),1),zt(()=>{var f;((f=l.children)==null?void 0:f.length)===0&&delete l.children}),o._columns.value=ag(u,l);else{const f=u.indexOf(s);f>-1&&(u.splice(f,1),o._columns.value=u)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:f}=s;if(l){const c=L(o.columns).find(d=>d.property===l);c&&(c.order=u,e.store.updateSort(c,l,u),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:f}=o,c=L(l),d=L(u),h=L(f);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:c,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:f}=s,c=e.store.updateFilters(l,u);e.store.execQuery(),f||e.emit("filter-change",c),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){zt(()=>e.layout.updateScrollY.apply(e.layout))}}}const Ol={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function y8(e,t){if(!e)throw new Error("Table is required.");const r=m8();return r.toggleAllSelection=zc(r._toggleAllSelection,10),Object.keys(Ol).forEach(n=>{$M(HM(t,n),n,r)}),_8(r,t),r}function _8(e,t){Object.keys(Ol).forEach(r=>{Ee(()=>HM(t,r),n=>{$M(n,r,e)})})}function $M(e,t,r){let n=e,i=Ol[t];typeof Ol[t]=="object"&&(i=i.key,n=n||Ol[t].default),r.states[i].value=n}function HM(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class b8{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=H(null),this.scrollX=H(!1),this.scrollY=H(!1),this.bodyWidth=H(null),this.fixedWidth=H(null),this.rightFixedWidth=H(null),this.gutterWidth=0;for(const r in t)ze(t,r)&&(St(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&r){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Rt)return;const n=this.table.vnode.el;if(t=l8(t),this.height.value=Number(t),!n&&(t||t===0))return zt(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Rt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),f=l/u;let c=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*f);c+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-c}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:w8}=bs,x8=ue({name:"ElTableFilterPanel",components:{ElCheckbox:bs,ElCheckboxGroup:w8,ElScrollbar:rM,ElTooltip:Hu,ElIcon:Cn,ArrowDown:TT,ArrowUp:P$},directives:{ClickOutside:IH},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=dt(),{t:r}=HT(),n=Ne("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=H(!1),o=H(null),s=$(()=>e.column&&e.column.filters),l=$({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=$({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),f=$(()=>e.column?e.column.filterMultiple:!0),c=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};Ee(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=$(()=>{var b,x;return(x=(b=o.value)==null?void 0:b.popperRef)==null?void 0:x.contentRef});return{tooltipVisible:a,multiple:f,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:c,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),S8={key:0},C8=["disabled"],T8=["label","onClick"];function M8(e,t,r,n,i,a){const o=gr("el-checkbox"),s=gr("el-checkbox-group"),l=gr("el-scrollbar"),u=gr("arrow-up"),f=gr("arrow-down"),c=gr("el-icon"),d=gr("el-tooltip"),h=Rm("click-outside");return K(),xe(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:Z(()=>[e.multiple?(K(),Se("div",S8,[se("div",{class:de(e.ns.e("content"))},[ee(l,{"wrap-class":e.ns.e("wrap")},{default:Z(()=>[ee(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:de(e.ns.e("checkbox-group"))},{default:Z(()=>[(K(!0),Se(yt,null,K0(e.filters,v=>(K(),xe(o,{key:v.value,label:v.value},{default:Z(()=>[kt(Ae(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),se("div",{class:de(e.ns.e("bottom"))},[se("button",{class:de({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Ae(e.t("el.table.confirmFilter")),11,C8),se("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Ae(e.t("el.table.resetFilter")),1)],2)])):(K(),Se("ul",{key:1,class:de(e.ns.e("list"))},[se("li",{class:de([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Ae(e.t("el.table.clearFilter")),3),(K(!0),Se(yt,null,K0(e.filters,v=>(K(),Se("li",{key:v.value,class:de([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Ae(v.text),11,T8))),128))],2))]),default:Z(()=>[qt((K(),Se("span",{class:de([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[ee(c,null,{default:Z(()=>[e.column.filterOpened?(K(),xe(u,{key:0})):(K(),xe(f,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var A8=Je(x8,[["render",M8],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function zM(e){const t=dt();Pd(()=>{r.value.addObserver(t)}),Et(()=>{n(r.value),i(r.value)}),Ld(()=>{n(r.value),i(r.value)}),Iu(()=>{r.value.removeObserver(t)});const r=$(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(f=>{u[f.id]=f});for(let f=0,c=s.length;f{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let f=0,c=l.length;f{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=H(null),l=H(!1),u=H({}),f=(p,g)=>{if(Rt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Uo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=m==null?void 0:m.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=E=>{const A=E.clientX-u.value.startMouseLeft,M=u.value.startLeft+A;S.style.left=`${Math.max(w,M)}px`},T=()=>{if(l.value){const{startColumnLeft:E,startLeft:A}=u.value,D=Number.parseInt(S.style.left,10)-E;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-E,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",T),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{rs(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",T)}},c=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Pl(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Pl(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Rt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Pl(b,"noclick")){rs(b,"noclick");return}if(!g.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=g,w=g.property),_?S=g.order=_:S=g.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function P8(e){const t=Re(Zn),r=Ne("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,f)=>{var c;let d=(c=t==null?void 0:t.props.headerCellStyle)!=null?c:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:f}));const h=Cy(l,f.fixed,e.store,u);return ws(h,"left"),ws(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,f)=>{const c=Sy(r.b(),l,f.fixed,e.store,u),d=[f.id,f.order,f.headerAlign,f.className,f.labelClassName,...c];f.children||d.push("is-leaf"),f.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:f})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const WM=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,WM(r.children))):t.push(r)}),t},L8=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function D8(e){const t=Re(Zn),r=$(()=>L8(e.store.states.originColumns.value));return{isGroup:$(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var I8=ue({name:"ElTableHeader",components:{ElCheckbox:bs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=dt(),n=Re(Zn),i=Ne("table"),a=H({}),{onColumnsChange:o,onScrollableChange:s}=zM(n);Et(async()=>{await zt(),await zt();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=E8(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=P8(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=D8(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:f,handleSortClick:c,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return we("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>we("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),we("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>f(b,y),onMouseout:d},[we("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&we("span",{onClick:b=>c(b,y),class:"caret-wrapper"},[we("i",{onClick:b=>c(b,y,"ascending"),class:"sort-caret ascending"}),we("i",{onClick:b=>c(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&we(A8,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function R8(e){const t=Re(Zn),r=H(""),n=H(we("div")),i=(d,h,v)=>{var p;const g=t,m=Vh(d);let y;const _=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;m&&(y=Yb({columns:e.store.states.columns.value},m,_),y&&(g==null||g.emit(`cell-${v}`,h,y,m,d))),g==null||g.emit(`row-${v}`,h,y,d)},a=(d,h)=>{i(d,h,"dblclick")},o=(d,h)=>{e.store.commit("setCurrentRow",h),i(d,h,"click")},s=(d,h)=>{i(d,h,"contextmenu")},l=zc(d=>{e.store.commit("setHoverRow",d)},30),u=zc(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(d,h,v)=>{var p;const g=t,m=Vh(d),y=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;if(m){const S=Yb({columns:e.store.states.columns.value},m,y),C=g.hoverState={cell:m,column:S,row:h};g==null||g.emit("cell-mouse-enter",C.row,C.column,C.cell,d)}if(!v)return;const _=d.target.querySelector(".cell");if(!(Pl(_,`${y}-tooltip`)&&_.childNodes.length))return;const b=document.createRange();b.setStart(_,0),b.setEnd(_,_.childNodes.length);const x=Math.round(b.getBoundingClientRect().width),w=(Number.parseInt(ib(_,"paddingLeft"),10)||0)+(Number.parseInt(ib(_,"paddingRight"),10)||0);(x+w>_.offsetWidth||_.scrollWidth>_.offsetWidth)&&c8(t==null?void 0:t.refs.tableWrapper,m,m.innerText||m.textContent,v)},handleCellMouseLeave:d=>{if(!Vh(d))return;const v=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",v==null?void 0:v.row,v==null?void 0:v.column,v==null?void 0:v.cell,d)},tooltipContent:r,tooltipTrigger:n}}function O8(e){const t=Re(Zn),r=Ne("table");return{getRowStyle:(u,f)=>{const c=t==null?void 0:t.props.rowStyle;return typeof c=="function"?c.call(null,{row:u,rowIndex:f}):c||null},getRowClass:(u,f)=>{const c=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&c.push("current-row"),e.stripe&&f%2===1&&c.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?c.push(d):typeof d=="function"&&c.push(d.call(null,{row:u,rowIndex:f})),c},getCellStyle:(u,f,c,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:f,row:c,column:d}));const p=Cy(f,e==null?void 0:e.fixed,e.store);return ws(p,"left"),ws(p,"right"),Object.assign({},v,p)},getCellClass:(u,f,c,d,h)=>{const v=Sy(r.b(),f,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:f,row:c,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,f,c,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:f,rowIndex:c,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,f,c)=>{if(f<1)return u[c].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(c,c+f);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function k8(e){const t=Re(Zn),r=Ne("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:f,tooltipTrigger:c}=R8(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=O8(e),y=$(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const T=t.props.rowKey;return T?Ut(S,T):C},b=(S,C,T,E=!1)=>{const{tooltipEffect:A,tooltipOptions:M,store:D}=e,{indent:O,columns:k}=D.states,F=h(S,C);let j=!0;return T&&(F.push(r.em("row",`level-${T.level}`)),j=T.display),we("tr",{style:[j?null:{display:"none"},d(S,C)],class:F,key:_(S,C),onDblclick:N=>n(N,S),onClick:N=>i(N,S),onContextmenu:N=>a(N,S),onMouseenter:()=>o(C),onMouseleave:s},k.value.map((N,U)=>{const{rowspan:re,colspan:ae}=g(S,N,C,U);if(!re||!ae)return null;const me={...N};me.realWidth=m(k.value,ae,U);const Me={store:e.store,_self:e.context||t,column:me,row:S,$index:C,cellIndex:U,expanded:E};U===y.value&&T&&(Me.treeNode={indent:T.level*O.value,level:T.level},typeof T.expanded=="boolean"&&(Me.treeNode.expanded=T.expanded,"loading"in T&&(Me.treeNode.loading=T.loading),"noLazyChildren"in T&&(Me.treeNode.noLazyChildren=T.noLazyChildren)));const V=`${C},${U}`,J=me.columnKey||me.rawColumnKey||"",W=x(U,N,Me),Y=N.showOverflowTooltip&&xT({effect:A},M,N.showOverflowTooltip);return we("td",{style:v(C,U,S,N),class:p(C,U,S,N,ae-1),key:`${J}${V}`,rowspan:re,colspan:ae,onMouseenter:le=>l(le,S,Y),onMouseleave:u},[W])}))},x=(S,C,T)=>C.renderCell(T);return{wrappedRowRender:(S,C)=>{const T=e.store,{isRowExpanded:E,assertRowKey:A}=T,{treeData:M,lazyTreeNodeMap:D,childrenColumnName:O,rowKey:k}=T.states,F=T.states.columns.value;if(F.some(({type:B})=>B==="expand")){const B=E(S),N=b(S,C,void 0,B),U=t.renderExpanded;return B?U?[[N,we("tr",{key:`expanded-row__${N.key}`},[we("td",{colspan:F.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[U({row:S,$index:C,store:T,expanded:B})])])]]:(console.error("[Element Error]renderExpanded is required."),N):[[N]]}else if(Object.keys(M.value).length){A();const B=Ut(S,k.value);let N=M.value[B],U=null;N&&(U={expanded:N.expanded,level:N.level,display:!0},typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(U.noLazyChildren=!(N.children&&N.children.length)),U.loading=N.loading));const re=[b(S,C,U)];if(N){let ae=0;const me=(V,J)=>{V&&V.length&&J&&V.forEach(W=>{const Y={display:J.display&&J.expanded,level:J.level+1,expanded:!1,noLazyChildren:!1,loading:!1},le=Ut(W,k.value);if(le==null)throw new Error("For nested data item, row-key is required.");if(N={...M.value[le]},N&&(Y.expanded=N.expanded,N.level=N.level||Y.level,N.display=!!(N.expanded&&Y.display),typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(Y.noLazyChildren=!(N.children&&N.children.length)),Y.loading=N.loading)),ae++,re.push(b(W,C+ae,Y)),N){const he=D.value[le]||W[O.value];me(he,N)}})};N.display=!0;const Me=D.value[B]||S[O.value];me(Me,N)}return re}else return b(S,C,void 0)},tooltipContent:f,tooltipTrigger:c}}const N8={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var B8=ue({name:"ElTableBody",props:N8,setup(e){const t=dt(),r=Re(Zn),n=Ne("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=k8(e),{onColumnsChange:s,onScrollableChange:l}=zM(r);return Ee(e.store.states.hoverRow,(u,f)=>{if(!e.store.states.isComplex.value||!Rt)return;let c=window.requestAnimationFrame;c||(c=d=>window.setTimeout(d,16)),c(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[f],p=h[u];v&&rs(v,"hover-row"),p&&Uo(p,"hover-row")})}),Iu(()=>{var u;(u=ai)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return we("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function Ty(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return we("colgroup",{},r.map(i=>we("col",n(i))))}Ty.props=["columns","tableLayout"];function F8(){const e=Re(Zn),t=e==null?void 0:e.store,r=$(()=>t.states.fixedLeafColumnsLength.value),n=$(()=>t.states.rightFixedColumns.value.length),i=$(()=>t.states.columns.value.length),a=$(()=>t.states.fixedColumns.value.length),o=$(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function $8(e){const{columns:t}=F8(),r=Ne("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Sy(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Cy(o,a.fixed,e.store);return ws(s,"left"),ws(s,"right"),s},columns:t}}var H8=ue({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=$8(e);return{ns:Ne("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const f=o.map(v=>Number(v[l.property])),c=[];let d=!0;f.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];c.push(p?p.length:0)}});const h=Math.max.apply(null,c);d?s[u]="":s[u]=f.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),we("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[Ty({columns:e}),we("tbody",[we("tr",{},[...e.map((l,u)=>we("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[we("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function z8(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,c)=>{e.toggleRowSelection(f,c,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,c)=>{e.toggleRowExpansionAdapter(f,c)},clearSort:()=>{e.clearSort()},sort:(f,c)=>{e.commit("sort",{prop:f,order:c})}}}function W8(e,t,r,n){const i=H(!1),a=H(null),o=H(!1),s=B=>{o.value=B},l=H({width:null,height:null,headerHeight:null}),u=H(!1),f={display:"inline-block",verticalAlign:"middle"},c=H(),d=H(0),h=H(0),v=H(0),p=H(0);ts(()=>{t.setHeight(e.height)}),ts(()=>{t.setMaxHeight(e.maxHeight)}),Ee(()=>[e.currentRowKey,r.states.rowKey],([B,N])=>{!L(N)||!L(B)||r.setCurrentRowKey(`${B}`)},{immediate:!0}),Ee(()=>e.data,B=>{n.store.commit("setData",B)},{immediate:!0,deep:!0}),ts(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(B,N)=>{const{pixelX:U,pixelY:re}=N;Math.abs(U)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=N.pixelX/5)},y=$(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=$(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};Et(async()=>{await zt(),r.updateColumns(),T(),requestAnimationFrame(b);const B=n.vnode.el,N=n.refs.headerWrapper;e.flexible&&B&&B.parentElement&&(B.parentElement.style.minWidth="0"),l.value={width:c.value=B.offsetWidth,height:B.offsetHeight,headerHeight:e.showHeader&&N?N.offsetHeight:null},r.states.columns.value.forEach(U=>{U.filteredValue&&U.filteredValue.length&&n.store.commit("filterChange",{column:U,values:U.filteredValue,silent:!0})}),n.$ready=!0});const x=(B,N)=>{if(!B)return;const U=Array.from(B.classList).filter(re=>!re.startsWith("is-scrolling-"));U.push(t.scrollX.value?N:"is-scrolling-none"),B.className=U.join(" ")},w=B=>{const{tableWrapper:N}=n.refs;x(N,B)},S=B=>{const{tableWrapper:N}=n.refs;return!!(N&&N.classList.contains(B))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";S(V)||w(V);return}const B=n.refs.scrollBarRef.wrapRef;if(!B)return;const{scrollLeft:N,offsetWidth:U,scrollWidth:re}=B,{headerWrapper:ae,footerWrapper:me}=n.refs;ae&&(ae.scrollLeft=N),me&&(me.scrollLeft=N);const Me=re-U-1;N>=Me?w("is-scrolling-right"):w(N===0?"is-scrolling-left":"is-scrolling-middle")},T=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&$n(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?ds(n.vnode.el,E):$n(window,"resize",E),ds(n.refs.bodyWrapper,()=>{var B,N;E(),(N=(B=n.refs)==null?void 0:B.scrollBarRef)==null||N.update()}))},E=()=>{var B,N,U;const re=n.vnode.el;if(!n.$ready||!re)return;let ae=!1;const{width:me,height:Me,headerHeight:V}=l.value,J=c.value=re.offsetWidth;me!==J&&(ae=!0);const W=re.offsetHeight;(e.height||y.value)&&Me!==W&&(ae=!0);const Y=e.tableLayout==="fixed"?n.refs.headerWrapper:(B=n.refs.tableHeaderRef)==null?void 0:B.$el;e.showHeader&&(Y==null?void 0:Y.offsetHeight)!==V&&(ae=!0),d.value=((N=n.refs.tableWrapper)==null?void 0:N.scrollHeight)||0,v.value=(Y==null?void 0:Y.scrollHeight)||0,p.value=((U=n.refs.footerWrapper)==null?void 0:U.offsetHeight)||0,h.value=d.value-v.value-p.value,ae&&(l.value={width:J,height:W,headerHeight:e.showHeader&&(Y==null?void 0:Y.offsetHeight)||0},b())},A=fo(),M=$(()=>{const{bodyWidth:B,scrollY:N,gutterWidth:U}=t;return B.value?`${B.value-(N.value?U:0)}px`:""}),D=$(()=>e.maxHeight?"fixed":e.tableLayout),O=$(()=>{if(e.data&&e.data.length)return null;let B="100%";e.height&&h.value&&(B=`${h.value}px`);const N=c.value;return{width:N?`${N}px`:"",height:B}}),k=$(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),F=$(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const B=e.maxHeight;if(d.value>=Number(B))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:O,handleFixedMousewheel:(B,N)=>{const U=n.refs.bodyWrapper;if(Math.abs(N.spinY)>0){const re=U.scrollTop;N.pixelY<0&&re!==0&&B.preventDefault(),N.pixelY>0&&U.scrollHeight-U.clientHeight>re&&B.preventDefault(),U.scrollTop+=Math.ceil(N.pixelY/5)}else U.scrollLeft+=Math.ceil(N.pixelX/5)},resizeProxyVisible:o,bodyWidth:M,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:f,tableInnerStyle:k,scrollbarStyle:F}}var V8={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const G8=()=>{const e=H(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&_r(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let U8=1;const Y8=ue({name:"ElTable",directives:{Mousewheel:$H},components:{TableHeader:I8,TableBody:B8,TableFooter:H8,ElScrollbar:rM,hColgroup:Ty},props:V8,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=HT(),r=Ne("table"),n=dt();Ct(Zn,n);const i=y8(n,e);n.store=i;const a=new b8({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=$(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=z8(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:T,bodyWidth:E,resizeState:A,doLayout:M,tableBodyStyles:D,tableLayout:O,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:j}=W8(e,a,i,n),{scrollBarRef:B,scrollTo:N,setScrollLeft:U,setScrollTop:re}=G8(),ae=zc(M,50),me=`${r.namespace.value}-table_${U8++}`;n.tableId=me,n.state={isGroup:_,resizeState:A,doLayout:M,debouncedUpdateLayout:ae};const Me=$(()=>e.sumText||t("el.table.sumText")),V=$(()=>e.emptyText||t("el.table.emptyText"));return{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:me,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:T,resizeState:A,isGroup:_,bodyWidth:E,tableBodyStyles:D,emptyBlockStyle:S,debouncedUpdateLayout:ae,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:M,sort:p,t,setDragVisible:y,context:n,computedSumText:Me,computedEmptyText:V,tableLayout:O,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:j,scrollBarRef:B,scrollTo:N,setScrollLeft:U,setScrollTop:re}}}),q8=["data-prefix"],j8={ref:"hiddenColumns",class:"hidden-columns"};function K8(e,t,r,n,i,a){const o=gr("hColgroup"),s=gr("table-header"),l=gr("table-body"),u=gr("el-scrollbar"),f=gr("table-footer"),c=Rm("mousewheel");return K(),Se("div",{ref:"tableWrapper",class:de([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:At(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=d=>e.handleMouseLeave())},[se("div",{class:de(e.ns.e("inner-wrapper")),style:At(e.tableInnerStyle)},[se("div",j8,[Be(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?qt((K(),Se("div",{key:0,ref:"headerWrapper",class:de(e.ns.e("header-wrapper"))},[se("table",{ref:"tableHeader",class:de(e.ns.e("header")),style:At(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ee(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[c,e.handleHeaderFooterMousewheel]]):Ye("v-if",!0),se("div",{ref:"bodyWrapper",class:de(e.ns.e("body-wrapper"))},[ee(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:Z(()=>[se("table",{ref:"tableBody",class:de(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:At({width:e.bodyWidth,tableLayout:e.tableLayout})},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(K(),xe(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):Ye("v-if",!0),ee(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(K(),Se("div",{key:0,ref:"emptyBlock",style:At(e.emptyBlockStyle),class:de(e.ns.e("empty-block"))},[se("span",{class:de(e.ns.e("empty-text"))},[Be(e.$slots,"empty",{},()=>[kt(Ae(e.computedEmptyText),1)])],2)],6)):Ye("v-if",!0),e.$slots.append?(K(),Se("div",{key:1,ref:"appendWrapper",class:de(e.ns.e("append-wrapper"))},[Be(e.$slots,"append")],2)):Ye("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?qt((K(),Se("div",{key:1,ref:"footerWrapper",class:de(e.ns.e("footer-wrapper"))},[ee(f,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:At(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[pi,!e.isEmpty],[c,e.handleHeaderFooterMousewheel]]):Ye("v-if",!0),e.border||e.isGroup?(K(),Se("div",{key:2,class:de(e.ns.e("border-left-patch"))},null,2)):Ye("v-if",!0)],6),qt(se("div",{ref:"resizeProxy",class:de(e.ns.e("column-resize-proxy"))},null,2),[[pi,e.resizeProxyVisible]])],46,q8)}var X8=Je(Y8,[["render",K8],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const Z8={selection:"table-column--selection",expand:"table__expand-column"},Q8={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},J8=e=>Z8[e]||"",eW={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return we(bs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return we(bs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),we("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),we("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[we(Cn,null,{default:()=>[we(ny)]})]})},sortable:!1,resizable:!1}};function tW({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&fc(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function rW({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[we("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(we("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=ny;t.loading&&(l=ET),a.push(we("div",{class:s,onClick:o},{default:()=>[we(Cn,{class:{[i.is("loading")]:t.loading}},{default:()=>[we(l)]})]}))}else a.push(we("span",{class:i.e("placeholder")}));return a}function Kb(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function nW(e,t){const r=dt();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=Kb(a,o);Object.keys(s).forEach(l=>{const u=o[l];ze(t,u)&&Ee(()=>t[u],f=>{let c=f;u==="width"&&l==="realWidth"&&(c=xy(f)),u==="minWidth"&&l==="realMinWidth"&&(c=kM(f)),r.columnConfig.value[u]=c,r.columnConfig.value[l]=c;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=Kb(a,o);Object.keys(s).forEach(l=>{const u=o[l];ze(t,u)&&Ee(()=>t[u],f=>{r.columnConfig.value[l]=f})})}}}function iW(e,t,r){const n=dt(),i=H(""),a=H(!1),o=H(),s=H(),l=Ne("table");ts(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),ts(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=$(()=>{let _=n.vnode.vParent||n.parent;for(;_&&!_.tableId&&!_.columnId;)_=_.vnode.vParent||_.parent;return _}),f=$(()=>{const{store:_}=n.parent;if(!_)return!1;const{treeData:b}=_.states,x=b.value;return x&&Object.keys(x).length>0}),c=H(xy(e.width)),d=H(kM(e.minWidth)),h=_=>(c.value&&(_.width=c.value),d.value&&(_.minWidth=d.value),!c.value&&d.value&&(_.width=void 0),_.minWidth||(_.minWidth=80),_.realWidth=Number(_.width===void 0?_.minWidth:_.width),_),v=_=>{const b=_.type,x=eW[b]||{};Object.keys(x).forEach(S=>{const C=x[S];S!=="className"&&C!==void 0&&(_[S]=C)});const w=J8(b);if(w){const S=`${L(l.namespace)}-${w}`;_.className=_.className?`${_.className} ${S}`:S}return _},p=_=>{Array.isArray(_)?_.forEach(x=>b(x)):b(_);function b(x){var w;((w=x==null?void 0:x.type)==null?void 0:w.name)==="ElTableColumn"&&(x.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:_=>{e.renderHeader||_.type!=="selection"&&(_.renderHeader=x=>{n.columnConfig.value.label;const w=t.header;return w?w(x):_.label});let b=_.renderCell;return _.type==="expand"?(_.renderCell=x=>we("div",{class:"cell"},[b(x)]),r.value.renderExpanded=x=>t.default?t.default(x):t.default):(b=b||tW,_.renderCell=x=>{let w=null;if(t.default){const E=t.default(x);w=E.some(A=>A.type!==br)?E:b(x)}else w=b(x);const S=f.value&&x.cellIndex===0&&x.column.type!=="selection",C=rW(x,S),T={class:"cell",style:{}};return _.showOverflowTooltip&&(T.class=`${T.class} ${L(l.namespace)}-tooltip`,T.style={width:`${(x.column.realWidth||Number(x.column.width))-1}px`}),p(w),we("div",T,[C,w])}),_},getPropsData:(..._)=>_.reduce((b,x)=>(Array.isArray(x)&&x.forEach(w=>{b[w]=e[w]}),b),{}),getColumnElIndex:(_,b)=>Array.prototype.indexOf.call(_,b)}}var aW={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let oW=1;var VM=ue({name:"ElTableColumn",components:{ElCheckbox:bs},props:aW,setup(e,{slots:t}){const r=dt(),n=H({}),i=$(()=>{let y=r.parent;for(;y&&!y.tableId;)y=y.parent;return y}),{registerNormalWatchers:a,registerComplexWatchers:o}=nW(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:f,setColumnWidth:c,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g}=iW(e,t,i),m=f.value;s.value=`${m.tableId||m.columnId}_column_${oW++}`,Pd(()=>{l.value=i.value!==m;const y=e.type||"default",_=e.sortable===""?!0:e.sortable,b={...Q8[y],id:s.value,type:y,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:_,index:e.index,rawColumnKey:r.vnode.key};let T=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);T=s8(b,T),T=u8(h,c,d)(T),n.value=T,a(),o()}),Et(()=>{var y;const _=f.value,b=l.value?_.vnode.el.children:(y=_.refs.hiddenColumns)==null?void 0:y.children,x=()=>p(b||[],r.vnode.el);n.value.getColumnIndex=x,x()>-1&&i.value.store.commit("insertColumn",n.value,l.value?_.columnConfig.value:null)}),rr(()=>{i.value.store.commit("removeColumn",n.value,l.value?m.columnConfig.value:null)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===yt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!Ue(s==null?void 0:s.children)&&i.push(s)});return we("div",i)}catch{return we("div",[])}}});const sW=Er(X8,{TableColumn:VM}),lW=aa(VM),GM=["success","info","warning","error"],vr=Va({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Rt?document.body:void 0}),uW=ot({customClass:{type:String,default:vr.customClass},center:{type:Boolean,default:vr.center},dangerouslyUseHTMLString:{type:Boolean,default:vr.dangerouslyUseHTMLString},duration:{type:Number,default:vr.duration},icon:{type:Vi,default:vr.icon},id:{type:String,default:vr.id},message:{type:Pe([String,Object,Function]),default:vr.message},onClose:{type:Pe(Function),required:!1},showClose:{type:Boolean,default:vr.showClose},type:{type:String,values:GM,default:vr.type},offset:{type:Number,default:vr.offset},zIndex:{type:Number,default:vr.zIndex},grouping:{type:Boolean,default:vr.grouping},repeatNum:{type:Number,default:vr.repeatNum}}),fW={destroy:()=>!0},Hn=lC([]),cW=e=>{const t=Hn.findIndex(i=>i.id===e),r=Hn[t];let n;return t>0&&(n=Hn[t-1]),{current:r,prev:n}},dW=e=>{const{prev:t}=cW(e);return t?t.vm.exposed.bottom.value:0},hW=["id"],vW=["innerHTML"],pW=ue({name:"ElMessage"}),gW=ue({...pW,props:uW,emits:fW,setup(e,{expose:t}){const r=e,{Close:n}=h5,i=Ne("message"),a=H(),o=H(!1),s=H(0);let l;const u=$(()=>r.type?r.type==="error"?"danger":r.type:"info"),f=$(()=>{const b=r.type;return{[i.bm("icon",b)]:b&&ab[b]}}),c=$(()=>r.icon||ab[r.type]||""),d=$(()=>dW(r.id)),h=$(()=>r.offset+d.value),v=$(()=>s.value+h.value),p=$(()=>({top:`${h.value}px`,zIndex:r.zIndex}));function g(){r.duration!==0&&({stop:l}=Fp(()=>{y()},r.duration))}function m(){l==null||l()}function y(){o.value=!1}function _({code:b}){b===Lt.esc&&y()}return Et(()=>{g(),o.value=!0}),Ee(()=>r.repeatNum,()=>{m(),g()}),$n(document,"keydown",_),ds(a,()=>{s.value=a.value.getBoundingClientRect().height}),t({visible:o,bottom:v,close:y}),(b,x)=>(K(),xe(Kn,{name:L(i).b("fade"),onBeforeLeave:b.onClose,onAfterLeave:x[0]||(x[0]=w=>b.$emit("destroy")),persisted:""},{default:Z(()=>[qt(se("div",{id:b.id,ref_key:"messageRef",ref:a,class:de([L(i).b(),{[L(i).m(b.type)]:b.type&&!b.icon},L(i).is("center",b.center),L(i).is("closable",b.showClose),b.customClass]),style:At(L(p)),role:"alert",onMouseenter:m,onMouseleave:g},[b.repeatNum>1?(K(),xe(L(aH),{key:0,value:b.repeatNum,type:L(u),class:de(L(i).e("badge"))},null,8,["value","type","class"])):Ye("v-if",!0),L(c)?(K(),xe(L(Cn),{key:1,class:de([L(i).e("icon"),L(f)])},{default:Z(()=>[(K(),xe(hi(L(c))))]),_:1},8,["class"])):Ye("v-if",!0),Be(b.$slots,"default",{},()=>[b.dangerouslyUseHTMLString?(K(),Se(yt,{key:1},[Ye(" Caution here, message could've been compromised, never use user's input as message "),se("p",{class:de(L(i).e("content")),innerHTML:b.message},null,10,vW)],2112)):(K(),Se("p",{key:0,class:de(L(i).e("content"))},Ae(b.message),3))]),b.showClose?(K(),xe(L(Cn),{key:2,class:de(L(i).e("closeBtn")),onClick:Ep(y,["stop"])},{default:Z(()=>[ee(L(n))]),_:1},8,["class","onClick"])):Ye("v-if",!0)],46,hW),[[pi,o.value]])]),_:3},8,["name","onBeforeLeave"]))}});var mW=Je(gW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let yW=1;const UM=e=>{const t=!e||Ue(e)||Ji(e)||Le(e)?{message:e}:e,r={...vr,...t};if(!r.appendTo)r.appendTo=document.body;else if(Ue(r.appendTo)){let n=document.querySelector(r.appendTo);hs(n)||(n=document.body),r.appendTo=n}return r},_W=e=>{const t=Hn.indexOf(e);if(t===-1)return;Hn.splice(t,1);const{handler:r}=e;r.close()},bW=({appendTo:e,...t},r)=>{const{nextZIndex:n}=yy(),i=`message_${yW++}`,a=t.onClose,o=document.createElement("div"),s={...t,zIndex:n()+t.zIndex,id:i,onClose:()=>{a==null||a(),_W(c)},onDestroy:()=>{b_(null,o)}},l=ee(mW,s,Le(s.message)||Ji(s.message)?{default:Le(s.message)?s.message:()=>s.message}:null);l.appContext=r||xs._context,b_(l,o),e.appendChild(o.firstElementChild);const u=l.component,c={id:i,vnode:l,vm:u,handler:{close:()=>{u.exposed.visible.value=!1}},props:l.component.props};return c},xs=(e={},t)=>{if(!Rt)return{close:()=>{}};if(_r(Jp.max)&&Hn.length>=Jp.max)return{close:()=>{}};const r=UM(e);if(r.grouping&&Hn.length){const i=Hn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=bW(r,t);return Hn.push(n),n.handler};GM.forEach(e=>{xs[e]=(t={},r)=>{const n=UM(t);return xs({...n,type:e},r)}});function wW(e){for(const t of Hn)(!e||e===t.props.type)&&t.handler.close()}xs.closeAll=wW;xs._context=null;const YM=v5(xs,"$message"),xW={id:"app"},SW={class:"grid-content header-color"},CW=se("a",{class:"brand",href:"#"},"frp",-1),TW=se("span",null,"Proxies",-1),MW={id:"content"},AW=se("footer",null,null,-1),EW=ue({__name:"App",setup(e){const t=r=>{r==""&&window.open("https://github.com/fatedier/frp")};return(r,n)=>{const i=RM,a=F6,o=$6,s=B6,l=CM,u=gr("router-view");return K(),Se("div",xW,[se("header",SW,[ee(i,null,{default:Z(()=>[CW]),_:1})]),se("section",null,[ee(i,null,{default:Z(()=>[ee(l,{id:"side-nav",xs:24,md:4},{default:Z(()=>[ee(s,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:t},{default:Z(()=>[ee(a,{index:"/"},{default:Z(()=>[kt("Overview")]),_:1}),ee(o,{index:"/proxies"},{title:Z(()=>[TW]),default:Z(()=>[ee(a,{index:"/proxies/tcp"},{default:Z(()=>[kt("TCP")]),_:1}),ee(a,{index:"/proxies/udp"},{default:Z(()=>[kt("UDP")]),_:1}),ee(a,{index:"/proxies/http"},{default:Z(()=>[kt("HTTP")]),_:1}),ee(a,{index:"/proxies/https"},{default:Z(()=>[kt("HTTPS")]),_:1}),ee(a,{index:"/proxies/stcp"},{default:Z(()=>[kt("STCP")]),_:1}),ee(a,{index:"/proxies/sudp"},{default:Z(()=>[kt("SUDP")]),_:1})]),_:1}),ee(a,{index:""},{default:Z(()=>[kt("Help")]),_:1})]),_:1})]),_:1}),ee(l,{xs:24,md:20},{default:Z(()=>[se("div",MW,[ee(u)])]),_:1})]),_:1})]),AW])}}});/*! * vue-router v4.1.6 * (c) 2022 Eduardo San Martin Morote * @license MIT - */const Wo=typeof window<"u";function EW(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const ot=Object.assign;function Gh(e,t){const r={};for(const n in t){const i=t[n];r[n]=Tn(i)?i.map(e):e(i)}return r}const kl=()=>{},Tn=Array.isArray,PW=/\/$/,LW=e=>e.replace(PW,"");function Uh(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=OW(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function DW(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function Xb(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function IW(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&Ss(t.matched[n],r.matched[i])&&YM(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Ss(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function YM(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!RW(e[r],t[r]))return!1;return!0}function RW(e,t){return Tn(e)?Zb(e,t):Tn(t)?Zb(t,e):e===t}function Zb(e,t){return Tn(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function OW(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/");let i=r.length-1,a,o;for(a=0;a1&&i--;else break;return r.slice(0,i).join("/")+"/"+n.slice(a-(a===n.length?1:0)).join("/")}var vu;(function(e){e.pop="pop",e.push="push"})(vu||(vu={}));var Nl;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Nl||(Nl={}));function kW(e){if(!e)if(Wo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),LW(e)}const NW=/^[^#]+#/;function BW(e,t){return e.replace(NW,"#")+t}function FW(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const jd=()=>({left:window.pageXOffset,top:window.pageYOffset});function $W(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=FW(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Qb(e,t){return(history.state?history.state.position-t:-1)+e}const og=new Map;function HW(e,t){og.set(e,t)}function zW(e){const t=og.get(e);return og.delete(e),t}let WW=()=>location.protocol+"//"+location.host;function qM(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),Xb(l,"")}return Xb(r,e)+n+i}function VW(e,t,r,n){let i=[],a=[],o=null;const s=({state:d})=>{const h=qM(e,location),v=r.value,p=t.value;let g=0;if(d){if(r.value=h,t.value=d,o&&o===v){o=null;return}g=p?d.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,v,{delta:g,type:vu.pop,direction:g?g>0?Nl.forward:Nl.back:Nl.unknown})})};function l(){o=r.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return a.push(h),h}function f(){const{history:d}=window;d.state&&d.replaceState(ot({},d.state,{scroll:jd()}),"")}function c(){for(const d of a)d();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f),{pauseListeners:l,listen:u,destroy:c}}function Jb(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?jd():null}}function GW(e){const{history:t,location:r}=window,n={value:qM(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=e.indexOf("#"),d=c>-1?(r.host&&document.querySelector("base")?e:e.slice(c))+l:WW()+e+l;try{t[f?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),r[f?"replace":"assign"](d)}}function o(l,u){const f=ot({},t.state,Jb(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,f,!0),n.value=l}function s(l,u){const f=ot({},i.value,t.state,{forward:l,scroll:jd()});a(f.current,f,!0);const c=ot({},Jb(n.value,l,null),{position:f.position+1},u);a(l,c,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function UW(e){e=kW(e);const t=GW(e),r=VW(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=ot({location:"",base:e,go:n,createHref:BW.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function YW(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),UW(e)}function qW(e){return typeof e=="string"||e&&typeof e=="object"}function jM(e){return typeof e=="string"||typeof e=="symbol"}const Pi={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},KM=Symbol("");var e1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(e1||(e1={}));function Cs(e,t){return ot(new Error,{type:e,[KM]:!0},t)}function ri(e,t){return e instanceof Error&&KM in e&&(t==null||!!(e.type&t))}const t1="[^/]+?",jW={sensitive:!1,strict:!1,start:!0,end:!0},KW=/[.+*?^${}()[\]/\\]/g;function XW(e,t){const r=ot({},jW,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const f=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let c=0;ct.length?t.length===1&&t[0]===40+40?1:-1:0}function QW(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const JW={type:0,value:""},eV=/[a-zA-Z0-9_]/;function tV(e){if(!e)return[[]];if(e==="/")return[[JW]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{o(y)}:kl}function o(f){if(jM(f)){const c=n.get(f);c&&(n.delete(f),r.splice(r.indexOf(c),1),c.children.forEach(o),c.alias.forEach(o))}else{const c=r.indexOf(f);c>-1&&(r.splice(c,1),f.record.name&&n.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return r}function l(f){let c=0;for(;c=0&&(f.record.path!==r[c].record.path||!XM(f,r[c]));)c++;r.splice(c,0,f),f.record.name&&!i1(f)&&n.set(f.record.name,f)}function u(f,c){let d,h={},v,p;if("name"in f&&f.name){if(d=n.get(f.name),!d)throw Cs(1,{location:f});p=d.record.name,h=ot(n1(c.params,d.keys.filter(y=>!y.optional).map(y=>y.name)),f.params&&n1(f.params,d.keys.map(y=>y.name))),v=d.stringify(h)}else if("path"in f)v=f.path,d=r.find(y=>y.re.test(v)),d&&(h=d.parse(v),p=d.record.name);else{if(d=c.name?n.get(c.name):r.find(y=>y.re.test(c.path)),!d)throw Cs(1,{location:f,currentLocation:c});p=d.record.name,h=ot({},c.params,f.params),v=d.stringify(h)}const g=[];let m=d;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:v,params:h,matched:g,meta:oV(g)}}return e.forEach(f=>a(f)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function n1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function iV(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:aV(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function aV(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="boolean"?r:r[n];return t}function i1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function oV(e){return e.reduce((t,r)=>ot(t,r.meta),{})}function a1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function XM(e,t){return t.children.some(r=>r===e||XM(e,r))}const ZM=/#/g,sV=/&/g,lV=/\//g,uV=/=/g,fV=/\?/g,QM=/\+/g,cV=/%5B/g,dV=/%5D/g,JM=/%5E/g,hV=/%60/g,eA=/%7B/g,vV=/%7C/g,tA=/%7D/g,pV=/%20/g;function My(e){return encodeURI(""+e).replace(vV,"|").replace(cV,"[").replace(dV,"]")}function gV(e){return My(e).replace(eA,"{").replace(tA,"}").replace(JM,"^")}function sg(e){return My(e).replace(QM,"%2B").replace(pV,"+").replace(ZM,"%23").replace(sV,"%26").replace(hV,"`").replace(eA,"{").replace(tA,"}").replace(JM,"^")}function mV(e){return sg(e).replace(uV,"%3D")}function yV(e){return My(e).replace(ZM,"%23").replace(fV,"%3F")}function _V(e){return e==null?"":yV(e).replace(lV,"%2F")}function Uc(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function bV(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&sg(a)):[n&&sg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function wV(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=Tn(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const xV=Symbol(""),s1=Symbol(""),Ay=Symbol(""),rA=Symbol(""),lg=Symbol("");function qs(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function Hi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=c=>{c===!1?s(Cs(4,{from:r,to:t})):c instanceof Error?s(c):qW(c)?s(Cs(2,{from:t,to:c})):(a&&n.enterCallbacks[i]===a&&typeof c=="function"&&a.push(c),o())},u=e.call(n&&n.instances[i],t,r,l);let f=Promise.resolve(u);e.length<3&&(f=f.then(l)),f.catch(c=>s(c))})}function Yh(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(SV(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Hi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const f=EW(u)?u.default:u;a.components[o]=f;const d=(f.__vccOpts||f)[t];return d&&Hi(d,r,n,a,o)()}))}}return i}function SV(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function l1(e){const t=De(Ay),r=De(rA),n=$(()=>t.resolve(L(e.to))),i=$(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const d=c.findIndex(Ss.bind(null,f));if(d>-1)return d;const h=u1(l[u-2]);return u>1&&u1(f)===h&&c[c.length-1].path!==h?c.findIndex(Ss.bind(null,l[u-2])):d}),a=$(()=>i.value>-1&&AV(r.params,n.value.params)),o=$(()=>i.value>-1&&i.value===r.matched.length-1&&YM(r.params,n.value.params));function s(l={}){return MV(l)?t[L(e.replace)?"replace":"push"](L(e.to)).catch(kl):Promise.resolve()}return{route:n,href:$(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const CV=ue({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:l1,setup(e,{slots:t}){const r=ln(l1(e)),{options:n}=De(Ay),i=$(()=>({[f1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[f1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:we("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),TV=CV;function MV(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function AV(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!Tn(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function u1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const f1=(e,t,r)=>e??t??r,EV=ue({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=De(lg),i=$(()=>e.route||n.value),a=De(s1,0),o=$(()=>{let u=L(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=$(()=>i.value.matched[o.value]);Ct(s1,$(()=>o.value+1)),Ct(xV,s),Ct(lg,i);const l=H();return Me(()=>[l.value,s.value,e.name],([u,f,c],[d,h,v])=>{f&&(f.instances[c]=u,h&&h!==f&&u&&u===d&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),u&&f&&(!h||!Ss(f,h)||!d)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=e.name,c=s.value,d=c&&c.components[f];if(!d)return c1(r.default,{Component:d,route:u});const h=c.props[f],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,g=we(d,ot({},v,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return c1(r.default,{Component:g,route:u})||g}}});function c1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const PV=EV;function LV(e){const t=nV(e.routes,e),r=e.parseQuery||bV,n=e.stringifyQuery||o1,i=e.history,a=qs(),o=qs(),s=qs(),l=mD(Pi);let u=Pi;Wo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Gh.bind(null,V=>""+V),c=Gh.bind(null,_V),d=Gh.bind(null,Uc);function h(V,Q){let W,Y;return jM(V)?(W=t.getRecordMatcher(V),Y=Q):Y=V,t.addRoute(Y,W)}function v(V){const Q=t.getRecordMatcher(V);Q&&t.removeRoute(Q)}function p(){return t.getRoutes().map(V=>V.record)}function g(V){return!!t.getRecordMatcher(V)}function m(V,Q){if(Q=ot({},Q||l.value),typeof V=="string"){const P=Uh(r,V,Q.path),I=t.resolve({path:P.path},Q),z=i.createHref(P.fullPath);return ot(P,I,{params:d(I.params),hash:Uc(P.hash),redirectedFrom:void 0,href:z})}let W;if("path"in V)W=ot({},V,{path:Uh(r,V.path,Q.path).path});else{const P=ot({},V.params);for(const I in P)P[I]==null&&delete P[I];W=ot({},V,{params:c(V.params)}),Q.params=c(Q.params)}const Y=t.resolve(W,Q),se=V.hash||"";Y.params=f(d(Y.params));const he=DW(n,ot({},V,{hash:gV(se),path:Y.path})),Z=i.createHref(he);return ot({fullPath:he,hash:se,query:n===o1?wV(V.query):V.query||{}},Y,{redirectedFrom:void 0,href:Z})}function y(V){return typeof V=="string"?Uh(r,V,l.value.path):ot({},V)}function _(V,Q){if(u!==V)return Cs(8,{from:Q,to:V})}function b(V){return S(V)}function x(V){return b(ot(y(V),{replace:!0}))}function w(V){const Q=V.matched[V.matched.length-1];if(Q&&Q.redirect){const{redirect:W}=Q;let Y=typeof W=="function"?W(V):W;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=y(Y):{path:Y},Y.params={}),ot({query:V.query,hash:V.hash,params:"path"in Y?{}:V.params},Y)}}function S(V,Q){const W=u=m(V),Y=l.value,se=V.state,he=V.force,Z=V.replace===!0,P=w(W);if(P)return S(ot(y(P),{state:typeof P=="object"?ot({},se,P.state):se,force:he,replace:Z}),Q||W);const I=W;I.redirectedFrom=Q;let z;return!he&&IW(n,Y,W)&&(z=Cs(16,{to:I,from:Y}),U(Y,Y,!0,!1)),(z?Promise.resolve(z):T(I,Y)).catch(G=>ri(G)?ri(G,2)?G:N(G):j(G,I,Y)).then(G=>{if(G){if(ri(G,2))return S(ot({replace:Z},y(G.to),{state:typeof G.to=="object"?ot({},se,G.to.state):se,force:he}),Q||I)}else G=A(I,Y,!0,Z,se);return E(I,Y,G),G})}function C(V,Q){const W=_(V,Q);return W?Promise.reject(W):Promise.resolve()}function T(V,Q){let W;const[Y,se,he]=DV(V,Q);W=Yh(Y.reverse(),"beforeRouteLeave",V,Q);for(const P of Y)P.leaveGuards.forEach(I=>{W.push(Hi(I,V,Q))});const Z=C.bind(null,V,Q);return W.push(Z),Mo(W).then(()=>{W=[];for(const P of a.list())W.push(Hi(P,V,Q));return W.push(Z),Mo(W)}).then(()=>{W=Yh(se,"beforeRouteUpdate",V,Q);for(const P of se)P.updateGuards.forEach(I=>{W.push(Hi(I,V,Q))});return W.push(Z),Mo(W)}).then(()=>{W=[];for(const P of V.matched)if(P.beforeEnter&&!Q.matched.includes(P))if(Tn(P.beforeEnter))for(const I of P.beforeEnter)W.push(Hi(I,V,Q));else W.push(Hi(P.beforeEnter,V,Q));return W.push(Z),Mo(W)}).then(()=>(V.matched.forEach(P=>P.enterCallbacks={}),W=Yh(he,"beforeRouteEnter",V,Q),W.push(Z),Mo(W))).then(()=>{W=[];for(const P of o.list())W.push(Hi(P,V,Q));return W.push(Z),Mo(W)}).catch(P=>ri(P,8)?P:Promise.reject(P))}function E(V,Q,W){for(const Y of s.list())Y(V,Q,W)}function A(V,Q,W,Y,se){const he=_(V,Q);if(he)return he;const Z=Q===Pi,P=Wo?history.state:{};W&&(Y||Z?i.replace(V.fullPath,ot({scroll:Z&&P&&P.scroll},se)):i.push(V.fullPath,se)),l.value=V,U(V,Q,W,Z),N()}let M;function D(){M||(M=i.listen((V,Q,W)=>{if(!Te.listening)return;const Y=m(V),se=w(Y);if(se){S(ot(se,{replace:!0}),Y).catch(kl);return}u=Y;const he=l.value;Wo&&HW(Qb(he.fullPath,W.delta),jd()),T(Y,he).catch(Z=>ri(Z,12)?Z:ri(Z,2)?(S(Z.to,Y).then(P=>{ri(P,20)&&!W.delta&&W.type===vu.pop&&i.go(-1,!1)}).catch(kl),Promise.reject()):(W.delta&&i.go(-W.delta,!1),j(Z,Y,he))).then(Z=>{Z=Z||A(Y,he,!1),Z&&(W.delta&&!ri(Z,8)?i.go(-W.delta,!1):W.type===vu.pop&&ri(Z,20)&&i.go(-1,!1)),E(Y,he,Z)}).catch(kl)}))}let O=qs(),k=qs(),F;function j(V,Q,W){N(V);const Y=k.list();return Y.length?Y.forEach(se=>se(V,Q,W)):console.error(V),Promise.reject(V)}function B(){return F&&l.value!==Pi?Promise.resolve():new Promise((V,Q)=>{O.add([V,Q])})}function N(V){return F||(F=!V,D(),O.list().forEach(([Q,W])=>V?W(V):Q()),O.reset()),V}function U(V,Q,W,Y){const{scrollBehavior:se}=e;if(!Wo||!se)return Promise.resolve();const he=!W&&zW(Qb(V.fullPath,0))||(Y||!W)&&history.state&&history.state.scroll||null;return Ht().then(()=>se(V,Q,he)).then(Z=>Z&&$W(Z)).catch(Z=>j(Z,V,Q))}const re=V=>i.go(V);let ae;const me=new Set,Te={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,hasRoute:g,getRoutes:p,resolve:m,options:e,push:b,replace:x,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:k.add,isReady:B,install(V){const Q=this;V.component("RouterLink",TV),V.component("RouterView",PV),V.config.globalProperties.$router=Q,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>L(l)}),Wo&&!ae&&l.value===Pi&&(ae=!0,b(i.location).catch(se=>{}));const W={};for(const se in Pi)W[se]=$(()=>l.value[se]);V.provide(Ay,Q),V.provide(rA,ln(W)),V.provide(lg,l);const Y=V.unmount;me.add(V),V.unmount=function(){me.delete(V),me.size<1&&(u=Pi,M&&M(),M=null,l.value=Pi,ae=!1,F=!1),Y()}}};return Te}function Mo(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function DV(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oSs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>Ss(u,l))||i.push(l))}return[r,n,i]}var Ji={},IV={get exports(){return Ji},set exports(e){Ji=e}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(LH,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(c){return typeof c<"u"&&c!==null},o=function(c){return c!==c},s=function(c){return isFinite(c)&&!o(parseFloat(c))},l=function(c){var d=Object.prototype.toString.call(c);return d==="[object Array]"},u={intword:function(c,d){var h=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(c,h)},compactInteger:function(c){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1];d=Math.max(d,0);var h=parseInt(c,10),v=h<0?"-":"",p=Math.abs(h),g=String(p),m=g.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+g;if(m>y[0]+3)return h.toExponential(d).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=m-b+1,C=g.split(""),T=C.slice(0,S),E=C.slice(S,S+d+1),A=T.join(""),M=E.join("");M.length=v)return u.formatNumber(c/v,d,"")+" "+h+"B"}return c>=1024?u.formatNumber(c/1024,0)+" KB":u.formatNumber(c,0)+u.pluralize(c," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(c){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1],h=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,T){return T?S.substr(0,T)+C:""},g=function(S,C,T){return S.substr(T).replace(/(\d{3})(?=\d)/g,"$1"+C)},m=function(S,C,T){return T?C+u.toFixed(Math.abs(S),T).split(".")[1]:""},y=u.normalizePrecision(d),_=c<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(c||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,h,x)+g(b,h,x)+m(c,v,y)},toFixed:function(c,d){d=a(d)?d:u.normalizePrecision(d,0);var h=Math.pow(10,d);return(Math.round(c*h)/h).toFixed(d)},normalizePrecision:function(c,d){return c=Math.round(Math.abs(c)),o(c)?d:c},ordinal:function(c){var d=parseInt(c,10);if(d===0)return c;var h=d%100;if([11,12,13].indexOf(h)>=0)return d+"th";var v=d%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+d+p},times:function(c){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(c)&&c>=0){var h=parseFloat(c),v=["never","once","twice"];if(a(d[h]))return String(d[h]);var p=a(v[h])&&v[h].toString();return p||h.toString()+" times"}return null},pluralize:function(c,d,h){return a(c)&&a(d)?(h=a(h)?h:d+"s",parseInt(c,10)===1?d:h):null},truncate:function(c){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return c.length>d?c.substring(0,d-h.length)+h:c},truncateWords:function(c,d){for(var h=c.split(" "),v="",p=0;pd?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(c){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(c)&&s(d)&&c>d&&(v=d+h),(v||c).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(c,d,h){var v=c.length,p=void 0;if(v<2)return String(c);if(v===2)return c.join(" and ");if(a(d)&&v>d){var g=v-d;p=d,h=a(h)?h:", and "+g+" "+u.pluralize(g,"other")}else p=-1,h=", and "+c[v-1];return c.slice(0,p).join(", ")+h},dictionary:function(c){var d=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],h=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(c)&&(typeof c>"u"?"undefined":r(c))==="object"&&!l(c)){var p=[];for(var g in c)if(c.hasOwnProperty(g)){var m=c[g];p.push(""+g+d+m)}return p.join(h)}return v},frequency:function(c,d){if(!l(c))return null;var h=c.length,v=u.times(h);return h===0?v+" "+d:d+" "+v},pace:function(c,d){var h=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(c===0||d===0)return"No "+u.pluralize(0,h);for(var v="Approximately",p=void 0,g=void 0,m=c/d,y=0;y1){p=_.name;break}}p||(v="Less than",g=1,p=n[n.length-1].name);var b=Math.round(g);return h=u.pluralize(b,h),v+" "+b+" "+h+" per "+p},nl2br:function(c){var d=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return c.replace(/\n/g,d)},br2nl:function(c){var d=arguments.length<=1||arguments[1]===void 0?`\r -`:arguments[1];return c.replace(/\/g,d)},capitalize:function(c){var d=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+c.charAt(0).toUpperCase()+(d?c.slice(1).toLowerCase():c.slice(1))},capitalizeAll:function(c){return c.replace(/(?:^|\s)\S/g,function(d){return d.toUpperCase()})},titleCase:function(c){var d=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,h=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,g=void 0;return g=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],x=[],w=y.split(_?p:v),S=0;S{},Tn=Array.isArray,LW=/\/$/,DW=e=>e.replace(LW,"");function Uh(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=kW(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function IW(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function Xb(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function RW(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&Ss(t.matched[n],r.matched[i])&&qM(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Ss(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function qM(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!OW(e[r],t[r]))return!1;return!0}function OW(e,t){return Tn(e)?Zb(e,t):Tn(t)?Zb(t,e):e===t}function Zb(e,t){return Tn(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function kW(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/");let i=r.length-1,a,o;for(a=0;a1&&i--;else break;return r.slice(0,i).join("/")+"/"+n.slice(a-(a===n.length?1:0)).join("/")}var vu;(function(e){e.pop="pop",e.push="push"})(vu||(vu={}));var Nl;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Nl||(Nl={}));function NW(e){if(!e)if(Wo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),DW(e)}const BW=/^[^#]+#/;function FW(e,t){return e.replace(BW,"#")+t}function $W(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const jd=()=>({left:window.pageXOffset,top:window.pageYOffset});function HW(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=$W(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Qb(e,t){return(history.state?history.state.position-t:-1)+e}const og=new Map;function zW(e,t){og.set(e,t)}function WW(e){const t=og.get(e);return og.delete(e),t}let VW=()=>location.protocol+"//"+location.host;function jM(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),Xb(l,"")}return Xb(r,e)+n+i}function GW(e,t,r,n){let i=[],a=[],o=null;const s=({state:d})=>{const h=jM(e,location),v=r.value,p=t.value;let g=0;if(d){if(r.value=h,t.value=d,o&&o===v){o=null;return}g=p?d.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,v,{delta:g,type:vu.pop,direction:g?g>0?Nl.forward:Nl.back:Nl.unknown})})};function l(){o=r.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return a.push(h),h}function f(){const{history:d}=window;d.state&&d.replaceState(st({},d.state,{scroll:jd()}),"")}function c(){for(const d of a)d();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f),{pauseListeners:l,listen:u,destroy:c}}function Jb(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?jd():null}}function UW(e){const{history:t,location:r}=window,n={value:jM(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=e.indexOf("#"),d=c>-1?(r.host&&document.querySelector("base")?e:e.slice(c))+l:VW()+e+l;try{t[f?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),r[f?"replace":"assign"](d)}}function o(l,u){const f=st({},t.state,Jb(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,f,!0),n.value=l}function s(l,u){const f=st({},i.value,t.state,{forward:l,scroll:jd()});a(f.current,f,!0);const c=st({},Jb(n.value,l,null),{position:f.position+1},u);a(l,c,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function YW(e){e=NW(e);const t=UW(e),r=GW(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=st({location:"",base:e,go:n,createHref:FW.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function qW(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),YW(e)}function jW(e){return typeof e=="string"||e&&typeof e=="object"}function KM(e){return typeof e=="string"||typeof e=="symbol"}const Li={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},XM=Symbol("");var e1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(e1||(e1={}));function Cs(e,t){return st(new Error,{type:e,[XM]:!0},t)}function ri(e,t){return e instanceof Error&&XM in e&&(t==null||!!(e.type&t))}const t1="[^/]+?",KW={sensitive:!1,strict:!1,start:!0,end:!0},XW=/[.+*?^${}()[\]/\\]/g;function ZW(e,t){const r=st({},KW,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const f=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let c=0;ct.length?t.length===1&&t[0]===40+40?1:-1:0}function JW(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const eV={type:0,value:""},tV=/[a-zA-Z0-9_]/;function rV(e){if(!e)return[[]];if(e==="/")return[[eV]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{o(y)}:kl}function o(f){if(KM(f)){const c=n.get(f);c&&(n.delete(f),r.splice(r.indexOf(c),1),c.children.forEach(o),c.alias.forEach(o))}else{const c=r.indexOf(f);c>-1&&(r.splice(c,1),f.record.name&&n.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return r}function l(f){let c=0;for(;c=0&&(f.record.path!==r[c].record.path||!ZM(f,r[c]));)c++;r.splice(c,0,f),f.record.name&&!i1(f)&&n.set(f.record.name,f)}function u(f,c){let d,h={},v,p;if("name"in f&&f.name){if(d=n.get(f.name),!d)throw Cs(1,{location:f});p=d.record.name,h=st(n1(c.params,d.keys.filter(y=>!y.optional).map(y=>y.name)),f.params&&n1(f.params,d.keys.map(y=>y.name))),v=d.stringify(h)}else if("path"in f)v=f.path,d=r.find(y=>y.re.test(v)),d&&(h=d.parse(v),p=d.record.name);else{if(d=c.name?n.get(c.name):r.find(y=>y.re.test(c.path)),!d)throw Cs(1,{location:f,currentLocation:c});p=d.record.name,h=st({},c.params,f.params),v=d.stringify(h)}const g=[];let m=d;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:v,params:h,matched:g,meta:sV(g)}}return e.forEach(f=>a(f)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function n1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function aV(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:oV(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function oV(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="boolean"?r:r[n];return t}function i1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function sV(e){return e.reduce((t,r)=>st(t,r.meta),{})}function a1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function ZM(e,t){return t.children.some(r=>r===e||ZM(e,r))}const QM=/#/g,lV=/&/g,uV=/\//g,fV=/=/g,cV=/\?/g,JM=/\+/g,dV=/%5B/g,hV=/%5D/g,eA=/%5E/g,vV=/%60/g,tA=/%7B/g,pV=/%7C/g,rA=/%7D/g,gV=/%20/g;function My(e){return encodeURI(""+e).replace(pV,"|").replace(dV,"[").replace(hV,"]")}function mV(e){return My(e).replace(tA,"{").replace(rA,"}").replace(eA,"^")}function sg(e){return My(e).replace(JM,"%2B").replace(gV,"+").replace(QM,"%23").replace(lV,"%26").replace(vV,"`").replace(tA,"{").replace(rA,"}").replace(eA,"^")}function yV(e){return sg(e).replace(fV,"%3D")}function _V(e){return My(e).replace(QM,"%23").replace(cV,"%3F")}function bV(e){return e==null?"":_V(e).replace(uV,"%2F")}function Yc(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function wV(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&sg(a)):[n&&sg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function xV(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=Tn(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const SV=Symbol(""),s1=Symbol(""),Ay=Symbol(""),nA=Symbol(""),lg=Symbol("");function qs(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function zi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=c=>{c===!1?s(Cs(4,{from:r,to:t})):c instanceof Error?s(c):jW(c)?s(Cs(2,{from:t,to:c})):(a&&n.enterCallbacks[i]===a&&typeof c=="function"&&a.push(c),o())},u=e.call(n&&n.instances[i],t,r,l);let f=Promise.resolve(u);e.length<3&&(f=f.then(l)),f.catch(c=>s(c))})}function Yh(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(CV(s)){const u=(s.__vccOpts||s)[t];u&&i.push(zi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const f=PW(u)?u.default:u;a.components[o]=f;const d=(f.__vccOpts||f)[t];return d&&zi(d,r,n,a,o)()}))}}return i}function CV(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function l1(e){const t=Re(Ay),r=Re(nA),n=$(()=>t.resolve(L(e.to))),i=$(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const d=c.findIndex(Ss.bind(null,f));if(d>-1)return d;const h=u1(l[u-2]);return u>1&&u1(f)===h&&c[c.length-1].path!==h?c.findIndex(Ss.bind(null,l[u-2])):d}),a=$(()=>i.value>-1&&EV(r.params,n.value.params)),o=$(()=>i.value>-1&&i.value===r.matched.length-1&&qM(r.params,n.value.params));function s(l={}){return AV(l)?t[L(e.replace)?"replace":"push"](L(e.to)).catch(kl):Promise.resolve()}return{route:n,href:$(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const TV=ue({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:l1,setup(e,{slots:t}){const r=ln(l1(e)),{options:n}=Re(Ay),i=$(()=>({[f1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[f1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:we("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),MV=TV;function AV(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function EV(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!Tn(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function u1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const f1=(e,t,r)=>e??t??r,PV=ue({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Re(lg),i=$(()=>e.route||n.value),a=Re(s1,0),o=$(()=>{let u=L(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=$(()=>i.value.matched[o.value]);Ct(s1,$(()=>o.value+1)),Ct(SV,s),Ct(lg,i);const l=H();return Ee(()=>[l.value,s.value,e.name],([u,f,c],[d,h,v])=>{f&&(f.instances[c]=u,h&&h!==f&&u&&u===d&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),u&&f&&(!h||!Ss(f,h)||!d)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=e.name,c=s.value,d=c&&c.components[f];if(!d)return c1(r.default,{Component:d,route:u});const h=c.props[f],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,g=we(d,st({},v,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return c1(r.default,{Component:g,route:u})||g}}});function c1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const LV=PV;function DV(e){const t=iV(e.routes,e),r=e.parseQuery||wV,n=e.stringifyQuery||o1,i=e.history,a=qs(),o=qs(),s=qs(),l=yD(Li);let u=Li;Wo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Gh.bind(null,V=>""+V),c=Gh.bind(null,bV),d=Gh.bind(null,Yc);function h(V,J){let W,Y;return KM(V)?(W=t.getRecordMatcher(V),Y=J):Y=V,t.addRoute(Y,W)}function v(V){const J=t.getRecordMatcher(V);J&&t.removeRoute(J)}function p(){return t.getRoutes().map(V=>V.record)}function g(V){return!!t.getRecordMatcher(V)}function m(V,J){if(J=st({},J||l.value),typeof V=="string"){const P=Uh(r,V,J.path),I=t.resolve({path:P.path},J),z=i.createHref(P.fullPath);return st(P,I,{params:d(I.params),hash:Yc(P.hash),redirectedFrom:void 0,href:z})}let W;if("path"in V)W=st({},V,{path:Uh(r,V.path,J.path).path});else{const P=st({},V.params);for(const I in P)P[I]==null&&delete P[I];W=st({},V,{params:c(V.params)}),J.params=c(J.params)}const Y=t.resolve(W,J),le=V.hash||"";Y.params=f(d(Y.params));const he=IW(n,st({},V,{hash:mV(le),path:Y.path})),Q=i.createHref(he);return st({fullPath:he,hash:le,query:n===o1?xV(V.query):V.query||{}},Y,{redirectedFrom:void 0,href:Q})}function y(V){return typeof V=="string"?Uh(r,V,l.value.path):st({},V)}function _(V,J){if(u!==V)return Cs(8,{from:J,to:V})}function b(V){return S(V)}function x(V){return b(st(y(V),{replace:!0}))}function w(V){const J=V.matched[V.matched.length-1];if(J&&J.redirect){const{redirect:W}=J;let Y=typeof W=="function"?W(V):W;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=y(Y):{path:Y},Y.params={}),st({query:V.query,hash:V.hash,params:"path"in Y?{}:V.params},Y)}}function S(V,J){const W=u=m(V),Y=l.value,le=V.state,he=V.force,Q=V.replace===!0,P=w(W);if(P)return S(st(y(P),{state:typeof P=="object"?st({},le,P.state):le,force:he,replace:Q}),J||W);const I=W;I.redirectedFrom=J;let z;return!he&&RW(n,Y,W)&&(z=Cs(16,{to:I,from:Y}),U(Y,Y,!0,!1)),(z?Promise.resolve(z):T(I,Y)).catch(G=>ri(G)?ri(G,2)?G:N(G):j(G,I,Y)).then(G=>{if(G){if(ri(G,2))return S(st({replace:Q},y(G.to),{state:typeof G.to=="object"?st({},le,G.to.state):le,force:he}),J||I)}else G=A(I,Y,!0,Q,le);return E(I,Y,G),G})}function C(V,J){const W=_(V,J);return W?Promise.reject(W):Promise.resolve()}function T(V,J){let W;const[Y,le,he]=IV(V,J);W=Yh(Y.reverse(),"beforeRouteLeave",V,J);for(const P of Y)P.leaveGuards.forEach(I=>{W.push(zi(I,V,J))});const Q=C.bind(null,V,J);return W.push(Q),Mo(W).then(()=>{W=[];for(const P of a.list())W.push(zi(P,V,J));return W.push(Q),Mo(W)}).then(()=>{W=Yh(le,"beforeRouteUpdate",V,J);for(const P of le)P.updateGuards.forEach(I=>{W.push(zi(I,V,J))});return W.push(Q),Mo(W)}).then(()=>{W=[];for(const P of V.matched)if(P.beforeEnter&&!J.matched.includes(P))if(Tn(P.beforeEnter))for(const I of P.beforeEnter)W.push(zi(I,V,J));else W.push(zi(P.beforeEnter,V,J));return W.push(Q),Mo(W)}).then(()=>(V.matched.forEach(P=>P.enterCallbacks={}),W=Yh(he,"beforeRouteEnter",V,J),W.push(Q),Mo(W))).then(()=>{W=[];for(const P of o.list())W.push(zi(P,V,J));return W.push(Q),Mo(W)}).catch(P=>ri(P,8)?P:Promise.reject(P))}function E(V,J,W){for(const Y of s.list())Y(V,J,W)}function A(V,J,W,Y,le){const he=_(V,J);if(he)return he;const Q=J===Li,P=Wo?history.state:{};W&&(Y||Q?i.replace(V.fullPath,st({scroll:Q&&P&&P.scroll},le)):i.push(V.fullPath,le)),l.value=V,U(V,J,W,Q),N()}let M;function D(){M||(M=i.listen((V,J,W)=>{if(!Me.listening)return;const Y=m(V),le=w(Y);if(le){S(st(le,{replace:!0}),Y).catch(kl);return}u=Y;const he=l.value;Wo&&zW(Qb(he.fullPath,W.delta),jd()),T(Y,he).catch(Q=>ri(Q,12)?Q:ri(Q,2)?(S(Q.to,Y).then(P=>{ri(P,20)&&!W.delta&&W.type===vu.pop&&i.go(-1,!1)}).catch(kl),Promise.reject()):(W.delta&&i.go(-W.delta,!1),j(Q,Y,he))).then(Q=>{Q=Q||A(Y,he,!1),Q&&(W.delta&&!ri(Q,8)?i.go(-W.delta,!1):W.type===vu.pop&&ri(Q,20)&&i.go(-1,!1)),E(Y,he,Q)}).catch(kl)}))}let O=qs(),k=qs(),F;function j(V,J,W){N(V);const Y=k.list();return Y.length?Y.forEach(le=>le(V,J,W)):console.error(V),Promise.reject(V)}function B(){return F&&l.value!==Li?Promise.resolve():new Promise((V,J)=>{O.add([V,J])})}function N(V){return F||(F=!V,D(),O.list().forEach(([J,W])=>V?W(V):J()),O.reset()),V}function U(V,J,W,Y){const{scrollBehavior:le}=e;if(!Wo||!le)return Promise.resolve();const he=!W&&WW(Qb(V.fullPath,0))||(Y||!W)&&history.state&&history.state.scroll||null;return zt().then(()=>le(V,J,he)).then(Q=>Q&&HW(Q)).catch(Q=>j(Q,V,J))}const re=V=>i.go(V);let ae;const me=new Set,Me={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,hasRoute:g,getRoutes:p,resolve:m,options:e,push:b,replace:x,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:k.add,isReady:B,install(V){const J=this;V.component("RouterLink",MV),V.component("RouterView",LV),V.config.globalProperties.$router=J,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>L(l)}),Wo&&!ae&&l.value===Li&&(ae=!0,b(i.location).catch(le=>{}));const W={};for(const le in Li)W[le]=$(()=>l.value[le]);V.provide(Ay,J),V.provide(nA,ln(W)),V.provide(lg,l);const Y=V.unmount;me.add(V),V.unmount=function(){me.delete(V),me.size<1&&(u=Li,M&&M(),M=null,l.value=Li,ae=!1,F=!1),Y()}}};return Me}function Mo(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function IV(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oSs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>Ss(u,l))||i.push(l))}return[r,n,i]}var ea={},RV={get exports(){return ea},set exports(e){ea=e}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(DH,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(c){return typeof c<"u"&&c!==null},o=function(c){return c!==c},s=function(c){return isFinite(c)&&!o(parseFloat(c))},l=function(c){var d=Object.prototype.toString.call(c);return d==="[object Array]"},u={intword:function(c,d){var h=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(c,h)},compactInteger:function(c){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1];d=Math.max(d,0);var h=parseInt(c,10),v=h<0?"-":"",p=Math.abs(h),g=String(p),m=g.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+g;if(m>y[0]+3)return h.toExponential(d).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=m-b+1,C=g.split(""),T=C.slice(0,S),E=C.slice(S,S+d+1),A=T.join(""),M=E.join("");M.length=v)return u.formatNumber(c/v,d,"")+" "+h+"B"}return c>=1024?u.formatNumber(c/1024,0)+" KB":u.formatNumber(c,0)+u.pluralize(c," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(c){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1],h=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,T){return T?S.substr(0,T)+C:""},g=function(S,C,T){return S.substr(T).replace(/(\d{3})(?=\d)/g,"$1"+C)},m=function(S,C,T){return T?C+u.toFixed(Math.abs(S),T).split(".")[1]:""},y=u.normalizePrecision(d),_=c<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(c||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,h,x)+g(b,h,x)+m(c,v,y)},toFixed:function(c,d){d=a(d)?d:u.normalizePrecision(d,0);var h=Math.pow(10,d);return(Math.round(c*h)/h).toFixed(d)},normalizePrecision:function(c,d){return c=Math.round(Math.abs(c)),o(c)?d:c},ordinal:function(c){var d=parseInt(c,10);if(d===0)return c;var h=d%100;if([11,12,13].indexOf(h)>=0)return d+"th";var v=d%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+d+p},times:function(c){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(c)&&c>=0){var h=parseFloat(c),v=["never","once","twice"];if(a(d[h]))return String(d[h]);var p=a(v[h])&&v[h].toString();return p||h.toString()+" times"}return null},pluralize:function(c,d,h){return a(c)&&a(d)?(h=a(h)?h:d+"s",parseInt(c,10)===1?d:h):null},truncate:function(c){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return c.length>d?c.substring(0,d-h.length)+h:c},truncateWords:function(c,d){for(var h=c.split(" "),v="",p=0;pd?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(c){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(c)&&s(d)&&c>d&&(v=d+h),(v||c).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(c,d,h){var v=c.length,p=void 0;if(v<2)return String(c);if(v===2)return c.join(" and ");if(a(d)&&v>d){var g=v-d;p=d,h=a(h)?h:", and "+g+" "+u.pluralize(g,"other")}else p=-1,h=", and "+c[v-1];return c.slice(0,p).join(", ")+h},dictionary:function(c){var d=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],h=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(c)&&(typeof c>"u"?"undefined":r(c))==="object"&&!l(c)){var p=[];for(var g in c)if(c.hasOwnProperty(g)){var m=c[g];p.push(""+g+d+m)}return p.join(h)}return v},frequency:function(c,d){if(!l(c))return null;var h=c.length,v=u.times(h);return h===0?v+" "+d:d+" "+v},pace:function(c,d){var h=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(c===0||d===0)return"No "+u.pluralize(0,h);for(var v="Approximately",p=void 0,g=void 0,m=c/d,y=0;y1){p=_.name;break}}p||(v="Less than",g=1,p=n[n.length-1].name);var b=Math.round(g);return h=u.pluralize(b,h),v+" "+b+" "+h+" per "+p},nl2br:function(c){var d=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return c.replace(/\n/g,d)},br2nl:function(c){var d=arguments.length<=1||arguments[1]===void 0?`\r +`:arguments[1];return c.replace(/\/g,d)},capitalize:function(c){var d=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+c.charAt(0).toUpperCase()+(d?c.slice(1).toLowerCase():c.slice(1))},capitalizeAll:function(c){return c.replace(/(?:^|\s)\S/g,function(d){return d.toUpperCase()})},titleCase:function(c){var d=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,h=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,g=void 0;return g=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],x=[],w=y.split(_?p:v),S=0;S"u"&&typeof self<"u"?Fa.worker=!0:typeof navigator>"u"?(Fa.node=!0,Fa.svgSupported=!0):kV(navigator.userAgent,Fa);function kV(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ve=Fa;var Ey=12,NV="sans-serif",co=Ey+"px "+NV,BV=20,FV=100,$V="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function HV(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function dG(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=e[u].getBoundingClientRect(),c=2*u,d=f.left,h=f.top;o.push(d,h),l=l&&a&&d===a[c]&&h===a[c+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?p1(s,o):p1(o,s))}function fA(e){return e.nodeName.toUpperCase()==="CANVAS"}var hG=/([&<>"'])/g,vG={"&":"&","<":"<",">":">",'"':""","'":"'"};function Kr(e){return e==null?"":(e+"").replace(hG,function(t,r){return vG[r]})}var pG=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xh=[],gG=Ve.browser.firefox&&+Ve.browser.version.split(".")[0]<39;function gg(e,t,r,n){return r=r||{},n?m1(e,t,r):gG&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):m1(e,t,r),r}function m1(e,t,r){if(Ve.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(fA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(pg(Xh,e,n,i)){r.zrX=Xh[0],r.zrY=Xh[1];return}}r.zrX=r.zrY=0}function Ry(e){return e||window.event}function Ur(e,t,r){if(t=Ry(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&gg(e,o,t,r)}else{gg(e,t,t,r);var a=mG(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&pG.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function mG(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function yG(e,t,r,n){e.addEventListener(t,r,n)}function _G(e,t,r,n){e.removeEventListener(t,r,n)}var cA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},bG=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=y1(n)/y1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=wG(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function gu(){return[1,0,0,1,0,0]}function Oy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function xG(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function is(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function mg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function ky(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),f=Math.cos(r);return e[0]=n*f+o*u,e[1]=-n*u+o*f,e[2]=i*f+s*u,e[3]=-i*u+f*s,e[4]=f*a+u*l,e[5]=f*l-u*a,e}function SG(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function Qd(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var CG=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const ke=CG;var pf=Math.min,gf=Math.max,da=new ke,ha=new ke,va=new ke,pa=new ke,js=new ke,Ks=new ke,TG=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=pf(t.x,this.x),n=pf(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=gf(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=gf(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=gu();return mg(a,a,[-r.x,-r.y]),SG(a,a,[n,i]),mg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,f=t.y,c=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}da.x=va.x=r.x,da.y=pa.y=r.y,ha.x=pa.x=r.x+r.width,ha.y=va.y=r.y+r.height,da.transform(n),pa.transform(n),ha.transform(n),va.transform(n),t.x=pf(da.x,ha.x,va.x,pa.x),t.y=pf(da.y,ha.y,va.y,pa.y);var l=gf(da.x,ha.x,va.x,pa.x),u=gf(da.y,ha.y,va.y,pa.y);t.width=l-t.x,t.height=u-t.y},e}();const et=TG;var dA="silent";function MG(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:AG}}function AG(){cA(this.event)}var EG=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(Jn),Xs=function(){function e(t,r){this.x=t,this.y=r}return e}(),PG=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Qh=new et(0,0,0,0),hA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new Xs(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new EG,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new sG(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(R(PG,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=vA(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new Xs(n,i):this.findHover(n,i),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new Xs(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=MG(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new Xs(r,n);if(_1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new et(r-u,n-u,l,l),c=a.length-1;c>=0;c--){var d=a[c];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(Qh.copy(d.getBoundingRect()),d.transform&&Qh.applyTransform(d.transform),Qh.intersect(f)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function LG(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?dA:!0}return!1}function _1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=LG(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==dA)){t.target=o;break}}}function vA(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const DG=hA;var pA=32,Zs=7;function IG(e){for(var t=0;e>=pA;)t|=e&1,e>>=1;return e+t}function b1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function RG(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function Jh(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+f])>0?o=f+1:l=f}return l}function ev(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+f])<0?l=f:o=f+1}return l}function OG(e,t){var r=Zs,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;f(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=Zs||S>=Zs);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[x+m];e[b]=o[_];return}for(var S=r;;){var C=0,T=0,E=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,T=0,--v===0){E=!0;break}}else if(e[b--]=o[_--],T++,C=0,--g===1){E=!0;break}while((C|T)=0;m--)e[w+m]=e[x+m];if(v===0){E=!0;break}}if(e[b--]=o[_--],--g===1){E=!0;break}if(T=g-Jh(e[y],o,0,g,g-1,t),T!==0){for(b-=T,_-=T,g-=T,w=b+1,x=_+1,m=0;m=Zs||T>=Zs);if(E)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,x=y+1,m=v-1;m>=0;m--)e[w+m]=e[x+m];e[b]=o[_]}else{if(g===0)throw new Error;for(x=b-(g-1),m=0;ms&&(l=s),w1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Ir=1,ml=2,Vo=4,x1=!1;function tv(){x1||(x1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function S1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var kG=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=S1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(tv(),f.z=0),isNaN(f.z2)&&(tv(),f.z2=0),isNaN(f.zlevel)&&(tv(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const NG=kG;var gA;gA=Ve.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const yg=gA;var _c={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-_c.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?_c.bounceIn(e*2)*.5:_c.bounceOut(e*2-1)*.5+.5}};const mA=_c;var mf=Math.pow,Ki=Math.sqrt,jc=1e-8,yA=1e-4,C1=Ki(3),yf=1/3,Bn=Ns(),Xr=Ns(),as=Ns();function Gi(e){return e>-jc&&ejc||e<-jc}function Gt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function T1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function bA(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,f=s*s-3*o*l,c=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Gi(f)&&Gi(c))if(Gi(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=c*c-4*f*d;if(Gi(p)){var g=c/f,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Ki(p),_=f*s+1.5*o*(-c+y),b=f*s+1.5*o*(-c-y);_<0?_=-mf(-_,yf):_=mf(_,yf),b<0?b=-mf(-b,yf):b=mf(b,yf);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var x=(2*f*s-3*o*c)/(2*Ki(f*f*f)),w=Math.acos(x)/3,S=Ki(f),C=Math.cos(w),v=(-s-2*S*C)/(3*o),m=(-s+S*(C+C1*Math.sin(w)))/(3*o),T=(-s+S*(C-C1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),T>=0&&T<=1&&(a[h++]=T)}}return h}function wA(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Gi(o)){if(_A(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Gi(f))i[0]=-a/(2*o);else if(f>0){var c=Ki(f),u=(-a+c)/(2*o),d=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function Kc(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function xA(e,t,r,n,i,a,o,s,l,u,f){var c,d=.005,h=1/0,v,p,g,m;Bn[0]=l,Bn[1]=u;for(var y=0;y<1;y+=.05)Xr[0]=Gt(e,r,i,o,y),Xr[1]=Gt(t,n,a,s,y),g=ns(Bn,Xr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Gi(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=Ki(f),u=(-o+c)/(2*a),d=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function SA(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function Xc(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function CA(e,t,r,n,i,a,o,s,l){var u,f=.005,c=1/0;Bn[0]=o,Bn[1]=s;for(var d=0;d<1;d+=.05){Xr[0]=Zt(e,r,i,d),Xr[1]=Zt(t,n,a,d);var h=ns(Bn,Xr);h=0&&h=1?1:bA(0,n,a,1,l,s)&&Gt(0,i,o,1,s[0])}}}var zG=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Sr,this.ondestroy=t.ondestroy||Sr,this.onrestart=t.onrestart||Sr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=We(t)?t:mA[t]||TA(t)},e}();const WG=zG;var MA=function(){function e(t){this.value=t}return e}(),VG=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new MA(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),GG=function(){function e(t){this._list=new VG,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new MA(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const Wu=GG;var A1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function $l(e){return e=Math.round(e),e<0?0:e>255?255:e}function E1(e){return e<0?0:e>1?1:e}function rv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?$l(parseFloat(t)/100*255):$l(parseInt(t,10))}function Hl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?E1(parseFloat(t)/100):E1(parseFloat(t))}function nv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Gr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function _g(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var AA=new Wu(20),_f=null;function Eo(e,t){_f&&_g(_f,t),_f=AA.put(e,_f||t.slice())}function to(e,t){if(e){t=t||[];var r=AA.get(e);if(r)return _g(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in A1)return _g(t,A1[n]),Eo(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Gr(t,0,0,0,1);return}return Gr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Eo(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Gr(t,0,0,0,1);return}return Gr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Eo(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Gr(t,+u[0],+u[1],+u[2],1):Gr(t,0,0,0,1);f=Hl(u.pop());case"rgb":if(u.length>=3)return Gr(t,rv(u[0]),rv(u[1]),rv(u[2]),u.length===3?f:Hl(u[3])),Eo(e,t),t;Gr(t,0,0,0,1);return;case"hsla":if(u.length!==4){Gr(t,0,0,0,1);return}return u[3]=Hl(u[3]),P1(u,t),Eo(e,t),t;case"hsl":if(u.length!==3){Gr(t,0,0,0,1);return}return P1(u,t),Eo(e,t),t;default:return}}Gr(t,0,0,0,1)}}function P1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Hl(e[1]),i=Hl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Gr(t,$l(nv(o,a,r+1/3)*255),$l(nv(o,a,r)*255),$l(nv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function L1(e,t){var r=to(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ny(r,r.length===4?"rgba":"rgb")}}function Ny(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function Zc(e,t){var r=to(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function UG(e){return e.type==="linear"}function YG(e){return e.type==="radial"}(function(){return Ve.hasGlobalWindow&&We(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var bg=Array.prototype.slice;function li(e,t,r){return(t-e)*r+e}function iv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=I1,l=r;if(Tr(r)){var u=XG(r);s=u,(u===1&&!_t(r[0])||u===2&&!_t(r[0][0]))&&(o=!0)}else if(_t(r)&&!qc(r))s=wf;else if(Ce(r))if(!isNaN(+r))s=wf;else{var f=to(r);f&&(l=f,s=yl)}else if(Xd(r)){var c=oe({},l);c.colorStops=Oe(r.colorStops,function(h){return{offset:h.offset,color:to(h.color)}}),UG(r)?s=wg:YG(r)&&(s=xg),l=c}a===0?this.valType=s:(s!==this.valType||s===I1)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=We(n)?n:mA[n]||TA(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=xf(i),u=R1(i),f=0;f=0&&!(o[f].percent<=r);f--);f=d(f,s-2)}else{for(f=c;fr);f++);f=d(f-1,s-2)}v=o[f+1],h=o[f]}if(h&&v){this._lastFr=f,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?Qs:t[l];if((xf(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(xf(a))a===xc?iv(y,h[i],v[i],m):qG(y,h[i],v[i],m);else if(R1(a)){var _=h[i],b=v[i],x=a===wg;t[l]={type:x?"linear":"radial",x:li(_.x,b.x,m),y:li(_.y,b.y,m),colorStops:Oe(_.colorStops,function(S,C){var T=b.colorStops[C];return{offset:li(S.offset,T.offset,m),color:wc(iv([],S.color,T.color,m))}}),global:b.global},x?(t[l].x2=li(_.x2,b.x2,m),t[l].y2=li(_.y2,b.y2,m)):t[l].r=li(_.r,b.r,m)}else if(u)iv(y,h[i],v[i],m),n||(t[l]=wc(y));else{var w=li(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===wf?t[n]=t[n]+i:r===yl?(to(t[n],Qs),bf(Qs,Qs,i,1),t[n]=wc(Qs)):r===xc?bf(t[n],t[n],i,1):r===EA&&D1(t[n],t[n],i,1)},e}(),QG=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Dy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,xt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,bc(u),i),this._trackKeys.push(s)}l.addKeyframe(t,bc(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const By=QG;function Ko(){return new Date().getTime()}var JG=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=Ko()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(yg(n),!r._paused&&r.update())}yg(n)},t.prototype.start=function(){this._running||(this._time=Ko(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=Ko(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=Ko()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new By(r,n.loop);return this.addAnimator(i),i},t}(Jn);const eU=JG;var tU=300,av=Ve.domSupported,ov=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Oe(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),O1={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},k1=!1;function Sg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function rU(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function sv(e){e&&(e.zrByTouch=!0)}function nU(e,t){return Ur(e.dom,new iU(e,t),!0)}function PA(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var iU=function(){function e(t,r){this.stopPropagation=Sr,this.stopImmediatePropagation=Sr,this.preventDefault=Sr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),vn={mousedown:function(e){e=Ur(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Ur(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Ur(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Ur(this.dom,e);var t=e.toElement||e.relatedTarget;PA(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){k1=!0,e=Ur(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){k1||(e=Ur(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Ur(this.dom,e),sv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),vn.mousemove.call(this,e),vn.mousedown.call(this,e)},touchmove:function(e){e=Ur(this.dom,e),sv(e),this.handler.processGesture(e,"change"),vn.mousemove.call(this,e)},touchend:function(e){e=Ur(this.dom,e),sv(e),this.handler.processGesture(e,"end"),vn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentF1||e<-F1}var ma=[],Po=[],uv=gu(),fv=Math.abs,fU=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return ga(this.rotation)||ga(this.x)||ga(this.y)||ga(this.scaleX-1)||ga(this.scaleY-1)||ga(this.skewX)||ga(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&B1(n);return}n=n||gu(),r?this.getLocalTransform(n):B1(n),t&&(r?is(n,t,n):xG(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(ma);var n=ma[0]<0?-1:1,i=ma[1]<0?-1:1,a=((ma[0]-n)*r+n)/ma[0]||0,o=((ma[1]-i)*r+i)/ma[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||gu(),Qd(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(is(Po,t.invTransform,r),r=Po);var n=this.originX,i=this.originY;(n||i)&&(uv[4]=n,uv[5]=i,is(Po,r,uv),Po[4]-=n,Po[5]-=i,r=Po),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&rn(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&rn(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&fv(t[0]-1)>1e-10&&fv(t[3]-1)>1e-10?Math.sqrt(fv(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){cU(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,f=t.x,c=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&ky(r,r,u),r[4]+=n+f,r[5]+=i+c,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),mu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function cU(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function Jc(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,f="left",c="top";if(n instanceof Array)l+=ta(n[0],r.width),u+=ta(n[1],r.height),f=null,c=null;else switch(n){case"left":l-=i,u+=s,f="right",c="middle";break;case"right":l+=i+o,u+=s,c="middle";break;case"top":l+=o/2,u-=i,f="center",c="bottom";break;case"bottom":l+=o/2,u+=a+i,f="center";break;case"inside":l+=o/2,u+=s,f="center",c="middle";break;case"insideLeft":l+=i,u+=s,c="middle";break;case"insideRight":l+=o-i,u+=s,f="right",c="middle";break;case"insideTop":l+=o/2,u+=i,f="center";break;case"insideBottom":l+=o/2,u+=a-i,f="center",c="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,f="right";break;case"insideBottomLeft":l+=i,u+=a-i,c="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,f="right",c="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=f,e.verticalAlign=c,e}var cv="__zr_normal__",dv=mu.concat(["ignore"]),dU=ea(mu,function(e,t){return e[t]=!0,e},{ignore:!1}),Lo={},hU=new et(0,0,0,0),Hy=function(){function e(t){this.id=aA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var f=hU;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Lo,n,f):Jc(Lo,n,f),a.x=Lo.x,a.y=Lo.y,o=Lo.align,s=Lo.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var d=void 0,h=void 0;c==="center"?(d=f.width*.5,h=f.height*.5):(d=ta(c[0],f.width),h=ta(c[1],f.height)),u=!0,a.originX=-a.x+d+(i?0:f.x),a.originY=-a.y+h+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Ir,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Ag:Mg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&to(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ny(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},oe(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Pe(t))for(var n=t,i=xt(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(cv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===cv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(nt(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Dy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||i);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,d=this._textGuide;return c&&c.useState(t,r,n,f),d&&d.useState(t,r,n,f),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Ir),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Ir)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=nt(i,t),o=nt(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,T=void 0,E=void 0;if(s){T={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];T[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){E={};for(var b=0;b<_;b++){var m=p[b];E[m]=bc(r[m]),pU(r,n,m)}}var x=new By(r,!1,!1,c?Ft(v,function(M){return M.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),d&&C&&x.whenWithKeys(0,C,p),E&&x.whenWithKeys(0,E,p),x.whenWithKeys(u??500,s?T:n,p).delay(f||0),e.addAnimator(x,t),o.push(x)}}const IA=Hy;var RA=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=nt(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=nt(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i"u"&&typeof self<"u"?$a.worker=!0:typeof navigator>"u"?($a.node=!0,$a.svgSupported=!0):NV(navigator.userAgent,$a);function NV(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ve=$a;var Ey=12,BV="sans-serif",co=Ey+"px "+BV,FV=20,$V=100,HV="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function zV(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function hG(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=e[u].getBoundingClientRect(),c=2*u,d=f.left,h=f.top;o.push(d,h),l=l&&a&&d===a[c]&&h===a[c+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?p1(s,o):p1(o,s))}function cA(e){return e.nodeName.toUpperCase()==="CANVAS"}var vG=/([&<>"'])/g,pG={"&":"&","<":"<",">":">",'"':""","'":"'"};function Kr(e){return e==null?"":(e+"").replace(vG,function(t,r){return pG[r]})}var gG=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xh=[],mG=Ve.browser.firefox&&+Ve.browser.version.split(".")[0]<39;function gg(e,t,r,n){return r=r||{},n?m1(e,t,r):mG&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):m1(e,t,r),r}function m1(e,t,r){if(Ve.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(cA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(pg(Xh,e,n,i)){r.zrX=Xh[0],r.zrY=Xh[1];return}}r.zrX=r.zrY=0}function Ry(e){return e||window.event}function Ur(e,t,r){if(t=Ry(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&gg(e,o,t,r)}else{gg(e,t,t,r);var a=yG(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&gG.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function yG(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function _G(e,t,r,n){e.addEventListener(t,r,n)}function bG(e,t,r,n){e.removeEventListener(t,r,n)}var dA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},wG=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=y1(n)/y1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=xG(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function gu(){return[1,0,0,1,0,0]}function Oy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function SG(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function is(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function mg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function ky(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),f=Math.cos(r);return e[0]=n*f+o*u,e[1]=-n*u+o*f,e[2]=i*f+s*u,e[3]=-i*u+f*s,e[4]=f*a+u*l,e[5]=f*l-u*a,e}function CG(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function Qd(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var TG=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const ke=TG;var gf=Math.min,mf=Math.max,ha=new ke,va=new ke,pa=new ke,ga=new ke,js=new ke,Ks=new ke,MG=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=gf(t.x,this.x),n=gf(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=mf(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=mf(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=gu();return mg(a,a,[-r.x,-r.y]),CG(a,a,[n,i]),mg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,f=t.y,c=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}ha.x=pa.x=r.x,ha.y=ga.y=r.y,va.x=ga.x=r.x+r.width,va.y=pa.y=r.y+r.height,ha.transform(n),ga.transform(n),va.transform(n),pa.transform(n),t.x=gf(ha.x,va.x,pa.x,ga.x),t.y=gf(ha.y,va.y,pa.y,ga.y);var l=mf(ha.x,va.x,pa.x,ga.x),u=mf(ha.y,va.y,pa.y,ga.y);t.width=l-t.x,t.height=u-t.y},e}();const tt=MG;var hA="silent";function AG(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:EG}}function EG(){dA(this.event)}var PG=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(Jn),Xs=function(){function e(t,r){this.x=t,this.y=r}return e}(),LG=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Qh=new tt(0,0,0,0),vA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new Xs(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new PG,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new lG(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(R(LG,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=pA(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new Xs(n,i):this.findHover(n,i),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new Xs(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=AG(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new Xs(r,n);if(_1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new tt(r-u,n-u,l,l),c=a.length-1;c>=0;c--){var d=a[c];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(Qh.copy(d.getBoundingRect()),d.transform&&Qh.applyTransform(d.transform),Qh.intersect(f)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function DG(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?hA:!0}return!1}function _1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=DG(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==hA)){t.target=o;break}}}function pA(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const IG=vA;var gA=32,Zs=7;function RG(e){for(var t=0;e>=gA;)t|=e&1,e>>=1;return e+t}function b1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function OG(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function Jh(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+f])>0?o=f+1:l=f}return l}function ev(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+f])<0?l=f:o=f+1}return l}function kG(e,t){var r=Zs,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;f(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=Zs||S>=Zs);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[x+m];e[b]=o[_];return}for(var S=r;;){var C=0,T=0,E=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,T=0,--v===0){E=!0;break}}else if(e[b--]=o[_--],T++,C=0,--g===1){E=!0;break}while((C|T)=0;m--)e[w+m]=e[x+m];if(v===0){E=!0;break}}if(e[b--]=o[_--],--g===1){E=!0;break}if(T=g-Jh(e[y],o,0,g,g-1,t),T!==0){for(b-=T,_-=T,g-=T,w=b+1,x=_+1,m=0;m=Zs||T>=Zs);if(E)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,x=y+1,m=v-1;m>=0;m--)e[w+m]=e[x+m];e[b]=o[_]}else{if(g===0)throw new Error;for(x=b-(g-1),m=0;ms&&(l=s),w1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Ir=1,ml=2,Vo=4,x1=!1;function tv(){x1||(x1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function S1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var NG=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=S1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(tv(),f.z=0),isNaN(f.z2)&&(tv(),f.z2=0),isNaN(f.zlevel)&&(tv(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const BG=NG;var mA;mA=Ve.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const yg=mA;var bc={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-bc.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?bc.bounceIn(e*2)*.5:bc.bounceOut(e*2-1)*.5+.5}};const yA=bc;var yf=Math.pow,Xi=Math.sqrt,Kc=1e-8,_A=1e-4,C1=Xi(3),_f=1/3,Bn=Ns(),Xr=Ns(),as=Ns();function Ui(e){return e>-Kc&&eKc||e<-Kc}function Gt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function T1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function wA(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,f=s*s-3*o*l,c=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Ui(f)&&Ui(c))if(Ui(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=c*c-4*f*d;if(Ui(p)){var g=c/f,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Xi(p),_=f*s+1.5*o*(-c+y),b=f*s+1.5*o*(-c-y);_<0?_=-yf(-_,_f):_=yf(_,_f),b<0?b=-yf(-b,_f):b=yf(b,_f);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var x=(2*f*s-3*o*c)/(2*Xi(f*f*f)),w=Math.acos(x)/3,S=Xi(f),C=Math.cos(w),v=(-s-2*S*C)/(3*o),m=(-s+S*(C+C1*Math.sin(w)))/(3*o),T=(-s+S*(C-C1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),T>=0&&T<=1&&(a[h++]=T)}}return h}function xA(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Ui(o)){if(bA(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Ui(f))i[0]=-a/(2*o);else if(f>0){var c=Xi(f),u=(-a+c)/(2*o),d=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function Xc(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function SA(e,t,r,n,i,a,o,s,l,u,f){var c,d=.005,h=1/0,v,p,g,m;Bn[0]=l,Bn[1]=u;for(var y=0;y<1;y+=.05)Xr[0]=Gt(e,r,i,o,y),Xr[1]=Gt(t,n,a,s,y),g=ns(Bn,Xr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Ui(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=Xi(f),u=(-o+c)/(2*a),d=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function CA(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function Zc(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function TA(e,t,r,n,i,a,o,s,l){var u,f=.005,c=1/0;Bn[0]=o,Bn[1]=s;for(var d=0;d<1;d+=.05){Xr[0]=Qt(e,r,i,d),Xr[1]=Qt(t,n,a,d);var h=ns(Bn,Xr);h=0&&h=1?1:wA(0,n,a,1,l,s)&&Gt(0,i,o,1,s[0])}}}var WG=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Sr,this.ondestroy=t.ondestroy||Sr,this.onrestart=t.onrestart||Sr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=We(t)?t:yA[t]||MA(t)},e}();const VG=WG;var AA=function(){function e(t){this.value=t}return e}(),GG=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new AA(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),UG=function(){function e(t){this._list=new GG,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new AA(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const Vu=UG;var A1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function $l(e){return e=Math.round(e),e<0?0:e>255?255:e}function E1(e){return e<0?0:e>1?1:e}function rv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?$l(parseFloat(t)/100*255):$l(parseInt(t,10))}function Hl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?E1(parseFloat(t)/100):E1(parseFloat(t))}function nv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Gr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function _g(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var EA=new Vu(20),bf=null;function Eo(e,t){bf&&_g(bf,t),bf=EA.put(e,bf||t.slice())}function ro(e,t){if(e){t=t||[];var r=EA.get(e);if(r)return _g(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in A1)return _g(t,A1[n]),Eo(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Gr(t,0,0,0,1);return}return Gr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Eo(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Gr(t,0,0,0,1);return}return Gr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Eo(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Gr(t,+u[0],+u[1],+u[2],1):Gr(t,0,0,0,1);f=Hl(u.pop());case"rgb":if(u.length>=3)return Gr(t,rv(u[0]),rv(u[1]),rv(u[2]),u.length===3?f:Hl(u[3])),Eo(e,t),t;Gr(t,0,0,0,1);return;case"hsla":if(u.length!==4){Gr(t,0,0,0,1);return}return u[3]=Hl(u[3]),P1(u,t),Eo(e,t),t;case"hsl":if(u.length!==3){Gr(t,0,0,0,1);return}return P1(u,t),Eo(e,t),t;default:return}}Gr(t,0,0,0,1)}}function P1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Hl(e[1]),i=Hl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Gr(t,$l(nv(o,a,r+1/3)*255),$l(nv(o,a,r)*255),$l(nv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function L1(e,t){var r=ro(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ny(r,r.length===4?"rgba":"rgb")}}function Ny(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function Qc(e,t){var r=ro(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function YG(e){return e.type==="linear"}function qG(e){return e.type==="radial"}(function(){return Ve.hasGlobalWindow&&We(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var bg=Array.prototype.slice;function li(e,t,r){return(t-e)*r+e}function iv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=I1,l=r;if(Tr(r)){var u=ZG(r);s=u,(u===1&&!bt(r[0])||u===2&&!bt(r[0][0]))&&(o=!0)}else if(bt(r)&&!jc(r))s=xf;else if(Te(r))if(!isNaN(+r))s=xf;else{var f=ro(r);f&&(l=f,s=yl)}else if(Xd(r)){var c=oe({},l);c.colorStops=Oe(r.colorStops,function(h){return{offset:h.offset,color:ro(h.color)}}),YG(r)?s=wg:qG(r)&&(s=xg),l=c}a===0?this.valType=s:(s!==this.valType||s===I1)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=We(n)?n:yA[n]||MA(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=Sf(i),u=R1(i),f=0;f=0&&!(o[f].percent<=r);f--);f=d(f,s-2)}else{for(f=c;fr);f++);f=d(f-1,s-2)}v=o[f+1],h=o[f]}if(h&&v){this._lastFr=f,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?Qs:t[l];if((Sf(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(Sf(a))a===Sc?iv(y,h[i],v[i],m):jG(y,h[i],v[i],m);else if(R1(a)){var _=h[i],b=v[i],x=a===wg;t[l]={type:x?"linear":"radial",x:li(_.x,b.x,m),y:li(_.y,b.y,m),colorStops:Oe(_.colorStops,function(S,C){var T=b.colorStops[C];return{offset:li(S.offset,T.offset,m),color:xc(iv([],S.color,T.color,m))}}),global:b.global},x?(t[l].x2=li(_.x2,b.x2,m),t[l].y2=li(_.y2,b.y2,m)):t[l].r=li(_.r,b.r,m)}else if(u)iv(y,h[i],v[i],m),n||(t[l]=xc(y));else{var w=li(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===xf?t[n]=t[n]+i:r===yl?(ro(t[n],Qs),wf(Qs,Qs,i,1),t[n]=xc(Qs)):r===Sc?wf(t[n],t[n],i,1):r===PA&&D1(t[n],t[n],i,1)},e}(),JG=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Dy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,xt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,wc(u),i),this._trackKeys.push(s)}l.addKeyframe(t,wc(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const By=JG;function Ko(){return new Date().getTime()}var eU=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=Ko()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(yg(n),!r._paused&&r.update())}yg(n)},t.prototype.start=function(){this._running||(this._time=Ko(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=Ko(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=Ko()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new By(r,n.loop);return this.addAnimator(i),i},t}(Jn);const tU=eU;var rU=300,av=Ve.domSupported,ov=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Oe(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),O1={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},k1=!1;function Sg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function nU(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function sv(e){e&&(e.zrByTouch=!0)}function iU(e,t){return Ur(e.dom,new aU(e,t),!0)}function LA(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var aU=function(){function e(t,r){this.stopPropagation=Sr,this.stopImmediatePropagation=Sr,this.preventDefault=Sr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),vn={mousedown:function(e){e=Ur(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Ur(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Ur(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Ur(this.dom,e);var t=e.toElement||e.relatedTarget;LA(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){k1=!0,e=Ur(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){k1||(e=Ur(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Ur(this.dom,e),sv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),vn.mousemove.call(this,e),vn.mousedown.call(this,e)},touchmove:function(e){e=Ur(this.dom,e),sv(e),this.handler.processGesture(e,"change"),vn.mousemove.call(this,e)},touchend:function(e){e=Ur(this.dom,e),sv(e),this.handler.processGesture(e,"end"),vn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentF1||e<-F1}var ya=[],Po=[],uv=gu(),fv=Math.abs,cU=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return ma(this.rotation)||ma(this.x)||ma(this.y)||ma(this.scaleX-1)||ma(this.scaleY-1)||ma(this.skewX)||ma(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&B1(n);return}n=n||gu(),r?this.getLocalTransform(n):B1(n),t&&(r?is(n,t,n):SG(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(ya);var n=ya[0]<0?-1:1,i=ya[1]<0?-1:1,a=((ya[0]-n)*r+n)/ya[0]||0,o=((ya[1]-i)*r+i)/ya[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||gu(),Qd(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(is(Po,t.invTransform,r),r=Po);var n=this.originX,i=this.originY;(n||i)&&(uv[4]=n,uv[5]=i,is(Po,r,uv),Po[4]-=n,Po[5]-=i,r=Po),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&rn(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&rn(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&fv(t[0]-1)>1e-10&&fv(t[3]-1)>1e-10?Math.sqrt(fv(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){dU(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,f=t.x,c=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&ky(r,r,u),r[4]+=n+f,r[5]+=i+c,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),mu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function dU(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function ed(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,f="left",c="top";if(n instanceof Array)l+=ra(n[0],r.width),u+=ra(n[1],r.height),f=null,c=null;else switch(n){case"left":l-=i,u+=s,f="right",c="middle";break;case"right":l+=i+o,u+=s,c="middle";break;case"top":l+=o/2,u-=i,f="center",c="bottom";break;case"bottom":l+=o/2,u+=a+i,f="center";break;case"inside":l+=o/2,u+=s,f="center",c="middle";break;case"insideLeft":l+=i,u+=s,c="middle";break;case"insideRight":l+=o-i,u+=s,f="right",c="middle";break;case"insideTop":l+=o/2,u+=i,f="center";break;case"insideBottom":l+=o/2,u+=a-i,f="center",c="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,f="right";break;case"insideBottomLeft":l+=i,u+=a-i,c="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,f="right",c="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=f,e.verticalAlign=c,e}var cv="__zr_normal__",dv=mu.concat(["ignore"]),hU=ta(mu,function(e,t){return e[t]=!0,e},{ignore:!1}),Lo={},vU=new tt(0,0,0,0),Hy=function(){function e(t){this.id=oA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var f=vU;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Lo,n,f):ed(Lo,n,f),a.x=Lo.x,a.y=Lo.y,o=Lo.align,s=Lo.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var d=void 0,h=void 0;c==="center"?(d=f.width*.5,h=f.height*.5):(d=ra(c[0],f.width),h=ra(c[1],f.height)),u=!0,a.originX=-a.x+d+(i?0:f.x),a.originY=-a.y+h+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Ir,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Ag:Mg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&ro(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ny(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},oe(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(De(t))for(var n=t,i=xt(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(cv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===cv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(it(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Dy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||i);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,d=this._textGuide;return c&&c.useState(t,r,n,f),d&&d.useState(t,r,n,f),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Ir),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Ir)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=it(i,t),o=it(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,T=void 0,E=void 0;if(s){T={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];T[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){E={};for(var b=0;b<_;b++){var m=p[b];E[m]=wc(r[m]),gU(r,n,m)}}var x=new By(r,!1,!1,c?$t(v,function(M){return M.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),d&&C&&x.whenWithKeys(0,C,p),E&&x.whenWithKeys(0,E,p),x.whenWithKeys(u??500,s?T:n,p).delay(f||0),e.addAnimator(x,t),o.push(x)}}const RA=Hy;var OA=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=it(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=it(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function pt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Ce(e)?xU(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function It(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),kA),e=(+e).toFixed(t),r?e:+e}function ui(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return SU(e)}function SU(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function CU(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function TU(e,t){var r=ea(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Oe(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Oe(i,function(h){return Math.floor(h)}),s=ea(o,function(h,v){return h+v},0),l=Oe(i,function(h,v){return h-o[v]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return Oe(o,function(h){return h/n})}function MU(e,t){var r=Math.max(ui(e),ui(t)),n=e+t;return r>kA?n:It(n,r)}function NA(e){var t=Math.PI*2;return(e%t+t)%t}function ed(e){return e>-W1&&e=10&&t++,t}function BA(e,t){var r=zy(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function td(e){var t=parseFloat(e);return t==e&&(t!==0||!Ce(e)||e.indexOf("x")<=0)?t:NaN}function PU(e){return!isNaN(td(e))}function FA(){return Math.round(Math.random()*9)}function $A(e,t){return t===0?e:$A(t,e%t)}function V1(e,t){return e==null?t:t==null?e:e*t/$A(e,t)}function mr(e){throw new Error(e)}function G1(e,t,r){return(t-e)*r+e}var HA="series\0",LU="\0_ec_\0";function lr(e){return e instanceof Array?e:e==null?[]:[e]}function Pg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&nt(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var JU=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],e9=_u(JU),t9=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return e9(this,t,r)},e}(),Lg=new Wu(50);function r9(e){if(typeof e=="string"){var t=Lg.get(e);return t&&t.image}else return e}function UA(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=Lg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!th(t)&&a.pending.push(o)):(t=bo.loadImage(e,Y1,Y1),t.__zrImageSrc=e,Lg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function Y1(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=Nr(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function qA(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=Nr(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?i9(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=Nr(e,n)}return e===""&&(e=t.placeholder),e}function i9(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);c=c.slice(0,v)}if(e&&a&&f!=null)for(var p=YA(f,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&mv(r,e.substring(s,u),t,o),mv(r,l[2],t,o,l[1]),s=gv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var M=S.width,D=M==null||M==="auto";if(typeof M=="string"&&M.charAt(M.length-1)==="%")w.percentWidth=M,f.push(w),w.contentWidth=Nr(w.text,E);else{if(D){var O=S.backgroundColor,k=O&&O.image;k&&(k=r9(k),th(k)&&(w.width=Math.max(w.width,k.width*A/k.height)))}var F=v&&n!=null?n-b:null;F!=null&&F0&&v+n.accumWidth>n.width&&(f=t.split(` -`),u=!0),n.accumWidth=v}else{var p=jA(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,c=p.linesWidths,f=p.lines}}else f=t.split(` -`);for(var g=0;g=33&&t<=383}var f9=ea(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function c9(e){return u9(e)?!!f9[e]:!0}function jA(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,f=0,c=0;cr:i+f+h>r){f?(s||l)&&(v?(s||(s=l,l="",u=0,f=u),a.push(s),o.push(f-u),l+=d,u+=h,s="",f=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(f),s=d,f=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}f+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(f)),a.length===1&&(f+=i),{accumWidth:f,lines:a,linesWidths:o}}var Dg="__zr_style_"+Math.round(Math.random()*10),ro={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},rh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};ro[Dg]=!0;var j1=["z","z2","invisible"],d9=["invisible"],h9=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=xt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Sf[0]=wv(i)*r+e,Sf[1]=bv(i)*n+t,Cf[0]=wv(a)*r+e,Cf[1]=bv(a)*n+t,u(s,Sf,Cf),f(l,Sf,Cf),i=i%_a,i<0&&(i=i+_a),a=a%_a,a<0&&(a=a+_a),i>a&&!o?a+=_a:ii&&(Tf[0]=wv(h)*r+e,Tf[1]=bv(h)*n+t,u(s,Tf,s),f(l,Tf,l))}var rt={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},ba=[],wa=[],Dn=[],Li=[],In=[],Rn=[],xv=Math.min,Sv=Math.max,xa=Math.cos,Sa=Math.sin,ni=Math.abs,Ig=Math.PI,Bi=Ig*2,Cv=typeof Float32Array<"u",Js=[];function Tv(e){var t=Math.round(e/Ig*1e8)/1e8;return t%2*Ig}function y9(e,t){var r=Tv(e[0]);r<0&&(r+=Bi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=Bi?i=r+Bi:t&&r-i>=Bi?i=r-Bi:!t&&r>i?i=r+(Bi-Tv(r-i)):t&&r0&&(this._ux=ni(n/Qc/t)||0,this._uy=ni(n/Qc/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(rt.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=ni(t-this._xi),i=ni(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(rt.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(rt.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(rt.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),Js[0]=i,Js[1]=a,y9(Js,o),i=Js[0],a=Js[1];var s=a-i;return this.addData(rt.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=xa(a)*n+t,this._yi=Sa(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(rt.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(rt.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Cv&&(this.data=new Float32Array(r));for(var n=0;nf.length&&(this._expandData(),f=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Dn[0]=Dn[1]=In[0]=In[1]=Number.MAX_VALUE,Li[0]=Li[1]=Rn[0]=Rn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||ni(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case rt.C:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++],w=t[d++],S=t[d++];p=BG(a,o,b,x,g,m,w,S,10),a=w,o=S;break}case rt.Q:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++];p=$G(a,o,b,x,g,m,10),a=g,o=m;break}case rt.A:var C=t[d++],T=t[d++],E=t[d++],A=t[d++],M=t[d++],D=t[d++],O=D+M;d+=1,t[d++],v&&(s=xa(M)*E+C,l=Sa(M)*A+T),p=Sv(E,A)*xv(Bi,Math.abs(D)),a=xa(O)*E+C,o=Sa(O)*A+T;break;case rt.R:{s=a=t[d++],l=o=t[d++];var k=t[d++],F=t[d++];p=k*2+F*2;break}case rt.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[c++]=p,f+=p)}return this._pathLen=f,f},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,f,c,d,h=r<1,v,p,g=0,m=0,y,_=0,b,x;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case rt.M:s=u=n[w++],l=f=n[w++],t.moveTo(u,f);break;case rt.L:{c=n[w++],d=n[w++];var T=ni(c-u),E=ni(d-f);if(T>i||E>a){if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+c*M,f*(1-M)+d*M);break e}g+=A}t.lineTo(c,d),u=c,f=d,_=0}else{var D=T*T+E*E;D>_&&(b=c,x=d,_=D)}break}case rt.C:{var O=n[w++],k=n[w++],F=n[w++],j=n[w++],B=n[w++],N=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;Kc(u,O,F,B,M,ba),Kc(f,k,j,N,M,wa),t.bezierCurveTo(ba[1],wa[1],ba[2],wa[2],ba[3],wa[3]);break e}g+=A}t.bezierCurveTo(O,k,F,j,B,N),u=B,f=N;break}case rt.Q:{var O=n[w++],k=n[w++],F=n[w++],j=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;Xc(u,O,F,M,ba),Xc(f,k,j,M,wa),t.quadraticCurveTo(ba[1],wa[1],ba[2],wa[2]);break e}g+=A}t.quadraticCurveTo(O,k,F,j),u=F,f=j;break}case rt.A:var U=n[w++],re=n[w++],ae=n[w++],me=n[w++],Te=n[w++],V=n[w++],Q=n[w++],W=!n[w++],Y=ae>me?ae:me,se=ni(ae-me)>.001,he=Te+V,Z=!1;if(h){var A=v[m++];g+A>y&&(he=Te+V*(y-g)/A,Z=!0),g+=A}if(se&&t.ellipse?t.ellipse(U,re,ae,me,Q,Te,he,W):t.arc(U,re,Y,Te,he,W),Z)break e;C&&(s=xa(Te)*ae+U,l=Sa(Te)*me+re),u=xa(he)*ae+U,f=Sa(he)*me+re;break;case rt.R:s=u=n[w],l=f=n[w+1],c=n[w++],d=n[w++];var P=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(c,d),t.lineTo(c+xv(z,P),d),z-=P,z>0&&t.lineTo(c+P,d+xv(z,I)),z-=I,z>0&&t.lineTo(c+Sv(P-z,0),d+I),z-=P,z>0&&t.lineTo(c,d+Sv(I-z,0));break e}g+=A}t.rect(c,d,P,I);break;case rt.Z:if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+s*M,f*(1-M)+l*M);break e}g+=A}t.closePath(),u=s,f=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=rt,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const ho=_9;function Do(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+c&&f>n+c&&f>a+c&&f>s+c||fe+c&&u>r+c&&u>i+c&&u>o+c||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||f+ui&&(i+=el);var d=Math.atan2(l,s);return d<0&&(d+=el),d>=n&&d<=i||d+el>=n&&d+el<=i}function Ca(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Di=ho.CMD,Ta=Math.PI*2,S9=1e-4;function C9(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&T9(),h=Gt(t,n,a,s,jr[0]),d>1&&(v=Gt(t,n,a,s,jr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=Zt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);ir[0]=-l,ir[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Ta-1e-4){n=0,i=Ta;var f=a?1:-1;return o>=ir[0]+e&&o<=ir[1]+e?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=Ta,i+=Ta);for(var d=0,h=0;h<2;h++){var v=ir[h];if(v+e>o){var p=Math.atan2(s,v),f=a?1:-1;p<0&&(p=Ta+p),(p>=n&&p<=i||p+Ta>=n&&p+Ta<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Ca(l,u,f,c,n,i))),g&&(l=a[v],u=a[v+1],f=l,c=u),p){case Di.M:f=a[v++],c=a[v++],l=f,u=c;break;case Di.L:if(r){if(Do(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Ca(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Di.C:if(r){if(b9(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=M9(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Di.Q:if(r){if(w9(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=A9(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Di.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);d=Math.cos(x)*_+m,h=Math.sin(x)*b+y,g?(f=d,c=h):s+=Ca(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(x9(m,y,b,x,x+w,S,t,C,i))return!0}else s+=E9(m,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+m,u=Math.sin(x+w)*b+y;break;case Di.R:f=l=a[v++],c=u=a[v++];var T=a[v++],E=a[v++];if(d=f+T,h=c+E,r){if(Do(f,c,d,c,t,n,i)||Do(d,c,d,h,t,n,i)||Do(d,h,f,h,t,n,i)||Do(f,h,f,c,t,n,i))return!0}else s+=Ca(d,c,d,h,n,i),s+=Ca(f,h,f,c,n,i);break;case Di.Z:if(r){if(Do(l,u,f,c,t,n,i))return!0}else s+=Ca(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!C9(u,c)&&(s+=Ca(l,u,f,c,n,i)||0),s!==0}function P9(e,t,r){return KA(e,0,!1,t,r)}function L9(e,t,r,n){return KA(e,t,!0,r,n)}var XA=ut({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},ro),D9={style:ut({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},rh.style)},Mv=mu.concat(["invisible","culling","z","z2","zlevel","parent"]),I9=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Mg:n>.2?uU:Ag}else if(r)return Ag}return Mg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Ce(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Zc(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Vo)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),L9(s,l/u,r,n)))return!0}if(this.hasFill())return P9(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Vo,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:oe(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Vo)},t.prototype.createStyle=function(r){return Zd(XA,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=oe({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=oe({},i.shape),oe(u,n.shape)):(u=oe({},a?this.shape:i.shape),oe(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=oe({},this.shape);for(var f={},c=xt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return Zd(R9,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Fy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(Yu);ZA.prototype.type="tspan";const Rg=ZA;var O9=ut({x:0,y:0},ro),k9={style:ut({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},rh.style)};function N9(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var QA=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return Zd(O9,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=N9(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return k9},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new et(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(Yu);QA.prototype.type="image";const Bs=QA;function B9(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,f;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var c;s+l>i&&(c=s+l,s*=i/c,l*=i/c),u+f>i&&(c=u+f,u*=i/c,f*=i/c),l+u>a&&(c=l+u,l*=a/c,u*=a/c),s+f>a&&(c=s+f,s*=a/c,f*=a/c),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+f,n+a),f!==0&&e.arc(r+f,n+a-f,f,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var Xo=Math.round;function JA(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(Xo(n*2)===Xo(i*2)&&(e.x1=e.x2=Ka(n,s,!0)),Xo(a*2)===Xo(o*2)&&(e.y1=e.y2=Ka(a,s,!0))),e}}function e2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=Ka(n,s,!0),e.y=Ka(i,s,!0),e.width=Math.max(Ka(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(Ka(i+o,s,!1)-e.y,o===0?0:1)),e}}function Ka(e,t,r){if(!t)return e;var n=Xo(e*2);return(n+Xo(t))%2===0?n/2:(n+(r?1:-1))/2}var F9=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),$9={},t2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new F9},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=e2($9,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?B9(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ft);t2.prototype.type="rect";const Nt=t2;var J1={fill:"#000"},ew=2,H9={style:ut({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},rh.style)},r2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=J1,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,M=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,O=0;O=0&&(O=w[D],O.align==="right");)this._placeToken(O,r,C,m,M,"right",_),T-=O.width,M-=O.width,D--;for(A+=(a-(A-g)-(y-M)-T)/2;E<=D;)O=w[E],this._placeToken(O,r,C,m,A+O.width/2,"center",_),A+=O.width,E++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var f=r.verticalAlign,c=a+i/2;f==="top"?c=a+r.height/2:f==="bottom"&&(c=a+i-r.height/2);var d=!r.isLineHolder&&Av(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,c-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=ow(o,s,v),c-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Rg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),x=iw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=ew,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=c,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||co,g.opacity=Bl(u.opacity,n.opacity,1),rw(g,u),x&&(g.lineWidth=Bl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=x),b&&(g.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new et(_l(g.x,S,g.textAlign),Go(g.y,C,g.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,d=l&&!c,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&f){p=this._getOrCreateChild(Nt),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(c){g=this._getOrCreateChild(Bs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&f){var y=p.style;y.lineWidth=u,y.stroke=f,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=Bl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return G9(r)&&(n=[r.fontStyle,r.fontWeight,V9(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&zn(n)||r.textFont||r.font},t}(Yu),z9={left:!0,right:1,center:1},W9={top:1,bottom:1,middle:1},tw=["fontStyle","fontWeight","fontSize","fontFamily"];function V9(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?Ey+"px":e+"px"}function rw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ft){var o=n2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Io(s)||Io(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=oe({},n),u=oe({},u),u.fill=s):!Io(u.fill)&&Io(s)?(a=!0,n=oe({},n),u=oe({},u),u.fill=cw(s)):!Io(u.stroke)&&Io(l)&&(a||(n=oe({},n),u=oe({},u)),u.stroke=cw(l)),n.style=u}}if(n&&n.z2==null){a||(n=oe({},n));var f=e.z2EmphasisLift;n.z2=e.z2+(f??q9)}return n}function J9(e,t,r){if(r&&r.z2==null){r=oe({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??j9)}return r}function eY(e,t,r){var n=nt(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:Z9(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=oe({},r),o=oe({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Ev(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return Q9(this,e,t,r);if(e==="blur")return eY(this,e,r);if(e==="select")return J9(this,e,r)}return r}function tY(e){e.stateProxy=Ev;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Ev),r&&(r.stateProxy=Ev)}function hw(e,t){!c2(e,t)&&!e.__highByOuter&&Si(e,a2)}function vw(e,t){!c2(e,t)&&!e.__highByOuter&&Si(e,o2)}function Og(e,t){e.__highByOuter|=1<<(t||0),Si(e,a2)}function kg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Si(e,o2)}function rY(e){Si(e,jy)}function l2(e){Si(e,s2)}function u2(e){Si(e,K9)}function f2(e){Si(e,X9)}function c2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function d2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=Uy(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){s2(u)}),s&&r.push(a)),o.isBlured=!1}),R(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Ng(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,f){for(var c=0;c0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Fg(e,t,r){p2(e,!0),Si(e,tY),uY(e,t,r)}function lY(e){p2(e,!1)}function h2(e,t,r,n){n?lY(e):Fg(e,t,r)}function uY(e,t,r){var n=lt(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var gw=["emphasis","blur","select"],fY={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function v2(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Pv(v),s*=Pv(v));var p=(i===a?-1:1)*Pv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Af(c)*g-Mf(c)*m,_=(t+n)/2+Mf(c)*g+Af(c)*m,b=bw([1,0],[(d-g)/o,(h-m)/s]),x=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],S=bw(x,w);if(zg(x,w)<=-1&&(S=tl),zg(x,w)>=1&&(S=0),S<0){var C=Math.round(S/tl*1e6)/1e6;S=tl*2+C%2*tl}f.addData(u,y,_,o,s,b,S,c,a)}var gY=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,mY=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function yY(e){var t=new ho;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=ho.CMD,l=e.match(gY);if(!l)return t;for(var u=0;uO*O+k*k&&(C=E,T=A),{cx:C,cy:T,x0:-f,y0:-c,x1:C*(i/x-1),y1:T*(i/x-1)}}function MY(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function AY(e,t){var r,n=bl(t.r,0),i=bl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var f=t.cx,c=t.cy,d=!!t.clockwise,h=xw(u-l),v=h>Lv&&h%Lv;if(v>hn&&(h=v),!(n>hn))e.moveTo(f,c);else if(h>Lv-hn)e.moveTo(f+n*Oo(l),c+n*Ma(l)),e.arc(f,c,n,l,u,!d),i>hn&&(e.moveTo(f+i*Oo(u),c+i*Ma(u)),e.arc(f,c,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,T=void 0,E=void 0,A=void 0,M=void 0,D=void 0,O=void 0,k=n*Oo(l),F=n*Ma(l),j=i*Oo(u),B=i*Ma(u),N=h>hn;if(N){var U=t.cornerRadius;U&&(r=MY(U),p=r[0],g=r[1],m=r[2],y=r[3]);var re=xw(n-i)/2;if(_=On(re,m),b=On(re,y),x=On(re,p),w=On(re,g),T=S=bl(_,b),E=C=bl(x,w),(S>hn||C>hn)&&(A=n*Oo(u),M=n*Ma(u),D=i*Oo(l),O=i*Ma(l),hhn){var se=On(m,T),he=On(y,T),Z=Ef(D,O,k,F,n,se,d),P=Ef(A,M,j,B,n,he,d);e.moveTo(f+Z.cx+Z.x0,c+Z.cy+Z.y0),T0&&e.arc(f+Z.cx,c+Z.cy,se,Kt(Z.y0,Z.x0),Kt(Z.y1,Z.x1),!d),e.arc(f,c,n,Kt(Z.cy+Z.y1,Z.cx+Z.x1),Kt(P.cy+P.y1,P.cx+P.x1),!d),he>0&&e.arc(f+P.cx,c+P.cy,he,Kt(P.y1,P.x1),Kt(P.y0,P.x0),!d))}else e.moveTo(f+k,c+F),e.arc(f,c,n,l,u,!d);if(!(i>hn)||!N)e.lineTo(f+j,c+B);else if(E>hn){var se=On(p,E),he=On(g,E),Z=Ef(j,B,A,M,i,-he,d),P=Ef(k,F,D,O,i,-se,d);e.lineTo(f+Z.cx+Z.x0,c+Z.cy+Z.y0),E0&&e.arc(f+Z.cx,c+Z.cy,he,Kt(Z.y0,Z.x0),Kt(Z.y1,Z.x1),!d),e.arc(f,c,i,Kt(Z.cy+Z.y1,Z.cx+Z.x1),Kt(P.cy+P.y1,P.cx+P.x1),d),se>0&&e.arc(f+P.cx,c+P.cy,se,Kt(P.y1,P.x1),Kt(P.y0,P.x0),!d))}else e.lineTo(f+j,c+B),e.arc(f,c,i,u,l,d)}e.closePath()}}}var EY=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),S2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new EY},t.prototype.buildPath=function(r,n){AY(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ft);S2.prototype.type="sector";const wo=S2;var PY=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),C2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new PY},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ft);C2.prototype.type="ring";const T2=C2;function LY(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,f,c;if(n){f=[1/0,1/0],c=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=LY(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],f=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;sEa[1]){if(s=!1,a)return s;var f=Math.abs(Ea[0]-Aa[1]),c=Math.abs(Aa[0]-Ea[1]);Math.min(f,c)>i.len()&&(f0){var c=f.duration,d=f.delay,h=f.easing,v={duration:c,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Mr(e,t,r,n,i,a){Qy("update",e,t,r,n,i,a)}function Br(e,t,r,n,i,a){Qy("enter",e,t,r,n,i,a)}function os(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Tw(e){return!e.isGroup}function a7(e){return e.shape!=null}function H2(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Tw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return a7(o)&&(s.shape=oe({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Tw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Mr(o,l,r,lt(o).dataIndex)}}})}function o7(e,t){return Oe(e,function(r){var n=r[0];n=ad(n,t.x),n=od(n,t.x+t.width);var i=r[1];return i=ad(i,t.y),i=od(i,t.y+t.height),[n,i]})}function s7(e,t){var r=ad(e.x,t.x),n=od(e.x+e.width,t.x+t.width),i=ad(e.y,t.y),a=od(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function t0(e,t,r){var n=oe({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),ut(i,r),new Bs(n)):Jy(e.replace("path://",""),n,r,"center")}function l7(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Dv(h,v,f,c)/d;return!(g<0||g>1)}function Dv(e,t,r,n){return e*n-r*t}function u7(e){return e<=1e-6&&e>=-1e-6}function r0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Ce(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&R(xt(l),function(f){Ts(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=lt(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:ut({content:n,formatterParams:s},i)}}function Mw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function n0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function Y2(e,t){return it(it({},e,!0),t,!0)}const M7={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},A7={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var sd="ZH",a0="EN",wu=a0,Ac={},o0={},q2=Ve.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(sd)>-1?sd:wu}():wu;function j2(e,t){e=e.toUpperCase(),o0[e]=new er(t),Ac[e]=t}function E7(e){if(Ce(e)){var t=Ac[e.toUpperCase()]||{};return e===sd||e===a0?Xe(t):it(Xe(t),Xe(Ac[wu]),!1)}else return it(Xe(e),Xe(Ac[wu]),!1)}function P7(e){return o0[e]}function L7(){return o0[wu]}j2(a0,M7);j2(sd,A7);var s0=1e3,l0=s0*60,Ul=l0*60,Jr=Ul*24,Iw=Jr*365,wl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Df="{yyyy}-{MM}-{dd}",Rw={year:"{yyyy}",month:"{yyyy}-{MM}",day:Df,hour:Df+" "+wl.hour,minute:Df+" "+wl.minute,second:Df+" "+wl.second,millisecond:wl.none},Ov=["year","month","day","hour","minute","second","millisecond"],K2=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Pa(e,t){return e+="","0000".substr(0,t-e.length)+e}function ss(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function D7(e){return e===ss(e)}function I7(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function sh(e,t,r,n){var i=yi(e),a=i[u0(r)](),o=i[ls(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[lh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[xu(r)](),c=(f-1)%12+1,d=i[uh(r)](),h=i[fh(r)](),v=i[ch(r)](),p=n instanceof er?n:P7(n||q2)||L7(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Pa(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Pa(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Pa(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,Pa(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Pa(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Pa(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Pa(v,3)).replace(/{S}/g,v+"")}function R7(e,t,r,n,i){var a=null;if(Ce(r))a=r;else if(We(r))a=r(e.value,t,{level:e.level});else{var o=oe({},wl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var c=e.level==null?0:e.level>=0?e.level:a.length+e.level;c=Math.min(c,a.length-1),a=a[c]}}return sh(new Date(e.value),a,i,n)}function X2(e,t){var r=yi(e),n=r[ls(t)]()+1,i=r[lh(t)](),a=r[xu(t)](),o=r[uh(t)](),s=r[fh(t)](),l=r[ch(t)](),u=l===0,f=u&&s===0,c=f&&o===0,d=c&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":c?"hour":f?"minute":u?"second":"millisecond"}function Ow(e,t,r){var n=_t(e)?yi(e):e;switch(t=t||X2(e,r),t){case"year":return n[u0(r)]();case"half-year":return n[ls(r)]()>=6?1:0;case"quarter":return Math.floor((n[ls(r)]()+1)/4);case"month":return n[ls(r)]();case"day":return n[lh(r)]();case"half-day":return n[xu(r)]()/24;case"hour":return n[xu(r)]();case"minute":return n[uh(r)]();case"second":return n[fh(r)]();case"millisecond":return n[ch(r)]()}}function u0(e){return e?"getUTCFullYear":"getFullYear"}function ls(e){return e?"getUTCMonth":"getMonth"}function lh(e){return e?"getUTCDate":"getDate"}function xu(e){return e?"getUTCHours":"getHours"}function uh(e){return e?"getUTCMinutes":"getMinutes"}function fh(e){return e?"getUTCSeconds":"getSeconds"}function ch(e){return e?"getUTCMilliseconds":"getMilliseconds"}function O7(e){return e?"setUTCFullYear":"setFullYear"}function Z2(e){return e?"setUTCMonth":"setMonth"}function Q2(e){return e?"setUTCDate":"setDate"}function J2(e){return e?"setUTCHours":"setHours"}function eE(e){return e?"setUTCMinutes":"setMinutes"}function tE(e){return e?"setUTCSeconds":"setSeconds"}function rE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function nE(e){if(!PU(e))return Ce(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function iE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var dh=oA;function Gg(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&zn(f)?f:"-"}function a(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?yi(e):e;if(isNaN(+l)){if(s)return"-"}else return sh(l,n,r)}if(t==="ordinal")return fg(e)?i(e):_t(e)&&a(e)?e+"":"-";var u=td(e);return a(u)?nE(u):fg(e)?i(e):typeof e=="boolean"?e+"":"-"}var kw=["a","b","c","d","e","f","g"],kv=function(e,t){return"{"+e+(t??"")+"}"};function aE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Su(e,t){return t=t||"transparent",Ce(e)?e:Pe(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function Nw(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Ec=R,N7=["left","right","top","bottom","width","height"],If=[["width","left","right"],["height","top","bottom"]];function f0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var f=l.getBoundingRect(),c=t.childAt(u+1),d=c&&c.getBoundingRect(),h,v;if(e==="horizontal"){var p=f.width+(d?-d.x+f.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=f.height):s=Math.max(s,f.height)}else{var g=f.height+(d?-d.y+f.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Yl=f0;Dt(f0,"vertical");Dt(f0,"horizontal");function Ms(e,t,r){r=dh(r||0);var n=t.width,i=t.height,a=pt(e.left,n),o=pt(e.top,i),s=pt(e.right,n),l=pt(e.bottom,i),u=pt(e.width,n),f=pt(e.height,i),c=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(f)&&(f=i-l-c-o),h!=null&&(isNaN(u)&&isNaN(f)&&(h>n/i?u=n*.8:f=i*.8),isNaN(u)&&(u=h*f),isNaN(f)&&(f=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-f-c),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-f/2-r[0];break;case"bottom":o=i-f-c;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var v=new et(a+r[3],o+r[0],u,f);return v.margin=r,v}function Cu(e){var t=e.layoutMode||e.constructor.layoutMode;return Pe(t)?t:t?{type:t}:null}function As(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(If[0],0),a=o(If[1],1);u(If[0],e,i),u(If[1],e,a);function o(f,c){var d={},h=0,v={},p=0,g=2;if(Ec(f,function(_){v[_]=e[_]}),Ec(f,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[c])return l(t,f[1])?v[f[2]]=null:l(t,f[2])&&(v[f[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=it(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return Uu(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(er);GA(Fs,er);eh(Fs);C7(Fs);T7(Fs,$7);function $7(e){var t=[];return R(Fs.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Oe(t,function(r){return Wn(r).main}),e!=="dataset"&&nt(t,"dataset")<=0&&t.unshift("dataset"),t}const bt=Fs;var oE="";typeof navigator<"u"&&(oE=navigator.platform||"");var ko="rgba(0, 0, 0, 0.2)";const H7={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:ko,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:ko,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:ko,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:ko,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:ko,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:ko,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:oE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var sE=Ge(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),un="original",Ar="arrayRows",Pn="objectRows",ei="keyedColumns",Xi="typedArray",lE="unknown",ci="column",$s="row",Vt={Must:1,Might:2,Not:3},uE=Tt();function z7(e){uE(e).datasetMap=Ge()}function W7(e,t,r){var n={},i=c0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=uE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;e=e.slice(),R(e,function(p,g){var m=Pe(p)?p:e[g]={name:p};m.type==="ordinal"&&f==null&&(f=g,c=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});R(e,function(p,g){var m=p.name,y=v(p);if(f==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(f===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function j7(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var f=o==null||!n?r:q7(n,o);if(f=f||r,!(!f||!f.length)){var c=f[l];return i&&(u[i]=c),s.paletteIdx=(l+1)%f.length,c}}function K7(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Rf,rl,Fw,$w="\0_ec_inner",X7=1,dE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new er(a),this._locale=new er(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=Ww(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,Ww(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?Fw(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&R(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ge(),u=n&&n.replaceMergeMainTypeMap;z7(this),R(r,function(c,d){c!=null&&(bt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Xe(c):it(i[d],c,!0))}),u&&u.each(function(c,d){bt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),bt.topologicalTravel(s,bt.getAllClassMainTypes(),f,this);function f(c){var d=Y7(this,c,lr(r[c])),h=a.get(c),v=h?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=IU(h,d,v);$U(p,c,bt),i[c]=null,a.set(c,null),o.set(c,0);var g=[],m=[],y=0,_;R(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=c==="series",T=bt.getClass(c,b.keyInfo.subType,!C);if(!T)return;if(c==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===T)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var E=oe({componentIndex:x},b.keyInfo);w=new T(S,this,this,E),oe(w,E),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[c]=g,a.set(c,m),o.set(c,y),c==="series"&&Rf(this)}this._seriesIndices||Rf(this)},t.prototype.getOption=function(){var r=Xe(this.option);return R(r,function(n,i){if(bt.hasClass(i)){for(var a=lr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!yu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[$w],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function sq(e,t){return e.join(",")===t.join(",")}const lq=nq;var fn=R,Tu=Pe,Vw=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Bv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=Vw.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=MU(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var vh=function(){function e(t){this.data=t.data||(t.sourceFormat===ei?{}:[]),this.sourceFormat=t.sourceFormat||lE,this.seriesLayoutBy=t.seriesLayoutBy||ci,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};Xw=(t={},t[Ar+"_"+ci]={pure:!0,appendData:a},t[Ar+"_"+$s]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Pn]={pure:!0,appendData:a},t[ei]={pure:!0,appendData:function(o){var s=this._data;R(o,function(l,u){for(var f=s[u]||(s[u]=[]),c=0;c<(l||[]).length;c++)f.push(l[c])})}},t[un]={appendData:a},t[Xi]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Es(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function ex(e){var t,r;return Pe(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function ql(e){return new Mq(e)}var Mq=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function f(y){return!(y>=1)&&(y=1),y}var c;(this._dirty||a==="reset")&&(this._dirty=!1,c=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(c||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),Eq=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Pc(t,r)},e}();function Pq(e,t){var r=new Eq,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==ci&&mr(o);var s=[],l={},u=e.dimensionsDefine;if(u)R(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ts(l,m)&&mr(_),l[m]=y}});else for(var f=0;f65535?Bq:Fq}function No(){return[1/0,-1/0]}function $q(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function nx(e,t,r,n,i){var a=TE[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Oe(o,function(y){return y.property}),f=0;fm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,f=0,c=this.count();f=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=f))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=c&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],x=t[i[1]][1],m=0;m=c&&y<=d||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=c&&y<=d||isNaN(y))&&(l[u++]=S)}else for(var m=0;mt[E][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),f,c,d,h=new(il(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vf&&(f=c,d=b)}A>0&&Af-v&&(l=f-v,s.length=l);for(var p=0;pc[1]&&(c[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=c)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Pc(r[a],this._dimensions[a])}Hv={arrayRows:t,objectRows:function(r,n,i,a){return Pc(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Pc(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),Hq=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(Of(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var f=r[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,a=[f._getVersionSign()]}else s=o.get("data",!0),l=$r(s)?Xi:un,a=[];var c=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(c.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(c.sourceHeader,d.sourceHeader),p=qe(c.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[Ug(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[Ug(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&ix(a)}var o,s=[],l=[];return R(t,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&ix(c),s.push(f),l.push(u._getVersionSign())}),n?o=kq(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[yq(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function pt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Te(e)?SU(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function It(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),NA),e=(+e).toFixed(t),r?e:+e}function ui(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return CU(e)}function CU(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function TU(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function MU(e,t){var r=ta(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Oe(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Oe(i,function(h){return Math.floor(h)}),s=ta(o,function(h,v){return h+v},0),l=Oe(i,function(h,v){return h-o[v]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return Oe(o,function(h){return h/n})}function AU(e,t){var r=Math.max(ui(e),ui(t)),n=e+t;return r>NA?n:It(n,r)}function BA(e){var t=Math.PI*2;return(e%t+t)%t}function td(e){return e>-W1&&e=10&&t++,t}function FA(e,t){var r=zy(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function rd(e){var t=parseFloat(e);return t==e&&(t!==0||!Te(e)||e.indexOf("x")<=0)?t:NaN}function LU(e){return!isNaN(rd(e))}function $A(){return Math.round(Math.random()*9)}function HA(e,t){return t===0?e:HA(t,e%t)}function V1(e,t){return e==null?t:t==null?e:e*t/HA(e,t)}function mr(e){throw new Error(e)}function G1(e,t,r){return(t-e)*r+e}var zA="series\0",DU="\0_ec_\0";function lr(e){return e instanceof Array?e:e==null?[]:[e]}function Pg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&it(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var e9=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],t9=_u(e9),r9=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return t9(this,t,r)},e}(),Lg=new Vu(50);function n9(e){if(typeof e=="string"){var t=Lg.get(e);return t&&t.image}else return e}function YA(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=Lg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!th(t)&&a.pending.push(o)):(t=bo.loadImage(e,Y1,Y1),t.__zrImageSrc=e,Lg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function Y1(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=Nr(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function jA(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=Nr(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?a9(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=Nr(e,n)}return e===""&&(e=t.placeholder),e}function a9(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);c=c.slice(0,v)}if(e&&a&&f!=null)for(var p=qA(f,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&mv(r,e.substring(s,u),t,o),mv(r,l[2],t,o,l[1]),s=gv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var M=S.width,D=M==null||M==="auto";if(typeof M=="string"&&M.charAt(M.length-1)==="%")w.percentWidth=M,f.push(w),w.contentWidth=Nr(w.text,E);else{if(D){var O=S.backgroundColor,k=O&&O.image;k&&(k=n9(k),th(k)&&(w.width=Math.max(w.width,k.width*A/k.height)))}var F=v&&n!=null?n-b:null;F!=null&&F0&&v+n.accumWidth>n.width&&(f=t.split(` +`),u=!0),n.accumWidth=v}else{var p=KA(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,c=p.linesWidths,f=p.lines}}else f=t.split(` +`);for(var g=0;g=33&&t<=383}var c9=ta(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function d9(e){return f9(e)?!!c9[e]:!0}function KA(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,f=0,c=0;cr:i+f+h>r){f?(s||l)&&(v?(s||(s=l,l="",u=0,f=u),a.push(s),o.push(f-u),l+=d,u+=h,s="",f=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(f),s=d,f=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}f+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(f)),a.length===1&&(f+=i),{accumWidth:f,lines:a,linesWidths:o}}var Dg="__zr_style_"+Math.round(Math.random()*10),no={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},rh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};no[Dg]=!0;var j1=["z","z2","invisible"],h9=["invisible"],v9=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=xt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Cf[0]=wv(i)*r+e,Cf[1]=bv(i)*n+t,Tf[0]=wv(a)*r+e,Tf[1]=bv(a)*n+t,u(s,Cf,Tf),f(l,Cf,Tf),i=i%ba,i<0&&(i=i+ba),a=a%ba,a<0&&(a=a+ba),i>a&&!o?a+=ba:ii&&(Mf[0]=wv(h)*r+e,Mf[1]=bv(h)*n+t,u(s,Mf,s),f(l,Mf,l))}var nt={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},wa=[],xa=[],Dn=[],Di=[],In=[],Rn=[],xv=Math.min,Sv=Math.max,Sa=Math.cos,Ca=Math.sin,ni=Math.abs,Ig=Math.PI,Fi=Ig*2,Cv=typeof Float32Array<"u",Js=[];function Tv(e){var t=Math.round(e/Ig*1e8)/1e8;return t%2*Ig}function _9(e,t){var r=Tv(e[0]);r<0&&(r+=Fi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=Fi?i=r+Fi:t&&r-i>=Fi?i=r-Fi:!t&&r>i?i=r+(Fi-Tv(r-i)):t&&r0&&(this._ux=ni(n/Jc/t)||0,this._uy=ni(n/Jc/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(nt.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=ni(t-this._xi),i=ni(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(nt.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(nt.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(nt.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),Js[0]=i,Js[1]=a,_9(Js,o),i=Js[0],a=Js[1];var s=a-i;return this.addData(nt.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Sa(a)*n+t,this._yi=Ca(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(nt.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(nt.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Cv&&(this.data=new Float32Array(r));for(var n=0;nf.length&&(this._expandData(),f=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Dn[0]=Dn[1]=In[0]=In[1]=Number.MAX_VALUE,Di[0]=Di[1]=Rn[0]=Rn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||ni(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case nt.C:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++],w=t[d++],S=t[d++];p=FG(a,o,b,x,g,m,w,S,10),a=w,o=S;break}case nt.Q:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++];p=HG(a,o,b,x,g,m,10),a=g,o=m;break}case nt.A:var C=t[d++],T=t[d++],E=t[d++],A=t[d++],M=t[d++],D=t[d++],O=D+M;d+=1,t[d++],v&&(s=Sa(M)*E+C,l=Ca(M)*A+T),p=Sv(E,A)*xv(Fi,Math.abs(D)),a=Sa(O)*E+C,o=Ca(O)*A+T;break;case nt.R:{s=a=t[d++],l=o=t[d++];var k=t[d++],F=t[d++];p=k*2+F*2;break}case nt.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[c++]=p,f+=p)}return this._pathLen=f,f},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,f,c,d,h=r<1,v,p,g=0,m=0,y,_=0,b,x;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case nt.M:s=u=n[w++],l=f=n[w++],t.moveTo(u,f);break;case nt.L:{c=n[w++],d=n[w++];var T=ni(c-u),E=ni(d-f);if(T>i||E>a){if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+c*M,f*(1-M)+d*M);break e}g+=A}t.lineTo(c,d),u=c,f=d,_=0}else{var D=T*T+E*E;D>_&&(b=c,x=d,_=D)}break}case nt.C:{var O=n[w++],k=n[w++],F=n[w++],j=n[w++],B=n[w++],N=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;Xc(u,O,F,B,M,wa),Xc(f,k,j,N,M,xa),t.bezierCurveTo(wa[1],xa[1],wa[2],xa[2],wa[3],xa[3]);break e}g+=A}t.bezierCurveTo(O,k,F,j,B,N),u=B,f=N;break}case nt.Q:{var O=n[w++],k=n[w++],F=n[w++],j=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;Zc(u,O,F,M,wa),Zc(f,k,j,M,xa),t.quadraticCurveTo(wa[1],xa[1],wa[2],xa[2]);break e}g+=A}t.quadraticCurveTo(O,k,F,j),u=F,f=j;break}case nt.A:var U=n[w++],re=n[w++],ae=n[w++],me=n[w++],Me=n[w++],V=n[w++],J=n[w++],W=!n[w++],Y=ae>me?ae:me,le=ni(ae-me)>.001,he=Me+V,Q=!1;if(h){var A=v[m++];g+A>y&&(he=Me+V*(y-g)/A,Q=!0),g+=A}if(le&&t.ellipse?t.ellipse(U,re,ae,me,J,Me,he,W):t.arc(U,re,Y,Me,he,W),Q)break e;C&&(s=Sa(Me)*ae+U,l=Ca(Me)*me+re),u=Sa(he)*ae+U,f=Ca(he)*me+re;break;case nt.R:s=u=n[w],l=f=n[w+1],c=n[w++],d=n[w++];var P=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(c,d),t.lineTo(c+xv(z,P),d),z-=P,z>0&&t.lineTo(c+P,d+xv(z,I)),z-=I,z>0&&t.lineTo(c+Sv(P-z,0),d+I),z-=P,z>0&&t.lineTo(c,d+Sv(I-z,0));break e}g+=A}t.rect(c,d,P,I);break;case nt.Z:if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+s*M,f*(1-M)+l*M);break e}g+=A}t.closePath(),u=s,f=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=nt,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const ho=b9;function Do(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+c&&f>n+c&&f>a+c&&f>s+c||fe+c&&u>r+c&&u>i+c&&u>o+c||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||f+ui&&(i+=el);var d=Math.atan2(l,s);return d<0&&(d+=el),d>=n&&d<=i||d+el>=n&&d+el<=i}function Ta(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ii=ho.CMD,Ma=Math.PI*2,C9=1e-4;function T9(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&M9(),h=Gt(t,n,a,s,jr[0]),d>1&&(v=Gt(t,n,a,s,jr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=Qt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);ar[0]=-l,ar[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Ma-1e-4){n=0,i=Ma;var f=a?1:-1;return o>=ar[0]+e&&o<=ar[1]+e?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=Ma,i+=Ma);for(var d=0,h=0;h<2;h++){var v=ar[h];if(v+e>o){var p=Math.atan2(s,v),f=a?1:-1;p<0&&(p=Ma+p),(p>=n&&p<=i||p+Ma>=n&&p+Ma<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Ta(l,u,f,c,n,i))),g&&(l=a[v],u=a[v+1],f=l,c=u),p){case Ii.M:f=a[v++],c=a[v++],l=f,u=c;break;case Ii.L:if(r){if(Do(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Ta(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ii.C:if(r){if(w9(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=A9(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ii.Q:if(r){if(x9(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=E9(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ii.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);d=Math.cos(x)*_+m,h=Math.sin(x)*b+y,g?(f=d,c=h):s+=Ta(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(S9(m,y,b,x,x+w,S,t,C,i))return!0}else s+=P9(m,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+m,u=Math.sin(x+w)*b+y;break;case Ii.R:f=l=a[v++],c=u=a[v++];var T=a[v++],E=a[v++];if(d=f+T,h=c+E,r){if(Do(f,c,d,c,t,n,i)||Do(d,c,d,h,t,n,i)||Do(d,h,f,h,t,n,i)||Do(f,h,f,c,t,n,i))return!0}else s+=Ta(d,c,d,h,n,i),s+=Ta(f,h,f,c,n,i);break;case Ii.Z:if(r){if(Do(l,u,f,c,t,n,i))return!0}else s+=Ta(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!T9(u,c)&&(s+=Ta(l,u,f,c,n,i)||0),s!==0}function L9(e,t,r){return XA(e,0,!1,t,r)}function D9(e,t,r,n){return XA(e,t,!0,r,n)}var ZA=ft({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},no),I9={style:ft({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},rh.style)},Mv=mu.concat(["invisible","culling","z","z2","zlevel","parent"]),R9=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Mg:n>.2?fU:Ag}else if(r)return Ag}return Mg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Te(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Qc(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Vo)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),D9(s,l/u,r,n)))return!0}if(this.hasFill())return L9(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Vo,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:oe(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Vo)},t.prototype.createStyle=function(r){return Zd(ZA,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=oe({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=oe({},i.shape),oe(u,n.shape)):(u=oe({},a?this.shape:i.shape),oe(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=oe({},this.shape);for(var f={},c=xt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return Zd(O9,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Fy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(qu);QA.prototype.type="tspan";const Rg=QA;var k9=ft({x:0,y:0},no),N9={style:ft({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},rh.style)};function B9(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var JA=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return Zd(k9,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=B9(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return N9},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new tt(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(qu);JA.prototype.type="image";const Bs=JA;function F9(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,f;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var c;s+l>i&&(c=s+l,s*=i/c,l*=i/c),u+f>i&&(c=u+f,u*=i/c,f*=i/c),l+u>a&&(c=l+u,l*=a/c,u*=a/c),s+f>a&&(c=s+f,s*=a/c,f*=a/c),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+f,n+a),f!==0&&e.arc(r+f,n+a-f,f,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var Xo=Math.round;function e2(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(Xo(n*2)===Xo(i*2)&&(e.x1=e.x2=Xa(n,s,!0)),Xo(a*2)===Xo(o*2)&&(e.y1=e.y2=Xa(a,s,!0))),e}}function t2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=Xa(n,s,!0),e.y=Xa(i,s,!0),e.width=Math.max(Xa(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(Xa(i+o,s,!1)-e.y,o===0?0:1)),e}}function Xa(e,t,r){if(!t)return e;var n=Xo(e*2);return(n+Xo(t))%2===0?n/2:(n+(r?1:-1))/2}var $9=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),H9={},r2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new $9},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=t2(H9,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?F9(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ct);r2.prototype.type="rect";const Nt=r2;var J1={fill:"#000"},ew=2,z9={style:ft({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},rh.style)},n2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=J1,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,M=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,O=0;O=0&&(O=w[D],O.align==="right");)this._placeToken(O,r,C,m,M,"right",_),T-=O.width,M-=O.width,D--;for(A+=(a-(A-g)-(y-M)-T)/2;E<=D;)O=w[E],this._placeToken(O,r,C,m,A+O.width/2,"center",_),A+=O.width,E++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var f=r.verticalAlign,c=a+i/2;f==="top"?c=a+r.height/2:f==="bottom"&&(c=a+i-r.height/2);var d=!r.isLineHolder&&Av(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,c-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=ow(o,s,v),c-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Rg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),x=iw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=ew,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=c,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||co,g.opacity=Bl(u.opacity,n.opacity,1),rw(g,u),x&&(g.lineWidth=Bl(u.lineWidth,n.lineWidth,_),g.lineDash=je(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=x),b&&(g.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new tt(_l(g.x,S,g.textAlign),Go(g.y,C,g.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,d=l&&!c,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&f){p=this._getOrCreateChild(Nt),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=je(r.fillOpacity,1)}else if(c){g=this._getOrCreateChild(Bs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&f){var y=p.style;y.lineWidth=u,y.stroke=f,y.strokeOpacity=je(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=Bl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return U9(r)&&(n=[r.fontStyle,r.fontWeight,G9(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&zn(n)||r.textFont||r.font},t}(qu),W9={left:!0,right:1,center:1},V9={top:1,bottom:1,middle:1},tw=["fontStyle","fontWeight","fontSize","fontFamily"];function G9(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?Ey+"px":e+"px"}function rw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ct){var o=i2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Io(s)||Io(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=oe({},n),u=oe({},u),u.fill=s):!Io(u.fill)&&Io(s)?(a=!0,n=oe({},n),u=oe({},u),u.fill=cw(s)):!Io(u.stroke)&&Io(l)&&(a||(n=oe({},n),u=oe({},u)),u.stroke=cw(l)),n.style=u}}if(n&&n.z2==null){a||(n=oe({},n));var f=e.z2EmphasisLift;n.z2=e.z2+(f??j9)}return n}function eY(e,t,r){if(r&&r.z2==null){r=oe({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??K9)}return r}function tY(e,t,r){var n=it(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:Q9(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=oe({},r),o=oe({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Ev(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return J9(this,e,t,r);if(e==="blur")return tY(this,e,r);if(e==="select")return eY(this,e,r)}return r}function rY(e){e.stateProxy=Ev;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Ev),r&&(r.stateProxy=Ev)}function hw(e,t){!d2(e,t)&&!e.__highByOuter&&Ci(e,o2)}function vw(e,t){!d2(e,t)&&!e.__highByOuter&&Ci(e,s2)}function Og(e,t){e.__highByOuter|=1<<(t||0),Ci(e,o2)}function kg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ci(e,s2)}function nY(e){Ci(e,jy)}function u2(e){Ci(e,l2)}function f2(e){Ci(e,X9)}function c2(e){Ci(e,Z9)}function d2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function h2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=Uy(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){l2(u)}),s&&r.push(a)),o.isBlured=!1}),R(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Ng(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,f){for(var c=0;c0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Fg(e,t,r){g2(e,!0),Ci(e,rY),fY(e,t,r)}function uY(e){g2(e,!1)}function v2(e,t,r,n){n?uY(e):Fg(e,t,r)}function fY(e,t,r){var n=ut(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var gw=["emphasis","blur","select"],cY={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function p2(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Pv(v),s*=Pv(v));var p=(i===a?-1:1)*Pv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Ef(c)*g-Af(c)*m,_=(t+n)/2+Af(c)*g+Ef(c)*m,b=bw([1,0],[(d-g)/o,(h-m)/s]),x=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],S=bw(x,w);if(zg(x,w)<=-1&&(S=tl),zg(x,w)>=1&&(S=0),S<0){var C=Math.round(S/tl*1e6)/1e6;S=tl*2+C%2*tl}f.addData(u,y,_,o,s,b,S,c,a)}var mY=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,yY=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function _Y(e){var t=new ho;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=ho.CMD,l=e.match(mY);if(!l)return t;for(var u=0;uO*O+k*k&&(C=E,T=A),{cx:C,cy:T,x0:-f,y0:-c,x1:C*(i/x-1),y1:T*(i/x-1)}}function AY(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function EY(e,t){var r,n=bl(t.r,0),i=bl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var f=t.cx,c=t.cy,d=!!t.clockwise,h=xw(u-l),v=h>Lv&&h%Lv;if(v>hn&&(h=v),!(n>hn))e.moveTo(f,c);else if(h>Lv-hn)e.moveTo(f+n*Oo(l),c+n*Aa(l)),e.arc(f,c,n,l,u,!d),i>hn&&(e.moveTo(f+i*Oo(u),c+i*Aa(u)),e.arc(f,c,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,T=void 0,E=void 0,A=void 0,M=void 0,D=void 0,O=void 0,k=n*Oo(l),F=n*Aa(l),j=i*Oo(u),B=i*Aa(u),N=h>hn;if(N){var U=t.cornerRadius;U&&(r=AY(U),p=r[0],g=r[1],m=r[2],y=r[3]);var re=xw(n-i)/2;if(_=On(re,m),b=On(re,y),x=On(re,p),w=On(re,g),T=S=bl(_,b),E=C=bl(x,w),(S>hn||C>hn)&&(A=n*Oo(u),M=n*Aa(u),D=i*Oo(l),O=i*Aa(l),hhn){var le=On(m,T),he=On(y,T),Q=Pf(D,O,k,F,n,le,d),P=Pf(A,M,j,B,n,he,d);e.moveTo(f+Q.cx+Q.x0,c+Q.cy+Q.y0),T0&&e.arc(f+Q.cx,c+Q.cy,le,Xt(Q.y0,Q.x0),Xt(Q.y1,Q.x1),!d),e.arc(f,c,n,Xt(Q.cy+Q.y1,Q.cx+Q.x1),Xt(P.cy+P.y1,P.cx+P.x1),!d),he>0&&e.arc(f+P.cx,c+P.cy,he,Xt(P.y1,P.x1),Xt(P.y0,P.x0),!d))}else e.moveTo(f+k,c+F),e.arc(f,c,n,l,u,!d);if(!(i>hn)||!N)e.lineTo(f+j,c+B);else if(E>hn){var le=On(p,E),he=On(g,E),Q=Pf(j,B,A,M,i,-he,d),P=Pf(k,F,D,O,i,-le,d);e.lineTo(f+Q.cx+Q.x0,c+Q.cy+Q.y0),E0&&e.arc(f+Q.cx,c+Q.cy,he,Xt(Q.y0,Q.x0),Xt(Q.y1,Q.x1),!d),e.arc(f,c,i,Xt(Q.cy+Q.y1,Q.cx+Q.x1),Xt(P.cy+P.y1,P.cx+P.x1),d),le>0&&e.arc(f+P.cx,c+P.cy,le,Xt(P.y1,P.x1),Xt(P.y0,P.x0),!d))}else e.lineTo(f+j,c+B),e.arc(f,c,i,u,l,d)}e.closePath()}}}var PY=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),C2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new PY},t.prototype.buildPath=function(r,n){EY(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ct);C2.prototype.type="sector";const wo=C2;var LY=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),T2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new LY},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ct);T2.prototype.type="ring";const M2=T2;function DY(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,f,c;if(n){f=[1/0,1/0],c=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=DY(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],f=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;sPa[1]){if(s=!1,a)return s;var f=Math.abs(Pa[0]-Ea[1]),c=Math.abs(Ea[0]-Pa[1]);Math.min(f,c)>i.len()&&(f0){var c=f.duration,d=f.delay,h=f.easing,v={duration:c,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Mr(e,t,r,n,i,a){Qy("update",e,t,r,n,i,a)}function Br(e,t,r,n,i,a){Qy("enter",e,t,r,n,i,a)}function os(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Tw(e){return!e.isGroup}function o7(e){return e.shape!=null}function z2(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Tw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return o7(o)&&(s.shape=oe({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Tw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Mr(o,l,r,ut(o).dataIndex)}}})}function s7(e,t){return Oe(e,function(r){var n=r[0];n=od(n,t.x),n=sd(n,t.x+t.width);var i=r[1];return i=od(i,t.y),i=sd(i,t.y+t.height),[n,i]})}function l7(e,t){var r=od(e.x,t.x),n=sd(e.x+e.width,t.x+t.width),i=od(e.y,t.y),a=sd(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function t0(e,t,r){var n=oe({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),ft(i,r),new Bs(n)):Jy(e.replace("path://",""),n,r,"center")}function u7(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Dv(h,v,f,c)/d;return!(g<0||g>1)}function Dv(e,t,r,n){return e*n-r*t}function f7(e){return e<=1e-6&&e>=-1e-6}function r0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Te(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&R(xt(l),function(f){Ts(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=ut(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:ft({content:n,formatterParams:s},i)}}function Mw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function n0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function q2(e,t){return at(at({},e,!0),t,!0)}const A7={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},E7={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var ld="ZH",a0="EN",wu=a0,Ec={},o0={},j2=Ve.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(ld)>-1?ld:wu}():wu;function K2(e,t){e=e.toUpperCase(),o0[e]=new tr(t),Ec[e]=t}function P7(e){if(Te(e)){var t=Ec[e.toUpperCase()]||{};return e===ld||e===a0?Ze(t):at(Ze(t),Ze(Ec[wu]),!1)}else return at(Ze(e),Ze(Ec[wu]),!1)}function L7(e){return o0[e]}function D7(){return o0[wu]}K2(a0,A7);K2(ld,E7);var s0=1e3,l0=s0*60,Ul=l0*60,Jr=Ul*24,Iw=Jr*365,wl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},If="{yyyy}-{MM}-{dd}",Rw={year:"{yyyy}",month:"{yyyy}-{MM}",day:If,hour:If+" "+wl.hour,minute:If+" "+wl.minute,second:If+" "+wl.second,millisecond:wl.none},Ov=["year","month","day","hour","minute","second","millisecond"],X2=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function La(e,t){return e+="","0000".substr(0,t-e.length)+e}function ss(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function I7(e){return e===ss(e)}function R7(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function sh(e,t,r,n){var i=_i(e),a=i[u0(r)](),o=i[ls(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[lh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[xu(r)](),c=(f-1)%12+1,d=i[uh(r)](),h=i[fh(r)](),v=i[ch(r)](),p=n instanceof tr?n:L7(n||j2)||D7(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,La(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,La(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,La(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,La(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,La(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,La(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,La(v,3)).replace(/{S}/g,v+"")}function O7(e,t,r,n,i){var a=null;if(Te(r))a=r;else if(We(r))a=r(e.value,t,{level:e.level});else{var o=oe({},wl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var c=e.level==null?0:e.level>=0?e.level:a.length+e.level;c=Math.min(c,a.length-1),a=a[c]}}return sh(new Date(e.value),a,i,n)}function Z2(e,t){var r=_i(e),n=r[ls(t)]()+1,i=r[lh(t)](),a=r[xu(t)](),o=r[uh(t)](),s=r[fh(t)](),l=r[ch(t)](),u=l===0,f=u&&s===0,c=f&&o===0,d=c&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":c?"hour":f?"minute":u?"second":"millisecond"}function Ow(e,t,r){var n=bt(e)?_i(e):e;switch(t=t||Z2(e,r),t){case"year":return n[u0(r)]();case"half-year":return n[ls(r)]()>=6?1:0;case"quarter":return Math.floor((n[ls(r)]()+1)/4);case"month":return n[ls(r)]();case"day":return n[lh(r)]();case"half-day":return n[xu(r)]()/24;case"hour":return n[xu(r)]();case"minute":return n[uh(r)]();case"second":return n[fh(r)]();case"millisecond":return n[ch(r)]()}}function u0(e){return e?"getUTCFullYear":"getFullYear"}function ls(e){return e?"getUTCMonth":"getMonth"}function lh(e){return e?"getUTCDate":"getDate"}function xu(e){return e?"getUTCHours":"getHours"}function uh(e){return e?"getUTCMinutes":"getMinutes"}function fh(e){return e?"getUTCSeconds":"getSeconds"}function ch(e){return e?"getUTCMilliseconds":"getMilliseconds"}function k7(e){return e?"setUTCFullYear":"setFullYear"}function Q2(e){return e?"setUTCMonth":"setMonth"}function J2(e){return e?"setUTCDate":"setDate"}function eE(e){return e?"setUTCHours":"setHours"}function tE(e){return e?"setUTCMinutes":"setMinutes"}function rE(e){return e?"setUTCSeconds":"setSeconds"}function nE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function iE(e){if(!LU(e))return Te(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function aE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var dh=sA;function Gg(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&zn(f)?f:"-"}function a(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?_i(e):e;if(isNaN(+l)){if(s)return"-"}else return sh(l,n,r)}if(t==="ordinal")return fg(e)?i(e):bt(e)&&a(e)?e+"":"-";var u=rd(e);return a(u)?iE(u):fg(e)?i(e):typeof e=="boolean"?e+"":"-"}var kw=["a","b","c","d","e","f","g"],kv=function(e,t){return"{"+e+(t??"")+"}"};function oE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Su(e,t){return t=t||"transparent",Te(e)?e:De(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function Nw(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Pc=R,B7=["left","right","top","bottom","width","height"],Rf=[["width","left","right"],["height","top","bottom"]];function f0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var f=l.getBoundingRect(),c=t.childAt(u+1),d=c&&c.getBoundingRect(),h,v;if(e==="horizontal"){var p=f.width+(d?-d.x+f.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=f.height):s=Math.max(s,f.height)}else{var g=f.height+(d?-d.y+f.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Yl=f0;Dt(f0,"vertical");Dt(f0,"horizontal");function Ms(e,t,r){r=dh(r||0);var n=t.width,i=t.height,a=pt(e.left,n),o=pt(e.top,i),s=pt(e.right,n),l=pt(e.bottom,i),u=pt(e.width,n),f=pt(e.height,i),c=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(f)&&(f=i-l-c-o),h!=null&&(isNaN(u)&&isNaN(f)&&(h>n/i?u=n*.8:f=i*.8),isNaN(u)&&(u=h*f),isNaN(f)&&(f=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-f-c),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-f/2-r[0];break;case"bottom":o=i-f-c;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var v=new tt(a+r[3],o+r[0],u,f);return v.margin=r,v}function Cu(e){var t=e.layoutMode||e.constructor.layoutMode;return De(t)?t:t?{type:t}:null}function As(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(Rf[0],0),a=o(Rf[1],1);u(Rf[0],e,i),u(Rf[1],e,a);function o(f,c){var d={},h=0,v={},p=0,g=2;if(Pc(f,function(_){v[_]=e[_]}),Pc(f,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[c])return l(t,f[1])?v[f[2]]=null:l(t,f[2])&&(v[f[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=at(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return Yu(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(tr);UA(Fs,tr);eh(Fs);T7(Fs);M7(Fs,H7);function H7(e){var t=[];return R(Fs.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Oe(t,function(r){return Wn(r).main}),e!=="dataset"&&it(t,"dataset")<=0&&t.unshift("dataset"),t}const wt=Fs;var sE="";typeof navigator<"u"&&(sE=navigator.platform||"");var ko="rgba(0, 0, 0, 0.2)";const z7={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:ko,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:ko,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:ko,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:ko,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:ko,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:ko,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:sE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var lE=Ge(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),un="original",Ar="arrayRows",Pn="objectRows",ei="keyedColumns",Zi="typedArray",uE="unknown",ci="column",$s="row",Vt={Must:1,Might:2,Not:3},fE=Tt();function W7(e){fE(e).datasetMap=Ge()}function V7(e,t,r){var n={},i=c0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=fE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;e=e.slice(),R(e,function(p,g){var m=De(p)?p:e[g]={name:p};m.type==="ordinal"&&f==null&&(f=g,c=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});R(e,function(p,g){var m=p.name,y=v(p);if(f==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(f===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function K7(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var f=o==null||!n?r:j7(n,o);if(f=f||r,!(!f||!f.length)){var c=f[l];return i&&(u[i]=c),s.paletteIdx=(l+1)%f.length,c}}function X7(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Of,rl,Fw,$w="\0_ec_inner",Z7=1,hE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new tr(a),this._locale=new tr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=Ww(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,Ww(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?Fw(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&R(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ge(),u=n&&n.replaceMergeMainTypeMap;W7(this),R(r,function(c,d){c!=null&&(wt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Ze(c):at(i[d],c,!0))}),u&&u.each(function(c,d){wt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),wt.topologicalTravel(s,wt.getAllClassMainTypes(),f,this);function f(c){var d=q7(this,c,lr(r[c])),h=a.get(c),v=h?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=RU(h,d,v);HU(p,c,wt),i[c]=null,a.set(c,null),o.set(c,0);var g=[],m=[],y=0,_;R(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=c==="series",T=wt.getClass(c,b.keyInfo.subType,!C);if(!T)return;if(c==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===T)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var E=oe({componentIndex:x},b.keyInfo);w=new T(S,this,this,E),oe(w,E),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[c]=g,a.set(c,m),o.set(c,y),c==="series"&&Of(this)}this._seriesIndices||Of(this)},t.prototype.getOption=function(){var r=Ze(this.option);return R(r,function(n,i){if(wt.hasClass(i)){for(var a=lr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!yu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[$w],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function lq(e,t){return e.join(",")===t.join(",")}const uq=iq;var fn=R,Tu=De,Vw=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Bv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=Vw.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=AU(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var vh=function(){function e(t){this.data=t.data||(t.sourceFormat===ei?{}:[]),this.sourceFormat=t.sourceFormat||uE,this.seriesLayoutBy=t.seriesLayoutBy||ci,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};Xw=(t={},t[Ar+"_"+ci]={pure:!0,appendData:a},t[Ar+"_"+$s]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Pn]={pure:!0,appendData:a},t[ei]={pure:!0,appendData:function(o){var s=this._data;R(o,function(l,u){for(var f=s[u]||(s[u]=[]),c=0;c<(l||[]).length;c++)f.push(l[c])})}},t[un]={appendData:a},t[Zi]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Es(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function ex(e){var t,r;return De(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function ql(e){return new Aq(e)}var Aq=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function f(y){return!(y>=1)&&(y=1),y}var c;(this._dirty||a==="reset")&&(this._dirty=!1,c=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(c||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),Pq=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Lc(t,r)},e}();function Lq(e,t){var r=new Pq,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==ci&&mr(o);var s=[],l={},u=e.dimensionsDefine;if(u)R(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ts(l,m)&&mr(_),l[m]=y}});else for(var f=0;f65535?Fq:$q}function No(){return[1/0,-1/0]}function Hq(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function nx(e,t,r,n,i){var a=ME[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Oe(o,function(y){return y.property}),f=0;fm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,f=0,c=this.count();f=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=f))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=c&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],x=t[i[1]][1],m=0;m=c&&y<=d||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=c&&y<=d||isNaN(y))&&(l[u++]=S)}else for(var m=0;mt[E][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),f,c,d,h=new(il(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vf&&(f=c,d=b)}A>0&&Af-v&&(l=f-v,s.length=l);for(var p=0;pc[1]&&(c[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=c)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Lc(r[a],this._dimensions[a])}Hv={arrayRows:t,objectRows:function(r,n,i,a){return Lc(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Lc(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),zq=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(kf(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var f=r[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,a=[f._getVersionSign()]}else s=o.get("data",!0),l=$r(s)?Zi:un,a=[];var c=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=je(c.seriesLayoutBy,d.seriesLayoutBy)||null,v=je(c.sourceHeader,d.sourceHeader),p=je(c.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[Ug(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[Ug(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&ix(a)}var o,s=[],l=[];return R(t,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&ix(c),s.push(f),l.push(u._getVersionSign())}),n?o=Nq(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[_q(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return R(e.blocks,function(i){var a=PE(i);a>=t&&(t=a+ +(n&&(!a||qg(i)&&!i.noHeader)))}),t}return 0}function Vq(e,t,r,n){var i=t.noHeader,a=Uq(PE(t)),o=[],s=t.blocks||[];mi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ts(u,l)){var f=new Aq(u[l],null);s.sort(function(v,p){return f.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(v,p){var g=t.valueFormatter,m=EE(v)(g?oe(oe({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var c=e.renderMode==="richText"?o.join(a.richText):jg(o.join(""),i?r:a.html);if(i)return c;var d=Gg(t.header,"ordinal",e.useUTC),h=AE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?LE(e,d,h)+a.richText+c:jg('
'+Kr(d)+"
"+c,r)}function Gq(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,f=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Oe(b,function(x,w){return Gg(x,ge(h)?h[w]:h,u)})};if(!(a&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":Gg(l,"ordinal",u),h=t.valueType,v=o?[]:f(t.value),p=!s||!a,g=!s&&a,m=AE(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":c)+(a?"":LE(e,d,y))+(o?"":jq(e,v,p,g,_)):jg((s?"":c)+(a?"":Yq(d,!s,y))+(o?"":qq(v,p,g,_)),r)}}function ax(e,t,r,n,i,a){if(e){var o=EE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function Uq(e){return{html:zq[e],richText:Wq[e]}}function jg(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function Yq(e,t,r){var n=t?"margin-left:2px":"";return''+Kr(e)+""}function qq(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Oe(e,function(o){return Kr(o)}).join("  ")+""}function LE(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function jq(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function Kq(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Su(n)}function DE(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var zv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=FA()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=k7({color:r,type:t,renderMode:n,markerId:i});return Ce(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?R(r,function(a){return oe(n,a)}):oe(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function Xq(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=Kq(t,r),f,c,d,h;if(o>1||l&&!o){var v=Zq(s,t,r,a,u);f=v.inlineValues,c=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=f=Es(i,r,a[0]),c=p.type}else h=f=l?s[0]:s;var g=Wy(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Mu("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Mu("nameValue",{markerType:"item",markerColor:u,name:_,noName:!zn(_),value:f,valueType:c})].concat(d||[])})}function Zq(e,t,r,n,i){var a=t.getData(),o=ea(e,function(c,d,h){var v=a.getDimensionInfo(h);return c=c||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(c){f(Es(a,r,c),c)}):R(e,f);function f(c,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Mu("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:c,valueType:h.type})):(s.push(c),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Ii=Tt();function kf(e,t){return e.getName(t)||e.getId(t)}var Qq="__universalTransitionEnabled",gh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=ql({count:ej,reset:tj}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=Ii(this).sourceManager=new Hq(this);a.prepareSource();var o=this.getInitialData(r,i);sx(o,this),this.dataTask.context.data=o,Ii(this).dataBeforeProcessed=o,ox(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Cu(this),a=i?hh(r):{},o=this.subType;bt.hasClass(o)&&(o+="Series"),it(r,n.getTheme().get(this.subType)),it(r,this.getDefaultOption()),Pg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&As(r,a,i)},t.prototype.mergeOption=function(r,n){r=it(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Cu(this);i&&As(this.option,r,i);var a=Ii(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);sx(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Ii(this).dataBeforeProcessed=o,ox(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!$r(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=d0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[kf(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[Qq])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Pe(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(r,n)}},t.registerClass=function(r){return bt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(bt);Qn(gh,Tq);Qn(gh,d0);GA(gh,bt);function ox(e){var t=e.name;Wy(e)||(e.name=Jq(e)||t)}function Jq(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return R(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function ej(e){return e.model.getRawData().count()}function tj(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),rj}function rj(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function sx(e,t){R(QV(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Dt(nj,t))})}function nj(e,t){var r=Kg(e);return r&&r.setOutputEnd((t||this).count()),t}function Kg(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const po=gh;var y0=function(){function e(){this.group=new sn,this.uid=oh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();Gy(y0);eh(y0);const _i=y0;function IE(){var e=Tt();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var RE=Tt(),ij=IE(),_0=function(){function e(){this.group=new sn,this.uid=oh("viewChart"),this.renderTask=ql({plan:aj,reset:oj}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&ux(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&ux(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){n0(this.group,t)},e.markUpdateMethod=function(t,r){RE(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function lx(e,t,r){e&&$g(e)&&(t==="emphasis"?Og:kg)(e,r)}function ux(e,t,r){var n=Gu(e,t),i=t&&t.highlightKey!=null?cY(t.highlightKey):null;n!=null?R(lr(n),function(a){lx(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){lx(a,r,i)})}Gy(_0);eh(_0);function aj(e){return ij(e.model)}function oj(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&RE(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),sj[l]}var sj={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const io=_0;var ld="\0__throttleOriginMethod",fx="\0__throttleRate",cx="\0__throttleType";function b0(e,t,r){var n,i=0,a=0,o=null,s,l,u,f;t=t||0;function c(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?c():o=setTimeout(c,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){f=h},d}function OE(e,t,r,n){var i=e[t];if(i){var a=i[ld]||i,o=i[cx],s=i[fx];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=b0(a,r,n==="debounce"),i[ld]=a,i[cx]=n,i[fx]=r}return i}}function Xg(e,t){var r=e[t];r&&r[ld]&&(r.clear&&r.clear(),e[t]=r[ld])}var dx=Tt(),hx={itemStyle:_u(U2,!0),lineStyle:_u(G2,!0)},lj={lineStyle:"stroke",itemStyle:"fill"};function kE(e,t){var r=e.visualStyleMapper||hx[t];return r||(console.warn("Unknown style type '"+t+"'."),hx.itemStyle)}function NE(e,t){var r=e.visualDrawType||lj[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var uj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=kE(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=NE(e,n),u=o[l],f=We(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||We(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||We(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=oe({},o);g[l]=f(p),h.setItemVisual(v,"style",g)}}}},al=new er,fj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=kE(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){al.option=l[n];var u=i(al),f=o.ensureUniqueItemVisual(s,"style");oe(f,u),al.option.decal&&(o.setItemVisual(s,"decal",al.option.decal),al.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},cj={performRawSeries:!0,overallReset:function(e){var t=Ge();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),dx(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=dx(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=NE(r,s);a.each(function(u){var f=a.getRawIndex(u);i[f]=u}),n.each(function(u){var f=i[u],c=a.getItemVisual(f,"colorFromPalette");if(c){var d=a.ensureUniqueItemVisual(f,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Nf=Math.PI;function dj(e,t){t=t||{},ut(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new sn,n=new Nt({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new fr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Nt({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new Zy({shape:{startAngle:-Nf/2,endAngle:-Nf/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Nf*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Nf*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),f=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:f}),a.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var hj=function(){function e(t,r,n,i){this._stageTaskMap=Ge(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ge();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;R(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";mi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;R(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,d=f.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else c&&c.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ge(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(f):l?n.eachRawSeriesByType(l,f):u&&u(n,i).each(f);function f(c){var d=c.uid,h=s.set(d,o&&o.get(d)||ql({plan:yj,reset:_j,count:wj}));h.context={model:c,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(c,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||ql({reset:vj});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ge(),u=t.seriesType,f=t.getTargetSeries,c=!0,d=!1,h="";mi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):f?f(n,i).each(v):(c=!1,R(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,ql({reset:pj,onDirty:mj})));m.context={model:p,overallProgress:c},m.agent=o,m.__block=c,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return We(t)&&(t={overallReset:t,seriesType:xj(t)}),t.uid=oh("stageHandler"),r&&(t.visualType=r),t},e}();function vj(e){e.overallReset(e.ecModel,e.api,e.payload)}function pj(e){return e.overallProgress&&gj}function gj(){this.agent.dirty(),this.getDownstream().dirty()}function mj(){this.agent&&this.agent.dirty()}function yj(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function _j(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=lr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Oe(t,function(r,n){return BE(n)}):bj}var bj=BE(0);function BE(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(n[u]=l,f=!0),f||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,a,"name")&&f(u,a,"dataIndex")&&f(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function f(c,d,h,v){return c[h]==null||d[v||h]===c[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),Zg=["symbol","symbolSize","symbolRotate","symbolOffset"],mx=Zg.concat(["symbolKeepAspect"]),Mj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&Xa(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function Jg(e,t,r){for(var n=t.type==="radial"?Yj(e,t,r):Uj(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:_t(e)?[e]:ge(e)?e:null}function WE(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&jj(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Oe(r,function(a){return a/i}),n/=i)}return[r,n]}var Kj=new ho(!0);function fd(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function yx(e){return typeof e=="string"&&e!=="none"}function cd(e){var t=e.fill;return t!=null&&t!=="none"}function _x(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function bx(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function em(e,t,r){var n=UA(t.image,t.__image,r);if(th(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*JV),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function Xj(e,t,r,n){var i,a=fd(r),o=cd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var f=t.path||Kj,c=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=c?Jg(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=c?Jg(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=c||!t.__canvasFillPattern?em(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(x=c||!t.__canvasStrokePattern?em(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();f.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,T;e.setLineDash&&r.lineDash&&(i=WE(t),C=i[0],T=i[1]);var E=!0;(u||c&Vo)&&(f.setDPR(e.dpr),l?f.setContext(null):(f.setContext(e),E=!1),f.reset(),t.buildPath(f,t.shape,n),f.toStatic(),t.pathUpdated()),E&&f.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=T),n||(r.strokeFirst?(a&&bx(e,r),o&&_x(e,r)):(o&&_x(e,r),a&&bx(e,r))),C&&e.setLineDash([])}function Zj(e,t,r){var n=t.__image=UA(r.image,t.__image,t,t.onload);if(!(!n||!th(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,f=r.sy||0;e.drawImage(n,u,f,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,f=r.sy,c=o-u,d=s-f;e.drawImage(n,u,f,c,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function Qj(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||co,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=WE(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(fd(r)&&e.strokeText(i,r.x,r.y),cd(r)&&e.fillText(i,r.x,r.y)):(cd(r)&&e.fillText(i,r.x,r.y),fd(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var xx=["shadowBlur","shadowOffsetX","shadowOffsetY"],Sx=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function VE(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){yr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?ro.opacity:o}(n||t.blend!==r.blend)&&(a||(yr(e,i),a=!0),e.globalCompositeOperation=t.blend||ro.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Xt]){if(this._disposed){this.id;return}var a,o,s;if(Pe(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Xt]=!0,!this._model||n){var l=new lq(this._api),u=this._theme,f=this._model=new hE;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},nm);var c={seriesTransition:s,optionChanged:!0};if(i)this[hr]={silent:a,updateParams:c},this[Xt]=!1,this.getZr().wakeUp();else{try{Fo(this),Ri.update.call(this,null,c)}catch(d){throw this[hr]=null,this[Xt]=!1,d}this._ssr||this._zr.flush(),this[hr]=null,this[Xt]=!1,ol.call(this,a),sl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ve.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ve.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return R(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;R(n,function(l){i.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(a.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return R(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(Fx[i]){var l=s,u=s,f=-s,c=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();R(Kl,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Xe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),f=o(w.right,f),c=o(w.bottom,c),d.push({dom:x,left:w.left,top:w.top})}}),l*=h,u*=h,f*=h,c*=h;var v=f-l,p=c-u,g=bo.createCanvas(),m=z1(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return R(d,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Nt({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),R(d,function(_){var b=new Bs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return Yv(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return Yv(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=pv(i,r);return R(o,function(s,l){l.indexOf("Models")>=0&&R(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)a=a||!!f.containPoint(n);else if(l==="seriesModels"){var c=this._chartsMap[u.__viewId];c&&c.containPoint&&(a=a||c.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=pv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?Ej(s,l,n):Pj(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;R(CK,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Sl(s,function(v){var p=lt(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=oe({},p.eventData),!0},!0),l){var f=l.componentType,c=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",c=l.seriesIndex);var d=f&&c!=null&&o.getComponent(f,c),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),R(jl,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),R(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),Dj(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&WA(this.getDom(),C0,"");var n=this,i=n._api,a=n._model;R(n._componentsViews,function(o){o.dispose(a,i)}),R(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Kl[n.id]},t.prototype.resize=function(r){if(!this[Xt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[hr]&&(a==null&&(a=this[hr].silent),i=!0,this[hr]=null),this[Xt]=!0;try{i&&Fo(this),Ri.update.call(this,{type:"resize",animation:oe({duration:0},r&&r.animation)})}catch(o){throw this[Xt]=!1,o}this[Xt]=!1,ol.call(this,a),sl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Pe(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!im[r]){var i=im[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=oe({},r);return n.type=jl[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Pe(n)||(n={silent:!!n}),!!dd[r.type]&&this._model){if(this[Xt]){this._pendingActions.push(r);return}var i=n.silent;jv.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ve.browser.weChat&&this._throttledZrFlush(),ol.call(this,i),sl.call(this,i)}},t.prototype.updateLabelLayout=function(){pn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Fo=function(c){var d=c._scheduler;d.restorePipelines(c._model),d.prepareStageTasks(),Uv(c,!0),Uv(c,!1),d.plan()},Uv=function(c,d){for(var h=c._model,v=c._scheduler,p=d?c._componentsViews:c._chartsViews,g=d?c._componentsMap:c._chartsMap,m=c._zr,y=c._api,_=0;_d.get("hoverLayerThreshold")&&!Ve.node&&!Ve.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=c._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(c,d){var h=c.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(c,d){if(!c.preventAutoZ){var h=c.get("z")||0,v=c.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(c,d,h,v){var p=c.getTextContent(),g=c.getTextGuideLine(),m=c.isGroup;if(m)for(var y=c.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(os(m))return;if(m instanceof ft&&dY(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}Nx=function(c){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Og(v,p),Wr(c)},h.prototype.leaveEmphasis=function(v,p){kg(v,p),Wr(c)},h.prototype.enterBlur=function(v){rY(v),Wr(c)},h.prototype.leaveBlur=function(v){l2(v),Wr(c)},h.prototype.enterSelect=function(v){u2(v),Wr(c)},h.prototype.leaveSelect=function(v){f2(v),Wr(c)},h.prototype.getModel=function(){return c.getModel()},h.prototype.getViewOfComponentModel=function(v){return c.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return c.getViewOfSeriesModel(v)},h}(vE))(c)},iP=function(c){function d(h,v){for(var p=0;p=0)){$x.push(r);var a=HE.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function fP(e,t){im[e]=t}function DK(e,t,r){var n=uK("registerMap");n&&n(e,t,r)}var IK=Oq;So(x0,uj);So(mh,fj);So(mh,cj);So(x0,Mj);So(mh,Aj);So(QE,oK);lP(gE);uP(dK,gq);fP("default",dj);Hs({type:no,event:no,update:no},Sr);Hs({type:Tc,event:Tc,update:Tc},Sr);Hs({type:Wl,event:Wl,update:Wl},Sr);Hs({type:Mc,event:Mc,update:Mc},Sr);Hs({type:Vl,event:Vl,update:Vl},Sr);sP("light",Sj);sP("dark",Cj);function ll(e){return e==null?0:e.length||1}function Hx(e){return e}var RK=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||Hx,this._newKeyGetter=i||Hx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(f,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&d>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&d===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&d>1)this._updateManyToMany&&this._updateManyToMany(f,u),i[l]=null;else if(c>1)for(var h=0;h1)for(var s=0;s30}var ul=Pe,Oi=Oe,WK=typeof Int32Array>"u"?Array:Int32Array,VK="e\0\0",zx=-1,GK=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],UK=["_approximateExtent"],Wx,Wf,fl,cl,Zv,Vf,Qv,YK=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;dP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},f=0;f=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===un;if(l&&!i.pure)for(var u=[],f=t;f0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():ul(a)&&(a=oe({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,ul(r)?oe(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){ul(t)?oe(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?oe(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;Y9(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){R(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Oi(this.dimensions,this._getDimInfo,this),this.hostModel)),Zv(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];We(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Iy(arguments)))})},e.internalField=function(){Wx=function(t){var r=t._invertedIndicesMap;R(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new WK(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}}(),e}();const gP=YK;function mP(e,t){v0(e)||(e=p0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ge(),a=[],o=jK(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&pP(o),l=n===e.dimensionsDefine,u=l?vP(e):hP(n),f=t.encodeDefine;!f&&t.encodeDefaulter&&(f=t.encodeDefaulter(e,o));for(var c=Ge(f),d=new CE(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function jK(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return R(t,function(a){var o;Pe(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function KK(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var XK=function(){function e(t){this.coordSysDims=[],this.axisMap=Ge(),this.categoryAxisMap=Ge(),this.coordSysName=t}return e}();function ZK(e){var t=e.get("coordinateSystem"),r=new XK(t),n=QK[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var QK={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",_n).models[0],a=e.getReferringComponents("yAxis",_n).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),$o(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),$o(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",_n).models[0];t.coordSysDims=["single"],r.set("single",i),$o(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",_n).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),$o(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),$o(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();R(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),$o(u)&&(n.set(f,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function $o(e){return e.get("type")==="category"}function JK(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;eX(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,f,c,d;if(R(a,function(y,_){Ce(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!f&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(f=y))}),f&&!n&&!u&&(n=!0),f){c="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=f.coordDim,v=f.type,p=0;R(a,function(y){y.coordDim===h&&p++});var g={name:c,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(c,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:c}}function eX(e){return!dP(e.schema)}function yP(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function tX(e,t){return yP(e,t)?e.getCalculationInfo("stackResultDimension"):t}function rX(e,t){var r=e.get("coordinateSystem"),n=h0.get(r),i;return t&&t.coordSysDims&&(i=Oe(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=BK(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function nX(e,t,r){var n,i;return r&&R(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function _P(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=p0(e)):(i=n.getSource(),a=i.sourceFormat===un);var o=ZK(t),s=rX(t,o),l=r.useEncodeDefaulter,u=We(l)?l:l?Dt(W7,s,t):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=mP(i,f),d=nX(c.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(c),v=JK(t,{schema:c,store:h}),p=new gP(c,t);p.setCalculationInfo(v);var g=d!=null&&iX(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function iX(e){if(e.sourceFormat===un){var t=aX(e.data||[]);return!ge(Vu(t))}}function aX(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();eh(bP);const Ci=bP;var oX=0,sX=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++oX}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Oe(n,lX);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Ce(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ge(this.categories))},e}();function lX(e){return Pe(e)&&e.value!=null?e.value:e+""}const am=sX;function om(e){return e.type==="interval"||e.type==="log"}function uX(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=BA(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=wP(o),l=i.niceTickExtent=[It(Math.ceil(e[0]/o)*o,s),It(Math.floor(e[1]/o)*o,s)];return fX(l,e),i}function Jv(e){var t=Math.pow(10,zy(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,It(r*t)}function wP(e){return ui(e)+2}function Vx(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function fX(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Vx(e,0,t),Vx(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function yh(e,t){return e>=t[0]&&e<=t[1]}function _h(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function bh(e,t){return e*(t[1]-t[0])+t[0]}var xP=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new am({})),ge(i)&&(i=new am({categories:Oe(i,function(a){return Pe(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Ce(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),yh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),_h(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(bh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Ci);Ci.registerClass(xP);const SP=xP;var Ra=It,CP=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return yh(r,this._extent)},t.prototype.normalize=function(r){return _h(r,this._extent)},t.prototype.scale=function(r){return bh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=wP(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var f=s.length?s[s.length-1].value:a[1];return i[1]>f&&(r?s.push({value:Ra(f+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function AP(e){var t=hX(e),r=[];return R(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],f=Math.abs(o[1]-o[0]),c=a.scale.getExtent(),d=Math.abs(c[1]-c[0]);s=u?f/d*u:f}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=pt(n.get("barWidth"),s),p=pt(n.get("barMaxWidth"),s),g=pt(n.get("barMinWidth")||(PP(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:P0(a),stackId:E0(n)})}),vX(r)}function vX(e){var t={};R(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=n.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var c=n.barMaxWidth;c&&(l[u].maxWidth=c);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return R(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=xt(a).length;s=Math.max(35-l*4,15)+"%"}var u=pt(s,o),f=pt(n.gap,1),c=n.remainedWidth,d=n.autoWidthCount,h=(c-u)/(d+(d-1)*f);h=Math.max(h,0),R(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,c-=b+f*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,c-=b+f*b,d--)}}),h=(c-u)/(d+(d-1)*f),h=Math.max(h,0);var v=0,p;R(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+f)}),p&&(v-=p.width*f);var g=-v/2;R(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+f)})}),r}function pX(e,t,r){if(e&&t){var n=e[P0(t)];return n!=null&&r!=null?n[E0(r)]:n}}function gX(e,t){var r=MP(e,t),n=AP(r);R(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=E0(i),u=n[P0(s)][l],f=u.offset,c=u.width;a.setLayout({bandWidth:u.bandWidth,offset:f,size:c})})}function mX(e){return{seriesType:e,plan:IE(),reset:function(t){if(EP(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),f=r.getCalculationInfo("stackResultDimension"),c=yP(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=yX(i,a),v=PP(t),p=t.get("barMinHeight")||0,g=f&&r.getDimensionIndex(f),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&ep(x*3),S=v&&l&&ep(x*3),C=v&&ep(x),T=n.master.getRect(),E=d?T.width:T.height,A,M=b.getStore(),D=0;(A=_.next())!=null;){var O=M.get(c?g:o,A),k=M.get(s,A),F=h,j=void 0;c&&(j=+O-M.get(o,A));var B=void 0,N=void 0,U=void 0,re=void 0;if(d){var ae=n.dataToPoint([O,k]);if(c){var me=n.dataToPoint([j,k]);F=me[0]}B=F,N=ae[1]+y,U=ae[0]-F,re=m,Math.abs(U)>>1;e[i][1]i&&(this._approxInterval=i);var s=Gf.length,l=Math.min(_X(Gf,this._approxInterval,0,s),s-1);this._interval=Gf[l][1],this._minLevelUnit=Gf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return _t(r)?r:+yi(r)},t.prototype.contain=function(r){return yh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return _h(this.parse(r),this._extent)},t.prototype.scale=function(r){return bh(r,this._extent)},t.type="time",t}(ju),Gf=[["second",s0],["minute",l0],["hour",Ul],["quarter-day",Ul*6],["half-day",Ul*12],["day",Jr*1.2],["half-week",Jr*3.5],["week",Jr*7],["month",Jr*31],["quarter",Jr*95],["half-year",Iw/2],["year",Iw]];function bX(e,t,r,n){var i=yi(t),a=yi(r),o=function(v){return Ow(i,v,n)===Ow(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},c=function(){return f()&&o("minute")},d=function(){return c()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return c();case"second":return d();case"millisecond":return h()}}function wX(e,t){return e/=Jr,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function xX(e){var t=30*Jr;return e/=t,e>6?6:e>3?3:e>2?2:1}function SX(e){return e/=Ul,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Gx(e,t){return e/=t?l0:s0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function CX(e){return BA(e,!0)}function TX(e,t,r){var n=new Date(e);switch(ss(t)){case"year":case"month":n[Z2(r)](0);case"day":n[Q2(r)](1);case"hour":n[J2(r)](0);case"minute":n[eE(r)](0);case"second":n[tE(r)](0),n[rE(r)](0)}return n.getTime()}function MX(e,t,r,n){var i=1e4,a=K2,o=0;function s(E,A,M,D,O,k,F){for(var j=new Date(A),B=A,N=j[D]();B1&&k===0&&M.unshift({value:M[0].value-B})}}for(var k=0;k=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&d>_/1.5||(u.push(g),c>_||e===a[h]))break}f=[]}}}for(var b=Ft(Oe(u,function(E){return Ft(E,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(E){return E.length>0}),x=[],w=b.length-1,h=0;h0;)a*=10;var s=[It(LX(n[0]/a)*a),It(PX(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){Xl.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=cn(r)/cn(this.base),yh(r,this._extent)},t.prototype.normalize=function(r){return r=cn(r)/cn(this.base),_h(r,this._extent)},t.prototype.scale=function(r){return r=bh(r,this._extent),Uf(this.base,r)},t.type="log",t}(Ci),DP=L0.prototype;DP.getMinorTicks=Xl.getMinorTicks;DP.getLabel=Xl.getLabel;function Yf(e,t){return EX(e,ui(t))}Ci.registerClass(L0);const DX=L0;var IX=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:c}},e.prototype.modifyDataMinMax=function(t,r){this[OX[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=RX[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),RX={min:"_determinedMin",max:"_determinedMax"},OX={min:"_dataMin",max:"_dataMax"};function kX(e,t,r){var n=e.rawExtentInfo;return n||(n=new IX(e,t,r),e.rawExtentInfo=n,n)}function qf(e,t){return t==null?null:qc(t)?NaN:e.parse(t)}function IP(e,t){var r=e.type,n=kX(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=MP("bar",o),l=!1;if(R(s,function(c){l=l||c.getBaseAxis()===t.axis}),l){var u=AP(s),f=NX(i,a,t,u);i=f.min,a=f.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function NX(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=pX(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;R(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;R(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=t-e,c=1-(s+l)/a,d=f/c-f;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function Yx(e,t){var r=t,n=IP(e,r),i=n.extent,a=r.get("splitNumber");e instanceof DX&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function BX(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new SP({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new AX({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Ci.getClass(t)||ju)}}function FX(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function Ku(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Ce(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):We(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(D0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function D0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function $X(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof SP?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=Ku(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var f=0;f=0||(qx.push(e),We(e)&&(e={install:e}),e.install(VX))}var Pu=Tt();function GX(e){return e.type==="category"?YX(e):jX(e)}function UX(e,t){return e.type==="category"?qX(e,t):{ticks:Oe(e.scale.getTicks(),function(r){return r.value})}}function YX(e){var t=e.getLabelModel(),r=OP(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function OP(e,t){var r=kP(e,"labels"),n=I0(t),i=NP(r,n);if(i)return i;var a,o;return We(n)?a=$P(e,n):(o=n==="auto"?KX(e):n,a=FP(e,o)),BP(r,n,{labels:a,labelCategoryInterval:o})}function qX(e,t){var r=kP(e,"ticks"),n=I0(t),i=NP(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),We(n))a=$P(e,n,!0);else if(n==="auto"){var s=OP(e,e.getLabelModel());o=s.labelCategoryInterval,a=Oe(s.labels,function(l){return l.tickValue})}else o=n,a=FP(e,o,!0);return BP(r,n,{ticks:a,tickCategoryInterval:o})}function jX(e){var t=e.scale.getTicks(),r=Ku(e);return{labels:Oe(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function kP(e,t){return Pu(e)[t]||(Pu(e)[t]=[])}function NP(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),f=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Fy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/f,y=h/c;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Pu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function ZX(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function FP(e,t,r){var n=Ku(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],f=i.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=RP(e),d=o.get("showMinLabel")||c,h=o.get("showMaxLabel")||c;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function $P(e,t,r){var n=e.scale,i=Ku(e),a=[];return R(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var jx=[0,1],QX=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return CU(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),Kx(n,i.count())),Eg(t,jx,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),Kx(n,i.count()));var a=Eg(t,n,jx,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=UX(this,r),i=n.ticks,a=Oe(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return JX(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Oe(n,function(a){return Oe(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return GX(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return XX(this)},e}();function Kx(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function JX(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;R(t,function(h){h.coord-=u/2});var f=e.scale.getExtent();s=1+f[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var c=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=It(h),v=It(v),c?h>v:hi&&(i+=dl);var h=Math.atan2(s,o);if(h<0&&(h+=dl),h>=n&&h<=i||h+dl>=n&&h+dl<=i)return l[0]=f,l[1]=c,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function vd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,f=r-e,c=n-t,d=Math.sqrt(f*f+c*c);f/=d,c/=d;var h=l*f+u*c,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*f,g=o[1]=t+v*c;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function HP(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),f=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(f-a)*(f-a))}var gn=[];function iZ(e,t,r){var n=HP(t.x,t.y,t.width,t.height,e.x,e.y,gn);return r.set(gn[0],gn[1]),n}function aZ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,f=t.data,c=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,bn.fromArray(e[0]),st.fromArray(e[1]),Mt.fromArray(e[2]),ke.sub(Vn,bn,st),ke.sub(Fn,Mt,st);var r=Vn.len(),n=Fn.len();if(!(r<.001||n<.001)){Vn.scale(1/r),Fn.scale(1/n);var i=Vn.dot(Fn),a=Math.cos(t);if(a1&&ke.copy(ar,Mt),ar.toArray(e[1])}}}}function oZ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,bn.fromArray(e[0]),st.fromArray(e[1]),Mt.fromArray(e[2]),ke.sub(Vn,st,bn),ke.sub(Fn,Mt,st);var n=Vn.len(),i=Fn.len();if(!(n<.001||i<.001)){Vn.scale(1/n),Fn.scale(1/i);var a=Vn.dot(t),o=Math.cos(r);if(a=l)ke.copy(ar,Mt);else{ar.scaleAndAdd(Fn,s/Math.tan(Math.PI/2-f));var c=Mt.x!==st.x?(ar.x-st.x)/(Mt.x-st.x):(ar.y-st.y)/(Mt.y-st.y);if(isNaN(c))return;c<0?ke.copy(ar,st):c>1&&ke.copy(ar,Mt)}ar.toArray(e[1])}}}}function Zx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function sZ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=hg(n[0],n[1]),a=hg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=jh([],n[1],n[0],o/i),l=jh([],n[1],n[2],o/a),u=jh([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var f=1;f0&&a&&x(-f/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&S(-m),y<0&&S(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,T,E){if(C<0){var A=Math.min(T,-C);if(A>0){x(A*E,0,o);var M=A+C;M<0&&w(-M*E,1)}else w(-C*E,1)}}function x(C,T,E){C!==0&&(u=!0);for(var A=T;A0)for(var M=0;M0;M--){var F=E[M-1]*k;x(-F,M,o)}}}function S(C){var T=C<0?-1:1;C=Math.abs(C);for(var E=Math.ceil(C/(o-1)),A=0;A0?x(E,0,A+1):x(-E,o-A-1,o),C-=E,C<=0)return}return u}function lZ(e,t,r,n){return UP(e,"x","width",t,r,n)}function YP(e,t,r,n){return UP(e,"y","height",t,r,n)}function qP(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new et(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),nt(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Mr(n,u,r,l)}else if(n.attr(u),!qu(n).valueAnimation){var c=qe(n.style.opacity,1);n.style.opacity=0,Br(n,{style:{opacity:c}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};jf(h,u,Kf),jf(h,n.states.select,Kf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};jf(v,u,Kf),jf(v,n.states.emphasis,Kf)}p7(n,l,f,r,r)}if(i&&!i.ignore&&!i.invisible){var a=cZ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Mr(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Br(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const hZ=dZ;var rp=Tt();function vZ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=rp(r).labelManager;i||(i=rp(r).labelManager=new hZ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=rp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function pZ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Es(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function mZ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,f=r.get(["lineStyle","width"])||2;o-=f/2,s-=f/2,l+=f,u+=f,o=Math.floor(o),l=Math.round(l);var c=new Nt({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(c.shape.x+=l),c.shape.width=0):(v||(c.shape.y+=u),c.shape.height=0);var p=We(i)?function(g){i(g,c)}:null;Br(c,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return c}function yZ(e,t,r){var n=e.getArea(),i=It(n.r0,1),a=It(n.r,1),o=new wo({shape:{cx:It(e.cx,1),cy:It(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Br(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function _Z(e,t,r,n,i){if(e){if(e.type==="polar")return yZ(e,t,r);if(e.type==="cartesian2d")return mZ(e,t,r,n,i)}else return null;return null}function jP(e,t){return e.type===t}var bZ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),c=n.getDevicePixelRatio(),d=Math.abs(f[1]-f[0])*(c||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Ce(a)?v=bZ[a]:We(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,wZ))}}}}}var KP=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return _P(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)R(a.getAxes(),function(c,d){if(c.type==="category"){var h=c.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=c.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),f=a.getBaseAxis().isHorizontal()?0:1;o[f]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(po);po.registerClass(KP);const Jx=KP;var SZ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return _P(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=Y2(Jx.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(Jx);const CZ=SZ;var TZ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),MZ=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new TZ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,f=n.startAngle,c=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?c-fMath.PI/2&&fs)return!0;s=c}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){id(a,r,lt(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(io),tS={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=np(t.x,e.x),s=ip(t.x+t.width,i),l=np(t.y,e.y),u=ip(t.y+t.height,a),f=si?s:o,t.y=c&&l>a?u:l,t.width=f?0:s-o,t.height=c?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),f||c},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=ip(t.r,e.r),a=np(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},rS={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Nt({shape:oe({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var f=u.shape,c=i?"height":"width";f[c]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?eS:wo,f=new u({shape:n,z2:1});f.name="item";var c=XP(i);if(f.calculateTextPosition=AZ(c,{isRoundCap:u===eS}),a){var d=f.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Mr:Br)(f,{shape:v},a)}return f}};function DZ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function nS(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Mr:Br)(r,{shape:l},t,i,null);var f=t?e.baseAxis.model:null;(o?Mr:Br)(r,{shape:u},f,i)}function iS(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function OZ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function XP(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function oS(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var f=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",c=V2(n);i0(e,c,{labelFetcher:a,labelDataIndex:r,defaultText:pZ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:f});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,EZ(e,h==="outside"?f:h,XP(o),n.get(["label","rotate"]))}v7(d,c,a.getRawValue(r),function(p){return gZ(t,p)});var v=n.getModel(["emphasis"]);h2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),v2(e,n),OZ(i)&&(e.style.fill="none",e.style.stroke="none",R(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function kZ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var NZ=function(){function e(){}return e}(),sS=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new NZ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?r:null},30,!1);function BZ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,f=0,c=a.length/3;f=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[f]}return-1}function ZP(e,t,r){if(jP(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function FZ(e,t,r){var n=e.type==="polar"?wo:Nt;return new n({shape:ZP(t,r,e),silent:!0,z2:0})}const $Z=LZ;function HZ(e){e.registerChartView($Z),e.registerSeriesModel(CZ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Dt(gX,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,mX("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,xZ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var Jf=Math.PI*2,fS=Math.PI/180;function QP(e,t){return Ms(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function JP(e,t){var r=QP(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=pt(r.width,t.getWidth()),o=pt(r.height,t.getHeight()),s=Math.min(a,o),l=pt(i[0],s/2),u=pt(i[1],s/2),f,c,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);f=h[0]||0,c=h[1]||0}else ge(n)||(n=[n,n]),f=pt(n[0],a)+r.x,c=pt(n[1],o)+r.y;return{cx:f,cy:c,r0:l,r:u}}function zZ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=QP(n,r),s=JP(n,r),l=s.cx,u=s.cy,f=s.r,c=s.r0,d=-n.get("startAngle")*fS,h=n.get("minAngle")*fS,v=0;i.each(a,function(E){!isNaN(E)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=Jf,w=0,S=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:f}),i.each(a,function(E,A){var M;if(isNaN(E)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:c,r:y?NaN:f});return}y!=="area"?M=p===0&&_?g:E*g:M=Jf/v,Mr?m:g,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-c)/2}}}function ap(e){return e.position==="center"}function UZ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*VZ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,f=s.x,c=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,T=S.getTextContent(),E=S.getTextGuideLine(),A=t.getItemModel(w),M=A.getModel("label"),D=M.get("position")||A.get(["emphasis","label","position"]),O=M.get("distanceToLabelLine"),k=M.get("alignTo"),F=pt(M.get("edgeDistance"),u),j=M.get("bleedMargin"),B=A.getModel("labelLine"),N=B.get("length");N=pt(N,u);var U=B.get("length2");if(U=pt(U,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":ae>0?"left":"right"}var G=Math.PI,q=0,ne=M.get("rotate");if(_t(ne))q=ne*(G/180);else if(D==="center")q=0;else if(ne==="radial"||ne===!0){var ce=ae<0?-re+G:-re;q=ce}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(ae,me);te<0&&(te=G*2+te);var ie=me>0;ie&&(te=G+te),q=te-G}if(a=!!q,T.x=Te,T.y=V,T.rotation=q,T.setStyle({verticalAlign:"middle"}),Y){T.setStyle({align:W});var ve=T.states.select;ve&&(ve.x+=T.x,ve.y+=T.y)}else{var K=T.getBoundingRect().clone();K.applyTransform(T.getComputedTransform());var _e=(T.style.margin||0)+2.1;K.y-=_e/2,K.height+=_e,r.push({label:T,labelLine:E,position:D,len:N,len2:U,minTurnAngle:B.get("minTurnAngle"),maxSurfaceAngle:B.get("maxSurfaceAngle"),surfaceNormal:new ke(ae,me),linePoints:Q,textAlign:W,labelDistance:O,labelAlignTo:k,edgeDistance:F,bleedMargin:j,rect:K,unconstrainedWidth:K.width,labelStyleWidth:T.style.width})}S.setTextConfig({inside:Y})}}),!a&&e.get("avoidLabelOverlap")&&GZ(r,n,i,l,u,d,f,c);for(var p=0;p0){for(var f=o.getItemLayout(0),c=1;isNaN(f&&f.startAngle)&&c=a.r0}},t.type="pie",t}(io);const jZ=qZ;function KZ(e,t,r){t=ge(t)&&{coordDimensions:t}||oe({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=mP(n,t).dimensions,a=new gP(i,e);return a.initData(n,r),a}var XZ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const ZZ=XZ;var QZ=Tt(),JZ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new ZZ(yt(this.getData,this),yt(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return KZ(this,{coordDimensions:["value"],encodeDefaulter:Dt(V7,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=QZ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=TU(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Pg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(po);const eQ=JZ;function tQ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(_t(o)&&!isNaN(o)&&o<0)})}}}function rQ(e){e.registerChartView(jZ),e.registerSeriesModel(eQ),Lj("pie",e.registerAction),e.registerLayout(Dt(zZ,"pie")),e.registerProcessor(WZ("pie")),e.registerProcessor(tQ("pie"))}var nQ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(bt);const iQ=nQ;var sm=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",_n).models[0]},t.type="cartesian2dAxis",t}(bt);Qn(sm,WX);var tL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},aQ=it({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},tL),R0=it({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},tL),oQ=it({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},R0),sQ=ut({logBase:10},R0);const lQ={category:aQ,value:R0,time:oQ,log:sQ};var uQ={value:1,category:1,time:1,log:1};function dS(e,t,r,n){R(uQ,function(i,a){var o=it(it({},lQ[a],!0),n,!0),s=function(l){pe(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=t+"Axis."+a,f}return u.prototype.mergeDefaultAndTheme=function(f,c){var d=Cu(this),h=d?hh(f):{},v=c.getTheme();it(f,v.get(a+"Axis")),it(f,this.getDefaultOption()),f.type=hS(f),d&&As(f,h,d)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=am.createByAxisModel(this))},u.prototype.getCategories=function(f){var c=this.option;if(c.type==="category")return f?c.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",hS)}function hS(e){return e.type||(e.data?"category":"value")}var fQ=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Oe(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Ft(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const cQ=fQ;var lm=["x","y"];function vS(e){return e.type==="interval"||e.type==="time"}var dQ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=lm,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!vS(r)||!vS(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,c=(s[1]-o[1])/u,d=o[0]-i[0]*f,h=o[1]-a[0]*c,v=this._transform=[f,0,0,c,d,h];this._invTransform=Qd([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new et(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return rn(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return rn(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new et(i,a,o,s)},t}(cQ),hQ=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(eZ);const vQ=hQ;function um(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,f=n.getRect(),c=[f.x,f.x+f.width,f.y,f.y+f.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[c[2]-h,c[3]+h]:[c[0]-h,c[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:c[0],u==="x"?v[d[l]]:c[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),pu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function pS(e){return e.get("coordinateSystem")==="cartesian2d"}function gS(e){var t={xAxisModel:null,yAxisModel:null};return R(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,_n).models[0];t[n]=a}),t}var op=Math.log;function pQ(e,t,r){var n=ju.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=IP(e,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(e.type==="log"){var d=op(e.base);u=[op(u[0])/d,op(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:c});var h=n.getExtent.call(e);f&&(u[0]=h[0]),c&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(f&&c)v=(g-p)/o;else if(f)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=Jv(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=Jv(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=It(g-y),p<0&&u[0]>=0?(p=0,g=It(y)):g>0&&u[1]<=0&&(g=0,p=-It(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var gQ=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=lm,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=xt(o),u=l.length;if(u){for(var f=[],c=u-1;c>=0;c--){var d=+l[c],h=o[d],v=h.model,p=h.scale;om(p)&&v.get("alignTicks")&&v.get("interval")==null?f.push(h):(Yx(p,v),om(p)&&(s=h))}f.length&&(s||(s=f.pop(),Yx(s.scale,s.model)),R(f,function(g){pQ(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};R(n.x,function(o){mS(n,"y",o,a)}),R(n.y,function(o){mS(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ms(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(R(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=$X(u);if(f){var c=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+d,u.position==="top"?o.y+=f.height+d:u.position==="left"&&(o.x+=f.width+d)}}}),l()),R(this._coordsList,function(u){u.calcAffineTransform()});function l(){R(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(c[d],c[1-d]),mQ(u,f?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Pe(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):ed(i-Yi)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),_S={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(rn(s,s,o),rn(l,l,o));var f=oe({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new vo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});bu(c.shape,c.style.lineWidth),c.anid="line",r.add(c);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Ce(d)&&(d=[d,d]),(Ce(h)||_t(h))&&(h=[h,h]);var v=Gj(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];R([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=w0(d[y],-p/2,-g/2,p,g,f.stroke,!0),b=m.r+m.offset,x=u?l:s;_.attr({rotation:m.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=wQ(r,n,t,e),a=SQ(r,n,t,e);if(bQ(t,a,i),xQ(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=GP(Oe(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));qP(o)}},axisName:function(e,t,r,n){var i=pu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),f=u[0]>u[1]?-1:1,c=[a==="start"?u[0]-f*l:a==="end"?u[1]+f*l:(u[0]+u[1])/2,wS(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Yi/180);var v;wS(a)?d=ao.innerTextLayout(e.rotation,h??e.rotation,o):(d=_Q(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=pu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new fr({x:c[0],y:c[1],rotation:d.rotation,silent:ao.isLabelSilent(t),style:ra(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(r0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=ao.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,lt(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function _Q(e,t,r,n){var i=NA(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return ed(i-Yi/2)?(o=l?"bottom":"top",a="center"):ed(i-Yi*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iYi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function bQ(e,t,r){if(!RP(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],f=r[1],c=r[r.length-1],d=r[r.length-2];n===!1?(Vr(a),Vr(u)):bS(a,o)&&(n?(Vr(o),Vr(f)):(Vr(a),Vr(u))),i===!1?(Vr(s),Vr(c)):bS(l,s)&&(i?(Vr(l),Vr(d)):(Vr(s),Vr(c)))}}function Vr(e){e&&(e.ignore=!0)}function bS(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Oy([]);return ky(i,i,-e.rotation),r.applyTransform(is([],i,e.getLocalTransform())),n.applyTransform(is([],i,t.getLocalTransform())),r.intersect(n)}}function wS(e){return e==="middle"||e==="center"}function rL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function PQ(e){var t=O0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=fm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var c=this.__startIndex;c15)break}}O.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var E=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?tc:0),this._needsManuallyCompositing),f.__builtin__||Dy("ZLevel "+u+" has been used by unkown layer "+f.id),f!==a&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,r(l),a=f),i.__dirty&Ir&&!i.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(c,d){!c.__used&&c.getElementCount()>0&&(c.__dirty=!0,c.__startIndex=c.__endIndex=c.__drawIndex=0),c.__dirty&&c.__drawIndex<0&&(c.__drawIndex=c.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,R(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?it(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=O0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ga(t).pointerEl=new f7[a.type](MS(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ga(t).labelEl=new fr(MS(r.label));t.add(a),ES(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ga(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ga(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),ES(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=t0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){cA(u.event)},onmousedown:fp(this._onHandleDragMove,this,0,0),drift:fp(this._onHandleDragMove,this),ondragend:fp(this._onHandleDragEnd,this)}),n.add(i)),PS(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,OE(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){AS(this._axisPointerModel,!r&&this._moveAnimation,this._handle,cp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(cp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(cp(i)),Ga(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),Xg(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function AS(e,t,r,n){sL(Ga(r).lastProp,n)||(Ga(r).lastProp=n,t?Mr(r,n,e):(r.stopAnimation(),r.attr(n)))}function sL(e,t){if(Pe(e)&&Pe(t)){var r=!0;return R(t,function(n,i){r=r&&sL(e[i],n)}),!!r}else return e===t}function ES(e,t){e[t.get(["label","show"])?"show":"hide"]()}function cp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function PS(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const jQ=qQ;function KQ(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function XQ(e,t,r,n,i){var a=r.get("value"),o=lL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=dh(s.get("padding")||0),u=s.getFont(),f=Fy(o,u),c=i.position,d=f.width+l[1]+l[3],h=f.height+l[0]+l[2],v=i.align;v==="right"&&(c[0]-=d),v==="center"&&(c[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=h),p==="middle"&&(c[1]-=h/2),ZQ(c,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:c[0],y:c[1],style:ra(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function ZQ(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function lL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:D0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};R(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,c=u&&u.getDataParams(f);c&&s.seriesData.push(c)}),Ce(o)?a=o.replace("{value}",a):We(o)&&(a=o(s))}return a}function uL(e,t,r){var n=gu();return ky(n,n,r.rotation),mg(n,n,r.position),e0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function QQ(e,t,r,n,i,a){var o=nL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),XQ(t,n,i,a,{position:uL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function JQ(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function eJ(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var tJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),f=LS(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=KQ(a),h=rJ[u](s,c,f);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=um(l.model,i);QQ(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=um(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=uL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=LS(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,c=[r.x,r.y];c[f]+=n[f],c[f]=Math.min(l[1],c[f]),c[f]=Math.max(l[0],c[f]);var d=(u[1]+u[0])/2,h=[d,d];h[f]=c[f];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[f]}},t}(jQ);function LS(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var rJ={line:function(e,t,r){var n=JQ([t,r[0]],[t,r[1]],DS(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:eJ([t-n/2,r[0]],[n,i],DS(e))}}};function DS(e){return e.dim==="x"?0:1}const nJ=tJ;var iJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(bt);const aJ=iJ;var fi=Tt(),oJ=R;function fL(e,t,r){if(!Ve.node){var n=t.getZr();fi(n).records||(fi(n).records={}),sJ(n,t);var i=fi(n).records[e]||(fi(n).records[e]={});i.handler=r}}function sJ(e,t){if(fi(e).initialized)return;fi(e).initialized=!0,r("click",Dt(IS,"click")),r("mousemove",Dt(IS,"mousemove")),r("globalout",uJ);function r(n,i){e.on(n,function(a){var o=fJ(t);oJ(fi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),lJ(o.pendings,t)})}}function lJ(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function uJ(e,t,r){e.handler("leave",null,r)}function IS(e,t,r,n){t.handler(e,r,n)}function fJ(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function dm(e,t){if(!Ve.node){var r=t.getZr(),n=(fi(r).records||{})[e];n&&(fi(r).records[e]=null)}}var cJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";fL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){dm("axisPointer",n)},t.prototype.dispose=function(r,n){dm("axisPointer",n)},t.type="axisPointer",t}(_i);const dJ=cJ;function cL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=Gu(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),c=f.dim,d=u.dim,h=c==="x"||c==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Oe(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var RS=Tt();function hJ(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||yt(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Dc(i)&&(i=cL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Dc(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Dc(i),d={},h={},v={list:[],map:{}},p={showPointer:Dt(pJ,h),showTooltip:Dt(gJ,v)};R(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);R(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=bJ(u,b);if(!c&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&OS(b,C,p,!1,d)}})});var g={};return R(f,function(m,y){var _=m.linkGroup;_&&!h[y]&&R(_.axesInfo,function(b,x){var w=h[x];if(b!==m&&w){var S=w.value;_.mapper&&(S=m.axis.scale.parse(_.mapper(S,kS(b),kS(m)))),g[m.key]=S}})}),R(g,function(m,y){OS(f[y],m,p,!0,d)}),mJ(h,f,d),yJ(v,i,e,o),_J(f,o,r),d}}function OS(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=vJ(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&oe(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function vJ(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return R(t.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(f,e,r);d=h.dataIndices,c=h.nestestValue}else{if(d=l.getData().indicesOfNearest(f[0],e,r.type==="category"?.5:null),!d.length)return;c=l.getData().get(f[0],d[0])}if(!(c==null||!isFinite(c))){var v=e-c,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=c,a.length=0),R(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function pJ(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function gJ(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Lu(l),f=e.map[u];f||(f=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(f)),f.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function mJ(e,t,r){var n=r.axesInfo=[];R(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function yJ(e,t,r,n){if(Dc(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function _J(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=RS(n)[i]||{},o=RS(n)[i]={};R(e,function(u,f){var c=u.axisPointerModel.option;c.status==="show"&&R(c.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];R(a,function(u,f){!o[f]&&l.push(u)}),R(o,function(u,f){!a[f]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function bJ(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function kS(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Dc(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function dL(e){iL.registerAxisPointerClass("CartesianAxisPointer",nJ),e.registerComponentModel(aJ),e.registerComponentView(dJ),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=CQ(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},hJ)}function wJ(e){na($Q),na(dL)}function xJ(e,t){var r=dh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Nt({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var SJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(bt);const CJ=SJ;function hL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function vL(e){if(Ve.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var f=u*Math.PI/180,c=o+i,d=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-c)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function DJ(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ve.transformSupported?","+k0+n:",left"+n+",top"+n),AJ+":"+i}function NS(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ve.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ve.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+k0+":"+o+";":[["top",0],["left",0],[pL,o]]}function IJ(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),R(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function RJ(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),f=e.getModel("textStyle"),c=DE(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(DJ(i,r)),a&&n.push("background-color:"+a),R(["width","color","radius"],function(h){var v="border-"+h,p=iE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(IJ(f)),c!=null&&n.push("padding:"+dh(c).join("px ")+"px"),n.join(";")+";"}function BS(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&fG(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var OJ=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ve.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;BS(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,f=a.painter.getViewportRoot();Ur(f,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=MJ(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=EJ+RJ(t,!this._firstShow,this._longHide)+NS(a[0],a[1],!0)+("border-color:"+Su(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Ce(a)&&n.get("trigger")==="item"&&!hL(n)&&(s=LJ(n,i,a)),Ce(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ve.node||!i.getDom())){var o=HS(a,i);this._ticket="";var s=a.dataByCoordSys,l=VJ(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var f=FJ;f.x=a.x,f.y=a.y,f.update(),lt(f).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:f},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var c=cL(a,n),d=c.point[0],h=c.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:c.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(HS(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var f=u.getData(),c=hl([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(c.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Sl(i,function(u){if(lt(u).dataIndex!=null)return s=u,!0;if(lt(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=yt(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=hl([n.tooltipOption],a),l=this._renderMode,u=[],f=Mu("section",{blocks:[],noHeader:!0}),c=[],d=new zv;R(r,function(y){R(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=lL(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Mu("section",{header:w,noHeader:!zn(w),sortBlocks:!0,blocks:[]});f.blocks.push(S),R(_.seriesDataIndices,function(C){var T=i.getSeriesByIndex(C.seriesIndex),E=C.dataIndexInside,A=T.getDataParams(E);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=D0(b.axis,{value:x}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Su(A.color),l);var M=ex(T.formatTooltip(E,!0,null)),D=M.frag;if(D){var O=hl([T],a).get("valueFormatter");S.blocks.push(O?oe({valueFormatter:O},D):D)}M.text&&c.push(M.text),u.push(A)}})}})}),f.blocks.reverse(),c.reverse();var h=n.position,v=s.get("order"),p=ax(f,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var g=l==="richText"?` +`];function Mu(e,t){return t.type=e,t}function qg(e){return e.type==="section"}function PE(e){return qg(e)?Gq:Uq}function LE(e){if(qg(e)){var t=0,r=e.blocks.length,n=r>1||r>0&&!e.noHeader;return R(e.blocks,function(i){var a=LE(i);a>=t&&(t=a+ +(n&&(!a||qg(i)&&!i.noHeader)))}),t}return 0}function Gq(e,t,r,n){var i=t.noHeader,a=Yq(LE(t)),o=[],s=t.blocks||[];yi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ts(u,l)){var f=new Eq(u[l],null);s.sort(function(v,p){return f.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(v,p){var g=t.valueFormatter,m=PE(v)(g?oe(oe({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var c=e.renderMode==="richText"?o.join(a.richText):jg(o.join(""),i?r:a.html);if(i)return c;var d=Gg(t.header,"ordinal",e.useUTC),h=EE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?DE(e,d,h)+a.richText+c:jg('
'+Kr(d)+"
"+c,r)}function Uq(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,f=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Oe(b,function(x,w){return Gg(x,ge(h)?h[w]:h,u)})};if(!(a&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":Gg(l,"ordinal",u),h=t.valueType,v=o?[]:f(t.value),p=!s||!a,g=!s&&a,m=EE(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":c)+(a?"":DE(e,d,y))+(o?"":Kq(e,v,p,g,_)):jg((s?"":c)+(a?"":qq(d,!s,y))+(o?"":jq(v,p,g,_)),r)}}function ax(e,t,r,n,i,a){if(e){var o=PE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function Yq(e){return{html:Wq[e],richText:Vq[e]}}function jg(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function qq(e,t,r){var n=t?"margin-left:2px":"";return''+Kr(e)+""}function jq(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Oe(e,function(o){return Kr(o)}).join("  ")+""}function DE(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function Kq(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function Xq(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Su(n)}function IE(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var zv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=$A()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=N7({color:r,type:t,renderMode:n,markerId:i});return Te(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?R(r,function(a){return oe(n,a)}):oe(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function Zq(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=Xq(t,r),f,c,d,h;if(o>1||l&&!o){var v=Qq(s,t,r,a,u);f=v.inlineValues,c=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=f=Es(i,r,a[0]),c=p.type}else h=f=l?s[0]:s;var g=Wy(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Mu("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Mu("nameValue",{markerType:"item",markerColor:u,name:_,noName:!zn(_),value:f,valueType:c})].concat(d||[])})}function Qq(e,t,r,n,i){var a=t.getData(),o=ta(e,function(c,d,h){var v=a.getDimensionInfo(h);return c=c||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(c){f(Es(a,r,c),c)}):R(e,f);function f(c,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Mu("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:c,valueType:h.type})):(s.push(c),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Ri=Tt();function Nf(e,t){return e.getName(t)||e.getId(t)}var Jq="__universalTransitionEnabled",gh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=ql({count:tj,reset:rj}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=Ri(this).sourceManager=new zq(this);a.prepareSource();var o=this.getInitialData(r,i);sx(o,this),this.dataTask.context.data=o,Ri(this).dataBeforeProcessed=o,ox(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Cu(this),a=i?hh(r):{},o=this.subType;wt.hasClass(o)&&(o+="Series"),at(r,n.getTheme().get(this.subType)),at(r,this.getDefaultOption()),Pg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&As(r,a,i)},t.prototype.mergeOption=function(r,n){r=at(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Cu(this);i&&As(this.option,r,i);var a=Ri(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);sx(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Ri(this).dataBeforeProcessed=o,ox(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!$r(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=d0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[Nf(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[Jq])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){De(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(r,n)}},t.registerClass=function(r){return wt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(wt);Qn(gh,Mq);Qn(gh,d0);UA(gh,wt);function ox(e){var t=e.name;Wy(e)||(e.name=ej(e)||t)}function ej(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return R(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function tj(e){return e.model.getRawData().count()}function rj(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),nj}function nj(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function sx(e,t){R(JV(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Dt(ij,t))})}function ij(e,t){var r=Kg(e);return r&&r.setOutputEnd((t||this).count()),t}function Kg(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const po=gh;var y0=function(){function e(){this.group=new sn,this.uid=oh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();Gy(y0);eh(y0);const bi=y0;function RE(){var e=Tt();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var OE=Tt(),aj=RE(),_0=function(){function e(){this.group=new sn,this.uid=oh("viewChart"),this.renderTask=ql({plan:oj,reset:sj}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&ux(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&ux(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){n0(this.group,t)},e.markUpdateMethod=function(t,r){OE(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function lx(e,t,r){e&&$g(e)&&(t==="emphasis"?Og:kg)(e,r)}function ux(e,t,r){var n=Uu(e,t),i=t&&t.highlightKey!=null?dY(t.highlightKey):null;n!=null?R(lr(n),function(a){lx(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){lx(a,r,i)})}Gy(_0);eh(_0);function oj(e){return aj(e.model)}function sj(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&OE(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),lj[l]}var lj={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const ao=_0;var ud="\0__throttleOriginMethod",fx="\0__throttleRate",cx="\0__throttleType";function b0(e,t,r){var n,i=0,a=0,o=null,s,l,u,f;t=t||0;function c(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?c():o=setTimeout(c,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){f=h},d}function kE(e,t,r,n){var i=e[t];if(i){var a=i[ud]||i,o=i[cx],s=i[fx];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=b0(a,r,n==="debounce"),i[ud]=a,i[cx]=n,i[fx]=r}return i}}function Xg(e,t){var r=e[t];r&&r[ud]&&(r.clear&&r.clear(),e[t]=r[ud])}var dx=Tt(),hx={itemStyle:_u(Y2,!0),lineStyle:_u(U2,!0)},uj={lineStyle:"stroke",itemStyle:"fill"};function NE(e,t){var r=e.visualStyleMapper||hx[t];return r||(console.warn("Unknown style type '"+t+"'."),hx.itemStyle)}function BE(e,t){var r=e.visualDrawType||uj[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var fj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=NE(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=BE(e,n),u=o[l],f=We(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||We(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||We(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=oe({},o);g[l]=f(p),h.setItemVisual(v,"style",g)}}}},al=new tr,cj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=NE(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){al.option=l[n];var u=i(al),f=o.ensureUniqueItemVisual(s,"style");oe(f,u),al.option.decal&&(o.setItemVisual(s,"decal",al.option.decal),al.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},dj={performRawSeries:!0,overallReset:function(e){var t=Ge();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),dx(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=dx(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=BE(r,s);a.each(function(u){var f=a.getRawIndex(u);i[f]=u}),n.each(function(u){var f=i[u],c=a.getItemVisual(f,"colorFromPalette");if(c){var d=a.ensureUniqueItemVisual(f,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Bf=Math.PI;function hj(e,t){t=t||{},ft(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new sn,n=new Nt({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new fr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Nt({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new Zy({shape:{startAngle:-Bf/2,endAngle:-Bf/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Bf*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Bf*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),f=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:f}),a.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var vj=function(){function e(t,r,n,i){this._stageTaskMap=Ge(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ge();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;R(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";yi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;R(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,d=f.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else c&&c.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ge(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(f):l?n.eachRawSeriesByType(l,f):u&&u(n,i).each(f);function f(c){var d=c.uid,h=s.set(d,o&&o.get(d)||ql({plan:_j,reset:bj,count:xj}));h.context={model:c,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(c,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||ql({reset:pj});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ge(),u=t.seriesType,f=t.getTargetSeries,c=!0,d=!1,h="";yi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):f?f(n,i).each(v):(c=!1,R(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,ql({reset:gj,onDirty:yj})));m.context={model:p,overallProgress:c},m.agent=o,m.__block=c,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return We(t)&&(t={overallReset:t,seriesType:Sj(t)}),t.uid=oh("stageHandler"),r&&(t.visualType=r),t},e}();function pj(e){e.overallReset(e.ecModel,e.api,e.payload)}function gj(e){return e.overallProgress&&mj}function mj(){this.agent.dirty(),this.getDownstream().dirty()}function yj(){this.agent&&this.agent.dirty()}function _j(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function bj(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=lr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Oe(t,function(r,n){return FE(n)}):wj}var wj=FE(0);function FE(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(n[u]=l,f=!0),f||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,a,"name")&&f(u,a,"dataIndex")&&f(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function f(c,d,h,v){return c[h]==null||d[v||h]===c[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),Zg=["symbol","symbolSize","symbolRotate","symbolOffset"],mx=Zg.concat(["symbolKeepAspect"]),Aj={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&Za(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function Jg(e,t,r){for(var n=t.type==="radial"?qj(e,t,r):Yj(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:bt(e)?[e]:ge(e)?e:null}function VE(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&Kj(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Oe(r,function(a){return a/i}),n/=i)}return[r,n]}var Xj=new ho(!0);function cd(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function yx(e){return typeof e=="string"&&e!=="none"}function dd(e){var t=e.fill;return t!=null&&t!=="none"}function _x(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function bx(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function em(e,t,r){var n=YA(t.image,t.__image,r);if(th(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*eG),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function Zj(e,t,r,n){var i,a=cd(r),o=dd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var f=t.path||Xj,c=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=c?Jg(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=c?Jg(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=c||!t.__canvasFillPattern?em(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(x=c||!t.__canvasStrokePattern?em(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();f.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,T;e.setLineDash&&r.lineDash&&(i=VE(t),C=i[0],T=i[1]);var E=!0;(u||c&Vo)&&(f.setDPR(e.dpr),l?f.setContext(null):(f.setContext(e),E=!1),f.reset(),t.buildPath(f,t.shape,n),f.toStatic(),t.pathUpdated()),E&&f.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=T),n||(r.strokeFirst?(a&&bx(e,r),o&&_x(e,r)):(o&&_x(e,r),a&&bx(e,r))),C&&e.setLineDash([])}function Qj(e,t,r){var n=t.__image=YA(r.image,t.__image,t,t.onload);if(!(!n||!th(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,f=r.sy||0;e.drawImage(n,u,f,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,f=r.sy,c=o-u,d=s-f;e.drawImage(n,u,f,c,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function Jj(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||co,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=VE(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(cd(r)&&e.strokeText(i,r.x,r.y),dd(r)&&e.fillText(i,r.x,r.y)):(dd(r)&&e.fillText(i,r.x,r.y),cd(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var xx=["shadowBlur","shadowOffsetX","shadowOffsetY"],Sx=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function GE(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){yr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?no.opacity:o}(n||t.blend!==r.blend)&&(a||(yr(e,i),a=!0),e.globalCompositeOperation=t.blend||no.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Zt]){if(this._disposed){this.id;return}var a,o,s;if(De(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Zt]=!0,!this._model||n){var l=new uq(this._api),u=this._theme,f=this._model=new vE;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},nm);var c={seriesTransition:s,optionChanged:!0};if(i)this[hr]={silent:a,updateParams:c},this[Zt]=!1,this.getZr().wakeUp();else{try{Fo(this),Oi.update.call(this,null,c)}catch(d){throw this[hr]=null,this[Zt]=!1,d}this._ssr||this._zr.flush(),this[hr]=null,this[Zt]=!1,ol.call(this,a),sl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ve.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ve.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return R(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;R(n,function(l){i.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(a.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return R(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(Fx[i]){var l=s,u=s,f=-s,c=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();R(Kl,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Ze(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),f=o(w.right,f),c=o(w.bottom,c),d.push({dom:x,left:w.left,top:w.top})}}),l*=h,u*=h,f*=h,c*=h;var v=f-l,p=c-u,g=bo.createCanvas(),m=z1(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return R(d,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Nt({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),R(d,function(_){var b=new Bs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return Yv(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return Yv(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=pv(i,r);return R(o,function(s,l){l.indexOf("Models")>=0&&R(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)a=a||!!f.containPoint(n);else if(l==="seriesModels"){var c=this._chartsMap[u.__viewId];c&&c.containPoint&&(a=a||c.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=pv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?Pj(s,l,n):Lj(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;R(TK,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Sl(s,function(v){var p=ut(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=oe({},p.eventData),!0},!0),l){var f=l.componentType,c=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",c=l.seriesIndex);var d=f&&c!=null&&o.getComponent(f,c),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),R(jl,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),R(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),Ij(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&VA(this.getDom(),C0,"");var n=this,i=n._api,a=n._model;R(n._componentsViews,function(o){o.dispose(a,i)}),R(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Kl[n.id]},t.prototype.resize=function(r){if(!this[Zt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[hr]&&(a==null&&(a=this[hr].silent),i=!0,this[hr]=null),this[Zt]=!0;try{i&&Fo(this),Oi.update.call(this,{type:"resize",animation:oe({duration:0},r&&r.animation)})}catch(o){throw this[Zt]=!1,o}this[Zt]=!1,ol.call(this,a),sl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(De(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!im[r]){var i=im[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=oe({},r);return n.type=jl[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(De(n)||(n={silent:!!n}),!!hd[r.type]&&this._model){if(this[Zt]){this._pendingActions.push(r);return}var i=n.silent;jv.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ve.browser.weChat&&this._throttledZrFlush(),ol.call(this,i),sl.call(this,i)}},t.prototype.updateLabelLayout=function(){pn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Fo=function(c){var d=c._scheduler;d.restorePipelines(c._model),d.prepareStageTasks(),Uv(c,!0),Uv(c,!1),d.plan()},Uv=function(c,d){for(var h=c._model,v=c._scheduler,p=d?c._componentsViews:c._chartsViews,g=d?c._componentsMap:c._chartsMap,m=c._zr,y=c._api,_=0;_d.get("hoverLayerThreshold")&&!Ve.node&&!Ve.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=c._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(c,d){var h=c.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(c,d){if(!c.preventAutoZ){var h=c.get("z")||0,v=c.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(c,d,h,v){var p=c.getTextContent(),g=c.getTextGuideLine(),m=c.isGroup;if(m)for(var y=c.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(os(m))return;if(m instanceof ct&&hY(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}Nx=function(c){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Og(v,p),Wr(c)},h.prototype.leaveEmphasis=function(v,p){kg(v,p),Wr(c)},h.prototype.enterBlur=function(v){nY(v),Wr(c)},h.prototype.leaveBlur=function(v){u2(v),Wr(c)},h.prototype.enterSelect=function(v){f2(v),Wr(c)},h.prototype.leaveSelect=function(v){c2(v),Wr(c)},h.prototype.getModel=function(){return c.getModel()},h.prototype.getViewOfComponentModel=function(v){return c.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return c.getViewOfSeriesModel(v)},h}(pE))(c)},aP=function(c){function d(h,v){for(var p=0;p=0)){$x.push(r);var a=zE.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function cP(e,t){im[e]=t}function IK(e,t,r){var n=fK("registerMap");n&&n(e,t,r)}var RK=kq;So(x0,fj);So(mh,cj);So(mh,dj);So(x0,Aj);So(mh,Ej);So(JE,sK);uP(mE);fP(hK,mq);cP("default",hj);Hs({type:io,event:io,update:io},Sr);Hs({type:Mc,event:Mc,update:Mc},Sr);Hs({type:Wl,event:Wl,update:Wl},Sr);Hs({type:Ac,event:Ac,update:Ac},Sr);Hs({type:Vl,event:Vl,update:Vl},Sr);lP("light",Cj);lP("dark",Tj);function ll(e){return e==null?0:e.length||1}function Hx(e){return e}var OK=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||Hx,this._newKeyGetter=i||Hx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(f,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&d>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&d===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&d>1)this._updateManyToMany&&this._updateManyToMany(f,u),i[l]=null;else if(c>1)for(var h=0;h1)for(var s=0;s30}var ul=De,ki=Oe,VK=typeof Int32Array>"u"?Array:Int32Array,GK="e\0\0",zx=-1,UK=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],YK=["_approximateExtent"],Wx,Vf,fl,cl,Zv,Gf,Qv,qK=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;hP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},f=0;f=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===un;if(l&&!i.pure)for(var u=[],f=t;f0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():ul(a)&&(a=oe({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,ul(r)?oe(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){ul(t)?oe(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?oe(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;q9(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){R(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:ki(this.dimensions,this._getDimInfo,this),this.hostModel)),Zv(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];We(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Iy(arguments)))})},e.internalField=function(){Wx=function(t){var r=t._invertedIndicesMap;R(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new VK(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}}(),e}();const mP=qK;function yP(e,t){v0(e)||(e=p0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ge(),a=[],o=KK(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&gP(o),l=n===e.dimensionsDefine,u=l?pP(e):vP(n),f=t.encodeDefine;!f&&t.encodeDefaulter&&(f=t.encodeDefaulter(e,o));for(var c=Ge(f),d=new TE(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function KK(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return R(t,function(a){var o;De(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function XK(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var ZK=function(){function e(t){this.coordSysDims=[],this.axisMap=Ge(),this.categoryAxisMap=Ge(),this.coordSysName=t}return e}();function QK(e){var t=e.get("coordinateSystem"),r=new ZK(t),n=JK[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var JK={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",_n).models[0],a=e.getReferringComponents("yAxis",_n).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),$o(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),$o(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",_n).models[0];t.coordSysDims=["single"],r.set("single",i),$o(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",_n).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),$o(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),$o(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();R(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),$o(u)&&(n.set(f,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function $o(e){return e.get("type")==="category"}function eX(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;tX(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,f,c,d;if(R(a,function(y,_){Te(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!f&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(f=y))}),f&&!n&&!u&&(n=!0),f){c="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=f.coordDim,v=f.type,p=0;R(a,function(y){y.coordDim===h&&p++});var g={name:c,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(c,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:c}}function tX(e){return!hP(e.schema)}function _P(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function rX(e,t){return _P(e,t)?e.getCalculationInfo("stackResultDimension"):t}function nX(e,t){var r=e.get("coordinateSystem"),n=h0.get(r),i;return t&&t.coordSysDims&&(i=Oe(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=FK(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function iX(e,t,r){var n,i;return r&&R(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function bP(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=p0(e)):(i=n.getSource(),a=i.sourceFormat===un);var o=QK(t),s=nX(t,o),l=r.useEncodeDefaulter,u=We(l)?l:l?Dt(V7,s,t):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=yP(i,f),d=iX(c.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(c),v=eX(t,{schema:c,store:h}),p=new mP(c,t);p.setCalculationInfo(v);var g=d!=null&&aX(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function aX(e){if(e.sourceFormat===un){var t=oX(e.data||[]);return!ge(Gu(t))}}function oX(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();eh(wP);const Ti=wP;var sX=0,lX=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++sX}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Oe(n,uX);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Te(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ge(this.categories))},e}();function uX(e){return De(e)&&e.value!=null?e.value:e+""}const am=lX;function om(e){return e.type==="interval"||e.type==="log"}function fX(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=FA(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=xP(o),l=i.niceTickExtent=[It(Math.ceil(e[0]/o)*o,s),It(Math.floor(e[1]/o)*o,s)];return cX(l,e),i}function Jv(e){var t=Math.pow(10,zy(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,It(r*t)}function xP(e){return ui(e)+2}function Vx(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function cX(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Vx(e,0,t),Vx(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function yh(e,t){return e>=t[0]&&e<=t[1]}function _h(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function bh(e,t){return e*(t[1]-t[0])+t[0]}var SP=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new am({})),ge(i)&&(i=new am({categories:Oe(i,function(a){return De(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Te(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),yh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),_h(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(bh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Ti);Ti.registerClass(SP);const CP=SP;var Oa=It,TP=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return yh(r,this._extent)},t.prototype.normalize=function(r){return _h(r,this._extent)},t.prototype.scale=function(r){return bh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=xP(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var f=s.length?s[s.length-1].value:a[1];return i[1]>f&&(r?s.push({value:Oa(f+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function EP(e){var t=vX(e),r=[];return R(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],f=Math.abs(o[1]-o[0]),c=a.scale.getExtent(),d=Math.abs(c[1]-c[0]);s=u?f/d*u:f}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=pt(n.get("barWidth"),s),p=pt(n.get("barMaxWidth"),s),g=pt(n.get("barMinWidth")||(LP(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:P0(a),stackId:E0(n)})}),pX(r)}function pX(e){var t={};R(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=n.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var c=n.barMaxWidth;c&&(l[u].maxWidth=c);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return R(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=xt(a).length;s=Math.max(35-l*4,15)+"%"}var u=pt(s,o),f=pt(n.gap,1),c=n.remainedWidth,d=n.autoWidthCount,h=(c-u)/(d+(d-1)*f);h=Math.max(h,0),R(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,c-=b+f*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,c-=b+f*b,d--)}}),h=(c-u)/(d+(d-1)*f),h=Math.max(h,0);var v=0,p;R(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+f)}),p&&(v-=p.width*f);var g=-v/2;R(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+f)})}),r}function gX(e,t,r){if(e&&t){var n=e[P0(t)];return n!=null&&r!=null?n[E0(r)]:n}}function mX(e,t){var r=AP(e,t),n=EP(r);R(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=E0(i),u=n[P0(s)][l],f=u.offset,c=u.width;a.setLayout({bandWidth:u.bandWidth,offset:f,size:c})})}function yX(e){return{seriesType:e,plan:RE(),reset:function(t){if(PP(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),f=r.getCalculationInfo("stackResultDimension"),c=_P(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=_X(i,a),v=LP(t),p=t.get("barMinHeight")||0,g=f&&r.getDimensionIndex(f),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&ep(x*3),S=v&&l&&ep(x*3),C=v&&ep(x),T=n.master.getRect(),E=d?T.width:T.height,A,M=b.getStore(),D=0;(A=_.next())!=null;){var O=M.get(c?g:o,A),k=M.get(s,A),F=h,j=void 0;c&&(j=+O-M.get(o,A));var B=void 0,N=void 0,U=void 0,re=void 0;if(d){var ae=n.dataToPoint([O,k]);if(c){var me=n.dataToPoint([j,k]);F=me[0]}B=F,N=ae[1]+y,U=ae[0]-F,re=m,Math.abs(U)>>1;e[i][1]i&&(this._approxInterval=i);var s=Uf.length,l=Math.min(bX(Uf,this._approxInterval,0,s),s-1);this._interval=Uf[l][1],this._minLevelUnit=Uf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return bt(r)?r:+_i(r)},t.prototype.contain=function(r){return yh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return _h(this.parse(r),this._extent)},t.prototype.scale=function(r){return bh(r,this._extent)},t.type="time",t}(Ku),Uf=[["second",s0],["minute",l0],["hour",Ul],["quarter-day",Ul*6],["half-day",Ul*12],["day",Jr*1.2],["half-week",Jr*3.5],["week",Jr*7],["month",Jr*31],["quarter",Jr*95],["half-year",Iw/2],["year",Iw]];function wX(e,t,r,n){var i=_i(t),a=_i(r),o=function(v){return Ow(i,v,n)===Ow(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},c=function(){return f()&&o("minute")},d=function(){return c()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return c();case"second":return d();case"millisecond":return h()}}function xX(e,t){return e/=Jr,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function SX(e){var t=30*Jr;return e/=t,e>6?6:e>3?3:e>2?2:1}function CX(e){return e/=Ul,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Gx(e,t){return e/=t?l0:s0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function TX(e){return FA(e,!0)}function MX(e,t,r){var n=new Date(e);switch(ss(t)){case"year":case"month":n[Q2(r)](0);case"day":n[J2(r)](1);case"hour":n[eE(r)](0);case"minute":n[tE(r)](0);case"second":n[rE(r)](0),n[nE(r)](0)}return n.getTime()}function AX(e,t,r,n){var i=1e4,a=X2,o=0;function s(E,A,M,D,O,k,F){for(var j=new Date(A),B=A,N=j[D]();B1&&k===0&&M.unshift({value:M[0].value-B})}}for(var k=0;k=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&d>_/1.5||(u.push(g),c>_||e===a[h]))break}f=[]}}}for(var b=$t(Oe(u,function(E){return $t(E,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(E){return E.length>0}),x=[],w=b.length-1,h=0;h0;)a*=10;var s=[It(DX(n[0]/a)*a),It(LX(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){Xl.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=cn(r)/cn(this.base),yh(r,this._extent)},t.prototype.normalize=function(r){return r=cn(r)/cn(this.base),_h(r,this._extent)},t.prototype.scale=function(r){return r=bh(r,this._extent),Yf(this.base,r)},t.type="log",t}(Ti),IP=L0.prototype;IP.getMinorTicks=Xl.getMinorTicks;IP.getLabel=Xl.getLabel;function qf(e,t){return PX(e,ui(t))}Ti.registerClass(L0);const IX=L0;var RX=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:c}},e.prototype.modifyDataMinMax=function(t,r){this[kX[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=OX[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),OX={min:"_determinedMin",max:"_determinedMax"},kX={min:"_dataMin",max:"_dataMax"};function NX(e,t,r){var n=e.rawExtentInfo;return n||(n=new RX(e,t,r),e.rawExtentInfo=n,n)}function jf(e,t){return t==null?null:jc(t)?NaN:e.parse(t)}function RP(e,t){var r=e.type,n=NX(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=AP("bar",o),l=!1;if(R(s,function(c){l=l||c.getBaseAxis()===t.axis}),l){var u=EP(s),f=BX(i,a,t,u);i=f.min,a=f.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function BX(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=gX(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;R(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;R(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=t-e,c=1-(s+l)/a,d=f/c-f;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function Yx(e,t){var r=t,n=RP(e,r),i=n.extent,a=r.get("splitNumber");e instanceof IX&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function FX(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new CP({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new EX({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Ti.getClass(t)||Ku)}}function $X(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function Xu(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Te(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):We(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(D0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function D0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function HX(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof CP?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=Xu(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var f=0;f=0||(qx.push(e),We(e)&&(e={install:e}),e.install(GX))}var Pu=Tt();function UX(e){return e.type==="category"?qX(e):KX(e)}function YX(e,t){return e.type==="category"?jX(e,t):{ticks:Oe(e.scale.getTicks(),function(r){return r.value})}}function qX(e){var t=e.getLabelModel(),r=kP(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function kP(e,t){var r=NP(e,"labels"),n=I0(t),i=BP(r,n);if(i)return i;var a,o;return We(n)?a=HP(e,n):(o=n==="auto"?XX(e):n,a=$P(e,o)),FP(r,n,{labels:a,labelCategoryInterval:o})}function jX(e,t){var r=NP(e,"ticks"),n=I0(t),i=BP(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),We(n))a=HP(e,n,!0);else if(n==="auto"){var s=kP(e,e.getLabelModel());o=s.labelCategoryInterval,a=Oe(s.labels,function(l){return l.tickValue})}else o=n,a=$P(e,o,!0);return FP(r,n,{ticks:a,tickCategoryInterval:o})}function KX(e){var t=e.scale.getTicks(),r=Xu(e);return{labels:Oe(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function NP(e,t){return Pu(e)[t]||(Pu(e)[t]=[])}function BP(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),f=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Fy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/f,y=h/c;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Pu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function QX(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function $P(e,t,r){var n=Xu(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],f=i.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=OP(e),d=o.get("showMinLabel")||c,h=o.get("showMaxLabel")||c;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function HP(e,t,r){var n=e.scale,i=Xu(e),a=[];return R(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var jx=[0,1],JX=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return TU(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),Kx(n,i.count())),Eg(t,jx,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),Kx(n,i.count()));var a=Eg(t,n,jx,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=YX(this,r),i=n.ticks,a=Oe(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return eZ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Oe(n,function(a){return Oe(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return UX(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return ZX(this)},e}();function Kx(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function eZ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;R(t,function(h){h.coord-=u/2});var f=e.scale.getExtent();s=1+f[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var c=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=It(h),v=It(v),c?h>v:hi&&(i+=dl);var h=Math.atan2(s,o);if(h<0&&(h+=dl),h>=n&&h<=i||h+dl>=n&&h+dl<=i)return l[0]=f,l[1]=c,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function pd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,f=r-e,c=n-t,d=Math.sqrt(f*f+c*c);f/=d,c/=d;var h=l*f+u*c,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*f,g=o[1]=t+v*c;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function zP(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),f=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(f-a)*(f-a))}var gn=[];function aZ(e,t,r){var n=zP(t.x,t.y,t.width,t.height,e.x,e.y,gn);return r.set(gn[0],gn[1]),n}function oZ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,f=t.data,c=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,bn.fromArray(e[0]),lt.fromArray(e[1]),Mt.fromArray(e[2]),ke.sub(Vn,bn,lt),ke.sub(Fn,Mt,lt);var r=Vn.len(),n=Fn.len();if(!(r<.001||n<.001)){Vn.scale(1/r),Fn.scale(1/n);var i=Vn.dot(Fn),a=Math.cos(t);if(a1&&ke.copy(or,Mt),or.toArray(e[1])}}}}function sZ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,bn.fromArray(e[0]),lt.fromArray(e[1]),Mt.fromArray(e[2]),ke.sub(Vn,lt,bn),ke.sub(Fn,Mt,lt);var n=Vn.len(),i=Fn.len();if(!(n<.001||i<.001)){Vn.scale(1/n),Fn.scale(1/i);var a=Vn.dot(t),o=Math.cos(r);if(a=l)ke.copy(or,Mt);else{or.scaleAndAdd(Fn,s/Math.tan(Math.PI/2-f));var c=Mt.x!==lt.x?(or.x-lt.x)/(Mt.x-lt.x):(or.y-lt.y)/(Mt.y-lt.y);if(isNaN(c))return;c<0?ke.copy(or,lt):c>1&&ke.copy(or,Mt)}or.toArray(e[1])}}}}function Zx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function lZ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=hg(n[0],n[1]),a=hg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=jh([],n[1],n[0],o/i),l=jh([],n[1],n[2],o/a),u=jh([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var f=1;f0&&a&&x(-f/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&S(-m),y<0&&S(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,T,E){if(C<0){var A=Math.min(T,-C);if(A>0){x(A*E,0,o);var M=A+C;M<0&&w(-M*E,1)}else w(-C*E,1)}}function x(C,T,E){C!==0&&(u=!0);for(var A=T;A0)for(var M=0;M0;M--){var F=E[M-1]*k;x(-F,M,o)}}}function S(C){var T=C<0?-1:1;C=Math.abs(C);for(var E=Math.ceil(C/(o-1)),A=0;A0?x(E,0,A+1):x(-E,o-A-1,o),C-=E,C<=0)return}return u}function uZ(e,t,r,n){return YP(e,"x","width",t,r,n)}function qP(e,t,r,n){return YP(e,"y","height",t,r,n)}function jP(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new tt(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),it(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Mr(n,u,r,l)}else if(n.attr(u),!ju(n).valueAnimation){var c=je(n.style.opacity,1);n.style.opacity=0,Br(n,{style:{opacity:c}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};Kf(h,u,Xf),Kf(h,n.states.select,Xf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};Kf(v,u,Xf),Kf(v,n.states.emphasis,Xf)}g7(n,l,f,r,r)}if(i&&!i.ignore&&!i.invisible){var a=dZ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Mr(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Br(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const vZ=hZ;var rp=Tt();function pZ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=rp(r).labelManager;i||(i=rp(r).labelManager=new vZ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=rp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function gZ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Es(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function yZ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,f=r.get(["lineStyle","width"])||2;o-=f/2,s-=f/2,l+=f,u+=f,o=Math.floor(o),l=Math.round(l);var c=new Nt({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(c.shape.x+=l),c.shape.width=0):(v||(c.shape.y+=u),c.shape.height=0);var p=We(i)?function(g){i(g,c)}:null;Br(c,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return c}function _Z(e,t,r){var n=e.getArea(),i=It(n.r0,1),a=It(n.r,1),o=new wo({shape:{cx:It(e.cx,1),cy:It(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Br(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function bZ(e,t,r,n,i){if(e){if(e.type==="polar")return _Z(e,t,r);if(e.type==="cartesian2d")return yZ(e,t,r,n,i)}else return null;return null}function KP(e,t){return e.type===t}var wZ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),c=n.getDevicePixelRatio(),d=Math.abs(f[1]-f[0])*(c||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Te(a)?v=wZ[a]:We(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,xZ))}}}}}var XP=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return bP(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)R(a.getAxes(),function(c,d){if(c.type==="category"){var h=c.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=c.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),f=a.getBaseAxis().isHorizontal()?0:1;o[f]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(po);po.registerClass(XP);const Jx=XP;var CZ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return bP(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=q2(Jx.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(Jx);const TZ=CZ;var MZ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),AZ=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new MZ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,f=n.startAngle,c=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?c-fMath.PI/2&&fs)return!0;s=c}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){ad(a,r,ut(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(ao),tS={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=np(t.x,e.x),s=ip(t.x+t.width,i),l=np(t.y,e.y),u=ip(t.y+t.height,a),f=si?s:o,t.y=c&&l>a?u:l,t.width=f?0:s-o,t.height=c?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),f||c},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=ip(t.r,e.r),a=np(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},rS={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Nt({shape:oe({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var f=u.shape,c=i?"height":"width";f[c]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?eS:wo,f=new u({shape:n,z2:1});f.name="item";var c=ZP(i);if(f.calculateTextPosition=EZ(c,{isRoundCap:u===eS}),a){var d=f.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Mr:Br)(f,{shape:v},a)}return f}};function IZ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function nS(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Mr:Br)(r,{shape:l},t,i,null);var f=t?e.baseAxis.model:null;(o?Mr:Br)(r,{shape:u},f,i)}function iS(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function kZ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function ZP(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function oS(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var f=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",c=G2(n);i0(e,c,{labelFetcher:a,labelDataIndex:r,defaultText:gZ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:f});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,PZ(e,h==="outside"?f:h,ZP(o),n.get(["label","rotate"]))}p7(d,c,a.getRawValue(r),function(p){return mZ(t,p)});var v=n.getModel(["emphasis"]);v2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),p2(e,n),kZ(i)&&(e.style.fill="none",e.style.stroke="none",R(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function NZ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var BZ=function(){function e(){}return e}(),sS=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new BZ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?r:null},30,!1);function FZ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,f=0,c=a.length/3;f=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[f]}return-1}function QP(e,t,r){if(KP(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function $Z(e,t,r){var n=e.type==="polar"?wo:Nt;return new n({shape:QP(t,r,e),silent:!0,z2:0})}const HZ=DZ;function zZ(e){e.registerChartView(HZ),e.registerSeriesModel(TZ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Dt(mX,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,yX("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,SZ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var ec=Math.PI*2,fS=Math.PI/180;function JP(e,t){return Ms(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function eL(e,t){var r=JP(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=pt(r.width,t.getWidth()),o=pt(r.height,t.getHeight()),s=Math.min(a,o),l=pt(i[0],s/2),u=pt(i[1],s/2),f,c,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);f=h[0]||0,c=h[1]||0}else ge(n)||(n=[n,n]),f=pt(n[0],a)+r.x,c=pt(n[1],o)+r.y;return{cx:f,cy:c,r0:l,r:u}}function WZ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=JP(n,r),s=eL(n,r),l=s.cx,u=s.cy,f=s.r,c=s.r0,d=-n.get("startAngle")*fS,h=n.get("minAngle")*fS,v=0;i.each(a,function(E){!isNaN(E)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=ec,w=0,S=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:f}),i.each(a,function(E,A){var M;if(isNaN(E)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:c,r:y?NaN:f});return}y!=="area"?M=p===0&&_?g:E*g:M=ec/v,Mr?m:g,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-c)/2}}}function ap(e){return e.position==="center"}function YZ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*GZ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,f=s.x,c=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,T=S.getTextContent(),E=S.getTextGuideLine(),A=t.getItemModel(w),M=A.getModel("label"),D=M.get("position")||A.get(["emphasis","label","position"]),O=M.get("distanceToLabelLine"),k=M.get("alignTo"),F=pt(M.get("edgeDistance"),u),j=M.get("bleedMargin"),B=A.getModel("labelLine"),N=B.get("length");N=pt(N,u);var U=B.get("length2");if(U=pt(U,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":ae>0?"left":"right"}var G=Math.PI,q=0,ne=M.get("rotate");if(bt(ne))q=ne*(G/180);else if(D==="center")q=0;else if(ne==="radial"||ne===!0){var ce=ae<0?-re+G:-re;q=ce}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(ae,me);te<0&&(te=G*2+te);var ie=me>0;ie&&(te=G+te),q=te-G}if(a=!!q,T.x=Me,T.y=V,T.rotation=q,T.setStyle({verticalAlign:"middle"}),Y){T.setStyle({align:W});var ve=T.states.select;ve&&(ve.x+=T.x,ve.y+=T.y)}else{var X=T.getBoundingRect().clone();X.applyTransform(T.getComputedTransform());var _e=(T.style.margin||0)+2.1;X.y-=_e/2,X.height+=_e,r.push({label:T,labelLine:E,position:D,len:N,len2:U,minTurnAngle:B.get("minTurnAngle"),maxSurfaceAngle:B.get("maxSurfaceAngle"),surfaceNormal:new ke(ae,me),linePoints:J,textAlign:W,labelDistance:O,labelAlignTo:k,edgeDistance:F,bleedMargin:j,rect:X,unconstrainedWidth:X.width,labelStyleWidth:T.style.width})}S.setTextConfig({inside:Y})}}),!a&&e.get("avoidLabelOverlap")&&UZ(r,n,i,l,u,d,f,c);for(var p=0;p0){for(var f=o.getItemLayout(0),c=1;isNaN(f&&f.startAngle)&&c=a.r0}},t.type="pie",t}(ao);const KZ=jZ;function XZ(e,t,r){t=ge(t)&&{coordDimensions:t}||oe({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=yP(n,t).dimensions,a=new mP(i,e);return a.initData(n,r),a}var ZZ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const QZ=ZZ;var JZ=Tt(),eQ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new QZ(_t(this.getData,this),_t(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return XZ(this,{coordDimensions:["value"],encodeDefaulter:Dt(G7,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=JZ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=MU(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Pg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(po);const tQ=eQ;function rQ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(bt(o)&&!isNaN(o)&&o<0)})}}}function nQ(e){e.registerChartView(KZ),e.registerSeriesModel(tQ),Dj("pie",e.registerAction),e.registerLayout(Dt(WZ,"pie")),e.registerProcessor(VZ("pie")),e.registerProcessor(rQ("pie"))}var iQ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(wt);const aQ=iQ;var sm=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",_n).models[0]},t.type="cartesian2dAxis",t}(wt);Qn(sm,VX);var rL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},oQ=at({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},rL),R0=at({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},rL),sQ=at({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},R0),lQ=ft({logBase:10},R0);const uQ={category:oQ,value:R0,time:sQ,log:lQ};var fQ={value:1,category:1,time:1,log:1};function dS(e,t,r,n){R(fQ,function(i,a){var o=at(at({},uQ[a],!0),n,!0),s=function(l){pe(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=t+"Axis."+a,f}return u.prototype.mergeDefaultAndTheme=function(f,c){var d=Cu(this),h=d?hh(f):{},v=c.getTheme();at(f,v.get(a+"Axis")),at(f,this.getDefaultOption()),f.type=hS(f),d&&As(f,h,d)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=am.createByAxisModel(this))},u.prototype.getCategories=function(f){var c=this.option;if(c.type==="category")return f?c.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",hS)}function hS(e){return e.type||(e.data?"category":"value")}var cQ=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Oe(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),$t(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const dQ=cQ;var lm=["x","y"];function vS(e){return e.type==="interval"||e.type==="time"}var hQ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=lm,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!vS(r)||!vS(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,c=(s[1]-o[1])/u,d=o[0]-i[0]*f,h=o[1]-a[0]*c,v=this._transform=[f,0,0,c,d,h];this._invTransform=Qd([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new tt(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return rn(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return rn(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new tt(i,a,o,s)},t}(dQ),vQ=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(tZ);const pQ=vQ;function um(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,f=n.getRect(),c=[f.x,f.x+f.width,f.y,f.y+f.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[c[2]-h,c[3]+h]:[c[0]-h,c[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:c[0],u==="x"?v[d[l]]:c[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),pu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function pS(e){return e.get("coordinateSystem")==="cartesian2d"}function gS(e){var t={xAxisModel:null,yAxisModel:null};return R(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,_n).models[0];t[n]=a}),t}var op=Math.log;function gQ(e,t,r){var n=Ku.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=RP(e,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(e.type==="log"){var d=op(e.base);u=[op(u[0])/d,op(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:c});var h=n.getExtent.call(e);f&&(u[0]=h[0]),c&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(f&&c)v=(g-p)/o;else if(f)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=Jv(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=Jv(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=It(g-y),p<0&&u[0]>=0?(p=0,g=It(y)):g>0&&u[1]<=0&&(g=0,p=-It(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var mQ=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=lm,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=xt(o),u=l.length;if(u){for(var f=[],c=u-1;c>=0;c--){var d=+l[c],h=o[d],v=h.model,p=h.scale;om(p)&&v.get("alignTicks")&&v.get("interval")==null?f.push(h):(Yx(p,v),om(p)&&(s=h))}f.length&&(s||(s=f.pop(),Yx(s.scale,s.model)),R(f,function(g){gQ(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};R(n.x,function(o){mS(n,"y",o,a)}),R(n.y,function(o){mS(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ms(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(R(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=HX(u);if(f){var c=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+d,u.position==="top"?o.y+=f.height+d:u.position==="left"&&(o.x+=f.width+d)}}}),l()),R(this._coordsList,function(u){u.calcAffineTransform()});function l(){R(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(c[d],c[1-d]),yQ(u,f?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}De(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):td(i-qi)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),_S={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(rn(s,s,o),rn(l,l,o));var f=oe({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new vo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});bu(c.shape,c.style.lineWidth),c.anid="line",r.add(c);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Te(d)&&(d=[d,d]),(Te(h)||bt(h))&&(h=[h,h]);var v=Uj(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];R([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=w0(d[y],-p/2,-g/2,p,g,f.stroke,!0),b=m.r+m.offset,x=u?l:s;_.attr({rotation:m.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=xQ(r,n,t,e),a=CQ(r,n,t,e);if(wQ(t,a,i),SQ(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=UP(Oe(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));jP(o)}},axisName:function(e,t,r,n){var i=pu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),f=u[0]>u[1]?-1:1,c=[a==="start"?u[0]-f*l:a==="end"?u[1]+f*l:(u[0]+u[1])/2,wS(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*qi/180);var v;wS(a)?d=oo.innerTextLayout(e.rotation,h??e.rotation,o):(d=bQ(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=pu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new fr({x:c[0],y:c[1],rotation:d.rotation,silent:oo.isLabelSilent(t),style:na(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(r0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=oo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,ut(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function bQ(e,t,r,n){var i=BA(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return td(i-qi/2)?(o=l?"bottom":"top",a="center"):td(i-qi*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iqi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function wQ(e,t,r){if(!OP(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],f=r[1],c=r[r.length-1],d=r[r.length-2];n===!1?(Vr(a),Vr(u)):bS(a,o)&&(n?(Vr(o),Vr(f)):(Vr(a),Vr(u))),i===!1?(Vr(s),Vr(c)):bS(l,s)&&(i?(Vr(l),Vr(d)):(Vr(s),Vr(c)))}}function Vr(e){e&&(e.ignore=!0)}function bS(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Oy([]);return ky(i,i,-e.rotation),r.applyTransform(is([],i,e.getLocalTransform())),n.applyTransform(is([],i,t.getLocalTransform())),r.intersect(n)}}function wS(e){return e==="middle"||e==="center"}function nL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function LQ(e){var t=O0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=fm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var c=this.__startIndex;c15)break}}O.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var E=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?rc:0),this._needsManuallyCompositing),f.__builtin__||Dy("ZLevel "+u+" has been used by unkown layer "+f.id),f!==a&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,r(l),a=f),i.__dirty&Ir&&!i.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(c,d){!c.__used&&c.getElementCount()>0&&(c.__dirty=!0,c.__startIndex=c.__endIndex=c.__drawIndex=0),c.__dirty&&c.__drawIndex<0&&(c.__drawIndex=c.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,R(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?at(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=O0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ua(t).pointerEl=new c7[a.type](MS(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ua(t).labelEl=new fr(MS(r.label));t.add(a),ES(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ua(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ua(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),ES(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=t0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){dA(u.event)},onmousedown:fp(this._onHandleDragMove,this,0,0),drift:fp(this._onHandleDragMove,this),ondragend:fp(this._onHandleDragEnd,this)}),n.add(i)),PS(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,kE(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){AS(this._axisPointerModel,!r&&this._moveAnimation,this._handle,cp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(cp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(cp(i)),Ua(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),Xg(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function AS(e,t,r,n){lL(Ua(r).lastProp,n)||(Ua(r).lastProp=n,t?Mr(r,n,e):(r.stopAnimation(),r.attr(n)))}function lL(e,t){if(De(e)&&De(t)){var r=!0;return R(t,function(n,i){r=r&&lL(e[i],n)}),!!r}else return e===t}function ES(e,t){e[t.get(["label","show"])?"show":"hide"]()}function cp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function PS(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const KQ=jQ;function XQ(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function ZQ(e,t,r,n,i){var a=r.get("value"),o=uL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=dh(s.get("padding")||0),u=s.getFont(),f=Fy(o,u),c=i.position,d=f.width+l[1]+l[3],h=f.height+l[0]+l[2],v=i.align;v==="right"&&(c[0]-=d),v==="center"&&(c[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=h),p==="middle"&&(c[1]-=h/2),QQ(c,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:c[0],y:c[1],style:na(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function QQ(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function uL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:D0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};R(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,c=u&&u.getDataParams(f);c&&s.seriesData.push(c)}),Te(o)?a=o.replace("{value}",a):We(o)&&(a=o(s))}return a}function fL(e,t,r){var n=gu();return ky(n,n,r.rotation),mg(n,n,r.position),e0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function JQ(e,t,r,n,i,a){var o=iL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),ZQ(t,n,i,a,{position:fL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function eJ(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function tJ(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var rJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),f=LS(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=XQ(a),h=nJ[u](s,c,f);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=um(l.model,i);JQ(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=um(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=fL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=LS(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,c=[r.x,r.y];c[f]+=n[f],c[f]=Math.min(l[1],c[f]),c[f]=Math.max(l[0],c[f]);var d=(u[1]+u[0])/2,h=[d,d];h[f]=c[f];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[f]}},t}(KQ);function LS(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var nJ={line:function(e,t,r){var n=eJ([t,r[0]],[t,r[1]],DS(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:tJ([t-n/2,r[0]],[n,i],DS(e))}}};function DS(e){return e.dim==="x"?0:1}const iJ=rJ;var aJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(wt);const oJ=aJ;var fi=Tt(),sJ=R;function cL(e,t,r){if(!Ve.node){var n=t.getZr();fi(n).records||(fi(n).records={}),lJ(n,t);var i=fi(n).records[e]||(fi(n).records[e]={});i.handler=r}}function lJ(e,t){if(fi(e).initialized)return;fi(e).initialized=!0,r("click",Dt(IS,"click")),r("mousemove",Dt(IS,"mousemove")),r("globalout",fJ);function r(n,i){e.on(n,function(a){var o=cJ(t);sJ(fi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),uJ(o.pendings,t)})}}function uJ(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function fJ(e,t,r){e.handler("leave",null,r)}function IS(e,t,r,n){t.handler(e,r,n)}function cJ(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function dm(e,t){if(!Ve.node){var r=t.getZr(),n=(fi(r).records||{})[e];n&&(fi(r).records[e]=null)}}var dJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";cL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){dm("axisPointer",n)},t.prototype.dispose=function(r,n){dm("axisPointer",n)},t.type="axisPointer",t}(bi);const hJ=dJ;function dL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=Uu(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),c=f.dim,d=u.dim,h=c==="x"||c==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Oe(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var RS=Tt();function vJ(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||_t(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Ic(i)&&(i=dL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Ic(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Ic(i),d={},h={},v={list:[],map:{}},p={showPointer:Dt(gJ,h),showTooltip:Dt(mJ,v)};R(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);R(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=wJ(u,b);if(!c&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&OS(b,C,p,!1,d)}})});var g={};return R(f,function(m,y){var _=m.linkGroup;_&&!h[y]&&R(_.axesInfo,function(b,x){var w=h[x];if(b!==m&&w){var S=w.value;_.mapper&&(S=m.axis.scale.parse(_.mapper(S,kS(b),kS(m)))),g[m.key]=S}})}),R(g,function(m,y){OS(f[y],m,p,!0,d)}),yJ(h,f,d),_J(v,i,e,o),bJ(f,o,r),d}}function OS(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=pJ(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&oe(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function pJ(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return R(t.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(f,e,r);d=h.dataIndices,c=h.nestestValue}else{if(d=l.getData().indicesOfNearest(f[0],e,r.type==="category"?.5:null),!d.length)return;c=l.getData().get(f[0],d[0])}if(!(c==null||!isFinite(c))){var v=e-c,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=c,a.length=0),R(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function gJ(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function mJ(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Lu(l),f=e.map[u];f||(f=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(f)),f.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function yJ(e,t,r){var n=r.axesInfo=[];R(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function _J(e,t,r,n){if(Ic(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function bJ(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=RS(n)[i]||{},o=RS(n)[i]={};R(e,function(u,f){var c=u.axisPointerModel.option;c.status==="show"&&R(c.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];R(a,function(u,f){!o[f]&&l.push(u)}),R(o,function(u,f){!a[f]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function wJ(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function kS(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Ic(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function hL(e){aL.registerAxisPointerClass("CartesianAxisPointer",iJ),e.registerComponentModel(oJ),e.registerComponentView(hJ),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=TQ(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},vJ)}function xJ(e){ia(HQ),ia(hL)}function SJ(e,t){var r=dh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Nt({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var CJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(wt);const TJ=CJ;function vL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function pL(e){if(Ve.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var f=u*Math.PI/180,c=o+i,d=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-c)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function IJ(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ve.transformSupported?","+k0+n:",left"+n+",top"+n),EJ+":"+i}function NS(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ve.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ve.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+k0+":"+o+";":[["top",0],["left",0],[gL,o]]}function RJ(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),R(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function OJ(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),f=e.getModel("textStyle"),c=IE(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(IJ(i,r)),a&&n.push("background-color:"+a),R(["width","color","radius"],function(h){var v="border-"+h,p=aE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(RJ(f)),c!=null&&n.push("padding:"+dh(c).join("px ")+"px"),n.join(";")+";"}function BS(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&cG(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var kJ=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ve.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;BS(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,f=a.painter.getViewportRoot();Ur(f,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=AJ(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=PJ+OJ(t,!this._firstShow,this._longHide)+NS(a[0],a[1],!0)+("border-color:"+Su(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Te(a)&&n.get("trigger")==="item"&&!vL(n)&&(s=DJ(n,i,a)),Te(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ve.node||!i.getDom())){var o=HS(a,i);this._ticket="";var s=a.dataByCoordSys,l=GJ(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var f=$J;f.x=a.x,f.y=a.y,f.update(),ut(f).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:f},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var c=dL(a,n),d=c.point[0],h=c.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:c.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(HS(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var f=u.getData(),c=hl([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(c.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Sl(i,function(u){if(ut(u).dataIndex!=null)return s=u,!0;if(ut(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=_t(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=hl([n.tooltipOption],a),l=this._renderMode,u=[],f=Mu("section",{blocks:[],noHeader:!0}),c=[],d=new zv;R(r,function(y){R(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=uL(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Mu("section",{header:w,noHeader:!zn(w),sortBlocks:!0,blocks:[]});f.blocks.push(S),R(_.seriesDataIndices,function(C){var T=i.getSeriesByIndex(C.seriesIndex),E=C.dataIndexInside,A=T.getDataParams(E);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=D0(b.axis,{value:x}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Su(A.color),l);var M=ex(T.formatTooltip(E,!0,null)),D=M.frag;if(D){var O=hl([T],a).get("valueFormatter");S.blocks.push(O?oe({valueFormatter:O},D):D)}M.text&&c.push(M.text),u.push(A)}})}})}),f.blocks.reverse(),c.reverse();var h=n.position,v=s.get("order"),p=ax(f,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var g=l==="richText"?` -`:"
",m=c.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=lt(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,d=u.getData(c),h=this._renderMode,v=r.positionDefault,p=hl([d.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(f,c),y=new zv;m.marker=y.makeTooltipMarker("item",Su(m.color),h);var _=ex(u.formatTooltip(f,!1,c)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?ax(x?oe({valueFormatter:x},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,S,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:d.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=lt(n),o=a.tooltipConfig,s=o.option||{};if(Ce(s)){var l=s;s={content:l,formatter:l}}var u=[s],f=this._ecModel.getComponent(a.componentMainType,a.componentIndex);f&&u.push(f),u.push({formatter:s.content});var c=r.positionDefault,d=hl(u,this._tooltipModel,c?{position:c}:null),h=d.get("content"),v=Math.random()+"",p=new zv;this._showOrMove(d,function(){var g=Xe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,f){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var c=this._tooltipContent;c.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Ce(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=sh(m.axisValue,h,g)),h=aE(h,i,!0)}else if(We(d)){var _=yt(function(b,x){b===this._ticket&&(c.setContent(x,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;c.setContent(h,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||r.get("position");var c=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),We(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,f],contentSize:c.slice()})),ge(n))i=pt(n[0],u),a=pt(n[1],f);else if(Pe(n)){var p=n;p.width=c[0],p.height=c[1];var g=Ms(p,{width:u,height:f});i=g.x,a=g.y,d=null,h=null}else if(Ce(n)&&l){var m=WJ(n,v,c,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=HJ(i,a,o,u,f,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=zS(d)?c[0]/2:d==="right"?c[0]:0),h&&(a-=zS(h)?c[1]/2:h==="bottom"?c[1]:0),hL(r)){var m=zJ(i,a,o,u,f);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&R(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&R(u,function(d,h){var v=c[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&R(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&R(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ve.node||!n.getDom()||(Xg(this,"_updatePosition"),this._tooltipContent.dispose(),dm("itemTooltip",n))},t.type="tooltip",t}(_i);function hl(e,t,r){var n=t.ecModel,i;r?(i=new er(r,n,n),i=new er(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof er&&(o=o.get("tooltip",!0)),Ce(o)&&(o={formatter:o}),o&&(i=new er(o,i,n)))}return i}function HS(e,t){return e.dispatchAction||yt(t.dispatchAction,t)}function HJ(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function zJ(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function WJ(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function zS(e){return e==="center"||e==="middle"}function VJ(e,t,r){var n=Vy(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=Uu(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=lt(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const GJ=$J;function UJ(e){na(dL),e.registerComponentModel(CJ),e.registerComponentView(GJ),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Sr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Sr)}var YJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(bt),qJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),f=new fr({style:ra(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),d=r.get("subtext"),h=new fr({style:ra(s,{text:d,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);f.silent=!v&&!g,h.silent=!p&&!g,v&&f.on("click",function(){Nw(v,"_"+r.get("target"))}),p&&h.on("click",function(){Nw(p,"_"+r.get("subtarget"))}),lt(f).eventData=lt(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ms(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Nt({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(_i);function jJ(e){e.registerComponentModel(YJ),e.registerComponentView(qJ)}var KJ=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},XJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&R(n,function(a,o){Ce(a)&&(a={type:a}),n[o]=it(a,KJ(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(bt);const hm=XJ;var Ho=Dt,vm=R,rc=sn,ZJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new rc),this.group.add(this._selectorGroup=new rc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var f=r.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ms(f,c,d),v=this.layoutInner(r,o,h,a,l,u),p=Ms(ut({width:v.width,height:v.height},f),c,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=xJ(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=Ge(),c=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),vm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` -`)){var g=new rc;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!f.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,x,b,c,a);w.on("click",Ho(WS,p,null,a,d)).on("mouseover",Ho(pm,m.name,null,a,d)).on("mouseout",Ho(gm,m.name,null,a,d)),f.set(p,!0)}else i.eachRawSeries(function(S){if(!f.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var T=C.indexOfName(p),E=C.getItemVisual(T,"style"),A=C.getItemVisual(T,"legendIcon"),M=to(E.fill);M&&M[3]===0&&(M[3]=.2,E=oe(oe({},E),{fill:Ny(M,"rgba")}));var D=this._createItem(S,p,v,h,n,r,{},E,A,c,a);D.on("click",Ho(WS,null,p,a,d)).on("mouseover",Ho(pm,null,p,a,d)).on("mouseout",Ho(gm,null,p,a,d)),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();vm(r,function(u){var f=u.type,c=new fr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);i0(c,{normal:d,emphasis:h},{defaultText:u.title}),Fg(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var b=QJ(f,a,l,u,h,g,d),x=new rc,w=a.getModel("textStyle");if(We(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:f,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;x.add(JJ({itemWidth:v,itemHeight:p,icon:f,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,T=s,E=o.get("formatter"),A=n;Ce(E)&&E?A=E.replace("{name}",n??""):We(E)&&(A=E(n));var M=a.get("inactiveColor");x.add(new fr({style:ra(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():M,align:T,verticalAlign:"middle"})}));var D=new Nt({shape:x.getBoundingRect(),invisible:!0}),O=a.getModel("tooltip");return O.get("show")&&r0({el:D,componentModel:o,itemName:n,itemTooltipOption:O.option}),x.add(D),x.eachChild(function(k){k.silent=!0}),D.silent=!c,this.getContentGroup().add(x),Fg(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Yl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){Yl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=f[g]+v:c[p]+=d[g]+v,h[1-p]+=f[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[g]=f[g]+v+d[g],_[m]=Math.max(f[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(_i);function QJ(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),vm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=e.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:tm(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function JJ(e){var t=e.icon||"roundRect",r=w0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function WS(e,t,r,n){gm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),pm(e,t,r,n)}function mL(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=f[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,f.setPosition(g),c.setPosition(m),d.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:h[o],x[s]=Math.max(h[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Nt({shape:w})),c.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Mr(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",d=n[c]!=null,h=i.childOfName(f);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ce(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=dp[o],l=hp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],d=f.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(f[g]),(!_&&y.e>m.s+a||_&&!x(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(f[g]),(!_||!x(y,_.s))&&m.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(yL);const aee=iee;function oee(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function see(e){na(_L),e.registerComponentModel(nee),e.registerComponentView(aee),oee(e)}function lee(e){na(_L),na(see)}na([rQ,HZ,YQ,vZ,jJ,UJ,lee,wJ]);function uee(e,t,r){const n=T0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return Ji.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function fee(e,t){const r=T0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function cee(e,t,r){const n={width:"600px",height:"400px"},i=T0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+Ji.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return Ji.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const dee={class:"source"},hee=le("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),vee=le("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),pee=ue({__name:"ServerOverview",setup(e){let t=H({version:"",bind_port:"",bind_udp_port:"",vhost_http_port:"",vhost_https_port:"",subdomain_host:"",max_pool_count:"",max_ports_per_client:"",heart_beat_timeout:"",client_counts:"",cur_conns:"",proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.bind_udp_port=n.bind_udp_port,t.value.bind_udp_port=="0"&&(t.value.bind_udp_port="disable"),t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_http_port=="0"&&(t.value.vhost_http_port="disable"),t.value.vhost_https_port=n.vhost_https_port,t.value.vhost_https_port=="0"&&(t.value.vhost_https_port="disable"),t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),uee("traffic",n.total_traffic_in,n.total_traffic_out),fee("proxies",n)}).catch(()=>{UM({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=AM,o=MM,s=SM,l=IM;return X(),Se("div",null,[J(l,null,{default:ee(()=>[J(s,{md:12},{default:ee(()=>[le("div",dee,[J(o,{"label-position":"left","label-width":"160px",class:"server_info"},{default:ee(()=>[J(a,{label:"Version"},{default:ee(()=>[le("span",null,Re(L(t).version),1)]),_:1}),J(a,{label:"BindPort"},{default:ee(()=>[le("span",null,Re(L(t).bind_port),1)]),_:1}),J(a,{label:"BindUdpPort"},{default:ee(()=>[le("span",null,Re(L(t).bind_udp_port),1)]),_:1}),J(a,{label:"Http Port"},{default:ee(()=>[le("span",null,Re(L(t).vhost_http_port),1)]),_:1}),J(a,{label:"Https Port"},{default:ee(()=>[le("span",null,Re(L(t).vhost_https_port),1)]),_:1}),J(a,{label:"Subdomain Host"},{default:ee(()=>[le("span",null,Re(L(t).subdomain_host),1)]),_:1}),J(a,{label:"Max PoolCount"},{default:ee(()=>[le("span",null,Re(L(t).max_pool_count),1)]),_:1}),J(a,{label:"Max Ports Per Client"},{default:ee(()=>[le("span",null,Re(L(t).max_ports_per_client),1)]),_:1}),J(a,{label:"HeartBeat Timeout"},{default:ee(()=>[le("span",null,Re(L(t).heart_beat_timeout),1)]),_:1}),J(a,{label:"Client Counts"},{default:ee(()=>[le("span",null,Re(L(t).client_counts),1)]),_:1}),J(a,{label:"Current Connections"},{default:ee(()=>[le("span",null,Re(L(t).cur_conns),1)]),_:1}),J(a,{label:"Proxy Counts"},{default:ee(()=>[le("span",null,Re(L(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),J(s,{md:12},{default:ee(()=>[hee,vee]),_:1})]),_:1})])}}});class zs{constructor(t){Wt(this,"name");Wt(this,"type");Wt(this,"encryption");Wt(this,"compression");Wt(this,"conns");Wt(this,"traffic_in");Wt(this,"traffic_out");Wt(this,"last_start_time");Wt(this,"last_close_time");Wt(this,"status");Wt(this,"addr");Wt(this,"port");Wt(this,"custom_domains");Wt(this,"host_header_rewrite");Wt(this,"locations");Wt(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class gee extends zs{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class mee extends zs{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class yee extends zs{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class _ee extends zs{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class bee extends zs{constructor(t){super(t),this.type="stcp"}}class wee extends zs{constructor(t){super(t),this.type="sudp"}}const xee=["id"],See=ue({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{cee(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{UM({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(X(),Se("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,xee))}}),Cee=ue({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=AM,i=MM;return e.proxyType==="http"||e.proxyType==="https"?(X(),Ie(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:ee(()=>[J(n,{label:"Name"},{default:ee(()=>[le("span",null,Re(e.row.name),1)]),_:1}),J(n,{label:"Type"},{default:ee(()=>[le("span",null,Re(e.row.type),1)]),_:1}),J(n,{label:"Domains"},{default:ee(()=>[le("span",null,Re(e.row.custom_domains),1)]),_:1}),J(n,{label:"SubDomain"},{default:ee(()=>[le("span",null,Re(e.row.subdomain),1)]),_:1}),J(n,{label:"locations"},{default:ee(()=>[le("span",null,Re(e.row.locations),1)]),_:1}),J(n,{label:"HostRewrite"},{default:ee(()=>[le("span",null,Re(e.row.host_header_rewrite),1)]),_:1}),J(n,{label:"Encryption"},{default:ee(()=>[le("span",null,Re(e.row.encryption),1)]),_:1}),J(n,{label:"Compression"},{default:ee(()=>[le("span",null,Re(e.row.compression),1)]),_:1}),J(n,{label:"Last Start"},{default:ee(()=>[le("span",null,Re(e.row.last_start_time),1)]),_:1}),J(n,{label:"Last Close"},{default:ee(()=>[le("span",null,Re(e.row.last_close_time),1)]),_:1})]),_:1})):(X(),Ie(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:ee(()=>[J(n,{label:"Name"},{default:ee(()=>[le("span",null,Re(e.row.name),1)]),_:1}),J(n,{label:"Type"},{default:ee(()=>[le("span",null,Re(e.row.type),1)]),_:1}),J(n,{label:"Addr"},{default:ee(()=>[le("span",null,Re(e.row.addr),1)]),_:1}),J(n,{label:"Encryption"},{default:ee(()=>[le("span",null,Re(e.row.encryption),1)]),_:1}),J(n,{label:"Compression"},{default:ee(()=>[le("span",null,Re(e.row.compression),1)]),_:1}),J(n,{label:"Last Start"},{default:ee(()=>[le("span",null,Re(e.row.last_start_time),1)]),_:1}),J(n,{label:"Last Close"},{default:ee(()=>[le("span",null,Re(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),Ws=ue({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(o,s)=>Ji.fileSize(o.traffic_in),r=(o,s)=>Ji.fileSize(o.traffic_out),n=H(),i=H(),a=()=>{var o,s;(s=(o=L(i).popoverTraffic)==null?void 0:o.delayHide)==null||s.call(o)};return(o,s)=>{const l=See,u=j6,f=PH,c=sW,d=uz,h=oW,v=Rm("click-outside");return X(),Se("div",null,[J(h,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:ee(()=>[J(c,{type:"expand"},{default:ee(p=>[J(u,{ref_key:"popoverTraffic",ref:i,"virtual-ref":n.value,placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click","virtual-triggering":""},{default:ee(()=>[J(l,{proxy_name:p.row.name},null,8,["proxy_name"])]),_:2},1032,["virtual-ref"]),sr((X(),Ie(f,{ref_key:"buttonTraffic",ref:n,type:"primary",size:"large",name:p.row.name,style:{"margin-bottom":"10px"}},{default:ee(()=>[kt("Traffic Statistics ")]),_:2},1032,["name"])),[[v,a]]),J(Cee,{row:p.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),J(c,{label:"Name",prop:"name",sortable:""}),J(c,{label:"Port",prop:"port",sortable:""}),J(c,{label:"Connections",prop:"conns",sortable:""}),J(c,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),J(c,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),J(c,{label:"status",prop:"status",sortable:""},{default:ee(p=>[p.row.status==="online"?(X(),Ie(d,{key:0,type:"success"},{default:ee(()=>[kt(Re(p.row.status),1)]),_:2},1024)):(X(),Ie(d,{key:1,type:"danger"},{default:ee(()=>[kt(Re(p.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),Tee=ue({__name:"ProxiesTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new gee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"tcp"},null,8,["proxies"]))}}),Mee=ue({__name:"ProxiesUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new mee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"udp"},null,8,["proxies"]))}}),Aee=ue({__name:"ProxiesHTTP",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new yee(s,n,i))})})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"http"},null,8,["proxies"]))}}),Eee=ue({__name:"ProxiesHTTPS",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new _ee(s,n,i))})})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"https"},null,8,["proxies"]))}}),Pee=ue({__name:"ProxiesSTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new bee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"stcp"},null,8,["proxies"]))}}),Lee=ue({__name:"ProxiesSUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new wee(i))})})(),(n,i)=>(X(),Ie(Ws,{proxies:L(t),proxyType:"sudp"},null,8,["proxies"]))}}),Dee=LV({history:YW(),routes:[{path:"/",name:"ServerOverview",component:pee},{path:"/proxies/tcp",name:"ProxiesTCP",component:Tee},{path:"/proxies/udp",name:"ProxiesUDP",component:Mee},{path:"/proxies/http",name:"ProxiesHTTP",component:Aee},{path:"/proxies/https",name:"ProxiesHTTPS",component:Eee},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Pee},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Lee}]}),bL=eR(AW);bL.use(Dee);bL.mount("#app")});export default Iee(); +`:"
",m=c.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=ut(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,d=u.getData(c),h=this._renderMode,v=r.positionDefault,p=hl([d.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(f,c),y=new zv;m.marker=y.makeTooltipMarker("item",Su(m.color),h);var _=ex(u.formatTooltip(f,!1,c)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?ax(x?oe({valueFormatter:x},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,S,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:d.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=ut(n),o=a.tooltipConfig,s=o.option||{};if(Te(s)){var l=s;s={content:l,formatter:l}}var u=[s],f=this._ecModel.getComponent(a.componentMainType,a.componentIndex);f&&u.push(f),u.push({formatter:s.content});var c=r.positionDefault,d=hl(u,this._tooltipModel,c?{position:c}:null),h=d.get("content"),v=Math.random()+"",p=new zv;this._showOrMove(d,function(){var g=Ze(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,f){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var c=this._tooltipContent;c.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Te(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=sh(m.axisValue,h,g)),h=oE(h,i,!0)}else if(We(d)){var _=_t(function(b,x){b===this._ticket&&(c.setContent(x,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;c.setContent(h,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||r.get("position");var c=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),We(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,f],contentSize:c.slice()})),ge(n))i=pt(n[0],u),a=pt(n[1],f);else if(De(n)){var p=n;p.width=c[0],p.height=c[1];var g=Ms(p,{width:u,height:f});i=g.x,a=g.y,d=null,h=null}else if(Te(n)&&l){var m=VJ(n,v,c,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=zJ(i,a,o,u,f,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=zS(d)?c[0]/2:d==="right"?c[0]:0),h&&(a-=zS(h)?c[1]/2:h==="bottom"?c[1]:0),vL(r)){var m=WJ(i,a,o,u,f);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&R(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&R(u,function(d,h){var v=c[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&R(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&R(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ve.node||!n.getDom()||(Xg(this,"_updatePosition"),this._tooltipContent.dispose(),dm("itemTooltip",n))},t.type="tooltip",t}(bi);function hl(e,t,r){var n=t.ecModel,i;r?(i=new tr(r,n,n),i=new tr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof tr&&(o=o.get("tooltip",!0)),Te(o)&&(o={formatter:o}),o&&(i=new tr(o,i,n)))}return i}function HS(e,t){return e.dispatchAction||_t(t.dispatchAction,t)}function zJ(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function WJ(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function VJ(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function zS(e){return e==="center"||e==="middle"}function GJ(e,t,r){var n=Vy(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=Yu(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=ut(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const UJ=HJ;function YJ(e){ia(hL),e.registerComponentModel(TJ),e.registerComponentView(UJ),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Sr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Sr)}var qJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(wt),jJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=je(r.get("textBaseline"),r.get("textVerticalAlign")),f=new fr({style:na(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),d=r.get("subtext"),h=new fr({style:na(s,{text:d,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);f.silent=!v&&!g,h.silent=!p&&!g,v&&f.on("click",function(){Nw(v,"_"+r.get("target"))}),p&&h.on("click",function(){Nw(p,"_"+r.get("subtarget"))}),ut(f).eventData=ut(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ms(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Nt({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(bi);function KJ(e){e.registerComponentModel(qJ),e.registerComponentView(jJ)}var XJ=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},ZJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&R(n,function(a,o){Te(a)&&(a={type:a}),n[o]=at(a,XJ(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(wt);const hm=ZJ;var Ho=Dt,vm=R,nc=sn,QJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new nc),this.group.add(this._selectorGroup=new nc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var f=r.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ms(f,c,d),v=this.layoutInner(r,o,h,a,l,u),p=Ms(ft({width:v.width,height:v.height},f),c,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=SJ(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=Ge(),c=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),vm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` +`)){var g=new nc;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!f.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,x,b,c,a);w.on("click",Ho(WS,p,null,a,d)).on("mouseover",Ho(pm,m.name,null,a,d)).on("mouseout",Ho(gm,m.name,null,a,d)),f.set(p,!0)}else i.eachRawSeries(function(S){if(!f.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var T=C.indexOfName(p),E=C.getItemVisual(T,"style"),A=C.getItemVisual(T,"legendIcon"),M=ro(E.fill);M&&M[3]===0&&(M[3]=.2,E=oe(oe({},E),{fill:Ny(M,"rgba")}));var D=this._createItem(S,p,v,h,n,r,{},E,A,c,a);D.on("click",Ho(WS,null,p,a,d)).on("mouseover",Ho(pm,null,p,a,d)).on("mouseout",Ho(gm,null,p,a,d)),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();vm(r,function(u){var f=u.type,c=new fr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);i0(c,{normal:d,emphasis:h},{defaultText:u.title}),Fg(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var b=JJ(f,a,l,u,h,g,d),x=new nc,w=a.getModel("textStyle");if(We(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:f,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;x.add(eee({itemWidth:v,itemHeight:p,icon:f,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,T=s,E=o.get("formatter"),A=n;Te(E)&&E?A=E.replace("{name}",n??""):We(E)&&(A=E(n));var M=a.get("inactiveColor");x.add(new fr({style:na(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():M,align:T,verticalAlign:"middle"})}));var D=new Nt({shape:x.getBoundingRect(),invisible:!0}),O=a.getModel("tooltip");return O.get("show")&&r0({el:D,componentModel:o,itemName:n,itemTooltipOption:O.option}),x.add(D),x.eachChild(function(k){k.silent=!0}),D.silent=!c,this.getContentGroup().add(x),Fg(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Yl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){Yl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=f[g]+v:c[p]+=d[g]+v,h[1-p]+=f[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[g]=f[g]+v+d[g],_[m]=Math.max(f[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(bi);function JJ(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),vm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=e.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:tm(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function eee(e){var t=e.icon||"roundRect",r=w0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function WS(e,t,r,n){gm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),pm(e,t,r,n)}function yL(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=f[u]);var m=[0,0],y=[-v.x,-v.y],_=je(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,f.setPosition(g),c.setPosition(m),d.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:h[o],x[s]=Math.max(h[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Nt({shape:w})),c.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Mr(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",d=n[c]!=null,h=i.childOfName(f);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Te(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=dp[o],l=hp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],d=f.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(f[g]),(!_&&y.e>m.s+a||_&&!x(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(f[g]),(!_||!x(y,_.s))&&m.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(_L);const oee=aee;function see(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function lee(e){ia(bL),e.registerComponentModel(iee),e.registerComponentView(oee),see(e)}function uee(e){ia(bL),ia(lee)}ia([nQ,zZ,qQ,pZ,KJ,YJ,uee,xJ]);function fee(e,t,r){const n=T0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return ea.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function cee(e,t){const r=T0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function dee(e,t,r){const n={width:"600px",height:"400px"},i=T0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+ea.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return ea.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const US=ue({__name:"LongSpan",props:{content:null,length:null},setup(e){return(t,r)=>{const n=Hu;return K(),Se(yt,null,[ee(n,{content:e.content,placement:"top"},{default:Z(()=>[qt(se("span",null,Ae(e.content.slice(0,e.length))+"...",513),[[pi,e.content.length>e.length]])]),_:1},8,["content"]),qt(se("span",null,Ae(e.content),513),[[pi,e.content.length<30]])],64)}}}),hee={class:"source"},vee=se("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),pee=se("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),gee=ue({__name:"ServerOverview",setup(e){let t=H({version:"",bind_port:0,bind_udp_port:0,kcp_bind_port:0,quic_bind_port:0,vhost_http_port:0,vhost_https_port:0,tcpmux_httpconnect_port:0,subdomain_host:"",max_pool_count:0,max_ports_per_client:"",allow_ports_str:"",tls_only:!1,heart_beat_timeout:0,client_counts:0,cur_conns:0,proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.bind_udp_port=n.bind_udp_port,t.value.kcp_bind_port=n.kcp_bind_port,t.value.quic_bind_port=n.quic_bind_port,t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_https_port=n.vhost_https_port,t.value.tcpmux_httpconnect_port=n.tcpmux_httpconnect_port,t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.allow_ports_str=n.allow_ports_str,t.value.tls_only=n.tls_only,t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),fee("traffic",n.total_traffic_in,n.total_traffic_out),cee("proxies",n)}).catch(()=>{YM({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=EM,o=AM,s=CM,l=RM;return K(),Se("div",null,[ee(l,null,{default:Z(()=>[ee(s,{md:12},{default:Z(()=>[se("div",hee,[ee(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:Z(()=>[ee(a,{label:"Version"},{default:Z(()=>[se("span",null,Ae(L(t).version),1)]),_:1}),ee(a,{label:"BindPort"},{default:Z(()=>[se("span",null,Ae(L(t).bind_port),1)]),_:1}),L(t).bind_udp_port!=0?(K(),xe(a,{key:0,label:"Bind UDP Port"},{default:Z(()=>[se("span",null,Ae(L(t).bind_udp_port),1)]),_:1})):Ye("",!0),L(t).kcp_bind_port!=0?(K(),xe(a,{key:1,label:"KCP Bind Port"},{default:Z(()=>[se("span",null,Ae(L(t).kcp_bind_port),1)]),_:1})):Ye("",!0),L(t).quic_bind_port!=0?(K(),xe(a,{key:2,label:"QUIC Bind Port"},{default:Z(()=>[se("span",null,Ae(L(t).quic_bind_port),1)]),_:1})):Ye("",!0),L(t).vhost_http_port!=0?(K(),xe(a,{key:3,label:"Http Port"},{default:Z(()=>[se("span",null,Ae(L(t).vhost_http_port),1)]),_:1})):Ye("",!0),L(t).vhost_https_port!=0?(K(),xe(a,{key:4,label:"Https Port"},{default:Z(()=>[se("span",null,Ae(L(t).vhost_https_port),1)]),_:1})):Ye("",!0),L(t).tcpmux_httpconnect_port!=0?(K(),xe(a,{key:5,label:"TCPMux HTTPConnect Port"},{default:Z(()=>[se("span",null,Ae(L(t).tcpmux_httpconnect_port),1)]),_:1})):Ye("",!0),L(t).subdomain_host!=""?(K(),xe(a,{key:6,label:"Subdomain Host"},{default:Z(()=>[ee(US,{content:L(t).subdomain_host,length:30},null,8,["content"])]),_:1})):Ye("",!0),ee(a,{label:"Max PoolCount"},{default:Z(()=>[se("span",null,Ae(L(t).max_pool_count),1)]),_:1}),ee(a,{label:"Max Ports Per Client"},{default:Z(()=>[se("span",null,Ae(L(t).max_ports_per_client),1)]),_:1}),L(t).allow_ports_str!=""?(K(),xe(a,{key:7,label:"Allow Ports"},{default:Z(()=>[ee(US,{content:L(t).allow_ports_str,length:30},null,8,["content"])]),_:1})):Ye("",!0),L(t).tls_only===!0?(K(),xe(a,{key:8,label:"TLS Only"},{default:Z(()=>[se("span",null,Ae(L(t).tls_only),1)]),_:1})):Ye("",!0),ee(a,{label:"HeartBeat Timeout"},{default:Z(()=>[se("span",null,Ae(L(t).heart_beat_timeout),1)]),_:1}),ee(a,{label:"Client Counts"},{default:Z(()=>[se("span",null,Ae(L(t).client_counts),1)]),_:1}),ee(a,{label:"Current Connections"},{default:Z(()=>[se("span",null,Ae(L(t).cur_conns),1)]),_:1}),ee(a,{label:"Proxy Counts"},{default:Z(()=>[se("span",null,Ae(L(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),ee(s,{md:12},{default:Z(()=>[vee,pee]),_:1})]),_:1})])}}});class zs{constructor(t){Ft(this,"name");Ft(this,"type");Ft(this,"encryption");Ft(this,"compression");Ft(this,"conns");Ft(this,"traffic_in");Ft(this,"traffic_out");Ft(this,"last_start_time");Ft(this,"last_close_time");Ft(this,"status");Ft(this,"client_version");Ft(this,"addr");Ft(this,"port");Ft(this,"custom_domains");Ft(this,"host_header_rewrite");Ft(this,"locations");Ft(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.client_version=t.client_version,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class mee extends zs{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class yee extends zs{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class _ee extends zs{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class bee extends zs{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class wee extends zs{constructor(t){super(t),this.type="stcp"}}class xee extends zs{constructor(t){super(t),this.type="sudp"}}const See=["id"],Cee=ue({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{dee(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{YM({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(K(),Se("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,See))}}),Tee=ue({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=EM,i=AM;return e.proxyType==="http"||e.proxyType==="https"?(K(),xe(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[se("span",null,Ae(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[se("span",null,Ae(e.row.type),1)]),_:1}),ee(n,{label:"Domains"},{default:Z(()=>[se("span",null,Ae(e.row.custom_domains),1)]),_:1}),ee(n,{label:"SubDomain"},{default:Z(()=>[se("span",null,Ae(e.row.subdomain),1)]),_:1}),ee(n,{label:"locations"},{default:Z(()=>[se("span",null,Ae(e.row.locations),1)]),_:1}),ee(n,{label:"HostRewrite"},{default:Z(()=>[se("span",null,Ae(e.row.host_header_rewrite),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[se("span",null,Ae(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[se("span",null,Ae(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[se("span",null,Ae(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[se("span",null,Ae(e.row.last_close_time),1)]),_:1})]),_:1})):(K(),xe(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[se("span",null,Ae(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[se("span",null,Ae(e.row.type),1)]),_:1}),ee(n,{label:"Addr"},{default:Z(()=>[se("span",null,Ae(e.row.addr),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[se("span",null,Ae(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[se("span",null,Ae(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[se("span",null,Ae(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[se("span",null,Ae(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),Ws=ue({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(o,s)=>ea.fileSize(o.traffic_in),r=(o,s)=>ea.fileSize(o.traffic_out),n=H(),i=H(),a=()=>{var o,s;(s=(o=L(i).popoverTraffic)==null?void 0:o.delayHide)==null||s.call(o)};return(o,s)=>{const l=Cee,u=K6,f=LH,c=lW,d=fz,h=sW,v=Rm("click-outside");return K(),Se("div",null,[ee(h,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:Z(()=>[ee(c,{type:"expand"},{default:Z(p=>[ee(u,{ref_key:"popoverTraffic",ref:i,"virtual-ref":n.value,placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click","virtual-triggering":""},{default:Z(()=>[ee(l,{proxy_name:p.row.name},null,8,["proxy_name"])]),_:2},1032,["virtual-ref"]),qt((K(),xe(f,{ref_key:"buttonTraffic",ref:n,type:"primary",size:"large",name:p.row.name,style:{"margin-bottom":"10px"}},{default:Z(()=>[kt("Traffic Statistics ")]),_:2},1032,["name"])),[[v,a]]),ee(Tee,{row:p.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),ee(c,{label:"Name",prop:"name",sortable:""}),ee(c,{label:"Port",prop:"port",sortable:""}),ee(c,{label:"Connections",prop:"conns",sortable:""}),ee(c,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),ee(c,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),ee(c,{label:"ClientVersion",prop:"client_version",sortable:""}),ee(c,{label:"Status",prop:"status",sortable:""},{default:Z(p=>[p.row.status==="online"?(K(),xe(d,{key:0,type:"success"},{default:Z(()=>[kt(Ae(p.row.status),1)]),_:2},1024)):(K(),xe(d,{key:1,type:"danger"},{default:Z(()=>[kt(Ae(p.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),Mee=ue({__name:"ProxiesTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new mee(i))})})(),(n,i)=>(K(),xe(Ws,{proxies:L(t),proxyType:"tcp"},null,8,["proxies"]))}}),Aee=ue({__name:"ProxiesUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new yee(i))})})(),(n,i)=>(K(),xe(Ws,{proxies:L(t),proxyType:"udp"},null,8,["proxies"]))}}),Eee=ue({__name:"ProxiesHTTP",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new _ee(s,n,i))})})})(),(n,i)=>(K(),xe(Ws,{proxies:L(t),proxyType:"http"},null,8,["proxies"]))}}),Pee=ue({__name:"ProxiesHTTPS",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new bee(s,n,i))})})})(),(n,i)=>(K(),xe(Ws,{proxies:L(t),proxyType:"https"},null,8,["proxies"]))}}),Lee=ue({__name:"ProxiesSTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new wee(i))})})(),(n,i)=>(K(),xe(Ws,{proxies:L(t),proxyType:"stcp"},null,8,["proxies"]))}}),Dee=ue({__name:"ProxiesSUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new xee(i))})})(),(n,i)=>(K(),xe(Ws,{proxies:L(t),proxyType:"sudp"},null,8,["proxies"]))}}),Iee=DV({history:qW(),routes:[{path:"/",name:"ServerOverview",component:gee},{path:"/proxies/tcp",name:"ProxiesTCP",component:Mee},{path:"/proxies/udp",name:"ProxiesUDP",component:Aee},{path:"/proxies/http",name:"ProxiesHTTP",component:Eee},{path:"/proxies/https",name:"ProxiesHTTPS",component:Pee},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Lee},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Dee}]}),wL=tR(EW);wL.use(Iee);wL.mount("#app")});export default Ree(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index 20e86af504d..0d4bf846a2b 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -4,7 +4,7 @@ frps dashboard - + diff --git a/pkg/config/server.go b/pkg/config/server.go index 040eaf65fe0..cdc29daa2a8 100644 --- a/pkg/config/server.go +++ b/pkg/config/server.go @@ -154,6 +154,8 @@ type ServerCommonConf struct { // If the length of this value is 0, all ports are allowed. By default, // this value is an empty set. AllowPorts map[int]struct{} `ini:"-" json:"-"` + // Original string. + AllowPortsStr string `ini:"-" json:"-"` // MaxPoolCount specifies the maximum pool size for each proxy. By default, // this value is 5. MaxPoolCount int64 `ini:"max_pool_count" json:"max_pool_count"` @@ -259,6 +261,7 @@ func UnmarshalServerConfFromIni(source interface{}) (ServerCommonConf, error) { for _, port := range allowPorts { common.AllowPorts[int(port)] = struct{}{} } + common.AllowPortsStr = allowPortStr } // plugin.xxx diff --git a/pkg/config/server_test.go b/pkg/config/server_test.go index 475a86b6f3e..c00f5970392 100644 --- a/pkg/config/server_test.go +++ b/pkg/config/server_test.go @@ -134,6 +134,7 @@ func Test_LoadServerCommonConf(t *testing.T) { 12: {}, 99: {}, }, + AllowPortsStr: "10-12,99", MaxPoolCount: 59, MaxPortsPerClient: 9, TLSOnly: true, diff --git a/server/control.go b/server/control.go index 3fcd3ae434a..e80e4242654 100644 --- a/server/control.go +++ b/server/control.go @@ -514,7 +514,7 @@ func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err // NewProxy will return a interface Proxy. // In fact it create different proxies by different proxy type, we just call run() here. - pxy, err := proxy.NewProxy(ctl.ctx, userInfo, ctl.rc, ctl.poolCount, ctl.GetWorkConn, pxyConf, ctl.serverCfg) + pxy, err := proxy.NewProxy(ctl.ctx, userInfo, ctl.rc, ctl.poolCount, ctl.GetWorkConn, pxyConf, ctl.serverCfg, ctl.loginMsg) if err != nil { return remoteAddr, err } diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 6f7ecfd793c..a7f078f6182 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -33,16 +33,20 @@ type GeneralResponse struct { } type serverInfoResp struct { - Version string `json:"version"` - BindPort int `json:"bind_port"` - BindUDPPort int `json:"bind_udp_port"` - VhostHTTPPort int `json:"vhost_http_port"` - VhostHTTPSPort int `json:"vhost_https_port"` - KCPBindPort int `json:"kcp_bind_port"` - SubdomainHost string `json:"subdomain_host"` - MaxPoolCount int64 `json:"max_pool_count"` - MaxPortsPerClient int64 `json:"max_ports_per_client"` - HeartBeatTimeout int64 `json:"heart_beat_timeout"` + Version string `json:"version"` + BindPort int `json:"bind_port"` + BindUDPPort int `json:"bind_udp_port"` + VhostHTTPPort int `json:"vhost_http_port"` + VhostHTTPSPort int `json:"vhost_https_port"` + TCPMuxHTTPConnectPort int `json:"tcpmux_httpconnect_port"` + KCPBindPort int `json:"kcp_bind_port"` + QUICBindPort int `json:"quic_bind_port"` + SubdomainHost string `json:"subdomain_host"` + MaxPoolCount int64 `json:"max_pool_count"` + MaxPortsPerClient int64 `json:"max_ports_per_client"` + HeartBeatTimeout int64 `json:"heart_beat_timeout"` + AllowPortsStr string `json:"allow_ports_str,omitempty"` + TLSOnly bool `json:"tls_only,omitempty"` TotalTrafficIn int64 `json:"total_traffic_in"` TotalTrafficOut int64 `json:"total_traffic_out"` @@ -70,16 +74,20 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { log.Info("Http request: [%s]", r.URL.Path) serverStats := mem.StatsCollector.GetServer() svrResp := serverInfoResp{ - Version: version.Full(), - BindPort: svr.cfg.BindPort, - BindUDPPort: svr.cfg.BindUDPPort, - VhostHTTPPort: svr.cfg.VhostHTTPPort, - VhostHTTPSPort: svr.cfg.VhostHTTPSPort, - KCPBindPort: svr.cfg.KCPBindPort, - SubdomainHost: svr.cfg.SubDomainHost, - MaxPoolCount: svr.cfg.MaxPoolCount, - MaxPortsPerClient: svr.cfg.MaxPortsPerClient, - HeartBeatTimeout: svr.cfg.HeartbeatTimeout, + Version: version.Full(), + BindPort: svr.cfg.BindPort, + BindUDPPort: svr.cfg.BindUDPPort, + VhostHTTPPort: svr.cfg.VhostHTTPPort, + VhostHTTPSPort: svr.cfg.VhostHTTPSPort, + TCPMuxHTTPConnectPort: svr.cfg.TCPMuxHTTPConnectPort, + KCPBindPort: svr.cfg.KCPBindPort, + QUICBindPort: svr.cfg.QUICBindPort, + SubdomainHost: svr.cfg.SubDomainHost, + MaxPoolCount: svr.cfg.MaxPoolCount, + MaxPortsPerClient: svr.cfg.MaxPortsPerClient, + HeartBeatTimeout: svr.cfg.HeartbeatTimeout, + AllowPortsStr: svr.cfg.AllowPortsStr, + TLSOnly: svr.cfg.TLSOnly, TotalTrafficIn: serverStats.TotalTrafficIn, TotalTrafficOut: serverStats.TotalTrafficOut, @@ -157,6 +165,7 @@ func getConfByType(proxyType string) interface{} { type ProxyStatsInfo struct { Name string `json:"name"` Conf interface{} `json:"conf"` + ClientVersion string `json:"client_version,omitempty"` TodayTrafficIn int64 `json:"today_traffic_in"` TodayTrafficOut int64 `json:"today_traffic_out"` CurConns int64 `json:"cur_conns"` @@ -208,6 +217,9 @@ func (svr *Service) getProxyStatsByType(proxyType string) (proxyInfos []*ProxySt continue } proxyInfo.Status = consts.Online + if pxy.GetLoginMsg() != nil { + proxyInfo.ClientVersion = pxy.GetLoginMsg().Version + } } else { proxyInfo.Status = consts.Offline } diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 0681370fd19..3c6fb1115dc 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -48,6 +48,7 @@ type Proxy interface { GetResourceController() *controller.ResourceController GetUserInfo() plugin.UserInfo GetLimiter() *rate.Limiter + GetLoginMsg() *msg.Login Close() } @@ -61,6 +62,7 @@ type BaseProxy struct { serverCfg config.ServerCommonConf limiter *rate.Limiter userInfo plugin.UserInfo + loginMsg *msg.Login mu sync.RWMutex xl *xlog.Logger @@ -87,6 +89,10 @@ func (pxy *BaseProxy) GetUserInfo() plugin.UserInfo { return pxy.userInfo } +func (pxy *BaseProxy) GetLoginMsg() *msg.Login { + return pxy.loginMsg +} + func (pxy *BaseProxy) Close() { xl := xlog.FromContextSafe(pxy.ctx) xl.Info("proxy closing") @@ -188,7 +194,7 @@ func (pxy *BaseProxy) startListenHandler(p Proxy, handler func(Proxy, net.Conn, } func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.ResourceController, poolCount int, - getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, + getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, loginMsg *msg.Login, ) (pxy Proxy, err error) { xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseInfo().ProxyName) @@ -209,6 +215,7 @@ func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.Reso xl: xl, ctx: xlog.NewContext(ctx, xl), userInfo: userInfo, + loginMsg: loginMsg, } switch cfg := pxyConf.(type) { case *config.TCPProxyConf: diff --git a/web/frps/components.d.ts b/web/frps/components.d.ts index 1180920cd83..7170e906f57 100644 --- a/web/frps/components.d.ts +++ b/web/frps/components.d.ts @@ -19,6 +19,8 @@ declare module '@vue/runtime-core' { ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTag: typeof import('element-plus/es')['ElTag'] + ElTooltip: typeof import('element-plus/es')['ElTooltip'] + LongSpan: typeof import('./src/components/LongSpan.vue')['default'] ProxiesHTTP: typeof import('./src/components/ProxiesHTTP.vue')['default'] ProxiesHTTPS: typeof import('./src/components/ProxiesHTTPS.vue')['default'] ProxiesSTCP: typeof import('./src/components/ProxiesSTCP.vue')['default'] diff --git a/web/frps/src/components/LongSpan.vue b/web/frps/src/components/LongSpan.vue new file mode 100644 index 00000000000..f0df3b242ac --- /dev/null +++ b/web/frps/src/components/LongSpan.vue @@ -0,0 +1,15 @@ + + + diff --git a/web/frps/src/components/ProxyView.vue b/web/frps/src/components/ProxyView.vue index 42facae6e58..ae1138014c7 100644 --- a/web/frps/src/components/ProxyView.vue +++ b/web/frps/src/components/ProxyView.vue @@ -50,7 +50,9 @@ sortable > - + + + diff --git a/web/frpc/src/main.ts b/web/frpc/src/main.ts index 566b736505f..636b05a6314 100644 --- a/web/frpc/src/main.ts +++ b/web/frpc/src/main.ts @@ -1,13 +1,13 @@ -import { createApp } from "vue"; -import "element-plus/dist/index.css"; -import "element-plus/theme-chalk/dark/css-vars.css"; -import App from "./App.vue"; -import router from "./router"; +import { createApp } from 'vue' +import 'element-plus/dist/index.css' +import 'element-plus/theme-chalk/dark/css-vars.css' +import App from './App.vue' +import router from './router' -import "./assets/dark.css"; +import './assets/dark.css' -const app = createApp(App); +const app = createApp(App) -app.use(router); +app.use(router) -app.mount("#app"); +app.mount('#app') diff --git a/web/frpc/src/router/index.ts b/web/frpc/src/router/index.ts index ea63b7126a7..7c42c258da2 100644 --- a/web/frpc/src/router/index.ts +++ b/web/frpc/src/router/index.ts @@ -1,21 +1,21 @@ -import { createRouter, createWebHashHistory } from "vue-router"; -import Overview from "../components/Overview.vue"; -import ClientConfigure from "../components/ClientConfigure.vue"; +import { createRouter, createWebHashHistory } from 'vue-router' +import Overview from '../components/Overview.vue' +import ClientConfigure from '../components/ClientConfigure.vue' const router = createRouter({ history: createWebHashHistory(), routes: [ { - path: "/", - name: "Overview", + path: '/', + name: 'Overview', component: Overview, }, { - path: "/configure", - name: "ClientConfigure", + path: '/configure', + name: 'ClientConfigure', component: ClientConfigure, }, ], -}); +}) -export default router; +export default router diff --git a/web/frpc/vite.config.ts b/web/frpc/vite.config.ts index 6c1e5bddd3e..656ab9ebf61 100644 --- a/web/frpc/vite.config.ts +++ b/web/frpc/vite.config.ts @@ -1,14 +1,14 @@ -import { fileURLToPath, URL } from "node:url"; +import { fileURLToPath, URL } from 'node:url' -import { defineConfig } from "vite"; -import vue from "@vitejs/plugin-vue"; -import AutoImport from "unplugin-auto-import/vite"; -import Components from "unplugin-vue-components/vite"; -import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' // https://vitejs.dev/config/ export default defineConfig({ - base: "", + base: '', plugins: [ vue(), AutoImport({ @@ -20,10 +20,10 @@ export default defineConfig({ ], resolve: { alias: { - "@": fileURLToPath(new URL("./src", import.meta.url)), + '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, build: { - assetsDir: "", + assetsDir: '', }, -}); +}) From 54eb704650e8c106d17aaacb93425bad8235b26a Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 27 Feb 2023 14:44:16 +0800 Subject: [PATCH 049/444] e2e: upgrade to ginkgo v2 (#3335) --- README.md | 76 ++++++++++---------- go.mod | 19 +++-- go.sum | 52 ++++---------- hack/run-e2e.sh | 4 +- test/e2e/basic/basic.go | 2 +- test/e2e/basic/client.go | 2 +- test/e2e/basic/client_server.go | 2 +- test/e2e/basic/cmd.go | 2 +- test/e2e/basic/config.go | 2 +- test/e2e/basic/http.go | 2 +- test/e2e/basic/server.go | 2 +- test/e2e/e2e.go | 13 ++-- test/e2e/e2e_test.go | 2 +- test/e2e/examples.go | 2 +- test/e2e/features/bandwidth_limit.go | 2 +- test/e2e/features/chaos.go | 2 +- test/e2e/features/group.go | 2 +- test/e2e/features/heartbeat.go | 2 +- test/e2e/features/monitor.go | 2 +- test/e2e/features/real_ip.go | 2 +- test/e2e/framework/framework.go | 8 +-- test/e2e/framework/ginkgowrapper/wrapper.go | 80 --------------------- test/e2e/framework/log.go | 76 ++------------------ test/e2e/framework/test_context.go | 8 --- test/e2e/plugin/client.go | 2 +- test/e2e/plugin/server.go | 2 +- 26 files changed, 100 insertions(+), 270 deletions(-) delete mode 100644 test/e2e/framework/ginkgowrapper/wrapper.go diff --git a/README.md b/README.md index 1c3fe788671..d156411693b 100644 --- a/README.md +++ b/README.md @@ -33,12 +33,12 @@ frp also offers a P2P connect mode. * [Development Status](#development-status) * [Architecture](#architecture) * [Example Usage](#example-usage) - * [Access your computer in LAN by SSH](#access-your-computer-in-lan-by-ssh) - * [Visit your web service in LAN by custom domains](#visit-your-web-service-in-lan-by-custom-domains) - * [Forward DNS query request](#forward-dns-query-request) - * [Forward Unix domain socket](#forward-unix-domain-socket) + * [Access your computer in a LAN network via SSH](#access-your-computer-in-a-lan-network-via-ssh) + * [Accessing Internal Web Services with Custom Domains in LAN](#accessing-internal-web-services-with-custom-domains-in-lan) + * [Forward DNS query requests](#forward-dns-query-requests) + * [Forward Unix Domain Socket](#forward-unix-domain-socket) * [Expose a simple HTTP file server](#expose-a-simple-http-file-server) - * [Enable HTTPS for local HTTP(S) service](#enable-https-for-local-https-service) + * [Enable HTTPS for a local HTTP(S) service](#enable-https-for-a-local-https-service) * [Expose your service privately](#expose-your-service-privately) * [P2P Mode](#p2p-mode) * [Features](#features) @@ -101,15 +101,15 @@ We will transition from version 0 to version 1 at the appropriate time and will ## Example Usage -Firstly, download the latest programs from [Release](https://github.com/fatedier/frp/releases) page according to your operating system and architecture. +To begin, download the latest program for your operating system and architecture from the [Release](https://github.com/fatedier/frp/releases) page. -Put `frps` and `frps.ini` onto your server A with public IP. +Next, place the `frps` binary and `frps.ini` configuration file on Server A, which has a public IP address. -Put `frpc` and `frpc.ini` onto your server B in LAN (that can't be connected from public Internet). +Finally, place the `frpc` binary and `frpc.ini` configuration file on Server B, which is located on a LAN that cannot be directly accessed from the public internet. -### Access your computer in LAN by SSH +### Access your computer in a LAN network via SSH -1. Modify `frps.ini` on server A and set the `bind_port` to be connected to frp clients: +1. Modify `frps.ini` on server A by setting the `bind_port` for frp clients to connect to: ```ini # frps.ini @@ -121,7 +121,7 @@ Put `frpc` and `frpc.ini` onto your server B in LAN (that can't be connected fro `./frps -c ./frps.ini` -3. On server B, modify `frpc.ini` to put in your `frps` server public IP as `server_addr` field: +3. Modify `frpc.ini` on server B and set the `server_addr` field to the public IP address of your frps server: ```ini # frpc.ini @@ -136,23 +136,23 @@ Put `frpc` and `frpc.ini` onto your server B in LAN (that can't be connected fro remote_port = 6000 ``` -Note that `local_port` (listened on client) and `remote_port` (exposed on server) are for traffic goes in/out the frp system, whereas `server_port` is used between frps. +Note that the `local_port` (listened on the client) and `remote_port` (exposed on the server) are used for traffic going in and out of the frp system, while the `server_port` is used for communication between frps and frpc. 4. Start `frpc` on server B: `./frpc -c ./frpc.ini` -5. From another machine, SSH to server B via server A like this (assuming that username is `test`): +5. To access server B from another machine through server A via SSH (assuming the username is `test`), use the following command: `ssh -oPort=6000 test@x.x.x.x` -### Visit your web service in LAN by custom domains +### Accessing Internal Web Services with Custom Domains in LAN -Sometimes we want to expose a local web service behind a NAT network to others for testing with your own domain name and unfortunately we can't resolve a domain name to a local IP. +Sometimes we need to expose a local web service behind a NAT network to others for testing purposes with our own domain name. -However, we can expose an HTTP(S) service using frp. +Unfortunately, we cannot resolve a domain name to a local IP. However, we can use frp to expose an HTTP(S) service. -1. Modify `frps.ini`, set the vhost HTTP port to 8080: +1. Modify `frps.ini` and set the HTTP port for vhost to 8080: ```ini # frps.ini @@ -165,7 +165,7 @@ However, we can expose an HTTP(S) service using frp. `./frps -c ./frps.ini` -3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. The `local_port` is the port of your web service: +3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Specify the `local_port` of your web service: ```ini # frpc.ini @@ -183,11 +183,11 @@ However, we can expose an HTTP(S) service using frp. `./frpc -c ./frpc.ini` -5. Resolve A record of `www.example.com` to the public IP of the remote frps server or CNAME record to your origin domain. +5. Map the A record of `www.example.com` to either the public IP of the remote frps server or a CNAME record pointing to your original domain. -6. Now visit your local web service using url `http://www.example.com:8080`. +6. Visit your local web service using url `http://www.example.com:8080`. -### Forward DNS query request +### Forward DNS query requests 1. Modify `frps.ini`: @@ -201,7 +201,7 @@ However, we can expose an HTTP(S) service using frp. `./frps -c ./frps.ini` -3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server, forward DNS query request to Google Public DNS server `8.8.8.8:53`: +3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Forward DNS query requests to the Google Public DNS server `8.8.8.8:53`: ```ini # frpc.ini @@ -220,17 +220,17 @@ However, we can expose an HTTP(S) service using frp. `./frpc -c ./frpc.ini` -5. Test DNS resolution using `dig` command: +5. Test DNS resolution using the `dig` command: `dig @x.x.x.x -p 6000 www.google.com` -### Forward Unix domain socket +### Forward Unix Domain Socket Expose a Unix domain socket (e.g. the Docker daemon socket) as TCP. -Configure `frps` same as above. +Configure `frps` as above. -1. Start `frpc` with configuration: +1. Start `frpc` with the following configuration: ```ini # frpc.ini @@ -245,17 +245,17 @@ Configure `frps` same as above. plugin_unix_path = /var/run/docker.sock ``` -2. Test: Get Docker version using `curl`: +2. Test the configuration by getting the docker version using `curl`: `curl http://x.x.x.x:6000/version` ### Expose a simple HTTP file server -Browser your files stored in the LAN, from public Internet. +Expose a simple HTTP file server to access files stored in the LAN from the public Internet. -Configure `frps` same as above. +Configure `frps` as described above, then: -1. Start `frpc` with configuration: +1. Start `frpc` with the following configuration: ```ini # frpc.ini @@ -273,13 +273,13 @@ Configure `frps` same as above. plugin_http_passwd = abc ``` -2. Visit `http://x.x.x.x:6000/static/` from your browser and specify correct user and password to view files in `/tmp/files` on the `frpc` machine. +2. Visit `http://x.x.x.x:6000/static/` from your browser and specify correct username and password to view files in `/tmp/files` on the `frpc` machine. -### Enable HTTPS for local HTTP(S) service +### Enable HTTPS for a local HTTP(S) service You may substitute `https2https` for the plugin, and point the `plugin_local_addr` to a HTTPS endpoint. -1. Start `frpc` with configuration: +1. Start `frpc` with the following configuration: ```ini # frpc.ini @@ -303,7 +303,7 @@ You may substitute `https2https` for the plugin, and point the `plugin_local_add ### Expose your service privately -Some services will be at risk if exposed directly to the public network. With **STCP** (secret TCP) mode, a preshared key is needed to access the service from another client. +To mitigate risks associated with exposing certain services directly to the public network, STCP (Secret TCP) mode requires a preshared key to be used for access to the service from other clients. Configure `frps` same as above. @@ -345,9 +345,9 @@ Configure `frps` same as above. ### P2P Mode -**xtcp** is designed for transmitting large amounts of data directly between clients. A frps server is still needed, as P2P here only refers the actual data transmission. +**xtcp** is designed to transmit large amounts of data directly between clients. A frps server is still needed, as P2P here only refers to the actual data transmission. -Note it can't penetrate all types of NAT devices. You might want to fallback to **stcp** if **xtcp** doesn't work. +Note that it may not work with all types of NAT devices. You might want to fallback to stcp if xtcp doesn't work. 1. In `frps.ini` configure a UDP port for xtcp: @@ -356,7 +356,7 @@ Note it can't penetrate all types of NAT devices. You might want to fallback to bind_udp_port = 7001 ``` -2. Start `frpc` on machine B, expose the SSH port. Note that `remote_port` field is removed: +2. Start `frpc` on machine B, and expose the SSH port. Note that the `remote_port` field is removed: ```ini # frpc.ini @@ -371,7 +371,7 @@ Note it can't penetrate all types of NAT devices. You might want to fallback to local_port = 22 ``` -3. Start another `frpc` (typically on another machine C) with the config to connect to SSH using P2P mode: +3. Start another `frpc` (typically on another machine C) with the configuration to connect to SSH using P2P mode: ```ini # frpc.ini diff --git a/go.mod b/go.mod index 6c261c2ef8b..41773bd83b4 100644 --- a/go.mod +++ b/go.mod @@ -13,15 +13,15 @@ require ( github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 github.com/hashicorp/yamux v0.1.1 - github.com/onsi/ginkgo v1.16.4 - github.com/onsi/gomega v1.23.0 + github.com/onsi/ginkgo/v2 v2.8.3 + github.com/onsi/gomega v1.27.0 github.com/pires/go-proxyproto v0.6.2 github.com/prometheus/client_golang v1.13.0 github.com/quic-go/quic-go v0.32.0 github.com/rodaine/table v1.0.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.8.0 - golang.org/x/net v0.4.0 + golang.org/x/net v0.7.0 golang.org/x/oauth2 v0.3.0 golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 gopkg.in/ini.v1 v1.67.0 @@ -34,7 +34,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/go-logr/logr v1.2.3 // indirect github.com/go-playground/locales v0.14.0 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect @@ -48,8 +48,6 @@ require ( github.com/klauspost/reedsolomon v1.9.15 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/nxadm/tail v1.4.8 // indirect - github.com/onsi/ginkgo/v2 v2.4.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect @@ -64,14 +62,13 @@ require ( github.com/tjfoc/gmsm v1.4.1 // indirect golang.org/x/crypto v0.4.0 // indirect golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect - golang.org/x/mod v0.6.0 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect - golang.org/x/tools v0.2.0 // indirect + golang.org/x/mod v0.8.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect + golang.org/x/tools v0.6.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect - gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect ) diff --git a/go.sum b/go.sum index 500e06b329e..9925c935bb0 100644 --- a/go.sum +++ b/go.sum @@ -127,8 +127,6 @@ github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1: github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -142,6 +140,7 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= @@ -273,7 +272,6 @@ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= @@ -331,20 +329,11 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.4.0 h1:+Ig9nvqgS5OBSACXNk15PLdp0U9XPYROt9CFzVdFGIs= -github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys= -github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= +github.com/onsi/ginkgo/v2 v2.8.3 h1:RpbK1G8nWPNaCVFBWsOGnEQQGgASi6b8fxcWBvDYjxQ= +github.com/onsi/ginkgo/v2 v2.8.3/go.mod h1:6OaUA8BCi0aZfmzYT/q9AacwTzDpNbxILUT+TlBq6MY= +github.com/onsi/gomega v1.27.0 h1:QLidEla4bXUuZVFa4KX6JHCsuGgbi85LC/pCHrt/O08= +github.com/onsi/gomega v1.27.0/go.mod h1:i189pavgK95OSIipFBa74gC2V4qrQuvjuyGEr3GmbXA= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8= @@ -510,11 +499,10 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -540,7 +528,6 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -565,8 +552,8 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -605,7 +592,6 @@ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -618,10 +604,7 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -645,7 +628,6 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -678,8 +660,8 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -691,8 +673,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -745,7 +727,6 @@ golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82u golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -753,8 +734,8 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -942,15 +923,12 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/hack/run-e2e.sh b/hack/run-e2e.sh index d8cfb052b32..ab59c11ae7c 100755 --- a/hack/run-e2e.sh +++ b/hack/run-e2e.sh @@ -5,7 +5,7 @@ ROOT=$(unset CDPATH && cd $(dirname "${BASH_SOURCE[0]}")/.. && pwd) which ginkgo &> /dev/null if [ $? -ne 0 ]; then echo "ginkgo not found, try to install..." - go install github.com/onsi/ginkgo/ginkgo@v1.16.5 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.8.3 fi debug=false @@ -17,4 +17,4 @@ if [ x${LOG_LEVEL} != x"" ]; then logLevel=${LOG_LEVEL} fi -ginkgo -nodes=8 -slowSpecThreshold=20 ${ROOT}/test/e2e -- -frpc-path=${ROOT}/bin/frpc -frps-path=${ROOT}/bin/frps -log-level=${logLevel} -debug=${debug} +ginkgo -nodes=8 --poll-progress-after=20s ${ROOT}/test/e2e -- -frpc-path=${ROOT}/bin/frpc -frps-path=${ROOT}/bin/frps -log-level=${logLevel} -debug=${debug} diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index 1f1b20072f2..7fd74e9078f 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" diff --git a/test/e2e/basic/client.go b/test/e2e/basic/client.go index 10489d494d3..95561a348b8 100644 --- a/test/e2e/basic/client.go +++ b/test/e2e/basic/client.go @@ -6,7 +6,7 @@ import ( "strings" "time" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" diff --git a/test/e2e/basic/client_server.go b/test/e2e/basic/client_server.go index 32a6bbe13da..65ba2baafce 100644 --- a/test/e2e/basic/client_server.go +++ b/test/e2e/basic/client_server.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" diff --git a/test/e2e/basic/cmd.go b/test/e2e/basic/cmd.go index bf8f2467cbe..89f2435dcf8 100644 --- a/test/e2e/basic/cmd.go +++ b/test/e2e/basic/cmd.go @@ -5,7 +5,7 @@ import ( "strconv" "strings" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/pkg/request" diff --git a/test/e2e/basic/config.go b/test/e2e/basic/config.go index 3ea07b306b1..acee2c560ec 100644 --- a/test/e2e/basic/config.go +++ b/test/e2e/basic/config.go @@ -3,7 +3,7 @@ package basic import ( "fmt" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" diff --git a/test/e2e/basic/http.go b/test/e2e/basic/http.go index 0de24abb80e..f8b173879e3 100644 --- a/test/e2e/basic/http.go +++ b/test/e2e/basic/http.go @@ -7,7 +7,7 @@ import ( "strconv" "github.com/gorilla/websocket" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" diff --git a/test/e2e/basic/server.go b/test/e2e/basic/server.go index a06f6d13d00..4ae82515523 100644 --- a/test/e2e/basic/server.go +++ b/test/e2e/basic/server.go @@ -5,7 +5,7 @@ import ( "net" "strconv" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 6b0d3e01c7d..30887d2a7dc 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -3,8 +3,7 @@ package e2e import ( "testing" - "github.com/onsi/ginkgo" - "github.com/onsi/ginkgo/config" + "github.com/onsi/ginkgo/v2" "github.com/onsi/gomega" "github.com/fatedier/frp/pkg/util/log" @@ -33,9 +32,15 @@ var _ = ginkgo.SynchronizedAfterSuite(func() { func RunE2ETests(t *testing.T) { gomega.RegisterFailHandler(framework.Fail) + suiteConfig, reporterConfig := ginkgo.GinkgoConfiguration() + // Turn on EmitSpecProgress to get spec progress (especially on interrupt) + suiteConfig.EmitSpecProgress = true + // Randomize specs as well as suites + suiteConfig.RandomizeAllSpecs = true + log.Info("Starting e2e run %q on Ginkgo node %d of total %d", - framework.RunID, config.GinkgoConfig.ParallelNode, config.GinkgoConfig.ParallelTotal) - ginkgo.RunSpecs(t, "frp e2e suite") + framework.RunID, suiteConfig.ParallelProcess, suiteConfig.ParallelTotal) + ginkgo.RunSpecs(t, "frp e2e suite", suiteConfig, reporterConfig) } // setupSuite is the boilerplate that can be used to setup ginkgo test suites, on the SynchronizedBeforeSuite step. diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index d1cc6396895..f809288e1ca 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -6,7 +6,7 @@ import ( "os" "testing" - _ "github.com/onsi/ginkgo" + _ "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/pkg/util/log" // test source diff --git a/test/e2e/examples.go b/test/e2e/examples.go index 26eca20b5a9..9accdf9cdf1 100644 --- a/test/e2e/examples.go +++ b/test/e2e/examples.go @@ -3,7 +3,7 @@ package e2e import ( "fmt" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" diff --git a/test/e2e/features/bandwidth_limit.go b/test/e2e/features/bandwidth_limit.go index 238055a8b4a..96d236462d6 100644 --- a/test/e2e/features/bandwidth_limit.go +++ b/test/e2e/features/bandwidth_limit.go @@ -5,7 +5,7 @@ import ( "strings" "time" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/test/e2e/framework" diff --git a/test/e2e/features/chaos.go b/test/e2e/features/chaos.go index bae6eb7de44..9fccc4cb5ce 100644 --- a/test/e2e/features/chaos.go +++ b/test/e2e/features/chaos.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" ) diff --git a/test/e2e/features/group.go b/test/e2e/features/group.go index f36e75b26b4..8ec6112549e 100644 --- a/test/e2e/features/group.go +++ b/test/e2e/features/group.go @@ -6,7 +6,7 @@ import ( "sync" "time" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" diff --git a/test/e2e/features/heartbeat.go b/test/e2e/features/heartbeat.go index 3ffbd83466b..09bf0e6afaf 100644 --- a/test/e2e/features/heartbeat.go +++ b/test/e2e/features/heartbeat.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/framework" ) diff --git a/test/e2e/features/monitor.go b/test/e2e/features/monitor.go index bf074e66041..74996d2cad5 100644 --- a/test/e2e/features/monitor.go +++ b/test/e2e/features/monitor.go @@ -5,7 +5,7 @@ import ( "strings" "time" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/test/e2e/framework" diff --git a/test/e2e/features/real_ip.go b/test/e2e/features/real_ip.go index 3a2a7e40bfd..31f02fe2db3 100644 --- a/test/e2e/features/real_ip.go +++ b/test/e2e/features/real_ip.go @@ -6,7 +6,7 @@ import ( "net" "net/http" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" pp "github.com/pires/go-proxyproto" "github.com/fatedier/frp/pkg/util/log" diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index c22c6af75f6..b2f65f2f3d3 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -9,8 +9,7 @@ import ( "strings" "text/template" - "github.com/onsi/ginkgo" - "github.com/onsi/ginkgo/config" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/test/e2e/mock/server" "github.com/fatedier/frp/test/e2e/pkg/port" @@ -63,9 +62,10 @@ type Framework struct { } func NewDefaultFramework() *Framework { + suiteConfig, _ := ginkgo.GinkgoConfiguration() options := Options{ - TotalParallelNode: config.GinkgoConfig.ParallelTotal, - CurrentNodeIndex: config.GinkgoConfig.ParallelNode, + TotalParallelNode: suiteConfig.ParallelTotal, + CurrentNodeIndex: suiteConfig.ParallelProcess, FromPortIndex: 20000, ToPortIndex: 50000, } diff --git a/test/e2e/framework/ginkgowrapper/wrapper.go b/test/e2e/framework/ginkgowrapper/wrapper.go deleted file mode 100644 index 01ccf4d9914..00000000000 --- a/test/e2e/framework/ginkgowrapper/wrapper.go +++ /dev/null @@ -1,80 +0,0 @@ -// Package ginkgowrapper wraps Ginkgo Fail and Skip functions to panic -// with structured data instead of a constant string. -package ginkgowrapper - -import ( - "bufio" - "bytes" - "regexp" - "runtime" - "runtime/debug" - "strings" - - "github.com/onsi/ginkgo" -) - -// FailurePanic is the value that will be panicked from Fail. -type FailurePanic struct { - Message string // The failure message passed to Fail - Filename string // The filename that is the source of the failure - Line int // The line number of the filename that is the source of the failure - FullStackTrace string // A full stack trace starting at the source of the failure -} - -// String makes FailurePanic look like the old Ginkgo panic when printed. -func (FailurePanic) String() string { return ginkgo.GINKGO_PANIC } - -// Fail wraps ginkgo.Fail so that it panics with more useful -// information about the failure. This function will panic with a -// FailurePanic. -func Fail(message string, callerSkip ...int) { - skip := 1 - if len(callerSkip) > 0 { - skip += callerSkip[0] - } - - _, file, line, _ := runtime.Caller(skip) - fp := FailurePanic{ - Message: message, - Filename: file, - Line: line, - FullStackTrace: pruneStack(skip), - } - - defer func() { - e := recover() - if e != nil { - panic(fp) - } - }() - - ginkgo.Fail(message, skip) -} - -// ginkgo adds a lot of test running infrastructure to the stack, so -// we filter those out -var stackSkipPattern = regexp.MustCompile(`onsi/ginkgo`) - -func pruneStack(skip int) string { - skip += 2 // one for pruneStack and one for debug.Stack - stack := debug.Stack() - scanner := bufio.NewScanner(bytes.NewBuffer(stack)) - var prunedStack []string - - // skip the top of the stack - for i := 0; i < 2*skip+1; i++ { - scanner.Scan() - } - - for scanner.Scan() { - if stackSkipPattern.Match(scanner.Bytes()) { - scanner.Scan() // these come in pairs - } else { - prunedStack = append(prunedStack, scanner.Text()) - scanner.Scan() // these come in pairs - prunedStack = append(prunedStack, scanner.Text()) - } - } - - return strings.Join(prunedStack, "\n") -} diff --git a/test/e2e/framework/log.go b/test/e2e/framework/log.go index 34ba2936b36..3cd990632ba 100644 --- a/test/e2e/framework/log.go +++ b/test/e2e/framework/log.go @@ -1,15 +1,10 @@ package framework import ( - "bytes" "fmt" - "regexp" - "runtime/debug" "time" - "github.com/onsi/ginkgo" - - e2eginkgowrapper "github.com/fatedier/frp/test/e2e/framework/ginkgowrapper" + "github.com/onsi/ginkgo/v2" ) func nowStamp() string { @@ -25,71 +20,14 @@ func Logf(format string, args ...interface{}) { log("INFO", format, args...) } -// Failf logs the fail info, including a stack trace. +// Failf logs the fail info, including a stack trace starts with its direct caller +// (for example, for call chain f -> g -> Failf("foo", ...) error would be logged for "g"). func Failf(format string, args ...interface{}) { - FailfWithOffset(1, format, args...) -} - -// FailfWithOffset calls "Fail" and logs the error with a stack trace that starts at "offset" levels above its caller -// (for example, for call chain f -> g -> FailfWithOffset(1, ...) error would be logged for "f"). -func FailfWithOffset(offset int, format string, args ...interface{}) { msg := fmt.Sprintf(format, args...) - skip := offset + 1 - log("FAIL", "%s\n\nFull Stack Trace\n%s", msg, PrunedStack(skip)) - e2eginkgowrapper.Fail(nowStamp()+": "+msg, skip) -} - -// Fail is a replacement for ginkgo.Fail which logs the problem as it occurs -// together with a stack trace and then calls ginkgowrapper.Fail. -func Fail(msg string, callerSkip ...int) { skip := 1 - if len(callerSkip) > 0 { - skip += callerSkip[0] - } - log("FAIL", "%s\n\nFull Stack Trace\n%s", msg, PrunedStack(skip)) - e2eginkgowrapper.Fail(nowStamp()+": "+msg, skip) + ginkgo.Fail(msg, skip) + panic("unreachable") } -var codeFilterRE = regexp.MustCompile(`/github.com/onsi/ginkgo/`) - -// PrunedStack is a wrapper around debug.Stack() that removes information -// about the current goroutine and optionally skips some of the initial stack entries. -// With skip == 0, the returned stack will start with the caller of PruneStack. -// From the remaining entries it automatically filters out useless ones like -// entries coming from Ginkgo. -// -// This is a modified copy of PruneStack in -// https://github.com/onsi/ginkgo/blob/f90f37d87fa6b1dd9625e2b1e83c23ffae3de228/internal/codelocation/code_location.go#L25: -// - simplified API and thus renamed (calls debug.Stack() instead of taking a parameter) -// - source code filtering updated to be specific to Kubernetes -// - optimized to use bytes and in-place slice filtering from -// https://github.com/golang/go/wiki/SliceTricks#filter-in-place -func PrunedStack(skip int) []byte { - fullStackTrace := debug.Stack() - stack := bytes.Split(fullStackTrace, []byte("\n")) - // Ensure that the even entries are the method names and the - // odd entries the source code information. - if len(stack) > 0 && bytes.HasPrefix(stack[0], []byte("goroutine ")) { - // Ignore "goroutine 29 [running]:" line. - stack = stack[1:] - } - // The "+2" is for skipping over: - // - runtime/debug.Stack() - // - PrunedStack() - skip += 2 - if len(stack) > 2*skip { - stack = stack[2*skip:] - } - n := 0 - for i := 0; i < len(stack)/2; i++ { - // We filter out based on the source code file name. - if !codeFilterRE.Match(stack[i*2+1]) { - stack[n] = stack[i*2] - stack[n+1] = stack[i*2+1] - n += 2 - } - } - stack = stack[:n] - - return bytes.Join(stack, []byte("\n")) -} +// Fail is an alias for ginkgo.Fail. +var Fail = ginkgo.Fail diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 42a66445dd9..38f0fb25782 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -4,8 +4,6 @@ import ( "flag" "fmt" "os" - - "github.com/onsi/ginkgo/config" ) type TestContextType struct { @@ -25,12 +23,6 @@ var TestContext TestContextType // test-specific flags. However, those settings then get added // regardless whether the test is actually in the test suite. func RegisterCommonFlags(flags *flag.FlagSet) { - // Turn on EmitSpecProgress to get spec progress (especially on interrupt) - config.GinkgoConfig.EmitSpecProgress = true - - // Randomize specs as well as suites - config.GinkgoConfig.RandomizeAllSpecs = true - flags.StringVar(&TestContext.FRPClientPath, "frpc-path", "../../bin/frpc", "The frp client binary to use.") flags.StringVar(&TestContext.FRPServerPath, "frps-path", "../../bin/frps", "The frp server binary to use.") flags.StringVar(&TestContext.LogLevel, "log-level", "debug", "Log level.") diff --git a/test/e2e/plugin/client.go b/test/e2e/plugin/client.go index 081c88ff541..3046b900c93 100644 --- a/test/e2e/plugin/client.go +++ b/test/e2e/plugin/client.go @@ -5,7 +5,7 @@ import ( "fmt" "strconv" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" diff --git a/test/e2e/plugin/server.go b/test/e2e/plugin/server.go index e4619573a7e..955e3b5477f 100644 --- a/test/e2e/plugin/server.go +++ b/test/e2e/plugin/server.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/onsi/ginkgo" + "github.com/onsi/ginkgo/v2" plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/pkg/transport" From 862b1642bafe20c0429db87cf59fbb159b463000 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 7 Mar 2023 19:53:32 +0800 Subject: [PATCH 050/444] tcpmux: support authentication (#3345) --- pkg/config/proxy.go | 11 +- pkg/util/tcpmux/httpconnect.go | 41 +++--- pkg/util/vhost/https.go | 5 +- pkg/util/vhost/resource.go | 14 -- pkg/util/vhost/vhost.go | 75 ++++++----- server/group/tcpmux.go | 9 +- server/proxy/tcpmux.go | 11 +- test/e2e/basic/tcpmux.go | 218 ++++++++++++++++++++++++++++++++ test/e2e/framework/process.go | 2 +- test/e2e/pkg/request/request.go | 5 +- test/e2e/pkg/rpc/rpc.go | 4 + 11 files changed, 324 insertions(+), 71 deletions(-) create mode 100644 test/e2e/basic/tcpmux.go diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index 19add6eba96..de4953ca40b 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -187,6 +187,8 @@ type TCPProxyConf struct { type TCPMuxProxyConf struct { BaseProxyConf `ini:",extends"` DomainConf `ini:",extends"` + HTTPUser string `ini:"http_user" json:"http_user,omitempty"` + HTTPPwd string `ini:"http_pwd" json:"http_pwd,omitempty"` RouteByHTTPUser string `ini:"route_by_http_user" json:"route_by_http_user"` Multiplexer string `ini:"multiplexer"` @@ -607,7 +609,10 @@ func (cfg *TCPMuxProxyConf) Compare(cmp ProxyConf) bool { return false } - if cfg.Multiplexer != cmpConf.Multiplexer || cfg.RouteByHTTPUser != cmpConf.RouteByHTTPUser { + if cfg.Multiplexer != cmpConf.Multiplexer || + cfg.HTTPUser != cmpConf.HTTPUser || + cfg.HTTPPwd != cmpConf.HTTPPwd || + cfg.RouteByHTTPUser != cmpConf.RouteByHTTPUser { return false } @@ -632,6 +637,8 @@ func (cfg *TCPMuxProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { cfg.CustomDomains = pMsg.CustomDomains cfg.SubDomain = pMsg.SubDomain cfg.Multiplexer = pMsg.Multiplexer + cfg.HTTPUser = pMsg.HTTPUser + cfg.HTTPPwd = pMsg.HTTPPwd cfg.RouteByHTTPUser = pMsg.RouteByHTTPUser } @@ -642,6 +649,8 @@ func (cfg *TCPMuxProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.CustomDomains = cfg.CustomDomains pMsg.SubDomain = cfg.SubDomain pMsg.Multiplexer = cfg.Multiplexer + pMsg.HTTPUser = cfg.HTTPUser + pMsg.HTTPPwd = cfg.HTTPPwd pMsg.RouteByHTTPUser = cfg.RouteByHTTPUser } diff --git a/pkg/util/tcpmux/httpconnect.go b/pkg/util/tcpmux/httpconnect.go index e94ff4b2bb2..970897a9564 100644 --- a/pkg/util/tcpmux/httpconnect.go +++ b/pkg/util/tcpmux/httpconnect.go @@ -31,18 +31,21 @@ import ( type HTTPConnectTCPMuxer struct { *vhost.Muxer - passthrough bool - authRequired bool // Not supported until we really need this. + // If passthrough is set to true, the CONNECT request will be forwarded to the backend service. + // Otherwise, it will return an OK response to the client and forward the remaining content to the backend service. + passthrough bool } func NewHTTPConnectTCPMuxer(listener net.Listener, passthrough bool, timeout time.Duration) (*HTTPConnectTCPMuxer, error) { - ret := &HTTPConnectTCPMuxer{passthrough: passthrough, authRequired: false} - mux, err := vhost.NewMuxer(listener, ret.getHostFromHTTPConnect, nil, ret.sendConnectResponse, nil, timeout) + ret := &HTTPConnectTCPMuxer{passthrough: passthrough} + mux, err := vhost.NewMuxer(listener, ret.getHostFromHTTPConnect, timeout) + mux.SetCheckAuthFunc(ret.auth). + SetSuccessHookFunc(ret.sendConnectResponse) ret.Muxer = mux return ret, err } -func (muxer *HTTPConnectTCPMuxer) readHTTPConnectRequest(rd io.Reader) (host string, httpUser string, err error) { +func (muxer *HTTPConnectTCPMuxer) readHTTPConnectRequest(rd io.Reader) (host, httpUser, httpPwd string, err error) { bufioReader := bufio.NewReader(rd) req, err := http.ReadRequest(bufioReader) @@ -58,7 +61,7 @@ func (muxer *HTTPConnectTCPMuxer) readHTTPConnectRequest(rd io.Reader) (host str host, _ = util.CanonicalHost(req.Host) proxyAuth := req.Header.Get("Proxy-Authorization") if proxyAuth != "" { - httpUser, _, _ = util.ParseBasicAuth(proxyAuth) + httpUser, httpPwd, _ = util.ParseBasicAuth(proxyAuth) } return } @@ -74,11 +77,26 @@ func (muxer *HTTPConnectTCPMuxer) sendConnectResponse(c net.Conn, reqInfo map[st return res.Write(c) } +func (muxer *HTTPConnectTCPMuxer) auth(c net.Conn, username, password string, reqInfo map[string]string) (bool, error) { + reqUsername := reqInfo["HTTPUser"] + reqPassword := reqInfo["HTTPPwd"] + if username == reqUsername && password == reqPassword { + return true, nil + } + + resp := util.ProxyUnauthorizedResponse() + if resp.Body != nil { + defer resp.Body.Close() + } + _ = resp.Write(c) + return false, nil +} + func (muxer *HTTPConnectTCPMuxer) getHostFromHTTPConnect(c net.Conn) (net.Conn, map[string]string, error) { reqInfoMap := make(map[string]string, 0) sc, rd := gnet.NewSharedConn(c) - host, httpUser, err := muxer.readHTTPConnectRequest(rd) + host, httpUser, httpPwd, err := muxer.readHTTPConnectRequest(rd) if err != nil { return nil, reqInfoMap, err } @@ -86,18 +104,11 @@ func (muxer *HTTPConnectTCPMuxer) getHostFromHTTPConnect(c net.Conn) (net.Conn, reqInfoMap["Host"] = host reqInfoMap["Scheme"] = "tcp" reqInfoMap["HTTPUser"] = httpUser + reqInfoMap["HTTPPwd"] = httpPwd outConn := c if muxer.passthrough { outConn = sc - if muxer.authRequired && httpUser == "" { - resp := util.ProxyUnauthorizedResponse() - if resp.Body != nil { - defer resp.Body.Close() - } - _ = resp.Write(c) - outConn = c - } } return outConn, reqInfoMap, nil } diff --git a/pkg/util/vhost/https.go b/pkg/util/vhost/https.go index dd20739ea27..2e94b4a291d 100644 --- a/pkg/util/vhost/https.go +++ b/pkg/util/vhost/https.go @@ -28,7 +28,10 @@ type HTTPSMuxer struct { } func NewHTTPSMuxer(listener net.Listener, timeout time.Duration) (*HTTPSMuxer, error) { - mux, err := NewMuxer(listener, GetHTTPSHostname, nil, nil, nil, timeout) + mux, err := NewMuxer(listener, GetHTTPSHostname, timeout) + if err != nil { + return nil, err + } return &HTTPSMuxer{mux}, err } diff --git a/pkg/util/vhost/resource.go b/pkg/util/vhost/resource.go index 65bdbcb6288..e09edf21ef7 100644 --- a/pkg/util/vhost/resource.go +++ b/pkg/util/vhost/resource.go @@ -85,17 +85,3 @@ func notFoundResponse() *http.Response { } return res } - -func noAuthResponse() *http.Response { - header := make(map[string][]string) - header["WWW-Authenticate"] = []string{`Basic realm="Restricted"`} - res := &http.Response{ - Status: "401 Not authorized", - StatusCode: 401, - Proto: "HTTP/1.1", - ProtoMajor: 1, - ProtoMinor: 1, - Header: header, - } - return res -} diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index 651d9607221..acb9cb18ebd 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -43,43 +43,55 @@ type RequestRouteInfo struct { type ( muxFunc func(net.Conn) (net.Conn, map[string]string, error) - httpAuthFunc func(net.Conn, string, string, string) (bool, error) + authFunc func(conn net.Conn, username, password string, reqInfoMap map[string]string) (bool, error) hostRewriteFunc func(net.Conn, string) (net.Conn, error) - successFunc func(net.Conn, map[string]string) error + successHookFunc func(net.Conn, map[string]string) error ) -// Muxer is only used for https and tcpmux proxy. +// Muxer is a functional component used for https and tcpmux proxies. +// It accepts connections and extracts vhost information from the beginning of the connection data. +// It then routes the connection to its appropriate listener. type Muxer struct { - listener net.Listener - timeout time.Duration + listener net.Listener + timeout time.Duration + vhostFunc muxFunc - authFunc httpAuthFunc - successFunc successFunc - rewriteFunc hostRewriteFunc + checkAuth authFunc + successHook successHookFunc + rewriteHost hostRewriteFunc registryRouter *Routers } func NewMuxer( listener net.Listener, vhostFunc muxFunc, - authFunc httpAuthFunc, - successFunc successFunc, - rewriteFunc hostRewriteFunc, timeout time.Duration, ) (mux *Muxer, err error) { mux = &Muxer{ listener: listener, timeout: timeout, vhostFunc: vhostFunc, - authFunc: authFunc, - successFunc: successFunc, - rewriteFunc: rewriteFunc, registryRouter: NewRouters(), } go mux.run() return mux, nil } +func (v *Muxer) SetCheckAuthFunc(f authFunc) *Muxer { + v.checkAuth = f + return v +} + +func (v *Muxer) SetSuccessHookFunc(f successHookFunc) *Muxer { + v.successHook = f + return v +} + +func (v *Muxer) SetRewriteHostFunc(f hostRewriteFunc) *Muxer { + v.rewriteHost = f + return v +} + type ChooseEndpointFunc func() (string, error) type CreateConnFunc func(remoteAddr string) (net.Conn, error) @@ -101,7 +113,7 @@ type RouteConfig struct { CreateConnByEndpointFn CreateConnByEndpointFunc } -// listen for a new domain name, if rewriteHost is not empty and rewriteFunc is not nil +// listen for a new domain name, if rewriteHost is not empty and rewriteHost func is not nil, // then rewrite the host header to rewriteHost func (v *Muxer) Listen(ctx context.Context, cfg *RouteConfig) (l *Listener, err error) { l = &Listener{ @@ -109,8 +121,8 @@ func (v *Muxer) Listen(ctx context.Context, cfg *RouteConfig) (l *Listener, err location: cfg.Location, routeByHTTPUser: cfg.RouteByHTTPUser, rewriteHost: cfg.RewriteHost, - userName: cfg.Username, - passWord: cfg.Password, + username: cfg.Username, + password: cfg.Password, mux: v, accept: make(chan net.Conn), ctx: ctx, @@ -205,25 +217,20 @@ func (v *Muxer) handle(c net.Conn) { } xl := xlog.FromContextSafe(l.ctx) - if v.successFunc != nil { - if err := v.successFunc(c, reqInfoMap); err != nil { + if v.successHook != nil { + if err := v.successHook(c, reqInfoMap); err != nil { xl.Info("success func failure on vhost connection: %v", err) _ = c.Close() return } } - // if authFunc is exist and username/password is set + // if checkAuth func is exist and username/password is set // then verify user access - if l.mux.authFunc != nil && l.userName != "" && l.passWord != "" { - bAccess, err := l.mux.authFunc(c, l.userName, l.passWord, reqInfoMap["Authorization"]) - if !bAccess || err != nil { - xl.Debug("check http Authorization failed") - res := noAuthResponse() - if res.Body != nil { - defer res.Body.Close() - } - _ = res.Write(c) + if l.mux.checkAuth != nil && l.username != "" { + ok, err := l.mux.checkAuth(c, l.username, l.password, reqInfoMap) + if !ok || err != nil { + xl.Debug("auth failed for user: %s", l.username) _ = c.Close() return } @@ -249,8 +256,8 @@ type Listener struct { location string routeByHTTPUser string rewriteHost string - userName string - passWord string + username string + password string mux *Muxer // for closing Muxer accept chan net.Conn ctx context.Context @@ -263,11 +270,11 @@ func (l *Listener) Accept() (net.Conn, error) { return nil, fmt.Errorf("Listener closed") } - // if rewriteFunc is exist + // if rewriteHost func is exist // rewrite http requests with a modified host header // if l.rewriteHost is empty, nothing to do - if l.mux.rewriteFunc != nil { - sConn, err := l.mux.rewriteFunc(conn, l.rewriteHost) + if l.mux.rewriteHost != nil { + sConn, err := l.mux.rewriteHost(conn, l.rewriteHost) if err != nil { xl.Warn("host header rewrite failed: %v", err) return nil, fmt.Errorf("host header rewrite failed") diff --git a/server/group/tcpmux.go b/server/group/tcpmux.go index 2da85cee4fe..0d9790eb88f 100644 --- a/server/group/tcpmux.go +++ b/server/group/tcpmux.go @@ -81,6 +81,8 @@ type TCPMuxGroup struct { groupKey string domain string routeByHTTPUser string + username string + password string acceptCh chan net.Conn tcpMuxLn net.Listener @@ -120,6 +122,8 @@ func (tmg *TCPMuxGroup) HTTPConnectListen( tmg.groupKey = groupKey tmg.domain = routeConfig.Domain tmg.routeByHTTPUser = routeConfig.RouteByHTTPUser + tmg.username = routeConfig.Username + tmg.password = routeConfig.Password tmg.tcpMuxLn = tcpMuxLn tmg.lns = append(tmg.lns, ln) if tmg.acceptCh == nil { @@ -128,7 +132,10 @@ func (tmg *TCPMuxGroup) HTTPConnectListen( go tmg.worker() } else { // route config in the same group must be equal - if tmg.group != group || tmg.domain != routeConfig.Domain || tmg.routeByHTTPUser != routeConfig.RouteByHTTPUser { + if tmg.group != group || tmg.domain != routeConfig.Domain || + tmg.routeByHTTPUser != routeConfig.RouteByHTTPUser || + tmg.username != routeConfig.Username || + tmg.password != routeConfig.Password { return nil, ErrGroupParamsInvalid } if tmg.groupKey != groupKey { diff --git a/server/proxy/tcpmux.go b/server/proxy/tcpmux.go index 4b413c367d0..23e833b8e71 100644 --- a/server/proxy/tcpmux.go +++ b/server/proxy/tcpmux.go @@ -32,12 +32,16 @@ type TCPMuxProxy struct { cfg *config.TCPMuxProxyConf } -func (pxy *TCPMuxProxy) httpConnectListen(domain, routeByHTTPUser string, addrs []string) ([]string, error) { +func (pxy *TCPMuxProxy) httpConnectListen( + domain, routeByHTTPUser, httpUser, httpPwd string, addrs []string) ([]string, error, +) { var l net.Listener var err error routeConfig := &vhost.RouteConfig{ Domain: domain, RouteByHTTPUser: routeByHTTPUser, + Username: httpUser, + Password: httpPwd, } if pxy.cfg.Group != "" { l, err = pxy.rc.TCPMuxGroupCtl.Listen(pxy.ctx, pxy.cfg.Multiplexer, pxy.cfg.Group, pxy.cfg.GroupKey, *routeConfig) @@ -60,14 +64,15 @@ func (pxy *TCPMuxProxy) httpConnectRun() (remoteAddr string, err error) { continue } - addrs, err = pxy.httpConnectListen(domain, pxy.cfg.RouteByHTTPUser, addrs) + addrs, err = pxy.httpConnectListen(domain, pxy.cfg.RouteByHTTPUser, pxy.cfg.HTTPUser, pxy.cfg.HTTPPwd, addrs) if err != nil { return "", err } } if pxy.cfg.SubDomain != "" { - addrs, err = pxy.httpConnectListen(pxy.cfg.SubDomain+"."+pxy.serverCfg.SubDomainHost, pxy.cfg.RouteByHTTPUser, addrs) + addrs, err = pxy.httpConnectListen(pxy.cfg.SubDomain+"."+pxy.serverCfg.SubDomainHost, + pxy.cfg.RouteByHTTPUser, pxy.cfg.HTTPUser, pxy.cfg.HTTPPwd, addrs) if err != nil { return "", err } diff --git a/test/e2e/basic/tcpmux.go b/test/e2e/basic/tcpmux.go new file mode 100644 index 00000000000..a1106b958ba --- /dev/null +++ b/test/e2e/basic/tcpmux.go @@ -0,0 +1,218 @@ +package basic + +import ( + "bufio" + "fmt" + "net" + "net/http" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + "github.com/fatedier/frp/test/e2e/pkg/request" + "github.com/fatedier/frp/test/e2e/pkg/rpc" +) + +var _ = ginkgo.Describe("[Feature: TCPMUX httpconnect]", func() { + f := framework.NewDefaultFramework() + + getDefaultServerConf := func(httpconnectPort int) string { + conf := consts.DefaultServerConfig + ` + tcpmux_httpconnect_port = %d + ` + return fmt.Sprintf(conf, httpconnectPort) + } + newServer := func(port int, respContent string) *streamserver.Server { + return streamserver.New( + streamserver.TCP, + streamserver.WithBindPort(port), + streamserver.WithRespContent([]byte(respContent)), + ) + } + + proxyURLWithAuth := func(username, password string, port int) string { + if username == "" { + return fmt.Sprintf("http://127.0.0.1:%d", port) + } + return fmt.Sprintf("http://%s:%s@127.0.0.1:%d", username, password, port) + } + + ginkgo.It("Route by HTTP user", func() { + vhostPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostPort) + + fooPort := f.AllocPort() + f.RunServer("", newServer(fooPort, "foo")) + + barPort := f.AllocPort() + f.RunServer("", newServer(barPort, "bar")) + + otherPort := f.AllocPort() + f.RunServer("", newServer(otherPort, "other")) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [foo] + type = tcpmux + multiplexer = httpconnect + local_port = %d + custom_domains = normal.example.com + route_by_http_user = user1 + + [bar] + type = tcpmux + multiplexer = httpconnect + local_port = %d + custom_domains = normal.example.com + route_by_http_user = user2 + + [catchAll] + type = tcpmux + multiplexer = httpconnect + local_port = %d + custom_domains = normal.example.com + `, fooPort, barPort, otherPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // user1 + framework.NewRequestExpect(f).Explain("user1"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("user1", "", vhostPort)) + }). + ExpectResp([]byte("foo")). + Ensure() + + // user2 + framework.NewRequestExpect(f).Explain("user2"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("user2", "", vhostPort)) + }). + ExpectResp([]byte("bar")). + Ensure() + + // other user + framework.NewRequestExpect(f).Explain("other user"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("user3", "", vhostPort)) + }). + ExpectResp([]byte("other")). + Ensure() + }) + + ginkgo.It("Proxy auth", func() { + vhostPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostPort) + + fooPort := f.AllocPort() + f.RunServer("", newServer(fooPort, "foo")) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [test] + type = tcpmux + multiplexer = httpconnect + local_port = %d + custom_domains = normal.example.com + http_user = test + http_pwd = test + `, fooPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // not set auth header + framework.NewRequestExpect(f).Explain("no auth"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("", "", vhostPort)) + }). + ExpectError(true). + Ensure() + + // set incorrect auth header + framework.NewRequestExpect(f).Explain("incorrect auth"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("test", "invalid", vhostPort)) + }). + ExpectError(true). + Ensure() + + // set correct auth header + framework.NewRequestExpect(f).Explain("correct auth"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("test", "test", vhostPort)) + }). + ExpectResp([]byte("foo")). + Ensure() + }) + + ginkgo.It("TCPMux Passthrough", func() { + vhostPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostPort) + serverConf += ` + tcpmux_passthrough = true + ` + + var ( + respErr error + connectRequestHost string + ) + newServer := func(port int) *streamserver.Server { + return streamserver.New( + streamserver.TCP, + streamserver.WithBindPort(port), + streamserver.WithCustomHandler(func(conn net.Conn) { + defer conn.Close() + + // read HTTP CONNECT request + bufioReader := bufio.NewReader(conn) + req, err := http.ReadRequest(bufioReader) + if err != nil { + respErr = err + return + } + connectRequestHost = req.Host + + // return ok response + res := util.OkResponse() + if res.Body != nil { + defer res.Body.Close() + } + _ = res.Write(conn) + + buf, err := rpc.ReadBytes(conn) + if err != nil { + respErr = err + return + } + _, _ = rpc.WriteBytes(conn, buf) + }), + ) + } + + localPort := f.AllocPort() + f.RunServer("", newServer(localPort)) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [test] + type = tcpmux + multiplexer = httpconnect + local_port = %d + custom_domains = normal.example.com + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("", "", vhostPort)).Body([]byte("frp")) + }). + ExpectResp([]byte("frp")). + Ensure() + framework.ExpectNoError(respErr) + framework.ExpectEqualValues(connectRequestHost, "normal.example.com") + }) +}) diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 814ce04a1cd..6c0eeea41fb 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -56,7 +56,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str ExpectNoError(err) time.Sleep(500 * time.Millisecond) } - time.Sleep(2 * time.Second) + time.Sleep(5 * time.Second) return currentServerProcesses, currentClientProcesses } diff --git a/test/e2e/pkg/request/request.go b/test/e2e/pkg/request/request.go index 96e714f9e26..44bc0d0ccb6 100644 --- a/test/e2e/pkg/request/request.go +++ b/test/e2e/pkg/request/request.go @@ -145,7 +145,10 @@ func (r *Request) Do() (*Response, error) { err error ) - addr := net.JoinHostPort(r.addr, strconv.Itoa(r.port)) + addr := r.addr + if r.port > 0 { + addr = net.JoinHostPort(r.addr, strconv.Itoa(r.port)) + } // for protocol http and https if r.protocol == "http" || r.protocol == "https" { return r.sendHTTPRequest(r.method, fmt.Sprintf("%s://%s%s", r.protocol, addr, r.path), diff --git a/test/e2e/pkg/rpc/rpc.go b/test/e2e/pkg/rpc/rpc.go index d6026449d55..48b240d7587 100644 --- a/test/e2e/pkg/rpc/rpc.go +++ b/test/e2e/pkg/rpc/rpc.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "errors" + "fmt" "io" ) @@ -22,6 +23,9 @@ func ReadBytes(r io.Reader) ([]byte, error) { if err := binary.Read(r, binary.BigEndian, &length); err != nil { return nil, err } + if length < 0 || length > 10*1024*1024 { + return nil, fmt.Errorf("invalid length") + } buffer := make([]byte, length) n, err := io.ReadFull(r, buffer) if err != nil { From 968ba4d3a11d2aef44d0bba50835423a6834fcbc Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 8 Mar 2023 11:19:52 +0800 Subject: [PATCH 051/444] update release notes (#3347) --- Release.md | 8 ++++---- pkg/util/version/version.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Release.md b/Release.md index 33b44d370db..1d3a27c3445 100644 --- a/Release.md +++ b/Release.md @@ -1,8 +1,8 @@ ### New -* Added config `bandwidth_limit_mode` in frpc, default value is `client` which is current behavior. Optional value is `server`, to enable bandwidth limit in server. The major aim is to let server plugin has the ability to modify bandwidth limit for each proxy. +* The `httpconnect` type in `tcpmux` now supports authentication through the parameters `http_user` and `http_pwd`. -### Improve +### Improved -* `dns_server` supports ipv6. -* frpc supports graceful shutdown for protocol `quic`. +* The web framework has been upgraded to vue3 + element-plus, and the dashboard has added some information display and supports dark mode. +* The e2e testing has been switched to ginkgo v2. diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 49d5643e344..920cb56b977 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.47.0" +var version = "0.48.0" func Full() string { return version From fccd51851231d41708275a59eb67fd869ee6adad Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 10 Mar 2023 15:51:14 +0800 Subject: [PATCH 052/444] frpc: add parameter nat_hole_server_addr (#3351) --- client/proxy/proxy.go | 6 +++++- client/visitor.go | 6 +++++- conf/frpc_full.ini | 4 ++++ pkg/config/client.go | 3 +++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 98a8a672d39..1cf477df5a5 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -305,8 +305,12 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { ProxyName: pxy.cfg.ProxyName, Sid: natHoleSidMsg.Sid, } + serverAddr := pxy.clientCfg.NatHoleServerAddr + if serverAddr == "" { + serverAddr = pxy.clientCfg.ServerAddr + } raddr, _ := net.ResolveUDPAddr("udp", - net.JoinHostPort(pxy.clientCfg.ServerAddr, strconv.Itoa(pxy.serverUDPPort))) + net.JoinHostPort(serverAddr, strconv.Itoa(pxy.serverUDPPort))) clientConn, err := net.DialUDP("udp", nil, raddr) if err != nil { xl.Error("dial server udp addr error: %v", err) diff --git a/client/visitor.go b/client/visitor.go index 1d7386f70db..ee15f283f0c 100644 --- a/client/visitor.go +++ b/client/visitor.go @@ -210,8 +210,12 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { return } + serverAddr := sv.ctl.clientCfg.NatHoleServerAddr + if serverAddr == "" { + serverAddr = sv.ctl.clientCfg.ServerAddr + } raddr, err := net.ResolveUDPAddr("udp", - net.JoinHostPort(sv.ctl.clientCfg.ServerAddr, strconv.Itoa(sv.ctl.serverUDPPort))) + net.JoinHostPort(serverAddr, strconv.Itoa(sv.ctl.serverUDPPort))) if err != nil { xl.Error("resolve server UDP addr error") return diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 29f6bcab59f..49e5b47158c 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -6,6 +6,10 @@ server_addr = 0.0.0.0 server_port = 7000 +# Specify another address of the server to connect for nat hole. By default, it's same with +# server_addr. +# nat_hole_server_addr = 0.0.0.0 + # The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds. # dial_server_timeout = 10 diff --git a/pkg/config/client.go b/pkg/config/client.go index 906ee985ebb..b4cb4d15942 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -35,6 +35,9 @@ type ClientCommonConf struct { // ServerAddr specifies the address of the server to connect to. By // default, this value is "0.0.0.0". ServerAddr string `ini:"server_addr" json:"server_addr"` + // Specify another address of the server to connect for nat hole. By default, it's same with + // ServerAddr. + NatHoleServerAddr string `ini:"nat_hole_server_addr" json:"nat_hole_server_addr"` // ServerPort specifies the port to connect to the server on. By default, // this value is 7000. ServerPort int `ini:"server_port" json:"server_port"` From 8f394dba27e492ffb856d5dd4b5cdd07fedaa8b1 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sat, 11 Mar 2023 19:34:06 +0800 Subject: [PATCH 053/444] trace log adds join errors (#3352) --- client/proxy/proxy.go | 5 ++++- client/visitor.go | 5 ++++- go.mod | 2 +- go.sum | 4 ++-- server/proxy/proxy.go | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 1cf477df5a5..c8ea4f2c752 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -819,6 +819,9 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf } } - frpIo.Join(localConn, remote) + _, _, errs := frpIo.Join(localConn, remote) xl.Debug("join connections closed") + if len(errs) > 0 { + xl.Trace("join connections errors: %v", errs) + } } diff --git a/client/visitor.go b/client/visitor.go index ee15f283f0c..6f24b849f3d 100644 --- a/client/visitor.go +++ b/client/visitor.go @@ -339,8 +339,11 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { muxConnRWCloser = frpIo.WithCompression(muxConnRWCloser) } - frpIo.Join(userConn, muxConnRWCloser) + _, _, errs := frpIo.Join(userConn, muxConnRWCloser) xl.Debug("join connections closed") + if len(errs) > 0 { + xl.Trace("join connections errors: %v", errs) + } } type SUDPVisitor struct { diff --git a/go.mod b/go.mod index 41773bd83b4..41bc0b39ceb 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.4.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.1.1-0.20220321042308-c306138b83ac + github.com/fatedier/golib v0.1.1-0.20230311074156-2623b2569b10 github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible github.com/go-playground/validator/v10 v10.11.0 github.com/google/uuid v1.3.0 diff --git a/go.sum b/go.sum index 9925c935bb0..c8090da62c2 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.1.1-0.20220321042308-c306138b83ac h1:td1FJwN/oz8+9GldeEm3YdBX0Husc0FSPywLesZxi4w= -github.com/fatedier/golib v0.1.1-0.20220321042308-c306138b83ac/go.mod h1:fLV0TLwHqrnB/L3jbNl67Gn6PCLggDGHniX1wLrA2Qo= +github.com/fatedier/golib v0.1.1-0.20230311074156-2623b2569b10 h1:JjEXgytxMpWC6nK1u+Pskvaf2MPRnv/pxWmTlyVQMUI= +github.com/fatedier/golib v0.1.1-0.20230311074156-2623b2569b10/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 3c6fb1115dc..088d637a425 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -319,7 +319,7 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv name := pxy.GetName() proxyType := pxy.GetConf().GetBaseInfo().ProxyType metrics.Server.OpenConnection(name, proxyType) - inCount, outCount := frpIo.Join(local, userConn) + inCount, outCount, _ := frpIo.Join(local, userConn) metrics.Server.CloseConnection(name, proxyType) metrics.Server.AddTrafficIn(name, proxyType, inCount) metrics.Server.AddTrafficOut(name, proxyType, outCount) From 9800b4cfcfc3b1cdd485d0749e9a9cd61988342f Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 30 Mar 2023 11:49:31 +0800 Subject: [PATCH 054/444] feat(pull request): add pull request template including summary and walkthrough (#3380) --- .github/pull_request_template.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000000..13b47c6950b --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,10 @@ +### Summary + +copilot:summary + +### WHY + + +### Walkthrough + +copilot:walkthrough From a22d6c9504c9a24b0cc68a8ff9e9027bc6cd748e Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 30 Mar 2023 20:28:15 +0800 Subject: [PATCH 055/444] frpc: support nathole discover (#3381) --- cmd/frpc/sub/nathole.go | 86 +++++++++++++++++ conf/frpc_full.ini | 7 ++ go.mod | 6 +- go.sum | 25 ++++- pkg/config/client.go | 6 ++ pkg/config/client_test.go | 1 + pkg/msg/ctl.go | 4 + pkg/msg/msg.go | 14 +++ pkg/nathole/classify.go | 74 +++++++++++++++ pkg/nathole/discovery.go | 192 ++++++++++++++++++++++++++++++++++++++ pkg/nathole/nathole.go | 71 ++++++++++++-- pkg/nathole/utils.go | 48 ++++++++++ server/service.go | 2 +- 13 files changed, 520 insertions(+), 16 deletions(-) create mode 100644 cmd/frpc/sub/nathole.go create mode 100644 pkg/nathole/classify.go create mode 100644 pkg/nathole/discovery.go create mode 100644 pkg/nathole/utils.go diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go new file mode 100644 index 00000000000..db56d760f6b --- /dev/null +++ b/cmd/frpc/sub/nathole.go @@ -0,0 +1,86 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package sub + +import ( + "fmt" + "net" + "os" + "strconv" + + "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/nathole" +) + +func init() { + RegisterCommonFlags(natholeCmd) + + rootCmd.AddCommand(natholeCmd) + natholeCmd.AddCommand(natholeDiscoveryCmd) +} + +var natholeCmd = &cobra.Command{ + Use: "nathole", + Short: "Actions about nathole", +} + +var natholeDiscoveryCmd = &cobra.Command{ + Use: "discover", + Short: "Discover nathole information by frps and stun server", + RunE: func(cmd *cobra.Command, args []string) error { + cfg, _, _, err := config.ParseClientConfig(cfgFile) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + + if err := validateForNatHoleDiscovery(cfg); err != nil { + fmt.Println(err) + os.Exit(1) + } + + addresses, err := nathole.Discover( + net.JoinHostPort(cfg.ServerAddr, strconv.Itoa(cfg.ServerUDPPort)), + []string{cfg.NatHoleSTUNServer}, + []byte(cfg.Token), + ) + if err != nil { + fmt.Println("discover error:", err) + os.Exit(1) + } + + natType, behavior, err := nathole.ClassifyNATType(addresses) + if err != nil { + fmt.Println("classify nat type error:", err) + os.Exit(1) + } + fmt.Println("Your NAT type is:", natType) + fmt.Println("Behavior is:", behavior) + fmt.Println("External address is:", addresses) + return nil + }, +} + +func validateForNatHoleDiscovery(cfg config.ClientCommonConf) error { + if cfg.NatHoleSTUNServer == "" { + return fmt.Errorf("nat_hole_stun_server can not be empty") + } + if cfg.ServerUDPPort == 0 { + return fmt.Errorf("server udp port can not be empty") + } + return nil +} diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 49e5b47158c..1be0b853cca 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -10,6 +10,13 @@ server_port = 7000 # server_addr. # nat_hole_server_addr = 0.0.0.0 +# ServerUDPPort specifies the server port to help penetrate NAT hole. By default, this value is 0. +# This parameter is only used when executing "nathole discover" in the command line. +# server_udp_port = 0 + +# STUN server to help penetrate NAT hole. +# nat_hole_stun_server = stun.easyvoip.com:3478 + # The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds. # dial_server_timeout = 10 diff --git a/go.mod b/go.mod index 41bc0b39ceb..ba23a5386e8 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.4.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.1.1-0.20230311074156-2623b2569b10 + github.com/fatedier/golib v0.1.1-0.20230320133937-a7edcc8c793d github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible github.com/go-playground/validator/v10 v10.11.0 github.com/google/uuid v1.3.0 @@ -15,12 +15,13 @@ require ( github.com/hashicorp/yamux v0.1.1 github.com/onsi/ginkgo/v2 v2.8.3 github.com/onsi/gomega v1.27.0 + github.com/pion/stun v0.4.0 github.com/pires/go-proxyproto v0.6.2 github.com/prometheus/client_golang v1.13.0 github.com/quic-go/quic-go v0.32.0 github.com/rodaine/table v1.0.1 github.com/spf13/cobra v1.1.3 - github.com/stretchr/testify v1.8.0 + github.com/stretchr/testify v1.8.1 golang.org/x/net v0.7.0 golang.org/x/oauth2 v0.3.0 golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 @@ -48,6 +49,7 @@ require ( github.com/klauspost/reedsolomon v1.9.15 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/pion/transport/v2 v2.0.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect diff --git a/go.sum b/go.sum index c8090da62c2..d708984a48b 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.1.1-0.20230311074156-2623b2569b10 h1:JjEXgytxMpWC6nK1u+Pskvaf2MPRnv/pxWmTlyVQMUI= -github.com/fatedier/golib v0.1.1-0.20230311074156-2623b2569b10/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= +github.com/fatedier/golib v0.1.1-0.20230320133937-a7edcc8c793d h1:/m9Atycn9uKRwwOkxv4c+zaugxRgkdSG/Eg3IJWOpNs= +github.com/fatedier/golib v0.1.1-0.20230320133937-a7edcc8c793d/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -336,6 +336,11 @@ github.com/onsi/gomega v1.27.0 h1:QLidEla4bXUuZVFa4KX6JHCsuGgbi85LC/pCHrt/O08= github.com/onsi/gomega v1.27.0/go.mod h1:i189pavgK95OSIipFBa74gC2V4qrQuvjuyGEr3GmbXA= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= +github.com/pion/stun v0.4.0 h1:vgRrbBE2htWHy7l3Zsxckk7rkjnjOsSM7PHZnBwo8rk= +github.com/pion/stun v0.4.0/go.mod h1:QPsh1/SbXASntw3zkkrIk3ZJVKz4saBY2G7S10P3wCw= +github.com/pion/transport/v2 v2.0.0 h1:bsMYyqHCbkvHwj+eNCFBuxtlKndKfyGI2vaQmM3fIE4= +github.com/pion/transport/v2 v2.0.0/go.mod h1:HS2MEBJTwD+1ZI2eSXSvHJx/HnzQqRy2/LXxt6eVMHc= github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8= github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -415,6 +420,7 @@ github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5q github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -422,8 +428,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU= @@ -439,6 +446,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -459,6 +467,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= @@ -499,6 +508,7 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -551,7 +561,9 @@ golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -589,6 +601,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -659,11 +672,15 @@ golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -673,6 +690,7 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -734,6 +752,7 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pkg/config/client.go b/pkg/config/client.go index b4cb4d15942..3ee39104fb4 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -41,6 +41,11 @@ type ClientCommonConf struct { // ServerPort specifies the port to connect to the server on. By default, // this value is 7000. ServerPort int `ini:"server_port" json:"server_port"` + // ServerUDPPort specifies the server port to help penetrate NAT hole. By default, this value is 0. + // This parameter is only used when executing "nathole discover" in the command line. + ServerUDPPort int `ini:"server_udp_port" json:"server_udp_port"` + // STUN server to help penetrate NAT hole. + NatHoleSTUNServer string `ini:"nat_hole_stun_server" json:"nat_hole_stun_server"` // The maximum amount of time a dial to server will wait for a connect to complete. DialServerTimeout int64 `ini:"dial_server_timeout" json:"dial_server_timeout"` // DialServerKeepAlive specifies the interval between keep-alive probes for an active network connection between frpc and frps. @@ -172,6 +177,7 @@ func GetDefaultClientConf() ClientCommonConf { ClientConfig: auth.GetDefaultClientConf(), ServerAddr: "0.0.0.0", ServerPort: 7000, + NatHoleSTUNServer: "stun.easyvoip.com:3478", DialServerTimeout: 10, DialServerKeepAlive: 7200, HTTPProxy: os.Getenv("http_proxy"), diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index 79eef5f50ea..e5325107623 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -260,6 +260,7 @@ func Test_LoadClientCommonConf(t *testing.T) { }, ServerAddr: "0.0.0.9", ServerPort: 7009, + NatHoleSTUNServer: "stun.easyvoip.com:3478", DialServerTimeout: 10, DialServerKeepAlive: 7200, HTTPProxy: "http://user:passwd@192.168.1.128:8080", diff --git a/pkg/msg/ctl.go b/pkg/msg/ctl.go index bf0c71a779b..5ccee4a4caf 100644 --- a/pkg/msg/ctl.go +++ b/pkg/msg/ctl.go @@ -42,3 +42,7 @@ func ReadMsgInto(c io.Reader, msg Message) (err error) { func WriteMsg(c io.Writer, msg interface{}) (err error) { return msgCtl.WriteMsg(c, msg) } + +func Pack(msg interface{}) (data []byte, err error) { + return msgCtl.Pack(msg) +} diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index 33e8fe5db87..b50c2b4549f 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -37,6 +37,8 @@ const ( TypeNatHoleResp = 'm' TypeNatHoleClientDetectOK = 'd' TypeNatHoleSid = '5' + TypeNatHoleBinding = 'b' + TypeNatHoleBindingResp = '6' ) var msgTypeMap = map[byte]interface{}{ @@ -58,6 +60,8 @@ var msgTypeMap = map[byte]interface{}{ TypeNatHoleResp: NatHoleResp{}, TypeNatHoleClientDetectOK: NatHoleClientDetectOK{}, TypeNatHoleSid: NatHoleSid{}, + TypeNatHoleBinding: NatHoleBinding{}, + TypeNatHoleBindingResp: NatHoleBindingResp{}, } // When frpc start, client send this message to login to server. @@ -193,3 +197,13 @@ type NatHoleClientDetectOK struct{} type NatHoleSid struct { Sid string `json:"sid,omitempty"` } + +type NatHoleBinding struct { + TransactionID string `json:"transaction_id,omitempty"` +} + +type NatHoleBindingResp struct { + TransactionID string `json:"transaction_id,omitempty"` + Address string `json:"address,omitempty"` + Error string `json:"error,omitempty"` +} diff --git a/pkg/nathole/classify.go b/pkg/nathole/classify.go new file mode 100644 index 00000000000..c667e0781e5 --- /dev/null +++ b/pkg/nathole/classify.go @@ -0,0 +1,74 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package nathole + +import ( + "fmt" + "net" +) + +const ( + EasyNAT = "EasyNAT" + HardNAT = "HardNAT" + + BehaviorNoChange = "BehaviorNoChange" + BehaviorIPChanged = "BehaviorIPChanged" + BehaviorPortChanged = "BehaviorPortChanged" + BehaviorBothChanged = "BehaviorBothChanged" +) + +// ClassifyNATType classify NAT type by given addresses. +func ClassifyNATType(addresses []string) (string, string, error) { + if len(addresses) <= 1 { + return "", "", fmt.Errorf("not enough addresses") + } + ipChanged := false + portChanged := false + + var baseIP, basePort string + for _, addr := range addresses { + ip, port, err := net.SplitHostPort(addr) + if err != nil { + return "", "", err + } + if baseIP == "" { + baseIP = ip + basePort = port + continue + } + + if baseIP != ip { + ipChanged = true + } + if basePort != port { + portChanged = true + } + + if ipChanged && portChanged { + break + } + } + + switch { + case ipChanged && portChanged: + return HardNAT, BehaviorBothChanged, nil + case ipChanged: + return HardNAT, BehaviorIPChanged, nil + case portChanged: + return HardNAT, BehaviorPortChanged, nil + default: + return EasyNAT, BehaviorNoChange, nil + } +} diff --git a/pkg/nathole/discovery.go b/pkg/nathole/discovery.go new file mode 100644 index 00000000000..761ed105582 --- /dev/null +++ b/pkg/nathole/discovery.go @@ -0,0 +1,192 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package nathole + +import ( + "fmt" + "net" + "time" + + "github.com/pion/stun" + + "github.com/fatedier/frp/pkg/msg" +) + +var responseTimeout = 3 * time.Second + +type Address struct { + IP string + Port int +} + +type Message struct { + Body []byte + Addr string +} + +func Discover(serverAddress string, stunServers []string, key []byte) ([]string, error) { + // parse address to net.Address + stunAddresses := make([]net.Addr, 0, len(stunServers)) + for _, stunServer := range stunServers { + addr, err := net.ResolveUDPAddr("udp4", stunServer) + if err != nil { + return nil, err + } + stunAddresses = append(stunAddresses, addr) + } + serverAddr, err := net.ResolveUDPAddr("udp4", serverAddress) + if err != nil { + return nil, err + } + + // create a discoverConn and get response from messageChan + discoverConn, err := listen() + if err != nil { + return nil, err + } + defer discoverConn.Close() + + go discoverConn.readLoop() + + addresses := make([]string, 0, len(stunServers)+1) + // get external address from frp server + externalAddr, err := discoverFromServer(discoverConn, serverAddr, key) + if err != nil { + return nil, err + } + addresses = append(addresses, externalAddr) + + for _, stunAddr := range stunAddresses { + // get external address from stun server + externalAddr, err = discoverFromStunServer(discoverConn, stunAddr) + if err != nil { + return nil, err + } + addresses = append(addresses, externalAddr) + } + return addresses, nil +} + +func discoverFromServer(c *discoverConn, addr net.Addr, key []byte) (string, error) { + m := &msg.NatHoleBinding{ + TransactionID: NewTransactionID(), + } + + buf, err := EncodeMessage(m, key) + if err != nil { + return "", err + } + + if _, err := c.conn.WriteTo(buf, addr); err != nil { + return "", err + } + + var respMsg msg.NatHoleBindingResp + select { + case rawMsg := <-c.messageChan: + if err := DecodeMessageInto(rawMsg.Body, key, &respMsg); err != nil { + return "", err + } + case <-time.After(responseTimeout): + return "", fmt.Errorf("wait response from frp server timeout") + } + + if respMsg.TransactionID == "" { + return "", fmt.Errorf("error format: no transaction id found") + } + if respMsg.Error != "" { + return "", fmt.Errorf("get externalAddr from frp server error: %s", respMsg.Error) + } + return respMsg.Address, nil +} + +func discoverFromStunServer(c *discoverConn, addr net.Addr) (string, error) { + request, err := stun.Build(stun.TransactionID, stun.BindingRequest) + if err != nil { + return "", err + } + + if err = request.NewTransactionID(); err != nil { + return "", err + } + if _, err := c.conn.WriteTo(request.Raw, addr); err != nil { + return "", err + } + + var m stun.Message + select { + case msg := <-c.messageChan: + m.Raw = msg.Body + if err := m.Decode(); err != nil { + return "", err + } + case <-time.After(responseTimeout): + return "", fmt.Errorf("wait response from stun server timeout") + } + + xorAddr := &stun.XORMappedAddress{} + mappedAddr := &stun.MappedAddress{} + if err := xorAddr.GetFrom(&m); err == nil { + return xorAddr.String(), nil + } + if err := mappedAddr.GetFrom(&m); err == nil { + return mappedAddr.String(), nil + } + return "", fmt.Errorf("no address found") +} + +type discoverConn struct { + conn *net.UDPConn + + localAddr net.Addr + messageChan chan *Message +} + +func listen() (*discoverConn, error) { + conn, err := net.ListenUDP("udp4", nil) + if err != nil { + return nil, err + } + + return &discoverConn{ + conn: conn, + localAddr: conn.LocalAddr(), + messageChan: make(chan *Message, 10), + }, nil +} + +func (c *discoverConn) Close() error { + if c.messageChan != nil { + close(c.messageChan) + c.messageChan = nil + } + return c.conn.Close() +} + +func (c *discoverConn) readLoop() { + for { + buf := make([]byte, 1024) + n, addr, err := c.conn.ReadFromUDP(buf) + if err != nil { + return + } + buf = buf[:n] + + c.messageChan <- &Message{ + Body: buf, + Addr: addr.String(), + } + } +} diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index da8b49c47d9..2b114bcecf4 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -1,3 +1,17 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + package nathole import ( @@ -7,6 +21,7 @@ import ( "sync" "time" + "github.com/fatedier/golib/crypto" "github.com/fatedier/golib/errors" "github.com/fatedier/golib/pool" @@ -18,6 +33,11 @@ import ( // NatHoleTimeout seconds. var NatHoleTimeout int64 = 10 +func NewTransactionID() string { + id, _ := util.RandID() + return fmt.Sprintf("%d%s", time.Now().Unix(), id) +} + type SidRequest struct { Sid string NotifyCh chan struct{} @@ -29,10 +49,11 @@ type Controller struct { clientCfgs map[string]*ClientCfg sessions map[string]*Session - mu sync.RWMutex + encryptionKey []byte + mu sync.RWMutex } -func NewController(udpBindAddr string) (nc *Controller, err error) { +func NewController(udpBindAddr string, encryptionKey []byte) (nc *Controller, err error) { addr, err := net.ResolveUDPAddr("udp", udpBindAddr) if err != nil { return nil, err @@ -42,9 +63,10 @@ func NewController(udpBindAddr string) (nc *Controller, err error) { return nil, err } nc = &Controller{ - listener: lconn, - clientCfgs: make(map[string]*ClientCfg), - sessions: make(map[string]*Session), + listener: lconn, + clientCfgs: make(map[string]*ClientCfg), + sessions: make(map[string]*Session), + encryptionKey: encryptionKey, } return nc, nil } @@ -72,24 +94,30 @@ func (nc *Controller) Run() { buf := pool.GetBuf(1024) n, raddr, err := nc.listener.ReadFromUDP(buf) if err != nil { - log.Trace("nat hole listener read from udp error: %v", err) + log.Warn("nat hole listener read from udp error: %v", err) return } + plain, err := crypto.Decode(buf[:n], nc.encryptionKey) + if err != nil { + log.Warn("nathole listener decode from %s error: %v", raddr.String(), err) + continue + } - rd := bytes.NewReader(buf[:n]) - rawMsg, err := msg.ReadMsg(rd) + rawMsg, err := msg.ReadMsg(bytes.NewReader(plain)) if err != nil { - log.Trace("read nat hole message error: %v", err) + log.Warn("read nat hole message error: %v", err) continue } switch m := rawMsg.(type) { + case *msg.NatHoleBinding: + go nc.HandleBinding(m, raddr) case *msg.NatHoleVisitor: go nc.HandleVisitor(m, raddr) case *msg.NatHoleClient: go nc.HandleClient(m, raddr) default: - log.Trace("error nat hole message type") + log.Trace("unknown nat hole message type") continue } pool.PutBuf(buf) @@ -102,6 +130,29 @@ func (nc *Controller) GenSid() string { return fmt.Sprintf("%d%s", t, id) } +func (nc *Controller) HandleBinding(m *msg.NatHoleBinding, raddr *net.UDPAddr) { + log.Trace("handle binding message from %s", raddr.String()) + resp := &msg.NatHoleBindingResp{ + TransactionID: m.TransactionID, + Address: raddr.String(), + } + plain, err := msg.Pack(resp) + if err != nil { + log.Error("pack nat hole binding response error: %v", err) + return + } + buf, err := crypto.Encode(plain, nc.encryptionKey) + if err != nil { + log.Error("encode nat hole binding response error: %v", err) + return + } + _, err = nc.listener.WriteToUDP(buf, raddr) + if err != nil { + log.Error("write nat hole binding response to %s error: %v", raddr.String(), err) + return + } +} + func (nc *Controller) HandleVisitor(m *msg.NatHoleVisitor, raddr *net.UDPAddr) { sid := nc.GenSid() session := &Session{ diff --git a/pkg/nathole/utils.go b/pkg/nathole/utils.go new file mode 100644 index 00000000000..40fad0e1594 --- /dev/null +++ b/pkg/nathole/utils.go @@ -0,0 +1,48 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package nathole + +import ( + "bytes" + + "github.com/fatedier/golib/crypto" + + "github.com/fatedier/frp/pkg/msg" +) + +func EncodeMessage(m msg.Message, key []byte) ([]byte, error) { + buffer := bytes.NewBuffer(nil) + if err := msg.WriteMsg(buffer, m); err != nil { + return nil, err + } + + buf, err := crypto.Encode(buffer.Bytes(), key) + if err != nil { + return nil, err + } + return buf, nil +} + +func DecodeMessageInto(data, key []byte, m msg.Message) error { + buf, err := crypto.Decode(data, key) + if err != nil { + return err + } + + if err := msg.ReadMsgInto(bytes.NewReader(buf), m); err != nil { + return err + } + return nil +} diff --git a/server/service.go b/server/service.go index e2f849408ce..4ce5f992b9e 100644 --- a/server/service.go +++ b/server/service.go @@ -293,7 +293,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { if cfg.BindUDPPort > 0 { var nc *nathole.Controller address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindUDPPort)) - nc, err = nathole.NewController(address) + nc, err = nathole.NewController(address, []byte(cfg.Token)) if err != nil { err = fmt.Errorf("create nat hole controller error, %v", err) return From 3faae194d0a637187539e4da1e6a993b3494b2ce Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 30 Mar 2023 21:49:12 +0800 Subject: [PATCH 056/444] feat(nathole): use serverUDPPort in nathole discovery when available (#3382) --- cmd/frpc/sub/nathole.go | 13 ++- pkg/nathole/discovery.go | 218 ++++++++++++++++++++++----------------- pkg/nathole/utils.go | 17 +++ 3 files changed, 151 insertions(+), 97 deletions(-) diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go index db56d760f6b..9e8a21d3103 100644 --- a/cmd/frpc/sub/nathole.go +++ b/cmd/frpc/sub/nathole.go @@ -53,8 +53,12 @@ var natholeDiscoveryCmd = &cobra.Command{ os.Exit(1) } + serverAddr := "" + if cfg.ServerUDPPort != 0 { + serverAddr = net.JoinHostPort(cfg.ServerAddr, strconv.Itoa(cfg.ServerUDPPort)) + } addresses, err := nathole.Discover( - net.JoinHostPort(cfg.ServerAddr, strconv.Itoa(cfg.ServerUDPPort)), + serverAddr, []string{cfg.NatHoleSTUNServer}, []byte(cfg.Token), ) @@ -62,6 +66,10 @@ var natholeDiscoveryCmd = &cobra.Command{ fmt.Println("discover error:", err) os.Exit(1) } + if len(addresses) < 2 { + fmt.Printf("discover error: can not get enough addresses, need 2, got: %v\n", addresses) + os.Exit(1) + } natType, behavior, err := nathole.ClassifyNATType(addresses) if err != nil { @@ -79,8 +87,5 @@ func validateForNatHoleDiscovery(cfg config.ClientCommonConf) error { if cfg.NatHoleSTUNServer == "" { return fmt.Errorf("nat_hole_stun_server can not be empty") } - if cfg.ServerUDPPort == 0 { - return fmt.Errorf("server udp port can not be empty") - } return nil } diff --git a/pkg/nathole/discovery.go b/pkg/nathole/discovery.go index 761ed105582..4c684b3fed6 100644 --- a/pkg/nathole/discovery.go +++ b/pkg/nathole/discovery.go @@ -26,31 +26,12 @@ import ( var responseTimeout = 3 * time.Second -type Address struct { - IP string - Port int -} - type Message struct { Body []byte Addr string } func Discover(serverAddress string, stunServers []string, key []byte) ([]string, error) { - // parse address to net.Address - stunAddresses := make([]net.Addr, 0, len(stunServers)) - for _, stunServer := range stunServers { - addr, err := net.ResolveUDPAddr("udp4", stunServer) - if err != nil { - return nil, err - } - stunAddresses = append(stunAddresses, addr) - } - serverAddr, err := net.ResolveUDPAddr("udp4", serverAddress) - if err != nil { - return nil, err - } - // create a discoverConn and get response from messageChan discoverConn, err := listen() if err != nil { @@ -61,90 +42,29 @@ func Discover(serverAddress string, stunServers []string, key []byte) ([]string, go discoverConn.readLoop() addresses := make([]string, 0, len(stunServers)+1) - // get external address from frp server - externalAddr, err := discoverFromServer(discoverConn, serverAddr, key) - if err != nil { - return nil, err - } - addresses = append(addresses, externalAddr) - - for _, stunAddr := range stunAddresses { - // get external address from stun server - externalAddr, err = discoverFromStunServer(discoverConn, stunAddr) + if serverAddress != "" { + // get external address from frp server + externalAddr, err := discoverConn.discoverFromServer(serverAddress, key) if err != nil { return nil, err } addresses = append(addresses, externalAddr) } - return addresses, nil -} - -func discoverFromServer(c *discoverConn, addr net.Addr, key []byte) (string, error) { - m := &msg.NatHoleBinding{ - TransactionID: NewTransactionID(), - } - - buf, err := EncodeMessage(m, key) - if err != nil { - return "", err - } - if _, err := c.conn.WriteTo(buf, addr); err != nil { - return "", err - } - - var respMsg msg.NatHoleBindingResp - select { - case rawMsg := <-c.messageChan: - if err := DecodeMessageInto(rawMsg.Body, key, &respMsg); err != nil { - return "", err + for _, addr := range stunServers { + // get external address from stun server + externalAddrs, err := discoverConn.discoverFromStunServer(addr) + if err != nil { + return nil, err } - case <-time.After(responseTimeout): - return "", fmt.Errorf("wait response from frp server timeout") - } - - if respMsg.TransactionID == "" { - return "", fmt.Errorf("error format: no transaction id found") + addresses = append(addresses, externalAddrs...) } - if respMsg.Error != "" { - return "", fmt.Errorf("get externalAddr from frp server error: %s", respMsg.Error) - } - return respMsg.Address, nil + return addresses, nil } -func discoverFromStunServer(c *discoverConn, addr net.Addr) (string, error) { - request, err := stun.Build(stun.TransactionID, stun.BindingRequest) - if err != nil { - return "", err - } - - if err = request.NewTransactionID(); err != nil { - return "", err - } - if _, err := c.conn.WriteTo(request.Raw, addr); err != nil { - return "", err - } - - var m stun.Message - select { - case msg := <-c.messageChan: - m.Raw = msg.Body - if err := m.Decode(); err != nil { - return "", err - } - case <-time.After(responseTimeout): - return "", fmt.Errorf("wait response from stun server timeout") - } - - xorAddr := &stun.XORMappedAddress{} - mappedAddr := &stun.MappedAddress{} - if err := xorAddr.GetFrom(&m); err == nil { - return xorAddr.String(), nil - } - if err := mappedAddr.GetFrom(&m); err == nil { - return mappedAddr.String(), nil - } - return "", fmt.Errorf("no address found") +type stunResponse struct { + externalAddr string + otherAddr string } type discoverConn struct { @@ -190,3 +110,115 @@ func (c *discoverConn) readLoop() { } } } + +func (c *discoverConn) doSTUNRequest(addr string) (*stunResponse, error) { + serverAddr, err := net.ResolveUDPAddr("udp4", addr) + if err != nil { + return nil, err + } + request, err := stun.Build(stun.TransactionID, stun.BindingRequest) + if err != nil { + return nil, err + } + + if err = request.NewTransactionID(); err != nil { + return nil, err + } + if _, err := c.conn.WriteTo(request.Raw, serverAddr); err != nil { + return nil, err + } + + var m stun.Message + select { + case msg := <-c.messageChan: + m.Raw = msg.Body + if err := m.Decode(); err != nil { + return nil, err + } + case <-time.After(responseTimeout): + return nil, fmt.Errorf("wait response from stun server timeout") + } + xorAddrGetter := &stun.XORMappedAddress{} + mappedAddrGetter := &stun.MappedAddress{} + changedAddrGetter := ChangedAddress{} + otherAddrGetter := &stun.OtherAddress{} + + resp := &stunResponse{} + if err := mappedAddrGetter.GetFrom(&m); err == nil { + resp.externalAddr = mappedAddrGetter.String() + } + if err := xorAddrGetter.GetFrom(&m); err == nil { + resp.externalAddr = xorAddrGetter.String() + } + if err := changedAddrGetter.GetFrom(&m); err == nil { + resp.otherAddr = changedAddrGetter.String() + } + if err := otherAddrGetter.GetFrom(&m); err == nil { + resp.otherAddr = otherAddrGetter.String() + } + return resp, nil +} + +func (c *discoverConn) discoverFromServer(serverAddress string, key []byte) (string, error) { + addr, err := net.ResolveUDPAddr("udp4", serverAddress) + if err != nil { + return "", err + } + m := &msg.NatHoleBinding{ + TransactionID: NewTransactionID(), + } + + buf, err := EncodeMessage(m, key) + if err != nil { + return "", err + } + + if _, err := c.conn.WriteTo(buf, addr); err != nil { + return "", err + } + + var respMsg msg.NatHoleBindingResp + select { + case rawMsg := <-c.messageChan: + if err := DecodeMessageInto(rawMsg.Body, key, &respMsg); err != nil { + return "", err + } + case <-time.After(responseTimeout): + return "", fmt.Errorf("wait response from frp server timeout") + } + + if respMsg.TransactionID == "" { + return "", fmt.Errorf("error format: no transaction id found") + } + if respMsg.Error != "" { + return "", fmt.Errorf("get externalAddr from frp server error: %s", respMsg.Error) + } + return respMsg.Address, nil +} + +func (c *discoverConn) discoverFromStunServer(addr string) ([]string, error) { + resp, err := c.doSTUNRequest(addr) + if err != nil { + return nil, err + } + if resp.externalAddr == "" { + return nil, fmt.Errorf("no external address found") + } + + externalAddrs := make([]string, 0, 2) + externalAddrs = append(externalAddrs, resp.externalAddr) + + if resp.otherAddr == "" { + return externalAddrs, nil + } + + // find external address from changed address + resp, err = c.doSTUNRequest(resp.otherAddr) + if err != nil { + return nil, err + } + if resp.externalAddr != "" { + externalAddrs = append(externalAddrs, resp.externalAddr) + } + return externalAddrs, nil +} diff --git a/pkg/nathole/utils.go b/pkg/nathole/utils.go index 40fad0e1594..75eda1a6d93 100644 --- a/pkg/nathole/utils.go +++ b/pkg/nathole/utils.go @@ -16,8 +16,11 @@ package nathole import ( "bytes" + "net" + "strconv" "github.com/fatedier/golib/crypto" + "github.com/pion/stun" "github.com/fatedier/frp/pkg/msg" ) @@ -46,3 +49,17 @@ func DecodeMessageInto(data, key []byte, m msg.Message) error { } return nil } + +type ChangedAddress struct { + IP net.IP + Port int +} + +func (s *ChangedAddress) GetFrom(m *stun.Message) error { + a := (*stun.MappedAddress)(s) + return a.GetFromAs(m, stun.AttrChangedAddress) +} + +func (s *ChangedAddress) String() string { + return net.JoinHostPort(s.IP.String(), strconv.Itoa(s.Port)) +} From 2c2c4ecdbcab252fcd816c33d9151e70d6670e08 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 30 Mar 2023 22:02:00 +0800 Subject: [PATCH 057/444] feat(nathole): add flag for STUN server in nathole discovery command (#3383) --- cmd/frpc/sub/nathole.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go index 9e8a21d3103..377401c0d38 100644 --- a/cmd/frpc/sub/nathole.go +++ b/cmd/frpc/sub/nathole.go @@ -26,11 +26,15 @@ import ( "github.com/fatedier/frp/pkg/nathole" ) +var natHoleSTUNServer string + func init() { RegisterCommonFlags(natholeCmd) rootCmd.AddCommand(natholeCmd) natholeCmd.AddCommand(natholeDiscoveryCmd) + + natholeCmd.PersistentFlags().StringVarP(&natHoleSTUNServer, "nat_hole_stun_server", "", "", "STUN server address for nathole") } var natholeCmd = &cobra.Command{ @@ -47,6 +51,9 @@ var natholeDiscoveryCmd = &cobra.Command{ fmt.Println(err) os.Exit(1) } + if natHoleSTUNServer != "" { + cfg.NatHoleSTUNServer = natHoleSTUNServer + } if err := validateForNatHoleDiscovery(cfg); err != nil { fmt.Println(err) From f6b8645f56887e3bfea738539b87f6e8b605c518 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 10 Apr 2023 21:45:00 +0800 Subject: [PATCH 058/444] nathole: support discover without configuration file (#3395) --- cmd/frpc/sub/nathole.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go index 377401c0d38..f08990bfeb9 100644 --- a/cmd/frpc/sub/nathole.go +++ b/cmd/frpc/sub/nathole.go @@ -26,7 +26,10 @@ import ( "github.com/fatedier/frp/pkg/nathole" ) -var natHoleSTUNServer string +var ( + natHoleSTUNServer string + serverUDPPort int +) func init() { RegisterCommonFlags(natholeCmd) @@ -34,7 +37,8 @@ func init() { rootCmd.AddCommand(natholeCmd) natholeCmd.AddCommand(natholeDiscoveryCmd) - natholeCmd.PersistentFlags().StringVarP(&natHoleSTUNServer, "nat_hole_stun_server", "", "", "STUN server address for nathole") + natholeCmd.PersistentFlags().StringVarP(&natHoleSTUNServer, "nat_hole_stun_server", "", "stun.easyvoip.com:3478", "STUN server address for nathole") + natholeCmd.PersistentFlags().IntVarP(&serverUDPPort, "server_udp_port", "", 0, "UDP port of frps for nathole") } var natholeCmd = &cobra.Command{ @@ -46,14 +50,14 @@ var natholeDiscoveryCmd = &cobra.Command{ Use: "discover", Short: "Discover nathole information by frps and stun server", RunE: func(cmd *cobra.Command, args []string) error { - cfg, _, _, err := config.ParseClientConfig(cfgFile) - if err != nil { - fmt.Println(err) - os.Exit(1) - } + // ignore error here, because we can use command line pameters + cfg, _, _, _ := config.ParseClientConfig(cfgFile) if natHoleSTUNServer != "" { cfg.NatHoleSTUNServer = natHoleSTUNServer } + if serverUDPPort != 0 { + cfg.ServerUDPPort = serverUDPPort + } if err := validateForNatHoleDiscovery(cfg); err != nil { fmt.Println(err) From db52f07d3492946037d85df7bfbfda0013481a27 Mon Sep 17 00:00:00 2001 From: hxysayhi <51870525+hxysayhi@users.noreply.github.com> Date: Wed, 12 Apr 2023 11:02:56 +0800 Subject: [PATCH 059/444] Update frpc_full.ini (#3399) Fix typos. --- conf/frpc_full.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 1be0b853cca..f614c37ce9e 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -258,7 +258,7 @@ local_ip = 127.0.0.1 local_port = 8000 use_encryption = false use_compression = false -subdomain = web01 +subdomain = web02 custom_domains = web02.yourdomain.com # if not empty, frpc will use proxy protocol to transfer connection info to your local service # v1 or v2 or empty From 738c53ce474007f9a418e43cae6d23b0399f6052 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 16 Apr 2023 16:43:44 +0800 Subject: [PATCH 060/444] web: fix el-popover bug (#3413) * web: update * web: fix el-popover bug --- assets/frpc/static/index-1c7ed8b0.js | 32 +++++ assets/frpc/static/index-1e2a7ce0.css | 1 + assets/frpc/static/index-7dd223da.js | 32 ----- assets/frpc/static/index-aa3c7267.css | 1 - assets/frpc/static/index.html | 4 +- assets/frps/static/index-1e0c7400.css | 1 + assets/frps/static/index-7b4711f8.css | 1 - assets/frps/static/index-93e38bbf.js | 74 ++++++++++ assets/frps/static/index-b8250b3f.js | 74 ---------- assets/frps/static/index.html | 4 +- web/frpc/package.json | 4 +- web/frpc/yarn.lock | 12 +- web/frps/package.json | 4 +- .../{ProxiesHttp.vue => ProxiesHTTP.vue} | 0 .../{ProxiesHttps.vue => ProxiesHTTPS.vue} | 0 .../{ProxiesStcp.vue => ProxiesSTCP.vue} | 0 .../{ProxiesSudp.vue => ProxiesSUDP.vue} | 0 .../{ProxiesTcp.vue => ProxiesTCP.vue} | 0 .../{ProxiesUdp.vue => ProxiesUDP.vue} | 0 web/frps/src/components/ProxyView.vue | 35 ++--- web/frps/yarn.lock | 131 +++++++++++++----- 21 files changed, 233 insertions(+), 177 deletions(-) create mode 100644 assets/frpc/static/index-1c7ed8b0.js create mode 100644 assets/frpc/static/index-1e2a7ce0.css delete mode 100644 assets/frpc/static/index-7dd223da.js delete mode 100644 assets/frpc/static/index-aa3c7267.css create mode 100644 assets/frps/static/index-1e0c7400.css delete mode 100644 assets/frps/static/index-7b4711f8.css create mode 100644 assets/frps/static/index-93e38bbf.js delete mode 100644 assets/frps/static/index-b8250b3f.js rename web/frps/src/components/{ProxiesHttp.vue => ProxiesHTTP.vue} (100%) rename web/frps/src/components/{ProxiesHttps.vue => ProxiesHTTPS.vue} (100%) rename web/frps/src/components/{ProxiesStcp.vue => ProxiesSTCP.vue} (100%) rename web/frps/src/components/{ProxiesSudp.vue => ProxiesSUDP.vue} (100%) rename web/frps/src/components/{ProxiesTcp.vue => ProxiesTCP.vue} (100%) rename web/frps/src/components/{ProxiesUdp.vue => ProxiesUDP.vue} (100%) diff --git a/assets/frpc/static/index-1c7ed8b0.js b/assets/frpc/static/index-1c7ed8b0.js new file mode 100644 index 00000000000..cf2a28f2b93 --- /dev/null +++ b/assets/frpc/static/index-1c7ed8b0.js @@ -0,0 +1,32 @@ +var Gh=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var K$=Gh((Mt,Pt)=>{(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 s of o)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();function Pa(e,t){const n=Object.create(null),r=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}function et(e){if(fe(e)){const t={};for(let n=0;n{if(n){const r=n.split(Jh);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function V(e){let t="";if(Te(e))t=e;else if(fe(e))for(let n=0;nVs(n,t))}const Ze=e=>Te(e)?e:e==null?"":fe(e)||Pe(e)&&(e.toString===_f||!we(e.toString))?JSON.stringify(e,wf,2):String(e),wf=(e,t)=>t&&t.__v_isRef?wf(e,t.value):Ar(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o])=>(n[`${r} =>`]=o,n),{})}:qs(t)?{[`Set(${t.size})`]:[...t.values()]}:Pe(t)&&!fe(t)&&!Cf(t)?String(t):t,Ge={},$r=[],at=()=>{},rv=()=>!1,ov=/^on[^a-z]/,Us=e=>ov.test(e),Ra=e=>e.startsWith("onUpdate:"),pt=Object.assign,ka=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},sv=Object.prototype.hasOwnProperty,Ae=(e,t)=>sv.call(e,t),fe=Array.isArray,Ar=e=>zo(e)==="[object Map]",qs=e=>zo(e)==="[object Set]",Hi=e=>zo(e)==="[object Date]",we=e=>typeof e=="function",Te=e=>typeof e=="string",So=e=>typeof e=="symbol",Pe=e=>e!==null&&typeof e=="object",Ss=e=>Pe(e)&&we(e.then)&&we(e.catch),_f=Object.prototype.toString,zo=e=>_f.call(e),lv=e=>zo(e).slice(8,-1),Cf=e=>zo(e)==="[object Object]",Ia=e=>Te(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,fs=Pa(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ys=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},av=/-(\w)/g,Yt=Ys(e=>e.replace(av,(t,n)=>n?n.toUpperCase():"")),iv=/\B([A-Z])/g,yr=Ys(e=>e.replace(iv,"-$1").toLowerCase()),Gs=Ys(e=>e.charAt(0).toUpperCase()+e.slice(1)),ds=Ys(e=>e?`on${Gs(e)}`:""),xo=(e,t)=>!Object.is(e,t),ps=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},uv=e=>{const t=parseFloat(e);return isNaN(t)?e:t},cv=e=>{const t=Te(e)?Number(e):NaN;return isNaN(t)?e:t};let zi;const fv=()=>zi||(zi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let $t;class dv{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=$t,!t&&$t&&(this.index=($t.scopes||($t.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=$t;try{return $t=this,t()}finally{$t=n}}}on(){$t=this}off(){$t=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},xf=e=>(e.w&jn)>0,Tf=e=>(e.n&jn)>0,hv=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(c==="length"||c>=i)&&a.push(u)})}else switch(n!==void 0&&a.push(l.get(n)),t){case"add":fe(e)?Ia(n)&&a.push(l.get("length")):(a.push(l.get(dr)),Ar(e)&&a.push(l.get(Dl)));break;case"delete":fe(e)||(a.push(l.get(dr)),Ar(e)&&a.push(l.get(Dl)));break;case"set":Ar(e)&&a.push(l.get(dr));break}if(a.length===1)a[0]&&jl(a[0]);else{const i=[];for(const u of a)u&&i.push(...u);jl(La(i))}}function jl(e,t){const n=fe(e)?e:[...e];for(const r of n)r.computed&&ji(r);for(const r of n)r.computed||ji(r)}function ji(e,t){(e!==jt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function mv(e,t){var n;return(n=Ts.get(e))===null||n===void 0?void 0:n.get(t)}const gv=Pa("__proto__,__v_isRef,__isVue"),Af=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(So)),yv=Fa(),bv=Fa(!1,!0),wv=Fa(!0),Wi=_v();function _v(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=Ne(this);for(let s=0,l=this.length;s{e[t]=function(...n){Xr();const r=Ne(this)[t].apply(this,n);return Jr(),r}}),e}function Cv(e){const t=Ne(this);return xt(t,"has",e),t.hasOwnProperty(e)}function Fa(e=!1,t=!1){return function(r,o,s){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&s===(e?t?Bv:If:t?kf:Rf).get(r))return r;const l=fe(r);if(!e){if(l&&Ae(Wi,o))return Reflect.get(Wi,o,s);if(o==="hasOwnProperty")return Cv}const a=Reflect.get(r,o,s);return(So(o)?Af.has(o):gv(o))||(e||xt(r,"get",o),t)?a:Ve(a)?l&&Ia(o)?a:a.value:Pe(a)?e?Do(a):Xt(a):a}}const Ev=Mf(),Sv=Mf(!0);function Mf(e=!1){return function(n,r,o,s){let l=n[r];if(kr(l)&&Ve(l)&&!Ve(o))return!1;if(!e&&(!Os(o)&&!kr(o)&&(l=Ne(l),o=Ne(o)),!fe(n)&&Ve(l)&&!Ve(o)))return l.value=o,!0;const a=fe(n)&&Ia(r)?Number(r)e,Xs=e=>Reflect.getPrototypeOf(e);function Yo(e,t,n=!1,r=!1){e=e.__v_raw;const o=Ne(e),s=Ne(t);n||(t!==s&&xt(o,"get",t),xt(o,"get",s));const{has:l}=Xs(o),a=r?Ba:n?Da:To;if(l.call(o,t))return a(e.get(t));if(l.call(o,s))return a(e.get(s));e!==o&&e.get(t)}function Go(e,t=!1){const n=this.__v_raw,r=Ne(n),o=Ne(e);return t||(e!==o&&xt(r,"has",e),xt(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function Xo(e,t=!1){return e=e.__v_raw,!t&&xt(Ne(e),"iterate",dr),Reflect.get(e,"size",e)}function Ki(e){e=Ne(e);const t=Ne(this);return Xs(t).has.call(t,e)||(t.add(e),bn(t,"add",e,e)),this}function Vi(e,t){t=Ne(t);const n=Ne(this),{has:r,get:o}=Xs(n);let s=r.call(n,e);s||(e=Ne(e),s=r.call(n,e));const l=o.call(n,e);return n.set(e,t),s?xo(t,l)&&bn(n,"set",e,t):bn(n,"add",e,t),this}function Ui(e){const t=Ne(this),{has:n,get:r}=Xs(t);let o=n.call(t,e);o||(e=Ne(e),o=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return o&&bn(t,"delete",e,void 0),s}function qi(){const e=Ne(this),t=e.size!==0,n=e.clear();return t&&bn(e,"clear",void 0,void 0),n}function Jo(e,t){return function(r,o){const s=this,l=s.__v_raw,a=Ne(l),i=t?Ba:e?Da:To;return!e&&xt(a,"iterate",dr),l.forEach((u,c)=>r.call(o,i(u),i(c),s))}}function Zo(e,t,n){return function(...r){const o=this.__v_raw,s=Ne(o),l=Ar(s),a=e==="entries"||e===Symbol.iterator&&l,i=e==="keys"&&l,u=o[e](...r),c=n?Ba:t?Da:To;return!t&&xt(s,"iterate",i?Dl:dr),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:a?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Tn(e){return function(...t){return e==="delete"?!1:this}}function Mv(){const e={get(s){return Yo(this,s)},get size(){return Xo(this)},has:Go,add:Ki,set:Vi,delete:Ui,clear:qi,forEach:Jo(!1,!1)},t={get(s){return Yo(this,s,!1,!0)},get size(){return Xo(this)},has:Go,add:Ki,set:Vi,delete:Ui,clear:qi,forEach:Jo(!1,!0)},n={get(s){return Yo(this,s,!0)},get size(){return Xo(this,!0)},has(s){return Go.call(this,s,!0)},add:Tn("add"),set:Tn("set"),delete:Tn("delete"),clear:Tn("clear"),forEach:Jo(!0,!1)},r={get(s){return Yo(this,s,!0,!0)},get size(){return Xo(this,!0)},has(s){return Go.call(this,s,!0)},add:Tn("add"),set:Tn("set"),delete:Tn("delete"),clear:Tn("clear"),forEach:Jo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Zo(s,!1,!1),n[s]=Zo(s,!0,!1),t[s]=Zo(s,!1,!0),r[s]=Zo(s,!0,!0)}),[e,n,t,r]}const[Pv,Rv,kv,Iv]=Mv();function Ha(e,t){const n=t?e?Iv:kv:e?Rv:Pv;return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(Ae(n,o)&&o in r?n:r,o,s)}const Lv={get:Ha(!1,!1)},Nv={get:Ha(!1,!0)},Fv={get:Ha(!0,!1)},Rf=new WeakMap,kf=new WeakMap,If=new WeakMap,Bv=new WeakMap;function Hv(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function zv(e){return e.__v_skip||!Object.isExtensible(e)?0:Hv(lv(e))}function Xt(e){return kr(e)?e:za(e,!1,Pf,Lv,Rf)}function Lf(e){return za(e,!1,Av,Nv,kf)}function Do(e){return za(e,!0,$v,Fv,If)}function za(e,t,n,r,o){if(!Pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const l=zv(e);if(l===0)return e;const a=new Proxy(e,l===2?r:n);return o.set(e,a),a}function Mr(e){return kr(e)?Mr(e.__v_raw):!!(e&&e.__v_isReactive)}function kr(e){return!!(e&&e.__v_isReadonly)}function Os(e){return!!(e&&e.__v_isShallow)}function Nf(e){return Mr(e)||kr(e)}function Ne(e){const t=e&&e.__v_raw;return t?Ne(t):e}function Ff(e){return xs(e,"__v_skip",!0),e}const To=e=>Pe(e)?Xt(e):e,Da=e=>Pe(e)?Do(e):e;function Bf(e){Hn&&jt&&(e=Ne(e),$f(e.dep||(e.dep=La())))}function Hf(e,t){e=Ne(e);const n=e.dep;n&&jl(n)}function Ve(e){return!!(e&&e.__v_isRef===!0)}function M(e){return zf(e,!1)}function Pr(e){return zf(e,!0)}function zf(e,t){return Ve(e)?e:new Dv(e,t)}class Dv{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Ne(t),this._value=n?t:To(t)}get value(){return Bf(this),this._value}set value(t){const n=this.__v_isShallow||Os(t)||kr(t);t=n?t:Ne(t),xo(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:To(t),Hf(this))}}function g(e){return Ve(e)?e.value:e}const jv={get:(e,t,n)=>g(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ve(o)&&!Ve(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Df(e){return Mr(e)?e:new Proxy(e,jv)}function ja(e){const t=fe(e)?new Array(e.length):{};for(const n in e)t[n]=At(e,n);return t}class Wv{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return mv(Ne(this._object),this._key)}}function At(e,t,n){const r=e[t];return Ve(r)?r:new Wv(e,t,n)}var jf;class Kv{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[jf]=!1,this._dirty=!0,this.effect=new Na(t,()=>{this._dirty||(this._dirty=!0,Hf(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=Ne(this);return Bf(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}jf="__v_isReadonly";function Wf(e,t,n=!1){let r,o;const s=we(e);return s?(r=e,o=at):(r=e.get,o=e.set),new Kv(r,o,s||!o,n)}function Vv(e,...t){}function zn(e,t,n,r){let o;try{o=r?e(...r):e()}catch(s){Js(s,t,n)}return o}function Nt(e,t,n,r){if(we(e)){const s=zn(e,t,n,r);return s&&Ss(s)&&s.catch(l=>{Js(l,t,n)}),s}const o=[];for(let s=0;s>>1;$o(ht[r])tn&&ht.splice(t,1)}function Gv(e){fe(e)?Rr.push(...e):(!gn||!gn.includes(e,e.allowRecurse?nr+1:nr))&&Rr.push(e),Vf()}function Yi(e,t=Oo?tn+1:0){for(;t$o(n)-$o(r)),nr=0;nre.id==null?1/0:e.id,Xv=(e,t)=>{const n=$o(e)-$o(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function qf(e){Wl=!1,Oo=!0,ht.sort(Xv);const t=at;try{for(tn=0;tnTe(p)?p.trim():p)),f&&(o=n.map(uv))}let a,i=r[a=ds(t)]||r[a=ds(Yt(t))];!i&&s&&(i=r[a=ds(yr(t))]),i&&Nt(i,e,6,o);const u=r[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Nt(u,e,6,o)}}function Yf(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let l={},a=!1;if(!we(e)){const i=u=>{const c=Yf(u,t,!0);c&&(a=!0,pt(l,c))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!s&&!a?(Pe(e)&&r.set(e,null),null):(fe(s)?s.forEach(i=>l[i]=null):pt(l,s),Pe(e)&&r.set(e,l),l)}function Zs(e,t){return!e||!Us(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ae(e,t[0].toLowerCase()+t.slice(1))||Ae(e,yr(t))||Ae(e,t))}let ft=null,Gf=null;function $s(e){const t=ft;return ft=e,Gf=e&&e.type.__scopeId||null,t}function ce(e,t=ft,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&lu(-1);const s=$s(t);let l;try{l=e(...o)}finally{$s(s),r._d&&lu(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function yl(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:s,propsOptions:[l],slots:a,attrs:i,emit:u,render:c,renderCache:f,data:d,setupState:p,ctx:h,inheritAttrs:v}=e;let b,m;const w=$s(e);try{if(n.shapeFlag&4){const y=o||r;b=en(c.call(y,y,f,s,p,d,h)),m=i}else{const y=t;b=en(y.length>1?y(s,{attrs:i,slots:a,emit:u}):y(s,null)),m=t.props?i:Zv(i)}}catch(y){mo.length=0,Js(y,e,1),b=ie(_t)}let S=b;if(m&&v!==!1){const y=Object.keys(m),{shapeFlag:E}=S;y.length&&E&7&&(l&&y.some(Ra)&&(m=Qv(m,l)),S=wn(S,m))}return n.dirs&&(S=wn(S),S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&(S.transition=n.transition),b=S,$s(w),b}const Zv=e=>{let t;for(const n in e)(n==="class"||n==="style"||Us(n))&&((t||(t={}))[n]=e[n]);return t},Qv=(e,t)=>{const n={};for(const r in e)(!Ra(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function em(e,t,n){const{props:r,children:o,component:s}=e,{props:l,children:a,patchFlag:i}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return r?Gi(r,l,u):!!l;if(i&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function rm(e,t){t&&t.pendingBranch?fe(e)?t.effects.push(...e):t.effects.push(e):Gv(e)}function it(e,t){if(nt){let n=nt.provides;const r=nt.parent&&nt.parent.provides;r===n&&(n=nt.provides=Object.create(r)),n[e]=t}}function Ce(e,t,n=!1){const r=nt||ft;if(r){const o=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&we(t)?t.call(r.proxy):t}}function Dn(e,t){return Va(e,null,t)}const Qo={};function de(e,t,n){return Va(e,t,n)}function Va(e,t,{immediate:n,deep:r,flush:o,onTrack:s,onTrigger:l}=Ge){const a=Ef()===(nt==null?void 0:nt.scope)?nt:null;let i,u=!1,c=!1;if(Ve(e)?(i=()=>e.value,u=Os(e)):Mr(e)?(i=()=>e,r=!0):fe(e)?(c=!0,u=e.some(S=>Mr(S)||Os(S)),i=()=>e.map(S=>{if(Ve(S))return S.value;if(Mr(S))return lr(S);if(we(S))return zn(S,a,2)})):we(e)?t?i=()=>zn(e,a,2):i=()=>{if(!(a&&a.isUnmounted))return f&&f(),Nt(e,a,3,[d])}:i=at,t&&r){const S=i;i=()=>lr(S())}let f,d=S=>{f=m.onStop=()=>{zn(S,a,4)}},p;if(Mo)if(d=at,t?n&&Nt(t,a,3,[i(),c?[]:void 0,d]):i(),o==="sync"){const S=Gm();p=S.__watcherHandles||(S.__watcherHandles=[])}else return at;let h=c?new Array(e.length).fill(Qo):Qo;const v=()=>{if(m.active)if(t){const S=m.run();(r||u||(c?S.some((y,E)=>xo(y,h[E])):xo(S,h)))&&(f&&f(),Nt(t,a,3,[S,h===Qo?void 0:c&&h[0]===Qo?[]:h,d]),h=S)}else m.run()};v.allowRecurse=!!t;let b;o==="sync"?b=v:o==="post"?b=()=>wt(v,a&&a.suspense):(v.pre=!0,a&&(v.id=a.uid),b=()=>Ka(v));const m=new Na(i,b);t?n?v():h=m.run():o==="post"?wt(m.run.bind(m),a&&a.suspense):m.run();const w=()=>{m.stop(),a&&a.scope&&ka(a.scope.effects,m)};return p&&p.push(w),w}function om(e,t,n){const r=this.proxy,o=Te(e)?e.includes(".")?Xf(r,e):()=>r[e]:e.bind(r,r);let s;we(t)?s=t:(s=t.handler,n=t);const l=nt;Ir(this);const a=Va(o,s.bind(r),n);return l?Ir(l):pr(),a}function Xf(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{lr(n,t)});else if(Cf(e))for(const n in e)lr(e[n],t);return e}function sm(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Je(()=>{e.isMounted=!0}),mt(()=>{e.isUnmounting=!0}),e}const Lt=[Function,Array],lm={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Lt,onEnter:Lt,onAfterEnter:Lt,onEnterCancelled:Lt,onBeforeLeave:Lt,onLeave:Lt,onAfterLeave:Lt,onLeaveCancelled:Lt,onBeforeAppear:Lt,onAppear:Lt,onAfterAppear:Lt,onAppearCancelled:Lt},setup(e,{slots:t}){const n=Ke(),r=sm();let o;return()=>{const s=t.default&&Qf(t.default(),!0);if(!s||!s.length)return;let l=s[0];if(s.length>1){for(const v of s)if(v.type!==_t){l=v;break}}const a=Ne(e),{mode:i}=a;if(r.isLeaving)return bl(l);const u=Xi(l);if(!u)return bl(l);const c=Kl(u,a,r,n);Vl(u,c);const f=n.subTree,d=f&&Xi(f);let p=!1;const{getTransitionKey:h}=u.type;if(h){const v=h();o===void 0?o=v:v!==o&&(o=v,p=!0)}if(d&&d.type!==_t&&(!rr(u,d)||p)){const v=Kl(d,a,r,n);if(Vl(d,v),i==="out-in")return r.isLeaving=!0,v.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},bl(l);i==="in-out"&&u.type!==_t&&(v.delayLeave=(b,m,w)=>{const S=Zf(r,d);S[String(d.key)]=d,b._leaveCb=()=>{m(),b._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=w})}return l}}},Jf=lm;function Zf(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Kl(e,t,n,r){const{appear:o,mode:s,persisted:l=!1,onBeforeEnter:a,onEnter:i,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:p,onLeaveCancelled:h,onBeforeAppear:v,onAppear:b,onAfterAppear:m,onAppearCancelled:w}=t,S=String(e.key),y=Zf(n,e),E=(x,R)=>{x&&Nt(x,r,9,R)},T=(x,R)=>{const B=R[1];E(x,R),fe(x)?x.every(I=>I.length<=1)&&B():x.length<=1&&B()},C={mode:s,persisted:l,beforeEnter(x){let R=a;if(!n.isMounted)if(o)R=v||a;else return;x._leaveCb&&x._leaveCb(!0);const B=y[S];B&&rr(e,B)&&B.el._leaveCb&&B.el._leaveCb(),E(R,[x])},enter(x){let R=i,B=u,I=c;if(!n.isMounted)if(o)R=b||i,B=m||u,I=w||c;else return;let A=!1;const D=x._enterCb=re=>{A||(A=!0,re?E(I,[x]):E(B,[x]),C.delayedLeave&&C.delayedLeave(),x._enterCb=void 0)};R?T(R,[x,D]):D()},leave(x,R){const B=String(e.key);if(x._enterCb&&x._enterCb(!0),n.isUnmounting)return R();E(f,[x]);let I=!1;const A=x._leaveCb=D=>{I||(I=!0,R(),D?E(h,[x]):E(p,[x]),x._leaveCb=void 0,y[B]===e&&delete y[B])};y[B]=e,d?T(d,[x,A]):A()},clone(x){return Kl(x,t,n,r)}};return C}function bl(e){if(Qs(e))return e=wn(e),e.children=null,e}function Xi(e){return Qs(e)?e.children?e.children[0]:void 0:e}function Vl(e,t){e.shapeFlag&6&&e.component?Vl(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Qf(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader,Qs=e=>e.type.__isKeepAlive;function am(e,t){td(e,"a",t)}function ed(e,t){td(e,"da",t)}function td(e,t,n=nt){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(el(t,r,n),n){let o=n.parent;for(;o&&o.parent;)Qs(o.parent.vnode)&&im(r,t,n,o),o=o.parent}}function im(e,t,n,r){const o=el(t,e,r,!0);Zr(()=>{ka(r[t],o)},n)}function el(e,t,n=nt,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;Xr(),Ir(n);const a=Nt(t,n,e,l);return pr(),Jr(),a});return r?o.unshift(s):o.push(s),s}}const Cn=e=>(t,n=nt)=>(!Mo||e==="sp")&&el(e,(...r)=>t(...r),n),tl=Cn("bm"),Je=Cn("m"),um=Cn("bu"),Ua=Cn("u"),mt=Cn("bum"),Zr=Cn("um"),cm=Cn("sp"),fm=Cn("rtg"),dm=Cn("rtc");function pm(e,t=nt){el("ec",e,t)}function ut(e,t){const n=ft;if(n===null)return e;const r=rl(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let s=0;st(l,a,void 0,s&&s[a]));else{const l=Object.keys(e);o=new Array(l.length);for(let a=0,i=l.length;aln(t)?!(t.type===_t||t.type===Ue&&!od(t.children)):!0)?e:null}function vm(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:ds(r)]=e[r];return n}const Ul=e=>e?vd(e)?rl(e)||e.proxy:Ul(e.parent):null,ho=pt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ul(e.parent),$root:e=>Ul(e.root),$emit:e=>e.emit,$options:e=>Ga(e),$forceUpdate:e=>e.f||(e.f=()=>Ka(e.update)),$nextTick:e=>e.n||(e.n=We.bind(e.proxy)),$watch:e=>om.bind(e)}),wl=(e,t)=>e!==Ge&&!e.__isScriptSetup&&Ae(e,t),mm={get({_:e},t){const{ctx:n,setupState:r,data:o,props:s,accessCache:l,type:a,appContext:i}=e;let u;if(t[0]!=="$"){const p=l[t];if(p!==void 0)switch(p){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(wl(r,t))return l[t]=1,r[t];if(o!==Ge&&Ae(o,t))return l[t]=2,o[t];if((u=e.propsOptions[0])&&Ae(u,t))return l[t]=3,s[t];if(n!==Ge&&Ae(n,t))return l[t]=4,n[t];ql&&(l[t]=0)}}const c=ho[t];let f,d;if(c)return t==="$attrs"&&xt(e,"get",t),c(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==Ge&&Ae(n,t))return l[t]=4,n[t];if(d=i.config.globalProperties,Ae(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return wl(o,t)?(o[t]=n,!0):r!==Ge&&Ae(r,t)?(r[t]=n,!0):Ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},l){let a;return!!n[l]||e!==Ge&&Ae(e,l)||wl(t,l)||(a=s[0])&&Ae(a,l)||Ae(r,l)||Ae(ho,l)||Ae(o.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ae(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let ql=!0;function gm(e){const t=Ga(e),n=e.proxy,r=e.ctx;ql=!1,t.beforeCreate&&Qi(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:l,watch:a,provide:i,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:p,updated:h,activated:v,deactivated:b,beforeDestroy:m,beforeUnmount:w,destroyed:S,unmounted:y,render:E,renderTracked:T,renderTriggered:C,errorCaptured:x,serverPrefetch:R,expose:B,inheritAttrs:I,components:A,directives:D,filters:re}=t;if(u&&ym(u,r,null,e.appContext.config.unwrapInjectedRef),l)for(const j in l){const z=l[j];we(z)&&(r[j]=z.bind(n))}if(o){const j=o.call(n,n);Pe(j)&&(e.data=Xt(j))}if(ql=!0,s)for(const j in s){const z=s[j],P=we(z)?z.bind(n,n):we(z.get)?z.get.bind(n,n):at,Q=!we(z)&&we(z.set)?z.set.bind(n):at,he=$({get:P,set:Q});Object.defineProperty(r,j,{enumerable:!0,configurable:!0,get:()=>he.value,set:xe=>he.value=xe})}if(a)for(const j in a)sd(a[j],r,n,j);if(i){const j=we(i)?i.call(n):i;Reflect.ownKeys(j).forEach(z=>{it(z,j[z])})}c&&Qi(c,e,"c");function U(j,z){fe(z)?z.forEach(P=>j(P.bind(n))):z&&j(z.bind(n))}if(U(tl,f),U(Je,d),U(um,p),U(Ua,h),U(am,v),U(ed,b),U(pm,x),U(dm,T),U(fm,C),U(mt,w),U(Zr,y),U(cm,R),fe(B))if(B.length){const j=e.exposed||(e.exposed={});B.forEach(z=>{Object.defineProperty(j,z,{get:()=>n[z],set:P=>n[z]=P})})}else e.exposed||(e.exposed={});E&&e.render===at&&(e.render=E),I!=null&&(e.inheritAttrs=I),A&&(e.components=A),D&&(e.directives=D)}function ym(e,t,n=at,r=!1){fe(e)&&(e=Yl(e));for(const o in e){const s=e[o];let l;Pe(s)?"default"in s?l=Ce(s.from||o,s.default,!0):l=Ce(s.from||o):l=Ce(s),Ve(l)&&r?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>l.value,set:a=>l.value=a}):t[o]=l}}function Qi(e,t,n){Nt(fe(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function sd(e,t,n,r){const o=r.includes(".")?Xf(n,r):()=>n[r];if(Te(e)){const s=t[e];we(s)&&de(o,s)}else if(we(e))de(o,e.bind(n));else if(Pe(e))if(fe(e))e.forEach(s=>sd(s,t,n,r));else{const s=we(e.handler)?e.handler.bind(n):t[e.handler];we(s)&&de(o,s,e)}}function Ga(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:l}}=e.appContext,a=s.get(t);let i;return a?i=a:!o.length&&!n&&!r?i=t:(i={},o.length&&o.forEach(u=>As(i,u,l,!0)),As(i,t,l)),Pe(t)&&s.set(t,i),i}function As(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&As(e,s,n,!0),o&&o.forEach(l=>As(e,l,n,!0));for(const l in t)if(!(r&&l==="expose")){const a=bm[l]||n&&n[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const bm={data:eu,props:Qn,emits:Qn,methods:Qn,computed:Qn,beforeCreate:gt,created:gt,beforeMount:gt,mounted:gt,beforeUpdate:gt,updated:gt,beforeDestroy:gt,beforeUnmount:gt,destroyed:gt,unmounted:gt,activated:gt,deactivated:gt,errorCaptured:gt,serverPrefetch:gt,components:Qn,directives:Qn,watch:_m,provide:eu,inject:wm};function eu(e,t){return t?e?function(){return pt(we(e)?e.call(this,this):e,we(t)?t.call(this,this):t)}:t:e}function wm(e,t){return Qn(Yl(e),Yl(t))}function Yl(e){if(fe(e)){const t={};for(let n=0;n0)&&!(l&16)){if(l&8){const c=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[d,p]=ad(f,t,!0);pt(l,d),p&&a.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!i)return Pe(e)&&r.set(e,$r),$r;if(fe(s))for(let c=0;c-1,p[1]=v<0||h-1||Ae(p,"default"))&&a.push(f)}}}const u=[l,a];return Pe(e)&&r.set(e,u),u}function tu(e){return e[0]!=="$"}function nu(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function ru(e,t){return nu(e)===nu(t)}function ou(e,t){return fe(t)?t.findIndex(n=>ru(n,e)):we(t)&&ru(t,e)?0:-1}const id=e=>e[0]==="_"||e==="$stable",Xa=e=>fe(e)?e.map(en):[en(e)],Sm=(e,t,n)=>{if(t._n)return t;const r=ce((...o)=>Xa(t(...o)),n);return r._c=!1,r},ud=(e,t,n)=>{const r=e._ctx;for(const o in e){if(id(o))continue;const s=e[o];if(we(s))t[o]=Sm(o,s,r);else if(s!=null){const l=Xa(s);t[o]=()=>l}}},cd=(e,t)=>{const n=Xa(t);e.slots.default=()=>n},xm=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Ne(t),xs(t,"_",n)):ud(t,e.slots={})}else e.slots={},t&&cd(e,t);xs(e.slots,nl,1)},Tm=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,l=Ge;if(r.shapeFlag&32){const a=t._;a?n&&a===1?s=!1:(pt(o,t),!n&&a===1&&delete o._):(s=!t.$stable,ud(t,o)),l=t}else t&&(cd(e,t),l={default:1});if(s)for(const a in o)!id(a)&&!(a in l)&&delete o[a]};function fd(){return{app:null,config:{isNativeTag:rv,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Om=0;function $m(e,t){return function(r,o=null){we(r)||(r=Object.assign({},r)),o!=null&&!Pe(o)&&(o=null);const s=fd(),l=new Set;let a=!1;const i=s.app={_uid:Om++,_component:r,_props:o,_container:null,_context:s,_instance:null,version:Xm,get config(){return s.config},set config(u){},use(u,...c){return l.has(u)||(u&&we(u.install)?(l.add(u),u.install(i,...c)):we(u)&&(l.add(u),u(i,...c))),i},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),i},component(u,c){return c?(s.components[u]=c,i):s.components[u]},directive(u,c){return c?(s.directives[u]=c,i):s.directives[u]},mount(u,c,f){if(!a){const d=ie(r,o);return d.appContext=s,c&&t?t(d,u):e(d,u,f),a=!0,i._container=u,u.__vue_app__=i,rl(d.component)||d.component.proxy}},unmount(){a&&(e(null,i._container),delete i._container.__vue_app__)},provide(u,c){return s.provides[u]=c,i}};return i}}function Xl(e,t,n,r,o=!1){if(fe(e)){e.forEach((d,p)=>Xl(d,t&&(fe(t)?t[p]:t),n,r,o));return}if(po(r)&&!o)return;const s=r.shapeFlag&4?rl(r.component)||r.component.proxy:r.el,l=o?null:s,{i:a,r:i}=e,u=t&&t.r,c=a.refs===Ge?a.refs={}:a.refs,f=a.setupState;if(u!=null&&u!==i&&(Te(u)?(c[u]=null,Ae(f,u)&&(f[u]=null)):Ve(u)&&(u.value=null)),we(i))zn(i,a,12,[l,c]);else{const d=Te(i),p=Ve(i);if(d||p){const h=()=>{if(e.f){const v=d?Ae(f,i)?f[i]:c[i]:i.value;o?fe(v)&&ka(v,s):fe(v)?v.includes(s)||v.push(s):d?(c[i]=[s],Ae(f,i)&&(f[i]=c[i])):(i.value=[s],e.k&&(c[e.k]=i.value))}else d?(c[i]=l,Ae(f,i)&&(f[i]=l)):p&&(i.value=l,e.k&&(c[e.k]=l))};l?(h.id=-1,wt(h,n)):h()}}}const wt=rm;function Am(e){return Mm(e)}function Mm(e,t){const n=fv();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:l,createText:a,createComment:i,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:p=at,insertStaticContent:h}=e,v=(_,O,N,H=null,W=null,Y=null,te=!1,G=null,X=!!O.dynamicChildren)=>{if(_===O)return;_&&!rr(_,O)&&(H=q(_),xe(_,W,Y,!0),_=null),O.patchFlag===-2&&(X=!1,O.dynamicChildren=null);const{type:K,ref:pe,shapeFlag:le}=O;switch(K){case Qr:b(_,O,N,H);break;case _t:m(_,O,N,H);break;case _l:_==null&&w(O,N,H,te);break;case Ue:A(_,O,N,H,W,Y,te,G,X);break;default:le&1?E(_,O,N,H,W,Y,te,G,X):le&6?D(_,O,N,H,W,Y,te,G,X):(le&64||le&128)&&K.process(_,O,N,H,W,Y,te,G,X,_e)}pe!=null&&W&&Xl(pe,_&&_.ref,Y,O||_,!O)},b=(_,O,N,H)=>{if(_==null)r(O.el=a(O.children),N,H);else{const W=O.el=_.el;O.children!==_.children&&u(W,O.children)}},m=(_,O,N,H)=>{_==null?r(O.el=i(O.children||""),N,H):O.el=_.el},w=(_,O,N,H)=>{[_.el,_.anchor]=h(_.children,O,N,H,_.el,_.anchor)},S=({el:_,anchor:O},N,H)=>{let W;for(;_&&_!==O;)W=d(_),r(_,N,H),_=W;r(O,N,H)},y=({el:_,anchor:O})=>{let N;for(;_&&_!==O;)N=d(_),o(_),_=N;o(O)},E=(_,O,N,H,W,Y,te,G,X)=>{te=te||O.type==="svg",_==null?T(O,N,H,W,Y,te,G,X):R(_,O,W,Y,te,G,X)},T=(_,O,N,H,W,Y,te,G)=>{let X,K;const{type:pe,props:le,shapeFlag:k,transition:ne,dirs:ye}=_;if(X=_.el=l(_.type,Y,le&&le.is,le),k&8?c(X,_.children):k&16&&x(_.children,X,null,H,W,Y&&pe!=="foreignObject",te,G),ye&&Yn(_,null,H,"created"),C(X,_,_.scopeId,te,H),le){for(const Le in le)Le!=="value"&&!fs(Le)&&s(X,Le,null,le[Le],Y,_.children,H,W,J);"value"in le&&s(X,"value",null,le.value),(K=le.onVnodeBeforeMount)&&Qt(K,H,_)}ye&&Yn(_,null,H,"beforeMount");const Ie=(!W||W&&!W.pendingBranch)&&ne&&!ne.persisted;Ie&&ne.beforeEnter(X),r(X,O,N),((K=le&&le.onVnodeMounted)||Ie||ye)&&wt(()=>{K&&Qt(K,H,_),Ie&&ne.enter(X),ye&&Yn(_,null,H,"mounted")},W)},C=(_,O,N,H,W)=>{if(N&&p(_,N),H)for(let Y=0;Y{for(let K=X;K<_.length;K++){const pe=_[K]=G?In(_[K]):en(_[K]);v(null,pe,O,N,H,W,Y,te,G)}},R=(_,O,N,H,W,Y,te)=>{const G=O.el=_.el;let{patchFlag:X,dynamicChildren:K,dirs:pe}=O;X|=_.patchFlag&16;const le=_.props||Ge,k=O.props||Ge;let ne;N&&Gn(N,!1),(ne=k.onVnodeBeforeUpdate)&&Qt(ne,N,O,_),pe&&Yn(O,_,N,"beforeUpdate"),N&&Gn(N,!0);const ye=W&&O.type!=="foreignObject";if(K?B(_.dynamicChildren,K,G,N,H,ye,Y):te||z(_,O,G,null,N,H,ye,Y,!1),X>0){if(X&16)I(G,O,le,k,N,H,W);else if(X&2&&le.class!==k.class&&s(G,"class",null,k.class,W),X&4&&s(G,"style",le.style,k.style,W),X&8){const Ie=O.dynamicProps;for(let Le=0;Le{ne&&Qt(ne,N,O,_),pe&&Yn(O,_,N,"updated")},H)},B=(_,O,N,H,W,Y,te)=>{for(let G=0;G{if(N!==H){if(N!==Ge)for(const G in N)!fs(G)&&!(G in H)&&s(_,G,N[G],null,te,O.children,W,Y,J);for(const G in H){if(fs(G))continue;const X=H[G],K=N[G];X!==K&&G!=="value"&&s(_,G,K,X,te,O.children,W,Y,J)}"value"in H&&s(_,"value",N.value,H.value)}},A=(_,O,N,H,W,Y,te,G,X)=>{const K=O.el=_?_.el:a(""),pe=O.anchor=_?_.anchor:a("");let{patchFlag:le,dynamicChildren:k,slotScopeIds:ne}=O;ne&&(G=G?G.concat(ne):ne),_==null?(r(K,N,H),r(pe,N,H),x(O.children,N,pe,W,Y,te,G,X)):le>0&&le&64&&k&&_.dynamicChildren?(B(_.dynamicChildren,k,N,W,Y,te,G),(O.key!=null||W&&O===W.subTree)&&Ja(_,O,!0)):z(_,O,N,pe,W,Y,te,G,X)},D=(_,O,N,H,W,Y,te,G,X)=>{O.slotScopeIds=G,_==null?O.shapeFlag&512?W.ctx.activate(O,N,H,te,X):re(O,N,H,W,Y,te,X):ee(_,O,X)},re=(_,O,N,H,W,Y,te)=>{const G=_.component=Dm(_,H,W);if(Qs(_)&&(G.ctx.renderer=_e),jm(G),G.asyncDep){if(W&&W.registerDep(G,U),!_.el){const X=G.subTree=ie(_t);m(null,X,O,N)}return}U(G,_,O,N,W,Y,te)},ee=(_,O,N)=>{const H=O.component=_.component;if(em(_,O,N))if(H.asyncDep&&!H.asyncResolved){j(H,O,N);return}else H.next=O,Yv(H.update),H.update();else O.el=_.el,H.vnode=O},U=(_,O,N,H,W,Y,te)=>{const G=()=>{if(_.isMounted){let{next:pe,bu:le,u:k,parent:ne,vnode:ye}=_,Ie=pe,Le;Gn(_,!1),pe?(pe.el=ye.el,j(_,pe,te)):pe=ye,le&&ps(le),(Le=pe.props&&pe.props.onVnodeBeforeUpdate)&&Qt(Le,ne,pe,ye),Gn(_,!0);const tt=yl(_),ae=_.subTree;_.subTree=tt,v(ae,tt,f(ae.el),q(ae),_,W,Y),pe.el=tt.el,Ie===null&&tm(_,tt.el),k&&wt(k,W),(Le=pe.props&&pe.props.onVnodeUpdated)&&wt(()=>Qt(Le,ne,pe,ye),W)}else{let pe;const{el:le,props:k}=O,{bm:ne,m:ye,parent:Ie}=_,Le=po(O);if(Gn(_,!1),ne&&ps(ne),!Le&&(pe=k&&k.onVnodeBeforeMount)&&Qt(pe,Ie,O),Gn(_,!0),le&&Ee){const tt=()=>{_.subTree=yl(_),Ee(le,_.subTree,_,W,null)};Le?O.type.__asyncLoader().then(()=>!_.isUnmounted&&tt()):tt()}else{const tt=_.subTree=yl(_);v(null,tt,N,H,_,W,Y),O.el=tt.el}if(ye&&wt(ye,W),!Le&&(pe=k&&k.onVnodeMounted)){const tt=O;wt(()=>Qt(pe,Ie,tt),W)}(O.shapeFlag&256||Ie&&po(Ie.vnode)&&Ie.vnode.shapeFlag&256)&&_.a&&wt(_.a,W),_.isMounted=!0,O=N=H=null}},X=_.effect=new Na(G,()=>Ka(K),_.scope),K=_.update=()=>X.run();K.id=_.uid,Gn(_,!0),K()},j=(_,O,N)=>{O.component=_;const H=_.vnode.props;_.vnode=O,_.next=null,Em(_,O.props,H,N),Tm(_,O.children,N),Xr(),Yi(),Jr()},z=(_,O,N,H,W,Y,te,G,X=!1)=>{const K=_&&_.children,pe=_?_.shapeFlag:0,le=O.children,{patchFlag:k,shapeFlag:ne}=O;if(k>0){if(k&128){Q(K,le,N,H,W,Y,te,G,X);return}else if(k&256){P(K,le,N,H,W,Y,te,G,X);return}}ne&8?(pe&16&&J(K,W,Y),le!==K&&c(N,le)):pe&16?ne&16?Q(K,le,N,H,W,Y,te,G,X):J(K,W,Y,!0):(pe&8&&c(N,""),ne&16&&x(le,N,H,W,Y,te,G,X))},P=(_,O,N,H,W,Y,te,G,X)=>{_=_||$r,O=O||$r;const K=_.length,pe=O.length,le=Math.min(K,pe);let k;for(k=0;kpe?J(_,W,Y,!0,!1,le):x(O,N,H,W,Y,te,G,X,le)},Q=(_,O,N,H,W,Y,te,G,X)=>{let K=0;const pe=O.length;let le=_.length-1,k=pe-1;for(;K<=le&&K<=k;){const ne=_[K],ye=O[K]=X?In(O[K]):en(O[K]);if(rr(ne,ye))v(ne,ye,N,null,W,Y,te,G,X);else break;K++}for(;K<=le&&K<=k;){const ne=_[le],ye=O[k]=X?In(O[k]):en(O[k]);if(rr(ne,ye))v(ne,ye,N,null,W,Y,te,G,X);else break;le--,k--}if(K>le){if(K<=k){const ne=k+1,ye=nek)for(;K<=le;)xe(_[K],W,Y,!0),K++;else{const ne=K,ye=K,Ie=new Map;for(K=ye;K<=k;K++){const ze=O[K]=X?In(O[K]):en(O[K]);ze.key!=null&&Ie.set(ze.key,K)}let Le,tt=0;const ae=k-ye+1;let be=!1,ke=0;const $e=new Array(ae);for(K=0;K=ae){xe(ze,W,Y,!0);continue}let Qe;if(ze.key!=null)Qe=Ie.get(ze.key);else for(Le=ye;Le<=k;Le++)if($e[Le-ye]===0&&rr(ze,O[Le])){Qe=Le;break}Qe===void 0?xe(ze,W,Y,!0):($e[Qe-ye]=K+1,Qe>=ke?ke=Qe:be=!0,v(ze,O[Qe],N,null,W,Y,te,G,X),tt++)}const He=be?Pm($e):$r;for(Le=He.length-1,K=ae-1;K>=0;K--){const ze=ye+K,Qe=O[ze],dn=ze+1{const{el:Y,type:te,transition:G,children:X,shapeFlag:K}=_;if(K&6){he(_.component.subTree,O,N,H);return}if(K&128){_.suspense.move(O,N,H);return}if(K&64){te.move(_,O,N,_e);return}if(te===Ue){r(Y,O,N);for(let le=0;leG.enter(Y),W);else{const{leave:le,delayLeave:k,afterLeave:ne}=G,ye=()=>r(Y,O,N),Ie=()=>{le(Y,()=>{ye(),ne&&ne()})};k?k(Y,ye,Ie):Ie()}else r(Y,O,N)},xe=(_,O,N,H=!1,W=!1)=>{const{type:Y,props:te,ref:G,children:X,dynamicChildren:K,shapeFlag:pe,patchFlag:le,dirs:k}=_;if(G!=null&&Xl(G,null,N,_,!0),pe&256){O.ctx.deactivate(_);return}const ne=pe&1&&k,ye=!po(_);let Ie;if(ye&&(Ie=te&&te.onVnodeBeforeUnmount)&&Qt(Ie,O,_),pe&6)L(_.component,N,H);else{if(pe&128){_.suspense.unmount(N,H);return}ne&&Yn(_,null,O,"beforeUnmount"),pe&64?_.type.remove(_,O,N,W,_e,H):K&&(Y!==Ue||le>0&&le&64)?J(K,O,N,!1,!0):(Y===Ue&&le&384||!W&&pe&16)&&J(X,O,N),H&&Re(_)}(ye&&(Ie=te&&te.onVnodeUnmounted)||ne)&&wt(()=>{Ie&&Qt(Ie,O,_),ne&&Yn(_,null,O,"unmounted")},N)},Re=_=>{const{type:O,el:N,anchor:H,transition:W}=_;if(O===Ue){Fe(N,H);return}if(O===_l){y(_);return}const Y=()=>{o(N),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(_.shapeFlag&1&&W&&!W.persisted){const{leave:te,delayLeave:G}=W,X=()=>te(N,Y);G?G(_.el,Y,X):X()}else Y()},Fe=(_,O)=>{let N;for(;_!==O;)N=d(_),o(_),_=N;o(O)},L=(_,O,N)=>{const{bum:H,scope:W,update:Y,subTree:te,um:G}=_;H&&ps(H),W.stop(),Y&&(Y.active=!1,xe(te,_,O,N)),G&&wt(G,O),wt(()=>{_.isUnmounted=!0},O),O&&O.pendingBranch&&!O.isUnmounted&&_.asyncDep&&!_.asyncResolved&&_.suspenseId===O.pendingId&&(O.deps--,O.deps===0&&O.resolve())},J=(_,O,N,H=!1,W=!1,Y=0)=>{for(let te=Y;te<_.length;te++)xe(_[te],O,N,H,W)},q=_=>_.shapeFlag&6?q(_.component.subTree):_.shapeFlag&128?_.suspense.next():d(_.anchor||_.el),Z=(_,O,N)=>{_==null?O._vnode&&xe(O._vnode,null,null,!0):v(O._vnode||null,_,O,null,null,null,N),Yi(),Uf(),O._vnode=_},_e={p:v,um:xe,m:he,r:Re,mt:re,mc:x,pc:z,pbc:B,n:q,o:e};let Be,Ee;return t&&([Be,Ee]=t(_e)),{render:Z,hydrate:Be,createApp:$m(Z,Be)}}function Gn({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ja(e,t,n=!1){const r=e.children,o=t.children;if(fe(r)&&fe(o))for(let s=0;s>1,e[n[a]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,l=n[s-1];s-- >0;)n[s]=l,l=t[l];return n}const Rm=e=>e.__isTeleport,vo=e=>e&&(e.disabled||e.disabled===""),su=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Jl=(e,t)=>{const n=e&&e.to;return Te(n)?t?t(n):null:n},km={__isTeleport:!0,process(e,t,n,r,o,s,l,a,i,u){const{mc:c,pc:f,pbc:d,o:{insert:p,querySelector:h,createText:v,createComment:b}}=u,m=vo(t.props);let{shapeFlag:w,children:S,dynamicChildren:y}=t;if(e==null){const E=t.el=v(""),T=t.anchor=v("");p(E,n,r),p(T,n,r);const C=t.target=Jl(t.props,h),x=t.targetAnchor=v("");C&&(p(x,C),l=l||su(C));const R=(B,I)=>{w&16&&c(S,B,I,o,s,l,a,i)};m?R(n,T):C&&R(C,x)}else{t.el=e.el;const E=t.anchor=e.anchor,T=t.target=e.target,C=t.targetAnchor=e.targetAnchor,x=vo(e.props),R=x?n:T,B=x?E:C;if(l=l||su(T),y?(d(e.dynamicChildren,y,R,o,s,l,a),Ja(e,t,!0)):i||f(e,t,R,B,o,s,l,a,!1),m)x||es(t,n,E,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const I=t.target=Jl(t.props,h);I&&es(t,I,null,u,0)}else x&&es(t,T,C,u,1)}dd(t)},remove(e,t,n,r,{um:o,o:{remove:s}},l){const{shapeFlag:a,children:i,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&s(c),(l||!vo(d))&&(s(u),a&16))for(let p=0;p0?Wt||$r:null,Nm(),Ao>0&&Wt&&Wt.push(e),e}function oe(e,t,n,r,o,s){return pd(se(e,t,n,r,o,s,!0))}function me(e,t,n,r,o){return pd(ie(e,t,n,r,o,!0))}function ln(e){return e?e.__v_isVNode===!0:!1}function rr(e,t){return e.type===t.type&&e.key===t.key}const nl="__vInternal",hd=({key:e})=>e??null,hs=({ref:e,ref_key:t,ref_for:n})=>e!=null?Te(e)||Ve(e)||we(e)?{i:ft,r:e,k:t,f:!!n}:e:null;function se(e,t=null,n=null,r=0,o=null,s=e===Ue?0:1,l=!1,a=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&hd(t),ref:t&&hs(t),scopeId:Gf,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:ft};return a?(Za(i,n),s&128&&e.normalize(i)):n&&(i.shapeFlag|=Te(n)?8:16),Ao>0&&!l&&Wt&&(i.patchFlag>0||s&6)&&i.patchFlag!==32&&Wt.push(i),i}const ie=Fm;function Fm(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===nd)&&(e=_t),ln(e)){const a=wn(e,t,!0);return n&&Za(a,n),Ao>0&&!s&&Wt&&(a.shapeFlag&6?Wt[Wt.indexOf(e)]=a:Wt.push(a)),a.patchFlag|=-2,a}if(Um(e)&&(e=e.__vccOpts),t){t=Bm(t);let{class:a,style:i}=t;a&&!Te(a)&&(t.class=V(a)),Pe(i)&&(Nf(i)&&!fe(i)&&(i=pt({},i)),t.style=et(i))}const l=Te(e)?1:nm(e)?128:Rm(e)?64:Pe(e)?4:we(e)?2:0;return se(e,t,n,r,o,l,s,!0)}function Bm(e){return e?Nf(e)||nl in e?pt({},e):e:null}function wn(e,t,n=!1){const{props:r,ref:o,patchFlag:s,children:l}=e,a=t?nn(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&hd(a),ref:t&&t.ref?n&&o?fe(o)?o.concat(hs(t)):[o,hs(t)]:hs(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ue?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&wn(e.ssContent),ssFallback:e.ssFallback&&wn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ct(e=" ",t=0){return ie(Qr,null,e,t)}function ge(e="",t=!1){return t?(F(),me(_t,null,e)):ie(_t,null,e)}function en(e){return e==null||typeof e=="boolean"?ie(_t):fe(e)?ie(Ue,null,e.slice()):typeof e=="object"?In(e):ie(Qr,null,String(e))}function In(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:wn(e)}function Za(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(fe(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),Za(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(nl in t)?t._ctx=ft:o===3&&ft&&(ft.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else we(t)?(t={default:t,_ctx:ft},n=32):(t=String(t),r&64?(n=16,t=[Ct(t)]):n=8);e.children=t,e.shapeFlag|=n}function nn(...e){const t={};for(let n=0;nnt||ft,Ir=e=>{nt=e,e.scope.on()},pr=()=>{nt&&nt.scope.off(),nt=null};function vd(e){return e.vnode.shapeFlag&4}let Mo=!1;function jm(e,t=!1){Mo=t;const{props:n,children:r}=e.vnode,o=vd(e);Cm(e,n,o,t),xm(e,r);const s=o?Wm(e,t):void 0;return Mo=!1,s}function Wm(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ff(new Proxy(e.ctx,mm));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?gd(e):null;Ir(e),Xr();const s=zn(r,e,0,[e.props,o]);if(Jr(),pr(),Ss(s)){if(s.then(pr,pr),t)return s.then(l=>{au(e,l,t)}).catch(l=>{Js(l,e,0)});e.asyncDep=s}else au(e,s,t)}else md(e,t)}function au(e,t,n){we(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Pe(t)&&(e.setupState=Df(t)),md(e,n)}let iu;function md(e,t,n){const r=e.type;if(!e.render){if(!t&&iu&&!r.render){const o=r.template||Ga(e).template;if(o){const{isCustomElement:s,compilerOptions:l}=e.appContext.config,{delimiters:a,compilerOptions:i}=r,u=pt(pt({isCustomElement:s,delimiters:a},l),i);r.render=iu(o,u)}}e.render=r.render||at}Ir(e),Xr(),gm(e),Jr(),pr()}function Km(e){return new Proxy(e.attrs,{get(t,n){return xt(e,"get","$attrs"),t[n]}})}function gd(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=Km(e))},slots:e.slots,emit:e.emit,expose:t}}function rl(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Df(Ff(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ho)return ho[n](e)},has(t,n){return n in t||n in ho}}))}function Vm(e,t=!0){return we(e)?e.displayName||e.name:e.name||t&&e.__name}function Um(e){return we(e)&&"__vccOpts"in e}const $=(e,t)=>Wf(e,t,Mo);function ol(){return yd().slots}function qm(){return yd().attrs}function yd(){const e=Ke();return e.setupContext||(e.setupContext=gd(e))}function ve(e,t,n){const r=arguments.length;return r===2?Pe(t)&&!fe(t)?ln(t)?ie(e,null,[t]):ie(e,t):ie(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ln(n)&&(n=[n]),ie(e,t,n))}const Ym=Symbol(""),Gm=()=>Ce(Ym),Xm="3.2.47",Jm="http://www.w3.org/2000/svg",or=typeof document<"u"?document:null,uu=or&&or.createElement("template"),Zm={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?or.createElementNS(Jm,e):or.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>or.createTextNode(e),createComment:e=>or.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>or.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const l=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{uu.innerHTML=r?`${e}`:e;const a=uu.content;if(r){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Qm(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function eg(e,t,n){const r=e.style,o=Te(n);if(n&&!o){if(t&&!Te(t))for(const s in t)n[s]==null&&Zl(r,s,"");for(const s in n)Zl(r,s,n[s])}else{const s=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=s)}}const cu=/\s*!important$/;function Zl(e,t,n){if(fe(n))n.forEach(r=>Zl(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=tg(e,t);cu.test(n)?e.setProperty(yr(r),n.replace(cu,""),"important"):e[r]=n}}const fu=["Webkit","Moz","ms"],Cl={};function tg(e,t){const n=Cl[t];if(n)return n;let r=Yt(t);if(r!=="filter"&&r in e)return Cl[t]=r;r=Gs(r);for(let o=0;oEl||(ag.then(()=>El=0),El=Date.now());function ug(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Nt(cg(r,n.value),t,5,[r])};return n.value=e,n.attached=ig(),n}function cg(e,t){if(fe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const hu=/^on[a-z]/,fg=(e,t,n,r,o=!1,s,l,a,i)=>{t==="class"?Qm(e,r,o):t==="style"?eg(e,n,r):Us(t)?Ra(t)||sg(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):dg(e,t,r,o))?rg(e,t,r,s,l,a,i):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ng(e,t,r,o))};function dg(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&hu.test(t)&&we(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||hu.test(t)&&Te(n)?!1:t in e}const On="transition",so="animation",En=(e,{slots:t})=>ve(Jf,pg(e),t);En.displayName="Transition";const wd={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};En.props=pt({},Jf.props,wd);const Xn=(e,t=[])=>{fe(e)?e.forEach(n=>n(...t)):e&&e(...t)},vu=e=>e?fe(e)?e.some(t=>t.length>1):e.length>1:!1;function pg(e){const t={};for(const A in e)A in wd||(t[A]=e[A]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=s,appearActiveClass:u=l,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,h=hg(o),v=h&&h[0],b=h&&h[1],{onBeforeEnter:m,onEnter:w,onEnterCancelled:S,onLeave:y,onLeaveCancelled:E,onBeforeAppear:T=m,onAppear:C=w,onAppearCancelled:x=S}=t,R=(A,D,re)=>{Jn(A,D?c:a),Jn(A,D?u:l),re&&re()},B=(A,D)=>{A._isLeaving=!1,Jn(A,f),Jn(A,p),Jn(A,d),D&&D()},I=A=>(D,re)=>{const ee=A?C:w,U=()=>R(D,A,re);Xn(ee,[D,U]),mu(()=>{Jn(D,A?i:s),$n(D,A?c:a),vu(ee)||gu(D,r,v,U)})};return pt(t,{onBeforeEnter(A){Xn(m,[A]),$n(A,s),$n(A,l)},onBeforeAppear(A){Xn(T,[A]),$n(A,i),$n(A,u)},onEnter:I(!1),onAppear:I(!0),onLeave(A,D){A._isLeaving=!0;const re=()=>B(A,D);$n(A,f),gg(),$n(A,d),mu(()=>{A._isLeaving&&(Jn(A,f),$n(A,p),vu(y)||gu(A,r,b,re))}),Xn(y,[A,re])},onEnterCancelled(A){R(A,!1),Xn(S,[A])},onAppearCancelled(A){R(A,!0),Xn(x,[A])},onLeaveCancelled(A){B(A),Xn(E,[A])}})}function hg(e){if(e==null)return null;if(Pe(e))return[Sl(e.enter),Sl(e.leave)];{const t=Sl(e);return[t,t]}}function Sl(e){return cv(e)}function $n(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Jn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function mu(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let vg=0;function gu(e,t,n,r){const o=e._endId=++vg,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:l,timeout:a,propCount:i}=mg(e,t);if(!l)return r();const u=l+"end";let c=0;const f=()=>{e.removeEventListener(u,d),s()},d=p=>{p.target===e&&++c>=i&&f()};setTimeout(()=>{c(n[h]||"").split(", "),o=r(`${On}Delay`),s=r(`${On}Duration`),l=yu(o,s),a=r(`${so}Delay`),i=r(`${so}Duration`),u=yu(a,i);let c=null,f=0,d=0;t===On?l>0&&(c=On,f=l,d=s.length):t===so?u>0&&(c=so,f=u,d=i.length):(f=Math.max(l,u),c=f>0?l>u?On:so:null,d=c?c===On?s.length:i.length:0);const p=c===On&&/\b(transform|all)(,|$)/.test(r(`${On}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:p}}function yu(e,t){for(;e.lengthbu(n)+bu(e[r])))}function bu(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function gg(){return document.body.offsetHeight}const wu=e=>{const t=e.props["onUpdate:modelValue"]||!1;return fe(t)?n=>ps(t,n):t},Ms={deep:!0,created(e,t,n){e._assign=wu(n),bd(e,"change",()=>{const r=e._modelValue,o=yg(e),s=e.checked,l=e._assign;if(fe(r)){const a=bf(r,o),i=a!==-1;if(s&&!i)l(r.concat(o));else if(!s&&i){const u=[...r];u.splice(a,1),l(u)}}else if(qs(r)){const a=new Set(r);s?a.add(o):a.delete(o),l(a)}else l(_d(e,s))})},mounted:_u,beforeUpdate(e,t,n){e._assign=wu(n),_u(e,t,n)}};function _u(e,{value:t,oldValue:n},r){e._modelValue=t,fe(t)?e.checked=bf(t,r.props.value)>-1:qs(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=Vs(t,_d(e,!0)))}function yg(e){return"_value"in e?e._value:e.value}function _d(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const bg=["ctrl","shift","alt","meta"],wg={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>bg.some(n=>e[`${n}Key`]&&!t.includes(n))},ar=(e,t)=>(n,...r)=>{for(let o=0;on=>{if(!("key"in n))return;const r=yr(n.key);if(t.some(o=>o===r||_g[o]===r))return e(n)},Ut={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):lo(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),lo(e,!0),r.enter(e)):r.leave(e,()=>{lo(e,!1)}):lo(e,t))},beforeUnmount(e,{value:t}){lo(e,t)}};function lo(e,t){e.style.display=t?e._vod:"none"}const Cg=pt({patchProp:fg},Zm);let Cu;function Cd(){return Cu||(Cu=Am(Cg))}const Ps=(...e)=>{Cd().render(...e)},Eg=(...e)=>{const t=Cd().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Sg(r);if(!o)return;const s=t._component;!we(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.innerHTML="";const l=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t};function Sg(e){return Te(e)?document.querySelector(e):e}const xg='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',Tg=e=>getComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,Eu=e=>Array.from(e.querySelectorAll(xg)).filter(t=>Og(t)&&Tg(t)),Og=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},vs=function(e,t,...n){let r;t.includes("mouse")||t.includes("click")?r="MouseEvents":t.includes("key")?r="KeyboardEvent":r="HTMLEvents";const o=document.createEvent(r);return o.initEvent(t,...n),e.dispatchEvent(o),e},yn=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const s=e==null?void 0:e(o);if(n===!1||!s)return t==null?void 0:t(o)};var Su;const Xe=typeof window<"u",rn=e=>typeof e=="boolean",$g=e=>typeof e=="function",rt=e=>typeof e=="number",Ag=e=>typeof e=="string",Ed=()=>{},Mg=Xe&&((Su=window==null?void 0:window.navigator)==null?void 0:Su.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Lr(e){return typeof e=="function"?e():g(e)}function Pg(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const Sd=e=>e();function Rg(e=Sd){const t=M(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:Do(t),pause:n,resume:r,eventFilter:o}}function kg(e){return e}function jo(e){return Ef()?(Sf(e),!0):!1}function Ig(e){return typeof e=="function"?$(e):M(e)}function xd(e,t=!0){Ke()?Je(e):t?e():We(e)}function Ql(e,t,n={}){const{immediate:r=!0}=n,o=M(!1);let s=null;function l(){s&&(clearTimeout(s),s=null)}function a(){o.value=!1,l()}function i(...u){l(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...u)},Lr(t))}return r&&(o.value=!0,Xe&&i()),jo(a),{isPending:Do(o),start:i,stop:a}}function Lg(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=Ve(e),s=M(e);function l(a){if(arguments.length)return s.value=a,s.value;{const i=Lr(n);return s.value=s.value===i?Lr(r):i,s.value}}return o?l:[s,l]}var xu=Object.getOwnPropertySymbols,Ng=Object.prototype.hasOwnProperty,Fg=Object.prototype.propertyIsEnumerable,Bg=(e,t)=>{var n={};for(var r in e)Ng.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&xu)for(var r of xu(e))t.indexOf(r)<0&&Fg.call(e,r)&&(n[r]=e[r]);return n};function Hg(e,t,n={}){const r=n,{eventFilter:o=Sd}=r,s=Bg(r,["eventFilter"]);return de(e,Pg(o,t),s)}var zg=Object.defineProperty,Dg=Object.defineProperties,jg=Object.getOwnPropertyDescriptors,Rs=Object.getOwnPropertySymbols,Td=Object.prototype.hasOwnProperty,Od=Object.prototype.propertyIsEnumerable,Tu=(e,t,n)=>t in e?zg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wg=(e,t)=>{for(var n in t||(t={}))Td.call(t,n)&&Tu(e,n,t[n]);if(Rs)for(var n of Rs(t))Od.call(t,n)&&Tu(e,n,t[n]);return e},Kg=(e,t)=>Dg(e,jg(t)),Vg=(e,t)=>{var n={};for(var r in e)Td.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Rs)for(var r of Rs(e))t.indexOf(r)<0&&Od.call(e,r)&&(n[r]=e[r]);return n};function Ug(e,t,n={}){const r=n,{eventFilter:o}=r,s=Vg(r,["eventFilter"]),{eventFilter:l,pause:a,resume:i,isActive:u}=Rg(o);return{stop:Hg(e,t,Kg(Wg({},s),{eventFilter:l})),pause:a,resume:i,isActive:u}}function Fn(e){var t;const n=Lr(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Wn=Xe?window:void 0;function qt(...e){let t,n,r,o;if(Ag(e[0])||Array.isArray(e[0])?([n,r,o]=e,t=Wn):[t,n,r,o]=e,!t)return Ed;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],l=()=>{s.forEach(c=>c()),s.length=0},a=(c,f,d,p)=>(c.addEventListener(f,d,p),()=>c.removeEventListener(f,d,p)),i=de(()=>[Fn(t),Lr(o)],([c,f])=>{l(),c&&s.push(...n.flatMap(d=>r.map(p=>a(c,d,p,f))))},{immediate:!0,flush:"post"}),u=()=>{i(),l()};return jo(u),u}let Ou=!1;function qg(e,t,n={}){const{window:r=Wn,ignore:o=[],capture:s=!0,detectIframe:l=!1}=n;if(!r)return;Mg&&!Ou&&(Ou=!0,Array.from(r.document.body.children).forEach(d=>d.addEventListener("click",Ed)));let a=!0;const i=d=>o.some(p=>{if(typeof p=="string")return Array.from(r.document.querySelectorAll(p)).some(h=>h===d.target||d.composedPath().includes(h));{const h=Fn(p);return h&&(d.target===h||d.composedPath().includes(h))}}),c=[qt(r,"click",d=>{const p=Fn(e);if(!(!p||p===d.target||d.composedPath().includes(p))){if(d.detail===0&&(a=!i(d)),!a){a=!0;return}t(d)}},{passive:!0,capture:s}),qt(r,"pointerdown",d=>{const p=Fn(e);p&&(a=!d.composedPath().includes(p)&&!i(d))},{passive:!0}),l&&qt(r,"blur",d=>{var p;const h=Fn(e);((p=r.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!(h!=null&&h.contains(r.document.activeElement))&&t(d)})].filter(Boolean);return()=>c.forEach(d=>d())}function $d(e,t=!1){const n=M(),r=()=>n.value=Boolean(e());return r(),xd(r,t),n}function Yg(e,t={}){const{window:n=Wn}=t,r=$d(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=M(!1),l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",a):o.removeListener(a))},a=()=>{r.value&&(l(),o=n.matchMedia(Ig(e).value),s.value=o.matches,"addEventListener"in o?o.addEventListener("change",a):o.addListener(a))};return Dn(a),jo(()=>l()),s}const ea=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ta="__vueuse_ssr_handlers__";ea[ta]=ea[ta]||{};const Gg=ea[ta];function Ad(e,t){return Gg[e]||t}function Xg(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var Jg=Object.defineProperty,$u=Object.getOwnPropertySymbols,Zg=Object.prototype.hasOwnProperty,Qg=Object.prototype.propertyIsEnumerable,Au=(e,t,n)=>t in e?Jg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Mu=(e,t)=>{for(var n in t||(t={}))Zg.call(t,n)&&Au(e,n,t[n]);if($u)for(var n of $u(t))Qg.call(t,n)&&Au(e,n,t[n]);return e};const ey={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Pu="vueuse-storage";function ty(e,t,n,r={}){var o;const{flush:s="pre",deep:l=!0,listenToStorageChanges:a=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:f=Wn,eventFilter:d,onError:p=x=>{console.error(x)}}=r,h=(c?Pr:M)(t);if(!n)try{n=Ad("getDefaultStorage",()=>{var x;return(x=Wn)==null?void 0:x.localStorage})()}catch(x){p(x)}if(!n)return h;const v=Lr(t),b=Xg(v),m=(o=r.serializer)!=null?o:ey[b],{pause:w,resume:S}=Ug(h,()=>y(h.value),{flush:s,deep:l,eventFilter:d});return f&&a&&(qt(f,"storage",C),qt(f,Pu,T)),C(),h;function y(x){try{if(x==null)n.removeItem(e);else{const R=m.write(x),B=n.getItem(e);B!==R&&(n.setItem(e,R),f&&f.dispatchEvent(new CustomEvent(Pu,{detail:{key:e,oldValue:B,newValue:R,storageArea:n}})))}}catch(R){p(R)}}function E(x){const R=x?x.newValue:n.getItem(e);if(R==null)return i&&v!==null&&n.setItem(e,m.write(v)),v;if(!x&&u){const B=m.read(R);return $g(u)?u(B,v):b==="object"&&!Array.isArray(B)?Mu(Mu({},v),B):B}else return typeof R!="string"?R:m.read(R)}function T(x){C(x.detail)}function C(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){h.value=v;return}if(!(x&&x.key!==e)){w();try{h.value=E(x)}catch(R){p(R)}finally{x?We(S):S()}}}}}function Md(e){return Yg("(prefers-color-scheme: dark)",e)}var ny=Object.defineProperty,Ru=Object.getOwnPropertySymbols,ry=Object.prototype.hasOwnProperty,oy=Object.prototype.propertyIsEnumerable,ku=(e,t,n)=>t in e?ny(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sy=(e,t)=>{for(var n in t||(t={}))ry.call(t,n)&&ku(e,n,t[n]);if(Ru)for(var n of Ru(t))oy.call(t,n)&&ku(e,n,t[n]);return e};function ly(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:o=Wn,storage:s,storageKey:l="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:i,emitAuto:u}=e,c=sy({auto:"",light:"light",dark:"dark"},e.modes||{}),f=Md({window:o}),d=$(()=>f.value?"dark":"light"),p=i||(l==null?M(r):ty(l,r,s,{window:o,listenToStorageChanges:a})),h=$({get(){return p.value==="auto"&&!u?d.value:p.value},set(w){p.value=w}}),v=Ad("updateHTMLAttrs",(w,S,y)=>{const E=o==null?void 0:o.document.querySelector(w);if(E)if(S==="class"){const T=y.split(/\s/g);Object.values(c).flatMap(C=>(C||"").split(/\s/g)).filter(Boolean).forEach(C=>{T.includes(C)?E.classList.add(C):E.classList.remove(C)})}else E.setAttribute(S,y)});function b(w){var S;const y=w==="auto"?d.value:w;v(t,n,(S=c[y])!=null?S:y)}function m(w){e.onChanged?e.onChanged(w,b):b(w)}return de(h,m,{flush:"post",immediate:!0}),u&&de(d,()=>m(h.value),{flush:"post"}),xd(()=>m(h.value)),h}var ay=Object.defineProperty,iy=Object.defineProperties,uy=Object.getOwnPropertyDescriptors,Iu=Object.getOwnPropertySymbols,cy=Object.prototype.hasOwnProperty,fy=Object.prototype.propertyIsEnumerable,Lu=(e,t,n)=>t in e?ay(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dy=(e,t)=>{for(var n in t||(t={}))cy.call(t,n)&&Lu(e,n,t[n]);if(Iu)for(var n of Iu(t))fy.call(t,n)&&Lu(e,n,t[n]);return e},py=(e,t)=>iy(e,uy(t));function hy(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Wn}=e,o=ly(py(dy({},e),{onChanged:(a,i)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,a==="dark"):i(a)},modes:{dark:t,light:n}})),s=Md({window:r});return $({get(){return o.value==="dark"},set(a){a===s.value?o.value="auto":o.value=a?"dark":"light"}})}var Nu=Object.getOwnPropertySymbols,vy=Object.prototype.hasOwnProperty,my=Object.prototype.propertyIsEnumerable,gy=(e,t)=>{var n={};for(var r in e)vy.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Nu)for(var r of Nu(e))t.indexOf(r)<0&&my.call(e,r)&&(n[r]=e[r]);return n};function Nr(e,t,n={}){const r=n,{window:o=Wn}=r,s=gy(r,["window"]);let l;const a=$d(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},u=de(()=>Fn(e),f=>{i(),a.value&&o&&f&&(l=new ResizeObserver(t),l.observe(f,s))},{immediate:!0,flush:"post"}),c=()=>{i(),u()};return jo(c),{isSupported:a,stop:c}}var Fu;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Fu||(Fu={}));var yy=Object.defineProperty,Bu=Object.getOwnPropertySymbols,by=Object.prototype.hasOwnProperty,wy=Object.prototype.propertyIsEnumerable,Hu=(e,t,n)=>t in e?yy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_y=(e,t)=>{for(var n in t||(t={}))by.call(t,n)&&Hu(e,n,t[n]);if(Bu)for(var n of Bu(t))wy.call(t,n)&&Hu(e,n,t[n]);return e};const Cy={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};_y({linear:kg},Cy);var Ey=typeof global=="object"&&global&&global.Object===Object&&global;const Pd=Ey;var Sy=typeof self=="object"&&self&&self.Object===Object&&self,xy=Pd||Sy||Function("return this")();const Jt=xy;var Ty=Jt.Symbol;const an=Ty;var Rd=Object.prototype,Oy=Rd.hasOwnProperty,$y=Rd.toString,ao=an?an.toStringTag:void 0;function Ay(e){var t=Oy.call(e,ao),n=e[ao];try{e[ao]=void 0;var r=!0}catch{}var o=$y.call(e);return r&&(t?e[ao]=n:delete e[ao]),o}var My=Object.prototype,Py=My.toString;function Ry(e){return Py.call(e)}var ky="[object Null]",Iy="[object Undefined]",zu=an?an.toStringTag:void 0;function br(e){return e==null?e===void 0?Iy:ky:zu&&zu in Object(e)?Ay(e):Ry(e)}function Kn(e){return e!=null&&typeof e=="object"}var Ly="[object Symbol]";function sl(e){return typeof e=="symbol"||Kn(e)&&br(e)==Ly}function kd(e,t){for(var n=-1,r=e==null?0:e.length,o=Array(r);++n0){if(++t>=hb)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function yb(e){return function(){return e}}var bb=function(){try{var e=_r(Object,"defineProperty");return e({},"",{}),e}catch{}}();const ks=bb;var wb=ks?function(e,t){return ks(e,"toString",{configurable:!0,enumerable:!1,value:yb(t),writable:!0})}:Qa;const _b=wb;var Cb=gb(_b);const Ld=Cb;var Eb=9007199254740991,Sb=/^(?:0|[1-9]\d*)$/;function ll(e,t){var n=typeof e;return t=t??Eb,!!t&&(n=="number"||n!="symbol"&&Sb.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=Ab}function eo(e){return e!=null&&ni(e.length)&&!ei(e)}function Mb(e,t,n){if(!kt(n))return!1;var r=typeof t;return(r=="number"?eo(n)&&ll(t,n.length):r=="string"&&t in n)?Wo(n[t],e):!1}function Pb(e){return $b(function(t,n){var r=-1,o=n.length,s=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(s=e.length>3&&typeof s=="function"?(o--,s):void 0,l&&Mb(n[0],n[1],l)&&(s=o<3?void 0:s,o=1),t=Object(t);++r-1}function Y0(e,t){var n=this.__data__,r=al(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Sn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(a)?t>1?ui(a,t-1,n,r,o):Kd(o,a):r||(o[o.length]=a)}return o}function dw(e){var t=e==null?0:e.length;return t?ui(e,1):[]}function pw(e){return Ld(Fd(e,void 0,dw),e+"")}var hw=jd(Object.getPrototypeOf,Object);const Vd=hw;var vw="[object Object]",mw=Function.prototype,gw=Object.prototype,Ud=mw.toString,yw=gw.hasOwnProperty,bw=Ud.call(Object);function ww(e){if(!Kn(e)||br(e)!=vw)return!1;var t=Vd(e);if(t===null)return!0;var n=yw.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Ud.call(n)==bw}function _w(){this.__data__=new Sn,this.size=0}function Cw(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Ew(e){return this.__data__.get(e)}function Sw(e){return this.__data__.has(e)}var xw=200;function Tw(e,t){var n=this.__data__;if(n instanceof Sn){var r=n.__data__;if(!ko||r.lengtha))return!1;var u=s.get(e),c=s.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,p=n&t1?new Ns:void 0;for(s.set(e,t),s.set(t,e);++f=t||C<0||f&&x>=s}function m(){var T=$l();if(b(T))return w(T);a=setTimeout(m,v(T))}function w(T){return a=void 0,d&&r?p(T):(r=o=void 0,l)}function S(){a!==void 0&&clearTimeout(a),u=0,r=i=o=a=void 0}function y(){return a===void 0?l:w($l())}function E(){var T=$l(),C=b(T);if(r=arguments,o=this,i=T,C){if(a===void 0)return h(i);if(f)return clearTimeout(a),a=setTimeout(m,t),p(i)}return a===void 0&&(a=setTimeout(m,t)),l}return E.cancel=S,E.flush=y,E}function la(e,t,n){(n!==void 0&&!Wo(e[t],n)||n===void 0&&!(t in e))&&ti(e,t,n)}function G1(e){return Kn(e)&&eo(e)}function aa(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function X1(e){return Ob(e,Wd(e))}function J1(e,t,n,r,o,s,l){var a=aa(e,n),i=aa(t,n),u=l.get(i);if(u){la(e,n,u);return}var c=s?s(a,i,n+"",e,t,l):void 0,f=c===void 0;if(f){var d=Rt(i),p=!d&&Is(i),h=!d&&!p&&oi(i);c=i,d||p||h?Rt(a)?c=a:G1(a)?c=pb(a):p?(f=!1,c=$w(i,!0)):h?(f=!1,c=qw(i,!0)):c=[]:ww(i)||Po(i)?(c=a,Po(a)?c=X1(a):(!kt(a)||ei(a))&&(c=Yw(i))):f=!1}f&&(l.set(i,c),o(c,i,r,s,l),l.delete(i)),la(e,n,c)}function Qd(e,t,n,r,o){e!==t&&Zd(t,function(s,l){if(o||(o=new on),kt(s))J1(e,t,l,n,Qd,r,o);else{var a=r?r(aa(e,l),s,l+"",e,t,o):void 0;a===void 0&&(a=s),la(e,l,a)}},Wd)}function Z1(e,t){var n=-1,r=eo(e)?Array(e.length):[];return K1(e,function(o,s,l){r[++n]=t(o,s,l)}),r}function Q1(e,t){var n=Rt(e)?kd:Z1;return n(e,B1(t))}function e_(e,t){return ui(Q1(e,t),1)}function Bs(e){for(var t=-1,n=e==null?0:e.length,r={};++te===void 0,Vn=e=>typeof Element>"u"?!1:e instanceof Element,u_=e=>Te(e)?!Number.isNaN(Number(e)):!1,vc=e=>Object.keys(e),c_=(e,t,n)=>({get value(){return Io(e,t,n)},set value(r){i_(e,t,r)}});class f_ extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function Un(e,t){throw new f_(`[${e}] ${t}`)}const np=(e="")=>e.split(" ").filter(t=>!!t.trim()),hr=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},ir=(e,t)=>{!e||!t.trim()||e.classList.add(...np(t))},vr=(e,t)=>{!e||!t.trim()||e.classList.remove(...np(t))},ia=(e,t)=>{var n;if(!Xe||!e||!t)return"";let r=Yt(t);r==="float"&&(r="cssFloat");try{const o=e.style[r];if(o)return o;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[r]:""}catch{return e.style[r]}};function Br(e,t="px"){if(!e)return"";if(rt(e)||u_(e))return`${e}${t}`;if(Te(e))return e}let ns;const d_=e=>{var t;if(!Xe)return 0;if(ns!==void 0)return ns;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const r=n.offsetWidth;n.style.overflow="scroll";const o=document.createElement("div");o.style.width="100%",n.appendChild(o);const s=o.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),ns=r-s,ns};/*! Element Plus Icons Vue v2.0.10 */var Tt=(e,t)=>{let n=e.__vccOpts||e;for(let[r,o]of t)n[r]=o;return n},p_={name:"ArrowDown"},h_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},v_=se("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),m_=[v_];function g_(e,t,n,r,o,s){return F(),oe("svg",h_,m_)}var rp=Tt(p_,[["render",g_],["__file","arrow-down.vue"]]),y_={name:"ArrowRight"},b_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},w_=se("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),__=[w_];function C_(e,t,n,r,o,s){return F(),oe("svg",b_,__)}var ci=Tt(y_,[["render",C_],["__file","arrow-right.vue"]]),E_={name:"ArrowUp"},S_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},x_=se("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),T_=[x_];function O_(e,t,n,r,o,s){return F(),oe("svg",S_,T_)}var $_=Tt(E_,[["render",O_],["__file","arrow-up.vue"]]),A_={name:"CircleCheck"},M_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P_=se("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),R_=se("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"},null,-1),k_=[P_,R_];function I_(e,t,n,r,o,s){return F(),oe("svg",M_,k_)}var L_=Tt(A_,[["render",I_],["__file","circle-check.vue"]]),N_={name:"CircleCloseFilled"},F_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},B_=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),H_=[B_];function z_(e,t,n,r,o,s){return F(),oe("svg",F_,H_)}var op=Tt(N_,[["render",z_],["__file","circle-close-filled.vue"]]),D_={name:"CircleClose"},j_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},W_=se("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"},null,-1),K_=se("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),V_=[W_,K_];function U_(e,t,n,r,o,s){return F(),oe("svg",j_,V_)}var sp=Tt(D_,[["render",U_],["__file","circle-close.vue"]]),q_={name:"Close"},Y_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},G_=se("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),X_=[G_];function J_(e,t,n,r,o,s){return F(),oe("svg",Y_,X_)}var Z_=Tt(q_,[["render",J_],["__file","close.vue"]]),Q_={name:"Hide"},eC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},tC=se("path",{d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z",fill:"currentColor"},null,-1),nC=se("path",{d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z",fill:"currentColor"},null,-1),rC=[tC,nC];function oC(e,t,n,r,o,s){return F(),oe("svg",eC,rC)}var sC=Tt(Q_,[["render",oC],["__file","hide.vue"]]),lC={name:"InfoFilled"},aC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},iC=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),uC=[iC];function cC(e,t,n,r,o,s){return F(),oe("svg",aC,uC)}var lp=Tt(lC,[["render",cC],["__file","info-filled.vue"]]),fC={name:"Loading"},dC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},pC=se("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),hC=[pC];function vC(e,t,n,r,o,s){return F(),oe("svg",dC,hC)}var fl=Tt(fC,[["render",vC],["__file","loading.vue"]]),mC={name:"More"},gC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},yC=se("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),bC=[yC];function wC(e,t,n,r,o,s){return F(),oe("svg",gC,bC)}var _C=Tt(mC,[["render",wC],["__file","more.vue"]]),CC={name:"SuccessFilled"},EC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},SC=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),xC=[SC];function TC(e,t,n,r,o,s){return F(),oe("svg",EC,xC)}var ap=Tt(CC,[["render",TC],["__file","success-filled.vue"]]),OC={name:"View"},$C={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},AC=se("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z"},null,-1),MC=[AC];function PC(e,t,n,r,o,s){return F(),oe("svg",$C,MC)}var RC=Tt(OC,[["render",PC],["__file","view.vue"]]),kC={name:"WarningFilled"},IC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},LC=se("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),NC=[LC];function FC(e,t,n,r,o,s){return F(),oe("svg",IC,NC)}var ip=Tt(kC,[["render",FC],["__file","warning-filled.vue"]]);const up="__epPropKey",Se=e=>e,BC=e=>Pe(e)&&!!e[up],dl=(e,t)=>{if(!Pe(e)||BC(e))return e;const{values:n,required:r,default:o,type:s,validator:l}=e,i={type:s,required:!!r,validator:n||l?u=>{let c=!1,f=[];if(n&&(f=Array.from(n),Ae(e,"default")&&f.push(o),c||(c=f.includes(u))),l&&(c||(c=l(u))),!c&&f.length>0){const d=[...new Set(f)].map(p=>JSON.stringify(p)).join(", ");Vv(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[up]:!0};return Ae(e,"default")&&(i.default=o),i},qe=e=>Bs(Object.entries(e).map(([t,n])=>[t,dl(n,t)])),Kt=Se([String,Object,Function]),cp={Close:Z_,SuccessFilled:ap,InfoFilled:lp,WarningFilled:ip,CircleCloseFilled:op},Hs={success:ap,warning:ip,error:op,info:lp},HC={validating:fl,success:L_,error:sp},It=(e,t)=>{if(e.install=n=>{for(const r of[e,...Object.values(t??{})])n.component(r.name,r)},t)for(const[n,r]of Object.entries(t))e[n]=r;return e},zC=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Cr=e=>(e.install=at,e),vt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},un="update:modelValue",ua="change",ca="input",fp=["","default","small","large"],dp=e=>["",...fp].includes(e);var ms=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(ms||{});const gs=e=>{const t=fe(e)?e:[e],n=[];return t.forEach(r=>{var o;fe(r)?n.push(...gs(r)):ln(r)&&fe(r.children)?n.push(...gs(r.children)):(n.push(r),ln(r)&&((o=r.component)!=null&&o.subTree)&&n.push(...gs(r.component.subTree)))}),n},DC=()=>Xe&&/firefox/i.test(window.navigator.userAgent),jC=e=>/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e),Nn=e=>e,WC=["class","style"],KC=/^on[A-Z]/,VC=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,r=$(()=>((n==null?void 0:n.value)||[]).concat(WC)),o=Ke();return $(o?()=>{var s;return Bs(Object.entries((s=o.proxy)==null?void 0:s.$attrs).filter(([l])=>!r.value.includes(l)&&!(t&&KC.test(l))))}:()=>({}))},fi=({from:e,replacement:t,scope:n,version:r,ref:o,type:s="API"},l)=>{de(()=>g(l),a=>{},{immediate:!0})},UC=(e,t,n)=>{let r={offsetX:0,offsetY:0};const o=a=>{const i=a.clientX,u=a.clientY,{offsetX:c,offsetY:f}=r,d=e.value.getBoundingClientRect(),p=d.left,h=d.top,v=d.width,b=d.height,m=document.documentElement.clientWidth,w=document.documentElement.clientHeight,S=-p+c,y=-h+f,E=m-p-v+c,T=w-h-b+f,C=R=>{const B=Math.min(Math.max(c+R.clientX-i,S),E),I=Math.min(Math.max(f+R.clientY-u,y),T);r={offsetX:B,offsetY:I},e.value.style.transform=`translate(${Br(B)}, ${Br(I)})`},x=()=>{document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",x)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",x)},s=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",o)},l=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",o)};Je(()=>{Dn(()=>{n.value?s():l()})}),mt(()=>{l()})};var qC={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const YC=e=>(t,n)=>GC(t,n,g(e)),GC=(e,t,n)=>Io(n,e,e).replace(/\{(\w+)\}/g,(r,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),XC=e=>{const t=$(()=>g(e).name),n=Ve(e)?e:M(e);return{lang:t,locale:n,t:YC(e)}},pp=Symbol("localeContextKey"),di=e=>{const t=e||Ce(pp,M());return XC($(()=>t.value||qC))},fa="el",JC="is-",Zn=(e,t,n,r,o)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),r&&(s+=`__${r}`),o&&(s+=`--${o}`),s},hp=Symbol("namespaceContextKey"),pi=e=>{const t=e||Ce(hp,M(fa));return $(()=>g(t)||fa)},Oe=(e,t)=>{const n=pi(t);return{namespace:n,b:(v="")=>Zn(n.value,e,v,"",""),e:v=>v?Zn(n.value,e,"",v,""):"",m:v=>v?Zn(n.value,e,"","",v):"",be:(v,b)=>v&&b?Zn(n.value,e,v,b,""):"",em:(v,b)=>v&&b?Zn(n.value,e,"",v,b):"",bm:(v,b)=>v&&b?Zn(n.value,e,v,"",b):"",bem:(v,b,m)=>v&&b&&m?Zn(n.value,e,v,b,m):"",is:(v,...b)=>{const m=b.length>=1?b[0]:!0;return v&&m?`${JC}${v}`:""},cssVar:v=>{const b={};for(const m in v)v[m]&&(b[`--${n.value}-${m}`]=v[m]);return b},cssVarName:v=>`--${n.value}-${v}`,cssVarBlock:v=>{const b={};for(const m in v)v[m]&&(b[`--${n.value}-${e}-${m}`]=v[m]);return b},cssVarBlockName:v=>`--${n.value}-${e}-${v}`}},ZC=(e,t={})=>{Ve(e)||Un("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||Oe("popup"),r=Wf(()=>n.bm("parent","hidden"));if(!Xe||hr(document.body,r.value))return;let o=0,s=!1,l="0";const a=()=>{setTimeout(()=>{vr(document==null?void 0:document.body,r.value),s&&document&&(document.body.style.width=l)},200)};de(e,i=>{if(!i){a();return}s=!hr(document.body,r.value),s&&(l=document.body.style.width),o=d_(n.namespace.value);const u=document.documentElement.clientHeight0&&(u||c==="scroll")&&s&&(document.body.style.width=`calc(100% - ${o}px)`),ir(document.body,r.value)}),Sf(()=>a())},QC=dl({type:Se(Boolean),default:null}),eE=dl({type:Se(Function)}),vp=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,r=[t],o={[e]:QC,[n]:eE};return{useModelToggle:({indicator:l,toggleReason:a,shouldHideWhenRouteChanges:i,shouldProceed:u,onShow:c,onHide:f})=>{const d=Ke(),{emit:p}=d,h=d.props,v=$(()=>we(h[n])),b=$(()=>h[e]===null),m=C=>{l.value!==!0&&(l.value=!0,a&&(a.value=C),we(c)&&c(C))},w=C=>{l.value!==!1&&(l.value=!1,a&&(a.value=C),we(f)&&f(C))},S=C=>{if(h.disabled===!0||we(u)&&!u())return;const x=v.value&&Xe;x&&p(t,!0),(b.value||!x)&&m(C)},y=C=>{if(h.disabled===!0||!Xe)return;const x=v.value&&Xe;x&&p(t,!1),(b.value||!x)&&w(C)},E=C=>{rn(C)&&(h.disabled&&C?v.value&&p(t,!1):l.value!==C&&(C?m():w()))},T=()=>{l.value?y():S()};return de(()=>h[e],E),i&&d.appContext.config.globalProperties.$route!==void 0&&de(()=>({...d.proxy.$route}),()=>{i.value&&l.value&&y()}),Je(()=>{E(h[e])}),{hide:y,show:S,toggle:T,hasUpdateHandler:v}},useModelToggleProps:o,useModelToggleEmits:r}};vp("modelValue");const mp=e=>{const t=Ke();return $(()=>{var n,r;return(r=(n=t==null?void 0:t.proxy)==null?void 0:n.$props)==null?void 0:r[e]})};var Et="top",Bt="bottom",Ht="right",St="left",hi="auto",Vo=[Et,Bt,Ht,St],Hr="start",No="end",tE="clippingParents",gp="viewport",io="popper",nE="reference",mc=Vo.reduce(function(e,t){return e.concat([t+"-"+Hr,t+"-"+No])},[]),vi=[].concat(Vo,[hi]).reduce(function(e,t){return e.concat([t,t+"-"+Hr,t+"-"+No])},[]),rE="beforeRead",oE="read",sE="afterRead",lE="beforeMain",aE="main",iE="afterMain",uE="beforeWrite",cE="write",fE="afterWrite",dE=[rE,oE,sE,lE,aE,iE,uE,cE,fE];function cn(e){return e?(e.nodeName||"").toLowerCase():null}function Zt(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function zr(e){var t=Zt(e).Element;return e instanceof t||e instanceof Element}function Ft(e){var t=Zt(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function mi(e){if(typeof ShadowRoot>"u")return!1;var t=Zt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function pE(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},s=t.elements[n];!Ft(s)||!cn(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(l){var a=o[l];a===!1?s.removeAttribute(l):s.setAttribute(l,a===!0?"":a)}))})}function hE(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],s=t.attributes[r]||{},l=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),a=l.reduce(function(i,u){return i[u]="",i},{});!Ft(o)||!cn(o)||(Object.assign(o.style,a),Object.keys(s).forEach(function(i){o.removeAttribute(i)}))})}}var yp={name:"applyStyles",enabled:!0,phase:"write",fn:pE,effect:hE,requires:["computeStyles"]};function sn(e){return e.split("-")[0]}var mr=Math.max,zs=Math.min,Dr=Math.round;function jr(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),r=1,o=1;if(Ft(e)&&t){var s=e.offsetHeight,l=e.offsetWidth;l>0&&(r=Dr(n.width)/l||1),s>0&&(o=Dr(n.height)/s||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function gi(e){var t=jr(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function bp(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&mi(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function _n(e){return Zt(e).getComputedStyle(e)}function vE(e){return["table","td","th"].indexOf(cn(e))>=0}function qn(e){return((zr(e)?e.ownerDocument:e.document)||window.document).documentElement}function pl(e){return cn(e)==="html"?e:e.assignedSlot||e.parentNode||(mi(e)?e.host:null)||qn(e)}function gc(e){return!Ft(e)||_n(e).position==="fixed"?null:e.offsetParent}function mE(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&Ft(e)){var r=_n(e);if(r.position==="fixed")return null}var o=pl(e);for(mi(o)&&(o=o.host);Ft(o)&&["html","body"].indexOf(cn(o))<0;){var s=_n(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function Uo(e){for(var t=Zt(e),n=gc(e);n&&vE(n)&&_n(n).position==="static";)n=gc(n);return n&&(cn(n)==="html"||cn(n)==="body"&&_n(n).position==="static")?t:n||mE(e)||t}function yi(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function yo(e,t,n){return mr(e,zs(t,n))}function gE(e,t,n){var r=yo(e,t,n);return r>n?n:r}function wp(){return{top:0,right:0,bottom:0,left:0}}function _p(e){return Object.assign({},wp(),e)}function Cp(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var yE=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,_p(typeof e!="number"?e:Cp(e,Vo))};function bE(e){var t,n=e.state,r=e.name,o=e.options,s=n.elements.arrow,l=n.modifiersData.popperOffsets,a=sn(n.placement),i=yi(a),u=[St,Ht].indexOf(a)>=0,c=u?"height":"width";if(!(!s||!l)){var f=yE(o.padding,n),d=gi(s),p=i==="y"?Et:St,h=i==="y"?Bt:Ht,v=n.rects.reference[c]+n.rects.reference[i]-l[i]-n.rects.popper[c],b=l[i]-n.rects.reference[i],m=Uo(s),w=m?i==="y"?m.clientHeight||0:m.clientWidth||0:0,S=v/2-b/2,y=f[p],E=w-d[c]-f[h],T=w/2-d[c]/2+S,C=yo(y,T,E),x=i;n.modifiersData[r]=(t={},t[x]=C,t.centerOffset=C-T,t)}}function wE(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||!bp(t.elements.popper,o)||(t.elements.arrow=o))}var _E={name:"arrow",enabled:!0,phase:"main",fn:bE,effect:wE,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Wr(e){return e.split("-")[1]}var CE={top:"auto",right:"auto",bottom:"auto",left:"auto"};function EE(e){var t=e.x,n=e.y,r=window,o=r.devicePixelRatio||1;return{x:Dr(t*o)/o||0,y:Dr(n*o)/o||0}}function yc(e){var t,n=e.popper,r=e.popperRect,o=e.placement,s=e.variation,l=e.offsets,a=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=l.x,p=d===void 0?0:d,h=l.y,v=h===void 0?0:h,b=typeof c=="function"?c({x:p,y:v}):{x:p,y:v};p=b.x,v=b.y;var m=l.hasOwnProperty("x"),w=l.hasOwnProperty("y"),S=St,y=Et,E=window;if(u){var T=Uo(n),C="clientHeight",x="clientWidth";if(T===Zt(n)&&(T=qn(n),_n(T).position!=="static"&&a==="absolute"&&(C="scrollHeight",x="scrollWidth")),T=T,o===Et||(o===St||o===Ht)&&s===No){y=Bt;var R=f&&T===E&&E.visualViewport?E.visualViewport.height:T[C];v-=R-r.height,v*=i?1:-1}if(o===St||(o===Et||o===Bt)&&s===No){S=Ht;var B=f&&T===E&&E.visualViewport?E.visualViewport.width:T[x];p-=B-r.width,p*=i?1:-1}}var I=Object.assign({position:a},u&&CE),A=c===!0?EE({x:p,y:v}):{x:p,y:v};if(p=A.x,v=A.y,i){var D;return Object.assign({},I,(D={},D[y]=w?"0":"",D[S]=m?"0":"",D.transform=(E.devicePixelRatio||1)<=1?"translate("+p+"px, "+v+"px)":"translate3d("+p+"px, "+v+"px, 0)",D))}return Object.assign({},I,(t={},t[y]=w?v+"px":"",t[S]=m?p+"px":"",t.transform="",t))}function SE(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,l=s===void 0?!0:s,a=n.roundOffsets,i=a===void 0?!0:a,u={placement:sn(t.placement),variation:Wr(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,yc(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:l,roundOffsets:i})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,yc(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Ep={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:SE,data:{}},rs={passive:!0};function xE(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,s=o===void 0?!0:o,l=r.resize,a=l===void 0?!0:l,i=Zt(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,rs)}),a&&i.addEventListener("resize",n.update,rs),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,rs)}),a&&i.removeEventListener("resize",n.update,rs)}}var Sp={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:xE,data:{}},TE={left:"right",right:"left",bottom:"top",top:"bottom"};function ys(e){return e.replace(/left|right|bottom|top/g,function(t){return TE[t]})}var OE={start:"end",end:"start"};function bc(e){return e.replace(/start|end/g,function(t){return OE[t]})}function bi(e){var t=Zt(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function wi(e){return jr(qn(e)).left+bi(e).scrollLeft}function $E(e){var t=Zt(e),n=qn(e),r=t.visualViewport,o=n.clientWidth,s=n.clientHeight,l=0,a=0;return r&&(o=r.width,s=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(l=r.offsetLeft,a=r.offsetTop)),{width:o,height:s,x:l+wi(e),y:a}}function AE(e){var t,n=qn(e),r=bi(e),o=(t=e.ownerDocument)==null?void 0:t.body,s=mr(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=mr(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-r.scrollLeft+wi(e),i=-r.scrollTop;return _n(o||n).direction==="rtl"&&(a+=mr(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:l,x:a,y:i}}function _i(e){var t=_n(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function xp(e){return["html","body","#document"].indexOf(cn(e))>=0?e.ownerDocument.body:Ft(e)&&_i(e)?e:xp(pl(e))}function bo(e,t){var n;t===void 0&&(t=[]);var r=xp(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),s=Zt(r),l=o?[s].concat(s.visualViewport||[],_i(r)?r:[]):r,a=t.concat(l);return o?a:a.concat(bo(pl(l)))}function da(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ME(e){var t=jr(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function wc(e,t){return t===gp?da($E(e)):zr(t)?ME(t):da(AE(qn(e)))}function PE(e){var t=bo(pl(e)),n=["absolute","fixed"].indexOf(_n(e).position)>=0,r=n&&Ft(e)?Uo(e):e;return zr(r)?t.filter(function(o){return zr(o)&&bp(o,r)&&cn(o)!=="body"}):[]}function RE(e,t,n){var r=t==="clippingParents"?PE(e):[].concat(t),o=[].concat(r,[n]),s=o[0],l=o.reduce(function(a,i){var u=wc(e,i);return a.top=mr(u.top,a.top),a.right=zs(u.right,a.right),a.bottom=zs(u.bottom,a.bottom),a.left=mr(u.left,a.left),a},wc(e,s));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function Tp(e){var t=e.reference,n=e.element,r=e.placement,o=r?sn(r):null,s=r?Wr(r):null,l=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,i;switch(o){case Et:i={x:l,y:t.y-n.height};break;case Bt:i={x:l,y:t.y+t.height};break;case Ht:i={x:t.x+t.width,y:a};break;case St:i={x:t.x-n.width,y:a};break;default:i={x:t.x,y:t.y}}var u=o?yi(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Hr:i[u]=i[u]-(t[c]/2-n[c]/2);break;case No:i[u]=i[u]+(t[c]/2-n[c]/2);break}}return i}function Fo(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,s=n.boundary,l=s===void 0?tE:s,a=n.rootBoundary,i=a===void 0?gp:a,u=n.elementContext,c=u===void 0?io:u,f=n.altBoundary,d=f===void 0?!1:f,p=n.padding,h=p===void 0?0:p,v=_p(typeof h!="number"?h:Cp(h,Vo)),b=c===io?nE:io,m=e.rects.popper,w=e.elements[d?b:c],S=RE(zr(w)?w:w.contextElement||qn(e.elements.popper),l,i),y=jr(e.elements.reference),E=Tp({reference:y,element:m,strategy:"absolute",placement:o}),T=da(Object.assign({},m,E)),C=c===io?T:y,x={top:S.top-C.top+v.top,bottom:C.bottom-S.bottom+v.bottom,left:S.left-C.left+v.left,right:C.right-S.right+v.right},R=e.modifiersData.offset;if(c===io&&R){var B=R[o];Object.keys(x).forEach(function(I){var A=[Ht,Bt].indexOf(I)>=0?1:-1,D=[Et,Bt].indexOf(I)>=0?"y":"x";x[I]+=B[D]*A})}return x}function kE(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,s=n.rootBoundary,l=n.padding,a=n.flipVariations,i=n.allowedAutoPlacements,u=i===void 0?vi:i,c=Wr(r),f=c?a?mc:mc.filter(function(h){return Wr(h)===c}):Vo,d=f.filter(function(h){return u.indexOf(h)>=0});d.length===0&&(d=f);var p=d.reduce(function(h,v){return h[v]=Fo(e,{placement:v,boundary:o,rootBoundary:s,padding:l})[sn(v)],h},{});return Object.keys(p).sort(function(h,v){return p[h]-p[v]})}function IE(e){if(sn(e)===hi)return[];var t=ys(e);return[bc(e),t,bc(t)]}function LE(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,a=l===void 0?!0:l,i=n.fallbackPlacements,u=n.padding,c=n.boundary,f=n.rootBoundary,d=n.altBoundary,p=n.flipVariations,h=p===void 0?!0:p,v=n.allowedAutoPlacements,b=t.options.placement,m=sn(b),w=m===b,S=i||(w||!h?[ys(b)]:IE(b)),y=[b].concat(S).reduce(function(Fe,L){return Fe.concat(sn(L)===hi?kE(t,{placement:L,boundary:c,rootBoundary:f,padding:u,flipVariations:h,allowedAutoPlacements:v}):L)},[]),E=t.rects.reference,T=t.rects.popper,C=new Map,x=!0,R=y[0],B=0;B=0,ee=re?"width":"height",U=Fo(t,{placement:I,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),j=re?D?Ht:St:D?Bt:Et;E[ee]>T[ee]&&(j=ys(j));var z=ys(j),P=[];if(s&&P.push(U[A]<=0),a&&P.push(U[j]<=0,U[z]<=0),P.every(function(Fe){return Fe})){R=I,x=!1;break}C.set(I,P)}if(x)for(var Q=h?3:1,he=function(Fe){var L=y.find(function(J){var q=C.get(J);if(q)return q.slice(0,Fe).every(function(Z){return Z})});if(L)return R=L,"break"},xe=Q;xe>0;xe--){var Re=he(xe);if(Re==="break")break}t.placement!==R&&(t.modifiersData[r]._skip=!0,t.placement=R,t.reset=!0)}}var NE={name:"flip",enabled:!0,phase:"main",fn:LE,requiresIfExists:["offset"],data:{_skip:!1}};function _c(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Cc(e){return[Et,Ht,Bt,St].some(function(t){return e[t]>=0})}function FE(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,s=t.modifiersData.preventOverflow,l=Fo(t,{elementContext:"reference"}),a=Fo(t,{altBoundary:!0}),i=_c(l,r),u=_c(a,o,s),c=Cc(i),f=Cc(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var BE={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:FE};function HE(e,t,n){var r=sn(e),o=[St,Et].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,l=s[0],a=s[1];return l=l||0,a=(a||0)*o,[St,Ht].indexOf(r)>=0?{x:a,y:l}:{x:l,y:a}}function zE(e){var t=e.state,n=e.options,r=e.name,o=n.offset,s=o===void 0?[0,0]:o,l=vi.reduce(function(c,f){return c[f]=HE(f,t.rects,s),c},{}),a=l[t.placement],i=a.x,u=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=l}var DE={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:zE};function jE(e){var t=e.state,n=e.name;t.modifiersData[n]=Tp({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var Op={name:"popperOffsets",enabled:!0,phase:"read",fn:jE,data:{}};function WE(e){return e==="x"?"y":"x"}function KE(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,a=l===void 0?!1:l,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,f=n.padding,d=n.tether,p=d===void 0?!0:d,h=n.tetherOffset,v=h===void 0?0:h,b=Fo(t,{boundary:i,rootBoundary:u,padding:f,altBoundary:c}),m=sn(t.placement),w=Wr(t.placement),S=!w,y=yi(m),E=WE(y),T=t.modifiersData.popperOffsets,C=t.rects.reference,x=t.rects.popper,R=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,B=typeof R=="number"?{mainAxis:R,altAxis:R}:Object.assign({mainAxis:0,altAxis:0},R),I=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(T){if(s){var D,re=y==="y"?Et:St,ee=y==="y"?Bt:Ht,U=y==="y"?"height":"width",j=T[y],z=j+b[re],P=j-b[ee],Q=p?-x[U]/2:0,he=w===Hr?C[U]:x[U],xe=w===Hr?-x[U]:-C[U],Re=t.elements.arrow,Fe=p&&Re?gi(Re):{width:0,height:0},L=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:wp(),J=L[re],q=L[ee],Z=yo(0,C[U],Fe[U]),_e=S?C[U]/2-Q-Z-J-B.mainAxis:he-Z-J-B.mainAxis,Be=S?-C[U]/2+Q+Z+q+B.mainAxis:xe+Z+q+B.mainAxis,Ee=t.elements.arrow&&Uo(t.elements.arrow),_=Ee?y==="y"?Ee.clientTop||0:Ee.clientLeft||0:0,O=(D=I==null?void 0:I[y])!=null?D:0,N=j+_e-O-_,H=j+Be-O,W=yo(p?zs(z,N):z,j,p?mr(P,H):P);T[y]=W,A[y]=W-j}if(a){var Y,te=y==="x"?Et:St,G=y==="x"?Bt:Ht,X=T[E],K=E==="y"?"height":"width",pe=X+b[te],le=X-b[G],k=[Et,St].indexOf(m)!==-1,ne=(Y=I==null?void 0:I[E])!=null?Y:0,ye=k?pe:X-C[K]-x[K]-ne+B.altAxis,Ie=k?X+C[K]+x[K]-ne-B.altAxis:le,Le=p&&k?gE(ye,X,Ie):yo(p?ye:pe,X,p?Ie:le);T[E]=Le,A[E]=Le-X}t.modifiersData[r]=A}}var VE={name:"preventOverflow",enabled:!0,phase:"main",fn:KE,requiresIfExists:["offset"]};function UE(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function qE(e){return e===Zt(e)||!Ft(e)?bi(e):UE(e)}function YE(e){var t=e.getBoundingClientRect(),n=Dr(t.width)/e.offsetWidth||1,r=Dr(t.height)/e.offsetHeight||1;return n!==1||r!==1}function GE(e,t,n){n===void 0&&(n=!1);var r=Ft(t),o=Ft(t)&&YE(t),s=qn(t),l=jr(e,o),a={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(r||!r&&!n)&&((cn(t)!=="body"||_i(s))&&(a=qE(t)),Ft(t)?(i=jr(t,!0),i.x+=t.clientLeft,i.y+=t.clientTop):s&&(i.x=wi(s))),{x:l.left+a.scrollLeft-i.x,y:l.top+a.scrollTop-i.y,width:l.width,height:l.height}}function XE(e){var t=new Map,n=new Set,r=[];e.forEach(function(s){t.set(s.name,s)});function o(s){n.add(s.name);var l=[].concat(s.requires||[],s.requiresIfExists||[]);l.forEach(function(a){if(!n.has(a)){var i=t.get(a);i&&o(i)}}),r.push(s)}return e.forEach(function(s){n.has(s.name)||o(s)}),r}function JE(e){var t=XE(e);return dE.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function ZE(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function QE(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Ec={placement:"bottom",modifiers:[],strategy:"absolute"};function Sc(){for(var e=arguments.length,t=new Array(e),n=0;n{const r={name:"updateState",enabled:!0,phase:"write",fn:({state:i})=>{const u=rS(i);Object.assign(l.value,u)},requires:["computeStyles"]},o=$(()=>{const{onFirstUpdate:i,placement:u,strategy:c,modifiers:f}=g(n);return{onFirstUpdate:i,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],r,{name:"applyStyles",enabled:!1}]}}),s=Pr(),l=M({styles:{popper:{position:g(o).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),a=()=>{s.value&&(s.value.destroy(),s.value=void 0)};return de(o,i=>{const u=g(s);u&&u.setOptions(i)},{deep:!0}),de([e,t],([i,u])=>{a(),!(!i||!u)&&(s.value=$p(i,u,g(o)))}),mt(()=>{a()}),{state:$(()=>{var i;return{...((i=g(s))==null?void 0:i.state)||{}}}),styles:$(()=>g(l).styles),attributes:$(()=>g(l).attributes),update:()=>{var i;return(i=g(s))==null?void 0:i.update()},forceUpdate:()=>{var i;return(i=g(s))==null?void 0:i.forceUpdate()},instanceRef:$(()=>g(s))}};function rS(e){const t=Object.keys(e.elements),n=Bs(t.map(o=>[o,e.styles[o]||{}])),r=Bs(t.map(o=>[o,e.attributes[o]]));return{styles:n,attributes:r}}const oS=(e,t)=>{let n;de(()=>e.value,r=>{var o,s;r?(n=document.activeElement,Ve(t)&&((s=(o=t.value).focus)==null||s.call(o))):n.focus()})},Ap=e=>{if(!e)return{onClick:at,onMousedown:at,onMouseup:at};let t=!1,n=!1;return{onClick:l=>{t&&n&&e(l),t=n=!1},onMousedown:l=>{t=l.target===l.currentTarget},onMouseup:l=>{n=l.target===l.currentTarget}}};function xc(){let e;const t=(r,o)=>{n(),e=window.setTimeout(r,o)},n=()=>window.clearTimeout(e);return jo(()=>n()),{registerTimeout:t,cancelTimeout:n}}const Tc={prefix:Math.floor(Math.random()*1e4),current:0},sS=Symbol("elIdInjection"),Mp=()=>Ke()?Ce(sS,Tc):Tc,Ds=e=>{const t=Mp(),n=pi();return $(()=>g(e)||`${n.value}-id-${t.prefix}-${t.current++}`)};let xr=[];const Oc=e=>{const t=e;t.key===vt.esc&&xr.forEach(n=>n(t))},lS=e=>{Je(()=>{xr.length===0&&document.addEventListener("keydown",Oc),Xe&&xr.push(e)}),mt(()=>{xr=xr.filter(t=>t!==e),xr.length===0&&Xe&&document.removeEventListener("keydown",Oc)})};let $c;const Pp=()=>{const e=pi(),t=Mp(),n=$(()=>`${e.value}-popper-container-${t.prefix}`),r=$(()=>`#${n.value}`);return{id:n,selector:r}},aS=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},iS=()=>{const{id:e,selector:t}=Pp();return tl(()=>{Xe&&!$c&&!document.body.querySelector(t.value)&&($c=aS(e.value))}),{id:e,selector:t}},uS=qe({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),Rp=({showAfter:e,hideAfter:t,autoClose:n,open:r,close:o})=>{const{registerTimeout:s}=xc(),{registerTimeout:l,cancelTimeout:a}=xc();return{onOpen:c=>{s(()=>{r(c);const f=g(n);rt(f)&&f>0&&l(()=>{o(c)},f)},g(e))},onClose:c=>{a(),s(()=>{o(c)},g(t))}}},kp=Symbol("elForwardRef"),cS=e=>{it(kp,{setForwardRef:n=>{e.value=n}})},fS=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),Ac=M(0),Ip=2e3,Lp=Symbol("zIndexContextKey"),Ei=e=>{const t=e||Ce(Lp,void 0),n=$(()=>{const s=g(t);return rt(s)?s:Ip}),r=$(()=>n.value+Ac.value);return{initialZIndex:n,currentZIndex:r,nextZIndex:()=>(Ac.value++,r.value)}};function dS(e){const t=M();function n(){if(e.value==null)return;const{selectionStart:o,selectionEnd:s,value:l}=e.value;if(o==null||s==null)return;const a=l.slice(0,Math.max(0,o)),i=l.slice(Math.max(0,s));t.value={selectionStart:o,selectionEnd:s,value:l,beforeTxt:a,afterTxt:i}}function r(){if(e.value==null||t.value==null)return;const{value:o}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:a}=t.value;if(s==null||l==null||a==null)return;let i=o.length;if(o.endsWith(l))i=o.length-l.length;else if(o.startsWith(s))i=s.length;else{const u=s[a-1],c=o.indexOf(u,a-1);c!==-1&&(i=c+1)}e.value.setSelectionRange(i,i)}return[n,r]}const to=dl({type:String,values:fp,required:!1}),Np=Symbol("size"),pS=()=>{const e=Ce(Np,{});return $(()=>g(e.size)||"")},Fp=Symbol(),js=M();function Si(e,t=void 0){const n=Ke()?Ce(Fp,js):js;return e?$(()=>{var r,o;return(o=(r=n.value)==null?void 0:r[e])!=null?o:t}):n}function Bp(e,t){const n=Si(),r=Oe(e,$(()=>{var a;return((a=n.value)==null?void 0:a.namespace)||fa})),o=di($(()=>{var a;return(a=n.value)==null?void 0:a.locale})),s=Ei($(()=>{var a;return((a=n.value)==null?void 0:a.zIndex)||Ip})),l=$(()=>{var a;return g(t)||((a=n.value)==null?void 0:a.size)||""});return Hp($(()=>g(n)||{})),{ns:r,locale:o,zIndex:s,size:l}}const Hp=(e,t,n=!1)=>{var r;const o=!!Ke(),s=o?Si():void 0,l=(r=t==null?void 0:t.provide)!=null?r:o?it:void 0;if(!l)return;const a=$(()=>{const i=g(e);return s!=null&&s.value?hS(s.value,i):i});return l(Fp,a),l(pp,$(()=>a.value.locale)),l(hp,$(()=>a.value.namespace)),l(Lp,$(()=>a.value.zIndex)),l(Np,{size:$(()=>a.value.size||"")}),(n||!js.value)&&(js.value=a.value),a},hS=(e,t)=>{var n;const r=[...new Set([...vc(e),...vc(t)])],o={};for(const s of r)o[s]=(n=t[s])!=null?n:e[s];return o},vS=qe({a11y:{type:Boolean,default:!0},locale:{type:Se(Object)},size:to,button:{type:Se(Object)},experimentalFeatures:{type:Se(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Se(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),pa={};ue({name:"ElConfigProvider",props:vS,setup(e,{slots:t}){de(()=>e.message,r=>{Object.assign(pa,r??{})},{immediate:!0,deep:!0});const n=Hp(e);return()=>Me(t,"default",{config:n==null?void 0:n.value})}});var De=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};const mS=qe({size:{type:Se([Number,String])},color:{type:String}}),gS=ue({name:"ElIcon",inheritAttrs:!1}),yS=ue({...gS,props:mS,setup(e){const t=e,n=Oe("icon"),r=$(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:Lo(o)?void 0:Br(o),"--color":s}});return(o,s)=>(F(),oe("i",nn({class:g(n).b(),style:g(r)},o.$attrs),[Me(o.$slots,"default")],16))}});var bS=De(yS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const st=It(bS),xi=Symbol("formContextKey"),Ws=Symbol("formItemContextKey"),Kr=(e,t={})=>{const n=M(void 0),r=t.prop?n:mp("size"),o=t.global?n:pS(),s=t.form?{size:void 0}:Ce(xi,void 0),l=t.formItem?{size:void 0}:Ce(Ws,void 0);return $(()=>r.value||g(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||o.value||"")},qo=e=>{const t=mp("disabled"),n=Ce(xi,void 0);return $(()=>t.value||g(e)||(n==null?void 0:n.disabled)||!1)},no=()=>{const e=Ce(xi,void 0),t=Ce(Ws,void 0);return{form:e,formItem:t}},hl=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:r})=>{n||(n=M(!1)),r||(r=M(!1));const o=M();let s;const l=$(()=>{var a;return!!(!e.label&&t&&t.inputIds&&((a=t.inputIds)==null?void 0:a.length)<=1)});return Je(()=>{s=de([At(e,"id"),n],([a,i])=>{const u=a??(i?void 0:Ds().value);u!==o.value&&(t!=null&&t.removeInputId&&(o.value&&t.removeInputId(o.value),!(r!=null&&r.value)&&!i&&u&&t.addInputId(u)),o.value=u)},{immediate:!0})}),Zr(()=>{s&&s(),t!=null&&t.removeInputId&&o.value&&t.removeInputId(o.value)}),{isLabeledByFormItem:l,inputId:o}};let zt;const wS=` + height:0 !important; + visibility:hidden !important; + ${DC()?"":"overflow:hidden !important;"} + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; +`,_S=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function CS(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),r=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),o=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:_S.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:r,borderSize:o,boxSizing:n}}function Mc(e,t=1,n){var r;zt||(zt=document.createElement("textarea"),document.body.appendChild(zt));const{paddingSize:o,borderSize:s,boxSizing:l,contextStyle:a}=CS(e);zt.setAttribute("style",`${a};${wS}`),zt.value=e.value||e.placeholder||"";let i=zt.scrollHeight;const u={};l==="border-box"?i=i+s:l==="content-box"&&(i=i-o),zt.value="";const c=zt.scrollHeight-o;if(rt(t)){let f=c*t;l==="border-box"&&(f=f+o+s),i=Math.max(f,i),u.minHeight=`${f}px`}if(rt(n)){let f=c*n;l==="border-box"&&(f=f+o+s),i=Math.min(f,i)}return u.height=`${i}px`,(r=zt.parentNode)==null||r.removeChild(zt),zt=void 0,u}const ES=qe({id:{type:String,default:void 0},size:to,disabled:Boolean,modelValue:{type:Se([String,Number,Object]),default:""},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:Se([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:Kt},prefixIcon:{type:Kt},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Se([Object,Array,String]),default:()=>Nn({})}}),SS={[un]:e=>Te(e),input:e=>Te(e),change:e=>Te(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},xS=["role"],TS=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],OS=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],$S=ue({name:"ElInput",inheritAttrs:!1}),AS=ue({...$S,props:ES,emits:SS,setup(e,{expose:t,emit:n}){const r=e,o=qm(),s=ol(),l=$(()=>{const k={};return r.containerRole==="combobox"&&(k["aria-haspopup"]=o["aria-haspopup"],k["aria-owns"]=o["aria-owns"],k["aria-expanded"]=o["aria-expanded"]),k}),a=$(()=>[r.type==="textarea"?b.b():v.b(),v.m(p.value),v.is("disabled",h.value),v.is("exceed",he.value),{[v.b("group")]:s.prepend||s.append,[v.bm("group","append")]:s.append,[v.bm("group","prepend")]:s.prepend,[v.m("prefix")]:s.prefix||r.prefixIcon,[v.m("suffix")]:s.suffix||r.suffixIcon||r.clearable||r.showPassword,[v.bm("suffix","password-clear")]:j.value&&z.value},o.class]),i=$(()=>[v.e("wrapper"),v.is("focus",S.value)]),u=VC({excludeKeys:$(()=>Object.keys(l.value))}),{form:c,formItem:f}=no(),{inputId:d}=hl(r,{formItemContext:f}),p=Kr(),h=qo(),v=Oe("input"),b=Oe("textarea"),m=Pr(),w=Pr(),S=M(!1),y=M(!1),E=M(!1),T=M(!1),C=M(),x=Pr(r.inputStyle),R=$(()=>m.value||w.value),B=$(()=>{var k;return(k=c==null?void 0:c.statusIcon)!=null?k:!1}),I=$(()=>(f==null?void 0:f.validateState)||""),A=$(()=>I.value&&HC[I.value]),D=$(()=>T.value?RC:sC),re=$(()=>[o.style,r.inputStyle]),ee=$(()=>[r.inputStyle,x.value,{resize:r.resize}]),U=$(()=>Fr(r.modelValue)?"":String(r.modelValue)),j=$(()=>r.clearable&&!h.value&&!r.readonly&&!!U.value&&(S.value||y.value)),z=$(()=>r.showPassword&&!h.value&&!r.readonly&&!!U.value&&(!!U.value||S.value)),P=$(()=>r.showWordLimit&&!!u.value.maxlength&&(r.type==="text"||r.type==="textarea")&&!h.value&&!r.readonly&&!r.showPassword),Q=$(()=>U.value.length),he=$(()=>!!P.value&&Q.value>Number(u.value.maxlength)),xe=$(()=>!!s.suffix||!!r.suffixIcon||j.value||r.showPassword||P.value||!!I.value&&B.value),[Re,Fe]=dS(m);Nr(w,k=>{if(q(),!P.value||r.resize!=="both")return;const ne=k[0],{width:ye}=ne.contentRect;C.value={right:`calc(100% - ${ye+15+6}px)`}});const L=()=>{const{type:k,autosize:ne}=r;if(!(!Xe||k!=="textarea"||!w.value))if(ne){const ye=Pe(ne)?ne.minRows:void 0,Ie=Pe(ne)?ne.maxRows:void 0,Le=Mc(w.value,ye,Ie);x.value={overflowY:"hidden",...Le},We(()=>{w.value.offsetHeight,x.value=Le})}else x.value={minHeight:Mc(w.value).minHeight}},q=(k=>{let ne=!1;return()=>{var ye;if(ne||!r.autosize)return;((ye=w.value)==null?void 0:ye.offsetParent)===null||(k(),ne=!0)}})(L),Z=()=>{const k=R.value;!k||k.value===U.value||(k.value=U.value)},_e=async k=>{Re();let{value:ne}=k.target;if(r.formatter&&(ne=r.parser?r.parser(ne):ne,ne=r.formatter(ne)),!E.value){if(ne===U.value){Z();return}n(un,ne),n("input",ne),await We(),Z(),Fe()}},Be=k=>{n("change",k.target.value)},Ee=k=>{n("compositionstart",k),E.value=!0},_=k=>{var ne;n("compositionupdate",k);const ye=(ne=k.target)==null?void 0:ne.value,Ie=ye[ye.length-1]||"";E.value=!jC(Ie)},O=k=>{n("compositionend",k),E.value&&(E.value=!1,_e(k))},N=()=>{T.value=!T.value,H()},H=async()=>{var k;await We(),(k=R.value)==null||k.focus()},W=()=>{var k;return(k=R.value)==null?void 0:k.blur()},Y=k=>{S.value=!0,n("focus",k)},te=k=>{var ne;S.value=!1,n("blur",k),r.validateEvent&&((ne=f==null?void 0:f.validate)==null||ne.call(f,"blur").catch(ye=>void 0))},G=k=>{y.value=!1,n("mouseleave",k)},X=k=>{y.value=!0,n("mouseenter",k)},K=k=>{n("keydown",k)},pe=()=>{var k;(k=R.value)==null||k.select()},le=()=>{n(un,""),n("change",""),n("clear"),n("input","")};return de(()=>r.modelValue,()=>{var k;We(()=>L()),r.validateEvent&&((k=f==null?void 0:f.validate)==null||k.call(f,"change").catch(ne=>void 0))}),de(U,()=>Z()),de(()=>r.type,async()=>{await We(),Z(),L()}),Je(()=>{!r.formatter&&r.parser,Z(),We(L)}),t({input:m,textarea:w,ref:R,textareaStyle:ee,autosize:At(r,"autosize"),focus:H,blur:W,select:pe,clear:le,resizeTextarea:L}),(k,ne)=>ut((F(),oe("div",nn(g(l),{class:g(a),style:g(re),role:k.containerRole,onMouseenter:X,onMouseleave:G}),[ge(" input "),k.type!=="textarea"?(F(),oe(Ue,{key:0},[ge(" prepend slot "),k.$slots.prepend?(F(),oe("div",{key:0,class:V(g(v).be("group","prepend"))},[Me(k.$slots,"prepend")],2)):ge("v-if",!0),se("div",{class:V(g(i))},[ge(" prefix slot "),k.$slots.prefix||k.prefixIcon?(F(),oe("span",{key:0,class:V(g(v).e("prefix"))},[se("span",{class:V(g(v).e("prefix-inner")),onClick:H},[Me(k.$slots,"prefix"),k.prefixIcon?(F(),me(g(st),{key:0,class:V(g(v).e("icon"))},{default:ce(()=>[(F(),me(lt(k.prefixIcon)))]),_:1},8,["class"])):ge("v-if",!0)],2)],2)):ge("v-if",!0),se("input",nn({id:g(d),ref_key:"input",ref:m,class:g(v).e("inner")},g(u),{type:k.showPassword?T.value?"text":"password":k.type,disabled:g(h),formatter:k.formatter,parser:k.parser,readonly:k.readonly,autocomplete:k.autocomplete,tabindex:k.tabindex,"aria-label":k.label,placeholder:k.placeholder,style:k.inputStyle,form:r.form,onCompositionstart:Ee,onCompositionupdate:_,onCompositionend:O,onInput:_e,onFocus:Y,onBlur:te,onChange:Be,onKeydown:K}),null,16,TS),ge(" suffix slot "),g(xe)?(F(),oe("span",{key:1,class:V(g(v).e("suffix"))},[se("span",{class:V(g(v).e("suffix-inner")),onClick:H},[!g(j)||!g(z)||!g(P)?(F(),oe(Ue,{key:0},[Me(k.$slots,"suffix"),k.suffixIcon?(F(),me(g(st),{key:0,class:V(g(v).e("icon"))},{default:ce(()=>[(F(),me(lt(k.suffixIcon)))]),_:1},8,["class"])):ge("v-if",!0)],64)):ge("v-if",!0),g(j)?(F(),me(g(st),{key:1,class:V([g(v).e("icon"),g(v).e("clear")]),onMousedown:ar(g(at),["prevent"]),onClick:le},{default:ce(()=>[ie(g(sp))]),_:1},8,["class","onMousedown"])):ge("v-if",!0),g(z)?(F(),me(g(st),{key:2,class:V([g(v).e("icon"),g(v).e("password")]),onClick:N},{default:ce(()=>[(F(),me(lt(g(D))))]),_:1},8,["class"])):ge("v-if",!0),g(P)?(F(),oe("span",{key:3,class:V(g(v).e("count"))},[se("span",{class:V(g(v).e("count-inner"))},Ze(g(Q))+" / "+Ze(g(u).maxlength),3)],2)):ge("v-if",!0),g(I)&&g(A)&&g(B)?(F(),me(g(st),{key:4,class:V([g(v).e("icon"),g(v).e("validateIcon"),g(v).is("loading",g(I)==="validating")])},{default:ce(()=>[(F(),me(lt(g(A))))]),_:1},8,["class"])):ge("v-if",!0)],2)],2)):ge("v-if",!0)],2),ge(" append slot "),k.$slots.append?(F(),oe("div",{key:1,class:V(g(v).be("group","append"))},[Me(k.$slots,"append")],2)):ge("v-if",!0)],64)):(F(),oe(Ue,{key:1},[ge(" textarea "),se("textarea",nn({id:g(d),ref_key:"textarea",ref:w,class:g(b).e("inner")},g(u),{tabindex:k.tabindex,disabled:g(h),readonly:k.readonly,autocomplete:k.autocomplete,style:g(ee),"aria-label":k.label,placeholder:k.placeholder,form:r.form,onCompositionstart:Ee,onCompositionupdate:_,onCompositionend:O,onInput:_e,onFocus:Y,onBlur:te,onChange:Be,onKeydown:K}),null,16,OS),g(P)?(F(),oe("span",{key:0,style:et(C.value),class:V(g(v).e("count"))},Ze(g(Q))+" / "+Ze(g(u).maxlength),7)):ge("v-if",!0)],64))],16,xS)),[[Ut,k.type!=="hidden"]])}});var MS=De(AS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]]);const zp=It(MS),Or=4,PS={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},RS=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),Dp=Symbol("scrollbarContextKey"),kS=qe({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),IS="Thumb",LS=ue({__name:"thumb",props:kS,setup(e){const t=e,n=Ce(Dp),r=Oe("scrollbar");n||Un(IS,"can not inject scrollbar context");const o=M(),s=M(),l=M({}),a=M(!1);let i=!1,u=!1,c=Xe?document.onselectstart:null;const f=$(()=>PS[t.vertical?"vertical":"horizontal"]),d=$(()=>RS({size:t.size,move:t.move,bar:f.value})),p=$(()=>o.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/s.value[f.value.offset]),h=T=>{var C;if(T.stopPropagation(),T.ctrlKey||[1,2].includes(T.button))return;(C=window.getSelection())==null||C.removeAllRanges(),b(T);const x=T.currentTarget;x&&(l.value[f.value.axis]=x[f.value.offset]-(T[f.value.client]-x.getBoundingClientRect()[f.value.direction]))},v=T=>{if(!s.value||!o.value||!n.wrapElement)return;const C=Math.abs(T.target.getBoundingClientRect()[f.value.direction]-T[f.value.client]),x=s.value[f.value.offset]/2,R=(C-x)*100*p.value/o.value[f.value.offset];n.wrapElement[f.value.scroll]=R*n.wrapElement[f.value.scrollSize]/100},b=T=>{T.stopImmediatePropagation(),i=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",w),c=document.onselectstart,document.onselectstart=()=>!1},m=T=>{if(!o.value||!s.value||i===!1)return;const C=l.value[f.value.axis];if(!C)return;const x=(o.value.getBoundingClientRect()[f.value.direction]-T[f.value.client])*-1,R=s.value[f.value.offset]-C,B=(x-R)*100*p.value/o.value[f.value.offset];n.wrapElement[f.value.scroll]=B*n.wrapElement[f.value.scrollSize]/100},w=()=>{i=!1,l.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",w),E(),u&&(a.value=!1)},S=()=>{u=!1,a.value=!!t.size},y=()=>{u=!0,a.value=i};mt(()=>{E(),document.removeEventListener("mouseup",w)});const E=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return qt(At(n,"scrollbarElement"),"mousemove",S),qt(At(n,"scrollbarElement"),"mouseleave",y),(T,C)=>(F(),me(En,{name:g(r).b("fade"),persisted:""},{default:ce(()=>[ut(se("div",{ref_key:"instance",ref:o,class:V([g(r).e("bar"),g(r).is(g(f).key)]),onMousedown:v},[se("div",{ref_key:"thumb",ref:s,class:V(g(r).e("thumb")),style:et(g(d)),onMousedown:h},null,38)],34),[[Ut,T.always||a.value]])]),_:1},8,["name"]))}});var Pc=De(LS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const NS=qe({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),FS=ue({__name:"bar",props:NS,setup(e,{expose:t}){const n=e,r=M(0),o=M(0);return t({handleScroll:l=>{if(l){const a=l.offsetHeight-Or,i=l.offsetWidth-Or;o.value=l.scrollTop*100/a*n.ratioY,r.value=l.scrollLeft*100/i*n.ratioX}}}),(l,a)=>(F(),oe(Ue,null,[ie(Pc,{move:r.value,ratio:l.ratioX,size:l.width,always:l.always},null,8,["move","ratio","size","always"]),ie(Pc,{move:o.value,ratio:l.ratioY,size:l.height,vertical:"",always:l.always},null,8,["move","ratio","size","always"])],64))}});var BS=De(FS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const HS=qe({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Se([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),zS={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(rt)},DS="ElScrollbar",jS=ue({name:DS}),WS=ue({...jS,props:HS,emits:zS,setup(e,{expose:t,emit:n}){const r=e,o=Oe("scrollbar");let s,l;const a=M(),i=M(),u=M(),c=M("0"),f=M("0"),d=M(),p=M(1),h=M(1),v=$(()=>{const C={};return r.height&&(C.height=Br(r.height)),r.maxHeight&&(C.maxHeight=Br(r.maxHeight)),[r.wrapStyle,C]}),b=$(()=>[r.wrapClass,o.e("wrap"),{[o.em("wrap","hidden-default")]:!r.native}]),m=$(()=>[o.e("view"),r.viewClass]),w=()=>{var C;i.value&&((C=d.value)==null||C.handleScroll(i.value),n("scroll",{scrollTop:i.value.scrollTop,scrollLeft:i.value.scrollLeft}))};function S(C,x){Pe(C)?i.value.scrollTo(C):rt(C)&&rt(x)&&i.value.scrollTo(C,x)}const y=C=>{rt(C)&&(i.value.scrollTop=C)},E=C=>{rt(C)&&(i.value.scrollLeft=C)},T=()=>{if(!i.value)return;const C=i.value.offsetHeight-Or,x=i.value.offsetWidth-Or,R=C**2/i.value.scrollHeight,B=x**2/i.value.scrollWidth,I=Math.max(R,r.minSize),A=Math.max(B,r.minSize);p.value=R/(C-R)/(I/(C-I)),h.value=B/(x-B)/(A/(x-A)),f.value=I+Orr.noresize,C=>{C?(s==null||s(),l==null||l()):({stop:s}=Nr(u,T),l=qt("resize",T))},{immediate:!0}),de(()=>[r.maxHeight,r.height],()=>{r.native||We(()=>{var C;T(),i.value&&((C=d.value)==null||C.handleScroll(i.value))})}),it(Dp,Xt({scrollbarElement:a,wrapElement:i})),Je(()=>{r.native||We(()=>{T()})}),Ua(()=>T()),t({wrapRef:i,update:T,scrollTo:S,setScrollTop:y,setScrollLeft:E,handleScroll:w}),(C,x)=>(F(),oe("div",{ref_key:"scrollbarRef",ref:a,class:V(g(o).b())},[se("div",{ref_key:"wrapRef",ref:i,class:V(g(b)),style:et(g(v)),onScroll:w},[(F(),me(lt(C.tag),{ref_key:"resizeRef",ref:u,class:V(g(m)),style:et(C.viewStyle)},{default:ce(()=>[Me(C.$slots,"default")]),_:3},8,["class","style"]))],38),C.native?ge("v-if",!0):(F(),me(BS,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:C.always,"ratio-x":h.value,"ratio-y":p.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var KS=De(WS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const jp=It(KS),Ti=Symbol("popper"),Wp=Symbol("popperContent"),VS=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],Kp=qe({role:{type:String,values:VS,default:"tooltip"}}),US=ue({name:"ElPopper",inheritAttrs:!1}),qS=ue({...US,props:Kp,setup(e,{expose:t}){const n=e,r=M(),o=M(),s=M(),l=M(),a=$(()=>n.role),i={triggerRef:r,popperInstanceRef:o,contentRef:s,referenceRef:l,role:a};return t(i),it(Ti,i),(u,c)=>Me(u.$slots,"default")}});var YS=De(qS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const Vp=qe({arrowOffset:{type:Number,default:5}}),GS=ue({name:"ElPopperArrow",inheritAttrs:!1}),XS=ue({...GS,props:Vp,setup(e,{expose:t}){const n=e,r=Oe("popper"),{arrowOffset:o,arrowRef:s,arrowStyle:l}=Ce(Wp,void 0);return de(()=>n.arrowOffset,a=>{o.value=a}),mt(()=>{s.value=void 0}),t({arrowRef:s}),(a,i)=>(F(),oe("span",{ref_key:"arrowRef",ref:s,class:V(g(r).e("arrow")),style:et(g(l)),"data-popper-arrow":""},null,6))}});var JS=De(XS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const ZS="ElOnlyChild",QS=ue({name:ZS,setup(e,{slots:t,attrs:n}){var r;const o=Ce(kp),s=fS((r=o==null?void 0:o.setForwardRef)!=null?r:at);return()=>{var l;const a=(l=t.default)==null?void 0:l.call(t,n);if(!a||a.length>1)return null;const i=Up(a);return i?ut(wn(i,n),[[s]]):null}}});function Up(e){if(!e)return null;const t=e;for(const n of t){if(Pe(n))switch(n.type){case _t:continue;case Qr:case"svg":return Rc(n);case Ue:return Up(n.children);default:return n}return Rc(n)}return null}function Rc(e){const t=Oe("only-child");return ie("span",{class:t.e("content")},[e])}const qp=qe({virtualRef:{type:Se(Object)},virtualTriggering:Boolean,onMouseenter:{type:Se(Function)},onMouseleave:{type:Se(Function)},onClick:{type:Se(Function)},onKeydown:{type:Se(Function)},onFocus:{type:Se(Function)},onBlur:{type:Se(Function)},onContextmenu:{type:Se(Function)},id:String,open:Boolean}),e2=ue({name:"ElPopperTrigger",inheritAttrs:!1}),t2=ue({...e2,props:qp,setup(e,{expose:t}){const n=e,{role:r,triggerRef:o}=Ce(Ti,void 0);cS(o);const s=$(()=>a.value?n.id:void 0),l=$(()=>{if(r&&r.value==="tooltip")return n.open&&n.id?n.id:void 0}),a=$(()=>{if(r&&r.value!=="tooltip")return r.value}),i=$(()=>a.value?`${n.open}`:void 0);let u;return Je(()=>{de(()=>n.virtualRef,c=>{c&&(o.value=Fn(c))},{immediate:!0}),de(o,(c,f)=>{u==null||u(),u=void 0,Vn(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var p;const h=n[d];h&&(c.addEventListener(d.slice(2).toLowerCase(),h),(p=f==null?void 0:f.removeEventListener)==null||p.call(f,d.slice(2).toLowerCase(),h))}),u=de([s,l,a,i],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((p,h)=>{Fr(d[h])?c.removeAttribute(p):c.setAttribute(p,d[h])})},{immediate:!0})),Vn(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),mt(()=>{u==null||u(),u=void 0}),t({triggerRef:o}),(c,f)=>c.virtualTriggering?ge("v-if",!0):(F(),me(g(QS),nn({key:0},c.$attrs,{"aria-controls":g(s),"aria-describedby":g(l),"aria-expanded":g(i),"aria-haspopup":g(a)}),{default:ce(()=>[Me(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var n2=De(t2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Al="focus-trap.focus-after-trapped",Ml="focus-trap.focus-after-released",r2="focus-trap.focusout-prevented",kc={cancelable:!0,bubbles:!1},o2={cancelable:!0,bubbles:!1},Ic="focusAfterTrapped",Lc="focusAfterReleased",s2=Symbol("elFocusTrap"),Oi=M(),vl=M(0),$i=M(0);let os=0;const Yp=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0||r===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},Nc=(e,t)=>{for(const n of e)if(!l2(n,t))return n},l2=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},a2=e=>{const t=Yp(e),n=Nc(t,e),r=Nc(t.reverse(),e);return[n,r]},i2=e=>e instanceof HTMLInputElement&&"select"in e,Pn=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),$i.value=window.performance.now(),e!==n&&i2(e)&&t&&e.select()}};function Fc(e,t){const n=[...e],r=e.indexOf(t);return r!==-1&&n.splice(r,1),n}const u2=()=>{let e=[];return{push:r=>{const o=e[0];o&&r!==o&&o.pause(),e=Fc(e,r),e.unshift(r)},remove:r=>{var o,s;e=Fc(e,r),(s=(o=e[0])==null?void 0:o.resume)==null||s.call(o)}}},c2=(e,t=!1)=>{const n=document.activeElement;for(const r of e)if(Pn(r,t),document.activeElement!==n)return},Bc=u2(),f2=()=>vl.value>$i.value,ss=()=>{Oi.value="pointer",vl.value=window.performance.now()},Hc=()=>{Oi.value="keyboard",vl.value=window.performance.now()},d2=()=>(Je(()=>{os===0&&(document.addEventListener("mousedown",ss),document.addEventListener("touchstart",ss),document.addEventListener("keydown",Hc)),os++}),mt(()=>{os--,os<=0&&(document.removeEventListener("mousedown",ss),document.removeEventListener("touchstart",ss),document.removeEventListener("keydown",Hc))}),{focusReason:Oi,lastUserFocusTimestamp:vl,lastAutomatedFocusTimestamp:$i}),ls=e=>new CustomEvent(r2,{...o2,detail:e}),p2=ue({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Ic,Lc,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=M();let r,o;const{focusReason:s}=d2();lS(h=>{e.trapped&&!l.paused&&t("release-requested",h)});const l={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},a=h=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:v,altKey:b,ctrlKey:m,metaKey:w,currentTarget:S,shiftKey:y}=h,{loop:E}=e,T=v===vt.tab&&!b&&!m&&!w,C=document.activeElement;if(T&&C){const x=S,[R,B]=a2(x);if(R&&B){if(!y&&C===B){const A=ls({focusReason:s.value});t("focusout-prevented",A),A.defaultPrevented||(h.preventDefault(),E&&Pn(R,!0))}else if(y&&[R,x].includes(C)){const A=ls({focusReason:s.value});t("focusout-prevented",A),A.defaultPrevented||(h.preventDefault(),E&&Pn(B,!0))}}else if(C===x){const A=ls({focusReason:s.value});t("focusout-prevented",A),A.defaultPrevented||h.preventDefault()}}};it(s2,{focusTrapRef:n,onKeydown:a}),de(()=>e.focusTrapEl,h=>{h&&(n.value=h)},{immediate:!0}),de([n],([h],[v])=>{h&&(h.addEventListener("keydown",a),h.addEventListener("focusin",c),h.addEventListener("focusout",f)),v&&(v.removeEventListener("keydown",a),v.removeEventListener("focusin",c),v.removeEventListener("focusout",f))});const i=h=>{t(Ic,h)},u=h=>t(Lc,h),c=h=>{const v=g(n);if(!v)return;const b=h.target,m=h.relatedTarget,w=b&&v.contains(b);e.trapped||m&&v.contains(m)||(r=m),w&&t("focusin",h),!l.paused&&e.trapped&&(w?o=b:Pn(o,!0))},f=h=>{const v=g(n);if(!(l.paused||!v))if(e.trapped){const b=h.relatedTarget;!Fr(b)&&!v.contains(b)&&setTimeout(()=>{if(!l.paused&&e.trapped){const m=ls({focusReason:s.value});t("focusout-prevented",m),m.defaultPrevented||Pn(o,!0)}},0)}else{const b=h.target;b&&v.contains(b)||t("focusout",h)}};async function d(){await We();const h=g(n);if(h){Bc.push(l);const v=h.contains(document.activeElement)?r:document.activeElement;if(r=v,!h.contains(v)){const m=new Event(Al,kc);h.addEventListener(Al,i),h.dispatchEvent(m),m.defaultPrevented||We(()=>{let w=e.focusStartEl;Te(w)||(Pn(w),document.activeElement!==w&&(w="first")),w==="first"&&c2(Yp(h),!0),(document.activeElement===v||w==="container")&&Pn(h)})}}}function p(){const h=g(n);if(h){h.removeEventListener(Al,i);const v=new CustomEvent(Ml,{...kc,detail:{focusReason:s.value}});h.addEventListener(Ml,u),h.dispatchEvent(v),!v.defaultPrevented&&(s.value=="keyboard"||!f2()||h.contains(document.activeElement))&&Pn(r??document.body),h.removeEventListener(Ml,i),Bc.remove(l)}}return Je(()=>{e.trapped&&d(),de(()=>e.trapped,h=>{h?d():p()})}),mt(()=>{e.trapped&&p()}),{onKeydown:a}}});function h2(e,t,n,r,o,s){return Me(e.$slots,"default",{handleKeydown:e.onKeydown})}var Gp=De(p2,[["render",h2],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const v2=["fixed","absolute"],m2=qe({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Se(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:vi,default:"bottom"},popperOptions:{type:Se(Object),default:()=>({})},strategy:{type:String,values:v2,default:"absolute"}}),Xp=qe({...m2,id:String,style:{type:Se([String,Array,Object])},className:{type:Se([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Se([String,Array,Object])},popperStyle:{type:Se([String,Array,Object])},referenceEl:{type:Se(Object)},triggerTargetEl:{type:Se(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),g2={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},y2=(e,t=[])=>{const{placement:n,strategy:r,popperOptions:o}=e,s={placement:n,strategy:r,...o,modifiers:[...w2(e),...t]};return _2(s,o==null?void 0:o.modifiers),s},b2=e=>{if(Xe)return Fn(e)};function w2(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:r}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:r}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function _2(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const C2=0,E2=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:r,role:o}=Ce(Ti,void 0),s=M(),l=M(),a=$(()=>({name:"eventListeners",enabled:!!e.visible})),i=$(()=>{var m;const w=g(s),S=(m=g(l))!=null?m:C2;return{name:"arrow",enabled:!n_(w),options:{element:w,padding:S}}}),u=$(()=>({onFirstUpdate:()=>{h()},...y2(e,[g(i),g(a)])})),c=$(()=>b2(e.referenceEl)||g(r)),{attributes:f,state:d,styles:p,update:h,forceUpdate:v,instanceRef:b}=nS(c,n,u);return de(b,m=>t.value=m),Je(()=>{de(()=>{var m;return(m=g(c))==null?void 0:m.getBoundingClientRect()},()=>{h()})}),{attributes:f,arrowRef:s,contentRef:n,instanceRef:b,state:d,styles:p,role:o,forceUpdate:v,update:h}},S2=(e,{attributes:t,styles:n,role:r})=>{const{nextZIndex:o}=Ei(),s=Oe("popper"),l=$(()=>g(t).popper),a=M(e.zIndex||o()),i=$(()=>[s.b(),s.is("pure",e.pure),s.is(e.effect),e.popperClass]),u=$(()=>[{zIndex:g(a)},e.popperStyle||{},g(n).popper]),c=$(()=>r.value==="dialog"?"false":void 0),f=$(()=>g(n).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:l,contentClass:i,contentStyle:u,contentZIndex:a,updateZIndex:()=>{a.value=e.zIndex||o()}}},x2=(e,t)=>{const n=M(!1),r=M();return{focusStartRef:r,trapped:n,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(r.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!n.value&&(u.target&&(r.value=u.target),n.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},T2=ue({name:"ElPopperContent"}),O2=ue({...T2,props:Xp,emits:g2,setup(e,{expose:t,emit:n}){const r=e,{focusStartRef:o,trapped:s,onFocusAfterReleased:l,onFocusAfterTrapped:a,onFocusInTrap:i,onFocusoutPrevented:u,onReleaseRequested:c}=x2(r,n),{attributes:f,arrowRef:d,contentRef:p,styles:h,instanceRef:v,role:b,update:m}=E2(r),{ariaModal:w,arrowStyle:S,contentAttrs:y,contentClass:E,contentStyle:T,updateZIndex:C}=S2(r,{styles:h,attributes:f,role:b}),x=Ce(Ws,void 0),R=M();it(Wp,{arrowStyle:S,arrowRef:d,arrowOffset:R}),x&&(x.addInputId||x.removeInputId)&&it(Ws,{...x,addInputId:at,removeInputId:at});let B;const I=(D=!0)=>{m(),D&&C()},A=()=>{I(!1),r.visible&&r.focusOnShow?s.value=!0:r.visible===!1&&(s.value=!1)};return Je(()=>{de(()=>r.triggerTargetEl,(D,re)=>{B==null||B(),B=void 0;const ee=g(D||p.value),U=g(re||p.value);Vn(ee)&&(B=de([b,()=>r.ariaLabel,w,()=>r.id],j=>{["role","aria-label","aria-modal","id"].forEach((z,P)=>{Fr(j[P])?ee.removeAttribute(z):ee.setAttribute(z,j[P])})},{immediate:!0})),U!==ee&&Vn(U)&&["role","aria-label","aria-modal","id"].forEach(j=>{U.removeAttribute(j)})},{immediate:!0}),de(()=>r.visible,A,{immediate:!0})}),mt(()=>{B==null||B(),B=void 0}),t({popperContentRef:p,popperInstanceRef:v,updatePopper:I,contentStyle:T}),(D,re)=>(F(),oe("div",nn({ref_key:"contentRef",ref:p},g(y),{style:g(T),class:g(E),tabindex:"-1",onMouseenter:re[0]||(re[0]=ee=>D.$emit("mouseenter",ee)),onMouseleave:re[1]||(re[1]=ee=>D.$emit("mouseleave",ee))}),[ie(g(Gp),{trapped:g(s),"trap-on-focus-in":!0,"focus-trap-el":g(p),"focus-start-el":g(o),onFocusAfterTrapped:g(a),onFocusAfterReleased:g(l),onFocusin:g(i),onFocusoutPrevented:g(u),onReleaseRequested:g(c)},{default:ce(()=>[Me(D.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var $2=De(O2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const A2=It(YS),Ai=Symbol("elTooltip"),Jp=qe({...uS,...Xp,appendTo:{type:Se([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Se(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),Zp=qe({...qp,disabled:Boolean,trigger:{type:Se([String,Array]),default:"hover"},triggerKeys:{type:Se(Array),default:()=>[vt.enter,vt.space]}}),{useModelToggleProps:M2,useModelToggleEmits:P2,useModelToggle:R2}=vp("visible"),k2=qe({...Kp,...M2,...Jp,...Zp,...Vp,showArrow:{type:Boolean,default:!0}}),I2=[...P2,"before-show","before-hide","show","hide","open","close"],L2=(e,t)=>fe(e)?e.includes(t):e===t,Er=(e,t,n)=>r=>{L2(g(e),t)&&n(r)},N2=ue({name:"ElTooltipTrigger"}),F2=ue({...N2,props:Zp,setup(e,{expose:t}){const n=e,r=Oe("tooltip"),{controlled:o,id:s,open:l,onOpen:a,onClose:i,onToggle:u}=Ce(Ai,void 0),c=M(null),f=()=>{if(g(o)||n.disabled)return!0},d=At(n,"trigger"),p=yn(f,Er(d,"hover",a)),h=yn(f,Er(d,"hover",i)),v=yn(f,Er(d,"click",y=>{y.button===0&&u(y)})),b=yn(f,Er(d,"focus",a)),m=yn(f,Er(d,"focus",i)),w=yn(f,Er(d,"contextmenu",y=>{y.preventDefault(),u(y)})),S=yn(f,y=>{const{code:E}=y;n.triggerKeys.includes(E)&&(y.preventDefault(),u(y))});return t({triggerRef:c}),(y,E)=>(F(),me(g(n2),{id:g(s),"virtual-ref":y.virtualRef,open:g(l),"virtual-triggering":y.virtualTriggering,class:V(g(r).e("trigger")),onBlur:g(m),onClick:g(v),onContextmenu:g(w),onFocus:g(b),onMouseenter:g(p),onMouseleave:g(h),onKeydown:g(S)},{default:ce(()=>[Me(y.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var B2=De(F2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const H2=ue({name:"ElTooltipContent",inheritAttrs:!1}),z2=ue({...H2,props:Jp,setup(e,{expose:t}){const n=e,{selector:r}=Pp(),o=Oe("tooltip"),s=M(null),l=M(!1),{controlled:a,id:i,open:u,trigger:c,onClose:f,onOpen:d,onShow:p,onHide:h,onBeforeShow:v,onBeforeHide:b}=Ce(Ai,void 0),m=$(()=>n.transition||`${o.namespace.value}-fade-in-linear`),w=$(()=>n.persistent);mt(()=>{l.value=!0});const S=$(()=>g(w)?!0:g(u)),y=$(()=>n.disabled?!1:g(u)),E=$(()=>n.appendTo||r.value),T=$(()=>{var j;return(j=n.style)!=null?j:{}}),C=$(()=>!g(u)),x=()=>{h()},R=()=>{if(g(a))return!0},B=yn(R,()=>{n.enterable&&g(c)==="hover"&&d()}),I=yn(R,()=>{g(c)==="hover"&&f()}),A=()=>{var j,z;(z=(j=s.value)==null?void 0:j.updatePopper)==null||z.call(j),v==null||v()},D=()=>{b==null||b()},re=()=>{p(),U=qg($(()=>{var j;return(j=s.value)==null?void 0:j.popperContentRef}),()=>{if(g(a))return;g(c)!=="hover"&&f()})},ee=()=>{n.virtualTriggering||f()};let U;return de(()=>g(u),j=>{j||U==null||U()},{flush:"post"}),de(()=>n.content,()=>{var j,z;(z=(j=s.value)==null?void 0:j.updatePopper)==null||z.call(j)}),t({contentRef:s}),(j,z)=>(F(),me(Lm,{disabled:!j.teleported,to:g(E)},[ie(En,{name:g(m),onAfterLeave:x,onBeforeEnter:A,onAfterEnter:re,onBeforeLeave:D},{default:ce(()=>[g(S)?ut((F(),me(g($2),nn({key:0,id:g(i),ref_key:"contentRef",ref:s},j.$attrs,{"aria-label":j.ariaLabel,"aria-hidden":g(C),"boundaries-padding":j.boundariesPadding,"fallback-placements":j.fallbackPlacements,"gpu-acceleration":j.gpuAcceleration,offset:j.offset,placement:j.placement,"popper-options":j.popperOptions,strategy:j.strategy,effect:j.effect,enterable:j.enterable,pure:j.pure,"popper-class":j.popperClass,"popper-style":[j.popperStyle,g(T)],"reference-el":j.referenceEl,"trigger-target-el":j.triggerTargetEl,visible:g(y),"z-index":j.zIndex,onMouseenter:g(B),onMouseleave:g(I),onBlur:ee,onClose:g(f)}),{default:ce(()=>[l.value?ge("v-if",!0):Me(j.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Ut,g(y)]]):ge("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var D2=De(z2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const j2=["innerHTML"],W2={key:1},K2=ue({name:"ElTooltip"}),V2=ue({...K2,props:k2,emits:I2,setup(e,{expose:t,emit:n}){const r=e;iS();const o=Ds(),s=M(),l=M(),a=()=>{var m;const w=g(s);w&&((m=w.popperInstanceRef)==null||m.update())},i=M(!1),u=M(),{show:c,hide:f,hasUpdateHandler:d}=R2({indicator:i,toggleReason:u}),{onOpen:p,onClose:h}=Rp({showAfter:At(r,"showAfter"),hideAfter:At(r,"hideAfter"),autoClose:At(r,"autoClose"),open:c,close:f}),v=$(()=>rn(r.visible)&&!d.value);it(Ai,{controlled:v,id:o,open:Do(i),trigger:At(r,"trigger"),onOpen:m=>{p(m)},onClose:m=>{h(m)},onToggle:m=>{g(i)?h(m):p(m)},onShow:()=>{n("show",u.value)},onHide:()=>{n("hide",u.value)},onBeforeShow:()=>{n("before-show",u.value)},onBeforeHide:()=>{n("before-hide",u.value)},updatePopper:a}),de(()=>r.disabled,m=>{m&&i.value&&(i.value=!1)});const b=()=>{var m,w;const S=(w=(m=l.value)==null?void 0:m.contentRef)==null?void 0:w.popperContentRef;return S&&S.contains(document.activeElement)};return ed(()=>i.value&&f()),t({popperRef:s,contentRef:l,isFocusInsideContent:b,updatePopper:a,onOpen:p,onClose:h,hide:f}),(m,w)=>(F(),me(g(A2),{ref_key:"popperRef",ref:s,role:m.role},{default:ce(()=>[ie(B2,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:ce(()=>[m.$slots.default?Me(m.$slots,"default",{key:0}):ge("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ie(D2,{ref_key:"contentRef",ref:l,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:ce(()=>[Me(m.$slots,"content",{},()=>[m.rawContent?(F(),oe("span",{key:0,innerHTML:m.content},null,8,j2)):(F(),oe("span",W2,Ze(m.content),1))]),m.showArrow?(F(),me(g(JS),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):ge("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var U2=De(V2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Mi=It(U2),q2=qe({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),Y2=["textContent"],G2=ue({name:"ElBadge"}),X2=ue({...G2,props:q2,setup(e,{expose:t}){const n=e,r=Oe("badge"),o=$(()=>n.isDot?"":rt(n.value)&&rt(n.max)?n.max(F(),oe("div",{class:V(g(r).b())},[Me(s.$slots,"default"),ie(En,{name:`${g(r).namespace.value}-zoom-in-center`,persisted:""},{default:ce(()=>[ut(se("sup",{class:V([g(r).e("content"),g(r).em("content",s.type),g(r).is("fixed",!!s.$slots.default),g(r).is("dot",s.isDot)]),textContent:Ze(g(o))},null,10,Y2),[[Ut,!s.hidden&&(g(o)||s.isDot)]])]),_:1},8,["name"])],2))}});var J2=De(X2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const Z2=It(J2),Qp=Symbol("buttonGroupContextKey"),Q2=(e,t)=>{fi({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},$(()=>e.type==="text"));const n=Ce(Qp,void 0),r=Si("button"),{form:o}=no(),s=Kr($(()=>n==null?void 0:n.size)),l=qo(),a=M(),i=ol(),u=$(()=>e.type||(n==null?void 0:n.type)||""),c=$(()=>{var p,h,v;return(v=(h=e.autoInsertSpace)!=null?h:(p=r.value)==null?void 0:p.autoInsertSpace)!=null?v:!1}),f=$(()=>{var p;const h=(p=i.default)==null?void 0:p.call(i);if(c.value&&(h==null?void 0:h.length)===1){const v=h[0];if((v==null?void 0:v.type)===Qr){const b=v.children;return/^\p{Unified_Ideograph}{2}$/u.test(b.trim())}}return!1});return{_disabled:l,_size:s,_type:u,_ref:a,shouldAddSpace:f,handleClick:p=>{e.nativeType==="reset"&&(o==null||o.resetFields()),t("click",p)}}},ex=["default","primary","success","warning","info","danger","text",""],tx=["button","submit","reset"],ha=qe({size:to,disabled:Boolean,type:{type:String,values:ex,default:""},icon:{type:Kt},nativeType:{type:String,values:tx,default:"button"},loading:Boolean,loadingIcon:{type:Kt,default:()=>fl},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),nx={click:e=>e instanceof MouseEvent};function dt(e,t){rx(e)&&(e="100%");var n=ox(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function as(e){return Math.min(1,Math.max(0,e))}function rx(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function ox(e){return typeof e=="string"&&e.indexOf("%")!==-1}function eh(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function is(e){return e<=1?"".concat(Number(e)*100,"%"):e}function ur(e){return e.length===1?"0"+e:String(e)}function sx(e,t,n){return{r:dt(e,255)*255,g:dt(t,255)*255,b:dt(n,255)*255}}function zc(e,t,n){e=dt(e,255),t=dt(t,255),n=dt(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=0,a=(r+o)/2;if(r===o)l=0,s=0;else{var i=r-o;switch(l=a>.5?i/(2-r-o):i/(r+o),r){case e:s=(t-n)/i+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function lx(e,t,n){var r,o,s;if(e=dt(e,360),t=dt(t,100),n=dt(n,100),t===0)o=n,s=n,r=n;else{var l=n<.5?n*(1+t):n+t-n*t,a=2*n-l;r=Pl(a,l,e+1/3),o=Pl(a,l,e),s=Pl(a,l,e-1/3)}return{r:r*255,g:o*255,b:s*255}}function Dc(e,t,n){e=dt(e,255),t=dt(t,255),n=dt(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=r,a=r-o,i=r===0?0:a/r;if(r===o)s=0;else{switch(r){case e:s=(t-n)/a+(t>16,g:(e&65280)>>8,b:e&255}}var va={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function fx(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,s=null,l=!1,a=!1;return typeof e=="string"&&(e=hx(e)),typeof e=="object"&&(hn(e.r)&&hn(e.g)&&hn(e.b)?(t=sx(e.r,e.g,e.b),l=!0,a=String(e.r).substr(-1)==="%"?"prgb":"rgb"):hn(e.h)&&hn(e.s)&&hn(e.v)?(r=is(e.s),o=is(e.v),t=ax(e.h,r,o),l=!0,a="hsv"):hn(e.h)&&hn(e.s)&&hn(e.l)&&(r=is(e.s),s=is(e.l),t=lx(e.h,r,s),l=!0,a="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=eh(n),{ok:l,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var dx="[-\\+]?\\d+%?",px="[-\\+]?\\d*\\.\\d+%?",Bn="(?:".concat(px,")|(?:").concat(dx,")"),Rl="[\\s|\\(]+(".concat(Bn,")[,|\\s]+(").concat(Bn,")[,|\\s]+(").concat(Bn,")\\s*\\)?"),kl="[\\s|\\(]+(".concat(Bn,")[,|\\s]+(").concat(Bn,")[,|\\s]+(").concat(Bn,")[,|\\s]+(").concat(Bn,")\\s*\\)?"),Dt={CSS_UNIT:new RegExp(Bn),rgb:new RegExp("rgb"+Rl),rgba:new RegExp("rgba"+kl),hsl:new RegExp("hsl"+Rl),hsla:new RegExp("hsla"+kl),hsv:new RegExp("hsv"+Rl),hsva:new RegExp("hsva"+kl),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function hx(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(va[e])e=va[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=Dt.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=Dt.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Dt.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=Dt.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Dt.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=Dt.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Dt.hex8.exec(e),n?{r:Ot(n[1]),g:Ot(n[2]),b:Ot(n[3]),a:Wc(n[4]),format:t?"name":"hex8"}:(n=Dt.hex6.exec(e),n?{r:Ot(n[1]),g:Ot(n[2]),b:Ot(n[3]),format:t?"name":"hex"}:(n=Dt.hex4.exec(e),n?{r:Ot(n[1]+n[1]),g:Ot(n[2]+n[2]),b:Ot(n[3]+n[3]),a:Wc(n[4]+n[4]),format:t?"name":"hex8"}:(n=Dt.hex3.exec(e),n?{r:Ot(n[1]+n[1]),g:Ot(n[2]+n[2]),b:Ot(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function hn(e){return Boolean(Dt.CSS_UNIT.exec(String(e)))}var th=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var r;if(t instanceof e)return t;typeof t=="number"&&(t=cx(t)),this.originalInput=t;var o=fx(t);this.originalInput=t,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=n.format)!==null&&r!==void 0?r:o.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,r,o,s=t.r/255,l=t.g/255,a=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?r=l/12.92:r=Math.pow((l+.055)/1.055,2.4),a<=.03928?o=a/12.92:o=Math.pow((a+.055)/1.055,2.4),.2126*n+.7152*r+.0722*o},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=eh(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Dc(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Dc(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsva(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=zc(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=zc(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsla(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),jc(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),ix(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(r,")"):"rgba(".concat(t,", ").concat(n,", ").concat(r,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(dt(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(dt(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+jc(this.r,this.g,this.b,!1),n=0,r=Object.entries(va);n=0,s=!n&&o&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=as(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=as(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=as(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=as(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var r=this.toRgb(),o=new e(t).toRgb(),s=n/100,l={r:(o.r-r.r)*s+r.r,g:(o.g-r.g)*s+r.g,b:(o.b-r.b)*s+r.b,a:(o.a-r.a)*s+r.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var r=this.toHsl(),o=360/n,s=[this];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,s.push(new e(r));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),r=n.h,o=n.s,s=n.v,l=[],a=1/t;t--;)l.push(new e({h:r,s:o,v:s})),s=(s+a)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb(),o=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/o,g:(n.g*n.a+r.g*r.a*(1-n.a))/o,b:(n.b*n.a+r.b*r.a*(1-n.a))/o,a:o})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,o=[this],s=360/t,l=1;l{let r={};const o=e.color;if(o){const s=new th(o),l=e.dark?s.tint(20).toString():An(s,20);if(e.plain)r=n.cssVarBlock({"bg-color":e.dark?An(s,90):s.tint(90).toString(),"text-color":o,"border-color":e.dark?An(s,50):s.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":o,"hover-border-color":o,"active-bg-color":l,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":l}),t.value&&(r[n.cssVarBlockName("disabled-bg-color")]=e.dark?An(s,90):s.tint(90).toString(),r[n.cssVarBlockName("disabled-text-color")]=e.dark?An(s,50):s.tint(50).toString(),r[n.cssVarBlockName("disabled-border-color")]=e.dark?An(s,80):s.tint(80).toString());else{const a=e.dark?An(s,30):s.tint(30).toString(),i=s.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(r=n.cssVarBlock({"bg-color":o,"text-color":i,"border-color":o,"hover-bg-color":a,"hover-text-color":i,"hover-border-color":a,"active-bg-color":l,"active-border-color":l}),t.value){const u=e.dark?An(s,50):s.tint(50).toString();r[n.cssVarBlockName("disabled-bg-color")]=u,r[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,r[n.cssVarBlockName("disabled-border-color")]=u}}}return r})}const mx=["aria-disabled","disabled","autofocus","type"],gx=ue({name:"ElButton"}),yx=ue({...gx,props:ha,emits:nx,setup(e,{expose:t,emit:n}){const r=e,o=vx(r),s=Oe("button"),{_ref:l,_size:a,_type:i,_disabled:u,shouldAddSpace:c,handleClick:f}=Q2(r,n);return t({ref:l,size:a,type:i,disabled:u,shouldAddSpace:c}),(d,p)=>(F(),oe("button",{ref_key:"_ref",ref:l,class:V([g(s).b(),g(s).m(g(i)),g(s).m(g(a)),g(s).is("disabled",g(u)),g(s).is("loading",d.loading),g(s).is("plain",d.plain),g(s).is("round",d.round),g(s).is("circle",d.circle),g(s).is("text",d.text),g(s).is("link",d.link),g(s).is("has-bg",d.bg)]),"aria-disabled":g(u)||d.loading,disabled:g(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:et(g(o)),onClick:p[0]||(p[0]=(...h)=>g(f)&&g(f)(...h))},[d.loading?(F(),oe(Ue,{key:0},[d.$slots.loading?Me(d.$slots,"loading",{key:0}):(F(),me(g(st),{key:1,class:V(g(s).is("loading"))},{default:ce(()=>[(F(),me(lt(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(F(),me(g(st),{key:1},{default:ce(()=>[d.icon?(F(),me(lt(d.icon),{key:0})):Me(d.$slots,"icon",{key:1})]),_:3})):ge("v-if",!0),d.$slots.default?(F(),oe("span",{key:2,class:V({[g(s).em("text","expand")]:g(c)})},[Me(d.$slots,"default")],2)):ge("v-if",!0)],14,mx))}});var bx=De(yx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const wx={size:ha.size,type:ha.type},_x=ue({name:"ElButtonGroup"}),Cx=ue({..._x,props:wx,setup(e){const t=e;it(Qp,Xt({size:At(t,"size"),type:At(t,"type")}));const n=Oe("button");return(r,o)=>(F(),oe("div",{class:V(`${g(n).b("group")}`)},[Me(r.$slots,"default")],2))}});var nh=De(Cx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const rh=It(bx,{ButtonGroup:nh});Cr(nh);const Rn=new Map;let Kc;Xe&&(document.addEventListener("mousedown",e=>Kc=e),document.addEventListener("mouseup",e=>{for(const t of Rn.values())for(const{documentHandler:n}of t)n(e,Kc)}));function Vc(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:Vn(t.arg)&&n.push(t.arg),function(r,o){const s=t.instance.popperRef,l=r.target,a=o==null?void 0:o.target,i=!t||!t.instance,u=!l||!a,c=e.contains(l)||e.contains(a),f=e===l,d=n.length&&n.some(h=>h==null?void 0:h.contains(l))||n.length&&n.includes(a),p=s&&(s.contains(l)||s.contains(a));i||u||c||f||d||p||t.value(r,o)}}const Ex={beforeMount(e,t){Rn.has(e)||Rn.set(e,[]),Rn.get(e).push({documentHandler:Vc(e,t),bindingFn:t.value})},updated(e,t){Rn.has(e)||Rn.set(e,[]);const n=Rn.get(e),r=n.findIndex(s=>s.bindingFn===t.oldValue),o={documentHandler:Vc(e,t),bindingFn:t.value};r>=0?n.splice(r,1,o):n.push(o)},unmounted(e){Rn.delete(e)}},ma="_trap-focus-children",cr=[],Uc=e=>{if(cr.length===0)return;const t=cr[cr.length-1][ma];if(t.length>0&&e.code===vt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,r=e.target===t[0],o=e.target===t[t.length-1];r&&n&&(e.preventDefault(),t[t.length-1].focus()),o&&!n&&(e.preventDefault(),t[0].focus())}},Sx={beforeMount(e){e[ma]=Eu(e),cr.push(e),cr.length<=1&&document.addEventListener("keydown",Uc)},updated(e){We(()=>{e[ma]=Eu(e)})},unmounted(){cr.shift(),cr.length===0&&document.removeEventListener("keydown",Uc)}};var qc=!1,sr,ga,ya,bs,ws,oh,_s,ba,wa,_a,sh,Ca,Ea,lh,ah;function yt(){if(!qc){qc=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Ca=/\b(iPhone|iP[ao]d)/.exec(e),Ea=/\b(iP[ao]d)/.exec(e),_a=/Android/i.exec(e),lh=/FBAN\/\w+;/i.exec(e),ah=/Mobile/i.exec(e),sh=!!/Win64/.exec(e),t){sr=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,sr&&document&&document.documentMode&&(sr=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(e);oh=r?parseFloat(r[1])+4:sr,ga=t[2]?parseFloat(t[2]):NaN,ya=t[3]?parseFloat(t[3]):NaN,bs=t[4]?parseFloat(t[4]):NaN,bs?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),ws=t&&t[1]?parseFloat(t[1]):NaN):ws=NaN}else sr=ga=ya=ws=bs=NaN;if(n){if(n[1]){var o=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);_s=o?parseFloat(o[1].replace("_",".")):!0}else _s=!1;ba=!!n[2],wa=!!n[3]}else _s=ba=wa=!1}}var Sa={ie:function(){return yt()||sr},ieCompatibilityMode:function(){return yt()||oh>sr},ie64:function(){return Sa.ie()&&sh},firefox:function(){return yt()||ga},opera:function(){return yt()||ya},webkit:function(){return yt()||bs},safari:function(){return Sa.webkit()},chrome:function(){return yt()||ws},windows:function(){return yt()||ba},osx:function(){return yt()||_s},linux:function(){return yt()||wa},iphone:function(){return yt()||Ca},mobile:function(){return yt()||Ca||Ea||_a||ah},nativeApp:function(){return yt()||lh},android:function(){return yt()||_a},ipad:function(){return yt()||Ea}},xx=Sa,us=!!(typeof window<"u"&&window.document&&window.document.createElement),Tx={canUseDOM:us,canUseWorkers:typeof Worker<"u",canUseEventListeners:us&&!!(window.addEventListener||window.attachEvent),canUseViewport:us&&!!window.screen,isInWorker:!us},ih=Tx,uh;ih.canUseDOM&&(uh=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function Ox(e,t){if(!ih.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var o=document.createElement("div");o.setAttribute(n,"return;"),r=typeof o[n]=="function"}return!r&&uh&&e==="wheel"&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var $x=Ox,Yc=10,Gc=40,Xc=800;function ch(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*Yc,o=n*Yc,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(e.deltaMode==1?(r*=Gc,o*=Gc):(r*=Xc,o*=Xc)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}ch.getEventType=function(){return xx.firefox()?"DOMMouseScroll":$x("wheel")?"wheel":"mousewheel"};var Ax=ch;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const Mx=function(e,t){if(e&&e.addEventListener){const n=function(r){const o=Ax(r);t&&Reflect.apply(t,this,[r,o])};e.addEventListener("wheel",n,{passive:!0})}},Px={beforeMount(e,t){Mx(e,t.value)}},fh={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:to,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},dh={[un]:e=>Te(e)||rt(e)||rn(e),change:e=>Te(e)||rt(e)||rn(e)},ro=Symbol("checkboxGroupContextKey"),Rx=({model:e,isChecked:t})=>{const n=Ce(ro,void 0),r=$(()=>{var s,l;const a=(s=n==null?void 0:n.max)==null?void 0:s.value,i=(l=n==null?void 0:n.min)==null?void 0:l.value;return!Lo(a)&&e.value.length>=a&&!t.value||!Lo(i)&&e.value.length<=i&&t.value});return{isDisabled:qo($(()=>(n==null?void 0:n.disabled.value)||r.value)),isLimitDisabled:r}},kx=(e,{model:t,isLimitExceeded:n,hasOwnLabel:r,isDisabled:o,isLabeledByFormItem:s})=>{const l=Ce(ro,void 0),{formItem:a}=no(),{emit:i}=Ke();function u(h){var v,b;return h===e.trueLabel||h===!0?(v=e.trueLabel)!=null?v:!0:(b=e.falseLabel)!=null?b:!1}function c(h,v){i("change",u(h),v)}function f(h){if(n.value)return;const v=h.target;i("change",u(v.checked),h)}async function d(h){n.value||!r.value&&!o.value&&s.value&&(h.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await We(),c(t.value,h)))}const p=$(()=>(l==null?void 0:l.validateEvent)||e.validateEvent);return de(()=>e.modelValue,()=>{p.value&&(a==null||a.validate("change").catch(h=>void 0))}),{handleChange:f,onClickRoot:d}},Ix=e=>{const t=M(!1),{emit:n}=Ke(),r=Ce(ro,void 0),o=$(()=>Lo(r)===!1),s=M(!1);return{model:$({get(){var a,i;return o.value?(a=r==null?void 0:r.modelValue)==null?void 0:a.value:(i=e.modelValue)!=null?i:t.value},set(a){var i,u;o.value&&fe(a)?(s.value=((i=r==null?void 0:r.max)==null?void 0:i.value)!==void 0&&a.length>(r==null?void 0:r.max.value),s.value===!1&&((u=r==null?void 0:r.changeEvent)==null||u.call(r,a))):(n(un,a),t.value=a)}}),isGroup:o,isLimitExceeded:s}},Lx=(e,t,{model:n})=>{const r=Ce(ro,void 0),o=M(!1),s=$(()=>{const u=n.value;return rn(u)?u:fe(u)?Pe(e.label)?u.map(Ne).some(c=>t_(c,e.label)):u.map(Ne).includes(e.label):u!=null?u===e.trueLabel:!!u}),l=Kr($(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value}),{prop:!0}),a=Kr($(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value})),i=$(()=>!!(t.default||e.label));return{checkboxButtonSize:l,isChecked:s,isFocused:o,checkboxSize:a,hasOwnLabel:i}},Nx=(e,{model:t})=>{function n(){fe(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&n()},ph=(e,t)=>{const{formItem:n}=no(),{model:r,isGroup:o,isLimitExceeded:s}=Ix(e),{isFocused:l,isChecked:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c}=Lx(e,t,{model:r}),{isDisabled:f}=Rx({model:r,isChecked:a}),{inputId:d,isLabeledByFormItem:p}=hl(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:o}),{handleChange:h,onClickRoot:v}=kx(e,{model:r,isLimitExceeded:s,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:p});return Nx(e,{model:r}),{inputId:d,isLabeledByFormItem:p,isChecked:a,isDisabled:f,isFocused:l,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:r,handleChange:h,onClickRoot:v}},Fx=["tabindex","role","aria-checked"],Bx=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],Hx=["id","aria-hidden","disabled","value","name","tabindex"],zx=ue({name:"ElCheckbox"}),Dx=ue({...zx,props:fh,emits:dh,setup(e){const t=e,n=ol(),{inputId:r,isLabeledByFormItem:o,isChecked:s,isDisabled:l,isFocused:a,checkboxSize:i,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=ph(t,n),p=Oe("checkbox"),h=$(()=>[p.b(),p.m(i.value),p.is("disabled",l.value),p.is("bordered",t.border),p.is("checked",s.value)]),v=$(()=>[p.e("input"),p.is("disabled",l.value),p.is("checked",s.value),p.is("indeterminate",t.indeterminate),p.is("focus",a.value)]);return(b,m)=>(F(),me(lt(!g(u)&&g(o)?"span":"label"),{class:V(g(h)),"aria-controls":b.indeterminate?b.controls:null,onClick:g(d)},{default:ce(()=>[se("span",{class:V(g(v)),tabindex:b.indeterminate?0:void 0,role:b.indeterminate?"checkbox":void 0,"aria-checked":b.indeterminate?"mixed":void 0},[b.trueLabel||b.falseLabel?ut((F(),oe("input",{key:0,id:g(r),"onUpdate:modelValue":m[0]||(m[0]=w=>Ve(c)?c.value=w:null),class:V(g(p).e("original")),type:"checkbox","aria-hidden":b.indeterminate?"true":"false",name:b.name,tabindex:b.tabindex,disabled:g(l),"true-value":b.trueLabel,"false-value":b.falseLabel,onChange:m[1]||(m[1]=(...w)=>g(f)&&g(f)(...w)),onFocus:m[2]||(m[2]=w=>a.value=!0),onBlur:m[3]||(m[3]=w=>a.value=!1)},null,42,Bx)),[[Ms,g(c)]]):ut((F(),oe("input",{key:1,id:g(r),"onUpdate:modelValue":m[4]||(m[4]=w=>Ve(c)?c.value=w:null),class:V(g(p).e("original")),type:"checkbox","aria-hidden":b.indeterminate?"true":"false",disabled:g(l),value:b.label,name:b.name,tabindex:b.tabindex,onChange:m[5]||(m[5]=(...w)=>g(f)&&g(f)(...w)),onFocus:m[6]||(m[6]=w=>a.value=!0),onBlur:m[7]||(m[7]=w=>a.value=!1)},null,42,Hx)),[[Ms,g(c)]]),se("span",{class:V(g(p).e("inner"))},null,2)],10,Fx),g(u)?(F(),oe("span",{key:0,class:V(g(p).e("label"))},[Me(b.$slots,"default"),b.$slots.default?ge("v-if",!0):(F(),oe(Ue,{key:0},[Ct(Ze(b.label),1)],64))],2)):ge("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var jx=De(Dx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const Wx=["name","tabindex","disabled","true-value","false-value"],Kx=["name","tabindex","disabled","value"],Vx=ue({name:"ElCheckboxButton"}),Ux=ue({...Vx,props:fh,emits:dh,setup(e){const t=e,n=ol(),{isFocused:r,isChecked:o,isDisabled:s,checkboxButtonSize:l,model:a,handleChange:i}=ph(t,n),u=Ce(ro,void 0),c=Oe("checkbox"),f=$(()=>{var p,h,v,b;const m=(h=(p=u==null?void 0:u.fill)==null?void 0:p.value)!=null?h:"";return{backgroundColor:m,borderColor:m,color:(b=(v=u==null?void 0:u.textColor)==null?void 0:v.value)!=null?b:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=$(()=>[c.b("button"),c.bm("button",l.value),c.is("disabled",s.value),c.is("checked",o.value),c.is("focus",r.value)]);return(p,h)=>(F(),oe("label",{class:V(g(d))},[p.trueLabel||p.falseLabel?ut((F(),oe("input",{key:0,"onUpdate:modelValue":h[0]||(h[0]=v=>Ve(a)?a.value=v:null),class:V(g(c).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:g(s),"true-value":p.trueLabel,"false-value":p.falseLabel,onChange:h[1]||(h[1]=(...v)=>g(i)&&g(i)(...v)),onFocus:h[2]||(h[2]=v=>r.value=!0),onBlur:h[3]||(h[3]=v=>r.value=!1)},null,42,Wx)),[[Ms,g(a)]]):ut((F(),oe("input",{key:1,"onUpdate:modelValue":h[4]||(h[4]=v=>Ve(a)?a.value=v:null),class:V(g(c).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:g(s),value:p.label,onChange:h[5]||(h[5]=(...v)=>g(i)&&g(i)(...v)),onFocus:h[6]||(h[6]=v=>r.value=!0),onBlur:h[7]||(h[7]=v=>r.value=!1)},null,42,Kx)),[[Ms,g(a)]]),p.$slots.default||p.label?(F(),oe("span",{key:2,class:V(g(c).be("button","inner")),style:et(g(o)?g(f):void 0)},[Me(p.$slots,"default",{},()=>[Ct(Ze(p.label),1)])],6)):ge("v-if",!0)],2))}});var hh=De(Ux,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const qx=qe({modelValue:{type:Se(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:to,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),Yx={[un]:e=>fe(e),change:e=>fe(e)},Gx=ue({name:"ElCheckboxGroup"}),Xx=ue({...Gx,props:qx,emits:Yx,setup(e,{emit:t}){const n=e,r=Oe("checkbox"),{formItem:o}=no(),{inputId:s,isLabeledByFormItem:l}=hl(n,{formItemContext:o}),a=async u=>{t(un,u),await We(),t("change",u)},i=$({get(){return n.modelValue},set(u){a(u)}});return it(ro,{...a_(ja(n),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:i,changeEvent:a}),de(()=>n.modelValue,()=>{n.validateEvent&&(o==null||o.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return F(),me(lt(u.tag),{id:g(s),class:V(g(r).b("group")),role:"group","aria-label":g(l)?void 0:u.label||"checkbox-group","aria-labelledby":g(l)?(f=g(o))==null?void 0:f.labelId:void 0},{default:ce(()=>[Me(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var vh=De(Xx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Vr=It(jx,{CheckboxButton:hh,CheckboxGroup:vh});Cr(hh);Cr(vh);const mh=Symbol("rowContextKey"),Jx=["start","center","end","space-around","space-between","space-evenly"],Zx=["top","middle","bottom"],Qx=qe({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:Jx,default:"start"},align:{type:String,values:Zx,default:"top"}}),eT=ue({name:"ElRow"}),tT=ue({...eT,props:Qx,setup(e){const t=e,n=Oe("row"),r=$(()=>t.gutter);it(mh,{gutter:r});const o=$(()=>{const l={};return t.gutter&&(l.marginRight=l.marginLeft=`-${t.gutter/2}px`),l}),s=$(()=>[n.b(),n.is(`justify-${t.justify}`,t.justify!=="start"),n.is(`align-${t.align}`,t.align!=="top")]);return(l,a)=>(F(),me(lt(l.tag),{class:V(g(s)),style:et(g(o))},{default:ce(()=>[Me(l.$slots,"default")]),_:3},8,["class","style"]))}});var nT=De(tT,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const Pi=It(nT),rT=qe({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Se([Number,Object]),default:()=>Nn({})},sm:{type:Se([Number,Object]),default:()=>Nn({})},md:{type:Se([Number,Object]),default:()=>Nn({})},lg:{type:Se([Number,Object]),default:()=>Nn({})},xl:{type:Se([Number,Object]),default:()=>Nn({})}}),oT=ue({name:"ElCol"}),sT=ue({...oT,props:rT,setup(e){const t=e,{gutter:n}=Ce(mh,{gutter:$(()=>0)}),r=Oe("col"),o=$(()=>{const l={};return n.value&&(l.paddingLeft=l.paddingRight=`${n.value/2}px`),l}),s=$(()=>{const l=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];rt(c)&&(u==="span"?l.push(r.b(`${t[u]}`)):c>0&&l.push(r.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{rt(t[u])?l.push(r.b(`${u}-${t[u]}`)):Pe(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{l.push(c!=="span"?r.b(`${u}-${c}-${f}`):r.b(`${u}-${f}`))})}),n.value&&l.push(r.is("guttered")),[r.b(),l]});return(l,a)=>(F(),me(lt(l.tag),{class:V(g(s)),style:et(g(o))},{default:ce(()=>[Me(l.$slots,"default")]),_:3},8,["class","style"]))}});var lT=De(sT,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const gh=It(lT),aT=ue({name:"ElCollapseTransition"}),iT=ue({...aT,setup(e){const t=Oe("collapse-transition"),n={beforeEnter(r){r.dataset||(r.dataset={}),r.dataset.oldPaddingTop=r.style.paddingTop,r.dataset.oldPaddingBottom=r.style.paddingBottom,r.style.maxHeight=0,r.style.paddingTop=0,r.style.paddingBottom=0},enter(r){r.dataset.oldOverflow=r.style.overflow,r.scrollHeight!==0?(r.style.maxHeight=`${r.scrollHeight}px`,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom):(r.style.maxHeight=0,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom),r.style.overflow="hidden"},afterEnter(r){r.style.maxHeight="",r.style.overflow=r.dataset.oldOverflow},beforeLeave(r){r.dataset||(r.dataset={}),r.dataset.oldPaddingTop=r.style.paddingTop,r.dataset.oldPaddingBottom=r.style.paddingBottom,r.dataset.oldOverflow=r.style.overflow,r.style.maxHeight=`${r.scrollHeight}px`,r.style.overflow="hidden"},leave(r){r.scrollHeight!==0&&(r.style.maxHeight=0,r.style.paddingTop=0,r.style.paddingBottom=0)},afterLeave(r){r.style.maxHeight="",r.style.overflow=r.dataset.oldOverflow,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom}};return(r,o)=>(F(),me(En,nn({name:g(t).b()},vm(n)),{default:ce(()=>[Me(r.$slots,"default")]),_:3},16,["name"]))}});var Cs=De(iT,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);Cs.install=e=>{e.component(Cs.name,Cs)};const uT=Cs,cT=qe({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Se([String,Array,Object])},zIndex:{type:Se([String,Number])}}),fT={click:e=>e instanceof MouseEvent},dT="overlay";var pT=ue({name:"ElOverlay",props:cT,emits:fT,setup(e,{slots:t,emit:n}){const r=Oe(dT),o=i=>{n("click",i)},{onClick:s,onMousedown:l,onMouseup:a}=Ap(e.customMaskEvent?void 0:o);return()=>e.mask?ie("div",{class:[r.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:l,onMouseup:a},[Me(t,"default")],ms.STYLE|ms.CLASS|ms.PROPS,["onClick","onMouseup","onMousedown"]):ve("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Me(t,"default")])}});const hT=pT;let vT=class{constructor(t,n){this.parent=t,this.domNode=n,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,n=>{n.addEventListener("keydown",r=>{let o=!1;switch(r.code){case vt.down:{this.gotoSubIndex(this.subIndex+1),o=!0;break}case vt.up:{this.gotoSubIndex(this.subIndex-1),o=!0;break}case vt.tab:{vs(t,"mouseleave");break}case vt.enter:case vt.space:{o=!0,r.currentTarget.click();break}}return o&&(r.preventDefault(),r.stopPropagation()),!1})})}},mT=class{constructor(t,n){this.domNode=t,this.submenu=null,this.submenu=null,this.init(n)}init(t){this.domNode.setAttribute("tabindex","0");const n=this.domNode.querySelector(`.${t}-menu`);n&&(this.submenu=new vT(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let n=!1;switch(t.code){case vt.down:{vs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),n=!0;break}case vt.up:{vs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break}case vt.tab:{vs(t.currentTarget,"mouseleave");break}case vt.enter:case vt.space:{n=!0,t.currentTarget.click();break}}n&&t.preventDefault()})}},gT=class{constructor(t,n){this.domNode=t,this.init(n)}init(t){const n=this.domNode.childNodes;Array.from(n).forEach(r=>{r.nodeType===1&&new mT(r,t)})}};const yT=ue({name:"ElMenuCollapseTransition",setup(){const e=Oe("menu");return{listeners:{onBeforeEnter:n=>n.style.opacity="0.2",onEnter(n,r){ir(n,`${e.namespace.value}-opacity-transition`),n.style.opacity="1",r()},onAfterEnter(n){vr(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=""},onBeforeLeave(n){n.dataset||(n.dataset={}),hr(n,e.m("collapse"))?(vr(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),ir(n,e.m("collapse"))):(ir(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),vr(n,e.m("collapse"))),n.style.width=`${n.scrollWidth}px`,n.style.overflow="hidden"},onLeave(n){ir(n,"horizontal-collapse-transition"),n.style.width=`${n.dataset.scrollWidth}px`}}}}});function bT(e,t,n,r,o,s){return F(),me(En,nn({mode:"out-in"},e.listeners),{default:ce(()=>[Me(e.$slots,"default")]),_:3},16)}var wT=De(yT,[["render",bT],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function yh(e,t){const n=$(()=>{let o=e.parent;const s=[t.value];for(;o.type.name!=="ElMenu";)o.props.index&&s.unshift(o.props.index),o=o.parent;return s});return{parentMenu:$(()=>{let o=e.parent;for(;o&&!["ElMenu","ElSubMenu"].includes(o.type.name);)o=o.parent;return o}),indexPath:n}}function _T(e){return $(()=>{const n=e.backgroundColor;return n?new th(n).shade(20).toString():""})}const bh=(e,t)=>{const n=Oe("menu");return $(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":_T(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},CT=qe({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Kt},expandOpenIcon:{type:Kt},collapseCloseIcon:{type:Kt},collapseOpenIcon:{type:Kt}}),cs="ElSubMenu";var Ri=ue({name:cs,props:CT,setup(e,{slots:t,expose:n}){fi({from:"popper-append-to-body",replacement:"teleported",scope:cs,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},$(()=>e.popperAppendToBody!==void 0));const r=Ke(),{indexPath:o,parentMenu:s}=yh(r,$(()=>e.index)),l=Oe("menu"),a=Oe("sub-menu"),i=Ce("rootMenu");i||Un(cs,"can not inject root menu");const u=Ce(`subMenu:${s.value.uid}`);u||Un(cs,"can not inject sub menu");const c=M({}),f=M({});let d;const p=M(!1),h=M(),v=M(null),b=$(()=>I.value==="horizontal"&&w.value?"bottom-start":"right-start"),m=$(()=>I.value==="horizontal"&&w.value||I.value==="vertical"&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?T.value?e.expandOpenIcon:e.expandCloseIcon:rp:e.collapseCloseIcon&&e.collapseOpenIcon?T.value?e.collapseOpenIcon:e.collapseCloseIcon:ci),w=$(()=>u.level===0),S=$(()=>{var P;const Q=(P=e.teleported)!=null?P:e.popperAppendToBody;return Q===void 0?w.value:Q}),y=$(()=>i.props.collapse?`${l.namespace.value}-zoom-in-left`:`${l.namespace.value}-zoom-in-top`),E=$(()=>I.value==="horizontal"&&w.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),T=$(()=>i.openedMenus.includes(e.index)),C=$(()=>{let P=!1;return Object.values(c.value).forEach(Q=>{Q.active&&(P=!0)}),Object.values(f.value).forEach(Q=>{Q.active&&(P=!0)}),P}),x=$(()=>i.props.backgroundColor||""),R=$(()=>i.props.activeTextColor||""),B=$(()=>i.props.textColor||""),I=$(()=>i.props.mode),A=Xt({index:e.index,indexPath:o,active:C}),D=$(()=>I.value!=="horizontal"?{color:B.value}:{borderBottomColor:C.value?i.props.activeTextColor?R.value:"":"transparent",color:C.value?R.value:B.value}),re=()=>{var P,Q,he;return(he=(Q=(P=v.value)==null?void 0:P.popperRef)==null?void 0:Q.popperInstanceRef)==null?void 0:he.destroy()},ee=P=>{P||re()},U=()=>{i.props.menuTrigger==="hover"&&i.props.mode==="horizontal"||i.props.collapse&&i.props.mode==="vertical"||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:o.value,active:C.value})},j=(P,Q=e.showTimeout)=>{var he;P.type!=="focus"&&(i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=Ql(()=>{i.openMenu(e.index,o.value)},Q),S.value&&((he=s.value.vnode.el)==null||he.dispatchEvent(new MouseEvent("mouseenter")))))},z=(P=!1)=>{var Q,he;i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=Ql(()=>!p.value&&i.closeMenu(e.index,o.value),e.hideTimeout),S.value&&P&&((Q=r.parent)==null?void 0:Q.type.name)==="ElSubMenu"&&((he=u.handleMouseleave)==null||he.call(u,!0)))};de(()=>i.props.collapse,P=>ee(Boolean(P)));{const P=he=>{f.value[he.index]=he},Q=he=>{delete f.value[he.index]};it(`subMenu:${r.uid}`,{addSubMenu:P,removeSubMenu:Q,handleMouseleave:z,mouseInChild:p,level:u.level+1})}return n({opened:T}),Je(()=>{i.addSubMenu(A),u.addSubMenu(A)}),mt(()=>{u.removeSubMenu(A),i.removeSubMenu(A)}),()=>{var P;const Q=[(P=t.title)==null?void 0:P.call(t),ve(st,{class:a.e("icon-arrow"),style:{transform:T.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>Te(m.value)?ve(r.appContext.components[m.value]):ve(m.value)})],he=bh(i.props,u.level+1),xe=i.isMenuPopup?ve(Mi,{ref:v,visible:T.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:b.value,teleported:S.value,fallbackPlacements:E.value,transition:y.value,gpuAcceleration:!1},{content:()=>{var Re;return ve("div",{class:[l.m(I.value),l.m("popup-container"),e.popperClass],onMouseenter:Fe=>j(Fe,100),onMouseleave:()=>z(!0),onFocus:Fe=>j(Fe,100)},[ve("ul",{class:[l.b(),l.m("popup"),l.m(`popup-${b.value}`)],style:he.value},[(Re=t.default)==null?void 0:Re.call(t)])])},default:()=>ve("div",{class:a.e("title"),style:[D.value,{backgroundColor:x.value}],onClick:U},Q)}):ve(Ue,{},[ve("div",{class:a.e("title"),style:[D.value,{backgroundColor:x.value}],ref:h,onClick:U},Q),ve(uT,{},{default:()=>{var Re;return ut(ve("ul",{role:"menu",class:[l.b(),l.m("inline")],style:he.value},[(Re=t.default)==null?void 0:Re.call(t)]),[[Ut,T.value]])}})]);return ve("li",{class:[a.b(),a.is("active",C.value),a.is("opened",T.value),a.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:T.value,onMouseenter:j,onMouseleave:()=>z(!0),onFocus:j},[xe])}}});const ET=qe({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Se(Array),default:()=>Nn([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Il=e=>Array.isArray(e)&&e.every(t=>Te(t)),ST={close:(e,t)=>Te(e)&&Il(t),open:(e,t)=>Te(e)&&Il(t),select:(e,t,n,r)=>Te(e)&&Il(t)&&Pe(n)&&(r===void 0||r instanceof Promise)};var xT=ue({name:"ElMenu",props:ET,emits:ST,setup(e,{emit:t,slots:n,expose:r}){const o=Ke(),s=o.appContext.config.globalProperties.$router,l=M(),a=Oe("menu"),i=Oe("sub-menu"),u=M(-1),c=M(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=M(e.defaultActive),d=M({}),p=M({}),h=$(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),v=()=>{const I=f.value&&d.value[f.value];if(!I||e.mode==="horizontal"||e.collapse)return;I.indexPath.forEach(D=>{const re=p.value[D];re&&b(D,re.indexPath)})},b=(I,A)=>{c.value.includes(I)||(e.uniqueOpened&&(c.value=c.value.filter(D=>A.includes(D))),c.value.push(I),t("open",I,A))},m=I=>{const A=c.value.indexOf(I);A!==-1&&c.value.splice(A,1)},w=(I,A)=>{m(I),t("close",I,A)},S=({index:I,indexPath:A})=>{c.value.includes(I)?w(I,A):b(I,A)},y=I=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:A,indexPath:D}=I;if(!(Fr(A)||Fr(D)))if(e.router&&s){const re=I.route||A,ee=s.push(re).then(U=>(U||(f.value=A),U));t("select",A,D,{index:A,indexPath:D,route:re},ee)}else f.value=A,t("select",A,D,{index:A,indexPath:D})},E=I=>{const A=d.value,D=A[I]||f.value&&A[f.value]||A[e.defaultActive];D?f.value=D.index:f.value=I},T=()=>{var I,A;if(!l.value)return-1;const D=Array.from((A=(I=l.value)==null?void 0:I.childNodes)!=null?A:[]).filter(Q=>Q.nodeName!=="#text"||Q.nodeValue),re=64,ee=Number.parseInt(getComputedStyle(l.value).paddingLeft,10),U=Number.parseInt(getComputedStyle(l.value).paddingRight,10),j=l.value.clientWidth-ee-U;let z=0,P=0;return D.forEach((Q,he)=>{z+=Q.offsetWidth||0,z<=j-re&&(P=he+1)}),P===D.length?-1:P},C=(I,A=33.34)=>{let D;return()=>{D&&clearTimeout(D),D=setTimeout(()=>{I()},A)}};let x=!0;const R=()=>{const I=()=>{u.value=-1,We(()=>{u.value=T()})};x?I():C(I)(),x=!1};de(()=>e.defaultActive,I=>{d.value[I]||(f.value=""),E(I)}),de(()=>e.collapse,I=>{I&&(c.value=[])}),de(d.value,v);let B;Dn(()=>{e.mode==="horizontal"&&e.ellipsis?B=Nr(l,R).stop:B==null||B()});{const I=ee=>{p.value[ee.index]=ee},A=ee=>{delete p.value[ee.index]};it("rootMenu",Xt({props:e,openedMenus:c,items:d,subMenus:p,activeIndex:f,isMenuPopup:h,addMenuItem:ee=>{d.value[ee.index]=ee},removeMenuItem:ee=>{delete d.value[ee.index]},addSubMenu:I,removeSubMenu:A,openMenu:b,closeMenu:w,handleMenuItemClick:y,handleSubMenuClick:S})),it(`subMenu:${o.uid}`,{addSubMenu:I,removeSubMenu:A,mouseInChild:M(!1),level:0})}return Je(()=>{e.mode==="horizontal"&&new gT(o.vnode.el,a.namespace.value)}),r({open:A=>{const{indexPath:D}=p.value[A];D.forEach(re=>b(re,D))},close:m,handleResize:R}),()=>{var I,A;let D=(A=(I=n.default)==null?void 0:I.call(n))!=null?A:[];const re=[];if(e.mode==="horizontal"&&l.value){const j=gs(D),z=u.value===-1?j:j.slice(0,u.value),P=u.value===-1?[]:j.slice(u.value);P!=null&&P.length&&e.ellipsis&&(D=z,re.push(ve(Ri,{index:"sub-menu-more",class:i.e("hide-arrow")},{title:()=>ve(st,{class:i.e("icon-more")},{default:()=>ve(_C)}),default:()=>P})))}const ee=bh(e,0),U=ve("ul",{key:String(e.collapse),role:"menubar",ref:l,style:ee.value,class:{[a.b()]:!0,[a.m(e.mode)]:!0,[a.m("collapse")]:e.collapse}},[...D,...re]);return e.collapseTransition&&e.mode==="vertical"?ve(wT,()=>U):U}}});const TT=qe({index:{type:Se([String,null]),default:null},route:{type:Se([String,Object])},disabled:Boolean}),OT={click:e=>Te(e.index)&&Array.isArray(e.indexPath)},Ll="ElMenuItem",$T=ue({name:Ll,components:{ElTooltip:Mi},props:TT,emits:OT,setup(e,{emit:t}){const n=Ke(),r=Ce("rootMenu"),o=Oe("menu"),s=Oe("menu-item");r||Un(Ll,"can not inject root menu");const{parentMenu:l,indexPath:a}=yh(n,At(e,"index")),i=Ce(`subMenu:${l.value.uid}`);i||Un(Ll,"can not inject sub menu");const u=$(()=>e.index===r.activeIndex),c=Xt({index:e.index,indexPath:a,active:u}),f=()=>{e.disabled||(r.handleMenuItemClick({index:e.index,indexPath:a.value,route:e.route}),t("click",c))};return Je(()=>{i.addSubMenu(c),r.addMenuItem(c)}),mt(()=>{i.removeSubMenu(c),r.removeMenuItem(c)}),{parentMenu:l,rootMenu:r,active:u,nsMenu:o,nsMenuItem:s,handleClick:f}}});function AT(e,t,n,r,o,s){const l=ot("el-tooltip");return F(),oe("li",{class:V([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...a)=>e.handleClick&&e.handleClick(...a))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(F(),me(l,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:ce(()=>[Me(e.$slots,"title")]),default:ce(()=>[se("div",{class:V(e.nsMenu.be("tooltip","trigger"))},[Me(e.$slots,"default")],2)]),_:3},8,["effect"])):(F(),oe(Ue,{key:1},[Me(e.$slots,"default"),Me(e.$slots,"title")],64))],2)}var wh=De($T,[["render",AT],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const MT={title:String},PT="ElMenuItemGroup",RT=ue({name:PT,props:MT,setup(){return{ns:Oe("menu-item-group")}}});function kT(e,t,n,r,o,s){return F(),oe("li",{class:V(e.ns.b())},[se("div",{class:V(e.ns.e("title"))},[e.$slots.title?Me(e.$slots,"title",{key:1}):(F(),oe(Ue,{key:0},[Ct(Ze(e.title),1)],64))],2),se("ul",null,[Me(e.$slots,"default")])],2)}var _h=De(RT,[["render",kT],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const IT=It(xT,{MenuItem:wh,MenuItemGroup:_h,SubMenu:Ri}),LT=Cr(wh);Cr(_h);Cr(Ri);const NT=qe({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Kt},inactiveIcon:{type:Kt},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Se(Function)},size:{type:String,validator:dp},tabindex:{type:[String,Number]}}),FT={[un]:e=>rn(e)||Te(e)||rt(e),[ua]:e=>rn(e)||Te(e)||rt(e),[ca]:e=>rn(e)||Te(e)||rt(e)},BT=["onClick"],HT=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],zT=["aria-hidden"],DT=["aria-hidden"],jT=["aria-hidden"],xa="ElSwitch",WT=ue({name:xa}),KT=ue({...WT,props:NT,emits:FT,setup(e,{expose:t,emit:n}){const r=e,o=Ke(),{formItem:s}=no(),l=Kr(),a=Oe("switch");fi({from:'"value"',replacement:'"model-value" or "v-model"',scope:xa,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},$(()=>{var E;return!!((E=o.vnode.props)!=null&&E.value)}));const{inputId:i}=hl(r,{formItemContext:s}),u=qo($(()=>r.loading)),c=M(r.modelValue!==!1),f=M(),d=M(),p=$(()=>[a.b(),a.m(l.value),a.is("disabled",u.value),a.is("checked",b.value)]),h=$(()=>({width:Br(r.width)}));de(()=>r.modelValue,()=>{c.value=!0}),de(()=>r.value,()=>{c.value=!1});const v=$(()=>c.value?r.modelValue:r.value),b=$(()=>v.value===r.activeValue);[r.activeValue,r.inactiveValue].includes(v.value)||(n(un,r.inactiveValue),n(ua,r.inactiveValue),n(ca,r.inactiveValue)),de(b,E=>{var T;f.value.checked=E,r.validateEvent&&((T=s==null?void 0:s.validate)==null||T.call(s,"change").catch(C=>void 0))});const m=()=>{const E=b.value?r.inactiveValue:r.activeValue;n(un,E),n(ua,E),n(ca,E),We(()=>{f.value.checked=b.value})},w=()=>{if(u.value)return;const{beforeChange:E}=r;if(!E){m();return}const T=E();[Ss(T),rn(T)].includes(!0)||Un(xa,"beforeChange must return type `Promise` or `boolean`"),Ss(T)?T.then(x=>{x&&m()}).catch(x=>{}):T&&m()},S=$(()=>a.cssVarBlock({...r.activeColor?{"on-color":r.activeColor}:null,...r.inactiveColor?{"off-color":r.inactiveColor}:null,...r.borderColor?{"border-color":r.borderColor}:null})),y=()=>{var E,T;(T=(E=f.value)==null?void 0:E.focus)==null||T.call(E)};return Je(()=>{f.value.checked=b.value}),t({focus:y,checked:b}),(E,T)=>(F(),oe("div",{class:V(g(p)),style:et(g(S)),onClick:ar(w,["prevent"])},[se("input",{id:g(i),ref_key:"input",ref:f,class:V(g(a).e("input")),type:"checkbox",role:"switch","aria-checked":g(b),"aria-disabled":g(u),name:E.name,"true-value":E.activeValue,"false-value":E.inactiveValue,disabled:g(u),tabindex:E.tabindex,onChange:m,onKeydown:fo(w,["enter"])},null,42,HT),!E.inlinePrompt&&(E.inactiveIcon||E.inactiveText)?(F(),oe("span",{key:0,class:V([g(a).e("label"),g(a).em("label","left"),g(a).is("active",!g(b))])},[E.inactiveIcon?(F(),me(g(st),{key:0},{default:ce(()=>[(F(),me(lt(E.inactiveIcon)))]),_:1})):ge("v-if",!0),!E.inactiveIcon&&E.inactiveText?(F(),oe("span",{key:1,"aria-hidden":g(b)},Ze(E.inactiveText),9,zT)):ge("v-if",!0)],2)):ge("v-if",!0),se("span",{ref_key:"core",ref:d,class:V(g(a).e("core")),style:et(g(h))},[E.inlinePrompt?(F(),oe("div",{key:0,class:V(g(a).e("inner"))},[E.activeIcon||E.inactiveIcon?(F(),me(g(st),{key:0,class:V(g(a).is("icon"))},{default:ce(()=>[(F(),me(lt(g(b)?E.activeIcon:E.inactiveIcon)))]),_:1},8,["class"])):E.activeText||E.inactiveText?(F(),oe("span",{key:1,class:V(g(a).is("text")),"aria-hidden":!g(b)},Ze(g(b)?E.activeText:E.inactiveText),11,DT)):ge("v-if",!0)],2)):ge("v-if",!0),se("div",{class:V(g(a).e("action"))},[E.loading?(F(),me(g(st),{key:0,class:V(g(a).is("loading"))},{default:ce(()=>[ie(g(fl))]),_:1},8,["class"])):ge("v-if",!0)],2)],6),!E.inlinePrompt&&(E.activeIcon||E.activeText)?(F(),oe("span",{key:1,class:V([g(a).e("label"),g(a).em("label","right"),g(a).is("active",g(b))])},[E.activeIcon?(F(),me(g(st),{key:0},{default:ce(()=>[(F(),me(lt(E.activeIcon)))]),_:1})):ge("v-if",!0),!E.activeIcon&&E.activeText?(F(),oe("span",{key:1,"aria-hidden":!g(b)},Ze(E.activeText),9,jT)):ge("v-if",!0)],2)):ge("v-if",!0)],14,BT))}});var VT=De(KT,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const UT=It(VT);/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var qT=/["'&<>]/,YT=GT;function GT(e){var t=""+e,n=qT.exec(t);if(!n)return t;var r,o="",s=0,l=0;for(s=n.index;stypeof u=="string"?Io(a,u):u(a,i,e))):(t!=="$key"&&Pe(a)&&"$value"in a&&(a=a.$value),[Pe(a)?Io(a,t):a])},l=function(a,i){if(r)return r(a.value,i.value);for(let u=0,c=a.key.length;ui.key[u])return 1}return 0};return e.map((a,i)=>({value:a,index:i,key:s?s(a,i):null})).sort((a,i)=>{let u=l(a,i);return u||(u=a.index-i.index),u*+n}).map(a=>a.value)},Ch=function(e,t){let n=null;return e.columns.forEach(r=>{r.id===t&&(n=r)}),n},JT=function(e,t){let n=null;for(let r=0;r{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let r=e;for(const o of n)r=r[o];return`${r}`}else if(typeof t=="function")return t.call(null,e)},fr=function(e,t){const n={};return(e||[]).forEach((r,o)=>{n[ct(r,t)]={row:r,index:o}}),n};function ZT(e,t){const n={};let r;for(r in e)n[r]=e[r];for(r in t)if(Ae(t,r)){const o=t[r];typeof o<"u"&&(n[r]=o)}return n}function ki(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Eh(e){return e===""||e!==void 0&&(e=ki(e),Number.isNaN(e)&&(e=80)),e}function QT(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function eO(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function wo(e,t,n){let r=!1;const o=e.indexOf(t),s=o!==-1,l=a=>{a==="add"?e.push(t):e.splice(o,1),r=!0,fe(t.children)&&t.children.forEach(i=>{wo(e,i,n??!s)})};return rn(n)?n&&!s?l("add"):!n&&s&&l("remove"):l(s?"remove":"add"),r}function tO(e,t,n="children",r="hasChildren"){const o=l=>!(Array.isArray(l)&&l.length);function s(l,a,i){t(l,a,i),a.forEach(u=>{if(u[r]){t(u,null,i+1);return}const c=u[n];o(c)||s(u,c,i+1)})}e.forEach(l=>{if(l[r]){t(l,null,0);return}const a=l[n];o(a)||s(l,a,0)})}let mn;function nO(e,t,n,r,o){o=ep({enterable:!0,showArrow:!0},o);const s=e==null?void 0:e.dataset.prefix,l=e==null?void 0:e.querySelector(`.${s}-scrollbar__wrap`);function a(){const b=o.effect==="light",m=document.createElement("div");return m.className=[`${s}-popper`,b?"is-light":"is-dark",o.popperClass||""].join(" "),n=YT(n),m.innerHTML=n,m.style.zIndex=String(r()),e==null||e.appendChild(m),m}function i(){const b=document.createElement("div");return b.className=`${s}-popper__arrow`,b}function u(){c&&c.update()}mn==null||mn(),mn=()=>{try{c&&c.destroy(),p&&(e==null||e.removeChild(p)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),l==null||l.removeEventListener("scroll",mn),mn=void 0}catch{}};let c=null,f=u,d=mn;o.enterable&&({onOpen:f,onClose:d}=Rp({showAfter:o.showAfter,hideAfter:o.hideAfter,open:u,close:mn}));const p=a();p.onmouseenter=f,p.onmouseleave=d;const h=[];if(o.offset&&h.push({name:"offset",options:{offset:[0,o.offset]}}),o.showArrow){const b=p.appendChild(i());h.push({name:"arrow",options:{element:b,padding:10}})}const v=o.popperOptions||{};return c=$p(t,p,{placement:o.placement||"top",strategy:"fixed",...v,modifiers:v.modifiers?h.concat(v.modifiers):h}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),l==null||l.addEventListener("scroll",mn),c}function Sh(e){return e.children?e_(e.children,Sh):[e]}function Zc(e,t){return e+t.colSpan}const xh=(e,t,n,r)=>{let o=0,s=e;const l=n.states.columns.value;if(r){const i=Sh(r[e]);o=l.slice(0,l.indexOf(i[0])).reduce(Zc,0),s=o+i.reduce(Zc,0)-1}else o=e;let a;switch(t){case"left":s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right");break;default:s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right")}return a?{direction:a,start:o,after:s}:{}},Ii=(e,t,n,r,o,s=0)=>{const l=[],{direction:a,start:i,after:u}=xh(t,n,r,o);if(a){const c=a==="left";l.push(`${e}-fixed-column--${a}`),c&&u+s===r.states.fixedLeafColumnsLength.value-1?l.push("is-last-column"):!c&&i-s===r.states.columns.value.length-r.states.rightFixedLeafColumnsLength.value&&l.push("is-first-column")}return l};function Qc(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Li=(e,t,n,r)=>{const{direction:o,start:s=0,after:l=0}=xh(e,t,n,r);if(!o)return;const a={},i=o==="left",u=n.states.columns.value;return i?a.left=u.slice(0,s).reduce(Qc,0):a.right=u.slice(l+1).reverse().reduce(Qc,0),a},Ur=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function rO(e){const t=Ke(),n=M(!1),r=M([]);return{updateExpandRows:()=>{const i=e.data.value||[],u=e.rowKey.value;if(n.value)r.value=i.slice();else if(u){const c=fr(r.value,u);r.value=i.reduce((f,d)=>{const p=ct(d,u);return c[p]&&f.push(d),f},[])}else r.value=[]},toggleRowExpansion:(i,u)=>{wo(r.value,i,u)&&t.emit("expand-change",i,r.value.slice())},setExpandRowKeys:i=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=fr(u,c);r.value=i.reduce((d,p)=>{const h=f[p];return h&&d.push(h.row),d},[])},isRowExpanded:i=>{const u=e.rowKey.value;return u?!!fr(r.value,u)[ct(i,u)]:r.value.includes(i)},states:{expandRows:r,defaultExpandAll:n}}}function oO(e){const t=Ke(),n=M(null),r=M(null),o=u=>{t.store.assertRowKey(),n.value=u,l(u)},s=()=>{n.value=null},l=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(g(c)||[]).find(p=>ct(p,f.value)===u)),r.value=d,t.emit("current-change",r.value,null)};return{setCurrentRowKey:o,restoreCurrentRowKey:s,setCurrentRowByKey:l,updateCurrentRow:u=>{const c=r.value;if(u&&u!==c){r.value=u,t.emit("current-change",r.value,c);return}!u&&c&&(r.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=r.value;if(!c.includes(f)&&f){if(u){const d=ct(f,u);l(d)}else r.value=null;r.value===null&&t.emit("current-change",null,f)}else n.value&&(l(n.value),s())},states:{_currentRowKey:n,currentRow:r}}}function sO(e){const t=M([]),n=M({}),r=M(16),o=M(!1),s=M({}),l=M("hasChildren"),a=M("children"),i=Ke(),u=$(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=$(()=>{const m=e.rowKey.value,w=Object.keys(s.value),S={};return w.length&&w.forEach(y=>{if(s.value[y].length){const E={children:[]};s.value[y].forEach(T=>{const C=ct(T,m);E.children.push(C),T[l.value]&&!S[C]&&(S[C]={children:[]})}),S[y]=E}}),S}),f=m=>{const w=e.rowKey.value,S={};return tO(m,(y,E,T)=>{const C=ct(y,w);Array.isArray(E)?S[C]={children:E.map(x=>ct(x,w)),level:T}:o.value&&(S[C]={children:[],lazy:!0,level:T})},a.value,l.value),S},d=(m=!1,w=(S=>(S=i.store)==null?void 0:S.states.defaultExpandAll.value)())=>{var S;const y=u.value,E=c.value,T=Object.keys(y),C={};if(T.length){const x=g(n),R=[],B=(A,D)=>{if(m)return t.value?w||t.value.includes(D):!!(w||A!=null&&A.expanded);{const re=w||t.value&&t.value.includes(D);return!!(A!=null&&A.expanded||re)}};T.forEach(A=>{const D=x[A],re={...y[A]};if(re.expanded=B(D,A),re.lazy){const{loaded:ee=!1,loading:U=!1}=D||{};re.loaded=!!ee,re.loading=!!U,R.push(A)}C[A]=re});const I=Object.keys(E);o.value&&I.length&&R.length&&I.forEach(A=>{const D=x[A],re=E[A].children;if(R.includes(A)){if(C[A].children.length!==0)throw new Error("[ElTable]children must be an empty array.");C[A].children=re}else{const{loaded:ee=!1,loading:U=!1}=D||{};C[A]={lazy:!0,loaded:!!ee,loading:!!U,expanded:B(D,A),children:re,level:""}}})}n.value=C,(S=i.store)==null||S.updateTableScrollY()};de(()=>t.value,()=>{d(!0)}),de(()=>u.value,()=>{d()}),de(()=>c.value,()=>{d()});const p=m=>{t.value=m,d()},h=(m,w)=>{i.store.assertRowKey();const S=e.rowKey.value,y=ct(m,S),E=y&&n.value[y];if(y&&E&&"expanded"in E){const T=E.expanded;w=typeof w>"u"?!E.expanded:w,n.value[y].expanded=w,T!==w&&i.emit("expand-change",m,w),i.store.updateTableScrollY()}},v=m=>{i.store.assertRowKey();const w=e.rowKey.value,S=ct(m,w),y=n.value[S];o.value&&y&&"loaded"in y&&!y.loaded?b(m,S,y):h(m,void 0)},b=(m,w,S)=>{const{load:y}=i.props;y&&!n.value[w].loaded&&(n.value[w].loading=!0,y(m,S,E=>{if(!Array.isArray(E))throw new TypeError("[ElTable] data must be an array");n.value[w].loading=!1,n.value[w].loaded=!0,n.value[w].expanded=!0,E.length&&(s.value[w]=E),i.emit("expand-change",m,!0)}))};return{loadData:b,loadOrToggle:v,toggleTreeExpansion:h,updateTreeExpandKeys:p,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:n,indent:r,lazy:o,lazyTreeNodeMap:s,lazyColumnIdentifier:l,childrenColumnName:a}}}const lO=(e,t)=>{const n=t.sortingColumn;return!n||typeof n.sortable=="string"?e:XT(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Es=e=>{const t=[];return e.forEach(n=>{n.children?t.push.apply(t,Es(n.children)):t.push(n)}),t};function aO(){var e;const t=Ke(),{size:n}=ja((e=t.proxy)==null?void 0:e.$props),r=M(null),o=M([]),s=M([]),l=M(!1),a=M([]),i=M([]),u=M([]),c=M([]),f=M([]),d=M([]),p=M([]),h=M([]),v=[],b=M(0),m=M(0),w=M(0),S=M(!1),y=M([]),E=M(!1),T=M(!1),C=M(null),x=M({}),R=M(null),B=M(null),I=M(null),A=M(null),D=M(null);de(o,()=>t.state&&j(!1),{deep:!0});const re=()=>{if(!r.value)throw new Error("[ElTable] prop row-key is required")},ee=ae=>{var be;(be=ae.children)==null||be.forEach(ke=>{ke.fixed=ae.fixed,ee(ke)})},U=()=>{a.value.forEach(He=>{ee(He)}),c.value=a.value.filter(He=>He.fixed===!0||He.fixed==="left"),f.value=a.value.filter(He=>He.fixed==="right"),c.value.length>0&&a.value[0]&&a.value[0].type==="selection"&&!a.value[0].fixed&&(a.value[0].fixed=!0,c.value.unshift(a.value[0]));const ae=a.value.filter(He=>!He.fixed);i.value=[].concat(c.value).concat(ae).concat(f.value);const be=Es(ae),ke=Es(c.value),$e=Es(f.value);b.value=be.length,m.value=ke.length,w.value=$e.length,u.value=[].concat(ke).concat(be).concat($e),l.value=c.value.length>0||f.value.length>0},j=(ae,be=!1)=>{ae&&U(),be?t.state.doLayout():t.state.debouncedUpdateLayout()},z=ae=>y.value.includes(ae),P=()=>{S.value=!1,y.value.length&&(y.value=[],t.emit("selection-change",[]))},Q=()=>{let ae;if(r.value){ae=[];const be=fr(y.value,r.value),ke=fr(o.value,r.value);for(const $e in be)Ae(be,$e)&&!ke[$e]&&ae.push(be[$e].row)}else ae=y.value.filter(be=>!o.value.includes(be));if(ae.length){const be=y.value.filter(ke=>!ae.includes(ke));y.value=be,t.emit("selection-change",be.slice())}},he=()=>(y.value||[]).slice(),xe=(ae,be=void 0,ke=!0)=>{if(wo(y.value,ae,be)){const He=(y.value||[]).slice();ke&&t.emit("select",He,ae),t.emit("selection-change",He)}},Re=()=>{var ae,be;const ke=T.value?!S.value:!(S.value||y.value.length);S.value=ke;let $e=!1,He=0;const ze=(be=(ae=t==null?void 0:t.store)==null?void 0:ae.states)==null?void 0:be.rowKey.value;o.value.forEach((Qe,dn)=>{const pn=dn+He;C.value?C.value.call(null,Qe,pn)&&wo(y.value,Qe,ke)&&($e=!0):wo(y.value,Qe,ke)&&($e=!0),He+=J(ct(Qe,ze))}),$e&&t.emit("selection-change",y.value?y.value.slice():[]),t.emit("select-all",y.value)},Fe=()=>{const ae=fr(y.value,r.value);o.value.forEach(be=>{const ke=ct(be,r.value),$e=ae[ke];$e&&(y.value[$e.index]=be)})},L=()=>{var ae,be,ke;if(((ae=o.value)==null?void 0:ae.length)===0){S.value=!1;return}let $e;r.value&&($e=fr(y.value,r.value));const He=function(pn){return $e?!!$e[ct(pn,r.value)]:y.value.includes(pn)};let ze=!0,Qe=0,dn=0;for(let pn=0,Vh=(o.value||[]).length;pn{var be;if(!t||!t.store)return 0;const{treeData:ke}=t.store.states;let $e=0;const He=(be=ke.value[ae])==null?void 0:be.children;return He&&($e+=He.length,He.forEach(ze=>{$e+=J(ze)})),$e},q=(ae,be)=>{Array.isArray(ae)||(ae=[ae]);const ke={};return ae.forEach($e=>{x.value[$e.id]=be,ke[$e.columnKey||$e.id]=be}),ke},Z=(ae,be,ke)=>{B.value&&B.value!==ae&&(B.value.order=null),B.value=ae,I.value=be,A.value=ke},_e=()=>{let ae=g(s);Object.keys(x.value).forEach(be=>{const ke=x.value[be];if(!ke||ke.length===0)return;const $e=Ch({columns:u.value},be);$e&&$e.filterMethod&&(ae=ae.filter(He=>ke.some(ze=>$e.filterMethod.call(null,ze,He,$e))))}),R.value=ae},Be=()=>{o.value=lO(R.value,{sortingColumn:B.value,sortProp:I.value,sortOrder:A.value})},Ee=(ae=void 0)=>{ae&&ae.filter||_e(),Be()},_=ae=>{const{tableHeaderRef:be}=t.refs;if(!be)return;const ke=Object.assign({},be.filterPanels),$e=Object.keys(ke);if($e.length)if(typeof ae=="string"&&(ae=[ae]),Array.isArray(ae)){const He=ae.map(ze=>JT({columns:u.value},ze));$e.forEach(ze=>{const Qe=He.find(dn=>dn.id===ze);Qe&&(Qe.filteredValue=[])}),t.store.commit("filterChange",{column:He,values:[],silent:!0,multi:!0})}else $e.forEach(He=>{const ze=u.value.find(Qe=>Qe.id===He);ze&&(ze.filteredValue=[])}),x.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},O=()=>{B.value&&(Z(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:N,toggleRowExpansion:H,updateExpandRows:W,states:Y,isRowExpanded:te}=rO({data:o,rowKey:r}),{updateTreeExpandKeys:G,toggleTreeExpansion:X,updateTreeData:K,loadOrToggle:pe,states:le}=sO({data:o,rowKey:r}),{updateCurrentRowData:k,updateCurrentRow:ne,setCurrentRowKey:ye,states:Ie}=oO({data:o,rowKey:r});return{assertRowKey:re,updateColumns:U,scheduleLayout:j,isSelected:z,clearSelection:P,cleanSelection:Q,getSelectionRows:he,toggleRowSelection:xe,_toggleAllSelection:Re,toggleAllSelection:null,updateSelectionByRowKey:Fe,updateAllSelected:L,updateFilters:q,updateCurrentRow:ne,updateSort:Z,execFilter:_e,execSort:Be,execQuery:Ee,clearFilter:_,clearSort:O,toggleRowExpansion:H,setExpandRowKeysAdapter:ae=>{N(ae),G(ae)},setCurrentRowKey:ye,toggleRowExpansionAdapter:(ae,be)=>{u.value.some(({type:$e})=>$e==="expand")?H(ae,be):X(ae,be)},isRowExpanded:te,updateExpandRows:W,updateCurrentRowData:k,loadOrToggle:pe,updateTreeData:K,states:{tableSize:n,rowKey:r,data:o,_data:s,isComplex:l,_columns:a,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:p,rightFixedLeafColumns:h,updateOrderFns:v,leafColumnsLength:b,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:w,isAllSelected:S,selection:y,reserveSelection:E,selectOnIndeterminate:T,selectable:C,filters:x,filteredData:R,sortingColumn:B,sortProp:I,sortOrder:A,hoverRow:D,...Y,...le,...Ie}}}function Ta(e,t){return e.map(n=>{var r;return n.id===t.id?t:((r=n.children)!=null&&r.length&&(n.children=Ta(n.children,t)),n)})}function Oa(e){e.forEach(t=>{var n,r;t.no=(n=t.getColumnIndex)==null?void 0:n.call(t),(r=t.children)!=null&&r.length&&Oa(t.children)}),e.sort((t,n)=>t.no-n.no)}function iO(){const e=Ke(),t=aO();return{ns:Oe("table"),...t,mutations:{setData(l,a){const i=g(l._data)!==a;l.data.value=a,l._data.value=a,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),g(l.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):i?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(l,a,i,u){const c=g(l._columns);let f=[];i?(i&&!i.children&&(i.children=[]),i.children.push(a),f=Ta(c,i)):(c.push(a),f=c),Oa(f),l._columns.value=f,l.updateOrderFns.push(u),a.type==="selection"&&(l.selectable.value=a.selectable,l.reserveSelection.value=a.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(l,a){var i;((i=a.getColumnIndex)==null?void 0:i.call(a))!==a.no&&(Oa(l._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(l,a,i,u){const c=g(l._columns)||[];if(i)i.children.splice(i.children.findIndex(d=>d.id===a.id),1),We(()=>{var d;((d=i.children)==null?void 0:d.length)===0&&delete i.children}),l._columns.value=Ta(c,i);else{const d=c.indexOf(a);d>-1&&(c.splice(d,1),l._columns.value=c)}const f=l.updateOrderFns.indexOf(u);f>-1&&l.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(l,a){const{prop:i,order:u,init:c}=a;if(i){const f=g(l.columns).find(d=>d.property===i);f&&(f.order=u,e.store.updateSort(f,i,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(l,a){const{sortingColumn:i,sortProp:u,sortOrder:c}=l,f=g(i),d=g(u),p=g(c);p===null&&(l.sortingColumn.value=null,l.sortProp.value=null);const h={filter:!0};e.store.execQuery(h),(!a||!(a.silent||a.init))&&e.emit("sort-change",{column:f,prop:d,order:p}),e.store.updateTableScrollY()},filterChange(l,a){const{column:i,values:u,silent:c}=a,f=e.store.updateFilters(i,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(l,a){e.store.toggleRowSelection(a),e.store.updateAllSelected()},setHoverRow(l,a){l.hoverRow.value=a},setCurrentRow(l,a){e.store.updateCurrentRow(a)}},commit:function(l,...a){const i=e.store.mutations;if(i[l])i[l].apply(e,[e.store.states].concat(a));else throw new Error(`Action not found: ${l}`)},updateTableScrollY:function(){We(()=>e.layout.updateScrollY.apply(e.layout))}}}const _o={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function uO(e,t){if(!e)throw new Error("Table is required.");const n=iO();return n.toggleAllSelection=Fs(n._toggleAllSelection,10),Object.keys(_o).forEach(r=>{Th(Oh(t,r),r,n)}),cO(n,t),n}function cO(e,t){Object.keys(_o).forEach(n=>{de(()=>Oh(t,n),r=>{Th(r,n,e)})})}function Th(e,t,n){let r=e,o=_o[t];typeof _o[t]=="object"&&(o=o.key,r=r||_o[t].default),n.states[o].value=r}function Oh(e,t){if(t.includes(".")){const n=t.split(".");let r=e;return n.forEach(o=>{r=r[o]}),r}else return e[t]}class fO{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=M(null),this.scrollX=M(!1),this.scrollY=M(!1),this.bodyWidth=M(null),this.fixedWidth=M(null),this.rightFixedWidth=M(null),this.gutterWidth=0;for(const n in t)Ae(t,n)&&(Ve(this[n])?this[n].value=t[n]:this[n]=t[n]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const n=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(n!=null&&n.wrapRef)){let r=!0;const o=this.scrollY.value;return r=n.wrapRef.scrollHeight>n.wrapRef.clientHeight,this.scrollY.value=r,o!==r}return!1}setHeight(t,n="height"){if(!Xe)return;const r=this.table.vnode.el;if(t=QT(t),this.height.value=Number(t),!r&&(t||t===0))return We(()=>this.setHeight(t,n));typeof t=="number"?(r.style[n]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(r.style[n]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(r=>{r.isColumnGroup?t.push.apply(t,r.columns):t.push(r)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let n=t;for(;n.tagName!=="DIV";){if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}updateColumnsWidth(){if(!Xe)return;const t=this.fit,n=this.table.vnode.el.clientWidth;let r=0;const o=this.getFlattenColumns(),s=o.filter(i=>typeof i.width!="number");if(o.forEach(i=>{typeof i.width=="number"&&i.realWidth&&(i.realWidth=null)}),s.length>0&&t){if(o.forEach(i=>{r+=Number(i.width||i.minWidth||80)}),r<=n){this.scrollX.value=!1;const i=n-r;if(s.length===1)s[0].realWidth=Number(s[0].minWidth||80)+i;else{const u=s.reduce((d,p)=>d+Number(p.minWidth||80),0),c=i/u;let f=0;s.forEach((d,p)=>{if(p===0)return;const h=Math.floor(Number(d.minWidth||80)*c);f+=h,d.realWidth=Number(d.minWidth||80)+h}),s[0].realWidth=Number(s[0].minWidth||80)+i-f}}else this.scrollX.value=!0,s.forEach(i=>{i.realWidth=Number(i.minWidth)});this.bodyWidth.value=Math.max(r,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else o.forEach(i=>{!i.width&&!i.minWidth?i.realWidth=80:i.realWidth=Number(i.width||i.minWidth),r+=i.realWidth}),this.scrollX.value=r>n,this.bodyWidth.value=r;const l=this.store.states.fixedColumns.value;if(l.length>0){let i=0;l.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.fixedWidth.value=i}const a=this.store.states.rightFixedColumns.value;if(a.length>0){let i=0;a.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=i}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&this.observers.splice(n,1)}notifyObservers(t){this.observers.forEach(r=>{var o,s;switch(t){case"columns":(o=r.state)==null||o.onColumnsChange(this);break;case"scrollable":(s=r.state)==null||s.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:dO}=Vr,pO=ue({name:"ElTableFilterPanel",components:{ElCheckbox:Vr,ElCheckboxGroup:dO,ElScrollbar:jp,ElTooltip:Mi,ElIcon:st,ArrowDown:rp,ArrowUp:$_},directives:{ClickOutside:Ex},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=Ke(),{t:n}=di(),r=Oe("table-filter"),o=t==null?void 0:t.parent;o.filterPanels.value[e.column.id]||(o.filterPanels.value[e.column.id]=t);const s=M(!1),l=M(null),a=$(()=>e.column&&e.column.filters),i=$({get:()=>{var y;return(((y=e.column)==null?void 0:y.filteredValue)||[])[0]},set:y=>{u.value&&(typeof y<"u"&&y!==null?u.value.splice(0,1,y):u.value.splice(0,1))}}),u=$({get(){return e.column?e.column.filteredValue||[]:[]},set(y){e.column&&e.upDataColumn("filteredValue",y)}}),c=$(()=>e.column?e.column.filterMultiple:!0),f=y=>y.value===i.value,d=()=>{s.value=!1},p=y=>{y.stopPropagation(),s.value=!s.value},h=()=>{s.value=!1},v=()=>{w(u.value),d()},b=()=>{u.value=[],w(u.value),d()},m=y=>{i.value=y,w(typeof y<"u"&&y!==null?u.value:[]),d()},w=y=>{e.store.commit("filterChange",{column:e.column,values:y}),e.store.updateAllSelected()};de(s,y=>{e.column&&e.upDataColumn("filterOpened",y)},{immediate:!0});const S=$(()=>{var y,E;return(E=(y=l.value)==null?void 0:y.popperRef)==null?void 0:E.contentRef});return{tooltipVisible:s,multiple:c,filteredValue:u,filterValue:i,filters:a,handleConfirm:v,handleReset:b,handleSelect:m,isActive:f,t:n,ns:r,showFilterPanel:p,hideFilterPanel:h,popperPaneRef:S,tooltip:l}}}),hO={key:0},vO=["disabled"],mO=["label","onClick"];function gO(e,t,n,r,o,s){const l=ot("el-checkbox"),a=ot("el-checkbox-group"),i=ot("el-scrollbar"),u=ot("arrow-up"),c=ot("arrow-down"),f=ot("el-icon"),d=ot("el-tooltip"),p=rd("click-outside");return F(),me(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:ce(()=>[e.multiple?(F(),oe("div",hO,[se("div",{class:V(e.ns.e("content"))},[ie(i,{"wrap-class":e.ns.e("wrap")},{default:ce(()=>[ie(a,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=h=>e.filteredValue=h),class:V(e.ns.e("checkbox-group"))},{default:ce(()=>[(F(!0),oe(Ue,null,Zi(e.filters,h=>(F(),me(l,{key:h.value,label:h.value},{default:ce(()=>[Ct(Ze(h.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),se("div",{class:V(e.ns.e("bottom"))},[se("button",{class:V({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...h)=>e.handleConfirm&&e.handleConfirm(...h))},Ze(e.t("el.table.confirmFilter")),11,vO),se("button",{type:"button",onClick:t[2]||(t[2]=(...h)=>e.handleReset&&e.handleReset(...h))},Ze(e.t("el.table.resetFilter")),1)],2)])):(F(),oe("ul",{key:1,class:V(e.ns.e("list"))},[se("li",{class:V([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=h=>e.handleSelect(null))},Ze(e.t("el.table.clearFilter")),3),(F(!0),oe(Ue,null,Zi(e.filters,h=>(F(),oe("li",{key:h.value,class:V([e.ns.e("list-item"),e.ns.is("active",e.isActive(h))]),label:h.value,onClick:v=>e.handleSelect(h.value)},Ze(h.text),11,mO))),128))],2))]),default:ce(()=>[ut((F(),oe("span",{class:V([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...h)=>e.showFilterPanel&&e.showFilterPanel(...h))},[ie(f,null,{default:ce(()=>[e.column.filterOpened?(F(),me(u,{key:0})):(F(),me(c,{key:1}))]),_:1})],2)),[[p,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var yO=De(pO,[["render",gO],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function $h(e){const t=Ke();tl(()=>{n.value.addObserver(t)}),Je(()=>{r(n.value),o(n.value)}),Ua(()=>{r(n.value),o(n.value)}),Zr(()=>{n.value.removeObserver(t)});const n=$(()=>{const s=e.layout;if(!s)throw new Error("Can not find table layout.");return s}),r=s=>{var l;const a=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col"))||[];if(!a.length)return;const i=s.getFlattenColumns(),u={};i.forEach(c=>{u[c.id]=c});for(let c=0,f=a.length;c{var l,a;const i=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=i.length;c{v.stopPropagation()},s=(v,b)=>{!b.filters&&b.sortable?h(v,b,!1):b.filterable&&!b.sortable&&o(v),r==null||r.emit("header-click",b,v)},l=(v,b)=>{r==null||r.emit("header-contextmenu",b,v)},a=M(null),i=M(!1),u=M({}),c=(v,b)=>{if(Xe&&!(b.children&&b.children.length>0)&&a.value&&e.border){i.value=!0;const m=r;t("set-drag-visible",!0);const S=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,y=n.vnode.el.querySelector(`th.${b.id}`),E=y.getBoundingClientRect(),T=E.left-S+30;ir(y,"noclick"),u.value={startMouseLeft:v.clientX,startLeft:E.right-S,startColumnLeft:E.left-S,tableLeft:S};const C=m==null?void 0:m.refs.resizeProxy;C.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const x=B=>{const I=B.clientX-u.value.startMouseLeft,A=u.value.startLeft+I;C.style.left=`${Math.max(T,A)}px`},R=()=>{if(i.value){const{startColumnLeft:B,startLeft:I}=u.value,D=Number.parseInt(C.style.left,10)-B;b.width=b.realWidth=D,m==null||m.emit("header-dragend",b.width,I-B,b,v),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",i.value=!1,a.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",R),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{vr(y,"noclick")},0)};document.addEventListener("mousemove",x),document.addEventListener("mouseup",R)}},f=(v,b)=>{var m;if(b.children&&b.children.length>0)return;const w=(m=v.target)==null?void 0:m.closest("th");if(!(!b||!b.resizable)&&!i.value&&e.border){const S=w.getBoundingClientRect(),y=document.body.style;S.width>12&&S.right-v.pageX<8?(y.cursor="col-resize",hr(w,"is-sortable")&&(w.style.cursor="col-resize"),a.value=b):i.value||(y.cursor="",hr(w,"is-sortable")&&(w.style.cursor="pointer"),a.value=null)}},d=()=>{Xe&&(document.body.style.cursor="")},p=({order:v,sortOrders:b})=>{if(v==="")return b[0];const m=b.indexOf(v||null);return b[m>b.length-2?0:m+1]},h=(v,b,m)=>{var w;v.stopPropagation();const S=b.order===m?null:m||p(b),y=(w=v.target)==null?void 0:w.closest("th");if(y&&hr(y,"noclick")){vr(y,"noclick");return}if(!b.sortable)return;const E=e.store.states;let T=E.sortProp.value,C;const x=E.sortingColumn.value;(x!==b||x===b&&x.order===null)&&(x&&(x.order=null),E.sortingColumn.value=b,T=b.property),S?C=b.order=S:C=b.order=null,E.sortProp.value=T,E.sortOrder.value=C,r==null||r.store.commit("changeSortCondition")};return{handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:o}}function wO(e){const t=Ce(fn),n=Oe("table");return{getHeaderRowStyle:a=>{const i=t==null?void 0:t.props.headerRowStyle;return typeof i=="function"?i.call(null,{rowIndex:a}):i},getHeaderRowClass:a=>{const i=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?i.push(u):typeof u=="function"&&i.push(u.call(null,{rowIndex:a})),i.join(" ")},getHeaderCellStyle:(a,i,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:a,columnIndex:i,row:u,column:c}));const p=Li(i,c.fixed,e.store,u);return Ur(p,"left"),Ur(p,"right"),Object.assign({},d,p)},getHeaderCellClass:(a,i,u,c)=>{const f=Ii(n.b(),i,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const p=t==null?void 0:t.props.headerCellClassName;return typeof p=="string"?d.push(p):typeof p=="function"&&d.push(p.call(null,{rowIndex:a,columnIndex:i,row:u,column:c})),d.push(n.e("cell")),d.filter(h=>Boolean(h)).join(" ")}}}const Ah=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,Ah(n.children))):t.push(n)}),t},_O=e=>{let t=1;const n=(s,l)=>{if(l&&(s.level=l.level+1,t{n(i,s),a+=i.colSpan}),s.colSpan=a}else s.colSpan=1};e.forEach(s=>{s.level=1,n(s,void 0)});const r=[];for(let s=0;s{s.children?(s.rowSpan=1,s.children.forEach(l=>l.isSubColumn=!0)):s.rowSpan=t-s.level+1,r[s.level-1].push(s)}),r};function CO(e){const t=Ce(fn),n=$(()=>_O(e.store.states.originColumns.value));return{isGroup:$(()=>{const s=n.value.length>1;return s&&t&&(t.state.isGroup.value=!0),s}),toggleAllSelection:s=>{s.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:n}}var EO=ue({name:"ElTableHeader",components:{ElCheckbox:Vr},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const n=Ke(),r=Ce(fn),o=Oe("table"),s=M({}),{onColumnsChange:l,onScrollableChange:a}=$h(r);Je(async()=>{await We(),await We();const{prop:T,order:C}=e.defaultSort;r==null||r.store.commit("sort",{prop:T,order:C,init:!0})});const{handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:p,handleFilterClick:h}=bO(e,t),{getHeaderRowStyle:v,getHeaderRowClass:b,getHeaderCellStyle:m,getHeaderCellClass:w}=wO(e),{isGroup:S,toggleAllSelection:y,columnRows:E}=CO(e);return n.state={onColumnsChange:l,onScrollableChange:a},n.filterPanels=s,{ns:o,filterPanels:s,onColumnsChange:l,onScrollableChange:a,columnRows:E,getHeaderRowClass:b,getHeaderRowStyle:v,getHeaderCellClass:w,getHeaderCellStyle:m,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:p,handleFilterClick:h,isGroup:S,toggleAllSelection:y}},render(){const{ns:e,isGroup:t,columnRows:n,getHeaderCellStyle:r,getHeaderCellClass:o,getHeaderRowClass:s,getHeaderRowStyle:l,handleHeaderClick:a,handleHeaderContextMenu:i,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:p,$parent:h}=this;let v=1;return ve("thead",{class:{[e.is("group")]:t}},n.map((b,m)=>ve("tr",{class:s(m),key:m,style:l(m)},b.map((w,S)=>(w.rowSpan>v&&(v=w.rowSpan),ve("th",{class:o(m,S,b,w),colspan:w.colSpan,key:`${w.id}-thead`,rowspan:w.rowSpan,style:r(m,S,b,w),onClick:y=>a(y,w),onContextmenu:y=>i(y,w),onMousedown:y=>u(y,w),onMousemove:y=>c(y,w),onMouseout:d},[ve("div",{class:["cell",w.filteredValue&&w.filteredValue.length>0?"highlight":""]},[w.renderHeader?w.renderHeader({column:w,$index:S,store:p,_self:h}):w.label,w.sortable&&ve("span",{onClick:y=>f(y,w),class:"caret-wrapper"},[ve("i",{onClick:y=>f(y,w,"ascending"),class:"sort-caret ascending"}),ve("i",{onClick:y=>f(y,w,"descending"),class:"sort-caret descending"})]),w.filterable&&ve(yO,{store:p,placement:w.filterPlacement||"bottom-start",column:w,upDataColumn:(y,E)=>{w[y]=E}})])]))))))}});function SO(e){const t=Ce(fn),n=M(""),r=M(ve("div")),{nextZIndex:o}=Ei(),s=(p,h,v)=>{var b;const m=t,w=Nl(p);let S;const y=(b=m==null?void 0:m.vnode.el)==null?void 0:b.dataset.prefix;w&&(S=Jc({columns:e.store.states.columns.value},w,y),S&&(m==null||m.emit(`cell-${v}`,h,S,w,p))),m==null||m.emit(`row-${v}`,h,S,p)},l=(p,h)=>{s(p,h,"dblclick")},a=(p,h)=>{e.store.commit("setCurrentRow",h),s(p,h,"click")},i=(p,h)=>{s(p,h,"contextmenu")},u=Fs(p=>{e.store.commit("setHoverRow",p)},30),c=Fs(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:l,handleClick:a,handleContextMenu:i,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(p,h,v)=>{var b;const m=t,w=Nl(p),S=(b=m==null?void 0:m.vnode.el)==null?void 0:b.dataset.prefix;if(w){const x=Jc({columns:e.store.states.columns.value},w,S),R=m.hoverState={cell:w,column:x,row:h};m==null||m.emit("cell-mouse-enter",R.row,R.column,R.cell,p)}if(!v)return;const y=p.target.querySelector(".cell");if(!(hr(y,`${S}-tooltip`)&&y.childNodes.length))return;const E=document.createRange();E.setStart(y,0),E.setEnd(y,y.childNodes.length);const T=Math.round(E.getBoundingClientRect().width),C=(Number.parseInt(ia(y,"paddingLeft"),10)||0)+(Number.parseInt(ia(y,"paddingRight"),10)||0);(T+C>y.offsetWidth||y.scrollWidth>y.offsetWidth)&&nO(t==null?void 0:t.refs.tableWrapper,w,w.innerText||w.textContent,o,v)},handleCellMouseLeave:p=>{if(!Nl(p))return;const v=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",v==null?void 0:v.row,v==null?void 0:v.column,v==null?void 0:v.cell,p)},tooltipContent:n,tooltipTrigger:r}}function xO(e){const t=Ce(fn),n=Oe("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[n.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(n.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const p=t==null?void 0:t.props.cellStyle;let h=p??{};typeof p=="function"&&(h=p.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const v=Li(c,e==null?void 0:e.fixed,e.store);return Ur(v,"left"),Ur(v,"right"),Object.assign({},h,v)},getCellClass:(u,c,f,d,p)=>{const h=Ii(n.b(),c,e==null?void 0:e.fixed,e.store,void 0,p),v=[d.id,d.align,d.className,...h],b=t==null?void 0:t.props.cellClassName;return typeof b=="string"?v.push(b):typeof b=="function"&&v.push(b.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),v.push(n.e("cell")),v.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let p=1,h=1;const v=t==null?void 0:t.props.spanMethod;if(typeof v=="function"){const b=v({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(b)?(p=b[0],h=b[1]):typeof b=="object"&&(p=b.rowspan,h=b.colspan)}return{rowspan:p,colspan:h}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:p,width:h})=>p||h).slice(f,f+c);return Number(d.reduce((p,h)=>Number(p)+Number(h),-1))}}}function TO(e){const t=Ce(fn),n=Oe("table"),{handleDoubleClick:r,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:a,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=SO(e),{getRowStyle:d,getRowClass:p,getCellStyle:h,getCellClass:v,getSpan:b,getColspanRealWidth:m}=xO(e),w=$(()=>e.store.states.columns.value.findIndex(({type:C})=>C==="default")),S=(C,x)=>{const R=t.props.rowKey;return R?ct(C,R):x},y=(C,x,R,B=!1)=>{const{tooltipEffect:I,tooltipOptions:A,store:D}=e,{indent:re,columns:ee}=D.states,U=p(C,x);let j=!0;return R&&(U.push(n.em("row",`level-${R.level}`)),j=R.display),ve("tr",{style:[j?null:{display:"none"},d(C,x)],class:U,key:S(C,x),onDblclick:P=>r(P,C),onClick:P=>o(P,C),onContextmenu:P=>s(P,C),onMouseenter:()=>l(x),onMouseleave:a},ee.value.map((P,Q)=>{const{rowspan:he,colspan:xe}=b(C,P,x,Q);if(!he||!xe)return null;const Re={...P};Re.realWidth=m(ee.value,xe,Q);const Fe={store:e.store,_self:e.context||t,column:Re,row:C,$index:x,cellIndex:Q,expanded:B};Q===w.value&&R&&(Fe.treeNode={indent:R.level*re.value,level:R.level},typeof R.expanded=="boolean"&&(Fe.treeNode.expanded=R.expanded,"loading"in R&&(Fe.treeNode.loading=R.loading),"noLazyChildren"in R&&(Fe.treeNode.noLazyChildren=R.noLazyChildren)));const L=`${x},${Q}`,J=Re.columnKey||Re.rawColumnKey||"",q=E(Q,P,Fe),Z=P.showOverflowTooltip&&ep({effect:I},A,P.showOverflowTooltip);return ve("td",{style:h(x,Q,C,P),class:v(x,Q,C,P,xe-1),key:`${J}${L}`,rowspan:he,colspan:xe,onMouseenter:_e=>i(_e,C,Z),onMouseleave:u},[q])}))},E=(C,x,R)=>x.renderCell(R);return{wrappedRowRender:(C,x)=>{const R=e.store,{isRowExpanded:B,assertRowKey:I}=R,{treeData:A,lazyTreeNodeMap:D,childrenColumnName:re,rowKey:ee}=R.states,U=R.states.columns.value;if(U.some(({type:z})=>z==="expand")){const z=B(C),P=y(C,x,void 0,z),Q=t.renderExpanded;return z?Q?[[P,ve("tr",{key:`expanded-row__${P.key}`},[ve("td",{colspan:U.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[Q({row:C,$index:x,store:R,expanded:z})])])]]:(console.error("[Element Error]renderExpanded is required."),P):[[P]]}else if(Object.keys(A.value).length){I();const z=ct(C,ee.value);let P=A.value[z],Q=null;P&&(Q={expanded:P.expanded,level:P.level,display:!0},typeof P.lazy=="boolean"&&(typeof P.loaded=="boolean"&&P.loaded&&(Q.noLazyChildren=!(P.children&&P.children.length)),Q.loading=P.loading));const he=[y(C,x,Q)];if(P){let xe=0;const Re=(L,J)=>{L&&L.length&&J&&L.forEach(q=>{const Z={display:J.display&&J.expanded,level:J.level+1,expanded:!1,noLazyChildren:!1,loading:!1},_e=ct(q,ee.value);if(_e==null)throw new Error("For nested data item, row-key is required.");if(P={...A.value[_e]},P&&(Z.expanded=P.expanded,P.level=P.level||Z.level,P.display=!!(P.expanded&&Z.display),typeof P.lazy=="boolean"&&(typeof P.loaded=="boolean"&&P.loaded&&(Z.noLazyChildren=!(P.children&&P.children.length)),Z.loading=P.loading)),xe++,he.push(y(q,x+xe,Z)),P){const Be=D.value[_e]||q[re.value];Re(Be,P)}})};P.display=!0;const Fe=D.value[z]||C[re.value];Re(Fe,P)}return he}else return y(C,x,void 0)},tooltipContent:c,tooltipTrigger:f}}const OO={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var $O=ue({name:"ElTableBody",props:OO,setup(e){const t=Ke(),n=Ce(fn),r=Oe("table"),{wrappedRowRender:o,tooltipContent:s,tooltipTrigger:l}=TO(e),{onColumnsChange:a,onScrollableChange:i}=$h(n);return de(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Xe)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,p=Array.from((d==null?void 0:d.children)||[]).filter(b=>b==null?void 0:b.classList.contains(`${r.e("row")}`)),h=p[c],v=p[u];h&&vr(h,"hover-row"),v&&ir(v,"hover-row")})}),Zr(()=>{var u;(u=mn)==null||u()}),{ns:r,onColumnsChange:a,onScrollableChange:i,wrappedRowRender:o,tooltipContent:s,tooltipTrigger:l}},render(){const{wrappedRowRender:e,store:t}=this,n=t.states.data.value||[];return ve("tbody",{},[n.reduce((r,o)=>r.concat(e(o,r.length)),[])])}});function Ni(e){const t=e.tableLayout==="auto";let n=e.columns||[];t&&n.every(o=>o.width===void 0)&&(n=[]);const r=o=>{const s={key:`${e.tableLayout}_${o.id}`,style:{},name:void 0};return t?s.style={width:`${o.width}px`}:s.name=o.id,s};return ve("colgroup",{},n.map(o=>ve("col",r(o))))}Ni.props=["columns","tableLayout"];function AO(){const e=Ce(fn),t=e==null?void 0:e.store,n=$(()=>t.states.fixedLeafColumnsLength.value),r=$(()=>t.states.rightFixedColumns.value.length),o=$(()=>t.states.columns.value.length),s=$(()=>t.states.fixedColumns.value.length),l=$(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:n,rightFixedLeafCount:r,columnsCount:o,leftFixedCount:s,rightFixedCount:l,columns:t.states.columns}}function MO(e){const{columns:t}=AO(),n=Oe("table");return{getCellClasses:(s,l)=>{const a=s[l],i=[n.e("cell"),a.id,a.align,a.labelClassName,...Ii(n.b(),l,a.fixed,e.store)];return a.className&&i.push(a.className),a.children||i.push(n.is("leaf")),i},getCellStyles:(s,l)=>{const a=Li(l,s.fixed,e.store);return Ur(a,"left"),Ur(a,"right"),a},columns:t}}var PO=ue({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:n,columns:r}=MO(e);return{ns:Oe("table"),getCellClasses:t,getCellStyles:n,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:r,sumText:o,ns:s}=this,l=this.store.states.data.value;let a=[];return r?a=r({columns:e,data:l}):e.forEach((i,u)=>{if(u===0){a[u]=o;return}const c=l.map(h=>Number(h[i.property])),f=[];let d=!0;c.forEach(h=>{if(!Number.isNaN(+h)){d=!1;const v=`${h}`.split(".")[1];f.push(v?v.length:0)}});const p=Math.max.apply(null,f);d?a[u]="":a[u]=c.reduce((h,v)=>{const b=Number(v);return Number.isNaN(+b)?h:Number.parseFloat((h+v).toFixed(Math.min(p,20)))},0)}),ve("table",{class:s.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[Ni({columns:e}),ve("tbody",[ve("tr",{},[...e.map((i,u)=>ve("td",{key:u,colspan:i.colSpan,rowspan:i.rowSpan,class:n(e,u),style:t(i,u)},[ve("div",{class:["cell",i.labelClassName]},[a[u]])]))])])])}});function RO(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function kO(e,t,n,r){const o=M(!1),s=M(null),l=M(!1),a=z=>{l.value=z},i=M({width:null,height:null,headerHeight:null}),u=M(!1),c={display:"inline-block",verticalAlign:"middle"},f=M(),d=M(0),p=M(0),h=M(0),v=M(0);Dn(()=>{t.setHeight(e.height)}),Dn(()=>{t.setMaxHeight(e.maxHeight)}),de(()=>[e.currentRowKey,n.states.rowKey],([z,P])=>{!g(P)||!g(z)||n.setCurrentRowKey(`${z}`)},{immediate:!0}),de(()=>e.data,z=>{r.store.commit("setData",z)},{immediate:!0,deep:!0}),Dn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const b=()=>{r.store.commit("setHoverRow",null),r.hoverState&&(r.hoverState=null)},m=(z,P)=>{const{pixelX:Q,pixelY:he}=P;Math.abs(Q)>=Math.abs(he)&&(r.refs.bodyWrapper.scrollLeft+=P.pixelX/5)},w=$(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),S=$(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),y=()=>{w.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(x)};Je(async()=>{await We(),n.updateColumns(),R(),requestAnimationFrame(y);const z=r.vnode.el,P=r.refs.headerWrapper;e.flexible&&z&&z.parentElement&&(z.parentElement.style.minWidth="0"),i.value={width:f.value=z.offsetWidth,height:z.offsetHeight,headerHeight:e.showHeader&&P?P.offsetHeight:null},n.states.columns.value.forEach(Q=>{Q.filteredValue&&Q.filteredValue.length&&r.store.commit("filterChange",{column:Q,values:Q.filteredValue,silent:!0})}),r.$ready=!0});const E=(z,P)=>{if(!z)return;const Q=Array.from(z.classList).filter(he=>!he.startsWith("is-scrolling-"));Q.push(t.scrollX.value?P:"is-scrolling-none"),z.className=Q.join(" ")},T=z=>{const{tableWrapper:P}=r.refs;E(P,z)},C=z=>{const{tableWrapper:P}=r.refs;return!!(P&&P.classList.contains(z))},x=function(){if(!r.refs.scrollBarRef)return;if(!t.scrollX.value){const L="is-scrolling-none";C(L)||T(L);return}const z=r.refs.scrollBarRef.wrapRef;if(!z)return;const{scrollLeft:P,offsetWidth:Q,scrollWidth:he}=z,{headerWrapper:xe,footerWrapper:Re}=r.refs;xe&&(xe.scrollLeft=P),Re&&(Re.scrollLeft=P);const Fe=he-Q-1;P>=Fe?T("is-scrolling-right"):T(P===0?"is-scrolling-left":"is-scrolling-middle")},R=()=>{r.refs.scrollBarRef&&(r.refs.scrollBarRef.wrapRef&&qt(r.refs.scrollBarRef.wrapRef,"scroll",x,{passive:!0}),e.fit?Nr(r.vnode.el,B):qt(window,"resize",B),Nr(r.refs.bodyWrapper,()=>{var z,P;B(),(P=(z=r.refs)==null?void 0:z.scrollBarRef)==null||P.update()}))},B=()=>{var z,P,Q;const he=r.vnode.el;if(!r.$ready||!he)return;let xe=!1;const{width:Re,height:Fe,headerHeight:L}=i.value,J=f.value=he.offsetWidth;Re!==J&&(xe=!0);const q=he.offsetHeight;(e.height||w.value)&&Fe!==q&&(xe=!0);const Z=e.tableLayout==="fixed"?r.refs.headerWrapper:(z=r.refs.tableHeaderRef)==null?void 0:z.$el;e.showHeader&&(Z==null?void 0:Z.offsetHeight)!==L&&(xe=!0),d.value=((P=r.refs.tableWrapper)==null?void 0:P.scrollHeight)||0,h.value=(Z==null?void 0:Z.scrollHeight)||0,v.value=((Q=r.refs.footerWrapper)==null?void 0:Q.offsetHeight)||0,p.value=d.value-h.value-v.value,xe&&(i.value={width:J,height:q,headerHeight:e.showHeader&&(Z==null?void 0:Z.offsetHeight)||0},y())},I=Kr(),A=$(()=>{const{bodyWidth:z,scrollY:P,gutterWidth:Q}=t;return z.value?`${z.value-(P.value?Q:0)}px`:""}),D=$(()=>e.maxHeight?"fixed":e.tableLayout),re=$(()=>{if(e.data&&e.data.length)return null;let z="100%";e.height&&p.value&&(z=`${p.value}px`);const P=f.value;return{width:P?`${P}px`:"",height:z}}),ee=$(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),U=$(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${h.value+v.value}px)`};{const z=e.maxHeight;if(d.value>=Number(z))return{maxHeight:`${d.value-h.value-v.value}px`}}}return{}});return{isHidden:o,renderExpanded:s,setDragVisible:a,isGroup:u,handleMouseLeave:b,handleHeaderFooterMousewheel:m,tableSize:I,emptyBlockStyle:re,handleFixedMousewheel:(z,P)=>{const Q=r.refs.bodyWrapper;if(Math.abs(P.spinY)>0){const he=Q.scrollTop;P.pixelY<0&&he!==0&&z.preventDefault(),P.pixelY>0&&Q.scrollHeight-Q.clientHeight>he&&z.preventDefault(),Q.scrollTop+=Math.ceil(P.pixelY/5)}else Q.scrollLeft+=Math.ceil(P.pixelX/5)},resizeProxyVisible:l,bodyWidth:A,resizeState:i,doLayout:y,tableBodyStyles:S,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:ee,scrollbarStyle:U}}function IO(e){const t=M(),n=()=>{const o=e.vnode.el.querySelector(".hidden-columns"),s={childList:!0,subtree:!0},l=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{l.forEach(a=>a())}),t.value.observe(o,s)};Je(()=>{n()}),Zr(()=>{var r;(r=t.value)==null||r.disconnect()})}var LO={data:{type:Array,default:()=>[]},size:to,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const NO=()=>{const e=M(),t=(s,l)=>{const a=e.value;a&&a.scrollTo(s,l)},n=(s,l)=>{const a=e.value;a&&rt(l)&&["Top","Left"].includes(s)&&a[`setScroll${s}`](l)};return{scrollBarRef:e,scrollTo:t,setScrollTop:s=>n("Top",s),setScrollLeft:s=>n("Left",s)}};let FO=1;const BO=ue({name:"ElTable",directives:{Mousewheel:Px},components:{TableHeader:EO,TableBody:$O,TableFooter:PO,ElScrollbar:jp,hColgroup:Ni},props:LO,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=di(),n=Oe("table"),r=Ke();it(fn,r);const o=uO(r,e);r.store=o;const s=new fO({store:r.store,table:r,fit:e.fit,showHeader:e.showHeader});r.layout=s;const l=$(()=>(o.states.data.value||[]).length===0),{setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:p,clearSort:h,sort:v}=RO(o),{isHidden:b,renderExpanded:m,setDragVisible:w,isGroup:S,handleMouseLeave:y,handleHeaderFooterMousewheel:E,tableSize:T,emptyBlockStyle:C,handleFixedMousewheel:x,resizeProxyVisible:R,bodyWidth:B,resizeState:I,doLayout:A,tableBodyStyles:D,tableLayout:re,scrollbarViewStyle:ee,tableInnerStyle:U,scrollbarStyle:j}=kO(e,s,o,r),{scrollBarRef:z,scrollTo:P,setScrollLeft:Q,setScrollTop:he}=NO(),xe=Fs(A,50),Re=`${n.namespace.value}-table_${FO++}`;r.tableId=Re,r.state={isGroup:S,resizeState:I,doLayout:A,debouncedUpdateLayout:xe};const Fe=$(()=>e.sumText||t("el.table.sumText")),L=$(()=>e.emptyText||t("el.table.emptyText"));return IO(r),{ns:n,layout:s,store:o,handleHeaderFooterMousewheel:E,handleMouseLeave:y,tableId:Re,tableSize:T,isHidden:b,isEmpty:l,renderExpanded:m,resizeProxyVisible:R,resizeState:I,isGroup:S,bodyWidth:B,tableBodyStyles:D,emptyBlockStyle:C,debouncedUpdateLayout:xe,handleFixedMousewheel:x,setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:p,clearSort:h,doLayout:A,sort:v,t,setDragVisible:w,context:r,computedSumText:Fe,computedEmptyText:L,tableLayout:re,scrollbarViewStyle:ee,tableInnerStyle:U,scrollbarStyle:j,scrollBarRef:z,scrollTo:P,setScrollLeft:Q,setScrollTop:he}}}),HO=["data-prefix"],zO={ref:"hiddenColumns",class:"hidden-columns"};function DO(e,t,n,r,o,s){const l=ot("hColgroup"),a=ot("table-header"),i=ot("table-body"),u=ot("el-scrollbar"),c=ot("table-footer"),f=rd("mousewheel");return F(),oe("div",{ref:"tableWrapper",class:V([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:et(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...d)=>e.handleMouseLeave&&e.handleMouseLeave(...d))},[se("div",{class:V(e.ns.e("inner-wrapper")),style:et(e.tableInnerStyle)},[se("div",zO,[Me(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?ut((F(),oe("div",{key:0,ref:"headerWrapper",class:V(e.ns.e("header-wrapper"))},[se("table",{ref:"tableHeader",class:V(e.ns.e("header")),style:et(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ie(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ie(a,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):ge("v-if",!0),se("div",{ref:"bodyWrapper",class:V(e.ns.e("body-wrapper"))},[ie(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:ce(()=>[se("table",{ref:"tableBody",class:V(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:et({width:e.bodyWidth,tableLayout:e.tableLayout})},[ie(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(F(),me(a,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):ge("v-if",!0),ie(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(F(),oe("div",{key:0,ref:"emptyBlock",style:et(e.emptyBlockStyle),class:V(e.ns.e("empty-block"))},[se("span",{class:V(e.ns.e("empty-text"))},[Me(e.$slots,"empty",{},()=>[Ct(Ze(e.computedEmptyText),1)])],2)],6)):ge("v-if",!0),e.$slots.append?(F(),oe("div",{key:1,ref:"appendWrapper",class:V(e.ns.e("append-wrapper"))},[Me(e.$slots,"append")],2)):ge("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?ut((F(),oe("div",{key:1,ref:"footerWrapper",class:V(e.ns.e("footer-wrapper"))},[ie(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:et(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[Ut,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):ge("v-if",!0),e.border||e.isGroup?(F(),oe("div",{key:2,class:V(e.ns.e("border-left-patch"))},null,2)):ge("v-if",!0)],6),ut(se("div",{ref:"resizeProxy",class:V(e.ns.e("column-resize-proxy"))},null,2),[[Ut,e.resizeProxyVisible]])],46,HO)}var jO=De(BO,[["render",DO],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const WO={selection:"table-column--selection",expand:"table__expand-column"},KO={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},VO=e=>WO[e]||"",UO={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return ve(Vr,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:n,$index:r}){return ve(Vr,{disabled:t.selectable?!t.selectable.call(null,e,r):!1,size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:o=>o.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let n=t+1;const r=e.index;return typeof r=="number"?n=t+r:typeof r=="function"&&(n=r(t)),ve("div",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:n}){const{ns:r}=t,o=[r.e("expand-icon")];return n&&o.push(r.em("expand-icon","expanded")),ve("div",{class:o,onClick:function(l){l.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[ve(st,null,{default:()=>[ve(ci)]})]})},sortable:!1,resizable:!1}};function qO({row:e,column:t,$index:n}){var r;const o=t.property,s=o&&c_(e,o).value;return t&&t.formatter?t.formatter(e,t,s,n):((r=s==null?void 0:s.toString)==null?void 0:r.call(s))||""}function YO({row:e,treeNode:t,store:n},r=!1){const{ns:o}=n;if(!t)return r?[ve("span",{class:o.e("placeholder")})]:null;const s=[],l=function(a){a.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&s.push(ve("span",{class:o.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const a=[o.e("expand-icon"),t.expanded?o.em("expand-icon","expanded"):""];let i=ci;t.loading&&(i=fl),s.push(ve("div",{class:a,onClick:l},{default:()=>[ve(st,{class:{[o.is("loading")]:t.loading}},{default:()=>[ve(i)]})]}))}else s.push(ve("span",{class:o.e("placeholder")}));return s}function ef(e,t){return e.reduce((n,r)=>(n[r]=r,n),t)}function GO(e,t){const n=Ke();return{registerComplexWatchers:()=>{const s=["fixed"],l={realWidth:"width",realMinWidth:"minWidth"},a=ef(s,l);Object.keys(a).forEach(i=>{const u=l[i];Ae(t,u)&&de(()=>t[u],c=>{let f=c;u==="width"&&i==="realWidth"&&(f=ki(c)),u==="minWidth"&&i==="realMinWidth"&&(f=Eh(c)),n.columnConfig.value[u]=f,n.columnConfig.value[i]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const s=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],l={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},a=ef(s,l);Object.keys(a).forEach(i=>{const u=l[i];Ae(t,u)&&de(()=>t[u],c=>{n.columnConfig.value[i]=c})})}}}function XO(e,t,n){const r=Ke(),o=M(""),s=M(!1),l=M(),a=M(),i=Oe("table");Dn(()=>{l.value=e.align?`is-${e.align}`:null,l.value}),Dn(()=>{a.value=e.headerAlign?`is-${e.headerAlign}`:l.value,a.value});const u=$(()=>{let y=r.vnode.vParent||r.parent;for(;y&&!y.tableId&&!y.columnId;)y=y.vnode.vParent||y.parent;return y}),c=$(()=>{const{store:y}=r.parent;if(!y)return!1;const{treeData:E}=y.states,T=E.value;return T&&Object.keys(T).length>0}),f=M(ki(e.width)),d=M(Eh(e.minWidth)),p=y=>(f.value&&(y.width=f.value),d.value&&(y.minWidth=d.value),!f.value&&d.value&&(y.width=void 0),y.minWidth||(y.minWidth=80),y.realWidth=Number(y.width===void 0?y.minWidth:y.width),y),h=y=>{const E=y.type,T=UO[E]||{};Object.keys(T).forEach(x=>{const R=T[x];x!=="className"&&R!==void 0&&(y[x]=R)});const C=VO(E);if(C){const x=`${g(i.namespace)}-${C}`;y.className=y.className?`${y.className} ${x}`:x}return y},v=y=>{Array.isArray(y)?y.forEach(T=>E(T)):E(y);function E(T){var C;((C=T==null?void 0:T.type)==null?void 0:C.name)==="ElTableColumn"&&(T.vParent=r)}};return{columnId:o,realAlign:l,isSubColumn:s,realHeaderAlign:a,columnOrTableParent:u,setColumnWidth:p,setColumnForcedProps:h,setColumnRenders:y=>{e.renderHeader||y.type!=="selection"&&(y.renderHeader=T=>{r.columnConfig.value.label;const C=t.header;return C?C(T):y.label});let E=y.renderCell;return y.type==="expand"?(y.renderCell=T=>ve("div",{class:"cell"},[E(T)]),n.value.renderExpanded=T=>t.default?t.default(T):t.default):(E=E||qO,y.renderCell=T=>{let C=null;if(t.default){const D=t.default(T);C=D.some(re=>re.type!==_t)?D:E(T)}else C=E(T);const{columns:x}=n.value.store.states,R=x.value.findIndex(D=>D.type==="default"),B=c.value&&T.cellIndex===R,I=YO(T,B),A={class:"cell",style:{}};return y.showOverflowTooltip&&(A.class=`${A.class} ${g(i.namespace)}-tooltip`,A.style={width:`${(T.column.realWidth||Number(T.column.width))-1}px`}),v(C),ve("div",A,[I,C])}),y},getPropsData:(...y)=>y.reduce((E,T)=>(Array.isArray(T)&&T.forEach(C=>{E[C]=e[C]}),E),{}),getColumnElIndex:(y,E)=>Array.prototype.indexOf.call(y,E),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",r.columnConfig.value)}}}var JO={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let ZO=1;var Mh=ue({name:"ElTableColumn",components:{ElCheckbox:Vr},props:JO,setup(e,{slots:t}){const n=Ke(),r=M({}),o=$(()=>{let S=n.parent;for(;S&&!S.tableId;)S=S.parent;return S}),{registerNormalWatchers:s,registerComplexWatchers:l}=GO(o,e),{columnId:a,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:p,getPropsData:h,getColumnElIndex:v,realAlign:b,updateColumnOrder:m}=XO(e,t,o),w=c.value;a.value=`${w.tableId||w.columnId}_column_${ZO++}`,tl(()=>{i.value=o.value!==w;const S=e.type||"default",y=e.sortable===""?!0:e.sortable,E={...KO[S],id:a.value,type:S,property:e.prop||e.property,align:b,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:y,index:e.index,rawColumnKey:n.vnode.key};let B=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);B=ZT(E,B),B=eO(p,f,d)(B),r.value=B,s(),l()}),Je(()=>{var S;const y=c.value,E=i.value?y.vnode.el.children:(S=y.refs.hiddenColumns)==null?void 0:S.children,T=()=>v(E||[],n.vnode.el);r.value.getColumnIndex=T,T()>-1&&o.value.store.commit("insertColumn",r.value,i.value?y.columnConfig.value:null,m)}),mt(()=>{o.value.store.commit("removeColumn",r.value,i.value?w.columnConfig.value:null,m)}),n.columnId=a.value,n.columnConfig=r},render(){var e,t,n;try{const r=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),o=[];if(Array.isArray(r))for(const l of r)((n=l.type)==null?void 0:n.name)==="ElTableColumn"||l.shapeFlag&2?o.push(l):l.type===Ue&&Array.isArray(l.children)&&l.children.forEach(a=>{(a==null?void 0:a.patchFlag)!==1024&&!Te(a==null?void 0:a.children)&&o.push(a)});return ve("div",o)}catch{return ve("div",[])}}});const QO=It(jO,{TableColumn:Mh}),e4=Cr(Mh),Ph=["success","info","warning","error"],bt=Nn({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Xe?document.body:void 0}),t4=qe({customClass:{type:String,default:bt.customClass},center:{type:Boolean,default:bt.center},dangerouslyUseHTMLString:{type:Boolean,default:bt.dangerouslyUseHTMLString},duration:{type:Number,default:bt.duration},icon:{type:Kt,default:bt.icon},id:{type:String,default:bt.id},message:{type:Se([String,Object,Function]),default:bt.message},onClose:{type:Se(Function),required:!1},showClose:{type:Boolean,default:bt.showClose},type:{type:String,values:Ph,default:bt.type},offset:{type:Number,default:bt.offset},zIndex:{type:Number,default:bt.zIndex},grouping:{type:Boolean,default:bt.grouping},repeatNum:{type:Number,default:bt.repeatNum}}),n4={destroy:()=>!0},Vt=Lf([]),r4=e=>{const t=Vt.findIndex(o=>o.id===e),n=Vt[t];let r;return t>0&&(r=Vt[t-1]),{current:n,prev:r}},o4=e=>{const{prev:t}=r4(e);return t?t.vm.exposed.bottom.value:0},s4=(e,t)=>Vt.findIndex(r=>r.id===e)>0?20:t,l4=["id"],a4=["innerHTML"],i4=ue({name:"ElMessage"}),u4=ue({...i4,props:t4,emits:n4,setup(e,{expose:t}){const n=e,{Close:r}=cp,{ns:o,zIndex:s}=Bp("message"),{currentZIndex:l,nextZIndex:a}=s,i=M(),u=M(!1),c=M(0);let f;const d=$(()=>n.type?n.type==="error"?"danger":n.type:"info"),p=$(()=>{const C=n.type;return{[o.bm("icon",C)]:C&&Hs[C]}}),h=$(()=>n.icon||Hs[n.type]||""),v=$(()=>o4(n.id)),b=$(()=>s4(n.id,n.offset)+v.value),m=$(()=>c.value+b.value),w=$(()=>({top:`${b.value}px`,zIndex:l.value}));function S(){n.duration!==0&&({stop:f}=Ql(()=>{E()},n.duration))}function y(){f==null||f()}function E(){u.value=!1}function T({code:C}){C===vt.esc&&E()}return Je(()=>{S(),a(),u.value=!0}),de(()=>n.repeatNum,()=>{y(),S()}),qt(document,"keydown",T),Nr(i,()=>{c.value=i.value.getBoundingClientRect().height}),t({visible:u,bottom:m,close:E}),(C,x)=>(F(),me(En,{name:g(o).b("fade"),onBeforeLeave:C.onClose,onAfterLeave:x[0]||(x[0]=R=>C.$emit("destroy")),persisted:""},{default:ce(()=>[ut(se("div",{id:C.id,ref_key:"messageRef",ref:i,class:V([g(o).b(),{[g(o).m(C.type)]:C.type&&!C.icon},g(o).is("center",C.center),g(o).is("closable",C.showClose),C.customClass]),style:et(g(w)),role:"alert",onMouseenter:y,onMouseleave:S},[C.repeatNum>1?(F(),me(g(Z2),{key:0,value:C.repeatNum,type:g(d),class:V(g(o).e("badge"))},null,8,["value","type","class"])):ge("v-if",!0),g(h)?(F(),me(g(st),{key:1,class:V([g(o).e("icon"),g(p)])},{default:ce(()=>[(F(),me(lt(g(h))))]),_:1},8,["class"])):ge("v-if",!0),Me(C.$slots,"default",{},()=>[C.dangerouslyUseHTMLString?(F(),oe(Ue,{key:1},[ge(" Caution here, message could've been compromised, never use user's input as message "),se("p",{class:V(g(o).e("content")),innerHTML:C.message},null,10,a4)],2112)):(F(),oe("p",{key:0,class:V(g(o).e("content"))},Ze(C.message),3))]),C.showClose?(F(),me(g(st),{key:2,class:V(g(o).e("closeBtn")),onClick:ar(E,["stop"])},{default:ce(()=>[ie(g(r))]),_:1},8,["class","onClick"])):ge("v-if",!0)],46,l4),[[Ut,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var c4=De(u4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let f4=1;const Rh=e=>{const t=!e||Te(e)||ln(e)||we(e)?{message:e}:e,n={...bt,...t};if(!n.appendTo)n.appendTo=document.body;else if(Te(n.appendTo)){let r=document.querySelector(n.appendTo);Vn(r)||(r=document.body),n.appendTo=r}return n},d4=e=>{const t=Vt.indexOf(e);if(t===-1)return;Vt.splice(t,1);const{handler:n}=e;n.close()},p4=({appendTo:e,...t},n)=>{const r=`message_${f4++}`,o=t.onClose,s=document.createElement("div"),l={...t,id:r,onClose:()=>{o==null||o(),d4(c)},onDestroy:()=>{Ps(null,s)}},a=ie(c4,l,we(l.message)||ln(l.message)?{default:we(l.message)?l.message:()=>l.message}:null);a.appContext=n||qr._context,Ps(a,s),e.appendChild(s.firstElementChild);const i=a.component,c={id:r,vnode:a,vm:i,handler:{close:()=>{i.exposed.visible.value=!1}},props:a.component.props};return c},qr=(e={},t)=>{if(!Xe)return{close:()=>{}};if(rt(pa.max)&&Vt.length>=pa.max)return{close:()=>{}};const n=Rh(e);if(n.grouping&&Vt.length){const o=Vt.find(({vnode:s})=>{var l;return((l=s.props)==null?void 0:l.message)===n.message});if(o)return o.props.repeatNum+=1,o.props.type=n.type,o.handler}const r=p4(n,t);return Vt.push(r),r.handler};Ph.forEach(e=>{qr[e]=(t={},n)=>{const r=Rh(t);return qr({...r,type:e},n)}});function h4(e){for(const t of Vt)(!e||e===t.props.type)&&t.handler.close()}qr.closeAll=h4;qr._context=null;const tr=zC(qr,"$message"),v4=ue({name:"ElMessageBox",directives:{TrapFocus:Sx},components:{ElButton:rh,ElFocusTrap:Gp,ElInput:zp,ElOverlay:hT,ElIcon:st,...cp},inheritAttrs:!1,props:{buttonSize:{type:String,validator:dp},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{locale:n,zIndex:r,ns:o,size:s}=Bp("message-box",$(()=>e.buttonSize)),{t:l}=n,{nextZIndex:a}=r,i=M(!1),u=Xt({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:a()}),c=$(()=>{const ee=u.type;return{[o.bm("icon",ee)]:ee&&Hs[ee]}}),f=Ds(),d=Ds(),p=$(()=>u.icon||Hs[u.type]||""),h=$(()=>!!u.message),v=M(),b=M(),m=M(),w=M(),S=M(),y=$(()=>u.confirmButtonClass);de(()=>u.inputValue,async ee=>{await We(),e.boxType==="prompt"&&ee!==null&&I()},{immediate:!0}),de(()=>i.value,ee=>{var U,j;ee&&(e.boxType!=="prompt"&&(u.autofocus?m.value=(j=(U=S.value)==null?void 0:U.$el)!=null?j:v.value:m.value=v.value),u.zIndex=a()),e.boxType==="prompt"&&(ee?We().then(()=>{var z;w.value&&w.value.$el&&(u.autofocus?m.value=(z=A())!=null?z:v.value:m.value=v.value)}):(u.editorErrorMessage="",u.validateError=!1))});const E=$(()=>e.draggable);UC(v,b,E),Je(async()=>{await We(),e.closeOnHashChange&&window.addEventListener("hashchange",T)}),mt(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",T)});function T(){i.value&&(i.value=!1,We(()=>{u.action&&t("action",u.action)}))}const C=()=>{e.closeOnClickModal&&B(u.distinguishCancelAndClose?"close":"cancel")},x=Ap(C),R=ee=>{if(u.inputType!=="textarea")return ee.preventDefault(),B("confirm")},B=ee=>{var U;e.boxType==="prompt"&&ee==="confirm"&&!I()||(u.action=ee,u.beforeClose?(U=u.beforeClose)==null||U.call(u,ee,u,T):T())},I=()=>{if(e.boxType==="prompt"){const ee=u.inputPattern;if(ee&&!ee.test(u.inputValue||""))return u.editorErrorMessage=u.inputErrorMessage||l("el.messagebox.error"),u.validateError=!0,!1;const U=u.inputValidator;if(typeof U=="function"){const j=U(u.inputValue);if(j===!1)return u.editorErrorMessage=u.inputErrorMessage||l("el.messagebox.error"),u.validateError=!0,!1;if(typeof j=="string")return u.editorErrorMessage=j,u.validateError=!0,!1}}return u.editorErrorMessage="",u.validateError=!1,!0},A=()=>{const ee=w.value.$refs;return ee.input||ee.textarea},D=()=>{B("close")},re=()=>{e.closeOnPressEscape&&D()};return e.lockScroll&&ZC(i),oS(i),{...ja(u),ns:o,overlayEvent:x,visible:i,hasMessage:h,typeClass:c,contentId:f,inputId:d,btnSize:s,iconComponent:p,confirmButtonClasses:y,rootRef:v,focusStartRef:m,headerRef:b,inputRef:w,confirmRef:S,doClose:T,handleClose:D,onCloseRequested:re,handleWrapperClick:C,handleInputEnter:R,handleAction:B,t:l}}}),m4=["aria-label","aria-describedby"],g4=["aria-label"],y4=["id"];function b4(e,t,n,r,o,s){const l=ot("el-icon"),a=ot("close"),i=ot("el-input"),u=ot("el-button"),c=ot("el-focus-trap"),f=ot("el-overlay");return F(),me(En,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=d=>e.$emit("vanish")),persisted:""},{default:ce(()=>[ut(ie(f,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:ce(()=>[se("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:V(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...d)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...d)),onMousedown:t[9]||(t[9]=(...d)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...d)),onMouseup:t[10]||(t[10]=(...d)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...d))},[ie(c,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:ce(()=>[se("div",{ref:"rootRef",class:V([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:et(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=ar(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(F(),oe("div",{key:0,ref:"headerRef",class:V(e.ns.e("header"))},[se("div",{class:V(e.ns.e("title"))},[e.iconComponent&&e.center?(F(),me(l,{key:0,class:V([e.ns.e("status"),e.typeClass])},{default:ce(()=>[(F(),me(lt(e.iconComponent)))]),_:1},8,["class"])):ge("v-if",!0),se("span",null,Ze(e.title),1)],2),e.showClose?(F(),oe("button",{key:0,type:"button",class:V(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=fo(ar(d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[ie(l,{class:V(e.ns.e("close"))},{default:ce(()=>[ie(a)]),_:1},8,["class"])],42,g4)):ge("v-if",!0)],2)):ge("v-if",!0),se("div",{id:e.contentId,class:V(e.ns.e("content"))},[se("div",{class:V(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(F(),me(l,{key:0,class:V([e.ns.e("status"),e.typeClass])},{default:ce(()=>[(F(),me(lt(e.iconComponent)))]),_:1},8,["class"])):ge("v-if",!0),e.hasMessage?(F(),oe("div",{key:1,class:V(e.ns.e("message"))},[Me(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(F(),me(lt(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(F(),me(lt(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:ce(()=>[Ct(Ze(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):ge("v-if",!0)],2),ut(se("div",{class:V(e.ns.e("input"))},[ie(i,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=d=>e.inputValue=d),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:V({invalid:e.validateError}),onKeydown:fo(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),se("div",{class:V(e.ns.e("errormsg")),style:et({visibility:e.editorErrorMessage?"visible":"hidden"})},Ze(e.editorErrorMessage),7)],2),[[Ut,e.showInput]])],10,y4),se("div",{class:V(e.ns.e("btns"))},[e.showCancelButton?(F(),me(u,{key:0,loading:e.cancelButtonLoading,class:V([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=d=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=fo(ar(d=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:ce(()=>[Ct(Ze(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):ge("v-if",!0),ut(ie(u,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:V([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=d=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=fo(ar(d=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:ce(()=>[Ct(Ze(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[Ut,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,m4)]),_:3},8,["z-index","overlay-class","mask"]),[[Ut,e.visible]])]),_:3})}var w4=De(v4,[["render",b4],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const Bo=new Map,_4=e=>{let t=document.body;return e.appendTo&&(Te(e.appendTo)&&(t=document.querySelector(e.appendTo)),Vn(e.appendTo)&&(t=e.appendTo),Vn(t)||(t=document.body)),t},C4=(e,t,n=null)=>{const r=ie(w4,e,we(e.message)||ln(e.message)?{default:we(e.message)?e.message:()=>e.message}:null);return r.appContext=n,Ps(r,t),_4(e).appendChild(t.firstElementChild),r.component},E4=()=>document.createElement("div"),S4=(e,t)=>{const n=E4();e.onVanish=()=>{Ps(null,n),Bo.delete(o)},e.onAction=s=>{const l=Bo.get(o);let a;e.showInput?a={value:o.inputValue,action:s}:a=s,e.callback?e.callback(a,r.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?l.reject("close"):l.reject("cancel"):l.resolve(a)};const r=C4(e,n,t),o=r.proxy;for(const s in e)Ae(e,s)&&!Ae(o.$props,s)&&(o[s]=e[s]);return o.visible=!0,o};function oo(e,t=null){if(!Xe)return Promise.reject();let n;return Te(e)||ln(e)?e={message:e}:n=e.callback,new Promise((r,o)=>{const s=S4(e,t??oo._context);Bo.set(s,{options:e,callback:n,resolve:r,reject:o})})}const x4=["alert","confirm","prompt"],T4={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};x4.forEach(e=>{oo[e]=O4(e)});function O4(e){return(t,n,r,o)=>{let s="";return Pe(n)?(r=n,s=""):Lo(n)?s="":s=n,oo(Object.assign({title:s,message:t,type:"",...T4[e]},r,{boxType:e}),o)}}oo.close=()=>{Bo.forEach((e,t)=>{t.doClose()}),Bo.clear()};oo._context=null;const kn=oo;kn.install=e=>{kn._context=e._context,e.config.globalProperties.$msgbox=kn,e.config.globalProperties.$messageBox=kn,e.config.globalProperties.$alert=kn.alert,e.config.globalProperties.$confirm=kn.confirm,e.config.globalProperties.$prompt=kn.prompt};const $4=kn,A4={id:"app"},M4={class:"grid-content header-color"},P4={class:"header-content"},R4=se("div",{class:"brand"},[se("a",{href:"#"},"frp client")],-1),k4={class:"dark-switch"},I4={id:"content"},L4=se("footer",null,null,-1),N4=ue({__name:"App",setup(e){const t=hy(),n=M(t),r=Lg(t),o=s=>{s==""&&window.open("https://github.com/fatedier/frp")};return(s,l)=>{const a=UT,i=LT,u=IT,c=gh,f=ot("router-view"),d=Pi;return F(),oe("div",A4,[se("header",M4,[se("div",P4,[R4,se("div",k4,[ie(a,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=p=>n.value=p),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:g(r),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),se("section",null,[ie(d,null,{default:ce(()=>[ie(c,{id:"side-nav",xs:24,md:4},{default:ce(()=>[ie(u,{"default-active":"1",mode:"vertical",theme:"light",router:"false",onSelect:o},{default:ce(()=>[ie(i,{index:"/"},{default:ce(()=>[Ct("Overview")]),_:1}),ie(i,{index:"/configure"},{default:ce(()=>[Ct("Configure")]),_:1}),ie(i,{index:""},{default:ce(()=>[Ct("Help")]),_:1})]),_:1})]),_:1}),ie(c,{xs:24,md:20},{default:ce(()=>[se("div",I4,[ie(f)])]),_:1})]),_:1})]),L4])}}});/*! + * vue-router v4.1.6 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */const Tr=typeof window<"u";function F4(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const je=Object.assign;function Fl(e,t){const n={};for(const r in t){const o=t[r];n[r]=Gt(o)?o.map(e):e(o)}return n}const Co=()=>{},Gt=Array.isArray,B4=/\/$/,H4=e=>e.replace(B4,"");function Bl(e,t,n="/"){let r,o={},s="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(r=t.slice(0,i),s=t.slice(i+1,a>-1?a:t.length),o=e(s)),a>-1&&(r=r||t.slice(0,a),l=t.slice(a,t.length)),r=W4(r??t,n),{fullPath:r+(s&&"?")+s+l,path:r,query:o,hash:l}}function z4(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function tf(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function D4(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Yr(t.matched[r],n.matched[o])&&kh(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Yr(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function kh(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!j4(e[n],t[n]))return!1;return!0}function j4(e,t){return Gt(e)?nf(e,t):Gt(t)?nf(t,e):e===t}function nf(e,t){return Gt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function W4(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let o=n.length-1,s,l;for(s=0;s1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(s-(s===r.length?1:0)).join("/")}var Ho;(function(e){e.pop="pop",e.push="push"})(Ho||(Ho={}));var Eo;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Eo||(Eo={}));function K4(e){if(!e)if(Tr){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),H4(e)}const V4=/^[^#]+#/;function U4(e,t){return e.replace(V4,"#")+t}function q4(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ml=()=>({left:window.pageXOffset,top:window.pageYOffset});function Y4(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=q4(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function rf(e,t){return(history.state?history.state.position-t:-1)+e}const $a=new Map;function G4(e,t){$a.set(e,t)}function X4(e){const t=$a.get(e);return $a.delete(e),t}let J4=()=>location.protocol+"//"+location.host;function Ih(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let a=o.includes(e.slice(s))?e.slice(s).length:1,i=o.slice(a);return i[0]!=="/"&&(i="/"+i),tf(i,"")}return tf(n,e)+r+o}function Z4(e,t,n,r){let o=[],s=[],l=null;const a=({state:d})=>{const p=Ih(e,location),h=n.value,v=t.value;let b=0;if(d){if(n.value=p,t.value=d,l&&l===h){l=null;return}b=v?d.position-v.position:0}else r(p);o.forEach(m=>{m(n.value,h,{delta:b,type:Ho.pop,direction:b?b>0?Eo.forward:Eo.back:Eo.unknown})})};function i(){l=n.value}function u(d){o.push(d);const p=()=>{const h=o.indexOf(d);h>-1&&o.splice(h,1)};return s.push(p),p}function c(){const{history:d}=window;d.state&&d.replaceState(je({},d.state,{scroll:ml()}),"")}function f(){for(const d of s)d();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",c),{pauseListeners:i,listen:u,destroy:f}}function of(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?ml():null}}function Q4(e){const{history:t,location:n}=window,r={value:Ih(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(i,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:J4()+e+i;try{t[c?"replaceState":"pushState"](u,"",d),o.value=u}catch(p){console.error(p),n[c?"replace":"assign"](d)}}function l(i,u){const c=je({},t.state,of(o.value.back,i,o.value.forward,!0),u,{position:o.value.position});s(i,c,!0),r.value=i}function a(i,u){const c=je({},o.value,t.state,{forward:i,scroll:ml()});s(c.current,c,!0);const f=je({},of(r.value,i,null),{position:c.position+1},u);s(i,f,!1),r.value=i}return{location:r,state:o,push:a,replace:l}}function e$(e){e=K4(e);const t=Q4(e),n=Z4(e,t.state,t.location,t.replace);function r(s,l=!0){l||n.pauseListeners(),history.go(s)}const o=je({location:"",base:e,go:r,createHref:U4.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function t$(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),e$(e)}function n$(e){return typeof e=="string"||e&&typeof e=="object"}function Lh(e){return typeof e=="string"||typeof e=="symbol"}const Mn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Nh=Symbol("");var sf;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(sf||(sf={}));function Gr(e,t){return je(new Error,{type:e,[Nh]:!0},t)}function vn(e,t){return e instanceof Error&&Nh in e&&(t==null||!!(e.type&t))}const lf="[^/]+?",r$={sensitive:!1,strict:!1,start:!0,end:!0},o$=/[.+*?^${}()[\]/\\]/g;function s$(e,t){const n=je({},r$,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function a$(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const i$={type:0,value:""},u$=/[a-zA-Z0-9_]/;function c$(e){if(!e)return[[]];if(e==="/")return[[i$]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const o=[];let s;function l(){s&&o.push(s),s=[]}let a=0,i,u="",c="";function f(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=i}for(;a{l(w)}:Co}function l(c){if(Lh(c)){const f=r.get(c);f&&(r.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(l),f.alias.forEach(l))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&r.delete(c.record.name),c.children.forEach(l),c.alias.forEach(l))}}function a(){return n}function i(c){let f=0;for(;f=0&&(c.record.path!==n[f].record.path||!Fh(c,n[f]));)f++;n.splice(f,0,c),c.record.name&&!cf(c)&&r.set(c.record.name,c)}function u(c,f){let d,p={},h,v;if("name"in c&&c.name){if(d=r.get(c.name),!d)throw Gr(1,{location:c});v=d.record.name,p=je(uf(f.params,d.keys.filter(w=>!w.optional).map(w=>w.name)),c.params&&uf(c.params,d.keys.map(w=>w.name))),h=d.stringify(p)}else if("path"in c)h=c.path,d=n.find(w=>w.re.test(h)),d&&(p=d.parse(h),v=d.record.name);else{if(d=f.name?r.get(f.name):n.find(w=>w.re.test(f.path)),!d)throw Gr(1,{location:c,currentLocation:f});v=d.record.name,p=je({},f.params,c.params),h=d.stringify(p)}const b=[];let m=d;for(;m;)b.unshift(m.record),m=m.parent;return{name:v,path:h,params:p,matched:b,meta:v$(b)}}return e.forEach(c=>s(c)),{addRoute:s,resolve:u,removeRoute:l,getRoutes:a,getRecordMatcher:o}}function uf(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function p$(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:h$(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function h$(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="boolean"?n:n[r];return t}function cf(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function v$(e){return e.reduce((t,n)=>je(t,n.meta),{})}function ff(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Fh(e,t){return t.children.some(n=>n===e||Fh(e,n))}const Bh=/#/g,m$=/&/g,g$=/\//g,y$=/=/g,b$=/\?/g,Hh=/\+/g,w$=/%5B/g,_$=/%5D/g,zh=/%5E/g,C$=/%60/g,Dh=/%7B/g,E$=/%7C/g,jh=/%7D/g,S$=/%20/g;function Fi(e){return encodeURI(""+e).replace(E$,"|").replace(w$,"[").replace(_$,"]")}function x$(e){return Fi(e).replace(Dh,"{").replace(jh,"}").replace(zh,"^")}function Aa(e){return Fi(e).replace(Hh,"%2B").replace(S$,"+").replace(Bh,"%23").replace(m$,"%26").replace(C$,"`").replace(Dh,"{").replace(jh,"}").replace(zh,"^")}function T$(e){return Aa(e).replace(y$,"%3D")}function O$(e){return Fi(e).replace(Bh,"%23").replace(b$,"%3F")}function $$(e){return e==null?"":O$(e).replace(g$,"%2F")}function Ks(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function A$(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Aa(s)):[r&&Aa(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function M$(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Gt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const P$=Symbol(""),pf=Symbol(""),Bi=Symbol(""),Wh=Symbol(""),Ma=Symbol("");function uo(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function Ln(e,t,n,r,o){const s=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const i=f=>{f===!1?a(Gr(4,{from:n,to:t})):f instanceof Error?a(f):n$(f)?a(Gr(2,{from:t,to:f})):(s&&r.enterCallbacks[o]===s&&typeof f=="function"&&s.push(f),l())},u=e.call(r&&r.instances[o],t,n,i);let c=Promise.resolve(u);e.length<3&&(c=c.then(i)),c.catch(f=>a(f))})}function Hl(e,t,n,r){const o=[];for(const s of e)for(const l in s.components){let a=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(R$(a)){const u=(a.__vccOpts||a)[t];u&&o.push(Ln(u,n,r,s,l))}else{let i=a();o.push(()=>i.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${s.path}"`));const c=F4(u)?u.default:u;s.components[l]=c;const d=(c.__vccOpts||c)[t];return d&&Ln(d,n,r,s,l)()}))}}return o}function R$(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function hf(e){const t=Ce(Bi),n=Ce(Wh),r=$(()=>t.resolve(g(e.to))),o=$(()=>{const{matched:i}=r.value,{length:u}=i,c=i[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(Yr.bind(null,c));if(d>-1)return d;const p=vf(i[u-2]);return u>1&&vf(c)===p&&f[f.length-1].path!==p?f.findIndex(Yr.bind(null,i[u-2])):d}),s=$(()=>o.value>-1&&N$(n.params,r.value.params)),l=$(()=>o.value>-1&&o.value===n.matched.length-1&&kh(n.params,r.value.params));function a(i={}){return L$(i)?t[g(e.replace)?"replace":"push"](g(e.to)).catch(Co):Promise.resolve()}return{route:r,href:$(()=>r.value.href),isActive:s,isExactActive:l,navigate:a}}const k$=ue({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:hf,setup(e,{slots:t}){const n=Xt(hf(e)),{options:r}=Ce(Bi),o=$(()=>({[mf(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[mf(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:ve("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),I$=k$;function L$(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function N$(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!Gt(o)||o.length!==r.length||r.some((s,l)=>s!==o[l]))return!1}return!0}function vf(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const mf=(e,t,n)=>e??t??n,F$=ue({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ce(Ma),o=$(()=>e.route||r.value),s=Ce(pf,0),l=$(()=>{let u=g(s);const{matched:c}=o.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=$(()=>o.value.matched[l.value]);it(pf,$(()=>l.value+1)),it(P$,a),it(Ma,o);const i=M();return de(()=>[i.value,a.value,e.name],([u,c,f],[d,p,h])=>{c&&(c.instances[f]=u,p&&p!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!Yr(c,p)||!d)&&(c.enterCallbacks[f]||[]).forEach(v=>v(u))},{flush:"post"}),()=>{const u=o.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return gf(n.default,{Component:d,route:u});const p=f.props[c],h=p?p===!0?u.params:typeof p=="function"?p(u):p:null,b=ve(d,je({},h,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(f.instances[c]=null)},ref:i}));return gf(n.default,{Component:b,route:u})||b}}});function gf(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const B$=F$;function H$(e){const t=d$(e.routes,e),n=e.parseQuery||A$,r=e.stringifyQuery||df,o=e.history,s=uo(),l=uo(),a=uo(),i=Pr(Mn);let u=Mn;Tr&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Fl.bind(null,L=>""+L),f=Fl.bind(null,$$),d=Fl.bind(null,Ks);function p(L,J){let q,Z;return Lh(L)?(q=t.getRecordMatcher(L),Z=J):Z=L,t.addRoute(Z,q)}function h(L){const J=t.getRecordMatcher(L);J&&t.removeRoute(J)}function v(){return t.getRoutes().map(L=>L.record)}function b(L){return!!t.getRecordMatcher(L)}function m(L,J){if(J=je({},J||i.value),typeof L=="string"){const _=Bl(n,L,J.path),O=t.resolve({path:_.path},J),N=o.createHref(_.fullPath);return je(_,O,{params:d(O.params),hash:Ks(_.hash),redirectedFrom:void 0,href:N})}let q;if("path"in L)q=je({},L,{path:Bl(n,L.path,J.path).path});else{const _=je({},L.params);for(const O in _)_[O]==null&&delete _[O];q=je({},L,{params:f(L.params)}),J.params=f(J.params)}const Z=t.resolve(q,J),_e=L.hash||"";Z.params=c(d(Z.params));const Be=z4(r,je({},L,{hash:x$(_e),path:Z.path})),Ee=o.createHref(Be);return je({fullPath:Be,hash:_e,query:r===df?M$(L.query):L.query||{}},Z,{redirectedFrom:void 0,href:Ee})}function w(L){return typeof L=="string"?Bl(n,L,i.value.path):je({},L)}function S(L,J){if(u!==L)return Gr(8,{from:J,to:L})}function y(L){return C(L)}function E(L){return y(je(w(L),{replace:!0}))}function T(L){const J=L.matched[L.matched.length-1];if(J&&J.redirect){const{redirect:q}=J;let Z=typeof q=="function"?q(L):q;return typeof Z=="string"&&(Z=Z.includes("?")||Z.includes("#")?Z=w(Z):{path:Z},Z.params={}),je({query:L.query,hash:L.hash,params:"path"in Z?{}:L.params},Z)}}function C(L,J){const q=u=m(L),Z=i.value,_e=L.state,Be=L.force,Ee=L.replace===!0,_=T(q);if(_)return C(je(w(_),{state:typeof _=="object"?je({},_e,_.state):_e,force:Be,replace:Ee}),J||q);const O=q;O.redirectedFrom=J;let N;return!Be&&D4(r,Z,q)&&(N=Gr(16,{to:O,from:Z}),Q(Z,Z,!0,!1)),(N?Promise.resolve(N):R(O,Z)).catch(H=>vn(H)?vn(H,2)?H:P(H):j(H,O,Z)).then(H=>{if(H){if(vn(H,2))return C(je({replace:Ee},w(H.to),{state:typeof H.to=="object"?je({},_e,H.to.state):_e,force:Be}),J||O)}else H=I(O,Z,!0,Ee,_e);return B(O,Z,H),H})}function x(L,J){const q=S(L,J);return q?Promise.reject(q):Promise.resolve()}function R(L,J){let q;const[Z,_e,Be]=z$(L,J);q=Hl(Z.reverse(),"beforeRouteLeave",L,J);for(const _ of Z)_.leaveGuards.forEach(O=>{q.push(Ln(O,L,J))});const Ee=x.bind(null,L,J);return q.push(Ee),Sr(q).then(()=>{q=[];for(const _ of s.list())q.push(Ln(_,L,J));return q.push(Ee),Sr(q)}).then(()=>{q=Hl(_e,"beforeRouteUpdate",L,J);for(const _ of _e)_.updateGuards.forEach(O=>{q.push(Ln(O,L,J))});return q.push(Ee),Sr(q)}).then(()=>{q=[];for(const _ of L.matched)if(_.beforeEnter&&!J.matched.includes(_))if(Gt(_.beforeEnter))for(const O of _.beforeEnter)q.push(Ln(O,L,J));else q.push(Ln(_.beforeEnter,L,J));return q.push(Ee),Sr(q)}).then(()=>(L.matched.forEach(_=>_.enterCallbacks={}),q=Hl(Be,"beforeRouteEnter",L,J),q.push(Ee),Sr(q))).then(()=>{q=[];for(const _ of l.list())q.push(Ln(_,L,J));return q.push(Ee),Sr(q)}).catch(_=>vn(_,8)?_:Promise.reject(_))}function B(L,J,q){for(const Z of a.list())Z(L,J,q)}function I(L,J,q,Z,_e){const Be=S(L,J);if(Be)return Be;const Ee=J===Mn,_=Tr?history.state:{};q&&(Z||Ee?o.replace(L.fullPath,je({scroll:Ee&&_&&_.scroll},_e)):o.push(L.fullPath,_e)),i.value=L,Q(L,J,q,Ee),P()}let A;function D(){A||(A=o.listen((L,J,q)=>{if(!Fe.listening)return;const Z=m(L),_e=T(Z);if(_e){C(je(_e,{replace:!0}),Z).catch(Co);return}u=Z;const Be=i.value;Tr&&G4(rf(Be.fullPath,q.delta),ml()),R(Z,Be).catch(Ee=>vn(Ee,12)?Ee:vn(Ee,2)?(C(Ee.to,Z).then(_=>{vn(_,20)&&!q.delta&&q.type===Ho.pop&&o.go(-1,!1)}).catch(Co),Promise.reject()):(q.delta&&o.go(-q.delta,!1),j(Ee,Z,Be))).then(Ee=>{Ee=Ee||I(Z,Be,!1),Ee&&(q.delta&&!vn(Ee,8)?o.go(-q.delta,!1):q.type===Ho.pop&&vn(Ee,20)&&o.go(-1,!1)),B(Z,Be,Ee)}).catch(Co)}))}let re=uo(),ee=uo(),U;function j(L,J,q){P(L);const Z=ee.list();return Z.length?Z.forEach(_e=>_e(L,J,q)):console.error(L),Promise.reject(L)}function z(){return U&&i.value!==Mn?Promise.resolve():new Promise((L,J)=>{re.add([L,J])})}function P(L){return U||(U=!L,D(),re.list().forEach(([J,q])=>L?q(L):J()),re.reset()),L}function Q(L,J,q,Z){const{scrollBehavior:_e}=e;if(!Tr||!_e)return Promise.resolve();const Be=!q&&X4(rf(L.fullPath,0))||(Z||!q)&&history.state&&history.state.scroll||null;return We().then(()=>_e(L,J,Be)).then(Ee=>Ee&&Y4(Ee)).catch(Ee=>j(Ee,L,J))}const he=L=>o.go(L);let xe;const Re=new Set,Fe={currentRoute:i,listening:!0,addRoute:p,removeRoute:h,hasRoute:b,getRoutes:v,resolve:m,options:e,push:y,replace:E,go:he,back:()=>he(-1),forward:()=>he(1),beforeEach:s.add,beforeResolve:l.add,afterEach:a.add,onError:ee.add,isReady:z,install(L){const J=this;L.component("RouterLink",I$),L.component("RouterView",B$),L.config.globalProperties.$router=J,Object.defineProperty(L.config.globalProperties,"$route",{enumerable:!0,get:()=>g(i)}),Tr&&!xe&&i.value===Mn&&(xe=!0,y(o.location).catch(_e=>{}));const q={};for(const _e in Mn)q[_e]=$(()=>i.value[_e]);L.provide(Bi,J),L.provide(Wh,Xt(q)),L.provide(Ma,i);const Z=L.unmount;Re.add(L),L.unmount=function(){Re.delete(L),Re.size<1&&(u=Mn,A&&A(),A=null,i.value=Mn,xe=!1,U=!1),Z()}}};return Fe}function Sr(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function z$(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let l=0;lYr(u,a))?r.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(u=>Yr(u,i))||o.push(i))}return[n,r,o]}const D$=ue({__name:"Overview",setup(e){let t=M([]);return(()=>{fetch("/api/status",{credentials:"include"}).then(r=>r.json()).then(r=>{t.value=new Array;for(let o in r)for(let s of r[o])console.log(s),t.value.push(s)}).catch(r=>{tr({showClose:!0,message:"Get status info from frpc failed!"+r,type:"warning"})})})(),(r,o)=>{const s=e4,l=QO,a=gh,i=Pi;return F(),oe("div",null,[ie(i,null,{default:ce(()=>[ie(a,{md:24},{default:ce(()=>[se("div",null,[ie(l,{data:g(t),stripe:"",style:{width:"100%"},"default-sort":{prop:"type",order:"ascending"}},{default:ce(()=>[ie(s,{prop:"name",label:"name",sortable:""}),ie(s,{prop:"type",label:"type",width:"150",sortable:""}),ie(s,{prop:"local_addr",label:"local address",width:"200",sortable:""}),ie(s,{prop:"plugin",label:"plugin",width:"200",sortable:""}),ie(s,{prop:"remote_addr",label:"remote address",sortable:""}),ie(s,{prop:"status",label:"status",width:"150",sortable:""}),ie(s,{prop:"err",label:"info"})]),_:1},8,["data"])])]),_:1})]),_:1})])}}}),j$=ue({__name:"ClientConfigure",setup(e){let t=M("");const n=()=>{fetch("/api/config",{credentials:"include"}).then(o=>o.text()).then(o=>{t.value=o}).catch(()=>{tr({showClose:!0,message:"Get configure content from frpc failed!",type:"warning"})})},r=()=>{$4.confirm("This operation will upload your frpc configure file content and hot reload it, do you want to continue?","Notice",{confirmButtonText:"Yes",cancelButtonText:"No",type:"warning"}).then(()=>{if(t.value==""){tr({message:"Configure content can not be empty!",type:"warning"});return}fetch("/api/config",{credentials:"include",method:"PUT",body:t.value}).then(()=>{fetch("/api/reload",{credentials:"include"}).then(()=>{tr({type:"success",message:"Success"})}).catch(o=>{tr({showClose:!0,message:"Reload frpc configure file error, "+o,type:"warning"})})}).catch(()=>{tr({showClose:!0,message:"Put config to frpc and hot reload failed!",type:"warning"})})}).catch(()=>{tr({message:"Canceled",type:"info"})})};return n(),(o,s)=>{const l=rh,a=Pi,i=zp;return F(),oe("div",null,[ie(a,{id:"head"},{default:ce(()=>[ie(l,{type:"primary",onClick:n},{default:ce(()=>[Ct("Refresh")]),_:1}),ie(l,{type:"primary",onClick:r},{default:ce(()=>[Ct("Upload")]),_:1})]),_:1}),ie(i,{type:"textarea",autosize:"",modelValue:g(t),"onUpdate:modelValue":s[0]||(s[0]=u=>Ve(t)?t.value=u:t=u),placeholder:"frpc configrue file, can not be empty..."},null,8,["modelValue"])])}}}),W$=H$({history:t$(),routes:[{path:"/",name:"Overview",component:D$},{path:"/configure",name:"ClientConfigure",component:j$}]}),Kh=Eg(N4);Kh.use(W$);Kh.mount("#app")});export default K$(); diff --git a/assets/frpc/static/index-1e2a7ce0.css b/assets/frpc/static/index-1e2a7ce0.css new file mode 100644 index 00000000000..c16178ac408 --- /dev/null +++ b/assets/frpc/static/index-1e2a7ce0.css @@ -0,0 +1 @@ +@charset "UTF-8";.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:inline-flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled) .el-color-picker__trigger{border:1px solid var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;text-align:left}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret,.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select-v2__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret,.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret,.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__suffix .el-input__icon:not(:first-child){margin-left:8px}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotate(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;width:100%}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input--iOS{position:absolute;left:0;top:0;z-index:6}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__tags.is-disabled{cursor:not-allowed}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:center;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;overflow:hidden;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover{padding-left:13px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover{padding-right:13px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular)}.el-text{align-self:center;margin:0;padding:0;font-size:var(--el-text-font-size);color:var(--el-text-color);word-break:break-all}.el-text.is-truncated{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;width:auto}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .36),0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0, 0, 0, .8);--el-mask-color-extra-light:rgba(0, 0, 0, .3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, .5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5fae\8f6f\96c5\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}html.dark .header-color{background:#395c74}.header-content{display:flex;align-items:center}#content{margin-top:20px;padding-right:40px}.brand{display:flex;justify-content:flex-start}.brand a{color:#fff;background-color:transparent;margin-left:20px;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.dark-switch{display:flex;justify-content:flex-end;flex-grow:1;padding-right:40px}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}#head{margin-bottom:30px}html.dark{--el-bg-color: #343432;--el-fill-color-blank: #343432;background-color:#343432} diff --git a/assets/frpc/static/index-7dd223da.js b/assets/frpc/static/index-7dd223da.js deleted file mode 100644 index 75888cd6c9d..00000000000 --- a/assets/frpc/static/index-7dd223da.js +++ /dev/null @@ -1,32 +0,0 @@ -var Dh=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var N$=Dh((At,Mt)=>{(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 s of o)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();function Ra(e,t){const n=Object.create(null),r=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}function et(e){if(fe(e)){const t={};for(let n=0;n{if(n){const r=n.split(jh);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function K(e){let t="";if(xe(e))t=e;else if(fe(e))for(let n=0;nVs(n,t))}const Ze=e=>xe(e)?e:e==null?"":fe(e)||Pe(e)&&(e.toString===bf||!be(e.toString))?JSON.stringify(e,yf,2):String(e),yf=(e,t)=>t&&t.__v_isRef?yf(e,t.value):Pr(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o])=>(n[`${r} =>`]=o,n),{})}:qs(t)?{[`Set(${t.size})`]:[...t.values()]}:Pe(t)&&!fe(t)&&!wf(t)?String(t):t,Ge={},Mr=[],at=()=>{},Yh=()=>!1,Gh=/^on[^a-z]/,Us=e=>Gh.test(e),ka=e=>e.startsWith("onUpdate:"),pt=Object.assign,Ia=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Xh=Object.prototype.hasOwnProperty,$e=(e,t)=>Xh.call(e,t),fe=Array.isArray,Pr=e=>Do(e)==="[object Map]",qs=e=>Do(e)==="[object Set]",Bi=e=>Do(e)==="[object Date]",be=e=>typeof e=="function",xe=e=>typeof e=="string",So=e=>typeof e=="symbol",Pe=e=>e!==null&&typeof e=="object",Ss=e=>Pe(e)&&be(e.then)&&be(e.catch),bf=Object.prototype.toString,Do=e=>bf.call(e),Jh=e=>Do(e).slice(8,-1),wf=e=>Do(e)==="[object Object]",La=e=>xe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,fs=Ra(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ys=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Zh=/-(\w)/g,Yt=Ys(e=>e.replace(Zh,(t,n)=>n?n.toUpperCase():"")),Qh=/\B([A-Z])/g,wr=Ys(e=>e.replace(Qh,"-$1").toLowerCase()),Gs=Ys(e=>e.charAt(0).toUpperCase()+e.slice(1)),ds=Ys(e=>e?`on${Gs(e)}`:""),xo=(e,t)=>!Object.is(e,t),ps=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},ev=e=>{const t=parseFloat(e);return isNaN(t)?e:t},tv=e=>{const t=xe(e)?Number(e):NaN;return isNaN(t)?e:t};let Hi;const nv=()=>Hi||(Hi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let $t;class rv{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=$t,!t&&$t&&(this.index=($t.scopes||($t.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=$t;try{return $t=this,t()}finally{$t=n}}}on(){$t=this}off(){$t=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Ef=e=>(e.w&jn)>0,Sf=e=>(e.n&jn)>0,sv=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(c==="length"||c>=i)&&a.push(u)})}else switch(n!==void 0&&a.push(l.get(n)),t){case"add":fe(e)?La(n)&&a.push(l.get("length")):(a.push(l.get(pr)),Pr(e)&&a.push(l.get(Wl)));break;case"delete":fe(e)||(a.push(l.get(pr)),Pr(e)&&a.push(l.get(Wl)));break;case"set":Pr(e)&&a.push(l.get(pr));break}if(a.length===1)a[0]&&Kl(a[0]);else{const i=[];for(const u of a)u&&i.push(...u);Kl(Na(i))}}function Kl(e,t){const n=fe(e)?e:[...e];for(const r of n)r.computed&&zi(r);for(const r of n)r.computed||zi(r)}function zi(e,t){(e!==jt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function av(e,t){var n;return(n=Ts.get(e))===null||n===void 0?void 0:n.get(t)}const iv=Ra("__proto__,__v_isRef,__isVue"),Of=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(So)),uv=Ba(),cv=Ba(!1,!0),fv=Ba(!0),ji=dv();function dv(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=Ie(this);for(let s=0,l=this.length;s{e[t]=function(...n){Xr();const r=Ie(this)[t].apply(this,n);return Jr(),r}}),e}function pv(e){const t=Ie(this);return xt(t,"has",e),t.hasOwnProperty(e)}function Ba(e=!1,t=!1){return function(r,o,s){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&s===(e?t?Av:Rf:t?Pf:Mf).get(r))return r;const l=fe(r);if(!e){if(l&&$e(ji,o))return Reflect.get(ji,o,s);if(o==="hasOwnProperty")return pv}const a=Reflect.get(r,o,s);return(So(o)?Of.has(o):iv(o))||(e||xt(r,"get",o),t)?a:Ve(a)?l&&La(o)?a:a.value:Pe(a)?e?zo(a):Xt(a):a}}const hv=$f(),vv=$f(!0);function $f(e=!1){return function(n,r,o,s){let l=n[r];if(Lr(l)&&Ve(l)&&!Ve(o))return!1;if(!e&&(!Os(o)&&!Lr(o)&&(l=Ie(l),o=Ie(o)),!fe(n)&&Ve(l)&&!Ve(o)))return l.value=o,!0;const a=fe(n)&&La(r)?Number(r)e,Xs=e=>Reflect.getPrototypeOf(e);function Yo(e,t,n=!1,r=!1){e=e.__v_raw;const o=Ie(e),s=Ie(t);n||(t!==s&&xt(o,"get",t),xt(o,"get",s));const{has:l}=Xs(o),a=r?Ha:n?ja:To;if(l.call(o,t))return a(e.get(t));if(l.call(o,s))return a(e.get(s));e!==o&&e.get(t)}function Go(e,t=!1){const n=this.__v_raw,r=Ie(n),o=Ie(e);return t||(e!==o&&xt(r,"has",e),xt(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function Xo(e,t=!1){return e=e.__v_raw,!t&&xt(Ie(e),"iterate",pr),Reflect.get(e,"size",e)}function Wi(e){e=Ie(e);const t=Ie(this);return Xs(t).has.call(t,e)||(t.add(e),bn(t,"add",e,e)),this}function Ki(e,t){t=Ie(t);const n=Ie(this),{has:r,get:o}=Xs(n);let s=r.call(n,e);s||(e=Ie(e),s=r.call(n,e));const l=o.call(n,e);return n.set(e,t),s?xo(t,l)&&bn(n,"set",e,t):bn(n,"add",e,t),this}function Vi(e){const t=Ie(this),{has:n,get:r}=Xs(t);let o=n.call(t,e);o||(e=Ie(e),o=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return o&&bn(t,"delete",e,void 0),s}function Ui(){const e=Ie(this),t=e.size!==0,n=e.clear();return t&&bn(e,"clear",void 0,void 0),n}function Jo(e,t){return function(r,o){const s=this,l=s.__v_raw,a=Ie(l),i=t?Ha:e?ja:To;return!e&&xt(a,"iterate",pr),l.forEach((u,c)=>r.call(o,i(u),i(c),s))}}function Zo(e,t,n){return function(...r){const o=this.__v_raw,s=Ie(o),l=Pr(s),a=e==="entries"||e===Symbol.iterator&&l,i=e==="keys"&&l,u=o[e](...r),c=n?Ha:t?ja:To;return!t&&xt(s,"iterate",i?Wl:pr),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:a?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Tn(e){return function(...t){return e==="delete"?!1:this}}function _v(){const e={get(s){return Yo(this,s)},get size(){return Xo(this)},has:Go,add:Wi,set:Ki,delete:Vi,clear:Ui,forEach:Jo(!1,!1)},t={get(s){return Yo(this,s,!1,!0)},get size(){return Xo(this)},has:Go,add:Wi,set:Ki,delete:Vi,clear:Ui,forEach:Jo(!1,!0)},n={get(s){return Yo(this,s,!0)},get size(){return Xo(this,!0)},has(s){return Go.call(this,s,!0)},add:Tn("add"),set:Tn("set"),delete:Tn("delete"),clear:Tn("clear"),forEach:Jo(!0,!1)},r={get(s){return Yo(this,s,!0,!0)},get size(){return Xo(this,!0)},has(s){return Go.call(this,s,!0)},add:Tn("add"),set:Tn("set"),delete:Tn("delete"),clear:Tn("clear"),forEach:Jo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Zo(s,!1,!1),n[s]=Zo(s,!0,!1),t[s]=Zo(s,!1,!0),r[s]=Zo(s,!0,!0)}),[e,n,t,r]}const[Cv,Ev,Sv,xv]=_v();function Da(e,t){const n=t?e?xv:Sv:e?Ev:Cv;return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get($e(n,o)&&o in r?n:r,o,s)}const Tv={get:Da(!1,!1)},Ov={get:Da(!1,!0)},$v={get:Da(!0,!1)},Mf=new WeakMap,Pf=new WeakMap,Rf=new WeakMap,Av=new WeakMap;function Mv(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Pv(e){return e.__v_skip||!Object.isExtensible(e)?0:Mv(Jh(e))}function Xt(e){return Lr(e)?e:za(e,!1,Af,Tv,Mf)}function kf(e){return za(e,!1,wv,Ov,Pf)}function zo(e){return za(e,!0,bv,$v,Rf)}function za(e,t,n,r,o){if(!Pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const l=Pv(e);if(l===0)return e;const a=new Proxy(e,l===2?r:n);return o.set(e,a),a}function Rr(e){return Lr(e)?Rr(e.__v_raw):!!(e&&e.__v_isReactive)}function Lr(e){return!!(e&&e.__v_isReadonly)}function Os(e){return!!(e&&e.__v_isShallow)}function If(e){return Rr(e)||Lr(e)}function Ie(e){const t=e&&e.__v_raw;return t?Ie(t):e}function Lf(e){return xs(e,"__v_skip",!0),e}const To=e=>Pe(e)?Xt(e):e,ja=e=>Pe(e)?zo(e):e;function Nf(e){Hn&&jt&&(e=Ie(e),Tf(e.dep||(e.dep=Na())))}function Ff(e,t){e=Ie(e);const n=e.dep;n&&Kl(n)}function Ve(e){return!!(e&&e.__v_isRef===!0)}function P(e){return Bf(e,!1)}function kr(e){return Bf(e,!0)}function Bf(e,t){return Ve(e)?e:new Rv(e,t)}class Rv{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Ie(t),this._value=n?t:To(t)}get value(){return Nf(this),this._value}set value(t){const n=this.__v_isShallow||Os(t)||Lr(t);t=n?t:Ie(t),xo(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:To(t),Ff(this))}}function y(e){return Ve(e)?e.value:e}const kv={get:(e,t,n)=>y(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ve(o)&&!Ve(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Hf(e){return Rr(e)?e:new Proxy(e,kv)}function Wa(e){const t=fe(e)?new Array(e.length):{};for(const n in e)t[n]=Lt(e,n);return t}class Iv{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return av(Ie(this._object),this._key)}}function Lt(e,t,n){const r=e[t];return Ve(r)?r:new Iv(e,t,n)}var Df;class Lv{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Df]=!1,this._dirty=!0,this.effect=new Fa(t,()=>{this._dirty||(this._dirty=!0,Ff(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=Ie(this);return Nf(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Df="__v_isReadonly";function zf(e,t,n=!1){let r,o;const s=be(e);return s?(r=e,o=at):(r=e.get,o=e.set),new Lv(r,o,s||!o,n)}function Nv(e,...t){}function Dn(e,t,n,r){let o;try{o=r?e(...r):e()}catch(s){Js(s,t,n)}return o}function Nt(e,t,n,r){if(be(e)){const s=Dn(e,t,n,r);return s&&Ss(s)&&s.catch(l=>{Js(l,t,n)}),s}const o=[];for(let s=0;s>>1;$o(ht[r])tn&&ht.splice(t,1)}function Dv(e){fe(e)?Ir.push(...e):(!gn||!gn.includes(e,e.allowRecurse?rr+1:rr))&&Ir.push(e),Wf()}function qi(e,t=Oo?tn+1:0){for(;t$o(n)-$o(r)),rr=0;rre.id==null?1/0:e.id,zv=(e,t)=>{const n=$o(e)-$o(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Vf(e){Vl=!1,Oo=!0,ht.sort(zv);const t=at;try{for(tn=0;tnxe(h)?h.trim():h)),f&&(o=n.map(ev))}let a,i=r[a=ds(t)]||r[a=ds(Yt(t))];!i&&s&&(i=r[a=ds(wr(t))]),i&&Nt(i,e,6,o);const u=r[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Nt(u,e,6,o)}}function Uf(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let l={},a=!1;if(!be(e)){const i=u=>{const c=Uf(u,t,!0);c&&(a=!0,pt(l,c))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!s&&!a?(Pe(e)&&r.set(e,null),null):(fe(s)?s.forEach(i=>l[i]=null):pt(l,s),Pe(e)&&r.set(e,l),l)}function Zs(e,t){return!e||!Us(t)?!1:(t=t.slice(2).replace(/Once$/,""),$e(e,t[0].toLowerCase()+t.slice(1))||$e(e,wr(t))||$e(e,t))}let ft=null,qf=null;function $s(e){const t=ft;return ft=e,qf=e&&e.type.__scopeId||null,t}function ce(e,t=ft,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&su(-1);const s=$s(t);let l;try{l=e(...o)}finally{$s(s),r._d&&su(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function wl(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:s,propsOptions:[l],slots:a,attrs:i,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:p,inheritAttrs:v}=e;let b,m;const w=$s(e);try{if(n.shapeFlag&4){const g=o||r;b=en(c.call(g,g,f,s,h,d,p)),m=i}else{const g=t;b=en(g.length>1?g(s,{attrs:i,slots:a,emit:u}):g(s,null)),m=t.props?i:Wv(i)}}catch(g){mo.length=0,Js(g,e,1),b=ie(_t)}let S=b;if(m&&v!==!1){const g=Object.keys(m),{shapeFlag:E}=S;g.length&&E&7&&(l&&g.some(ka)&&(m=Kv(m,l)),S=wn(S,m))}return n.dirs&&(S=wn(S),S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&(S.transition=n.transition),b=S,$s(w),b}const Wv=e=>{let t;for(const n in e)(n==="class"||n==="style"||Us(n))&&((t||(t={}))[n]=e[n]);return t},Kv=(e,t)=>{const n={};for(const r in e)(!ka(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Vv(e,t,n){const{props:r,children:o,component:s}=e,{props:l,children:a,patchFlag:i}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return r?Yi(r,l,u):!!l;if(i&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function Yv(e,t){t&&t.pendingBranch?fe(e)?t.effects.push(...e):t.effects.push(e):Dv(e)}function it(e,t){if(nt){let n=nt.provides;const r=nt.parent&&nt.parent.provides;r===n&&(n=nt.provides=Object.create(r)),n[e]=t}}function Te(e,t,n=!1){const r=nt||ft;if(r){const o=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&be(t)?t.call(r.proxy):t}}function zn(e,t){return Ua(e,null,t)}const Qo={};function de(e,t,n){return Ua(e,t,n)}function Ua(e,t,{immediate:n,deep:r,flush:o,onTrack:s,onTrigger:l}=Ge){const a=_f()===(nt==null?void 0:nt.scope)?nt:null;let i,u=!1,c=!1;if(Ve(e)?(i=()=>e.value,u=Os(e)):Rr(e)?(i=()=>e,r=!0):fe(e)?(c=!0,u=e.some(S=>Rr(S)||Os(S)),i=()=>e.map(S=>{if(Ve(S))return S.value;if(Rr(S))return ar(S);if(be(S))return Dn(S,a,2)})):be(e)?t?i=()=>Dn(e,a,2):i=()=>{if(!(a&&a.isUnmounted))return f&&f(),Nt(e,a,3,[d])}:i=at,t&&r){const S=i;i=()=>ar(S())}let f,d=S=>{f=m.onStop=()=>{Dn(S,a,4)}},h;if(Mo)if(d=at,t?n&&Nt(t,a,3,[i(),c?[]:void 0,d]):i(),o==="sync"){const S=Dm();h=S.__watcherHandles||(S.__watcherHandles=[])}else return at;let p=c?new Array(e.length).fill(Qo):Qo;const v=()=>{if(m.active)if(t){const S=m.run();(r||u||(c?S.some((g,E)=>xo(g,p[E])):xo(S,p)))&&(f&&f(),Nt(t,a,3,[S,p===Qo?void 0:c&&p[0]===Qo?[]:p,d]),p=S)}else m.run()};v.allowRecurse=!!t;let b;o==="sync"?b=v:o==="post"?b=()=>wt(v,a&&a.suspense):(v.pre=!0,a&&(v.id=a.uid),b=()=>Va(v));const m=new Fa(i,b);t?n?v():p=m.run():o==="post"?wt(m.run.bind(m),a&&a.suspense):m.run();const w=()=>{m.stop(),a&&a.scope&&Ia(a.scope.effects,m)};return h&&h.push(w),w}function Gv(e,t,n){const r=this.proxy,o=xe(e)?e.includes(".")?Yf(r,e):()=>r[e]:e.bind(r,r);let s;be(t)?s=t:(s=t.handler,n=t);const l=nt;Nr(this);const a=Ua(o,s.bind(r),n);return l?Nr(l):hr(),a}function Yf(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{ar(n,t)});else if(wf(e))for(const n in e)ar(e[n],t);return e}function Xv(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Je(()=>{e.isMounted=!0}),mt(()=>{e.isUnmounting=!0}),e}const It=[Function,Array],Jv={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:It,onEnter:It,onAfterEnter:It,onEnterCancelled:It,onBeforeLeave:It,onLeave:It,onAfterLeave:It,onLeaveCancelled:It,onBeforeAppear:It,onAppear:It,onAfterAppear:It,onAppearCancelled:It},setup(e,{slots:t}){const n=We(),r=Xv();let o;return()=>{const s=t.default&&Jf(t.default(),!0);if(!s||!s.length)return;let l=s[0];if(s.length>1){for(const v of s)if(v.type!==_t){l=v;break}}const a=Ie(e),{mode:i}=a;if(r.isLeaving)return _l(l);const u=Gi(l);if(!u)return _l(l);const c=Ul(u,a,r,n);ql(u,c);const f=n.subTree,d=f&&Gi(f);let h=!1;const{getTransitionKey:p}=u.type;if(p){const v=p();o===void 0?o=v:v!==o&&(o=v,h=!0)}if(d&&d.type!==_t&&(!or(u,d)||h)){const v=Ul(d,a,r,n);if(ql(d,v),i==="out-in")return r.isLeaving=!0,v.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},_l(l);i==="in-out"&&u.type!==_t&&(v.delayLeave=(b,m,w)=>{const S=Xf(r,d);S[String(d.key)]=d,b._leaveCb=()=>{m(),b._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=w})}return l}}},Gf=Jv;function Xf(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ul(e,t,n,r){const{appear:o,mode:s,persisted:l=!1,onBeforeEnter:a,onEnter:i,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:p,onBeforeAppear:v,onAppear:b,onAfterAppear:m,onAppearCancelled:w}=t,S=String(e.key),g=Xf(n,e),E=(x,k)=>{x&&Nt(x,r,9,k)},O=(x,k)=>{const M=k[1];E(x,k),fe(x)?x.every(F=>F.length<=1)&&M():x.length<=1&&M()},C={mode:s,persisted:l,beforeEnter(x){let k=a;if(!n.isMounted)if(o)k=v||a;else return;x._leaveCb&&x._leaveCb(!0);const M=g[S];M&&or(e,M)&&M.el._leaveCb&&M.el._leaveCb(),E(k,[x])},enter(x){let k=i,M=u,F=c;if(!n.isMounted)if(o)k=b||i,M=m||u,F=w||c;else return;let A=!1;const D=x._enterCb=Q=>{A||(A=!0,Q?E(F,[x]):E(M,[x]),C.delayedLeave&&C.delayedLeave(),x._enterCb=void 0)};k?O(k,[x,D]):D()},leave(x,k){const M=String(e.key);if(x._enterCb&&x._enterCb(!0),n.isUnmounting)return k();E(f,[x]);let F=!1;const A=x._leaveCb=D=>{F||(F=!0,k(),D?E(p,[x]):E(h,[x]),x._leaveCb=void 0,g[M]===e&&delete g[M])};g[M]=e,d?O(d,[x,A]):A()},clone(x){return Ul(x,t,n,r)}};return C}function _l(e){if(Qs(e))return e=wn(e),e.children=null,e}function Gi(e){return Qs(e)?e.children?e.children[0]:void 0:e}function ql(e,t){e.shapeFlag&6&&e.component?ql(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Jf(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader,Qs=e=>e.type.__isKeepAlive;function Zv(e,t){Qf(e,"a",t)}function Zf(e,t){Qf(e,"da",t)}function Qf(e,t,n=nt){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(el(t,r,n),n){let o=n.parent;for(;o&&o.parent;)Qs(o.parent.vnode)&&Qv(r,t,n,o),o=o.parent}}function Qv(e,t,n,r){const o=el(t,e,r,!0);Zr(()=>{Ia(r[t],o)},n)}function el(e,t,n=nt,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;Xr(),Nr(n);const a=Nt(t,n,e,l);return hr(),Jr(),a});return r?o.unshift(s):o.push(s),s}}const Cn=e=>(t,n=nt)=>(!Mo||e==="sp")&&el(e,(...r)=>t(...r),n),tl=Cn("bm"),Je=Cn("m"),em=Cn("bu"),qa=Cn("u"),mt=Cn("bum"),Zr=Cn("um"),tm=Cn("sp"),nm=Cn("rtg"),rm=Cn("rtc");function om(e,t=nt){el("ec",e,t)}function ut(e,t){const n=ft;if(n===null)return e;const r=rl(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let s=0;st(l,a,void 0,s&&s[a]));else{const l=Object.keys(e);o=new Array(l.length);for(let a=0,i=l.length;aln(t)?!(t.type===_t||t.type===Ue&&!nd(t.children)):!0)?e:null}function lm(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:ds(r)]=e[r];return n}const Yl=e=>e?pd(e)?rl(e)||e.proxy:Yl(e.parent):null,ho=pt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Yl(e.parent),$root:e=>Yl(e.root),$emit:e=>e.emit,$options:e=>Xa(e),$forceUpdate:e=>e.f||(e.f=()=>Va(e.update)),$nextTick:e=>e.n||(e.n=Ke.bind(e.proxy)),$watch:e=>Gv.bind(e)}),Cl=(e,t)=>e!==Ge&&!e.__isScriptSetup&&$e(e,t),am={get({_:e},t){const{ctx:n,setupState:r,data:o,props:s,accessCache:l,type:a,appContext:i}=e;let u;if(t[0]!=="$"){const h=l[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(Cl(r,t))return l[t]=1,r[t];if(o!==Ge&&$e(o,t))return l[t]=2,o[t];if((u=e.propsOptions[0])&&$e(u,t))return l[t]=3,s[t];if(n!==Ge&&$e(n,t))return l[t]=4,n[t];Gl&&(l[t]=0)}}const c=ho[t];let f,d;if(c)return t==="$attrs"&&xt(e,"get",t),c(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==Ge&&$e(n,t))return l[t]=4,n[t];if(d=i.config.globalProperties,$e(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return Cl(o,t)?(o[t]=n,!0):r!==Ge&&$e(r,t)?(r[t]=n,!0):$e(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},l){let a;return!!n[l]||e!==Ge&&$e(e,l)||Cl(t,l)||(a=s[0])&&$e(a,l)||$e(r,l)||$e(ho,l)||$e(o.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:$e(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Gl=!0;function im(e){const t=Xa(e),n=e.proxy,r=e.ctx;Gl=!1,t.beforeCreate&&Zi(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:l,watch:a,provide:i,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:p,activated:v,deactivated:b,beforeDestroy:m,beforeUnmount:w,destroyed:S,unmounted:g,render:E,renderTracked:O,renderTriggered:C,errorCaptured:x,serverPrefetch:k,expose:M,inheritAttrs:F,components:A,directives:D,filters:Q}=t;if(u&&um(u,r,null,e.appContext.config.unwrapInjectedRef),l)for(const se in l){const j=l[se];be(j)&&(r[se]=j.bind(n))}if(o){const se=o.call(n,n);Pe(se)&&(e.data=Xt(se))}if(Gl=!0,s)for(const se in s){const j=s[se],R=be(j)?j.bind(n,n):be(j.get)?j.get.bind(n,n):at,te=!be(j)&&be(j.set)?j.set.bind(n):at,he=$({get:R,set:te});Object.defineProperty(r,se,{enumerable:!0,configurable:!0,get:()=>he.value,set:Ee=>he.value=Ee})}if(a)for(const se in a)rd(a[se],r,n,se);if(i){const se=be(i)?i.call(n):i;Reflect.ownKeys(se).forEach(j=>{it(j,se[j])})}c&&Zi(c,e,"c");function Z(se,j){fe(j)?j.forEach(R=>se(R.bind(n))):j&&se(j.bind(n))}if(Z(tl,f),Z(Je,d),Z(em,h),Z(qa,p),Z(Zv,v),Z(Zf,b),Z(om,x),Z(rm,O),Z(nm,C),Z(mt,w),Z(Zr,g),Z(tm,k),fe(M))if(M.length){const se=e.exposed||(e.exposed={});M.forEach(j=>{Object.defineProperty(se,j,{get:()=>n[j],set:R=>n[j]=R})})}else e.exposed||(e.exposed={});E&&e.render===at&&(e.render=E),F!=null&&(e.inheritAttrs=F),A&&(e.components=A),D&&(e.directives=D)}function um(e,t,n=at,r=!1){fe(e)&&(e=Xl(e));for(const o in e){const s=e[o];let l;Pe(s)?"default"in s?l=Te(s.from||o,s.default,!0):l=Te(s.from||o):l=Te(s),Ve(l)&&r?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>l.value,set:a=>l.value=a}):t[o]=l}}function Zi(e,t,n){Nt(fe(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function rd(e,t,n,r){const o=r.includes(".")?Yf(n,r):()=>n[r];if(xe(e)){const s=t[e];be(s)&&de(o,s)}else if(be(e))de(o,e.bind(n));else if(Pe(e))if(fe(e))e.forEach(s=>rd(s,t,n,r));else{const s=be(e.handler)?e.handler.bind(n):t[e.handler];be(s)&&de(o,s,e)}}function Xa(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:l}}=e.appContext,a=s.get(t);let i;return a?i=a:!o.length&&!n&&!r?i=t:(i={},o.length&&o.forEach(u=>As(i,u,l,!0)),As(i,t,l)),Pe(t)&&s.set(t,i),i}function As(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&As(e,s,n,!0),o&&o.forEach(l=>As(e,l,n,!0));for(const l in t)if(!(r&&l==="expose")){const a=cm[l]||n&&n[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const cm={data:Qi,props:er,emits:er,methods:er,computed:er,beforeCreate:gt,created:gt,beforeMount:gt,mounted:gt,beforeUpdate:gt,updated:gt,beforeDestroy:gt,beforeUnmount:gt,destroyed:gt,unmounted:gt,activated:gt,deactivated:gt,errorCaptured:gt,serverPrefetch:gt,components:er,directives:er,watch:dm,provide:Qi,inject:fm};function Qi(e,t){return t?e?function(){return pt(be(e)?e.call(this,this):e,be(t)?t.call(this,this):t)}:t:e}function fm(e,t){return er(Xl(e),Xl(t))}function Xl(e){if(fe(e)){const t={};for(let n=0;n0)&&!(l&16)){if(l&8){const c=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[d,h]=sd(f,t,!0);pt(l,d),h&&a.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!i)return Pe(e)&&r.set(e,Mr),Mr;if(fe(s))for(let c=0;c-1,h[1]=v<0||p-1||$e(h,"default"))&&a.push(f)}}}const u=[l,a];return Pe(e)&&r.set(e,u),u}function eu(e){return e[0]!=="$"}function tu(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function nu(e,t){return tu(e)===tu(t)}function ru(e,t){return fe(t)?t.findIndex(n=>nu(n,e)):be(t)&&nu(t,e)?0:-1}const ld=e=>e[0]==="_"||e==="$stable",Ja=e=>fe(e)?e.map(en):[en(e)],vm=(e,t,n)=>{if(t._n)return t;const r=ce((...o)=>Ja(t(...o)),n);return r._c=!1,r},ad=(e,t,n)=>{const r=e._ctx;for(const o in e){if(ld(o))continue;const s=e[o];if(be(s))t[o]=vm(o,s,r);else if(s!=null){const l=Ja(s);t[o]=()=>l}}},id=(e,t)=>{const n=Ja(t);e.slots.default=()=>n},mm=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Ie(t),xs(t,"_",n)):ad(t,e.slots={})}else e.slots={},t&&id(e,t);xs(e.slots,nl,1)},gm=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,l=Ge;if(r.shapeFlag&32){const a=t._;a?n&&a===1?s=!1:(pt(o,t),!n&&a===1&&delete o._):(s=!t.$stable,ad(t,o)),l=t}else t&&(id(e,t),l={default:1});if(s)for(const a in o)!ld(a)&&!(a in l)&&delete o[a]};function ud(){return{app:null,config:{isNativeTag:Yh,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ym=0;function bm(e,t){return function(r,o=null){be(r)||(r=Object.assign({},r)),o!=null&&!Pe(o)&&(o=null);const s=ud(),l=new Set;let a=!1;const i=s.app={_uid:ym++,_component:r,_props:o,_container:null,_context:s,_instance:null,version:zm,get config(){return s.config},set config(u){},use(u,...c){return l.has(u)||(u&&be(u.install)?(l.add(u),u.install(i,...c)):be(u)&&(l.add(u),u(i,...c))),i},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),i},component(u,c){return c?(s.components[u]=c,i):s.components[u]},directive(u,c){return c?(s.directives[u]=c,i):s.directives[u]},mount(u,c,f){if(!a){const d=ie(r,o);return d.appContext=s,c&&t?t(d,u):e(d,u,f),a=!0,i._container=u,u.__vue_app__=i,rl(d.component)||d.component.proxy}},unmount(){a&&(e(null,i._container),delete i._container.__vue_app__)},provide(u,c){return s.provides[u]=c,i}};return i}}function Zl(e,t,n,r,o=!1){if(fe(e)){e.forEach((d,h)=>Zl(d,t&&(fe(t)?t[h]:t),n,r,o));return}if(po(r)&&!o)return;const s=r.shapeFlag&4?rl(r.component)||r.component.proxy:r.el,l=o?null:s,{i:a,r:i}=e,u=t&&t.r,c=a.refs===Ge?a.refs={}:a.refs,f=a.setupState;if(u!=null&&u!==i&&(xe(u)?(c[u]=null,$e(f,u)&&(f[u]=null)):Ve(u)&&(u.value=null)),be(i))Dn(i,a,12,[l,c]);else{const d=xe(i),h=Ve(i);if(d||h){const p=()=>{if(e.f){const v=d?$e(f,i)?f[i]:c[i]:i.value;o?fe(v)&&Ia(v,s):fe(v)?v.includes(s)||v.push(s):d?(c[i]=[s],$e(f,i)&&(f[i]=c[i])):(i.value=[s],e.k&&(c[e.k]=i.value))}else d?(c[i]=l,$e(f,i)&&(f[i]=l)):h&&(i.value=l,e.k&&(c[e.k]=l))};l?(p.id=-1,wt(p,n)):p()}}}const wt=Yv;function wm(e){return _m(e)}function _m(e,t){const n=nv();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:l,createText:a,createComment:i,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=at,insertStaticContent:p}=e,v=(_,T,N,H=null,z=null,X=null,ne=!1,Y=null,J=!!T.dynamicChildren)=>{if(_===T)return;_&&!or(_,T)&&(H=U(_),Ee(_,z,X,!0),_=null),T.patchFlag===-2&&(J=!1,T.dynamicChildren=null);const{type:W,ref:I,shapeFlag:G}=T;switch(W){case Qr:b(_,T,N,H);break;case _t:m(_,T,N,H);break;case El:_==null&&w(T,N,H,ne);break;case Ue:A(_,T,N,H,z,X,ne,Y,J);break;default:G&1?E(_,T,N,H,z,X,ne,Y,J):G&6?D(_,T,N,H,z,X,ne,Y,J):(G&64||G&128)&&W.process(_,T,N,H,z,X,ne,Y,J,we)}I!=null&&z&&Zl(I,_&&_.ref,X,T||_,!T)},b=(_,T,N,H)=>{if(_==null)r(T.el=a(T.children),N,H);else{const z=T.el=_.el;T.children!==_.children&&u(z,T.children)}},m=(_,T,N,H)=>{_==null?r(T.el=i(T.children||""),N,H):T.el=_.el},w=(_,T,N,H)=>{[_.el,_.anchor]=p(_.children,T,N,H,_.el,_.anchor)},S=({el:_,anchor:T},N,H)=>{let z;for(;_&&_!==T;)z=d(_),r(_,N,H),_=z;r(T,N,H)},g=({el:_,anchor:T})=>{let N;for(;_&&_!==T;)N=d(_),o(_),_=N;o(T)},E=(_,T,N,H,z,X,ne,Y,J)=>{ne=ne||T.type==="svg",_==null?O(T,N,H,z,X,ne,Y,J):k(_,T,z,X,ne,Y,J)},O=(_,T,N,H,z,X,ne,Y)=>{let J,W;const{type:I,props:G,shapeFlag:ae,transition:ge,dirs:Ae}=_;if(J=_.el=l(_.type,X,G&&G.is,G),ae&8?c(J,_.children):ae&16&&x(_.children,J,null,H,z,X&&I!=="foreignObject",ne,Y),Ae&&Gn(_,null,H,"created"),C(J,_,_.scopeId,ne,H),G){for(const Fe in G)Fe!=="value"&&!fs(Fe)&&s(J,Fe,null,G[Fe],X,_.children,H,z,q);"value"in G&&s(J,"value",null,G.value),(W=G.onVnodeBeforeMount)&&Qt(W,H,_)}Ae&&Gn(_,null,H,"beforeMount");const Be=(!z||z&&!z.pendingBranch)&&ge&&!ge.persisted;Be&&ge.beforeEnter(J),r(J,T,N),((W=G&&G.onVnodeMounted)||Be||Ae)&&wt(()=>{W&&Qt(W,H,_),Be&&ge.enter(J),Ae&&Gn(_,null,H,"mounted")},z)},C=(_,T,N,H,z)=>{if(N&&h(_,N),H)for(let X=0;X{for(let W=J;W<_.length;W++){const I=_[W]=Y?In(_[W]):en(_[W]);v(null,I,T,N,H,z,X,ne,Y)}},k=(_,T,N,H,z,X,ne)=>{const Y=T.el=_.el;let{patchFlag:J,dynamicChildren:W,dirs:I}=T;J|=_.patchFlag&16;const G=_.props||Ge,ae=T.props||Ge;let ge;N&&Xn(N,!1),(ge=ae.onVnodeBeforeUpdate)&&Qt(ge,N,T,_),I&&Gn(T,_,N,"beforeUpdate"),N&&Xn(N,!0);const Ae=z&&T.type!=="foreignObject";if(W?M(_.dynamicChildren,W,Y,N,H,Ae,X):ne||j(_,T,Y,null,N,H,Ae,X,!1),J>0){if(J&16)F(Y,T,G,ae,N,H,z);else if(J&2&&G.class!==ae.class&&s(Y,"class",null,ae.class,z),J&4&&s(Y,"style",G.style,ae.style,z),J&8){const Be=T.dynamicProps;for(let Fe=0;Fe{ge&&Qt(ge,N,T,_),I&&Gn(T,_,N,"updated")},H)},M=(_,T,N,H,z,X,ne)=>{for(let Y=0;Y{if(N!==H){if(N!==Ge)for(const Y in N)!fs(Y)&&!(Y in H)&&s(_,Y,N[Y],null,ne,T.children,z,X,q);for(const Y in H){if(fs(Y))continue;const J=H[Y],W=N[Y];J!==W&&Y!=="value"&&s(_,Y,W,J,ne,T.children,z,X,q)}"value"in H&&s(_,"value",N.value,H.value)}},A=(_,T,N,H,z,X,ne,Y,J)=>{const W=T.el=_?_.el:a(""),I=T.anchor=_?_.anchor:a("");let{patchFlag:G,dynamicChildren:ae,slotScopeIds:ge}=T;ge&&(Y=Y?Y.concat(ge):ge),_==null?(r(W,N,H),r(I,N,H),x(T.children,N,I,z,X,ne,Y,J)):G>0&&G&64&&ae&&_.dynamicChildren?(M(_.dynamicChildren,ae,N,z,X,ne,Y),(T.key!=null||z&&T===z.subTree)&&Za(_,T,!0)):j(_,T,N,I,z,X,ne,Y,J)},D=(_,T,N,H,z,X,ne,Y,J)=>{T.slotScopeIds=Y,_==null?T.shapeFlag&512?z.ctx.activate(T,N,H,ne,J):Q(T,N,H,z,X,ne,J):V(_,T,J)},Q=(_,T,N,H,z,X,ne)=>{const Y=_.component=Rm(_,H,z);if(Qs(_)&&(Y.ctx.renderer=we),km(Y),Y.asyncDep){if(z&&z.registerDep(Y,Z),!_.el){const J=Y.subTree=ie(_t);m(null,J,T,N)}return}Z(Y,_,T,N,z,X,ne)},V=(_,T,N)=>{const H=T.component=_.component;if(Vv(_,T,N))if(H.asyncDep&&!H.asyncResolved){se(H,T,N);return}else H.next=T,Hv(H.update),H.update();else T.el=_.el,H.vnode=T},Z=(_,T,N,H,z,X,ne)=>{const Y=()=>{if(_.isMounted){let{next:I,bu:G,u:ae,parent:ge,vnode:Ae}=_,Be=I,Fe;Xn(_,!1),I?(I.el=Ae.el,se(_,I,ne)):I=Ae,G&&ps(G),(Fe=I.props&&I.props.onVnodeBeforeUpdate)&&Qt(Fe,ge,I,Ae),Xn(_,!0);const tt=wl(_),le=_.subTree;_.subTree=tt,v(le,tt,f(le.el),U(le),_,z,X),I.el=tt.el,Be===null&&Uv(_,tt.el),ae&&wt(ae,z),(Fe=I.props&&I.props.onVnodeUpdated)&&wt(()=>Qt(Fe,ge,I,Ae),z)}else{let I;const{el:G,props:ae}=T,{bm:ge,m:Ae,parent:Be}=_,Fe=po(T);if(Xn(_,!1),ge&&ps(ge),!Fe&&(I=ae&&ae.onVnodeBeforeMount)&&Qt(I,Be,T),Xn(_,!0),G&&_e){const tt=()=>{_.subTree=wl(_),_e(G,_.subTree,_,z,null)};Fe?T.type.__asyncLoader().then(()=>!_.isUnmounted&&tt()):tt()}else{const tt=_.subTree=wl(_);v(null,tt,N,H,_,z,X),T.el=tt.el}if(Ae&&wt(Ae,z),!Fe&&(I=ae&&ae.onVnodeMounted)){const tt=T;wt(()=>Qt(I,Be,tt),z)}(T.shapeFlag&256||Be&&po(Be.vnode)&&Be.vnode.shapeFlag&256)&&_.a&&wt(_.a,z),_.isMounted=!0,T=N=H=null}},J=_.effect=new Fa(Y,()=>Va(W),_.scope),W=_.update=()=>J.run();W.id=_.uid,Xn(_,!0),W()},se=(_,T,N)=>{T.component=_;const H=_.vnode.props;_.vnode=T,_.next=null,hm(_,T.props,H,N),gm(_,T.children,N),Xr(),qi(),Jr()},j=(_,T,N,H,z,X,ne,Y,J=!1)=>{const W=_&&_.children,I=_?_.shapeFlag:0,G=T.children,{patchFlag:ae,shapeFlag:ge}=T;if(ae>0){if(ae&128){te(W,G,N,H,z,X,ne,Y,J);return}else if(ae&256){R(W,G,N,H,z,X,ne,Y,J);return}}ge&8?(I&16&&q(W,z,X),G!==W&&c(N,G)):I&16?ge&16?te(W,G,N,H,z,X,ne,Y,J):q(W,z,X,!0):(I&8&&c(N,""),ge&16&&x(G,N,H,z,X,ne,Y,J))},R=(_,T,N,H,z,X,ne,Y,J)=>{_=_||Mr,T=T||Mr;const W=_.length,I=T.length,G=Math.min(W,I);let ae;for(ae=0;aeI?q(_,z,X,!0,!1,G):x(T,N,H,z,X,ne,Y,J,G)},te=(_,T,N,H,z,X,ne,Y,J)=>{let W=0;const I=T.length;let G=_.length-1,ae=I-1;for(;W<=G&&W<=ae;){const ge=_[W],Ae=T[W]=J?In(T[W]):en(T[W]);if(or(ge,Ae))v(ge,Ae,N,null,z,X,ne,Y,J);else break;W++}for(;W<=G&&W<=ae;){const ge=_[G],Ae=T[ae]=J?In(T[ae]):en(T[ae]);if(or(ge,Ae))v(ge,Ae,N,null,z,X,ne,Y,J);else break;G--,ae--}if(W>G){if(W<=ae){const ge=ae+1,Ae=geae)for(;W<=G;)Ee(_[W],z,X,!0),W++;else{const ge=W,Ae=W,Be=new Map;for(W=Ae;W<=ae;W++){const De=T[W]=J?In(T[W]):en(T[W]);De.key!=null&&Be.set(De.key,W)}let Fe,tt=0;const le=ae-Ae+1;let ye=!1,ke=0;const Oe=new Array(le);for(W=0;W=le){Ee(De,z,X,!0);continue}let Qe;if(De.key!=null)Qe=Be.get(De.key);else for(Fe=Ae;Fe<=ae;Fe++)if(Oe[Fe-Ae]===0&&or(De,T[Fe])){Qe=Fe;break}Qe===void 0?Ee(De,z,X,!0):(Oe[Qe-Ae]=W+1,Qe>=ke?ke=Qe:ye=!0,v(De,T[Qe],N,null,z,X,ne,Y,J),tt++)}const He=ye?Cm(Oe):Mr;for(Fe=He.length-1,W=le-1;W>=0;W--){const De=Ae+W,Qe=T[De],dn=De+1{const{el:X,type:ne,transition:Y,children:J,shapeFlag:W}=_;if(W&6){he(_.component.subTree,T,N,H);return}if(W&128){_.suspense.move(T,N,H);return}if(W&64){ne.move(_,T,N,we);return}if(ne===Ue){r(X,T,N);for(let G=0;GY.enter(X),z);else{const{leave:G,delayLeave:ae,afterLeave:ge}=Y,Ae=()=>r(X,T,N),Be=()=>{G(X,()=>{Ae(),ge&&ge()})};ae?ae(X,Ae,Be):Be()}else r(X,T,N)},Ee=(_,T,N,H=!1,z=!1)=>{const{type:X,props:ne,ref:Y,children:J,dynamicChildren:W,shapeFlag:I,patchFlag:G,dirs:ae}=_;if(Y!=null&&Zl(Y,null,N,_,!0),I&256){T.ctx.deactivate(_);return}const ge=I&1&&ae,Ae=!po(_);let Be;if(Ae&&(Be=ne&&ne.onVnodeBeforeUnmount)&&Qt(Be,T,_),I&6)L(_.component,N,H);else{if(I&128){_.suspense.unmount(N,H);return}ge&&Gn(_,null,T,"beforeUnmount"),I&64?_.type.remove(_,T,N,z,we,H):W&&(X!==Ue||G>0&&G&64)?q(W,T,N,!1,!0):(X===Ue&&G&384||!z&&I&16)&&q(J,T,N),H&&Re(_)}(Ae&&(Be=ne&&ne.onVnodeUnmounted)||ge)&&wt(()=>{Be&&Qt(Be,T,_),ge&&Gn(_,null,T,"unmounted")},N)},Re=_=>{const{type:T,el:N,anchor:H,transition:z}=_;if(T===Ue){Le(N,H);return}if(T===El){g(_);return}const X=()=>{o(N),z&&!z.persisted&&z.afterLeave&&z.afterLeave()};if(_.shapeFlag&1&&z&&!z.persisted){const{leave:ne,delayLeave:Y}=z,J=()=>ne(N,X);Y?Y(_.el,X,J):J()}else X()},Le=(_,T)=>{let N;for(;_!==T;)N=d(_),o(_),_=N;o(T)},L=(_,T,N)=>{const{bum:H,scope:z,update:X,subTree:ne,um:Y}=_;H&&ps(H),z.stop(),X&&(X.active=!1,Ee(ne,_,T,N)),Y&&wt(Y,T),wt(()=>{_.isUnmounted=!0},T),T&&T.pendingBranch&&!T.isUnmounted&&_.asyncDep&&!_.asyncResolved&&_.suspenseId===T.pendingId&&(T.deps--,T.deps===0&&T.resolve())},q=(_,T,N,H=!1,z=!1,X=0)=>{for(let ne=X;ne<_.length;ne++)Ee(_[ne],T,N,H,z)},U=_=>_.shapeFlag&6?U(_.component.subTree):_.shapeFlag&128?_.suspense.next():d(_.anchor||_.el),ee=(_,T,N)=>{_==null?T._vnode&&Ee(T._vnode,null,null,!0):v(T._vnode||null,_,T,null,null,null,N),qi(),Kf(),T._vnode=_},we={p:v,um:Ee,m:he,r:Re,mt:Q,mc:x,pc:j,pbc:M,n:U,o:e};let Ne,_e;return t&&([Ne,_e]=t(we)),{render:ee,hydrate:Ne,createApp:bm(ee,Ne)}}function Xn({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Za(e,t,n=!1){const r=e.children,o=t.children;if(fe(r)&&fe(o))for(let s=0;s>1,e[n[a]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,l=n[s-1];s-- >0;)n[s]=l,l=t[l];return n}const Em=e=>e.__isTeleport,vo=e=>e&&(e.disabled||e.disabled===""),ou=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ql=(e,t)=>{const n=e&&e.to;return xe(n)?t?t(n):null:n},Sm={__isTeleport:!0,process(e,t,n,r,o,s,l,a,i,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:p,createText:v,createComment:b}}=u,m=vo(t.props);let{shapeFlag:w,children:S,dynamicChildren:g}=t;if(e==null){const E=t.el=v(""),O=t.anchor=v("");h(E,n,r),h(O,n,r);const C=t.target=Ql(t.props,p),x=t.targetAnchor=v("");C&&(h(x,C),l=l||ou(C));const k=(M,F)=>{w&16&&c(S,M,F,o,s,l,a,i)};m?k(n,O):C&&k(C,x)}else{t.el=e.el;const E=t.anchor=e.anchor,O=t.target=e.target,C=t.targetAnchor=e.targetAnchor,x=vo(e.props),k=x?n:O,M=x?E:C;if(l=l||ou(O),g?(d(e.dynamicChildren,g,k,o,s,l,a),Za(e,t,!0)):i||f(e,t,k,M,o,s,l,a,!1),m)x||es(t,n,E,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const F=t.target=Ql(t.props,p);F&&es(t,F,null,u,0)}else x&&es(t,O,C,u,1)}cd(t)},remove(e,t,n,r,{um:o,o:{remove:s}},l){const{shapeFlag:a,children:i,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&s(c),(l||!vo(d))&&(s(u),a&16))for(let h=0;h0?Wt||Mr:null,Om(),Ao>0&&Wt&&Wt.push(e),e}function re(e,t,n,r,o,s){return fd(oe(e,t,n,r,o,s,!0))}function ve(e,t,n,r,o){return fd(ie(e,t,n,r,o,!0))}function ln(e){return e?e.__v_isVNode===!0:!1}function or(e,t){return e.type===t.type&&e.key===t.key}const nl="__vInternal",dd=({key:e})=>e??null,hs=({ref:e,ref_key:t,ref_for:n})=>e!=null?xe(e)||Ve(e)||be(e)?{i:ft,r:e,k:t,f:!!n}:e:null;function oe(e,t=null,n=null,r=0,o=null,s=e===Ue?0:1,l=!1,a=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&dd(t),ref:t&&hs(t),scopeId:qf,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:ft};return a?(Qa(i,n),s&128&&e.normalize(i)):n&&(i.shapeFlag|=xe(n)?8:16),Ao>0&&!l&&Wt&&(i.patchFlag>0||s&6)&&i.patchFlag!==32&&Wt.push(i),i}const ie=$m;function $m(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===ed)&&(e=_t),ln(e)){const a=wn(e,t,!0);return n&&Qa(a,n),Ao>0&&!s&&Wt&&(a.shapeFlag&6?Wt[Wt.indexOf(e)]=a:Wt.push(a)),a.patchFlag|=-2,a}if(Fm(e)&&(e=e.__vccOpts),t){t=Am(t);let{class:a,style:i}=t;a&&!xe(a)&&(t.class=K(a)),Pe(i)&&(If(i)&&!fe(i)&&(i=pt({},i)),t.style=et(i))}const l=xe(e)?1:qv(e)?128:Em(e)?64:Pe(e)?4:be(e)?2:0;return oe(e,t,n,r,o,l,s,!0)}function Am(e){return e?If(e)||nl in e?pt({},e):e:null}function wn(e,t,n=!1){const{props:r,ref:o,patchFlag:s,children:l}=e,a=t?nn(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&dd(a),ref:t&&t.ref?n&&o?fe(o)?o.concat(hs(t)):[o,hs(t)]:hs(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ue?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&wn(e.ssContent),ssFallback:e.ssFallback&&wn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ct(e=" ",t=0){return ie(Qr,null,e,t)}function me(e="",t=!1){return t?(B(),ve(_t,null,e)):ie(_t,null,e)}function en(e){return e==null||typeof e=="boolean"?ie(_t):fe(e)?ie(Ue,null,e.slice()):typeof e=="object"?In(e):ie(Qr,null,String(e))}function In(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:wn(e)}function Qa(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(fe(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),Qa(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(nl in t)?t._ctx=ft:o===3&&ft&&(ft.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else be(t)?(t={default:t,_ctx:ft},n=32):(t=String(t),r&64?(n=16,t=[Ct(t)]):n=8);e.children=t,e.shapeFlag|=n}function nn(...e){const t={};for(let n=0;nnt||ft,Nr=e=>{nt=e,e.scope.on()},hr=()=>{nt&&nt.scope.off(),nt=null};function pd(e){return e.vnode.shapeFlag&4}let Mo=!1;function km(e,t=!1){Mo=t;const{props:n,children:r}=e.vnode,o=pd(e);pm(e,n,o,t),mm(e,r);const s=o?Im(e,t):void 0;return Mo=!1,s}function Im(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Lf(new Proxy(e.ctx,am));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?vd(e):null;Nr(e),Xr();const s=Dn(r,e,0,[e.props,o]);if(Jr(),hr(),Ss(s)){if(s.then(hr,hr),t)return s.then(l=>{lu(e,l,t)}).catch(l=>{Js(l,e,0)});e.asyncDep=s}else lu(e,s,t)}else hd(e,t)}function lu(e,t,n){be(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Pe(t)&&(e.setupState=Hf(t)),hd(e,n)}let au;function hd(e,t,n){const r=e.type;if(!e.render){if(!t&&au&&!r.render){const o=r.template||Xa(e).template;if(o){const{isCustomElement:s,compilerOptions:l}=e.appContext.config,{delimiters:a,compilerOptions:i}=r,u=pt(pt({isCustomElement:s,delimiters:a},l),i);r.render=au(o,u)}}e.render=r.render||at}Nr(e),Xr(),im(e),Jr(),hr()}function Lm(e){return new Proxy(e.attrs,{get(t,n){return xt(e,"get","$attrs"),t[n]}})}function vd(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=Lm(e))},slots:e.slots,emit:e.emit,expose:t}}function rl(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Hf(Lf(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ho)return ho[n](e)},has(t,n){return n in t||n in ho}}))}function Nm(e,t=!0){return be(e)?e.displayName||e.name:e.name||t&&e.__name}function Fm(e){return be(e)&&"__vccOpts"in e}const $=(e,t)=>zf(e,t,Mo);function ol(){return md().slots}function Bm(){return md().attrs}function md(){const e=We();return e.setupContext||(e.setupContext=vd(e))}function pe(e,t,n){const r=arguments.length;return r===2?Pe(t)&&!fe(t)?ln(t)?ie(e,null,[t]):ie(e,t):ie(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ln(n)&&(n=[n]),ie(e,t,n))}const Hm=Symbol(""),Dm=()=>Te(Hm),zm="3.2.47",jm="http://www.w3.org/2000/svg",sr=typeof document<"u"?document:null,iu=sr&&sr.createElement("template"),Wm={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?sr.createElementNS(jm,e):sr.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>sr.createTextNode(e),createComment:e=>sr.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>sr.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const l=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{iu.innerHTML=r?`${e}`:e;const a=iu.content;if(r){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Km(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Vm(e,t,n){const r=e.style,o=xe(n);if(n&&!o){if(t&&!xe(t))for(const s in t)n[s]==null&&ea(r,s,"");for(const s in n)ea(r,s,n[s])}else{const s=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=s)}}const uu=/\s*!important$/;function ea(e,t,n){if(fe(n))n.forEach(r=>ea(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Um(e,t);uu.test(n)?e.setProperty(wr(r),n.replace(uu,""),"important"):e[r]=n}}const cu=["Webkit","Moz","ms"],Sl={};function Um(e,t){const n=Sl[t];if(n)return n;let r=Yt(t);if(r!=="filter"&&r in e)return Sl[t]=r;r=Gs(r);for(let o=0;oxl||(Zm.then(()=>xl=0),xl=Date.now());function eg(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Nt(tg(r,n.value),t,5,[r])};return n.value=e,n.attached=Qm(),n}function tg(e,t){if(fe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const pu=/^on[a-z]/,ng=(e,t,n,r,o=!1,s,l,a,i)=>{t==="class"?Km(e,r,o):t==="style"?Vm(e,n,r):Us(t)?ka(t)||Xm(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):rg(e,t,r,o))?Ym(e,t,r,s,l,a,i):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),qm(e,t,r,o))};function rg(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&pu.test(t)&&be(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||pu.test(t)&&xe(n)?!1:t in e}const On="transition",so="animation",En=(e,{slots:t})=>pe(Gf,og(e),t);En.displayName="Transition";const yd={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};En.props=pt({},Gf.props,yd);const Jn=(e,t=[])=>{fe(e)?e.forEach(n=>n(...t)):e&&e(...t)},hu=e=>e?fe(e)?e.some(t=>t.length>1):e.length>1:!1;function og(e){const t={};for(const A in e)A in yd||(t[A]=e[A]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=s,appearActiveClass:u=l,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,p=sg(o),v=p&&p[0],b=p&&p[1],{onBeforeEnter:m,onEnter:w,onEnterCancelled:S,onLeave:g,onLeaveCancelled:E,onBeforeAppear:O=m,onAppear:C=w,onAppearCancelled:x=S}=t,k=(A,D,Q)=>{Zn(A,D?c:a),Zn(A,D?u:l),Q&&Q()},M=(A,D)=>{A._isLeaving=!1,Zn(A,f),Zn(A,h),Zn(A,d),D&&D()},F=A=>(D,Q)=>{const V=A?C:w,Z=()=>k(D,A,Q);Jn(V,[D,Z]),vu(()=>{Zn(D,A?i:s),$n(D,A?c:a),hu(V)||mu(D,r,v,Z)})};return pt(t,{onBeforeEnter(A){Jn(m,[A]),$n(A,s),$n(A,l)},onBeforeAppear(A){Jn(O,[A]),$n(A,i),$n(A,u)},onEnter:F(!1),onAppear:F(!0),onLeave(A,D){A._isLeaving=!0;const Q=()=>M(A,D);$n(A,f),ig(),$n(A,d),vu(()=>{A._isLeaving&&(Zn(A,f),$n(A,h),hu(g)||mu(A,r,b,Q))}),Jn(g,[A,Q])},onEnterCancelled(A){k(A,!1),Jn(S,[A])},onAppearCancelled(A){k(A,!0),Jn(x,[A])},onLeaveCancelled(A){M(A),Jn(E,[A])}})}function sg(e){if(e==null)return null;if(Pe(e))return[Tl(e.enter),Tl(e.leave)];{const t=Tl(e);return[t,t]}}function Tl(e){return tv(e)}function $n(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Zn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function vu(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let lg=0;function mu(e,t,n,r){const o=e._endId=++lg,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:l,timeout:a,propCount:i}=ag(e,t);if(!l)return r();const u=l+"end";let c=0;const f=()=>{e.removeEventListener(u,d),s()},d=h=>{h.target===e&&++c>=i&&f()};setTimeout(()=>{c(n[p]||"").split(", "),o=r(`${On}Delay`),s=r(`${On}Duration`),l=gu(o,s),a=r(`${so}Delay`),i=r(`${so}Duration`),u=gu(a,i);let c=null,f=0,d=0;t===On?l>0&&(c=On,f=l,d=s.length):t===so?u>0&&(c=so,f=u,d=i.length):(f=Math.max(l,u),c=f>0?l>u?On:so:null,d=c?c===On?s.length:i.length:0);const h=c===On&&/\b(transform|all)(,|$)/.test(r(`${On}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function gu(e,t){for(;e.lengthyu(n)+yu(e[r])))}function yu(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function ig(){return document.body.offsetHeight}const bu=e=>{const t=e.props["onUpdate:modelValue"]||!1;return fe(t)?n=>ps(t,n):t},Ms={deep:!0,created(e,t,n){e._assign=bu(n),gd(e,"change",()=>{const r=e._modelValue,o=ug(e),s=e.checked,l=e._assign;if(fe(r)){const a=gf(r,o),i=a!==-1;if(s&&!i)l(r.concat(o));else if(!s&&i){const u=[...r];u.splice(a,1),l(u)}}else if(qs(r)){const a=new Set(r);s?a.add(o):a.delete(o),l(a)}else l(bd(e,s))})},mounted:wu,beforeUpdate(e,t,n){e._assign=bu(n),wu(e,t,n)}};function wu(e,{value:t,oldValue:n},r){e._modelValue=t,fe(t)?e.checked=gf(t,r.props.value)>-1:qs(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=Vs(t,bd(e,!0)))}function ug(e){return"_value"in e?e._value:e.value}function bd(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const cg=["ctrl","shift","alt","meta"],fg={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>cg.some(n=>e[`${n}Key`]&&!t.includes(n))},ir=(e,t)=>(n,...r)=>{for(let o=0;on=>{if(!("key"in n))return;const r=wr(n.key);if(t.some(o=>o===r||dg[o]===r))return e(n)},Ut={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):lo(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),lo(e,!0),r.enter(e)):r.leave(e,()=>{lo(e,!1)}):lo(e,t))},beforeUnmount(e,{value:t}){lo(e,t)}};function lo(e,t){e.style.display=t?e._vod:"none"}const pg=pt({patchProp:ng},Wm);let _u;function wd(){return _u||(_u=wm(pg))}const Ps=(...e)=>{wd().render(...e)},hg=(...e)=>{const t=wd().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=vg(r);if(!o)return;const s=t._component;!be(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.innerHTML="";const l=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t};function vg(e){return xe(e)?document.querySelector(e):e}var mg=typeof global=="object"&&global&&global.Object===Object&&global;const _d=mg;var gg=typeof self=="object"&&self&&self.Object===Object&&self,yg=_d||gg||Function("return this")();const Jt=yg;var bg=Jt.Symbol;const an=bg;var Cd=Object.prototype,wg=Cd.hasOwnProperty,_g=Cd.toString,ao=an?an.toStringTag:void 0;function Cg(e){var t=wg.call(e,ao),n=e[ao];try{e[ao]=void 0;var r=!0}catch{}var o=_g.call(e);return r&&(t?e[ao]=n:delete e[ao]),o}var Eg=Object.prototype,Sg=Eg.toString;function xg(e){return Sg.call(e)}var Tg="[object Null]",Og="[object Undefined]",Cu=an?an.toStringTag:void 0;function _r(e){return e==null?e===void 0?Og:Tg:Cu&&Cu in Object(e)?Cg(e):xg(e)}function Wn(e){return e!=null&&typeof e=="object"}var $g="[object Symbol]";function sl(e){return typeof e=="symbol"||Wn(e)&&_r(e)==$g}function Ed(e,t){for(var n=-1,r=e==null?0:e.length,o=Array(r);++n0){if(++t>=ay)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function fy(e){return function(){return e}}var dy=function(){try{var e=Er(Object,"defineProperty");return e({},"",{}),e}catch{}}();const Rs=dy;var py=Rs?function(e,t){return Rs(e,"toString",{configurable:!0,enumerable:!1,value:fy(t),writable:!0})}:ei;const hy=py;var vy=cy(hy);const xd=vy;var my=9007199254740991,gy=/^(?:0|[1-9]\d*)$/;function ll(e,t){var n=typeof e;return t=t??my,!!t&&(n=="number"||n!="symbol"&&gy.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=Cy}function eo(e){return e!=null&&ri(e.length)&&!ti(e)}function Ey(e,t,n){if(!Rt(n))return!1;var r=typeof t;return(r=="number"?eo(n)&&ll(t,n.length):r=="string"&&t in n)?jo(n[t],e):!1}function Sy(e){return _y(function(t,n){var r=-1,o=n.length,s=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(s=e.length>3&&typeof s=="function"?(o--,s):void 0,l&&Ey(n[0],n[1],l)&&(s=o<3?void 0:s,o=1),t=Object(t);++r-1}function zb(e,t){var n=this.__data__,r=al(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Sn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(a)?t>1?ci(a,t-1,n,r,o):Id(o,a):r||(o[o.length]=a)}return o}function s0(e){var t=e==null?0:e.length;return t?ci(e,1):[]}function l0(e){return xd(Od(e,void 0,s0),e+"")}var a0=Rd(Object.getPrototypeOf,Object);const Ld=a0;var i0="[object Object]",u0=Function.prototype,c0=Object.prototype,Nd=u0.toString,f0=c0.hasOwnProperty,d0=Nd.call(Object);function p0(e){if(!Wn(e)||_r(e)!=i0)return!1;var t=Ld(e);if(t===null)return!0;var n=f0.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Nd.call(n)==d0}function h0(){this.__data__=new Sn,this.size=0}function v0(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function m0(e){return this.__data__.get(e)}function g0(e){return this.__data__.has(e)}var y0=200;function b0(e,t){var n=this.__data__;if(n instanceof Sn){var r=n.__data__;if(!ko||r.lengtha))return!1;var u=s.get(e),c=s.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=n&Y0?new Ls:void 0;for(s.set(e,t),s.set(t,e);++f=t||C<0||f&&x>=s}function m(){var O=Ml();if(b(O))return w(O);a=setTimeout(m,v(O))}function w(O){return a=void 0,d&&r?h(O):(r=o=void 0,l)}function S(){a!==void 0&&clearTimeout(a),u=0,r=i=o=a=void 0}function g(){return a===void 0?l:w(Ml())}function E(){var O=Ml(),C=b(O);if(r=arguments,o=this,i=O,C){if(a===void 0)return p(i);if(f)return clearTimeout(a),a=setTimeout(m,t),h(i)}return a===void 0&&(a=setTimeout(m,t)),l}return E.cancel=S,E.flush=g,E}function sa(e,t,n){(n!==void 0&&!jo(e[t],n)||n===void 0&&!(t in e))&&ni(e,t,n)}function jw(e){return Wn(e)&&eo(e)}function la(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function Ww(e){return wy(e,kd(e))}function Kw(e,t,n,r,o,s,l){var a=la(e,n),i=la(t,n),u=l.get(i);if(u){sa(e,n,u);return}var c=s?s(a,i,n+"",e,t,l):void 0,f=c===void 0;if(f){var d=Pt(i),h=!d&&ks(i),p=!d&&!h&&si(i);c=i,d||h||p?Pt(a)?c=a:jw(a)?c=ly(a):h?(f=!1,c=_0(i,!0)):p?(f=!1,c=D0(i,!0)):c=[]:p0(i)||Po(i)?(c=a,Po(a)?c=Ww(a):(!Rt(a)||ti(a))&&(c=z0(i))):f=!1}f&&(l.set(i,c),o(c,i,r,s,l),l.delete(i)),sa(e,n,c)}function Wd(e,t,n,r,o){e!==t&&jd(t,function(s,l){if(o||(o=new rn),Rt(s))Kw(e,t,l,n,Wd,r,o);else{var a=r?r(la(e,l),s,l+"",e,t,o):void 0;a===void 0&&(a=s),sa(e,l,a)}},kd)}function Vw(e,t){var n=-1,r=eo(e)?Array(e.length):[];return Fw(e,function(o,s,l){r[++n]=t(o,s,l)}),r}function Uw(e,t){var n=Pt(e)?Ed:Vw;return n(e,Pw(t))}function qw(e,t){return ci(Uw(e,t),1)}function Fs(e){for(var t=-1,n=e==null?0:e.length,r={};++tgetComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,Ju=e=>Array.from(e.querySelectorAll(n1)).filter(t=>o1(t)&&r1(t)),o1=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},vs=function(e,t,...n){let r;t.includes("mouse")||t.includes("click")?r="MouseEvents":t.includes("key")?r="KeyboardEvent":r="HTMLEvents";const o=document.createEvent(r);return o.initEvent(t,...n),e.dispatchEvent(o),e},yn=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const s=e==null?void 0:e(o);if(n===!1||!s)return t==null?void 0:t(o)};var Zu;const Xe=typeof window<"u",on=e=>typeof e=="boolean",s1=e=>typeof e=="function",lt=e=>typeof e=="number",l1=e=>typeof e=="string",Ud=()=>{},a1=Xe&&((Zu=window==null?void 0:window.navigator)==null?void 0:Zu.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Fr(e){return typeof e=="function"?e():y(e)}function i1(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const qd=e=>e();function u1(e=qd){const t=P(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:zo(t),pause:n,resume:r,eventFilter:o}}function c1(e){return e}function Ko(e){return _f()?(Cf(e),!0):!1}function f1(e){return typeof e=="function"?$(e):P(e)}function Yd(e,t=!0){We()?Je(e):t?e():Ke(e)}function aa(e,t,n={}){const{immediate:r=!0}=n,o=P(!1);let s=null;function l(){s&&(clearTimeout(s),s=null)}function a(){o.value=!1,l()}function i(...u){l(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...u)},Fr(t))}return r&&(o.value=!0,Xe&&i()),Ko(a),{isPending:zo(o),start:i,stop:a}}function d1(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=Ve(e),s=P(e);function l(a){if(arguments.length)return s.value=a,s.value;{const i=Fr(n);return s.value=s.value===i?Fr(r):i,s.value}}return o?l:[s,l]}var Qu=Object.getOwnPropertySymbols,p1=Object.prototype.hasOwnProperty,h1=Object.prototype.propertyIsEnumerable,v1=(e,t)=>{var n={};for(var r in e)p1.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Qu)for(var r of Qu(e))t.indexOf(r)<0&&h1.call(e,r)&&(n[r]=e[r]);return n};function m1(e,t,n={}){const r=n,{eventFilter:o=qd}=r,s=v1(r,["eventFilter"]);return de(e,i1(o,t),s)}var g1=Object.defineProperty,y1=Object.defineProperties,b1=Object.getOwnPropertyDescriptors,Bs=Object.getOwnPropertySymbols,Gd=Object.prototype.hasOwnProperty,Xd=Object.prototype.propertyIsEnumerable,ec=(e,t,n)=>t in e?g1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w1=(e,t)=>{for(var n in t||(t={}))Gd.call(t,n)&&ec(e,n,t[n]);if(Bs)for(var n of Bs(t))Xd.call(t,n)&&ec(e,n,t[n]);return e},_1=(e,t)=>y1(e,b1(t)),C1=(e,t)=>{var n={};for(var r in e)Gd.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Bs)for(var r of Bs(e))t.indexOf(r)<0&&Xd.call(e,r)&&(n[r]=e[r]);return n};function E1(e,t,n={}){const r=n,{eventFilter:o}=r,s=C1(r,["eventFilter"]),{eventFilter:l,pause:a,resume:i,isActive:u}=u1(o);return{stop:m1(e,t,_1(w1({},s),{eventFilter:l})),pause:a,resume:i,isActive:u}}function Fn(e){var t;const n=Fr(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Kn=Xe?window:void 0;function qt(...e){let t,n,r,o;if(l1(e[0])||Array.isArray(e[0])?([n,r,o]=e,t=Kn):[t,n,r,o]=e,!t)return Ud;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],l=()=>{s.forEach(c=>c()),s.length=0},a=(c,f,d,h)=>(c.addEventListener(f,d,h),()=>c.removeEventListener(f,d,h)),i=de(()=>[Fn(t),Fr(o)],([c,f])=>{l(),c&&s.push(...n.flatMap(d=>r.map(h=>a(c,d,h,f))))},{immediate:!0,flush:"post"}),u=()=>{i(),l()};return Ko(u),u}let tc=!1;function S1(e,t,n={}){const{window:r=Kn,ignore:o=[],capture:s=!0,detectIframe:l=!1}=n;if(!r)return;a1&&!tc&&(tc=!0,Array.from(r.document.body.children).forEach(d=>d.addEventListener("click",Ud)));let a=!0;const i=d=>o.some(h=>{if(typeof h=="string")return Array.from(r.document.querySelectorAll(h)).some(p=>p===d.target||d.composedPath().includes(p));{const p=Fn(h);return p&&(d.target===p||d.composedPath().includes(p))}}),c=[qt(r,"click",d=>{const h=Fn(e);if(!(!h||h===d.target||d.composedPath().includes(h))){if(d.detail===0&&(a=!i(d)),!a){a=!0;return}t(d)}},{passive:!0,capture:s}),qt(r,"pointerdown",d=>{const h=Fn(e);h&&(a=!d.composedPath().includes(h)&&!i(d))},{passive:!0}),l&&qt(r,"blur",d=>{var h;const p=Fn(e);((h=r.document.activeElement)==null?void 0:h.tagName)==="IFRAME"&&!(p!=null&&p.contains(r.document.activeElement))&&t(d)})].filter(Boolean);return()=>c.forEach(d=>d())}function Jd(e,t=!1){const n=P(),r=()=>n.value=Boolean(e());return r(),Yd(r,t),n}function x1(e,t={}){const{window:n=Kn}=t,r=Jd(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=P(!1),l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",a):o.removeListener(a))},a=()=>{r.value&&(l(),o=n.matchMedia(f1(e).value),s.value=o.matches,"addEventListener"in o?o.addEventListener("change",a):o.addListener(a))};return zn(a),Ko(()=>l()),s}const ia=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ua="__vueuse_ssr_handlers__";ia[ua]=ia[ua]||{};const T1=ia[ua];function Zd(e,t){return T1[e]||t}function O1(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var $1=Object.defineProperty,nc=Object.getOwnPropertySymbols,A1=Object.prototype.hasOwnProperty,M1=Object.prototype.propertyIsEnumerable,rc=(e,t,n)=>t in e?$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))A1.call(t,n)&&rc(e,n,t[n]);if(nc)for(var n of nc(t))M1.call(t,n)&&rc(e,n,t[n]);return e};const P1={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},sc="vueuse-storage";function R1(e,t,n,r={}){var o;const{flush:s="pre",deep:l=!0,listenToStorageChanges:a=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:f=Kn,eventFilter:d,onError:h=x=>{console.error(x)}}=r,p=(c?kr:P)(t);if(!n)try{n=Zd("getDefaultStorage",()=>{var x;return(x=Kn)==null?void 0:x.localStorage})()}catch(x){h(x)}if(!n)return p;const v=Fr(t),b=O1(v),m=(o=r.serializer)!=null?o:P1[b],{pause:w,resume:S}=E1(p,()=>g(p.value),{flush:s,deep:l,eventFilter:d});return f&&a&&(qt(f,"storage",C),qt(f,sc,O)),C(),p;function g(x){try{if(x==null)n.removeItem(e);else{const k=m.write(x),M=n.getItem(e);M!==k&&(n.setItem(e,k),f&&f.dispatchEvent(new CustomEvent(sc,{detail:{key:e,oldValue:M,newValue:k,storageArea:n}})))}}catch(k){h(k)}}function E(x){const k=x?x.newValue:n.getItem(e);if(k==null)return i&&v!==null&&n.setItem(e,m.write(v)),v;if(!x&&u){const M=m.read(k);return s1(u)?u(M,v):b==="object"&&!Array.isArray(M)?oc(oc({},v),M):M}else return typeof k!="string"?k:m.read(k)}function O(x){C(x.detail)}function C(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){p.value=v;return}if(!(x&&x.key!==e)){w();try{p.value=E(x)}catch(k){h(k)}finally{x?Ke(S):S()}}}}}function Qd(e){return x1("(prefers-color-scheme: dark)",e)}var k1=Object.defineProperty,lc=Object.getOwnPropertySymbols,I1=Object.prototype.hasOwnProperty,L1=Object.prototype.propertyIsEnumerable,ac=(e,t,n)=>t in e?k1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,N1=(e,t)=>{for(var n in t||(t={}))I1.call(t,n)&&ac(e,n,t[n]);if(lc)for(var n of lc(t))L1.call(t,n)&&ac(e,n,t[n]);return e};function F1(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:o=Kn,storage:s,storageKey:l="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:i,emitAuto:u}=e,c=N1({auto:"",light:"light",dark:"dark"},e.modes||{}),f=Qd({window:o}),d=$(()=>f.value?"dark":"light"),h=i||(l==null?P(r):R1(l,r,s,{window:o,listenToStorageChanges:a})),p=$({get(){return h.value==="auto"&&!u?d.value:h.value},set(w){h.value=w}}),v=Zd("updateHTMLAttrs",(w,S,g)=>{const E=o==null?void 0:o.document.querySelector(w);if(E)if(S==="class"){const O=g.split(/\s/g);Object.values(c).flatMap(C=>(C||"").split(/\s/g)).filter(Boolean).forEach(C=>{O.includes(C)?E.classList.add(C):E.classList.remove(C)})}else E.setAttribute(S,g)});function b(w){var S;const g=w==="auto"?d.value:w;v(t,n,(S=c[g])!=null?S:g)}function m(w){e.onChanged?e.onChanged(w,b):b(w)}return de(p,m,{flush:"post",immediate:!0}),u&&de(d,()=>m(p.value),{flush:"post"}),Yd(()=>m(p.value)),p}var B1=Object.defineProperty,H1=Object.defineProperties,D1=Object.getOwnPropertyDescriptors,ic=Object.getOwnPropertySymbols,z1=Object.prototype.hasOwnProperty,j1=Object.prototype.propertyIsEnumerable,uc=(e,t,n)=>t in e?B1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,W1=(e,t)=>{for(var n in t||(t={}))z1.call(t,n)&&uc(e,n,t[n]);if(ic)for(var n of ic(t))j1.call(t,n)&&uc(e,n,t[n]);return e},K1=(e,t)=>H1(e,D1(t));function V1(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Kn}=e,o=F1(K1(W1({},e),{onChanged:(a,i)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,a==="dark"):i(a)},modes:{dark:t,light:n}})),s=Qd({window:r});return $({get(){return o.value==="dark"},set(a){a===s.value?o.value="auto":o.value=a?"dark":"light"}})}var cc=Object.getOwnPropertySymbols,U1=Object.prototype.hasOwnProperty,q1=Object.prototype.propertyIsEnumerable,Y1=(e,t)=>{var n={};for(var r in e)U1.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&cc)for(var r of cc(e))t.indexOf(r)<0&&q1.call(e,r)&&(n[r]=e[r]);return n};function Br(e,t,n={}){const r=n,{window:o=Kn}=r,s=Y1(r,["window"]);let l;const a=Jd(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},u=de(()=>Fn(e),f=>{i(),a.value&&o&&f&&(l=new ResizeObserver(t),l.observe(f,s))},{immediate:!0,flush:"post"}),c=()=>{i(),u()};return Ko(c),{isSupported:a,stop:c}}var fc;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(fc||(fc={}));var G1=Object.defineProperty,dc=Object.getOwnPropertySymbols,X1=Object.prototype.hasOwnProperty,J1=Object.prototype.propertyIsEnumerable,pc=(e,t,n)=>t in e?G1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z1=(e,t)=>{for(var n in t||(t={}))X1.call(t,n)&&pc(e,n,t[n]);if(dc)for(var n of dc(t))J1.call(t,n)&&pc(e,n,t[n]);return e};const Q1={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Z1({linear:c1},Q1);const Lo=e=>e===void 0,Vn=e=>typeof Element>"u"?!1:e instanceof Element,e_=e=>xe(e)?!Number.isNaN(Number(e)):!1,hc=e=>Object.keys(e),t_=(e,t,n)=>({get value(){return Io(e,t,n)},set value(r){t1(e,t,r)}});class n_ extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function Un(e,t){throw new n_(`[${e}] ${t}`)}const ep=(e="")=>e.split(" ").filter(t=>!!t.trim()),vr=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},ur=(e,t)=>{!e||!t.trim()||e.classList.add(...ep(t))},mr=(e,t)=>{!e||!t.trim()||e.classList.remove(...ep(t))},ca=(e,t)=>{var n;if(!Xe||!e||!t)return"";let r=Yt(t);r==="float"&&(r="cssFloat");try{const o=e.style[r];if(o)return o;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[r]:""}catch{return e.style[r]}};function Hr(e,t="px"){if(!e)return"";if(lt(e)||e_(e))return`${e}${t}`;if(xe(e))return e}let ns;const r_=e=>{var t;if(!Xe)return 0;if(ns!==void 0)return ns;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const r=n.offsetWidth;n.style.overflow="scroll";const o=document.createElement("div");o.style.width="100%",n.appendChild(o);const s=o.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),ns=r-s,ns};/*! Element Plus Icons Vue v2.0.10 */var Tt=(e,t)=>{let n=e.__vccOpts||e;for(let[r,o]of t)n[r]=o;return n},o_={name:"ArrowDown"},s_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l_=oe("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),a_=[l_];function i_(e,t,n,r,o,s){return B(),re("svg",s_,a_)}var tp=Tt(o_,[["render",i_],["__file","arrow-down.vue"]]),u_={name:"ArrowRight"},c_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},f_=oe("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),d_=[f_];function p_(e,t,n,r,o,s){return B(),re("svg",c_,d_)}var fi=Tt(u_,[["render",p_],["__file","arrow-right.vue"]]),h_={name:"ArrowUp"},v_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},m_=oe("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),g_=[m_];function y_(e,t,n,r,o,s){return B(),re("svg",v_,g_)}var b_=Tt(h_,[["render",y_],["__file","arrow-up.vue"]]),w_={name:"CircleCheck"},__={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},C_=oe("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),E_=oe("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"},null,-1),S_=[C_,E_];function x_(e,t,n,r,o,s){return B(),re("svg",__,S_)}var T_=Tt(w_,[["render",x_],["__file","circle-check.vue"]]),O_={name:"CircleCloseFilled"},$_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},A_=oe("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),M_=[A_];function P_(e,t,n,r,o,s){return B(),re("svg",$_,M_)}var np=Tt(O_,[["render",P_],["__file","circle-close-filled.vue"]]),R_={name:"CircleClose"},k_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},I_=oe("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"},null,-1),L_=oe("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),N_=[I_,L_];function F_(e,t,n,r,o,s){return B(),re("svg",k_,N_)}var rp=Tt(R_,[["render",F_],["__file","circle-close.vue"]]),B_={name:"Close"},H_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},D_=oe("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),z_=[D_];function j_(e,t,n,r,o,s){return B(),re("svg",H_,z_)}var W_=Tt(B_,[["render",j_],["__file","close.vue"]]),K_={name:"Hide"},V_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},U_=oe("path",{d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z",fill:"currentColor"},null,-1),q_=oe("path",{d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z",fill:"currentColor"},null,-1),Y_=[U_,q_];function G_(e,t,n,r,o,s){return B(),re("svg",V_,Y_)}var X_=Tt(K_,[["render",G_],["__file","hide.vue"]]),J_={name:"InfoFilled"},Z_={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Q_=oe("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),eC=[Q_];function tC(e,t,n,r,o,s){return B(),re("svg",Z_,eC)}var op=Tt(J_,[["render",tC],["__file","info-filled.vue"]]),nC={name:"Loading"},rC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oC=oe("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),sC=[oC];function lC(e,t,n,r,o,s){return B(),re("svg",rC,sC)}var dl=Tt(nC,[["render",lC],["__file","loading.vue"]]),aC={name:"More"},iC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},uC=oe("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),cC=[uC];function fC(e,t,n,r,o,s){return B(),re("svg",iC,cC)}var dC=Tt(aC,[["render",fC],["__file","more.vue"]]),pC={name:"SuccessFilled"},hC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vC=oe("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),mC=[vC];function gC(e,t,n,r,o,s){return B(),re("svg",hC,mC)}var sp=Tt(pC,[["render",gC],["__file","success-filled.vue"]]),yC={name:"View"},bC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wC=oe("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z"},null,-1),_C=[wC];function CC(e,t,n,r,o,s){return B(),re("svg",bC,_C)}var EC=Tt(yC,[["render",CC],["__file","view.vue"]]),SC={name:"WarningFilled"},xC={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},TC=oe("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),OC=[TC];function $C(e,t,n,r,o,s){return B(),re("svg",xC,OC)}var lp=Tt(SC,[["render",$C],["__file","warning-filled.vue"]]);const ap="__epPropKey",Ce=e=>e,AC=e=>Pe(e)&&!!e[ap],pl=(e,t)=>{if(!Pe(e)||AC(e))return e;const{values:n,required:r,default:o,type:s,validator:l}=e,i={type:s,required:!!r,validator:n||l?u=>{let c=!1,f=[];if(n&&(f=Array.from(n),$e(e,"default")&&f.push(o),c||(c=f.includes(u))),l&&(c||(c=l(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");Nv(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[ap]:!0};return $e(e,"default")&&(i.default=o),i},qe=e=>Fs(Object.entries(e).map(([t,n])=>[t,pl(n,t)])),Kt=Ce([String,Object,Function]),ip={Close:W_,SuccessFilled:sp,InfoFilled:op,WarningFilled:lp,CircleCloseFilled:np},Hs={success:sp,warning:lp,error:np,info:op},MC={validating:dl,success:T_,error:rp},kt=(e,t)=>{if(e.install=n=>{for(const r of[e,...Object.values(t??{})])n.component(r.name,r)},t)for(const[n,r]of Object.entries(t))e[n]=r;return e},PC=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Sr=e=>(e.install=at,e),vt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},un="update:modelValue",fa="change",da="input",up=["","default","small","large"],cp=e=>["",...up].includes(e);var ms=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(ms||{});const gs=e=>{const t=fe(e)?e:[e],n=[];return t.forEach(r=>{var o;fe(r)?n.push(...gs(r)):ln(r)&&fe(r.children)?n.push(...gs(r.children)):(n.push(r),ln(r)&&((o=r.component)!=null&&o.subTree)&&n.push(...gs(r.component.subTree)))}),n},RC=()=>Xe&&/firefox/i.test(window.navigator.userAgent),kC=e=>/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e),Nn=e=>e,IC=["class","style"],LC=/^on[A-Z]/,NC=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,r=$(()=>((n==null?void 0:n.value)||[]).concat(IC)),o=We();return $(o?()=>{var s;return Fs(Object.entries((s=o.proxy)==null?void 0:s.$attrs).filter(([l])=>!r.value.includes(l)&&!(t&&LC.test(l))))}:()=>({}))},fp=Symbol("buttonGroupContextKey"),to=Symbol("checkboxGroupContextKey"),dp=Symbol(),di=Symbol("formContextKey"),Ds=Symbol("formItemContextKey"),pp=Symbol("rowContextKey"),hp=Symbol("scrollbarContextKey"),pi=Symbol("popper"),vp=Symbol("popperContent"),hi=Symbol("elTooltip"),mp=e=>{const t=We();return $(()=>{var n,r;return(r=((n=t.proxy)==null?void 0:n.$props)[e])!=null?r:void 0})},zs=P();function qn(e,t=void 0){const n=We()?Te(dp,zs):zs;return e?$(()=>{var r,o;return(o=(r=n.value)==null?void 0:r[e])!=null?o:t}):n}const FC=(e,t,n=!1)=>{var r;const o=!!We(),s=o?qn():void 0,l=(r=t==null?void 0:t.provide)!=null?r:o?it:void 0;if(!l)return;const a=$(()=>{const i=y(e);return s!=null&&s.value?BC(s.value,i):i});return l(dp,a),(n||!zs.value)&&(zs.value=a.value),a},BC=(e,t)=>{var n;const r=[...new Set([...hc(e),...hc(t)])],o={};for(const s of r)o[s]=(n=t[s])!=null?n:e[s];return o},no=pl({type:String,values:up,required:!1}),br=(e,t={})=>{const n=P(void 0),r=t.prop?n:mp("size"),o=t.global?n:qn("size"),s=t.form?{size:void 0}:Te(di,void 0),l=t.formItem?{size:void 0}:Te(Ds,void 0);return $(()=>r.value||y(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||o.value||"")},Vo=e=>{const t=mp("disabled"),n=Te(di,void 0);return $(()=>t.value||y(e)||(n==null?void 0:n.disabled)||!1)},vi=({from:e,replacement:t,scope:n,version:r,ref:o,type:s="API"},l)=>{de(()=>y(l),a=>{},{immediate:!0})},HC=(e,t,n)=>{let r={offsetX:0,offsetY:0};const o=a=>{const i=a.clientX,u=a.clientY,{offsetX:c,offsetY:f}=r,d=e.value.getBoundingClientRect(),h=d.left,p=d.top,v=d.width,b=d.height,m=document.documentElement.clientWidth,w=document.documentElement.clientHeight,S=-h+c,g=-p+f,E=m-h-v+c,O=w-p-b+f,C=k=>{const M=Math.min(Math.max(c+k.clientX-i,S),E),F=Math.min(Math.max(f+k.clientY-u,g),O);r={offsetX:M,offsetY:F},e.value.style.transform=`translate(${Hr(M)}, ${Hr(F)})`},x=()=>{document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",x)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",x)},s=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",o)},l=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",o)};Je(()=>{zn(()=>{n.value?s():l()})}),mt(()=>{l()})},mi="el",DC="is-",Qn=(e,t,n,r,o)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),r&&(s+=`__${r}`),o&&(s+=`--${o}`),s},Se=e=>{const t=qn("namespace",mi);return{namespace:t,b:(p="")=>Qn(t.value,e,p,"",""),e:p=>p?Qn(t.value,e,"",p,""):"",m:p=>p?Qn(t.value,e,"","",p):"",be:(p,v)=>p&&v?Qn(t.value,e,p,v,""):"",em:(p,v)=>p&&v?Qn(t.value,e,"",p,v):"",bm:(p,v)=>p&&v?Qn(t.value,e,p,"",v):"",bem:(p,v,b)=>p&&v&&b?Qn(t.value,e,p,v,b):"",is:(p,...v)=>{const b=v.length>=1?v[0]:!0;return p&&b?`${DC}${p}`:""},cssVar:p=>{const v={};for(const b in p)p[b]&&(v[`--${t.value}-${b}`]=p[b]);return v},cssVarName:p=>`--${t.value}-${p}`,cssVarBlock:p=>{const v={};for(const b in p)p[b]&&(v[`--${t.value}-${e}-${b}`]=p[b]);return v},cssVarBlockName:p=>`--${t.value}-${e}-${p}`}},vc={prefix:Math.floor(Math.random()*1e4),current:0},zC=Symbol("elIdInjection"),gp=()=>We()?Te(zC,vc):vc,js=e=>{const t=gp(),n=qn("namespace",mi);return $(()=>y(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},ro=()=>{const e=Te(di,void 0),t=Te(Ds,void 0);return{form:e,formItem:t}},hl=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:r})=>{n||(n=P(!1)),r||(r=P(!1));const o=P();let s;const l=$(()=>{var a;return!!(!e.label&&t&&t.inputIds&&((a=t.inputIds)==null?void 0:a.length)<=1)});return Je(()=>{s=de([Lt(e,"id"),n],([a,i])=>{const u=a??(i?void 0:js().value);u!==o.value&&(t!=null&&t.removeInputId&&(o.value&&t.removeInputId(o.value),!(r!=null&&r.value)&&!i&&u&&t.addInputId(u)),o.value=u)},{immediate:!0})}),Zr(()=>{s&&s(),t!=null&&t.removeInputId&&o.value&&t.removeInputId(o.value)}),{isLabeledByFormItem:l,inputId:o}};var jC={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const WC=e=>(t,n)=>KC(t,n,y(e)),KC=(e,t,n)=>Io(n,e,e).replace(/\{(\w+)\}/g,(r,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),VC=e=>{const t=$(()=>y(e).name),n=Ve(e)?e:P(e);return{lang:t,locale:n,t:WC(e)}},gi=()=>{const e=qn("locale");return VC($(()=>e.value||jC))},UC=e=>{Ve(e)||Un("[useLockscreen]","You need to pass a ref param to this function");const t=Se("popup"),n=zf(()=>t.bm("parent","hidden"));if(!Xe||vr(document.body,n.value))return;let r=0,o=!1,s="0";const l=()=>{setTimeout(()=>{mr(document==null?void 0:document.body,n.value),o&&document&&(document.body.style.width=s)},200)};de(e,a=>{if(!a){l();return}o=!vr(document.body,n.value),o&&(s=document.body.style.width),r=r_(t.namespace.value);const i=document.documentElement.clientHeight0&&(i||u==="scroll")&&o&&(document.body.style.width=`calc(100% - ${r}px)`),ur(document.body,n.value)}),Cf(()=>l())},qC=pl({type:Ce(Boolean),default:null}),YC=pl({type:Ce(Function)}),yp=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,r=[t],o={[e]:qC,[n]:YC};return{useModelToggle:({indicator:l,toggleReason:a,shouldHideWhenRouteChanges:i,shouldProceed:u,onShow:c,onHide:f})=>{const d=We(),{emit:h}=d,p=d.props,v=$(()=>be(p[n])),b=$(()=>p[e]===null),m=C=>{l.value!==!0&&(l.value=!0,a&&(a.value=C),be(c)&&c(C))},w=C=>{l.value!==!1&&(l.value=!1,a&&(a.value=C),be(f)&&f(C))},S=C=>{if(p.disabled===!0||be(u)&&!u())return;const x=v.value&&Xe;x&&h(t,!0),(b.value||!x)&&m(C)},g=C=>{if(p.disabled===!0||!Xe)return;const x=v.value&&Xe;x&&h(t,!1),(b.value||!x)&&w(C)},E=C=>{on(C)&&(p.disabled&&C?v.value&&h(t,!1):l.value!==C&&(C?m():w()))},O=()=>{l.value?g():S()};return de(()=>p[e],E),i&&d.appContext.config.globalProperties.$route!==void 0&&de(()=>({...d.proxy.$route}),()=>{i.value&&l.value&&g()}),Je(()=>{E(p[e])}),{hide:g,show:S,toggle:O,hasUpdateHandler:v}},useModelToggleProps:o,useModelToggleEmits:r}};yp("modelValue");var Et="top",Bt="bottom",Ht="right",St="left",yi="auto",Uo=[Et,Bt,Ht,St],Dr="start",No="end",GC="clippingParents",bp="viewport",io="popper",XC="reference",mc=Uo.reduce(function(e,t){return e.concat([t+"-"+Dr,t+"-"+No])},[]),bi=[].concat(Uo,[yi]).reduce(function(e,t){return e.concat([t,t+"-"+Dr,t+"-"+No])},[]),JC="beforeRead",ZC="read",QC="afterRead",eE="beforeMain",tE="main",nE="afterMain",rE="beforeWrite",oE="write",sE="afterWrite",lE=[JC,ZC,QC,eE,tE,nE,rE,oE,sE];function cn(e){return e?(e.nodeName||"").toLowerCase():null}function Zt(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function zr(e){var t=Zt(e).Element;return e instanceof t||e instanceof Element}function Ft(e){var t=Zt(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function wi(e){if(typeof ShadowRoot>"u")return!1;var t=Zt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function aE(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},s=t.elements[n];!Ft(s)||!cn(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(l){var a=o[l];a===!1?s.removeAttribute(l):s.setAttribute(l,a===!0?"":a)}))})}function iE(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],s=t.attributes[r]||{},l=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),a=l.reduce(function(i,u){return i[u]="",i},{});!Ft(o)||!cn(o)||(Object.assign(o.style,a),Object.keys(s).forEach(function(i){o.removeAttribute(i)}))})}}var wp={name:"applyStyles",enabled:!0,phase:"write",fn:aE,effect:iE,requires:["computeStyles"]};function sn(e){return e.split("-")[0]}var gr=Math.max,Ws=Math.min,jr=Math.round;function Wr(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),r=1,o=1;if(Ft(e)&&t){var s=e.offsetHeight,l=e.offsetWidth;l>0&&(r=jr(n.width)/l||1),s>0&&(o=jr(n.height)/s||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function _i(e){var t=Wr(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function _p(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&wi(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function _n(e){return Zt(e).getComputedStyle(e)}function uE(e){return["table","td","th"].indexOf(cn(e))>=0}function Yn(e){return((zr(e)?e.ownerDocument:e.document)||window.document).documentElement}function vl(e){return cn(e)==="html"?e:e.assignedSlot||e.parentNode||(wi(e)?e.host:null)||Yn(e)}function gc(e){return!Ft(e)||_n(e).position==="fixed"?null:e.offsetParent}function cE(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&Ft(e)){var r=_n(e);if(r.position==="fixed")return null}var o=vl(e);for(wi(o)&&(o=o.host);Ft(o)&&["html","body"].indexOf(cn(o))<0;){var s=_n(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function qo(e){for(var t=Zt(e),n=gc(e);n&&uE(n)&&_n(n).position==="static";)n=gc(n);return n&&(cn(n)==="html"||cn(n)==="body"&&_n(n).position==="static")?t:n||cE(e)||t}function Ci(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function yo(e,t,n){return gr(e,Ws(t,n))}function fE(e,t,n){var r=yo(e,t,n);return r>n?n:r}function Cp(){return{top:0,right:0,bottom:0,left:0}}function Ep(e){return Object.assign({},Cp(),e)}function Sp(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var dE=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,Ep(typeof e!="number"?e:Sp(e,Uo))};function pE(e){var t,n=e.state,r=e.name,o=e.options,s=n.elements.arrow,l=n.modifiersData.popperOffsets,a=sn(n.placement),i=Ci(a),u=[St,Ht].indexOf(a)>=0,c=u?"height":"width";if(!(!s||!l)){var f=dE(o.padding,n),d=_i(s),h=i==="y"?Et:St,p=i==="y"?Bt:Ht,v=n.rects.reference[c]+n.rects.reference[i]-l[i]-n.rects.popper[c],b=l[i]-n.rects.reference[i],m=qo(s),w=m?i==="y"?m.clientHeight||0:m.clientWidth||0:0,S=v/2-b/2,g=f[h],E=w-d[c]-f[p],O=w/2-d[c]/2+S,C=yo(g,O,E),x=i;n.modifiersData[r]=(t={},t[x]=C,t.centerOffset=C-O,t)}}function hE(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||!_p(t.elements.popper,o)||(t.elements.arrow=o))}var vE={name:"arrow",enabled:!0,phase:"main",fn:pE,effect:hE,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Kr(e){return e.split("-")[1]}var mE={top:"auto",right:"auto",bottom:"auto",left:"auto"};function gE(e){var t=e.x,n=e.y,r=window,o=r.devicePixelRatio||1;return{x:jr(t*o)/o||0,y:jr(n*o)/o||0}}function yc(e){var t,n=e.popper,r=e.popperRect,o=e.placement,s=e.variation,l=e.offsets,a=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=l.x,h=d===void 0?0:d,p=l.y,v=p===void 0?0:p,b=typeof c=="function"?c({x:h,y:v}):{x:h,y:v};h=b.x,v=b.y;var m=l.hasOwnProperty("x"),w=l.hasOwnProperty("y"),S=St,g=Et,E=window;if(u){var O=qo(n),C="clientHeight",x="clientWidth";if(O===Zt(n)&&(O=Yn(n),_n(O).position!=="static"&&a==="absolute"&&(C="scrollHeight",x="scrollWidth")),O=O,o===Et||(o===St||o===Ht)&&s===No){g=Bt;var k=f&&O===E&&E.visualViewport?E.visualViewport.height:O[C];v-=k-r.height,v*=i?1:-1}if(o===St||(o===Et||o===Bt)&&s===No){S=Ht;var M=f&&O===E&&E.visualViewport?E.visualViewport.width:O[x];h-=M-r.width,h*=i?1:-1}}var F=Object.assign({position:a},u&&mE),A=c===!0?gE({x:h,y:v}):{x:h,y:v};if(h=A.x,v=A.y,i){var D;return Object.assign({},F,(D={},D[g]=w?"0":"",D[S]=m?"0":"",D.transform=(E.devicePixelRatio||1)<=1?"translate("+h+"px, "+v+"px)":"translate3d("+h+"px, "+v+"px, 0)",D))}return Object.assign({},F,(t={},t[g]=w?v+"px":"",t[S]=m?h+"px":"",t.transform="",t))}function yE(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,l=s===void 0?!0:s,a=n.roundOffsets,i=a===void 0?!0:a,u={placement:sn(t.placement),variation:Kr(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,yc(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:l,roundOffsets:i})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,yc(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var xp={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:yE,data:{}},rs={passive:!0};function bE(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,s=o===void 0?!0:o,l=r.resize,a=l===void 0?!0:l,i=Zt(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,rs)}),a&&i.addEventListener("resize",n.update,rs),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,rs)}),a&&i.removeEventListener("resize",n.update,rs)}}var Tp={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:bE,data:{}},wE={left:"right",right:"left",bottom:"top",top:"bottom"};function ys(e){return e.replace(/left|right|bottom|top/g,function(t){return wE[t]})}var _E={start:"end",end:"start"};function bc(e){return e.replace(/start|end/g,function(t){return _E[t]})}function Ei(e){var t=Zt(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Si(e){return Wr(Yn(e)).left+Ei(e).scrollLeft}function CE(e){var t=Zt(e),n=Yn(e),r=t.visualViewport,o=n.clientWidth,s=n.clientHeight,l=0,a=0;return r&&(o=r.width,s=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(l=r.offsetLeft,a=r.offsetTop)),{width:o,height:s,x:l+Si(e),y:a}}function EE(e){var t,n=Yn(e),r=Ei(e),o=(t=e.ownerDocument)==null?void 0:t.body,s=gr(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=gr(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-r.scrollLeft+Si(e),i=-r.scrollTop;return _n(o||n).direction==="rtl"&&(a+=gr(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:l,x:a,y:i}}function xi(e){var t=_n(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function Op(e){return["html","body","#document"].indexOf(cn(e))>=0?e.ownerDocument.body:Ft(e)&&xi(e)?e:Op(vl(e))}function bo(e,t){var n;t===void 0&&(t=[]);var r=Op(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),s=Zt(r),l=o?[s].concat(s.visualViewport||[],xi(r)?r:[]):r,a=t.concat(l);return o?a:a.concat(bo(vl(l)))}function pa(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function SE(e){var t=Wr(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function wc(e,t){return t===bp?pa(CE(e)):zr(t)?SE(t):pa(EE(Yn(e)))}function xE(e){var t=bo(vl(e)),n=["absolute","fixed"].indexOf(_n(e).position)>=0,r=n&&Ft(e)?qo(e):e;return zr(r)?t.filter(function(o){return zr(o)&&_p(o,r)&&cn(o)!=="body"}):[]}function TE(e,t,n){var r=t==="clippingParents"?xE(e):[].concat(t),o=[].concat(r,[n]),s=o[0],l=o.reduce(function(a,i){var u=wc(e,i);return a.top=gr(u.top,a.top),a.right=Ws(u.right,a.right),a.bottom=Ws(u.bottom,a.bottom),a.left=gr(u.left,a.left),a},wc(e,s));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function $p(e){var t=e.reference,n=e.element,r=e.placement,o=r?sn(r):null,s=r?Kr(r):null,l=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,i;switch(o){case Et:i={x:l,y:t.y-n.height};break;case Bt:i={x:l,y:t.y+t.height};break;case Ht:i={x:t.x+t.width,y:a};break;case St:i={x:t.x-n.width,y:a};break;default:i={x:t.x,y:t.y}}var u=o?Ci(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Dr:i[u]=i[u]-(t[c]/2-n[c]/2);break;case No:i[u]=i[u]+(t[c]/2-n[c]/2);break}}return i}function Fo(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,s=n.boundary,l=s===void 0?GC:s,a=n.rootBoundary,i=a===void 0?bp:a,u=n.elementContext,c=u===void 0?io:u,f=n.altBoundary,d=f===void 0?!1:f,h=n.padding,p=h===void 0?0:h,v=Ep(typeof p!="number"?p:Sp(p,Uo)),b=c===io?XC:io,m=e.rects.popper,w=e.elements[d?b:c],S=TE(zr(w)?w:w.contextElement||Yn(e.elements.popper),l,i),g=Wr(e.elements.reference),E=$p({reference:g,element:m,strategy:"absolute",placement:o}),O=pa(Object.assign({},m,E)),C=c===io?O:g,x={top:S.top-C.top+v.top,bottom:C.bottom-S.bottom+v.bottom,left:S.left-C.left+v.left,right:C.right-S.right+v.right},k=e.modifiersData.offset;if(c===io&&k){var M=k[o];Object.keys(x).forEach(function(F){var A=[Ht,Bt].indexOf(F)>=0?1:-1,D=[Et,Bt].indexOf(F)>=0?"y":"x";x[F]+=M[D]*A})}return x}function OE(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,s=n.rootBoundary,l=n.padding,a=n.flipVariations,i=n.allowedAutoPlacements,u=i===void 0?bi:i,c=Kr(r),f=c?a?mc:mc.filter(function(p){return Kr(p)===c}):Uo,d=f.filter(function(p){return u.indexOf(p)>=0});d.length===0&&(d=f);var h=d.reduce(function(p,v){return p[v]=Fo(e,{placement:v,boundary:o,rootBoundary:s,padding:l})[sn(v)],p},{});return Object.keys(h).sort(function(p,v){return h[p]-h[v]})}function $E(e){if(sn(e)===yi)return[];var t=ys(e);return[bc(e),t,bc(t)]}function AE(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,a=l===void 0?!0:l,i=n.fallbackPlacements,u=n.padding,c=n.boundary,f=n.rootBoundary,d=n.altBoundary,h=n.flipVariations,p=h===void 0?!0:h,v=n.allowedAutoPlacements,b=t.options.placement,m=sn(b),w=m===b,S=i||(w||!p?[ys(b)]:$E(b)),g=[b].concat(S).reduce(function(Le,L){return Le.concat(sn(L)===yi?OE(t,{placement:L,boundary:c,rootBoundary:f,padding:u,flipVariations:p,allowedAutoPlacements:v}):L)},[]),E=t.rects.reference,O=t.rects.popper,C=new Map,x=!0,k=g[0],M=0;M=0,V=Q?"width":"height",Z=Fo(t,{placement:F,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),se=Q?D?Ht:St:D?Bt:Et;E[V]>O[V]&&(se=ys(se));var j=ys(se),R=[];if(s&&R.push(Z[A]<=0),a&&R.push(Z[se]<=0,Z[j]<=0),R.every(function(Le){return Le})){k=F,x=!1;break}C.set(F,R)}if(x)for(var te=p?3:1,he=function(Le){var L=g.find(function(q){var U=C.get(q);if(U)return U.slice(0,Le).every(function(ee){return ee})});if(L)return k=L,"break"},Ee=te;Ee>0;Ee--){var Re=he(Ee);if(Re==="break")break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}}var ME={name:"flip",enabled:!0,phase:"main",fn:AE,requiresIfExists:["offset"],data:{_skip:!1}};function _c(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Cc(e){return[Et,Ht,Bt,St].some(function(t){return e[t]>=0})}function PE(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,s=t.modifiersData.preventOverflow,l=Fo(t,{elementContext:"reference"}),a=Fo(t,{altBoundary:!0}),i=_c(l,r),u=_c(a,o,s),c=Cc(i),f=Cc(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var RE={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:PE};function kE(e,t,n){var r=sn(e),o=[St,Et].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,l=s[0],a=s[1];return l=l||0,a=(a||0)*o,[St,Ht].indexOf(r)>=0?{x:a,y:l}:{x:l,y:a}}function IE(e){var t=e.state,n=e.options,r=e.name,o=n.offset,s=o===void 0?[0,0]:o,l=bi.reduce(function(c,f){return c[f]=kE(f,t.rects,s),c},{}),a=l[t.placement],i=a.x,u=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=l}var LE={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:IE};function NE(e){var t=e.state,n=e.name;t.modifiersData[n]=$p({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var Ap={name:"popperOffsets",enabled:!0,phase:"read",fn:NE,data:{}};function FE(e){return e==="x"?"y":"x"}function BE(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,a=l===void 0?!1:l,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,f=n.padding,d=n.tether,h=d===void 0?!0:d,p=n.tetherOffset,v=p===void 0?0:p,b=Fo(t,{boundary:i,rootBoundary:u,padding:f,altBoundary:c}),m=sn(t.placement),w=Kr(t.placement),S=!w,g=Ci(m),E=FE(g),O=t.modifiersData.popperOffsets,C=t.rects.reference,x=t.rects.popper,k=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,M=typeof k=="number"?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),F=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(O){if(s){var D,Q=g==="y"?Et:St,V=g==="y"?Bt:Ht,Z=g==="y"?"height":"width",se=O[g],j=se+b[Q],R=se-b[V],te=h?-x[Z]/2:0,he=w===Dr?C[Z]:x[Z],Ee=w===Dr?-x[Z]:-C[Z],Re=t.elements.arrow,Le=h&&Re?_i(Re):{width:0,height:0},L=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Cp(),q=L[Q],U=L[V],ee=yo(0,C[Z],Le[Z]),we=S?C[Z]/2-te-ee-q-M.mainAxis:he-ee-q-M.mainAxis,Ne=S?-C[Z]/2+te+ee+U+M.mainAxis:Ee+ee+U+M.mainAxis,_e=t.elements.arrow&&qo(t.elements.arrow),_=_e?g==="y"?_e.clientTop||0:_e.clientLeft||0:0,T=(D=F==null?void 0:F[g])!=null?D:0,N=se+we-T-_,H=se+Ne-T,z=yo(h?Ws(j,N):j,se,h?gr(R,H):R);O[g]=z,A[g]=z-se}if(a){var X,ne=g==="x"?Et:St,Y=g==="x"?Bt:Ht,J=O[E],W=E==="y"?"height":"width",I=J+b[ne],G=J-b[Y],ae=[Et,St].indexOf(m)!==-1,ge=(X=F==null?void 0:F[E])!=null?X:0,Ae=ae?I:J-C[W]-x[W]-ge+M.altAxis,Be=ae?J+C[W]+x[W]-ge-M.altAxis:G,Fe=h&&ae?fE(Ae,J,Be):yo(h?Ae:I,J,h?Be:G);O[E]=Fe,A[E]=Fe-J}t.modifiersData[r]=A}}var HE={name:"preventOverflow",enabled:!0,phase:"main",fn:BE,requiresIfExists:["offset"]};function DE(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function zE(e){return e===Zt(e)||!Ft(e)?Ei(e):DE(e)}function jE(e){var t=e.getBoundingClientRect(),n=jr(t.width)/e.offsetWidth||1,r=jr(t.height)/e.offsetHeight||1;return n!==1||r!==1}function WE(e,t,n){n===void 0&&(n=!1);var r=Ft(t),o=Ft(t)&&jE(t),s=Yn(t),l=Wr(e,o),a={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(r||!r&&!n)&&((cn(t)!=="body"||xi(s))&&(a=zE(t)),Ft(t)?(i=Wr(t,!0),i.x+=t.clientLeft,i.y+=t.clientTop):s&&(i.x=Si(s))),{x:l.left+a.scrollLeft-i.x,y:l.top+a.scrollTop-i.y,width:l.width,height:l.height}}function KE(e){var t=new Map,n=new Set,r=[];e.forEach(function(s){t.set(s.name,s)});function o(s){n.add(s.name);var l=[].concat(s.requires||[],s.requiresIfExists||[]);l.forEach(function(a){if(!n.has(a)){var i=t.get(a);i&&o(i)}}),r.push(s)}return e.forEach(function(s){n.has(s.name)||o(s)}),r}function VE(e){var t=KE(e);return lE.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function UE(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function qE(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Ec={placement:"bottom",modifiers:[],strategy:"absolute"};function Sc(){for(var e=arguments.length,t=new Array(e),n=0;n{const r={name:"updateState",enabled:!0,phase:"write",fn:({state:i})=>{const u=JE(i);Object.assign(l.value,u)},requires:["computeStyles"]},o=$(()=>{const{onFirstUpdate:i,placement:u,strategy:c,modifiers:f}=y(n);return{onFirstUpdate:i,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],r,{name:"applyStyles",enabled:!1}]}}),s=kr(),l=P({styles:{popper:{position:y(o).strategy,left:"0",right:"0"},arrow:{position:"absolute"}},attributes:{}}),a=()=>{s.value&&(s.value.destroy(),s.value=void 0)};return de(o,i=>{const u=y(s);u&&u.setOptions(i)},{deep:!0}),de([e,t],([i,u])=>{a(),!(!i||!u)&&(s.value=Mp(i,u,y(o)))}),mt(()=>{a()}),{state:$(()=>{var i;return{...((i=y(s))==null?void 0:i.state)||{}}}),styles:$(()=>y(l).styles),attributes:$(()=>y(l).attributes),update:()=>{var i;return(i=y(s))==null?void 0:i.update()},forceUpdate:()=>{var i;return(i=y(s))==null?void 0:i.forceUpdate()},instanceRef:$(()=>y(s))}};function JE(e){const t=Object.keys(e.elements),n=Fs(t.map(o=>[o,e.styles[o]||{}])),r=Fs(t.map(o=>[o,e.attributes[o]]));return{styles:n,attributes:r}}const ZE=(e,t)=>{let n;de(()=>e.value,r=>{var o,s;r?(n=document.activeElement,Ve(t)&&((s=(o=t.value).focus)==null||s.call(o))):n.focus()})},Pp=e=>{if(!e)return{onClick:at,onMousedown:at,onMouseup:at};let t=!1,n=!1;return{onClick:l=>{t&&n&&e(l),t=n=!1},onMousedown:l=>{t=l.target===l.currentTarget},onMouseup:l=>{n=l.target===l.currentTarget}}};function QE(){let e;const t=(r,o)=>{n(),e=window.setTimeout(r,o)},n=()=>window.clearTimeout(e);return Ko(()=>n()),{registerTimeout:t,cancelTimeout:n}}let Or=[];const xc=e=>{const t=e;t.key===vt.esc&&Or.forEach(n=>n(t))},eS=e=>{Je(()=>{Or.length===0&&document.addEventListener("keydown",xc),Xe&&Or.push(e)}),mt(()=>{Or=Or.filter(t=>t!==e),Or.length===0&&Xe&&document.removeEventListener("keydown",xc)})};let Tc;const Rp=()=>{const e=qn("namespace",mi),t=gp(),n=$(()=>`${e.value}-popper-container-${t.prefix}`),r=$(()=>`#${n.value}`);return{id:n,selector:r}},tS=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},nS=()=>{tl(()=>{if(!Xe)return;const{id:e,selector:t}=Rp();!Tc&&!document.body.querySelector(t.value)&&(Tc=tS(e.value))})},rS=qe({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),kp=({showAfter:e,hideAfter:t,open:n,close:r})=>{const{registerTimeout:o}=QE();return{onOpen:a=>{o(()=>{n(a)},y(e))},onClose:a=>{o(()=>{r(a)},y(t))}}},Ip=Symbol("elForwardRef"),oS=e=>{it(Ip,{setForwardRef:n=>{e.value=n}})},sS=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),Oc=P(0),ml=()=>{const e=qn("zIndex",2e3),t=$(()=>e.value+Oc.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(Oc.value++,t.value)}};function lS(e){const t=P();function n(){if(e.value==null)return;const{selectionStart:o,selectionEnd:s,value:l}=e.value;if(o==null||s==null)return;const a=l.slice(0,Math.max(0,o)),i=l.slice(Math.max(0,s));t.value={selectionStart:o,selectionEnd:s,value:l,beforeTxt:a,afterTxt:i}}function r(){if(e.value==null||t.value==null)return;const{value:o}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:a}=t.value;if(s==null||l==null||a==null)return;let i=o.length;if(o.endsWith(l))i=o.length-l.length;else if(o.startsWith(s))i=s.length;else{const u=s[a-1],c=o.indexOf(u,a-1);c!==-1&&(i=c+1)}e.value.setSelectionRange(i,i)}return[n,r]}var ze=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};const aS=qe({size:{type:Ce([Number,String])},color:{type:String}}),iS=ue({name:"ElIcon",inheritAttrs:!1}),uS=ue({...iS,props:aS,setup(e){const t=e,n=Se("icon"),r=$(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:Lo(o)?void 0:Hr(o),"--color":s}});return(o,s)=>(B(),re("i",nn({class:y(n).b(),style:y(r)},o.$attrs),[Me(o.$slots,"default")],16))}});var cS=ze(uS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const ot=kt(cS);let Dt;const fS=` - height:0 !important; - visibility:hidden !important; - ${RC()?"":"overflow:hidden !important;"} - position:absolute !important; - z-index:-1000 !important; - top:0 !important; - right:0 !important; -`,dS=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function pS(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),r=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),o=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:dS.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:r,borderSize:o,boxSizing:n}}function $c(e,t=1,n){var r;Dt||(Dt=document.createElement("textarea"),document.body.appendChild(Dt));const{paddingSize:o,borderSize:s,boxSizing:l,contextStyle:a}=pS(e);Dt.setAttribute("style",`${a};${fS}`),Dt.value=e.value||e.placeholder||"";let i=Dt.scrollHeight;const u={};l==="border-box"?i=i+s:l==="content-box"&&(i=i-o),Dt.value="";const c=Dt.scrollHeight-o;if(lt(t)){let f=c*t;l==="border-box"&&(f=f+o+s),i=Math.max(f,i),u.minHeight=`${f}px`}if(lt(n)){let f=c*n;l==="border-box"&&(f=f+o+s),i=Math.min(f,i)}return u.height=`${i}px`,(r=Dt.parentNode)==null||r.removeChild(Dt),Dt=void 0,u}const hS=qe({id:{type:String,default:void 0},size:no,disabled:Boolean,modelValue:{type:Ce([String,Number,Object]),default:""},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:Ce([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:Kt},prefixIcon:{type:Kt},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Ce([Object,Array,String]),default:()=>Nn({})}}),vS={[un]:e=>xe(e),input:e=>xe(e),change:e=>xe(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},mS=["role"],gS=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],yS=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],bS=ue({name:"ElInput",inheritAttrs:!1}),wS=ue({...bS,props:hS,emits:vS,setup(e,{expose:t,emit:n}){const r=e,o=Bm(),s=ol(),l=$(()=>{const I={};return r.containerRole==="combobox"&&(I["aria-haspopup"]=o["aria-haspopup"],I["aria-owns"]=o["aria-owns"],I["aria-expanded"]=o["aria-expanded"]),I}),a=$(()=>[r.type==="textarea"?b.b():v.b(),v.m(h.value),v.is("disabled",p.value),v.is("exceed",he.value),{[v.b("group")]:s.prepend||s.append,[v.bm("group","append")]:s.append,[v.bm("group","prepend")]:s.prepend,[v.m("prefix")]:s.prefix||r.prefixIcon,[v.m("suffix")]:s.suffix||r.suffixIcon||r.clearable||r.showPassword,[v.bm("suffix","password-clear")]:se.value&&j.value},o.class]),i=$(()=>[v.e("wrapper"),v.is("focus",S.value)]),u=NC({excludeKeys:$(()=>Object.keys(l.value))}),{form:c,formItem:f}=ro(),{inputId:d}=hl(r,{formItemContext:f}),h=br(),p=Vo(),v=Se("input"),b=Se("textarea"),m=kr(),w=kr(),S=P(!1),g=P(!1),E=P(!1),O=P(!1),C=P(),x=kr(r.inputStyle),k=$(()=>m.value||w.value),M=$(()=>{var I;return(I=c==null?void 0:c.statusIcon)!=null?I:!1}),F=$(()=>(f==null?void 0:f.validateState)||""),A=$(()=>F.value&&MC[F.value]),D=$(()=>O.value?EC:X_),Q=$(()=>[o.style,r.inputStyle]),V=$(()=>[r.inputStyle,x.value,{resize:r.resize}]),Z=$(()=>fl(r.modelValue)?"":String(r.modelValue)),se=$(()=>r.clearable&&!p.value&&!r.readonly&&!!Z.value&&(S.value||g.value)),j=$(()=>r.showPassword&&!p.value&&!r.readonly&&!!Z.value&&(!!Z.value||S.value)),R=$(()=>r.showWordLimit&&!!u.value.maxlength&&(r.type==="text"||r.type==="textarea")&&!p.value&&!r.readonly&&!r.showPassword),te=$(()=>Array.from(Z.value).length),he=$(()=>!!R.value&&te.value>Number(u.value.maxlength)),Ee=$(()=>!!s.suffix||!!r.suffixIcon||se.value||r.showPassword||R.value||!!F.value&&M.value),[Re,Le]=lS(m);Br(w,I=>{if(!R.value||r.resize!=="both")return;const G=I[0],{width:ae}=G.contentRect;C.value={right:`calc(100% - ${ae+15+6}px)`}});const L=()=>{const{type:I,autosize:G}=r;if(!(!Xe||I!=="textarea"||!w.value))if(G){const ae=Pe(G)?G.minRows:void 0,ge=Pe(G)?G.maxRows:void 0;x.value={...$c(w.value,ae,ge)}}else x.value={minHeight:$c(w.value).minHeight}},q=()=>{const I=k.value;!I||I.value===Z.value||(I.value=Z.value)},U=async I=>{Re();let{value:G}=I.target;if(r.formatter&&(G=r.parser?r.parser(G):G,G=r.formatter(G)),!E.value){if(G===Z.value){q();return}n(un,G),n("input",G),await Ke(),q(),Le()}},ee=I=>{n("change",I.target.value)},we=I=>{n("compositionstart",I),E.value=!0},Ne=I=>{var G;n("compositionupdate",I);const ae=(G=I.target)==null?void 0:G.value,ge=ae[ae.length-1]||"";E.value=!kC(ge)},_e=I=>{n("compositionend",I),E.value&&(E.value=!1,U(I))},_=()=>{O.value=!O.value,T()},T=async()=>{var I;await Ke(),(I=k.value)==null||I.focus()},N=()=>{var I;return(I=k.value)==null?void 0:I.blur()},H=I=>{S.value=!0,n("focus",I)},z=I=>{var G;S.value=!1,n("blur",I),r.validateEvent&&((G=f==null?void 0:f.validate)==null||G.call(f,"blur").catch(ae=>void 0))},X=I=>{g.value=!1,n("mouseleave",I)},ne=I=>{g.value=!0,n("mouseenter",I)},Y=I=>{n("keydown",I)},J=()=>{var I;(I=k.value)==null||I.select()},W=()=>{n(un,""),n("change",""),n("clear"),n("input","")};return de(()=>r.modelValue,()=>{var I;Ke(()=>L()),r.validateEvent&&((I=f==null?void 0:f.validate)==null||I.call(f,"change").catch(G=>void 0))}),de(Z,()=>q()),de(()=>r.type,async()=>{await Ke(),q(),L()}),Je(()=>{!r.formatter&&r.parser,q(),Ke(L)}),t({input:m,textarea:w,ref:k,textareaStyle:V,autosize:Lt(r,"autosize"),focus:T,blur:N,select:J,clear:W,resizeTextarea:L}),(I,G)=>ut((B(),re("div",nn(y(l),{class:y(a),style:y(Q),role:I.containerRole,onMouseenter:ne,onMouseleave:X}),[me(" input "),I.type!=="textarea"?(B(),re(Ue,{key:0},[me(" prepend slot "),I.$slots.prepend?(B(),re("div",{key:0,class:K(y(v).be("group","prepend"))},[Me(I.$slots,"prepend")],2)):me("v-if",!0),oe("div",{class:K(y(i))},[me(" prefix slot "),I.$slots.prefix||I.prefixIcon?(B(),re("span",{key:0,class:K(y(v).e("prefix"))},[oe("span",{class:K(y(v).e("prefix-inner")),onClick:T},[Me(I.$slots,"prefix"),I.prefixIcon?(B(),ve(y(ot),{key:0,class:K(y(v).e("icon"))},{default:ce(()=>[(B(),ve(st(I.prefixIcon)))]),_:1},8,["class"])):me("v-if",!0)],2)],2)):me("v-if",!0),oe("input",nn({id:y(d),ref_key:"input",ref:m,class:y(v).e("inner")},y(u),{type:I.showPassword?O.value?"text":"password":I.type,disabled:y(p),formatter:I.formatter,parser:I.parser,readonly:I.readonly,autocomplete:I.autocomplete,tabindex:I.tabindex,"aria-label":I.label,placeholder:I.placeholder,style:I.inputStyle,form:r.form,onCompositionstart:we,onCompositionupdate:Ne,onCompositionend:_e,onInput:U,onFocus:H,onBlur:z,onChange:ee,onKeydown:Y}),null,16,gS),me(" suffix slot "),y(Ee)?(B(),re("span",{key:1,class:K(y(v).e("suffix"))},[oe("span",{class:K(y(v).e("suffix-inner")),onClick:T},[!y(se)||!y(j)||!y(R)?(B(),re(Ue,{key:0},[Me(I.$slots,"suffix"),I.suffixIcon?(B(),ve(y(ot),{key:0,class:K(y(v).e("icon"))},{default:ce(()=>[(B(),ve(st(I.suffixIcon)))]),_:1},8,["class"])):me("v-if",!0)],64)):me("v-if",!0),y(se)?(B(),ve(y(ot),{key:1,class:K([y(v).e("icon"),y(v).e("clear")]),onMousedown:ir(y(at),["prevent"]),onClick:W},{default:ce(()=>[ie(y(rp))]),_:1},8,["class","onMousedown"])):me("v-if",!0),y(j)?(B(),ve(y(ot),{key:2,class:K([y(v).e("icon"),y(v).e("password")]),onClick:_},{default:ce(()=>[(B(),ve(st(y(D))))]),_:1},8,["class"])):me("v-if",!0),y(R)?(B(),re("span",{key:3,class:K(y(v).e("count"))},[oe("span",{class:K(y(v).e("count-inner"))},Ze(y(te))+" / "+Ze(y(u).maxlength),3)],2)):me("v-if",!0),y(F)&&y(A)&&y(M)?(B(),ve(y(ot),{key:4,class:K([y(v).e("icon"),y(v).e("validateIcon"),y(v).is("loading",y(F)==="validating")])},{default:ce(()=>[(B(),ve(st(y(A))))]),_:1},8,["class"])):me("v-if",!0)],2)],2)):me("v-if",!0)],2),me(" append slot "),I.$slots.append?(B(),re("div",{key:1,class:K(y(v).be("group","append"))},[Me(I.$slots,"append")],2)):me("v-if",!0)],64)):(B(),re(Ue,{key:1},[me(" textarea "),oe("textarea",nn({id:y(d),ref_key:"textarea",ref:w,class:y(b).e("inner")},y(u),{tabindex:I.tabindex,disabled:y(p),readonly:I.readonly,autocomplete:I.autocomplete,style:y(V),"aria-label":I.label,placeholder:I.placeholder,form:r.form,onCompositionstart:we,onCompositionupdate:Ne,onCompositionend:_e,onInput:U,onFocus:H,onBlur:z,onChange:ee,onKeydown:Y}),null,16,yS),y(R)?(B(),re("span",{key:0,style:et(C.value),class:K(y(v).e("count"))},Ze(y(te))+" / "+Ze(y(u).maxlength),7)):me("v-if",!0)],64))],16,mS)),[[Ut,I.type!=="hidden"]])}});var _S=ze(wS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]]);const Lp=kt(_S),Ar=4,CS={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},ES=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),SS=qe({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),xS="Thumb",TS=ue({__name:"thumb",props:SS,setup(e){const t=e,n=Te(hp),r=Se("scrollbar");n||Un(xS,"can not inject scrollbar context");const o=P(),s=P(),l=P({}),a=P(!1);let i=!1,u=!1,c=Xe?document.onselectstart:null;const f=$(()=>CS[t.vertical?"vertical":"horizontal"]),d=$(()=>ES({size:t.size,move:t.move,bar:f.value})),h=$(()=>o.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/s.value[f.value.offset]),p=O=>{var C;if(O.stopPropagation(),O.ctrlKey||[1,2].includes(O.button))return;(C=window.getSelection())==null||C.removeAllRanges(),b(O);const x=O.currentTarget;x&&(l.value[f.value.axis]=x[f.value.offset]-(O[f.value.client]-x.getBoundingClientRect()[f.value.direction]))},v=O=>{if(!s.value||!o.value||!n.wrapElement)return;const C=Math.abs(O.target.getBoundingClientRect()[f.value.direction]-O[f.value.client]),x=s.value[f.value.offset]/2,k=(C-x)*100*h.value/o.value[f.value.offset];n.wrapElement[f.value.scroll]=k*n.wrapElement[f.value.scrollSize]/100},b=O=>{O.stopImmediatePropagation(),i=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",w),c=document.onselectstart,document.onselectstart=()=>!1},m=O=>{if(!o.value||!s.value||i===!1)return;const C=l.value[f.value.axis];if(!C)return;const x=(o.value.getBoundingClientRect()[f.value.direction]-O[f.value.client])*-1,k=s.value[f.value.offset]-C,M=(x-k)*100*h.value/o.value[f.value.offset];n.wrapElement[f.value.scroll]=M*n.wrapElement[f.value.scrollSize]/100},w=()=>{i=!1,l.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",w),E(),u&&(a.value=!1)},S=()=>{u=!1,a.value=!!t.size},g=()=>{u=!0,a.value=i};mt(()=>{E(),document.removeEventListener("mouseup",w)});const E=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return qt(Lt(n,"scrollbarElement"),"mousemove",S),qt(Lt(n,"scrollbarElement"),"mouseleave",g),(O,C)=>(B(),ve(En,{name:y(r).b("fade"),persisted:""},{default:ce(()=>[ut(oe("div",{ref_key:"instance",ref:o,class:K([y(r).e("bar"),y(r).is(y(f).key)]),onMousedown:v},[oe("div",{ref_key:"thumb",ref:s,class:K(y(r).e("thumb")),style:et(y(d)),onMousedown:p},null,38)],34),[[Ut,O.always||a.value]])]),_:1},8,["name"]))}});var Ac=ze(TS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const OS=qe({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),$S=ue({__name:"bar",props:OS,setup(e,{expose:t}){const n=e,r=P(0),o=P(0);return t({handleScroll:l=>{if(l){const a=l.offsetHeight-Ar,i=l.offsetWidth-Ar;o.value=l.scrollTop*100/a*n.ratioY,r.value=l.scrollLeft*100/i*n.ratioX}}}),(l,a)=>(B(),re(Ue,null,[ie(Ac,{move:r.value,ratio:l.ratioX,size:l.width,always:l.always},null,8,["move","ratio","size","always"]),ie(Ac,{move:o.value,ratio:l.ratioY,size:l.height,vertical:"",always:l.always},null,8,["move","ratio","size","always"])],64))}});var AS=ze($S,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const MS=qe({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Ce([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),PS={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(lt)},RS="ElScrollbar",kS=ue({name:RS}),IS=ue({...kS,props:MS,emits:PS,setup(e,{expose:t,emit:n}){const r=e,o=Se("scrollbar");let s,l;const a=P(),i=P(),u=P(),c=P("0"),f=P("0"),d=P(),h=P(1),p=P(1),v=$(()=>{const C={};return r.height&&(C.height=Hr(r.height)),r.maxHeight&&(C.maxHeight=Hr(r.maxHeight)),[r.wrapStyle,C]}),b=$(()=>[r.wrapClass,o.e("wrap"),{[o.em("wrap","hidden-default")]:!r.native}]),m=$(()=>[o.e("view"),r.viewClass]),w=()=>{var C;i.value&&((C=d.value)==null||C.handleScroll(i.value),n("scroll",{scrollTop:i.value.scrollTop,scrollLeft:i.value.scrollLeft}))};function S(C,x){Pe(C)?i.value.scrollTo(C):lt(C)&<(x)&&i.value.scrollTo(C,x)}const g=C=>{lt(C)&&(i.value.scrollTop=C)},E=C=>{lt(C)&&(i.value.scrollLeft=C)},O=()=>{if(!i.value)return;const C=i.value.offsetHeight-Ar,x=i.value.offsetWidth-Ar,k=C**2/i.value.scrollHeight,M=x**2/i.value.scrollWidth,F=Math.max(k,r.minSize),A=Math.max(M,r.minSize);h.value=k/(C-k)/(F/(C-F)),p.value=M/(x-M)/(A/(x-A)),f.value=F+Arr.noresize,C=>{C?(s==null||s(),l==null||l()):({stop:s}=Br(u,O),l=qt("resize",O))},{immediate:!0}),de(()=>[r.maxHeight,r.height],()=>{r.native||Ke(()=>{var C;O(),i.value&&((C=d.value)==null||C.handleScroll(i.value))})}),it(hp,Xt({scrollbarElement:a,wrapElement:i})),Je(()=>{r.native||Ke(()=>{O()})}),qa(()=>O()),t({wrapRef:i,update:O,scrollTo:S,setScrollTop:g,setScrollLeft:E,handleScroll:w}),(C,x)=>(B(),re("div",{ref_key:"scrollbarRef",ref:a,class:K(y(o).b())},[oe("div",{ref_key:"wrapRef",ref:i,class:K(y(b)),style:et(y(v)),onScroll:w},[(B(),ve(st(C.tag),{ref_key:"resizeRef",ref:u,class:K(y(m)),style:et(C.viewStyle)},{default:ce(()=>[Me(C.$slots,"default")]),_:3},8,["class","style"]))],38),C.native?me("v-if",!0):(B(),ve(AS,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:C.always,"ratio-x":p.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var LS=ze(IS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const Np=kt(LS),NS=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],Fp=qe({role:{type:String,values:NS,default:"tooltip"}}),FS=ue({name:"ElPopper",inheritAttrs:!1}),BS=ue({...FS,props:Fp,setup(e,{expose:t}){const n=e,r=P(),o=P(),s=P(),l=P(),a=$(()=>n.role),i={triggerRef:r,popperInstanceRef:o,contentRef:s,referenceRef:l,role:a};return t(i),it(pi,i),(u,c)=>Me(u.$slots,"default")}});var HS=ze(BS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const Bp=qe({arrowOffset:{type:Number,default:5}}),DS=ue({name:"ElPopperArrow",inheritAttrs:!1}),zS=ue({...DS,props:Bp,setup(e,{expose:t}){const n=e,r=Se("popper"),{arrowOffset:o,arrowRef:s,arrowStyle:l}=Te(vp,void 0);return de(()=>n.arrowOffset,a=>{o.value=a}),mt(()=>{s.value=void 0}),t({arrowRef:s}),(a,i)=>(B(),re("span",{ref_key:"arrowRef",ref:s,class:K(y(r).e("arrow")),style:et(y(l)),"data-popper-arrow":""},null,6))}});var jS=ze(zS,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const WS="ElOnlyChild",KS=ue({name:WS,setup(e,{slots:t,attrs:n}){var r;const o=Te(Ip),s=sS((r=o==null?void 0:o.setForwardRef)!=null?r:at);return()=>{var l;const a=(l=t.default)==null?void 0:l.call(t,n);if(!a||a.length>1)return null;const i=Hp(a);return i?ut(wn(i,n),[[s]]):null}}});function Hp(e){if(!e)return null;const t=e;for(const n of t){if(Pe(n))switch(n.type){case _t:continue;case Qr:case"svg":return Mc(n);case Ue:return Hp(n.children);default:return n}return Mc(n)}return null}function Mc(e){const t=Se("only-child");return ie("span",{class:t.e("content")},[e])}const Dp=qe({virtualRef:{type:Ce(Object)},virtualTriggering:Boolean,onMouseenter:{type:Ce(Function)},onMouseleave:{type:Ce(Function)},onClick:{type:Ce(Function)},onKeydown:{type:Ce(Function)},onFocus:{type:Ce(Function)},onBlur:{type:Ce(Function)},onContextmenu:{type:Ce(Function)},id:String,open:Boolean}),VS=ue({name:"ElPopperTrigger",inheritAttrs:!1}),US=ue({...VS,props:Dp,setup(e,{expose:t}){const n=e,{role:r,triggerRef:o}=Te(pi,void 0);oS(o);const s=$(()=>a.value?n.id:void 0),l=$(()=>{if(r&&r.value==="tooltip")return n.open&&n.id?n.id:void 0}),a=$(()=>{if(r&&r.value!=="tooltip")return r.value}),i=$(()=>a.value?`${n.open}`:void 0);let u;return Je(()=>{de(()=>n.virtualRef,c=>{c&&(o.value=Fn(c))},{immediate:!0}),de(o,(c,f)=>{u==null||u(),u=void 0,Vn(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const p=n[d];p&&(c.addEventListener(d.slice(2).toLowerCase(),p),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),p))}),u=de([s,l,a,i],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,p)=>{fl(d[p])?c.removeAttribute(h):c.setAttribute(h,d[p])})},{immediate:!0})),Vn(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),mt(()=>{u==null||u(),u=void 0}),t({triggerRef:o}),(c,f)=>c.virtualTriggering?me("v-if",!0):(B(),ve(y(KS),nn({key:0},c.$attrs,{"aria-controls":y(s),"aria-describedby":y(l),"aria-expanded":y(i),"aria-haspopup":y(a)}),{default:ce(()=>[Me(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var qS=ze(US,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Pl="focus-trap.focus-after-trapped",Rl="focus-trap.focus-after-released",YS="focus-trap.focusout-prevented",Pc={cancelable:!0,bubbles:!1},GS={cancelable:!0,bubbles:!1},Rc="focusAfterTrapped",kc="focusAfterReleased",XS=Symbol("elFocusTrap"),Oi=P(),gl=P(0),$i=P(0);let os=0;const zp=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0||r===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},Ic=(e,t)=>{for(const n of e)if(!JS(n,t))return n},JS=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},ZS=e=>{const t=zp(e),n=Ic(t,e),r=Ic(t.reverse(),e);return[n,r]},QS=e=>e instanceof HTMLInputElement&&"select"in e,Pn=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),$i.value=window.performance.now(),e!==n&&QS(e)&&t&&e.select()}};function Lc(e,t){const n=[...e],r=e.indexOf(t);return r!==-1&&n.splice(r,1),n}const e2=()=>{let e=[];return{push:r=>{const o=e[0];o&&r!==o&&o.pause(),e=Lc(e,r),e.unshift(r)},remove:r=>{var o,s;e=Lc(e,r),(s=(o=e[0])==null?void 0:o.resume)==null||s.call(o)}}},t2=(e,t=!1)=>{const n=document.activeElement;for(const r of e)if(Pn(r,t),document.activeElement!==n)return},Nc=e2(),n2=()=>gl.value>$i.value,ss=()=>{Oi.value="pointer",gl.value=window.performance.now()},Fc=()=>{Oi.value="keyboard",gl.value=window.performance.now()},r2=()=>(Je(()=>{os===0&&(document.addEventListener("mousedown",ss),document.addEventListener("touchstart",ss),document.addEventListener("keydown",Fc)),os++}),mt(()=>{os--,os<=0&&(document.removeEventListener("mousedown",ss),document.removeEventListener("touchstart",ss),document.removeEventListener("keydown",Fc))}),{focusReason:Oi,lastUserFocusTimestamp:gl,lastAutomatedFocusTimestamp:$i}),ls=e=>new CustomEvent(YS,{...GS,detail:e}),o2=ue({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Rc,kc,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=P();let r,o;const{focusReason:s}=r2();eS(p=>{e.trapped&&!l.paused&&t("release-requested",p)});const l={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},a=p=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:v,altKey:b,ctrlKey:m,metaKey:w,currentTarget:S,shiftKey:g}=p,{loop:E}=e,O=v===vt.tab&&!b&&!m&&!w,C=document.activeElement;if(O&&C){const x=S,[k,M]=ZS(x);if(k&&M){if(!g&&C===M){const A=ls({focusReason:s.value});t("focusout-prevented",A),A.defaultPrevented||(p.preventDefault(),E&&Pn(k,!0))}else if(g&&[k,x].includes(C)){const A=ls({focusReason:s.value});t("focusout-prevented",A),A.defaultPrevented||(p.preventDefault(),E&&Pn(M,!0))}}else if(C===x){const A=ls({focusReason:s.value});t("focusout-prevented",A),A.defaultPrevented||p.preventDefault()}}};it(XS,{focusTrapRef:n,onKeydown:a}),de(()=>e.focusTrapEl,p=>{p&&(n.value=p)},{immediate:!0}),de([n],([p],[v])=>{p&&(p.addEventListener("keydown",a),p.addEventListener("focusin",c),p.addEventListener("focusout",f)),v&&(v.removeEventListener("keydown",a),v.removeEventListener("focusin",c),v.removeEventListener("focusout",f))});const i=p=>{t(Rc,p)},u=p=>t(kc,p),c=p=>{const v=y(n);if(!v)return;const b=p.target,m=p.relatedTarget,w=b&&v.contains(b);e.trapped||m&&v.contains(m)||(r=m),w&&t("focusin",p),!l.paused&&e.trapped&&(w?o=b:Pn(o,!0))},f=p=>{const v=y(n);if(!(l.paused||!v))if(e.trapped){const b=p.relatedTarget;!fl(b)&&!v.contains(b)&&setTimeout(()=>{if(!l.paused&&e.trapped){const m=ls({focusReason:s.value});t("focusout-prevented",m),m.defaultPrevented||Pn(o,!0)}},0)}else{const b=p.target;b&&v.contains(b)||t("focusout",p)}};async function d(){await Ke();const p=y(n);if(p){Nc.push(l);const v=p.contains(document.activeElement)?r:document.activeElement;if(r=v,!p.contains(v)){const m=new Event(Pl,Pc);p.addEventListener(Pl,i),p.dispatchEvent(m),m.defaultPrevented||Ke(()=>{let w=e.focusStartEl;xe(w)||(Pn(w),document.activeElement!==w&&(w="first")),w==="first"&&t2(zp(p),!0),(document.activeElement===v||w==="container")&&Pn(p)})}}}function h(){const p=y(n);if(p){p.removeEventListener(Pl,i);const v=new CustomEvent(Rl,{...Pc,detail:{focusReason:s.value}});p.addEventListener(Rl,u),p.dispatchEvent(v),!v.defaultPrevented&&(s.value=="keyboard"||!n2()||p.contains(document.activeElement))&&Pn(r??document.body),p.removeEventListener(Rl,i),Nc.remove(l)}}return Je(()=>{e.trapped&&d(),de(()=>e.trapped,p=>{p?d():h()})}),mt(()=>{e.trapped&&h()}),{onKeydown:a}}});function s2(e,t,n,r,o,s){return Me(e.$slots,"default",{handleKeydown:e.onKeydown})}var jp=ze(o2,[["render",s2],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const l2=["fixed","absolute"],a2=qe({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Ce(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:bi,default:"bottom"},popperOptions:{type:Ce(Object),default:()=>({})},strategy:{type:String,values:l2,default:"absolute"}}),Wp=qe({...a2,id:String,style:{type:Ce([String,Array,Object])},className:{type:Ce([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Ce([String,Array,Object])},popperStyle:{type:Ce([String,Array,Object])},referenceEl:{type:Ce(Object)},triggerTargetEl:{type:Ce(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),i2={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},u2=(e,t=[])=>{const{placement:n,strategy:r,popperOptions:o}=e,s={placement:n,strategy:r,...o,modifiers:[...f2(e),...t]};return d2(s,o==null?void 0:o.modifiers),s},c2=e=>{if(Xe)return Fn(e)};function f2(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:r}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:r}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function d2(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const p2=0,h2=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:r,role:o}=Te(pi,void 0),s=P(),l=P(),a=$(()=>({name:"eventListeners",enabled:!!e.visible})),i=$(()=>{var m;const w=y(s),S=(m=y(l))!=null?m:p2;return{name:"arrow",enabled:!Gw(w),options:{element:w,padding:S}}}),u=$(()=>({onFirstUpdate:()=>{p()},...u2(e,[y(i),y(a)])})),c=$(()=>c2(e.referenceEl)||y(r)),{attributes:f,state:d,styles:h,update:p,forceUpdate:v,instanceRef:b}=XE(c,n,u);return de(b,m=>t.value=m),Je(()=>{de(()=>{var m;return(m=y(c))==null?void 0:m.getBoundingClientRect()},()=>{p()})}),{attributes:f,arrowRef:s,contentRef:n,instanceRef:b,state:d,styles:h,role:o,forceUpdate:v,update:p}},v2=(e,{attributes:t,styles:n,role:r})=>{const{nextZIndex:o}=ml(),s=Se("popper"),l=$(()=>y(t).popper),a=P(e.zIndex||o()),i=$(()=>[s.b(),s.is("pure",e.pure),s.is(e.effect),e.popperClass]),u=$(()=>[{zIndex:y(a)},e.popperStyle||{},y(n).popper]),c=$(()=>r.value==="dialog"?"false":void 0),f=$(()=>y(n).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:l,contentClass:i,contentStyle:u,contentZIndex:a,updateZIndex:()=>{a.value=e.zIndex||o()}}},m2=(e,t)=>{const n=P(!1),r=P();return{focusStartRef:r,trapped:n,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(r.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!n.value&&(u.target&&(r.value=u.target),n.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},g2=ue({name:"ElPopperContent"}),y2=ue({...g2,props:Wp,emits:i2,setup(e,{expose:t,emit:n}){const r=e,{focusStartRef:o,trapped:s,onFocusAfterReleased:l,onFocusAfterTrapped:a,onFocusInTrap:i,onFocusoutPrevented:u,onReleaseRequested:c}=m2(r,n),{attributes:f,arrowRef:d,contentRef:h,styles:p,instanceRef:v,role:b,update:m}=h2(r),{ariaModal:w,arrowStyle:S,contentAttrs:g,contentClass:E,contentStyle:O,updateZIndex:C}=v2(r,{styles:p,attributes:f,role:b}),x=Te(Ds,void 0),k=P();it(vp,{arrowStyle:S,arrowRef:d,arrowOffset:k}),x&&(x.addInputId||x.removeInputId)&&it(Ds,{...x,addInputId:at,removeInputId:at});let M;const F=(D=!0)=>{m(),D&&C()},A=()=>{F(!1),r.visible&&r.focusOnShow?s.value=!0:r.visible===!1&&(s.value=!1)};return Je(()=>{de(()=>r.triggerTargetEl,(D,Q)=>{M==null||M(),M=void 0;const V=y(D||h.value),Z=y(Q||h.value);Vn(V)&&(M=de([b,()=>r.ariaLabel,w,()=>r.id],se=>{["role","aria-label","aria-modal","id"].forEach((j,R)=>{fl(se[R])?V.removeAttribute(j):V.setAttribute(j,se[R])})},{immediate:!0})),Z!==V&&Vn(Z)&&["role","aria-label","aria-modal","id"].forEach(se=>{Z.removeAttribute(se)})},{immediate:!0}),de(()=>r.visible,A,{immediate:!0})}),mt(()=>{M==null||M(),M=void 0}),t({popperContentRef:h,popperInstanceRef:v,updatePopper:F,contentStyle:O}),(D,Q)=>(B(),re("div",nn({ref_key:"contentRef",ref:h},y(g),{style:y(O),class:y(E),tabindex:"-1",onMouseenter:Q[0]||(Q[0]=V=>D.$emit("mouseenter",V)),onMouseleave:Q[1]||(Q[1]=V=>D.$emit("mouseleave",V))}),[ie(y(jp),{trapped:y(s),"trap-on-focus-in":!0,"focus-trap-el":y(h),"focus-start-el":y(o),onFocusAfterTrapped:y(a),onFocusAfterReleased:y(l),onFocusin:y(i),onFocusoutPrevented:y(u),onReleaseRequested:y(c)},{default:ce(()=>[Me(D.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var b2=ze(y2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const w2=kt(HS),_2=Se("tooltip"),Kp=qe({...rS,...Wp,appendTo:{type:Ce([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Ce(Boolean),default:null},transition:{type:String,default:`${_2.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),Vp=qe({...Dp,disabled:Boolean,trigger:{type:Ce([String,Array]),default:"hover"},triggerKeys:{type:Ce(Array),default:()=>[vt.enter,vt.space]}}),{useModelToggleProps:C2,useModelToggleEmits:E2,useModelToggle:S2}=yp("visible"),x2=qe({...Fp,...C2,...Kp,...Vp,...Bp,showArrow:{type:Boolean,default:!0}}),T2=[...E2,"before-show","before-hide","show","hide","open","close"],O2=(e,t)=>fe(e)?e.includes(t):e===t,xr=(e,t,n)=>r=>{O2(y(e),t)&&n(r)},$2=ue({name:"ElTooltipTrigger"}),A2=ue({...$2,props:Vp,setup(e,{expose:t}){const n=e,r=Se("tooltip"),{controlled:o,id:s,open:l,onOpen:a,onClose:i,onToggle:u}=Te(hi,void 0),c=P(null),f=()=>{if(y(o)||n.disabled)return!0},d=Lt(n,"trigger"),h=yn(f,xr(d,"hover",a)),p=yn(f,xr(d,"hover",i)),v=yn(f,xr(d,"click",g=>{g.button===0&&u(g)})),b=yn(f,xr(d,"focus",a)),m=yn(f,xr(d,"focus",i)),w=yn(f,xr(d,"contextmenu",g=>{g.preventDefault(),u(g)})),S=yn(f,g=>{const{code:E}=g;n.triggerKeys.includes(E)&&(g.preventDefault(),u(g))});return t({triggerRef:c}),(g,E)=>(B(),ve(y(qS),{id:y(s),"virtual-ref":g.virtualRef,open:y(l),"virtual-triggering":g.virtualTriggering,class:K(y(r).e("trigger")),onBlur:y(m),onClick:y(v),onContextmenu:y(w),onFocus:y(b),onMouseenter:y(h),onMouseleave:y(p),onKeydown:y(S)},{default:ce(()=>[Me(g.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var M2=ze(A2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const P2=ue({name:"ElTooltipContent",inheritAttrs:!1}),R2=ue({...P2,props:Kp,setup(e,{expose:t}){const n=e,{selector:r}=Rp(),o=P(null),s=P(!1),{controlled:l,id:a,open:i,trigger:u,onClose:c,onOpen:f,onShow:d,onHide:h,onBeforeShow:p,onBeforeHide:v}=Te(hi,void 0),b=$(()=>n.persistent);mt(()=>{s.value=!0});const m=$(()=>y(b)?!0:y(i)),w=$(()=>n.disabled?!1:y(i)),S=$(()=>n.appendTo||r.value),g=$(()=>{var V;return(V=n.style)!=null?V:{}}),E=$(()=>!y(i)),O=()=>{h()},C=()=>{if(y(l))return!0},x=yn(C,()=>{n.enterable&&y(u)==="hover"&&f()}),k=yn(C,()=>{y(u)==="hover"&&c()}),M=()=>{var V,Z;(Z=(V=o.value)==null?void 0:V.updatePopper)==null||Z.call(V),p==null||p()},F=()=>{v==null||v()},A=()=>{d(),Q=S1($(()=>{var V;return(V=o.value)==null?void 0:V.popperContentRef}),()=>{if(y(l))return;y(u)!=="hover"&&c()})},D=()=>{n.virtualTriggering||c()};let Q;return de(()=>y(i),V=>{V||Q==null||Q()},{flush:"post"}),de(()=>n.content,()=>{var V,Z;(Z=(V=o.value)==null?void 0:V.updatePopper)==null||Z.call(V)}),t({contentRef:o}),(V,Z)=>(B(),ve(Tm,{disabled:!V.teleported,to:y(S)},[ie(En,{name:V.transition,onAfterLeave:O,onBeforeEnter:M,onAfterEnter:A,onBeforeLeave:F},{default:ce(()=>[y(m)?ut((B(),ve(y(b2),nn({key:0,id:y(a),ref_key:"contentRef",ref:o},V.$attrs,{"aria-label":V.ariaLabel,"aria-hidden":y(E),"boundaries-padding":V.boundariesPadding,"fallback-placements":V.fallbackPlacements,"gpu-acceleration":V.gpuAcceleration,offset:V.offset,placement:V.placement,"popper-options":V.popperOptions,strategy:V.strategy,effect:V.effect,enterable:V.enterable,pure:V.pure,"popper-class":V.popperClass,"popper-style":[V.popperStyle,y(g)],"reference-el":V.referenceEl,"trigger-target-el":V.triggerTargetEl,visible:y(w),"z-index":V.zIndex,onMouseenter:y(x),onMouseleave:y(k),onBlur:D,onClose:y(c)}),{default:ce(()=>[s.value?me("v-if",!0):Me(V.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Ut,y(w)]]):me("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var k2=ze(R2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const I2=["innerHTML"],L2={key:1},N2=ue({name:"ElTooltip"}),F2=ue({...N2,props:x2,emits:T2,setup(e,{expose:t,emit:n}){const r=e;nS();const o=js(),s=P(),l=P(),a=()=>{var m;const w=y(s);w&&((m=w.popperInstanceRef)==null||m.update())},i=P(!1),u=P(),{show:c,hide:f,hasUpdateHandler:d}=S2({indicator:i,toggleReason:u}),{onOpen:h,onClose:p}=kp({showAfter:Lt(r,"showAfter"),hideAfter:Lt(r,"hideAfter"),open:c,close:f}),v=$(()=>on(r.visible)&&!d.value);it(hi,{controlled:v,id:o,open:zo(i),trigger:Lt(r,"trigger"),onOpen:m=>{h(m)},onClose:m=>{p(m)},onToggle:m=>{y(i)?p(m):h(m)},onShow:()=>{n("show",u.value)},onHide:()=>{n("hide",u.value)},onBeforeShow:()=>{n("before-show",u.value)},onBeforeHide:()=>{n("before-hide",u.value)},updatePopper:a}),de(()=>r.disabled,m=>{m&&i.value&&(i.value=!1)});const b=()=>{var m,w;const S=(w=(m=l.value)==null?void 0:m.contentRef)==null?void 0:w.popperContentRef;return S&&S.contains(document.activeElement)};return Zf(()=>i.value&&f()),t({popperRef:s,contentRef:l,isFocusInsideContent:b,updatePopper:a,onOpen:h,onClose:p,hide:f}),(m,w)=>(B(),ve(y(w2),{ref_key:"popperRef",ref:s,role:m.role},{default:ce(()=>[ie(M2,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:ce(()=>[m.$slots.default?Me(m.$slots,"default",{key:0}):me("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ie(k2,{ref_key:"contentRef",ref:l,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:ce(()=>[Me(m.$slots,"content",{},()=>[m.rawContent?(B(),re("span",{key:0,innerHTML:m.content},null,8,I2)):(B(),re("span",L2,Ze(m.content),1))]),m.showArrow?(B(),ve(y(jS),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):me("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var B2=ze(F2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ai=kt(B2),H2=qe({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),D2=["textContent"],z2=ue({name:"ElBadge"}),j2=ue({...z2,props:H2,setup(e,{expose:t}){const n=e,r=Se("badge"),o=$(()=>n.isDot?"":lt(n.value)&<(n.max)?n.max(B(),re("div",{class:K(y(r).b())},[Me(s.$slots,"default"),ie(En,{name:`${y(r).namespace.value}-zoom-in-center`,persisted:""},{default:ce(()=>[ut(oe("sup",{class:K([y(r).e("content"),y(r).em("content",s.type),y(r).is("fixed",!!s.$slots.default),y(r).is("dot",s.isDot)]),textContent:Ze(y(o))},null,10,D2),[[Ut,!s.hidden&&(y(o)||s.isDot)]])]),_:1},8,["name"])],2))}});var W2=ze(j2,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const K2=kt(W2),V2=(e,t)=>{vi({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},$(()=>e.type==="text"));const n=Te(fp,void 0),r=qn("button"),{form:o}=ro(),s=br($(()=>n==null?void 0:n.size)),l=Vo(),a=P(),i=ol(),u=$(()=>e.type||(n==null?void 0:n.type)||""),c=$(()=>{var h,p,v;return(v=(p=e.autoInsertSpace)!=null?p:(h=r.value)==null?void 0:h.autoInsertSpace)!=null?v:!1}),f=$(()=>{var h;const p=(h=i.default)==null?void 0:h.call(i);if(c.value&&(p==null?void 0:p.length)===1){const v=p[0];if((v==null?void 0:v.type)===Qr){const b=v.children;return/^\p{Unified_Ideograph}{2}$/u.test(b.trim())}}return!1});return{_disabled:l,_size:s,_type:u,_ref:a,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(o==null||o.resetFields()),t("click",h)}}},U2=["default","primary","success","warning","info","danger","text",""],q2=["button","submit","reset"],ha=qe({size:no,disabled:Boolean,type:{type:String,values:U2,default:""},icon:{type:Kt},nativeType:{type:String,values:q2,default:"button"},loading:Boolean,loadingIcon:{type:Kt,default:()=>dl},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),Y2={click:e=>e instanceof MouseEvent};function dt(e,t){G2(e)&&(e="100%");var n=X2(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function as(e){return Math.min(1,Math.max(0,e))}function G2(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function X2(e){return typeof e=="string"&&e.indexOf("%")!==-1}function Up(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function is(e){return e<=1?"".concat(Number(e)*100,"%"):e}function cr(e){return e.length===1?"0"+e:String(e)}function J2(e,t,n){return{r:dt(e,255)*255,g:dt(t,255)*255,b:dt(n,255)*255}}function Bc(e,t,n){e=dt(e,255),t=dt(t,255),n=dt(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=0,a=(r+o)/2;if(r===o)l=0,s=0;else{var i=r-o;switch(l=a>.5?i/(2-r-o):i/(r+o),r){case e:s=(t-n)/i+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Z2(e,t,n){var r,o,s;if(e=dt(e,360),t=dt(t,100),n=dt(n,100),t===0)o=n,s=n,r=n;else{var l=n<.5?n*(1+t):n+t-n*t,a=2*n-l;r=kl(a,l,e+1/3),o=kl(a,l,e),s=kl(a,l,e-1/3)}return{r:r*255,g:o*255,b:s*255}}function Hc(e,t,n){e=dt(e,255),t=dt(t,255),n=dt(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=r,a=r-o,i=r===0?0:a/r;if(r===o)s=0;else{switch(r){case e:s=(t-n)/a+(t>16,g:(e&65280)>>8,b:e&255}}var va={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function rx(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,s=null,l=!1,a=!1;return typeof e=="string"&&(e=lx(e)),typeof e=="object"&&(hn(e.r)&&hn(e.g)&&hn(e.b)?(t=J2(e.r,e.g,e.b),l=!0,a=String(e.r).substr(-1)==="%"?"prgb":"rgb"):hn(e.h)&&hn(e.s)&&hn(e.v)?(r=is(e.s),o=is(e.v),t=Q2(e.h,r,o),l=!0,a="hsv"):hn(e.h)&&hn(e.s)&&hn(e.l)&&(r=is(e.s),s=is(e.l),t=Z2(e.h,r,s),l=!0,a="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=Up(n),{ok:l,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var ox="[-\\+]?\\d+%?",sx="[-\\+]?\\d*\\.\\d+%?",Bn="(?:".concat(sx,")|(?:").concat(ox,")"),Il="[\\s|\\(]+(".concat(Bn,")[,|\\s]+(").concat(Bn,")[,|\\s]+(").concat(Bn,")\\s*\\)?"),Ll="[\\s|\\(]+(".concat(Bn,")[,|\\s]+(").concat(Bn,")[,|\\s]+(").concat(Bn,")[,|\\s]+(").concat(Bn,")\\s*\\)?"),zt={CSS_UNIT:new RegExp(Bn),rgb:new RegExp("rgb"+Il),rgba:new RegExp("rgba"+Ll),hsl:new RegExp("hsl"+Il),hsla:new RegExp("hsla"+Ll),hsv:new RegExp("hsv"+Il),hsva:new RegExp("hsva"+Ll),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function lx(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(va[e])e=va[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=zt.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=zt.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=zt.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=zt.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=zt.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=zt.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=zt.hex8.exec(e),n?{r:Ot(n[1]),g:Ot(n[2]),b:Ot(n[3]),a:zc(n[4]),format:t?"name":"hex8"}:(n=zt.hex6.exec(e),n?{r:Ot(n[1]),g:Ot(n[2]),b:Ot(n[3]),format:t?"name":"hex"}:(n=zt.hex4.exec(e),n?{r:Ot(n[1]+n[1]),g:Ot(n[2]+n[2]),b:Ot(n[3]+n[3]),a:zc(n[4]+n[4]),format:t?"name":"hex8"}:(n=zt.hex3.exec(e),n?{r:Ot(n[1]+n[1]),g:Ot(n[2]+n[2]),b:Ot(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function hn(e){return Boolean(zt.CSS_UNIT.exec(String(e)))}var qp=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var r;if(t instanceof e)return t;typeof t=="number"&&(t=nx(t)),this.originalInput=t;var o=rx(t);this.originalInput=t,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=n.format)!==null&&r!==void 0?r:o.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,r,o,s=t.r/255,l=t.g/255,a=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?r=l/12.92:r=Math.pow((l+.055)/1.055,2.4),a<=.03928?o=a/12.92:o=Math.pow((a+.055)/1.055,2.4),.2126*n+.7152*r+.0722*o},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=Up(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Hc(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Hc(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsva(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Bc(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Bc(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsla(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Dc(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),ex(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(r,")"):"rgba(".concat(t,", ").concat(n,", ").concat(r,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(dt(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(dt(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Dc(this.r,this.g,this.b,!1),n=0,r=Object.entries(va);n=0,s=!n&&o&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=as(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=as(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=as(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=as(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var r=this.toRgb(),o=new e(t).toRgb(),s=n/100,l={r:(o.r-r.r)*s+r.r,g:(o.g-r.g)*s+r.g,b:(o.b-r.b)*s+r.b,a:(o.a-r.a)*s+r.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var r=this.toHsl(),o=360/n,s=[this];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,s.push(new e(r));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),r=n.h,o=n.s,s=n.v,l=[],a=1/t;t--;)l.push(new e({h:r,s:o,v:s})),s=(s+a)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb(),o=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/o,g:(n.g*n.a+r.g*r.a*(1-n.a))/o,b:(n.b*n.a+r.b*r.a*(1-n.a))/o,a:o})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,o=[this],s=360/t,l=1;l{let r={};const o=e.color;if(o){const s=new qp(o),l=e.dark?s.tint(20).toString():An(s,20);if(e.plain)r=n.cssVarBlock({"bg-color":e.dark?An(s,90):s.tint(90).toString(),"text-color":o,"border-color":e.dark?An(s,50):s.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":o,"hover-border-color":o,"active-bg-color":l,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":l}),t.value&&(r[n.cssVarBlockName("disabled-bg-color")]=e.dark?An(s,90):s.tint(90).toString(),r[n.cssVarBlockName("disabled-text-color")]=e.dark?An(s,50):s.tint(50).toString(),r[n.cssVarBlockName("disabled-border-color")]=e.dark?An(s,80):s.tint(80).toString());else{const a=e.dark?An(s,30):s.tint(30).toString(),i=s.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(r=n.cssVarBlock({"bg-color":o,"text-color":i,"border-color":o,"hover-bg-color":a,"hover-text-color":i,"hover-border-color":a,"active-bg-color":l,"active-border-color":l}),t.value){const u=e.dark?An(s,50):s.tint(50).toString();r[n.cssVarBlockName("disabled-bg-color")]=u,r[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,r[n.cssVarBlockName("disabled-border-color")]=u}}}return r})}const ix=["aria-disabled","disabled","autofocus","type"],ux=ue({name:"ElButton"}),cx=ue({...ux,props:ha,emits:Y2,setup(e,{expose:t,emit:n}){const r=e,o=ax(r),s=Se("button"),{_ref:l,_size:a,_type:i,_disabled:u,shouldAddSpace:c,handleClick:f}=V2(r,n);return t({ref:l,size:a,type:i,disabled:u,shouldAddSpace:c}),(d,h)=>(B(),re("button",{ref_key:"_ref",ref:l,class:K([y(s).b(),y(s).m(y(i)),y(s).m(y(a)),y(s).is("disabled",y(u)),y(s).is("loading",d.loading),y(s).is("plain",d.plain),y(s).is("round",d.round),y(s).is("circle",d.circle),y(s).is("text",d.text),y(s).is("link",d.link),y(s).is("has-bg",d.bg)]),"aria-disabled":y(u)||d.loading,disabled:y(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:et(y(o)),onClick:h[0]||(h[0]=(...p)=>y(f)&&y(f)(...p))},[d.loading?(B(),re(Ue,{key:0},[d.$slots.loading?Me(d.$slots,"loading",{key:0}):(B(),ve(y(ot),{key:1,class:K(y(s).is("loading"))},{default:ce(()=>[(B(),ve(st(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(B(),ve(y(ot),{key:1},{default:ce(()=>[d.icon?(B(),ve(st(d.icon),{key:0})):Me(d.$slots,"icon",{key:1})]),_:3})):me("v-if",!0),d.$slots.default?(B(),re("span",{key:2,class:K({[y(s).em("text","expand")]:y(c)})},[Me(d.$slots,"default")],2)):me("v-if",!0)],14,ix))}});var fx=ze(cx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const dx={size:ha.size,type:ha.type},px=ue({name:"ElButtonGroup"}),hx=ue({...px,props:dx,setup(e){const t=e;it(fp,Xt({size:Lt(t,"size"),type:Lt(t,"type")}));const n=Se("button");return(r,o)=>(B(),re("div",{class:K(`${y(n).b("group")}`)},[Me(r.$slots,"default")],2))}});var Yp=ze(hx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Gp=kt(fx,{ButtonGroup:Yp});Sr(Yp);const Rn=new Map;let jc;Xe&&(document.addEventListener("mousedown",e=>jc=e),document.addEventListener("mouseup",e=>{for(const t of Rn.values())for(const{documentHandler:n}of t)n(e,jc)}));function Wc(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:Vn(t.arg)&&n.push(t.arg),function(r,o){const s=t.instance.popperRef,l=r.target,a=o==null?void 0:o.target,i=!t||!t.instance,u=!l||!a,c=e.contains(l)||e.contains(a),f=e===l,d=n.length&&n.some(p=>p==null?void 0:p.contains(l))||n.length&&n.includes(a),h=s&&(s.contains(l)||s.contains(a));i||u||c||f||d||h||t.value(r,o)}}const vx={beforeMount(e,t){Rn.has(e)||Rn.set(e,[]),Rn.get(e).push({documentHandler:Wc(e,t),bindingFn:t.value})},updated(e,t){Rn.has(e)||Rn.set(e,[]);const n=Rn.get(e),r=n.findIndex(s=>s.bindingFn===t.oldValue),o={documentHandler:Wc(e,t),bindingFn:t.value};r>=0?n.splice(r,1,o):n.push(o)},unmounted(e){Rn.delete(e)}},ma="_trap-focus-children",fr=[],Kc=e=>{if(fr.length===0)return;const t=fr[fr.length-1][ma];if(t.length>0&&e.code===vt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,r=e.target===t[0],o=e.target===t[t.length-1];r&&n&&(e.preventDefault(),t[t.length-1].focus()),o&&!n&&(e.preventDefault(),t[0].focus())}},mx={beforeMount(e){e[ma]=Ju(e),fr.push(e),fr.length<=1&&document.addEventListener("keydown",Kc)},updated(e){Ke(()=>{e[ma]=Ju(e)})},unmounted(){fr.shift(),fr.length===0&&document.removeEventListener("keydown",Kc)}};var Vc=!1,lr,ga,ya,bs,ws,Xp,_s,ba,wa,_a,Jp,Ca,Ea,Zp,Qp;function yt(){if(!Vc){Vc=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Ca=/\b(iPhone|iP[ao]d)/.exec(e),Ea=/\b(iP[ao]d)/.exec(e),_a=/Android/i.exec(e),Zp=/FBAN\/\w+;/i.exec(e),Qp=/Mobile/i.exec(e),Jp=!!/Win64/.exec(e),t){lr=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,lr&&document&&document.documentMode&&(lr=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(e);Xp=r?parseFloat(r[1])+4:lr,ga=t[2]?parseFloat(t[2]):NaN,ya=t[3]?parseFloat(t[3]):NaN,bs=t[4]?parseFloat(t[4]):NaN,bs?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),ws=t&&t[1]?parseFloat(t[1]):NaN):ws=NaN}else lr=ga=ya=ws=bs=NaN;if(n){if(n[1]){var o=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);_s=o?parseFloat(o[1].replace("_",".")):!0}else _s=!1;ba=!!n[2],wa=!!n[3]}else _s=ba=wa=!1}}var Sa={ie:function(){return yt()||lr},ieCompatibilityMode:function(){return yt()||Xp>lr},ie64:function(){return Sa.ie()&&Jp},firefox:function(){return yt()||ga},opera:function(){return yt()||ya},webkit:function(){return yt()||bs},safari:function(){return Sa.webkit()},chrome:function(){return yt()||ws},windows:function(){return yt()||ba},osx:function(){return yt()||_s},linux:function(){return yt()||wa},iphone:function(){return yt()||Ca},mobile:function(){return yt()||Ca||Ea||_a||Qp},nativeApp:function(){return yt()||Zp},android:function(){return yt()||_a},ipad:function(){return yt()||Ea}},gx=Sa,us=!!(typeof window<"u"&&window.document&&window.document.createElement),yx={canUseDOM:us,canUseWorkers:typeof Worker<"u",canUseEventListeners:us&&!!(window.addEventListener||window.attachEvent),canUseViewport:us&&!!window.screen,isInWorker:!us},eh=yx,th;eh.canUseDOM&&(th=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function bx(e,t){if(!eh.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var o=document.createElement("div");o.setAttribute(n,"return;"),r=typeof o[n]=="function"}return!r&&th&&e==="wheel"&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var wx=bx,Uc=10,qc=40,Yc=800;function nh(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*Uc,o=n*Uc,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(e.deltaMode==1?(r*=qc,o*=qc):(r*=Yc,o*=Yc)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}nh.getEventType=function(){return gx.firefox()?"DOMMouseScroll":wx("wheel")?"wheel":"mousewheel"};var _x=nh;/** -* Checks if an event is supported in the current execution environment. -* -* NOTE: This will not work correctly for non-generic events such as `change`, -* `reset`, `load`, `error`, and `select`. -* -* Borrows from Modernizr. -* -* @param {string} eventNameSuffix Event name, e.g. "click". -* @param {?boolean} capture Check if the capture phase is supported. -* @return {boolean} True if the event is supported. -* @internal -* @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const Cx=function(e,t){if(e&&e.addEventListener){const n=function(r){const o=_x(r);t&&Reflect.apply(t,this,[r,o])};e.addEventListener("wheel",n,{passive:!0})}},Ex={beforeMount(e,t){Cx(e,t.value)}},rh={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:no,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},oh={[un]:e=>xe(e)||lt(e)||on(e),change:e=>xe(e)||lt(e)||on(e)},Sx=({model:e,isChecked:t})=>{const n=Te(to,void 0),r=$(()=>{var s,l;const a=(s=n==null?void 0:n.max)==null?void 0:s.value,i=(l=n==null?void 0:n.min)==null?void 0:l.value;return!Lo(a)&&e.value.length>=a&&!t.value||!Lo(i)&&e.value.length<=i&&t.value});return{isDisabled:Vo($(()=>(n==null?void 0:n.disabled.value)||r.value)),isLimitDisabled:r}},xx=(e,{model:t,isLimitExceeded:n,hasOwnLabel:r,isDisabled:o,isLabeledByFormItem:s})=>{const l=Te(to,void 0),{formItem:a}=ro(),{emit:i}=We();function u(p){var v,b;return p===e.trueLabel||p===!0?(v=e.trueLabel)!=null?v:!0:(b=e.falseLabel)!=null?b:!1}function c(p,v){i("change",u(p),v)}function f(p){if(n.value)return;const v=p.target;i("change",u(v.checked),p)}async function d(p){n.value||!r.value&&!o.value&&s.value&&(p.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ke(),c(t.value,p)))}const h=$(()=>(l==null?void 0:l.validateEvent)||e.validateEvent);return de(()=>e.modelValue,()=>{h.value&&(a==null||a.validate("change").catch(p=>void 0))}),{handleChange:f,onClickRoot:d}},Tx=e=>{const t=P(!1),{emit:n}=We(),r=Te(to,void 0),o=$(()=>Lo(r)===!1),s=P(!1);return{model:$({get(){var a,i;return o.value?(a=r==null?void 0:r.modelValue)==null?void 0:a.value:(i=e.modelValue)!=null?i:t.value},set(a){var i,u;o.value&&fe(a)?(s.value=((i=r==null?void 0:r.max)==null?void 0:i.value)!==void 0&&a.length>(r==null?void 0:r.max.value),s.value===!1&&((u=r==null?void 0:r.changeEvent)==null||u.call(r,a))):(n(un,a),t.value=a)}}),isGroup:o,isLimitExceeded:s}},Ox=(e,t,{model:n})=>{const r=Te(to,void 0),o=P(!1),s=$(()=>{const u=n.value;return on(u)?u:fe(u)?Pe(e.label)?u.map(Ie).some(c=>Yw(c,e.label)):u.map(Ie).includes(e.label):u!=null?u===e.trueLabel:!!u}),l=br($(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value}),{prop:!0}),a=br($(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value})),i=$(()=>!!(t.default||e.label));return{checkboxButtonSize:l,isChecked:s,isFocused:o,checkboxSize:a,hasOwnLabel:i}},$x=(e,{model:t})=>{function n(){fe(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&n()},sh=(e,t)=>{const{formItem:n}=ro(),{model:r,isGroup:o,isLimitExceeded:s}=Tx(e),{isFocused:l,isChecked:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c}=Ox(e,t,{model:r}),{isDisabled:f}=Sx({model:r,isChecked:a}),{inputId:d,isLabeledByFormItem:h}=hl(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:o}),{handleChange:p,onClickRoot:v}=xx(e,{model:r,isLimitExceeded:s,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return $x(e,{model:r}),{inputId:d,isLabeledByFormItem:h,isChecked:a,isDisabled:f,isFocused:l,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:r,handleChange:p,onClickRoot:v}},Ax=["tabindex","role","aria-checked"],Mx=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],Px=["id","aria-hidden","disabled","value","name","tabindex"],Rx=ue({name:"ElCheckbox"}),kx=ue({...Rx,props:rh,emits:oh,setup(e){const t=e,n=ol(),{inputId:r,isLabeledByFormItem:o,isChecked:s,isDisabled:l,isFocused:a,checkboxSize:i,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=sh(t,n),h=Se("checkbox"),p=$(()=>[h.b(),h.m(i.value),h.is("disabled",l.value),h.is("bordered",t.border),h.is("checked",s.value)]),v=$(()=>[h.e("input"),h.is("disabled",l.value),h.is("checked",s.value),h.is("indeterminate",t.indeterminate),h.is("focus",a.value)]);return(b,m)=>(B(),ve(st(!y(u)&&y(o)?"span":"label"),{class:K(y(p)),"aria-controls":b.indeterminate?b.controls:null,onClick:y(d)},{default:ce(()=>[oe("span",{class:K(y(v)),tabindex:b.indeterminate?0:void 0,role:b.indeterminate?"checkbox":void 0,"aria-checked":b.indeterminate?"mixed":void 0},[b.trueLabel||b.falseLabel?ut((B(),re("input",{key:0,id:y(r),"onUpdate:modelValue":m[0]||(m[0]=w=>Ve(c)?c.value=w:null),class:K(y(h).e("original")),type:"checkbox","aria-hidden":b.indeterminate?"true":"false",name:b.name,tabindex:b.tabindex,disabled:y(l),"true-value":b.trueLabel,"false-value":b.falseLabel,onChange:m[1]||(m[1]=(...w)=>y(f)&&y(f)(...w)),onFocus:m[2]||(m[2]=w=>a.value=!0),onBlur:m[3]||(m[3]=w=>a.value=!1)},null,42,Mx)),[[Ms,y(c)]]):ut((B(),re("input",{key:1,id:y(r),"onUpdate:modelValue":m[4]||(m[4]=w=>Ve(c)?c.value=w:null),class:K(y(h).e("original")),type:"checkbox","aria-hidden":b.indeterminate?"true":"false",disabled:y(l),value:b.label,name:b.name,tabindex:b.tabindex,onChange:m[5]||(m[5]=(...w)=>y(f)&&y(f)(...w)),onFocus:m[6]||(m[6]=w=>a.value=!0),onBlur:m[7]||(m[7]=w=>a.value=!1)},null,42,Px)),[[Ms,y(c)]]),oe("span",{class:K(y(h).e("inner"))},null,2)],10,Ax),y(u)?(B(),re("span",{key:0,class:K(y(h).e("label"))},[Me(b.$slots,"default"),b.$slots.default?me("v-if",!0):(B(),re(Ue,{key:0},[Ct(Ze(b.label),1)],64))],2)):me("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var Ix=ze(kx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const Lx=["name","tabindex","disabled","true-value","false-value"],Nx=["name","tabindex","disabled","value"],Fx=ue({name:"ElCheckboxButton"}),Bx=ue({...Fx,props:rh,emits:oh,setup(e){const t=e,n=ol(),{isFocused:r,isChecked:o,isDisabled:s,checkboxButtonSize:l,model:a,handleChange:i}=sh(t,n),u=Te(to,void 0),c=Se("checkbox"),f=$(()=>{var h,p,v,b;const m=(p=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?p:"";return{backgroundColor:m,borderColor:m,color:(b=(v=u==null?void 0:u.textColor)==null?void 0:v.value)!=null?b:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=$(()=>[c.b("button"),c.bm("button",l.value),c.is("disabled",s.value),c.is("checked",o.value),c.is("focus",r.value)]);return(h,p)=>(B(),re("label",{class:K(y(d))},[h.trueLabel||h.falseLabel?ut((B(),re("input",{key:0,"onUpdate:modelValue":p[0]||(p[0]=v=>Ve(a)?a.value=v:null),class:K(y(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:y(s),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:p[1]||(p[1]=(...v)=>y(i)&&y(i)(...v)),onFocus:p[2]||(p[2]=v=>r.value=!0),onBlur:p[3]||(p[3]=v=>r.value=!1)},null,42,Lx)),[[Ms,y(a)]]):ut((B(),re("input",{key:1,"onUpdate:modelValue":p[4]||(p[4]=v=>Ve(a)?a.value=v:null),class:K(y(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:y(s),value:h.label,onChange:p[5]||(p[5]=(...v)=>y(i)&&y(i)(...v)),onFocus:p[6]||(p[6]=v=>r.value=!0),onBlur:p[7]||(p[7]=v=>r.value=!1)},null,42,Nx)),[[Ms,y(a)]]),h.$slots.default||h.label?(B(),re("span",{key:2,class:K(y(c).be("button","inner")),style:et(y(o)?y(f):void 0)},[Me(h.$slots,"default",{},()=>[Ct(Ze(h.label),1)])],6)):me("v-if",!0)],2))}});var lh=ze(Bx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const Hx=qe({modelValue:{type:Ce(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:no,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),Dx={[un]:e=>fe(e),change:e=>fe(e)},zx=ue({name:"ElCheckboxGroup"}),jx=ue({...zx,props:Hx,emits:Dx,setup(e,{emit:t}){const n=e,r=Se("checkbox"),{formItem:o}=ro(),{inputId:s,isLabeledByFormItem:l}=hl(n,{formItemContext:o}),a=async u=>{t(un,u),await Ke(),t("change",u)},i=$({get(){return n.modelValue},set(u){a(u)}});return it(to,{...e1(Wa(n),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:i,changeEvent:a}),de(()=>n.modelValue,()=>{n.validateEvent&&(o==null||o.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return B(),ve(st(u.tag),{id:y(s),class:K(y(r).b("group")),role:"group","aria-label":y(l)?void 0:u.label||"checkbox-group","aria-labelledby":y(l)?(f=y(o))==null?void 0:f.labelId:void 0},{default:ce(()=>[Me(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var ah=ze(jx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Vr=kt(Ix,{CheckboxButton:lh,CheckboxGroup:ah});Sr(lh);Sr(ah);const Wx=qe({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Ce([Number,Object]),default:()=>Nn({})},sm:{type:Ce([Number,Object]),default:()=>Nn({})},md:{type:Ce([Number,Object]),default:()=>Nn({})},lg:{type:Ce([Number,Object]),default:()=>Nn({})},xl:{type:Ce([Number,Object]),default:()=>Nn({})}}),Kx=ue({name:"ElCol"}),Vx=ue({...Kx,props:Wx,setup(e){const t=e,{gutter:n}=Te(pp,{gutter:$(()=>0)}),r=Se("col"),o=$(()=>{const l={};return n.value&&(l.paddingLeft=l.paddingRight=`${n.value/2}px`),l}),s=$(()=>{const l=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];lt(c)&&(u==="span"?l.push(r.b(`${t[u]}`)):c>0&&l.push(r.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{lt(t[u])?l.push(r.b(`${u}-${t[u]}`)):Pe(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{l.push(c!=="span"?r.b(`${u}-${c}-${f}`):r.b(`${u}-${f}`))})}),n.value&&l.push(r.is("guttered")),[r.b(),l]});return(l,a)=>(B(),ve(st(l.tag),{class:K(y(s)),style:et(y(o))},{default:ce(()=>[Me(l.$slots,"default")]),_:3},8,["class","style"]))}});var Ux=ze(Vx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const ih=kt(Ux),qx=ue({name:"ElCollapseTransition"}),Yx=ue({...qx,setup(e){const t=Se("collapse-transition"),n={beforeEnter(r){r.dataset||(r.dataset={}),r.dataset.oldPaddingTop=r.style.paddingTop,r.dataset.oldPaddingBottom=r.style.paddingBottom,r.style.maxHeight=0,r.style.paddingTop=0,r.style.paddingBottom=0},enter(r){r.dataset.oldOverflow=r.style.overflow,r.scrollHeight!==0?(r.style.maxHeight=`${r.scrollHeight}px`,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom):(r.style.maxHeight=0,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom),r.style.overflow="hidden"},afterEnter(r){r.style.maxHeight="",r.style.overflow=r.dataset.oldOverflow},beforeLeave(r){r.dataset||(r.dataset={}),r.dataset.oldPaddingTop=r.style.paddingTop,r.dataset.oldPaddingBottom=r.style.paddingBottom,r.dataset.oldOverflow=r.style.overflow,r.style.maxHeight=`${r.scrollHeight}px`,r.style.overflow="hidden"},leave(r){r.scrollHeight!==0&&(r.style.maxHeight=0,r.style.paddingTop=0,r.style.paddingBottom=0)},afterLeave(r){r.style.maxHeight="",r.style.overflow=r.dataset.oldOverflow,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom}};return(r,o)=>(B(),ve(En,nn({name:y(t).b()},lm(n)),{default:ce(()=>[Me(r.$slots,"default")]),_:3},16,["name"]))}});var Cs=ze(Yx,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);Cs.install=e=>{e.component(Cs.name,Cs)};const Gx=Cs,xa={},Xx=qe({a11y:{type:Boolean,default:!0},locale:{type:Ce(Object)},size:no,button:{type:Ce(Object)},experimentalFeatures:{type:Ce(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Ce(Object)},zIndex:Number,namespace:{type:String,default:"el"}});ue({name:"ElConfigProvider",props:Xx,setup(e,{slots:t}){de(()=>e.message,r=>{Object.assign(xa,r??{})},{immediate:!0,deep:!0});const n=FC(e);return()=>Me(t,"default",{config:n==null?void 0:n.value})}});const Jx=qe({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Ce([String,Array,Object])},zIndex:{type:Ce([String,Number])}}),Zx={click:e=>e instanceof MouseEvent};var Qx=ue({name:"ElOverlay",props:Jx,emits:Zx,setup(e,{slots:t,emit:n}){const r=Se("overlay"),o=i=>{n("click",i)},{onClick:s,onMousedown:l,onMouseup:a}=Pp(e.customMaskEvent?void 0:o);return()=>e.mask?ie("div",{class:[r.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:l,onMouseup:a},[Me(t,"default")],ms.STYLE|ms.CLASS|ms.PROPS,["onClick","onMouseup","onMousedown"]):pe("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Me(t,"default")])}});const eT=Qx;let tT=class{constructor(t,n){this.parent=t,this.domNode=n,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,n=>{n.addEventListener("keydown",r=>{let o=!1;switch(r.code){case vt.down:{this.gotoSubIndex(this.subIndex+1),o=!0;break}case vt.up:{this.gotoSubIndex(this.subIndex-1),o=!0;break}case vt.tab:{vs(t,"mouseleave");break}case vt.enter:case vt.space:{o=!0,r.currentTarget.click();break}}return o&&(r.preventDefault(),r.stopPropagation()),!1})})}},nT=class{constructor(t,n){this.domNode=t,this.submenu=null,this.submenu=null,this.init(n)}init(t){this.domNode.setAttribute("tabindex","0");const n=this.domNode.querySelector(`.${t}-menu`);n&&(this.submenu=new tT(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let n=!1;switch(t.code){case vt.down:{vs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),n=!0;break}case vt.up:{vs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break}case vt.tab:{vs(t.currentTarget,"mouseleave");break}case vt.enter:case vt.space:{n=!0,t.currentTarget.click();break}}n&&t.preventDefault()})}},rT=class{constructor(t,n){this.domNode=t,this.init(n)}init(t){const n=this.domNode.childNodes;Array.from(n).forEach(r=>{r.nodeType===1&&new nT(r,t)})}};const oT=ue({name:"ElMenuCollapseTransition",setup(){const e=Se("menu");return{listeners:{onBeforeEnter:n=>n.style.opacity="0.2",onEnter(n,r){ur(n,`${e.namespace.value}-opacity-transition`),n.style.opacity="1",r()},onAfterEnter(n){mr(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=""},onBeforeLeave(n){n.dataset||(n.dataset={}),vr(n,e.m("collapse"))?(mr(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),ur(n,e.m("collapse"))):(ur(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),mr(n,e.m("collapse"))),n.style.width=`${n.scrollWidth}px`,n.style.overflow="hidden"},onLeave(n){ur(n,"horizontal-collapse-transition"),n.style.width=`${n.dataset.scrollWidth}px`}}}}});function sT(e,t,n,r,o,s){return B(),ve(En,nn({mode:"out-in"},e.listeners),{default:ce(()=>[Me(e.$slots,"default")]),_:3},16)}var lT=ze(oT,[["render",sT],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function uh(e,t){const n=$(()=>{let o=e.parent;const s=[t.value];for(;o.type.name!=="ElMenu";)o.props.index&&s.unshift(o.props.index),o=o.parent;return s});return{parentMenu:$(()=>{let o=e.parent;for(;o&&!["ElMenu","ElSubMenu"].includes(o.type.name);)o=o.parent;return o}),indexPath:n}}function aT(e){return $(()=>{const n=e.backgroundColor;return n?new qp(n).shade(20).toString():""})}const ch=(e,t)=>{const n=Se("menu");return $(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":aT(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},iT=qe({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Kt},expandOpenIcon:{type:Kt},collapseCloseIcon:{type:Kt},collapseOpenIcon:{type:Kt}}),cs="ElSubMenu";var Mi=ue({name:cs,props:iT,setup(e,{slots:t,expose:n}){vi({from:"popper-append-to-body",replacement:"teleported",scope:cs,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},$(()=>e.popperAppendToBody!==void 0));const r=We(),{indexPath:o,parentMenu:s}=uh(r,$(()=>e.index)),l=Se("menu"),a=Se("sub-menu"),i=Te("rootMenu");i||Un(cs,"can not inject root menu");const u=Te(`subMenu:${s.value.uid}`);u||Un(cs,"can not inject sub menu");const c=P({}),f=P({});let d;const h=P(!1),p=P(),v=P(null),b=$(()=>F.value==="horizontal"&&w.value?"bottom-start":"right-start"),m=$(()=>F.value==="horizontal"&&w.value||F.value==="vertical"&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?O.value?e.expandOpenIcon:e.expandCloseIcon:tp:e.collapseCloseIcon&&e.collapseOpenIcon?O.value?e.collapseOpenIcon:e.collapseCloseIcon:fi),w=$(()=>u.level===0),S=$(()=>{var R;const te=(R=e.teleported)!=null?R:e.popperAppendToBody;return te===void 0?w.value:te}),g=$(()=>i.props.collapse?`${l.namespace.value}-zoom-in-left`:`${l.namespace.value}-zoom-in-top`),E=$(()=>F.value==="horizontal"&&w.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),O=$(()=>i.openedMenus.includes(e.index)),C=$(()=>{let R=!1;return Object.values(c.value).forEach(te=>{te.active&&(R=!0)}),Object.values(f.value).forEach(te=>{te.active&&(R=!0)}),R}),x=$(()=>i.props.backgroundColor||""),k=$(()=>i.props.activeTextColor||""),M=$(()=>i.props.textColor||""),F=$(()=>i.props.mode),A=Xt({index:e.index,indexPath:o,active:C}),D=$(()=>F.value!=="horizontal"?{color:M.value}:{borderBottomColor:C.value?i.props.activeTextColor?k.value:"":"transparent",color:C.value?k.value:M.value}),Q=()=>{var R,te,he;return(he=(te=(R=v.value)==null?void 0:R.popperRef)==null?void 0:te.popperInstanceRef)==null?void 0:he.destroy()},V=R=>{R||Q()},Z=()=>{i.props.menuTrigger==="hover"&&i.props.mode==="horizontal"||i.props.collapse&&i.props.mode==="vertical"||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:o.value,active:C.value})},se=(R,te=e.showTimeout)=>{var he;R.type!=="focus"&&(i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=aa(()=>{i.openMenu(e.index,o.value)},te),S.value&&((he=s.value.vnode.el)==null||he.dispatchEvent(new MouseEvent("mouseenter")))))},j=(R=!1)=>{var te,he;i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=aa(()=>!h.value&&i.closeMenu(e.index,o.value),e.hideTimeout),S.value&&R&&((te=r.parent)==null?void 0:te.type.name)==="ElSubMenu"&&((he=u.handleMouseleave)==null||he.call(u,!0)))};de(()=>i.props.collapse,R=>V(Boolean(R)));{const R=he=>{f.value[he.index]=he},te=he=>{delete f.value[he.index]};it(`subMenu:${r.uid}`,{addSubMenu:R,removeSubMenu:te,handleMouseleave:j,mouseInChild:h,level:u.level+1})}return n({opened:O}),Je(()=>{i.addSubMenu(A),u.addSubMenu(A)}),mt(()=>{u.removeSubMenu(A),i.removeSubMenu(A)}),()=>{var R;const te=[(R=t.title)==null?void 0:R.call(t),pe(ot,{class:a.e("icon-arrow"),style:{transform:O.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>xe(m.value)?pe(r.appContext.components[m.value]):pe(m.value)})],he=ch(i.props,u.level+1),Ee=i.isMenuPopup?pe(Ai,{ref:v,visible:O.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:b.value,teleported:S.value,fallbackPlacements:E.value,transition:g.value,gpuAcceleration:!1},{content:()=>{var Re;return pe("div",{class:[l.m(F.value),l.m("popup-container"),e.popperClass],onMouseenter:Le=>se(Le,100),onMouseleave:()=>j(!0),onFocus:Le=>se(Le,100)},[pe("ul",{class:[l.b(),l.m("popup"),l.m(`popup-${b.value}`)],style:he.value},[(Re=t.default)==null?void 0:Re.call(t)])])},default:()=>pe("div",{class:a.e("title"),style:[D.value,{backgroundColor:x.value}],onClick:Z},te)}):pe(Ue,{},[pe("div",{class:a.e("title"),style:[D.value,{backgroundColor:x.value}],ref:p,onClick:Z},te),pe(Gx,{},{default:()=>{var Re;return ut(pe("ul",{role:"menu",class:[l.b(),l.m("inline")],style:he.value},[(Re=t.default)==null?void 0:Re.call(t)]),[[Ut,O.value]])}})]);return pe("li",{class:[a.b(),a.is("active",C.value),a.is("opened",O.value),a.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:O.value,onMouseenter:se,onMouseleave:()=>j(!0),onFocus:se},[Ee])}}});const uT=qe({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Ce(Array),default:()=>Nn([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Nl=e=>Array.isArray(e)&&e.every(t=>xe(t)),cT={close:(e,t)=>xe(e)&&Nl(t),open:(e,t)=>xe(e)&&Nl(t),select:(e,t,n,r)=>xe(e)&&Nl(t)&&Pe(n)&&(r===void 0||r instanceof Promise)};var fT=ue({name:"ElMenu",props:uT,emits:cT,setup(e,{emit:t,slots:n,expose:r}){const o=We(),s=o.appContext.config.globalProperties.$router,l=P(),a=Se("menu"),i=Se("sub-menu"),u=P(-1),c=P(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=P(e.defaultActive),d=P({}),h=P({}),p=$(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),v=()=>{const M=f.value&&d.value[f.value];if(!M||e.mode==="horizontal"||e.collapse)return;M.indexPath.forEach(A=>{const D=h.value[A];D&&b(A,D.indexPath)})},b=(M,F)=>{c.value.includes(M)||(e.uniqueOpened&&(c.value=c.value.filter(A=>F.includes(A))),c.value.push(M),t("open",M,F))},m=(M,F)=>{const A=c.value.indexOf(M);A!==-1&&c.value.splice(A,1),t("close",M,F)},w=({index:M,indexPath:F})=>{c.value.includes(M)?m(M,F):b(M,F)},S=M=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:F,indexPath:A}=M;if(!(F===void 0||A===void 0))if(e.router&&s){const D=M.route||F,Q=s.push(D).then(V=>(V||(f.value=F),V));t("select",F,A,{index:F,indexPath:A,route:D},Q)}else f.value=F,t("select",F,A,{index:F,indexPath:A})},g=M=>{const F=d.value,A=F[M]||f.value&&F[f.value]||F[e.defaultActive];A?f.value=A.index:f.value=M},E=()=>{var M,F;if(!l.value)return-1;const A=Array.from((F=(M=l.value)==null?void 0:M.childNodes)!=null?F:[]).filter(R=>R.nodeName!=="#text"||R.nodeValue),D=64,Q=Number.parseInt(getComputedStyle(l.value).paddingLeft,10),V=Number.parseInt(getComputedStyle(l.value).paddingRight,10),Z=l.value.clientWidth-Q-V;let se=0,j=0;return A.forEach((R,te)=>{se+=R.offsetWidth||0,se<=Z-D&&(j=te+1)}),j===A.length?-1:j},O=(M,F=33.34)=>{let A;return()=>{A&&clearTimeout(A),A=setTimeout(()=>{M()},F)}};let C=!0;const x=()=>{const M=()=>{u.value=-1,Ke(()=>{u.value=E()})};C?M():O(M)(),C=!1};de(()=>e.defaultActive,M=>{d.value[M]||(f.value=""),g(M)}),de(()=>e.collapse,M=>{M&&(c.value=[])}),de(d.value,v);let k;zn(()=>{e.mode==="horizontal"&&e.ellipsis?k=Br(l,x).stop:k==null||k()});{const M=Q=>{h.value[Q.index]=Q},F=Q=>{delete h.value[Q.index]};it("rootMenu",Xt({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:p,addMenuItem:Q=>{d.value[Q.index]=Q},removeMenuItem:Q=>{delete d.value[Q.index]},addSubMenu:M,removeSubMenu:F,openMenu:b,closeMenu:m,handleMenuItemClick:S,handleSubMenuClick:w})),it(`subMenu:${o.uid}`,{addSubMenu:M,removeSubMenu:F,mouseInChild:P(!1),level:0})}return Je(()=>{e.mode==="horizontal"&&new rT(o.vnode.el,a.namespace.value)}),r({open:F=>{const{indexPath:A}=h.value[F];A.forEach(D=>b(D,A))},close:m,handleResize:x}),()=>{var M,F;let A=(F=(M=n.default)==null?void 0:M.call(n))!=null?F:[];const D=[];if(e.mode==="horizontal"&&l.value){const Z=gs(A),se=u.value===-1?Z:Z.slice(0,u.value),j=u.value===-1?[]:Z.slice(u.value);j!=null&&j.length&&e.ellipsis&&(A=se,D.push(pe(Mi,{index:"sub-menu-more",class:i.e("hide-arrow")},{title:()=>pe(ot,{class:i.e("icon-more")},{default:()=>pe(dC)}),default:()=>j})))}const Q=ch(e,0),V=pe("ul",{key:String(e.collapse),role:"menubar",ref:l,style:Q.value,class:{[a.b()]:!0,[a.m(e.mode)]:!0,[a.m("collapse")]:e.collapse}},[...A,...D]);return e.collapseTransition&&e.mode==="vertical"?pe(lT,()=>V):V}}});const dT=qe({index:{type:Ce([String,null]),default:null},route:{type:Ce([String,Object])},disabled:Boolean}),pT={click:e=>xe(e.index)&&Array.isArray(e.indexPath)},Fl="ElMenuItem",hT=ue({name:Fl,components:{ElTooltip:Ai},props:dT,emits:pT,setup(e,{emit:t}){const n=We(),r=Te("rootMenu"),o=Se("menu"),s=Se("menu-item");r||Un(Fl,"can not inject root menu");const{parentMenu:l,indexPath:a}=uh(n,Lt(e,"index")),i=Te(`subMenu:${l.value.uid}`);i||Un(Fl,"can not inject sub menu");const u=$(()=>e.index===r.activeIndex),c=Xt({index:e.index,indexPath:a,active:u}),f=()=>{e.disabled||(r.handleMenuItemClick({index:e.index,indexPath:a.value,route:e.route}),t("click",c))};return Je(()=>{i.addSubMenu(c),r.addMenuItem(c)}),mt(()=>{i.removeSubMenu(c),r.removeMenuItem(c)}),{parentMenu:l,rootMenu:r,active:u,nsMenu:o,nsMenuItem:s,handleClick:f}}});function vT(e,t,n,r,o,s){const l=rt("el-tooltip");return B(),re("li",{class:K([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...a)=>e.handleClick&&e.handleClick(...a))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(B(),ve(l,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:ce(()=>[Me(e.$slots,"title")]),default:ce(()=>[oe("div",{class:K(e.nsMenu.be("tooltip","trigger"))},[Me(e.$slots,"default")],2)]),_:3},8,["effect"])):(B(),re(Ue,{key:1},[Me(e.$slots,"default"),Me(e.$slots,"title")],64))],2)}var fh=ze(hT,[["render",vT],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const mT={title:String},gT="ElMenuItemGroup",yT=ue({name:gT,props:mT,setup(){return{ns:Se("menu-item-group")}}});function bT(e,t,n,r,o,s){return B(),re("li",{class:K(e.ns.b())},[oe("div",{class:K(e.ns.e("title"))},[e.$slots.title?Me(e.$slots,"title",{key:1}):(B(),re(Ue,{key:0},[Ct(Ze(e.title),1)],64))],2),oe("ul",null,[Me(e.$slots,"default")])],2)}var dh=ze(yT,[["render",bT],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const wT=kt(fT,{MenuItem:fh,MenuItemGroup:dh,SubMenu:Mi}),_T=Sr(fh);Sr(dh);Sr(Mi);const CT=["start","center","end","space-around","space-between","space-evenly"],ET=["top","middle","bottom"],ST=qe({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:CT,default:"start"},align:{type:String,values:ET,default:"top"}}),xT=ue({name:"ElRow"}),TT=ue({...xT,props:ST,setup(e){const t=e,n=Se("row"),r=$(()=>t.gutter);it(pp,{gutter:r});const o=$(()=>{const l={};return t.gutter&&(l.marginRight=l.marginLeft=`-${t.gutter/2}px`),l}),s=$(()=>[n.b(),n.is(`justify-${t.justify}`,t.justify!=="start"),n.is(`align-${t.align}`,t.align!=="top")]);return(l,a)=>(B(),ve(st(l.tag),{class:K(y(s)),style:et(y(o))},{default:ce(()=>[Me(l.$slots,"default")]),_:3},8,["class","style"]))}});var OT=ze(TT,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const Pi=kt(OT),$T=qe({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Kt},inactiveIcon:{type:Kt},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Ce(Function)},size:{type:String,validator:cp},tabindex:{type:[String,Number]}}),AT={[un]:e=>on(e)||xe(e)||lt(e),[fa]:e=>on(e)||xe(e)||lt(e),[da]:e=>on(e)||xe(e)||lt(e)},MT=["onClick"],PT=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],RT=["aria-hidden"],kT=["aria-hidden"],IT=["aria-hidden"],Ta="ElSwitch",LT=ue({name:Ta}),NT=ue({...LT,props:$T,emits:AT,setup(e,{expose:t,emit:n}){const r=e,o=We(),{formItem:s}=ro(),l=br(),a=Se("switch");vi({from:'"value"',replacement:'"model-value" or "v-model"',scope:Ta,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},$(()=>{var E;return!!((E=o.vnode.props)!=null&&E.value)}));const{inputId:i}=hl(r,{formItemContext:s}),u=Vo($(()=>r.loading)),c=P(r.modelValue!==!1),f=P(),d=P(),h=$(()=>[a.b(),a.m(l.value),a.is("disabled",u.value),a.is("checked",b.value)]),p=$(()=>({width:Hr(r.width)}));de(()=>r.modelValue,()=>{c.value=!0}),de(()=>r.value,()=>{c.value=!1});const v=$(()=>c.value?r.modelValue:r.value),b=$(()=>v.value===r.activeValue);[r.activeValue,r.inactiveValue].includes(v.value)||(n(un,r.inactiveValue),n(fa,r.inactiveValue),n(da,r.inactiveValue)),de(b,E=>{var O;f.value.checked=E,r.validateEvent&&((O=s==null?void 0:s.validate)==null||O.call(s,"change").catch(C=>void 0))});const m=()=>{const E=b.value?r.inactiveValue:r.activeValue;n(un,E),n(fa,E),n(da,E),Ke(()=>{f.value.checked=b.value})},w=()=>{if(u.value)return;const{beforeChange:E}=r;if(!E){m();return}const O=E();[Ss(O),on(O)].includes(!0)||Un(Ta,"beforeChange must return type `Promise` or `boolean`"),Ss(O)?O.then(x=>{x&&m()}).catch(x=>{}):O&&m()},S=$(()=>a.cssVarBlock({...r.activeColor?{"on-color":r.activeColor}:null,...r.inactiveColor?{"off-color":r.inactiveColor}:null,...r.borderColor?{"border-color":r.borderColor}:null})),g=()=>{var E,O;(O=(E=f.value)==null?void 0:E.focus)==null||O.call(E)};return Je(()=>{f.value.checked=b.value}),t({focus:g,checked:b}),(E,O)=>(B(),re("div",{class:K(y(h)),style:et(y(S)),onClick:ir(w,["prevent"])},[oe("input",{id:y(i),ref_key:"input",ref:f,class:K(y(a).e("input")),type:"checkbox",role:"switch","aria-checked":y(b),"aria-disabled":y(u),name:E.name,"true-value":E.activeValue,"false-value":E.inactiveValue,disabled:y(u),tabindex:E.tabindex,onChange:m,onKeydown:fo(w,["enter"])},null,42,PT),!E.inlinePrompt&&(E.inactiveIcon||E.inactiveText)?(B(),re("span",{key:0,class:K([y(a).e("label"),y(a).em("label","left"),y(a).is("active",!y(b))])},[E.inactiveIcon?(B(),ve(y(ot),{key:0},{default:ce(()=>[(B(),ve(st(E.inactiveIcon)))]),_:1})):me("v-if",!0),!E.inactiveIcon&&E.inactiveText?(B(),re("span",{key:1,"aria-hidden":y(b)},Ze(E.inactiveText),9,RT)):me("v-if",!0)],2)):me("v-if",!0),oe("span",{ref_key:"core",ref:d,class:K(y(a).e("core")),style:et(y(p))},[E.inlinePrompt?(B(),re("div",{key:0,class:K(y(a).e("inner"))},[E.activeIcon||E.inactiveIcon?(B(),ve(y(ot),{key:0,class:K(y(a).is("icon"))},{default:ce(()=>[(B(),ve(st(y(b)?E.activeIcon:E.inactiveIcon)))]),_:1},8,["class"])):E.activeText||E.inactiveText?(B(),re("span",{key:1,class:K(y(a).is("text")),"aria-hidden":!y(b)},Ze(y(b)?E.activeText:E.inactiveText),11,kT)):me("v-if",!0)],2)):me("v-if",!0),oe("div",{class:K(y(a).e("action"))},[E.loading?(B(),ve(y(ot),{key:0,class:K(y(a).is("loading"))},{default:ce(()=>[ie(y(dl))]),_:1},8,["class"])):me("v-if",!0)],2)],6),!E.inlinePrompt&&(E.activeIcon||E.activeText)?(B(),re("span",{key:1,class:K([y(a).e("label"),y(a).em("label","right"),y(a).is("active",y(b))])},[E.activeIcon?(B(),ve(y(ot),{key:0},{default:ce(()=>[(B(),ve(st(E.activeIcon)))]),_:1})):me("v-if",!0),!E.activeIcon&&E.activeText?(B(),re("span",{key:1,"aria-hidden":!y(b)},Ze(E.activeText),9,IT)):me("v-if",!0)],2)):me("v-if",!0)],14,MT))}});var FT=ze(NT,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const BT=kt(FT);/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var HT=/["'&<>]/,DT=zT;function zT(e){var t=""+e,n=HT.exec(t);if(!n)return t;var r,o="",s=0,l=0;for(s=n.index;stypeof u=="string"?Io(a,u):u(a,i,e))):(t!=="$key"&&Pe(a)&&"$value"in a&&(a=a.$value),[Pe(a)?Io(a,t):a])},l=function(a,i){if(r)return r(a.value,i.value);for(let u=0,c=a.key.length;ui.key[u])return 1}return 0};return e.map((a,i)=>({value:a,index:i,key:s?s(a,i):null})).sort((a,i)=>{let u=l(a,i);return u||(u=a.index-i.index),u*+n}).map(a=>a.value)},ph=function(e,t){let n=null;return e.columns.forEach(r=>{r.id===t&&(n=r)}),n},WT=function(e,t){let n=null;for(let r=0;r{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let r=e;for(const o of n)r=r[o];return`${r}`}else if(typeof t=="function")return t.call(null,e)},dr=function(e,t){const n={};return(e||[]).forEach((r,o)=>{n[ct(r,t)]={row:r,index:o}}),n};function KT(e,t){const n={};let r;for(r in e)n[r]=e[r];for(r in t)if($e(t,r)){const o=t[r];typeof o<"u"&&(n[r]=o)}return n}function Ri(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function hh(e){return e===""||e!==void 0&&(e=Ri(e),Number.isNaN(e)&&(e=80)),e}function VT(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function UT(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function wo(e,t,n){let r=!1;const o=e.indexOf(t),s=o!==-1,l=a=>{a==="add"?e.push(t):e.splice(o,1),r=!0,fe(t.children)&&t.children.forEach(i=>{wo(e,i,n??!s)})};return on(n)?n&&!s?l("add"):!n&&s&&l("remove"):l(s?"remove":"add"),r}function qT(e,t,n="children",r="hasChildren"){const o=l=>!(Array.isArray(l)&&l.length);function s(l,a,i){t(l,a,i),a.forEach(u=>{if(u[r]){t(u,null,i+1);return}const c=u[n];o(c)||s(u,c,i+1)})}e.forEach(l=>{if(l[r]){t(l,null,0);return}const a=l[n];o(a)||s(l,a,0)})}let mn;function YT(e,t,n,r){r=Kd({enterable:!0,showArrow:!0},r);const{nextZIndex:o}=ml(),s=e==null?void 0:e.dataset.prefix,l=e==null?void 0:e.querySelector(`.${s}-scrollbar__wrap`);function a(){const b=r.effect==="light",m=document.createElement("div");return m.className=[`${s}-popper`,b?"is-light":"is-dark",r.popperClass||""].join(" "),n=DT(n),m.innerHTML=n,m.style.zIndex=String(o()),e==null||e.appendChild(m),m}function i(){const b=document.createElement("div");return b.className=`${s}-popper__arrow`,b}function u(){c&&c.update()}mn==null||mn(),mn=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),l==null||l.removeEventListener("scroll",mn),mn=void 0}catch{}};let c=null,f=u,d=mn;r.enterable&&({onOpen:f,onClose:d}=kp({showAfter:r.showAfter,hideAfter:r.hideAfter,open:u,close:mn}));const h=a();h.onmouseenter=f,h.onmouseleave=d;const p=[];if(r.offset&&p.push({name:"offset",options:{offset:[0,r.offset]}}),r.showArrow){const b=h.appendChild(i());p.push({name:"arrow",options:{element:b,padding:10}})}const v=r.popperOptions||{};return c=Mp(t,h,{placement:r.placement||"top",strategy:"fixed",...v,modifiers:v.modifiers?p.concat(v.modifiers):p}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),l==null||l.addEventListener("scroll",mn),c}function vh(e){return e.children?qw(e.children,vh):[e]}function Xc(e,t){return e+t.colSpan}const mh=(e,t,n,r)=>{let o=0,s=e;const l=n.states.columns.value;if(r){const i=vh(r[e]);o=l.slice(0,l.indexOf(i[0])).reduce(Xc,0),s=o+i.reduce(Xc,0)-1}else o=e;let a;switch(t){case"left":s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right");break;default:s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right")}return a?{direction:a,start:o,after:s}:{}},ki=(e,t,n,r,o,s=0)=>{const l=[],{direction:a,start:i,after:u}=mh(t,n,r,o);if(a){const c=a==="left";l.push(`${e}-fixed-column--${a}`),c&&u+s===r.states.fixedLeafColumnsLength.value-1?l.push("is-last-column"):!c&&i-s===r.states.columns.value.length-r.states.rightFixedLeafColumnsLength.value&&l.push("is-first-column")}return l};function Jc(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Ii=(e,t,n,r)=>{const{direction:o,start:s=0,after:l=0}=mh(e,t,n,r);if(!o)return;const a={},i=o==="left",u=n.states.columns.value;return i?a.left=u.slice(0,s).reduce(Jc,0):a.right=u.slice(l+1).reverse().reduce(Jc,0),a},Ur=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function GT(e){const t=We(),n=P(!1),r=P([]);return{updateExpandRows:()=>{const i=e.data.value||[],u=e.rowKey.value;if(n.value)r.value=i.slice();else if(u){const c=dr(r.value,u);r.value=i.reduce((f,d)=>{const h=ct(d,u);return c[h]&&f.push(d),f},[])}else r.value=[]},toggleRowExpansion:(i,u)=>{wo(r.value,i,u)&&t.emit("expand-change",i,r.value.slice())},setExpandRowKeys:i=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=dr(u,c);r.value=i.reduce((d,h)=>{const p=f[h];return p&&d.push(p.row),d},[])},isRowExpanded:i=>{const u=e.rowKey.value;return u?!!dr(r.value,u)[ct(i,u)]:r.value.includes(i)},states:{expandRows:r,defaultExpandAll:n}}}function XT(e){const t=We(),n=P(null),r=P(null),o=u=>{t.store.assertRowKey(),n.value=u,l(u)},s=()=>{n.value=null},l=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(y(c)||[]).find(h=>ct(h,f.value)===u)),r.value=d,t.emit("current-change",r.value,null)};return{setCurrentRowKey:o,restoreCurrentRowKey:s,setCurrentRowByKey:l,updateCurrentRow:u=>{const c=r.value;if(u&&u!==c){r.value=u,t.emit("current-change",r.value,c);return}!u&&c&&(r.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=r.value;if(!c.includes(f)&&f){if(u){const d=ct(f,u);l(d)}else r.value=null;r.value===null&&t.emit("current-change",null,f)}else n.value&&(l(n.value),s())},states:{_currentRowKey:n,currentRow:r}}}function JT(e){const t=P([]),n=P({}),r=P(16),o=P(!1),s=P({}),l=P("hasChildren"),a=P("children"),i=We(),u=$(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=$(()=>{const m=e.rowKey.value,w=Object.keys(s.value),S={};return w.length&&w.forEach(g=>{if(s.value[g].length){const E={children:[]};s.value[g].forEach(O=>{const C=ct(O,m);E.children.push(C),O[l.value]&&!S[C]&&(S[C]={children:[]})}),S[g]=E}}),S}),f=m=>{const w=e.rowKey.value,S={};return qT(m,(g,E,O)=>{const C=ct(g,w);Array.isArray(E)?S[C]={children:E.map(x=>ct(x,w)),level:O}:o.value&&(S[C]={children:[],lazy:!0,level:O})},a.value,l.value),S},d=(m=!1,w=(S=>(S=i.store)==null?void 0:S.states.defaultExpandAll.value)())=>{var S;const g=u.value,E=c.value,O=Object.keys(g),C={};if(O.length){const x=y(n),k=[],M=(A,D)=>{if(m)return t.value?w||t.value.includes(D):!!(w||A!=null&&A.expanded);{const Q=w||t.value&&t.value.includes(D);return!!(A!=null&&A.expanded||Q)}};O.forEach(A=>{const D=x[A],Q={...g[A]};if(Q.expanded=M(D,A),Q.lazy){const{loaded:V=!1,loading:Z=!1}=D||{};Q.loaded=!!V,Q.loading=!!Z,k.push(A)}C[A]=Q});const F=Object.keys(E);o.value&&F.length&&k.length&&F.forEach(A=>{const D=x[A],Q=E[A].children;if(k.includes(A)){if(C[A].children.length!==0)throw new Error("[ElTable]children must be an empty array.");C[A].children=Q}else{const{loaded:V=!1,loading:Z=!1}=D||{};C[A]={lazy:!0,loaded:!!V,loading:!!Z,expanded:M(D,A),children:Q,level:""}}})}n.value=C,(S=i.store)==null||S.updateTableScrollY()};de(()=>t.value,()=>{d(!0)}),de(()=>u.value,()=>{d()}),de(()=>c.value,()=>{d()});const h=m=>{t.value=m,d()},p=(m,w)=>{i.store.assertRowKey();const S=e.rowKey.value,g=ct(m,S),E=g&&n.value[g];if(g&&E&&"expanded"in E){const O=E.expanded;w=typeof w>"u"?!E.expanded:w,n.value[g].expanded=w,O!==w&&i.emit("expand-change",m,w),i.store.updateTableScrollY()}},v=m=>{i.store.assertRowKey();const w=e.rowKey.value,S=ct(m,w),g=n.value[S];o.value&&g&&"loaded"in g&&!g.loaded?b(m,S,g):p(m,void 0)},b=(m,w,S)=>{const{load:g}=i.props;g&&!n.value[w].loaded&&(n.value[w].loading=!0,g(m,S,E=>{if(!Array.isArray(E))throw new TypeError("[ElTable] data must be an array");n.value[w].loading=!1,n.value[w].loaded=!0,n.value[w].expanded=!0,E.length&&(s.value[w]=E),i.emit("expand-change",m,!0)}))};return{loadData:b,loadOrToggle:v,toggleTreeExpansion:p,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:n,indent:r,lazy:o,lazyTreeNodeMap:s,lazyColumnIdentifier:l,childrenColumnName:a}}}const ZT=(e,t)=>{const n=t.sortingColumn;return!n||typeof n.sortable=="string"?e:jT(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Es=e=>{const t=[];return e.forEach(n=>{n.children?t.push.apply(t,Es(n.children)):t.push(n)}),t};function QT(){var e;const t=We(),{size:n}=Wa((e=t.proxy)==null?void 0:e.$props),r=P(null),o=P([]),s=P([]),l=P(!1),a=P([]),i=P([]),u=P([]),c=P([]),f=P([]),d=P([]),h=P([]),p=P([]),v=[],b=P(0),m=P(0),w=P(0),S=P(!1),g=P([]),E=P(!1),O=P(!1),C=P(null),x=P({}),k=P(null),M=P(null),F=P(null),A=P(null),D=P(null);de(o,()=>t.state&&se(!1),{deep:!0});const Q=()=>{if(!r.value)throw new Error("[ElTable] prop row-key is required")},V=le=>{var ye;(ye=le.children)==null||ye.forEach(ke=>{ke.fixed=le.fixed,V(ke)})},Z=()=>{a.value.forEach(He=>{V(He)}),c.value=a.value.filter(He=>He.fixed===!0||He.fixed==="left"),f.value=a.value.filter(He=>He.fixed==="right"),c.value.length>0&&a.value[0]&&a.value[0].type==="selection"&&!a.value[0].fixed&&(a.value[0].fixed=!0,c.value.unshift(a.value[0]));const le=a.value.filter(He=>!He.fixed);i.value=[].concat(c.value).concat(le).concat(f.value);const ye=Es(le),ke=Es(c.value),Oe=Es(f.value);b.value=ye.length,m.value=ke.length,w.value=Oe.length,u.value=[].concat(ke).concat(ye).concat(Oe),l.value=c.value.length>0||f.value.length>0},se=(le,ye=!1)=>{le&&Z(),ye?t.state.doLayout():t.state.debouncedUpdateLayout()},j=le=>g.value.includes(le),R=()=>{S.value=!1,g.value.length&&(g.value=[],t.emit("selection-change",[]))},te=()=>{let le;if(r.value){le=[];const ye=dr(g.value,r.value),ke=dr(o.value,r.value);for(const Oe in ye)$e(ye,Oe)&&!ke[Oe]&&le.push(ye[Oe].row)}else le=g.value.filter(ye=>!o.value.includes(ye));if(le.length){const ye=g.value.filter(ke=>!le.includes(ke));g.value=ye,t.emit("selection-change",ye.slice())}},he=()=>(g.value||[]).slice(),Ee=(le,ye=void 0,ke=!0)=>{if(wo(g.value,le,ye)){const He=(g.value||[]).slice();ke&&t.emit("select",He,le),t.emit("selection-change",He)}},Re=()=>{var le,ye;const ke=O.value?!S.value:!(S.value||g.value.length);S.value=ke;let Oe=!1,He=0;const De=(ye=(le=t==null?void 0:t.store)==null?void 0:le.states)==null?void 0:ye.rowKey.value;o.value.forEach((Qe,dn)=>{const pn=dn+He;C.value?C.value.call(null,Qe,pn)&&wo(g.value,Qe,ke)&&(Oe=!0):wo(g.value,Qe,ke)&&(Oe=!0),He+=q(ct(Qe,De))}),Oe&&t.emit("selection-change",g.value?g.value.slice():[]),t.emit("select-all",g.value)},Le=()=>{const le=dr(g.value,r.value);o.value.forEach(ye=>{const ke=ct(ye,r.value),Oe=le[ke];Oe&&(g.value[Oe.index]=ye)})},L=()=>{var le,ye,ke;if(((le=o.value)==null?void 0:le.length)===0){S.value=!1;return}let Oe;r.value&&(Oe=dr(g.value,r.value));const He=function(pn){return Oe?!!Oe[ct(pn,r.value)]:g.value.includes(pn)};let De=!0,Qe=0,dn=0;for(let pn=0,Nh=(o.value||[]).length;pn{var ye;if(!t||!t.store)return 0;const{treeData:ke}=t.store.states;let Oe=0;const He=(ye=ke.value[le])==null?void 0:ye.children;return He&&(Oe+=He.length,He.forEach(De=>{Oe+=q(De)})),Oe},U=(le,ye)=>{Array.isArray(le)||(le=[le]);const ke={};return le.forEach(Oe=>{x.value[Oe.id]=ye,ke[Oe.columnKey||Oe.id]=ye}),ke},ee=(le,ye,ke)=>{M.value&&M.value!==le&&(M.value.order=null),M.value=le,F.value=ye,A.value=ke},we=()=>{let le=y(s);Object.keys(x.value).forEach(ye=>{const ke=x.value[ye];if(!ke||ke.length===0)return;const Oe=ph({columns:u.value},ye);Oe&&Oe.filterMethod&&(le=le.filter(He=>ke.some(De=>Oe.filterMethod.call(null,De,He,Oe))))}),k.value=le},Ne=()=>{o.value=ZT(k.value,{sortingColumn:M.value,sortProp:F.value,sortOrder:A.value})},_e=(le=void 0)=>{le&&le.filter||we(),Ne()},_=le=>{const{tableHeaderRef:ye}=t.refs;if(!ye)return;const ke=Object.assign({},ye.filterPanels),Oe=Object.keys(ke);if(Oe.length)if(typeof le=="string"&&(le=[le]),Array.isArray(le)){const He=le.map(De=>WT({columns:u.value},De));Oe.forEach(De=>{const Qe=He.find(dn=>dn.id===De);Qe&&(Qe.filteredValue=[])}),t.store.commit("filterChange",{column:He,values:[],silent:!0,multi:!0})}else Oe.forEach(He=>{const De=u.value.find(Qe=>Qe.id===He);De&&(De.filteredValue=[])}),x.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},T=()=>{M.value&&(ee(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:N,toggleRowExpansion:H,updateExpandRows:z,states:X,isRowExpanded:ne}=GT({data:o,rowKey:r}),{updateTreeExpandKeys:Y,toggleTreeExpansion:J,updateTreeData:W,loadOrToggle:I,states:G}=JT({data:o,rowKey:r}),{updateCurrentRowData:ae,updateCurrentRow:ge,setCurrentRowKey:Ae,states:Be}=XT({data:o,rowKey:r});return{assertRowKey:Q,updateColumns:Z,scheduleLayout:se,isSelected:j,clearSelection:R,cleanSelection:te,getSelectionRows:he,toggleRowSelection:Ee,_toggleAllSelection:Re,toggleAllSelection:null,updateSelectionByRowKey:Le,updateAllSelected:L,updateFilters:U,updateCurrentRow:ge,updateSort:ee,execFilter:we,execSort:Ne,execQuery:_e,clearFilter:_,clearSort:T,toggleRowExpansion:H,setExpandRowKeysAdapter:le=>{N(le),Y(le)},setCurrentRowKey:Ae,toggleRowExpansionAdapter:(le,ye)=>{u.value.some(({type:Oe})=>Oe==="expand")?H(le,ye):J(le,ye)},isRowExpanded:ne,updateExpandRows:z,updateCurrentRowData:ae,loadOrToggle:I,updateTreeData:W,states:{tableSize:n,rowKey:r,data:o,_data:s,isComplex:l,_columns:a,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:p,updateOrderFns:v,leafColumnsLength:b,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:w,isAllSelected:S,selection:g,reserveSelection:E,selectOnIndeterminate:O,selectable:C,filters:x,filteredData:k,sortingColumn:M,sortProp:F,sortOrder:A,hoverRow:D,...X,...G,...Be}}}function Oa(e,t){return e.map(n=>{var r;return n.id===t.id?t:((r=n.children)!=null&&r.length&&(n.children=Oa(n.children,t)),n)})}function $a(e){e.forEach(t=>{var n,r;t.no=(n=t.getColumnIndex)==null?void 0:n.call(t),(r=t.children)!=null&&r.length&&$a(t.children)}),e.sort((t,n)=>t.no-n.no)}function eO(){const e=We(),t=QT();return{ns:Se("table"),...t,mutations:{setData(l,a){const i=y(l._data)!==a;l.data.value=a,l._data.value=a,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),y(l.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):i?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(l,a,i,u){const c=y(l._columns);let f=[];i?(i&&!i.children&&(i.children=[]),i.children.push(a),f=Oa(c,i)):(c.push(a),f=c),$a(f),l._columns.value=f,l.updateOrderFns.push(u),a.type==="selection"&&(l.selectable.value=a.selectable,l.reserveSelection.value=a.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(l,a){var i;((i=a.getColumnIndex)==null?void 0:i.call(a))!==a.no&&($a(l._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(l,a,i,u){const c=y(l._columns)||[];if(i)i.children.splice(i.children.findIndex(d=>d.id===a.id),1),Ke(()=>{var d;((d=i.children)==null?void 0:d.length)===0&&delete i.children}),l._columns.value=Oa(c,i);else{const d=c.indexOf(a);d>-1&&(c.splice(d,1),l._columns.value=c)}const f=l.updateOrderFns.indexOf(u);f>-1&&l.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(l,a){const{prop:i,order:u,init:c}=a;if(i){const f=y(l.columns).find(d=>d.property===i);f&&(f.order=u,e.store.updateSort(f,i,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(l,a){const{sortingColumn:i,sortProp:u,sortOrder:c}=l,f=y(i),d=y(u),h=y(c);h===null&&(l.sortingColumn.value=null,l.sortProp.value=null);const p={filter:!0};e.store.execQuery(p),(!a||!(a.silent||a.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(l,a){const{column:i,values:u,silent:c}=a,f=e.store.updateFilters(i,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(l,a){e.store.toggleRowSelection(a),e.store.updateAllSelected()},setHoverRow(l,a){l.hoverRow.value=a},setCurrentRow(l,a){e.store.updateCurrentRow(a)}},commit:function(l,...a){const i=e.store.mutations;if(i[l])i[l].apply(e,[e.store.states].concat(a));else throw new Error(`Action not found: ${l}`)},updateTableScrollY:function(){Ke(()=>e.layout.updateScrollY.apply(e.layout))}}}const _o={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function tO(e,t){if(!e)throw new Error("Table is required.");const n=eO();return n.toggleAllSelection=Ns(n._toggleAllSelection,10),Object.keys(_o).forEach(r=>{gh(yh(t,r),r,n)}),nO(n,t),n}function nO(e,t){Object.keys(_o).forEach(n=>{de(()=>yh(t,n),r=>{gh(r,n,e)})})}function gh(e,t,n){let r=e,o=_o[t];typeof _o[t]=="object"&&(o=o.key,r=r||_o[t].default),n.states[o].value=r}function yh(e,t){if(t.includes(".")){const n=t.split(".");let r=e;return n.forEach(o=>{r=r[o]}),r}else return e[t]}class rO{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=P(null),this.scrollX=P(!1),this.scrollY=P(!1),this.bodyWidth=P(null),this.fixedWidth=P(null),this.rightFixedWidth=P(null),this.gutterWidth=0;for(const n in t)$e(t,n)&&(Ve(this[n])?this[n].value=t[n]:this[n]=t[n]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const n=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(n!=null&&n.wrapRef)){let r=!0;const o=this.scrollY.value;return r=n.wrapRef.scrollHeight>n.wrapRef.clientHeight,this.scrollY.value=r,o!==r}return!1}setHeight(t,n="height"){if(!Xe)return;const r=this.table.vnode.el;if(t=VT(t),this.height.value=Number(t),!r&&(t||t===0))return Ke(()=>this.setHeight(t,n));typeof t=="number"?(r.style[n]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(r.style[n]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(r=>{r.isColumnGroup?t.push.apply(t,r.columns):t.push(r)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let n=t;for(;n.tagName!=="DIV";){if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}updateColumnsWidth(){if(!Xe)return;const t=this.fit,n=this.table.vnode.el.clientWidth;let r=0;const o=this.getFlattenColumns(),s=o.filter(i=>typeof i.width!="number");if(o.forEach(i=>{typeof i.width=="number"&&i.realWidth&&(i.realWidth=null)}),s.length>0&&t){if(o.forEach(i=>{r+=Number(i.width||i.minWidth||80)}),r<=n){this.scrollX.value=!1;const i=n-r;if(s.length===1)s[0].realWidth=Number(s[0].minWidth||80)+i;else{const u=s.reduce((d,h)=>d+Number(h.minWidth||80),0),c=i/u;let f=0;s.forEach((d,h)=>{if(h===0)return;const p=Math.floor(Number(d.minWidth||80)*c);f+=p,d.realWidth=Number(d.minWidth||80)+p}),s[0].realWidth=Number(s[0].minWidth||80)+i-f}}else this.scrollX.value=!0,s.forEach(i=>{i.realWidth=Number(i.minWidth)});this.bodyWidth.value=Math.max(r,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else o.forEach(i=>{!i.width&&!i.minWidth?i.realWidth=80:i.realWidth=Number(i.width||i.minWidth),r+=i.realWidth}),this.scrollX.value=r>n,this.bodyWidth.value=r;const l=this.store.states.fixedColumns.value;if(l.length>0){let i=0;l.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.fixedWidth.value=i}const a=this.store.states.rightFixedColumns.value;if(a.length>0){let i=0;a.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=i}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&this.observers.splice(n,1)}notifyObservers(t){this.observers.forEach(r=>{var o,s;switch(t){case"columns":(o=r.state)==null||o.onColumnsChange(this);break;case"scrollable":(s=r.state)==null||s.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:oO}=Vr,sO=ue({name:"ElTableFilterPanel",components:{ElCheckbox:Vr,ElCheckboxGroup:oO,ElScrollbar:Np,ElTooltip:Ai,ElIcon:ot,ArrowDown:tp,ArrowUp:b_},directives:{ClickOutside:vx},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=We(),{t:n}=gi(),r=Se("table-filter"),o=t==null?void 0:t.parent;o.filterPanels.value[e.column.id]||(o.filterPanels.value[e.column.id]=t);const s=P(!1),l=P(null),a=$(()=>e.column&&e.column.filters),i=$({get:()=>{var g;return(((g=e.column)==null?void 0:g.filteredValue)||[])[0]},set:g=>{u.value&&(typeof g<"u"&&g!==null?u.value.splice(0,1,g):u.value.splice(0,1))}}),u=$({get(){return e.column?e.column.filteredValue||[]:[]},set(g){e.column&&e.upDataColumn("filteredValue",g)}}),c=$(()=>e.column?e.column.filterMultiple:!0),f=g=>g.value===i.value,d=()=>{s.value=!1},h=g=>{g.stopPropagation(),s.value=!s.value},p=()=>{s.value=!1},v=()=>{w(u.value),d()},b=()=>{u.value=[],w(u.value),d()},m=g=>{i.value=g,w(typeof g<"u"&&g!==null?u.value:[]),d()},w=g=>{e.store.commit("filterChange",{column:e.column,values:g}),e.store.updateAllSelected()};de(s,g=>{e.column&&e.upDataColumn("filterOpened",g)},{immediate:!0});const S=$(()=>{var g,E;return(E=(g=l.value)==null?void 0:g.popperRef)==null?void 0:E.contentRef});return{tooltipVisible:s,multiple:c,filteredValue:u,filterValue:i,filters:a,handleConfirm:v,handleReset:b,handleSelect:m,isActive:f,t:n,ns:r,showFilterPanel:h,hideFilterPanel:p,popperPaneRef:S,tooltip:l}}}),lO={key:0},aO=["disabled"],iO=["label","onClick"];function uO(e,t,n,r,o,s){const l=rt("el-checkbox"),a=rt("el-checkbox-group"),i=rt("el-scrollbar"),u=rt("arrow-up"),c=rt("arrow-down"),f=rt("el-icon"),d=rt("el-tooltip"),h=td("click-outside");return B(),ve(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:ce(()=>[e.multiple?(B(),re("div",lO,[oe("div",{class:K(e.ns.e("content"))},[ie(i,{"wrap-class":e.ns.e("wrap")},{default:ce(()=>[ie(a,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=p=>e.filteredValue=p),class:K(e.ns.e("checkbox-group"))},{default:ce(()=>[(B(!0),re(Ue,null,Ji(e.filters,p=>(B(),ve(l,{key:p.value,label:p.value},{default:ce(()=>[Ct(Ze(p.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),oe("div",{class:K(e.ns.e("bottom"))},[oe("button",{class:K({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...p)=>e.handleConfirm&&e.handleConfirm(...p))},Ze(e.t("el.table.confirmFilter")),11,aO),oe("button",{type:"button",onClick:t[2]||(t[2]=(...p)=>e.handleReset&&e.handleReset(...p))},Ze(e.t("el.table.resetFilter")),1)],2)])):(B(),re("ul",{key:1,class:K(e.ns.e("list"))},[oe("li",{class:K([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=p=>e.handleSelect(null))},Ze(e.t("el.table.clearFilter")),3),(B(!0),re(Ue,null,Ji(e.filters,p=>(B(),re("li",{key:p.value,class:K([e.ns.e("list-item"),e.ns.is("active",e.isActive(p))]),label:p.value,onClick:v=>e.handleSelect(p.value)},Ze(p.text),11,iO))),128))],2))]),default:ce(()=>[ut((B(),re("span",{class:K([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...p)=>e.showFilterPanel&&e.showFilterPanel(...p))},[ie(f,null,{default:ce(()=>[e.column.filterOpened?(B(),ve(u,{key:0})):(B(),ve(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var cO=ze(sO,[["render",uO],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function bh(e){const t=We();tl(()=>{n.value.addObserver(t)}),Je(()=>{r(n.value),o(n.value)}),qa(()=>{r(n.value),o(n.value)}),Zr(()=>{n.value.removeObserver(t)});const n=$(()=>{const s=e.layout;if(!s)throw new Error("Can not find table layout.");return s}),r=s=>{var l;const a=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col"))||[];if(!a.length)return;const i=s.getFlattenColumns(),u={};i.forEach(c=>{u[c.id]=c});for(let c=0,f=a.length;c{var l,a;const i=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=i.length;c{v.stopPropagation()},s=(v,b)=>{!b.filters&&b.sortable?p(v,b,!1):b.filterable&&!b.sortable&&o(v),r==null||r.emit("header-click",b,v)},l=(v,b)=>{r==null||r.emit("header-contextmenu",b,v)},a=P(null),i=P(!1),u=P({}),c=(v,b)=>{if(Xe&&!(b.children&&b.children.length>0)&&a.value&&e.border){i.value=!0;const m=r;t("set-drag-visible",!0);const S=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,g=n.vnode.el.querySelector(`th.${b.id}`),E=g.getBoundingClientRect(),O=E.left-S+30;ur(g,"noclick"),u.value={startMouseLeft:v.clientX,startLeft:E.right-S,startColumnLeft:E.left-S,tableLeft:S};const C=m==null?void 0:m.refs.resizeProxy;C.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const x=M=>{const F=M.clientX-u.value.startMouseLeft,A=u.value.startLeft+F;C.style.left=`${Math.max(O,A)}px`},k=()=>{if(i.value){const{startColumnLeft:M,startLeft:F}=u.value,D=Number.parseInt(C.style.left,10)-M;b.width=b.realWidth=D,m==null||m.emit("header-dragend",b.width,F-M,b,v),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",i.value=!1,a.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",k),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{mr(g,"noclick")},0)};document.addEventListener("mousemove",x),document.addEventListener("mouseup",k)}},f=(v,b)=>{var m;if(b.children&&b.children.length>0)return;const w=(m=v.target)==null?void 0:m.closest("th");if(!(!b||!b.resizable)&&!i.value&&e.border){const S=w.getBoundingClientRect(),g=document.body.style;S.width>12&&S.right-v.pageX<8?(g.cursor="col-resize",vr(w,"is-sortable")&&(w.style.cursor="col-resize"),a.value=b):i.value||(g.cursor="",vr(w,"is-sortable")&&(w.style.cursor="pointer"),a.value=null)}},d=()=>{Xe&&(document.body.style.cursor="")},h=({order:v,sortOrders:b})=>{if(v==="")return b[0];const m=b.indexOf(v||null);return b[m>b.length-2?0:m+1]},p=(v,b,m)=>{var w;v.stopPropagation();const S=b.order===m?null:m||h(b),g=(w=v.target)==null?void 0:w.closest("th");if(g&&vr(g,"noclick")){mr(g,"noclick");return}if(!b.sortable)return;const E=e.store.states;let O=E.sortProp.value,C;const x=E.sortingColumn.value;(x!==b||x===b&&x.order===null)&&(x&&(x.order=null),E.sortingColumn.value=b,O=b.property),S?C=b.order=S:C=b.order=null,E.sortProp.value=O,E.sortOrder.value=C,r==null||r.store.commit("changeSortCondition")};return{handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:p,handleFilterClick:o}}function dO(e){const t=Te(fn),n=Se("table");return{getHeaderRowStyle:a=>{const i=t==null?void 0:t.props.headerRowStyle;return typeof i=="function"?i.call(null,{rowIndex:a}):i},getHeaderRowClass:a=>{const i=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?i.push(u):typeof u=="function"&&i.push(u.call(null,{rowIndex:a})),i.join(" ")},getHeaderCellStyle:(a,i,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:a,columnIndex:i,row:u,column:c}));const h=Ii(i,c.fixed,e.store,u);return Ur(h,"left"),Ur(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(a,i,u,c)=>{const f=ki(n.b(),i,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:a,columnIndex:i,row:u,column:c})),d.push(n.e("cell")),d.filter(p=>Boolean(p)).join(" ")}}}const wh=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,wh(n.children))):t.push(n)}),t},pO=e=>{let t=1;const n=(s,l)=>{if(l&&(s.level=l.level+1,t{n(i,s),a+=i.colSpan}),s.colSpan=a}else s.colSpan=1};e.forEach(s=>{s.level=1,n(s,void 0)});const r=[];for(let s=0;s{s.children?(s.rowSpan=1,s.children.forEach(l=>l.isSubColumn=!0)):s.rowSpan=t-s.level+1,r[s.level-1].push(s)}),r};function hO(e){const t=Te(fn),n=$(()=>pO(e.store.states.originColumns.value));return{isGroup:$(()=>{const s=n.value.length>1;return s&&t&&(t.state.isGroup.value=!0),s}),toggleAllSelection:s=>{s.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:n}}var vO=ue({name:"ElTableHeader",components:{ElCheckbox:Vr},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const n=We(),r=Te(fn),o=Se("table"),s=P({}),{onColumnsChange:l,onScrollableChange:a}=bh(r);Je(async()=>{await Ke(),await Ke();const{prop:O,order:C}=e.defaultSort;r==null||r.store.commit("sort",{prop:O,order:C,init:!0})});const{handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:p}=fO(e,t),{getHeaderRowStyle:v,getHeaderRowClass:b,getHeaderCellStyle:m,getHeaderCellClass:w}=dO(e),{isGroup:S,toggleAllSelection:g,columnRows:E}=hO(e);return n.state={onColumnsChange:l,onScrollableChange:a},n.filterPanels=s,{ns:o,filterPanels:s,onColumnsChange:l,onScrollableChange:a,columnRows:E,getHeaderRowClass:b,getHeaderRowStyle:v,getHeaderCellClass:w,getHeaderCellStyle:m,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:p,isGroup:S,toggleAllSelection:g}},render(){const{ns:e,isGroup:t,columnRows:n,getHeaderCellStyle:r,getHeaderCellClass:o,getHeaderRowClass:s,getHeaderRowStyle:l,handleHeaderClick:a,handleHeaderContextMenu:i,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:p}=this;let v=1;return pe("thead",{class:{[e.is("group")]:t}},n.map((b,m)=>pe("tr",{class:s(m),key:m,style:l(m)},b.map((w,S)=>(w.rowSpan>v&&(v=w.rowSpan),pe("th",{class:o(m,S,b,w),colspan:w.colSpan,key:`${w.id}-thead`,rowspan:w.rowSpan,style:r(m,S,b,w),onClick:g=>a(g,w),onContextmenu:g=>i(g,w),onMousedown:g=>u(g,w),onMousemove:g=>c(g,w),onMouseout:d},[pe("div",{class:["cell",w.filteredValue&&w.filteredValue.length>0?"highlight":""]},[w.renderHeader?w.renderHeader({column:w,$index:S,store:h,_self:p}):w.label,w.sortable&&pe("span",{onClick:g=>f(g,w),class:"caret-wrapper"},[pe("i",{onClick:g=>f(g,w,"ascending"),class:"sort-caret ascending"}),pe("i",{onClick:g=>f(g,w,"descending"),class:"sort-caret descending"})]),w.filterable&&pe(cO,{store:h,placement:w.filterPlacement||"bottom-start",column:w,upDataColumn:(g,E)=>{w[g]=E}})])]))))))}});function mO(e){const t=Te(fn),n=P(""),r=P(pe("div")),o=(d,h,p)=>{var v;const b=t,m=Bl(d);let w;const S=(v=b==null?void 0:b.vnode.el)==null?void 0:v.dataset.prefix;m&&(w=Gc({columns:e.store.states.columns.value},m,S),w&&(b==null||b.emit(`cell-${p}`,h,w,m,d))),b==null||b.emit(`row-${p}`,h,w,d)},s=(d,h)=>{o(d,h,"dblclick")},l=(d,h)=>{e.store.commit("setCurrentRow",h),o(d,h,"click")},a=(d,h)=>{o(d,h,"contextmenu")},i=Ns(d=>{e.store.commit("setHoverRow",d)},30),u=Ns(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:s,handleClick:l,handleContextMenu:a,handleMouseEnter:i,handleMouseLeave:u,handleCellMouseEnter:(d,h,p)=>{var v;const b=t,m=Bl(d),w=(v=b==null?void 0:b.vnode.el)==null?void 0:v.dataset.prefix;if(m){const C=Gc({columns:e.store.states.columns.value},m,w),x=b.hoverState={cell:m,column:C,row:h};b==null||b.emit("cell-mouse-enter",x.row,x.column,x.cell,d)}if(!p)return;const S=d.target.querySelector(".cell");if(!(vr(S,`${w}-tooltip`)&&S.childNodes.length))return;const g=document.createRange();g.setStart(S,0),g.setEnd(S,S.childNodes.length);const E=Math.round(g.getBoundingClientRect().width),O=(Number.parseInt(ca(S,"paddingLeft"),10)||0)+(Number.parseInt(ca(S,"paddingRight"),10)||0);(E+O>S.offsetWidth||S.scrollWidth>S.offsetWidth)&&YT(t==null?void 0:t.refs.tableWrapper,m,m.innerText||m.textContent,p)},handleCellMouseLeave:d=>{if(!Bl(d))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,d)},tooltipContent:n,tooltipTrigger:r}}function gO(e){const t=Te(fn),n=Se("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[n.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(n.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let p=h??{};typeof h=="function"&&(p=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const v=Ii(c,e==null?void 0:e.fixed,e.store);return Ur(v,"left"),Ur(v,"right"),Object.assign({},p,v)},getCellClass:(u,c,f,d,h)=>{const p=ki(n.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),v=[d.id,d.align,d.className,...p],b=t==null?void 0:t.props.cellClassName;return typeof b=="string"?v.push(b):typeof b=="function"&&v.push(b.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),v.push(n.e("cell")),v.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,p=1;const v=t==null?void 0:t.props.spanMethod;if(typeof v=="function"){const b=v({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(b)?(h=b[0],p=b[1]):typeof b=="object"&&(h=b.rowspan,p=b.colspan)}return{rowspan:h,colspan:p}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:p})=>h||p).slice(f,f+c);return Number(d.reduce((h,p)=>Number(h)+Number(p),-1))}}}function yO(e){const t=Te(fn),n=Se("table"),{handleDoubleClick:r,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:a,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=mO(e),{getRowStyle:d,getRowClass:h,getCellStyle:p,getCellClass:v,getSpan:b,getColspanRealWidth:m}=gO(e),w=$(()=>e.store.states.columns.value.findIndex(({type:C})=>C==="default")),S=(C,x)=>{const k=t.props.rowKey;return k?ct(C,k):x},g=(C,x,k,M=!1)=>{const{tooltipEffect:F,tooltipOptions:A,store:D}=e,{indent:Q,columns:V}=D.states,Z=h(C,x);let se=!0;return k&&(Z.push(n.em("row",`level-${k.level}`)),se=k.display),pe("tr",{style:[se?null:{display:"none"},d(C,x)],class:Z,key:S(C,x),onDblclick:R=>r(R,C),onClick:R=>o(R,C),onContextmenu:R=>s(R,C),onMouseenter:()=>l(x),onMouseleave:a},V.value.map((R,te)=>{const{rowspan:he,colspan:Ee}=b(C,R,x,te);if(!he||!Ee)return null;const Re={...R};Re.realWidth=m(V.value,Ee,te);const Le={store:e.store,_self:e.context||t,column:Re,row:C,$index:x,cellIndex:te,expanded:M};te===w.value&&k&&(Le.treeNode={indent:k.level*Q.value,level:k.level},typeof k.expanded=="boolean"&&(Le.treeNode.expanded=k.expanded,"loading"in k&&(Le.treeNode.loading=k.loading),"noLazyChildren"in k&&(Le.treeNode.noLazyChildren=k.noLazyChildren)));const L=`${x},${te}`,q=Re.columnKey||Re.rawColumnKey||"",U=E(te,R,Le),ee=R.showOverflowTooltip&&Kd({effect:F},A,R.showOverflowTooltip);return pe("td",{style:p(x,te,C,R),class:v(x,te,C,R,Ee-1),key:`${q}${L}`,rowspan:he,colspan:Ee,onMouseenter:we=>i(we,C,ee),onMouseleave:u},[U])}))},E=(C,x,k)=>x.renderCell(k);return{wrappedRowRender:(C,x)=>{const k=e.store,{isRowExpanded:M,assertRowKey:F}=k,{treeData:A,lazyTreeNodeMap:D,childrenColumnName:Q,rowKey:V}=k.states,Z=k.states.columns.value;if(Z.some(({type:j})=>j==="expand")){const j=M(C),R=g(C,x,void 0,j),te=t.renderExpanded;return j?te?[[R,pe("tr",{key:`expanded-row__${R.key}`},[pe("td",{colspan:Z.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[te({row:C,$index:x,store:k,expanded:j})])])]]:(console.error("[Element Error]renderExpanded is required."),R):[[R]]}else if(Object.keys(A.value).length){F();const j=ct(C,V.value);let R=A.value[j],te=null;R&&(te={expanded:R.expanded,level:R.level,display:!0},typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(te.noLazyChildren=!(R.children&&R.children.length)),te.loading=R.loading));const he=[g(C,x,te)];if(R){let Ee=0;const Re=(L,q)=>{L&&L.length&&q&&L.forEach(U=>{const ee={display:q.display&&q.expanded,level:q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},we=ct(U,V.value);if(we==null)throw new Error("For nested data item, row-key is required.");if(R={...A.value[we]},R&&(ee.expanded=R.expanded,R.level=R.level||ee.level,R.display=!!(R.expanded&&ee.display),typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(ee.noLazyChildren=!(R.children&&R.children.length)),ee.loading=R.loading)),Ee++,he.push(g(U,x+Ee,ee)),R){const Ne=D.value[we]||U[Q.value];Re(Ne,R)}})};R.display=!0;const Le=D.value[j]||C[Q.value];Re(Le,R)}return he}else return g(C,x,void 0)},tooltipContent:c,tooltipTrigger:f}}const bO={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var wO=ue({name:"ElTableBody",props:bO,setup(e){const t=We(),n=Te(fn),r=Se("table"),{wrappedRowRender:o,tooltipContent:s,tooltipTrigger:l}=yO(e),{onColumnsChange:a,onScrollableChange:i}=bh(n);return de(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Xe)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(b=>b==null?void 0:b.classList.contains(`${r.e("row")}`)),p=h[c],v=h[u];p&&mr(p,"hover-row"),v&&ur(v,"hover-row")})}),Zr(()=>{var u;(u=mn)==null||u()}),{ns:r,onColumnsChange:a,onScrollableChange:i,wrappedRowRender:o,tooltipContent:s,tooltipTrigger:l}},render(){const{wrappedRowRender:e,store:t}=this,n=t.states.data.value||[];return pe("tbody",{},[n.reduce((r,o)=>r.concat(e(o,r.length)),[])])}});function Li(e){const t=e.tableLayout==="auto";let n=e.columns||[];t&&n.every(o=>o.width===void 0)&&(n=[]);const r=o=>{const s={key:`${e.tableLayout}_${o.id}`,style:{},name:void 0};return t?s.style={width:`${o.width}px`}:s.name=o.id,s};return pe("colgroup",{},n.map(o=>pe("col",r(o))))}Li.props=["columns","tableLayout"];function _O(){const e=Te(fn),t=e==null?void 0:e.store,n=$(()=>t.states.fixedLeafColumnsLength.value),r=$(()=>t.states.rightFixedColumns.value.length),o=$(()=>t.states.columns.value.length),s=$(()=>t.states.fixedColumns.value.length),l=$(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:n,rightFixedLeafCount:r,columnsCount:o,leftFixedCount:s,rightFixedCount:l,columns:t.states.columns}}function CO(e){const{columns:t}=_O(),n=Se("table");return{getCellClasses:(s,l)=>{const a=s[l],i=[n.e("cell"),a.id,a.align,a.labelClassName,...ki(n.b(),l,a.fixed,e.store)];return a.className&&i.push(a.className),a.children||i.push(n.is("leaf")),i},getCellStyles:(s,l)=>{const a=Ii(l,s.fixed,e.store);return Ur(a,"left"),Ur(a,"right"),a},columns:t}}var EO=ue({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:n,columns:r}=CO(e);return{ns:Se("table"),getCellClasses:t,getCellStyles:n,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:r,sumText:o,ns:s}=this,l=this.store.states.data.value;let a=[];return r?a=r({columns:e,data:l}):e.forEach((i,u)=>{if(u===0){a[u]=o;return}const c=l.map(p=>Number(p[i.property])),f=[];let d=!0;c.forEach(p=>{if(!Number.isNaN(+p)){d=!1;const v=`${p}`.split(".")[1];f.push(v?v.length:0)}});const h=Math.max.apply(null,f);d?a[u]="":a[u]=c.reduce((p,v)=>{const b=Number(v);return Number.isNaN(+b)?p:Number.parseFloat((p+v).toFixed(Math.min(h,20)))},0)}),pe("table",{class:s.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[Li({columns:e}),pe("tbody",[pe("tr",{},[...e.map((i,u)=>pe("td",{key:u,colspan:i.colSpan,rowspan:i.rowSpan,class:n(e,u),style:t(i,u)},[pe("div",{class:["cell",i.labelClassName]},[a[u]])]))])])])}});function SO(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function xO(e,t,n,r){const o=P(!1),s=P(null),l=P(!1),a=j=>{l.value=j},i=P({width:null,height:null,headerHeight:null}),u=P(!1),c={display:"inline-block",verticalAlign:"middle"},f=P(),d=P(0),h=P(0),p=P(0),v=P(0);zn(()=>{t.setHeight(e.height)}),zn(()=>{t.setMaxHeight(e.maxHeight)}),de(()=>[e.currentRowKey,n.states.rowKey],([j,R])=>{!y(R)||!y(j)||n.setCurrentRowKey(`${j}`)},{immediate:!0}),de(()=>e.data,j=>{r.store.commit("setData",j)},{immediate:!0,deep:!0}),zn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const b=()=>{r.store.commit("setHoverRow",null),r.hoverState&&(r.hoverState=null)},m=(j,R)=>{const{pixelX:te,pixelY:he}=R;Math.abs(te)>=Math.abs(he)&&(r.refs.bodyWrapper.scrollLeft+=R.pixelX/5)},w=$(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),S=$(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),g=()=>{w.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(x)};Je(async()=>{await Ke(),n.updateColumns(),k(),requestAnimationFrame(g);const j=r.vnode.el,R=r.refs.headerWrapper;e.flexible&&j&&j.parentElement&&(j.parentElement.style.minWidth="0"),i.value={width:f.value=j.offsetWidth,height:j.offsetHeight,headerHeight:e.showHeader&&R?R.offsetHeight:null},n.states.columns.value.forEach(te=>{te.filteredValue&&te.filteredValue.length&&r.store.commit("filterChange",{column:te,values:te.filteredValue,silent:!0})}),r.$ready=!0});const E=(j,R)=>{if(!j)return;const te=Array.from(j.classList).filter(he=>!he.startsWith("is-scrolling-"));te.push(t.scrollX.value?R:"is-scrolling-none"),j.className=te.join(" ")},O=j=>{const{tableWrapper:R}=r.refs;E(R,j)},C=j=>{const{tableWrapper:R}=r.refs;return!!(R&&R.classList.contains(j))},x=function(){if(!r.refs.scrollBarRef)return;if(!t.scrollX.value){const L="is-scrolling-none";C(L)||O(L);return}const j=r.refs.scrollBarRef.wrapRef;if(!j)return;const{scrollLeft:R,offsetWidth:te,scrollWidth:he}=j,{headerWrapper:Ee,footerWrapper:Re}=r.refs;Ee&&(Ee.scrollLeft=R),Re&&(Re.scrollLeft=R);const Le=he-te-1;R>=Le?O("is-scrolling-right"):O(R===0?"is-scrolling-left":"is-scrolling-middle")},k=()=>{r.refs.scrollBarRef&&(r.refs.scrollBarRef.wrapRef&&qt(r.refs.scrollBarRef.wrapRef,"scroll",x,{passive:!0}),e.fit?Br(r.vnode.el,M):qt(window,"resize",M),Br(r.refs.bodyWrapper,()=>{var j,R;M(),(R=(j=r.refs)==null?void 0:j.scrollBarRef)==null||R.update()}))},M=()=>{var j,R,te;const he=r.vnode.el;if(!r.$ready||!he)return;let Ee=!1;const{width:Re,height:Le,headerHeight:L}=i.value,q=f.value=he.offsetWidth;Re!==q&&(Ee=!0);const U=he.offsetHeight;(e.height||w.value)&&Le!==U&&(Ee=!0);const ee=e.tableLayout==="fixed"?r.refs.headerWrapper:(j=r.refs.tableHeaderRef)==null?void 0:j.$el;e.showHeader&&(ee==null?void 0:ee.offsetHeight)!==L&&(Ee=!0),d.value=((R=r.refs.tableWrapper)==null?void 0:R.scrollHeight)||0,p.value=(ee==null?void 0:ee.scrollHeight)||0,v.value=((te=r.refs.footerWrapper)==null?void 0:te.offsetHeight)||0,h.value=d.value-p.value-v.value,Ee&&(i.value={width:q,height:U,headerHeight:e.showHeader&&(ee==null?void 0:ee.offsetHeight)||0},g())},F=br(),A=$(()=>{const{bodyWidth:j,scrollY:R,gutterWidth:te}=t;return j.value?`${j.value-(R.value?te:0)}px`:""}),D=$(()=>e.maxHeight?"fixed":e.tableLayout),Q=$(()=>{if(e.data&&e.data.length)return null;let j="100%";e.height&&h.value&&(j=`${h.value}px`);const R=f.value;return{width:R?`${R}px`:"",height:j}}),V=$(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),Z=$(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${p.value+v.value}px)`};{const j=e.maxHeight;if(d.value>=Number(j))return{maxHeight:`${d.value-p.value-v.value}px`}}}return{}});return{isHidden:o,renderExpanded:s,setDragVisible:a,isGroup:u,handleMouseLeave:b,handleHeaderFooterMousewheel:m,tableSize:F,emptyBlockStyle:Q,handleFixedMousewheel:(j,R)=>{const te=r.refs.bodyWrapper;if(Math.abs(R.spinY)>0){const he=te.scrollTop;R.pixelY<0&&he!==0&&j.preventDefault(),R.pixelY>0&&te.scrollHeight-te.clientHeight>he&&j.preventDefault(),te.scrollTop+=Math.ceil(R.pixelY/5)}else te.scrollLeft+=Math.ceil(R.pixelX/5)},resizeProxyVisible:l,bodyWidth:A,resizeState:i,doLayout:g,tableBodyStyles:S,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:V,scrollbarStyle:Z}}function TO(e){const t=P(),n=()=>{const o=e.vnode.el.querySelector(".hidden-columns"),s={childList:!0,subtree:!0},l=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{l.forEach(a=>a())}),t.value.observe(o,s)};Je(()=>{n()}),Zr(()=>{var r;(r=t.value)==null||r.disconnect()})}var OO={data:{type:Array,default:()=>[]},size:no,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const $O=()=>{const e=P(),t=(s,l)=>{const a=e.value;a&&a.scrollTo(s,l)},n=(s,l)=>{const a=e.value;a&<(l)&&["Top","Left"].includes(s)&&a[`setScroll${s}`](l)};return{scrollBarRef:e,scrollTo:t,setScrollTop:s=>n("Top",s),setScrollLeft:s=>n("Left",s)}};let AO=1;const MO=ue({name:"ElTable",directives:{Mousewheel:Ex},components:{TableHeader:vO,TableBody:wO,TableFooter:EO,ElScrollbar:Np,hColgroup:Li},props:OO,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=gi(),n=Se("table"),r=We();it(fn,r);const o=tO(r,e);r.store=o;const s=new rO({store:r.store,table:r,fit:e.fit,showHeader:e.showHeader});r.layout=s;const l=$(()=>(o.states.data.value||[]).length===0),{setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:p,sort:v}=SO(o),{isHidden:b,renderExpanded:m,setDragVisible:w,isGroup:S,handleMouseLeave:g,handleHeaderFooterMousewheel:E,tableSize:O,emptyBlockStyle:C,handleFixedMousewheel:x,resizeProxyVisible:k,bodyWidth:M,resizeState:F,doLayout:A,tableBodyStyles:D,tableLayout:Q,scrollbarViewStyle:V,tableInnerStyle:Z,scrollbarStyle:se}=xO(e,s,o,r),{scrollBarRef:j,scrollTo:R,setScrollLeft:te,setScrollTop:he}=$O(),Ee=Ns(A,50),Re=`${n.namespace.value}-table_${AO++}`;r.tableId=Re,r.state={isGroup:S,resizeState:F,doLayout:A,debouncedUpdateLayout:Ee};const Le=$(()=>e.sumText||t("el.table.sumText")),L=$(()=>e.emptyText||t("el.table.emptyText"));return TO(r),{ns:n,layout:s,store:o,handleHeaderFooterMousewheel:E,handleMouseLeave:g,tableId:Re,tableSize:O,isHidden:b,isEmpty:l,renderExpanded:m,resizeProxyVisible:k,resizeState:F,isGroup:S,bodyWidth:M,tableBodyStyles:D,emptyBlockStyle:C,debouncedUpdateLayout:Ee,handleFixedMousewheel:x,setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:p,doLayout:A,sort:v,t,setDragVisible:w,context:r,computedSumText:Le,computedEmptyText:L,tableLayout:Q,scrollbarViewStyle:V,tableInnerStyle:Z,scrollbarStyle:se,scrollBarRef:j,scrollTo:R,setScrollLeft:te,setScrollTop:he}}}),PO=["data-prefix"],RO={ref:"hiddenColumns",class:"hidden-columns"};function kO(e,t,n,r,o,s){const l=rt("hColgroup"),a=rt("table-header"),i=rt("table-body"),u=rt("el-scrollbar"),c=rt("table-footer"),f=td("mousewheel");return B(),re("div",{ref:"tableWrapper",class:K([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:et(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=d=>e.handleMouseLeave())},[oe("div",{class:K(e.ns.e("inner-wrapper")),style:et(e.tableInnerStyle)},[oe("div",RO,[Me(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?ut((B(),re("div",{key:0,ref:"headerWrapper",class:K(e.ns.e("header-wrapper"))},[oe("table",{ref:"tableHeader",class:K(e.ns.e("header")),style:et(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ie(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ie(a,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):me("v-if",!0),oe("div",{ref:"bodyWrapper",class:K(e.ns.e("body-wrapper"))},[ie(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:ce(()=>[oe("table",{ref:"tableBody",class:K(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:et({width:e.bodyWidth,tableLayout:e.tableLayout})},[ie(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(B(),ve(a,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):me("v-if",!0),ie(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(B(),re("div",{key:0,ref:"emptyBlock",style:et(e.emptyBlockStyle),class:K(e.ns.e("empty-block"))},[oe("span",{class:K(e.ns.e("empty-text"))},[Me(e.$slots,"empty",{},()=>[Ct(Ze(e.computedEmptyText),1)])],2)],6)):me("v-if",!0),e.$slots.append?(B(),re("div",{key:1,ref:"appendWrapper",class:K(e.ns.e("append-wrapper"))},[Me(e.$slots,"append")],2)):me("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?ut((B(),re("div",{key:1,ref:"footerWrapper",class:K(e.ns.e("footer-wrapper"))},[ie(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:et(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[Ut,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):me("v-if",!0),e.border||e.isGroup?(B(),re("div",{key:2,class:K(e.ns.e("border-left-patch"))},null,2)):me("v-if",!0)],6),ut(oe("div",{ref:"resizeProxy",class:K(e.ns.e("column-resize-proxy"))},null,2),[[Ut,e.resizeProxyVisible]])],46,PO)}var IO=ze(MO,[["render",kO],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const LO={selection:"table-column--selection",expand:"table__expand-column"},NO={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},FO=e=>LO[e]||"",BO={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return pe(Vr,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:n,$index:r}){return pe(Vr,{disabled:t.selectable?!t.selectable.call(null,e,r):!1,size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:o=>o.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let n=t+1;const r=e.index;return typeof r=="number"?n=t+r:typeof r=="function"&&(n=r(t)),pe("div",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:n}){const{ns:r}=t,o=[r.e("expand-icon")];return n&&o.push(r.em("expand-icon","expanded")),pe("div",{class:o,onClick:function(l){l.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[pe(ot,null,{default:()=>[pe(fi)]})]})},sortable:!1,resizable:!1}};function HO({row:e,column:t,$index:n}){var r;const o=t.property,s=o&&t_(e,o).value;return t&&t.formatter?t.formatter(e,t,s,n):((r=s==null?void 0:s.toString)==null?void 0:r.call(s))||""}function DO({row:e,treeNode:t,store:n},r=!1){const{ns:o}=n;if(!t)return r?[pe("span",{class:o.e("placeholder")})]:null;const s=[],l=function(a){a.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&s.push(pe("span",{class:o.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const a=[o.e("expand-icon"),t.expanded?o.em("expand-icon","expanded"):""];let i=fi;t.loading&&(i=dl),s.push(pe("div",{class:a,onClick:l},{default:()=>[pe(ot,{class:{[o.is("loading")]:t.loading}},{default:()=>[pe(i)]})]}))}else s.push(pe("span",{class:o.e("placeholder")}));return s}function Zc(e,t){return e.reduce((n,r)=>(n[r]=r,n),t)}function zO(e,t){const n=We();return{registerComplexWatchers:()=>{const s=["fixed"],l={realWidth:"width",realMinWidth:"minWidth"},a=Zc(s,l);Object.keys(a).forEach(i=>{const u=l[i];$e(t,u)&&de(()=>t[u],c=>{let f=c;u==="width"&&i==="realWidth"&&(f=Ri(c)),u==="minWidth"&&i==="realMinWidth"&&(f=hh(c)),n.columnConfig.value[u]=f,n.columnConfig.value[i]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const s=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],l={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},a=Zc(s,l);Object.keys(a).forEach(i=>{const u=l[i];$e(t,u)&&de(()=>t[u],c=>{n.columnConfig.value[i]=c})})}}}function jO(e,t,n){const r=We(),o=P(""),s=P(!1),l=P(),a=P(),i=Se("table");zn(()=>{l.value=e.align?`is-${e.align}`:null,l.value}),zn(()=>{a.value=e.headerAlign?`is-${e.headerAlign}`:l.value,a.value});const u=$(()=>{let g=r.vnode.vParent||r.parent;for(;g&&!g.tableId&&!g.columnId;)g=g.vnode.vParent||g.parent;return g}),c=$(()=>{const{store:g}=r.parent;if(!g)return!1;const{treeData:E}=g.states,O=E.value;return O&&Object.keys(O).length>0}),f=P(Ri(e.width)),d=P(hh(e.minWidth)),h=g=>(f.value&&(g.width=f.value),d.value&&(g.minWidth=d.value),!f.value&&d.value&&(g.width=void 0),g.minWidth||(g.minWidth=80),g.realWidth=Number(g.width===void 0?g.minWidth:g.width),g),p=g=>{const E=g.type,O=BO[E]||{};Object.keys(O).forEach(x=>{const k=O[x];x!=="className"&&k!==void 0&&(g[x]=k)});const C=FO(E);if(C){const x=`${y(i.namespace)}-${C}`;g.className=g.className?`${g.className} ${x}`:x}return g},v=g=>{Array.isArray(g)?g.forEach(O=>E(O)):E(g);function E(O){var C;((C=O==null?void 0:O.type)==null?void 0:C.name)==="ElTableColumn"&&(O.vParent=r)}};return{columnId:o,realAlign:l,isSubColumn:s,realHeaderAlign:a,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:p,setColumnRenders:g=>{e.renderHeader||g.type!=="selection"&&(g.renderHeader=O=>{r.columnConfig.value.label;const C=t.header;return C?C(O):g.label});let E=g.renderCell;return g.type==="expand"?(g.renderCell=O=>pe("div",{class:"cell"},[E(O)]),n.value.renderExpanded=O=>t.default?t.default(O):t.default):(E=E||HO,g.renderCell=O=>{let C=null;if(t.default){const F=t.default(O);C=F.some(A=>A.type!==_t)?F:E(O)}else C=E(O);const x=c.value&&O.cellIndex===0&&O.column.type!=="selection",k=DO(O,x),M={class:"cell",style:{}};return g.showOverflowTooltip&&(M.class=`${M.class} ${y(i.namespace)}-tooltip`,M.style={width:`${(O.column.realWidth||Number(O.column.width))-1}px`}),v(C),pe("div",M,[k,C])}),g},getPropsData:(...g)=>g.reduce((E,O)=>(Array.isArray(O)&&O.forEach(C=>{E[C]=e[C]}),E),{}),getColumnElIndex:(g,E)=>Array.prototype.indexOf.call(g,E),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",r.columnConfig.value)}}}var WO={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let KO=1;var _h=ue({name:"ElTableColumn",components:{ElCheckbox:Vr},props:WO,setup(e,{slots:t}){const n=We(),r=P({}),o=$(()=>{let S=n.parent;for(;S&&!S.tableId;)S=S.parent;return S}),{registerNormalWatchers:s,registerComplexWatchers:l}=zO(o,e),{columnId:a,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:p,getColumnElIndex:v,realAlign:b,updateColumnOrder:m}=jO(e,t,o),w=c.value;a.value=`${w.tableId||w.columnId}_column_${KO++}`,tl(()=>{i.value=o.value!==w;const S=e.type||"default",g=e.sortable===""?!0:e.sortable,E={...NO[S],id:a.value,type:S,property:e.prop||e.property,align:b,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:g,index:e.index,rawColumnKey:n.vnode.key};let M=p(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);M=KT(E,M),M=UT(h,f,d)(M),r.value=M,s(),l()}),Je(()=>{var S;const g=c.value,E=i.value?g.vnode.el.children:(S=g.refs.hiddenColumns)==null?void 0:S.children,O=()=>v(E||[],n.vnode.el);r.value.getColumnIndex=O,O()>-1&&o.value.store.commit("insertColumn",r.value,i.value?g.columnConfig.value:null,m)}),mt(()=>{o.value.store.commit("removeColumn",r.value,i.value?w.columnConfig.value:null,m)}),n.columnId=a.value,n.columnConfig=r},render(){var e,t,n;try{const r=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),o=[];if(Array.isArray(r))for(const l of r)((n=l.type)==null?void 0:n.name)==="ElTableColumn"||l.shapeFlag&2?o.push(l):l.type===Ue&&Array.isArray(l.children)&&l.children.forEach(a=>{(a==null?void 0:a.patchFlag)!==1024&&!xe(a==null?void 0:a.children)&&o.push(a)});return pe("div",o)}catch{return pe("div",[])}}});const VO=kt(IO,{TableColumn:_h}),UO=Sr(_h),Ch=["success","info","warning","error"],bt=Nn({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Xe?document.body:void 0}),qO=qe({customClass:{type:String,default:bt.customClass},center:{type:Boolean,default:bt.center},dangerouslyUseHTMLString:{type:Boolean,default:bt.dangerouslyUseHTMLString},duration:{type:Number,default:bt.duration},icon:{type:Kt,default:bt.icon},id:{type:String,default:bt.id},message:{type:Ce([String,Object,Function]),default:bt.message},onClose:{type:Ce(Function),required:!1},showClose:{type:Boolean,default:bt.showClose},type:{type:String,values:Ch,default:bt.type},offset:{type:Number,default:bt.offset},zIndex:{type:Number,default:bt.zIndex},grouping:{type:Boolean,default:bt.grouping},repeatNum:{type:Number,default:bt.repeatNum}}),YO={destroy:()=>!0},Vt=kf([]),GO=e=>{const t=Vt.findIndex(o=>o.id===e),n=Vt[t];let r;return t>0&&(r=Vt[t-1]),{current:n,prev:r}},XO=e=>{const{prev:t}=GO(e);return t?t.vm.exposed.bottom.value:0},JO=(e,t)=>Vt.findIndex(r=>r.id===e)>0?20:t,ZO=["id"],QO=["innerHTML"],e4=ue({name:"ElMessage"}),t4=ue({...e4,props:qO,emits:YO,setup(e,{expose:t}){const n=e,{Close:r}=ip,o=Se("message"),s=P(),l=P(!1),a=P(0);let i;const u=$(()=>n.type?n.type==="error"?"danger":n.type:"info"),c=$(()=>{const g=n.type;return{[o.bm("icon",g)]:g&&Hs[g]}}),f=$(()=>n.icon||Hs[n.type]||""),d=$(()=>XO(n.id)),h=$(()=>JO(n.id,n.offset)+d.value),p=$(()=>a.value+h.value),v=$(()=>({top:`${h.value}px`,zIndex:n.zIndex}));function b(){n.duration!==0&&({stop:i}=aa(()=>{w()},n.duration))}function m(){i==null||i()}function w(){l.value=!1}function S({code:g}){g===vt.esc&&w()}return Je(()=>{b(),l.value=!0}),de(()=>n.repeatNum,()=>{m(),b()}),qt(document,"keydown",S),Br(s,()=>{a.value=s.value.getBoundingClientRect().height}),t({visible:l,bottom:p,close:w}),(g,E)=>(B(),ve(En,{name:y(o).b("fade"),onBeforeLeave:g.onClose,onAfterLeave:E[0]||(E[0]=O=>g.$emit("destroy")),persisted:""},{default:ce(()=>[ut(oe("div",{id:g.id,ref_key:"messageRef",ref:s,class:K([y(o).b(),{[y(o).m(g.type)]:g.type&&!g.icon},y(o).is("center",g.center),y(o).is("closable",g.showClose),g.customClass]),style:et(y(v)),role:"alert",onMouseenter:m,onMouseleave:b},[g.repeatNum>1?(B(),ve(y(K2),{key:0,value:g.repeatNum,type:y(u),class:K(y(o).e("badge"))},null,8,["value","type","class"])):me("v-if",!0),y(f)?(B(),ve(y(ot),{key:1,class:K([y(o).e("icon"),y(c)])},{default:ce(()=>[(B(),ve(st(y(f))))]),_:1},8,["class"])):me("v-if",!0),Me(g.$slots,"default",{},()=>[g.dangerouslyUseHTMLString?(B(),re(Ue,{key:1},[me(" Caution here, message could've been compromised, never use user's input as message "),oe("p",{class:K(y(o).e("content")),innerHTML:g.message},null,10,QO)],2112)):(B(),re("p",{key:0,class:K(y(o).e("content"))},Ze(g.message),3))]),g.showClose?(B(),ve(y(ot),{key:2,class:K(y(o).e("closeBtn")),onClick:ir(w,["stop"])},{default:ce(()=>[ie(y(r))]),_:1},8,["class","onClick"])):me("v-if",!0)],46,ZO),[[Ut,l.value]])]),_:3},8,["name","onBeforeLeave"]))}});var n4=ze(t4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let r4=1;const Eh=e=>{const t=!e||xe(e)||ln(e)||be(e)?{message:e}:e,n={...bt,...t};if(!n.appendTo)n.appendTo=document.body;else if(xe(n.appendTo)){let r=document.querySelector(n.appendTo);Vn(r)||(r=document.body),n.appendTo=r}return n},o4=e=>{const t=Vt.indexOf(e);if(t===-1)return;Vt.splice(t,1);const{handler:n}=e;n.close()},s4=({appendTo:e,...t},n)=>{const{nextZIndex:r}=ml(),o=`message_${r4++}`,s=t.onClose,l=document.createElement("div"),a={...t,zIndex:r()+t.zIndex,id:o,onClose:()=>{s==null||s(),o4(f)},onDestroy:()=>{Ps(null,l)}},i=ie(n4,a,be(a.message)||ln(a.message)?{default:be(a.message)?a.message:()=>a.message}:null);i.appContext=n||qr._context,Ps(i,l),e.appendChild(l.firstElementChild);const u=i.component,f={id:o,vnode:i,vm:u,handler:{close:()=>{u.exposed.visible.value=!1}},props:i.component.props};return f},qr=(e={},t)=>{if(!Xe)return{close:()=>{}};if(lt(xa.max)&&Vt.length>=xa.max)return{close:()=>{}};const n=Eh(e);if(n.grouping&&Vt.length){const o=Vt.find(({vnode:s})=>{var l;return((l=s.props)==null?void 0:l.message)===n.message});if(o)return o.props.repeatNum+=1,o.props.type=n.type,o.handler}const r=s4(n,t);return Vt.push(r),r.handler};Ch.forEach(e=>{qr[e]=(t={},n)=>{const r=Eh(t);return qr({...r,type:e},n)}});function l4(e){for(const t of Vt)(!e||e===t.props.type)&&t.handler.close()}qr.closeAll=l4;qr._context=null;const nr=PC(qr,"$message"),a4=ue({name:"ElMessageBox",directives:{TrapFocus:mx},components:{ElButton:Gp,ElFocusTrap:jp,ElInput:Lp,ElOverlay:eT,ElIcon:ot,...ip},inheritAttrs:!1,props:{buttonSize:{type:String,validator:cp},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{t:n}=gi(),r=Se("message-box"),o=P(!1),{nextZIndex:s}=ml(),l=Xt({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:s()}),a=$(()=>{const D=l.type;return{[r.bm("icon",D)]:D&&Hs[D]}}),i=js(),u=js(),c=br($(()=>e.buttonSize),{prop:!0,form:!0,formItem:!0}),f=$(()=>l.icon||Hs[l.type]||""),d=$(()=>!!l.message),h=P(),p=P(),v=P(),b=P(),m=P(),w=$(()=>l.confirmButtonClass);de(()=>l.inputValue,async D=>{await Ke(),e.boxType==="prompt"&&D!==null&&k()},{immediate:!0}),de(()=>o.value,D=>{var Q,V;D&&(e.boxType!=="prompt"&&(l.autofocus?v.value=(V=(Q=m.value)==null?void 0:Q.$el)!=null?V:h.value:v.value=h.value),l.zIndex=s()),e.boxType==="prompt"&&(D?Ke().then(()=>{var Z;b.value&&b.value.$el&&(l.autofocus?v.value=(Z=M())!=null?Z:h.value:v.value=h.value)}):(l.editorErrorMessage="",l.validateError=!1))});const S=$(()=>e.draggable);HC(h,p,S),Je(async()=>{await Ke(),e.closeOnHashChange&&window.addEventListener("hashchange",g)}),mt(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",g)});function g(){o.value&&(o.value=!1,Ke(()=>{l.action&&t("action",l.action)}))}const E=()=>{e.closeOnClickModal&&x(l.distinguishCancelAndClose?"close":"cancel")},O=Pp(E),C=D=>{if(l.inputType!=="textarea")return D.preventDefault(),x("confirm")},x=D=>{var Q;e.boxType==="prompt"&&D==="confirm"&&!k()||(l.action=D,l.beforeClose?(Q=l.beforeClose)==null||Q.call(l,D,l,g):g())},k=()=>{if(e.boxType==="prompt"){const D=l.inputPattern;if(D&&!D.test(l.inputValue||""))return l.editorErrorMessage=l.inputErrorMessage||n("el.messagebox.error"),l.validateError=!0,!1;const Q=l.inputValidator;if(typeof Q=="function"){const V=Q(l.inputValue);if(V===!1)return l.editorErrorMessage=l.inputErrorMessage||n("el.messagebox.error"),l.validateError=!0,!1;if(typeof V=="string")return l.editorErrorMessage=V,l.validateError=!0,!1}}return l.editorErrorMessage="",l.validateError=!1,!0},M=()=>{const D=b.value.$refs;return D.input||D.textarea},F=()=>{x("close")},A=()=>{e.closeOnPressEscape&&F()};return e.lockScroll&&UC(o),ZE(o),{...Wa(l),ns:r,overlayEvent:O,visible:o,hasMessage:d,typeClass:a,contentId:i,inputId:u,btnSize:c,iconComponent:f,confirmButtonClasses:w,rootRef:h,focusStartRef:v,headerRef:p,inputRef:b,confirmRef:m,doClose:g,handleClose:F,onCloseRequested:A,handleWrapperClick:E,handleInputEnter:C,handleAction:x,t:n}}}),i4=["aria-label","aria-describedby"],u4=["aria-label"],c4=["id"];function f4(e,t,n,r,o,s){const l=rt("el-icon"),a=rt("close"),i=rt("el-input"),u=rt("el-button"),c=rt("el-focus-trap"),f=rt("el-overlay");return B(),ve(En,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=d=>e.$emit("vanish")),persisted:""},{default:ce(()=>[ut(ie(f,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:ce(()=>[oe("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:K(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...d)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...d)),onMousedown:t[9]||(t[9]=(...d)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...d)),onMouseup:t[10]||(t[10]=(...d)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...d))},[ie(c,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:ce(()=>[oe("div",{ref:"rootRef",class:K([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:et(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=ir(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(B(),re("div",{key:0,ref:"headerRef",class:K(e.ns.e("header"))},[oe("div",{class:K(e.ns.e("title"))},[e.iconComponent&&e.center?(B(),ve(l,{key:0,class:K([e.ns.e("status"),e.typeClass])},{default:ce(()=>[(B(),ve(st(e.iconComponent)))]),_:1},8,["class"])):me("v-if",!0),oe("span",null,Ze(e.title),1)],2),e.showClose?(B(),re("button",{key:0,type:"button",class:K(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=fo(ir(d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[ie(l,{class:K(e.ns.e("close"))},{default:ce(()=>[ie(a)]),_:1},8,["class"])],42,u4)):me("v-if",!0)],2)):me("v-if",!0),oe("div",{id:e.contentId,class:K(e.ns.e("content"))},[oe("div",{class:K(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(B(),ve(l,{key:0,class:K([e.ns.e("status"),e.typeClass])},{default:ce(()=>[(B(),ve(st(e.iconComponent)))]),_:1},8,["class"])):me("v-if",!0),e.hasMessage?(B(),re("div",{key:1,class:K(e.ns.e("message"))},[Me(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(B(),ve(st(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(B(),ve(st(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:ce(()=>[Ct(Ze(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):me("v-if",!0)],2),ut(oe("div",{class:K(e.ns.e("input"))},[ie(i,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=d=>e.inputValue=d),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:K({invalid:e.validateError}),onKeydown:fo(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),oe("div",{class:K(e.ns.e("errormsg")),style:et({visibility:e.editorErrorMessage?"visible":"hidden"})},Ze(e.editorErrorMessage),7)],2),[[Ut,e.showInput]])],10,c4),oe("div",{class:K(e.ns.e("btns"))},[e.showCancelButton?(B(),ve(u,{key:0,loading:e.cancelButtonLoading,class:K([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=d=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=fo(ir(d=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:ce(()=>[Ct(Ze(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):me("v-if",!0),ut(ie(u,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:K([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=d=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=fo(ir(d=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:ce(()=>[Ct(Ze(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[Ut,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,i4)]),_:3},8,["z-index","overlay-class","mask"]),[[Ut,e.visible]])]),_:3})}var d4=ze(a4,[["render",f4],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const Bo=new Map,p4=e=>{let t=document.body;return e.appendTo&&(xe(e.appendTo)&&(t=document.querySelector(e.appendTo)),Vn(e.appendTo)&&(t=e.appendTo),Vn(t)||(t=document.body)),t},h4=(e,t,n=null)=>{const r=ie(d4,e,be(e.message)||ln(e.message)?{default:be(e.message)?e.message:()=>e.message}:null);return r.appContext=n,Ps(r,t),p4(e).appendChild(t.firstElementChild),r.component},v4=()=>document.createElement("div"),m4=(e,t)=>{const n=v4();e.onVanish=()=>{Ps(null,n),Bo.delete(o)},e.onAction=s=>{const l=Bo.get(o);let a;e.showInput?a={value:o.inputValue,action:s}:a=s,e.callback?e.callback(a,r.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?l.reject("close"):l.reject("cancel"):l.resolve(a)};const r=h4(e,n,t),o=r.proxy;for(const s in e)$e(e,s)&&!$e(o.$props,s)&&(o[s]=e[s]);return o.visible=!0,o};function oo(e,t=null){if(!Xe)return Promise.reject();let n;return xe(e)||ln(e)?e={message:e}:n=e.callback,new Promise((r,o)=>{const s=m4(e,t??oo._context);Bo.set(s,{options:e,callback:n,resolve:r,reject:o})})}const g4=["alert","confirm","prompt"],y4={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};g4.forEach(e=>{oo[e]=b4(e)});function b4(e){return(t,n,r,o)=>{let s="";return Pe(n)?(r=n,s=""):Lo(n)?s="":s=n,oo(Object.assign({title:s,message:t,type:"",...y4[e]},r,{boxType:e}),o)}}oo.close=()=>{Bo.forEach((e,t)=>{t.doClose()}),Bo.clear()};oo._context=null;const kn=oo;kn.install=e=>{kn._context=e._context,e.config.globalProperties.$msgbox=kn,e.config.globalProperties.$messageBox=kn,e.config.globalProperties.$alert=kn.alert,e.config.globalProperties.$confirm=kn.confirm,e.config.globalProperties.$prompt=kn.prompt};const w4=kn,_4={id:"app"},C4={class:"grid-content header-color"},E4={class:"header-content"},S4=oe("div",{class:"brand"},[oe("a",{href:"#"},"frp client")],-1),x4={class:"dark-switch"},T4={id:"content"},O4=oe("footer",null,null,-1),$4=ue({__name:"App",setup(e){const t=V1(),n=P(t),r=d1(t),o=s=>{s==""&&window.open("https://github.com/fatedier/frp")};return(s,l)=>{const a=BT,i=_T,u=wT,c=ih,f=rt("router-view"),d=Pi;return B(),re("div",_4,[oe("header",C4,[oe("div",E4,[S4,oe("div",x4,[ie(a,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=h=>n.value=h),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:y(r),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),oe("section",null,[ie(d,null,{default:ce(()=>[ie(c,{id:"side-nav",xs:24,md:4},{default:ce(()=>[ie(u,{"default-active":"1",mode:"vertical",theme:"light",router:"false",onSelect:o},{default:ce(()=>[ie(i,{index:"/"},{default:ce(()=>[Ct("Overview")]),_:1}),ie(i,{index:"/configure"},{default:ce(()=>[Ct("Configure")]),_:1}),ie(i,{index:""},{default:ce(()=>[Ct("Help")]),_:1})]),_:1})]),_:1}),ie(c,{xs:24,md:20},{default:ce(()=>[oe("div",T4,[ie(f)])]),_:1})]),_:1})]),O4])}}});/*! - * vue-router v4.1.6 - * (c) 2022 Eduardo San Martin Morote - * @license MIT - */const $r=typeof window<"u";function A4(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const je=Object.assign;function Hl(e,t){const n={};for(const r in t){const o=t[r];n[r]=Gt(o)?o.map(e):e(o)}return n}const Co=()=>{},Gt=Array.isArray,M4=/\/$/,P4=e=>e.replace(M4,"");function Dl(e,t,n="/"){let r,o={},s="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(r=t.slice(0,i),s=t.slice(i+1,a>-1?a:t.length),o=e(s)),a>-1&&(r=r||t.slice(0,a),l=t.slice(a,t.length)),r=L4(r??t,n),{fullPath:r+(s&&"?")+s+l,path:r,query:o,hash:l}}function R4(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qc(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function k4(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Yr(t.matched[r],n.matched[o])&&Sh(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Yr(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Sh(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!I4(e[n],t[n]))return!1;return!0}function I4(e,t){return Gt(e)?ef(e,t):Gt(t)?ef(t,e):e===t}function ef(e,t){return Gt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function L4(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let o=n.length-1,s,l;for(s=0;s1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(s-(s===r.length?1:0)).join("/")}var Ho;(function(e){e.pop="pop",e.push="push"})(Ho||(Ho={}));var Eo;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Eo||(Eo={}));function N4(e){if(!e)if($r){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),P4(e)}const F4=/^[^#]+#/;function B4(e,t){return e.replace(F4,"#")+t}function H4(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const yl=()=>({left:window.pageXOffset,top:window.pageYOffset});function D4(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=H4(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function tf(e,t){return(history.state?history.state.position-t:-1)+e}const Aa=new Map;function z4(e,t){Aa.set(e,t)}function j4(e){const t=Aa.get(e);return Aa.delete(e),t}let W4=()=>location.protocol+"//"+location.host;function xh(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let a=o.includes(e.slice(s))?e.slice(s).length:1,i=o.slice(a);return i[0]!=="/"&&(i="/"+i),Qc(i,"")}return Qc(n,e)+r+o}function K4(e,t,n,r){let o=[],s=[],l=null;const a=({state:d})=>{const h=xh(e,location),p=n.value,v=t.value;let b=0;if(d){if(n.value=h,t.value=d,l&&l===p){l=null;return}b=v?d.position-v.position:0}else r(h);o.forEach(m=>{m(n.value,p,{delta:b,type:Ho.pop,direction:b?b>0?Eo.forward:Eo.back:Eo.unknown})})};function i(){l=n.value}function u(d){o.push(d);const h=()=>{const p=o.indexOf(d);p>-1&&o.splice(p,1)};return s.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(je({},d.state,{scroll:yl()}),"")}function f(){for(const d of s)d();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",c),{pauseListeners:i,listen:u,destroy:f}}function nf(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?yl():null}}function V4(e){const{history:t,location:n}=window,r={value:xh(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(i,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:W4()+e+i;try{t[c?"replaceState":"pushState"](u,"",d),o.value=u}catch(h){console.error(h),n[c?"replace":"assign"](d)}}function l(i,u){const c=je({},t.state,nf(o.value.back,i,o.value.forward,!0),u,{position:o.value.position});s(i,c,!0),r.value=i}function a(i,u){const c=je({},o.value,t.state,{forward:i,scroll:yl()});s(c.current,c,!0);const f=je({},nf(r.value,i,null),{position:c.position+1},u);s(i,f,!1),r.value=i}return{location:r,state:o,push:a,replace:l}}function U4(e){e=N4(e);const t=V4(e),n=K4(e,t.state,t.location,t.replace);function r(s,l=!0){l||n.pauseListeners(),history.go(s)}const o=je({location:"",base:e,go:r,createHref:B4.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function q4(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),U4(e)}function Y4(e){return typeof e=="string"||e&&typeof e=="object"}function Th(e){return typeof e=="string"||typeof e=="symbol"}const Mn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Oh=Symbol("");var rf;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(rf||(rf={}));function Gr(e,t){return je(new Error,{type:e,[Oh]:!0},t)}function vn(e,t){return e instanceof Error&&Oh in e&&(t==null||!!(e.type&t))}const of="[^/]+?",G4={sensitive:!1,strict:!1,start:!0,end:!0},X4=/[.+*?^${}()[\]/\\]/g;function J4(e,t){const n=je({},G4,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function Q4(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const e$={type:0,value:""},t$=/[a-zA-Z0-9_]/;function n$(e){if(!e)return[[]];if(e==="/")return[[e$]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${u}": ${h}`)}let n=0,r=n;const o=[];let s;function l(){s&&o.push(s),s=[]}let a=0,i,u="",c="";function f(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=i}for(;a{l(w)}:Co}function l(c){if(Th(c)){const f=r.get(c);f&&(r.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(l),f.alias.forEach(l))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&r.delete(c.record.name),c.children.forEach(l),c.alias.forEach(l))}}function a(){return n}function i(c){let f=0;for(;f=0&&(c.record.path!==n[f].record.path||!$h(c,n[f]));)f++;n.splice(f,0,c),c.record.name&&!af(c)&&r.set(c.record.name,c)}function u(c,f){let d,h={},p,v;if("name"in c&&c.name){if(d=r.get(c.name),!d)throw Gr(1,{location:c});v=d.record.name,h=je(lf(f.params,d.keys.filter(w=>!w.optional).map(w=>w.name)),c.params&&lf(c.params,d.keys.map(w=>w.name))),p=d.stringify(h)}else if("path"in c)p=c.path,d=n.find(w=>w.re.test(p)),d&&(h=d.parse(p),v=d.record.name);else{if(d=f.name?r.get(f.name):n.find(w=>w.re.test(f.path)),!d)throw Gr(1,{location:c,currentLocation:f});v=d.record.name,h=je({},f.params,c.params),p=d.stringify(h)}const b=[];let m=d;for(;m;)b.unshift(m.record),m=m.parent;return{name:v,path:p,params:h,matched:b,meta:a$(b)}}return e.forEach(c=>s(c)),{addRoute:s,resolve:u,removeRoute:l,getRoutes:a,getRecordMatcher:o}}function lf(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function s$(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:l$(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function l$(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="boolean"?n:n[r];return t}function af(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function a$(e){return e.reduce((t,n)=>je(t,n.meta),{})}function uf(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function $h(e,t){return t.children.some(n=>n===e||$h(e,n))}const Ah=/#/g,i$=/&/g,u$=/\//g,c$=/=/g,f$=/\?/g,Mh=/\+/g,d$=/%5B/g,p$=/%5D/g,Ph=/%5E/g,h$=/%60/g,Rh=/%7B/g,v$=/%7C/g,kh=/%7D/g,m$=/%20/g;function Ni(e){return encodeURI(""+e).replace(v$,"|").replace(d$,"[").replace(p$,"]")}function g$(e){return Ni(e).replace(Rh,"{").replace(kh,"}").replace(Ph,"^")}function Ma(e){return Ni(e).replace(Mh,"%2B").replace(m$,"+").replace(Ah,"%23").replace(i$,"%26").replace(h$,"`").replace(Rh,"{").replace(kh,"}").replace(Ph,"^")}function y$(e){return Ma(e).replace(c$,"%3D")}function b$(e){return Ni(e).replace(Ah,"%23").replace(f$,"%3F")}function w$(e){return e==null?"":b$(e).replace(u$,"%2F")}function Ks(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function _$(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Ma(s)):[r&&Ma(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function C$(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Gt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const E$=Symbol(""),ff=Symbol(""),Fi=Symbol(""),Ih=Symbol(""),Pa=Symbol("");function uo(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function Ln(e,t,n,r,o){const s=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const i=f=>{f===!1?a(Gr(4,{from:n,to:t})):f instanceof Error?a(f):Y4(f)?a(Gr(2,{from:t,to:f})):(s&&r.enterCallbacks[o]===s&&typeof f=="function"&&s.push(f),l())},u=e.call(r&&r.instances[o],t,n,i);let c=Promise.resolve(u);e.length<3&&(c=c.then(i)),c.catch(f=>a(f))})}function zl(e,t,n,r){const o=[];for(const s of e)for(const l in s.components){let a=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(S$(a)){const u=(a.__vccOpts||a)[t];u&&o.push(Ln(u,n,r,s,l))}else{let i=a();o.push(()=>i.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${s.path}"`));const c=A4(u)?u.default:u;s.components[l]=c;const d=(c.__vccOpts||c)[t];return d&&Ln(d,n,r,s,l)()}))}}return o}function S$(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function df(e){const t=Te(Fi),n=Te(Ih),r=$(()=>t.resolve(y(e.to))),o=$(()=>{const{matched:i}=r.value,{length:u}=i,c=i[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(Yr.bind(null,c));if(d>-1)return d;const h=pf(i[u-2]);return u>1&&pf(c)===h&&f[f.length-1].path!==h?f.findIndex(Yr.bind(null,i[u-2])):d}),s=$(()=>o.value>-1&&$$(n.params,r.value.params)),l=$(()=>o.value>-1&&o.value===n.matched.length-1&&Sh(n.params,r.value.params));function a(i={}){return O$(i)?t[y(e.replace)?"replace":"push"](y(e.to)).catch(Co):Promise.resolve()}return{route:r,href:$(()=>r.value.href),isActive:s,isExactActive:l,navigate:a}}const x$=ue({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:df,setup(e,{slots:t}){const n=Xt(df(e)),{options:r}=Te(Fi),o=$(()=>({[hf(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[hf(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:pe("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),T$=x$;function O$(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function $$(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!Gt(o)||o.length!==r.length||r.some((s,l)=>s!==o[l]))return!1}return!0}function pf(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const hf=(e,t,n)=>e??t??n,A$=ue({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Te(Pa),o=$(()=>e.route||r.value),s=Te(ff,0),l=$(()=>{let u=y(s);const{matched:c}=o.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=$(()=>o.value.matched[l.value]);it(ff,$(()=>l.value+1)),it(E$,a),it(Pa,o);const i=P();return de(()=>[i.value,a.value,e.name],([u,c,f],[d,h,p])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!Yr(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(v=>v(u))},{flush:"post"}),()=>{const u=o.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return vf(n.default,{Component:d,route:u});const h=f.props[c],p=h?h===!0?u.params:typeof h=="function"?h(u):h:null,b=pe(d,je({},p,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(f.instances[c]=null)},ref:i}));return vf(n.default,{Component:b,route:u})||b}}});function vf(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const M$=A$;function P$(e){const t=o$(e.routes,e),n=e.parseQuery||_$,r=e.stringifyQuery||cf,o=e.history,s=uo(),l=uo(),a=uo(),i=kr(Mn);let u=Mn;$r&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Hl.bind(null,L=>""+L),f=Hl.bind(null,w$),d=Hl.bind(null,Ks);function h(L,q){let U,ee;return Th(L)?(U=t.getRecordMatcher(L),ee=q):ee=L,t.addRoute(ee,U)}function p(L){const q=t.getRecordMatcher(L);q&&t.removeRoute(q)}function v(){return t.getRoutes().map(L=>L.record)}function b(L){return!!t.getRecordMatcher(L)}function m(L,q){if(q=je({},q||i.value),typeof L=="string"){const _=Dl(n,L,q.path),T=t.resolve({path:_.path},q),N=o.createHref(_.fullPath);return je(_,T,{params:d(T.params),hash:Ks(_.hash),redirectedFrom:void 0,href:N})}let U;if("path"in L)U=je({},L,{path:Dl(n,L.path,q.path).path});else{const _=je({},L.params);for(const T in _)_[T]==null&&delete _[T];U=je({},L,{params:f(L.params)}),q.params=f(q.params)}const ee=t.resolve(U,q),we=L.hash||"";ee.params=c(d(ee.params));const Ne=R4(r,je({},L,{hash:g$(we),path:ee.path})),_e=o.createHref(Ne);return je({fullPath:Ne,hash:we,query:r===cf?C$(L.query):L.query||{}},ee,{redirectedFrom:void 0,href:_e})}function w(L){return typeof L=="string"?Dl(n,L,i.value.path):je({},L)}function S(L,q){if(u!==L)return Gr(8,{from:q,to:L})}function g(L){return C(L)}function E(L){return g(je(w(L),{replace:!0}))}function O(L){const q=L.matched[L.matched.length-1];if(q&&q.redirect){const{redirect:U}=q;let ee=typeof U=="function"?U(L):U;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=w(ee):{path:ee},ee.params={}),je({query:L.query,hash:L.hash,params:"path"in ee?{}:L.params},ee)}}function C(L,q){const U=u=m(L),ee=i.value,we=L.state,Ne=L.force,_e=L.replace===!0,_=O(U);if(_)return C(je(w(_),{state:typeof _=="object"?je({},we,_.state):we,force:Ne,replace:_e}),q||U);const T=U;T.redirectedFrom=q;let N;return!Ne&&k4(r,ee,U)&&(N=Gr(16,{to:T,from:ee}),te(ee,ee,!0,!1)),(N?Promise.resolve(N):k(T,ee)).catch(H=>vn(H)?vn(H,2)?H:R(H):se(H,T,ee)).then(H=>{if(H){if(vn(H,2))return C(je({replace:_e},w(H.to),{state:typeof H.to=="object"?je({},we,H.to.state):we,force:Ne}),q||T)}else H=F(T,ee,!0,_e,we);return M(T,ee,H),H})}function x(L,q){const U=S(L,q);return U?Promise.reject(U):Promise.resolve()}function k(L,q){let U;const[ee,we,Ne]=R$(L,q);U=zl(ee.reverse(),"beforeRouteLeave",L,q);for(const _ of ee)_.leaveGuards.forEach(T=>{U.push(Ln(T,L,q))});const _e=x.bind(null,L,q);return U.push(_e),Tr(U).then(()=>{U=[];for(const _ of s.list())U.push(Ln(_,L,q));return U.push(_e),Tr(U)}).then(()=>{U=zl(we,"beforeRouteUpdate",L,q);for(const _ of we)_.updateGuards.forEach(T=>{U.push(Ln(T,L,q))});return U.push(_e),Tr(U)}).then(()=>{U=[];for(const _ of L.matched)if(_.beforeEnter&&!q.matched.includes(_))if(Gt(_.beforeEnter))for(const T of _.beforeEnter)U.push(Ln(T,L,q));else U.push(Ln(_.beforeEnter,L,q));return U.push(_e),Tr(U)}).then(()=>(L.matched.forEach(_=>_.enterCallbacks={}),U=zl(Ne,"beforeRouteEnter",L,q),U.push(_e),Tr(U))).then(()=>{U=[];for(const _ of l.list())U.push(Ln(_,L,q));return U.push(_e),Tr(U)}).catch(_=>vn(_,8)?_:Promise.reject(_))}function M(L,q,U){for(const ee of a.list())ee(L,q,U)}function F(L,q,U,ee,we){const Ne=S(L,q);if(Ne)return Ne;const _e=q===Mn,_=$r?history.state:{};U&&(ee||_e?o.replace(L.fullPath,je({scroll:_e&&_&&_.scroll},we)):o.push(L.fullPath,we)),i.value=L,te(L,q,U,_e),R()}let A;function D(){A||(A=o.listen((L,q,U)=>{if(!Le.listening)return;const ee=m(L),we=O(ee);if(we){C(je(we,{replace:!0}),ee).catch(Co);return}u=ee;const Ne=i.value;$r&&z4(tf(Ne.fullPath,U.delta),yl()),k(ee,Ne).catch(_e=>vn(_e,12)?_e:vn(_e,2)?(C(_e.to,ee).then(_=>{vn(_,20)&&!U.delta&&U.type===Ho.pop&&o.go(-1,!1)}).catch(Co),Promise.reject()):(U.delta&&o.go(-U.delta,!1),se(_e,ee,Ne))).then(_e=>{_e=_e||F(ee,Ne,!1),_e&&(U.delta&&!vn(_e,8)?o.go(-U.delta,!1):U.type===Ho.pop&&vn(_e,20)&&o.go(-1,!1)),M(ee,Ne,_e)}).catch(Co)}))}let Q=uo(),V=uo(),Z;function se(L,q,U){R(L);const ee=V.list();return ee.length?ee.forEach(we=>we(L,q,U)):console.error(L),Promise.reject(L)}function j(){return Z&&i.value!==Mn?Promise.resolve():new Promise((L,q)=>{Q.add([L,q])})}function R(L){return Z||(Z=!L,D(),Q.list().forEach(([q,U])=>L?U(L):q()),Q.reset()),L}function te(L,q,U,ee){const{scrollBehavior:we}=e;if(!$r||!we)return Promise.resolve();const Ne=!U&&j4(tf(L.fullPath,0))||(ee||!U)&&history.state&&history.state.scroll||null;return Ke().then(()=>we(L,q,Ne)).then(_e=>_e&&D4(_e)).catch(_e=>se(_e,L,q))}const he=L=>o.go(L);let Ee;const Re=new Set,Le={currentRoute:i,listening:!0,addRoute:h,removeRoute:p,hasRoute:b,getRoutes:v,resolve:m,options:e,push:g,replace:E,go:he,back:()=>he(-1),forward:()=>he(1),beforeEach:s.add,beforeResolve:l.add,afterEach:a.add,onError:V.add,isReady:j,install(L){const q=this;L.component("RouterLink",T$),L.component("RouterView",M$),L.config.globalProperties.$router=q,Object.defineProperty(L.config.globalProperties,"$route",{enumerable:!0,get:()=>y(i)}),$r&&!Ee&&i.value===Mn&&(Ee=!0,g(o.location).catch(we=>{}));const U={};for(const we in Mn)U[we]=$(()=>i.value[we]);L.provide(Fi,q),L.provide(Ih,Xt(U)),L.provide(Pa,i);const ee=L.unmount;Re.add(L),L.unmount=function(){Re.delete(L),Re.size<1&&(u=Mn,A&&A(),A=null,i.value=Mn,Ee=!1,Z=!1),ee()}}};return Le}function Tr(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function R$(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let l=0;lYr(u,a))?r.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(u=>Yr(u,i))||o.push(i))}return[n,r,o]}const k$=ue({__name:"Overview",setup(e){let t=P([]);return(()=>{fetch("/api/status",{credentials:"include"}).then(r=>r.json()).then(r=>{t.value=new Array;for(let o in r)for(let s of r[o])console.log(s),t.value.push(s)}).catch(r=>{nr({showClose:!0,message:"Get status info from frpc failed!"+r,type:"warning"})})})(),(r,o)=>{const s=UO,l=VO,a=ih,i=Pi;return B(),re("div",null,[ie(i,null,{default:ce(()=>[ie(a,{md:24},{default:ce(()=>[oe("div",null,[ie(l,{data:y(t),stripe:"",style:{width:"100%"},"default-sort":{prop:"type",order:"ascending"}},{default:ce(()=>[ie(s,{prop:"name",label:"name",sortable:""}),ie(s,{prop:"type",label:"type",width:"150",sortable:""}),ie(s,{prop:"local_addr",label:"local address",width:"200",sortable:""}),ie(s,{prop:"plugin",label:"plugin",width:"200",sortable:""}),ie(s,{prop:"remote_addr",label:"remote address",sortable:""}),ie(s,{prop:"status",label:"status",width:"150",sortable:""}),ie(s,{prop:"err",label:"info"})]),_:1},8,["data"])])]),_:1})]),_:1})])}}}),I$=ue({__name:"ClientConfigure",setup(e){let t=P("");const n=()=>{fetch("/api/config",{credentials:"include"}).then(o=>o.text()).then(o=>{t.value=o}).catch(()=>{nr({showClose:!0,message:"Get configure content from frpc failed!",type:"warning"})})},r=()=>{w4.confirm("This operation will upload your frpc configure file content and hot reload it, do you want to continue?","Notice",{confirmButtonText:"Yes",cancelButtonText:"No",type:"warning"}).then(()=>{if(t.value==""){nr({message:"Configure content can not be empty!",type:"warning"});return}fetch("/api/config",{credentials:"include",method:"PUT",body:t.value}).then(()=>{fetch("/api/reload",{credentials:"include"}).then(()=>{nr({type:"success",message:"Success"})}).catch(o=>{nr({showClose:!0,message:"Reload frpc configure file error, "+o,type:"warning"})})}).catch(()=>{nr({showClose:!0,message:"Put config to frpc and hot reload failed!",type:"warning"})})}).catch(()=>{nr({message:"Canceled",type:"info"})})};return n(),(o,s)=>{const l=Gp,a=Pi,i=Lp;return B(),re("div",null,[ie(a,{id:"head"},{default:ce(()=>[ie(l,{type:"primary",onClick:n},{default:ce(()=>[Ct("Refresh")]),_:1}),ie(l,{type:"primary",onClick:r},{default:ce(()=>[Ct("Upload")]),_:1})]),_:1}),ie(i,{type:"textarea",autosize:"",modelValue:y(t),"onUpdate:modelValue":s[0]||(s[0]=u=>Ve(t)?t.value=u:t=u),placeholder:"frpc configrue file, can not be empty..."},null,8,["modelValue"])])}}}),L$=P$({history:q4(),routes:[{path:"/",name:"Overview",component:k$},{path:"/configure",name:"ClientConfigure",component:I$}]}),Lh=hg($4);Lh.use(L$);Lh.mount("#app")});export default N$(); diff --git a/assets/frpc/static/index-aa3c7267.css b/assets/frpc/static/index-aa3c7267.css deleted file mode 100644 index 60e79eb8cd2..00000000000 --- a/assets/frpc/static/index-aa3c7267.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled) .el-color-picker__trigger{border:1px solid var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;text-align:left}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret,.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select-v2__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret,.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret,.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotate(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;line-height:var(--el-tabs-header-height);display:inline-block;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item .is-icon-close svg{margin-top:1px}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;width:auto}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item-status-label,.el-upload-list.is-disabled .el-upload-list__item:hover{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .36),0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0, 0, 0, .8);--el-mask-color-extra-light:rgba(0, 0, 0, .3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, .5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5fae\8f6f\96c5\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}html.dark .header-color{background:#395c74}.header-content{display:flex;align-items:center}#content{margin-top:20px;padding-right:40px}.brand{display:flex;justify-content:flex-start}.brand a{color:#fff;background-color:transparent;margin-left:20px;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.dark-switch{display:flex;justify-content:flex-end;flex-grow:1;padding-right:40px}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}#head{margin-bottom:30px}html.dark{--el-bg-color: #343432;--el-fill-color-blank: #343432;background-color:#343432} diff --git a/assets/frpc/static/index.html b/assets/frpc/static/index.html index eacf292baf1..94660a70a5b 100644 --- a/assets/frpc/static/index.html +++ b/assets/frpc/static/index.html @@ -4,8 +4,8 @@ frp client admin UI - - + + diff --git a/assets/frps/static/index-1e0c7400.css b/assets/frps/static/index-1e0c7400.css new file mode 100644 index 00000000000..c16a8d6b22a --- /dev/null +++ b/assets/frps/static/index-1e0c7400.css @@ -0,0 +1 @@ +@charset "UTF-8";.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:inline-flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled) .el-color-picker__trigger{border:1px solid var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;text-align:left}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret,.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select-v2__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret,.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret,.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__suffix .el-input__icon:not(:first-child){margin-left:8px}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotate(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;width:100%}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input--iOS{position:absolute;left:0;top:0;z-index:6}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__tags.is-disabled{cursor:not-allowed}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:center;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;overflow:hidden;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover{padding-left:13px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover{padding-right:13px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular)}.el-text{align-self:center;margin:0;padding:0;font-size:var(--el-text-font-size);color:var(--el-text-color);word-break:break-all}.el-text.is-truncated{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;width:auto}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .36),0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0, 0, 0, .8);--el-mask-color-extra-light:rgba(0, 0, 0, .3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, .5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5fae\8f6f\96c5\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}html.dark .header-color{background:#395c74}.header-content{display:flex;align-items:center}#content{margin-top:20px;padding-right:40px}.brand{display:flex;justify-content:flex-start}.brand a{color:#fff;background-color:transparent;margin-left:20px;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.dark-switch{display:flex;justify-content:flex-end;flex-grow:1;padding-right:40px}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.source{border-radius:4px;transition:.2s;padding-left:24px;padding-right:24px}.server_info{margin-left:40px;font-size:0px}.server_info .el-form-item__label{color:#99a9bf;height:40px;line-height:40px}.server_info .el-form-item__content{height:40px;line-height:40px}.server_info .el-form-item{margin-right:0;margin-bottom:0;width:100%}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}html.dark{--el-bg-color: #343432;--el-fill-color-blank: #343432;background-color:#343432} diff --git a/assets/frps/static/index-7b4711f8.css b/assets/frps/static/index-7b4711f8.css deleted file mode 100644 index 72659789fc0..00000000000 --- a/assets/frps/static/index-7b4711f8.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled) .el-color-picker__trigger{border:1px solid var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;text-align:left}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px;word-break:break-all}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size);word-break:break-all}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret,.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select-v2__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret,.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret,.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotate(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;line-height:var(--el-tabs-header-height);display:inline-block;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item .is-icon-close svg{margin-top:1px}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;width:auto}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item-status-label,.el-upload-list.is-disabled .el-upload-list__item:hover{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .36),0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0, 0, 0, .8);--el-mask-color-extra-light:rgba(0, 0, 0, .3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, .5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5fae\8f6f\96c5\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}html.dark .header-color{background:#395c74}.header-content{display:flex;align-items:center}#content{margin-top:20px;padding-right:40px}.brand{display:flex;justify-content:flex-start}.brand a{color:#fff;background-color:transparent;margin-left:20px;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.dark-switch{display:flex;justify-content:flex-end;flex-grow:1;padding-right:40px}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.source{border-radius:4px;transition:.2s;padding-left:24px;padding-right:24px}.server_info{margin-left:40px;font-size:0px}.server_info .el-form-item__label{color:#99a9bf;height:40px;line-height:40px}.server_info .el-form-item__content{height:40px;line-height:40px}.server_info .el-form-item{margin-right:0;margin-bottom:0;width:100%}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}html.dark{--el-bg-color: #343432;--el-fill-color-blank: #343432;background-color:#343432} diff --git a/assets/frps/static/index-93e38bbf.js b/assets/frps/static/index-93e38bbf.js new file mode 100644 index 00000000000..7ef08097dda --- /dev/null +++ b/assets/frps/static/index-93e38bbf.js @@ -0,0 +1,74 @@ +var fD=Object.defineProperty;var dD=(e,t,r)=>t in e?fD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var hD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,r)=>(dD(e,typeof t!="symbol"?t+"":t,r),r);var Tre=hD((Nr,Fr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Em(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function St(e){if(be(e)){const t={};for(let r=0;r{if(r){const n=r.split(pD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ue(e){let t="";if(He(e))t=e;else if(be(e))for(let r=0;rOd(r,t))}const Te=e=>He(e)?e:e==null?"":be(e)||Xe(e)&&(e.toString===mC||!De(e.toString))?JSON.stringify(e,gC,2):String(e),gC=(e,t)=>t&&t.__v_isRef?gC(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:kd(t)?{[`Set(${t.size})`]:[...t.values()]}:Xe(t)&&!be(t)&&!yC(t)?String(t):t,yt={},ns=[],ur=()=>{},wD=()=>!1,xD=/^on[^a-z]/,Rd=e=>xD.test(e),Pm=e=>e.startsWith("onUpdate:"),Gt=Object.assign,Lm=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},SD=Object.prototype.hasOwnProperty,We=(e,t)=>SD.call(e,t),be=Array.isArray,is=e=>Bu(e)==="[object Map]",kd=e=>Bu(e)==="[object Set]",K0=e=>Bu(e)==="[object Date]",De=e=>typeof e=="function",He=e=>typeof e=="string",tu=e=>typeof e=="symbol",Xe=e=>e!==null&&typeof e=="object",jf=e=>Xe(e)&&De(e.then)&&De(e.catch),mC=Object.prototype.toString,Bu=e=>mC.call(e),CD=e=>Bu(e).slice(8,-1),yC=e=>Bu(e)==="[object Object]",Dm=e=>He(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mf=Em(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Nd=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},TD=/-(\w)/g,An=Nd(e=>e.replace(TD,(t,r)=>r?r.toUpperCase():"")),MD=/\B([A-Z])/g,xo=Nd(e=>e.replace(MD,"-$1").toLowerCase()),Fd=Nd(e=>e.charAt(0).toUpperCase()+e.slice(1)),yf=Nd(e=>e?`on${Fd(e)}`:""),ru=(e,t)=>!Object.is(e,t),_f=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},AD=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ED=e=>{const t=He(e)?Number(e):NaN;return isNaN(t)?e:t};let X0;const PD=()=>X0||(X0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Or;class LD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Or,!t&&Or&&(this.index=(Or.scopes||(Or.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Or;try{return Or=this,t()}finally{Or=r}}}on(){Or=this}off(){Or=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},bC=e=>(e.w&ea)>0,wC=e=>(e.n&ea)>0,OD=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(c==="length"||c>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":be(e)?Dm(r)&&s.push(o.get("length")):(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"delete":be(e)||(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"set":is(e)&&s.push(o.get(no));break}if(s.length===1)s[0]&&Tp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);Tp(Im(l))}}function Tp(e,t){const r=be(e)?e:[...e];for(const n of r)n.computed&&Q0(n);for(const n of r)n.computed||Q0(n)}function Q0(e,t){(e!==bn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function kD(e,t){var r;return(r=qf.get(e))===null||r===void 0?void 0:r.get(t)}const ND=Em("__proto__,__v_isRef,__isVue"),CC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(tu)),FD=Rm(),BD=Rm(!1,!0),$D=Rm(!0),J0=HD();function HD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ke(this);for(let a=0,o=this.length;a{e[t]=function(...r){Os();const n=Ke(this)[t].apply(this,r);return Rs(),n}}),e}function zD(e){const t=Ke(this);return Mr(t,"has",e),t.hasOwnProperty(e)}function Rm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?nI:PC:t?EC:AC).get(n))return n;const o=be(n);if(!e){if(o&&We(J0,i))return Reflect.get(J0,i,a);if(i==="hasOwnProperty")return zD}const s=Reflect.get(n,i,a);return(tu(i)?CC.has(i):ND(i))||(e||Mr(n,"get",i),t)?s:Ct(s)?o&&Dm(i)?s:s.value:Xe(s)?e?$u(s):fn(s):s}}const WD=TC(),VD=TC(!0);function TC(e=!1){return function(r,n,i,a){let o=r[n];if(vs(o)&&Ct(o)&&!Ct(i))return!1;if(!e&&(!Kf(i)&&!vs(i)&&(o=Ke(o),i=Ke(i)),!be(r)&&Ct(o)&&!Ct(i)))return o.value=i,!0;const s=be(r)&&Dm(n)?Number(n)e,Bd=e=>Reflect.getPrototypeOf(e);function uc(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ke(e),a=Ke(t);r||(t!==a&&Mr(i,"get",t),Mr(i,"get",a));const{has:o}=Bd(i),s=n?km:r?Bm:nu;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function cc(e,t=!1){const r=this.__v_raw,n=Ke(r),i=Ke(e);return t||(e!==i&&Mr(n,"has",e),Mr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function fc(e,t=!1){return e=e.__v_raw,!t&&Mr(Ke(e),"iterate",no),Reflect.get(e,"size",e)}function e_(e){e=Ke(e);const t=Ke(this);return Bd(t).has.call(t,e)||(t.add(e),gi(t,"add",e,e)),this}function t_(e,t){t=Ke(t);const r=Ke(this),{has:n,get:i}=Bd(r);let a=n.call(r,e);a||(e=Ke(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?ru(t,o)&&gi(r,"set",e,t):gi(r,"add",e,t),this}function r_(e){const t=Ke(this),{has:r,get:n}=Bd(t);let i=r.call(t,e);i||(e=Ke(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&gi(t,"delete",e,void 0),a}function n_(){const e=Ke(this),t=e.size!==0,r=e.clear();return t&&gi(e,"clear",void 0,void 0),r}function dc(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ke(o),l=t?km:e?Bm:nu;return!e&&Mr(s,"iterate",no),o.forEach((u,c)=>n.call(i,l(u),l(c),a))}}function hc(e,t,r){return function(...n){const i=this.__v_raw,a=Ke(i),o=is(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),c=r?km:t?Bm:nu;return!t&&Mr(a,"iterate",l?Cp:no),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Pi(e){return function(...t){return e==="delete"?!1:this}}function KD(){const e={get(a){return uc(this,a)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!1)},t={get(a){return uc(this,a,!1,!0)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!0)},r={get(a){return uc(this,a,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!1)},n={get(a){return uc(this,a,!0,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=hc(a,!1,!1),r[a]=hc(a,!0,!1),t[a]=hc(a,!1,!0),n[a]=hc(a,!0,!0)}),[e,r,t,n]}const[XD,ZD,QD,JD]=KD();function Nm(e,t){const r=t?e?JD:QD:e?ZD:XD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(We(r,i)&&i in n?r:n,i,a)}const eI={get:Nm(!1,!1)},tI={get:Nm(!1,!0)},rI={get:Nm(!0,!1)},AC=new WeakMap,EC=new WeakMap,PC=new WeakMap,nI=new WeakMap;function iI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function aI(e){return e.__v_skip||!Object.isExtensible(e)?0:iI(CD(e))}function fn(e){return vs(e)?e:Fm(e,!1,MC,eI,AC)}function LC(e){return Fm(e,!1,qD,tI,EC)}function $u(e){return Fm(e,!0,YD,rI,PC)}function Fm(e,t,r,n,i){if(!Xe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=aI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function as(e){return vs(e)?as(e.__v_raw):!!(e&&e.__v_isReactive)}function vs(e){return!!(e&&e.__v_isReadonly)}function Kf(e){return!!(e&&e.__v_isShallow)}function DC(e){return as(e)||vs(e)}function Ke(e){const t=e&&e.__v_raw;return t?Ke(t):e}function IC(e){return Yf(e,"__v_skip",!0),e}const nu=e=>Xe(e)?fn(e):e,Bm=e=>Xe(e)?$u(e):e;function OC(e){Xi&&bn&&(e=Ke(e),SC(e.dep||(e.dep=Im())))}function RC(e,t){e=Ke(e);const r=e.dep;r&&Tp(r)}function Ct(e){return!!(e&&e.__v_isRef===!0)}function B(e){return kC(e,!1)}function $m(e){return kC(e,!0)}function kC(e,t){return Ct(e)?e:new oI(e,t)}class oI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ke(t),this._value=r?t:nu(t)}get value(){return OC(this),this._value}set value(t){const r=this.__v_isShallow||Kf(t)||vs(t);t=r?t:Ke(t),ru(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:nu(t),RC(this))}}function E(e){return Ct(e)?e.value:e}const sI={get:(e,t,r)=>E(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Ct(i)&&!Ct(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function NC(e){return as(e)?e:new Proxy(e,sI)}function $d(e){const t=be(e)?new Array(e.length):{};for(const r in e)t[r]=tn(e,r);return t}class lI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return kD(Ke(this._object),this._key)}}function tn(e,t,r){const n=e[t];return Ct(n)?n:new lI(e,t,r)}var FC;class uI{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[FC]=!1,this._dirty=!0,this.effect=new Om(t,()=>{this._dirty||(this._dirty=!0,RC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ke(this);return OC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}FC="__v_isReadonly";function cI(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=ur):(n=e.get,i=e.set),new uI(n,i,a||!i,r)}function fI(e,...t){}function Zi(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Hd(a,t,r)}return i}function rn(e,t,r,n){if(De(e)){const a=Zi(e,t,r,n);return a&&jf(a)&&a.catch(o=>{Hd(o,t,r)}),a}const i=[];for(let a=0;a>>1;au(tr[n])$n&&tr.splice(t,1)}function pI(e){be(e)?os.push(...e):(!ci||!ci.includes(e,e.allowRecurse?Ga+1:Ga))&&os.push(e),$C()}function i_(e,t=iu?$n+1:0){for(;tau(r)-au(n)),Ga=0;Gae.id==null?1/0:e.id,gI=(e,t)=>{const r=au(e)-au(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function zC(e){Mp=!1,iu=!0,tr.sort(gI);const t=ur;try{for($n=0;$nHe(h)?h.trim():h)),f&&(i=r.map(AD))}let s,l=n[s=yf(t)]||n[s=yf(An(t))];!l&&a&&(l=n[s=yf(xo(t))]),l&&rn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,rn(u,e,6,i)}}function WC(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const c=WC(u,t,!0);c&&(s=!0,Gt(o,c))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(Xe(e)&&n.set(e,null),null):(be(a)?a.forEach(l=>o[l]=null):Gt(o,a),Xe(e)&&n.set(e,o),o)}function zd(e,t){return!e||!Rd(t)?!1:(t=t.slice(2).replace(/Once$/,""),We(e,t[0].toLowerCase()+t.slice(1))||We(e,xo(t))||We(e,t))}let qt=null,VC=null;function Xf(e){const t=qt;return qt=e,VC=e&&e.type.__scopeId||null,t}function Z(e,t=qt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&g_(-1);const a=Xf(t);let o;try{o=e(...i)}finally{Xf(a),n._d&&g_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ih(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Xf(e);try{if(r.shapeFlag&4){const b=i||n;g=Bn(c.call(b,b,f,a,h,d,v)),m=l}else{const b=t;g=Bn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:yI(l)}}catch(b){Dl.length=0,Hd(b,e,1),g=ee(xr)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(Pm)&&(m=_I(m,o)),_=mi(_,m))}return r.dirs&&(_=mi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Xf(y),g}const yI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Rd(r))&&((t||(t={}))[r]=e[r]);return t},_I=(e,t)=>{const r={};for(const n in e)(!Pm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function bI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?a_(n,o,u):!!o;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function SI(e,t){t&&t.pendingBranch?be(e)?t.effects.push(...e):t.effects.push(e):pI(e)}function At(e,t){if(It){let r=It.provides;const n=It.parent&&It.parent.provides;n===r&&(r=It.provides=Object.create(n)),r[e]=t}}function Ee(e,t,r=!1){const n=It||qt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&De(t)?t.call(n.proxy):t}}function io(e,t){return Wm(e,null,t)}const vc={};function Se(e,t,r){return Wm(e,t,r)}function Wm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=yt){const s=_C()===(It==null?void 0:It.scope)?It:null;let l,u=!1,c=!1;if(Ct(e)?(l=()=>e.value,u=Kf(e)):as(e)?(l=()=>e,n=!0):be(e)?(c=!0,u=e.some(_=>as(_)||Kf(_)),l=()=>e.map(_=>{if(Ct(_))return _.value;if(as(_))return Xa(_);if(De(_))return Zi(_,s,2)})):De(e)?t?l=()=>Zi(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return f&&f(),rn(e,s,3,[d])}:l=ur,t&&n){const _=l;l=()=>Xa(_())}let f,d=_=>{f=m.onStop=()=>{Zi(_,s,4)}},h;if(uu)if(d=ur,t?r&&rn(t,s,3,[l(),c?[]:void 0,d]):l(),i==="sync"){const _=vO();h=_.__watcherHandles||(_.__watcherHandles=[])}else return ur;let v=c?new Array(e.length).fill(vc):vc;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(c?_.some((b,x)=>ru(b,v[x])):ru(_,v)))&&(f&&f(),rn(t,s,3,[_,v===vc?void 0:c&&v[0]===vc?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>yr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>zm(p));const m=new Om(l,g);t?r?p():v=m.run():i==="post"?yr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&Lm(s.scope.effects,m)};return h&&h.push(y),y}function CI(e,t,r){const n=this.proxy,i=He(e)?e.includes(".")?GC(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=It;ps(this);const s=Wm(i,a.bind(n),r);return o?ps(o):ao(),s}function GC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Xa(r,t)});else if(yC(e))for(const r in e)Xa(e[r],t);return e}function UC(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return wt(()=>{e.isMounted=!0}),Xt(()=>{e.isUnmounting=!0}),e}const Wr=[Function,Array],TI={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Wr,onEnter:Wr,onAfterEnter:Wr,onEnterCancelled:Wr,onBeforeLeave:Wr,onLeave:Wr,onAfterLeave:Wr,onLeaveCancelled:Wr,onBeforeAppear:Wr,onAppear:Wr,onAfterAppear:Wr,onAppearCancelled:Wr},setup(e,{slots:t}){const r=ct(),n=UC();let i;return()=>{const a=t.default&&Vm(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==xr){o=p;break}}const s=Ke(e),{mode:l}=s;if(n.isLeaving)return Oh(o);const u=o_(o);if(!u)return Oh(o);const c=ou(u,s,n,r);su(u,c);const f=r.subTree,d=f&&o_(f);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==xr&&(!Ua(u,d)||h)){const p=ou(d,s,n,r);if(su(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Oh(o);l==="in-out"&&u.type!==xr&&(p.delayLeave=(g,m,y)=>{const _=YC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=y})}return o}}},jC=TI;function YC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function ou(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=YC(r,e),x=(C,M)=>{C&&rn(C,n,9,M)},w=(C,M)=>{const P=M[1];x(C,M),be(C)?C.every(A=>A.length<=1)&&P():C.length<=1&&P()},S={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C._leaveCb&&C._leaveCb(!0);const P=b[_];P&&Ua(e,P)&&P.el._leaveCb&&P.el._leaveCb(),x(M,[C])},enter(C){let M=l,P=u,A=c;if(!r.isMounted)if(i)M=g||l,P=m||u,A=y||c;else return;let T=!1;const D=C._enterCb=N=>{T||(T=!0,N?x(A,[C]):x(P,[C]),S.delayedLeave&&S.delayedLeave(),C._enterCb=void 0)};M?w(M,[C,D]):D()},leave(C,M){const P=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return M();x(f,[C]);let A=!1;const T=C._leaveCb=D=>{A||(A=!0,M(),D?x(v,[C]):x(h,[C]),C._leaveCb=void 0,b[P]===e&&delete b[P])};b[P]=e,d?w(d,[C,T]):T()},clone(C){return ou(C,t,r,n)}};return S}function Oh(e){if(Wd(e))return e=mi(e),e.children=null,e}function o_(e){return Wd(e)?e.children?e.children[0]:void 0:e}function su(e,t){e.shapeFlag&6&&e.component?su(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vm(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Wd=e=>e.type.__isKeepAlive;function MI(e,t){KC(e,"a",t)}function qC(e,t){KC(e,"da",t)}function KC(e,t,r=It){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Vd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Wd(i.parent.vnode)&&AI(n,t,r,i),i=i.parent}}function AI(e,t,r,n){const i=Vd(t,e,n,!0);ks(()=>{Lm(n[t],i)},r)}function Vd(e,t,r=It,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Os(),ps(r);const s=rn(t,r,e,o);return ao(),Rs(),s});return n?i.unshift(a):i.push(a),a}}const Si=e=>(t,r=It)=>(!uu||e==="sp")&&Vd(e,(...n)=>t(...n),r),Gd=Si("bm"),wt=Si("m"),EI=Si("bu"),Hu=Si("u"),Xt=Si("bum"),ks=Si("um"),PI=Si("sp"),LI=Si("rtg"),DI=Si("rtc");function II(e,t=It){Vd("ec",e,t)}function nr(e,t){const r=qt;if(r===null)return e;const n=jd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sta(t)?!(t.type===xr||t.type===pt&&!QC(t.children)):!0)?e:null}function RI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:yf(n)]=e[n];return r}const Ap=e=>e?uT(e)?jd(e)||e.proxy:Ap(e.parent):null,Pl=Gt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ap(e.parent),$root:e=>Ap(e.root),$emit:e=>e.emit,$options:e=>jm(e),$forceUpdate:e=>e.f||(e.f=()=>zm(e.update)),$nextTick:e=>e.n||(e.n=Ft.bind(e.proxy)),$watch:e=>CI.bind(e)}),Rh=(e,t)=>e!==yt&&!e.__isScriptSetup&&We(e,t),kI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Rh(n,t))return o[t]=1,n[t];if(i!==yt&&We(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&We(u,t))return o[t]=3,a[t];if(r!==yt&&We(r,t))return o[t]=4,r[t];Ep&&(o[t]=0)}}const c=Pl[t];let f,d;if(c)return t==="$attrs"&&Mr(e,"get",t),c(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(r!==yt&&We(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,We(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Rh(i,t)?(i[t]=r,!0):n!==yt&&We(n,t)?(n[t]=r,!0):We(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==yt&&We(e,o)||Rh(t,o)||(s=a[0])&&We(s,o)||We(n,o)||We(Pl,o)||We(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:We(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let Ep=!0;function NI(e){const t=jm(e),r=e.proxy,n=e.ctx;Ep=!1,t.beforeCreate&&u_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:P,inheritAttrs:A,components:T,directives:D,filters:N}=t;if(u&&FI(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const G in o){const F=o[G];De(F)&&(n[G]=F.bind(r))}if(i){const G=i.call(r,r);Xe(G)&&(e.data=fn(G))}if(Ep=!0,a)for(const G in a){const F=a[G],R=De(F)?F.bind(r,r):De(F.get)?F.get.bind(r,r):ur,j=!De(F)&&De(F.set)?F.set.bind(r):ur,re=k({get:R,set:j});Object.defineProperty(n,G,{enumerable:!0,configurable:!0,get:()=>re.value,set:oe=>re.value=oe})}if(s)for(const G in s)JC(s[G],n,r,G);if(l){const G=De(l)?l.call(r):l;Reflect.ownKeys(G).forEach(F=>{At(F,G[F])})}c&&u_(c,e,"c");function $(G,F){be(F)?F.forEach(R=>G(R.bind(r))):F&&G(F.bind(r))}if($(Gd,f),$(wt,d),$(EI,h),$(Hu,v),$(MI,p),$(qC,g),$(II,C),$(DI,w),$(LI,S),$(Xt,y),$(ks,b),$(PI,M),be(P))if(P.length){const G=e.exposed||(e.exposed={});P.forEach(F=>{Object.defineProperty(G,F,{get:()=>r[F],set:R=>r[F]=R})})}else e.exposed||(e.exposed={});x&&e.render===ur&&(e.render=x),A!=null&&(e.inheritAttrs=A),T&&(e.components=T),D&&(e.directives=D)}function FI(e,t,r=ur,n=!1){be(e)&&(e=Pp(e));for(const i in e){const a=e[i];let o;Xe(a)?"default"in a?o=Ee(a.from||i,a.default,!0):o=Ee(a.from||i):o=Ee(a),Ct(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function u_(e,t,r){rn(be(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function JC(e,t,r,n){const i=n.includes(".")?GC(r,n):()=>r[n];if(He(e)){const a=t[e];De(a)&&Se(i,a)}else if(De(e))Se(i,e.bind(r));else if(Xe(e))if(be(e))e.forEach(a=>JC(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&Se(i,a,e)}}function jm(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>Zf(l,u,o,!0)),Zf(l,t,o)),Xe(t)&&a.set(t,l),l}function Zf(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Zf(e,a,r,!0),i&&i.forEach(o=>Zf(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=BI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const BI={data:c_,props:za,emits:za,methods:za,computed:za,beforeCreate:ir,created:ir,beforeMount:ir,mounted:ir,beforeUpdate:ir,updated:ir,beforeDestroy:ir,beforeUnmount:ir,destroyed:ir,unmounted:ir,activated:ir,deactivated:ir,errorCaptured:ir,serverPrefetch:ir,components:za,directives:za,watch:HI,provide:c_,inject:$I};function c_(e,t){return t?e?function(){return Gt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function $I(e,t){return za(Pp(e),Pp(t))}function Pp(e){if(be(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=tT(f,t,!0);Gt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!a&&!l)return Xe(e)&&n.set(e,ns),ns;if(be(a))for(let c=0;c-1,h[1]=p<0||v-1||We(h,"default"))&&s.push(f)}}}const u=[o,s];return Xe(e)&&n.set(e,u),u}function f_(e){return e[0]!=="$"}function d_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function h_(e,t){return d_(e)===d_(t)}function v_(e,t){return be(t)?t.findIndex(r=>h_(r,e)):De(t)&&h_(t,e)?0:-1}const rT=e=>e[0]==="_"||e==="$stable",Ym=e=>be(e)?e.map(Bn):[Bn(e)],VI=(e,t,r)=>{if(t._n)return t;const n=Z((...i)=>Ym(t(...i)),r);return n._c=!1,n},nT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(rT(i))continue;const a=e[i];if(De(a))t[i]=VI(i,a,n);else if(a!=null){const o=Ym(a);t[i]=()=>o}}},iT=(e,t)=>{const r=Ym(t);e.slots.default=()=>r},GI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ke(t),Yf(t,"_",r)):nT(t,e.slots={})}else e.slots={},t&&iT(e,t);Yf(e.slots,Ud,1)},UI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=yt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Gt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,nT(t,i)),o=t}else t&&(iT(e,t),o={default:1});if(a)for(const s in i)!rT(s)&&!(s in o)&&delete i[s]};function aT(){return{app:null,config:{isNativeTag:wD,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let jI=0;function YI(e,t){return function(n,i=null){De(n)||(n=Object.assign({},n)),i!=null&&!Xe(i)&&(i=null);const a=aT(),o=new Set;let s=!1;const l=a.app={_uid:jI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:pO,get config(){return a.config},set config(u){},use(u,...c){return o.has(u)||(u&&De(u.install)?(o.add(u),u.install(l,...c)):De(u)&&(o.add(u),u(l,...c))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,c){return c?(a.components[u]=c,l):a.components[u]},directive(u,c){return c?(a.directives[u]=c,l):a.directives[u]},mount(u,c,f){if(!s){const d=ee(n,i);return d.appContext=a,c&&t?t(d,u):e(d,u,f),s=!0,l._container=u,u.__vue_app__=l,jd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,c){return a.provides[u]=c,l}};return l}}function Dp(e,t,r,n,i=!1){if(be(e)){e.forEach((d,h)=>Dp(d,t&&(be(t)?t[h]:t),r,n,i));return}if(El(n)&&!i)return;const a=n.shapeFlag&4?jd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,c=s.refs===yt?s.refs={}:s.refs,f=s.setupState;if(u!=null&&u!==l&&(He(u)?(c[u]=null,We(f,u)&&(f[u]=null)):Ct(u)&&(u.value=null)),De(l))Zi(l,s,12,[o,c]);else{const d=He(l),h=Ct(l);if(d||h){const v=()=>{if(e.f){const p=d?We(f,l)?f[l]:c[l]:l.value;i?be(p)&&Lm(p,a):be(p)?p.includes(a)||p.push(a):d?(c[l]=[a],We(f,l)&&(f[l]=c[l])):(l.value=[a],e.k&&(c[e.k]=l.value))}else d?(c[l]=o,We(f,l)&&(f[l]=o)):h&&(l.value=o,e.k&&(c[e.k]=o))};o?(v.id=-1,yr(v,r)):v()}}}const yr=SI;function qI(e){return KI(e)}function KI(e,t){const r=PD();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=ur,insertStaticContent:v}=e,p=(L,I,z,U=null,K=null,ne=null,fe=!1,te=null,ie=!!I.dynamicChildren)=>{if(L===I)return;L&&!Ua(L,I)&&(U=W(L),oe(L,K,ne,!0),L=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:X,ref:we,shapeFlag:he}=I;switch(X){case Ns:g(L,I,z,U);break;case xr:m(L,I,z,U);break;case kh:L==null&&y(I,z,U,fe);break;case pt:T(L,I,z,U,K,ne,fe,te,ie);break;default:he&1?x(L,I,z,U,K,ne,fe,te,ie):he&6?D(L,I,z,U,K,ne,fe,te,ie):(he&64||he&128)&&X.process(L,I,z,U,K,ne,fe,te,ie,le)}we!=null&&K&&Dp(we,L&&L.ref,ne,I||L,!I)},g=(L,I,z,U)=>{if(L==null)n(I.el=s(I.children),z,U);else{const K=I.el=L.el;I.children!==L.children&&u(K,I.children)}},m=(L,I,z,U)=>{L==null?n(I.el=l(I.children||""),z,U):I.el=L.el},y=(L,I,z,U)=>{[L.el,L.anchor]=v(L.children,I,z,U,L.el,L.anchor)},_=({el:L,anchor:I},z,U)=>{let K;for(;L&&L!==I;)K=d(L),n(L,z,U),L=K;n(I,z,U)},b=({el:L,anchor:I})=>{let z;for(;L&&L!==I;)z=d(L),i(L),L=z;i(I)},x=(L,I,z,U,K,ne,fe,te,ie)=>{fe=fe||I.type==="svg",L==null?w(I,z,U,K,ne,fe,te,ie):M(L,I,K,ne,fe,te,ie)},w=(L,I,z,U,K,ne,fe,te)=>{let ie,X;const{type:we,props:he,shapeFlag:xe,transition:Oe,dirs:ze}=L;if(ie=L.el=o(L.type,ne,he&&he.is,he),xe&8?c(ie,L.children):xe&16&&C(L.children,ie,null,U,K,ne&&we!=="foreignObject",fe,te),ze&&ha(L,null,U,"created"),S(ie,L,L.scopeId,fe,U),he){for(const Je in he)Je!=="value"&&!mf(Je)&&a(ie,Je,null,he[Je],ne,L.children,U,K,Q);"value"in he&&a(ie,"value",null,he.value),(X=he.onVnodeBeforeMount)&&On(X,U,L)}ze&&ha(L,null,U,"beforeMount");const rt=(!K||K&&!K.pendingBranch)&&Oe&&!Oe.persisted;rt&&Oe.beforeEnter(ie),n(ie,I,z),((X=he&&he.onVnodeMounted)||rt||ze)&&yr(()=>{X&&On(X,U,L),rt&&Oe.enter(ie),ze&&ha(L,null,U,"mounted")},K)},S=(L,I,z,U,K)=>{if(z&&h(L,z),U)for(let ne=0;ne{for(let X=ie;X{const te=I.el=L.el;let{patchFlag:ie,dynamicChildren:X,dirs:we}=I;ie|=L.patchFlag&16;const he=L.props||yt,xe=I.props||yt;let Oe;z&&va(z,!1),(Oe=xe.onVnodeBeforeUpdate)&&On(Oe,z,I,L),we&&ha(I,L,z,"beforeUpdate"),z&&va(z,!0);const ze=K&&I.type!=="foreignObject";if(X?P(L.dynamicChildren,X,te,z,U,ze,ne):fe||F(L,I,te,null,z,U,ze,ne,!1),ie>0){if(ie&16)A(te,I,he,xe,z,U,K);else if(ie&2&&he.class!==xe.class&&a(te,"class",null,xe.class,K),ie&4&&a(te,"style",he.style,xe.style,K),ie&8){const rt=I.dynamicProps;for(let Je=0;Je{Oe&&On(Oe,z,I,L),we&&ha(I,L,z,"updated")},U)},P=(L,I,z,U,K,ne,fe)=>{for(let te=0;te{if(z!==U){if(z!==yt)for(const te in z)!mf(te)&&!(te in U)&&a(L,te,z[te],null,fe,I.children,K,ne,Q);for(const te in U){if(mf(te))continue;const ie=U[te],X=z[te];ie!==X&&te!=="value"&&a(L,te,X,ie,fe,I.children,K,ne,Q)}"value"in U&&a(L,"value",z.value,U.value)}},T=(L,I,z,U,K,ne,fe,te,ie)=>{const X=I.el=L?L.el:s(""),we=I.anchor=L?L.anchor:s("");let{patchFlag:he,dynamicChildren:xe,slotScopeIds:Oe}=I;Oe&&(te=te?te.concat(Oe):Oe),L==null?(n(X,z,U),n(we,z,U),C(I.children,z,we,K,ne,fe,te,ie)):he>0&&he&64&&xe&&L.dynamicChildren?(P(L.dynamicChildren,xe,z,K,ne,fe,te),(I.key!=null||K&&I===K.subTree)&&qm(L,I,!0)):F(L,I,z,we,K,ne,fe,te,ie)},D=(L,I,z,U,K,ne,fe,te,ie)=>{I.slotScopeIds=te,L==null?I.shapeFlag&512?K.ctx.activate(I,z,U,fe,ie):N(I,z,U,K,ne,fe,ie):H(L,I,ie)},N=(L,I,z,U,K,ne,fe)=>{const te=L.component=oO(L,U,K);if(Wd(L)&&(te.ctx.renderer=le),sO(te),te.asyncDep){if(K&&K.registerDep(te,$),!L.el){const ie=te.subTree=ee(xr);m(null,ie,I,z)}return}$(te,L,I,z,K,ne,fe)},H=(L,I,z)=>{const U=I.component=L.component;if(bI(L,I,z))if(U.asyncDep&&!U.asyncResolved){G(U,I,z);return}else U.next=I,vI(U.update),U.update();else I.el=L.el,U.vnode=I},$=(L,I,z,U,K,ne,fe)=>{const te=()=>{if(L.isMounted){let{next:we,bu:he,u:xe,parent:Oe,vnode:ze}=L,rt=we,Je;va(L,!1),we?(we.el=ze.el,G(L,we,fe)):we=ze,he&&_f(he),(Je=we.props&&we.props.onVnodeBeforeUpdate)&&On(Je,Oe,we,ze),va(L,!0);const Lt=Ih(L),ve=L.subTree;L.subTree=Lt,p(ve,Lt,f(ve.el),W(ve),L,K,ne),we.el=Lt.el,rt===null&&wI(L,Lt.el),xe&&yr(xe,K),(Je=we.props&&we.props.onVnodeUpdated)&&yr(()=>On(Je,Oe,we,ze),K)}else{let we;const{el:he,props:xe}=I,{bm:Oe,m:ze,parent:rt}=L,Je=El(I);if(va(L,!1),Oe&&_f(Oe),!Je&&(we=xe&&xe.onVnodeBeforeMount)&&On(we,rt,I),va(L,!0),he&&J){const Lt=()=>{L.subTree=Ih(L),J(he,L.subTree,L,K,null)};Je?I.type.__asyncLoader().then(()=>!L.isUnmounted&&Lt()):Lt()}else{const Lt=L.subTree=Ih(L);p(null,Lt,z,U,L,K,ne),I.el=Lt.el}if(ze&&yr(ze,K),!Je&&(we=xe&&xe.onVnodeMounted)){const Lt=I;yr(()=>On(we,rt,Lt),K)}(I.shapeFlag&256||rt&&El(rt.vnode)&&rt.vnode.shapeFlag&256)&&L.a&&yr(L.a,K),L.isMounted=!0,I=z=U=null}},ie=L.effect=new Om(te,()=>zm(X),L.scope),X=L.update=()=>ie.run();X.id=L.uid,va(L,!0),X()},G=(L,I,z)=>{I.component=L;const U=L.vnode.props;L.vnode=I,L.next=null,WI(L,I.props,U,z),UI(L,I.children,z),Os(),i_(),Rs()},F=(L,I,z,U,K,ne,fe,te,ie=!1)=>{const X=L&&L.children,we=L?L.shapeFlag:0,he=I.children,{patchFlag:xe,shapeFlag:Oe}=I;if(xe>0){if(xe&128){j(X,he,z,U,K,ne,fe,te,ie);return}else if(xe&256){R(X,he,z,U,K,ne,fe,te,ie);return}}Oe&8?(we&16&&Q(X,K,ne),he!==X&&c(z,he)):we&16?Oe&16?j(X,he,z,U,K,ne,fe,te,ie):Q(X,K,ne,!0):(we&8&&c(z,""),Oe&16&&C(he,z,U,K,ne,fe,te,ie))},R=(L,I,z,U,K,ne,fe,te,ie)=>{L=L||ns,I=I||ns;const X=L.length,we=I.length,he=Math.min(X,we);let xe;for(xe=0;xewe?Q(L,K,ne,!0,!1,he):C(I,z,U,K,ne,fe,te,ie,he)},j=(L,I,z,U,K,ne,fe,te,ie)=>{let X=0;const we=I.length;let he=L.length-1,xe=we-1;for(;X<=he&&X<=xe;){const Oe=L[X],ze=I[X]=ie?Vi(I[X]):Bn(I[X]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;X++}for(;X<=he&&X<=xe;){const Oe=L[he],ze=I[xe]=ie?Vi(I[xe]):Bn(I[xe]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;he--,xe--}if(X>he){if(X<=xe){const Oe=xe+1,ze=Oexe)for(;X<=he;)oe(L[X],K,ne,!0),X++;else{const Oe=X,ze=X,rt=new Map;for(X=ze;X<=xe;X++){const it=I[X]=ie?Vi(I[X]):Bn(I[X]);it.key!=null&&rt.set(it.key,X)}let Je,Lt=0;const ve=xe-ze+1;let Pe=!1,je=0;const Be=new Array(ve);for(X=0;X=ve){oe(it,K,ne,!0);continue}let Mt;if(it.key!=null)Mt=rt.get(it.key);else for(Je=ze;Je<=xe;Je++)if(Be[Je-ze]===0&&Ua(it,I[Je])){Mt=Je;break}Mt===void 0?oe(it,K,ne,!0):(Be[Mt-ze]=X+1,Mt>=je?je=Mt:Pe=!0,p(it,I[Mt],z,null,K,ne,fe,te,ie),Lt++)}const nt=Pe?XI(Be):ns;for(Je=nt.length-1,X=ve-1;X>=0;X--){const it=ze+X,Mt=I[it],ri=it+1{const{el:ne,type:fe,transition:te,children:ie,shapeFlag:X}=L;if(X&6){re(L.component.subTree,I,z,U);return}if(X&128){L.suspense.move(I,z,U);return}if(X&64){fe.move(L,I,z,le);return}if(fe===pt){n(ne,I,z);for(let he=0;hete.enter(ne),K);else{const{leave:he,delayLeave:xe,afterLeave:Oe}=te,ze=()=>n(ne,I,z),rt=()=>{he(ne,()=>{ze(),Oe&&Oe()})};xe?xe(ne,ze,rt):rt()}else n(ne,I,z)},oe=(L,I,z,U=!1,K=!1)=>{const{type:ne,props:fe,ref:te,children:ie,dynamicChildren:X,shapeFlag:we,patchFlag:he,dirs:xe}=L;if(te!=null&&Dp(te,null,z,L,!0),we&256){I.ctx.deactivate(L);return}const Oe=we&1&&xe,ze=!El(L);let rt;if(ze&&(rt=fe&&fe.onVnodeBeforeUnmount)&&On(rt,I,L),we&6)V(L.component,z,U);else{if(we&128){L.suspense.unmount(z,U);return}Oe&&ha(L,null,I,"beforeUnmount"),we&64?L.type.remove(L,I,z,K,le,U):X&&(ne!==pt||he>0&&he&64)?Q(X,I,z,!1,!0):(ne===pt&&he&384||!K&&we&16)&&Q(ie,I,z),U&&ye(L)}(ze&&(rt=fe&&fe.onVnodeUnmounted)||Oe)&&yr(()=>{rt&&On(rt,I,L),Oe&&ha(L,null,I,"unmounted")},z)},ye=L=>{const{type:I,el:z,anchor:U,transition:K}=L;if(I===pt){Ae(z,U);return}if(I===kh){b(L);return}const ne=()=>{i(z),K&&!K.persisted&&K.afterLeave&&K.afterLeave()};if(L.shapeFlag&1&&K&&!K.persisted){const{leave:fe,delayLeave:te}=K,ie=()=>fe(z,ne);te?te(L.el,ne,ie):ie()}else ne()},Ae=(L,I)=>{let z;for(;L!==I;)z=d(L),i(L),L=z;i(I)},V=(L,I,z)=>{const{bum:U,scope:K,update:ne,subTree:fe,um:te}=L;U&&_f(U),K.stop(),ne&&(ne.active=!1,oe(fe,L,I,z)),te&&yr(te,I),yr(()=>{L.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Q=(L,I,z,U=!1,K=!1,ne=0)=>{for(let fe=ne;feL.shapeFlag&6?W(L.component.subTree):L.shapeFlag&128?L.suspense.next():d(L.anchor||L.el),q=(L,I,z)=>{L==null?I._vnode&&oe(I._vnode,null,null,!0):p(I._vnode||null,L,I,null,null,null,z),i_(),HC(),I._vnode=L},le={p,um:oe,m:re,r:ye,mt:N,mc:C,pc:F,pbc:P,n:W,o:e};let de,J;return t&&([de,J]=t(le)),{render:q,hydrate:de,createApp:YI(q,de)}}function va({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function qm(e,t,r=!1){const n=e.children,i=t.children;if(be(n)&&be(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const ZI=e=>e.__isTeleport,Ll=e=>e&&(e.disabled||e.disabled===""),p_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ip=(e,t)=>{const r=e&&e.to;return He(r)?t?t(r):null:r},QI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ll(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");h(x,r,n),h(w,r,n);const S=t.target=Ip(t.props,v),C=t.targetAnchor=p("");S&&(h(C,S),o=o||p_(S));const M=(P,A)=>{y&16&&c(_,P,A,i,a,o,s,l)};m?M(r,w):S&&M(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Ll(e.props),M=C?r:w,P=C?x:S;if(o=o||p_(w),b?(d(e.dynamicChildren,b,M,i,a,o,s),qm(e,t,!0)):l||f(e,t,M,P,i,a,o,s,!1),m)C||pc(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Ip(t.props,v);A&&pc(t,A,null,u,0)}else C&&pc(t,w,S,u,1)}oT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&a(c),(o||!Ll(d))&&(a(u),s&16))for(let h=0;h0?wn||ns:null,tO(),lu>0&&wn&&wn.push(e),e}function me(e,t,r,n,i,a){return sT(ae(e,t,r,n,i,a,!0))}function _e(e,t,r,n,i){return sT(ee(e,t,r,n,i,!0))}function ta(e){return e?e.__v_isVNode===!0:!1}function Ua(e,t){return e.type===t.type&&e.key===t.key}const Ud="__vInternal",lT=({key:e})=>e??null,bf=({ref:e,ref_key:t,ref_for:r})=>e!=null?He(e)||Ct(e)||De(e)?{i:qt,r:e,k:t,f:!!r}:e:null;function ae(e,t=null,r=null,n=0,i=null,a=e===pt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&lT(t),ref:t&&bf(t),scopeId:VC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:qt};return s?(Km(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=He(r)?8:16),lu>0&&!o&&wn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&wn.push(l),l}const ee=rO;function rO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===XC)&&(e=xr),ta(e)){const s=mi(e,t,!0);return r&&Km(s,r),lu>0&&!a&&wn&&(s.shapeFlag&6?wn[wn.indexOf(e)]=s:wn.push(s)),s.patchFlag|=-2,s}if(fO(e)&&(e=e.__vccOpts),t){t=nO(t);let{class:s,style:l}=t;s&&!He(s)&&(t.class=ue(s)),Xe(l)&&(DC(l)&&!be(l)&&(l=Gt({},l)),t.style=St(l))}const o=He(e)?1:xI(e)?128:ZI(e)?64:Xe(e)?4:De(e)?2:0;return ae(e,t,r,n,i,o,a,!0)}function nO(e){return e?DC(e)||Ud in e?Gt({},e):e:null}function mi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ca(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&lT(s),ref:t&&t.ref?r&&i?be(i)?i.concat(bf(t)):[i,bf(t)]:bf(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mi(e.ssContent),ssFallback:e.ssFallback&&mi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Bt(e=" ",t=0){return ee(Ns,null,e,t)}function ke(e="",t=!1){return t?(Y(),_e(xr,null,e)):ee(xr,null,e)}function Bn(e){return e==null||typeof e=="boolean"?ee(xr):be(e)?ee(pt,null,e.slice()):typeof e=="object"?Vi(e):ee(Ns,null,String(e))}function Vi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mi(e)}function Km(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(be(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Km(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Ud in t)?t._ctx=qt:i===3&&qt&&(qt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:qt},r=32):(t=String(t),n&64?(r=16,t=[Bt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ca(...e){const t={};for(let r=0;rIt||qt,ps=e=>{It=e,e.scope.on()},ao=()=>{It&&It.scope.off(),It=null};function uT(e){return e.vnode.shapeFlag&4}let uu=!1;function sO(e,t=!1){uu=t;const{props:r,children:n}=e.vnode,i=uT(e);zI(e,r,i,t),GI(e,n);const a=i?lO(e,t):void 0;return uu=!1,a}function lO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=IC(new Proxy(e.ctx,kI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?fT(e):null;ps(e),Os();const a=Zi(n,e,0,[e.props,i]);if(Rs(),ao(),jf(a)){if(a.then(ao,ao),t)return a.then(o=>{m_(e,o,t)}).catch(o=>{Hd(o,e,0)});e.asyncDep=a}else m_(e,a,t)}else cT(e,t)}function m_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Xe(t)&&(e.setupState=NC(t)),cT(e,r)}let y_;function cT(e,t,r){const n=e.type;if(!e.render){if(!t&&y_&&!n.render){const i=n.template||jm(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Gt(Gt({isCustomElement:a,delimiters:s},o),l);n.render=y_(i,u)}}e.render=n.render||ur}ps(e),Os(),NI(e),Rs(),ao()}function uO(e){return new Proxy(e.attrs,{get(t,r){return Mr(e,"get","$attrs"),t[r]}})}function fT(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=uO(e))},slots:e.slots,emit:e.emit,expose:t}}function jd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(NC(IC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Pl)return Pl[r](e)},has(t,r){return r in t||r in Pl}}))}function cO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function fO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>cI(e,t,uu);function Yd(){return dO().slots}function dO(){const e=ct();return e.setupContext||(e.setupContext=fT(e))}function Ce(e,t,r){const n=arguments.length;return n===2?Xe(t)&&!be(t)?ta(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&ta(r)&&(r=[r]),ee(e,t,r))}const hO=Symbol(""),vO=()=>Ee(hO),pO="3.2.47",gO="http://www.w3.org/2000/svg",ja=typeof document<"u"?document:null,__=ja&&ja.createElement("template"),mO={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?ja.createElementNS(gO,e):ja.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>ja.createTextNode(e),createComment:e=>ja.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ja.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{__.innerHTML=n?`${e}`:e;const s=__.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function yO(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function _O(e,t,r){const n=e.style,i=He(r);if(r&&!i){if(t&&!He(t))for(const a in t)r[a]==null&&Op(n,a,"");for(const a in r)Op(n,a,r[a])}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const b_=/\s*!important$/;function Op(e,t,r){if(be(r))r.forEach(n=>Op(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=bO(e,t);b_.test(r)?e.setProperty(xo(n),r.replace(b_,""),"important"):e[n]=r}}const w_=["Webkit","Moz","ms"],Nh={};function bO(e,t){const r=Nh[t];if(r)return r;let n=An(t);if(n!=="filter"&&n in e)return Nh[t]=n;n=Fd(n);for(let i=0;iFh||(MO.then(()=>Fh=0),Fh=Date.now());function EO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;rn(PO(n,r.value),t,5,[n])};return r.value=e,r.attached=AO(),r}function PO(e,t){if(be(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const C_=/^on[a-z]/,LO=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?yO(e,n,i):t==="style"?_O(e,r,n):Rd(t)?Pm(t)||CO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):DO(e,t,n,i))?xO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),wO(e,t,n,i))};function DO(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&C_.test(t)&&De(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||C_.test(t)&&He(r)?!1:t in e}const Li="transition",Ys="animation",Ci=(e,{slots:t})=>Ce(jC,vT(e),t);Ci.displayName="Transition";const hT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},IO=Ci.props=Gt({},jC.props,hT),pa=(e,t=[])=>{be(e)?e.forEach(r=>r(...t)):e&&e(...t)},T_=e=>e?be(e)?e.some(t=>t.length>1):e.length>1:!1;function vT(e){const t={};for(const T in e)T in hT||(t[T]=e[T]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:c=s,leaveFromClass:f=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=OO(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:S=y,onAppearCancelled:C=_}=t,M=(T,D,N)=>{Bi(T,D?c:s),Bi(T,D?u:o),N&&N()},P=(T,D)=>{T._isLeaving=!1,Bi(T,f),Bi(T,h),Bi(T,d),D&&D()},A=T=>(D,N)=>{const H=T?S:y,$=()=>M(D,T,N);pa(H,[D,$]),M_(()=>{Bi(D,T?l:a),li(D,T?c:s),T_(H)||A_(D,n,p,$)})};return Gt(t,{onBeforeEnter(T){pa(m,[T]),li(T,a),li(T,o)},onBeforeAppear(T){pa(w,[T]),li(T,l),li(T,u)},onEnter:A(!1),onAppear:A(!0),onLeave(T,D){T._isLeaving=!0;const N=()=>P(T,D);li(T,f),gT(),li(T,d),M_(()=>{T._isLeaving&&(Bi(T,f),li(T,h),T_(b)||A_(T,n,g,N))}),pa(b,[T,N])},onEnterCancelled(T){M(T,!1),pa(_,[T])},onAppearCancelled(T){M(T,!0),pa(C,[T])},onLeaveCancelled(T){P(T),pa(x,[T])}})}function OO(e){if(e==null)return null;if(Xe(e))return[Bh(e.enter),Bh(e.leave)];{const t=Bh(e);return[t,t]}}function Bh(e){return ED(e)}function li(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Bi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function M_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let RO=0;function A_(e,t,r,n){const i=e._endId=++RO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=pT(e,t);if(!o)return n();const u=o+"end";let c=0;const f=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(r[v]||"").split(", "),i=n(`${Li}Delay`),a=n(`${Li}Duration`),o=E_(i,a),s=n(`${Ys}Delay`),l=n(`${Ys}Duration`),u=E_(s,l);let c=null,f=0,d=0;t===Li?o>0&&(c=Li,f=o,d=a.length):t===Ys?u>0&&(c=Ys,f=u,d=l.length):(f=Math.max(o,u),c=f>0?o>u?Li:Ys:null,d=c?c===Li?a.length:l.length:0);const h=c===Li&&/\b(transform|all)(,|$)/.test(n(`${Li}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function E_(e,t){for(;e.lengthP_(r)+P_(e[n])))}function P_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function gT(){return document.body.offsetHeight}const mT=new WeakMap,yT=new WeakMap,_T={name:"TransitionGroup",props:Gt({},IO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=ct(),n=UC();let i,a;return Hu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!HO(i[0].el,r.vnode.el,o))return;i.forEach(FO),i.forEach(BO);const s=i.filter($O);gT(),s.forEach(l=>{const u=l.el,c=u.style;li(u,o),c.transform=c.webkitTransform=c.transitionDuration="";const f=u._moveCb=d=>{d&&d.target!==u||(!d||/transform$/.test(d.propertyName))&&(u.removeEventListener("transitionend",f),u._moveCb=null,Bi(u,o))};u.addEventListener("transitionend",f)})}),()=>{const o=Ke(e),s=vT(o);let l=o.tag||pt;i=a,a=t.default?Vm(t.default()):[];for(let u=0;udelete e.mode;_T.props;const NO=_T;function FO(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function BO(e){yT.set(e,e.el.getBoundingClientRect())}function $O(e){const t=mT.get(e),r=yT.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function HO(e,t,r){const n=e.cloneNode();e._vtc&&e._vtc.forEach(o=>{o.split(/\s+/).forEach(s=>s&&n.classList.remove(s))}),r.split(/\s+/).forEach(o=>o&&n.classList.add(o)),n.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(n);const{hasTransform:a}=pT(n);return i.removeChild(n),a}const L_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return be(t)?r=>_f(t,r):t},Qf={deep:!0,created(e,t,r){e._assign=L_(r),dT(e,"change",()=>{const n=e._modelValue,i=zO(e),a=e.checked,o=e._assign;if(be(n)){const s=pC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(kd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(bT(e,a))})},mounted:D_,beforeUpdate(e,t,r){e._assign=L_(r),D_(e,t,r)}};function D_(e,{value:t,oldValue:r},n){e._modelValue=t,be(t)?e.checked=pC(t,n.props.value)>-1:kd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=Od(t,bT(e,!0)))}function zO(e){return"_value"in e?e._value:e.value}function bT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const WO=["ctrl","shift","alt","meta"],VO={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>WO.some(r=>e[`${r}Key`]&&!t.includes(r))},Jf=(e,t)=>(r,...n)=>{for(let i=0;ir=>{if(!("key"in r))return;const n=xo(r.key);if(t.some(i=>i===n||GO[i]===n))return e(r)},yi={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):qs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),qs(e,!0),n.enter(e)):n.leave(e,()=>{qs(e,!1)}):qs(e,t))},beforeUnmount(e,{value:t}){qs(e,t)}};function qs(e,t){e.style.display=t?e._vod:"none"}const jO=Gt({patchProp:LO},mO);let I_;function wT(){return I_||(I_=qI(jO))}const O_=(...e)=>{wT().render(...e)},YO=(...e)=>{const t=wT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=qO(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function qO(e){return He(e)?document.querySelector(e):e}const wf=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},fi=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var R_;const Nt=typeof window<"u",Br=e=>typeof e=="boolean",KO=e=>typeof e=="function",$t=e=>typeof e=="number",XO=e=>typeof e=="string",Rp=()=>{};Nt&&((R_=window==null?void 0:window.navigator)!=null&&R_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ho(e){return typeof e=="function"?e():E(e)}function xT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const ST=e=>e();function ZO(e,t={}){let r,n,i=Rp;const a=s=>{clearTimeout(s),i(),i=Rp};return s=>{const l=ho(e),u=ho(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((c,f)=>{i=t.rejectOnCancel?f:c,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,c(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,c(s())},l)})}}function QO(e=ST){const t=B(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:$u(t),pause:r,resume:n,eventFilter:i}}function JO(e){return e}function zu(e){return _C()?(ID(e),!0):!1}function eR(e,t=200,r={}){return xT(ZO(t,r),e)}function tR(e,t=200,r={}){const n=B(e.value),i=eR(()=>{n.value=e.value},t,r);return Se(e,()=>i()),n}function rR(e){return typeof e=="function"?k(e):B(e)}function CT(e,t=!0){ct()?wt(e):t?e():Ft(e)}function kp(e,t,r={}){const{immediate:n=!0}=r,i=B(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},ho(t))}return n&&(i.value=!0,Nt&&l()),zu(s),{isPending:$u(i),start:l,stop:s}}function nR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Ct(e),a=B(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=ho(r);return a.value=a.value===l?ho(n):l,a.value}}return i?o:[a,o]}var k_=Object.getOwnPropertySymbols,iR=Object.prototype.hasOwnProperty,aR=Object.prototype.propertyIsEnumerable,oR=(e,t)=>{var r={};for(var n in e)iR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&k_)for(var n of k_(e))t.indexOf(n)<0&&aR.call(e,n)&&(r[n]=e[n]);return r};function sR(e,t,r={}){const n=r,{eventFilter:i=ST}=n,a=oR(n,["eventFilter"]);return Se(e,xT(i,t),a)}var lR=Object.defineProperty,uR=Object.defineProperties,cR=Object.getOwnPropertyDescriptors,ed=Object.getOwnPropertySymbols,TT=Object.prototype.hasOwnProperty,MT=Object.prototype.propertyIsEnumerable,N_=(e,t,r)=>t in e?lR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fR=(e,t)=>{for(var r in t||(t={}))TT.call(t,r)&&N_(e,r,t[r]);if(ed)for(var r of ed(t))MT.call(t,r)&&N_(e,r,t[r]);return e},dR=(e,t)=>uR(e,cR(t)),hR=(e,t)=>{var r={};for(var n in e)TT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ed)for(var n of ed(e))t.indexOf(n)<0&&MT.call(e,n)&&(r[n]=e[n]);return r};function vR(e,t,r={}){const n=r,{eventFilter:i}=n,a=hR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=QO(i);return{stop:sR(e,t,dR(fR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Ui(e){var t;const r=ho(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ra=Nt?window:void 0;function xn(...e){let t,r,n,i;if(XO(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ra):[t,r,n,i]=e,!t)return Rp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(c=>c()),a.length=0},s=(c,f,d)=>(c.addEventListener(f,d,i),()=>c.removeEventListener(f,d,i)),l=Se(()=>Ui(t),c=>{o(),c&&a.push(...r.flatMap(f=>n.map(d=>s(c,f,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return zu(u),u}function pR(e,t,r={}){const{window:n=ra,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=Ui(v);return p&&(h.target===p||h.composedPath().includes(p))}}),c=h=>{n.clearTimeout(l);const v=Ui(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},f=[xn(n,"click",c,{passive:!0,capture:a}),xn(n,"pointerdown",h=>{const v=Ui(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),xn(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>c(h),50)}},{passive:!0}),o&&xn(n,"blur",h=>{var v;const p=Ui(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>f.forEach(h=>h())}function AT(e,t=!1){const r=B(),n=()=>r.value=Boolean(e());return n(),CT(n,t),r}function gR(e,t={}){const{window:r=ra}=t,n=AT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=B(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(rR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return io(s),zu(()=>o()),a}const Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Fp="__vueuse_ssr_handlers__";Np[Fp]=Np[Fp]||{};const mR=Np[Fp];function ET(e,t){return mR[e]||t}function yR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var _R=Object.defineProperty,F_=Object.getOwnPropertySymbols,bR=Object.prototype.hasOwnProperty,wR=Object.prototype.propertyIsEnumerable,B_=(e,t,r)=>t in e?_R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$_=(e,t)=>{for(var r in t||(t={}))bR.call(t,r)&&B_(e,r,t[r]);if(F_)for(var r of F_(t))wR.call(t,r)&&B_(e,r,t[r]);return e};const xR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function SR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=ra,eventFilter:d,onError:h=S=>{console.error(S)}}=n,v=(c?$m:B)(t);if(!r)try{r=ET("getDefaultStorage",()=>{var S;return(S=ra)==null?void 0:S.localStorage})()}catch(S){h(S)}if(!r)return v;const p=ho(t),g=yR(p),m=(i=n.serializer)!=null?i:xR[g],{pause:y,resume:_}=vR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:d});return f&&s&&xn(f,"storage",w),w(),v;function b(S){try{if(S==null)r.removeItem(e);else{const C=m.write(S),M=r.getItem(e);M!==C&&(r.setItem(e,C),f&&(f==null||f.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){h(C)}}function x(S){const C=S?S.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,m.write(p)),p;if(!S&&u){const M=m.read(C);return KO(u)?u(M,p):g==="object"&&!Array.isArray(M)?$_($_({},p),M):M}else return typeof C!="string"?C:m.read(C)}function w(S){if(!(S&&S.storageArea!==r)){if(S&&S.key==null){v.value=p;return}if(!(S&&S.key!==e)){y();try{v.value=x(S)}catch(C){h(C)}finally{S?Ft(_):_()}}}}}function PT(e){return gR("(prefers-color-scheme: dark)",e)}var CR=Object.defineProperty,H_=Object.getOwnPropertySymbols,TR=Object.prototype.hasOwnProperty,MR=Object.prototype.propertyIsEnumerable,z_=(e,t,r)=>t in e?CR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,AR=(e,t)=>{for(var r in t||(t={}))TR.call(t,r)&&z_(e,r,t[r]);if(H_)for(var r of H_(t))MR.call(t,r)&&z_(e,r,t[r]);return e};function ER(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=ra,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,c=AR({auto:"",light:"light",dark:"dark"},e.modes||{}),f=PT({window:i}),d=k(()=>f.value?"dark":"light"),h=l||(o==null?B(n):SR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return h.value==="auto"&&!u?d.value:h.value},set(y){h.value=y}}),p=ET("updateHTMLAttrs",(y,_,b)=>{const x=i==null?void 0:i.document.querySelector(y);if(x)if(_==="class"){const w=b.split(/\s/g);Object.values(c).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{w.includes(S)?x.classList.add(S):x.classList.remove(S)})}else x.setAttribute(_,b)});function g(y){var _;const b=y==="auto"?d.value:y;p(t,r,(_=c[b])!=null?_:b)}function m(y){e.onChanged?e.onChanged(y,g):g(y)}return Se(v,m,{flush:"post",immediate:!0}),u&&Se(d,()=>m(v.value),{flush:"post"}),CT(()=>m(v.value)),v}var PR=Object.defineProperty,LR=Object.defineProperties,DR=Object.getOwnPropertyDescriptors,W_=Object.getOwnPropertySymbols,IR=Object.prototype.hasOwnProperty,OR=Object.prototype.propertyIsEnumerable,V_=(e,t,r)=>t in e?PR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,RR=(e,t)=>{for(var r in t||(t={}))IR.call(t,r)&&V_(e,r,t[r]);if(W_)for(var r of W_(t))OR.call(t,r)&&V_(e,r,t[r]);return e},kR=(e,t)=>LR(e,DR(t));function NR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=ra}=e,i=ER(kR(RR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=PT({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var G_=Object.getOwnPropertySymbols,FR=Object.prototype.hasOwnProperty,BR=Object.prototype.propertyIsEnumerable,$R=(e,t)=>{var r={};for(var n in e)FR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&G_)for(var n of G_(e))t.indexOf(n)<0&&BR.call(e,n)&&(r[n]=e[n]);return r};function gs(e,t,r={}){const n=r,{window:i=ra}=n,a=$R(n,["window"]);let o;const s=AT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=Se(()=>Ui(e),f=>{l(),s.value&&i&&f&&(o=new ResizeObserver(t),o.observe(f,a))},{immediate:!0,flush:"post"}),c=()=>{l(),u()};return zu(c),{isSupported:s,stop:c}}var U_;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(U_||(U_={}));var HR=Object.defineProperty,j_=Object.getOwnPropertySymbols,zR=Object.prototype.hasOwnProperty,WR=Object.prototype.propertyIsEnumerable,Y_=(e,t,r)=>t in e?HR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,VR=(e,t)=>{for(var r in t||(t={}))zR.call(t,r)&&Y_(e,r,t[r]);if(j_)for(var r of j_(t))WR.call(t,r)&&Y_(e,r,t[r]);return e};const GR={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};VR({linear:JO},GR);var UR=typeof global=="object"&&global&&global.Object===Object&&global;const LT=UR;var jR=typeof self=="object"&&self&&self.Object===Object&&self,YR=LT||jR||Function("return this")();const Pn=YR;var qR=Pn.Symbol;const sn=qR;var DT=Object.prototype,KR=DT.hasOwnProperty,XR=DT.toString,Ks=sn?sn.toStringTag:void 0;function ZR(e){var t=KR.call(e,Ks),r=e[Ks];try{e[Ks]=void 0;var n=!0}catch{}var i=XR.call(e);return n&&(t?e[Ks]=r:delete e[Ks]),i}var QR=Object.prototype,JR=QR.toString;function ek(e){return JR.call(e)}var tk="[object Null]",rk="[object Undefined]",q_=sn?sn.toStringTag:void 0;function So(e){return e==null?e===void 0?rk:tk:q_&&q_ in Object(e)?ZR(e):ek(e)}function qn(e){return e!=null&&typeof e=="object"}var nk="[object Symbol]";function qd(e){return typeof e=="symbol"||qn(e)&&So(e)==nk}function IT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=kk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function $k(e){return function(){return e}}var Hk=function(){try{var e=To(Object,"defineProperty");return e({},"",{}),e}catch{}}();const td=Hk;var zk=td?function(e,t){return td(e,"toString",{configurable:!0,enumerable:!1,value:$k(t),writable:!0})}:Xm;const Wk=zk;var Vk=Bk(Wk);const kT=Vk;function Gk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=Xk}function Fs(e){return e!=null&&ey(e.length)&&!Zm(e)}function Zk(e,t,r){if(!Ar(r))return!1;var n=typeof t;return(n=="number"?Fs(r)&&Kd(t,r.length):n=="string"&&t in r)?Wu(r[t],e):!1}function Qk(e){return Kk(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&Zk(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function vF(e,t){var r=this.__data__,n=Xd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Ti(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?ly(s,t-1,r,n,i):sy(i,s):n||(i[i.length]=s)}return i}function IF(e){var t=e==null?0:e.length;return t?ly(e,1):[]}function OF(e){return kT(NT(e,void 0,IF),e+"")}var RF=zT(Object.getPrototypeOf,Object);const uy=RF;var kF="[object Object]",NF=Function.prototype,FF=Object.prototype,WT=NF.toString,BF=FF.hasOwnProperty,$F=WT.call(Object);function HF(e){if(!qn(e)||So(e)!=kF)return!1;var t=uy(e);if(t===null)return!0;var r=BF.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&WT.call(r)==$F}function $p(){if(!arguments.length)return[];var e=arguments[0];return fr(e)?e:[e]}function zF(){this.__data__=new Ti,this.size=0}function WF(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function VF(e){return this.__data__.get(e)}function GF(e){return this.__data__.has(e)}var UF=200;function jF(e,t){var r=this.__data__;if(r instanceof Ti){var n=r.__data__;if(!hu||n.lengths))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=r&P$?new nd:void 0;for(a.set(e,t),a.set(t,e);++f=t||S<0||f&&C>=a}function m(){var w=Wh();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Wh())}function x(){var w=Wh(),S=g(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(f)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return x.cancel=_,x.flush=b,x}function Gp(e,t,r){(r!==void 0&&!Wu(e[t],r)||r===void 0&&!(t in e))&&Qm(e,t,r)}function S5(e){return qn(e)&&Fs(e)}function Up(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function C5(e){return Vu(e,Uu(e))}function T5(e,t,r,n,i,a,o){var s=Up(e,r),l=Up(t,r),u=o.get(l);if(u){Gp(e,r,u);return}var c=a?a(s,l,r+"",e,t,o):void 0,f=c===void 0;if(f){var d=fr(l),h=!d&&fu(l),v=!d&&!h&&ny(l);c=l,d||h||v?fr(s)?c=s:S5(s)?c=RT(s):h?(f=!1,c=GT(l,!0)):v?(f=!1,c=qT(l,!0)):c=[]:HF(l)||cu(l)?(c=s,cu(s)?c=C5(s):(!Ar(s)||Zm(s))&&(c=KT(l))):f=!1}f&&(o.set(l,c),i(c,l,n,a,o),o.delete(l)),Gp(e,r,c)}function iM(e,t,r,n,i){e!==t&&nM(t,function(a,o){if(i||(i=new Mn),Ar(a))T5(e,t,o,r,iM,n,i);else{var s=n?n(Up(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),Gp(e,o,s)}},Uu)}function M5(e,t){var r=-1,n=Fs(e)?Array(e.length):[];return y5(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function A5(e,t){var r=fr(e)?IT:M5;return r(e,d5(t))}function E5(e,t){return ly(A5(e,t),1)}function jp(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,ys=e=>typeof Element>"u"?!1:e instanceof Element,F5=e=>He(e)?!Number.isNaN(Number(e)):!1,Tb=e=>Object.keys(e),Sf=(e,t,r)=>({get value(){return vu(e,t,r)},set value(n){N5(e,t,n)}});class B5 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function na(e,t){throw new B5(`[${e}] ${t}`)}const sM=(e="")=>e.split(" ").filter(t=>!!t.trim()),Ol=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Zo=(e,t)=>{!e||!t.trim()||e.classList.add(...sM(t))},ss=(e,t)=>{!e||!t.trim()||e.classList.remove(...sM(t))},Mb=(e,t)=>{var r;if(!Nt||!e||!t)return"";let n=An(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function po(e,t="px"){if(!e)return"";if($t(e)||F5(e))return`${e}${t}`;if(He(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Zn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},$5={name:"ArrowDown"},H5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z5=ae("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),W5=[z5];function V5(e,t,r,n,i,a){return Y(),me("svg",H5,W5)}var lM=Zn($5,[["render",V5],["__file","arrow-down.vue"]]),G5={name:"ArrowRight"},U5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},j5=ae("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),Y5=[j5];function q5(e,t,r,n,i,a){return Y(),me("svg",U5,Y5)}var dy=Zn(G5,[["render",q5],["__file","arrow-right.vue"]]),K5={name:"ArrowUp"},X5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z5=ae("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),Q5=[Z5];function J5(e,t,r,n,i,a){return Y(),me("svg",X5,Q5)}var e3=Zn(K5,[["render",J5],["__file","arrow-up.vue"]]),t3={name:"CircleCloseFilled"},r3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),i3=[n3];function a3(e,t,r,n,i,a){return Y(),me("svg",r3,i3)}var uM=Zn(t3,[["render",a3],["__file","circle-close-filled.vue"]]),o3={name:"Close"},s3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l3=ae("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),u3=[l3];function c3(e,t,r,n,i,a){return Y(),me("svg",s3,u3)}var Yp=Zn(o3,[["render",c3],["__file","close.vue"]]),f3={name:"InfoFilled"},d3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),v3=[h3];function p3(e,t,r,n,i,a){return Y(),me("svg",d3,v3)}var cM=Zn(f3,[["render",p3],["__file","info-filled.vue"]]),g3={name:"Loading"},m3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},y3=ae("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),_3=[y3];function b3(e,t,r,n,i,a){return Y(),me("svg",m3,_3)}var hy=Zn(g3,[["render",b3],["__file","loading.vue"]]),w3={name:"More"},x3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},S3=ae("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),C3=[S3];function T3(e,t,r,n,i,a){return Y(),me("svg",x3,C3)}var M3=Zn(w3,[["render",T3],["__file","more.vue"]]),A3={name:"SuccessFilled"},E3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),L3=[P3];function D3(e,t,r,n,i,a){return Y(),me("svg",E3,L3)}var fM=Zn(A3,[["render",D3],["__file","success-filled.vue"]]),I3={name:"WarningFilled"},O3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),k3=[R3];function N3(e,t,r,n,i,a){return Y(),me("svg",O3,k3)}var dM=Zn(I3,[["render",N3],["__file","warning-filled.vue"]]);const hM="__epPropKey",Le=e=>e,F3=e=>Xe(e)&&!!e[hM],eh=(e,t)=>{if(!Xe(e)||F3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let c=!1,f=[];if(r&&(f=Array.from(r),We(e,"default")&&f.push(i),c||(c=f.includes(u))),o&&(c||(c=o(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");fI(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[hM]:!0};return We(e,"default")&&(l.default=i),l},tt=e=>jp(Object.entries(e).map(([t,r])=>[t,eh(r,t)])),Wn=Le([String,Object,Function]),B3={Close:Yp,SuccessFilled:fM,InfoFilled:cM,WarningFilled:dM,CircleCloseFilled:uM},Ab={success:fM,warning:dM,error:uM,info:cM},hr=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},$3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),H3=(e,t)=>(e.install=r=>{r.directive(t,e)},e),fa=e=>(e.install=ur,e),Ot={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},go="update:modelValue",qp="change",Kp="input",Yu=["","default","small","large"],z3=e=>["",...Yu].includes(e),Cf=e=>{const t=be(e)?e:[e],r=[];return t.forEach(n=>{var i;be(n)?r.push(...Cf(n)):ta(n)&&be(n.children)?r.push(...Cf(n.children)):(r.push(n),ta(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Cf(n.component.subTree)))}),r},Ya=e=>e,vy=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{Se(()=>E(o),s=>{},{immediate:!0})};var W3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const V3=e=>(t,r)=>G3(t,r,E(e)),G3=(e,t,r)=>vu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),U3=e=>{const t=k(()=>E(e).name),r=Ct(e)?e:B(e);return{lang:t,locale:r,t:V3(e)}},vM=Symbol("localeContextKey"),py=e=>{const t=e||Ee(vM,B());return U3(k(()=>t.value||W3))},Xp="el",j3="is-",ga=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},pM=Symbol("namespaceContextKey"),gy=e=>{const t=e||Ee(pM,B(Xp));return k(()=>E(t)||Xp)},Fe=(e,t)=>{const r=gy(t);return{namespace:r,b:(p="")=>ga(r.value,e,p,"",""),e:p=>p?ga(r.value,e,"",p,""):"",m:p=>p?ga(r.value,e,"","",p):"",be:(p,g)=>p&&g?ga(r.value,e,p,g,""):"",em:(p,g)=>p&&g?ga(r.value,e,"",p,g):"",bm:(p,g)=>p&&g?ga(r.value,e,p,"",g):"",bem:(p,g,m)=>p&&g&&m?ga(r.value,e,p,g,m):"",is:(p,...g)=>{const m=g.length>=1?g[0]:!0;return p&&m?`${j3}${p}`:""},cssVar:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${m}`]=p[m]);return g},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${e}-${m}`]=p[m]);return g},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},Y3=eh({type:Le(Boolean),default:null}),q3=eh({type:Le(Function)}),K3=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:Y3,[r]:q3};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:c,onHide:f})=>{const d=ct(),{emit:h}=d,v=d.props,p=k(()=>De(v[r])),g=k(()=>v[e]===null),m=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),De(c)&&c(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),De(f)&&f(S))},_=S=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&Nt;C&&h(t,!0),(g.value||!C)&&m(S)},b=S=>{if(v.disabled===!0||!Nt)return;const C=p.value&&Nt;C&&h(t,!1),(g.value||!C)&&y(S)},x=S=>{Br(S)&&(v.disabled&&S?p.value&&h(t,!1):o.value!==S&&(S?m():y()))},w=()=>{o.value?b():_()};return Se(()=>v[e],x),l&&d.appContext.config.globalProperties.$route!==void 0&&Se(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),wt(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}},gM=e=>{const t=ct();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var Sr="top",ln="bottom",un="right",Cr="left",my="auto",qu=[Sr,ln,un,Cr],_s="start",mu="end",X3="clippingParents",mM="viewport",Xs="popper",Z3="reference",Eb=qu.reduce(function(e,t){return e.concat([t+"-"+_s,t+"-"+mu])},[]),yy=[].concat(qu,[my]).reduce(function(e,t){return e.concat([t,t+"-"+_s,t+"-"+mu])},[]),Q3="beforeRead",J3="read",e4="afterRead",t4="beforeMain",r4="main",n4="afterMain",i4="beforeWrite",a4="write",o4="afterWrite",s4=[Q3,J3,e4,t4,r4,n4,i4,a4,o4];function Kn(e){return e?(e.nodeName||"").toLowerCase():null}function Ln(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bs(e){var t=Ln(e).Element;return e instanceof t||e instanceof Element}function an(e){var t=Ln(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function _y(e){if(typeof ShadowRoot>"u")return!1;var t=Ln(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function l4(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!an(a)||!Kn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function u4(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!an(i)||!Kn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var yM={name:"applyStyles",enabled:!0,phase:"write",fn:l4,effect:u4,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var oo=Math.max,od=Math.min,ws=Math.round;function xs(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(an(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ws(r.width)/o||1),a>0&&(i=ws(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function by(e){var t=xs(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function _M(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&_y(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function _i(e){return Ln(e).getComputedStyle(e)}function c4(e){return["table","td","th"].indexOf(Kn(e))>=0}function da(e){return((bs(e)?e.ownerDocument:e.document)||window.document).documentElement}function th(e){return Kn(e)==="html"?e:e.assignedSlot||e.parentNode||(_y(e)?e.host:null)||da(e)}function Pb(e){return!an(e)||_i(e).position==="fixed"?null:e.offsetParent}function f4(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&an(e)){var n=_i(e);if(n.position==="fixed")return null}var i=th(e);for(_y(i)&&(i=i.host);an(i)&&["html","body"].indexOf(Kn(i))<0;){var a=_i(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ku(e){for(var t=Ln(e),r=Pb(e);r&&c4(r)&&_i(r).position==="static";)r=Pb(r);return r&&(Kn(r)==="html"||Kn(r)==="body"&&_i(r).position==="static")?t:r||f4(e)||t}function wy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rl(e,t,r){return oo(e,od(t,r))}function d4(e,t,r){var n=Rl(e,t,r);return n>r?r:n}function bM(){return{top:0,right:0,bottom:0,left:0}}function wM(e){return Object.assign({},bM(),e)}function xM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var h4=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,wM(typeof e!="number"?e:xM(e,qu))};function v4(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=wy(s),u=[Cr,un].indexOf(s)>=0,c=u?"height":"width";if(!(!a||!o)){var f=h4(i.padding,r),d=by(a),h=l==="y"?Sr:Cr,v=l==="y"?ln:un,p=r.rects.reference[c]+r.rects.reference[l]-o[l]-r.rects.popper[c],g=o[l]-r.rects.reference[l],m=Ku(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=f[h],x=y-d[c]-f[v],w=y/2-d[c]/2+_,S=Rl(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function p4(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!_M(t.elements.popper,i)||(t.elements.arrow=i))}var g4={name:"arrow",enabled:!0,phase:"main",fn:v4,effect:p4,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ss(e){return e.split("-")[1]}var m4={top:"auto",right:"auto",bottom:"auto",left:"auto"};function y4(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ws(t*i)/i||0,y:ws(r*i)/i||0}}function Lb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof c=="function"?c({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Cr,b=Sr,x=window;if(u){var w=Ku(r),S="clientHeight",C="clientWidth";if(w===Ln(r)&&(w=da(r),_i(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===Sr||(i===Cr||i===un)&&a===mu){b=ln;var M=f&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=M-n.height,p*=l?1:-1}if(i===Cr||(i===Sr||i===ln)&&a===mu){_=un;var P=f&&w===x&&x.visualViewport?x.visualViewport.width:w[C];h-=P-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&m4),T=c===!0?y4({x:h,y:p}):{x:h,y:p};if(h=T.x,p=T.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function _4(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:Ss(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Lb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Lb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var SM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:_4,data:{}},mc={passive:!0};function b4(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=Ln(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",r.update,mc)}),s&&l.addEventListener("resize",r.update,mc),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",r.update,mc)}),s&&l.removeEventListener("resize",r.update,mc)}}var CM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:b4,data:{}},w4={left:"right",right:"left",bottom:"top",top:"bottom"};function Tf(e){return e.replace(/left|right|bottom|top/g,function(t){return w4[t]})}var x4={start:"end",end:"start"};function Db(e){return e.replace(/start|end/g,function(t){return x4[t]})}function xy(e){var t=Ln(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Sy(e){return xs(da(e)).left+xy(e).scrollLeft}function S4(e){var t=Ln(e),r=da(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Sy(e),y:s}}function C4(e){var t,r=da(e),n=xy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=oo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=oo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Sy(e),l=-n.scrollTop;return _i(i||r).direction==="rtl"&&(s+=oo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function Cy(e){var t=_i(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function TM(e){return["html","body","#document"].indexOf(Kn(e))>=0?e.ownerDocument.body:an(e)&&Cy(e)?e:TM(th(e))}function kl(e,t){var r;t===void 0&&(t=[]);var n=TM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=Ln(n),o=i?[a].concat(a.visualViewport||[],Cy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(kl(th(o)))}function Zp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function T4(e){var t=xs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ib(e,t){return t===mM?Zp(S4(e)):bs(t)?T4(t):Zp(C4(da(e)))}function M4(e){var t=kl(th(e)),r=["absolute","fixed"].indexOf(_i(e).position)>=0,n=r&&an(e)?Ku(e):e;return bs(n)?t.filter(function(i){return bs(i)&&_M(i,n)&&Kn(i)!=="body"}):[]}function A4(e,t,r){var n=t==="clippingParents"?M4(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=Ib(e,l);return s.top=oo(u.top,s.top),s.right=od(u.right,s.right),s.bottom=od(u.bottom,s.bottom),s.left=oo(u.left,s.left),s},Ib(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function MM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?Ss(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case Sr:l={x:o,y:t.y-r.height};break;case ln:l={x:o,y:t.y+t.height};break;case un:l={x:t.x+t.width,y:s};break;case Cr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?wy(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case _s:l[u]=l[u]-(t[c]/2-r[c]/2);break;case mu:l[u]=l[u]+(t[c]/2-r[c]/2);break}}return l}function yu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?X3:a,s=r.rootBoundary,l=s===void 0?mM:s,u=r.elementContext,c=u===void 0?Xs:u,f=r.altBoundary,d=f===void 0?!1:f,h=r.padding,v=h===void 0?0:h,p=wM(typeof v!="number"?v:xM(v,qu)),g=c===Xs?Z3:Xs,m=e.rects.popper,y=e.elements[d?g:c],_=A4(bs(y)?y:y.contextElement||da(e.elements.popper),o,l),b=xs(e.elements.reference),x=MM({reference:b,element:m,strategy:"absolute",placement:i}),w=Zp(Object.assign({},m,x)),S=c===Xs?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},M=e.modifiersData.offset;if(c===Xs&&M){var P=M[i];Object.keys(C).forEach(function(A){var T=[un,ln].indexOf(A)>=0?1:-1,D=[Sr,ln].indexOf(A)>=0?"y":"x";C[A]+=P[D]*T})}return C}function E4(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?yy:l,c=Ss(n),f=c?s?Eb:Eb.filter(function(v){return Ss(v)===c}):qu,d=f.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=f);var h=d.reduce(function(v,p){return v[p]=yu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function P4(e){if(jn(e)===my)return[];var t=Tf(e);return[Db(e),t,Db(t)]}function L4(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=jn(g),y=m===g,_=l||(y||!v?[Tf(g)]:P4(g)),b=[g].concat(_).reduce(function(Ae,V){return Ae.concat(jn(V)===my?E4(t,{placement:V,boundary:c,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,M=b[0],P=0;P=0,H=N?"width":"height",$=yu(t,{placement:A,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),G=N?D?un:Cr:D?ln:Sr;x[H]>w[H]&&(G=Tf(G));var F=Tf(G),R=[];if(a&&R.push($[T]<=0),s&&R.push($[G]<=0,$[F]<=0),R.every(function(Ae){return Ae})){M=A,C=!1;break}S.set(A,R)}if(C)for(var j=v?3:1,re=function(Ae){var V=b.find(function(Q){var W=S.get(Q);if(W)return W.slice(0,Ae).every(function(q){return q})});if(V)return M=V,"break"},oe=j;oe>0;oe--){var ye=re(oe);if(ye==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var D4={name:"flip",enabled:!0,phase:"main",fn:L4,requiresIfExists:["offset"],data:{_skip:!1}};function Ob(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Rb(e){return[Sr,un,ln,Cr].some(function(t){return e[t]>=0})}function I4(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=yu(t,{elementContext:"reference"}),s=yu(t,{altBoundary:!0}),l=Ob(o,n),u=Ob(s,i,a),c=Rb(l),f=Rb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var O4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:I4};function R4(e,t,r){var n=jn(e),i=[Cr,Sr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Cr,un].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function k4(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=yy.reduce(function(c,f){return c[f]=R4(f,t.rects,a),c},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var N4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:k4};function F4(e){var t=e.state,r=e.name;t.modifiersData[r]=MM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var AM={name:"popperOffsets",enabled:!0,phase:"read",fn:F4,data:{}};function B4(e){return e==="x"?"y":"x"}function $4(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=yu(t,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),m=jn(t.placement),y=Ss(t.placement),_=!y,b=wy(m),x=B4(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,P=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(w){if(a){var D,N=b==="y"?Sr:Cr,H=b==="y"?ln:un,$=b==="y"?"height":"width",G=w[b],F=G+g[N],R=G-g[H],j=h?-C[$]/2:0,re=y===_s?S[$]:C[$],oe=y===_s?-C[$]:-S[$],ye=t.elements.arrow,Ae=h&&ye?by(ye):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:bM(),Q=V[N],W=V[H],q=Rl(0,S[$],Ae[$]),le=_?S[$]/2-j-q-Q-P.mainAxis:re-q-Q-P.mainAxis,de=_?-S[$]/2+j+q+W+P.mainAxis:oe+q+W+P.mainAxis,J=t.elements.arrow&&Ku(t.elements.arrow),L=J?b==="y"?J.clientTop||0:J.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=G+le-I-L,U=G+de-I,K=Rl(h?od(F,z):F,G,h?oo(R,U):R);w[b]=K,T[b]=K-G}if(s){var ne,fe=b==="x"?Sr:Cr,te=b==="x"?ln:un,ie=w[x],X=x==="y"?"height":"width",we=ie+g[fe],he=ie-g[te],xe=[Sr,Cr].indexOf(m)!==-1,Oe=(ne=A==null?void 0:A[x])!=null?ne:0,ze=xe?we:ie-S[X]-C[X]-Oe+P.altAxis,rt=xe?ie+S[X]+C[X]-Oe-P.altAxis:he,Je=h&&xe?d4(ze,ie,rt):Rl(h?ze:we,ie,h?rt:he);w[x]=Je,T[x]=Je-ie}t.modifiersData[n]=T}}var H4={name:"preventOverflow",enabled:!0,phase:"main",fn:$4,requiresIfExists:["offset"]};function z4(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function W4(e){return e===Ln(e)||!an(e)?xy(e):z4(e)}function V4(e){var t=e.getBoundingClientRect(),r=ws(t.width)/e.offsetWidth||1,n=ws(t.height)/e.offsetHeight||1;return r!==1||n!==1}function G4(e,t,r){r===void 0&&(r=!1);var n=an(t),i=an(t)&&V4(t),a=da(t),o=xs(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Kn(t)!=="body"||Cy(a))&&(s=W4(t)),an(t)?(l=xs(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Sy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function U4(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function j4(e){var t=U4(e);return s4.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function Y4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function q4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var kb={placement:"bottom",modifiers:[],strategy:"absolute"};function Nb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=Q4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:c,modifiers:f}=E(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],n,{name:"applyStyles",enabled:!1}]}}),a=$m(),o=B({styles:{popper:{position:E(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return Se(i,l=>{const u=E(a);u&&u.setOptions(l)},{deep:!0}),Se([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=EM(l,u,E(i)))}),Xt(()=>{s()}),{state:k(()=>{var l;return{...((l=E(a))==null?void 0:l.state)||{}}}),styles:k(()=>E(o).styles),attributes:k(()=>E(o).attributes),update:()=>{var l;return(l=E(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=E(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>E(a))}};function Q4(e){const t=Object.keys(e.elements),r=jp(t.map(i=>[i,e.styles[i]||{}])),n=jp(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}function Fb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return zu(()=>r()),{registerTimeout:t,cancelTimeout:r}}const Bb={prefix:Math.floor(Math.random()*1e4),current:0},J4=Symbol("elIdInjection"),PM=()=>ct()?Ee(J4,Bb):Bb,My=e=>{const t=PM(),r=gy();return k(()=>E(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let Yo=[];const $b=e=>{const t=e;t.key===Ot.esc&&Yo.forEach(r=>r(t))},eH=e=>{wt(()=>{Yo.length===0&&document.addEventListener("keydown",$b),Nt&&Yo.push(e)}),Xt(()=>{Yo=Yo.filter(t=>t!==e),Yo.length===0&&Nt&&document.removeEventListener("keydown",$b)})};let Hb;const LM=()=>{const e=gy(),t=PM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},tH=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},rH=()=>{const{id:e,selector:t}=LM();return Gd(()=>{Nt&&!Hb&&!document.body.querySelector(t.value)&&(Hb=tH(e.value))}),{id:e,selector:t}},nH=tt({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),DM=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Fb(),{registerTimeout:o,cancelTimeout:s}=Fb();return{onOpen:c=>{a(()=>{n(c);const f=E(r);$t(f)&&f>0&&o(()=>{i(c)},f)},E(e))},onClose:c=>{s(),a(()=>{i(c)},E(t))}}},IM=Symbol("elForwardRef"),iH=e=>{At(IM,{setForwardRef:r=>{e.value=r}})},aH=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),zb=B(0),OM=2e3,RM=Symbol("zIndexContextKey"),Ay=e=>{const t=e||Ee(RM,void 0),r=k(()=>{const a=E(t);return $t(a)?a:OM}),n=k(()=>r.value+zb.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(zb.value++,n.value)}},Xu=eh({type:String,values:Yu,required:!1}),kM=Symbol("size"),oH=()=>{const e=Ee(kM,{});return k(()=>E(e.size)||"")},NM=Symbol(),sd=B();function Ey(e,t=void 0){const r=ct()?Ee(NM,sd):sd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function sH(e,t){const r=Ey(),n=Fe(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Xp})),i=py(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=Ay(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||OM})),o=k(()=>{var s;return E(t)||((s=r.value)==null?void 0:s.size)||""});return FM(k(()=>E(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const FM=(e,t,r=!1)=>{var n;const i=!!ct(),a=i?Ey():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?At:void 0;if(!o)return;const s=k(()=>{const l=E(e);return a!=null&&a.value?lH(a.value,l):l});return o(NM,s),o(vM,k(()=>s.value.locale)),o(pM,k(()=>s.value.namespace)),o(RM,k(()=>s.value.zIndex)),o(kM,{size:k(()=>s.value.size||"")}),(r||!sd.value)&&(sd.value=s.value),s},lH=(e,t)=>{var r;const n=[...new Set([...Tb(e),...Tb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},uH=tt({a11y:{type:Boolean,default:!0},locale:{type:Le(Object)},size:Xu,button:{type:Le(Object)},experimentalFeatures:{type:Le(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Le(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),Qp={};ce({name:"ElConfigProvider",props:uH,setup(e,{slots:t}){Se(()=>e.message,n=>{Object.assign(Qp,n??{})},{immediate:!0,deep:!0});const r=FM(e);return()=>$e(t,"default",{config:r==null?void 0:r.value})}});var Ze=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const cH=tt({size:{type:Le([Number,String])},color:{type:String}}),fH=ce({name:"ElIcon",inheritAttrs:!1}),dH=ce({...fH,props:cH,setup(e){const t=e,r=Fe("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:ad(i)?void 0:po(i),"--color":a}});return(i,a)=>(Y(),me("i",ca({class:E(r).b(),style:E(n)},i.$attrs),[$e(i.$slots,"default")],16))}});var hH=Ze(dH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const lr=hr(hH),Bs=Symbol("formContextKey"),mo=Symbol("formItemContextKey"),ia=(e,t={})=>{const r=B(void 0),n=t.prop?r:gM("size"),i=t.global?r:oH(),a=t.form?{size:void 0}:Ee(Bs,void 0),o=t.formItem?{size:void 0}:Ee(mo,void 0);return k(()=>n.value||E(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},rh=e=>{const t=gM("disabled"),r=Ee(Bs,void 0);return k(()=>t.value||E(e)||(r==null?void 0:r.disabled)||!1)},Zu=()=>{const e=Ee(Bs,void 0),t=Ee(mo,void 0);return{form:e,formItem:t}},Py=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=B(!1)),n||(n=B(!1));const i=B();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return wt(()=>{a=Se([tn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:My().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),ks(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},vH=tt({size:{type:String,values:Yu},disabled:Boolean}),pH=tt({...vH,model:Object,rules:{type:Le(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),gH={validate:(e,t,r)=>(be(e)||He(e))&&Br(t)&&He(r)};function mH(){const e=B([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const yc=(e,t)=>{const r=$p(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},yH="ElForm",_H=ce({name:yH}),bH=ce({..._H,props:pH,emits:gH,setup(e,{expose:t,emit:r}){const n=e,i=[],a=ia(),o=Fe("form"),s=k(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},c=(y=[])=>{n.model&&yc(i,y).forEach(_=>_.resetField())},f=(y=[])=>{yc(i,y).forEach(_=>_.clearValidate())},d=k(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=yc(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const x of _)try{await x.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!De(_);try{const x=await p(y);return x===!0&&(_==null||_(x)),x}catch(x){if(x instanceof Error)throw x;const w=x;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=yc(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView(n.scrollIntoViewOptions))};return Se(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),At(Bs,fn({...$d(n),emit:r,resetFields:c,clearValidate:f,validateField:g,addField:l,removeField:u,...mH()})),t({validate:v,validateField:g,resetFields:c,clearValidate:f,scrollToField:m}),(y,_)=>(Y(),me("form",{class:ue(E(s))},[$e(y.$slots,"default")],2))}});var wH=Ze(bH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Mf(e,t,r){return SH()?Mf=Reflect.construct.bind():Mf=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&_u(u,o.prototype),u},Mf.apply(null,arguments)}function CH(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function eg(e){var t=typeof Map=="function"?new Map:void 0;return eg=function(n){if(n===null||!CH(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Mf(n,arguments,Jp(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),_u(i,n)},eg(e)}var TH=/%[sdj%]/g,MH=function(){};typeof process<"u"&&process.env;function tg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function kr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function AH(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function zt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||AH(t)&&typeof e=="string"&&!e)}function EH(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function Wb(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,s()\[\]\\.,;:\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},bl={integer:function(t){return bl.number(t)&&parseInt(t,10)===t},float:function(t){return bl.number(t)&&!bl.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 typeof t=="object"&&!bl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(jb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(RH())},hex:function(t){return typeof t=="string"&&!!t.match(jb.hex)}},kH=function(t,r,n,i,a){if(t.required&&r===void 0){BM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?bl[s](r)||i.push(kr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(kr(a.messages.types[s],t.fullField,t.type))},NH=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=r,f=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?f="number":h?f="string":v&&(f="array"),!f)return!1;v&&(c=r.length),h&&(c=r.replace(u,"_").length),o?c!==t.len&&i.push(kr(a.messages[f].len,t.fullField,t.len)):s&&!l&&ct.max?i.push(kr(a.messages[f].max,t.fullField,t.max)):s&&l&&(ct.max)&&i.push(kr(a.messages[f].range,t.fullField,t.min,t.max))},Lo="enum",FH=function(t,r,n,i,a){t[Lo]=Array.isArray(t[Lo])?t[Lo]:[],t[Lo].indexOf(r)===-1&&i.push(kr(a.messages[Lo],t.fullField,t[Lo].join(", ")))},BH=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:BM,whitespace:OH,type:kH,range:NH,enum:FH,pattern:BH},$H=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),zt(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},HH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},zH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},WH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},VH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r)||Ye.type(t,r,i,o,a)}n(o)},GH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},UH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},jH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},YH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},qH="enum",KH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[qH](t,r,i,o,a)}n(o)},XH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},ZH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!zt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},QH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},Vh=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(zt(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),zt(r,o)||Ye.type(t,r,i,s,a)}n(s)},JH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},Nl={string:$H,method:HH,number:zH,boolean:WH,regexp:VH,integer:GH,float:UH,array:jH,object:YH,enum:KH,pattern:XH,date:ZH,url:Vh,hex:Vh,email:Vh,required:QH,any:JH};function rg(){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 ng=rg(),Qu=function(){function e(r){this.rules=null,this._messages=ng,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Ub(rg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function c(p){var g=[],m={};function y(b){if(Array.isArray(b)){var x;g=(x=g).concat.apply(x,b)}else g.push(b)}for(var _=0;_");const i=Fe("form"),a=B(),o=B(0),s=()=>{var c;if((c=a.value)!=null&&c.firstElementChild){const f=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(f))}else return 0},l=(c="update")=>{Ft(()=>{t.default&&e.isAutoWidth&&(c==="update"?o.value=s():c==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return wt(()=>{u()}),Xt(()=>{l("remove")}),Hu(()=>u()),Se(o,(c,f)=>{e.updateAll&&(r==null||r.registerLabelWidth(c,f))}),gs(k(()=>{var c,f;return(f=(c=a.value)==null?void 0:c.firstElementChild)!=null?f:null}),u),()=>{var c,f;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return ee("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(c=t.default)==null?void 0:c.call(t)])}else return ee(pt,{ref:a},[(f=t.default)==null?void 0:f.call(t)])}}});const nz=["role","aria-labelledby"],iz=ce({name:"ElFormItem"}),az=ce({...iz,props:tz,setup(e,{expose:t}){const r=e,n=Yd(),i=Ee(Bs,void 0),a=Ee(mo,void 0),o=ia(void 0,{formItem:!1}),s=Fe("form-item"),l=My().value,u=B([]),c=B(""),f=tR(c,100),d=B(""),h=B();let v,p=!1;const g=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",c.value==="error"),s.is("validating",c.value==="validating"),s.is("success",c.value==="success"),s.is("required",N.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>Br(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=k(()=>r.prop?He(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),S=k(()=>r.for||u.value.length===1?u.value[0]:void 0),C=k(()=>!S.value&&w.value),M=!!a,P=k(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return Sf(W,r.prop).value}),A=k(()=>{const{required:W}=r,q=[];r.rules&&q.push(...$p(r.rules));const le=i==null?void 0:i.rules;if(le&&r.prop){const de=Sf(le,r.prop).value;de&&q.push(...$p(de))}if(W!==void 0){const de=q.map((J,L)=>[J,L]).filter(([J])=>Object.keys(J).includes("required"));if(de.length>0)for(const[J,L]of de)J.required!==W&&(q[L]={...J,required:W});else q.push({required:W})}return q}),T=k(()=>A.value.length>0),D=W=>A.value.filter(le=>!le.trigger||!W?!0:Array.isArray(le.trigger)?le.trigger.includes(W):le.trigger===W).map(({trigger:le,...de})=>de),N=k(()=>A.value.some(W=>W.required)),H=k(()=>{var W;return f.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),$=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),G=W=>{c.value=W},F=W=>{var q,le;const{errors:de,fields:J}=W;(!de||!J)&&console.error(W),G("error"),d.value=de?(le=(q=de==null?void 0:de[0])==null?void 0:q.message)!=null?le:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},R=()=>{G("success"),i==null||i.emit("validate",r.prop,!0,"")},j=async W=>{const q=x.value;return new Qu({[q]:W}).validate({[q]:P.value},{firstFields:!0}).then(()=>(R(),!0)).catch(de=>(F(de),Promise.reject(de)))},re=async(W,q)=>{if(p||!r.prop)return!1;const le=De(q);if(!T.value)return q==null||q(!1),!1;const de=D(W);return de.length===0?(q==null||q(!0),!0):(G("validating"),j(de).then(()=>(q==null||q(!0),!0)).catch(J=>{const{fields:L}=J;return q==null||q(!1,L),le?!1:Promise.reject(L)}))},oe=()=>{G(""),d.value="",p=!1},ye=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const q=Sf(W,r.prop);p=!0,q.value=bb(v),await Ft(),oe(),p=!1},Ae=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(q=>q!==W)};Se(()=>r.error,W=>{d.value=W||"",G(W?"error":"")},{immediate:!0}),Se(()=>r.validateStatus,W=>G(W||""));const Q=fn({...$d(r),$el:h,size:o,validateState:c,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Ae,removeInputId:V,resetField:ye,clearValidate:oe,validate:re});return At(mo,Q),wt(()=>{r.prop&&(i==null||i.addField(Q),v=bb(P.value))}),Xt(()=>{i==null||i.removeField(Q)}),t({size:o,validateMessage:d,validateState:c,validate:re,clearValidate:oe,resetField:ye}),(W,q)=>{var le;return Y(),me("div",{ref_key:"formItemRef",ref:h,class:ue(E(y)),role:E(C)?"group":void 0,"aria-labelledby":E(C)?E(l):void 0},[ee(E(rz),{"is-auto-width":E(g).width==="auto","update-all":((le=E(i))==null?void 0:le.labelWidth)==="auto"},{default:Z(()=>[E(w)?(Y(),_e(nn(E(S)?"label":"div"),{key:0,id:E(l),for:E(S),class:ue(E(s).e("label")),style:St(E(g))},{default:Z(()=>[$e(W.$slots,"label",{label:E($)},()=>[Bt(Te(E($)),1)])]),_:3},8,["id","for","class","style"])):ke("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),ae("div",{class:ue(E(s).e("content")),style:St(E(m))},[$e(W.$slots,"default"),ee(NO,{name:`${E(s).namespace.value}-zoom-in-top`},{default:Z(()=>[E(H)?$e(W.$slots,"error",{key:0,error:d.value},()=>[ae("div",{class:ue(E(b))},Te(d.value),3)]):ke("v-if",!0)]),_:3},8,["name"])],6)],10,nz)}}});var $M=Ze(az,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const HM=hr(wH,{FormItem:$M}),zM=fa($M),Qo=4,oz={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},sz=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),WM=Symbol("scrollbarContextKey"),lz=tt({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),uz="Thumb",cz=ce({__name:"thumb",props:lz,setup(e){const t=e,r=Ee(WM),n=Fe("scrollbar");r||na(uz,"can not inject scrollbar context");const i=B(),a=B(),o=B({}),s=B(!1);let l=!1,u=!1,c=Nt?document.onselectstart:null;const f=k(()=>oz[t.vertical?"vertical":"horizontal"]),d=k(()=>sz({size:t.size,move:t.move,bar:f.value})),h=k(()=>i.value[f.value.offset]**2/r.wrapElement[f.value.scrollSize]/t.ratio/a.value[f.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[f.value.axis]=C[f.value.offset]-(w[f.value.client]-C.getBoundingClientRect()[f.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[f.value.direction]-w[f.value.client]),C=a.value[f.value.offset]/2,M=(S-C)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=M*r.wrapElement[f.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),c=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[f.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[f.value.direction]-w[f.value.client])*-1,M=a.value[f.value.offset]-S,P=(C-M)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=P*r.wrapElement[f.value.scrollSize]/100},y=()=>{l=!1,o.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};Xt(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return xn(tn(r,"scrollbarElement"),"mousemove",_),xn(tn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(Y(),_e(Ci,{name:E(n).b("fade"),persisted:""},{default:Z(()=>[nr(ae("div",{ref_key:"instance",ref:i,class:ue([E(n).e("bar"),E(n).is(E(f).key)]),onMousedown:p},[ae("div",{ref_key:"thumb",ref:a,class:ue(E(n).e("thumb")),style:St(E(d)),onMousedown:v},null,38)],34),[[yi,w.always||s.value]])]),_:1},8,["name"]))}});var qb=Ze(cz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const fz=tt({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),dz=ce({__name:"bar",props:fz,setup(e,{expose:t}){const r=e,n=B(0),i=B(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Qo,l=o.offsetWidth-Qo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(Y(),me(pt,null,[ee(qb,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),ee(qb,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var hz=Ze(dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const vz=tt({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Le([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),pz={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every($t)},gz="ElScrollbar",mz=ce({name:gz}),yz=ce({...mz,props:vz,emits:pz,setup(e,{expose:t,emit:r}){const n=e,i=Fe("scrollbar");let a,o;const s=B(),l=B(),u=B(),c=B("0"),f=B("0"),d=B(),h=B(1),v=B(1),p=k(()=>{const S={};return n.height&&(S.height=po(n.height)),n.maxHeight&&(S.maxHeight=po(n.maxHeight)),[n.wrapStyle,S]}),g=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=k(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=d.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){Xe(S)?l.value.scrollTo(S):$t(S)&&$t(C)&&l.value.scrollTo(S,C)}const b=S=>{$t(S)&&(l.value.scrollTop=S)},x=S=>{$t(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Qo,C=l.value.offsetWidth-Qo,M=S**2/l.value.scrollHeight,P=C**2/l.value.scrollWidth,A=Math.max(M,n.minSize),T=Math.max(P,n.minSize);h.value=M/(S-M)/(A/(S-A)),v.value=P/(C-P)/(T/(C-T)),f.value=A+Qon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=gs(u,w),o=xn("resize",w))},{immediate:!0}),Se(()=>[n.maxHeight,n.height],()=>{n.native||Ft(()=>{var S;w(),l.value&&((S=d.value)==null||S.handleScroll(l.value))})}),At(WM,fn({scrollbarElement:s,wrapElement:l})),wt(()=>{n.native||Ft(()=>{w()})}),Hu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(Y(),me("div",{ref_key:"scrollbarRef",ref:s,class:ue(E(i).b())},[ae("div",{ref_key:"wrapRef",ref:l,class:ue(E(g)),style:St(E(p)),onScroll:y},[(Y(),_e(nn(S.tag),{ref_key:"resizeRef",ref:u,class:ue(E(m)),style:St(S.viewStyle)},{default:Z(()=>[$e(S.$slots,"default")]),_:3},8,["class","style"]))],38),S.native?ke("v-if",!0):(Y(),_e(hz,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:S.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var _z=Ze(yz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const VM=hr(_z),Ly=Symbol("popper"),GM=Symbol("popperContent"),bz=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],UM=tt({role:{type:String,values:bz,default:"tooltip"}}),wz=ce({name:"ElPopper",inheritAttrs:!1}),xz=ce({...wz,props:UM,setup(e,{expose:t}){const r=e,n=B(),i=B(),a=B(),o=B(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),At(Ly,l),(u,c)=>$e(u.$slots,"default")}});var Sz=Ze(xz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const jM=tt({arrowOffset:{type:Number,default:5}}),Cz=ce({name:"ElPopperArrow",inheritAttrs:!1}),Tz=ce({...Cz,props:jM,setup(e,{expose:t}){const r=e,n=Fe("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Ee(GM,void 0);return Se(()=>r.arrowOffset,s=>{i.value=s}),Xt(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(Y(),me("span",{ref_key:"arrowRef",ref:a,class:ue(E(n).e("arrow")),style:St(E(o)),"data-popper-arrow":""},null,6))}});var Mz=Ze(Tz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Az="ElOnlyChild",Ez=ce({name:Az,setup(e,{slots:t,attrs:r}){var n;const i=Ee(IM),a=aH((n=i==null?void 0:i.setForwardRef)!=null?n:ur);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=YM(s);return l?nr(mi(l,r),[[a]]):null}}});function YM(e){if(!e)return null;const t=e;for(const r of t){if(Xe(r))switch(r.type){case xr:continue;case Ns:case"svg":return Kb(r);case pt:return YM(r.children);default:return r}return Kb(r)}return null}function Kb(e){const t=Fe("only-child");return ee("span",{class:t.e("content")},[e])}const qM=tt({virtualRef:{type:Le(Object)},virtualTriggering:Boolean,onMouseenter:{type:Le(Function)},onMouseleave:{type:Le(Function)},onClick:{type:Le(Function)},onKeydown:{type:Le(Function)},onFocus:{type:Le(Function)},onBlur:{type:Le(Function)},onContextmenu:{type:Le(Function)},id:String,open:Boolean}),Pz=ce({name:"ElPopperTrigger",inheritAttrs:!1}),Lz=ce({...Pz,props:qM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Ee(Ly,void 0);iH(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return wt(()=>{Se(()=>r.virtualRef,c=>{c&&(i.value=Ui(c))},{immediate:!0}),Se(i,(c,f)=>{u==null||u(),u=void 0,ys(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(c.addEventListener(d.slice(2).toLowerCase(),v),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),v))}),u=Se([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{gu(d[v])?c.removeAttribute(h):c.setAttribute(h,d[v])})},{immediate:!0})),ys(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),Xt(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(c,f)=>c.virtualTriggering?ke("v-if",!0):(Y(),_e(E(Ez),ca({key:0},c.$attrs,{"aria-controls":E(a),"aria-describedby":E(o),"aria-expanded":E(l),"aria-haspopup":E(s)}),{default:Z(()=>[$e(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Dz=Ze(Lz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Gh="focus-trap.focus-after-trapped",Uh="focus-trap.focus-after-released",Iz="focus-trap.focusout-prevented",Xb={cancelable:!0,bubbles:!1},Oz={cancelable:!0,bubbles:!1},Zb="focusAfterTrapped",Qb="focusAfterReleased",Rz=Symbol("elFocusTrap"),Dy=B(),nh=B(0),Iy=B(0);let bc=0;const KM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Jb=(e,t)=>{for(const r of e)if(!kz(r,t))return r},kz=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Nz=e=>{const t=KM(e),r=Jb(t,e),n=Jb(t.reverse(),e);return[r,n]},Fz=e=>e instanceof HTMLInputElement&&"select"in e,$i=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Iy.value=window.performance.now(),e!==r&&Fz(e)&&t&&e.select()}};function e1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const Bz=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=e1(e,n),e.unshift(n)},remove:n=>{var i,a;e=e1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},$z=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if($i(n,t),document.activeElement!==r)return},t1=Bz(),Hz=()=>nh.value>Iy.value,wc=()=>{Dy.value="pointer",nh.value=window.performance.now()},r1=()=>{Dy.value="keyboard",nh.value=window.performance.now()},zz=()=>(wt(()=>{bc===0&&(document.addEventListener("mousedown",wc),document.addEventListener("touchstart",wc),document.addEventListener("keydown",r1)),bc++}),Xt(()=>{bc--,bc<=0&&(document.removeEventListener("mousedown",wc),document.removeEventListener("touchstart",wc),document.removeEventListener("keydown",r1))}),{focusReason:Dy,lastUserFocusTimestamp:nh,lastAutomatedFocusTimestamp:Iy}),xc=e=>new CustomEvent(Iz,{...Oz,detail:e}),Wz=ce({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Zb,Qb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=B();let n,i;const{focusReason:a}=zz();eH(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===Ot.tab&&!g&&!m&&!y,S=document.activeElement;if(w&&S){const C=_,[M,P]=Nz(C);if(M&&P){if(!b&&S===P){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(M,!0))}else if(b&&[M,C].includes(S)){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(P,!0))}}else if(S===C){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||v.preventDefault()}}};At(Rz,{focusTrapRef:r,onKeydown:s}),Se(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),Se([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",c),v.addEventListener("focusout",f)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",c),p.removeEventListener("focusout",f))});const l=v=>{t(Zb,v)},u=v=>t(Qb,v),c=v=>{const p=E(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:$i(i,!0))},f=v=>{const p=E(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!gu(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=xc({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||$i(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Ft();const v=E(r);if(v){t1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Gh,Xb);v.addEventListener(Gh,l),v.dispatchEvent(m),m.defaultPrevented||Ft(()=>{let y=e.focusStartEl;He(y)||($i(y),document.activeElement!==y&&(y="first")),y==="first"&&$z(KM(v),!0),(document.activeElement===p||y==="container")&&$i(v)})}}}function h(){const v=E(r);if(v){v.removeEventListener(Gh,l);const p=new CustomEvent(Uh,{...Xb,detail:{focusReason:a.value}});v.addEventListener(Uh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!Hz()||v.contains(document.activeElement))&&$i(n??document.body),v.removeEventListener(Uh,l),t1.remove(o)}}return wt(()=>{e.trapped&&d(),Se(()=>e.trapped,v=>{v?d():h()})}),Xt(()=>{e.trapped&&h()}),{onKeydown:s}}});function Vz(e,t,r,n,i,a){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var Gz=Ze(Wz,[["render",Vz],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const Uz=["fixed","absolute"],jz=tt({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Le(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:yy,default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},strategy:{type:String,values:Uz,default:"absolute"}}),XM=tt({...jz,id:String,style:{type:Le([String,Array,Object])},className:{type:Le([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Le([String,Array,Object])},popperStyle:{type:Le([String,Array,Object])},referenceEl:{type:Le(Object)},triggerTargetEl:{type:Le(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Yz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},qz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...Xz(e),...t]};return Zz(a,i==null?void 0:i.modifiers),a},Kz=e=>{if(Nt)return Ui(e)};function Xz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function Zz(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const Qz=0,Jz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Ee(Ly,void 0),a=B(),o=B(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var m;const y=E(a),_=(m=E(o))!=null?m:Qz;return{name:"arrow",enabled:!L5(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...qz(e,[E(l),E(s)])})),c=k(()=>Kz(e.referenceEl)||E(n)),{attributes:f,state:d,styles:h,update:v,forceUpdate:p,instanceRef:g}=Z4(c,r,u);return Se(g,m=>t.value=m),wt(()=>{Se(()=>{var m;return(m=E(c))==null?void 0:m.getBoundingClientRect()},()=>{v()})}),{attributes:f,arrowRef:a,contentRef:r,instanceRef:g,state:d,styles:h,role:i,forceUpdate:p,update:v}},e6=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=Ay(),a=Fe("popper"),o=k(()=>E(t).popper),s=B(e.zIndex||i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:E(s)},e.popperStyle||{},E(r).popper]),c=k(()=>n.value==="dialog"?"false":void 0),f=k(()=>E(r).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=e.zIndex||i()}}},t6=(e,t)=>{const r=B(!1),n=B();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},r6=ce({name:"ElPopperContent"}),n6=ce({...r6,props:XM,emits:Yz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:c}=t6(n,r),{attributes:f,arrowRef:d,contentRef:h,styles:v,instanceRef:p,role:g,update:m}=Jz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:x,contentStyle:w,updateZIndex:S}=e6(n,{styles:v,attributes:f,role:g}),C=Ee(mo,void 0),M=B();At(GM,{arrowStyle:_,arrowRef:d,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&At(mo,{...C,addInputId:ur,removeInputId:ur});let P;const A=(D=!0)=>{m(),D&&S()},T=()=>{A(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return wt(()=>{Se(()=>n.triggerTargetEl,(D,N)=>{P==null||P(),P=void 0;const H=E(D||h.value),$=E(N||h.value);ys(H)&&(P=Se([g,()=>n.ariaLabel,y,()=>n.id],G=>{["role","aria-label","aria-modal","id"].forEach((F,R)=>{gu(G[R])?H.removeAttribute(F):H.setAttribute(F,G[R])})},{immediate:!0})),$!==H&&ys($)&&["role","aria-label","aria-modal","id"].forEach(G=>{$.removeAttribute(G)})},{immediate:!0}),Se(()=>n.visible,T,{immediate:!0})}),Xt(()=>{P==null||P(),P=void 0}),t({popperContentRef:h,popperInstanceRef:p,updatePopper:A,contentStyle:w}),(D,N)=>(Y(),me("div",ca({ref_key:"contentRef",ref:h},E(b),{style:E(w),class:E(x),tabindex:"-1",onMouseenter:N[0]||(N[0]=H=>D.$emit("mouseenter",H)),onMouseleave:N[1]||(N[1]=H=>D.$emit("mouseleave",H))}),[ee(E(Gz),{trapped:E(a),"trap-on-focus-in":!0,"focus-trap-el":E(h),"focus-start-el":E(i),onFocusAfterTrapped:E(s),onFocusAfterReleased:E(o),onFocusin:E(l),onFocusoutPrevented:E(u),onReleaseRequested:E(c)},{default:Z(()=>[$e(D.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var i6=Ze(n6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const a6=hr(Sz),Oy=Symbol("elTooltip"),qr=tt({...nH,...XM,appendTo:{type:Le([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Le(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),bu=tt({...qM,disabled:Boolean,trigger:{type:Le([String,Array]),default:"hover"},triggerKeys:{type:Le(Array),default:()=>[Ot.enter,Ot.space]}}),{useModelToggleProps:o6,useModelToggleEmits:s6,useModelToggle:l6}=K3("visible"),u6=tt({...UM,...o6,...qr,...bu,...jM,showArrow:{type:Boolean,default:!0}}),c6=[...s6,"before-show","before-hide","show","hide","open","close"],f6=(e,t)=>be(e)?e.includes(t):e===t,Do=(e,t,r)=>n=>{f6(E(e),t)&&r(n)},d6=ce({name:"ElTooltipTrigger"}),h6=ce({...d6,props:bu,setup(e,{expose:t}){const r=e,n=Fe("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Ee(Oy,void 0),c=B(null),f=()=>{if(E(i)||r.disabled)return!0},d=tn(r,"trigger"),h=fi(f,Do(d,"hover",s)),v=fi(f,Do(d,"hover",l)),p=fi(f,Do(d,"click",b=>{b.button===0&&u(b)})),g=fi(f,Do(d,"focus",s)),m=fi(f,Do(d,"focus",l)),y=fi(f,Do(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=fi(f,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:c}),(b,x)=>(Y(),_e(E(Dz),{id:E(a),"virtual-ref":b.virtualRef,open:E(o),"virtual-triggering":b.virtualTriggering,class:ue(E(n).e("trigger")),onBlur:E(m),onClick:E(p),onContextmenu:E(y),onFocus:E(g),onMouseenter:E(h),onMouseleave:E(v),onKeydown:E(_)},{default:Z(()=>[$e(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var v6=Ze(h6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const p6=ce({name:"ElTooltipContent",inheritAttrs:!1}),g6=ce({...p6,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=LM(),i=Fe("tooltip"),a=B(null),o=B(!1),{controlled:s,id:l,open:u,trigger:c,onClose:f,onOpen:d,onShow:h,onHide:v,onBeforeShow:p,onBeforeHide:g}=Ee(Oy,void 0),m=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);Xt(()=>{o.value=!0});const _=k(()=>E(y)?!0:E(u)),b=k(()=>r.disabled?!1:E(u)),x=k(()=>r.appendTo||n.value),w=k(()=>{var G;return(G=r.style)!=null?G:{}}),S=k(()=>!E(u)),C=()=>{v()},M=()=>{if(E(s))return!0},P=fi(M,()=>{r.enterable&&E(c)==="hover"&&d()}),A=fi(M,()=>{E(c)==="hover"&&f()}),T=()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G),p==null||p()},D=()=>{g==null||g()},N=()=>{h(),$=pR(k(()=>{var G;return(G=a.value)==null?void 0:G.popperContentRef}),()=>{if(E(s))return;E(c)!=="hover"&&f()})},H=()=>{r.virtualTriggering||f()};let $;return Se(()=>E(u),G=>{G||$==null||$()},{flush:"post"}),Se(()=>r.content,()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G)}),t({contentRef:a}),(G,F)=>(Y(),_e(eO,{disabled:!G.teleported,to:E(x)},[ee(Ci,{name:E(m),onAfterLeave:C,onBeforeEnter:T,onAfterEnter:N,onBeforeLeave:D},{default:Z(()=>[E(_)?nr((Y(),_e(E(i6),ca({key:0,id:E(l),ref_key:"contentRef",ref:a},G.$attrs,{"aria-label":G.ariaLabel,"aria-hidden":E(S),"boundaries-padding":G.boundariesPadding,"fallback-placements":G.fallbackPlacements,"gpu-acceleration":G.gpuAcceleration,offset:G.offset,placement:G.placement,"popper-options":G.popperOptions,strategy:G.strategy,effect:G.effect,enterable:G.enterable,pure:G.pure,"popper-class":G.popperClass,"popper-style":[G.popperStyle,E(w)],"reference-el":G.referenceEl,"trigger-target-el":G.triggerTargetEl,visible:E(b),"z-index":G.zIndex,onMouseenter:E(P),onMouseleave:E(A),onBlur:H,onClose:E(f)}),{default:Z(()=>[o.value?ke("v-if",!0):$e(G.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[yi,E(b)]]):ke("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var m6=Ze(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const y6=["innerHTML"],_6={key:1},b6=ce({name:"ElTooltip"}),w6=ce({...b6,props:u6,emits:c6,setup(e,{expose:t,emit:r}){const n=e;rH();const i=My(),a=B(),o=B(),s=()=>{var m;const y=E(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=B(!1),u=B(),{show:c,hide:f,hasUpdateHandler:d}=l6({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=DM({showAfter:tn(n,"showAfter"),hideAfter:tn(n,"hideAfter"),autoClose:tn(n,"autoClose"),open:c,close:f}),p=k(()=>Br(n.visible)&&!d.value);At(Oy,{controlled:p,id:i,open:$u(l),trigger:tn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{E(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),Se(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return qC(()=>l.value&&f()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:f}),(m,y)=>(Y(),_e(E(a6),{ref_key:"popperRef",ref:a,role:m.role},{default:Z(()=>[ee(v6,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:Z(()=>[m.$slots.default?$e(m.$slots,"default",{key:0}):ke("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(m6,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:Z(()=>[$e(m.$slots,"content",{},()=>[m.rawContent?(Y(),me("span",{key:0,innerHTML:m.content},null,8,y6)):(Y(),me("span",_6,Te(m.content),1))]),m.showArrow?(Y(),_e(E(Mz),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):ke("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var x6=Ze(w6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ju=hr(x6),S6=tt({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),C6=["textContent"],T6=ce({name:"ElBadge"}),M6=ce({...T6,props:S6,setup(e,{expose:t}){const r=e,n=Fe("badge"),i=k(()=>r.isDot?"":$t(r.value)&&$t(r.max)?r.max(Y(),me("div",{class:ue(E(n).b())},[$e(a.$slots,"default"),ee(Ci,{name:`${E(n).namespace.value}-zoom-in-center`,persisted:""},{default:Z(()=>[nr(ae("sup",{class:ue([E(n).e("content"),E(n).em("content",a.type),E(n).is("fixed",!!a.$slots.default),E(n).is("dot",a.isDot)]),textContent:Te(E(i))},null,10,C6),[[yi,!a.hidden&&(E(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var A6=Ze(M6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const E6=hr(A6),ZM=Symbol("buttonGroupContextKey"),P6=(e,t)=>{vy({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Ee(ZM,void 0),n=Ey("button"),{form:i}=Zu(),a=ia(k(()=>r==null?void 0:r.size)),o=rh(),s=B(),l=Yd(),u=k(()=>e.type||(r==null?void 0:r.type)||""),c=k(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),f=k(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(c.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Ns){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},L6=["default","primary","success","warning","info","danger","text",""],D6=["button","submit","reset"],ig=tt({size:Xu,disabled:Boolean,type:{type:String,values:L6,default:""},icon:{type:Wn},nativeType:{type:String,values:D6,default:"button"},loading:Boolean,loadingIcon:{type:Wn,default:()=>hy},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),I6={click:e=>e instanceof MouseEvent};function Kt(e,t){O6(e)&&(e="100%");var r=R6(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Sc(e){return Math.min(1,Math.max(0,e))}function O6(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function R6(e){return typeof e=="string"&&e.indexOf("%")!==-1}function QM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Cc(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Qa(e){return e.length===1?"0"+e:String(e)}function k6(e,t,r){return{r:Kt(e,255)*255,g:Kt(t,255)*255,b:Kt(r,255)*255}}function n1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function N6(e,t,r){var n,i,a;if(e=Kt(e,360),t=Kt(t,100),r=Kt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=jh(s,o,e+1/3),i=jh(s,o,e),a=jh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function i1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var ag={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function z6(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=G6(e)),typeof e=="object"&&(ii(e.r)&&ii(e.g)&&ii(e.b)?(t=k6(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ii(e.h)&&ii(e.s)&&ii(e.v)?(n=Cc(e.s),i=Cc(e.v),t=F6(e.h,n,i),o=!0,s="hsv"):ii(e.h)&&ii(e.s)&&ii(e.l)&&(n=Cc(e.s),a=Cc(e.l),t=N6(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=QM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var W6="[-\\+]?\\d+%?",V6="[-\\+]?\\d*\\.\\d+%?",ji="(?:".concat(V6,")|(?:").concat(W6,")"),Yh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),qh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),pn={CSS_UNIT:new RegExp(ji),rgb:new RegExp("rgb"+Yh),rgba:new RegExp("rgba"+qh),hsl:new RegExp("hsl"+Yh),hsla:new RegExp("hsla"+qh),hsv:new RegExp("hsv"+Yh),hsva:new RegExp("hsva"+qh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function G6(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ag[e])e=ag[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=pn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=pn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=pn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=pn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=pn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=pn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=pn.hex8.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),a:o1(r[4]),format:t?"name":"hex8"}:(r=pn.hex6.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),format:t?"name":"hex"}:(r=pn.hex4.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),a:o1(r[4]+r[4]),format:t?"name":"hex8"}:(r=pn.hex3.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ii(e){return Boolean(pn.CSS_UNIT.exec(String(e)))}var JM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=H6(t)),this.originalInput=t;var i=z6(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=QM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=i1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=i1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=n1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=n1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),a1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),B6(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(Kt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(Kt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+a1(this.r,this.g,this.b,!1),r=0,n=Object.entries(ag);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=Sc(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=Sc(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=Sc(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=Sc(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new JM(i),o=e.dark?a.tint(20).toString():Di(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Di(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Di(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Di(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Di(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Di(a,80):a.tint(80).toString());else{const s=e.dark?Di(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Di(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const j6=["aria-disabled","disabled","autofocus","type"],Y6=ce({name:"ElButton"}),q6=ce({...Y6,props:ig,emits:I6,setup(e,{expose:t,emit:r}){const n=e,i=U6(n),a=Fe("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:c,handleClick:f}=P6(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,h)=>(Y(),me("button",{ref_key:"_ref",ref:o,class:ue([E(a).b(),E(a).m(E(l)),E(a).m(E(s)),E(a).is("disabled",E(u)),E(a).is("loading",d.loading),E(a).is("plain",d.plain),E(a).is("round",d.round),E(a).is("circle",d.circle),E(a).is("text",d.text),E(a).is("link",d.link),E(a).is("has-bg",d.bg)]),"aria-disabled":E(u)||d.loading,disabled:E(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:St(E(i)),onClick:h[0]||(h[0]=(...v)=>E(f)&&E(f)(...v))},[d.loading?(Y(),me(pt,{key:0},[d.$slots.loading?$e(d.$slots,"loading",{key:0}):(Y(),_e(E(lr),{key:1,class:ue(E(a).is("loading"))},{default:Z(()=>[(Y(),_e(nn(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(Y(),_e(E(lr),{key:1},{default:Z(()=>[d.icon?(Y(),_e(nn(d.icon),{key:0})):$e(d.$slots,"icon",{key:1})]),_:3})):ke("v-if",!0),d.$slots.default?(Y(),me("span",{key:2,class:ue({[E(a).em("text","expand")]:E(c)})},[$e(d.$slots,"default")],2)):ke("v-if",!0)],14,j6))}});var K6=Ze(q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const X6={size:ig.size,type:ig.type},Z6=ce({name:"ElButtonGroup"}),Q6=ce({...Z6,props:X6,setup(e){const t=e;At(ZM,fn({size:tn(t,"size"),type:tn(t,"type")}));const r=Fe("button");return(n,i)=>(Y(),me("div",{class:ue(`${E(r).b("group")}`)},[$e(n.$slots,"default")],2))}});var eA=Ze(Q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const J6=hr(K6,{ButtonGroup:eA});fa(eA);var e8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Hi=new Map;let s1;Nt&&(document.addEventListener("mousedown",e=>s1=e),document.addEventListener("mouseup",e=>{for(const t of Hi.values())for(const{documentHandler:r}of t)r(e,s1)}));function l1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:ys(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,c=e.contains(o)||e.contains(s),f=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||c||f||d||h||t.value(n,i)}}const t8={beforeMount(e,t){Hi.has(e)||Hi.set(e,[]),Hi.get(e).push({documentHandler:l1(e,t),bindingFn:t.value})},updated(e,t){Hi.has(e)||Hi.set(e,[]);const r=Hi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:l1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Hi.delete(e)}};var u1=!1,qa,og,sg,Af,Ef,tA,Pf,lg,ug,cg,rA,fg,dg,nA,iA;function vr(){if(!u1){u1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(fg=/\b(iPhone|iP[ao]d)/.exec(e),dg=/\b(iP[ao]d)/.exec(e),cg=/Android/i.exec(e),nA=/FBAN\/\w+;/i.exec(e),iA=/Mobile/i.exec(e),rA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);tA=n?parseFloat(n[1])+4:qa,og=t[2]?parseFloat(t[2]):NaN,sg=t[3]?parseFloat(t[3]):NaN,Af=t[4]?parseFloat(t[4]):NaN,Af?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Ef=t&&t[1]?parseFloat(t[1]):NaN):Ef=NaN}else qa=og=sg=Ef=Af=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Pf=i?parseFloat(i[1].replace("_",".")):!0}else Pf=!1;lg=!!r[2],ug=!!r[3]}else Pf=lg=ug=!1}}var hg={ie:function(){return vr()||qa},ieCompatibilityMode:function(){return vr()||tA>qa},ie64:function(){return hg.ie()&&rA},firefox:function(){return vr()||og},opera:function(){return vr()||sg},webkit:function(){return vr()||Af},safari:function(){return hg.webkit()},chrome:function(){return vr()||Ef},windows:function(){return vr()||lg},osx:function(){return vr()||Pf},linux:function(){return vr()||ug},iphone:function(){return vr()||fg},mobile:function(){return vr()||fg||dg||cg||iA},nativeApp:function(){return vr()||nA},android:function(){return vr()||cg},ipad:function(){return vr()||dg}},r8=hg,Tc=!!(typeof window<"u"&&window.document&&window.document.createElement),n8={canUseDOM:Tc,canUseWorkers:typeof Worker<"u",canUseEventListeners:Tc&&!!(window.addEventListener||window.attachEvent),canUseViewport:Tc&&!!window.screen,isInWorker:!Tc},aA=n8,oA;aA.canUseDOM&&(oA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function i8(e,t){if(!aA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&oA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var a8=i8,c1=10,f1=40,d1=800;function sA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*c1,i=r*c1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=f1,i*=f1):(n*=d1,i*=d1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}sA.getEventType=function(){return r8.firefox()?"DOMMouseScroll":a8("wheel")?"wheel":"mousewheel"};var o8=sA;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const s8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=o8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},l8={beforeMount(e,t){s8(e,t.value)}},lA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Xu,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},uA={[go]:e=>He(e)||$t(e)||Br(e),change:e=>He(e)||$t(e)||Br(e)},$s=Symbol("checkboxGroupContextKey"),u8=({model:e,isChecked:t})=>{const r=Ee($s,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!ad(s)&&e.value.length>=s&&!t.value||!ad(l)&&e.value.length<=l&&t.value});return{isDisabled:rh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},c8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Ee($s,void 0),{formItem:s}=Zu(),{emit:l}=ct();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function c(v,p){l("change",u(v),p)}function f(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ft(),c(t.value,v)))}const h=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return Se(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:f,onClickRoot:d}},f8=e=>{const t=B(!1),{emit:r}=ct(),n=Ee($s,void 0),i=k(()=>ad(n)===!1),a=B(!1);return{model:k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&be(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(go,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},d8=(e,t,{model:r})=>{const n=Ee($s,void 0),i=B(!1),a=k(()=>{const u=r.value;return Br(u)?u:be(u)?Xe(e.label)?u.map(Ke).some(c=>P5(c,e.label)):u.map(Ke).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},h8=(e,{model:t})=>{function r(){be(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},cA=(e,t)=>{const{formItem:r}=Zu(),{model:n,isGroup:i,isLimitExceeded:a}=f8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c}=d8(e,t,{model:n}),{isDisabled:f}=u8({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=Py(e,{formItemContext:r,disableIdGeneration:c,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=c8(e,{model:n,isLimitExceeded:a,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return h8(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:f,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c,model:n,handleChange:v,onClickRoot:p}},v8=["tabindex","role","aria-checked"],p8=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],g8=["id","aria-hidden","disabled","value","name","tabindex"],m8=ce({name:"ElCheckbox"}),y8=ce({...m8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=cA(t,r),h=Fe("checkbox"),v=k(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=k(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(Y(),_e(nn(!E(u)&&E(i)?"span":"label"),{class:ue(E(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:E(d)},{default:Z(()=>[ae("span",{class:ue(E(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?nr((Y(),me("input",{key:0,id:E(n),"onUpdate:modelValue":m[0]||(m[0]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:E(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,p8)),[[Qf,E(c)]]):nr((Y(),me("input",{key:1,id:E(n),"onUpdate:modelValue":m[4]||(m[4]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:E(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,g8)),[[Qf,E(c)]]),ae("span",{class:ue(E(h).e("inner"))},null,2)],10,v8),E(u)?(Y(),me("span",{key:0,class:ue(E(h).e("label"))},[$e(g.$slots,"default"),g.$slots.default?ke("v-if",!0):(Y(),me(pt,{key:0},[Bt(Te(g.label),1)],64))],2)):ke("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var _8=Ze(y8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const b8=["name","tabindex","disabled","true-value","false-value"],w8=["name","tabindex","disabled","value"],x8=ce({name:"ElCheckboxButton"}),S8=ce({...x8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=cA(t,r),u=Ee($s,void 0),c=Fe("checkbox"),f=k(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=k(()=>[c.b("button"),c.bm("button",o.value),c.is("disabled",a.value),c.is("checked",i.value),c.is("focus",n.value)]);return(h,v)=>(Y(),me("label",{class:ue(E(d))},[h.trueLabel||h.falseLabel?nr((Y(),me("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,b8)),[[Qf,E(s)]]):nr((Y(),me("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,w8)),[[Qf,E(s)]]),h.$slots.default||h.label?(Y(),me("span",{key:2,class:ue(E(c).be("button","inner")),style:St(E(i)?E(f):void 0)},[$e(h.$slots,"default",{},()=>[Bt(Te(h.label),1)])],6)):ke("v-if",!0)],2))}});var fA=Ze(S8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const C8=tt({modelValue:{type:Le(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Xu,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),T8={[go]:e=>be(e),change:e=>be(e)},M8=ce({name:"ElCheckboxGroup"}),A8=ce({...M8,props:C8,emits:T8,setup(e,{emit:t}){const r=e,n=Fe("checkbox"),{formItem:i}=Zu(),{inputId:a,isLabeledByFormItem:o}=Py(r,{formItemContext:i}),s=async u=>{t(go,u),await Ft(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return At($s,{...k5($d(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),Se(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return Y(),_e(nn(u.tag),{id:E(a),class:ue(E(n).b("group")),role:"group","aria-label":E(o)?void 0:u.label||"checkbox-group","aria-labelledby":E(o)?(f=E(i))==null?void 0:f.labelId:void 0},{default:Z(()=>[$e(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var dA=Ze(A8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Cs=hr(_8,{CheckboxButton:fA,CheckboxGroup:dA});fa(fA);fa(dA);const E8=tt({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Yu,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),P8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},L8=ce({name:"ElTag"}),D8=ce({...L8,props:E8,emits:P8,setup(e,{emit:t}){const r=e,n=ia(),i=Fe("tag"),a=k(()=>{const{type:l,hit:u,effect:c,closable:f,round:d}=r;return[i.b(),i.is("closable",f),i.m(l),i.m(n.value),i.m(c),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(Y(),me("span",{key:0,class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):ke("v-if",!0)],6)):(Y(),_e(Ci,{key:1,name:`${E(i).namespace.value}-zoom-in-center`,appear:""},{default:Z(()=>[ae("span",{class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):ke("v-if",!0)],6)]),_:3},8,["name"]))}});var I8=Ze(D8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const O8=hr(I8),hA=Symbol("rowContextKey"),R8=["start","center","end","space-around","space-between","space-evenly"],k8=["top","middle","bottom"],N8=tt({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:R8,default:"start"},align:{type:String,values:k8,default:"top"}}),F8=ce({name:"ElRow"}),B8=ce({...F8,props:N8,setup(e){const t=e,r=Fe("row"),n=k(()=>t.gutter);At(hA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var $8=Ze(B8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const vA=hr($8),H8=tt({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Le([Number,Object]),default:()=>Ya({})},sm:{type:Le([Number,Object]),default:()=>Ya({})},md:{type:Le([Number,Object]),default:()=>Ya({})},lg:{type:Le([Number,Object]),default:()=>Ya({})},xl:{type:Le([Number,Object]),default:()=>Ya({})}}),z8=ce({name:"ElCol"}),W8=ce({...z8,props:H8,setup(e){const t=e,{gutter:r}=Ee(hA,{gutter:k(()=>0)}),n=Fe("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];$t(c)&&(u==="span"?o.push(n.b(`${t[u]}`)):c>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{$t(t[u])?o.push(n.b(`${u}-${t[u]}`)):Xe(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{o.push(c!=="span"?n.b(`${u}-${c}-${f}`):n.b(`${u}-${f}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ze(W8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const pA=hr(V8),G8=ce({name:"ElCollapseTransition"}),U8=ce({...G8,setup(e){const t=Fe("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(Y(),_e(Ci,ca({name:E(t).b()},RI(r)),{default:Z(()=>[$e(n.$slots,"default")]),_:3},16,["name"]))}});var Lf=Ze(U8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);Lf.install=e=>{e.component(Lf.name,Lf)};const j8=Lf,Y8=ce({inheritAttrs:!1});function q8(e,t,r,n,i,a){return $e(e.$slots,"default")}var K8=Ze(Y8,[["render",q8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const X8=ce({name:"ElCollectionItem",inheritAttrs:!1});function Z8(e,t,r,n,i,a){return $e(e.$slots,"default")}var Q8=Ze(X8,[["render",Z8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const J8="data-el-collection-item",eW=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...K8,name:t,setup(){const s=B(null),l=new Map;At(n,{itemMap:l,getItems:()=>{const c=E(s);if(!c)return[];const f=Array.from(c.querySelectorAll(`[${J8}]`));return[...l.values()].sort((h,v)=>f.indexOf(h.ref)-f.indexOf(v.ref))},collectionRef:s})}},o={...Q8,name:r,setup(s,{attrs:l}){const u=B(null),c=Ee(n,void 0);At(i,{collectionItemRef:u}),wt(()=>{const f=E(u);f&&c.itemMap.set(f,{ref:f,...l})}),Xt(()=>{const f=E(u);c.itemMap.delete(f)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Kh=tt({trigger:bu.trigger,effect:{...qr.effect,default:"light"},type:{type:Le(String)},placement:{type:Le(String),default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Le([Number,String]),default:0},maxHeight:{type:Le([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Le(Object)},teleported:qr.teleported});tt({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wn}});tt({onKeydown:{type:Le(Function)}});Ot.down,Ot.pageDown,Ot.home;Ot.up,Ot.pageUp,Ot.end;eW("Dropdown");let tW=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Ot.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Ot.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Ot.tab:{wf(t,"mouseleave");break}case Ot.enter:case Ot.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},rW=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new tW(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Ot.down:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Ot.up:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Ot.tab:{wf(t.currentTarget,"mouseleave");break}case Ot.enter:case Ot.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},nW=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new rW(n,t)})}};const iW=ce({name:"ElMenuCollapseTransition",setup(){const e=Fe("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Zo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){ss(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Ol(r,e.m("collapse"))?(ss(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Zo(r,e.m("collapse"))):(Zo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),ss(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Zo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function aW(e,t,r,n,i,a){return Y(),_e(Ci,ca({mode:"out-in"},e.listeners),{default:Z(()=>[$e(e.$slots,"default")]),_:3},16)}var oW=Ze(iW,[["render",aW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function gA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function sW(e){return k(()=>{const r=e.backgroundColor;return r?new JM(r).shade(20).toString():""})}const mA=(e,t)=>{const r=Fe("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":sW(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},lW=tt({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wn},expandOpenIcon:{type:Wn},collapseCloseIcon:{type:Wn},collapseOpenIcon:{type:Wn}}),Mc="ElSubMenu";var Ry=ce({name:Mc,props:lW,setup(e,{slots:t,expose:r}){vy({from:"popper-append-to-body",replacement:"teleported",scope:Mc,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=ct(),{indexPath:i,parentMenu:a}=gA(n,k(()=>e.index)),o=Fe("menu"),s=Fe("sub-menu"),l=Ee("rootMenu");l||na(Mc,"can not inject root menu");const u=Ee(`subMenu:${a.value.uid}`);u||na(Mc,"can not inject sub menu");const c=B({}),f=B({});let d;const h=B(!1),v=B(),p=B(null),g=k(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=k(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:lM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:dy),y=k(()=>u.level===0),_=k(()=>{var R;const j=(R=e.teleported)!=null?R:e.popperAppendToBody;return j===void 0?y.value:j}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=k(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),S=k(()=>{let R=!1;return Object.values(c.value).forEach(j=>{j.active&&(R=!0)}),Object.values(f.value).forEach(j=>{j.active&&(R=!0)}),R}),C=k(()=>l.props.backgroundColor||""),M=k(()=>l.props.activeTextColor||""),P=k(()=>l.props.textColor||""),A=k(()=>l.props.mode),T=fn({index:e.index,indexPath:i,active:S}),D=k(()=>A.value!=="horizontal"?{color:P.value}:{borderBottomColor:S.value?l.props.activeTextColor?M.value:"":"transparent",color:S.value?M.value:P.value}),N=()=>{var R,j,re;return(re=(j=(R=p.value)==null?void 0:R.popperRef)==null?void 0:j.popperInstanceRef)==null?void 0:re.destroy()},H=R=>{R||N()},$=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},G=(R,j=e.showTimeout)=>{var re;R.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=kp(()=>{l.openMenu(e.index,i.value)},j),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},F=(R=!1)=>{var j,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=kp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&R&&((j=n.parent)==null?void 0:j.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};Se(()=>l.props.collapse,R=>H(Boolean(R)));{const R=re=>{f.value[re.index]=re},j=re=>{delete f.value[re.index]};At(`subMenu:${n.uid}`,{addSubMenu:R,removeSubMenu:j,handleMouseleave:F,mouseInChild:h,level:u.level+1})}return r({opened:w}),wt(()=>{l.addSubMenu(T),u.addSubMenu(T)}),Xt(()=>{u.removeSubMenu(T),l.removeSubMenu(T)}),()=>{var R;const j=[(R=t.title)==null?void 0:R.call(t),Ce(lr,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>He(m.value)?Ce(n.appContext.components[m.value]):Ce(m.value)})],re=mA(l.props,u.level+1),oe=l.isMenuPopup?Ce(Ju,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var ye;return Ce("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Ae=>G(Ae,100),onMouseleave:()=>F(!0),onFocus:Ae=>G(Ae,100)},[Ce("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)])])},default:()=>Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:$},j)}):Ce(pt,{},[Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:$},j),Ce(j8,{},{default:()=>{var ye;return nr(Ce("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)]),[[yi,w.value]])}})]);return Ce("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:G,onMouseleave:()=>F(!0),onFocus:G},[oe])}}});const uW=tt({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Le(Array),default:()=>Ya([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Xh=e=>Array.isArray(e)&&e.every(t=>He(t)),cW={close:(e,t)=>He(e)&&Xh(t),open:(e,t)=>He(e)&&Xh(t),select:(e,t,r,n)=>He(e)&&Xh(t)&&Xe(r)&&(n===void 0||n instanceof Promise)};var fW=ce({name:"ElMenu",props:uW,emits:cW,setup(e,{emit:t,slots:r,expose:n}){const i=ct(),a=i.appContext.config.globalProperties.$router,o=B(),s=Fe("menu"),l=Fe("sub-menu"),u=B(-1),c=B(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=B(e.defaultActive),d=B({}),h=B({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const A=f.value&&d.value[f.value];if(!A||e.mode==="horizontal"||e.collapse)return;A.indexPath.forEach(D=>{const N=h.value[D];N&&g(D,N.indexPath)})},g=(A,T)=>{c.value.includes(A)||(e.uniqueOpened&&(c.value=c.value.filter(D=>T.includes(D))),c.value.push(A),t("open",A,T))},m=A=>{const T=c.value.indexOf(A);T!==-1&&c.value.splice(T,1)},y=(A,T)=>{m(A),t("close",A,T)},_=({index:A,indexPath:T})=>{c.value.includes(A)?y(A,T):g(A,T)},b=A=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:T,indexPath:D}=A;if(!(gu(T)||gu(D)))if(e.router&&a){const N=A.route||T,H=a.push(N).then($=>($||(f.value=T),$));t("select",T,D,{index:T,indexPath:D,route:N},H)}else f.value=T,t("select",T,D,{index:T,indexPath:D})},x=A=>{const T=d.value,D=T[A]||f.value&&T[f.value]||T[e.defaultActive];D?f.value=D.index:f.value=A},w=()=>{var A,T;if(!o.value)return-1;const D=Array.from((T=(A=o.value)==null?void 0:A.childNodes)!=null?T:[]).filter(j=>j.nodeName!=="#text"||j.nodeValue),N=64,H=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),$=Number.parseInt(getComputedStyle(o.value).paddingRight,10),G=o.value.clientWidth-H-$;let F=0,R=0;return D.forEach((j,re)=>{F+=j.offsetWidth||0,F<=G-N&&(R=re+1)}),R===D.length?-1:R},S=(A,T=33.34)=>{let D;return()=>{D&&clearTimeout(D),D=setTimeout(()=>{A()},T)}};let C=!0;const M=()=>{const A=()=>{u.value=-1,Ft(()=>{u.value=w()})};C?A():S(A)(),C=!1};Se(()=>e.defaultActive,A=>{d.value[A]||(f.value=""),x(A)}),Se(()=>e.collapse,A=>{A&&(c.value=[])}),Se(d.value,p);let P;io(()=>{e.mode==="horizontal"&&e.ellipsis?P=gs(o,M).stop:P==null||P()});{const A=H=>{h.value[H.index]=H},T=H=>{delete h.value[H.index]};At("rootMenu",fn({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:v,addMenuItem:H=>{d.value[H.index]=H},removeMenuItem:H=>{delete d.value[H.index]},addSubMenu:A,removeSubMenu:T,openMenu:g,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),At(`subMenu:${i.uid}`,{addSubMenu:A,removeSubMenu:T,mouseInChild:B(!1),level:0})}return wt(()=>{e.mode==="horizontal"&&new nW(i.vnode.el,s.namespace.value)}),n({open:T=>{const{indexPath:D}=h.value[T];D.forEach(N=>g(N,D))},close:m,handleResize:M}),()=>{var A,T;let D=(T=(A=r.default)==null?void 0:A.call(r))!=null?T:[];const N=[];if(e.mode==="horizontal"&&o.value){const G=Cf(D),F=u.value===-1?G:G.slice(0,u.value),R=u.value===-1?[]:G.slice(u.value);R!=null&&R.length&&e.ellipsis&&(D=F,N.push(Ce(Ry,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>Ce(lr,{class:l.e("icon-more")},{default:()=>Ce(M3)}),default:()=>R})))}const H=mA(e,0),$=Ce("ul",{key:String(e.collapse),role:"menubar",ref:o,style:H.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...D,...N]);return e.collapseTransition&&e.mode==="vertical"?Ce(oW,()=>$):$}}});const dW=tt({index:{type:Le([String,null]),default:null},route:{type:Le([String,Object])},disabled:Boolean}),hW={click:e=>He(e.index)&&Array.isArray(e.indexPath)},Zh="ElMenuItem",vW=ce({name:Zh,components:{ElTooltip:Ju},props:dW,emits:hW,setup(e,{emit:t}){const r=ct(),n=Ee("rootMenu"),i=Fe("menu"),a=Fe("menu-item");n||na(Zh,"can not inject root menu");const{parentMenu:o,indexPath:s}=gA(r,tn(e,"index")),l=Ee(`subMenu:${o.value.uid}`);l||na(Zh,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),c=fn({index:e.index,indexPath:s,active:u}),f=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",c))};return wt(()=>{l.addSubMenu(c),n.addMenuItem(c)}),Xt(()=>{l.removeSubMenu(c),n.removeMenuItem(c)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:f}}});function pW(e,t,r,n,i,a){const o=_r("el-tooltip");return Y(),me("li",{class:ue([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(Y(),_e(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:Z(()=>[$e(e.$slots,"title")]),default:Z(()=>[ae("div",{class:ue(e.nsMenu.be("tooltip","trigger"))},[$e(e.$slots,"default")],2)]),_:3},8,["effect"])):(Y(),me(pt,{key:1},[$e(e.$slots,"default"),$e(e.$slots,"title")],64))],2)}var yA=Ze(vW,[["render",pW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const gW={title:String},mW="ElMenuItemGroup",yW=ce({name:mW,props:gW,setup(){return{ns:Fe("menu-item-group")}}});function _W(e,t,r,n,i,a){return Y(),me("li",{class:ue(e.ns.b())},[ae("div",{class:ue(e.ns.e("title"))},[e.$slots.title?$e(e.$slots,"title",{key:1}):(Y(),me(pt,{key:0},[Bt(Te(e.title),1)],64))],2),ae("ul",null,[$e(e.$slots,"default")])],2)}var _A=Ze(yW,[["render",_W],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const bW=hr(fW,{MenuItem:yA,MenuItemGroup:_A,SubMenu:Ry}),wW=fa(yA);fa(_A);const xW=fa(Ry),SW=tt({trigger:bu.trigger,placement:Kh.placement,disabled:bu.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Kh.popperOptions,tabindex:Kh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),CW={"update:visible":e=>Br(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},TW="onUpdate:visible",MW=ce({name:"ElPopover"}),AW=ce({...MW,props:SW,emits:CW,setup(e,{expose:t,emit:r}){const n=e,i=k(()=>n[TW]),a=Fe("popover"),o=B(),s=k(()=>{var g;return(g=E(o))==null?void 0:g.popperRef}),l=k(()=>[{width:po(n.width)},n.popperStyle]),u=k(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),c=k(()=>n.transition===`${a.namespace.value}-fade-in-linear`),f=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:f}),(g,m)=>(Y(),_e(E(Ju),ca({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":E(u),"popper-style":E(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":E(c),"onUpdate:visible":E(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:Z(()=>[g.title?(Y(),me("div",{key:0,class:ue(E(a).e("title")),role:"title"},Te(g.title),3)):ke("v-if",!0),$e(g.$slots,"default",{},()=>[Bt(Te(g.content),1)])]),default:Z(()=>[g.$slots.reference?$e(g.$slots,"reference",{key:0}):ke("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var EW=Ze(AW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const h1=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var PW={mounted(e,t){h1(e,t)},updated(e,t){h1(e,t)}};const LW="popover",DW=H3(PW,LW),IW=hr(EW,{directive:DW}),OW=tt({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Wn},inactiveIcon:{type:Wn},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Le(Function)},size:{type:String,validator:z3},tabindex:{type:[String,Number]}}),RW={[go]:e=>Br(e)||He(e)||$t(e),[qp]:e=>Br(e)||He(e)||$t(e),[Kp]:e=>Br(e)||He(e)||$t(e)},kW=["onClick"],NW=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],FW=["aria-hidden"],BW=["aria-hidden"],$W=["aria-hidden"],vg="ElSwitch",HW=ce({name:vg}),zW=ce({...HW,props:OW,emits:RW,setup(e,{expose:t,emit:r}){const n=e,i=ct(),{formItem:a}=Zu(),o=ia(),s=Fe("switch");vy({from:'"value"',replacement:'"model-value" or "v-model"',scope:vg,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var x;return!!((x=i.vnode.props)!=null&&x.value)}));const{inputId:l}=Py(n,{formItemContext:a}),u=rh(k(()=>n.loading)),c=B(n.modelValue!==!1),f=B(),d=B(),h=k(()=>[s.b(),s.m(o.value),s.is("disabled",u.value),s.is("checked",g.value)]),v=k(()=>({width:po(n.width)}));Se(()=>n.modelValue,()=>{c.value=!0}),Se(()=>n.value,()=>{c.value=!1});const p=k(()=>c.value?n.modelValue:n.value),g=k(()=>p.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(p.value)||(r(go,n.inactiveValue),r(qp,n.inactiveValue),r(Kp,n.inactiveValue)),Se(g,x=>{var w;f.value.checked=x,n.validateEvent&&((w=a==null?void 0:a.validate)==null||w.call(a,"change").catch(S=>void 0))});const m=()=>{const x=g.value?n.inactiveValue:n.activeValue;r(go,x),r(qp,x),r(Kp,x),Ft(()=>{f.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:x}=n;if(!x){m();return}const w=x();[jf(w),Br(w)].includes(!0)||na(vg,"beforeChange must return type `Promise` or `boolean`"),jf(w)?w.then(C=>{C&&m()}).catch(C=>{}):w&&m()},_=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),b=()=>{var x,w;(w=(x=f.value)==null?void 0:x.focus)==null||w.call(x)};return wt(()=>{f.value.checked=g.value}),t({focus:b,checked:g}),(x,w)=>(Y(),me("div",{class:ue(E(h)),style:St(E(_)),onClick:Jf(y,["prevent"])},[ae("input",{id:E(l),ref_key:"input",ref:f,class:ue(E(s).e("input")),type:"checkbox",role:"switch","aria-checked":E(g),"aria-disabled":E(u),name:x.name,"true-value":x.activeValue,"false-value":x.inactiveValue,disabled:E(u),tabindex:x.tabindex,onChange:m,onKeydown:UO(y,["enter"])},null,42,NW),!x.inlinePrompt&&(x.inactiveIcon||x.inactiveText)?(Y(),me("span",{key:0,class:ue([E(s).e("label"),E(s).em("label","left"),E(s).is("active",!E(g))])},[x.inactiveIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.inactiveIcon)))]),_:1})):ke("v-if",!0),!x.inactiveIcon&&x.inactiveText?(Y(),me("span",{key:1,"aria-hidden":E(g)},Te(x.inactiveText),9,FW)):ke("v-if",!0)],2)):ke("v-if",!0),ae("span",{ref_key:"core",ref:d,class:ue(E(s).e("core")),style:St(E(v))},[x.inlinePrompt?(Y(),me("div",{key:0,class:ue(E(s).e("inner"))},[x.activeIcon||x.inactiveIcon?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("icon"))},{default:Z(()=>[(Y(),_e(nn(E(g)?x.activeIcon:x.inactiveIcon)))]),_:1},8,["class"])):x.activeText||x.inactiveText?(Y(),me("span",{key:1,class:ue(E(s).is("text")),"aria-hidden":!E(g)},Te(E(g)?x.activeText:x.inactiveText),11,BW)):ke("v-if",!0)],2)):ke("v-if",!0),ae("div",{class:ue(E(s).e("action"))},[x.loading?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("loading"))},{default:Z(()=>[ee(E(hy))]),_:1},8,["class"])):ke("v-if",!0)],2)],6),!x.inlinePrompt&&(x.activeIcon||x.activeText)?(Y(),me("span",{key:1,class:ue([E(s).e("label"),E(s).em("label","right"),E(s).is("active",E(g))])},[x.activeIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.activeIcon)))]),_:1})):ke("v-if",!0),!x.activeIcon&&x.activeText?(Y(),me("span",{key:1,"aria-hidden":!E(g)},Te(x.activeText),9,$W)):ke("v-if",!0)],2)):ke("v-if",!0)],14,kW))}});var WW=Ze(zW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const VW=hr(WW);/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var GW=/["'&<>]/,UW=jW;function jW(e){var t=""+e,r=GW.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?vu(s,u):u(s,l,e))):(t!=="$key"&&Xe(s)&&"$value"in s&&(s=s.$value),[Xe(s)?vu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,c=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},bA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},qW=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},Ja=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Yt(n,t)]={row:n,index:i}}),r};function KW(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(We(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function ky(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function wA(e){return e===""||e!==void 0&&(e=ky(e),Number.isNaN(e)&&(e=80)),e}function XW(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function ZW(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Fl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,be(t.children)&&t.children.forEach(l=>{Fl(e,l,r??!a)})};return Br(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function QW(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const c=u[r];i(c)||a(u,c,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ui;function JW(e,t,r,n,i){i=aM({enterable:!0,showArrow:!0},i);const a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=i.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",i.popperClass||""].join(" "),r=UW(r),m.innerHTML=r,m.style.zIndex=String(n()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){c&&c.update()}ui==null||ui(),ui=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ui),ui=void 0}catch{}};let c=null,f=u,d=ui;i.enterable&&({onOpen:f,onClose:d}=DM({showAfter:i.showAfter,hideAfter:i.hideAfter,open:u,close:ui}));const h=s();h.onmouseenter=f,h.onmouseleave=d;const v=[];if(i.offset&&v.push({name:"offset",options:{offset:[0,i.offset]}}),i.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=i.popperOptions||{};return c=EM(t,h,{placement:i.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ui),c}function xA(e){return e.children?E5(e.children,xA):[e]}function p1(e,t){return e+t.colSpan}const SA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=xA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(p1,0),a=i+l.reduce(p1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ny=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=SA(t,r,n,i);if(s){const c=s==="left";o.push(`${e}-fixed-column--${s}`),c&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!c&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function g1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Fy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=SA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(g1,0):s.right=u.slice(o+1).reverse().reduce(g1,0),s},Ts=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function eV(e){const t=ct(),r=B(!1),n=B([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const c=Ja(n.value,u);n.value=l.reduce((f,d)=>{const h=Yt(d,u);return c[h]&&f.push(d),f},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Fl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=Ja(u,c);n.value=l.reduce((d,h)=>{const v=f[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Ja(n.value,u)[Yt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function tV(e){const t=ct(),r=B(null),n=B(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(E(c)||[]).find(h=>Yt(h,f.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const c=n.value;if(u&&u!==c){n.value=u,t.emit("current-change",n.value,c);return}!u&&c&&(n.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=n.value;if(!c.includes(f)&&f){if(u){const d=Yt(f,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,f)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function rV(e){const t=B([]),r=B({}),n=B(16),i=B(!1),a=B({}),o=B("hasChildren"),s=B("children"),l=ct(),u=k(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=k(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Yt(w,m);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),f=m=>{const y=e.rowKey.value,_={};return QW(m,(b,x,w)=>{const S=Yt(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Yt(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=c.value,w=Object.keys(b),S={};if(w.length){const C=E(r),M=[],P=(T,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||T!=null&&T.expanded);{const N=y||t.value&&t.value.includes(D);return!!(T!=null&&T.expanded||N)}};w.forEach(T=>{const D=C[T],N={...b[T]};if(N.expanded=P(D,T),N.lazy){const{loaded:H=!1,loading:$=!1}=D||{};N.loaded=!!H,N.loading=!!$,M.push(T)}S[T]=N});const A=Object.keys(x);i.value&&A.length&&M.length&&A.forEach(T=>{const D=C[T],N=x[T].children;if(M.includes(T)){if(S[T].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[T].children=N}else{const{loaded:H=!1,loading:$=!1}=D||{};S[T]={lazy:!0,loaded:!!H,loading:!!$,expanded:P(D,T),children:N,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};Se(()=>t.value,()=>{d(!0)}),Se(()=>u.value,()=>{d()}),Se(()=>c.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Yt(m,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Yt(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const nV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:YW(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Df=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,Df(r.children)):t.push(r)}),t};function iV(){var e;const t=ct(),{size:r}=$d((e=t.proxy)==null?void 0:e.$props),n=B(null),i=B([]),a=B([]),o=B(!1),s=B([]),l=B([]),u=B([]),c=B([]),f=B([]),d=B([]),h=B([]),v=B([]),p=[],g=B(0),m=B(0),y=B(0),_=B(!1),b=B([]),x=B(!1),w=B(!1),S=B(null),C=B({}),M=B(null),P=B(null),A=B(null),T=B(null),D=B(null);Se(i,()=>t.state&&G(!1),{deep:!0});const N=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},H=ve=>{var Pe;(Pe=ve.children)==null||Pe.forEach(je=>{je.fixed=ve.fixed,H(je)})},$=()=>{s.value.forEach(nt=>{H(nt)}),c.value=s.value.filter(nt=>nt.fixed===!0||nt.fixed==="left"),f.value=s.value.filter(nt=>nt.fixed==="right"),c.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,c.value.unshift(s.value[0]));const ve=s.value.filter(nt=>!nt.fixed);l.value=[].concat(c.value).concat(ve).concat(f.value);const Pe=Df(ve),je=Df(c.value),Be=Df(f.value);g.value=Pe.length,m.value=je.length,y.value=Be.length,u.value=[].concat(je).concat(Pe).concat(Be),o.value=c.value.length>0||f.value.length>0},G=(ve,Pe=!1)=>{ve&&$(),Pe?t.state.doLayout():t.state.debouncedUpdateLayout()},F=ve=>b.value.includes(ve),R=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},j=()=>{let ve;if(n.value){ve=[];const Pe=Ja(b.value,n.value),je=Ja(i.value,n.value);for(const Be in Pe)We(Pe,Be)&&!je[Be]&&ve.push(Pe[Be].row)}else ve=b.value.filter(Pe=>!i.value.includes(Pe));if(ve.length){const Pe=b.value.filter(je=>!ve.includes(je));b.value=Pe,t.emit("selection-change",Pe.slice())}},re=()=>(b.value||[]).slice(),oe=(ve,Pe=void 0,je=!0)=>{if(Fl(b.value,ve,Pe)){const nt=(b.value||[]).slice();je&&t.emit("select",nt,ve),t.emit("selection-change",nt)}},ye=()=>{var ve,Pe;const je=w.value?!_.value:!(_.value||b.value.length);_.value=je;let Be=!1,nt=0;const it=(Pe=(ve=t==null?void 0:t.store)==null?void 0:ve.states)==null?void 0:Pe.rowKey.value;i.value.forEach((Mt,ri)=>{const ni=ri+nt;S.value?S.value.call(null,Mt,ni)&&Fl(b.value,Mt,je)&&(Be=!0):Fl(b.value,Mt,je)&&(Be=!0),nt+=Q(Yt(Mt,it))}),Be&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},Ae=()=>{const ve=Ja(b.value,n.value);i.value.forEach(Pe=>{const je=Yt(Pe,n.value),Be=ve[je];Be&&(b.value[Be.index]=Pe)})},V=()=>{var ve,Pe,je;if(((ve=i.value)==null?void 0:ve.length)===0){_.value=!1;return}let Be;n.value&&(Be=Ja(b.value,n.value));const nt=function(ni){return Be?!!Be[Yt(ni,n.value)]:b.value.includes(ni)};let it=!0,Mt=0,ri=0;for(let ni=0,sD=(i.value||[]).length;ni{var Pe;if(!t||!t.store)return 0;const{treeData:je}=t.store.states;let Be=0;const nt=(Pe=je.value[ve])==null?void 0:Pe.children;return nt&&(Be+=nt.length,nt.forEach(it=>{Be+=Q(it)})),Be},W=(ve,Pe)=>{Array.isArray(ve)||(ve=[ve]);const je={};return ve.forEach(Be=>{C.value[Be.id]=Pe,je[Be.columnKey||Be.id]=Pe}),je},q=(ve,Pe,je)=>{P.value&&P.value!==ve&&(P.value.order=null),P.value=ve,A.value=Pe,T.value=je},le=()=>{let ve=E(a);Object.keys(C.value).forEach(Pe=>{const je=C.value[Pe];if(!je||je.length===0)return;const Be=bA({columns:u.value},Pe);Be&&Be.filterMethod&&(ve=ve.filter(nt=>je.some(it=>Be.filterMethod.call(null,it,nt,Be))))}),M.value=ve},de=()=>{i.value=nV(M.value,{sortingColumn:P.value,sortProp:A.value,sortOrder:T.value})},J=(ve=void 0)=>{ve&&ve.filter||le(),de()},L=ve=>{const{tableHeaderRef:Pe}=t.refs;if(!Pe)return;const je=Object.assign({},Pe.filterPanels),Be=Object.keys(je);if(Be.length)if(typeof ve=="string"&&(ve=[ve]),Array.isArray(ve)){const nt=ve.map(it=>qW({columns:u.value},it));Be.forEach(it=>{const Mt=nt.find(ri=>ri.id===it);Mt&&(Mt.filteredValue=[])}),t.store.commit("filterChange",{column:nt,values:[],silent:!0,multi:!0})}else Be.forEach(nt=>{const it=u.value.find(Mt=>Mt.id===nt);it&&(it.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},I=()=>{P.value&&(q(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:z,toggleRowExpansion:U,updateExpandRows:K,states:ne,isRowExpanded:fe}=eV({data:i,rowKey:n}),{updateTreeExpandKeys:te,toggleTreeExpansion:ie,updateTreeData:X,loadOrToggle:we,states:he}=rV({data:i,rowKey:n}),{updateCurrentRowData:xe,updateCurrentRow:Oe,setCurrentRowKey:ze,states:rt}=tV({data:i,rowKey:n});return{assertRowKey:N,updateColumns:$,scheduleLayout:G,isSelected:F,clearSelection:R,cleanSelection:j,getSelectionRows:re,toggleRowSelection:oe,_toggleAllSelection:ye,toggleAllSelection:null,updateSelectionByRowKey:Ae,updateAllSelected:V,updateFilters:W,updateCurrentRow:Oe,updateSort:q,execFilter:le,execSort:de,execQuery:J,clearFilter:L,clearSort:I,toggleRowExpansion:U,setExpandRowKeysAdapter:ve=>{z(ve),te(ve)},setCurrentRowKey:ze,toggleRowExpansionAdapter:(ve,Pe)=>{u.value.some(({type:Be})=>Be==="expand")?U(ve,Pe):ie(ve,Pe)},isRowExpanded:fe,updateExpandRows:K,updateCurrentRowData:xe,loadOrToggle:we,updateTreeData:X,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:g,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:x,selectOnIndeterminate:w,selectable:S,filters:C,filteredData:M,sortingColumn:P,sortProp:A,sortOrder:T,hoverRow:D,...ne,...he,...rt}}}function pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=pg(r.children,t)),r)})}function gg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&gg(t.children)}),e.sort((t,r)=>t.no-r.no)}function aV(){const e=ct(),t=iV();return{ns:Fe("table"),...t,mutations:{setData(o,s){const l=E(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),E(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const c=E(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=pg(c,l)):(c.push(s),f=c),gg(f),o._columns.value=f,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(gg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const c=E(o._columns)||[];if(l)l.children.splice(l.children.findIndex(d=>d.id===s.id),1),Ft(()=>{var d;((d=l.children)==null?void 0:d.length)===0&&delete l.children}),o._columns.value=pg(c,l);else{const d=c.indexOf(s);d>-1&&(c.splice(d,1),o._columns.value=c)}const f=o.updateOrderFns.indexOf(u);f>-1&&o.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:c}=s;if(l){const f=E(o.columns).find(d=>d.property===l);f&&(f.order=u,e.store.updateSort(f,l,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:c}=o,f=E(l),d=E(u),h=E(c);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:c}=s,f=e.store.updateFilters(l,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Ft(()=>e.layout.updateScrollY.apply(e.layout))}}}const Bl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function oV(e,t){if(!e)throw new Error("Table is required.");const r=aV();return r.toggleAllSelection=id(r._toggleAllSelection,10),Object.keys(Bl).forEach(n=>{CA(TA(t,n),n,r)}),sV(r,t),r}function sV(e,t){Object.keys(Bl).forEach(r=>{Se(()=>TA(t,r),n=>{CA(n,r,e)})})}function CA(e,t,r){let n=e,i=Bl[t];typeof Bl[t]=="object"&&(i=i.key,n=n||Bl[t].default),r.states[i].value=n}function TA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class lV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=B(null),this.scrollX=B(!1),this.scrollY=B(!1),this.bodyWidth=B(null),this.fixedWidth=B(null),this.rightFixedWidth=B(null),this.gutterWidth=0;for(const r in t)We(t,r)&&(Ct(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Nt)return;const n=this.table.vnode.el;if(t=XW(t),this.height.value=Number(t),!n&&(t||t===0))return Ft(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Nt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),c=l/u;let f=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*c);f+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-f}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:uV}=Cs,cV=ce({name:"ElTableFilterPanel",components:{ElCheckbox:Cs,ElCheckboxGroup:uV,ElScrollbar:VM,ElTooltip:Ju,ElIcon:lr,ArrowDown:lM,ArrowUp:e3},directives:{ClickOutside:t8},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=ct(),{t:r}=py(),n=Fe("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=B(!1),o=B(null),s=k(()=>e.column&&e.column.filters),l=k({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=k({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),c=k(()=>e.column?e.column.filterMultiple:!0),f=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};Se(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=k(()=>{var b,x;return(x=(b=o.value)==null?void 0:b.popperRef)==null?void 0:x.contentRef});return{tooltipVisible:a,multiple:c,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:f,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),fV={key:0},dV=["disabled"],hV=["label","onClick"];function vV(e,t,r,n,i,a){const o=_r("el-checkbox"),s=_r("el-checkbox-group"),l=_r("el-scrollbar"),u=_r("arrow-up"),c=_r("arrow-down"),f=_r("el-icon"),d=_r("el-tooltip"),h=ZC("click-outside");return Y(),_e(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:Z(()=>[e.multiple?(Y(),me("div",fV,[ae("div",{class:ue(e.ns.e("content"))},[ee(l,{"wrap-class":e.ns.e("wrap")},{default:Z(()=>[ee(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:ue(e.ns.e("checkbox-group"))},{default:Z(()=>[(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),_e(o,{key:v.value,label:v.value},{default:Z(()=>[Bt(Te(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ae("div",{class:ue(e.ns.e("bottom"))},[ae("button",{class:ue({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Te(e.t("el.table.confirmFilter")),11,dV),ae("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Te(e.t("el.table.resetFilter")),1)],2)])):(Y(),me("ul",{key:1,class:ue(e.ns.e("list"))},[ae("li",{class:ue([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Te(e.t("el.table.clearFilter")),3),(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),me("li",{key:v.value,class:ue([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Te(v.text),11,hV))),128))],2))]),default:Z(()=>[nr((Y(),me("span",{class:ue([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[ee(f,null,{default:Z(()=>[e.column.filterOpened?(Y(),_e(u,{key:0})):(Y(),_e(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var pV=Ze(cV,[["render",vV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function MA(e){const t=ct();Gd(()=>{r.value.addObserver(t)}),wt(()=>{n(r.value),i(r.value)}),Hu(()=>{n(r.value),i(r.value)}),ks(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,f=s.length;c{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=l.length;c{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=B(null),l=B(!1),u=B({}),c=(p,g)=>{if(Nt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Zo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=m==null?void 0:m.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=P=>{const A=P.clientX-u.value.startMouseLeft,T=u.value.startLeft+A;S.style.left=`${Math.max(w,T)}px`},M=()=>{if(l.value){const{startColumnLeft:P,startLeft:A}=u.value,D=Number.parseInt(S.style.left,10)-P;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-P,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{ss(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},f=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Ol(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Ol(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Nt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Ol(b,"noclick")){ss(b,"noclick");return}if(!g.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=g,w=g.property),_?S=g.order=_:S=g.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function mV(e){const t=Ee(Qn),r=Fe("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:c}));const h=Fy(l,c.fixed,e.store,u);return Ts(h,"left"),Ts(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,c)=>{const f=Ny(r.b(),l,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:c})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const AA=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,AA(r.children))):t.push(r)}),t},yV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function _V(e){const t=Ee(Qn),r=k(()=>yV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var bV=ce({name:"ElTableHeader",components:{ElCheckbox:Cs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=ct(),n=Ee(Qn),i=Fe("table"),a=B({}),{onColumnsChange:o,onScrollableChange:s}=MA(n);wt(async()=>{await Ft(),await Ft();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=gV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=mV(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=_V(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return Ce("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>Ce("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Ce("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>c(b,y),onMouseout:d},[Ce("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&Ce("span",{onClick:b=>f(b,y),class:"caret-wrapper"},[Ce("i",{onClick:b=>f(b,y,"ascending"),class:"sort-caret ascending"}),Ce("i",{onClick:b=>f(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Ce(pV,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function wV(e){const t=Ee(Qn),r=B(""),n=B(Ce("div")),{nextZIndex:i}=Ay(),a=(h,v,p)=>{var g;const m=t,y=Qh(h);let _;const b=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;y&&(_=v1({columns:e.store.states.columns.value},y,b),_&&(m==null||m.emit(`cell-${p}`,v,_,y,h))),m==null||m.emit(`row-${p}`,v,_,h)},o=(h,v)=>{a(h,v,"dblclick")},s=(h,v)=>{e.store.commit("setCurrentRow",v),a(h,v,"click")},l=(h,v)=>{a(h,v,"contextmenu")},u=id(h=>{e.store.commit("setHoverRow",h)},30),c=id(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:o,handleClick:s,handleContextMenu:l,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(h,v,p)=>{var g;const m=t,y=Qh(h),_=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;if(y){const C=v1({columns:e.store.states.columns.value},y,_),M=m.hoverState={cell:y,column:C,row:v};m==null||m.emit("cell-mouse-enter",M.row,M.column,M.cell,h)}if(!p)return;const b=h.target.querySelector(".cell");if(!(Ol(b,`${_}-tooltip`)&&b.childNodes.length))return;const x=document.createRange();x.setStart(b,0),x.setEnd(b,b.childNodes.length);const w=Math.round(x.getBoundingClientRect().width),S=(Number.parseInt(Mb(b,"paddingLeft"),10)||0)+(Number.parseInt(Mb(b,"paddingRight"),10)||0);(w+S>b.offsetWidth||b.scrollWidth>b.offsetWidth)&&JW(t==null?void 0:t.refs.tableWrapper,y,y.innerText||y.textContent,i,p)},handleCellMouseLeave:h=>{if(!Qh(h))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,h)},tooltipContent:r,tooltipTrigger:n}}function xV(e){const t=Ee(Qn),r=Fe("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const p=Fy(c,e==null?void 0:e.fixed,e.store);return Ts(p,"left"),Ts(p,"right"),Object.assign({},v,p)},getCellClass:(u,c,f,d,h)=>{const v=Ny(r.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(f,f+c);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function SV(e){const t=Ee(Qn),r=Fe("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=wV(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=xV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const M=t.props.rowKey;return M?Yt(S,M):C},b=(S,C,M,P=!1)=>{const{tooltipEffect:A,tooltipOptions:T,store:D}=e,{indent:N,columns:H}=D.states,$=h(S,C);let G=!0;return M&&($.push(r.em("row",`level-${M.level}`)),G=M.display),Ce("tr",{style:[G?null:{display:"none"},d(S,C)],class:$,key:_(S,C),onDblclick:R=>n(R,S),onClick:R=>i(R,S),onContextmenu:R=>a(R,S),onMouseenter:()=>o(C),onMouseleave:s},H.value.map((R,j)=>{const{rowspan:re,colspan:oe}=g(S,R,C,j);if(!re||!oe)return null;const ye={...R};ye.realWidth=m(H.value,oe,j);const Ae={store:e.store,_self:e.context||t,column:ye,row:S,$index:C,cellIndex:j,expanded:P};j===y.value&&M&&(Ae.treeNode={indent:M.level*N.value,level:M.level},typeof M.expanded=="boolean"&&(Ae.treeNode.expanded=M.expanded,"loading"in M&&(Ae.treeNode.loading=M.loading),"noLazyChildren"in M&&(Ae.treeNode.noLazyChildren=M.noLazyChildren)));const V=`${C},${j}`,Q=ye.columnKey||ye.rawColumnKey||"",W=x(j,R,Ae),q=R.showOverflowTooltip&&aM({effect:A},T,R.showOverflowTooltip);return Ce("td",{style:v(C,j,S,R),class:p(C,j,S,R,oe-1),key:`${Q}${V}`,rowspan:re,colspan:oe,onMouseenter:le=>l(le,S,q),onMouseleave:u},[W])}))},x=(S,C,M)=>C.renderCell(M);return{wrappedRowRender:(S,C)=>{const M=e.store,{isRowExpanded:P,assertRowKey:A}=M,{treeData:T,lazyTreeNodeMap:D,childrenColumnName:N,rowKey:H}=M.states,$=M.states.columns.value;if($.some(({type:F})=>F==="expand")){const F=P(S),R=b(S,C,void 0,F),j=t.renderExpanded;return F?j?[[R,Ce("tr",{key:`expanded-row__${R.key}`},[Ce("td",{colspan:$.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[j({row:S,$index:C,store:M,expanded:F})])])]]:(console.error("[Element Error]renderExpanded is required."),R):[[R]]}else if(Object.keys(T.value).length){A();const F=Yt(S,H.value);let R=T.value[F],j=null;R&&(j={expanded:R.expanded,level:R.level,display:!0},typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(j.noLazyChildren=!(R.children&&R.children.length)),j.loading=R.loading));const re=[b(S,C,j)];if(R){let oe=0;const ye=(V,Q)=>{V&&V.length&&Q&&V.forEach(W=>{const q={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},le=Yt(W,H.value);if(le==null)throw new Error("For nested data item, row-key is required.");if(R={...T.value[le]},R&&(q.expanded=R.expanded,R.level=R.level||q.level,R.display=!!(R.expanded&&q.display),typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(q.noLazyChildren=!(R.children&&R.children.length)),q.loading=R.loading)),oe++,re.push(b(W,C+oe,q)),R){const de=D.value[le]||W[N.value];ye(de,R)}})};R.display=!0;const Ae=D.value[F]||S[N.value];ye(Ae,R)}return re}else return b(S,C,void 0)},tooltipContent:c,tooltipTrigger:f}}const CV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var TV=ce({name:"ElTableBody",props:CV,setup(e){const t=ct(),r=Ee(Qn),n=Fe("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=SV(e),{onColumnsChange:s,onScrollableChange:l}=MA(r);return Se(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Nt)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[c],p=h[u];v&&ss(v,"hover-row"),p&&Zo(p,"hover-row")})}),ks(()=>{var u;(u=ui)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Ce("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function By(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Ce("colgroup",{},r.map(i=>Ce("col",n(i))))}By.props=["columns","tableLayout"];function MV(){const e=Ee(Qn),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function AV(e){const{columns:t}=MV(),r=Fe("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ny(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Fy(o,a.fixed,e.store);return Ts(s,"left"),Ts(s,"right"),s},columns:t}}var EV=ce({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=AV(e);return{ns:Fe("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const c=o.map(v=>Number(v[l.property])),f=[];let d=!0;c.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];f.push(p?p.length:0)}});const h=Math.max.apply(null,f);d?s[u]="":s[u]=c.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),Ce("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[By({columns:e}),Ce("tbody",[Ce("tr",{},[...e.map((l,u)=>Ce("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[Ce("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function PV(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function LV(e,t,r,n){const i=B(!1),a=B(null),o=B(!1),s=F=>{o.value=F},l=B({width:null,height:null,headerHeight:null}),u=B(!1),c={display:"inline-block",verticalAlign:"middle"},f=B(),d=B(0),h=B(0),v=B(0),p=B(0);io(()=>{t.setHeight(e.height)}),io(()=>{t.setMaxHeight(e.maxHeight)}),Se(()=>[e.currentRowKey,r.states.rowKey],([F,R])=>{!E(R)||!E(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),Se(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),io(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(F,R)=>{const{pixelX:j,pixelY:re}=R;Math.abs(j)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=R.pixelX/5)},y=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};wt(async()=>{await Ft(),r.updateColumns(),M(),requestAnimationFrame(b);const F=n.vnode.el,R=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:f.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&R?R.offsetHeight:null},r.states.columns.value.forEach(j=>{j.filteredValue&&j.filteredValue.length&&n.store.commit("filterChange",{column:j,values:j.filteredValue,silent:!0})}),n.$ready=!0});const x=(F,R)=>{if(!F)return;const j=Array.from(F.classList).filter(re=>!re.startsWith("is-scrolling-"));j.push(t.scrollX.value?R:"is-scrolling-none"),F.className=j.join(" ")},w=F=>{const{tableWrapper:R}=n.refs;x(R,F)},S=F=>{const{tableWrapper:R}=n.refs;return!!(R&&R.classList.contains(F))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";S(V)||w(V);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:R,offsetWidth:j,scrollWidth:re}=F,{headerWrapper:oe,footerWrapper:ye}=n.refs;oe&&(oe.scrollLeft=R),ye&&(ye.scrollLeft=R);const Ae=re-j-1;R>=Ae?w("is-scrolling-right"):w(R===0?"is-scrolling-left":"is-scrolling-middle")},M=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&xn(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?gs(n.vnode.el,P):xn(window,"resize",P),gs(n.refs.bodyWrapper,()=>{var F,R;P(),(R=(F=n.refs)==null?void 0:F.scrollBarRef)==null||R.update()}))},P=()=>{var F,R,j;const re=n.vnode.el;if(!n.$ready||!re)return;let oe=!1;const{width:ye,height:Ae,headerHeight:V}=l.value,Q=f.value=re.offsetWidth;ye!==Q&&(oe=!0);const W=re.offsetHeight;(e.height||y.value)&&Ae!==W&&(oe=!0);const q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(q==null?void 0:q.offsetHeight)!==V&&(oe=!0),d.value=((R=n.refs.tableWrapper)==null?void 0:R.scrollHeight)||0,v.value=(q==null?void 0:q.scrollHeight)||0,p.value=((j=n.refs.footerWrapper)==null?void 0:j.offsetHeight)||0,h.value=d.value-v.value-p.value,oe&&(l.value={width:Q,height:W,headerHeight:e.showHeader&&(q==null?void 0:q.offsetHeight)||0},b())},A=ia(),T=k(()=>{const{bodyWidth:F,scrollY:R,gutterWidth:j}=t;return F.value?`${F.value-(R.value?j:0)}px`:""}),D=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&h.value&&(F=`${h.value}px`);const R=f.value;return{width:R?`${R}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),$=k(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const F=e.maxHeight;if(d.value>=Number(F))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:N,handleFixedMousewheel:(F,R)=>{const j=n.refs.bodyWrapper;if(Math.abs(R.spinY)>0){const re=j.scrollTop;R.pixelY<0&&re!==0&&F.preventDefault(),R.pixelY>0&&j.scrollHeight-j.clientHeight>re&&F.preventDefault(),j.scrollTop+=Math.ceil(R.pixelY/5)}else j.scrollLeft+=Math.ceil(R.pixelX/5)},resizeProxyVisible:o,bodyWidth:T,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:H,scrollbarStyle:$}}function DV(e){const t=B(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};wt(()=>{r()}),ks(()=>{var n;(n=t.value)==null||n.disconnect()})}var IV={data:{type:Array,default:()=>[]},size:Xu,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const OV=()=>{const e=B(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&$t(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let RV=1;const kV=ce({name:"ElTable",directives:{Mousewheel:l8},components:{TableHeader:bV,TableBody:TV,TableFooter:EV,ElScrollbar:VM,hColgroup:By},props:IV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=py(),r=Fe("table"),n=ct();At(Qn,n);const i=oV(n,e);n.store=i;const a=new lV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=PV(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:P,resizeState:A,doLayout:T,tableBodyStyles:D,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G}=LV(e,a,i,n),{scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}=OV(),oe=id(T,50),ye=`${r.namespace.value}-table_${RV++}`;n.tableId=ye,n.state={isGroup:_,resizeState:A,doLayout:T,debouncedUpdateLayout:oe};const Ae=k(()=>e.sumText||t("el.table.sumText")),V=k(()=>e.emptyText||t("el.table.emptyText"));return DV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:ye,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:M,resizeState:A,isGroup:_,bodyWidth:P,tableBodyStyles:D,emptyBlockStyle:S,debouncedUpdateLayout:oe,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:T,sort:p,t,setDragVisible:y,context:n,computedSumText:Ae,computedEmptyText:V,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G,scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}}}),NV=["data-prefix"],FV={ref:"hiddenColumns",class:"hidden-columns"};function BV(e,t,r,n,i,a){const o=_r("hColgroup"),s=_r("table-header"),l=_r("table-body"),u=_r("el-scrollbar"),c=_r("table-footer"),f=ZC("mousewheel");return Y(),me("div",{ref:"tableWrapper",class:ue([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:St(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...d)=>e.handleMouseLeave&&e.handleMouseLeave(...d))},[ae("div",{class:ue(e.ns.e("inner-wrapper")),style:St(e.tableInnerStyle)},[ae("div",FV,[$e(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?nr((Y(),me("div",{key:0,ref:"headerWrapper",class:ue(e.ns.e("header-wrapper"))},[ae("table",{ref:"tableHeader",class:ue(e.ns.e("header")),style:St(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ee(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):ke("v-if",!0),ae("div",{ref:"bodyWrapper",class:ue(e.ns.e("body-wrapper"))},[ee(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:Z(()=>[ae("table",{ref:"tableBody",class:ue(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:St({width:e.bodyWidth,tableLayout:e.tableLayout})},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(Y(),_e(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):ke("v-if",!0),ee(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(Y(),me("div",{key:0,ref:"emptyBlock",style:St(e.emptyBlockStyle),class:ue(e.ns.e("empty-block"))},[ae("span",{class:ue(e.ns.e("empty-text"))},[$e(e.$slots,"empty",{},()=>[Bt(Te(e.computedEmptyText),1)])],2)],6)):ke("v-if",!0),e.$slots.append?(Y(),me("div",{key:1,ref:"appendWrapper",class:ue(e.ns.e("append-wrapper"))},[$e(e.$slots,"append")],2)):ke("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?nr((Y(),me("div",{key:1,ref:"footerWrapper",class:ue(e.ns.e("footer-wrapper"))},[ee(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:St(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[yi,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):ke("v-if",!0),e.border||e.isGroup?(Y(),me("div",{key:2,class:ue(e.ns.e("border-left-patch"))},null,2)):ke("v-if",!0)],6),nr(ae("div",{ref:"resizeProxy",class:ue(e.ns.e("column-resize-proxy"))},null,2),[[yi,e.resizeProxyVisible]])],46,NV)}var $V=Ze(kV,[["render",BV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const HV={selection:"table-column--selection",expand:"table__expand-column"},zV={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},WV=e=>HV[e]||"",VV={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Ce(Cs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return Ce(Cs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Ce("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Ce("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Ce(lr,null,{default:()=>[Ce(dy)]})]})},sortable:!1,resizable:!1}};function GV({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&Sf(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function UV({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Ce("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Ce("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=dy;t.loading&&(l=hy),a.push(Ce("div",{class:s,onClick:o},{default:()=>[Ce(lr,{class:{[i.is("loading")]:t.loading}},{default:()=>[Ce(l)]})]}))}else a.push(Ce("span",{class:i.e("placeholder")}));return a}function m1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function jV(e,t){const r=ct();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{let f=c;u==="width"&&l==="realWidth"&&(f=ky(c)),u==="minWidth"&&l==="realMinWidth"&&(f=wA(c)),r.columnConfig.value[u]=f,r.columnConfig.value[l]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{r.columnConfig.value[l]=c})})}}}function YV(e,t,r){const n=ct(),i=B(""),a=B(!1),o=B(),s=B(),l=Fe("table");io(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),io(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),c=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:x}=b.states,w=x.value;return w&&Object.keys(w).length>0}),f=B(ky(e.width)),d=B(wA(e.minWidth)),h=b=>(f.value&&(b.width=f.value),d.value&&(b.minWidth=d.value),!f.value&&d.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const x=b.type,w=VV[x]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const S=WV(x);if(S){const C=`${E(l.namespace)}-${S}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>x(w)):x(b);function x(w){var S;((S=w==null?void 0:w.type)==null?void 0:S.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>{n.columnConfig.value.label;const S=t.header;return S?S(w):b.label});let x=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Ce("div",{class:"cell"},[x(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(x=x||GV,b.renderCell=w=>{let S=null;if(t.default){const D=t.default(w);S=D.some(N=>N.type!==xr)?D:x(w)}else S=x(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(D=>D.type==="default"),P=c.value&&w.cellIndex===M,A=UV(w,P),T={class:"cell",style:{}};return b.showOverflowTooltip&&(T.class=`${T.class} ${E(l.namespace)}-tooltip`,T.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(S),Ce("div",T,[A,S])}),b},getPropsData:(...b)=>b.reduce((x,w)=>(Array.isArray(w)&&w.forEach(S=>{x[S]=e[S]}),x),{}),getColumnElIndex:(b,x)=>Array.prototype.indexOf.call(b,x),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var qV={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let KV=1;var EA=ce({name:"ElTableColumn",components:{ElCheckbox:Cs},props:qV,setup(e,{slots:t}){const r=ct(),n=B({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=jV(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g,updateColumnOrder:m}=YV(e,t,i),y=c.value;s.value=`${y.tableId||y.columnId}_column_${KV++}`,Gd(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,x={...zV[_],id:s.value,type:_,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let P=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);P=KW(x,P),P=ZW(h,f,d)(P),n.value=P,a(),o()}),wt(()=>{var _;const b=c.value,x=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(x||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,m)}),Xt(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,m)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===pt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!He(s==null?void 0:s.children)&&i.push(s)});return Ce("div",i)}catch{return Ce("div",[])}}});const XV=hr($V,{TableColumn:EA}),ZV=fa(EA),PA=["success","info","warning","error"],mr=Ya({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Nt?document.body:void 0}),QV=tt({customClass:{type:String,default:mr.customClass},center:{type:Boolean,default:mr.center},dangerouslyUseHTMLString:{type:Boolean,default:mr.dangerouslyUseHTMLString},duration:{type:Number,default:mr.duration},icon:{type:Wn,default:mr.icon},id:{type:String,default:mr.id},message:{type:Le([String,Object,Function]),default:mr.message},onClose:{type:Le(Function),required:!1},showClose:{type:Boolean,default:mr.showClose},type:{type:String,values:PA,default:mr.type},offset:{type:Number,default:mr.offset},zIndex:{type:Number,default:mr.zIndex},grouping:{type:Boolean,default:mr.grouping},repeatNum:{type:Number,default:mr.repeatNum}}),JV={destroy:()=>!0},Sn=LC([]),eG=e=>{const t=Sn.findIndex(i=>i.id===e),r=Sn[t];let n;return t>0&&(n=Sn[t-1]),{current:r,prev:n}},tG=e=>{const{prev:t}=eG(e);return t?t.vm.exposed.bottom.value:0},rG=(e,t)=>Sn.findIndex(n=>n.id===e)>0?20:t,nG=["id"],iG=["innerHTML"],aG=ce({name:"ElMessage"}),oG=ce({...aG,props:QV,emits:JV,setup(e,{expose:t}){const r=e,{Close:n}=B3,{ns:i,zIndex:a}=sH("message"),{currentZIndex:o,nextZIndex:s}=a,l=B(),u=B(!1),c=B(0);let f;const d=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),h=k(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Ab[S]}}),v=k(()=>r.icon||Ab[r.type]||""),p=k(()=>tG(r.id)),g=k(()=>rG(r.id,r.offset)+p.value),m=k(()=>c.value+g.value),y=k(()=>({top:`${g.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:f}=kp(()=>{x()},r.duration))}function b(){f==null||f()}function x(){u.value=!1}function w({code:S}){S===Ot.esc&&x()}return wt(()=>{_(),s(),u.value=!0}),Se(()=>r.repeatNum,()=>{b(),_()}),xn(document,"keydown",w),gs(l,()=>{c.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:m,close:x}),(S,C)=>(Y(),_e(Ci,{name:E(i).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:C[0]||(C[0]=M=>S.$emit("destroy")),persisted:""},{default:Z(()=>[nr(ae("div",{id:S.id,ref_key:"messageRef",ref:l,class:ue([E(i).b(),{[E(i).m(S.type)]:S.type&&!S.icon},E(i).is("center",S.center),E(i).is("closable",S.showClose),S.customClass]),style:St(E(y)),role:"alert",onMouseenter:b,onMouseleave:_},[S.repeatNum>1?(Y(),_e(E(E6),{key:0,value:S.repeatNum,type:E(d),class:ue(E(i).e("badge"))},null,8,["value","type","class"])):ke("v-if",!0),E(v)?(Y(),_e(E(lr),{key:1,class:ue([E(i).e("icon"),E(h)])},{default:Z(()=>[(Y(),_e(nn(E(v))))]),_:1},8,["class"])):ke("v-if",!0),$e(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(Y(),me(pt,{key:1},[ke(" Caution here, message could've been compromised, never use user's input as message "),ae("p",{class:ue(E(i).e("content")),innerHTML:S.message},null,10,iG)],2112)):(Y(),me("p",{key:0,class:ue(E(i).e("content"))},Te(S.message),3))]),S.showClose?(Y(),_e(E(lr),{key:2,class:ue(E(i).e("closeBtn")),onClick:Jf(x,["stop"])},{default:Z(()=>[ee(E(n))]),_:1},8,["class","onClick"])):ke("v-if",!0)],46,nG),[[yi,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var sG=Ze(oG,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let lG=1;const LA=e=>{const t=!e||He(e)||ta(e)||De(e)?{message:e}:e,r={...mr,...t};if(!r.appendTo)r.appendTo=document.body;else if(He(r.appendTo)){let n=document.querySelector(r.appendTo);ys(n)||(n=document.body),r.appendTo=n}return r},uG=e=>{const t=Sn.indexOf(e);if(t===-1)return;Sn.splice(t,1);const{handler:r}=e;r.close()},cG=({appendTo:e,...t},r)=>{const n=`message_${lG++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),uG(c)},onDestroy:()=>{O_(null,a)}},s=ee(sG,o,De(o.message)||ta(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ms._context,O_(s,a),e.appendChild(a.firstElementChild);const l=s.component,c={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return c},Ms=(e={},t)=>{if(!Nt)return{close:()=>{}};if($t(Qp.max)&&Sn.length>=Qp.max)return{close:()=>{}};const r=LA(e);if(r.grouping&&Sn.length){const i=Sn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=cG(r,t);return Sn.push(n),n.handler};PA.forEach(e=>{Ms[e]=(t={},r)=>{const n=LA(t);return Ms({...n,type:e},r)}});function fG(e){for(const t of Sn)(!e||e===t.props.type)&&t.handler.close()}Ms.closeAll=fG;Ms._context=null;const DA=$3(Ms,"$message"),dG={id:"app"},hG={class:"grid-content header-color"},vG={class:"header-content"},pG=ae("div",{class:"brand"},[ae("a",{href:"#"},"frp")],-1),gG={class:"dark-switch"},mG=ae("span",null,"Proxies",-1),yG={id:"content"},_G=ae("footer",null,null,-1),bG=ce({__name:"App",setup(e){const t=NR(),r=B(t),n=nR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=VW,l=wW,u=xW,c=bW,f=pA,d=_r("router-view"),h=vA;return Y(),me("div",dG,[ae("header",hG,[ae("div",vG,[pG,ae("div",gG,[ee(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:E(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ae("section",null,[ee(h,null,{default:Z(()=>[ee(f,{id:"side-nav",xs:24,md:4},{default:Z(()=>[ee(c,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:Z(()=>[ee(l,{index:"/"},{default:Z(()=>[Bt("Overview")]),_:1}),ee(u,{index:"/proxies"},{title:Z(()=>[mG]),default:Z(()=>[ee(l,{index:"/proxies/tcp"},{default:Z(()=>[Bt("TCP")]),_:1}),ee(l,{index:"/proxies/udp"},{default:Z(()=>[Bt("UDP")]),_:1}),ee(l,{index:"/proxies/http"},{default:Z(()=>[Bt("HTTP")]),_:1}),ee(l,{index:"/proxies/https"},{default:Z(()=>[Bt("HTTPS")]),_:1}),ee(l,{index:"/proxies/stcp"},{default:Z(()=>[Bt("STCP")]),_:1}),ee(l,{index:"/proxies/sudp"},{default:Z(()=>[Bt("SUDP")]),_:1})]),_:1}),ee(l,{index:""},{default:Z(()=>[Bt("Help")]),_:1})]),_:1})]),_:1}),ee(f,{xs:24,md:20},{default:Z(()=>[ae("div",yG,[ee(d)])]),_:1})]),_:1})]),_G])}}});/*! + * vue-router v4.1.6 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */const qo=typeof window<"u";function wG(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const lt=Object.assign;function Jh(e,t){const r={};for(const n in t){const i=t[n];r[n]=En(i)?i.map(e):e(i)}return r}const $l=()=>{},En=Array.isArray,xG=/\/$/,SG=e=>e.replace(xG,"");function ev(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=AG(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function CG(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function y1(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function TG(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&As(t.matched[n],r.matched[i])&&IA(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function As(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function IA(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!MG(e[r],t[r]))return!1;return!0}function MG(e,t){return En(e)?_1(e,t):En(t)?_1(t,e):e===t}function _1(e,t){return En(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function AG(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/");let i=r.length-1,a,o;for(a=0;a1&&i--;else break;return r.slice(0,i).join("/")+"/"+n.slice(a-(a===n.length?1:0)).join("/")}var wu;(function(e){e.pop="pop",e.push="push"})(wu||(wu={}));var Hl;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Hl||(Hl={}));function EG(e){if(!e)if(qo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),SG(e)}const PG=/^[^#]+#/;function LG(e,t){return e.replace(PG,"#")+t}function DG(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const ih=()=>({left:window.pageXOffset,top:window.pageYOffset});function IG(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=DG(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function b1(e,t){return(history.state?history.state.position-t:-1)+e}const mg=new Map;function OG(e,t){mg.set(e,t)}function RG(e){const t=mg.get(e);return mg.delete(e),t}let kG=()=>location.protocol+"//"+location.host;function OA(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),y1(l,"")}return y1(r,e)+n+i}function NG(e,t,r,n){let i=[],a=[],o=null;const s=({state:d})=>{const h=OA(e,location),v=r.value,p=t.value;let g=0;if(d){if(r.value=h,t.value=d,o&&o===v){o=null;return}g=p?d.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,v,{delta:g,type:wu.pop,direction:g?g>0?Hl.forward:Hl.back:Hl.unknown})})};function l(){o=r.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return a.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(lt({},d.state,{scroll:ih()}),"")}function f(){for(const d of a)d();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",c),{pauseListeners:l,listen:u,destroy:f}}function w1(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?ih():null}}function FG(e){const{history:t,location:r}=window,n={value:OA(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,c){const f=e.indexOf("#"),d=f>-1?(r.host&&document.querySelector("base")?e:e.slice(f))+l:kG()+e+l;try{t[c?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),r[c?"replace":"assign"](d)}}function o(l,u){const c=lt({},t.state,w1(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,c,!0),n.value=l}function s(l,u){const c=lt({},i.value,t.state,{forward:l,scroll:ih()});a(c.current,c,!0);const f=lt({},w1(n.value,l,null),{position:c.position+1},u);a(l,f,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function BG(e){e=EG(e);const t=FG(e),r=NG(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=lt({location:"",base:e,go:n,createHref:LG.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function $G(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),BG(e)}function HG(e){return typeof e=="string"||e&&typeof e=="object"}function RA(e){return typeof e=="string"||typeof e=="symbol"}const Ii={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},kA=Symbol("");var x1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(x1||(x1={}));function Es(e,t){return lt(new Error,{type:e,[kA]:!0},t)}function ai(e,t){return e instanceof Error&&kA in e&&(t==null||!!(e.type&t))}const S1="[^/]+?",zG={sensitive:!1,strict:!1,start:!0,end:!0},WG=/[.+*?^${}()[\]/\\]/g;function VG(e,t){const r=lt({},zG,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const c=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function UG(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const jG={type:0,value:""},YG=/[a-zA-Z0-9_]/;function qG(e){if(!e)return[[]];if(e==="/")return[[jG]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",c="";function f(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{o(y)}:$l}function o(c){if(RA(c)){const f=n.get(c);f&&(n.delete(c),r.splice(r.indexOf(f),1),f.children.forEach(o),f.alias.forEach(o))}else{const f=r.indexOf(c);f>-1&&(r.splice(f,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return r}function l(c){let f=0;for(;f=0&&(c.record.path!==r[f].record.path||!NA(c,r[f]));)f++;r.splice(f,0,c),c.record.name&&!M1(c)&&n.set(c.record.name,c)}function u(c,f){let d,h={},v,p;if("name"in c&&c.name){if(d=n.get(c.name),!d)throw Es(1,{location:c});p=d.record.name,h=lt(T1(f.params,d.keys.filter(y=>!y.optional).map(y=>y.name)),c.params&&T1(c.params,d.keys.map(y=>y.name))),v=d.stringify(h)}else if("path"in c)v=c.path,d=r.find(y=>y.re.test(v)),d&&(h=d.parse(v),p=d.record.name);else{if(d=f.name?n.get(f.name):r.find(y=>y.re.test(f.path)),!d)throw Es(1,{location:c,currentLocation:f});p=d.record.name,h=lt({},f.params,c.params),v=d.stringify(h)}const g=[];let m=d;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:v,params:h,matched:g,meta:JG(g)}}return e.forEach(c=>a(c)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function T1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function ZG(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:QG(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function QG(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="boolean"?r:r[n];return t}function M1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function JG(e){return e.reduce((t,r)=>lt(t,r.meta),{})}function A1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function NA(e,t){return t.children.some(r=>r===e||NA(e,r))}const FA=/#/g,eU=/&/g,tU=/\//g,rU=/=/g,nU=/\?/g,BA=/\+/g,iU=/%5B/g,aU=/%5D/g,$A=/%5E/g,oU=/%60/g,HA=/%7B/g,sU=/%7C/g,zA=/%7D/g,lU=/%20/g;function $y(e){return encodeURI(""+e).replace(sU,"|").replace(iU,"[").replace(aU,"]")}function uU(e){return $y(e).replace(HA,"{").replace(zA,"}").replace($A,"^")}function yg(e){return $y(e).replace(BA,"%2B").replace(lU,"+").replace(FA,"%23").replace(eU,"%26").replace(oU,"`").replace(HA,"{").replace(zA,"}").replace($A,"^")}function cU(e){return yg(e).replace(rU,"%3D")}function fU(e){return $y(e).replace(FA,"%23").replace(nU,"%3F")}function dU(e){return e==null?"":fU(e).replace(tU,"%2F")}function ld(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function hU(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&yg(a)):[n&&yg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function vU(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=En(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const pU=Symbol(""),P1=Symbol(""),Hy=Symbol(""),WA=Symbol(""),_g=Symbol("");function Zs(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function Gi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=f=>{f===!1?s(Es(4,{from:r,to:t})):f instanceof Error?s(f):HG(f)?s(Es(2,{from:t,to:f})):(a&&n.enterCallbacks[i]===a&&typeof f=="function"&&a.push(f),o())},u=e.call(n&&n.instances[i],t,r,l);let c=Promise.resolve(u);e.length<3&&(c=c.then(l)),c.catch(f=>s(f))})}function tv(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(gU(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Gi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const c=wG(u)?u.default:u;a.components[o]=c;const d=(c.__vccOpts||c)[t];return d&&Gi(d,r,n,a,o)()}))}}return i}function gU(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function L1(e){const t=Ee(Hy),r=Ee(WA),n=k(()=>t.resolve(E(e.to))),i=k(()=>{const{matched:l}=n.value,{length:u}=l,c=l[u-1],f=r.matched;if(!c||!f.length)return-1;const d=f.findIndex(As.bind(null,c));if(d>-1)return d;const h=D1(l[u-2]);return u>1&&D1(c)===h&&f[f.length-1].path!==h?f.findIndex(As.bind(null,l[u-2])):d}),a=k(()=>i.value>-1&&bU(r.params,n.value.params)),o=k(()=>i.value>-1&&i.value===r.matched.length-1&&IA(r.params,n.value.params));function s(l={}){return _U(l)?t[E(e.replace)?"replace":"push"](E(e.to)).catch($l):Promise.resolve()}return{route:n,href:k(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const mU=ce({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:L1,setup(e,{slots:t}){const r=fn(L1(e)),{options:n}=Ee(Hy),i=k(()=>({[I1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[I1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:Ce("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),yU=mU;function _U(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function bU(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!En(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function D1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const I1=(e,t,r)=>e??t??r,wU=ce({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Ee(_g),i=k(()=>e.route||n.value),a=Ee(P1,0),o=k(()=>{let u=E(a);const{matched:c}=i.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),s=k(()=>i.value.matched[o.value]);At(P1,k(()=>o.value+1)),At(pU,s),At(_g,i);const l=B();return Se(()=>[l.value,s.value,e.name],([u,c,f],[d,h,v])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!As(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,c=e.name,f=s.value,d=f&&f.components[c];if(!d)return O1(r.default,{Component:d,route:u});const h=f.props[c],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,g=Ce(d,lt({},v,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return O1(r.default,{Component:g,route:u})||g}}});function O1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const xU=wU;function SU(e){const t=XG(e.routes,e),r=e.parseQuery||hU,n=e.stringifyQuery||E1,i=e.history,a=Zs(),o=Zs(),s=Zs(),l=$m(Ii);let u=Ii;qo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Jh.bind(null,V=>""+V),f=Jh.bind(null,dU),d=Jh.bind(null,ld);function h(V,Q){let W,q;return RA(V)?(W=t.getRecordMatcher(V),q=Q):q=V,t.addRoute(q,W)}function v(V){const Q=t.getRecordMatcher(V);Q&&t.removeRoute(Q)}function p(){return t.getRoutes().map(V=>V.record)}function g(V){return!!t.getRecordMatcher(V)}function m(V,Q){if(Q=lt({},Q||l.value),typeof V=="string"){const L=ev(r,V,Q.path),I=t.resolve({path:L.path},Q),z=i.createHref(L.fullPath);return lt(L,I,{params:d(I.params),hash:ld(L.hash),redirectedFrom:void 0,href:z})}let W;if("path"in V)W=lt({},V,{path:ev(r,V.path,Q.path).path});else{const L=lt({},V.params);for(const I in L)L[I]==null&&delete L[I];W=lt({},V,{params:f(V.params)}),Q.params=f(Q.params)}const q=t.resolve(W,Q),le=V.hash||"";q.params=c(d(q.params));const de=CG(n,lt({},V,{hash:uU(le),path:q.path})),J=i.createHref(de);return lt({fullPath:de,hash:le,query:n===E1?vU(V.query):V.query||{}},q,{redirectedFrom:void 0,href:J})}function y(V){return typeof V=="string"?ev(r,V,l.value.path):lt({},V)}function _(V,Q){if(u!==V)return Es(8,{from:Q,to:V})}function b(V){return S(V)}function x(V){return b(lt(y(V),{replace:!0}))}function w(V){const Q=V.matched[V.matched.length-1];if(Q&&Q.redirect){const{redirect:W}=Q;let q=typeof W=="function"?W(V):W;return typeof q=="string"&&(q=q.includes("?")||q.includes("#")?q=y(q):{path:q},q.params={}),lt({query:V.query,hash:V.hash,params:"path"in q?{}:V.params},q)}}function S(V,Q){const W=u=m(V),q=l.value,le=V.state,de=V.force,J=V.replace===!0,L=w(W);if(L)return S(lt(y(L),{state:typeof L=="object"?lt({},le,L.state):le,force:de,replace:J}),Q||W);const I=W;I.redirectedFrom=Q;let z;return!de&&TG(n,q,W)&&(z=Es(16,{to:I,from:q}),j(q,q,!0,!1)),(z?Promise.resolve(z):M(I,q)).catch(U=>ai(U)?ai(U,2)?U:R(U):G(U,I,q)).then(U=>{if(U){if(ai(U,2))return S(lt({replace:J},y(U.to),{state:typeof U.to=="object"?lt({},le,U.to.state):le,force:de}),Q||I)}else U=A(I,q,!0,J,le);return P(I,q,U),U})}function C(V,Q){const W=_(V,Q);return W?Promise.reject(W):Promise.resolve()}function M(V,Q){let W;const[q,le,de]=CU(V,Q);W=tv(q.reverse(),"beforeRouteLeave",V,Q);for(const L of q)L.leaveGuards.forEach(I=>{W.push(Gi(I,V,Q))});const J=C.bind(null,V,Q);return W.push(J),Io(W).then(()=>{W=[];for(const L of a.list())W.push(Gi(L,V,Q));return W.push(J),Io(W)}).then(()=>{W=tv(le,"beforeRouteUpdate",V,Q);for(const L of le)L.updateGuards.forEach(I=>{W.push(Gi(I,V,Q))});return W.push(J),Io(W)}).then(()=>{W=[];for(const L of V.matched)if(L.beforeEnter&&!Q.matched.includes(L))if(En(L.beforeEnter))for(const I of L.beforeEnter)W.push(Gi(I,V,Q));else W.push(Gi(L.beforeEnter,V,Q));return W.push(J),Io(W)}).then(()=>(V.matched.forEach(L=>L.enterCallbacks={}),W=tv(de,"beforeRouteEnter",V,Q),W.push(J),Io(W))).then(()=>{W=[];for(const L of o.list())W.push(Gi(L,V,Q));return W.push(J),Io(W)}).catch(L=>ai(L,8)?L:Promise.reject(L))}function P(V,Q,W){for(const q of s.list())q(V,Q,W)}function A(V,Q,W,q,le){const de=_(V,Q);if(de)return de;const J=Q===Ii,L=qo?history.state:{};W&&(q||J?i.replace(V.fullPath,lt({scroll:J&&L&&L.scroll},le)):i.push(V.fullPath,le)),l.value=V,j(V,Q,W,J),R()}let T;function D(){T||(T=i.listen((V,Q,W)=>{if(!Ae.listening)return;const q=m(V),le=w(q);if(le){S(lt(le,{replace:!0}),q).catch($l);return}u=q;const de=l.value;qo&&OG(b1(de.fullPath,W.delta),ih()),M(q,de).catch(J=>ai(J,12)?J:ai(J,2)?(S(J.to,q).then(L=>{ai(L,20)&&!W.delta&&W.type===wu.pop&&i.go(-1,!1)}).catch($l),Promise.reject()):(W.delta&&i.go(-W.delta,!1),G(J,q,de))).then(J=>{J=J||A(q,de,!1),J&&(W.delta&&!ai(J,8)?i.go(-W.delta,!1):W.type===wu.pop&&ai(J,20)&&i.go(-1,!1)),P(q,de,J)}).catch($l)}))}let N=Zs(),H=Zs(),$;function G(V,Q,W){R(V);const q=H.list();return q.length?q.forEach(le=>le(V,Q,W)):console.error(V),Promise.reject(V)}function F(){return $&&l.value!==Ii?Promise.resolve():new Promise((V,Q)=>{N.add([V,Q])})}function R(V){return $||($=!V,D(),N.list().forEach(([Q,W])=>V?W(V):Q()),N.reset()),V}function j(V,Q,W,q){const{scrollBehavior:le}=e;if(!qo||!le)return Promise.resolve();const de=!W&&RG(b1(V.fullPath,0))||(q||!W)&&history.state&&history.state.scroll||null;return Ft().then(()=>le(V,Q,de)).then(J=>J&&IG(J)).catch(J=>G(J,V,Q))}const re=V=>i.go(V);let oe;const ye=new Set,Ae={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,hasRoute:g,getRoutes:p,resolve:m,options:e,push:b,replace:x,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:H.add,isReady:F,install(V){const Q=this;V.component("RouterLink",yU),V.component("RouterView",xU),V.config.globalProperties.$router=Q,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>E(l)}),qo&&!oe&&l.value===Ii&&(oe=!0,b(i.location).catch(le=>{}));const W={};for(const le in Ii)W[le]=k(()=>l.value[le]);V.provide(Hy,Q),V.provide(WA,fn(W)),V.provide(_g,l);const q=V.unmount;ye.add(V),V.unmount=function(){ye.delete(V),ye.size<1&&(u=Ii,T&&T(),T=null,l.value=Ii,oe=!1,$=!1),q()}}};return Ae}function Io(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function CU(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oAs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>As(u,l))||i.push(l))}return[r,n,i]}var aa={},TU={get exports(){return aa},set exports(e){aa=e}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(e8,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(f){return typeof f<"u"&&f!==null},o=function(f){return f!==f},s=function(f){return isFinite(f)&&!o(parseFloat(f))},l=function(f){var d=Object.prototype.toString.call(f);return d==="[object Array]"},u={intword:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(f,h)},compactInteger:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1];d=Math.max(d,0);var h=parseInt(f,10),v=h<0?"-":"",p=Math.abs(h),g=String(p),m=g.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+g;if(m>y[0]+3)return h.toExponential(d).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=m-b+1,C=g.split(""),M=C.slice(0,S),P=C.slice(S,S+d+1),A=M.join(""),T=P.join("");T.length=v)return u.formatNumber(f/v,d,"")+" "+h+"B"}return f>=1024?u.formatNumber(f/1024,0)+" KB":u.formatNumber(f,0)+u.pluralize(f," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1],h=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,M){return M?S.substr(0,M)+C:""},g=function(S,C,M){return S.substr(M).replace(/(\d{3})(?=\d)/g,"$1"+C)},m=function(S,C,M){return M?C+u.toFixed(Math.abs(S),M).split(".")[1]:""},y=u.normalizePrecision(d),_=f<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(f||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,h,x)+g(b,h,x)+m(f,v,y)},toFixed:function(f,d){d=a(d)?d:u.normalizePrecision(d,0);var h=Math.pow(10,d);return(Math.round(f*h)/h).toFixed(d)},normalizePrecision:function(f,d){return f=Math.round(Math.abs(f)),o(f)?d:f},ordinal:function(f){var d=parseInt(f,10);if(d===0)return f;var h=d%100;if([11,12,13].indexOf(h)>=0)return d+"th";var v=d%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+d+p},times:function(f){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(f)&&f>=0){var h=parseFloat(f),v=["never","once","twice"];if(a(d[h]))return String(d[h]);var p=a(v[h])&&v[h].toString();return p||h.toString()+" times"}return null},pluralize:function(f,d,h){return a(f)&&a(d)?(h=a(h)?h:d+"s",parseInt(f,10)===1?d:h):null},truncate:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return f.length>d?f.substring(0,d-h.length)+h:f},truncateWords:function(f,d){for(var h=f.split(" "),v="",p=0;pd?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(f)&&s(d)&&f>d&&(v=d+h),(v||f).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(f,d,h){var v=f.length,p=void 0;if(v<2)return String(f);if(v===2)return f.join(" and ");if(a(d)&&v>d){var g=v-d;p=d,h=a(h)?h:", and "+g+" "+u.pluralize(g,"other")}else p=-1,h=", and "+f[v-1];return f.slice(0,p).join(", ")+h},dictionary:function(f){var d=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],h=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(f)&&(typeof f>"u"?"undefined":r(f))==="object"&&!l(f)){var p=[];for(var g in f)if(f.hasOwnProperty(g)){var m=f[g];p.push(""+g+d+m)}return p.join(h)}return v},frequency:function(f,d){if(!l(f))return null;var h=f.length,v=u.times(h);return h===0?v+" "+d:d+" "+v},pace:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(f===0||d===0)return"No "+u.pluralize(0,h);for(var v="Approximately",p=void 0,g=void 0,m=f/d,y=0;y1){p=_.name;break}}p||(v="Less than",g=1,p=n[n.length-1].name);var b=Math.round(g);return h=u.pluralize(b,h),v+" "+b+" "+h+" per "+p},nl2br:function(f){var d=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return f.replace(/\n/g,d)},br2nl:function(f){var d=arguments.length<=1||arguments[1]===void 0?`\r +`:arguments[1];return f.replace(/\/g,d)},capitalize:function(f){var d=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+f.charAt(0).toUpperCase()+(d?f.slice(1).toLowerCase():f.slice(1))},capitalizeAll:function(f){return f.replace(/(?:^|\s)\S/g,function(d){return d.toUpperCase()})},titleCase:function(f){var d=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,h=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,g=void 0;return g=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],x=[],w=y.split(_?p:v),S=0;S"u"&&typeof self<"u"?Va.worker=!0:typeof navigator>"u"?(Va.node=!0,Va.svgSupported=!0):EU(navigator.userAgent,Va);function EU(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ge=Va;var zy=12,PU="sans-serif",yo=zy+"px "+PU,LU=20,DU=100,IU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function OU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function a9(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),f=2*u,d=c.left,h=c.top;o.push(d,h),l=l&&a&&d===a[f]&&h===a[f+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?F1(s,o):F1(o,s))}function XA(e){return e.nodeName.toUpperCase()==="CANVAS"}var o9=/([&<>"'])/g,s9={"&":"&","<":"<",">":">",'"':""","'":"'"};function Xr(e){return e==null?"":(e+"").replace(o9,function(t,r){return s9[r]})}var l9=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,av=[],u9=Ge.browser.firefox&&+Ge.browser.version.split(".")[0]<39;function Ag(e,t,r,n){return r=r||{},n?$1(e,t,r):u9&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):$1(e,t,r),r}function $1(e,t,r){if(Ge.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(XA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Mg(av,e,n,i)){r.zrX=av[0],r.zrY=av[1];return}}r.zrX=r.zrY=0}function jy(e){return e||window.event}function jr(e,t,r){if(t=jy(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&Ag(e,o,t,r)}else{Ag(e,t,t,r);var a=c9(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&l9.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function c9(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function f9(e,t,r,n){e.addEventListener(t,r,n)}function d9(e,t,r,n){e.removeEventListener(t,r,n)}var ZA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},h9=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=H1(n)/H1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=v9(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function Su(){return[1,0,0,1,0,0]}function Yy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function p9(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function us(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Eg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function qy(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),c=Math.cos(r);return e[0]=n*c+o*u,e[1]=-n*u+o*c,e[2]=i*c+s*u,e[3]=-i*u+c*s,e[4]=c*a+u*l,e[5]=c*l-u*a,e}function g9(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function lh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var m9=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const Ne=m9;var Ec=Math.min,Pc=Math.max,ma=new Ne,ya=new Ne,_a=new Ne,ba=new Ne,Qs=new Ne,Js=new Ne,y9=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=Ec(t.x,this.x),n=Ec(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Pc(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Pc(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=Su();return Eg(a,a,[-r.x,-r.y]),g9(a,a,[n,i]),Eg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,c=t.y,f=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}ma.x=_a.x=r.x,ma.y=ba.y=r.y,ya.x=ba.x=r.x+r.width,ya.y=_a.y=r.y+r.height,ma.transform(n),ba.transform(n),ya.transform(n),_a.transform(n),t.x=Ec(ma.x,ya.x,_a.x,ba.x),t.y=Ec(ma.y,ya.y,_a.y,ba.y);var l=Pc(ma.x,ya.x,_a.x,ba.x),u=Pc(ma.y,ya.y,_a.y,ba.y);t.width=l-t.x,t.height=u-t.y},e}();const et=y9;var QA="silent";function _9(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:b9}}function b9(){ZA(this.event)}var w9=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ei),el=function(){function e(t,r){this.x=t,this.y=r}return e}(),x9=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],sv=new et(0,0,0,0),JA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new el(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new w9,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new e9(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(O(x9,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=e2(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new el(n,i):this.findHover(n,i),u=l.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new el(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=_9(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new el(r,n);if(z1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,c=new et(r-u,n-u,l,l),f=a.length-1;f>=0;f--){var d=a[f];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(sv.copy(d.getBoundingRect()),d.transform&&sv.applyTransform(d.transform),sv.intersect(c)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function S9(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?QA:!0}return!1}function z1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=S9(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==QA)){t.target=o;break}}}function e2(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const C9=JA;var t2=32,tl=7;function T9(e){for(var t=0;e>=t2;)t|=e&1,e>>=1;return e+t}function W1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function M9(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function lv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+c])>0?o=c+1:l=c}return l}function uv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+c])<0?l=c:o=c+1}return l}function A9(e,t){var r=tl,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;c(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=tl||S>=tl);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[x+m];e[b]=o[_];return}for(var S=r;;){var C=0,M=0,P=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){P=!0;break}}else if(e[b--]=o[_--],M++,C=0,--g===1){P=!0;break}while((C|M)=0;m--)e[w+m]=e[x+m];if(v===0){P=!0;break}}if(e[b--]=o[_--],--g===1){P=!0;break}if(M=g-lv(e[y],o,0,g,g-1,t),M!==0){for(b-=M,_-=M,g-=M,w=b+1,x=_+1,m=0;m=tl||M>=tl);if(P)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,x=y+1,m=v-1;m>=0;m--)e[w+m]=e[x+m];e[b]=o[_]}else{if(g===0)throw new Error;for(x=b-(g-1),m=0;ms&&(l=s),V1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Rr=1,wl=2,Ko=4,G1=!1;function cv(){G1||(G1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function U1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var E9=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=U1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(c.__clipPaths=[]),isNaN(c.z)&&(cv(),c.z=0),isNaN(c.z2)&&(cv(),c.z2=0),isNaN(c.zlevel)&&(cv(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var f=t.getDecalElement&&t.getDecalElement();f&&this._updateAndAddDisplayable(f,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const P9=E9;var r2;r2=Ge.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Pg=r2;var Of={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-Of.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?Of.bounceIn(e*2)*.5:Of.bounceOut(e*2-1)*.5+.5}};const n2=Of;var Lc=Math.pow,Qi=Math.sqrt,fd=1e-8,i2=1e-4,j1=Qi(3),Dc=1/3,Hn=Hs(),Zr=Hs(),cs=Hs();function Yi(e){return e>-fd&&efd||e<-fd}function jt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function Y1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function o2(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,c=s*s-3*o*l,f=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Yi(c)&&Yi(f))if(Yi(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=f*f-4*c*d;if(Yi(p)){var g=f/c,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Qi(p),_=c*s+1.5*o*(-f+y),b=c*s+1.5*o*(-f-y);_<0?_=-Lc(-_,Dc):_=Lc(_,Dc),b<0?b=-Lc(-b,Dc):b=Lc(b,Dc);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var x=(2*c*s-3*o*f)/(2*Qi(c*c*c)),w=Math.acos(x)/3,S=Qi(c),C=Math.cos(w),v=(-s-2*S*C)/(3*o),m=(-s+S*(C+j1*Math.sin(w)))/(3*o),M=(-s+S*(C-j1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),M>=0&&M<=1&&(a[h++]=M)}}return h}function s2(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Yi(o)){if(a2(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(Yi(c))i[0]=-a/(2*o);else if(c>0){var f=Qi(c),u=(-a+f)/(2*o),d=(-a-f)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function dd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,c=(l-s)*i+s,f=(c-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=f,a[4]=f,a[5]=c,a[6]=l,a[7]=n}function l2(e,t,r,n,i,a,o,s,l,u,c){var f,d=.005,h=1/0,v,p,g,m;Hn[0]=l,Hn[1]=u;for(var y=0;y<1;y+=.05)Zr[0]=jt(e,r,i,o,y),Zr[1]=jt(t,n,a,s,y),g=ls(Hn,Zr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(Yi(c)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var f=Qi(c),u=(-o+f)/(2*a),d=(-o-f)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function u2(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function hd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function c2(e,t,r,n,i,a,o,s,l){var u,c=.005,f=1/0;Hn[0]=o,Hn[1]=s;for(var d=0;d<1;d+=.05){Zr[0]=Jt(e,r,i,d),Zr[1]=Jt(t,n,a,d);var h=ls(Hn,Zr);h=0&&h=1?1:o2(0,n,a,1,l,s)&&jt(0,i,o,1,s[0])}}}var R9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Tr,this.ondestroy=t.ondestroy||Tr,this.onrestart=t.onrestart||Tr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ve(t)?t:n2[t]||f2(t)},e}();const k9=R9;var d2=function(){function e(t){this.value=t}return e}(),N9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new d2(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),F9=function(){function e(t){this._list=new N9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new d2(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const tc=F9;var K1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Vl(e){return e=Math.round(e),e<0?0:e>255?255:e}function X1(e){return e<0?0:e>1?1:e}function fv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Vl(parseFloat(t)/100*255):Vl(parseInt(t,10))}function Gl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?X1(parseFloat(t)/100):X1(parseFloat(t))}function dv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Ur(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Lg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var h2=new tc(20),Ic=null;function Ro(e,t){Ic&&Lg(Ic,t),Ic=h2.put(e,Ic||t.slice())}function so(e,t){if(e){t=t||[];var r=h2.get(e);if(r)return Lg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in K1)return Lg(t,K1[n]),Ro(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Ur(t,0,0,0,1);return}return Ur(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Ro(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Ur(t,0,0,0,1);return}return Ur(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Ro(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Ur(t,+u[0],+u[1],+u[2],1):Ur(t,0,0,0,1);c=Gl(u.pop());case"rgb":if(u.length>=3)return Ur(t,fv(u[0]),fv(u[1]),fv(u[2]),u.length===3?c:Gl(u[3])),Ro(e,t),t;Ur(t,0,0,0,1);return;case"hsla":if(u.length!==4){Ur(t,0,0,0,1);return}return u[3]=Gl(u[3]),Z1(u,t),Ro(e,t),t;case"hsl":if(u.length!==3){Ur(t,0,0,0,1);return}return Z1(u,t),Ro(e,t),t;default:return}}Ur(t,0,0,0,1)}}function Z1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Gl(e[1]),i=Gl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Ur(t,Vl(dv(o,a,r+1/3)*255),Vl(dv(o,a,r)*255),Vl(dv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function Q1(e,t){var r=so(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ky(r,r.length===4?"rgba":"rgb")}}function Ky(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function vd(e,t){var r=so(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function B9(e){return e.type==="linear"}function $9(e){return e.type==="radial"}(function(){return Ge.hasGlobalWindow&&Ve(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Dg=Array.prototype.slice;function di(e,t,r){return(t-e)*r+e}function hv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=ew,l=r;if(Er(r)){var u=V9(r);s=u,(u===1&&!bt(r[0])||u===2&&!bt(r[0][0]))&&(o=!0)}else if(bt(r)&&!cd(r))s=Rc;else if(Me(r))if(!isNaN(+r))s=Rc;else{var c=so(r);c&&(l=c,s=xl)}else if(oh(r)){var f=se({},l);f.colorStops=Re(r.colorStops,function(h){return{offset:h.offset,color:so(h.color)}}),B9(r)?s=Ig:$9(r)&&(s=Og),l=f}a===0?this.valType=s:(s!==this.valType||s===ew)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=Ve(n)?n:n2[n]||f2(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=kc(i),u=tw(i),c=0;c=0&&!(o[c].percent<=r);c--);c=d(c,s-2)}else{for(c=f;cr);c++);c=d(c-1,s-2)}v=o[c+1],h=o[c]}if(h&&v){this._lastFr=c,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?rl:t[l];if((kc(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(kc(a))a===Nf?hv(y,h[i],v[i],m):H9(y,h[i],v[i],m);else if(tw(a)){var _=h[i],b=v[i],x=a===Ig;t[l]={type:x?"linear":"radial",x:di(_.x,b.x,m),y:di(_.y,b.y,m),colorStops:Re(_.colorStops,function(S,C){var M=b.colorStops[C];return{offset:di(S.offset,M.offset,m),color:kf(hv([],S.color,M.color,m))}}),global:b.global},x?(t[l].x2=di(_.x2,b.x2,m),t[l].y2=di(_.y2,b.y2,m)):t[l].r=di(_.r,b.r,m)}else if(u)hv(y,h[i],v[i],m),n||(t[l]=kf(y));else{var w=di(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===Rc?t[n]=t[n]+i:r===xl?(so(t[n],rl),Oc(rl,rl,i,1),t[n]=kf(rl)):r===Nf?Oc(t[n],t[n],i,1):r===v2&&J1(t[n],t[n],i,1)},e}(),U9=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Gy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Tt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Rf(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Rf(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const Xy=U9;function ts(){return new Date().getTime()}var j9=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ts()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Pg(n),!r._paused&&r.update())}Pg(n)},t.prototype.start=function(){this._running||(this._time=ts(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ts(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ts()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new Xy(r,n.loop);return this.addAnimator(i),i},t}(ei);const Y9=j9;var q9=300,vv=Ge.domSupported,pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Re(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),rw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},nw=!1;function Rg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function K9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function gv(e){e&&(e.zrByTouch=!0)}function X9(e,t){return jr(e.dom,new Z9(e,t),!0)}function p2(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var Z9=function(){function e(t,r){this.stopPropagation=Tr,this.stopImmediatePropagation=Tr,this.preventDefault=Tr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),mn={mousedown:function(e){e=jr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=jr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=jr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=jr(this.dom,e);var t=e.toElement||e.relatedTarget;p2(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){nw=!0,e=jr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){nw||(e=jr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=jr(this.dom,e),gv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),mn.mousemove.call(this,e),mn.mousedown.call(this,e)},touchmove:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"change"),mn.mousemove.call(this,e)},touchend:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"end"),mn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentow||e<-ow}var xa=[],ko=[],yv=Su(),_v=Math.abs,nj=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return wa(this.rotation)||wa(this.x)||wa(this.y)||wa(this.scaleX-1)||wa(this.scaleY-1)||wa(this.skewX)||wa(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&aw(n);return}n=n||Su(),r?this.getLocalTransform(n):aw(n),t&&(r?us(n,t,n):p9(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(xa);var n=xa[0]<0?-1:1,i=xa[1]<0?-1:1,a=((xa[0]-n)*r+n)/xa[0]||0,o=((xa[1]-i)*r+i)/xa[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Su(),lh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(us(ko,t.invTransform,r),r=ko);var n=this.originX,i=this.originY;(n||i)&&(yv[4]=n,yv[5]=i,us(ko,r,yv),ko[4]-=n,ko[5]-=i,r=ko),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&on(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&on(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&_v(t[0]-1)>1e-10&&_v(t[3]-1)>1e-10?Math.sqrt(_v(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){ij(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,f=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&qy(r,r,u),r[4]+=n+c,r[5]+=i+f,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Cu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function ij(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function gd(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,c="left",f="top";if(n instanceof Array)l+=sa(n[0],r.width),u+=sa(n[1],r.height),c=null,f=null;else switch(n){case"left":l-=i,u+=s,c="right",f="middle";break;case"right":l+=i+o,u+=s,f="middle";break;case"top":l+=o/2,u-=i,c="center",f="bottom";break;case"bottom":l+=o/2,u+=a+i,c="center";break;case"inside":l+=o/2,u+=s,c="center",f="middle";break;case"insideLeft":l+=i,u+=s,f="middle";break;case"insideRight":l+=o-i,u+=s,c="right",f="middle";break;case"insideTop":l+=o/2,u+=i,c="center";break;case"insideBottom":l+=o/2,u+=a-i,c="center",f="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,c="right";break;case"insideBottomLeft":l+=i,u+=a-i,f="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,c="right",f="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=c,e.verticalAlign=f,e}var bv="__zr_normal__",wv=Cu.concat(["ignore"]),aj=oa(Cu,function(e,t){return e[t]=!0,e},{ignore:!1}),No={},oj=new et(0,0,0,0),Jy=function(){function e(t){this.id=UA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var c=oj;n.layoutRect?c.copy(n.layoutRect):c.copy(this.getBoundingRect()),i||c.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(No,n,c):gd(No,n,c),a.x=No.x,a.y=No.y,o=No.align,s=No.verticalAlign;var f=n.origin;if(f&&n.rotation!=null){var d=void 0,h=void 0;f==="center"?(d=c.width*.5,h=c.height*.5):(d=sa(f[0],c.width),h=sa(f[1],c.height)),u=!0,a.originX=-a.x+d+(i?0:c.x),a.originY=-a.y+h+(i?0:c.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Rr,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Bg:Fg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&so(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ky(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},se(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Ie(t))for(var n=t,i=Tt(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(bv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===bv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ot(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Gy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var c=!!(u&&u.hoverLayer||i);c&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var f=this._textContent,d=this._textGuide;return f&&f.useState(t,r,n,c),d&&d.useState(t,r,n,c),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=ot(i,t),o=ot(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,M=void 0,P=void 0;if(s){M={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];M[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){P={};for(var b=0;b<_;b++){var m=p[b];P[m]=Rf(r[m]),lj(r,n,m)}}var x=new Xy(r,!1,!1,f?Vt(v,function(T){return T.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),d&&C&&x.whenWithKeys(0,C,p),P&&x.whenWithKeys(0,P,p),x.whenWithKeys(u??500,s?M:n,p).delay(c||0),e.addAnimator(x,t),o.push(x)}}const y2=Jy;var _2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=ot(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ot(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function gt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Me(e)?pj(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function kt(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),w2),e=(+e).toFixed(t),r?e:+e}function hi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return gj(e)}function gj(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function mj(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function yj(e,t){var r=oa(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Re(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Re(i,function(h){return Math.floor(h)}),s=oa(o,function(h,v){return h+v},0),l=Re(i,function(h,v){return h-o[v]});su&&(u=l[f],c=f);++o[c],l[c]=0,++s}return Re(o,function(h){return h/n})}function _j(e,t){var r=Math.max(hi(e),hi(t)),n=e+t;return r>w2?n:kt(n,r)}function x2(e){var t=Math.PI*2;return(e%t+t)%t}function md(e){return e>-cw&&e=10&&t++,t}function S2(e,t){var r=e0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function yd(e){var t=parseFloat(e);return t==e&&(t!==0||!Me(e)||e.indexOf("x")<=0)?t:NaN}function xj(e){return!isNaN(yd(e))}function C2(){return Math.round(Math.random()*9)}function T2(e,t){return t===0?e:T2(t,e%t)}function fw(e,t){return e==null?t:t==null?e:e*t/T2(e,t)}function br(e){throw new Error(e)}function dw(e,t,r){return(t-e)*r+e}var M2="series\0",Sj="\0_ec_\0";function cr(e){return e instanceof Array?e:e==null?[]:[e]}function Hg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var jj=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],Yj=Mu(jj),qj=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return Yj(this,t,r)},e}(),zg=new tc(50);function Kj(e){if(typeof e=="string"){var t=zg.get(e);return t&&t.image}else return e}function D2(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=zg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!fh(t)&&a.pending.push(o)):(t=Mo.loadImage(e,vw,vw),t.__zrImageSrc=e,zg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function vw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=$r(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function O2(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=$r(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?Zj(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=$r(e,n)}return e===""&&(e=t.placeholder),e}function Zj(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);f=f.slice(0,v)}if(e&&a&&c!=null)for(var p=I2(c,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&Mv(r,e.substring(s,u),t,o),Mv(r,l[2],t,o,l[1]),s=Tv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var T=S.width,D=T==null||T==="auto";if(typeof T=="string"&&T.charAt(T.length-1)==="%")w.percentWidth=T,c.push(w),w.contentWidth=$r(w.text,P);else{if(D){var N=S.backgroundColor,H=N&&N.image;H&&(H=Kj(H),fh(H)&&(w.width=Math.max(w.width,H.width*A/H.height)))}var $=v&&n!=null?n-b:null;$!=null&&$0&&v+n.accumWidth>n.width&&(c=t.split(` +`),u=!0),n.accumWidth=v}else{var p=R2(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,f=p.linesWidths,c=p.lines}}else c=t.split(` +`);for(var g=0;g=33&&t<=383}var nY=oa(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function iY(e){return rY(e)?!!nY[e]:!0}function R2(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,c=0,f=0;fr:i+c+h>r){c?(s||l)&&(v?(s||(s=l,l="",u=0,c=u),a.push(s),o.push(c-u),l+=d,u+=h,s="",c=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(c),s=d,c=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}c+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(c)),a.length===1&&(c+=i),{accumWidth:c,lines:a,linesWidths:o}}var Wg="__zr_style_"+Math.round(Math.random()*10),lo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},dh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};lo[Wg]=!0;var gw=["z","z2","invisible"],aY=["invisible"],oY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Tt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Nc[0]=Lv(i)*r+e,Nc[1]=Pv(i)*n+t,Fc[0]=Lv(a)*r+e,Fc[1]=Pv(a)*n+t,u(s,Nc,Fc),c(l,Nc,Fc),i=i%Ca,i<0&&(i=i+Ca),a=a%Ca,a<0&&(a=a+Ca),i>a&&!o?a+=Ca:ii&&(Bc[0]=Lv(h)*r+e,Bc[1]=Pv(h)*n+t,u(s,Bc,s),c(l,Bc,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ta=[],Ma=[],Rn=[],Oi=[],kn=[],Nn=[],Dv=Math.min,Iv=Math.max,Aa=Math.cos,Ea=Math.sin,oi=Math.abs,Vg=Math.PI,zi=Vg*2,Ov=typeof Float32Array<"u",nl=[];function Rv(e){var t=Math.round(e/Vg*1e8)/1e8;return t%2*Vg}function fY(e,t){var r=Rv(e[0]);r<0&&(r+=zi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=zi?i=r+zi:t&&r-i>=zi?i=r-zi:!t&&r>i?i=r+(zi-Rv(r-i)):t&&r0&&(this._ux=oi(n/pd/t)||0,this._uy=oi(n/pd/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=oi(t-this._xi),i=oi(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),nl[0]=i,nl[1]=a,fY(nl,o),i=nl[0],a=nl[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Aa(a)*n+t,this._yi=Ea(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Ov&&(this.data=new Float32Array(r));for(var n=0;nc.length&&(this._expandData(),c=this.data);for(var f=0;f0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Rn[0]=Rn[1]=kn[0]=kn[1]=Number.MAX_VALUE,Oi[0]=Oi[1]=Nn[0]=Nn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||oi(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case at.C:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++],w=t[d++],S=t[d++];p=L9(a,o,b,x,g,m,w,S,10),a=w,o=S;break}case at.Q:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++];p=I9(a,o,b,x,g,m,10),a=g,o=m;break}case at.A:var C=t[d++],M=t[d++],P=t[d++],A=t[d++],T=t[d++],D=t[d++],N=D+T;d+=1,t[d++],v&&(s=Aa(T)*P+C,l=Ea(T)*A+M),p=Iv(P,A)*Dv(zi,Math.abs(D)),a=Aa(N)*P+C,o=Ea(N)*A+M;break;case at.R:{s=a=t[d++],l=o=t[d++];var H=t[d++],$=t[d++];p=H*2+$*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[f++]=p,c+=p)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,c,f,d,h=r<1,v,p,g=0,m=0,y,_=0,b,x;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case at.M:s=u=n[w++],l=c=n[w++],t.moveTo(u,c);break;case at.L:{f=n[w++],d=n[w++];var M=oi(f-u),P=oi(d-c);if(M>i||P>a){if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+f*T,c*(1-T)+d*T);break e}g+=A}t.lineTo(f,d),u=f,c=d,_=0}else{var D=M*M+P*P;D>_&&(b=f,x=d,_=D)}break}case at.C:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++],F=n[w++],R=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;dd(u,N,$,F,T,Ta),dd(c,H,G,R,T,Ma),t.bezierCurveTo(Ta[1],Ma[1],Ta[2],Ma[2],Ta[3],Ma[3]);break e}g+=A}t.bezierCurveTo(N,H,$,G,F,R),u=F,c=R;break}case at.Q:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;hd(u,N,$,T,Ta),hd(c,H,G,T,Ma),t.quadraticCurveTo(Ta[1],Ma[1],Ta[2],Ma[2]);break e}g+=A}t.quadraticCurveTo(N,H,$,G),u=$,c=G;break}case at.A:var j=n[w++],re=n[w++],oe=n[w++],ye=n[w++],Ae=n[w++],V=n[w++],Q=n[w++],W=!n[w++],q=oe>ye?oe:ye,le=oi(oe-ye)>.001,de=Ae+V,J=!1;if(h){var A=v[m++];g+A>y&&(de=Ae+V*(y-g)/A,J=!0),g+=A}if(le&&t.ellipse?t.ellipse(j,re,oe,ye,Q,Ae,de,W):t.arc(j,re,q,Ae,de,W),J)break e;C&&(s=Aa(Ae)*oe+j,l=Ea(Ae)*ye+re),u=Aa(de)*oe+j,c=Ea(de)*ye+re;break;case at.R:s=u=n[w],l=c=n[w+1],f=n[w++],d=n[w++];var L=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(f,d),t.lineTo(f+Dv(z,L),d),z-=L,z>0&&t.lineTo(f+L,d+Dv(z,I)),z-=I,z>0&&t.lineTo(f+Iv(L-z,0),d+I),z-=L,z>0&&t.lineTo(f,d+Iv(I-z,0));break e}g+=A}t.rect(f,d,L,I);break;case at.Z:if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+s*T,c*(1-T)+l*T);break e}g+=A}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const _o=dY;function Fo(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+f&&c>n+f&&c>a+f&&c>s+f||ce+f&&u>r+f&&u>i+f&&u>o+f||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||c+ui&&(i+=il);var d=Math.atan2(l,s);return d<0&&(d+=il),d>=n&&d<=i||d+il>=n&&d+il<=i}function Pa(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ri=_o.CMD,La=Math.PI*2,gY=1e-4;function mY(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&yY(),h=jt(t,n,a,s,Kr[0]),d>1&&(v=jt(t,n,a,s,Kr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var c=0,f=Jt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);or[0]=-l,or[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=La-1e-4){n=0,i=La;var c=a?1:-1;return o>=or[0]+e&&o<=or[1]+e?c:0}if(n>i){var f=n;n=i,i=f}n<0&&(n+=La,i+=La);for(var d=0,h=0;h<2;h++){var v=or[h];if(v+e>o){var p=Math.atan2(s,v),c=a?1:-1;p<0&&(p=La+p),(p>=n&&p<=i||p+La>=n&&p+La<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Pa(l,u,c,f,n,i))),g&&(l=a[v],u=a[v+1],c=l,f=u),p){case Ri.M:c=a[v++],f=a[v++],l=c,u=f;break;case Ri.L:if(r){if(Fo(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Pa(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.C:if(r){if(hY(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=_Y(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.Q:if(r){if(vY(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=bY(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);d=Math.cos(x)*_+m,h=Math.sin(x)*b+y,g?(c=d,f=h):s+=Pa(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(pY(m,y,b,x,x+w,S,t,C,i))return!0}else s+=wY(m,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+m,u=Math.sin(x+w)*b+y;break;case Ri.R:c=l=a[v++],f=u=a[v++];var M=a[v++],P=a[v++];if(d=c+M,h=f+P,r){if(Fo(c,f,d,f,t,n,i)||Fo(d,f,d,h,t,n,i)||Fo(d,h,c,h,t,n,i)||Fo(c,h,c,f,t,n,i))return!0}else s+=Pa(d,f,d,h,n,i),s+=Pa(c,h,c,f,n,i);break;case Ri.Z:if(r){if(Fo(l,u,c,f,t,n,i))return!0}else s+=Pa(l,u,c,f,n,i);l=c,u=f;break}}return!r&&!mY(u,f)&&(s+=Pa(l,u,c,f,n,i)||0),s!==0}function xY(e,t,r){return k2(e,0,!1,t,r)}function SY(e,t,r,n){return k2(e,t,!0,r,n)}var N2=dt({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},lo),CY={style:dt({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},dh.style)},kv=Cu.concat(["invisible","culling","z","z2","zlevel","parent"]),TY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Fg:n>.2?rj:Bg}else if(r)return Bg}return Fg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Me(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=vd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Ko)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),SY(s,l/u,r,n)))return!0}if(this.hasFill())return xY(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Ko,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:se(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Ko)},t.prototype.createStyle=function(r){return sh(N2,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=se({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=se({},i.shape),se(u,n.shape)):(u=se({},a?this.shape:i.shape),se(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=se({},this.shape);for(var c={},f=Tt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return sh(MY,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Zy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(ac);F2.prototype.type="tspan";const Gg=F2;var AY=dt({x:0,y:0},lo),EY={style:dt({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},dh.style)};function PY(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var B2=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return sh(AY,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=PY(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return EY},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new et(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(ac);B2.prototype.type="image";const zs=B2;function LY(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,c;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=c=o:o instanceof Array?o.length===1?s=l=u=c=o[0]:o.length===2?(s=u=o[0],l=c=o[1]):o.length===3?(s=o[0],l=c=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],c=o[3]):s=l=u=c=0;var f;s+l>i&&(f=s+l,s*=i/f,l*=i/f),u+c>i&&(f=u+c,u*=i/f,c*=i/f),l+u>a&&(f=l+u,l*=a/f,u*=a/f),s+c>a&&(f=s+c,s*=a/f,c*=a/f),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+c,n+a),c!==0&&e.arc(r+c,n+a-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var rs=Math.round;function $2(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(rs(n*2)===rs(i*2)&&(e.x1=e.x2=eo(n,s,!0)),rs(a*2)===rs(o*2)&&(e.y1=e.y2=eo(a,s,!0))),e}}function H2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=eo(n,s,!0),e.y=eo(i,s,!0),e.width=Math.max(eo(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(eo(i+o,s,!1)-e.y,o===0?0:1)),e}}function eo(e,t,r){if(!t)return e;var n=rs(e*2);return(n+rs(t))%2===0?n/2:(n+(r?1:-1))/2}var DY=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),IY={},z2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new DY},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=H2(IY,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?LY(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ht);z2.prototype.type="rect";const Ht=z2;var ww={fill:"#000"},xw=2,OY={style:dt({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},dh.style)},W2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=ww,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,T=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,N=0;N=0&&(N=w[D],N.align==="right");)this._placeToken(N,r,C,m,T,"right",_),M-=N.width,T-=N.width,D--;for(A+=(a-(A-g)-(y-T)-M)/2;P<=D;)N=w[P],this._placeToken(N,r,C,m,A+N.width/2,"center",_),A+=N.width,P++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,f=a+i/2;c==="top"?f=a+r.height/2:c==="bottom"&&(f=a+i-r.height/2);var d=!r.isLineHolder&&Nv(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,f-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=Ew(o,s,v),f-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Gg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=Aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),x=Mw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=xw,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=f,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||yo,g.opacity=zl(u.opacity,n.opacity,1),Cw(g,u),x&&(g.lineWidth=zl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=x),b&&(g.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new et(Sl(g.x,S,g.textAlign),Xo(g.y,C,g.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,c=r.borderColor,f=l&&l.image,d=l&&!f,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&c){p=this._getOrCreateChild(Ht),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(f){g=this._getOrCreateChild(zs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&c){var y=p.style;y.lineWidth=u,y.stroke=c,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=zl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return FY(r)&&(n=[r.fontStyle,r.fontWeight,NY(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Vn(n)||r.textFont||r.font},t}(ac),RY={left:!0,right:1,center:1},kY={top:1,bottom:1,middle:1},Sw=["fontStyle","fontWeight","fontSize","fontFamily"];function NY(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?zy+"px":e+"px"}function Cw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ht){var o=V2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Bo(s)||Bo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=se({},n),u=se({},u),u.fill=s):!Bo(u.fill)&&Bo(s)?(a=!0,n=se({},n),u=se({},u),u.fill=Ow(s)):!Bo(u.stroke)&&Bo(l)&&(a||(n=se({},n),u=se({},u)),u.stroke=Ow(l)),n.style=u}}if(n&&n.z2==null){a||(n=se({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??HY)}return n}function jY(e,t,r){if(r&&r.z2==null){r=se({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??zY)}return r}function YY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:GY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=se({},r),o=se({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Fv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return UY(this,e,t,r);if(e==="blur")return YY(this,e,r);if(e==="select")return jY(this,e,r)}return r}function qY(e){e.stateProxy=Fv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Fv),r&&(r.stateProxy=Fv)}function kw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,U2)}function Nw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,j2)}function Ug(e,t){e.__highByOuter|=1<<(t||0),Ai(e,U2)}function jg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ai(e,j2)}function KY(e){Ai(e,s0)}function q2(e){Ai(e,Y2)}function K2(e){Ai(e,WY)}function X2(e){Ai(e,VY)}function Z2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function Q2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=i0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){Y2(u)}),s&&r.push(a)),o.isBlured=!1}),O(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Yg(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,c){for(var f=0;f0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Kg(e,t,r){tE(e,!0),Ai(e,qY),r7(e,t,r)}function t7(e){tE(e,!1)}function J2(e,t,r,n){n?t7(e):Kg(e,t,r)}function r7(e,t,r){var n=ft(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Bw=["emphasis","blur","select"],n7={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function eE(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Bv(v),s*=Bv(v));var p=(i===a?-1:1)*Bv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Hc(f)*g-$c(f)*m,_=(t+n)/2+$c(f)*g+Hc(f)*m,b=Ww([1,0],[(d-g)/o,(h-m)/s]),x=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],S=Ww(x,w);if(Qg(x,w)<=-1&&(S=al),Qg(x,w)>=1&&(S=0),S<0){var C=Math.round(S/al*1e6)/1e6;S=al*2+C%2*al}c.addData(u,y,_,o,s,b,S,f,a)}var u7=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,c7=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function f7(e){var t=new _o;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=_o.CMD,l=e.match(u7);if(!l)return t;for(var u=0;uN*N+H*H&&(C=P,M=A),{cx:C,cy:M,x0:-c,y0:-f,x1:C*(i/x-1),y1:M*(i/x-1)}}function _7(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function b7(e,t){var r,n=Cl(t.r,0),i=Cl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,f=t.cy,d=!!t.clockwise,h=Gw(u-l),v=h>$v&&h%$v;if(v>gn&&(h=v),!(n>gn))e.moveTo(c,f);else if(h>$v-gn)e.moveTo(c+n*Ho(l),f+n*Da(l)),e.arc(c,f,n,l,u,!d),i>gn&&(e.moveTo(c+i*Ho(u),f+i*Da(u)),e.arc(c,f,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,M=void 0,P=void 0,A=void 0,T=void 0,D=void 0,N=void 0,H=n*Ho(l),$=n*Da(l),G=i*Ho(u),F=i*Da(u),R=h>gn;if(R){var j=t.cornerRadius;j&&(r=_7(j),p=r[0],g=r[1],m=r[2],y=r[3]);var re=Gw(n-i)/2;if(_=Fn(re,m),b=Fn(re,y),x=Fn(re,p),w=Fn(re,g),M=S=Cl(_,b),P=C=Cl(x,w),(S>gn||C>gn)&&(A=n*Ho(u),T=n*Da(u),D=i*Ho(l),N=i*Da(l),hgn){var le=Fn(m,M),de=Fn(y,M),J=zc(D,N,H,$,n,le,d),L=zc(A,T,G,F,n,de,d);e.moveTo(c+J.cx+J.x0,f+J.cy+J.y0),M0&&e.arc(c+J.cx,f+J.cy,le,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,n,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),!d),de>0&&e.arc(c+L.cx,f+L.cy,de,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.moveTo(c+H,f+$),e.arc(c,f,n,l,u,!d);if(!(i>gn)||!R)e.lineTo(c+G,f+F);else if(P>gn){var le=Fn(p,P),de=Fn(g,P),J=zc(G,F,A,T,i,-de,d),L=zc(H,$,D,N,i,-le,d);e.lineTo(c+J.cx+J.x0,f+J.cy+J.y0),P0&&e.arc(c+J.cx,f+J.cy,de,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,i,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),d),le>0&&e.arc(c+L.cx,f+L.cy,le,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.lineTo(c+G,f+F),e.arc(c,f,i,u,l,d)}e.closePath()}}}var w7=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),uE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new w7},t.prototype.buildPath=function(r,n){b7(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ht);uE.prototype.type="sector";const Ao=uE;var x7=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),cE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new x7},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ht);cE.prototype.type="ring";const fE=cE;function S7(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,c,f;if(n){c=[1/0,1/0],f=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=S7(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],c=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,f=i.length;sOa[1]){if(s=!1,a)return s;var c=Math.abs(Oa[0]-Ia[1]),f=Math.abs(Ia[0]-Oa[1]);Math.min(c,f)>i.len()&&(c0){var f=c.duration,d=c.delay,h=c.easing,v={duration:f,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Pr(e,t,r,n,i,a){f0("update",e,t,r,n,i,a)}function Hr(e,t,r,n,i,a){f0("enter",e,t,r,n,i,a)}function fs(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Yw(e){return!e.isGroup}function Q7(e){return e.shape!=null}function ME(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Yw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return Q7(o)&&(s.shape=se({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Yw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Pr(o,l,r,ft(o).dataIndex)}}})}function J7(e,t){return Re(e,function(r){var n=r[0];n=xd(n,t.x),n=Sd(n,t.x+t.width);var i=r[1];return i=xd(i,t.y),i=Sd(i,t.y+t.height),[n,i]})}function eq(e,t){var r=xd(e.x,t.x),n=Sd(e.x+e.width,t.x+t.width),i=xd(e.y,t.y),a=Sd(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function v0(e,t,r){var n=se({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),dt(i,r),new zs(n)):d0(e.replace("path://",""),n,r,"center")}function tq(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Hv(h,v,c,f)/d;return!(g<0||g>1)}function Hv(e,t,r,n){return e*n-r*t}function rq(e){return e<=1e-6&&e>=-1e-6}function p0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Me(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&O(Tt(l),function(c){Ps(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=ft(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:dt({content:n,formatterParams:s},i)}}function qw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function g0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function IE(e,t){return st(st({},e,!0),t,!0)}const _q={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},bq={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Cd="ZH",y0="EN",Eu=y0,zf={},_0={},OE=Ge.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Cd)>-1?Cd:Eu}():Eu;function RE(e,t){e=e.toUpperCase(),_0[e]=new rr(t),zf[e]=t}function wq(e){if(Me(e)){var t=zf[e.toUpperCase()]||{};return e===Cd||e===y0?Qe(t):st(Qe(t),Qe(zf[Eu]),!1)}else return st(Qe(e),Qe(zf[Eu]),!1)}function xq(e){return _0[e]}function Sq(){return _0[Eu]}RE(y0,_q);RE(Cd,bq);var b0=1e3,w0=b0*60,Kl=w0*60,en=Kl*24,ex=en*365,Tl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Gc="{yyyy}-{MM}-{dd}",tx={year:"{yyyy}",month:"{yyyy}-{MM}",day:Gc,hour:Gc+" "+Tl.hour,minute:Gc+" "+Tl.minute,second:Gc+" "+Tl.second,millisecond:Tl.none},Vv=["year","month","day","hour","minute","second","millisecond"],kE=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ra(e,t){return e+="","0000".substr(0,t-e.length)+e}function ds(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Cq(e){return e===ds(e)}function Tq(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function mh(e,t,r,n){var i=wi(e),a=i[x0(r)](),o=i[hs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[yh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),c=i[Pu(r)](),f=(c-1)%12+1,d=i[_h(r)](),h=i[bh(r)](),v=i[wh(r)](),p=n instanceof rr?n:xq(n||OE)||Sq(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Ra(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Ra(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ra(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,Ra(f+"",2)).replace(/{h}/g,f+"").replace(/{mm}/g,Ra(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Ra(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Ra(v,3)).replace(/{S}/g,v+"")}function Mq(e,t,r,n,i){var a=null;if(Me(r))a=r;else if(Ve(r))a=r(e.value,t,{level:e.level});else{var o=se({},Tl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var f=e.level==null?0:e.level>=0?e.level:a.length+e.level;f=Math.min(f,a.length-1),a=a[f]}}return mh(new Date(e.value),a,i,n)}function NE(e,t){var r=wi(e),n=r[hs(t)]()+1,i=r[yh(t)](),a=r[Pu(t)](),o=r[_h(t)](),s=r[bh(t)](),l=r[wh(t)](),u=l===0,c=u&&s===0,f=c&&o===0,d=f&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":f?"hour":c?"minute":u?"second":"millisecond"}function rx(e,t,r){var n=bt(e)?wi(e):e;switch(t=t||NE(e,r),t){case"year":return n[x0(r)]();case"half-year":return n[hs(r)]()>=6?1:0;case"quarter":return Math.floor((n[hs(r)]()+1)/4);case"month":return n[hs(r)]();case"day":return n[yh(r)]();case"half-day":return n[Pu(r)]()/24;case"hour":return n[Pu(r)]();case"minute":return n[_h(r)]();case"second":return n[bh(r)]();case"millisecond":return n[wh(r)]()}}function x0(e){return e?"getUTCFullYear":"getFullYear"}function hs(e){return e?"getUTCMonth":"getMonth"}function yh(e){return e?"getUTCDate":"getDate"}function Pu(e){return e?"getUTCHours":"getHours"}function _h(e){return e?"getUTCMinutes":"getMinutes"}function bh(e){return e?"getUTCSeconds":"getSeconds"}function wh(e){return e?"getUTCMilliseconds":"getMilliseconds"}function Aq(e){return e?"setUTCFullYear":"setFullYear"}function FE(e){return e?"setUTCMonth":"setMonth"}function BE(e){return e?"setUTCDate":"setDate"}function $E(e){return e?"setUTCHours":"setHours"}function HE(e){return e?"setUTCMinutes":"setMinutes"}function zE(e){return e?"setUTCSeconds":"setSeconds"}function WE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function VE(e){if(!xj(e))return Me(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function GE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var xh=jA;function tm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(c){return c&&Vn(c)?c:"-"}function a(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?wi(e):e;if(isNaN(+l)){if(s)return"-"}else return mh(l,n,r)}if(t==="ordinal")return wg(e)?i(e):bt(e)&&a(e)?e+"":"-";var u=yd(e);return a(u)?VE(u):wg(e)?i(e):typeof e=="boolean"?e+"":"-"}var nx=["a","b","c","d","e","f","g"],Gv=function(e,t){return"{"+e+(t??"")+"}"};function UE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Lu(e,t){return t=t||"transparent",Me(e)?e:Ie(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function ix(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Wf=O,Pq=["left","right","top","bottom","width","height"],Uc=[["width","left","right"],["height","top","bottom"]];function S0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),f=t.childAt(u+1),d=f&&f.getBoundingRect(),h,v;if(e==="horizontal"){var p=c.width+(d?-d.x+c.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=c.height):s=Math.max(s,c.height)}else{var g=c.height+(d?-d.y+c.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Xl=S0;Rt(S0,"vertical");Rt(S0,"horizontal");function Ls(e,t,r){r=xh(r||0);var n=t.width,i=t.height,a=gt(e.left,n),o=gt(e.top,i),s=gt(e.right,n),l=gt(e.bottom,i),u=gt(e.width,n),c=gt(e.height,i),f=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(c)&&(c=i-l-f-o),h!=null&&(isNaN(u)&&isNaN(c)&&(h>n/i?u=n*.8:c=i*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-c-f),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-c/2-r[0];break;case"bottom":o=i-c-f;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(c)&&(c=i-f-o-(l||0));var v=new et(a+r[3],o+r[0],u,c);return v.margin=r,v}function Du(e){var t=e.layoutMode||e.constructor.layoutMode;return Ie(t)?t:t?{type:t}:null}function Ds(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(Uc[0],0),a=o(Uc[1],1);u(Uc[0],e,i),u(Uc[1],e,a);function o(c,f){var d={},h=0,v={},p=0,g=2;if(Wf(c,function(_){v[_]=e[_]}),Wf(c,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[f])return l(t,c[1])?v[c[2]]=null:l(t,c[2])&&(v[c[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return ic(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(rr);L2(Ws,rr);ch(Ws);mq(Ws);yq(Ws,Iq);function Iq(e){var t=[];return O(Ws.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Re(t,function(r){return Gn(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const xt=Ws;var jE="";typeof navigator<"u"&&(jE=navigator.platform||"");var zo="rgba(0, 0, 0, 0.2)";const Oq={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zo,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zo,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zo,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zo,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zo,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zo,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:jE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var YE=Ue(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),dn="original",Lr="arrayRows",In="objectRows",ti="keyedColumns",Ji="typedArray",qE="unknown",pi="column",Vs="row",Ut={Must:1,Might:2,Not:3},KE=Et();function Rq(e){KE(e).datasetMap=Ue()}function kq(e,t,r){var n={},i=C0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=KE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,c,f;e=e.slice(),O(e,function(p,g){var m=Ie(p)?p:e[g]={name:p};m.type==="ordinal"&&c==null&&(c=g,f=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:f,valueWayDim:0});O(e,function(p,g){var m=p.name,y=v(p);if(c==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(c===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function zq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=o==null||!n?r:Hq(n,o);if(c=c||r,!(!c||!c.length)){var f=c[l];return i&&(u[i]=f),s.paletteIdx=(l+1)%c.length,f}}function Wq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var jc,ol,ox,sx="\0_ec_inner",Vq=1,QE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new rr(a),this._locale=new rr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=cx(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,cx(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?ox(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&O(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ue(),u=n&&n.replaceMergeMainTypeMap;Rq(this),O(r,function(f,d){f!=null&&(xt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Qe(f):st(i[d],f,!0))}),u&&u.each(function(f,d){xt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),xt.topologicalTravel(s,xt.getAllClassMainTypes(),c,this);function c(f){var d=$q(this,f,cr(r[f])),h=a.get(f),v=h?u&&u.get(f)?"replaceMerge":"normalMerge":"replaceAll",p=Tj(h,d,v);Ij(p,f,xt),i[f]=null,a.set(f,null),o.set(f,0);var g=[],m=[],y=0,_;O(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=f==="series",M=xt.getClass(f,b.keyInfo.subType,!C);if(!M)return;if(f==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var P=se({componentIndex:x},b.keyInfo);w=new M(S,this,this,P),se(w,P),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[f]=g,a.set(f,m),o.set(f,y),f==="series"&&jc(this)}this._seriesIndices||jc(this)},t.prototype.getOption=function(){var r=Qe(this.option);return O(r,function(n,i){if(xt.hasClass(i)){for(var a=cr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Tu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[sx],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function eK(e,t){return e.join(",")===t.join(",")}const tK=Xq;var hn=O,Iu=Ie,fx=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function jv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=fx.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=_j(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var Ch=function(){function e(t){this.data=t.data||(t.sourceFormat===ti?{}:[]),this.sourceFormat=t.sourceFormat||qE,this.seriesLayoutBy=t.seriesLayoutBy||pi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};yx=(t={},t[Lr+"_"+pi]={pure:!0,appendData:a},t[Lr+"_"+Vs]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[In]={pure:!0,appendData:a},t[ti]={pure:!0,appendData:function(o){var s=this._data;O(o,function(l,u){for(var c=s[u]||(s[u]=[]),f=0;f<(l||[]).length;f++)c.push(l[f])})}},t[dn]={appendData:a},t[Ji]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Is(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function Sx(e){var t,r;return Ie(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function Zl(e){return new _K(e)}var _K=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function c(y){return!(y>=1)&&(y=1),y}var f;(this._dirty||a==="reset")&&(this._dirty=!1,f=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(f||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),wK=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Vf(t,r)},e}();function xK(e,t){var r=new wK,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==pi&&br(o);var s=[],l={},u=e.dimensionsDefine;if(u)O(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ps(l,m)&&br(_),l[m]=y}});else for(var c=0;c65535?LK:DK}function Wo(){return[1/0,-1/0]}function IK(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function Mx(e,t,r,n,i){var a=fP[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Re(o,function(y){return y.property}),c=0;cm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,c=0,f=this.count();c=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=c))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=f&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],x=t[i[1]][1],m=0;m=f&&y<=d||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=f&&y<=d||isNaN(y))&&(l[u++]=S)}else for(var m=0;mt[P][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),c,f,d,h=new(ll(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vc&&(c=f,d=b)}A>0&&Ac-v&&(l=c-v,s.length=l);for(var p=0;pf[1]&&(f[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=f)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Vf(r[a],this._dimensions[a])}Kv={arrayRows:t,objectRows:function(r,n,i,a){return Vf(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Vf(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),OK=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(Yc(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,a=[c._getVersionSign()]}else s=o.get("data",!0),l=zr(s)?Ji:dn,a=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(f.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(f.sourceHeader,d.sourceHeader),p=qe(f.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[rm(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[rm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&Ax(a)}var o,s=[],l=[];return O(t,function(u){u.prepareSource();var c=u.getSource(i||0),f="";i!=null&&!c&&Ax(f),s.push(c),l.push(u._getVersionSign())}),n?o=EK(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[fK(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return O(e.blocks,function(i){var a=pP(i);a>=t&&(t=a+ +(n&&(!a||im(i)&&!i.noHeader)))}),t}return 0}function NK(e,t,r,n){var i=t.noHeader,a=BK(pP(t)),o=[],s=t.blocks||[];bi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ps(u,l)){var c=new bK(u[l],null);s.sort(function(v,p){return c.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}O(s,function(v,p){var g=t.valueFormatter,m=vP(v)(g?se(se({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var f=e.renderMode==="richText"?o.join(a.richText):am(o.join(""),i?r:a.html);if(i)return f;var d=tm(t.header,"ordinal",e.useUTC),h=hP(n,e.renderMode).nameStyle;return e.renderMode==="richText"?gP(e,d,h)+a.richText+f:am('
'+Xr(d)+"
"+f,r)}function FK(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Re(b,function(x,w){return tm(x,ge(h)?h[w]:h,u)})};if(!(a&&o)){var f=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":tm(l,"ordinal",u),h=t.valueType,v=o?[]:c(t.value),p=!s||!a,g=!s&&a,m=hP(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":f)+(a?"":gP(e,d,y))+(o?"":zK(e,v,p,g,_)):am((s?"":f)+(a?"":$K(d,!s,y))+(o?"":HK(v,p,g,_)),r)}}function Ex(e,t,r,n,i,a){if(e){var o=vP(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function BK(e){return{html:RK[e],richText:kK[e]}}function am(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function $K(e,t,r){var n=t?"margin-left:2px":"";return''+Xr(e)+""}function HK(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Re(e,function(o){return Xr(o)}).join("  ")+""}function gP(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function zK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function WK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Lu(n)}function mP(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var Xv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=C2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Eq({color:r,type:t,renderMode:n,markerId:i});return Me(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?O(r,function(a){return se(n,a)}):se(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function VK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=WK(t,r),c,f,d,h;if(o>1||l&&!o){var v=GK(s,t,r,a,u);c=v.inlineValues,f=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=c=Is(i,r,a[0]),f=p.type}else h=c=l?s[0]:s;var g=t0(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Ou("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Ou("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Vn(_),value:c,valueType:f})].concat(d||[])})}function GK(e,t,r,n,i){var a=t.getData(),o=oa(e,function(f,d,h){var v=a.getDimensionInfo(h);return f=f||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?O(n,function(f){c(Is(a,r,f),f)}):O(e,c);function c(f,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Ou("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:f,valueType:h.type})):(s.push(f),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var ki=Et();function qc(e,t){return e.getName(t)||e.getId(t)}var UK="__universalTransitionEnabled",Mh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Zl({count:YK,reset:qK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=ki(this).sourceManager=new OK(this);a.prepareSource();var o=this.getInitialData(r,i);Lx(o,this),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Du(this),a=i?Sh(r):{},o=this.subType;xt.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),Hg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Ds(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Du(this);i&&Ds(this.option,r,i);var a=ki(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);Lx(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!zr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=T0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[qc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[UK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Ie(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return xt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(xt);Jn(Mh,yK);Jn(Mh,T0);L2(Mh,xt);function Px(e){var t=e.name;t0(e)||(e.name=jK(e)||t)}function jK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return O(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function YK(e){return e.model.getRawData().count()}function qK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),KK}function KK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function Lx(e,t){O(UU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Rt(XK,t))})}function XK(e,t){var r=om(e);return r&&r.setOutputEnd((t||this).count()),t}function om(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const wo=Mh;var D0=function(){function e(){this.group=new cn,this.uid=gh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();n0(D0);ch(D0);const xi=D0;function yP(){var e=Et();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var _P=Et(),ZK=yP(),I0=function(){function e(){this.group=new cn,this.uid=gh("viewChart"),this.renderTask=Zl({plan:QK,reset:JK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){g0(this.group,t)},e.markUpdateMethod=function(t,r){_P(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function Dx(e,t,r){e&&Xg(e)&&(t==="emphasis"?Ug:jg)(e,r)}function Ix(e,t,r){var n=nc(e,t),i=t&&t.highlightKey!=null?i7(t.highlightKey):null;n!=null?O(cr(n),function(a){Dx(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){Dx(a,r,i)})}n0(I0);ch(I0);function QK(e){return ZK(e.model)}function JK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&_P(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),eX[l]}var eX={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const co=I0;var Td="\0__throttleOriginMethod",Ox="\0__throttleRate",Rx="\0__throttleType";function O0(e,t,r){var n,i=0,a=0,o=null,s,l,u,c;t=t||0;function f(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?f():o=setTimeout(f,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){c=h},d}function bP(e,t,r,n){var i=e[t];if(i){var a=i[Td]||i,o=i[Rx],s=i[Ox];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=O0(a,r,n==="debounce"),i[Td]=a,i[Rx]=n,i[Ox]=r}return i}}function sm(e,t){var r=e[t];r&&r[Td]&&(r.clear&&r.clear(),e[t]=r[Td])}var kx=Et(),Nx={itemStyle:Mu(DE,!0),lineStyle:Mu(LE,!0)},tX={lineStyle:"stroke",itemStyle:"fill"};function wP(e,t){var r=e.visualStyleMapper||Nx[t];return r||(console.warn("Unknown style type '"+t+"'."),Nx.itemStyle)}function xP(e,t){var r=e.visualDrawType||tX[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var rX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=wP(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=xP(e,n),u=o[l],c=Ve(u)?u:null,f=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||f){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ve(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||Ve(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=se({},o);g[l]=c(p),h.setItemVisual(v,"style",g)}}}},ul=new rr,nX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=wP(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){ul.option=l[n];var u=i(ul),c=o.ensureUniqueItemVisual(s,"style");se(c,u),ul.option.decal&&(o.setItemVisual(s,"decal",ul.option.decal),ul.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},iX={performRawSeries:!0,overallReset:function(e){var t=Ue();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),kx(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=kx(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=xP(r,s);a.each(function(u){var c=a.getRawIndex(u);i[c]=u}),n.each(function(u){var c=i[u],f=a.getItemVisual(c,"colorFromPalette");if(f){var d=a.ensureUniqueItemVisual(c,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Kc=Math.PI;function aX(e,t){t=t||{},dt(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new cn,n=new Ht({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new dr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Ht({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new c0({shape:{startAngle:-Kc/2,endAngle:-Kc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Kc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Kc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),a.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var oX=function(){function e(t,r,n,i){this._stageTaskMap=Ue(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ue();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;O(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";bi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;O(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),f=c.seriesTaskMap,d=c.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else f&&f.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ue(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,i).each(c);function c(f){var d=f.uid,h=s.set(d,o&&o.get(d)||Zl({plan:fX,reset:dX,count:vX}));h.context={model:f,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(f,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||Zl({reset:sX});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ue(),u=t.seriesType,c=t.getTargetSeries,f=!0,d=!1,h="";bi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):c?c(n,i).each(v):(f=!1,O(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,Zl({reset:lX,onDirty:cX})));m.context={model:p,overallProgress:f},m.agent=o,m.__block=f,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ve(t)&&(t={overallReset:t,seriesType:pX(t)}),t.uid=gh("stageHandler"),r&&(t.visualType=r),t},e}();function sX(e){e.overallReset(e.ecModel,e.api,e.payload)}function lX(e){return e.overallProgress&&uX}function uX(){this.agent.dirty(),this.getDownstream().dirty()}function cX(){this.agent&&this.agent.dirty()}function fX(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function dX(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=cr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Re(t,function(r,n){return SP(n)}):hX}var hX=SP(0);function SP(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(n[u]=l,c=!0),c||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return c(l,o,"mainType")&&c(l,o,"subType")&&c(l,o,"index","componentIndex")&&c(l,o,"name")&&c(l,o,"id")&&c(u,a,"name")&&c(u,a,"dataIndex")&&c(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function c(f,d,h,v){return f[h]==null||d[v||h]===f[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),lm=["symbol","symbolSize","symbolRotate","symbolOffset"],Hx=lm.concat(["symbolKeepAspect"]),_X={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&to(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function cm(e,t,r){for(var n=t.type==="radial"?$X(e,t,r):BX(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:bt(e)?[e]:ge(e)?e:null}function EP(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&zX(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Re(r,function(a){return a/i}),n/=i)}return[r,n]}var WX=new _o(!0);function Ad(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function zx(e){return typeof e=="string"&&e!=="none"}function Ed(e){var t=e.fill;return t!=null&&t!=="none"}function Wx(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function Vx(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function fm(e,t,r){var n=D2(t.image,t.__image,r);if(fh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*jU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function VX(e,t,r,n){var i,a=Ad(r),o=Ed(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var c=t.path||WX,f=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=f?cm(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=f?cm(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=f||!t.__canvasFillPattern?fm(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(x=f||!t.__canvasStrokePattern?fm(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();c.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=EP(t),C=i[0],M=i[1]);var P=!0;(u||f&Ko)&&(c.setDPR(e.dpr),l?c.setContext(null):(c.setContext(e),P=!1),c.reset(),t.buildPath(c,t.shape,n),c.toStatic(),t.pathUpdated()),P&&c.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&Vx(e,r),o&&Wx(e,r)):(o&&Wx(e,r),a&&Vx(e,r))),C&&e.setLineDash([])}function GX(e,t,r){var n=t.__image=D2(r.image,t.__image,t,t.onload);if(!(!n||!fh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,f=o-u,d=s-c;e.drawImage(n,u,c,f,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function UX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||yo,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=EP(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Ad(r)&&e.strokeText(i,r.x,r.y),Ed(r)&&e.fillText(i,r.x,r.y)):(Ed(r)&&e.fillText(i,r.x,r.y),Ad(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var Gx=["shadowBlur","shadowOffsetX","shadowOffsetY"],Ux=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function PP(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){wr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?lo.opacity:o}(n||t.blend!==r.blend)&&(a||(wr(e,i),a=!0),e.globalCompositeOperation=t.blend||lo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Qt]){if(this._disposed){this.id;return}var a,o,s;if(Ie(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Qt]=!0,!this._model||n){var l=new tK(this._api),u=this._theme,c=this._model=new JE;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},vm);var f={seriesTransition:s,optionChanged:!0};if(i)this[gr]={silent:a,updateParams:f},this[Qt]=!1,this.getZr().wakeUp();else{try{Go(this),Ni.update.call(this,null,f)}catch(d){throw this[gr]=null,this[Qt]=!1,d}this._ssr||this._zr.flush(),this[gr]=null,this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ge.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ge.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return O(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;O(n,function(l){i.eachComponent({mainType:l},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(a.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return O(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(oS[i]){var l=s,u=s,c=-s,f=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();O(Jl,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Qe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),c=o(w.right,c),f=o(w.bottom,f),d.push({dom:x,left:w.left,top:w.top})}}),l*=h,u*=h,c*=h,f*=h;var v=c-l,p=f-u,g=Mo.createCanvas(),m=uw(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return O(d,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Ht({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),O(d,function(_){var b=new zs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return tp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return tp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Cv(i,r);return O(o,function(s,l){l.indexOf("Models")>=0&&O(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)a=a||!!c.containPoint(n);else if(l==="seriesModels"){var f=this._chartsMap[u.__viewId];f&&f.containPoint&&(a=a||f.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Cv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?wX(s,l,n):xX(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;O(mZ,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Al(s,function(v){var p=ft(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=se({},p.eventData),!0},!0),l){var c=l.componentType,f=l.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",f=l.seriesIndex);var d=c&&f!=null&&o.getComponent(c,f),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),O(Ql,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),O(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),CX(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&E2(this.getDom(),F0,"");var n=this,i=n._api,a=n._model;O(n._componentsViews,function(o){o.dispose(a,i)}),O(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Jl[n.id]},t.prototype.resize=function(r){if(!this[Qt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[gr]&&(a==null&&(a=this[gr].silent),i=!0,this[gr]=null),this[Qt]=!0;try{i&&Go(this),Ni.update.call(this,{type:"resize",animation:se({duration:0},r&&r.animation)})}catch(o){throw this[Qt]=!1,o}this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Ie(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!pm[r]){var i=pm[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=se({},r);return n.type=Ql[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Ie(n)||(n={silent:!!n}),!!Pd[r.type]&&this._model){if(this[Qt]){this._pendingActions.push(r);return}var i=n.silent;np.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ge.browser.weChat&&this._throttledZrFlush(),cl.call(this,i),fl.call(this,i)}},t.prototype.updateLabelLayout=function(){yn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Go=function(f){var d=f._scheduler;d.restorePipelines(f._model),d.prepareStageTasks(),ep(f,!0),ep(f,!1),d.plan()},ep=function(f,d){for(var h=f._model,v=f._scheduler,p=d?f._componentsViews:f._chartsViews,g=d?f._componentsMap:f._chartsMap,m=f._zr,y=f._api,_=0;_d.get("hoverLayerThreshold")&&!Ge.node&&!Ge.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=f._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(f,d){var h=f.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(f,d){if(!f.preventAutoZ){var h=f.get("z")||0,v=f.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(f,d,h,v){var p=f.getTextContent(),g=f.getTextGuideLine(),m=f.isGroup;if(m)for(var y=f.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(fs(m))return;if(m instanceof ht&&a7(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}iS=function(f){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return f._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return f._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Ug(v,p),Vr(f)},h.prototype.leaveEmphasis=function(v,p){jg(v,p),Vr(f)},h.prototype.enterBlur=function(v){KY(v),Vr(f)},h.prototype.leaveBlur=function(v){q2(v),Vr(f)},h.prototype.enterSelect=function(v){K2(v),Vr(f)},h.prototype.leaveSelect=function(v){X2(v),Vr(f)},h.prototype.getModel=function(){return f.getModel()},h.prototype.getViewOfComponentModel=function(v){return f.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return f.getViewOfSeriesModel(v)},h}(eP))(f)},GP=function(f){function d(h,v){for(var p=0;p=0)){sS.push(r);var a=MP.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function XP(e,t){pm[e]=t}function CZ(e,t,r){var n=rZ("registerMap");n&&n(e,t,r)}var TZ=AK;Po(k0,rX);Po(Ah,nX);Po(Ah,iX);Po(k0,_X);Po(Ah,bX);Po(BP,JX);qP(rP);KP(aZ,uK);XP("default",aX);Gs({type:uo,event:uo,update:uo},Tr);Gs({type:$f,event:$f,update:$f},Tr);Gs({type:jl,event:jl,update:jl},Tr);Gs({type:Hf,event:Hf,update:Hf},Tr);Gs({type:Yl,event:Yl,update:Yl},Tr);YP("light",gX);YP("dark",mX);function dl(e){return e==null?0:e.length||1}function lS(e){return e}var MZ=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||lS,this._newKeyGetter=i||lS,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var c=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(c,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(f===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(f===1&&d===1)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;s30}var hl=Ie,Fi=Re,kZ=typeof Int32Array>"u"?Array:Int32Array,NZ="e\0\0",uS=-1,FZ=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],BZ=["_approximateExtent"],cS,tf,vl,pl,op,rf,sp,$Z=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;QP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},c=0;c=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===dn;if(l&&!i.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():hl(a)&&(a=se({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,hl(r)?se(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){hl(t)?se(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?se(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;$Y(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){O(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Fi(this.dimensions,this._getDimInfo,this),this.hostModel)),op(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ve(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Uy(arguments)))})},e.internalField=function(){cS=function(t){var r=t._invertedIndicesMap;O(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new kZ(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),i[r]=l}}}(),e}();const rL=$Z;function nL(e,t){A0(e)||(e=E0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ue(),a=[],o=zZ(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&tL(o),l=n===e.dimensionsDefine,u=l?eL(e):JP(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var f=Ue(c),d=new cP(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function zZ(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return O(t,function(a){var o;Ie(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function WZ(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var VZ=function(){function e(t){this.coordSysDims=[],this.axisMap=Ue(),this.categoryAxisMap=Ue(),this.coordSysName=t}return e}();function GZ(e){var t=e.get("coordinateSystem"),r=new VZ(t),n=UZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var UZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Cn).models[0],a=e.getReferringComponents("yAxis",Cn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Uo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Uo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Cn).models[0];t.coordSysDims=["single"],r.set("single",i),Uo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Cn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Uo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Uo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();O(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),c=o[l];r.set(c,u),Uo(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Uo(e){return e.get("type")==="category"}function jZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;YZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,f,d;if(O(a,function(y,_){Me(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!c&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(c=y))}),c&&!n&&!u&&(n=!0),c){f="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,v=c.type,p=0;O(a,function(y){y.coordDim===h&&p++});var g={name:f,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(f,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:f}}function YZ(e){return!QP(e.schema)}function iL(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function qZ(e,t){return iL(e,t)?e.getCalculationInfo("stackResultDimension"):t}function KZ(e,t){var r=e.get("coordinateSystem"),n=M0.get(r),i;return t&&t.coordSysDims&&(i=Re(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=LZ(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function XZ(e,t,r){var n,i;return r&&O(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function aL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=E0(e)):(i=n.getSource(),a=i.sourceFormat===dn);var o=GZ(t),s=KZ(t,o),l=r.useEncodeDefaulter,u=Ve(l)?l:l?Rt(kq,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},f=nL(i,c),d=XZ(f.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(f),v=jZ(t,{schema:f,store:h}),p=new rL(f,t);p.setCalculationInfo(v);var g=d!=null&&ZZ(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function ZZ(e){if(e.sourceFormat===dn){var t=QZ(e.data||[]);return!ge(rc(t))}}function QZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();ch(oL);const Ei=oL;var JZ=0,eQ=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++JZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Re(n,tQ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Me(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ue(this.categories))},e}();function tQ(e){return Ie(e)&&e.value!=null?e.value:e+""}const gm=eQ;function mm(e){return e.type==="interval"||e.type==="log"}function rQ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=S2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=sL(o),l=i.niceTickExtent=[kt(Math.ceil(e[0]/o)*o,s),kt(Math.floor(e[1]/o)*o,s)];return nQ(l,e),i}function lp(e){var t=Math.pow(10,e0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,kt(r*t)}function sL(e){return hi(e)+2}function fS(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function nQ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),fS(e,0,t),fS(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function Eh(e,t){return e>=t[0]&&e<=t[1]}function Ph(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function Lh(e,t){return e*(t[1]-t[0])+t[0]}var lL=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new gm({})),ge(i)&&(i=new gm({categories:Re(i,function(a){return Ie(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Me(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),Eh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(Lh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Ei);Ei.registerClass(lL);const uL=lL;var Ba=kt,cL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return Eh(r,this._extent)},t.prototype.normalize=function(r){return Ph(r,this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=sL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var c=s.length?s[s.length-1].value:a[1];return i[1]>c&&(r?s.push({value:Ba(c+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function hL(e){var t=oQ(e),r=[];return O(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],c=Math.abs(o[1]-o[0]),f=a.scale.getExtent(),d=Math.abs(f[1]-f[0]);s=u?c/d*u:c}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=gt(n.get("barWidth"),s),p=gt(n.get("barMaxWidth"),s),g=gt(n.get("barMinWidth")||(pL(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:W0(a),stackId:z0(n)})}),sQ(r)}function sQ(e){var t={};O(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var c=n.barWidth;c&&!l[u].width&&(l[u].width=c,c=Math.min(s.remainedWidth,c),s.remainedWidth-=c);var f=n.barMaxWidth;f&&(l[u].maxWidth=f);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return O(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Tt(a).length;s=Math.max(35-l*4,15)+"%"}var u=gt(s,o),c=gt(n.gap,1),f=n.remainedWidth,d=n.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),O(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,f-=b+c*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,f-=b+c*b,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var v=0,p;O(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+c)}),p&&(v-=p.width*c);var g=-v/2;O(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+c)})}),r}function lQ(e,t,r){if(e&&t){var n=e[W0(t)];return n!=null&&r!=null?n[z0(r)]:n}}function uQ(e,t){var r=dL(e,t),n=hL(r);O(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=z0(i),u=n[W0(s)][l],c=u.offset,f=u.width;a.setLayout({bandWidth:u.bandWidth,offset:c,size:f})})}function cQ(e){return{seriesType:e,plan:yP(),reset:function(t){if(vL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),c=r.getCalculationInfo("stackResultDimension"),f=iL(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=fQ(i,a),v=pL(t),p=t.get("barMinHeight")||0,g=c&&r.getDimensionIndex(c),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&up(x*3),S=v&&l&&up(x*3),C=v&&up(x),M=n.master.getRect(),P=d?M.width:M.height,A,T=b.getStore(),D=0;(A=_.next())!=null;){var N=T.get(f?g:o,A),H=T.get(s,A),$=h,G=void 0;f&&(G=+N-T.get(o,A));var F=void 0,R=void 0,j=void 0,re=void 0;if(d){var oe=n.dataToPoint([N,H]);if(f){var ye=n.dataToPoint([G,H]);$=ye[0]}F=$,R=oe[1]+y,j=oe[0]-$,re=m,Math.abs(j)>>1;e[i][1]i&&(this._approxInterval=i);var s=nf.length,l=Math.min(dQ(nf,this._approxInterval,0,s),s-1);this._interval=nf[l][1],this._minLevelUnit=nf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return bt(r)?r:+wi(r)},t.prototype.contain=function(r){return Eh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Ph(this.parse(r),this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.type="time",t}(sc),nf=[["second",b0],["minute",w0],["hour",Kl],["quarter-day",Kl*6],["half-day",Kl*12],["day",en*1.2],["half-week",en*3.5],["week",en*7],["month",en*31],["quarter",en*95],["half-year",ex/2],["year",ex]];function hQ(e,t,r,n){var i=wi(t),a=wi(r),o=function(v){return rx(i,v,n)===rx(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},c=function(){return u()&&o("hour")},f=function(){return c()&&o("minute")},d=function(){return f()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return h()}}function vQ(e,t){return e/=en,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function pQ(e){var t=30*en;return e/=t,e>6?6:e>3?3:e>2?2:1}function gQ(e){return e/=Kl,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function dS(e,t){return e/=t?w0:b0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function mQ(e){return S2(e,!0)}function yQ(e,t,r){var n=new Date(e);switch(ds(t)){case"year":case"month":n[FE(r)](0);case"day":n[BE(r)](1);case"hour":n[$E(r)](0);case"minute":n[HE(r)](0);case"second":n[zE(r)](0),n[WE(r)](0)}return n.getTime()}function _Q(e,t,r,n){var i=1e4,a=kE,o=0;function s(P,A,T,D,N,H,$){for(var G=new Date(A),F=A,R=G[D]();F1&&H===0&&T.unshift({value:T[0].value-F})}}for(var H=0;H=n[0]&&y<=n[1]&&f++)}var _=(n[1]-n[0])/t;if(f>_*1.5&&d>_/1.5||(u.push(g),f>_||e===a[h]))break}c=[]}}}for(var b=Vt(Re(u,function(P){return Vt(P,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(P){return P.length>0}),x=[],w=b.length-1,h=0;h0;)a*=10;var s=[kt(SQ(n[0]/a)*a),kt(xQ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){eu.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=vn(r)/vn(this.base),Eh(r,this._extent)},t.prototype.normalize=function(r){return r=vn(r)/vn(this.base),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Lh(r,this._extent),af(this.base,r)},t.type="log",t}(Ei),mL=V0.prototype;mL.getMinorTicks=eu.getMinorTicks;mL.getLabel=eu.getLabel;function of(e,t){return wQ(e,hi(t))}Ei.registerClass(V0);const CQ=V0;var TQ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(t,r){this[AQ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=MQ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),MQ={min:"_determinedMin",max:"_determinedMax"},AQ={min:"_dataMin",max:"_dataMax"};function EQ(e,t,r){var n=e.rawExtentInfo;return n||(n=new TQ(e,t,r),e.rawExtentInfo=n,n)}function sf(e,t){return t==null?null:cd(t)?NaN:e.parse(t)}function yL(e,t){var r=e.type,n=EQ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=dL("bar",o),l=!1;if(O(s,function(f){l=l||f.getBaseAxis()===t.axis}),l){var u=hL(s),c=PQ(i,a,t,u);i=c.min,a=c.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function PQ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=lQ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;O(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;O(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=t-e,f=1-(s+l)/a,d=c/f-c;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function vS(e,t){var r=t,n=yL(e,r),i=n.extent,a=r.get("splitNumber");e instanceof CQ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function LQ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new uL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new bQ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Ei.getClass(t)||sc)}}function DQ(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function lc(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Me(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ve(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(G0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function G0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function IQ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof uL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=lc(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;c=0||(pS.push(e),Ve(e)&&(e={install:e}),e.install(NQ))}var Nu=Et();function FQ(e){return e.type==="category"?$Q(e):zQ(e)}function BQ(e,t){return e.type==="category"?HQ(e,t):{ticks:Re(e.scale.getTicks(),function(r){return r.value})}}function $Q(e){var t=e.getLabelModel(),r=bL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function bL(e,t){var r=wL(e,"labels"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;return Ve(n)?a=TL(e,n):(o=n==="auto"?WQ(e):n,a=CL(e,o)),SL(r,n,{labels:a,labelCategoryInterval:o})}function HQ(e,t){var r=wL(e,"ticks"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ve(n))a=TL(e,n,!0);else if(n==="auto"){var s=bL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Re(s.labels,function(l){return l.tickValue})}else o=n,a=CL(e,o,!0);return SL(r,n,{ticks:a,tickCategoryInterval:o})}function zQ(e){var t=e.scale.getTicks(),r=lc(e);return{labels:Re(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function wL(e,t){return Nu(e)[t]||(Nu(e)[t]=[])}function xL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(n)),f=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Zy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/c,y=h/f;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Nu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function GQ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function CL(e,t,r){var n=lc(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],c=i.count();u!==0&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=_L(e),d=o.get("showMinLabel")||f,h=o.get("showMaxLabel")||f;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function TL(e,t,r){var n=e.scale,i=lc(e),a=[];return O(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var gS=[0,1],UQ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return mj(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count())),$g(t,gS,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count()));var a=$g(t,n,gS,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=BQ(this,r),i=n.ticks,a=Re(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return jQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Re(n,function(a){return Re(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return FQ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return VQ(this)},e}();function mS(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function jQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;O(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();s=1+c[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var f=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=kt(h),v=kt(v),f?h>v:hi&&(i+=gl);var h=Math.atan2(s,o);if(h<0&&(h+=gl),h>=n&&h<=i||h+gl>=n&&h+gl<=i)return l[0]=c,l[1]=f,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function Dd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,c=r-e,f=n-t,d=Math.sqrt(c*c+f*f);c/=d,f/=d;var h=l*c+u*f,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*c,g=o[1]=t+v*f;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function ML(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),c=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(c-a)*(c-a))}var _n=[];function ZQ(e,t,r){var n=ML(t.x,t.y,t.width,t.height,e.x,e.y,_n);return r.set(_n[0],_n[1]),n}function QQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,c=t.data,f=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),Ne.sub(Un,Tn,ut),Ne.sub(zn,Pt,ut);var r=Un.len(),n=zn.len();if(!(r<.001||n<.001)){Un.scale(1/r),zn.scale(1/n);var i=Un.dot(zn),a=Math.cos(t);if(a1&&Ne.copy(sr,Pt),sr.toArray(e[1])}}}}function JQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),Ne.sub(Un,ut,Tn),Ne.sub(zn,Pt,ut);var n=Un.len(),i=zn.len();if(!(n<.001||i<.001)){Un.scale(1/n),zn.scale(1/i);var a=Un.dot(t),o=Math.cos(r);if(a=l)Ne.copy(sr,Pt);else{sr.scaleAndAdd(zn,s/Math.tan(Math.PI/2-c));var f=Pt.x!==ut.x?(sr.x-ut.x)/(Pt.x-ut.x):(sr.y-ut.y)/(Pt.y-ut.y);if(isNaN(f))return;f<0?Ne.copy(sr,ut):f>1&&Ne.copy(sr,Pt)}sr.toArray(e[1])}}}}function _S(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function eJ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Cg(n[0],n[1]),a=Cg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=nv([],n[1],n[0],o/i),l=nv([],n[1],n[2],o/a),u=nv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var c=1;c0&&a&&x(-c/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&S(-m),y<0&&S(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,M,P){if(C<0){var A=Math.min(M,-C);if(A>0){x(A*P,0,o);var T=A+C;T<0&&w(-T*P,1)}else w(-C*P,1)}}function x(C,M,P){C!==0&&(u=!0);for(var A=M;A0)for(var T=0;T0;T--){var $=P[T-1]*H;x(-$,T,o)}}}function S(C){var M=C<0?-1:1;C=Math.abs(C);for(var P=Math.ceil(C/(o-1)),A=0;A0?x(P,0,A+1):x(-P,o-A-1,o),C-=P,C<=0)return}return u}function tJ(e,t,r,n){return DL(e,"x","width",t,r,n)}function IL(e,t,r,n){return DL(e,"y","height",t,r,n)}function OL(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new et(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Pr(n,u,r,l)}else if(n.attr(u),!oc(n).valueAnimation){var f=qe(n.style.opacity,1);n.style.opacity=0,Hr(n,{style:{opacity:f}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};lf(h,u,uf),lf(h,n.states.select,uf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};lf(v,u,uf),lf(v,n.states.emphasis,uf)}lq(n,l,c,r,r)}if(i&&!i.ignore&&!i.invisible){var a=iJ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Pr(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Hr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const oJ=aJ;var fp=Et();function sJ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=fp(r).labelManager;i||(i=fp(r).labelManager=new oJ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=fp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function lJ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Is(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function cJ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,c=r.get(["lineStyle","width"])||2;o-=c/2,s-=c/2,l+=c,u+=c,o=Math.floor(o),l=Math.round(l);var f=new Ht({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(f.shape.x+=l),f.shape.width=0):(v||(f.shape.y+=u),f.shape.height=0);var p=Ve(i)?function(g){i(g,f)}:null;Hr(f,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return f}function fJ(e,t,r){var n=e.getArea(),i=kt(n.r0,1),a=kt(n.r,1),o=new Ao({shape:{cx:kt(e.cx,1),cy:kt(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Hr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function dJ(e,t,r,n,i){if(e){if(e.type==="polar")return fJ(e,t,r);if(e.type==="cartesian2d")return cJ(e,t,r,n,i)}else return null;return null}function RL(e,t){return e.type===t}var hJ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),c=l.getExtent(),f=n.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(f||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Me(a)?v=hJ[a]:Ve(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,vJ))}}}}}var kL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return aL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)O(a.getAxes(),function(f,d){if(f.type==="category"){var h=f.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=f.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;o[c]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(wo);wo.registerClass(kL);const wS=kL;var gJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return aL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=IE(wS.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(wS);const mJ=gJ;var yJ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),_J=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new yJ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,c=n.startAngle,f=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?f-cMath.PI/2&&cs)return!0;s=f}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){wd(a,r,ft(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(co),SS={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=dp(t.x,e.x),s=hp(t.x+t.width,i),l=dp(t.y,e.y),u=hp(t.y+t.height,a),c=si?s:o,t.y=f&&l>a?u:l,t.width=c?0:s-o,t.height=f?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||f},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=hp(t.r,e.r),a=dp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},CS={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Ht({shape:se({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var c=u.shape,f=i?"height":"width";c[f]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?xS:Ao,c=new u({shape:n,z2:1});c.name="item";var f=NL(i);if(c.calculateTextPosition=bJ(f,{isRoundCap:u===xS}),a){var d=c.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Pr:Hr)(c,{shape:v},a)}return c}};function CJ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function TS(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Pr:Hr)(r,{shape:l},t,i,null);var c=t?e.baseAxis.model:null;(o?Pr:Hr)(r,{shape:u},c,i)}function MS(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function AJ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function NL(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function ES(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var c=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",f=PE(n);m0(e,f,{labelFetcher:a,labelDataIndex:r,defaultText:lJ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,wJ(e,h==="outside"?c:h,NL(o),n.get(["label","rotate"]))}sq(d,f,a.getRawValue(r),function(p){return uJ(t,p)});var v=n.getModel(["emphasis"]);J2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),eE(e,n),AJ(i)&&(e.style.fill="none",e.style.stroke="none",O(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function EJ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var PJ=function(){function e(){}return e}(),PS=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new PJ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,c=0;c=0?r:null},30,!1);function LJ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,f=a.length/3;c=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[c]}return-1}function FL(e,t,r){if(RL(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function DJ(e,t,r){var n=e.type==="polar"?Ao:Ht;return new n({shape:FL(t,r,e),silent:!0,z2:0})}const IJ=SJ;function OJ(e){e.registerChartView(IJ),e.registerSeriesModel(mJ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Rt(uQ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,cQ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,pJ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var hf=Math.PI*2,IS=Math.PI/180;function BL(e,t){return Ls(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function $L(e,t){var r=BL(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=gt(r.width,t.getWidth()),o=gt(r.height,t.getHeight()),s=Math.min(a,o),l=gt(i[0],s/2),u=gt(i[1],s/2),c,f,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);c=h[0]||0,f=h[1]||0}else ge(n)||(n=[n,n]),c=gt(n[0],a)+r.x,f=gt(n[1],o)+r.y;return{cx:c,cy:f,r0:l,r:u}}function RJ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=BL(n,r),s=$L(n,r),l=s.cx,u=s.cy,c=s.r,f=s.r0,d=-n.get("startAngle")*IS,h=n.get("minAngle")*IS,v=0;i.each(a,function(P){!isNaN(P)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=hf,w=0,S=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:c}),i.each(a,function(P,A){var T;if(isNaN(P)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:f,r:y?NaN:c});return}y!=="area"?T=p===0&&_?g:P*g:T=hf/v,Tr?m:g,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-f)/2}}}function vp(e){return e.position==="center"}function BJ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*NJ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,f=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,M=S.getTextContent(),P=S.getTextGuideLine(),A=t.getItemModel(w),T=A.getModel("label"),D=T.get("position")||A.get(["emphasis","label","position"]),N=T.get("distanceToLabelLine"),H=T.get("alignTo"),$=gt(T.get("edgeDistance"),u),G=T.get("bleedMargin"),F=A.getModel("labelLine"),R=F.get("length");R=gt(R,u);var j=F.get("length2");if(j=gt(j,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":oe>0?"left":"right"}var U=Math.PI,K=0,ne=T.get("rotate");if(bt(ne))K=ne*(U/180);else if(D==="center")K=0;else if(ne==="radial"||ne===!0){var fe=oe<0?-re+U:-re;K=fe}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(oe,ye);te<0&&(te=U*2+te);var ie=ye>0;ie&&(te=U+te),K=te-U}if(a=!!K,M.x=Ae,M.y=V,M.rotation=K,M.setStyle({verticalAlign:"middle"}),q){M.setStyle({align:W});var he=M.states.select;he&&(he.x+=M.x,he.y+=M.y)}else{var X=M.getBoundingRect().clone();X.applyTransform(M.getComputedTransform());var we=(M.style.margin||0)+2.1;X.y-=we/2,X.height+=we,r.push({label:M,labelLine:P,position:D,len:R,len2:j,minTurnAngle:F.get("minTurnAngle"),maxSurfaceAngle:F.get("maxSurfaceAngle"),surfaceNormal:new Ne(oe,ye),linePoints:Q,textAlign:W,labelDistance:N,labelAlignTo:H,edgeDistance:$,bleedMargin:G,rect:X,unconstrainedWidth:X.width,labelStyleWidth:M.style.width})}S.setTextConfig({inside:q})}}),!a&&e.get("avoidLabelOverlap")&&FJ(r,n,i,l,u,d,c,f);for(var p=0;p0){for(var c=o.getItemLayout(0),f=1;isNaN(c&&c.startAngle)&&f=a.r0}},t.type="pie",t}(co);const zJ=HJ;function WJ(e,t,r){t=ge(t)&&{coordDimensions:t}||se({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=nL(n,t).dimensions,a=new rL(i,e);return a.initData(n,r),a}var VJ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const GJ=VJ;var UJ=Et(),jJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new GJ(_t(this.getData,this),_t(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return WJ(this,{coordDimensions:["value"],encodeDefaulter:Rt(Nq,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=UJ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=yj(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Hg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(wo);const YJ=jJ;function qJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(bt(o)&&!isNaN(o)&&o<0)})}}}function KJ(e){e.registerChartView(zJ),e.registerSeriesModel(YJ),SX("pie",e.registerAction),e.registerLayout(Rt(RJ,"pie")),e.registerProcessor(kJ("pie")),e.registerProcessor(qJ("pie"))}var XJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(xt);const ZJ=XJ;var ym=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Cn).models[0]},t.type="cartesian2dAxis",t}(xt);Jn(ym,kQ);var zL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},QJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},zL),j0=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},zL),JJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},j0),eee=dt({logBase:10},j0);const tee={category:QJ,value:j0,time:JJ,log:eee};var ree={value:1,category:1,time:1,log:1};function RS(e,t,r,n){O(ree,function(i,a){var o=st(st({},tee[a],!0),n,!0),s=function(l){pe(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+a,c}return u.prototype.mergeDefaultAndTheme=function(c,f){var d=Du(this),h=d?Sh(c):{},v=f.getTheme();st(c,v.get(a+"Axis")),st(c,this.getDefaultOption()),c.type=kS(c),d&&Ds(c,h,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=gm.createByAxisModel(this))},u.prototype.getCategories=function(c){var f=this.option;if(f.type==="category")return c?f.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",kS)}function kS(e){return e.type||(e.data?"category":"value")}var nee=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Re(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Vt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const iee=nee;var _m=["x","y"];function NS(e){return e.type==="interval"||e.type==="time"}var aee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=_m,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!NS(r)||!NS(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var c=(s[0]-o[0])/l,f=(s[1]-o[1])/u,d=o[0]-i[0]*c,h=o[1]-a[0]*f,v=this._transform=[c,0,0,f,d,h];this._invTransform=lh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new et(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return on(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return on(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new et(i,a,o,s)},t}(iee),oee=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(YQ);const see=oee;function bm(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,c=n.getRect(),f=[c.x,c.x+c.width,c.y,c.y+c.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[f[2]-h,f[3]+h]:[f[0]-h,f[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:f[0],u==="x"?v[d[l]]:f[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),xu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function FS(e){return e.get("coordinateSystem")==="cartesian2d"}function BS(e){var t={xAxisModel:null,yAxisModel:null};return O(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Cn).models[0];t[n]=a}),t}var pp=Math.log;function lee(e,t,r){var n=sc.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=yL(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if(e.type==="log"){var d=pp(e.base);u=[pp(u[0])/d,pp(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:c,fixMax:f});var h=n.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(c&&f)v=(g-p)/o;else if(c)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=lp(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=lp(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=kt(g-y),p<0&&u[0]>=0?(p=0,g=kt(y)):g>0&&u[1]<=0&&(g=0,p=-kt(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var uee=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=_m,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Tt(o),u=l.length;if(u){for(var c=[],f=u-1;f>=0;f--){var d=+l[f],h=o[d],v=h.model,p=h.scale;mm(p)&&v.get("alignTicks")&&v.get("interval")==null?c.push(h):(vS(p,v),mm(p)&&(s=h))}c.length&&(s||(s=c.pop(),vS(s.scale,s.model)),O(c,function(g){lee(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};O(n.x,function(o){$S(n,"y",o,a)}),O(n.y,function(o){$S(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ls(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(O(s,function(u){if(!u.model.get(["axisLabel","inside"])){var c=IQ(u);if(c){var f=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[f]-=c[f]+d,u.position==="top"?o.y+=c.height+d:u.position==="left"&&(o.x+=c.width+d)}}}),l()),O(this._coordsList,function(u){u.calcAffineTransform()});function l(){O(s,function(u){var c=u.isHorizontal(),f=c?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(f[d],f[1-d]),cee(u,c?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Ie(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):md(i-Ki)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),zS={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(on(s,s,o),on(l,l,o));var c=se({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new bo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Au(f.shape,f.style.lineWidth),f.anid="line",r.add(f);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Me(d)&&(d=[d,d]),(Me(h)||bt(h))&&(h=[h,h]);var v=FX(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];O([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=R0(d[y],-p/2,-g/2,p,g,c.stroke,!0),b=m.r+m.offset,x=u?l:s;_.attr({rotation:m.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=vee(r,n,t,e),a=gee(r,n,t,e);if(hee(t,a,i),pee(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=LL(Re(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));OL(o)}},axisName:function(e,t,r,n){var i=xu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,f=[a==="start"?u[0]-c*l:a==="end"?u[1]+c*l:(u[0]+u[1])/2,VS(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Ki/180);var v;VS(a)?d=fo.innerTextLayout(e.rotation,h??e.rotation,o):(d=dee(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=xu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new dr({x:f[0],y:f[1],rotation:d.rotation,silent:fo.isLabelSilent(t),style:la(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(p0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=fo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,ft(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function dee(e,t,r,n){var i=x2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return md(i-Ki/2)?(o=l?"bottom":"top",a="center"):md(i-Ki*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iKi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function hee(e,t,r){if(!_L(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],c=r[1],f=r[r.length-1],d=r[r.length-2];n===!1?(Gr(a),Gr(u)):WS(a,o)&&(n?(Gr(o),Gr(c)):(Gr(a),Gr(u))),i===!1?(Gr(s),Gr(f)):WS(l,s)&&(i?(Gr(l),Gr(d)):(Gr(s),Gr(f)))}}function Gr(e){e&&(e.ignore=!0)}function WS(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Yy([]);return qy(i,i,-e.rotation),r.applyTransform(us([],i,e.getLocalTransform())),n.applyTransform(us([],i,t.getLocalTransform())),r.intersect(n)}}function VS(e){return e==="middle"||e==="center"}function WL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function xee(e){var t=Y0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=wm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var f=this.__startIndex;f15)break}}N.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var P=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?pf:0),this._needsManuallyCompositing),c.__builtin__||Gy("ZLevel "+u+" has been used by unkown layer "+c.id),c!==a&&(c.__used=!0,c.__startIndex!==l&&(c.__dirty=!0),c.__startIndex=l,c.incremental?c.__drawIndex=-1:c.__drawIndex=l,r(l),a=c),i.__dirty&Rr&&!i.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(f,d){!f.__used&&f.getElementCount()>0&&(f.__dirty=!0,f.__startIndex=f.__endIndex=f.__drawIndex=0),f.__dirty&&f.__drawIndex<0&&(f.__drawIndex=f.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,O(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=Y0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new nq[a.type](qS(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new dr(qS(r.label));t.add(a),XS(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),XS(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=v0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){ZA(u.event)},onmousedown:_p(this._onHandleDragMove,this,0,0),drift:_p(this._onHandleDragMove,this),ondragend:_p(this._onHandleDragEnd,this)}),n.add(i)),ZS(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,bP(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){KS(this._axisPointerModel,!r&&this._moveAnimation,this._handle,bp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(bp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(bp(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),sm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function KS(e,t,r,n){YL(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Pr(r,n,e):(r.stopAnimation(),r.attr(n)))}function YL(e,t){if(Ie(e)&&Ie(t)){var r=!0;return O(t,function(n,i){r=r&&YL(e[i],n)}),!!r}else return e===t}function XS(e,t){e[t.get(["label","show"])?"show":"hide"]()}function bp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function ZS(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const zee=Hee;function Wee(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function Vee(e,t,r,n,i){var a=r.get("value"),o=qL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=xh(s.get("padding")||0),u=s.getFont(),c=Zy(o,u),f=i.position,d=c.width+l[1]+l[3],h=c.height+l[0]+l[2],v=i.align;v==="right"&&(f[0]-=d),v==="center"&&(f[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(f[1]-=h),p==="middle"&&(f[1]-=h/2),Gee(f,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:f[0],y:f[1],style:la(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function Gee(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function qL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:G0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};O(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,f=u&&u.getDataParams(c);f&&s.seriesData.push(f)}),Me(o)?a=o.replace("{value}",a):Ve(o)&&(a=o(s))}return a}function KL(e,t,r){var n=Su();return qy(n,n,r.rotation),Eg(n,n,r.position),h0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function Uee(e,t,r,n,i,a){var o=VL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),Vee(t,n,i,a,{position:KL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function jee(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function Yee(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var qee=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),c=QS(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=Wee(a),h=Kee[u](s,f,c);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=bm(l.model,i);Uee(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=bm(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=KL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=QS(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,f=[r.x,r.y];f[c]+=n[c],f[c]=Math.min(l[1],f[c]),f[c]=Math.max(l[0],f[c]);var d=(u[1]+u[0])/2,h=[d,d];h[c]=f[c];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:f[0],y:f[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[c]}},t}(zee);function QS(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var Kee={line:function(e,t,r){var n=jee([t,r[0]],[t,r[1]],JS(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:Yee([t-n/2,r[0]],[n,i],JS(e))}}};function JS(e){return e.dim==="x"?0:1}const Xee=qee;var Zee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(xt);const Qee=Zee;var vi=Et(),Jee=O;function XL(e,t,r){if(!Ge.node){var n=t.getZr();vi(n).records||(vi(n).records={}),ete(n,t);var i=vi(n).records[e]||(vi(n).records[e]={});i.handler=r}}function ete(e,t){if(vi(e).initialized)return;vi(e).initialized=!0,r("click",Rt(eC,"click")),r("mousemove",Rt(eC,"mousemove")),r("globalout",rte);function r(n,i){e.on(n,function(a){var o=nte(t);Jee(vi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),tte(o.pendings,t)})}}function tte(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function rte(e,t,r){e.handler("leave",null,r)}function eC(e,t,r,n){t.handler(e,r,n)}function nte(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function Sm(e,t){if(!Ge.node){var r=t.getZr(),n=(vi(r).records||{})[e];n&&(vi(r).records[e]=null)}}var ite=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";XL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){Sm("axisPointer",n)},t.prototype.dispose=function(r,n){Sm("axisPointer",n)},t.type="axisPointer",t}(xi);const ate=ite;function ZL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=nc(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),f=c.dim,d=u.dim,h=f==="x"||f==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Re(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var tC=Et();function ote(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||_t(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Uf(i)&&(i=ZL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Uf(i),u=a.axesInfo,c=s.axesInfo,f=n==="leave"||Uf(i),d={},h={},v={list:[],map:{}},p={showPointer:Rt(lte,h),showTooltip:Rt(ute,v)};O(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);O(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=hte(u,b);if(!f&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&rC(b,C,p,!1,d)}})});var g={};return O(c,function(m,y){var _=m.linkGroup;_&&!h[y]&&O(_.axesInfo,function(b,x){var w=h[x];if(b!==m&&w){var S=w.value;_.mapper&&(S=m.axis.scale.parse(_.mapper(S,nC(b),nC(m)))),g[m.key]=S}})}),O(g,function(m,y){rC(c[y],m,p,!0,d)}),cte(h,c,d),fte(v,i,e,o),dte(c,o,r),d}}function rC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=ste(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&se(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function ste(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return O(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),f,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(c,e,r);d=h.dataIndices,f=h.nestestValue}else{if(d=l.getData().indicesOfNearest(c[0],e,r.type==="category"?.5:null),!d.length)return;f=l.getData().get(c[0],d[0])}if(!(f==null||!isFinite(f))){var v=e-f,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=f,a.length=0),O(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function lte(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function ute(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Fu(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function cte(e,t,r){var n=r.axesInfo=[];O(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function fte(e,t,r,n){if(Uf(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function dte(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=tC(n)[i]||{},o=tC(n)[i]={};O(e,function(u,c){var f=u.axisPointerModel.option;f.status==="show"&&O(f.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];O(a,function(u,c){!o[c]&&l.push(u)}),O(o,function(u,c){!a[c]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function hte(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function nC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Uf(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function QL(e){GL.registerAxisPointerClass("CartesianAxisPointer",Xee),e.registerComponentModel(Qee),e.registerComponentView(ate),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=mee(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},ote)}function vte(e){ua(Iee),ua(QL)}function pte(e,t){var r=xh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Ht({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(xt);const mte=gte;function JL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function eD(e){if(Ge.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var c=u*Math.PI/180,f=o+i,d=f*Math.abs(Math.cos(c))+f*Math.abs(Math.sin(c)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-f)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Cte(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ge.transformSupported?","+q0+n:",left"+n+",top"+n),bte+":"+i}function iC(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ge.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ge.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+q0+":"+o+";":[["top",0],["left",0],[tD,o]]}function Tte(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),O(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Mte(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),c=e.getModel("textStyle"),f=mP(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(Cte(i,r)),a&&n.push("background-color:"+a),O(["width","color","radius"],function(h){var v="border-"+h,p=GE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(Tte(c)),f!=null&&n.push("padding:"+xh(f).join("px ")+"px"),n.join(";")+";"}function aC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&n9(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Ate=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ge.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;aC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,c=a.painter.getViewportRoot();jr(c,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=_te(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=wte+Mte(t,!this._firstShow,this._longHide)+iC(a[0],a[1],!0)+("border-color:"+Lu(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Me(a)&&n.get("trigger")==="item"&&!JL(n)&&(s=Ste(n,i,a)),Me(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ge.node||!i.getDom())){var o=lC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Nte(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var c=Dte;c.x=a.x,c.y=a.y,c.update(),ft(c).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:c},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var f=ZL(a,n),d=f.point[0],h=f.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:f.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(lC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),f=ml([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(f.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Al(i,function(u){if(ft(u).dataIndex!=null)return s=u,!0;if(ft(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=_t(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=ml([n.tooltipOption],a),l=this._renderMode,u=[],c=Ou("section",{blocks:[],noHeader:!0}),f=[],d=new Xv;O(r,function(y){O(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=qL(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Ou("section",{header:w,noHeader:!Vn(w),sortBlocks:!0,blocks:[]});c.blocks.push(S),O(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),P=C.dataIndexInside,A=M.getDataParams(P);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=G0(b.axis,{value:x}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Lu(A.color),l);var T=Sx(M.formatTooltip(P,!0,null)),D=T.frag;if(D){var N=ml([M],a).get("valueFormatter");S.blocks.push(N?se({valueFormatter:N},D):D)}T.text&&f.push(T.text),u.push(A)}})}})}),c.blocks.reverse(),f.reverse();var h=n.position,v=s.get("order"),p=Ex(c,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&f.unshift(p);var g=l==="richText"?` + +`:"
",m=f.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=ft(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,f=o.dataType,d=u.getData(f),h=this._renderMode,v=r.positionDefault,p=ml([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(c,f),y=new Xv;m.marker=y.makeTooltipMarker("item",Lu(m.color),h);var _=Sx(u.formatTooltip(c,!1,f)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?Ex(x?se({valueFormatter:x},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+c;this._showOrMove(p,function(){this._showTooltipContent(p,S,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=ft(n),o=a.tooltipConfig,s=o.option||{};if(Me(s)){var l=s;s={content:l,formatter:l}}var u=[s],c=this._ecModel.getComponent(a.componentMainType,a.componentIndex);c&&u.push(c),u.push({formatter:s.content});var f=r.positionDefault,d=ml(u,this._tooltipModel,f?{position:f}:null),h=d.get("content"),v=Math.random()+"",p=new Xv;this._showOrMove(d,function(){var g=Qe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,c){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var f=this._tooltipContent;f.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Me(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=mh(m.axisValue,h,g)),h=UE(h,i,!0)}else if(Ve(d)){var _=_t(function(b,x){b===this._ticket&&(f.setContent(x,c,r,p,l),this._updatePosition(r,l,o,s,f,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;f.setContent(h,c,r,p,l),f.show(r,p),this._updatePosition(r,l,o,s,f,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get("position");var f=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ve(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,c],contentSize:f.slice()})),ge(n))i=gt(n[0],u),a=gt(n[1],c);else if(Ie(n)){var p=n;p.width=f[0],p.height=f[1];var g=Ls(p,{width:u,height:c});i=g.x,a=g.y,d=null,h=null}else if(Me(n)&&l){var m=kte(n,v,f,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=Ote(i,a,o,u,c,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=uC(d)?f[0]/2:d==="right"?f[0]:0),h&&(a-=uC(h)?f[1]/2:h==="bottom"?f[1]:0),JL(r)){var m=Rte(i,a,o,u,c);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&O(i,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},f=c.dataByAxis||[];o=o&&u.length===f.length,o&&O(u,function(d,h){var v=f[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&O(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&O(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ge.node||!n.getDom()||(sm(this,"_updatePosition"),this._tooltipContent.dispose(),Sm("itemTooltip",n))},t.type="tooltip",t}(xi);function ml(e,t,r){var n=t.ecModel,i;r?(i=new rr(r,n,n),i=new rr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof rr&&(o=o.get("tooltip",!0)),Me(o)&&(o={formatter:o}),o&&(i=new rr(o,i,n)))}return i}function lC(e,t){return e.dispatchAction||_t(t.dispatchAction,t)}function Ote(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Rte(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function kte(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+o;break;case"left":s=t.x-i-o,l=t.y+c/2-a/2;break;case"right":s=t.x+u+o,l=t.y+c/2-a/2}return[s,l]}function uC(e){return e==="center"||e==="middle"}function Nte(e,t,r){var n=r0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=ic(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var c=ft(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const Fte=Ite;function Bte(e){ua(QL),e.registerComponentModel(mte),e.registerComponentView(Fte),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Tr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Tr)}var $te=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(xt),Hte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),c=new dr({style:la(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),f=c.getBoundingRect(),d=r.get("subtext"),h=new dr({style:la(s,{text:d,fill:s.getTextColor(),y:f.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);c.silent=!v&&!g,h.silent=!p&&!g,v&&c.on("click",function(){ix(v,"_"+r.get("target"))}),p&&h.on("click",function(){ix(p,"_"+r.get("subtarget"))}),ft(c).eventData=ft(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(c),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};c.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Ht({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(xi);function zte(e){e.registerComponentModel($te),e.registerComponentView(Hte)}var Wte=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},Vte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&O(n,function(a,o){Me(a)&&(a={type:a}),n[o]=st(a,Wte(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(xt);const Cm=Vte;var jo=Rt,Tm=O,gf=cn,Gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new gf),this.group.add(this._selectorGroup=new gf),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var c=r.getBoxLayoutParams(),f={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ls(c,f,d),v=this.layoutInner(r,o,h,a,l,u),p=Ls(dt({width:v.width,height:v.height},c),f,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=pte(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),c=Ue(),f=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),Tm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` +`)){var g=new gf;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!c.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,x,b,f,a);w.on("click",jo(cC,p,null,a,d)).on("mouseover",jo(Mm,m.name,null,a,d)).on("mouseout",jo(Am,m.name,null,a,d)),c.set(p,!0)}else i.eachRawSeries(function(S){if(!c.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),P=C.getItemVisual(M,"style"),A=C.getItemVisual(M,"legendIcon"),T=so(P.fill);T&&T[3]===0&&(T[3]=.2,P=se(se({},P),{fill:Ky(T,"rgba")}));var D=this._createItem(S,p,v,h,n,r,{},P,A,f,a);D.on("click",jo(cC,null,p,a,d)).on("mouseover",jo(Mm,null,p,a,d)).on("mouseout",jo(Am,null,p,a,d)),c.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Tm(r,function(u){var c=u.type,f=new dr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(f);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);m0(f,{normal:d,emphasis:h},{defaultText:u.title}),Kg(f)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,c,f,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");c=_||c||"roundRect";var b=Ute(c,a,l,u,h,g,d),x=new gf,w=a.getModel("textStyle");if(Ve(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:c,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;x.add(jte({itemWidth:v,itemHeight:p,icon:c,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,P=o.get("formatter"),A=n;Me(P)&&P?A=P.replace("{name}",n??""):Ve(P)&&(A=P(n));var T=a.get("inactiveColor");x.add(new dr({style:la(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():T,align:M,verticalAlign:"middle"})}));var D=new Ht({shape:x.getBoundingRect(),invisible:!0}),N=a.getModel("tooltip");return N.get("show")&&p0({el:D,componentModel:o,itemName:n,itemTooltipOption:N.option}),x.add(D),x.eachChild(function(H){H.silent=!0}),D.silent=!f,this.getContentGroup().add(x),Kg(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Xl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var c=l.getBoundingRect(),f=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),o){Xl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=c[g]+v:f[p]+=d[g]+v,h[1-p]+=c[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=f[0],l.y=f[1];var _={x:0,y:0};return _[g]=c[g]+v+d[g],_[m]=Math.max(c[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=f[0],l.y=f[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(xi);function Ute(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),Tm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",f=l.getShallow("decal");u.decal=!f||f==="inherit"?n.decal:dm(f,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[c]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[c];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function jte(e){var t=e.icon||"roundRect",r=R0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function cC(e,t,r,n){Am(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),Mm(e,t,r,n)}function nD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=c[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,c.setPosition(g),f.setPosition(m),d.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:h[o],x[s]=Math.max(h[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),f.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],f.setClipPath(new Ht({shape:w})),f.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Pr(c,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;O(["pagePrev","pageNext"],function(c){var f=c+"DataIndex",d=n[f]!=null,h=i.childOfName(c);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Me(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=wp[o],l=xp[o],u=this._findTargetItemIndex(n),c=i.children(),f=c[u],d=c.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!f)return v;var p=b(f);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(c[g]),(!_&&y.e>m.s+a||_&&!x(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(c[g]),(!_||!x(y,_.s))&&m.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(iD);const Qte=Zte;function Jte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ere(e){ua(aD),e.registerComponentModel(Xte),e.registerComponentView(Qte),Jte(e)}function tre(e){ua(aD),ua(ere)}ua([KJ,OJ,$ee,sJ,zte,Bte,tre,vte]);function rre(e,t,r){const n=B0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return aa.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function nre(e,t){const r=B0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function ire(e,t,r){const n={width:"600px",height:"400px"},i=B0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const c of l){const f='';u+=f+c.seriesName+": "+aa.fileSize(c.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return aa.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const hC=ce({__name:"LongSpan",props:{content:null,length:null},setup(e){return(t,r)=>{const n=Ju;return Y(),me(pt,null,[ee(n,{content:e.content,placement:"top"},{default:Z(()=>[nr(ae("span",null,Te(e.content.slice(0,e.length))+"...",513),[[yi,e.content.length>e.length]])]),_:1},8,["content"]),nr(ae("span",null,Te(e.content),513),[[yi,e.content.length<30]])],64)}}}),are={class:"source"},ore=ae("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),sre=ae("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),lre=ce({__name:"ServerOverview",setup(e){let t=B({version:"",bind_port:0,bind_udp_port:0,kcp_bind_port:0,quic_bind_port:0,vhost_http_port:0,vhost_https_port:0,tcpmux_httpconnect_port:0,subdomain_host:"",max_pool_count:0,max_ports_per_client:"",allow_ports_str:"",tls_only:!1,heart_beat_timeout:0,client_counts:0,cur_conns:0,proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.bind_udp_port=n.bind_udp_port,t.value.kcp_bind_port=n.kcp_bind_port,t.value.quic_bind_port=n.quic_bind_port,t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_https_port=n.vhost_https_port,t.value.tcpmux_httpconnect_port=n.tcpmux_httpconnect_port,t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.allow_ports_str=n.allow_ports_str,t.value.tls_only=n.tls_only,t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),rre("traffic",n.total_traffic_in,n.total_traffic_out),nre("proxies",n)}).catch(()=>{DA({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=zM,o=HM,s=pA,l=vA;return Y(),me("div",null,[ee(l,null,{default:Z(()=>[ee(s,{md:12},{default:Z(()=>[ae("div",are,[ee(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:Z(()=>[ee(a,{label:"Version"},{default:Z(()=>[ae("span",null,Te(E(t).version),1)]),_:1}),ee(a,{label:"BindPort"},{default:Z(()=>[ae("span",null,Te(E(t).bind_port),1)]),_:1}),E(t).bind_udp_port!=0?(Y(),_e(a,{key:0,label:"Bind UDP Port"},{default:Z(()=>[ae("span",null,Te(E(t).bind_udp_port),1)]),_:1})):ke("",!0),E(t).kcp_bind_port!=0?(Y(),_e(a,{key:1,label:"KCP Bind Port"},{default:Z(()=>[ae("span",null,Te(E(t).kcp_bind_port),1)]),_:1})):ke("",!0),E(t).quic_bind_port!=0?(Y(),_e(a,{key:2,label:"QUIC Bind Port"},{default:Z(()=>[ae("span",null,Te(E(t).quic_bind_port),1)]),_:1})):ke("",!0),E(t).vhost_http_port!=0?(Y(),_e(a,{key:3,label:"Http Port"},{default:Z(()=>[ae("span",null,Te(E(t).vhost_http_port),1)]),_:1})):ke("",!0),E(t).vhost_https_port!=0?(Y(),_e(a,{key:4,label:"Https Port"},{default:Z(()=>[ae("span",null,Te(E(t).vhost_https_port),1)]),_:1})):ke("",!0),E(t).tcpmux_httpconnect_port!=0?(Y(),_e(a,{key:5,label:"TCPMux HTTPConnect Port"},{default:Z(()=>[ae("span",null,Te(E(t).tcpmux_httpconnect_port),1)]),_:1})):ke("",!0),E(t).subdomain_host!=""?(Y(),_e(a,{key:6,label:"Subdomain Host"},{default:Z(()=>[ee(hC,{content:E(t).subdomain_host,length:30},null,8,["content"])]),_:1})):ke("",!0),ee(a,{label:"Max PoolCount"},{default:Z(()=>[ae("span",null,Te(E(t).max_pool_count),1)]),_:1}),ee(a,{label:"Max Ports Per Client"},{default:Z(()=>[ae("span",null,Te(E(t).max_ports_per_client),1)]),_:1}),E(t).allow_ports_str!=""?(Y(),_e(a,{key:7,label:"Allow Ports"},{default:Z(()=>[ee(hC,{content:E(t).allow_ports_str,length:30},null,8,["content"])]),_:1})):ke("",!0),E(t).tls_only===!0?(Y(),_e(a,{key:8,label:"TLS Only"},{default:Z(()=>[ae("span",null,Te(E(t).tls_only),1)]),_:1})):ke("",!0),ee(a,{label:"HeartBeat Timeout"},{default:Z(()=>[ae("span",null,Te(E(t).heart_beat_timeout),1)]),_:1}),ee(a,{label:"Client Counts"},{default:Z(()=>[ae("span",null,Te(E(t).client_counts),1)]),_:1}),ee(a,{label:"Current Connections"},{default:Z(()=>[ae("span",null,Te(E(t).cur_conns),1)]),_:1}),ee(a,{label:"Proxy Counts"},{default:Z(()=>[ae("span",null,Te(E(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),ee(s,{md:12},{default:Z(()=>[ore,sre]),_:1})]),_:1})])}}});class Us{constructor(t){Wt(this,"name");Wt(this,"type");Wt(this,"encryption");Wt(this,"compression");Wt(this,"conns");Wt(this,"traffic_in");Wt(this,"traffic_out");Wt(this,"last_start_time");Wt(this,"last_close_time");Wt(this,"status");Wt(this,"client_version");Wt(this,"addr");Wt(this,"port");Wt(this,"custom_domains");Wt(this,"host_header_rewrite");Wt(this,"locations");Wt(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.client_version=t.client_version,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class ure extends Us{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class cre extends Us{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class fre extends Us{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class dre extends Us{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class hre extends Us{constructor(t){super(t),this.type="stcp"}}class vre extends Us{constructor(t){super(t),this.type="sudp"}}const pre=["id"],gre=ce({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{ire(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{DA({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(Y(),me("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,pre))}}),mre=ce({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=zM,i=HM;return e.proxyType==="http"||e.proxyType==="https"?(Y(),_e(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Te(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Te(e.row.type),1)]),_:1}),ee(n,{label:"Domains"},{default:Z(()=>[ae("span",null,Te(e.row.custom_domains),1)]),_:1}),ee(n,{label:"SubDomain"},{default:Z(()=>[ae("span",null,Te(e.row.subdomain),1)]),_:1}),ee(n,{label:"locations"},{default:Z(()=>[ae("span",null,Te(e.row.locations),1)]),_:1}),ee(n,{label:"HostRewrite"},{default:Z(()=>[ae("span",null,Te(e.row.host_header_rewrite),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Te(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Te(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Te(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Te(e.row.last_close_time),1)]),_:1})]),_:1})):(Y(),_e(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Te(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Te(e.row.type),1)]),_:1}),ee(n,{label:"Addr"},{default:Z(()=>[ae("span",null,Te(e.row.addr),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Te(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Te(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Te(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Te(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),js=ce({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(n,i)=>aa.fileSize(n.traffic_in),r=(n,i)=>aa.fileSize(n.traffic_out);return(n,i)=>{const a=gre,o=J6,s=IW,l=ZV,u=O8,c=XV;return Y(),me("div",null,[ee(c,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:Z(()=>[ee(l,{type:"expand"},{default:Z(f=>[ee(s,{placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click"},{default:Z(()=>[ee(a,{proxy_name:f.row.name},null,8,["proxy_name"])]),reference:Z(()=>[ee(o,{type:"primary",size:"large",name:f.row.name,style:{"margin-bottom":"10px"}},{default:Z(()=>[Bt("Traffic Statistics ")]),_:2},1032,["name"])]),_:2},1024),ee(mre,{row:f.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),ee(l,{label:"Name",prop:"name",sortable:""}),ee(l,{label:"Port",prop:"port",sortable:""}),ee(l,{label:"Connections",prop:"conns",sortable:""}),ee(l,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),ee(l,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),ee(l,{label:"ClientVersion",prop:"client_version",sortable:""}),ee(l,{label:"Status",prop:"status",sortable:""},{default:Z(f=>[f.row.status==="online"?(Y(),_e(u,{key:0,type:"success"},{default:Z(()=>[Bt(Te(f.row.status),1)]),_:2},1024)):(Y(),_e(u,{key:1,type:"danger"},{default:Z(()=>[Bt(Te(f.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),yre=ce({__name:"ProxiesTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new ure(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"tcp"},null,8,["proxies"]))}}),_re=ce({__name:"ProxiesUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new cre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"udp"},null,8,["proxies"]))}}),bre=ce({__name:"ProxiesHTTP",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new fre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"http"},null,8,["proxies"]))}}),wre=ce({__name:"ProxiesHTTPS",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new dre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"https"},null,8,["proxies"]))}}),xre=ce({__name:"ProxiesSTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new hre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"stcp"},null,8,["proxies"]))}}),Sre=ce({__name:"ProxiesSUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new vre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"sudp"},null,8,["proxies"]))}}),Cre=SU({history:$G(),routes:[{path:"/",name:"ServerOverview",component:lre},{path:"/proxies/tcp",name:"ProxiesTCP",component:yre},{path:"/proxies/udp",name:"ProxiesUDP",component:_re},{path:"/proxies/http",name:"ProxiesHTTP",component:bre},{path:"/proxies/https",name:"ProxiesHTTPS",component:wre},{path:"/proxies/stcp",name:"ProxiesSTCP",component:xre},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Sre}]}),oD=YO(bG);oD.use(Cre);oD.mount("#app")});export default Tre(); diff --git a/assets/frps/static/index-b8250b3f.js b/assets/frps/static/index-b8250b3f.js deleted file mode 100644 index 3a4313e54b8..00000000000 --- a/assets/frps/static/index-b8250b3f.js +++ /dev/null @@ -1,74 +0,0 @@ -var KL=Object.defineProperty;var XL=(e,t,r)=>t in e?KL(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ZL=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var $t=(e,t,r)=>(XL(e,typeof t!="symbol"?t+"":t,r),r);var Kte=ZL((kr,Nr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Cm(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function St(e){if(be(e)){const t={};for(let r=0;r{if(r){const n=r.split(JL);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function le(e){let t="";if(ze(e))t=e;else if(be(e))for(let r=0;rMd(r,t))}const Me=e=>ze(e)?e:e==null?"":be(e)||Ke(e)&&(e.toString===fC||!Le(e.toString))?JSON.stringify(e,cC,2):String(e),cC=(e,t)=>t&&t.__v_isRef?cC(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:Ed(t)?{[`Set(${t.size})`]:[...t.values()]}:Ke(t)&&!be(t)&&!dC(t)?String(t):t,mt={},ns=[],ur=()=>{},aD=()=>!1,oD=/^on[^a-z]/,Ad=e=>oD.test(e),Tm=e=>e.startsWith("onUpdate:"),Xt=Object.assign,Mm=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},sD=Object.prototype.hasOwnProperty,Ve=(e,t)=>sD.call(e,t),be=Array.isArray,is=e=>Ru(e)==="[object Map]",Ed=e=>Ru(e)==="[object Set]",V0=e=>Ru(e)==="[object Date]",Le=e=>typeof e=="function",ze=e=>typeof e=="string",eu=e=>typeof e=="symbol",Ke=e=>e!==null&&typeof e=="object",Hf=e=>Ke(e)&&Le(e.then)&&Le(e.catch),fC=Object.prototype.toString,Ru=e=>fC.call(e),lD=e=>Ru(e).slice(8,-1),dC=e=>Ru(e)==="[object Object]",Am=e=>ze(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ff=Cm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Pd=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},uD=/-(\w)/g,An=Pd(e=>e.replace(uD,(t,r)=>r?r.toUpperCase():"")),cD=/\B([A-Z])/g,wo=Pd(e=>e.replace(cD,"-$1").toLowerCase()),Ld=Pd(e=>e.charAt(0).toUpperCase()+e.slice(1)),df=Pd(e=>e?`on${Ld(e)}`:""),tu=(e,t)=>!Object.is(e,t),hf=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},Em=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let G0;const fD=()=>G0||(G0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Ir;class dD{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Ir,!t&&Ir&&(this.index=(Ir.scopes||(Ir.scopes=[])).push(this)-1)}run(t){if(this.active){const r=Ir;try{return Ir=this,t()}finally{Ir=r}}}on(){Ir=this}off(){Ir=this.parent}stop(t){if(this.active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},hC=e=>(e.w&Qi)>0,vC=e=>(e.n&Qi)>0,gD=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(c==="length"||c>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":be(e)?Am(r)&&s.push(o.get("length")):(s.push(o.get(ro)),is(e)&&s.push(o.get(wp)));break;case"delete":be(e)||(s.push(o.get(ro)),is(e)&&s.push(o.get(wp)));break;case"set":is(e)&&s.push(o.get(ro));break}if(s.length===1)s[0]&&Sp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);Sp(Pm(l))}}function Sp(e,t){const r=be(e)?e:[...e];for(const n of r)n.computed&&j0(n);for(const n of r)n.computed||j0(n)}function j0(e,t){(e!==bn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const yD=Cm("__proto__,__v_isRef,__isVue"),mC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(eu)),_D=Dm(),bD=Dm(!1,!0),wD=Dm(!0),Y0=SD();function SD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Je(this);for(let a=0,o=this.length;a{e[t]=function(...r){Os();const n=Je(this)[t].apply(this,r);return Rs(),n}}),e}function Dm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?FD:SC:t?wC:bC).get(n))return n;const o=be(n);if(!e&&o&&Ve(Y0,i))return Reflect.get(Y0,i,a);const s=Reflect.get(n,i,a);return(eu(i)?mC.has(i):yD(i))||(e||Hr(n,"get",i),t)?s:xt(s)?o&&Am(i)?s:s.value:Ke(s)?e?ku(s):fn(s):s}}const xD=yC(),CD=yC(!0);function yC(e=!1){return function(r,n,i,a){let o=r[n];if(vs(o)&&xt(o)&&!xt(i))return!1;if(!e&&(!Wf(i)&&!vs(i)&&(o=Je(o),i=Je(i)),!be(r)&&xt(o)&&!xt(i)))return o.value=i,!0;const s=be(r)&&Am(n)?Number(n)e,Dd=e=>Reflect.getPrototypeOf(e);function ic(e,t,r=!1,n=!1){e=e.__v_raw;const i=Je(e),a=Je(t);r||(t!==a&&Hr(i,"get",t),Hr(i,"get",a));const{has:o}=Dd(i),s=n?Im:r?km:ru;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function ac(e,t=!1){const r=this.__v_raw,n=Je(r),i=Je(e);return t||(e!==i&&Hr(n,"has",e),Hr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function oc(e,t=!1){return e=e.__v_raw,!t&&Hr(Je(e),"iterate",ro),Reflect.get(e,"size",e)}function q0(e){e=Je(e);const t=Je(this);return Dd(t).has.call(t,e)||(t.add(e),pi(t,"add",e,e)),this}function K0(e,t){t=Je(t);const r=Je(this),{has:n,get:i}=Dd(r);let a=n.call(r,e);a||(e=Je(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?tu(t,o)&&pi(r,"set",e,t):pi(r,"add",e,t),this}function X0(e){const t=Je(this),{has:r,get:n}=Dd(t);let i=r.call(t,e);i||(e=Je(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&pi(t,"delete",e,void 0),a}function Z0(){const e=Je(this),t=e.size!==0,r=e.clear();return t&&pi(e,"clear",void 0,void 0),r}function sc(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Je(o),l=t?Im:e?km:ru;return!e&&Hr(s,"iterate",ro),o.forEach((u,c)=>n.call(i,l(u),l(c),a))}}function lc(e,t,r){return function(...n){const i=this.__v_raw,a=Je(i),o=is(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),c=r?Im:t?km:ru;return!t&&Hr(a,"iterate",l?wp:ro),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Ai(e){return function(...t){return e==="delete"?!1:this}}function LD(){const e={get(a){return ic(this,a)},get size(){return oc(this)},has:ac,add:q0,set:K0,delete:X0,clear:Z0,forEach:sc(!1,!1)},t={get(a){return ic(this,a,!1,!0)},get size(){return oc(this)},has:ac,add:q0,set:K0,delete:X0,clear:Z0,forEach:sc(!1,!0)},r={get(a){return ic(this,a,!0)},get size(){return oc(this,!0)},has(a){return ac.call(this,a,!0)},add:Ai("add"),set:Ai("set"),delete:Ai("delete"),clear:Ai("clear"),forEach:sc(!0,!1)},n={get(a){return ic(this,a,!0,!0)},get size(){return oc(this,!0)},has(a){return ac.call(this,a,!0)},add:Ai("add"),set:Ai("set"),delete:Ai("delete"),clear:Ai("clear"),forEach:sc(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=lc(a,!1,!1),r[a]=lc(a,!0,!1),t[a]=lc(a,!1,!0),n[a]=lc(a,!0,!0)}),[e,r,t,n]}const[DD,ID,OD,RD]=LD();function Om(e,t){const r=t?e?RD:OD:e?ID:DD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(Ve(r,i)&&i in n?r:n,i,a)}const kD={get:Om(!1,!1)},ND={get:Om(!1,!0)},BD={get:Om(!0,!1)},bC=new WeakMap,wC=new WeakMap,SC=new WeakMap,FD=new WeakMap;function $D(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function HD(e){return e.__v_skip||!Object.isExtensible(e)?0:$D(lD(e))}function fn(e){return vs(e)?e:Rm(e,!1,_C,kD,bC)}function xC(e){return Rm(e,!1,PD,ND,wC)}function ku(e){return Rm(e,!0,ED,BD,SC)}function Rm(e,t,r,n,i){if(!Ke(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=HD(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function as(e){return vs(e)?as(e.__v_raw):!!(e&&e.__v_isReactive)}function vs(e){return!!(e&&e.__v_isReadonly)}function Wf(e){return!!(e&&e.__v_isShallow)}function CC(e){return as(e)||vs(e)}function Je(e){const t=e&&e.__v_raw;return t?Je(t):e}function TC(e){return zf(e,"__v_skip",!0),e}const ru=e=>Ke(e)?fn(e):e,km=e=>Ke(e)?ku(e):e;function MC(e){qi&&bn&&(e=Je(e),gC(e.dep||(e.dep=Pm())))}function AC(e,t){e=Je(e),e.dep&&Sp(e.dep)}function xt(e){return!!(e&&e.__v_isRef===!0)}function H(e){return PC(e,!1)}function EC(e){return PC(e,!0)}function PC(e,t){return xt(e)?e:new zD(e,t)}class zD{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Je(t),this._value=r?t:ru(t)}get value(){return MC(this),this._value}set value(t){const r=this.__v_isShallow||Wf(t)||vs(t);t=r?t:Je(t),tu(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:ru(t),AC(this))}}function P(e){return xt(e)?e.value:e}const WD={get:(e,t,r)=>P(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return xt(i)&&!xt(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function LC(e){return as(e)?e:new Proxy(e,WD)}function Id(e){const t=be(e)?new Array(e.length):{};for(const r in e)t[r]=Tn(e,r);return t}class VD{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function Tn(e,t,r){const n=e[t];return xt(n)?n:new VD(e,t,r)}var DC;class GD{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[DC]=!1,this._dirty=!0,this.effect=new Lm(t,()=>{this._dirty||(this._dirty=!0,AC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Je(this);return MC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}DC="__v_isReadonly";function UD(e,t,r=!1){let n,i;const a=Le(e);return a?(n=e,i=ur):(n=e.get,i=e.set),new GD(n,i,a||!i,r)}function jD(e,...t){}function Ki(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Od(a,t,r)}return i}function rn(e,t,r,n){if(Le(e)){const a=Ki(e,t,r,n);return a&&Hf(a)&&a.catch(o=>{Od(o,t,r)}),a}const i=[];for(let a=0;a>>1;iu(tr[n])$n&&tr.splice(t,1)}function XD(e){be(e)?os.push(...e):(!ui||!ui.includes(e,e.allowRecurse?Va+1:Va))&&os.push(e),OC()}function Q0(e,t=nu?$n+1:0){for(;tiu(r)-iu(n)),Va=0;Vae.id==null?1/0:e.id,ZD=(e,t)=>{const r=iu(e)-iu(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function kC(e){xp=!1,nu=!0,tr.sort(ZD);const t=ur;try{for($n=0;$nze(h)?h.trim():h)),f&&(i=r.map(Em))}let s,l=n[s=df(t)]||n[s=df(An(t))];!l&&a&&(l=n[s=df(wo(t))]),l&&rn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,rn(u,e,6,i)}}function NC(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!Le(e)){const l=u=>{const c=NC(u,t,!0);c&&(s=!0,Xt(o,c))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(Ke(e)&&n.set(e,null),null):(be(a)?a.forEach(l=>o[l]=null):Xt(o,a),Ke(e)&&n.set(e,o),o)}function Rd(e,t){return!e||!Ad(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ve(e,t[0].toLowerCase()+t.slice(1))||Ve(e,wo(t))||Ve(e,t))}let jt=null,BC=null;function Vf(e){const t=jt;return jt=e,BC=e&&e.type.__scopeId||null,t}function Z(e,t=jt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&c_(-1);const a=Vf(t);let o;try{o=e(...i)}finally{Vf(a),n._d&&c_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ah(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Vf(e);try{if(r.shapeFlag&4){const b=i||n;g=Fn(c.call(b,b,f,a,h,d,v)),m=l}else{const b=t;g=Fn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:JD(l)}}catch(b){Ll.length=0,Od(b,e,1),g=ee(Sr)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:S}=_;b.length&&S&7&&(o&&b.some(Tm)&&(m=eI(m,o)),_=gi(_,m))}return r.dirs&&(_=gi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Vf(y),g}const JD=e=>{let t;for(const r in e)(r==="class"||r==="style"||Ad(r))&&((t||(t={}))[r]=e[r]);return t},eI=(e,t)=>{const r={};for(const n in e)(!Tm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function tI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?J0(n,o,u):!!o;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function iI(e,t){t&&t.pendingBranch?be(e)?t.effects.push(...e):t.effects.push(e):XD(e)}function Tt(e,t){if(zt){let r=zt.provides;const n=zt.parent&&zt.parent.provides;n===r&&(r=zt.provides=Object.create(n)),r[e]=t}}function Oe(e,t,r=!1){const n=zt||jt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&Le(t)?t.call(n.proxy):t}}function no(e,t){return Fm(e,null,t)}const uc={};function xe(e,t,r){return Fm(e,t,r)}function Fm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=mt){const s=zt;let l,u=!1,c=!1;if(xt(e)?(l=()=>e.value,u=Wf(e)):as(e)?(l=()=>e,n=!0):be(e)?(c=!0,u=e.some(_=>as(_)||Wf(_)),l=()=>e.map(_=>{if(xt(_))return _.value;if(as(_))return Ka(_);if(Le(_))return Ki(_,s,2)})):Le(e)?t?l=()=>Ki(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return f&&f(),rn(e,s,3,[d])}:l=ur,t&&n){const _=l;l=()=>Ka(_())}let f,d=_=>{f=m.onStop=()=>{Ki(_,s,4)}},h;if(ou)if(d=ur,t?r&&rn(t,s,3,[l(),c?[]:void 0,d]):l(),i==="sync"){const _=XI();h=_.__watcherHandles||(_.__watcherHandles=[])}else return ur;let v=c?new Array(e.length).fill(uc):uc;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(c?_.some((b,S)=>tu(b,v[S])):tu(_,v)))&&(f&&f(),rn(t,s,3,[_,v===uc?void 0:c&&v[0]===uc?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>yr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>Bm(p));const m=new Lm(l,g);t?r?p():v=m.run():i==="post"?yr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&Mm(s.scope.effects,m)};return h&&h.push(y),y}function aI(e,t,r){const n=this.proxy,i=ze(e)?e.includes(".")?FC(n,e):()=>n[e]:e.bind(n,n);let a;Le(t)?a=t:(a=t.handler,r=t);const o=zt;ps(this);const s=Fm(i,a.bind(n),r);return o?ps(o):io(),s}function FC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Ka(r,t)});else if(dC(e))for(const r in e)Ka(e[r],t);return e}function oI(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Mt(()=>{e.isMounted=!0}),nr(()=>{e.isUnmounting=!0}),e}const Vr=[Function,Array],sI={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Vr,onEnter:Vr,onAfterEnter:Vr,onEnterCancelled:Vr,onBeforeLeave:Vr,onLeave:Vr,onAfterLeave:Vr,onLeaveCancelled:Vr,onBeforeAppear:Vr,onAppear:Vr,onAfterAppear:Vr,onAppearCancelled:Vr},setup(e,{slots:t}){const r=dt(),n=oI();let i;return()=>{const a=t.default&&zC(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==Sr){o=p;break}}const s=Je(e),{mode:l}=s;if(n.isLeaving)return Eh(o);const u=e_(o);if(!u)return Eh(o);const c=Cp(u,s,n,r);Tp(u,c);const f=r.subTree,d=f&&e_(f);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==Sr&&(!Ga(u,d)||h)){const p=Cp(d,s,n,r);if(Tp(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Eh(o);l==="in-out"&&u.type!==Sr&&(p.delayLeave=(g,m,y)=>{const _=HC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=y})}return o}}},$C=sI;function HC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function Cp(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=HC(r,e),S=(C,T)=>{C&&rn(C,n,9,T)},w=(C,T)=>{const E=T[1];S(C,T),be(C)?C.every(A=>A.length<=1)&&E():C.length<=1&&E()},x={mode:a,persisted:o,beforeEnter(C){let T=s;if(!r.isMounted)if(i)T=p||s;else return;C._leaveCb&&C._leaveCb(!0);const E=b[_];E&&Ga(e,E)&&E.el._leaveCb&&E.el._leaveCb(),S(T,[C])},enter(C){let T=l,E=u,A=c;if(!r.isMounted)if(i)T=g||l,E=m||u,A=y||c;else return;let M=!1;const D=C._enterCb=R=>{M||(M=!0,R?S(A,[C]):S(E,[C]),x.delayedLeave&&x.delayedLeave(),C._enterCb=void 0)};T?w(T,[C,D]):D()},leave(C,T){const E=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return T();S(f,[C]);let A=!1;const M=C._leaveCb=D=>{A||(A=!0,T(),D?S(v,[C]):S(h,[C]),C._leaveCb=void 0,b[E]===e&&delete b[E])};b[E]=e,d?w(d,[C,M]):M()},clone(C){return Cp(C,t,r,n)}};return x}function Eh(e){if(kd(e))return e=gi(e),e.children=null,e}function e_(e){return kd(e)?e.children?e.children[0]:void 0:e}function Tp(e,t){e.shapeFlag&6&&e.component?Tp(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zC(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,kd=e=>e.type.__isKeepAlive;function lI(e,t){VC(e,"a",t)}function WC(e,t){VC(e,"da",t)}function VC(e,t,r=zt){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Nd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)kd(i.parent.vnode)&&uI(n,t,r,i),i=i.parent}}function uI(e,t,r,n){const i=Nd(t,e,n,!0);Nu(()=>{Mm(n[t],i)},r)}function Nd(e,t,r=zt,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Os(),ps(r);const s=rn(t,r,e,o);return io(),Rs(),s});return n?i.unshift(a):i.push(a),a}}const Si=e=>(t,r=zt)=>(!ou||e==="sp")&&Nd(e,(...n)=>t(...n),r),Bd=Si("bm"),Mt=Si("m"),cI=Si("bu"),Fd=Si("u"),nr=Si("bum"),Nu=Si("um"),fI=Si("sp"),dI=Si("rtg"),hI=Si("rtc");function vI(e,t=zt){Nd("ec",e,t)}function qt(e,t){const r=jt;if(r===null)return e;const n=Hd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sJi(t)?!(t.type===Sr||t.type===yt&&!UC(t.children)):!0)?e:null}function gI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:df(n)]=e[n];return r}const Mp=e=>e?rT(e)?Hd(e)||e.proxy:Mp(e.parent):null,El=Xt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mp(e.parent),$root:e=>Mp(e.root),$emit:e=>e.emit,$options:e=>Wm(e),$forceUpdate:e=>e.f||(e.f=()=>Bm(e.update)),$nextTick:e=>e.n||(e.n=Rt.bind(e.proxy)),$watch:e=>aI.bind(e)}),Ph=(e,t)=>e!==mt&&!e.__isScriptSetup&&Ve(e,t),mI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Ph(n,t))return o[t]=1,n[t];if(i!==mt&&Ve(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&Ve(u,t))return o[t]=3,a[t];if(r!==mt&&Ve(r,t))return o[t]=4,r[t];Ap&&(o[t]=0)}}const c=El[t];let f,d;if(c)return t==="$attrs"&&Hr(e,"get",t),c(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(r!==mt&&Ve(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,Ve(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Ph(i,t)?(i[t]=r,!0):n!==mt&&Ve(n,t)?(n[t]=r,!0):Ve(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==mt&&Ve(e,o)||Ph(t,o)||(s=a[0])&&Ve(s,o)||Ve(n,o)||Ve(El,o)||Ve(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:Ve(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let Ap=!0;function yI(e){const t=Wm(e),r=e.proxy,n=e.ctx;Ap=!1,t.beforeCreate&&n_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:S,renderTracked:w,renderTriggered:x,errorCaptured:C,serverPrefetch:T,expose:E,inheritAttrs:A,components:M,directives:D,filters:R}=t;if(u&&_I(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const K in o){const B=o[K];Le(B)&&(n[K]=B.bind(r))}if(i){const K=i.call(r,r);Ke(K)&&(e.data=fn(K))}if(Ap=!0,a)for(const K in a){const B=a[K],N=Le(B)?B.bind(r,r):Le(B.get)?B.get.bind(r,r):ur,j=!Le(B)&&Le(B.set)?B.set.bind(r):ur,re=$({get:N,set:j});Object.defineProperty(n,K,{enumerable:!0,configurable:!0,get:()=>re.value,set:oe=>re.value=oe})}if(s)for(const K in s)jC(s[K],n,r,K);if(l){const K=Le(l)?l.call(r):l;Reflect.ownKeys(K).forEach(B=>{Tt(B,K[B])})}c&&n_(c,e,"c");function F(K,B){be(B)?B.forEach(N=>K(N.bind(r))):B&&K(B.bind(r))}if(F(Bd,f),F(Mt,d),F(cI,h),F(Fd,v),F(lI,p),F(WC,g),F(vI,C),F(hI,w),F(dI,x),F(nr,y),F(Nu,b),F(fI,T),be(E))if(E.length){const K=e.exposed||(e.exposed={});E.forEach(B=>{Object.defineProperty(K,B,{get:()=>r[B],set:N=>r[B]=N})})}else e.exposed||(e.exposed={});S&&e.render===ur&&(e.render=S),A!=null&&(e.inheritAttrs=A),M&&(e.components=M),D&&(e.directives=D)}function _I(e,t,r=ur,n=!1){be(e)&&(e=Ep(e));for(const i in e){const a=e[i];let o;Ke(a)?"default"in a?o=Oe(a.from||i,a.default,!0):o=Oe(a.from||i):o=Oe(a),xt(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function n_(e,t,r){rn(be(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function jC(e,t,r,n){const i=n.includes(".")?FC(r,n):()=>r[n];if(ze(e)){const a=t[e];Le(a)&&xe(i,a)}else if(Le(e))xe(i,e.bind(r));else if(Ke(e))if(be(e))e.forEach(a=>jC(a,t,r,n));else{const a=Le(e.handler)?e.handler.bind(r):t[e.handler];Le(a)&&xe(i,a,e)}}function Wm(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>Gf(l,u,o,!0)),Gf(l,t,o)),Ke(t)&&a.set(t,l),l}function Gf(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Gf(e,a,r,!0),i&&i.forEach(o=>Gf(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=bI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const bI={data:i_,props:Ha,emits:Ha,methods:Ha,computed:Ha,beforeCreate:ir,created:ir,beforeMount:ir,mounted:ir,beforeUpdate:ir,updated:ir,beforeDestroy:ir,beforeUnmount:ir,destroyed:ir,unmounted:ir,activated:ir,deactivated:ir,errorCaptured:ir,serverPrefetch:ir,components:Ha,directives:Ha,watch:SI,provide:i_,inject:wI};function i_(e,t){return t?e?function(){return Xt(Le(e)?e.call(this,this):e,Le(t)?t.call(this,this):t)}:t:e}function wI(e,t){return Ha(Ep(e),Ep(t))}function Ep(e){if(be(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=qC(f,t,!0);Xt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!a&&!l)return Ke(e)&&n.set(e,ns),ns;if(be(a))for(let c=0;c-1,h[1]=p<0||v-1||Ve(h,"default"))&&s.push(f)}}}const u=[o,s];return Ke(e)&&n.set(e,u),u}function a_(e){return e[0]!=="$"}function o_(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function s_(e,t){return o_(e)===o_(t)}function l_(e,t){return be(t)?t.findIndex(r=>s_(r,e)):Le(t)&&s_(t,e)?0:-1}const KC=e=>e[0]==="_"||e==="$stable",Vm=e=>be(e)?e.map(Fn):[Fn(e)],TI=(e,t,r)=>{if(t._n)return t;const n=Z((...i)=>Vm(t(...i)),r);return n._c=!1,n},XC=(e,t,r)=>{const n=e._ctx;for(const i in e){if(KC(i))continue;const a=e[i];if(Le(a))t[i]=TI(i,a,n);else if(a!=null){const o=Vm(a);t[i]=()=>o}}},ZC=(e,t)=>{const r=Vm(t);e.slots.default=()=>r},MI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Je(t),zf(t,"_",r)):XC(t,e.slots={})}else e.slots={},t&&ZC(e,t);zf(e.slots,$d,1)},AI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=mt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Xt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,XC(t,i)),o=t}else t&&(ZC(e,t),o={default:1});if(a)for(const s in i)!KC(s)&&!(s in o)&&delete i[s]};function QC(){return{app:null,config:{isNativeTag:aD,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let EI=0;function PI(e,t){return function(n,i=null){Le(n)||(n=Object.assign({},n)),i!=null&&!Ke(i)&&(i=null);const a=QC(),o=new Set;let s=!1;const l=a.app={_uid:EI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:ZI,get config(){return a.config},set config(u){},use(u,...c){return o.has(u)||(u&&Le(u.install)?(o.add(u),u.install(l,...c)):Le(u)&&(o.add(u),u(l,...c))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,c){return c?(a.components[u]=c,l):a.components[u]},directive(u,c){return c?(a.directives[u]=c,l):a.directives[u]},mount(u,c,f){if(!s){const d=ee(n,i);return d.appContext=a,c&&t?t(d,u):e(d,u,f),s=!0,l._container=u,u.__vue_app__=l,Hd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,c){return a.provides[u]=c,l}};return l}}function Lp(e,t,r,n,i=!1){if(be(e)){e.forEach((d,h)=>Lp(d,t&&(be(t)?t[h]:t),r,n,i));return}if(Al(n)&&!i)return;const a=n.shapeFlag&4?Hd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,c=s.refs===mt?s.refs={}:s.refs,f=s.setupState;if(u!=null&&u!==l&&(ze(u)?(c[u]=null,Ve(f,u)&&(f[u]=null)):xt(u)&&(u.value=null)),Le(l))Ki(l,s,12,[o,c]);else{const d=ze(l),h=xt(l);if(d||h){const v=()=>{if(e.f){const p=d?Ve(f,l)?f[l]:c[l]:l.value;i?be(p)&&Mm(p,a):be(p)?p.includes(a)||p.push(a):d?(c[l]=[a],Ve(f,l)&&(f[l]=c[l])):(l.value=[a],e.k&&(c[e.k]=l.value))}else d?(c[l]=o,Ve(f,l)&&(f[l]=o)):h&&(l.value=o,e.k&&(c[e.k]=o))};o?(v.id=-1,yr(v,r)):v()}}}const yr=iI;function LI(e){return DI(e)}function DI(e,t){const r=fD();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=ur,insertStaticContent:v}=e,p=(L,I,z,G=null,q=null,ne=null,de=!1,te=null,ie=!!I.dynamicChildren)=>{if(L===I)return;L&&!Ga(L,I)&&(G=W(L),oe(L,q,ne,!0),L=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:X,ref:we,shapeFlag:ve}=I;switch(X){case ks:g(L,I,z,G);break;case Sr:m(L,I,z,G);break;case Lh:L==null&&y(I,z,G,de);break;case yt:M(L,I,z,G,q,ne,de,te,ie);break;default:ve&1?S(L,I,z,G,q,ne,de,te,ie):ve&6?D(L,I,z,G,q,ne,de,te,ie):(ve&64||ve&128)&&X.process(L,I,z,G,q,ne,de,te,ie,ue)}we!=null&&q&&Lp(we,L&&L.ref,ne,I||L,!I)},g=(L,I,z,G)=>{if(L==null)n(I.el=s(I.children),z,G);else{const q=I.el=L.el;I.children!==L.children&&u(q,I.children)}},m=(L,I,z,G)=>{L==null?n(I.el=l(I.children||""),z,G):I.el=L.el},y=(L,I,z,G)=>{[L.el,L.anchor]=v(L.children,I,z,G,L.el,L.anchor)},_=({el:L,anchor:I},z,G)=>{let q;for(;L&&L!==I;)q=d(L),n(L,z,G),L=q;n(I,z,G)},b=({el:L,anchor:I})=>{let z;for(;L&&L!==I;)z=d(L),i(L),L=z;i(I)},S=(L,I,z,G,q,ne,de,te,ie)=>{de=de||I.type==="svg",L==null?w(I,z,G,q,ne,de,te,ie):T(L,I,q,ne,de,te,ie)},w=(L,I,z,G,q,ne,de,te)=>{let ie,X;const{type:we,props:ve,shapeFlag:Se,transition:Ie,dirs:$e}=L;if(ie=L.el=o(L.type,ne,ve&&ve.is,ve),Se&8?c(ie,L.children):Se&16&&C(L.children,ie,null,G,q,ne&&we!=="foreignObject",de,te),$e&&fa(L,null,G,"created"),ve){for(const et in ve)et!=="value"&&!ff(et)&&a(ie,et,null,ve[et],ne,L.children,G,q,J);"value"in ve&&a(ie,"value",null,ve.value),(X=ve.onVnodeBeforeMount)&&On(X,G,L)}x(ie,L,L.scopeId,de,G),$e&&fa(L,null,G,"beforeMount");const nt=(!q||q&&!q.pendingBranch)&&Ie&&!Ie.persisted;nt&&Ie.beforeEnter(ie),n(ie,I,z),((X=ve&&ve.onVnodeMounted)||nt||$e)&&yr(()=>{X&&On(X,G,L),nt&&Ie.enter(ie),$e&&fa(L,null,G,"mounted")},q)},x=(L,I,z,G,q)=>{if(z&&h(L,z),G)for(let ne=0;ne{for(let X=ie;X{const te=I.el=L.el;let{patchFlag:ie,dynamicChildren:X,dirs:we}=I;ie|=L.patchFlag&16;const ve=L.props||mt,Se=I.props||mt;let Ie;z&&da(z,!1),(Ie=Se.onVnodeBeforeUpdate)&&On(Ie,z,I,L),we&&fa(I,L,z,"beforeUpdate"),z&&da(z,!0);const $e=q&&I.type!=="foreignObject";if(X?E(L.dynamicChildren,X,te,z,G,$e,ne):de||B(L,I,te,null,z,G,$e,ne,!1),ie>0){if(ie&16)A(te,I,ve,Se,z,G,q);else if(ie&2&&ve.class!==Se.class&&a(te,"class",null,Se.class,q),ie&4&&a(te,"style",ve.style,Se.style,q),ie&8){const nt=I.dynamicProps;for(let et=0;et{Ie&&On(Ie,z,I,L),we&&fa(I,L,z,"updated")},G)},E=(L,I,z,G,q,ne,de)=>{for(let te=0;te{if(z!==G){if(z!==mt)for(const te in z)!ff(te)&&!(te in G)&&a(L,te,z[te],null,de,I.children,q,ne,J);for(const te in G){if(ff(te))continue;const ie=G[te],X=z[te];ie!==X&&te!=="value"&&a(L,te,X,ie,de,I.children,q,ne,J)}"value"in G&&a(L,"value",z.value,G.value)}},M=(L,I,z,G,q,ne,de,te,ie)=>{const X=I.el=L?L.el:s(""),we=I.anchor=L?L.anchor:s("");let{patchFlag:ve,dynamicChildren:Se,slotScopeIds:Ie}=I;Ie&&(te=te?te.concat(Ie):Ie),L==null?(n(X,z,G),n(we,z,G),C(I.children,z,we,q,ne,de,te,ie)):ve>0&&ve&64&&Se&&L.dynamicChildren?(E(L.dynamicChildren,Se,z,q,ne,de,te),(I.key!=null||q&&I===q.subTree)&&Gm(L,I,!0)):B(L,I,z,we,q,ne,de,te,ie)},D=(L,I,z,G,q,ne,de,te,ie)=>{I.slotScopeIds=te,L==null?I.shapeFlag&512?q.ctx.activate(I,z,G,de,ie):R(I,z,G,q,ne,de,ie):k(L,I,ie)},R=(L,I,z,G,q,ne,de)=>{const te=L.component=WI(L,G,q);if(kd(L)&&(te.ctx.renderer=ue),VI(te),te.asyncDep){if(q&&q.registerDep(te,F),!L.el){const ie=te.subTree=ee(Sr);m(null,ie,I,z)}return}F(te,L,I,z,q,ne,de)},k=(L,I,z)=>{const G=I.component=L.component;if(tI(L,I,z))if(G.asyncDep&&!G.asyncResolved){K(G,I,z);return}else G.next=I,KD(G.update),G.update();else I.el=L.el,G.vnode=I},F=(L,I,z,G,q,ne,de)=>{const te=()=>{if(L.isMounted){let{next:we,bu:ve,u:Se,parent:Ie,vnode:$e}=L,nt=we,et;da(L,!1),we?(we.el=$e.el,K(L,we,de)):we=$e,ve&&hf(ve),(et=we.props&&we.props.onVnodeBeforeUpdate)&&On(et,Ie,we,$e),da(L,!0);const fe=Ah(L),Te=L.subTree;L.subTree=fe,p(Te,fe,f(Te.el),W(Te),L,q,ne),we.el=fe.el,nt===null&&rI(L,fe.el),Se&&yr(Se,q),(et=we.props&&we.props.onVnodeUpdated)&&yr(()=>On(et,Ie,we,$e),q)}else{let we;const{el:ve,props:Se}=I,{bm:Ie,m:$e,parent:nt}=L,et=Al(I);if(da(L,!1),Ie&&hf(Ie),!et&&(we=Se&&Se.onVnodeBeforeMount)&&On(we,nt,I),da(L,!0),ve&&Q){const fe=()=>{L.subTree=Ah(L),Q(ve,L.subTree,L,q,null)};et?I.type.__asyncLoader().then(()=>!L.isUnmounted&&fe()):fe()}else{const fe=L.subTree=Ah(L);p(null,fe,z,G,L,q,ne),I.el=fe.el}if($e&&yr($e,q),!et&&(we=Se&&Se.onVnodeMounted)){const fe=I;yr(()=>On(we,nt,fe),q)}(I.shapeFlag&256||nt&&Al(nt.vnode)&&nt.vnode.shapeFlag&256)&&L.a&&yr(L.a,q),L.isMounted=!0,I=z=G=null}},ie=L.effect=new Lm(te,()=>Bm(X),L.scope),X=L.update=()=>ie.run();X.id=L.uid,da(L,!0),X()},K=(L,I,z)=>{I.component=L;const G=L.vnode.props;L.vnode=I,L.next=null,CI(L,I.props,G,z),AI(L,I.children,z),Os(),Q0(),Rs()},B=(L,I,z,G,q,ne,de,te,ie=!1)=>{const X=L&&L.children,we=L?L.shapeFlag:0,ve=I.children,{patchFlag:Se,shapeFlag:Ie}=I;if(Se>0){if(Se&128){j(X,ve,z,G,q,ne,de,te,ie);return}else if(Se&256){N(X,ve,z,G,q,ne,de,te,ie);return}}Ie&8?(we&16&&J(X,q,ne),ve!==X&&c(z,ve)):we&16?Ie&16?j(X,ve,z,G,q,ne,de,te,ie):J(X,q,ne,!0):(we&8&&c(z,""),Ie&16&&C(ve,z,G,q,ne,de,te,ie))},N=(L,I,z,G,q,ne,de,te,ie)=>{L=L||ns,I=I||ns;const X=L.length,we=I.length,ve=Math.min(X,we);let Se;for(Se=0;Sewe?J(L,q,ne,!0,!1,ve):C(I,z,G,q,ne,de,te,ie,ve)},j=(L,I,z,G,q,ne,de,te,ie)=>{let X=0;const we=I.length;let ve=L.length-1,Se=we-1;for(;X<=ve&&X<=Se;){const Ie=L[X],$e=I[X]=ie?zi(I[X]):Fn(I[X]);if(Ga(Ie,$e))p(Ie,$e,z,null,q,ne,de,te,ie);else break;X++}for(;X<=ve&&X<=Se;){const Ie=L[ve],$e=I[Se]=ie?zi(I[Se]):Fn(I[Se]);if(Ga(Ie,$e))p(Ie,$e,z,null,q,ne,de,te,ie);else break;ve--,Se--}if(X>ve){if(X<=Se){const Ie=Se+1,$e=IeSe)for(;X<=ve;)oe(L[X],q,ne,!0),X++;else{const Ie=X,$e=X,nt=new Map;for(X=$e;X<=Se;X++){const ht=I[X]=ie?zi(I[X]):Fn(I[X]);ht.key!=null&&nt.set(ht.key,X)}let et,fe=0;const Te=Se-$e+1;let He=!1,We=0;const Ze=new Array(Te);for(X=0;X=Te){oe(ht,q,ne,!0);continue}let Wt;if(ht.key!=null)Wt=nt.get(ht.key);else for(et=$e;et<=Se;et++)if(Ze[et-$e]===0&&Ga(ht,I[et])){Wt=et;break}Wt===void 0?oe(ht,q,ne,!0):(Ze[Wt-$e]=X+1,Wt>=We?We=Wt:He=!0,p(ht,I[Wt],z,null,q,ne,de,te,ie),fe++)}const kt=He?II(Ze):ns;for(et=kt.length-1,X=Te-1;X>=0;X--){const ht=$e+X,Wt=I[ht],Wr=ht+1{const{el:ne,type:de,transition:te,children:ie,shapeFlag:X}=L;if(X&6){re(L.component.subTree,I,z,G);return}if(X&128){L.suspense.move(I,z,G);return}if(X&64){de.move(L,I,z,ue);return}if(de===yt){n(ne,I,z);for(let ve=0;vete.enter(ne),q);else{const{leave:ve,delayLeave:Se,afterLeave:Ie}=te,$e=()=>n(ne,I,z),nt=()=>{ve(ne,()=>{$e(),Ie&&Ie()})};Se?Se(ne,$e,nt):nt()}else n(ne,I,z)},oe=(L,I,z,G=!1,q=!1)=>{const{type:ne,props:de,ref:te,children:ie,dynamicChildren:X,shapeFlag:we,patchFlag:ve,dirs:Se}=L;if(te!=null&&Lp(te,null,z,L,!0),we&256){I.ctx.deactivate(L);return}const Ie=we&1&&Se,$e=!Al(L);let nt;if($e&&(nt=de&&de.onVnodeBeforeUnmount)&&On(nt,I,L),we&6)V(L.component,z,G);else{if(we&128){L.suspense.unmount(z,G);return}Ie&&fa(L,null,I,"beforeUnmount"),we&64?L.type.remove(L,I,z,q,ue,G):X&&(ne!==yt||ve>0&&ve&64)?J(X,I,z,!1,!0):(ne===yt&&ve&384||!q&&we&16)&&J(ie,I,z),G&&_e(L)}($e&&(nt=de&&de.onVnodeUnmounted)||Ie)&&yr(()=>{nt&&On(nt,I,L),Ie&&fa(L,null,I,"unmounted")},z)},_e=L=>{const{type:I,el:z,anchor:G,transition:q}=L;if(I===yt){Ee(z,G);return}if(I===Lh){b(L);return}const ne=()=>{i(z),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(L.shapeFlag&1&&q&&!q.persisted){const{leave:de,delayLeave:te}=q,ie=()=>de(z,ne);te?te(L.el,ne,ie):ie()}else ne()},Ee=(L,I)=>{let z;for(;L!==I;)z=d(L),i(L),L=z;i(I)},V=(L,I,z)=>{const{bum:G,scope:q,update:ne,subTree:de,um:te}=L;G&&hf(G),q.stop(),ne&&(ne.active=!1,oe(de,L,I,z)),te&&yr(te,I),yr(()=>{L.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},J=(L,I,z,G=!1,q=!1,ne=0)=>{for(let de=ne;deL.shapeFlag&6?W(L.component.subTree):L.shapeFlag&128?L.suspense.next():d(L.anchor||L.el),Y=(L,I,z)=>{L==null?I._vnode&&oe(I._vnode,null,null,!0):p(I._vnode||null,L,I,null,null,null,z),Q0(),RC(),I._vnode=L},ue={p,um:oe,m:re,r:_e,mt:R,mc:C,pc:B,pbc:E,n:W,o:e};let he,Q;return t&&([he,Q]=t(ue)),{render:Y,hydrate:he,createApp:PI(Y,he)}}function da({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function Gm(e,t,r=!1){const n=e.children,i=t.children;if(be(n)&&be(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const OI=e=>e.__isTeleport,Pl=e=>e&&(e.disabled||e.disabled===""),u_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Dp=(e,t)=>{const r=e&&e.to;return ze(r)?t?t(r):null:r},RI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Pl(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const S=t.el=p(""),w=t.anchor=p("");h(S,r,n),h(w,r,n);const x=t.target=Dp(t.props,v),C=t.targetAnchor=p("");x&&(h(C,x),o=o||u_(x));const T=(E,A)=>{y&16&&c(_,E,A,i,a,o,s,l)};m?T(r,w):x&&T(x,C)}else{t.el=e.el;const S=t.anchor=e.anchor,w=t.target=e.target,x=t.targetAnchor=e.targetAnchor,C=Pl(e.props),T=C?r:w,E=C?S:x;if(o=o||u_(w),b?(d(e.dynamicChildren,b,T,i,a,o,s),Gm(e,t,!0)):l||f(e,t,T,E,i,a,o,s,!1),m)C||cc(t,r,S,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Dp(t.props,v);A&&cc(t,A,null,u,0)}else C&&cc(t,w,x,u,1)}JC(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&a(c),(o||!Pl(d))&&(a(u),s&16))for(let h=0;h0?wn||ns:null,BI(),au>0&&wn&&wn.push(e),e}function ye(e,t,r,n,i,a){return eT(ae(e,t,r,n,i,a,!0))}function me(e,t,r,n,i){return eT(ee(e,t,r,n,i,!0))}function Ji(e){return e?e.__v_isVNode===!0:!1}function Ga(e,t){return e.type===t.type&&e.key===t.key}const $d="__vInternal",tT=({key:e})=>e??null,vf=({ref:e,ref_key:t,ref_for:r})=>e!=null?ze(e)||xt(e)||Le(e)?{i:jt,r:e,k:t,f:!!r}:e:null;function ae(e,t=null,r=null,n=0,i=null,a=e===yt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&tT(t),ref:t&&vf(t),scopeId:BC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:jt};return s?(Um(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=ze(r)?8:16),au>0&&!o&&wn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&wn.push(l),l}const ee=FI;function FI(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===GC)&&(e=Sr),Ji(e)){const s=gi(e,t,!0);return r&&Um(s,r),au>0&&!a&&wn&&(s.shapeFlag&6?wn[wn.indexOf(e)]=s:wn.push(s)),s.patchFlag|=-2,s}if(YI(e)&&(e=e.__vccOpts),t){t=$I(t);let{class:s,style:l}=t;s&&!ze(s)&&(t.class=le(s)),Ke(l)&&(CC(l)&&!be(l)&&(l=Xt({},l)),t.style=St(l))}const o=ze(e)?1:nI(e)?128:OI(e)?64:Ke(e)?4:Le(e)?2:0;return ae(e,t,r,n,i,o,a,!0)}function $I(e){return e?CC(e)||$d in e?Xt({},e):e:null}function gi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?So(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&tT(s),ref:t&&t.ref?r&&i?be(i)?i.concat(vf(t)):[i,vf(t)]:vf(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==yt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&gi(e.ssContent),ssFallback:e.ssFallback&&gi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function Nt(e=" ",t=0){return ee(ks,null,e,t)}function ke(e="",t=!1){return t?(U(),me(Sr,null,e)):ee(Sr,null,e)}function Fn(e){return e==null||typeof e=="boolean"?ee(Sr):be(e)?ee(yt,null,e.slice()):typeof e=="object"?zi(e):ee(ks,null,String(e))}function zi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:gi(e)}function Um(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(be(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Um(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!($d in t)?t._ctx=jt:i===3&&jt&&(jt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Le(t)?(t={default:t,_ctx:jt},r=32):(t=String(t),n&64?(r=16,t=[Nt(t)]):r=8);e.children=t,e.shapeFlag|=r}function So(...e){const t={};for(let r=0;rzt||jt,ps=e=>{zt=e,e.scope.on()},io=()=>{zt&&zt.scope.off(),zt=null};function rT(e){return e.vnode.shapeFlag&4}let ou=!1;function VI(e,t=!1){ou=t;const{props:r,children:n}=e.vnode,i=rT(e);xI(e,r,i,t),MI(e,n);const a=i?GI(e,t):void 0;return ou=!1,a}function GI(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=TC(new Proxy(e.ctx,mI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?iT(e):null;ps(e),Os();const a=Ki(n,e,0,[e.props,i]);if(Rs(),io(),Hf(a)){if(a.then(io,io),t)return a.then(o=>{f_(e,o,t)}).catch(o=>{Od(o,e,0)});e.asyncDep=a}else f_(e,a,t)}else nT(e,t)}function f_(e,t,r){Le(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ke(t)&&(e.setupState=LC(t)),nT(e,r)}let d_;function nT(e,t,r){const n=e.type;if(!e.render){if(!t&&d_&&!n.render){const i=n.template||Wm(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Xt(Xt({isCustomElement:a,delimiters:s},o),l);n.render=d_(i,u)}}e.render=n.render||ur}ps(e),Os(),yI(e),Rs(),io()}function UI(e){return new Proxy(e.attrs,{get(t,r){return Hr(e,"get","$attrs"),t[r]}})}function iT(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=UI(e))},slots:e.slots,emit:e.emit,expose:t}}function Hd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(LC(TC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in El)return El[r](e)},has(t,r){return r in t||r in El}}))}function jI(e,t=!0){return Le(e)?e.displayName||e.name:e.name||t&&e.__name}function YI(e){return Le(e)&&"__vccOpts"in e}const $=(e,t)=>UD(e,t,ou);function zd(){return qI().slots}function qI(){const e=dt();return e.setupContext||(e.setupContext=iT(e))}function Ce(e,t,r){const n=arguments.length;return n===2?Ke(t)&&!be(t)?Ji(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&Ji(r)&&(r=[r]),ee(e,t,r))}const KI=Symbol(""),XI=()=>Oe(KI),ZI="3.2.45",QI="http://www.w3.org/2000/svg",Ua=typeof document<"u"?document:null,h_=Ua&&Ua.createElement("template"),JI={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?Ua.createElementNS(QI,e):Ua.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Ua.createTextNode(e),createComment:e=>Ua.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ua.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{h_.innerHTML=n?`${e}`:e;const s=h_.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function eO(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function tO(e,t,r){const n=e.style,i=ze(r);if(r&&!i){for(const a in r)Ip(n,a,r[a]);if(t&&!ze(t))for(const a in t)r[a]==null&&Ip(n,a,"")}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const v_=/\s*!important$/;function Ip(e,t,r){if(be(r))r.forEach(n=>Ip(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=rO(e,t);v_.test(r)?e.setProperty(wo(n),r.replace(v_,""),"important"):e[n]=r}}const p_=["Webkit","Moz","ms"],Dh={};function rO(e,t){const r=Dh[t];if(r)return r;let n=An(t);if(n!=="filter"&&n in e)return Dh[t]=n;n=Ld(n);for(let i=0;iIh||(lO.then(()=>Ih=0),Ih=Date.now());function cO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;rn(fO(n,r.value),t,5,[n])};return r.value=e,r.attached=uO(),r}function fO(e,t){if(be(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const y_=/^on[a-z]/,dO=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?eO(e,n,i):t==="style"?tO(e,r,n):Ad(t)?Tm(t)||oO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):hO(e,t,n,i))?iO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),nO(e,t,n,i))};function hO(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&y_.test(t)&&Le(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||y_.test(t)&&ze(r)?!1:t in e}const Ei="transition",js="animation",Qn=(e,{slots:t})=>Ce($C,vO(e),t);Qn.displayName="Transition";const oT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Qn.props=Xt({},$C.props,oT);const ha=(e,t=[])=>{be(e)?e.forEach(r=>r(...t)):e&&e(...t)},__=e=>e?be(e)?e.some(t=>t.length>1):e.length>1:!1;function vO(e){const t={};for(const M in e)M in oT||(t[M]=e[M]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:c=s,leaveFromClass:f=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=pO(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:S,onBeforeAppear:w=m,onAppear:x=y,onAppearCancelled:C=_}=t,T=(M,D,R)=>{va(M,D?c:s),va(M,D?u:o),R&&R()},E=(M,D)=>{M._isLeaving=!1,va(M,f),va(M,h),va(M,d),D&&D()},A=M=>(D,R)=>{const k=M?x:y,F=()=>T(D,M,R);ha(k,[D,F]),b_(()=>{va(D,M?l:a),Pi(D,M?c:s),__(k)||w_(D,n,p,F)})};return Xt(t,{onBeforeEnter(M){ha(m,[M]),Pi(M,a),Pi(M,o)},onBeforeAppear(M){ha(w,[M]),Pi(M,l),Pi(M,u)},onEnter:A(!1),onAppear:A(!0),onLeave(M,D){M._isLeaving=!0;const R=()=>E(M,D);Pi(M,f),yO(),Pi(M,d),b_(()=>{M._isLeaving&&(va(M,f),Pi(M,h),__(b)||w_(M,n,g,R))}),ha(b,[M,R])},onEnterCancelled(M){T(M,!1),ha(_,[M])},onAppearCancelled(M){T(M,!0),ha(C,[M])},onLeaveCancelled(M){E(M),ha(S,[M])}})}function pO(e){if(e==null)return null;if(Ke(e))return[Oh(e.enter),Oh(e.leave)];{const t=Oh(e);return[t,t]}}function Oh(e){return Em(e)}function Pi(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function va(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function b_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let gO=0;function w_(e,t,r,n){const i=e._endId=++gO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=mO(e,t);if(!o)return n();const u=o+"end";let c=0;const f=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(r[v]||"").split(", "),i=n(`${Ei}Delay`),a=n(`${Ei}Duration`),o=S_(i,a),s=n(`${js}Delay`),l=n(`${js}Duration`),u=S_(s,l);let c=null,f=0,d=0;t===Ei?o>0&&(c=Ei,f=o,d=a.length):t===js?u>0&&(c=js,f=u,d=l.length):(f=Math.max(o,u),c=f>0?o>u?Ei:js:null,d=c?c===Ei?a.length:l.length:0);const h=c===Ei&&/\b(transform|all)(,|$)/.test(n(`${Ei}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function S_(e,t){for(;e.lengthx_(r)+x_(e[n])))}function x_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function yO(){return document.body.offsetHeight}const C_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return be(t)?r=>hf(t,r):t},Uf={deep:!0,created(e,t,r){e._assign=C_(r),aT(e,"change",()=>{const n=e._modelValue,i=_O(e),a=e.checked,o=e._assign;if(be(n)){const s=uC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(Ed(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(sT(e,a))})},mounted:T_,beforeUpdate(e,t,r){e._assign=C_(r),T_(e,t,r)}};function T_(e,{value:t,oldValue:r},n){e._modelValue=t,be(t)?e.checked=uC(t,n.props.value)>-1:Ed(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=Md(t,sT(e,!0)))}function _O(e){return"_value"in e?e._value:e.value}function sT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const bO=["ctrl","shift","alt","meta"],wO={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>bO.some(r=>e[`${r}Key`]&&!t.includes(r))},jf=(e,t)=>(r,...n)=>{for(let i=0;ir=>{if(!("key"in r))return;const n=wo(r.key);if(t.some(i=>i===n||SO[i]===n))return e(r)},mi={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Ys(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),Ys(e,!0),n.enter(e)):n.leave(e,()=>{Ys(e,!1)}):Ys(e,t))},beforeUnmount(e,{value:t}){Ys(e,t)}};function Ys(e,t){e.style.display=t?e._vod:"none"}const CO=Xt({patchProp:dO},JI);let M_;function lT(){return M_||(M_=LI(CO))}const A_=(...e)=>{lT().render(...e)},TO=(...e)=>{const t=lT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=MO(n);if(!i)return;const a=t._component;!Le(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function MO(e){return ze(e)?document.querySelector(e):e}var AO=typeof global=="object"&&global&&global.Object===Object&&global;const uT=AO;var EO=typeof self=="object"&&self&&self.Object===Object&&self,PO=uT||EO||Function("return this")();const Pn=PO;var LO=Pn.Symbol;const sn=LO;var cT=Object.prototype,DO=cT.hasOwnProperty,IO=cT.toString,qs=sn?sn.toStringTag:void 0;function OO(e){var t=DO.call(e,qs),r=e[qs];try{e[qs]=void 0;var n=!0}catch{}var i=IO.call(e);return n&&(t?e[qs]=r:delete e[qs]),i}var RO=Object.prototype,kO=RO.toString;function NO(e){return kO.call(e)}var BO="[object Null]",FO="[object Undefined]",E_=sn?sn.toStringTag:void 0;function xo(e){return e==null?e===void 0?FO:BO:E_&&E_ in Object(e)?OO(e):NO(e)}function Kn(e){return e!=null&&typeof e=="object"}var $O="[object Symbol]";function Wd(e){return typeof e=="symbol"||Kn(e)&&xo(e)==$O}function fT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=mR)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function wR(e){return function(){return e}}var SR=function(){try{var e=To(Object,"defineProperty");return e({},"",{}),e}catch{}}();const Yf=SR;var xR=Yf?function(e,t){return Yf(e,"toString",{configurable:!0,enumerable:!1,value:wR(t),writable:!0})}:jm;const CR=xR;var TR=bR(CR);const vT=TR;function MR(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=IR}function Ns(e){return e!=null&&Xm(e.length)&&!Ym(e)}function OR(e,t,r){if(!Mr(r))return!1;var n=typeof t;return(n=="number"?Ns(r)&&Vd(t,r.length):n=="string"&&t in r)?Bu(r[t],e):!1}function RR(e){return DR(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&OR(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function Xk(e,t){var r=this.__data__,n=Gd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function xi(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?iy(s,t-1,r,n,i):ny(i,s):n||(i[i.length]=s)}return i}function vN(e){var t=e==null?0:e.length;return t?iy(e,1):[]}function pN(e){return vT(pT(e,void 0,vN),e+"")}var gN=bT(Object.getPrototypeOf,Object);const ay=gN;var mN="[object Object]",yN=Function.prototype,_N=Object.prototype,wT=yN.toString,bN=_N.hasOwnProperty,wN=wT.call(Object);function SN(e){if(!Kn(e)||xo(e)!=mN)return!1;var t=ay(e);if(t===null)return!0;var r=bN.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&wT.call(r)==wN}function Rp(){if(!arguments.length)return[];var e=arguments[0];return fr(e)?e:[e]}function xN(){this.__data__=new xi,this.size=0}function CN(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function TN(e){return this.__data__.get(e)}function MN(e){return this.__data__.has(e)}var AN=200;function EN(e,t){var r=this.__data__;if(r instanceof xi){var n=r.__data__;if(!cu||n.lengths))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=r&fF?new Kf:void 0;for(a.set(e,t),a.set(t,e);++f=t||x<0||f&&C>=a}function m(){var w=Bh();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Bh())}function S(){var w=Bh(),x=g(w);if(n=arguments,i=this,l=w,x){if(s===void 0)return v(l);if(f)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return S.cancel=_,S.flush=b,S}function $p(e,t,r){(r!==void 0&&!Bu(e[t],r)||r===void 0&&!(t in e))&&qm(e,t,r)}function a$(e){return Kn(e)&&Ns(e)}function Hp(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function o$(e){return Fu(e,Hu(e))}function s$(e,t,r,n,i,a,o){var s=Hp(e,r),l=Hp(t,r),u=o.get(l);if(u){$p(e,r,u);return}var c=a?a(s,l,r+"",e,t,o):void 0,f=c===void 0;if(f){var d=fr(l),h=!d&&lu(l),v=!d&&!h&&Jm(l);c=l,d||h||v?fr(s)?c=s:a$(s)?c=hT(s):h?(f=!1,c=xT(l,!0)):v?(f=!1,c=AT(l,!0)):c=[]:SN(l)||su(l)?(c=s,su(s)?c=o$(s):(!Mr(s)||Ym(s))&&(c=ET(l))):f=!1}f&&(o.set(l,c),i(c,l,n,a,o),o.delete(l)),$p(e,r,c)}function BT(e,t,r,n,i){e!==t&&NT(t,function(a,o){if(i||(i=new Mn),Mr(a))s$(e,t,o,r,BT,n,i);else{var s=n?n(Hp(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),$p(e,o,s)}},Hu)}function l$(e,t){var r=-1,n=Ns(e)?Array(e.length):[];return e$(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function u$(e,t){var r=fr(e)?fT:l$;return r(e,qF(t))}function c$(e,t){return iy(u$(e,t),1)}function f$(e){for(var t=-1,r=e==null?0:e.length,n={};++ti=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var ab;const Ot=typeof window<"u",Br=e=>typeof e=="boolean",_$=e=>typeof e=="function",Yt=e=>typeof e=="number",b$=e=>typeof e=="string",zp=()=>{};Ot&&((ab=window==null?void 0:window.navigator)!=null&&ab.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ho(e){return typeof e=="function"?e():P(e)}function HT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const zT=e=>e();function w$(e,t={}){let r,n,i=zp;const a=s=>{clearTimeout(s),i(),i=zp};return s=>{const l=ho(e),u=ho(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((c,f)=>{i=t.rejectOnCancel?f:c,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,c(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,c(s())},l)})}}function S$(e=zT){const t=H(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:ku(t),pause:r,resume:n,eventFilter:i}}function x$(e){return e}function Wu(e){return vD()?(pD(e),!0):!1}function C$(e,t=200,r={}){return HT(w$(t,r),e)}function T$(e,t=200,r={}){const n=H(e.value),i=C$(()=>{n.value=e.value},t,r);return xe(e,()=>i()),n}function M$(e){return typeof e=="function"?$(e):H(e)}function WT(e,t=!0){dt()?Mt(e):t?e():Rt(e)}function Wp(e,t,r={}){const{immediate:n=!0}=r,i=H(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},ho(t))}return n&&(i.value=!0,Ot&&l()),Wu(s),{isPending:ku(i),start:l,stop:s}}function A$(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=xt(e),a=H(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=ho(r);return a.value=a.value===l?ho(n):l,a.value}}return i?o:[a,o]}var ob=Object.getOwnPropertySymbols,E$=Object.prototype.hasOwnProperty,P$=Object.prototype.propertyIsEnumerable,L$=(e,t)=>{var r={};for(var n in e)E$.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ob)for(var n of ob(e))t.indexOf(n)<0&&P$.call(e,n)&&(r[n]=e[n]);return r};function D$(e,t,r={}){const n=r,{eventFilter:i=zT}=n,a=L$(n,["eventFilter"]);return xe(e,HT(i,t),a)}var I$=Object.defineProperty,O$=Object.defineProperties,R$=Object.getOwnPropertyDescriptors,Zf=Object.getOwnPropertySymbols,VT=Object.prototype.hasOwnProperty,GT=Object.prototype.propertyIsEnumerable,sb=(e,t,r)=>t in e?I$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,k$=(e,t)=>{for(var r in t||(t={}))VT.call(t,r)&&sb(e,r,t[r]);if(Zf)for(var r of Zf(t))GT.call(t,r)&&sb(e,r,t[r]);return e},N$=(e,t)=>O$(e,R$(t)),B$=(e,t)=>{var r={};for(var n in e)VT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Zf)for(var n of Zf(e))t.indexOf(n)<0&>.call(e,n)&&(r[n]=e[n]);return r};function F$(e,t,r={}){const n=r,{eventFilter:i}=n,a=B$(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=S$(i);return{stop:D$(e,t,N$(k$({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Vi(e){var t;const r=ho(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ea=Ot?window:void 0;function Sn(...e){let t,r,n,i;if(b$(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ea):[t,r,n,i]=e,!t)return zp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(c=>c()),a.length=0},s=(c,f,d)=>(c.addEventListener(f,d,i),()=>c.removeEventListener(f,d,i)),l=xe(()=>Vi(t),c=>{o(),c&&a.push(...r.flatMap(f=>n.map(d=>s(c,f,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return Wu(u),u}function $$(e,t,r={}){const{window:n=ea,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=Vi(v);return p&&(h.target===p||h.composedPath().includes(p))}}),c=h=>{n.clearTimeout(l);const v=Vi(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},f=[Sn(n,"click",c,{passive:!0,capture:a}),Sn(n,"pointerdown",h=>{const v=Vi(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),Sn(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>c(h),50)}},{passive:!0}),o&&Sn(n,"blur",h=>{var v;const p=Vi(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>f.forEach(h=>h())}function UT(e,t=!1){const r=H(),n=()=>r.value=Boolean(e());return n(),WT(n,t),r}function H$(e,t={}){const{window:r=ea}=t,n=UT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=H(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(M$(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return no(s),Wu(()=>o()),a}const Vp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Gp="__vueuse_ssr_handlers__";Vp[Gp]=Vp[Gp]||{};const z$=Vp[Gp];function jT(e,t){return z$[e]||t}function W$(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var V$=Object.defineProperty,lb=Object.getOwnPropertySymbols,G$=Object.prototype.hasOwnProperty,U$=Object.prototype.propertyIsEnumerable,ub=(e,t,r)=>t in e?V$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,cb=(e,t)=>{for(var r in t||(t={}))G$.call(t,r)&&ub(e,r,t[r]);if(lb)for(var r of lb(t))U$.call(t,r)&&ub(e,r,t[r]);return e};const j$={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function Y$(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=ea,eventFilter:d,onError:h=x=>{console.error(x)}}=n,v=(c?EC:H)(t);if(!r)try{r=jT("getDefaultStorage",()=>{var x;return(x=ea)==null?void 0:x.localStorage})()}catch(x){h(x)}if(!r)return v;const p=ho(t),g=W$(p),m=(i=n.serializer)!=null?i:j$[g],{pause:y,resume:_}=F$(v,()=>b(v.value),{flush:a,deep:o,eventFilter:d});return f&&s&&Sn(f,"storage",w),w(),v;function b(x){try{if(x==null)r.removeItem(e);else{const C=m.write(x),T=r.getItem(e);T!==C&&(r.setItem(e,C),f&&(f==null||f.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:T,newValue:C,storageArea:r}))))}}catch(C){h(C)}}function S(x){const C=x?x.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,m.write(p)),p;if(!x&&u){const T=m.read(C);return _$(u)?u(T,p):g==="object"&&!Array.isArray(T)?cb(cb({},p),T):T}else return typeof C!="string"?C:m.read(C)}function w(x){if(!(x&&x.storageArea!==r)){if(x&&x.key==null){v.value=p;return}if(!(x&&x.key!==e)){y();try{v.value=S(x)}catch(C){h(C)}finally{x?Rt(_):_()}}}}}function YT(e){return H$("(prefers-color-scheme: dark)",e)}var q$=Object.defineProperty,fb=Object.getOwnPropertySymbols,K$=Object.prototype.hasOwnProperty,X$=Object.prototype.propertyIsEnumerable,db=(e,t,r)=>t in e?q$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z$=(e,t)=>{for(var r in t||(t={}))K$.call(t,r)&&db(e,r,t[r]);if(fb)for(var r of fb(t))X$.call(t,r)&&db(e,r,t[r]);return e};function Q$(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=ea,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,c=Z$({auto:"",light:"light",dark:"dark"},e.modes||{}),f=YT({window:i}),d=$(()=>f.value?"dark":"light"),h=l||(o==null?H(n):Y$(o,n,a,{window:i,listenToStorageChanges:s})),v=$({get(){return h.value==="auto"&&!u?d.value:h.value},set(y){h.value=y}}),p=jT("updateHTMLAttrs",(y,_,b)=>{const S=i==null?void 0:i.document.querySelector(y);if(S)if(_==="class"){const w=b.split(/\s/g);Object.values(c).flatMap(x=>(x||"").split(/\s/g)).filter(Boolean).forEach(x=>{w.includes(x)?S.classList.add(x):S.classList.remove(x)})}else S.setAttribute(_,b)});function g(y){var _;const b=y==="auto"?d.value:y;p(t,r,(_=c[b])!=null?_:b)}function m(y){e.onChanged?e.onChanged(y,g):g(y)}return xe(v,m,{flush:"post",immediate:!0}),u&&xe(d,()=>m(v.value),{flush:"post"}),WT(()=>m(v.value)),v}var J$=Object.defineProperty,e5=Object.defineProperties,t5=Object.getOwnPropertyDescriptors,hb=Object.getOwnPropertySymbols,r5=Object.prototype.hasOwnProperty,n5=Object.prototype.propertyIsEnumerable,vb=(e,t,r)=>t in e?J$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,i5=(e,t)=>{for(var r in t||(t={}))r5.call(t,r)&&vb(e,r,t[r]);if(hb)for(var r of hb(t))n5.call(t,r)&&vb(e,r,t[r]);return e},a5=(e,t)=>e5(e,t5(t));function o5(e={}){const{valueDark:t="dark",valueLight:r="",window:n=ea}=e,i=Q$(a5(i5({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=YT({window:n});return $({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var pb=Object.getOwnPropertySymbols,s5=Object.prototype.hasOwnProperty,l5=Object.prototype.propertyIsEnumerable,u5=(e,t)=>{var r={};for(var n in e)s5.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&pb)for(var n of pb(e))t.indexOf(n)<0&&l5.call(e,n)&&(r[n]=e[n]);return r};function ms(e,t,r={}){const n=r,{window:i=ea}=n,a=u5(n,["window"]);let o;const s=UT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=xe(()=>Vi(e),f=>{l(),s.value&&i&&f&&(o=new ResizeObserver(t),o.observe(f,a))},{immediate:!0,flush:"post"}),c=()=>{l(),u()};return Wu(c),{isSupported:s,stop:c}}var gb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(gb||(gb={}));var c5=Object.defineProperty,mb=Object.getOwnPropertySymbols,f5=Object.prototype.hasOwnProperty,d5=Object.prototype.propertyIsEnumerable,yb=(e,t,r)=>t in e?c5(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,h5=(e,t)=>{for(var r in t||(t={}))f5.call(t,r)&&yb(e,r,t[r]);if(mb)for(var r of mb(t))d5.call(t,r)&&yb(e,r,t[r]);return e};const v5={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};h5({linear:x$},v5);const Qf=e=>e===void 0,ys=e=>typeof Element>"u"?!1:e instanceof Element,p5=e=>ze(e)?!Number.isNaN(Number(e)):!1,_b=e=>Object.keys(e),mf=(e,t,r)=>({get value(){return fu(e,t,r)},set value(n){y$(e,t,n)}});class g5 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function ta(e,t){throw new g5(`[${e}] ${t}`)}const qT=(e="")=>e.split(" ").filter(t=>!!t.trim()),Il=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Zo=(e,t)=>{!e||!t.trim()||e.classList.add(...qT(t))},ss=(e,t)=>{!e||!t.trim()||e.classList.remove(...qT(t))},bb=(e,t)=>{var r;if(!Ot||!e||!t)return"";let n=An(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function vo(e,t="px"){if(!e)return"";if(Yt(e)||p5(e))return`${e}${t}`;if(ze(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Jn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},m5={name:"ArrowDown"},y5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},_5=ae("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),b5=[_5];function w5(e,t,r,n,i,a){return U(),ye("svg",y5,b5)}var KT=Jn(m5,[["render",w5],["__file","arrow-down.vue"]]),S5={name:"ArrowRight"},x5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},C5=ae("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),T5=[C5];function M5(e,t,r,n,i,a){return U(),ye("svg",x5,T5)}var uy=Jn(S5,[["render",M5],["__file","arrow-right.vue"]]),A5={name:"ArrowUp"},E5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P5=ae("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),L5=[P5];function D5(e,t,r,n,i,a){return U(),ye("svg",E5,L5)}var I5=Jn(A5,[["render",D5],["__file","arrow-up.vue"]]),O5={name:"CircleCloseFilled"},R5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},k5=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),N5=[k5];function B5(e,t,r,n,i,a){return U(),ye("svg",R5,N5)}var XT=Jn(O5,[["render",B5],["__file","circle-close-filled.vue"]]),F5={name:"Close"},$5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},H5=ae("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),z5=[H5];function W5(e,t,r,n,i,a){return U(),ye("svg",$5,z5)}var Up=Jn(F5,[["render",W5],["__file","close.vue"]]),V5={name:"InfoFilled"},G5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},U5=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),j5=[U5];function Y5(e,t,r,n,i,a){return U(),ye("svg",G5,j5)}var ZT=Jn(V5,[["render",Y5],["__file","info-filled.vue"]]),q5={name:"Loading"},K5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},X5=ae("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),Z5=[X5];function Q5(e,t,r,n,i,a){return U(),ye("svg",K5,Z5)}var cy=Jn(q5,[["render",Q5],["__file","loading.vue"]]),J5={name:"More"},e3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},t3=ae("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),r3=[t3];function n3(e,t,r,n,i,a){return U(),ye("svg",e3,r3)}var i3=Jn(J5,[["render",n3],["__file","more.vue"]]),a3={name:"SuccessFilled"},o3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},s3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),l3=[s3];function u3(e,t,r,n,i,a){return U(),ye("svg",o3,l3)}var QT=Jn(a3,[["render",u3],["__file","success-filled.vue"]]),c3={name:"WarningFilled"},f3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},d3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),h3=[d3];function v3(e,t,r,n,i,a){return U(),ye("svg",f3,h3)}var JT=Jn(c3,[["render",v3],["__file","warning-filled.vue"]]);const eM="__epPropKey",Pe=e=>e,p3=e=>Ke(e)&&!!e[eM],qd=(e,t)=>{if(!Ke(e)||p3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let c=!1,f=[];if(r&&(f=Array.from(r),Ve(e,"default")&&f.push(i),c||(c=f.includes(u))),o&&(c||(c=o(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");jD(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[eM]:!0};return Ve(e,"default")&&(l.default=i),l},rt=e=>f$(Object.entries(e).map(([t,r])=>[t,qd(r,t)])),Wn=Pe([String,Object,Function]),g3={Close:Up,SuccessFilled:QT,InfoFilled:ZT,WarningFilled:JT,CircleCloseFilled:XT},wb={success:QT,warning:JT,error:XT,info:ZT},hr=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},m3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),y3=(e,t)=>(e.install=r=>{r.directive(t,e)},e),la=e=>(e.install=ur,e),Lt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},po="update:modelValue",jp="change",Yp="input",Vu=["","default","small","large"],_3=e=>["",...Vu].includes(e),yf=e=>{const t=be(e)?e:[e],r=[];return t.forEach(n=>{var i;be(n)?r.push(...yf(n)):Ji(n)&&be(n.children)?r.push(...yf(n.children)):(r.push(n),Ji(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...yf(n.component.subTree)))}),r},ja=e=>e,tM=Symbol("buttonGroupContextKey"),Bs=Symbol("checkboxGroupContextKey"),rM=Symbol(),Fs=Symbol("formContextKey"),go=Symbol("formItemContextKey"),nM=Symbol("rowContextKey"),iM=Symbol("scrollbarContextKey"),fy=Symbol("popper"),aM=Symbol("popperContent"),dy=Symbol("elTooltip"),oM=e=>{const t=dt();return $(()=>{var r,n;return(n=((r=t.proxy)==null?void 0:r.$props)[e])!=null?n:void 0})},Jf=H();function ua(e,t=void 0){const r=dt()?Oe(rM,Jf):Jf;return e?$(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}const b3=(e,t,r=!1)=>{var n;const i=!!dt(),a=i?ua():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?Tt:void 0;if(!o)return;const s=$(()=>{const l=P(e);return a!=null&&a.value?w3(a.value,l):l});return o(rM,s),(r||!Jf.value)&&(Jf.value=s.value),s},w3=(e,t)=>{var r;const n=[...new Set([..._b(e),..._b(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},Kd=qd({type:String,values:Vu,required:!1}),ra=(e,t={})=>{const r=H(void 0),n=t.prop?r:oM("size"),i=t.global?r:ua("size"),a=t.form?{size:void 0}:Oe(Fs,void 0),o=t.formItem?{size:void 0}:Oe(go,void 0);return $(()=>n.value||P(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},Xd=e=>{const t=oM("disabled"),r=Oe(Fs,void 0);return $(()=>t.value||P(e)||(r==null?void 0:r.disabled)||!1)},sM=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{xe(()=>P(o),s=>{},{immediate:!0})},hy="el",S3="is-",pa=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},Be=e=>{const t=ua("namespace",hy);return{namespace:t,b:(v="")=>pa(t.value,e,v,"",""),e:v=>v?pa(t.value,e,"",v,""):"",m:v=>v?pa(t.value,e,"","",v):"",be:(v,p)=>v&&p?pa(t.value,e,v,p,""):"",em:(v,p)=>v&&p?pa(t.value,e,"",v,p):"",bm:(v,p)=>v&&p?pa(t.value,e,v,"",p):"",bem:(v,p,g)=>v&&p&&g?pa(t.value,e,v,p,g):"",is:(v,...p)=>{const g=p.length>=1?p[0]:!0;return v&&g?`${S3}${v}`:""},cssVar:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${g}`]=v[g]);return p},cssVarName:v=>`--${t.value}-${v}`,cssVarBlock:v=>{const p={};for(const g in v)v[g]&&(p[`--${t.value}-${e}-${g}`]=v[g]);return p},cssVarBlockName:v=>`--${t.value}-${e}-${v}`}},Sb={prefix:Math.floor(Math.random()*1e4),current:0},x3=Symbol("elIdInjection"),lM=()=>dt()?Oe(x3,Sb):Sb,vy=e=>{const t=lM(),r=ua("namespace",hy);return $(()=>P(e)||`${r.value}-id-${t.prefix}-${t.current++}`)},Gu=()=>{const e=Oe(Fs,void 0),t=Oe(go,void 0);return{form:e,formItem:t}},py=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=H(!1)),n||(n=H(!1));const i=H();let a;const o=$(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return Mt(()=>{a=xe([Tn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:vy().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),Nu(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}};var C3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const T3=e=>(t,r)=>M3(t,r,P(e)),M3=(e,t,r)=>fu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),A3=e=>{const t=$(()=>P(e).name),r=xt(e)?e:H(e);return{lang:t,locale:r,t:T3(e)}},uM=()=>{const e=ua("locale");return A3($(()=>e.value||C3))},E3=qd({type:Pe(Boolean),default:null}),P3=qd({type:Pe(Function)}),L3=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:E3,[r]:P3};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:c,onHide:f})=>{const d=dt(),{emit:h}=d,v=d.props,p=$(()=>Le(v[r])),g=$(()=>v[e]===null),m=x=>{o.value!==!0&&(o.value=!0,s&&(s.value=x),Le(c)&&c(x))},y=x=>{o.value!==!1&&(o.value=!1,s&&(s.value=x),Le(f)&&f(x))},_=x=>{if(v.disabled===!0||Le(u)&&!u())return;const C=p.value&&Ot;C&&h(t,!0),(g.value||!C)&&m(x)},b=x=>{if(v.disabled===!0||!Ot)return;const C=p.value&&Ot;C&&h(t,!1),(g.value||!C)&&y(x)},S=x=>{Br(x)&&(v.disabled&&x?p.value&&h(t,!1):o.value!==x&&(x?m():y()))},w=()=>{o.value?b():_()};return xe(()=>v[e],S),l&&d.appContext.config.globalProperties.$route!==void 0&&xe(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),Mt(()=>{S(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}};var xr="top",ln="bottom",un="right",Cr="left",gy="auto",Uu=[xr,ln,un,Cr],_s="start",hu="end",D3="clippingParents",cM="viewport",Ks="popper",I3="reference",xb=Uu.reduce(function(e,t){return e.concat([t+"-"+_s,t+"-"+hu])},[]),my=[].concat(Uu,[gy]).reduce(function(e,t){return e.concat([t,t+"-"+_s,t+"-"+hu])},[]),O3="beforeRead",R3="read",k3="afterRead",N3="beforeMain",B3="main",F3="afterMain",$3="beforeWrite",H3="write",z3="afterWrite",W3=[O3,R3,k3,N3,B3,F3,$3,H3,z3];function Xn(e){return e?(e.nodeName||"").toLowerCase():null}function Ln(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bs(e){var t=Ln(e).Element;return e instanceof t||e instanceof Element}function an(e){var t=Ln(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function yy(e){if(typeof ShadowRoot>"u")return!1;var t=Ln(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function V3(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!an(a)||!Xn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function G3(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!an(i)||!Xn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var fM={name:"applyStyles",enabled:!0,phase:"write",fn:V3,effect:G3,requires:["computeStyles"]};function Yn(e){return e.split("-")[0]}var ao=Math.max,ed=Math.min,ws=Math.round;function Ss(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(an(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ws(r.width)/o||1),a>0&&(i=ws(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function _y(e){var t=Ss(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function dM(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&yy(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function yi(e){return Ln(e).getComputedStyle(e)}function U3(e){return["table","td","th"].indexOf(Xn(e))>=0}function ca(e){return((bs(e)?e.ownerDocument:e.document)||window.document).documentElement}function Zd(e){return Xn(e)==="html"?e:e.assignedSlot||e.parentNode||(yy(e)?e.host:null)||ca(e)}function Cb(e){return!an(e)||yi(e).position==="fixed"?null:e.offsetParent}function j3(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&an(e)){var n=yi(e);if(n.position==="fixed")return null}var i=Zd(e);for(yy(i)&&(i=i.host);an(i)&&["html","body"].indexOf(Xn(i))<0;){var a=yi(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function ju(e){for(var t=Ln(e),r=Cb(e);r&&U3(r)&&yi(r).position==="static";)r=Cb(r);return r&&(Xn(r)==="html"||Xn(r)==="body"&&yi(r).position==="static")?t:r||j3(e)||t}function by(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ol(e,t,r){return ao(e,ed(t,r))}function Y3(e,t,r){var n=Ol(e,t,r);return n>r?r:n}function hM(){return{top:0,right:0,bottom:0,left:0}}function vM(e){return Object.assign({},hM(),e)}function pM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var q3=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,vM(typeof e!="number"?e:pM(e,Uu))};function K3(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=Yn(r.placement),l=by(s),u=[Cr,un].indexOf(s)>=0,c=u?"height":"width";if(!(!a||!o)){var f=q3(i.padding,r),d=_y(a),h=l==="y"?xr:Cr,v=l==="y"?ln:un,p=r.rects.reference[c]+r.rects.reference[l]-o[l]-r.rects.popper[c],g=o[l]-r.rects.reference[l],m=ju(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=f[h],S=y-d[c]-f[v],w=y/2-d[c]/2+_,x=Ol(b,w,S),C=l;r.modifiersData[n]=(t={},t[C]=x,t.centerOffset=x-w,t)}}function X3(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!dM(t.elements.popper,i)||(t.elements.arrow=i))}var Z3={name:"arrow",enabled:!0,phase:"main",fn:K3,effect:X3,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function xs(e){return e.split("-")[1]}var Q3={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J3(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ws(t*i)/i||0,y:ws(r*i)/i||0}}function Tb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof c=="function"?c({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Cr,b=xr,S=window;if(u){var w=ju(r),x="clientHeight",C="clientWidth";if(w===Ln(r)&&(w=ca(r),yi(w).position!=="static"&&s==="absolute"&&(x="scrollHeight",C="scrollWidth")),w=w,i===xr||(i===Cr||i===un)&&a===hu){b=ln;var T=f&&w===S&&S.visualViewport?S.visualViewport.height:w[x];p-=T-n.height,p*=l?1:-1}if(i===Cr||(i===xr||i===ln)&&a===hu){_=un;var E=f&&w===S&&S.visualViewport?S.visualViewport.width:w[C];h-=E-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&Q3),M=c===!0?J3({x:h,y:p}):{x:h,y:p};if(h=M.x,p=M.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(S.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function e4(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:Yn(t.placement),variation:xs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Tb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Tb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var gM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:e4,data:{}},dc={passive:!0};function t4(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=Ln(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",r.update,dc)}),s&&l.addEventListener("resize",r.update,dc),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",r.update,dc)}),s&&l.removeEventListener("resize",r.update,dc)}}var mM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:t4,data:{}},r4={left:"right",right:"left",bottom:"top",top:"bottom"};function _f(e){return e.replace(/left|right|bottom|top/g,function(t){return r4[t]})}var n4={start:"end",end:"start"};function Mb(e){return e.replace(/start|end/g,function(t){return n4[t]})}function wy(e){var t=Ln(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Sy(e){return Ss(ca(e)).left+wy(e).scrollLeft}function i4(e){var t=Ln(e),r=ca(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Sy(e),y:s}}function a4(e){var t,r=ca(e),n=wy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=ao(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=ao(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Sy(e),l=-n.scrollTop;return yi(i||r).direction==="rtl"&&(s+=ao(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function xy(e){var t=yi(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function yM(e){return["html","body","#document"].indexOf(Xn(e))>=0?e.ownerDocument.body:an(e)&&xy(e)?e:yM(Zd(e))}function Rl(e,t){var r;t===void 0&&(t=[]);var n=yM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=Ln(n),o=i?[a].concat(a.visualViewport||[],xy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(Rl(Zd(o)))}function qp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function o4(e){var t=Ss(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ab(e,t){return t===cM?qp(i4(e)):bs(t)?o4(t):qp(a4(ca(e)))}function s4(e){var t=Rl(Zd(e)),r=["absolute","fixed"].indexOf(yi(e).position)>=0,n=r&&an(e)?ju(e):e;return bs(n)?t.filter(function(i){return bs(i)&&dM(i,n)&&Xn(i)!=="body"}):[]}function l4(e,t,r){var n=t==="clippingParents"?s4(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=Ab(e,l);return s.top=ao(u.top,s.top),s.right=ed(u.right,s.right),s.bottom=ed(u.bottom,s.bottom),s.left=ao(u.left,s.left),s},Ab(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function _M(e){var t=e.reference,r=e.element,n=e.placement,i=n?Yn(n):null,a=n?xs(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case xr:l={x:o,y:t.y-r.height};break;case ln:l={x:o,y:t.y+t.height};break;case un:l={x:t.x+t.width,y:s};break;case Cr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?by(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case _s:l[u]=l[u]-(t[c]/2-r[c]/2);break;case hu:l[u]=l[u]+(t[c]/2-r[c]/2);break}}return l}function vu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?D3:a,s=r.rootBoundary,l=s===void 0?cM:s,u=r.elementContext,c=u===void 0?Ks:u,f=r.altBoundary,d=f===void 0?!1:f,h=r.padding,v=h===void 0?0:h,p=vM(typeof v!="number"?v:pM(v,Uu)),g=c===Ks?I3:Ks,m=e.rects.popper,y=e.elements[d?g:c],_=l4(bs(y)?y:y.contextElement||ca(e.elements.popper),o,l),b=Ss(e.elements.reference),S=_M({reference:b,element:m,strategy:"absolute",placement:i}),w=qp(Object.assign({},m,S)),x=c===Ks?w:b,C={top:_.top-x.top+p.top,bottom:x.bottom-_.bottom+p.bottom,left:_.left-x.left+p.left,right:x.right-_.right+p.right},T=e.modifiersData.offset;if(c===Ks&&T){var E=T[i];Object.keys(C).forEach(function(A){var M=[un,ln].indexOf(A)>=0?1:-1,D=[xr,ln].indexOf(A)>=0?"y":"x";C[A]+=E[D]*M})}return C}function u4(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?my:l,c=xs(n),f=c?s?xb:xb.filter(function(v){return xs(v)===c}):Uu,d=f.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=f);var h=d.reduce(function(v,p){return v[p]=vu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[Yn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function c4(e){if(Yn(e)===gy)return[];var t=_f(e);return[Mb(e),t,Mb(t)]}function f4(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=Yn(g),y=m===g,_=l||(y||!v?[_f(g)]:c4(g)),b=[g].concat(_).reduce(function(Ee,V){return Ee.concat(Yn(V)===gy?u4(t,{placement:V,boundary:c,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),S=t.rects.reference,w=t.rects.popper,x=new Map,C=!0,T=b[0],E=0;E=0,k=R?"width":"height",F=vu(t,{placement:A,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),K=R?D?un:Cr:D?ln:xr;S[k]>w[k]&&(K=_f(K));var B=_f(K),N=[];if(a&&N.push(F[M]<=0),s&&N.push(F[K]<=0,F[B]<=0),N.every(function(Ee){return Ee})){T=A,C=!1;break}x.set(A,N)}if(C)for(var j=v?3:1,re=function(Ee){var V=b.find(function(J){var W=x.get(J);if(W)return W.slice(0,Ee).every(function(Y){return Y})});if(V)return T=V,"break"},oe=j;oe>0;oe--){var _e=re(oe);if(_e==="break")break}t.placement!==T&&(t.modifiersData[n]._skip=!0,t.placement=T,t.reset=!0)}}var d4={name:"flip",enabled:!0,phase:"main",fn:f4,requiresIfExists:["offset"],data:{_skip:!1}};function Eb(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Pb(e){return[xr,un,ln,Cr].some(function(t){return e[t]>=0})}function h4(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=vu(t,{elementContext:"reference"}),s=vu(t,{altBoundary:!0}),l=Eb(o,n),u=Eb(s,i,a),c=Pb(l),f=Pb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var v4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:h4};function p4(e,t,r){var n=Yn(e),i=[Cr,xr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Cr,un].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function g4(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=my.reduce(function(c,f){return c[f]=p4(f,t.rects,a),c},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var m4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:g4};function y4(e){var t=e.state,r=e.name;t.modifiersData[r]=_M({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var bM={name:"popperOffsets",enabled:!0,phase:"read",fn:y4,data:{}};function _4(e){return e==="x"?"y":"x"}function b4(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=vu(t,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),m=Yn(t.placement),y=xs(t.placement),_=!y,b=by(m),S=_4(b),w=t.modifiersData.popperOffsets,x=t.rects.reference,C=t.rects.popper,T=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,E=typeof T=="number"?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,M={x:0,y:0};if(w){if(a){var D,R=b==="y"?xr:Cr,k=b==="y"?ln:un,F=b==="y"?"height":"width",K=w[b],B=K+g[R],N=K-g[k],j=h?-C[F]/2:0,re=y===_s?x[F]:C[F],oe=y===_s?-C[F]:-x[F],_e=t.elements.arrow,Ee=h&&_e?_y(_e):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:hM(),J=V[R],W=V[k],Y=Ol(0,x[F],Ee[F]),ue=_?x[F]/2-j-Y-J-E.mainAxis:re-Y-J-E.mainAxis,he=_?-x[F]/2+j+Y+W+E.mainAxis:oe+Y+W+E.mainAxis,Q=t.elements.arrow&&ju(t.elements.arrow),L=Q?b==="y"?Q.clientTop||0:Q.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=K+ue-I-L,G=K+he-I,q=Ol(h?ed(B,z):B,K,h?ao(N,G):N);w[b]=q,M[b]=q-K}if(s){var ne,de=b==="x"?xr:Cr,te=b==="x"?ln:un,ie=w[S],X=S==="y"?"height":"width",we=ie+g[de],ve=ie-g[te],Se=[xr,Cr].indexOf(m)!==-1,Ie=(ne=A==null?void 0:A[S])!=null?ne:0,$e=Se?we:ie-x[X]-C[X]-Ie+E.altAxis,nt=Se?ie+x[X]+C[X]-Ie-E.altAxis:ve,et=h&&Se?Y3($e,ie,nt):Ol(h?$e:we,ie,h?nt:ve);w[S]=et,M[S]=et-ie}t.modifiersData[n]=M}}var w4={name:"preventOverflow",enabled:!0,phase:"main",fn:b4,requiresIfExists:["offset"]};function S4(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function x4(e){return e===Ln(e)||!an(e)?wy(e):S4(e)}function C4(e){var t=e.getBoundingClientRect(),r=ws(t.width)/e.offsetWidth||1,n=ws(t.height)/e.offsetHeight||1;return r!==1||n!==1}function T4(e,t,r){r===void 0&&(r=!1);var n=an(t),i=an(t)&&C4(t),a=ca(t),o=Ss(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Xn(t)!=="body"||xy(a))&&(s=x4(t)),an(t)?(l=Ss(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Sy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function M4(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function A4(e){var t=M4(e);return W3.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function E4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function P4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var Lb={placement:"bottom",modifiers:[],strategy:"absolute"};function Db(){for(var e=arguments.length,t=new Array(e),r=0;r{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return Wu(()=>r()),{registerTimeout:t,cancelTimeout:r}}let Yo=[];const Ib=e=>{const t=e;t.key===Lt.esc&&Yo.forEach(r=>r(t))},O4=e=>{Mt(()=>{Yo.length===0&&document.addEventListener("keydown",Ib),Ot&&Yo.push(e)}),nr(()=>{Yo=Yo.filter(t=>t!==e),Yo.length===0&&Ot&&document.removeEventListener("keydown",Ib)})};let Ob;const SM=()=>{const e=ua("namespace",hy),t=lM(),r=$(()=>`${e.value}-popper-container-${t.prefix}`),n=$(()=>`#${r.value}`);return{id:r,selector:n}},R4=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},k4=()=>{Bd(()=>{if(!Ot)return;const{id:e,selector:t}=SM();!Ob&&!document.body.querySelector(t.value)&&(Ob=R4(e.value))})},N4=rt({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),xM=({showAfter:e,hideAfter:t,open:r,close:n})=>{const{registerTimeout:i}=I4();return{onOpen:s=>{i(()=>{r(s)},P(e))},onClose:s=>{i(()=>{n(s)},P(t))}}},CM=Symbol("elForwardRef"),B4=e=>{Tt(CM,{setForwardRef:r=>{e.value=r}})},F4=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),Rb=H(0),Ty=()=>{const e=ua("zIndex",2e3),t=$(()=>e.value+Rb.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(Rb.value++,t.value)}};var Xe=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const $4=rt({size:{type:Pe([Number,String])},color:{type:String}}),H4=ce({name:"ElIcon",inheritAttrs:!1}),z4=ce({...H4,props:$4,setup(e){const t=e,r=Be("icon"),n=$(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:Qf(i)?void 0:vo(i),"--color":a}});return(i,a)=>(U(),ye("i",So({class:P(r).b(),style:P(n)},i.$attrs),[Fe(i.$slots,"default")],16))}});var W4=Xe(z4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const lr=hr(W4),Qo=4,V4={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},G4=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),U4=rt({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),j4="Thumb",Y4=ce({__name:"thumb",props:U4,setup(e){const t=e,r=Oe(iM),n=Be("scrollbar");r||ta(j4,"can not inject scrollbar context");const i=H(),a=H(),o=H({}),s=H(!1);let l=!1,u=!1,c=Ot?document.onselectstart:null;const f=$(()=>V4[t.vertical?"vertical":"horizontal"]),d=$(()=>G4({size:t.size,move:t.move,bar:f.value})),h=$(()=>i.value[f.value.offset]**2/r.wrapElement[f.value.scrollSize]/t.ratio/a.value[f.value.offset]),v=w=>{var x;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(x=window.getSelection())==null||x.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[f.value.axis]=C[f.value.offset]-(w[f.value.client]-C.getBoundingClientRect()[f.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const x=Math.abs(w.target.getBoundingClientRect()[f.value.direction]-w[f.value.client]),C=a.value[f.value.offset]/2,T=(x-C)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=T*r.wrapElement[f.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),c=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const x=o.value[f.value.axis];if(!x)return;const C=(i.value.getBoundingClientRect()[f.value.direction]-w[f.value.client])*-1,T=a.value[f.value.offset]-x,E=(C-T)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=E*r.wrapElement[f.value.scrollSize]/100},y=()=>{l=!1,o.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),S(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};nr(()=>{S(),document.removeEventListener("mouseup",y)});const S=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return Sn(Tn(r,"scrollbarElement"),"mousemove",_),Sn(Tn(r,"scrollbarElement"),"mouseleave",b),(w,x)=>(U(),me(Qn,{name:P(n).b("fade"),persisted:""},{default:Z(()=>[qt(ae("div",{ref_key:"instance",ref:i,class:le([P(n).e("bar"),P(n).is(P(f).key)]),onMousedown:p},[ae("div",{ref_key:"thumb",ref:a,class:le(P(n).e("thumb")),style:St(P(d)),onMousedown:v},null,38)],34),[[mi,w.always||s.value]])]),_:1},8,["name"]))}});var kb=Xe(Y4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const q4=rt({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),K4=ce({__name:"bar",props:q4,setup(e,{expose:t}){const r=e,n=H(0),i=H(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Qo,l=o.offsetWidth-Qo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(U(),ye(yt,null,[ee(kb,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),ee(kb,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var X4=Xe(K4,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const Z4=rt({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Pe([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),Q4={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Yt)},J4="ElScrollbar",eH=ce({name:J4}),tH=ce({...eH,props:Z4,emits:Q4,setup(e,{expose:t,emit:r}){const n=e,i=Be("scrollbar");let a,o;const s=H(),l=H(),u=H(),c=H("0"),f=H("0"),d=H(),h=H(1),v=H(1),p=$(()=>{const x={};return n.height&&(x.height=vo(n.height)),n.maxHeight&&(x.maxHeight=vo(n.maxHeight)),[n.wrapStyle,x]}),g=$(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=$(()=>[i.e("view"),n.viewClass]),y=()=>{var x;l.value&&((x=d.value)==null||x.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(x,C){Ke(x)?l.value.scrollTo(x):Yt(x)&&Yt(C)&&l.value.scrollTo(x,C)}const b=x=>{Yt(x)&&(l.value.scrollTop=x)},S=x=>{Yt(x)&&(l.value.scrollLeft=x)},w=()=>{if(!l.value)return;const x=l.value.offsetHeight-Qo,C=l.value.offsetWidth-Qo,T=x**2/l.value.scrollHeight,E=C**2/l.value.scrollWidth,A=Math.max(T,n.minSize),M=Math.max(E,n.minSize);h.value=T/(x-T)/(A/(x-A)),v.value=E/(C-E)/(M/(C-M)),f.value=A+Qon.noresize,x=>{x?(a==null||a(),o==null||o()):({stop:a}=ms(u,w),o=Sn("resize",w))},{immediate:!0}),xe(()=>[n.maxHeight,n.height],()=>{n.native||Rt(()=>{var x;w(),l.value&&((x=d.value)==null||x.handleScroll(l.value))})}),Tt(iM,fn({scrollbarElement:s,wrapElement:l})),Mt(()=>{n.native||Rt(()=>{w()})}),Fd(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:S,handleScroll:y}),(x,C)=>(U(),ye("div",{ref_key:"scrollbarRef",ref:s,class:le(P(i).b())},[ae("div",{ref_key:"wrapRef",ref:l,class:le(P(g)),style:St(P(p)),onScroll:y},[(U(),me(nn(x.tag),{ref_key:"resizeRef",ref:u,class:le(P(m)),style:St(x.viewStyle)},{default:Z(()=>[Fe(x.$slots,"default")]),_:3},8,["class","style"]))],38),x.native?ke("v-if",!0):(U(),me(X4,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:x.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var rH=Xe(tH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const TM=hr(rH),nH=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],MM=rt({role:{type:String,values:nH,default:"tooltip"}}),iH=ce({name:"ElPopperRoot",inheritAttrs:!1}),aH=ce({...iH,props:MM,setup(e,{expose:t}){const r=e,n=H(),i=H(),a=H(),o=H(),s=$(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),Tt(fy,l),(u,c)=>Fe(u.$slots,"default")}});var oH=Xe(aH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const AM=rt({arrowOffset:{type:Number,default:5}}),sH=ce({name:"ElPopperArrow",inheritAttrs:!1}),lH=ce({...sH,props:AM,setup(e,{expose:t}){const r=e,n=Be("popper"),{arrowOffset:i,arrowRef:a}=Oe(aM,void 0);return xe(()=>r.arrowOffset,o=>{i.value=o}),nr(()=>{a.value=void 0}),t({arrowRef:a}),(o,s)=>(U(),ye("span",{ref_key:"arrowRef",ref:a,class:le(P(n).e("arrow")),"data-popper-arrow":""},null,2))}});var uH=Xe(lH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const cH="ElOnlyChild",fH=ce({name:cH,setup(e,{slots:t,attrs:r}){var n;const i=Oe(CM),a=F4((n=i==null?void 0:i.setForwardRef)!=null?n:ur);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=EM(s);return l?qt(gi(l,r),[[a]]):null}}});function EM(e){if(!e)return null;const t=e;for(const r of t){if(Ke(r))switch(r.type){case Sr:continue;case ks:case"svg":return Nb(r);case yt:return EM(r.children);default:return r}return Nb(r)}return null}function Nb(e){const t=Be("only-child");return ee("span",{class:t.e("content")},[e])}const PM=rt({virtualRef:{type:Pe(Object)},virtualTriggering:Boolean,onMouseenter:{type:Pe(Function)},onMouseleave:{type:Pe(Function)},onClick:{type:Pe(Function)},onKeydown:{type:Pe(Function)},onFocus:{type:Pe(Function)},onBlur:{type:Pe(Function)},onContextmenu:{type:Pe(Function)},id:String,open:Boolean}),dH=ce({name:"ElPopperTrigger",inheritAttrs:!1}),hH=ce({...dH,props:PM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Oe(fy,void 0);B4(i);const a=$(()=>s.value?r.id:void 0),o=$(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=$(()=>{if(n&&n.value!=="tooltip")return n.value}),l=$(()=>s.value?`${r.open}`:void 0);let u;return Mt(()=>{xe(()=>r.virtualRef,c=>{c&&(i.value=Vi(c))},{immediate:!0}),xe(i,(c,f)=>{u==null||u(),u=void 0,ys(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(c.addEventListener(d.slice(2).toLowerCase(),v),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),v))}),u=xe([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{ly(d[v])?c.removeAttribute(h):c.setAttribute(h,d[v])})},{immediate:!0})),ys(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),nr(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(c,f)=>c.virtualTriggering?ke("v-if",!0):(U(),me(P(fH),So({key:0},c.$attrs,{"aria-controls":P(a),"aria-describedby":P(o),"aria-expanded":P(l),"aria-haspopup":P(s)}),{default:Z(()=>[Fe(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var vH=Xe(hH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Fh="focus-trap.focus-after-trapped",$h="focus-trap.focus-after-released",pH="focus-trap.focusout-prevented",Bb={cancelable:!0,bubbles:!1},gH={cancelable:!0,bubbles:!1},Fb="focusAfterTrapped",$b="focusAfterReleased",mH=Symbol("elFocusTrap"),My=H(),Qd=H(0),Ay=H(0);let hc=0;const LM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Hb=(e,t)=>{for(const r of e)if(!yH(r,t))return r},yH=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},_H=e=>{const t=LM(e),r=Hb(t,e),n=Hb(t.reverse(),e);return[r,n]},bH=e=>e instanceof HTMLInputElement&&"select"in e,Bi=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Ay.value=window.performance.now(),e!==r&&bH(e)&&t&&e.select()}};function zb(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const wH=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=zb(e,n),e.unshift(n)},remove:n=>{var i,a;e=zb(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},SH=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(Bi(n,t),document.activeElement!==r)return},Wb=wH(),xH=()=>Qd.value>Ay.value,vc=()=>{My.value="pointer",Qd.value=window.performance.now()},Vb=()=>{My.value="keyboard",Qd.value=window.performance.now()},CH=()=>(Mt(()=>{hc===0&&(document.addEventListener("mousedown",vc),document.addEventListener("touchstart",vc),document.addEventListener("keydown",Vb)),hc++}),nr(()=>{hc--,hc<=0&&(document.removeEventListener("mousedown",vc),document.removeEventListener("touchstart",vc),document.removeEventListener("keydown",Vb))}),{focusReason:My,lastUserFocusTimestamp:Qd,lastAutomatedFocusTimestamp:Ay}),pc=e=>new CustomEvent(pH,{...gH,detail:e}),TH=ce({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Fb,$b,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=H();let n,i;const{focusReason:a}=CH();O4(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:S}=e,w=p===Lt.tab&&!g&&!m&&!y,x=document.activeElement;if(w&&x){const C=_,[T,E]=_H(C);if(T&&E){if(!b&&x===E){const M=pc({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),S&&Bi(T,!0))}else if(b&&[T,C].includes(x)){const M=pc({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||(v.preventDefault(),S&&Bi(E,!0))}}else if(x===C){const M=pc({focusReason:a.value});t("focusout-prevented",M),M.defaultPrevented||v.preventDefault()}}};Tt(mH,{focusTrapRef:r,onKeydown:s}),xe(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),xe([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",c),v.addEventListener("focusout",f)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",c),p.removeEventListener("focusout",f))});const l=v=>{t(Fb,v)},u=v=>t($b,v),c=v=>{const p=P(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:Bi(i,!0))},f=v=>{const p=P(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!ly(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=pc({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||Bi(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Rt();const v=P(r);if(v){Wb.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Fh,Bb);v.addEventListener(Fh,l),v.dispatchEvent(m),m.defaultPrevented||Rt(()=>{let y=e.focusStartEl;ze(y)||(Bi(y),document.activeElement!==y&&(y="first")),y==="first"&&SH(LM(v),!0),(document.activeElement===p||y==="container")&&Bi(v)})}}}function h(){const v=P(r);if(v){v.removeEventListener(Fh,l);const p=new CustomEvent($h,{...Bb,detail:{focusReason:a.value}});v.addEventListener($h,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!xH())&&Bi(n??document.body),v.removeEventListener($h,l),Wb.remove(o)}}return Mt(()=>{e.trapped&&d(),xe(()=>e.trapped,v=>{v?d():h()})}),nr(()=>{e.trapped&&h()}),{onKeydown:s}}});function MH(e,t,r,n,i,a){return Fe(e.$slots,"default",{handleKeydown:e.onKeydown})}var AH=Xe(TH,[["render",MH],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const EH=["fixed","absolute"],PH=rt({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Pe(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:my,default:"bottom"},popperOptions:{type:Pe(Object),default:()=>({})},strategy:{type:String,values:EH,default:"absolute"}}),DM=rt({...PH,id:String,style:{type:Pe([String,Array,Object])},className:{type:Pe([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Pe([String,Array,Object])},popperStyle:{type:Pe([String,Array,Object])},referenceEl:{type:Pe(Object)},triggerTargetEl:{type:Pe(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),LH={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},Gb=(e,t)=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:IH(e)};return OH(a,t),RH(a,i==null?void 0:i.modifiers),a},DH=e=>{if(Ot)return Vi(e)};function IH(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function OH(e,{arrowEl:t,arrowOffset:r}){e.modifiers.push({name:"arrow",options:{element:t,padding:r??5}})}function RH(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const kH=ce({name:"ElPopperContent"}),NH=ce({...kH,props:DM,emits:LH,setup(e,{expose:t,emit:r}){const n=e,{popperInstanceRef:i,contentRef:a,triggerRef:o,role:s}=Oe(fy,void 0),l=Oe(go,void 0),{nextZIndex:u}=Ty(),c=Be("popper"),f=H(),d=H("first"),h=H(),v=H();Tt(aM,{arrowRef:h,arrowOffset:v}),l&&(l.addInputId||l.removeInputId)&&Tt(go,{...l,addInputId:ur,removeInputId:ur});const p=H(n.zIndex||u()),g=H(!1);let m;const y=$(()=>DH(n.referenceEl)||P(o)),_=$(()=>[{zIndex:P(p)},n.popperStyle]),b=$(()=>[c.b(),c.is("pure",n.pure),c.is(n.effect),n.popperClass]),S=$(()=>s&&s.value==="dialog"?"false":void 0),w=({referenceEl:R,popperContentEl:k,arrowEl:F})=>{const K=Gb(n,{arrowEl:F,arrowOffset:P(v)});return wM(R,k,K)},x=(R=!0)=>{var k;(k=P(i))==null||k.update(),R&&(p.value=n.zIndex||u())},C=()=>{var R,k;const F={name:"eventListeners",enabled:n.visible};(k=(R=P(i))==null?void 0:R.setOptions)==null||k.call(R,K=>({...K,modifiers:[...K.modifiers||[],F]})),x(!1),n.visible&&n.focusOnShow?g.value=!0:n.visible===!1&&(g.value=!1)},T=()=>{r("focus")},E=R=>{var k;((k=R.detail)==null?void 0:k.focusReason)!=="pointer"&&(d.value="first",r("blur"))},A=R=>{n.visible&&!g.value&&(R.target&&(d.value=R.target),g.value=!0)},M=R=>{n.trapping||(R.detail.focusReason==="pointer"&&R.preventDefault(),g.value=!1)},D=()=>{g.value=!1,r("close")};return Mt(()=>{let R;xe(y,k=>{var F;R==null||R();const K=P(i);if((F=K==null?void 0:K.destroy)==null||F.call(K),k){const B=P(f);a.value=B,i.value=w({referenceEl:k,popperContentEl:B,arrowEl:P(h)}),R=xe(()=>k.getBoundingClientRect(),()=>x(),{immediate:!0})}else i.value=void 0},{immediate:!0}),xe(()=>n.triggerTargetEl,(k,F)=>{m==null||m(),m=void 0;const K=P(k||f.value),B=P(F||f.value);ys(K)&&(m=xe([s,()=>n.ariaLabel,S,()=>n.id],N=>{["role","aria-label","aria-modal","id"].forEach((j,re)=>{ly(N[re])?K.removeAttribute(j):K.setAttribute(j,N[re])})},{immediate:!0})),B!==K&&ys(B)&&["role","aria-label","aria-modal","id"].forEach(N=>{B.removeAttribute(N)})},{immediate:!0}),xe(()=>n.visible,C,{immediate:!0}),xe(()=>Gb(n,{arrowEl:P(h),arrowOffset:P(v)}),k=>{var F;return(F=i.value)==null?void 0:F.setOptions(k)})}),nr(()=>{m==null||m(),m=void 0}),t({popperContentRef:f,popperInstanceRef:i,updatePopper:x,contentStyle:_}),(R,k)=>(U(),ye("div",{ref_key:"popperContentRef",ref:f,style:St(P(_)),class:le(P(b)),tabindex:"-1",onMouseenter:k[0]||(k[0]=F=>R.$emit("mouseenter",F)),onMouseleave:k[1]||(k[1]=F=>R.$emit("mouseleave",F))},[ee(P(AH),{trapped:g.value,"trap-on-focus-in":!0,"focus-trap-el":f.value,"focus-start-el":d.value,onFocusAfterTrapped:T,onFocusAfterReleased:E,onFocusin:A,onFocusoutPrevented:M,onReleaseRequested:D},{default:Z(()=>[Fe(R.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el"])],38))}});var BH=Xe(NH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const FH=hr(oH),$H=Be("tooltip"),Kr=rt({...N4,...DM,appendTo:{type:Pe([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Pe(Boolean),default:null},transition:{type:String,default:`${$H.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),pu=rt({...PM,disabled:Boolean,trigger:{type:Pe([String,Array]),default:"hover"},triggerKeys:{type:Pe(Array),default:()=>[Lt.enter,Lt.space]}}),{useModelToggleProps:HH,useModelToggleEmits:zH,useModelToggle:WH}=L3("visible"),VH=rt({...MM,...HH,...Kr,...pu,...AM,showArrow:{type:Boolean,default:!0}}),GH=[...zH,"before-show","before-hide","show","hide","open","close"],UH=(e,t)=>be(e)?e.includes(t):e===t,Lo=(e,t,r)=>n=>{UH(P(e),t)&&r(n)},jH=ce({name:"ElTooltipTrigger"}),YH=ce({...jH,props:pu,setup(e,{expose:t}){const r=e,n=Be("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Oe(dy,void 0),c=H(null),f=()=>{if(P(i)||r.disabled)return!0},d=Tn(r,"trigger"),h=ci(f,Lo(d,"hover",s)),v=ci(f,Lo(d,"hover",l)),p=ci(f,Lo(d,"click",b=>{b.button===0&&u(b)})),g=ci(f,Lo(d,"focus",s)),m=ci(f,Lo(d,"focus",l)),y=ci(f,Lo(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=ci(f,b=>{const{code:S}=b;r.triggerKeys.includes(S)&&(b.preventDefault(),u(b))});return t({triggerRef:c}),(b,S)=>(U(),me(P(vH),{id:P(a),"virtual-ref":b.virtualRef,open:P(o),"virtual-triggering":b.virtualTriggering,class:le(P(n).e("trigger")),onBlur:P(m),onClick:P(p),onContextmenu:P(y),onFocus:P(g),onMouseenter:P(h),onMouseleave:P(v),onKeydown:P(_)},{default:Z(()=>[Fe(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var qH=Xe(YH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const KH=ce({name:"ElTooltipContent",inheritAttrs:!1}),XH=ce({...KH,props:Kr,setup(e,{expose:t}){const r=e,{selector:n}=SM(),i=H(null),a=H(!1),{controlled:o,id:s,open:l,trigger:u,onClose:c,onOpen:f,onShow:d,onHide:h,onBeforeShow:v,onBeforeHide:p}=Oe(dy,void 0),g=$(()=>r.persistent);nr(()=>{a.value=!0});const m=$(()=>P(g)?!0:P(l)),y=$(()=>r.disabled?!1:P(l)),_=$(()=>r.appendTo||n.value),b=$(()=>{var k;return(k=r.style)!=null?k:{}}),S=$(()=>!P(l)),w=()=>{h()},x=()=>{if(P(o))return!0},C=ci(x,()=>{r.enterable&&P(u)==="hover"&&f()}),T=ci(x,()=>{P(u)==="hover"&&c()}),E=()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k),v==null||v()},A=()=>{p==null||p()},M=()=>{d(),R=$$($(()=>{var k;return(k=i.value)==null?void 0:k.popperContentRef}),()=>{if(P(o))return;P(u)!=="hover"&&c()})},D=()=>{r.virtualTriggering||c()};let R;return xe(()=>P(l),k=>{k||R==null||R()},{flush:"post"}),xe(()=>r.content,()=>{var k,F;(F=(k=i.value)==null?void 0:k.updatePopper)==null||F.call(k)}),t({contentRef:i}),(k,F)=>(U(),me(NI,{disabled:!k.teleported,to:P(_)},[ee(Qn,{name:k.transition,onAfterLeave:w,onBeforeEnter:E,onAfterEnter:M,onBeforeLeave:A},{default:Z(()=>[P(m)?qt((U(),me(P(BH),So({key:0,id:P(s),ref_key:"contentRef",ref:i},k.$attrs,{"aria-label":k.ariaLabel,"aria-hidden":P(S),"boundaries-padding":k.boundariesPadding,"fallback-placements":k.fallbackPlacements,"gpu-acceleration":k.gpuAcceleration,offset:k.offset,placement:k.placement,"popper-options":k.popperOptions,strategy:k.strategy,effect:k.effect,enterable:k.enterable,pure:k.pure,"popper-class":k.popperClass,"popper-style":[k.popperStyle,P(b)],"reference-el":k.referenceEl,"trigger-target-el":k.triggerTargetEl,visible:P(y),"z-index":k.zIndex,onMouseenter:P(C),onMouseleave:P(T),onBlur:D,onClose:P(c)}),{default:Z(()=>[a.value?ke("v-if",!0):Fe(k.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[mi,P(y)]]):ke("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var ZH=Xe(XH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const QH=["innerHTML"],JH={key:1},ez=ce({name:"ElTooltip"}),tz=ce({...ez,props:VH,emits:GH,setup(e,{expose:t,emit:r}){const n=e;k4();const i=vy(),a=H(),o=H(),s=()=>{var m;const y=P(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=H(!1),u=H(),{show:c,hide:f,hasUpdateHandler:d}=WH({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=xM({showAfter:Tn(n,"showAfter"),hideAfter:Tn(n,"hideAfter"),open:c,close:f}),p=$(()=>Br(n.visible)&&!d.value);Tt(dy,{controlled:p,id:i,open:ku(l),trigger:Tn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{P(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),xe(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return WC(()=>l.value&&f()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:f}),(m,y)=>(U(),me(P(FH),{ref_key:"popperRef",ref:a,role:m.role},{default:Z(()=>[ee(qH,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:Z(()=>[m.$slots.default?Fe(m.$slots,"default",{key:0}):ke("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(ZH,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:Z(()=>[Fe(m.$slots,"content",{},()=>[m.rawContent?(U(),ye("span",{key:0,innerHTML:m.content},null,8,QH)):(U(),ye("span",JH,Me(m.content),1))]),m.showArrow?(U(),me(P(uH),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):ke("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var rz=Xe(tz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Yu=hr(rz),nz=rt({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),iz=["textContent"],az=ce({name:"ElBadge"}),oz=ce({...az,props:nz,setup(e,{expose:t}){const r=e,n=Be("badge"),i=$(()=>r.isDot?"":Yt(r.value)&&Yt(r.max)?r.max(U(),ye("div",{class:le(P(n).b())},[Fe(a.$slots,"default"),ee(Qn,{name:`${P(n).namespace.value}-zoom-in-center`,persisted:""},{default:Z(()=>[qt(ae("sup",{class:le([P(n).e("content"),P(n).em("content",a.type),P(n).is("fixed",!!a.$slots.default),P(n).is("dot",a.isDot)]),textContent:Me(P(i))},null,10,iz),[[mi,!a.hidden&&(P(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var sz=Xe(oz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const lz=hr(sz),uz=(e,t)=>{sM({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},$(()=>e.type==="text"));const r=Oe(tM,void 0),n=ua("button"),{form:i}=Gu(),a=ra($(()=>r==null?void 0:r.size)),o=Xd(),s=H(),l=zd(),u=$(()=>e.type||(r==null?void 0:r.type)||""),c=$(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),f=$(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(c.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===ks){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},cz=["default","primary","success","warning","info","danger","text",""],fz=["button","submit","reset"],Kp=rt({size:Kd,disabled:Boolean,type:{type:String,values:cz,default:""},icon:{type:Wn},nativeType:{type:String,values:fz,default:"button"},loading:Boolean,loadingIcon:{type:Wn,default:()=>cy},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),dz={click:e=>e instanceof MouseEvent};function Kt(e,t){hz(e)&&(e="100%");var r=vz(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function gc(e){return Math.min(1,Math.max(0,e))}function hz(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function vz(e){return typeof e=="string"&&e.indexOf("%")!==-1}function IM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function mc(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Xa(e){return e.length===1?"0"+e:String(e)}function pz(e,t,r){return{r:Kt(e,255)*255,g:Kt(t,255)*255,b:Kt(r,255)*255}}function Ub(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function gz(e,t,r){var n,i,a;if(e=Kt(e,360),t=Kt(t,100),r=Kt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=Hh(s,o,e+1/3),i=Hh(s,o,e),a=Hh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function jb(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var Xp={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function wz(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=Cz(e)),typeof e=="object"&&(ii(e.r)&&ii(e.g)&&ii(e.b)?(t=pz(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ii(e.h)&&ii(e.s)&&ii(e.v)?(n=mc(e.s),i=mc(e.v),t=mz(e.h,n,i),o=!0,s="hsv"):ii(e.h)&&ii(e.s)&&ii(e.l)&&(n=mc(e.s),a=mc(e.l),t=gz(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=IM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var Sz="[-\\+]?\\d+%?",xz="[-\\+]?\\d*\\.\\d+%?",Gi="(?:".concat(xz,")|(?:").concat(Sz,")"),zh="[\\s|\\(]+(".concat(Gi,")[,|\\s]+(").concat(Gi,")[,|\\s]+(").concat(Gi,")\\s*\\)?"),Wh="[\\s|\\(]+(".concat(Gi,")[,|\\s]+(").concat(Gi,")[,|\\s]+(").concat(Gi,")[,|\\s]+(").concat(Gi,")\\s*\\)?"),pn={CSS_UNIT:new RegExp(Gi),rgb:new RegExp("rgb"+zh),rgba:new RegExp("rgba"+Wh),hsl:new RegExp("hsl"+zh),hsla:new RegExp("hsla"+Wh),hsv:new RegExp("hsv"+zh),hsva:new RegExp("hsva"+Wh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Cz(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(Xp[e])e=Xp[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=pn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=pn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=pn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=pn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=pn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=pn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=pn.hex8.exec(e),r?{r:Dr(r[1]),g:Dr(r[2]),b:Dr(r[3]),a:qb(r[4]),format:t?"name":"hex8"}:(r=pn.hex6.exec(e),r?{r:Dr(r[1]),g:Dr(r[2]),b:Dr(r[3]),format:t?"name":"hex"}:(r=pn.hex4.exec(e),r?{r:Dr(r[1]+r[1]),g:Dr(r[2]+r[2]),b:Dr(r[3]+r[3]),a:qb(r[4]+r[4]),format:t?"name":"hex8"}:(r=pn.hex3.exec(e),r?{r:Dr(r[1]+r[1]),g:Dr(r[2]+r[2]),b:Dr(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ii(e){return Boolean(pn.CSS_UNIT.exec(String(e)))}var OM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=bz(t)),this.originalInput=t;var i=wz(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=IM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=jb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=jb(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Ub(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Ub(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Yb(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),yz(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(Kt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(Kt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Yb(this.r,this.g,this.b,!1),r=0,n=Object.entries(Xp);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=gc(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=gc(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=gc(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=gc(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new OM(i),o=e.dark?a.tint(20).toString():Li(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Li(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Li(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Li(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Li(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Li(a,80):a.tint(80).toString());else{const s=e.dark?Li(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Li(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const Mz=["aria-disabled","disabled","autofocus","type"],Az=ce({name:"ElButton"}),Ez=ce({...Az,props:Kp,emits:dz,setup(e,{expose:t,emit:r}){const n=e,i=Tz(n),a=Be("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:c,handleClick:f}=uz(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,h)=>(U(),ye("button",{ref_key:"_ref",ref:o,class:le([P(a).b(),P(a).m(P(l)),P(a).m(P(s)),P(a).is("disabled",P(u)),P(a).is("loading",d.loading),P(a).is("plain",d.plain),P(a).is("round",d.round),P(a).is("circle",d.circle),P(a).is("text",d.text),P(a).is("link",d.link),P(a).is("has-bg",d.bg)]),"aria-disabled":P(u)||d.loading,disabled:P(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:St(P(i)),onClick:h[0]||(h[0]=(...v)=>P(f)&&P(f)(...v))},[d.loading?(U(),ye(yt,{key:0},[d.$slots.loading?Fe(d.$slots,"loading",{key:0}):(U(),me(P(lr),{key:1,class:le(P(a).is("loading"))},{default:Z(()=>[(U(),me(nn(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(U(),me(P(lr),{key:1},{default:Z(()=>[d.icon?(U(),me(nn(d.icon),{key:0})):Fe(d.$slots,"icon",{key:1})]),_:3})):ke("v-if",!0),d.$slots.default?(U(),ye("span",{key:2,class:le({[P(a).em("text","expand")]:P(c)})},[Fe(d.$slots,"default")],2)):ke("v-if",!0)],14,Mz))}});var Pz=Xe(Ez,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const Lz={size:Kp.size,type:Kp.type},Dz=ce({name:"ElButtonGroup"}),Iz=ce({...Dz,props:Lz,setup(e){const t=e;Tt(tM,fn({size:Tn(t,"size"),type:Tn(t,"type")}));const r=Be("button");return(n,i)=>(U(),ye("div",{class:le(`${P(r).b("group")}`)},[Fe(n.$slots,"default")],2))}});var RM=Xe(Iz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Oz=hr(Pz,{ButtonGroup:RM});la(RM);var Rz=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Fi=new Map;let Kb;Ot&&(document.addEventListener("mousedown",e=>Kb=e),document.addEventListener("mouseup",e=>{for(const t of Fi.values())for(const{documentHandler:r}of t)r(e,Kb)}));function Xb(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:ys(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,c=e.contains(o)||e.contains(s),f=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||c||f||d||h||t.value(n,i)}}const kz={beforeMount(e,t){Fi.has(e)||Fi.set(e,[]),Fi.get(e).push({documentHandler:Xb(e,t),bindingFn:t.value})},updated(e,t){Fi.has(e)||Fi.set(e,[]);const r=Fi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:Xb(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Fi.delete(e)}};var Zb=!1,Ya,Zp,Qp,bf,wf,kM,Sf,Jp,eg,tg,NM,rg,ng,BM,FM;function vr(){if(!Zb){Zb=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(rg=/\b(iPhone|iP[ao]d)/.exec(e),ng=/\b(iP[ao]d)/.exec(e),tg=/Android/i.exec(e),BM=/FBAN\/\w+;/i.exec(e),FM=/Mobile/i.exec(e),NM=!!/Win64/.exec(e),t){Ya=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,Ya&&document&&document.documentMode&&(Ya=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);kM=n?parseFloat(n[1])+4:Ya,Zp=t[2]?parseFloat(t[2]):NaN,Qp=t[3]?parseFloat(t[3]):NaN,bf=t[4]?parseFloat(t[4]):NaN,bf?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),wf=t&&t[1]?parseFloat(t[1]):NaN):wf=NaN}else Ya=Zp=Qp=wf=bf=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Sf=i?parseFloat(i[1].replace("_",".")):!0}else Sf=!1;Jp=!!r[2],eg=!!r[3]}else Sf=Jp=eg=!1}}var ig={ie:function(){return vr()||Ya},ieCompatibilityMode:function(){return vr()||kM>Ya},ie64:function(){return ig.ie()&&NM},firefox:function(){return vr()||Zp},opera:function(){return vr()||Qp},webkit:function(){return vr()||bf},safari:function(){return ig.webkit()},chrome:function(){return vr()||wf},windows:function(){return vr()||Jp},osx:function(){return vr()||Sf},linux:function(){return vr()||eg},iphone:function(){return vr()||rg},mobile:function(){return vr()||rg||ng||tg||FM},nativeApp:function(){return vr()||BM},android:function(){return vr()||tg},ipad:function(){return vr()||ng}},Nz=ig,yc=!!(typeof window<"u"&&window.document&&window.document.createElement),Bz={canUseDOM:yc,canUseWorkers:typeof Worker<"u",canUseEventListeners:yc&&!!(window.addEventListener||window.attachEvent),canUseViewport:yc&&!!window.screen,isInWorker:!yc},$M=Bz,HM;$M.canUseDOM&&(HM=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function Fz(e,t){if(!$M.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&HM&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var $z=Fz,Qb=10,Jb=40,e1=800;function zM(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*Qb,i=r*Qb,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=Jb,i*=Jb):(n*=e1,i*=e1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}zM.getEventType=function(){return Nz.firefox()?"DOMMouseScroll":$z("wheel")?"wheel":"mousewheel"};var Hz=zM;/** -* Checks if an event is supported in the current execution environment. -* -* NOTE: This will not work correctly for non-generic events such as `change`, -* `reset`, `load`, `error`, and `select`. -* -* Borrows from Modernizr. -* -* @param {string} eventNameSuffix Event name, e.g. "click". -* @param {?boolean} capture Check if the capture phase is supported. -* @return {boolean} True if the event is supported. -* @internal -* @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const zz=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=Hz(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},Wz={beforeMount(e,t){zz(e,t.value)}},WM={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Kd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},VM={[po]:e=>ze(e)||Yt(e)||Br(e),change:e=>ze(e)||Yt(e)||Br(e)},Vz=({model:e,isChecked:t})=>{const r=Oe(Bs,void 0),n=$(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!Qf(s)&&e.value.length>=s&&!t.value||!Qf(l)&&e.value.length<=l&&t.value});return{isDisabled:Xd($(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},Gz=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Oe(Bs,void 0),{formItem:s}=Gu(),{emit:l}=dt();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function c(v,p){l("change",u(v),p)}function f(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Rt(),c(t.value,v)))}const h=$(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return xe(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:f,onClickRoot:d}},Uz=e=>{const t=H(!1),{emit:r}=dt(),n=Oe(Bs,void 0),i=$(()=>Qf(n)===!1),a=H(!1);return{model:$({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&be(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(po,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},jz=(e,t,{model:r})=>{const n=Oe(Bs,void 0),i=H(!1),a=$(()=>{const u=r.value;return Br(u)?u:be(u)?Ke(e.label)?u.map(Je).some(c=>d$(c,e.label)):u.map(Je).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=ra($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=ra($(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=$(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},Yz=(e,{model:t})=>{function r(){be(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},GM=(e,t)=>{const{formItem:r}=Gu(),{model:n,isGroup:i,isLimitExceeded:a}=Uz(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c}=jz(e,t,{model:n}),{isDisabled:f}=Vz({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=py(e,{formItemContext:r,disableIdGeneration:c,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=Gz(e,{model:n,isLimitExceeded:a,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return Yz(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:f,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c,model:n,handleChange:v,onClickRoot:p}},qz=["tabindex","role","aria-checked"],Kz=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],Xz=["id","aria-hidden","disabled","value","name","tabindex"],Zz=ce({name:"ElCheckbox"}),Qz=ce({...Zz,props:WM,emits:VM,setup(e){const t=e,r=zd(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=GM(t,r),h=Be("checkbox"),v=$(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=$(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(U(),me(nn(!P(u)&&P(i)?"span":"label"),{class:le(P(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:P(d)},{default:Z(()=>[ae("span",{class:le(P(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?qt((U(),ye("input",{key:0,id:P(n),"onUpdate:modelValue":m[0]||(m[0]=y=>xt(c)?c.value=y:null),class:le(P(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:P(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>P(f)&&P(f)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,Kz)),[[Uf,P(c)]]):qt((U(),ye("input",{key:1,id:P(n),"onUpdate:modelValue":m[4]||(m[4]=y=>xt(c)?c.value=y:null),class:le(P(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:P(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>P(f)&&P(f)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,Xz)),[[Uf,P(c)]]),ae("span",{class:le(P(h).e("inner"))},null,2)],10,qz),P(u)?(U(),ye("span",{key:0,class:le(P(h).e("label"))},[Fe(g.$slots,"default"),g.$slots.default?ke("v-if",!0):(U(),ye(yt,{key:0},[Nt(Me(g.label),1)],64))],2)):ke("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var Jz=Xe(Qz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const e6=["name","tabindex","disabled","true-value","false-value"],t6=["name","tabindex","disabled","value"],r6=ce({name:"ElCheckboxButton"}),n6=ce({...r6,props:WM,emits:VM,setup(e){const t=e,r=zd(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=GM(t,r),u=Oe(Bs,void 0),c=Be("checkbox"),f=$(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=$(()=>[c.b("button"),c.bm("button",o.value),c.is("disabled",a.value),c.is("checked",i.value),c.is("focus",n.value)]);return(h,v)=>(U(),ye("label",{class:le(P(d))},[h.trueLabel||h.falseLabel?qt((U(),ye("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>xt(s)?s.value=p:null),class:le(P(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:P(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>P(l)&&P(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,e6)),[[Uf,P(s)]]):qt((U(),ye("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>xt(s)?s.value=p:null),class:le(P(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:P(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>P(l)&&P(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,t6)),[[Uf,P(s)]]),h.$slots.default||h.label?(U(),ye("span",{key:2,class:le(P(c).be("button","inner")),style:St(P(i)?P(f):void 0)},[Fe(h.$slots,"default",{},()=>[Nt(Me(h.label),1)])],6)):ke("v-if",!0)],2))}});var UM=Xe(n6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const i6=rt({modelValue:{type:Pe(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Kd,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),a6={[po]:e=>be(e),change:e=>be(e)},o6=ce({name:"ElCheckboxGroup"}),s6=ce({...o6,props:i6,emits:a6,setup(e,{emit:t}){const r=e,n=Be("checkbox"),{formItem:i}=Gu(),{inputId:a,isLabeledByFormItem:o}=py(r,{formItemContext:i}),s=async u=>{t(po,u),await Rt(),t("change",u)},l=$({get(){return r.modelValue},set(u){s(u)}});return Tt(Bs,{...m$(Id(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),xe(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return U(),me(nn(u.tag),{id:P(a),class:le(P(n).b("group")),role:"group","aria-label":P(o)?void 0:u.label||"checkbox-group","aria-labelledby":P(o)?(f=P(i))==null?void 0:f.labelId:void 0},{default:Z(()=>[Fe(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var jM=Xe(s6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Cs=hr(Jz,{CheckboxButton:UM,CheckboxGroup:jM});la(UM);la(jM);const l6=rt({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Vu,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),u6={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},c6=ce({name:"ElTag"}),f6=ce({...c6,props:l6,emits:u6,setup(e,{emit:t}){const r=e,n=ra(),i=Be("tag"),a=$(()=>{const{type:l,hit:u,effect:c,closable:f,round:d}=r;return[i.b(),i.is("closable",f),i.m(l),i.m(n.value),i.m(c),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(U(),ye("span",{key:0,class:le(P(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:le(P(i).e("content"))},[Fe(l.$slots,"default")],2),l.closable?(U(),me(P(lr),{key:0,class:le(P(i).e("close")),onClick:jf(o,["stop"])},{default:Z(()=>[ee(P(Up))]),_:1},8,["class","onClick"])):ke("v-if",!0)],6)):(U(),me(Qn,{key:1,name:`${P(i).namespace.value}-zoom-in-center`,appear:""},{default:Z(()=>[ae("span",{class:le(P(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:le(P(i).e("content"))},[Fe(l.$slots,"default")],2),l.closable?(U(),me(P(lr),{key:0,class:le(P(i).e("close")),onClick:jf(o,["stop"])},{default:Z(()=>[ee(P(Up))]),_:1},8,["class","onClick"])):ke("v-if",!0)],6)]),_:3},8,["name"]))}});var d6=Xe(f6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const h6=hr(d6),v6=rt({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Pe([Number,Object]),default:()=>ja({})},sm:{type:Pe([Number,Object]),default:()=>ja({})},md:{type:Pe([Number,Object]),default:()=>ja({})},lg:{type:Pe([Number,Object]),default:()=>ja({})},xl:{type:Pe([Number,Object]),default:()=>ja({})}}),p6=ce({name:"ElCol"}),g6=ce({...p6,props:v6,setup(e){const t=e,{gutter:r}=Oe(nM,{gutter:$(()=>0)}),n=Be("col"),i=$(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=$(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];Yt(c)&&(u==="span"?o.push(n.b(`${t[u]}`)):c>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{Yt(t[u])?o.push(n.b(`${u}-${t[u]}`)):Ke(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{o.push(c!=="span"?n.b(`${u}-${c}-${f}`):n.b(`${u}-${f}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(U(),me(nn(o.tag),{class:le(P(a)),style:St(P(i))},{default:Z(()=>[Fe(o.$slots,"default")]),_:3},8,["class","style"]))}});var m6=Xe(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const YM=hr(m6),y6=ce({name:"ElCollapseTransition"}),_6=ce({...y6,setup(e){const t=Be("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(U(),me(Qn,So({name:P(t).b()},gI(r)),{default:Z(()=>[Fe(n.$slots,"default")]),_:3},16,["name"]))}});var xf=Xe(_6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);xf.install=e=>{e.component(xf.name,xf)};const b6=xf,ag={},w6=rt({a11y:{type:Boolean,default:!0},locale:{type:Pe(Object)},size:Kd,button:{type:Pe(Object)},experimentalFeatures:{type:Pe(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Pe(Object)},zIndex:Number,namespace:{type:String,default:"el"}});ce({name:"ElConfigProvider",props:w6,setup(e,{slots:t}){xe(()=>e.message,n=>{Object.assign(ag,n??{})},{immediate:!0,deep:!0});const r=b3(e);return()=>Fe(t,"default",{config:r==null?void 0:r.value})}});const S6=ce({inheritAttrs:!1});function x6(e,t,r,n,i,a){return Fe(e.$slots,"default")}var C6=Xe(S6,[["render",x6],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const T6=ce({name:"ElCollectionItem",inheritAttrs:!1});function M6(e,t,r,n,i,a){return Fe(e.$slots,"default")}var A6=Xe(T6,[["render",M6],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const E6="data-el-collection-item",P6=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...C6,name:t,setup(){const s=H(null),l=new Map;Tt(n,{itemMap:l,getItems:()=>{const c=P(s);if(!c)return[];const f=Array.from(c.querySelectorAll(`[${E6}]`));return[...l.values()].sort((h,v)=>f.indexOf(h.ref)-f.indexOf(v.ref))},collectionRef:s})}},o={...A6,name:r,setup(s,{attrs:l}){const u=H(null),c=Oe(n,void 0);Tt(i,{collectionItemRef:u}),Mt(()=>{const f=P(u);f&&c.itemMap.set(f,{ref:f,...l})}),nr(()=>{const f=P(u);c.itemMap.delete(f)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Vh=rt({trigger:pu.trigger,effect:{...Kr.effect,default:"light"},type:{type:Pe(String)},placement:{type:Pe(String),default:"bottom"},popperOptions:{type:Pe(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Pe([Number,String]),default:0},maxHeight:{type:Pe([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Pe(Object)},teleported:Kr.teleported});rt({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wn}});rt({onKeydown:{type:Pe(Function)}});Lt.down,Lt.pageDown,Lt.home;Lt.up,Lt.pageUp,Lt.end;P6("Dropdown");const L6=rt({model:Object,rules:{type:Pe(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:{type:String,values:Vu},disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean}),D6={validate:(e,t,r)=>(be(e)||ze(e))&&Br(t)&&ze(r)};function I6(){const e=H([]),t=$(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const _c=(e,t)=>{const r=Rp(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},O6="ElForm",R6=ce({name:O6}),k6=ce({...R6,props:L6,emits:D6,setup(e,{expose:t,emit:r}){const n=e,i=[],a=ra(),o=Be("form"),s=$(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},c=(y=[])=>{n.model&&_c(i,y).forEach(_=>_.resetField())},f=(y=[])=>{_c(i,y).forEach(_=>_.clearValidate())},d=$(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=_c(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const S of _)try{await S.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!Le(_);try{const S=await p(y);return S===!0&&(_==null||_(S)),S}catch(S){if(S instanceof Error)throw S;const w=S;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=_c(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView())};return xe(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),Tt(Fs,fn({...Id(n),emit:r,resetFields:c,clearValidate:f,validateField:g,addField:l,removeField:u,...I6()})),t({validate:v,validateField:g,resetFields:c,clearValidate:f,scrollToField:m}),(y,_)=>(U(),ye("form",{class:le(P(s))},[Fe(y.$slots,"default")],2))}});var N6=Xe(k6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Cf(e,t,r){return F6()?Cf=Reflect.construct.bind():Cf=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&gu(u,o.prototype),u},Cf.apply(null,arguments)}function $6(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function sg(e){var t=typeof Map=="function"?new Map:void 0;return sg=function(n){if(n===null||!$6(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Cf(n,arguments,og(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),gu(i,n)},sg(e)}var H6=/%[sdj%]/g,z6=function(){};typeof process<"u"&&process.env;function lg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function Rr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function W6(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Ft(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||W6(t)&&typeof e=="string"&&!e)}function V6(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function t1(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,s()\[\]\\.,;:\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},_l={integer:function(t){return _l.number(t)&&parseInt(t,10)===t},float:function(t){return _l.number(t)&&!_l.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 typeof t=="object"&&!_l.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(a1.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(K6())},hex:function(t){return typeof t=="string"&&!!t.match(a1.hex)}},X6=function(t,r,n,i,a){if(t.required&&r===void 0){qM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?_l[s](r)||i.push(Rr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(Rr(a.messages.types[s],t.fullField,t.type))},Z6=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=r,f=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?f="number":h?f="string":v&&(f="array"),!f)return!1;v&&(c=r.length),h&&(c=r.replace(u,"_").length),o?c!==t.len&&i.push(Rr(a.messages[f].len,t.fullField,t.len)):s&&!l&&ct.max?i.push(Rr(a.messages[f].max,t.fullField,t.max)):s&&l&&(ct.max)&&i.push(Rr(a.messages[f].range,t.fullField,t.min,t.max))},Do="enum",Q6=function(t,r,n,i,a){t[Do]=Array.isArray(t[Do])?t[Do]:[],t[Do].indexOf(r)===-1&&i.push(Rr(a.messages[Do],t.fullField,t[Do].join(", ")))},J6=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(Rr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:qM,whitespace:q6,type:X6,range:Z6,enum:Q6,pattern:J6},e8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),Ft(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},t8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},r8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},n8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},i8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),Ft(r)||Ye.type(t,r,i,o,a)}n(o)},a8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},o8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},s8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},l8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},u8="enum",c8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[u8](t,r,i,o,a)}n(o)},f8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),Ft(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},d8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!Ft(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},h8=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},Gh=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(Ft(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),Ft(r,o)||Ye.type(t,r,i,s,a)}n(s)},v8=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ft(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},kl={string:e8,method:t8,number:r8,boolean:n8,regexp:i8,integer:a8,float:o8,array:s8,object:l8,enum:c8,pattern:f8,date:d8,url:Gh,hex:Gh,email:Gh,required:h8,any:v8};function ug(){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 cg=ug(),qu=function(){function e(r){this.rules=null,this._messages=cg,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=i1(ug(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function c(p){var g=[],m={};function y(b){if(Array.isArray(b)){var S;g=(S=g).concat.apply(S,b)}else g.push(b)}for(var _=0;_");const i=Be("form"),a=H(),o=H(0),s=()=>{var c;if((c=a.value)!=null&&c.firstElementChild){const f=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(f))}else return 0},l=(c="update")=>{Rt(()=>{t.default&&e.isAutoWidth&&(c==="update"?o.value=s():c==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return Mt(()=>{u()}),nr(()=>{l("remove")}),Fd(()=>u()),xe(o,(c,f)=>{e.updateAll&&(r==null||r.registerLabelWidth(c,f))}),ms($(()=>{var c,f;return(f=(c=a.value)==null?void 0:c.firstElementChild)!=null?f:null}),u),()=>{var c,f;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return ee("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(c=t.default)==null?void 0:c.call(t)])}else return ee(yt,{ref:a},[(f=t.default)==null?void 0:f.call(t)])}}});const y8=["role","aria-labelledby"],_8=ce({name:"ElFormItem"}),b8=ce({..._8,props:g8,setup(e,{expose:t}){const r=e,n=zd(),i=Oe(Fs,void 0),a=Oe(go,void 0),o=ra(void 0,{formItem:!1}),s=Be("form-item"),l=vy().value,u=H([]),c=H(""),f=T$(c,100),d=H(""),h=H();let v,p=!1;const g=$(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=vo(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=$(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&T)return{};const W=vo(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=$(()=>[s.b(),s.m(o.value),s.is("error",c.value==="error"),s.is("validating",c.value==="validating"),s.is("success",c.value==="success"),s.is("required",R.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=$(()=>Br(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=$(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),S=$(()=>r.prop?ze(r.prop)?r.prop:r.prop.join("."):""),w=$(()=>!!(r.label||n.label)),x=$(()=>r.for||u.value.length===1?u.value[0]:void 0),C=$(()=>!x.value&&w.value),T=!!a,E=$(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return mf(W,r.prop).value}),A=$(()=>{const{required:W}=r,Y=[];r.rules&&Y.push(...Rp(r.rules));const ue=i==null?void 0:i.rules;if(ue&&r.prop){const he=mf(ue,r.prop).value;he&&Y.push(...Rp(he))}if(W!==void 0){const he=Y.map((Q,L)=>[Q,L]).filter(([Q])=>Object.keys(Q).includes("required"));if(he.length>0)for(const[Q,L]of he)Q.required!==W&&(Y[L]={...Q,required:W});else Y.push({required:W})}return Y}),M=$(()=>A.value.length>0),D=W=>A.value.filter(ue=>!ue.trigger||!W?!0:Array.isArray(ue.trigger)?ue.trigger.includes(W):ue.trigger===W).map(({trigger:ue,...he})=>he),R=$(()=>A.value.some(W=>W.required)),k=$(()=>{var W;return f.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),F=$(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),K=W=>{c.value=W},B=W=>{var Y,ue;const{errors:he,fields:Q}=W;(!he||!Q)&&console.error(W),K("error"),d.value=he?(ue=(Y=he==null?void 0:he[0])==null?void 0:Y.message)!=null?ue:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},N=()=>{K("success"),i==null||i.emit("validate",r.prop,!0,"")},j=async W=>{const Y=S.value;return new qu({[Y]:W}).validate({[Y]:E.value},{firstFields:!0}).then(()=>(N(),!0)).catch(he=>(B(he),Promise.reject(he)))},re=async(W,Y)=>{if(p||!r.prop)return!1;const ue=Le(Y);if(!M.value)return Y==null||Y(!1),!1;const he=D(W);return he.length===0?(Y==null||Y(!0),!0):(K("validating"),j(he).then(()=>(Y==null||Y(!0),!0)).catch(Q=>{const{fields:L}=Q;return Y==null||Y(!1,L),ue?!1:Promise.reject(L)}))},oe=()=>{K(""),d.value="",p=!1},_e=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const Y=mf(W,r.prop);p=!0,Y.value=eb(v),await Rt(),oe(),p=!1},Ee=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(Y=>Y!==W)};xe(()=>r.error,W=>{d.value=W||"",K(W?"error":"")},{immediate:!0}),xe(()=>r.validateStatus,W=>K(W||""));const J=fn({...Id(r),$el:h,size:o,validateState:c,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Ee,removeInputId:V,resetField:_e,clearValidate:oe,validate:re});return Tt(go,J),Mt(()=>{r.prop&&(i==null||i.addField(J),v=eb(E.value))}),nr(()=>{i==null||i.removeField(J)}),t({size:o,validateMessage:d,validateState:c,validate:re,clearValidate:oe,resetField:_e}),(W,Y)=>{var ue;return U(),ye("div",{ref_key:"formItemRef",ref:h,class:le(P(y)),role:P(C)?"group":void 0,"aria-labelledby":P(C)?P(l):void 0},[ee(P(m8),{"is-auto-width":P(g).width==="auto","update-all":((ue=P(i))==null?void 0:ue.labelWidth)==="auto"},{default:Z(()=>[P(w)?(U(),me(nn(P(x)?"label":"div"),{key:0,id:P(l),for:P(x),class:le(P(s).e("label")),style:St(P(g))},{default:Z(()=>[Fe(W.$slots,"label",{label:P(F)},()=>[Nt(Me(P(F)),1)])]),_:3},8,["id","for","class","style"])):ke("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),ae("div",{class:le(P(s).e("content")),style:St(P(m))},[Fe(W.$slots,"default"),ee(Qn,{name:`${P(s).namespace.value}-zoom-in-top`},{default:Z(()=>[P(k)?Fe(W.$slots,"error",{key:0,error:d.value},()=>[ae("div",{class:le(P(b))},Me(d.value),3)]):ke("v-if",!0)]),_:3},8,["name"])],6)],10,y8)}}});var KM=Xe(b8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const XM=hr(N6,{FormItem:KM}),ZM=la(KM);let w8=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Lt.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Lt.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Lt.tab:{gf(t,"mouseleave");break}case Lt.enter:case Lt.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},S8=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new w8(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Lt.down:{gf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Lt.up:{gf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Lt.tab:{gf(t.currentTarget,"mouseleave");break}case Lt.enter:case Lt.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},x8=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new S8(n,t)})}};const C8=ce({name:"ElMenuCollapseTransition",setup(){const e=Be("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Zo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){ss(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Il(r,e.m("collapse"))?(ss(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Zo(r,e.m("collapse"))):(Zo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),ss(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Zo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function T8(e,t,r,n,i,a){return U(),me(Qn,So({mode:"out-in"},e.listeners),{default:Z(()=>[Fe(e.$slots,"default")]),_:3},16)}var M8=Xe(C8,[["render",T8],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function QM(e,t){const r=$(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:$(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function A8(e){return $(()=>{const r=e.backgroundColor;return r?new OM(r).shade(20).toString():""})}const JM=(e,t)=>{const r=Be("menu");return $(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":A8(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},E8=rt({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wn},expandOpenIcon:{type:Wn},collapseCloseIcon:{type:Wn},collapseOpenIcon:{type:Wn}}),Uh="ElSubMenu";var Ey=ce({name:Uh,props:E8,setup(e,{slots:t,expose:r}){const n=dt(),{indexPath:i,parentMenu:a}=QM(n,$(()=>e.index)),o=Be("menu"),s=Be("sub-menu"),l=Oe("rootMenu");l||ta(Uh,"can not inject root menu");const u=Oe(`subMenu:${a.value.uid}`);u||ta(Uh,"can not inject sub menu");const c=H({}),f=H({});let d;const h=H(!1),v=H(),p=H(null),g=$(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=$(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:KT:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:uy),y=$(()=>u.level===0),_=$(()=>e.popperAppendToBody===void 0?y.value:Boolean(e.popperAppendToBody)),b=$(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),S=$(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=$(()=>l.openedMenus.includes(e.index)),x=$(()=>{let N=!1;return Object.values(c.value).forEach(j=>{j.active&&(N=!0)}),Object.values(f.value).forEach(j=>{j.active&&(N=!0)}),N}),C=$(()=>l.props.backgroundColor||""),T=$(()=>l.props.activeTextColor||""),E=$(()=>l.props.textColor||""),A=$(()=>l.props.mode),M=fn({index:e.index,indexPath:i,active:x}),D=$(()=>A.value!=="horizontal"?{color:E.value}:{borderBottomColor:x.value?l.props.activeTextColor?T.value:"":"transparent",color:x.value?T.value:E.value}),R=()=>{var N,j,re;return(re=(j=(N=p.value)==null?void 0:N.popperRef)==null?void 0:j.popperInstanceRef)==null?void 0:re.destroy()},k=N=>{N||R()},F=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:x.value})},K=(N,j=e.showTimeout)=>{var re;N.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=Wp(()=>{l.openMenu(e.index,i.value)},j),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},B=(N=!1)=>{var j,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=Wp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&N&&((j=n.parent)==null?void 0:j.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};xe(()=>l.props.collapse,N=>k(Boolean(N)));{const N=re=>{f.value[re.index]=re},j=re=>{delete f.value[re.index]};Tt(`subMenu:${n.uid}`,{addSubMenu:N,removeSubMenu:j,handleMouseleave:B,mouseInChild:h,level:u.level+1})}return r({opened:w}),Mt(()=>{l.addSubMenu(M),u.addSubMenu(M)}),nr(()=>{u.removeSubMenu(M),l.removeSubMenu(M)}),()=>{var N;const j=[(N=t.title)==null?void 0:N.call(t),Ce(lr,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>ze(m.value)?Ce(n.appContext.components[m.value]):Ce(m.value)})],re=JM(l.props,u.level+1),oe=l.isMenuPopup?Ce(Yu,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:S.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var _e;return Ce("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Ee=>K(Ee,100),onMouseleave:()=>B(!0),onFocus:Ee=>K(Ee,100)},[Ce("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(_e=t.default)==null?void 0:_e.call(t)])])},default:()=>Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:F},j)}):Ce(yt,{},[Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:F},j),Ce(b6,{},{default:()=>{var _e;return qt(Ce("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(_e=t.default)==null?void 0:_e.call(t)]),[[mi,w.value]])}})]);return Ce("li",{class:[s.b(),s.is("active",x.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:K,onMouseleave:()=>B(!0),onFocus:K},[oe])}}});const P8=rt({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Pe(Array),default:()=>ja([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),jh=e=>Array.isArray(e)&&e.every(t=>ze(t)),L8={close:(e,t)=>ze(e)&&jh(t),open:(e,t)=>ze(e)&&jh(t),select:(e,t,r,n)=>ze(e)&&jh(t)&&Ke(r)&&(n===void 0||n instanceof Promise)};var D8=ce({name:"ElMenu",props:P8,emits:L8,setup(e,{emit:t,slots:r,expose:n}){const i=dt(),a=i.appContext.config.globalProperties.$router,o=H(),s=Be("menu"),l=Be("sub-menu"),u=H(-1),c=H(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=H(e.defaultActive),d=H({}),h=H({}),v=$(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const E=f.value&&d.value[f.value];if(!E||e.mode==="horizontal"||e.collapse)return;E.indexPath.forEach(M=>{const D=h.value[M];D&&g(M,D.indexPath)})},g=(E,A)=>{c.value.includes(E)||(e.uniqueOpened&&(c.value=c.value.filter(M=>A.includes(M))),c.value.push(E),t("open",E,A))},m=(E,A)=>{const M=c.value.indexOf(E);M!==-1&&c.value.splice(M,1),t("close",E,A)},y=({index:E,indexPath:A})=>{c.value.includes(E)?m(E,A):g(E,A)},_=E=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:A,indexPath:M}=E;if(!(A===void 0||M===void 0))if(e.router&&a){const D=E.route||A,R=a.push(D).then(k=>(k||(f.value=A),k));t("select",A,M,{index:A,indexPath:M,route:D},R)}else f.value=A,t("select",A,M,{index:A,indexPath:M})},b=E=>{const A=d.value,M=A[E]||f.value&&A[f.value]||A[e.defaultActive];M?f.value=M.index:f.value=E},S=()=>{var E,A;if(!o.value)return-1;const M=Array.from((A=(E=o.value)==null?void 0:E.childNodes)!=null?A:[]).filter(N=>N.nodeName!=="#text"||N.nodeValue),D=64,R=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),k=Number.parseInt(getComputedStyle(o.value).paddingRight,10),F=o.value.clientWidth-R-k;let K=0,B=0;return M.forEach((N,j)=>{K+=N.offsetWidth||0,K<=F-D&&(B=j+1)}),B===M.length?-1:B},w=(E,A=33.34)=>{let M;return()=>{M&&clearTimeout(M),M=setTimeout(()=>{E()},A)}};let x=!0;const C=()=>{const E=()=>{u.value=-1,Rt(()=>{u.value=S()})};x?E():w(E)(),x=!1};xe(()=>e.defaultActive,E=>{d.value[E]||(f.value=""),b(E)}),xe(()=>e.collapse,E=>{E&&(c.value=[])}),xe(d.value,p);let T;no(()=>{e.mode==="horizontal"&&e.ellipsis?T=ms(o,C).stop:T==null||T()});{const E=R=>{h.value[R.index]=R},A=R=>{delete h.value[R.index]};Tt("rootMenu",fn({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:v,addMenuItem:R=>{d.value[R.index]=R},removeMenuItem:R=>{delete d.value[R.index]},addSubMenu:E,removeSubMenu:A,openMenu:g,closeMenu:m,handleMenuItemClick:_,handleSubMenuClick:y})),Tt(`subMenu:${i.uid}`,{addSubMenu:E,removeSubMenu:A,mouseInChild:H(!1),level:0})}return Mt(()=>{e.mode==="horizontal"&&new x8(i.vnode.el,s.namespace.value)}),n({open:A=>{const{indexPath:M}=h.value[A];M.forEach(D=>g(D,M))},close:m,handleResize:C}),()=>{var E,A;let M=(A=(E=r.default)==null?void 0:E.call(r))!=null?A:[];const D=[];if(e.mode==="horizontal"&&o.value){const F=yf(M),K=u.value===-1?F:F.slice(0,u.value),B=u.value===-1?[]:F.slice(u.value);B!=null&&B.length&&e.ellipsis&&(M=K,D.push(Ce(Ey,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>Ce(lr,{class:l.e("icon-more")},{default:()=>Ce(i3)}),default:()=>B})))}const R=JM(e,0),k=Ce("ul",{key:String(e.collapse),role:"menubar",ref:o,style:R.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...M,...D]);return e.collapseTransition&&e.mode==="vertical"?Ce(M8,()=>k):k}}});const I8=rt({index:{type:Pe([String,null]),default:null},route:{type:Pe([String,Object])},disabled:Boolean}),O8={click:e=>ze(e.index)&&Array.isArray(e.indexPath)},Yh="ElMenuItem",R8=ce({name:Yh,components:{ElTooltip:Yu},props:I8,emits:O8,setup(e,{emit:t}){const r=dt(),n=Oe("rootMenu"),i=Be("menu"),a=Be("menu-item");n||ta(Yh,"can not inject root menu");const{parentMenu:o,indexPath:s}=QM(r,Tn(e,"index")),l=Oe(`subMenu:${o.value.uid}`);l||ta(Yh,"can not inject sub menu");const u=$(()=>e.index===n.activeIndex),c=fn({index:e.index,indexPath:s,active:u}),f=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",c))};return Mt(()=>{l.addSubMenu(c),n.addMenuItem(c)}),nr(()=>{l.removeSubMenu(c),n.removeMenuItem(c)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:f}}});function k8(e,t,r,n,i,a){const o=_r("el-tooltip");return U(),ye("li",{class:le([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(U(),me(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:Z(()=>[Fe(e.$slots,"title")]),default:Z(()=>[ae("div",{class:le(e.nsMenu.be("tooltip","trigger"))},[Fe(e.$slots,"default")],2)]),_:3},8,["effect"])):(U(),ye(yt,{key:1},[Fe(e.$slots,"default"),Fe(e.$slots,"title")],64))],2)}var eA=Xe(R8,[["render",k8],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const N8={title:String},B8="ElMenuItemGroup",F8=ce({name:B8,props:N8,setup(){return{ns:Be("menu-item-group")}}});function $8(e,t,r,n,i,a){return U(),ye("li",{class:le(e.ns.b())},[ae("div",{class:le(e.ns.e("title"))},[e.$slots.title?Fe(e.$slots,"title",{key:1}):(U(),ye(yt,{key:0},[Nt(Me(e.title),1)],64))],2),ae("ul",null,[Fe(e.$slots,"default")])],2)}var tA=Xe(F8,[["render",$8],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const H8=hr(D8,{MenuItem:eA,MenuItemGroup:tA,SubMenu:Ey}),z8=la(eA);la(tA);const W8=la(Ey),V8=rt({trigger:pu.trigger,placement:Vh.placement,disabled:pu.disabled,visible:Kr.visible,transition:Kr.transition,popperOptions:Vh.popperOptions,tabindex:Vh.tabindex,content:Kr.content,popperStyle:Kr.popperStyle,popperClass:Kr.popperClass,enterable:{...Kr.enterable,default:!0},effect:{...Kr.effect,default:"light"},teleported:Kr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),G8={"update:visible":e=>Br(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},U8="onUpdate:visible",j8=ce({name:"ElPopover"}),Y8=ce({...j8,props:V8,emits:G8,setup(e,{expose:t,emit:r}){const n=e,i=$(()=>n[U8]),a=Be("popover"),o=H(),s=$(()=>{var g;return(g=P(o))==null?void 0:g.popperRef}),l=$(()=>[{width:vo(n.width)},n.popperStyle]),u=$(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),c=$(()=>n.transition===`${a.namespace.value}-fade-in-linear`),f=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:f}),(g,m)=>(U(),me(P(Yu),So({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":P(u),"popper-style":P(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":P(c),"onUpdate:visible":P(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:Z(()=>[g.title?(U(),ye("div",{key:0,class:le(P(a).e("title")),role:"title"},Me(g.title),3)):ke("v-if",!0),Fe(g.$slots,"default",{},()=>[Nt(Me(g.content),1)])]),default:Z(()=>[g.$slots.reference?Fe(g.$slots,"reference",{key:0}):ke("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var q8=Xe(Y8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const s1=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var K8={mounted(e,t){s1(e,t)},updated(e,t){s1(e,t)}};const X8="popover",Z8=y3(K8,X8),Q8=hr(q8,{directive:Z8}),J8=["start","center","end","space-around","space-between","space-evenly"],eW=["top","middle","bottom"],tW=rt({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:J8,default:"start"},align:{type:String,values:eW,default:"top"}}),rW=ce({name:"ElRow"}),nW=ce({...rW,props:tW,setup(e){const t=e,r=Be("row"),n=$(()=>t.gutter);Tt(nM,{gutter:n});const i=$(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=$(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(U(),me(nn(o.tag),{class:le(P(a)),style:St(P(i))},{default:Z(()=>[Fe(o.$slots,"default")]),_:3},8,["class","style"]))}});var iW=Xe(nW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const rA=hr(iW),aW=rt({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Wn},inactiveIcon:{type:Wn},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Pe(Function)},size:{type:String,validator:_3},tabindex:{type:[String,Number]}}),oW={[po]:e=>Br(e)||ze(e)||Yt(e),[jp]:e=>Br(e)||ze(e)||Yt(e),[Yp]:e=>Br(e)||ze(e)||Yt(e)},sW=["onClick"],lW=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],uW=["aria-hidden"],cW=["aria-hidden"],fW=["aria-hidden"],fg="ElSwitch",dW=ce({name:fg}),hW=ce({...dW,props:aW,emits:oW,setup(e,{expose:t,emit:r}){const n=e,i=dt(),{formItem:a}=Gu(),o=ra(),s=Be("switch");sM({from:'"value"',replacement:'"model-value" or "v-model"',scope:fg,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},$(()=>{var S;return!!((S=i.vnode.props)!=null&&S.value)}));const{inputId:l}=py(n,{formItemContext:a}),u=Xd($(()=>n.loading)),c=H(n.modelValue!==!1),f=H(),d=H(),h=$(()=>[s.b(),s.m(o.value),s.is("disabled",u.value),s.is("checked",g.value)]),v=$(()=>({width:vo(n.width)}));xe(()=>n.modelValue,()=>{c.value=!0}),xe(()=>n.value,()=>{c.value=!1});const p=$(()=>c.value?n.modelValue:n.value),g=$(()=>p.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(p.value)||(r(po,n.inactiveValue),r(jp,n.inactiveValue),r(Yp,n.inactiveValue)),xe(g,S=>{var w;f.value.checked=S,n.validateEvent&&((w=a==null?void 0:a.validate)==null||w.call(a,"change").catch(x=>void 0))});const m=()=>{const S=g.value?n.inactiveValue:n.activeValue;r(po,S),r(jp,S),r(Yp,S),Rt(()=>{f.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:S}=n;if(!S){m();return}const w=S();[Hf(w),Br(w)].includes(!0)||ta(fg,"beforeChange must return type `Promise` or `boolean`"),Hf(w)?w.then(C=>{C&&m()}).catch(C=>{}):w&&m()},_=$(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),b=()=>{var S,w;(w=(S=f.value)==null?void 0:S.focus)==null||w.call(S)};return Mt(()=>{f.value.checked=g.value}),t({focus:b,checked:g}),(S,w)=>(U(),ye("div",{class:le(P(h)),style:St(P(_)),onClick:jf(y,["prevent"])},[ae("input",{id:P(l),ref_key:"input",ref:f,class:le(P(s).e("input")),type:"checkbox",role:"switch","aria-checked":P(g),"aria-disabled":P(u),name:S.name,"true-value":S.activeValue,"false-value":S.inactiveValue,disabled:P(u),tabindex:S.tabindex,onChange:m,onKeydown:xO(y,["enter"])},null,42,lW),!S.inlinePrompt&&(S.inactiveIcon||S.inactiveText)?(U(),ye("span",{key:0,class:le([P(s).e("label"),P(s).em("label","left"),P(s).is("active",!P(g))])},[S.inactiveIcon?(U(),me(P(lr),{key:0},{default:Z(()=>[(U(),me(nn(S.inactiveIcon)))]),_:1})):ke("v-if",!0),!S.inactiveIcon&&S.inactiveText?(U(),ye("span",{key:1,"aria-hidden":P(g)},Me(S.inactiveText),9,uW)):ke("v-if",!0)],2)):ke("v-if",!0),ae("span",{ref_key:"core",ref:d,class:le(P(s).e("core")),style:St(P(v))},[S.inlinePrompt?(U(),ye("div",{key:0,class:le(P(s).e("inner"))},[S.activeIcon||S.inactiveIcon?(U(),me(P(lr),{key:0,class:le(P(s).is("icon"))},{default:Z(()=>[(U(),me(nn(P(g)?S.activeIcon:S.inactiveIcon)))]),_:1},8,["class"])):S.activeText||S.inactiveText?(U(),ye("span",{key:1,class:le(P(s).is("text")),"aria-hidden":!P(g)},Me(P(g)?S.activeText:S.inactiveText),11,cW)):ke("v-if",!0)],2)):ke("v-if",!0),ae("div",{class:le(P(s).e("action"))},[S.loading?(U(),me(P(lr),{key:0,class:le(P(s).is("loading"))},{default:Z(()=>[ee(P(cy))]),_:1},8,["class"])):ke("v-if",!0)],2)],6),!S.inlinePrompt&&(S.activeIcon||S.activeText)?(U(),ye("span",{key:1,class:le([P(s).e("label"),P(s).em("label","right"),P(s).is("active",P(g))])},[S.activeIcon?(U(),me(P(lr),{key:0},{default:Z(()=>[(U(),me(nn(S.activeIcon)))]),_:1})):ke("v-if",!0),!S.activeIcon&&S.activeText?(U(),ye("span",{key:1,"aria-hidden":!P(g)},Me(S.activeText),9,fW)):ke("v-if",!0)],2)):ke("v-if",!0)],14,sW))}});var vW=Xe(hW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const pW=hr(vW);/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var gW=/["'&<>]/,mW=yW;function yW(e){var t=""+e,r=gW.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?fu(s,u):u(s,l,e))):(t!=="$key"&&Ke(s)&&"$value"in s&&(s=s.$value),[Ke(s)?fu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,c=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},nA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},bW=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},Qa=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Ut(n,t)]={row:n,index:i}}),r};function wW(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(Ve(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function Py(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function iA(e){return e===""||e!==void 0&&(e=Py(e),Number.isNaN(e)&&(e=80)),e}function SW(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function xW(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Nl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,be(t.children)&&t.children.forEach(l=>{Nl(e,l,r??!a)})};return Br(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function CW(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const c=u[r];i(c)||a(u,c,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let li;function TW(e,t,r,n){n=FT({enterable:!0,showArrow:!0},n);const{nextZIndex:i}=Ty(),a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=n.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",n.popperClass||""].join(" "),r=mW(r),m.innerHTML=r,m.style.zIndex=String(i()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){c&&c.update()}li==null||li(),li=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",li),li=void 0}catch{}};let c=null,f=u,d=li;n.enterable&&({onOpen:f,onClose:d}=xM({showAfter:n.showAfter,hideAfter:n.hideAfter,open:u,close:li}));const h=s();h.onmouseenter=f,h.onmouseleave=d;const v=[];if(n.offset&&v.push({name:"offset",options:{offset:[0,n.offset]}}),n.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=n.popperOptions||{};return c=wM(t,h,{placement:n.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",li),c}function aA(e){return e.children?c$(e.children,aA):[e]}function u1(e,t){return e+t.colSpan}const oA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=aA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(u1,0),a=i+l.reduce(u1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ly=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=oA(t,r,n,i);if(s){const c=s==="left";o.push(`${e}-fixed-column--${s}`),c&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!c&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function c1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Dy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=oA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(c1,0):s.right=u.slice(o+1).reverse().reduce(c1,0),s},Ts=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function MW(e){const t=dt(),r=H(!1),n=H([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const c=Qa(n.value,u);n.value=l.reduce((f,d)=>{const h=Ut(d,u);return c[h]&&f.push(d),f},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Nl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=Qa(u,c);n.value=l.reduce((d,h)=>{const v=f[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Qa(n.value,u)[Ut(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function AW(e){const t=dt(),r=H(null),n=H(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(P(c)||[]).find(h=>Ut(h,f.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const c=n.value;if(u&&u!==c){n.value=u,t.emit("current-change",n.value,c);return}!u&&c&&(n.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=n.value;if(!c.includes(f)&&f){if(u){const d=Ut(f,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,f)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function EW(e){const t=H([]),r=H({}),n=H(16),i=H(!1),a=H({}),o=H("hasChildren"),s=H("children"),l=dt(),u=$(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=$(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const S={children:[]};a.value[b].forEach(w=>{const x=Ut(w,m);S.children.push(x),w[o.value]&&!_[x]&&(_[x]={children:[]})}),_[b]=S}}),_}),f=m=>{const y=e.rowKey.value,_={};return CW(m,(b,S,w)=>{const x=Ut(b,y);Array.isArray(S)?_[x]={children:S.map(C=>Ut(C,y)),level:w}:i.value&&(_[x]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,S=c.value,w=Object.keys(b),x={};if(w.length){const C=P(r),T=[],E=(M,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||M!=null&&M.expanded);{const R=y||t.value&&t.value.includes(D);return!!(M!=null&&M.expanded||R)}};w.forEach(M=>{const D=C[M],R={...b[M]};if(R.expanded=E(D,M),R.lazy){const{loaded:k=!1,loading:F=!1}=D||{};R.loaded=!!k,R.loading=!!F,T.push(M)}x[M]=R});const A=Object.keys(S);i.value&&A.length&&T.length&&A.forEach(M=>{const D=C[M],R=S[M].children;if(T.includes(M)){if(x[M].children.length!==0)throw new Error("[ElTable]children must be an empty array.");x[M].children=R}else{const{loaded:k=!1,loading:F=!1}=D||{};x[M]={lazy:!0,loaded:!!k,loading:!!F,expanded:E(D,M),children:R,level:""}}})}r.value=x,(_=l.store)==null||_.updateTableScrollY()};xe(()=>t.value,()=>{d(!0)}),xe(()=>u.value,()=>{d()}),xe(()=>c.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Ut(m,_),S=b&&r.value[b];if(b&&S&&"expanded"in S){const w=S.expanded;y=typeof y>"u"?!S.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Ut(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,S=>{if(!Array.isArray(S))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,S.length&&(a.value[y]=S),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const PW=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:_W(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Tf=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,Tf(r.children)):t.push(r)}),t};function LW(){var e;const t=dt(),{size:r}=Id((e=t.proxy)==null?void 0:e.$props),n=H(null),i=H([]),a=H([]),o=H(!1),s=H([]),l=H([]),u=H([]),c=H([]),f=H([]),d=H([]),h=H([]),v=H([]),p=H(0),g=H(0),m=H(0),y=H(!1),_=H([]),b=H(!1),S=H(!1),w=H(null),x=H({}),C=H(null),T=H(null),E=H(null),A=H(null),M=H(null);xe(i,()=>t.state&&F(!1),{deep:!0});const D=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},R=fe=>{var Te;(Te=fe.children)==null||Te.forEach(He=>{He.fixed=fe.fixed,R(He)})},k=()=>{s.value.forEach(Ze=>{R(Ze)}),c.value=s.value.filter(Ze=>Ze.fixed===!0||Ze.fixed==="left"),f.value=s.value.filter(Ze=>Ze.fixed==="right"),c.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,c.value.unshift(s.value[0]));const fe=s.value.filter(Ze=>!Ze.fixed);l.value=[].concat(c.value).concat(fe).concat(f.value);const Te=Tf(fe),He=Tf(c.value),We=Tf(f.value);p.value=Te.length,g.value=He.length,m.value=We.length,u.value=[].concat(He).concat(Te).concat(We),o.value=c.value.length>0||f.value.length>0},F=(fe,Te=!1)=>{fe&&k(),Te?t.state.doLayout():t.state.debouncedUpdateLayout()},K=fe=>_.value.includes(fe),B=()=>{y.value=!1,_.value.length&&(_.value=[],t.emit("selection-change",[]))},N=()=>{let fe;if(n.value){fe=[];const Te=Qa(_.value,n.value),He=Qa(i.value,n.value);for(const We in Te)Ve(Te,We)&&!He[We]&&fe.push(Te[We].row)}else fe=_.value.filter(Te=>!i.value.includes(Te));if(fe.length){const Te=_.value.filter(He=>!fe.includes(He));_.value=Te,t.emit("selection-change",Te.slice())}},j=()=>(_.value||[]).slice(),re=(fe,Te=void 0,He=!0)=>{if(Nl(_.value,fe,Te)){const Ze=(_.value||[]).slice();He&&t.emit("select",Ze,fe),t.emit("selection-change",Ze)}},oe=()=>{var fe,Te;const He=S.value?!y.value:!(y.value||_.value.length);y.value=He;let We=!1,Ze=0;const kt=(Te=(fe=t==null?void 0:t.store)==null?void 0:fe.states)==null?void 0:Te.rowKey.value;i.value.forEach((ht,Wt)=>{const Wr=Wt+Ze;w.value?w.value.call(null,ht,Wr)&&Nl(_.value,ht,He)&&(We=!0):Nl(_.value,ht,He)&&(We=!0),Ze+=V(Ut(ht,kt))}),We&&t.emit("selection-change",_.value?_.value.slice():[]),t.emit("select-all",_.value)},_e=()=>{const fe=Qa(_.value,n.value);i.value.forEach(Te=>{const He=Ut(Te,n.value),We=fe[He];We&&(_.value[We.index]=Te)})},Ee=()=>{var fe,Te,He;if(((fe=i.value)==null?void 0:fe.length)===0){y.value=!1;return}let We;n.value&&(We=Qa(_.value,n.value));const Ze=function(Wr){return We?!!We[Ut(Wr,n.value)]:_.value.includes(Wr)};let kt=!0,ht=0,Wt=0;for(let Wr=0,UL=(i.value||[]).length;Wr{var Te;if(!t||!t.store)return 0;const{treeData:He}=t.store.states;let We=0;const Ze=(Te=He.value[fe])==null?void 0:Te.children;return Ze&&(We+=Ze.length,Ze.forEach(kt=>{We+=V(kt)})),We},J=(fe,Te)=>{Array.isArray(fe)||(fe=[fe]);const He={};return fe.forEach(We=>{x.value[We.id]=Te,He[We.columnKey||We.id]=Te}),He},W=(fe,Te,He)=>{T.value&&T.value!==fe&&(T.value.order=null),T.value=fe,E.value=Te,A.value=He},Y=()=>{let fe=P(a);Object.keys(x.value).forEach(Te=>{const He=x.value[Te];if(!He||He.length===0)return;const We=nA({columns:u.value},Te);We&&We.filterMethod&&(fe=fe.filter(Ze=>He.some(kt=>We.filterMethod.call(null,kt,Ze,We))))}),C.value=fe},ue=()=>{i.value=PW(C.value,{sortingColumn:T.value,sortProp:E.value,sortOrder:A.value})},he=(fe=void 0)=>{fe&&fe.filter||Y(),ue()},Q=fe=>{const{tableHeaderRef:Te}=t.refs;if(!Te)return;const He=Object.assign({},Te.filterPanels),We=Object.keys(He);if(We.length)if(typeof fe=="string"&&(fe=[fe]),Array.isArray(fe)){const Ze=fe.map(kt=>bW({columns:u.value},kt));We.forEach(kt=>{const ht=Ze.find(Wt=>Wt.id===kt);ht&&(ht.filteredValue=[])}),t.store.commit("filterChange",{column:Ze,values:[],silent:!0,multi:!0})}else We.forEach(Ze=>{const kt=u.value.find(ht=>ht.id===Ze);kt&&(kt.filteredValue=[])}),x.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},L=()=>{T.value&&(W(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:I,toggleRowExpansion:z,updateExpandRows:G,states:q,isRowExpanded:ne}=MW({data:i,rowKey:n}),{updateTreeExpandKeys:de,toggleTreeExpansion:te,updateTreeData:ie,loadOrToggle:X,states:we}=EW({data:i,rowKey:n}),{updateCurrentRowData:ve,updateCurrentRow:Se,setCurrentRowKey:Ie,states:$e}=AW({data:i,rowKey:n});return{assertRowKey:D,updateColumns:k,scheduleLayout:F,isSelected:K,clearSelection:B,cleanSelection:N,getSelectionRows:j,toggleRowSelection:re,_toggleAllSelection:oe,toggleAllSelection:null,updateSelectionByRowKey:_e,updateAllSelected:Ee,updateFilters:J,updateCurrentRow:Se,updateSort:W,execFilter:Y,execSort:ue,execQuery:he,clearFilter:Q,clearSort:L,toggleRowExpansion:z,setExpandRowKeysAdapter:fe=>{I(fe),de(fe)},setCurrentRowKey:Ie,toggleRowExpansionAdapter:(fe,Te)=>{u.value.some(({type:We})=>We==="expand")?z(fe,Te):te(fe,Te)},isRowExpanded:ne,updateExpandRows:G,updateCurrentRowData:ve,loadOrToggle:X,updateTreeData:ie,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,leafColumnsLength:p,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:m,isAllSelected:y,selection:_,reserveSelection:b,selectOnIndeterminate:S,selectable:w,filters:x,filteredData:C,sortingColumn:T,sortProp:E,sortOrder:A,hoverRow:M,...q,...we,...$e}}}function dg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=dg(r.children,t)),r)})}function sA(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&sA(t.children)}),e.sort((t,r)=>t.no-r.no)}function DW(){const e=dt(),t=LW();return{ns:Be("table"),...t,mutations:{setData(o,s){const l=P(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),P(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l){const u=P(o._columns);let c=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),c=dg(u,l)):(u.push(s),c=u),sA(c),o._columns.value=c,s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(o,s,l){const u=P(o._columns)||[];if(l)l.children.splice(l.children.findIndex(c=>c.id===s.id),1),Rt(()=>{var c;((c=l.children)==null?void 0:c.length)===0&&delete l.children}),o._columns.value=dg(u,l);else{const c=u.indexOf(s);c>-1&&(u.splice(c,1),o._columns.value=u)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:c}=s;if(l){const f=P(o.columns).find(d=>d.property===l);f&&(f.order=u,e.store.updateSort(f,l,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:c}=o,f=P(l),d=P(u),h=P(c);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:c}=s,f=e.store.updateFilters(l,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Rt(()=>e.layout.updateScrollY.apply(e.layout))}}}const Bl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function IW(e,t){if(!e)throw new Error("Table is required.");const r=DW();return r.toggleAllSelection=Xf(r._toggleAllSelection,10),Object.keys(Bl).forEach(n=>{lA(uA(t,n),n,r)}),OW(r,t),r}function OW(e,t){Object.keys(Bl).forEach(r=>{xe(()=>uA(t,r),n=>{lA(n,r,e)})})}function lA(e,t,r){let n=e,i=Bl[t];typeof Bl[t]=="object"&&(i=i.key,n=n||Bl[t].default),r.states[i].value=n}function uA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class RW{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=H(null),this.scrollX=H(!1),this.scrollY=H(!1),this.bodyWidth=H(null),this.fixedWidth=H(null),this.rightFixedWidth=H(null),this.gutterWidth=0;for(const r in t)Ve(t,r)&&(xt(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&r){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Ot)return;const n=this.table.vnode.el;if(t=SW(t),this.height.value=Number(t),!n&&(t||t===0))return Rt(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Ot)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),c=l/u;let f=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*c);f+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-f}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:kW}=Cs,NW=ce({name:"ElTableFilterPanel",components:{ElCheckbox:Cs,ElCheckboxGroup:kW,ElScrollbar:TM,ElTooltip:Yu,ElIcon:lr,ArrowDown:KT,ArrowUp:I5},directives:{ClickOutside:kz},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=dt(),{t:r}=uM(),n=Be("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=H(!1),o=H(null),s=$(()=>e.column&&e.column.filters),l=$({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=$({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),c=$(()=>e.column?e.column.filterMultiple:!0),f=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};xe(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=$(()=>{var b,S;return(S=(b=o.value)==null?void 0:b.popperRef)==null?void 0:S.contentRef});return{tooltipVisible:a,multiple:c,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:f,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),BW={key:0},FW=["disabled"],$W=["label","onClick"];function HW(e,t,r,n,i,a){const o=_r("el-checkbox"),s=_r("el-checkbox-group"),l=_r("el-scrollbar"),u=_r("arrow-up"),c=_r("arrow-down"),f=_r("el-icon"),d=_r("el-tooltip"),h=Hm("click-outside");return U(),me(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:Z(()=>[e.multiple?(U(),ye("div",BW,[ae("div",{class:le(e.ns.e("content"))},[ee(l,{"wrap-class":e.ns.e("wrap")},{default:Z(()=>[ee(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:le(e.ns.e("checkbox-group"))},{default:Z(()=>[(U(!0),ye(yt,null,r_(e.filters,v=>(U(),me(o,{key:v.value,label:v.value},{default:Z(()=>[Nt(Me(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ae("div",{class:le(e.ns.e("bottom"))},[ae("button",{class:le({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Me(e.t("el.table.confirmFilter")),11,FW),ae("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Me(e.t("el.table.resetFilter")),1)],2)])):(U(),ye("ul",{key:1,class:le(e.ns.e("list"))},[ae("li",{class:le([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Me(e.t("el.table.clearFilter")),3),(U(!0),ye(yt,null,r_(e.filters,v=>(U(),ye("li",{key:v.value,class:le([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Me(v.text),11,$W))),128))],2))]),default:Z(()=>[qt((U(),ye("span",{class:le([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[ee(f,null,{default:Z(()=>[e.column.filterOpened?(U(),me(u,{key:0})):(U(),me(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var zW=Xe(NW,[["render",HW],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function cA(e){const t=dt();Bd(()=>{r.value.addObserver(t)}),Mt(()=>{n(r.value),i(r.value)}),Fd(()=>{n(r.value),i(r.value)}),Nu(()=>{r.value.removeObserver(t)});const r=$(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,f=s.length;c{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=l.length;c{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=H(null),l=H(!1),u=H({}),c=(p,g)=>{if(Ot&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),S=b.getBoundingClientRect(),w=S.left-_+30;Zo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:S.right-_,startColumnLeft:S.left-_,tableLeft:_};const x=m==null?void 0:m.refs.resizeProxy;x.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=E=>{const A=E.clientX-u.value.startMouseLeft,M=u.value.startLeft+A;x.style.left=`${Math.max(w,M)}px`},T=()=>{if(l.value){const{startColumnLeft:E,startLeft:A}=u.value,D=Number.parseInt(x.style.left,10)-E;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-E,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",T),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{ss(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",T)}},f=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Il(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Il(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Ot&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Il(b,"noclick")){ss(b,"noclick");return}if(!g.sortable)return;const S=e.store.states;let w=S.sortProp.value,x;const C=S.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),S.sortingColumn.value=g,w=g.property),_?x=g.order=_:x=g.order=null,S.sortProp.value=w,S.sortOrder.value=x,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function VW(e){const t=Oe(ei),r=Be("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:c}));const h=Dy(l,c.fixed,e.store,u);return Ts(h,"left"),Ts(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,c)=>{const f=Ly(r.b(),l,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:c})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const fA=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,fA(r.children))):t.push(r)}),t},GW=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function UW(e){const t=Oe(ei),r=$(()=>GW(e.store.states.originColumns.value));return{isGroup:$(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var jW=ce({name:"ElTableHeader",components:{ElCheckbox:Cs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=dt(),n=Oe(ei),i=Be("table"),a=H({}),{onColumnsChange:o,onScrollableChange:s}=cA(n);Mt(async()=>{await Rt(),await Rt();const{prop:w,order:x}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:x,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=WW(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=VW(e),{isGroup:_,toggleAllSelection:b,columnRows:S}=UW(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:S,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return Ce("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>Ce("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Ce("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>c(b,y),onMouseout:d},[Ce("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&Ce("span",{onClick:b=>f(b,y),class:"caret-wrapper"},[Ce("i",{onClick:b=>f(b,y,"ascending"),class:"sort-caret ascending"}),Ce("i",{onClick:b=>f(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Ce(zW,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,S)=>{y[b]=S}})])]))))))}});function YW(e){const t=Oe(ei),r=H(""),n=H(Ce("div")),i=(d,h,v)=>{var p;const g=t,m=qh(d);let y;const _=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;m&&(y=l1({columns:e.store.states.columns.value},m,_),y&&(g==null||g.emit(`cell-${v}`,h,y,m,d))),g==null||g.emit(`row-${v}`,h,y,d)},a=(d,h)=>{i(d,h,"dblclick")},o=(d,h)=>{e.store.commit("setCurrentRow",h),i(d,h,"click")},s=(d,h)=>{i(d,h,"contextmenu")},l=Xf(d=>{e.store.commit("setHoverRow",d)},30),u=Xf(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(d,h,v)=>{var p;const g=t,m=qh(d),y=(p=g==null?void 0:g.vnode.el)==null?void 0:p.dataset.prefix;if(m){const x=l1({columns:e.store.states.columns.value},m,y),C=g.hoverState={cell:m,column:x,row:h};g==null||g.emit("cell-mouse-enter",C.row,C.column,C.cell,d)}if(!v)return;const _=d.target.querySelector(".cell");if(!(Il(_,`${y}-tooltip`)&&_.childNodes.length))return;const b=document.createRange();b.setStart(_,0),b.setEnd(_,_.childNodes.length);const S=Math.round(b.getBoundingClientRect().width),w=(Number.parseInt(bb(_,"paddingLeft"),10)||0)+(Number.parseInt(bb(_,"paddingRight"),10)||0);(S+w>_.offsetWidth||_.scrollWidth>_.offsetWidth)&&TW(t==null?void 0:t.refs.tableWrapper,m,m.innerText||m.textContent,v)},handleCellMouseLeave:d=>{if(!qh(d))return;const v=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",v==null?void 0:v.row,v==null?void 0:v.column,v==null?void 0:v.cell,d)},tooltipContent:r,tooltipTrigger:n}}function qW(e){const t=Oe(ei),r=Be("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const p=Dy(c,e==null?void 0:e.fixed,e.store);return Ts(p,"left"),Ts(p,"right"),Object.assign({},v,p)},getCellClass:(u,c,f,d,h)=>{const v=Ly(r.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(f,f+c);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function KW(e){const t=Oe(ei),r=Be("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=YW(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=qW(e),y=$(()=>e.store.states.columns.value.findIndex(({type:x})=>x==="default")),_=(x,C)=>{const T=t.props.rowKey;return T?Ut(x,T):C},b=(x,C,T,E=!1)=>{const{tooltipEffect:A,tooltipOptions:M,store:D}=e,{indent:R,columns:k}=D.states,F=h(x,C);let K=!0;return T&&(F.push(r.em("row",`level-${T.level}`)),K=T.display),Ce("tr",{style:[K?null:{display:"none"},d(x,C)],class:F,key:_(x,C),onDblclick:N=>n(N,x),onClick:N=>i(N,x),onContextmenu:N=>a(N,x),onMouseenter:()=>o(C),onMouseleave:s},k.value.map((N,j)=>{const{rowspan:re,colspan:oe}=g(x,N,C,j);if(!re||!oe)return null;const _e={...N};_e.realWidth=m(k.value,oe,j);const Ee={store:e.store,_self:e.context||t,column:_e,row:x,$index:C,cellIndex:j,expanded:E};j===y.value&&T&&(Ee.treeNode={indent:T.level*R.value,level:T.level},typeof T.expanded=="boolean"&&(Ee.treeNode.expanded=T.expanded,"loading"in T&&(Ee.treeNode.loading=T.loading),"noLazyChildren"in T&&(Ee.treeNode.noLazyChildren=T.noLazyChildren)));const V=`${C},${j}`,J=_e.columnKey||_e.rawColumnKey||"",W=S(j,N,Ee),Y=N.showOverflowTooltip&&FT({effect:A},M,N.showOverflowTooltip);return Ce("td",{style:v(C,j,x,N),class:p(C,j,x,N,oe-1),key:`${J}${V}`,rowspan:re,colspan:oe,onMouseenter:ue=>l(ue,x,Y),onMouseleave:u},[W])}))},S=(x,C,T)=>C.renderCell(T);return{wrappedRowRender:(x,C)=>{const T=e.store,{isRowExpanded:E,assertRowKey:A}=T,{treeData:M,lazyTreeNodeMap:D,childrenColumnName:R,rowKey:k}=T.states,F=T.states.columns.value;if(F.some(({type:B})=>B==="expand")){const B=E(x),N=b(x,C,void 0,B),j=t.renderExpanded;return B?j?[[N,Ce("tr",{key:`expanded-row__${N.key}`},[Ce("td",{colspan:F.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[j({row:x,$index:C,store:T,expanded:B})])])]]:(console.error("[Element Error]renderExpanded is required."),N):[[N]]}else if(Object.keys(M.value).length){A();const B=Ut(x,k.value);let N=M.value[B],j=null;N&&(j={expanded:N.expanded,level:N.level,display:!0},typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(j.noLazyChildren=!(N.children&&N.children.length)),j.loading=N.loading));const re=[b(x,C,j)];if(N){let oe=0;const _e=(V,J)=>{V&&V.length&&J&&V.forEach(W=>{const Y={display:J.display&&J.expanded,level:J.level+1,expanded:!1,noLazyChildren:!1,loading:!1},ue=Ut(W,k.value);if(ue==null)throw new Error("For nested data item, row-key is required.");if(N={...M.value[ue]},N&&(Y.expanded=N.expanded,N.level=N.level||Y.level,N.display=!!(N.expanded&&Y.display),typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(Y.noLazyChildren=!(N.children&&N.children.length)),Y.loading=N.loading)),oe++,re.push(b(W,C+oe,Y)),N){const he=D.value[ue]||W[R.value];_e(he,N)}})};N.display=!0;const Ee=D.value[B]||x[R.value];_e(Ee,N)}return re}else return b(x,C,void 0)},tooltipContent:c,tooltipTrigger:f}}const XW={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var ZW=ce({name:"ElTableBody",props:XW,setup(e){const t=dt(),r=Oe(ei),n=Be("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=KW(e),{onColumnsChange:s,onScrollableChange:l}=cA(r);return xe(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Ot)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[c],p=h[u];v&&ss(v,"hover-row"),p&&Zo(p,"hover-row")})}),Nu(()=>{var u;(u=li)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Ce("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function Iy(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Ce("colgroup",{},r.map(i=>Ce("col",n(i))))}Iy.props=["columns","tableLayout"];function QW(){const e=Oe(ei),t=e==null?void 0:e.store,r=$(()=>t.states.fixedLeafColumnsLength.value),n=$(()=>t.states.rightFixedColumns.value.length),i=$(()=>t.states.columns.value.length),a=$(()=>t.states.fixedColumns.value.length),o=$(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function JW(e){const{columns:t}=QW(),r=Be("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ly(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Dy(o,a.fixed,e.store);return Ts(s,"left"),Ts(s,"right"),s},columns:t}}var eV=ce({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=JW(e);return{ns:Be("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const c=o.map(v=>Number(v[l.property])),f=[];let d=!0;c.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];f.push(p?p.length:0)}});const h=Math.max.apply(null,f);d?s[u]="":s[u]=c.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),Ce("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[Iy({columns:e}),Ce("tbody",[Ce("tr",{},[...e.map((l,u)=>Ce("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[Ce("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function tV(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function rV(e,t,r,n){const i=H(!1),a=H(null),o=H(!1),s=B=>{o.value=B},l=H({width:null,height:null,headerHeight:null}),u=H(!1),c={display:"inline-block",verticalAlign:"middle"},f=H(),d=H(0),h=H(0),v=H(0),p=H(0);no(()=>{t.setHeight(e.height)}),no(()=>{t.setMaxHeight(e.maxHeight)}),xe(()=>[e.currentRowKey,r.states.rowKey],([B,N])=>{!P(N)||!P(B)||r.setCurrentRowKey(`${B}`)},{immediate:!0}),xe(()=>e.data,B=>{n.store.commit("setData",B)},{immediate:!0,deep:!0}),no(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(B,N)=>{const{pixelX:j,pixelY:re}=N;Math.abs(j)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=N.pixelX/5)},y=$(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=$(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};Mt(async()=>{await Rt(),r.updateColumns(),T(),requestAnimationFrame(b);const B=n.vnode.el,N=n.refs.headerWrapper;e.flexible&&B&&B.parentElement&&(B.parentElement.style.minWidth="0"),l.value={width:f.value=B.offsetWidth,height:B.offsetHeight,headerHeight:e.showHeader&&N?N.offsetHeight:null},r.states.columns.value.forEach(j=>{j.filteredValue&&j.filteredValue.length&&n.store.commit("filterChange",{column:j,values:j.filteredValue,silent:!0})}),n.$ready=!0});const S=(B,N)=>{if(!B)return;const j=Array.from(B.classList).filter(re=>!re.startsWith("is-scrolling-"));j.push(t.scrollX.value?N:"is-scrolling-none"),B.className=j.join(" ")},w=B=>{const{tableWrapper:N}=n.refs;S(N,B)},x=B=>{const{tableWrapper:N}=n.refs;return!!(N&&N.classList.contains(B))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";x(V)||w(V);return}const B=n.refs.scrollBarRef.wrapRef;if(!B)return;const{scrollLeft:N,offsetWidth:j,scrollWidth:re}=B,{headerWrapper:oe,footerWrapper:_e}=n.refs;oe&&(oe.scrollLeft=N),_e&&(_e.scrollLeft=N);const Ee=re-j-1;N>=Ee?w("is-scrolling-right"):w(N===0?"is-scrolling-left":"is-scrolling-middle")},T=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&Sn(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?ms(n.vnode.el,E):Sn(window,"resize",E),ms(n.refs.bodyWrapper,()=>{var B,N;E(),(N=(B=n.refs)==null?void 0:B.scrollBarRef)==null||N.update()}))},E=()=>{var B,N,j;const re=n.vnode.el;if(!n.$ready||!re)return;let oe=!1;const{width:_e,height:Ee,headerHeight:V}=l.value,J=f.value=re.offsetWidth;_e!==J&&(oe=!0);const W=re.offsetHeight;(e.height||y.value)&&Ee!==W&&(oe=!0);const Y=e.tableLayout==="fixed"?n.refs.headerWrapper:(B=n.refs.tableHeaderRef)==null?void 0:B.$el;e.showHeader&&(Y==null?void 0:Y.offsetHeight)!==V&&(oe=!0),d.value=((N=n.refs.tableWrapper)==null?void 0:N.scrollHeight)||0,v.value=(Y==null?void 0:Y.scrollHeight)||0,p.value=((j=n.refs.footerWrapper)==null?void 0:j.offsetHeight)||0,h.value=d.value-v.value-p.value,oe&&(l.value={width:J,height:W,headerHeight:e.showHeader&&(Y==null?void 0:Y.offsetHeight)||0},b())},A=ra(),M=$(()=>{const{bodyWidth:B,scrollY:N,gutterWidth:j}=t;return B.value?`${B.value-(N.value?j:0)}px`:""}),D=$(()=>e.maxHeight?"fixed":e.tableLayout),R=$(()=>{if(e.data&&e.data.length)return null;let B="100%";e.height&&h.value&&(B=`${h.value}px`);const N=f.value;return{width:N?`${N}px`:"",height:B}}),k=$(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),F=$(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const B=e.maxHeight;if(d.value>=Number(B))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:R,handleFixedMousewheel:(B,N)=>{const j=n.refs.bodyWrapper;if(Math.abs(N.spinY)>0){const re=j.scrollTop;N.pixelY<0&&re!==0&&B.preventDefault(),N.pixelY>0&&j.scrollHeight-j.clientHeight>re&&B.preventDefault(),j.scrollTop+=Math.ceil(N.pixelY/5)}else j.scrollLeft+=Math.ceil(N.pixelX/5)},resizeProxyVisible:o,bodyWidth:M,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:k,scrollbarStyle:F}}var nV={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const iV=()=>{const e=H(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&Yt(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let aV=1;const oV=ce({name:"ElTable",directives:{Mousewheel:Wz},components:{TableHeader:jW,TableBody:ZW,TableFooter:eV,ElScrollbar:TM,hColgroup:Iy},props:nV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=uM(),r=Be("table"),n=dt();Tt(ei,n);const i=IW(n,e);n.store=i;const a=new RW({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=$(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=tV(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:S,tableSize:w,emptyBlockStyle:x,handleFixedMousewheel:C,resizeProxyVisible:T,bodyWidth:E,resizeState:A,doLayout:M,tableBodyStyles:D,tableLayout:R,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:K}=rV(e,a,i,n),{scrollBarRef:B,scrollTo:N,setScrollLeft:j,setScrollTop:re}=iV(),oe=Xf(M,50),_e=`${r.namespace.value}-table_${aV++}`;n.tableId=_e,n.state={isGroup:_,resizeState:A,doLayout:M,debouncedUpdateLayout:oe};const Ee=$(()=>e.sumText||t("el.table.sumText")),V=$(()=>e.emptyText||t("el.table.emptyText"));return{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:S,handleMouseLeave:b,tableId:_e,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:T,resizeState:A,isGroup:_,bodyWidth:E,tableBodyStyles:D,emptyBlockStyle:x,debouncedUpdateLayout:oe,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:M,sort:p,t,setDragVisible:y,context:n,computedSumText:Ee,computedEmptyText:V,tableLayout:R,scrollbarViewStyle:k,tableInnerStyle:F,scrollbarStyle:K,scrollBarRef:B,scrollTo:N,setScrollLeft:j,setScrollTop:re}}}),sV=["data-prefix"],lV={ref:"hiddenColumns",class:"hidden-columns"};function uV(e,t,r,n,i,a){const o=_r("hColgroup"),s=_r("table-header"),l=_r("table-body"),u=_r("el-scrollbar"),c=_r("table-footer"),f=Hm("mousewheel");return U(),ye("div",{ref:"tableWrapper",class:le([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:St(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=d=>e.handleMouseLeave())},[ae("div",{class:le(e.ns.e("inner-wrapper")),style:St(e.tableInnerStyle)},[ae("div",lV,[Fe(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?qt((U(),ye("div",{key:0,ref:"headerWrapper",class:le(e.ns.e("header-wrapper"))},[ae("table",{ref:"tableHeader",class:le(e.ns.e("header")),style:St(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ee(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):ke("v-if",!0),ae("div",{ref:"bodyWrapper",class:le(e.ns.e("body-wrapper"))},[ee(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:Z(()=>[ae("table",{ref:"tableBody",class:le(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:St({width:e.bodyWidth,tableLayout:e.tableLayout})},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(U(),me(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):ke("v-if",!0),ee(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(U(),ye("div",{key:0,ref:"emptyBlock",style:St(e.emptyBlockStyle),class:le(e.ns.e("empty-block"))},[ae("span",{class:le(e.ns.e("empty-text"))},[Fe(e.$slots,"empty",{},()=>[Nt(Me(e.computedEmptyText),1)])],2)],6)):ke("v-if",!0),e.$slots.append?(U(),ye("div",{key:1,ref:"appendWrapper",class:le(e.ns.e("append-wrapper"))},[Fe(e.$slots,"append")],2)):ke("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?qt((U(),ye("div",{key:1,ref:"footerWrapper",class:le(e.ns.e("footer-wrapper"))},[ee(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:St(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[mi,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):ke("v-if",!0),e.border||e.isGroup?(U(),ye("div",{key:2,class:le(e.ns.e("border-left-patch"))},null,2)):ke("v-if",!0)],6),qt(ae("div",{ref:"resizeProxy",class:le(e.ns.e("column-resize-proxy"))},null,2),[[mi,e.resizeProxyVisible]])],46,sV)}var cV=Xe(oV,[["render",uV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const fV={selection:"table-column--selection",expand:"table__expand-column"},dV={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},hV=e=>fV[e]||"",vV={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Ce(Cs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return Ce(Cs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Ce("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Ce("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Ce(lr,null,{default:()=>[Ce(uy)]})]})},sortable:!1,resizable:!1}};function pV({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&mf(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function gV({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Ce("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Ce("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=uy;t.loading&&(l=cy),a.push(Ce("div",{class:s,onClick:o},{default:()=>[Ce(lr,{class:{[i.is("loading")]:t.loading}},{default:()=>[Ce(l)]})]}))}else a.push(Ce("span",{class:i.e("placeholder")}));return a}function f1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function mV(e,t){const r=dt();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=f1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ve(t,u)&&xe(()=>t[u],c=>{let f=c;u==="width"&&l==="realWidth"&&(f=Py(c)),u==="minWidth"&&l==="realMinWidth"&&(f=iA(c)),r.columnConfig.value[u]=f,r.columnConfig.value[l]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=f1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ve(t,u)&&xe(()=>t[u],c=>{r.columnConfig.value[l]=c})})}}}function yV(e,t,r){const n=dt(),i=H(""),a=H(!1),o=H(),s=H(),l=Be("table");no(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),no(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=$(()=>{let _=n.vnode.vParent||n.parent;for(;_&&!_.tableId&&!_.columnId;)_=_.vnode.vParent||_.parent;return _}),c=$(()=>{const{store:_}=n.parent;if(!_)return!1;const{treeData:b}=_.states,S=b.value;return S&&Object.keys(S).length>0}),f=H(Py(e.width)),d=H(iA(e.minWidth)),h=_=>(f.value&&(_.width=f.value),d.value&&(_.minWidth=d.value),!f.value&&d.value&&(_.width=void 0),_.minWidth||(_.minWidth=80),_.realWidth=Number(_.width===void 0?_.minWidth:_.width),_),v=_=>{const b=_.type,S=vV[b]||{};Object.keys(S).forEach(x=>{const C=S[x];x!=="className"&&C!==void 0&&(_[x]=C)});const w=hV(b);if(w){const x=`${P(l.namespace)}-${w}`;_.className=_.className?`${_.className} ${x}`:x}return _},p=_=>{Array.isArray(_)?_.forEach(S=>b(S)):b(_);function b(S){var w;((w=S==null?void 0:S.type)==null?void 0:w.name)==="ElTableColumn"&&(S.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:_=>{e.renderHeader||_.type!=="selection"&&(_.renderHeader=S=>{n.columnConfig.value.label;const w=t.header;return w?w(S):_.label});let b=_.renderCell;return _.type==="expand"?(_.renderCell=S=>Ce("div",{class:"cell"},[b(S)]),r.value.renderExpanded=S=>t.default?t.default(S):t.default):(b=b||pV,_.renderCell=S=>{let w=null;if(t.default){const E=t.default(S);w=E.some(A=>A.type!==Sr)?E:b(S)}else w=b(S);const x=c.value&&S.cellIndex===0&&S.column.type!=="selection",C=gV(S,x),T={class:"cell",style:{}};return _.showOverflowTooltip&&(T.class=`${T.class} ${P(l.namespace)}-tooltip`,T.style={width:`${(S.column.realWidth||Number(S.column.width))-1}px`}),p(w),Ce("div",T,[C,w])}),_},getPropsData:(..._)=>_.reduce((b,S)=>(Array.isArray(S)&&S.forEach(w=>{b[w]=e[w]}),b),{}),getColumnElIndex:(_,b)=>Array.prototype.indexOf.call(_,b)}}var _V={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let bV=1;var dA=ce({name:"ElTableColumn",components:{ElCheckbox:Cs},props:_V,setup(e,{slots:t}){const r=dt(),n=H({}),i=$(()=>{let y=r.parent;for(;y&&!y.tableId;)y=y.parent;return y}),{registerNormalWatchers:a,registerComplexWatchers:o}=mV(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g}=yV(e,t,i),m=c.value;s.value=`${m.tableId||m.columnId}_column_${bV++}`,Bd(()=>{l.value=i.value!==m;const y=e.type||"default",_=e.sortable===""?!0:e.sortable,b={...dV[y],id:s.value,type:y,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:_,index:e.index,rawColumnKey:r.vnode.key};let T=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);T=wW(b,T),T=xW(h,f,d)(T),n.value=T,a(),o()}),Mt(()=>{var y;const _=c.value,b=l.value?_.vnode.el.children:(y=_.refs.hiddenColumns)==null?void 0:y.children,S=()=>p(b||[],r.vnode.el);n.value.getColumnIndex=S,S()>-1&&i.value.store.commit("insertColumn",n.value,l.value?_.columnConfig.value:null)}),nr(()=>{i.value.store.commit("removeColumn",n.value,l.value?m.columnConfig.value:null)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===yt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!ze(s==null?void 0:s.children)&&i.push(s)});return Ce("div",i)}catch{return Ce("div",[])}}});const wV=hr(cV,{TableColumn:dA}),SV=la(dA),hA=["success","info","warning","error"],mr=ja({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Ot?document.body:void 0}),xV=rt({customClass:{type:String,default:mr.customClass},center:{type:Boolean,default:mr.center},dangerouslyUseHTMLString:{type:Boolean,default:mr.dangerouslyUseHTMLString},duration:{type:Number,default:mr.duration},icon:{type:Wn,default:mr.icon},id:{type:String,default:mr.id},message:{type:Pe([String,Object,Function]),default:mr.message},onClose:{type:Pe(Function),required:!1},showClose:{type:Boolean,default:mr.showClose},type:{type:String,values:hA,default:mr.type},offset:{type:Number,default:mr.offset},zIndex:{type:Number,default:mr.zIndex},grouping:{type:Boolean,default:mr.grouping},repeatNum:{type:Number,default:mr.repeatNum}}),CV={destroy:()=>!0},Vn=xC([]),TV=e=>{const t=Vn.findIndex(i=>i.id===e),r=Vn[t];let n;return t>0&&(n=Vn[t-1]),{current:r,prev:n}},MV=e=>{const{prev:t}=TV(e);return t?t.vm.exposed.bottom.value:0},AV=["id"],EV=["innerHTML"],PV=ce({name:"ElMessage"}),LV=ce({...PV,props:xV,emits:CV,setup(e,{expose:t}){const r=e,{Close:n}=g3,i=Be("message"),a=H(),o=H(!1),s=H(0);let l;const u=$(()=>r.type?r.type==="error"?"danger":r.type:"info"),c=$(()=>{const b=r.type;return{[i.bm("icon",b)]:b&&wb[b]}}),f=$(()=>r.icon||wb[r.type]||""),d=$(()=>MV(r.id)),h=$(()=>r.offset+d.value),v=$(()=>s.value+h.value),p=$(()=>({top:`${h.value}px`,zIndex:r.zIndex}));function g(){r.duration!==0&&({stop:l}=Wp(()=>{y()},r.duration))}function m(){l==null||l()}function y(){o.value=!1}function _({code:b}){b===Lt.esc&&y()}return Mt(()=>{g(),o.value=!0}),xe(()=>r.repeatNum,()=>{m(),g()}),Sn(document,"keydown",_),ms(a,()=>{s.value=a.value.getBoundingClientRect().height}),t({visible:o,bottom:v,close:y}),(b,S)=>(U(),me(Qn,{name:P(i).b("fade"),onBeforeLeave:b.onClose,onAfterLeave:S[0]||(S[0]=w=>b.$emit("destroy")),persisted:""},{default:Z(()=>[qt(ae("div",{id:b.id,ref_key:"messageRef",ref:a,class:le([P(i).b(),{[P(i).m(b.type)]:b.type&&!b.icon},P(i).is("center",b.center),P(i).is("closable",b.showClose),b.customClass]),style:St(P(p)),role:"alert",onMouseenter:m,onMouseleave:g},[b.repeatNum>1?(U(),me(P(lz),{key:0,value:b.repeatNum,type:P(u),class:le(P(i).e("badge"))},null,8,["value","type","class"])):ke("v-if",!0),P(f)?(U(),me(P(lr),{key:1,class:le([P(i).e("icon"),P(c)])},{default:Z(()=>[(U(),me(nn(P(f))))]),_:1},8,["class"])):ke("v-if",!0),Fe(b.$slots,"default",{},()=>[b.dangerouslyUseHTMLString?(U(),ye(yt,{key:1},[ke(" Caution here, message could've been compromised, never use user's input as message "),ae("p",{class:le(P(i).e("content")),innerHTML:b.message},null,10,EV)],2112)):(U(),ye("p",{key:0,class:le(P(i).e("content"))},Me(b.message),3))]),b.showClose?(U(),me(P(lr),{key:2,class:le(P(i).e("closeBtn")),onClick:jf(y,["stop"])},{default:Z(()=>[ee(P(n))]),_:1},8,["class","onClick"])):ke("v-if",!0)],46,AV),[[mi,o.value]])]),_:3},8,["name","onBeforeLeave"]))}});var DV=Xe(LV,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let IV=1;const vA=e=>{const t=!e||ze(e)||Ji(e)||Le(e)?{message:e}:e,r={...mr,...t};if(!r.appendTo)r.appendTo=document.body;else if(ze(r.appendTo)){let n=document.querySelector(r.appendTo);ys(n)||(n=document.body),r.appendTo=n}return r},OV=e=>{const t=Vn.indexOf(e);if(t===-1)return;Vn.splice(t,1);const{handler:r}=e;r.close()},RV=({appendTo:e,...t},r)=>{const{nextZIndex:n}=Ty(),i=`message_${IV++}`,a=t.onClose,o=document.createElement("div"),s={...t,zIndex:n()+t.zIndex,id:i,onClose:()=>{a==null||a(),OV(f)},onDestroy:()=>{A_(null,o)}},l=ee(DV,s,Le(s.message)||Ji(s.message)?{default:Le(s.message)?s.message:()=>s.message}:null);l.appContext=r||Ms._context,A_(l,o),e.appendChild(o.firstElementChild);const u=l.component,f={id:i,vnode:l,vm:u,handler:{close:()=>{u.exposed.visible.value=!1}},props:l.component.props};return f},Ms=(e={},t)=>{if(!Ot)return{close:()=>{}};if(Yt(ag.max)&&Vn.length>=ag.max)return{close:()=>{}};const r=vA(e);if(r.grouping&&Vn.length){const i=Vn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=RV(r,t);return Vn.push(n),n.handler};hA.forEach(e=>{Ms[e]=(t={},r)=>{const n=vA(t);return Ms({...n,type:e},r)}});function kV(e){for(const t of Vn)(!e||e===t.props.type)&&t.handler.close()}Ms.closeAll=kV;Ms._context=null;const pA=m3(Ms,"$message"),NV={id:"app"},BV={class:"grid-content header-color"},FV={class:"header-content"},$V=ae("div",{class:"brand"},[ae("a",{href:"#"},"frp")],-1),HV={class:"dark-switch"},zV=ae("span",null,"Proxies",-1),WV={id:"content"},VV=ae("footer",null,null,-1),GV=ce({__name:"App",setup(e){const t=o5(),r=H(t),n=A$(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=pW,l=z8,u=W8,c=H8,f=YM,d=_r("router-view"),h=rA;return U(),ye("div",NV,[ae("header",BV,[ae("div",FV,[$V,ae("div",HV,[ee(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:P(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ae("section",null,[ee(h,null,{default:Z(()=>[ee(f,{id:"side-nav",xs:24,md:4},{default:Z(()=>[ee(c,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:Z(()=>[ee(l,{index:"/"},{default:Z(()=>[Nt("Overview")]),_:1}),ee(u,{index:"/proxies"},{title:Z(()=>[zV]),default:Z(()=>[ee(l,{index:"/proxies/tcp"},{default:Z(()=>[Nt("TCP")]),_:1}),ee(l,{index:"/proxies/udp"},{default:Z(()=>[Nt("UDP")]),_:1}),ee(l,{index:"/proxies/http"},{default:Z(()=>[Nt("HTTP")]),_:1}),ee(l,{index:"/proxies/https"},{default:Z(()=>[Nt("HTTPS")]),_:1}),ee(l,{index:"/proxies/stcp"},{default:Z(()=>[Nt("STCP")]),_:1}),ee(l,{index:"/proxies/sudp"},{default:Z(()=>[Nt("SUDP")]),_:1})]),_:1}),ee(l,{index:""},{default:Z(()=>[Nt("Help")]),_:1})]),_:1})]),_:1}),ee(f,{xs:24,md:20},{default:Z(()=>[ae("div",WV,[ee(d)])]),_:1})]),_:1})]),VV])}}});/*! - * vue-router v4.1.6 - * (c) 2022 Eduardo San Martin Morote - * @license MIT - */const qo=typeof window<"u";function UV(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const st=Object.assign;function Kh(e,t){const r={};for(const n in t){const i=t[n];r[n]=En(i)?i.map(e):e(i)}return r}const Fl=()=>{},En=Array.isArray,jV=/\/$/,YV=e=>e.replace(jV,"");function Xh(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=ZV(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function qV(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function d1(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function KV(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&As(t.matched[n],r.matched[i])&&gA(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function As(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function gA(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!XV(e[r],t[r]))return!1;return!0}function XV(e,t){return En(e)?h1(e,t):En(t)?h1(t,e):e===t}function h1(e,t){return En(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function ZV(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/");let i=r.length-1,a,o;for(a=0;a1&&i--;else break;return r.slice(0,i).join("/")+"/"+n.slice(a-(a===n.length?1:0)).join("/")}var mu;(function(e){e.pop="pop",e.push="push"})(mu||(mu={}));var $l;(function(e){e.back="back",e.forward="forward",e.unknown=""})($l||($l={}));function QV(e){if(!e)if(qo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),YV(e)}const JV=/^[^#]+#/;function eG(e,t){return e.replace(JV,"#")+t}function tG(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const Jd=()=>({left:window.pageXOffset,top:window.pageYOffset});function rG(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=tG(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function v1(e,t){return(history.state?history.state.position-t:-1)+e}const hg=new Map;function nG(e,t){hg.set(e,t)}function iG(e){const t=hg.get(e);return hg.delete(e),t}let aG=()=>location.protocol+"//"+location.host;function mA(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),d1(l,"")}return d1(r,e)+n+i}function oG(e,t,r,n){let i=[],a=[],o=null;const s=({state:d})=>{const h=mA(e,location),v=r.value,p=t.value;let g=0;if(d){if(r.value=h,t.value=d,o&&o===v){o=null;return}g=p?d.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,v,{delta:g,type:mu.pop,direction:g?g>0?$l.forward:$l.back:$l.unknown})})};function l(){o=r.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return a.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(st({},d.state,{scroll:Jd()}),"")}function f(){for(const d of a)d();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",c),{pauseListeners:l,listen:u,destroy:f}}function p1(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?Jd():null}}function sG(e){const{history:t,location:r}=window,n={value:mA(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,c){const f=e.indexOf("#"),d=f>-1?(r.host&&document.querySelector("base")?e:e.slice(f))+l:aG()+e+l;try{t[c?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),r[c?"replace":"assign"](d)}}function o(l,u){const c=st({},t.state,p1(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,c,!0),n.value=l}function s(l,u){const c=st({},i.value,t.state,{forward:l,scroll:Jd()});a(c.current,c,!0);const f=st({},p1(n.value,l,null),{position:c.position+1},u);a(l,f,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function lG(e){e=QV(e);const t=sG(e),r=oG(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=st({location:"",base:e,go:n,createHref:eG.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function uG(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),lG(e)}function cG(e){return typeof e=="string"||e&&typeof e=="object"}function yA(e){return typeof e=="string"||typeof e=="symbol"}const Di={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},_A=Symbol("");var g1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(g1||(g1={}));function Es(e,t){return st(new Error,{type:e,[_A]:!0},t)}function ai(e,t){return e instanceof Error&&_A in e&&(t==null||!!(e.type&t))}const m1="[^/]+?",fG={sensitive:!1,strict:!1,start:!0,end:!0},dG=/[.+*?^${}()[\]/\\]/g;function hG(e,t){const r=st({},fG,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const c=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function pG(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const gG={type:0,value:""},mG=/[a-zA-Z0-9_]/;function yG(e){if(!e)return[[]];if(e==="/")return[[gG]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",c="";function f(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{o(y)}:Fl}function o(c){if(yA(c)){const f=n.get(c);f&&(n.delete(c),r.splice(r.indexOf(f),1),f.children.forEach(o),f.alias.forEach(o))}else{const f=r.indexOf(c);f>-1&&(r.splice(f,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return r}function l(c){let f=0;for(;f=0&&(c.record.path!==r[f].record.path||!bA(c,r[f]));)f++;r.splice(f,0,c),c.record.name&&!b1(c)&&n.set(c.record.name,c)}function u(c,f){let d,h={},v,p;if("name"in c&&c.name){if(d=n.get(c.name),!d)throw Es(1,{location:c});p=d.record.name,h=st(_1(f.params,d.keys.filter(y=>!y.optional).map(y=>y.name)),c.params&&_1(c.params,d.keys.map(y=>y.name))),v=d.stringify(h)}else if("path"in c)v=c.path,d=r.find(y=>y.re.test(v)),d&&(h=d.parse(v),p=d.record.name);else{if(d=f.name?n.get(f.name):r.find(y=>y.re.test(f.path)),!d)throw Es(1,{location:c,currentLocation:f});p=d.record.name,h=st({},f.params,c.params),v=d.stringify(h)}const g=[];let m=d;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:v,params:h,matched:g,meta:xG(g)}}return e.forEach(c=>a(c)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function _1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function wG(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:SG(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function SG(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="boolean"?r:r[n];return t}function b1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function xG(e){return e.reduce((t,r)=>st(t,r.meta),{})}function w1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function bA(e,t){return t.children.some(r=>r===e||bA(e,r))}const wA=/#/g,CG=/&/g,TG=/\//g,MG=/=/g,AG=/\?/g,SA=/\+/g,EG=/%5B/g,PG=/%5D/g,xA=/%5E/g,LG=/%60/g,CA=/%7B/g,DG=/%7C/g,TA=/%7D/g,IG=/%20/g;function Oy(e){return encodeURI(""+e).replace(DG,"|").replace(EG,"[").replace(PG,"]")}function OG(e){return Oy(e).replace(CA,"{").replace(TA,"}").replace(xA,"^")}function vg(e){return Oy(e).replace(SA,"%2B").replace(IG,"+").replace(wA,"%23").replace(CG,"%26").replace(LG,"`").replace(CA,"{").replace(TA,"}").replace(xA,"^")}function RG(e){return vg(e).replace(MG,"%3D")}function kG(e){return Oy(e).replace(wA,"%23").replace(AG,"%3F")}function NG(e){return e==null?"":kG(e).replace(TG,"%2F")}function td(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function BG(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&vg(a)):[n&&vg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function FG(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=En(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const $G=Symbol(""),x1=Symbol(""),Ry=Symbol(""),MA=Symbol(""),pg=Symbol("");function Xs(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function Wi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=f=>{f===!1?s(Es(4,{from:r,to:t})):f instanceof Error?s(f):cG(f)?s(Es(2,{from:t,to:f})):(a&&n.enterCallbacks[i]===a&&typeof f=="function"&&a.push(f),o())},u=e.call(n&&n.instances[i],t,r,l);let c=Promise.resolve(u);e.length<3&&(c=c.then(l)),c.catch(f=>s(f))})}function Zh(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(HG(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Wi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const c=UV(u)?u.default:u;a.components[o]=c;const d=(c.__vccOpts||c)[t];return d&&Wi(d,r,n,a,o)()}))}}return i}function HG(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function C1(e){const t=Oe(Ry),r=Oe(MA),n=$(()=>t.resolve(P(e.to))),i=$(()=>{const{matched:l}=n.value,{length:u}=l,c=l[u-1],f=r.matched;if(!c||!f.length)return-1;const d=f.findIndex(As.bind(null,c));if(d>-1)return d;const h=T1(l[u-2]);return u>1&&T1(c)===h&&f[f.length-1].path!==h?f.findIndex(As.bind(null,l[u-2])):d}),a=$(()=>i.value>-1&&GG(r.params,n.value.params)),o=$(()=>i.value>-1&&i.value===r.matched.length-1&&gA(r.params,n.value.params));function s(l={}){return VG(l)?t[P(e.replace)?"replace":"push"](P(e.to)).catch(Fl):Promise.resolve()}return{route:n,href:$(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const zG=ce({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:C1,setup(e,{slots:t}){const r=fn(C1(e)),{options:n}=Oe(Ry),i=$(()=>({[M1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[M1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:Ce("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),WG=zG;function VG(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function GG(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!En(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function T1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const M1=(e,t,r)=>e??t??r,UG=ce({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Oe(pg),i=$(()=>e.route||n.value),a=Oe(x1,0),o=$(()=>{let u=P(a);const{matched:c}=i.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),s=$(()=>i.value.matched[o.value]);Tt(x1,$(()=>o.value+1)),Tt($G,s),Tt(pg,i);const l=H();return xe(()=>[l.value,s.value,e.name],([u,c,f],[d,h,v])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!As(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,c=e.name,f=s.value,d=f&&f.components[c];if(!d)return A1(r.default,{Component:d,route:u});const h=f.props[c],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,g=Ce(d,st({},v,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return A1(r.default,{Component:g,route:u})||g}}});function A1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const jG=UG;function YG(e){const t=bG(e.routes,e),r=e.parseQuery||BG,n=e.stringifyQuery||S1,i=e.history,a=Xs(),o=Xs(),s=Xs(),l=EC(Di);let u=Di;qo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Kh.bind(null,V=>""+V),f=Kh.bind(null,NG),d=Kh.bind(null,td);function h(V,J){let W,Y;return yA(V)?(W=t.getRecordMatcher(V),Y=J):Y=V,t.addRoute(Y,W)}function v(V){const J=t.getRecordMatcher(V);J&&t.removeRoute(J)}function p(){return t.getRoutes().map(V=>V.record)}function g(V){return!!t.getRecordMatcher(V)}function m(V,J){if(J=st({},J||l.value),typeof V=="string"){const L=Xh(r,V,J.path),I=t.resolve({path:L.path},J),z=i.createHref(L.fullPath);return st(L,I,{params:d(I.params),hash:td(L.hash),redirectedFrom:void 0,href:z})}let W;if("path"in V)W=st({},V,{path:Xh(r,V.path,J.path).path});else{const L=st({},V.params);for(const I in L)L[I]==null&&delete L[I];W=st({},V,{params:f(V.params)}),J.params=f(J.params)}const Y=t.resolve(W,J),ue=V.hash||"";Y.params=c(d(Y.params));const he=qV(n,st({},V,{hash:OG(ue),path:Y.path})),Q=i.createHref(he);return st({fullPath:he,hash:ue,query:n===S1?FG(V.query):V.query||{}},Y,{redirectedFrom:void 0,href:Q})}function y(V){return typeof V=="string"?Xh(r,V,l.value.path):st({},V)}function _(V,J){if(u!==V)return Es(8,{from:J,to:V})}function b(V){return x(V)}function S(V){return b(st(y(V),{replace:!0}))}function w(V){const J=V.matched[V.matched.length-1];if(J&&J.redirect){const{redirect:W}=J;let Y=typeof W=="function"?W(V):W;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=y(Y):{path:Y},Y.params={}),st({query:V.query,hash:V.hash,params:"path"in Y?{}:V.params},Y)}}function x(V,J){const W=u=m(V),Y=l.value,ue=V.state,he=V.force,Q=V.replace===!0,L=w(W);if(L)return x(st(y(L),{state:typeof L=="object"?st({},ue,L.state):ue,force:he,replace:Q}),J||W);const I=W;I.redirectedFrom=J;let z;return!he&&KV(n,Y,W)&&(z=Es(16,{to:I,from:Y}),j(Y,Y,!0,!1)),(z?Promise.resolve(z):T(I,Y)).catch(G=>ai(G)?ai(G,2)?G:N(G):K(G,I,Y)).then(G=>{if(G){if(ai(G,2))return x(st({replace:Q},y(G.to),{state:typeof G.to=="object"?st({},ue,G.to.state):ue,force:he}),J||I)}else G=A(I,Y,!0,Q,ue);return E(I,Y,G),G})}function C(V,J){const W=_(V,J);return W?Promise.reject(W):Promise.resolve()}function T(V,J){let W;const[Y,ue,he]=qG(V,J);W=Zh(Y.reverse(),"beforeRouteLeave",V,J);for(const L of Y)L.leaveGuards.forEach(I=>{W.push(Wi(I,V,J))});const Q=C.bind(null,V,J);return W.push(Q),Io(W).then(()=>{W=[];for(const L of a.list())W.push(Wi(L,V,J));return W.push(Q),Io(W)}).then(()=>{W=Zh(ue,"beforeRouteUpdate",V,J);for(const L of ue)L.updateGuards.forEach(I=>{W.push(Wi(I,V,J))});return W.push(Q),Io(W)}).then(()=>{W=[];for(const L of V.matched)if(L.beforeEnter&&!J.matched.includes(L))if(En(L.beforeEnter))for(const I of L.beforeEnter)W.push(Wi(I,V,J));else W.push(Wi(L.beforeEnter,V,J));return W.push(Q),Io(W)}).then(()=>(V.matched.forEach(L=>L.enterCallbacks={}),W=Zh(he,"beforeRouteEnter",V,J),W.push(Q),Io(W))).then(()=>{W=[];for(const L of o.list())W.push(Wi(L,V,J));return W.push(Q),Io(W)}).catch(L=>ai(L,8)?L:Promise.reject(L))}function E(V,J,W){for(const Y of s.list())Y(V,J,W)}function A(V,J,W,Y,ue){const he=_(V,J);if(he)return he;const Q=J===Di,L=qo?history.state:{};W&&(Y||Q?i.replace(V.fullPath,st({scroll:Q&&L&&L.scroll},ue)):i.push(V.fullPath,ue)),l.value=V,j(V,J,W,Q),N()}let M;function D(){M||(M=i.listen((V,J,W)=>{if(!Ee.listening)return;const Y=m(V),ue=w(Y);if(ue){x(st(ue,{replace:!0}),Y).catch(Fl);return}u=Y;const he=l.value;qo&&nG(v1(he.fullPath,W.delta),Jd()),T(Y,he).catch(Q=>ai(Q,12)?Q:ai(Q,2)?(x(Q.to,Y).then(L=>{ai(L,20)&&!W.delta&&W.type===mu.pop&&i.go(-1,!1)}).catch(Fl),Promise.reject()):(W.delta&&i.go(-W.delta,!1),K(Q,Y,he))).then(Q=>{Q=Q||A(Y,he,!1),Q&&(W.delta&&!ai(Q,8)?i.go(-W.delta,!1):W.type===mu.pop&&ai(Q,20)&&i.go(-1,!1)),E(Y,he,Q)}).catch(Fl)}))}let R=Xs(),k=Xs(),F;function K(V,J,W){N(V);const Y=k.list();return Y.length?Y.forEach(ue=>ue(V,J,W)):console.error(V),Promise.reject(V)}function B(){return F&&l.value!==Di?Promise.resolve():new Promise((V,J)=>{R.add([V,J])})}function N(V){return F||(F=!V,D(),R.list().forEach(([J,W])=>V?W(V):J()),R.reset()),V}function j(V,J,W,Y){const{scrollBehavior:ue}=e;if(!qo||!ue)return Promise.resolve();const he=!W&&iG(v1(V.fullPath,0))||(Y||!W)&&history.state&&history.state.scroll||null;return Rt().then(()=>ue(V,J,he)).then(Q=>Q&&rG(Q)).catch(Q=>K(Q,V,J))}const re=V=>i.go(V);let oe;const _e=new Set,Ee={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,hasRoute:g,getRoutes:p,resolve:m,options:e,push:b,replace:S,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:k.add,isReady:B,install(V){const J=this;V.component("RouterLink",WG),V.component("RouterView",jG),V.config.globalProperties.$router=J,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>P(l)}),qo&&!oe&&l.value===Di&&(oe=!0,b(i.location).catch(ue=>{}));const W={};for(const ue in Di)W[ue]=$(()=>l.value[ue]);V.provide(Ry,J),V.provide(MA,fn(W)),V.provide(pg,l);const Y=V.unmount;_e.add(V),V.unmount=function(){_e.delete(V),_e.size<1&&(u=Di,M&&M(),M=null,l.value=Di,oe=!1,F=!1),Y()}}};return Ee}function Io(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function qG(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oAs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>As(u,l))||i.push(l))}return[r,n,i]}var na={},KG={get exports(){return na},set exports(e){na=e}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(Rz,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(f){return typeof f<"u"&&f!==null},o=function(f){return f!==f},s=function(f){return isFinite(f)&&!o(parseFloat(f))},l=function(f){var d=Object.prototype.toString.call(f);return d==="[object Array]"},u={intword:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(f,h)},compactInteger:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1];d=Math.max(d,0);var h=parseInt(f,10),v=h<0?"-":"",p=Math.abs(h),g=String(p),m=g.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+g;if(m>y[0]+3)return h.toExponential(d).replace("e+","x10^");for(var b=void 0,S=0;S=w){b=w;break}}var x=m-b+1,C=g.split(""),T=C.slice(0,x),E=C.slice(x,x+d+1),A=T.join(""),M=E.join("");M.length=v)return u.formatNumber(f/v,d,"")+" "+h+"B"}return f>=1024?u.formatNumber(f/1024,0)+" KB":u.formatNumber(f,0)+u.pluralize(f," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1],h=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(x,C,T){return T?x.substr(0,T)+C:""},g=function(x,C,T){return x.substr(T).replace(/(\d{3})(?=\d)/g,"$1"+C)},m=function(x,C,T){return T?C+u.toFixed(Math.abs(x),T).split(".")[1]:""},y=u.normalizePrecision(d),_=f<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(f||0),y),10)),S=b.length>3?b.length%3:0;return _+p(b,h,S)+g(b,h,S)+m(f,v,y)},toFixed:function(f,d){d=a(d)?d:u.normalizePrecision(d,0);var h=Math.pow(10,d);return(Math.round(f*h)/h).toFixed(d)},normalizePrecision:function(f,d){return f=Math.round(Math.abs(f)),o(f)?d:f},ordinal:function(f){var d=parseInt(f,10);if(d===0)return f;var h=d%100;if([11,12,13].indexOf(h)>=0)return d+"th";var v=d%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+d+p},times:function(f){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(f)&&f>=0){var h=parseFloat(f),v=["never","once","twice"];if(a(d[h]))return String(d[h]);var p=a(v[h])&&v[h].toString();return p||h.toString()+" times"}return null},pluralize:function(f,d,h){return a(f)&&a(d)?(h=a(h)?h:d+"s",parseInt(f,10)===1?d:h):null},truncate:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return f.length>d?f.substring(0,d-h.length)+h:f},truncateWords:function(f,d){for(var h=f.split(" "),v="",p=0;pd?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(f)&&s(d)&&f>d&&(v=d+h),(v||f).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(f,d,h){var v=f.length,p=void 0;if(v<2)return String(f);if(v===2)return f.join(" and ");if(a(d)&&v>d){var g=v-d;p=d,h=a(h)?h:", and "+g+" "+u.pluralize(g,"other")}else p=-1,h=", and "+f[v-1];return f.slice(0,p).join(", ")+h},dictionary:function(f){var d=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],h=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(f)&&(typeof f>"u"?"undefined":r(f))==="object"&&!l(f)){var p=[];for(var g in f)if(f.hasOwnProperty(g)){var m=f[g];p.push(""+g+d+m)}return p.join(h)}return v},frequency:function(f,d){if(!l(f))return null;var h=f.length,v=u.times(h);return h===0?v+" "+d:d+" "+v},pace:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(f===0||d===0)return"No "+u.pluralize(0,h);for(var v="Approximately",p=void 0,g=void 0,m=f/d,y=0;y1){p=_.name;break}}p||(v="Less than",g=1,p=n[n.length-1].name);var b=Math.round(g);return h=u.pluralize(b,h),v+" "+b+" "+h+" per "+p},nl2br:function(f){var d=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return f.replace(/\n/g,d)},br2nl:function(f){var d=arguments.length<=1||arguments[1]===void 0?`\r -`:arguments[1];return f.replace(/\/g,d)},capitalize:function(f){var d=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+f.charAt(0).toUpperCase()+(d?f.slice(1).toLowerCase():f.slice(1))},capitalizeAll:function(f){return f.replace(/(?:^|\s)\S/g,function(d){return d.toUpperCase()})},titleCase:function(f){var d=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,h=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,g=void 0;return g=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],S=[],w=y.split(_?p:v),x=0;x"u"&&typeof self<"u"?Wa.worker=!0:typeof navigator>"u"?(Wa.node=!0,Wa.svgSupported=!0):QG(navigator.userAgent,Wa);function QG(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ue=Wa;var ky=12,JG="sans-serif",mo=ky+"px "+JG,eU=20,tU=100,rU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function nU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function PU(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),f=2*u,d=c.left,h=c.top;o.push(d,h),l=l&&a&&d===a[f]&&h===a[f+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?D1(s,o):D1(o,s))}function RA(e){return e.nodeName.toUpperCase()==="CANVAS"}var LU=/([&<>"'])/g,DU={"&":"&","<":"<",">":">",'"':""","'":"'"};function Zr(e){return e==null?"":(e+"").replace(LU,function(t,r){return DU[r]})}var IU=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,tv=[],OU=Ue.browser.firefox&&+Ue.browser.version.split(".")[0]<39;function xg(e,t,r,n){return r=r||{},n?O1(e,t,r):OU&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):O1(e,t,r),r}function O1(e,t,r){if(Ue.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(RA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Sg(tv,e,n,i)){r.zrX=tv[0],r.zrY=tv[1];return}}r.zrX=r.zrY=0}function Hy(e){return e||window.event}function Yr(e,t,r){if(t=Hy(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&xg(e,o,t,r)}else{xg(e,t,t,r);var a=RU(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&IU.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function RU(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function kU(e,t,r,n){e.addEventListener(t,r,n)}function NU(e,t,r,n){e.removeEventListener(t,r,n)}var kA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},BU=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=R1(n)/R1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=FU(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function _u(){return[1,0,0,1,0,0]}function zy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function $U(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function us(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Cg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function Wy(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),c=Math.cos(r);return e[0]=n*c+o*u,e[1]=-n*u+o*c,e[2]=i*c+s*u,e[3]=-i*u+c*s,e[4]=c*a+u*l,e[5]=c*l-u*a,e}function HU(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function nh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var zU=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const Ne=zU;var Sc=Math.min,xc=Math.max,ga=new Ne,ma=new Ne,ya=new Ne,_a=new Ne,Zs=new Ne,Qs=new Ne,WU=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=Sc(t.x,this.x),n=Sc(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=xc(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=xc(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=_u();return Cg(a,a,[-r.x,-r.y]),HU(a,a,[n,i]),Cg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,c=t.y,f=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}ga.x=ya.x=r.x,ga.y=_a.y=r.y,ma.x=_a.x=r.x+r.width,ma.y=ya.y=r.y+r.height,ga.transform(n),_a.transform(n),ma.transform(n),ya.transform(n),t.x=Sc(ga.x,ma.x,ya.x,_a.x),t.y=Sc(ga.y,ma.y,ya.y,_a.y);var l=xc(ga.x,ma.x,ya.x,_a.x),u=xc(ga.y,ma.y,ya.y,_a.y);t.width=l-t.x,t.height=u-t.y},e}();const tt=WU;var NA="silent";function VU(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:GU}}function GU(){kA(this.event)}var UU=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ri),Js=function(){function e(t,r){this.x=t,this.y=r}return e}(),jU=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],nv=new tt(0,0,0,0),BA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new Js(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new UU,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new CU(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(O(jU,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=FA(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new Js(n,i):this.findHover(n,i),u=l.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new Js(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=VU(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new Js(r,n);if(k1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,c=new tt(r-u,n-u,l,l),f=a.length-1;f>=0;f--){var d=a[f];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(nv.copy(d.getBoundingRect()),d.transform&&nv.applyTransform(d.transform),nv.intersect(c)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function YU(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?NA:!0}return!1}function k1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=YU(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==NA)){t.target=o;break}}}function FA(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const qU=BA;var $A=32,el=7;function KU(e){for(var t=0;e>=$A;)t|=e&1,e>>=1;return e+t}function N1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function XU(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function iv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+c])>0?o=c+1:l=c}return l}function av(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+c])<0?l=c:o=c+1}return l}function ZU(e,t){var r=el,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;c(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=el||x>=el);if(C)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[S+m];e[b]=o[_];return}for(var x=r;;){var C=0,T=0,E=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,T=0,--v===0){E=!0;break}}else if(e[b--]=o[_--],T++,C=0,--g===1){E=!0;break}while((C|T)=0;m--)e[w+m]=e[S+m];if(v===0){E=!0;break}}if(e[b--]=o[_--],--g===1){E=!0;break}if(T=g-iv(e[y],o,0,g,g-1,t),T!==0){for(b-=T,_-=T,g-=T,w=b+1,S=_+1,m=0;m=el||T>=el);if(E)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,S=y+1,m=v-1;m>=0;m--)e[w+m]=e[S+m];e[b]=o[_]}else{if(g===0)throw new Error;for(S=b-(g-1),m=0;ms&&(l=s),B1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Or=1,bl=2,Ko=4,F1=!1;function ov(){F1||(F1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function $1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var QU=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=$1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(c.__clipPaths=[]),isNaN(c.z)&&(ov(),c.z=0),isNaN(c.z2)&&(ov(),c.z2=0),isNaN(c.zlevel)&&(ov(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var f=t.getDecalElement&&t.getDecalElement();f&&this._updateAndAddDisplayable(f,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const JU=QU;var HA;HA=Ue.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Tg=HA;var Af={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-Af.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?Af.bounceIn(e*2)*.5:Af.bounceOut(e*2-1)*.5+.5}};const zA=Af;var Cc=Math.pow,Xi=Math.sqrt,id=1e-8,WA=1e-4,H1=Xi(3),Tc=1/3,Hn=$s(),Qr=$s(),cs=$s();function Ui(e){return e>-id&&eid||e<-id}function Gt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function z1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function GA(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,c=s*s-3*o*l,f=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Ui(c)&&Ui(f))if(Ui(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=f*f-4*c*d;if(Ui(p)){var g=f/c,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Xi(p),_=c*s+1.5*o*(-f+y),b=c*s+1.5*o*(-f-y);_<0?_=-Cc(-_,Tc):_=Cc(_,Tc),b<0?b=-Cc(-b,Tc):b=Cc(b,Tc);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var S=(2*c*s-3*o*f)/(2*Xi(c*c*c)),w=Math.acos(S)/3,x=Xi(c),C=Math.cos(w),v=(-s-2*x*C)/(3*o),m=(-s+x*(C+H1*Math.sin(w)))/(3*o),T=(-s+x*(C-H1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),T>=0&&T<=1&&(a[h++]=T)}}return h}function UA(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Ui(o)){if(VA(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(Ui(c))i[0]=-a/(2*o);else if(c>0){var f=Xi(c),u=(-a+f)/(2*o),d=(-a-f)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function ad(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,c=(l-s)*i+s,f=(c-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=f,a[4]=f,a[5]=c,a[6]=l,a[7]=n}function jA(e,t,r,n,i,a,o,s,l,u,c){var f,d=.005,h=1/0,v,p,g,m;Hn[0]=l,Hn[1]=u;for(var y=0;y<1;y+=.05)Qr[0]=Gt(e,r,i,o,y),Qr[1]=Gt(t,n,a,s,y),g=ls(Hn,Qr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(Ui(c)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var f=Xi(c),u=(-o+f)/(2*a),d=(-o-f)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function YA(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function od(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function qA(e,t,r,n,i,a,o,s,l){var u,c=.005,f=1/0;Hn[0]=o,Hn[1]=s;for(var d=0;d<1;d+=.05){Qr[0]=Jt(e,r,i,d),Qr[1]=Jt(t,n,a,d);var h=ls(Hn,Qr);h=0&&h=1?1:GA(0,n,a,1,l,s)&&Gt(0,i,o,1,s[0])}}}var i9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Tr,this.ondestroy=t.ondestroy||Tr,this.onrestart=t.onrestart||Tr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ge(t)?t:zA[t]||KA(t)},e}();const a9=i9;var XA=function(){function e(t){this.value=t}return e}(),o9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new XA(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),s9=function(){function e(t){this._list=new o9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new XA(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const Xu=s9;var V1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Wl(e){return e=Math.round(e),e<0?0:e>255?255:e}function G1(e){return e<0?0:e>1?1:e}function sv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Wl(parseFloat(t)/100*255):Wl(parseInt(t,10))}function Vl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?G1(parseFloat(t)/100):G1(parseFloat(t))}function lv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function jr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Mg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var ZA=new Xu(20),Mc=null;function Ro(e,t){Mc&&Mg(Mc,t),Mc=ZA.put(e,Mc||t.slice())}function oo(e,t){if(e){t=t||[];var r=ZA.get(e);if(r)return Mg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in V1)return Mg(t,V1[n]),Ro(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){jr(t,0,0,0,1);return}return jr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Ro(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){jr(t,0,0,0,1);return}return jr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Ro(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?jr(t,+u[0],+u[1],+u[2],1):jr(t,0,0,0,1);c=Vl(u.pop());case"rgb":if(u.length>=3)return jr(t,sv(u[0]),sv(u[1]),sv(u[2]),u.length===3?c:Vl(u[3])),Ro(e,t),t;jr(t,0,0,0,1);return;case"hsla":if(u.length!==4){jr(t,0,0,0,1);return}return u[3]=Vl(u[3]),U1(u,t),Ro(e,t),t;case"hsl":if(u.length!==3){jr(t,0,0,0,1);return}return U1(u,t),Ro(e,t),t;default:return}}jr(t,0,0,0,1)}}function U1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Vl(e[1]),i=Vl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],jr(t,Wl(lv(o,a,r+1/3)*255),Wl(lv(o,a,r)*255),Wl(lv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function j1(e,t){var r=oo(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Vy(r,r.length===4?"rgba":"rgb")}}function Vy(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function sd(e,t){var r=oo(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function l9(e){return e.type==="linear"}function u9(e){return e.type==="radial"}(function(){return Ue.hasGlobalWindow&&Ge(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Ag=Array.prototype.slice;function fi(e,t,r){return(t-e)*r+e}function uv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=q1,l=r;if(Ar(r)){var u=h9(r);s=u,(u===1&&!bt(r[0])||u===2&&!bt(r[0][0]))&&(o=!0)}else if(bt(r)&&!nd(r))s=Ec;else if(Ae(r))if(!isNaN(+r))s=Ec;else{var c=oo(r);c&&(l=c,s=wl)}else if(th(r)){var f=se({},l);f.colorStops=Re(r.colorStops,function(h){return{offset:h.offset,color:oo(h.color)}}),l9(r)?s=Eg:u9(r)&&(s=Pg),l=f}a===0?this.valType=s:(s!==this.valType||s===q1)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=Ge(n)?n:zA[n]||KA(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=Pc(i),u=K1(i),c=0;c=0&&!(o[c].percent<=r);c--);c=d(c,s-2)}else{for(c=f;cr);c++);c=d(c-1,s-2)}v=o[c+1],h=o[c]}if(h&&v){this._lastFr=c,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?tl:t[l];if((Pc(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(Pc(a))a===Lf?uv(y,h[i],v[i],m):c9(y,h[i],v[i],m);else if(K1(a)){var _=h[i],b=v[i],S=a===Eg;t[l]={type:S?"linear":"radial",x:fi(_.x,b.x,m),y:fi(_.y,b.y,m),colorStops:Re(_.colorStops,function(x,C){var T=b.colorStops[C];return{offset:fi(x.offset,T.offset,m),color:Pf(uv([],x.color,T.color,m))}}),global:b.global},S?(t[l].x2=fi(_.x2,b.x2,m),t[l].y2=fi(_.y2,b.y2,m)):t[l].r=fi(_.r,b.r,m)}else if(u)uv(y,h[i],v[i],m),n||(t[l]=Pf(y));else{var w=fi(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===Ec?t[n]=t[n]+i:r===wl?(oo(t[n],tl),Ac(tl,tl,i,1),t[n]=Pf(tl)):r===Lf?Ac(t[n],t[n],i,1):r===QA&&Y1(t[n],t[n],i,1)},e}(),p9=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Fy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Ct(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Ef(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Ef(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const Gy=p9;function ts(){return new Date().getTime()}var g9=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ts()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Tg(n),!r._paused&&r.update())}Tg(n)},t.prototype.start=function(){this._running||(this._time=ts(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ts(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ts()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new Gy(r,n.loop);return this.addAnimator(i),i},t}(ri);const m9=g9;var y9=300,cv=Ue.domSupported,fv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Re(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),X1={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},Z1=!1;function Lg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function _9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function dv(e){e&&(e.zrByTouch=!0)}function b9(e,t){return Yr(e.dom,new w9(e,t),!0)}function JA(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var w9=function(){function e(t,r){this.stopPropagation=Tr,this.stopImmediatePropagation=Tr,this.preventDefault=Tr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),mn={mousedown:function(e){e=Yr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Yr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Yr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Yr(this.dom,e);var t=e.toElement||e.relatedTarget;JA(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){Z1=!0,e=Yr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){Z1||(e=Yr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Yr(this.dom,e),dv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),mn.mousemove.call(this,e),mn.mousedown.call(this,e)},touchmove:function(e){e=Yr(this.dom,e),dv(e),this.handler.processGesture(e,"change"),mn.mousemove.call(this,e)},touchend:function(e){e=Yr(this.dom,e),dv(e),this.handler.processGesture(e,"end"),mn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentew||e<-ew}var wa=[],ko=[],vv=_u(),pv=Math.abs,A9=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return ba(this.rotation)||ba(this.x)||ba(this.y)||ba(this.scaleX-1)||ba(this.scaleY-1)||ba(this.skewX)||ba(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&J1(n);return}n=n||_u(),r?this.getLocalTransform(n):J1(n),t&&(r?us(n,t,n):$U(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(wa);var n=wa[0]<0?-1:1,i=wa[1]<0?-1:1,a=((wa[0]-n)*r+n)/wa[0]||0,o=((wa[1]-i)*r+i)/wa[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||_u(),nh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(us(ko,t.invTransform,r),r=ko);var n=this.originX,i=this.originY;(n||i)&&(vv[4]=n,vv[5]=i,us(ko,r,vv),ko[4]-=n,ko[5]-=i,r=ko),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&on(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&on(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&pv(t[0]-1)>1e-10&&pv(t[3]-1)>1e-10?Math.sqrt(pv(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){E9(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,f=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&Wy(r,r,u),r[4]+=n+c,r[5]+=i+f,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),bu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function E9(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function ud(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,c="left",f="top";if(n instanceof Array)l+=aa(n[0],r.width),u+=aa(n[1],r.height),c=null,f=null;else switch(n){case"left":l-=i,u+=s,c="right",f="middle";break;case"right":l+=i+o,u+=s,f="middle";break;case"top":l+=o/2,u-=i,c="center",f="bottom";break;case"bottom":l+=o/2,u+=a+i,c="center";break;case"inside":l+=o/2,u+=s,c="center",f="middle";break;case"insideLeft":l+=i,u+=s,f="middle";break;case"insideRight":l+=o-i,u+=s,c="right",f="middle";break;case"insideTop":l+=o/2,u+=i,c="center";break;case"insideBottom":l+=o/2,u+=a-i,c="center",f="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,c="right";break;case"insideBottomLeft":l+=i,u+=a-i,f="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,c="right",f="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=c,e.verticalAlign=f,e}var gv="__zr_normal__",mv=bu.concat(["ignore"]),P9=ia(bu,function(e,t){return e[t]=!0,e},{ignore:!1}),No={},L9=new tt(0,0,0,0),Yy=function(){function e(t){this.id=PA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var c=L9;n.layoutRect?c.copy(n.layoutRect):c.copy(this.getBoundingRect()),i||c.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(No,n,c):ud(No,n,c),a.x=No.x,a.y=No.y,o=No.align,s=No.verticalAlign;var f=n.origin;if(f&&n.rotation!=null){var d=void 0,h=void 0;f==="center"?(d=c.width*.5,h=c.height*.5):(d=aa(f[0],c.width),h=aa(f[1],c.height)),u=!0,a.originX=-a.x+d+(i?0:c.x),a.originY=-a.y+h+(i?0:c.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Or,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Rg:Og},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&oo(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Vy(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},se(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(De(t))for(var n=t,i=Ct(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(gv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===gv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(at(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Fy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var c=!!(u&&u.hoverLayer||i);c&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var f=this._textContent,d=this._textGuide;return f&&f.useState(t,r,n,c),d&&d.useState(t,r,n,c),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Or),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Or)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=at(i,t),o=at(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,T=void 0,E=void 0;if(s){T={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];T[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){E={};for(var b=0;b<_;b++){var m=p[b];E[m]=Ef(r[m]),I9(r,n,m)}}var S=new Gy(r,!1,!1,f?Ht(v,function(M){return M.targetName===t}):null);S.targetName=t,i.scope&&(S.scope=i.scope),d&&C&&S.whenWithKeys(0,C,p),E&&S.whenWithKeys(0,E,p),S.whenWithKeys(u??500,s?T:n,p).delay(c||0),e.addAnimator(S,t),o.push(S)}}const r2=Yy;var n2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=at(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=at(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function pt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Ae(e)?$9(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function It(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),a2),e=(+e).toFixed(t),r?e:+e}function di(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return H9(e)}function H9(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function z9(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function W9(e,t){var r=ia(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Re(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Re(i,function(h){return Math.floor(h)}),s=ia(o,function(h,v){return h+v},0),l=Re(i,function(h,v){return h-o[v]});su&&(u=l[f],c=f);++o[c],l[c]=0,++s}return Re(o,function(h){return h/n})}function V9(e,t){var r=Math.max(di(e),di(t)),n=e+t;return r>a2?n:It(n,r)}function o2(e){var t=Math.PI*2;return(e%t+t)%t}function cd(e){return e>-iw&&e=10&&t++,t}function s2(e,t){var r=qy(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function fd(e){var t=parseFloat(e);return t==e&&(t!==0||!Ae(e)||e.indexOf("x")<=0)?t:NaN}function j9(e){return!isNaN(fd(e))}function l2(){return Math.round(Math.random()*9)}function u2(e,t){return t===0?e:u2(t,e%t)}function aw(e,t){return e==null?t:t==null?e:e*t/u2(e,t)}function br(e){throw new Error(e)}function ow(e,t,r){return(t-e)*r+e}var c2="series\0",Y9="\0_ec_\0";function cr(e){return e instanceof Array?e:e==null?[]:[e]}function Ng(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&at(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var gj=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],mj=Su(gj),yj=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return mj(this,t,r)},e}(),Bg=new Xu(50);function _j(e){if(typeof e=="string"){var t=Bg.get(e);return t&&t.image}else return e}function p2(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=Bg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!oh(t)&&a.pending.push(o)):(t=Mo.loadImage(e,lw,lw),t.__zrImageSrc=e,Bg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function lw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=Fr(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function m2(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=Fr(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?wj(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=Fr(e,n)}return e===""&&(e=t.placeholder),e}function wj(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);f=f.slice(0,v)}if(e&&a&&c!=null)for(var p=g2(c,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&Sv(r,e.substring(s,u),t,o),Sv(r,l[2],t,o,l[1]),s=wv.lastIndex}si){S>0?(y.tokens=y.tokens.slice(0,S),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var M=x.width,D=M==null||M==="auto";if(typeof M=="string"&&M.charAt(M.length-1)==="%")w.percentWidth=M,c.push(w),w.contentWidth=Fr(w.text,E);else{if(D){var R=x.backgroundColor,k=R&&R.image;k&&(k=_j(k),oh(k)&&(w.width=Math.max(w.width,k.width*A/k.height)))}var F=v&&n!=null?n-b:null;F!=null&&F0&&v+n.accumWidth>n.width&&(c=t.split(` -`),u=!0),n.accumWidth=v}else{var p=y2(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,f=p.linesWidths,c=p.lines}}else c=t.split(` -`);for(var g=0;g=33&&t<=383}var Aj=ia(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function Ej(e){return Mj(e)?!!Aj[e]:!0}function y2(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,c=0,f=0;fr:i+c+h>r){c?(s||l)&&(v?(s||(s=l,l="",u=0,c=u),a.push(s),o.push(c-u),l+=d,u+=h,s="",c=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(c),s=d,c=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}c+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(c)),a.length===1&&(c+=i),{accumWidth:c,lines:a,linesWidths:o}}var Fg="__zr_style_"+Math.round(Math.random()*10),so={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},sh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};so[Fg]=!0;var cw=["z","z2","invisible"],Pj=["invisible"],Lj=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Ct(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Lc[0]=Mv(i)*r+e,Lc[1]=Tv(i)*n+t,Dc[0]=Mv(a)*r+e,Dc[1]=Tv(a)*n+t,u(s,Lc,Dc),c(l,Lc,Dc),i=i%xa,i<0&&(i=i+xa),a=a%xa,a<0&&(a=a+xa),i>a&&!o?a+=xa:ii&&(Ic[0]=Mv(h)*r+e,Ic[1]=Tv(h)*n+t,u(s,Ic,s),c(l,Ic,l))}var it={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ca=[],Ta=[],Rn=[],Ii=[],kn=[],Nn=[],Av=Math.min,Ev=Math.max,Ma=Math.cos,Aa=Math.sin,oi=Math.abs,$g=Math.PI,$i=$g*2,Pv=typeof Float32Array<"u",rl=[];function Lv(e){var t=Math.round(e/$g*1e8)/1e8;return t%2*$g}function kj(e,t){var r=Lv(e[0]);r<0&&(r+=$i);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=$i?i=r+$i:t&&r-i>=$i?i=r-$i:!t&&r>i?i=r+($i-Lv(r-i)):t&&r0&&(this._ux=oi(n/ld/t)||0,this._uy=oi(n/ld/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(it.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=oi(t-this._xi),i=oi(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(it.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(it.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(it.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),rl[0]=i,rl[1]=a,kj(rl,o),i=rl[0],a=rl[1];var s=a-i;return this.addData(it.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Ma(a)*n+t,this._yi=Aa(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(it.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(it.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Pv&&(this.data=new Float32Array(r));for(var n=0;nc.length&&(this._expandData(),c=this.data);for(var f=0;f0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Rn[0]=Rn[1]=kn[0]=kn[1]=Number.MAX_VALUE,Ii[0]=Ii[1]=Nn[0]=Nn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||oi(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case it.C:{var b=t[d++],S=t[d++],g=t[d++],m=t[d++],w=t[d++],x=t[d++];p=e9(a,o,b,S,g,m,w,x,10),a=w,o=x;break}case it.Q:{var b=t[d++],S=t[d++],g=t[d++],m=t[d++];p=r9(a,o,b,S,g,m,10),a=g,o=m;break}case it.A:var C=t[d++],T=t[d++],E=t[d++],A=t[d++],M=t[d++],D=t[d++],R=D+M;d+=1,t[d++],v&&(s=Ma(M)*E+C,l=Aa(M)*A+T),p=Ev(E,A)*Av($i,Math.abs(D)),a=Ma(R)*E+C,o=Aa(R)*A+T;break;case it.R:{s=a=t[d++],l=o=t[d++];var k=t[d++],F=t[d++];p=k*2+F*2;break}case it.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[f++]=p,c+=p)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,c,f,d,h=r<1,v,p,g=0,m=0,y,_=0,b,S;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,S),_=0),x){case it.M:s=u=n[w++],l=c=n[w++],t.moveTo(u,c);break;case it.L:{f=n[w++],d=n[w++];var T=oi(f-u),E=oi(d-c);if(T>i||E>a){if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+f*M,c*(1-M)+d*M);break e}g+=A}t.lineTo(f,d),u=f,c=d,_=0}else{var D=T*T+E*E;D>_&&(b=f,S=d,_=D)}break}case it.C:{var R=n[w++],k=n[w++],F=n[w++],K=n[w++],B=n[w++],N=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;ad(u,R,F,B,M,Ca),ad(c,k,K,N,M,Ta),t.bezierCurveTo(Ca[1],Ta[1],Ca[2],Ta[2],Ca[3],Ta[3]);break e}g+=A}t.bezierCurveTo(R,k,F,K,B,N),u=B,c=N;break}case it.Q:{var R=n[w++],k=n[w++],F=n[w++],K=n[w++];if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;od(u,R,F,M,Ca),od(c,k,K,M,Ta),t.quadraticCurveTo(Ca[1],Ta[1],Ca[2],Ta[2]);break e}g+=A}t.quadraticCurveTo(R,k,F,K),u=F,c=K;break}case it.A:var j=n[w++],re=n[w++],oe=n[w++],_e=n[w++],Ee=n[w++],V=n[w++],J=n[w++],W=!n[w++],Y=oe>_e?oe:_e,ue=oi(oe-_e)>.001,he=Ee+V,Q=!1;if(h){var A=v[m++];g+A>y&&(he=Ee+V*(y-g)/A,Q=!0),g+=A}if(ue&&t.ellipse?t.ellipse(j,re,oe,_e,J,Ee,he,W):t.arc(j,re,Y,Ee,he,W),Q)break e;C&&(s=Ma(Ee)*oe+j,l=Aa(Ee)*_e+re),u=Ma(he)*oe+j,c=Aa(he)*_e+re;break;case it.R:s=u=n[w],l=c=n[w+1],f=n[w++],d=n[w++];var L=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(f,d),t.lineTo(f+Av(z,L),d),z-=L,z>0&&t.lineTo(f+L,d+Av(z,I)),z-=I,z>0&&t.lineTo(f+Ev(L-z,0),d+I),z-=L,z>0&&t.lineTo(f,d+Ev(I-z,0));break e}g+=A}t.rect(f,d,L,I);break;case it.Z:if(h){var A=v[m++];if(g+A>y){var M=(y-g)/A;t.lineTo(u*(1-M)+s*M,c*(1-M)+l*M);break e}g+=A}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=it,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const yo=Nj;function Bo(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+f&&c>n+f&&c>a+f&&c>s+f||ce+f&&u>r+f&&u>i+f&&u>o+f||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||c+ui&&(i+=nl);var d=Math.atan2(l,s);return d<0&&(d+=nl),d>=n&&d<=i||d+nl>=n&&d+nl<=i}function Ea(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Oi=yo.CMD,Pa=Math.PI*2,Hj=1e-4;function zj(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&Wj(),h=Gt(t,n,a,s,Xr[0]),d>1&&(v=Gt(t,n,a,s,Xr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var c=0,f=Jt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);or[0]=-l,or[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Pa-1e-4){n=0,i=Pa;var c=a?1:-1;return o>=or[0]+e&&o<=or[1]+e?c:0}if(n>i){var f=n;n=i,i=f}n<0&&(n+=Pa,i+=Pa);for(var d=0,h=0;h<2;h++){var v=or[h];if(v+e>o){var p=Math.atan2(s,v),c=a?1:-1;p<0&&(p=Pa+p),(p>=n&&p<=i||p+Pa>=n&&p+Pa<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Ea(l,u,c,f,n,i))),g&&(l=a[v],u=a[v+1],c=l,f=u),p){case Oi.M:c=a[v++],f=a[v++],l=c,u=f;break;case Oi.L:if(r){if(Bo(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Ea(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Oi.C:if(r){if(Bj(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=Vj(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Oi.Q:if(r){if(Fj(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=Gj(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Oi.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],S=a[v++],w=a[v++];v+=1;var x=!!(1-a[v++]);d=Math.cos(S)*_+m,h=Math.sin(S)*b+y,g?(c=d,f=h):s+=Ea(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if($j(m,y,b,S,S+w,x,t,C,i))return!0}else s+=Uj(m,y,b,S,S+w,x,C,i);l=Math.cos(S+w)*_+m,u=Math.sin(S+w)*b+y;break;case Oi.R:c=l=a[v++],f=u=a[v++];var T=a[v++],E=a[v++];if(d=c+T,h=f+E,r){if(Bo(c,f,d,f,t,n,i)||Bo(d,f,d,h,t,n,i)||Bo(d,h,c,h,t,n,i)||Bo(c,h,c,f,t,n,i))return!0}else s+=Ea(d,f,d,h,n,i),s+=Ea(c,h,c,f,n,i);break;case Oi.Z:if(r){if(Bo(l,u,c,f,t,n,i))return!0}else s+=Ea(l,u,c,f,n,i);l=c,u=f;break}}return!r&&!zj(u,f)&&(s+=Ea(l,u,c,f,n,i)||0),s!==0}function jj(e,t,r){return _2(e,0,!1,t,r)}function Yj(e,t,r,n){return _2(e,t,!0,r,n)}var b2=ct({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},so),qj={style:ct({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},sh.style)},Dv=bu.concat(["invisible","culling","z","z2","zlevel","parent"]),Kj=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Og:n>.2?M9:Rg}else if(r)return Rg}return Og},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Ae(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=sd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Ko)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),Yj(s,l/u,r,n)))return!0}if(this.hasFill())return jj(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Ko,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:se(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Ko)},t.prototype.createStyle=function(r){return rh(b2,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=se({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=se({},i.shape),se(u,n.shape)):(u=se({},a?this.shape:i.shape),se(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=se({},this.shape);for(var c={},f=Ct(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return rh(Xj,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Uy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(ec);w2.prototype.type="tspan";const Hg=w2;var Zj=ct({x:0,y:0},so),Qj={style:ct({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},sh.style)};function Jj(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var S2=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return rh(Zj,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=Jj(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return Qj},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new tt(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(ec);S2.prototype.type="image";const Hs=S2;function eY(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,c;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=c=o:o instanceof Array?o.length===1?s=l=u=c=o[0]:o.length===2?(s=u=o[0],l=c=o[1]):o.length===3?(s=o[0],l=c=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],c=o[3]):s=l=u=c=0;var f;s+l>i&&(f=s+l,s*=i/f,l*=i/f),u+c>i&&(f=u+c,u*=i/f,c*=i/f),l+u>a&&(f=l+u,l*=a/f,u*=a/f),s+c>a&&(f=s+c,s*=a/f,c*=a/f),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+c,n+a),c!==0&&e.arc(r+c,n+a-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var rs=Math.round;function x2(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(rs(n*2)===rs(i*2)&&(e.x1=e.x2=Ja(n,s,!0)),rs(a*2)===rs(o*2)&&(e.y1=e.y2=Ja(a,s,!0))),e}}function C2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=Ja(n,s,!0),e.y=Ja(i,s,!0),e.width=Math.max(Ja(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(Ja(i+o,s,!1)-e.y,o===0?0:1)),e}}function Ja(e,t,r){if(!t)return e;var n=rs(e*2);return(n+rs(t))%2===0?n/2:(n+(r?1:-1))/2}var tY=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),rY={},T2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new tY},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=C2(rY,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?eY(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ft);T2.prototype.type="rect";const Bt=T2;var pw={fill:"#000"},gw=2,nY={style:ct({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},sh.style)},M2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=pw,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,M=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,R=0;R=0&&(R=w[D],R.align==="right");)this._placeToken(R,r,C,m,M,"right",_),T-=R.width,M-=R.width,D--;for(A+=(a-(A-g)-(y-M)-T)/2;E<=D;)R=w[E],this._placeToken(R,r,C,m,A+R.width/2,"center",_),A+=R.width,E++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,f=a+i/2;c==="top"?f=a+r.height/2:c==="bottom"&&(f=a+i-r.height/2);var d=!r.isLineHolder&&Iv(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,f-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=Sw(o,s,v),f-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Hg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=ww("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),S=bw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=gw,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=f,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||mo,g.opacity=Hl(u.opacity,n.opacity,1),yw(g,u),S&&(g.lineWidth=Hl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=S),b&&(g.fill=b);var x=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new tt(Sl(g.x,x,g.textAlign),Xo(g.y,C,g.textBaseline),x,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,c=r.borderColor,f=l&&l.image,d=l&&!f,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&c){p=this._getOrCreateChild(Bt),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(f){g=this._getOrCreateChild(Hs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&c){var y=p.style;y.lineWidth=u,y.stroke=c,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=Hl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return sY(r)&&(n=[r.fontStyle,r.fontWeight,oY(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Gn(n)||r.textFont||r.font},t}(ec),iY={left:!0,right:1,center:1},aY={top:1,bottom:1,middle:1},mw=["fontStyle","fontWeight","fontSize","fontFamily"];function oY(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?ky+"px":e+"px"}function yw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ft){var o=A2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Fo(s)||Fo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=se({},n),u=se({},u),u.fill=s):!Fo(u.fill)&&Fo(s)?(a=!0,n=se({},n),u=se({},u),u.fill=Aw(s)):!Fo(u.stroke)&&Fo(l)&&(a||(n=se({},n),u=se({},u)),u.stroke=Aw(l)),n.style=u}}if(n&&n.z2==null){a||(n=se({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??cY)}return n}function gY(e,t,r){if(r&&r.z2==null){r=se({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??fY)}return r}function mY(e,t,r){var n=at(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:vY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=se({},r),o=se({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Ov(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return pY(this,e,t,r);if(e==="blur")return mY(this,e,r);if(e==="select")return gY(this,e,r)}return r}function yY(e){e.stateProxy=Ov;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Ov),r&&(r.stateProxy=Ov)}function Pw(e,t){!k2(e,t)&&!e.__highByOuter&&Ti(e,P2)}function Lw(e,t){!k2(e,t)&&!e.__highByOuter&&Ti(e,L2)}function zg(e,t){e.__highByOuter|=1<<(t||0),Ti(e,P2)}function Wg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ti(e,L2)}function _Y(e){Ti(e,t0)}function I2(e){Ti(e,D2)}function O2(e){Ti(e,dY)}function R2(e){Ti(e,hY)}function k2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function N2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=Qy(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){D2(u)}),s&&r.push(a)),o.isBlured=!1}),O(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Vg(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,c){for(var f=0;f0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Ug(e,t,r){$2(e,!0),Ti(e,yY),MY(e,t,r)}function TY(e){$2(e,!1)}function B2(e,t,r,n){n?TY(e):Ug(e,t,r)}function MY(e,t,r){var n=ut(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Iw=["emphasis","blur","select"],AY={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function F2(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Rv(v),s*=Rv(v));var p=(i===a?-1:1)*Rv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Rc(f)*g-Oc(f)*m,_=(t+n)/2+Oc(f)*g+Rc(f)*m,b=Nw([1,0],[(d-g)/o,(h-m)/s]),S=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],x=Nw(S,w);if(qg(S,w)<=-1&&(x=il),qg(S,w)>=1&&(x=0),x<0){var C=Math.round(x/il*1e6)/1e6;x=il*2+C%2*il}c.addData(u,y,_,o,s,b,x,f,a)}var OY=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,RY=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function kY(e){var t=new yo;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=yo.CMD,l=e.match(OY);if(!l)return t;for(var u=0;uR*R+k*k&&(C=E,T=A),{cx:C,cy:T,x0:-c,y0:-f,x1:C*(i/S-1),y1:T*(i/S-1)}}function VY(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function GY(e,t){var r,n=xl(t.r,0),i=xl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,f=t.cy,d=!!t.clockwise,h=Fw(u-l),v=h>kv&&h%kv;if(v>gn&&(h=v),!(n>gn))e.moveTo(c,f);else if(h>kv-gn)e.moveTo(c+n*Ho(l),f+n*La(l)),e.arc(c,f,n,l,u,!d),i>gn&&(e.moveTo(c+i*Ho(u),f+i*La(u)),e.arc(c,f,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,S=void 0,w=void 0,x=void 0,C=void 0,T=void 0,E=void 0,A=void 0,M=void 0,D=void 0,R=void 0,k=n*Ho(l),F=n*La(l),K=i*Ho(u),B=i*La(u),N=h>gn;if(N){var j=t.cornerRadius;j&&(r=VY(j),p=r[0],g=r[1],m=r[2],y=r[3]);var re=Fw(n-i)/2;if(_=Bn(re,m),b=Bn(re,y),S=Bn(re,p),w=Bn(re,g),T=x=xl(_,b),E=C=xl(S,w),(x>gn||C>gn)&&(A=n*Ho(u),M=n*La(u),D=i*Ho(l),R=i*La(l),hgn){var ue=Bn(m,T),he=Bn(y,T),Q=kc(D,R,k,F,n,ue,d),L=kc(A,M,K,B,n,he,d);e.moveTo(c+Q.cx+Q.x0,f+Q.cy+Q.y0),T0&&e.arc(c+Q.cx,f+Q.cy,ue,Zt(Q.y0,Q.x0),Zt(Q.y1,Q.x1),!d),e.arc(c,f,n,Zt(Q.cy+Q.y1,Q.cx+Q.x1),Zt(L.cy+L.y1,L.cx+L.x1),!d),he>0&&e.arc(c+L.cx,f+L.cy,he,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.moveTo(c+k,f+F),e.arc(c,f,n,l,u,!d);if(!(i>gn)||!N)e.lineTo(c+K,f+B);else if(E>gn){var ue=Bn(p,E),he=Bn(g,E),Q=kc(K,B,A,M,i,-he,d),L=kc(k,F,D,R,i,-ue,d);e.lineTo(c+Q.cx+Q.x0,f+Q.cy+Q.y0),E0&&e.arc(c+Q.cx,f+Q.cy,he,Zt(Q.y0,Q.x0),Zt(Q.y1,Q.x1),!d),e.arc(c,f,i,Zt(Q.cy+Q.y1,Q.cx+Q.x1),Zt(L.cy+L.y1,L.cx+L.x1),d),ue>0&&e.arc(c+L.cx,f+L.cy,ue,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.lineTo(c+K,f+B),e.arc(c,f,i,u,l,d)}e.closePath()}}}var UY=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),Y2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new UY},t.prototype.buildPath=function(r,n){GY(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ft);Y2.prototype.type="sector";const Ao=Y2;var jY=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),q2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new jY},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ft);q2.prototype.type="ring";const K2=q2;function YY(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,c,f;if(n){c=[1/0,1/0],f=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=YY(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],c=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,f=i.length;sIa[1]){if(s=!1,a)return s;var c=Math.abs(Ia[0]-Da[1]),f=Math.abs(Da[0]-Ia[1]);Math.min(c,f)>i.len()&&(c0){var f=c.duration,d=c.delay,h=c.easing,v={duration:f,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Er(e,t,r,n,i,a){a0("update",e,t,r,n,i,a)}function $r(e,t,r,n,i,a){a0("enter",e,t,r,n,i,a)}function fs(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function zw(e){return!e.isGroup}function S7(e){return e.shape!=null}function cE(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){zw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return S7(o)&&(s.shape=se({},o.shape)),s}var a=n(e);t.traverse(function(o){if(zw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Er(o,l,r,ut(o).dataIndex)}}})}function x7(e,t){return Re(e,function(r){var n=r[0];n=pd(n,t.x),n=gd(n,t.x+t.width);var i=r[1];return i=pd(i,t.y),i=gd(i,t.y+t.height),[n,i]})}function C7(e,t){var r=pd(e.x,t.x),n=gd(e.x+e.width,t.x+t.width),i=pd(e.y,t.y),a=gd(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function l0(e,t,r){var n=se({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),ct(i,r),new Hs(n)):o0(e.replace("path://",""),n,r,"center")}function T7(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Nv(h,v,c,f)/d;return!(g<0||g>1)}function Nv(e,t,r,n){return e*n-r*t}function M7(e){return e<=1e-6&&e>=-1e-6}function u0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Ae(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&O(Ct(l),function(c){Ps(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=ut(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:ct({content:n,formatterParams:s},i)}}function Ww(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function c0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function gE(e,t){return ot(ot({},e,!0),t,!0)}const V7={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},G7={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var md="ZH",d0="EN",Cu=d0,kf={},h0={},mE=Ue.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(md)>-1?md:Cu}():Cu;function yE(e,t){e=e.toUpperCase(),h0[e]=new rr(t),kf[e]=t}function U7(e){if(Ae(e)){var t=kf[e.toUpperCase()]||{};return e===md||e===d0?Qe(t):ot(Qe(t),Qe(kf[Cu]),!1)}else return ot(Qe(e),Qe(kf[Cu]),!1)}function j7(e){return h0[e]}function Y7(){return h0[Cu]}yE(d0,V7);yE(md,G7);var v0=1e3,p0=v0*60,ql=p0*60,tn=ql*24,qw=tn*365,Cl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Fc="{yyyy}-{MM}-{dd}",Kw={year:"{yyyy}",month:"{yyyy}-{MM}",day:Fc,hour:Fc+" "+Cl.hour,minute:Fc+" "+Cl.minute,second:Fc+" "+Cl.second,millisecond:Cl.none},$v=["year","month","day","hour","minute","second","millisecond"],_E=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Oa(e,t){return e+="","0000".substr(0,t-e.length)+e}function ds(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function q7(e){return e===ds(e)}function K7(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function dh(e,t,r,n){var i=bi(e),a=i[g0(r)](),o=i[hs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[hh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),c=i[Tu(r)](),f=(c-1)%12+1,d=i[vh(r)](),h=i[ph(r)](),v=i[gh(r)](),p=n instanceof rr?n:j7(n||mE)||Y7(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Oa(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Oa(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Oa(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,Oa(f+"",2)).replace(/{h}/g,f+"").replace(/{mm}/g,Oa(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Oa(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Oa(v,3)).replace(/{S}/g,v+"")}function X7(e,t,r,n,i){var a=null;if(Ae(r))a=r;else if(Ge(r))a=r(e.value,t,{level:e.level});else{var o=se({},Cl);if(e.level>0)for(var s=0;s<$v.length;++s)o[$v[s]]="{primary|"+o[$v[s]]+"}";var l=r?r.inherit===!1?r:ct(r,o):o,u=bE(e.value,i);if(l[u])a=l[u];else if(l.inherit){for(var c=_E.indexOf(u),s=c-1;s>=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var f=e.level==null?0:e.level>=0?e.level:a.length+e.level;f=Math.min(f,a.length-1),a=a[f]}}return dh(new Date(e.value),a,i,n)}function bE(e,t){var r=bi(e),n=r[hs(t)]()+1,i=r[hh(t)](),a=r[Tu(t)](),o=r[vh(t)](),s=r[ph(t)](),l=r[gh(t)](),u=l===0,c=u&&s===0,f=c&&o===0,d=f&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":f?"hour":c?"minute":u?"second":"millisecond"}function Xw(e,t,r){var n=bt(e)?bi(e):e;switch(t=t||bE(e,r),t){case"year":return n[g0(r)]();case"half-year":return n[hs(r)]()>=6?1:0;case"quarter":return Math.floor((n[hs(r)]()+1)/4);case"month":return n[hs(r)]();case"day":return n[hh(r)]();case"half-day":return n[Tu(r)]()/24;case"hour":return n[Tu(r)]();case"minute":return n[vh(r)]();case"second":return n[ph(r)]();case"millisecond":return n[gh(r)]()}}function g0(e){return e?"getUTCFullYear":"getFullYear"}function hs(e){return e?"getUTCMonth":"getMonth"}function hh(e){return e?"getUTCDate":"getDate"}function Tu(e){return e?"getUTCHours":"getHours"}function vh(e){return e?"getUTCMinutes":"getMinutes"}function ph(e){return e?"getUTCSeconds":"getSeconds"}function gh(e){return e?"getUTCMilliseconds":"getMilliseconds"}function Z7(e){return e?"setUTCFullYear":"setFullYear"}function wE(e){return e?"setUTCMonth":"setMonth"}function SE(e){return e?"setUTCDate":"setDate"}function xE(e){return e?"setUTCHours":"setHours"}function CE(e){return e?"setUTCMinutes":"setMinutes"}function TE(e){return e?"setUTCSeconds":"setSeconds"}function ME(e){return e?"setUTCMilliseconds":"setMilliseconds"}function AE(e){if(!j9(e))return Ae(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function EE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var mh=LA;function Zg(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(c){return c&&Gn(c)?c:"-"}function a(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?bi(e):e;if(isNaN(+l)){if(s)return"-"}else return dh(l,n,r)}if(t==="ordinal")return mg(e)?i(e):bt(e)&&a(e)?e+"":"-";var u=fd(e);return a(u)?AE(u):mg(e)?i(e):typeof e=="boolean"?e+"":"-"}var Zw=["a","b","c","d","e","f","g"],Hv=function(e,t){return"{"+e+(t??"")+"}"};function PE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Mu(e,t){return t=t||"transparent",Ae(e)?e:De(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function Qw(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Nf=O,J7=["left","right","top","bottom","width","height"],$c=[["width","left","right"],["height","top","bottom"]];function m0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),f=t.childAt(u+1),d=f&&f.getBoundingRect(),h,v;if(e==="horizontal"){var p=c.width+(d?-d.x+c.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=c.height):s=Math.max(s,c.height)}else{var g=c.height+(d?-d.y+c.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Kl=m0;Dt(m0,"vertical");Dt(m0,"horizontal");function Ls(e,t,r){r=mh(r||0);var n=t.width,i=t.height,a=pt(e.left,n),o=pt(e.top,i),s=pt(e.right,n),l=pt(e.bottom,i),u=pt(e.width,n),c=pt(e.height,i),f=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(c)&&(c=i-l-f-o),h!=null&&(isNaN(u)&&isNaN(c)&&(h>n/i?u=n*.8:c=i*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-c-f),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-c/2-r[0];break;case"bottom":o=i-c-f;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(c)&&(c=i-f-o-(l||0));var v=new tt(a+r[3],o+r[0],u,c);return v.margin=r,v}function Au(e){var t=e.layoutMode||e.constructor.layoutMode;return De(t)?t:t?{type:t}:null}function Ds(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o($c[0],0),a=o($c[1],1);u($c[0],e,i),u($c[1],e,a);function o(c,f){var d={},h=0,v={},p=0,g=2;if(Nf(c,function(_){v[_]=e[_]}),Nf(c,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[f])return l(t,c[1])?v[c[2]]=null:l(t,c[2])&&(v[c[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=ot(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return Ju(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(rr);v2(zs,rr);ah(zs);z7(zs);W7(zs,rq);function rq(e){var t=[];return O(zs.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Re(t,function(r){return Un(r).main}),e!=="dataset"&&at(t,"dataset")<=0&&t.unshift("dataset"),t}const wt=zs;var LE="";typeof navigator<"u"&&(LE=navigator.platform||"");var zo="rgba(0, 0, 0, 0.2)";const nq={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zo,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zo,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zo,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zo,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zo,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zo,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:LE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var DE=je(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),dn="original",Pr="arrayRows",In="objectRows",ni="keyedColumns",Zi="typedArray",IE="unknown",vi="column",Ws="row",Vt={Must:1,Might:2,Not:3},OE=At();function iq(e){OE(e).datasetMap=je()}function aq(e,t,r){var n={},i=y0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=OE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,c,f;e=e.slice(),O(e,function(p,g){var m=De(p)?p:e[g]={name:p};m.type==="ordinal"&&c==null&&(c=g,f=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:f,valueWayDim:0});O(e,function(p,g){var m=p.name,y=v(p);if(c==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(c===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function fq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=o==null||!n?r:cq(n,o);if(c=c||r,!(!c||!c.length)){var f=c[l];return i&&(u[i]=f),s.paletteIdx=(l+1)%c.length,f}}function dq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Hc,al,eS,tS="\0_ec_inner",hq=1,NE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new rr(a),this._locale=new rr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=iS(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,iS(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?eS(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&O(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=je(),u=n&&n.replaceMergeMainTypeMap;iq(this),O(r,function(f,d){f!=null&&(wt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Qe(f):ot(i[d],f,!0))}),u&&u.each(function(f,d){wt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),wt.topologicalTravel(s,wt.getAllClassMainTypes(),c,this);function c(f){var d=uq(this,f,cr(r[f])),h=a.get(f),v=h?u&&u.get(f)?"replaceMerge":"normalMerge":"replaceAll",p=K9(h,d,v);rj(p,f,wt),i[f]=null,a.set(f,null),o.set(f,0);var g=[],m=[],y=0,_;O(p,function(b,S){var w=b.existing,x=b.newOption;if(!x)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=f==="series",T=wt.getClass(f,b.keyInfo.subType,!C);if(!T)return;if(f==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===T)w.name=b.keyInfo.name,w.mergeOption(x,this),w.optionUpdated(x,!1);else{var E=se({componentIndex:S},b.keyInfo);w=new T(x,this,this,E),se(w,E),b.brandNew&&(w.__requireNewView=!0),w.init(x,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[f]=g,a.set(f,m),o.set(f,y),f==="series"&&Hc(this)}this._seriesIndices||Hc(this)},t.prototype.getOption=function(){var r=Qe(this.option);return O(r,function(n,i){if(wt.hasClass(i)){for(var a=cr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!wu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[tS],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function Cq(e,t){return e.join(",")===t.join(",")}const Tq=bq;var hn=O,Eu=De,aS=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Wv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=aS.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=V9(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var _h=function(){function e(t){this.data=t.data||(t.sourceFormat===ni?{}:[]),this.sourceFormat=t.sourceFormat||IE,this.seriesLayoutBy=t.seriesLayoutBy||vi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};dS=(t={},t[Pr+"_"+vi]={pure:!0,appendData:a},t[Pr+"_"+Ws]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[In]={pure:!0,appendData:a},t[ni]={pure:!0,appendData:function(o){var s=this._data;O(o,function(l,u){for(var c=s[u]||(s[u]=[]),f=0;f<(l||[]).length;f++)c.push(l[f])})}},t[dn]={appendData:a},t[Zi]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Is(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function gS(e){var t,r;return De(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function Xl(e){return new Vq(e)}var Vq=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function c(y){return!(y>=1)&&(y=1),y}var f;(this._dirty||a==="reset")&&(this._dirty=!1,f=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(f||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),Uq=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Bf(t,r)},e}();function jq(e,t){var r=new Uq,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==vi&&br(o);var s=[],l={},u=e.dimensionsDefine;if(u)O(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ps(l,m)&&br(_),l[m]=y}});else for(var c=0;c65535?eK:tK}function Wo(){return[1/0,-1/0]}function rK(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function _S(e,t,r,n,i){var a=KE[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Re(o,function(y){return y.property}),c=0;cm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,c=0,f=this.count();c=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=c))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=f&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],S=t[i[1]][1],m=0;m=f&&y<=d||isNaN(y))&&(w>=b&&w<=S||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=f&&y<=d||isNaN(y))&&(l[u++]=x)}else for(var m=0;mt[E][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),c,f,d,h=new(sl(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vc&&(c=f,d=b)}A>0&&Ac-v&&(l=c-v,s.length=l);for(var p=0;pf[1]&&(f[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=f)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Bf(r[a],this._dimensions[a])}Uv={arrayRows:t,objectRows:function(r,n,i,a){return Bf(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Bf(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),nK=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(zc(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,a=[c._getVersionSign()]}else s=o.get("data",!0),l=zr(s)?Zi:dn,a=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(f.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(f.sourceHeader,d.sourceHeader),p=qe(f.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[Qg(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[Qg(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&bS(a)}var o,s=[],l=[];return O(t,function(u){u.prepareSource();var c=u.getSource(i||0),f="";i!=null&&!c&&bS(f),s.push(c),l.push(u._getVersionSign())}),n?o=Qq(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[kq(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return O(e.blocks,function(i){var a=JE(i);a>=t&&(t=a+ +(n&&(!a||em(i)&&!i.noHeader)))}),t}return 0}function oK(e,t,r,n){var i=t.noHeader,a=lK(JE(t)),o=[],s=t.blocks||[];_i(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ps(u,l)){var c=new Gq(u[l],null);s.sort(function(v,p){return c.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}O(s,function(v,p){var g=t.valueFormatter,m=QE(v)(g?se(se({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var f=e.renderMode==="richText"?o.join(a.richText):tm(o.join(""),i?r:a.html);if(i)return f;var d=Zg(t.header,"ordinal",e.useUTC),h=ZE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?eP(e,d,h)+a.richText+f:tm('
'+Zr(d)+"
"+f,r)}function sK(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Re(b,function(S,w){return Zg(S,ge(h)?h[w]:h,u)})};if(!(a&&o)){var f=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":Zg(l,"ordinal",u),h=t.valueType,v=o?[]:c(t.value),p=!s||!a,g=!s&&a,m=ZE(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":f)+(a?"":eP(e,d,y))+(o?"":fK(e,v,p,g,_)):tm((s?"":f)+(a?"":uK(d,!s,y))+(o?"":cK(v,p,g,_)),r)}}function wS(e,t,r,n,i,a){if(e){var o=QE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function lK(e){return{html:iK[e],richText:aK[e]}}function tm(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function uK(e,t,r){var n=t?"margin-left:2px":"";return''+Zr(e)+""}function cK(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Re(e,function(o){return Zr(o)}).join("  ")+""}function eP(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function fK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function dK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Mu(n)}function tP(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var jv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=l2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Q7({color:r,type:t,renderMode:n,markerId:i});return Ae(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?O(r,function(a){return se(n,a)}):se(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function hK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=dK(t,r),c,f,d,h;if(o>1||l&&!o){var v=vK(s,t,r,a,u);c=v.inlineValues,f=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=c=Is(i,r,a[0]),f=p.type}else h=c=l?s[0]:s;var g=Ky(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Pu("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Pu("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Gn(_),value:c,valueType:f})].concat(d||[])})}function vK(e,t,r,n,i){var a=t.getData(),o=ia(e,function(f,d,h){var v=a.getDimensionInfo(h);return f=f||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?O(n,function(f){c(Is(a,r,f),f)}):O(e,c);function c(f,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Pu("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:f,valueType:h.type})):(s.push(f),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Ri=At();function Wc(e,t){return e.getName(t)||e.getId(t)}var pK="__universalTransitionEnabled",wh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Xl({count:mK,reset:yK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=Ri(this).sourceManager=new nK(this);a.prepareSource();var o=this.getInitialData(r,i);xS(o,this),this.dataTask.context.data=o,Ri(this).dataBeforeProcessed=o,SS(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Au(this),a=i?yh(r):{},o=this.subType;wt.hasClass(o)&&(o+="Series"),ot(r,n.getTheme().get(this.subType)),ot(r,this.getDefaultOption()),Ng(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Ds(r,a,i)},t.prototype.mergeOption=function(r,n){r=ot(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Au(this);i&&Ds(this.option,r,i);var a=Ri(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);xS(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Ri(this).dataBeforeProcessed=o,SS(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!zr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=_0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[Wc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[pK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){De(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return wt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(wt);ti(wh,Wq);ti(wh,_0);v2(wh,wt);function SS(e){var t=e.name;Ky(e)||(e.name=gK(e)||t)}function gK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return O(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function mK(e){return e.model.getRawData().count()}function yK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),_K}function _K(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function xS(e,t){O(pU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Dt(bK,t))})}function bK(e,t){var r=rm(e);return r&&r.setOutputEnd((t||this).count()),t}function rm(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const bo=wh;var T0=function(){function e(){this.group=new cn,this.uid=fh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();Zy(T0);ah(T0);const wi=T0;function rP(){var e=At();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var nP=At(),wK=rP(),M0=function(){function e(){this.group=new cn,this.uid=fh("viewChart"),this.renderTask=Xl({plan:SK,reset:xK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&TS(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&TS(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){c0(this.group,t)},e.markUpdateMethod=function(t,r){nP(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function CS(e,t,r){e&&jg(e)&&(t==="emphasis"?zg:Wg)(e,r)}function TS(e,t,r){var n=Qu(e,t),i=t&&t.highlightKey!=null?EY(t.highlightKey):null;n!=null?O(cr(n),function(a){CS(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){CS(a,r,i)})}Zy(M0);ah(M0);function SK(e){return wK(e.model)}function xK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&nP(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),CK[l]}var CK={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const uo=M0;var yd="\0__throttleOriginMethod",MS="\0__throttleRate",AS="\0__throttleType";function A0(e,t,r){var n,i=0,a=0,o=null,s,l,u,c;t=t||0;function f(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?f():o=setTimeout(f,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){c=h},d}function iP(e,t,r,n){var i=e[t];if(i){var a=i[yd]||i,o=i[AS],s=i[MS];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=A0(a,r,n==="debounce"),i[yd]=a,i[AS]=n,i[MS]=r}return i}}function nm(e,t){var r=e[t];r&&r[yd]&&(r.clear&&r.clear(),e[t]=r[yd])}var ES=At(),PS={itemStyle:Su(pE,!0),lineStyle:Su(vE,!0)},TK={lineStyle:"stroke",itemStyle:"fill"};function aP(e,t){var r=e.visualStyleMapper||PS[t];return r||(console.warn("Unknown style type '"+t+"'."),PS.itemStyle)}function oP(e,t){var r=e.visualDrawType||TK[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var MK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=aP(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=oP(e,n),u=o[l],c=Ge(u)?u:null,f=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||f){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ge(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||Ge(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=se({},o);g[l]=c(p),h.setItemVisual(v,"style",g)}}}},ll=new rr,AK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=aP(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){ll.option=l[n];var u=i(ll),c=o.ensureUniqueItemVisual(s,"style");se(c,u),ll.option.decal&&(o.setItemVisual(s,"decal",ll.option.decal),ll.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},EK={performRawSeries:!0,overallReset:function(e){var t=je();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),ES(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=ES(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=oP(r,s);a.each(function(u){var c=a.getRawIndex(u);i[c]=u}),n.each(function(u){var c=i[u],f=a.getItemVisual(c,"colorFromPalette");if(f){var d=a.ensureUniqueItemVisual(c,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Vc=Math.PI;function PK(e,t){t=t||{},ct(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new cn,n=new Bt({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new dr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Bt({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new i0({shape:{startAngle:-Vc/2,endAngle:-Vc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Vc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Vc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),a.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var LK=function(){function e(t,r,n,i){this._stageTaskMap=je(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=je();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;O(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";_i(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;O(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),f=c.seriesTaskMap,d=c.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else f&&f.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=je(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,i).each(c);function c(f){var d=f.uid,h=s.set(d,o&&o.get(d)||Xl({plan:kK,reset:NK,count:FK}));h.context={model:f,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(f,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||Xl({reset:DK});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=je(),u=t.seriesType,c=t.getTargetSeries,f=!0,d=!1,h="";_i(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):c?c(n,i).each(v):(f=!1,O(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,Xl({reset:IK,onDirty:RK})));m.context={model:p,overallProgress:f},m.agent=o,m.__block=f,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ge(t)&&(t={overallReset:t,seriesType:$K(t)}),t.uid=fh("stageHandler"),r&&(t.visualType=r),t},e}();function DK(e){e.overallReset(e.ecModel,e.api,e.payload)}function IK(e){return e.overallProgress&&OK}function OK(){this.agent.dirty(),this.getDownstream().dirty()}function RK(){this.agent&&this.agent.dirty()}function kK(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function NK(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=cr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Re(t,function(r,n){return sP(n)}):BK}var BK=sP(0);function sP(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(n[u]=l,c=!0),c||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return c(l,o,"mainType")&&c(l,o,"subType")&&c(l,o,"index","componentIndex")&&c(l,o,"name")&&c(l,o,"id")&&c(u,a,"name")&&c(u,a,"dataIndex")&&c(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function c(f,d,h,v){return f[h]==null||d[v||h]===f[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),im=["symbol","symbolSize","symbolRotate","symbolOffset"],OS=im.concat(["symbolKeepAspect"]),VK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&eo(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function om(e,t,r){for(var n=t.type==="radial"?uX(e,t,r):lX(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:bt(e)?[e]:ge(e)?e:null}function dP(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&fX(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Re(r,function(a){return a/i}),n/=i)}return[r,n]}var dX=new yo(!0);function bd(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function RS(e){return typeof e=="string"&&e!=="none"}function wd(e){var t=e.fill;return t!=null&&t!=="none"}function kS(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function NS(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function sm(e,t,r){var n=p2(t.image,t.__image,r);if(oh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*gU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function hX(e,t,r,n){var i,a=bd(r),o=wd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var c=t.path||dX,f=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,S=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=f?om(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=f?om(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=f||!t.__canvasFillPattern?sm(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(S=f||!t.__canvasStrokePattern?sm(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(S?e.strokeStyle=S:a=!1)}var x=t.getGlobalScale();c.setScale(x[0],x[1],t.segmentIgnoreThreshold);var C,T;e.setLineDash&&r.lineDash&&(i=dP(t),C=i[0],T=i[1]);var E=!0;(u||f&Ko)&&(c.setDPR(e.dpr),l?c.setContext(null):(c.setContext(e),E=!1),c.reset(),t.buildPath(c,t.shape,n),c.toStatic(),t.pathUpdated()),E&&c.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=T),n||(r.strokeFirst?(a&&NS(e,r),o&&kS(e,r)):(o&&kS(e,r),a&&NS(e,r))),C&&e.setLineDash([])}function vX(e,t,r){var n=t.__image=p2(r.image,t.__image,t,t.onload);if(!(!n||!oh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,f=o-u,d=s-c;e.drawImage(n,u,c,f,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function pX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||mo,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=dP(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(bd(r)&&e.strokeText(i,r.x,r.y),wd(r)&&e.fillText(i,r.x,r.y)):(wd(r)&&e.fillText(i,r.x,r.y),bd(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var BS=["shadowBlur","shadowOffsetX","shadowOffsetY"],FS=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function hP(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){wr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?so.opacity:o}(n||t.blend!==r.blend)&&(a||(wr(e,i),a=!0),e.globalCompositeOperation=t.blend||so.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Qt]){if(this._disposed){this.id;return}var a,o,s;if(De(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Qt]=!0,!this._model||n){var l=new Tq(this._api),u=this._theme,c=this._model=new BE;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},cm);var f={seriesTransition:s,optionChanged:!0};if(i)this[gr]={silent:a,updateParams:f},this[Qt]=!1,this.getZr().wakeUp();else{try{Go(this),ki.update.call(this,null,f)}catch(d){throw this[gr]=null,this[Qt]=!1,d}this._ssr||this._zr.flush(),this[gr]=null,this[Qt]=!1,ul.call(this,a),cl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ue.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ue.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return O(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;O(n,function(l){i.eachComponent({mainType:l},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(a.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return O(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(JS[i]){var l=s,u=s,c=-s,f=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();O(Ql,function(_,b){if(_.group===i){var S=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Qe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),c=o(w.right,c),f=o(w.bottom,f),d.push({dom:S,left:w.left,top:w.top})}}),l*=h,u*=h,c*=h,f*=h;var v=c-l,p=f-u,g=Mo.createCanvas(),m=nw(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return O(d,function(_){var b=_.left-l,S=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Bt({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),O(d,function(_){var b=new Hs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return Zv(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return Zv(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=bv(i,r);return O(o,function(s,l){l.indexOf("Models")>=0&&O(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)a=a||!!c.containPoint(n);else if(l==="seriesModels"){var f=this._chartsMap[u.__viewId];f&&f.containPoint&&(a=a||f.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=bv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?UK(s,l,n):jK(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;O(zX,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Ml(s,function(v){var p=ut(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=se({},p.eventData),!0},!0),l){var c=l.componentType,f=l.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",f=l.seriesIndex);var d=c&&f!=null&&o.getComponent(c,f),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),O(Zl,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),O(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),qK(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&d2(this.getDom(),D0,"");var n=this,i=n._api,a=n._model;O(n._componentsViews,function(o){o.dispose(a,i)}),O(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Ql[n.id]},t.prototype.resize=function(r){if(!this[Qt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[gr]&&(a==null&&(a=this[gr].silent),i=!0,this[gr]=null),this[Qt]=!0;try{i&&Go(this),ki.update.call(this,{type:"resize",animation:se({duration:0},r&&r.animation)})}catch(o){throw this[Qt]=!1,o}this[Qt]=!1,ul.call(this,a),cl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(De(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!fm[r]){var i=fm[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=se({},r);return n.type=Zl[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(De(n)||(n={silent:!!n}),!!Sd[r.type]&&this._model){if(this[Qt]){this._pendingActions.push(r);return}var i=n.silent;Jv.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ue.browser.weChat&&this._throttledZrFlush(),ul.call(this,i),cl.call(this,i)}},t.prototype.updateLabelLayout=function(){yn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Go=function(f){var d=f._scheduler;d.restorePipelines(f._model),d.prepareStageTasks(),Xv(f,!0),Xv(f,!1),d.plan()},Xv=function(f,d){for(var h=f._model,v=f._scheduler,p=d?f._componentsViews:f._chartsViews,g=d?f._componentsMap:f._chartsMap,m=f._zr,y=f._api,_=0;_d.get("hoverLayerThreshold")&&!Ue.node&&!Ue.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=f._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(f,d){var h=f.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(f,d){if(!f.preventAutoZ){var h=f.get("z")||0,v=f.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(f,d,h,v){var p=f.getTextContent(),g=f.getTextGuideLine(),m=f.isGroup;if(m)for(var y=f.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(fs(m))return;if(m instanceof ft&&PY(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}ZS=function(f){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return f._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return f._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){zg(v,p),Gr(f)},h.prototype.leaveEmphasis=function(v,p){Wg(v,p),Gr(f)},h.prototype.enterBlur=function(v){_Y(v),Gr(f)},h.prototype.leaveBlur=function(v){I2(v),Gr(f)},h.prototype.enterSelect=function(v){O2(v),Gr(f)},h.prototype.leaveSelect=function(v){R2(v),Gr(f)},h.prototype.getModel=function(){return f.getModel()},h.prototype.getViewOfComponentModel=function(v){return f.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return f.getViewOfSeriesModel(v)},h}(FE))(f)},EP=function(f){function d(h,v){for(var p=0;p=0)){ex.push(r);var a=cP.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function RP(e,t){fm[e]=t}function qX(e,t,r){var n=MX("registerMap");n&&n(e,t,r)}var KX=Zq;Po(P0,MK);Po(Sh,AK);Po(Sh,EK);Po(P0,VK);Po(Sh,GK);Po(SP,xX);IP(HE);OP(PX,Oq);RP("default",PK);Vs({type:lo,event:lo,update:lo},Tr);Vs({type:Of,event:Of,update:Of},Tr);Vs({type:Ul,event:Ul,update:Ul},Tr);Vs({type:Rf,event:Rf,update:Rf},Tr);Vs({type:jl,event:jl,update:jl},Tr);DP("light",HK);DP("dark",zK);function fl(e){return e==null?0:e.length||1}function tx(e){return e}var XX=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||tx,this._newKeyGetter=i||tx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var c=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(c,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(f===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(f===1&&d===1)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;s30}var dl=De,Ni=Re,aZ=typeof Int32Array>"u"?Array:Int32Array,oZ="e\0\0",rx=-1,sZ=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],lZ=["_approximateExtent"],nx,Kc,hl,vl,rp,Xc,np,uZ=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;NP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},c=0;c=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===dn;if(l&&!i.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():dl(a)&&(a=se({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,dl(r)?se(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){dl(t)?se(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?se(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;uY(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){O(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Ni(this.dimensions,this._getDimInfo,this),this.hostModel)),rp(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ge(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat($y(arguments)))})},e.internalField=function(){nx=function(t){var r=t._invertedIndicesMap;O(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new aZ(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),i[r]=l}}}(),e}();const HP=uZ;function zP(e,t){w0(e)||(e=S0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=je(),a=[],o=fZ(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&$P(o),l=n===e.dimensionsDefine,u=l?FP(e):BP(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var f=je(c),d=new qE(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function fZ(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return O(t,function(a){var o;De(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function dZ(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var hZ=function(){function e(t){this.coordSysDims=[],this.axisMap=je(),this.categoryAxisMap=je(),this.coordSysName=t}return e}();function vZ(e){var t=e.get("coordinateSystem"),r=new hZ(t),n=pZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var pZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",xn).models[0],a=e.getReferringComponents("yAxis",xn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Uo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Uo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",xn).models[0];t.coordSysDims=["single"],r.set("single",i),Uo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",xn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Uo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Uo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();O(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),c=o[l];r.set(c,u),Uo(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Uo(e){return e.get("type")==="category"}function gZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;mZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,f,d;if(O(a,function(y,_){Ae(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!c&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(c=y))}),c&&!n&&!u&&(n=!0),c){f="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,v=c.type,p=0;O(a,function(y){y.coordDim===h&&p++});var g={name:f,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(f,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:f}}function mZ(e){return!NP(e.schema)}function WP(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function yZ(e,t){return WP(e,t)?e.getCalculationInfo("stackResultDimension"):t}function _Z(e,t){var r=e.get("coordinateSystem"),n=b0.get(r),i;return t&&t.coordSysDims&&(i=Re(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=eZ(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function bZ(e,t,r){var n,i;return r&&O(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function VP(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=S0(e)):(i=n.getSource(),a=i.sourceFormat===dn);var o=vZ(t),s=_Z(t,o),l=r.useEncodeDefaulter,u=Ge(l)?l:l?Dt(aq,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},f=zP(i,c),d=bZ(f.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(f),v=gZ(t,{schema:f,store:h}),p=new HP(f,t);p.setCalculationInfo(v);var g=d!=null&&wZ(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function wZ(e){if(e.sourceFormat===dn){var t=SZ(e.data||[]);return!ge(Zu(t))}}function SZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();ah(GP);const Mi=GP;var xZ=0,CZ=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++xZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Re(n,TZ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Ae(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=je(this.categories))},e}();function TZ(e){return De(e)&&e.value!=null?e.value:e+""}const dm=CZ;function hm(e){return e.type==="interval"||e.type==="log"}function MZ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=s2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=UP(o),l=i.niceTickExtent=[It(Math.ceil(e[0]/o)*o,s),It(Math.floor(e[1]/o)*o,s)];return AZ(l,e),i}function ip(e){var t=Math.pow(10,qy(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,It(r*t)}function UP(e){return di(e)+2}function ix(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function AZ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),ix(e,0,t),ix(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function xh(e,t){return e>=t[0]&&e<=t[1]}function Ch(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function Th(e,t){return e*(t[1]-t[0])+t[0]}var jP=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new dm({})),ge(i)&&(i=new dm({categories:Re(i,function(a){return De(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Ae(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),xh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Ch(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(Th(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Mi);Mi.registerClass(jP);const YP=jP;var Ba=It,qP=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return xh(r,this._extent)},t.prototype.normalize=function(r){return Ch(r,this._extent)},t.prototype.scale=function(r){return Th(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=UP(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var c=s.length?s[s.length-1].value:a[1];return i[1]>c&&(r?s.push({value:Ba(c+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function ZP(e){var t=LZ(e),r=[];return O(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],c=Math.abs(o[1]-o[0]),f=a.scale.getExtent(),d=Math.abs(f[1]-f[0]);s=u?c/d*u:c}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=pt(n.get("barWidth"),s),p=pt(n.get("barMaxWidth"),s),g=pt(n.get("barMinWidth")||(JP(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:N0(a),stackId:k0(n)})}),DZ(r)}function DZ(e){var t={};O(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var c=n.barWidth;c&&!l[u].width&&(l[u].width=c,c=Math.min(s.remainedWidth,c),s.remainedWidth-=c);var f=n.barMaxWidth;f&&(l[u].maxWidth=f);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return O(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Ct(a).length;s=Math.max(35-l*4,15)+"%"}var u=pt(s,o),c=pt(n.gap,1),f=n.remainedWidth,d=n.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),O(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,f-=b+c*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,f-=b+c*b,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var v=0,p;O(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+c)}),p&&(v-=p.width*c);var g=-v/2;O(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+c)})}),r}function IZ(e,t,r){if(e&&t){var n=e[N0(t)];return n!=null&&r!=null?n[k0(r)]:n}}function OZ(e,t){var r=XP(e,t),n=ZP(r);O(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=k0(i),u=n[N0(s)][l],c=u.offset,f=u.width;a.setLayout({bandWidth:u.bandWidth,offset:c,size:f})})}function RZ(e){return{seriesType:e,plan:rP(),reset:function(t){if(QP(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),c=r.getCalculationInfo("stackResultDimension"),f=WP(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=kZ(i,a),v=JP(t),p=t.get("barMinHeight")||0,g=c&&r.getDimensionIndex(c),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var S=_.count,w=v&&ap(S*3),x=v&&l&&ap(S*3),C=v&&ap(S),T=n.master.getRect(),E=d?T.width:T.height,A,M=b.getStore(),D=0;(A=_.next())!=null;){var R=M.get(f?g:o,A),k=M.get(s,A),F=h,K=void 0;f&&(K=+R-M.get(o,A));var B=void 0,N=void 0,j=void 0,re=void 0;if(d){var oe=n.dataToPoint([R,k]);if(f){var _e=n.dataToPoint([K,k]);F=_e[0]}B=F,N=oe[1]+y,j=oe[0]-F,re=m,Math.abs(j)>>1;e[i][1]i&&(this._approxInterval=i);var s=Zc.length,l=Math.min(NZ(Zc,this._approxInterval,0,s),s-1);this._interval=Zc[l][1],this._minLevelUnit=Zc[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return bt(r)?r:+bi(r)},t.prototype.contain=function(r){return xh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Ch(this.parse(r),this._extent)},t.prototype.scale=function(r){return Th(r,this._extent)},t.type="time",t}(rc),Zc=[["second",v0],["minute",p0],["hour",ql],["quarter-day",ql*6],["half-day",ql*12],["day",tn*1.2],["half-week",tn*3.5],["week",tn*7],["month",tn*31],["quarter",tn*95],["half-year",qw/2],["year",qw]];function BZ(e,t,r,n){var i=bi(t),a=bi(r),o=function(v){return Xw(i,v,n)===Xw(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},c=function(){return u()&&o("hour")},f=function(){return c()&&o("minute")},d=function(){return f()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return h()}}function FZ(e,t){return e/=tn,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function $Z(e){var t=30*tn;return e/=t,e>6?6:e>3?3:e>2?2:1}function HZ(e){return e/=ql,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function ax(e,t){return e/=t?p0:v0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function zZ(e){return s2(e,!0)}function WZ(e,t,r){var n=new Date(e);switch(ds(t)){case"year":case"month":n[wE(r)](0);case"day":n[SE(r)](1);case"hour":n[xE(r)](0);case"minute":n[CE(r)](0);case"second":n[TE(r)](0),n[ME(r)](0)}return n.getTime()}function VZ(e,t,r,n){var i=1e4,a=_E,o=0;function s(E,A,M,D,R,k,F){for(var K=new Date(A),B=A,N=K[D]();B1&&k===0&&M.unshift({value:M[0].value-B})}}for(var k=0;k=n[0]&&y<=n[1]&&f++)}var _=(n[1]-n[0])/t;if(f>_*1.5&&d>_/1.5||(u.push(g),f>_||e===a[h]))break}c=[]}}}for(var b=Ht(Re(u,function(E){return Ht(E,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(E){return E.length>0}),S=[],w=b.length-1,h=0;h0;)a*=10;var s=[It(YZ(n[0]/a)*a),It(jZ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){Jl.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=vn(r)/vn(this.base),xh(r,this._extent)},t.prototype.normalize=function(r){return r=vn(r)/vn(this.base),Ch(r,this._extent)},t.prototype.scale=function(r){return r=Th(r,this._extent),Qc(this.base,r)},t.type="log",t}(Mi),tL=B0.prototype;tL.getMinorTicks=Jl.getMinorTicks;tL.getLabel=Jl.getLabel;function Jc(e,t){return UZ(e,di(t))}Mi.registerClass(B0);const qZ=B0;var KZ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(t,r){this[ZZ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=XZ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),XZ={min:"_determinedMin",max:"_determinedMax"},ZZ={min:"_dataMin",max:"_dataMax"};function QZ(e,t,r){var n=e.rawExtentInfo;return n||(n=new KZ(e,t,r),e.rawExtentInfo=n,n)}function ef(e,t){return t==null?null:nd(t)?NaN:e.parse(t)}function rL(e,t){var r=e.type,n=QZ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=XP("bar",o),l=!1;if(O(s,function(f){l=l||f.getBaseAxis()===t.axis}),l){var u=ZP(s),c=JZ(i,a,t,u);i=c.min,a=c.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function JZ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=IZ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;O(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;O(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=t-e,f=1-(s+l)/a,d=c/f-c;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function sx(e,t){var r=t,n=rL(e,r),i=n.extent,a=r.get("splitNumber");e instanceof qZ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function eQ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new YP({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new GZ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Mi.getClass(t)||rc)}}function tQ(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function nc(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Ae(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ge(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(F0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function F0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function rQ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof YP?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=nc(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;c=0||(lx.push(e),Ge(e)&&(e={install:e}),e.install(oQ))}var Iu=At();function sQ(e){return e.type==="category"?uQ(e):fQ(e)}function lQ(e,t){return e.type==="category"?cQ(e,t):{ticks:Re(e.scale.getTicks(),function(r){return r.value})}}function uQ(e){var t=e.getLabelModel(),r=iL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function iL(e,t){var r=aL(e,"labels"),n=$0(t),i=oL(r,n);if(i)return i;var a,o;return Ge(n)?a=uL(e,n):(o=n==="auto"?dQ(e):n,a=lL(e,o)),sL(r,n,{labels:a,labelCategoryInterval:o})}function cQ(e,t){var r=aL(e,"ticks"),n=$0(t),i=oL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ge(n))a=uL(e,n,!0);else if(n==="auto"){var s=iL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Re(s.labels,function(l){return l.tickValue})}else o=n,a=lL(e,o,!0);return sL(r,n,{ticks:a,tickCategoryInterval:o})}function fQ(e){var t=e.scale.getTicks(),r=nc(e);return{labels:Re(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function aL(e,t){return Iu(e)[t]||(Iu(e)[t]=[])}function oL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(n)),f=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Uy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/c,y=h/f;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Iu(e.model),S=e.getExtent(),w=b.lastAutoInterval,x=b.lastTickCount;return w!=null&&x!=null&&Math.abs(w-_)<=1&&Math.abs(x-o)<=1&&w>_&&b.axisExtent0===S[0]&&b.axisExtent1===S[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=S[0],b.axisExtent1=S[1]),_}function vQ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function lL(e,t,r){var n=nc(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],c=i.count();u!==0&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=nL(e),d=o.get("showMinLabel")||f,h=o.get("showMaxLabel")||f;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function uL(e,t,r){var n=e.scale,i=nc(e),a=[];return O(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var ux=[0,1],pQ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return z9(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),cx(n,i.count())),kg(t,ux,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),cx(n,i.count()));var a=kg(t,n,ux,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=lQ(this,r),i=n.ticks,a=Re(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return gQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Re(n,function(a){return Re(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return sQ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return hQ(this)},e}();function cx(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function gQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;O(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();s=1+c[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var f=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=It(h),v=It(v),f?h>v:hi&&(i+=pl);var h=Math.atan2(s,o);if(h<0&&(h+=pl),h>=n&&h<=i||h+pl>=n&&h+pl<=i)return l[0]=c,l[1]=f,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function Cd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,c=r-e,f=n-t,d=Math.sqrt(c*c+f*f);c/=d,f/=d;var h=l*c+u*f,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*c,g=o[1]=t+v*f;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function cL(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),c=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(c-a)*(c-a))}var _n=[];function wQ(e,t,r){var n=cL(t.x,t.y,t.width,t.height,e.x,e.y,_n);return r.set(_n[0],_n[1]),n}function SQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,c=t.data,f=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,Cn.fromArray(e[0]),lt.fromArray(e[1]),Et.fromArray(e[2]),Ne.sub(jn,Cn,lt),Ne.sub(zn,Et,lt);var r=jn.len(),n=zn.len();if(!(r<.001||n<.001)){jn.scale(1/r),zn.scale(1/n);var i=jn.dot(zn),a=Math.cos(t);if(a1&&Ne.copy(sr,Et),sr.toArray(e[1])}}}}function xQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Cn.fromArray(e[0]),lt.fromArray(e[1]),Et.fromArray(e[2]),Ne.sub(jn,lt,Cn),Ne.sub(zn,Et,lt);var n=jn.len(),i=zn.len();if(!(n<.001||i<.001)){jn.scale(1/n),zn.scale(1/i);var a=jn.dot(t),o=Math.cos(r);if(a=l)Ne.copy(sr,Et);else{sr.scaleAndAdd(zn,s/Math.tan(Math.PI/2-c));var f=Et.x!==lt.x?(sr.x-lt.x)/(Et.x-lt.x):(sr.y-lt.y)/(Et.y-lt.y);if(isNaN(f))return;f<0?Ne.copy(sr,lt):f>1&&Ne.copy(sr,Et)}sr.toArray(e[1])}}}}function dx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function CQ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=bg(n[0],n[1]),a=bg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=Jh([],n[1],n[0],o/i),l=Jh([],n[1],n[2],o/a),u=Jh([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var c=1;c0&&a&&S(-c/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&x(-m),y<0&&x(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,T,E){if(C<0){var A=Math.min(T,-C);if(A>0){S(A*E,0,o);var M=A+C;M<0&&w(-M*E,1)}else w(-C*E,1)}}function S(C,T,E){C!==0&&(u=!0);for(var A=T;A0)for(var M=0;M0;M--){var F=E[M-1]*k;S(-F,M,o)}}}function x(C){var T=C<0?-1:1;C=Math.abs(C);for(var E=Math.ceil(C/(o-1)),A=0;A0?S(E,0,A+1):S(-E,o-A-1,o),C-=E,C<=0)return}return u}function TQ(e,t,r,n){return pL(e,"x","width",t,r,n)}function gL(e,t,r,n){return pL(e,"y","height",t,r,n)}function mL(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new tt(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),at(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Er(n,u,r,l)}else if(n.attr(u),!tc(n).valueAnimation){var f=qe(n.style.opacity,1);n.style.opacity=0,$r(n,{style:{opacity:f}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};tf(h,u,rf),tf(h,n.states.select,rf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};tf(v,u,rf),tf(v,n.states.emphasis,rf)}I7(n,l,c,r,r)}if(i&&!i.ignore&&!i.invisible){var a=EQ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Er(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,$r(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const LQ=PQ;var sp=At();function DQ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=sp(r).labelManager;i||(i=sp(r).labelManager=new LQ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=sp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function IQ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Is(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function RQ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,c=r.get(["lineStyle","width"])||2;o-=c/2,s-=c/2,l+=c,u+=c,o=Math.floor(o),l=Math.round(l);var f=new Bt({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(f.shape.x+=l),f.shape.width=0):(v||(f.shape.y+=u),f.shape.height=0);var p=Ge(i)?function(g){i(g,f)}:null;$r(f,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return f}function kQ(e,t,r){var n=e.getArea(),i=It(n.r0,1),a=It(n.r,1),o=new Ao({shape:{cx:It(e.cx,1),cy:It(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,$r(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function NQ(e,t,r,n,i){if(e){if(e.type==="polar")return kQ(e,t,r);if(e.type==="cartesian2d")return RQ(e,t,r,n,i)}else return null;return null}function yL(e,t){return e.type===t}var BQ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),c=l.getExtent(),f=n.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(f||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Ae(a)?v=BQ[a]:Ge(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,FQ))}}}}}var _L=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return VP(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)O(a.getAxes(),function(f,d){if(f.type==="category"){var h=f.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=f.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;o[c]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(bo);bo.registerClass(_L);const vx=_L;var HQ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return VP(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=gE(vx.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(vx);const zQ=HQ;var WQ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),VQ=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new WQ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,c=n.startAngle,f=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?f-cMath.PI/2&&cs)return!0;s=f}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){vd(a,r,ut(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(uo),gx={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=lp(t.x,e.x),s=up(t.x+t.width,i),l=lp(t.y,e.y),u=up(t.y+t.height,a),c=si?s:o,t.y=f&&l>a?u:l,t.width=c?0:s-o,t.height=f?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||f},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=up(t.r,e.r),a=lp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},mx={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Bt({shape:se({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var c=u.shape,f=i?"height":"width";c[f]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?px:Ao,c=new u({shape:n,z2:1});c.name="item";var f=bL(i);if(c.calculateTextPosition=GQ(f,{isRoundCap:u===px}),a){var d=c.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Er:$r)(c,{shape:v},a)}return c}};function qQ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function yx(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Er:$r)(r,{shape:l},t,i,null);var c=t?e.baseAxis.model:null;(o?Er:$r)(r,{shape:u},c,i)}function _x(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function ZQ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function bL(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function Sx(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var c=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",f=hE(n);f0(e,f,{labelFetcher:a,labelDataIndex:r,defaultText:IQ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,UQ(e,h==="outside"?c:h,bL(o),n.get(["label","rotate"]))}D7(d,f,a.getRawValue(r),function(p){return OQ(t,p)});var v=n.getModel(["emphasis"]);B2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),F2(e,n),ZQ(i)&&(e.style.fill="none",e.style.stroke="none",O(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function QQ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var JQ=function(){function e(){}return e}(),xx=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new JQ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,c=0;c=0?r:null},30,!1);function eJ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,f=a.length/3;c=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[c]}return-1}function wL(e,t,r){if(yL(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function tJ(e,t,r){var n=e.type==="polar"?Ao:Bt;return new n({shape:wL(t,r,e),silent:!0,z2:0})}const rJ=YQ;function nJ(e){e.registerChartView(rJ),e.registerSeriesModel(zQ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Dt(OZ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,RZ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,$Q("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var sf=Math.PI*2,Mx=Math.PI/180;function SL(e,t){return Ls(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function xL(e,t){var r=SL(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=pt(r.width,t.getWidth()),o=pt(r.height,t.getHeight()),s=Math.min(a,o),l=pt(i[0],s/2),u=pt(i[1],s/2),c,f,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);c=h[0]||0,f=h[1]||0}else ge(n)||(n=[n,n]),c=pt(n[0],a)+r.x,f=pt(n[1],o)+r.y;return{cx:c,cy:f,r0:l,r:u}}function iJ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=SL(n,r),s=xL(n,r),l=s.cx,u=s.cy,c=s.r,f=s.r0,d=-n.get("startAngle")*Mx,h=n.get("minAngle")*Mx,v=0;i.each(a,function(E){!isNaN(E)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var S=sf,w=0,x=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:c}),i.each(a,function(E,A){var M;if(isNaN(E)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:f,r:y?NaN:c});return}y!=="area"?M=p===0&&_?g:E*g:M=sf/v,Mr?m:g,S=Math.abs(_.label.y-r);if(S>=b.maxY){var w=_.label.x-t-_.len2*i,x=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-f)/2}}}function cp(e){return e.position==="center"}function lJ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*oJ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,f=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var x in w.states)if(w.states[x].ignore===!1)return!0;return!1}t.each(function(w){var x=t.getItemGraphicEl(w),C=x.shape,T=x.getTextContent(),E=x.getTextGuideLine(),A=t.getItemModel(w),M=A.getModel("label"),D=M.get("position")||A.get(["emphasis","label","position"]),R=M.get("distanceToLabelLine"),k=M.get("alignTo"),F=pt(M.get("edgeDistance"),u),K=M.get("bleedMargin"),B=A.getModel("labelLine"),N=B.get("length");N=pt(N,u);var j=B.get("length2");if(j=pt(j,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":oe>0?"left":"right"}var G=Math.PI,q=0,ne=M.get("rotate");if(bt(ne))q=ne*(G/180);else if(D==="center")q=0;else if(ne==="radial"||ne===!0){var de=oe<0?-re+G:-re;q=de}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(oe,_e);te<0&&(te=G*2+te);var ie=_e>0;ie&&(te=G+te),q=te-G}if(a=!!q,T.x=Ee,T.y=V,T.rotation=q,T.setStyle({verticalAlign:"middle"}),Y){T.setStyle({align:W});var ve=T.states.select;ve&&(ve.x+=T.x,ve.y+=T.y)}else{var X=T.getBoundingRect().clone();X.applyTransform(T.getComputedTransform());var we=(T.style.margin||0)+2.1;X.y-=we/2,X.height+=we,r.push({label:T,labelLine:E,position:D,len:N,len2:j,minTurnAngle:B.get("minTurnAngle"),maxSurfaceAngle:B.get("maxSurfaceAngle"),surfaceNormal:new Ne(oe,_e),linePoints:J,textAlign:W,labelDistance:R,labelAlignTo:k,edgeDistance:F,bleedMargin:K,rect:X,unconstrainedWidth:X.width,labelStyleWidth:T.style.width})}x.setTextConfig({inside:Y})}}),!a&&e.get("avoidLabelOverlap")&&sJ(r,n,i,l,u,d,c,f);for(var p=0;p0){for(var c=o.getItemLayout(0),f=1;isNaN(c&&c.startAngle)&&f=a.r0}},t.type="pie",t}(uo);const fJ=cJ;function dJ(e,t,r){t=ge(t)&&{coordDimensions:t}||se({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=zP(n,t).dimensions,a=new HP(i,e);return a.initData(n,r),a}var hJ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const vJ=hJ;var pJ=At(),gJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new vJ(_t(this.getData,this),_t(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return dJ(this,{coordDimensions:["value"],encodeDefaulter:Dt(oq,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=pJ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=W9(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Ng(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(bo);const mJ=gJ;function yJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(bt(o)&&!isNaN(o)&&o<0)})}}}function _J(e){e.registerChartView(fJ),e.registerSeriesModel(mJ),YK("pie",e.registerAction),e.registerLayout(Dt(iJ,"pie")),e.registerProcessor(aJ("pie")),e.registerProcessor(yJ("pie"))}var bJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(wt);const wJ=bJ;var vm=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",xn).models[0]},t.type="cartesian2dAxis",t}(wt);ti(vm,aQ);var TL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},SJ=ot({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},TL),H0=ot({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},TL),xJ=ot({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},H0),CJ=ct({logBase:10},H0);const TJ={category:SJ,value:H0,time:xJ,log:CJ};var MJ={value:1,category:1,time:1,log:1};function Ex(e,t,r,n){O(MJ,function(i,a){var o=ot(ot({},TJ[a],!0),n,!0),s=function(l){pe(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+a,c}return u.prototype.mergeDefaultAndTheme=function(c,f){var d=Au(this),h=d?yh(c):{},v=f.getTheme();ot(c,v.get(a+"Axis")),ot(c,this.getDefaultOption()),c.type=Px(c),d&&Ds(c,h,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=dm.createByAxisModel(this))},u.prototype.getCategories=function(c){var f=this.option;if(f.type==="category")return c?f.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",Px)}function Px(e){return e.type||(e.data?"category":"value")}var AJ=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Re(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Ht(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const EJ=AJ;var pm=["x","y"];function Lx(e){return e.type==="interval"||e.type==="time"}var PJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=pm,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!Lx(r)||!Lx(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var c=(s[0]-o[0])/l,f=(s[1]-o[1])/u,d=o[0]-i[0]*c,h=o[1]-a[0]*f,v=this._transform=[c,0,0,f,d,h];this._invTransform=nh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new tt(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return on(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return on(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new tt(i,a,o,s)},t}(EJ),LJ=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(mQ);const DJ=LJ;function gm(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,c=n.getRect(),f=[c.x,c.x+c.width,c.y,c.y+c.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[f[2]-h,f[3]+h]:[f[0]-h,f[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:f[0],u==="x"?v[d[l]]:f[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),yu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function Dx(e){return e.get("coordinateSystem")==="cartesian2d"}function Ix(e){var t={xAxisModel:null,yAxisModel:null};return O(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,xn).models[0];t[n]=a}),t}var fp=Math.log;function IJ(e,t,r){var n=rc.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=rL(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if(e.type==="log"){var d=fp(e.base);u=[fp(u[0])/d,fp(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:c,fixMax:f});var h=n.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(c&&f)v=(g-p)/o;else if(c)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=ip(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=ip(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=It(g-y),p<0&&u[0]>=0?(p=0,g=It(y)):g>0&&u[1]<=0&&(g=0,p=-It(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var OJ=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=pm,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Ct(o),u=l.length;if(u){for(var c=[],f=u-1;f>=0;f--){var d=+l[f],h=o[d],v=h.model,p=h.scale;hm(p)&&v.get("alignTicks")&&v.get("interval")==null?c.push(h):(sx(p,v),hm(p)&&(s=h))}c.length&&(s||(s=c.pop(),sx(s.scale,s.model)),O(c,function(g){IJ(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};O(n.x,function(o){Ox(n,"y",o,a)}),O(n.y,function(o){Ox(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ls(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(O(s,function(u){if(!u.model.get(["axisLabel","inside"])){var c=rQ(u);if(c){var f=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[f]-=c[f]+d,u.position==="top"?o.y+=c.height+d:u.position==="left"&&(o.x+=c.width+d)}}}),l()),O(this._coordsList,function(u){u.calcAffineTransform()});function l(){O(s,function(u){var c=u.isHorizontal(),f=c?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(f[d],f[1-d]),RJ(u,c?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}De(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):cd(i-Yi)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),kx={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(on(s,s,o),on(l,l,o));var c=se({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new _o({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});xu(f.shape,f.style.lineWidth),f.anid="line",r.add(f);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Ae(d)&&(d=[d,d]),(Ae(h)||bt(h))&&(h=[h,h]);var v=sX(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];O([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=E0(d[y],-p/2,-g/2,p,g,c.stroke,!0),b=m.r+m.offset,S=u?l:s;_.attr({rotation:m.rotate,x:S[0]+b*Math.cos(e.rotation),y:S[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=FJ(r,n,t,e),a=HJ(r,n,t,e);if(BJ(t,a,i),$J(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=vL(Re(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));mL(o)}},axisName:function(e,t,r,n){var i=yu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,f=[a==="start"?u[0]-c*l:a==="end"?u[1]+c*l:(u[0]+u[1])/2,Bx(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Yi/180);var v;Bx(a)?d=co.innerTextLayout(e.rotation,h??e.rotation,o):(d=NJ(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=yu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new dr({x:f[0],y:f[1],rotation:d.rotation,silent:co.isLabelSilent(t),style:oa(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(u0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=co.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,ut(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function NJ(e,t,r,n){var i=o2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return cd(i-Yi/2)?(o=l?"bottom":"top",a="center"):cd(i-Yi*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iYi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function BJ(e,t,r){if(!nL(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],c=r[1],f=r[r.length-1],d=r[r.length-2];n===!1?(Ur(a),Ur(u)):Nx(a,o)&&(n?(Ur(o),Ur(c)):(Ur(a),Ur(u))),i===!1?(Ur(s),Ur(f)):Nx(l,s)&&(i?(Ur(l),Ur(d)):(Ur(s),Ur(f)))}}function Ur(e){e&&(e.ignore=!0)}function Nx(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=zy([]);return Wy(i,i,-e.rotation),r.applyTransform(us([],i,e.getLocalTransform())),n.applyTransform(us([],i,t.getLocalTransform())),r.intersect(n)}}function Bx(e){return e==="middle"||e==="center"}function ML(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function jJ(e){var t=z0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=mm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var f=this.__startIndex;f15)break}}R.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var E=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?uf:0),this._needsManuallyCompositing),c.__builtin__||Fy("ZLevel "+u+" has been used by unkown layer "+c.id),c!==a&&(c.__used=!0,c.__startIndex!==l&&(c.__dirty=!0),c.__startIndex=l,c.incremental?c.__drawIndex=-1:c.__drawIndex=l,r(l),a=c),i.__dirty&Or&&!i.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(f,d){!f.__used&&f.getElementCount()>0&&(f.__dirty=!0,f.__startIndex=f.__endIndex=f.__drawIndex=0),f.__dirty&&f.__drawIndex<0&&(f.__drawIndex=f.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,O(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?ot(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=z0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=qa(t).pointerEl=new A7[a.type](Wx(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=qa(t).labelEl=new dr(Wx(r.label));t.add(a),Gx(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=qa(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=qa(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),Gx(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=l0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){kA(u.event)},onmousedown:pp(this._onHandleDragMove,this,0,0),drift:pp(this._onHandleDragMove,this),ondragend:pp(this._onHandleDragEnd,this)}),n.add(i)),Ux(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,iP(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){Vx(this._axisPointerModel,!r&&this._moveAnimation,this._handle,gp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(gp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(gp(i)),qa(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),nm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function Vx(e,t,r,n){DL(qa(r).lastProp,n)||(qa(r).lastProp=n,t?Er(r,n,e):(r.stopAnimation(),r.attr(n)))}function DL(e,t){if(De(e)&&De(t)){var r=!0;return O(t,function(n,i){r=r&&DL(e[i],n)}),!!r}else return e===t}function Gx(e,t){e[t.get(["label","show"])?"show":"hide"]()}function gp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function Ux(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const fee=cee;function dee(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function hee(e,t,r,n,i){var a=r.get("value"),o=IL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=mh(s.get("padding")||0),u=s.getFont(),c=Uy(o,u),f=i.position,d=c.width+l[1]+l[3],h=c.height+l[0]+l[2],v=i.align;v==="right"&&(f[0]-=d),v==="center"&&(f[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(f[1]-=h),p==="middle"&&(f[1]-=h/2),vee(f,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:f[0],y:f[1],style:oa(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function vee(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function IL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:F0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};O(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,f=u&&u.getDataParams(c);f&&s.seriesData.push(f)}),Ae(o)?a=o.replace("{value}",a):Ge(o)&&(a=o(s))}return a}function OL(e,t,r){var n=_u();return Wy(n,n,r.rotation),Cg(n,n,r.position),s0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function pee(e,t,r,n,i,a){var o=AL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),hee(t,n,i,a,{position:OL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function gee(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function mee(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var yee=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),c=jx(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=dee(a),h=_ee[u](s,f,c);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=gm(l.model,i);pee(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=gm(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=OL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=jx(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,f=[r.x,r.y];f[c]+=n[c],f[c]=Math.min(l[1],f[c]),f[c]=Math.max(l[0],f[c]);var d=(u[1]+u[0])/2,h=[d,d];h[c]=f[c];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:f[0],y:f[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[c]}},t}(fee);function jx(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var _ee={line:function(e,t,r){var n=gee([t,r[0]],[t,r[1]],Yx(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:mee([t-n/2,r[0]],[n,i],Yx(e))}}};function Yx(e){return e.dim==="x"?0:1}const bee=yee;var wee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(wt);const See=wee;var hi=At(),xee=O;function RL(e,t,r){if(!Ue.node){var n=t.getZr();hi(n).records||(hi(n).records={}),Cee(n,t);var i=hi(n).records[e]||(hi(n).records[e]={});i.handler=r}}function Cee(e,t){if(hi(e).initialized)return;hi(e).initialized=!0,r("click",Dt(qx,"click")),r("mousemove",Dt(qx,"mousemove")),r("globalout",Mee);function r(n,i){e.on(n,function(a){var o=Aee(t);xee(hi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),Tee(o.pendings,t)})}}function Tee(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function Mee(e,t,r){e.handler("leave",null,r)}function qx(e,t,r,n){t.handler(e,r,n)}function Aee(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function _m(e,t){if(!Ue.node){var r=t.getZr(),n=(hi(r).records||{})[e];n&&(hi(r).records[e]=null)}}var Eee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";RL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){_m("axisPointer",n)},t.prototype.dispose=function(r,n){_m("axisPointer",n)},t.type="axisPointer",t}(wi);const Pee=Eee;function kL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=Qu(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),f=c.dim,d=u.dim,h=f==="x"||f==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Re(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var Kx=At();function Lee(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||_t(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){$f(i)&&(i=kL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=$f(i),u=a.axesInfo,c=s.axesInfo,f=n==="leave"||$f(i),d={},h={},v={list:[],map:{}},p={showPointer:Dt(Iee,h),showTooltip:Dt(Oee,v)};O(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);O(s.coordSysAxesInfo[y],function(b,S){var w=b.axis,x=Bee(u,b);if(!f&&_&&(!u||x)){var C=x&&x.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&Xx(b,C,p,!1,d)}})});var g={};return O(c,function(m,y){var _=m.linkGroup;_&&!h[y]&&O(_.axesInfo,function(b,S){var w=h[S];if(b!==m&&w){var x=w.value;_.mapper&&(x=m.axis.scale.parse(_.mapper(x,Zx(b),Zx(m)))),g[m.key]=x}})}),O(g,function(m,y){Xx(c[y],m,p,!0,d)}),Ree(h,c,d),kee(v,i,e,o),Nee(c,o,r),d}}function Xx(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=Dee(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&se(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function Dee(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return O(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),f,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(c,e,r);d=h.dataIndices,f=h.nestestValue}else{if(d=l.getData().indicesOfNearest(c[0],e,r.type==="category"?.5:null),!d.length)return;f=l.getData().get(c[0],d[0])}if(!(f==null||!isFinite(f))){var v=e-f,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=f,a.length=0),O(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function Iee(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function Oee(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Ou(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function Ree(e,t,r){var n=r.axesInfo=[];O(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function kee(e,t,r,n){if($f(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function Nee(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=Kx(n)[i]||{},o=Kx(n)[i]={};O(e,function(u,c){var f=u.axisPointerModel.option;f.status==="show"&&O(f.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];O(a,function(u,c){!o[c]&&l.push(u)}),O(o,function(u,c){!a[c]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function Bee(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function Zx(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function $f(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function NL(e){EL.registerAxisPointerClass("CartesianAxisPointer",bee),e.registerComponentModel(See),e.registerComponentView(Pee),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=zJ(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},Lee)}function Fee(e){sa(ree),sa(NL)}function $ee(e,t){var r=mh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Bt({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var Hee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(wt);const zee=Hee;function BL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function FL(e){if(Ue.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var c=u*Math.PI/180,f=o+i,d=f*Math.abs(Math.cos(c))+f*Math.abs(Math.sin(c)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-f)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function qee(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ue.transformSupported?","+W0+n:",left"+n+",top"+n),Gee+":"+i}function Qx(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ue.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ue.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+W0+":"+o+";":[["top",0],["left",0],[$L,o]]}function Kee(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),O(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Xee(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),c=e.getModel("textStyle"),f=tP(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(qee(i,r)),a&&n.push("background-color:"+a),O(["width","color","radius"],function(h){var v="border-"+h,p=EE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(Kee(c)),f!=null&&n.push("padding:"+mh(f).join("px ")+"px"),n.join(";")+";"}function Jx(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&AU(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Zee=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ue.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;Jx(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,c=a.painter.getViewportRoot();Yr(c,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=Vee(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=Uee+Xee(t,!this._firstShow,this._longHide)+Qx(a[0],a[1],!0)+("border-color:"+Mu(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Ae(a)&&n.get("trigger")==="item"&&!BL(n)&&(s=Yee(n,i,a)),Ae(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ue.node||!i.getDom())){var o=rC(a,i);this._ticket="";var s=a.dataByCoordSys,l=ote(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var c=tte;c.x=a.x,c.y=a.y,c.update(),ut(c).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:c},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var f=kL(a,n),d=f.point[0],h=f.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:f.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(rC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),f=gl([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(f.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Ml(i,function(u){if(ut(u).dataIndex!=null)return s=u,!0;if(ut(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=_t(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=gl([n.tooltipOption],a),l=this._renderMode,u=[],c=Pu("section",{blocks:[],noHeader:!0}),f=[],d=new jv;O(r,function(y){O(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),S=_.value;if(!(!b||S==null)){var w=IL(S,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),x=Pu("section",{header:w,noHeader:!Gn(w),sortBlocks:!0,blocks:[]});c.blocks.push(x),O(_.seriesDataIndices,function(C){var T=i.getSeriesByIndex(C.seriesIndex),E=C.dataIndexInside,A=T.getDataParams(E);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=F0(b.axis,{value:S}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Mu(A.color),l);var M=gS(T.formatTooltip(E,!0,null)),D=M.frag;if(D){var R=gl([T],a).get("valueFormatter");x.blocks.push(R?se({valueFormatter:R},D):D)}M.text&&f.push(M.text),u.push(A)}})}})}),c.blocks.reverse(),f.reverse();var h=n.position,v=s.get("order"),p=wS(c,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&f.unshift(p);var g=l==="richText"?` - -`:"
",m=f.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=ut(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,f=o.dataType,d=u.getData(f),h=this._renderMode,v=r.positionDefault,p=gl([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(c,f),y=new jv;m.marker=y.makeTooltipMarker("item",Mu(m.color),h);var _=gS(u.formatTooltip(c,!1,f)),b=p.get("order"),S=p.get("valueFormatter"),w=_.frag,x=w?wS(S?se({valueFormatter:S},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+c;this._showOrMove(p,function(){this._showTooltipContent(p,x,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=ut(n),o=a.tooltipConfig,s=o.option||{};if(Ae(s)){var l=s;s={content:l,formatter:l}}var u=[s],c=this._ecModel.getComponent(a.componentMainType,a.componentIndex);c&&u.push(c),u.push({formatter:s.content});var f=r.positionDefault,d=gl(u,this._tooltipModel,f?{position:f}:null),h=d.get("content"),v=Math.random()+"",p=new jv;this._showOrMove(d,function(){var g=Qe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,c){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var f=this._tooltipContent;f.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Ae(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=dh(m.axisValue,h,g)),h=PE(h,i,!0)}else if(Ge(d)){var _=_t(function(b,S){b===this._ticket&&(f.setContent(S,c,r,p,l),this._updatePosition(r,l,o,s,f,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;f.setContent(h,c,r,p,l),f.show(r,p),this._updatePosition(r,l,o,s,f,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get("position");var f=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ge(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,c],contentSize:f.slice()})),ge(n))i=pt(n[0],u),a=pt(n[1],c);else if(De(n)){var p=n;p.width=f[0],p.height=f[1];var g=Ls(p,{width:u,height:c});i=g.x,a=g.y,d=null,h=null}else if(Ae(n)&&l){var m=ate(n,v,f,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=nte(i,a,o,u,c,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=nC(d)?f[0]/2:d==="right"?f[0]:0),h&&(a-=nC(h)?f[1]/2:h==="bottom"?f[1]:0),BL(r)){var m=ite(i,a,o,u,c);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&O(i,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},f=c.dataByAxis||[];o=o&&u.length===f.length,o&&O(u,function(d,h){var v=f[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&O(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&O(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ue.node||!n.getDom()||(nm(this,"_updatePosition"),this._tooltipContent.dispose(),_m("itemTooltip",n))},t.type="tooltip",t}(wi);function gl(e,t,r){var n=t.ecModel,i;r?(i=new rr(r,n,n),i=new rr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof rr&&(o=o.get("tooltip",!0)),Ae(o)&&(o={formatter:o}),o&&(i=new rr(o,i,n)))}return i}function rC(e,t){return e.dispatchAction||_t(t.dispatchAction,t)}function nte(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function ite(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function ate(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+o;break;case"left":s=t.x-i-o,l=t.y+c/2-a/2;break;case"right":s=t.x+u+o,l=t.y+c/2-a/2}return[s,l]}function nC(e){return e==="center"||e==="middle"}function ote(e,t,r){var n=Xy(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=Ju(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var c=ut(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const ste=rte;function lte(e){sa(NL),e.registerComponentModel(zee),e.registerComponentView(ste),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Tr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Tr)}var ute=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(wt),cte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),c=new dr({style:oa(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),f=c.getBoundingRect(),d=r.get("subtext"),h=new dr({style:oa(s,{text:d,fill:s.getTextColor(),y:f.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);c.silent=!v&&!g,h.silent=!p&&!g,v&&c.on("click",function(){Qw(v,"_"+r.get("target"))}),p&&h.on("click",function(){Qw(p,"_"+r.get("subtarget"))}),ut(c).eventData=ut(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(c),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};c.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var S=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var x=new Bt({shape:{x:m.x-S[3],y:m.y-S[0],width:m.width+S[1]+S[3],height:m.height+S[0]+S[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(x)}},t.type="title",t}(wi);function fte(e){e.registerComponentModel(ute),e.registerComponentView(cte)}var dte=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},hte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&O(n,function(a,o){Ae(a)&&(a={type:a}),n[o]=ot(a,dte(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(wt);const bm=hte;var jo=Dt,wm=O,cf=cn,vte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new cf),this.group.add(this._selectorGroup=new cf),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var c=r.getBoxLayoutParams(),f={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ls(c,f,d),v=this.layoutInner(r,o,h,a,l,u),p=Ls(ct({width:v.width,height:v.height},c),f,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=$ee(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),c=je(),f=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),wm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` -`)){var g=new cf;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!c.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),S=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,S,b,f,a);w.on("click",jo(iC,p,null,a,d)).on("mouseover",jo(Sm,m.name,null,a,d)).on("mouseout",jo(xm,m.name,null,a,d)),c.set(p,!0)}else i.eachRawSeries(function(x){if(!c.get(p)&&x.legendVisualProvider){var C=x.legendVisualProvider;if(!C.containName(p))return;var T=C.indexOfName(p),E=C.getItemVisual(T,"style"),A=C.getItemVisual(T,"legendIcon"),M=oo(E.fill);M&&M[3]===0&&(M[3]=.2,E=se(se({},E),{fill:Vy(M,"rgba")}));var D=this._createItem(x,p,v,h,n,r,{},E,A,f,a);D.on("click",jo(iC,null,p,a,d)).on("mouseover",jo(Sm,null,p,a,d)).on("mouseout",jo(xm,null,p,a,d)),c.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();wm(r,function(u){var c=u.type,f=new dr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(f);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);f0(f,{normal:d,emphasis:h},{defaultText:u.title}),Ug(f)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,c,f,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");c=_||c||"roundRect";var b=pte(c,a,l,u,h,g,d),S=new cf,w=a.getModel("textStyle");if(Ge(r.getLegendIcon)&&(!_||_==="inherit"))S.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:c,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var x=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;S.add(gte({itemWidth:v,itemHeight:p,icon:c,iconRotate:x,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,T=s,E=o.get("formatter"),A=n;Ae(E)&&E?A=E.replace("{name}",n??""):Ge(E)&&(A=E(n));var M=a.get("inactiveColor");S.add(new dr({style:oa(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():M,align:T,verticalAlign:"middle"})}));var D=new Bt({shape:S.getBoundingRect(),invisible:!0}),R=a.getModel("tooltip");return R.get("show")&&u0({el:D,componentModel:o,itemName:n,itemTooltipOption:R.option}),S.add(D),S.eachChild(function(k){k.silent=!0}),D.silent=!f,this.getContentGroup().add(S),Ug(S),S.__legendDataIndex=i,S},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Kl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var c=l.getBoundingRect(),f=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),o){Kl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=c[g]+v:f[p]+=d[g]+v,h[1-p]+=c[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=f[0],l.y=f[1];var _={x:0,y:0};return _[g]=c[g]+v+d[g],_[m]=Math.max(c[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=f[0],l.y=f[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(wi);function pte(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),wm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",f=l.getShallow("decal");u.decal=!f||f==="inherit"?n.decal:lm(f,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[c]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[c];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function gte(e){var t=e.icon||"roundRect",r=E0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function iC(e,t,r,n){xm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),Sm(e,t,r,n)}function zL(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=c[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,c.setPosition(g),f.setPosition(m),d.setPosition(y);var S={x:0,y:0};if(S[o]=p?i[o]:h[o],S[s]=Math.max(h[s],v[s]),S[l]=Math.min(0,v[l]+y[1-a]),f.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=S[s],f.setClipPath(new Bt({shape:w})),f.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(r);return x.pageIndex!=null&&Er(c,{x:x.contentPosition[0],y:x.contentPosition[1]},p?r:null),this._updatePageInfoView(r,x),S},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;O(["pagePrev","pageNext"],function(c){var f=c+"DataIndex",d=n[f]!=null,h=i.childOfName(c);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ae(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=mp[o],l=yp[o],u=this._findTargetItemIndex(n),c=i.children(),f=c[u],d=c.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!f)return v;var p=b(f);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(c[g]),(!_&&y.e>m.s+a||_&&!S(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(c[g]),(!_||!S(y,_.s))&&m.i=x&&w.s<=x+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(WL);const Ste=wte;function xte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function Cte(e){sa(VL),e.registerComponentModel(bte),e.registerComponentView(Ste),xte(e)}function Tte(e){sa(VL),sa(Cte)}sa([_J,nJ,uee,DQ,fte,lte,Tte,Fee]);function Mte(e,t,r){const n=I0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return na.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function Ate(e,t){const r=I0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function Ete(e,t,r){const n={width:"600px",height:"400px"},i=I0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const c of l){const f='';u+=f+c.seriesName+": "+na.fileSize(c.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return na.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const sC=ce({__name:"LongSpan",props:{content:null,length:null},setup(e){return(t,r)=>{const n=Yu;return U(),ye(yt,null,[ee(n,{content:e.content,placement:"top"},{default:Z(()=>[qt(ae("span",null,Me(e.content.slice(0,e.length))+"...",513),[[mi,e.content.length>e.length]])]),_:1},8,["content"]),qt(ae("span",null,Me(e.content),513),[[mi,e.content.length<30]])],64)}}}),Pte={class:"source"},Lte=ae("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),Dte=ae("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),Ite=ce({__name:"ServerOverview",setup(e){let t=H({version:"",bind_port:0,bind_udp_port:0,kcp_bind_port:0,quic_bind_port:0,vhost_http_port:0,vhost_https_port:0,tcpmux_httpconnect_port:0,subdomain_host:"",max_pool_count:0,max_ports_per_client:"",allow_ports_str:"",tls_only:!1,heart_beat_timeout:0,client_counts:0,cur_conns:0,proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.bind_udp_port=n.bind_udp_port,t.value.kcp_bind_port=n.kcp_bind_port,t.value.quic_bind_port=n.quic_bind_port,t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_https_port=n.vhost_https_port,t.value.tcpmux_httpconnect_port=n.tcpmux_httpconnect_port,t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.allow_ports_str=n.allow_ports_str,t.value.tls_only=n.tls_only,t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),Mte("traffic",n.total_traffic_in,n.total_traffic_out),Ate("proxies",n)}).catch(()=>{pA({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=ZM,o=XM,s=YM,l=rA;return U(),ye("div",null,[ee(l,null,{default:Z(()=>[ee(s,{md:12},{default:Z(()=>[ae("div",Pte,[ee(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:Z(()=>[ee(a,{label:"Version"},{default:Z(()=>[ae("span",null,Me(P(t).version),1)]),_:1}),ee(a,{label:"BindPort"},{default:Z(()=>[ae("span",null,Me(P(t).bind_port),1)]),_:1}),P(t).bind_udp_port!=0?(U(),me(a,{key:0,label:"Bind UDP Port"},{default:Z(()=>[ae("span",null,Me(P(t).bind_udp_port),1)]),_:1})):ke("",!0),P(t).kcp_bind_port!=0?(U(),me(a,{key:1,label:"KCP Bind Port"},{default:Z(()=>[ae("span",null,Me(P(t).kcp_bind_port),1)]),_:1})):ke("",!0),P(t).quic_bind_port!=0?(U(),me(a,{key:2,label:"QUIC Bind Port"},{default:Z(()=>[ae("span",null,Me(P(t).quic_bind_port),1)]),_:1})):ke("",!0),P(t).vhost_http_port!=0?(U(),me(a,{key:3,label:"Http Port"},{default:Z(()=>[ae("span",null,Me(P(t).vhost_http_port),1)]),_:1})):ke("",!0),P(t).vhost_https_port!=0?(U(),me(a,{key:4,label:"Https Port"},{default:Z(()=>[ae("span",null,Me(P(t).vhost_https_port),1)]),_:1})):ke("",!0),P(t).tcpmux_httpconnect_port!=0?(U(),me(a,{key:5,label:"TCPMux HTTPConnect Port"},{default:Z(()=>[ae("span",null,Me(P(t).tcpmux_httpconnect_port),1)]),_:1})):ke("",!0),P(t).subdomain_host!=""?(U(),me(a,{key:6,label:"Subdomain Host"},{default:Z(()=>[ee(sC,{content:P(t).subdomain_host,length:30},null,8,["content"])]),_:1})):ke("",!0),ee(a,{label:"Max PoolCount"},{default:Z(()=>[ae("span",null,Me(P(t).max_pool_count),1)]),_:1}),ee(a,{label:"Max Ports Per Client"},{default:Z(()=>[ae("span",null,Me(P(t).max_ports_per_client),1)]),_:1}),P(t).allow_ports_str!=""?(U(),me(a,{key:7,label:"Allow Ports"},{default:Z(()=>[ee(sC,{content:P(t).allow_ports_str,length:30},null,8,["content"])]),_:1})):ke("",!0),P(t).tls_only===!0?(U(),me(a,{key:8,label:"TLS Only"},{default:Z(()=>[ae("span",null,Me(P(t).tls_only),1)]),_:1})):ke("",!0),ee(a,{label:"HeartBeat Timeout"},{default:Z(()=>[ae("span",null,Me(P(t).heart_beat_timeout),1)]),_:1}),ee(a,{label:"Client Counts"},{default:Z(()=>[ae("span",null,Me(P(t).client_counts),1)]),_:1}),ee(a,{label:"Current Connections"},{default:Z(()=>[ae("span",null,Me(P(t).cur_conns),1)]),_:1}),ee(a,{label:"Proxy Counts"},{default:Z(()=>[ae("span",null,Me(P(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),ee(s,{md:12},{default:Z(()=>[Lte,Dte]),_:1})]),_:1})])}}});class Gs{constructor(t){$t(this,"name");$t(this,"type");$t(this,"encryption");$t(this,"compression");$t(this,"conns");$t(this,"traffic_in");$t(this,"traffic_out");$t(this,"last_start_time");$t(this,"last_close_time");$t(this,"status");$t(this,"client_version");$t(this,"addr");$t(this,"port");$t(this,"custom_domains");$t(this,"host_header_rewrite");$t(this,"locations");$t(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.client_version=t.client_version,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class Ote extends Gs{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class Rte extends Gs{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class kte extends Gs{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class Nte extends Gs{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class Bte extends Gs{constructor(t){super(t),this.type="stcp"}}class Fte extends Gs{constructor(t){super(t),this.type="sudp"}}const $te=["id"],Hte=ce({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{Ete(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{pA({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(U(),ye("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,$te))}}),zte=ce({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=ZM,i=XM;return e.proxyType==="http"||e.proxyType==="https"?(U(),me(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Domains"},{default:Z(()=>[ae("span",null,Me(e.row.custom_domains),1)]),_:1}),ee(n,{label:"SubDomain"},{default:Z(()=>[ae("span",null,Me(e.row.subdomain),1)]),_:1}),ee(n,{label:"locations"},{default:Z(()=>[ae("span",null,Me(e.row.locations),1)]),_:1}),ee(n,{label:"HostRewrite"},{default:Z(()=>[ae("span",null,Me(e.row.host_header_rewrite),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.last_close_time),1)]),_:1})]),_:1})):(U(),me(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Addr"},{default:Z(()=>[ae("span",null,Me(e.row.addr),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),Us=ce({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(o,s)=>na.fileSize(o.traffic_in),r=(o,s)=>na.fileSize(o.traffic_out),n=H(),i=H(),a=()=>{var o,s;(s=(o=P(i).popoverTraffic)==null?void 0:o.delayHide)==null||s.call(o)};return(o,s)=>{const l=Hte,u=Q8,c=Oz,f=SV,d=h6,h=wV,v=Hm("click-outside");return U(),ye("div",null,[ee(h,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:Z(()=>[ee(f,{type:"expand"},{default:Z(p=>[ee(u,{ref_key:"popoverTraffic",ref:i,"virtual-ref":n.value,placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click","virtual-triggering":""},{default:Z(()=>[ee(l,{proxy_name:p.row.name},null,8,["proxy_name"])]),_:2},1032,["virtual-ref"]),qt((U(),me(c,{ref_key:"buttonTraffic",ref:n,type:"primary",size:"large",name:p.row.name,style:{"margin-bottom":"10px"}},{default:Z(()=>[Nt("Traffic Statistics ")]),_:2},1032,["name"])),[[v,a]]),ee(zte,{row:p.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),ee(f,{label:"Name",prop:"name",sortable:""}),ee(f,{label:"Port",prop:"port",sortable:""}),ee(f,{label:"Connections",prop:"conns",sortable:""}),ee(f,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),ee(f,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),ee(f,{label:"ClientVersion",prop:"client_version",sortable:""}),ee(f,{label:"Status",prop:"status",sortable:""},{default:Z(p=>[p.row.status==="online"?(U(),me(d,{key:0,type:"success"},{default:Z(()=>[Nt(Me(p.row.status),1)]),_:2},1024)):(U(),me(d,{key:1,type:"danger"},{default:Z(()=>[Nt(Me(p.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),Wte=ce({__name:"ProxiesTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new Ote(i))})})(),(n,i)=>(U(),me(Us,{proxies:P(t),proxyType:"tcp"},null,8,["proxies"]))}}),Vte=ce({__name:"ProxiesUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new Rte(i))})})(),(n,i)=>(U(),me(Us,{proxies:P(t),proxyType:"udp"},null,8,["proxies"]))}}),Gte=ce({__name:"ProxiesHTTP",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new kte(s,n,i))})})})(),(n,i)=>(U(),me(Us,{proxies:P(t),proxyType:"http"},null,8,["proxies"]))}}),Ute=ce({__name:"ProxiesHTTPS",setup(e){let t=H([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new Nte(s,n,i))})})})(),(n,i)=>(U(),me(Us,{proxies:P(t),proxyType:"https"},null,8,["proxies"]))}}),jte=ce({__name:"ProxiesSTCP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new Bte(i))})})(),(n,i)=>(U(),me(Us,{proxies:P(t),proxyType:"stcp"},null,8,["proxies"]))}}),Yte=ce({__name:"ProxiesSUDP",setup(e){let t=H([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new Fte(i))})})(),(n,i)=>(U(),me(Us,{proxies:P(t),proxyType:"sudp"},null,8,["proxies"]))}}),qte=YG({history:uG(),routes:[{path:"/",name:"ServerOverview",component:Ite},{path:"/proxies/tcp",name:"ProxiesTCP",component:Wte},{path:"/proxies/udp",name:"ProxiesUDP",component:Vte},{path:"/proxies/http",name:"ProxiesHTTP",component:Gte},{path:"/proxies/https",name:"ProxiesHTTPS",component:Ute},{path:"/proxies/stcp",name:"ProxiesSTCP",component:jte},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Yte}]}),GL=TO(GV);GL.use(qte);GL.mount("#app")});export default Kte(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index c437dcafe66..6a6a252b5e2 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -4,8 +4,8 @@ frps dashboard - - + + diff --git a/web/frpc/package.json b/web/frpc/package.json index 38d024e59df..b30de6a6728 100644 --- a/web/frpc/package.json +++ b/web/frpc/package.json @@ -11,8 +11,8 @@ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { - "element-plus": "^2.2.28", - "vue": "^3.2.45", + "element-plus": "^2.3.3", + "vue": "^3.2.47", "vue-router": "^4.1.6" }, "devDependencies": { diff --git a/web/frpc/yarn.lock b/web/frpc/yarn.lock index d9cac5b7545..38373685ccf 100644 --- a/web/frpc/yarn.lock +++ b/web/frpc/yarn.lock @@ -1136,10 +1136,10 @@ electron-to-chromium@^1.4.284: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz" integrity sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw== -element-plus@^2.2.28: - version "2.2.32" - resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.2.32.tgz" - integrity sha512-DTJMhYOy6MApbmh6z/95hPTK5WrBiNHGzV4IN+uEkup1WoimQ+Qyt8RxKdTe/X1LWEJ8YgWv/Cl8P4ocrt5z5g== +element-plus@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.3.3.tgz#33173bbbe84ada40f4d796fe5043c44781198ea4" + integrity sha512-Zy61OXrG6b4FF3h29A9ZOUkaEQXjCuFwNa7DlpB3Vo+42Tw5zBbHe5a4BY7i56TVJG5xTbS9UQyA726J91pDqg== dependencies: "@ctrl/tinycolor" "^3.4.1" "@element-plus/icons-vue" "^2.0.6" @@ -3018,9 +3018,9 @@ vue-tsc@^1.0.12: "@volar/vue-language-core" "1.1.4" "@volar/vue-typescript" "1.1.4" -vue@^3.2.45: +vue@^3.2.47: version "3.2.47" - resolved "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.47.tgz#3eb736cbc606fc87038dbba6a154707c8a34cff0" integrity sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ== dependencies: "@vue/compiler-dom" "3.2.47" diff --git a/web/frps/package.json b/web/frps/package.json index 63ee9f53748..22b781200b8 100644 --- a/web/frps/package.json +++ b/web/frps/package.json @@ -13,9 +13,9 @@ "dependencies": { "@types/humanize-plus": "^1.8.0", "echarts": "^5.4.1", - "element-plus": "^2.2.28", + "element-plus": "^2.3.3", "humanize-plus": "^1.8.2", - "vue": "^3.2.45", + "vue": "^3.2.47", "vue-router": "^4.1.6" }, "devDependencies": { diff --git a/web/frps/src/components/ProxiesHttp.vue b/web/frps/src/components/ProxiesHTTP.vue similarity index 100% rename from web/frps/src/components/ProxiesHttp.vue rename to web/frps/src/components/ProxiesHTTP.vue diff --git a/web/frps/src/components/ProxiesHttps.vue b/web/frps/src/components/ProxiesHTTPS.vue similarity index 100% rename from web/frps/src/components/ProxiesHttps.vue rename to web/frps/src/components/ProxiesHTTPS.vue diff --git a/web/frps/src/components/ProxiesStcp.vue b/web/frps/src/components/ProxiesSTCP.vue similarity index 100% rename from web/frps/src/components/ProxiesStcp.vue rename to web/frps/src/components/ProxiesSTCP.vue diff --git a/web/frps/src/components/ProxiesSudp.vue b/web/frps/src/components/ProxiesSUDP.vue similarity index 100% rename from web/frps/src/components/ProxiesSudp.vue rename to web/frps/src/components/ProxiesSUDP.vue diff --git a/web/frps/src/components/ProxiesTcp.vue b/web/frps/src/components/ProxiesTCP.vue similarity index 100% rename from web/frps/src/components/ProxiesTcp.vue rename to web/frps/src/components/ProxiesTCP.vue diff --git a/web/frps/src/components/ProxiesUdp.vue b/web/frps/src/components/ProxiesUDP.vue similarity index 100% rename from web/frps/src/components/ProxiesUdp.vue rename to web/frps/src/components/ProxiesUDP.vue diff --git a/web/frps/src/components/ProxyView.vue b/web/frps/src/components/ProxyView.vue index ae1138014c7..5a0b4c3f1b5 100644 --- a/web/frps/src/components/ProxyView.vue +++ b/web/frps/src/components/ProxyView.vue @@ -8,26 +8,25 @@ @@ -65,7 +64,6 @@ diff --git a/web/frps/yarn.lock b/web/frps/yarn.lock index fa607609258..083d3c63167 100644 --- a/web/frps/yarn.lock +++ b/web/frps/yarn.lock @@ -674,6 +674,16 @@ estree-walker "^2.0.2" source-map "^0.6.1" +"@vue/compiler-core@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz#3e07c684d74897ac9aa5922c520741f3029267f8" + integrity sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.47" + estree-walker "^2.0.2" + source-map "^0.6.1" + "@vue/compiler-dom@3.2.45", "@vue/compiler-dom@^3.2.45": version "3.2.45" resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz" @@ -682,7 +692,31 @@ "@vue/compiler-core" "3.2.45" "@vue/shared" "3.2.45" -"@vue/compiler-sfc@3.2.45", "@vue/compiler-sfc@^3.2.45": +"@vue/compiler-dom@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz#a0b06caf7ef7056939e563dcaa9cbde30794f305" + integrity sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ== + dependencies: + "@vue/compiler-core" "3.2.47" + "@vue/shared" "3.2.47" + +"@vue/compiler-sfc@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d" + integrity sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.47" + "@vue/compiler-dom" "3.2.47" + "@vue/compiler-ssr" "3.2.47" + "@vue/reactivity-transform" "3.2.47" + "@vue/shared" "3.2.47" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + +"@vue/compiler-sfc@^3.2.45": version "3.2.45" resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz" integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q== @@ -706,6 +740,14 @@ "@vue/compiler-dom" "3.2.45" "@vue/shared" "3.2.45" +"@vue/compiler-ssr@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz#35872c01a273aac4d6070ab9d8da918ab13057ee" + integrity sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw== + dependencies: + "@vue/compiler-dom" "3.2.47" + "@vue/shared" "3.2.47" + "@vue/devtools-api@^6.4.5": version "6.5.0" resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" @@ -739,43 +781,66 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.2.45", "@vue/reactivity@^3.2.45": +"@vue/reactivity-transform@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz#e45df4d06370f8abf29081a16afd25cffba6d84e" + integrity sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.47" + "@vue/shared" "3.2.47" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.47.tgz#1d6399074eadfc3ed35c727e2fd707d6881140b6" + integrity sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ== + dependencies: + "@vue/shared" "3.2.47" + +"@vue/reactivity@^3.2.45": version "3.2.45" resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz" integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A== dependencies: "@vue/shared" "3.2.45" -"@vue/runtime-core@3.2.45": - version "3.2.45" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz" - integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A== +"@vue/runtime-core@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz#406ebade3d5551c00fc6409bbc1eeb10f32e121d" + integrity sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA== dependencies: - "@vue/reactivity" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/reactivity" "3.2.47" + "@vue/shared" "3.2.47" -"@vue/runtime-dom@3.2.45": - version "3.2.45" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz" - integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA== +"@vue/runtime-dom@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz#93e760eeaeab84dedfb7c3eaf3ed58d776299382" + integrity sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA== dependencies: - "@vue/runtime-core" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/runtime-core" "3.2.47" + "@vue/shared" "3.2.47" csstype "^2.6.8" -"@vue/server-renderer@3.2.45": - version "3.2.45" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz" - integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g== +"@vue/server-renderer@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz#8aa1d1871fc4eb5a7851aa7f741f8f700e6de3c0" + integrity sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA== dependencies: - "@vue/compiler-ssr" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/compiler-ssr" "3.2.47" + "@vue/shared" "3.2.47" "@vue/shared@3.2.45", "@vue/shared@^3.2.45": version "3.2.45" resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz" integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg== +"@vue/shared@3.2.47": + version "3.2.47" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.47.tgz#e597ef75086c6e896ff5478a6bfc0a7aa4bbd14c" + integrity sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ== + "@vue/tsconfig@^0.1.3": version "0.1.3" resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz" @@ -1149,10 +1214,10 @@ electron-to-chromium@^1.4.284: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz" integrity sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ== -element-plus@^2.2.28: - version "2.2.28" - resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.2.28.tgz" - integrity sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A== +element-plus@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.3.3.tgz#33173bbbe84ada40f4d796fe5043c44781198ea4" + integrity sha512-Zy61OXrG6b4FF3h29A9ZOUkaEQXjCuFwNa7DlpB3Vo+42Tw5zBbHe5a4BY7i56TVJG5xTbS9UQyA726J91pDqg== dependencies: "@ctrl/tinycolor" "^3.4.1" "@element-plus/icons-vue" "^2.0.6" @@ -3047,16 +3112,16 @@ vue-tsc@^1.0.12: "@volar/vue-language-core" "1.0.24" "@volar/vue-typescript" "1.0.24" -vue@^3.2.45: - version "3.2.45" - resolved "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz" - integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA== +vue@^3.2.47: + version "3.2.47" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.47.tgz#3eb736cbc606fc87038dbba6a154707c8a34cff0" + integrity sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ== dependencies: - "@vue/compiler-dom" "3.2.45" - "@vue/compiler-sfc" "3.2.45" - "@vue/runtime-dom" "3.2.45" - "@vue/server-renderer" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/compiler-dom" "3.2.47" + "@vue/compiler-sfc" "3.2.47" + "@vue/runtime-dom" "3.2.47" + "@vue/server-renderer" "3.2.47" + "@vue/shared" "3.2.47" webpack-sources@^3.2.3: version "3.2.3" From 0214b974ddd928f74f0922dd28ee8aa9e5b0743f Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Tue, 18 Apr 2023 16:25:32 +0300 Subject: [PATCH 061/444] Fix typo: dasboard -> dashboard (#3416) --- cmd/frps/root.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/frps/root.go b/cmd/frps/root.go index 955c90fb730..4086eac87a2 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -76,7 +76,7 @@ func init() { rootCmd.PersistentFlags().IntVarP(&vhostHTTPPort, "vhost_http_port", "", 0, "vhost http port") rootCmd.PersistentFlags().IntVarP(&vhostHTTPSPort, "vhost_https_port", "", 0, "vhost https port") rootCmd.PersistentFlags().Int64VarP(&vhostHTTPTimeout, "vhost_http_timeout", "", 60, "vhost http response header timeout") - rootCmd.PersistentFlags().StringVarP(&dashboardAddr, "dashboard_addr", "", "0.0.0.0", "dasboard address") + rootCmd.PersistentFlags().StringVarP(&dashboardAddr, "dashboard_addr", "", "0.0.0.0", "dashboard address") rootCmd.PersistentFlags().IntVarP(&dashboardPort, "dashboard_port", "", 0, "dashboard port") rootCmd.PersistentFlags().StringVarP(&dashboardUser, "dashboard_user", "", "admin", "dashboard user") rootCmd.PersistentFlags().StringVarP(&dashboardPwd, "dashboard_pwd", "", "admin", "dashboard password") From 2225a1781fc2774517b5d164c98675f09ba156e3 Mon Sep 17 00:00:00 2001 From: Haruka Abe <35164877+hrkskov@users.noreply.github.com> Date: Mon, 8 May 2023 22:28:44 +0900 Subject: [PATCH 062/444] fix: typo tot => to (#3434) Co-authored-by: Haruka ABE --- client/visitor.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/visitor.go b/client/visitor.go index 6f24b849f3d..9d51ee3391c 100644 --- a/client/visitor.go +++ b/client/visitor.go @@ -37,7 +37,7 @@ import ( "github.com/fatedier/frp/pkg/util/xlog" ) -// Visitor is used for forward traffics from local port tot remote service. +// Visitor is used for forward traffics from local port to remote service. type Visitor interface { Run() error Close() From 8095075719f5cb307bad660dfa255e20b6840398 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 17 May 2023 15:22:18 +0800 Subject: [PATCH 063/444] update sponsors --- README.md | 5 ----- README_zh.md | 4 ---- 2 files changed, 9 deletions(-) diff --git a/README.md b/README.md index d156411693b..31d91f9fe93 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,7 @@ -   - - -

- ## What is frp? diff --git a/README_zh.md b/README_zh.md index 6c23eb448c0..b945f7a0177 100644 --- a/README_zh.md +++ b/README_zh.md @@ -13,10 +13,6 @@ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP -   - - -

From 9f029e3248ffe4ae505cd0ed18c80624485665da Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 17 May 2023 15:24:42 +0800 Subject: [PATCH 064/444] update Build Status --- README.md | 1 - README_zh.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 31d91f9fe93..0b335b29043 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ - # frp [![Build Status](https://circleci.com/gh/fatedier/frp.svg?style=shield)](https://circleci.com/gh/fatedier/frp) diff --git a/README_zh.md b/README_zh.md index b945f7a0177..74d5e97cdb4 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,6 +1,6 @@ # frp -[![Build Status](https://travis-ci.org/fatedier/frp.svg?branch=master)](https://travis-ci.org/fatedier/frp) +[![Build Status](https://circleci.com/gh/fatedier/frp.svg?style=shield)](https://circleci.com/gh/fatedier/frp) [![GitHub release](https://img.shields.io/github/tag/fatedier/frp.svg?label=release)](https://github.com/fatedier/frp/releases) [README](README.md) | [中文文档](README_zh.md) From c71efde303102cdb2a16a868391ac72c0828bee1 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 28 May 2023 16:50:43 +0800 Subject: [PATCH 065/444] refactor the code related to xtcp (#3449) --- Makefile | 3 + client/admin_api.go | 5 +- client/control.go | 48 +- client/proxy/proxy.go | 491 +------------------- client/proxy/proxy_manager.go | 48 +- client/proxy/proxy_wrapper.go | 28 +- client/proxy/sudp.go | 190 ++++++++ client/proxy/udp.go | 157 +++++++ client/proxy/xtcp.go | 200 +++++++++ client/service.go | 10 +- client/visitor.go | 575 ------------------------ client/visitor/stcp.go | 118 +++++ client/visitor/sudp.go | 262 +++++++++++ client/visitor/visitor.go | 77 ++++ client/{ => visitor}/visitor_manager.go | 48 +- client/visitor/xtcp.go | 410 +++++++++++++++++ cmd/frpc/sub/nathole.go | 47 +- cmd/frpc/sub/root.go | 45 +- go.mod | 9 +- go.sum | 18 +- pkg/config/client_test.go | 3 + pkg/config/proxy.go | 3 - pkg/config/server.go | 49 +- pkg/config/server_test.go | 78 ++-- pkg/config/visitor.go | 27 +- pkg/config/visitor_test.go | 3 + pkg/metrics/mem/server.go | 13 +- pkg/msg/msg.go | 140 +++--- pkg/nathole/analysis.go | 328 ++++++++++++++ pkg/nathole/classify.go | 75 +++- pkg/nathole/controller.go | 382 ++++++++++++++++ pkg/nathole/discovery.go | 73 +-- pkg/nathole/nathole.go | 539 ++++++++++++++-------- pkg/nathole/utils.go | 47 ++ pkg/transport/message.go | 119 +++++ pkg/transport/tls.go | 14 + pkg/util/net/udp.go | 8 + pkg/util/util/slice.go | 25 -- pkg/util/util/slice_test.go | 49 -- pkg/util/util/util.go | 19 +- pkg/util/util/util_test.go | 43 +- server/control.go | 55 ++- server/proxy/xtcp.go | 29 +- server/service.go | 52 ++- 44 files changed, 3284 insertions(+), 1678 deletions(-) create mode 100644 client/proxy/sudp.go create mode 100644 client/proxy/udp.go create mode 100644 client/proxy/xtcp.go delete mode 100644 client/visitor.go create mode 100644 client/visitor/stcp.go create mode 100644 client/visitor/sudp.go create mode 100644 client/visitor/visitor.go rename client/{ => visitor}/visitor_manager.go (70%) create mode 100644 client/visitor/xtcp.go create mode 100644 pkg/nathole/analysis.go create mode 100644 pkg/nathole/controller.go create mode 100644 pkg/transport/message.go delete mode 100644 pkg/util/util/slice.go delete mode 100644 pkg/util/util/slice_test.go diff --git a/Makefile b/Makefile index 4600abcb8c1..e9b9ec54076 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,9 @@ fmt: fmt-more: gofumpt -l -w . +gci: + gci write -s standard -s default -s "prefix(github.com/fatedier/frp/)" ./ + vet: go vet ./... diff --git a/client/admin_api.go b/client/admin_api.go index d0177076e32..2a3633aef38 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -25,10 +25,11 @@ import ( "strconv" "strings" + "github.com/samber/lo" + "github.com/fatedier/frp/client/proxy" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/util/log" - "github.com/fatedier/frp/pkg/util/util" ) type GeneralResponse struct { @@ -98,7 +99,7 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta if status.Err == "" { psr.RemoteAddr = status.RemoteAddr - if util.InSlice(status.Type, []string{"tcp", "udp"}) { + if lo.Contains([]string{"tcp", "udp"}, status.Type) { psr.RemoteAddr = serverAddr + psr.RemoteAddr } } diff --git a/client/control.go b/client/control.go index 9fb15c0104f..7626bde8b30 100644 --- a/client/control.go +++ b/client/control.go @@ -25,14 +25,21 @@ import ( "github.com/fatedier/golib/crypto" "github.com/fatedier/frp/client/proxy" + "github.com/fatedier/frp/client/visitor" "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" ) type Control struct { - // uniq id got from frps, attach it in loginMsg + // service context + ctx context.Context + xl *xlog.Logger + + // Unique ID obtained from frps. + // It should be attached to the login message when reconnecting. runID string // manage all proxies @@ -40,7 +47,7 @@ type Control struct { pm *proxy.Manager // manage all visitors - vm *VisitorManager + vm *visitor.Manager // control connection conn net.Conn @@ -68,16 +75,10 @@ type Control struct { writerShutdown *shutdown.Shutdown msgHandlerShutdown *shutdown.Shutdown - // The UDP port that the server is listening on - serverUDPPort int - - xl *xlog.Logger - - // service context - ctx context.Context - // sets authentication based on selected method authSetter auth.Setter + + msgTransporter transport.MessageTransporter } func NewControl( @@ -85,11 +86,12 @@ func NewControl( clientCfg config.ClientCommonConf, pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]config.VisitorConf, - serverUDPPort int, authSetter auth.Setter, ) *Control { // new xlog instance ctl := &Control{ + ctx: ctx, + xl: xlog.FromContextSafe(ctx), runID: runID, conn: conn, cm: cm, @@ -102,14 +104,12 @@ func NewControl( readerShutdown: shutdown.New(), writerShutdown: shutdown.New(), msgHandlerShutdown: shutdown.New(), - serverUDPPort: serverUDPPort, - xl: xlog.FromContextSafe(ctx), - ctx: ctx, authSetter: authSetter, } - ctl.pm = proxy.NewManager(ctl.ctx, ctl.sendCh, clientCfg, serverUDPPort) + ctl.msgTransporter = transport.NewMessageTransporter(ctl.sendCh) + ctl.pm = proxy.NewManager(ctl.ctx, clientCfg, ctl.msgTransporter) - ctl.vm = NewVisitorManager(ctl.ctx, ctl) + ctl.vm = visitor.NewManager(ctl.ctx, ctl.clientCfg, ctl.connectServer, ctl.msgTransporter) ctl.vm.Reload(visitorCfgs) return ctl } @@ -173,6 +173,16 @@ func (ctl *Control) HandleNewProxyResp(inMsg *msg.NewProxyResp) { } } +func (ctl *Control) HandleNatHoleResp(inMsg *msg.NatHoleResp) { + xl := ctl.xl + + // Dispatch the NatHoleResp message to the related proxy. + ok := ctl.msgTransporter.DispatchWithType(inMsg, msg.TypeNameNatHoleResp, inMsg.TransactionID) + if !ok { + xl.Trace("dispatch NatHoleResp message to related proxy error") + } +} + func (ctl *Control) Close() error { return ctl.GracefulClose(0) } @@ -188,7 +198,7 @@ func (ctl *Control) GracefulClose(d time.Duration) error { return nil } -// ClosedDoneCh returns a channel which will be closed after all resources are released +// ClosedDoneCh returns a channel that will be closed after all resources are released func (ctl *Control) ClosedDoneCh() <-chan struct{} { return ctl.closedDoneCh } @@ -250,7 +260,7 @@ func (ctl *Control) writer() { } } -// msgHandler handles all channel events and do corresponding operations. +// msgHandler handles all channel events and performs corresponding operations. func (ctl *Control) msgHandler() { xl := ctl.xl defer func() { @@ -307,6 +317,8 @@ func (ctl *Control) msgHandler() { go ctl.HandleReqWorkConn(m) case *msg.NewProxyResp: ctl.HandleNewProxyResp(m) + case *msg.NatHoleResp: + ctl.HandleNatHoleResp(m) case *msg.Pong: if m.Error != "" { xl.Error("Pong contains error: %s", m.Error) diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index c8ea4f2c752..61e6763e536 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -24,20 +24,16 @@ import ( "sync" "time" - "github.com/fatedier/golib/errors" frpIo "github.com/fatedier/golib/io" libdial "github.com/fatedier/golib/net/dial" - "github.com/fatedier/golib/pool" - fmux "github.com/hashicorp/yamux" pp "github.com/pires/go-proxyproto" "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/client" - "github.com/fatedier/frp/pkg/proto/udp" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/limit" - frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" ) @@ -51,7 +47,12 @@ type Proxy interface { Close() } -func NewProxy(ctx context.Context, pxyConf config.ProxyConf, clientCfg config.ClientCommonConf, serverUDPPort int) (pxy Proxy) { +func NewProxy( + ctx context.Context, + pxyConf config.ProxyConf, + clientCfg config.ClientCommonConf, + msgTransporter transport.MessageTransporter, +) (pxy Proxy) { var limiter *rate.Limiter limitBytes := pxyConf.GetBaseInfo().BandwidthLimit.Bytes() if limitBytes > 0 && pxyConf.GetBaseInfo().BandwidthLimitMode == config.BandwidthLimitModeClient { @@ -59,11 +60,11 @@ func NewProxy(ctx context.Context, pxyConf config.ProxyConf, clientCfg config.Cl } baseProxy := BaseProxy{ - clientCfg: clientCfg, - serverUDPPort: serverUDPPort, - limiter: limiter, - xl: xlog.FromContextSafe(ctx), - ctx: ctx, + clientCfg: clientCfg, + limiter: limiter, + msgTransporter: msgTransporter, + xl: xlog.FromContextSafe(ctx), + ctx: ctx, } switch cfg := pxyConf.(type) { case *config.TCPProxyConf: @@ -112,10 +113,10 @@ func NewProxy(ctx context.Context, pxyConf config.ProxyConf, clientCfg config.Cl } type BaseProxy struct { - closed bool - clientCfg config.ClientCommonConf - serverUDPPort int - limiter *rate.Limiter + closed bool + clientCfg config.ClientCommonConf + msgTransporter transport.MessageTransporter + limiter *rate.Limiter mu sync.RWMutex xl *xlog.Logger @@ -267,466 +268,6 @@ func (pxy *STCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { conn, []byte(pxy.clientCfg.Token), m) } -// XTCP -type XTCPProxy struct { - *BaseProxy - - cfg *config.XTCPProxyConf - proxyPlugin plugin.Plugin -} - -func (pxy *XTCPProxy) Run() (err error) { - if pxy.cfg.Plugin != "" { - pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) - if err != nil { - return - } - } - return -} - -func (pxy *XTCPProxy) Close() { - if pxy.proxyPlugin != nil { - pxy.proxyPlugin.Close() - } -} - -func (pxy *XTCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - xl := pxy.xl - defer conn.Close() - var natHoleSidMsg msg.NatHoleSid - err := msg.ReadMsgInto(conn, &natHoleSidMsg) - if err != nil { - xl.Error("xtcp read from workConn error: %v", err) - return - } - - natHoleClientMsg := &msg.NatHoleClient{ - ProxyName: pxy.cfg.ProxyName, - Sid: natHoleSidMsg.Sid, - } - serverAddr := pxy.clientCfg.NatHoleServerAddr - if serverAddr == "" { - serverAddr = pxy.clientCfg.ServerAddr - } - raddr, _ := net.ResolveUDPAddr("udp", - net.JoinHostPort(serverAddr, strconv.Itoa(pxy.serverUDPPort))) - clientConn, err := net.DialUDP("udp", nil, raddr) - if err != nil { - xl.Error("dial server udp addr error: %v", err) - return - } - defer clientConn.Close() - - err = msg.WriteMsg(clientConn, natHoleClientMsg) - if err != nil { - xl.Error("send natHoleClientMsg to server error: %v", err) - return - } - - // Wait for client address at most 5 seconds. - var natHoleRespMsg msg.NatHoleResp - _ = clientConn.SetReadDeadline(time.Now().Add(5 * time.Second)) - - buf := pool.GetBuf(1024) - n, err := clientConn.Read(buf) - if err != nil { - xl.Error("get natHoleRespMsg error: %v", err) - return - } - err = msg.ReadMsgInto(bytes.NewReader(buf[:n]), &natHoleRespMsg) - if err != nil { - xl.Error("get natHoleRespMsg error: %v", err) - return - } - _ = clientConn.SetReadDeadline(time.Time{}) - _ = clientConn.Close() - - if natHoleRespMsg.Error != "" { - xl.Error("natHoleRespMsg get error info: %s", natHoleRespMsg.Error) - return - } - - xl.Trace("get natHoleRespMsg, sid [%s], client address [%s] visitor address [%s]", natHoleRespMsg.Sid, natHoleRespMsg.ClientAddr, natHoleRespMsg.VisitorAddr) - - // Send detect message - host, portStr, err := net.SplitHostPort(natHoleRespMsg.VisitorAddr) - if err != nil { - xl.Error("get NatHoleResp visitor address [%s] error: %v", natHoleRespMsg.VisitorAddr, err) - } - laddr, _ := net.ResolveUDPAddr("udp", clientConn.LocalAddr().String()) - - port, err := strconv.ParseInt(portStr, 10, 64) - if err != nil { - xl.Error("get natHoleResp visitor address error: %v", natHoleRespMsg.VisitorAddr) - return - } - _ = pxy.sendDetectMsg(host, int(port), laddr, []byte(natHoleRespMsg.Sid)) - xl.Trace("send all detect msg done") - - if err := msg.WriteMsg(conn, &msg.NatHoleClientDetectOK{}); err != nil { - xl.Error("write message error: %v", err) - return - } - - // Listen for clientConn's address and wait for visitor connection - lConn, err := net.ListenUDP("udp", laddr) - if err != nil { - xl.Error("listen on visitorConn's local address error: %v", err) - return - } - defer lConn.Close() - - _ = lConn.SetReadDeadline(time.Now().Add(8 * time.Second)) - sidBuf := pool.GetBuf(1024) - var uAddr *net.UDPAddr - n, uAddr, err = lConn.ReadFromUDP(sidBuf) - if err != nil { - xl.Warn("get sid from visitor error: %v", err) - return - } - _ = lConn.SetReadDeadline(time.Time{}) - if string(sidBuf[:n]) != natHoleRespMsg.Sid { - xl.Warn("incorrect sid from visitor") - return - } - pool.PutBuf(sidBuf) - xl.Info("nat hole connection make success, sid [%s]", natHoleRespMsg.Sid) - - if _, err := lConn.WriteToUDP(sidBuf[:n], uAddr); err != nil { - xl.Error("write uaddr error: %v", err) - return - } - - kcpConn, err := frpNet.NewKCPConnFromUDP(lConn, false, uAddr.String()) - if err != nil { - xl.Error("create kcp connection from udp connection error: %v", err) - return - } - - fmuxCfg := fmux.DefaultConfig() - fmuxCfg.KeepAliveInterval = 5 * time.Second - fmuxCfg.LogOutput = io.Discard - sess, err := fmux.Server(kcpConn, fmuxCfg) - if err != nil { - xl.Error("create yamux server from kcp connection error: %v", err) - return - } - defer sess.Close() - muxConn, err := sess.Accept() - if err != nil { - xl.Error("accept for yamux connection error: %v", err) - return - } - - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, - muxConn, []byte(pxy.cfg.Sk), m) -} - -func (pxy *XTCPProxy) sendDetectMsg(addr string, port int, laddr *net.UDPAddr, content []byte) (err error) { - daddr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(addr, strconv.Itoa(port))) - if err != nil { - return err - } - - tConn, err := net.DialUDP("udp", laddr, daddr) - if err != nil { - return err - } - - // uConn := ipv4.NewConn(tConn) - // uConn.SetTTL(3) - - if _, err := tConn.Write(content); err != nil { - return err - } - return tConn.Close() -} - -// UDP -type UDPProxy struct { - *BaseProxy - - cfg *config.UDPProxyConf - - localAddr *net.UDPAddr - readCh chan *msg.UDPPacket - - // include msg.UDPPacket and msg.Ping - sendCh chan msg.Message - workConn net.Conn -} - -func (pxy *UDPProxy) Run() (err error) { - pxy.localAddr, err = net.ResolveUDPAddr("udp", net.JoinHostPort(pxy.cfg.LocalIP, strconv.Itoa(pxy.cfg.LocalPort))) - if err != nil { - return - } - return -} - -func (pxy *UDPProxy) Close() { - pxy.mu.Lock() - defer pxy.mu.Unlock() - - if !pxy.closed { - pxy.closed = true - if pxy.workConn != nil { - pxy.workConn.Close() - } - if pxy.readCh != nil { - close(pxy.readCh) - } - if pxy.sendCh != nil { - close(pxy.sendCh) - } - } -} - -func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - xl := pxy.xl - xl.Info("incoming a new work connection for udp proxy, %s", conn.RemoteAddr().String()) - // close resources releated with old workConn - pxy.Close() - - var rwc io.ReadWriteCloser = conn - var err error - if pxy.limiter != nil { - rwc = frpIo.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { - return conn.Close() - }) - } - if pxy.cfg.UseEncryption { - rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) - if err != nil { - conn.Close() - xl.Error("create encryption stream error: %v", err) - return - } - } - if pxy.cfg.UseCompression { - rwc = frpIo.WithCompression(rwc) - } - conn = frpNet.WrapReadWriteCloserToConn(rwc, conn) - - pxy.mu.Lock() - pxy.workConn = conn - pxy.readCh = make(chan *msg.UDPPacket, 1024) - pxy.sendCh = make(chan msg.Message, 1024) - pxy.closed = false - pxy.mu.Unlock() - - workConnReaderFn := func(conn net.Conn, readCh chan *msg.UDPPacket) { - for { - var udpMsg msg.UDPPacket - if errRet := msg.ReadMsgInto(conn, &udpMsg); errRet != nil { - xl.Warn("read from workConn for udp error: %v", errRet) - return - } - if errRet := errors.PanicToError(func() { - xl.Trace("get udp package from workConn: %s", udpMsg.Content) - readCh <- &udpMsg - }); errRet != nil { - xl.Info("reader goroutine for udp work connection closed: %v", errRet) - return - } - } - } - workConnSenderFn := func(conn net.Conn, sendCh chan msg.Message) { - defer func() { - xl.Info("writer goroutine for udp work connection closed") - }() - var errRet error - for rawMsg := range sendCh { - switch m := rawMsg.(type) { - case *msg.UDPPacket: - xl.Trace("send udp package to workConn: %s", m.Content) - case *msg.Ping: - xl.Trace("send ping message to udp workConn") - } - if errRet = msg.WriteMsg(conn, rawMsg); errRet != nil { - xl.Error("udp work write error: %v", errRet) - return - } - } - } - heartbeatFn := func(sendCh chan msg.Message) { - var errRet error - for { - time.Sleep(time.Duration(30) * time.Second) - if errRet = errors.PanicToError(func() { - sendCh <- &msg.Ping{} - }); errRet != nil { - xl.Trace("heartbeat goroutine for udp work connection closed") - break - } - } - } - - go workConnSenderFn(pxy.workConn, pxy.sendCh) - go workConnReaderFn(pxy.workConn, pxy.readCh) - go heartbeatFn(pxy.sendCh) - udp.Forwarder(pxy.localAddr, pxy.readCh, pxy.sendCh, int(pxy.clientCfg.UDPPacketSize)) -} - -type SUDPProxy struct { - *BaseProxy - - cfg *config.SUDPProxyConf - - localAddr *net.UDPAddr - - closeCh chan struct{} -} - -func (pxy *SUDPProxy) Run() (err error) { - pxy.localAddr, err = net.ResolveUDPAddr("udp", net.JoinHostPort(pxy.cfg.LocalIP, strconv.Itoa(pxy.cfg.LocalPort))) - if err != nil { - return - } - return -} - -func (pxy *SUDPProxy) Close() { - pxy.mu.Lock() - defer pxy.mu.Unlock() - select { - case <-pxy.closeCh: - return - default: - close(pxy.closeCh) - } -} - -func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - xl := pxy.xl - xl.Info("incoming a new work connection for sudp proxy, %s", conn.RemoteAddr().String()) - - var rwc io.ReadWriteCloser = conn - var err error - if pxy.limiter != nil { - rwc = frpIo.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { - return conn.Close() - }) - } - if pxy.cfg.UseEncryption { - rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) - if err != nil { - conn.Close() - xl.Error("create encryption stream error: %v", err) - return - } - } - if pxy.cfg.UseCompression { - rwc = frpIo.WithCompression(rwc) - } - conn = frpNet.WrapReadWriteCloserToConn(rwc, conn) - - workConn := conn - readCh := make(chan *msg.UDPPacket, 1024) - sendCh := make(chan msg.Message, 1024) - isClose := false - - mu := &sync.Mutex{} - - closeFn := func() { - mu.Lock() - defer mu.Unlock() - if isClose { - return - } - - isClose = true - if workConn != nil { - workConn.Close() - } - close(readCh) - close(sendCh) - } - - // udp service <- frpc <- frps <- frpc visitor <- user - workConnReaderFn := func(conn net.Conn, readCh chan *msg.UDPPacket) { - defer closeFn() - - for { - // first to check sudp proxy is closed or not - select { - case <-pxy.closeCh: - xl.Trace("frpc sudp proxy is closed") - return - default: - } - - var udpMsg msg.UDPPacket - if errRet := msg.ReadMsgInto(conn, &udpMsg); errRet != nil { - xl.Warn("read from workConn for sudp error: %v", errRet) - return - } - - if errRet := errors.PanicToError(func() { - readCh <- &udpMsg - }); errRet != nil { - xl.Warn("reader goroutine for sudp work connection closed: %v", errRet) - return - } - } - } - - // udp service -> frpc -> frps -> frpc visitor -> user - workConnSenderFn := func(conn net.Conn, sendCh chan msg.Message) { - defer func() { - closeFn() - xl.Info("writer goroutine for sudp work connection closed") - }() - - var errRet error - for rawMsg := range sendCh { - switch m := rawMsg.(type) { - case *msg.UDPPacket: - xl.Trace("frpc send udp package to frpc visitor, [udp local: %v, remote: %v], [tcp work conn local: %v, remote: %v]", - m.LocalAddr.String(), m.RemoteAddr.String(), conn.LocalAddr().String(), conn.RemoteAddr().String()) - case *msg.Ping: - xl.Trace("frpc send ping message to frpc visitor") - } - - if errRet = msg.WriteMsg(conn, rawMsg); errRet != nil { - xl.Error("sudp work write error: %v", errRet) - return - } - } - } - - heartbeatFn := func(sendCh chan msg.Message) { - ticker := time.NewTicker(30 * time.Second) - defer func() { - ticker.Stop() - closeFn() - }() - - var errRet error - for { - select { - case <-ticker.C: - if errRet = errors.PanicToError(func() { - sendCh <- &msg.Ping{} - }); errRet != nil { - xl.Warn("heartbeat goroutine for sudp work connection closed") - return - } - case <-pxy.closeCh: - xl.Trace("frpc sudp proxy is closed") - return - } - } - } - - go workConnSenderFn(workConn, sendCh) - go workConnReaderFn(workConn, readCh) - go heartbeatFn(sendCh) - - udp.Forwarder(pxy.localAddr, readCh, sendCh, int(pxy.clientCfg.UDPPacketSize)) -} - // Common handler for tcp work connections. func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf, proxyPlugin plugin.Plugin, baseInfo *config.BaseProxyConf, limiter *rate.Limiter, workConn net.Conn, encKey []byte, m *msg.StartWorkConn, diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index 563531e81df..f5d7502ceb6 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -1,3 +1,17 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + package proxy import ( @@ -6,37 +20,36 @@ import ( "net" "sync" - "github.com/fatedier/golib/errors" - "github.com/fatedier/frp/client/event" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" ) type Manager struct { - sendCh chan (msg.Message) - proxies map[string]*Wrapper + proxies map[string]*Wrapper + msgTransporter transport.MessageTransporter closed bool mu sync.RWMutex clientCfg config.ClientCommonConf - // The UDP port that the server is listening on - serverUDPPort int - ctx context.Context } -func NewManager(ctx context.Context, msgSendCh chan (msg.Message), clientCfg config.ClientCommonConf, serverUDPPort int) *Manager { +func NewManager( + ctx context.Context, + clientCfg config.ClientCommonConf, + msgTransporter transport.MessageTransporter, +) *Manager { return &Manager{ - sendCh: msgSendCh, - proxies: make(map[string]*Wrapper), - closed: false, - clientCfg: clientCfg, - serverUDPPort: serverUDPPort, - ctx: ctx, + proxies: make(map[string]*Wrapper), + msgTransporter: msgTransporter, + closed: false, + clientCfg: clientCfg, + ctx: ctx, } } @@ -86,10 +99,7 @@ func (pm *Manager) HandleEvent(payload interface{}) error { return event.ErrPayloadType } - err := errors.PanicToError(func() { - pm.sendCh <- m - }) - return err + return pm.msgTransporter.Send(m) } func (pm *Manager) GetAllProxyStatus() []*WorkingStatus { @@ -131,7 +141,7 @@ func (pm *Manager) Reload(pxyCfgs map[string]config.ProxyConf) { addPxyNames := make([]string, 0) for name, cfg := range pxyCfgs { if _, ok := pm.proxies[name]; !ok { - pxy := NewWrapper(pm.ctx, cfg, pm.clientCfg, pm.HandleEvent, pm.serverUDPPort) + pxy := NewWrapper(pm.ctx, cfg, pm.clientCfg, pm.HandleEvent, pm.msgTransporter) pm.proxies[name] = pxy addPxyNames = append(addPxyNames, name) diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index af217f06d1b..f2caa6182eb 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -1,3 +1,17 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + package proxy import ( @@ -14,6 +28,7 @@ import ( "github.com/fatedier/frp/client/health" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" ) @@ -56,6 +71,8 @@ type Wrapper struct { // event handler handler event.Handler + msgTransporter transport.MessageTransporter + health uint32 lastSendStartMsg time.Time lastStartErr time.Time @@ -67,7 +84,13 @@ type Wrapper struct { ctx context.Context } -func NewWrapper(ctx context.Context, cfg config.ProxyConf, clientCfg config.ClientCommonConf, eventHandler event.Handler, serverUDPPort int) *Wrapper { +func NewWrapper( + ctx context.Context, + cfg config.ProxyConf, + clientCfg config.ClientCommonConf, + eventHandler event.Handler, + msgTransporter transport.MessageTransporter, +) *Wrapper { baseInfo := cfg.GetBaseInfo() xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(baseInfo.ProxyName) pw := &Wrapper{ @@ -80,6 +103,7 @@ func NewWrapper(ctx context.Context, cfg config.ProxyConf, clientCfg config.Clie closeCh: make(chan struct{}), healthNotifyCh: make(chan struct{}), handler: eventHandler, + msgTransporter: msgTransporter, xl: xl, ctx: xlog.NewContext(ctx, xl), } @@ -92,7 +116,7 @@ func NewWrapper(ctx context.Context, cfg config.ProxyConf, clientCfg config.Clie xl.Trace("enable health check monitor") } - pw.pxy = NewProxy(pw.ctx, pw.Cfg, clientCfg, serverUDPPort) + pw.pxy = NewProxy(pw.ctx, pw.Cfg, clientCfg, pw.msgTransporter) return pw } diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go new file mode 100644 index 00000000000..f54059030f9 --- /dev/null +++ b/client/proxy/sudp.go @@ -0,0 +1,190 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package proxy + +import ( + "io" + "net" + "strconv" + "sync" + "time" + + "github.com/fatedier/golib/errors" + frpIo "github.com/fatedier/golib/io" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/proto/udp" + "github.com/fatedier/frp/pkg/util/limit" + frpNet "github.com/fatedier/frp/pkg/util/net" +) + +type SUDPProxy struct { + *BaseProxy + + cfg *config.SUDPProxyConf + + localAddr *net.UDPAddr + + closeCh chan struct{} +} + +func (pxy *SUDPProxy) Run() (err error) { + pxy.localAddr, err = net.ResolveUDPAddr("udp", net.JoinHostPort(pxy.cfg.LocalIP, strconv.Itoa(pxy.cfg.LocalPort))) + if err != nil { + return + } + return +} + +func (pxy *SUDPProxy) Close() { + pxy.mu.Lock() + defer pxy.mu.Unlock() + select { + case <-pxy.closeCh: + return + default: + close(pxy.closeCh) + } +} + +func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { + xl := pxy.xl + xl.Info("incoming a new work connection for sudp proxy, %s", conn.RemoteAddr().String()) + + var rwc io.ReadWriteCloser = conn + var err error + if pxy.limiter != nil { + rwc = frpIo.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { + return conn.Close() + }) + } + if pxy.cfg.UseEncryption { + rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) + if err != nil { + conn.Close() + xl.Error("create encryption stream error: %v", err) + return + } + } + if pxy.cfg.UseCompression { + rwc = frpIo.WithCompression(rwc) + } + conn = frpNet.WrapReadWriteCloserToConn(rwc, conn) + + workConn := conn + readCh := make(chan *msg.UDPPacket, 1024) + sendCh := make(chan msg.Message, 1024) + isClose := false + + mu := &sync.Mutex{} + + closeFn := func() { + mu.Lock() + defer mu.Unlock() + if isClose { + return + } + + isClose = true + if workConn != nil { + workConn.Close() + } + close(readCh) + close(sendCh) + } + + // udp service <- frpc <- frps <- frpc visitor <- user + workConnReaderFn := func(conn net.Conn, readCh chan *msg.UDPPacket) { + defer closeFn() + + for { + // first to check sudp proxy is closed or not + select { + case <-pxy.closeCh: + xl.Trace("frpc sudp proxy is closed") + return + default: + } + + var udpMsg msg.UDPPacket + if errRet := msg.ReadMsgInto(conn, &udpMsg); errRet != nil { + xl.Warn("read from workConn for sudp error: %v", errRet) + return + } + + if errRet := errors.PanicToError(func() { + readCh <- &udpMsg + }); errRet != nil { + xl.Warn("reader goroutine for sudp work connection closed: %v", errRet) + return + } + } + } + + // udp service -> frpc -> frps -> frpc visitor -> user + workConnSenderFn := func(conn net.Conn, sendCh chan msg.Message) { + defer func() { + closeFn() + xl.Info("writer goroutine for sudp work connection closed") + }() + + var errRet error + for rawMsg := range sendCh { + switch m := rawMsg.(type) { + case *msg.UDPPacket: + xl.Trace("frpc send udp package to frpc visitor, [udp local: %v, remote: %v], [tcp work conn local: %v, remote: %v]", + m.LocalAddr.String(), m.RemoteAddr.String(), conn.LocalAddr().String(), conn.RemoteAddr().String()) + case *msg.Ping: + xl.Trace("frpc send ping message to frpc visitor") + } + + if errRet = msg.WriteMsg(conn, rawMsg); errRet != nil { + xl.Error("sudp work write error: %v", errRet) + return + } + } + } + + heartbeatFn := func(sendCh chan msg.Message) { + ticker := time.NewTicker(30 * time.Second) + defer func() { + ticker.Stop() + closeFn() + }() + + var errRet error + for { + select { + case <-ticker.C: + if errRet = errors.PanicToError(func() { + sendCh <- &msg.Ping{} + }); errRet != nil { + xl.Warn("heartbeat goroutine for sudp work connection closed") + return + } + case <-pxy.closeCh: + xl.Trace("frpc sudp proxy is closed") + return + } + } + } + + go workConnSenderFn(workConn, sendCh) + go workConnReaderFn(workConn, readCh) + go heartbeatFn(sendCh) + + udp.Forwarder(pxy.localAddr, readCh, sendCh, int(pxy.clientCfg.UDPPacketSize)) +} diff --git a/client/proxy/udp.go b/client/proxy/udp.go new file mode 100644 index 00000000000..8a5993673d9 --- /dev/null +++ b/client/proxy/udp.go @@ -0,0 +1,157 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package proxy + +import ( + "io" + "net" + "strconv" + "time" + + "github.com/fatedier/golib/errors" + frpIo "github.com/fatedier/golib/io" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/proto/udp" + "github.com/fatedier/frp/pkg/util/limit" + frpNet "github.com/fatedier/frp/pkg/util/net" +) + +// UDP +type UDPProxy struct { + *BaseProxy + + cfg *config.UDPProxyConf + + localAddr *net.UDPAddr + readCh chan *msg.UDPPacket + + // include msg.UDPPacket and msg.Ping + sendCh chan msg.Message + workConn net.Conn +} + +func (pxy *UDPProxy) Run() (err error) { + pxy.localAddr, err = net.ResolveUDPAddr("udp", net.JoinHostPort(pxy.cfg.LocalIP, strconv.Itoa(pxy.cfg.LocalPort))) + if err != nil { + return + } + return +} + +func (pxy *UDPProxy) Close() { + pxy.mu.Lock() + defer pxy.mu.Unlock() + + if !pxy.closed { + pxy.closed = true + if pxy.workConn != nil { + pxy.workConn.Close() + } + if pxy.readCh != nil { + close(pxy.readCh) + } + if pxy.sendCh != nil { + close(pxy.sendCh) + } + } +} + +func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { + xl := pxy.xl + xl.Info("incoming a new work connection for udp proxy, %s", conn.RemoteAddr().String()) + // close resources releated with old workConn + pxy.Close() + + var rwc io.ReadWriteCloser = conn + var err error + if pxy.limiter != nil { + rwc = frpIo.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { + return conn.Close() + }) + } + if pxy.cfg.UseEncryption { + rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) + if err != nil { + conn.Close() + xl.Error("create encryption stream error: %v", err) + return + } + } + if pxy.cfg.UseCompression { + rwc = frpIo.WithCompression(rwc) + } + conn = frpNet.WrapReadWriteCloserToConn(rwc, conn) + + pxy.mu.Lock() + pxy.workConn = conn + pxy.readCh = make(chan *msg.UDPPacket, 1024) + pxy.sendCh = make(chan msg.Message, 1024) + pxy.closed = false + pxy.mu.Unlock() + + workConnReaderFn := func(conn net.Conn, readCh chan *msg.UDPPacket) { + for { + var udpMsg msg.UDPPacket + if errRet := msg.ReadMsgInto(conn, &udpMsg); errRet != nil { + xl.Warn("read from workConn for udp error: %v", errRet) + return + } + if errRet := errors.PanicToError(func() { + xl.Trace("get udp package from workConn: %s", udpMsg.Content) + readCh <- &udpMsg + }); errRet != nil { + xl.Info("reader goroutine for udp work connection closed: %v", errRet) + return + } + } + } + workConnSenderFn := func(conn net.Conn, sendCh chan msg.Message) { + defer func() { + xl.Info("writer goroutine for udp work connection closed") + }() + var errRet error + for rawMsg := range sendCh { + switch m := rawMsg.(type) { + case *msg.UDPPacket: + xl.Trace("send udp package to workConn: %s", m.Content) + case *msg.Ping: + xl.Trace("send ping message to udp workConn") + } + if errRet = msg.WriteMsg(conn, rawMsg); errRet != nil { + xl.Error("udp work write error: %v", errRet) + return + } + } + } + heartbeatFn := func(sendCh chan msg.Message) { + var errRet error + for { + time.Sleep(time.Duration(30) * time.Second) + if errRet = errors.PanicToError(func() { + sendCh <- &msg.Ping{} + }); errRet != nil { + xl.Trace("heartbeat goroutine for udp work connection closed") + break + } + } + } + + go workConnSenderFn(pxy.workConn, pxy.sendCh) + go workConnReaderFn(pxy.workConn, pxy.readCh) + go heartbeatFn(pxy.sendCh) + udp.Forwarder(pxy.localAddr, pxy.readCh, pxy.sendCh, int(pxy.clientCfg.UDPPacketSize)) +} diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go new file mode 100644 index 00000000000..9535a314da2 --- /dev/null +++ b/client/proxy/xtcp.go @@ -0,0 +1,200 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package proxy + +import ( + "io" + "net" + "time" + + fmux "github.com/hashicorp/yamux" + "github.com/quic-go/quic-go" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/nathole" + plugin "github.com/fatedier/frp/pkg/plugin/client" + "github.com/fatedier/frp/pkg/transport" + frpNet "github.com/fatedier/frp/pkg/util/net" +) + +// XTCP +type XTCPProxy struct { + *BaseProxy + + cfg *config.XTCPProxyConf + proxyPlugin plugin.Plugin +} + +func (pxy *XTCPProxy) Run() (err error) { + if pxy.cfg.Plugin != "" { + pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) + if err != nil { + return + } + } + return +} + +func (pxy *XTCPProxy) Close() { + if pxy.proxyPlugin != nil { + pxy.proxyPlugin.Close() + } +} + +func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkConn) { + xl := pxy.xl + defer conn.Close() + var natHoleSidMsg msg.NatHoleSid + err := msg.ReadMsgInto(conn, &natHoleSidMsg) + if err != nil { + xl.Error("xtcp read from workConn error: %v", err) + return + } + + prepareResult, err := nathole.Prepare([]string{pxy.clientCfg.NatHoleSTUNServer}) + if err != nil { + xl.Warn("nathole prepare error: %v", err) + return + } + xl.Info("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", + prepareResult.NatType, prepareResult.Behavior, prepareResult.Addrs, prepareResult.AssistedAddrs) + defer prepareResult.ListenConn.Close() + + // send NatHoleClient msg to server + transactionID := nathole.NewTransactionID() + natHoleClientMsg := &msg.NatHoleClient{ + TransactionID: transactionID, + ProxyName: pxy.cfg.ProxyName, + Sid: natHoleSidMsg.Sid, + MappedAddrs: prepareResult.Addrs, + AssistedAddrs: prepareResult.AssistedAddrs, + } + + natHoleRespMsg, err := nathole.ExchangeInfo(pxy.ctx, pxy.msgTransporter, transactionID, natHoleClientMsg, 5*time.Second) + if err != nil { + xl.Warn("nathole exchange info error: %v", err) + return + } + + xl.Info("get natHoleRespMsg, sid [%s], protocol [%s], candidate address %v, assisted address %v, detectBehavior: %+v", + natHoleRespMsg.Sid, natHoleRespMsg.Protocol, natHoleRespMsg.CandidateAddrs, + natHoleRespMsg.AssistedAddrs, natHoleRespMsg.DetectBehavior) + + listenConn := prepareResult.ListenConn + newListenConn, raddr, err := nathole.MakeHole(pxy.ctx, listenConn, natHoleRespMsg, []byte(pxy.cfg.Sk)) + if err != nil { + listenConn.Close() + xl.Warn("make hole error: %v", err) + _ = pxy.msgTransporter.Send(&msg.NatHoleReport{ + Sid: natHoleRespMsg.Sid, + Success: false, + }) + return + } + listenConn = newListenConn + xl.Info("establishing nat hole connection successful, sid [%s], remoteAddr [%s]", natHoleRespMsg.Sid, raddr) + + _ = pxy.msgTransporter.Send(&msg.NatHoleReport{ + Sid: natHoleRespMsg.Sid, + Success: true, + }) + + if natHoleRespMsg.Protocol == "kcp" { + pxy.listenByKCP(listenConn, raddr, startWorkConnMsg) + return + } + + // default is quic + pxy.listenByQUIC(listenConn, raddr, startWorkConnMsg) +} + +func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, startWorkConnMsg *msg.StartWorkConn) { + xl := pxy.xl + listenConn.Close() + laddr, _ := net.ResolveUDPAddr("udp", listenConn.LocalAddr().String()) + lConn, err := net.DialUDP("udp", laddr, raddr) + if err != nil { + xl.Warn("dial udp error: %v", err) + return + } + defer lConn.Close() + + remote, err := frpNet.NewKCPConnFromUDP(lConn, true, raddr.String()) + if err != nil { + xl.Warn("create kcp connection from udp connection error: %v", err) + return + } + + fmuxCfg := fmux.DefaultConfig() + fmuxCfg.KeepAliveInterval = 10 * time.Second + fmuxCfg.MaxStreamWindowSize = 2 * 1024 * 1024 + fmuxCfg.LogOutput = io.Discard + session, err := fmux.Server(remote, fmuxCfg) + if err != nil { + xl.Error("create mux session error: %v", err) + return + } + defer session.Close() + + for { + muxConn, err := session.Accept() + if err != nil { + xl.Error("accept connection error: %v", err) + return + } + go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + muxConn, []byte(pxy.cfg.Sk), startWorkConnMsg) + } +} + +func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, startWorkConnMsg *msg.StartWorkConn) { + xl := pxy.xl + defer listenConn.Close() + + tlsConfig, err := transport.NewServerTLSConfig("", "", "") + if err != nil { + xl.Warn("create tls config error: %v", err) + return + } + tlsConfig.NextProtos = []string{"frp"} + quicListener, err := quic.Listen(listenConn, tlsConfig, + &quic.Config{ + MaxIdleTimeout: time.Duration(pxy.clientCfg.QUICMaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(pxy.clientCfg.QUICMaxIncomingStreams), + KeepAlivePeriod: time.Duration(pxy.clientCfg.QUICKeepalivePeriod) * time.Second, + }, + ) + if err != nil { + xl.Warn("dial quic error: %v", err) + return + } + // only accept one connection from raddr + c, err := quicListener.Accept(pxy.ctx) + if err != nil { + xl.Error("quic accept connection error: %v", err) + return + } + for { + stream, err := c.AcceptStream(pxy.ctx) + if err != nil { + xl.Debug("quic accept stream error: %v", err) + _ = c.CloseWithError(0, "") + return + } + go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + frpNet.QuicStreamToNetConn(stream, c), []byte(pxy.cfg.Sk), startWorkConnMsg) + } +} diff --git a/client/service.go b/client/service.go index bac57167f54..83439c7f7d2 100644 --- a/client/service.go +++ b/client/service.go @@ -72,9 +72,6 @@ type Service struct { // string if no configuration file was used. cfgFile string - // This is configured by the login response from frps - serverUDPPort int - exit uint32 // 0 means not exit // service context @@ -141,7 +138,7 @@ func (svr *Service) Run() error { util.RandomSleep(10*time.Second, 0.9, 1.1) } else { // login success - ctl := NewControl(svr.ctx, svr.runID, conn, cm, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.serverUDPPort, svr.authSetter) + ctl := NewControl(svr.ctx, svr.runID, conn, cm, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.authSetter) ctl.Run() svr.ctlMu.Lock() svr.ctl = ctl @@ -223,7 +220,7 @@ func (svr *Service) keepControllerWorking() { // reconnect success, init delayTime delayTime = time.Second - ctl := NewControl(svr.ctx, svr.runID, conn, cm, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.serverUDPPort, svr.authSetter) + ctl := NewControl(svr.ctx, svr.runID, conn, cm, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.authSetter) ctl.Run() svr.ctlMu.Lock() if svr.ctl != nil { @@ -295,8 +292,7 @@ func (svr *Service) login() (conn net.Conn, cm *ConnectionManager, err error) { xl.ResetPrefixes() xl.AppendPrefix(svr.runID) - svr.serverUDPPort = loginRespMsg.ServerUDPPort - xl.Info("login to server success, get run id [%s], server udp port [%d]", loginRespMsg.RunID, loginRespMsg.ServerUDPPort) + xl.Info("login to server success, get run id [%s]", loginRespMsg.RunID) return } diff --git a/client/visitor.go b/client/visitor.go deleted file mode 100644 index 9d51ee3391c..00000000000 --- a/client/visitor.go +++ /dev/null @@ -1,575 +0,0 @@ -// Copyright 2017 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package client - -import ( - "bytes" - "context" - "fmt" - "io" - "net" - "strconv" - "sync" - "time" - - "github.com/fatedier/golib/errors" - frpIo "github.com/fatedier/golib/io" - "github.com/fatedier/golib/pool" - fmux "github.com/hashicorp/yamux" - - "github.com/fatedier/frp/pkg/config" - "github.com/fatedier/frp/pkg/msg" - "github.com/fatedier/frp/pkg/proto/udp" - frpNet "github.com/fatedier/frp/pkg/util/net" - "github.com/fatedier/frp/pkg/util/util" - "github.com/fatedier/frp/pkg/util/xlog" -) - -// Visitor is used for forward traffics from local port to remote service. -type Visitor interface { - Run() error - Close() -} - -func NewVisitor(ctx context.Context, ctl *Control, cfg config.VisitorConf) (visitor Visitor) { - xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseInfo().ProxyName) - baseVisitor := BaseVisitor{ - ctl: ctl, - ctx: xlog.NewContext(ctx, xl), - } - switch cfg := cfg.(type) { - case *config.STCPVisitorConf: - visitor = &STCPVisitor{ - BaseVisitor: &baseVisitor, - cfg: cfg, - } - case *config.XTCPVisitorConf: - visitor = &XTCPVisitor{ - BaseVisitor: &baseVisitor, - cfg: cfg, - } - case *config.SUDPVisitorConf: - visitor = &SUDPVisitor{ - BaseVisitor: &baseVisitor, - cfg: cfg, - checkCloseCh: make(chan struct{}), - } - } - return -} - -type BaseVisitor struct { - ctl *Control - l net.Listener - - mu sync.RWMutex - ctx context.Context -} - -type STCPVisitor struct { - *BaseVisitor - - cfg *config.STCPVisitorConf -} - -func (sv *STCPVisitor) Run() (err error) { - sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) - if err != nil { - return - } - - go sv.worker() - return -} - -func (sv *STCPVisitor) Close() { - sv.l.Close() -} - -func (sv *STCPVisitor) worker() { - xl := xlog.FromContextSafe(sv.ctx) - for { - conn, err := sv.l.Accept() - if err != nil { - xl.Warn("stcp local listener closed") - return - } - - go sv.handleConn(conn) - } -} - -func (sv *STCPVisitor) handleConn(userConn net.Conn) { - xl := xlog.FromContextSafe(sv.ctx) - defer userConn.Close() - - xl.Debug("get a new stcp user connection") - visitorConn, err := sv.ctl.connectServer() - if err != nil { - return - } - defer visitorConn.Close() - - now := time.Now().Unix() - newVisitorConnMsg := &msg.NewVisitorConn{ - ProxyName: sv.cfg.ServerName, - SignKey: util.GetAuthKey(sv.cfg.Sk, now), - Timestamp: now, - UseEncryption: sv.cfg.UseEncryption, - UseCompression: sv.cfg.UseCompression, - } - err = msg.WriteMsg(visitorConn, newVisitorConnMsg) - if err != nil { - xl.Warn("send newVisitorConnMsg to server error: %v", err) - return - } - - var newVisitorConnRespMsg msg.NewVisitorConnResp - _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) - err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) - if err != nil { - xl.Warn("get newVisitorConnRespMsg error: %v", err) - return - } - _ = visitorConn.SetReadDeadline(time.Time{}) - - if newVisitorConnRespMsg.Error != "" { - xl.Warn("start new visitor connection error: %s", newVisitorConnRespMsg.Error) - return - } - - var remote io.ReadWriteCloser - remote = visitorConn - if sv.cfg.UseEncryption { - remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk)) - if err != nil { - xl.Error("create encryption stream error: %v", err) - return - } - } - - if sv.cfg.UseCompression { - remote = frpIo.WithCompression(remote) - } - - frpIo.Join(userConn, remote) -} - -type XTCPVisitor struct { - *BaseVisitor - - cfg *config.XTCPVisitorConf -} - -func (sv *XTCPVisitor) Run() (err error) { - sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) - if err != nil { - return - } - - go sv.worker() - return -} - -func (sv *XTCPVisitor) Close() { - sv.l.Close() -} - -func (sv *XTCPVisitor) worker() { - xl := xlog.FromContextSafe(sv.ctx) - for { - conn, err := sv.l.Accept() - if err != nil { - xl.Warn("xtcp local listener closed") - return - } - - go sv.handleConn(conn) - } -} - -func (sv *XTCPVisitor) handleConn(userConn net.Conn) { - xl := xlog.FromContextSafe(sv.ctx) - defer userConn.Close() - - xl.Debug("get a new xtcp user connection") - if sv.ctl.serverUDPPort == 0 { - xl.Error("xtcp is not supported by server") - return - } - - serverAddr := sv.ctl.clientCfg.NatHoleServerAddr - if serverAddr == "" { - serverAddr = sv.ctl.clientCfg.ServerAddr - } - raddr, err := net.ResolveUDPAddr("udp", - net.JoinHostPort(serverAddr, strconv.Itoa(sv.ctl.serverUDPPort))) - if err != nil { - xl.Error("resolve server UDP addr error") - return - } - - visitorConn, err := net.DialUDP("udp", nil, raddr) - if err != nil { - xl.Warn("dial server udp addr error: %v", err) - return - } - defer visitorConn.Close() - - now := time.Now().Unix() - natHoleVisitorMsg := &msg.NatHoleVisitor{ - ProxyName: sv.cfg.ServerName, - SignKey: util.GetAuthKey(sv.cfg.Sk, now), - Timestamp: now, - } - err = msg.WriteMsg(visitorConn, natHoleVisitorMsg) - if err != nil { - xl.Warn("send natHoleVisitorMsg to server error: %v", err) - return - } - - // Wait for client address at most 10 seconds. - var natHoleRespMsg msg.NatHoleResp - _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) - buf := pool.GetBuf(1024) - n, err := visitorConn.Read(buf) - if err != nil { - xl.Warn("get natHoleRespMsg error: %v", err) - return - } - - err = msg.ReadMsgInto(bytes.NewReader(buf[:n]), &natHoleRespMsg) - if err != nil { - xl.Warn("get natHoleRespMsg error: %v", err) - return - } - _ = visitorConn.SetReadDeadline(time.Time{}) - pool.PutBuf(buf) - - if natHoleRespMsg.Error != "" { - xl.Error("natHoleRespMsg get error info: %s", natHoleRespMsg.Error) - return - } - - xl.Trace("get natHoleRespMsg, sid [%s], client address [%s], visitor address [%s]", natHoleRespMsg.Sid, natHoleRespMsg.ClientAddr, natHoleRespMsg.VisitorAddr) - - // Close visitorConn, so we can use it's local address. - visitorConn.Close() - - // send sid message to client - laddr, _ := net.ResolveUDPAddr("udp", visitorConn.LocalAddr().String()) - daddr, err := net.ResolveUDPAddr("udp", natHoleRespMsg.ClientAddr) - if err != nil { - xl.Error("resolve client udp address error: %v", err) - return - } - lConn, err := net.DialUDP("udp", laddr, daddr) - if err != nil { - xl.Error("dial client udp address error: %v", err) - return - } - defer lConn.Close() - - if _, err := lConn.Write([]byte(natHoleRespMsg.Sid)); err != nil { - xl.Error("write sid error: %v", err) - return - } - - // read ack sid from client - sidBuf := pool.GetBuf(1024) - _ = lConn.SetReadDeadline(time.Now().Add(8 * time.Second)) - n, err = lConn.Read(sidBuf) - if err != nil { - xl.Warn("get sid from client error: %v", err) - return - } - _ = lConn.SetReadDeadline(time.Time{}) - if string(sidBuf[:n]) != natHoleRespMsg.Sid { - xl.Warn("incorrect sid from client") - return - } - pool.PutBuf(sidBuf) - - xl.Info("nat hole connection make success, sid [%s]", natHoleRespMsg.Sid) - - // wrap kcp connection - var remote io.ReadWriteCloser - remote, err = frpNet.NewKCPConnFromUDP(lConn, true, natHoleRespMsg.ClientAddr) - if err != nil { - xl.Error("create kcp connection from udp connection error: %v", err) - return - } - - fmuxCfg := fmux.DefaultConfig() - fmuxCfg.KeepAliveInterval = 5 * time.Second - fmuxCfg.LogOutput = io.Discard - sess, err := fmux.Client(remote, fmuxCfg) - if err != nil { - xl.Error("create yamux session error: %v", err) - return - } - defer sess.Close() - muxConn, err := sess.Open() - if err != nil { - xl.Error("open yamux stream error: %v", err) - return - } - - var muxConnRWCloser io.ReadWriteCloser = muxConn - if sv.cfg.UseEncryption { - muxConnRWCloser, err = frpIo.WithEncryption(muxConnRWCloser, []byte(sv.cfg.Sk)) - if err != nil { - xl.Error("create encryption stream error: %v", err) - return - } - } - if sv.cfg.UseCompression { - muxConnRWCloser = frpIo.WithCompression(muxConnRWCloser) - } - - _, _, errs := frpIo.Join(userConn, muxConnRWCloser) - xl.Debug("join connections closed") - if len(errs) > 0 { - xl.Trace("join connections errors: %v", errs) - } -} - -type SUDPVisitor struct { - *BaseVisitor - - checkCloseCh chan struct{} - // udpConn is the listener of udp packet - udpConn *net.UDPConn - readCh chan *msg.UDPPacket - sendCh chan *msg.UDPPacket - - cfg *config.SUDPVisitorConf -} - -// SUDP Run start listen a udp port -func (sv *SUDPVisitor) Run() (err error) { - xl := xlog.FromContextSafe(sv.ctx) - - addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) - if err != nil { - return fmt.Errorf("sudp ResolveUDPAddr error: %v", err) - } - - sv.udpConn, err = net.ListenUDP("udp", addr) - if err != nil { - return fmt.Errorf("listen udp port %s error: %v", addr.String(), err) - } - - sv.sendCh = make(chan *msg.UDPPacket, 1024) - sv.readCh = make(chan *msg.UDPPacket, 1024) - - xl.Info("sudp start to work, listen on %s", addr) - - go sv.dispatcher() - go udp.ForwardUserConn(sv.udpConn, sv.readCh, sv.sendCh, int(sv.ctl.clientCfg.UDPPacketSize)) - - return -} - -func (sv *SUDPVisitor) dispatcher() { - xl := xlog.FromContextSafe(sv.ctx) - - var ( - visitorConn net.Conn - err error - - firstPacket *msg.UDPPacket - ) - - for { - select { - case firstPacket = <-sv.sendCh: - if firstPacket == nil { - xl.Info("frpc sudp visitor proxy is closed") - return - } - case <-sv.checkCloseCh: - xl.Info("frpc sudp visitor proxy is closed") - return - } - - visitorConn, err = sv.getNewVisitorConn() - if err != nil { - xl.Warn("newVisitorConn to frps error: %v, try to reconnect", err) - continue - } - - // visitorConn always be closed when worker done. - sv.worker(visitorConn, firstPacket) - - select { - case <-sv.checkCloseCh: - return - default: - } - } -} - -func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { - xl := xlog.FromContextSafe(sv.ctx) - xl.Debug("starting sudp proxy worker") - - wg := &sync.WaitGroup{} - wg.Add(2) - closeCh := make(chan struct{}) - - // udp service -> frpc -> frps -> frpc visitor -> user - workConnReaderFn := func(conn net.Conn) { - defer func() { - conn.Close() - close(closeCh) - wg.Done() - }() - - for { - var ( - rawMsg msg.Message - errRet error - ) - - // frpc will send heartbeat in workConn to frpc visitor for keeping alive - _ = conn.SetReadDeadline(time.Now().Add(60 * time.Second)) - if rawMsg, errRet = msg.ReadMsg(conn); errRet != nil { - xl.Warn("read from workconn for user udp conn error: %v", errRet) - return - } - - _ = conn.SetReadDeadline(time.Time{}) - switch m := rawMsg.(type) { - case *msg.Ping: - xl.Debug("frpc visitor get ping message from frpc") - continue - case *msg.UDPPacket: - if errRet := errors.PanicToError(func() { - sv.readCh <- m - xl.Trace("frpc visitor get udp packet from workConn: %s", m.Content) - }); errRet != nil { - xl.Info("reader goroutine for udp work connection closed") - return - } - } - } - } - - // udp service <- frpc <- frps <- frpc visitor <- user - workConnSenderFn := func(conn net.Conn) { - defer func() { - conn.Close() - wg.Done() - }() - - var errRet error - if firstPacket != nil { - if errRet = msg.WriteMsg(conn, firstPacket); errRet != nil { - xl.Warn("sender goroutine for udp work connection closed: %v", errRet) - return - } - xl.Trace("send udp package to workConn: %s", firstPacket.Content) - } - - for { - select { - case udpMsg, ok := <-sv.sendCh: - if !ok { - xl.Info("sender goroutine for udp work connection closed") - return - } - - if errRet = msg.WriteMsg(conn, udpMsg); errRet != nil { - xl.Warn("sender goroutine for udp work connection closed: %v", errRet) - return - } - xl.Trace("send udp package to workConn: %s", udpMsg.Content) - case <-closeCh: - return - } - } - } - - go workConnReaderFn(workConn) - go workConnSenderFn(workConn) - - wg.Wait() - xl.Info("sudp worker is closed") -} - -func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { - xl := xlog.FromContextSafe(sv.ctx) - visitorConn, err := sv.ctl.connectServer() - if err != nil { - return nil, fmt.Errorf("frpc connect frps error: %v", err) - } - - now := time.Now().Unix() - newVisitorConnMsg := &msg.NewVisitorConn{ - ProxyName: sv.cfg.ServerName, - SignKey: util.GetAuthKey(sv.cfg.Sk, now), - Timestamp: now, - UseEncryption: sv.cfg.UseEncryption, - UseCompression: sv.cfg.UseCompression, - } - err = msg.WriteMsg(visitorConn, newVisitorConnMsg) - if err != nil { - return nil, fmt.Errorf("frpc send newVisitorConnMsg to frps error: %v", err) - } - - var newVisitorConnRespMsg msg.NewVisitorConnResp - _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) - err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) - if err != nil { - return nil, fmt.Errorf("frpc read newVisitorConnRespMsg error: %v", err) - } - _ = visitorConn.SetReadDeadline(time.Time{}) - - if newVisitorConnRespMsg.Error != "" { - return nil, fmt.Errorf("start new visitor connection error: %s", newVisitorConnRespMsg.Error) - } - - var remote io.ReadWriteCloser - remote = visitorConn - if sv.cfg.UseEncryption { - remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk)) - if err != nil { - xl.Error("create encryption stream error: %v", err) - return nil, err - } - } - if sv.cfg.UseCompression { - remote = frpIo.WithCompression(remote) - } - return frpNet.WrapReadWriteCloserToConn(remote, visitorConn), nil -} - -func (sv *SUDPVisitor) Close() { - sv.mu.Lock() - defer sv.mu.Unlock() - - select { - case <-sv.checkCloseCh: - return - default: - close(sv.checkCloseCh) - } - if sv.udpConn != nil { - sv.udpConn.Close() - } - close(sv.readCh) - close(sv.sendCh) -} diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go new file mode 100644 index 00000000000..2a7cf64039a --- /dev/null +++ b/client/visitor/stcp.go @@ -0,0 +1,118 @@ +// Copyright 2017 fatedier, fatedier@gmail.com +// +// Licensed 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. + +package visitor + +import ( + "io" + "net" + "strconv" + "time" + + frpIo "github.com/fatedier/golib/io" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/xlog" +) + +type STCPVisitor struct { + *BaseVisitor + + cfg *config.STCPVisitorConf +} + +func (sv *STCPVisitor) Run() (err error) { + sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) + if err != nil { + return + } + + go sv.worker() + return +} + +func (sv *STCPVisitor) Close() { + sv.l.Close() +} + +func (sv *STCPVisitor) worker() { + xl := xlog.FromContextSafe(sv.ctx) + for { + conn, err := sv.l.Accept() + if err != nil { + xl.Warn("stcp local listener closed") + return + } + + go sv.handleConn(conn) + } +} + +func (sv *STCPVisitor) handleConn(userConn net.Conn) { + xl := xlog.FromContextSafe(sv.ctx) + defer userConn.Close() + + xl.Debug("get a new stcp user connection") + visitorConn, err := sv.connectServer() + if err != nil { + return + } + defer visitorConn.Close() + + now := time.Now().Unix() + newVisitorConnMsg := &msg.NewVisitorConn{ + ProxyName: sv.cfg.ServerName, + SignKey: util.GetAuthKey(sv.cfg.Sk, now), + Timestamp: now, + UseEncryption: sv.cfg.UseEncryption, + UseCompression: sv.cfg.UseCompression, + } + err = msg.WriteMsg(visitorConn, newVisitorConnMsg) + if err != nil { + xl.Warn("send newVisitorConnMsg to server error: %v", err) + return + } + + var newVisitorConnRespMsg msg.NewVisitorConnResp + _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) + err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) + if err != nil { + xl.Warn("get newVisitorConnRespMsg error: %v", err) + return + } + _ = visitorConn.SetReadDeadline(time.Time{}) + + if newVisitorConnRespMsg.Error != "" { + xl.Warn("start new visitor connection error: %s", newVisitorConnRespMsg.Error) + return + } + + var remote io.ReadWriteCloser + remote = visitorConn + if sv.cfg.UseEncryption { + remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk)) + if err != nil { + xl.Error("create encryption stream error: %v", err) + return + } + } + + if sv.cfg.UseCompression { + remote = frpIo.WithCompression(remote) + } + + frpIo.Join(userConn, remote) +} diff --git a/client/visitor/sudp.go b/client/visitor/sudp.go new file mode 100644 index 00000000000..cd6f2afeda6 --- /dev/null +++ b/client/visitor/sudp.go @@ -0,0 +1,262 @@ +// Copyright 2017 fatedier, fatedier@gmail.com +// +// Licensed 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. + +package visitor + +import ( + "fmt" + "io" + "net" + "strconv" + "sync" + "time" + + "github.com/fatedier/golib/errors" + frpIo "github.com/fatedier/golib/io" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/proto/udp" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/xlog" +) + +type SUDPVisitor struct { + *BaseVisitor + + checkCloseCh chan struct{} + // udpConn is the listener of udp packet + udpConn *net.UDPConn + readCh chan *msg.UDPPacket + sendCh chan *msg.UDPPacket + + cfg *config.SUDPVisitorConf +} + +// SUDP Run start listen a udp port +func (sv *SUDPVisitor) Run() (err error) { + xl := xlog.FromContextSafe(sv.ctx) + + addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) + if err != nil { + return fmt.Errorf("sudp ResolveUDPAddr error: %v", err) + } + + sv.udpConn, err = net.ListenUDP("udp", addr) + if err != nil { + return fmt.Errorf("listen udp port %s error: %v", addr.String(), err) + } + + sv.sendCh = make(chan *msg.UDPPacket, 1024) + sv.readCh = make(chan *msg.UDPPacket, 1024) + + xl.Info("sudp start to work, listen on %s", addr) + + go sv.dispatcher() + go udp.ForwardUserConn(sv.udpConn, sv.readCh, sv.sendCh, int(sv.clientCfg.UDPPacketSize)) + + return +} + +func (sv *SUDPVisitor) dispatcher() { + xl := xlog.FromContextSafe(sv.ctx) + + var ( + visitorConn net.Conn + err error + + firstPacket *msg.UDPPacket + ) + + for { + select { + case firstPacket = <-sv.sendCh: + if firstPacket == nil { + xl.Info("frpc sudp visitor proxy is closed") + return + } + case <-sv.checkCloseCh: + xl.Info("frpc sudp visitor proxy is closed") + return + } + + visitorConn, err = sv.getNewVisitorConn() + if err != nil { + xl.Warn("newVisitorConn to frps error: %v, try to reconnect", err) + continue + } + + // visitorConn always be closed when worker done. + sv.worker(visitorConn, firstPacket) + + select { + case <-sv.checkCloseCh: + return + default: + } + } +} + +func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { + xl := xlog.FromContextSafe(sv.ctx) + xl.Debug("starting sudp proxy worker") + + wg := &sync.WaitGroup{} + wg.Add(2) + closeCh := make(chan struct{}) + + // udp service -> frpc -> frps -> frpc visitor -> user + workConnReaderFn := func(conn net.Conn) { + defer func() { + conn.Close() + close(closeCh) + wg.Done() + }() + + for { + var ( + rawMsg msg.Message + errRet error + ) + + // frpc will send heartbeat in workConn to frpc visitor for keeping alive + _ = conn.SetReadDeadline(time.Now().Add(60 * time.Second)) + if rawMsg, errRet = msg.ReadMsg(conn); errRet != nil { + xl.Warn("read from workconn for user udp conn error: %v", errRet) + return + } + + _ = conn.SetReadDeadline(time.Time{}) + switch m := rawMsg.(type) { + case *msg.Ping: + xl.Debug("frpc visitor get ping message from frpc") + continue + case *msg.UDPPacket: + if errRet := errors.PanicToError(func() { + sv.readCh <- m + xl.Trace("frpc visitor get udp packet from workConn: %s", m.Content) + }); errRet != nil { + xl.Info("reader goroutine for udp work connection closed") + return + } + } + } + } + + // udp service <- frpc <- frps <- frpc visitor <- user + workConnSenderFn := func(conn net.Conn) { + defer func() { + conn.Close() + wg.Done() + }() + + var errRet error + if firstPacket != nil { + if errRet = msg.WriteMsg(conn, firstPacket); errRet != nil { + xl.Warn("sender goroutine for udp work connection closed: %v", errRet) + return + } + xl.Trace("send udp package to workConn: %s", firstPacket.Content) + } + + for { + select { + case udpMsg, ok := <-sv.sendCh: + if !ok { + xl.Info("sender goroutine for udp work connection closed") + return + } + + if errRet = msg.WriteMsg(conn, udpMsg); errRet != nil { + xl.Warn("sender goroutine for udp work connection closed: %v", errRet) + return + } + xl.Trace("send udp package to workConn: %s", udpMsg.Content) + case <-closeCh: + return + } + } + } + + go workConnReaderFn(workConn) + go workConnSenderFn(workConn) + + wg.Wait() + xl.Info("sudp worker is closed") +} + +func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { + xl := xlog.FromContextSafe(sv.ctx) + visitorConn, err := sv.connectServer() + if err != nil { + return nil, fmt.Errorf("frpc connect frps error: %v", err) + } + + now := time.Now().Unix() + newVisitorConnMsg := &msg.NewVisitorConn{ + ProxyName: sv.cfg.ServerName, + SignKey: util.GetAuthKey(sv.cfg.Sk, now), + Timestamp: now, + UseEncryption: sv.cfg.UseEncryption, + UseCompression: sv.cfg.UseCompression, + } + err = msg.WriteMsg(visitorConn, newVisitorConnMsg) + if err != nil { + return nil, fmt.Errorf("frpc send newVisitorConnMsg to frps error: %v", err) + } + + var newVisitorConnRespMsg msg.NewVisitorConnResp + _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) + err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) + if err != nil { + return nil, fmt.Errorf("frpc read newVisitorConnRespMsg error: %v", err) + } + _ = visitorConn.SetReadDeadline(time.Time{}) + + if newVisitorConnRespMsg.Error != "" { + return nil, fmt.Errorf("start new visitor connection error: %s", newVisitorConnRespMsg.Error) + } + + var remote io.ReadWriteCloser + remote = visitorConn + if sv.cfg.UseEncryption { + remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk)) + if err != nil { + xl.Error("create encryption stream error: %v", err) + return nil, err + } + } + if sv.cfg.UseCompression { + remote = frpIo.WithCompression(remote) + } + return frpNet.WrapReadWriteCloserToConn(remote, visitorConn), nil +} + +func (sv *SUDPVisitor) Close() { + sv.mu.Lock() + defer sv.mu.Unlock() + + select { + case <-sv.checkCloseCh: + return + default: + close(sv.checkCloseCh) + } + if sv.udpConn != nil { + sv.udpConn.Close() + } + close(sv.readCh) + close(sv.sendCh) +} diff --git a/client/visitor/visitor.go b/client/visitor/visitor.go new file mode 100644 index 00000000000..1f6471d9f82 --- /dev/null +++ b/client/visitor/visitor.go @@ -0,0 +1,77 @@ +// Copyright 2017 fatedier, fatedier@gmail.com +// +// Licensed 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. + +package visitor + +import ( + "context" + "net" + "sync" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/pkg/util/xlog" +) + +// Visitor is used for forward traffics from local port tot remote service. +type Visitor interface { + Run() error + Close() +} + +func NewVisitor( + ctx context.Context, + cfg config.VisitorConf, + clientCfg config.ClientCommonConf, + connectServer func() (net.Conn, error), + msgTransporter transport.MessageTransporter, +) (visitor Visitor) { + xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseInfo().ProxyName) + baseVisitor := BaseVisitor{ + clientCfg: clientCfg, + connectServer: connectServer, + msgTransporter: msgTransporter, + ctx: xlog.NewContext(ctx, xl), + } + switch cfg := cfg.(type) { + case *config.STCPVisitorConf: + visitor = &STCPVisitor{ + BaseVisitor: &baseVisitor, + cfg: cfg, + } + case *config.XTCPVisitorConf: + visitor = &XTCPVisitor{ + BaseVisitor: &baseVisitor, + cfg: cfg, + startTunnelCh: make(chan struct{}), + } + case *config.SUDPVisitorConf: + visitor = &SUDPVisitor{ + BaseVisitor: &baseVisitor, + cfg: cfg, + checkCloseCh: make(chan struct{}), + } + } + return +} + +type BaseVisitor struct { + clientCfg config.ClientCommonConf + connectServer func() (net.Conn, error) + msgTransporter transport.MessageTransporter + l net.Listener + + mu sync.RWMutex + ctx context.Context +} diff --git a/client/visitor_manager.go b/client/visitor/visitor_manager.go similarity index 70% rename from client/visitor_manager.go rename to client/visitor/visitor_manager.go index 8df47150937..02b7e493d49 100644 --- a/client/visitor_manager.go +++ b/client/visitor/visitor_manager.go @@ -12,22 +12,25 @@ // See the License for the specific language governing permissions and // limitations under the License. -package client +package visitor import ( "context" + "net" "sync" "time" "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" ) -type VisitorManager struct { - ctl *Control - - cfgs map[string]config.VisitorConf - visitors map[string]Visitor +type Manager struct { + clientCfg config.ClientCommonConf + connectServer func() (net.Conn, error) + msgTransporter transport.MessageTransporter + cfgs map[string]config.VisitorConf + visitors map[string]Visitor checkInterval time.Duration @@ -37,18 +40,25 @@ type VisitorManager struct { stopCh chan struct{} } -func NewVisitorManager(ctx context.Context, ctl *Control) *VisitorManager { - return &VisitorManager{ - ctl: ctl, - cfgs: make(map[string]config.VisitorConf), - visitors: make(map[string]Visitor), - checkInterval: 10 * time.Second, - ctx: ctx, - stopCh: make(chan struct{}), +func NewManager( + ctx context.Context, + clientCfg config.ClientCommonConf, + connectServer func() (net.Conn, error), + msgTransporter transport.MessageTransporter, +) *Manager { + return &Manager{ + clientCfg: clientCfg, + connectServer: connectServer, + msgTransporter: msgTransporter, + cfgs: make(map[string]config.VisitorConf), + visitors: make(map[string]Visitor), + checkInterval: 10 * time.Second, + ctx: ctx, + stopCh: make(chan struct{}), } } -func (vm *VisitorManager) Run() { +func (vm *Manager) Run() { xl := xlog.FromContextSafe(vm.ctx) ticker := time.NewTicker(vm.checkInterval) @@ -74,10 +84,10 @@ func (vm *VisitorManager) Run() { } // Hold lock before calling this function. -func (vm *VisitorManager) startVisitor(cfg config.VisitorConf) (err error) { +func (vm *Manager) startVisitor(cfg config.VisitorConf) (err error) { xl := xlog.FromContextSafe(vm.ctx) name := cfg.GetBaseInfo().ProxyName - visitor := NewVisitor(vm.ctx, vm.ctl, cfg) + visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.connectServer, vm.msgTransporter) err = visitor.Run() if err != nil { xl.Warn("start error: %v", err) @@ -88,7 +98,7 @@ func (vm *VisitorManager) startVisitor(cfg config.VisitorConf) (err error) { return } -func (vm *VisitorManager) Reload(cfgs map[string]config.VisitorConf) { +func (vm *Manager) Reload(cfgs map[string]config.VisitorConf) { xl := xlog.FromContextSafe(vm.ctx) vm.mu.Lock() defer vm.mu.Unlock() @@ -129,7 +139,7 @@ func (vm *VisitorManager) Reload(cfgs map[string]config.VisitorConf) { } } -func (vm *VisitorManager) Close() { +func (vm *Manager) Close() { vm.mu.Lock() defer vm.mu.Unlock() for _, v := range vm.visitors { diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go new file mode 100644 index 00000000000..6ace7688f27 --- /dev/null +++ b/client/visitor/xtcp.go @@ -0,0 +1,410 @@ +// Copyright 2017 fatedier, fatedier@gmail.com +// +// Licensed 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. + +package visitor + +import ( + "context" + "errors" + "fmt" + "io" + "net" + "strconv" + "sync" + "time" + + frpIo "github.com/fatedier/golib/io" + fmux "github.com/hashicorp/yamux" + quic "github.com/quic-go/quic-go" + "golang.org/x/time/rate" + + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/nathole" + "github.com/fatedier/frp/pkg/transport" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/xlog" +) + +var ErrNoTunnelSession = errors.New("no tunnel session") + +type XTCPVisitor struct { + *BaseVisitor + session TunnelSession + startTunnelCh chan struct{} + retryLimiter *rate.Limiter + cancel context.CancelFunc + + cfg *config.XTCPVisitorConf +} + +func (sv *XTCPVisitor) Run() (err error) { + sv.ctx, sv.cancel = context.WithCancel(sv.ctx) + + if sv.cfg.Protocol == "kcp" { + sv.session = NewKCPTunnelSession() + } else { + sv.session = NewQUICTunnelSession(&sv.clientCfg) + } + + sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) + if err != nil { + return + } + + go sv.worker() + go sv.processTunnelStartEvents() + if sv.cfg.KeepTunnelOpen { + sv.retryLimiter = rate.NewLimiter(rate.Every(time.Hour/time.Duration(sv.cfg.MaxRetriesAnHour)), sv.cfg.MaxRetriesAnHour) + go sv.keepTunnelOpenWorker() + } + return +} + +func (sv *XTCPVisitor) Close() { + sv.l.Close() + sv.cancel() + if sv.session != nil { + sv.session.Close() + } +} + +func (sv *XTCPVisitor) worker() { + xl := xlog.FromContextSafe(sv.ctx) + for { + conn, err := sv.l.Accept() + if err != nil { + xl.Warn("xtcp local listener closed") + return + } + + go sv.handleConn(conn) + } +} + +func (sv *XTCPVisitor) processTunnelStartEvents() { + for { + select { + case <-sv.ctx.Done(): + return + case <-sv.startTunnelCh: + start := time.Now() + sv.makeNatHole() + duration := time.Since(start) + // avoid too frequently + if duration < 10*time.Second { + time.Sleep(10*time.Second - duration) + } + } + } +} + +func (sv *XTCPVisitor) keepTunnelOpenWorker() { + xl := xlog.FromContextSafe(sv.ctx) + ticker := time.NewTicker(time.Duration(sv.cfg.MinRetryInterval) * time.Second) + defer ticker.Stop() + + sv.startTunnelCh <- struct{}{} + for { + select { + case <-sv.ctx.Done(): + return + case <-ticker.C: + xl.Debug("keepTunnelOpenWorker try to check tunnel...") + conn, err := sv.getTunnelConn() + if err != nil { + xl.Warn("keepTunnelOpenWorker get tunnel connection error: %v", err) + _ = sv.retryLimiter.Wait(sv.ctx) + continue + } + xl.Debug("keepTunnelOpenWorker check success") + if conn != nil { + conn.Close() + } + } + } +} + +func (sv *XTCPVisitor) handleConn(userConn net.Conn) { + xl := xlog.FromContextSafe(sv.ctx) + defer userConn.Close() + + xl.Debug("get a new xtcp user connection") + + // Open a tunnel connection to the server. If there is already a successful hole-punching connection, + // it will be reused. Otherwise, it will block and wait for a successful hole-punching connection until timeout. + tunnelConn, err := sv.openTunnel() + if err != nil { + xl.Error("open tunnel error: %v", err) + return + } + + var muxConnRWCloser io.ReadWriteCloser = tunnelConn + if sv.cfg.UseEncryption { + muxConnRWCloser, err = frpIo.WithEncryption(muxConnRWCloser, []byte(sv.cfg.Sk)) + if err != nil { + xl.Error("create encryption stream error: %v", err) + return + } + } + if sv.cfg.UseCompression { + muxConnRWCloser = frpIo.WithCompression(muxConnRWCloser) + } + + _, _, errs := frpIo.Join(userConn, muxConnRWCloser) + xl.Debug("join connections closed") + if len(errs) > 0 { + xl.Trace("join connections errors: %v", errs) + } +} + +// openTunnel will open a tunnel connection to the target server. +func (sv *XTCPVisitor) openTunnel() (conn net.Conn, err error) { + xl := xlog.FromContextSafe(sv.ctx) + ticker := time.NewTicker(500 * time.Millisecond) + defer ticker.Stop() + + timeoutC := time.After(20 * time.Second) + immediateTrigger := make(chan struct{}, 1) + defer close(immediateTrigger) + immediateTrigger <- struct{}{} + + for { + select { + case <-sv.ctx.Done(): + return nil, sv.ctx.Err() + case <-immediateTrigger: + conn, err = sv.getTunnelConn() + case <-ticker.C: + conn, err = sv.getTunnelConn() + case <-timeoutC: + return nil, fmt.Errorf("open tunnel timeout") + } + + if err != nil { + if err != ErrNoTunnelSession { + xl.Warn("get tunnel connection error: %v", err) + } + continue + } + return conn, nil + } +} + +func (sv *XTCPVisitor) getTunnelConn() (net.Conn, error) { + conn, err := sv.session.OpenConn(sv.ctx) + if err == nil { + return conn, nil + } + sv.session.Close() + + select { + case sv.startTunnelCh <- struct{}{}: + default: + } + return nil, err +} + +// 0. PreCheck +// 1. Prepare +// 2. ExchangeInfo +// 3. MakeNATHole +// 4. Create a tunnel session using an underlying UDP connection. +func (sv *XTCPVisitor) makeNatHole() { + xl := xlog.FromContextSafe(sv.ctx) + if err := nathole.PreCheck(sv.ctx, sv.msgTransporter, sv.cfg.ServerName, 5*time.Second); err != nil { + xl.Warn("nathole precheck error: %v", err) + return + } + + prepareResult, err := nathole.Prepare([]string{sv.clientCfg.NatHoleSTUNServer}) + if err != nil { + xl.Warn("nathole prepare error: %v", err) + return + } + xl.Info("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", + prepareResult.NatType, prepareResult.Behavior, prepareResult.Addrs, prepareResult.AssistedAddrs) + + listenConn := prepareResult.ListenConn + + // send NatHoleVisitor to server + now := time.Now().Unix() + transactionID := nathole.NewTransactionID() + natHoleVisitorMsg := &msg.NatHoleVisitor{ + TransactionID: transactionID, + ProxyName: sv.cfg.ServerName, + Protocol: sv.cfg.Protocol, + SignKey: util.GetAuthKey(sv.cfg.Sk, now), + Timestamp: now, + MappedAddrs: prepareResult.Addrs, + AssistedAddrs: prepareResult.AssistedAddrs, + } + + natHoleRespMsg, err := nathole.ExchangeInfo(sv.ctx, sv.msgTransporter, transactionID, natHoleVisitorMsg, 5*time.Second) + if err != nil { + listenConn.Close() + xl.Warn("nathole exchange info error: %v", err) + return + } + + xl.Info("get natHoleRespMsg, sid [%s], protocol [%s], candidate address %v, assisted address %v, detectBehavior: %+v", + natHoleRespMsg.Sid, natHoleRespMsg.Protocol, natHoleRespMsg.CandidateAddrs, + natHoleRespMsg.AssistedAddrs, natHoleRespMsg.DetectBehavior) + + newListenConn, raddr, err := nathole.MakeHole(sv.ctx, listenConn, natHoleRespMsg, []byte(sv.cfg.Sk)) + if err != nil { + listenConn.Close() + xl.Warn("make hole error: %v", err) + return + } + listenConn = newListenConn + xl.Info("establishing nat hole connection successful, sid [%s], remoteAddr [%s]", natHoleRespMsg.Sid, raddr) + + if err := sv.session.Init(listenConn, raddr); err != nil { + listenConn.Close() + xl.Warn("init tunnel session error: %v", err) + return + } +} + +type TunnelSession interface { + Init(listenConn *net.UDPConn, raddr *net.UDPAddr) error + OpenConn(context.Context) (net.Conn, error) + Close() +} + +type KCPTunnelSession struct { + session *fmux.Session + lConn *net.UDPConn + mu sync.RWMutex +} + +func NewKCPTunnelSession() TunnelSession { + return &KCPTunnelSession{} +} + +func (ks *KCPTunnelSession) Init(listenConn *net.UDPConn, raddr *net.UDPAddr) error { + listenConn.Close() + laddr, _ := net.ResolveUDPAddr("udp", listenConn.LocalAddr().String()) + lConn, err := net.DialUDP("udp", laddr, raddr) + if err != nil { + return fmt.Errorf("dial udp error: %v", err) + } + remote, err := frpNet.NewKCPConnFromUDP(lConn, true, raddr.String()) + if err != nil { + return fmt.Errorf("create kcp connection from udp connection error: %v", err) + } + + fmuxCfg := fmux.DefaultConfig() + fmuxCfg.KeepAliveInterval = 10 * time.Second + fmuxCfg.MaxStreamWindowSize = 2 * 1024 * 1024 + fmuxCfg.LogOutput = io.Discard + session, err := fmux.Client(remote, fmuxCfg) + if err != nil { + remote.Close() + return fmt.Errorf("initial client session error: %v", err) + } + ks.mu.Lock() + ks.session = session + ks.lConn = lConn + ks.mu.Unlock() + return nil +} + +func (ks *KCPTunnelSession) OpenConn(ctx context.Context) (net.Conn, error) { + ks.mu.RLock() + defer ks.mu.RUnlock() + session := ks.session + if session == nil { + return nil, ErrNoTunnelSession + } + return session.Open() +} + +func (ks *KCPTunnelSession) Close() { + ks.mu.Lock() + defer ks.mu.Unlock() + if ks.session != nil { + _ = ks.session.Close() + ks.session = nil + } + if ks.lConn != nil { + _ = ks.lConn.Close() + ks.lConn = nil + } +} + +type QUICTunnelSession struct { + session quic.Connection + listenConn *net.UDPConn + mu sync.RWMutex + + clientCfg *config.ClientCommonConf +} + +func NewQUICTunnelSession(clientCfg *config.ClientCommonConf) TunnelSession { + return &QUICTunnelSession{ + clientCfg: clientCfg, + } +} + +func (qs *QUICTunnelSession) Init(listenConn *net.UDPConn, raddr *net.UDPAddr) error { + tlsConfig, err := transport.NewClientTLSConfig("", "", "", raddr.String()) + if err != nil { + return fmt.Errorf("create tls config error: %v", err) + } + tlsConfig.NextProtos = []string{"frp"} + quicConn, err := quic.Dial(listenConn, raddr, raddr.String(), tlsConfig, + &quic.Config{ + MaxIdleTimeout: time.Duration(qs.clientCfg.QUICMaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(qs.clientCfg.QUICMaxIncomingStreams), + KeepAlivePeriod: time.Duration(qs.clientCfg.QUICKeepalivePeriod) * time.Second, + }) + if err != nil { + return fmt.Errorf("dial quic error: %v", err) + } + qs.mu.Lock() + qs.session = quicConn + qs.listenConn = listenConn + qs.mu.Unlock() + return nil +} + +func (qs *QUICTunnelSession) OpenConn(ctx context.Context) (net.Conn, error) { + qs.mu.RLock() + defer qs.mu.RUnlock() + session := qs.session + if session == nil { + return nil, ErrNoTunnelSession + } + stream, err := session.OpenStreamSync(ctx) + if err != nil { + return nil, err + } + return frpNet.QuicStreamToNetConn(stream, session), nil +} + +func (qs *QUICTunnelSession) Close() { + qs.mu.Lock() + defer qs.mu.Unlock() + if qs.session != nil { + _ = qs.session.CloseWithError(0, "") + qs.session = nil + } + if qs.listenConn != nil { + _ = qs.listenConn.Close() + qs.listenConn = nil + } +} diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go index f08990bfeb9..459f8d63339 100644 --- a/cmd/frpc/sub/nathole.go +++ b/cmd/frpc/sub/nathole.go @@ -16,9 +16,7 @@ package sub import ( "fmt" - "net" "os" - "strconv" "github.com/spf13/cobra" @@ -28,7 +26,7 @@ import ( var ( natHoleSTUNServer string - serverUDPPort int + natHoleLocalAddr string ) func init() { @@ -37,8 +35,8 @@ func init() { rootCmd.AddCommand(natholeCmd) natholeCmd.AddCommand(natholeDiscoveryCmd) - natholeCmd.PersistentFlags().StringVarP(&natHoleSTUNServer, "nat_hole_stun_server", "", "stun.easyvoip.com:3478", "STUN server address for nathole") - natholeCmd.PersistentFlags().IntVarP(&serverUDPPort, "server_udp_port", "", 0, "UDP port of frps for nathole") + natholeCmd.PersistentFlags().StringVarP(&natHoleSTUNServer, "nat_hole_stun_server", "", "", "STUN server address for nathole") + natholeCmd.PersistentFlags().StringVarP(&natHoleLocalAddr, "nat_hole_local_addr", "l", "", "local address to connect STUN server") } var natholeCmd = &cobra.Command{ @@ -48,48 +46,45 @@ var natholeCmd = &cobra.Command{ var natholeDiscoveryCmd = &cobra.Command{ Use: "discover", - Short: "Discover nathole information by frps and stun server", + Short: "Discover nathole information from stun server", RunE: func(cmd *cobra.Command, args []string) error { // ignore error here, because we can use command line pameters - cfg, _, _, _ := config.ParseClientConfig(cfgFile) + cfg, _, _, err := config.ParseClientConfig(cfgFile) + if err != nil { + cfg = config.GetDefaultClientConf() + } if natHoleSTUNServer != "" { cfg.NatHoleSTUNServer = natHoleSTUNServer } - if serverUDPPort != 0 { - cfg.ServerUDPPort = serverUDPPort - } if err := validateForNatHoleDiscovery(cfg); err != nil { fmt.Println(err) os.Exit(1) } - serverAddr := "" - if cfg.ServerUDPPort != 0 { - serverAddr = net.JoinHostPort(cfg.ServerAddr, strconv.Itoa(cfg.ServerUDPPort)) - } - addresses, err := nathole.Discover( - serverAddr, - []string{cfg.NatHoleSTUNServer}, - []byte(cfg.Token), - ) + addrs, localAddr, err := nathole.Discover([]string{cfg.NatHoleSTUNServer}, natHoleLocalAddr) if err != nil { fmt.Println("discover error:", err) os.Exit(1) } - if len(addresses) < 2 { - fmt.Printf("discover error: can not get enough addresses, need 2, got: %v\n", addresses) + if len(addrs) < 2 { + fmt.Printf("discover error: can not get enough addresses, need 2, got: %v\n", addrs) os.Exit(1) } - natType, behavior, err := nathole.ClassifyNATType(addresses) + localIPs, _ := nathole.ListLocalIPsForNatHole(10) + + natFeature, err := nathole.ClassifyNATFeature(addrs, localIPs) if err != nil { - fmt.Println("classify nat type error:", err) + fmt.Println("classify nat feature error:", err) os.Exit(1) } - fmt.Println("Your NAT type is:", natType) - fmt.Println("Behavior is:", behavior) - fmt.Println("External address is:", addresses) + fmt.Println("STUN server:", cfg.NatHoleSTUNServer) + fmt.Println("Your NAT type is:", natFeature.NatType) + fmt.Println("Behavior is:", natFeature.Behavior) + fmt.Println("External address is:", addrs) + fmt.Println("Local address is:", localAddr.String()) + fmt.Println("Public Network:", natFeature.PublicNetwork) return nil }, } diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index cd39d882ca9..8271d065b5e 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -53,6 +53,7 @@ var ( logFile string logMaxDays int disableLogColor bool + dnsServer string proxyName string localIP string @@ -94,6 +95,7 @@ func RegisterCommonFlags(cmd *cobra.Command) { cmd.PersistentFlags().IntVarP(&logMaxDays, "log_max_days", "", 3, "log file reversed days") cmd.PersistentFlags().BoolVarP(&disableLogColor, "disable_log_color", "", false, "disable log color in console") cmd.PersistentFlags().BoolVarP(&tlsEnable, "tls_enable", "", false, "enable frpc tls") + cmd.PersistentFlags().StringVarP(&dnsServer, "dns_server", "", "", "specify dns server instead of using system default one") } var rootCmd = &cobra.Command{ @@ -108,26 +110,7 @@ var rootCmd = &cobra.Command{ // If cfgDir is not empty, run multiple frpc service for each config file in cfgDir. // Note that it's only designed for testing. It's not guaranteed to be stable. if cfgDir != "" { - var wg sync.WaitGroup - _ = filepath.WalkDir(cfgDir, func(path string, d fs.DirEntry, err error) error { - if err != nil { - return nil - } - if d.IsDir() { - return nil - } - wg.Add(1) - time.Sleep(time.Millisecond) - go func() { - defer wg.Done() - err := runClient(path) - if err != nil { - fmt.Printf("frpc service error for config file [%s]\n", path) - } - }() - return nil - }) - wg.Wait() + _ = runMultipleClients(cfgDir) return nil } @@ -141,6 +124,27 @@ var rootCmd = &cobra.Command{ }, } +func runMultipleClients(cfgDir string) error { + var wg sync.WaitGroup + err := filepath.WalkDir(cfgDir, func(path string, d fs.DirEntry, err error) error { + if err != nil || d.IsDir() { + return nil + } + wg.Add(1) + time.Sleep(time.Millisecond) + go func() { + defer wg.Done() + err := runClient(path) + if err != nil { + fmt.Printf("frpc service error for config file [%s]\n", path) + } + }() + return nil + }) + wg.Wait() + return err +} + func Execute() { if err := rootCmd.Execute(); err != nil { os.Exit(1) @@ -177,6 +181,7 @@ func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) { cfg.LogFile = logFile cfg.LogMaxDays = int64(logMaxDays) cfg.DisableLogColor = disableLogColor + cfg.DNSServer = dnsServer // Only token authentication is supported in cmd mode cfg.ClientConfig = auth.GetDefaultClientConf() diff --git a/go.mod b/go.mod index ba23a5386e8..86801843a12 100644 --- a/go.mod +++ b/go.mod @@ -18,12 +18,14 @@ require ( github.com/pion/stun v0.4.0 github.com/pires/go-proxyproto v0.6.2 github.com/prometheus/client_golang v1.13.0 - github.com/quic-go/quic-go v0.32.0 + github.com/quic-go/quic-go v0.34.0 github.com/rodaine/table v1.0.1 + github.com/samber/lo v1.38.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.8.1 golang.org/x/net v0.7.0 golang.org/x/oauth2 v0.3.0 + golang.org/x/sync v0.1.0 golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 gopkg.in/ini.v1 v1.67.0 k8s.io/apimachinery v0.26.1 @@ -55,9 +57,8 @@ require ( github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/quic-go/qtls-go1-18 v0.2.0 // indirect - github.com/quic-go/qtls-go1-19 v0.2.0 // indirect - github.com/quic-go/qtls-go1-20 v0.1.0 // indirect + github.com/quic-go/qtls-go1-19 v0.3.2 // indirect + github.com/quic-go/qtls-go1-20 v0.2.2 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect diff --git a/go.sum b/go.sum index d708984a48b..7950ad621fa 100644 --- a/go.sum +++ b/go.sum @@ -381,14 +381,12 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quic-go/qtls-go1-18 v0.2.0 h1:5ViXqBZ90wpUcZS0ge79rf029yx0dYB0McyPJwqqj7U= -github.com/quic-go/qtls-go1-18 v0.2.0/go.mod h1:moGulGHK7o6O8lSPSZNoOwcLvJKJ85vVNc7oJFD65bc= -github.com/quic-go/qtls-go1-19 v0.2.0 h1:Cvn2WdhyViFUHoOqK52i51k4nDX8EwIh5VJiVM4nttk= -github.com/quic-go/qtls-go1-19 v0.2.0/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= -github.com/quic-go/qtls-go1-20 v0.1.0 h1:d1PK3ErFy9t7zxKsG3NXBJXZjp/kMLoIb3y/kV54oAI= -github.com/quic-go/qtls-go1-20 v0.1.0/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/quic-go v0.32.0 h1:lY02md31s1JgPiiyfqJijpu/UX/Iun304FI3yUqX7tA= -github.com/quic-go/quic-go v0.32.0/go.mod h1:/fCsKANhQIeD5l76c2JFU+07gVE3KaA0FP+0zMWwfwo= +github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U= +github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= +github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E= +github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= +github.com/quic-go/quic-go v0.34.0 h1:OvOJ9LFjTySgwOTYUZmNoq0FzVicP8YujpV0kB7m2lU= +github.com/quic-go/quic-go v0.34.0/go.mod h1:+4CVgVppm0FNjpG3UcX8Joi/frKOH7/ciD5yGcwOO1g= github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -399,6 +397,8 @@ github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUA github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= +github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -602,6 +602,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index e5325107623..bff47cd4e6a 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -661,6 +661,9 @@ func Test_LoadClientBasicConf(t *testing.T) { BindAddr: "127.0.0.1", BindPort: 9001, }, + Protocol: "quic", + MaxRetriesAnHour: 8, + MinRetryInterval: 90, }, } diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index de4953ca40b..133d59eee7c 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -1078,7 +1078,6 @@ func (cfg *XTCPProxyConf) Compare(cmp ProxyConf) bool { cfg.Sk != cmpConf.Sk { return false } - return true } @@ -1092,7 +1091,6 @@ func (cfg *XTCPProxyConf) UnmarshalFromIni(prefix string, name string, section * if cfg.Role == "" { cfg.Role = "server" } - return nil } @@ -1120,7 +1118,6 @@ func (cfg *XTCPProxyConf) CheckForCli() (err error) { if cfg.Role != "server" { return fmt.Errorf("role should be 'server'") } - return } diff --git a/pkg/config/server.go b/pkg/config/server.go index cdc29daa2a8..f54a32f36c0 100644 --- a/pkg/config/server.go +++ b/pkg/config/server.go @@ -196,35 +196,38 @@ type ServerCommonConf struct { // Enable golang pprof handlers in dashboard listener. // Dashboard port must be set first. PprofEnable bool `ini:"pprof_enable" json:"pprof_enable"` + // NatHoleAnalysisDataReserveHours specifies the hours to reserve nat hole analysis data. + NatHoleAnalysisDataReserveHours int64 `ini:"nat_hole_analysis_data_reserve_hours" json:"nat_hole_analysis_data_reserve_hours"` } // GetDefaultServerConf returns a server configuration with reasonable // defaults. func GetDefaultServerConf() ServerCommonConf { return ServerCommonConf{ - ServerConfig: auth.GetDefaultServerConf(), - BindAddr: "0.0.0.0", - BindPort: 7000, - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - VhostHTTPTimeout: 60, - DashboardAddr: "0.0.0.0", - LogFile: "console", - LogWay: "console", - LogLevel: "info", - LogMaxDays: 3, - DetailedErrorsToClient: true, - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - TCPKeepAlive: 7200, - AllowPorts: make(map[int]struct{}), - MaxPoolCount: 5, - MaxPortsPerClient: 0, - HeartbeatTimeout: 90, - UserConnTimeout: 10, - HTTPPlugins: make(map[string]plugin.HTTPPluginOptions), - UDPPacketSize: 1500, + ServerConfig: auth.GetDefaultServerConf(), + BindAddr: "0.0.0.0", + BindPort: 7000, + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, + VhostHTTPTimeout: 60, + DashboardAddr: "0.0.0.0", + LogFile: "console", + LogWay: "console", + LogLevel: "info", + LogMaxDays: 3, + DetailedErrorsToClient: true, + TCPMux: true, + TCPMuxKeepaliveInterval: 60, + TCPKeepAlive: 7200, + AllowPorts: make(map[int]struct{}), + MaxPoolCount: 5, + MaxPortsPerClient: 0, + HeartbeatTimeout: 90, + UserConnTimeout: 10, + HTTPPlugins: make(map[string]plugin.HTTPPluginOptions), + UDPPacketSize: 1500, + NatHoleAnalysisDataReserveHours: 7 * 24, } } diff --git a/pkg/config/server_test.go b/pkg/config/server_test.go index c00f5970392..e93ba3d7a11 100644 --- a/pkg/config/server_test.go +++ b/pkg/config/server_test.go @@ -134,18 +134,19 @@ func Test_LoadServerCommonConf(t *testing.T) { 12: {}, 99: {}, }, - AllowPortsStr: "10-12,99", - MaxPoolCount: 59, - MaxPortsPerClient: 9, - TLSOnly: true, - TLSCertFile: "server.crt", - TLSKeyFile: "server.key", - TLSTrustedCaFile: "ca.crt", - SubDomainHost: "frps.com", - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - TCPKeepAlive: 7200, - UDPPacketSize: 1509, + AllowPortsStr: "10-12,99", + MaxPoolCount: 59, + MaxPortsPerClient: 9, + TLSOnly: true, + TLSCertFile: "server.crt", + TLSKeyFile: "server.key", + TLSTrustedCaFile: "ca.crt", + SubDomainHost: "frps.com", + TCPMux: true, + TCPMuxKeepaliveInterval: 60, + TCPKeepAlive: 7200, + UDPPacketSize: 1509, + NatHoleAnalysisDataReserveHours: 7 * 24, HTTPPlugins: map[string]plugin.HTTPPluginOptions{ "user-manager": { @@ -180,32 +181,33 @@ func Test_LoadServerCommonConf(t *testing.T) { AuthenticateNewWorkConns: false, }, }, - BindAddr: "0.0.0.9", - BindPort: 7009, - BindUDPPort: 7008, - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - ProxyBindAddr: "0.0.0.9", - VhostHTTPTimeout: 60, - DashboardAddr: "0.0.0.0", - DashboardUser: "", - DashboardPwd: "", - EnablePrometheus: false, - LogFile: "console", - LogWay: "console", - LogLevel: "info", - LogMaxDays: 3, - DetailedErrorsToClient: true, - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - TCPKeepAlive: 7200, - AllowPorts: make(map[int]struct{}), - MaxPoolCount: 5, - HeartbeatTimeout: 90, - UserConnTimeout: 10, - HTTPPlugins: make(map[string]plugin.HTTPPluginOptions), - UDPPacketSize: 1500, + BindAddr: "0.0.0.9", + BindPort: 7009, + BindUDPPort: 7008, + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, + ProxyBindAddr: "0.0.0.9", + VhostHTTPTimeout: 60, + DashboardAddr: "0.0.0.0", + DashboardUser: "", + DashboardPwd: "", + EnablePrometheus: false, + LogFile: "console", + LogWay: "console", + LogLevel: "info", + LogMaxDays: 3, + DetailedErrorsToClient: true, + TCPMux: true, + TCPMuxKeepaliveInterval: 60, + TCPKeepAlive: 7200, + AllowPorts: make(map[int]struct{}), + MaxPoolCount: 5, + HeartbeatTimeout: 90, + UserConnTimeout: 10, + HTTPPlugins: make(map[string]plugin.HTTPPluginOptions), + UDPPacketSize: 1500, + NatHoleAnalysisDataReserveHours: 7 * 24, }, }, } diff --git a/pkg/config/visitor.go b/pkg/config/visitor.go index 3d9440cd023..0ee010fbabb 100644 --- a/pkg/config/visitor.go +++ b/pkg/config/visitor.go @@ -18,6 +18,7 @@ import ( "fmt" "reflect" + "github.com/samber/lo" "gopkg.in/ini.v1" "github.com/fatedier/frp/pkg/consts" @@ -61,6 +62,11 @@ type STCPVisitorConf struct { type XTCPVisitorConf struct { BaseVisitorConf `ini:",extends"` + + Protocol string `ini:"protocol" json:"protocol,omitempty"` + KeepTunnelOpen bool `ini:"keep_tunnel_open" json:"keep_tunnel_open,omitempty"` + MaxRetriesAnHour int `ini:"max_retries_an_hour" json:"max_retries_an_hour,omitempty"` + MinRetryInterval int `ini:"min_retry_interval" json:"min_retry_interval,omitempty"` } // DefaultVisitorConf creates a empty VisitorConf object by visitorType. @@ -259,7 +265,12 @@ func (cfg *XTCPVisitorConf) Compare(cmp VisitorConf) bool { } // Add custom login equal, if exists - + if cfg.Protocol != cmpConf.Protocol || + cfg.KeepTunnelOpen != cmpConf.KeepTunnelOpen || + cfg.MaxRetriesAnHour != cmpConf.MaxRetriesAnHour || + cfg.MinRetryInterval != cmpConf.MinRetryInterval { + return false + } return true } @@ -270,7 +281,15 @@ func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name string, section } // Add custom logic unmarshal, if exists - + if cfg.Protocol == "" { + cfg.Protocol = "quic" + } + if cfg.MaxRetriesAnHour <= 0 { + cfg.MaxRetriesAnHour = 8 + } + if cfg.MinRetryInterval <= 0 { + cfg.MinRetryInterval = 90 + } return } @@ -280,6 +299,8 @@ func (cfg *XTCPVisitorConf) Check() (err error) { } // Add custom logic validate, if exists - + if !lo.Contains([]string{"", "kcp", "quic"}, cfg.Protocol) { + return fmt.Errorf("protocol should be 'kcp' or 'quic'") + } return } diff --git a/pkg/config/visitor_test.go b/pkg/config/visitor_test.go index cdfbbf4673a..d91f90bcb70 100644 --- a/pkg/config/visitor_test.go +++ b/pkg/config/visitor_test.go @@ -87,6 +87,9 @@ func Test_Visitor_UnmarshalFromIni(t *testing.T) { BindAddr: "127.0.0.1", BindPort: 9001, }, + Protocol: "quic", + MaxRetriesAnHour: 8, + MinRetryInterval: 90, }, }, } diff --git a/pkg/metrics/mem/server.go b/pkg/metrics/mem/server.go index 38a8c68b9b4..e8ebd9d42b8 100644 --- a/pkg/metrics/mem/server.go +++ b/pkg/metrics/mem/server.go @@ -60,25 +60,30 @@ func (m *serverMetrics) run() { go func() { for { time.Sleep(12 * time.Hour) - log.Debug("start to clear useless proxy statistics data...") - m.clearUselessInfo() - log.Debug("finish to clear useless proxy statistics data") + start := time.Now() + count, total := m.clearUselessInfo() + log.Debug("clear useless proxy statistics data count %d/%d, cost %v", count, total, time.Since(start)) } }() } -func (m *serverMetrics) clearUselessInfo() { +func (m *serverMetrics) clearUselessInfo() (int, int) { + count := 0 + total := 0 // To check if there are proxies that closed than 7 days and drop them. m.mu.Lock() defer m.mu.Unlock() + total = len(m.info.ProxyStatistics) for name, data := range m.info.ProxyStatistics { if !data.LastCloseTime.IsZero() && data.LastStartTime.Before(data.LastCloseTime) && time.Since(data.LastCloseTime) > time.Duration(7*24)*time.Hour { delete(m.info.ProxyStatistics, name) + count++ log.Trace("clear proxy [%s]'s statistics data, lastCloseTime: [%s]", name, data.LastCloseTime.String()) } } + return count, total } func (m *serverMetrics) NewClient() { diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index b50c2b4549f..b6a209d2420 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -16,53 +16,52 @@ package msg import ( "net" + "reflect" ) const ( - TypeLogin = 'o' - TypeLoginResp = '1' - TypeNewProxy = 'p' - TypeNewProxyResp = '2' - TypeCloseProxy = 'c' - TypeNewWorkConn = 'w' - TypeReqWorkConn = 'r' - TypeStartWorkConn = 's' - TypeNewVisitorConn = 'v' - TypeNewVisitorConnResp = '3' - TypePing = 'h' - TypePong = '4' - TypeUDPPacket = 'u' - TypeNatHoleVisitor = 'i' - TypeNatHoleClient = 'n' - TypeNatHoleResp = 'm' - TypeNatHoleClientDetectOK = 'd' - TypeNatHoleSid = '5' - TypeNatHoleBinding = 'b' - TypeNatHoleBindingResp = '6' + TypeLogin = 'o' + TypeLoginResp = '1' + TypeNewProxy = 'p' + TypeNewProxyResp = '2' + TypeCloseProxy = 'c' + TypeNewWorkConn = 'w' + TypeReqWorkConn = 'r' + TypeStartWorkConn = 's' + TypeNewVisitorConn = 'v' + TypeNewVisitorConnResp = '3' + TypePing = 'h' + TypePong = '4' + TypeUDPPacket = 'u' + TypeNatHoleVisitor = 'i' + TypeNatHoleClient = 'n' + TypeNatHoleResp = 'm' + TypeNatHoleSid = '5' + TypeNatHoleReport = '6' ) var msgTypeMap = map[byte]interface{}{ - TypeLogin: Login{}, - TypeLoginResp: LoginResp{}, - TypeNewProxy: NewProxy{}, - TypeNewProxyResp: NewProxyResp{}, - TypeCloseProxy: CloseProxy{}, - TypeNewWorkConn: NewWorkConn{}, - TypeReqWorkConn: ReqWorkConn{}, - TypeStartWorkConn: StartWorkConn{}, - TypeNewVisitorConn: NewVisitorConn{}, - TypeNewVisitorConnResp: NewVisitorConnResp{}, - TypePing: Ping{}, - TypePong: Pong{}, - TypeUDPPacket: UDPPacket{}, - TypeNatHoleVisitor: NatHoleVisitor{}, - TypeNatHoleClient: NatHoleClient{}, - TypeNatHoleResp: NatHoleResp{}, - TypeNatHoleClientDetectOK: NatHoleClientDetectOK{}, - TypeNatHoleSid: NatHoleSid{}, - TypeNatHoleBinding: NatHoleBinding{}, - TypeNatHoleBindingResp: NatHoleBindingResp{}, -} + TypeLogin: Login{}, + TypeLoginResp: LoginResp{}, + TypeNewProxy: NewProxy{}, + TypeNewProxyResp: NewProxyResp{}, + TypeCloseProxy: CloseProxy{}, + TypeNewWorkConn: NewWorkConn{}, + TypeReqWorkConn: ReqWorkConn{}, + TypeStartWorkConn: StartWorkConn{}, + TypeNewVisitorConn: NewVisitorConn{}, + TypeNewVisitorConnResp: NewVisitorConnResp{}, + TypePing: Ping{}, + TypePong: Pong{}, + TypeUDPPacket: UDPPacket{}, + TypeNatHoleVisitor: NatHoleVisitor{}, + TypeNatHoleClient: NatHoleClient{}, + TypeNatHoleResp: NatHoleResp{}, + TypeNatHoleSid: NatHoleSid{}, + TypeNatHoleReport: NatHoleReport{}, +} + +var TypeNameNatHoleResp = reflect.TypeOf(&NatHoleResp{}).Elem().Name() // When frpc start, client send this message to login to server. type Login struct { @@ -175,35 +174,58 @@ type UDPPacket struct { } type NatHoleVisitor struct { - ProxyName string `json:"proxy_name,omitempty"` - SignKey string `json:"sign_key,omitempty"` - Timestamp int64 `json:"timestamp,omitempty"` + TransactionID string `json:"transaction_id,omitempty"` + ProxyName string `json:"proxy_name,omitempty"` + PreCheck bool `json:"pre_check,omitempty"` + Protocol string `json:"protocol,omitempty"` + SignKey string `json:"sign_key,omitempty"` + Timestamp int64 `json:"timestamp,omitempty"` + MappedAddrs []string `json:"mapped_addrs,omitempty"` + AssistedAddrs []string `json:"assisted_addrs,omitempty"` } type NatHoleClient struct { - ProxyName string `json:"proxy_name,omitempty"` - Sid string `json:"sid,omitempty"` + TransactionID string `json:"transaction_id,omitempty"` + ProxyName string `json:"proxy_name,omitempty"` + Sid string `json:"sid,omitempty"` + MappedAddrs []string `json:"mapped_addrs,omitempty"` + AssistedAddrs []string `json:"assisted_addrs,omitempty"` } -type NatHoleResp struct { - Sid string `json:"sid,omitempty"` - VisitorAddr string `json:"visitor_addr,omitempty"` - ClientAddr string `json:"client_addr,omitempty"` - Error string `json:"error,omitempty"` +type PortsRange struct { + From int `json:"from,omitempty"` + To int `json:"to,omitempty"` } -type NatHoleClientDetectOK struct{} +type NatHoleDetectBehavior struct { + Role string `json:"role,omitempty"` // sender or receiver + Mode int `json:"mode,omitempty"` // 0, 1, 2... + TTL int `json:"ttl,omitempty"` + SendDelayMs int `json:"send_delay_ms,omitempty"` + ReadTimeoutMs int `json:"read_timeout,omitempty"` + CandidatePorts []PortsRange `json:"candidate_ports,omitempty"` + SendRandomPorts int `json:"send_random_ports,omitempty"` + ListenRandomPorts int `json:"listen_random_ports,omitempty"` +} -type NatHoleSid struct { - Sid string `json:"sid,omitempty"` +type NatHoleResp struct { + TransactionID string `json:"transaction_id,omitempty"` + Sid string `json:"sid,omitempty"` + Protocol string `json:"protocol,omitempty"` + CandidateAddrs []string `json:"candidate_addrs,omitempty"` + AssistedAddrs []string `json:"assisted_addrs,omitempty"` + DetectBehavior NatHoleDetectBehavior `json:"detect_behavior,omitempty"` + Error string `json:"error,omitempty"` } -type NatHoleBinding struct { +type NatHoleSid struct { TransactionID string `json:"transaction_id,omitempty"` + Sid string `json:"sid,omitempty"` + Response bool `json:"response,omitempty"` + Nonce string `json:"nonce,omitempty"` } -type NatHoleBindingResp struct { - TransactionID string `json:"transaction_id,omitempty"` - Address string `json:"address,omitempty"` - Error string `json:"error,omitempty"` +type NatHoleReport struct { + Sid string `json:"sid,omitempty"` + Success bool `json:"success,omitempty"` } diff --git a/pkg/nathole/analysis.go b/pkg/nathole/analysis.go new file mode 100644 index 00000000000..772fd8f8308 --- /dev/null +++ b/pkg/nathole/analysis.go @@ -0,0 +1,328 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package nathole + +import ( + "sync" + "time" + + "github.com/samber/lo" +) + +var ( + // mode 0, both EasyNAT, PublicNetwork is always receiver + // sender | receiver, ttl 7 + // receiver, ttl 7 | sender + // sender | receiver, ttl 4 + // receiver, ttl 4 | sender + // sender | receiver + // receiver | sender + // sender, sendDelayMs 5000 | receiver + // sender, sendDelayMs 10000 | receiver + // receiver | sender, sendDelayMs 5000 + // receiver | sender, sendDelayMs 10000 + mode0Behaviors = []lo.Tuple2[RecommandBehavior, RecommandBehavior]{ + lo.T2(RecommandBehavior{Role: DetectRoleSender}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 7}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver, TTL: 7}, RecommandBehavior{Role: DetectRoleSender}), + lo.T2(RecommandBehavior{Role: DetectRoleSender}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 4}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver, TTL: 4}, RecommandBehavior{Role: DetectRoleSender}), + lo.T2(RecommandBehavior{Role: DetectRoleSender}, RecommandBehavior{Role: DetectRoleReceiver}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver}, RecommandBehavior{Role: DetectRoleSender}), + lo.T2(RecommandBehavior{Role: DetectRoleSender, SendDelayMs: 5000}, RecommandBehavior{Role: DetectRoleReceiver}), + lo.T2(RecommandBehavior{Role: DetectRoleSender, SendDelayMs: 10000}, RecommandBehavior{Role: DetectRoleReceiver}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver}, RecommandBehavior{Role: DetectRoleSender, SendDelayMs: 5000}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver}, RecommandBehavior{Role: DetectRoleSender, SendDelayMs: 10000}), + } + + // mode 1, HardNAT is sender, EasyNAT is receiver, port changes is regular + // sender | receiver, ttl 7, portsRangeNumber max 10 + // sender, sendDelayMs 2000 | receiver, ttl 7, portsRangeNumber max 10 + // sender | receiver, ttl 4, portsRangeNumber max 10 + // sender, sendDelayMs 2000 | receiver, ttl 4, portsRangeNumber max 10 + // sender | receiver, portsRangeNumber max 10 + // sender, sendDelayMs 2000 | receiver, portsRangeNumber max 10 + mode1Behaviors = []lo.Tuple2[RecommandBehavior, RecommandBehavior]{ + lo.T2(RecommandBehavior{Role: DetectRoleSender}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 7, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleSender, SendDelayMs: 2000}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 7, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleSender}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 4, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleSender, SendDelayMs: 2000}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 4, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleSender}, RecommandBehavior{Role: DetectRoleReceiver, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleSender, SendDelayMs: 2000}, RecommandBehavior{Role: DetectRoleReceiver, PortsRangeNumber: 10}), + } + + // mode 2, HardNAT is receiver, EasyNAT is sender + // sender, portsRandomNumber 1000, sendDelayMs 2000 | receiver, listen 256 ports, ttl 7 + // sender, portsRandomNumber 1000, sendDelayMs 2000 | receiver, listen 256 ports, ttl 4 + // sender, portsRandomNumber 1000, sendDelayMs 2000 | receiver, listen 256 ports + mode2Behaviors = []lo.Tuple2[RecommandBehavior, RecommandBehavior]{ + lo.T2( + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 7}, + ), + lo.T2( + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 4}, + ), + lo.T2( + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256}, + ), + } + + // mode 3, For HardNAT & HardNAT, both changes in the ports are regular + // sender, portsRangeNumber 10 | receiver, ttl 7, portsRangeNumber 10 + // sender, portsRangeNumber 10 | receiver, ttl 4, portsRangeNumber 10 + // sender, portsRangeNumber 10 | receiver, portsRangeNumber 10 + // receiver, ttl 7, portsRangeNumber 10 | sender, portsRangeNumber 10 + // receiver, ttl 4, portsRangeNumber 10 | sender, portsRangeNumber 10 + // receiver, portsRangeNumber 10 | sender, portsRangeNumber 10 + mode3Behaviors = []lo.Tuple2[RecommandBehavior, RecommandBehavior]{ + lo.T2(RecommandBehavior{Role: DetectRoleSender, PortsRangeNumber: 10}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 7, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleSender, PortsRangeNumber: 10}, RecommandBehavior{Role: DetectRoleReceiver, TTL: 4, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleSender, PortsRangeNumber: 10}, RecommandBehavior{Role: DetectRoleReceiver, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver, TTL: 7, PortsRangeNumber: 10}, RecommandBehavior{Role: DetectRoleSender, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver, TTL: 4, PortsRangeNumber: 10}, RecommandBehavior{Role: DetectRoleSender, PortsRangeNumber: 10}), + lo.T2(RecommandBehavior{Role: DetectRoleReceiver, PortsRangeNumber: 10}, RecommandBehavior{Role: DetectRoleSender, PortsRangeNumber: 10}), + } + + // mode 4, Regular ports changes are usually the sender. + // sender, portsRandomNumber 1000, sendDelayMs: 2000 | receiver, listen 256 ports, ttl 7, portsRangeNumber 10 + // sender, portsRandomNumber 1000, sendDelayMs: 2000 | receiver, listen 256 ports, ttl 4, portsRangeNumber 10 + // sender, portsRandomNumber 1000, SendDelayMs: 2000 | receiver, listen 256 ports, portsRangeNumber 10 + mode4Behaviors = []lo.Tuple2[RecommandBehavior, RecommandBehavior]{ + lo.T2( + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 7, PortsRangeNumber: 10}, + ), + lo.T2( + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 4, PortsRangeNumber: 10}, + ), + lo.T2( + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, PortsRangeNumber: 10}, + ), + } +) + +func getBehaviorByMode(mode int) []lo.Tuple2[RecommandBehavior, RecommandBehavior] { + switch mode { + case 0: + return mode0Behaviors + case 1: + return mode1Behaviors + case 2: + return mode2Behaviors + case 3: + return mode3Behaviors + case 4: + return mode4Behaviors + } + // default + return mode0Behaviors +} + +func getBehaviorByModeAndIndex(mode int, index int) (RecommandBehavior, RecommandBehavior) { + behaviors := getBehaviorByMode(mode) + if index >= len(behaviors) { + return RecommandBehavior{}, RecommandBehavior{} + } + return behaviors[index].A, behaviors[index].B +} + +func getBehaviorScoresByMode(mode int, defaultScore int) []*BehaviorScore { + return getBehaviorScoresByMode2(mode, defaultScore, defaultScore) +} + +func getBehaviorScoresByMode2(mode int, senderScore, receiverScore int) []*BehaviorScore { + behaviors := getBehaviorByMode(mode) + scores := make([]*BehaviorScore, 0, len(behaviors)) + for i := 0; i < len(behaviors); i++ { + score := receiverScore + if behaviors[i].A.Role == DetectRoleSender { + score = senderScore + } + scores = append(scores, &BehaviorScore{Mode: mode, Index: i, Score: score}) + } + return scores +} + +type RecommandBehavior struct { + Role string + TTL int + SendDelayMs int + PortsRangeNumber int + PortsRandomNumber int + ListenRandomPorts int +} + +type MakeHoleRecords struct { + mu sync.Mutex + scores []*BehaviorScore + LastUpdateTime time.Time +} + +func NewMakeHoleRecords(c, v *NatFeature) *MakeHoleRecords { + scores := []*BehaviorScore{} + easyCount, hardCount, portsChangedRegularCount := ClassifyFeatureCount([]*NatFeature{c, v}) + appendMode0 := func() { + switch { + case c.PublicNetwork: + scores = append(scores, getBehaviorScoresByMode2(DetectMode0, 0, 1)...) + case v.PublicNetwork: + scores = append(scores, getBehaviorScoresByMode2(DetectMode0, 1, 0)...) + default: + scores = append(scores, getBehaviorScoresByMode(DetectMode0, 0)...) + } + } + + switch { + case easyCount == 2: + appendMode0() + case hardCount == 1 && portsChangedRegularCount == 1: + scores = append(scores, getBehaviorScoresByMode(DetectMode1, 0)...) + scores = append(scores, getBehaviorScoresByMode(DetectMode2, 0)...) + appendMode0() + case hardCount == 1 && portsChangedRegularCount == 0: + scores = append(scores, getBehaviorScoresByMode(DetectMode2, 0)...) + scores = append(scores, getBehaviorScoresByMode(DetectMode1, 0)...) + appendMode0() + case hardCount == 2 && portsChangedRegularCount == 2: + scores = append(scores, getBehaviorScoresByMode(DetectMode3, 0)...) + scores = append(scores, getBehaviorScoresByMode(DetectMode4, 0)...) + case hardCount == 2 && portsChangedRegularCount == 1: + scores = append(scores, getBehaviorScoresByMode(DetectMode4, 0)...) + default: + // hard to make hole, just trying it out. + scores = append(scores, getBehaviorScoresByMode(DetectMode0, 1)...) + scores = append(scores, getBehaviorScoresByMode(DetectMode1, 1)...) + scores = append(scores, getBehaviorScoresByMode(DetectMode3, 1)...) + } + return &MakeHoleRecords{scores: scores, LastUpdateTime: time.Now()} +} + +func (mhr *MakeHoleRecords) ReportSuccess(mode int, index int) { + mhr.mu.Lock() + defer mhr.mu.Unlock() + mhr.LastUpdateTime = time.Now() + for i := range mhr.scores { + score := mhr.scores[i] + if score.Mode != mode || score.Index != index { + continue + } + + score.Score += 2 + score.Score = lo.Min([]int{score.Score, 10}) + return + } +} + +func (mhr *MakeHoleRecords) Recommand() (mode, index int) { + mhr.mu.Lock() + defer mhr.mu.Unlock() + + maxScore := lo.MaxBy(mhr.scores, func(item, max *BehaviorScore) bool { + return item.Score > max.Score + }) + if maxScore == nil { + return 0, 0 + } + maxScore.Score-- + mhr.LastUpdateTime = time.Now() + return maxScore.Mode, maxScore.Index +} + +type BehaviorScore struct { + Mode int + Index int + // between -10 and 10 + Score int +} + +type Analyzer struct { + // key is client ip + visitor ip + records map[string]*MakeHoleRecords + dataReserveDuration time.Duration + + mu sync.Mutex +} + +func NewAnalyzer(dataReserveDuration time.Duration) *Analyzer { + return &Analyzer{ + records: make(map[string]*MakeHoleRecords), + dataReserveDuration: dataReserveDuration, + } +} + +func (a *Analyzer) GetRecommandBehaviors(key string, c, v *NatFeature) (mode, index int, _ RecommandBehavior, _ RecommandBehavior) { + a.mu.Lock() + records, ok := a.records[key] + if !ok { + records = NewMakeHoleRecords(c, v) + a.records[key] = records + } + a.mu.Unlock() + + mode, index = records.Recommand() + cBehavior, vBehavior := getBehaviorByModeAndIndex(mode, index) + + switch mode { + case DetectMode1: + // HardNAT is always the sender + if c.NatType == EasyNAT { + cBehavior, vBehavior = vBehavior, cBehavior + } + case DetectMode2: + // HardNAT is always the receiver + if c.NatType == HardNAT { + cBehavior, vBehavior = vBehavior, cBehavior + } + case DetectMode4: + // Regular ports changes is always the sender + if !c.RegularPortsChange { + cBehavior, vBehavior = vBehavior, cBehavior + } + } + return mode, index, cBehavior, vBehavior +} + +func (a *Analyzer) ReportSuccess(key string, mode, index int) { + a.mu.Lock() + records, ok := a.records[key] + a.mu.Unlock() + if !ok { + return + } + records.ReportSuccess(mode, index) +} + +func (a *Analyzer) Clean() (int, int) { + now := time.Now() + total := 0 + count := 0 + + // cleanup 10w records may take 5ms + a.mu.Lock() + defer a.mu.Unlock() + total = len(a.records) + // clean up records that have not been used for a period of time. + for key, records := range a.records { + if now.Sub(records.LastUpdateTime) > a.dataReserveDuration { + delete(a.records, key) + count++ + } + } + return count, total +} diff --git a/pkg/nathole/classify.go b/pkg/nathole/classify.go index c667e0781e5..79f8efe0959 100644 --- a/pkg/nathole/classify.go +++ b/pkg/nathole/classify.go @@ -17,6 +17,9 @@ package nathole import ( "fmt" "net" + "strconv" + + "github.com/samber/lo" ) const ( @@ -29,46 +32,96 @@ const ( BehaviorBothChanged = "BehaviorBothChanged" ) -// ClassifyNATType classify NAT type by given addresses. -func ClassifyNATType(addresses []string) (string, string, error) { +type NatFeature struct { + NatType string + Behavior string + PortsDifference int + RegularPortsChange bool + PublicNetwork bool +} + +func ClassifyNATFeature(addresses []string, localIPs []string) (*NatFeature, error) { if len(addresses) <= 1 { - return "", "", fmt.Errorf("not enough addresses") + return nil, fmt.Errorf("not enough addresses") } + natFeature := &NatFeature{} ipChanged := false portChanged := false var baseIP, basePort string + var portMax, portMin int for _, addr := range addresses { ip, port, err := net.SplitHostPort(addr) if err != nil { - return "", "", err + return nil, err + } + portNum, err := strconv.Atoi(port) + if err != nil { + return nil, err } + if lo.Contains(localIPs, ip) { + natFeature.PublicNetwork = true + } + if baseIP == "" { baseIP = ip basePort = port + portMax = portNum + portMin = portNum continue } + if portNum > portMax { + portMax = portNum + } + if portNum < portMin { + portMin = portNum + } if baseIP != ip { ipChanged = true } if basePort != port { portChanged = true } + } - if ipChanged && portChanged { - break - } + natFeature.PortsDifference = portMax - portMin + if natFeature.PortsDifference <= 10 && natFeature.PortsDifference >= 1 { + natFeature.RegularPortsChange = true } switch { case ipChanged && portChanged: - return HardNAT, BehaviorBothChanged, nil + natFeature.NatType = HardNAT + natFeature.Behavior = BehaviorBothChanged case ipChanged: - return HardNAT, BehaviorIPChanged, nil + natFeature.NatType = HardNAT + natFeature.Behavior = BehaviorIPChanged case portChanged: - return HardNAT, BehaviorPortChanged, nil + natFeature.NatType = HardNAT + natFeature.Behavior = BehaviorPortChanged default: - return EasyNAT, BehaviorNoChange, nil + natFeature.NatType = EasyNAT + natFeature.Behavior = BehaviorNoChange + } + return natFeature, nil +} + +func ClassifyFeatureCount(features []*NatFeature) (int, int, int) { + easyCount := 0 + hardCount := 0 + // for HardNAT + portsChangedRegularCount := 0 + for _, feature := range features { + if feature.NatType == EasyNAT { + easyCount++ + continue + } + + hardCount++ + if feature.RegularPortsChange { + portsChangedRegularCount++ + } } + return easyCount, hardCount, portsChangedRegularCount } diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go new file mode 100644 index 00000000000..71feb1be884 --- /dev/null +++ b/pkg/nathole/controller.go @@ -0,0 +1,382 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package nathole + +import ( + "context" + "crypto/md5" + "encoding/hex" + "fmt" + "net" + "strconv" + "sync" + "time" + + "github.com/fatedier/golib/errors" + "github.com/samber/lo" + "golang.org/x/sync/errgroup" + + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/util" +) + +// NatHoleTimeout seconds. +var NatHoleTimeout int64 = 10 + +func NewTransactionID() string { + id, _ := util.RandID() + return fmt.Sprintf("%d%s", time.Now().Unix(), id) +} + +type ClientCfg struct { + name string + sk string + sidCh chan string +} + +type Session struct { + sid string + analysisKey string + recommandMode int + recommandIndex int + + visitorMsg *msg.NatHoleVisitor + visitorTransporter transport.MessageTransporter + vResp *msg.NatHoleResp + vNatFeature *NatFeature + vBehavior RecommandBehavior + + clientMsg *msg.NatHoleClient + clientTransporter transport.MessageTransporter + cResp *msg.NatHoleResp + cNatFeature *NatFeature + cBehavior RecommandBehavior + + notifyCh chan struct{} +} + +func (s *Session) genAnalysisKey() { + hash := md5.New() + vIPs := lo.Uniq(parseIPs(s.visitorMsg.MappedAddrs)) + if len(vIPs) > 0 { + hash.Write([]byte(vIPs[0])) + } + hash.Write([]byte(s.vNatFeature.NatType)) + hash.Write([]byte(s.vNatFeature.Behavior)) + hash.Write([]byte(strconv.FormatBool(s.vNatFeature.RegularPortsChange))) + + cIPs := lo.Uniq(parseIPs(s.clientMsg.MappedAddrs)) + if len(cIPs) > 0 { + hash.Write([]byte(cIPs[0])) + } + hash.Write([]byte(s.cNatFeature.NatType)) + hash.Write([]byte(s.cNatFeature.Behavior)) + hash.Write([]byte(strconv.FormatBool(s.cNatFeature.RegularPortsChange))) + s.analysisKey = hex.EncodeToString(hash.Sum(nil)) +} + +type Controller struct { + clientCfgs map[string]*ClientCfg + sessions map[string]*Session + analyzer *Analyzer + + mu sync.RWMutex +} + +func NewController(analysisDataReserveDuration time.Duration) (*Controller, error) { + return &Controller{ + clientCfgs: make(map[string]*ClientCfg), + sessions: make(map[string]*Session), + analyzer: NewAnalyzer(analysisDataReserveDuration), + }, nil +} + +func (c *Controller) CleanWorker(ctx context.Context) { + ticker := time.NewTicker(time.Hour) + defer ticker.Stop() + for { + select { + case <-ticker.C: + start := time.Now() + count, total := c.analyzer.Clean() + log.Trace("clean %d/%d nathole analysis data, cost %v", count, total, time.Since(start)) + case <-ctx.Done(): + return + } + } +} + +func (c *Controller) ListenClient(name string, sk string) chan string { + cfg := &ClientCfg{ + name: name, + sk: sk, + sidCh: make(chan string), + } + c.mu.Lock() + defer c.mu.Unlock() + c.clientCfgs[name] = cfg + return cfg.sidCh +} + +func (c *Controller) CloseClient(name string) { + c.mu.Lock() + defer c.mu.Unlock() + delete(c.clientCfgs, name) +} + +func (c *Controller) GenSid() string { + t := time.Now().Unix() + id, _ := util.RandID() + return fmt.Sprintf("%d%s", t, id) +} + +func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport.MessageTransporter) { + if m.PreCheck { + _, ok := c.clientCfgs[m.ProxyName] + if !ok { + _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, fmt.Sprintf("xtcp server for [%s] doesn't exist", m.ProxyName))) + } else { + _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, "")) + } + return + } + + sid := c.GenSid() + session := &Session{ + sid: sid, + visitorMsg: m, + visitorTransporter: transporter, + notifyCh: make(chan struct{}, 1), + } + var ( + clientCfg *ClientCfg + ok bool + ) + err := func() error { + c.mu.Lock() + defer c.mu.Unlock() + + clientCfg, ok = c.clientCfgs[m.ProxyName] + if !ok { + return fmt.Errorf("xtcp server for [%s] doesn't exist", m.ProxyName) + } + if m.SignKey != util.GetAuthKey(clientCfg.sk, m.Timestamp) { + return fmt.Errorf("xtcp connection of [%s] auth failed", m.ProxyName) + } + c.sessions[sid] = session + return nil + }() + if err != nil { + log.Warn("handle visitorMsg error: %v", err) + _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, err.Error())) + return + } + log.Trace("handle visitor message, sid [%s]", sid) + + defer func() { + c.mu.Lock() + defer c.mu.Unlock() + delete(c.sessions, sid) + }() + + if err := errors.PanicToError(func() { + clientCfg.sidCh <- sid + }); err != nil { + return + } + + // wait for NatHoleClient message + select { + case <-session.notifyCh: + case <-time.After(time.Duration(NatHoleTimeout) * time.Second): + log.Debug("wait for NatHoleClient message timeout, sid [%s]", sid) + return + } + + // Make hole-punching decisions based on the NAT information of the client and visitor. + vResp, cResp, err := c.analysis(session) + if err != nil { + log.Debug("sid [%s] analysis error: %v", err) + vResp = c.GenNatHoleResponse(session.visitorMsg.TransactionID, nil, err.Error()) + cResp = c.GenNatHoleResponse(session.clientMsg.TransactionID, nil, err.Error()) + } + session.cResp = cResp + session.vResp = vResp + + // send response to visitor and client + var g errgroup.Group + g.Go(func() error { + // if it's sender, wait for a while to make sure the client has send the detect messages + if vResp.DetectBehavior.Role == "sender" { + time.Sleep(1 * time.Second) + } + _ = session.visitorTransporter.Send(vResp) + return nil + }) + g.Go(func() error { + // if it's sender, wait for a while to make sure the client has send the detect messages + if cResp.DetectBehavior.Role == "sender" { + time.Sleep(1 * time.Second) + } + _ = session.clientTransporter.Send(cResp) + return nil + }) + _ = g.Wait() + + time.Sleep(time.Duration(cResp.DetectBehavior.ReadTimeoutMs+30000) * time.Millisecond) +} + +func (c *Controller) HandleClient(m *msg.NatHoleClient, transporter transport.MessageTransporter) { + c.mu.RLock() + session, ok := c.sessions[m.Sid] + c.mu.RUnlock() + if !ok { + return + } + log.Trace("handle client message, sid [%s]", session.sid) + session.clientMsg = m + session.clientTransporter = transporter + select { + case session.notifyCh <- struct{}{}: + default: + } +} + +func (c *Controller) HandleReport(m *msg.NatHoleReport) { + c.mu.RLock() + session, ok := c.sessions[m.Sid] + c.mu.RUnlock() + if !ok { + log.Trace("sid [%s] report make hole success: %v, but session not found", m.Sid, m.Success) + return + } + if m.Success { + c.analyzer.ReportSuccess(session.analysisKey, session.recommandMode, session.recommandIndex) + } + log.Info("sid [%s] report make hole success: %v, mode %v, index %v", + m.Sid, m.Success, session.recommandMode, session.recommandIndex) +} + +func (c *Controller) GenNatHoleResponse(transactionID string, session *Session, errInfo string) *msg.NatHoleResp { + var sid string + if session != nil { + sid = session.sid + } + return &msg.NatHoleResp{ + TransactionID: transactionID, + Sid: sid, + Error: errInfo, + } +} + +// analysis analyzes the NAT type and behavior of the visitor and client, then makes hole-punching decisions. +// return the response to the visitor and client. +func (c *Controller) analysis(session *Session) (*msg.NatHoleResp, *msg.NatHoleResp, error) { + cm := session.clientMsg + vm := session.visitorMsg + + cNatFeature, err := ClassifyNATFeature(cm.MappedAddrs, parseIPs(cm.AssistedAddrs)) + if err != nil { + return nil, nil, fmt.Errorf("classify client nat feature error: %v", err) + } + + vNatFeature, err := ClassifyNATFeature(vm.MappedAddrs, parseIPs(vm.AssistedAddrs)) + if err != nil { + return nil, nil, fmt.Errorf("classify visitor nat feature error: %v", err) + } + session.cNatFeature = cNatFeature + session.vNatFeature = vNatFeature + session.genAnalysisKey() + + mode, index, cBehavior, vBehavior := c.analyzer.GetRecommandBehaviors(session.analysisKey, cNatFeature, vNatFeature) + session.recommandMode = mode + session.recommandIndex = index + session.cBehavior = cBehavior + session.vBehavior = vBehavior + + timeoutMs := lo.Max([]int{cBehavior.SendDelayMs, vBehavior.SendDelayMs}) + 5000 + if cBehavior.ListenRandomPorts > 0 || vBehavior.ListenRandomPorts > 0 { + timeoutMs += 30000 + } + + protocol := vm.Protocol + vResp := &msg.NatHoleResp{ + TransactionID: vm.TransactionID, + Sid: session.sid, + Protocol: protocol, + CandidateAddrs: lo.Uniq(cm.MappedAddrs), + AssistedAddrs: lo.Uniq(cm.AssistedAddrs), + DetectBehavior: msg.NatHoleDetectBehavior{ + Mode: mode, + Role: vBehavior.Role, + TTL: vBehavior.TTL, + SendDelayMs: vBehavior.SendDelayMs, + ReadTimeoutMs: timeoutMs - vBehavior.SendDelayMs, + SendRandomPorts: vBehavior.PortsRandomNumber, + ListenRandomPorts: vBehavior.ListenRandomPorts, + CandidatePorts: getRangePorts(cm.MappedAddrs, cNatFeature.PortsDifference, vBehavior.PortsRangeNumber), + }, + } + cResp := &msg.NatHoleResp{ + TransactionID: cm.TransactionID, + Sid: session.sid, + Protocol: protocol, + CandidateAddrs: lo.Uniq(vm.MappedAddrs), + AssistedAddrs: lo.Uniq(vm.AssistedAddrs), + DetectBehavior: msg.NatHoleDetectBehavior{ + Mode: mode, + Role: cBehavior.Role, + TTL: cBehavior.TTL, + SendDelayMs: cBehavior.SendDelayMs, + ReadTimeoutMs: timeoutMs - cBehavior.SendDelayMs, + SendRandomPorts: cBehavior.PortsRandomNumber, + ListenRandomPorts: cBehavior.ListenRandomPorts, + CandidatePorts: getRangePorts(vm.MappedAddrs, vNatFeature.PortsDifference, cBehavior.PortsRangeNumber), + }, + } + + log.Debug("sid [%s] visitor nat: %+v, candidateAddrs: %v; client nat: %+v, candidateAddrs: %v, protocol: %s", + session.sid, *vNatFeature, vm.MappedAddrs, *cNatFeature, cm.MappedAddrs, protocol) + log.Debug("sid [%s] visitor detect behavior: %+v", session.sid, vResp.DetectBehavior) + log.Debug("sid [%s] client detect behavior: %+v", session.sid, cResp.DetectBehavior) + return vResp, cResp, nil +} + +func getRangePorts(addrs []string, difference, maxNumber int) []msg.PortsRange { + if maxNumber <= 0 { + return nil + } + + addr, err := lo.Last(addrs) + if err != nil { + return nil + } + var ports []msg.PortsRange + _, portStr, err := net.SplitHostPort(addr) + if err != nil { + return nil + } + port, err := strconv.Atoi(portStr) + if err != nil { + return nil + } + ports = append(ports, msg.PortsRange{ + From: lo.Max([]int{port - difference - 5, port - maxNumber, 1}), + To: lo.Min([]int{port + difference + 5, port + maxNumber, 65535}), + }) + return ports +} diff --git a/pkg/nathole/discovery.go b/pkg/nathole/discovery.go index 4c684b3fed6..0be4126012c 100644 --- a/pkg/nathole/discovery.go +++ b/pkg/nathole/discovery.go @@ -20,8 +20,6 @@ import ( "time" "github.com/pion/stun" - - "github.com/fatedier/frp/pkg/msg" ) var responseTimeout = 3 * time.Second @@ -31,35 +29,27 @@ type Message struct { Addr string } -func Discover(serverAddress string, stunServers []string, key []byte) ([]string, error) { +// If the localAddr is empty, it will listen on a random port. +func Discover(stunServers []string, localAddr string) ([]string, net.Addr, error) { // create a discoverConn and get response from messageChan - discoverConn, err := listen() + discoverConn, err := listen(localAddr) if err != nil { - return nil, err + return nil, nil, err } defer discoverConn.Close() go discoverConn.readLoop() - addresses := make([]string, 0, len(stunServers)+1) - if serverAddress != "" { - // get external address from frp server - externalAddr, err := discoverConn.discoverFromServer(serverAddress, key) - if err != nil { - return nil, err - } - addresses = append(addresses, externalAddr) - } - + addresses := make([]string, 0, len(stunServers)) for _, addr := range stunServers { // get external address from stun server externalAddrs, err := discoverConn.discoverFromStunServer(addr) if err != nil { - return nil, err + return nil, nil, err } addresses = append(addresses, externalAddrs...) } - return addresses, nil + return addresses, discoverConn.localAddr, nil } type stunResponse struct { @@ -74,8 +64,16 @@ type discoverConn struct { messageChan chan *Message } -func listen() (*discoverConn, error) { - conn, err := net.ListenUDP("udp4", nil) +func listen(localAddr string) (*discoverConn, error) { + var local *net.UDPAddr + if localAddr != "" { + addr, err := net.ResolveUDPAddr("udp4", localAddr) + if err != nil { + return nil, err + } + local = addr + } + conn, err := net.ListenUDP("udp4", local) if err != nil { return nil, err } @@ -159,43 +157,6 @@ func (c *discoverConn) doSTUNRequest(addr string) (*stunResponse, error) { return resp, nil } -func (c *discoverConn) discoverFromServer(serverAddress string, key []byte) (string, error) { - addr, err := net.ResolveUDPAddr("udp4", serverAddress) - if err != nil { - return "", err - } - m := &msg.NatHoleBinding{ - TransactionID: NewTransactionID(), - } - - buf, err := EncodeMessage(m, key) - if err != nil { - return "", err - } - - if _, err := c.conn.WriteTo(buf, addr); err != nil { - return "", err - } - - var respMsg msg.NatHoleBindingResp - select { - case rawMsg := <-c.messageChan: - if err := DecodeMessageInto(rawMsg.Body, key, &respMsg); err != nil { - return "", err - } - case <-time.After(responseTimeout): - return "", fmt.Errorf("wait response from frp server timeout") - } - - if respMsg.TransactionID == "" { - return "", fmt.Errorf("error format: no transaction id found") - } - if respMsg.Error != "" { - return "", fmt.Errorf("get externalAddr from frp server error: %s", respMsg.Error) - } - return respMsg.Address, nil -} - func (c *discoverConn) discoverFromStunServer(addr string) ([]string, error) { resp, err := c.doSTUNRequest(addr) if err != nil { diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index 2b114bcecf4..a4d5e46385a 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -15,249 +15,426 @@ package nathole import ( - "bytes" + "context" "fmt" + "math/rand" "net" - "sync" + "strconv" + "strings" "time" - "github.com/fatedier/golib/crypto" - "github.com/fatedier/golib/errors" "github.com/fatedier/golib/pool" + "github.com/samber/lo" + "golang.org/x/net/ipv4" + "k8s.io/apimachinery/pkg/util/sets" "github.com/fatedier/frp/pkg/msg" - "github.com/fatedier/frp/pkg/util/log" - "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/pkg/util/xlog" ) -// NatHoleTimeout seconds. -var NatHoleTimeout int64 = 10 +var ( + // mode 0: simple detect mode, usually for both EasyNAT or HardNAT & EasyNAT(Public Network) + // a. receiver sends detect message with low TTL + // b. sender sends normal detect message to receiver + // c. receiver receives detect message and sends back a message to sender + // + // mode 1: For HardNAT & EasyNAT, send detect messages to multiple guessed ports. + // Usually applicable to scenarios where port changes are regular. + // Most of the steps are the same as mode 0, but EasyNAT is fixed as the receiver and will send detect messages + // with low TTL to multiple guessed ports of the sender. + // + // mode 2: For HardNAT & EasyNAT, ports changes are not regular. + // a. HardNAT machine will listen on multiple ports and send detect messages with low TTL to EasyNAT machine + // b. EasyNAT machine will send detect messages to random ports of HardNAT machine. + // + // mode 3: For HardNAT & HardNAT, both changes in the ports are regular. + // Most of the steps are the same as mode 1, but the sender also needs to send detect messages to multiple guessed + // ports of the receiver. + // + // mode 4: For HardNAT & HardNAT, one of the changes in the ports is regular. + // Regular port changes are usually on the sender side. + // a. Receiver listens on multiple ports and sends detect messages with low TTL to the sender's guessed range ports. + // b. Sender sends detect messages to random ports of the receiver. + SupportedModes = []int{DetectMode0, DetectMode1, DetectMode2, DetectMode3, DetectMode4} + SupportedRoles = []string{DetectRoleSender, DetectRoleReceiver} -func NewTransactionID() string { - id, _ := util.RandID() - return fmt.Sprintf("%d%s", time.Now().Unix(), id) -} + DetectMode0 = 0 + DetectMode1 = 1 + DetectMode2 = 2 + DetectMode3 = 3 + DetectMode4 = 4 + DetectRoleSender = "sender" + DetectRoleReceiver = "receiver" +) -type SidRequest struct { - Sid string - NotifyCh chan struct{} +type PrepareResult struct { + Addrs []string + AssistedAddrs []string + ListenConn *net.UDPConn + NatType string + Behavior string } -type Controller struct { - listener *net.UDPConn +// PreCheck is used to check if the proxy is ready for penetration. +// Call this function before calling Prepare to avoid unnecessary preparation work. +func PreCheck( + ctx context.Context, transporter transport.MessageTransporter, + proxyName string, timeout time.Duration, +) error { + timeoutCtx, cancel := context.WithTimeout(ctx, timeout) + defer cancel() - clientCfgs map[string]*ClientCfg - sessions map[string]*Session + var natHoleRespMsg *msg.NatHoleResp + transactionID := NewTransactionID() + m, err := transporter.Do(timeoutCtx, &msg.NatHoleVisitor{ + TransactionID: transactionID, + ProxyName: proxyName, + PreCheck: true, + }, transactionID, msg.TypeNameNatHoleResp) + if err != nil { + return fmt.Errorf("get natHoleRespMsg error: %v", err) + } + mm, ok := m.(*msg.NatHoleResp) + if !ok { + return fmt.Errorf("get natHoleRespMsg error: invalid message type") + } + natHoleRespMsg = mm - encryptionKey []byte - mu sync.RWMutex + if natHoleRespMsg.Error != "" { + return fmt.Errorf("%s", natHoleRespMsg.Error) + } + return nil } -func NewController(udpBindAddr string, encryptionKey []byte) (nc *Controller, err error) { - addr, err := net.ResolveUDPAddr("udp", udpBindAddr) +// Prepare is used to do some preparation work before penetration. +func Prepare(stunServers []string) (*PrepareResult, error) { + // discover for Nat type + addrs, localAddr, err := Discover(stunServers, "") if err != nil { - return nil, err + return nil, fmt.Errorf("discover error: %v", err) + } + if len(addrs) < 2 { + return nil, fmt.Errorf("discover error: not enough addresses") } - lconn, err := net.ListenUDP("udp", addr) + + localIPs, _ := ListLocalIPsForNatHole(10) + natFeature, err := ClassifyNATFeature(addrs, localIPs) if err != nil { - return nil, err + return nil, fmt.Errorf("classify nat feature error: %v", err) } - nc = &Controller{ - listener: lconn, - clientCfgs: make(map[string]*ClientCfg), - sessions: make(map[string]*Session), - encryptionKey: encryptionKey, + + laddr, err := net.ResolveUDPAddr("udp4", localAddr.String()) + if err != nil { + return nil, fmt.Errorf("resolve local udp addr error: %v", err) } - return nc, nil + listenConn, err := net.ListenUDP("udp4", laddr) + if err != nil { + return nil, fmt.Errorf("listen local udp addr error: %v", err) + } + + assistedAddrs := make([]string, 0, len(localIPs)) + for _, ip := range localIPs { + assistedAddrs = append(assistedAddrs, net.JoinHostPort(ip, strconv.Itoa(laddr.Port))) + } + return &PrepareResult{ + Addrs: addrs, + AssistedAddrs: assistedAddrs, + ListenConn: listenConn, + NatType: natFeature.NatType, + Behavior: natFeature.Behavior, + }, nil } -func (nc *Controller) ListenClient(name string, sk string) (sidCh chan *SidRequest) { - clientCfg := &ClientCfg{ - Name: name, - Sk: sk, - SidCh: make(chan *SidRequest), +// ExchangeInfo is used to exchange information between client and visitor. +// 1. Send input message to server by msgTransporter. +// 2. Server will gather information from client and visitor and analyze it. Then send back a NatHoleResp message to them to tell them how to do next. +// 3. Receive NatHoleResp message from server. +func ExchangeInfo( + ctx context.Context, transporter transport.MessageTransporter, + laneKey string, m msg.Message, timeout time.Duration, +) (*msg.NatHoleResp, error) { + timeoutCtx, cancel := context.WithTimeout(ctx, timeout) + defer cancel() + + var natHoleRespMsg *msg.NatHoleResp + m, err := transporter.Do(timeoutCtx, m, laneKey, msg.TypeNameNatHoleResp) + if err != nil { + return nil, fmt.Errorf("get natHoleRespMsg error: %v", err) + } + mm, ok := m.(*msg.NatHoleResp) + if !ok { + return nil, fmt.Errorf("get natHoleRespMsg error: invalid message type") + } + natHoleRespMsg = mm + + if natHoleRespMsg.Error != "" { + return nil, fmt.Errorf("natHoleRespMsg get error info: %s", natHoleRespMsg.Error) } - nc.mu.Lock() - nc.clientCfgs[name] = clientCfg - nc.mu.Unlock() - return clientCfg.SidCh + if len(natHoleRespMsg.CandidateAddrs) == 0 { + return nil, fmt.Errorf("natHoleRespMsg get empty candidate addresses") + } + return natHoleRespMsg, nil } -func (nc *Controller) CloseClient(name string) { - nc.mu.Lock() - defer nc.mu.Unlock() - delete(nc.clientCfgs, name) +// MakeHole is used to make a NAT hole between client and visitor. +func MakeHole(ctx context.Context, listenConn *net.UDPConn, m *msg.NatHoleResp, key []byte) (*net.UDPConn, *net.UDPAddr, error) { + xl := xlog.FromContextSafe(ctx) + transactionID := NewTransactionID() + sendToRangePortsFunc := func(conn *net.UDPConn, addr string) error { + return sendSidMessage(ctx, conn, m.Sid, transactionID, addr, key, m.DetectBehavior.TTL) + } + + listenConns := []*net.UDPConn{listenConn} + var detectAddrs []string + if m.DetectBehavior.Role == DetectRoleSender { + // sender + if m.DetectBehavior.SendDelayMs > 0 { + time.Sleep(time.Duration(m.DetectBehavior.SendDelayMs) * time.Millisecond) + } + detectAddrs = m.AssistedAddrs + detectAddrs = append(detectAddrs, m.CandidateAddrs...) + } else { + // receiver + if len(m.DetectBehavior.CandidatePorts) == 0 { + detectAddrs = m.CandidateAddrs + } + + if m.DetectBehavior.ListenRandomPorts > 0 { + for i := 0; i < m.DetectBehavior.ListenRandomPorts; i++ { + tmpConn, err := net.ListenUDP("udp4", nil) + if err != nil { + xl.Warn("listen random udp addr error: %v", err) + continue + } + listenConns = append(listenConns, tmpConn) + } + } + } + + detectAddrs = lo.Uniq(detectAddrs) + for _, detectAddr := range detectAddrs { + for _, conn := range listenConns { + if err := sendSidMessage(ctx, conn, m.Sid, transactionID, detectAddr, key, m.DetectBehavior.TTL); err != nil { + xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) + } + } + } + if len(m.DetectBehavior.CandidatePorts) > 0 { + for _, conn := range listenConns { + sendSidMessageToRangePorts(ctx, conn, m.CandidateAddrs, m.DetectBehavior.CandidatePorts, sendToRangePortsFunc) + } + } + if m.DetectBehavior.SendRandomPorts > 0 { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + for i := range listenConns { + go sendSidMessageToRandomPorts(ctx, listenConns[i], m.CandidateAddrs, m.DetectBehavior.SendRandomPorts, sendToRangePortsFunc) + } + } + + timeout := 5 * time.Second + if m.DetectBehavior.ReadTimeoutMs > 0 { + timeout = time.Duration(m.DetectBehavior.ReadTimeoutMs) * time.Millisecond + } + + if len(listenConns) == 1 { + raddr, err := waitDetectMessage(ctx, listenConns[0], m.Sid, key, timeout, m.DetectBehavior.Role) + if err != nil { + return nil, nil, fmt.Errorf("wait detect message error: %v", err) + } + return listenConns[0], raddr, nil + } + + type result struct { + lConn *net.UDPConn + raddr *net.UDPAddr + } + resultCh := make(chan result) + for _, conn := range listenConns { + go func(lConn *net.UDPConn) { + addr, err := waitDetectMessage(ctx, lConn, m.Sid, key, timeout, m.DetectBehavior.Role) + if err != nil { + lConn.Close() + return + } + select { + case resultCh <- result{lConn: lConn, raddr: addr}: + default: + lConn.Close() + } + }(conn) + } + + select { + case result := <-resultCh: + return result.lConn, result.raddr, nil + case <-time.After(timeout): + return nil, nil, fmt.Errorf("wait detect message timeout") + case <-ctx.Done(): + return nil, nil, fmt.Errorf("wait detect message canceled") + } } -func (nc *Controller) Run() { +func waitDetectMessage( + ctx context.Context, conn *net.UDPConn, sid string, key []byte, + timeout time.Duration, role string, +) (*net.UDPAddr, error) { + xl := xlog.FromContextSafe(ctx) for { buf := pool.GetBuf(1024) - n, raddr, err := nc.listener.ReadFromUDP(buf) + _ = conn.SetReadDeadline(time.Now().Add(timeout)) + n, raddr, err := conn.ReadFromUDP(buf) + _ = conn.SetReadDeadline(time.Time{}) if err != nil { - log.Warn("nat hole listener read from udp error: %v", err) - return + return nil, err } - plain, err := crypto.Decode(buf[:n], nc.encryptionKey) - if err != nil { - log.Warn("nathole listener decode from %s error: %v", raddr.String(), err) + xl.Debug("get udp message local %s, from %s", conn.LocalAddr(), raddr) + var m msg.NatHoleSid + if err := DecodeMessageInto(buf[:n], key, &m); err != nil { + xl.Warn("decode sid message error: %v", err) continue } + pool.PutBuf(buf) - rawMsg, err := msg.ReadMsg(bytes.NewReader(plain)) - if err != nil { - log.Warn("read nat hole message error: %v", err) + if m.Sid != sid { + xl.Warn("get sid message with wrong sid: %s, expect: %s", m.Sid, sid) continue } - switch m := rawMsg.(type) { - case *msg.NatHoleBinding: - go nc.HandleBinding(m, raddr) - case *msg.NatHoleVisitor: - go nc.HandleVisitor(m, raddr) - case *msg.NatHoleClient: - go nc.HandleClient(m, raddr) - default: - log.Trace("unknown nat hole message type") - continue + if !m.Response { + // only wait for response messages if we are a sender + if role == DetectRoleSender { + continue + } + + m.Response = true + buf2, err := EncodeMessage(&m, key) + if err != nil { + xl.Warn("encode sid message error: %v", err) + continue + } + _, _ = conn.WriteToUDP(buf2, raddr) } - pool.PutBuf(buf) + return raddr, nil } } -func (nc *Controller) GenSid() string { - t := time.Now().Unix() - id, _ := util.RandID() - return fmt.Sprintf("%d%s", t, id) -} - -func (nc *Controller) HandleBinding(m *msg.NatHoleBinding, raddr *net.UDPAddr) { - log.Trace("handle binding message from %s", raddr.String()) - resp := &msg.NatHoleBindingResp{ - TransactionID: m.TransactionID, - Address: raddr.String(), +func sendSidMessage( + ctx context.Context, conn *net.UDPConn, + sid string, transactionID string, addr string, key []byte, ttl int, +) error { + xl := xlog.FromContextSafe(ctx) + ttlStr := "" + if ttl > 0 { + ttlStr = fmt.Sprintf(" with ttl %d", ttl) } - plain, err := msg.Pack(resp) + xl.Trace("send sid message from %s to %s%s", conn.LocalAddr(), addr, ttlStr) + raddr, err := net.ResolveUDPAddr("udp4", addr) if err != nil { - log.Error("pack nat hole binding response error: %v", err) - return + return err } - buf, err := crypto.Encode(plain, nc.encryptionKey) - if err != nil { - log.Error("encode nat hole binding response error: %v", err) - return + if transactionID == "" { + transactionID = NewTransactionID() + } + m := &msg.NatHoleSid{ + TransactionID: transactionID, + Sid: sid, + Response: false, + Nonce: strings.Repeat("0", rand.Intn(20)), } - _, err = nc.listener.WriteToUDP(buf, raddr) + buf, err := EncodeMessage(m, key) if err != nil { - log.Error("write nat hole binding response to %s error: %v", raddr.String(), err) - return + return err } -} + if ttl > 0 { + uConn := ipv4.NewConn(conn) + original, err := uConn.TTL() + if err != nil { + xl.Trace("get ttl error %v", err) + return err + } + xl.Trace("original ttl %d", original) -func (nc *Controller) HandleVisitor(m *msg.NatHoleVisitor, raddr *net.UDPAddr) { - sid := nc.GenSid() - session := &Session{ - Sid: sid, - VisitorAddr: raddr, - NotifyCh: make(chan struct{}), - } - nc.mu.Lock() - clientCfg, ok := nc.clientCfgs[m.ProxyName] - if !ok { - nc.mu.Unlock() - errInfo := fmt.Sprintf("xtcp server for [%s] doesn't exist", m.ProxyName) - log.Debug(errInfo) - _, _ = nc.listener.WriteToUDP(nc.GenNatHoleResponse(nil, errInfo), raddr) - return - } - if m.SignKey != util.GetAuthKey(clientCfg.Sk, m.Timestamp) { - nc.mu.Unlock() - errInfo := fmt.Sprintf("xtcp connection of [%s] auth failed", m.ProxyName) - log.Debug(errInfo) - _, _ = nc.listener.WriteToUDP(nc.GenNatHoleResponse(nil, errInfo), raddr) - return - } - - nc.sessions[sid] = session - nc.mu.Unlock() - log.Trace("handle visitor message, sid [%s]", sid) - - defer func() { - nc.mu.Lock() - delete(nc.sessions, sid) - nc.mu.Unlock() - }() - - err := errors.PanicToError(func() { - clientCfg.SidCh <- &SidRequest{ - Sid: sid, - NotifyCh: session.NotifyCh, + err = uConn.SetTTL(ttl) + if err != nil { + xl.Trace("set ttl error %v", err) + } else { + defer func() { + _ = uConn.SetTTL(original) + }() } - }) - if err != nil { - return } - // Wait client connections. - select { - case <-session.NotifyCh: - resp := nc.GenNatHoleResponse(session, "") - log.Trace("send nat hole response to visitor") - _, _ = nc.listener.WriteToUDP(resp, raddr) - case <-time.After(time.Duration(NatHoleTimeout) * time.Second): - return + if _, err := conn.WriteToUDP(buf, raddr); err != nil { + return err } + return nil } -func (nc *Controller) HandleClient(m *msg.NatHoleClient, raddr *net.UDPAddr) { - nc.mu.RLock() - session, ok := nc.sessions[m.Sid] - nc.mu.RUnlock() - if !ok { - return +func sendSidMessageToRangePorts( + ctx context.Context, conn *net.UDPConn, addrs []string, ports []msg.PortsRange, + sendFunc func(*net.UDPConn, string) error, +) { + xl := xlog.FromContextSafe(ctx) + for _, ip := range lo.Uniq(parseIPs(addrs)) { + for _, portsRange := range ports { + for i := portsRange.From; i <= portsRange.To; i++ { + detectAddr := net.JoinHostPort(ip, strconv.Itoa(i)) + if err := sendFunc(conn, detectAddr); err != nil { + xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) + } + time.Sleep(5 * time.Millisecond) + } + } } - log.Trace("handle client message, sid [%s]", session.Sid) - session.ClientAddr = raddr - - resp := nc.GenNatHoleResponse(session, "") - log.Trace("send nat hole response to client") - _, _ = nc.listener.WriteToUDP(resp, raddr) } -func (nc *Controller) GenNatHoleResponse(session *Session, errInfo string) []byte { - var ( - sid string - visitorAddr string - clientAddr string - ) - if session != nil { - sid = session.Sid - visitorAddr = session.VisitorAddr.String() - clientAddr = session.ClientAddr.String() - } - m := &msg.NatHoleResp{ - Sid: sid, - VisitorAddr: visitorAddr, - ClientAddr: clientAddr, - Error: errInfo, - } - b := bytes.NewBuffer(nil) - err := msg.WriteMsg(b, m) - if err != nil { - return []byte("") +func sendSidMessageToRandomPorts( + ctx context.Context, conn *net.UDPConn, addrs []string, count int, + sendFunc func(*net.UDPConn, string) error, +) { + xl := xlog.FromContextSafe(ctx) + used := sets.New[int]() + getUnusedPort := func() int { + for i := 0; i < 10; i++ { + port := rand.Intn(65535-1024) + 1024 + if !used.Has(port) { + used.Insert(port) + return port + } + } + return 0 } - return b.Bytes() -} -type Session struct { - Sid string - VisitorAddr *net.UDPAddr - ClientAddr *net.UDPAddr + for i := 0; i < count; i++ { + select { + case <-ctx.Done(): + return + default: + } + + port := getUnusedPort() + if port == 0 { + continue + } - NotifyCh chan struct{} + for _, ip := range lo.Uniq(parseIPs(addrs)) { + detectAddr := net.JoinHostPort(ip, strconv.Itoa(port)) + if err := sendFunc(conn, detectAddr); err != nil { + xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) + } + time.Sleep(time.Millisecond * 15) + } + } } -type ClientCfg struct { - Name string - Sk string - SidCh chan *SidRequest +func parseIPs(addrs []string) []string { + var ips []string + for _, addr := range addrs { + if ip, _, err := net.SplitHostPort(addr); err == nil { + ips = append(ips, ip) + } + } + return ips } diff --git a/pkg/nathole/utils.go b/pkg/nathole/utils.go index 75eda1a6d93..c889c7eb210 100644 --- a/pkg/nathole/utils.go +++ b/pkg/nathole/utils.go @@ -16,6 +16,7 @@ package nathole import ( "bytes" + "fmt" "net" "strconv" @@ -63,3 +64,49 @@ func (s *ChangedAddress) GetFrom(m *stun.Message) error { func (s *ChangedAddress) String() string { return net.JoinHostPort(s.IP.String(), strconv.Itoa(s.Port)) } + +func ListAllLocalIPs() ([]net.IP, error) { + addrs, err := net.InterfaceAddrs() + if err != nil { + return nil, err + } + ips := make([]net.IP, 0, len(addrs)) + for _, addr := range addrs { + ip, _, err := net.ParseCIDR(addr.String()) + if err != nil { + continue + } + ips = append(ips, ip) + } + return ips, nil +} + +func ListLocalIPsForNatHole(max int) ([]string, error) { + if max <= 0 { + return nil, fmt.Errorf("max must be greater than 0") + } + + ips, err := ListAllLocalIPs() + if err != nil { + return nil, err + } + + filtered := make([]string, 0, max) + for _, ip := range ips { + if len(filtered) >= max { + break + } + + // ignore ipv6 address + if ip.To4() == nil { + continue + } + // ignore localhost IP + if ip.IsLoopback() || ip.IsLinkLocalUnicast() || ip.IsLinkLocalMulticast() { + continue + } + + filtered = append(filtered, ip.String()) + } + return filtered, nil +} diff --git a/pkg/transport/message.go b/pkg/transport/message.go new file mode 100644 index 00000000000..6bcd8ce86f7 --- /dev/null +++ b/pkg/transport/message.go @@ -0,0 +1,119 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package transport + +import ( + "context" + "reflect" + "sync" + + "github.com/fatedier/golib/errors" + + "github.com/fatedier/frp/pkg/msg" +) + +type MessageTransporter interface { + Send(msg.Message) error + // Recv(ctx context.Context, laneKey string, msgType string) (Message, error) + // Do will first send msg, then recv msg with the same laneKey and specified msgType. + Do(ctx context.Context, req msg.Message, laneKey, recvMsgType string) (msg.Message, error) + Dispatch(m msg.Message, laneKey string) bool + DispatchWithType(m msg.Message, msgType, laneKey string) bool +} + +func NewMessageTransporter(sendCh chan msg.Message) MessageTransporter { + return &transporterImpl{ + sendCh: sendCh, + registry: make(map[string]map[string]chan msg.Message), + } +} + +type transporterImpl struct { + sendCh chan msg.Message + + // First key is message type and second key is lane key. + // Dispatch will dispatch message to releated channel by its message type + // and lane key. + registry map[string]map[string]chan msg.Message + mu sync.RWMutex +} + +func (impl *transporterImpl) Send(m msg.Message) error { + return errors.PanicToError(func() { + impl.sendCh <- m + }) +} + +func (impl *transporterImpl) Do(ctx context.Context, req msg.Message, laneKey, recvMsgType string) (msg.Message, error) { + ch := make(chan msg.Message, 1) + defer close(ch) + unregisterFn := impl.registerMsgChan(ch, laneKey, recvMsgType) + defer unregisterFn() + + if err := impl.Send(req); err != nil { + return nil, err + } + + select { + case <-ctx.Done(): + return nil, ctx.Err() + case resp := <-ch: + return resp, nil + } +} + +func (impl *transporterImpl) DispatchWithType(m msg.Message, msgType, laneKey string) bool { + var ch chan msg.Message + impl.mu.RLock() + byLaneKey, ok := impl.registry[msgType] + if ok { + ch = byLaneKey[laneKey] + } + impl.mu.RUnlock() + + if ch == nil { + return false + } + + if err := errors.PanicToError(func() { + ch <- m + }); err != nil { + return false + } + return true +} + +func (impl *transporterImpl) Dispatch(m msg.Message, laneKey string) bool { + msgType := reflect.TypeOf(m).Elem().Name() + return impl.DispatchWithType(m, msgType, laneKey) +} + +func (impl *transporterImpl) registerMsgChan(recvCh chan msg.Message, laneKey string, msgType string) (unregister func()) { + impl.mu.Lock() + byLaneKey, ok := impl.registry[msgType] + if !ok { + byLaneKey = make(map[string]chan msg.Message) + impl.registry[msgType] = byLaneKey + } + byLaneKey[laneKey] = recvCh + impl.mu.Unlock() + + unregister = func() { + impl.mu.Lock() + delete(byLaneKey, laneKey) + impl.mu.Unlock() + } + return +} diff --git a/pkg/transport/tls.go b/pkg/transport/tls.go index 02950cc546e..13e241b29ad 100644 --- a/pkg/transport/tls.go +++ b/pkg/transport/tls.go @@ -1,3 +1,17 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + package transport import ( diff --git a/pkg/util/net/udp.go b/pkg/util/net/udp.go index 82999a5f5c2..599447c3c68 100644 --- a/pkg/util/net/udp.go +++ b/pkg/util/net/udp.go @@ -256,3 +256,11 @@ func (l *UDPListener) Close() error { func (l *UDPListener) Addr() net.Addr { return l.addr } + +// ConnectedUDPConn is a wrapper for net.UDPConn which converts WriteTo syscalls +// to Write syscalls that are 4 times faster on some OS'es. This should only be +// used for connections that were produced by a net.Dial* call. +type ConnectedUDPConn struct{ *net.UDPConn } + +// WriteTo redirects all writes to the Write syscall, which is 4 times faster. +func (c *ConnectedUDPConn) WriteTo(b []byte, addr net.Addr) (int, error) { return c.Write(b) } diff --git a/pkg/util/util/slice.go b/pkg/util/util/slice.go deleted file mode 100644 index 6d4f14ec302..00000000000 --- a/pkg/util/util/slice.go +++ /dev/null @@ -1,25 +0,0 @@ -package util - -func InSlice[T comparable](v T, s []T) bool { - for _, vv := range s { - if v == vv { - return true - } - } - return false -} - -func InSliceAny[T any](v T, s []T, equalFn func(a, b T) bool) bool { - for _, vv := range s { - if equalFn(v, vv) { - return true - } - } - return false -} - -func InSliceAnyFunc[T any](equalFn func(a, b T) bool) func(v T, s []T) bool { - return func(v T, s []T) bool { - return InSliceAny(v, s, equalFn) - } -} diff --git a/pkg/util/util/slice_test.go b/pkg/util/util/slice_test.go deleted file mode 100644 index 3e9d1428961..00000000000 --- a/pkg/util/util/slice_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package util - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestInSlice(t *testing.T) { - require := require.New(t) - require.True(InSlice(1, []int{1, 2, 3})) - require.False(InSlice(0, []int{1, 2, 3})) - require.True(InSlice("foo", []string{"foo", "bar"})) - require.False(InSlice("not exist", []string{"foo", "bar"})) -} - -type testStructA struct { - Name string - Age int -} - -func TestInSliceAny(t *testing.T) { - require := require.New(t) - - a := testStructA{Name: "foo", Age: 20} - b := testStructA{Name: "foo", Age: 30} - c := testStructA{Name: "bar", Age: 20} - - equalFn := func(o, p testStructA) bool { - return o.Name == p.Name - } - require.True(InSliceAny(a, []testStructA{b, c}, equalFn)) - require.False(InSliceAny(c, []testStructA{a, b}, equalFn)) -} - -func TestInSliceAnyFunc(t *testing.T) { - require := require.New(t) - - a := testStructA{Name: "foo", Age: 20} - b := testStructA{Name: "foo", Age: 30} - c := testStructA{Name: "bar", Age: 20} - - equalFn := func(o, p testStructA) bool { - return o.Name == p.Name - } - testStructAInSlice := InSliceAnyFunc(equalFn) - require.True(testStructAInSlice(a, []testStructA{b, c})) - require.False(testStructAInSlice(c, []testStructA{a, b})) -} diff --git a/pkg/util/util/util.go b/pkg/util/util/util.go index b72209c62d6..b437f3e3ffe 100644 --- a/pkg/util/util/util.go +++ b/pkg/util/util/util.go @@ -28,19 +28,32 @@ import ( // RandID return a rand string used in frp. func RandID() (id string, err error) { - return RandIDWithLen(8) + return RandIDWithLen(16) } // RandIDWithLen return a rand string with idLen length. func RandIDWithLen(idLen int) (id string, err error) { - b := make([]byte, idLen) + if idLen <= 0 { + return "", nil + } + b := make([]byte, idLen/2+1) _, err = rand.Read(b) if err != nil { return } id = fmt.Sprintf("%x", b) - return + return id[:idLen], nil +} + +// RandIDWithRandLen return a rand string with length between [start, end). +func RandIDWithRandLen(start, end int) (id string, err error) { + if start >= end { + err = fmt.Errorf("start should be less than end") + return + } + idLen := mathrand.Intn(end-start) + start + return RandIDWithLen(idLen) } func GetAuthKey(token string, timestamp int64) (key string) { diff --git a/pkg/util/util/util_test.go b/pkg/util/util/util_test.go index 311732b421f..cf76485b281 100644 --- a/pkg/util/util/util_test.go +++ b/pkg/util/util/util_test.go @@ -14,10 +14,51 @@ func TestRandId(t *testing.T) { assert.Equal(16, len(id)) } +func TestRandIDWithRandLen(t *testing.T) { + tests := []struct { + name string + start int + end int + expectErr bool + }{ + { + name: "start and end are equal", + start: 5, + end: 5, + expectErr: true, + }, + { + name: "start is less than end", + start: 5, + end: 10, + expectErr: false, + }, + { + name: "start is greater than end", + start: 10, + end: 5, + expectErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + assert := assert.New(t) + id, err := RandIDWithRandLen(tt.start, tt.end) + if tt.expectErr { + assert.Error(err) + } else { + assert.NoError(err) + assert.GreaterOrEqual(len(id), tt.start) + assert.Less(len(id), tt.end) + } + }) + } +} + func TestGetAuthKey(t *testing.T) { assert := assert.New(t) key := GetAuthKey("1234", 1488720000) - t.Log(key) assert.Equal("6df41a43725f0c770fd56379e12acf8c", key) } diff --git a/server/control.go b/server/control.go index e80e4242654..f905e74c86b 100644 --- a/server/control.go +++ b/server/control.go @@ -33,6 +33,7 @@ import ( frpErr "github.com/fatedier/frp/pkg/errors" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/pkg/util/xlog" @@ -82,6 +83,16 @@ func (cm *ControlManager) GetByID(runID string) (ctl *Control, ok bool) { return } +func (cm *ControlManager) Close() error { + cm.mu.Lock() + defer cm.mu.Unlock() + for _, ctl := range cm.ctlsByRunID { + ctl.Close() + } + cm.ctlsByRunID = make(map[string]*Control) + return nil +} + type Control struct { // all resource managers and controllers rc *controller.ResourceController @@ -95,6 +106,9 @@ type Control struct { // verifies authentication based on selected method authVerifier auth.Verifier + // other components can use this to communicate with client + msgTransporter transport.MessageTransporter + // login message loginMsg *msg.Login @@ -158,7 +172,7 @@ func NewControl( if poolCount > int(serverCfg.MaxPoolCount) { poolCount = int(serverCfg.MaxPoolCount) } - return &Control{ + ctl := &Control{ rc: rc, pxyManager: pxyManager, pluginManager: pluginManager, @@ -182,6 +196,8 @@ func NewControl( xl: xlog.FromContextSafe(ctx), ctx: ctx, } + ctl.msgTransporter = transport.NewMessageTransporter(ctl.sendCh) + return ctl } // Start send a login success message to client and start working. @@ -204,6 +220,18 @@ func (ctl *Control) Start() { go ctl.stoper() } +func (ctl *Control) Close() error { + ctl.allShutdown.Start() + return nil +} + +func (ctl *Control) Replaced(newCtl *Control) { + xl := ctl.xl + xl.Info("Replaced by client [%s]", newCtl.runID) + ctl.runID = "" + ctl.allShutdown.Start() +} + func (ctl *Control) RegisterWorkConn(conn net.Conn) error { xl := ctl.xl defer func() { @@ -275,13 +303,6 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { return } -func (ctl *Control) Replaced(newCtl *Control) { - xl := ctl.xl - xl.Info("Replaced by client [%s]", newCtl.runID) - ctl.runID = "" - ctl.allShutdown.Start() -} - func (ctl *Control) writer() { xl := ctl.xl defer func() { @@ -465,6 +486,12 @@ func (ctl *Control) manager() { metrics.Server.NewProxy(m.ProxyName, m.ProxyType) } ctl.sendCh <- resp + case *msg.NatHoleVisitor: + go ctl.HandleNatHoleVisitor(m) + case *msg.NatHoleClient: + go ctl.HandleNatHoleClient(m) + case *msg.NatHoleReport: + go ctl.HandleNatHoleReport(m) case *msg.CloseProxy: _ = ctl.CloseProxy(m) xl.Info("close proxy [%s] success", m.ProxyName) @@ -497,6 +524,18 @@ func (ctl *Control) manager() { } } +func (ctl *Control) HandleNatHoleVisitor(m *msg.NatHoleVisitor) { + ctl.rc.NatHoleController.HandleVisitor(m, ctl.msgTransporter) +} + +func (ctl *Control) HandleNatHoleClient(m *msg.NatHoleClient) { + ctl.rc.NatHoleController.HandleClient(m, ctl.msgTransporter) +} + +func (ctl *Control) HandleNatHoleReport(m *msg.NatHoleReport) { + ctl.rc.NatHoleController.HandleReport(m) +} + func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err error) { var pxyConf config.ProxyConf // Load configures from NewProxy message and check. diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index b6c7be3ae99..8b2717bfa3f 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -44,41 +44,20 @@ func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { for { select { case <-pxy.closeCh: - break - case sidRequest := <-sidCh: - sr := sidRequest + return + case sid := <-sidCh: workConn, errRet := pxy.GetWorkConnFromPool(nil, nil) if errRet != nil { continue } m := &msg.NatHoleSid{ - Sid: sr.Sid, + Sid: sid, } errRet = msg.WriteMsg(workConn, m) if errRet != nil { xl.Warn("write nat hole sid package error, %v", errRet) - workConn.Close() - break } - - go func() { - raw, errRet := msg.ReadMsg(workConn) - if errRet != nil { - xl.Warn("read nat hole client ok package error: %v", errRet) - workConn.Close() - return - } - if _, ok := raw.(*msg.NatHoleClientDetectOK); !ok { - xl.Warn("read nat hole client ok package format error") - workConn.Close() - return - } - - select { - case sr.NotifyCh <- struct{}{}: - default: - } - }() + workConn.Close() } } }() diff --git a/server/service.go b/server/service.go index 4ce5f992b9e..0cdd26665c2 100644 --- a/server/service.go +++ b/server/service.go @@ -99,6 +99,11 @@ type Service struct { tlsConfig *tls.Config cfg config.ServerCommonConf + + // service context + ctx context.Context + // call cancel to stop service + cancel context.CancelFunc } func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { @@ -110,6 +115,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { return } + ctx, cancel := context.WithCancel(context.Background()) svr = &Service{ ctlManager: NewControlManager(), pxyManager: proxy.NewManager(), @@ -123,6 +129,8 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { authVerifier: auth.NewAuthVerifier(cfg.ServerConfig), tlsConfig: tlsConfig, cfg: cfg, + ctx: ctx, + cancel: cancel, } // Create tcpmux httpconnect multiplexer. @@ -290,17 +298,12 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { }) // Create nat hole controller. - if cfg.BindUDPPort > 0 { - var nc *nathole.Controller - address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindUDPPort)) - nc, err = nathole.NewController(address, []byte(cfg.Token)) - if err != nil { - err = fmt.Errorf("create nat hole controller error, %v", err) - return - } - svr.rc.NatHoleController = nc - log.Info("nat hole udp service listen on %s", address) + nc, err := nathole.NewController(time.Duration(cfg.NatHoleAnalysisDataReserveHours) * time.Hour) + if err != nil { + err = fmt.Errorf("create nat hole controller error, %v", err) + return } + svr.rc.NatHoleController = nc var statsEnable bool // Create dashboard web server. @@ -327,22 +330,43 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { } func (svr *Service) Run() { - if svr.rc.NatHoleController != nil { - go svr.rc.NatHoleController.Run() - } if svr.kcpListener != nil { go svr.HandleListener(svr.kcpListener) } if svr.quicListener != nil { go svr.HandleQUICListener(svr.quicListener) } - go svr.HandleListener(svr.websocketListener) go svr.HandleListener(svr.tlsListener) + if svr.rc.NatHoleController != nil { + go svr.rc.NatHoleController.CleanWorker(svr.ctx) + } svr.HandleListener(svr.listener) } +func (svr *Service) Close() error { + if svr.kcpListener != nil { + svr.kcpListener.Close() + } + if svr.quicListener != nil { + svr.quicListener.Close() + } + if svr.websocketListener != nil { + svr.websocketListener.Close() + } + if svr.tlsListener != nil { + svr.tlsListener.Close() + } + if svr.listener != nil { + svr.listener.Close() + } + svr.cancel() + + svr.ctlManager.Close() + return nil +} + func (svr *Service) handleConnection(ctx context.Context, conn net.Conn) { xl := xlog.FromContextSafe(ctx) From 756dd1ad5e8cad6b05c97133cf7722b3c76c64e7 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 28 May 2023 23:06:35 +0800 Subject: [PATCH 066/444] add e2e case for xtcp (#3451) --- hack/run-e2e.sh | 2 +- test/e2e/basic/basic.go | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/hack/run-e2e.sh b/hack/run-e2e.sh index ab59c11ae7c..e5dfecf54b5 100755 --- a/hack/run-e2e.sh +++ b/hack/run-e2e.sh @@ -17,4 +17,4 @@ if [ x${LOG_LEVEL} != x"" ]; then logLevel=${LOG_LEVEL} fi -ginkgo -nodes=8 --poll-progress-after=20s ${ROOT}/test/e2e -- -frpc-path=${ROOT}/bin/frpc -frps-path=${ROOT}/bin/frps -log-level=${logLevel} -debug=${debug} +ginkgo -nodes=8 --poll-progress-after=30s ${ROOT}/test/e2e -- -frpc-path=${ROOT}/bin/frpc -frps-path=${ROOT}/bin/frps -log-level=${logLevel} -debug=${debug} diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index 7fd74e9078f..111e4942b93 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -4,6 +4,7 @@ import ( "crypto/tls" "fmt" "strings" + "time" "github.com/onsi/ginkgo/v2" @@ -275,8 +276,8 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { }) }) - ginkgo.Describe("STCP && SUDP", func() { - types := []string{"stcp", "sudp"} + ginkgo.Describe("STCP && SUDP && XTCP", func() { + types := []string{"stcp", "sudp", "xtcp"} for _, t := range types { proxyType := t ginkgo.It(fmt.Sprintf("Expose echo server with %s", strings.ToUpper(proxyType)), func() { @@ -293,6 +294,9 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { case "sudp": localPortName = framework.UDPEchoServerPort protocol = "udp" + case "xtcp": + localPortName = framework.TCPEchoServerPort + protocol = "tcp" } correctSK := "abc" @@ -371,6 +375,9 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { for _, test := range tests { framework.NewRequestExpect(f). + RequestModify(func(r *request.Request) { + r.Timeout(5 * time.Second) + }). Protocol(protocol). PortName(test.bindPortName). Explain(test.proxyName). From 4915852b9c8c030c086a259a18b1343b9f2e5c10 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 29 May 2023 00:27:27 +0800 Subject: [PATCH 067/444] use constant time comparison (#3452) --- client/admin.go | 2 +- pkg/auth/token.go | 12 ++++++------ pkg/nathole/controller.go | 2 +- pkg/plugin/client/http_proxy.go | 6 +++++- pkg/plugin/client/static_file.go | 3 ++- pkg/util/net/http.go | 32 ++++++++++++++++---------------- pkg/util/util/util.go | 5 +++++ server/dashboard.go | 2 +- test/e2e/framework/framework.go | 8 ++++---- test/e2e/framework/process.go | 4 ++-- test/e2e/pkg/port/port.go | 4 ++-- 11 files changed, 45 insertions(+), 35 deletions(-) diff --git a/client/admin.go b/client/admin.go index f96e1bc1e5a..949ab8adec4 100644 --- a/client/admin.go +++ b/client/admin.go @@ -48,7 +48,7 @@ func (svr *Service) RunAdminServer(address string) (err error) { subRouter := router.NewRoute().Subrouter() user, passwd := svr.cfg.AdminUser, svr.cfg.AdminPwd - subRouter.Use(frpNet.NewHTTPAuthMiddleware(user, passwd).Middleware) + subRouter.Use(frpNet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) // api, see admin_api.go subRouter.HandleFunc("/api/reload", svr.apiReload).Methods("GET") diff --git a/pkg/auth/token.go b/pkg/auth/token.go index 1049174dea9..9b2e3f7ce02 100644 --- a/pkg/auth/token.go +++ b/pkg/auth/token.go @@ -73,30 +73,30 @@ func (auth *TokenAuthSetterVerifier) SetNewWorkConn(newWorkConnMsg *msg.NewWorkC return nil } -func (auth *TokenAuthSetterVerifier) VerifyLogin(loginMsg *msg.Login) error { - if util.GetAuthKey(auth.token, loginMsg.Timestamp) != loginMsg.PrivilegeKey { +func (auth *TokenAuthSetterVerifier) VerifyLogin(m *msg.Login) error { + if !util.ConstantTimeEqString(util.GetAuthKey(auth.token, m.Timestamp), m.PrivilegeKey) { return fmt.Errorf("token in login doesn't match token from configuration") } return nil } -func (auth *TokenAuthSetterVerifier) VerifyPing(pingMsg *msg.Ping) error { +func (auth *TokenAuthSetterVerifier) VerifyPing(m *msg.Ping) error { if !auth.AuthenticateHeartBeats { return nil } - if util.GetAuthKey(auth.token, pingMsg.Timestamp) != pingMsg.PrivilegeKey { + if !util.ConstantTimeEqString(util.GetAuthKey(auth.token, m.Timestamp), m.PrivilegeKey) { return fmt.Errorf("token in heartbeat doesn't match token from configuration") } return nil } -func (auth *TokenAuthSetterVerifier) VerifyNewWorkConn(newWorkConnMsg *msg.NewWorkConn) error { +func (auth *TokenAuthSetterVerifier) VerifyNewWorkConn(m *msg.NewWorkConn) error { if !auth.AuthenticateNewWorkConns { return nil } - if util.GetAuthKey(auth.token, newWorkConnMsg.Timestamp) != newWorkConnMsg.PrivilegeKey { + if !util.ConstantTimeEqString(util.GetAuthKey(auth.token, m.Timestamp), m.PrivilegeKey) { return fmt.Errorf("token in NewWorkConn doesn't match token from configuration") } return nil diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index 71feb1be884..a04006b9243 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -174,7 +174,7 @@ func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport. if !ok { return fmt.Errorf("xtcp server for [%s] doesn't exist", m.ProxyName) } - if m.SignKey != util.GetAuthKey(clientCfg.sk, m.Timestamp) { + if !util.ConstantTimeEqString(m.SignKey, util.GetAuthKey(clientCfg.sk, m.Timestamp)) { return fmt.Errorf("xtcp connection of [%s] auth failed", m.ProxyName) } c.sessions[sid] = session diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index 78930e3952e..86542045519 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -21,11 +21,13 @@ import ( "net" "net/http" "strings" + "time" frpIo "github.com/fatedier/golib/io" gnet "github.com/fatedier/golib/net" frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/util" ) const PluginHTTPProxy = "http_proxy" @@ -179,7 +181,9 @@ func (hp *HTTPProxy) Auth(req *http.Request) bool { return false } - if pair[0] != hp.AuthUser || pair[1] != hp.AuthPasswd { + if !util.ConstantTimeEqString(pair[0], hp.AuthUser) || + !util.ConstantTimeEqString(pair[1], hp.AuthPasswd) { + time.Sleep(200 * time.Millisecond) return false } return true diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index 4d31ea53e8b..097af060a73 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -18,6 +18,7 @@ import ( "io" "net" "net/http" + "time" "github.com/gorilla/mux" @@ -64,7 +65,7 @@ func NewStaticFilePlugin(params map[string]string) (Plugin, error) { } router := mux.NewRouter() - router.Use(frpNet.NewHTTPAuthMiddleware(httpUser, httpPasswd).Middleware) + router.Use(frpNet.NewHTTPAuthMiddleware(httpUser, httpPasswd).SetAuthFailDelay(200 * time.Millisecond).Middleware) router.PathPrefix(prefix).Handler(frpNet.MakeHTTPGzipHandler(http.StripPrefix(prefix, http.FileServer(http.Dir(localPath))))).Methods("GET") sp.s = &http.Server{ Handler: router, diff --git a/pkg/util/net/http.go b/pkg/util/net/http.go index fa1c34afd44..1a7da23f72f 100644 --- a/pkg/util/net/http.go +++ b/pkg/util/net/http.go @@ -19,6 +19,9 @@ import ( "io" "net/http" "strings" + "time" + + "github.com/fatedier/frp/pkg/util/util" ) type HTTPAuthWraper struct { @@ -46,8 +49,9 @@ func (aw *HTTPAuthWraper) ServeHTTP(w http.ResponseWriter, r *http.Request) { } type HTTPAuthMiddleware struct { - user string - passwd string + user string + passwd string + authFailDelay time.Duration } func NewHTTPAuthMiddleware(user, passwd string) *HTTPAuthMiddleware { @@ -57,32 +61,28 @@ func NewHTTPAuthMiddleware(user, passwd string) *HTTPAuthMiddleware { } } +func (authMid *HTTPAuthMiddleware) SetAuthFailDelay(delay time.Duration) *HTTPAuthMiddleware { + authMid.authFailDelay = delay + return authMid +} + func (authMid *HTTPAuthMiddleware) Middleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { reqUser, reqPasswd, hasAuth := r.BasicAuth() if (authMid.user == "" && authMid.passwd == "") || - (hasAuth && reqUser == authMid.user && reqPasswd == authMid.passwd) { + (hasAuth && util.ConstantTimeEqString(reqUser, authMid.user) && + util.ConstantTimeEqString(reqPasswd, authMid.passwd)) { next.ServeHTTP(w, r) } else { + if authMid.authFailDelay > 0 { + time.Sleep(authMid.authFailDelay) + } w.Header().Set("WWW-Authenticate", `Basic realm="Restricted"`) http.Error(w, http.StatusText(http.StatusUnauthorized), http.StatusUnauthorized) } }) } -func HTTPBasicAuth(h http.HandlerFunc, user, passwd string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - reqUser, reqPasswd, hasAuth := r.BasicAuth() - if (user == "" && passwd == "") || - (hasAuth && reqUser == user && reqPasswd == passwd) { - h.ServeHTTP(w, r) - } else { - w.Header().Set("WWW-Authenticate", `Basic realm="Restricted"`) - http.Error(w, http.StatusText(http.StatusUnauthorized), http.StatusUnauthorized) - } - } -} - type HTTPGzipWraper struct { h http.Handler } diff --git a/pkg/util/util/util.go b/pkg/util/util/util.go index b437f3e3ffe..d2562b01a27 100644 --- a/pkg/util/util/util.go +++ b/pkg/util/util/util.go @@ -17,6 +17,7 @@ package util import ( "crypto/md5" "crypto/rand" + "crypto/subtle" "encoding/hex" "fmt" mathrand "math/rand" @@ -139,3 +140,7 @@ func RandomSleep(duration time.Duration, minRatio, maxRatio float64) time.Durati time.Sleep(d) return d } + +func ConstantTimeEqString(a, b string) bool { + return subtle.ConstantTimeCompare([]byte(a), []byte(b)) == 1 +} diff --git a/server/dashboard.go b/server/dashboard.go index 02c86325b61..ff941399069 100644 --- a/server/dashboard.go +++ b/server/dashboard.go @@ -50,7 +50,7 @@ func (svr *Service) RunDashboardServer(address string) (err error) { subRouter := router.NewRoute().Subrouter() user, passwd := svr.cfg.DashboardUser, svr.cfg.DashboardPwd - subRouter.Use(frpNet.NewHTTPAuthMiddleware(user, passwd).Middleware) + subRouter.Use(frpNet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) // metrics if svr.cfg.EnablePrometheus { diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index b2f65f2f3d3..6a7a655f266 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -66,8 +66,8 @@ func NewDefaultFramework() *Framework { options := Options{ TotalParallelNode: suiteConfig.ParallelTotal, CurrentNodeIndex: suiteConfig.ParallelProcess, - FromPortIndex: 20000, - ToPortIndex: 50000, + FromPortIndex: 10000, + ToPortIndex: 60000, } return NewFramework(options) } @@ -118,14 +118,14 @@ func (f *Framework) AfterEach() { // stop processor for _, p := range f.serverProcesses { _ = p.Stop() - if TestContext.Debug { + if TestContext.Debug || ginkgo.CurrentSpecReport().Failed() { fmt.Println(p.ErrorOutput()) fmt.Println(p.StdOutput()) } } for _, p := range f.clientProcesses { _ = p.Stop() - if TestContext.Debug { + if TestContext.Debug || ginkgo.CurrentSpecReport().Failed() { fmt.Println(p.ErrorOutput()) fmt.Println(p.StdOutput()) } diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 6c0eeea41fb..dba809ddbf4 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -38,7 +38,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str err = p.Start() ExpectNoError(err) } - time.Sleep(2 * time.Second) + time.Sleep(1 * time.Second) currentClientProcesses := make([]*process.Process, 0, len(clientTemplates)) for i := range clientTemplates { @@ -56,7 +56,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str ExpectNoError(err) time.Sleep(500 * time.Millisecond) } - time.Sleep(5 * time.Second) + time.Sleep(2 * time.Second) return currentServerProcesses, currentClientProcesses } diff --git a/test/e2e/pkg/port/port.go b/test/e2e/pkg/port/port.go index f113694267c..b9bcccfc432 100644 --- a/test/e2e/pkg/port/port.go +++ b/test/e2e/pkg/port/port.go @@ -58,7 +58,7 @@ func (pa *Allocator) GetByName(portName string) int { return 0 } - l, err := net.Listen("tcp", net.JoinHostPort("127.0.0.1", strconv.Itoa(port))) + l, err := net.Listen("tcp", net.JoinHostPort("0.0.0.0", strconv.Itoa(port))) if err != nil { // Maybe not controlled by us, mark it used. pa.used.Insert(port) @@ -66,7 +66,7 @@ func (pa *Allocator) GetByName(portName string) int { } l.Close() - udpAddr, err := net.ResolveUDPAddr("udp", net.JoinHostPort("127.0.0.1", strconv.Itoa(port))) + udpAddr, err := net.ResolveUDPAddr("udp", net.JoinHostPort("0.0.0.0", strconv.Itoa(port))) if err != nil { continue } From 98068402c86b7670a82a96c2926099213708f0a6 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 29 May 2023 01:09:53 +0800 Subject: [PATCH 068/444] add release notes (#3453) --- README.md | 19 +++++++++---------- Release.md | 19 +++++++++++++++---- cmd/frps/root.go | 3 --- conf/frpc_full.ini | 13 +++++-------- conf/frps_full.ini | 6 +++--- pkg/config/client.go | 6 ------ pkg/config/server.go | 4 ---- pkg/config/server_test.go | 2 -- pkg/msg/msg.go | 7 +++---- pkg/util/version/version.go | 2 +- server/control.go | 7 +++---- server/dashboard_api.go | 2 -- 12 files changed, 39 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 0b335b29043..4cf18b6a41d 100644 --- a/README.md +++ b/README.md @@ -343,20 +343,15 @@ Configure `frps` same as above. Note that it may not work with all types of NAT devices. You might want to fallback to stcp if xtcp doesn't work. -1. In `frps.ini` configure a UDP port for xtcp: - - ```ini - # frps.ini - bind_udp_port = 7001 - ``` - -2. Start `frpc` on machine B, and expose the SSH port. Note that the `remote_port` field is removed: +1. Start `frpc` on machine B, and expose the SSH port. Note that the `remote_port` field is removed: ```ini # frpc.ini [common] server_addr = x.x.x.x server_port = 7000 + # set up a new stun server if the default one is not available. + # nat_hole_stun_server = xxx [p2p_ssh] type = xtcp @@ -365,13 +360,15 @@ Note that it may not work with all types of NAT devices. You might want to fallb local_port = 22 ``` -3. Start another `frpc` (typically on another machine C) with the configuration to connect to SSH using P2P mode: +2. Start another `frpc` (typically on another machine C) with the configuration to connect to SSH using P2P mode: ```ini # frpc.ini [common] server_addr = x.x.x.x server_port = 7000 + # set up a new stun server if the default one is not available. + # nat_hole_stun_server = xxx [p2p_ssh_visitor] type = xtcp @@ -380,9 +377,11 @@ Note that it may not work with all types of NAT devices. You might want to fallb sk = abcdefg bind_addr = 127.0.0.1 bind_port = 6000 + # when automatic tunnel persistence is required, set it to true + keep_tunnel_open = false ``` -4. On machine C, connect to SSH on machine B, using this command: +3. On machine C, connect to SSH on machine B, using this command: `ssh -oPort=6000 127.0.0.1` diff --git a/Release.md b/Release.md index 1d3a27c3445..2b2fbabee15 100644 --- a/Release.md +++ b/Release.md @@ -1,8 +1,19 @@ +## Notes + +We have thoroughly refactored xtcp in this version to improve its penetration rate and stability. + +In this version, different penetration strategies can be attempted by retrying connections multiple times. Once a hole is successfully punched, the strategy will be recorded in the server cache for future reuse. When new users connect, the successfully penetrated tunnel can be reused instead of punching a new hole. + +**Due to a significant refactor of xtcp, this version is not compatible with previous versions of xtcp.** + +**To use features related to xtcp, both frpc and frps need to be updated to the latest version.** + ### New -* The `httpconnect` type in `tcpmux` now supports authentication through the parameters `http_user` and `http_pwd`. +* The frpc has added the `nathole discover` command for testing the NAT type of the current network. +* `XTCP` has been refactored, resulting in a significant improvement in the success rate of penetration. +* When verifying passwords, use `subtle.ConstantTimeCompare` and introduce a certain delay when the password is incorrect. -### Improved +### Fix -* The web framework has been upgraded to vue3 + element-plus, and the dashboard has added some information display and supports dark mode. -* The e2e testing has been switched to ginkgo v2. +* Fix the problem of lagging when opening multiple table entries in the frps dashboard. diff --git a/cmd/frps/root.go b/cmd/frps/root.go index 4086eac87a2..1ba1352f3a4 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -39,7 +39,6 @@ var ( bindAddr string bindPort int - bindUDPPort int kcpBindPort int proxyBindAddr string vhostHTTPPort int @@ -70,7 +69,6 @@ func init() { rootCmd.PersistentFlags().StringVarP(&bindAddr, "bind_addr", "", "0.0.0.0", "bind address") rootCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "p", 7000, "bind port") - rootCmd.PersistentFlags().IntVarP(&bindUDPPort, "bind_udp_port", "", 0, "bind udp port") rootCmd.PersistentFlags().IntVarP(&kcpBindPort, "kcp_bind_port", "", 0, "kcp bind udp port") rootCmd.PersistentFlags().StringVarP(&proxyBindAddr, "proxy_bind_addr", "", "0.0.0.0", "proxy bind address") rootCmd.PersistentFlags().IntVarP(&vhostHTTPPort, "vhost_http_port", "", 0, "vhost http port") @@ -159,7 +157,6 @@ func parseServerCommonCfgFromCmd() (cfg config.ServerCommonConf, err error) { cfg.BindAddr = bindAddr cfg.BindPort = bindPort - cfg.BindUDPPort = bindUDPPort cfg.KCPBindPort = kcpBindPort cfg.ProxyBindAddr = proxyBindAddr cfg.VhostHTTPPort = vhostHTTPPort diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index f614c37ce9e..e18d2a0f50d 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -6,14 +6,6 @@ server_addr = 0.0.0.0 server_port = 7000 -# Specify another address of the server to connect for nat hole. By default, it's same with -# server_addr. -# nat_hole_server_addr = 0.0.0.0 - -# ServerUDPPort specifies the server port to help penetrate NAT hole. By default, this value is 0. -# This parameter is only used when executing "nathole discover" in the command line. -# server_udp_port = 0 - # STUN server to help penetrate NAT hole. # nat_hole_stun_server = stun.easyvoip.com:3478 @@ -366,6 +358,11 @@ bind_addr = 127.0.0.1 bind_port = 9001 use_encryption = false use_compression = false +# when automatic tunnel persistence is required, set it to true +keep_tunnel_open = false +# effective when keep_tunnel_open is set to true, the number of attempts to punch through per hour +max_retries_an_hour = 8 +min_retry_interval = 90 [tcpmuxhttpconnect] type = tcpmux diff --git a/conf/frps_full.ini b/conf/frps_full.ini index 2d5e08e172e..525072dc87d 100644 --- a/conf/frps_full.ini +++ b/conf/frps_full.ini @@ -6,9 +6,6 @@ bind_addr = 0.0.0.0 bind_port = 7000 -# udp port to help make udp hole to penetrate nat -bind_udp_port = 7001 - # udp port used for kcp protocol, it can be same with 'bind_port'. # if not set, kcp is disabled in frps. kcp_bind_port = 7000 @@ -157,6 +154,9 @@ udp_packet_size = 1500 # Dashboard port must be set first pprof_enable = false +# Retention time for NAT hole punching strategy data. +nat_hole_analysis_data_reserve_hours = 168 + [plugin.user-manager] addr = 127.0.0.1:9000 path = /handler diff --git a/pkg/config/client.go b/pkg/config/client.go index 3ee39104fb4..50a46d51149 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -35,15 +35,9 @@ type ClientCommonConf struct { // ServerAddr specifies the address of the server to connect to. By // default, this value is "0.0.0.0". ServerAddr string `ini:"server_addr" json:"server_addr"` - // Specify another address of the server to connect for nat hole. By default, it's same with - // ServerAddr. - NatHoleServerAddr string `ini:"nat_hole_server_addr" json:"nat_hole_server_addr"` // ServerPort specifies the port to connect to the server on. By default, // this value is 7000. ServerPort int `ini:"server_port" json:"server_port"` - // ServerUDPPort specifies the server port to help penetrate NAT hole. By default, this value is 0. - // This parameter is only used when executing "nathole discover" in the command line. - ServerUDPPort int `ini:"server_udp_port" json:"server_udp_port"` // STUN server to help penetrate NAT hole. NatHoleSTUNServer string `ini:"nat_hole_stun_server" json:"nat_hole_stun_server"` // The maximum amount of time a dial to server will wait for a connect to complete. diff --git a/pkg/config/server.go b/pkg/config/server.go index f54a32f36c0..7d3310f647c 100644 --- a/pkg/config/server.go +++ b/pkg/config/server.go @@ -38,10 +38,6 @@ type ServerCommonConf struct { // BindPort specifies the port that the server listens on. By default, this // value is 7000. BindPort int `ini:"bind_port" json:"bind_port" validate:"gte=0,lte=65535"` - // BindUDPPort specifies the UDP port that the server listens on. If this - // value is 0, the server will not listen for UDP connections. By default, - // this value is 0 - BindUDPPort int `ini:"bind_udp_port" json:"bind_udp_port" validate:"gte=0,lte=65535"` // KCPBindPort specifies the KCP port that the server listens on. If this // value is 0, the server will not listen for KCP connections. By default, // this value is 0. diff --git a/pkg/config/server_test.go b/pkg/config/server_test.go index e93ba3d7a11..85a63f533b3 100644 --- a/pkg/config/server_test.go +++ b/pkg/config/server_test.go @@ -104,7 +104,6 @@ func Test_LoadServerCommonConf(t *testing.T) { }, BindAddr: "0.0.0.9", BindPort: 7009, - BindUDPPort: 7008, KCPBindPort: 7007, QUICKeepalivePeriod: 10, QUICMaxIdleTimeout: 30, @@ -183,7 +182,6 @@ func Test_LoadServerCommonConf(t *testing.T) { }, BindAddr: "0.0.0.9", BindPort: 7009, - BindUDPPort: 7008, QUICKeepalivePeriod: 10, QUICMaxIdleTimeout: 30, QUICMaxIncomingStreams: 100000, diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index b6a209d2420..c6fec4df1c6 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -80,10 +80,9 @@ type Login struct { } type LoginResp struct { - Version string `json:"version,omitempty"` - RunID string `json:"run_id,omitempty"` - ServerUDPPort int `json:"server_udp_port,omitempty"` - Error string `json:"error,omitempty"` + Version string `json:"version,omitempty"` + RunID string `json:"run_id,omitempty"` + Error string `json:"error,omitempty"` } // When frpc login success, send this message to frps for running a new proxy. diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 920cb56b977..1623bd88aa0 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.48.0" +var version = "0.49.0" func Full() string { return version diff --git a/server/control.go b/server/control.go index f905e74c86b..d7ed327bc00 100644 --- a/server/control.go +++ b/server/control.go @@ -203,10 +203,9 @@ func NewControl( // Start send a login success message to client and start working. func (ctl *Control) Start() { loginRespMsg := &msg.LoginResp{ - Version: version.Full(), - RunID: ctl.runID, - ServerUDPPort: ctl.serverCfg.BindUDPPort, - Error: "", + Version: version.Full(), + RunID: ctl.runID, + Error: "", } _ = msg.WriteMsg(ctl.conn, loginRespMsg) diff --git a/server/dashboard_api.go b/server/dashboard_api.go index a7f078f6182..aaf2b321069 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -35,7 +35,6 @@ type GeneralResponse struct { type serverInfoResp struct { Version string `json:"version"` BindPort int `json:"bind_port"` - BindUDPPort int `json:"bind_udp_port"` VhostHTTPPort int `json:"vhost_http_port"` VhostHTTPSPort int `json:"vhost_https_port"` TCPMuxHTTPConnectPort int `json:"tcpmux_httpconnect_port"` @@ -76,7 +75,6 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { svrResp := serverInfoResp{ Version: version.Full(), BindPort: svr.cfg.BindPort, - BindUDPPort: svr.cfg.BindUDPPort, VhostHTTPPort: svr.cfg.VhostHTTPPort, VhostHTTPSPort: svr.cfg.VhostHTTPSPort, TCPMuxHTTPConnectPort: svr.cfg.TCPMuxHTTPConnectPort, From 555db9d272565b869be7d825b07f81e93827bd7f Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 29 May 2023 14:10:34 +0800 Subject: [PATCH 069/444] format import package name (#3455) --- client/admin.go | 6 ++--- client/proxy/proxy.go | 10 ++++---- client/proxy/sudp.go | 12 +++++----- client/proxy/udp.go | 12 +++++----- client/proxy/xtcp.go | 6 ++--- client/service.go | 8 +++---- client/visitor/stcp.go | 8 +++---- client/visitor/sudp.go | 10 ++++---- client/visitor/xtcp.go | 14 +++++------ pkg/plugin/client/http2https.go | 4 ++-- pkg/plugin/client/http_proxy.go | 16 ++++++------- pkg/plugin/client/https2http.go | 4 ++-- pkg/plugin/client/https2https.go | 4 ++-- pkg/plugin/client/socks5.go | 4 ++-- pkg/plugin/client/static_file.go | 8 +++---- pkg/plugin/client/unix_domain_socket.go | 4 ++-- pkg/util/net/listener.go | 31 +++++++++++++++++-------- pkg/util/net/tls.go | 4 ++-- pkg/util/tcpmux/httpconnect.go | 4 ++-- pkg/util/vhost/http.go | 4 ++-- pkg/util/vhost/https.go | 4 ++-- pkg/util/vhost/vhost.go | 4 ++-- server/control.go | 6 ++--- server/dashboard.go | 6 ++--- server/proxy/http.go | 14 +++++------ server/proxy/proxy.go | 16 ++++++------- server/proxy/udp.go | 12 +++++----- server/service.go | 20 ++++++++-------- server/visitor/visitor.go | 18 +++++++------- 29 files changed, 142 insertions(+), 131 deletions(-) diff --git a/client/admin.go b/client/admin.go index 949ab8adec4..37959e7e466 100644 --- a/client/admin.go +++ b/client/admin.go @@ -23,7 +23,7 @@ import ( "github.com/gorilla/mux" "github.com/fatedier/frp/assets" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) var ( @@ -48,7 +48,7 @@ func (svr *Service) RunAdminServer(address string) (err error) { subRouter := router.NewRoute().Subrouter() user, passwd := svr.cfg.AdminUser, svr.cfg.AdminPwd - subRouter.Use(frpNet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) + subRouter.Use(utilnet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) // api, see admin_api.go subRouter.HandleFunc("/api/reload", svr.apiReload).Methods("GET") @@ -58,7 +58,7 @@ func (svr *Service) RunAdminServer(address string) (err error) { // view subRouter.Handle("/favicon.ico", http.FileServer(assets.FileSystem)).Methods("GET") - subRouter.PathPrefix("/static/").Handler(frpNet.MakeHTTPGzipHandler(http.StripPrefix("/static/", http.FileServer(assets.FileSystem)))).Methods("GET") + subRouter.PathPrefix("/static/").Handler(utilnet.MakeHTTPGzipHandler(http.StripPrefix("/static/", http.FileServer(assets.FileSystem)))).Methods("GET") subRouter.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/static/", http.StatusMovedPermanently) }) diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 61e6763e536..e961d60f974 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -24,7 +24,7 @@ import ( "sync" "time" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" libdial "github.com/fatedier/golib/net/dial" pp "github.com/pires/go-proxyproto" "golang.org/x/time/rate" @@ -279,7 +279,7 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf ) remote = workConn if limiter != nil { - remote = frpIo.WrapReadWriteCloser(limit.NewReader(workConn, limiter), limit.NewWriter(workConn, limiter), func() error { + remote = libio.WrapReadWriteCloser(limit.NewReader(workConn, limiter), limit.NewWriter(workConn, limiter), func() error { return workConn.Close() }) } @@ -287,7 +287,7 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf xl.Trace("handle tcp work connection, use_encryption: %t, use_compression: %t", baseInfo.UseEncryption, baseInfo.UseCompression) if baseInfo.UseEncryption { - remote, err = frpIo.WithEncryption(remote, encKey) + remote, err = libio.WithEncryption(remote, encKey) if err != nil { workConn.Close() xl.Error("create encryption stream error: %v", err) @@ -295,7 +295,7 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf } } if baseInfo.UseCompression { - remote = frpIo.WithCompression(remote) + remote = libio.WithCompression(remote) } // check if we need to send proxy protocol info @@ -360,7 +360,7 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf } } - _, _, errs := frpIo.Join(localConn, remote) + _, _, errs := libio.Join(localConn, remote) xl.Debug("join connections closed") if len(errs) > 0 { xl.Trace("join connections errors: %v", errs) diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index f54059030f9..ff88bf749ef 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -22,13 +22,13 @@ import ( "time" "github.com/fatedier/golib/errors" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" "github.com/fatedier/frp/pkg/util/limit" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) type SUDPProxy struct { @@ -67,12 +67,12 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { var rwc io.ReadWriteCloser = conn var err error if pxy.limiter != nil { - rwc = frpIo.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { + rwc = libio.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { return conn.Close() }) } if pxy.cfg.UseEncryption { - rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) + rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) if err != nil { conn.Close() xl.Error("create encryption stream error: %v", err) @@ -80,9 +80,9 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { } } if pxy.cfg.UseCompression { - rwc = frpIo.WithCompression(rwc) + rwc = libio.WithCompression(rwc) } - conn = frpNet.WrapReadWriteCloserToConn(rwc, conn) + conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) workConn := conn readCh := make(chan *msg.UDPPacket, 1024) diff --git a/client/proxy/udp.go b/client/proxy/udp.go index 8a5993673d9..0dc117940ab 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -21,13 +21,13 @@ import ( "time" "github.com/fatedier/golib/errors" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" "github.com/fatedier/frp/pkg/util/limit" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) // UDP @@ -79,12 +79,12 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { var rwc io.ReadWriteCloser = conn var err error if pxy.limiter != nil { - rwc = frpIo.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { + rwc = libio.WrapReadWriteCloser(limit.NewReader(conn, pxy.limiter), limit.NewWriter(conn, pxy.limiter), func() error { return conn.Close() }) } if pxy.cfg.UseEncryption { - rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) + rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) if err != nil { conn.Close() xl.Error("create encryption stream error: %v", err) @@ -92,9 +92,9 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { } } if pxy.cfg.UseCompression { - rwc = frpIo.WithCompression(rwc) + rwc = libio.WithCompression(rwc) } - conn = frpNet.WrapReadWriteCloserToConn(rwc, conn) + conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) pxy.mu.Lock() pxy.workConn = conn diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index 9535a314da2..64ce507486c 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -27,7 +27,7 @@ import ( "github.com/fatedier/frp/pkg/nathole" plugin "github.com/fatedier/frp/pkg/plugin/client" "github.com/fatedier/frp/pkg/transport" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) // XTCP @@ -132,7 +132,7 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s } defer lConn.Close() - remote, err := frpNet.NewKCPConnFromUDP(lConn, true, raddr.String()) + remote, err := utilnet.NewKCPConnFromUDP(lConn, true, raddr.String()) if err != nil { xl.Warn("create kcp connection from udp connection error: %v", err) return @@ -195,6 +195,6 @@ func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, star return } go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, - frpNet.QuicStreamToNetConn(stream, c), []byte(pxy.cfg.Sk), startWorkConnMsg) + utilnet.QuicStreamToNetConn(stream, c), []byte(pxy.cfg.Sk), startWorkConnMsg) } } diff --git a/client/service.go b/client/service.go index 83439c7f7d2..e6ff6d95593 100644 --- a/client/service.go +++ b/client/service.go @@ -39,7 +39,7 @@ import ( "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/log" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/pkg/util/xlog" @@ -409,7 +409,7 @@ func (cm *ConnectionManager) Connect() (net.Conn, error) { if err != nil { return nil, err } - return frpNet.QuicStreamToNetConn(stream, cm.quicConn), nil + return utilnet.QuicStreamToNetConn(stream, cm.quicConn), nil } else if cm.muxSession != nil { stream, err := cm.muxSession.OpenStream() if err != nil { @@ -451,7 +451,7 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { protocol := cm.cfg.Protocol if protocol == "websocket" { protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: frpNet.DialHookWebsocket()})) + dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: utilnet.DialHookWebsocket()})) } if cm.cfg.ConnectServerLocalIP != "" { dialOptions = append(dialOptions, libdial.WithLocalAddr(cm.cfg.ConnectServerLocalIP)) @@ -464,7 +464,7 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { libdial.WithProxyAuth(auth), libdial.WithTLSConfig(tlsConfig), libdial.WithAfterHook(libdial.AfterHook{ - Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, cm.cfg.DisableCustomTLSFirstByte), + Hook: utilnet.DialHookCustomTLSHeadByte(tlsConfig != nil, cm.cfg.DisableCustomTLSFirstByte), }), ) conn, err := libdial.Dial( diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 2a7cf64039a..672aadf0edf 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -20,7 +20,7 @@ import ( "strconv" "time" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" @@ -103,7 +103,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { var remote io.ReadWriteCloser remote = visitorConn if sv.cfg.UseEncryption { - remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk)) + remote, err = libio.WithEncryption(remote, []byte(sv.cfg.Sk)) if err != nil { xl.Error("create encryption stream error: %v", err) return @@ -111,8 +111,8 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { } if sv.cfg.UseCompression { - remote = frpIo.WithCompression(remote) + remote = libio.WithCompression(remote) } - frpIo.Join(userConn, remote) + libio.Join(userConn, remote) } diff --git a/client/visitor/sudp.go b/client/visitor/sudp.go index cd6f2afeda6..e93d877f906 100644 --- a/client/visitor/sudp.go +++ b/client/visitor/sudp.go @@ -23,12 +23,12 @@ import ( "time" "github.com/fatedier/golib/errors" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/xlog" ) @@ -232,16 +232,16 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { var remote io.ReadWriteCloser remote = visitorConn if sv.cfg.UseEncryption { - remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk)) + remote, err = libio.WithEncryption(remote, []byte(sv.cfg.Sk)) if err != nil { xl.Error("create encryption stream error: %v", err) return nil, err } } if sv.cfg.UseCompression { - remote = frpIo.WithCompression(remote) + remote = libio.WithCompression(remote) } - return frpNet.WrapReadWriteCloserToConn(remote, visitorConn), nil + return utilnet.WrapReadWriteCloserToConn(remote, visitorConn), nil } func (sv *SUDPVisitor) Close() { diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 6ace7688f27..7cbb90e157e 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -24,7 +24,7 @@ import ( "sync" "time" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" fmux "github.com/hashicorp/yamux" quic "github.com/quic-go/quic-go" "golang.org/x/time/rate" @@ -33,7 +33,7 @@ import ( "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/nathole" "github.com/fatedier/frp/pkg/transport" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/xlog" ) @@ -153,17 +153,17 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { var muxConnRWCloser io.ReadWriteCloser = tunnelConn if sv.cfg.UseEncryption { - muxConnRWCloser, err = frpIo.WithEncryption(muxConnRWCloser, []byte(sv.cfg.Sk)) + muxConnRWCloser, err = libio.WithEncryption(muxConnRWCloser, []byte(sv.cfg.Sk)) if err != nil { xl.Error("create encryption stream error: %v", err) return } } if sv.cfg.UseCompression { - muxConnRWCloser = frpIo.WithCompression(muxConnRWCloser) + muxConnRWCloser = libio.WithCompression(muxConnRWCloser) } - _, _, errs := frpIo.Join(userConn, muxConnRWCloser) + _, _, errs := libio.Join(userConn, muxConnRWCloser) xl.Debug("join connections closed") if len(errs) > 0 { xl.Trace("join connections errors: %v", errs) @@ -302,7 +302,7 @@ func (ks *KCPTunnelSession) Init(listenConn *net.UDPConn, raddr *net.UDPAddr) er if err != nil { return fmt.Errorf("dial udp error: %v", err) } - remote, err := frpNet.NewKCPConnFromUDP(lConn, true, raddr.String()) + remote, err := utilnet.NewKCPConnFromUDP(lConn, true, raddr.String()) if err != nil { return fmt.Errorf("create kcp connection from udp connection error: %v", err) } @@ -393,7 +393,7 @@ func (qs *QUICTunnelSession) OpenConn(ctx context.Context) (net.Conn, error) { if err != nil { return nil, err } - return frpNet.QuicStreamToNetConn(stream, session), nil + return utilnet.QuicStreamToNetConn(stream, session), nil } func (qs *QUICTunnelSession) Close() { diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index f50a6c41f7a..f84b0a0cb97 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -23,7 +23,7 @@ import ( "net/http/httputil" "strings" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) const PluginHTTP2HTTPS = "http2https" @@ -98,7 +98,7 @@ func NewHTTP2HTTPSPlugin(params map[string]string) (Plugin, error) { } func (p *HTTP2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { - wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) + wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index 86542045519..51a191be4c6 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -23,10 +23,10 @@ import ( "strings" "time" - frpIo "github.com/fatedier/golib/io" - gnet "github.com/fatedier/golib/net" + libio "github.com/fatedier/golib/io" + libnet "github.com/fatedier/golib/net" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" ) @@ -69,9 +69,9 @@ func (hp *HTTPProxy) Name() string { } func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { - wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) + wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) - sc, rd := gnet.NewSharedConn(wrapConn) + sc, rd := libnet.NewSharedConn(wrapConn) firstBytes := make([]byte, 7) _, err := rd.Read(firstBytes) if err != nil { @@ -86,7 +86,7 @@ func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBuf wrapConn.Close() return } - hp.handleConnectReq(request, frpIo.WrapReadWriteCloser(bufRd, wrapConn, wrapConn.Close)) + hp.handleConnectReq(request, libio.WrapReadWriteCloser(bufRd, wrapConn, wrapConn.Close)) return } @@ -158,7 +158,7 @@ func (hp *HTTPProxy) ConnectHandler(rw http.ResponseWriter, req *http.Request) { } _, _ = client.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) - go frpIo.Join(remote, client) + go libio.Join(remote, client) } func (hp *HTTPProxy) Auth(req *http.Request) bool { @@ -213,7 +213,7 @@ func (hp *HTTPProxy) handleConnectReq(req *http.Request, rwc io.ReadWriteCloser) } _, _ = rwc.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) - frpIo.Join(remote, rwc) + libio.Join(remote, rwc) } func copyHeaders(dst, src http.Header) { diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 18138dc1c7b..55edf832037 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -24,7 +24,7 @@ import ( "strings" "github.com/fatedier/frp/pkg/transport" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) const PluginHTTPS2HTTP = "https2http" @@ -123,7 +123,7 @@ func (p *HTTPS2HTTPPlugin) genTLSConfig() (*tls.Config, error) { } func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { - wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) + wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index 596bdc138a9..c236c4c8f05 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -24,7 +24,7 @@ import ( "strings" "github.com/fatedier/frp/pkg/transport" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) const PluginHTTPS2HTTPS = "https2https" @@ -128,7 +128,7 @@ func (p *HTTPS2HTTPSPlugin) genTLSConfig() (*tls.Config, error) { } func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { - wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) + wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/socks5.go b/pkg/plugin/client/socks5.go index f731e87da9a..06a88b648f0 100644 --- a/pkg/plugin/client/socks5.go +++ b/pkg/plugin/client/socks5.go @@ -21,7 +21,7 @@ import ( gosocks5 "github.com/armon/go-socks5" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) const PluginSocks5 = "socks5" @@ -52,7 +52,7 @@ func NewSocks5Plugin(params map[string]string) (p Plugin, err error) { func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { defer conn.Close() - wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) + wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = sp.Server.ServeConn(wrapConn) } diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index 097af060a73..32a888aec5a 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -22,7 +22,7 @@ import ( "github.com/gorilla/mux" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) const PluginStaticFile = "static_file" @@ -65,8 +65,8 @@ func NewStaticFilePlugin(params map[string]string) (Plugin, error) { } router := mux.NewRouter() - router.Use(frpNet.NewHTTPAuthMiddleware(httpUser, httpPasswd).SetAuthFailDelay(200 * time.Millisecond).Middleware) - router.PathPrefix(prefix).Handler(frpNet.MakeHTTPGzipHandler(http.StripPrefix(prefix, http.FileServer(http.Dir(localPath))))).Methods("GET") + router.Use(utilnet.NewHTTPAuthMiddleware(httpUser, httpPasswd).SetAuthFailDelay(200 * time.Millisecond).Middleware) + router.PathPrefix(prefix).Handler(utilnet.MakeHTTPGzipHandler(http.StripPrefix(prefix, http.FileServer(http.Dir(localPath))))).Methods("GET") sp.s = &http.Server{ Handler: router, } @@ -77,7 +77,7 @@ func NewStaticFilePlugin(params map[string]string) (Plugin, error) { } func (sp *StaticFilePlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { - wrapConn := frpNet.WrapReadWriteCloserToConn(conn, realConn) + wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = sp.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/unix_domain_socket.go b/pkg/plugin/client/unix_domain_socket.go index 68902472242..416938b3495 100644 --- a/pkg/plugin/client/unix_domain_socket.go +++ b/pkg/plugin/client/unix_domain_socket.go @@ -19,7 +19,7 @@ import ( "io" "net" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" ) const PluginUnixDomainSocket = "unix_domain_socket" @@ -62,7 +62,7 @@ func (uds *UnixDomainSocketPlugin) Handle(conn io.ReadWriteCloser, realConn net. } } - frpIo.Join(localConn, conn) + libio.Join(localConn, conn) } func (uds *UnixDomainSocketPlugin) Name() string { diff --git a/pkg/util/net/listener.go b/pkg/util/net/listener.go index 3b199c839f0..6f2d8a56646 100644 --- a/pkg/util/net/listener.go +++ b/pkg/util/net/listener.go @@ -22,20 +22,21 @@ import ( "github.com/fatedier/golib/errors" ) -// Custom listener -type CustomListener struct { +// InternalListener is a listener that can be used to accept connections from +// other goroutines. +type InternalListener struct { acceptCh chan net.Conn closed bool mu sync.Mutex } -func NewCustomListener() *CustomListener { - return &CustomListener{ - acceptCh: make(chan net.Conn, 64), +func NewInternalListener() *InternalListener { + return &InternalListener{ + acceptCh: make(chan net.Conn, 128), } } -func (l *CustomListener) Accept() (net.Conn, error) { +func (l *InternalListener) Accept() (net.Conn, error) { conn, ok := <-l.acceptCh if !ok { return nil, fmt.Errorf("listener closed") @@ -43,7 +44,7 @@ func (l *CustomListener) Accept() (net.Conn, error) { return conn, nil } -func (l *CustomListener) PutConn(conn net.Conn) error { +func (l *InternalListener) PutConn(conn net.Conn) error { err := errors.PanicToError(func() { select { case l.acceptCh <- conn: @@ -54,7 +55,7 @@ func (l *CustomListener) PutConn(conn net.Conn) error { return err } -func (l *CustomListener) Close() error { +func (l *InternalListener) Close() error { l.mu.Lock() defer l.mu.Unlock() if !l.closed { @@ -64,6 +65,16 @@ func (l *CustomListener) Close() error { return nil } -func (l *CustomListener) Addr() net.Addr { - return (*net.TCPAddr)(nil) +func (l *InternalListener) Addr() net.Addr { + return &InternalAddr{} +} + +type InternalAddr struct{} + +func (ia *InternalAddr) Network() string { + return "internal" +} + +func (ia *InternalAddr) String() string { + return "internal" } diff --git a/pkg/util/net/tls.go b/pkg/util/net/tls.go index 3aecb482f15..6645dfaf546 100644 --- a/pkg/util/net/tls.go +++ b/pkg/util/net/tls.go @@ -20,7 +20,7 @@ import ( "net" "time" - gnet "github.com/fatedier/golib/net" + libnet "github.com/fatedier/golib/net" ) var FRPTLSHeadByte = 0x17 @@ -28,7 +28,7 @@ var FRPTLSHeadByte = 0x17 func CheckAndEnableTLSServerConnWithTimeout( c net.Conn, tlsConfig *tls.Config, tlsOnly bool, timeout time.Duration, ) (out net.Conn, isTLS bool, custom bool, err error) { - sc, r := gnet.NewSharedConnSize(c, 2) + sc, r := libnet.NewSharedConnSize(c, 2) buf := make([]byte, 1) var n int _ = c.SetReadDeadline(time.Now().Add(timeout)) diff --git a/pkg/util/tcpmux/httpconnect.go b/pkg/util/tcpmux/httpconnect.go index 970897a9564..d6c0ce51ec5 100644 --- a/pkg/util/tcpmux/httpconnect.go +++ b/pkg/util/tcpmux/httpconnect.go @@ -22,7 +22,7 @@ import ( "net/http" "time" - gnet "github.com/fatedier/golib/net" + libnet "github.com/fatedier/golib/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" @@ -94,7 +94,7 @@ func (muxer *HTTPConnectTCPMuxer) auth(c net.Conn, username, password string, re func (muxer *HTTPConnectTCPMuxer) getHostFromHTTPConnect(c net.Conn) (net.Conn, map[string]string, error) { reqInfoMap := make(map[string]string, 0) - sc, rd := gnet.NewSharedConn(c) + sc, rd := libnet.NewSharedConn(c) host, httpUser, httpPwd, err := muxer.readHTTPConnectRequest(rd) if err != nil { diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index 5addb47542e..af3a4ab5146 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -28,7 +28,7 @@ import ( "strings" "time" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "github.com/fatedier/golib/pool" frpLog "github.com/fatedier/frp/pkg/util/log" @@ -256,7 +256,7 @@ func (rp *HTTPReverseProxy) connectHandler(rw http.ResponseWriter, req *http.Req return } _ = req.Write(remote) - go frpIo.Join(remote, client) + go libio.Join(remote, client) } func parseBasicAuth(auth string) (username, password string, ok bool) { diff --git a/pkg/util/vhost/https.go b/pkg/util/vhost/https.go index 2e94b4a291d..991c9294183 100644 --- a/pkg/util/vhost/https.go +++ b/pkg/util/vhost/https.go @@ -20,7 +20,7 @@ import ( "net" "time" - gnet "github.com/fatedier/golib/net" + libnet "github.com/fatedier/golib/net" ) type HTTPSMuxer struct { @@ -37,7 +37,7 @@ func NewHTTPSMuxer(listener net.Listener, timeout time.Duration) (*HTTPSMuxer, e func GetHTTPSHostname(c net.Conn) (_ net.Conn, _ map[string]string, err error) { reqInfoMap := make(map[string]string, 0) - sc, rd := gnet.NewSharedConn(c) + sc, rd := libnet.NewSharedConn(c) clientHello, err := readClientHello(rd) if err != nil { diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index acb9cb18ebd..6051a217f5c 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -22,7 +22,7 @@ import ( "github.com/fatedier/golib/errors" "github.com/fatedier/frp/pkg/util/log" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" ) @@ -282,7 +282,7 @@ func (l *Listener) Accept() (net.Conn, error) { xl.Debug("rewrite host to [%s] success", l.rewriteHost) conn = sConn } - return frpNet.NewContextConn(l.ctx, conn), nil + return utilnet.NewContextConn(l.ctx, conn), nil } func (l *Listener) Close() error { diff --git a/server/control.go b/server/control.go index d7ed327bc00..a4bffe39d30 100644 --- a/server/control.go +++ b/server/control.go @@ -30,7 +30,7 @@ import ( "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" - frpErr "github.com/fatedier/frp/pkg/errors" + pkgerr "github.com/fatedier/frp/pkg/errors" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/pkg/transport" @@ -268,7 +268,7 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { select { case workConn, ok = <-ctl.workConnCh: if !ok { - err = frpErr.ErrCtlClosed + err = pkgerr.ErrCtlClosed return } xl.Debug("get work connection from pool") @@ -283,7 +283,7 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { select { case workConn, ok = <-ctl.workConnCh: if !ok { - err = frpErr.ErrCtlClosed + err = pkgerr.ErrCtlClosed xl.Warn("no work connections available, %v", err) return } diff --git a/server/dashboard.go b/server/dashboard.go index ff941399069..a5c46ba3133 100644 --- a/server/dashboard.go +++ b/server/dashboard.go @@ -25,7 +25,7 @@ import ( "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/fatedier/frp/assets" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" ) var ( @@ -50,7 +50,7 @@ func (svr *Service) RunDashboardServer(address string) (err error) { subRouter := router.NewRoute().Subrouter() user, passwd := svr.cfg.DashboardUser, svr.cfg.DashboardPwd - subRouter.Use(frpNet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) + subRouter.Use(utilnet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) // metrics if svr.cfg.EnablePrometheus { @@ -65,7 +65,7 @@ func (svr *Service) RunDashboardServer(address string) (err error) { // view subRouter.Handle("/favicon.ico", http.FileServer(assets.FileSystem)).Methods("GET") - subRouter.PathPrefix("/static/").Handler(frpNet.MakeHTTPGzipHandler(http.StripPrefix("/static/", http.FileServer(assets.FileSystem)))).Methods("GET") + subRouter.PathPrefix("/static/").Handler(utilnet.MakeHTTPGzipHandler(http.StripPrefix("/static/", http.FileServer(assets.FileSystem)))).Methods("GET") subRouter.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/static/", http.StatusMovedPermanently) diff --git a/server/proxy/http.go b/server/proxy/http.go index 0f25c8c4e24..143665b8aac 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -19,12 +19,12 @@ import ( "net" "strings" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/util/limit" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" "github.com/fatedier/frp/server/metrics" @@ -157,24 +157,24 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err var rwc io.ReadWriteCloser = tmpConn if pxy.cfg.UseEncryption { - rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.serverCfg.Token)) + rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Token)) if err != nil { xl.Error("create encryption stream error: %v", err) return } } if pxy.cfg.UseCompression { - rwc = frpIo.WithCompression(rwc) + rwc = libio.WithCompression(rwc) } if pxy.GetLimiter() != nil { - rwc = frpIo.WrapReadWriteCloser(limit.NewReader(rwc, pxy.GetLimiter()), limit.NewWriter(rwc, pxy.GetLimiter()), func() error { + rwc = libio.WrapReadWriteCloser(limit.NewReader(rwc, pxy.GetLimiter()), limit.NewWriter(rwc, pxy.GetLimiter()), func() error { return rwc.Close() }) } - workConn = frpNet.WrapReadWriteCloserToConn(rwc, tmpConn) - workConn = frpNet.WrapStatsConn(workConn, pxy.updateStatsAfterClosedConn) + workConn = utilnet.WrapReadWriteCloserToConn(rwc, tmpConn) + workConn = utilnet.WrapStatsConn(workConn, pxy.updateStatsAfterClosedConn) metrics.Server.OpenConnection(pxy.GetName(), pxy.GetConf().GetBaseInfo().ProxyType) return } diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 088d637a425..56dcea8304e 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -23,14 +23,14 @@ import ( "sync" "time" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/pkg/util/limit" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/frp/server/controller" "github.com/fatedier/frp/server/metrics" @@ -113,7 +113,7 @@ func (pxy *BaseProxy) GetWorkConnFromPool(src, dst net.Addr) (workConn net.Conn, } xl.Debug("get a new work connection: [%s]", workConn.RemoteAddr().String()) xl.Spawn().AppendPrefix(pxy.GetName()) - workConn = frpNet.NewContextConn(pxy.ctx, workConn) + workConn = utilnet.NewContextConn(pxy.ctx, workConn) var ( srcAddr string @@ -156,7 +156,7 @@ func (pxy *BaseProxy) GetWorkConnFromPool(src, dst net.Addr) (workConn net.Conn, } // startListenHandler start a goroutine handler for each listener. -// p: p will just be passed to handler(Proxy, frpNet.Conn). +// p: p will just be passed to handler(Proxy, utilnet.Conn). // handler: each proxy type can set different handler function to deal with connections accepted from listeners. func (pxy *BaseProxy) startListenHandler(p Proxy, handler func(Proxy, net.Conn, config.ServerCommonConf)) { xl := xlog.FromContextSafe(pxy.ctx) @@ -297,18 +297,18 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv cfg := pxy.GetConf().GetBaseInfo() xl.Trace("handler user tcp connection, use_encryption: %t, use_compression: %t", cfg.UseEncryption, cfg.UseCompression) if cfg.UseEncryption { - local, err = frpIo.WithEncryption(local, []byte(serverCfg.Token)) + local, err = libio.WithEncryption(local, []byte(serverCfg.Token)) if err != nil { xl.Error("create encryption stream error: %v", err) return } } if cfg.UseCompression { - local = frpIo.WithCompression(local) + local = libio.WithCompression(local) } if pxy.GetLimiter() != nil { - local = frpIo.WrapReadWriteCloser(limit.NewReader(local, pxy.GetLimiter()), limit.NewWriter(local, pxy.GetLimiter()), func() error { + local = libio.WrapReadWriteCloser(limit.NewReader(local, pxy.GetLimiter()), limit.NewWriter(local, pxy.GetLimiter()), func() error { return local.Close() }) } @@ -319,7 +319,7 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv name := pxy.GetName() proxyType := pxy.GetConf().GetBaseInfo().ProxyType metrics.Server.OpenConnection(name, proxyType) - inCount, outCount, _ := frpIo.Join(local, userConn) + inCount, outCount, _ := libio.Join(local, userConn) metrics.Server.CloseConnection(name, proxyType) metrics.Server.AddTrafficIn(name, proxyType, inCount) metrics.Server.AddTrafficOut(name, proxyType, outCount) diff --git a/server/proxy/udp.go b/server/proxy/udp.go index 3a136c39b67..f1b7d06dc63 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -23,14 +23,14 @@ import ( "time" "github.com/fatedier/golib/errors" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" "github.com/fatedier/frp/pkg/util/limit" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/server/metrics" ) @@ -189,7 +189,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { var rwc io.ReadWriteCloser = workConn if pxy.cfg.UseEncryption { - rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.serverCfg.Token)) + rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Token)) if err != nil { xl.Error("create encryption stream error: %v", err) workConn.Close() @@ -197,16 +197,16 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { } } if pxy.cfg.UseCompression { - rwc = frpIo.WithCompression(rwc) + rwc = libio.WithCompression(rwc) } if pxy.GetLimiter() != nil { - rwc = frpIo.WrapReadWriteCloser(limit.NewReader(rwc, pxy.GetLimiter()), limit.NewWriter(rwc, pxy.GetLimiter()), func() error { + rwc = libio.WrapReadWriteCloser(limit.NewReader(rwc, pxy.GetLimiter()), limit.NewWriter(rwc, pxy.GetLimiter()), func() error { return rwc.Close() }) } - pxy.workConn = frpNet.WrapReadWriteCloserToConn(rwc, workConn) + pxy.workConn = utilnet.WrapReadWriteCloserToConn(rwc, workConn) ctx, cancel := context.WithCancel(context.Background()) go workConnReaderFn(pxy.workConn) go workConnSenderFn(pxy.workConn, ctx) diff --git a/server/service.go b/server/service.go index 0cdd26665c2..4378b95c95f 100644 --- a/server/service.go +++ b/server/service.go @@ -39,7 +39,7 @@ import ( plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/log" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/tcpmux" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/version" @@ -210,7 +210,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { // Listen for accepting connections from client using kcp protocol. if cfg.KCPBindPort > 0 { address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.KCPBindPort)) - svr.kcpListener, err = frpNet.ListenKcp(address) + svr.kcpListener, err = utilnet.ListenKcp(address) if err != nil { err = fmt.Errorf("listen on kcp udp address %s error: %v", address, err) return @@ -235,11 +235,11 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { } // Listen for accepting connections from client using websocket protocol. - websocketPrefix := []byte("GET " + frpNet.FrpWebsocketPath) + websocketPrefix := []byte("GET " + utilnet.FrpWebsocketPath) websocketLn := svr.muxer.Listen(0, uint32(len(websocketPrefix)), func(data []byte) bool { return bytes.Equal(data, websocketPrefix) }) - svr.websocketListener = frpNet.NewWebsocketListener(websocketLn) + svr.websocketListener = utilnet.NewWebsocketListener(websocketLn) // Create http vhost muxer. if cfg.VhostHTTPPort > 0 { @@ -294,7 +294,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { // frp tls listener svr.tlsListener = svr.muxer.Listen(2, 1, func(data []byte) bool { // tls first byte can be 0x16 only when vhost https port is not same with bind port - return int(data[0]) == frpNet.FRPTLSHeadByte || int(data[0]) == 0x16 + return int(data[0]) == utilnet.FRPTLSHeadByte || int(data[0]) == 0x16 }) // Create nat hole controller. @@ -442,12 +442,12 @@ func (svr *Service) HandleListener(l net.Listener) { xl := xlog.New() ctx := context.Background() - c = frpNet.NewContextConn(xlog.NewContext(ctx, xl), c) + c = utilnet.NewContextConn(xlog.NewContext(ctx, xl), c) log.Trace("start check TLS connection...") originConn := c var isTLS, custom bool - c, isTLS, custom, err = frpNet.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, svr.cfg.TLSOnly, connReadTimeout) + c, isTLS, custom, err = utilnet.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, svr.cfg.TLSOnly, connReadTimeout) if err != nil { log.Warn("CheckAndEnableTLSServerConnWithTimeout error: %v", err) originConn.Close() @@ -501,7 +501,7 @@ func (svr *Service) HandleQUICListener(l quic.Listener) { _ = frpConn.CloseWithError(0, "") return } - go svr.handleConnection(ctx, frpNet.QuicStreamToNetConn(stream, frpConn)) + go svr.handleConnection(ctx, utilnet.QuicStreamToNetConn(stream, frpConn)) } }(context.Background(), c) } @@ -517,7 +517,7 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login) (err } } - ctx := frpNet.NewContextFromConn(ctlConn) + ctx := utilnet.NewContextFromConn(ctlConn) xl := xlog.FromContextSafe(ctx) xl.AppendPrefix(loginMsg.RunID) ctx = xlog.NewContext(ctx, xl) @@ -555,7 +555,7 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login) (err // RegisterWorkConn register a new work connection to control and proxies need it. func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) error { - xl := frpNet.NewLogFromConn(workConn) + xl := utilnet.NewLogFromConn(workConn) ctl, exist := svr.ctlManager.GetByID(newMsg.RunID) if !exist { xl.Warn("No client control found for run id [%s]", newMsg.RunID) diff --git a/server/visitor/visitor.go b/server/visitor/visitor.go index 70f603b2de6..e66f7a078af 100644 --- a/server/visitor/visitor.go +++ b/server/visitor/visitor.go @@ -20,15 +20,15 @@ import ( "net" "sync" - frpIo "github.com/fatedier/golib/io" + libio "github.com/fatedier/golib/io" - frpNet "github.com/fatedier/frp/pkg/util/net" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" ) // Manager for visitor listeners. type Manager struct { - visitorListeners map[string]*frpNet.CustomListener + visitorListeners map[string]*utilnet.InternalListener skMap map[string]string mu sync.RWMutex @@ -36,12 +36,12 @@ type Manager struct { func NewManager() *Manager { return &Manager{ - visitorListeners: make(map[string]*frpNet.CustomListener), + visitorListeners: make(map[string]*utilnet.InternalListener), skMap: make(map[string]string), } } -func (vm *Manager) Listen(name string, sk string) (l *frpNet.CustomListener, err error) { +func (vm *Manager) Listen(name string, sk string) (l *utilnet.InternalListener, err error) { vm.mu.Lock() defer vm.mu.Unlock() @@ -50,7 +50,7 @@ func (vm *Manager) Listen(name string, sk string) (l *frpNet.CustomListener, err return } - l = frpNet.NewCustomListener() + l = utilnet.NewInternalListener() vm.visitorListeners[name] = l vm.skMap[name] = sk return @@ -71,15 +71,15 @@ func (vm *Manager) NewConn(name string, conn net.Conn, timestamp int64, signKey var rwc io.ReadWriteCloser = conn if useEncryption { - if rwc, err = frpIo.WithEncryption(rwc, []byte(sk)); err != nil { + if rwc, err = libio.WithEncryption(rwc, []byte(sk)); err != nil { err = fmt.Errorf("create encryption connection failed: %v", err) return } } if useCompression { - rwc = frpIo.WithCompression(rwc) + rwc = libio.WithCompression(rwc) } - err = l.PutConn(frpNet.WrapReadWriteCloserToConn(rwc, conn)) + err = l.PutConn(utilnet.WrapReadWriteCloserToConn(rwc, conn)) } else { err = fmt.Errorf("custom listener for [%s] doesn't exist", name) return From c7a0cfc66d98a036d07c851b7fbb5852d906394e Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 30 May 2023 10:55:00 +0800 Subject: [PATCH 070/444] xtcp: when connection timeout occurs, support fallback to STCP (#3460) --- client/service.go | 6 ++-- client/visitor/stcp.go | 24 ++++++++++--- client/visitor/sudp.go | 1 + client/visitor/visitor.go | 20 +++++++++++ client/visitor/visitor_manager.go | 36 ++++++++++++------- client/visitor/xtcp.go | 60 ++++++++++++++++++++++++++----- cmd/frpc/sub/root.go | 6 ++-- conf/frpc_full.ini | 6 ++++ pkg/config/client_test.go | 7 ++-- pkg/config/visitor.go | 28 ++++++++++----- pkg/config/visitor_test.go | 7 ++-- pkg/nathole/analysis.go | 30 ++++++++-------- pkg/nathole/classify.go | 11 +++--- pkg/nathole/nathole.go | 2 +- test/e2e/basic/basic.go | 2 +- test/e2e/basic/xtcp.go | 52 +++++++++++++++++++++++++++ 16 files changed, 230 insertions(+), 68 deletions(-) create mode 100644 test/e2e/basic/xtcp.go diff --git a/client/service.go b/client/service.go index e6ff6d95593..0849484c53f 100644 --- a/client/service.go +++ b/client/service.go @@ -369,7 +369,8 @@ func (cm *ConnectionManager) OpenConnection() error { } tlsConfig.NextProtos = []string{"frp"} - conn, err := quic.DialAddr( + conn, err := quic.DialAddrContext( + cm.ctx, net.JoinHostPort(cm.cfg.ServerAddr, strconv.Itoa(cm.cfg.ServerPort)), tlsConfig, &quic.Config{ MaxIdleTimeout: time.Duration(cm.cfg.QUICMaxIdleTimeout) * time.Second, @@ -467,7 +468,8 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { Hook: utilnet.DialHookCustomTLSHeadByte(tlsConfig != nil, cm.cfg.DisableCustomTLSFirstByte), }), ) - conn, err := libdial.Dial( + conn, err := libdial.DialContext( + cm.ctx, net.JoinHostPort(cm.cfg.ServerAddr, strconv.Itoa(cm.cfg.ServerPort)), dialOptions..., ) diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 672aadf0edf..7086c61f2e0 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -35,17 +35,20 @@ type STCPVisitor struct { } func (sv *STCPVisitor) Run() (err error) { - sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) - if err != nil { - return + if sv.cfg.BindPort > 0 { + sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) + if err != nil { + return + } + go sv.worker() } - go sv.worker() + go sv.internalConnWorker() return } func (sv *STCPVisitor) Close() { - sv.l.Close() + sv.BaseVisitor.Close() } func (sv *STCPVisitor) worker() { @@ -56,7 +59,18 @@ func (sv *STCPVisitor) worker() { xl.Warn("stcp local listener closed") return } + go sv.handleConn(conn) + } +} +func (sv *STCPVisitor) internalConnWorker() { + xl := xlog.FromContextSafe(sv.ctx) + for { + conn, err := sv.internalLn.Accept() + if err != nil { + xl.Warn("stcp internal listener closed") + return + } go sv.handleConn(conn) } } diff --git a/client/visitor/sudp.go b/client/visitor/sudp.go index e93d877f906..1e052c34632 100644 --- a/client/visitor/sudp.go +++ b/client/visitor/sudp.go @@ -254,6 +254,7 @@ func (sv *SUDPVisitor) Close() { default: close(sv.checkCloseCh) } + sv.BaseVisitor.Close() if sv.udpConn != nil { sv.udpConn.Close() } diff --git a/client/visitor/visitor.go b/client/visitor/visitor.go index 1f6471d9f82..10c0ab13905 100644 --- a/client/visitor/visitor.go +++ b/client/visitor/visitor.go @@ -21,12 +21,14 @@ import ( "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/transport" + utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" ) // Visitor is used for forward traffics from local port tot remote service. type Visitor interface { Run() error + AcceptConn(conn net.Conn) error Close() } @@ -35,14 +37,17 @@ func NewVisitor( cfg config.VisitorConf, clientCfg config.ClientCommonConf, connectServer func() (net.Conn, error), + transferConn func(string, net.Conn) error, msgTransporter transport.MessageTransporter, ) (visitor Visitor) { xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseInfo().ProxyName) baseVisitor := BaseVisitor{ clientCfg: clientCfg, connectServer: connectServer, + transferConn: transferConn, msgTransporter: msgTransporter, ctx: xlog.NewContext(ctx, xl), + internalLn: utilnet.NewInternalListener(), } switch cfg := cfg.(type) { case *config.STCPVisitorConf: @@ -69,9 +74,24 @@ func NewVisitor( type BaseVisitor struct { clientCfg config.ClientCommonConf connectServer func() (net.Conn, error) + transferConn func(string, net.Conn) error msgTransporter transport.MessageTransporter l net.Listener + internalLn *utilnet.InternalListener mu sync.RWMutex ctx context.Context } + +func (v *BaseVisitor) AcceptConn(conn net.Conn) error { + return v.internalLn.PutConn(conn) +} + +func (v *BaseVisitor) Close() { + if v.l != nil { + v.l.Close() + } + if v.internalLn != nil { + v.internalLn.Close() + } +} diff --git a/client/visitor/visitor_manager.go b/client/visitor/visitor_manager.go index 02b7e493d49..799ee3a5999 100644 --- a/client/visitor/visitor_manager.go +++ b/client/visitor/visitor_manager.go @@ -16,6 +16,7 @@ package visitor import ( "context" + "fmt" "net" "sync" "time" @@ -34,7 +35,7 @@ type Manager struct { checkInterval time.Duration - mu sync.Mutex + mu sync.RWMutex ctx context.Context stopCh chan struct{} @@ -83,11 +84,24 @@ func (vm *Manager) Run() { } } +func (vm *Manager) Close() { + vm.mu.Lock() + defer vm.mu.Unlock() + for _, v := range vm.visitors { + v.Close() + } + select { + case <-vm.stopCh: + default: + close(vm.stopCh) + } +} + // Hold lock before calling this function. func (vm *Manager) startVisitor(cfg config.VisitorConf) (err error) { xl := xlog.FromContextSafe(vm.ctx) name := cfg.GetBaseInfo().ProxyName - visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.connectServer, vm.msgTransporter) + visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.connectServer, vm.TransferConn, vm.msgTransporter) err = visitor.Run() if err != nil { xl.Warn("start error: %v", err) @@ -139,15 +153,13 @@ func (vm *Manager) Reload(cfgs map[string]config.VisitorConf) { } } -func (vm *Manager) Close() { - vm.mu.Lock() - defer vm.mu.Unlock() - for _, v := range vm.visitors { - v.Close() - } - select { - case <-vm.stopCh: - default: - close(vm.stopCh) +// TransferConn transfers a connection to a visitor. +func (vm *Manager) TransferConn(name string, conn net.Conn) error { + vm.mu.RLock() + defer vm.mu.RUnlock() + v, ok := vm.visitors[name] + if !ok { + return fmt.Errorf("visitor [%s] not found", name) } + return v.AcceptConn(conn) } diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 7cbb90e157e..5c4e2cf66da 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -59,12 +59,15 @@ func (sv *XTCPVisitor) Run() (err error) { sv.session = NewQUICTunnelSession(&sv.clientCfg) } - sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) - if err != nil { - return + if sv.cfg.BindPort > 0 { + sv.l, err = net.Listen("tcp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) + if err != nil { + return + } + go sv.worker() } - go sv.worker() + go sv.internalConnWorker() go sv.processTunnelStartEvents() if sv.cfg.KeepTunnelOpen { sv.retryLimiter = rate.NewLimiter(rate.Every(time.Hour/time.Duration(sv.cfg.MaxRetriesAnHour)), sv.cfg.MaxRetriesAnHour) @@ -74,8 +77,12 @@ func (sv *XTCPVisitor) Run() (err error) { } func (sv *XTCPVisitor) Close() { - sv.l.Close() - sv.cancel() + sv.mu.Lock() + defer sv.mu.Unlock() + sv.BaseVisitor.Close() + if sv.cancel != nil { + sv.cancel() + } if sv.session != nil { sv.session.Close() } @@ -89,7 +96,18 @@ func (sv *XTCPVisitor) worker() { xl.Warn("xtcp local listener closed") return } + go sv.handleConn(conn) + } +} +func (sv *XTCPVisitor) internalConnWorker() { + xl := xlog.FromContextSafe(sv.ctx) + for { + conn, err := sv.internalLn.Accept() + if err != nil { + xl.Warn("xtcp internal listener closed") + return + } go sv.handleConn(conn) } } @@ -139,15 +157,37 @@ func (sv *XTCPVisitor) keepTunnelOpenWorker() { func (sv *XTCPVisitor) handleConn(userConn net.Conn) { xl := xlog.FromContextSafe(sv.ctx) - defer userConn.Close() + isConnTrasfered := false + defer func() { + if !isConnTrasfered { + userConn.Close() + } + }() xl.Debug("get a new xtcp user connection") // Open a tunnel connection to the server. If there is already a successful hole-punching connection, // it will be reused. Otherwise, it will block and wait for a successful hole-punching connection until timeout. - tunnelConn, err := sv.openTunnel() + ctx := context.Background() + if sv.cfg.FallbackTo != "" { + timeoutCtx, cancel := context.WithTimeout(ctx, time.Duration(sv.cfg.FallbackTimeoutMs)*time.Millisecond) + defer cancel() + ctx = timeoutCtx + } + tunnelConn, err := sv.openTunnel(ctx) if err != nil { xl.Error("open tunnel error: %v", err) + // no fallback, just return + if sv.cfg.FallbackTo == "" { + return + } + + xl.Debug("try to transfer connection to visitor: %s", sv.cfg.FallbackTo) + if err := sv.transferConn(sv.cfg.FallbackTo, userConn); err != nil { + xl.Error("transfer connection to visitor %s error: %v", sv.cfg.FallbackTo, err) + return + } + isConnTrasfered = true return } @@ -171,7 +211,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } // openTunnel will open a tunnel connection to the target server. -func (sv *XTCPVisitor) openTunnel() (conn net.Conn, err error) { +func (sv *XTCPVisitor) openTunnel(ctx context.Context) (conn net.Conn, err error) { xl := xlog.FromContextSafe(sv.ctx) ticker := time.NewTicker(500 * time.Millisecond) defer ticker.Stop() @@ -185,6 +225,8 @@ func (sv *XTCPVisitor) openTunnel() (conn net.Conn, err error) { select { case <-sv.ctx.Done(): return nil, sv.ctx.Err() + case <-ctx.Done(): + return nil, ctx.Err() case <-immediateTrigger: conn, err = sv.getTunnelConn() case <-ticker.C: diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 8271d065b5e..5779750527f 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -117,7 +117,6 @@ var rootCmd = &cobra.Command{ // Do not show command usage here. err := runClient(cfgFile) if err != nil { - fmt.Println(err) os.Exit(1) } return nil @@ -199,6 +198,7 @@ func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) { func runClient(cfgFilePath string) error { cfg, pxyCfgs, visitorCfgs, err := config.ParseClientConfig(cfgFilePath) if err != nil { + fmt.Println(err) return err } return startService(cfg, pxyCfgs, visitorCfgs, cfgFilePath) @@ -214,8 +214,8 @@ func startService( cfg.LogMaxDays, cfg.DisableLogColor) if cfgFile != "" { - log.Trace("start frpc service for config file [%s]", cfgFile) - defer log.Trace("frpc service for config file [%s] stopped", cfgFile) + log.Info("start frpc service for config file [%s]", cfgFile) + defer log.Info("frpc service for config file [%s] stopped", cfgFile) } svr, errRet := client.NewService(cfg, pxyCfgs, visitorCfgs, cfgFile) if errRet != nil { diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index e18d2a0f50d..1c609f6c127 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -337,6 +337,8 @@ server_name = secret_tcp sk = abcdefg # connect this address to visitor stcp server bind_addr = 127.0.0.1 +# bind_port can be less than 0, it means don't bind to the port and only receive connections redirected from +# other visitors. (This is not supported for SUDP now) bind_port = 9000 use_encryption = false use_compression = false @@ -355,6 +357,8 @@ type = xtcp server_name = p2p_tcp sk = abcdefg bind_addr = 127.0.0.1 +# bind_port can be less than 0, it means don't bind to the port and only receive connections redirected from +# other visitors. (This is not supported for SUDP now) bind_port = 9001 use_encryption = false use_compression = false @@ -363,6 +367,8 @@ keep_tunnel_open = false # effective when keep_tunnel_open is set to true, the number of attempts to punch through per hour max_retries_an_hour = 8 min_retry_interval = 90 +# fallback_to = stcp_visitor +# fallback_timeout_ms = 500 [tcpmuxhttpconnect] type = tcpmux diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index bff47cd4e6a..e6ce3a108c7 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -661,9 +661,10 @@ func Test_LoadClientBasicConf(t *testing.T) { BindAddr: "127.0.0.1", BindPort: 9001, }, - Protocol: "quic", - MaxRetriesAnHour: 8, - MinRetryInterval: 90, + Protocol: "quic", + MaxRetriesAnHour: 8, + MinRetryInterval: 90, + FallbackTimeoutMs: 1000, }, } diff --git a/pkg/config/visitor.go b/pkg/config/visitor.go index 0ee010fbabb..808240bb180 100644 --- a/pkg/config/visitor.go +++ b/pkg/config/visitor.go @@ -49,7 +49,10 @@ type BaseVisitorConf struct { Sk string `ini:"sk" json:"sk"` ServerName string `ini:"server_name" json:"server_name"` BindAddr string `ini:"bind_addr" json:"bind_addr"` - BindPort int `ini:"bind_port" json:"bind_port"` + // BindPort is the port that visitor listens on. + // It can be less than 0, it means don't bind to the port and only receive connections redirected from + // other visitors. (This is not supported for SUDP now) + BindPort int `ini:"bind_port" json:"bind_port"` } type SUDPVisitorConf struct { @@ -63,10 +66,12 @@ type STCPVisitorConf struct { type XTCPVisitorConf struct { BaseVisitorConf `ini:",extends"` - Protocol string `ini:"protocol" json:"protocol,omitempty"` - KeepTunnelOpen bool `ini:"keep_tunnel_open" json:"keep_tunnel_open,omitempty"` - MaxRetriesAnHour int `ini:"max_retries_an_hour" json:"max_retries_an_hour,omitempty"` - MinRetryInterval int `ini:"min_retry_interval" json:"min_retry_interval,omitempty"` + Protocol string `ini:"protocol" json:"protocol,omitempty"` + KeepTunnelOpen bool `ini:"keep_tunnel_open" json:"keep_tunnel_open,omitempty"` + MaxRetriesAnHour int `ini:"max_retries_an_hour" json:"max_retries_an_hour,omitempty"` + MinRetryInterval int `ini:"min_retry_interval" json:"min_retry_interval,omitempty"` + FallbackTo string `ini:"fallback_to" json:"fallback_to,omitempty"` + FallbackTimeoutMs int `ini:"fallback_timeout_ms" json:"fallback_timeout_ms,omitempty"` } // DefaultVisitorConf creates a empty VisitorConf object by visitorType. @@ -134,7 +139,9 @@ func (cfg *BaseVisitorConf) check() (err error) { err = fmt.Errorf("bind_addr shouldn't be empty") return } - if cfg.BindPort <= 0 { + // BindPort can be less than 0, it means don't bind to the port and only receive connections redirected from + // other visitors + if cfg.BindPort == 0 { err = fmt.Errorf("bind_port is required") return } @@ -155,7 +162,6 @@ func (cfg *BaseVisitorConf) unmarshalFromIni(prefix string, name string, section if cfg.BindAddr == "" { cfg.BindAddr = "127.0.0.1" } - return nil } @@ -169,7 +175,6 @@ func preVisitorUnmarshalFromIni(cfg VisitorConf, prefix string, name string, sec if err != nil { return err } - return nil } @@ -268,7 +273,9 @@ func (cfg *XTCPVisitorConf) Compare(cmp VisitorConf) bool { if cfg.Protocol != cmpConf.Protocol || cfg.KeepTunnelOpen != cmpConf.KeepTunnelOpen || cfg.MaxRetriesAnHour != cmpConf.MaxRetriesAnHour || - cfg.MinRetryInterval != cmpConf.MinRetryInterval { + cfg.MinRetryInterval != cmpConf.MinRetryInterval || + cfg.FallbackTo != cmpConf.FallbackTo || + cfg.FallbackTimeoutMs != cmpConf.FallbackTimeoutMs { return false } return true @@ -290,6 +297,9 @@ func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name string, section if cfg.MinRetryInterval <= 0 { cfg.MinRetryInterval = 90 } + if cfg.FallbackTimeoutMs <= 0 { + cfg.FallbackTimeoutMs = 1000 + } return } diff --git a/pkg/config/visitor_test.go b/pkg/config/visitor_test.go index d91f90bcb70..0f4171db274 100644 --- a/pkg/config/visitor_test.go +++ b/pkg/config/visitor_test.go @@ -87,9 +87,10 @@ func Test_Visitor_UnmarshalFromIni(t *testing.T) { BindAddr: "127.0.0.1", BindPort: 9001, }, - Protocol: "quic", - MaxRetriesAnHour: 8, - MinRetryInterval: 90, + Protocol: "quic", + MaxRetriesAnHour: 8, + MinRetryInterval: 90, + FallbackTimeoutMs: 1000, }, }, } diff --git a/pkg/nathole/analysis.go b/pkg/nathole/analysis.go index 772fd8f8308..75f9a55c6f1 100644 --- a/pkg/nathole/analysis.go +++ b/pkg/nathole/analysis.go @@ -63,20 +63,20 @@ var ( } // mode 2, HardNAT is receiver, EasyNAT is sender - // sender, portsRandomNumber 1000, sendDelayMs 2000 | receiver, listen 256 ports, ttl 7 - // sender, portsRandomNumber 1000, sendDelayMs 2000 | receiver, listen 256 ports, ttl 4 - // sender, portsRandomNumber 1000, sendDelayMs 2000 | receiver, listen 256 ports + // sender, portsRandomNumber 1000, sendDelayMs 3000 | receiver, listen 256 ports, ttl 7 + // sender, portsRandomNumber 1000, sendDelayMs 3000 | receiver, listen 256 ports, ttl 4 + // sender, portsRandomNumber 1000, sendDelayMs 3000 | receiver, listen 256 ports mode2Behaviors = []lo.Tuple2[RecommandBehavior, RecommandBehavior]{ lo.T2( - RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 3000}, RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 7}, ), lo.T2( - RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 3000}, RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 4}, ), lo.T2( - RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 3000}, RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256}, ), } @@ -98,21 +98,21 @@ var ( } // mode 4, Regular ports changes are usually the sender. - // sender, portsRandomNumber 1000, sendDelayMs: 2000 | receiver, listen 256 ports, ttl 7, portsRangeNumber 10 - // sender, portsRandomNumber 1000, sendDelayMs: 2000 | receiver, listen 256 ports, ttl 4, portsRangeNumber 10 - // sender, portsRandomNumber 1000, SendDelayMs: 2000 | receiver, listen 256 ports, portsRangeNumber 10 + // sender, portsRandomNumber 1000, sendDelayMs: 2000 | receiver, listen 256 ports, ttl 7, portsRangeNumber 2 + // sender, portsRandomNumber 1000, sendDelayMs: 2000 | receiver, listen 256 ports, ttl 4, portsRangeNumber 2 + // sender, portsRandomNumber 1000, SendDelayMs: 2000 | receiver, listen 256 ports, portsRangeNumber 2 mode4Behaviors = []lo.Tuple2[RecommandBehavior, RecommandBehavior]{ lo.T2( - RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, - RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 7, PortsRangeNumber: 10}, + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 3000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 7, PortsRangeNumber: 2}, ), lo.T2( - RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, - RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 4, PortsRangeNumber: 10}, + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 3000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, TTL: 4, PortsRangeNumber: 2}, ), lo.T2( - RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 2000}, - RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, PortsRangeNumber: 10}, + RecommandBehavior{Role: DetectRoleSender, PortsRandomNumber: 1000, SendDelayMs: 3000}, + RecommandBehavior{Role: DetectRoleReceiver, ListenRandomPorts: 256, PortsRangeNumber: 2}, ), } ) diff --git a/pkg/nathole/classify.go b/pkg/nathole/classify.go index 79f8efe0959..1ec5952bd63 100644 --- a/pkg/nathole/classify.go +++ b/pkg/nathole/classify.go @@ -85,11 +85,6 @@ func ClassifyNATFeature(addresses []string, localIPs []string) (*NatFeature, err } } - natFeature.PortsDifference = portMax - portMin - if natFeature.PortsDifference <= 10 && natFeature.PortsDifference >= 1 { - natFeature.RegularPortsChange = true - } - switch { case ipChanged && portChanged: natFeature.NatType = HardNAT @@ -104,6 +99,12 @@ func ClassifyNATFeature(addresses []string, localIPs []string) (*NatFeature, err natFeature.NatType = EasyNAT natFeature.Behavior = BehaviorNoChange } + if natFeature.Behavior == BehaviorPortChanged { + natFeature.PortsDifference = portMax - portMin + if natFeature.PortsDifference <= 5 && natFeature.PortsDifference >= 1 { + natFeature.RegularPortsChange = true + } + } return natFeature, nil } diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index a4d5e46385a..c10eb30dd57 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -384,7 +384,7 @@ func sendSidMessageToRangePorts( if err := sendFunc(conn, detectAddr); err != nil { xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) } - time.Sleep(5 * time.Millisecond) + time.Sleep(2 * time.Millisecond) } } } diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index 111e4942b93..9f5914de451 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -376,7 +376,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { for _, test := range tests { framework.NewRequestExpect(f). RequestModify(func(r *request.Request) { - r.Timeout(5 * time.Second) + r.Timeout(10 * time.Second) }). Protocol(protocol). PortName(test.bindPortName). diff --git a/test/e2e/basic/xtcp.go b/test/e2e/basic/xtcp.go new file mode 100644 index 00000000000..a501d7935c5 --- /dev/null +++ b/test/e2e/basic/xtcp.go @@ -0,0 +1,52 @@ +package basic + +import ( + "fmt" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/port" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: XTCP]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("Fallback To STCP", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + bindPortName := port.GenName("XTCP") + clientConf += fmt.Sprintf(` + [foo] + type = stcp + local_port = {{ .%s }} + + [foo-visitor] + type = stcp + role = visitor + server_name = foo + bind_port = -1 + + [bar-visitor] + type = xtcp + role = visitor + server_name = bar + bind_port = {{ .%s }} + keep_tunnel_open = true + fallback_to = foo-visitor + fallback_timeout_ms = 200 + `, framework.TCPEchoServerPort, bindPortName) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + framework.NewRequestExpect(f). + RequestModify(func(r *request.Request) { + r.Timeout(time.Second) + }). + PortName(bindPortName). + Ensure() + }) +}) From 341a5e3e3a8ffe05b2ef6a392b6e142e851d446c Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 30 May 2023 15:14:05 +0800 Subject: [PATCH 071/444] frps dashboard: remove bind_udp_port (#3463) --- .../{index-93e38bbf.js => index-ea3edf22.js} | 22 +++++++++---------- assets/frps/static/index.html | 2 +- pkg/config/proxy.go | 14 ++++++------ pkg/config/server_test.go | 2 -- web/frps/src/components/ServerOverview.vue | 5 ----- 5 files changed, 19 insertions(+), 26 deletions(-) rename assets/frps/static/{index-93e38bbf.js => index-ea3edf22.js} (98%) diff --git a/assets/frps/static/index-93e38bbf.js b/assets/frps/static/index-ea3edf22.js similarity index 98% rename from assets/frps/static/index-93e38bbf.js rename to assets/frps/static/index-ea3edf22.js index 7ef08097dda..206292caf46 100644 --- a/assets/frps/static/index-93e38bbf.js +++ b/assets/frps/static/index-ea3edf22.js @@ -1,4 +1,4 @@ -var fD=Object.defineProperty;var dD=(e,t,r)=>t in e?fD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var hD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,r)=>(dD(e,typeof t!="symbol"?t+"":t,r),r);var Tre=hD((Nr,Fr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Em(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function St(e){if(be(e)){const t={};for(let r=0;r{if(r){const n=r.split(pD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ue(e){let t="";if(He(e))t=e;else if(be(e))for(let r=0;rOd(r,t))}const Te=e=>He(e)?e:e==null?"":be(e)||Xe(e)&&(e.toString===mC||!De(e.toString))?JSON.stringify(e,gC,2):String(e),gC=(e,t)=>t&&t.__v_isRef?gC(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:kd(t)?{[`Set(${t.size})`]:[...t.values()]}:Xe(t)&&!be(t)&&!yC(t)?String(t):t,yt={},ns=[],ur=()=>{},wD=()=>!1,xD=/^on[^a-z]/,Rd=e=>xD.test(e),Pm=e=>e.startsWith("onUpdate:"),Gt=Object.assign,Lm=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},SD=Object.prototype.hasOwnProperty,We=(e,t)=>SD.call(e,t),be=Array.isArray,is=e=>Bu(e)==="[object Map]",kd=e=>Bu(e)==="[object Set]",K0=e=>Bu(e)==="[object Date]",De=e=>typeof e=="function",He=e=>typeof e=="string",tu=e=>typeof e=="symbol",Xe=e=>e!==null&&typeof e=="object",jf=e=>Xe(e)&&De(e.then)&&De(e.catch),mC=Object.prototype.toString,Bu=e=>mC.call(e),CD=e=>Bu(e).slice(8,-1),yC=e=>Bu(e)==="[object Object]",Dm=e=>He(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mf=Em(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Nd=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},TD=/-(\w)/g,An=Nd(e=>e.replace(TD,(t,r)=>r?r.toUpperCase():"")),MD=/\B([A-Z])/g,xo=Nd(e=>e.replace(MD,"-$1").toLowerCase()),Fd=Nd(e=>e.charAt(0).toUpperCase()+e.slice(1)),yf=Nd(e=>e?`on${Fd(e)}`:""),ru=(e,t)=>!Object.is(e,t),_f=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},AD=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ED=e=>{const t=He(e)?Number(e):NaN;return isNaN(t)?e:t};let X0;const PD=()=>X0||(X0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Or;class LD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Or,!t&&Or&&(this.index=(Or.scopes||(Or.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Or;try{return Or=this,t()}finally{Or=r}}}on(){Or=this}off(){Or=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},bC=e=>(e.w&ea)>0,wC=e=>(e.n&ea)>0,OD=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(c==="length"||c>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":be(e)?Dm(r)&&s.push(o.get("length")):(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"delete":be(e)||(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"set":is(e)&&s.push(o.get(no));break}if(s.length===1)s[0]&&Tp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);Tp(Im(l))}}function Tp(e,t){const r=be(e)?e:[...e];for(const n of r)n.computed&&Q0(n);for(const n of r)n.computed||Q0(n)}function Q0(e,t){(e!==bn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function kD(e,t){var r;return(r=qf.get(e))===null||r===void 0?void 0:r.get(t)}const ND=Em("__proto__,__v_isRef,__isVue"),CC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(tu)),FD=Rm(),BD=Rm(!1,!0),$D=Rm(!0),J0=HD();function HD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ke(this);for(let a=0,o=this.length;a{e[t]=function(...r){Os();const n=Ke(this)[t].apply(this,r);return Rs(),n}}),e}function zD(e){const t=Ke(this);return Mr(t,"has",e),t.hasOwnProperty(e)}function Rm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?nI:PC:t?EC:AC).get(n))return n;const o=be(n);if(!e){if(o&&We(J0,i))return Reflect.get(J0,i,a);if(i==="hasOwnProperty")return zD}const s=Reflect.get(n,i,a);return(tu(i)?CC.has(i):ND(i))||(e||Mr(n,"get",i),t)?s:Ct(s)?o&&Dm(i)?s:s.value:Xe(s)?e?$u(s):fn(s):s}}const WD=TC(),VD=TC(!0);function TC(e=!1){return function(r,n,i,a){let o=r[n];if(vs(o)&&Ct(o)&&!Ct(i))return!1;if(!e&&(!Kf(i)&&!vs(i)&&(o=Ke(o),i=Ke(i)),!be(r)&&Ct(o)&&!Ct(i)))return o.value=i,!0;const s=be(r)&&Dm(n)?Number(n)e,Bd=e=>Reflect.getPrototypeOf(e);function uc(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ke(e),a=Ke(t);r||(t!==a&&Mr(i,"get",t),Mr(i,"get",a));const{has:o}=Bd(i),s=n?km:r?Bm:nu;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function cc(e,t=!1){const r=this.__v_raw,n=Ke(r),i=Ke(e);return t||(e!==i&&Mr(n,"has",e),Mr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function fc(e,t=!1){return e=e.__v_raw,!t&&Mr(Ke(e),"iterate",no),Reflect.get(e,"size",e)}function e_(e){e=Ke(e);const t=Ke(this);return Bd(t).has.call(t,e)||(t.add(e),gi(t,"add",e,e)),this}function t_(e,t){t=Ke(t);const r=Ke(this),{has:n,get:i}=Bd(r);let a=n.call(r,e);a||(e=Ke(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?ru(t,o)&&gi(r,"set",e,t):gi(r,"add",e,t),this}function r_(e){const t=Ke(this),{has:r,get:n}=Bd(t);let i=r.call(t,e);i||(e=Ke(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&gi(t,"delete",e,void 0),a}function n_(){const e=Ke(this),t=e.size!==0,r=e.clear();return t&&gi(e,"clear",void 0,void 0),r}function dc(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ke(o),l=t?km:e?Bm:nu;return!e&&Mr(s,"iterate",no),o.forEach((u,c)=>n.call(i,l(u),l(c),a))}}function hc(e,t,r){return function(...n){const i=this.__v_raw,a=Ke(i),o=is(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),c=r?km:t?Bm:nu;return!t&&Mr(a,"iterate",l?Cp:no),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Pi(e){return function(...t){return e==="delete"?!1:this}}function KD(){const e={get(a){return uc(this,a)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!1)},t={get(a){return uc(this,a,!1,!0)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!0)},r={get(a){return uc(this,a,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!1)},n={get(a){return uc(this,a,!0,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=hc(a,!1,!1),r[a]=hc(a,!0,!1),t[a]=hc(a,!1,!0),n[a]=hc(a,!0,!0)}),[e,r,t,n]}const[XD,ZD,QD,JD]=KD();function Nm(e,t){const r=t?e?JD:QD:e?ZD:XD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(We(r,i)&&i in n?r:n,i,a)}const eI={get:Nm(!1,!1)},tI={get:Nm(!1,!0)},rI={get:Nm(!0,!1)},AC=new WeakMap,EC=new WeakMap,PC=new WeakMap,nI=new WeakMap;function iI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function aI(e){return e.__v_skip||!Object.isExtensible(e)?0:iI(CD(e))}function fn(e){return vs(e)?e:Fm(e,!1,MC,eI,AC)}function LC(e){return Fm(e,!1,qD,tI,EC)}function $u(e){return Fm(e,!0,YD,rI,PC)}function Fm(e,t,r,n,i){if(!Xe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=aI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function as(e){return vs(e)?as(e.__v_raw):!!(e&&e.__v_isReactive)}function vs(e){return!!(e&&e.__v_isReadonly)}function Kf(e){return!!(e&&e.__v_isShallow)}function DC(e){return as(e)||vs(e)}function Ke(e){const t=e&&e.__v_raw;return t?Ke(t):e}function IC(e){return Yf(e,"__v_skip",!0),e}const nu=e=>Xe(e)?fn(e):e,Bm=e=>Xe(e)?$u(e):e;function OC(e){Xi&&bn&&(e=Ke(e),SC(e.dep||(e.dep=Im())))}function RC(e,t){e=Ke(e);const r=e.dep;r&&Tp(r)}function Ct(e){return!!(e&&e.__v_isRef===!0)}function B(e){return kC(e,!1)}function $m(e){return kC(e,!0)}function kC(e,t){return Ct(e)?e:new oI(e,t)}class oI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ke(t),this._value=r?t:nu(t)}get value(){return OC(this),this._value}set value(t){const r=this.__v_isShallow||Kf(t)||vs(t);t=r?t:Ke(t),ru(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:nu(t),RC(this))}}function E(e){return Ct(e)?e.value:e}const sI={get:(e,t,r)=>E(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Ct(i)&&!Ct(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function NC(e){return as(e)?e:new Proxy(e,sI)}function $d(e){const t=be(e)?new Array(e.length):{};for(const r in e)t[r]=tn(e,r);return t}class lI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return kD(Ke(this._object),this._key)}}function tn(e,t,r){const n=e[t];return Ct(n)?n:new lI(e,t,r)}var FC;class uI{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[FC]=!1,this._dirty=!0,this.effect=new Om(t,()=>{this._dirty||(this._dirty=!0,RC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ke(this);return OC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}FC="__v_isReadonly";function cI(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=ur):(n=e.get,i=e.set),new uI(n,i,a||!i,r)}function fI(e,...t){}function Zi(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Hd(a,t,r)}return i}function rn(e,t,r,n){if(De(e)){const a=Zi(e,t,r,n);return a&&jf(a)&&a.catch(o=>{Hd(o,t,r)}),a}const i=[];for(let a=0;a>>1;au(tr[n])$n&&tr.splice(t,1)}function pI(e){be(e)?os.push(...e):(!ci||!ci.includes(e,e.allowRecurse?Ga+1:Ga))&&os.push(e),$C()}function i_(e,t=iu?$n+1:0){for(;tau(r)-au(n)),Ga=0;Gae.id==null?1/0:e.id,gI=(e,t)=>{const r=au(e)-au(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function zC(e){Mp=!1,iu=!0,tr.sort(gI);const t=ur;try{for($n=0;$nHe(h)?h.trim():h)),f&&(i=r.map(AD))}let s,l=n[s=yf(t)]||n[s=yf(An(t))];!l&&a&&(l=n[s=yf(xo(t))]),l&&rn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,rn(u,e,6,i)}}function WC(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const c=WC(u,t,!0);c&&(s=!0,Gt(o,c))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(Xe(e)&&n.set(e,null),null):(be(a)?a.forEach(l=>o[l]=null):Gt(o,a),Xe(e)&&n.set(e,o),o)}function zd(e,t){return!e||!Rd(t)?!1:(t=t.slice(2).replace(/Once$/,""),We(e,t[0].toLowerCase()+t.slice(1))||We(e,xo(t))||We(e,t))}let qt=null,VC=null;function Xf(e){const t=qt;return qt=e,VC=e&&e.type.__scopeId||null,t}function Z(e,t=qt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&g_(-1);const a=Xf(t);let o;try{o=e(...i)}finally{Xf(a),n._d&&g_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ih(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Xf(e);try{if(r.shapeFlag&4){const b=i||n;g=Bn(c.call(b,b,f,a,h,d,v)),m=l}else{const b=t;g=Bn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:yI(l)}}catch(b){Dl.length=0,Hd(b,e,1),g=ee(xr)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(Pm)&&(m=_I(m,o)),_=mi(_,m))}return r.dirs&&(_=mi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Xf(y),g}const yI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Rd(r))&&((t||(t={}))[r]=e[r]);return t},_I=(e,t)=>{const r={};for(const n in e)(!Pm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function bI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?a_(n,o,u):!!o;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function SI(e,t){t&&t.pendingBranch?be(e)?t.effects.push(...e):t.effects.push(e):pI(e)}function At(e,t){if(It){let r=It.provides;const n=It.parent&&It.parent.provides;n===r&&(r=It.provides=Object.create(n)),r[e]=t}}function Ee(e,t,r=!1){const n=It||qt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&De(t)?t.call(n.proxy):t}}function io(e,t){return Wm(e,null,t)}const vc={};function Se(e,t,r){return Wm(e,t,r)}function Wm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=yt){const s=_C()===(It==null?void 0:It.scope)?It:null;let l,u=!1,c=!1;if(Ct(e)?(l=()=>e.value,u=Kf(e)):as(e)?(l=()=>e,n=!0):be(e)?(c=!0,u=e.some(_=>as(_)||Kf(_)),l=()=>e.map(_=>{if(Ct(_))return _.value;if(as(_))return Xa(_);if(De(_))return Zi(_,s,2)})):De(e)?t?l=()=>Zi(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return f&&f(),rn(e,s,3,[d])}:l=ur,t&&n){const _=l;l=()=>Xa(_())}let f,d=_=>{f=m.onStop=()=>{Zi(_,s,4)}},h;if(uu)if(d=ur,t?r&&rn(t,s,3,[l(),c?[]:void 0,d]):l(),i==="sync"){const _=vO();h=_.__watcherHandles||(_.__watcherHandles=[])}else return ur;let v=c?new Array(e.length).fill(vc):vc;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(c?_.some((b,x)=>ru(b,v[x])):ru(_,v)))&&(f&&f(),rn(t,s,3,[_,v===vc?void 0:c&&v[0]===vc?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>yr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>zm(p));const m=new Om(l,g);t?r?p():v=m.run():i==="post"?yr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&Lm(s.scope.effects,m)};return h&&h.push(y),y}function CI(e,t,r){const n=this.proxy,i=He(e)?e.includes(".")?GC(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=It;ps(this);const s=Wm(i,a.bind(n),r);return o?ps(o):ao(),s}function GC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Xa(r,t)});else if(yC(e))for(const r in e)Xa(e[r],t);return e}function UC(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return wt(()=>{e.isMounted=!0}),Xt(()=>{e.isUnmounting=!0}),e}const Wr=[Function,Array],TI={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Wr,onEnter:Wr,onAfterEnter:Wr,onEnterCancelled:Wr,onBeforeLeave:Wr,onLeave:Wr,onAfterLeave:Wr,onLeaveCancelled:Wr,onBeforeAppear:Wr,onAppear:Wr,onAfterAppear:Wr,onAppearCancelled:Wr},setup(e,{slots:t}){const r=ct(),n=UC();let i;return()=>{const a=t.default&&Vm(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==xr){o=p;break}}const s=Ke(e),{mode:l}=s;if(n.isLeaving)return Oh(o);const u=o_(o);if(!u)return Oh(o);const c=ou(u,s,n,r);su(u,c);const f=r.subTree,d=f&&o_(f);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==xr&&(!Ua(u,d)||h)){const p=ou(d,s,n,r);if(su(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Oh(o);l==="in-out"&&u.type!==xr&&(p.delayLeave=(g,m,y)=>{const _=YC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=y})}return o}}},jC=TI;function YC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function ou(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=YC(r,e),x=(C,M)=>{C&&rn(C,n,9,M)},w=(C,M)=>{const P=M[1];x(C,M),be(C)?C.every(A=>A.length<=1)&&P():C.length<=1&&P()},S={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C._leaveCb&&C._leaveCb(!0);const P=b[_];P&&Ua(e,P)&&P.el._leaveCb&&P.el._leaveCb(),x(M,[C])},enter(C){let M=l,P=u,A=c;if(!r.isMounted)if(i)M=g||l,P=m||u,A=y||c;else return;let T=!1;const D=C._enterCb=N=>{T||(T=!0,N?x(A,[C]):x(P,[C]),S.delayedLeave&&S.delayedLeave(),C._enterCb=void 0)};M?w(M,[C,D]):D()},leave(C,M){const P=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return M();x(f,[C]);let A=!1;const T=C._leaveCb=D=>{A||(A=!0,M(),D?x(v,[C]):x(h,[C]),C._leaveCb=void 0,b[P]===e&&delete b[P])};b[P]=e,d?w(d,[C,T]):T()},clone(C){return ou(C,t,r,n)}};return S}function Oh(e){if(Wd(e))return e=mi(e),e.children=null,e}function o_(e){return Wd(e)?e.children?e.children[0]:void 0:e}function su(e,t){e.shapeFlag&6&&e.component?su(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vm(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Wd=e=>e.type.__isKeepAlive;function MI(e,t){KC(e,"a",t)}function qC(e,t){KC(e,"da",t)}function KC(e,t,r=It){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Vd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Wd(i.parent.vnode)&&AI(n,t,r,i),i=i.parent}}function AI(e,t,r,n){const i=Vd(t,e,n,!0);ks(()=>{Lm(n[t],i)},r)}function Vd(e,t,r=It,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Os(),ps(r);const s=rn(t,r,e,o);return ao(),Rs(),s});return n?i.unshift(a):i.push(a),a}}const Si=e=>(t,r=It)=>(!uu||e==="sp")&&Vd(e,(...n)=>t(...n),r),Gd=Si("bm"),wt=Si("m"),EI=Si("bu"),Hu=Si("u"),Xt=Si("bum"),ks=Si("um"),PI=Si("sp"),LI=Si("rtg"),DI=Si("rtc");function II(e,t=It){Vd("ec",e,t)}function nr(e,t){const r=qt;if(r===null)return e;const n=jd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sta(t)?!(t.type===xr||t.type===pt&&!QC(t.children)):!0)?e:null}function RI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:yf(n)]=e[n];return r}const Ap=e=>e?uT(e)?jd(e)||e.proxy:Ap(e.parent):null,Pl=Gt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ap(e.parent),$root:e=>Ap(e.root),$emit:e=>e.emit,$options:e=>jm(e),$forceUpdate:e=>e.f||(e.f=()=>zm(e.update)),$nextTick:e=>e.n||(e.n=Ft.bind(e.proxy)),$watch:e=>CI.bind(e)}),Rh=(e,t)=>e!==yt&&!e.__isScriptSetup&&We(e,t),kI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Rh(n,t))return o[t]=1,n[t];if(i!==yt&&We(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&We(u,t))return o[t]=3,a[t];if(r!==yt&&We(r,t))return o[t]=4,r[t];Ep&&(o[t]=0)}}const c=Pl[t];let f,d;if(c)return t==="$attrs"&&Mr(e,"get",t),c(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(r!==yt&&We(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,We(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Rh(i,t)?(i[t]=r,!0):n!==yt&&We(n,t)?(n[t]=r,!0):We(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==yt&&We(e,o)||Rh(t,o)||(s=a[0])&&We(s,o)||We(n,o)||We(Pl,o)||We(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:We(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let Ep=!0;function NI(e){const t=jm(e),r=e.proxy,n=e.ctx;Ep=!1,t.beforeCreate&&u_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:P,inheritAttrs:A,components:T,directives:D,filters:N}=t;if(u&&FI(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const G in o){const F=o[G];De(F)&&(n[G]=F.bind(r))}if(i){const G=i.call(r,r);Xe(G)&&(e.data=fn(G))}if(Ep=!0,a)for(const G in a){const F=a[G],R=De(F)?F.bind(r,r):De(F.get)?F.get.bind(r,r):ur,j=!De(F)&&De(F.set)?F.set.bind(r):ur,re=k({get:R,set:j});Object.defineProperty(n,G,{enumerable:!0,configurable:!0,get:()=>re.value,set:oe=>re.value=oe})}if(s)for(const G in s)JC(s[G],n,r,G);if(l){const G=De(l)?l.call(r):l;Reflect.ownKeys(G).forEach(F=>{At(F,G[F])})}c&&u_(c,e,"c");function $(G,F){be(F)?F.forEach(R=>G(R.bind(r))):F&&G(F.bind(r))}if($(Gd,f),$(wt,d),$(EI,h),$(Hu,v),$(MI,p),$(qC,g),$(II,C),$(DI,w),$(LI,S),$(Xt,y),$(ks,b),$(PI,M),be(P))if(P.length){const G=e.exposed||(e.exposed={});P.forEach(F=>{Object.defineProperty(G,F,{get:()=>r[F],set:R=>r[F]=R})})}else e.exposed||(e.exposed={});x&&e.render===ur&&(e.render=x),A!=null&&(e.inheritAttrs=A),T&&(e.components=T),D&&(e.directives=D)}function FI(e,t,r=ur,n=!1){be(e)&&(e=Pp(e));for(const i in e){const a=e[i];let o;Xe(a)?"default"in a?o=Ee(a.from||i,a.default,!0):o=Ee(a.from||i):o=Ee(a),Ct(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function u_(e,t,r){rn(be(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function JC(e,t,r,n){const i=n.includes(".")?GC(r,n):()=>r[n];if(He(e)){const a=t[e];De(a)&&Se(i,a)}else if(De(e))Se(i,e.bind(r));else if(Xe(e))if(be(e))e.forEach(a=>JC(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&Se(i,a,e)}}function jm(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>Zf(l,u,o,!0)),Zf(l,t,o)),Xe(t)&&a.set(t,l),l}function Zf(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Zf(e,a,r,!0),i&&i.forEach(o=>Zf(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=BI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const BI={data:c_,props:za,emits:za,methods:za,computed:za,beforeCreate:ir,created:ir,beforeMount:ir,mounted:ir,beforeUpdate:ir,updated:ir,beforeDestroy:ir,beforeUnmount:ir,destroyed:ir,unmounted:ir,activated:ir,deactivated:ir,errorCaptured:ir,serverPrefetch:ir,components:za,directives:za,watch:HI,provide:c_,inject:$I};function c_(e,t){return t?e?function(){return Gt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function $I(e,t){return za(Pp(e),Pp(t))}function Pp(e){if(be(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=tT(f,t,!0);Gt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!a&&!l)return Xe(e)&&n.set(e,ns),ns;if(be(a))for(let c=0;c-1,h[1]=p<0||v-1||We(h,"default"))&&s.push(f)}}}const u=[o,s];return Xe(e)&&n.set(e,u),u}function f_(e){return e[0]!=="$"}function d_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function h_(e,t){return d_(e)===d_(t)}function v_(e,t){return be(t)?t.findIndex(r=>h_(r,e)):De(t)&&h_(t,e)?0:-1}const rT=e=>e[0]==="_"||e==="$stable",Ym=e=>be(e)?e.map(Bn):[Bn(e)],VI=(e,t,r)=>{if(t._n)return t;const n=Z((...i)=>Ym(t(...i)),r);return n._c=!1,n},nT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(rT(i))continue;const a=e[i];if(De(a))t[i]=VI(i,a,n);else if(a!=null){const o=Ym(a);t[i]=()=>o}}},iT=(e,t)=>{const r=Ym(t);e.slots.default=()=>r},GI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ke(t),Yf(t,"_",r)):nT(t,e.slots={})}else e.slots={},t&&iT(e,t);Yf(e.slots,Ud,1)},UI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=yt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Gt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,nT(t,i)),o=t}else t&&(iT(e,t),o={default:1});if(a)for(const s in i)!rT(s)&&!(s in o)&&delete i[s]};function aT(){return{app:null,config:{isNativeTag:wD,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let jI=0;function YI(e,t){return function(n,i=null){De(n)||(n=Object.assign({},n)),i!=null&&!Xe(i)&&(i=null);const a=aT(),o=new Set;let s=!1;const l=a.app={_uid:jI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:pO,get config(){return a.config},set config(u){},use(u,...c){return o.has(u)||(u&&De(u.install)?(o.add(u),u.install(l,...c)):De(u)&&(o.add(u),u(l,...c))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,c){return c?(a.components[u]=c,l):a.components[u]},directive(u,c){return c?(a.directives[u]=c,l):a.directives[u]},mount(u,c,f){if(!s){const d=ee(n,i);return d.appContext=a,c&&t?t(d,u):e(d,u,f),s=!0,l._container=u,u.__vue_app__=l,jd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,c){return a.provides[u]=c,l}};return l}}function Dp(e,t,r,n,i=!1){if(be(e)){e.forEach((d,h)=>Dp(d,t&&(be(t)?t[h]:t),r,n,i));return}if(El(n)&&!i)return;const a=n.shapeFlag&4?jd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,c=s.refs===yt?s.refs={}:s.refs,f=s.setupState;if(u!=null&&u!==l&&(He(u)?(c[u]=null,We(f,u)&&(f[u]=null)):Ct(u)&&(u.value=null)),De(l))Zi(l,s,12,[o,c]);else{const d=He(l),h=Ct(l);if(d||h){const v=()=>{if(e.f){const p=d?We(f,l)?f[l]:c[l]:l.value;i?be(p)&&Lm(p,a):be(p)?p.includes(a)||p.push(a):d?(c[l]=[a],We(f,l)&&(f[l]=c[l])):(l.value=[a],e.k&&(c[e.k]=l.value))}else d?(c[l]=o,We(f,l)&&(f[l]=o)):h&&(l.value=o,e.k&&(c[e.k]=o))};o?(v.id=-1,yr(v,r)):v()}}}const yr=SI;function qI(e){return KI(e)}function KI(e,t){const r=PD();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=ur,insertStaticContent:v}=e,p=(L,I,z,U=null,K=null,ne=null,fe=!1,te=null,ie=!!I.dynamicChildren)=>{if(L===I)return;L&&!Ua(L,I)&&(U=W(L),oe(L,K,ne,!0),L=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:X,ref:we,shapeFlag:he}=I;switch(X){case Ns:g(L,I,z,U);break;case xr:m(L,I,z,U);break;case kh:L==null&&y(I,z,U,fe);break;case pt:T(L,I,z,U,K,ne,fe,te,ie);break;default:he&1?x(L,I,z,U,K,ne,fe,te,ie):he&6?D(L,I,z,U,K,ne,fe,te,ie):(he&64||he&128)&&X.process(L,I,z,U,K,ne,fe,te,ie,le)}we!=null&&K&&Dp(we,L&&L.ref,ne,I||L,!I)},g=(L,I,z,U)=>{if(L==null)n(I.el=s(I.children),z,U);else{const K=I.el=L.el;I.children!==L.children&&u(K,I.children)}},m=(L,I,z,U)=>{L==null?n(I.el=l(I.children||""),z,U):I.el=L.el},y=(L,I,z,U)=>{[L.el,L.anchor]=v(L.children,I,z,U,L.el,L.anchor)},_=({el:L,anchor:I},z,U)=>{let K;for(;L&&L!==I;)K=d(L),n(L,z,U),L=K;n(I,z,U)},b=({el:L,anchor:I})=>{let z;for(;L&&L!==I;)z=d(L),i(L),L=z;i(I)},x=(L,I,z,U,K,ne,fe,te,ie)=>{fe=fe||I.type==="svg",L==null?w(I,z,U,K,ne,fe,te,ie):M(L,I,K,ne,fe,te,ie)},w=(L,I,z,U,K,ne,fe,te)=>{let ie,X;const{type:we,props:he,shapeFlag:xe,transition:Oe,dirs:ze}=L;if(ie=L.el=o(L.type,ne,he&&he.is,he),xe&8?c(ie,L.children):xe&16&&C(L.children,ie,null,U,K,ne&&we!=="foreignObject",fe,te),ze&&ha(L,null,U,"created"),S(ie,L,L.scopeId,fe,U),he){for(const Je in he)Je!=="value"&&!mf(Je)&&a(ie,Je,null,he[Je],ne,L.children,U,K,Q);"value"in he&&a(ie,"value",null,he.value),(X=he.onVnodeBeforeMount)&&On(X,U,L)}ze&&ha(L,null,U,"beforeMount");const rt=(!K||K&&!K.pendingBranch)&&Oe&&!Oe.persisted;rt&&Oe.beforeEnter(ie),n(ie,I,z),((X=he&&he.onVnodeMounted)||rt||ze)&&yr(()=>{X&&On(X,U,L),rt&&Oe.enter(ie),ze&&ha(L,null,U,"mounted")},K)},S=(L,I,z,U,K)=>{if(z&&h(L,z),U)for(let ne=0;ne{for(let X=ie;X{const te=I.el=L.el;let{patchFlag:ie,dynamicChildren:X,dirs:we}=I;ie|=L.patchFlag&16;const he=L.props||yt,xe=I.props||yt;let Oe;z&&va(z,!1),(Oe=xe.onVnodeBeforeUpdate)&&On(Oe,z,I,L),we&&ha(I,L,z,"beforeUpdate"),z&&va(z,!0);const ze=K&&I.type!=="foreignObject";if(X?P(L.dynamicChildren,X,te,z,U,ze,ne):fe||F(L,I,te,null,z,U,ze,ne,!1),ie>0){if(ie&16)A(te,I,he,xe,z,U,K);else if(ie&2&&he.class!==xe.class&&a(te,"class",null,xe.class,K),ie&4&&a(te,"style",he.style,xe.style,K),ie&8){const rt=I.dynamicProps;for(let Je=0;Je{Oe&&On(Oe,z,I,L),we&&ha(I,L,z,"updated")},U)},P=(L,I,z,U,K,ne,fe)=>{for(let te=0;te{if(z!==U){if(z!==yt)for(const te in z)!mf(te)&&!(te in U)&&a(L,te,z[te],null,fe,I.children,K,ne,Q);for(const te in U){if(mf(te))continue;const ie=U[te],X=z[te];ie!==X&&te!=="value"&&a(L,te,X,ie,fe,I.children,K,ne,Q)}"value"in U&&a(L,"value",z.value,U.value)}},T=(L,I,z,U,K,ne,fe,te,ie)=>{const X=I.el=L?L.el:s(""),we=I.anchor=L?L.anchor:s("");let{patchFlag:he,dynamicChildren:xe,slotScopeIds:Oe}=I;Oe&&(te=te?te.concat(Oe):Oe),L==null?(n(X,z,U),n(we,z,U),C(I.children,z,we,K,ne,fe,te,ie)):he>0&&he&64&&xe&&L.dynamicChildren?(P(L.dynamicChildren,xe,z,K,ne,fe,te),(I.key!=null||K&&I===K.subTree)&&qm(L,I,!0)):F(L,I,z,we,K,ne,fe,te,ie)},D=(L,I,z,U,K,ne,fe,te,ie)=>{I.slotScopeIds=te,L==null?I.shapeFlag&512?K.ctx.activate(I,z,U,fe,ie):N(I,z,U,K,ne,fe,ie):H(L,I,ie)},N=(L,I,z,U,K,ne,fe)=>{const te=L.component=oO(L,U,K);if(Wd(L)&&(te.ctx.renderer=le),sO(te),te.asyncDep){if(K&&K.registerDep(te,$),!L.el){const ie=te.subTree=ee(xr);m(null,ie,I,z)}return}$(te,L,I,z,K,ne,fe)},H=(L,I,z)=>{const U=I.component=L.component;if(bI(L,I,z))if(U.asyncDep&&!U.asyncResolved){G(U,I,z);return}else U.next=I,vI(U.update),U.update();else I.el=L.el,U.vnode=I},$=(L,I,z,U,K,ne,fe)=>{const te=()=>{if(L.isMounted){let{next:we,bu:he,u:xe,parent:Oe,vnode:ze}=L,rt=we,Je;va(L,!1),we?(we.el=ze.el,G(L,we,fe)):we=ze,he&&_f(he),(Je=we.props&&we.props.onVnodeBeforeUpdate)&&On(Je,Oe,we,ze),va(L,!0);const Lt=Ih(L),ve=L.subTree;L.subTree=Lt,p(ve,Lt,f(ve.el),W(ve),L,K,ne),we.el=Lt.el,rt===null&&wI(L,Lt.el),xe&&yr(xe,K),(Je=we.props&&we.props.onVnodeUpdated)&&yr(()=>On(Je,Oe,we,ze),K)}else{let we;const{el:he,props:xe}=I,{bm:Oe,m:ze,parent:rt}=L,Je=El(I);if(va(L,!1),Oe&&_f(Oe),!Je&&(we=xe&&xe.onVnodeBeforeMount)&&On(we,rt,I),va(L,!0),he&&J){const Lt=()=>{L.subTree=Ih(L),J(he,L.subTree,L,K,null)};Je?I.type.__asyncLoader().then(()=>!L.isUnmounted&&Lt()):Lt()}else{const Lt=L.subTree=Ih(L);p(null,Lt,z,U,L,K,ne),I.el=Lt.el}if(ze&&yr(ze,K),!Je&&(we=xe&&xe.onVnodeMounted)){const Lt=I;yr(()=>On(we,rt,Lt),K)}(I.shapeFlag&256||rt&&El(rt.vnode)&&rt.vnode.shapeFlag&256)&&L.a&&yr(L.a,K),L.isMounted=!0,I=z=U=null}},ie=L.effect=new Om(te,()=>zm(X),L.scope),X=L.update=()=>ie.run();X.id=L.uid,va(L,!0),X()},G=(L,I,z)=>{I.component=L;const U=L.vnode.props;L.vnode=I,L.next=null,WI(L,I.props,U,z),UI(L,I.children,z),Os(),i_(),Rs()},F=(L,I,z,U,K,ne,fe,te,ie=!1)=>{const X=L&&L.children,we=L?L.shapeFlag:0,he=I.children,{patchFlag:xe,shapeFlag:Oe}=I;if(xe>0){if(xe&128){j(X,he,z,U,K,ne,fe,te,ie);return}else if(xe&256){R(X,he,z,U,K,ne,fe,te,ie);return}}Oe&8?(we&16&&Q(X,K,ne),he!==X&&c(z,he)):we&16?Oe&16?j(X,he,z,U,K,ne,fe,te,ie):Q(X,K,ne,!0):(we&8&&c(z,""),Oe&16&&C(he,z,U,K,ne,fe,te,ie))},R=(L,I,z,U,K,ne,fe,te,ie)=>{L=L||ns,I=I||ns;const X=L.length,we=I.length,he=Math.min(X,we);let xe;for(xe=0;xewe?Q(L,K,ne,!0,!1,he):C(I,z,U,K,ne,fe,te,ie,he)},j=(L,I,z,U,K,ne,fe,te,ie)=>{let X=0;const we=I.length;let he=L.length-1,xe=we-1;for(;X<=he&&X<=xe;){const Oe=L[X],ze=I[X]=ie?Vi(I[X]):Bn(I[X]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;X++}for(;X<=he&&X<=xe;){const Oe=L[he],ze=I[xe]=ie?Vi(I[xe]):Bn(I[xe]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;he--,xe--}if(X>he){if(X<=xe){const Oe=xe+1,ze=Oexe)for(;X<=he;)oe(L[X],K,ne,!0),X++;else{const Oe=X,ze=X,rt=new Map;for(X=ze;X<=xe;X++){const it=I[X]=ie?Vi(I[X]):Bn(I[X]);it.key!=null&&rt.set(it.key,X)}let Je,Lt=0;const ve=xe-ze+1;let Pe=!1,je=0;const Be=new Array(ve);for(X=0;X=ve){oe(it,K,ne,!0);continue}let Mt;if(it.key!=null)Mt=rt.get(it.key);else for(Je=ze;Je<=xe;Je++)if(Be[Je-ze]===0&&Ua(it,I[Je])){Mt=Je;break}Mt===void 0?oe(it,K,ne,!0):(Be[Mt-ze]=X+1,Mt>=je?je=Mt:Pe=!0,p(it,I[Mt],z,null,K,ne,fe,te,ie),Lt++)}const nt=Pe?XI(Be):ns;for(Je=nt.length-1,X=ve-1;X>=0;X--){const it=ze+X,Mt=I[it],ri=it+1{const{el:ne,type:fe,transition:te,children:ie,shapeFlag:X}=L;if(X&6){re(L.component.subTree,I,z,U);return}if(X&128){L.suspense.move(I,z,U);return}if(X&64){fe.move(L,I,z,le);return}if(fe===pt){n(ne,I,z);for(let he=0;hete.enter(ne),K);else{const{leave:he,delayLeave:xe,afterLeave:Oe}=te,ze=()=>n(ne,I,z),rt=()=>{he(ne,()=>{ze(),Oe&&Oe()})};xe?xe(ne,ze,rt):rt()}else n(ne,I,z)},oe=(L,I,z,U=!1,K=!1)=>{const{type:ne,props:fe,ref:te,children:ie,dynamicChildren:X,shapeFlag:we,patchFlag:he,dirs:xe}=L;if(te!=null&&Dp(te,null,z,L,!0),we&256){I.ctx.deactivate(L);return}const Oe=we&1&&xe,ze=!El(L);let rt;if(ze&&(rt=fe&&fe.onVnodeBeforeUnmount)&&On(rt,I,L),we&6)V(L.component,z,U);else{if(we&128){L.suspense.unmount(z,U);return}Oe&&ha(L,null,I,"beforeUnmount"),we&64?L.type.remove(L,I,z,K,le,U):X&&(ne!==pt||he>0&&he&64)?Q(X,I,z,!1,!0):(ne===pt&&he&384||!K&&we&16)&&Q(ie,I,z),U&&ye(L)}(ze&&(rt=fe&&fe.onVnodeUnmounted)||Oe)&&yr(()=>{rt&&On(rt,I,L),Oe&&ha(L,null,I,"unmounted")},z)},ye=L=>{const{type:I,el:z,anchor:U,transition:K}=L;if(I===pt){Ae(z,U);return}if(I===kh){b(L);return}const ne=()=>{i(z),K&&!K.persisted&&K.afterLeave&&K.afterLeave()};if(L.shapeFlag&1&&K&&!K.persisted){const{leave:fe,delayLeave:te}=K,ie=()=>fe(z,ne);te?te(L.el,ne,ie):ie()}else ne()},Ae=(L,I)=>{let z;for(;L!==I;)z=d(L),i(L),L=z;i(I)},V=(L,I,z)=>{const{bum:U,scope:K,update:ne,subTree:fe,um:te}=L;U&&_f(U),K.stop(),ne&&(ne.active=!1,oe(fe,L,I,z)),te&&yr(te,I),yr(()=>{L.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Q=(L,I,z,U=!1,K=!1,ne=0)=>{for(let fe=ne;feL.shapeFlag&6?W(L.component.subTree):L.shapeFlag&128?L.suspense.next():d(L.anchor||L.el),q=(L,I,z)=>{L==null?I._vnode&&oe(I._vnode,null,null,!0):p(I._vnode||null,L,I,null,null,null,z),i_(),HC(),I._vnode=L},le={p,um:oe,m:re,r:ye,mt:N,mc:C,pc:F,pbc:P,n:W,o:e};let de,J;return t&&([de,J]=t(le)),{render:q,hydrate:de,createApp:YI(q,de)}}function va({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function qm(e,t,r=!1){const n=e.children,i=t.children;if(be(n)&&be(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const ZI=e=>e.__isTeleport,Ll=e=>e&&(e.disabled||e.disabled===""),p_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ip=(e,t)=>{const r=e&&e.to;return He(r)?t?t(r):null:r},QI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ll(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");h(x,r,n),h(w,r,n);const S=t.target=Ip(t.props,v),C=t.targetAnchor=p("");S&&(h(C,S),o=o||p_(S));const M=(P,A)=>{y&16&&c(_,P,A,i,a,o,s,l)};m?M(r,w):S&&M(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Ll(e.props),M=C?r:w,P=C?x:S;if(o=o||p_(w),b?(d(e.dynamicChildren,b,M,i,a,o,s),qm(e,t,!0)):l||f(e,t,M,P,i,a,o,s,!1),m)C||pc(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Ip(t.props,v);A&&pc(t,A,null,u,0)}else C&&pc(t,w,S,u,1)}oT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&a(c),(o||!Ll(d))&&(a(u),s&16))for(let h=0;h0?wn||ns:null,tO(),lu>0&&wn&&wn.push(e),e}function me(e,t,r,n,i,a){return sT(ae(e,t,r,n,i,a,!0))}function _e(e,t,r,n,i){return sT(ee(e,t,r,n,i,!0))}function ta(e){return e?e.__v_isVNode===!0:!1}function Ua(e,t){return e.type===t.type&&e.key===t.key}const Ud="__vInternal",lT=({key:e})=>e??null,bf=({ref:e,ref_key:t,ref_for:r})=>e!=null?He(e)||Ct(e)||De(e)?{i:qt,r:e,k:t,f:!!r}:e:null;function ae(e,t=null,r=null,n=0,i=null,a=e===pt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&lT(t),ref:t&&bf(t),scopeId:VC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:qt};return s?(Km(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=He(r)?8:16),lu>0&&!o&&wn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&wn.push(l),l}const ee=rO;function rO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===XC)&&(e=xr),ta(e)){const s=mi(e,t,!0);return r&&Km(s,r),lu>0&&!a&&wn&&(s.shapeFlag&6?wn[wn.indexOf(e)]=s:wn.push(s)),s.patchFlag|=-2,s}if(fO(e)&&(e=e.__vccOpts),t){t=nO(t);let{class:s,style:l}=t;s&&!He(s)&&(t.class=ue(s)),Xe(l)&&(DC(l)&&!be(l)&&(l=Gt({},l)),t.style=St(l))}const o=He(e)?1:xI(e)?128:ZI(e)?64:Xe(e)?4:De(e)?2:0;return ae(e,t,r,n,i,o,a,!0)}function nO(e){return e?DC(e)||Ud in e?Gt({},e):e:null}function mi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ca(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&lT(s),ref:t&&t.ref?r&&i?be(i)?i.concat(bf(t)):[i,bf(t)]:bf(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mi(e.ssContent),ssFallback:e.ssFallback&&mi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Bt(e=" ",t=0){return ee(Ns,null,e,t)}function ke(e="",t=!1){return t?(Y(),_e(xr,null,e)):ee(xr,null,e)}function Bn(e){return e==null||typeof e=="boolean"?ee(xr):be(e)?ee(pt,null,e.slice()):typeof e=="object"?Vi(e):ee(Ns,null,String(e))}function Vi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mi(e)}function Km(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(be(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Km(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Ud in t)?t._ctx=qt:i===3&&qt&&(qt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:qt},r=32):(t=String(t),n&64?(r=16,t=[Bt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ca(...e){const t={};for(let r=0;rIt||qt,ps=e=>{It=e,e.scope.on()},ao=()=>{It&&It.scope.off(),It=null};function uT(e){return e.vnode.shapeFlag&4}let uu=!1;function sO(e,t=!1){uu=t;const{props:r,children:n}=e.vnode,i=uT(e);zI(e,r,i,t),GI(e,n);const a=i?lO(e,t):void 0;return uu=!1,a}function lO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=IC(new Proxy(e.ctx,kI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?fT(e):null;ps(e),Os();const a=Zi(n,e,0,[e.props,i]);if(Rs(),ao(),jf(a)){if(a.then(ao,ao),t)return a.then(o=>{m_(e,o,t)}).catch(o=>{Hd(o,e,0)});e.asyncDep=a}else m_(e,a,t)}else cT(e,t)}function m_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Xe(t)&&(e.setupState=NC(t)),cT(e,r)}let y_;function cT(e,t,r){const n=e.type;if(!e.render){if(!t&&y_&&!n.render){const i=n.template||jm(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Gt(Gt({isCustomElement:a,delimiters:s},o),l);n.render=y_(i,u)}}e.render=n.render||ur}ps(e),Os(),NI(e),Rs(),ao()}function uO(e){return new Proxy(e.attrs,{get(t,r){return Mr(e,"get","$attrs"),t[r]}})}function fT(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=uO(e))},slots:e.slots,emit:e.emit,expose:t}}function jd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(NC(IC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Pl)return Pl[r](e)},has(t,r){return r in t||r in Pl}}))}function cO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function fO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>cI(e,t,uu);function Yd(){return dO().slots}function dO(){const e=ct();return e.setupContext||(e.setupContext=fT(e))}function Ce(e,t,r){const n=arguments.length;return n===2?Xe(t)&&!be(t)?ta(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&ta(r)&&(r=[r]),ee(e,t,r))}const hO=Symbol(""),vO=()=>Ee(hO),pO="3.2.47",gO="http://www.w3.org/2000/svg",ja=typeof document<"u"?document:null,__=ja&&ja.createElement("template"),mO={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?ja.createElementNS(gO,e):ja.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>ja.createTextNode(e),createComment:e=>ja.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ja.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{__.innerHTML=n?`${e}`:e;const s=__.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function yO(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function _O(e,t,r){const n=e.style,i=He(r);if(r&&!i){if(t&&!He(t))for(const a in t)r[a]==null&&Op(n,a,"");for(const a in r)Op(n,a,r[a])}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const b_=/\s*!important$/;function Op(e,t,r){if(be(r))r.forEach(n=>Op(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=bO(e,t);b_.test(r)?e.setProperty(xo(n),r.replace(b_,""),"important"):e[n]=r}}const w_=["Webkit","Moz","ms"],Nh={};function bO(e,t){const r=Nh[t];if(r)return r;let n=An(t);if(n!=="filter"&&n in e)return Nh[t]=n;n=Fd(n);for(let i=0;iFh||(MO.then(()=>Fh=0),Fh=Date.now());function EO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;rn(PO(n,r.value),t,5,[n])};return r.value=e,r.attached=AO(),r}function PO(e,t){if(be(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const C_=/^on[a-z]/,LO=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?yO(e,n,i):t==="style"?_O(e,r,n):Rd(t)?Pm(t)||CO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):DO(e,t,n,i))?xO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),wO(e,t,n,i))};function DO(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&C_.test(t)&&De(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||C_.test(t)&&He(r)?!1:t in e}const Li="transition",Ys="animation",Ci=(e,{slots:t})=>Ce(jC,vT(e),t);Ci.displayName="Transition";const hT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},IO=Ci.props=Gt({},jC.props,hT),pa=(e,t=[])=>{be(e)?e.forEach(r=>r(...t)):e&&e(...t)},T_=e=>e?be(e)?e.some(t=>t.length>1):e.length>1:!1;function vT(e){const t={};for(const T in e)T in hT||(t[T]=e[T]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:c=s,leaveFromClass:f=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=OO(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:S=y,onAppearCancelled:C=_}=t,M=(T,D,N)=>{Bi(T,D?c:s),Bi(T,D?u:o),N&&N()},P=(T,D)=>{T._isLeaving=!1,Bi(T,f),Bi(T,h),Bi(T,d),D&&D()},A=T=>(D,N)=>{const H=T?S:y,$=()=>M(D,T,N);pa(H,[D,$]),M_(()=>{Bi(D,T?l:a),li(D,T?c:s),T_(H)||A_(D,n,p,$)})};return Gt(t,{onBeforeEnter(T){pa(m,[T]),li(T,a),li(T,o)},onBeforeAppear(T){pa(w,[T]),li(T,l),li(T,u)},onEnter:A(!1),onAppear:A(!0),onLeave(T,D){T._isLeaving=!0;const N=()=>P(T,D);li(T,f),gT(),li(T,d),M_(()=>{T._isLeaving&&(Bi(T,f),li(T,h),T_(b)||A_(T,n,g,N))}),pa(b,[T,N])},onEnterCancelled(T){M(T,!1),pa(_,[T])},onAppearCancelled(T){M(T,!0),pa(C,[T])},onLeaveCancelled(T){P(T),pa(x,[T])}})}function OO(e){if(e==null)return null;if(Xe(e))return[Bh(e.enter),Bh(e.leave)];{const t=Bh(e);return[t,t]}}function Bh(e){return ED(e)}function li(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Bi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function M_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let RO=0;function A_(e,t,r,n){const i=e._endId=++RO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=pT(e,t);if(!o)return n();const u=o+"end";let c=0;const f=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(r[v]||"").split(", "),i=n(`${Li}Delay`),a=n(`${Li}Duration`),o=E_(i,a),s=n(`${Ys}Delay`),l=n(`${Ys}Duration`),u=E_(s,l);let c=null,f=0,d=0;t===Li?o>0&&(c=Li,f=o,d=a.length):t===Ys?u>0&&(c=Ys,f=u,d=l.length):(f=Math.max(o,u),c=f>0?o>u?Li:Ys:null,d=c?c===Li?a.length:l.length:0);const h=c===Li&&/\b(transform|all)(,|$)/.test(n(`${Li}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function E_(e,t){for(;e.lengthP_(r)+P_(e[n])))}function P_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function gT(){return document.body.offsetHeight}const mT=new WeakMap,yT=new WeakMap,_T={name:"TransitionGroup",props:Gt({},IO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=ct(),n=UC();let i,a;return Hu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!HO(i[0].el,r.vnode.el,o))return;i.forEach(FO),i.forEach(BO);const s=i.filter($O);gT(),s.forEach(l=>{const u=l.el,c=u.style;li(u,o),c.transform=c.webkitTransform=c.transitionDuration="";const f=u._moveCb=d=>{d&&d.target!==u||(!d||/transform$/.test(d.propertyName))&&(u.removeEventListener("transitionend",f),u._moveCb=null,Bi(u,o))};u.addEventListener("transitionend",f)})}),()=>{const o=Ke(e),s=vT(o);let l=o.tag||pt;i=a,a=t.default?Vm(t.default()):[];for(let u=0;udelete e.mode;_T.props;const NO=_T;function FO(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function BO(e){yT.set(e,e.el.getBoundingClientRect())}function $O(e){const t=mT.get(e),r=yT.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function HO(e,t,r){const n=e.cloneNode();e._vtc&&e._vtc.forEach(o=>{o.split(/\s+/).forEach(s=>s&&n.classList.remove(s))}),r.split(/\s+/).forEach(o=>o&&n.classList.add(o)),n.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(n);const{hasTransform:a}=pT(n);return i.removeChild(n),a}const L_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return be(t)?r=>_f(t,r):t},Qf={deep:!0,created(e,t,r){e._assign=L_(r),dT(e,"change",()=>{const n=e._modelValue,i=zO(e),a=e.checked,o=e._assign;if(be(n)){const s=pC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(kd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(bT(e,a))})},mounted:D_,beforeUpdate(e,t,r){e._assign=L_(r),D_(e,t,r)}};function D_(e,{value:t,oldValue:r},n){e._modelValue=t,be(t)?e.checked=pC(t,n.props.value)>-1:kd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=Od(t,bT(e,!0)))}function zO(e){return"_value"in e?e._value:e.value}function bT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const WO=["ctrl","shift","alt","meta"],VO={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>WO.some(r=>e[`${r}Key`]&&!t.includes(r))},Jf=(e,t)=>(r,...n)=>{for(let i=0;ir=>{if(!("key"in r))return;const n=xo(r.key);if(t.some(i=>i===n||GO[i]===n))return e(r)},yi={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):qs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),qs(e,!0),n.enter(e)):n.leave(e,()=>{qs(e,!1)}):qs(e,t))},beforeUnmount(e,{value:t}){qs(e,t)}};function qs(e,t){e.style.display=t?e._vod:"none"}const jO=Gt({patchProp:LO},mO);let I_;function wT(){return I_||(I_=qI(jO))}const O_=(...e)=>{wT().render(...e)},YO=(...e)=>{const t=wT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=qO(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function qO(e){return He(e)?document.querySelector(e):e}const wf=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},fi=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var R_;const Nt=typeof window<"u",Br=e=>typeof e=="boolean",KO=e=>typeof e=="function",$t=e=>typeof e=="number",XO=e=>typeof e=="string",Rp=()=>{};Nt&&((R_=window==null?void 0:window.navigator)!=null&&R_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ho(e){return typeof e=="function"?e():E(e)}function xT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const ST=e=>e();function ZO(e,t={}){let r,n,i=Rp;const a=s=>{clearTimeout(s),i(),i=Rp};return s=>{const l=ho(e),u=ho(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((c,f)=>{i=t.rejectOnCancel?f:c,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,c(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,c(s())},l)})}}function QO(e=ST){const t=B(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:$u(t),pause:r,resume:n,eventFilter:i}}function JO(e){return e}function zu(e){return _C()?(ID(e),!0):!1}function eR(e,t=200,r={}){return xT(ZO(t,r),e)}function tR(e,t=200,r={}){const n=B(e.value),i=eR(()=>{n.value=e.value},t,r);return Se(e,()=>i()),n}function rR(e){return typeof e=="function"?k(e):B(e)}function CT(e,t=!0){ct()?wt(e):t?e():Ft(e)}function kp(e,t,r={}){const{immediate:n=!0}=r,i=B(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},ho(t))}return n&&(i.value=!0,Nt&&l()),zu(s),{isPending:$u(i),start:l,stop:s}}function nR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Ct(e),a=B(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=ho(r);return a.value=a.value===l?ho(n):l,a.value}}return i?o:[a,o]}var k_=Object.getOwnPropertySymbols,iR=Object.prototype.hasOwnProperty,aR=Object.prototype.propertyIsEnumerable,oR=(e,t)=>{var r={};for(var n in e)iR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&k_)for(var n of k_(e))t.indexOf(n)<0&&aR.call(e,n)&&(r[n]=e[n]);return r};function sR(e,t,r={}){const n=r,{eventFilter:i=ST}=n,a=oR(n,["eventFilter"]);return Se(e,xT(i,t),a)}var lR=Object.defineProperty,uR=Object.defineProperties,cR=Object.getOwnPropertyDescriptors,ed=Object.getOwnPropertySymbols,TT=Object.prototype.hasOwnProperty,MT=Object.prototype.propertyIsEnumerable,N_=(e,t,r)=>t in e?lR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fR=(e,t)=>{for(var r in t||(t={}))TT.call(t,r)&&N_(e,r,t[r]);if(ed)for(var r of ed(t))MT.call(t,r)&&N_(e,r,t[r]);return e},dR=(e,t)=>uR(e,cR(t)),hR=(e,t)=>{var r={};for(var n in e)TT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ed)for(var n of ed(e))t.indexOf(n)<0&&MT.call(e,n)&&(r[n]=e[n]);return r};function vR(e,t,r={}){const n=r,{eventFilter:i}=n,a=hR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=QO(i);return{stop:sR(e,t,dR(fR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Ui(e){var t;const r=ho(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ra=Nt?window:void 0;function xn(...e){let t,r,n,i;if(XO(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ra):[t,r,n,i]=e,!t)return Rp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(c=>c()),a.length=0},s=(c,f,d)=>(c.addEventListener(f,d,i),()=>c.removeEventListener(f,d,i)),l=Se(()=>Ui(t),c=>{o(),c&&a.push(...r.flatMap(f=>n.map(d=>s(c,f,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return zu(u),u}function pR(e,t,r={}){const{window:n=ra,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=Ui(v);return p&&(h.target===p||h.composedPath().includes(p))}}),c=h=>{n.clearTimeout(l);const v=Ui(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},f=[xn(n,"click",c,{passive:!0,capture:a}),xn(n,"pointerdown",h=>{const v=Ui(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),xn(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>c(h),50)}},{passive:!0}),o&&xn(n,"blur",h=>{var v;const p=Ui(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>f.forEach(h=>h())}function AT(e,t=!1){const r=B(),n=()=>r.value=Boolean(e());return n(),CT(n,t),r}function gR(e,t={}){const{window:r=ra}=t,n=AT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=B(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(rR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return io(s),zu(()=>o()),a}const Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Fp="__vueuse_ssr_handlers__";Np[Fp]=Np[Fp]||{};const mR=Np[Fp];function ET(e,t){return mR[e]||t}function yR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var _R=Object.defineProperty,F_=Object.getOwnPropertySymbols,bR=Object.prototype.hasOwnProperty,wR=Object.prototype.propertyIsEnumerable,B_=(e,t,r)=>t in e?_R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$_=(e,t)=>{for(var r in t||(t={}))bR.call(t,r)&&B_(e,r,t[r]);if(F_)for(var r of F_(t))wR.call(t,r)&&B_(e,r,t[r]);return e};const xR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function SR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=ra,eventFilter:d,onError:h=S=>{console.error(S)}}=n,v=(c?$m:B)(t);if(!r)try{r=ET("getDefaultStorage",()=>{var S;return(S=ra)==null?void 0:S.localStorage})()}catch(S){h(S)}if(!r)return v;const p=ho(t),g=yR(p),m=(i=n.serializer)!=null?i:xR[g],{pause:y,resume:_}=vR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:d});return f&&s&&xn(f,"storage",w),w(),v;function b(S){try{if(S==null)r.removeItem(e);else{const C=m.write(S),M=r.getItem(e);M!==C&&(r.setItem(e,C),f&&(f==null||f.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){h(C)}}function x(S){const C=S?S.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,m.write(p)),p;if(!S&&u){const M=m.read(C);return KO(u)?u(M,p):g==="object"&&!Array.isArray(M)?$_($_({},p),M):M}else return typeof C!="string"?C:m.read(C)}function w(S){if(!(S&&S.storageArea!==r)){if(S&&S.key==null){v.value=p;return}if(!(S&&S.key!==e)){y();try{v.value=x(S)}catch(C){h(C)}finally{S?Ft(_):_()}}}}}function PT(e){return gR("(prefers-color-scheme: dark)",e)}var CR=Object.defineProperty,H_=Object.getOwnPropertySymbols,TR=Object.prototype.hasOwnProperty,MR=Object.prototype.propertyIsEnumerable,z_=(e,t,r)=>t in e?CR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,AR=(e,t)=>{for(var r in t||(t={}))TR.call(t,r)&&z_(e,r,t[r]);if(H_)for(var r of H_(t))MR.call(t,r)&&z_(e,r,t[r]);return e};function ER(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=ra,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,c=AR({auto:"",light:"light",dark:"dark"},e.modes||{}),f=PT({window:i}),d=k(()=>f.value?"dark":"light"),h=l||(o==null?B(n):SR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return h.value==="auto"&&!u?d.value:h.value},set(y){h.value=y}}),p=ET("updateHTMLAttrs",(y,_,b)=>{const x=i==null?void 0:i.document.querySelector(y);if(x)if(_==="class"){const w=b.split(/\s/g);Object.values(c).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{w.includes(S)?x.classList.add(S):x.classList.remove(S)})}else x.setAttribute(_,b)});function g(y){var _;const b=y==="auto"?d.value:y;p(t,r,(_=c[b])!=null?_:b)}function m(y){e.onChanged?e.onChanged(y,g):g(y)}return Se(v,m,{flush:"post",immediate:!0}),u&&Se(d,()=>m(v.value),{flush:"post"}),CT(()=>m(v.value)),v}var PR=Object.defineProperty,LR=Object.defineProperties,DR=Object.getOwnPropertyDescriptors,W_=Object.getOwnPropertySymbols,IR=Object.prototype.hasOwnProperty,OR=Object.prototype.propertyIsEnumerable,V_=(e,t,r)=>t in e?PR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,RR=(e,t)=>{for(var r in t||(t={}))IR.call(t,r)&&V_(e,r,t[r]);if(W_)for(var r of W_(t))OR.call(t,r)&&V_(e,r,t[r]);return e},kR=(e,t)=>LR(e,DR(t));function NR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=ra}=e,i=ER(kR(RR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=PT({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var G_=Object.getOwnPropertySymbols,FR=Object.prototype.hasOwnProperty,BR=Object.prototype.propertyIsEnumerable,$R=(e,t)=>{var r={};for(var n in e)FR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&G_)for(var n of G_(e))t.indexOf(n)<0&&BR.call(e,n)&&(r[n]=e[n]);return r};function gs(e,t,r={}){const n=r,{window:i=ra}=n,a=$R(n,["window"]);let o;const s=AT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=Se(()=>Ui(e),f=>{l(),s.value&&i&&f&&(o=new ResizeObserver(t),o.observe(f,a))},{immediate:!0,flush:"post"}),c=()=>{l(),u()};return zu(c),{isSupported:s,stop:c}}var U_;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(U_||(U_={}));var HR=Object.defineProperty,j_=Object.getOwnPropertySymbols,zR=Object.prototype.hasOwnProperty,WR=Object.prototype.propertyIsEnumerable,Y_=(e,t,r)=>t in e?HR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,VR=(e,t)=>{for(var r in t||(t={}))zR.call(t,r)&&Y_(e,r,t[r]);if(j_)for(var r of j_(t))WR.call(t,r)&&Y_(e,r,t[r]);return e};const GR={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};VR({linear:JO},GR);var UR=typeof global=="object"&&global&&global.Object===Object&&global;const LT=UR;var jR=typeof self=="object"&&self&&self.Object===Object&&self,YR=LT||jR||Function("return this")();const Pn=YR;var qR=Pn.Symbol;const sn=qR;var DT=Object.prototype,KR=DT.hasOwnProperty,XR=DT.toString,Ks=sn?sn.toStringTag:void 0;function ZR(e){var t=KR.call(e,Ks),r=e[Ks];try{e[Ks]=void 0;var n=!0}catch{}var i=XR.call(e);return n&&(t?e[Ks]=r:delete e[Ks]),i}var QR=Object.prototype,JR=QR.toString;function ek(e){return JR.call(e)}var tk="[object Null]",rk="[object Undefined]",q_=sn?sn.toStringTag:void 0;function So(e){return e==null?e===void 0?rk:tk:q_&&q_ in Object(e)?ZR(e):ek(e)}function qn(e){return e!=null&&typeof e=="object"}var nk="[object Symbol]";function qd(e){return typeof e=="symbol"||qn(e)&&So(e)==nk}function IT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=kk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function $k(e){return function(){return e}}var Hk=function(){try{var e=To(Object,"defineProperty");return e({},"",{}),e}catch{}}();const td=Hk;var zk=td?function(e,t){return td(e,"toString",{configurable:!0,enumerable:!1,value:$k(t),writable:!0})}:Xm;const Wk=zk;var Vk=Bk(Wk);const kT=Vk;function Gk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=Xk}function Fs(e){return e!=null&&ey(e.length)&&!Zm(e)}function Zk(e,t,r){if(!Ar(r))return!1;var n=typeof t;return(n=="number"?Fs(r)&&Kd(t,r.length):n=="string"&&t in r)?Wu(r[t],e):!1}function Qk(e){return Kk(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&Zk(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function vF(e,t){var r=this.__data__,n=Xd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Ti(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?ly(s,t-1,r,n,i):sy(i,s):n||(i[i.length]=s)}return i}function IF(e){var t=e==null?0:e.length;return t?ly(e,1):[]}function OF(e){return kT(NT(e,void 0,IF),e+"")}var RF=zT(Object.getPrototypeOf,Object);const uy=RF;var kF="[object Object]",NF=Function.prototype,FF=Object.prototype,WT=NF.toString,BF=FF.hasOwnProperty,$F=WT.call(Object);function HF(e){if(!qn(e)||So(e)!=kF)return!1;var t=uy(e);if(t===null)return!0;var r=BF.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&WT.call(r)==$F}function $p(){if(!arguments.length)return[];var e=arguments[0];return fr(e)?e:[e]}function zF(){this.__data__=new Ti,this.size=0}function WF(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function VF(e){return this.__data__.get(e)}function GF(e){return this.__data__.has(e)}var UF=200;function jF(e,t){var r=this.__data__;if(r instanceof Ti){var n=r.__data__;if(!hu||n.lengths))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=r&P$?new nd:void 0;for(a.set(e,t),a.set(t,e);++f=t||S<0||f&&C>=a}function m(){var w=Wh();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Wh())}function x(){var w=Wh(),S=g(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(f)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return x.cancel=_,x.flush=b,x}function Gp(e,t,r){(r!==void 0&&!Wu(e[t],r)||r===void 0&&!(t in e))&&Qm(e,t,r)}function S5(e){return qn(e)&&Fs(e)}function Up(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function C5(e){return Vu(e,Uu(e))}function T5(e,t,r,n,i,a,o){var s=Up(e,r),l=Up(t,r),u=o.get(l);if(u){Gp(e,r,u);return}var c=a?a(s,l,r+"",e,t,o):void 0,f=c===void 0;if(f){var d=fr(l),h=!d&&fu(l),v=!d&&!h&&ny(l);c=l,d||h||v?fr(s)?c=s:S5(s)?c=RT(s):h?(f=!1,c=GT(l,!0)):v?(f=!1,c=qT(l,!0)):c=[]:HF(l)||cu(l)?(c=s,cu(s)?c=C5(s):(!Ar(s)||Zm(s))&&(c=KT(l))):f=!1}f&&(o.set(l,c),i(c,l,n,a,o),o.delete(l)),Gp(e,r,c)}function iM(e,t,r,n,i){e!==t&&nM(t,function(a,o){if(i||(i=new Mn),Ar(a))T5(e,t,o,r,iM,n,i);else{var s=n?n(Up(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),Gp(e,o,s)}},Uu)}function M5(e,t){var r=-1,n=Fs(e)?Array(e.length):[];return y5(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function A5(e,t){var r=fr(e)?IT:M5;return r(e,d5(t))}function E5(e,t){return ly(A5(e,t),1)}function jp(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,ys=e=>typeof Element>"u"?!1:e instanceof Element,F5=e=>He(e)?!Number.isNaN(Number(e)):!1,Tb=e=>Object.keys(e),Sf=(e,t,r)=>({get value(){return vu(e,t,r)},set value(n){N5(e,t,n)}});class B5 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function na(e,t){throw new B5(`[${e}] ${t}`)}const sM=(e="")=>e.split(" ").filter(t=>!!t.trim()),Ol=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Zo=(e,t)=>{!e||!t.trim()||e.classList.add(...sM(t))},ss=(e,t)=>{!e||!t.trim()||e.classList.remove(...sM(t))},Mb=(e,t)=>{var r;if(!Nt||!e||!t)return"";let n=An(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function po(e,t="px"){if(!e)return"";if($t(e)||F5(e))return`${e}${t}`;if(He(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Zn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},$5={name:"ArrowDown"},H5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z5=ae("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),W5=[z5];function V5(e,t,r,n,i,a){return Y(),me("svg",H5,W5)}var lM=Zn($5,[["render",V5],["__file","arrow-down.vue"]]),G5={name:"ArrowRight"},U5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},j5=ae("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),Y5=[j5];function q5(e,t,r,n,i,a){return Y(),me("svg",U5,Y5)}var dy=Zn(G5,[["render",q5],["__file","arrow-right.vue"]]),K5={name:"ArrowUp"},X5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z5=ae("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),Q5=[Z5];function J5(e,t,r,n,i,a){return Y(),me("svg",X5,Q5)}var e3=Zn(K5,[["render",J5],["__file","arrow-up.vue"]]),t3={name:"CircleCloseFilled"},r3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),i3=[n3];function a3(e,t,r,n,i,a){return Y(),me("svg",r3,i3)}var uM=Zn(t3,[["render",a3],["__file","circle-close-filled.vue"]]),o3={name:"Close"},s3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l3=ae("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),u3=[l3];function c3(e,t,r,n,i,a){return Y(),me("svg",s3,u3)}var Yp=Zn(o3,[["render",c3],["__file","close.vue"]]),f3={name:"InfoFilled"},d3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),v3=[h3];function p3(e,t,r,n,i,a){return Y(),me("svg",d3,v3)}var cM=Zn(f3,[["render",p3],["__file","info-filled.vue"]]),g3={name:"Loading"},m3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},y3=ae("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),_3=[y3];function b3(e,t,r,n,i,a){return Y(),me("svg",m3,_3)}var hy=Zn(g3,[["render",b3],["__file","loading.vue"]]),w3={name:"More"},x3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},S3=ae("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),C3=[S3];function T3(e,t,r,n,i,a){return Y(),me("svg",x3,C3)}var M3=Zn(w3,[["render",T3],["__file","more.vue"]]),A3={name:"SuccessFilled"},E3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),L3=[P3];function D3(e,t,r,n,i,a){return Y(),me("svg",E3,L3)}var fM=Zn(A3,[["render",D3],["__file","success-filled.vue"]]),I3={name:"WarningFilled"},O3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),k3=[R3];function N3(e,t,r,n,i,a){return Y(),me("svg",O3,k3)}var dM=Zn(I3,[["render",N3],["__file","warning-filled.vue"]]);const hM="__epPropKey",Le=e=>e,F3=e=>Xe(e)&&!!e[hM],eh=(e,t)=>{if(!Xe(e)||F3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let c=!1,f=[];if(r&&(f=Array.from(r),We(e,"default")&&f.push(i),c||(c=f.includes(u))),o&&(c||(c=o(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");fI(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[hM]:!0};return We(e,"default")&&(l.default=i),l},tt=e=>jp(Object.entries(e).map(([t,r])=>[t,eh(r,t)])),Wn=Le([String,Object,Function]),B3={Close:Yp,SuccessFilled:fM,InfoFilled:cM,WarningFilled:dM,CircleCloseFilled:uM},Ab={success:fM,warning:dM,error:uM,info:cM},hr=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},$3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),H3=(e,t)=>(e.install=r=>{r.directive(t,e)},e),fa=e=>(e.install=ur,e),Ot={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},go="update:modelValue",qp="change",Kp="input",Yu=["","default","small","large"],z3=e=>["",...Yu].includes(e),Cf=e=>{const t=be(e)?e:[e],r=[];return t.forEach(n=>{var i;be(n)?r.push(...Cf(n)):ta(n)&&be(n.children)?r.push(...Cf(n.children)):(r.push(n),ta(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Cf(n.component.subTree)))}),r},Ya=e=>e,vy=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{Se(()=>E(o),s=>{},{immediate:!0})};var W3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const V3=e=>(t,r)=>G3(t,r,E(e)),G3=(e,t,r)=>vu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),U3=e=>{const t=k(()=>E(e).name),r=Ct(e)?e:B(e);return{lang:t,locale:r,t:V3(e)}},vM=Symbol("localeContextKey"),py=e=>{const t=e||Ee(vM,B());return U3(k(()=>t.value||W3))},Xp="el",j3="is-",ga=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},pM=Symbol("namespaceContextKey"),gy=e=>{const t=e||Ee(pM,B(Xp));return k(()=>E(t)||Xp)},Fe=(e,t)=>{const r=gy(t);return{namespace:r,b:(p="")=>ga(r.value,e,p,"",""),e:p=>p?ga(r.value,e,"",p,""):"",m:p=>p?ga(r.value,e,"","",p):"",be:(p,g)=>p&&g?ga(r.value,e,p,g,""):"",em:(p,g)=>p&&g?ga(r.value,e,"",p,g):"",bm:(p,g)=>p&&g?ga(r.value,e,p,"",g):"",bem:(p,g,m)=>p&&g&&m?ga(r.value,e,p,g,m):"",is:(p,...g)=>{const m=g.length>=1?g[0]:!0;return p&&m?`${j3}${p}`:""},cssVar:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${m}`]=p[m]);return g},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${e}-${m}`]=p[m]);return g},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},Y3=eh({type:Le(Boolean),default:null}),q3=eh({type:Le(Function)}),K3=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:Y3,[r]:q3};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:c,onHide:f})=>{const d=ct(),{emit:h}=d,v=d.props,p=k(()=>De(v[r])),g=k(()=>v[e]===null),m=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),De(c)&&c(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),De(f)&&f(S))},_=S=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&Nt;C&&h(t,!0),(g.value||!C)&&m(S)},b=S=>{if(v.disabled===!0||!Nt)return;const C=p.value&&Nt;C&&h(t,!1),(g.value||!C)&&y(S)},x=S=>{Br(S)&&(v.disabled&&S?p.value&&h(t,!1):o.value!==S&&(S?m():y()))},w=()=>{o.value?b():_()};return Se(()=>v[e],x),l&&d.appContext.config.globalProperties.$route!==void 0&&Se(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),wt(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}},gM=e=>{const t=ct();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var Sr="top",ln="bottom",un="right",Cr="left",my="auto",qu=[Sr,ln,un,Cr],_s="start",mu="end",X3="clippingParents",mM="viewport",Xs="popper",Z3="reference",Eb=qu.reduce(function(e,t){return e.concat([t+"-"+_s,t+"-"+mu])},[]),yy=[].concat(qu,[my]).reduce(function(e,t){return e.concat([t,t+"-"+_s,t+"-"+mu])},[]),Q3="beforeRead",J3="read",e4="afterRead",t4="beforeMain",r4="main",n4="afterMain",i4="beforeWrite",a4="write",o4="afterWrite",s4=[Q3,J3,e4,t4,r4,n4,i4,a4,o4];function Kn(e){return e?(e.nodeName||"").toLowerCase():null}function Ln(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bs(e){var t=Ln(e).Element;return e instanceof t||e instanceof Element}function an(e){var t=Ln(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function _y(e){if(typeof ShadowRoot>"u")return!1;var t=Ln(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function l4(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!an(a)||!Kn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function u4(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!an(i)||!Kn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var yM={name:"applyStyles",enabled:!0,phase:"write",fn:l4,effect:u4,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var oo=Math.max,od=Math.min,ws=Math.round;function xs(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(an(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ws(r.width)/o||1),a>0&&(i=ws(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function by(e){var t=xs(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function _M(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&_y(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function _i(e){return Ln(e).getComputedStyle(e)}function c4(e){return["table","td","th"].indexOf(Kn(e))>=0}function da(e){return((bs(e)?e.ownerDocument:e.document)||window.document).documentElement}function th(e){return Kn(e)==="html"?e:e.assignedSlot||e.parentNode||(_y(e)?e.host:null)||da(e)}function Pb(e){return!an(e)||_i(e).position==="fixed"?null:e.offsetParent}function f4(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&an(e)){var n=_i(e);if(n.position==="fixed")return null}var i=th(e);for(_y(i)&&(i=i.host);an(i)&&["html","body"].indexOf(Kn(i))<0;){var a=_i(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ku(e){for(var t=Ln(e),r=Pb(e);r&&c4(r)&&_i(r).position==="static";)r=Pb(r);return r&&(Kn(r)==="html"||Kn(r)==="body"&&_i(r).position==="static")?t:r||f4(e)||t}function wy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rl(e,t,r){return oo(e,od(t,r))}function d4(e,t,r){var n=Rl(e,t,r);return n>r?r:n}function bM(){return{top:0,right:0,bottom:0,left:0}}function wM(e){return Object.assign({},bM(),e)}function xM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var h4=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,wM(typeof e!="number"?e:xM(e,qu))};function v4(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=wy(s),u=[Cr,un].indexOf(s)>=0,c=u?"height":"width";if(!(!a||!o)){var f=h4(i.padding,r),d=by(a),h=l==="y"?Sr:Cr,v=l==="y"?ln:un,p=r.rects.reference[c]+r.rects.reference[l]-o[l]-r.rects.popper[c],g=o[l]-r.rects.reference[l],m=Ku(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=f[h],x=y-d[c]-f[v],w=y/2-d[c]/2+_,S=Rl(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function p4(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!_M(t.elements.popper,i)||(t.elements.arrow=i))}var g4={name:"arrow",enabled:!0,phase:"main",fn:v4,effect:p4,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ss(e){return e.split("-")[1]}var m4={top:"auto",right:"auto",bottom:"auto",left:"auto"};function y4(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ws(t*i)/i||0,y:ws(r*i)/i||0}}function Lb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof c=="function"?c({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Cr,b=Sr,x=window;if(u){var w=Ku(r),S="clientHeight",C="clientWidth";if(w===Ln(r)&&(w=da(r),_i(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===Sr||(i===Cr||i===un)&&a===mu){b=ln;var M=f&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=M-n.height,p*=l?1:-1}if(i===Cr||(i===Sr||i===ln)&&a===mu){_=un;var P=f&&w===x&&x.visualViewport?x.visualViewport.width:w[C];h-=P-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&m4),T=c===!0?y4({x:h,y:p}):{x:h,y:p};if(h=T.x,p=T.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function _4(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:Ss(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Lb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Lb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var SM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:_4,data:{}},mc={passive:!0};function b4(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=Ln(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",r.update,mc)}),s&&l.addEventListener("resize",r.update,mc),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",r.update,mc)}),s&&l.removeEventListener("resize",r.update,mc)}}var CM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:b4,data:{}},w4={left:"right",right:"left",bottom:"top",top:"bottom"};function Tf(e){return e.replace(/left|right|bottom|top/g,function(t){return w4[t]})}var x4={start:"end",end:"start"};function Db(e){return e.replace(/start|end/g,function(t){return x4[t]})}function xy(e){var t=Ln(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Sy(e){return xs(da(e)).left+xy(e).scrollLeft}function S4(e){var t=Ln(e),r=da(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Sy(e),y:s}}function C4(e){var t,r=da(e),n=xy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=oo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=oo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Sy(e),l=-n.scrollTop;return _i(i||r).direction==="rtl"&&(s+=oo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function Cy(e){var t=_i(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function TM(e){return["html","body","#document"].indexOf(Kn(e))>=0?e.ownerDocument.body:an(e)&&Cy(e)?e:TM(th(e))}function kl(e,t){var r;t===void 0&&(t=[]);var n=TM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=Ln(n),o=i?[a].concat(a.visualViewport||[],Cy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(kl(th(o)))}function Zp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function T4(e){var t=xs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ib(e,t){return t===mM?Zp(S4(e)):bs(t)?T4(t):Zp(C4(da(e)))}function M4(e){var t=kl(th(e)),r=["absolute","fixed"].indexOf(_i(e).position)>=0,n=r&&an(e)?Ku(e):e;return bs(n)?t.filter(function(i){return bs(i)&&_M(i,n)&&Kn(i)!=="body"}):[]}function A4(e,t,r){var n=t==="clippingParents"?M4(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=Ib(e,l);return s.top=oo(u.top,s.top),s.right=od(u.right,s.right),s.bottom=od(u.bottom,s.bottom),s.left=oo(u.left,s.left),s},Ib(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function MM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?Ss(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case Sr:l={x:o,y:t.y-r.height};break;case ln:l={x:o,y:t.y+t.height};break;case un:l={x:t.x+t.width,y:s};break;case Cr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?wy(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case _s:l[u]=l[u]-(t[c]/2-r[c]/2);break;case mu:l[u]=l[u]+(t[c]/2-r[c]/2);break}}return l}function yu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?X3:a,s=r.rootBoundary,l=s===void 0?mM:s,u=r.elementContext,c=u===void 0?Xs:u,f=r.altBoundary,d=f===void 0?!1:f,h=r.padding,v=h===void 0?0:h,p=wM(typeof v!="number"?v:xM(v,qu)),g=c===Xs?Z3:Xs,m=e.rects.popper,y=e.elements[d?g:c],_=A4(bs(y)?y:y.contextElement||da(e.elements.popper),o,l),b=xs(e.elements.reference),x=MM({reference:b,element:m,strategy:"absolute",placement:i}),w=Zp(Object.assign({},m,x)),S=c===Xs?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},M=e.modifiersData.offset;if(c===Xs&&M){var P=M[i];Object.keys(C).forEach(function(A){var T=[un,ln].indexOf(A)>=0?1:-1,D=[Sr,ln].indexOf(A)>=0?"y":"x";C[A]+=P[D]*T})}return C}function E4(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?yy:l,c=Ss(n),f=c?s?Eb:Eb.filter(function(v){return Ss(v)===c}):qu,d=f.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=f);var h=d.reduce(function(v,p){return v[p]=yu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function P4(e){if(jn(e)===my)return[];var t=Tf(e);return[Db(e),t,Db(t)]}function L4(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=jn(g),y=m===g,_=l||(y||!v?[Tf(g)]:P4(g)),b=[g].concat(_).reduce(function(Ae,V){return Ae.concat(jn(V)===my?E4(t,{placement:V,boundary:c,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,M=b[0],P=0;P=0,H=N?"width":"height",$=yu(t,{placement:A,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),G=N?D?un:Cr:D?ln:Sr;x[H]>w[H]&&(G=Tf(G));var F=Tf(G),R=[];if(a&&R.push($[T]<=0),s&&R.push($[G]<=0,$[F]<=0),R.every(function(Ae){return Ae})){M=A,C=!1;break}S.set(A,R)}if(C)for(var j=v?3:1,re=function(Ae){var V=b.find(function(Q){var W=S.get(Q);if(W)return W.slice(0,Ae).every(function(q){return q})});if(V)return M=V,"break"},oe=j;oe>0;oe--){var ye=re(oe);if(ye==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var D4={name:"flip",enabled:!0,phase:"main",fn:L4,requiresIfExists:["offset"],data:{_skip:!1}};function Ob(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Rb(e){return[Sr,un,ln,Cr].some(function(t){return e[t]>=0})}function I4(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=yu(t,{elementContext:"reference"}),s=yu(t,{altBoundary:!0}),l=Ob(o,n),u=Ob(s,i,a),c=Rb(l),f=Rb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var O4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:I4};function R4(e,t,r){var n=jn(e),i=[Cr,Sr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Cr,un].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function k4(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=yy.reduce(function(c,f){return c[f]=R4(f,t.rects,a),c},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var N4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:k4};function F4(e){var t=e.state,r=e.name;t.modifiersData[r]=MM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var AM={name:"popperOffsets",enabled:!0,phase:"read",fn:F4,data:{}};function B4(e){return e==="x"?"y":"x"}function $4(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=yu(t,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),m=jn(t.placement),y=Ss(t.placement),_=!y,b=wy(m),x=B4(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,P=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(w){if(a){var D,N=b==="y"?Sr:Cr,H=b==="y"?ln:un,$=b==="y"?"height":"width",G=w[b],F=G+g[N],R=G-g[H],j=h?-C[$]/2:0,re=y===_s?S[$]:C[$],oe=y===_s?-C[$]:-S[$],ye=t.elements.arrow,Ae=h&&ye?by(ye):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:bM(),Q=V[N],W=V[H],q=Rl(0,S[$],Ae[$]),le=_?S[$]/2-j-q-Q-P.mainAxis:re-q-Q-P.mainAxis,de=_?-S[$]/2+j+q+W+P.mainAxis:oe+q+W+P.mainAxis,J=t.elements.arrow&&Ku(t.elements.arrow),L=J?b==="y"?J.clientTop||0:J.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=G+le-I-L,U=G+de-I,K=Rl(h?od(F,z):F,G,h?oo(R,U):R);w[b]=K,T[b]=K-G}if(s){var ne,fe=b==="x"?Sr:Cr,te=b==="x"?ln:un,ie=w[x],X=x==="y"?"height":"width",we=ie+g[fe],he=ie-g[te],xe=[Sr,Cr].indexOf(m)!==-1,Oe=(ne=A==null?void 0:A[x])!=null?ne:0,ze=xe?we:ie-S[X]-C[X]-Oe+P.altAxis,rt=xe?ie+S[X]+C[X]-Oe-P.altAxis:he,Je=h&&xe?d4(ze,ie,rt):Rl(h?ze:we,ie,h?rt:he);w[x]=Je,T[x]=Je-ie}t.modifiersData[n]=T}}var H4={name:"preventOverflow",enabled:!0,phase:"main",fn:$4,requiresIfExists:["offset"]};function z4(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function W4(e){return e===Ln(e)||!an(e)?xy(e):z4(e)}function V4(e){var t=e.getBoundingClientRect(),r=ws(t.width)/e.offsetWidth||1,n=ws(t.height)/e.offsetHeight||1;return r!==1||n!==1}function G4(e,t,r){r===void 0&&(r=!1);var n=an(t),i=an(t)&&V4(t),a=da(t),o=xs(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Kn(t)!=="body"||Cy(a))&&(s=W4(t)),an(t)?(l=xs(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Sy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function U4(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function j4(e){var t=U4(e);return s4.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function Y4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function q4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var kb={placement:"bottom",modifiers:[],strategy:"absolute"};function Nb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=Q4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:c,modifiers:f}=E(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],n,{name:"applyStyles",enabled:!1}]}}),a=$m(),o=B({styles:{popper:{position:E(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return Se(i,l=>{const u=E(a);u&&u.setOptions(l)},{deep:!0}),Se([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=EM(l,u,E(i)))}),Xt(()=>{s()}),{state:k(()=>{var l;return{...((l=E(a))==null?void 0:l.state)||{}}}),styles:k(()=>E(o).styles),attributes:k(()=>E(o).attributes),update:()=>{var l;return(l=E(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=E(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>E(a))}};function Q4(e){const t=Object.keys(e.elements),r=jp(t.map(i=>[i,e.styles[i]||{}])),n=jp(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}function Fb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return zu(()=>r()),{registerTimeout:t,cancelTimeout:r}}const Bb={prefix:Math.floor(Math.random()*1e4),current:0},J4=Symbol("elIdInjection"),PM=()=>ct()?Ee(J4,Bb):Bb,My=e=>{const t=PM(),r=gy();return k(()=>E(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let Yo=[];const $b=e=>{const t=e;t.key===Ot.esc&&Yo.forEach(r=>r(t))},eH=e=>{wt(()=>{Yo.length===0&&document.addEventListener("keydown",$b),Nt&&Yo.push(e)}),Xt(()=>{Yo=Yo.filter(t=>t!==e),Yo.length===0&&Nt&&document.removeEventListener("keydown",$b)})};let Hb;const LM=()=>{const e=gy(),t=PM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},tH=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},rH=()=>{const{id:e,selector:t}=LM();return Gd(()=>{Nt&&!Hb&&!document.body.querySelector(t.value)&&(Hb=tH(e.value))}),{id:e,selector:t}},nH=tt({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),DM=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Fb(),{registerTimeout:o,cancelTimeout:s}=Fb();return{onOpen:c=>{a(()=>{n(c);const f=E(r);$t(f)&&f>0&&o(()=>{i(c)},f)},E(e))},onClose:c=>{s(),a(()=>{i(c)},E(t))}}},IM=Symbol("elForwardRef"),iH=e=>{At(IM,{setForwardRef:r=>{e.value=r}})},aH=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),zb=B(0),OM=2e3,RM=Symbol("zIndexContextKey"),Ay=e=>{const t=e||Ee(RM,void 0),r=k(()=>{const a=E(t);return $t(a)?a:OM}),n=k(()=>r.value+zb.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(zb.value++,n.value)}},Xu=eh({type:String,values:Yu,required:!1}),kM=Symbol("size"),oH=()=>{const e=Ee(kM,{});return k(()=>E(e.size)||"")},NM=Symbol(),sd=B();function Ey(e,t=void 0){const r=ct()?Ee(NM,sd):sd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function sH(e,t){const r=Ey(),n=Fe(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Xp})),i=py(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=Ay(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||OM})),o=k(()=>{var s;return E(t)||((s=r.value)==null?void 0:s.size)||""});return FM(k(()=>E(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const FM=(e,t,r=!1)=>{var n;const i=!!ct(),a=i?Ey():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?At:void 0;if(!o)return;const s=k(()=>{const l=E(e);return a!=null&&a.value?lH(a.value,l):l});return o(NM,s),o(vM,k(()=>s.value.locale)),o(pM,k(()=>s.value.namespace)),o(RM,k(()=>s.value.zIndex)),o(kM,{size:k(()=>s.value.size||"")}),(r||!sd.value)&&(sd.value=s.value),s},lH=(e,t)=>{var r;const n=[...new Set([...Tb(e),...Tb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},uH=tt({a11y:{type:Boolean,default:!0},locale:{type:Le(Object)},size:Xu,button:{type:Le(Object)},experimentalFeatures:{type:Le(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Le(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),Qp={};ce({name:"ElConfigProvider",props:uH,setup(e,{slots:t}){Se(()=>e.message,n=>{Object.assign(Qp,n??{})},{immediate:!0,deep:!0});const r=FM(e);return()=>$e(t,"default",{config:r==null?void 0:r.value})}});var Ze=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const cH=tt({size:{type:Le([Number,String])},color:{type:String}}),fH=ce({name:"ElIcon",inheritAttrs:!1}),dH=ce({...fH,props:cH,setup(e){const t=e,r=Fe("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:ad(i)?void 0:po(i),"--color":a}});return(i,a)=>(Y(),me("i",ca({class:E(r).b(),style:E(n)},i.$attrs),[$e(i.$slots,"default")],16))}});var hH=Ze(dH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const lr=hr(hH),Bs=Symbol("formContextKey"),mo=Symbol("formItemContextKey"),ia=(e,t={})=>{const r=B(void 0),n=t.prop?r:gM("size"),i=t.global?r:oH(),a=t.form?{size:void 0}:Ee(Bs,void 0),o=t.formItem?{size:void 0}:Ee(mo,void 0);return k(()=>n.value||E(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},rh=e=>{const t=gM("disabled"),r=Ee(Bs,void 0);return k(()=>t.value||E(e)||(r==null?void 0:r.disabled)||!1)},Zu=()=>{const e=Ee(Bs,void 0),t=Ee(mo,void 0);return{form:e,formItem:t}},Py=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=B(!1)),n||(n=B(!1));const i=B();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return wt(()=>{a=Se([tn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:My().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),ks(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},vH=tt({size:{type:String,values:Yu},disabled:Boolean}),pH=tt({...vH,model:Object,rules:{type:Le(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),gH={validate:(e,t,r)=>(be(e)||He(e))&&Br(t)&&He(r)};function mH(){const e=B([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const yc=(e,t)=>{const r=$p(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},yH="ElForm",_H=ce({name:yH}),bH=ce({..._H,props:pH,emits:gH,setup(e,{expose:t,emit:r}){const n=e,i=[],a=ia(),o=Fe("form"),s=k(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},c=(y=[])=>{n.model&&yc(i,y).forEach(_=>_.resetField())},f=(y=[])=>{yc(i,y).forEach(_=>_.clearValidate())},d=k(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=yc(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const x of _)try{await x.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!De(_);try{const x=await p(y);return x===!0&&(_==null||_(x)),x}catch(x){if(x instanceof Error)throw x;const w=x;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=yc(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView(n.scrollIntoViewOptions))};return Se(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),At(Bs,fn({...$d(n),emit:r,resetFields:c,clearValidate:f,validateField:g,addField:l,removeField:u,...mH()})),t({validate:v,validateField:g,resetFields:c,clearValidate:f,scrollToField:m}),(y,_)=>(Y(),me("form",{class:ue(E(s))},[$e(y.$slots,"default")],2))}});var wH=Ze(bH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Mf(e,t,r){return SH()?Mf=Reflect.construct.bind():Mf=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&_u(u,o.prototype),u},Mf.apply(null,arguments)}function CH(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function eg(e){var t=typeof Map=="function"?new Map:void 0;return eg=function(n){if(n===null||!CH(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Mf(n,arguments,Jp(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),_u(i,n)},eg(e)}var TH=/%[sdj%]/g,MH=function(){};typeof process<"u"&&process.env;function tg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function kr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function AH(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function zt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||AH(t)&&typeof e=="string"&&!e)}function EH(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function Wb(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,st in e?fD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var hD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,r)=>(dD(e,typeof t!="symbol"?t+"":t,r),r);var Tre=hD((Nr,Fr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Em(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function St(e){if(be(e)){const t={};for(let r=0;r{if(r){const n=r.split(pD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ue(e){let t="";if(He(e))t=e;else if(be(e))for(let r=0;rOd(r,t))}const Me=e=>He(e)?e:e==null?"":be(e)||Xe(e)&&(e.toString===mC||!De(e.toString))?JSON.stringify(e,gC,2):String(e),gC=(e,t)=>t&&t.__v_isRef?gC(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:kd(t)?{[`Set(${t.size})`]:[...t.values()]}:Xe(t)&&!be(t)&&!yC(t)?String(t):t,yt={},ns=[],ur=()=>{},wD=()=>!1,xD=/^on[^a-z]/,Rd=e=>xD.test(e),Pm=e=>e.startsWith("onUpdate:"),Gt=Object.assign,Lm=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},SD=Object.prototype.hasOwnProperty,We=(e,t)=>SD.call(e,t),be=Array.isArray,is=e=>Bu(e)==="[object Map]",kd=e=>Bu(e)==="[object Set]",K0=e=>Bu(e)==="[object Date]",De=e=>typeof e=="function",He=e=>typeof e=="string",tu=e=>typeof e=="symbol",Xe=e=>e!==null&&typeof e=="object",jf=e=>Xe(e)&&De(e.then)&&De(e.catch),mC=Object.prototype.toString,Bu=e=>mC.call(e),CD=e=>Bu(e).slice(8,-1),yC=e=>Bu(e)==="[object Object]",Dm=e=>He(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mf=Em(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Nd=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},TD=/-(\w)/g,An=Nd(e=>e.replace(TD,(t,r)=>r?r.toUpperCase():"")),MD=/\B([A-Z])/g,xo=Nd(e=>e.replace(MD,"-$1").toLowerCase()),Fd=Nd(e=>e.charAt(0).toUpperCase()+e.slice(1)),yf=Nd(e=>e?`on${Fd(e)}`:""),ru=(e,t)=>!Object.is(e,t),_f=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},AD=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ED=e=>{const t=He(e)?Number(e):NaN;return isNaN(t)?e:t};let X0;const PD=()=>X0||(X0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Or;class LD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Or,!t&&Or&&(this.index=(Or.scopes||(Or.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Or;try{return Or=this,t()}finally{Or=r}}}on(){Or=this}off(){Or=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},bC=e=>(e.w&ea)>0,wC=e=>(e.n&ea)>0,OD=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(c==="length"||c>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":be(e)?Dm(r)&&s.push(o.get("length")):(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"delete":be(e)||(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"set":is(e)&&s.push(o.get(no));break}if(s.length===1)s[0]&&Tp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);Tp(Im(l))}}function Tp(e,t){const r=be(e)?e:[...e];for(const n of r)n.computed&&Q0(n);for(const n of r)n.computed||Q0(n)}function Q0(e,t){(e!==bn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function kD(e,t){var r;return(r=qf.get(e))===null||r===void 0?void 0:r.get(t)}const ND=Em("__proto__,__v_isRef,__isVue"),CC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(tu)),FD=Rm(),BD=Rm(!1,!0),$D=Rm(!0),J0=HD();function HD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ke(this);for(let a=0,o=this.length;a{e[t]=function(...r){Os();const n=Ke(this)[t].apply(this,r);return Rs(),n}}),e}function zD(e){const t=Ke(this);return Mr(t,"has",e),t.hasOwnProperty(e)}function Rm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?nI:PC:t?EC:AC).get(n))return n;const o=be(n);if(!e){if(o&&We(J0,i))return Reflect.get(J0,i,a);if(i==="hasOwnProperty")return zD}const s=Reflect.get(n,i,a);return(tu(i)?CC.has(i):ND(i))||(e||Mr(n,"get",i),t)?s:Ct(s)?o&&Dm(i)?s:s.value:Xe(s)?e?$u(s):fn(s):s}}const WD=TC(),VD=TC(!0);function TC(e=!1){return function(r,n,i,a){let o=r[n];if(vs(o)&&Ct(o)&&!Ct(i))return!1;if(!e&&(!Kf(i)&&!vs(i)&&(o=Ke(o),i=Ke(i)),!be(r)&&Ct(o)&&!Ct(i)))return o.value=i,!0;const s=be(r)&&Dm(n)?Number(n)e,Bd=e=>Reflect.getPrototypeOf(e);function uc(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ke(e),a=Ke(t);r||(t!==a&&Mr(i,"get",t),Mr(i,"get",a));const{has:o}=Bd(i),s=n?km:r?Bm:nu;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function cc(e,t=!1){const r=this.__v_raw,n=Ke(r),i=Ke(e);return t||(e!==i&&Mr(n,"has",e),Mr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function fc(e,t=!1){return e=e.__v_raw,!t&&Mr(Ke(e),"iterate",no),Reflect.get(e,"size",e)}function e_(e){e=Ke(e);const t=Ke(this);return Bd(t).has.call(t,e)||(t.add(e),gi(t,"add",e,e)),this}function t_(e,t){t=Ke(t);const r=Ke(this),{has:n,get:i}=Bd(r);let a=n.call(r,e);a||(e=Ke(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?ru(t,o)&&gi(r,"set",e,t):gi(r,"add",e,t),this}function r_(e){const t=Ke(this),{has:r,get:n}=Bd(t);let i=r.call(t,e);i||(e=Ke(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&gi(t,"delete",e,void 0),a}function n_(){const e=Ke(this),t=e.size!==0,r=e.clear();return t&&gi(e,"clear",void 0,void 0),r}function dc(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ke(o),l=t?km:e?Bm:nu;return!e&&Mr(s,"iterate",no),o.forEach((u,c)=>n.call(i,l(u),l(c),a))}}function hc(e,t,r){return function(...n){const i=this.__v_raw,a=Ke(i),o=is(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),c=r?km:t?Bm:nu;return!t&&Mr(a,"iterate",l?Cp:no),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Pi(e){return function(...t){return e==="delete"?!1:this}}function KD(){const e={get(a){return uc(this,a)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!1)},t={get(a){return uc(this,a,!1,!0)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!0)},r={get(a){return uc(this,a,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!1)},n={get(a){return uc(this,a,!0,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=hc(a,!1,!1),r[a]=hc(a,!0,!1),t[a]=hc(a,!1,!0),n[a]=hc(a,!0,!0)}),[e,r,t,n]}const[XD,ZD,QD,JD]=KD();function Nm(e,t){const r=t?e?JD:QD:e?ZD:XD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(We(r,i)&&i in n?r:n,i,a)}const eI={get:Nm(!1,!1)},tI={get:Nm(!1,!0)},rI={get:Nm(!0,!1)},AC=new WeakMap,EC=new WeakMap,PC=new WeakMap,nI=new WeakMap;function iI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function aI(e){return e.__v_skip||!Object.isExtensible(e)?0:iI(CD(e))}function fn(e){return vs(e)?e:Fm(e,!1,MC,eI,AC)}function LC(e){return Fm(e,!1,qD,tI,EC)}function $u(e){return Fm(e,!0,YD,rI,PC)}function Fm(e,t,r,n,i){if(!Xe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=aI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function as(e){return vs(e)?as(e.__v_raw):!!(e&&e.__v_isReactive)}function vs(e){return!!(e&&e.__v_isReadonly)}function Kf(e){return!!(e&&e.__v_isShallow)}function DC(e){return as(e)||vs(e)}function Ke(e){const t=e&&e.__v_raw;return t?Ke(t):e}function IC(e){return Yf(e,"__v_skip",!0),e}const nu=e=>Xe(e)?fn(e):e,Bm=e=>Xe(e)?$u(e):e;function OC(e){Xi&&bn&&(e=Ke(e),SC(e.dep||(e.dep=Im())))}function RC(e,t){e=Ke(e);const r=e.dep;r&&Tp(r)}function Ct(e){return!!(e&&e.__v_isRef===!0)}function B(e){return kC(e,!1)}function $m(e){return kC(e,!0)}function kC(e,t){return Ct(e)?e:new oI(e,t)}class oI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ke(t),this._value=r?t:nu(t)}get value(){return OC(this),this._value}set value(t){const r=this.__v_isShallow||Kf(t)||vs(t);t=r?t:Ke(t),ru(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:nu(t),RC(this))}}function E(e){return Ct(e)?e.value:e}const sI={get:(e,t,r)=>E(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Ct(i)&&!Ct(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function NC(e){return as(e)?e:new Proxy(e,sI)}function $d(e){const t=be(e)?new Array(e.length):{};for(const r in e)t[r]=tn(e,r);return t}class lI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return kD(Ke(this._object),this._key)}}function tn(e,t,r){const n=e[t];return Ct(n)?n:new lI(e,t,r)}var FC;class uI{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[FC]=!1,this._dirty=!0,this.effect=new Om(t,()=>{this._dirty||(this._dirty=!0,RC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ke(this);return OC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}FC="__v_isReadonly";function cI(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=ur):(n=e.get,i=e.set),new uI(n,i,a||!i,r)}function fI(e,...t){}function Zi(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Hd(a,t,r)}return i}function rn(e,t,r,n){if(De(e)){const a=Zi(e,t,r,n);return a&&jf(a)&&a.catch(o=>{Hd(o,t,r)}),a}const i=[];for(let a=0;a>>1;au(tr[n])$n&&tr.splice(t,1)}function pI(e){be(e)?os.push(...e):(!ci||!ci.includes(e,e.allowRecurse?Ga+1:Ga))&&os.push(e),$C()}function i_(e,t=iu?$n+1:0){for(;tau(r)-au(n)),Ga=0;Gae.id==null?1/0:e.id,gI=(e,t)=>{const r=au(e)-au(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function zC(e){Mp=!1,iu=!0,tr.sort(gI);const t=ur;try{for($n=0;$nHe(h)?h.trim():h)),f&&(i=r.map(AD))}let s,l=n[s=yf(t)]||n[s=yf(An(t))];!l&&a&&(l=n[s=yf(xo(t))]),l&&rn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,rn(u,e,6,i)}}function WC(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const c=WC(u,t,!0);c&&(s=!0,Gt(o,c))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(Xe(e)&&n.set(e,null),null):(be(a)?a.forEach(l=>o[l]=null):Gt(o,a),Xe(e)&&n.set(e,o),o)}function zd(e,t){return!e||!Rd(t)?!1:(t=t.slice(2).replace(/Once$/,""),We(e,t[0].toLowerCase()+t.slice(1))||We(e,xo(t))||We(e,t))}let qt=null,VC=null;function Xf(e){const t=qt;return qt=e,VC=e&&e.type.__scopeId||null,t}function Z(e,t=qt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&g_(-1);const a=Xf(t);let o;try{o=e(...i)}finally{Xf(a),n._d&&g_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ih(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Xf(e);try{if(r.shapeFlag&4){const b=i||n;g=Bn(c.call(b,b,f,a,h,d,v)),m=l}else{const b=t;g=Bn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:yI(l)}}catch(b){Dl.length=0,Hd(b,e,1),g=ee(xr)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(Pm)&&(m=_I(m,o)),_=mi(_,m))}return r.dirs&&(_=mi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Xf(y),g}const yI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Rd(r))&&((t||(t={}))[r]=e[r]);return t},_I=(e,t)=>{const r={};for(const n in e)(!Pm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function bI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?a_(n,o,u):!!o;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function SI(e,t){t&&t.pendingBranch?be(e)?t.effects.push(...e):t.effects.push(e):pI(e)}function At(e,t){if(It){let r=It.provides;const n=It.parent&&It.parent.provides;n===r&&(r=It.provides=Object.create(n)),r[e]=t}}function Ee(e,t,r=!1){const n=It||qt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&De(t)?t.call(n.proxy):t}}function io(e,t){return Wm(e,null,t)}const vc={};function Se(e,t,r){return Wm(e,t,r)}function Wm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=yt){const s=_C()===(It==null?void 0:It.scope)?It:null;let l,u=!1,c=!1;if(Ct(e)?(l=()=>e.value,u=Kf(e)):as(e)?(l=()=>e,n=!0):be(e)?(c=!0,u=e.some(_=>as(_)||Kf(_)),l=()=>e.map(_=>{if(Ct(_))return _.value;if(as(_))return Xa(_);if(De(_))return Zi(_,s,2)})):De(e)?t?l=()=>Zi(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return f&&f(),rn(e,s,3,[d])}:l=ur,t&&n){const _=l;l=()=>Xa(_())}let f,d=_=>{f=m.onStop=()=>{Zi(_,s,4)}},h;if(uu)if(d=ur,t?r&&rn(t,s,3,[l(),c?[]:void 0,d]):l(),i==="sync"){const _=vO();h=_.__watcherHandles||(_.__watcherHandles=[])}else return ur;let v=c?new Array(e.length).fill(vc):vc;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(c?_.some((b,x)=>ru(b,v[x])):ru(_,v)))&&(f&&f(),rn(t,s,3,[_,v===vc?void 0:c&&v[0]===vc?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>yr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>zm(p));const m=new Om(l,g);t?r?p():v=m.run():i==="post"?yr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&Lm(s.scope.effects,m)};return h&&h.push(y),y}function CI(e,t,r){const n=this.proxy,i=He(e)?e.includes(".")?GC(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=It;ps(this);const s=Wm(i,a.bind(n),r);return o?ps(o):ao(),s}function GC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Xa(r,t)});else if(yC(e))for(const r in e)Xa(e[r],t);return e}function UC(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return wt(()=>{e.isMounted=!0}),Xt(()=>{e.isUnmounting=!0}),e}const Wr=[Function,Array],TI={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Wr,onEnter:Wr,onAfterEnter:Wr,onEnterCancelled:Wr,onBeforeLeave:Wr,onLeave:Wr,onAfterLeave:Wr,onLeaveCancelled:Wr,onBeforeAppear:Wr,onAppear:Wr,onAfterAppear:Wr,onAppearCancelled:Wr},setup(e,{slots:t}){const r=ct(),n=UC();let i;return()=>{const a=t.default&&Vm(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==xr){o=p;break}}const s=Ke(e),{mode:l}=s;if(n.isLeaving)return Oh(o);const u=o_(o);if(!u)return Oh(o);const c=ou(u,s,n,r);su(u,c);const f=r.subTree,d=f&&o_(f);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==xr&&(!Ua(u,d)||h)){const p=ou(d,s,n,r);if(su(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Oh(o);l==="in-out"&&u.type!==xr&&(p.delayLeave=(g,m,y)=>{const _=YC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=y})}return o}}},jC=TI;function YC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function ou(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=YC(r,e),x=(C,M)=>{C&&rn(C,n,9,M)},w=(C,M)=>{const P=M[1];x(C,M),be(C)?C.every(A=>A.length<=1)&&P():C.length<=1&&P()},S={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C._leaveCb&&C._leaveCb(!0);const P=b[_];P&&Ua(e,P)&&P.el._leaveCb&&P.el._leaveCb(),x(M,[C])},enter(C){let M=l,P=u,A=c;if(!r.isMounted)if(i)M=g||l,P=m||u,A=y||c;else return;let T=!1;const D=C._enterCb=N=>{T||(T=!0,N?x(A,[C]):x(P,[C]),S.delayedLeave&&S.delayedLeave(),C._enterCb=void 0)};M?w(M,[C,D]):D()},leave(C,M){const P=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return M();x(f,[C]);let A=!1;const T=C._leaveCb=D=>{A||(A=!0,M(),D?x(v,[C]):x(h,[C]),C._leaveCb=void 0,b[P]===e&&delete b[P])};b[P]=e,d?w(d,[C,T]):T()},clone(C){return ou(C,t,r,n)}};return S}function Oh(e){if(Wd(e))return e=mi(e),e.children=null,e}function o_(e){return Wd(e)?e.children?e.children[0]:void 0:e}function su(e,t){e.shapeFlag&6&&e.component?su(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vm(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Wd=e=>e.type.__isKeepAlive;function MI(e,t){KC(e,"a",t)}function qC(e,t){KC(e,"da",t)}function KC(e,t,r=It){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Vd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Wd(i.parent.vnode)&&AI(n,t,r,i),i=i.parent}}function AI(e,t,r,n){const i=Vd(t,e,n,!0);ks(()=>{Lm(n[t],i)},r)}function Vd(e,t,r=It,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Os(),ps(r);const s=rn(t,r,e,o);return ao(),Rs(),s});return n?i.unshift(a):i.push(a),a}}const Si=e=>(t,r=It)=>(!uu||e==="sp")&&Vd(e,(...n)=>t(...n),r),Gd=Si("bm"),wt=Si("m"),EI=Si("bu"),Hu=Si("u"),Xt=Si("bum"),ks=Si("um"),PI=Si("sp"),LI=Si("rtg"),DI=Si("rtc");function II(e,t=It){Vd("ec",e,t)}function nr(e,t){const r=qt;if(r===null)return e;const n=jd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sta(t)?!(t.type===xr||t.type===pt&&!QC(t.children)):!0)?e:null}function RI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:yf(n)]=e[n];return r}const Ap=e=>e?uT(e)?jd(e)||e.proxy:Ap(e.parent):null,Pl=Gt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ap(e.parent),$root:e=>Ap(e.root),$emit:e=>e.emit,$options:e=>jm(e),$forceUpdate:e=>e.f||(e.f=()=>zm(e.update)),$nextTick:e=>e.n||(e.n=Ft.bind(e.proxy)),$watch:e=>CI.bind(e)}),Rh=(e,t)=>e!==yt&&!e.__isScriptSetup&&We(e,t),kI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Rh(n,t))return o[t]=1,n[t];if(i!==yt&&We(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&We(u,t))return o[t]=3,a[t];if(r!==yt&&We(r,t))return o[t]=4,r[t];Ep&&(o[t]=0)}}const c=Pl[t];let f,d;if(c)return t==="$attrs"&&Mr(e,"get",t),c(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(r!==yt&&We(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,We(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Rh(i,t)?(i[t]=r,!0):n!==yt&&We(n,t)?(n[t]=r,!0):We(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==yt&&We(e,o)||Rh(t,o)||(s=a[0])&&We(s,o)||We(n,o)||We(Pl,o)||We(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:We(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let Ep=!0;function NI(e){const t=jm(e),r=e.proxy,n=e.ctx;Ep=!1,t.beforeCreate&&u_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:P,inheritAttrs:A,components:T,directives:D,filters:N}=t;if(u&&FI(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const G in o){const F=o[G];De(F)&&(n[G]=F.bind(r))}if(i){const G=i.call(r,r);Xe(G)&&(e.data=fn(G))}if(Ep=!0,a)for(const G in a){const F=a[G],R=De(F)?F.bind(r,r):De(F.get)?F.get.bind(r,r):ur,j=!De(F)&&De(F.set)?F.set.bind(r):ur,re=k({get:R,set:j});Object.defineProperty(n,G,{enumerable:!0,configurable:!0,get:()=>re.value,set:oe=>re.value=oe})}if(s)for(const G in s)JC(s[G],n,r,G);if(l){const G=De(l)?l.call(r):l;Reflect.ownKeys(G).forEach(F=>{At(F,G[F])})}c&&u_(c,e,"c");function $(G,F){be(F)?F.forEach(R=>G(R.bind(r))):F&&G(F.bind(r))}if($(Gd,f),$(wt,d),$(EI,h),$(Hu,v),$(MI,p),$(qC,g),$(II,C),$(DI,w),$(LI,S),$(Xt,y),$(ks,b),$(PI,M),be(P))if(P.length){const G=e.exposed||(e.exposed={});P.forEach(F=>{Object.defineProperty(G,F,{get:()=>r[F],set:R=>r[F]=R})})}else e.exposed||(e.exposed={});x&&e.render===ur&&(e.render=x),A!=null&&(e.inheritAttrs=A),T&&(e.components=T),D&&(e.directives=D)}function FI(e,t,r=ur,n=!1){be(e)&&(e=Pp(e));for(const i in e){const a=e[i];let o;Xe(a)?"default"in a?o=Ee(a.from||i,a.default,!0):o=Ee(a.from||i):o=Ee(a),Ct(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function u_(e,t,r){rn(be(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function JC(e,t,r,n){const i=n.includes(".")?GC(r,n):()=>r[n];if(He(e)){const a=t[e];De(a)&&Se(i,a)}else if(De(e))Se(i,e.bind(r));else if(Xe(e))if(be(e))e.forEach(a=>JC(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&Se(i,a,e)}}function jm(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>Zf(l,u,o,!0)),Zf(l,t,o)),Xe(t)&&a.set(t,l),l}function Zf(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Zf(e,a,r,!0),i&&i.forEach(o=>Zf(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=BI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const BI={data:c_,props:za,emits:za,methods:za,computed:za,beforeCreate:ir,created:ir,beforeMount:ir,mounted:ir,beforeUpdate:ir,updated:ir,beforeDestroy:ir,beforeUnmount:ir,destroyed:ir,unmounted:ir,activated:ir,deactivated:ir,errorCaptured:ir,serverPrefetch:ir,components:za,directives:za,watch:HI,provide:c_,inject:$I};function c_(e,t){return t?e?function(){return Gt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function $I(e,t){return za(Pp(e),Pp(t))}function Pp(e){if(be(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=tT(f,t,!0);Gt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!a&&!l)return Xe(e)&&n.set(e,ns),ns;if(be(a))for(let c=0;c-1,h[1]=p<0||v-1||We(h,"default"))&&s.push(f)}}}const u=[o,s];return Xe(e)&&n.set(e,u),u}function f_(e){return e[0]!=="$"}function d_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function h_(e,t){return d_(e)===d_(t)}function v_(e,t){return be(t)?t.findIndex(r=>h_(r,e)):De(t)&&h_(t,e)?0:-1}const rT=e=>e[0]==="_"||e==="$stable",Ym=e=>be(e)?e.map(Bn):[Bn(e)],VI=(e,t,r)=>{if(t._n)return t;const n=Z((...i)=>Ym(t(...i)),r);return n._c=!1,n},nT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(rT(i))continue;const a=e[i];if(De(a))t[i]=VI(i,a,n);else if(a!=null){const o=Ym(a);t[i]=()=>o}}},iT=(e,t)=>{const r=Ym(t);e.slots.default=()=>r},GI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ke(t),Yf(t,"_",r)):nT(t,e.slots={})}else e.slots={},t&&iT(e,t);Yf(e.slots,Ud,1)},UI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=yt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Gt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,nT(t,i)),o=t}else t&&(iT(e,t),o={default:1});if(a)for(const s in i)!rT(s)&&!(s in o)&&delete i[s]};function aT(){return{app:null,config:{isNativeTag:wD,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let jI=0;function YI(e,t){return function(n,i=null){De(n)||(n=Object.assign({},n)),i!=null&&!Xe(i)&&(i=null);const a=aT(),o=new Set;let s=!1;const l=a.app={_uid:jI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:pO,get config(){return a.config},set config(u){},use(u,...c){return o.has(u)||(u&&De(u.install)?(o.add(u),u.install(l,...c)):De(u)&&(o.add(u),u(l,...c))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,c){return c?(a.components[u]=c,l):a.components[u]},directive(u,c){return c?(a.directives[u]=c,l):a.directives[u]},mount(u,c,f){if(!s){const d=ee(n,i);return d.appContext=a,c&&t?t(d,u):e(d,u,f),s=!0,l._container=u,u.__vue_app__=l,jd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,c){return a.provides[u]=c,l}};return l}}function Dp(e,t,r,n,i=!1){if(be(e)){e.forEach((d,h)=>Dp(d,t&&(be(t)?t[h]:t),r,n,i));return}if(El(n)&&!i)return;const a=n.shapeFlag&4?jd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,c=s.refs===yt?s.refs={}:s.refs,f=s.setupState;if(u!=null&&u!==l&&(He(u)?(c[u]=null,We(f,u)&&(f[u]=null)):Ct(u)&&(u.value=null)),De(l))Zi(l,s,12,[o,c]);else{const d=He(l),h=Ct(l);if(d||h){const v=()=>{if(e.f){const p=d?We(f,l)?f[l]:c[l]:l.value;i?be(p)&&Lm(p,a):be(p)?p.includes(a)||p.push(a):d?(c[l]=[a],We(f,l)&&(f[l]=c[l])):(l.value=[a],e.k&&(c[e.k]=l.value))}else d?(c[l]=o,We(f,l)&&(f[l]=o)):h&&(l.value=o,e.k&&(c[e.k]=o))};o?(v.id=-1,yr(v,r)):v()}}}const yr=SI;function qI(e){return KI(e)}function KI(e,t){const r=PD();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=ur,insertStaticContent:v}=e,p=(L,I,z,U=null,K=null,ne=null,fe=!1,te=null,ie=!!I.dynamicChildren)=>{if(L===I)return;L&&!Ua(L,I)&&(U=W(L),oe(L,K,ne,!0),L=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:X,ref:we,shapeFlag:he}=I;switch(X){case Ns:g(L,I,z,U);break;case xr:m(L,I,z,U);break;case kh:L==null&&y(I,z,U,fe);break;case pt:T(L,I,z,U,K,ne,fe,te,ie);break;default:he&1?x(L,I,z,U,K,ne,fe,te,ie):he&6?D(L,I,z,U,K,ne,fe,te,ie):(he&64||he&128)&&X.process(L,I,z,U,K,ne,fe,te,ie,le)}we!=null&&K&&Dp(we,L&&L.ref,ne,I||L,!I)},g=(L,I,z,U)=>{if(L==null)n(I.el=s(I.children),z,U);else{const K=I.el=L.el;I.children!==L.children&&u(K,I.children)}},m=(L,I,z,U)=>{L==null?n(I.el=l(I.children||""),z,U):I.el=L.el},y=(L,I,z,U)=>{[L.el,L.anchor]=v(L.children,I,z,U,L.el,L.anchor)},_=({el:L,anchor:I},z,U)=>{let K;for(;L&&L!==I;)K=d(L),n(L,z,U),L=K;n(I,z,U)},b=({el:L,anchor:I})=>{let z;for(;L&&L!==I;)z=d(L),i(L),L=z;i(I)},x=(L,I,z,U,K,ne,fe,te,ie)=>{fe=fe||I.type==="svg",L==null?w(I,z,U,K,ne,fe,te,ie):M(L,I,K,ne,fe,te,ie)},w=(L,I,z,U,K,ne,fe,te)=>{let ie,X;const{type:we,props:he,shapeFlag:xe,transition:Oe,dirs:ze}=L;if(ie=L.el=o(L.type,ne,he&&he.is,he),xe&8?c(ie,L.children):xe&16&&C(L.children,ie,null,U,K,ne&&we!=="foreignObject",fe,te),ze&&ha(L,null,U,"created"),S(ie,L,L.scopeId,fe,U),he){for(const Je in he)Je!=="value"&&!mf(Je)&&a(ie,Je,null,he[Je],ne,L.children,U,K,Q);"value"in he&&a(ie,"value",null,he.value),(X=he.onVnodeBeforeMount)&&On(X,U,L)}ze&&ha(L,null,U,"beforeMount");const rt=(!K||K&&!K.pendingBranch)&&Oe&&!Oe.persisted;rt&&Oe.beforeEnter(ie),n(ie,I,z),((X=he&&he.onVnodeMounted)||rt||ze)&&yr(()=>{X&&On(X,U,L),rt&&Oe.enter(ie),ze&&ha(L,null,U,"mounted")},K)},S=(L,I,z,U,K)=>{if(z&&h(L,z),U)for(let ne=0;ne{for(let X=ie;X{const te=I.el=L.el;let{patchFlag:ie,dynamicChildren:X,dirs:we}=I;ie|=L.patchFlag&16;const he=L.props||yt,xe=I.props||yt;let Oe;z&&va(z,!1),(Oe=xe.onVnodeBeforeUpdate)&&On(Oe,z,I,L),we&&ha(I,L,z,"beforeUpdate"),z&&va(z,!0);const ze=K&&I.type!=="foreignObject";if(X?P(L.dynamicChildren,X,te,z,U,ze,ne):fe||F(L,I,te,null,z,U,ze,ne,!1),ie>0){if(ie&16)A(te,I,he,xe,z,U,K);else if(ie&2&&he.class!==xe.class&&a(te,"class",null,xe.class,K),ie&4&&a(te,"style",he.style,xe.style,K),ie&8){const rt=I.dynamicProps;for(let Je=0;Je{Oe&&On(Oe,z,I,L),we&&ha(I,L,z,"updated")},U)},P=(L,I,z,U,K,ne,fe)=>{for(let te=0;te{if(z!==U){if(z!==yt)for(const te in z)!mf(te)&&!(te in U)&&a(L,te,z[te],null,fe,I.children,K,ne,Q);for(const te in U){if(mf(te))continue;const ie=U[te],X=z[te];ie!==X&&te!=="value"&&a(L,te,X,ie,fe,I.children,K,ne,Q)}"value"in U&&a(L,"value",z.value,U.value)}},T=(L,I,z,U,K,ne,fe,te,ie)=>{const X=I.el=L?L.el:s(""),we=I.anchor=L?L.anchor:s("");let{patchFlag:he,dynamicChildren:xe,slotScopeIds:Oe}=I;Oe&&(te=te?te.concat(Oe):Oe),L==null?(n(X,z,U),n(we,z,U),C(I.children,z,we,K,ne,fe,te,ie)):he>0&&he&64&&xe&&L.dynamicChildren?(P(L.dynamicChildren,xe,z,K,ne,fe,te),(I.key!=null||K&&I===K.subTree)&&qm(L,I,!0)):F(L,I,z,we,K,ne,fe,te,ie)},D=(L,I,z,U,K,ne,fe,te,ie)=>{I.slotScopeIds=te,L==null?I.shapeFlag&512?K.ctx.activate(I,z,U,fe,ie):N(I,z,U,K,ne,fe,ie):H(L,I,ie)},N=(L,I,z,U,K,ne,fe)=>{const te=L.component=oO(L,U,K);if(Wd(L)&&(te.ctx.renderer=le),sO(te),te.asyncDep){if(K&&K.registerDep(te,$),!L.el){const ie=te.subTree=ee(xr);m(null,ie,I,z)}return}$(te,L,I,z,K,ne,fe)},H=(L,I,z)=>{const U=I.component=L.component;if(bI(L,I,z))if(U.asyncDep&&!U.asyncResolved){G(U,I,z);return}else U.next=I,vI(U.update),U.update();else I.el=L.el,U.vnode=I},$=(L,I,z,U,K,ne,fe)=>{const te=()=>{if(L.isMounted){let{next:we,bu:he,u:xe,parent:Oe,vnode:ze}=L,rt=we,Je;va(L,!1),we?(we.el=ze.el,G(L,we,fe)):we=ze,he&&_f(he),(Je=we.props&&we.props.onVnodeBeforeUpdate)&&On(Je,Oe,we,ze),va(L,!0);const Lt=Ih(L),ve=L.subTree;L.subTree=Lt,p(ve,Lt,f(ve.el),W(ve),L,K,ne),we.el=Lt.el,rt===null&&wI(L,Lt.el),xe&&yr(xe,K),(Je=we.props&&we.props.onVnodeUpdated)&&yr(()=>On(Je,Oe,we,ze),K)}else{let we;const{el:he,props:xe}=I,{bm:Oe,m:ze,parent:rt}=L,Je=El(I);if(va(L,!1),Oe&&_f(Oe),!Je&&(we=xe&&xe.onVnodeBeforeMount)&&On(we,rt,I),va(L,!0),he&&J){const Lt=()=>{L.subTree=Ih(L),J(he,L.subTree,L,K,null)};Je?I.type.__asyncLoader().then(()=>!L.isUnmounted&&Lt()):Lt()}else{const Lt=L.subTree=Ih(L);p(null,Lt,z,U,L,K,ne),I.el=Lt.el}if(ze&&yr(ze,K),!Je&&(we=xe&&xe.onVnodeMounted)){const Lt=I;yr(()=>On(we,rt,Lt),K)}(I.shapeFlag&256||rt&&El(rt.vnode)&&rt.vnode.shapeFlag&256)&&L.a&&yr(L.a,K),L.isMounted=!0,I=z=U=null}},ie=L.effect=new Om(te,()=>zm(X),L.scope),X=L.update=()=>ie.run();X.id=L.uid,va(L,!0),X()},G=(L,I,z)=>{I.component=L;const U=L.vnode.props;L.vnode=I,L.next=null,WI(L,I.props,U,z),UI(L,I.children,z),Os(),i_(),Rs()},F=(L,I,z,U,K,ne,fe,te,ie=!1)=>{const X=L&&L.children,we=L?L.shapeFlag:0,he=I.children,{patchFlag:xe,shapeFlag:Oe}=I;if(xe>0){if(xe&128){j(X,he,z,U,K,ne,fe,te,ie);return}else if(xe&256){R(X,he,z,U,K,ne,fe,te,ie);return}}Oe&8?(we&16&&Q(X,K,ne),he!==X&&c(z,he)):we&16?Oe&16?j(X,he,z,U,K,ne,fe,te,ie):Q(X,K,ne,!0):(we&8&&c(z,""),Oe&16&&C(he,z,U,K,ne,fe,te,ie))},R=(L,I,z,U,K,ne,fe,te,ie)=>{L=L||ns,I=I||ns;const X=L.length,we=I.length,he=Math.min(X,we);let xe;for(xe=0;xewe?Q(L,K,ne,!0,!1,he):C(I,z,U,K,ne,fe,te,ie,he)},j=(L,I,z,U,K,ne,fe,te,ie)=>{let X=0;const we=I.length;let he=L.length-1,xe=we-1;for(;X<=he&&X<=xe;){const Oe=L[X],ze=I[X]=ie?Vi(I[X]):Bn(I[X]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;X++}for(;X<=he&&X<=xe;){const Oe=L[he],ze=I[xe]=ie?Vi(I[xe]):Bn(I[xe]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;he--,xe--}if(X>he){if(X<=xe){const Oe=xe+1,ze=Oexe)for(;X<=he;)oe(L[X],K,ne,!0),X++;else{const Oe=X,ze=X,rt=new Map;for(X=ze;X<=xe;X++){const it=I[X]=ie?Vi(I[X]):Bn(I[X]);it.key!=null&&rt.set(it.key,X)}let Je,Lt=0;const ve=xe-ze+1;let Pe=!1,je=0;const Be=new Array(ve);for(X=0;X=ve){oe(it,K,ne,!0);continue}let Mt;if(it.key!=null)Mt=rt.get(it.key);else for(Je=ze;Je<=xe;Je++)if(Be[Je-ze]===0&&Ua(it,I[Je])){Mt=Je;break}Mt===void 0?oe(it,K,ne,!0):(Be[Mt-ze]=X+1,Mt>=je?je=Mt:Pe=!0,p(it,I[Mt],z,null,K,ne,fe,te,ie),Lt++)}const nt=Pe?XI(Be):ns;for(Je=nt.length-1,X=ve-1;X>=0;X--){const it=ze+X,Mt=I[it],ri=it+1{const{el:ne,type:fe,transition:te,children:ie,shapeFlag:X}=L;if(X&6){re(L.component.subTree,I,z,U);return}if(X&128){L.suspense.move(I,z,U);return}if(X&64){fe.move(L,I,z,le);return}if(fe===pt){n(ne,I,z);for(let he=0;hete.enter(ne),K);else{const{leave:he,delayLeave:xe,afterLeave:Oe}=te,ze=()=>n(ne,I,z),rt=()=>{he(ne,()=>{ze(),Oe&&Oe()})};xe?xe(ne,ze,rt):rt()}else n(ne,I,z)},oe=(L,I,z,U=!1,K=!1)=>{const{type:ne,props:fe,ref:te,children:ie,dynamicChildren:X,shapeFlag:we,patchFlag:he,dirs:xe}=L;if(te!=null&&Dp(te,null,z,L,!0),we&256){I.ctx.deactivate(L);return}const Oe=we&1&&xe,ze=!El(L);let rt;if(ze&&(rt=fe&&fe.onVnodeBeforeUnmount)&&On(rt,I,L),we&6)V(L.component,z,U);else{if(we&128){L.suspense.unmount(z,U);return}Oe&&ha(L,null,I,"beforeUnmount"),we&64?L.type.remove(L,I,z,K,le,U):X&&(ne!==pt||he>0&&he&64)?Q(X,I,z,!1,!0):(ne===pt&&he&384||!K&&we&16)&&Q(ie,I,z),U&&ye(L)}(ze&&(rt=fe&&fe.onVnodeUnmounted)||Oe)&&yr(()=>{rt&&On(rt,I,L),Oe&&ha(L,null,I,"unmounted")},z)},ye=L=>{const{type:I,el:z,anchor:U,transition:K}=L;if(I===pt){Ae(z,U);return}if(I===kh){b(L);return}const ne=()=>{i(z),K&&!K.persisted&&K.afterLeave&&K.afterLeave()};if(L.shapeFlag&1&&K&&!K.persisted){const{leave:fe,delayLeave:te}=K,ie=()=>fe(z,ne);te?te(L.el,ne,ie):ie()}else ne()},Ae=(L,I)=>{let z;for(;L!==I;)z=d(L),i(L),L=z;i(I)},V=(L,I,z)=>{const{bum:U,scope:K,update:ne,subTree:fe,um:te}=L;U&&_f(U),K.stop(),ne&&(ne.active=!1,oe(fe,L,I,z)),te&&yr(te,I),yr(()=>{L.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Q=(L,I,z,U=!1,K=!1,ne=0)=>{for(let fe=ne;feL.shapeFlag&6?W(L.component.subTree):L.shapeFlag&128?L.suspense.next():d(L.anchor||L.el),q=(L,I,z)=>{L==null?I._vnode&&oe(I._vnode,null,null,!0):p(I._vnode||null,L,I,null,null,null,z),i_(),HC(),I._vnode=L},le={p,um:oe,m:re,r:ye,mt:N,mc:C,pc:F,pbc:P,n:W,o:e};let de,J;return t&&([de,J]=t(le)),{render:q,hydrate:de,createApp:YI(q,de)}}function va({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function qm(e,t,r=!1){const n=e.children,i=t.children;if(be(n)&&be(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const ZI=e=>e.__isTeleport,Ll=e=>e&&(e.disabled||e.disabled===""),p_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ip=(e,t)=>{const r=e&&e.to;return He(r)?t?t(r):null:r},QI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ll(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");h(x,r,n),h(w,r,n);const S=t.target=Ip(t.props,v),C=t.targetAnchor=p("");S&&(h(C,S),o=o||p_(S));const M=(P,A)=>{y&16&&c(_,P,A,i,a,o,s,l)};m?M(r,w):S&&M(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Ll(e.props),M=C?r:w,P=C?x:S;if(o=o||p_(w),b?(d(e.dynamicChildren,b,M,i,a,o,s),qm(e,t,!0)):l||f(e,t,M,P,i,a,o,s,!1),m)C||pc(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Ip(t.props,v);A&&pc(t,A,null,u,0)}else C&&pc(t,w,S,u,1)}oT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&a(c),(o||!Ll(d))&&(a(u),s&16))for(let h=0;h0?wn||ns:null,tO(),lu>0&&wn&&wn.push(e),e}function me(e,t,r,n,i,a){return sT(ae(e,t,r,n,i,a,!0))}function _e(e,t,r,n,i){return sT(ee(e,t,r,n,i,!0))}function ta(e){return e?e.__v_isVNode===!0:!1}function Ua(e,t){return e.type===t.type&&e.key===t.key}const Ud="__vInternal",lT=({key:e})=>e??null,bf=({ref:e,ref_key:t,ref_for:r})=>e!=null?He(e)||Ct(e)||De(e)?{i:qt,r:e,k:t,f:!!r}:e:null;function ae(e,t=null,r=null,n=0,i=null,a=e===pt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&lT(t),ref:t&&bf(t),scopeId:VC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:qt};return s?(Km(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=He(r)?8:16),lu>0&&!o&&wn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&wn.push(l),l}const ee=rO;function rO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===XC)&&(e=xr),ta(e)){const s=mi(e,t,!0);return r&&Km(s,r),lu>0&&!a&&wn&&(s.shapeFlag&6?wn[wn.indexOf(e)]=s:wn.push(s)),s.patchFlag|=-2,s}if(fO(e)&&(e=e.__vccOpts),t){t=nO(t);let{class:s,style:l}=t;s&&!He(s)&&(t.class=ue(s)),Xe(l)&&(DC(l)&&!be(l)&&(l=Gt({},l)),t.style=St(l))}const o=He(e)?1:xI(e)?128:ZI(e)?64:Xe(e)?4:De(e)?2:0;return ae(e,t,r,n,i,o,a,!0)}function nO(e){return e?DC(e)||Ud in e?Gt({},e):e:null}function mi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ca(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&lT(s),ref:t&&t.ref?r&&i?be(i)?i.concat(bf(t)):[i,bf(t)]:bf(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mi(e.ssContent),ssFallback:e.ssFallback&&mi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Bt(e=" ",t=0){return ee(Ns,null,e,t)}function Fe(e="",t=!1){return t?(Y(),_e(xr,null,e)):ee(xr,null,e)}function Bn(e){return e==null||typeof e=="boolean"?ee(xr):be(e)?ee(pt,null,e.slice()):typeof e=="object"?Vi(e):ee(Ns,null,String(e))}function Vi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mi(e)}function Km(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(be(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Km(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Ud in t)?t._ctx=qt:i===3&&qt&&(qt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:qt},r=32):(t=String(t),n&64?(r=16,t=[Bt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ca(...e){const t={};for(let r=0;rIt||qt,ps=e=>{It=e,e.scope.on()},ao=()=>{It&&It.scope.off(),It=null};function uT(e){return e.vnode.shapeFlag&4}let uu=!1;function sO(e,t=!1){uu=t;const{props:r,children:n}=e.vnode,i=uT(e);zI(e,r,i,t),GI(e,n);const a=i?lO(e,t):void 0;return uu=!1,a}function lO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=IC(new Proxy(e.ctx,kI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?fT(e):null;ps(e),Os();const a=Zi(n,e,0,[e.props,i]);if(Rs(),ao(),jf(a)){if(a.then(ao,ao),t)return a.then(o=>{m_(e,o,t)}).catch(o=>{Hd(o,e,0)});e.asyncDep=a}else m_(e,a,t)}else cT(e,t)}function m_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Xe(t)&&(e.setupState=NC(t)),cT(e,r)}let y_;function cT(e,t,r){const n=e.type;if(!e.render){if(!t&&y_&&!n.render){const i=n.template||jm(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Gt(Gt({isCustomElement:a,delimiters:s},o),l);n.render=y_(i,u)}}e.render=n.render||ur}ps(e),Os(),NI(e),Rs(),ao()}function uO(e){return new Proxy(e.attrs,{get(t,r){return Mr(e,"get","$attrs"),t[r]}})}function fT(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=uO(e))},slots:e.slots,emit:e.emit,expose:t}}function jd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(NC(IC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Pl)return Pl[r](e)},has(t,r){return r in t||r in Pl}}))}function cO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function fO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>cI(e,t,uu);function Yd(){return dO().slots}function dO(){const e=ct();return e.setupContext||(e.setupContext=fT(e))}function Ce(e,t,r){const n=arguments.length;return n===2?Xe(t)&&!be(t)?ta(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&ta(r)&&(r=[r]),ee(e,t,r))}const hO=Symbol(""),vO=()=>Ee(hO),pO="3.2.47",gO="http://www.w3.org/2000/svg",ja=typeof document<"u"?document:null,__=ja&&ja.createElement("template"),mO={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?ja.createElementNS(gO,e):ja.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>ja.createTextNode(e),createComment:e=>ja.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ja.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{__.innerHTML=n?`${e}`:e;const s=__.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function yO(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function _O(e,t,r){const n=e.style,i=He(r);if(r&&!i){if(t&&!He(t))for(const a in t)r[a]==null&&Op(n,a,"");for(const a in r)Op(n,a,r[a])}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const b_=/\s*!important$/;function Op(e,t,r){if(be(r))r.forEach(n=>Op(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=bO(e,t);b_.test(r)?e.setProperty(xo(n),r.replace(b_,""),"important"):e[n]=r}}const w_=["Webkit","Moz","ms"],Nh={};function bO(e,t){const r=Nh[t];if(r)return r;let n=An(t);if(n!=="filter"&&n in e)return Nh[t]=n;n=Fd(n);for(let i=0;iFh||(MO.then(()=>Fh=0),Fh=Date.now());function EO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;rn(PO(n,r.value),t,5,[n])};return r.value=e,r.attached=AO(),r}function PO(e,t){if(be(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const C_=/^on[a-z]/,LO=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?yO(e,n,i):t==="style"?_O(e,r,n):Rd(t)?Pm(t)||CO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):DO(e,t,n,i))?xO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),wO(e,t,n,i))};function DO(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&C_.test(t)&&De(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||C_.test(t)&&He(r)?!1:t in e}const Li="transition",Ys="animation",Ci=(e,{slots:t})=>Ce(jC,vT(e),t);Ci.displayName="Transition";const hT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},IO=Ci.props=Gt({},jC.props,hT),pa=(e,t=[])=>{be(e)?e.forEach(r=>r(...t)):e&&e(...t)},T_=e=>e?be(e)?e.some(t=>t.length>1):e.length>1:!1;function vT(e){const t={};for(const T in e)T in hT||(t[T]=e[T]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:c=s,leaveFromClass:f=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=OO(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:S=y,onAppearCancelled:C=_}=t,M=(T,D,N)=>{Bi(T,D?c:s),Bi(T,D?u:o),N&&N()},P=(T,D)=>{T._isLeaving=!1,Bi(T,f),Bi(T,h),Bi(T,d),D&&D()},A=T=>(D,N)=>{const H=T?S:y,$=()=>M(D,T,N);pa(H,[D,$]),M_(()=>{Bi(D,T?l:a),li(D,T?c:s),T_(H)||A_(D,n,p,$)})};return Gt(t,{onBeforeEnter(T){pa(m,[T]),li(T,a),li(T,o)},onBeforeAppear(T){pa(w,[T]),li(T,l),li(T,u)},onEnter:A(!1),onAppear:A(!0),onLeave(T,D){T._isLeaving=!0;const N=()=>P(T,D);li(T,f),gT(),li(T,d),M_(()=>{T._isLeaving&&(Bi(T,f),li(T,h),T_(b)||A_(T,n,g,N))}),pa(b,[T,N])},onEnterCancelled(T){M(T,!1),pa(_,[T])},onAppearCancelled(T){M(T,!0),pa(C,[T])},onLeaveCancelled(T){P(T),pa(x,[T])}})}function OO(e){if(e==null)return null;if(Xe(e))return[Bh(e.enter),Bh(e.leave)];{const t=Bh(e);return[t,t]}}function Bh(e){return ED(e)}function li(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Bi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function M_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let RO=0;function A_(e,t,r,n){const i=e._endId=++RO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=pT(e,t);if(!o)return n();const u=o+"end";let c=0;const f=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(r[v]||"").split(", "),i=n(`${Li}Delay`),a=n(`${Li}Duration`),o=E_(i,a),s=n(`${Ys}Delay`),l=n(`${Ys}Duration`),u=E_(s,l);let c=null,f=0,d=0;t===Li?o>0&&(c=Li,f=o,d=a.length):t===Ys?u>0&&(c=Ys,f=u,d=l.length):(f=Math.max(o,u),c=f>0?o>u?Li:Ys:null,d=c?c===Li?a.length:l.length:0);const h=c===Li&&/\b(transform|all)(,|$)/.test(n(`${Li}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function E_(e,t){for(;e.lengthP_(r)+P_(e[n])))}function P_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function gT(){return document.body.offsetHeight}const mT=new WeakMap,yT=new WeakMap,_T={name:"TransitionGroup",props:Gt({},IO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=ct(),n=UC();let i,a;return Hu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!HO(i[0].el,r.vnode.el,o))return;i.forEach(FO),i.forEach(BO);const s=i.filter($O);gT(),s.forEach(l=>{const u=l.el,c=u.style;li(u,o),c.transform=c.webkitTransform=c.transitionDuration="";const f=u._moveCb=d=>{d&&d.target!==u||(!d||/transform$/.test(d.propertyName))&&(u.removeEventListener("transitionend",f),u._moveCb=null,Bi(u,o))};u.addEventListener("transitionend",f)})}),()=>{const o=Ke(e),s=vT(o);let l=o.tag||pt;i=a,a=t.default?Vm(t.default()):[];for(let u=0;udelete e.mode;_T.props;const NO=_T;function FO(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function BO(e){yT.set(e,e.el.getBoundingClientRect())}function $O(e){const t=mT.get(e),r=yT.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function HO(e,t,r){const n=e.cloneNode();e._vtc&&e._vtc.forEach(o=>{o.split(/\s+/).forEach(s=>s&&n.classList.remove(s))}),r.split(/\s+/).forEach(o=>o&&n.classList.add(o)),n.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(n);const{hasTransform:a}=pT(n);return i.removeChild(n),a}const L_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return be(t)?r=>_f(t,r):t},Qf={deep:!0,created(e,t,r){e._assign=L_(r),dT(e,"change",()=>{const n=e._modelValue,i=zO(e),a=e.checked,o=e._assign;if(be(n)){const s=pC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(kd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(bT(e,a))})},mounted:D_,beforeUpdate(e,t,r){e._assign=L_(r),D_(e,t,r)}};function D_(e,{value:t,oldValue:r},n){e._modelValue=t,be(t)?e.checked=pC(t,n.props.value)>-1:kd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=Od(t,bT(e,!0)))}function zO(e){return"_value"in e?e._value:e.value}function bT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const WO=["ctrl","shift","alt","meta"],VO={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>WO.some(r=>e[`${r}Key`]&&!t.includes(r))},Jf=(e,t)=>(r,...n)=>{for(let i=0;ir=>{if(!("key"in r))return;const n=xo(r.key);if(t.some(i=>i===n||GO[i]===n))return e(r)},yi={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):qs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),qs(e,!0),n.enter(e)):n.leave(e,()=>{qs(e,!1)}):qs(e,t))},beforeUnmount(e,{value:t}){qs(e,t)}};function qs(e,t){e.style.display=t?e._vod:"none"}const jO=Gt({patchProp:LO},mO);let I_;function wT(){return I_||(I_=qI(jO))}const O_=(...e)=>{wT().render(...e)},YO=(...e)=>{const t=wT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=qO(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function qO(e){return He(e)?document.querySelector(e):e}const wf=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},fi=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var R_;const Nt=typeof window<"u",Br=e=>typeof e=="boolean",KO=e=>typeof e=="function",$t=e=>typeof e=="number",XO=e=>typeof e=="string",Rp=()=>{};Nt&&((R_=window==null?void 0:window.navigator)!=null&&R_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ho(e){return typeof e=="function"?e():E(e)}function xT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const ST=e=>e();function ZO(e,t={}){let r,n,i=Rp;const a=s=>{clearTimeout(s),i(),i=Rp};return s=>{const l=ho(e),u=ho(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((c,f)=>{i=t.rejectOnCancel?f:c,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,c(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,c(s())},l)})}}function QO(e=ST){const t=B(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:$u(t),pause:r,resume:n,eventFilter:i}}function JO(e){return e}function zu(e){return _C()?(ID(e),!0):!1}function eR(e,t=200,r={}){return xT(ZO(t,r),e)}function tR(e,t=200,r={}){const n=B(e.value),i=eR(()=>{n.value=e.value},t,r);return Se(e,()=>i()),n}function rR(e){return typeof e=="function"?k(e):B(e)}function CT(e,t=!0){ct()?wt(e):t?e():Ft(e)}function kp(e,t,r={}){const{immediate:n=!0}=r,i=B(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},ho(t))}return n&&(i.value=!0,Nt&&l()),zu(s),{isPending:$u(i),start:l,stop:s}}function nR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Ct(e),a=B(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=ho(r);return a.value=a.value===l?ho(n):l,a.value}}return i?o:[a,o]}var k_=Object.getOwnPropertySymbols,iR=Object.prototype.hasOwnProperty,aR=Object.prototype.propertyIsEnumerable,oR=(e,t)=>{var r={};for(var n in e)iR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&k_)for(var n of k_(e))t.indexOf(n)<0&&aR.call(e,n)&&(r[n]=e[n]);return r};function sR(e,t,r={}){const n=r,{eventFilter:i=ST}=n,a=oR(n,["eventFilter"]);return Se(e,xT(i,t),a)}var lR=Object.defineProperty,uR=Object.defineProperties,cR=Object.getOwnPropertyDescriptors,ed=Object.getOwnPropertySymbols,TT=Object.prototype.hasOwnProperty,MT=Object.prototype.propertyIsEnumerable,N_=(e,t,r)=>t in e?lR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fR=(e,t)=>{for(var r in t||(t={}))TT.call(t,r)&&N_(e,r,t[r]);if(ed)for(var r of ed(t))MT.call(t,r)&&N_(e,r,t[r]);return e},dR=(e,t)=>uR(e,cR(t)),hR=(e,t)=>{var r={};for(var n in e)TT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ed)for(var n of ed(e))t.indexOf(n)<0&&MT.call(e,n)&&(r[n]=e[n]);return r};function vR(e,t,r={}){const n=r,{eventFilter:i}=n,a=hR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=QO(i);return{stop:sR(e,t,dR(fR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Ui(e){var t;const r=ho(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ra=Nt?window:void 0;function xn(...e){let t,r,n,i;if(XO(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ra):[t,r,n,i]=e,!t)return Rp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(c=>c()),a.length=0},s=(c,f,d)=>(c.addEventListener(f,d,i),()=>c.removeEventListener(f,d,i)),l=Se(()=>Ui(t),c=>{o(),c&&a.push(...r.flatMap(f=>n.map(d=>s(c,f,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return zu(u),u}function pR(e,t,r={}){const{window:n=ra,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=Ui(v);return p&&(h.target===p||h.composedPath().includes(p))}}),c=h=>{n.clearTimeout(l);const v=Ui(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},f=[xn(n,"click",c,{passive:!0,capture:a}),xn(n,"pointerdown",h=>{const v=Ui(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),xn(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>c(h),50)}},{passive:!0}),o&&xn(n,"blur",h=>{var v;const p=Ui(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>f.forEach(h=>h())}function AT(e,t=!1){const r=B(),n=()=>r.value=Boolean(e());return n(),CT(n,t),r}function gR(e,t={}){const{window:r=ra}=t,n=AT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=B(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(rR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return io(s),zu(()=>o()),a}const Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Fp="__vueuse_ssr_handlers__";Np[Fp]=Np[Fp]||{};const mR=Np[Fp];function ET(e,t){return mR[e]||t}function yR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var _R=Object.defineProperty,F_=Object.getOwnPropertySymbols,bR=Object.prototype.hasOwnProperty,wR=Object.prototype.propertyIsEnumerable,B_=(e,t,r)=>t in e?_R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$_=(e,t)=>{for(var r in t||(t={}))bR.call(t,r)&&B_(e,r,t[r]);if(F_)for(var r of F_(t))wR.call(t,r)&&B_(e,r,t[r]);return e};const xR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function SR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=ra,eventFilter:d,onError:h=S=>{console.error(S)}}=n,v=(c?$m:B)(t);if(!r)try{r=ET("getDefaultStorage",()=>{var S;return(S=ra)==null?void 0:S.localStorage})()}catch(S){h(S)}if(!r)return v;const p=ho(t),g=yR(p),m=(i=n.serializer)!=null?i:xR[g],{pause:y,resume:_}=vR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:d});return f&&s&&xn(f,"storage",w),w(),v;function b(S){try{if(S==null)r.removeItem(e);else{const C=m.write(S),M=r.getItem(e);M!==C&&(r.setItem(e,C),f&&(f==null||f.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){h(C)}}function x(S){const C=S?S.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,m.write(p)),p;if(!S&&u){const M=m.read(C);return KO(u)?u(M,p):g==="object"&&!Array.isArray(M)?$_($_({},p),M):M}else return typeof C!="string"?C:m.read(C)}function w(S){if(!(S&&S.storageArea!==r)){if(S&&S.key==null){v.value=p;return}if(!(S&&S.key!==e)){y();try{v.value=x(S)}catch(C){h(C)}finally{S?Ft(_):_()}}}}}function PT(e){return gR("(prefers-color-scheme: dark)",e)}var CR=Object.defineProperty,H_=Object.getOwnPropertySymbols,TR=Object.prototype.hasOwnProperty,MR=Object.prototype.propertyIsEnumerable,z_=(e,t,r)=>t in e?CR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,AR=(e,t)=>{for(var r in t||(t={}))TR.call(t,r)&&z_(e,r,t[r]);if(H_)for(var r of H_(t))MR.call(t,r)&&z_(e,r,t[r]);return e};function ER(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=ra,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,c=AR({auto:"",light:"light",dark:"dark"},e.modes||{}),f=PT({window:i}),d=k(()=>f.value?"dark":"light"),h=l||(o==null?B(n):SR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return h.value==="auto"&&!u?d.value:h.value},set(y){h.value=y}}),p=ET("updateHTMLAttrs",(y,_,b)=>{const x=i==null?void 0:i.document.querySelector(y);if(x)if(_==="class"){const w=b.split(/\s/g);Object.values(c).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{w.includes(S)?x.classList.add(S):x.classList.remove(S)})}else x.setAttribute(_,b)});function g(y){var _;const b=y==="auto"?d.value:y;p(t,r,(_=c[b])!=null?_:b)}function m(y){e.onChanged?e.onChanged(y,g):g(y)}return Se(v,m,{flush:"post",immediate:!0}),u&&Se(d,()=>m(v.value),{flush:"post"}),CT(()=>m(v.value)),v}var PR=Object.defineProperty,LR=Object.defineProperties,DR=Object.getOwnPropertyDescriptors,W_=Object.getOwnPropertySymbols,IR=Object.prototype.hasOwnProperty,OR=Object.prototype.propertyIsEnumerable,V_=(e,t,r)=>t in e?PR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,RR=(e,t)=>{for(var r in t||(t={}))IR.call(t,r)&&V_(e,r,t[r]);if(W_)for(var r of W_(t))OR.call(t,r)&&V_(e,r,t[r]);return e},kR=(e,t)=>LR(e,DR(t));function NR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=ra}=e,i=ER(kR(RR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=PT({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var G_=Object.getOwnPropertySymbols,FR=Object.prototype.hasOwnProperty,BR=Object.prototype.propertyIsEnumerable,$R=(e,t)=>{var r={};for(var n in e)FR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&G_)for(var n of G_(e))t.indexOf(n)<0&&BR.call(e,n)&&(r[n]=e[n]);return r};function gs(e,t,r={}){const n=r,{window:i=ra}=n,a=$R(n,["window"]);let o;const s=AT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=Se(()=>Ui(e),f=>{l(),s.value&&i&&f&&(o=new ResizeObserver(t),o.observe(f,a))},{immediate:!0,flush:"post"}),c=()=>{l(),u()};return zu(c),{isSupported:s,stop:c}}var U_;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(U_||(U_={}));var HR=Object.defineProperty,j_=Object.getOwnPropertySymbols,zR=Object.prototype.hasOwnProperty,WR=Object.prototype.propertyIsEnumerable,Y_=(e,t,r)=>t in e?HR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,VR=(e,t)=>{for(var r in t||(t={}))zR.call(t,r)&&Y_(e,r,t[r]);if(j_)for(var r of j_(t))WR.call(t,r)&&Y_(e,r,t[r]);return e};const GR={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};VR({linear:JO},GR);var UR=typeof global=="object"&&global&&global.Object===Object&&global;const LT=UR;var jR=typeof self=="object"&&self&&self.Object===Object&&self,YR=LT||jR||Function("return this")();const Pn=YR;var qR=Pn.Symbol;const sn=qR;var DT=Object.prototype,KR=DT.hasOwnProperty,XR=DT.toString,Ks=sn?sn.toStringTag:void 0;function ZR(e){var t=KR.call(e,Ks),r=e[Ks];try{e[Ks]=void 0;var n=!0}catch{}var i=XR.call(e);return n&&(t?e[Ks]=r:delete e[Ks]),i}var QR=Object.prototype,JR=QR.toString;function ek(e){return JR.call(e)}var tk="[object Null]",rk="[object Undefined]",q_=sn?sn.toStringTag:void 0;function So(e){return e==null?e===void 0?rk:tk:q_&&q_ in Object(e)?ZR(e):ek(e)}function qn(e){return e!=null&&typeof e=="object"}var nk="[object Symbol]";function qd(e){return typeof e=="symbol"||qn(e)&&So(e)==nk}function IT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=kk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function $k(e){return function(){return e}}var Hk=function(){try{var e=To(Object,"defineProperty");return e({},"",{}),e}catch{}}();const td=Hk;var zk=td?function(e,t){return td(e,"toString",{configurable:!0,enumerable:!1,value:$k(t),writable:!0})}:Xm;const Wk=zk;var Vk=Bk(Wk);const kT=Vk;function Gk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=Xk}function Fs(e){return e!=null&&ey(e.length)&&!Zm(e)}function Zk(e,t,r){if(!Ar(r))return!1;var n=typeof t;return(n=="number"?Fs(r)&&Kd(t,r.length):n=="string"&&t in r)?Wu(r[t],e):!1}function Qk(e){return Kk(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&Zk(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function vF(e,t){var r=this.__data__,n=Xd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Ti(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?ly(s,t-1,r,n,i):sy(i,s):n||(i[i.length]=s)}return i}function IF(e){var t=e==null?0:e.length;return t?ly(e,1):[]}function OF(e){return kT(NT(e,void 0,IF),e+"")}var RF=zT(Object.getPrototypeOf,Object);const uy=RF;var kF="[object Object]",NF=Function.prototype,FF=Object.prototype,WT=NF.toString,BF=FF.hasOwnProperty,$F=WT.call(Object);function HF(e){if(!qn(e)||So(e)!=kF)return!1;var t=uy(e);if(t===null)return!0;var r=BF.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&WT.call(r)==$F}function $p(){if(!arguments.length)return[];var e=arguments[0];return fr(e)?e:[e]}function zF(){this.__data__=new Ti,this.size=0}function WF(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function VF(e){return this.__data__.get(e)}function GF(e){return this.__data__.has(e)}var UF=200;function jF(e,t){var r=this.__data__;if(r instanceof Ti){var n=r.__data__;if(!hu||n.lengths))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=r&P$?new nd:void 0;for(a.set(e,t),a.set(t,e);++f=t||S<0||f&&C>=a}function m(){var w=Wh();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Wh())}function x(){var w=Wh(),S=g(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(f)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return x.cancel=_,x.flush=b,x}function Gp(e,t,r){(r!==void 0&&!Wu(e[t],r)||r===void 0&&!(t in e))&&Qm(e,t,r)}function S5(e){return qn(e)&&Fs(e)}function Up(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function C5(e){return Vu(e,Uu(e))}function T5(e,t,r,n,i,a,o){var s=Up(e,r),l=Up(t,r),u=o.get(l);if(u){Gp(e,r,u);return}var c=a?a(s,l,r+"",e,t,o):void 0,f=c===void 0;if(f){var d=fr(l),h=!d&&fu(l),v=!d&&!h&&ny(l);c=l,d||h||v?fr(s)?c=s:S5(s)?c=RT(s):h?(f=!1,c=GT(l,!0)):v?(f=!1,c=qT(l,!0)):c=[]:HF(l)||cu(l)?(c=s,cu(s)?c=C5(s):(!Ar(s)||Zm(s))&&(c=KT(l))):f=!1}f&&(o.set(l,c),i(c,l,n,a,o),o.delete(l)),Gp(e,r,c)}function iM(e,t,r,n,i){e!==t&&nM(t,function(a,o){if(i||(i=new Mn),Ar(a))T5(e,t,o,r,iM,n,i);else{var s=n?n(Up(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),Gp(e,o,s)}},Uu)}function M5(e,t){var r=-1,n=Fs(e)?Array(e.length):[];return y5(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function A5(e,t){var r=fr(e)?IT:M5;return r(e,d5(t))}function E5(e,t){return ly(A5(e,t),1)}function jp(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,ys=e=>typeof Element>"u"?!1:e instanceof Element,F5=e=>He(e)?!Number.isNaN(Number(e)):!1,Tb=e=>Object.keys(e),Sf=(e,t,r)=>({get value(){return vu(e,t,r)},set value(n){N5(e,t,n)}});class B5 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function na(e,t){throw new B5(`[${e}] ${t}`)}const sM=(e="")=>e.split(" ").filter(t=>!!t.trim()),Ol=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Zo=(e,t)=>{!e||!t.trim()||e.classList.add(...sM(t))},ss=(e,t)=>{!e||!t.trim()||e.classList.remove(...sM(t))},Mb=(e,t)=>{var r;if(!Nt||!e||!t)return"";let n=An(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function po(e,t="px"){if(!e)return"";if($t(e)||F5(e))return`${e}${t}`;if(He(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Zn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},$5={name:"ArrowDown"},H5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z5=ae("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),W5=[z5];function V5(e,t,r,n,i,a){return Y(),me("svg",H5,W5)}var lM=Zn($5,[["render",V5],["__file","arrow-down.vue"]]),G5={name:"ArrowRight"},U5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},j5=ae("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),Y5=[j5];function q5(e,t,r,n,i,a){return Y(),me("svg",U5,Y5)}var dy=Zn(G5,[["render",q5],["__file","arrow-right.vue"]]),K5={name:"ArrowUp"},X5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z5=ae("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),Q5=[Z5];function J5(e,t,r,n,i,a){return Y(),me("svg",X5,Q5)}var e3=Zn(K5,[["render",J5],["__file","arrow-up.vue"]]),t3={name:"CircleCloseFilled"},r3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),i3=[n3];function a3(e,t,r,n,i,a){return Y(),me("svg",r3,i3)}var uM=Zn(t3,[["render",a3],["__file","circle-close-filled.vue"]]),o3={name:"Close"},s3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l3=ae("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),u3=[l3];function c3(e,t,r,n,i,a){return Y(),me("svg",s3,u3)}var Yp=Zn(o3,[["render",c3],["__file","close.vue"]]),f3={name:"InfoFilled"},d3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),v3=[h3];function p3(e,t,r,n,i,a){return Y(),me("svg",d3,v3)}var cM=Zn(f3,[["render",p3],["__file","info-filled.vue"]]),g3={name:"Loading"},m3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},y3=ae("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),_3=[y3];function b3(e,t,r,n,i,a){return Y(),me("svg",m3,_3)}var hy=Zn(g3,[["render",b3],["__file","loading.vue"]]),w3={name:"More"},x3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},S3=ae("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),C3=[S3];function T3(e,t,r,n,i,a){return Y(),me("svg",x3,C3)}var M3=Zn(w3,[["render",T3],["__file","more.vue"]]),A3={name:"SuccessFilled"},E3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),L3=[P3];function D3(e,t,r,n,i,a){return Y(),me("svg",E3,L3)}var fM=Zn(A3,[["render",D3],["__file","success-filled.vue"]]),I3={name:"WarningFilled"},O3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),k3=[R3];function N3(e,t,r,n,i,a){return Y(),me("svg",O3,k3)}var dM=Zn(I3,[["render",N3],["__file","warning-filled.vue"]]);const hM="__epPropKey",Le=e=>e,F3=e=>Xe(e)&&!!e[hM],eh=(e,t)=>{if(!Xe(e)||F3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let c=!1,f=[];if(r&&(f=Array.from(r),We(e,"default")&&f.push(i),c||(c=f.includes(u))),o&&(c||(c=o(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");fI(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[hM]:!0};return We(e,"default")&&(l.default=i),l},tt=e=>jp(Object.entries(e).map(([t,r])=>[t,eh(r,t)])),Wn=Le([String,Object,Function]),B3={Close:Yp,SuccessFilled:fM,InfoFilled:cM,WarningFilled:dM,CircleCloseFilled:uM},Ab={success:fM,warning:dM,error:uM,info:cM},hr=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},$3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),H3=(e,t)=>(e.install=r=>{r.directive(t,e)},e),fa=e=>(e.install=ur,e),Ot={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},go="update:modelValue",qp="change",Kp="input",Yu=["","default","small","large"],z3=e=>["",...Yu].includes(e),Cf=e=>{const t=be(e)?e:[e],r=[];return t.forEach(n=>{var i;be(n)?r.push(...Cf(n)):ta(n)&&be(n.children)?r.push(...Cf(n.children)):(r.push(n),ta(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Cf(n.component.subTree)))}),r},Ya=e=>e,vy=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{Se(()=>E(o),s=>{},{immediate:!0})};var W3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const V3=e=>(t,r)=>G3(t,r,E(e)),G3=(e,t,r)=>vu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),U3=e=>{const t=k(()=>E(e).name),r=Ct(e)?e:B(e);return{lang:t,locale:r,t:V3(e)}},vM=Symbol("localeContextKey"),py=e=>{const t=e||Ee(vM,B());return U3(k(()=>t.value||W3))},Xp="el",j3="is-",ga=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},pM=Symbol("namespaceContextKey"),gy=e=>{const t=e||Ee(pM,B(Xp));return k(()=>E(t)||Xp)},Ne=(e,t)=>{const r=gy(t);return{namespace:r,b:(p="")=>ga(r.value,e,p,"",""),e:p=>p?ga(r.value,e,"",p,""):"",m:p=>p?ga(r.value,e,"","",p):"",be:(p,g)=>p&&g?ga(r.value,e,p,g,""):"",em:(p,g)=>p&&g?ga(r.value,e,"",p,g):"",bm:(p,g)=>p&&g?ga(r.value,e,p,"",g):"",bem:(p,g,m)=>p&&g&&m?ga(r.value,e,p,g,m):"",is:(p,...g)=>{const m=g.length>=1?g[0]:!0;return p&&m?`${j3}${p}`:""},cssVar:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${m}`]=p[m]);return g},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${e}-${m}`]=p[m]);return g},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},Y3=eh({type:Le(Boolean),default:null}),q3=eh({type:Le(Function)}),K3=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:Y3,[r]:q3};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:c,onHide:f})=>{const d=ct(),{emit:h}=d,v=d.props,p=k(()=>De(v[r])),g=k(()=>v[e]===null),m=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),De(c)&&c(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),De(f)&&f(S))},_=S=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&Nt;C&&h(t,!0),(g.value||!C)&&m(S)},b=S=>{if(v.disabled===!0||!Nt)return;const C=p.value&&Nt;C&&h(t,!1),(g.value||!C)&&y(S)},x=S=>{Br(S)&&(v.disabled&&S?p.value&&h(t,!1):o.value!==S&&(S?m():y()))},w=()=>{o.value?b():_()};return Se(()=>v[e],x),l&&d.appContext.config.globalProperties.$route!==void 0&&Se(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),wt(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}},gM=e=>{const t=ct();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var Sr="top",ln="bottom",un="right",Cr="left",my="auto",qu=[Sr,ln,un,Cr],_s="start",mu="end",X3="clippingParents",mM="viewport",Xs="popper",Z3="reference",Eb=qu.reduce(function(e,t){return e.concat([t+"-"+_s,t+"-"+mu])},[]),yy=[].concat(qu,[my]).reduce(function(e,t){return e.concat([t,t+"-"+_s,t+"-"+mu])},[]),Q3="beforeRead",J3="read",e4="afterRead",t4="beforeMain",r4="main",n4="afterMain",i4="beforeWrite",a4="write",o4="afterWrite",s4=[Q3,J3,e4,t4,r4,n4,i4,a4,o4];function Kn(e){return e?(e.nodeName||"").toLowerCase():null}function Ln(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bs(e){var t=Ln(e).Element;return e instanceof t||e instanceof Element}function an(e){var t=Ln(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function _y(e){if(typeof ShadowRoot>"u")return!1;var t=Ln(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function l4(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!an(a)||!Kn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function u4(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!an(i)||!Kn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var yM={name:"applyStyles",enabled:!0,phase:"write",fn:l4,effect:u4,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var oo=Math.max,od=Math.min,ws=Math.round;function xs(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(an(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ws(r.width)/o||1),a>0&&(i=ws(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function by(e){var t=xs(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function _M(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&_y(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function _i(e){return Ln(e).getComputedStyle(e)}function c4(e){return["table","td","th"].indexOf(Kn(e))>=0}function da(e){return((bs(e)?e.ownerDocument:e.document)||window.document).documentElement}function th(e){return Kn(e)==="html"?e:e.assignedSlot||e.parentNode||(_y(e)?e.host:null)||da(e)}function Pb(e){return!an(e)||_i(e).position==="fixed"?null:e.offsetParent}function f4(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&an(e)){var n=_i(e);if(n.position==="fixed")return null}var i=th(e);for(_y(i)&&(i=i.host);an(i)&&["html","body"].indexOf(Kn(i))<0;){var a=_i(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ku(e){for(var t=Ln(e),r=Pb(e);r&&c4(r)&&_i(r).position==="static";)r=Pb(r);return r&&(Kn(r)==="html"||Kn(r)==="body"&&_i(r).position==="static")?t:r||f4(e)||t}function wy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rl(e,t,r){return oo(e,od(t,r))}function d4(e,t,r){var n=Rl(e,t,r);return n>r?r:n}function bM(){return{top:0,right:0,bottom:0,left:0}}function wM(e){return Object.assign({},bM(),e)}function xM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var h4=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,wM(typeof e!="number"?e:xM(e,qu))};function v4(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=wy(s),u=[Cr,un].indexOf(s)>=0,c=u?"height":"width";if(!(!a||!o)){var f=h4(i.padding,r),d=by(a),h=l==="y"?Sr:Cr,v=l==="y"?ln:un,p=r.rects.reference[c]+r.rects.reference[l]-o[l]-r.rects.popper[c],g=o[l]-r.rects.reference[l],m=Ku(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=f[h],x=y-d[c]-f[v],w=y/2-d[c]/2+_,S=Rl(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function p4(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!_M(t.elements.popper,i)||(t.elements.arrow=i))}var g4={name:"arrow",enabled:!0,phase:"main",fn:v4,effect:p4,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ss(e){return e.split("-")[1]}var m4={top:"auto",right:"auto",bottom:"auto",left:"auto"};function y4(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ws(t*i)/i||0,y:ws(r*i)/i||0}}function Lb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof c=="function"?c({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Cr,b=Sr,x=window;if(u){var w=Ku(r),S="clientHeight",C="clientWidth";if(w===Ln(r)&&(w=da(r),_i(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===Sr||(i===Cr||i===un)&&a===mu){b=ln;var M=f&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=M-n.height,p*=l?1:-1}if(i===Cr||(i===Sr||i===ln)&&a===mu){_=un;var P=f&&w===x&&x.visualViewport?x.visualViewport.width:w[C];h-=P-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&m4),T=c===!0?y4({x:h,y:p}):{x:h,y:p};if(h=T.x,p=T.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function _4(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:Ss(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Lb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Lb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var SM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:_4,data:{}},mc={passive:!0};function b4(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=Ln(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",r.update,mc)}),s&&l.addEventListener("resize",r.update,mc),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",r.update,mc)}),s&&l.removeEventListener("resize",r.update,mc)}}var CM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:b4,data:{}},w4={left:"right",right:"left",bottom:"top",top:"bottom"};function Tf(e){return e.replace(/left|right|bottom|top/g,function(t){return w4[t]})}var x4={start:"end",end:"start"};function Db(e){return e.replace(/start|end/g,function(t){return x4[t]})}function xy(e){var t=Ln(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Sy(e){return xs(da(e)).left+xy(e).scrollLeft}function S4(e){var t=Ln(e),r=da(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Sy(e),y:s}}function C4(e){var t,r=da(e),n=xy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=oo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=oo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Sy(e),l=-n.scrollTop;return _i(i||r).direction==="rtl"&&(s+=oo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function Cy(e){var t=_i(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function TM(e){return["html","body","#document"].indexOf(Kn(e))>=0?e.ownerDocument.body:an(e)&&Cy(e)?e:TM(th(e))}function kl(e,t){var r;t===void 0&&(t=[]);var n=TM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=Ln(n),o=i?[a].concat(a.visualViewport||[],Cy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(kl(th(o)))}function Zp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function T4(e){var t=xs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ib(e,t){return t===mM?Zp(S4(e)):bs(t)?T4(t):Zp(C4(da(e)))}function M4(e){var t=kl(th(e)),r=["absolute","fixed"].indexOf(_i(e).position)>=0,n=r&&an(e)?Ku(e):e;return bs(n)?t.filter(function(i){return bs(i)&&_M(i,n)&&Kn(i)!=="body"}):[]}function A4(e,t,r){var n=t==="clippingParents"?M4(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=Ib(e,l);return s.top=oo(u.top,s.top),s.right=od(u.right,s.right),s.bottom=od(u.bottom,s.bottom),s.left=oo(u.left,s.left),s},Ib(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function MM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?Ss(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case Sr:l={x:o,y:t.y-r.height};break;case ln:l={x:o,y:t.y+t.height};break;case un:l={x:t.x+t.width,y:s};break;case Cr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?wy(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case _s:l[u]=l[u]-(t[c]/2-r[c]/2);break;case mu:l[u]=l[u]+(t[c]/2-r[c]/2);break}}return l}function yu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?X3:a,s=r.rootBoundary,l=s===void 0?mM:s,u=r.elementContext,c=u===void 0?Xs:u,f=r.altBoundary,d=f===void 0?!1:f,h=r.padding,v=h===void 0?0:h,p=wM(typeof v!="number"?v:xM(v,qu)),g=c===Xs?Z3:Xs,m=e.rects.popper,y=e.elements[d?g:c],_=A4(bs(y)?y:y.contextElement||da(e.elements.popper),o,l),b=xs(e.elements.reference),x=MM({reference:b,element:m,strategy:"absolute",placement:i}),w=Zp(Object.assign({},m,x)),S=c===Xs?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},M=e.modifiersData.offset;if(c===Xs&&M){var P=M[i];Object.keys(C).forEach(function(A){var T=[un,ln].indexOf(A)>=0?1:-1,D=[Sr,ln].indexOf(A)>=0?"y":"x";C[A]+=P[D]*T})}return C}function E4(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?yy:l,c=Ss(n),f=c?s?Eb:Eb.filter(function(v){return Ss(v)===c}):qu,d=f.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=f);var h=d.reduce(function(v,p){return v[p]=yu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function P4(e){if(jn(e)===my)return[];var t=Tf(e);return[Db(e),t,Db(t)]}function L4(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=jn(g),y=m===g,_=l||(y||!v?[Tf(g)]:P4(g)),b=[g].concat(_).reduce(function(Ae,V){return Ae.concat(jn(V)===my?E4(t,{placement:V,boundary:c,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,M=b[0],P=0;P=0,H=N?"width":"height",$=yu(t,{placement:A,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),G=N?D?un:Cr:D?ln:Sr;x[H]>w[H]&&(G=Tf(G));var F=Tf(G),R=[];if(a&&R.push($[T]<=0),s&&R.push($[G]<=0,$[F]<=0),R.every(function(Ae){return Ae})){M=A,C=!1;break}S.set(A,R)}if(C)for(var j=v?3:1,re=function(Ae){var V=b.find(function(Q){var W=S.get(Q);if(W)return W.slice(0,Ae).every(function(q){return q})});if(V)return M=V,"break"},oe=j;oe>0;oe--){var ye=re(oe);if(ye==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var D4={name:"flip",enabled:!0,phase:"main",fn:L4,requiresIfExists:["offset"],data:{_skip:!1}};function Ob(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Rb(e){return[Sr,un,ln,Cr].some(function(t){return e[t]>=0})}function I4(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=yu(t,{elementContext:"reference"}),s=yu(t,{altBoundary:!0}),l=Ob(o,n),u=Ob(s,i,a),c=Rb(l),f=Rb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var O4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:I4};function R4(e,t,r){var n=jn(e),i=[Cr,Sr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Cr,un].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function k4(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=yy.reduce(function(c,f){return c[f]=R4(f,t.rects,a),c},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var N4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:k4};function F4(e){var t=e.state,r=e.name;t.modifiersData[r]=MM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var AM={name:"popperOffsets",enabled:!0,phase:"read",fn:F4,data:{}};function B4(e){return e==="x"?"y":"x"}function $4(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=yu(t,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),m=jn(t.placement),y=Ss(t.placement),_=!y,b=wy(m),x=B4(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,P=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(w){if(a){var D,N=b==="y"?Sr:Cr,H=b==="y"?ln:un,$=b==="y"?"height":"width",G=w[b],F=G+g[N],R=G-g[H],j=h?-C[$]/2:0,re=y===_s?S[$]:C[$],oe=y===_s?-C[$]:-S[$],ye=t.elements.arrow,Ae=h&&ye?by(ye):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:bM(),Q=V[N],W=V[H],q=Rl(0,S[$],Ae[$]),le=_?S[$]/2-j-q-Q-P.mainAxis:re-q-Q-P.mainAxis,de=_?-S[$]/2+j+q+W+P.mainAxis:oe+q+W+P.mainAxis,J=t.elements.arrow&&Ku(t.elements.arrow),L=J?b==="y"?J.clientTop||0:J.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=G+le-I-L,U=G+de-I,K=Rl(h?od(F,z):F,G,h?oo(R,U):R);w[b]=K,T[b]=K-G}if(s){var ne,fe=b==="x"?Sr:Cr,te=b==="x"?ln:un,ie=w[x],X=x==="y"?"height":"width",we=ie+g[fe],he=ie-g[te],xe=[Sr,Cr].indexOf(m)!==-1,Oe=(ne=A==null?void 0:A[x])!=null?ne:0,ze=xe?we:ie-S[X]-C[X]-Oe+P.altAxis,rt=xe?ie+S[X]+C[X]-Oe-P.altAxis:he,Je=h&&xe?d4(ze,ie,rt):Rl(h?ze:we,ie,h?rt:he);w[x]=Je,T[x]=Je-ie}t.modifiersData[n]=T}}var H4={name:"preventOverflow",enabled:!0,phase:"main",fn:$4,requiresIfExists:["offset"]};function z4(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function W4(e){return e===Ln(e)||!an(e)?xy(e):z4(e)}function V4(e){var t=e.getBoundingClientRect(),r=ws(t.width)/e.offsetWidth||1,n=ws(t.height)/e.offsetHeight||1;return r!==1||n!==1}function G4(e,t,r){r===void 0&&(r=!1);var n=an(t),i=an(t)&&V4(t),a=da(t),o=xs(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Kn(t)!=="body"||Cy(a))&&(s=W4(t)),an(t)?(l=xs(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Sy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function U4(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function j4(e){var t=U4(e);return s4.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function Y4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function q4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var kb={placement:"bottom",modifiers:[],strategy:"absolute"};function Nb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=Q4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:c,modifiers:f}=E(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],n,{name:"applyStyles",enabled:!1}]}}),a=$m(),o=B({styles:{popper:{position:E(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return Se(i,l=>{const u=E(a);u&&u.setOptions(l)},{deep:!0}),Se([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=EM(l,u,E(i)))}),Xt(()=>{s()}),{state:k(()=>{var l;return{...((l=E(a))==null?void 0:l.state)||{}}}),styles:k(()=>E(o).styles),attributes:k(()=>E(o).attributes),update:()=>{var l;return(l=E(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=E(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>E(a))}};function Q4(e){const t=Object.keys(e.elements),r=jp(t.map(i=>[i,e.styles[i]||{}])),n=jp(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}function Fb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return zu(()=>r()),{registerTimeout:t,cancelTimeout:r}}const Bb={prefix:Math.floor(Math.random()*1e4),current:0},J4=Symbol("elIdInjection"),PM=()=>ct()?Ee(J4,Bb):Bb,My=e=>{const t=PM(),r=gy();return k(()=>E(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let Yo=[];const $b=e=>{const t=e;t.key===Ot.esc&&Yo.forEach(r=>r(t))},eH=e=>{wt(()=>{Yo.length===0&&document.addEventListener("keydown",$b),Nt&&Yo.push(e)}),Xt(()=>{Yo=Yo.filter(t=>t!==e),Yo.length===0&&Nt&&document.removeEventListener("keydown",$b)})};let Hb;const LM=()=>{const e=gy(),t=PM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},tH=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},rH=()=>{const{id:e,selector:t}=LM();return Gd(()=>{Nt&&!Hb&&!document.body.querySelector(t.value)&&(Hb=tH(e.value))}),{id:e,selector:t}},nH=tt({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),DM=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Fb(),{registerTimeout:o,cancelTimeout:s}=Fb();return{onOpen:c=>{a(()=>{n(c);const f=E(r);$t(f)&&f>0&&o(()=>{i(c)},f)},E(e))},onClose:c=>{s(),a(()=>{i(c)},E(t))}}},IM=Symbol("elForwardRef"),iH=e=>{At(IM,{setForwardRef:r=>{e.value=r}})},aH=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),zb=B(0),OM=2e3,RM=Symbol("zIndexContextKey"),Ay=e=>{const t=e||Ee(RM,void 0),r=k(()=>{const a=E(t);return $t(a)?a:OM}),n=k(()=>r.value+zb.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(zb.value++,n.value)}},Xu=eh({type:String,values:Yu,required:!1}),kM=Symbol("size"),oH=()=>{const e=Ee(kM,{});return k(()=>E(e.size)||"")},NM=Symbol(),sd=B();function Ey(e,t=void 0){const r=ct()?Ee(NM,sd):sd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function sH(e,t){const r=Ey(),n=Ne(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Xp})),i=py(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=Ay(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||OM})),o=k(()=>{var s;return E(t)||((s=r.value)==null?void 0:s.size)||""});return FM(k(()=>E(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const FM=(e,t,r=!1)=>{var n;const i=!!ct(),a=i?Ey():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?At:void 0;if(!o)return;const s=k(()=>{const l=E(e);return a!=null&&a.value?lH(a.value,l):l});return o(NM,s),o(vM,k(()=>s.value.locale)),o(pM,k(()=>s.value.namespace)),o(RM,k(()=>s.value.zIndex)),o(kM,{size:k(()=>s.value.size||"")}),(r||!sd.value)&&(sd.value=s.value),s},lH=(e,t)=>{var r;const n=[...new Set([...Tb(e),...Tb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},uH=tt({a11y:{type:Boolean,default:!0},locale:{type:Le(Object)},size:Xu,button:{type:Le(Object)},experimentalFeatures:{type:Le(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Le(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),Qp={};ce({name:"ElConfigProvider",props:uH,setup(e,{slots:t}){Se(()=>e.message,n=>{Object.assign(Qp,n??{})},{immediate:!0,deep:!0});const r=FM(e);return()=>$e(t,"default",{config:r==null?void 0:r.value})}});var Ze=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const cH=tt({size:{type:Le([Number,String])},color:{type:String}}),fH=ce({name:"ElIcon",inheritAttrs:!1}),dH=ce({...fH,props:cH,setup(e){const t=e,r=Ne("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:ad(i)?void 0:po(i),"--color":a}});return(i,a)=>(Y(),me("i",ca({class:E(r).b(),style:E(n)},i.$attrs),[$e(i.$slots,"default")],16))}});var hH=Ze(dH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const lr=hr(hH),Bs=Symbol("formContextKey"),mo=Symbol("formItemContextKey"),ia=(e,t={})=>{const r=B(void 0),n=t.prop?r:gM("size"),i=t.global?r:oH(),a=t.form?{size:void 0}:Ee(Bs,void 0),o=t.formItem?{size:void 0}:Ee(mo,void 0);return k(()=>n.value||E(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},rh=e=>{const t=gM("disabled"),r=Ee(Bs,void 0);return k(()=>t.value||E(e)||(r==null?void 0:r.disabled)||!1)},Zu=()=>{const e=Ee(Bs,void 0),t=Ee(mo,void 0);return{form:e,formItem:t}},Py=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=B(!1)),n||(n=B(!1));const i=B();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return wt(()=>{a=Se([tn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:My().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),ks(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},vH=tt({size:{type:String,values:Yu},disabled:Boolean}),pH=tt({...vH,model:Object,rules:{type:Le(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),gH={validate:(e,t,r)=>(be(e)||He(e))&&Br(t)&&He(r)};function mH(){const e=B([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const yc=(e,t)=>{const r=$p(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},yH="ElForm",_H=ce({name:yH}),bH=ce({..._H,props:pH,emits:gH,setup(e,{expose:t,emit:r}){const n=e,i=[],a=ia(),o=Ne("form"),s=k(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},c=(y=[])=>{n.model&&yc(i,y).forEach(_=>_.resetField())},f=(y=[])=>{yc(i,y).forEach(_=>_.clearValidate())},d=k(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=yc(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const x of _)try{await x.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!De(_);try{const x=await p(y);return x===!0&&(_==null||_(x)),x}catch(x){if(x instanceof Error)throw x;const w=x;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=yc(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView(n.scrollIntoViewOptions))};return Se(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),At(Bs,fn({...$d(n),emit:r,resetFields:c,clearValidate:f,validateField:g,addField:l,removeField:u,...mH()})),t({validate:v,validateField:g,resetFields:c,clearValidate:f,scrollToField:m}),(y,_)=>(Y(),me("form",{class:ue(E(s))},[$e(y.$slots,"default")],2))}});var wH=Ze(bH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Mf(e,t,r){return SH()?Mf=Reflect.construct.bind():Mf=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&_u(u,o.prototype),u},Mf.apply(null,arguments)}function CH(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function eg(e){var t=typeof Map=="function"?new Map:void 0;return eg=function(n){if(n===null||!CH(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Mf(n,arguments,Jp(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),_u(i,n)},eg(e)}var TH=/%[sdj%]/g,MH=function(){};typeof process<"u"&&process.env;function tg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function kr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function AH(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function zt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||AH(t)&&typeof e=="string"&&!e)}function EH(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function Wb(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,st in e?fD(e,t,{enumerable:!0,config (?:`+n+":){1}(?:(?::"+n+"){0,4}:"+r+"|(?::"+n+`){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4 (?::(?:(?::`+n+"){0,5}:"+r+"|(?::"+n+`){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4 )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1 -`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",c="(?:\\S+(?::\\S*)?@)?",f=l.v4().source,d=l.v6().source,h="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",g="(?::\\d{2,5})?",m='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+c+"(?:localhost|"+f+"|"+d+"|"+h+v+p+")"+g+m;return _c=new RegExp("(?:^"+y+"$)","i"),_c},jb={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},bl={integer:function(t){return bl.number(t)&&parseInt(t,10)===t},float:function(t){return bl.number(t)&&!bl.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 typeof t=="object"&&!bl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(jb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(RH())},hex:function(t){return typeof t=="string"&&!!t.match(jb.hex)}},kH=function(t,r,n,i,a){if(t.required&&r===void 0){BM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?bl[s](r)||i.push(kr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(kr(a.messages.types[s],t.fullField,t.type))},NH=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=r,f=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?f="number":h?f="string":v&&(f="array"),!f)return!1;v&&(c=r.length),h&&(c=r.replace(u,"_").length),o?c!==t.len&&i.push(kr(a.messages[f].len,t.fullField,t.len)):s&&!l&&ct.max?i.push(kr(a.messages[f].max,t.fullField,t.max)):s&&l&&(ct.max)&&i.push(kr(a.messages[f].range,t.fullField,t.min,t.max))},Lo="enum",FH=function(t,r,n,i,a){t[Lo]=Array.isArray(t[Lo])?t[Lo]:[],t[Lo].indexOf(r)===-1&&i.push(kr(a.messages[Lo],t.fullField,t[Lo].join(", ")))},BH=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:BM,whitespace:OH,type:kH,range:NH,enum:FH,pattern:BH},$H=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),zt(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},HH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},zH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},WH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},VH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r)||Ye.type(t,r,i,o,a)}n(o)},GH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},UH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},jH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},YH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},qH="enum",KH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[qH](t,r,i,o,a)}n(o)},XH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},ZH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!zt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},QH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},Vh=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(zt(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),zt(r,o)||Ye.type(t,r,i,s,a)}n(s)},JH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},Nl={string:$H,method:HH,number:zH,boolean:WH,regexp:VH,integer:GH,float:UH,array:jH,object:YH,enum:KH,pattern:XH,date:ZH,url:Vh,hex:Vh,email:Vh,required:QH,any:JH};function rg(){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 ng=rg(),Qu=function(){function e(r){this.rules=null,this._messages=ng,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Ub(rg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function c(p){var g=[],m={};function y(b){if(Array.isArray(b)){var x;g=(x=g).concat.apply(x,b)}else g.push(b)}for(var _=0;_");const i=Fe("form"),a=B(),o=B(0),s=()=>{var c;if((c=a.value)!=null&&c.firstElementChild){const f=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(f))}else return 0},l=(c="update")=>{Ft(()=>{t.default&&e.isAutoWidth&&(c==="update"?o.value=s():c==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return wt(()=>{u()}),Xt(()=>{l("remove")}),Hu(()=>u()),Se(o,(c,f)=>{e.updateAll&&(r==null||r.registerLabelWidth(c,f))}),gs(k(()=>{var c,f;return(f=(c=a.value)==null?void 0:c.firstElementChild)!=null?f:null}),u),()=>{var c,f;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return ee("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(c=t.default)==null?void 0:c.call(t)])}else return ee(pt,{ref:a},[(f=t.default)==null?void 0:f.call(t)])}}});const nz=["role","aria-labelledby"],iz=ce({name:"ElFormItem"}),az=ce({...iz,props:tz,setup(e,{expose:t}){const r=e,n=Yd(),i=Ee(Bs,void 0),a=Ee(mo,void 0),o=ia(void 0,{formItem:!1}),s=Fe("form-item"),l=My().value,u=B([]),c=B(""),f=tR(c,100),d=B(""),h=B();let v,p=!1;const g=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",c.value==="error"),s.is("validating",c.value==="validating"),s.is("success",c.value==="success"),s.is("required",N.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>Br(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=k(()=>r.prop?He(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),S=k(()=>r.for||u.value.length===1?u.value[0]:void 0),C=k(()=>!S.value&&w.value),M=!!a,P=k(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return Sf(W,r.prop).value}),A=k(()=>{const{required:W}=r,q=[];r.rules&&q.push(...$p(r.rules));const le=i==null?void 0:i.rules;if(le&&r.prop){const de=Sf(le,r.prop).value;de&&q.push(...$p(de))}if(W!==void 0){const de=q.map((J,L)=>[J,L]).filter(([J])=>Object.keys(J).includes("required"));if(de.length>0)for(const[J,L]of de)J.required!==W&&(q[L]={...J,required:W});else q.push({required:W})}return q}),T=k(()=>A.value.length>0),D=W=>A.value.filter(le=>!le.trigger||!W?!0:Array.isArray(le.trigger)?le.trigger.includes(W):le.trigger===W).map(({trigger:le,...de})=>de),N=k(()=>A.value.some(W=>W.required)),H=k(()=>{var W;return f.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),$=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),G=W=>{c.value=W},F=W=>{var q,le;const{errors:de,fields:J}=W;(!de||!J)&&console.error(W),G("error"),d.value=de?(le=(q=de==null?void 0:de[0])==null?void 0:q.message)!=null?le:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},R=()=>{G("success"),i==null||i.emit("validate",r.prop,!0,"")},j=async W=>{const q=x.value;return new Qu({[q]:W}).validate({[q]:P.value},{firstFields:!0}).then(()=>(R(),!0)).catch(de=>(F(de),Promise.reject(de)))},re=async(W,q)=>{if(p||!r.prop)return!1;const le=De(q);if(!T.value)return q==null||q(!1),!1;const de=D(W);return de.length===0?(q==null||q(!0),!0):(G("validating"),j(de).then(()=>(q==null||q(!0),!0)).catch(J=>{const{fields:L}=J;return q==null||q(!1,L),le?!1:Promise.reject(L)}))},oe=()=>{G(""),d.value="",p=!1},ye=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const q=Sf(W,r.prop);p=!0,q.value=bb(v),await Ft(),oe(),p=!1},Ae=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(q=>q!==W)};Se(()=>r.error,W=>{d.value=W||"",G(W?"error":"")},{immediate:!0}),Se(()=>r.validateStatus,W=>G(W||""));const Q=fn({...$d(r),$el:h,size:o,validateState:c,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Ae,removeInputId:V,resetField:ye,clearValidate:oe,validate:re});return At(mo,Q),wt(()=>{r.prop&&(i==null||i.addField(Q),v=bb(P.value))}),Xt(()=>{i==null||i.removeField(Q)}),t({size:o,validateMessage:d,validateState:c,validate:re,clearValidate:oe,resetField:ye}),(W,q)=>{var le;return Y(),me("div",{ref_key:"formItemRef",ref:h,class:ue(E(y)),role:E(C)?"group":void 0,"aria-labelledby":E(C)?E(l):void 0},[ee(E(rz),{"is-auto-width":E(g).width==="auto","update-all":((le=E(i))==null?void 0:le.labelWidth)==="auto"},{default:Z(()=>[E(w)?(Y(),_e(nn(E(S)?"label":"div"),{key:0,id:E(l),for:E(S),class:ue(E(s).e("label")),style:St(E(g))},{default:Z(()=>[$e(W.$slots,"label",{label:E($)},()=>[Bt(Te(E($)),1)])]),_:3},8,["id","for","class","style"])):ke("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),ae("div",{class:ue(E(s).e("content")),style:St(E(m))},[$e(W.$slots,"default"),ee(NO,{name:`${E(s).namespace.value}-zoom-in-top`},{default:Z(()=>[E(H)?$e(W.$slots,"error",{key:0,error:d.value},()=>[ae("div",{class:ue(E(b))},Te(d.value),3)]):ke("v-if",!0)]),_:3},8,["name"])],6)],10,nz)}}});var $M=Ze(az,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const HM=hr(wH,{FormItem:$M}),zM=fa($M),Qo=4,oz={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},sz=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),WM=Symbol("scrollbarContextKey"),lz=tt({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),uz="Thumb",cz=ce({__name:"thumb",props:lz,setup(e){const t=e,r=Ee(WM),n=Fe("scrollbar");r||na(uz,"can not inject scrollbar context");const i=B(),a=B(),o=B({}),s=B(!1);let l=!1,u=!1,c=Nt?document.onselectstart:null;const f=k(()=>oz[t.vertical?"vertical":"horizontal"]),d=k(()=>sz({size:t.size,move:t.move,bar:f.value})),h=k(()=>i.value[f.value.offset]**2/r.wrapElement[f.value.scrollSize]/t.ratio/a.value[f.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[f.value.axis]=C[f.value.offset]-(w[f.value.client]-C.getBoundingClientRect()[f.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[f.value.direction]-w[f.value.client]),C=a.value[f.value.offset]/2,M=(S-C)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=M*r.wrapElement[f.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),c=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[f.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[f.value.direction]-w[f.value.client])*-1,M=a.value[f.value.offset]-S,P=(C-M)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=P*r.wrapElement[f.value.scrollSize]/100},y=()=>{l=!1,o.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};Xt(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return xn(tn(r,"scrollbarElement"),"mousemove",_),xn(tn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(Y(),_e(Ci,{name:E(n).b("fade"),persisted:""},{default:Z(()=>[nr(ae("div",{ref_key:"instance",ref:i,class:ue([E(n).e("bar"),E(n).is(E(f).key)]),onMousedown:p},[ae("div",{ref_key:"thumb",ref:a,class:ue(E(n).e("thumb")),style:St(E(d)),onMousedown:v},null,38)],34),[[yi,w.always||s.value]])]),_:1},8,["name"]))}});var qb=Ze(cz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const fz=tt({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),dz=ce({__name:"bar",props:fz,setup(e,{expose:t}){const r=e,n=B(0),i=B(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Qo,l=o.offsetWidth-Qo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(Y(),me(pt,null,[ee(qb,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),ee(qb,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var hz=Ze(dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const vz=tt({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Le([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),pz={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every($t)},gz="ElScrollbar",mz=ce({name:gz}),yz=ce({...mz,props:vz,emits:pz,setup(e,{expose:t,emit:r}){const n=e,i=Fe("scrollbar");let a,o;const s=B(),l=B(),u=B(),c=B("0"),f=B("0"),d=B(),h=B(1),v=B(1),p=k(()=>{const S={};return n.height&&(S.height=po(n.height)),n.maxHeight&&(S.maxHeight=po(n.maxHeight)),[n.wrapStyle,S]}),g=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=k(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=d.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){Xe(S)?l.value.scrollTo(S):$t(S)&&$t(C)&&l.value.scrollTo(S,C)}const b=S=>{$t(S)&&(l.value.scrollTop=S)},x=S=>{$t(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Qo,C=l.value.offsetWidth-Qo,M=S**2/l.value.scrollHeight,P=C**2/l.value.scrollWidth,A=Math.max(M,n.minSize),T=Math.max(P,n.minSize);h.value=M/(S-M)/(A/(S-A)),v.value=P/(C-P)/(T/(C-T)),f.value=A+Qon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=gs(u,w),o=xn("resize",w))},{immediate:!0}),Se(()=>[n.maxHeight,n.height],()=>{n.native||Ft(()=>{var S;w(),l.value&&((S=d.value)==null||S.handleScroll(l.value))})}),At(WM,fn({scrollbarElement:s,wrapElement:l})),wt(()=>{n.native||Ft(()=>{w()})}),Hu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(Y(),me("div",{ref_key:"scrollbarRef",ref:s,class:ue(E(i).b())},[ae("div",{ref_key:"wrapRef",ref:l,class:ue(E(g)),style:St(E(p)),onScroll:y},[(Y(),_e(nn(S.tag),{ref_key:"resizeRef",ref:u,class:ue(E(m)),style:St(S.viewStyle)},{default:Z(()=>[$e(S.$slots,"default")]),_:3},8,["class","style"]))],38),S.native?ke("v-if",!0):(Y(),_e(hz,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:S.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var _z=Ze(yz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const VM=hr(_z),Ly=Symbol("popper"),GM=Symbol("popperContent"),bz=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],UM=tt({role:{type:String,values:bz,default:"tooltip"}}),wz=ce({name:"ElPopper",inheritAttrs:!1}),xz=ce({...wz,props:UM,setup(e,{expose:t}){const r=e,n=B(),i=B(),a=B(),o=B(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),At(Ly,l),(u,c)=>$e(u.$slots,"default")}});var Sz=Ze(xz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const jM=tt({arrowOffset:{type:Number,default:5}}),Cz=ce({name:"ElPopperArrow",inheritAttrs:!1}),Tz=ce({...Cz,props:jM,setup(e,{expose:t}){const r=e,n=Fe("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Ee(GM,void 0);return Se(()=>r.arrowOffset,s=>{i.value=s}),Xt(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(Y(),me("span",{ref_key:"arrowRef",ref:a,class:ue(E(n).e("arrow")),style:St(E(o)),"data-popper-arrow":""},null,6))}});var Mz=Ze(Tz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Az="ElOnlyChild",Ez=ce({name:Az,setup(e,{slots:t,attrs:r}){var n;const i=Ee(IM),a=aH((n=i==null?void 0:i.setForwardRef)!=null?n:ur);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=YM(s);return l?nr(mi(l,r),[[a]]):null}}});function YM(e){if(!e)return null;const t=e;for(const r of t){if(Xe(r))switch(r.type){case xr:continue;case Ns:case"svg":return Kb(r);case pt:return YM(r.children);default:return r}return Kb(r)}return null}function Kb(e){const t=Fe("only-child");return ee("span",{class:t.e("content")},[e])}const qM=tt({virtualRef:{type:Le(Object)},virtualTriggering:Boolean,onMouseenter:{type:Le(Function)},onMouseleave:{type:Le(Function)},onClick:{type:Le(Function)},onKeydown:{type:Le(Function)},onFocus:{type:Le(Function)},onBlur:{type:Le(Function)},onContextmenu:{type:Le(Function)},id:String,open:Boolean}),Pz=ce({name:"ElPopperTrigger",inheritAttrs:!1}),Lz=ce({...Pz,props:qM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Ee(Ly,void 0);iH(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return wt(()=>{Se(()=>r.virtualRef,c=>{c&&(i.value=Ui(c))},{immediate:!0}),Se(i,(c,f)=>{u==null||u(),u=void 0,ys(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(c.addEventListener(d.slice(2).toLowerCase(),v),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),v))}),u=Se([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{gu(d[v])?c.removeAttribute(h):c.setAttribute(h,d[v])})},{immediate:!0})),ys(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),Xt(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(c,f)=>c.virtualTriggering?ke("v-if",!0):(Y(),_e(E(Ez),ca({key:0},c.$attrs,{"aria-controls":E(a),"aria-describedby":E(o),"aria-expanded":E(l),"aria-haspopup":E(s)}),{default:Z(()=>[$e(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Dz=Ze(Lz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Gh="focus-trap.focus-after-trapped",Uh="focus-trap.focus-after-released",Iz="focus-trap.focusout-prevented",Xb={cancelable:!0,bubbles:!1},Oz={cancelable:!0,bubbles:!1},Zb="focusAfterTrapped",Qb="focusAfterReleased",Rz=Symbol("elFocusTrap"),Dy=B(),nh=B(0),Iy=B(0);let bc=0;const KM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Jb=(e,t)=>{for(const r of e)if(!kz(r,t))return r},kz=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Nz=e=>{const t=KM(e),r=Jb(t,e),n=Jb(t.reverse(),e);return[r,n]},Fz=e=>e instanceof HTMLInputElement&&"select"in e,$i=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Iy.value=window.performance.now(),e!==r&&Fz(e)&&t&&e.select()}};function e1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const Bz=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=e1(e,n),e.unshift(n)},remove:n=>{var i,a;e=e1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},$z=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if($i(n,t),document.activeElement!==r)return},t1=Bz(),Hz=()=>nh.value>Iy.value,wc=()=>{Dy.value="pointer",nh.value=window.performance.now()},r1=()=>{Dy.value="keyboard",nh.value=window.performance.now()},zz=()=>(wt(()=>{bc===0&&(document.addEventListener("mousedown",wc),document.addEventListener("touchstart",wc),document.addEventListener("keydown",r1)),bc++}),Xt(()=>{bc--,bc<=0&&(document.removeEventListener("mousedown",wc),document.removeEventListener("touchstart",wc),document.removeEventListener("keydown",r1))}),{focusReason:Dy,lastUserFocusTimestamp:nh,lastAutomatedFocusTimestamp:Iy}),xc=e=>new CustomEvent(Iz,{...Oz,detail:e}),Wz=ce({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Zb,Qb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=B();let n,i;const{focusReason:a}=zz();eH(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===Ot.tab&&!g&&!m&&!y,S=document.activeElement;if(w&&S){const C=_,[M,P]=Nz(C);if(M&&P){if(!b&&S===P){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(M,!0))}else if(b&&[M,C].includes(S)){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(P,!0))}}else if(S===C){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||v.preventDefault()}}};At(Rz,{focusTrapRef:r,onKeydown:s}),Se(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),Se([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",c),v.addEventListener("focusout",f)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",c),p.removeEventListener("focusout",f))});const l=v=>{t(Zb,v)},u=v=>t(Qb,v),c=v=>{const p=E(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:$i(i,!0))},f=v=>{const p=E(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!gu(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=xc({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||$i(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Ft();const v=E(r);if(v){t1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Gh,Xb);v.addEventListener(Gh,l),v.dispatchEvent(m),m.defaultPrevented||Ft(()=>{let y=e.focusStartEl;He(y)||($i(y),document.activeElement!==y&&(y="first")),y==="first"&&$z(KM(v),!0),(document.activeElement===p||y==="container")&&$i(v)})}}}function h(){const v=E(r);if(v){v.removeEventListener(Gh,l);const p=new CustomEvent(Uh,{...Xb,detail:{focusReason:a.value}});v.addEventListener(Uh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!Hz()||v.contains(document.activeElement))&&$i(n??document.body),v.removeEventListener(Uh,l),t1.remove(o)}}return wt(()=>{e.trapped&&d(),Se(()=>e.trapped,v=>{v?d():h()})}),Xt(()=>{e.trapped&&h()}),{onKeydown:s}}});function Vz(e,t,r,n,i,a){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var Gz=Ze(Wz,[["render",Vz],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const Uz=["fixed","absolute"],jz=tt({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Le(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:yy,default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},strategy:{type:String,values:Uz,default:"absolute"}}),XM=tt({...jz,id:String,style:{type:Le([String,Array,Object])},className:{type:Le([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Le([String,Array,Object])},popperStyle:{type:Le([String,Array,Object])},referenceEl:{type:Le(Object)},triggerTargetEl:{type:Le(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Yz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},qz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...Xz(e),...t]};return Zz(a,i==null?void 0:i.modifiers),a},Kz=e=>{if(Nt)return Ui(e)};function Xz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function Zz(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const Qz=0,Jz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Ee(Ly,void 0),a=B(),o=B(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var m;const y=E(a),_=(m=E(o))!=null?m:Qz;return{name:"arrow",enabled:!L5(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...qz(e,[E(l),E(s)])})),c=k(()=>Kz(e.referenceEl)||E(n)),{attributes:f,state:d,styles:h,update:v,forceUpdate:p,instanceRef:g}=Z4(c,r,u);return Se(g,m=>t.value=m),wt(()=>{Se(()=>{var m;return(m=E(c))==null?void 0:m.getBoundingClientRect()},()=>{v()})}),{attributes:f,arrowRef:a,contentRef:r,instanceRef:g,state:d,styles:h,role:i,forceUpdate:p,update:v}},e6=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=Ay(),a=Fe("popper"),o=k(()=>E(t).popper),s=B(e.zIndex||i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:E(s)},e.popperStyle||{},E(r).popper]),c=k(()=>n.value==="dialog"?"false":void 0),f=k(()=>E(r).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=e.zIndex||i()}}},t6=(e,t)=>{const r=B(!1),n=B();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},r6=ce({name:"ElPopperContent"}),n6=ce({...r6,props:XM,emits:Yz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:c}=t6(n,r),{attributes:f,arrowRef:d,contentRef:h,styles:v,instanceRef:p,role:g,update:m}=Jz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:x,contentStyle:w,updateZIndex:S}=e6(n,{styles:v,attributes:f,role:g}),C=Ee(mo,void 0),M=B();At(GM,{arrowStyle:_,arrowRef:d,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&At(mo,{...C,addInputId:ur,removeInputId:ur});let P;const A=(D=!0)=>{m(),D&&S()},T=()=>{A(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return wt(()=>{Se(()=>n.triggerTargetEl,(D,N)=>{P==null||P(),P=void 0;const H=E(D||h.value),$=E(N||h.value);ys(H)&&(P=Se([g,()=>n.ariaLabel,y,()=>n.id],G=>{["role","aria-label","aria-modal","id"].forEach((F,R)=>{gu(G[R])?H.removeAttribute(F):H.setAttribute(F,G[R])})},{immediate:!0})),$!==H&&ys($)&&["role","aria-label","aria-modal","id"].forEach(G=>{$.removeAttribute(G)})},{immediate:!0}),Se(()=>n.visible,T,{immediate:!0})}),Xt(()=>{P==null||P(),P=void 0}),t({popperContentRef:h,popperInstanceRef:p,updatePopper:A,contentStyle:w}),(D,N)=>(Y(),me("div",ca({ref_key:"contentRef",ref:h},E(b),{style:E(w),class:E(x),tabindex:"-1",onMouseenter:N[0]||(N[0]=H=>D.$emit("mouseenter",H)),onMouseleave:N[1]||(N[1]=H=>D.$emit("mouseleave",H))}),[ee(E(Gz),{trapped:E(a),"trap-on-focus-in":!0,"focus-trap-el":E(h),"focus-start-el":E(i),onFocusAfterTrapped:E(s),onFocusAfterReleased:E(o),onFocusin:E(l),onFocusoutPrevented:E(u),onReleaseRequested:E(c)},{default:Z(()=>[$e(D.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var i6=Ze(n6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const a6=hr(Sz),Oy=Symbol("elTooltip"),qr=tt({...nH,...XM,appendTo:{type:Le([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Le(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),bu=tt({...qM,disabled:Boolean,trigger:{type:Le([String,Array]),default:"hover"},triggerKeys:{type:Le(Array),default:()=>[Ot.enter,Ot.space]}}),{useModelToggleProps:o6,useModelToggleEmits:s6,useModelToggle:l6}=K3("visible"),u6=tt({...UM,...o6,...qr,...bu,...jM,showArrow:{type:Boolean,default:!0}}),c6=[...s6,"before-show","before-hide","show","hide","open","close"],f6=(e,t)=>be(e)?e.includes(t):e===t,Do=(e,t,r)=>n=>{f6(E(e),t)&&r(n)},d6=ce({name:"ElTooltipTrigger"}),h6=ce({...d6,props:bu,setup(e,{expose:t}){const r=e,n=Fe("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Ee(Oy,void 0),c=B(null),f=()=>{if(E(i)||r.disabled)return!0},d=tn(r,"trigger"),h=fi(f,Do(d,"hover",s)),v=fi(f,Do(d,"hover",l)),p=fi(f,Do(d,"click",b=>{b.button===0&&u(b)})),g=fi(f,Do(d,"focus",s)),m=fi(f,Do(d,"focus",l)),y=fi(f,Do(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=fi(f,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:c}),(b,x)=>(Y(),_e(E(Dz),{id:E(a),"virtual-ref":b.virtualRef,open:E(o),"virtual-triggering":b.virtualTriggering,class:ue(E(n).e("trigger")),onBlur:E(m),onClick:E(p),onContextmenu:E(y),onFocus:E(g),onMouseenter:E(h),onMouseleave:E(v),onKeydown:E(_)},{default:Z(()=>[$e(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var v6=Ze(h6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const p6=ce({name:"ElTooltipContent",inheritAttrs:!1}),g6=ce({...p6,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=LM(),i=Fe("tooltip"),a=B(null),o=B(!1),{controlled:s,id:l,open:u,trigger:c,onClose:f,onOpen:d,onShow:h,onHide:v,onBeforeShow:p,onBeforeHide:g}=Ee(Oy,void 0),m=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);Xt(()=>{o.value=!0});const _=k(()=>E(y)?!0:E(u)),b=k(()=>r.disabled?!1:E(u)),x=k(()=>r.appendTo||n.value),w=k(()=>{var G;return(G=r.style)!=null?G:{}}),S=k(()=>!E(u)),C=()=>{v()},M=()=>{if(E(s))return!0},P=fi(M,()=>{r.enterable&&E(c)==="hover"&&d()}),A=fi(M,()=>{E(c)==="hover"&&f()}),T=()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G),p==null||p()},D=()=>{g==null||g()},N=()=>{h(),$=pR(k(()=>{var G;return(G=a.value)==null?void 0:G.popperContentRef}),()=>{if(E(s))return;E(c)!=="hover"&&f()})},H=()=>{r.virtualTriggering||f()};let $;return Se(()=>E(u),G=>{G||$==null||$()},{flush:"post"}),Se(()=>r.content,()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G)}),t({contentRef:a}),(G,F)=>(Y(),_e(eO,{disabled:!G.teleported,to:E(x)},[ee(Ci,{name:E(m),onAfterLeave:C,onBeforeEnter:T,onAfterEnter:N,onBeforeLeave:D},{default:Z(()=>[E(_)?nr((Y(),_e(E(i6),ca({key:0,id:E(l),ref_key:"contentRef",ref:a},G.$attrs,{"aria-label":G.ariaLabel,"aria-hidden":E(S),"boundaries-padding":G.boundariesPadding,"fallback-placements":G.fallbackPlacements,"gpu-acceleration":G.gpuAcceleration,offset:G.offset,placement:G.placement,"popper-options":G.popperOptions,strategy:G.strategy,effect:G.effect,enterable:G.enterable,pure:G.pure,"popper-class":G.popperClass,"popper-style":[G.popperStyle,E(w)],"reference-el":G.referenceEl,"trigger-target-el":G.triggerTargetEl,visible:E(b),"z-index":G.zIndex,onMouseenter:E(P),onMouseleave:E(A),onBlur:H,onClose:E(f)}),{default:Z(()=>[o.value?ke("v-if",!0):$e(G.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[yi,E(b)]]):ke("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var m6=Ze(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const y6=["innerHTML"],_6={key:1},b6=ce({name:"ElTooltip"}),w6=ce({...b6,props:u6,emits:c6,setup(e,{expose:t,emit:r}){const n=e;rH();const i=My(),a=B(),o=B(),s=()=>{var m;const y=E(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=B(!1),u=B(),{show:c,hide:f,hasUpdateHandler:d}=l6({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=DM({showAfter:tn(n,"showAfter"),hideAfter:tn(n,"hideAfter"),autoClose:tn(n,"autoClose"),open:c,close:f}),p=k(()=>Br(n.visible)&&!d.value);At(Oy,{controlled:p,id:i,open:$u(l),trigger:tn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{E(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),Se(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return qC(()=>l.value&&f()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:f}),(m,y)=>(Y(),_e(E(a6),{ref_key:"popperRef",ref:a,role:m.role},{default:Z(()=>[ee(v6,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:Z(()=>[m.$slots.default?$e(m.$slots,"default",{key:0}):ke("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(m6,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:Z(()=>[$e(m.$slots,"content",{},()=>[m.rawContent?(Y(),me("span",{key:0,innerHTML:m.content},null,8,y6)):(Y(),me("span",_6,Te(m.content),1))]),m.showArrow?(Y(),_e(E(Mz),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):ke("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var x6=Ze(w6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ju=hr(x6),S6=tt({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),C6=["textContent"],T6=ce({name:"ElBadge"}),M6=ce({...T6,props:S6,setup(e,{expose:t}){const r=e,n=Fe("badge"),i=k(()=>r.isDot?"":$t(r.value)&&$t(r.max)?r.max(Y(),me("div",{class:ue(E(n).b())},[$e(a.$slots,"default"),ee(Ci,{name:`${E(n).namespace.value}-zoom-in-center`,persisted:""},{default:Z(()=>[nr(ae("sup",{class:ue([E(n).e("content"),E(n).em("content",a.type),E(n).is("fixed",!!a.$slots.default),E(n).is("dot",a.isDot)]),textContent:Te(E(i))},null,10,C6),[[yi,!a.hidden&&(E(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var A6=Ze(M6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const E6=hr(A6),ZM=Symbol("buttonGroupContextKey"),P6=(e,t)=>{vy({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Ee(ZM,void 0),n=Ey("button"),{form:i}=Zu(),a=ia(k(()=>r==null?void 0:r.size)),o=rh(),s=B(),l=Yd(),u=k(()=>e.type||(r==null?void 0:r.type)||""),c=k(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),f=k(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(c.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Ns){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},L6=["default","primary","success","warning","info","danger","text",""],D6=["button","submit","reset"],ig=tt({size:Xu,disabled:Boolean,type:{type:String,values:L6,default:""},icon:{type:Wn},nativeType:{type:String,values:D6,default:"button"},loading:Boolean,loadingIcon:{type:Wn,default:()=>hy},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),I6={click:e=>e instanceof MouseEvent};function Kt(e,t){O6(e)&&(e="100%");var r=R6(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Sc(e){return Math.min(1,Math.max(0,e))}function O6(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function R6(e){return typeof e=="string"&&e.indexOf("%")!==-1}function QM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Cc(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Qa(e){return e.length===1?"0"+e:String(e)}function k6(e,t,r){return{r:Kt(e,255)*255,g:Kt(t,255)*255,b:Kt(r,255)*255}}function n1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function N6(e,t,r){var n,i,a;if(e=Kt(e,360),t=Kt(t,100),r=Kt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=jh(s,o,e+1/3),i=jh(s,o,e),a=jh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function i1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var ag={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function z6(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=G6(e)),typeof e=="object"&&(ii(e.r)&&ii(e.g)&&ii(e.b)?(t=k6(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ii(e.h)&&ii(e.s)&&ii(e.v)?(n=Cc(e.s),i=Cc(e.v),t=F6(e.h,n,i),o=!0,s="hsv"):ii(e.h)&&ii(e.s)&&ii(e.l)&&(n=Cc(e.s),a=Cc(e.l),t=N6(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=QM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var W6="[-\\+]?\\d+%?",V6="[-\\+]?\\d*\\.\\d+%?",ji="(?:".concat(V6,")|(?:").concat(W6,")"),Yh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),qh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),pn={CSS_UNIT:new RegExp(ji),rgb:new RegExp("rgb"+Yh),rgba:new RegExp("rgba"+qh),hsl:new RegExp("hsl"+Yh),hsla:new RegExp("hsla"+qh),hsv:new RegExp("hsv"+Yh),hsva:new RegExp("hsva"+qh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function G6(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ag[e])e=ag[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=pn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=pn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=pn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=pn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=pn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=pn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=pn.hex8.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),a:o1(r[4]),format:t?"name":"hex8"}:(r=pn.hex6.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),format:t?"name":"hex"}:(r=pn.hex4.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),a:o1(r[4]+r[4]),format:t?"name":"hex8"}:(r=pn.hex3.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ii(e){return Boolean(pn.CSS_UNIT.exec(String(e)))}var JM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=H6(t)),this.originalInput=t;var i=z6(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=QM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=i1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=i1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=n1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=n1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),a1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),B6(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(Kt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(Kt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+a1(this.r,this.g,this.b,!1),r=0,n=Object.entries(ag);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=Sc(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=Sc(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=Sc(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=Sc(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new JM(i),o=e.dark?a.tint(20).toString():Di(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Di(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Di(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Di(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Di(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Di(a,80):a.tint(80).toString());else{const s=e.dark?Di(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Di(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const j6=["aria-disabled","disabled","autofocus","type"],Y6=ce({name:"ElButton"}),q6=ce({...Y6,props:ig,emits:I6,setup(e,{expose:t,emit:r}){const n=e,i=U6(n),a=Fe("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:c,handleClick:f}=P6(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,h)=>(Y(),me("button",{ref_key:"_ref",ref:o,class:ue([E(a).b(),E(a).m(E(l)),E(a).m(E(s)),E(a).is("disabled",E(u)),E(a).is("loading",d.loading),E(a).is("plain",d.plain),E(a).is("round",d.round),E(a).is("circle",d.circle),E(a).is("text",d.text),E(a).is("link",d.link),E(a).is("has-bg",d.bg)]),"aria-disabled":E(u)||d.loading,disabled:E(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:St(E(i)),onClick:h[0]||(h[0]=(...v)=>E(f)&&E(f)(...v))},[d.loading?(Y(),me(pt,{key:0},[d.$slots.loading?$e(d.$slots,"loading",{key:0}):(Y(),_e(E(lr),{key:1,class:ue(E(a).is("loading"))},{default:Z(()=>[(Y(),_e(nn(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(Y(),_e(E(lr),{key:1},{default:Z(()=>[d.icon?(Y(),_e(nn(d.icon),{key:0})):$e(d.$slots,"icon",{key:1})]),_:3})):ke("v-if",!0),d.$slots.default?(Y(),me("span",{key:2,class:ue({[E(a).em("text","expand")]:E(c)})},[$e(d.$slots,"default")],2)):ke("v-if",!0)],14,j6))}});var K6=Ze(q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const X6={size:ig.size,type:ig.type},Z6=ce({name:"ElButtonGroup"}),Q6=ce({...Z6,props:X6,setup(e){const t=e;At(ZM,fn({size:tn(t,"size"),type:tn(t,"type")}));const r=Fe("button");return(n,i)=>(Y(),me("div",{class:ue(`${E(r).b("group")}`)},[$e(n.$slots,"default")],2))}});var eA=Ze(Q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const J6=hr(K6,{ButtonGroup:eA});fa(eA);var e8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Hi=new Map;let s1;Nt&&(document.addEventListener("mousedown",e=>s1=e),document.addEventListener("mouseup",e=>{for(const t of Hi.values())for(const{documentHandler:r}of t)r(e,s1)}));function l1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:ys(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,c=e.contains(o)||e.contains(s),f=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||c||f||d||h||t.value(n,i)}}const t8={beforeMount(e,t){Hi.has(e)||Hi.set(e,[]),Hi.get(e).push({documentHandler:l1(e,t),bindingFn:t.value})},updated(e,t){Hi.has(e)||Hi.set(e,[]);const r=Hi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:l1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Hi.delete(e)}};var u1=!1,qa,og,sg,Af,Ef,tA,Pf,lg,ug,cg,rA,fg,dg,nA,iA;function vr(){if(!u1){u1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(fg=/\b(iPhone|iP[ao]d)/.exec(e),dg=/\b(iP[ao]d)/.exec(e),cg=/Android/i.exec(e),nA=/FBAN\/\w+;/i.exec(e),iA=/Mobile/i.exec(e),rA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);tA=n?parseFloat(n[1])+4:qa,og=t[2]?parseFloat(t[2]):NaN,sg=t[3]?parseFloat(t[3]):NaN,Af=t[4]?parseFloat(t[4]):NaN,Af?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Ef=t&&t[1]?parseFloat(t[1]):NaN):Ef=NaN}else qa=og=sg=Ef=Af=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Pf=i?parseFloat(i[1].replace("_",".")):!0}else Pf=!1;lg=!!r[2],ug=!!r[3]}else Pf=lg=ug=!1}}var hg={ie:function(){return vr()||qa},ieCompatibilityMode:function(){return vr()||tA>qa},ie64:function(){return hg.ie()&&rA},firefox:function(){return vr()||og},opera:function(){return vr()||sg},webkit:function(){return vr()||Af},safari:function(){return hg.webkit()},chrome:function(){return vr()||Ef},windows:function(){return vr()||lg},osx:function(){return vr()||Pf},linux:function(){return vr()||ug},iphone:function(){return vr()||fg},mobile:function(){return vr()||fg||dg||cg||iA},nativeApp:function(){return vr()||nA},android:function(){return vr()||cg},ipad:function(){return vr()||dg}},r8=hg,Tc=!!(typeof window<"u"&&window.document&&window.document.createElement),n8={canUseDOM:Tc,canUseWorkers:typeof Worker<"u",canUseEventListeners:Tc&&!!(window.addEventListener||window.attachEvent),canUseViewport:Tc&&!!window.screen,isInWorker:!Tc},aA=n8,oA;aA.canUseDOM&&(oA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function i8(e,t){if(!aA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&oA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var a8=i8,c1=10,f1=40,d1=800;function sA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*c1,i=r*c1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=f1,i*=f1):(n*=d1,i*=d1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}sA.getEventType=function(){return r8.firefox()?"DOMMouseScroll":a8("wheel")?"wheel":"mousewheel"};var o8=sA;/** +`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",c="(?:\\S+(?::\\S*)?@)?",f=l.v4().source,d=l.v6().source,h="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",g="(?::\\d{2,5})?",m='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+c+"(?:localhost|"+f+"|"+d+"|"+h+v+p+")"+g+m;return _c=new RegExp("(?:^"+y+"$)","i"),_c},jb={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},bl={integer:function(t){return bl.number(t)&&parseInt(t,10)===t},float:function(t){return bl.number(t)&&!bl.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 typeof t=="object"&&!bl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(jb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(RH())},hex:function(t){return typeof t=="string"&&!!t.match(jb.hex)}},kH=function(t,r,n,i,a){if(t.required&&r===void 0){BM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?bl[s](r)||i.push(kr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(kr(a.messages.types[s],t.fullField,t.type))},NH=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=r,f=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?f="number":h?f="string":v&&(f="array"),!f)return!1;v&&(c=r.length),h&&(c=r.replace(u,"_").length),o?c!==t.len&&i.push(kr(a.messages[f].len,t.fullField,t.len)):s&&!l&&ct.max?i.push(kr(a.messages[f].max,t.fullField,t.max)):s&&l&&(ct.max)&&i.push(kr(a.messages[f].range,t.fullField,t.min,t.max))},Lo="enum",FH=function(t,r,n,i,a){t[Lo]=Array.isArray(t[Lo])?t[Lo]:[],t[Lo].indexOf(r)===-1&&i.push(kr(a.messages[Lo],t.fullField,t[Lo].join(", ")))},BH=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:BM,whitespace:OH,type:kH,range:NH,enum:FH,pattern:BH},$H=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),zt(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},HH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},zH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},WH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},VH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r)||Ye.type(t,r,i,o,a)}n(o)},GH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},UH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},jH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},YH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},qH="enum",KH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[qH](t,r,i,o,a)}n(o)},XH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},ZH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!zt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},QH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},Vh=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(zt(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),zt(r,o)||Ye.type(t,r,i,s,a)}n(s)},JH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},Nl={string:$H,method:HH,number:zH,boolean:WH,regexp:VH,integer:GH,float:UH,array:jH,object:YH,enum:KH,pattern:XH,date:ZH,url:Vh,hex:Vh,email:Vh,required:QH,any:JH};function rg(){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 ng=rg(),Qu=function(){function e(r){this.rules=null,this._messages=ng,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Ub(rg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function c(p){var g=[],m={};function y(b){if(Array.isArray(b)){var x;g=(x=g).concat.apply(x,b)}else g.push(b)}for(var _=0;_");const i=Ne("form"),a=B(),o=B(0),s=()=>{var c;if((c=a.value)!=null&&c.firstElementChild){const f=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(f))}else return 0},l=(c="update")=>{Ft(()=>{t.default&&e.isAutoWidth&&(c==="update"?o.value=s():c==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return wt(()=>{u()}),Xt(()=>{l("remove")}),Hu(()=>u()),Se(o,(c,f)=>{e.updateAll&&(r==null||r.registerLabelWidth(c,f))}),gs(k(()=>{var c,f;return(f=(c=a.value)==null?void 0:c.firstElementChild)!=null?f:null}),u),()=>{var c,f;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return ee("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(c=t.default)==null?void 0:c.call(t)])}else return ee(pt,{ref:a},[(f=t.default)==null?void 0:f.call(t)])}}});const nz=["role","aria-labelledby"],iz=ce({name:"ElFormItem"}),az=ce({...iz,props:tz,setup(e,{expose:t}){const r=e,n=Yd(),i=Ee(Bs,void 0),a=Ee(mo,void 0),o=ia(void 0,{formItem:!1}),s=Ne("form-item"),l=My().value,u=B([]),c=B(""),f=tR(c,100),d=B(""),h=B();let v,p=!1;const g=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",c.value==="error"),s.is("validating",c.value==="validating"),s.is("success",c.value==="success"),s.is("required",N.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>Br(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=k(()=>r.prop?He(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),S=k(()=>r.for||u.value.length===1?u.value[0]:void 0),C=k(()=>!S.value&&w.value),M=!!a,P=k(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return Sf(W,r.prop).value}),A=k(()=>{const{required:W}=r,q=[];r.rules&&q.push(...$p(r.rules));const le=i==null?void 0:i.rules;if(le&&r.prop){const de=Sf(le,r.prop).value;de&&q.push(...$p(de))}if(W!==void 0){const de=q.map((J,L)=>[J,L]).filter(([J])=>Object.keys(J).includes("required"));if(de.length>0)for(const[J,L]of de)J.required!==W&&(q[L]={...J,required:W});else q.push({required:W})}return q}),T=k(()=>A.value.length>0),D=W=>A.value.filter(le=>!le.trigger||!W?!0:Array.isArray(le.trigger)?le.trigger.includes(W):le.trigger===W).map(({trigger:le,...de})=>de),N=k(()=>A.value.some(W=>W.required)),H=k(()=>{var W;return f.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),$=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),G=W=>{c.value=W},F=W=>{var q,le;const{errors:de,fields:J}=W;(!de||!J)&&console.error(W),G("error"),d.value=de?(le=(q=de==null?void 0:de[0])==null?void 0:q.message)!=null?le:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},R=()=>{G("success"),i==null||i.emit("validate",r.prop,!0,"")},j=async W=>{const q=x.value;return new Qu({[q]:W}).validate({[q]:P.value},{firstFields:!0}).then(()=>(R(),!0)).catch(de=>(F(de),Promise.reject(de)))},re=async(W,q)=>{if(p||!r.prop)return!1;const le=De(q);if(!T.value)return q==null||q(!1),!1;const de=D(W);return de.length===0?(q==null||q(!0),!0):(G("validating"),j(de).then(()=>(q==null||q(!0),!0)).catch(J=>{const{fields:L}=J;return q==null||q(!1,L),le?!1:Promise.reject(L)}))},oe=()=>{G(""),d.value="",p=!1},ye=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const q=Sf(W,r.prop);p=!0,q.value=bb(v),await Ft(),oe(),p=!1},Ae=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(q=>q!==W)};Se(()=>r.error,W=>{d.value=W||"",G(W?"error":"")},{immediate:!0}),Se(()=>r.validateStatus,W=>G(W||""));const Q=fn({...$d(r),$el:h,size:o,validateState:c,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Ae,removeInputId:V,resetField:ye,clearValidate:oe,validate:re});return At(mo,Q),wt(()=>{r.prop&&(i==null||i.addField(Q),v=bb(P.value))}),Xt(()=>{i==null||i.removeField(Q)}),t({size:o,validateMessage:d,validateState:c,validate:re,clearValidate:oe,resetField:ye}),(W,q)=>{var le;return Y(),me("div",{ref_key:"formItemRef",ref:h,class:ue(E(y)),role:E(C)?"group":void 0,"aria-labelledby":E(C)?E(l):void 0},[ee(E(rz),{"is-auto-width":E(g).width==="auto","update-all":((le=E(i))==null?void 0:le.labelWidth)==="auto"},{default:Z(()=>[E(w)?(Y(),_e(nn(E(S)?"label":"div"),{key:0,id:E(l),for:E(S),class:ue(E(s).e("label")),style:St(E(g))},{default:Z(()=>[$e(W.$slots,"label",{label:E($)},()=>[Bt(Me(E($)),1)])]),_:3},8,["id","for","class","style"])):Fe("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),ae("div",{class:ue(E(s).e("content")),style:St(E(m))},[$e(W.$slots,"default"),ee(NO,{name:`${E(s).namespace.value}-zoom-in-top`},{default:Z(()=>[E(H)?$e(W.$slots,"error",{key:0,error:d.value},()=>[ae("div",{class:ue(E(b))},Me(d.value),3)]):Fe("v-if",!0)]),_:3},8,["name"])],6)],10,nz)}}});var $M=Ze(az,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const HM=hr(wH,{FormItem:$M}),zM=fa($M),Qo=4,oz={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},sz=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),WM=Symbol("scrollbarContextKey"),lz=tt({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),uz="Thumb",cz=ce({__name:"thumb",props:lz,setup(e){const t=e,r=Ee(WM),n=Ne("scrollbar");r||na(uz,"can not inject scrollbar context");const i=B(),a=B(),o=B({}),s=B(!1);let l=!1,u=!1,c=Nt?document.onselectstart:null;const f=k(()=>oz[t.vertical?"vertical":"horizontal"]),d=k(()=>sz({size:t.size,move:t.move,bar:f.value})),h=k(()=>i.value[f.value.offset]**2/r.wrapElement[f.value.scrollSize]/t.ratio/a.value[f.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[f.value.axis]=C[f.value.offset]-(w[f.value.client]-C.getBoundingClientRect()[f.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[f.value.direction]-w[f.value.client]),C=a.value[f.value.offset]/2,M=(S-C)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=M*r.wrapElement[f.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),c=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[f.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[f.value.direction]-w[f.value.client])*-1,M=a.value[f.value.offset]-S,P=(C-M)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=P*r.wrapElement[f.value.scrollSize]/100},y=()=>{l=!1,o.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};Xt(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return xn(tn(r,"scrollbarElement"),"mousemove",_),xn(tn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(Y(),_e(Ci,{name:E(n).b("fade"),persisted:""},{default:Z(()=>[nr(ae("div",{ref_key:"instance",ref:i,class:ue([E(n).e("bar"),E(n).is(E(f).key)]),onMousedown:p},[ae("div",{ref_key:"thumb",ref:a,class:ue(E(n).e("thumb")),style:St(E(d)),onMousedown:v},null,38)],34),[[yi,w.always||s.value]])]),_:1},8,["name"]))}});var qb=Ze(cz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const fz=tt({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),dz=ce({__name:"bar",props:fz,setup(e,{expose:t}){const r=e,n=B(0),i=B(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Qo,l=o.offsetWidth-Qo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(Y(),me(pt,null,[ee(qb,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),ee(qb,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var hz=Ze(dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const vz=tt({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Le([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),pz={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every($t)},gz="ElScrollbar",mz=ce({name:gz}),yz=ce({...mz,props:vz,emits:pz,setup(e,{expose:t,emit:r}){const n=e,i=Ne("scrollbar");let a,o;const s=B(),l=B(),u=B(),c=B("0"),f=B("0"),d=B(),h=B(1),v=B(1),p=k(()=>{const S={};return n.height&&(S.height=po(n.height)),n.maxHeight&&(S.maxHeight=po(n.maxHeight)),[n.wrapStyle,S]}),g=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=k(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=d.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){Xe(S)?l.value.scrollTo(S):$t(S)&&$t(C)&&l.value.scrollTo(S,C)}const b=S=>{$t(S)&&(l.value.scrollTop=S)},x=S=>{$t(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Qo,C=l.value.offsetWidth-Qo,M=S**2/l.value.scrollHeight,P=C**2/l.value.scrollWidth,A=Math.max(M,n.minSize),T=Math.max(P,n.minSize);h.value=M/(S-M)/(A/(S-A)),v.value=P/(C-P)/(T/(C-T)),f.value=A+Qon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=gs(u,w),o=xn("resize",w))},{immediate:!0}),Se(()=>[n.maxHeight,n.height],()=>{n.native||Ft(()=>{var S;w(),l.value&&((S=d.value)==null||S.handleScroll(l.value))})}),At(WM,fn({scrollbarElement:s,wrapElement:l})),wt(()=>{n.native||Ft(()=>{w()})}),Hu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(Y(),me("div",{ref_key:"scrollbarRef",ref:s,class:ue(E(i).b())},[ae("div",{ref_key:"wrapRef",ref:l,class:ue(E(g)),style:St(E(p)),onScroll:y},[(Y(),_e(nn(S.tag),{ref_key:"resizeRef",ref:u,class:ue(E(m)),style:St(S.viewStyle)},{default:Z(()=>[$e(S.$slots,"default")]),_:3},8,["class","style"]))],38),S.native?Fe("v-if",!0):(Y(),_e(hz,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:S.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var _z=Ze(yz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const VM=hr(_z),Ly=Symbol("popper"),GM=Symbol("popperContent"),bz=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],UM=tt({role:{type:String,values:bz,default:"tooltip"}}),wz=ce({name:"ElPopper",inheritAttrs:!1}),xz=ce({...wz,props:UM,setup(e,{expose:t}){const r=e,n=B(),i=B(),a=B(),o=B(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),At(Ly,l),(u,c)=>$e(u.$slots,"default")}});var Sz=Ze(xz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const jM=tt({arrowOffset:{type:Number,default:5}}),Cz=ce({name:"ElPopperArrow",inheritAttrs:!1}),Tz=ce({...Cz,props:jM,setup(e,{expose:t}){const r=e,n=Ne("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Ee(GM,void 0);return Se(()=>r.arrowOffset,s=>{i.value=s}),Xt(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(Y(),me("span",{ref_key:"arrowRef",ref:a,class:ue(E(n).e("arrow")),style:St(E(o)),"data-popper-arrow":""},null,6))}});var Mz=Ze(Tz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Az="ElOnlyChild",Ez=ce({name:Az,setup(e,{slots:t,attrs:r}){var n;const i=Ee(IM),a=aH((n=i==null?void 0:i.setForwardRef)!=null?n:ur);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=YM(s);return l?nr(mi(l,r),[[a]]):null}}});function YM(e){if(!e)return null;const t=e;for(const r of t){if(Xe(r))switch(r.type){case xr:continue;case Ns:case"svg":return Kb(r);case pt:return YM(r.children);default:return r}return Kb(r)}return null}function Kb(e){const t=Ne("only-child");return ee("span",{class:t.e("content")},[e])}const qM=tt({virtualRef:{type:Le(Object)},virtualTriggering:Boolean,onMouseenter:{type:Le(Function)},onMouseleave:{type:Le(Function)},onClick:{type:Le(Function)},onKeydown:{type:Le(Function)},onFocus:{type:Le(Function)},onBlur:{type:Le(Function)},onContextmenu:{type:Le(Function)},id:String,open:Boolean}),Pz=ce({name:"ElPopperTrigger",inheritAttrs:!1}),Lz=ce({...Pz,props:qM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Ee(Ly,void 0);iH(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return wt(()=>{Se(()=>r.virtualRef,c=>{c&&(i.value=Ui(c))},{immediate:!0}),Se(i,(c,f)=>{u==null||u(),u=void 0,ys(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(c.addEventListener(d.slice(2).toLowerCase(),v),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),v))}),u=Se([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{gu(d[v])?c.removeAttribute(h):c.setAttribute(h,d[v])})},{immediate:!0})),ys(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),Xt(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(c,f)=>c.virtualTriggering?Fe("v-if",!0):(Y(),_e(E(Ez),ca({key:0},c.$attrs,{"aria-controls":E(a),"aria-describedby":E(o),"aria-expanded":E(l),"aria-haspopup":E(s)}),{default:Z(()=>[$e(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Dz=Ze(Lz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Gh="focus-trap.focus-after-trapped",Uh="focus-trap.focus-after-released",Iz="focus-trap.focusout-prevented",Xb={cancelable:!0,bubbles:!1},Oz={cancelable:!0,bubbles:!1},Zb="focusAfterTrapped",Qb="focusAfterReleased",Rz=Symbol("elFocusTrap"),Dy=B(),nh=B(0),Iy=B(0);let bc=0;const KM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Jb=(e,t)=>{for(const r of e)if(!kz(r,t))return r},kz=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Nz=e=>{const t=KM(e),r=Jb(t,e),n=Jb(t.reverse(),e);return[r,n]},Fz=e=>e instanceof HTMLInputElement&&"select"in e,$i=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Iy.value=window.performance.now(),e!==r&&Fz(e)&&t&&e.select()}};function e1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const Bz=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=e1(e,n),e.unshift(n)},remove:n=>{var i,a;e=e1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},$z=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if($i(n,t),document.activeElement!==r)return},t1=Bz(),Hz=()=>nh.value>Iy.value,wc=()=>{Dy.value="pointer",nh.value=window.performance.now()},r1=()=>{Dy.value="keyboard",nh.value=window.performance.now()},zz=()=>(wt(()=>{bc===0&&(document.addEventListener("mousedown",wc),document.addEventListener("touchstart",wc),document.addEventListener("keydown",r1)),bc++}),Xt(()=>{bc--,bc<=0&&(document.removeEventListener("mousedown",wc),document.removeEventListener("touchstart",wc),document.removeEventListener("keydown",r1))}),{focusReason:Dy,lastUserFocusTimestamp:nh,lastAutomatedFocusTimestamp:Iy}),xc=e=>new CustomEvent(Iz,{...Oz,detail:e}),Wz=ce({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Zb,Qb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=B();let n,i;const{focusReason:a}=zz();eH(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===Ot.tab&&!g&&!m&&!y,S=document.activeElement;if(w&&S){const C=_,[M,P]=Nz(C);if(M&&P){if(!b&&S===P){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(M,!0))}else if(b&&[M,C].includes(S)){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(P,!0))}}else if(S===C){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||v.preventDefault()}}};At(Rz,{focusTrapRef:r,onKeydown:s}),Se(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),Se([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",c),v.addEventListener("focusout",f)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",c),p.removeEventListener("focusout",f))});const l=v=>{t(Zb,v)},u=v=>t(Qb,v),c=v=>{const p=E(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:$i(i,!0))},f=v=>{const p=E(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!gu(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=xc({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||$i(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Ft();const v=E(r);if(v){t1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Gh,Xb);v.addEventListener(Gh,l),v.dispatchEvent(m),m.defaultPrevented||Ft(()=>{let y=e.focusStartEl;He(y)||($i(y),document.activeElement!==y&&(y="first")),y==="first"&&$z(KM(v),!0),(document.activeElement===p||y==="container")&&$i(v)})}}}function h(){const v=E(r);if(v){v.removeEventListener(Gh,l);const p=new CustomEvent(Uh,{...Xb,detail:{focusReason:a.value}});v.addEventListener(Uh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!Hz()||v.contains(document.activeElement))&&$i(n??document.body),v.removeEventListener(Uh,l),t1.remove(o)}}return wt(()=>{e.trapped&&d(),Se(()=>e.trapped,v=>{v?d():h()})}),Xt(()=>{e.trapped&&h()}),{onKeydown:s}}});function Vz(e,t,r,n,i,a){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var Gz=Ze(Wz,[["render",Vz],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const Uz=["fixed","absolute"],jz=tt({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Le(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:yy,default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},strategy:{type:String,values:Uz,default:"absolute"}}),XM=tt({...jz,id:String,style:{type:Le([String,Array,Object])},className:{type:Le([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Le([String,Array,Object])},popperStyle:{type:Le([String,Array,Object])},referenceEl:{type:Le(Object)},triggerTargetEl:{type:Le(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Yz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},qz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...Xz(e),...t]};return Zz(a,i==null?void 0:i.modifiers),a},Kz=e=>{if(Nt)return Ui(e)};function Xz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function Zz(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const Qz=0,Jz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Ee(Ly,void 0),a=B(),o=B(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var m;const y=E(a),_=(m=E(o))!=null?m:Qz;return{name:"arrow",enabled:!L5(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...qz(e,[E(l),E(s)])})),c=k(()=>Kz(e.referenceEl)||E(n)),{attributes:f,state:d,styles:h,update:v,forceUpdate:p,instanceRef:g}=Z4(c,r,u);return Se(g,m=>t.value=m),wt(()=>{Se(()=>{var m;return(m=E(c))==null?void 0:m.getBoundingClientRect()},()=>{v()})}),{attributes:f,arrowRef:a,contentRef:r,instanceRef:g,state:d,styles:h,role:i,forceUpdate:p,update:v}},e6=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=Ay(),a=Ne("popper"),o=k(()=>E(t).popper),s=B(e.zIndex||i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:E(s)},e.popperStyle||{},E(r).popper]),c=k(()=>n.value==="dialog"?"false":void 0),f=k(()=>E(r).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=e.zIndex||i()}}},t6=(e,t)=>{const r=B(!1),n=B();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},r6=ce({name:"ElPopperContent"}),n6=ce({...r6,props:XM,emits:Yz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:c}=t6(n,r),{attributes:f,arrowRef:d,contentRef:h,styles:v,instanceRef:p,role:g,update:m}=Jz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:x,contentStyle:w,updateZIndex:S}=e6(n,{styles:v,attributes:f,role:g}),C=Ee(mo,void 0),M=B();At(GM,{arrowStyle:_,arrowRef:d,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&At(mo,{...C,addInputId:ur,removeInputId:ur});let P;const A=(D=!0)=>{m(),D&&S()},T=()=>{A(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return wt(()=>{Se(()=>n.triggerTargetEl,(D,N)=>{P==null||P(),P=void 0;const H=E(D||h.value),$=E(N||h.value);ys(H)&&(P=Se([g,()=>n.ariaLabel,y,()=>n.id],G=>{["role","aria-label","aria-modal","id"].forEach((F,R)=>{gu(G[R])?H.removeAttribute(F):H.setAttribute(F,G[R])})},{immediate:!0})),$!==H&&ys($)&&["role","aria-label","aria-modal","id"].forEach(G=>{$.removeAttribute(G)})},{immediate:!0}),Se(()=>n.visible,T,{immediate:!0})}),Xt(()=>{P==null||P(),P=void 0}),t({popperContentRef:h,popperInstanceRef:p,updatePopper:A,contentStyle:w}),(D,N)=>(Y(),me("div",ca({ref_key:"contentRef",ref:h},E(b),{style:E(w),class:E(x),tabindex:"-1",onMouseenter:N[0]||(N[0]=H=>D.$emit("mouseenter",H)),onMouseleave:N[1]||(N[1]=H=>D.$emit("mouseleave",H))}),[ee(E(Gz),{trapped:E(a),"trap-on-focus-in":!0,"focus-trap-el":E(h),"focus-start-el":E(i),onFocusAfterTrapped:E(s),onFocusAfterReleased:E(o),onFocusin:E(l),onFocusoutPrevented:E(u),onReleaseRequested:E(c)},{default:Z(()=>[$e(D.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var i6=Ze(n6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const a6=hr(Sz),Oy=Symbol("elTooltip"),qr=tt({...nH,...XM,appendTo:{type:Le([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Le(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),bu=tt({...qM,disabled:Boolean,trigger:{type:Le([String,Array]),default:"hover"},triggerKeys:{type:Le(Array),default:()=>[Ot.enter,Ot.space]}}),{useModelToggleProps:o6,useModelToggleEmits:s6,useModelToggle:l6}=K3("visible"),u6=tt({...UM,...o6,...qr,...bu,...jM,showArrow:{type:Boolean,default:!0}}),c6=[...s6,"before-show","before-hide","show","hide","open","close"],f6=(e,t)=>be(e)?e.includes(t):e===t,Do=(e,t,r)=>n=>{f6(E(e),t)&&r(n)},d6=ce({name:"ElTooltipTrigger"}),h6=ce({...d6,props:bu,setup(e,{expose:t}){const r=e,n=Ne("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Ee(Oy,void 0),c=B(null),f=()=>{if(E(i)||r.disabled)return!0},d=tn(r,"trigger"),h=fi(f,Do(d,"hover",s)),v=fi(f,Do(d,"hover",l)),p=fi(f,Do(d,"click",b=>{b.button===0&&u(b)})),g=fi(f,Do(d,"focus",s)),m=fi(f,Do(d,"focus",l)),y=fi(f,Do(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=fi(f,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:c}),(b,x)=>(Y(),_e(E(Dz),{id:E(a),"virtual-ref":b.virtualRef,open:E(o),"virtual-triggering":b.virtualTriggering,class:ue(E(n).e("trigger")),onBlur:E(m),onClick:E(p),onContextmenu:E(y),onFocus:E(g),onMouseenter:E(h),onMouseleave:E(v),onKeydown:E(_)},{default:Z(()=>[$e(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var v6=Ze(h6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const p6=ce({name:"ElTooltipContent",inheritAttrs:!1}),g6=ce({...p6,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=LM(),i=Ne("tooltip"),a=B(null),o=B(!1),{controlled:s,id:l,open:u,trigger:c,onClose:f,onOpen:d,onShow:h,onHide:v,onBeforeShow:p,onBeforeHide:g}=Ee(Oy,void 0),m=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);Xt(()=>{o.value=!0});const _=k(()=>E(y)?!0:E(u)),b=k(()=>r.disabled?!1:E(u)),x=k(()=>r.appendTo||n.value),w=k(()=>{var G;return(G=r.style)!=null?G:{}}),S=k(()=>!E(u)),C=()=>{v()},M=()=>{if(E(s))return!0},P=fi(M,()=>{r.enterable&&E(c)==="hover"&&d()}),A=fi(M,()=>{E(c)==="hover"&&f()}),T=()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G),p==null||p()},D=()=>{g==null||g()},N=()=>{h(),$=pR(k(()=>{var G;return(G=a.value)==null?void 0:G.popperContentRef}),()=>{if(E(s))return;E(c)!=="hover"&&f()})},H=()=>{r.virtualTriggering||f()};let $;return Se(()=>E(u),G=>{G||$==null||$()},{flush:"post"}),Se(()=>r.content,()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G)}),t({contentRef:a}),(G,F)=>(Y(),_e(eO,{disabled:!G.teleported,to:E(x)},[ee(Ci,{name:E(m),onAfterLeave:C,onBeforeEnter:T,onAfterEnter:N,onBeforeLeave:D},{default:Z(()=>[E(_)?nr((Y(),_e(E(i6),ca({key:0,id:E(l),ref_key:"contentRef",ref:a},G.$attrs,{"aria-label":G.ariaLabel,"aria-hidden":E(S),"boundaries-padding":G.boundariesPadding,"fallback-placements":G.fallbackPlacements,"gpu-acceleration":G.gpuAcceleration,offset:G.offset,placement:G.placement,"popper-options":G.popperOptions,strategy:G.strategy,effect:G.effect,enterable:G.enterable,pure:G.pure,"popper-class":G.popperClass,"popper-style":[G.popperStyle,E(w)],"reference-el":G.referenceEl,"trigger-target-el":G.triggerTargetEl,visible:E(b),"z-index":G.zIndex,onMouseenter:E(P),onMouseleave:E(A),onBlur:H,onClose:E(f)}),{default:Z(()=>[o.value?Fe("v-if",!0):$e(G.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[yi,E(b)]]):Fe("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var m6=Ze(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const y6=["innerHTML"],_6={key:1},b6=ce({name:"ElTooltip"}),w6=ce({...b6,props:u6,emits:c6,setup(e,{expose:t,emit:r}){const n=e;rH();const i=My(),a=B(),o=B(),s=()=>{var m;const y=E(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=B(!1),u=B(),{show:c,hide:f,hasUpdateHandler:d}=l6({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=DM({showAfter:tn(n,"showAfter"),hideAfter:tn(n,"hideAfter"),autoClose:tn(n,"autoClose"),open:c,close:f}),p=k(()=>Br(n.visible)&&!d.value);At(Oy,{controlled:p,id:i,open:$u(l),trigger:tn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{E(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),Se(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return qC(()=>l.value&&f()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:f}),(m,y)=>(Y(),_e(E(a6),{ref_key:"popperRef",ref:a,role:m.role},{default:Z(()=>[ee(v6,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:Z(()=>[m.$slots.default?$e(m.$slots,"default",{key:0}):Fe("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(m6,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:Z(()=>[$e(m.$slots,"content",{},()=>[m.rawContent?(Y(),me("span",{key:0,innerHTML:m.content},null,8,y6)):(Y(),me("span",_6,Me(m.content),1))]),m.showArrow?(Y(),_e(E(Mz),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):Fe("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var x6=Ze(w6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ju=hr(x6),S6=tt({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),C6=["textContent"],T6=ce({name:"ElBadge"}),M6=ce({...T6,props:S6,setup(e,{expose:t}){const r=e,n=Ne("badge"),i=k(()=>r.isDot?"":$t(r.value)&&$t(r.max)?r.max(Y(),me("div",{class:ue(E(n).b())},[$e(a.$slots,"default"),ee(Ci,{name:`${E(n).namespace.value}-zoom-in-center`,persisted:""},{default:Z(()=>[nr(ae("sup",{class:ue([E(n).e("content"),E(n).em("content",a.type),E(n).is("fixed",!!a.$slots.default),E(n).is("dot",a.isDot)]),textContent:Me(E(i))},null,10,C6),[[yi,!a.hidden&&(E(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var A6=Ze(M6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const E6=hr(A6),ZM=Symbol("buttonGroupContextKey"),P6=(e,t)=>{vy({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Ee(ZM,void 0),n=Ey("button"),{form:i}=Zu(),a=ia(k(()=>r==null?void 0:r.size)),o=rh(),s=B(),l=Yd(),u=k(()=>e.type||(r==null?void 0:r.type)||""),c=k(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),f=k(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(c.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Ns){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},L6=["default","primary","success","warning","info","danger","text",""],D6=["button","submit","reset"],ig=tt({size:Xu,disabled:Boolean,type:{type:String,values:L6,default:""},icon:{type:Wn},nativeType:{type:String,values:D6,default:"button"},loading:Boolean,loadingIcon:{type:Wn,default:()=>hy},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),I6={click:e=>e instanceof MouseEvent};function Kt(e,t){O6(e)&&(e="100%");var r=R6(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Sc(e){return Math.min(1,Math.max(0,e))}function O6(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function R6(e){return typeof e=="string"&&e.indexOf("%")!==-1}function QM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Cc(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Qa(e){return e.length===1?"0"+e:String(e)}function k6(e,t,r){return{r:Kt(e,255)*255,g:Kt(t,255)*255,b:Kt(r,255)*255}}function n1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function N6(e,t,r){var n,i,a;if(e=Kt(e,360),t=Kt(t,100),r=Kt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=jh(s,o,e+1/3),i=jh(s,o,e),a=jh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function i1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var ag={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function z6(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=G6(e)),typeof e=="object"&&(ii(e.r)&&ii(e.g)&&ii(e.b)?(t=k6(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ii(e.h)&&ii(e.s)&&ii(e.v)?(n=Cc(e.s),i=Cc(e.v),t=F6(e.h,n,i),o=!0,s="hsv"):ii(e.h)&&ii(e.s)&&ii(e.l)&&(n=Cc(e.s),a=Cc(e.l),t=N6(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=QM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var W6="[-\\+]?\\d+%?",V6="[-\\+]?\\d*\\.\\d+%?",ji="(?:".concat(V6,")|(?:").concat(W6,")"),Yh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),qh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),pn={CSS_UNIT:new RegExp(ji),rgb:new RegExp("rgb"+Yh),rgba:new RegExp("rgba"+qh),hsl:new RegExp("hsl"+Yh),hsla:new RegExp("hsla"+qh),hsv:new RegExp("hsv"+Yh),hsva:new RegExp("hsva"+qh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function G6(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ag[e])e=ag[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=pn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=pn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=pn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=pn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=pn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=pn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=pn.hex8.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),a:o1(r[4]),format:t?"name":"hex8"}:(r=pn.hex6.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),format:t?"name":"hex"}:(r=pn.hex4.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),a:o1(r[4]+r[4]),format:t?"name":"hex8"}:(r=pn.hex3.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ii(e){return Boolean(pn.CSS_UNIT.exec(String(e)))}var JM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=H6(t)),this.originalInput=t;var i=z6(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=QM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=i1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=i1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=n1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=n1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),a1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),B6(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(Kt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(Kt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+a1(this.r,this.g,this.b,!1),r=0,n=Object.entries(ag);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=Sc(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=Sc(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=Sc(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=Sc(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new JM(i),o=e.dark?a.tint(20).toString():Di(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Di(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Di(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Di(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Di(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Di(a,80):a.tint(80).toString());else{const s=e.dark?Di(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Di(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const j6=["aria-disabled","disabled","autofocus","type"],Y6=ce({name:"ElButton"}),q6=ce({...Y6,props:ig,emits:I6,setup(e,{expose:t,emit:r}){const n=e,i=U6(n),a=Ne("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:c,handleClick:f}=P6(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,h)=>(Y(),me("button",{ref_key:"_ref",ref:o,class:ue([E(a).b(),E(a).m(E(l)),E(a).m(E(s)),E(a).is("disabled",E(u)),E(a).is("loading",d.loading),E(a).is("plain",d.plain),E(a).is("round",d.round),E(a).is("circle",d.circle),E(a).is("text",d.text),E(a).is("link",d.link),E(a).is("has-bg",d.bg)]),"aria-disabled":E(u)||d.loading,disabled:E(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:St(E(i)),onClick:h[0]||(h[0]=(...v)=>E(f)&&E(f)(...v))},[d.loading?(Y(),me(pt,{key:0},[d.$slots.loading?$e(d.$slots,"loading",{key:0}):(Y(),_e(E(lr),{key:1,class:ue(E(a).is("loading"))},{default:Z(()=>[(Y(),_e(nn(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(Y(),_e(E(lr),{key:1},{default:Z(()=>[d.icon?(Y(),_e(nn(d.icon),{key:0})):$e(d.$slots,"icon",{key:1})]),_:3})):Fe("v-if",!0),d.$slots.default?(Y(),me("span",{key:2,class:ue({[E(a).em("text","expand")]:E(c)})},[$e(d.$slots,"default")],2)):Fe("v-if",!0)],14,j6))}});var K6=Ze(q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const X6={size:ig.size,type:ig.type},Z6=ce({name:"ElButtonGroup"}),Q6=ce({...Z6,props:X6,setup(e){const t=e;At(ZM,fn({size:tn(t,"size"),type:tn(t,"type")}));const r=Ne("button");return(n,i)=>(Y(),me("div",{class:ue(`${E(r).b("group")}`)},[$e(n.$slots,"default")],2))}});var eA=Ze(Q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const J6=hr(K6,{ButtonGroup:eA});fa(eA);var e8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Hi=new Map;let s1;Nt&&(document.addEventListener("mousedown",e=>s1=e),document.addEventListener("mouseup",e=>{for(const t of Hi.values())for(const{documentHandler:r}of t)r(e,s1)}));function l1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:ys(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,c=e.contains(o)||e.contains(s),f=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||c||f||d||h||t.value(n,i)}}const t8={beforeMount(e,t){Hi.has(e)||Hi.set(e,[]),Hi.get(e).push({documentHandler:l1(e,t),bindingFn:t.value})},updated(e,t){Hi.has(e)||Hi.set(e,[]);const r=Hi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:l1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Hi.delete(e)}};var u1=!1,qa,og,sg,Af,Ef,tA,Pf,lg,ug,cg,rA,fg,dg,nA,iA;function vr(){if(!u1){u1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(fg=/\b(iPhone|iP[ao]d)/.exec(e),dg=/\b(iP[ao]d)/.exec(e),cg=/Android/i.exec(e),nA=/FBAN\/\w+;/i.exec(e),iA=/Mobile/i.exec(e),rA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);tA=n?parseFloat(n[1])+4:qa,og=t[2]?parseFloat(t[2]):NaN,sg=t[3]?parseFloat(t[3]):NaN,Af=t[4]?parseFloat(t[4]):NaN,Af?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Ef=t&&t[1]?parseFloat(t[1]):NaN):Ef=NaN}else qa=og=sg=Ef=Af=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Pf=i?parseFloat(i[1].replace("_",".")):!0}else Pf=!1;lg=!!r[2],ug=!!r[3]}else Pf=lg=ug=!1}}var hg={ie:function(){return vr()||qa},ieCompatibilityMode:function(){return vr()||tA>qa},ie64:function(){return hg.ie()&&rA},firefox:function(){return vr()||og},opera:function(){return vr()||sg},webkit:function(){return vr()||Af},safari:function(){return hg.webkit()},chrome:function(){return vr()||Ef},windows:function(){return vr()||lg},osx:function(){return vr()||Pf},linux:function(){return vr()||ug},iphone:function(){return vr()||fg},mobile:function(){return vr()||fg||dg||cg||iA},nativeApp:function(){return vr()||nA},android:function(){return vr()||cg},ipad:function(){return vr()||dg}},r8=hg,Tc=!!(typeof window<"u"&&window.document&&window.document.createElement),n8={canUseDOM:Tc,canUseWorkers:typeof Worker<"u",canUseEventListeners:Tc&&!!(window.addEventListener||window.attachEvent),canUseViewport:Tc&&!!window.screen,isInWorker:!Tc},aA=n8,oA;aA.canUseDOM&&(oA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function i8(e,t){if(!aA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&oA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var a8=i8,c1=10,f1=40,d1=800;function sA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*c1,i=r*c1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=f1,i*=f1):(n*=d1,i*=d1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}sA.getEventType=function(){return r8.firefox()?"DOMMouseScroll":a8("wheel")?"wheel":"mousewheel"};var o8=sA;/** * Checks if an event is supported in the current execution environment. * * NOTE: This will not work correctly for non-generic events such as `change`, @@ -22,13 +22,13 @@ var fD=Object.defineProperty;var dD=(e,t,r)=>t in e?fD(e,t,{enumerable:!0,config * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const s8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=o8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},l8={beforeMount(e,t){s8(e,t.value)}},lA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Xu,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},uA={[go]:e=>He(e)||$t(e)||Br(e),change:e=>He(e)||$t(e)||Br(e)},$s=Symbol("checkboxGroupContextKey"),u8=({model:e,isChecked:t})=>{const r=Ee($s,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!ad(s)&&e.value.length>=s&&!t.value||!ad(l)&&e.value.length<=l&&t.value});return{isDisabled:rh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},c8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Ee($s,void 0),{formItem:s}=Zu(),{emit:l}=ct();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function c(v,p){l("change",u(v),p)}function f(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ft(),c(t.value,v)))}const h=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return Se(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:f,onClickRoot:d}},f8=e=>{const t=B(!1),{emit:r}=ct(),n=Ee($s,void 0),i=k(()=>ad(n)===!1),a=B(!1);return{model:k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&be(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(go,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},d8=(e,t,{model:r})=>{const n=Ee($s,void 0),i=B(!1),a=k(()=>{const u=r.value;return Br(u)?u:be(u)?Xe(e.label)?u.map(Ke).some(c=>P5(c,e.label)):u.map(Ke).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},h8=(e,{model:t})=>{function r(){be(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},cA=(e,t)=>{const{formItem:r}=Zu(),{model:n,isGroup:i,isLimitExceeded:a}=f8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c}=d8(e,t,{model:n}),{isDisabled:f}=u8({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=Py(e,{formItemContext:r,disableIdGeneration:c,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=c8(e,{model:n,isLimitExceeded:a,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return h8(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:f,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c,model:n,handleChange:v,onClickRoot:p}},v8=["tabindex","role","aria-checked"],p8=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],g8=["id","aria-hidden","disabled","value","name","tabindex"],m8=ce({name:"ElCheckbox"}),y8=ce({...m8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=cA(t,r),h=Fe("checkbox"),v=k(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=k(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(Y(),_e(nn(!E(u)&&E(i)?"span":"label"),{class:ue(E(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:E(d)},{default:Z(()=>[ae("span",{class:ue(E(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?nr((Y(),me("input",{key:0,id:E(n),"onUpdate:modelValue":m[0]||(m[0]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:E(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,p8)),[[Qf,E(c)]]):nr((Y(),me("input",{key:1,id:E(n),"onUpdate:modelValue":m[4]||(m[4]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:E(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,g8)),[[Qf,E(c)]]),ae("span",{class:ue(E(h).e("inner"))},null,2)],10,v8),E(u)?(Y(),me("span",{key:0,class:ue(E(h).e("label"))},[$e(g.$slots,"default"),g.$slots.default?ke("v-if",!0):(Y(),me(pt,{key:0},[Bt(Te(g.label),1)],64))],2)):ke("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var _8=Ze(y8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const b8=["name","tabindex","disabled","true-value","false-value"],w8=["name","tabindex","disabled","value"],x8=ce({name:"ElCheckboxButton"}),S8=ce({...x8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=cA(t,r),u=Ee($s,void 0),c=Fe("checkbox"),f=k(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=k(()=>[c.b("button"),c.bm("button",o.value),c.is("disabled",a.value),c.is("checked",i.value),c.is("focus",n.value)]);return(h,v)=>(Y(),me("label",{class:ue(E(d))},[h.trueLabel||h.falseLabel?nr((Y(),me("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,b8)),[[Qf,E(s)]]):nr((Y(),me("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,w8)),[[Qf,E(s)]]),h.$slots.default||h.label?(Y(),me("span",{key:2,class:ue(E(c).be("button","inner")),style:St(E(i)?E(f):void 0)},[$e(h.$slots,"default",{},()=>[Bt(Te(h.label),1)])],6)):ke("v-if",!0)],2))}});var fA=Ze(S8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const C8=tt({modelValue:{type:Le(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Xu,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),T8={[go]:e=>be(e),change:e=>be(e)},M8=ce({name:"ElCheckboxGroup"}),A8=ce({...M8,props:C8,emits:T8,setup(e,{emit:t}){const r=e,n=Fe("checkbox"),{formItem:i}=Zu(),{inputId:a,isLabeledByFormItem:o}=Py(r,{formItemContext:i}),s=async u=>{t(go,u),await Ft(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return At($s,{...k5($d(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),Se(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return Y(),_e(nn(u.tag),{id:E(a),class:ue(E(n).b("group")),role:"group","aria-label":E(o)?void 0:u.label||"checkbox-group","aria-labelledby":E(o)?(f=E(i))==null?void 0:f.labelId:void 0},{default:Z(()=>[$e(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var dA=Ze(A8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Cs=hr(_8,{CheckboxButton:fA,CheckboxGroup:dA});fa(fA);fa(dA);const E8=tt({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Yu,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),P8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},L8=ce({name:"ElTag"}),D8=ce({...L8,props:E8,emits:P8,setup(e,{emit:t}){const r=e,n=ia(),i=Fe("tag"),a=k(()=>{const{type:l,hit:u,effect:c,closable:f,round:d}=r;return[i.b(),i.is("closable",f),i.m(l),i.m(n.value),i.m(c),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(Y(),me("span",{key:0,class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):ke("v-if",!0)],6)):(Y(),_e(Ci,{key:1,name:`${E(i).namespace.value}-zoom-in-center`,appear:""},{default:Z(()=>[ae("span",{class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):ke("v-if",!0)],6)]),_:3},8,["name"]))}});var I8=Ze(D8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const O8=hr(I8),hA=Symbol("rowContextKey"),R8=["start","center","end","space-around","space-between","space-evenly"],k8=["top","middle","bottom"],N8=tt({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:R8,default:"start"},align:{type:String,values:k8,default:"top"}}),F8=ce({name:"ElRow"}),B8=ce({...F8,props:N8,setup(e){const t=e,r=Fe("row"),n=k(()=>t.gutter);At(hA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var $8=Ze(B8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const vA=hr($8),H8=tt({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Le([Number,Object]),default:()=>Ya({})},sm:{type:Le([Number,Object]),default:()=>Ya({})},md:{type:Le([Number,Object]),default:()=>Ya({})},lg:{type:Le([Number,Object]),default:()=>Ya({})},xl:{type:Le([Number,Object]),default:()=>Ya({})}}),z8=ce({name:"ElCol"}),W8=ce({...z8,props:H8,setup(e){const t=e,{gutter:r}=Ee(hA,{gutter:k(()=>0)}),n=Fe("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];$t(c)&&(u==="span"?o.push(n.b(`${t[u]}`)):c>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{$t(t[u])?o.push(n.b(`${u}-${t[u]}`)):Xe(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{o.push(c!=="span"?n.b(`${u}-${c}-${f}`):n.b(`${u}-${f}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ze(W8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const pA=hr(V8),G8=ce({name:"ElCollapseTransition"}),U8=ce({...G8,setup(e){const t=Fe("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(Y(),_e(Ci,ca({name:E(t).b()},RI(r)),{default:Z(()=>[$e(n.$slots,"default")]),_:3},16,["name"]))}});var Lf=Ze(U8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);Lf.install=e=>{e.component(Lf.name,Lf)};const j8=Lf,Y8=ce({inheritAttrs:!1});function q8(e,t,r,n,i,a){return $e(e.$slots,"default")}var K8=Ze(Y8,[["render",q8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const X8=ce({name:"ElCollectionItem",inheritAttrs:!1});function Z8(e,t,r,n,i,a){return $e(e.$slots,"default")}var Q8=Ze(X8,[["render",Z8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const J8="data-el-collection-item",eW=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...K8,name:t,setup(){const s=B(null),l=new Map;At(n,{itemMap:l,getItems:()=>{const c=E(s);if(!c)return[];const f=Array.from(c.querySelectorAll(`[${J8}]`));return[...l.values()].sort((h,v)=>f.indexOf(h.ref)-f.indexOf(v.ref))},collectionRef:s})}},o={...Q8,name:r,setup(s,{attrs:l}){const u=B(null),c=Ee(n,void 0);At(i,{collectionItemRef:u}),wt(()=>{const f=E(u);f&&c.itemMap.set(f,{ref:f,...l})}),Xt(()=>{const f=E(u);c.itemMap.delete(f)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Kh=tt({trigger:bu.trigger,effect:{...qr.effect,default:"light"},type:{type:Le(String)},placement:{type:Le(String),default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Le([Number,String]),default:0},maxHeight:{type:Le([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Le(Object)},teleported:qr.teleported});tt({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wn}});tt({onKeydown:{type:Le(Function)}});Ot.down,Ot.pageDown,Ot.home;Ot.up,Ot.pageUp,Ot.end;eW("Dropdown");let tW=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Ot.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Ot.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Ot.tab:{wf(t,"mouseleave");break}case Ot.enter:case Ot.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},rW=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new tW(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Ot.down:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Ot.up:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Ot.tab:{wf(t.currentTarget,"mouseleave");break}case Ot.enter:case Ot.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},nW=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new rW(n,t)})}};const iW=ce({name:"ElMenuCollapseTransition",setup(){const e=Fe("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Zo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){ss(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Ol(r,e.m("collapse"))?(ss(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Zo(r,e.m("collapse"))):(Zo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),ss(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Zo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function aW(e,t,r,n,i,a){return Y(),_e(Ci,ca({mode:"out-in"},e.listeners),{default:Z(()=>[$e(e.$slots,"default")]),_:3},16)}var oW=Ze(iW,[["render",aW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function gA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function sW(e){return k(()=>{const r=e.backgroundColor;return r?new JM(r).shade(20).toString():""})}const mA=(e,t)=>{const r=Fe("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":sW(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},lW=tt({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wn},expandOpenIcon:{type:Wn},collapseCloseIcon:{type:Wn},collapseOpenIcon:{type:Wn}}),Mc="ElSubMenu";var Ry=ce({name:Mc,props:lW,setup(e,{slots:t,expose:r}){vy({from:"popper-append-to-body",replacement:"teleported",scope:Mc,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=ct(),{indexPath:i,parentMenu:a}=gA(n,k(()=>e.index)),o=Fe("menu"),s=Fe("sub-menu"),l=Ee("rootMenu");l||na(Mc,"can not inject root menu");const u=Ee(`subMenu:${a.value.uid}`);u||na(Mc,"can not inject sub menu");const c=B({}),f=B({});let d;const h=B(!1),v=B(),p=B(null),g=k(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=k(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:lM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:dy),y=k(()=>u.level===0),_=k(()=>{var R;const j=(R=e.teleported)!=null?R:e.popperAppendToBody;return j===void 0?y.value:j}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=k(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),S=k(()=>{let R=!1;return Object.values(c.value).forEach(j=>{j.active&&(R=!0)}),Object.values(f.value).forEach(j=>{j.active&&(R=!0)}),R}),C=k(()=>l.props.backgroundColor||""),M=k(()=>l.props.activeTextColor||""),P=k(()=>l.props.textColor||""),A=k(()=>l.props.mode),T=fn({index:e.index,indexPath:i,active:S}),D=k(()=>A.value!=="horizontal"?{color:P.value}:{borderBottomColor:S.value?l.props.activeTextColor?M.value:"":"transparent",color:S.value?M.value:P.value}),N=()=>{var R,j,re;return(re=(j=(R=p.value)==null?void 0:R.popperRef)==null?void 0:j.popperInstanceRef)==null?void 0:re.destroy()},H=R=>{R||N()},$=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},G=(R,j=e.showTimeout)=>{var re;R.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=kp(()=>{l.openMenu(e.index,i.value)},j),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},F=(R=!1)=>{var j,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=kp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&R&&((j=n.parent)==null?void 0:j.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};Se(()=>l.props.collapse,R=>H(Boolean(R)));{const R=re=>{f.value[re.index]=re},j=re=>{delete f.value[re.index]};At(`subMenu:${n.uid}`,{addSubMenu:R,removeSubMenu:j,handleMouseleave:F,mouseInChild:h,level:u.level+1})}return r({opened:w}),wt(()=>{l.addSubMenu(T),u.addSubMenu(T)}),Xt(()=>{u.removeSubMenu(T),l.removeSubMenu(T)}),()=>{var R;const j=[(R=t.title)==null?void 0:R.call(t),Ce(lr,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>He(m.value)?Ce(n.appContext.components[m.value]):Ce(m.value)})],re=mA(l.props,u.level+1),oe=l.isMenuPopup?Ce(Ju,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var ye;return Ce("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Ae=>G(Ae,100),onMouseleave:()=>F(!0),onFocus:Ae=>G(Ae,100)},[Ce("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)])])},default:()=>Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:$},j)}):Ce(pt,{},[Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:$},j),Ce(j8,{},{default:()=>{var ye;return nr(Ce("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)]),[[yi,w.value]])}})]);return Ce("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:G,onMouseleave:()=>F(!0),onFocus:G},[oe])}}});const uW=tt({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Le(Array),default:()=>Ya([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Xh=e=>Array.isArray(e)&&e.every(t=>He(t)),cW={close:(e,t)=>He(e)&&Xh(t),open:(e,t)=>He(e)&&Xh(t),select:(e,t,r,n)=>He(e)&&Xh(t)&&Xe(r)&&(n===void 0||n instanceof Promise)};var fW=ce({name:"ElMenu",props:uW,emits:cW,setup(e,{emit:t,slots:r,expose:n}){const i=ct(),a=i.appContext.config.globalProperties.$router,o=B(),s=Fe("menu"),l=Fe("sub-menu"),u=B(-1),c=B(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=B(e.defaultActive),d=B({}),h=B({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const A=f.value&&d.value[f.value];if(!A||e.mode==="horizontal"||e.collapse)return;A.indexPath.forEach(D=>{const N=h.value[D];N&&g(D,N.indexPath)})},g=(A,T)=>{c.value.includes(A)||(e.uniqueOpened&&(c.value=c.value.filter(D=>T.includes(D))),c.value.push(A),t("open",A,T))},m=A=>{const T=c.value.indexOf(A);T!==-1&&c.value.splice(T,1)},y=(A,T)=>{m(A),t("close",A,T)},_=({index:A,indexPath:T})=>{c.value.includes(A)?y(A,T):g(A,T)},b=A=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:T,indexPath:D}=A;if(!(gu(T)||gu(D)))if(e.router&&a){const N=A.route||T,H=a.push(N).then($=>($||(f.value=T),$));t("select",T,D,{index:T,indexPath:D,route:N},H)}else f.value=T,t("select",T,D,{index:T,indexPath:D})},x=A=>{const T=d.value,D=T[A]||f.value&&T[f.value]||T[e.defaultActive];D?f.value=D.index:f.value=A},w=()=>{var A,T;if(!o.value)return-1;const D=Array.from((T=(A=o.value)==null?void 0:A.childNodes)!=null?T:[]).filter(j=>j.nodeName!=="#text"||j.nodeValue),N=64,H=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),$=Number.parseInt(getComputedStyle(o.value).paddingRight,10),G=o.value.clientWidth-H-$;let F=0,R=0;return D.forEach((j,re)=>{F+=j.offsetWidth||0,F<=G-N&&(R=re+1)}),R===D.length?-1:R},S=(A,T=33.34)=>{let D;return()=>{D&&clearTimeout(D),D=setTimeout(()=>{A()},T)}};let C=!0;const M=()=>{const A=()=>{u.value=-1,Ft(()=>{u.value=w()})};C?A():S(A)(),C=!1};Se(()=>e.defaultActive,A=>{d.value[A]||(f.value=""),x(A)}),Se(()=>e.collapse,A=>{A&&(c.value=[])}),Se(d.value,p);let P;io(()=>{e.mode==="horizontal"&&e.ellipsis?P=gs(o,M).stop:P==null||P()});{const A=H=>{h.value[H.index]=H},T=H=>{delete h.value[H.index]};At("rootMenu",fn({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:v,addMenuItem:H=>{d.value[H.index]=H},removeMenuItem:H=>{delete d.value[H.index]},addSubMenu:A,removeSubMenu:T,openMenu:g,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),At(`subMenu:${i.uid}`,{addSubMenu:A,removeSubMenu:T,mouseInChild:B(!1),level:0})}return wt(()=>{e.mode==="horizontal"&&new nW(i.vnode.el,s.namespace.value)}),n({open:T=>{const{indexPath:D}=h.value[T];D.forEach(N=>g(N,D))},close:m,handleResize:M}),()=>{var A,T;let D=(T=(A=r.default)==null?void 0:A.call(r))!=null?T:[];const N=[];if(e.mode==="horizontal"&&o.value){const G=Cf(D),F=u.value===-1?G:G.slice(0,u.value),R=u.value===-1?[]:G.slice(u.value);R!=null&&R.length&&e.ellipsis&&(D=F,N.push(Ce(Ry,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>Ce(lr,{class:l.e("icon-more")},{default:()=>Ce(M3)}),default:()=>R})))}const H=mA(e,0),$=Ce("ul",{key:String(e.collapse),role:"menubar",ref:o,style:H.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...D,...N]);return e.collapseTransition&&e.mode==="vertical"?Ce(oW,()=>$):$}}});const dW=tt({index:{type:Le([String,null]),default:null},route:{type:Le([String,Object])},disabled:Boolean}),hW={click:e=>He(e.index)&&Array.isArray(e.indexPath)},Zh="ElMenuItem",vW=ce({name:Zh,components:{ElTooltip:Ju},props:dW,emits:hW,setup(e,{emit:t}){const r=ct(),n=Ee("rootMenu"),i=Fe("menu"),a=Fe("menu-item");n||na(Zh,"can not inject root menu");const{parentMenu:o,indexPath:s}=gA(r,tn(e,"index")),l=Ee(`subMenu:${o.value.uid}`);l||na(Zh,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),c=fn({index:e.index,indexPath:s,active:u}),f=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",c))};return wt(()=>{l.addSubMenu(c),n.addMenuItem(c)}),Xt(()=>{l.removeSubMenu(c),n.removeMenuItem(c)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:f}}});function pW(e,t,r,n,i,a){const o=_r("el-tooltip");return Y(),me("li",{class:ue([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(Y(),_e(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:Z(()=>[$e(e.$slots,"title")]),default:Z(()=>[ae("div",{class:ue(e.nsMenu.be("tooltip","trigger"))},[$e(e.$slots,"default")],2)]),_:3},8,["effect"])):(Y(),me(pt,{key:1},[$e(e.$slots,"default"),$e(e.$slots,"title")],64))],2)}var yA=Ze(vW,[["render",pW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const gW={title:String},mW="ElMenuItemGroup",yW=ce({name:mW,props:gW,setup(){return{ns:Fe("menu-item-group")}}});function _W(e,t,r,n,i,a){return Y(),me("li",{class:ue(e.ns.b())},[ae("div",{class:ue(e.ns.e("title"))},[e.$slots.title?$e(e.$slots,"title",{key:1}):(Y(),me(pt,{key:0},[Bt(Te(e.title),1)],64))],2),ae("ul",null,[$e(e.$slots,"default")])],2)}var _A=Ze(yW,[["render",_W],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const bW=hr(fW,{MenuItem:yA,MenuItemGroup:_A,SubMenu:Ry}),wW=fa(yA);fa(_A);const xW=fa(Ry),SW=tt({trigger:bu.trigger,placement:Kh.placement,disabled:bu.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Kh.popperOptions,tabindex:Kh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),CW={"update:visible":e=>Br(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},TW="onUpdate:visible",MW=ce({name:"ElPopover"}),AW=ce({...MW,props:SW,emits:CW,setup(e,{expose:t,emit:r}){const n=e,i=k(()=>n[TW]),a=Fe("popover"),o=B(),s=k(()=>{var g;return(g=E(o))==null?void 0:g.popperRef}),l=k(()=>[{width:po(n.width)},n.popperStyle]),u=k(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),c=k(()=>n.transition===`${a.namespace.value}-fade-in-linear`),f=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:f}),(g,m)=>(Y(),_e(E(Ju),ca({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":E(u),"popper-style":E(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":E(c),"onUpdate:visible":E(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:Z(()=>[g.title?(Y(),me("div",{key:0,class:ue(E(a).e("title")),role:"title"},Te(g.title),3)):ke("v-if",!0),$e(g.$slots,"default",{},()=>[Bt(Te(g.content),1)])]),default:Z(()=>[g.$slots.reference?$e(g.$slots,"reference",{key:0}):ke("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var EW=Ze(AW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const h1=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var PW={mounted(e,t){h1(e,t)},updated(e,t){h1(e,t)}};const LW="popover",DW=H3(PW,LW),IW=hr(EW,{directive:DW}),OW=tt({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Wn},inactiveIcon:{type:Wn},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Le(Function)},size:{type:String,validator:z3},tabindex:{type:[String,Number]}}),RW={[go]:e=>Br(e)||He(e)||$t(e),[qp]:e=>Br(e)||He(e)||$t(e),[Kp]:e=>Br(e)||He(e)||$t(e)},kW=["onClick"],NW=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],FW=["aria-hidden"],BW=["aria-hidden"],$W=["aria-hidden"],vg="ElSwitch",HW=ce({name:vg}),zW=ce({...HW,props:OW,emits:RW,setup(e,{expose:t,emit:r}){const n=e,i=ct(),{formItem:a}=Zu(),o=ia(),s=Fe("switch");vy({from:'"value"',replacement:'"model-value" or "v-model"',scope:vg,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var x;return!!((x=i.vnode.props)!=null&&x.value)}));const{inputId:l}=Py(n,{formItemContext:a}),u=rh(k(()=>n.loading)),c=B(n.modelValue!==!1),f=B(),d=B(),h=k(()=>[s.b(),s.m(o.value),s.is("disabled",u.value),s.is("checked",g.value)]),v=k(()=>({width:po(n.width)}));Se(()=>n.modelValue,()=>{c.value=!0}),Se(()=>n.value,()=>{c.value=!1});const p=k(()=>c.value?n.modelValue:n.value),g=k(()=>p.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(p.value)||(r(go,n.inactiveValue),r(qp,n.inactiveValue),r(Kp,n.inactiveValue)),Se(g,x=>{var w;f.value.checked=x,n.validateEvent&&((w=a==null?void 0:a.validate)==null||w.call(a,"change").catch(S=>void 0))});const m=()=>{const x=g.value?n.inactiveValue:n.activeValue;r(go,x),r(qp,x),r(Kp,x),Ft(()=>{f.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:x}=n;if(!x){m();return}const w=x();[jf(w),Br(w)].includes(!0)||na(vg,"beforeChange must return type `Promise` or `boolean`"),jf(w)?w.then(C=>{C&&m()}).catch(C=>{}):w&&m()},_=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),b=()=>{var x,w;(w=(x=f.value)==null?void 0:x.focus)==null||w.call(x)};return wt(()=>{f.value.checked=g.value}),t({focus:b,checked:g}),(x,w)=>(Y(),me("div",{class:ue(E(h)),style:St(E(_)),onClick:Jf(y,["prevent"])},[ae("input",{id:E(l),ref_key:"input",ref:f,class:ue(E(s).e("input")),type:"checkbox",role:"switch","aria-checked":E(g),"aria-disabled":E(u),name:x.name,"true-value":x.activeValue,"false-value":x.inactiveValue,disabled:E(u),tabindex:x.tabindex,onChange:m,onKeydown:UO(y,["enter"])},null,42,NW),!x.inlinePrompt&&(x.inactiveIcon||x.inactiveText)?(Y(),me("span",{key:0,class:ue([E(s).e("label"),E(s).em("label","left"),E(s).is("active",!E(g))])},[x.inactiveIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.inactiveIcon)))]),_:1})):ke("v-if",!0),!x.inactiveIcon&&x.inactiveText?(Y(),me("span",{key:1,"aria-hidden":E(g)},Te(x.inactiveText),9,FW)):ke("v-if",!0)],2)):ke("v-if",!0),ae("span",{ref_key:"core",ref:d,class:ue(E(s).e("core")),style:St(E(v))},[x.inlinePrompt?(Y(),me("div",{key:0,class:ue(E(s).e("inner"))},[x.activeIcon||x.inactiveIcon?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("icon"))},{default:Z(()=>[(Y(),_e(nn(E(g)?x.activeIcon:x.inactiveIcon)))]),_:1},8,["class"])):x.activeText||x.inactiveText?(Y(),me("span",{key:1,class:ue(E(s).is("text")),"aria-hidden":!E(g)},Te(E(g)?x.activeText:x.inactiveText),11,BW)):ke("v-if",!0)],2)):ke("v-if",!0),ae("div",{class:ue(E(s).e("action"))},[x.loading?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("loading"))},{default:Z(()=>[ee(E(hy))]),_:1},8,["class"])):ke("v-if",!0)],2)],6),!x.inlinePrompt&&(x.activeIcon||x.activeText)?(Y(),me("span",{key:1,class:ue([E(s).e("label"),E(s).em("label","right"),E(s).is("active",E(g))])},[x.activeIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.activeIcon)))]),_:1})):ke("v-if",!0),!x.activeIcon&&x.activeText?(Y(),me("span",{key:1,"aria-hidden":!E(g)},Te(x.activeText),9,$W)):ke("v-if",!0)],2)):ke("v-if",!0)],14,kW))}});var WW=Ze(zW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const VW=hr(WW);/*! +*/const s8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=o8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},l8={beforeMount(e,t){s8(e,t.value)}},lA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Xu,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},uA={[go]:e=>He(e)||$t(e)||Br(e),change:e=>He(e)||$t(e)||Br(e)},$s=Symbol("checkboxGroupContextKey"),u8=({model:e,isChecked:t})=>{const r=Ee($s,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!ad(s)&&e.value.length>=s&&!t.value||!ad(l)&&e.value.length<=l&&t.value});return{isDisabled:rh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},c8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Ee($s,void 0),{formItem:s}=Zu(),{emit:l}=ct();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function c(v,p){l("change",u(v),p)}function f(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ft(),c(t.value,v)))}const h=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return Se(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:f,onClickRoot:d}},f8=e=>{const t=B(!1),{emit:r}=ct(),n=Ee($s,void 0),i=k(()=>ad(n)===!1),a=B(!1);return{model:k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&be(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(go,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},d8=(e,t,{model:r})=>{const n=Ee($s,void 0),i=B(!1),a=k(()=>{const u=r.value;return Br(u)?u:be(u)?Xe(e.label)?u.map(Ke).some(c=>P5(c,e.label)):u.map(Ke).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},h8=(e,{model:t})=>{function r(){be(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},cA=(e,t)=>{const{formItem:r}=Zu(),{model:n,isGroup:i,isLimitExceeded:a}=f8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c}=d8(e,t,{model:n}),{isDisabled:f}=u8({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=Py(e,{formItemContext:r,disableIdGeneration:c,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=c8(e,{model:n,isLimitExceeded:a,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return h8(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:f,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c,model:n,handleChange:v,onClickRoot:p}},v8=["tabindex","role","aria-checked"],p8=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],g8=["id","aria-hidden","disabled","value","name","tabindex"],m8=ce({name:"ElCheckbox"}),y8=ce({...m8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=cA(t,r),h=Ne("checkbox"),v=k(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=k(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(Y(),_e(nn(!E(u)&&E(i)?"span":"label"),{class:ue(E(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:E(d)},{default:Z(()=>[ae("span",{class:ue(E(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?nr((Y(),me("input",{key:0,id:E(n),"onUpdate:modelValue":m[0]||(m[0]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:E(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,p8)),[[Qf,E(c)]]):nr((Y(),me("input",{key:1,id:E(n),"onUpdate:modelValue":m[4]||(m[4]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:E(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,g8)),[[Qf,E(c)]]),ae("span",{class:ue(E(h).e("inner"))},null,2)],10,v8),E(u)?(Y(),me("span",{key:0,class:ue(E(h).e("label"))},[$e(g.$slots,"default"),g.$slots.default?Fe("v-if",!0):(Y(),me(pt,{key:0},[Bt(Me(g.label),1)],64))],2)):Fe("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var _8=Ze(y8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const b8=["name","tabindex","disabled","true-value","false-value"],w8=["name","tabindex","disabled","value"],x8=ce({name:"ElCheckboxButton"}),S8=ce({...x8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=cA(t,r),u=Ee($s,void 0),c=Ne("checkbox"),f=k(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=k(()=>[c.b("button"),c.bm("button",o.value),c.is("disabled",a.value),c.is("checked",i.value),c.is("focus",n.value)]);return(h,v)=>(Y(),me("label",{class:ue(E(d))},[h.trueLabel||h.falseLabel?nr((Y(),me("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,b8)),[[Qf,E(s)]]):nr((Y(),me("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,w8)),[[Qf,E(s)]]),h.$slots.default||h.label?(Y(),me("span",{key:2,class:ue(E(c).be("button","inner")),style:St(E(i)?E(f):void 0)},[$e(h.$slots,"default",{},()=>[Bt(Me(h.label),1)])],6)):Fe("v-if",!0)],2))}});var fA=Ze(S8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const C8=tt({modelValue:{type:Le(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Xu,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),T8={[go]:e=>be(e),change:e=>be(e)},M8=ce({name:"ElCheckboxGroup"}),A8=ce({...M8,props:C8,emits:T8,setup(e,{emit:t}){const r=e,n=Ne("checkbox"),{formItem:i}=Zu(),{inputId:a,isLabeledByFormItem:o}=Py(r,{formItemContext:i}),s=async u=>{t(go,u),await Ft(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return At($s,{...k5($d(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),Se(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return Y(),_e(nn(u.tag),{id:E(a),class:ue(E(n).b("group")),role:"group","aria-label":E(o)?void 0:u.label||"checkbox-group","aria-labelledby":E(o)?(f=E(i))==null?void 0:f.labelId:void 0},{default:Z(()=>[$e(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var dA=Ze(A8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Cs=hr(_8,{CheckboxButton:fA,CheckboxGroup:dA});fa(fA);fa(dA);const E8=tt({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Yu,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),P8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},L8=ce({name:"ElTag"}),D8=ce({...L8,props:E8,emits:P8,setup(e,{emit:t}){const r=e,n=ia(),i=Ne("tag"),a=k(()=>{const{type:l,hit:u,effect:c,closable:f,round:d}=r;return[i.b(),i.is("closable",f),i.m(l),i.m(n.value),i.m(c),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(Y(),me("span",{key:0,class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],6)):(Y(),_e(Ci,{key:1,name:`${E(i).namespace.value}-zoom-in-center`,appear:""},{default:Z(()=>[ae("span",{class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],6)]),_:3},8,["name"]))}});var I8=Ze(D8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const O8=hr(I8),hA=Symbol("rowContextKey"),R8=["start","center","end","space-around","space-between","space-evenly"],k8=["top","middle","bottom"],N8=tt({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:R8,default:"start"},align:{type:String,values:k8,default:"top"}}),F8=ce({name:"ElRow"}),B8=ce({...F8,props:N8,setup(e){const t=e,r=Ne("row"),n=k(()=>t.gutter);At(hA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var $8=Ze(B8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const vA=hr($8),H8=tt({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Le([Number,Object]),default:()=>Ya({})},sm:{type:Le([Number,Object]),default:()=>Ya({})},md:{type:Le([Number,Object]),default:()=>Ya({})},lg:{type:Le([Number,Object]),default:()=>Ya({})},xl:{type:Le([Number,Object]),default:()=>Ya({})}}),z8=ce({name:"ElCol"}),W8=ce({...z8,props:H8,setup(e){const t=e,{gutter:r}=Ee(hA,{gutter:k(()=>0)}),n=Ne("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];$t(c)&&(u==="span"?o.push(n.b(`${t[u]}`)):c>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{$t(t[u])?o.push(n.b(`${u}-${t[u]}`)):Xe(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{o.push(c!=="span"?n.b(`${u}-${c}-${f}`):n.b(`${u}-${f}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ze(W8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const pA=hr(V8),G8=ce({name:"ElCollapseTransition"}),U8=ce({...G8,setup(e){const t=Ne("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(Y(),_e(Ci,ca({name:E(t).b()},RI(r)),{default:Z(()=>[$e(n.$slots,"default")]),_:3},16,["name"]))}});var Lf=Ze(U8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);Lf.install=e=>{e.component(Lf.name,Lf)};const j8=Lf,Y8=ce({inheritAttrs:!1});function q8(e,t,r,n,i,a){return $e(e.$slots,"default")}var K8=Ze(Y8,[["render",q8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const X8=ce({name:"ElCollectionItem",inheritAttrs:!1});function Z8(e,t,r,n,i,a){return $e(e.$slots,"default")}var Q8=Ze(X8,[["render",Z8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const J8="data-el-collection-item",eW=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...K8,name:t,setup(){const s=B(null),l=new Map;At(n,{itemMap:l,getItems:()=>{const c=E(s);if(!c)return[];const f=Array.from(c.querySelectorAll(`[${J8}]`));return[...l.values()].sort((h,v)=>f.indexOf(h.ref)-f.indexOf(v.ref))},collectionRef:s})}},o={...Q8,name:r,setup(s,{attrs:l}){const u=B(null),c=Ee(n,void 0);At(i,{collectionItemRef:u}),wt(()=>{const f=E(u);f&&c.itemMap.set(f,{ref:f,...l})}),Xt(()=>{const f=E(u);c.itemMap.delete(f)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Kh=tt({trigger:bu.trigger,effect:{...qr.effect,default:"light"},type:{type:Le(String)},placement:{type:Le(String),default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Le([Number,String]),default:0},maxHeight:{type:Le([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Le(Object)},teleported:qr.teleported});tt({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wn}});tt({onKeydown:{type:Le(Function)}});Ot.down,Ot.pageDown,Ot.home;Ot.up,Ot.pageUp,Ot.end;eW("Dropdown");let tW=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Ot.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Ot.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Ot.tab:{wf(t,"mouseleave");break}case Ot.enter:case Ot.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},rW=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new tW(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Ot.down:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Ot.up:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Ot.tab:{wf(t.currentTarget,"mouseleave");break}case Ot.enter:case Ot.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},nW=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new rW(n,t)})}};const iW=ce({name:"ElMenuCollapseTransition",setup(){const e=Ne("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Zo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){ss(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Ol(r,e.m("collapse"))?(ss(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Zo(r,e.m("collapse"))):(Zo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),ss(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Zo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function aW(e,t,r,n,i,a){return Y(),_e(Ci,ca({mode:"out-in"},e.listeners),{default:Z(()=>[$e(e.$slots,"default")]),_:3},16)}var oW=Ze(iW,[["render",aW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function gA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function sW(e){return k(()=>{const r=e.backgroundColor;return r?new JM(r).shade(20).toString():""})}const mA=(e,t)=>{const r=Ne("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":sW(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},lW=tt({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wn},expandOpenIcon:{type:Wn},collapseCloseIcon:{type:Wn},collapseOpenIcon:{type:Wn}}),Mc="ElSubMenu";var Ry=ce({name:Mc,props:lW,setup(e,{slots:t,expose:r}){vy({from:"popper-append-to-body",replacement:"teleported",scope:Mc,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=ct(),{indexPath:i,parentMenu:a}=gA(n,k(()=>e.index)),o=Ne("menu"),s=Ne("sub-menu"),l=Ee("rootMenu");l||na(Mc,"can not inject root menu");const u=Ee(`subMenu:${a.value.uid}`);u||na(Mc,"can not inject sub menu");const c=B({}),f=B({});let d;const h=B(!1),v=B(),p=B(null),g=k(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=k(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:lM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:dy),y=k(()=>u.level===0),_=k(()=>{var R;const j=(R=e.teleported)!=null?R:e.popperAppendToBody;return j===void 0?y.value:j}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=k(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),S=k(()=>{let R=!1;return Object.values(c.value).forEach(j=>{j.active&&(R=!0)}),Object.values(f.value).forEach(j=>{j.active&&(R=!0)}),R}),C=k(()=>l.props.backgroundColor||""),M=k(()=>l.props.activeTextColor||""),P=k(()=>l.props.textColor||""),A=k(()=>l.props.mode),T=fn({index:e.index,indexPath:i,active:S}),D=k(()=>A.value!=="horizontal"?{color:P.value}:{borderBottomColor:S.value?l.props.activeTextColor?M.value:"":"transparent",color:S.value?M.value:P.value}),N=()=>{var R,j,re;return(re=(j=(R=p.value)==null?void 0:R.popperRef)==null?void 0:j.popperInstanceRef)==null?void 0:re.destroy()},H=R=>{R||N()},$=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},G=(R,j=e.showTimeout)=>{var re;R.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=kp(()=>{l.openMenu(e.index,i.value)},j),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},F=(R=!1)=>{var j,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=kp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&R&&((j=n.parent)==null?void 0:j.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};Se(()=>l.props.collapse,R=>H(Boolean(R)));{const R=re=>{f.value[re.index]=re},j=re=>{delete f.value[re.index]};At(`subMenu:${n.uid}`,{addSubMenu:R,removeSubMenu:j,handleMouseleave:F,mouseInChild:h,level:u.level+1})}return r({opened:w}),wt(()=>{l.addSubMenu(T),u.addSubMenu(T)}),Xt(()=>{u.removeSubMenu(T),l.removeSubMenu(T)}),()=>{var R;const j=[(R=t.title)==null?void 0:R.call(t),Ce(lr,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>He(m.value)?Ce(n.appContext.components[m.value]):Ce(m.value)})],re=mA(l.props,u.level+1),oe=l.isMenuPopup?Ce(Ju,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var ye;return Ce("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Ae=>G(Ae,100),onMouseleave:()=>F(!0),onFocus:Ae=>G(Ae,100)},[Ce("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)])])},default:()=>Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:$},j)}):Ce(pt,{},[Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:$},j),Ce(j8,{},{default:()=>{var ye;return nr(Ce("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)]),[[yi,w.value]])}})]);return Ce("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:G,onMouseleave:()=>F(!0),onFocus:G},[oe])}}});const uW=tt({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Le(Array),default:()=>Ya([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Xh=e=>Array.isArray(e)&&e.every(t=>He(t)),cW={close:(e,t)=>He(e)&&Xh(t),open:(e,t)=>He(e)&&Xh(t),select:(e,t,r,n)=>He(e)&&Xh(t)&&Xe(r)&&(n===void 0||n instanceof Promise)};var fW=ce({name:"ElMenu",props:uW,emits:cW,setup(e,{emit:t,slots:r,expose:n}){const i=ct(),a=i.appContext.config.globalProperties.$router,o=B(),s=Ne("menu"),l=Ne("sub-menu"),u=B(-1),c=B(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=B(e.defaultActive),d=B({}),h=B({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const A=f.value&&d.value[f.value];if(!A||e.mode==="horizontal"||e.collapse)return;A.indexPath.forEach(D=>{const N=h.value[D];N&&g(D,N.indexPath)})},g=(A,T)=>{c.value.includes(A)||(e.uniqueOpened&&(c.value=c.value.filter(D=>T.includes(D))),c.value.push(A),t("open",A,T))},m=A=>{const T=c.value.indexOf(A);T!==-1&&c.value.splice(T,1)},y=(A,T)=>{m(A),t("close",A,T)},_=({index:A,indexPath:T})=>{c.value.includes(A)?y(A,T):g(A,T)},b=A=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:T,indexPath:D}=A;if(!(gu(T)||gu(D)))if(e.router&&a){const N=A.route||T,H=a.push(N).then($=>($||(f.value=T),$));t("select",T,D,{index:T,indexPath:D,route:N},H)}else f.value=T,t("select",T,D,{index:T,indexPath:D})},x=A=>{const T=d.value,D=T[A]||f.value&&T[f.value]||T[e.defaultActive];D?f.value=D.index:f.value=A},w=()=>{var A,T;if(!o.value)return-1;const D=Array.from((T=(A=o.value)==null?void 0:A.childNodes)!=null?T:[]).filter(j=>j.nodeName!=="#text"||j.nodeValue),N=64,H=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),$=Number.parseInt(getComputedStyle(o.value).paddingRight,10),G=o.value.clientWidth-H-$;let F=0,R=0;return D.forEach((j,re)=>{F+=j.offsetWidth||0,F<=G-N&&(R=re+1)}),R===D.length?-1:R},S=(A,T=33.34)=>{let D;return()=>{D&&clearTimeout(D),D=setTimeout(()=>{A()},T)}};let C=!0;const M=()=>{const A=()=>{u.value=-1,Ft(()=>{u.value=w()})};C?A():S(A)(),C=!1};Se(()=>e.defaultActive,A=>{d.value[A]||(f.value=""),x(A)}),Se(()=>e.collapse,A=>{A&&(c.value=[])}),Se(d.value,p);let P;io(()=>{e.mode==="horizontal"&&e.ellipsis?P=gs(o,M).stop:P==null||P()});{const A=H=>{h.value[H.index]=H},T=H=>{delete h.value[H.index]};At("rootMenu",fn({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:v,addMenuItem:H=>{d.value[H.index]=H},removeMenuItem:H=>{delete d.value[H.index]},addSubMenu:A,removeSubMenu:T,openMenu:g,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),At(`subMenu:${i.uid}`,{addSubMenu:A,removeSubMenu:T,mouseInChild:B(!1),level:0})}return wt(()=>{e.mode==="horizontal"&&new nW(i.vnode.el,s.namespace.value)}),n({open:T=>{const{indexPath:D}=h.value[T];D.forEach(N=>g(N,D))},close:m,handleResize:M}),()=>{var A,T;let D=(T=(A=r.default)==null?void 0:A.call(r))!=null?T:[];const N=[];if(e.mode==="horizontal"&&o.value){const G=Cf(D),F=u.value===-1?G:G.slice(0,u.value),R=u.value===-1?[]:G.slice(u.value);R!=null&&R.length&&e.ellipsis&&(D=F,N.push(Ce(Ry,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>Ce(lr,{class:l.e("icon-more")},{default:()=>Ce(M3)}),default:()=>R})))}const H=mA(e,0),$=Ce("ul",{key:String(e.collapse),role:"menubar",ref:o,style:H.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...D,...N]);return e.collapseTransition&&e.mode==="vertical"?Ce(oW,()=>$):$}}});const dW=tt({index:{type:Le([String,null]),default:null},route:{type:Le([String,Object])},disabled:Boolean}),hW={click:e=>He(e.index)&&Array.isArray(e.indexPath)},Zh="ElMenuItem",vW=ce({name:Zh,components:{ElTooltip:Ju},props:dW,emits:hW,setup(e,{emit:t}){const r=ct(),n=Ee("rootMenu"),i=Ne("menu"),a=Ne("menu-item");n||na(Zh,"can not inject root menu");const{parentMenu:o,indexPath:s}=gA(r,tn(e,"index")),l=Ee(`subMenu:${o.value.uid}`);l||na(Zh,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),c=fn({index:e.index,indexPath:s,active:u}),f=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",c))};return wt(()=>{l.addSubMenu(c),n.addMenuItem(c)}),Xt(()=>{l.removeSubMenu(c),n.removeMenuItem(c)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:f}}});function pW(e,t,r,n,i,a){const o=_r("el-tooltip");return Y(),me("li",{class:ue([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(Y(),_e(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:Z(()=>[$e(e.$slots,"title")]),default:Z(()=>[ae("div",{class:ue(e.nsMenu.be("tooltip","trigger"))},[$e(e.$slots,"default")],2)]),_:3},8,["effect"])):(Y(),me(pt,{key:1},[$e(e.$slots,"default"),$e(e.$slots,"title")],64))],2)}var yA=Ze(vW,[["render",pW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const gW={title:String},mW="ElMenuItemGroup",yW=ce({name:mW,props:gW,setup(){return{ns:Ne("menu-item-group")}}});function _W(e,t,r,n,i,a){return Y(),me("li",{class:ue(e.ns.b())},[ae("div",{class:ue(e.ns.e("title"))},[e.$slots.title?$e(e.$slots,"title",{key:1}):(Y(),me(pt,{key:0},[Bt(Me(e.title),1)],64))],2),ae("ul",null,[$e(e.$slots,"default")])],2)}var _A=Ze(yW,[["render",_W],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const bW=hr(fW,{MenuItem:yA,MenuItemGroup:_A,SubMenu:Ry}),wW=fa(yA);fa(_A);const xW=fa(Ry),SW=tt({trigger:bu.trigger,placement:Kh.placement,disabled:bu.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Kh.popperOptions,tabindex:Kh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),CW={"update:visible":e=>Br(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},TW="onUpdate:visible",MW=ce({name:"ElPopover"}),AW=ce({...MW,props:SW,emits:CW,setup(e,{expose:t,emit:r}){const n=e,i=k(()=>n[TW]),a=Ne("popover"),o=B(),s=k(()=>{var g;return(g=E(o))==null?void 0:g.popperRef}),l=k(()=>[{width:po(n.width)},n.popperStyle]),u=k(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),c=k(()=>n.transition===`${a.namespace.value}-fade-in-linear`),f=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:f}),(g,m)=>(Y(),_e(E(Ju),ca({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":E(u),"popper-style":E(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":E(c),"onUpdate:visible":E(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:Z(()=>[g.title?(Y(),me("div",{key:0,class:ue(E(a).e("title")),role:"title"},Me(g.title),3)):Fe("v-if",!0),$e(g.$slots,"default",{},()=>[Bt(Me(g.content),1)])]),default:Z(()=>[g.$slots.reference?$e(g.$slots,"reference",{key:0}):Fe("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var EW=Ze(AW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const h1=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var PW={mounted(e,t){h1(e,t)},updated(e,t){h1(e,t)}};const LW="popover",DW=H3(PW,LW),IW=hr(EW,{directive:DW}),OW=tt({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Wn},inactiveIcon:{type:Wn},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Le(Function)},size:{type:String,validator:z3},tabindex:{type:[String,Number]}}),RW={[go]:e=>Br(e)||He(e)||$t(e),[qp]:e=>Br(e)||He(e)||$t(e),[Kp]:e=>Br(e)||He(e)||$t(e)},kW=["onClick"],NW=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],FW=["aria-hidden"],BW=["aria-hidden"],$W=["aria-hidden"],vg="ElSwitch",HW=ce({name:vg}),zW=ce({...HW,props:OW,emits:RW,setup(e,{expose:t,emit:r}){const n=e,i=ct(),{formItem:a}=Zu(),o=ia(),s=Ne("switch");vy({from:'"value"',replacement:'"model-value" or "v-model"',scope:vg,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var x;return!!((x=i.vnode.props)!=null&&x.value)}));const{inputId:l}=Py(n,{formItemContext:a}),u=rh(k(()=>n.loading)),c=B(n.modelValue!==!1),f=B(),d=B(),h=k(()=>[s.b(),s.m(o.value),s.is("disabled",u.value),s.is("checked",g.value)]),v=k(()=>({width:po(n.width)}));Se(()=>n.modelValue,()=>{c.value=!0}),Se(()=>n.value,()=>{c.value=!1});const p=k(()=>c.value?n.modelValue:n.value),g=k(()=>p.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(p.value)||(r(go,n.inactiveValue),r(qp,n.inactiveValue),r(Kp,n.inactiveValue)),Se(g,x=>{var w;f.value.checked=x,n.validateEvent&&((w=a==null?void 0:a.validate)==null||w.call(a,"change").catch(S=>void 0))});const m=()=>{const x=g.value?n.inactiveValue:n.activeValue;r(go,x),r(qp,x),r(Kp,x),Ft(()=>{f.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:x}=n;if(!x){m();return}const w=x();[jf(w),Br(w)].includes(!0)||na(vg,"beforeChange must return type `Promise` or `boolean`"),jf(w)?w.then(C=>{C&&m()}).catch(C=>{}):w&&m()},_=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),b=()=>{var x,w;(w=(x=f.value)==null?void 0:x.focus)==null||w.call(x)};return wt(()=>{f.value.checked=g.value}),t({focus:b,checked:g}),(x,w)=>(Y(),me("div",{class:ue(E(h)),style:St(E(_)),onClick:Jf(y,["prevent"])},[ae("input",{id:E(l),ref_key:"input",ref:f,class:ue(E(s).e("input")),type:"checkbox",role:"switch","aria-checked":E(g),"aria-disabled":E(u),name:x.name,"true-value":x.activeValue,"false-value":x.inactiveValue,disabled:E(u),tabindex:x.tabindex,onChange:m,onKeydown:UO(y,["enter"])},null,42,NW),!x.inlinePrompt&&(x.inactiveIcon||x.inactiveText)?(Y(),me("span",{key:0,class:ue([E(s).e("label"),E(s).em("label","left"),E(s).is("active",!E(g))])},[x.inactiveIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.inactiveIcon)))]),_:1})):Fe("v-if",!0),!x.inactiveIcon&&x.inactiveText?(Y(),me("span",{key:1,"aria-hidden":E(g)},Me(x.inactiveText),9,FW)):Fe("v-if",!0)],2)):Fe("v-if",!0),ae("span",{ref_key:"core",ref:d,class:ue(E(s).e("core")),style:St(E(v))},[x.inlinePrompt?(Y(),me("div",{key:0,class:ue(E(s).e("inner"))},[x.activeIcon||x.inactiveIcon?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("icon"))},{default:Z(()=>[(Y(),_e(nn(E(g)?x.activeIcon:x.inactiveIcon)))]),_:1},8,["class"])):x.activeText||x.inactiveText?(Y(),me("span",{key:1,class:ue(E(s).is("text")),"aria-hidden":!E(g)},Me(E(g)?x.activeText:x.inactiveText),11,BW)):Fe("v-if",!0)],2)):Fe("v-if",!0),ae("div",{class:ue(E(s).e("action"))},[x.loading?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("loading"))},{default:Z(()=>[ee(E(hy))]),_:1},8,["class"])):Fe("v-if",!0)],2)],6),!x.inlinePrompt&&(x.activeIcon||x.activeText)?(Y(),me("span",{key:1,class:ue([E(s).e("label"),E(s).em("label","right"),E(s).is("active",E(g))])},[x.activeIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.activeIcon)))]),_:1})):Fe("v-if",!0),!x.activeIcon&&x.activeText?(Y(),me("span",{key:1,"aria-hidden":!E(g)},Me(x.activeText),9,$W)):Fe("v-if",!0)],2)):Fe("v-if",!0)],14,kW))}});var WW=Ze(zW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const VW=hr(WW);/*! * escape-html * Copyright(c) 2012-2013 TJ Holowaychuk * Copyright(c) 2015 Andreas Lubbe * Copyright(c) 2015 Tiancheng "Timothy" Gu * MIT Licensed - */var GW=/["'&<>]/,UW=jW;function jW(e){var t=""+e,r=GW.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?vu(s,u):u(s,l,e))):(t!=="$key"&&Xe(s)&&"$value"in s&&(s=s.$value),[Xe(s)?vu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,c=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},bA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},qW=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},Ja=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Yt(n,t)]={row:n,index:i}}),r};function KW(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(We(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function ky(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function wA(e){return e===""||e!==void 0&&(e=ky(e),Number.isNaN(e)&&(e=80)),e}function XW(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function ZW(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Fl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,be(t.children)&&t.children.forEach(l=>{Fl(e,l,r??!a)})};return Br(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function QW(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const c=u[r];i(c)||a(u,c,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ui;function JW(e,t,r,n,i){i=aM({enterable:!0,showArrow:!0},i);const a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=i.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",i.popperClass||""].join(" "),r=UW(r),m.innerHTML=r,m.style.zIndex=String(n()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){c&&c.update()}ui==null||ui(),ui=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ui),ui=void 0}catch{}};let c=null,f=u,d=ui;i.enterable&&({onOpen:f,onClose:d}=DM({showAfter:i.showAfter,hideAfter:i.hideAfter,open:u,close:ui}));const h=s();h.onmouseenter=f,h.onmouseleave=d;const v=[];if(i.offset&&v.push({name:"offset",options:{offset:[0,i.offset]}}),i.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=i.popperOptions||{};return c=EM(t,h,{placement:i.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ui),c}function xA(e){return e.children?E5(e.children,xA):[e]}function p1(e,t){return e+t.colSpan}const SA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=xA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(p1,0),a=i+l.reduce(p1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ny=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=SA(t,r,n,i);if(s){const c=s==="left";o.push(`${e}-fixed-column--${s}`),c&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!c&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function g1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Fy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=SA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(g1,0):s.right=u.slice(o+1).reverse().reduce(g1,0),s},Ts=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function eV(e){const t=ct(),r=B(!1),n=B([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const c=Ja(n.value,u);n.value=l.reduce((f,d)=>{const h=Yt(d,u);return c[h]&&f.push(d),f},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Fl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=Ja(u,c);n.value=l.reduce((d,h)=>{const v=f[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Ja(n.value,u)[Yt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function tV(e){const t=ct(),r=B(null),n=B(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(E(c)||[]).find(h=>Yt(h,f.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const c=n.value;if(u&&u!==c){n.value=u,t.emit("current-change",n.value,c);return}!u&&c&&(n.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=n.value;if(!c.includes(f)&&f){if(u){const d=Yt(f,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,f)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function rV(e){const t=B([]),r=B({}),n=B(16),i=B(!1),a=B({}),o=B("hasChildren"),s=B("children"),l=ct(),u=k(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=k(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Yt(w,m);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),f=m=>{const y=e.rowKey.value,_={};return QW(m,(b,x,w)=>{const S=Yt(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Yt(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=c.value,w=Object.keys(b),S={};if(w.length){const C=E(r),M=[],P=(T,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||T!=null&&T.expanded);{const N=y||t.value&&t.value.includes(D);return!!(T!=null&&T.expanded||N)}};w.forEach(T=>{const D=C[T],N={...b[T]};if(N.expanded=P(D,T),N.lazy){const{loaded:H=!1,loading:$=!1}=D||{};N.loaded=!!H,N.loading=!!$,M.push(T)}S[T]=N});const A=Object.keys(x);i.value&&A.length&&M.length&&A.forEach(T=>{const D=C[T],N=x[T].children;if(M.includes(T)){if(S[T].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[T].children=N}else{const{loaded:H=!1,loading:$=!1}=D||{};S[T]={lazy:!0,loaded:!!H,loading:!!$,expanded:P(D,T),children:N,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};Se(()=>t.value,()=>{d(!0)}),Se(()=>u.value,()=>{d()}),Se(()=>c.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Yt(m,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Yt(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const nV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:YW(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Df=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,Df(r.children)):t.push(r)}),t};function iV(){var e;const t=ct(),{size:r}=$d((e=t.proxy)==null?void 0:e.$props),n=B(null),i=B([]),a=B([]),o=B(!1),s=B([]),l=B([]),u=B([]),c=B([]),f=B([]),d=B([]),h=B([]),v=B([]),p=[],g=B(0),m=B(0),y=B(0),_=B(!1),b=B([]),x=B(!1),w=B(!1),S=B(null),C=B({}),M=B(null),P=B(null),A=B(null),T=B(null),D=B(null);Se(i,()=>t.state&&G(!1),{deep:!0});const N=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},H=ve=>{var Pe;(Pe=ve.children)==null||Pe.forEach(je=>{je.fixed=ve.fixed,H(je)})},$=()=>{s.value.forEach(nt=>{H(nt)}),c.value=s.value.filter(nt=>nt.fixed===!0||nt.fixed==="left"),f.value=s.value.filter(nt=>nt.fixed==="right"),c.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,c.value.unshift(s.value[0]));const ve=s.value.filter(nt=>!nt.fixed);l.value=[].concat(c.value).concat(ve).concat(f.value);const Pe=Df(ve),je=Df(c.value),Be=Df(f.value);g.value=Pe.length,m.value=je.length,y.value=Be.length,u.value=[].concat(je).concat(Pe).concat(Be),o.value=c.value.length>0||f.value.length>0},G=(ve,Pe=!1)=>{ve&&$(),Pe?t.state.doLayout():t.state.debouncedUpdateLayout()},F=ve=>b.value.includes(ve),R=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},j=()=>{let ve;if(n.value){ve=[];const Pe=Ja(b.value,n.value),je=Ja(i.value,n.value);for(const Be in Pe)We(Pe,Be)&&!je[Be]&&ve.push(Pe[Be].row)}else ve=b.value.filter(Pe=>!i.value.includes(Pe));if(ve.length){const Pe=b.value.filter(je=>!ve.includes(je));b.value=Pe,t.emit("selection-change",Pe.slice())}},re=()=>(b.value||[]).slice(),oe=(ve,Pe=void 0,je=!0)=>{if(Fl(b.value,ve,Pe)){const nt=(b.value||[]).slice();je&&t.emit("select",nt,ve),t.emit("selection-change",nt)}},ye=()=>{var ve,Pe;const je=w.value?!_.value:!(_.value||b.value.length);_.value=je;let Be=!1,nt=0;const it=(Pe=(ve=t==null?void 0:t.store)==null?void 0:ve.states)==null?void 0:Pe.rowKey.value;i.value.forEach((Mt,ri)=>{const ni=ri+nt;S.value?S.value.call(null,Mt,ni)&&Fl(b.value,Mt,je)&&(Be=!0):Fl(b.value,Mt,je)&&(Be=!0),nt+=Q(Yt(Mt,it))}),Be&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},Ae=()=>{const ve=Ja(b.value,n.value);i.value.forEach(Pe=>{const je=Yt(Pe,n.value),Be=ve[je];Be&&(b.value[Be.index]=Pe)})},V=()=>{var ve,Pe,je;if(((ve=i.value)==null?void 0:ve.length)===0){_.value=!1;return}let Be;n.value&&(Be=Ja(b.value,n.value));const nt=function(ni){return Be?!!Be[Yt(ni,n.value)]:b.value.includes(ni)};let it=!0,Mt=0,ri=0;for(let ni=0,sD=(i.value||[]).length;ni{var Pe;if(!t||!t.store)return 0;const{treeData:je}=t.store.states;let Be=0;const nt=(Pe=je.value[ve])==null?void 0:Pe.children;return nt&&(Be+=nt.length,nt.forEach(it=>{Be+=Q(it)})),Be},W=(ve,Pe)=>{Array.isArray(ve)||(ve=[ve]);const je={};return ve.forEach(Be=>{C.value[Be.id]=Pe,je[Be.columnKey||Be.id]=Pe}),je},q=(ve,Pe,je)=>{P.value&&P.value!==ve&&(P.value.order=null),P.value=ve,A.value=Pe,T.value=je},le=()=>{let ve=E(a);Object.keys(C.value).forEach(Pe=>{const je=C.value[Pe];if(!je||je.length===0)return;const Be=bA({columns:u.value},Pe);Be&&Be.filterMethod&&(ve=ve.filter(nt=>je.some(it=>Be.filterMethod.call(null,it,nt,Be))))}),M.value=ve},de=()=>{i.value=nV(M.value,{sortingColumn:P.value,sortProp:A.value,sortOrder:T.value})},J=(ve=void 0)=>{ve&&ve.filter||le(),de()},L=ve=>{const{tableHeaderRef:Pe}=t.refs;if(!Pe)return;const je=Object.assign({},Pe.filterPanels),Be=Object.keys(je);if(Be.length)if(typeof ve=="string"&&(ve=[ve]),Array.isArray(ve)){const nt=ve.map(it=>qW({columns:u.value},it));Be.forEach(it=>{const Mt=nt.find(ri=>ri.id===it);Mt&&(Mt.filteredValue=[])}),t.store.commit("filterChange",{column:nt,values:[],silent:!0,multi:!0})}else Be.forEach(nt=>{const it=u.value.find(Mt=>Mt.id===nt);it&&(it.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},I=()=>{P.value&&(q(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:z,toggleRowExpansion:U,updateExpandRows:K,states:ne,isRowExpanded:fe}=eV({data:i,rowKey:n}),{updateTreeExpandKeys:te,toggleTreeExpansion:ie,updateTreeData:X,loadOrToggle:we,states:he}=rV({data:i,rowKey:n}),{updateCurrentRowData:xe,updateCurrentRow:Oe,setCurrentRowKey:ze,states:rt}=tV({data:i,rowKey:n});return{assertRowKey:N,updateColumns:$,scheduleLayout:G,isSelected:F,clearSelection:R,cleanSelection:j,getSelectionRows:re,toggleRowSelection:oe,_toggleAllSelection:ye,toggleAllSelection:null,updateSelectionByRowKey:Ae,updateAllSelected:V,updateFilters:W,updateCurrentRow:Oe,updateSort:q,execFilter:le,execSort:de,execQuery:J,clearFilter:L,clearSort:I,toggleRowExpansion:U,setExpandRowKeysAdapter:ve=>{z(ve),te(ve)},setCurrentRowKey:ze,toggleRowExpansionAdapter:(ve,Pe)=>{u.value.some(({type:Be})=>Be==="expand")?U(ve,Pe):ie(ve,Pe)},isRowExpanded:fe,updateExpandRows:K,updateCurrentRowData:xe,loadOrToggle:we,updateTreeData:X,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:g,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:x,selectOnIndeterminate:w,selectable:S,filters:C,filteredData:M,sortingColumn:P,sortProp:A,sortOrder:T,hoverRow:D,...ne,...he,...rt}}}function pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=pg(r.children,t)),r)})}function gg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&gg(t.children)}),e.sort((t,r)=>t.no-r.no)}function aV(){const e=ct(),t=iV();return{ns:Fe("table"),...t,mutations:{setData(o,s){const l=E(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),E(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const c=E(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=pg(c,l)):(c.push(s),f=c),gg(f),o._columns.value=f,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(gg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const c=E(o._columns)||[];if(l)l.children.splice(l.children.findIndex(d=>d.id===s.id),1),Ft(()=>{var d;((d=l.children)==null?void 0:d.length)===0&&delete l.children}),o._columns.value=pg(c,l);else{const d=c.indexOf(s);d>-1&&(c.splice(d,1),o._columns.value=c)}const f=o.updateOrderFns.indexOf(u);f>-1&&o.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:c}=s;if(l){const f=E(o.columns).find(d=>d.property===l);f&&(f.order=u,e.store.updateSort(f,l,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:c}=o,f=E(l),d=E(u),h=E(c);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:c}=s,f=e.store.updateFilters(l,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Ft(()=>e.layout.updateScrollY.apply(e.layout))}}}const Bl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function oV(e,t){if(!e)throw new Error("Table is required.");const r=aV();return r.toggleAllSelection=id(r._toggleAllSelection,10),Object.keys(Bl).forEach(n=>{CA(TA(t,n),n,r)}),sV(r,t),r}function sV(e,t){Object.keys(Bl).forEach(r=>{Se(()=>TA(t,r),n=>{CA(n,r,e)})})}function CA(e,t,r){let n=e,i=Bl[t];typeof Bl[t]=="object"&&(i=i.key,n=n||Bl[t].default),r.states[i].value=n}function TA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class lV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=B(null),this.scrollX=B(!1),this.scrollY=B(!1),this.bodyWidth=B(null),this.fixedWidth=B(null),this.rightFixedWidth=B(null),this.gutterWidth=0;for(const r in t)We(t,r)&&(Ct(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Nt)return;const n=this.table.vnode.el;if(t=XW(t),this.height.value=Number(t),!n&&(t||t===0))return Ft(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Nt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),c=l/u;let f=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*c);f+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-f}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:uV}=Cs,cV=ce({name:"ElTableFilterPanel",components:{ElCheckbox:Cs,ElCheckboxGroup:uV,ElScrollbar:VM,ElTooltip:Ju,ElIcon:lr,ArrowDown:lM,ArrowUp:e3},directives:{ClickOutside:t8},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=ct(),{t:r}=py(),n=Fe("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=B(!1),o=B(null),s=k(()=>e.column&&e.column.filters),l=k({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=k({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),c=k(()=>e.column?e.column.filterMultiple:!0),f=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};Se(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=k(()=>{var b,x;return(x=(b=o.value)==null?void 0:b.popperRef)==null?void 0:x.contentRef});return{tooltipVisible:a,multiple:c,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:f,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),fV={key:0},dV=["disabled"],hV=["label","onClick"];function vV(e,t,r,n,i,a){const o=_r("el-checkbox"),s=_r("el-checkbox-group"),l=_r("el-scrollbar"),u=_r("arrow-up"),c=_r("arrow-down"),f=_r("el-icon"),d=_r("el-tooltip"),h=ZC("click-outside");return Y(),_e(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:Z(()=>[e.multiple?(Y(),me("div",fV,[ae("div",{class:ue(e.ns.e("content"))},[ee(l,{"wrap-class":e.ns.e("wrap")},{default:Z(()=>[ee(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:ue(e.ns.e("checkbox-group"))},{default:Z(()=>[(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),_e(o,{key:v.value,label:v.value},{default:Z(()=>[Bt(Te(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ae("div",{class:ue(e.ns.e("bottom"))},[ae("button",{class:ue({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Te(e.t("el.table.confirmFilter")),11,dV),ae("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Te(e.t("el.table.resetFilter")),1)],2)])):(Y(),me("ul",{key:1,class:ue(e.ns.e("list"))},[ae("li",{class:ue([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Te(e.t("el.table.clearFilter")),3),(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),me("li",{key:v.value,class:ue([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Te(v.text),11,hV))),128))],2))]),default:Z(()=>[nr((Y(),me("span",{class:ue([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[ee(f,null,{default:Z(()=>[e.column.filterOpened?(Y(),_e(u,{key:0})):(Y(),_e(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var pV=Ze(cV,[["render",vV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function MA(e){const t=ct();Gd(()=>{r.value.addObserver(t)}),wt(()=>{n(r.value),i(r.value)}),Hu(()=>{n(r.value),i(r.value)}),ks(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,f=s.length;c{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=l.length;c{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=B(null),l=B(!1),u=B({}),c=(p,g)=>{if(Nt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Zo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=m==null?void 0:m.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=P=>{const A=P.clientX-u.value.startMouseLeft,T=u.value.startLeft+A;S.style.left=`${Math.max(w,T)}px`},M=()=>{if(l.value){const{startColumnLeft:P,startLeft:A}=u.value,D=Number.parseInt(S.style.left,10)-P;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-P,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{ss(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},f=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Ol(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Ol(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Nt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Ol(b,"noclick")){ss(b,"noclick");return}if(!g.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=g,w=g.property),_?S=g.order=_:S=g.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function mV(e){const t=Ee(Qn),r=Fe("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:c}));const h=Fy(l,c.fixed,e.store,u);return Ts(h,"left"),Ts(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,c)=>{const f=Ny(r.b(),l,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:c})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const AA=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,AA(r.children))):t.push(r)}),t},yV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function _V(e){const t=Ee(Qn),r=k(()=>yV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var bV=ce({name:"ElTableHeader",components:{ElCheckbox:Cs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=ct(),n=Ee(Qn),i=Fe("table"),a=B({}),{onColumnsChange:o,onScrollableChange:s}=MA(n);wt(async()=>{await Ft(),await Ft();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=gV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=mV(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=_V(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return Ce("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>Ce("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Ce("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>c(b,y),onMouseout:d},[Ce("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&Ce("span",{onClick:b=>f(b,y),class:"caret-wrapper"},[Ce("i",{onClick:b=>f(b,y,"ascending"),class:"sort-caret ascending"}),Ce("i",{onClick:b=>f(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Ce(pV,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function wV(e){const t=Ee(Qn),r=B(""),n=B(Ce("div")),{nextZIndex:i}=Ay(),a=(h,v,p)=>{var g;const m=t,y=Qh(h);let _;const b=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;y&&(_=v1({columns:e.store.states.columns.value},y,b),_&&(m==null||m.emit(`cell-${p}`,v,_,y,h))),m==null||m.emit(`row-${p}`,v,_,h)},o=(h,v)=>{a(h,v,"dblclick")},s=(h,v)=>{e.store.commit("setCurrentRow",v),a(h,v,"click")},l=(h,v)=>{a(h,v,"contextmenu")},u=id(h=>{e.store.commit("setHoverRow",h)},30),c=id(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:o,handleClick:s,handleContextMenu:l,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(h,v,p)=>{var g;const m=t,y=Qh(h),_=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;if(y){const C=v1({columns:e.store.states.columns.value},y,_),M=m.hoverState={cell:y,column:C,row:v};m==null||m.emit("cell-mouse-enter",M.row,M.column,M.cell,h)}if(!p)return;const b=h.target.querySelector(".cell");if(!(Ol(b,`${_}-tooltip`)&&b.childNodes.length))return;const x=document.createRange();x.setStart(b,0),x.setEnd(b,b.childNodes.length);const w=Math.round(x.getBoundingClientRect().width),S=(Number.parseInt(Mb(b,"paddingLeft"),10)||0)+(Number.parseInt(Mb(b,"paddingRight"),10)||0);(w+S>b.offsetWidth||b.scrollWidth>b.offsetWidth)&&JW(t==null?void 0:t.refs.tableWrapper,y,y.innerText||y.textContent,i,p)},handleCellMouseLeave:h=>{if(!Qh(h))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,h)},tooltipContent:r,tooltipTrigger:n}}function xV(e){const t=Ee(Qn),r=Fe("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const p=Fy(c,e==null?void 0:e.fixed,e.store);return Ts(p,"left"),Ts(p,"right"),Object.assign({},v,p)},getCellClass:(u,c,f,d,h)=>{const v=Ny(r.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(f,f+c);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function SV(e){const t=Ee(Qn),r=Fe("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=wV(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=xV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const M=t.props.rowKey;return M?Yt(S,M):C},b=(S,C,M,P=!1)=>{const{tooltipEffect:A,tooltipOptions:T,store:D}=e,{indent:N,columns:H}=D.states,$=h(S,C);let G=!0;return M&&($.push(r.em("row",`level-${M.level}`)),G=M.display),Ce("tr",{style:[G?null:{display:"none"},d(S,C)],class:$,key:_(S,C),onDblclick:R=>n(R,S),onClick:R=>i(R,S),onContextmenu:R=>a(R,S),onMouseenter:()=>o(C),onMouseleave:s},H.value.map((R,j)=>{const{rowspan:re,colspan:oe}=g(S,R,C,j);if(!re||!oe)return null;const ye={...R};ye.realWidth=m(H.value,oe,j);const Ae={store:e.store,_self:e.context||t,column:ye,row:S,$index:C,cellIndex:j,expanded:P};j===y.value&&M&&(Ae.treeNode={indent:M.level*N.value,level:M.level},typeof M.expanded=="boolean"&&(Ae.treeNode.expanded=M.expanded,"loading"in M&&(Ae.treeNode.loading=M.loading),"noLazyChildren"in M&&(Ae.treeNode.noLazyChildren=M.noLazyChildren)));const V=`${C},${j}`,Q=ye.columnKey||ye.rawColumnKey||"",W=x(j,R,Ae),q=R.showOverflowTooltip&&aM({effect:A},T,R.showOverflowTooltip);return Ce("td",{style:v(C,j,S,R),class:p(C,j,S,R,oe-1),key:`${Q}${V}`,rowspan:re,colspan:oe,onMouseenter:le=>l(le,S,q),onMouseleave:u},[W])}))},x=(S,C,M)=>C.renderCell(M);return{wrappedRowRender:(S,C)=>{const M=e.store,{isRowExpanded:P,assertRowKey:A}=M,{treeData:T,lazyTreeNodeMap:D,childrenColumnName:N,rowKey:H}=M.states,$=M.states.columns.value;if($.some(({type:F})=>F==="expand")){const F=P(S),R=b(S,C,void 0,F),j=t.renderExpanded;return F?j?[[R,Ce("tr",{key:`expanded-row__${R.key}`},[Ce("td",{colspan:$.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[j({row:S,$index:C,store:M,expanded:F})])])]]:(console.error("[Element Error]renderExpanded is required."),R):[[R]]}else if(Object.keys(T.value).length){A();const F=Yt(S,H.value);let R=T.value[F],j=null;R&&(j={expanded:R.expanded,level:R.level,display:!0},typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(j.noLazyChildren=!(R.children&&R.children.length)),j.loading=R.loading));const re=[b(S,C,j)];if(R){let oe=0;const ye=(V,Q)=>{V&&V.length&&Q&&V.forEach(W=>{const q={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},le=Yt(W,H.value);if(le==null)throw new Error("For nested data item, row-key is required.");if(R={...T.value[le]},R&&(q.expanded=R.expanded,R.level=R.level||q.level,R.display=!!(R.expanded&&q.display),typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(q.noLazyChildren=!(R.children&&R.children.length)),q.loading=R.loading)),oe++,re.push(b(W,C+oe,q)),R){const de=D.value[le]||W[N.value];ye(de,R)}})};R.display=!0;const Ae=D.value[F]||S[N.value];ye(Ae,R)}return re}else return b(S,C,void 0)},tooltipContent:c,tooltipTrigger:f}}const CV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var TV=ce({name:"ElTableBody",props:CV,setup(e){const t=ct(),r=Ee(Qn),n=Fe("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=SV(e),{onColumnsChange:s,onScrollableChange:l}=MA(r);return Se(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Nt)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[c],p=h[u];v&&ss(v,"hover-row"),p&&Zo(p,"hover-row")})}),ks(()=>{var u;(u=ui)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Ce("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function By(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Ce("colgroup",{},r.map(i=>Ce("col",n(i))))}By.props=["columns","tableLayout"];function MV(){const e=Ee(Qn),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function AV(e){const{columns:t}=MV(),r=Fe("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ny(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Fy(o,a.fixed,e.store);return Ts(s,"left"),Ts(s,"right"),s},columns:t}}var EV=ce({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=AV(e);return{ns:Fe("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const c=o.map(v=>Number(v[l.property])),f=[];let d=!0;c.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];f.push(p?p.length:0)}});const h=Math.max.apply(null,f);d?s[u]="":s[u]=c.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),Ce("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[By({columns:e}),Ce("tbody",[Ce("tr",{},[...e.map((l,u)=>Ce("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[Ce("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function PV(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function LV(e,t,r,n){const i=B(!1),a=B(null),o=B(!1),s=F=>{o.value=F},l=B({width:null,height:null,headerHeight:null}),u=B(!1),c={display:"inline-block",verticalAlign:"middle"},f=B(),d=B(0),h=B(0),v=B(0),p=B(0);io(()=>{t.setHeight(e.height)}),io(()=>{t.setMaxHeight(e.maxHeight)}),Se(()=>[e.currentRowKey,r.states.rowKey],([F,R])=>{!E(R)||!E(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),Se(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),io(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(F,R)=>{const{pixelX:j,pixelY:re}=R;Math.abs(j)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=R.pixelX/5)},y=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};wt(async()=>{await Ft(),r.updateColumns(),M(),requestAnimationFrame(b);const F=n.vnode.el,R=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:f.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&R?R.offsetHeight:null},r.states.columns.value.forEach(j=>{j.filteredValue&&j.filteredValue.length&&n.store.commit("filterChange",{column:j,values:j.filteredValue,silent:!0})}),n.$ready=!0});const x=(F,R)=>{if(!F)return;const j=Array.from(F.classList).filter(re=>!re.startsWith("is-scrolling-"));j.push(t.scrollX.value?R:"is-scrolling-none"),F.className=j.join(" ")},w=F=>{const{tableWrapper:R}=n.refs;x(R,F)},S=F=>{const{tableWrapper:R}=n.refs;return!!(R&&R.classList.contains(F))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";S(V)||w(V);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:R,offsetWidth:j,scrollWidth:re}=F,{headerWrapper:oe,footerWrapper:ye}=n.refs;oe&&(oe.scrollLeft=R),ye&&(ye.scrollLeft=R);const Ae=re-j-1;R>=Ae?w("is-scrolling-right"):w(R===0?"is-scrolling-left":"is-scrolling-middle")},M=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&xn(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?gs(n.vnode.el,P):xn(window,"resize",P),gs(n.refs.bodyWrapper,()=>{var F,R;P(),(R=(F=n.refs)==null?void 0:F.scrollBarRef)==null||R.update()}))},P=()=>{var F,R,j;const re=n.vnode.el;if(!n.$ready||!re)return;let oe=!1;const{width:ye,height:Ae,headerHeight:V}=l.value,Q=f.value=re.offsetWidth;ye!==Q&&(oe=!0);const W=re.offsetHeight;(e.height||y.value)&&Ae!==W&&(oe=!0);const q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(q==null?void 0:q.offsetHeight)!==V&&(oe=!0),d.value=((R=n.refs.tableWrapper)==null?void 0:R.scrollHeight)||0,v.value=(q==null?void 0:q.scrollHeight)||0,p.value=((j=n.refs.footerWrapper)==null?void 0:j.offsetHeight)||0,h.value=d.value-v.value-p.value,oe&&(l.value={width:Q,height:W,headerHeight:e.showHeader&&(q==null?void 0:q.offsetHeight)||0},b())},A=ia(),T=k(()=>{const{bodyWidth:F,scrollY:R,gutterWidth:j}=t;return F.value?`${F.value-(R.value?j:0)}px`:""}),D=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&h.value&&(F=`${h.value}px`);const R=f.value;return{width:R?`${R}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),$=k(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const F=e.maxHeight;if(d.value>=Number(F))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:N,handleFixedMousewheel:(F,R)=>{const j=n.refs.bodyWrapper;if(Math.abs(R.spinY)>0){const re=j.scrollTop;R.pixelY<0&&re!==0&&F.preventDefault(),R.pixelY>0&&j.scrollHeight-j.clientHeight>re&&F.preventDefault(),j.scrollTop+=Math.ceil(R.pixelY/5)}else j.scrollLeft+=Math.ceil(R.pixelX/5)},resizeProxyVisible:o,bodyWidth:T,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:H,scrollbarStyle:$}}function DV(e){const t=B(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};wt(()=>{r()}),ks(()=>{var n;(n=t.value)==null||n.disconnect()})}var IV={data:{type:Array,default:()=>[]},size:Xu,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const OV=()=>{const e=B(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&$t(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let RV=1;const kV=ce({name:"ElTable",directives:{Mousewheel:l8},components:{TableHeader:bV,TableBody:TV,TableFooter:EV,ElScrollbar:VM,hColgroup:By},props:IV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=py(),r=Fe("table"),n=ct();At(Qn,n);const i=oV(n,e);n.store=i;const a=new lV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=PV(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:P,resizeState:A,doLayout:T,tableBodyStyles:D,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G}=LV(e,a,i,n),{scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}=OV(),oe=id(T,50),ye=`${r.namespace.value}-table_${RV++}`;n.tableId=ye,n.state={isGroup:_,resizeState:A,doLayout:T,debouncedUpdateLayout:oe};const Ae=k(()=>e.sumText||t("el.table.sumText")),V=k(()=>e.emptyText||t("el.table.emptyText"));return DV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:ye,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:M,resizeState:A,isGroup:_,bodyWidth:P,tableBodyStyles:D,emptyBlockStyle:S,debouncedUpdateLayout:oe,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:T,sort:p,t,setDragVisible:y,context:n,computedSumText:Ae,computedEmptyText:V,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G,scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}}}),NV=["data-prefix"],FV={ref:"hiddenColumns",class:"hidden-columns"};function BV(e,t,r,n,i,a){const o=_r("hColgroup"),s=_r("table-header"),l=_r("table-body"),u=_r("el-scrollbar"),c=_r("table-footer"),f=ZC("mousewheel");return Y(),me("div",{ref:"tableWrapper",class:ue([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:St(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...d)=>e.handleMouseLeave&&e.handleMouseLeave(...d))},[ae("div",{class:ue(e.ns.e("inner-wrapper")),style:St(e.tableInnerStyle)},[ae("div",FV,[$e(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?nr((Y(),me("div",{key:0,ref:"headerWrapper",class:ue(e.ns.e("header-wrapper"))},[ae("table",{ref:"tableHeader",class:ue(e.ns.e("header")),style:St(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ee(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):ke("v-if",!0),ae("div",{ref:"bodyWrapper",class:ue(e.ns.e("body-wrapper"))},[ee(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:Z(()=>[ae("table",{ref:"tableBody",class:ue(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:St({width:e.bodyWidth,tableLayout:e.tableLayout})},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(Y(),_e(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):ke("v-if",!0),ee(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(Y(),me("div",{key:0,ref:"emptyBlock",style:St(e.emptyBlockStyle),class:ue(e.ns.e("empty-block"))},[ae("span",{class:ue(e.ns.e("empty-text"))},[$e(e.$slots,"empty",{},()=>[Bt(Te(e.computedEmptyText),1)])],2)],6)):ke("v-if",!0),e.$slots.append?(Y(),me("div",{key:1,ref:"appendWrapper",class:ue(e.ns.e("append-wrapper"))},[$e(e.$slots,"append")],2)):ke("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?nr((Y(),me("div",{key:1,ref:"footerWrapper",class:ue(e.ns.e("footer-wrapper"))},[ee(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:St(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[yi,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):ke("v-if",!0),e.border||e.isGroup?(Y(),me("div",{key:2,class:ue(e.ns.e("border-left-patch"))},null,2)):ke("v-if",!0)],6),nr(ae("div",{ref:"resizeProxy",class:ue(e.ns.e("column-resize-proxy"))},null,2),[[yi,e.resizeProxyVisible]])],46,NV)}var $V=Ze(kV,[["render",BV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const HV={selection:"table-column--selection",expand:"table__expand-column"},zV={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},WV=e=>HV[e]||"",VV={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Ce(Cs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return Ce(Cs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Ce("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Ce("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Ce(lr,null,{default:()=>[Ce(dy)]})]})},sortable:!1,resizable:!1}};function GV({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&Sf(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function UV({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Ce("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Ce("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=dy;t.loading&&(l=hy),a.push(Ce("div",{class:s,onClick:o},{default:()=>[Ce(lr,{class:{[i.is("loading")]:t.loading}},{default:()=>[Ce(l)]})]}))}else a.push(Ce("span",{class:i.e("placeholder")}));return a}function m1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function jV(e,t){const r=ct();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{let f=c;u==="width"&&l==="realWidth"&&(f=ky(c)),u==="minWidth"&&l==="realMinWidth"&&(f=wA(c)),r.columnConfig.value[u]=f,r.columnConfig.value[l]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{r.columnConfig.value[l]=c})})}}}function YV(e,t,r){const n=ct(),i=B(""),a=B(!1),o=B(),s=B(),l=Fe("table");io(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),io(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),c=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:x}=b.states,w=x.value;return w&&Object.keys(w).length>0}),f=B(ky(e.width)),d=B(wA(e.minWidth)),h=b=>(f.value&&(b.width=f.value),d.value&&(b.minWidth=d.value),!f.value&&d.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const x=b.type,w=VV[x]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const S=WV(x);if(S){const C=`${E(l.namespace)}-${S}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>x(w)):x(b);function x(w){var S;((S=w==null?void 0:w.type)==null?void 0:S.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>{n.columnConfig.value.label;const S=t.header;return S?S(w):b.label});let x=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Ce("div",{class:"cell"},[x(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(x=x||GV,b.renderCell=w=>{let S=null;if(t.default){const D=t.default(w);S=D.some(N=>N.type!==xr)?D:x(w)}else S=x(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(D=>D.type==="default"),P=c.value&&w.cellIndex===M,A=UV(w,P),T={class:"cell",style:{}};return b.showOverflowTooltip&&(T.class=`${T.class} ${E(l.namespace)}-tooltip`,T.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(S),Ce("div",T,[A,S])}),b},getPropsData:(...b)=>b.reduce((x,w)=>(Array.isArray(w)&&w.forEach(S=>{x[S]=e[S]}),x),{}),getColumnElIndex:(b,x)=>Array.prototype.indexOf.call(b,x),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var qV={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let KV=1;var EA=ce({name:"ElTableColumn",components:{ElCheckbox:Cs},props:qV,setup(e,{slots:t}){const r=ct(),n=B({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=jV(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g,updateColumnOrder:m}=YV(e,t,i),y=c.value;s.value=`${y.tableId||y.columnId}_column_${KV++}`,Gd(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,x={...zV[_],id:s.value,type:_,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let P=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);P=KW(x,P),P=ZW(h,f,d)(P),n.value=P,a(),o()}),wt(()=>{var _;const b=c.value,x=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(x||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,m)}),Xt(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,m)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===pt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!He(s==null?void 0:s.children)&&i.push(s)});return Ce("div",i)}catch{return Ce("div",[])}}});const XV=hr($V,{TableColumn:EA}),ZV=fa(EA),PA=["success","info","warning","error"],mr=Ya({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Nt?document.body:void 0}),QV=tt({customClass:{type:String,default:mr.customClass},center:{type:Boolean,default:mr.center},dangerouslyUseHTMLString:{type:Boolean,default:mr.dangerouslyUseHTMLString},duration:{type:Number,default:mr.duration},icon:{type:Wn,default:mr.icon},id:{type:String,default:mr.id},message:{type:Le([String,Object,Function]),default:mr.message},onClose:{type:Le(Function),required:!1},showClose:{type:Boolean,default:mr.showClose},type:{type:String,values:PA,default:mr.type},offset:{type:Number,default:mr.offset},zIndex:{type:Number,default:mr.zIndex},grouping:{type:Boolean,default:mr.grouping},repeatNum:{type:Number,default:mr.repeatNum}}),JV={destroy:()=>!0},Sn=LC([]),eG=e=>{const t=Sn.findIndex(i=>i.id===e),r=Sn[t];let n;return t>0&&(n=Sn[t-1]),{current:r,prev:n}},tG=e=>{const{prev:t}=eG(e);return t?t.vm.exposed.bottom.value:0},rG=(e,t)=>Sn.findIndex(n=>n.id===e)>0?20:t,nG=["id"],iG=["innerHTML"],aG=ce({name:"ElMessage"}),oG=ce({...aG,props:QV,emits:JV,setup(e,{expose:t}){const r=e,{Close:n}=B3,{ns:i,zIndex:a}=sH("message"),{currentZIndex:o,nextZIndex:s}=a,l=B(),u=B(!1),c=B(0);let f;const d=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),h=k(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Ab[S]}}),v=k(()=>r.icon||Ab[r.type]||""),p=k(()=>tG(r.id)),g=k(()=>rG(r.id,r.offset)+p.value),m=k(()=>c.value+g.value),y=k(()=>({top:`${g.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:f}=kp(()=>{x()},r.duration))}function b(){f==null||f()}function x(){u.value=!1}function w({code:S}){S===Ot.esc&&x()}return wt(()=>{_(),s(),u.value=!0}),Se(()=>r.repeatNum,()=>{b(),_()}),xn(document,"keydown",w),gs(l,()=>{c.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:m,close:x}),(S,C)=>(Y(),_e(Ci,{name:E(i).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:C[0]||(C[0]=M=>S.$emit("destroy")),persisted:""},{default:Z(()=>[nr(ae("div",{id:S.id,ref_key:"messageRef",ref:l,class:ue([E(i).b(),{[E(i).m(S.type)]:S.type&&!S.icon},E(i).is("center",S.center),E(i).is("closable",S.showClose),S.customClass]),style:St(E(y)),role:"alert",onMouseenter:b,onMouseleave:_},[S.repeatNum>1?(Y(),_e(E(E6),{key:0,value:S.repeatNum,type:E(d),class:ue(E(i).e("badge"))},null,8,["value","type","class"])):ke("v-if",!0),E(v)?(Y(),_e(E(lr),{key:1,class:ue([E(i).e("icon"),E(h)])},{default:Z(()=>[(Y(),_e(nn(E(v))))]),_:1},8,["class"])):ke("v-if",!0),$e(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(Y(),me(pt,{key:1},[ke(" Caution here, message could've been compromised, never use user's input as message "),ae("p",{class:ue(E(i).e("content")),innerHTML:S.message},null,10,iG)],2112)):(Y(),me("p",{key:0,class:ue(E(i).e("content"))},Te(S.message),3))]),S.showClose?(Y(),_e(E(lr),{key:2,class:ue(E(i).e("closeBtn")),onClick:Jf(x,["stop"])},{default:Z(()=>[ee(E(n))]),_:1},8,["class","onClick"])):ke("v-if",!0)],46,nG),[[yi,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var sG=Ze(oG,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let lG=1;const LA=e=>{const t=!e||He(e)||ta(e)||De(e)?{message:e}:e,r={...mr,...t};if(!r.appendTo)r.appendTo=document.body;else if(He(r.appendTo)){let n=document.querySelector(r.appendTo);ys(n)||(n=document.body),r.appendTo=n}return r},uG=e=>{const t=Sn.indexOf(e);if(t===-1)return;Sn.splice(t,1);const{handler:r}=e;r.close()},cG=({appendTo:e,...t},r)=>{const n=`message_${lG++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),uG(c)},onDestroy:()=>{O_(null,a)}},s=ee(sG,o,De(o.message)||ta(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ms._context,O_(s,a),e.appendChild(a.firstElementChild);const l=s.component,c={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return c},Ms=(e={},t)=>{if(!Nt)return{close:()=>{}};if($t(Qp.max)&&Sn.length>=Qp.max)return{close:()=>{}};const r=LA(e);if(r.grouping&&Sn.length){const i=Sn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=cG(r,t);return Sn.push(n),n.handler};PA.forEach(e=>{Ms[e]=(t={},r)=>{const n=LA(t);return Ms({...n,type:e},r)}});function fG(e){for(const t of Sn)(!e||e===t.props.type)&&t.handler.close()}Ms.closeAll=fG;Ms._context=null;const DA=$3(Ms,"$message"),dG={id:"app"},hG={class:"grid-content header-color"},vG={class:"header-content"},pG=ae("div",{class:"brand"},[ae("a",{href:"#"},"frp")],-1),gG={class:"dark-switch"},mG=ae("span",null,"Proxies",-1),yG={id:"content"},_G=ae("footer",null,null,-1),bG=ce({__name:"App",setup(e){const t=NR(),r=B(t),n=nR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=VW,l=wW,u=xW,c=bW,f=pA,d=_r("router-view"),h=vA;return Y(),me("div",dG,[ae("header",hG,[ae("div",vG,[pG,ae("div",gG,[ee(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:E(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ae("section",null,[ee(h,null,{default:Z(()=>[ee(f,{id:"side-nav",xs:24,md:4},{default:Z(()=>[ee(c,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:Z(()=>[ee(l,{index:"/"},{default:Z(()=>[Bt("Overview")]),_:1}),ee(u,{index:"/proxies"},{title:Z(()=>[mG]),default:Z(()=>[ee(l,{index:"/proxies/tcp"},{default:Z(()=>[Bt("TCP")]),_:1}),ee(l,{index:"/proxies/udp"},{default:Z(()=>[Bt("UDP")]),_:1}),ee(l,{index:"/proxies/http"},{default:Z(()=>[Bt("HTTP")]),_:1}),ee(l,{index:"/proxies/https"},{default:Z(()=>[Bt("HTTPS")]),_:1}),ee(l,{index:"/proxies/stcp"},{default:Z(()=>[Bt("STCP")]),_:1}),ee(l,{index:"/proxies/sudp"},{default:Z(()=>[Bt("SUDP")]),_:1})]),_:1}),ee(l,{index:""},{default:Z(()=>[Bt("Help")]),_:1})]),_:1})]),_:1}),ee(f,{xs:24,md:20},{default:Z(()=>[ae("div",yG,[ee(d)])]),_:1})]),_:1})]),_G])}}});/*! + */var GW=/["'&<>]/,UW=jW;function jW(e){var t=""+e,r=GW.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?vu(s,u):u(s,l,e))):(t!=="$key"&&Xe(s)&&"$value"in s&&(s=s.$value),[Xe(s)?vu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,c=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},bA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},qW=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},Ja=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Yt(n,t)]={row:n,index:i}}),r};function KW(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(We(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function ky(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function wA(e){return e===""||e!==void 0&&(e=ky(e),Number.isNaN(e)&&(e=80)),e}function XW(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function ZW(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Fl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,be(t.children)&&t.children.forEach(l=>{Fl(e,l,r??!a)})};return Br(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function QW(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const c=u[r];i(c)||a(u,c,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ui;function JW(e,t,r,n,i){i=aM({enterable:!0,showArrow:!0},i);const a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=i.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",i.popperClass||""].join(" "),r=UW(r),m.innerHTML=r,m.style.zIndex=String(n()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){c&&c.update()}ui==null||ui(),ui=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ui),ui=void 0}catch{}};let c=null,f=u,d=ui;i.enterable&&({onOpen:f,onClose:d}=DM({showAfter:i.showAfter,hideAfter:i.hideAfter,open:u,close:ui}));const h=s();h.onmouseenter=f,h.onmouseleave=d;const v=[];if(i.offset&&v.push({name:"offset",options:{offset:[0,i.offset]}}),i.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=i.popperOptions||{};return c=EM(t,h,{placement:i.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ui),c}function xA(e){return e.children?E5(e.children,xA):[e]}function p1(e,t){return e+t.colSpan}const SA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=xA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(p1,0),a=i+l.reduce(p1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ny=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=SA(t,r,n,i);if(s){const c=s==="left";o.push(`${e}-fixed-column--${s}`),c&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!c&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function g1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Fy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=SA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(g1,0):s.right=u.slice(o+1).reverse().reduce(g1,0),s},Ts=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function eV(e){const t=ct(),r=B(!1),n=B([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const c=Ja(n.value,u);n.value=l.reduce((f,d)=>{const h=Yt(d,u);return c[h]&&f.push(d),f},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Fl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=Ja(u,c);n.value=l.reduce((d,h)=>{const v=f[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Ja(n.value,u)[Yt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function tV(e){const t=ct(),r=B(null),n=B(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(E(c)||[]).find(h=>Yt(h,f.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const c=n.value;if(u&&u!==c){n.value=u,t.emit("current-change",n.value,c);return}!u&&c&&(n.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=n.value;if(!c.includes(f)&&f){if(u){const d=Yt(f,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,f)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function rV(e){const t=B([]),r=B({}),n=B(16),i=B(!1),a=B({}),o=B("hasChildren"),s=B("children"),l=ct(),u=k(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=k(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Yt(w,m);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),f=m=>{const y=e.rowKey.value,_={};return QW(m,(b,x,w)=>{const S=Yt(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Yt(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=c.value,w=Object.keys(b),S={};if(w.length){const C=E(r),M=[],P=(T,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||T!=null&&T.expanded);{const N=y||t.value&&t.value.includes(D);return!!(T!=null&&T.expanded||N)}};w.forEach(T=>{const D=C[T],N={...b[T]};if(N.expanded=P(D,T),N.lazy){const{loaded:H=!1,loading:$=!1}=D||{};N.loaded=!!H,N.loading=!!$,M.push(T)}S[T]=N});const A=Object.keys(x);i.value&&A.length&&M.length&&A.forEach(T=>{const D=C[T],N=x[T].children;if(M.includes(T)){if(S[T].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[T].children=N}else{const{loaded:H=!1,loading:$=!1}=D||{};S[T]={lazy:!0,loaded:!!H,loading:!!$,expanded:P(D,T),children:N,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};Se(()=>t.value,()=>{d(!0)}),Se(()=>u.value,()=>{d()}),Se(()=>c.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Yt(m,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Yt(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const nV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:YW(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Df=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,Df(r.children)):t.push(r)}),t};function iV(){var e;const t=ct(),{size:r}=$d((e=t.proxy)==null?void 0:e.$props),n=B(null),i=B([]),a=B([]),o=B(!1),s=B([]),l=B([]),u=B([]),c=B([]),f=B([]),d=B([]),h=B([]),v=B([]),p=[],g=B(0),m=B(0),y=B(0),_=B(!1),b=B([]),x=B(!1),w=B(!1),S=B(null),C=B({}),M=B(null),P=B(null),A=B(null),T=B(null),D=B(null);Se(i,()=>t.state&&G(!1),{deep:!0});const N=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},H=ve=>{var Pe;(Pe=ve.children)==null||Pe.forEach(je=>{je.fixed=ve.fixed,H(je)})},$=()=>{s.value.forEach(nt=>{H(nt)}),c.value=s.value.filter(nt=>nt.fixed===!0||nt.fixed==="left"),f.value=s.value.filter(nt=>nt.fixed==="right"),c.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,c.value.unshift(s.value[0]));const ve=s.value.filter(nt=>!nt.fixed);l.value=[].concat(c.value).concat(ve).concat(f.value);const Pe=Df(ve),je=Df(c.value),Be=Df(f.value);g.value=Pe.length,m.value=je.length,y.value=Be.length,u.value=[].concat(je).concat(Pe).concat(Be),o.value=c.value.length>0||f.value.length>0},G=(ve,Pe=!1)=>{ve&&$(),Pe?t.state.doLayout():t.state.debouncedUpdateLayout()},F=ve=>b.value.includes(ve),R=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},j=()=>{let ve;if(n.value){ve=[];const Pe=Ja(b.value,n.value),je=Ja(i.value,n.value);for(const Be in Pe)We(Pe,Be)&&!je[Be]&&ve.push(Pe[Be].row)}else ve=b.value.filter(Pe=>!i.value.includes(Pe));if(ve.length){const Pe=b.value.filter(je=>!ve.includes(je));b.value=Pe,t.emit("selection-change",Pe.slice())}},re=()=>(b.value||[]).slice(),oe=(ve,Pe=void 0,je=!0)=>{if(Fl(b.value,ve,Pe)){const nt=(b.value||[]).slice();je&&t.emit("select",nt,ve),t.emit("selection-change",nt)}},ye=()=>{var ve,Pe;const je=w.value?!_.value:!(_.value||b.value.length);_.value=je;let Be=!1,nt=0;const it=(Pe=(ve=t==null?void 0:t.store)==null?void 0:ve.states)==null?void 0:Pe.rowKey.value;i.value.forEach((Mt,ri)=>{const ni=ri+nt;S.value?S.value.call(null,Mt,ni)&&Fl(b.value,Mt,je)&&(Be=!0):Fl(b.value,Mt,je)&&(Be=!0),nt+=Q(Yt(Mt,it))}),Be&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},Ae=()=>{const ve=Ja(b.value,n.value);i.value.forEach(Pe=>{const je=Yt(Pe,n.value),Be=ve[je];Be&&(b.value[Be.index]=Pe)})},V=()=>{var ve,Pe,je;if(((ve=i.value)==null?void 0:ve.length)===0){_.value=!1;return}let Be;n.value&&(Be=Ja(b.value,n.value));const nt=function(ni){return Be?!!Be[Yt(ni,n.value)]:b.value.includes(ni)};let it=!0,Mt=0,ri=0;for(let ni=0,sD=(i.value||[]).length;ni{var Pe;if(!t||!t.store)return 0;const{treeData:je}=t.store.states;let Be=0;const nt=(Pe=je.value[ve])==null?void 0:Pe.children;return nt&&(Be+=nt.length,nt.forEach(it=>{Be+=Q(it)})),Be},W=(ve,Pe)=>{Array.isArray(ve)||(ve=[ve]);const je={};return ve.forEach(Be=>{C.value[Be.id]=Pe,je[Be.columnKey||Be.id]=Pe}),je},q=(ve,Pe,je)=>{P.value&&P.value!==ve&&(P.value.order=null),P.value=ve,A.value=Pe,T.value=je},le=()=>{let ve=E(a);Object.keys(C.value).forEach(Pe=>{const je=C.value[Pe];if(!je||je.length===0)return;const Be=bA({columns:u.value},Pe);Be&&Be.filterMethod&&(ve=ve.filter(nt=>je.some(it=>Be.filterMethod.call(null,it,nt,Be))))}),M.value=ve},de=()=>{i.value=nV(M.value,{sortingColumn:P.value,sortProp:A.value,sortOrder:T.value})},J=(ve=void 0)=>{ve&&ve.filter||le(),de()},L=ve=>{const{tableHeaderRef:Pe}=t.refs;if(!Pe)return;const je=Object.assign({},Pe.filterPanels),Be=Object.keys(je);if(Be.length)if(typeof ve=="string"&&(ve=[ve]),Array.isArray(ve)){const nt=ve.map(it=>qW({columns:u.value},it));Be.forEach(it=>{const Mt=nt.find(ri=>ri.id===it);Mt&&(Mt.filteredValue=[])}),t.store.commit("filterChange",{column:nt,values:[],silent:!0,multi:!0})}else Be.forEach(nt=>{const it=u.value.find(Mt=>Mt.id===nt);it&&(it.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},I=()=>{P.value&&(q(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:z,toggleRowExpansion:U,updateExpandRows:K,states:ne,isRowExpanded:fe}=eV({data:i,rowKey:n}),{updateTreeExpandKeys:te,toggleTreeExpansion:ie,updateTreeData:X,loadOrToggle:we,states:he}=rV({data:i,rowKey:n}),{updateCurrentRowData:xe,updateCurrentRow:Oe,setCurrentRowKey:ze,states:rt}=tV({data:i,rowKey:n});return{assertRowKey:N,updateColumns:$,scheduleLayout:G,isSelected:F,clearSelection:R,cleanSelection:j,getSelectionRows:re,toggleRowSelection:oe,_toggleAllSelection:ye,toggleAllSelection:null,updateSelectionByRowKey:Ae,updateAllSelected:V,updateFilters:W,updateCurrentRow:Oe,updateSort:q,execFilter:le,execSort:de,execQuery:J,clearFilter:L,clearSort:I,toggleRowExpansion:U,setExpandRowKeysAdapter:ve=>{z(ve),te(ve)},setCurrentRowKey:ze,toggleRowExpansionAdapter:(ve,Pe)=>{u.value.some(({type:Be})=>Be==="expand")?U(ve,Pe):ie(ve,Pe)},isRowExpanded:fe,updateExpandRows:K,updateCurrentRowData:xe,loadOrToggle:we,updateTreeData:X,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:g,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:x,selectOnIndeterminate:w,selectable:S,filters:C,filteredData:M,sortingColumn:P,sortProp:A,sortOrder:T,hoverRow:D,...ne,...he,...rt}}}function pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=pg(r.children,t)),r)})}function gg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&gg(t.children)}),e.sort((t,r)=>t.no-r.no)}function aV(){const e=ct(),t=iV();return{ns:Ne("table"),...t,mutations:{setData(o,s){const l=E(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),E(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const c=E(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=pg(c,l)):(c.push(s),f=c),gg(f),o._columns.value=f,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(gg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const c=E(o._columns)||[];if(l)l.children.splice(l.children.findIndex(d=>d.id===s.id),1),Ft(()=>{var d;((d=l.children)==null?void 0:d.length)===0&&delete l.children}),o._columns.value=pg(c,l);else{const d=c.indexOf(s);d>-1&&(c.splice(d,1),o._columns.value=c)}const f=o.updateOrderFns.indexOf(u);f>-1&&o.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:c}=s;if(l){const f=E(o.columns).find(d=>d.property===l);f&&(f.order=u,e.store.updateSort(f,l,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:c}=o,f=E(l),d=E(u),h=E(c);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:c}=s,f=e.store.updateFilters(l,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Ft(()=>e.layout.updateScrollY.apply(e.layout))}}}const Bl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function oV(e,t){if(!e)throw new Error("Table is required.");const r=aV();return r.toggleAllSelection=id(r._toggleAllSelection,10),Object.keys(Bl).forEach(n=>{CA(TA(t,n),n,r)}),sV(r,t),r}function sV(e,t){Object.keys(Bl).forEach(r=>{Se(()=>TA(t,r),n=>{CA(n,r,e)})})}function CA(e,t,r){let n=e,i=Bl[t];typeof Bl[t]=="object"&&(i=i.key,n=n||Bl[t].default),r.states[i].value=n}function TA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class lV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=B(null),this.scrollX=B(!1),this.scrollY=B(!1),this.bodyWidth=B(null),this.fixedWidth=B(null),this.rightFixedWidth=B(null),this.gutterWidth=0;for(const r in t)We(t,r)&&(Ct(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Nt)return;const n=this.table.vnode.el;if(t=XW(t),this.height.value=Number(t),!n&&(t||t===0))return Ft(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Nt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),c=l/u;let f=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*c);f+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-f}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:uV}=Cs,cV=ce({name:"ElTableFilterPanel",components:{ElCheckbox:Cs,ElCheckboxGroup:uV,ElScrollbar:VM,ElTooltip:Ju,ElIcon:lr,ArrowDown:lM,ArrowUp:e3},directives:{ClickOutside:t8},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=ct(),{t:r}=py(),n=Ne("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=B(!1),o=B(null),s=k(()=>e.column&&e.column.filters),l=k({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=k({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),c=k(()=>e.column?e.column.filterMultiple:!0),f=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};Se(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=k(()=>{var b,x;return(x=(b=o.value)==null?void 0:b.popperRef)==null?void 0:x.contentRef});return{tooltipVisible:a,multiple:c,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:f,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),fV={key:0},dV=["disabled"],hV=["label","onClick"];function vV(e,t,r,n,i,a){const o=_r("el-checkbox"),s=_r("el-checkbox-group"),l=_r("el-scrollbar"),u=_r("arrow-up"),c=_r("arrow-down"),f=_r("el-icon"),d=_r("el-tooltip"),h=ZC("click-outside");return Y(),_e(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:Z(()=>[e.multiple?(Y(),me("div",fV,[ae("div",{class:ue(e.ns.e("content"))},[ee(l,{"wrap-class":e.ns.e("wrap")},{default:Z(()=>[ee(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:ue(e.ns.e("checkbox-group"))},{default:Z(()=>[(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),_e(o,{key:v.value,label:v.value},{default:Z(()=>[Bt(Me(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ae("div",{class:ue(e.ns.e("bottom"))},[ae("button",{class:ue({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Me(e.t("el.table.confirmFilter")),11,dV),ae("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Me(e.t("el.table.resetFilter")),1)],2)])):(Y(),me("ul",{key:1,class:ue(e.ns.e("list"))},[ae("li",{class:ue([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Me(e.t("el.table.clearFilter")),3),(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),me("li",{key:v.value,class:ue([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Me(v.text),11,hV))),128))],2))]),default:Z(()=>[nr((Y(),me("span",{class:ue([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[ee(f,null,{default:Z(()=>[e.column.filterOpened?(Y(),_e(u,{key:0})):(Y(),_e(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var pV=Ze(cV,[["render",vV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function MA(e){const t=ct();Gd(()=>{r.value.addObserver(t)}),wt(()=>{n(r.value),i(r.value)}),Hu(()=>{n(r.value),i(r.value)}),ks(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,f=s.length;c{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=l.length;c{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=B(null),l=B(!1),u=B({}),c=(p,g)=>{if(Nt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Zo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=m==null?void 0:m.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=P=>{const A=P.clientX-u.value.startMouseLeft,T=u.value.startLeft+A;S.style.left=`${Math.max(w,T)}px`},M=()=>{if(l.value){const{startColumnLeft:P,startLeft:A}=u.value,D=Number.parseInt(S.style.left,10)-P;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-P,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{ss(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},f=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Ol(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Ol(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Nt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Ol(b,"noclick")){ss(b,"noclick");return}if(!g.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=g,w=g.property),_?S=g.order=_:S=g.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function mV(e){const t=Ee(Qn),r=Ne("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:c}));const h=Fy(l,c.fixed,e.store,u);return Ts(h,"left"),Ts(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,c)=>{const f=Ny(r.b(),l,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:c})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const AA=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,AA(r.children))):t.push(r)}),t},yV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function _V(e){const t=Ee(Qn),r=k(()=>yV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var bV=ce({name:"ElTableHeader",components:{ElCheckbox:Cs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=ct(),n=Ee(Qn),i=Ne("table"),a=B({}),{onColumnsChange:o,onScrollableChange:s}=MA(n);wt(async()=>{await Ft(),await Ft();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=gV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=mV(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=_V(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return Ce("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>Ce("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Ce("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>c(b,y),onMouseout:d},[Ce("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&Ce("span",{onClick:b=>f(b,y),class:"caret-wrapper"},[Ce("i",{onClick:b=>f(b,y,"ascending"),class:"sort-caret ascending"}),Ce("i",{onClick:b=>f(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Ce(pV,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function wV(e){const t=Ee(Qn),r=B(""),n=B(Ce("div")),{nextZIndex:i}=Ay(),a=(h,v,p)=>{var g;const m=t,y=Qh(h);let _;const b=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;y&&(_=v1({columns:e.store.states.columns.value},y,b),_&&(m==null||m.emit(`cell-${p}`,v,_,y,h))),m==null||m.emit(`row-${p}`,v,_,h)},o=(h,v)=>{a(h,v,"dblclick")},s=(h,v)=>{e.store.commit("setCurrentRow",v),a(h,v,"click")},l=(h,v)=>{a(h,v,"contextmenu")},u=id(h=>{e.store.commit("setHoverRow",h)},30),c=id(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:o,handleClick:s,handleContextMenu:l,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(h,v,p)=>{var g;const m=t,y=Qh(h),_=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;if(y){const C=v1({columns:e.store.states.columns.value},y,_),M=m.hoverState={cell:y,column:C,row:v};m==null||m.emit("cell-mouse-enter",M.row,M.column,M.cell,h)}if(!p)return;const b=h.target.querySelector(".cell");if(!(Ol(b,`${_}-tooltip`)&&b.childNodes.length))return;const x=document.createRange();x.setStart(b,0),x.setEnd(b,b.childNodes.length);const w=Math.round(x.getBoundingClientRect().width),S=(Number.parseInt(Mb(b,"paddingLeft"),10)||0)+(Number.parseInt(Mb(b,"paddingRight"),10)||0);(w+S>b.offsetWidth||b.scrollWidth>b.offsetWidth)&&JW(t==null?void 0:t.refs.tableWrapper,y,y.innerText||y.textContent,i,p)},handleCellMouseLeave:h=>{if(!Qh(h))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,h)},tooltipContent:r,tooltipTrigger:n}}function xV(e){const t=Ee(Qn),r=Ne("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const p=Fy(c,e==null?void 0:e.fixed,e.store);return Ts(p,"left"),Ts(p,"right"),Object.assign({},v,p)},getCellClass:(u,c,f,d,h)=>{const v=Ny(r.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(f,f+c);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function SV(e){const t=Ee(Qn),r=Ne("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=wV(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=xV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const M=t.props.rowKey;return M?Yt(S,M):C},b=(S,C,M,P=!1)=>{const{tooltipEffect:A,tooltipOptions:T,store:D}=e,{indent:N,columns:H}=D.states,$=h(S,C);let G=!0;return M&&($.push(r.em("row",`level-${M.level}`)),G=M.display),Ce("tr",{style:[G?null:{display:"none"},d(S,C)],class:$,key:_(S,C),onDblclick:R=>n(R,S),onClick:R=>i(R,S),onContextmenu:R=>a(R,S),onMouseenter:()=>o(C),onMouseleave:s},H.value.map((R,j)=>{const{rowspan:re,colspan:oe}=g(S,R,C,j);if(!re||!oe)return null;const ye={...R};ye.realWidth=m(H.value,oe,j);const Ae={store:e.store,_self:e.context||t,column:ye,row:S,$index:C,cellIndex:j,expanded:P};j===y.value&&M&&(Ae.treeNode={indent:M.level*N.value,level:M.level},typeof M.expanded=="boolean"&&(Ae.treeNode.expanded=M.expanded,"loading"in M&&(Ae.treeNode.loading=M.loading),"noLazyChildren"in M&&(Ae.treeNode.noLazyChildren=M.noLazyChildren)));const V=`${C},${j}`,Q=ye.columnKey||ye.rawColumnKey||"",W=x(j,R,Ae),q=R.showOverflowTooltip&&aM({effect:A},T,R.showOverflowTooltip);return Ce("td",{style:v(C,j,S,R),class:p(C,j,S,R,oe-1),key:`${Q}${V}`,rowspan:re,colspan:oe,onMouseenter:le=>l(le,S,q),onMouseleave:u},[W])}))},x=(S,C,M)=>C.renderCell(M);return{wrappedRowRender:(S,C)=>{const M=e.store,{isRowExpanded:P,assertRowKey:A}=M,{treeData:T,lazyTreeNodeMap:D,childrenColumnName:N,rowKey:H}=M.states,$=M.states.columns.value;if($.some(({type:F})=>F==="expand")){const F=P(S),R=b(S,C,void 0,F),j=t.renderExpanded;return F?j?[[R,Ce("tr",{key:`expanded-row__${R.key}`},[Ce("td",{colspan:$.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[j({row:S,$index:C,store:M,expanded:F})])])]]:(console.error("[Element Error]renderExpanded is required."),R):[[R]]}else if(Object.keys(T.value).length){A();const F=Yt(S,H.value);let R=T.value[F],j=null;R&&(j={expanded:R.expanded,level:R.level,display:!0},typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(j.noLazyChildren=!(R.children&&R.children.length)),j.loading=R.loading));const re=[b(S,C,j)];if(R){let oe=0;const ye=(V,Q)=>{V&&V.length&&Q&&V.forEach(W=>{const q={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},le=Yt(W,H.value);if(le==null)throw new Error("For nested data item, row-key is required.");if(R={...T.value[le]},R&&(q.expanded=R.expanded,R.level=R.level||q.level,R.display=!!(R.expanded&&q.display),typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(q.noLazyChildren=!(R.children&&R.children.length)),q.loading=R.loading)),oe++,re.push(b(W,C+oe,q)),R){const de=D.value[le]||W[N.value];ye(de,R)}})};R.display=!0;const Ae=D.value[F]||S[N.value];ye(Ae,R)}return re}else return b(S,C,void 0)},tooltipContent:c,tooltipTrigger:f}}const CV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var TV=ce({name:"ElTableBody",props:CV,setup(e){const t=ct(),r=Ee(Qn),n=Ne("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=SV(e),{onColumnsChange:s,onScrollableChange:l}=MA(r);return Se(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Nt)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[c],p=h[u];v&&ss(v,"hover-row"),p&&Zo(p,"hover-row")})}),ks(()=>{var u;(u=ui)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Ce("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function By(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Ce("colgroup",{},r.map(i=>Ce("col",n(i))))}By.props=["columns","tableLayout"];function MV(){const e=Ee(Qn),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function AV(e){const{columns:t}=MV(),r=Ne("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ny(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Fy(o,a.fixed,e.store);return Ts(s,"left"),Ts(s,"right"),s},columns:t}}var EV=ce({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=AV(e);return{ns:Ne("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const c=o.map(v=>Number(v[l.property])),f=[];let d=!0;c.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];f.push(p?p.length:0)}});const h=Math.max.apply(null,f);d?s[u]="":s[u]=c.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),Ce("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[By({columns:e}),Ce("tbody",[Ce("tr",{},[...e.map((l,u)=>Ce("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[Ce("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function PV(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function LV(e,t,r,n){const i=B(!1),a=B(null),o=B(!1),s=F=>{o.value=F},l=B({width:null,height:null,headerHeight:null}),u=B(!1),c={display:"inline-block",verticalAlign:"middle"},f=B(),d=B(0),h=B(0),v=B(0),p=B(0);io(()=>{t.setHeight(e.height)}),io(()=>{t.setMaxHeight(e.maxHeight)}),Se(()=>[e.currentRowKey,r.states.rowKey],([F,R])=>{!E(R)||!E(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),Se(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),io(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(F,R)=>{const{pixelX:j,pixelY:re}=R;Math.abs(j)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=R.pixelX/5)},y=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};wt(async()=>{await Ft(),r.updateColumns(),M(),requestAnimationFrame(b);const F=n.vnode.el,R=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:f.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&R?R.offsetHeight:null},r.states.columns.value.forEach(j=>{j.filteredValue&&j.filteredValue.length&&n.store.commit("filterChange",{column:j,values:j.filteredValue,silent:!0})}),n.$ready=!0});const x=(F,R)=>{if(!F)return;const j=Array.from(F.classList).filter(re=>!re.startsWith("is-scrolling-"));j.push(t.scrollX.value?R:"is-scrolling-none"),F.className=j.join(" ")},w=F=>{const{tableWrapper:R}=n.refs;x(R,F)},S=F=>{const{tableWrapper:R}=n.refs;return!!(R&&R.classList.contains(F))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";S(V)||w(V);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:R,offsetWidth:j,scrollWidth:re}=F,{headerWrapper:oe,footerWrapper:ye}=n.refs;oe&&(oe.scrollLeft=R),ye&&(ye.scrollLeft=R);const Ae=re-j-1;R>=Ae?w("is-scrolling-right"):w(R===0?"is-scrolling-left":"is-scrolling-middle")},M=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&xn(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?gs(n.vnode.el,P):xn(window,"resize",P),gs(n.refs.bodyWrapper,()=>{var F,R;P(),(R=(F=n.refs)==null?void 0:F.scrollBarRef)==null||R.update()}))},P=()=>{var F,R,j;const re=n.vnode.el;if(!n.$ready||!re)return;let oe=!1;const{width:ye,height:Ae,headerHeight:V}=l.value,Q=f.value=re.offsetWidth;ye!==Q&&(oe=!0);const W=re.offsetHeight;(e.height||y.value)&&Ae!==W&&(oe=!0);const q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(q==null?void 0:q.offsetHeight)!==V&&(oe=!0),d.value=((R=n.refs.tableWrapper)==null?void 0:R.scrollHeight)||0,v.value=(q==null?void 0:q.scrollHeight)||0,p.value=((j=n.refs.footerWrapper)==null?void 0:j.offsetHeight)||0,h.value=d.value-v.value-p.value,oe&&(l.value={width:Q,height:W,headerHeight:e.showHeader&&(q==null?void 0:q.offsetHeight)||0},b())},A=ia(),T=k(()=>{const{bodyWidth:F,scrollY:R,gutterWidth:j}=t;return F.value?`${F.value-(R.value?j:0)}px`:""}),D=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&h.value&&(F=`${h.value}px`);const R=f.value;return{width:R?`${R}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),$=k(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const F=e.maxHeight;if(d.value>=Number(F))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:N,handleFixedMousewheel:(F,R)=>{const j=n.refs.bodyWrapper;if(Math.abs(R.spinY)>0){const re=j.scrollTop;R.pixelY<0&&re!==0&&F.preventDefault(),R.pixelY>0&&j.scrollHeight-j.clientHeight>re&&F.preventDefault(),j.scrollTop+=Math.ceil(R.pixelY/5)}else j.scrollLeft+=Math.ceil(R.pixelX/5)},resizeProxyVisible:o,bodyWidth:T,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:H,scrollbarStyle:$}}function DV(e){const t=B(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};wt(()=>{r()}),ks(()=>{var n;(n=t.value)==null||n.disconnect()})}var IV={data:{type:Array,default:()=>[]},size:Xu,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const OV=()=>{const e=B(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&$t(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let RV=1;const kV=ce({name:"ElTable",directives:{Mousewheel:l8},components:{TableHeader:bV,TableBody:TV,TableFooter:EV,ElScrollbar:VM,hColgroup:By},props:IV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=py(),r=Ne("table"),n=ct();At(Qn,n);const i=oV(n,e);n.store=i;const a=new lV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=PV(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:P,resizeState:A,doLayout:T,tableBodyStyles:D,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G}=LV(e,a,i,n),{scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}=OV(),oe=id(T,50),ye=`${r.namespace.value}-table_${RV++}`;n.tableId=ye,n.state={isGroup:_,resizeState:A,doLayout:T,debouncedUpdateLayout:oe};const Ae=k(()=>e.sumText||t("el.table.sumText")),V=k(()=>e.emptyText||t("el.table.emptyText"));return DV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:ye,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:M,resizeState:A,isGroup:_,bodyWidth:P,tableBodyStyles:D,emptyBlockStyle:S,debouncedUpdateLayout:oe,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:T,sort:p,t,setDragVisible:y,context:n,computedSumText:Ae,computedEmptyText:V,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G,scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}}}),NV=["data-prefix"],FV={ref:"hiddenColumns",class:"hidden-columns"};function BV(e,t,r,n,i,a){const o=_r("hColgroup"),s=_r("table-header"),l=_r("table-body"),u=_r("el-scrollbar"),c=_r("table-footer"),f=ZC("mousewheel");return Y(),me("div",{ref:"tableWrapper",class:ue([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:St(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...d)=>e.handleMouseLeave&&e.handleMouseLeave(...d))},[ae("div",{class:ue(e.ns.e("inner-wrapper")),style:St(e.tableInnerStyle)},[ae("div",FV,[$e(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?nr((Y(),me("div",{key:0,ref:"headerWrapper",class:ue(e.ns.e("header-wrapper"))},[ae("table",{ref:"tableHeader",class:ue(e.ns.e("header")),style:St(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ee(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):Fe("v-if",!0),ae("div",{ref:"bodyWrapper",class:ue(e.ns.e("body-wrapper"))},[ee(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:Z(()=>[ae("table",{ref:"tableBody",class:ue(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:St({width:e.bodyWidth,tableLayout:e.tableLayout})},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(Y(),_e(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):Fe("v-if",!0),ee(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(Y(),me("div",{key:0,ref:"emptyBlock",style:St(e.emptyBlockStyle),class:ue(e.ns.e("empty-block"))},[ae("span",{class:ue(e.ns.e("empty-text"))},[$e(e.$slots,"empty",{},()=>[Bt(Me(e.computedEmptyText),1)])],2)],6)):Fe("v-if",!0),e.$slots.append?(Y(),me("div",{key:1,ref:"appendWrapper",class:ue(e.ns.e("append-wrapper"))},[$e(e.$slots,"append")],2)):Fe("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?nr((Y(),me("div",{key:1,ref:"footerWrapper",class:ue(e.ns.e("footer-wrapper"))},[ee(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:St(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[yi,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):Fe("v-if",!0),e.border||e.isGroup?(Y(),me("div",{key:2,class:ue(e.ns.e("border-left-patch"))},null,2)):Fe("v-if",!0)],6),nr(ae("div",{ref:"resizeProxy",class:ue(e.ns.e("column-resize-proxy"))},null,2),[[yi,e.resizeProxyVisible]])],46,NV)}var $V=Ze(kV,[["render",BV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const HV={selection:"table-column--selection",expand:"table__expand-column"},zV={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},WV=e=>HV[e]||"",VV={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Ce(Cs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return Ce(Cs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Ce("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Ce("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Ce(lr,null,{default:()=>[Ce(dy)]})]})},sortable:!1,resizable:!1}};function GV({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&Sf(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function UV({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Ce("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Ce("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=dy;t.loading&&(l=hy),a.push(Ce("div",{class:s,onClick:o},{default:()=>[Ce(lr,{class:{[i.is("loading")]:t.loading}},{default:()=>[Ce(l)]})]}))}else a.push(Ce("span",{class:i.e("placeholder")}));return a}function m1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function jV(e,t){const r=ct();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{let f=c;u==="width"&&l==="realWidth"&&(f=ky(c)),u==="minWidth"&&l==="realMinWidth"&&(f=wA(c)),r.columnConfig.value[u]=f,r.columnConfig.value[l]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{r.columnConfig.value[l]=c})})}}}function YV(e,t,r){const n=ct(),i=B(""),a=B(!1),o=B(),s=B(),l=Ne("table");io(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),io(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),c=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:x}=b.states,w=x.value;return w&&Object.keys(w).length>0}),f=B(ky(e.width)),d=B(wA(e.minWidth)),h=b=>(f.value&&(b.width=f.value),d.value&&(b.minWidth=d.value),!f.value&&d.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const x=b.type,w=VV[x]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const S=WV(x);if(S){const C=`${E(l.namespace)}-${S}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>x(w)):x(b);function x(w){var S;((S=w==null?void 0:w.type)==null?void 0:S.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>{n.columnConfig.value.label;const S=t.header;return S?S(w):b.label});let x=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Ce("div",{class:"cell"},[x(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(x=x||GV,b.renderCell=w=>{let S=null;if(t.default){const D=t.default(w);S=D.some(N=>N.type!==xr)?D:x(w)}else S=x(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(D=>D.type==="default"),P=c.value&&w.cellIndex===M,A=UV(w,P),T={class:"cell",style:{}};return b.showOverflowTooltip&&(T.class=`${T.class} ${E(l.namespace)}-tooltip`,T.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(S),Ce("div",T,[A,S])}),b},getPropsData:(...b)=>b.reduce((x,w)=>(Array.isArray(w)&&w.forEach(S=>{x[S]=e[S]}),x),{}),getColumnElIndex:(b,x)=>Array.prototype.indexOf.call(b,x),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var qV={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let KV=1;var EA=ce({name:"ElTableColumn",components:{ElCheckbox:Cs},props:qV,setup(e,{slots:t}){const r=ct(),n=B({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=jV(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g,updateColumnOrder:m}=YV(e,t,i),y=c.value;s.value=`${y.tableId||y.columnId}_column_${KV++}`,Gd(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,x={...zV[_],id:s.value,type:_,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let P=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);P=KW(x,P),P=ZW(h,f,d)(P),n.value=P,a(),o()}),wt(()=>{var _;const b=c.value,x=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(x||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,m)}),Xt(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,m)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===pt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!He(s==null?void 0:s.children)&&i.push(s)});return Ce("div",i)}catch{return Ce("div",[])}}});const XV=hr($V,{TableColumn:EA}),ZV=fa(EA),PA=["success","info","warning","error"],mr=Ya({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Nt?document.body:void 0}),QV=tt({customClass:{type:String,default:mr.customClass},center:{type:Boolean,default:mr.center},dangerouslyUseHTMLString:{type:Boolean,default:mr.dangerouslyUseHTMLString},duration:{type:Number,default:mr.duration},icon:{type:Wn,default:mr.icon},id:{type:String,default:mr.id},message:{type:Le([String,Object,Function]),default:mr.message},onClose:{type:Le(Function),required:!1},showClose:{type:Boolean,default:mr.showClose},type:{type:String,values:PA,default:mr.type},offset:{type:Number,default:mr.offset},zIndex:{type:Number,default:mr.zIndex},grouping:{type:Boolean,default:mr.grouping},repeatNum:{type:Number,default:mr.repeatNum}}),JV={destroy:()=>!0},Sn=LC([]),eG=e=>{const t=Sn.findIndex(i=>i.id===e),r=Sn[t];let n;return t>0&&(n=Sn[t-1]),{current:r,prev:n}},tG=e=>{const{prev:t}=eG(e);return t?t.vm.exposed.bottom.value:0},rG=(e,t)=>Sn.findIndex(n=>n.id===e)>0?20:t,nG=["id"],iG=["innerHTML"],aG=ce({name:"ElMessage"}),oG=ce({...aG,props:QV,emits:JV,setup(e,{expose:t}){const r=e,{Close:n}=B3,{ns:i,zIndex:a}=sH("message"),{currentZIndex:o,nextZIndex:s}=a,l=B(),u=B(!1),c=B(0);let f;const d=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),h=k(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Ab[S]}}),v=k(()=>r.icon||Ab[r.type]||""),p=k(()=>tG(r.id)),g=k(()=>rG(r.id,r.offset)+p.value),m=k(()=>c.value+g.value),y=k(()=>({top:`${g.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:f}=kp(()=>{x()},r.duration))}function b(){f==null||f()}function x(){u.value=!1}function w({code:S}){S===Ot.esc&&x()}return wt(()=>{_(),s(),u.value=!0}),Se(()=>r.repeatNum,()=>{b(),_()}),xn(document,"keydown",w),gs(l,()=>{c.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:m,close:x}),(S,C)=>(Y(),_e(Ci,{name:E(i).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:C[0]||(C[0]=M=>S.$emit("destroy")),persisted:""},{default:Z(()=>[nr(ae("div",{id:S.id,ref_key:"messageRef",ref:l,class:ue([E(i).b(),{[E(i).m(S.type)]:S.type&&!S.icon},E(i).is("center",S.center),E(i).is("closable",S.showClose),S.customClass]),style:St(E(y)),role:"alert",onMouseenter:b,onMouseleave:_},[S.repeatNum>1?(Y(),_e(E(E6),{key:0,value:S.repeatNum,type:E(d),class:ue(E(i).e("badge"))},null,8,["value","type","class"])):Fe("v-if",!0),E(v)?(Y(),_e(E(lr),{key:1,class:ue([E(i).e("icon"),E(h)])},{default:Z(()=>[(Y(),_e(nn(E(v))))]),_:1},8,["class"])):Fe("v-if",!0),$e(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(Y(),me(pt,{key:1},[Fe(" Caution here, message could've been compromised, never use user's input as message "),ae("p",{class:ue(E(i).e("content")),innerHTML:S.message},null,10,iG)],2112)):(Y(),me("p",{key:0,class:ue(E(i).e("content"))},Me(S.message),3))]),S.showClose?(Y(),_e(E(lr),{key:2,class:ue(E(i).e("closeBtn")),onClick:Jf(x,["stop"])},{default:Z(()=>[ee(E(n))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],46,nG),[[yi,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var sG=Ze(oG,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let lG=1;const LA=e=>{const t=!e||He(e)||ta(e)||De(e)?{message:e}:e,r={...mr,...t};if(!r.appendTo)r.appendTo=document.body;else if(He(r.appendTo)){let n=document.querySelector(r.appendTo);ys(n)||(n=document.body),r.appendTo=n}return r},uG=e=>{const t=Sn.indexOf(e);if(t===-1)return;Sn.splice(t,1);const{handler:r}=e;r.close()},cG=({appendTo:e,...t},r)=>{const n=`message_${lG++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),uG(c)},onDestroy:()=>{O_(null,a)}},s=ee(sG,o,De(o.message)||ta(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ms._context,O_(s,a),e.appendChild(a.firstElementChild);const l=s.component,c={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return c},Ms=(e={},t)=>{if(!Nt)return{close:()=>{}};if($t(Qp.max)&&Sn.length>=Qp.max)return{close:()=>{}};const r=LA(e);if(r.grouping&&Sn.length){const i=Sn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=cG(r,t);return Sn.push(n),n.handler};PA.forEach(e=>{Ms[e]=(t={},r)=>{const n=LA(t);return Ms({...n,type:e},r)}});function fG(e){for(const t of Sn)(!e||e===t.props.type)&&t.handler.close()}Ms.closeAll=fG;Ms._context=null;const DA=$3(Ms,"$message"),dG={id:"app"},hG={class:"grid-content header-color"},vG={class:"header-content"},pG=ae("div",{class:"brand"},[ae("a",{href:"#"},"frp")],-1),gG={class:"dark-switch"},mG=ae("span",null,"Proxies",-1),yG={id:"content"},_G=ae("footer",null,null,-1),bG=ce({__name:"App",setup(e){const t=NR(),r=B(t),n=nR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=VW,l=wW,u=xW,c=bW,f=pA,d=_r("router-view"),h=vA;return Y(),me("div",dG,[ae("header",hG,[ae("div",vG,[pG,ae("div",gG,[ee(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:E(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ae("section",null,[ee(h,null,{default:Z(()=>[ee(f,{id:"side-nav",xs:24,md:4},{default:Z(()=>[ee(c,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:Z(()=>[ee(l,{index:"/"},{default:Z(()=>[Bt("Overview")]),_:1}),ee(u,{index:"/proxies"},{title:Z(()=>[mG]),default:Z(()=>[ee(l,{index:"/proxies/tcp"},{default:Z(()=>[Bt("TCP")]),_:1}),ee(l,{index:"/proxies/udp"},{default:Z(()=>[Bt("UDP")]),_:1}),ee(l,{index:"/proxies/http"},{default:Z(()=>[Bt("HTTP")]),_:1}),ee(l,{index:"/proxies/https"},{default:Z(()=>[Bt("HTTPS")]),_:1}),ee(l,{index:"/proxies/stcp"},{default:Z(()=>[Bt("STCP")]),_:1}),ee(l,{index:"/proxies/sudp"},{default:Z(()=>[Bt("SUDP")]),_:1})]),_:1}),ee(l,{index:""},{default:Z(()=>[Bt("Help")]),_:1})]),_:1})]),_:1}),ee(f,{xs:24,md:20},{default:Z(()=>[ae("div",yG,[ee(d)])]),_:1})]),_:1})]),_G])}}});/*! * vue-router v4.1.6 * (c) 2022 Eduardo San Martin Morote * @license MIT @@ -46,7 +46,7 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var bg=function(e,t){return bg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},bg(e,t)};function pe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");bg(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var MU=function(){function e(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return e}(),AU=function(){function e(){this.browser=new MU,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<"u"}return e}(),Va=new AU;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(Va.wxa=!0,Va.touchEventsSupported=!0):typeof document>"u"&&typeof self<"u"?Va.worker=!0:typeof navigator>"u"?(Va.node=!0,Va.svgSupported=!0):EU(navigator.userAgent,Va);function EU(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ge=Va;var zy=12,PU="sans-serif",yo=zy+"px "+PU,LU=20,DU=100,IU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function OU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function a9(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),f=2*u,d=c.left,h=c.top;o.push(d,h),l=l&&a&&d===a[f]&&h===a[f+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?F1(s,o):F1(o,s))}function XA(e){return e.nodeName.toUpperCase()==="CANVAS"}var o9=/([&<>"'])/g,s9={"&":"&","<":"<",">":">",'"':""","'":"'"};function Xr(e){return e==null?"":(e+"").replace(o9,function(t,r){return s9[r]})}var l9=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,av=[],u9=Ge.browser.firefox&&+Ge.browser.version.split(".")[0]<39;function Ag(e,t,r,n){return r=r||{},n?$1(e,t,r):u9&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):$1(e,t,r),r}function $1(e,t,r){if(Ge.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(XA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Mg(av,e,n,i)){r.zrX=av[0],r.zrY=av[1];return}}r.zrX=r.zrY=0}function jy(e){return e||window.event}function jr(e,t,r){if(t=jy(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&Ag(e,o,t,r)}else{Ag(e,t,t,r);var a=c9(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&l9.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function c9(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function f9(e,t,r,n){e.addEventListener(t,r,n)}function d9(e,t,r,n){e.removeEventListener(t,r,n)}var ZA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},h9=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=H1(n)/H1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=v9(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function Su(){return[1,0,0,1,0,0]}function Yy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function p9(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function us(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Eg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function qy(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),c=Math.cos(r);return e[0]=n*c+o*u,e[1]=-n*u+o*c,e[2]=i*c+s*u,e[3]=-i*u+c*s,e[4]=c*a+u*l,e[5]=c*l-u*a,e}function g9(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function lh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var m9=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const Ne=m9;var Ec=Math.min,Pc=Math.max,ma=new Ne,ya=new Ne,_a=new Ne,ba=new Ne,Qs=new Ne,Js=new Ne,y9=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=Ec(t.x,this.x),n=Ec(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Pc(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Pc(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=Su();return Eg(a,a,[-r.x,-r.y]),g9(a,a,[n,i]),Eg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,c=t.y,f=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}ma.x=_a.x=r.x,ma.y=ba.y=r.y,ya.x=ba.x=r.x+r.width,ya.y=_a.y=r.y+r.height,ma.transform(n),ba.transform(n),ya.transform(n),_a.transform(n),t.x=Ec(ma.x,ya.x,_a.x,ba.x),t.y=Ec(ma.y,ya.y,_a.y,ba.y);var l=Pc(ma.x,ya.x,_a.x,ba.x),u=Pc(ma.y,ya.y,_a.y,ba.y);t.width=l-t.x,t.height=u-t.y},e}();const et=y9;var QA="silent";function _9(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:b9}}function b9(){ZA(this.event)}var w9=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ei),el=function(){function e(t,r){this.x=t,this.y=r}return e}(),x9=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],sv=new et(0,0,0,0),JA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new el(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new w9,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new e9(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(O(x9,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=e2(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new el(n,i):this.findHover(n,i),u=l.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new el(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=_9(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new el(r,n);if(z1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,c=new et(r-u,n-u,l,l),f=a.length-1;f>=0;f--){var d=a[f];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(sv.copy(d.getBoundingRect()),d.transform&&sv.applyTransform(d.transform),sv.intersect(c)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function S9(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?QA:!0}return!1}function z1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=S9(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==QA)){t.target=o;break}}}function e2(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const C9=JA;var t2=32,tl=7;function T9(e){for(var t=0;e>=t2;)t|=e&1,e>>=1;return e+t}function W1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function M9(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function lv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+c])>0?o=c+1:l=c}return l}function uv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+c])<0?l=c:o=c+1}return l}function A9(e,t){var r=tl,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;c(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=tl||S>=tl);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[x+m];e[b]=o[_];return}for(var S=r;;){var C=0,M=0,P=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){P=!0;break}}else if(e[b--]=o[_--],M++,C=0,--g===1){P=!0;break}while((C|M)=0;m--)e[w+m]=e[x+m];if(v===0){P=!0;break}}if(e[b--]=o[_--],--g===1){P=!0;break}if(M=g-lv(e[y],o,0,g,g-1,t),M!==0){for(b-=M,_-=M,g-=M,w=b+1,x=_+1,m=0;m=tl||M>=tl);if(P)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,x=y+1,m=v-1;m>=0;m--)e[w+m]=e[x+m];e[b]=o[_]}else{if(g===0)throw new Error;for(x=b-(g-1),m=0;ms&&(l=s),V1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Rr=1,wl=2,Ko=4,G1=!1;function cv(){G1||(G1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function U1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var E9=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=U1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(c.__clipPaths=[]),isNaN(c.z)&&(cv(),c.z=0),isNaN(c.z2)&&(cv(),c.z2=0),isNaN(c.zlevel)&&(cv(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var f=t.getDecalElement&&t.getDecalElement();f&&this._updateAndAddDisplayable(f,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const P9=E9;var r2;r2=Ge.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Pg=r2;var Of={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-Of.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?Of.bounceIn(e*2)*.5:Of.bounceOut(e*2-1)*.5+.5}};const n2=Of;var Lc=Math.pow,Qi=Math.sqrt,fd=1e-8,i2=1e-4,j1=Qi(3),Dc=1/3,Hn=Hs(),Zr=Hs(),cs=Hs();function Yi(e){return e>-fd&&efd||e<-fd}function jt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function Y1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function o2(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,c=s*s-3*o*l,f=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Yi(c)&&Yi(f))if(Yi(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=f*f-4*c*d;if(Yi(p)){var g=f/c,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Qi(p),_=c*s+1.5*o*(-f+y),b=c*s+1.5*o*(-f-y);_<0?_=-Lc(-_,Dc):_=Lc(_,Dc),b<0?b=-Lc(-b,Dc):b=Lc(b,Dc);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var x=(2*c*s-3*o*f)/(2*Qi(c*c*c)),w=Math.acos(x)/3,S=Qi(c),C=Math.cos(w),v=(-s-2*S*C)/(3*o),m=(-s+S*(C+j1*Math.sin(w)))/(3*o),M=(-s+S*(C-j1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),M>=0&&M<=1&&(a[h++]=M)}}return h}function s2(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Yi(o)){if(a2(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(Yi(c))i[0]=-a/(2*o);else if(c>0){var f=Qi(c),u=(-a+f)/(2*o),d=(-a-f)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function dd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,c=(l-s)*i+s,f=(c-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=f,a[4]=f,a[5]=c,a[6]=l,a[7]=n}function l2(e,t,r,n,i,a,o,s,l,u,c){var f,d=.005,h=1/0,v,p,g,m;Hn[0]=l,Hn[1]=u;for(var y=0;y<1;y+=.05)Zr[0]=jt(e,r,i,o,y),Zr[1]=jt(t,n,a,s,y),g=ls(Hn,Zr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(Yi(c)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var f=Qi(c),u=(-o+f)/(2*a),d=(-o-f)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function u2(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function hd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function c2(e,t,r,n,i,a,o,s,l){var u,c=.005,f=1/0;Hn[0]=o,Hn[1]=s;for(var d=0;d<1;d+=.05){Zr[0]=Jt(e,r,i,d),Zr[1]=Jt(t,n,a,d);var h=ls(Hn,Zr);h=0&&h=1?1:o2(0,n,a,1,l,s)&&jt(0,i,o,1,s[0])}}}var R9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Tr,this.ondestroy=t.ondestroy||Tr,this.onrestart=t.onrestart||Tr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ve(t)?t:n2[t]||f2(t)},e}();const k9=R9;var d2=function(){function e(t){this.value=t}return e}(),N9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new d2(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),F9=function(){function e(t){this._list=new N9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new d2(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const tc=F9;var K1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Vl(e){return e=Math.round(e),e<0?0:e>255?255:e}function X1(e){return e<0?0:e>1?1:e}function fv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Vl(parseFloat(t)/100*255):Vl(parseInt(t,10))}function Gl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?X1(parseFloat(t)/100):X1(parseFloat(t))}function dv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Ur(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Lg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var h2=new tc(20),Ic=null;function Ro(e,t){Ic&&Lg(Ic,t),Ic=h2.put(e,Ic||t.slice())}function so(e,t){if(e){t=t||[];var r=h2.get(e);if(r)return Lg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in K1)return Lg(t,K1[n]),Ro(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Ur(t,0,0,0,1);return}return Ur(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Ro(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Ur(t,0,0,0,1);return}return Ur(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Ro(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Ur(t,+u[0],+u[1],+u[2],1):Ur(t,0,0,0,1);c=Gl(u.pop());case"rgb":if(u.length>=3)return Ur(t,fv(u[0]),fv(u[1]),fv(u[2]),u.length===3?c:Gl(u[3])),Ro(e,t),t;Ur(t,0,0,0,1);return;case"hsla":if(u.length!==4){Ur(t,0,0,0,1);return}return u[3]=Gl(u[3]),Z1(u,t),Ro(e,t),t;case"hsl":if(u.length!==3){Ur(t,0,0,0,1);return}return Z1(u,t),Ro(e,t),t;default:return}}Ur(t,0,0,0,1)}}function Z1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Gl(e[1]),i=Gl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Ur(t,Vl(dv(o,a,r+1/3)*255),Vl(dv(o,a,r)*255),Vl(dv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function Q1(e,t){var r=so(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ky(r,r.length===4?"rgba":"rgb")}}function Ky(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function vd(e,t){var r=so(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function B9(e){return e.type==="linear"}function $9(e){return e.type==="radial"}(function(){return Ge.hasGlobalWindow&&Ve(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Dg=Array.prototype.slice;function di(e,t,r){return(t-e)*r+e}function hv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=ew,l=r;if(Er(r)){var u=V9(r);s=u,(u===1&&!bt(r[0])||u===2&&!bt(r[0][0]))&&(o=!0)}else if(bt(r)&&!cd(r))s=Rc;else if(Me(r))if(!isNaN(+r))s=Rc;else{var c=so(r);c&&(l=c,s=xl)}else if(oh(r)){var f=se({},l);f.colorStops=Re(r.colorStops,function(h){return{offset:h.offset,color:so(h.color)}}),B9(r)?s=Ig:$9(r)&&(s=Og),l=f}a===0?this.valType=s:(s!==this.valType||s===ew)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=Ve(n)?n:n2[n]||f2(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=kc(i),u=tw(i),c=0;c=0&&!(o[c].percent<=r);c--);c=d(c,s-2)}else{for(c=f;cr);c++);c=d(c-1,s-2)}v=o[c+1],h=o[c]}if(h&&v){this._lastFr=c,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?rl:t[l];if((kc(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(kc(a))a===Nf?hv(y,h[i],v[i],m):H9(y,h[i],v[i],m);else if(tw(a)){var _=h[i],b=v[i],x=a===Ig;t[l]={type:x?"linear":"radial",x:di(_.x,b.x,m),y:di(_.y,b.y,m),colorStops:Re(_.colorStops,function(S,C){var M=b.colorStops[C];return{offset:di(S.offset,M.offset,m),color:kf(hv([],S.color,M.color,m))}}),global:b.global},x?(t[l].x2=di(_.x2,b.x2,m),t[l].y2=di(_.y2,b.y2,m)):t[l].r=di(_.r,b.r,m)}else if(u)hv(y,h[i],v[i],m),n||(t[l]=kf(y));else{var w=di(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===Rc?t[n]=t[n]+i:r===xl?(so(t[n],rl),Oc(rl,rl,i,1),t[n]=kf(rl)):r===Nf?Oc(t[n],t[n],i,1):r===v2&&J1(t[n],t[n],i,1)},e}(),U9=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Gy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Tt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Rf(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Rf(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const Xy=U9;function ts(){return new Date().getTime()}var j9=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ts()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Pg(n),!r._paused&&r.update())}Pg(n)},t.prototype.start=function(){this._running||(this._time=ts(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ts(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ts()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new Xy(r,n.loop);return this.addAnimator(i),i},t}(ei);const Y9=j9;var q9=300,vv=Ge.domSupported,pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Re(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),rw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},nw=!1;function Rg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function K9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function gv(e){e&&(e.zrByTouch=!0)}function X9(e,t){return jr(e.dom,new Z9(e,t),!0)}function p2(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var Z9=function(){function e(t,r){this.stopPropagation=Tr,this.stopImmediatePropagation=Tr,this.preventDefault=Tr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),mn={mousedown:function(e){e=jr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=jr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=jr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=jr(this.dom,e);var t=e.toElement||e.relatedTarget;p2(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){nw=!0,e=jr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){nw||(e=jr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=jr(this.dom,e),gv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),mn.mousemove.call(this,e),mn.mousedown.call(this,e)},touchmove:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"change"),mn.mousemove.call(this,e)},touchend:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"end"),mn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentow||e<-ow}var xa=[],ko=[],yv=Su(),_v=Math.abs,nj=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return wa(this.rotation)||wa(this.x)||wa(this.y)||wa(this.scaleX-1)||wa(this.scaleY-1)||wa(this.skewX)||wa(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&aw(n);return}n=n||Su(),r?this.getLocalTransform(n):aw(n),t&&(r?us(n,t,n):p9(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(xa);var n=xa[0]<0?-1:1,i=xa[1]<0?-1:1,a=((xa[0]-n)*r+n)/xa[0]||0,o=((xa[1]-i)*r+i)/xa[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Su(),lh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(us(ko,t.invTransform,r),r=ko);var n=this.originX,i=this.originY;(n||i)&&(yv[4]=n,yv[5]=i,us(ko,r,yv),ko[4]-=n,ko[5]-=i,r=ko),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&on(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&on(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&_v(t[0]-1)>1e-10&&_v(t[3]-1)>1e-10?Math.sqrt(_v(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){ij(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,f=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&qy(r,r,u),r[4]+=n+c,r[5]+=i+f,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Cu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function ij(e,t){for(var r=0;r"u"&&typeof self<"u"?Va.worker=!0:typeof navigator>"u"?(Va.node=!0,Va.svgSupported=!0):EU(navigator.userAgent,Va);function EU(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ge=Va;var zy=12,PU="sans-serif",yo=zy+"px "+PU,LU=20,DU=100,IU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function OU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function a9(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),f=2*u,d=c.left,h=c.top;o.push(d,h),l=l&&a&&d===a[f]&&h===a[f+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?F1(s,o):F1(o,s))}function XA(e){return e.nodeName.toUpperCase()==="CANVAS"}var o9=/([&<>"'])/g,s9={"&":"&","<":"<",">":">",'"':""","'":"'"};function Xr(e){return e==null?"":(e+"").replace(o9,function(t,r){return s9[r]})}var l9=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,av=[],u9=Ge.browser.firefox&&+Ge.browser.version.split(".")[0]<39;function Ag(e,t,r,n){return r=r||{},n?$1(e,t,r):u9&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):$1(e,t,r),r}function $1(e,t,r){if(Ge.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(XA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Mg(av,e,n,i)){r.zrX=av[0],r.zrY=av[1];return}}r.zrX=r.zrY=0}function jy(e){return e||window.event}function jr(e,t,r){if(t=jy(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&Ag(e,o,t,r)}else{Ag(e,t,t,r);var a=c9(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&l9.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function c9(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function f9(e,t,r,n){e.addEventListener(t,r,n)}function d9(e,t,r,n){e.removeEventListener(t,r,n)}var ZA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},h9=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=H1(n)/H1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=v9(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function Su(){return[1,0,0,1,0,0]}function Yy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function p9(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function us(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Eg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function qy(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),c=Math.cos(r);return e[0]=n*c+o*u,e[1]=-n*u+o*c,e[2]=i*c+s*u,e[3]=-i*u+c*s,e[4]=c*a+u*l,e[5]=c*l-u*a,e}function g9(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function lh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var m9=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const ke=m9;var Ec=Math.min,Pc=Math.max,ma=new ke,ya=new ke,_a=new ke,ba=new ke,Qs=new ke,Js=new ke,y9=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=Ec(t.x,this.x),n=Ec(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Pc(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Pc(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=Su();return Eg(a,a,[-r.x,-r.y]),g9(a,a,[n,i]),Eg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,c=t.y,f=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}ma.x=_a.x=r.x,ma.y=ba.y=r.y,ya.x=ba.x=r.x+r.width,ya.y=_a.y=r.y+r.height,ma.transform(n),ba.transform(n),ya.transform(n),_a.transform(n),t.x=Ec(ma.x,ya.x,_a.x,ba.x),t.y=Ec(ma.y,ya.y,_a.y,ba.y);var l=Pc(ma.x,ya.x,_a.x,ba.x),u=Pc(ma.y,ya.y,_a.y,ba.y);t.width=l-t.x,t.height=u-t.y},e}();const et=y9;var QA="silent";function _9(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:b9}}function b9(){ZA(this.event)}var w9=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ei),el=function(){function e(t,r){this.x=t,this.y=r}return e}(),x9=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],sv=new et(0,0,0,0),JA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new el(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new w9,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new e9(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(O(x9,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=e2(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new el(n,i):this.findHover(n,i),u=l.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new el(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=_9(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new el(r,n);if(z1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,c=new et(r-u,n-u,l,l),f=a.length-1;f>=0;f--){var d=a[f];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(sv.copy(d.getBoundingRect()),d.transform&&sv.applyTransform(d.transform),sv.intersect(c)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function S9(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?QA:!0}return!1}function z1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=S9(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==QA)){t.target=o;break}}}function e2(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const C9=JA;var t2=32,tl=7;function T9(e){for(var t=0;e>=t2;)t|=e&1,e>>=1;return e+t}function W1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function M9(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function lv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+c])>0?o=c+1:l=c}return l}function uv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+c])<0?l=c:o=c+1}return l}function A9(e,t){var r=tl,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;c(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=tl||S>=tl);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[x+m];e[b]=o[_];return}for(var S=r;;){var C=0,M=0,P=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){P=!0;break}}else if(e[b--]=o[_--],M++,C=0,--g===1){P=!0;break}while((C|M)=0;m--)e[w+m]=e[x+m];if(v===0){P=!0;break}}if(e[b--]=o[_--],--g===1){P=!0;break}if(M=g-lv(e[y],o,0,g,g-1,t),M!==0){for(b-=M,_-=M,g-=M,w=b+1,x=_+1,m=0;m=tl||M>=tl);if(P)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,x=y+1,m=v-1;m>=0;m--)e[w+m]=e[x+m];e[b]=o[_]}else{if(g===0)throw new Error;for(x=b-(g-1),m=0;ms&&(l=s),V1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Rr=1,wl=2,Ko=4,G1=!1;function cv(){G1||(G1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function U1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var E9=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=U1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(c.__clipPaths=[]),isNaN(c.z)&&(cv(),c.z=0),isNaN(c.z2)&&(cv(),c.z2=0),isNaN(c.zlevel)&&(cv(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var f=t.getDecalElement&&t.getDecalElement();f&&this._updateAndAddDisplayable(f,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const P9=E9;var r2;r2=Ge.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Pg=r2;var Of={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-Of.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?Of.bounceIn(e*2)*.5:Of.bounceOut(e*2-1)*.5+.5}};const n2=Of;var Lc=Math.pow,Qi=Math.sqrt,fd=1e-8,i2=1e-4,j1=Qi(3),Dc=1/3,Hn=Hs(),Zr=Hs(),cs=Hs();function Yi(e){return e>-fd&&efd||e<-fd}function jt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function Y1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function o2(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,c=s*s-3*o*l,f=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Yi(c)&&Yi(f))if(Yi(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=f*f-4*c*d;if(Yi(p)){var g=f/c,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Qi(p),_=c*s+1.5*o*(-f+y),b=c*s+1.5*o*(-f-y);_<0?_=-Lc(-_,Dc):_=Lc(_,Dc),b<0?b=-Lc(-b,Dc):b=Lc(b,Dc);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var x=(2*c*s-3*o*f)/(2*Qi(c*c*c)),w=Math.acos(x)/3,S=Qi(c),C=Math.cos(w),v=(-s-2*S*C)/(3*o),m=(-s+S*(C+j1*Math.sin(w)))/(3*o),M=(-s+S*(C-j1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),M>=0&&M<=1&&(a[h++]=M)}}return h}function s2(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Yi(o)){if(a2(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(Yi(c))i[0]=-a/(2*o);else if(c>0){var f=Qi(c),u=(-a+f)/(2*o),d=(-a-f)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function dd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,c=(l-s)*i+s,f=(c-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=f,a[4]=f,a[5]=c,a[6]=l,a[7]=n}function l2(e,t,r,n,i,a,o,s,l,u,c){var f,d=.005,h=1/0,v,p,g,m;Hn[0]=l,Hn[1]=u;for(var y=0;y<1;y+=.05)Zr[0]=jt(e,r,i,o,y),Zr[1]=jt(t,n,a,s,y),g=ls(Hn,Zr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(Yi(c)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var f=Qi(c),u=(-o+f)/(2*a),d=(-o-f)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function u2(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function hd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function c2(e,t,r,n,i,a,o,s,l){var u,c=.005,f=1/0;Hn[0]=o,Hn[1]=s;for(var d=0;d<1;d+=.05){Zr[0]=Jt(e,r,i,d),Zr[1]=Jt(t,n,a,d);var h=ls(Hn,Zr);h=0&&h=1?1:o2(0,n,a,1,l,s)&&jt(0,i,o,1,s[0])}}}var R9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Tr,this.ondestroy=t.ondestroy||Tr,this.onrestart=t.onrestart||Tr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ve(t)?t:n2[t]||f2(t)},e}();const k9=R9;var d2=function(){function e(t){this.value=t}return e}(),N9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new d2(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),F9=function(){function e(t){this._list=new N9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new d2(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const tc=F9;var K1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Vl(e){return e=Math.round(e),e<0?0:e>255?255:e}function X1(e){return e<0?0:e>1?1:e}function fv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Vl(parseFloat(t)/100*255):Vl(parseInt(t,10))}function Gl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?X1(parseFloat(t)/100):X1(parseFloat(t))}function dv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Ur(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Lg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var h2=new tc(20),Ic=null;function Ro(e,t){Ic&&Lg(Ic,t),Ic=h2.put(e,Ic||t.slice())}function so(e,t){if(e){t=t||[];var r=h2.get(e);if(r)return Lg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in K1)return Lg(t,K1[n]),Ro(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Ur(t,0,0,0,1);return}return Ur(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Ro(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Ur(t,0,0,0,1);return}return Ur(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Ro(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Ur(t,+u[0],+u[1],+u[2],1):Ur(t,0,0,0,1);c=Gl(u.pop());case"rgb":if(u.length>=3)return Ur(t,fv(u[0]),fv(u[1]),fv(u[2]),u.length===3?c:Gl(u[3])),Ro(e,t),t;Ur(t,0,0,0,1);return;case"hsla":if(u.length!==4){Ur(t,0,0,0,1);return}return u[3]=Gl(u[3]),Z1(u,t),Ro(e,t),t;case"hsl":if(u.length!==3){Ur(t,0,0,0,1);return}return Z1(u,t),Ro(e,t),t;default:return}}Ur(t,0,0,0,1)}}function Z1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Gl(e[1]),i=Gl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Ur(t,Vl(dv(o,a,r+1/3)*255),Vl(dv(o,a,r)*255),Vl(dv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function Q1(e,t){var r=so(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ky(r,r.length===4?"rgba":"rgb")}}function Ky(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function vd(e,t){var r=so(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function B9(e){return e.type==="linear"}function $9(e){return e.type==="radial"}(function(){return Ge.hasGlobalWindow&&Ve(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Dg=Array.prototype.slice;function di(e,t,r){return(t-e)*r+e}function hv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=ew,l=r;if(Er(r)){var u=V9(r);s=u,(u===1&&!bt(r[0])||u===2&&!bt(r[0][0]))&&(o=!0)}else if(bt(r)&&!cd(r))s=Rc;else if(Te(r))if(!isNaN(+r))s=Rc;else{var c=so(r);c&&(l=c,s=xl)}else if(oh(r)){var f=se({},l);f.colorStops=Re(r.colorStops,function(h){return{offset:h.offset,color:so(h.color)}}),B9(r)?s=Ig:$9(r)&&(s=Og),l=f}a===0?this.valType=s:(s!==this.valType||s===ew)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=Ve(n)?n:n2[n]||f2(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=kc(i),u=tw(i),c=0;c=0&&!(o[c].percent<=r);c--);c=d(c,s-2)}else{for(c=f;cr);c++);c=d(c-1,s-2)}v=o[c+1],h=o[c]}if(h&&v){this._lastFr=c,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?rl:t[l];if((kc(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(kc(a))a===Nf?hv(y,h[i],v[i],m):H9(y,h[i],v[i],m);else if(tw(a)){var _=h[i],b=v[i],x=a===Ig;t[l]={type:x?"linear":"radial",x:di(_.x,b.x,m),y:di(_.y,b.y,m),colorStops:Re(_.colorStops,function(S,C){var M=b.colorStops[C];return{offset:di(S.offset,M.offset,m),color:kf(hv([],S.color,M.color,m))}}),global:b.global},x?(t[l].x2=di(_.x2,b.x2,m),t[l].y2=di(_.y2,b.y2,m)):t[l].r=di(_.r,b.r,m)}else if(u)hv(y,h[i],v[i],m),n||(t[l]=kf(y));else{var w=di(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===Rc?t[n]=t[n]+i:r===xl?(so(t[n],rl),Oc(rl,rl,i,1),t[n]=kf(rl)):r===Nf?Oc(t[n],t[n],i,1):r===v2&&J1(t[n],t[n],i,1)},e}(),U9=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Gy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Tt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Rf(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Rf(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const Xy=U9;function ts(){return new Date().getTime()}var j9=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ts()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Pg(n),!r._paused&&r.update())}Pg(n)},t.prototype.start=function(){this._running||(this._time=ts(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ts(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ts()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new Xy(r,n.loop);return this.addAnimator(i),i},t}(ei);const Y9=j9;var q9=300,vv=Ge.domSupported,pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Re(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),rw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},nw=!1;function Rg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function K9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function gv(e){e&&(e.zrByTouch=!0)}function X9(e,t){return jr(e.dom,new Z9(e,t),!0)}function p2(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var Z9=function(){function e(t,r){this.stopPropagation=Tr,this.stopImmediatePropagation=Tr,this.preventDefault=Tr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),mn={mousedown:function(e){e=jr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=jr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=jr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=jr(this.dom,e);var t=e.toElement||e.relatedTarget;p2(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){nw=!0,e=jr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){nw||(e=jr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=jr(this.dom,e),gv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),mn.mousemove.call(this,e),mn.mousedown.call(this,e)},touchmove:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"change"),mn.mousemove.call(this,e)},touchend:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"end"),mn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentow||e<-ow}var xa=[],ko=[],yv=Su(),_v=Math.abs,nj=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return wa(this.rotation)||wa(this.x)||wa(this.y)||wa(this.scaleX-1)||wa(this.scaleY-1)||wa(this.skewX)||wa(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&aw(n);return}n=n||Su(),r?this.getLocalTransform(n):aw(n),t&&(r?us(n,t,n):p9(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(xa);var n=xa[0]<0?-1:1,i=xa[1]<0?-1:1,a=((xa[0]-n)*r+n)/xa[0]||0,o=((xa[1]-i)*r+i)/xa[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Su(),lh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(us(ko,t.invTransform,r),r=ko);var n=this.originX,i=this.originY;(n||i)&&(yv[4]=n,yv[5]=i,us(ko,r,yv),ko[4]-=n,ko[5]-=i,r=ko),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&on(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&on(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&_v(t[0]-1)>1e-10&&_v(t[3]-1)>1e-10?Math.sqrt(_v(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){ij(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,f=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&qy(r,r,u),r[4]+=n+c,r[5]+=i+f,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Cu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function ij(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function gd(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,c="left",f="top";if(n instanceof Array)l+=sa(n[0],r.width),u+=sa(n[1],r.height),c=null,f=null;else switch(n){case"left":l-=i,u+=s,c="right",f="middle";break;case"right":l+=i+o,u+=s,f="middle";break;case"top":l+=o/2,u-=i,c="center",f="bottom";break;case"bottom":l+=o/2,u+=a+i,c="center";break;case"inside":l+=o/2,u+=s,c="center",f="middle";break;case"insideLeft":l+=i,u+=s,f="middle";break;case"insideRight":l+=o-i,u+=s,c="right",f="middle";break;case"insideTop":l+=o/2,u+=i,c="center";break;case"insideBottom":l+=o/2,u+=a-i,c="center",f="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,c="right";break;case"insideBottomLeft":l+=i,u+=a-i,f="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,c="right",f="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=c,e.verticalAlign=f,e}var bv="__zr_normal__",wv=Cu.concat(["ignore"]),aj=oa(Cu,function(e,t){return e[t]=!0,e},{ignore:!1}),No={},oj=new et(0,0,0,0),Jy=function(){function e(t){this.id=UA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var c=oj;n.layoutRect?c.copy(n.layoutRect):c.copy(this.getBoundingRect()),i||c.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(No,n,c):gd(No,n,c),a.x=No.x,a.y=No.y,o=No.align,s=No.verticalAlign;var f=n.origin;if(f&&n.rotation!=null){var d=void 0,h=void 0;f==="center"?(d=c.width*.5,h=c.height*.5):(d=sa(f[0],c.width),h=sa(f[1],c.height)),u=!0,a.originX=-a.x+d+(i?0:c.x),a.originY=-a.y+h+(i?0:c.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Rr,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Bg:Fg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&so(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ky(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},se(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Ie(t))for(var n=t,i=Tt(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(bv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===bv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ot(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Gy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var c=!!(u&&u.hoverLayer||i);c&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var f=this._textContent,d=this._textGuide;return f&&f.useState(t,r,n,c),d&&d.useState(t,r,n,c),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=ot(i,t),o=ot(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,M=void 0,P=void 0;if(s){M={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];M[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){P={};for(var b=0;b<_;b++){var m=p[b];P[m]=Rf(r[m]),lj(r,n,m)}}var x=new Xy(r,!1,!1,f?Vt(v,function(T){return T.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),d&&C&&x.whenWithKeys(0,C,p),P&&x.whenWithKeys(0,P,p),x.whenWithKeys(u??500,s?M:n,p).delay(c||0),e.addAnimator(x,t),o.push(x)}}const y2=Jy;var _2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=ot(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ot(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function gt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Me(e)?pj(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function kt(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),w2),e=(+e).toFixed(t),r?e:+e}function hi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return gj(e)}function gj(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function mj(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function yj(e,t){var r=oa(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Re(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Re(i,function(h){return Math.floor(h)}),s=oa(o,function(h,v){return h+v},0),l=Re(i,function(h,v){return h-o[v]});su&&(u=l[f],c=f);++o[c],l[c]=0,++s}return Re(o,function(h){return h/n})}function _j(e,t){var r=Math.max(hi(e),hi(t)),n=e+t;return r>w2?n:kt(n,r)}function x2(e){var t=Math.PI*2;return(e%t+t)%t}function md(e){return e>-cw&&e=10&&t++,t}function S2(e,t){var r=e0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function yd(e){var t=parseFloat(e);return t==e&&(t!==0||!Me(e)||e.indexOf("x")<=0)?t:NaN}function xj(e){return!isNaN(yd(e))}function C2(){return Math.round(Math.random()*9)}function T2(e,t){return t===0?e:T2(t,e%t)}function fw(e,t){return e==null?t:t==null?e:e*t/T2(e,t)}function br(e){throw new Error(e)}function dw(e,t,r){return(t-e)*r+e}var M2="series\0",Sj="\0_ec_\0";function cr(e){return e instanceof Array?e:e==null?[]:[e]}function Hg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var jj=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],Yj=Mu(jj),qj=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return Yj(this,t,r)},e}(),zg=new tc(50);function Kj(e){if(typeof e=="string"){var t=zg.get(e);return t&&t.image}else return e}function D2(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=zg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!fh(t)&&a.pending.push(o)):(t=Mo.loadImage(e,vw,vw),t.__zrImageSrc=e,zg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function vw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function gt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Te(e)?pj(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function kt(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),w2),e=(+e).toFixed(t),r?e:+e}function hi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return gj(e)}function gj(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function mj(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function yj(e,t){var r=oa(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Re(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Re(i,function(h){return Math.floor(h)}),s=oa(o,function(h,v){return h+v},0),l=Re(i,function(h,v){return h-o[v]});su&&(u=l[f],c=f);++o[c],l[c]=0,++s}return Re(o,function(h){return h/n})}function _j(e,t){var r=Math.max(hi(e),hi(t)),n=e+t;return r>w2?n:kt(n,r)}function x2(e){var t=Math.PI*2;return(e%t+t)%t}function md(e){return e>-cw&&e=10&&t++,t}function S2(e,t){var r=e0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function yd(e){var t=parseFloat(e);return t==e&&(t!==0||!Te(e)||e.indexOf("x")<=0)?t:NaN}function xj(e){return!isNaN(yd(e))}function C2(){return Math.round(Math.random()*9)}function T2(e,t){return t===0?e:T2(t,e%t)}function fw(e,t){return e==null?t:t==null?e:e*t/T2(e,t)}function br(e){throw new Error(e)}function dw(e,t,r){return(t-e)*r+e}var M2="series\0",Sj="\0_ec_\0";function cr(e){return e instanceof Array?e:e==null?[]:[e]}function Hg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var jj=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],Yj=Mu(jj),qj=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return Yj(this,t,r)},e}(),zg=new tc(50);function Kj(e){if(typeof e=="string"){var t=zg.get(e);return t&&t.image}else return e}function D2(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=zg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!fh(t)&&a.pending.push(o)):(t=Mo.loadImage(e,vw,vw),t.__zrImageSrc=e,zg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function vw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=$r(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function O2(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=$r(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?Zj(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=$r(e,n)}return e===""&&(e=t.placeholder),e}function Zj(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);f=f.slice(0,v)}if(e&&a&&c!=null)for(var p=I2(c,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&Mv(r,e.substring(s,u),t,o),Mv(r,l[2],t,o,l[1]),s=Tv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var T=S.width,D=T==null||T==="auto";if(typeof T=="string"&&T.charAt(T.length-1)==="%")w.percentWidth=T,c.push(w),w.contentWidth=$r(w.text,P);else{if(D){var N=S.backgroundColor,H=N&&N.image;H&&(H=Kj(H),fh(H)&&(w.width=Math.max(w.width,H.width*A/H.height)))}var $=v&&n!=null?n-b:null;$!=null&&$0&&v+n.accumWidth>n.width&&(c=t.split(` `),u=!0),n.accumWidth=v}else{var p=R2(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,f=p.linesWidths,c=p.lines}}else c=t.split(` `);for(var g=0;g=33&&t<=383}var nY=oa(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function iY(e){return rY(e)?!!nY[e]:!0}function R2(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,c=0,f=0;fr:i+c+h>r){c?(s||l)&&(v?(s||(s=l,l="",u=0,c=u),a.push(s),o.push(c-u),l+=d,u+=h,s="",c=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(c),s=d,c=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}c+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(c)),a.length===1&&(c+=i),{accumWidth:c,lines:a,linesWidths:o}}var Wg="__zr_style_"+Math.round(Math.random()*10),lo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},dh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};lo[Wg]=!0;var gw=["z","z2","invisible"],aY=["invisible"],oY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Tt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Nc[0]=Lv(i)*r+e,Nc[1]=Pv(i)*n+t,Fc[0]=Lv(a)*r+e,Fc[1]=Pv(a)*n+t,u(s,Nc,Fc),c(l,Nc,Fc),i=i%Ca,i<0&&(i=i+Ca),a=a%Ca,a<0&&(a=a+Ca),i>a&&!o?a+=Ca:ii&&(Bc[0]=Lv(h)*r+e,Bc[1]=Pv(h)*n+t,u(s,Bc,s),c(l,Bc,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ta=[],Ma=[],Rn=[],Oi=[],kn=[],Nn=[],Dv=Math.min,Iv=Math.max,Aa=Math.cos,Ea=Math.sin,oi=Math.abs,Vg=Math.PI,zi=Vg*2,Ov=typeof Float32Array<"u",nl=[];function Rv(e){var t=Math.round(e/Vg*1e8)/1e8;return t%2*Vg}function fY(e,t){var r=Rv(e[0]);r<0&&(r+=zi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=zi?i=r+zi:t&&r-i>=zi?i=r-zi:!t&&r>i?i=r+(zi-Rv(r-i)):t&&r0&&(this._ux=oi(n/pd/t)||0,this._uy=oi(n/pd/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=oi(t-this._xi),i=oi(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),nl[0]=i,nl[1]=a,fY(nl,o),i=nl[0],a=nl[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Aa(a)*n+t,this._yi=Ea(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Ov&&(this.data=new Float32Array(r));for(var n=0;nc.length&&(this._expandData(),c=this.data);for(var f=0;f0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Rn[0]=Rn[1]=kn[0]=kn[1]=Number.MAX_VALUE,Oi[0]=Oi[1]=Nn[0]=Nn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||oi(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case at.C:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++],w=t[d++],S=t[d++];p=L9(a,o,b,x,g,m,w,S,10),a=w,o=S;break}case at.Q:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++];p=I9(a,o,b,x,g,m,10),a=g,o=m;break}case at.A:var C=t[d++],M=t[d++],P=t[d++],A=t[d++],T=t[d++],D=t[d++],N=D+T;d+=1,t[d++],v&&(s=Aa(T)*P+C,l=Ea(T)*A+M),p=Iv(P,A)*Dv(zi,Math.abs(D)),a=Aa(N)*P+C,o=Ea(N)*A+M;break;case at.R:{s=a=t[d++],l=o=t[d++];var H=t[d++],$=t[d++];p=H*2+$*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[f++]=p,c+=p)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,c,f,d,h=r<1,v,p,g=0,m=0,y,_=0,b,x;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case at.M:s=u=n[w++],l=c=n[w++],t.moveTo(u,c);break;case at.L:{f=n[w++],d=n[w++];var M=oi(f-u),P=oi(d-c);if(M>i||P>a){if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+f*T,c*(1-T)+d*T);break e}g+=A}t.lineTo(f,d),u=f,c=d,_=0}else{var D=M*M+P*P;D>_&&(b=f,x=d,_=D)}break}case at.C:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++],F=n[w++],R=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;dd(u,N,$,F,T,Ta),dd(c,H,G,R,T,Ma),t.bezierCurveTo(Ta[1],Ma[1],Ta[2],Ma[2],Ta[3],Ma[3]);break e}g+=A}t.bezierCurveTo(N,H,$,G,F,R),u=F,c=R;break}case at.Q:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;hd(u,N,$,T,Ta),hd(c,H,G,T,Ma),t.quadraticCurveTo(Ta[1],Ma[1],Ta[2],Ma[2]);break e}g+=A}t.quadraticCurveTo(N,H,$,G),u=$,c=G;break}case at.A:var j=n[w++],re=n[w++],oe=n[w++],ye=n[w++],Ae=n[w++],V=n[w++],Q=n[w++],W=!n[w++],q=oe>ye?oe:ye,le=oi(oe-ye)>.001,de=Ae+V,J=!1;if(h){var A=v[m++];g+A>y&&(de=Ae+V*(y-g)/A,J=!0),g+=A}if(le&&t.ellipse?t.ellipse(j,re,oe,ye,Q,Ae,de,W):t.arc(j,re,q,Ae,de,W),J)break e;C&&(s=Aa(Ae)*oe+j,l=Ea(Ae)*ye+re),u=Aa(de)*oe+j,c=Ea(de)*ye+re;break;case at.R:s=u=n[w],l=c=n[w+1],f=n[w++],d=n[w++];var L=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(f,d),t.lineTo(f+Dv(z,L),d),z-=L,z>0&&t.lineTo(f+L,d+Dv(z,I)),z-=I,z>0&&t.lineTo(f+Iv(L-z,0),d+I),z-=L,z>0&&t.lineTo(f,d+Iv(I-z,0));break e}g+=A}t.rect(f,d,L,I);break;case at.Z:if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+s*T,c*(1-T)+l*T);break e}g+=A}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const _o=dY;function Fo(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+f&&c>n+f&&c>a+f&&c>s+f||ce+f&&u>r+f&&u>i+f&&u>o+f||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||c+ui&&(i+=il);var d=Math.atan2(l,s);return d<0&&(d+=il),d>=n&&d<=i||d+il>=n&&d+il<=i}function Pa(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ri=_o.CMD,La=Math.PI*2,gY=1e-4;function mY(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&yY(),h=jt(t,n,a,s,Kr[0]),d>1&&(v=jt(t,n,a,s,Kr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var c=0,f=Jt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);or[0]=-l,or[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=La-1e-4){n=0,i=La;var c=a?1:-1;return o>=or[0]+e&&o<=or[1]+e?c:0}if(n>i){var f=n;n=i,i=f}n<0&&(n+=La,i+=La);for(var d=0,h=0;h<2;h++){var v=or[h];if(v+e>o){var p=Math.atan2(s,v),c=a?1:-1;p<0&&(p=La+p),(p>=n&&p<=i||p+La>=n&&p+La<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Pa(l,u,c,f,n,i))),g&&(l=a[v],u=a[v+1],c=l,f=u),p){case Ri.M:c=a[v++],f=a[v++],l=c,u=f;break;case Ri.L:if(r){if(Fo(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Pa(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.C:if(r){if(hY(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=_Y(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.Q:if(r){if(vY(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=bY(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);d=Math.cos(x)*_+m,h=Math.sin(x)*b+y,g?(c=d,f=h):s+=Pa(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(pY(m,y,b,x,x+w,S,t,C,i))return!0}else s+=wY(m,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+m,u=Math.sin(x+w)*b+y;break;case Ri.R:c=l=a[v++],f=u=a[v++];var M=a[v++],P=a[v++];if(d=c+M,h=f+P,r){if(Fo(c,f,d,f,t,n,i)||Fo(d,f,d,h,t,n,i)||Fo(d,h,c,h,t,n,i)||Fo(c,h,c,f,t,n,i))return!0}else s+=Pa(d,f,d,h,n,i),s+=Pa(c,h,c,f,n,i);break;case Ri.Z:if(r){if(Fo(l,u,c,f,t,n,i))return!0}else s+=Pa(l,u,c,f,n,i);l=c,u=f;break}}return!r&&!mY(u,f)&&(s+=Pa(l,u,c,f,n,i)||0),s!==0}function xY(e,t,r){return k2(e,0,!1,t,r)}function SY(e,t,r,n){return k2(e,t,!0,r,n)}var N2=dt({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},lo),CY={style:dt({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},dh.style)},kv=Cu.concat(["invisible","culling","z","z2","zlevel","parent"]),TY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Fg:n>.2?rj:Bg}else if(r)return Bg}return Fg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Me(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=vd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Ko)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),SY(s,l/u,r,n)))return!0}if(this.hasFill())return xY(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Ko,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:se(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Ko)},t.prototype.createStyle=function(r){return sh(N2,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=se({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=se({},i.shape),se(u,n.shape)):(u=se({},a?this.shape:i.shape),se(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=se({},this.shape);for(var c={},f=Tt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return sh(MY,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Zy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(ac);F2.prototype.type="tspan";const Gg=F2;var AY=dt({x:0,y:0},lo),EY={style:dt({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},dh.style)};function PY(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var B2=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return sh(AY,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=PY(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return EY},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new et(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(ac);B2.prototype.type="image";const zs=B2;function LY(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,c;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=c=o:o instanceof Array?o.length===1?s=l=u=c=o[0]:o.length===2?(s=u=o[0],l=c=o[1]):o.length===3?(s=o[0],l=c=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],c=o[3]):s=l=u=c=0;var f;s+l>i&&(f=s+l,s*=i/f,l*=i/f),u+c>i&&(f=u+c,u*=i/f,c*=i/f),l+u>a&&(f=l+u,l*=a/f,u*=a/f),s+c>a&&(f=s+c,s*=a/f,c*=a/f),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+c,n+a),c!==0&&e.arc(r+c,n+a-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var rs=Math.round;function $2(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(rs(n*2)===rs(i*2)&&(e.x1=e.x2=eo(n,s,!0)),rs(a*2)===rs(o*2)&&(e.y1=e.y2=eo(a,s,!0))),e}}function H2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=eo(n,s,!0),e.y=eo(i,s,!0),e.width=Math.max(eo(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(eo(i+o,s,!1)-e.y,o===0?0:1)),e}}function eo(e,t,r){if(!t)return e;var n=rs(e*2);return(n+rs(t))%2===0?n/2:(n+(r?1:-1))/2}var DY=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),IY={},z2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new DY},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=H2(IY,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?LY(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ht);z2.prototype.type="rect";const Ht=z2;var ww={fill:"#000"},xw=2,OY={style:dt({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},dh.style)},W2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=ww,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,T=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,N=0;N=0&&(N=w[D],N.align==="right");)this._placeToken(N,r,C,m,T,"right",_),M-=N.width,T-=N.width,D--;for(A+=(a-(A-g)-(y-T)-M)/2;P<=D;)N=w[P],this._placeToken(N,r,C,m,A+N.width/2,"center",_),A+=N.width,P++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,f=a+i/2;c==="top"?f=a+r.height/2:c==="bottom"&&(f=a+i-r.height/2);var d=!r.isLineHolder&&Nv(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,f-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=Ew(o,s,v),f-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Gg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=Aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),x=Mw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=xw,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=f,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||yo,g.opacity=zl(u.opacity,n.opacity,1),Cw(g,u),x&&(g.lineWidth=zl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=x),b&&(g.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new et(Sl(g.x,S,g.textAlign),Xo(g.y,C,g.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,c=r.borderColor,f=l&&l.image,d=l&&!f,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&c){p=this._getOrCreateChild(Ht),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(f){g=this._getOrCreateChild(zs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&c){var y=p.style;y.lineWidth=u,y.stroke=c,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=zl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return FY(r)&&(n=[r.fontStyle,r.fontWeight,NY(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Vn(n)||r.textFont||r.font},t}(ac),RY={left:!0,right:1,center:1},kY={top:1,bottom:1,middle:1},Sw=["fontStyle","fontWeight","fontSize","fontFamily"];function NY(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?zy+"px":e+"px"}function Cw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ht){var o=V2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Bo(s)||Bo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=se({},n),u=se({},u),u.fill=s):!Bo(u.fill)&&Bo(s)?(a=!0,n=se({},n),u=se({},u),u.fill=Ow(s)):!Bo(u.stroke)&&Bo(l)&&(a||(n=se({},n),u=se({},u)),u.stroke=Ow(l)),n.style=u}}if(n&&n.z2==null){a||(n=se({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??HY)}return n}function jY(e,t,r){if(r&&r.z2==null){r=se({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??zY)}return r}function YY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:GY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=se({},r),o=se({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Fv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return UY(this,e,t,r);if(e==="blur")return YY(this,e,r);if(e==="select")return jY(this,e,r)}return r}function qY(e){e.stateProxy=Fv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Fv),r&&(r.stateProxy=Fv)}function kw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,U2)}function Nw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,j2)}function Ug(e,t){e.__highByOuter|=1<<(t||0),Ai(e,U2)}function jg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ai(e,j2)}function KY(e){Ai(e,s0)}function q2(e){Ai(e,Y2)}function K2(e){Ai(e,WY)}function X2(e){Ai(e,VY)}function Z2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function Q2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=i0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){Y2(u)}),s&&r.push(a)),o.isBlured=!1}),O(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Yg(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,c){for(var f=0;f0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Kg(e,t,r){tE(e,!0),Ai(e,qY),r7(e,t,r)}function t7(e){tE(e,!1)}function J2(e,t,r,n){n?t7(e):Kg(e,t,r)}function r7(e,t,r){var n=ft(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Bw=["emphasis","blur","select"],n7={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function eE(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Bv(v),s*=Bv(v));var p=(i===a?-1:1)*Bv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Hc(f)*g-$c(f)*m,_=(t+n)/2+$c(f)*g+Hc(f)*m,b=Ww([1,0],[(d-g)/o,(h-m)/s]),x=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],S=Ww(x,w);if(Qg(x,w)<=-1&&(S=al),Qg(x,w)>=1&&(S=0),S<0){var C=Math.round(S/al*1e6)/1e6;S=al*2+C%2*al}c.addData(u,y,_,o,s,b,S,f,a)}var u7=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,c7=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function f7(e){var t=new _o;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=_o.CMD,l=e.match(u7);if(!l)return t;for(var u=0;uN*N+H*H&&(C=P,M=A),{cx:C,cy:M,x0:-c,y0:-f,x1:C*(i/x-1),y1:M*(i/x-1)}}function _7(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function b7(e,t){var r,n=Cl(t.r,0),i=Cl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,f=t.cy,d=!!t.clockwise,h=Gw(u-l),v=h>$v&&h%$v;if(v>gn&&(h=v),!(n>gn))e.moveTo(c,f);else if(h>$v-gn)e.moveTo(c+n*Ho(l),f+n*Da(l)),e.arc(c,f,n,l,u,!d),i>gn&&(e.moveTo(c+i*Ho(u),f+i*Da(u)),e.arc(c,f,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,M=void 0,P=void 0,A=void 0,T=void 0,D=void 0,N=void 0,H=n*Ho(l),$=n*Da(l),G=i*Ho(u),F=i*Da(u),R=h>gn;if(R){var j=t.cornerRadius;j&&(r=_7(j),p=r[0],g=r[1],m=r[2],y=r[3]);var re=Gw(n-i)/2;if(_=Fn(re,m),b=Fn(re,y),x=Fn(re,p),w=Fn(re,g),M=S=Cl(_,b),P=C=Cl(x,w),(S>gn||C>gn)&&(A=n*Ho(u),T=n*Da(u),D=i*Ho(l),N=i*Da(l),hgn){var le=Fn(m,M),de=Fn(y,M),J=zc(D,N,H,$,n,le,d),L=zc(A,T,G,F,n,de,d);e.moveTo(c+J.cx+J.x0,f+J.cy+J.y0),M0&&e.arc(c+J.cx,f+J.cy,le,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,n,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),!d),de>0&&e.arc(c+L.cx,f+L.cy,de,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.moveTo(c+H,f+$),e.arc(c,f,n,l,u,!d);if(!(i>gn)||!R)e.lineTo(c+G,f+F);else if(P>gn){var le=Fn(p,P),de=Fn(g,P),J=zc(G,F,A,T,i,-de,d),L=zc(H,$,D,N,i,-le,d);e.lineTo(c+J.cx+J.x0,f+J.cy+J.y0),P0&&e.arc(c+J.cx,f+J.cy,de,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,i,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),d),le>0&&e.arc(c+L.cx,f+L.cy,le,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.lineTo(c+G,f+F),e.arc(c,f,i,u,l,d)}e.closePath()}}}var w7=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),uE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new w7},t.prototype.buildPath=function(r,n){b7(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ht);uE.prototype.type="sector";const Ao=uE;var x7=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),cE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new x7},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ht);cE.prototype.type="ring";const fE=cE;function S7(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,c,f;if(n){c=[1/0,1/0],f=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=S7(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],c=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,f=i.length;sOa[1]){if(s=!1,a)return s;var c=Math.abs(Oa[0]-Ia[1]),f=Math.abs(Ia[0]-Oa[1]);Math.min(c,f)>i.len()&&(c0){var f=c.duration,d=c.delay,h=c.easing,v={duration:f,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Pr(e,t,r,n,i,a){f0("update",e,t,r,n,i,a)}function Hr(e,t,r,n,i,a){f0("enter",e,t,r,n,i,a)}function fs(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Yw(e){return!e.isGroup}function Q7(e){return e.shape!=null}function ME(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Yw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return Q7(o)&&(s.shape=se({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Yw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Pr(o,l,r,ft(o).dataIndex)}}})}function J7(e,t){return Re(e,function(r){var n=r[0];n=xd(n,t.x),n=Sd(n,t.x+t.width);var i=r[1];return i=xd(i,t.y),i=Sd(i,t.y+t.height),[n,i]})}function eq(e,t){var r=xd(e.x,t.x),n=Sd(e.x+e.width,t.x+t.width),i=xd(e.y,t.y),a=Sd(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function v0(e,t,r){var n=se({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),dt(i,r),new zs(n)):d0(e.replace("path://",""),n,r,"center")}function tq(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Hv(h,v,c,f)/d;return!(g<0||g>1)}function Hv(e,t,r,n){return e*n-r*t}function rq(e){return e<=1e-6&&e>=-1e-6}function p0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Me(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&O(Tt(l),function(c){Ps(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=ft(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:dt({content:n,formatterParams:s},i)}}function qw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function g0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function IE(e,t){return st(st({},e,!0),t,!0)}const _q={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},bq={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Cd="ZH",y0="EN",Eu=y0,zf={},_0={},OE=Ge.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Cd)>-1?Cd:Eu}():Eu;function RE(e,t){e=e.toUpperCase(),_0[e]=new rr(t),zf[e]=t}function wq(e){if(Me(e)){var t=zf[e.toUpperCase()]||{};return e===Cd||e===y0?Qe(t):st(Qe(t),Qe(zf[Eu]),!1)}else return st(Qe(e),Qe(zf[Eu]),!1)}function xq(e){return _0[e]}function Sq(){return _0[Eu]}RE(y0,_q);RE(Cd,bq);var b0=1e3,w0=b0*60,Kl=w0*60,en=Kl*24,ex=en*365,Tl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Gc="{yyyy}-{MM}-{dd}",tx={year:"{yyyy}",month:"{yyyy}-{MM}",day:Gc,hour:Gc+" "+Tl.hour,minute:Gc+" "+Tl.minute,second:Gc+" "+Tl.second,millisecond:Tl.none},Vv=["year","month","day","hour","minute","second","millisecond"],kE=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ra(e,t){return e+="","0000".substr(0,t-e.length)+e}function ds(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Cq(e){return e===ds(e)}function Tq(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function mh(e,t,r,n){var i=wi(e),a=i[x0(r)](),o=i[hs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[yh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),c=i[Pu(r)](),f=(c-1)%12+1,d=i[_h(r)](),h=i[bh(r)](),v=i[wh(r)](),p=n instanceof rr?n:xq(n||OE)||Sq(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Ra(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Ra(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ra(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,Ra(f+"",2)).replace(/{h}/g,f+"").replace(/{mm}/g,Ra(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Ra(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Ra(v,3)).replace(/{S}/g,v+"")}function Mq(e,t,r,n,i){var a=null;if(Me(r))a=r;else if(Ve(r))a=r(e.value,t,{level:e.level});else{var o=se({},Tl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var f=e.level==null?0:e.level>=0?e.level:a.length+e.level;f=Math.min(f,a.length-1),a=a[f]}}return mh(new Date(e.value),a,i,n)}function NE(e,t){var r=wi(e),n=r[hs(t)]()+1,i=r[yh(t)](),a=r[Pu(t)](),o=r[_h(t)](),s=r[bh(t)](),l=r[wh(t)](),u=l===0,c=u&&s===0,f=c&&o===0,d=f&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":f?"hour":c?"minute":u?"second":"millisecond"}function rx(e,t,r){var n=bt(e)?wi(e):e;switch(t=t||NE(e,r),t){case"year":return n[x0(r)]();case"half-year":return n[hs(r)]()>=6?1:0;case"quarter":return Math.floor((n[hs(r)]()+1)/4);case"month":return n[hs(r)]();case"day":return n[yh(r)]();case"half-day":return n[Pu(r)]()/24;case"hour":return n[Pu(r)]();case"minute":return n[_h(r)]();case"second":return n[bh(r)]();case"millisecond":return n[wh(r)]()}}function x0(e){return e?"getUTCFullYear":"getFullYear"}function hs(e){return e?"getUTCMonth":"getMonth"}function yh(e){return e?"getUTCDate":"getDate"}function Pu(e){return e?"getUTCHours":"getHours"}function _h(e){return e?"getUTCMinutes":"getMinutes"}function bh(e){return e?"getUTCSeconds":"getSeconds"}function wh(e){return e?"getUTCMilliseconds":"getMilliseconds"}function Aq(e){return e?"setUTCFullYear":"setFullYear"}function FE(e){return e?"setUTCMonth":"setMonth"}function BE(e){return e?"setUTCDate":"setDate"}function $E(e){return e?"setUTCHours":"setHours"}function HE(e){return e?"setUTCMinutes":"setMinutes"}function zE(e){return e?"setUTCSeconds":"setSeconds"}function WE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function VE(e){if(!xj(e))return Me(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function GE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var xh=jA;function tm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(c){return c&&Vn(c)?c:"-"}function a(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?wi(e):e;if(isNaN(+l)){if(s)return"-"}else return mh(l,n,r)}if(t==="ordinal")return wg(e)?i(e):bt(e)&&a(e)?e+"":"-";var u=yd(e);return a(u)?VE(u):wg(e)?i(e):typeof e=="boolean"?e+"":"-"}var nx=["a","b","c","d","e","f","g"],Gv=function(e,t){return"{"+e+(t??"")+"}"};function UE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Lu(e,t){return t=t||"transparent",Me(e)?e:Ie(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function ix(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Wf=O,Pq=["left","right","top","bottom","width","height"],Uc=[["width","left","right"],["height","top","bottom"]];function S0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),f=t.childAt(u+1),d=f&&f.getBoundingRect(),h,v;if(e==="horizontal"){var p=c.width+(d?-d.x+c.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=c.height):s=Math.max(s,c.height)}else{var g=c.height+(d?-d.y+c.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Xl=S0;Rt(S0,"vertical");Rt(S0,"horizontal");function Ls(e,t,r){r=xh(r||0);var n=t.width,i=t.height,a=gt(e.left,n),o=gt(e.top,i),s=gt(e.right,n),l=gt(e.bottom,i),u=gt(e.width,n),c=gt(e.height,i),f=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(c)&&(c=i-l-f-o),h!=null&&(isNaN(u)&&isNaN(c)&&(h>n/i?u=n*.8:c=i*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-c-f),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-c/2-r[0];break;case"bottom":o=i-c-f;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(c)&&(c=i-f-o-(l||0));var v=new et(a+r[3],o+r[0],u,c);return v.margin=r,v}function Du(e){var t=e.layoutMode||e.constructor.layoutMode;return Ie(t)?t:t?{type:t}:null}function Ds(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(Uc[0],0),a=o(Uc[1],1);u(Uc[0],e,i),u(Uc[1],e,a);function o(c,f){var d={},h=0,v={},p=0,g=2;if(Wf(c,function(_){v[_]=e[_]}),Wf(c,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[f])return l(t,c[1])?v[c[2]]=null:l(t,c[2])&&(v[c[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return ic(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(rr);L2(Ws,rr);ch(Ws);mq(Ws);yq(Ws,Iq);function Iq(e){var t=[];return O(Ws.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Re(t,function(r){return Gn(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const xt=Ws;var jE="";typeof navigator<"u"&&(jE=navigator.platform||"");var zo="rgba(0, 0, 0, 0.2)";const Oq={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zo,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zo,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zo,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zo,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zo,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zo,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:jE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var YE=Ue(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),dn="original",Lr="arrayRows",In="objectRows",ti="keyedColumns",Ji="typedArray",qE="unknown",pi="column",Vs="row",Ut={Must:1,Might:2,Not:3},KE=Et();function Rq(e){KE(e).datasetMap=Ue()}function kq(e,t,r){var n={},i=C0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=KE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,c,f;e=e.slice(),O(e,function(p,g){var m=Ie(p)?p:e[g]={name:p};m.type==="ordinal"&&c==null&&(c=g,f=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:f,valueWayDim:0});O(e,function(p,g){var m=p.name,y=v(p);if(c==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(c===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function zq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=o==null||!n?r:Hq(n,o);if(c=c||r,!(!c||!c.length)){var f=c[l];return i&&(u[i]=f),s.paletteIdx=(l+1)%c.length,f}}function Wq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var jc,ol,ox,sx="\0_ec_inner",Vq=1,QE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new rr(a),this._locale=new rr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=cx(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,cx(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?ox(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&O(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ue(),u=n&&n.replaceMergeMainTypeMap;Rq(this),O(r,function(f,d){f!=null&&(xt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Qe(f):st(i[d],f,!0))}),u&&u.each(function(f,d){xt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),xt.topologicalTravel(s,xt.getAllClassMainTypes(),c,this);function c(f){var d=$q(this,f,cr(r[f])),h=a.get(f),v=h?u&&u.get(f)?"replaceMerge":"normalMerge":"replaceAll",p=Tj(h,d,v);Ij(p,f,xt),i[f]=null,a.set(f,null),o.set(f,0);var g=[],m=[],y=0,_;O(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=f==="series",M=xt.getClass(f,b.keyInfo.subType,!C);if(!M)return;if(f==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var P=se({componentIndex:x},b.keyInfo);w=new M(S,this,this,P),se(w,P),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[f]=g,a.set(f,m),o.set(f,y),f==="series"&&jc(this)}this._seriesIndices||jc(this)},t.prototype.getOption=function(){var r=Qe(this.option);return O(r,function(n,i){if(xt.hasClass(i)){for(var a=cr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Tu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[sx],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function eK(e,t){return e.join(",")===t.join(",")}const tK=Xq;var hn=O,Iu=Ie,fx=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function jv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=fx.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=_j(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var Ch=function(){function e(t){this.data=t.data||(t.sourceFormat===ti?{}:[]),this.sourceFormat=t.sourceFormat||qE,this.seriesLayoutBy=t.seriesLayoutBy||pi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};yx=(t={},t[Lr+"_"+pi]={pure:!0,appendData:a},t[Lr+"_"+Vs]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[In]={pure:!0,appendData:a},t[ti]={pure:!0,appendData:function(o){var s=this._data;O(o,function(l,u){for(var c=s[u]||(s[u]=[]),f=0;f<(l||[]).length;f++)c.push(l[f])})}},t[dn]={appendData:a},t[Ji]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Is(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function Sx(e){var t,r;return Ie(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function Zl(e){return new _K(e)}var _K=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function c(y){return!(y>=1)&&(y=1),y}var f;(this._dirty||a==="reset")&&(this._dirty=!1,f=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(f||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),wK=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Vf(t,r)},e}();function xK(e,t){var r=new wK,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==pi&&br(o);var s=[],l={},u=e.dimensionsDefine;if(u)O(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ps(l,m)&&br(_),l[m]=y}});else for(var c=0;c65535?LK:DK}function Wo(){return[1/0,-1/0]}function IK(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function Mx(e,t,r,n,i){var a=fP[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Re(o,function(y){return y.property}),c=0;cm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,c=0,f=this.count();c=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=c))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=f&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],x=t[i[1]][1],m=0;m=f&&y<=d||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=f&&y<=d||isNaN(y))&&(l[u++]=S)}else for(var m=0;mt[P][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),c,f,d,h=new(ll(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vc&&(c=f,d=b)}A>0&&Ac-v&&(l=c-v,s.length=l);for(var p=0;pf[1]&&(f[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=f)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Vf(r[a],this._dimensions[a])}Kv={arrayRows:t,objectRows:function(r,n,i,a){return Vf(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Vf(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),OK=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(Yc(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,a=[c._getVersionSign()]}else s=o.get("data",!0),l=zr(s)?Ji:dn,a=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(f.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(f.sourceHeader,d.sourceHeader),p=qe(f.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[rm(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[rm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&Ax(a)}var o,s=[],l=[];return O(t,function(u){u.prepareSource();var c=u.getSource(i||0),f="";i!=null&&!c&&Ax(f),s.push(c),l.push(u._getVersionSign())}),n?o=EK(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[fK(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;rr:i+c+h>r){c?(s||l)&&(v?(s||(s=l,l="",u=0,c=u),a.push(s),o.push(c-u),l+=d,u+=h,s="",c=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(c),s=d,c=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}c+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(c)),a.length===1&&(c+=i),{accumWidth:c,lines:a,linesWidths:o}}var Wg="__zr_style_"+Math.round(Math.random()*10),lo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},dh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};lo[Wg]=!0;var gw=["z","z2","invisible"],aY=["invisible"],oY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Tt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Nc[0]=Lv(i)*r+e,Nc[1]=Pv(i)*n+t,Fc[0]=Lv(a)*r+e,Fc[1]=Pv(a)*n+t,u(s,Nc,Fc),c(l,Nc,Fc),i=i%Ca,i<0&&(i=i+Ca),a=a%Ca,a<0&&(a=a+Ca),i>a&&!o?a+=Ca:ii&&(Bc[0]=Lv(h)*r+e,Bc[1]=Pv(h)*n+t,u(s,Bc,s),c(l,Bc,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ta=[],Ma=[],Rn=[],Oi=[],kn=[],Nn=[],Dv=Math.min,Iv=Math.max,Aa=Math.cos,Ea=Math.sin,oi=Math.abs,Vg=Math.PI,zi=Vg*2,Ov=typeof Float32Array<"u",nl=[];function Rv(e){var t=Math.round(e/Vg*1e8)/1e8;return t%2*Vg}function fY(e,t){var r=Rv(e[0]);r<0&&(r+=zi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=zi?i=r+zi:t&&r-i>=zi?i=r-zi:!t&&r>i?i=r+(zi-Rv(r-i)):t&&r0&&(this._ux=oi(n/pd/t)||0,this._uy=oi(n/pd/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=oi(t-this._xi),i=oi(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),nl[0]=i,nl[1]=a,fY(nl,o),i=nl[0],a=nl[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Aa(a)*n+t,this._yi=Ea(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Ov&&(this.data=new Float32Array(r));for(var n=0;nc.length&&(this._expandData(),c=this.data);for(var f=0;f0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Rn[0]=Rn[1]=kn[0]=kn[1]=Number.MAX_VALUE,Oi[0]=Oi[1]=Nn[0]=Nn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||oi(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case at.C:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++],w=t[d++],S=t[d++];p=L9(a,o,b,x,g,m,w,S,10),a=w,o=S;break}case at.Q:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++];p=I9(a,o,b,x,g,m,10),a=g,o=m;break}case at.A:var C=t[d++],M=t[d++],P=t[d++],A=t[d++],T=t[d++],D=t[d++],N=D+T;d+=1,t[d++],v&&(s=Aa(T)*P+C,l=Ea(T)*A+M),p=Iv(P,A)*Dv(zi,Math.abs(D)),a=Aa(N)*P+C,o=Ea(N)*A+M;break;case at.R:{s=a=t[d++],l=o=t[d++];var H=t[d++],$=t[d++];p=H*2+$*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[f++]=p,c+=p)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,c,f,d,h=r<1,v,p,g=0,m=0,y,_=0,b,x;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case at.M:s=u=n[w++],l=c=n[w++],t.moveTo(u,c);break;case at.L:{f=n[w++],d=n[w++];var M=oi(f-u),P=oi(d-c);if(M>i||P>a){if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+f*T,c*(1-T)+d*T);break e}g+=A}t.lineTo(f,d),u=f,c=d,_=0}else{var D=M*M+P*P;D>_&&(b=f,x=d,_=D)}break}case at.C:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++],F=n[w++],R=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;dd(u,N,$,F,T,Ta),dd(c,H,G,R,T,Ma),t.bezierCurveTo(Ta[1],Ma[1],Ta[2],Ma[2],Ta[3],Ma[3]);break e}g+=A}t.bezierCurveTo(N,H,$,G,F,R),u=F,c=R;break}case at.Q:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;hd(u,N,$,T,Ta),hd(c,H,G,T,Ma),t.quadraticCurveTo(Ta[1],Ma[1],Ta[2],Ma[2]);break e}g+=A}t.quadraticCurveTo(N,H,$,G),u=$,c=G;break}case at.A:var j=n[w++],re=n[w++],oe=n[w++],ye=n[w++],Ae=n[w++],V=n[w++],Q=n[w++],W=!n[w++],q=oe>ye?oe:ye,le=oi(oe-ye)>.001,de=Ae+V,J=!1;if(h){var A=v[m++];g+A>y&&(de=Ae+V*(y-g)/A,J=!0),g+=A}if(le&&t.ellipse?t.ellipse(j,re,oe,ye,Q,Ae,de,W):t.arc(j,re,q,Ae,de,W),J)break e;C&&(s=Aa(Ae)*oe+j,l=Ea(Ae)*ye+re),u=Aa(de)*oe+j,c=Ea(de)*ye+re;break;case at.R:s=u=n[w],l=c=n[w+1],f=n[w++],d=n[w++];var L=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(f,d),t.lineTo(f+Dv(z,L),d),z-=L,z>0&&t.lineTo(f+L,d+Dv(z,I)),z-=I,z>0&&t.lineTo(f+Iv(L-z,0),d+I),z-=L,z>0&&t.lineTo(f,d+Iv(I-z,0));break e}g+=A}t.rect(f,d,L,I);break;case at.Z:if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+s*T,c*(1-T)+l*T);break e}g+=A}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const _o=dY;function Fo(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+f&&c>n+f&&c>a+f&&c>s+f||ce+f&&u>r+f&&u>i+f&&u>o+f||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||c+ui&&(i+=il);var d=Math.atan2(l,s);return d<0&&(d+=il),d>=n&&d<=i||d+il>=n&&d+il<=i}function Pa(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ri=_o.CMD,La=Math.PI*2,gY=1e-4;function mY(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&yY(),h=jt(t,n,a,s,Kr[0]),d>1&&(v=jt(t,n,a,s,Kr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var c=0,f=Jt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);or[0]=-l,or[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=La-1e-4){n=0,i=La;var c=a?1:-1;return o>=or[0]+e&&o<=or[1]+e?c:0}if(n>i){var f=n;n=i,i=f}n<0&&(n+=La,i+=La);for(var d=0,h=0;h<2;h++){var v=or[h];if(v+e>o){var p=Math.atan2(s,v),c=a?1:-1;p<0&&(p=La+p),(p>=n&&p<=i||p+La>=n&&p+La<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Pa(l,u,c,f,n,i))),g&&(l=a[v],u=a[v+1],c=l,f=u),p){case Ri.M:c=a[v++],f=a[v++],l=c,u=f;break;case Ri.L:if(r){if(Fo(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Pa(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.C:if(r){if(hY(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=_Y(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.Q:if(r){if(vY(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=bY(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);d=Math.cos(x)*_+m,h=Math.sin(x)*b+y,g?(c=d,f=h):s+=Pa(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(pY(m,y,b,x,x+w,S,t,C,i))return!0}else s+=wY(m,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+m,u=Math.sin(x+w)*b+y;break;case Ri.R:c=l=a[v++],f=u=a[v++];var M=a[v++],P=a[v++];if(d=c+M,h=f+P,r){if(Fo(c,f,d,f,t,n,i)||Fo(d,f,d,h,t,n,i)||Fo(d,h,c,h,t,n,i)||Fo(c,h,c,f,t,n,i))return!0}else s+=Pa(d,f,d,h,n,i),s+=Pa(c,h,c,f,n,i);break;case Ri.Z:if(r){if(Fo(l,u,c,f,t,n,i))return!0}else s+=Pa(l,u,c,f,n,i);l=c,u=f;break}}return!r&&!mY(u,f)&&(s+=Pa(l,u,c,f,n,i)||0),s!==0}function xY(e,t,r){return k2(e,0,!1,t,r)}function SY(e,t,r,n){return k2(e,t,!0,r,n)}var N2=dt({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},lo),CY={style:dt({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},dh.style)},kv=Cu.concat(["invisible","culling","z","z2","zlevel","parent"]),TY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Fg:n>.2?rj:Bg}else if(r)return Bg}return Fg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Te(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=vd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Ko)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),SY(s,l/u,r,n)))return!0}if(this.hasFill())return xY(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Ko,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:se(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Ko)},t.prototype.createStyle=function(r){return sh(N2,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=se({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=se({},i.shape),se(u,n.shape)):(u=se({},a?this.shape:i.shape),se(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=se({},this.shape);for(var c={},f=Tt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return sh(MY,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Zy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(ac);F2.prototype.type="tspan";const Gg=F2;var AY=dt({x:0,y:0},lo),EY={style:dt({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},dh.style)};function PY(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var B2=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return sh(AY,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=PY(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return EY},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new et(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(ac);B2.prototype.type="image";const zs=B2;function LY(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,c;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=c=o:o instanceof Array?o.length===1?s=l=u=c=o[0]:o.length===2?(s=u=o[0],l=c=o[1]):o.length===3?(s=o[0],l=c=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],c=o[3]):s=l=u=c=0;var f;s+l>i&&(f=s+l,s*=i/f,l*=i/f),u+c>i&&(f=u+c,u*=i/f,c*=i/f),l+u>a&&(f=l+u,l*=a/f,u*=a/f),s+c>a&&(f=s+c,s*=a/f,c*=a/f),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+c,n+a),c!==0&&e.arc(r+c,n+a-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var rs=Math.round;function $2(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(rs(n*2)===rs(i*2)&&(e.x1=e.x2=eo(n,s,!0)),rs(a*2)===rs(o*2)&&(e.y1=e.y2=eo(a,s,!0))),e}}function H2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=eo(n,s,!0),e.y=eo(i,s,!0),e.width=Math.max(eo(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(eo(i+o,s,!1)-e.y,o===0?0:1)),e}}function eo(e,t,r){if(!t)return e;var n=rs(e*2);return(n+rs(t))%2===0?n/2:(n+(r?1:-1))/2}var DY=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),IY={},z2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new DY},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=H2(IY,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?LY(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ht);z2.prototype.type="rect";const Ht=z2;var ww={fill:"#000"},xw=2,OY={style:dt({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},dh.style)},W2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=ww,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,T=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,N=0;N=0&&(N=w[D],N.align==="right");)this._placeToken(N,r,C,m,T,"right",_),M-=N.width,T-=N.width,D--;for(A+=(a-(A-g)-(y-T)-M)/2;P<=D;)N=w[P],this._placeToken(N,r,C,m,A+N.width/2,"center",_),A+=N.width,P++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,f=a+i/2;c==="top"?f=a+r.height/2:c==="bottom"&&(f=a+i-r.height/2);var d=!r.isLineHolder&&Nv(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,f-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=Ew(o,s,v),f-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Gg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=Aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),x=Mw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=xw,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=f,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||yo,g.opacity=zl(u.opacity,n.opacity,1),Cw(g,u),x&&(g.lineWidth=zl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=x),b&&(g.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new et(Sl(g.x,S,g.textAlign),Xo(g.y,C,g.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,c=r.borderColor,f=l&&l.image,d=l&&!f,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&c){p=this._getOrCreateChild(Ht),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(f){g=this._getOrCreateChild(zs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&c){var y=p.style;y.lineWidth=u,y.stroke=c,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=zl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return FY(r)&&(n=[r.fontStyle,r.fontWeight,NY(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Vn(n)||r.textFont||r.font},t}(ac),RY={left:!0,right:1,center:1},kY={top:1,bottom:1,middle:1},Sw=["fontStyle","fontWeight","fontSize","fontFamily"];function NY(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?zy+"px":e+"px"}function Cw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ht){var o=V2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Bo(s)||Bo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=se({},n),u=se({},u),u.fill=s):!Bo(u.fill)&&Bo(s)?(a=!0,n=se({},n),u=se({},u),u.fill=Ow(s)):!Bo(u.stroke)&&Bo(l)&&(a||(n=se({},n),u=se({},u)),u.stroke=Ow(l)),n.style=u}}if(n&&n.z2==null){a||(n=se({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??HY)}return n}function jY(e,t,r){if(r&&r.z2==null){r=se({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??zY)}return r}function YY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:GY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=se({},r),o=se({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Fv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return UY(this,e,t,r);if(e==="blur")return YY(this,e,r);if(e==="select")return jY(this,e,r)}return r}function qY(e){e.stateProxy=Fv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Fv),r&&(r.stateProxy=Fv)}function kw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,U2)}function Nw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,j2)}function Ug(e,t){e.__highByOuter|=1<<(t||0),Ai(e,U2)}function jg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ai(e,j2)}function KY(e){Ai(e,s0)}function q2(e){Ai(e,Y2)}function K2(e){Ai(e,WY)}function X2(e){Ai(e,VY)}function Z2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function Q2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=i0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){Y2(u)}),s&&r.push(a)),o.isBlured=!1}),O(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Yg(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,c){for(var f=0;f0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Kg(e,t,r){tE(e,!0),Ai(e,qY),r7(e,t,r)}function t7(e){tE(e,!1)}function J2(e,t,r,n){n?t7(e):Kg(e,t,r)}function r7(e,t,r){var n=ft(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Bw=["emphasis","blur","select"],n7={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function eE(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Bv(v),s*=Bv(v));var p=(i===a?-1:1)*Bv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Hc(f)*g-$c(f)*m,_=(t+n)/2+$c(f)*g+Hc(f)*m,b=Ww([1,0],[(d-g)/o,(h-m)/s]),x=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],S=Ww(x,w);if(Qg(x,w)<=-1&&(S=al),Qg(x,w)>=1&&(S=0),S<0){var C=Math.round(S/al*1e6)/1e6;S=al*2+C%2*al}c.addData(u,y,_,o,s,b,S,f,a)}var u7=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,c7=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function f7(e){var t=new _o;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=_o.CMD,l=e.match(u7);if(!l)return t;for(var u=0;uN*N+H*H&&(C=P,M=A),{cx:C,cy:M,x0:-c,y0:-f,x1:C*(i/x-1),y1:M*(i/x-1)}}function _7(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function b7(e,t){var r,n=Cl(t.r,0),i=Cl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,f=t.cy,d=!!t.clockwise,h=Gw(u-l),v=h>$v&&h%$v;if(v>gn&&(h=v),!(n>gn))e.moveTo(c,f);else if(h>$v-gn)e.moveTo(c+n*Ho(l),f+n*Da(l)),e.arc(c,f,n,l,u,!d),i>gn&&(e.moveTo(c+i*Ho(u),f+i*Da(u)),e.arc(c,f,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,M=void 0,P=void 0,A=void 0,T=void 0,D=void 0,N=void 0,H=n*Ho(l),$=n*Da(l),G=i*Ho(u),F=i*Da(u),R=h>gn;if(R){var j=t.cornerRadius;j&&(r=_7(j),p=r[0],g=r[1],m=r[2],y=r[3]);var re=Gw(n-i)/2;if(_=Fn(re,m),b=Fn(re,y),x=Fn(re,p),w=Fn(re,g),M=S=Cl(_,b),P=C=Cl(x,w),(S>gn||C>gn)&&(A=n*Ho(u),T=n*Da(u),D=i*Ho(l),N=i*Da(l),hgn){var le=Fn(m,M),de=Fn(y,M),J=zc(D,N,H,$,n,le,d),L=zc(A,T,G,F,n,de,d);e.moveTo(c+J.cx+J.x0,f+J.cy+J.y0),M0&&e.arc(c+J.cx,f+J.cy,le,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,n,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),!d),de>0&&e.arc(c+L.cx,f+L.cy,de,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.moveTo(c+H,f+$),e.arc(c,f,n,l,u,!d);if(!(i>gn)||!R)e.lineTo(c+G,f+F);else if(P>gn){var le=Fn(p,P),de=Fn(g,P),J=zc(G,F,A,T,i,-de,d),L=zc(H,$,D,N,i,-le,d);e.lineTo(c+J.cx+J.x0,f+J.cy+J.y0),P0&&e.arc(c+J.cx,f+J.cy,de,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,i,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),d),le>0&&e.arc(c+L.cx,f+L.cy,le,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.lineTo(c+G,f+F),e.arc(c,f,i,u,l,d)}e.closePath()}}}var w7=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),uE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new w7},t.prototype.buildPath=function(r,n){b7(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ht);uE.prototype.type="sector";const Ao=uE;var x7=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),cE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new x7},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ht);cE.prototype.type="ring";const fE=cE;function S7(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,c,f;if(n){c=[1/0,1/0],f=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=S7(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],c=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,f=i.length;sOa[1]){if(s=!1,a)return s;var c=Math.abs(Oa[0]-Ia[1]),f=Math.abs(Ia[0]-Oa[1]);Math.min(c,f)>i.len()&&(c0){var f=c.duration,d=c.delay,h=c.easing,v={duration:f,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Pr(e,t,r,n,i,a){f0("update",e,t,r,n,i,a)}function Hr(e,t,r,n,i,a){f0("enter",e,t,r,n,i,a)}function fs(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Yw(e){return!e.isGroup}function Q7(e){return e.shape!=null}function ME(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Yw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return Q7(o)&&(s.shape=se({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Yw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Pr(o,l,r,ft(o).dataIndex)}}})}function J7(e,t){return Re(e,function(r){var n=r[0];n=xd(n,t.x),n=Sd(n,t.x+t.width);var i=r[1];return i=xd(i,t.y),i=Sd(i,t.y+t.height),[n,i]})}function eq(e,t){var r=xd(e.x,t.x),n=Sd(e.x+e.width,t.x+t.width),i=xd(e.y,t.y),a=Sd(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function v0(e,t,r){var n=se({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),dt(i,r),new zs(n)):d0(e.replace("path://",""),n,r,"center")}function tq(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Hv(h,v,c,f)/d;return!(g<0||g>1)}function Hv(e,t,r,n){return e*n-r*t}function rq(e){return e<=1e-6&&e>=-1e-6}function p0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Te(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&O(Tt(l),function(c){Ps(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=ft(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:dt({content:n,formatterParams:s},i)}}function qw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function g0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function IE(e,t){return st(st({},e,!0),t,!0)}const _q={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},bq={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Cd="ZH",y0="EN",Eu=y0,zf={},_0={},OE=Ge.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Cd)>-1?Cd:Eu}():Eu;function RE(e,t){e=e.toUpperCase(),_0[e]=new rr(t),zf[e]=t}function wq(e){if(Te(e)){var t=zf[e.toUpperCase()]||{};return e===Cd||e===y0?Qe(t):st(Qe(t),Qe(zf[Eu]),!1)}else return st(Qe(e),Qe(zf[Eu]),!1)}function xq(e){return _0[e]}function Sq(){return _0[Eu]}RE(y0,_q);RE(Cd,bq);var b0=1e3,w0=b0*60,Kl=w0*60,en=Kl*24,ex=en*365,Tl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Gc="{yyyy}-{MM}-{dd}",tx={year:"{yyyy}",month:"{yyyy}-{MM}",day:Gc,hour:Gc+" "+Tl.hour,minute:Gc+" "+Tl.minute,second:Gc+" "+Tl.second,millisecond:Tl.none},Vv=["year","month","day","hour","minute","second","millisecond"],kE=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ra(e,t){return e+="","0000".substr(0,t-e.length)+e}function ds(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Cq(e){return e===ds(e)}function Tq(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function mh(e,t,r,n){var i=wi(e),a=i[x0(r)](),o=i[hs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[yh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),c=i[Pu(r)](),f=(c-1)%12+1,d=i[_h(r)](),h=i[bh(r)](),v=i[wh(r)](),p=n instanceof rr?n:xq(n||OE)||Sq(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Ra(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Ra(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ra(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,Ra(f+"",2)).replace(/{h}/g,f+"").replace(/{mm}/g,Ra(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Ra(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Ra(v,3)).replace(/{S}/g,v+"")}function Mq(e,t,r,n,i){var a=null;if(Te(r))a=r;else if(Ve(r))a=r(e.value,t,{level:e.level});else{var o=se({},Tl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var f=e.level==null?0:e.level>=0?e.level:a.length+e.level;f=Math.min(f,a.length-1),a=a[f]}}return mh(new Date(e.value),a,i,n)}function NE(e,t){var r=wi(e),n=r[hs(t)]()+1,i=r[yh(t)](),a=r[Pu(t)](),o=r[_h(t)](),s=r[bh(t)](),l=r[wh(t)](),u=l===0,c=u&&s===0,f=c&&o===0,d=f&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":f?"hour":c?"minute":u?"second":"millisecond"}function rx(e,t,r){var n=bt(e)?wi(e):e;switch(t=t||NE(e,r),t){case"year":return n[x0(r)]();case"half-year":return n[hs(r)]()>=6?1:0;case"quarter":return Math.floor((n[hs(r)]()+1)/4);case"month":return n[hs(r)]();case"day":return n[yh(r)]();case"half-day":return n[Pu(r)]()/24;case"hour":return n[Pu(r)]();case"minute":return n[_h(r)]();case"second":return n[bh(r)]();case"millisecond":return n[wh(r)]()}}function x0(e){return e?"getUTCFullYear":"getFullYear"}function hs(e){return e?"getUTCMonth":"getMonth"}function yh(e){return e?"getUTCDate":"getDate"}function Pu(e){return e?"getUTCHours":"getHours"}function _h(e){return e?"getUTCMinutes":"getMinutes"}function bh(e){return e?"getUTCSeconds":"getSeconds"}function wh(e){return e?"getUTCMilliseconds":"getMilliseconds"}function Aq(e){return e?"setUTCFullYear":"setFullYear"}function FE(e){return e?"setUTCMonth":"setMonth"}function BE(e){return e?"setUTCDate":"setDate"}function $E(e){return e?"setUTCHours":"setHours"}function HE(e){return e?"setUTCMinutes":"setMinutes"}function zE(e){return e?"setUTCSeconds":"setSeconds"}function WE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function VE(e){if(!xj(e))return Te(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function GE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var xh=jA;function tm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(c){return c&&Vn(c)?c:"-"}function a(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?wi(e):e;if(isNaN(+l)){if(s)return"-"}else return mh(l,n,r)}if(t==="ordinal")return wg(e)?i(e):bt(e)&&a(e)?e+"":"-";var u=yd(e);return a(u)?VE(u):wg(e)?i(e):typeof e=="boolean"?e+"":"-"}var nx=["a","b","c","d","e","f","g"],Gv=function(e,t){return"{"+e+(t??"")+"}"};function UE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Lu(e,t){return t=t||"transparent",Te(e)?e:Ie(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function ix(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Wf=O,Pq=["left","right","top","bottom","width","height"],Uc=[["width","left","right"],["height","top","bottom"]];function S0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),f=t.childAt(u+1),d=f&&f.getBoundingRect(),h,v;if(e==="horizontal"){var p=c.width+(d?-d.x+c.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=c.height):s=Math.max(s,c.height)}else{var g=c.height+(d?-d.y+c.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Xl=S0;Rt(S0,"vertical");Rt(S0,"horizontal");function Ls(e,t,r){r=xh(r||0);var n=t.width,i=t.height,a=gt(e.left,n),o=gt(e.top,i),s=gt(e.right,n),l=gt(e.bottom,i),u=gt(e.width,n),c=gt(e.height,i),f=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(c)&&(c=i-l-f-o),h!=null&&(isNaN(u)&&isNaN(c)&&(h>n/i?u=n*.8:c=i*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-c-f),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-c/2-r[0];break;case"bottom":o=i-c-f;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(c)&&(c=i-f-o-(l||0));var v=new et(a+r[3],o+r[0],u,c);return v.margin=r,v}function Du(e){var t=e.layoutMode||e.constructor.layoutMode;return Ie(t)?t:t?{type:t}:null}function Ds(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(Uc[0],0),a=o(Uc[1],1);u(Uc[0],e,i),u(Uc[1],e,a);function o(c,f){var d={},h=0,v={},p=0,g=2;if(Wf(c,function(_){v[_]=e[_]}),Wf(c,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[f])return l(t,c[1])?v[c[2]]=null:l(t,c[2])&&(v[c[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return ic(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(rr);L2(Ws,rr);ch(Ws);mq(Ws);yq(Ws,Iq);function Iq(e){var t=[];return O(Ws.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Re(t,function(r){return Gn(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const xt=Ws;var jE="";typeof navigator<"u"&&(jE=navigator.platform||"");var zo="rgba(0, 0, 0, 0.2)";const Oq={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zo,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zo,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zo,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zo,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zo,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zo,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:jE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var YE=Ue(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),dn="original",Lr="arrayRows",In="objectRows",ti="keyedColumns",Ji="typedArray",qE="unknown",pi="column",Vs="row",Ut={Must:1,Might:2,Not:3},KE=Et();function Rq(e){KE(e).datasetMap=Ue()}function kq(e,t,r){var n={},i=C0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=KE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,c,f;e=e.slice(),O(e,function(p,g){var m=Ie(p)?p:e[g]={name:p};m.type==="ordinal"&&c==null&&(c=g,f=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:f,valueWayDim:0});O(e,function(p,g){var m=p.name,y=v(p);if(c==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(c===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function zq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=o==null||!n?r:Hq(n,o);if(c=c||r,!(!c||!c.length)){var f=c[l];return i&&(u[i]=f),s.paletteIdx=(l+1)%c.length,f}}function Wq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var jc,ol,ox,sx="\0_ec_inner",Vq=1,QE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new rr(a),this._locale=new rr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=cx(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,cx(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?ox(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&O(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ue(),u=n&&n.replaceMergeMainTypeMap;Rq(this),O(r,function(f,d){f!=null&&(xt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Qe(f):st(i[d],f,!0))}),u&&u.each(function(f,d){xt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),xt.topologicalTravel(s,xt.getAllClassMainTypes(),c,this);function c(f){var d=$q(this,f,cr(r[f])),h=a.get(f),v=h?u&&u.get(f)?"replaceMerge":"normalMerge":"replaceAll",p=Tj(h,d,v);Ij(p,f,xt),i[f]=null,a.set(f,null),o.set(f,0);var g=[],m=[],y=0,_;O(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=f==="series",M=xt.getClass(f,b.keyInfo.subType,!C);if(!M)return;if(f==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var P=se({componentIndex:x},b.keyInfo);w=new M(S,this,this,P),se(w,P),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[f]=g,a.set(f,m),o.set(f,y),f==="series"&&jc(this)}this._seriesIndices||jc(this)},t.prototype.getOption=function(){var r=Qe(this.option);return O(r,function(n,i){if(xt.hasClass(i)){for(var a=cr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Tu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[sx],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function eK(e,t){return e.join(",")===t.join(",")}const tK=Xq;var hn=O,Iu=Ie,fx=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function jv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=fx.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=_j(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var Ch=function(){function e(t){this.data=t.data||(t.sourceFormat===ti?{}:[]),this.sourceFormat=t.sourceFormat||qE,this.seriesLayoutBy=t.seriesLayoutBy||pi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};yx=(t={},t[Lr+"_"+pi]={pure:!0,appendData:a},t[Lr+"_"+Vs]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[In]={pure:!0,appendData:a},t[ti]={pure:!0,appendData:function(o){var s=this._data;O(o,function(l,u){for(var c=s[u]||(s[u]=[]),f=0;f<(l||[]).length;f++)c.push(l[f])})}},t[dn]={appendData:a},t[Ji]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Is(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function Sx(e){var t,r;return Ie(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function Zl(e){return new _K(e)}var _K=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function c(y){return!(y>=1)&&(y=1),y}var f;(this._dirty||a==="reset")&&(this._dirty=!1,f=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(f||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),wK=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Vf(t,r)},e}();function xK(e,t){var r=new wK,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==pi&&br(o);var s=[],l={},u=e.dimensionsDefine;if(u)O(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ps(l,m)&&br(_),l[m]=y}});else for(var c=0;c65535?LK:DK}function Wo(){return[1/0,-1/0]}function IK(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function Mx(e,t,r,n,i){var a=fP[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Re(o,function(y){return y.property}),c=0;cm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,c=0,f=this.count();c=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=c))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=f&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],x=t[i[1]][1],m=0;m=f&&y<=d||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=f&&y<=d||isNaN(y))&&(l[u++]=S)}else for(var m=0;mt[P][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),c,f,d,h=new(ll(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vc&&(c=f,d=b)}A>0&&Ac-v&&(l=c-v,s.length=l);for(var p=0;pf[1]&&(f[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=f)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Vf(r[a],this._dimensions[a])}Kv={arrayRows:t,objectRows:function(r,n,i,a){return Vf(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Vf(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),OK=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(Yc(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,a=[c._getVersionSign()]}else s=o.get("data",!0),l=zr(s)?Ji:dn,a=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(f.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(f.sourceHeader,d.sourceHeader),p=qe(f.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[rm(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[rm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&Ax(a)}var o,s=[],l=[];return O(t,function(u){u.prepareSource();var c=u.getSource(i||0),f="";i!=null&&!c&&Ax(f),s.push(c),l.push(u._getVersionSign())}),n?o=EK(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[fK(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return O(e.blocks,function(i){var a=pP(i);a>=t&&(t=a+ +(n&&(!a||im(i)&&!i.noHeader)))}),t}return 0}function NK(e,t,r,n){var i=t.noHeader,a=BK(pP(t)),o=[],s=t.blocks||[];bi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ps(u,l)){var c=new bK(u[l],null);s.sort(function(v,p){return c.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}O(s,function(v,p){var g=t.valueFormatter,m=vP(v)(g?se(se({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var f=e.renderMode==="richText"?o.join(a.richText):am(o.join(""),i?r:a.html);if(i)return f;var d=tm(t.header,"ordinal",e.useUTC),h=hP(n,e.renderMode).nameStyle;return e.renderMode==="richText"?gP(e,d,h)+a.richText+f:am('
'+Xr(d)+"
"+f,r)}function FK(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Re(b,function(x,w){return tm(x,ge(h)?h[w]:h,u)})};if(!(a&&o)){var f=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":tm(l,"ordinal",u),h=t.valueType,v=o?[]:c(t.value),p=!s||!a,g=!s&&a,m=hP(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":f)+(a?"":gP(e,d,y))+(o?"":zK(e,v,p,g,_)):am((s?"":f)+(a?"":$K(d,!s,y))+(o?"":HK(v,p,g,_)),r)}}function Ex(e,t,r,n,i,a){if(e){var o=vP(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function BK(e){return{html:RK[e],richText:kK[e]}}function am(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function $K(e,t,r){var n=t?"margin-left:2px":"";return''+Xr(e)+""}function HK(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Re(e,function(o){return Xr(o)}).join("  ")+""}function gP(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function zK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function WK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Lu(n)}function mP(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var Xv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=C2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Eq({color:r,type:t,renderMode:n,markerId:i});return Me(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?O(r,function(a){return se(n,a)}):se(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function VK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=WK(t,r),c,f,d,h;if(o>1||l&&!o){var v=GK(s,t,r,a,u);c=v.inlineValues,f=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=c=Is(i,r,a[0]),f=p.type}else h=c=l?s[0]:s;var g=t0(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Ou("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Ou("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Vn(_),value:c,valueType:f})].concat(d||[])})}function GK(e,t,r,n,i){var a=t.getData(),o=oa(e,function(f,d,h){var v=a.getDimensionInfo(h);return f=f||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?O(n,function(f){c(Is(a,r,f),f)}):O(e,c);function c(f,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Ou("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:f,valueType:h.type})):(s.push(f),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var ki=Et();function qc(e,t){return e.getName(t)||e.getId(t)}var UK="__universalTransitionEnabled",Mh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Zl({count:YK,reset:qK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=ki(this).sourceManager=new OK(this);a.prepareSource();var o=this.getInitialData(r,i);Lx(o,this),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Du(this),a=i?Sh(r):{},o=this.subType;xt.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),Hg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Ds(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Du(this);i&&Ds(this.option,r,i);var a=ki(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);Lx(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!zr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=T0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[qc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[UK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Ie(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return xt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(xt);Jn(Mh,yK);Jn(Mh,T0);L2(Mh,xt);function Px(e){var t=e.name;t0(e)||(e.name=jK(e)||t)}function jK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return O(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function YK(e){return e.model.getRawData().count()}function qK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),KK}function KK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function Lx(e,t){O(UU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Rt(XK,t))})}function XK(e,t){var r=om(e);return r&&r.setOutputEnd((t||this).count()),t}function om(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const wo=Mh;var D0=function(){function e(){this.group=new cn,this.uid=gh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();n0(D0);ch(D0);const xi=D0;function yP(){var e=Et();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var _P=Et(),ZK=yP(),I0=function(){function e(){this.group=new cn,this.uid=gh("viewChart"),this.renderTask=Zl({plan:QK,reset:JK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){g0(this.group,t)},e.markUpdateMethod=function(t,r){_P(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function Dx(e,t,r){e&&Xg(e)&&(t==="emphasis"?Ug:jg)(e,r)}function Ix(e,t,r){var n=nc(e,t),i=t&&t.highlightKey!=null?i7(t.highlightKey):null;n!=null?O(cr(n),function(a){Dx(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){Dx(a,r,i)})}n0(I0);ch(I0);function QK(e){return ZK(e.model)}function JK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&_P(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),eX[l]}var eX={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const co=I0;var Td="\0__throttleOriginMethod",Ox="\0__throttleRate",Rx="\0__throttleType";function O0(e,t,r){var n,i=0,a=0,o=null,s,l,u,c;t=t||0;function f(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?f():o=setTimeout(f,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){c=h},d}function bP(e,t,r,n){var i=e[t];if(i){var a=i[Td]||i,o=i[Rx],s=i[Ox];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=O0(a,r,n==="debounce"),i[Td]=a,i[Rx]=n,i[Ox]=r}return i}}function sm(e,t){var r=e[t];r&&r[Td]&&(r.clear&&r.clear(),e[t]=r[Td])}var kx=Et(),Nx={itemStyle:Mu(DE,!0),lineStyle:Mu(LE,!0)},tX={lineStyle:"stroke",itemStyle:"fill"};function wP(e,t){var r=e.visualStyleMapper||Nx[t];return r||(console.warn("Unknown style type '"+t+"'."),Nx.itemStyle)}function xP(e,t){var r=e.visualDrawType||tX[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var rX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=wP(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=xP(e,n),u=o[l],c=Ve(u)?u:null,f=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||f){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ve(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||Ve(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=se({},o);g[l]=c(p),h.setItemVisual(v,"style",g)}}}},ul=new rr,nX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=wP(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){ul.option=l[n];var u=i(ul),c=o.ensureUniqueItemVisual(s,"style");se(c,u),ul.option.decal&&(o.setItemVisual(s,"decal",ul.option.decal),ul.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},iX={performRawSeries:!0,overallReset:function(e){var t=Ue();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),kx(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=kx(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=xP(r,s);a.each(function(u){var c=a.getRawIndex(u);i[c]=u}),n.each(function(u){var c=i[u],f=a.getItemVisual(c,"colorFromPalette");if(f){var d=a.ensureUniqueItemVisual(c,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Kc=Math.PI;function aX(e,t){t=t||{},dt(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new cn,n=new Ht({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new dr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Ht({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new c0({shape:{startAngle:-Kc/2,endAngle:-Kc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Kc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Kc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),a.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var oX=function(){function e(t,r,n,i){this._stageTaskMap=Ue(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ue();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;O(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";bi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;O(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),f=c.seriesTaskMap,d=c.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else f&&f.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ue(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,i).each(c);function c(f){var d=f.uid,h=s.set(d,o&&o.get(d)||Zl({plan:fX,reset:dX,count:vX}));h.context={model:f,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(f,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||Zl({reset:sX});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ue(),u=t.seriesType,c=t.getTargetSeries,f=!0,d=!1,h="";bi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):c?c(n,i).each(v):(f=!1,O(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,Zl({reset:lX,onDirty:cX})));m.context={model:p,overallProgress:f},m.agent=o,m.__block=f,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ve(t)&&(t={overallReset:t,seriesType:pX(t)}),t.uid=gh("stageHandler"),r&&(t.visualType=r),t},e}();function sX(e){e.overallReset(e.ecModel,e.api,e.payload)}function lX(e){return e.overallProgress&&uX}function uX(){this.agent.dirty(),this.getDownstream().dirty()}function cX(){this.agent&&this.agent.dirty()}function fX(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function dX(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=cr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Re(t,function(r,n){return SP(n)}):hX}var hX=SP(0);function SP(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(n[u]=l,c=!0),c||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return c(l,o,"mainType")&&c(l,o,"subType")&&c(l,o,"index","componentIndex")&&c(l,o,"name")&&c(l,o,"id")&&c(u,a,"name")&&c(u,a,"dataIndex")&&c(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function c(f,d,h,v){return f[h]==null||d[v||h]===f[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),lm=["symbol","symbolSize","symbolRotate","symbolOffset"],Hx=lm.concat(["symbolKeepAspect"]),_X={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&to(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function cm(e,t,r){for(var n=t.type==="radial"?$X(e,t,r):BX(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:bt(e)?[e]:ge(e)?e:null}function EP(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&zX(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Re(r,function(a){return a/i}),n/=i)}return[r,n]}var WX=new _o(!0);function Ad(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function zx(e){return typeof e=="string"&&e!=="none"}function Ed(e){var t=e.fill;return t!=null&&t!=="none"}function Wx(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function Vx(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function fm(e,t,r){var n=D2(t.image,t.__image,r);if(fh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*jU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function VX(e,t,r,n){var i,a=Ad(r),o=Ed(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var c=t.path||WX,f=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=f?cm(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=f?cm(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=f||!t.__canvasFillPattern?fm(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(x=f||!t.__canvasStrokePattern?fm(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();c.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=EP(t),C=i[0],M=i[1]);var P=!0;(u||f&Ko)&&(c.setDPR(e.dpr),l?c.setContext(null):(c.setContext(e),P=!1),c.reset(),t.buildPath(c,t.shape,n),c.toStatic(),t.pathUpdated()),P&&c.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&Vx(e,r),o&&Wx(e,r)):(o&&Wx(e,r),a&&Vx(e,r))),C&&e.setLineDash([])}function GX(e,t,r){var n=t.__image=D2(r.image,t.__image,t,t.onload);if(!(!n||!fh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,f=o-u,d=s-c;e.drawImage(n,u,c,f,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function UX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||yo,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=EP(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Ad(r)&&e.strokeText(i,r.x,r.y),Ed(r)&&e.fillText(i,r.x,r.y)):(Ed(r)&&e.fillText(i,r.x,r.y),Ad(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var Gx=["shadowBlur","shadowOffsetX","shadowOffsetY"],Ux=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function PP(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){wr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?lo.opacity:o}(n||t.blend!==r.blend)&&(a||(wr(e,i),a=!0),e.globalCompositeOperation=t.blend||lo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Qt]){if(this._disposed){this.id;return}var a,o,s;if(Ie(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Qt]=!0,!this._model||n){var l=new tK(this._api),u=this._theme,c=this._model=new JE;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},vm);var f={seriesTransition:s,optionChanged:!0};if(i)this[gr]={silent:a,updateParams:f},this[Qt]=!1,this.getZr().wakeUp();else{try{Go(this),Ni.update.call(this,null,f)}catch(d){throw this[gr]=null,this[Qt]=!1,d}this._ssr||this._zr.flush(),this[gr]=null,this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ge.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ge.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return O(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;O(n,function(l){i.eachComponent({mainType:l},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(a.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return O(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(oS[i]){var l=s,u=s,c=-s,f=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();O(Jl,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Qe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),c=o(w.right,c),f=o(w.bottom,f),d.push({dom:x,left:w.left,top:w.top})}}),l*=h,u*=h,c*=h,f*=h;var v=c-l,p=f-u,g=Mo.createCanvas(),m=uw(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return O(d,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Ht({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),O(d,function(_){var b=new zs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return tp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return tp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Cv(i,r);return O(o,function(s,l){l.indexOf("Models")>=0&&O(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)a=a||!!c.containPoint(n);else if(l==="seriesModels"){var f=this._chartsMap[u.__viewId];f&&f.containPoint&&(a=a||f.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Cv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?wX(s,l,n):xX(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;O(mZ,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Al(s,function(v){var p=ft(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=se({},p.eventData),!0},!0),l){var c=l.componentType,f=l.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",f=l.seriesIndex);var d=c&&f!=null&&o.getComponent(c,f),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),O(Ql,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),O(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),CX(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&E2(this.getDom(),F0,"");var n=this,i=n._api,a=n._model;O(n._componentsViews,function(o){o.dispose(a,i)}),O(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Jl[n.id]},t.prototype.resize=function(r){if(!this[Qt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[gr]&&(a==null&&(a=this[gr].silent),i=!0,this[gr]=null),this[Qt]=!0;try{i&&Go(this),Ni.update.call(this,{type:"resize",animation:se({duration:0},r&&r.animation)})}catch(o){throw this[Qt]=!1,o}this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Ie(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!pm[r]){var i=pm[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=se({},r);return n.type=Ql[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Ie(n)||(n={silent:!!n}),!!Pd[r.type]&&this._model){if(this[Qt]){this._pendingActions.push(r);return}var i=n.silent;np.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ge.browser.weChat&&this._throttledZrFlush(),cl.call(this,i),fl.call(this,i)}},t.prototype.updateLabelLayout=function(){yn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Go=function(f){var d=f._scheduler;d.restorePipelines(f._model),d.prepareStageTasks(),ep(f,!0),ep(f,!1),d.plan()},ep=function(f,d){for(var h=f._model,v=f._scheduler,p=d?f._componentsViews:f._chartsViews,g=d?f._componentsMap:f._chartsMap,m=f._zr,y=f._api,_=0;_d.get("hoverLayerThreshold")&&!Ge.node&&!Ge.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=f._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(f,d){var h=f.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(f,d){if(!f.preventAutoZ){var h=f.get("z")||0,v=f.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(f,d,h,v){var p=f.getTextContent(),g=f.getTextGuideLine(),m=f.isGroup;if(m)for(var y=f.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(fs(m))return;if(m instanceof ht&&a7(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}iS=function(f){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return f._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return f._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Ug(v,p),Vr(f)},h.prototype.leaveEmphasis=function(v,p){jg(v,p),Vr(f)},h.prototype.enterBlur=function(v){KY(v),Vr(f)},h.prototype.leaveBlur=function(v){q2(v),Vr(f)},h.prototype.enterSelect=function(v){K2(v),Vr(f)},h.prototype.leaveSelect=function(v){X2(v),Vr(f)},h.prototype.getModel=function(){return f.getModel()},h.prototype.getViewOfComponentModel=function(v){return f.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return f.getViewOfSeriesModel(v)},h}(eP))(f)},GP=function(f){function d(h,v){for(var p=0;p=0)){sS.push(r);var a=MP.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function XP(e,t){pm[e]=t}function CZ(e,t,r){var n=rZ("registerMap");n&&n(e,t,r)}var TZ=AK;Po(k0,rX);Po(Ah,nX);Po(Ah,iX);Po(k0,_X);Po(Ah,bX);Po(BP,JX);qP(rP);KP(aZ,uK);XP("default",aX);Gs({type:uo,event:uo,update:uo},Tr);Gs({type:$f,event:$f,update:$f},Tr);Gs({type:jl,event:jl,update:jl},Tr);Gs({type:Hf,event:Hf,update:Hf},Tr);Gs({type:Yl,event:Yl,update:Yl},Tr);YP("light",gX);YP("dark",mX);function dl(e){return e==null?0:e.length||1}function lS(e){return e}var MZ=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||lS,this._newKeyGetter=i||lS,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var c=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(c,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(f===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(f===1&&d===1)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;s30}var hl=Ie,Fi=Re,kZ=typeof Int32Array>"u"?Array:Int32Array,NZ="e\0\0",uS=-1,FZ=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],BZ=["_approximateExtent"],cS,tf,vl,pl,op,rf,sp,$Z=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;QP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},c=0;c=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===dn;if(l&&!i.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():hl(a)&&(a=se({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,hl(r)?se(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){hl(t)?se(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?se(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;$Y(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){O(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Fi(this.dimensions,this._getDimInfo,this),this.hostModel)),op(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ve(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Uy(arguments)))})},e.internalField=function(){cS=function(t){var r=t._invertedIndicesMap;O(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new kZ(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),i[r]=l}}}(),e}();const rL=$Z;function nL(e,t){A0(e)||(e=E0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ue(),a=[],o=zZ(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&tL(o),l=n===e.dimensionsDefine,u=l?eL(e):JP(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var f=Ue(c),d=new cP(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function zZ(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return O(t,function(a){var o;Ie(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function WZ(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var VZ=function(){function e(t){this.coordSysDims=[],this.axisMap=Ue(),this.categoryAxisMap=Ue(),this.coordSysName=t}return e}();function GZ(e){var t=e.get("coordinateSystem"),r=new VZ(t),n=UZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var UZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Cn).models[0],a=e.getReferringComponents("yAxis",Cn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Uo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Uo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Cn).models[0];t.coordSysDims=["single"],r.set("single",i),Uo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Cn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Uo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Uo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();O(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),c=o[l];r.set(c,u),Uo(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Uo(e){return e.get("type")==="category"}function jZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;YZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,f,d;if(O(a,function(y,_){Me(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!c&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(c=y))}),c&&!n&&!u&&(n=!0),c){f="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,v=c.type,p=0;O(a,function(y){y.coordDim===h&&p++});var g={name:f,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(f,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:f}}function YZ(e){return!QP(e.schema)}function iL(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function qZ(e,t){return iL(e,t)?e.getCalculationInfo("stackResultDimension"):t}function KZ(e,t){var r=e.get("coordinateSystem"),n=M0.get(r),i;return t&&t.coordSysDims&&(i=Re(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=LZ(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function XZ(e,t,r){var n,i;return r&&O(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function aL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=E0(e)):(i=n.getSource(),a=i.sourceFormat===dn);var o=GZ(t),s=KZ(t,o),l=r.useEncodeDefaulter,u=Ve(l)?l:l?Rt(kq,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},f=nL(i,c),d=XZ(f.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(f),v=jZ(t,{schema:f,store:h}),p=new rL(f,t);p.setCalculationInfo(v);var g=d!=null&&ZZ(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function ZZ(e){if(e.sourceFormat===dn){var t=QZ(e.data||[]);return!ge(rc(t))}}function QZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();ch(oL);const Ei=oL;var JZ=0,eQ=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++JZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Re(n,tQ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Me(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ue(this.categories))},e}();function tQ(e){return Ie(e)&&e.value!=null?e.value:e+""}const gm=eQ;function mm(e){return e.type==="interval"||e.type==="log"}function rQ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=S2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=sL(o),l=i.niceTickExtent=[kt(Math.ceil(e[0]/o)*o,s),kt(Math.floor(e[1]/o)*o,s)];return nQ(l,e),i}function lp(e){var t=Math.pow(10,e0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,kt(r*t)}function sL(e){return hi(e)+2}function fS(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function nQ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),fS(e,0,t),fS(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function Eh(e,t){return e>=t[0]&&e<=t[1]}function Ph(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function Lh(e,t){return e*(t[1]-t[0])+t[0]}var lL=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new gm({})),ge(i)&&(i=new gm({categories:Re(i,function(a){return Ie(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Me(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),Eh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(Lh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Ei);Ei.registerClass(lL);const uL=lL;var Ba=kt,cL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return Eh(r,this._extent)},t.prototype.normalize=function(r){return Ph(r,this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=sL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var c=s.length?s[s.length-1].value:a[1];return i[1]>c&&(r?s.push({value:Ba(c+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function hL(e){var t=oQ(e),r=[];return O(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],c=Math.abs(o[1]-o[0]),f=a.scale.getExtent(),d=Math.abs(f[1]-f[0]);s=u?c/d*u:c}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=gt(n.get("barWidth"),s),p=gt(n.get("barMaxWidth"),s),g=gt(n.get("barMinWidth")||(pL(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:W0(a),stackId:z0(n)})}),sQ(r)}function sQ(e){var t={};O(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var c=n.barWidth;c&&!l[u].width&&(l[u].width=c,c=Math.min(s.remainedWidth,c),s.remainedWidth-=c);var f=n.barMaxWidth;f&&(l[u].maxWidth=f);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return O(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Tt(a).length;s=Math.max(35-l*4,15)+"%"}var u=gt(s,o),c=gt(n.gap,1),f=n.remainedWidth,d=n.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),O(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,f-=b+c*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,f-=b+c*b,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var v=0,p;O(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+c)}),p&&(v-=p.width*c);var g=-v/2;O(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+c)})}),r}function lQ(e,t,r){if(e&&t){var n=e[W0(t)];return n!=null&&r!=null?n[z0(r)]:n}}function uQ(e,t){var r=dL(e,t),n=hL(r);O(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=z0(i),u=n[W0(s)][l],c=u.offset,f=u.width;a.setLayout({bandWidth:u.bandWidth,offset:c,size:f})})}function cQ(e){return{seriesType:e,plan:yP(),reset:function(t){if(vL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),c=r.getCalculationInfo("stackResultDimension"),f=iL(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=fQ(i,a),v=pL(t),p=t.get("barMinHeight")||0,g=c&&r.getDimensionIndex(c),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&up(x*3),S=v&&l&&up(x*3),C=v&&up(x),M=n.master.getRect(),P=d?M.width:M.height,A,T=b.getStore(),D=0;(A=_.next())!=null;){var N=T.get(f?g:o,A),H=T.get(s,A),$=h,G=void 0;f&&(G=+N-T.get(o,A));var F=void 0,R=void 0,j=void 0,re=void 0;if(d){var oe=n.dataToPoint([N,H]);if(f){var ye=n.dataToPoint([G,H]);$=ye[0]}F=$,R=oe[1]+y,j=oe[0]-$,re=m,Math.abs(j)>>1;e[i][1]i&&(this._approxInterval=i);var s=nf.length,l=Math.min(dQ(nf,this._approxInterval,0,s),s-1);this._interval=nf[l][1],this._minLevelUnit=nf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return bt(r)?r:+wi(r)},t.prototype.contain=function(r){return Eh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Ph(this.parse(r),this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.type="time",t}(sc),nf=[["second",b0],["minute",w0],["hour",Kl],["quarter-day",Kl*6],["half-day",Kl*12],["day",en*1.2],["half-week",en*3.5],["week",en*7],["month",en*31],["quarter",en*95],["half-year",ex/2],["year",ex]];function hQ(e,t,r,n){var i=wi(t),a=wi(r),o=function(v){return rx(i,v,n)===rx(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},c=function(){return u()&&o("hour")},f=function(){return c()&&o("minute")},d=function(){return f()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return h()}}function vQ(e,t){return e/=en,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function pQ(e){var t=30*en;return e/=t,e>6?6:e>3?3:e>2?2:1}function gQ(e){return e/=Kl,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function dS(e,t){return e/=t?w0:b0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function mQ(e){return S2(e,!0)}function yQ(e,t,r){var n=new Date(e);switch(ds(t)){case"year":case"month":n[FE(r)](0);case"day":n[BE(r)](1);case"hour":n[$E(r)](0);case"minute":n[HE(r)](0);case"second":n[zE(r)](0),n[WE(r)](0)}return n.getTime()}function _Q(e,t,r,n){var i=1e4,a=kE,o=0;function s(P,A,T,D,N,H,$){for(var G=new Date(A),F=A,R=G[D]();F1&&H===0&&T.unshift({value:T[0].value-F})}}for(var H=0;H=n[0]&&y<=n[1]&&f++)}var _=(n[1]-n[0])/t;if(f>_*1.5&&d>_/1.5||(u.push(g),f>_||e===a[h]))break}c=[]}}}for(var b=Vt(Re(u,function(P){return Vt(P,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(P){return P.length>0}),x=[],w=b.length-1,h=0;h0;)a*=10;var s=[kt(SQ(n[0]/a)*a),kt(xQ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){eu.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=vn(r)/vn(this.base),Eh(r,this._extent)},t.prototype.normalize=function(r){return r=vn(r)/vn(this.base),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Lh(r,this._extent),af(this.base,r)},t.type="log",t}(Ei),mL=V0.prototype;mL.getMinorTicks=eu.getMinorTicks;mL.getLabel=eu.getLabel;function of(e,t){return wQ(e,hi(t))}Ei.registerClass(V0);const CQ=V0;var TQ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(t,r){this[AQ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=MQ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),MQ={min:"_determinedMin",max:"_determinedMax"},AQ={min:"_dataMin",max:"_dataMax"};function EQ(e,t,r){var n=e.rawExtentInfo;return n||(n=new TQ(e,t,r),e.rawExtentInfo=n,n)}function sf(e,t){return t==null?null:cd(t)?NaN:e.parse(t)}function yL(e,t){var r=e.type,n=EQ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=dL("bar",o),l=!1;if(O(s,function(f){l=l||f.getBaseAxis()===t.axis}),l){var u=hL(s),c=PQ(i,a,t,u);i=c.min,a=c.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function PQ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=lQ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;O(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;O(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=t-e,f=1-(s+l)/a,d=c/f-c;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function vS(e,t){var r=t,n=yL(e,r),i=n.extent,a=r.get("splitNumber");e instanceof CQ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function LQ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new uL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new bQ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Ei.getClass(t)||sc)}}function DQ(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function lc(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Me(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ve(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(G0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function G0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function IQ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof uL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=lc(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;c=0||(pS.push(e),Ve(e)&&(e={install:e}),e.install(NQ))}var Nu=Et();function FQ(e){return e.type==="category"?$Q(e):zQ(e)}function BQ(e,t){return e.type==="category"?HQ(e,t):{ticks:Re(e.scale.getTicks(),function(r){return r.value})}}function $Q(e){var t=e.getLabelModel(),r=bL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function bL(e,t){var r=wL(e,"labels"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;return Ve(n)?a=TL(e,n):(o=n==="auto"?WQ(e):n,a=CL(e,o)),SL(r,n,{labels:a,labelCategoryInterval:o})}function HQ(e,t){var r=wL(e,"ticks"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ve(n))a=TL(e,n,!0);else if(n==="auto"){var s=bL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Re(s.labels,function(l){return l.tickValue})}else o=n,a=CL(e,o,!0);return SL(r,n,{ticks:a,tickCategoryInterval:o})}function zQ(e){var t=e.scale.getTicks(),r=lc(e);return{labels:Re(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function wL(e,t){return Nu(e)[t]||(Nu(e)[t]=[])}function xL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(n)),f=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Zy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/c,y=h/f;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Nu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function GQ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function CL(e,t,r){var n=lc(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],c=i.count();u!==0&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=_L(e),d=o.get("showMinLabel")||f,h=o.get("showMaxLabel")||f;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function TL(e,t,r){var n=e.scale,i=lc(e),a=[];return O(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var gS=[0,1],UQ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return mj(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count())),$g(t,gS,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count()));var a=$g(t,n,gS,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=BQ(this,r),i=n.ticks,a=Re(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return jQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Re(n,function(a){return Re(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return FQ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return VQ(this)},e}();function mS(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function jQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;O(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();s=1+c[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var f=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=kt(h),v=kt(v),f?h>v:hi&&(i+=gl);var h=Math.atan2(s,o);if(h<0&&(h+=gl),h>=n&&h<=i||h+gl>=n&&h+gl<=i)return l[0]=c,l[1]=f,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function Dd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,c=r-e,f=n-t,d=Math.sqrt(c*c+f*f);c/=d,f/=d;var h=l*c+u*f,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*c,g=o[1]=t+v*f;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function ML(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),c=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(c-a)*(c-a))}var _n=[];function ZQ(e,t,r){var n=ML(t.x,t.y,t.width,t.height,e.x,e.y,_n);return r.set(_n[0],_n[1]),n}function QQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,c=t.data,f=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),Ne.sub(Un,Tn,ut),Ne.sub(zn,Pt,ut);var r=Un.len(),n=zn.len();if(!(r<.001||n<.001)){Un.scale(1/r),zn.scale(1/n);var i=Un.dot(zn),a=Math.cos(t);if(a1&&Ne.copy(sr,Pt),sr.toArray(e[1])}}}}function JQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),Ne.sub(Un,ut,Tn),Ne.sub(zn,Pt,ut);var n=Un.len(),i=zn.len();if(!(n<.001||i<.001)){Un.scale(1/n),zn.scale(1/i);var a=Un.dot(t),o=Math.cos(r);if(a=l)Ne.copy(sr,Pt);else{sr.scaleAndAdd(zn,s/Math.tan(Math.PI/2-c));var f=Pt.x!==ut.x?(sr.x-ut.x)/(Pt.x-ut.x):(sr.y-ut.y)/(Pt.y-ut.y);if(isNaN(f))return;f<0?Ne.copy(sr,ut):f>1&&Ne.copy(sr,Pt)}sr.toArray(e[1])}}}}function _S(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function eJ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Cg(n[0],n[1]),a=Cg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=nv([],n[1],n[0],o/i),l=nv([],n[1],n[2],o/a),u=nv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var c=1;c0&&a&&x(-c/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&S(-m),y<0&&S(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,M,P){if(C<0){var A=Math.min(M,-C);if(A>0){x(A*P,0,o);var T=A+C;T<0&&w(-T*P,1)}else w(-C*P,1)}}function x(C,M,P){C!==0&&(u=!0);for(var A=M;A0)for(var T=0;T0;T--){var $=P[T-1]*H;x(-$,T,o)}}}function S(C){var M=C<0?-1:1;C=Math.abs(C);for(var P=Math.ceil(C/(o-1)),A=0;A0?x(P,0,A+1):x(-P,o-A-1,o),C-=P,C<=0)return}return u}function tJ(e,t,r,n){return DL(e,"x","width",t,r,n)}function IL(e,t,r,n){return DL(e,"y","height",t,r,n)}function OL(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new et(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Pr(n,u,r,l)}else if(n.attr(u),!oc(n).valueAnimation){var f=qe(n.style.opacity,1);n.style.opacity=0,Hr(n,{style:{opacity:f}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};lf(h,u,uf),lf(h,n.states.select,uf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};lf(v,u,uf),lf(v,n.states.emphasis,uf)}lq(n,l,c,r,r)}if(i&&!i.ignore&&!i.invisible){var a=iJ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Pr(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Hr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const oJ=aJ;var fp=Et();function sJ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=fp(r).labelManager;i||(i=fp(r).labelManager=new oJ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=fp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function lJ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Is(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function cJ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,c=r.get(["lineStyle","width"])||2;o-=c/2,s-=c/2,l+=c,u+=c,o=Math.floor(o),l=Math.round(l);var f=new Ht({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(f.shape.x+=l),f.shape.width=0):(v||(f.shape.y+=u),f.shape.height=0);var p=Ve(i)?function(g){i(g,f)}:null;Hr(f,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return f}function fJ(e,t,r){var n=e.getArea(),i=kt(n.r0,1),a=kt(n.r,1),o=new Ao({shape:{cx:kt(e.cx,1),cy:kt(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Hr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function dJ(e,t,r,n,i){if(e){if(e.type==="polar")return fJ(e,t,r);if(e.type==="cartesian2d")return cJ(e,t,r,n,i)}else return null;return null}function RL(e,t){return e.type===t}var hJ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),c=l.getExtent(),f=n.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(f||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Me(a)?v=hJ[a]:Ve(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,vJ))}}}}}var kL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return aL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)O(a.getAxes(),function(f,d){if(f.type==="category"){var h=f.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=f.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;o[c]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(wo);wo.registerClass(kL);const wS=kL;var gJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return aL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=IE(wS.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(wS);const mJ=gJ;var yJ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),_J=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new yJ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,c=n.startAngle,f=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?f-cMath.PI/2&&cs)return!0;s=f}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){wd(a,r,ft(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(co),SS={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=dp(t.x,e.x),s=hp(t.x+t.width,i),l=dp(t.y,e.y),u=hp(t.y+t.height,a),c=si?s:o,t.y=f&&l>a?u:l,t.width=c?0:s-o,t.height=f?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||f},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=hp(t.r,e.r),a=dp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},CS={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Ht({shape:se({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var c=u.shape,f=i?"height":"width";c[f]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?xS:Ao,c=new u({shape:n,z2:1});c.name="item";var f=NL(i);if(c.calculateTextPosition=bJ(f,{isRoundCap:u===xS}),a){var d=c.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Pr:Hr)(c,{shape:v},a)}return c}};function CJ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function TS(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Pr:Hr)(r,{shape:l},t,i,null);var c=t?e.baseAxis.model:null;(o?Pr:Hr)(r,{shape:u},c,i)}function MS(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function AJ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function NL(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function ES(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var c=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",f=PE(n);m0(e,f,{labelFetcher:a,labelDataIndex:r,defaultText:lJ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,wJ(e,h==="outside"?c:h,NL(o),n.get(["label","rotate"]))}sq(d,f,a.getRawValue(r),function(p){return uJ(t,p)});var v=n.getModel(["emphasis"]);J2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),eE(e,n),AJ(i)&&(e.style.fill="none",e.style.stroke="none",O(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function EJ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var PJ=function(){function e(){}return e}(),PS=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new PJ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,c=0;c=0?r:null},30,!1);function LJ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,f=a.length/3;c=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[c]}return-1}function FL(e,t,r){if(RL(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function DJ(e,t,r){var n=e.type==="polar"?Ao:Ht;return new n({shape:FL(t,r,e),silent:!0,z2:0})}const IJ=SJ;function OJ(e){e.registerChartView(IJ),e.registerSeriesModel(mJ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Rt(uQ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,cQ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,pJ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var hf=Math.PI*2,IS=Math.PI/180;function BL(e,t){return Ls(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function $L(e,t){var r=BL(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=gt(r.width,t.getWidth()),o=gt(r.height,t.getHeight()),s=Math.min(a,o),l=gt(i[0],s/2),u=gt(i[1],s/2),c,f,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);c=h[0]||0,f=h[1]||0}else ge(n)||(n=[n,n]),c=gt(n[0],a)+r.x,f=gt(n[1],o)+r.y;return{cx:c,cy:f,r0:l,r:u}}function RJ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=BL(n,r),s=$L(n,r),l=s.cx,u=s.cy,c=s.r,f=s.r0,d=-n.get("startAngle")*IS,h=n.get("minAngle")*IS,v=0;i.each(a,function(P){!isNaN(P)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=hf,w=0,S=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:c}),i.each(a,function(P,A){var T;if(isNaN(P)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:f,r:y?NaN:c});return}y!=="area"?T=p===0&&_?g:P*g:T=hf/v,Tr?m:g,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-f)/2}}}function vp(e){return e.position==="center"}function BJ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*NJ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,f=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,M=S.getTextContent(),P=S.getTextGuideLine(),A=t.getItemModel(w),T=A.getModel("label"),D=T.get("position")||A.get(["emphasis","label","position"]),N=T.get("distanceToLabelLine"),H=T.get("alignTo"),$=gt(T.get("edgeDistance"),u),G=T.get("bleedMargin"),F=A.getModel("labelLine"),R=F.get("length");R=gt(R,u);var j=F.get("length2");if(j=gt(j,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":oe>0?"left":"right"}var U=Math.PI,K=0,ne=T.get("rotate");if(bt(ne))K=ne*(U/180);else if(D==="center")K=0;else if(ne==="radial"||ne===!0){var fe=oe<0?-re+U:-re;K=fe}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(oe,ye);te<0&&(te=U*2+te);var ie=ye>0;ie&&(te=U+te),K=te-U}if(a=!!K,M.x=Ae,M.y=V,M.rotation=K,M.setStyle({verticalAlign:"middle"}),q){M.setStyle({align:W});var he=M.states.select;he&&(he.x+=M.x,he.y+=M.y)}else{var X=M.getBoundingRect().clone();X.applyTransform(M.getComputedTransform());var we=(M.style.margin||0)+2.1;X.y-=we/2,X.height+=we,r.push({label:M,labelLine:P,position:D,len:R,len2:j,minTurnAngle:F.get("minTurnAngle"),maxSurfaceAngle:F.get("maxSurfaceAngle"),surfaceNormal:new Ne(oe,ye),linePoints:Q,textAlign:W,labelDistance:N,labelAlignTo:H,edgeDistance:$,bleedMargin:G,rect:X,unconstrainedWidth:X.width,labelStyleWidth:M.style.width})}S.setTextConfig({inside:q})}}),!a&&e.get("avoidLabelOverlap")&&FJ(r,n,i,l,u,d,c,f);for(var p=0;p0){for(var c=o.getItemLayout(0),f=1;isNaN(c&&c.startAngle)&&f=a.r0}},t.type="pie",t}(co);const zJ=HJ;function WJ(e,t,r){t=ge(t)&&{coordDimensions:t}||se({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=nL(n,t).dimensions,a=new rL(i,e);return a.initData(n,r),a}var VJ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const GJ=VJ;var UJ=Et(),jJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new GJ(_t(this.getData,this),_t(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return WJ(this,{coordDimensions:["value"],encodeDefaulter:Rt(Nq,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=UJ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=yj(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Hg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(wo);const YJ=jJ;function qJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(bt(o)&&!isNaN(o)&&o<0)})}}}function KJ(e){e.registerChartView(zJ),e.registerSeriesModel(YJ),SX("pie",e.registerAction),e.registerLayout(Rt(RJ,"pie")),e.registerProcessor(kJ("pie")),e.registerProcessor(qJ("pie"))}var XJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(xt);const ZJ=XJ;var ym=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Cn).models[0]},t.type="cartesian2dAxis",t}(xt);Jn(ym,kQ);var zL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},QJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},zL),j0=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},zL),JJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},j0),eee=dt({logBase:10},j0);const tee={category:QJ,value:j0,time:JJ,log:eee};var ree={value:1,category:1,time:1,log:1};function RS(e,t,r,n){O(ree,function(i,a){var o=st(st({},tee[a],!0),n,!0),s=function(l){pe(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+a,c}return u.prototype.mergeDefaultAndTheme=function(c,f){var d=Du(this),h=d?Sh(c):{},v=f.getTheme();st(c,v.get(a+"Axis")),st(c,this.getDefaultOption()),c.type=kS(c),d&&Ds(c,h,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=gm.createByAxisModel(this))},u.prototype.getCategories=function(c){var f=this.option;if(f.type==="category")return c?f.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",kS)}function kS(e){return e.type||(e.data?"category":"value")}var nee=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Re(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Vt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const iee=nee;var _m=["x","y"];function NS(e){return e.type==="interval"||e.type==="time"}var aee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=_m,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!NS(r)||!NS(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var c=(s[0]-o[0])/l,f=(s[1]-o[1])/u,d=o[0]-i[0]*c,h=o[1]-a[0]*f,v=this._transform=[c,0,0,f,d,h];this._invTransform=lh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new et(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return on(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return on(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new et(i,a,o,s)},t}(iee),oee=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(YQ);const see=oee;function bm(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,c=n.getRect(),f=[c.x,c.x+c.width,c.y,c.y+c.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[f[2]-h,f[3]+h]:[f[0]-h,f[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:f[0],u==="x"?v[d[l]]:f[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),xu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function FS(e){return e.get("coordinateSystem")==="cartesian2d"}function BS(e){var t={xAxisModel:null,yAxisModel:null};return O(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Cn).models[0];t[n]=a}),t}var pp=Math.log;function lee(e,t,r){var n=sc.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=yL(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if(e.type==="log"){var d=pp(e.base);u=[pp(u[0])/d,pp(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:c,fixMax:f});var h=n.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(c&&f)v=(g-p)/o;else if(c)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=lp(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=lp(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=kt(g-y),p<0&&u[0]>=0?(p=0,g=kt(y)):g>0&&u[1]<=0&&(g=0,p=-kt(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var uee=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=_m,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Tt(o),u=l.length;if(u){for(var c=[],f=u-1;f>=0;f--){var d=+l[f],h=o[d],v=h.model,p=h.scale;mm(p)&&v.get("alignTicks")&&v.get("interval")==null?c.push(h):(vS(p,v),mm(p)&&(s=h))}c.length&&(s||(s=c.pop(),vS(s.scale,s.model)),O(c,function(g){lee(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};O(n.x,function(o){$S(n,"y",o,a)}),O(n.y,function(o){$S(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ls(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(O(s,function(u){if(!u.model.get(["axisLabel","inside"])){var c=IQ(u);if(c){var f=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[f]-=c[f]+d,u.position==="top"?o.y+=c.height+d:u.position==="left"&&(o.x+=c.width+d)}}}),l()),O(this._coordsList,function(u){u.calcAffineTransform()});function l(){O(s,function(u){var c=u.isHorizontal(),f=c?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(f[d],f[1-d]),cee(u,c?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Ie(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):md(i-Ki)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),zS={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(on(s,s,o),on(l,l,o));var c=se({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new bo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Au(f.shape,f.style.lineWidth),f.anid="line",r.add(f);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Me(d)&&(d=[d,d]),(Me(h)||bt(h))&&(h=[h,h]);var v=FX(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];O([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=R0(d[y],-p/2,-g/2,p,g,c.stroke,!0),b=m.r+m.offset,x=u?l:s;_.attr({rotation:m.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=vee(r,n,t,e),a=gee(r,n,t,e);if(hee(t,a,i),pee(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=LL(Re(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));OL(o)}},axisName:function(e,t,r,n){var i=xu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,f=[a==="start"?u[0]-c*l:a==="end"?u[1]+c*l:(u[0]+u[1])/2,VS(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Ki/180);var v;VS(a)?d=fo.innerTextLayout(e.rotation,h??e.rotation,o):(d=dee(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=xu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new dr({x:f[0],y:f[1],rotation:d.rotation,silent:fo.isLabelSilent(t),style:la(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(p0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=fo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,ft(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function dee(e,t,r,n){var i=x2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return md(i-Ki/2)?(o=l?"bottom":"top",a="center"):md(i-Ki*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iKi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function hee(e,t,r){if(!_L(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],c=r[1],f=r[r.length-1],d=r[r.length-2];n===!1?(Gr(a),Gr(u)):WS(a,o)&&(n?(Gr(o),Gr(c)):(Gr(a),Gr(u))),i===!1?(Gr(s),Gr(f)):WS(l,s)&&(i?(Gr(l),Gr(d)):(Gr(s),Gr(f)))}}function Gr(e){e&&(e.ignore=!0)}function WS(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Yy([]);return qy(i,i,-e.rotation),r.applyTransform(us([],i,e.getLocalTransform())),n.applyTransform(us([],i,t.getLocalTransform())),r.intersect(n)}}function VS(e){return e==="middle"||e==="center"}function WL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function xee(e){var t=Y0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=wm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var f=this.__startIndex;f15)break}}N.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var P=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?pf:0),this._needsManuallyCompositing),c.__builtin__||Gy("ZLevel "+u+" has been used by unkown layer "+c.id),c!==a&&(c.__used=!0,c.__startIndex!==l&&(c.__dirty=!0),c.__startIndex=l,c.incremental?c.__drawIndex=-1:c.__drawIndex=l,r(l),a=c),i.__dirty&Rr&&!i.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(f,d){!f.__used&&f.getElementCount()>0&&(f.__dirty=!0,f.__startIndex=f.__endIndex=f.__drawIndex=0),f.__dirty&&f.__drawIndex<0&&(f.__drawIndex=f.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,O(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=Y0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new nq[a.type](qS(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new dr(qS(r.label));t.add(a),XS(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),XS(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=v0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){ZA(u.event)},onmousedown:_p(this._onHandleDragMove,this,0,0),drift:_p(this._onHandleDragMove,this),ondragend:_p(this._onHandleDragEnd,this)}),n.add(i)),ZS(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,bP(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){KS(this._axisPointerModel,!r&&this._moveAnimation,this._handle,bp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(bp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(bp(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),sm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function KS(e,t,r,n){YL(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Pr(r,n,e):(r.stopAnimation(),r.attr(n)))}function YL(e,t){if(Ie(e)&&Ie(t)){var r=!0;return O(t,function(n,i){r=r&&YL(e[i],n)}),!!r}else return e===t}function XS(e,t){e[t.get(["label","show"])?"show":"hide"]()}function bp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function ZS(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const zee=Hee;function Wee(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function Vee(e,t,r,n,i){var a=r.get("value"),o=qL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=xh(s.get("padding")||0),u=s.getFont(),c=Zy(o,u),f=i.position,d=c.width+l[1]+l[3],h=c.height+l[0]+l[2],v=i.align;v==="right"&&(f[0]-=d),v==="center"&&(f[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(f[1]-=h),p==="middle"&&(f[1]-=h/2),Gee(f,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:f[0],y:f[1],style:la(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function Gee(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function qL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:G0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};O(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,f=u&&u.getDataParams(c);f&&s.seriesData.push(f)}),Me(o)?a=o.replace("{value}",a):Ve(o)&&(a=o(s))}return a}function KL(e,t,r){var n=Su();return qy(n,n,r.rotation),Eg(n,n,r.position),h0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function Uee(e,t,r,n,i,a){var o=VL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),Vee(t,n,i,a,{position:KL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function jee(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function Yee(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var qee=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),c=QS(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=Wee(a),h=Kee[u](s,f,c);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=bm(l.model,i);Uee(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=bm(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=KL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=QS(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,f=[r.x,r.y];f[c]+=n[c],f[c]=Math.min(l[1],f[c]),f[c]=Math.max(l[0],f[c]);var d=(u[1]+u[0])/2,h=[d,d];h[c]=f[c];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:f[0],y:f[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[c]}},t}(zee);function QS(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var Kee={line:function(e,t,r){var n=jee([t,r[0]],[t,r[1]],JS(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:Yee([t-n/2,r[0]],[n,i],JS(e))}}};function JS(e){return e.dim==="x"?0:1}const Xee=qee;var Zee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(xt);const Qee=Zee;var vi=Et(),Jee=O;function XL(e,t,r){if(!Ge.node){var n=t.getZr();vi(n).records||(vi(n).records={}),ete(n,t);var i=vi(n).records[e]||(vi(n).records[e]={});i.handler=r}}function ete(e,t){if(vi(e).initialized)return;vi(e).initialized=!0,r("click",Rt(eC,"click")),r("mousemove",Rt(eC,"mousemove")),r("globalout",rte);function r(n,i){e.on(n,function(a){var o=nte(t);Jee(vi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),tte(o.pendings,t)})}}function tte(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function rte(e,t,r){e.handler("leave",null,r)}function eC(e,t,r,n){t.handler(e,r,n)}function nte(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function Sm(e,t){if(!Ge.node){var r=t.getZr(),n=(vi(r).records||{})[e];n&&(vi(r).records[e]=null)}}var ite=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";XL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){Sm("axisPointer",n)},t.prototype.dispose=function(r,n){Sm("axisPointer",n)},t.type="axisPointer",t}(xi);const ate=ite;function ZL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=nc(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),f=c.dim,d=u.dim,h=f==="x"||f==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Re(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var tC=Et();function ote(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||_t(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Uf(i)&&(i=ZL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Uf(i),u=a.axesInfo,c=s.axesInfo,f=n==="leave"||Uf(i),d={},h={},v={list:[],map:{}},p={showPointer:Rt(lte,h),showTooltip:Rt(ute,v)};O(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);O(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=hte(u,b);if(!f&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&rC(b,C,p,!1,d)}})});var g={};return O(c,function(m,y){var _=m.linkGroup;_&&!h[y]&&O(_.axesInfo,function(b,x){var w=h[x];if(b!==m&&w){var S=w.value;_.mapper&&(S=m.axis.scale.parse(_.mapper(S,nC(b),nC(m)))),g[m.key]=S}})}),O(g,function(m,y){rC(c[y],m,p,!0,d)}),cte(h,c,d),fte(v,i,e,o),dte(c,o,r),d}}function rC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=ste(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&se(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function ste(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return O(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),f,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(c,e,r);d=h.dataIndices,f=h.nestestValue}else{if(d=l.getData().indicesOfNearest(c[0],e,r.type==="category"?.5:null),!d.length)return;f=l.getData().get(c[0],d[0])}if(!(f==null||!isFinite(f))){var v=e-f,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=f,a.length=0),O(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function lte(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function ute(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Fu(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function cte(e,t,r){var n=r.axesInfo=[];O(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function fte(e,t,r,n){if(Uf(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function dte(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=tC(n)[i]||{},o=tC(n)[i]={};O(e,function(u,c){var f=u.axisPointerModel.option;f.status==="show"&&O(f.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];O(a,function(u,c){!o[c]&&l.push(u)}),O(o,function(u,c){!a[c]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function hte(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function nC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Uf(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function QL(e){GL.registerAxisPointerClass("CartesianAxisPointer",Xee),e.registerComponentModel(Qee),e.registerComponentView(ate),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=mee(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},ote)}function vte(e){ua(Iee),ua(QL)}function pte(e,t){var r=xh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Ht({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(xt);const mte=gte;function JL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function eD(e){if(Ge.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var c=u*Math.PI/180,f=o+i,d=f*Math.abs(Math.cos(c))+f*Math.abs(Math.sin(c)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-f)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Cte(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ge.transformSupported?","+q0+n:",left"+n+",top"+n),bte+":"+i}function iC(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ge.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ge.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+q0+":"+o+";":[["top",0],["left",0],[tD,o]]}function Tte(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),O(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Mte(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),c=e.getModel("textStyle"),f=mP(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(Cte(i,r)),a&&n.push("background-color:"+a),O(["width","color","radius"],function(h){var v="border-"+h,p=GE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(Tte(c)),f!=null&&n.push("padding:"+xh(f).join("px ")+"px"),n.join(";")+";"}function aC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&n9(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Ate=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ge.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;aC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,c=a.painter.getViewportRoot();jr(c,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=_te(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=wte+Mte(t,!this._firstShow,this._longHide)+iC(a[0],a[1],!0)+("border-color:"+Lu(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Me(a)&&n.get("trigger")==="item"&&!JL(n)&&(s=Ste(n,i,a)),Me(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ge.node||!i.getDom())){var o=lC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Nte(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var c=Dte;c.x=a.x,c.y=a.y,c.update(),ft(c).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:c},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var f=ZL(a,n),d=f.point[0],h=f.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:f.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(lC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),f=ml([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(f.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Al(i,function(u){if(ft(u).dataIndex!=null)return s=u,!0;if(ft(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=_t(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=ml([n.tooltipOption],a),l=this._renderMode,u=[],c=Ou("section",{blocks:[],noHeader:!0}),f=[],d=new Xv;O(r,function(y){O(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=qL(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Ou("section",{header:w,noHeader:!Vn(w),sortBlocks:!0,blocks:[]});c.blocks.push(S),O(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),P=C.dataIndexInside,A=M.getDataParams(P);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=G0(b.axis,{value:x}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Lu(A.color),l);var T=Sx(M.formatTooltip(P,!0,null)),D=T.frag;if(D){var N=ml([M],a).get("valueFormatter");S.blocks.push(N?se({valueFormatter:N},D):D)}T.text&&f.push(T.text),u.push(A)}})}})}),c.blocks.reverse(),f.reverse();var h=n.position,v=s.get("order"),p=Ex(c,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&f.unshift(p);var g=l==="richText"?` +`];function Ou(e,t){return t.type=e,t}function im(e){return e.type==="section"}function vP(e){return im(e)?NK:FK}function pP(e){if(im(e)){var t=0,r=e.blocks.length,n=r>1||r>0&&!e.noHeader;return O(e.blocks,function(i){var a=pP(i);a>=t&&(t=a+ +(n&&(!a||im(i)&&!i.noHeader)))}),t}return 0}function NK(e,t,r,n){var i=t.noHeader,a=BK(pP(t)),o=[],s=t.blocks||[];bi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ps(u,l)){var c=new bK(u[l],null);s.sort(function(v,p){return c.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}O(s,function(v,p){var g=t.valueFormatter,m=vP(v)(g?se(se({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var f=e.renderMode==="richText"?o.join(a.richText):am(o.join(""),i?r:a.html);if(i)return f;var d=tm(t.header,"ordinal",e.useUTC),h=hP(n,e.renderMode).nameStyle;return e.renderMode==="richText"?gP(e,d,h)+a.richText+f:am('
'+Xr(d)+"
"+f,r)}function FK(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Re(b,function(x,w){return tm(x,ge(h)?h[w]:h,u)})};if(!(a&&o)){var f=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":tm(l,"ordinal",u),h=t.valueType,v=o?[]:c(t.value),p=!s||!a,g=!s&&a,m=hP(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":f)+(a?"":gP(e,d,y))+(o?"":zK(e,v,p,g,_)):am((s?"":f)+(a?"":$K(d,!s,y))+(o?"":HK(v,p,g,_)),r)}}function Ex(e,t,r,n,i,a){if(e){var o=vP(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function BK(e){return{html:RK[e],richText:kK[e]}}function am(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function $K(e,t,r){var n=t?"margin-left:2px":"";return''+Xr(e)+""}function HK(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Re(e,function(o){return Xr(o)}).join("  ")+""}function gP(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function zK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function WK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Lu(n)}function mP(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var Xv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=C2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Eq({color:r,type:t,renderMode:n,markerId:i});return Te(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?O(r,function(a){return se(n,a)}):se(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function VK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=WK(t,r),c,f,d,h;if(o>1||l&&!o){var v=GK(s,t,r,a,u);c=v.inlineValues,f=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=c=Is(i,r,a[0]),f=p.type}else h=c=l?s[0]:s;var g=t0(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Ou("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Ou("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Vn(_),value:c,valueType:f})].concat(d||[])})}function GK(e,t,r,n,i){var a=t.getData(),o=oa(e,function(f,d,h){var v=a.getDimensionInfo(h);return f=f||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?O(n,function(f){c(Is(a,r,f),f)}):O(e,c);function c(f,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Ou("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:f,valueType:h.type})):(s.push(f),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var ki=Et();function qc(e,t){return e.getName(t)||e.getId(t)}var UK="__universalTransitionEnabled",Mh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Zl({count:YK,reset:qK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=ki(this).sourceManager=new OK(this);a.prepareSource();var o=this.getInitialData(r,i);Lx(o,this),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Du(this),a=i?Sh(r):{},o=this.subType;xt.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),Hg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Ds(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Du(this);i&&Ds(this.option,r,i);var a=ki(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);Lx(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!zr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=T0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[qc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[UK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Ie(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return xt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(xt);Jn(Mh,yK);Jn(Mh,T0);L2(Mh,xt);function Px(e){var t=e.name;t0(e)||(e.name=jK(e)||t)}function jK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return O(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function YK(e){return e.model.getRawData().count()}function qK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),KK}function KK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function Lx(e,t){O(UU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Rt(XK,t))})}function XK(e,t){var r=om(e);return r&&r.setOutputEnd((t||this).count()),t}function om(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const wo=Mh;var D0=function(){function e(){this.group=new cn,this.uid=gh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();n0(D0);ch(D0);const xi=D0;function yP(){var e=Et();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var _P=Et(),ZK=yP(),I0=function(){function e(){this.group=new cn,this.uid=gh("viewChart"),this.renderTask=Zl({plan:QK,reset:JK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){g0(this.group,t)},e.markUpdateMethod=function(t,r){_P(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function Dx(e,t,r){e&&Xg(e)&&(t==="emphasis"?Ug:jg)(e,r)}function Ix(e,t,r){var n=nc(e,t),i=t&&t.highlightKey!=null?i7(t.highlightKey):null;n!=null?O(cr(n),function(a){Dx(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){Dx(a,r,i)})}n0(I0);ch(I0);function QK(e){return ZK(e.model)}function JK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&_P(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),eX[l]}var eX={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const co=I0;var Td="\0__throttleOriginMethod",Ox="\0__throttleRate",Rx="\0__throttleType";function O0(e,t,r){var n,i=0,a=0,o=null,s,l,u,c;t=t||0;function f(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?f():o=setTimeout(f,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){c=h},d}function bP(e,t,r,n){var i=e[t];if(i){var a=i[Td]||i,o=i[Rx],s=i[Ox];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=O0(a,r,n==="debounce"),i[Td]=a,i[Rx]=n,i[Ox]=r}return i}}function sm(e,t){var r=e[t];r&&r[Td]&&(r.clear&&r.clear(),e[t]=r[Td])}var kx=Et(),Nx={itemStyle:Mu(DE,!0),lineStyle:Mu(LE,!0)},tX={lineStyle:"stroke",itemStyle:"fill"};function wP(e,t){var r=e.visualStyleMapper||Nx[t];return r||(console.warn("Unknown style type '"+t+"'."),Nx.itemStyle)}function xP(e,t){var r=e.visualDrawType||tX[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var rX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=wP(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=xP(e,n),u=o[l],c=Ve(u)?u:null,f=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||f){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ve(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||Ve(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=se({},o);g[l]=c(p),h.setItemVisual(v,"style",g)}}}},ul=new rr,nX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=wP(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){ul.option=l[n];var u=i(ul),c=o.ensureUniqueItemVisual(s,"style");se(c,u),ul.option.decal&&(o.setItemVisual(s,"decal",ul.option.decal),ul.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},iX={performRawSeries:!0,overallReset:function(e){var t=Ue();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),kx(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=kx(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=xP(r,s);a.each(function(u){var c=a.getRawIndex(u);i[c]=u}),n.each(function(u){var c=i[u],f=a.getItemVisual(c,"colorFromPalette");if(f){var d=a.ensureUniqueItemVisual(c,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Kc=Math.PI;function aX(e,t){t=t||{},dt(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new cn,n=new Ht({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new dr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Ht({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new c0({shape:{startAngle:-Kc/2,endAngle:-Kc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Kc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Kc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),a.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var oX=function(){function e(t,r,n,i){this._stageTaskMap=Ue(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ue();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;O(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";bi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;O(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),f=c.seriesTaskMap,d=c.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else f&&f.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ue(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,i).each(c);function c(f){var d=f.uid,h=s.set(d,o&&o.get(d)||Zl({plan:fX,reset:dX,count:vX}));h.context={model:f,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(f,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||Zl({reset:sX});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ue(),u=t.seriesType,c=t.getTargetSeries,f=!0,d=!1,h="";bi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):c?c(n,i).each(v):(f=!1,O(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,Zl({reset:lX,onDirty:cX})));m.context={model:p,overallProgress:f},m.agent=o,m.__block=f,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ve(t)&&(t={overallReset:t,seriesType:pX(t)}),t.uid=gh("stageHandler"),r&&(t.visualType=r),t},e}();function sX(e){e.overallReset(e.ecModel,e.api,e.payload)}function lX(e){return e.overallProgress&&uX}function uX(){this.agent.dirty(),this.getDownstream().dirty()}function cX(){this.agent&&this.agent.dirty()}function fX(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function dX(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=cr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Re(t,function(r,n){return SP(n)}):hX}var hX=SP(0);function SP(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(n[u]=l,c=!0),c||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return c(l,o,"mainType")&&c(l,o,"subType")&&c(l,o,"index","componentIndex")&&c(l,o,"name")&&c(l,o,"id")&&c(u,a,"name")&&c(u,a,"dataIndex")&&c(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function c(f,d,h,v){return f[h]==null||d[v||h]===f[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),lm=["symbol","symbolSize","symbolRotate","symbolOffset"],Hx=lm.concat(["symbolKeepAspect"]),_X={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&to(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function cm(e,t,r){for(var n=t.type==="radial"?$X(e,t,r):BX(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:bt(e)?[e]:ge(e)?e:null}function EP(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&zX(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Re(r,function(a){return a/i}),n/=i)}return[r,n]}var WX=new _o(!0);function Ad(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function zx(e){return typeof e=="string"&&e!=="none"}function Ed(e){var t=e.fill;return t!=null&&t!=="none"}function Wx(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function Vx(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function fm(e,t,r){var n=D2(t.image,t.__image,r);if(fh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*jU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function VX(e,t,r,n){var i,a=Ad(r),o=Ed(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var c=t.path||WX,f=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=f?cm(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=f?cm(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=f||!t.__canvasFillPattern?fm(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(x=f||!t.__canvasStrokePattern?fm(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();c.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=EP(t),C=i[0],M=i[1]);var P=!0;(u||f&Ko)&&(c.setDPR(e.dpr),l?c.setContext(null):(c.setContext(e),P=!1),c.reset(),t.buildPath(c,t.shape,n),c.toStatic(),t.pathUpdated()),P&&c.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&Vx(e,r),o&&Wx(e,r)):(o&&Wx(e,r),a&&Vx(e,r))),C&&e.setLineDash([])}function GX(e,t,r){var n=t.__image=D2(r.image,t.__image,t,t.onload);if(!(!n||!fh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,f=o-u,d=s-c;e.drawImage(n,u,c,f,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function UX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||yo,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=EP(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Ad(r)&&e.strokeText(i,r.x,r.y),Ed(r)&&e.fillText(i,r.x,r.y)):(Ed(r)&&e.fillText(i,r.x,r.y),Ad(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var Gx=["shadowBlur","shadowOffsetX","shadowOffsetY"],Ux=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function PP(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){wr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?lo.opacity:o}(n||t.blend!==r.blend)&&(a||(wr(e,i),a=!0),e.globalCompositeOperation=t.blend||lo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Qt]){if(this._disposed){this.id;return}var a,o,s;if(Ie(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Qt]=!0,!this._model||n){var l=new tK(this._api),u=this._theme,c=this._model=new JE;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},vm);var f={seriesTransition:s,optionChanged:!0};if(i)this[gr]={silent:a,updateParams:f},this[Qt]=!1,this.getZr().wakeUp();else{try{Go(this),Ni.update.call(this,null,f)}catch(d){throw this[gr]=null,this[Qt]=!1,d}this._ssr||this._zr.flush(),this[gr]=null,this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ge.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ge.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return O(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;O(n,function(l){i.eachComponent({mainType:l},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(a.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return O(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(oS[i]){var l=s,u=s,c=-s,f=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();O(Jl,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Qe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),c=o(w.right,c),f=o(w.bottom,f),d.push({dom:x,left:w.left,top:w.top})}}),l*=h,u*=h,c*=h,f*=h;var v=c-l,p=f-u,g=Mo.createCanvas(),m=uw(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return O(d,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Ht({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),O(d,function(_){var b=new zs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return tp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return tp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Cv(i,r);return O(o,function(s,l){l.indexOf("Models")>=0&&O(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)a=a||!!c.containPoint(n);else if(l==="seriesModels"){var f=this._chartsMap[u.__viewId];f&&f.containPoint&&(a=a||f.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Cv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?wX(s,l,n):xX(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;O(mZ,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Al(s,function(v){var p=ft(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=se({},p.eventData),!0},!0),l){var c=l.componentType,f=l.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",f=l.seriesIndex);var d=c&&f!=null&&o.getComponent(c,f),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),O(Ql,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),O(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),CX(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&E2(this.getDom(),F0,"");var n=this,i=n._api,a=n._model;O(n._componentsViews,function(o){o.dispose(a,i)}),O(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Jl[n.id]},t.prototype.resize=function(r){if(!this[Qt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[gr]&&(a==null&&(a=this[gr].silent),i=!0,this[gr]=null),this[Qt]=!0;try{i&&Go(this),Ni.update.call(this,{type:"resize",animation:se({duration:0},r&&r.animation)})}catch(o){throw this[Qt]=!1,o}this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Ie(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!pm[r]){var i=pm[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=se({},r);return n.type=Ql[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Ie(n)||(n={silent:!!n}),!!Pd[r.type]&&this._model){if(this[Qt]){this._pendingActions.push(r);return}var i=n.silent;np.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ge.browser.weChat&&this._throttledZrFlush(),cl.call(this,i),fl.call(this,i)}},t.prototype.updateLabelLayout=function(){yn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Go=function(f){var d=f._scheduler;d.restorePipelines(f._model),d.prepareStageTasks(),ep(f,!0),ep(f,!1),d.plan()},ep=function(f,d){for(var h=f._model,v=f._scheduler,p=d?f._componentsViews:f._chartsViews,g=d?f._componentsMap:f._chartsMap,m=f._zr,y=f._api,_=0;_d.get("hoverLayerThreshold")&&!Ge.node&&!Ge.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=f._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(f,d){var h=f.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(f,d){if(!f.preventAutoZ){var h=f.get("z")||0,v=f.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(f,d,h,v){var p=f.getTextContent(),g=f.getTextGuideLine(),m=f.isGroup;if(m)for(var y=f.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(fs(m))return;if(m instanceof ht&&a7(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}iS=function(f){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return f._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return f._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Ug(v,p),Vr(f)},h.prototype.leaveEmphasis=function(v,p){jg(v,p),Vr(f)},h.prototype.enterBlur=function(v){KY(v),Vr(f)},h.prototype.leaveBlur=function(v){q2(v),Vr(f)},h.prototype.enterSelect=function(v){K2(v),Vr(f)},h.prototype.leaveSelect=function(v){X2(v),Vr(f)},h.prototype.getModel=function(){return f.getModel()},h.prototype.getViewOfComponentModel=function(v){return f.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return f.getViewOfSeriesModel(v)},h}(eP))(f)},GP=function(f){function d(h,v){for(var p=0;p=0)){sS.push(r);var a=MP.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function XP(e,t){pm[e]=t}function CZ(e,t,r){var n=rZ("registerMap");n&&n(e,t,r)}var TZ=AK;Po(k0,rX);Po(Ah,nX);Po(Ah,iX);Po(k0,_X);Po(Ah,bX);Po(BP,JX);qP(rP);KP(aZ,uK);XP("default",aX);Gs({type:uo,event:uo,update:uo},Tr);Gs({type:$f,event:$f,update:$f},Tr);Gs({type:jl,event:jl,update:jl},Tr);Gs({type:Hf,event:Hf,update:Hf},Tr);Gs({type:Yl,event:Yl,update:Yl},Tr);YP("light",gX);YP("dark",mX);function dl(e){return e==null?0:e.length||1}function lS(e){return e}var MZ=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||lS,this._newKeyGetter=i||lS,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var c=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(c,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(f===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(f===1&&d===1)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;s30}var hl=Ie,Fi=Re,kZ=typeof Int32Array>"u"?Array:Int32Array,NZ="e\0\0",uS=-1,FZ=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],BZ=["_approximateExtent"],cS,tf,vl,pl,op,rf,sp,$Z=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;QP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},c=0;c=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===dn;if(l&&!i.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():hl(a)&&(a=se({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,hl(r)?se(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){hl(t)?se(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?se(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;$Y(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){O(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Fi(this.dimensions,this._getDimInfo,this),this.hostModel)),op(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ve(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Uy(arguments)))})},e.internalField=function(){cS=function(t){var r=t._invertedIndicesMap;O(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new kZ(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),i[r]=l}}}(),e}();const rL=$Z;function nL(e,t){A0(e)||(e=E0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ue(),a=[],o=zZ(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&tL(o),l=n===e.dimensionsDefine,u=l?eL(e):JP(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var f=Ue(c),d=new cP(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function zZ(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return O(t,function(a){var o;Ie(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function WZ(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var VZ=function(){function e(t){this.coordSysDims=[],this.axisMap=Ue(),this.categoryAxisMap=Ue(),this.coordSysName=t}return e}();function GZ(e){var t=e.get("coordinateSystem"),r=new VZ(t),n=UZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var UZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Cn).models[0],a=e.getReferringComponents("yAxis",Cn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Uo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Uo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Cn).models[0];t.coordSysDims=["single"],r.set("single",i),Uo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Cn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Uo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Uo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();O(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),c=o[l];r.set(c,u),Uo(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Uo(e){return e.get("type")==="category"}function jZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;YZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,f,d;if(O(a,function(y,_){Te(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!c&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(c=y))}),c&&!n&&!u&&(n=!0),c){f="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,v=c.type,p=0;O(a,function(y){y.coordDim===h&&p++});var g={name:f,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(f,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:f}}function YZ(e){return!QP(e.schema)}function iL(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function qZ(e,t){return iL(e,t)?e.getCalculationInfo("stackResultDimension"):t}function KZ(e,t){var r=e.get("coordinateSystem"),n=M0.get(r),i;return t&&t.coordSysDims&&(i=Re(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=LZ(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function XZ(e,t,r){var n,i;return r&&O(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function aL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=E0(e)):(i=n.getSource(),a=i.sourceFormat===dn);var o=GZ(t),s=KZ(t,o),l=r.useEncodeDefaulter,u=Ve(l)?l:l?Rt(kq,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},f=nL(i,c),d=XZ(f.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(f),v=jZ(t,{schema:f,store:h}),p=new rL(f,t);p.setCalculationInfo(v);var g=d!=null&&ZZ(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function ZZ(e){if(e.sourceFormat===dn){var t=QZ(e.data||[]);return!ge(rc(t))}}function QZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();ch(oL);const Ei=oL;var JZ=0,eQ=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++JZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Re(n,tQ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Te(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ue(this.categories))},e}();function tQ(e){return Ie(e)&&e.value!=null?e.value:e+""}const gm=eQ;function mm(e){return e.type==="interval"||e.type==="log"}function rQ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=S2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=sL(o),l=i.niceTickExtent=[kt(Math.ceil(e[0]/o)*o,s),kt(Math.floor(e[1]/o)*o,s)];return nQ(l,e),i}function lp(e){var t=Math.pow(10,e0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,kt(r*t)}function sL(e){return hi(e)+2}function fS(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function nQ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),fS(e,0,t),fS(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function Eh(e,t){return e>=t[0]&&e<=t[1]}function Ph(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function Lh(e,t){return e*(t[1]-t[0])+t[0]}var lL=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new gm({})),ge(i)&&(i=new gm({categories:Re(i,function(a){return Ie(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Te(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),Eh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(Lh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Ei);Ei.registerClass(lL);const uL=lL;var Ba=kt,cL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return Eh(r,this._extent)},t.prototype.normalize=function(r){return Ph(r,this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=sL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var c=s.length?s[s.length-1].value:a[1];return i[1]>c&&(r?s.push({value:Ba(c+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function hL(e){var t=oQ(e),r=[];return O(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],c=Math.abs(o[1]-o[0]),f=a.scale.getExtent(),d=Math.abs(f[1]-f[0]);s=u?c/d*u:c}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=gt(n.get("barWidth"),s),p=gt(n.get("barMaxWidth"),s),g=gt(n.get("barMinWidth")||(pL(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:W0(a),stackId:z0(n)})}),sQ(r)}function sQ(e){var t={};O(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var c=n.barWidth;c&&!l[u].width&&(l[u].width=c,c=Math.min(s.remainedWidth,c),s.remainedWidth-=c);var f=n.barMaxWidth;f&&(l[u].maxWidth=f);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return O(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Tt(a).length;s=Math.max(35-l*4,15)+"%"}var u=gt(s,o),c=gt(n.gap,1),f=n.remainedWidth,d=n.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),O(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,f-=b+c*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,f-=b+c*b,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var v=0,p;O(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+c)}),p&&(v-=p.width*c);var g=-v/2;O(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+c)})}),r}function lQ(e,t,r){if(e&&t){var n=e[W0(t)];return n!=null&&r!=null?n[z0(r)]:n}}function uQ(e,t){var r=dL(e,t),n=hL(r);O(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=z0(i),u=n[W0(s)][l],c=u.offset,f=u.width;a.setLayout({bandWidth:u.bandWidth,offset:c,size:f})})}function cQ(e){return{seriesType:e,plan:yP(),reset:function(t){if(vL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),c=r.getCalculationInfo("stackResultDimension"),f=iL(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=fQ(i,a),v=pL(t),p=t.get("barMinHeight")||0,g=c&&r.getDimensionIndex(c),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&up(x*3),S=v&&l&&up(x*3),C=v&&up(x),M=n.master.getRect(),P=d?M.width:M.height,A,T=b.getStore(),D=0;(A=_.next())!=null;){var N=T.get(f?g:o,A),H=T.get(s,A),$=h,G=void 0;f&&(G=+N-T.get(o,A));var F=void 0,R=void 0,j=void 0,re=void 0;if(d){var oe=n.dataToPoint([N,H]);if(f){var ye=n.dataToPoint([G,H]);$=ye[0]}F=$,R=oe[1]+y,j=oe[0]-$,re=m,Math.abs(j)>>1;e[i][1]i&&(this._approxInterval=i);var s=nf.length,l=Math.min(dQ(nf,this._approxInterval,0,s),s-1);this._interval=nf[l][1],this._minLevelUnit=nf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return bt(r)?r:+wi(r)},t.prototype.contain=function(r){return Eh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Ph(this.parse(r),this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.type="time",t}(sc),nf=[["second",b0],["minute",w0],["hour",Kl],["quarter-day",Kl*6],["half-day",Kl*12],["day",en*1.2],["half-week",en*3.5],["week",en*7],["month",en*31],["quarter",en*95],["half-year",ex/2],["year",ex]];function hQ(e,t,r,n){var i=wi(t),a=wi(r),o=function(v){return rx(i,v,n)===rx(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},c=function(){return u()&&o("hour")},f=function(){return c()&&o("minute")},d=function(){return f()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return h()}}function vQ(e,t){return e/=en,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function pQ(e){var t=30*en;return e/=t,e>6?6:e>3?3:e>2?2:1}function gQ(e){return e/=Kl,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function dS(e,t){return e/=t?w0:b0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function mQ(e){return S2(e,!0)}function yQ(e,t,r){var n=new Date(e);switch(ds(t)){case"year":case"month":n[FE(r)](0);case"day":n[BE(r)](1);case"hour":n[$E(r)](0);case"minute":n[HE(r)](0);case"second":n[zE(r)](0),n[WE(r)](0)}return n.getTime()}function _Q(e,t,r,n){var i=1e4,a=kE,o=0;function s(P,A,T,D,N,H,$){for(var G=new Date(A),F=A,R=G[D]();F1&&H===0&&T.unshift({value:T[0].value-F})}}for(var H=0;H=n[0]&&y<=n[1]&&f++)}var _=(n[1]-n[0])/t;if(f>_*1.5&&d>_/1.5||(u.push(g),f>_||e===a[h]))break}c=[]}}}for(var b=Vt(Re(u,function(P){return Vt(P,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(P){return P.length>0}),x=[],w=b.length-1,h=0;h0;)a*=10;var s=[kt(SQ(n[0]/a)*a),kt(xQ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){eu.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=vn(r)/vn(this.base),Eh(r,this._extent)},t.prototype.normalize=function(r){return r=vn(r)/vn(this.base),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Lh(r,this._extent),af(this.base,r)},t.type="log",t}(Ei),mL=V0.prototype;mL.getMinorTicks=eu.getMinorTicks;mL.getLabel=eu.getLabel;function of(e,t){return wQ(e,hi(t))}Ei.registerClass(V0);const CQ=V0;var TQ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(t,r){this[AQ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=MQ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),MQ={min:"_determinedMin",max:"_determinedMax"},AQ={min:"_dataMin",max:"_dataMax"};function EQ(e,t,r){var n=e.rawExtentInfo;return n||(n=new TQ(e,t,r),e.rawExtentInfo=n,n)}function sf(e,t){return t==null?null:cd(t)?NaN:e.parse(t)}function yL(e,t){var r=e.type,n=EQ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=dL("bar",o),l=!1;if(O(s,function(f){l=l||f.getBaseAxis()===t.axis}),l){var u=hL(s),c=PQ(i,a,t,u);i=c.min,a=c.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function PQ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=lQ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;O(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;O(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=t-e,f=1-(s+l)/a,d=c/f-c;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function vS(e,t){var r=t,n=yL(e,r),i=n.extent,a=r.get("splitNumber");e instanceof CQ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function LQ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new uL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new bQ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Ei.getClass(t)||sc)}}function DQ(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function lc(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Te(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ve(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(G0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function G0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function IQ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof uL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=lc(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;c=0||(pS.push(e),Ve(e)&&(e={install:e}),e.install(NQ))}var Nu=Et();function FQ(e){return e.type==="category"?$Q(e):zQ(e)}function BQ(e,t){return e.type==="category"?HQ(e,t):{ticks:Re(e.scale.getTicks(),function(r){return r.value})}}function $Q(e){var t=e.getLabelModel(),r=bL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function bL(e,t){var r=wL(e,"labels"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;return Ve(n)?a=TL(e,n):(o=n==="auto"?WQ(e):n,a=CL(e,o)),SL(r,n,{labels:a,labelCategoryInterval:o})}function HQ(e,t){var r=wL(e,"ticks"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ve(n))a=TL(e,n,!0);else if(n==="auto"){var s=bL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Re(s.labels,function(l){return l.tickValue})}else o=n,a=CL(e,o,!0);return SL(r,n,{ticks:a,tickCategoryInterval:o})}function zQ(e){var t=e.scale.getTicks(),r=lc(e);return{labels:Re(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function wL(e,t){return Nu(e)[t]||(Nu(e)[t]=[])}function xL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(n)),f=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Zy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/c,y=h/f;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Nu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function GQ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function CL(e,t,r){var n=lc(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],c=i.count();u!==0&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=_L(e),d=o.get("showMinLabel")||f,h=o.get("showMaxLabel")||f;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function TL(e,t,r){var n=e.scale,i=lc(e),a=[];return O(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var gS=[0,1],UQ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return mj(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count())),$g(t,gS,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count()));var a=$g(t,n,gS,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=BQ(this,r),i=n.ticks,a=Re(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return jQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Re(n,function(a){return Re(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return FQ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return VQ(this)},e}();function mS(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function jQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;O(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();s=1+c[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var f=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=kt(h),v=kt(v),f?h>v:hi&&(i+=gl);var h=Math.atan2(s,o);if(h<0&&(h+=gl),h>=n&&h<=i||h+gl>=n&&h+gl<=i)return l[0]=c,l[1]=f,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function Dd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,c=r-e,f=n-t,d=Math.sqrt(c*c+f*f);c/=d,f/=d;var h=l*c+u*f,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*c,g=o[1]=t+v*f;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function ML(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),c=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(c-a)*(c-a))}var _n=[];function ZQ(e,t,r){var n=ML(t.x,t.y,t.width,t.height,e.x,e.y,_n);return r.set(_n[0],_n[1]),n}function QQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,c=t.data,f=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),ke.sub(Un,Tn,ut),ke.sub(zn,Pt,ut);var r=Un.len(),n=zn.len();if(!(r<.001||n<.001)){Un.scale(1/r),zn.scale(1/n);var i=Un.dot(zn),a=Math.cos(t);if(a1&&ke.copy(sr,Pt),sr.toArray(e[1])}}}}function JQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),ke.sub(Un,ut,Tn),ke.sub(zn,Pt,ut);var n=Un.len(),i=zn.len();if(!(n<.001||i<.001)){Un.scale(1/n),zn.scale(1/i);var a=Un.dot(t),o=Math.cos(r);if(a=l)ke.copy(sr,Pt);else{sr.scaleAndAdd(zn,s/Math.tan(Math.PI/2-c));var f=Pt.x!==ut.x?(sr.x-ut.x)/(Pt.x-ut.x):(sr.y-ut.y)/(Pt.y-ut.y);if(isNaN(f))return;f<0?ke.copy(sr,ut):f>1&&ke.copy(sr,Pt)}sr.toArray(e[1])}}}}function _S(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function eJ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Cg(n[0],n[1]),a=Cg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=nv([],n[1],n[0],o/i),l=nv([],n[1],n[2],o/a),u=nv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var c=1;c0&&a&&x(-c/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&S(-m),y<0&&S(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,M,P){if(C<0){var A=Math.min(M,-C);if(A>0){x(A*P,0,o);var T=A+C;T<0&&w(-T*P,1)}else w(-C*P,1)}}function x(C,M,P){C!==0&&(u=!0);for(var A=M;A0)for(var T=0;T0;T--){var $=P[T-1]*H;x(-$,T,o)}}}function S(C){var M=C<0?-1:1;C=Math.abs(C);for(var P=Math.ceil(C/(o-1)),A=0;A0?x(P,0,A+1):x(-P,o-A-1,o),C-=P,C<=0)return}return u}function tJ(e,t,r,n){return DL(e,"x","width",t,r,n)}function IL(e,t,r,n){return DL(e,"y","height",t,r,n)}function OL(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new et(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Pr(n,u,r,l)}else if(n.attr(u),!oc(n).valueAnimation){var f=qe(n.style.opacity,1);n.style.opacity=0,Hr(n,{style:{opacity:f}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};lf(h,u,uf),lf(h,n.states.select,uf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};lf(v,u,uf),lf(v,n.states.emphasis,uf)}lq(n,l,c,r,r)}if(i&&!i.ignore&&!i.invisible){var a=iJ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Pr(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Hr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const oJ=aJ;var fp=Et();function sJ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=fp(r).labelManager;i||(i=fp(r).labelManager=new oJ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=fp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function lJ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Is(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function cJ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,c=r.get(["lineStyle","width"])||2;o-=c/2,s-=c/2,l+=c,u+=c,o=Math.floor(o),l=Math.round(l);var f=new Ht({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(f.shape.x+=l),f.shape.width=0):(v||(f.shape.y+=u),f.shape.height=0);var p=Ve(i)?function(g){i(g,f)}:null;Hr(f,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return f}function fJ(e,t,r){var n=e.getArea(),i=kt(n.r0,1),a=kt(n.r,1),o=new Ao({shape:{cx:kt(e.cx,1),cy:kt(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Hr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function dJ(e,t,r,n,i){if(e){if(e.type==="polar")return fJ(e,t,r);if(e.type==="cartesian2d")return cJ(e,t,r,n,i)}else return null;return null}function RL(e,t){return e.type===t}var hJ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),c=l.getExtent(),f=n.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(f||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Te(a)?v=hJ[a]:Ve(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,vJ))}}}}}var kL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return aL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)O(a.getAxes(),function(f,d){if(f.type==="category"){var h=f.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=f.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;o[c]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(wo);wo.registerClass(kL);const wS=kL;var gJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return aL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=IE(wS.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(wS);const mJ=gJ;var yJ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),_J=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new yJ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,c=n.startAngle,f=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?f-cMath.PI/2&&cs)return!0;s=f}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){wd(a,r,ft(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(co),SS={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=dp(t.x,e.x),s=hp(t.x+t.width,i),l=dp(t.y,e.y),u=hp(t.y+t.height,a),c=si?s:o,t.y=f&&l>a?u:l,t.width=c?0:s-o,t.height=f?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||f},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=hp(t.r,e.r),a=dp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},CS={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Ht({shape:se({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var c=u.shape,f=i?"height":"width";c[f]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?xS:Ao,c=new u({shape:n,z2:1});c.name="item";var f=NL(i);if(c.calculateTextPosition=bJ(f,{isRoundCap:u===xS}),a){var d=c.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Pr:Hr)(c,{shape:v},a)}return c}};function CJ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function TS(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Pr:Hr)(r,{shape:l},t,i,null);var c=t?e.baseAxis.model:null;(o?Pr:Hr)(r,{shape:u},c,i)}function MS(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function AJ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function NL(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function ES(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var c=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",f=PE(n);m0(e,f,{labelFetcher:a,labelDataIndex:r,defaultText:lJ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,wJ(e,h==="outside"?c:h,NL(o),n.get(["label","rotate"]))}sq(d,f,a.getRawValue(r),function(p){return uJ(t,p)});var v=n.getModel(["emphasis"]);J2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),eE(e,n),AJ(i)&&(e.style.fill="none",e.style.stroke="none",O(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function EJ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var PJ=function(){function e(){}return e}(),PS=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new PJ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,c=0;c=0?r:null},30,!1);function LJ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,f=a.length/3;c=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[c]}return-1}function FL(e,t,r){if(RL(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function DJ(e,t,r){var n=e.type==="polar"?Ao:Ht;return new n({shape:FL(t,r,e),silent:!0,z2:0})}const IJ=SJ;function OJ(e){e.registerChartView(IJ),e.registerSeriesModel(mJ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Rt(uQ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,cQ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,pJ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var hf=Math.PI*2,IS=Math.PI/180;function BL(e,t){return Ls(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function $L(e,t){var r=BL(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=gt(r.width,t.getWidth()),o=gt(r.height,t.getHeight()),s=Math.min(a,o),l=gt(i[0],s/2),u=gt(i[1],s/2),c,f,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);c=h[0]||0,f=h[1]||0}else ge(n)||(n=[n,n]),c=gt(n[0],a)+r.x,f=gt(n[1],o)+r.y;return{cx:c,cy:f,r0:l,r:u}}function RJ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=BL(n,r),s=$L(n,r),l=s.cx,u=s.cy,c=s.r,f=s.r0,d=-n.get("startAngle")*IS,h=n.get("minAngle")*IS,v=0;i.each(a,function(P){!isNaN(P)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=hf,w=0,S=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:c}),i.each(a,function(P,A){var T;if(isNaN(P)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:f,r:y?NaN:c});return}y!=="area"?T=p===0&&_?g:P*g:T=hf/v,Tr?m:g,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-f)/2}}}function vp(e){return e.position==="center"}function BJ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*NJ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,f=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,M=S.getTextContent(),P=S.getTextGuideLine(),A=t.getItemModel(w),T=A.getModel("label"),D=T.get("position")||A.get(["emphasis","label","position"]),N=T.get("distanceToLabelLine"),H=T.get("alignTo"),$=gt(T.get("edgeDistance"),u),G=T.get("bleedMargin"),F=A.getModel("labelLine"),R=F.get("length");R=gt(R,u);var j=F.get("length2");if(j=gt(j,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":oe>0?"left":"right"}var U=Math.PI,K=0,ne=T.get("rotate");if(bt(ne))K=ne*(U/180);else if(D==="center")K=0;else if(ne==="radial"||ne===!0){var fe=oe<0?-re+U:-re;K=fe}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(oe,ye);te<0&&(te=U*2+te);var ie=ye>0;ie&&(te=U+te),K=te-U}if(a=!!K,M.x=Ae,M.y=V,M.rotation=K,M.setStyle({verticalAlign:"middle"}),q){M.setStyle({align:W});var he=M.states.select;he&&(he.x+=M.x,he.y+=M.y)}else{var X=M.getBoundingRect().clone();X.applyTransform(M.getComputedTransform());var we=(M.style.margin||0)+2.1;X.y-=we/2,X.height+=we,r.push({label:M,labelLine:P,position:D,len:R,len2:j,minTurnAngle:F.get("minTurnAngle"),maxSurfaceAngle:F.get("maxSurfaceAngle"),surfaceNormal:new ke(oe,ye),linePoints:Q,textAlign:W,labelDistance:N,labelAlignTo:H,edgeDistance:$,bleedMargin:G,rect:X,unconstrainedWidth:X.width,labelStyleWidth:M.style.width})}S.setTextConfig({inside:q})}}),!a&&e.get("avoidLabelOverlap")&&FJ(r,n,i,l,u,d,c,f);for(var p=0;p0){for(var c=o.getItemLayout(0),f=1;isNaN(c&&c.startAngle)&&f=a.r0}},t.type="pie",t}(co);const zJ=HJ;function WJ(e,t,r){t=ge(t)&&{coordDimensions:t}||se({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=nL(n,t).dimensions,a=new rL(i,e);return a.initData(n,r),a}var VJ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const GJ=VJ;var UJ=Et(),jJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new GJ(_t(this.getData,this),_t(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return WJ(this,{coordDimensions:["value"],encodeDefaulter:Rt(Nq,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=UJ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=yj(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Hg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(wo);const YJ=jJ;function qJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(bt(o)&&!isNaN(o)&&o<0)})}}}function KJ(e){e.registerChartView(zJ),e.registerSeriesModel(YJ),SX("pie",e.registerAction),e.registerLayout(Rt(RJ,"pie")),e.registerProcessor(kJ("pie")),e.registerProcessor(qJ("pie"))}var XJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(xt);const ZJ=XJ;var ym=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Cn).models[0]},t.type="cartesian2dAxis",t}(xt);Jn(ym,kQ);var zL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},QJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},zL),j0=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},zL),JJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},j0),eee=dt({logBase:10},j0);const tee={category:QJ,value:j0,time:JJ,log:eee};var ree={value:1,category:1,time:1,log:1};function RS(e,t,r,n){O(ree,function(i,a){var o=st(st({},tee[a],!0),n,!0),s=function(l){pe(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+a,c}return u.prototype.mergeDefaultAndTheme=function(c,f){var d=Du(this),h=d?Sh(c):{},v=f.getTheme();st(c,v.get(a+"Axis")),st(c,this.getDefaultOption()),c.type=kS(c),d&&Ds(c,h,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=gm.createByAxisModel(this))},u.prototype.getCategories=function(c){var f=this.option;if(f.type==="category")return c?f.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",kS)}function kS(e){return e.type||(e.data?"category":"value")}var nee=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Re(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Vt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const iee=nee;var _m=["x","y"];function NS(e){return e.type==="interval"||e.type==="time"}var aee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=_m,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!NS(r)||!NS(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var c=(s[0]-o[0])/l,f=(s[1]-o[1])/u,d=o[0]-i[0]*c,h=o[1]-a[0]*f,v=this._transform=[c,0,0,f,d,h];this._invTransform=lh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new et(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return on(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return on(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new et(i,a,o,s)},t}(iee),oee=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(YQ);const see=oee;function bm(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,c=n.getRect(),f=[c.x,c.x+c.width,c.y,c.y+c.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[f[2]-h,f[3]+h]:[f[0]-h,f[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:f[0],u==="x"?v[d[l]]:f[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),xu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function FS(e){return e.get("coordinateSystem")==="cartesian2d"}function BS(e){var t={xAxisModel:null,yAxisModel:null};return O(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Cn).models[0];t[n]=a}),t}var pp=Math.log;function lee(e,t,r){var n=sc.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=yL(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if(e.type==="log"){var d=pp(e.base);u=[pp(u[0])/d,pp(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:c,fixMax:f});var h=n.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(c&&f)v=(g-p)/o;else if(c)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=lp(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=lp(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=kt(g-y),p<0&&u[0]>=0?(p=0,g=kt(y)):g>0&&u[1]<=0&&(g=0,p=-kt(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var uee=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=_m,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Tt(o),u=l.length;if(u){for(var c=[],f=u-1;f>=0;f--){var d=+l[f],h=o[d],v=h.model,p=h.scale;mm(p)&&v.get("alignTicks")&&v.get("interval")==null?c.push(h):(vS(p,v),mm(p)&&(s=h))}c.length&&(s||(s=c.pop(),vS(s.scale,s.model)),O(c,function(g){lee(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};O(n.x,function(o){$S(n,"y",o,a)}),O(n.y,function(o){$S(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ls(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(O(s,function(u){if(!u.model.get(["axisLabel","inside"])){var c=IQ(u);if(c){var f=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[f]-=c[f]+d,u.position==="top"?o.y+=c.height+d:u.position==="left"&&(o.x+=c.width+d)}}}),l()),O(this._coordsList,function(u){u.calcAffineTransform()});function l(){O(s,function(u){var c=u.isHorizontal(),f=c?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(f[d],f[1-d]),cee(u,c?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Ie(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):md(i-Ki)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),zS={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(on(s,s,o),on(l,l,o));var c=se({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new bo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Au(f.shape,f.style.lineWidth),f.anid="line",r.add(f);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Te(d)&&(d=[d,d]),(Te(h)||bt(h))&&(h=[h,h]);var v=FX(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];O([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=R0(d[y],-p/2,-g/2,p,g,c.stroke,!0),b=m.r+m.offset,x=u?l:s;_.attr({rotation:m.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=vee(r,n,t,e),a=gee(r,n,t,e);if(hee(t,a,i),pee(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=LL(Re(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));OL(o)}},axisName:function(e,t,r,n){var i=xu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,f=[a==="start"?u[0]-c*l:a==="end"?u[1]+c*l:(u[0]+u[1])/2,VS(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Ki/180);var v;VS(a)?d=fo.innerTextLayout(e.rotation,h??e.rotation,o):(d=dee(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=xu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new dr({x:f[0],y:f[1],rotation:d.rotation,silent:fo.isLabelSilent(t),style:la(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(p0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=fo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,ft(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function dee(e,t,r,n){var i=x2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return md(i-Ki/2)?(o=l?"bottom":"top",a="center"):md(i-Ki*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iKi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function hee(e,t,r){if(!_L(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],c=r[1],f=r[r.length-1],d=r[r.length-2];n===!1?(Gr(a),Gr(u)):WS(a,o)&&(n?(Gr(o),Gr(c)):(Gr(a),Gr(u))),i===!1?(Gr(s),Gr(f)):WS(l,s)&&(i?(Gr(l),Gr(d)):(Gr(s),Gr(f)))}}function Gr(e){e&&(e.ignore=!0)}function WS(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Yy([]);return qy(i,i,-e.rotation),r.applyTransform(us([],i,e.getLocalTransform())),n.applyTransform(us([],i,t.getLocalTransform())),r.intersect(n)}}function VS(e){return e==="middle"||e==="center"}function WL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function xee(e){var t=Y0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=wm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var f=this.__startIndex;f15)break}}N.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var P=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?pf:0),this._needsManuallyCompositing),c.__builtin__||Gy("ZLevel "+u+" has been used by unkown layer "+c.id),c!==a&&(c.__used=!0,c.__startIndex!==l&&(c.__dirty=!0),c.__startIndex=l,c.incremental?c.__drawIndex=-1:c.__drawIndex=l,r(l),a=c),i.__dirty&Rr&&!i.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(f,d){!f.__used&&f.getElementCount()>0&&(f.__dirty=!0,f.__startIndex=f.__endIndex=f.__drawIndex=0),f.__dirty&&f.__drawIndex<0&&(f.__drawIndex=f.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,O(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=Y0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new nq[a.type](qS(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new dr(qS(r.label));t.add(a),XS(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),XS(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=v0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){ZA(u.event)},onmousedown:_p(this._onHandleDragMove,this,0,0),drift:_p(this._onHandleDragMove,this),ondragend:_p(this._onHandleDragEnd,this)}),n.add(i)),ZS(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,bP(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){KS(this._axisPointerModel,!r&&this._moveAnimation,this._handle,bp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(bp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(bp(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),sm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function KS(e,t,r,n){YL(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Pr(r,n,e):(r.stopAnimation(),r.attr(n)))}function YL(e,t){if(Ie(e)&&Ie(t)){var r=!0;return O(t,function(n,i){r=r&&YL(e[i],n)}),!!r}else return e===t}function XS(e,t){e[t.get(["label","show"])?"show":"hide"]()}function bp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function ZS(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const zee=Hee;function Wee(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function Vee(e,t,r,n,i){var a=r.get("value"),o=qL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=xh(s.get("padding")||0),u=s.getFont(),c=Zy(o,u),f=i.position,d=c.width+l[1]+l[3],h=c.height+l[0]+l[2],v=i.align;v==="right"&&(f[0]-=d),v==="center"&&(f[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(f[1]-=h),p==="middle"&&(f[1]-=h/2),Gee(f,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:f[0],y:f[1],style:la(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function Gee(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function qL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:G0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};O(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,f=u&&u.getDataParams(c);f&&s.seriesData.push(f)}),Te(o)?a=o.replace("{value}",a):Ve(o)&&(a=o(s))}return a}function KL(e,t,r){var n=Su();return qy(n,n,r.rotation),Eg(n,n,r.position),h0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function Uee(e,t,r,n,i,a){var o=VL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),Vee(t,n,i,a,{position:KL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function jee(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function Yee(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var qee=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),c=QS(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=Wee(a),h=Kee[u](s,f,c);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=bm(l.model,i);Uee(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=bm(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=KL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=QS(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,f=[r.x,r.y];f[c]+=n[c],f[c]=Math.min(l[1],f[c]),f[c]=Math.max(l[0],f[c]);var d=(u[1]+u[0])/2,h=[d,d];h[c]=f[c];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:f[0],y:f[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[c]}},t}(zee);function QS(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var Kee={line:function(e,t,r){var n=jee([t,r[0]],[t,r[1]],JS(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:Yee([t-n/2,r[0]],[n,i],JS(e))}}};function JS(e){return e.dim==="x"?0:1}const Xee=qee;var Zee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(xt);const Qee=Zee;var vi=Et(),Jee=O;function XL(e,t,r){if(!Ge.node){var n=t.getZr();vi(n).records||(vi(n).records={}),ete(n,t);var i=vi(n).records[e]||(vi(n).records[e]={});i.handler=r}}function ete(e,t){if(vi(e).initialized)return;vi(e).initialized=!0,r("click",Rt(eC,"click")),r("mousemove",Rt(eC,"mousemove")),r("globalout",rte);function r(n,i){e.on(n,function(a){var o=nte(t);Jee(vi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),tte(o.pendings,t)})}}function tte(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function rte(e,t,r){e.handler("leave",null,r)}function eC(e,t,r,n){t.handler(e,r,n)}function nte(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function Sm(e,t){if(!Ge.node){var r=t.getZr(),n=(vi(r).records||{})[e];n&&(vi(r).records[e]=null)}}var ite=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";XL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){Sm("axisPointer",n)},t.prototype.dispose=function(r,n){Sm("axisPointer",n)},t.type="axisPointer",t}(xi);const ate=ite;function ZL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=nc(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),f=c.dim,d=u.dim,h=f==="x"||f==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Re(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var tC=Et();function ote(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||_t(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Uf(i)&&(i=ZL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Uf(i),u=a.axesInfo,c=s.axesInfo,f=n==="leave"||Uf(i),d={},h={},v={list:[],map:{}},p={showPointer:Rt(lte,h),showTooltip:Rt(ute,v)};O(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);O(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=hte(u,b);if(!f&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&rC(b,C,p,!1,d)}})});var g={};return O(c,function(m,y){var _=m.linkGroup;_&&!h[y]&&O(_.axesInfo,function(b,x){var w=h[x];if(b!==m&&w){var S=w.value;_.mapper&&(S=m.axis.scale.parse(_.mapper(S,nC(b),nC(m)))),g[m.key]=S}})}),O(g,function(m,y){rC(c[y],m,p,!0,d)}),cte(h,c,d),fte(v,i,e,o),dte(c,o,r),d}}function rC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=ste(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&se(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function ste(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return O(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),f,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(c,e,r);d=h.dataIndices,f=h.nestestValue}else{if(d=l.getData().indicesOfNearest(c[0],e,r.type==="category"?.5:null),!d.length)return;f=l.getData().get(c[0],d[0])}if(!(f==null||!isFinite(f))){var v=e-f,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=f,a.length=0),O(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function lte(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function ute(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Fu(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function cte(e,t,r){var n=r.axesInfo=[];O(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function fte(e,t,r,n){if(Uf(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function dte(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=tC(n)[i]||{},o=tC(n)[i]={};O(e,function(u,c){var f=u.axisPointerModel.option;f.status==="show"&&O(f.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];O(a,function(u,c){!o[c]&&l.push(u)}),O(o,function(u,c){!a[c]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function hte(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function nC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Uf(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function QL(e){GL.registerAxisPointerClass("CartesianAxisPointer",Xee),e.registerComponentModel(Qee),e.registerComponentView(ate),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=mee(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},ote)}function vte(e){ua(Iee),ua(QL)}function pte(e,t){var r=xh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Ht({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(xt);const mte=gte;function JL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function eD(e){if(Ge.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var c=u*Math.PI/180,f=o+i,d=f*Math.abs(Math.cos(c))+f*Math.abs(Math.sin(c)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-f)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Cte(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ge.transformSupported?","+q0+n:",left"+n+",top"+n),bte+":"+i}function iC(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ge.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ge.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+q0+":"+o+";":[["top",0],["left",0],[tD,o]]}function Tte(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),O(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Mte(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),c=e.getModel("textStyle"),f=mP(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(Cte(i,r)),a&&n.push("background-color:"+a),O(["width","color","radius"],function(h){var v="border-"+h,p=GE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(Tte(c)),f!=null&&n.push("padding:"+xh(f).join("px ")+"px"),n.join(";")+";"}function aC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&n9(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Ate=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ge.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;aC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,c=a.painter.getViewportRoot();jr(c,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=_te(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=wte+Mte(t,!this._firstShow,this._longHide)+iC(a[0],a[1],!0)+("border-color:"+Lu(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Te(a)&&n.get("trigger")==="item"&&!JL(n)&&(s=Ste(n,i,a)),Te(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ge.node||!i.getDom())){var o=lC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Nte(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var c=Dte;c.x=a.x,c.y=a.y,c.update(),ft(c).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:c},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var f=ZL(a,n),d=f.point[0],h=f.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:f.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(lC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),f=ml([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(f.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Al(i,function(u){if(ft(u).dataIndex!=null)return s=u,!0;if(ft(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=_t(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=ml([n.tooltipOption],a),l=this._renderMode,u=[],c=Ou("section",{blocks:[],noHeader:!0}),f=[],d=new Xv;O(r,function(y){O(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=qL(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Ou("section",{header:w,noHeader:!Vn(w),sortBlocks:!0,blocks:[]});c.blocks.push(S),O(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),P=C.dataIndexInside,A=M.getDataParams(P);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=G0(b.axis,{value:x}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Lu(A.color),l);var T=Sx(M.formatTooltip(P,!0,null)),D=T.frag;if(D){var N=ml([M],a).get("valueFormatter");S.blocks.push(N?se({valueFormatter:N},D):D)}T.text&&f.push(T.text),u.push(A)}})}})}),c.blocks.reverse(),f.reverse();var h=n.position,v=s.get("order"),p=Ex(c,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&f.unshift(p);var g=l==="richText"?` -`:"
",m=f.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=ft(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,f=o.dataType,d=u.getData(f),h=this._renderMode,v=r.positionDefault,p=ml([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(c,f),y=new Xv;m.marker=y.makeTooltipMarker("item",Lu(m.color),h);var _=Sx(u.formatTooltip(c,!1,f)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?Ex(x?se({valueFormatter:x},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+c;this._showOrMove(p,function(){this._showTooltipContent(p,S,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=ft(n),o=a.tooltipConfig,s=o.option||{};if(Me(s)){var l=s;s={content:l,formatter:l}}var u=[s],c=this._ecModel.getComponent(a.componentMainType,a.componentIndex);c&&u.push(c),u.push({formatter:s.content});var f=r.positionDefault,d=ml(u,this._tooltipModel,f?{position:f}:null),h=d.get("content"),v=Math.random()+"",p=new Xv;this._showOrMove(d,function(){var g=Qe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,c){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var f=this._tooltipContent;f.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Me(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=mh(m.axisValue,h,g)),h=UE(h,i,!0)}else if(Ve(d)){var _=_t(function(b,x){b===this._ticket&&(f.setContent(x,c,r,p,l),this._updatePosition(r,l,o,s,f,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;f.setContent(h,c,r,p,l),f.show(r,p),this._updatePosition(r,l,o,s,f,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get("position");var f=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ve(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,c],contentSize:f.slice()})),ge(n))i=gt(n[0],u),a=gt(n[1],c);else if(Ie(n)){var p=n;p.width=f[0],p.height=f[1];var g=Ls(p,{width:u,height:c});i=g.x,a=g.y,d=null,h=null}else if(Me(n)&&l){var m=kte(n,v,f,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=Ote(i,a,o,u,c,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=uC(d)?f[0]/2:d==="right"?f[0]:0),h&&(a-=uC(h)?f[1]/2:h==="bottom"?f[1]:0),JL(r)){var m=Rte(i,a,o,u,c);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&O(i,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},f=c.dataByAxis||[];o=o&&u.length===f.length,o&&O(u,function(d,h){var v=f[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&O(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&O(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ge.node||!n.getDom()||(sm(this,"_updatePosition"),this._tooltipContent.dispose(),Sm("itemTooltip",n))},t.type="tooltip",t}(xi);function ml(e,t,r){var n=t.ecModel,i;r?(i=new rr(r,n,n),i=new rr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof rr&&(o=o.get("tooltip",!0)),Me(o)&&(o={formatter:o}),o&&(i=new rr(o,i,n)))}return i}function lC(e,t){return e.dispatchAction||_t(t.dispatchAction,t)}function Ote(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Rte(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function kte(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+o;break;case"left":s=t.x-i-o,l=t.y+c/2-a/2;break;case"right":s=t.x+u+o,l=t.y+c/2-a/2}return[s,l]}function uC(e){return e==="center"||e==="middle"}function Nte(e,t,r){var n=r0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=ic(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var c=ft(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const Fte=Ite;function Bte(e){ua(QL),e.registerComponentModel(mte),e.registerComponentView(Fte),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Tr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Tr)}var $te=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(xt),Hte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),c=new dr({style:la(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),f=c.getBoundingRect(),d=r.get("subtext"),h=new dr({style:la(s,{text:d,fill:s.getTextColor(),y:f.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);c.silent=!v&&!g,h.silent=!p&&!g,v&&c.on("click",function(){ix(v,"_"+r.get("target"))}),p&&h.on("click",function(){ix(p,"_"+r.get("subtarget"))}),ft(c).eventData=ft(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(c),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};c.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Ht({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(xi);function zte(e){e.registerComponentModel($te),e.registerComponentView(Hte)}var Wte=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},Vte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&O(n,function(a,o){Me(a)&&(a={type:a}),n[o]=st(a,Wte(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(xt);const Cm=Vte;var jo=Rt,Tm=O,gf=cn,Gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new gf),this.group.add(this._selectorGroup=new gf),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var c=r.getBoxLayoutParams(),f={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ls(c,f,d),v=this.layoutInner(r,o,h,a,l,u),p=Ls(dt({width:v.width,height:v.height},c),f,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=pte(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),c=Ue(),f=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),Tm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` -`)){var g=new gf;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!c.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,x,b,f,a);w.on("click",jo(cC,p,null,a,d)).on("mouseover",jo(Mm,m.name,null,a,d)).on("mouseout",jo(Am,m.name,null,a,d)),c.set(p,!0)}else i.eachRawSeries(function(S){if(!c.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),P=C.getItemVisual(M,"style"),A=C.getItemVisual(M,"legendIcon"),T=so(P.fill);T&&T[3]===0&&(T[3]=.2,P=se(se({},P),{fill:Ky(T,"rgba")}));var D=this._createItem(S,p,v,h,n,r,{},P,A,f,a);D.on("click",jo(cC,null,p,a,d)).on("mouseover",jo(Mm,null,p,a,d)).on("mouseout",jo(Am,null,p,a,d)),c.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Tm(r,function(u){var c=u.type,f=new dr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(f);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);m0(f,{normal:d,emphasis:h},{defaultText:u.title}),Kg(f)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,c,f,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");c=_||c||"roundRect";var b=Ute(c,a,l,u,h,g,d),x=new gf,w=a.getModel("textStyle");if(Ve(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:c,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;x.add(jte({itemWidth:v,itemHeight:p,icon:c,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,P=o.get("formatter"),A=n;Me(P)&&P?A=P.replace("{name}",n??""):Ve(P)&&(A=P(n));var T=a.get("inactiveColor");x.add(new dr({style:la(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():T,align:M,verticalAlign:"middle"})}));var D=new Ht({shape:x.getBoundingRect(),invisible:!0}),N=a.getModel("tooltip");return N.get("show")&&p0({el:D,componentModel:o,itemName:n,itemTooltipOption:N.option}),x.add(D),x.eachChild(function(H){H.silent=!0}),D.silent=!f,this.getContentGroup().add(x),Kg(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Xl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var c=l.getBoundingRect(),f=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),o){Xl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=c[g]+v:f[p]+=d[g]+v,h[1-p]+=c[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=f[0],l.y=f[1];var _={x:0,y:0};return _[g]=c[g]+v+d[g],_[m]=Math.max(c[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=f[0],l.y=f[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(xi);function Ute(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),Tm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",f=l.getShallow("decal");u.decal=!f||f==="inherit"?n.decal:dm(f,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[c]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[c];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function jte(e){var t=e.icon||"roundRect",r=R0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function cC(e,t,r,n){Am(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),Mm(e,t,r,n)}function nD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=c[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,c.setPosition(g),f.setPosition(m),d.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:h[o],x[s]=Math.max(h[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),f.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],f.setClipPath(new Ht({shape:w})),f.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Pr(c,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;O(["pagePrev","pageNext"],function(c){var f=c+"DataIndex",d=n[f]!=null,h=i.childOfName(c);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Me(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=wp[o],l=xp[o],u=this._findTargetItemIndex(n),c=i.children(),f=c[u],d=c.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!f)return v;var p=b(f);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(c[g]),(!_&&y.e>m.s+a||_&&!x(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(c[g]),(!_||!x(y,_.s))&&m.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(iD);const Qte=Zte;function Jte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ere(e){ua(aD),e.registerComponentModel(Xte),e.registerComponentView(Qte),Jte(e)}function tre(e){ua(aD),ua(ere)}ua([KJ,OJ,$ee,sJ,zte,Bte,tre,vte]);function rre(e,t,r){const n=B0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return aa.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function nre(e,t){const r=B0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function ire(e,t,r){const n={width:"600px",height:"400px"},i=B0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const c of l){const f='';u+=f+c.seriesName+": "+aa.fileSize(c.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return aa.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const hC=ce({__name:"LongSpan",props:{content:null,length:null},setup(e){return(t,r)=>{const n=Ju;return Y(),me(pt,null,[ee(n,{content:e.content,placement:"top"},{default:Z(()=>[nr(ae("span",null,Te(e.content.slice(0,e.length))+"...",513),[[yi,e.content.length>e.length]])]),_:1},8,["content"]),nr(ae("span",null,Te(e.content),513),[[yi,e.content.length<30]])],64)}}}),are={class:"source"},ore=ae("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),sre=ae("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),lre=ce({__name:"ServerOverview",setup(e){let t=B({version:"",bind_port:0,bind_udp_port:0,kcp_bind_port:0,quic_bind_port:0,vhost_http_port:0,vhost_https_port:0,tcpmux_httpconnect_port:0,subdomain_host:"",max_pool_count:0,max_ports_per_client:"",allow_ports_str:"",tls_only:!1,heart_beat_timeout:0,client_counts:0,cur_conns:0,proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.bind_udp_port=n.bind_udp_port,t.value.kcp_bind_port=n.kcp_bind_port,t.value.quic_bind_port=n.quic_bind_port,t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_https_port=n.vhost_https_port,t.value.tcpmux_httpconnect_port=n.tcpmux_httpconnect_port,t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.allow_ports_str=n.allow_ports_str,t.value.tls_only=n.tls_only,t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),rre("traffic",n.total_traffic_in,n.total_traffic_out),nre("proxies",n)}).catch(()=>{DA({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=zM,o=HM,s=pA,l=vA;return Y(),me("div",null,[ee(l,null,{default:Z(()=>[ee(s,{md:12},{default:Z(()=>[ae("div",are,[ee(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:Z(()=>[ee(a,{label:"Version"},{default:Z(()=>[ae("span",null,Te(E(t).version),1)]),_:1}),ee(a,{label:"BindPort"},{default:Z(()=>[ae("span",null,Te(E(t).bind_port),1)]),_:1}),E(t).bind_udp_port!=0?(Y(),_e(a,{key:0,label:"Bind UDP Port"},{default:Z(()=>[ae("span",null,Te(E(t).bind_udp_port),1)]),_:1})):ke("",!0),E(t).kcp_bind_port!=0?(Y(),_e(a,{key:1,label:"KCP Bind Port"},{default:Z(()=>[ae("span",null,Te(E(t).kcp_bind_port),1)]),_:1})):ke("",!0),E(t).quic_bind_port!=0?(Y(),_e(a,{key:2,label:"QUIC Bind Port"},{default:Z(()=>[ae("span",null,Te(E(t).quic_bind_port),1)]),_:1})):ke("",!0),E(t).vhost_http_port!=0?(Y(),_e(a,{key:3,label:"Http Port"},{default:Z(()=>[ae("span",null,Te(E(t).vhost_http_port),1)]),_:1})):ke("",!0),E(t).vhost_https_port!=0?(Y(),_e(a,{key:4,label:"Https Port"},{default:Z(()=>[ae("span",null,Te(E(t).vhost_https_port),1)]),_:1})):ke("",!0),E(t).tcpmux_httpconnect_port!=0?(Y(),_e(a,{key:5,label:"TCPMux HTTPConnect Port"},{default:Z(()=>[ae("span",null,Te(E(t).tcpmux_httpconnect_port),1)]),_:1})):ke("",!0),E(t).subdomain_host!=""?(Y(),_e(a,{key:6,label:"Subdomain Host"},{default:Z(()=>[ee(hC,{content:E(t).subdomain_host,length:30},null,8,["content"])]),_:1})):ke("",!0),ee(a,{label:"Max PoolCount"},{default:Z(()=>[ae("span",null,Te(E(t).max_pool_count),1)]),_:1}),ee(a,{label:"Max Ports Per Client"},{default:Z(()=>[ae("span",null,Te(E(t).max_ports_per_client),1)]),_:1}),E(t).allow_ports_str!=""?(Y(),_e(a,{key:7,label:"Allow Ports"},{default:Z(()=>[ee(hC,{content:E(t).allow_ports_str,length:30},null,8,["content"])]),_:1})):ke("",!0),E(t).tls_only===!0?(Y(),_e(a,{key:8,label:"TLS Only"},{default:Z(()=>[ae("span",null,Te(E(t).tls_only),1)]),_:1})):ke("",!0),ee(a,{label:"HeartBeat Timeout"},{default:Z(()=>[ae("span",null,Te(E(t).heart_beat_timeout),1)]),_:1}),ee(a,{label:"Client Counts"},{default:Z(()=>[ae("span",null,Te(E(t).client_counts),1)]),_:1}),ee(a,{label:"Current Connections"},{default:Z(()=>[ae("span",null,Te(E(t).cur_conns),1)]),_:1}),ee(a,{label:"Proxy Counts"},{default:Z(()=>[ae("span",null,Te(E(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),ee(s,{md:12},{default:Z(()=>[ore,sre]),_:1})]),_:1})])}}});class Us{constructor(t){Wt(this,"name");Wt(this,"type");Wt(this,"encryption");Wt(this,"compression");Wt(this,"conns");Wt(this,"traffic_in");Wt(this,"traffic_out");Wt(this,"last_start_time");Wt(this,"last_close_time");Wt(this,"status");Wt(this,"client_version");Wt(this,"addr");Wt(this,"port");Wt(this,"custom_domains");Wt(this,"host_header_rewrite");Wt(this,"locations");Wt(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.client_version=t.client_version,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class ure extends Us{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class cre extends Us{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class fre extends Us{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class dre extends Us{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class hre extends Us{constructor(t){super(t),this.type="stcp"}}class vre extends Us{constructor(t){super(t),this.type="sudp"}}const pre=["id"],gre=ce({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{ire(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{DA({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(Y(),me("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,pre))}}),mre=ce({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=zM,i=HM;return e.proxyType==="http"||e.proxyType==="https"?(Y(),_e(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Te(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Te(e.row.type),1)]),_:1}),ee(n,{label:"Domains"},{default:Z(()=>[ae("span",null,Te(e.row.custom_domains),1)]),_:1}),ee(n,{label:"SubDomain"},{default:Z(()=>[ae("span",null,Te(e.row.subdomain),1)]),_:1}),ee(n,{label:"locations"},{default:Z(()=>[ae("span",null,Te(e.row.locations),1)]),_:1}),ee(n,{label:"HostRewrite"},{default:Z(()=>[ae("span",null,Te(e.row.host_header_rewrite),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Te(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Te(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Te(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Te(e.row.last_close_time),1)]),_:1})]),_:1})):(Y(),_e(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Te(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Te(e.row.type),1)]),_:1}),ee(n,{label:"Addr"},{default:Z(()=>[ae("span",null,Te(e.row.addr),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Te(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Te(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Te(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Te(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),js=ce({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(n,i)=>aa.fileSize(n.traffic_in),r=(n,i)=>aa.fileSize(n.traffic_out);return(n,i)=>{const a=gre,o=J6,s=IW,l=ZV,u=O8,c=XV;return Y(),me("div",null,[ee(c,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:Z(()=>[ee(l,{type:"expand"},{default:Z(f=>[ee(s,{placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click"},{default:Z(()=>[ee(a,{proxy_name:f.row.name},null,8,["proxy_name"])]),reference:Z(()=>[ee(o,{type:"primary",size:"large",name:f.row.name,style:{"margin-bottom":"10px"}},{default:Z(()=>[Bt("Traffic Statistics ")]),_:2},1032,["name"])]),_:2},1024),ee(mre,{row:f.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),ee(l,{label:"Name",prop:"name",sortable:""}),ee(l,{label:"Port",prop:"port",sortable:""}),ee(l,{label:"Connections",prop:"conns",sortable:""}),ee(l,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),ee(l,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),ee(l,{label:"ClientVersion",prop:"client_version",sortable:""}),ee(l,{label:"Status",prop:"status",sortable:""},{default:Z(f=>[f.row.status==="online"?(Y(),_e(u,{key:0,type:"success"},{default:Z(()=>[Bt(Te(f.row.status),1)]),_:2},1024)):(Y(),_e(u,{key:1,type:"danger"},{default:Z(()=>[Bt(Te(f.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),yre=ce({__name:"ProxiesTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new ure(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"tcp"},null,8,["proxies"]))}}),_re=ce({__name:"ProxiesUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new cre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"udp"},null,8,["proxies"]))}}),bre=ce({__name:"ProxiesHTTP",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new fre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"http"},null,8,["proxies"]))}}),wre=ce({__name:"ProxiesHTTPS",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new dre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"https"},null,8,["proxies"]))}}),xre=ce({__name:"ProxiesSTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new hre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"stcp"},null,8,["proxies"]))}}),Sre=ce({__name:"ProxiesSUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new vre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"sudp"},null,8,["proxies"]))}}),Cre=SU({history:$G(),routes:[{path:"/",name:"ServerOverview",component:lre},{path:"/proxies/tcp",name:"ProxiesTCP",component:yre},{path:"/proxies/udp",name:"ProxiesUDP",component:_re},{path:"/proxies/http",name:"ProxiesHTTP",component:bre},{path:"/proxies/https",name:"ProxiesHTTPS",component:wre},{path:"/proxies/stcp",name:"ProxiesSTCP",component:xre},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Sre}]}),oD=YO(bG);oD.use(Cre);oD.mount("#app")});export default Tre(); +`:"
",m=f.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=ft(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,f=o.dataType,d=u.getData(f),h=this._renderMode,v=r.positionDefault,p=ml([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(c,f),y=new Xv;m.marker=y.makeTooltipMarker("item",Lu(m.color),h);var _=Sx(u.formatTooltip(c,!1,f)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?Ex(x?se({valueFormatter:x},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+c;this._showOrMove(p,function(){this._showTooltipContent(p,S,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=ft(n),o=a.tooltipConfig,s=o.option||{};if(Te(s)){var l=s;s={content:l,formatter:l}}var u=[s],c=this._ecModel.getComponent(a.componentMainType,a.componentIndex);c&&u.push(c),u.push({formatter:s.content});var f=r.positionDefault,d=ml(u,this._tooltipModel,f?{position:f}:null),h=d.get("content"),v=Math.random()+"",p=new Xv;this._showOrMove(d,function(){var g=Qe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,c){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var f=this._tooltipContent;f.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Te(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=mh(m.axisValue,h,g)),h=UE(h,i,!0)}else if(Ve(d)){var _=_t(function(b,x){b===this._ticket&&(f.setContent(x,c,r,p,l),this._updatePosition(r,l,o,s,f,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;f.setContent(h,c,r,p,l),f.show(r,p),this._updatePosition(r,l,o,s,f,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get("position");var f=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ve(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,c],contentSize:f.slice()})),ge(n))i=gt(n[0],u),a=gt(n[1],c);else if(Ie(n)){var p=n;p.width=f[0],p.height=f[1];var g=Ls(p,{width:u,height:c});i=g.x,a=g.y,d=null,h=null}else if(Te(n)&&l){var m=kte(n,v,f,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=Ote(i,a,o,u,c,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=uC(d)?f[0]/2:d==="right"?f[0]:0),h&&(a-=uC(h)?f[1]/2:h==="bottom"?f[1]:0),JL(r)){var m=Rte(i,a,o,u,c);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&O(i,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},f=c.dataByAxis||[];o=o&&u.length===f.length,o&&O(u,function(d,h){var v=f[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&O(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&O(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ge.node||!n.getDom()||(sm(this,"_updatePosition"),this._tooltipContent.dispose(),Sm("itemTooltip",n))},t.type="tooltip",t}(xi);function ml(e,t,r){var n=t.ecModel,i;r?(i=new rr(r,n,n),i=new rr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof rr&&(o=o.get("tooltip",!0)),Te(o)&&(o={formatter:o}),o&&(i=new rr(o,i,n)))}return i}function lC(e,t){return e.dispatchAction||_t(t.dispatchAction,t)}function Ote(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Rte(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function kte(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+o;break;case"left":s=t.x-i-o,l=t.y+c/2-a/2;break;case"right":s=t.x+u+o,l=t.y+c/2-a/2}return[s,l]}function uC(e){return e==="center"||e==="middle"}function Nte(e,t,r){var n=r0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=ic(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var c=ft(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const Fte=Ite;function Bte(e){ua(QL),e.registerComponentModel(mte),e.registerComponentView(Fte),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Tr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Tr)}var $te=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(xt),Hte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),c=new dr({style:la(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),f=c.getBoundingRect(),d=r.get("subtext"),h=new dr({style:la(s,{text:d,fill:s.getTextColor(),y:f.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);c.silent=!v&&!g,h.silent=!p&&!g,v&&c.on("click",function(){ix(v,"_"+r.get("target"))}),p&&h.on("click",function(){ix(p,"_"+r.get("subtarget"))}),ft(c).eventData=ft(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(c),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};c.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Ht({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(xi);function zte(e){e.registerComponentModel($te),e.registerComponentView(Hte)}var Wte=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},Vte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&O(n,function(a,o){Te(a)&&(a={type:a}),n[o]=st(a,Wte(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(xt);const Cm=Vte;var jo=Rt,Tm=O,gf=cn,Gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new gf),this.group.add(this._selectorGroup=new gf),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var c=r.getBoxLayoutParams(),f={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ls(c,f,d),v=this.layoutInner(r,o,h,a,l,u),p=Ls(dt({width:v.width,height:v.height},c),f,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=pte(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),c=Ue(),f=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),Tm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` +`)){var g=new gf;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!c.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,x,b,f,a);w.on("click",jo(cC,p,null,a,d)).on("mouseover",jo(Mm,m.name,null,a,d)).on("mouseout",jo(Am,m.name,null,a,d)),c.set(p,!0)}else i.eachRawSeries(function(S){if(!c.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),P=C.getItemVisual(M,"style"),A=C.getItemVisual(M,"legendIcon"),T=so(P.fill);T&&T[3]===0&&(T[3]=.2,P=se(se({},P),{fill:Ky(T,"rgba")}));var D=this._createItem(S,p,v,h,n,r,{},P,A,f,a);D.on("click",jo(cC,null,p,a,d)).on("mouseover",jo(Mm,null,p,a,d)).on("mouseout",jo(Am,null,p,a,d)),c.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Tm(r,function(u){var c=u.type,f=new dr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(f);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);m0(f,{normal:d,emphasis:h},{defaultText:u.title}),Kg(f)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,c,f,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");c=_||c||"roundRect";var b=Ute(c,a,l,u,h,g,d),x=new gf,w=a.getModel("textStyle");if(Ve(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:c,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;x.add(jte({itemWidth:v,itemHeight:p,icon:c,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,P=o.get("formatter"),A=n;Te(P)&&P?A=P.replace("{name}",n??""):Ve(P)&&(A=P(n));var T=a.get("inactiveColor");x.add(new dr({style:la(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():T,align:M,verticalAlign:"middle"})}));var D=new Ht({shape:x.getBoundingRect(),invisible:!0}),N=a.getModel("tooltip");return N.get("show")&&p0({el:D,componentModel:o,itemName:n,itemTooltipOption:N.option}),x.add(D),x.eachChild(function(H){H.silent=!0}),D.silent=!f,this.getContentGroup().add(x),Kg(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Xl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var c=l.getBoundingRect(),f=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),o){Xl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=c[g]+v:f[p]+=d[g]+v,h[1-p]+=c[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=f[0],l.y=f[1];var _={x:0,y:0};return _[g]=c[g]+v+d[g],_[m]=Math.max(c[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=f[0],l.y=f[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(xi);function Ute(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),Tm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",f=l.getShallow("decal");u.decal=!f||f==="inherit"?n.decal:dm(f,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[c]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[c];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function jte(e){var t=e.icon||"roundRect",r=R0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function cC(e,t,r,n){Am(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),Mm(e,t,r,n)}function nD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=c[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,c.setPosition(g),f.setPosition(m),d.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:h[o],x[s]=Math.max(h[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),f.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],f.setClipPath(new Ht({shape:w})),f.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Pr(c,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;O(["pagePrev","pageNext"],function(c){var f=c+"DataIndex",d=n[f]!=null,h=i.childOfName(c);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Te(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=wp[o],l=xp[o],u=this._findTargetItemIndex(n),c=i.children(),f=c[u],d=c.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!f)return v;var p=b(f);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(c[g]),(!_&&y.e>m.s+a||_&&!x(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(c[g]),(!_||!x(y,_.s))&&m.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(iD);const Qte=Zte;function Jte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ere(e){ua(aD),e.registerComponentModel(Xte),e.registerComponentView(Qte),Jte(e)}function tre(e){ua(aD),ua(ere)}ua([KJ,OJ,$ee,sJ,zte,Bte,tre,vte]);function rre(e,t,r){const n=B0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return aa.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function nre(e,t){const r=B0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function ire(e,t,r){const n={width:"600px",height:"400px"},i=B0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const c of l){const f='';u+=f+c.seriesName+": "+aa.fileSize(c.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return aa.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const hC=ce({__name:"LongSpan",props:{content:null,length:null},setup(e){return(t,r)=>{const n=Ju;return Y(),me(pt,null,[ee(n,{content:e.content,placement:"top"},{default:Z(()=>[nr(ae("span",null,Me(e.content.slice(0,e.length))+"...",513),[[yi,e.content.length>e.length]])]),_:1},8,["content"]),nr(ae("span",null,Me(e.content),513),[[yi,e.content.length<30]])],64)}}}),are={class:"source"},ore=ae("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),sre=ae("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),lre=ce({__name:"ServerOverview",setup(e){let t=B({version:"",bind_port:0,kcp_bind_port:0,quic_bind_port:0,vhost_http_port:0,vhost_https_port:0,tcpmux_httpconnect_port:0,subdomain_host:"",max_pool_count:0,max_ports_per_client:"",allow_ports_str:"",tls_only:!1,heart_beat_timeout:0,client_counts:0,cur_conns:0,proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.kcp_bind_port=n.kcp_bind_port,t.value.quic_bind_port=n.quic_bind_port,t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_https_port=n.vhost_https_port,t.value.tcpmux_httpconnect_port=n.tcpmux_httpconnect_port,t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.allow_ports_str=n.allow_ports_str,t.value.tls_only=n.tls_only,t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),rre("traffic",n.total_traffic_in,n.total_traffic_out),nre("proxies",n)}).catch(()=>{DA({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=zM,o=HM,s=pA,l=vA;return Y(),me("div",null,[ee(l,null,{default:Z(()=>[ee(s,{md:12},{default:Z(()=>[ae("div",are,[ee(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:Z(()=>[ee(a,{label:"Version"},{default:Z(()=>[ae("span",null,Me(E(t).version),1)]),_:1}),ee(a,{label:"BindPort"},{default:Z(()=>[ae("span",null,Me(E(t).bind_port),1)]),_:1}),E(t).kcp_bind_port!=0?(Y(),_e(a,{key:0,label:"KCP Bind Port"},{default:Z(()=>[ae("span",null,Me(E(t).kcp_bind_port),1)]),_:1})):Fe("",!0),E(t).quic_bind_port!=0?(Y(),_e(a,{key:1,label:"QUIC Bind Port"},{default:Z(()=>[ae("span",null,Me(E(t).quic_bind_port),1)]),_:1})):Fe("",!0),E(t).vhost_http_port!=0?(Y(),_e(a,{key:2,label:"Http Port"},{default:Z(()=>[ae("span",null,Me(E(t).vhost_http_port),1)]),_:1})):Fe("",!0),E(t).vhost_https_port!=0?(Y(),_e(a,{key:3,label:"Https Port"},{default:Z(()=>[ae("span",null,Me(E(t).vhost_https_port),1)]),_:1})):Fe("",!0),E(t).tcpmux_httpconnect_port!=0?(Y(),_e(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:Z(()=>[ae("span",null,Me(E(t).tcpmux_httpconnect_port),1)]),_:1})):Fe("",!0),E(t).subdomain_host!=""?(Y(),_e(a,{key:5,label:"Subdomain Host"},{default:Z(()=>[ee(hC,{content:E(t).subdomain_host,length:30},null,8,["content"])]),_:1})):Fe("",!0),ee(a,{label:"Max PoolCount"},{default:Z(()=>[ae("span",null,Me(E(t).max_pool_count),1)]),_:1}),ee(a,{label:"Max Ports Per Client"},{default:Z(()=>[ae("span",null,Me(E(t).max_ports_per_client),1)]),_:1}),E(t).allow_ports_str!=""?(Y(),_e(a,{key:6,label:"Allow Ports"},{default:Z(()=>[ee(hC,{content:E(t).allow_ports_str,length:30},null,8,["content"])]),_:1})):Fe("",!0),E(t).tls_only===!0?(Y(),_e(a,{key:7,label:"TLS Only"},{default:Z(()=>[ae("span",null,Me(E(t).tls_only),1)]),_:1})):Fe("",!0),ee(a,{label:"HeartBeat Timeout"},{default:Z(()=>[ae("span",null,Me(E(t).heart_beat_timeout),1)]),_:1}),ee(a,{label:"Client Counts"},{default:Z(()=>[ae("span",null,Me(E(t).client_counts),1)]),_:1}),ee(a,{label:"Current Connections"},{default:Z(()=>[ae("span",null,Me(E(t).cur_conns),1)]),_:1}),ee(a,{label:"Proxy Counts"},{default:Z(()=>[ae("span",null,Me(E(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),ee(s,{md:12},{default:Z(()=>[ore,sre]),_:1})]),_:1})])}}});class Us{constructor(t){Wt(this,"name");Wt(this,"type");Wt(this,"encryption");Wt(this,"compression");Wt(this,"conns");Wt(this,"traffic_in");Wt(this,"traffic_out");Wt(this,"last_start_time");Wt(this,"last_close_time");Wt(this,"status");Wt(this,"client_version");Wt(this,"addr");Wt(this,"port");Wt(this,"custom_domains");Wt(this,"host_header_rewrite");Wt(this,"locations");Wt(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.client_version=t.client_version,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class ure extends Us{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class cre extends Us{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class fre extends Us{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class dre extends Us{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class hre extends Us{constructor(t){super(t),this.type="stcp"}}class vre extends Us{constructor(t){super(t),this.type="sudp"}}const pre=["id"],gre=ce({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{ire(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{DA({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(Y(),me("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,pre))}}),mre=ce({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=zM,i=HM;return e.proxyType==="http"||e.proxyType==="https"?(Y(),_e(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Domains"},{default:Z(()=>[ae("span",null,Me(e.row.custom_domains),1)]),_:1}),ee(n,{label:"SubDomain"},{default:Z(()=>[ae("span",null,Me(e.row.subdomain),1)]),_:1}),ee(n,{label:"locations"},{default:Z(()=>[ae("span",null,Me(e.row.locations),1)]),_:1}),ee(n,{label:"HostRewrite"},{default:Z(()=>[ae("span",null,Me(e.row.host_header_rewrite),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.last_close_time),1)]),_:1})]),_:1})):(Y(),_e(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Addr"},{default:Z(()=>[ae("span",null,Me(e.row.addr),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),js=ce({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(n,i)=>aa.fileSize(n.traffic_in),r=(n,i)=>aa.fileSize(n.traffic_out);return(n,i)=>{const a=gre,o=J6,s=IW,l=ZV,u=O8,c=XV;return Y(),me("div",null,[ee(c,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:Z(()=>[ee(l,{type:"expand"},{default:Z(f=>[ee(s,{placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click"},{default:Z(()=>[ee(a,{proxy_name:f.row.name},null,8,["proxy_name"])]),reference:Z(()=>[ee(o,{type:"primary",size:"large",name:f.row.name,style:{"margin-bottom":"10px"}},{default:Z(()=>[Bt("Traffic Statistics ")]),_:2},1032,["name"])]),_:2},1024),ee(mre,{row:f.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),ee(l,{label:"Name",prop:"name",sortable:""}),ee(l,{label:"Port",prop:"port",sortable:""}),ee(l,{label:"Connections",prop:"conns",sortable:""}),ee(l,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),ee(l,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),ee(l,{label:"ClientVersion",prop:"client_version",sortable:""}),ee(l,{label:"Status",prop:"status",sortable:""},{default:Z(f=>[f.row.status==="online"?(Y(),_e(u,{key:0,type:"success"},{default:Z(()=>[Bt(Me(f.row.status),1)]),_:2},1024)):(Y(),_e(u,{key:1,type:"danger"},{default:Z(()=>[Bt(Me(f.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),yre=ce({__name:"ProxiesTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new ure(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"tcp"},null,8,["proxies"]))}}),_re=ce({__name:"ProxiesUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new cre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"udp"},null,8,["proxies"]))}}),bre=ce({__name:"ProxiesHTTP",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new fre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"http"},null,8,["proxies"]))}}),wre=ce({__name:"ProxiesHTTPS",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new dre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"https"},null,8,["proxies"]))}}),xre=ce({__name:"ProxiesSTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new hre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"stcp"},null,8,["proxies"]))}}),Sre=ce({__name:"ProxiesSUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new vre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"sudp"},null,8,["proxies"]))}}),Cre=SU({history:$G(),routes:[{path:"/",name:"ServerOverview",component:lre},{path:"/proxies/tcp",name:"ProxiesTCP",component:yre},{path:"/proxies/udp",name:"ProxiesUDP",component:_re},{path:"/proxies/http",name:"ProxiesHTTP",component:bre},{path:"/proxies/https",name:"ProxiesHTTPS",component:wre},{path:"/proxies/stcp",name:"ProxiesSTCP",component:xre},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Sre}]}),oD=YO(bG);oD.use(Cre);oD.mount("#app")});export default Tre(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index 6a6a252b5e2..c08019b8397 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -4,7 +4,7 @@ frps dashboard - + diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index 133d59eee7c..bca015eb811 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -183,6 +183,13 @@ type TCPProxyConf struct { RemotePort int `ini:"remote_port" json:"remote_port"` } +// UDP +type UDPProxyConf struct { + BaseProxyConf `ini:",extends"` + + RemotePort int `ini:"remote_port" json:"remote_port"` +} + // TCPMux type TCPMuxProxyConf struct { BaseProxyConf `ini:",extends"` @@ -210,13 +217,6 @@ type XTCPProxyConf struct { Sk string `ini:"sk" json:"sk"` } -// UDP -type UDPProxyConf struct { - BaseProxyConf `ini:",extends"` - - RemotePort int `ini:"remote_port" json:"remote_port"` -} - // SUDP type SUDPProxyConf struct { BaseProxyConf `ini:",extends"` diff --git a/pkg/config/server_test.go b/pkg/config/server_test.go index 85a63f533b3..7218397b7ac 100644 --- a/pkg/config/server_test.go +++ b/pkg/config/server_test.go @@ -36,7 +36,6 @@ func Test_LoadServerCommonConf(t *testing.T) { [common] bind_addr = 0.0.0.9 bind_port = 7009 - bind_udp_port = 7008 kcp_bind_port = 7007 proxy_bind_addr = 127.0.0.9 vhost_http_port = 89 @@ -170,7 +169,6 @@ func Test_LoadServerCommonConf(t *testing.T) { [common] bind_addr = 0.0.0.9 bind_port = 7009 - bind_udp_port = 7008 `), expected: ServerCommonConf{ ServerConfig: auth.ServerConfig{ diff --git a/web/frps/src/components/ServerOverview.vue b/web/frps/src/components/ServerOverview.vue index e9a830ea79a..8266b481961 100644 --- a/web/frps/src/components/ServerOverview.vue +++ b/web/frps/src/components/ServerOverview.vue @@ -14,9 +14,6 @@ {{ data.bind_port }} - - {{ data.bind_udp_port }} - {{ data.kcp_bind_port }} @@ -91,7 +88,6 @@ import LongSpan from './LongSpan.vue' let data = ref({ version: '', bind_port: 0, - bind_udp_port: 0, kcp_bind_port: 0, quic_bind_port: 0, vhost_http_port: 0, @@ -114,7 +110,6 @@ const fetchData = () => { .then((json) => { data.value.version = json.version data.value.bind_port = json.bind_port - data.value.bind_udp_port = json.bind_udp_port data.value.kcp_bind_port = json.kcp_bind_port data.value.quic_bind_port = json.quic_bind_port data.value.vhost_http_port = json.vhost_http_port From 9aef3b99446ac8381e711a02cc3c28403bf83f83 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 30 May 2023 20:25:22 +0800 Subject: [PATCH 072/444] adjust code style about config (#3464) --- client/admin_api.go | 2 +- client/control.go | 2 +- client/proxy/proxy.go | 14 +- client/proxy/proxy_manager.go | 10 +- client/proxy/proxy_wrapper.go | 2 +- client/proxy/xtcp.go | 4 +- client/visitor/stcp.go | 3 +- client/visitor/sudp.go | 3 +- client/visitor/visitor.go | 39 +-- client/visitor/visitor_manager.go | 67 +++-- client/visitor/xtcp.go | 6 +- cmd/frpc/sub/http.go | 2 +- cmd/frpc/sub/https.go | 2 +- cmd/frpc/sub/stcp.go | 4 +- cmd/frpc/sub/sudp.go | 4 +- cmd/frpc/sub/tcp.go | 2 +- cmd/frpc/sub/tcpmux.go | 2 +- cmd/frpc/sub/udp.go | 2 +- cmd/frpc/sub/xtcp.go | 4 +- conf/frpc_full.ini | 8 + pkg/config/client_test.go | 12 +- pkg/config/proxy.go | 395 ++++++++---------------------- pkg/config/proxy_test.go | 12 +- pkg/config/visitor.go | 108 ++------ pkg/msg/msg.go | 1 + server/control.go | 4 +- server/proxy/http.go | 4 +- server/proxy/proxy.go | 14 +- server/proxy/udp.go | 4 +- 29 files changed, 262 insertions(+), 474 deletions(-) diff --git a/client/admin_api.go b/client/admin_api.go index 2a3633aef38..5d163de705e 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -91,7 +91,7 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta Status: status.Phase, Err: status.Err, } - baseCfg := status.Cfg.GetBaseInfo() + baseCfg := status.Cfg.GetBaseConfig() if baseCfg.LocalPort != 0 { psr.LocalAddr = net.JoinHostPort(baseCfg.LocalIP, strconv.Itoa(baseCfg.LocalPort)) } diff --git a/client/control.go b/client/control.go index 7626bde8b30..95f84f8cc4b 100644 --- a/client/control.go +++ b/client/control.go @@ -109,7 +109,7 @@ func NewControl( ctl.msgTransporter = transport.NewMessageTransporter(ctl.sendCh) ctl.pm = proxy.NewManager(ctl.ctx, clientCfg, ctl.msgTransporter) - ctl.vm = visitor.NewManager(ctl.ctx, ctl.clientCfg, ctl.connectServer, ctl.msgTransporter) + ctl.vm = visitor.NewManager(ctl.ctx, ctl.runID, ctl.clientCfg, ctl.connectServer, ctl.msgTransporter) ctl.vm.Reload(visitorCfgs) return ctl } diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index e961d60f974..b336e13ad9f 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -54,8 +54,8 @@ func NewProxy( msgTransporter transport.MessageTransporter, ) (pxy Proxy) { var limiter *rate.Limiter - limitBytes := pxyConf.GetBaseInfo().BandwidthLimit.Bytes() - if limitBytes > 0 && pxyConf.GetBaseInfo().BandwidthLimitMode == config.BandwidthLimitModeClient { + limitBytes := pxyConf.GetBaseConfig().BandwidthLimit.Bytes() + if limitBytes > 0 && pxyConf.GetBaseConfig().BandwidthLimitMode == config.BandwidthLimitModeClient { limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) } @@ -148,7 +148,7 @@ func (pxy *TCPProxy) Close() { } func (pxy *TCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, conn, []byte(pxy.clientCfg.Token), m) } @@ -177,7 +177,7 @@ func (pxy *TCPMuxProxy) Close() { } func (pxy *TCPMuxProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, conn, []byte(pxy.clientCfg.Token), m) } @@ -206,7 +206,7 @@ func (pxy *HTTPProxy) Close() { } func (pxy *HTTPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, conn, []byte(pxy.clientCfg.Token), m) } @@ -235,7 +235,7 @@ func (pxy *HTTPSProxy) Close() { } func (pxy *HTTPSProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, conn, []byte(pxy.clientCfg.Token), m) } @@ -264,7 +264,7 @@ func (pxy *STCPProxy) Close() { } func (pxy *STCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, conn, []byte(pxy.clientCfg.Token), m) } diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index f5d7502ceb6..9e551ced700 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "net" + "reflect" "sync" "github.com/fatedier/frp/client/event" @@ -121,21 +122,18 @@ func (pm *Manager) Reload(pxyCfgs map[string]config.ProxyConf) { for name, pxy := range pm.proxies { del := false cfg, ok := pxyCfgs[name] - if !ok { - del = true - } else if !pxy.Cfg.Compare(cfg) { + if !ok || !reflect.DeepEqual(pxy.Cfg, cfg) { del = true } if del { delPxyNames = append(delPxyNames, name) delete(pm.proxies, name) - pxy.Stop() } } if len(delPxyNames) > 0 { - xl.Info("proxy removed: %v", delPxyNames) + xl.Info("proxy removed: %s", delPxyNames) } addPxyNames := make([]string, 0) @@ -149,6 +147,6 @@ func (pm *Manager) Reload(pxyCfgs map[string]config.ProxyConf) { } } if len(addPxyNames) > 0 { - xl.Info("proxy added: %v", addPxyNames) + xl.Info("proxy added: %s", addPxyNames) } } diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index f2caa6182eb..913094272bf 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -91,7 +91,7 @@ func NewWrapper( eventHandler event.Handler, msgTransporter transport.MessageTransporter, ) *Wrapper { - baseInfo := cfg.GetBaseInfo() + baseInfo := cfg.GetBaseConfig() xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(baseInfo.ProxyName) pw := &Wrapper{ WorkingStatus: WorkingStatus{ diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index 64ce507486c..a25dc185cc1 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -155,7 +155,7 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s xl.Error("accept connection error: %v", err) return } - go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, muxConn, []byte(pxy.cfg.Sk), startWorkConnMsg) } } @@ -194,7 +194,7 @@ func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, star _ = c.CloseWithError(0, "") return } - go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseInfo(), pxy.limiter, + go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, utilnet.QuicStreamToNetConn(stream, c), []byte(pxy.cfg.Sk), startWorkConnMsg) } } diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 7086c61f2e0..2ea27f38f7f 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -80,7 +80,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { defer userConn.Close() xl.Debug("get a new stcp user connection") - visitorConn, err := sv.connectServer() + visitorConn, err := sv.helper.ConnectServer() if err != nil { return } @@ -88,6 +88,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { now := time.Now().Unix() newVisitorConnMsg := &msg.NewVisitorConn{ + RunID: sv.helper.RunID(), ProxyName: sv.cfg.ServerName, SignKey: util.GetAuthKey(sv.cfg.Sk, now), Timestamp: now, diff --git a/client/visitor/sudp.go b/client/visitor/sudp.go index 1e052c34632..5b2d5177937 100644 --- a/client/visitor/sudp.go +++ b/client/visitor/sudp.go @@ -199,13 +199,14 @@ func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { xl := xlog.FromContextSafe(sv.ctx) - visitorConn, err := sv.connectServer() + visitorConn, err := sv.helper.ConnectServer() if err != nil { return nil, fmt.Errorf("frpc connect frps error: %v", err) } now := time.Now().Unix() newVisitorConnMsg := &msg.NewVisitorConn{ + RunID: sv.helper.RunID(), ProxyName: sv.cfg.ServerName, SignKey: util.GetAuthKey(sv.cfg.Sk, now), Timestamp: now, diff --git a/client/visitor/visitor.go b/client/visitor/visitor.go index 10c0ab13905..7020df63997 100644 --- a/client/visitor/visitor.go +++ b/client/visitor/visitor.go @@ -25,6 +25,19 @@ import ( "github.com/fatedier/frp/pkg/util/xlog" ) +// Helper wrapps some functions for visitor to use. +type Helper interface { + // ConnectServer directly connects to the frp server. + ConnectServer() (net.Conn, error) + // TransferConn transfers the connection to another visitor. + TransferConn(string, net.Conn) error + // MsgTransporter returns the message transporter that is used to send and receive messages + // to the frp server through the controller. + MsgTransporter() transport.MessageTransporter + // RunID returns the run id of current controller. + RunID() string +} + // Visitor is used for forward traffics from local port tot remote service. type Visitor interface { Run() error @@ -36,18 +49,14 @@ func NewVisitor( ctx context.Context, cfg config.VisitorConf, clientCfg config.ClientCommonConf, - connectServer func() (net.Conn, error), - transferConn func(string, net.Conn) error, - msgTransporter transport.MessageTransporter, + helper Helper, ) (visitor Visitor) { - xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseInfo().ProxyName) + xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseConfig().ProxyName) baseVisitor := BaseVisitor{ - clientCfg: clientCfg, - connectServer: connectServer, - transferConn: transferConn, - msgTransporter: msgTransporter, - ctx: xlog.NewContext(ctx, xl), - internalLn: utilnet.NewInternalListener(), + clientCfg: clientCfg, + helper: helper, + ctx: xlog.NewContext(ctx, xl), + internalLn: utilnet.NewInternalListener(), } switch cfg := cfg.(type) { case *config.STCPVisitorConf: @@ -72,12 +81,10 @@ func NewVisitor( } type BaseVisitor struct { - clientCfg config.ClientCommonConf - connectServer func() (net.Conn, error) - transferConn func(string, net.Conn) error - msgTransporter transport.MessageTransporter - l net.Listener - internalLn *utilnet.InternalListener + clientCfg config.ClientCommonConf + helper Helper + l net.Listener + internalLn *utilnet.InternalListener mu sync.RWMutex ctx context.Context diff --git a/client/visitor/visitor_manager.go b/client/visitor/visitor_manager.go index 799ee3a5999..344101aeb64 100644 --- a/client/visitor/visitor_manager.go +++ b/client/visitor/visitor_manager.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "net" + "reflect" "sync" "time" @@ -27,11 +28,10 @@ import ( ) type Manager struct { - clientCfg config.ClientCommonConf - connectServer func() (net.Conn, error) - msgTransporter transport.MessageTransporter - cfgs map[string]config.VisitorConf - visitors map[string]Visitor + clientCfg config.ClientCommonConf + cfgs map[string]config.VisitorConf + visitors map[string]Visitor + helper Helper checkInterval time.Duration @@ -43,20 +43,26 @@ type Manager struct { func NewManager( ctx context.Context, + runID string, clientCfg config.ClientCommonConf, connectServer func() (net.Conn, error), msgTransporter transport.MessageTransporter, ) *Manager { - return &Manager{ - clientCfg: clientCfg, - connectServer: connectServer, - msgTransporter: msgTransporter, - cfgs: make(map[string]config.VisitorConf), - visitors: make(map[string]Visitor), - checkInterval: 10 * time.Second, - ctx: ctx, - stopCh: make(chan struct{}), + m := &Manager{ + clientCfg: clientCfg, + cfgs: make(map[string]config.VisitorConf), + visitors: make(map[string]Visitor), + checkInterval: 10 * time.Second, + ctx: ctx, + stopCh: make(chan struct{}), } + m.helper = &visitorHelperImpl{ + connectServerFn: connectServer, + msgTransporter: msgTransporter, + transferConnFn: m.TransferConn, + runID: runID, + } + return m } func (vm *Manager) Run() { @@ -73,7 +79,7 @@ func (vm *Manager) Run() { case <-ticker.C: vm.mu.Lock() for _, cfg := range vm.cfgs { - name := cfg.GetBaseInfo().ProxyName + name := cfg.GetBaseConfig().ProxyName if _, exist := vm.visitors[name]; !exist { xl.Info("try to start visitor [%s]", name) _ = vm.startVisitor(cfg) @@ -100,8 +106,8 @@ func (vm *Manager) Close() { // Hold lock before calling this function. func (vm *Manager) startVisitor(cfg config.VisitorConf) (err error) { xl := xlog.FromContextSafe(vm.ctx) - name := cfg.GetBaseInfo().ProxyName - visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.connectServer, vm.TransferConn, vm.msgTransporter) + name := cfg.GetBaseConfig().ProxyName + visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.helper) err = visitor.Run() if err != nil { xl.Warn("start error: %v", err) @@ -121,9 +127,7 @@ func (vm *Manager) Reload(cfgs map[string]config.VisitorConf) { for name, oldCfg := range vm.cfgs { del := false cfg, ok := cfgs[name] - if !ok { - del = true - } else if !oldCfg.Compare(cfg) { + if !ok || !reflect.DeepEqual(oldCfg, cfg) { del = true } @@ -163,3 +167,26 @@ func (vm *Manager) TransferConn(name string, conn net.Conn) error { } return v.AcceptConn(conn) } + +type visitorHelperImpl struct { + connectServerFn func() (net.Conn, error) + msgTransporter transport.MessageTransporter + transferConnFn func(name string, conn net.Conn) error + runID string +} + +func (v *visitorHelperImpl) ConnectServer() (net.Conn, error) { + return v.connectServerFn() +} + +func (v *visitorHelperImpl) TransferConn(name string, conn net.Conn) error { + return v.transferConnFn(name, conn) +} + +func (v *visitorHelperImpl) MsgTransporter() transport.MessageTransporter { + return v.msgTransporter +} + +func (v *visitorHelperImpl) RunID() string { + return v.runID +} diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 5c4e2cf66da..73f307896e5 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -183,7 +183,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } xl.Debug("try to transfer connection to visitor: %s", sv.cfg.FallbackTo) - if err := sv.transferConn(sv.cfg.FallbackTo, userConn); err != nil { + if err := sv.helper.TransferConn(sv.cfg.FallbackTo, userConn); err != nil { xl.Error("transfer connection to visitor %s error: %v", sv.cfg.FallbackTo, err) return } @@ -266,7 +266,7 @@ func (sv *XTCPVisitor) getTunnelConn() (net.Conn, error) { // 4. Create a tunnel session using an underlying UDP connection. func (sv *XTCPVisitor) makeNatHole() { xl := xlog.FromContextSafe(sv.ctx) - if err := nathole.PreCheck(sv.ctx, sv.msgTransporter, sv.cfg.ServerName, 5*time.Second); err != nil { + if err := nathole.PreCheck(sv.ctx, sv.helper.MsgTransporter(), sv.cfg.ServerName, 5*time.Second); err != nil { xl.Warn("nathole precheck error: %v", err) return } @@ -294,7 +294,7 @@ func (sv *XTCPVisitor) makeNatHole() { AssistedAddrs: prepareResult.AssistedAddrs, } - natHoleRespMsg, err := nathole.ExchangeInfo(sv.ctx, sv.msgTransporter, transactionID, natHoleVisitorMsg, 5*time.Second) + natHoleRespMsg, err := nathole.ExchangeInfo(sv.ctx, sv.helper.MsgTransporter(), transactionID, natHoleVisitorMsg, 5*time.Second) if err != nil { listenConn.Close() xl.Warn("nathole exchange info error: %v", err) diff --git a/cmd/frpc/sub/http.go b/cmd/frpc/sub/http.go index 22eeefe6047..1d152585360 100644 --- a/cmd/frpc/sub/http.go +++ b/cmd/frpc/sub/http.go @@ -79,7 +79,7 @@ var httpCmd = &cobra.Command{ } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/https.go b/cmd/frpc/sub/https.go index 187aa99baf4..2eb6ed6b40a 100644 --- a/cmd/frpc/sub/https.go +++ b/cmd/frpc/sub/https.go @@ -71,7 +71,7 @@ var httpsCmd = &cobra.Command{ } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/stcp.go b/cmd/frpc/sub/stcp.go index ad0a57ce568..24aa955a24c 100644 --- a/cmd/frpc/sub/stcp.go +++ b/cmd/frpc/sub/stcp.go @@ -78,7 +78,7 @@ var stcpCmd = &cobra.Command{ os.Exit(1) } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) @@ -95,7 +95,7 @@ var stcpCmd = &cobra.Command{ cfg.ServerName = serverName cfg.BindAddr = bindAddr cfg.BindPort = bindPort - err = cfg.Check() + err = cfg.Validate() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/sudp.go b/cmd/frpc/sub/sudp.go index 0ae8498be83..553e42528dc 100644 --- a/cmd/frpc/sub/sudp.go +++ b/cmd/frpc/sub/sudp.go @@ -78,7 +78,7 @@ var sudpCmd = &cobra.Command{ os.Exit(1) } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) @@ -95,7 +95,7 @@ var sudpCmd = &cobra.Command{ cfg.ServerName = serverName cfg.BindAddr = bindAddr cfg.BindPort = bindPort - err = cfg.Check() + err = cfg.Validate() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/tcp.go b/cmd/frpc/sub/tcp.go index 2c597f19e85..2da9ad61be1 100644 --- a/cmd/frpc/sub/tcp.go +++ b/cmd/frpc/sub/tcp.go @@ -68,7 +68,7 @@ var tcpCmd = &cobra.Command{ } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/tcpmux.go b/cmd/frpc/sub/tcpmux.go index ecdd6002613..4b993f9cec1 100644 --- a/cmd/frpc/sub/tcpmux.go +++ b/cmd/frpc/sub/tcpmux.go @@ -73,7 +73,7 @@ var tcpMuxCmd = &cobra.Command{ } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/udp.go b/cmd/frpc/sub/udp.go index f9dfa3f692a..9a4803dc94d 100644 --- a/cmd/frpc/sub/udp.go +++ b/cmd/frpc/sub/udp.go @@ -68,7 +68,7 @@ var udpCmd = &cobra.Command{ } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/xtcp.go b/cmd/frpc/sub/xtcp.go index ea201d5381e..60483afa709 100644 --- a/cmd/frpc/sub/xtcp.go +++ b/cmd/frpc/sub/xtcp.go @@ -78,7 +78,7 @@ var xtcpCmd = &cobra.Command{ os.Exit(1) } cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.CheckForCli() + err = cfg.ValidateForClient() if err != nil { fmt.Println(err) os.Exit(1) @@ -95,7 +95,7 @@ var xtcpCmd = &cobra.Command{ cfg.ServerName = serverName cfg.BindAddr = bindAddr cfg.BindPort = bindPort - err = cfg.Check() + err = cfg.Validate() if err != nil { fmt.Println(err) os.Exit(1) diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 1c609f6c127..4186b538f2d 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -326,6 +326,9 @@ local_ip = 127.0.0.1 local_port = 22 use_encryption = false use_compression = false +# If not empty, only visitors from specified users can connect. +# Otherwise, visitors from same user can connect. '*' means allow all users. +allow_users = * # user of frpc should be same in both stcp server and stcp visitor [secret_tcp_visitor] @@ -350,10 +353,15 @@ local_ip = 127.0.0.1 local_port = 22 use_encryption = false use_compression = false +# If not empty, only visitors from specified users can connect. +# Otherwise, visitors from same user can connect. '*' means allow all users. +allow_users = user1, user2 [p2p_tcp_visitor] role = visitor type = xtcp +# if the server user is not set, it defaults to the current user +server_user = user1 server_name = p2p_tcp sk = abcdefg bind_addr = 127.0.0.1 diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index e6ce3a108c7..dc43fd97df4 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -500,8 +500,10 @@ func Test_LoadClientBasicConf(t *testing.T) { }, BandwidthLimitMode: BandwidthLimitModeClient, }, - Role: "server", - Sk: "abcdefg", + RoleServerCommonConf: RoleServerCommonConf{ + Role: "server", + Sk: "abcdefg", + }, }, testUser + ".p2p_tcp": &XTCPProxyConf{ BaseProxyConf: BaseProxyConf{ @@ -513,8 +515,10 @@ func Test_LoadClientBasicConf(t *testing.T) { }, BandwidthLimitMode: BandwidthLimitModeClient, }, - Role: "server", - Sk: "abcdefg", + RoleServerCommonConf: RoleServerCommonConf{ + Role: "server", + Sk: "abcdefg", + }, }, testUser + ".tcpmuxhttpconnect": &TCPMuxProxyConf{ BaseProxyConf: BaseProxyConf{ diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index bca015eb811..9cc89492487 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -51,13 +51,23 @@ func NewConfByType(proxyType string) ProxyConf { } type ProxyConf interface { - GetBaseInfo() *BaseProxyConf + // GetBaseConfig returns the BaseProxyConf for this config. + GetBaseConfig() *BaseProxyConf + // SetDefaultValues sets the default values for this config. + SetDefaultValues() + // UnmarshalFromMsg unmarshals a msg.NewProxy message into this config. + // This function will be called on the frps side. UnmarshalFromMsg(*msg.NewProxy) + // UnmarshalFromIni unmarshals a ini.Section into this config. This function + // will be called on the frpc side. UnmarshalFromIni(string, string, *ini.Section) error + // MarshalToMsg marshals this config into a msg.NewProxy message. This + // function will be called on the frpc side. MarshalToMsg(*msg.NewProxy) - CheckForCli() error - CheckForSvr(ServerCommonConf) error - Compare(ProxyConf) bool + // ValidateForClient checks that the config is valid for the frpc side. + ValidateForClient() error + // ValidateForServer checks that the config is valid for the frps side. + ValidateForServer(ServerCommonConf) error } // LocalSvrConf configures what location the client will to, or what @@ -158,6 +168,16 @@ type DomainConf struct { SubDomain string `ini:"subdomain" json:"subdomain"` } +type RoleServerCommonConf struct { + Role string `ini:"role" json:"role"` + Sk string `ini:"sk" json:"sk"` + AllowUsers []string `ini:"allow_users" json:"allow_users"` +} + +func (cfg *RoleServerCommonConf) setDefaultValues() { + cfg.Role = "server" +} + // HTTP type HTTPProxyConf struct { BaseProxyConf `ini:",extends"` @@ -203,73 +223,30 @@ type TCPMuxProxyConf struct { // STCP type STCPProxyConf struct { - BaseProxyConf `ini:",extends"` - - Role string `ini:"role" json:"role"` - Sk string `ini:"sk" json:"sk"` + BaseProxyConf `ini:",extends"` + RoleServerCommonConf `ini:",extends"` } // XTCP type XTCPProxyConf struct { - BaseProxyConf `ini:",extends"` - - Role string `ini:"role" json:"role"` - Sk string `ini:"sk" json:"sk"` + BaseProxyConf `ini:",extends"` + RoleServerCommonConf `ini:",extends"` } // SUDP type SUDPProxyConf struct { - BaseProxyConf `ini:",extends"` - - Role string `ini:"role" json:"role"` - Sk string `ini:"sk" json:"sk"` + BaseProxyConf `ini:",extends"` + RoleServerCommonConf `ini:",extends"` } // Proxy Conf Loader // DefaultProxyConf creates a empty ProxyConf object by proxyType. // If proxyType doesn't exist, return nil. func DefaultProxyConf(proxyType string) ProxyConf { - var conf ProxyConf - switch proxyType { - case consts.TCPProxy: - conf = &TCPProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - } - case consts.TCPMuxProxy: - conf = &TCPMuxProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - } - case consts.UDPProxy: - conf = &UDPProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - } - case consts.HTTPProxy: - conf = &HTTPProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - } - case consts.HTTPSProxy: - conf = &HTTPSProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - } - case consts.STCPProxy: - conf = &STCPProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - Role: "server", - } - case consts.XTCPProxy: - conf = &XTCPProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - Role: "server", - } - case consts.SUDPProxy: - conf = &SUDPProxyConf{ - BaseProxyConf: defaultBaseProxyConf(proxyType), - Role: "server", - } - default: - return nil + conf := NewConfByType(proxyType) + if conf != nil { + conf.SetDefaultValues() } - return conf } @@ -290,10 +267,9 @@ func NewProxyConfFromIni(prefix, name string, section *ini.Section) (ProxyConf, return nil, err } - if err := conf.CheckForCli(); err != nil { + if err := conf.ValidateForClient(); err != nil { return nil, err } - return conf, nil } @@ -310,7 +286,7 @@ func NewProxyConfFromMsg(pMsg *msg.NewProxy, serverCfg ServerCommonConf) (ProxyC conf.UnmarshalFromMsg(pMsg) - err := conf.CheckForSvr(serverCfg) + err := conf.ValidateForServer(serverCfg) if err != nil { return nil, err } @@ -319,42 +295,15 @@ func NewProxyConfFromMsg(pMsg *msg.NewProxy, serverCfg ServerCommonConf) (ProxyC } // Base -func defaultBaseProxyConf(proxyType string) BaseProxyConf { - return BaseProxyConf{ - ProxyType: proxyType, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - }, - BandwidthLimitMode: BandwidthLimitModeClient, - } -} - -func (cfg *BaseProxyConf) GetBaseInfo() *BaseProxyConf { +func (cfg *BaseProxyConf) GetBaseConfig() *BaseProxyConf { return cfg } -func (cfg *BaseProxyConf) compare(cmp *BaseProxyConf) bool { - if cfg.ProxyName != cmp.ProxyName || - cfg.ProxyType != cmp.ProxyType || - cfg.UseEncryption != cmp.UseEncryption || - cfg.UseCompression != cmp.UseCompression || - cfg.Group != cmp.Group || - cfg.GroupKey != cmp.GroupKey || - cfg.ProxyProtocolVersion != cmp.ProxyProtocolVersion || - !cfg.BandwidthLimit.Equal(&cmp.BandwidthLimit) || - cfg.BandwidthLimitMode != cmp.BandwidthLimitMode || - !reflect.DeepEqual(cfg.Metas, cmp.Metas) { - return false - } - - if !reflect.DeepEqual(cfg.LocalSvrConf, cmp.LocalSvrConf) { - return false +func (cfg *BaseProxyConf) SetDefaultValues() { + cfg.LocalSvrConf = LocalSvrConf{ + LocalIP: "127.0.0.1", } - if !reflect.DeepEqual(cfg.HealthCheckConf, cmp.HealthCheckConf) { - return false - } - - return true + cfg.BandwidthLimitMode = BandwidthLimitModeClient } // BaseProxyConf apply custom logic changes. @@ -423,7 +372,7 @@ func (cfg *BaseProxyConf) unmarshalFromMsg(pMsg *msg.NewProxy) { cfg.Metas = pMsg.Metas } -func (cfg *BaseProxyConf) checkForCli() (err error) { +func (cfg *BaseProxyConf) validateForClient() (err error) { if cfg.ProxyProtocolVersion != "" { if cfg.ProxyProtocolVersion != "v1" && cfg.ProxyProtocolVersion != "v2" { return fmt.Errorf("no support proxy protocol version: %s", cfg.ProxyProtocolVersion) @@ -434,16 +383,16 @@ func (cfg *BaseProxyConf) checkForCli() (err error) { return fmt.Errorf("bandwidth_limit_mode should be client or server") } - if err = cfg.LocalSvrConf.checkForCli(); err != nil { + if err = cfg.LocalSvrConf.validateForClient(); err != nil { return } - if err = cfg.HealthCheckConf.checkForCli(); err != nil { + if err = cfg.HealthCheckConf.validateForClient(); err != nil { return } return nil } -func (cfg *BaseProxyConf) checkForSvr() (err error) { +func (cfg *BaseProxyConf) validateForServer() (err error) { if cfg.BandwidthLimitMode != "client" && cfg.BandwidthLimitMode != "server" { return fmt.Errorf("bandwidth_limit_mode should be client or server") } @@ -459,14 +408,14 @@ func (cfg *DomainConf) check() (err error) { return } -func (cfg *DomainConf) checkForCli() (err error) { +func (cfg *DomainConf) validateForClient() (err error) { if err = cfg.check(); err != nil { return } return } -func (cfg *DomainConf) checkForSvr(serverCfg ServerCommonConf) (err error) { +func (cfg *DomainConf) validateForServer(serverCfg ServerCommonConf) (err error) { if err = cfg.check(); err != nil { return } @@ -491,7 +440,7 @@ func (cfg *DomainConf) checkForSvr(serverCfg ServerCommonConf) (err error) { } // LocalSvrConf -func (cfg *LocalSvrConf) checkForCli() (err error) { +func (cfg *LocalSvrConf) validateForClient() (err error) { if cfg.Plugin == "" { if cfg.LocalIP == "" { err = fmt.Errorf("local ip or plugin is required") @@ -506,7 +455,7 @@ func (cfg *LocalSvrConf) checkForCli() (err error) { } // HealthCheckConf -func (cfg *HealthCheckConf) checkForCli() error { +func (cfg *HealthCheckConf) validateForClient() error { if cfg.HealthCheckType != "" && cfg.HealthCheckType != "tcp" && cfg.HealthCheckType != "http" { return fmt.Errorf("unsupport health check type") } @@ -524,7 +473,7 @@ func preUnmarshalFromIni(cfg ProxyConf, prefix string, name string, section *ini return err } - err = cfg.GetBaseInfo().decorate(prefix, name, section) + err = cfg.GetBaseConfig().decorate(prefix, name, section) if err != nil { return err } @@ -533,24 +482,6 @@ func preUnmarshalFromIni(cfg ProxyConf, prefix string, name string, section *ini } // TCP -func (cfg *TCPProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*TCPProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if cfg.RemotePort != cmpConf.RemotePort { - return false - } - - return true -} - func (cfg *TCPProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { cfg.BaseProxyConf.unmarshalFromMsg(pMsg) @@ -576,8 +507,8 @@ func (cfg *TCPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.RemotePort = cfg.RemotePort } -func (cfg *TCPProxyConf) CheckForCli() (err error) { - if err = cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *TCPProxyConf) ValidateForClient() (err error) { + if err = cfg.BaseProxyConf.validateForClient(); err != nil { return } @@ -586,39 +517,14 @@ func (cfg *TCPProxyConf) CheckForCli() (err error) { return } -func (cfg *TCPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *TCPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } return nil } // TCPMux -func (cfg *TCPMuxProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*TCPMuxProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if !reflect.DeepEqual(cfg.DomainConf, cmpConf.DomainConf) { - return false - } - - if cfg.Multiplexer != cmpConf.Multiplexer || - cfg.HTTPUser != cmpConf.HTTPUser || - cfg.HTTPPwd != cmpConf.HTTPPwd || - cfg.RouteByHTTPUser != cmpConf.RouteByHTTPUser { - return false - } - - return true -} - func (cfg *TCPMuxProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { err := preUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -654,13 +560,13 @@ func (cfg *TCPMuxProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.RouteByHTTPUser = cfg.RouteByHTTPUser } -func (cfg *TCPMuxProxyConf) CheckForCli() (err error) { - if err = cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *TCPMuxProxyConf) ValidateForClient() (err error) { + if err = cfg.BaseProxyConf.validateForClient(); err != nil { return } // Add custom logic check if exists - if err = cfg.DomainConf.checkForCli(); err != nil { + if err = cfg.DomainConf.validateForClient(); err != nil { return } @@ -671,8 +577,8 @@ func (cfg *TCPMuxProxyConf) CheckForCli() (err error) { return } -func (cfg *TCPMuxProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *TCPMuxProxyConf) ValidateForServer(serverCfg ServerCommonConf) (err error) { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } @@ -684,7 +590,7 @@ func (cfg *TCPMuxProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) return fmt.Errorf("proxy [%s] type [tcpmux] with multiplexer [httpconnect] requires tcpmux_httpconnect_port configuration", cfg.ProxyName) } - if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil { + if err = cfg.DomainConf.validateForServer(serverCfg); err != nil { err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) return } @@ -693,24 +599,6 @@ func (cfg *TCPMuxProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) } // UDP -func (cfg *UDPProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*UDPProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if cfg.RemotePort != cmpConf.RemotePort { - return false - } - - return true -} - func (cfg *UDPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { err := preUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -736,8 +624,8 @@ func (cfg *UDPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.RemotePort = cfg.RemotePort } -func (cfg *UDPProxyConf) CheckForCli() (err error) { - if err = cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *UDPProxyConf) ValidateForClient() (err error) { + if err = cfg.BaseProxyConf.validateForClient(); err != nil { return } @@ -746,41 +634,14 @@ func (cfg *UDPProxyConf) CheckForCli() (err error) { return } -func (cfg *UDPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *UDPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } return nil } // HTTP -func (cfg *HTTPProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*HTTPProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if !reflect.DeepEqual(cfg.DomainConf, cmpConf.DomainConf) { - return false - } - - if !reflect.DeepEqual(cfg.Locations, cmpConf.Locations) || - cfg.HTTPUser != cmpConf.HTTPUser || - cfg.HTTPPwd != cmpConf.HTTPPwd || - cfg.HostHeaderRewrite != cmpConf.HostHeaderRewrite || - cfg.RouteByHTTPUser != cmpConf.RouteByHTTPUser || - !reflect.DeepEqual(cfg.Headers, cmpConf.Headers) { - return false - } - - return true -} - func (cfg *HTTPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { err := preUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -789,7 +650,6 @@ func (cfg *HTTPProxyConf) UnmarshalFromIni(prefix string, name string, section * // Add custom logic unmarshal if exists cfg.Headers = GetMapWithoutPrefix(section.KeysHash(), "header_") - return nil } @@ -821,21 +681,21 @@ func (cfg *HTTPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.RouteByHTTPUser = cfg.RouteByHTTPUser } -func (cfg *HTTPProxyConf) CheckForCli() (err error) { - if err = cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *HTTPProxyConf) ValidateForClient() (err error) { + if err = cfg.BaseProxyConf.validateForClient(); err != nil { return } // Add custom logic check if exists - if err = cfg.DomainConf.checkForCli(); err != nil { + if err = cfg.DomainConf.validateForClient(); err != nil { return } return } -func (cfg *HTTPProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *HTTPProxyConf) ValidateForServer(serverCfg ServerCommonConf) (err error) { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } @@ -843,7 +703,7 @@ func (cfg *HTTPProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { return fmt.Errorf("type [http] not support when vhost_http_port is not set") } - if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil { + if err = cfg.DomainConf.validateForServer(serverCfg); err != nil { err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) return } @@ -852,24 +712,6 @@ func (cfg *HTTPProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { } // HTTPS -func (cfg *HTTPSProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*HTTPSProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if !reflect.DeepEqual(cfg.DomainConf, cmpConf.DomainConf) { - return false - } - - return true -} - func (cfg *HTTPSProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { err := preUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -877,7 +719,6 @@ func (cfg *HTTPSProxyConf) UnmarshalFromIni(prefix string, name string, section } // Add custom logic unmarshal if exists - return nil } @@ -897,21 +738,20 @@ func (cfg *HTTPSProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.SubDomain = cfg.SubDomain } -func (cfg *HTTPSProxyConf) CheckForCli() (err error) { - if err = cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *HTTPSProxyConf) ValidateForClient() (err error) { + if err = cfg.BaseProxyConf.validateForClient(); err != nil { return } // Add custom logic check if exists - if err = cfg.DomainConf.checkForCli(); err != nil { + if err = cfg.DomainConf.validateForClient(); err != nil { return } - return } -func (cfg *HTTPSProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *HTTPSProxyConf) ValidateForServer(serverCfg ServerCommonConf) (err error) { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } @@ -919,7 +759,7 @@ func (cfg *HTTPSProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { return fmt.Errorf("type [https] not support when vhost_https_port is not set") } - if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil { + if err = cfg.DomainConf.validateForServer(serverCfg); err != nil { err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) return } @@ -928,23 +768,9 @@ func (cfg *HTTPSProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) { } // SUDP -func (cfg *SUDPProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*SUDPProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if cfg.Role != cmpConf.Role || - cfg.Sk != cmpConf.Sk { - return false - } - - return true +func (cfg *SUDPProxyConf) SetDefaultValues() { + cfg.BaseProxyConf.SetDefaultValues() + cfg.RoleServerCommonConf.setDefaultValues() } func (cfg *SUDPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { @@ -954,7 +780,6 @@ func (cfg *SUDPProxyConf) UnmarshalFromIni(prefix string, name string, section * } // Add custom logic unmarshal if exists - return nil } @@ -973,8 +798,8 @@ func (cfg *SUDPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.Sk = cfg.Sk } -func (cfg *SUDPProxyConf) CheckForCli() (err error) { - if err := cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *SUDPProxyConf) ValidateForClient() (err error) { + if err := cfg.BaseProxyConf.validateForClient(); err != nil { return err } @@ -986,31 +811,17 @@ func (cfg *SUDPProxyConf) CheckForCli() (err error) { return nil } -func (cfg *SUDPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *SUDPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } return nil } // STCP -func (cfg *STCPProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*STCPProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if cfg.Role != cmpConf.Role || - cfg.Sk != cmpConf.Sk { - return false - } - - return true +func (cfg *STCPProxyConf) SetDefaultValues() { + cfg.BaseProxyConf.SetDefaultValues() + cfg.RoleServerCommonConf.setDefaultValues() } func (cfg *STCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { @@ -1023,7 +834,6 @@ func (cfg *STCPProxyConf) UnmarshalFromIni(prefix string, name string, section * if cfg.Role == "" { cfg.Role = "server" } - return nil } @@ -1042,8 +852,8 @@ func (cfg *STCPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.Sk = cfg.Sk } -func (cfg *STCPProxyConf) CheckForCli() (err error) { - if err = cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *STCPProxyConf) ValidateForClient() (err error) { + if err = cfg.BaseProxyConf.validateForClient(); err != nil { return } @@ -1055,30 +865,17 @@ func (cfg *STCPProxyConf) CheckForCli() (err error) { return } -func (cfg *STCPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *STCPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } return nil } // XTCP -func (cfg *XTCPProxyConf) Compare(cmp ProxyConf) bool { - cmpConf, ok := cmp.(*XTCPProxyConf) - if !ok { - return false - } - - if !cfg.BaseProxyConf.compare(&cmpConf.BaseProxyConf) { - return false - } - - // Add custom logic equal if exists. - if cfg.Role != cmpConf.Role || - cfg.Sk != cmpConf.Sk { - return false - } - return true +func (cfg *XTCPProxyConf) SetDefaultValues() { + cfg.BaseProxyConf.SetDefaultValues() + cfg.RoleServerCommonConf.setDefaultValues() } func (cfg *XTCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { @@ -1109,8 +906,8 @@ func (cfg *XTCPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { pMsg.Sk = cfg.Sk } -func (cfg *XTCPProxyConf) CheckForCli() (err error) { - if err = cfg.BaseProxyConf.checkForCli(); err != nil { +func (cfg *XTCPProxyConf) ValidateForClient() (err error) { + if err = cfg.BaseProxyConf.validateForClient(); err != nil { return } @@ -1121,8 +918,8 @@ func (cfg *XTCPProxyConf) CheckForCli() (err error) { return } -func (cfg *XTCPProxyConf) CheckForSvr(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.checkForSvr(); err != nil { +func (cfg *XTCPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { + if err := cfg.BaseProxyConf.validateForServer(); err != nil { return err } return nil diff --git a/pkg/config/proxy_test.go b/pkg/config/proxy_test.go index 894d6fd3ec8..9ef6f87c21d 100644 --- a/pkg/config/proxy_test.go +++ b/pkg/config/proxy_test.go @@ -254,8 +254,10 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { }, BandwidthLimitMode: BandwidthLimitModeClient, }, - Role: "server", - Sk: "abcdefg", + RoleServerCommonConf: RoleServerCommonConf{ + Role: "server", + Sk: "abcdefg", + }, }, }, { @@ -279,8 +281,10 @@ func Test_Proxy_UnmarshalFromIni(t *testing.T) { }, BandwidthLimitMode: BandwidthLimitModeClient, }, - Role: "server", - Sk: "abcdefg", + RoleServerCommonConf: RoleServerCommonConf{ + Role: "server", + Sk: "abcdefg", + }, }, }, { diff --git a/pkg/config/visitor.go b/pkg/config/visitor.go index 808240bb180..1f388bad39f 100644 --- a/pkg/config/visitor.go +++ b/pkg/config/visitor.go @@ -34,10 +34,12 @@ var ( ) type VisitorConf interface { - GetBaseInfo() *BaseVisitorConf - Compare(cmp VisitorConf) bool + // GetBaseConfig returns the base config of visitor. + GetBaseConfig() *BaseVisitorConf + // UnmarshalFromIni unmarshals config from ini. UnmarshalFromIni(prefix string, name string, section *ini.Section) error - Check() error + // Validate validates config. + Validate() error } type BaseVisitorConf struct { @@ -47,8 +49,10 @@ type BaseVisitorConf struct { UseCompression bool `ini:"use_compression" json:"use_compression"` Role string `ini:"role" json:"role"` Sk string `ini:"sk" json:"sk"` - ServerName string `ini:"server_name" json:"server_name"` - BindAddr string `ini:"bind_addr" json:"bind_addr"` + // if the server user is not set, it defaults to the current user + ServerUser string `ini:"server_user" json:"server_user"` + ServerName string `ini:"server_name" json:"server_name"` + BindAddr string `ini:"bind_addr" json:"bind_addr"` // BindPort is the port that visitor listens on. // It can be less than 0, it means don't bind to the port and only receive connections redirected from // other visitors. (This is not supported for SUDP now) @@ -81,7 +85,6 @@ func DefaultVisitorConf(visitorType string) VisitorConf { if !ok { return nil } - return reflect.New(v).Interface().(VisitorConf) } @@ -103,7 +106,7 @@ func NewVisitorConfFromIni(prefix string, name string, section *ini.Section) (Vi return nil, fmt.Errorf("visitor [%s] type [%s] error", name, visitorType) } - if err := conf.Check(); err != nil { + if err := conf.Validate(); err != nil { return nil, err } @@ -111,26 +114,11 @@ func NewVisitorConfFromIni(prefix string, name string, section *ini.Section) (Vi } // Base -func (cfg *BaseVisitorConf) GetBaseInfo() *BaseVisitorConf { +func (cfg *BaseVisitorConf) GetBaseConfig() *BaseVisitorConf { return cfg } -func (cfg *BaseVisitorConf) compare(cmp *BaseVisitorConf) bool { - if cfg.ProxyName != cmp.ProxyName || - cfg.ProxyType != cmp.ProxyType || - cfg.UseEncryption != cmp.UseEncryption || - cfg.UseCompression != cmp.UseCompression || - cfg.Role != cmp.Role || - cfg.Sk != cmp.Sk || - cfg.ServerName != cmp.ServerName || - cfg.BindAddr != cmp.BindAddr || - cfg.BindPort != cmp.BindPort { - return false - } - return true -} - -func (cfg *BaseVisitorConf) check() (err error) { +func (cfg *BaseVisitorConf) validate() (err error) { if cfg.Role != "visitor" { err = fmt.Errorf("invalid role") return @@ -156,7 +144,11 @@ func (cfg *BaseVisitorConf) unmarshalFromIni(prefix string, name string, section cfg.ProxyName = prefix + name // server_name - cfg.ServerName = prefix + cfg.ServerName + if cfg.ServerUser == "" { + cfg.ServerName = prefix + cfg.ServerName + } else { + cfg.ServerName = cfg.ServerUser + "." + cfg.ServerName + } // bind_addr if cfg.BindAddr == "" { @@ -171,7 +163,7 @@ func preVisitorUnmarshalFromIni(cfg VisitorConf, prefix string, name string, sec return err } - err = cfg.GetBaseInfo().unmarshalFromIni(prefix, name, section) + err = cfg.GetBaseConfig().unmarshalFromIni(prefix, name, section) if err != nil { return err } @@ -181,21 +173,6 @@ func preVisitorUnmarshalFromIni(cfg VisitorConf, prefix string, name string, sec // SUDP var _ VisitorConf = &SUDPVisitorConf{} -func (cfg *SUDPVisitorConf) Compare(cmp VisitorConf) bool { - cmpConf, ok := cmp.(*SUDPVisitorConf) - if !ok { - return false - } - - if !cfg.BaseVisitorConf.compare(&cmpConf.BaseVisitorConf) { - return false - } - - // Add custom login equal, if exists - - return true -} - func (cfg *SUDPVisitorConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) (err error) { err = preVisitorUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -207,8 +184,8 @@ func (cfg *SUDPVisitorConf) UnmarshalFromIni(prefix string, name string, section return } -func (cfg *SUDPVisitorConf) Check() (err error) { - if err = cfg.BaseVisitorConf.check(); err != nil { +func (cfg *SUDPVisitorConf) Validate() (err error) { + if err = cfg.BaseVisitorConf.validate(); err != nil { return } @@ -220,21 +197,6 @@ func (cfg *SUDPVisitorConf) Check() (err error) { // STCP var _ VisitorConf = &STCPVisitorConf{} -func (cfg *STCPVisitorConf) Compare(cmp VisitorConf) bool { - cmpConf, ok := cmp.(*STCPVisitorConf) - if !ok { - return false - } - - if !cfg.BaseVisitorConf.compare(&cmpConf.BaseVisitorConf) { - return false - } - - // Add custom login equal, if exists - - return true -} - func (cfg *STCPVisitorConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) (err error) { err = preVisitorUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -246,8 +208,8 @@ func (cfg *STCPVisitorConf) UnmarshalFromIni(prefix string, name string, section return } -func (cfg *STCPVisitorConf) Check() (err error) { - if err = cfg.BaseVisitorConf.check(); err != nil { +func (cfg *STCPVisitorConf) Validate() (err error) { + if err = cfg.BaseVisitorConf.validate(); err != nil { return } @@ -259,28 +221,6 @@ func (cfg *STCPVisitorConf) Check() (err error) { // XTCP var _ VisitorConf = &XTCPVisitorConf{} -func (cfg *XTCPVisitorConf) Compare(cmp VisitorConf) bool { - cmpConf, ok := cmp.(*XTCPVisitorConf) - if !ok { - return false - } - - if !cfg.BaseVisitorConf.compare(&cmpConf.BaseVisitorConf) { - return false - } - - // Add custom login equal, if exists - if cfg.Protocol != cmpConf.Protocol || - cfg.KeepTunnelOpen != cmpConf.KeepTunnelOpen || - cfg.MaxRetriesAnHour != cmpConf.MaxRetriesAnHour || - cfg.MinRetryInterval != cmpConf.MinRetryInterval || - cfg.FallbackTo != cmpConf.FallbackTo || - cfg.FallbackTimeoutMs != cmpConf.FallbackTimeoutMs { - return false - } - return true -} - func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) (err error) { err = preVisitorUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -303,8 +243,8 @@ func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name string, section return } -func (cfg *XTCPVisitorConf) Check() (err error) { - if err = cfg.BaseVisitorConf.check(); err != nil { +func (cfg *XTCPVisitorConf) Validate() (err error) { + if err = cfg.BaseVisitorConf.validate(); err != nil { return } diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index c6fec4df1c6..2cb291ac8b2 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -145,6 +145,7 @@ type StartWorkConn struct { } type NewVisitorConn struct { + RunID string `json:"run_id,omitempty"` ProxyName string `json:"proxy_name,omitempty"` SignKey string `json:"sign_key,omitempty"` Timestamp int64 `json:"timestamp,omitempty"` diff --git a/server/control.go b/server/control.go index a4bffe39d30..01075484cc6 100644 --- a/server/control.go +++ b/server/control.go @@ -394,7 +394,7 @@ func (ctl *Control) stoper() { for _, pxy := range ctl.proxies { pxy.Close() ctl.pxyManager.Del(pxy.GetName()) - metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConf().GetBaseInfo().ProxyType) + metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConf().GetBaseConfig().ProxyType) notifyContent := &plugin.CloseProxyContent{ User: plugin.UserInfo{ @@ -614,7 +614,7 @@ func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error) { delete(ctl.proxies, closeMsg.ProxyName) ctl.mu.Unlock() - metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConf().GetBaseInfo().ProxyType) + metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConf().GetBaseConfig().ProxyType) notifyContent := &plugin.CloseProxyContent{ User: plugin.UserInfo{ diff --git a/server/proxy/http.go b/server/proxy/http.go index 143665b8aac..31742b7fad1 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -175,13 +175,13 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err workConn = utilnet.WrapReadWriteCloserToConn(rwc, tmpConn) workConn = utilnet.WrapStatsConn(workConn, pxy.updateStatsAfterClosedConn) - metrics.Server.OpenConnection(pxy.GetName(), pxy.GetConf().GetBaseInfo().ProxyType) + metrics.Server.OpenConnection(pxy.GetName(), pxy.GetConf().GetBaseConfig().ProxyType) return } func (pxy *HTTPProxy) updateStatsAfterClosedConn(totalRead, totalWrite int64) { name := pxy.GetName() - proxyType := pxy.GetConf().GetBaseInfo().ProxyType + proxyType := pxy.GetConf().GetBaseConfig().ProxyType metrics.Server.CloseConnection(name, proxyType) metrics.Server.AddTrafficIn(name, proxyType, totalWrite) metrics.Server.AddTrafficOut(name, proxyType, totalRead) diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 56dcea8304e..b2d326a9f91 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -196,16 +196,16 @@ func (pxy *BaseProxy) startListenHandler(p Proxy, handler func(Proxy, net.Conn, func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.ResourceController, poolCount int, getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, loginMsg *msg.Login, ) (pxy Proxy, err error) { - xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseInfo().ProxyName) + xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseConfig().ProxyName) var limiter *rate.Limiter - limitBytes := pxyConf.GetBaseInfo().BandwidthLimit.Bytes() - if limitBytes > 0 && pxyConf.GetBaseInfo().BandwidthLimitMode == config.BandwidthLimitModeServer { + limitBytes := pxyConf.GetBaseConfig().BandwidthLimit.Bytes() + if limitBytes > 0 && pxyConf.GetBaseConfig().BandwidthLimitMode == config.BandwidthLimitModeServer { limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) } basePxy := BaseProxy{ - name: pxyConf.GetBaseInfo().ProxyName, + name: pxyConf.GetBaseConfig().ProxyName, rc: rc, listeners: make([]net.Listener, 0), poolCount: poolCount, @@ -277,7 +277,7 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv content := &plugin.NewUserConnContent{ User: pxy.GetUserInfo(), ProxyName: pxy.GetName(), - ProxyType: pxy.GetConf().GetBaseInfo().ProxyType, + ProxyType: pxy.GetConf().GetBaseConfig().ProxyType, RemoteAddr: userConn.RemoteAddr().String(), } _, err := rc.PluginManager.NewUserConn(content) @@ -294,7 +294,7 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv defer workConn.Close() var local io.ReadWriteCloser = workConn - cfg := pxy.GetConf().GetBaseInfo() + cfg := pxy.GetConf().GetBaseConfig() xl.Trace("handler user tcp connection, use_encryption: %t, use_compression: %t", cfg.UseEncryption, cfg.UseCompression) if cfg.UseEncryption { local, err = libio.WithEncryption(local, []byte(serverCfg.Token)) @@ -317,7 +317,7 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv workConn.RemoteAddr().String(), userConn.LocalAddr().String(), userConn.RemoteAddr().String()) name := pxy.GetName() - proxyType := pxy.GetConf().GetBaseInfo().ProxyType + proxyType := pxy.GetConf().GetBaseConfig().ProxyType metrics.Server.OpenConnection(name, proxyType) inCount, outCount, _ := libio.Join(local, userConn) metrics.Server.CloseConnection(name, proxyType) diff --git a/server/proxy/udp.go b/server/proxy/udp.go index f1b7d06dc63..e047c9de33e 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -124,7 +124,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { pxy.readCh <- m metrics.Server.AddTrafficOut( pxy.GetName(), - pxy.GetConf().GetBaseInfo().ProxyType, + pxy.GetConf().GetBaseConfig().ProxyType, int64(len(m.Content)), ) }); errRet != nil { @@ -154,7 +154,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { xl.Trace("send message to udp workConn: %s", udpMsg.Content) metrics.Server.AddTrafficIn( pxy.GetName(), - pxy.GetConf().GetBaseInfo().ProxyType, + pxy.GetConf().GetBaseConfig().ProxyType, int64(len(udpMsg.Content)), ) continue From cceab7e1b199bd3cf6c806030dfb99482239b3a1 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 30 May 2023 22:18:56 +0800 Subject: [PATCH 073/444] client/proxy: simplify the code (#3465) --- client/proxy/general_tcp.go | 47 +++++++ client/proxy/proxy.go | 254 ++++++++---------------------------- client/proxy/sudp.go | 17 +++ client/proxy/udp.go | 18 ++- client/proxy/xtcp.go | 35 +++-- 5 files changed, 147 insertions(+), 224 deletions(-) create mode 100644 client/proxy/general_tcp.go diff --git a/client/proxy/general_tcp.go b/client/proxy/general_tcp.go new file mode 100644 index 00000000000..7efe476f434 --- /dev/null +++ b/client/proxy/general_tcp.go @@ -0,0 +1,47 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package proxy + +import ( + "reflect" + + "github.com/fatedier/frp/pkg/config" +) + +func init() { + pxyConfs := []config.ProxyConf{ + &config.TCPProxyConf{}, + &config.HTTPProxyConf{}, + &config.HTTPSProxyConf{}, + &config.STCPProxyConf{}, + &config.TCPMuxProxyConf{}, + } + for _, cfg := range pxyConfs { + RegisterProxyFactory(reflect.TypeOf(cfg), NewGeneralTCPProxy) + } +} + +// GeneralTCPProxy is a general implementation of Proxy interface for TCP protocol. +// If the default GeneralTCPProxy cannot meet the requirements, you can customize +// the implementation of the Proxy interface. +type GeneralTCPProxy struct { + *BaseProxy +} + +func NewGeneralTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + return &GeneralTCPProxy{ + BaseProxy: baseProxy, + } +} diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index b336e13ad9f..82d5d9f2efa 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -19,6 +19,7 @@ import ( "context" "io" "net" + "reflect" "strconv" "strings" "sync" @@ -37,6 +38,12 @@ import ( "github.com/fatedier/frp/pkg/util/xlog" ) +var proxyFactoryRegistry = map[reflect.Type]func(*BaseProxy, config.ProxyConf) Proxy{} + +func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*BaseProxy, config.ProxyConf) Proxy) { + proxyFactoryRegistry[proxyConfType] = factory +} + // Proxy defines how to handle work connections for different proxy type. type Proxy interface { Run() error @@ -60,233 +67,74 @@ func NewProxy( } baseProxy := BaseProxy{ - clientCfg: clientCfg, - limiter: limiter, - msgTransporter: msgTransporter, - xl: xlog.FromContextSafe(ctx), - ctx: ctx, + baseProxyConfig: pxyConf.GetBaseConfig(), + clientCfg: clientCfg, + limiter: limiter, + msgTransporter: msgTransporter, + xl: xlog.FromContextSafe(ctx), + ctx: ctx, } - switch cfg := pxyConf.(type) { - case *config.TCPProxyConf: - pxy = &TCPProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - } - case *config.TCPMuxProxyConf: - pxy = &TCPMuxProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - } - case *config.UDPProxyConf: - pxy = &UDPProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - } - case *config.HTTPProxyConf: - pxy = &HTTPProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - } - case *config.HTTPSProxyConf: - pxy = &HTTPSProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - } - case *config.STCPProxyConf: - pxy = &STCPProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - } - case *config.XTCPProxyConf: - pxy = &XTCPProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - } - case *config.SUDPProxyConf: - pxy = &SUDPProxy{ - BaseProxy: &baseProxy, - cfg: cfg, - closeCh: make(chan struct{}), - } + + factory := proxyFactoryRegistry[reflect.TypeOf(pxyConf)] + if factory == nil { + return nil } - return + return factory(&baseProxy, pxyConf) } type BaseProxy struct { - closed bool - clientCfg config.ClientCommonConf - msgTransporter transport.MessageTransporter - limiter *rate.Limiter + baseProxyConfig *config.BaseProxyConf + clientCfg config.ClientCommonConf + msgTransporter transport.MessageTransporter + limiter *rate.Limiter + // proxyPlugin is used to handle connections instead of dialing to local service. + // It's only validate for TCP protocol now. + proxyPlugin plugin.Plugin mu sync.RWMutex xl *xlog.Logger ctx context.Context } -// TCP -type TCPProxy struct { - *BaseProxy - - cfg *config.TCPProxyConf - proxyPlugin plugin.Plugin -} - -func (pxy *TCPProxy) Run() (err error) { - if pxy.cfg.Plugin != "" { - pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) - if err != nil { - return - } - } - return -} - -func (pxy *TCPProxy) Close() { - if pxy.proxyPlugin != nil { - pxy.proxyPlugin.Close() - } -} - -func (pxy *TCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, - conn, []byte(pxy.clientCfg.Token), m) -} - -// TCP Multiplexer -type TCPMuxProxy struct { - *BaseProxy - - cfg *config.TCPMuxProxyConf - proxyPlugin plugin.Plugin -} - -func (pxy *TCPMuxProxy) Run() (err error) { - if pxy.cfg.Plugin != "" { - pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) +func (pxy *BaseProxy) Run() error { + if pxy.baseProxyConfig.Plugin != "" { + p, err := plugin.Create(pxy.baseProxyConfig.Plugin, pxy.baseProxyConfig.PluginParams) if err != nil { - return + return err } + pxy.proxyPlugin = p } - return + return nil } -func (pxy *TCPMuxProxy) Close() { +func (pxy *BaseProxy) Close() { if pxy.proxyPlugin != nil { pxy.proxyPlugin.Close() } } -func (pxy *TCPMuxProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, - conn, []byte(pxy.clientCfg.Token), m) -} - -// HTTP -type HTTPProxy struct { - *BaseProxy - - cfg *config.HTTPProxyConf - proxyPlugin plugin.Plugin -} - -func (pxy *HTTPProxy) Run() (err error) { - if pxy.cfg.Plugin != "" { - pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) - if err != nil { - return - } - } - return -} - -func (pxy *HTTPProxy) Close() { - if pxy.proxyPlugin != nil { - pxy.proxyPlugin.Close() - } -} - -func (pxy *HTTPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, - conn, []byte(pxy.clientCfg.Token), m) -} - -// HTTPS -type HTTPSProxy struct { - *BaseProxy - - cfg *config.HTTPSProxyConf - proxyPlugin plugin.Plugin -} - -func (pxy *HTTPSProxy) Run() (err error) { - if pxy.cfg.Plugin != "" { - pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) - if err != nil { - return - } - } - return -} - -func (pxy *HTTPSProxy) Close() { - if pxy.proxyPlugin != nil { - pxy.proxyPlugin.Close() - } -} - -func (pxy *HTTPSProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, - conn, []byte(pxy.clientCfg.Token), m) -} - -// STCP -type STCPProxy struct { - *BaseProxy - - cfg *config.STCPProxyConf - proxyPlugin plugin.Plugin -} - -func (pxy *STCPProxy) Run() (err error) { - if pxy.cfg.Plugin != "" { - pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) - if err != nil { - return - } - } - return -} - -func (pxy *STCPProxy) Close() { - if pxy.proxyPlugin != nil { - pxy.proxyPlugin.Close() - } -} - -func (pxy *STCPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, - conn, []byte(pxy.clientCfg.Token), m) +func (pxy *BaseProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { + pxy.HandleTCPWorkConnection(conn, m, []byte(pxy.clientCfg.Token)) } // Common handler for tcp work connections. -func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf, proxyPlugin plugin.Plugin, - baseInfo *config.BaseProxyConf, limiter *rate.Limiter, workConn net.Conn, encKey []byte, m *msg.StartWorkConn, -) { - xl := xlog.FromContextSafe(ctx) +func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWorkConn, encKey []byte) { + xl := pxy.xl + baseConfig := pxy.baseProxyConfig var ( remote io.ReadWriteCloser err error ) remote = workConn - if limiter != nil { - remote = libio.WrapReadWriteCloser(limit.NewReader(workConn, limiter), limit.NewWriter(workConn, limiter), func() error { + if pxy.limiter != nil { + remote = libio.WrapReadWriteCloser(limit.NewReader(workConn, pxy.limiter), limit.NewWriter(workConn, pxy.limiter), func() error { return workConn.Close() }) } xl.Trace("handle tcp work connection, use_encryption: %t, use_compression: %t", - baseInfo.UseEncryption, baseInfo.UseCompression) - if baseInfo.UseEncryption { + baseConfig.UseEncryption, baseConfig.UseCompression) + if baseConfig.UseEncryption { remote, err = libio.WithEncryption(remote, encKey) if err != nil { workConn.Close() @@ -294,13 +142,13 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf return } } - if baseInfo.UseCompression { + if baseConfig.UseCompression { remote = libio.WithCompression(remote) } // check if we need to send proxy protocol info var extraInfo []byte - if baseInfo.ProxyProtocolVersion != "" { + if baseConfig.ProxyProtocolVersion != "" { if m.SrcAddr != "" && m.SrcPort != 0 { if m.DstAddr == "" { m.DstAddr = "127.0.0.1" @@ -319,9 +167,9 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf h.TransportProtocol = pp.TCPv6 } - if baseInfo.ProxyProtocolVersion == "v1" { + if baseConfig.ProxyProtocolVersion == "v1" { h.Version = 1 - } else if baseInfo.ProxyProtocolVersion == "v2" { + } else if baseConfig.ProxyProtocolVersion == "v2" { h.Version = 2 } @@ -331,21 +179,21 @@ func HandleTCPWorkConnection(ctx context.Context, localInfo *config.LocalSvrConf } } - if proxyPlugin != nil { - // if plugin is set, let plugin handle connections first - xl.Debug("handle by plugin: %s", proxyPlugin.Name()) - proxyPlugin.Handle(remote, workConn, extraInfo) + if pxy.proxyPlugin != nil { + // if plugin is set, let plugin handle connection first + xl.Debug("handle by plugin: %s", pxy.proxyPlugin.Name()) + pxy.proxyPlugin.Handle(remote, workConn, extraInfo) xl.Debug("handle by plugin finished") return } localConn, err := libdial.Dial( - net.JoinHostPort(localInfo.LocalIP, strconv.Itoa(localInfo.LocalPort)), + net.JoinHostPort(baseConfig.LocalIP, strconv.Itoa(baseConfig.LocalPort)), libdial.WithTimeout(10*time.Second), ) if err != nil { workConn.Close() - xl.Error("connect to local service [%s:%d] error: %v", localInfo.LocalIP, localInfo.LocalPort, err) + xl.Error("connect to local service [%s:%d] error: %v", baseConfig.LocalIP, baseConfig.LocalPort, err) return } diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index ff88bf749ef..9d61e22855e 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -17,6 +17,7 @@ package proxy import ( "io" "net" + "reflect" "strconv" "sync" "time" @@ -31,6 +32,10 @@ import ( utilnet "github.com/fatedier/frp/pkg/util/net" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.SUDPProxyConf{}), NewSUDPProxy) +} + type SUDPProxy struct { *BaseProxy @@ -41,6 +46,18 @@ type SUDPProxy struct { closeCh chan struct{} } +func NewSUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.SUDPProxyConf) + if !ok { + return nil + } + return &SUDPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + closeCh: make(chan struct{}), + } +} + func (pxy *SUDPProxy) Run() (err error) { pxy.localAddr, err = net.ResolveUDPAddr("udp", net.JoinHostPort(pxy.cfg.LocalIP, strconv.Itoa(pxy.cfg.LocalPort))) if err != nil { diff --git a/client/proxy/udp.go b/client/proxy/udp.go index 0dc117940ab..adf92766d4b 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -17,6 +17,7 @@ package proxy import ( "io" "net" + "reflect" "strconv" "time" @@ -30,7 +31,10 @@ import ( utilnet "github.com/fatedier/frp/pkg/util/net" ) -// UDP +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.UDPProxyConf{}), NewUDPProxy) +} + type UDPProxy struct { *BaseProxy @@ -42,6 +46,18 @@ type UDPProxy struct { // include msg.UDPPacket and msg.Ping sendCh chan msg.Message workConn net.Conn + closed bool +} + +func NewUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.UDPProxyConf) + if !ok { + return nil + } + return &UDPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } } func (pxy *UDPProxy) Run() (err error) { diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index a25dc185cc1..4ba8d50c870 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -17,6 +17,7 @@ package proxy import ( "io" "net" + "reflect" "time" fmux "github.com/hashicorp/yamux" @@ -25,32 +26,28 @@ import ( "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/nathole" - plugin "github.com/fatedier/frp/pkg/plugin/client" "github.com/fatedier/frp/pkg/transport" utilnet "github.com/fatedier/frp/pkg/util/net" ) -// XTCP +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.XTCPProxyConf{}), NewXTCPProxy) +} + type XTCPProxy struct { *BaseProxy - cfg *config.XTCPProxyConf - proxyPlugin plugin.Plugin + cfg *config.XTCPProxyConf } -func (pxy *XTCPProxy) Run() (err error) { - if pxy.cfg.Plugin != "" { - pxy.proxyPlugin, err = plugin.Create(pxy.cfg.Plugin, pxy.cfg.PluginParams) - if err != nil { - return - } +func NewXTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.XTCPProxyConf) + if !ok { + return nil } - return -} - -func (pxy *XTCPProxy) Close() { - if pxy.proxyPlugin != nil { - pxy.proxyPlugin.Close() + return &XTCPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, } } @@ -155,8 +152,7 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s xl.Error("accept connection error: %v", err) return } - go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, - muxConn, []byte(pxy.cfg.Sk), startWorkConnMsg) + go pxy.HandleTCPWorkConnection(muxConn, startWorkConnMsg, []byte(pxy.cfg.Sk)) } } @@ -194,7 +190,6 @@ func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, star _ = c.CloseWithError(0, "") return } - go HandleTCPWorkConnection(pxy.ctx, &pxy.cfg.LocalSvrConf, pxy.proxyPlugin, pxy.cfg.GetBaseConfig(), pxy.limiter, - utilnet.QuicStreamToNetConn(stream, c), []byte(pxy.cfg.Sk), startWorkConnMsg) + go pxy.HandleTCPWorkConnection(utilnet.QuicStreamToNetConn(stream, c), startWorkConnMsg, []byte(pxy.cfg.Sk)) } } From de85c9455a4577ed8635f65806ac23858e1b3820 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 2 Jun 2023 16:06:29 +0800 Subject: [PATCH 074/444] stcp, xtcp, sudp: support allow_users and specified server user (#3472) --- .gitignore | 1 + Makefile | 15 +++ hack/download.sh | 63 ++++++++++ hack/run-e2e.sh | 26 ++-- pkg/config/client.go | 2 +- pkg/config/proxy.go | 216 ++++++++++++++++++---------------- pkg/config/visitor.go | 6 +- pkg/msg/msg.go | 5 +- pkg/nathole/controller.go | 28 +++-- server/control.go | 8 +- server/proxy/stcp.go | 7 +- server/proxy/sudp.go | 8 +- server/proxy/xtcp.go | 8 +- server/service.go | 11 +- server/visitor/visitor.go | 43 ++++--- test/e2e/basic/basic.go | 82 +++++++++---- test/e2e/framework/process.go | 2 +- 17 files changed, 355 insertions(+), 176 deletions(-) create mode 100755 hack/download.sh diff --git a/.gitignore b/.gitignore index 0d8ca50d8d7..f6df315b1e4 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ packages/ release/ test/bin/ vendor/ +lastversion/ dist/ .idea/ .vscode/ diff --git a/Makefile b/Makefile index e9b9ec54076..d94e7c36543 100644 --- a/Makefile +++ b/Makefile @@ -46,8 +46,23 @@ e2e: e2e-trace: DEBUG=true LOG_LEVEL=trace ./hack/run-e2e.sh +e2e-compatibility-last-frpc: + if [ ! -d "./lastversion" ]; then \ + TARGET_DIRNAME=lastversion ./hack/download.sh; \ + fi + FRPC_PATH="`pwd`/lastversion/frpc" ./hack/run-e2e.sh + rm -r ./lastversion + +e2e-compatibility-last-frps: + if [ ! -d "./lastversion" ]; then \ + TARGET_DIRNAME=lastversion ./hack/download.sh; \ + fi + FRPS_PATH="`pwd`/lastversion/frps" ./hack/run-e2e.sh + rm -r ./lastversion + alltest: vet gotest e2e clean: rm -f ./bin/frpc rm -f ./bin/frps + rm -rf ./lastversion diff --git a/hack/download.sh b/hack/download.sh new file mode 100755 index 00000000000..acdf033aff7 --- /dev/null +++ b/hack/download.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +OS="$(go env GOOS)" +ARCH="$(go env GOARCH)" + +if [ "${TARGET_OS}" ]; then + OS="${TARGET_OS}" +fi +if [ "${TARGET_ARCH}" ]; then + ARCH="${TARGET_ARCH}" +fi + +# Determine the latest version by version number ignoring alpha, beta, and rc versions. +if [ "${FRP_VERSION}" = "" ] ; then + FRP_VERSION="$(curl -sL https://github.com/fatedier/frp/releases | \ + grep -o 'releases/tag/v[0-9]*.[0-9]*.[0-9]*"' | sort -V | \ + tail -1 | awk -F'/' '{ print $3}')" + FRP_VERSION="${FRP_VERSION%?}" + FRP_VERSION="${FRP_VERSION#?}" +fi + +if [ "${FRP_VERSION}" = "" ] ; then + printf "Unable to get latest frp version. Set FRP_VERSION env var and re-run. For example: export FRP_VERSION=1.0.0" + exit 1; +fi + +SUFFIX=".tar.gz" +if [ "${OS}" = "windows" ] ; then + SUFFIX=".zip" +fi +NAME="frp_${FRP_VERSION}_${OS}_${ARCH}${SUFFIX}" +DIR_NAME="frp_${FRP_VERSION}_${OS}_${ARCH}" +URL="https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/${NAME}" + +download_and_extract() { + printf "Downloading %s from %s ...\n" "$NAME" "${URL}" + if ! curl -o /dev/null -sIf "${URL}"; then + printf "\n%s is not found, please specify a valid FRP_VERSION\n" "${URL}" + exit 1 + fi + curl -fsLO "${URL}" + filename=$NAME + + if [ "${OS}" = "windows" ]; then + unzip "${filename}" + else + tar -xzf "${filename}" + fi + rm "${filename}" + + if [ "${TARGET_DIRNAME}" ]; then + mv "${DIR_NAME}" "${TARGET_DIRNAME}" + DIR_NAME="${TARGET_DIRNAME}" + fi +} + +download_and_extract + +printf "" +printf "\nfrp %s Download Complete!\n" "$FRP_VERSION" +printf "\n" +printf "frp has been successfully downloaded into the %s folder on your system.\n" "$DIR_NAME" +printf "\n" diff --git a/hack/run-e2e.sh b/hack/run-e2e.sh index e5dfecf54b5..953df0ee8ae 100755 --- a/hack/run-e2e.sh +++ b/hack/run-e2e.sh @@ -1,20 +1,30 @@ -#!/usr/bin/env bash +#!/bin/sh -ROOT=$(unset CDPATH && cd $(dirname "${BASH_SOURCE[0]}")/.. && pwd) +SCRIPT=$(readlink -f "$0") +ROOT=$(unset CDPATH && cd "$(dirname "$SCRIPT")/.." && pwd) -which ginkgo &> /dev/null -if [ $? -ne 0 ]; then +ginkgo_command=$(which ginkgo 2>/dev/null) +if [ -z "$ginkgo_command" ]; then echo "ginkgo not found, try to install..." go install github.com/onsi/ginkgo/v2/ginkgo@v2.8.3 fi debug=false -if [ x${DEBUG} == x"true" ]; then +if [ "x${DEBUG}" = "xtrue" ]; then debug=true fi logLevel=debug -if [ x${LOG_LEVEL} != x"" ]; then - logLevel=${LOG_LEVEL} +if [ "${LOG_LEVEL}" ]; then + logLevel="${LOG_LEVEL}" fi -ginkgo -nodes=8 --poll-progress-after=30s ${ROOT}/test/e2e -- -frpc-path=${ROOT}/bin/frpc -frps-path=${ROOT}/bin/frps -log-level=${logLevel} -debug=${debug} +frpcPath=${ROOT}/bin/frpc +if [ "${FRPC_PATH}" ]; then + frpcPath="${FRPC_PATH}" +fi +frpsPath=${ROOT}/bin/frps +if [ "${FRPS_PATH}" ]; then + frpsPath="${FRPS_PATH}" +fi + +ginkgo -nodes=8 --poll-progress-after=60s ${ROOT}/test/e2e -- -frpc-path=${frpcPath} -frps-path=${frpsPath} -log-level=${logLevel} -debug=${debug} diff --git a/pkg/config/client.go b/pkg/config/client.go index 50a46d51149..080f9a187be 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -352,7 +352,7 @@ func LoadAllProxyConfsFromIni( case "visitor": newConf, newErr := NewVisitorConfFromIni(prefix, name, section) if newErr != nil { - return nil, nil, newErr + return nil, nil, fmt.Errorf("failed to parse visitor %s, err: %v", name, newErr) } visitorConfs[prefix+name] = newConf default: diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index 9cc89492487..ae1d077cb01 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -178,6 +178,16 @@ func (cfg *RoleServerCommonConf) setDefaultValues() { cfg.Role = "server" } +func (cfg *RoleServerCommonConf) marshalToMsg(m *msg.NewProxy) { + m.Sk = cfg.Sk + m.AllowUsers = cfg.AllowUsers +} + +func (cfg *RoleServerCommonConf) unmarshalFromMsg(m *msg.NewProxy) { + cfg.Sk = m.Sk + cfg.AllowUsers = m.AllowUsers +} + // HTTP type HTTPProxyConf struct { BaseProxyConf `ini:",extends"` @@ -260,7 +270,7 @@ func NewProxyConfFromIni(prefix, name string, section *ini.Section) (ProxyConf, conf := DefaultProxyConf(proxyType) if conf == nil { - return nil, fmt.Errorf("proxy %s has invalid type [%s]", name, proxyType) + return nil, fmt.Errorf("invalid type [%s]", proxyType) } if err := conf.UnmarshalFromIni(prefix, name, section); err != nil { @@ -274,17 +284,17 @@ func NewProxyConfFromIni(prefix, name string, section *ini.Section) (ProxyConf, } // Proxy loaded from msg -func NewProxyConfFromMsg(pMsg *msg.NewProxy, serverCfg ServerCommonConf) (ProxyConf, error) { - if pMsg.ProxyType == "" { - pMsg.ProxyType = consts.TCPProxy +func NewProxyConfFromMsg(m *msg.NewProxy, serverCfg ServerCommonConf) (ProxyConf, error) { + if m.ProxyType == "" { + m.ProxyType = consts.TCPProxy } - conf := DefaultProxyConf(pMsg.ProxyType) + conf := DefaultProxyConf(m.ProxyType) if conf == nil { - return nil, fmt.Errorf("proxy [%s] type [%s] error", pMsg.ProxyName, pMsg.ProxyType) + return nil, fmt.Errorf("proxy [%s] type [%s] error", m.ProxyName, m.ProxyType) } - conf.UnmarshalFromMsg(pMsg) + conf.UnmarshalFromMsg(m) err := conf.ValidateForServer(serverCfg) if err != nil { @@ -341,35 +351,35 @@ func (cfg *BaseProxyConf) decorate(prefix string, name string, section *ini.Sect return nil } -func (cfg *BaseProxyConf) marshalToMsg(pMsg *msg.NewProxy) { - pMsg.ProxyName = cfg.ProxyName - pMsg.ProxyType = cfg.ProxyType - pMsg.UseEncryption = cfg.UseEncryption - pMsg.UseCompression = cfg.UseCompression - pMsg.BandwidthLimit = cfg.BandwidthLimit.String() +func (cfg *BaseProxyConf) marshalToMsg(m *msg.NewProxy) { + m.ProxyName = cfg.ProxyName + m.ProxyType = cfg.ProxyType + m.UseEncryption = cfg.UseEncryption + m.UseCompression = cfg.UseCompression + m.BandwidthLimit = cfg.BandwidthLimit.String() // leave it empty for default value to reduce traffic if cfg.BandwidthLimitMode != "client" { - pMsg.BandwidthLimitMode = cfg.BandwidthLimitMode + m.BandwidthLimitMode = cfg.BandwidthLimitMode } - pMsg.Group = cfg.Group - pMsg.GroupKey = cfg.GroupKey - pMsg.Metas = cfg.Metas + m.Group = cfg.Group + m.GroupKey = cfg.GroupKey + m.Metas = cfg.Metas } -func (cfg *BaseProxyConf) unmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.ProxyName = pMsg.ProxyName - cfg.ProxyType = pMsg.ProxyType - cfg.UseEncryption = pMsg.UseEncryption - cfg.UseCompression = pMsg.UseCompression - if pMsg.BandwidthLimit != "" { - cfg.BandwidthLimit, _ = NewBandwidthQuantity(pMsg.BandwidthLimit) +func (cfg *BaseProxyConf) unmarshalFromMsg(m *msg.NewProxy) { + cfg.ProxyName = m.ProxyName + cfg.ProxyType = m.ProxyType + cfg.UseEncryption = m.UseEncryption + cfg.UseCompression = m.UseCompression + if m.BandwidthLimit != "" { + cfg.BandwidthLimit, _ = NewBandwidthQuantity(m.BandwidthLimit) } - if pMsg.BandwidthLimitMode != "" { - cfg.BandwidthLimitMode = pMsg.BandwidthLimitMode + if m.BandwidthLimitMode != "" { + cfg.BandwidthLimitMode = m.BandwidthLimitMode } - cfg.Group = pMsg.Group - cfg.GroupKey = pMsg.GroupKey - cfg.Metas = pMsg.Metas + cfg.Group = m.Group + cfg.GroupKey = m.GroupKey + cfg.Metas = m.Metas } func (cfg *BaseProxyConf) validateForClient() (err error) { @@ -482,11 +492,11 @@ func preUnmarshalFromIni(cfg ProxyConf, prefix string, name string, section *ini } // TCP -func (cfg *TCPProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *TCPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.RemotePort = pMsg.RemotePort + cfg.RemotePort = m.RemotePort } func (cfg *TCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { @@ -500,11 +510,11 @@ func (cfg *TCPProxyConf) UnmarshalFromIni(prefix string, name string, section *i return nil } -func (cfg *TCPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *TCPProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.RemotePort = cfg.RemotePort + m.RemotePort = cfg.RemotePort } func (cfg *TCPProxyConf) ValidateForClient() (err error) { @@ -536,28 +546,28 @@ func (cfg *TCPMuxProxyConf) UnmarshalFromIni(prefix string, name string, section return nil } -func (cfg *TCPMuxProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *TCPMuxProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.CustomDomains = pMsg.CustomDomains - cfg.SubDomain = pMsg.SubDomain - cfg.Multiplexer = pMsg.Multiplexer - cfg.HTTPUser = pMsg.HTTPUser - cfg.HTTPPwd = pMsg.HTTPPwd - cfg.RouteByHTTPUser = pMsg.RouteByHTTPUser + cfg.CustomDomains = m.CustomDomains + cfg.SubDomain = m.SubDomain + cfg.Multiplexer = m.Multiplexer + cfg.HTTPUser = m.HTTPUser + cfg.HTTPPwd = m.HTTPPwd + cfg.RouteByHTTPUser = m.RouteByHTTPUser } -func (cfg *TCPMuxProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *TCPMuxProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.CustomDomains = cfg.CustomDomains - pMsg.SubDomain = cfg.SubDomain - pMsg.Multiplexer = cfg.Multiplexer - pMsg.HTTPUser = cfg.HTTPUser - pMsg.HTTPPwd = cfg.HTTPPwd - pMsg.RouteByHTTPUser = cfg.RouteByHTTPUser + m.CustomDomains = cfg.CustomDomains + m.SubDomain = cfg.SubDomain + m.Multiplexer = cfg.Multiplexer + m.HTTPUser = cfg.HTTPUser + m.HTTPPwd = cfg.HTTPPwd + m.RouteByHTTPUser = cfg.RouteByHTTPUser } func (cfg *TCPMuxProxyConf) ValidateForClient() (err error) { @@ -610,18 +620,18 @@ func (cfg *UDPProxyConf) UnmarshalFromIni(prefix string, name string, section *i return nil } -func (cfg *UDPProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *UDPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.RemotePort = pMsg.RemotePort + cfg.RemotePort = m.RemotePort } -func (cfg *UDPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *UDPProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.RemotePort = cfg.RemotePort + m.RemotePort = cfg.RemotePort } func (cfg *UDPProxyConf) ValidateForClient() (err error) { @@ -653,32 +663,32 @@ func (cfg *HTTPProxyConf) UnmarshalFromIni(prefix string, name string, section * return nil } -func (cfg *HTTPProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *HTTPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.CustomDomains = pMsg.CustomDomains - cfg.SubDomain = pMsg.SubDomain - cfg.Locations = pMsg.Locations - cfg.HostHeaderRewrite = pMsg.HostHeaderRewrite - cfg.HTTPUser = pMsg.HTTPUser - cfg.HTTPPwd = pMsg.HTTPPwd - cfg.Headers = pMsg.Headers - cfg.RouteByHTTPUser = pMsg.RouteByHTTPUser + cfg.CustomDomains = m.CustomDomains + cfg.SubDomain = m.SubDomain + cfg.Locations = m.Locations + cfg.HostHeaderRewrite = m.HostHeaderRewrite + cfg.HTTPUser = m.HTTPUser + cfg.HTTPPwd = m.HTTPPwd + cfg.Headers = m.Headers + cfg.RouteByHTTPUser = m.RouteByHTTPUser } -func (cfg *HTTPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *HTTPProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.CustomDomains = cfg.CustomDomains - pMsg.SubDomain = cfg.SubDomain - pMsg.Locations = cfg.Locations - pMsg.HostHeaderRewrite = cfg.HostHeaderRewrite - pMsg.HTTPUser = cfg.HTTPUser - pMsg.HTTPPwd = cfg.HTTPPwd - pMsg.Headers = cfg.Headers - pMsg.RouteByHTTPUser = cfg.RouteByHTTPUser + m.CustomDomains = cfg.CustomDomains + m.SubDomain = cfg.SubDomain + m.Locations = cfg.Locations + m.HostHeaderRewrite = cfg.HostHeaderRewrite + m.HTTPUser = cfg.HTTPUser + m.HTTPPwd = cfg.HTTPPwd + m.Headers = cfg.Headers + m.RouteByHTTPUser = cfg.RouteByHTTPUser } func (cfg *HTTPProxyConf) ValidateForClient() (err error) { @@ -722,20 +732,20 @@ func (cfg *HTTPSProxyConf) UnmarshalFromIni(prefix string, name string, section return nil } -func (cfg *HTTPSProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *HTTPSProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.CustomDomains = pMsg.CustomDomains - cfg.SubDomain = pMsg.SubDomain + cfg.CustomDomains = m.CustomDomains + cfg.SubDomain = m.SubDomain } -func (cfg *HTTPSProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *HTTPSProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.CustomDomains = cfg.CustomDomains - pMsg.SubDomain = cfg.SubDomain + m.CustomDomains = cfg.CustomDomains + m.SubDomain = cfg.SubDomain } func (cfg *HTTPSProxyConf) ValidateForClient() (err error) { @@ -784,18 +794,18 @@ func (cfg *SUDPProxyConf) UnmarshalFromIni(prefix string, name string, section * } // Only for role server. -func (cfg *SUDPProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *SUDPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.Sk = pMsg.Sk + cfg.RoleServerCommonConf.unmarshalFromMsg(m) } -func (cfg *SUDPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *SUDPProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.Sk = cfg.Sk + cfg.RoleServerCommonConf.marshalToMsg(m) } func (cfg *SUDPProxyConf) ValidateForClient() (err error) { @@ -838,18 +848,18 @@ func (cfg *STCPProxyConf) UnmarshalFromIni(prefix string, name string, section * } // Only for role server. -func (cfg *STCPProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *STCPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.Sk = pMsg.Sk + cfg.RoleServerCommonConf.unmarshalFromMsg(m) } -func (cfg *STCPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *STCPProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.Sk = cfg.Sk + cfg.RoleServerCommonConf.marshalToMsg(m) } func (cfg *STCPProxyConf) ValidateForClient() (err error) { @@ -892,18 +902,18 @@ func (cfg *XTCPProxyConf) UnmarshalFromIni(prefix string, name string, section * } // Only for role server. -func (cfg *XTCPProxyConf) UnmarshalFromMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(pMsg) +func (cfg *XTCPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.unmarshalFromMsg(m) // Add custom logic unmarshal if exists - cfg.Sk = pMsg.Sk + cfg.RoleServerCommonConf.unmarshalFromMsg(m) } -func (cfg *XTCPProxyConf) MarshalToMsg(pMsg *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(pMsg) +func (cfg *XTCPProxyConf) MarshalToMsg(m *msg.NewProxy) { + cfg.BaseProxyConf.marshalToMsg(m) // Add custom logic marshal if exists - pMsg.Sk = cfg.Sk + cfg.RoleServerCommonConf.marshalToMsg(m) } func (cfg *XTCPProxyConf) ValidateForClient() (err error) { diff --git a/pkg/config/visitor.go b/pkg/config/visitor.go index 1f388bad39f..31a8a02bd4f 100644 --- a/pkg/config/visitor.go +++ b/pkg/config/visitor.go @@ -94,16 +94,16 @@ func NewVisitorConfFromIni(prefix string, name string, section *ini.Section) (Vi visitorType := section.Key("type").String() if visitorType == "" { - return nil, fmt.Errorf("visitor [%s] type shouldn't be empty", name) + return nil, fmt.Errorf("type shouldn't be empty") } conf := DefaultVisitorConf(visitorType) if conf == nil { - return nil, fmt.Errorf("visitor [%s] type [%s] error", name, visitorType) + return nil, fmt.Errorf("type [%s] error", visitorType) } if err := conf.UnmarshalFromIni(prefix, name, section); err != nil { - return nil, fmt.Errorf("visitor [%s] type [%s] error", name, visitorType) + return nil, fmt.Errorf("type [%s] error", visitorType) } if err := conf.Validate(); err != nil { diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index 2cb291ac8b2..7a865785243 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -110,8 +110,9 @@ type NewProxy struct { Headers map[string]string `json:"headers,omitempty"` RouteByHTTPUser string `json:"route_by_http_user,omitempty"` - // stcp - Sk string `json:"sk,omitempty"` + // stcp, sudp, xtcp + Sk string `json:"sk,omitempty"` + AllowUsers []string `json:"allow_users,omitempty"` // tcpmux Multiplexer string `json:"multiplexer,omitempty"` diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index a04006b9243..6f97455a501 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -43,9 +43,10 @@ func NewTransactionID() string { } type ClientCfg struct { - name string - sk string - sidCh chan string + name string + sk string + allowUsers []string + sidCh chan string } type Session struct { @@ -120,11 +121,12 @@ func (c *Controller) CleanWorker(ctx context.Context) { } } -func (c *Controller) ListenClient(name string, sk string) chan string { +func (c *Controller) ListenClient(name string, sk string, allowUsers []string) chan string { cfg := &ClientCfg{ - name: name, - sk: sk, - sidCh: make(chan string), + name: name, + sk: sk, + allowUsers: allowUsers, + sidCh: make(chan string), } c.mu.Lock() defer c.mu.Unlock() @@ -144,14 +146,18 @@ func (c *Controller) GenSid() string { return fmt.Sprintf("%d%s", t, id) } -func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport.MessageTransporter) { +func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport.MessageTransporter, visitorUser string) { if m.PreCheck { - _, ok := c.clientCfgs[m.ProxyName] + cfg, ok := c.clientCfgs[m.ProxyName] if !ok { _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, fmt.Sprintf("xtcp server for [%s] doesn't exist", m.ProxyName))) - } else { - _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, "")) + return + } + if !lo.Contains(cfg.allowUsers, visitorUser) && !lo.Contains(cfg.allowUsers, "*") { + _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, fmt.Sprintf("xtcp visitor user [%s] not allowed for [%s]", visitorUser, m.ProxyName))) + return } + _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, "")) return } diff --git a/server/control.go b/server/control.go index 01075484cc6..4d6b802c6d2 100644 --- a/server/control.go +++ b/server/control.go @@ -524,7 +524,7 @@ func (ctl *Control) manager() { } func (ctl *Control) HandleNatHoleVisitor(m *msg.NatHoleVisitor) { - ctl.rc.NatHoleController.HandleVisitor(m, ctl.msgTransporter) + ctl.rc.NatHoleController.HandleVisitor(m, ctl.msgTransporter, ctl.loginMsg.User) } func (ctl *Control) HandleNatHoleClient(m *msg.NatHoleClient) { @@ -537,7 +537,7 @@ func (ctl *Control) HandleNatHoleReport(m *msg.NatHoleReport) { func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err error) { var pxyConf config.ProxyConf - // Load configures from NewProxy message and check. + // Load configures from NewProxy message and validate. pxyConf, err = config.NewProxyConfFromMsg(pxyMsg, ctl.serverCfg) if err != nil { return @@ -550,8 +550,8 @@ func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err RunID: ctl.runID, } - // NewProxy will return a interface Proxy. - // In fact it create different proxies by different proxy type, we just call run() here. + // NewProxy will return an interface Proxy. + // In fact, it creates different proxies based on the proxy type. We just call run() here. pxy, err := proxy.NewProxy(ctl.ctx, userInfo, ctl.rc, ctl.poolCount, ctl.GetWorkConn, pxyConf, ctl.serverCfg, ctl.loginMsg) if err != nil { return remoteAddr, err diff --git a/server/proxy/stcp.go b/server/proxy/stcp.go index 2ece4057805..f5311be4fb0 100644 --- a/server/proxy/stcp.go +++ b/server/proxy/stcp.go @@ -27,7 +27,12 @@ type STCPProxy struct { func (pxy *STCPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl - listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Sk) + allowUsers := pxy.cfg.AllowUsers + // if allowUsers is empty, only allow same user from proxy + if len(allowUsers) == 0 { + allowUsers = []string{pxy.GetUserInfo().User} + } + listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Sk, allowUsers) if errRet != nil { err = errRet return diff --git a/server/proxy/sudp.go b/server/proxy/sudp.go index 93707f23cd4..82bf8d2392b 100644 --- a/server/proxy/sudp.go +++ b/server/proxy/sudp.go @@ -27,8 +27,12 @@ type SUDPProxy struct { func (pxy *SUDPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl - - listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Sk) + allowUsers := pxy.cfg.AllowUsers + // if allowUsers is empty, only allow same user from proxy + if len(allowUsers) == 0 { + allowUsers = []string{pxy.GetUserInfo().User} + } + listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Sk, allowUsers) if errRet != nil { err = errRet return diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index 8b2717bfa3f..9f4b9f41628 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -35,11 +35,15 @@ func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl if pxy.rc.NatHoleController == nil { - xl.Error("udp port for xtcp is not specified.") err = fmt.Errorf("xtcp is not supported in frps") return } - sidCh := pxy.rc.NatHoleController.ListenClient(pxy.GetName(), pxy.cfg.Sk) + allowUsers := pxy.cfg.AllowUsers + // if allowUsers is empty, only allow same user from proxy + if len(allowUsers) == 0 { + allowUsers = []string{pxy.GetUserInfo().User} + } + sidCh := pxy.rc.NatHoleController.ListenClient(pxy.GetName(), pxy.cfg.Sk, allowUsers) go func() { for { select { diff --git a/server/service.go b/server/service.go index 4378b95c95f..e67ee73d3f5 100644 --- a/server/service.go +++ b/server/service.go @@ -587,6 +587,15 @@ func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) } func (svr *Service) RegisterVisitorConn(visitorConn net.Conn, newMsg *msg.NewVisitorConn) error { + visitorUser := "" + // TODO: Compatible with old versions, can be without runID, user is empty. In later versions, it will be mandatory to include runID. + if newMsg.RunID != "" { + ctl, exist := svr.ctlManager.GetByID(newMsg.RunID) + if !exist { + return fmt.Errorf("no client control found for run id [%s]", newMsg.RunID) + } + visitorUser = ctl.loginMsg.User + } return svr.rc.VisitorManager.NewConn(newMsg.ProxyName, visitorConn, newMsg.Timestamp, newMsg.SignKey, - newMsg.UseEncryption, newMsg.UseCompression) + newMsg.UseEncryption, newMsg.UseCompression, visitorUser) } diff --git a/server/visitor/visitor.go b/server/visitor/visitor.go index e66f7a078af..c76bcee1d92 100644 --- a/server/visitor/visitor.go +++ b/server/visitor/visitor.go @@ -21,57 +21,69 @@ import ( "sync" libio "github.com/fatedier/golib/io" + "github.com/samber/lo" utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" ) +type listenerBundle struct { + l *utilnet.InternalListener + sk string + allowUsers []string +} + // Manager for visitor listeners. type Manager struct { - visitorListeners map[string]*utilnet.InternalListener - skMap map[string]string + listeners map[string]*listenerBundle mu sync.RWMutex } func NewManager() *Manager { return &Manager{ - visitorListeners: make(map[string]*utilnet.InternalListener), - skMap: make(map[string]string), + listeners: make(map[string]*listenerBundle), } } -func (vm *Manager) Listen(name string, sk string) (l *utilnet.InternalListener, err error) { +func (vm *Manager) Listen(name string, sk string, allowUsers []string) (l *utilnet.InternalListener, err error) { vm.mu.Lock() defer vm.mu.Unlock() - if _, ok := vm.visitorListeners[name]; ok { + if _, ok := vm.listeners[name]; ok { err = fmt.Errorf("custom listener for [%s] is repeated", name) return } l = utilnet.NewInternalListener() - vm.visitorListeners[name] = l - vm.skMap[name] = sk + vm.listeners[name] = &listenerBundle{ + l: l, + sk: sk, + allowUsers: allowUsers, + } return } func (vm *Manager) NewConn(name string, conn net.Conn, timestamp int64, signKey string, - useEncryption bool, useCompression bool, + useEncryption bool, useCompression bool, visitorUser string, ) (err error) { vm.mu.RLock() defer vm.mu.RUnlock() - if l, ok := vm.visitorListeners[name]; ok { - var sk string - if sk = vm.skMap[name]; util.GetAuthKey(sk, timestamp) != signKey { + if l, ok := vm.listeners[name]; ok { + if util.GetAuthKey(l.sk, timestamp) != signKey { err = fmt.Errorf("visitor connection of [%s] auth failed", name) return } + if !lo.Contains(l.allowUsers, visitorUser) && !lo.Contains(l.allowUsers, "*") { + err = fmt.Errorf("visitor connection of [%s] user [%s] not allowed", name, visitorUser) + return + } + var rwc io.ReadWriteCloser = conn if useEncryption { - if rwc, err = libio.WithEncryption(rwc, []byte(sk)); err != nil { + if rwc, err = libio.WithEncryption(rwc, []byte(l.sk)); err != nil { err = fmt.Errorf("create encryption connection failed: %v", err) return } @@ -79,7 +91,7 @@ func (vm *Manager) NewConn(name string, conn net.Conn, timestamp int64, signKey if useCompression { rwc = libio.WithCompression(rwc) } - err = l.PutConn(utilnet.WrapReadWriteCloserToConn(rwc, conn)) + err = l.l.PutConn(utilnet.WrapReadWriteCloserToConn(rwc, conn)) } else { err = fmt.Errorf("custom listener for [%s] doesn't exist", name) return @@ -91,6 +103,5 @@ func (vm *Manager) CloseListener(name string) { vm.mu.Lock() defer vm.mu.Unlock() - delete(vm.visitorListeners, name) - delete(vm.skMap, name) + delete(vm.listeners, name) } diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index 9f5914de451..c2a5d2741c6 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -282,8 +282,9 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { proxyType := t ginkgo.It(fmt.Sprintf("Expose echo server with %s", strings.ToUpper(proxyType)), func() { serverConf := consts.DefaultServerConfig - clientServerConf := consts.DefaultClientConfig - clientVisitorConf := consts.DefaultClientConfig + clientServerConf := consts.DefaultClientConfig + "\nuser = user1" + clientVisitorConf := consts.DefaultClientConfig + "\nuser = user1" + clientUser2VisitorConf := consts.DefaultClientConfig + "\nuser = user2" localPortName := "" protocol := "tcp" @@ -312,7 +313,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { `+extra, proxyName, proxyType, correctSK, localPortName) } getProxyVisitorConf := func(proxyName string, portName, visitorSK, extra string) string { - return fmt.Sprintf(` + out := fmt.Sprintf(` [%s] type = %s role = visitor @@ -320,14 +321,22 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { sk = %s bind_port = {{ .%s }} `+extra, proxyName, proxyType, proxyName, visitorSK, portName) + if proxyType == "xtcp" { + // Set keep_tunnel_open to reduce testing time. + out += "\nkeep_tunnel_open = true" + } + return out } tests := []struct { - proxyName string - bindPortName string - visitorSK string - extraConfig string - expectError bool + proxyName string + bindPortName string + visitorSK string + commonExtraConfig string + proxyExtraConfig string + visitorExtraConfig string + expectError bool + user2 bool }{ { proxyName: "normal", @@ -335,22 +344,22 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { visitorSK: correctSK, }, { - proxyName: "with-encryption", - bindPortName: port.GenName("WithEncryption"), - visitorSK: correctSK, - extraConfig: "use_encryption = true", + proxyName: "with-encryption", + bindPortName: port.GenName("WithEncryption"), + visitorSK: correctSK, + commonExtraConfig: "use_encryption = true", }, { - proxyName: "with-compression", - bindPortName: port.GenName("WithCompression"), - visitorSK: correctSK, - extraConfig: "use_compression = true", + proxyName: "with-compression", + bindPortName: port.GenName("WithCompression"), + visitorSK: correctSK, + commonExtraConfig: "use_compression = true", }, { proxyName: "with-encryption-and-compression", bindPortName: port.GenName("WithEncryptionAndCompression"), visitorSK: correctSK, - extraConfig: ` + commonExtraConfig: ` use_encryption = true use_compression = true `, @@ -361,22 +370,53 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { visitorSK: wrongSK, expectError: true, }, + { + proxyName: "allowed-user", + bindPortName: port.GenName("AllowedUser"), + visitorSK: correctSK, + proxyExtraConfig: "allow_users = another, user2", + visitorExtraConfig: "server_user = user1", + user2: true, + }, + { + proxyName: "not-allowed-user", + bindPortName: port.GenName("NotAllowedUser"), + visitorSK: correctSK, + proxyExtraConfig: "allow_users = invalid", + visitorExtraConfig: "server_user = user1", + expectError: true, + }, + { + proxyName: "allow-all", + bindPortName: port.GenName("AllowAll"), + visitorSK: correctSK, + proxyExtraConfig: "allow_users = *", + visitorExtraConfig: "server_user = user1", + user2: true, + }, } // build all client config for _, test := range tests { - clientServerConf += getProxyServerConf(test.proxyName, test.extraConfig) + "\n" + clientServerConf += getProxyServerConf(test.proxyName, test.commonExtraConfig+"\n"+test.proxyExtraConfig) + "\n" } for _, test := range tests { - clientVisitorConf += getProxyVisitorConf(test.proxyName, test.bindPortName, test.visitorSK, test.extraConfig) + "\n" + config := getProxyVisitorConf( + test.proxyName, test.bindPortName, test.visitorSK, test.commonExtraConfig+"\n"+test.visitorExtraConfig, + ) + "\n" + if test.user2 { + clientUser2VisitorConf += config + } else { + clientVisitorConf += config + } } // run frps and frpc - f.RunProcesses([]string{serverConf}, []string{clientServerConf, clientVisitorConf}) + f.RunProcesses([]string{serverConf}, []string{clientServerConf, clientVisitorConf, clientUser2VisitorConf}) for _, test := range tests { framework.NewRequestExpect(f). RequestModify(func(r *request.Request) { - r.Timeout(10 * time.Second) + r.Timeout(3 * time.Second) }). Protocol(protocol). PortName(test.bindPortName). diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index dba809ddbf4..ca717e258b3 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -56,7 +56,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str ExpectNoError(err) time.Sleep(500 * time.Millisecond) } - time.Sleep(2 * time.Second) + time.Sleep(3 * time.Second) return currentServerProcesses, currentClientProcesses } From ea08de668e91dd988bc3ae510290aa6b6cbb9c88 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 4 Jun 2023 19:58:55 +0800 Subject: [PATCH 075/444] yamux: change default MaxStreamWindowSize to 6MB (#3474) --- client/proxy/xtcp.go | 2 +- client/service.go | 1 + client/visitor/xtcp.go | 2 +- server/service.go | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index 4ba8d50c870..e6c76203ebf 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -137,7 +137,7 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s fmuxCfg := fmux.DefaultConfig() fmuxCfg.KeepAliveInterval = 10 * time.Second - fmuxCfg.MaxStreamWindowSize = 2 * 1024 * 1024 + fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 fmuxCfg.LogOutput = io.Discard session, err := fmux.Server(remote, fmuxCfg) if err != nil { diff --git a/client/service.go b/client/service.go index 0849484c53f..df85c05f4b1 100644 --- a/client/service.go +++ b/client/service.go @@ -396,6 +396,7 @@ func (cm *ConnectionManager) OpenConnection() error { fmuxCfg := fmux.DefaultConfig() fmuxCfg.KeepAliveInterval = time.Duration(cm.cfg.TCPMuxKeepaliveInterval) * time.Second fmuxCfg.LogOutput = io.Discard + fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Client(conn, fmuxCfg) if err != nil { return err diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 73f307896e5..8dcd9363e67 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -351,7 +351,7 @@ func (ks *KCPTunnelSession) Init(listenConn *net.UDPConn, raddr *net.UDPAddr) er fmuxCfg := fmux.DefaultConfig() fmuxCfg.KeepAliveInterval = 10 * time.Second - fmuxCfg.MaxStreamWindowSize = 2 * 1024 * 1024 + fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 fmuxCfg.LogOutput = io.Discard session, err := fmux.Client(remote, fmuxCfg) if err != nil { diff --git a/server/service.go b/server/service.go index e67ee73d3f5..3c4f5a81e5b 100644 --- a/server/service.go +++ b/server/service.go @@ -461,6 +461,7 @@ func (svr *Service) HandleListener(l net.Listener) { fmuxCfg := fmux.DefaultConfig() fmuxCfg.KeepAliveInterval = time.Duration(svr.cfg.TCPMuxKeepaliveInterval) * time.Second fmuxCfg.LogOutput = io.Discard + fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Server(frpConn, fmuxCfg) if err != nil { log.Warn("Failed to create mux connection: %v", err) From 9ba6a064709cbf8a0036df905c3f0e1262bb0355 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 4 Jun 2023 20:11:07 +0800 Subject: [PATCH 076/444] e2e: update --- test/e2e/basic/basic.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index c2a5d2741c6..eda77afed3d 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -313,7 +313,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { `+extra, proxyName, proxyType, correctSK, localPortName) } getProxyVisitorConf := func(proxyName string, portName, visitorSK, extra string) string { - out := fmt.Sprintf(` + return fmt.Sprintf(` [%s] type = %s role = visitor @@ -321,11 +321,6 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { sk = %s bind_port = {{ .%s }} `+extra, proxyName, proxyType, proxyName, visitorSK, portName) - if proxyType == "xtcp" { - // Set keep_tunnel_open to reduce testing time. - out += "\nkeep_tunnel_open = true" - } - return out } tests := []struct { From e1cef053be195c4e5a80805a238af3cc12199c74 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 16 Jun 2023 00:14:19 +0800 Subject: [PATCH 077/444] server/proxy: simplify the code (#3488) --- pkg/nathole/controller.go | 1 + server/proxy/http.go | 21 ++++-- server/proxy/https.go | 24 +++++-- server/proxy/proxy.go | 140 ++++++++++++++++---------------------- server/proxy/stcp.go | 23 +++++-- server/proxy/sudp.go | 23 +++++-- server/proxy/tcp.go | 43 +++++++----- server/proxy/tcpmux.go | 24 +++++-- server/proxy/udp.go | 36 ++++++---- server/proxy/xtcp.go | 21 ++++-- 10 files changed, 209 insertions(+), 147 deletions(-) diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index 6f97455a501..82e2b206bc1 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -130,6 +130,7 @@ func (c *Controller) ListenClient(name string, sk string, allowUsers []string) c } c.mu.Lock() defer c.mu.Unlock() + // TODO(fatedier): return error if name already exists c.clientCfgs[name] = cfg return cfg.sidCh } diff --git a/server/proxy/http.go b/server/proxy/http.go index 31742b7fad1..432dbc101b3 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -17,10 +17,10 @@ package proxy import ( "io" "net" + "reflect" "strings" libio "github.com/fatedier/golib/io" - "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/util/limit" @@ -30,6 +30,10 @@ import ( "github.com/fatedier/frp/server/metrics" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.HTTPProxyConf{}), NewHTTPProxy) +} + type HTTPProxy struct { *BaseProxy cfg *config.HTTPProxyConf @@ -37,6 +41,17 @@ type HTTPProxy struct { closeFuncs []func() } +func NewHTTPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.HTTPProxyConf) + if !ok { + return nil + } + return &HTTPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } +} + func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl routeConfig := vhost.RouteConfig{ @@ -137,10 +152,6 @@ func (pxy *HTTPProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *HTTPProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err error) { xl := pxy.xl rAddr, errRet := net.ResolveTCPAddr("tcp", remoteAddr) diff --git a/server/proxy/https.go b/server/proxy/https.go index 1fb579e1188..74f0e7ca26e 100644 --- a/server/proxy/https.go +++ b/server/proxy/https.go @@ -15,20 +15,34 @@ package proxy import ( + "reflect" "strings" - "golang.org/x/time/rate" - "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.HTTPSProxyConf{}), NewHTTPSProxy) +} + type HTTPSProxy struct { *BaseProxy cfg *config.HTTPSProxyConf } +func NewHTTPSProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.HTTPSProxyConf) + if !ok { + return nil + } + return &HTTPSProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } +} + func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { xl := pxy.xl routeConfig := &vhost.RouteConfig{} @@ -67,7 +81,7 @@ func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPSPort)) } - pxy.startListenHandler(pxy, HandleUserTCPConnection) + pxy.startCommonTCPListenersHandler() remoteAddr = strings.Join(addrs, ",") return } @@ -76,10 +90,6 @@ func (pxy *HTTPSProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *HTTPSProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *HTTPSProxy) Close() { pxy.BaseProxy.Close() } diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index b2d326a9f91..9ccab5af4a1 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -19,6 +19,7 @@ import ( "fmt" "io" "net" + "reflect" "strconv" "sync" "time" @@ -36,6 +37,12 @@ import ( "github.com/fatedier/frp/server/metrics" ) +var proxyFactoryRegistry = map[reflect.Type]func(*BaseProxy, config.ProxyConf) Proxy{} + +func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*BaseProxy, config.ProxyConf) Proxy) { + proxyFactoryRegistry[proxyConfType] = factory +} + type GetWorkConnFn func() (net.Conn, error) type Proxy interface { @@ -63,6 +70,7 @@ type BaseProxy struct { limiter *rate.Limiter userInfo plugin.UserInfo loginMsg *msg.Login + pxyConf config.ProxyConf mu sync.RWMutex xl *xlog.Logger @@ -93,6 +101,10 @@ func (pxy *BaseProxy) GetLoginMsg() *msg.Login { return pxy.loginMsg } +func (pxy *BaseProxy) GetLimiter() *rate.Limiter { + return pxy.limiter +} + func (pxy *BaseProxy) Close() { xl := xlog.FromContextSafe(pxy.ctx) xl.Info("proxy closing") @@ -155,10 +167,8 @@ func (pxy *BaseProxy) GetWorkConnFromPool(src, dst net.Addr) (workConn net.Conn, return } -// startListenHandler start a goroutine handler for each listener. -// p: p will just be passed to handler(Proxy, utilnet.Conn). -// handler: each proxy type can set different handler function to deal with connections accepted from listeners. -func (pxy *BaseProxy) startListenHandler(p Proxy, handler func(Proxy, net.Conn, config.ServerCommonConf)) { +// startCommonTCPListenersHandler start a goroutine handler for each listener. +func (pxy *BaseProxy) startCommonTCPListenersHandler() { xl := xlog.FromContextSafe(pxy.ctx) for _, listener := range pxy.listeners { go func(l net.Listener) { @@ -187,97 +197,25 @@ func (pxy *BaseProxy) startListenHandler(p Proxy, handler func(Proxy, net.Conn, return } xl.Info("get a user connection [%s]", c.RemoteAddr().String()) - go handler(p, c, pxy.serverCfg) + go pxy.handleUserTCPConnection(c) } }(listener) } } -func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.ResourceController, poolCount int, - getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, loginMsg *msg.Login, -) (pxy Proxy, err error) { - xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseConfig().ProxyName) - - var limiter *rate.Limiter - limitBytes := pxyConf.GetBaseConfig().BandwidthLimit.Bytes() - if limitBytes > 0 && pxyConf.GetBaseConfig().BandwidthLimitMode == config.BandwidthLimitModeServer { - limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) - } - - basePxy := BaseProxy{ - name: pxyConf.GetBaseConfig().ProxyName, - rc: rc, - listeners: make([]net.Listener, 0), - poolCount: poolCount, - getWorkConnFn: getWorkConnFn, - serverCfg: serverCfg, - limiter: limiter, - xl: xl, - ctx: xlog.NewContext(ctx, xl), - userInfo: userInfo, - loginMsg: loginMsg, - } - switch cfg := pxyConf.(type) { - case *config.TCPProxyConf: - basePxy.usedPortsNum = 1 - pxy = &TCPProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - case *config.TCPMuxProxyConf: - pxy = &TCPMuxProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - case *config.HTTPProxyConf: - pxy = &HTTPProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - case *config.HTTPSProxyConf: - pxy = &HTTPSProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - case *config.UDPProxyConf: - basePxy.usedPortsNum = 1 - pxy = &UDPProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - case *config.STCPProxyConf: - pxy = &STCPProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - case *config.XTCPProxyConf: - pxy = &XTCPProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - case *config.SUDPProxyConf: - pxy = &SUDPProxy{ - BaseProxy: &basePxy, - cfg: cfg, - } - default: - return pxy, fmt.Errorf("proxy type not support") - } - return -} - // HandleUserTCPConnection is used for incoming user TCP connections. -// It can be used for tcp, http, https type. -func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.ServerCommonConf) { +func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { xl := xlog.FromContextSafe(pxy.Context()) defer userConn.Close() + serverCfg := pxy.serverCfg + cfg := pxy.pxyConf.GetBaseConfig() // server plugin hook rc := pxy.GetResourceController() content := &plugin.NewUserConnContent{ User: pxy.GetUserInfo(), ProxyName: pxy.GetName(), - ProxyType: pxy.GetConf().GetBaseConfig().ProxyType, + ProxyType: cfg.ProxyType, RemoteAddr: userConn.RemoteAddr().String(), } _, err := rc.PluginManager.NewUserConn(content) @@ -294,7 +232,6 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv defer workConn.Close() var local io.ReadWriteCloser = workConn - cfg := pxy.GetConf().GetBaseConfig() xl.Trace("handler user tcp connection, use_encryption: %t, use_compression: %t", cfg.UseEncryption, cfg.UseCompression) if cfg.UseEncryption { local, err = libio.WithEncryption(local, []byte(serverCfg.Token)) @@ -317,7 +254,7 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv workConn.RemoteAddr().String(), userConn.LocalAddr().String(), userConn.RemoteAddr().String()) name := pxy.GetName() - proxyType := pxy.GetConf().GetBaseConfig().ProxyType + proxyType := cfg.ProxyType metrics.Server.OpenConnection(name, proxyType) inCount, outCount, _ := libio.Join(local, userConn) metrics.Server.CloseConnection(name, proxyType) @@ -326,6 +263,43 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv xl.Debug("join connections closed") } +func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.ResourceController, poolCount int, + getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, loginMsg *msg.Login, +) (pxy Proxy, err error) { + xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseConfig().ProxyName) + + var limiter *rate.Limiter + limitBytes := pxyConf.GetBaseConfig().BandwidthLimit.Bytes() + if limitBytes > 0 && pxyConf.GetBaseConfig().BandwidthLimitMode == config.BandwidthLimitModeServer { + limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) + } + + basePxy := BaseProxy{ + name: pxyConf.GetBaseConfig().ProxyName, + rc: rc, + listeners: make([]net.Listener, 0), + poolCount: poolCount, + getWorkConnFn: getWorkConnFn, + serverCfg: serverCfg, + limiter: limiter, + xl: xl, + ctx: xlog.NewContext(ctx, xl), + userInfo: userInfo, + loginMsg: loginMsg, + pxyConf: pxyConf, + } + + factory := proxyFactoryRegistry[reflect.TypeOf(pxyConf)] + if factory == nil { + return pxy, fmt.Errorf("proxy type not support") + } + pxy = factory(&basePxy, pxyConf) + if pxy == nil { + return nil, fmt.Errorf("proxy not created") + } + return pxy, nil +} + type Manager struct { // proxies indexed by proxy name pxys map[string]Proxy diff --git a/server/proxy/stcp.go b/server/proxy/stcp.go index f5311be4fb0..7c1511ab288 100644 --- a/server/proxy/stcp.go +++ b/server/proxy/stcp.go @@ -15,16 +15,31 @@ package proxy import ( - "golang.org/x/time/rate" + "reflect" "github.com/fatedier/frp/pkg/config" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.STCPProxyConf{}), NewSTCPProxy) +} + type STCPProxy struct { *BaseProxy cfg *config.STCPProxyConf } +func NewSTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.STCPProxyConf) + if !ok { + return nil + } + return &STCPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } +} + func (pxy *STCPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl allowUsers := pxy.cfg.AllowUsers @@ -40,7 +55,7 @@ func (pxy *STCPProxy) Run() (remoteAddr string, err error) { pxy.listeners = append(pxy.listeners, listener) xl.Info("stcp proxy custom listen success") - pxy.startListenHandler(pxy, HandleUserTCPConnection) + pxy.startCommonTCPListenersHandler() return } @@ -48,10 +63,6 @@ func (pxy *STCPProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *STCPProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *STCPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.VisitorManager.CloseListener(pxy.GetName()) diff --git a/server/proxy/sudp.go b/server/proxy/sudp.go index 82bf8d2392b..492b09542bd 100644 --- a/server/proxy/sudp.go +++ b/server/proxy/sudp.go @@ -15,16 +15,31 @@ package proxy import ( - "golang.org/x/time/rate" + "reflect" "github.com/fatedier/frp/pkg/config" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.SUDPProxyConf{}), NewSUDPProxy) +} + type SUDPProxy struct { *BaseProxy cfg *config.SUDPProxyConf } +func NewSUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.SUDPProxyConf) + if !ok { + return nil + } + return &SUDPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } +} + func (pxy *SUDPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl allowUsers := pxy.cfg.AllowUsers @@ -40,7 +55,7 @@ func (pxy *SUDPProxy) Run() (remoteAddr string, err error) { pxy.listeners = append(pxy.listeners, listener) xl.Info("sudp proxy custom listen success") - pxy.startListenHandler(pxy, HandleUserTCPConnection) + pxy.startCommonTCPListenersHandler() return } @@ -48,10 +63,6 @@ func (pxy *SUDPProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *SUDPProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *SUDPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.VisitorManager.CloseListener(pxy.GetName()) diff --git a/server/proxy/tcp.go b/server/proxy/tcp.go index 1ba0fb1a729..5bb5c1abfaf 100644 --- a/server/proxy/tcp.go +++ b/server/proxy/tcp.go @@ -17,24 +17,39 @@ package proxy import ( "fmt" "net" + "reflect" "strconv" - "golang.org/x/time/rate" - "github.com/fatedier/frp/pkg/config" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.TCPProxyConf{}), NewTCPProxy) +} + type TCPProxy struct { *BaseProxy cfg *config.TCPProxyConf - realPort int + realBindPort int +} + +func NewTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.TCPProxyConf) + if !ok { + return nil + } + baseProxy.usedPortsNum = 1 + return &TCPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } } func (pxy *TCPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl if pxy.cfg.Group != "" { - l, realPort, errRet := pxy.rc.TCPGroupCtl.Listen(pxy.name, pxy.cfg.Group, pxy.cfg.GroupKey, pxy.serverCfg.ProxyBindAddr, pxy.cfg.RemotePort) + l, realBindPort, errRet := pxy.rc.TCPGroupCtl.Listen(pxy.name, pxy.cfg.Group, pxy.cfg.GroupKey, pxy.serverCfg.ProxyBindAddr, pxy.cfg.RemotePort) if errRet != nil { err = errRet return @@ -44,20 +59,20 @@ func (pxy *TCPProxy) Run() (remoteAddr string, err error) { l.Close() } }() - pxy.realPort = realPort + pxy.realBindPort = realBindPort pxy.listeners = append(pxy.listeners, l) xl.Info("tcp proxy listen port [%d] in group [%s]", pxy.cfg.RemotePort, pxy.cfg.Group) } else { - pxy.realPort, err = pxy.rc.TCPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort) + pxy.realBindPort, err = pxy.rc.TCPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort) if err != nil { return } defer func() { if err != nil { - pxy.rc.TCPPortManager.Release(pxy.realPort) + pxy.rc.TCPPortManager.Release(pxy.realBindPort) } }() - listener, errRet := net.Listen("tcp", net.JoinHostPort(pxy.serverCfg.ProxyBindAddr, strconv.Itoa(pxy.realPort))) + listener, errRet := net.Listen("tcp", net.JoinHostPort(pxy.serverCfg.ProxyBindAddr, strconv.Itoa(pxy.realBindPort))) if errRet != nil { err = errRet return @@ -66,9 +81,9 @@ func (pxy *TCPProxy) Run() (remoteAddr string, err error) { xl.Info("tcp proxy listen port [%d]", pxy.cfg.RemotePort) } - pxy.cfg.RemotePort = pxy.realPort - remoteAddr = fmt.Sprintf(":%d", pxy.realPort) - pxy.startListenHandler(pxy, HandleUserTCPConnection) + pxy.cfg.RemotePort = pxy.realBindPort + remoteAddr = fmt.Sprintf(":%d", pxy.realBindPort) + pxy.startCommonTCPListenersHandler() return } @@ -76,13 +91,9 @@ func (pxy *TCPProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *TCPProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *TCPProxy) Close() { pxy.BaseProxy.Close() if pxy.cfg.Group == "" { - pxy.rc.TCPPortManager.Release(pxy.realPort) + pxy.rc.TCPPortManager.Release(pxy.realBindPort) } } diff --git a/server/proxy/tcpmux.go b/server/proxy/tcpmux.go index 23e833b8e71..6d25a84ecb2 100644 --- a/server/proxy/tcpmux.go +++ b/server/proxy/tcpmux.go @@ -17,21 +17,35 @@ package proxy import ( "fmt" "net" + "reflect" "strings" - "golang.org/x/time/rate" - "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.TCPMuxProxyConf{}), NewTCPMuxProxy) +} + type TCPMuxProxy struct { *BaseProxy cfg *config.TCPMuxProxyConf } +func NewTCPMuxProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.TCPMuxProxyConf) + if !ok { + return nil + } + return &TCPMuxProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } +} + func (pxy *TCPMuxProxy) httpConnectListen( domain, routeByHTTPUser, httpUser, httpPwd string, addrs []string) ([]string, error, ) { @@ -78,7 +92,7 @@ func (pxy *TCPMuxProxy) httpConnectRun() (remoteAddr string, err error) { } } - pxy.startListenHandler(pxy, HandleUserTCPConnection) + pxy.startCommonTCPListenersHandler() remoteAddr = strings.Join(addrs, ",") return remoteAddr, err } @@ -101,10 +115,6 @@ func (pxy *TCPMuxProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *TCPMuxProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *TCPMuxProxy) Close() { pxy.BaseProxy.Close() } diff --git a/server/proxy/udp.go b/server/proxy/udp.go index e047c9de33e..20108bf3933 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -19,12 +19,12 @@ import ( "fmt" "io" "net" + "reflect" "strconv" "time" "github.com/fatedier/golib/errors" libio "github.com/fatedier/golib/io" - "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" @@ -34,11 +34,15 @@ import ( "github.com/fatedier/frp/server/metrics" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.UDPProxyConf{}), NewUDPProxy) +} + type UDPProxy struct { *BaseProxy cfg *config.UDPProxyConf - realPort int + realBindPort int // udpConn is the listener of udp packages udpConn *net.UDPConn @@ -59,21 +63,33 @@ type UDPProxy struct { isClosed bool } +func NewUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.UDPProxyConf) + if !ok { + return nil + } + baseProxy.usedPortsNum = 1 + return &UDPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } +} + func (pxy *UDPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl - pxy.realPort, err = pxy.rc.UDPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort) + pxy.realBindPort, err = pxy.rc.UDPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort) if err != nil { return "", fmt.Errorf("acquire port %d error: %v", pxy.cfg.RemotePort, err) } defer func() { if err != nil { - pxy.rc.UDPPortManager.Release(pxy.realPort) + pxy.rc.UDPPortManager.Release(pxy.realBindPort) } }() - remoteAddr = fmt.Sprintf(":%d", pxy.realPort) - pxy.cfg.RemotePort = pxy.realPort - addr, errRet := net.ResolveUDPAddr("udp", net.JoinHostPort(pxy.serverCfg.ProxyBindAddr, strconv.Itoa(pxy.realPort))) + remoteAddr = fmt.Sprintf(":%d", pxy.realBindPort) + pxy.cfg.RemotePort = pxy.realBindPort + addr, errRet := net.ResolveUDPAddr("udp", net.JoinHostPort(pxy.serverCfg.ProxyBindAddr, strconv.Itoa(pxy.realBindPort))) if errRet != nil { err = errRet return @@ -233,10 +249,6 @@ func (pxy *UDPProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *UDPProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *UDPProxy) Close() { pxy.mu.Lock() defer pxy.mu.Unlock() @@ -254,5 +266,5 @@ func (pxy *UDPProxy) Close() { close(pxy.readCh) close(pxy.sendCh) } - pxy.rc.UDPPortManager.Release(pxy.realPort) + pxy.rc.UDPPortManager.Release(pxy.realBindPort) } diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index 9f4b9f41628..5d6871ebd73 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -16,14 +16,18 @@ package proxy import ( "fmt" + "reflect" "github.com/fatedier/golib/errors" - "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/msg" ) +func init() { + RegisterProxyFactory(reflect.TypeOf(&config.XTCPProxyConf{}), NewXTCPProxy) +} + type XTCPProxy struct { *BaseProxy cfg *config.XTCPProxyConf @@ -31,6 +35,17 @@ type XTCPProxy struct { closeCh chan struct{} } +func NewXTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { + unwrapped, ok := cfg.(*config.XTCPProxyConf) + if !ok { + return nil + } + return &XTCPProxy{ + BaseProxy: baseProxy, + cfg: unwrapped, + } +} + func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl @@ -72,10 +87,6 @@ func (pxy *XTCPProxy) GetConf() config.ProxyConf { return pxy.cfg } -func (pxy *XTCPProxy) GetLimiter() *rate.Limiter { - return pxy.limiter -} - func (pxy *XTCPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.NatHoleController.CloseClient(pxy.GetName()) From 15a245766e293098c23b96ae76cdf8117b245714 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 16 Jun 2023 00:41:06 +0800 Subject: [PATCH 078/444] fix the issue of duplicate xtcp proxies will cause the previous proxy to become ineffective (#3489) --- pkg/nathole/controller.go | 8 +++++--- server/control.go | 5 +++++ server/proxy/proxy.go | 7 +++++++ server/proxy/xtcp.go | 5 ++++- test/e2e/basic/server.go | 6 +++--- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index 82e2b206bc1..5dfd6456aec 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -121,7 +121,7 @@ func (c *Controller) CleanWorker(ctx context.Context) { } } -func (c *Controller) ListenClient(name string, sk string, allowUsers []string) chan string { +func (c *Controller) ListenClient(name string, sk string, allowUsers []string) (chan string, error) { cfg := &ClientCfg{ name: name, sk: sk, @@ -130,9 +130,11 @@ func (c *Controller) ListenClient(name string, sk string, allowUsers []string) c } c.mu.Lock() defer c.mu.Unlock() - // TODO(fatedier): return error if name already exists + if _, ok := c.clientCfgs[name]; ok { + return nil, fmt.Errorf("proxy [%s] is repeated", name) + } c.clientCfgs[name] = cfg - return cfg.sidCh + return cfg.sidCh, nil } func (c *Controller) CloseClient(name string) { diff --git a/server/control.go b/server/control.go index 4d6b802c6d2..637a76b5ee0 100644 --- a/server/control.go +++ b/server/control.go @@ -577,6 +577,11 @@ func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err }() } + if ctl.pxyManager.Exist(pxyMsg.ProxyName) { + err = fmt.Errorf("proxy [%s] already exists", pxyMsg.ProxyName) + return + } + remoteAddr, err = pxy.Run() if err != nil { return diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 9ccab5af4a1..aeb2ef050bf 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -324,6 +324,13 @@ func (pm *Manager) Add(name string, pxy Proxy) error { return nil } +func (pm *Manager) Exist(name string) bool { + pm.mu.RLock() + defer pm.mu.RUnlock() + _, ok := pm.pxys[name] + return ok +} + func (pm *Manager) Del(name string) { pm.mu.Lock() defer pm.mu.Unlock() diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index 5d6871ebd73..acf127d7f26 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -58,7 +58,10 @@ func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { if len(allowUsers) == 0 { allowUsers = []string{pxy.GetUserInfo().User} } - sidCh := pxy.rc.NatHoleController.ListenClient(pxy.GetName(), pxy.cfg.Sk, allowUsers) + sidCh, err := pxy.rc.NatHoleController.ListenClient(pxy.GetName(), pxy.cfg.Sk, allowUsers) + if err != nil { + return "", err + } go func() { for { select { diff --git a/test/e2e/basic/server.go b/test/e2e/basic/server.go index 4ae82515523..bfa2f2eb87e 100644 --- a/test/e2e/basic/server.go +++ b/test/e2e/basic/server.go @@ -37,7 +37,7 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { [tcp-port-not-allowed] type = tcp local_port = {{ .%s }} - remote_port = 20001 + remote_port = 25001 `, framework.TCPEchoServerPort) clientConf += fmt.Sprintf(` [tcp-port-unavailable] @@ -55,7 +55,7 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { [udp-port-not-allowed] type = udp local_port = {{ .%s }} - remote_port = 20003 + remote_port = 25003 `, framework.UDPEchoServerPort) f.RunProcesses([]string{serverConf}, []string{clientConf}) @@ -65,7 +65,7 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { framework.NewRequestExpect(f).PortName(tcpPortName).Ensure() // Not Allowed - framework.NewRequestExpect(f).Port(25003).ExpectError(true).Ensure() + framework.NewRequestExpect(f).Port(25001).ExpectError(true).Ensure() // Unavailable, already bind by frps framework.NewRequestExpect(f).PortName(consts.PortServerName).ExpectError(true).Ensure() From 685d7618f3f3a10a6c6cf3fcebe0e11602c39d25 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 26 Jun 2023 00:10:27 +0800 Subject: [PATCH 079/444] change default value of tls_enable and disable_custom_tls_first_byte (#3494) --- README.md | 7 +--- client/proxy/xtcp.go | 2 + client/visitor/xtcp.go | 3 ++ cmd/frpc/sub/root.go | 2 +- conf/frpc_full.ini | 10 +++-- pkg/config/client.go | 60 +++++++++++++++------------- pkg/config/client_test.go | 69 +++++++++++++++++---------------- pkg/nathole/controller.go | 4 +- test/e2e/basic/basic.go | 6 ++- test/e2e/basic/client_server.go | 19 ++++----- 10 files changed, 95 insertions(+), 87 deletions(-) diff --git a/README.md b/README.md index 4cf18b6a41d..82fb87d01cf 100644 --- a/README.md +++ b/README.md @@ -562,11 +562,9 @@ use_compression = true #### TLS -frp supports the TLS protocol between `frpc` and `frps` since v0.25.0. +Since v0.50.0, the default value of `tls_enable` and `disable_custom_tls_first_byte` has been changed to true, and tls is enabled by default. -For port multiplexing, frp sends a first byte `0x17` to dial a TLS connection. - -Configure `tls_enable = true` in the `[common]` section to `frpc.ini` to enable this feature. +For port multiplexing, frp sends a first byte `0x17` to dial a TLS connection. This only takes effect when you set `disable_custom_tls_first_byte` to false. To **enforce** `frps` to only accept TLS connections - configure `tls_only = true` in the `[common]` section in `frps.ini`. **This is optional.** @@ -581,7 +579,6 @@ tls_trusted_ca_file = ca.crt **`frps` TLS settings (under the `[common]` section):** ```ini tls_only = true -tls_enable = true tls_cert_file = certificate.crt tls_key_file = certificate.key tls_trusted_ca_file = ca.crt diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index e6c76203ebf..ccf390791aa 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -61,6 +61,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC return } + xl.Trace("nathole prepare start") prepareResult, err := nathole.Prepare([]string{pxy.clientCfg.NatHoleSTUNServer}) if err != nil { xl.Warn("nathole prepare error: %v", err) @@ -80,6 +81,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC AssistedAddrs: prepareResult.AssistedAddrs, } + xl.Trace("nathole exchange info start") natHoleRespMsg, err := nathole.ExchangeInfo(pxy.ctx, pxy.msgTransporter, transactionID, natHoleClientMsg, 5*time.Second) if err != nil { xl.Warn("nathole exchange info error: %v", err) diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 8dcd9363e67..9f83b3945fd 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -266,11 +266,13 @@ func (sv *XTCPVisitor) getTunnelConn() (net.Conn, error) { // 4. Create a tunnel session using an underlying UDP connection. func (sv *XTCPVisitor) makeNatHole() { xl := xlog.FromContextSafe(sv.ctx) + xl.Trace("makeNatHole start") if err := nathole.PreCheck(sv.ctx, sv.helper.MsgTransporter(), sv.cfg.ServerName, 5*time.Second); err != nil { xl.Warn("nathole precheck error: %v", err) return } + xl.Trace("nathole prepare start") prepareResult, err := nathole.Prepare([]string{sv.clientCfg.NatHoleSTUNServer}) if err != nil { xl.Warn("nathole prepare error: %v", err) @@ -294,6 +296,7 @@ func (sv *XTCPVisitor) makeNatHole() { AssistedAddrs: prepareResult.AssistedAddrs, } + xl.Trace("nathole exchange info start") natHoleRespMsg, err := nathole.ExchangeInfo(sv.ctx, sv.helper.MsgTransporter(), transactionID, natHoleVisitorMsg, 5*time.Second) if err != nil { listenConn.Close() diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 5779750527f..515a1936586 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -94,7 +94,7 @@ func RegisterCommonFlags(cmd *cobra.Command) { cmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path") cmd.PersistentFlags().IntVarP(&logMaxDays, "log_max_days", "", 3, "log file reversed days") cmd.PersistentFlags().BoolVarP(&disableLogColor, "disable_log_color", "", false, "disable log color in console") - cmd.PersistentFlags().BoolVarP(&tlsEnable, "tls_enable", "", false, "enable frpc tls") + cmd.PersistentFlags().BoolVarP(&tlsEnable, "tls_enable", "", true, "enable frpc tls") cmd.PersistentFlags().StringVarP(&dnsServer, "dns_server", "", "", "specify dns server instead of using system default one") } diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 4186b538f2d..4982f4fbf17 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -107,7 +107,8 @@ connect_server_local_ip = 0.0.0.0 # quic_max_idle_timeout = 30 # quic_max_incoming_streams = 100000 -# if tls_enable is true, frpc will connect frps by tls +# If tls_enable is true, frpc will connect frps by tls. +# Since v0.50.0, the default value has been changed to true, and tls is enabled by default. tls_enable = true # tls_cert_file = client.crt @@ -140,9 +141,10 @@ udp_packet_size = 1500 # include other config files for proxies. # includes = ./confd/*.ini -# By default, frpc will connect frps with first custom byte if tls is enabled. -# If DisableCustomTLSFirstByte is true, frpc will not send that custom byte. -disable_custom_tls_first_byte = false +# If the disable_custom_tls_first_byte is set to false, frpc will establish a connection with frps using the +# first custom byte when tls is enabled. +# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default. +disable_custom_tls_first_byte = true # Enable golang pprof handlers in admin listener. # Admin port must be set first. diff --git a/pkg/config/client.go b/pkg/config/client.go index 080f9a187be..b60e480158b 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -127,6 +127,7 @@ type ClientCommonConf struct { // TLSEnable specifies whether or not TLS should be used when communicating // with the server. If "tls_cert_file" and "tls_key_file" are valid, // client will load the supplied tls configuration. + // Since v0.50.0, the default value has been changed to true, and tls is enabled by default. TLSEnable bool `ini:"tls_enable" json:"tls_enable"` // TLSCertPath specifies the path of the cert file that client will // load. It only works when "tls_enable" is true and "tls_key_file" is valid. @@ -142,8 +143,9 @@ type ClientCommonConf struct { // TLSServerName specifies the custom server name of tls certificate. By // default, server name if same to ServerAddr. TLSServerName string `ini:"tls_server_name" json:"tls_server_name"` - // By default, frpc will connect frps with first custom byte if tls is enabled. - // If DisableCustomTLSFirstByte is true, frpc will not send that custom byte. + // If the disable_custom_tls_first_byte is set to false, frpc will establish a connection with frps using the + // first custom byte when tls is enabled. + // Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default. DisableCustomTLSFirstByte bool `ini:"disable_custom_tls_first_byte" json:"disable_custom_tls_first_byte"` // HeartBeatInterval specifies at what interval heartbeats are sent to the // server, in seconds. It is not recommended to change this value. By @@ -168,32 +170,34 @@ type ClientCommonConf struct { // GetDefaultClientConf returns a client configuration with default values. func GetDefaultClientConf() ClientCommonConf { return ClientCommonConf{ - ClientConfig: auth.GetDefaultClientConf(), - ServerAddr: "0.0.0.0", - ServerPort: 7000, - NatHoleSTUNServer: "stun.easyvoip.com:3478", - DialServerTimeout: 10, - DialServerKeepAlive: 7200, - HTTPProxy: os.Getenv("http_proxy"), - LogFile: "console", - LogWay: "console", - LogLevel: "info", - LogMaxDays: 3, - AdminAddr: "127.0.0.1", - PoolCount: 1, - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - LoginFailExit: true, - Start: make([]string, 0), - Protocol: "tcp", - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - HeartbeatInterval: 30, - HeartbeatTimeout: 90, - Metas: make(map[string]string), - UDPPacketSize: 1500, - IncludeConfigFiles: make([]string, 0), + ClientConfig: auth.GetDefaultClientConf(), + ServerAddr: "0.0.0.0", + ServerPort: 7000, + NatHoleSTUNServer: "stun.easyvoip.com:3478", + DialServerTimeout: 10, + DialServerKeepAlive: 7200, + HTTPProxy: os.Getenv("http_proxy"), + LogFile: "console", + LogWay: "console", + LogLevel: "info", + LogMaxDays: 3, + AdminAddr: "127.0.0.1", + PoolCount: 1, + TCPMux: true, + TCPMuxKeepaliveInterval: 60, + LoginFailExit: true, + Start: make([]string, 0), + Protocol: "tcp", + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, + TLSEnable: true, + DisableCustomTLSFirstByte: true, + HeartbeatInterval: 30, + HeartbeatTimeout: 90, + Metas: make(map[string]string), + UDPPacketSize: 1500, + IncludeConfigFiles: make([]string, 0), } } diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go index dc43fd97df4..187324a11a6 100644 --- a/pkg/config/client_test.go +++ b/pkg/config/client_test.go @@ -258,40 +258,41 @@ func Test_LoadClientCommonConf(t *testing.T) { OidcTokenEndpointURL: "endpoint_url", }, }, - ServerAddr: "0.0.0.9", - ServerPort: 7009, - NatHoleSTUNServer: "stun.easyvoip.com:3478", - DialServerTimeout: 10, - DialServerKeepAlive: 7200, - HTTPProxy: "http://user:passwd@192.168.1.128:8080", - LogFile: "./frpc.log9", - LogWay: "file", - LogLevel: "info9", - LogMaxDays: 39, - DisableLogColor: false, - AdminAddr: "127.0.0.9", - AdminPort: 7409, - AdminUser: "admin9", - AdminPwd: "admin9", - AssetsDir: "./static9", - PoolCount: 59, - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - User: "your_name", - LoginFailExit: true, - Protocol: "tcp", - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - TLSEnable: true, - TLSCertFile: "client.crt", - TLSKeyFile: "client.key", - TLSTrustedCaFile: "ca.crt", - TLSServerName: "example.com", - DNSServer: "8.8.8.9", - Start: []string{"ssh", "dns"}, - HeartbeatInterval: 39, - HeartbeatTimeout: 99, + ServerAddr: "0.0.0.9", + ServerPort: 7009, + NatHoleSTUNServer: "stun.easyvoip.com:3478", + DialServerTimeout: 10, + DialServerKeepAlive: 7200, + HTTPProxy: "http://user:passwd@192.168.1.128:8080", + LogFile: "./frpc.log9", + LogWay: "file", + LogLevel: "info9", + LogMaxDays: 39, + DisableLogColor: false, + AdminAddr: "127.0.0.9", + AdminPort: 7409, + AdminUser: "admin9", + AdminPwd: "admin9", + AssetsDir: "./static9", + PoolCount: 59, + TCPMux: true, + TCPMuxKeepaliveInterval: 60, + User: "your_name", + LoginFailExit: true, + Protocol: "tcp", + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, + TLSEnable: true, + TLSCertFile: "client.crt", + TLSKeyFile: "client.key", + TLSTrustedCaFile: "ca.crt", + TLSServerName: "example.com", + DisableCustomTLSFirstByte: true, + DNSServer: "8.8.8.9", + Start: []string{"ssh", "dns"}, + HeartbeatInterval: 39, + HeartbeatTimeout: 99, Metas: map[string]string{ "var1": "123", "var2": "234", diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index 5dfd6456aec..dd134abe0f7 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -194,7 +194,7 @@ func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport. _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, err.Error())) return } - log.Trace("handle visitor message, sid [%s]", sid) + log.Trace("handle visitor message, sid [%s], server name: %s", sid, m.ProxyName) defer func() { c.mu.Lock() @@ -256,7 +256,7 @@ func (c *Controller) HandleClient(m *msg.NatHoleClient, transporter transport.Me if !ok { return } - log.Trace("handle client message, sid [%s]", session.sid) + log.Trace("handle client message, sid [%s], server name: %s", session.sid, m.ProxyName) session.clientMsg = m session.clientTransporter = transporter select { diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index eda77afed3d..d9deafb7c87 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -409,9 +409,13 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { f.RunProcesses([]string{serverConf}, []string{clientServerConf, clientVisitorConf, clientUser2VisitorConf}) for _, test := range tests { + timeout := time.Second + if t == "xtcp" { + timeout = 4 * time.Second + } framework.NewRequestExpect(f). RequestModify(func(r *request.Request) { - r.Timeout(3 * time.Second) + r.Timeout(timeout) }). Protocol(protocol). PortName(test.bindPortName). diff --git a/test/e2e/basic/client_server.go b/test/e2e/basic/client_server.go index 65ba2baafce..a02e4544a5b 100644 --- a/test/e2e/basic/client_server.go +++ b/test/e2e/basic/client_server.go @@ -101,11 +101,13 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} for _, protocol := range supportProtocols { tmp := protocol - defineClientServerTest("TLS over "+strings.ToUpper(tmp), f, &generalTestConfigures{ + // Since v0.50.0, the default value of tls_enable has been changed to true. + // Therefore, here it needs to be set as false to test the scenario of turning it off. + defineClientServerTest("Disable TLS over "+strings.ToUpper(tmp), f, &generalTestConfigures{ server: fmt.Sprintf(` %s `, renderBindPortConfig(protocol)), - client: fmt.Sprintf(`tls_enable = true + client: fmt.Sprintf(`tls_enable = false protocol = %s `, protocol), }) @@ -113,10 +115,10 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { defineClientServerTest("enable tls_only, client with TLS", f, &generalTestConfigures{ server: "tls_only = true", - client: "tls_enable = true", }) defineClientServerTest("enable tls_only, client without TLS", f, &generalTestConfigures{ server: "tls_only = true", + client: "tls_enable = false", expectError: true, }) }) @@ -155,7 +157,6 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { `, renderBindPortConfig(tmp), caCrtPath), client: fmt.Sprintf(` protocol = %s - tls_enable = true tls_cert_file = %s tls_key_file = %s `, tmp, clientCrtPath, clientKeyPath), @@ -172,7 +173,6 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { `, renderBindPortConfig(tmp), serverCrtPath, serverKeyPath, caCrtPath), client: fmt.Sprintf(` protocol = %s - tls_enable = true tls_cert_file = %s tls_key_file = %s tls_trusted_ca_file = %s @@ -211,7 +211,6 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { tls_trusted_ca_file = %s `, serverCrtPath, serverKeyPath, caCrtPath), client: fmt.Sprintf(` - tls_enable = true tls_server_name = example.com tls_cert_file = %s tls_key_file = %s @@ -228,7 +227,6 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { tls_trusted_ca_file = %s `, serverCrtPath, serverKeyPath, caCrtPath), client: fmt.Sprintf(` - tls_enable = true tls_server_name = invalid.com tls_cert_file = %s tls_key_file = %s @@ -239,7 +237,7 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { }) }) - ginkgo.Describe("TLS with disable_custom_tls_first_byte", func() { + ginkgo.Describe("TLS with disable_custom_tls_first_byte set to false", func() { supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} for _, protocol := range supportProtocols { tmp := protocol @@ -248,9 +246,8 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { %s `, renderBindPortConfig(protocol)), client: fmt.Sprintf(` - tls_enable = true protocol = %s - disable_custom_tls_first_byte = true + disable_custom_tls_first_byte = false `, protocol), }) } @@ -266,9 +263,7 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { %s `, renderBindPortConfig(protocol)), client: fmt.Sprintf(` - tls_enable = true protocol = %s - disable_custom_tls_first_byte = true `, protocol), }) } From b14698970353823810b8a794472bbc21ba596603 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 26 Jun 2023 16:48:14 +0800 Subject: [PATCH 080/444] add release notes for v0.50.0 (#3498) --- Release.md | 19 +++++++++---------- pkg/util/version/version.go | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Release.md b/Release.md index 2b2fbabee15..ab58d8dbcc4 100644 --- a/Release.md +++ b/Release.md @@ -1,19 +1,18 @@ ## Notes -We have thoroughly refactored xtcp in this version to improve its penetration rate and stability. +**For enhanced security, the default values for `tls_enable` and `disable_custom_tls_first_byte` have been set to true.** -In this version, different penetration strategies can be attempted by retrying connections multiple times. Once a hole is successfully punched, the strategy will be recorded in the server cache for future reuse. When new users connect, the successfully penetrated tunnel can be reused instead of punching a new hole. +If you wish to revert to the previous default values, you need to manually set the values of these two parameters to false. -**Due to a significant refactor of xtcp, this version is not compatible with previous versions of xtcp.** +### Features -**To use features related to xtcp, both frpc and frps need to be updated to the latest version.** +* Added support for `allow_users` in stcp, sudp, xtcp. By default, only the same user is allowed to access. Use `*` to allow access from any user. The visitor configuration now supports `server_user` to connect to proxies of other users. +* Added fallback support to a specified alternative visitor when xtcp connection fails. -### New +### Improvements -* The frpc has added the `nathole discover` command for testing the NAT type of the current network. -* `XTCP` has been refactored, resulting in a significant improvement in the success rate of penetration. -* When verifying passwords, use `subtle.ConstantTimeCompare` and introduce a certain delay when the password is incorrect. +* Increased the default value of `MaxStreamWindowSize` for yamux to 6MB, improving traffic forwarding rate in high-latency scenarios. -### Fix +### Fixes -* Fix the problem of lagging when opening multiple table entries in the frps dashboard. +* Fixed an issue where having proxies with the same name would cause previously working proxies to become ineffective in `xtcp`. diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 1623bd88aa0..bc7ea9f0ec6 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.49.0" +var version = "0.50.0" func Full() string { return version From 801e8c6742b34e14a2dbf653e8fa867faac5e1e8 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 29 Jun 2023 11:20:45 +0800 Subject: [PATCH 081/444] support wss between frpc and frps (#3503) --- Release.md | 15 ++------- client/service.go | 29 +++++++++++----- cmd/frpc/sub/root.go | 7 ++-- conf/frpc_full.ini | 2 +- go.mod | 5 ++- go.sum | 8 ++--- pkg/config/client.go | 5 +-- pkg/util/net/dial.go | 10 ++++-- test/e2e/basic/basic.go | 18 +++++++--- test/e2e/basic/client_server.go | 59 ++++++++++++++++++++++++++++++--- 10 files changed, 116 insertions(+), 42 deletions(-) diff --git a/Release.md b/Release.md index ab58d8dbcc4..5d9623f008e 100644 --- a/Release.md +++ b/Release.md @@ -1,18 +1,7 @@ -## Notes - -**For enhanced security, the default values for `tls_enable` and `disable_custom_tls_first_byte` have been set to true.** - -If you wish to revert to the previous default values, you need to manually set the values of these two parameters to false. - ### Features -* Added support for `allow_users` in stcp, sudp, xtcp. By default, only the same user is allowed to access. Use `*` to allow access from any user. The visitor configuration now supports `server_user` to connect to proxies of other users. -* Added fallback support to a specified alternative visitor when xtcp connection fails. - -### Improvements - -* Increased the default value of `MaxStreamWindowSize` for yamux to 6MB, improving traffic forwarding rate in high-latency scenarios. +* frpc supports connecting to frps via the wss protocol by enabling the configuration `protocol = wss`. ### Fixes -* Fixed an issue where having proxies with the same name would cause previously working proxies to become ineffective in `xtcp`. +* Fix an issue caused by a bug in yamux that prevents wss from working properly in certain plugins. diff --git a/client/service.go b/client/service.go index df85c05f4b1..2f7782d5e32 100644 --- a/client/service.go +++ b/client/service.go @@ -135,7 +135,7 @@ func (svr *Service) Run() error { if svr.cfg.LoginFailExit { return err } - util.RandomSleep(10*time.Second, 0.9, 1.1) + util.RandomSleep(5*time.Second, 0.9, 1.1) } else { // login success ctl := NewControl(svr.ctx, svr.runID, conn, cm, svr.cfg, svr.pxyCfgs, svr.visitorCfgs, svr.authSetter) @@ -427,7 +427,11 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { xl := xlog.FromContextSafe(cm.ctx) var tlsConfig *tls.Config var err error - if cm.cfg.TLSEnable { + tlsEnable := cm.cfg.TLSEnable + if cm.cfg.Protocol == "wss" { + tlsEnable = true + } + if tlsEnable { sn := cm.cfg.TLSServerName if sn == "" { sn = cm.cfg.ServerAddr @@ -451,10 +455,23 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { } dialOptions := []libdial.DialOption{} protocol := cm.cfg.Protocol - if protocol == "websocket" { + switch protocol { + case "websocket": + protocol = "tcp" + dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: utilnet.DialHookWebsocket(protocol, "")})) + dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{ + Hook: utilnet.DialHookCustomTLSHeadByte(tlsConfig != nil, cm.cfg.DisableCustomTLSFirstByte), + })) + dialOptions = append(dialOptions, libdial.WithTLSConfig(tlsConfig)) + case "wss": protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: utilnet.DialHookWebsocket()})) + dialOptions = append(dialOptions, libdial.WithTLSConfigAndPriority(100, tlsConfig)) + // Make sure that if it is wss, the websocket hook is executed after the tls hook. + dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: utilnet.DialHookWebsocket(protocol, tlsConfig.ServerName), Priority: 110})) + default: + dialOptions = append(dialOptions, libdial.WithTLSConfig(tlsConfig)) } + if cm.cfg.ConnectServerLocalIP != "" { dialOptions = append(dialOptions, libdial.WithLocalAddr(cm.cfg.ConnectServerLocalIP)) } @@ -464,10 +481,6 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { libdial.WithKeepAlive(time.Duration(cm.cfg.DialServerKeepAlive)*time.Second), libdial.WithProxy(proxyType, addr), libdial.WithProxyAuth(auth), - libdial.WithTLSConfig(tlsConfig), - libdial.WithAfterHook(libdial.AfterHook{ - Hook: utilnet.DialHookCustomTLSHeadByte(tlsConfig != nil, cm.cfg.DisableCustomTLSFirstByte), - }), ) conn, err := libdial.DialContext( cm.ctx, diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 515a1936586..82c61720bba 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -76,7 +76,8 @@ var ( bindAddr string bindPort int - tlsEnable bool + tlsEnable bool + tlsServerName string ) func init() { @@ -88,13 +89,14 @@ func init() { func RegisterCommonFlags(cmd *cobra.Command) { cmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address") cmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user") - cmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket") + cmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp, kcp, quic, websocket, wss") cmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token") cmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level") cmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path") cmd.PersistentFlags().IntVarP(&logMaxDays, "log_max_days", "", 3, "log file reversed days") cmd.PersistentFlags().BoolVarP(&disableLogColor, "disable_log_color", "", false, "disable log color in console") cmd.PersistentFlags().BoolVarP(&tlsEnable, "tls_enable", "", true, "enable frpc tls") + cmd.PersistentFlags().StringVarP(&tlsServerName, "tls_server_name", "", "", "specify the custom server name of tls certificate") cmd.PersistentFlags().StringVarP(&dnsServer, "dns_server", "", "", "specify dns server instead of using system default one") } @@ -186,6 +188,7 @@ func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) { cfg.ClientConfig = auth.GetDefaultClientConf() cfg.Token = token cfg.TLSEnable = tlsEnable + cfg.TLSServerName = tlsServerName cfg.Complete() if err = cfg.Validate(); err != nil { diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 4982f4fbf17..f8eca6b774c 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -95,7 +95,7 @@ user = your_name login_fail_exit = true # communication protocol used to connect to server -# supports tcp, kcp, quic and websocket now, default is tcp +# supports tcp, kcp, quic, websocket and wss now, default is tcp protocol = tcp # set client binding ip when connect server, default is empty. diff --git a/go.mod b/go.mod index 86801843a12..b42d8801d2e 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.4.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.1.1-0.20230320133937-a7edcc8c793d + github.com/fatedier/golib v0.1.1-0.20230628070619-a1a0c648236a github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible github.com/go-playground/validator/v10 v10.11.0 github.com/google/uuid v1.3.0 @@ -75,3 +75,6 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect ) + +// TODO(fatedier): Temporary use the modified version, update to the official version after merging into the official repository. +replace github.com/hashicorp/yamux => github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d diff --git a/go.sum b/go.sum index 7950ad621fa..c259697ed5c 100644 --- a/go.sum +++ b/go.sum @@ -121,10 +121,12 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.1.1-0.20230320133937-a7edcc8c793d h1:/m9Atycn9uKRwwOkxv4c+zaugxRgkdSG/Eg3IJWOpNs= -github.com/fatedier/golib v0.1.1-0.20230320133937-a7edcc8c793d/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= +github.com/fatedier/golib v0.1.1-0.20230628070619-a1a0c648236a h1:HiRTFdy3ary86Vi2nsoINy2/YgjDPQ+21j3ikwJSD2E= +github.com/fatedier/golib v0.1.1-0.20230628070619-a1a0c648236a/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= +github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= +github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -270,8 +272,6 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= -github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= diff --git a/pkg/config/client.go b/pkg/config/client.go index b60e480158b..029470dc1de 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -20,6 +20,7 @@ import ( "path/filepath" "strings" + "github.com/samber/lo" "gopkg.in/ini.v1" "github.com/fatedier/frp/pkg/auth" @@ -117,7 +118,7 @@ type ClientCommonConf struct { Start []string `ini:"start" json:"start"` // Start map[string]struct{} `json:"start"` // Protocol specifies the protocol to use when interacting with the server. - // Valid values are "tcp", "kcp", "quic" and "websocket". By default, this value + // Valid values are "tcp", "kcp", "quic", "websocket" and "wss". By default, this value // is "tcp". Protocol string `ini:"protocol" json:"protocol"` // QUIC protocol options @@ -230,7 +231,7 @@ func (cfg *ClientCommonConf) Validate() error { } } - if cfg.Protocol != "tcp" && cfg.Protocol != "kcp" && cfg.Protocol != "websocket" && cfg.Protocol != "quic" { + if !lo.Contains([]string{"tcp", "kcp", "quic", "websocket", "wss"}, cfg.Protocol) { return fmt.Errorf("invalid protocol") } diff --git a/pkg/util/net/dial.go b/pkg/util/net/dial.go index 251ebbff7ae..bc670643a0b 100644 --- a/pkg/util/net/dial.go +++ b/pkg/util/net/dial.go @@ -21,9 +21,15 @@ func DialHookCustomTLSHeadByte(enableTLS bool, disableCustomTLSHeadByte bool) li } } -func DialHookWebsocket() libdial.AfterHookFunc { +func DialHookWebsocket(protocol string, host string) libdial.AfterHookFunc { return func(ctx context.Context, c net.Conn, addr string) (context.Context, net.Conn, error) { - addr = "ws://" + addr + FrpWebsocketPath + if protocol != "wss" { + protocol = "ws" + } + if host == "" { + host = addr + } + addr = protocol + "://" + host + FrpWebsocketPath uri, err := url.Parse(addr) if err != nil { return nil, nil, err diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index d9deafb7c87..d032a0d9a4d 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -331,24 +331,29 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { proxyExtraConfig string visitorExtraConfig string expectError bool - user2 bool + deployUser2Client bool + // skipXTCP is used to skip xtcp test case + skipXTCP bool }{ { proxyName: "normal", bindPortName: port.GenName("Normal"), visitorSK: correctSK, + skipXTCP: true, }, { proxyName: "with-encryption", bindPortName: port.GenName("WithEncryption"), visitorSK: correctSK, commonExtraConfig: "use_encryption = true", + skipXTCP: true, }, { proxyName: "with-compression", bindPortName: port.GenName("WithCompression"), visitorSK: correctSK, commonExtraConfig: "use_compression = true", + skipXTCP: true, }, { proxyName: "with-encryption-and-compression", @@ -371,7 +376,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { visitorSK: correctSK, proxyExtraConfig: "allow_users = another, user2", visitorExtraConfig: "server_user = user1", - user2: true, + deployUser2Client: true, }, { proxyName: "not-allowed-user", @@ -387,7 +392,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { visitorSK: correctSK, proxyExtraConfig: "allow_users = *", visitorExtraConfig: "server_user = user1", - user2: true, + deployUser2Client: true, }, } @@ -399,7 +404,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { config := getProxyVisitorConf( test.proxyName, test.bindPortName, test.visitorSK, test.commonExtraConfig+"\n"+test.visitorExtraConfig, ) + "\n" - if test.user2 { + if test.deployUser2Client { clientUser2VisitorConf += config } else { clientVisitorConf += config @@ -411,7 +416,10 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { for _, test := range tests { timeout := time.Second if t == "xtcp" { - timeout = 4 * time.Second + if test.skipXTCP { + continue + } + timeout = 10 * time.Second } framework.NewRequestExpect(f). RequestModify(func(r *request.Request) { diff --git a/test/e2e/basic/client_server.go b/test/e2e/basic/client_server.go index a02e4544a5b..e7730f459ce 100644 --- a/test/e2e/basic/client_server.go +++ b/test/e2e/basic/client_server.go @@ -3,6 +3,7 @@ package basic import ( "fmt" "strings" + "time" "github.com/onsi/ginkgo/v2" @@ -13,9 +14,13 @@ import ( ) type generalTestConfigures struct { - server string - client string - expectError bool + server string + client string + clientPrefix string + client2 string + client2Prefix string + testDelay time.Duration + expectError bool } func renderBindPortConfig(protocol string) string { @@ -30,6 +35,9 @@ func renderBindPortConfig(protocol string) string { func runClientServerTest(f *framework.Framework, configures *generalTestConfigures) { serverConf := consts.DefaultServerConfig clientConf := consts.DefaultClientConfig + if configures.clientPrefix != "" { + clientConf = configures.clientPrefix + } serverConf += fmt.Sprintf(` %s @@ -54,7 +62,23 @@ func runClientServerTest(f *framework.Framework, configures *generalTestConfigur framework.UDPEchoServerPort, udpPortName, ) - f.RunProcesses([]string{serverConf}, []string{clientConf}) + clientConfs := []string{clientConf} + if configures.client2 != "" { + client2Conf := consts.DefaultClientConfig + if configures.client2Prefix != "" { + client2Conf = configures.client2Prefix + } + client2Conf += fmt.Sprintf(` + %s + `, configures.client2) + clientConfs = append(clientConfs, client2Conf) + } + + f.RunProcesses([]string{serverConf}, clientConfs) + + if configures.testDelay > 0 { + time.Sleep(configures.testDelay) + } framework.NewRequestExpect(f).PortName(tcpPortName).ExpectError(configures.expectError).Explain("tcp proxy").Ensure() framework.NewRequestExpect(f).Protocol("udp"). @@ -84,6 +108,33 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { } }) + // wss is special, it needs to be tested separately. + // frps only supports ws, so there should be a proxy to terminate TLS before frps. + ginkgo.Describe("Protocol wss", func() { + wssPort := f.AllocPort() + configures := &generalTestConfigures{ + clientPrefix: fmt.Sprintf(` + [common] + server_addr = 127.0.0.1 + server_port = %d + protocol = wss + log_level = trace + login_fail_exit = false + `, wssPort), + // Due to the fact that frps cannot directly accept wss connections, we use the https2http plugin of another frpc to terminate TLS. + client2: fmt.Sprintf(` + [wss2ws] + type = tcp + remote_port = %d + plugin = https2http + plugin_local_addr = 127.0.0.1:{{ .%s }} + `, wssPort, consts.PortServerName), + testDelay: 10 * time.Second, + } + + defineClientServerTest("wss", f, configures) + }) + ginkgo.Describe("Authentication", func() { defineClientServerTest("Token Correct", f, &generalTestConfigures{ server: "token = 123456", From 4c4d5f0d0daa2e88be1d90945d9fa9ad52ed5911 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 29 Jun 2023 18:04:20 +0800 Subject: [PATCH 082/444] service.Run supports passing in context (#3504) --- .github/pull_request_template.md | 4 ---- client/service.go | 21 +++++++++++++++------ cmd/frpc/sub/root.go | 3 ++- cmd/frps/root.go | 3 ++- server/service.go | 26 ++++++++++++++++++++------ 5 files changed, 39 insertions(+), 18 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 13b47c6950b..d24eaf818de 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,7 +4,3 @@ copilot:summary ### WHY - -### Walkthrough - -copilot:walkthrough diff --git a/client/service.go b/client/service.go index 2f7782d5e32..b5366b1e319 100644 --- a/client/service.go +++ b/client/service.go @@ -86,16 +86,14 @@ func NewService( visitorCfgs map[string]config.VisitorConf, cfgFile string, ) (svr *Service, err error) { - ctx, cancel := context.WithCancel(context.Background()) svr = &Service{ authSetter: auth.NewAuthSetter(cfg.ClientConfig), cfg: cfg, cfgFile: cfgFile, pxyCfgs: pxyCfgs, visitorCfgs: visitorCfgs, + ctx: context.Background(), exit: 0, - ctx: xlog.NewContext(ctx, xlog.New()), - cancel: cancel, } return } @@ -106,7 +104,11 @@ func (svr *Service) GetController() *Control { return svr.ctl } -func (svr *Service) Run() error { +func (svr *Service) Run(ctx context.Context) error { + ctx, cancel := context.WithCancel(ctx) + svr.ctx = xlog.NewContext(ctx, xlog.New()) + svr.cancel = cancel + xl := xlog.FromContextSafe(svr.ctx) // set custom DNSServer @@ -161,6 +163,10 @@ func (svr *Service) Run() error { log.Info("admin server listen on %s:%d", svr.cfg.AdminAddr, svr.cfg.AdminPort) } <-svr.ctx.Done() + // service context may not be canceled by svr.Close(), we should call it here to release resources + if atomic.LoadUint32(&svr.exit) == 0 { + svr.Close() + } return nil } @@ -182,7 +188,7 @@ func (svr *Service) keepControllerWorking() { return } - // the first three retry with no delay + // the first three attempts with a low delay if reconnectCounts > 3 { util.RandomSleep(reconnectDelay, 0.9, 1.1) xl.Info("wait %v to reconnect", reconnectDelay) @@ -322,10 +328,13 @@ func (svr *Service) GracefulClose(d time.Duration) { svr.ctlMu.RLock() if svr.ctl != nil { svr.ctl.GracefulClose(d) + svr.ctl = nil } svr.ctlMu.RUnlock() - svr.cancel() + if svr.cancel != nil { + svr.cancel() + } } type ConnectionManager struct { diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 82c61720bba..1af6a29f2be 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -15,6 +15,7 @@ package sub import ( + "context" "fmt" "io/fs" "net" @@ -233,7 +234,7 @@ func startService( go handleSignal(svr, closedDoneCh) } - err = svr.Run() + err = svr.Run(context.Background()) if err == nil && shouldGracefulClose { <-closedDoneCh } diff --git a/cmd/frps/root.go b/cmd/frps/root.go index 1ba1352f3a4..e1859376a9a 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -15,6 +15,7 @@ package main import ( + "context" "fmt" "os" @@ -210,6 +211,6 @@ func runServer(cfg config.ServerCommonConf) (err error) { return err } log.Info("frps started successfully") - svr.Run() + svr.Run(context.Background()) return } diff --git a/server/service.go b/server/service.go index 3c4f5a81e5b..7fbcb364be4 100644 --- a/server/service.go +++ b/server/service.go @@ -115,7 +115,6 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { return } - ctx, cancel := context.WithCancel(context.Background()) svr = &Service{ ctlManager: NewControlManager(), pxyManager: proxy.NewManager(), @@ -129,8 +128,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { authVerifier: auth.NewAuthVerifier(cfg.ServerConfig), tlsConfig: tlsConfig, cfg: cfg, - ctx: ctx, - cancel: cancel, + ctx: context.Background(), } // Create tcpmux httpconnect multiplexer. @@ -329,7 +327,11 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { return } -func (svr *Service) Run() { +func (svr *Service) Run(ctx context.Context) { + ctx, cancel := context.WithCancel(ctx) + svr.ctx = ctx + svr.cancel = cancel + if svr.kcpListener != nil { go svr.HandleListener(svr.kcpListener) } @@ -343,27 +345,39 @@ func (svr *Service) Run() { go svr.rc.NatHoleController.CleanWorker(svr.ctx) } svr.HandleListener(svr.listener) + + <-svr.ctx.Done() + // service context may not be canceled by svr.Close(), we should call it here to release resources + if svr.listener != nil { + svr.Close() + } } func (svr *Service) Close() error { if svr.kcpListener != nil { svr.kcpListener.Close() + svr.kcpListener = nil } if svr.quicListener != nil { svr.quicListener.Close() + svr.quicListener = nil } if svr.websocketListener != nil { svr.websocketListener.Close() + svr.websocketListener = nil } if svr.tlsListener != nil { svr.tlsListener.Close() + svr.tlsConfig = nil } if svr.listener != nil { svr.listener.Close() + svr.listener = nil } - svr.cancel() - svr.ctlManager.Close() + if svr.cancel != nil { + svr.cancel() + } return nil } From fc4e787fe2683ba16a2847724e461de798587369 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 30 Jun 2023 17:35:37 +0800 Subject: [PATCH 083/444] frpc: support stop command (#3511) --- Release.md | 5 ++ client/admin.go | 1 + client/admin_api.go | 25 +++++++-- cmd/frpc/sub/root.go | 11 ++-- cmd/frpc/sub/stop.go | 84 +++++++++++++++++++++++++++++++ server/dashboard_api.go | 8 +-- test/e2e/basic/client.go | 28 +++++++++++ test/e2e/pkg/sdk/client/client.go | 9 ++++ 8 files changed, 155 insertions(+), 16 deletions(-) create mode 100644 cmd/frpc/sub/stop.go diff --git a/Release.md b/Release.md index 5d9623f008e..49667df129e 100644 --- a/Release.md +++ b/Release.md @@ -1,6 +1,11 @@ ### Features * frpc supports connecting to frps via the wss protocol by enabling the configuration `protocol = wss`. +* frpc supports stopping the service through the stop command. + +### Improvements + +* service.Run supports passing in context. ### Fixes diff --git a/client/admin.go b/client/admin.go index 37959e7e466..29e86a6e121 100644 --- a/client/admin.go +++ b/client/admin.go @@ -52,6 +52,7 @@ func (svr *Service) RunAdminServer(address string) (err error) { // api, see admin_api.go subRouter.HandleFunc("/api/reload", svr.apiReload).Methods("GET") + subRouter.HandleFunc("/api/stop", svr.apiStop).Methods("POST") subRouter.HandleFunc("/api/status", svr.apiStatus).Methods("GET") subRouter.HandleFunc("/api/config", svr.apiGetConfig).Methods("GET") subRouter.HandleFunc("/api/config", svr.apiPutConfig).Methods("PUT") diff --git a/client/admin_api.go b/client/admin_api.go index 5d163de705e..cba2d9193d2 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -24,6 +24,7 @@ import ( "sort" "strconv" "strings" + "time" "github.com/samber/lo" @@ -42,7 +43,7 @@ func (svr *Service) healthz(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) } -// GET api/reload +// GET /api/reload func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} @@ -72,6 +73,22 @@ func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { log.Info("success reload conf") } +// POST /api/stop +func (svr *Service) apiStop(w http.ResponseWriter, r *http.Request) { + res := GeneralResponse{Code: 200} + + log.Info("api request [/api/stop]") + defer func() { + log.Info("api response [/api/stop], code [%d]", res.Code) + w.WriteHeader(res.Code) + if len(res.Msg) > 0 { + _, _ = w.Write([]byte(res.Msg)) + } + }() + + go svr.GracefulClose(100 * time.Millisecond) +} + type StatusResp map[string][]ProxyStatusResp type ProxyStatusResp struct { @@ -106,7 +123,7 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta return psr } -// GET api/status +// GET /api/status func (svr *Service) apiStatus(w http.ResponseWriter, r *http.Request) { var ( buf []byte @@ -135,7 +152,7 @@ func (svr *Service) apiStatus(w http.ResponseWriter, r *http.Request) { } } -// GET api/config +// GET /api/config func (svr *Service) apiGetConfig(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} @@ -175,7 +192,7 @@ func (svr *Service) apiGetConfig(w http.ResponseWriter, r *http.Request) { res.Msg = strings.Join(newRows, "\n") } -// PUT api/config +// PUT /api/config func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 1af6a29f2be..783514b99d0 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -153,12 +153,11 @@ func Execute() { } } -func handleSignal(svr *client.Service, doneCh chan struct{}) { +func handleTermSignal(svr *client.Service) { ch := make(chan os.Signal, 1) signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM) <-ch svr.GracefulClose(500 * time.Millisecond) - close(doneCh) } func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) { @@ -227,16 +226,12 @@ func startService( return } - closedDoneCh := make(chan struct{}) shouldGracefulClose := cfg.Protocol == "kcp" || cfg.Protocol == "quic" // Capture the exit signal if we use kcp or quic. if shouldGracefulClose { - go handleSignal(svr, closedDoneCh) + go handleTermSignal(svr) } - err = svr.Run(context.Background()) - if err == nil && shouldGracefulClose { - <-closedDoneCh - } + _ = svr.Run(context.Background()) return } diff --git a/cmd/frpc/sub/stop.go b/cmd/frpc/sub/stop.go new file mode 100644 index 00000000000..6c8f5f0aea3 --- /dev/null +++ b/cmd/frpc/sub/stop.go @@ -0,0 +1,84 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package sub + +import ( + "encoding/base64" + "fmt" + "io" + "net/http" + "os" + "strings" + + "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config" +) + +func init() { + rootCmd.AddCommand(stopCmd) +} + +var stopCmd = &cobra.Command{ + Use: "stop", + Short: "Stop the running frpc", + RunE: func(cmd *cobra.Command, args []string) error { + cfg, _, _, err := config.ParseClientConfig(cfgFile) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + + err = stopClient(cfg) + if err != nil { + fmt.Printf("frpc stop error: %v\n", err) + os.Exit(1) + } + fmt.Printf("stop success\n") + return nil + }, +} + +func stopClient(clientCfg config.ClientCommonConf) error { + if clientCfg.AdminPort == 0 { + return fmt.Errorf("admin_port shoud be set if you want to use stop feature") + } + + req, err := http.NewRequest("POST", "http://"+ + clientCfg.AdminAddr+":"+fmt.Sprintf("%d", clientCfg.AdminPort)+"/api/stop", nil) + if err != nil { + return err + } + + authStr := "Basic " + base64.StdEncoding.EncodeToString([]byte(clientCfg.AdminUser+":"+ + clientCfg.AdminPwd)) + + req.Header.Add("Authorization", authStr) + resp, err := http.DefaultClient.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + + if resp.StatusCode == 200 { + return nil + } + + body, err := io.ReadAll(resp.Body) + if err != nil { + return err + } + return fmt.Errorf("code [%d], %s", resp.StatusCode, strings.TrimSpace(string(body))) +} diff --git a/server/dashboard_api.go b/server/dashboard_api.go index aaf2b321069..ee758429e56 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -59,7 +59,7 @@ func (svr *Service) Healthz(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) } -// api/serverinfo +// /api/serverinfo func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} defer func() { @@ -176,7 +176,7 @@ type GetProxyInfoResp struct { Proxies []*ProxyStatsInfo `json:"proxies"` } -// api/proxy/:type +// /api/proxy/:type func (svr *Service) APIProxyByType(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} params := mux.Vars(r) @@ -244,7 +244,7 @@ type GetProxyStatsResp struct { Status string `json:"status"` } -// api/proxy/:type/:name +// /api/proxy/:type/:name func (svr *Service) APIProxyByTypeAndName(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} params := mux.Vars(r) @@ -307,7 +307,7 @@ func (svr *Service) getProxyStatsByTypeAndName(proxyType string, proxyName strin return } -// api/traffic/:name +// /api/traffic/:name type GetProxyTrafficResp struct { Name string `json:"name"` TrafficIn []int64 `json:"traffic_in"` diff --git a/test/e2e/basic/client.go b/test/e2e/basic/client.go index 95561a348b8..fb9b16b573a 100644 --- a/test/e2e/basic/client.go +++ b/test/e2e/basic/client.go @@ -101,4 +101,32 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { }).Port(dashboardPort). Ensure(framework.ExpectResponseCode(401)) }) + + ginkgo.It("stop", func() { + serverConf := consts.DefaultServerConfig + + adminPort := f.AllocPort() + testPort := f.AllocPort() + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + admin_port = %d + + [test] + type = tcp + local_port = {{ .%s }} + remote_port = %d + `, adminPort, framework.TCPEchoServerPort, testPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(testPort).Ensure() + + client := clientsdk.New("127.0.0.1", adminPort) + err := client.Stop() + framework.ExpectNoError(err) + + time.Sleep(3 * time.Second) + + // frpc stopped so the port is not listened, expect error + framework.NewRequestExpect(f).Port(testPort).ExpectError(true).Ensure() + }) }) diff --git a/test/e2e/pkg/sdk/client/client.go b/test/e2e/pkg/sdk/client/client.go index 4fb580d1159..3d157073e77 100644 --- a/test/e2e/pkg/sdk/client/client.go +++ b/test/e2e/pkg/sdk/client/client.go @@ -62,6 +62,15 @@ func (c *Client) Reload() error { return err } +func (c *Client) Stop() error { + req, err := http.NewRequest("POST", "http://"+c.address+"/api/stop", nil) + if err != nil { + return err + } + _, err = c.do(req) + return err +} + func (c *Client) GetConfig() (string, error) { req, err := http.NewRequest("GET", "http://"+c.address+"/api/config", nil) if err != nil { From 88c7e8bf7c8bc598be2a1ad39adfab3899a88efa Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 2 Jul 2023 00:35:33 +0800 Subject: [PATCH 084/444] update doc (#3512) --- README.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ README_zh.md | 29 ++++++++++++++++------ 2 files changed, 91 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 82fb87d01cf..0ae937496c8 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,11 @@ frp also offers a P2P connect mode. * [Development Status](#development-status) + * [About V2](#about-v2) * [Architecture](#architecture) * [Example Usage](#example-usage) * [Access your computer in a LAN network via SSH](#access-your-computer-in-a-lan-network-via-ssh) + * [Multiple SSH services sharing the same port](#multiple-ssh-services-sharing-the-same-port) * [Accessing Internal Web Services with Custom Domains in LAN](#accessing-internal-web-services-with-custom-domains-in-lan) * [Forward DNS query requests](#forward-dns-query-requests) * [Forward Unix Domain Socket](#forward-unix-domain-socket) @@ -89,6 +91,20 @@ We are currently working on version 2 and attempting to perform some code refact We will transition from version 0 to version 1 at the appropriate time and will only accept bug fixes and improvements, rather than big feature requests. +### About V2 + +The overall situation is currently unfavorable, and there is significant pressure in both personal and professional aspects. + +The complexity and difficulty of the v2 version are much higher than anticipated. I can only work on its development during fragmented time periods, and the constant interruptions disrupt productivity significantly. Given this situation, we will continue to optimize and iterate on the current version until we have more free time to proceed with the major version overhaul. + +The concept behind v2 is based on my years of experience and reflection in the cloud-native domain, particularly in K8s and ServiceMesh. Its core is a modernized four-layer and seven-layer proxy, similar to envoy. This proxy itself is highly scalable, not only capable of implementing the functionality of intranet penetration but also applicable to various other domains. Building upon this highly scalable core, we aim to implement all the capabilities of frp v1 while also addressing the functionalities that were previously unachievable or difficult to implement in an elegant manner. Furthermore, we will maintain efficient development and iteration capabilities. + +In addition, I envision frp itself becoming a highly extensible system and platform, similar to how we can provide a range of extension capabilities based on K8s. In K8s, we can customize development according to enterprise needs, utilizing features such as CRD, controller mode, webhook, CSI, and CNI. In frp v1, we introduced the concept of server plugins, which implemented some basic extensibility. However, it relies on a simple HTTP protocol and requires users to start independent processes and manage them on their own. This approach is far from flexible and convenient, and real-world demands vary greatly. It is unrealistic to expect a non-profit open-source project maintained by a few individuals to meet everyone's needs. + +Finally, we acknowledge that the current design of modules such as configuration management, permission verification, certificate management, and API management is not modern enough. While we may carry out some optimizations in the v1 version, ensuring compatibility remains a challenging issue that requires a considerable amount of effort to address. + +We sincerely appreciate your support for frp. + ## Architecture ![architecture](/doc/pic/architecture.png) @@ -140,6 +156,56 @@ Note that the `local_port` (listened on the client) and `remote_port` (exposed o `ssh -oPort=6000 test@x.x.x.x` +### Multiple SSH services sharing the same port + +This example implements multiple SSH services exposed through the same port using a proxy of type tcpmux. Similarly, as long as the client supports the HTTP Connect proxy connection method, port reuse can be achieved in this way. + +1. Deploy frps on a machine with a public IP and modify the frps.ini file. Here is a simplified configuration: + + ```ini + [common] + bind_port = 7000 + tcpmux_httpconnect_port = 5002 + ``` + +2. Deploy frpc on the internal machine A with the following configuration: + + ```ini + [common] + server_addr = x.x.x.x + server_port = 7000 + + [ssh1] + type = tcpmux + multiplexer = httpconnect + custom_domains = machine-a.example.com + local_ip = 127.0.0.1 + local_port = 22 + ``` + +3. Deploy another frpc on the internal machine B with the following configuration: + + ```ini + [common] + server_addr = x.x.x.x + server_port = 7000 + + [ssh2] + type = tcpmux + multiplexer = httpconnect + custom_domains = machine-b.example.com + local_ip = 127.0.0.1 + local_port = 22 + ``` + +4. To access internal machine A using SSH ProxyCommand, assuming the username is "test": + + `ssh -o 'proxycommand socat - PROXY:x.x.x.x:machine-a.example.com:22,proxyport=5002' test@machine-a` + +5. To access internal machine B, the only difference is the domain name, assuming the username is "test": + + `ssh -o 'proxycommand socat - PROXY:x.x.x.x:machine-b.example.com:22,proxyport=5002' test@machine-b` + ### Accessing Internal Web Services with Custom Domains in LAN Sometimes we need to expose a local web service behind a NAT network to others for testing purposes with our own domain name. @@ -155,6 +221,8 @@ Unfortunately, we cannot resolve a domain name to a local IP. However, we can us vhost_http_port = 8080 ``` + If you want to configure an https proxy, you need to set up the `vhost_https_port`. + 2. Start `frps`: `./frps -c ./frps.ini` @@ -280,6 +348,7 @@ You may substitute `https2https` for the plugin, and point the `plugin_local_add [common] server_addr = x.x.x.x server_port = 7000 + vhost_https_port = 443 [test_https2http] type = https diff --git a/README_zh.md b/README_zh.md index 74d5e97cdb4..7a4124b8284 100644 --- a/README_zh.md +++ b/README_zh.md @@ -5,7 +5,7 @@ [README](README.md) | [中文文档](README_zh.md) -frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 +frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

Gold Sponsors

@@ -20,12 +20,13 @@ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP 通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括: -* 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。 -* 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。 +* 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。 +* 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。 * 代理组间的负载均衡。 * 端口复用,多个服务通过同一个服务端端口暴露。 -* 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。 -* 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。 +* 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。 +* 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。 +* 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。 * 服务端和客户端 UI 页面。 ## 开发状态 @@ -34,10 +35,24 @@ frp 目前已被很多公司广泛用于测试、生产环境。 master 分支用于发布稳定版本,dev 分支用于开发,您可以尝试下载最新的 release 版本进行测试。 -我们正在进行 v2 大版本的开发,将会尝试在各个方面进行重构和升级,且不会与 v1 版本进行兼容,预计会持续一段时间。 +我们正在进行 v2 大版本的开发,将会尝试在各个方面进行重构和升级,且不会与 v1 版本进行兼容,预计会持续较长的一段时间。 现在的 v0 版本将会在合适的时间切换为 v1 版本并且保证兼容性,后续只做 bug 修复和优化,不再进行大的功能性更新。 +### 关于 v2 的一些说明 + +当前整体形势不佳,面临的生活工作压力很大。 + +v2 版本的复杂度和难度比我们预期的要高得多。我只能利用零散的时间进行开发,而且由于上下文经常被打断,效率极低。由于这种情况可能会持续一段时间,我们仍然会在当前版本上进行一些优化和迭代,直到我们有更多空闲时间来推进大版本的重构。 + +v2 的构想是基于我多年在云原生领域,特别是在 K8s 和 ServiceMesh 方面的工作经验和思考。它的核心是一个现代化的四层和七层代理,类似于 envoy。这个代理本身高度可扩展,不仅可以用于实现内网穿透的功能,还可以应用于更多领域。在这个高度可扩展的内核基础上,我们将实现 frp v1 中的所有功能,并且能够以一种更加优雅的方式实现原先架构中无法实现或不易实现的功能。同时,我们将保持高效的开发和迭代能力。 + +除此之外,我希望 frp 本身也成为一个高度可扩展的系统和平台,就像我们可以基于 K8s 提供一系列扩展能力一样。在 K8s 上,我们可以根据企业需求进行定制化开发,例如使用 CRD、controller 模式、webhook、CSI 和 CNI 等。在 frp v1 中,我们引入了服务端插件的概念,实现了一些简单的扩展性。但是,它实际上依赖于简单的 HTTP 协议,并且需要用户自己启动独立的进程和管理。这种方式远远不够灵活和方便,而且现实世界的需求千差万别,我们不能期望一个由少数人维护的非营利性开源项目能够满足所有人的需求。 + +最后,我们意识到像配置管理、权限验证、证书管理和管理 API 等模块的当前设计并不够现代化。尽管我们可能在 v1 版本中进行一些优化,但确保兼容性是一个令人头疼的问题,需要投入大量精力来解决。 + +非常感谢您对 frp 的支持。 + ## 文档 完整文档已经迁移至 [https://gofrp.org](https://gofrp.org/docs)。 @@ -67,7 +82,7 @@ frp 是一个免费且开源的项目,我们欢迎任何人为其开发和进 ### 知识星球 -如果您想学习 frp 相关的知识和技术,或者寻求任何帮助及咨询,都可以通过微信扫描下方的二维码付费加入知识星球的官方社群: +如果您想了解更多 frp 相关技术以及更新详解,或者寻求任何帮助及咨询,都可以通过微信扫描下方的二维码付费加入知识星球的官方社群: ![zsxq](/doc/pic/zsxq.jpg) From b1789afbab25f251752de444d8c06197b460f54c Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 5 Jul 2023 20:35:08 +0800 Subject: [PATCH 085/444] update version (#3516) --- pkg/util/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index bc7ea9f0ec6..1778fd8e4d5 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.50.0" +var version = "0.51.0" func Full() string { return version From 8f105adbcac3b76a97a8e4744cfa31e85d4c51f1 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 6 Jul 2023 19:58:50 +0800 Subject: [PATCH 086/444] update FUNDING.yml (#3520) --- .github/FUNDING.yml | 1 + README_zh.md | 8 ++++++-- Release.md | 11 ----------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index e137534b724..2d8fe2e060d 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,4 @@ # These are supported funding model platforms github: [fatedier] +custom: ["https://afdian.net/a/fatedier"] diff --git a/README_zh.md b/README_zh.md index 7a4124b8284..951a793880b 100644 --- a/README_zh.md +++ b/README_zh.md @@ -70,14 +70,18 @@ frp 是一个免费且开源的项目,我们欢迎任何人为其开发和进 **提醒:和项目相关的问题最好在 [issues](https://github.com/fatedier/frp/issues) 中反馈,这样方便其他有类似问题的人可以快速查找解决方法,并且也避免了我们重复回答一些问题。** -## 捐助 +## 赞助 如果您觉得 frp 对你有帮助,欢迎给予我们一定的捐助来维持项目的长期发展。 -### GitHub Sponsors +### Sponsors + +长期赞助可以帮助我们保持项目的持续发展。 您可以通过 [GitHub Sponsors](https://github.com/sponsors/fatedier) 赞助我们。 +国内用户可以通过 [爱发电](https://afdian.net/a/fatedier) 赞助我们。 + 企业赞助者可以将贵公司的 Logo 以及链接放置在项目 README 文件中。 ### 知识星球 diff --git a/Release.md b/Release.md index 49667df129e..cff4dbc12b7 100644 --- a/Release.md +++ b/Release.md @@ -1,12 +1 @@ ### Features - -* frpc supports connecting to frps via the wss protocol by enabling the configuration `protocol = wss`. -* frpc supports stopping the service through the stop command. - -### Improvements - -* service.Run supports passing in context. - -### Fixes - -* Fix an issue caused by a bug in yamux that prevents wss from working properly in certain plugins. From 90861b6821555c253beb10927c88f5f108a8e11d Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 17 Jul 2023 17:27:43 +0800 Subject: [PATCH 087/444] update golib (#3532) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b42d8801d2e..9572d9523d4 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.4.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.1.1-0.20230628070619-a1a0c648236a + github.com/fatedier/golib v0.1.1-0.20230717092310-8d13bff6d373 github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible github.com/go-playground/validator/v10 v10.11.0 github.com/google/uuid v1.3.0 diff --git a/go.sum b/go.sum index c259697ed5c..c1e754d1747 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.1.1-0.20230628070619-a1a0c648236a h1:HiRTFdy3ary86Vi2nsoINy2/YgjDPQ+21j3ikwJSD2E= -github.com/fatedier/golib v0.1.1-0.20230628070619-a1a0c648236a/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= +github.com/fatedier/golib v0.1.1-0.20230717092310-8d13bff6d373 h1:lprMgD5nOD9k2Af0T/al8nU31YvFkTyCtRapi4z2jbQ= +github.com/fatedier/golib v0.1.1-0.20230717092310-8d13bff6d373/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= From efcc028a3deba745619478da504ac7853bd84606 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 20 Jul 2023 22:32:32 +0800 Subject: [PATCH 088/444] fix a race condition issue (#3536) --- Release.md | 5 ++++- client/proxy/proxy.go | 4 +++- client/proxy/sudp.go | 4 +++- client/proxy/udp.go | 4 +++- client/visitor/stcp.go | 4 +++- client/visitor/xtcp.go | 4 +++- go.mod | 4 ++-- go.sum | 7 ++++--- pkg/util/version/version.go | 2 +- server/proxy/http.go | 4 +++- server/proxy/proxy.go | 4 +++- test/e2e/basic/basic.go | 2 ++ 12 files changed, 34 insertions(+), 14 deletions(-) diff --git a/Release.md b/Release.md index cff4dbc12b7..c5d16402f99 100644 --- a/Release.md +++ b/Release.md @@ -1 +1,4 @@ -### Features +### Fixes + +* Fix the issue of not disabling tcp keepalive when configuring `tcp_keepalive` = -1 in frps. +* Fix a race condition error. diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 82d5d9f2efa..62d02fcfc23 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -143,7 +143,9 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } } if baseConfig.UseCompression { - remote = libio.WithCompression(remote) + var releaseFn func() + remote, releaseFn = libio.WithCompressionFromPool(remote) + defer releaseFn() } // check if we need to send proxy protocol info diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index 9d61e22855e..0981c6568dd 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -97,7 +97,9 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { } } if pxy.cfg.UseCompression { - rwc = libio.WithCompression(rwc) + var releaseFn func() + rwc, releaseFn = libio.WithCompressionFromPool(rwc) + defer releaseFn() } conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) diff --git a/client/proxy/udp.go b/client/proxy/udp.go index adf92766d4b..cc187000f59 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -108,7 +108,9 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { } } if pxy.cfg.UseCompression { - rwc = libio.WithCompression(rwc) + var releaseFn func() + rwc, releaseFn = libio.WithCompressionFromPool(rwc) + defer releaseFn() } conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 2ea27f38f7f..86e09ac0b73 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -126,7 +126,9 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { } if sv.cfg.UseCompression { - remote = libio.WithCompression(remote) + var releaseFn func() + remote, releaseFn = libio.WithCompressionFromPool(remote) + defer releaseFn() } libio.Join(userConn, remote) diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 9f83b3945fd..713ed341ad6 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -200,7 +200,9 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } } if sv.cfg.UseCompression { - muxConnRWCloser = libio.WithCompression(muxConnRWCloser) + var releaseFn func() + muxConnRWCloser, releaseFn = libio.WithCompressionFromPool(muxConnRWCloser) + defer releaseFn() } _, _, errs := libio.Join(userConn, muxConnRWCloser) diff --git a/go.mod b/go.mod index 9572d9523d4..65374ab6bab 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.4.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.1.1-0.20230717092310-8d13bff6d373 + github.com/fatedier/golib v0.1.1-0.20230720124328-204db2e322f8 github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible github.com/go-playground/validator/v10 v10.11.0 github.com/google/uuid v1.3.0 @@ -43,7 +43,7 @@ require ( github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/golang/snappy v0.0.3 // indirect + github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect diff --git a/go.sum b/go.sum index c1e754d1747..68f4520ce09 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.1.1-0.20230717092310-8d13bff6d373 h1:lprMgD5nOD9k2Af0T/al8nU31YvFkTyCtRapi4z2jbQ= -github.com/fatedier/golib v0.1.1-0.20230717092310-8d13bff6d373/go.mod h1:Wdn1pJ0dHB1lah6FPYwt4AO9NEmWI0OzW13dpzC9g4E= +github.com/fatedier/golib v0.1.1-0.20230720124328-204db2e322f8 h1:8JYzwZ26k1zEsjgits6GHsQxm2tl3K3FYgMMLcIKBKU= +github.com/fatedier/golib v0.1.1-0.20230720124328-204db2e322f8/go.mod h1:Lmi9U4VfvdRvonSMh1FgXVy1hCXycVyJk4E9ktokknE= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= @@ -189,8 +189,9 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 1778fd8e4d5..670e07fcec5 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.51.0" +var version = "0.51.1" func Full() string { return version diff --git a/server/proxy/http.go b/server/proxy/http.go index 432dbc101b3..81139167eeb 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -175,7 +175,9 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err } } if pxy.cfg.UseCompression { - rwc = libio.WithCompression(rwc) + var releaseFn func() + rwc, releaseFn = libio.WithCompressionFromPool(rwc) + defer releaseFn() } if pxy.GetLimiter() != nil { diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index aeb2ef050bf..9d6ee993553 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -241,7 +241,9 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { } } if cfg.UseCompression { - local = libio.WithCompression(local) + var releaseFn func() + local, releaseFn = libio.WithCompressionFromPool(local) + defer releaseFn() } if pxy.GetLimiter() != nil { diff --git a/test/e2e/basic/basic.go b/test/e2e/basic/basic.go index d032a0d9a4d..805b46010b2 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/basic/basic.go @@ -298,6 +298,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { case "xtcp": localPortName = framework.TCPEchoServerPort protocol = "tcp" + ginkgo.Skip("stun server is not stable") } correctSK := "abc" @@ -363,6 +364,7 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { use_encryption = true use_compression = true `, + skipXTCP: true, }, { proxyName: "with-error-sk", From 46ff40543a65c096a8ad774e3f2c210d1dd66a85 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 21 Jul 2023 10:30:46 +0800 Subject: [PATCH 089/444] update github actions (#3538) --- .github/workflows/build-and-push-image.yml | 4 +-- .github/workflows/golangci-lint.yml | 4 +-- .github/workflows/goreleaser.yml | 6 ++-- .github/workflows/stale.yml | 2 +- client/admin_api.go | 10 +++---- client/control.go | 2 +- client/proxy/general_tcp.go | 2 +- client/proxy/sudp.go | 2 +- client/proxy/udp.go | 2 +- client/visitor/xtcp.go | 2 +- pkg/config/proxy.go | 35 +++++++--------------- pkg/config/proxy_test.go | 2 +- pkg/config/visitor_test.go | 2 +- pkg/metrics/mem/server.go | 8 ++--- pkg/metrics/prometheus/server.go | 4 +-- pkg/nathole/utils.go | 5 +--- pkg/plugin/client/http2https.go | 7 ++--- pkg/plugin/client/http_proxy.go | 2 +- pkg/plugin/client/https2http.go | 7 ++--- pkg/plugin/client/https2https.go | 7 ++--- pkg/plugin/client/socks5.go | 2 +- pkg/plugin/client/static_file.go | 2 +- pkg/plugin/client/unix_domain_socket.go | 2 +- pkg/plugin/server/http.go | 5 +--- pkg/transport/tls.go | 4 +-- pkg/util/net/udp.go | 8 ++--- pkg/util/tcpmux/httpconnect.go | 2 +- pkg/util/vhost/https.go | 8 ++--- server/control.go | 7 ++--- server/dashboard_api.go | 2 +- server/group/http.go | 2 +- server/metrics/metrics.go | 16 +++++----- test/e2e/framework/mockservers.go | 5 +--- 33 files changed, 72 insertions(+), 108 deletions(-) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index 99a9fa9a066..9607ba1823a 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -61,7 +61,7 @@ jobs: echo "TAG_FRPS_GPR=ghcr.io/fatedier/frps:${{ env.TAG_NAME }}" >> $GITHUB_ENV - name: Build and push frpc - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: ./dockerfiles/Dockerfile-for-frpc @@ -72,7 +72,7 @@ jobs: ${{ env.TAG_FRPC_GPR }} - name: Build and push frps - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: ./dockerfiles/Dockerfile-for-frps diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 0aa1c5dd65f..fb671e0b3ac 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -14,7 +14,7 @@ jobs: name: lint runs-on: ubuntu-latest steps: - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: go-version: '1.20' - uses: actions/checkout@v3 @@ -22,7 +22,7 @@ jobs: uses: golangci/golangci-lint-action@v3 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v1.51 + version: v1.53 # Optional: golangci-lint command line arguments. # args: --issues-exit-code=0 diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 484167aae5b..08bd83164fe 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -13,7 +13,7 @@ jobs: fetch-depth: 0 - name: Set up Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: '1.20' @@ -22,9 +22,9 @@ jobs: ./package.sh - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v3 + uses: goreleaser/goreleaser-action@v4 with: version: latest - args: release --rm-dist --release-notes=./Release.md + args: release --clean --release-notes=./Release.md env: GITHUB_TOKEN: ${{ secrets.GPR_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index c3642d914ac..cceb40daaa5 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -18,7 +18,7 @@ jobs: pull-requests: write # for actions/stale to close stale PRs runs-on: ubuntu-latest steps: - - uses: actions/stale@v6 + - uses: actions/stale@v8 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: 'Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.' diff --git a/client/admin_api.go b/client/admin_api.go index cba2d9193d2..b1d1885cbd3 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -39,12 +39,12 @@ type GeneralResponse struct { } // /healthz -func (svr *Service) healthz(w http.ResponseWriter, r *http.Request) { +func (svr *Service) healthz(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(200) } // GET /api/reload -func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { +func (svr *Service) apiReload(w http.ResponseWriter, _ *http.Request) { res := GeneralResponse{Code: 200} log.Info("api request [/api/reload]") @@ -74,7 +74,7 @@ func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { } // POST /api/stop -func (svr *Service) apiStop(w http.ResponseWriter, r *http.Request) { +func (svr *Service) apiStop(w http.ResponseWriter, _ *http.Request) { res := GeneralResponse{Code: 200} log.Info("api request [/api/stop]") @@ -124,7 +124,7 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta } // GET /api/status -func (svr *Service) apiStatus(w http.ResponseWriter, r *http.Request) { +func (svr *Service) apiStatus(w http.ResponseWriter, _ *http.Request) { var ( buf []byte res StatusResp = make(map[string][]ProxyStatusResp) @@ -153,7 +153,7 @@ func (svr *Service) apiStatus(w http.ResponseWriter, r *http.Request) { } // GET /api/config -func (svr *Service) apiGetConfig(w http.ResponseWriter, r *http.Request) { +func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { res := GeneralResponse{Code: 200} log.Info("Http get request [/api/config]") diff --git a/client/control.go b/client/control.go index 95f84f8cc4b..e344046c439 100644 --- a/client/control.go +++ b/client/control.go @@ -124,7 +124,7 @@ func (ctl *Control) Run() { go ctl.vm.Run() } -func (ctl *Control) HandleReqWorkConn(inMsg *msg.ReqWorkConn) { +func (ctl *Control) HandleReqWorkConn(_ *msg.ReqWorkConn) { xl := ctl.xl workConn, err := ctl.connectServer() if err != nil { diff --git a/client/proxy/general_tcp.go b/client/proxy/general_tcp.go index 7efe476f434..cea9ef5b32c 100644 --- a/client/proxy/general_tcp.go +++ b/client/proxy/general_tcp.go @@ -40,7 +40,7 @@ type GeneralTCPProxy struct { *BaseProxy } -func NewGeneralTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { +func NewGeneralTCPProxy(baseProxy *BaseProxy, _ config.ProxyConf) Proxy { return &GeneralTCPProxy{ BaseProxy: baseProxy, } diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index 0981c6568dd..fbbe87cab2b 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -77,7 +77,7 @@ func (pxy *SUDPProxy) Close() { } } -func (pxy *SUDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { +func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { xl := pxy.xl xl.Info("incoming a new work connection for sudp proxy, %s", conn.RemoteAddr().String()) diff --git a/client/proxy/udp.go b/client/proxy/udp.go index cc187000f59..58f30cb28e0 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -86,7 +86,7 @@ func (pxy *UDPProxy) Close() { } } -func (pxy *UDPProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { +func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { xl := pxy.xl xl.Info("incoming a new work connection for udp proxy, %s", conn.RemoteAddr().String()) // close resources releated with old workConn diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 713ed341ad6..02bc34c4a0f 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -370,7 +370,7 @@ func (ks *KCPTunnelSession) Init(listenConn *net.UDPConn, raddr *net.UDPAddr) er return nil } -func (ks *KCPTunnelSession) OpenConn(ctx context.Context) (net.Conn, error) { +func (ks *KCPTunnelSession) OpenConn(_ context.Context) (net.Conn, error) { ks.mu.RLock() defer ks.mu.RUnlock() session := ks.session diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go index ae1d077cb01..1169fd7527e 100644 --- a/pkg/config/proxy.go +++ b/pkg/config/proxy.go @@ -527,11 +527,8 @@ func (cfg *TCPProxyConf) ValidateForClient() (err error) { return } -func (cfg *TCPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - return nil +func (cfg *TCPProxyConf) ValidateForServer(_ ServerCommonConf) error { + return cfg.BaseProxyConf.validateForServer() } // TCPMux @@ -644,11 +641,8 @@ func (cfg *UDPProxyConf) ValidateForClient() (err error) { return } -func (cfg *UDPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - return nil +func (cfg *UDPProxyConf) ValidateForServer(_ ServerCommonConf) error { + return cfg.BaseProxyConf.validateForServer() } // HTTP @@ -821,11 +815,8 @@ func (cfg *SUDPProxyConf) ValidateForClient() (err error) { return nil } -func (cfg *SUDPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - return nil +func (cfg *SUDPProxyConf) ValidateForServer(_ ServerCommonConf) error { + return cfg.BaseProxyConf.validateForServer() } // STCP @@ -875,11 +866,8 @@ func (cfg *STCPProxyConf) ValidateForClient() (err error) { return } -func (cfg *STCPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - return nil +func (cfg *STCPProxyConf) ValidateForServer(_ ServerCommonConf) error { + return cfg.BaseProxyConf.validateForServer() } // XTCP @@ -928,9 +916,6 @@ func (cfg *XTCPProxyConf) ValidateForClient() (err error) { return } -func (cfg *XTCPProxyConf) ValidateForServer(serverCfg ServerCommonConf) error { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - return nil +func (cfg *XTCPProxyConf) ValidateForServer(_ ServerCommonConf) error { + return cfg.BaseProxyConf.validateForServer() } diff --git a/pkg/config/proxy_test.go b/pkg/config/proxy_test.go index 9ef6f87c21d..99d60811cf5 100644 --- a/pkg/config/proxy_test.go +++ b/pkg/config/proxy_test.go @@ -35,7 +35,7 @@ var ( testProxyPrefix = "test." ) -func Test_Proxy_Interface(t *testing.T) { +func Test_Proxy_Interface(_ *testing.T) { for name := range proxyConfTypeMap { NewConfByType(name) } diff --git a/pkg/config/visitor_test.go b/pkg/config/visitor_test.go index 0f4171db274..46cbef5ab50 100644 --- a/pkg/config/visitor_test.go +++ b/pkg/config/visitor_test.go @@ -25,7 +25,7 @@ import ( const testVisitorPrefix = "test." -func Test_Visitor_Interface(t *testing.T) { +func Test_Visitor_Interface(_ *testing.T) { for name := range visitorConfTypeMap { DefaultVisitorConf(name) } diff --git a/pkg/metrics/mem/server.go b/pkg/metrics/mem/server.go index e8ebd9d42b8..d721090c48b 100644 --- a/pkg/metrics/mem/server.go +++ b/pkg/metrics/mem/server.go @@ -129,7 +129,7 @@ func (m *serverMetrics) CloseProxy(name string, proxyType string) { } } -func (m *serverMetrics) OpenConnection(name string, proxyType string) { +func (m *serverMetrics) OpenConnection(name string, _ string) { m.info.CurConns.Inc(1) m.mu.Lock() @@ -141,7 +141,7 @@ func (m *serverMetrics) OpenConnection(name string, proxyType string) { } } -func (m *serverMetrics) CloseConnection(name string, proxyType string) { +func (m *serverMetrics) CloseConnection(name string, _ string) { m.info.CurConns.Dec(1) m.mu.Lock() @@ -153,7 +153,7 @@ func (m *serverMetrics) CloseConnection(name string, proxyType string) { } } -func (m *serverMetrics) AddTrafficIn(name string, proxyType string, trafficBytes int64) { +func (m *serverMetrics) AddTrafficIn(name string, _ string, trafficBytes int64) { m.info.TotalTrafficIn.Inc(trafficBytes) m.mu.Lock() @@ -166,7 +166,7 @@ func (m *serverMetrics) AddTrafficIn(name string, proxyType string, trafficBytes } } -func (m *serverMetrics) AddTrafficOut(name string, proxyType string, trafficBytes int64) { +func (m *serverMetrics) AddTrafficOut(name string, _ string, trafficBytes int64) { m.info.TotalTrafficOut.Inc(trafficBytes) m.mu.Lock() diff --git a/pkg/metrics/prometheus/server.go b/pkg/metrics/prometheus/server.go index 19eceb72fa7..56dea6e82fe 100644 --- a/pkg/metrics/prometheus/server.go +++ b/pkg/metrics/prometheus/server.go @@ -29,11 +29,11 @@ func (m *serverMetrics) CloseClient() { m.clientCount.Dec() } -func (m *serverMetrics) NewProxy(name string, proxyType string) { +func (m *serverMetrics) NewProxy(_ string, proxyType string) { m.proxyCount.WithLabelValues(proxyType).Inc() } -func (m *serverMetrics) CloseProxy(name string, proxyType string) { +func (m *serverMetrics) CloseProxy(_ string, proxyType string) { m.proxyCount.WithLabelValues(proxyType).Dec() } diff --git a/pkg/nathole/utils.go b/pkg/nathole/utils.go index c889c7eb210..22ba016fa5e 100644 --- a/pkg/nathole/utils.go +++ b/pkg/nathole/utils.go @@ -45,10 +45,7 @@ func DecodeMessageInto(data, key []byte, m msg.Message) error { return err } - if err := msg.ReadMsgInto(bytes.NewReader(buf), m); err != nil { - return err - } - return nil + return msg.ReadMsgInto(bytes.NewReader(buf), m) } type ChangedAddress struct { diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index f84b0a0cb97..beacab00570 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -97,7 +97,7 @@ func NewHTTP2HTTPSPlugin(params map[string]string) (Plugin, error) { return p, nil } -func (p *HTTP2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { +func (p *HTTP2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } @@ -107,8 +107,5 @@ func (p *HTTP2HTTPSPlugin) Name() string { } func (p *HTTP2HTTPSPlugin) Close() error { - if err := p.s.Close(); err != nil { - return err - } - return nil + return p.s.Close() } diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index 51a191be4c6..f9e5dae81d1 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -68,7 +68,7 @@ func (hp *HTTPProxy) Name() string { return PluginHTTPProxy } -func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { +func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) sc, rd := libnet.NewSharedConn(wrapConn) diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 55edf832037..71cc025c646 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -122,7 +122,7 @@ func (p *HTTPS2HTTPPlugin) genTLSConfig() (*tls.Config, error) { return config, nil } -func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { +func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } @@ -132,8 +132,5 @@ func (p *HTTPS2HTTPPlugin) Name() string { } func (p *HTTPS2HTTPPlugin) Close() error { - if err := p.s.Close(); err != nil { - return err - } - return nil + return p.s.Close() } diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index c236c4c8f05..d925ec24ad2 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -127,7 +127,7 @@ func (p *HTTPS2HTTPSPlugin) genTLSConfig() (*tls.Config, error) { return config, nil } -func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { +func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } @@ -137,8 +137,5 @@ func (p *HTTPS2HTTPSPlugin) Name() string { } func (p *HTTPS2HTTPSPlugin) Close() error { - if err := p.s.Close(); err != nil { - return err - } - return nil + return p.s.Close() } diff --git a/pkg/plugin/client/socks5.go b/pkg/plugin/client/socks5.go index 06a88b648f0..805f956b907 100644 --- a/pkg/plugin/client/socks5.go +++ b/pkg/plugin/client/socks5.go @@ -50,7 +50,7 @@ func NewSocks5Plugin(params map[string]string) (p Plugin, err error) { return } -func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { +func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { defer conn.Close() wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = sp.Server.ServeConn(wrapConn) diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index 32a888aec5a..45f731bbf6e 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -76,7 +76,7 @@ func NewStaticFilePlugin(params map[string]string) (Plugin, error) { return sp, nil } -func (sp *StaticFilePlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { +func (sp *StaticFilePlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = sp.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/unix_domain_socket.go b/pkg/plugin/client/unix_domain_socket.go index 416938b3495..03371356033 100644 --- a/pkg/plugin/client/unix_domain_socket.go +++ b/pkg/plugin/client/unix_domain_socket.go @@ -51,7 +51,7 @@ func NewUnixDomainSocketPlugin(params map[string]string) (p Plugin, err error) { return } -func (uds *UnixDomainSocketPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) { +func (uds *UnixDomainSocketPlugin) Handle(conn io.ReadWriteCloser, _ net.Conn, extraBufToLocal []byte) { localConn, err := net.DialUnix("unix", nil, uds.UnixAddr) if err != nil { return diff --git a/pkg/plugin/server/http.go b/pkg/plugin/server/http.go index b120332dcdb..0f561204ce4 100644 --- a/pkg/plugin/server/http.go +++ b/pkg/plugin/server/http.go @@ -120,8 +120,5 @@ func (p *httpPlugin) do(ctx context.Context, r *Request, res *Response) error { if err != nil { return err } - if err = json.Unmarshal(buf, res); err != nil { - return err - } - return nil + return json.Unmarshal(buf, res) } diff --git a/pkg/transport/tls.go b/pkg/transport/tls.go index 13e241b29ad..d92b1a8205c 100644 --- a/pkg/transport/tls.go +++ b/pkg/transport/tls.go @@ -103,9 +103,7 @@ func NewServerTLSConfig(certPath, keyPath, caPath string) (*tls.Config, error) { func NewClientTLSConfig(certPath, keyPath, caPath, serverName string) (*tls.Config, error) { base := &tls.Config{} - if certPath == "" || keyPath == "" { - // client will not generate tls conf by itself - } else { + if certPath != "" && keyPath != "" { cert, err := newCustomTLSKeyPair(certPath, keyPath) if err != nil { return nil, err diff --git a/pkg/util/net/udp.go b/pkg/util/net/udp.go index 599447c3c68..79ebbb14c8b 100644 --- a/pkg/util/net/udp.go +++ b/pkg/util/net/udp.go @@ -140,15 +140,15 @@ func (c *FakeUDPConn) RemoteAddr() net.Addr { return c.remoteAddr } -func (c *FakeUDPConn) SetDeadline(t time.Time) error { +func (c *FakeUDPConn) SetDeadline(_ time.Time) error { return nil } -func (c *FakeUDPConn) SetReadDeadline(t time.Time) error { +func (c *FakeUDPConn) SetReadDeadline(_ time.Time) error { return nil } -func (c *FakeUDPConn) SetWriteDeadline(t time.Time) error { +func (c *FakeUDPConn) SetWriteDeadline(_ time.Time) error { return nil } @@ -263,4 +263,4 @@ func (l *UDPListener) Addr() net.Addr { type ConnectedUDPConn struct{ *net.UDPConn } // WriteTo redirects all writes to the Write syscall, which is 4 times faster. -func (c *ConnectedUDPConn) WriteTo(b []byte, addr net.Addr) (int, error) { return c.Write(b) } +func (c *ConnectedUDPConn) WriteTo(b []byte, _ net.Addr) (int, error) { return c.Write(b) } diff --git a/pkg/util/tcpmux/httpconnect.go b/pkg/util/tcpmux/httpconnect.go index d6c0ce51ec5..650891f40b1 100644 --- a/pkg/util/tcpmux/httpconnect.go +++ b/pkg/util/tcpmux/httpconnect.go @@ -66,7 +66,7 @@ func (muxer *HTTPConnectTCPMuxer) readHTTPConnectRequest(rd io.Reader) (host, ht return } -func (muxer *HTTPConnectTCPMuxer) sendConnectResponse(c net.Conn, reqInfo map[string]string) error { +func (muxer *HTTPConnectTCPMuxer) sendConnectResponse(c net.Conn, _ map[string]string) error { if muxer.passthrough { return nil } diff --git a/pkg/util/vhost/https.go b/pkg/util/vhost/https.go index 991c9294183..e15c1901b43 100644 --- a/pkg/util/vhost/https.go +++ b/pkg/util/vhost/https.go @@ -74,10 +74,10 @@ type readOnlyConn struct { } func (conn readOnlyConn) Read(p []byte) (int, error) { return conn.reader.Read(p) } -func (conn readOnlyConn) Write(p []byte) (int, error) { return 0, io.ErrClosedPipe } +func (conn readOnlyConn) Write(_ []byte) (int, error) { return 0, io.ErrClosedPipe } func (conn readOnlyConn) Close() error { return nil } func (conn readOnlyConn) LocalAddr() net.Addr { return nil } func (conn readOnlyConn) RemoteAddr() net.Addr { return nil } -func (conn readOnlyConn) SetDeadline(t time.Time) error { return nil } -func (conn readOnlyConn) SetReadDeadline(t time.Time) error { return nil } -func (conn readOnlyConn) SetWriteDeadline(t time.Time) error { return nil } +func (conn readOnlyConn) SetDeadline(_ time.Time) error { return nil } +func (conn readOnlyConn) SetReadDeadline(_ time.Time) error { return nil } +func (conn readOnlyConn) SetWriteDeadline(_ time.Time) error { return nil } diff --git a/server/control.go b/server/control.go index 637a76b5ee0..9764b7c1485 100644 --- a/server/control.go +++ b/server/control.go @@ -434,10 +434,9 @@ func (ctl *Control) manager() { defer ctl.managerShutdown.Done() var heartbeatCh <-chan time.Time - if ctl.serverCfg.TCPMux || ctl.serverCfg.HeartbeatTimeout <= 0 { - // Don't need application heartbeat here. - // yamux will do same thing. - } else { + // Don't need application heartbeat if TCPMux is enabled, + // yamux will do same thing. + if !ctl.serverCfg.TCPMux && ctl.serverCfg.HeartbeatTimeout > 0 { heartbeat := time.NewTicker(time.Second) defer heartbeat.Stop() heartbeatCh = heartbeat.C diff --git a/server/dashboard_api.go b/server/dashboard_api.go index ee758429e56..198a111aa61 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -55,7 +55,7 @@ type serverInfoResp struct { } // /healthz -func (svr *Service) Healthz(w http.ResponseWriter, r *http.Request) { +func (svr *Service) Healthz(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(200) } diff --git a/server/group/http.go b/server/group/http.go index 640919251d3..26af595e922 100644 --- a/server/group/http.go +++ b/server/group/http.go @@ -43,7 +43,7 @@ func (ctl *HTTPGroupController) Register( return g.Register(proxyName, group, groupKey, routeConfig) } -func (ctl *HTTPGroupController) UnRegister(proxyName, group string, routeConfig vhost.RouteConfig) { +func (ctl *HTTPGroupController) UnRegister(proxyName, group string, _ vhost.RouteConfig) { indexKey := group ctl.mu.Lock() defer ctl.mu.Unlock() diff --git a/server/metrics/metrics.go b/server/metrics/metrics.go index faf00d1495d..5064a238a3e 100644 --- a/server/metrics/metrics.go +++ b/server/metrics/metrics.go @@ -27,11 +27,11 @@ func Register(m ServerMetrics) { type noopServerMetrics struct{} -func (noopServerMetrics) NewClient() {} -func (noopServerMetrics) CloseClient() {} -func (noopServerMetrics) NewProxy(name string, proxyType string) {} -func (noopServerMetrics) CloseProxy(name string, proxyType string) {} -func (noopServerMetrics) OpenConnection(name string, proxyType string) {} -func (noopServerMetrics) CloseConnection(name string, proxyType string) {} -func (noopServerMetrics) AddTrafficIn(name string, proxyType string, trafficBytes int64) {} -func (noopServerMetrics) AddTrafficOut(name string, proxyType string, trafficBytes int64) {} +func (noopServerMetrics) NewClient() {} +func (noopServerMetrics) CloseClient() {} +func (noopServerMetrics) NewProxy(string, string) {} +func (noopServerMetrics) CloseProxy(string, string) {} +func (noopServerMetrics) OpenConnection(string, string) {} +func (noopServerMetrics) CloseConnection(string, string) {} +func (noopServerMetrics) AddTrafficIn(string, string, int64) {} +func (noopServerMetrics) AddTrafficOut(string, string, int64) {} diff --git a/test/e2e/framework/mockservers.go b/test/e2e/framework/mockservers.go index 32f7ac38b69..2aea36da446 100644 --- a/test/e2e/framework/mockservers.go +++ b/test/e2e/framework/mockservers.go @@ -56,10 +56,7 @@ func (m *MockServers) Run() error { if err := m.udsEchoServer.Run(); err != nil { return err } - if err := m.httpSimpleServer.Run(); err != nil { - return err - } - return nil + return m.httpSimpleServer.Run() } func (m *MockServers) Close() { From 3235addaaa412590433640150d081db362155016 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 21 Jul 2023 14:34:44 +0800 Subject: [PATCH 090/444] update dependencies (#3539) --- Release.md | 5 +- client/service.go | 2 +- client/visitor/xtcp.go | 2 +- go.mod | 81 ++-- go.sum | 885 +++++------------------------------------ server/service.go | 4 +- 6 files changed, 146 insertions(+), 833 deletions(-) diff --git a/Release.md b/Release.md index c5d16402f99..ceaa7b02d58 100644 --- a/Release.md +++ b/Release.md @@ -1,4 +1,3 @@ -### Fixes +### Features -* Fix the issue of not disabling tcp keepalive when configuring `tcp_keepalive` = -1 in frps. -* Fix a race condition error. +* Adds a `completion` command for shell completions. diff --git a/client/service.go b/client/service.go index b5366b1e319..954045a366f 100644 --- a/client/service.go +++ b/client/service.go @@ -378,7 +378,7 @@ func (cm *ConnectionManager) OpenConnection() error { } tlsConfig.NextProtos = []string{"frp"} - conn, err := quic.DialAddrContext( + conn, err := quic.DialAddr( cm.ctx, net.JoinHostPort(cm.cfg.ServerAddr, strconv.Itoa(cm.cfg.ServerPort)), tlsConfig, &quic.Config{ diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 02bc34c4a0f..fe71147c41b 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -413,7 +413,7 @@ func (qs *QUICTunnelSession) Init(listenConn *net.UDPConn, raddr *net.UDPAddr) e return fmt.Errorf("create tls config error: %v", err) } tlsConfig.NextProtos = []string{"frp"} - quicConn, err := quic.Dial(listenConn, raddr, raddr.String(), tlsConfig, + quicConn, err := quic.Dial(context.Background(), listenConn, raddr, tlsConfig, &quic.Config{ MaxIdleTimeout: time.Duration(qs.clientCfg.QUICMaxIdleTimeout) * time.Second, MaxIncomingStreams: int64(qs.clientCfg.QUICMaxIncomingStreams), diff --git a/go.mod b/go.mod index 65374ab6bab..0d301f84be8 100644 --- a/go.mod +++ b/go.mod @@ -4,76 +4,81 @@ go 1.20 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 - github.com/coreos/go-oidc/v3 v3.4.0 + github.com/coreos/go-oidc/v3 v3.6.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb github.com/fatedier/golib v0.1.1-0.20230720124328-204db2e322f8 github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible - github.com/go-playground/validator/v10 v10.11.0 + github.com/go-playground/validator/v10 v10.14.1 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 github.com/hashicorp/yamux v0.1.1 - github.com/onsi/ginkgo/v2 v2.8.3 - github.com/onsi/gomega v1.27.0 - github.com/pion/stun v0.4.0 - github.com/pires/go-proxyproto v0.6.2 - github.com/prometheus/client_golang v1.13.0 - github.com/quic-go/quic-go v0.34.0 - github.com/rodaine/table v1.0.1 + github.com/onsi/ginkgo/v2 v2.11.0 + github.com/onsi/gomega v1.27.8 + github.com/pion/stun v0.6.1 + github.com/pires/go-proxyproto v0.7.0 + github.com/prometheus/client_golang v1.16.0 + github.com/quic-go/quic-go v0.36.2 + github.com/rodaine/table v1.1.0 github.com/samber/lo v1.38.1 - github.com/spf13/cobra v1.1.3 - github.com/stretchr/testify v1.8.1 - golang.org/x/net v0.7.0 - golang.org/x/oauth2 v0.3.0 - golang.org/x/sync v0.1.0 - golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 + github.com/spf13/cobra v1.7.0 + github.com/stretchr/testify v1.8.4 + golang.org/x/net v0.12.0 + golang.org/x/oauth2 v0.10.0 + golang.org/x/sync v0.3.0 + golang.org/x/time v0.3.0 gopkg.in/ini.v1 v1.67.0 - k8s.io/apimachinery v0.26.1 - k8s.io/client-go v0.26.1 + k8s.io/apimachinery v0.27.4 + k8s.io/client-go v0.27.4 ) require ( github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.2.3 // indirect - github.com/go-playground/locales v0.14.0 // indirect - github.com/go-playground/universal-translator v0.18.0 // indirect - github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/go-jose/go-jose/v3 v3.0.0 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/cpuid/v2 v2.0.6 // indirect github.com/klauspost/reedsolomon v1.9.15 // indirect - github.com/leodido/go-urn v1.2.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/pion/transport/v2 v2.0.0 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/leodido/go-urn v1.2.4 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/pion/dtls/v2 v2.2.7 // indirect + github.com/pion/logging v0.2.2 // indirect + github.com/pion/transport/v2 v2.2.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.37.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.10.1 // indirect github.com/quic-go/qtls-go1-19 v0.3.2 // indirect github.com/quic-go/qtls-go1-20 v0.2.2 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/tjfoc/gmsm v1.4.1 // indirect - golang.org/x/crypto v0.4.0 // indirect + golang.org/x/crypto v0.11.0 // indirect golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect - golang.org/x/tools v0.6.0 // indirect + golang.org/x/mod v0.10.0 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect + golang.org/x/tools v0.9.3 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.28.1 // indirect - gopkg.in/square/go-jose.v2 v2.6.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect + k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect ) // TODO(fatedier): Temporary use the modified version, update to the official version after merging into the official repository. diff --git a/go.sum b/go.sum index 68f4520ce09..faf7b922288 100644 --- a/go.sum +++ b/go.sum @@ -1,123 +1,28 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= -cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= -cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= -cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc/v3 v3.4.0 h1:xz7elHb/LDwm/ERpwHd+5nb7wFHL32rsr6bBOgaeu6g= -github.com/coreos/go-oidc/v3 v3.4.0/go.mod h1:eHUXhZtXPQLgEaDrOVTgwbgmz1xGOkJNye6h3zkD2Pw= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/coreos/go-oidc/v3 v3.6.0 h1:AKVxfYw1Gmkn/w96z0DbT/B/xFnzTd3MkZvWLjF4n/o= +github.com/coreos/go-oidc/v3 v3.6.0/go.mod h1:ZpHUsHBucTUj6WOkrP4E20UPynbLZzhTQ1XKCXkxyPc= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= @@ -127,855 +32,259 @@ github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1: github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= -github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= -github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= -github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= -github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw= -github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/go-jose/go-jose/v3 v3.0.0 h1:s6rrhirfEP/CGIoc6p+PZAeogN2SxKav6Wp7+dyMWVo= +github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= +github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= -github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/klauspost/cpuid/v2 v2.0.6 h1:dQ5ueTiftKxp0gyjKSx5+8BtPWkyQbd95m8Gys/RarI= github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/reedsolomon v1.9.15 h1:g2erWKD2M6rgnPf89fCji6jNlhMKMdXcuNHMW1SYCIo= github.com/klauspost/reedsolomon v1.9.15/go.mod h1:eqPAcE7xar5CIzcdfwydOEdcmchAKAP/qs14y4GCBOk= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo/v2 v2.8.3 h1:RpbK1G8nWPNaCVFBWsOGnEQQGgASi6b8fxcWBvDYjxQ= -github.com/onsi/ginkgo/v2 v2.8.3/go.mod h1:6OaUA8BCi0aZfmzYT/q9AacwTzDpNbxILUT+TlBq6MY= -github.com/onsi/gomega v1.27.0 h1:QLidEla4bXUuZVFa4KX6JHCsuGgbi85LC/pCHrt/O08= -github.com/onsi/gomega v1.27.0/go.mod h1:i189pavgK95OSIipFBa74gC2V4qrQuvjuyGEr3GmbXA= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= +github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= +github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= +github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= +github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= -github.com/pion/stun v0.4.0 h1:vgRrbBE2htWHy7l3Zsxckk7rkjnjOsSM7PHZnBwo8rk= -github.com/pion/stun v0.4.0/go.mod h1:QPsh1/SbXASntw3zkkrIk3ZJVKz4saBY2G7S10P3wCw= -github.com/pion/transport/v2 v2.0.0 h1:bsMYyqHCbkvHwj+eNCFBuxtlKndKfyGI2vaQmM3fIE4= -github.com/pion/transport/v2 v2.0.0/go.mod h1:HS2MEBJTwD+1ZI2eSXSvHJx/HnzQqRy2/LXxt6eVMHc= -github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8= -github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= +github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= +github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c= +github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= +github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs= +github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU= -github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U= github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E= github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/quic-go v0.34.0 h1:OvOJ9LFjTySgwOTYUZmNoq0FzVicP8YujpV0kB7m2lU= -github.com/quic-go/quic-go v0.34.0/go.mod h1:+4CVgVppm0FNjpG3UcX8Joi/frKOH7/ciD5yGcwOO1g= -github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ= -github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/quic-go/quic-go v0.36.2 h1:ZX/UNQ4gvpCv2RmwdbA6lrRjF6EBm5yZ7TMoT4NQVrA= +github.com/quic-go/quic-go v0.36.2/go.mod h1:zPetvwDlILVxt15n3hr3Gf/I3mDf7LpLKPhR4Ez0AZQ= +github.com/rodaine/table v1.1.0 h1:/fUlCSdjamMY8VifdQRIu3VWZXYLY7QHFkVorS8NTr4= +github.com/rodaine/table v1.1.0/go.mod h1:Qu3q5wi1jTQD6B6HsP6szie/S4w1QUQ8pq22pz9iL8g= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU= github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b h1:fj5tQ8acgNUr6O8LEplsxDhUIe2573iLkJc+PqnzZTI= github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4= github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= -golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8= -golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= +golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= -google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= -google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= -gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/apimachinery v0.26.1 h1:8EZ/eGJL+hY/MYCNwhmDzVqq2lPl3N3Bo8rvweJwXUQ= -k8s.io/apimachinery v0.26.1/go.mod h1:tnPmbONNJ7ByJNz9+n9kMjNP8ON+1qoAIIC70lztu74= -k8s.io/client-go v0.26.1 h1:87CXzYJnAMGaa/IDDfRdhTzxk/wzGZ+/HUQpqgVSZXU= -k8s.io/client-go v0.26.1/go.mod h1:IWNSglg+rQ3OcvDkhY6+QLeasV4OYHDjdqeWkDQZwGE= -k8s.io/utils v0.0.0-20221107191617-1a15be271d1d h1:0Smp/HP1OH4Rvhe+4B8nWGERtlqAGSftbSbbmm45oFs= -k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= +k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= +k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= +k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY= +k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= diff --git a/server/service.go b/server/service.go index 7fbcb364be4..5c93b667a86 100644 --- a/server/service.go +++ b/server/service.go @@ -70,7 +70,7 @@ type Service struct { kcpListener net.Listener // Accept connections using quic - quicListener quic.Listener + quicListener *quic.Listener // Accept connections using websocket websocketListener net.Listener @@ -499,7 +499,7 @@ func (svr *Service) HandleListener(l net.Listener) { } } -func (svr *Service) HandleQUICListener(l quic.Listener) { +func (svr *Service) HandleQUICListener(l *quic.Listener) { // Listen for incoming connections from client. for { c, err := l.Accept(context.Background()) From 6430afcfa53fec6bb5a6cf85e0e66a4ad4d07902 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 25 Jul 2023 15:12:40 +0800 Subject: [PATCH 091/444] fix a goroutine leak issue caused by Login plugin timeout (#3547) --- Release.md | 4 ++++ server/control.go | 36 +++++++++++++++++++++++++----------- server/service.go | 2 +- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/Release.md b/Release.md index ceaa7b02d58..8b59bafa523 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,7 @@ ### Features * Adds a `completion` command for shell completions. + +### Fixes + +* fix a goroutine leak issue caused by Login plugin timeout. diff --git a/server/control.go b/server/control.go index 9764b7c1485..abf17ab3b6b 100644 --- a/server/control.go +++ b/server/control.go @@ -29,7 +29,6 @@ import ( "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" - "github.com/fatedier/frp/pkg/consts" pkgerr "github.com/fatedier/frp/pkg/errors" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" @@ -55,13 +54,14 @@ func NewControlManager() *ControlManager { } } -func (cm *ControlManager) Add(runID string, ctl *Control) (oldCtl *Control) { +func (cm *ControlManager) Add(runID string, ctl *Control) (old *Control) { cm.mu.Lock() defer cm.mu.Unlock() - oldCtl, ok := cm.ctlsByRunID[runID] + var ok bool + old, ok = cm.ctlsByRunID[runID] if ok { - oldCtl.Replaced(ctl) + old.Replaced(ctl) } cm.ctlsByRunID[runID] = ctl return @@ -141,14 +141,13 @@ type Control struct { // replace old controller instantly. runID string - // control status - status string - readerShutdown *shutdown.Shutdown writerShutdown *shutdown.Shutdown managerShutdown *shutdown.Shutdown allShutdown *shutdown.Shutdown + started bool + mu sync.RWMutex // Server configuration information @@ -187,7 +186,6 @@ func NewControl( portsUsedNum: 0, lastPing: time.Now(), runID: loginMsg.RunID, - status: consts.Working, readerShutdown: shutdown.New(), writerShutdown: shutdown.New(), managerShutdown: shutdown.New(), @@ -208,11 +206,19 @@ func (ctl *Control) Start() { Error: "", } _ = msg.WriteMsg(ctl.conn, loginRespMsg) + ctl.mu.Lock() + ctl.started = true + ctl.mu.Unlock() go ctl.writer() - for i := 0; i < ctl.poolCount; i++ { - ctl.sendCh <- &msg.ReqWorkConn{} - } + go func() { + for i := 0; i < ctl.poolCount; i++ { + // ignore error here, that means that this control is closed + _ = errors.PanicToError(func() { + ctl.sendCh <- &msg.ReqWorkConn{} + }) + } + }() go ctl.manager() go ctl.reader() @@ -418,6 +424,14 @@ func (ctl *Control) stoper() { // block until Control closed func (ctl *Control) WaitClosed() { + ctl.mu.RLock() + started := ctl.started + ctl.mu.RUnlock() + + if !started { + ctl.allShutdown.Done() + return + } ctl.allShutdown.WaitDone() } diff --git a/server/service.go b/server/service.go index 5c93b667a86..002468814d1 100644 --- a/server/service.go +++ b/server/service.go @@ -552,7 +552,7 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login) (err ctl := NewControl(ctx, svr.rc, svr.pxyManager, svr.pluginManager, svr.authVerifier, ctlConn, loginMsg, svr.cfg) if oldCtl := svr.ctlManager.Add(loginMsg.RunID, ctl); oldCtl != nil { - oldCtl.allShutdown.WaitDone() + oldCtl.WaitClosed() } ctl.Start() From e9e12cf888c9bf76489c66d45685f43906f70f5c Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 25 Jul 2023 21:31:26 +0800 Subject: [PATCH 092/444] fix incorrect use of snappy pool (#3549) --- Release.md | 1 + client/proxy/proxy.go | 8 +++++--- client/proxy/sudp.go | 4 +--- client/proxy/udp.go | 4 +--- client/visitor/stcp.go | 6 +++--- client/visitor/xtcp.go | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- pkg/util/version/version.go | 2 +- server/proxy/http.go | 4 +--- server/proxy/proxy.go | 6 +++--- 11 files changed, 22 insertions(+), 25 deletions(-) diff --git a/Release.md b/Release.md index 8b59bafa523..f8fcfb2b1a4 100644 --- a/Release.md +++ b/Release.md @@ -5,3 +5,4 @@ ### Fixes * fix a goroutine leak issue caused by Login plugin timeout. +* Fix an issue introduced in version 0.51.1, enabling `use_compression` will cause some requests to fail. diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 62d02fcfc23..62b3cbba51f 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -142,10 +142,9 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor return } } + var compressionResourceRecycleFn func() if baseConfig.UseCompression { - var releaseFn func() - remote, releaseFn = libio.WithCompressionFromPool(remote) - defer releaseFn() + remote, compressionResourceRecycleFn = libio.WithCompressionFromPool(remote) } // check if we need to send proxy protocol info @@ -215,4 +214,7 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor if len(errs) > 0 { xl.Trace("join connections errors: %v", errs) } + if compressionResourceRecycleFn != nil { + compressionResourceRecycleFn() + } } diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index fbbe87cab2b..347b86a6227 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -97,9 +97,7 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { } } if pxy.cfg.UseCompression { - var releaseFn func() - rwc, releaseFn = libio.WithCompressionFromPool(rwc) - defer releaseFn() + rwc = libio.WithCompression(rwc) } conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) diff --git a/client/proxy/udp.go b/client/proxy/udp.go index 58f30cb28e0..c0edc31256b 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -108,9 +108,7 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { } } if pxy.cfg.UseCompression { - var releaseFn func() - rwc, releaseFn = libio.WithCompressionFromPool(rwc) - defer releaseFn() + rwc = libio.WithCompression(rwc) } conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 86e09ac0b73..56d55055bf7 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -126,9 +126,9 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { } if sv.cfg.UseCompression { - var releaseFn func() - remote, releaseFn = libio.WithCompressionFromPool(remote) - defer releaseFn() + var recycleFn func() + remote, recycleFn = libio.WithCompressionFromPool(remote) + defer recycleFn() } libio.Join(userConn, remote) diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index fe71147c41b..dc5b807f768 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -200,9 +200,9 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } } if sv.cfg.UseCompression { - var releaseFn func() - muxConnRWCloser, releaseFn = libio.WithCompressionFromPool(muxConnRWCloser) - defer releaseFn() + var recycleFn func() + muxConnRWCloser, recycleFn = libio.WithCompressionFromPool(muxConnRWCloser) + defer recycleFn() } _, _, errs := libio.Join(userConn, muxConnRWCloser) diff --git a/go.mod b/go.mod index 0d301f84be8..97bf2ba9c43 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.6.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.1.1-0.20230720124328-204db2e322f8 + github.com/fatedier/golib v0.1.1-0.20230725122706-dcbaee8eef40 github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible github.com/go-playground/validator/v10 v10.14.1 github.com/google/uuid v1.3.0 diff --git a/go.sum b/go.sum index faf7b922288..0fcd840fd74 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.1.1-0.20230720124328-204db2e322f8 h1:8JYzwZ26k1zEsjgits6GHsQxm2tl3K3FYgMMLcIKBKU= -github.com/fatedier/golib v0.1.1-0.20230720124328-204db2e322f8/go.mod h1:Lmi9U4VfvdRvonSMh1FgXVy1hCXycVyJk4E9ktokknE= +github.com/fatedier/golib v0.1.1-0.20230725122706-dcbaee8eef40 h1:BVdpWT6viE/mpuRa6txNyRNjtHa1Efrii9Du6/gHfJ0= +github.com/fatedier/golib v0.1.1-0.20230725122706-dcbaee8eef40/go.mod h1:Lmi9U4VfvdRvonSMh1FgXVy1hCXycVyJk4E9ktokknE= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 670e07fcec5..7ea3a25289f 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.51.1" +var version = "0.51.2" func Full() string { return version diff --git a/server/proxy/http.go b/server/proxy/http.go index 81139167eeb..432dbc101b3 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -175,9 +175,7 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err } } if pxy.cfg.UseCompression { - var releaseFn func() - rwc, releaseFn = libio.WithCompressionFromPool(rwc) - defer releaseFn() + rwc = libio.WithCompression(rwc) } if pxy.GetLimiter() != nil { diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 9d6ee993553..d1e6625523a 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -241,9 +241,9 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { } } if cfg.UseCompression { - var releaseFn func() - local, releaseFn = libio.WithCompressionFromPool(local) - defer releaseFn() + var recycleFn func() + local, recycleFn = libio.WithCompressionFromPool(local) + defer recycleFn() } if pxy.GetLimiter() != nil { From f1454e91f56508603e4c2e3c7bf37ccb534458c2 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 14 Aug 2023 11:10:38 +0800 Subject: [PATCH 093/444] support go1.21 (#3573) --- .circleci/config.yml | 4 ++-- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/goreleaser.yml | 2 +- Release.md | 7 +------ dockerfiles/Dockerfile-for-frpc | 2 +- dockerfiles/Dockerfile-for-frps | 2 +- go.mod | 5 ++--- go.sum | 10 ++++------ pkg/util/version/version.go | 2 +- 9 files changed, 14 insertions(+), 22 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b8dca0e995d..c7e1ef67109 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: go-version-latest: docker: - - image: cimg/go:1.20-node + - image: cimg/go:1.21-node resource_class: large steps: - checkout @@ -10,7 +10,7 @@ jobs: - run: make alltest go-version-last: docker: - - image: cimg/go:1.19-node + - image: cimg/go:1.20-node resource_class: large steps: - checkout diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index fb671e0b3ac..98583c77129 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.21' - uses: actions/checkout@v3 - name: golangci-lint uses: golangci/golangci-lint-action@v3 diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 08bd83164fe..a0aae79d065 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -15,7 +15,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.21' - name: Make All run: | diff --git a/Release.md b/Release.md index f8fcfb2b1a4..e9d6a662b74 100644 --- a/Release.md +++ b/Release.md @@ -1,8 +1,3 @@ ### Features -* Adds a `completion` command for shell completions. - -### Fixes - -* fix a goroutine leak issue caused by Login plugin timeout. -* Fix an issue introduced in version 0.51.1, enabling `use_compression` will cause some requests to fail. +* Support Go 1.21. diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index 96a3d8b9209..19d07db82d3 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,4 +1,4 @@ -FROM golang:1.20 AS building +FROM golang:1.21 AS building COPY . /building WORKDIR /building diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps index 12d52012c73..93f169fc08f 100644 --- a/dockerfiles/Dockerfile-for-frps +++ b/dockerfiles/Dockerfile-for-frps @@ -1,4 +1,4 @@ -FROM golang:1.20 AS building +FROM golang:1.21 AS building COPY . /building WORKDIR /building diff --git a/go.mod b/go.mod index 97bf2ba9c43..e9042ecf802 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/pion/stun v0.6.1 github.com/pires/go-proxyproto v0.7.0 github.com/prometheus/client_golang v1.16.0 - github.com/quic-go/quic-go v0.36.2 + github.com/quic-go/quic-go v0.37.4 github.com/rodaine/table v1.1.0 github.com/samber/lo v1.38.1 github.com/spf13/cobra v1.7.0 @@ -62,8 +62,7 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.10.1 // indirect - github.com/quic-go/qtls-go1-19 v0.3.2 // indirect - github.com/quic-go/qtls-go1-20 v0.2.2 // indirect + github.com/quic-go/qtls-go1-20 v0.3.1 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect diff --git a/go.sum b/go.sum index 0fcd840fd74..d1b794c9f1f 100644 --- a/go.sum +++ b/go.sum @@ -126,12 +126,10 @@ github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= -github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U= -github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= -github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E= -github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/quic-go v0.36.2 h1:ZX/UNQ4gvpCv2RmwdbA6lrRjF6EBm5yZ7TMoT4NQVrA= -github.com/quic-go/quic-go v0.36.2/go.mod h1:zPetvwDlILVxt15n3hr3Gf/I3mDf7LpLKPhR4Ez0AZQ= +github.com/quic-go/qtls-go1-20 v0.3.1 h1:O4BLOM3hwfVF3AcktIylQXyl7Yi2iBNVy5QsV+ySxbg= +github.com/quic-go/qtls-go1-20 v0.3.1/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= +github.com/quic-go/quic-go v0.37.4 h1:ke8B73yMCWGq9MfrCCAw0Uzdm7GaViC3i39dsIdDlH4= +github.com/quic-go/quic-go v0.37.4/go.mod h1:YsbH1r4mSHPJcLF4k4zruUkLBqctEMBDR6VPvcYjIsU= github.com/rodaine/table v1.1.0 h1:/fUlCSdjamMY8VifdQRIu3VWZXYLY7QHFkVorS8NTr4= github.com/rodaine/table v1.1.0/go.mod h1:Qu3q5wi1jTQD6B6HsP6szie/S4w1QUQ8pq22pz9iL8g= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 7ea3a25289f..9a9135940c6 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.51.2" +var version = "0.51.3" func Full() string { return version From 885b029fcff5d6f19cfd2c394d6436346ca22277 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 31 Aug 2023 11:16:20 +0800 Subject: [PATCH 094/444] remove arch 386 (#3593) --- Makefile.cross-compiles | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile.cross-compiles b/Makefile.cross-compiles index 515a3c262b3..3c123df8af6 100644 --- a/Makefile.cross-compiles +++ b/Makefile.cross-compiles @@ -2,7 +2,7 @@ export PATH := $(GOPATH)/bin:$(PATH) export GO111MODULE=on LDFLAGS := -s -w -os-archs=darwin:amd64 darwin:arm64 freebsd:386 freebsd:amd64 linux:386 linux:amd64 linux:arm linux:arm64 windows:386 windows:amd64 windows:arm64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 +os-archs=darwin:amd64 darwin:arm64 freebsd:amd64 linux:amd64 linux:arm linux:arm64 windows:amd64 windows:arm64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 all: build @@ -19,8 +19,6 @@ app: env CGO_ENABLED=0 GOOS=$${os} GOARCH=$${arch} GOMIPS=$${gomips} go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frps_$${target_suffix} ./cmd/frps;\ echo "Build $${os}-$${arch} done";\ ) - @mv ./release/frpc_windows_386 ./release/frpc_windows_386.exe - @mv ./release/frps_windows_386 ./release/frps_windows_386.exe @mv ./release/frpc_windows_amd64 ./release/frpc_windows_amd64.exe @mv ./release/frps_windows_amd64 ./release/frps_windows_amd64.exe @mv ./release/frpc_windows_arm64 ./release/frpc_windows_arm64.exe From c95311d1a03ef7c7dcb3f0d41705e45cdada5280 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 6 Sep 2023 10:18:02 +0800 Subject: [PATCH 095/444] support yaml/json/toml configuration format, make ini deprecated (#3599) --- .golangci.yml | 22 +- Release.md | 2 - client/admin.go | 4 +- client/admin_api.go | 71 +- client/control.go | 28 +- client/health/health.go | 35 +- client/proxy/general_tcp.go | 16 +- client/proxy/proxy.go | 59 +- client/proxy/proxy_manager.go | 18 +- client/proxy/proxy_wrapper.go | 31 +- client/proxy/sudp.go | 16 +- client/proxy/udp.go | 16 +- client/proxy/xtcp.go | 24 +- client/service.go | 90 ++- client/visitor/stcp.go | 16 +- client/visitor/sudp.go | 16 +- client/visitor/visitor.go | 16 +- client/visitor/visitor_manager.go | 28 +- client/visitor/xtcp.go | 26 +- cmd/frpc/sub/http.go | 30 +- cmd/frpc/sub/https.go | 28 +- cmd/frpc/sub/nathole.go | 7 +- cmd/frpc/sub/reload.go | 16 +- cmd/frpc/sub/root.go | 84 ++- cmd/frpc/sub/status.go | 15 +- cmd/frpc/sub/stcp.go | 52 +- cmd/frpc/sub/stop.go | 16 +- cmd/frpc/sub/sudp.go | 52 +- cmd/frpc/sub/tcp.go | 29 +- cmd/frpc/sub/tcpmux.go | 28 +- cmd/frpc/sub/udp.go | 28 +- cmd/frpc/sub/verify.go | 16 +- cmd/frpc/sub/xtcp.go | 54 +- cmd/frps/main.go | 6 - cmd/frps/root.go | 113 ++- cmd/frps/verify.go | 11 +- go.mod | 9 +- go.sum | 19 +- pkg/auth/auth.go | 71 +- pkg/auth/legacy/legacy.go | 145 ++++ pkg/auth/oidc.go | 117 +-- pkg/auth/token.go | 37 +- pkg/config/client_test.go | 680 ----------------- pkg/config/{ => legacy}/README.md | 0 pkg/config/{ => legacy}/client.go | 161 ++--- pkg/config/legacy/conversion.go | 350 +++++++++ pkg/config/{ => legacy}/parse.go | 3 +- pkg/config/legacy/proxy.go | 375 ++++++++++ pkg/config/{ => legacy}/server.go | 76 +- pkg/config/{ => legacy}/utils.go | 2 +- pkg/config/{ => legacy}/value.go | 2 +- pkg/config/{ => legacy}/visitor.go | 161 ++--- pkg/config/load.go | 283 ++++++++ pkg/config/proxy.go | 921 ------------------------ pkg/config/proxy_test.go | 478 ------------ pkg/config/server_test.go | 217 ------ pkg/config/{ => types}/types.go | 62 +- pkg/config/{ => types}/types_test.go | 46 +- pkg/config/v1/api.go | 19 + pkg/config/v1/client.go | 199 +++++ pkg/config/v1/client_test.go | 34 + pkg/config/v1/common.go | 110 +++ pkg/config/v1/plugin.go | 117 +++ pkg/config/v1/proxy.go | 420 +++++++++++ pkg/config/v1/proxy_test.go | 49 ++ pkg/config/v1/server.go | 190 +++++ pkg/config/v1/server_test.go | 32 + pkg/config/v1/validation/client.go | 90 +++ pkg/config/v1/validation/common.go | 41 ++ pkg/config/v1/validation/plugin.go | 72 ++ pkg/config/v1/validation/proxy.go | 234 ++++++ pkg/config/v1/validation/server.go | 37 + pkg/config/v1/validation/validation.go | 28 + pkg/config/v1/validation/visitor.go | 59 ++ pkg/config/v1/visitor.go | 155 ++++ pkg/config/visitor_test.go | 112 --- pkg/plugin/client/http2https.go | 45 +- pkg/plugin/client/http_proxy.go | 31 +- pkg/plugin/client/https2http.go | 55 +- pkg/plugin/client/https2https.go | 54 +- pkg/plugin/client/plugin.go | 8 +- pkg/plugin/client/socks5.go | 16 +- pkg/plugin/client/static_file.go | 32 +- pkg/plugin/client/unix_domain_socket.go | 19 +- pkg/plugin/server/http.go | 14 +- pkg/util/log/log.go | 9 +- pkg/util/util/http.go | 2 +- pkg/util/util/types.go | 23 + server/control.go | 31 +- server/dashboard.go | 8 +- server/dashboard_api.go | 23 +- server/ports/ports.go | 14 +- server/proxy/http.go | 44 +- server/proxy/https.go | 14 +- server/proxy/proxy.go | 48 +- server/proxy/stcp.go | 16 +- server/proxy/sudp.go | 16 +- server/proxy/tcp.go | 23 +- server/proxy/tcpmux.go | 25 +- server/proxy/udp.go | 24 +- server/proxy/xtcp.go | 16 +- server/service.go | 57 +- test/e2e/e2e_test.go | 2 +- 103 files changed, 4175 insertions(+), 3826 deletions(-) create mode 100644 pkg/auth/legacy/legacy.go delete mode 100644 pkg/config/client_test.go rename pkg/config/{ => legacy}/README.md (100%) rename pkg/config/{ => legacy}/client.go (97%) create mode 100644 pkg/config/legacy/conversion.go rename pkg/config/{ => legacy}/parse.go (98%) create mode 100644 pkg/config/legacy/proxy.go rename pkg/config/{ => legacy}/server.go (87%) rename pkg/config/{ => legacy}/utils.go (98%) rename pkg/config/{ => legacy}/value.go (99%) rename pkg/config/{ => legacy}/visitor.go (74%) create mode 100644 pkg/config/load.go delete mode 100644 pkg/config/proxy.go delete mode 100644 pkg/config/proxy_test.go delete mode 100644 pkg/config/server_test.go rename pkg/config/{ => types}/types.go (58%) rename pkg/config/{ => types}/types_test.go (54%) create mode 100644 pkg/config/v1/api.go create mode 100644 pkg/config/v1/client.go create mode 100644 pkg/config/v1/client_test.go create mode 100644 pkg/config/v1/common.go create mode 100644 pkg/config/v1/plugin.go create mode 100644 pkg/config/v1/proxy.go create mode 100644 pkg/config/v1/proxy_test.go create mode 100644 pkg/config/v1/server.go create mode 100644 pkg/config/v1/server_test.go create mode 100644 pkg/config/v1/validation/client.go create mode 100644 pkg/config/v1/validation/common.go create mode 100644 pkg/config/v1/validation/plugin.go create mode 100644 pkg/config/v1/validation/proxy.go create mode 100644 pkg/config/v1/validation/server.go create mode 100644 pkg/config/v1/validation/validation.go create mode 100644 pkg/config/v1/validation/visitor.go create mode 100644 pkg/config/v1/visitor.go delete mode 100644 pkg/config/visitor_test.go create mode 100644 pkg/util/util/types.go diff --git a/.golangci.yml b/.golangci.yml index 0fe5d726a5d..18cbaf0be8a 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -120,16 +120,18 @@ issues: # - composite literal uses unkeyed fields exclude-rules: - # Exclude some linters from running on test files. - - path: _test\.go$|^tests/|^samples/ - linters: - - errcheck - - maligned - - # keep it until we only support go1.20 - - linters: - - staticcheck - text: "SA1019: rand.Seed has been deprecated" + # Exclude some linters from running on test files. + - path: _test\.go$|^tests/|^samples/ + linters: + - errcheck + - maligned + - linters: + - revive + - stylecheck + text: "use underscores in Go names" + - linters: + - revive + text: "unused-parameter" # Independently from option `exclude` we use default exclude patterns, # it can be disabled by this option. To list all diff --git a/Release.md b/Release.md index e9d6a662b74..cff4dbc12b7 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1 @@ ### Features - -* Support Go 1.21. diff --git a/client/admin.go b/client/admin.go index 29e86a6e121..da8bab1bd5c 100644 --- a/client/admin.go +++ b/client/admin.go @@ -38,7 +38,7 @@ func (svr *Service) RunAdminServer(address string) (err error) { router.HandleFunc("/healthz", svr.healthz) // debug - if svr.cfg.PprofEnable { + if svr.cfg.WebServer.PprofEnable { router.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline) router.HandleFunc("/debug/pprof/profile", pprof.Profile) router.HandleFunc("/debug/pprof/symbol", pprof.Symbol) @@ -47,7 +47,7 @@ func (svr *Service) RunAdminServer(address string) (err error) { } subRouter := router.NewRoute().Subrouter() - user, passwd := svr.cfg.AdminUser, svr.cfg.AdminPwd + user, passwd := svr.cfg.WebServer.User, svr.cfg.WebServer.Password subRouter.Use(utilnet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) // api, see admin_api.go diff --git a/client/admin_api.go b/client/admin_api.go index b1d1885cbd3..a348e8dd332 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -30,6 +30,7 @@ import ( "github.com/fatedier/frp/client/proxy" "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/util/log" ) @@ -56,15 +57,21 @@ func (svr *Service) apiReload(w http.ResponseWriter, _ *http.Request) { } }() - _, pxyCfgs, visitorCfgs, err := config.ParseClientConfig(svr.cfgFile) + cliCfg, pxyCfgs, visitorCfgs, _, err := config.LoadClientConfig(svr.cfgFile) if err != nil { res.Code = 400 res.Msg = err.Error() log.Warn("reload frpc proxy config error: %s", res.Msg) return } + if _, err := validation.ValidateAllClientConfig(cliCfg, pxyCfgs, visitorCfgs); err != nil { + res.Code = 400 + res.Msg = err.Error() + log.Warn("reload frpc proxy config error: %s", res.Msg) + return + } - if err = svr.ReloadConf(pxyCfgs, visitorCfgs); err != nil { + if err := svr.ReloadConf(pxyCfgs, visitorCfgs); err != nil { res.Code = 500 res.Msg = err.Error() log.Warn("reload frpc proxy config error: %s", res.Msg) @@ -112,7 +119,7 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta if baseCfg.LocalPort != 0 { psr.LocalAddr = net.JoinHostPort(baseCfg.LocalIP, strconv.Itoa(baseCfg.LocalPort)) } - psr.Plugin = baseCfg.Plugin + psr.Plugin = baseCfg.Plugin.Type if status.Err == "" { psr.RemoteAddr = status.RemoteAddr @@ -172,24 +179,14 @@ func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { return } - content, err := config.GetRenderedConfFromFile(svr.cfgFile) + content, err := os.ReadFile(svr.cfgFile) if err != nil { res.Code = 400 res.Msg = err.Error() log.Warn("load frpc config file error: %s", res.Msg) return } - - rows := strings.Split(string(content), "\n") - newRows := make([]string, 0, len(rows)) - for _, row := range rows { - row = strings.TrimSpace(row) - if strings.HasPrefix(row, "token") { - continue - } - newRows = append(newRows, row) - } - res.Msg = strings.Join(newRows, "\n") + res.Msg = string(content) } // PUT /api/config @@ -221,49 +218,7 @@ func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { return } - // get token from origin content - token := "" - b, err := os.ReadFile(svr.cfgFile) - if err != nil { - res.Code = 400 - res.Msg = err.Error() - log.Warn("load frpc config file error: %s", res.Msg) - return - } - content := string(b) - - for _, row := range strings.Split(content, "\n") { - row = strings.TrimSpace(row) - if strings.HasPrefix(row, "token") { - token = row - break - } - } - - tmpRows := make([]string, 0) - for _, row := range strings.Split(string(body), "\n") { - row = strings.TrimSpace(row) - if strings.HasPrefix(row, "token") { - continue - } - tmpRows = append(tmpRows, row) - } - - newRows := make([]string, 0) - if token != "" { - for _, row := range tmpRows { - newRows = append(newRows, row) - if strings.HasPrefix(row, "[common]") { - newRows = append(newRows, token) - } - } - } else { - newRows = tmpRows - } - content = strings.Join(newRows, "\n") - - err = os.WriteFile(svr.cfgFile, []byte(content), 0o644) - if err != nil { + if err := os.WriteFile(svr.cfgFile, body, 0o644); err != nil { res.Code = 500 res.Msg = fmt.Sprintf("write content to frpc config file error: %v", err) log.Warn("%s", res.Msg) diff --git a/client/control.go b/client/control.go index e344046c439..63c6c331fc9 100644 --- a/client/control.go +++ b/client/control.go @@ -23,11 +23,12 @@ import ( "github.com/fatedier/golib/control/shutdown" "github.com/fatedier/golib/crypto" + "github.com/samber/lo" "github.com/fatedier/frp/client/proxy" "github.com/fatedier/frp/client/visitor" "github.com/fatedier/frp/pkg/auth" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" @@ -43,7 +44,7 @@ type Control struct { runID string // manage all proxies - pxyCfgs map[string]config.ProxyConf + pxyCfgs []v1.ProxyConfigurer pm *proxy.Manager // manage all visitors @@ -69,7 +70,7 @@ type Control struct { lastPong time.Time // The client configuration - clientCfg config.ClientCommonConf + clientCfg *v1.ClientCommonConfig readerShutdown *shutdown.Shutdown writerShutdown *shutdown.Shutdown @@ -83,9 +84,9 @@ type Control struct { func NewControl( ctx context.Context, runID string, conn net.Conn, cm *ConnectionManager, - clientCfg config.ClientCommonConf, - pxyCfgs map[string]config.ProxyConf, - visitorCfgs map[string]config.VisitorConf, + clientCfg *v1.ClientCommonConfig, + pxyCfgs []v1.ProxyConfigurer, + visitorCfgs []v1.VisitorConfigurer, authSetter auth.Setter, ) *Control { // new xlog instance @@ -220,7 +221,7 @@ func (ctl *Control) reader() { defer ctl.readerShutdown.Done() defer close(ctl.closedCh) - encReader := crypto.NewReader(ctl.conn, []byte(ctl.clientCfg.Token)) + encReader := crypto.NewReader(ctl.conn, []byte(ctl.clientCfg.Auth.Token)) for { m, err := msg.ReadMsg(encReader) if err != nil { @@ -240,7 +241,7 @@ func (ctl *Control) reader() { func (ctl *Control) writer() { xl := ctl.xl defer ctl.writerShutdown.Done() - encWriter, err := crypto.NewWriter(ctl.conn, []byte(ctl.clientCfg.Token)) + encWriter, err := crypto.NewWriter(ctl.conn, []byte(ctl.clientCfg.Auth.Token)) if err != nil { xl.Error("crypto new writer error: %v", err) ctl.conn.Close() @@ -274,15 +275,16 @@ func (ctl *Control) msgHandler() { var hbSendCh <-chan time.Time // TODO(fatedier): disable heartbeat if TCPMux is enabled. // Just keep it here to keep compatible with old version frps. - if ctl.clientCfg.HeartbeatInterval > 0 { - hbSend := time.NewTicker(time.Duration(ctl.clientCfg.HeartbeatInterval) * time.Second) + if ctl.clientCfg.Transport.HeartbeatInterval > 0 { + hbSend := time.NewTicker(time.Duration(ctl.clientCfg.Transport.HeartbeatInterval) * time.Second) defer hbSend.Stop() hbSendCh = hbSend.C } var hbCheckCh <-chan time.Time // Check heartbeat timeout only if TCPMux is not enabled and users don't disable heartbeat feature. - if ctl.clientCfg.HeartbeatInterval > 0 && ctl.clientCfg.HeartbeatTimeout > 0 && !ctl.clientCfg.TCPMux { + if ctl.clientCfg.Transport.HeartbeatInterval > 0 && ctl.clientCfg.Transport.HeartbeatTimeout > 0 && + !lo.FromPtr(ctl.clientCfg.Transport.TCPMux) { hbCheck := time.NewTicker(time.Second) defer hbCheck.Stop() hbCheckCh = hbCheck.C @@ -301,7 +303,7 @@ func (ctl *Control) msgHandler() { } ctl.sendCh <- pingMsg case <-hbCheckCh: - if time.Since(ctl.lastPong) > time.Duration(ctl.clientCfg.HeartbeatTimeout)*time.Second { + if time.Since(ctl.lastPong) > time.Duration(ctl.clientCfg.Transport.HeartbeatTimeout)*time.Second { xl.Warn("heartbeat timeout") // let reader() stop ctl.conn.Close() @@ -354,7 +356,7 @@ func (ctl *Control) worker() { ctl.cm.Close() } -func (ctl *Control) ReloadConf(pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]config.VisitorConf) error { +func (ctl *Control) ReloadConf(pxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer) error { ctl.vm.Reload(visitorCfgs) ctl.pm.Reload(pxyCfgs) return nil diff --git a/client/health/health.go b/client/health/health.go index 0ee3d04ac9c..63eec721811 100644 --- a/client/health/health.go +++ b/client/health/health.go @@ -21,8 +21,10 @@ import ( "io" "net" "net/http" + "strings" "time" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/util/xlog" ) @@ -49,26 +51,33 @@ type Monitor struct { cancel context.CancelFunc } -func NewMonitor(ctx context.Context, checkType string, - intervalS int, timeoutS int, maxFailedTimes int, - addr string, url string, +func NewMonitor(ctx context.Context, cfg v1.HealthCheckConfig, addr string, statusNormalFn func(), statusFailedFn func(), ) *Monitor { - if intervalS <= 0 { - intervalS = 10 + if cfg.IntervalSeconds <= 0 { + cfg.IntervalSeconds = 10 } - if timeoutS <= 0 { - timeoutS = 3 + if cfg.TimeoutSeconds <= 0 { + cfg.TimeoutSeconds = 3 } - if maxFailedTimes <= 0 { - maxFailedTimes = 1 + if cfg.MaxFailed <= 0 { + cfg.MaxFailed = 1 } newctx, cancel := context.WithCancel(ctx) + + var url string + if cfg.Type == "http" && cfg.Path != "" { + s := "http://" + addr + if !strings.HasPrefix(cfg.Path, "/") { + s += "/" + } + url = s + cfg.Path + } return &Monitor{ - checkType: checkType, - interval: time.Duration(intervalS) * time.Second, - timeout: time.Duration(timeoutS) * time.Second, - maxFailedTimes: maxFailedTimes, + checkType: cfg.Type, + interval: time.Duration(cfg.IntervalSeconds) * time.Second, + timeout: time.Duration(cfg.TimeoutSeconds) * time.Second, + maxFailedTimes: cfg.MaxFailed, addr: addr, url: url, statusOK: false, diff --git a/client/proxy/general_tcp.go b/client/proxy/general_tcp.go index cea9ef5b32c..c3923085503 100644 --- a/client/proxy/general_tcp.go +++ b/client/proxy/general_tcp.go @@ -17,16 +17,16 @@ package proxy import ( "reflect" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" ) func init() { - pxyConfs := []config.ProxyConf{ - &config.TCPProxyConf{}, - &config.HTTPProxyConf{}, - &config.HTTPSProxyConf{}, - &config.STCPProxyConf{}, - &config.TCPMuxProxyConf{}, + pxyConfs := []v1.ProxyConfigurer{ + &v1.TCPProxyConfig{}, + &v1.HTTPProxyConfig{}, + &v1.HTTPSProxyConfig{}, + &v1.STCPProxyConfig{}, + &v1.TCPMuxProxyConfig{}, } for _, cfg := range pxyConfs { RegisterProxyFactory(reflect.TypeOf(cfg), NewGeneralTCPProxy) @@ -40,7 +40,7 @@ type GeneralTCPProxy struct { *BaseProxy } -func NewGeneralTCPProxy(baseProxy *BaseProxy, _ config.ProxyConf) Proxy { +func NewGeneralTCPProxy(baseProxy *BaseProxy, _ v1.ProxyConfigurer) Proxy { return &GeneralTCPProxy{ BaseProxy: baseProxy, } diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 62b3cbba51f..4bdd4285fe5 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -30,7 +30,8 @@ import ( pp "github.com/pires/go-proxyproto" "golang.org/x/time/rate" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/client" "github.com/fatedier/frp/pkg/transport" @@ -38,9 +39,9 @@ import ( "github.com/fatedier/frp/pkg/util/xlog" ) -var proxyFactoryRegistry = map[reflect.Type]func(*BaseProxy, config.ProxyConf) Proxy{} +var proxyFactoryRegistry = map[reflect.Type]func(*BaseProxy, v1.ProxyConfigurer) Proxy{} -func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*BaseProxy, config.ProxyConf) Proxy) { +func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*BaseProxy, v1.ProxyConfigurer) Proxy) { proxyFactoryRegistry[proxyConfType] = factory } @@ -56,23 +57,23 @@ type Proxy interface { func NewProxy( ctx context.Context, - pxyConf config.ProxyConf, - clientCfg config.ClientCommonConf, + pxyConf v1.ProxyConfigurer, + clientCfg *v1.ClientCommonConfig, msgTransporter transport.MessageTransporter, ) (pxy Proxy) { var limiter *rate.Limiter - limitBytes := pxyConf.GetBaseConfig().BandwidthLimit.Bytes() - if limitBytes > 0 && pxyConf.GetBaseConfig().BandwidthLimitMode == config.BandwidthLimitModeClient { + limitBytes := pxyConf.GetBaseConfig().Transport.BandwidthLimit.Bytes() + if limitBytes > 0 && pxyConf.GetBaseConfig().Transport.BandwidthLimitMode == types.BandwidthLimitModeClient { limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) } baseProxy := BaseProxy{ - baseProxyConfig: pxyConf.GetBaseConfig(), - clientCfg: clientCfg, - limiter: limiter, - msgTransporter: msgTransporter, - xl: xlog.FromContextSafe(ctx), - ctx: ctx, + baseCfg: pxyConf.GetBaseConfig(), + clientCfg: clientCfg, + limiter: limiter, + msgTransporter: msgTransporter, + xl: xlog.FromContextSafe(ctx), + ctx: ctx, } factory := proxyFactoryRegistry[reflect.TypeOf(pxyConf)] @@ -83,10 +84,10 @@ func NewProxy( } type BaseProxy struct { - baseProxyConfig *config.BaseProxyConf - clientCfg config.ClientCommonConf - msgTransporter transport.MessageTransporter - limiter *rate.Limiter + baseCfg *v1.ProxyBaseConfig + clientCfg *v1.ClientCommonConfig + msgTransporter transport.MessageTransporter + limiter *rate.Limiter // proxyPlugin is used to handle connections instead of dialing to local service. // It's only validate for TCP protocol now. proxyPlugin plugin.Plugin @@ -97,8 +98,8 @@ type BaseProxy struct { } func (pxy *BaseProxy) Run() error { - if pxy.baseProxyConfig.Plugin != "" { - p, err := plugin.Create(pxy.baseProxyConfig.Plugin, pxy.baseProxyConfig.PluginParams) + if pxy.baseCfg.Plugin.Type != "" { + p, err := plugin.Create(pxy.baseCfg.Plugin.Type, pxy.baseCfg.Plugin.ClientPluginOptions) if err != nil { return err } @@ -114,13 +115,13 @@ func (pxy *BaseProxy) Close() { } func (pxy *BaseProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { - pxy.HandleTCPWorkConnection(conn, m, []byte(pxy.clientCfg.Token)) + pxy.HandleTCPWorkConnection(conn, m, []byte(pxy.clientCfg.Auth.Token)) } // Common handler for tcp work connections. func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWorkConn, encKey []byte) { xl := pxy.xl - baseConfig := pxy.baseProxyConfig + baseCfg := pxy.baseCfg var ( remote io.ReadWriteCloser err error @@ -133,8 +134,8 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } xl.Trace("handle tcp work connection, use_encryption: %t, use_compression: %t", - baseConfig.UseEncryption, baseConfig.UseCompression) - if baseConfig.UseEncryption { + baseCfg.Transport.UseEncryption, baseCfg.Transport.UseCompression) + if baseCfg.Transport.UseEncryption { remote, err = libio.WithEncryption(remote, encKey) if err != nil { workConn.Close() @@ -143,13 +144,13 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } } var compressionResourceRecycleFn func() - if baseConfig.UseCompression { + if baseCfg.Transport.UseCompression { remote, compressionResourceRecycleFn = libio.WithCompressionFromPool(remote) } // check if we need to send proxy protocol info var extraInfo []byte - if baseConfig.ProxyProtocolVersion != "" { + if baseCfg.Transport.ProxyProtocolVersion != "" { if m.SrcAddr != "" && m.SrcPort != 0 { if m.DstAddr == "" { m.DstAddr = "127.0.0.1" @@ -168,9 +169,9 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor h.TransportProtocol = pp.TCPv6 } - if baseConfig.ProxyProtocolVersion == "v1" { + if baseCfg.Transport.ProxyProtocolVersion == "v1" { h.Version = 1 - } else if baseConfig.ProxyProtocolVersion == "v2" { + } else if baseCfg.Transport.ProxyProtocolVersion == "v2" { h.Version = 2 } @@ -189,12 +190,12 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } localConn, err := libdial.Dial( - net.JoinHostPort(baseConfig.LocalIP, strconv.Itoa(baseConfig.LocalPort)), + net.JoinHostPort(baseCfg.LocalIP, strconv.Itoa(baseCfg.LocalPort)), libdial.WithTimeout(10*time.Second), ) if err != nil { workConn.Close() - xl.Error("connect to local service [%s:%d] error: %v", baseConfig.LocalIP, baseConfig.LocalPort, err) + xl.Error("connect to local service [%s:%d] error: %v", baseCfg.LocalIP, baseCfg.LocalPort, err) return } diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index 9e551ced700..db66cb26397 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -21,8 +21,10 @@ import ( "reflect" "sync" + "github.com/samber/lo" + "github.com/fatedier/frp/client/event" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" @@ -35,14 +37,14 @@ type Manager struct { closed bool mu sync.RWMutex - clientCfg config.ClientCommonConf + clientCfg *v1.ClientCommonConfig ctx context.Context } func NewManager( ctx context.Context, - clientCfg config.ClientCommonConf, + clientCfg *v1.ClientCommonConfig, msgTransporter transport.MessageTransporter, ) *Manager { return &Manager{ @@ -113,15 +115,18 @@ func (pm *Manager) GetAllProxyStatus() []*WorkingStatus { return ps } -func (pm *Manager) Reload(pxyCfgs map[string]config.ProxyConf) { +func (pm *Manager) Reload(pxyCfgs []v1.ProxyConfigurer) { xl := xlog.FromContextSafe(pm.ctx) + pxyCfgsMap := lo.KeyBy(pxyCfgs, func(c v1.ProxyConfigurer) string { + return c.GetBaseConfig().Name + }) pm.mu.Lock() defer pm.mu.Unlock() delPxyNames := make([]string, 0) for name, pxy := range pm.proxies { del := false - cfg, ok := pxyCfgs[name] + cfg, ok := pxyCfgsMap[name] if !ok || !reflect.DeepEqual(pxy.Cfg, cfg) { del = true } @@ -137,7 +142,8 @@ func (pm *Manager) Reload(pxyCfgs map[string]config.ProxyConf) { } addPxyNames := make([]string, 0) - for name, cfg := range pxyCfgs { + for _, cfg := range pxyCfgs { + name := cfg.GetBaseConfig().Name if _, ok := pm.proxies[name]; !ok { pxy := NewWrapper(pm.ctx, cfg, pm.clientCfg, pm.HandleEvent, pm.msgTransporter) pm.proxies[name] = pxy diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index 913094272bf..346c6d076a8 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "net" + "strconv" "sync" "sync/atomic" "time" @@ -26,7 +27,7 @@ import ( "github.com/fatedier/frp/client/event" "github.com/fatedier/frp/client/health" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" @@ -48,11 +49,11 @@ var ( ) type WorkingStatus struct { - Name string `json:"name"` - Type string `json:"type"` - Phase string `json:"status"` - Err string `json:"err"` - Cfg config.ProxyConf `json:"cfg"` + Name string `json:"name"` + Type string `json:"type"` + Phase string `json:"status"` + Err string `json:"err"` + Cfg v1.ProxyConfigurer `json:"cfg"` // Got from server. RemoteAddr string `json:"remote_addr"` @@ -86,17 +87,17 @@ type Wrapper struct { func NewWrapper( ctx context.Context, - cfg config.ProxyConf, - clientCfg config.ClientCommonConf, + cfg v1.ProxyConfigurer, + clientCfg *v1.ClientCommonConfig, eventHandler event.Handler, msgTransporter transport.MessageTransporter, ) *Wrapper { baseInfo := cfg.GetBaseConfig() - xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(baseInfo.ProxyName) + xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(baseInfo.Name) pw := &Wrapper{ WorkingStatus: WorkingStatus{ - Name: baseInfo.ProxyName, - Type: baseInfo.ProxyType, + Name: baseInfo.Name, + Type: baseInfo.Type, Phase: ProxyPhaseNew, Cfg: cfg, }, @@ -108,11 +109,11 @@ func NewWrapper( ctx: xlog.NewContext(ctx, xl), } - if baseInfo.HealthCheckType != "" { + if baseInfo.HealthCheck.Type != "" && baseInfo.LocalPort > 0 { pw.health = 1 // means failed - pw.monitor = health.NewMonitor(pw.ctx, baseInfo.HealthCheckType, baseInfo.HealthCheckIntervalS, - baseInfo.HealthCheckTimeoutS, baseInfo.HealthCheckMaxFailed, baseInfo.HealthCheckAddr, - baseInfo.HealthCheckURL, pw.statusNormalCallback, pw.statusFailedCallback) + addr := net.JoinHostPort(baseInfo.LocalIP, strconv.Itoa(baseInfo.LocalPort)) + pw.monitor = health.NewMonitor(pw.ctx, baseInfo.HealthCheck, addr, + pw.statusNormalCallback, pw.statusFailedCallback) xl.Trace("enable health check monitor") } diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index 347b86a6227..e67a33974f0 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -25,7 +25,7 @@ import ( "github.com/fatedier/golib/errors" libio "github.com/fatedier/golib/io" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" "github.com/fatedier/frp/pkg/util/limit" @@ -33,21 +33,21 @@ import ( ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.SUDPProxyConf{}), NewSUDPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.SUDPProxyConfig{}), NewSUDPProxy) } type SUDPProxy struct { *BaseProxy - cfg *config.SUDPProxyConf + cfg *v1.SUDPProxyConfig localAddr *net.UDPAddr closeCh chan struct{} } -func NewSUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.SUDPProxyConf) +func NewSUDPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy { + unwrapped, ok := cfg.(*v1.SUDPProxyConfig) if !ok { return nil } @@ -88,15 +88,15 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { return conn.Close() }) } - if pxy.cfg.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) + if pxy.cfg.Transport.UseEncryption { + rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Auth.Token)) if err != nil { conn.Close() xl.Error("create encryption stream error: %v", err) return } } - if pxy.cfg.UseCompression { + if pxy.cfg.Transport.UseCompression { rwc = libio.WithCompression(rwc) } conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) diff --git a/client/proxy/udp.go b/client/proxy/udp.go index c0edc31256b..0a5cefcc291 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -24,7 +24,7 @@ import ( "github.com/fatedier/golib/errors" libio "github.com/fatedier/golib/io" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" "github.com/fatedier/frp/pkg/util/limit" @@ -32,13 +32,13 @@ import ( ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.UDPProxyConf{}), NewUDPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.UDPProxyConfig{}), NewUDPProxy) } type UDPProxy struct { *BaseProxy - cfg *config.UDPProxyConf + cfg *v1.UDPProxyConfig localAddr *net.UDPAddr readCh chan *msg.UDPPacket @@ -49,8 +49,8 @@ type UDPProxy struct { closed bool } -func NewUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.UDPProxyConf) +func NewUDPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy { + unwrapped, ok := cfg.(*v1.UDPProxyConfig) if !ok { return nil } @@ -99,15 +99,15 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { return conn.Close() }) } - if pxy.cfg.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Token)) + if pxy.cfg.Transport.UseEncryption { + rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Auth.Token)) if err != nil { conn.Close() xl.Error("create encryption stream error: %v", err) return } } - if pxy.cfg.UseCompression { + if pxy.cfg.Transport.UseCompression { rwc = libio.WithCompression(rwc) } conn = utilnet.WrapReadWriteCloserToConn(rwc, conn) diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index ccf390791aa..8271099bb50 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -23,7 +23,7 @@ import ( fmux "github.com/hashicorp/yamux" "github.com/quic-go/quic-go" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/nathole" "github.com/fatedier/frp/pkg/transport" @@ -31,17 +31,17 @@ import ( ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.XTCPProxyConf{}), NewXTCPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.XTCPProxyConfig{}), NewXTCPProxy) } type XTCPProxy struct { *BaseProxy - cfg *config.XTCPProxyConf + cfg *v1.XTCPProxyConfig } -func NewXTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.XTCPProxyConf) +func NewXTCPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy { + unwrapped, ok := cfg.(*v1.XTCPProxyConfig) if !ok { return nil } @@ -75,7 +75,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC transactionID := nathole.NewTransactionID() natHoleClientMsg := &msg.NatHoleClient{ TransactionID: transactionID, - ProxyName: pxy.cfg.ProxyName, + ProxyName: pxy.cfg.Name, Sid: natHoleSidMsg.Sid, MappedAddrs: prepareResult.Addrs, AssistedAddrs: prepareResult.AssistedAddrs, @@ -93,7 +93,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC natHoleRespMsg.AssistedAddrs, natHoleRespMsg.DetectBehavior) listenConn := prepareResult.ListenConn - newListenConn, raddr, err := nathole.MakeHole(pxy.ctx, listenConn, natHoleRespMsg, []byte(pxy.cfg.Sk)) + newListenConn, raddr, err := nathole.MakeHole(pxy.ctx, listenConn, natHoleRespMsg, []byte(pxy.cfg.Secretkey)) if err != nil { listenConn.Close() xl.Warn("make hole error: %v", err) @@ -154,7 +154,7 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s xl.Error("accept connection error: %v", err) return } - go pxy.HandleTCPWorkConnection(muxConn, startWorkConnMsg, []byte(pxy.cfg.Sk)) + go pxy.HandleTCPWorkConnection(muxConn, startWorkConnMsg, []byte(pxy.cfg.Secretkey)) } } @@ -170,9 +170,9 @@ func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, star tlsConfig.NextProtos = []string{"frp"} quicListener, err := quic.Listen(listenConn, tlsConfig, &quic.Config{ - MaxIdleTimeout: time.Duration(pxy.clientCfg.QUICMaxIdleTimeout) * time.Second, - MaxIncomingStreams: int64(pxy.clientCfg.QUICMaxIncomingStreams), - KeepAlivePeriod: time.Duration(pxy.clientCfg.QUICKeepalivePeriod) * time.Second, + MaxIdleTimeout: time.Duration(pxy.clientCfg.Transport.QUIC.MaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(pxy.clientCfg.Transport.QUIC.MaxIncomingStreams), + KeepAlivePeriod: time.Duration(pxy.clientCfg.Transport.QUIC.KeepalivePeriod) * time.Second, }, ) if err != nil { @@ -192,6 +192,6 @@ func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, star _ = c.CloseWithError(0, "") return } - go pxy.HandleTCPWorkConnection(utilnet.QuicStreamToNetConn(stream, c), startWorkConnMsg, []byte(pxy.cfg.Sk)) + go pxy.HandleTCPWorkConnection(utilnet.QuicStreamToNetConn(stream, c), startWorkConnMsg, []byte(pxy.cfg.Secretkey)) } } diff --git a/client/service.go b/client/service.go index 954045a366f..5ddc23c3f29 100644 --- a/client/service.go +++ b/client/service.go @@ -19,7 +19,6 @@ import ( "crypto/tls" "fmt" "io" - "math/rand" "net" "runtime" "strconv" @@ -32,10 +31,11 @@ import ( libdial "github.com/fatedier/golib/net/dial" fmux "github.com/hashicorp/yamux" quic "github.com/quic-go/quic-go" + "github.com/samber/lo" "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/log" @@ -47,8 +47,6 @@ import ( func init() { crypto.DefaultSalt = "frp" - // TODO: remove this when we drop support for go1.19 - rand.Seed(time.Now().UnixNano()) } // Service is a client service. @@ -63,9 +61,9 @@ type Service struct { // Sets authentication based on selected method authSetter auth.Setter - cfg config.ClientCommonConf - pxyCfgs map[string]config.ProxyConf - visitorCfgs map[string]config.VisitorConf + cfg *v1.ClientCommonConfig + pxyCfgs []v1.ProxyConfigurer + visitorCfgs []v1.VisitorConfigurer cfgMu sync.RWMutex // The configuration file used to initialize this client, or an empty @@ -81,13 +79,13 @@ type Service struct { } func NewService( - cfg config.ClientCommonConf, - pxyCfgs map[string]config.ProxyConf, - visitorCfgs map[string]config.VisitorConf, + cfg *v1.ClientCommonConfig, + pxyCfgs []v1.ProxyConfigurer, + visitorCfgs []v1.VisitorConfigurer, cfgFile string, ) (svr *Service, err error) { svr = &Service{ - authSetter: auth.NewAuthSetter(cfg.ClientConfig), + authSetter: auth.NewAuthSetter(cfg.Auth), cfg: cfg, cfgFile: cfgFile, pxyCfgs: pxyCfgs, @@ -134,7 +132,7 @@ func (svr *Service) Run(ctx context.Context) error { // if login_fail_exit is true, just exit this program // otherwise sleep a while and try again to connect to server - if svr.cfg.LoginFailExit { + if lo.FromPtr(svr.cfg.LoginFailExit) { return err } util.RandomSleep(5*time.Second, 0.9, 1.1) @@ -151,16 +149,16 @@ func (svr *Service) Run(ctx context.Context) error { go svr.keepControllerWorking() - if svr.cfg.AdminPort != 0 { + if svr.cfg.WebServer.Port != 0 { // Init admin server assets - assets.Load(svr.cfg.AssetsDir) + assets.Load(svr.cfg.WebServer.AssetsDir) - address := net.JoinHostPort(svr.cfg.AdminAddr, strconv.Itoa(svr.cfg.AdminPort)) + address := net.JoinHostPort(svr.cfg.WebServer.Addr, strconv.Itoa(svr.cfg.WebServer.Port)) err := svr.RunAdminServer(address) if err != nil { log.Warn("run admin server error: %v", err) } - log.Info("admin server listen on %s:%d", svr.cfg.AdminAddr, svr.cfg.AdminPort) + log.Info("admin server listen on %s:%d", svr.cfg.WebServer.Addr, svr.cfg.WebServer.Port) } <-svr.ctx.Done() // service context may not be canceled by svr.Close(), we should call it here to release resources @@ -244,7 +242,7 @@ func (svr *Service) keepControllerWorking() { // session: if it's not nil, using tcp mux func (svr *Service) login() (conn net.Conn, cm *ConnectionManager, err error) { xl := xlog.FromContextSafe(svr.ctx) - cm = NewConnectionManager(svr.ctx, &svr.cfg) + cm = NewConnectionManager(svr.ctx, svr.cfg) if err = cm.OpenConnection(); err != nil { return nil, nil, err @@ -264,12 +262,12 @@ func (svr *Service) login() (conn net.Conn, cm *ConnectionManager, err error) { loginMsg := &msg.Login{ Arch: runtime.GOARCH, Os: runtime.GOOS, - PoolCount: svr.cfg.PoolCount, + PoolCount: svr.cfg.Transport.PoolCount, User: svr.cfg.User, Version: version.Full(), Timestamp: time.Now().Unix(), RunID: svr.runID, - Metas: svr.cfg.Metas, + Metas: svr.cfg.Metadatas, } // Add auth @@ -302,7 +300,7 @@ func (svr *Service) login() (conn net.Conn, cm *ConnectionManager, err error) { return } -func (svr *Service) ReloadConf(pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]config.VisitorConf) error { +func (svr *Service) ReloadConf(pxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer) error { svr.cfgMu.Lock() svr.pxyCfgs = pxyCfgs svr.visitorCfgs = visitorCfgs @@ -339,13 +337,13 @@ func (svr *Service) GracefulClose(d time.Duration) { type ConnectionManager struct { ctx context.Context - cfg *config.ClientCommonConf + cfg *v1.ClientCommonConfig muxSession *fmux.Session quicConn quic.Connection } -func NewConnectionManager(ctx context.Context, cfg *config.ClientCommonConf) *ConnectionManager { +func NewConnectionManager(ctx context.Context, cfg *v1.ClientCommonConfig) *ConnectionManager { return &ConnectionManager{ ctx: ctx, cfg: cfg, @@ -356,18 +354,18 @@ func (cm *ConnectionManager) OpenConnection() error { xl := xlog.FromContextSafe(cm.ctx) // special for quic - if strings.EqualFold(cm.cfg.Protocol, "quic") { + if strings.EqualFold(cm.cfg.Transport.Protocol, "quic") { var tlsConfig *tls.Config var err error - sn := cm.cfg.TLSServerName + sn := cm.cfg.Transport.TLS.ServerName if sn == "" { sn = cm.cfg.ServerAddr } - if cm.cfg.TLSEnable { + if lo.FromPtr(cm.cfg.Transport.TLS.Enable) { tlsConfig, err = transport.NewClientTLSConfig( - cm.cfg.TLSCertFile, - cm.cfg.TLSKeyFile, - cm.cfg.TLSTrustedCaFile, + cm.cfg.Transport.TLS.CertFile, + cm.cfg.Transport.TLS.KeyFile, + cm.cfg.Transport.TLS.TrustedCaFile, sn) } else { tlsConfig, err = transport.NewClientTLSConfig("", "", "", sn) @@ -382,9 +380,9 @@ func (cm *ConnectionManager) OpenConnection() error { cm.ctx, net.JoinHostPort(cm.cfg.ServerAddr, strconv.Itoa(cm.cfg.ServerPort)), tlsConfig, &quic.Config{ - MaxIdleTimeout: time.Duration(cm.cfg.QUICMaxIdleTimeout) * time.Second, - MaxIncomingStreams: int64(cm.cfg.QUICMaxIncomingStreams), - KeepAlivePeriod: time.Duration(cm.cfg.QUICKeepalivePeriod) * time.Second, + MaxIdleTimeout: time.Duration(cm.cfg.Transport.QUIC.MaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(cm.cfg.Transport.QUIC.MaxIncomingStreams), + KeepAlivePeriod: time.Duration(cm.cfg.Transport.QUIC.KeepalivePeriod) * time.Second, }) if err != nil { return err @@ -393,7 +391,7 @@ func (cm *ConnectionManager) OpenConnection() error { return nil } - if !cm.cfg.TCPMux { + if !lo.FromPtr(cm.cfg.Transport.TCPMux) { return nil } @@ -403,7 +401,7 @@ func (cm *ConnectionManager) OpenConnection() error { } fmuxCfg := fmux.DefaultConfig() - fmuxCfg.KeepAliveInterval = time.Duration(cm.cfg.TCPMuxKeepaliveInterval) * time.Second + fmuxCfg.KeepAliveInterval = time.Duration(cm.cfg.Transport.TCPMuxKeepaliveInterval) * time.Second fmuxCfg.LogOutput = io.Discard fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Client(conn, fmuxCfg) @@ -436,20 +434,20 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { xl := xlog.FromContextSafe(cm.ctx) var tlsConfig *tls.Config var err error - tlsEnable := cm.cfg.TLSEnable - if cm.cfg.Protocol == "wss" { + tlsEnable := lo.FromPtr(cm.cfg.Transport.TLS.Enable) + if cm.cfg.Transport.Protocol == "wss" { tlsEnable = true } if tlsEnable { - sn := cm.cfg.TLSServerName + sn := cm.cfg.Transport.TLS.ServerName if sn == "" { sn = cm.cfg.ServerAddr } tlsConfig, err = transport.NewClientTLSConfig( - cm.cfg.TLSCertFile, - cm.cfg.TLSKeyFile, - cm.cfg.TLSTrustedCaFile, + cm.cfg.Transport.TLS.CertFile, + cm.cfg.Transport.TLS.KeyFile, + cm.cfg.Transport.TLS.TrustedCaFile, sn) if err != nil { xl.Warn("fail to build tls configuration, err: %v", err) @@ -457,19 +455,19 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { } } - proxyType, addr, auth, err := libdial.ParseProxyURL(cm.cfg.HTTPProxy) + proxyType, addr, auth, err := libdial.ParseProxyURL(cm.cfg.Transport.ProxyURL) if err != nil { xl.Error("fail to parse proxy url") return nil, err } dialOptions := []libdial.DialOption{} - protocol := cm.cfg.Protocol + protocol := cm.cfg.Transport.Protocol switch protocol { case "websocket": protocol = "tcp" dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: utilnet.DialHookWebsocket(protocol, "")})) dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{ - Hook: utilnet.DialHookCustomTLSHeadByte(tlsConfig != nil, cm.cfg.DisableCustomTLSFirstByte), + Hook: utilnet.DialHookCustomTLSHeadByte(tlsConfig != nil, lo.FromPtr(cm.cfg.Transport.TLS.DisableCustomTLSFirstByte)), })) dialOptions = append(dialOptions, libdial.WithTLSConfig(tlsConfig)) case "wss": @@ -481,13 +479,13 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { dialOptions = append(dialOptions, libdial.WithTLSConfig(tlsConfig)) } - if cm.cfg.ConnectServerLocalIP != "" { - dialOptions = append(dialOptions, libdial.WithLocalAddr(cm.cfg.ConnectServerLocalIP)) + if cm.cfg.Transport.ConnectServerLocalIP != "" { + dialOptions = append(dialOptions, libdial.WithLocalAddr(cm.cfg.Transport.ConnectServerLocalIP)) } dialOptions = append(dialOptions, libdial.WithProtocol(protocol), - libdial.WithTimeout(time.Duration(cm.cfg.DialServerTimeout)*time.Second), - libdial.WithKeepAlive(time.Duration(cm.cfg.DialServerKeepAlive)*time.Second), + libdial.WithTimeout(time.Duration(cm.cfg.Transport.DialServerTimeout)*time.Second), + libdial.WithKeepAlive(time.Duration(cm.cfg.Transport.DialServerKeepAlive)*time.Second), libdial.WithProxy(proxyType, addr), libdial.WithProxyAuth(auth), ) diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 56d55055bf7..58433879492 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -22,7 +22,7 @@ import ( libio "github.com/fatedier/golib/io" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/xlog" @@ -31,7 +31,7 @@ import ( type STCPVisitor struct { *BaseVisitor - cfg *config.STCPVisitorConf + cfg *v1.STCPVisitorConfig } func (sv *STCPVisitor) Run() (err error) { @@ -90,10 +90,10 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { newVisitorConnMsg := &msg.NewVisitorConn{ RunID: sv.helper.RunID(), ProxyName: sv.cfg.ServerName, - SignKey: util.GetAuthKey(sv.cfg.Sk, now), + SignKey: util.GetAuthKey(sv.cfg.SecretKey, now), Timestamp: now, - UseEncryption: sv.cfg.UseEncryption, - UseCompression: sv.cfg.UseCompression, + UseEncryption: sv.cfg.Transport.UseEncryption, + UseCompression: sv.cfg.Transport.UseCompression, } err = msg.WriteMsg(visitorConn, newVisitorConnMsg) if err != nil { @@ -117,15 +117,15 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { var remote io.ReadWriteCloser remote = visitorConn - if sv.cfg.UseEncryption { - remote, err = libio.WithEncryption(remote, []byte(sv.cfg.Sk)) + if sv.cfg.Transport.UseEncryption { + remote, err = libio.WithEncryption(remote, []byte(sv.cfg.SecretKey)) if err != nil { xl.Error("create encryption stream error: %v", err) return } } - if sv.cfg.UseCompression { + if sv.cfg.Transport.UseCompression { var recycleFn func() remote, recycleFn = libio.WithCompressionFromPool(remote) defer recycleFn() diff --git a/client/visitor/sudp.go b/client/visitor/sudp.go index 5b2d5177937..159f46ee074 100644 --- a/client/visitor/sudp.go +++ b/client/visitor/sudp.go @@ -25,7 +25,7 @@ import ( "github.com/fatedier/golib/errors" libio "github.com/fatedier/golib/io" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" utilnet "github.com/fatedier/frp/pkg/util/net" @@ -42,7 +42,7 @@ type SUDPVisitor struct { readCh chan *msg.UDPPacket sendCh chan *msg.UDPPacket - cfg *config.SUDPVisitorConf + cfg *v1.SUDPVisitorConfig } // SUDP Run start listen a udp port @@ -208,10 +208,10 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { newVisitorConnMsg := &msg.NewVisitorConn{ RunID: sv.helper.RunID(), ProxyName: sv.cfg.ServerName, - SignKey: util.GetAuthKey(sv.cfg.Sk, now), + SignKey: util.GetAuthKey(sv.cfg.SecretKey, now), Timestamp: now, - UseEncryption: sv.cfg.UseEncryption, - UseCompression: sv.cfg.UseCompression, + UseEncryption: sv.cfg.Transport.UseEncryption, + UseCompression: sv.cfg.Transport.UseCompression, } err = msg.WriteMsg(visitorConn, newVisitorConnMsg) if err != nil { @@ -232,14 +232,14 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { var remote io.ReadWriteCloser remote = visitorConn - if sv.cfg.UseEncryption { - remote, err = libio.WithEncryption(remote, []byte(sv.cfg.Sk)) + if sv.cfg.Transport.UseEncryption { + remote, err = libio.WithEncryption(remote, []byte(sv.cfg.SecretKey)) if err != nil { xl.Error("create encryption stream error: %v", err) return nil, err } } - if sv.cfg.UseCompression { + if sv.cfg.Transport.UseCompression { remote = libio.WithCompression(remote) } return utilnet.WrapReadWriteCloserToConn(remote, visitorConn), nil diff --git a/client/visitor/visitor.go b/client/visitor/visitor.go index 7020df63997..dcd1f7b3047 100644 --- a/client/visitor/visitor.go +++ b/client/visitor/visitor.go @@ -19,7 +19,7 @@ import ( "net" "sync" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/transport" utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" @@ -47,11 +47,11 @@ type Visitor interface { func NewVisitor( ctx context.Context, - cfg config.VisitorConf, - clientCfg config.ClientCommonConf, + cfg v1.VisitorConfigurer, + clientCfg *v1.ClientCommonConfig, helper Helper, ) (visitor Visitor) { - xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseConfig().ProxyName) + xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseConfig().Name) baseVisitor := BaseVisitor{ clientCfg: clientCfg, helper: helper, @@ -59,18 +59,18 @@ func NewVisitor( internalLn: utilnet.NewInternalListener(), } switch cfg := cfg.(type) { - case *config.STCPVisitorConf: + case *v1.STCPVisitorConfig: visitor = &STCPVisitor{ BaseVisitor: &baseVisitor, cfg: cfg, } - case *config.XTCPVisitorConf: + case *v1.XTCPVisitorConfig: visitor = &XTCPVisitor{ BaseVisitor: &baseVisitor, cfg: cfg, startTunnelCh: make(chan struct{}), } - case *config.SUDPVisitorConf: + case *v1.SUDPVisitorConfig: visitor = &SUDPVisitor{ BaseVisitor: &baseVisitor, cfg: cfg, @@ -81,7 +81,7 @@ func NewVisitor( } type BaseVisitor struct { - clientCfg config.ClientCommonConf + clientCfg *v1.ClientCommonConfig helper Helper l net.Listener internalLn *utilnet.InternalListener diff --git a/client/visitor/visitor_manager.go b/client/visitor/visitor_manager.go index 344101aeb64..4b235cdb113 100644 --- a/client/visitor/visitor_manager.go +++ b/client/visitor/visitor_manager.go @@ -22,14 +22,16 @@ import ( "sync" "time" - "github.com/fatedier/frp/pkg/config" + "github.com/samber/lo" + + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" ) type Manager struct { - clientCfg config.ClientCommonConf - cfgs map[string]config.VisitorConf + clientCfg *v1.ClientCommonConfig + cfgs map[string]v1.VisitorConfigurer visitors map[string]Visitor helper Helper @@ -44,13 +46,13 @@ type Manager struct { func NewManager( ctx context.Context, runID string, - clientCfg config.ClientCommonConf, + clientCfg *v1.ClientCommonConfig, connectServer func() (net.Conn, error), msgTransporter transport.MessageTransporter, ) *Manager { m := &Manager{ clientCfg: clientCfg, - cfgs: make(map[string]config.VisitorConf), + cfgs: make(map[string]v1.VisitorConfigurer), visitors: make(map[string]Visitor), checkInterval: 10 * time.Second, ctx: ctx, @@ -79,7 +81,7 @@ func (vm *Manager) Run() { case <-ticker.C: vm.mu.Lock() for _, cfg := range vm.cfgs { - name := cfg.GetBaseConfig().ProxyName + name := cfg.GetBaseConfig().Name if _, exist := vm.visitors[name]; !exist { xl.Info("try to start visitor [%s]", name) _ = vm.startVisitor(cfg) @@ -104,9 +106,9 @@ func (vm *Manager) Close() { } // Hold lock before calling this function. -func (vm *Manager) startVisitor(cfg config.VisitorConf) (err error) { +func (vm *Manager) startVisitor(cfg v1.VisitorConfigurer) (err error) { xl := xlog.FromContextSafe(vm.ctx) - name := cfg.GetBaseConfig().ProxyName + name := cfg.GetBaseConfig().Name visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.helper) err = visitor.Run() if err != nil { @@ -118,15 +120,18 @@ func (vm *Manager) startVisitor(cfg config.VisitorConf) (err error) { return } -func (vm *Manager) Reload(cfgs map[string]config.VisitorConf) { +func (vm *Manager) Reload(cfgs []v1.VisitorConfigurer) { xl := xlog.FromContextSafe(vm.ctx) + cfgsMap := lo.KeyBy(cfgs, func(c v1.VisitorConfigurer) string { + return c.GetBaseConfig().Name + }) vm.mu.Lock() defer vm.mu.Unlock() delNames := make([]string, 0) for name, oldCfg := range vm.cfgs { del := false - cfg, ok := cfgs[name] + cfg, ok := cfgsMap[name] if !ok || !reflect.DeepEqual(oldCfg, cfg) { del = true } @@ -145,7 +150,8 @@ func (vm *Manager) Reload(cfgs map[string]config.VisitorConf) { } addNames := make([]string, 0) - for name, cfg := range cfgs { + for _, cfg := range cfgs { + name := cfg.GetBaseConfig().Name if _, ok := vm.cfgs[name]; !ok { vm.cfgs[name] = cfg addNames = append(addNames, name) diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index dc5b807f768..c180621c29e 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -29,7 +29,7 @@ import ( quic "github.com/quic-go/quic-go" "golang.org/x/time/rate" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/nathole" "github.com/fatedier/frp/pkg/transport" @@ -47,7 +47,7 @@ type XTCPVisitor struct { retryLimiter *rate.Limiter cancel context.CancelFunc - cfg *config.XTCPVisitorConf + cfg *v1.XTCPVisitorConfig } func (sv *XTCPVisitor) Run() (err error) { @@ -56,7 +56,7 @@ func (sv *XTCPVisitor) Run() (err error) { if sv.cfg.Protocol == "kcp" { sv.session = NewKCPTunnelSession() } else { - sv.session = NewQUICTunnelSession(&sv.clientCfg) + sv.session = NewQUICTunnelSession(sv.clientCfg) } if sv.cfg.BindPort > 0 { @@ -192,14 +192,14 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } var muxConnRWCloser io.ReadWriteCloser = tunnelConn - if sv.cfg.UseEncryption { - muxConnRWCloser, err = libio.WithEncryption(muxConnRWCloser, []byte(sv.cfg.Sk)) + if sv.cfg.Transport.UseEncryption { + muxConnRWCloser, err = libio.WithEncryption(muxConnRWCloser, []byte(sv.cfg.SecretKey)) if err != nil { xl.Error("create encryption stream error: %v", err) return } } - if sv.cfg.UseCompression { + if sv.cfg.Transport.UseCompression { var recycleFn func() muxConnRWCloser, recycleFn = libio.WithCompressionFromPool(muxConnRWCloser) defer recycleFn() @@ -292,7 +292,7 @@ func (sv *XTCPVisitor) makeNatHole() { TransactionID: transactionID, ProxyName: sv.cfg.ServerName, Protocol: sv.cfg.Protocol, - SignKey: util.GetAuthKey(sv.cfg.Sk, now), + SignKey: util.GetAuthKey(sv.cfg.SecretKey, now), Timestamp: now, MappedAddrs: prepareResult.Addrs, AssistedAddrs: prepareResult.AssistedAddrs, @@ -310,7 +310,7 @@ func (sv *XTCPVisitor) makeNatHole() { natHoleRespMsg.Sid, natHoleRespMsg.Protocol, natHoleRespMsg.CandidateAddrs, natHoleRespMsg.AssistedAddrs, natHoleRespMsg.DetectBehavior) - newListenConn, raddr, err := nathole.MakeHole(sv.ctx, listenConn, natHoleRespMsg, []byte(sv.cfg.Sk)) + newListenConn, raddr, err := nathole.MakeHole(sv.ctx, listenConn, natHoleRespMsg, []byte(sv.cfg.SecretKey)) if err != nil { listenConn.Close() xl.Warn("make hole error: %v", err) @@ -398,10 +398,10 @@ type QUICTunnelSession struct { listenConn *net.UDPConn mu sync.RWMutex - clientCfg *config.ClientCommonConf + clientCfg *v1.ClientCommonConfig } -func NewQUICTunnelSession(clientCfg *config.ClientCommonConf) TunnelSession { +func NewQUICTunnelSession(clientCfg *v1.ClientCommonConfig) TunnelSession { return &QUICTunnelSession{ clientCfg: clientCfg, } @@ -415,9 +415,9 @@ func (qs *QUICTunnelSession) Init(listenConn *net.UDPConn, raddr *net.UDPAddr) e tlsConfig.NextProtos = []string{"frp"} quicConn, err := quic.Dial(context.Background(), listenConn, raddr, tlsConfig, &quic.Config{ - MaxIdleTimeout: time.Duration(qs.clientCfg.QUICMaxIdleTimeout) * time.Second, - MaxIncomingStreams: int64(qs.clientCfg.QUICMaxIncomingStreams), - KeepAlivePeriod: time.Duration(qs.clientCfg.QUICKeepalivePeriod) * time.Second, + MaxIdleTimeout: time.Duration(qs.clientCfg.Transport.QUIC.MaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(qs.clientCfg.Transport.QUIC.MaxIncomingStreams), + KeepAlivePeriod: time.Duration(qs.clientCfg.Transport.QUIC.KeepalivePeriod) * time.Second, }) if err != nil { return fmt.Errorf("dial quic error: %v", err) diff --git a/cmd/frpc/sub/http.go b/cmd/frpc/sub/http.go index 1d152585360..55c45b70bed 100644 --- a/cmd/frpc/sub/http.go +++ b/cmd/frpc/sub/http.go @@ -21,7 +21,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -40,7 +42,7 @@ func init() { httpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") httpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") httpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - httpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + httpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(httpCmd) } @@ -55,40 +57,36 @@ var httpCmd = &cobra.Command{ os.Exit(1) } - cfg := &config.HTTPProxyConf{} + cfg := &v1.HTTPProxyConfig{} var prefix string if user != "" { prefix = user + "." } - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.HTTPProxy + cfg.Name = prefix + proxyName + cfg.Type = consts.HTTPProxy cfg.LocalIP = localIP cfg.LocalPort = localPort cfg.CustomDomains = strings.Split(customDomains, ",") cfg.SubDomain = subDomain cfg.Locations = strings.Split(locations, ",") cfg.HTTPUser = httpUser - cfg.HTTPPwd = httpPwd + cfg.HTTPPassword = httpPwd cfg.HostHeaderRewrite = hostHeaderRewrite - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - proxyConfs := map[string]config.ProxyConf{ - cfg.ProxyName: cfg, - } - err = startService(clientCfg, proxyConfs, nil, "") + err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/https.go b/cmd/frpc/sub/https.go index 2eb6ed6b40a..d6bf4a6e3a4 100644 --- a/cmd/frpc/sub/https.go +++ b/cmd/frpc/sub/https.go @@ -21,7 +21,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -36,7 +38,7 @@ func init() { httpsCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") httpsCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") httpsCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - httpsCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + httpsCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(httpsCmd) } @@ -51,36 +53,32 @@ var httpsCmd = &cobra.Command{ os.Exit(1) } - cfg := &config.HTTPSProxyConf{} + cfg := &v1.HTTPSProxyConfig{} var prefix string if user != "" { prefix = user + "." } - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.HTTPSProxy + cfg.Name = prefix + proxyName + cfg.Type = consts.HTTPSProxy cfg.LocalIP = localIP cfg.LocalPort = localPort cfg.CustomDomains = strings.Split(customDomains, ",") cfg.SubDomain = subDomain - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - proxyConfs := map[string]config.ProxyConf{ - cfg.ProxyName: cfg, - } - err = startService(clientCfg, proxyConfs, nil, "") + err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go index 459f8d63339..92977cd2221 100644 --- a/cmd/frpc/sub/nathole.go +++ b/cmd/frpc/sub/nathole.go @@ -21,6 +21,7 @@ import ( "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/nathole" ) @@ -49,9 +50,9 @@ var natholeDiscoveryCmd = &cobra.Command{ Short: "Discover nathole information from stun server", RunE: func(cmd *cobra.Command, args []string) error { // ignore error here, because we can use command line pameters - cfg, _, _, err := config.ParseClientConfig(cfgFile) + cfg, _, _, _, err := config.LoadClientConfig(cfgFile) if err != nil { - cfg = config.GetDefaultClientConf() + cfg = &v1.ClientCommonConfig{} } if natHoleSTUNServer != "" { cfg.NatHoleSTUNServer = natHoleSTUNServer @@ -89,7 +90,7 @@ var natholeDiscoveryCmd = &cobra.Command{ }, } -func validateForNatHoleDiscovery(cfg config.ClientCommonConf) error { +func validateForNatHoleDiscovery(cfg *v1.ClientCommonConfig) error { if cfg.NatHoleSTUNServer == "" { return fmt.Errorf("nat_hole_stun_server can not be empty") } diff --git a/cmd/frpc/sub/reload.go b/cmd/frpc/sub/reload.go index 258317e7d6a..a01a34f37de 100644 --- a/cmd/frpc/sub/reload.go +++ b/cmd/frpc/sub/reload.go @@ -25,6 +25,7 @@ import ( "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" ) func init() { @@ -35,7 +36,7 @@ var reloadCmd = &cobra.Command{ Use: "reload", Short: "Hot-Reload frpc configuration", RunE: func(cmd *cobra.Command, args []string) error { - cfg, _, _, err := config.ParseClientConfig(cfgFile) + cfg, _, _, _, err := config.LoadClientConfig(cfgFile) if err != nil { fmt.Println(err) os.Exit(1) @@ -51,19 +52,20 @@ var reloadCmd = &cobra.Command{ }, } -func reload(clientCfg config.ClientCommonConf) error { - if clientCfg.AdminPort == 0 { - return fmt.Errorf("admin_port shoud be set if you want to use reload feature") +func reload(clientCfg *v1.ClientCommonConfig) error { + if clientCfg.WebServer.Port == 0 { + return fmt.Errorf("the port of web server shoud be set if you want to use reload feature") } req, err := http.NewRequest("GET", "http://"+ - clientCfg.AdminAddr+":"+fmt.Sprintf("%d", clientCfg.AdminPort)+"/api/reload", nil) + clientCfg.WebServer.Addr+":"+ + fmt.Sprintf("%d", clientCfg.WebServer.Port)+"/api/reload", nil) if err != nil { return err } - authStr := "Basic " + base64.StdEncoding.EncodeToString([]byte(clientCfg.AdminUser+":"+ - clientCfg.AdminPwd)) + authStr := "Basic " + base64.StdEncoding.EncodeToString( + []byte(clientCfg.WebServer.User+":"+clientCfg.WebServer.Password)) req.Header.Add("Authorization", authStr) resp, err := http.DefaultClient.Do(req) diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 783514b99d0..01c73c01762 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -27,20 +27,17 @@ import ( "syscall" "time" + "github.com/samber/lo" "github.com/spf13/cobra" "github.com/fatedier/frp/client" - "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" ) -const ( - CfgFileTypeIni = iota - CfgFileTypeCmd -) - var ( cfgFile string cfgDir string @@ -160,78 +157,89 @@ func handleTermSignal(svr *client.Service) { svr.GracefulClose(500 * time.Millisecond) } -func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) { - cfg = config.GetDefaultClientConf() +func parseClientCommonCfgFromCmd() (*v1.ClientCommonConfig, error) { + cfg := &v1.ClientCommonConfig{} ipStr, portStr, err := net.SplitHostPort(serverAddr) if err != nil { - err = fmt.Errorf("invalid server_addr: %v", err) - return + return nil, fmt.Errorf("invalid server_addr: %v", err) } cfg.ServerAddr = ipStr cfg.ServerPort, err = strconv.Atoi(portStr) if err != nil { - err = fmt.Errorf("invalid server_addr: %v", err) - return + return nil, fmt.Errorf("invalid server_addr: %v", err) } cfg.User = user - cfg.Protocol = protocol - cfg.LogLevel = logLevel - cfg.LogFile = logFile - cfg.LogMaxDays = int64(logMaxDays) - cfg.DisableLogColor = disableLogColor + cfg.Transport.Protocol = protocol + cfg.Log.Level = logLevel + cfg.Log.To = logFile + cfg.Log.MaxDays = int64(logMaxDays) + cfg.Log.DisablePrintColor = disableLogColor cfg.DNSServer = dnsServer // Only token authentication is supported in cmd mode - cfg.ClientConfig = auth.GetDefaultClientConf() - cfg.Token = token - cfg.TLSEnable = tlsEnable - cfg.TLSServerName = tlsServerName + cfg.Auth.Token = token + cfg.Transport.TLS.Enable = lo.ToPtr(tlsEnable) + cfg.Transport.TLS.ServerName = tlsServerName cfg.Complete() - if err = cfg.Validate(); err != nil { - err = fmt.Errorf("parse config error: %v", err) - return + + err, warning := validation.ValidateClientCommonConfig(cfg) + if warning != nil { + fmt.Printf("WARNING: %v\n", warning) } - return + if err != nil { + return nil, fmt.Errorf("parse config error: %v", err) + } + return cfg, nil } func runClient(cfgFilePath string) error { - cfg, pxyCfgs, visitorCfgs, err := config.ParseClientConfig(cfgFilePath) + cfg, pxyCfgs, visitorCfgs, isLegacyFormat, err := config.LoadClientConfig(cfgFilePath) if err != nil { fmt.Println(err) return err } + if isLegacyFormat { + fmt.Printf("WARNING: ini format is deprecated and the support will be removed in the future, " + + "please use yaml/json/toml format instead!\n") + } + + warning, err := validation.ValidateAllClientConfig(cfg, pxyCfgs, visitorCfgs) + if warning != nil { + fmt.Printf("WARNING: %v\n", warning) + } + if err != nil { + return err + } return startService(cfg, pxyCfgs, visitorCfgs, cfgFilePath) } func startService( - cfg config.ClientCommonConf, - pxyCfgs map[string]config.ProxyConf, - visitorCfgs map[string]config.VisitorConf, + cfg *v1.ClientCommonConfig, + pxyCfgs []v1.ProxyConfigurer, + visitorCfgs []v1.VisitorConfigurer, cfgFile string, -) (err error) { - log.InitLog(cfg.LogWay, cfg.LogFile, cfg.LogLevel, - cfg.LogMaxDays, cfg.DisableLogColor) +) error { + log.InitLog(cfg.Log.To, cfg.Log.Level, cfg.Log.MaxDays, cfg.Log.DisablePrintColor) if cfgFile != "" { log.Info("start frpc service for config file [%s]", cfgFile) defer log.Info("frpc service for config file [%s] stopped", cfgFile) } - svr, errRet := client.NewService(cfg, pxyCfgs, visitorCfgs, cfgFile) - if errRet != nil { - err = errRet - return + svr, err := client.NewService(cfg, pxyCfgs, visitorCfgs, cfgFile) + if err != nil { + return err } - shouldGracefulClose := cfg.Protocol == "kcp" || cfg.Protocol == "quic" + shouldGracefulClose := cfg.Transport.Protocol == "kcp" || cfg.Transport.Protocol == "quic" // Capture the exit signal if we use kcp or quic. if shouldGracefulClose { go handleTermSignal(svr) } _ = svr.Run(context.Background()) - return + return nil } diff --git a/cmd/frpc/sub/status.go b/cmd/frpc/sub/status.go index db7471e380a..1db4a956b18 100644 --- a/cmd/frpc/sub/status.go +++ b/cmd/frpc/sub/status.go @@ -28,6 +28,7 @@ import ( "github.com/fatedier/frp/client" "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" ) func init() { @@ -38,7 +39,7 @@ var statusCmd = &cobra.Command{ Use: "status", Short: "Overview of all proxies status", RunE: func(cmd *cobra.Command, args []string) error { - cfg, _, _, err := config.ParseClientConfig(cfgFile) + cfg, _, _, _, err := config.LoadClientConfig(cfgFile) if err != nil { fmt.Println(err) os.Exit(1) @@ -52,19 +53,19 @@ var statusCmd = &cobra.Command{ }, } -func status(clientCfg config.ClientCommonConf) error { - if clientCfg.AdminPort == 0 { - return fmt.Errorf("admin_port shoud be set if you want to get proxy status") +func status(clientCfg *v1.ClientCommonConfig) error { + if clientCfg.WebServer.Port == 0 { + return fmt.Errorf("the port of web server shoud be set if you want to get proxy status") } req, err := http.NewRequest("GET", "http://"+ - clientCfg.AdminAddr+":"+fmt.Sprintf("%d", clientCfg.AdminPort)+"/api/status", nil) + clientCfg.WebServer.Addr+":"+fmt.Sprintf("%d", clientCfg.WebServer.Port)+"/api/status", nil) if err != nil { return err } - authStr := "Basic " + base64.StdEncoding.EncodeToString([]byte(clientCfg.AdminUser+":"+ - clientCfg.AdminPwd)) + authStr := "Basic " + base64.StdEncoding.EncodeToString( + []byte(clientCfg.WebServer.User+":"+clientCfg.WebServer.Password)) req.Header.Add("Authorization", authStr) resp, err := http.DefaultClient.Do(req) diff --git a/cmd/frpc/sub/stcp.go b/cmd/frpc/sub/stcp.go index 24aa955a24c..47ad3628663 100644 --- a/cmd/frpc/sub/stcp.go +++ b/cmd/frpc/sub/stcp.go @@ -20,7 +20,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -38,7 +40,7 @@ func init() { stcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") stcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") stcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - stcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + stcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(stcpCmd) } @@ -53,8 +55,8 @@ var stcpCmd = &cobra.Command{ os.Exit(1) } - proxyConfs := make(map[string]config.ProxyConf) - visitorConfs := make(map[string]config.VisitorConf) + pxyCfgs := make([]v1.ProxyConfigurer, 0) + visitorCfgs := make([]v1.VisitorConfigurer, 0) var prefix string if user != "" { @@ -63,50 +65,46 @@ var stcpCmd = &cobra.Command{ switch role { case "server": - cfg := &config.STCPProxyConf{} - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.STCPProxy - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.Role = role - cfg.Sk = sk + cfg := &v1.STCPProxyConfig{} + cfg.Name = prefix + proxyName + cfg.Type = consts.STCPProxy + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Secretkey = sk cfg.LocalIP = localIP cfg.LocalPort = localPort - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - proxyConfs[cfg.ProxyName] = cfg + pxyCfgs = append(pxyCfgs, cfg) case "visitor": - cfg := &config.STCPVisitorConf{} - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.STCPProxy - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.Role = role - cfg.Sk = sk + cfg := &v1.STCPVisitorConfig{} + cfg.Name = prefix + proxyName + cfg.Type = consts.STCPProxy + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.SecretKey = sk cfg.ServerName = serverName cfg.BindAddr = bindAddr cfg.BindPort = bindPort - err = cfg.Validate() - if err != nil { + if err := validation.ValidateVisitorConfigurer(cfg); err != nil { fmt.Println(err) os.Exit(1) } - visitorConfs[cfg.ProxyName] = cfg + visitorCfgs = append(visitorCfgs, cfg) default: fmt.Println("invalid role") os.Exit(1) } - err = startService(clientCfg, proxyConfs, visitorConfs, "") + err = startService(clientCfg, pxyCfgs, visitorCfgs, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/stop.go b/cmd/frpc/sub/stop.go index 6c8f5f0aea3..c0ec5da5e91 100644 --- a/cmd/frpc/sub/stop.go +++ b/cmd/frpc/sub/stop.go @@ -25,6 +25,7 @@ import ( "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" ) func init() { @@ -35,7 +36,7 @@ var stopCmd = &cobra.Command{ Use: "stop", Short: "Stop the running frpc", RunE: func(cmd *cobra.Command, args []string) error { - cfg, _, _, err := config.ParseClientConfig(cfgFile) + cfg, _, _, _, err := config.LoadClientConfig(cfgFile) if err != nil { fmt.Println(err) os.Exit(1) @@ -51,19 +52,20 @@ var stopCmd = &cobra.Command{ }, } -func stopClient(clientCfg config.ClientCommonConf) error { - if clientCfg.AdminPort == 0 { - return fmt.Errorf("admin_port shoud be set if you want to use stop feature") +func stopClient(clientCfg *v1.ClientCommonConfig) error { + if clientCfg.WebServer.Port == 0 { + return fmt.Errorf("the port of web server shoud be set if you want to use stop feature") } req, err := http.NewRequest("POST", "http://"+ - clientCfg.AdminAddr+":"+fmt.Sprintf("%d", clientCfg.AdminPort)+"/api/stop", nil) + clientCfg.WebServer.Addr+":"+ + fmt.Sprintf("%d", clientCfg.WebServer.Port)+"/api/stop", nil) if err != nil { return err } - authStr := "Basic " + base64.StdEncoding.EncodeToString([]byte(clientCfg.AdminUser+":"+ - clientCfg.AdminPwd)) + authStr := "Basic " + base64.StdEncoding.EncodeToString( + []byte(clientCfg.WebServer.User+":"+clientCfg.WebServer.Password)) req.Header.Add("Authorization", authStr) resp, err := http.DefaultClient.Do(req) diff --git a/cmd/frpc/sub/sudp.go b/cmd/frpc/sub/sudp.go index 553e42528dc..28f17ee6019 100644 --- a/cmd/frpc/sub/sudp.go +++ b/cmd/frpc/sub/sudp.go @@ -20,7 +20,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -38,7 +40,7 @@ func init() { sudpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") sudpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") sudpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - sudpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + sudpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(sudpCmd) } @@ -53,8 +55,8 @@ var sudpCmd = &cobra.Command{ os.Exit(1) } - proxyConfs := make(map[string]config.ProxyConf) - visitorConfs := make(map[string]config.VisitorConf) + pxyCfgs := make([]v1.ProxyConfigurer, 0) + visitorCfgs := make([]v1.VisitorConfigurer, 0) var prefix string if user != "" { @@ -63,50 +65,46 @@ var sudpCmd = &cobra.Command{ switch role { case "server": - cfg := &config.SUDPProxyConf{} - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.SUDPProxy - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.Role = role - cfg.Sk = sk + cfg := &v1.SUDPProxyConfig{} + cfg.Name = prefix + proxyName + cfg.Type = consts.SUDPProxy + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Secretkey = sk cfg.LocalIP = localIP cfg.LocalPort = localPort - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - proxyConfs[cfg.ProxyName] = cfg + pxyCfgs = append(pxyCfgs, cfg) case "visitor": - cfg := &config.SUDPVisitorConf{} - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.SUDPProxy - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.Role = role - cfg.Sk = sk + cfg := &v1.SUDPVisitorConfig{} + cfg.Name = prefix + proxyName + cfg.Type = consts.SUDPProxy + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.SecretKey = sk cfg.ServerName = serverName cfg.BindAddr = bindAddr cfg.BindPort = bindPort - err = cfg.Validate() - if err != nil { + if err := validation.ValidateVisitorConfigurer(cfg); err != nil { fmt.Println(err) os.Exit(1) } - visitorConfs[cfg.ProxyName] = cfg + visitorCfgs = append(visitorCfgs, cfg) default: fmt.Println("invalid role") os.Exit(1) } - err = startService(clientCfg, proxyConfs, visitorConfs, "") + err = startService(clientCfg, pxyCfgs, visitorCfgs, "") if err != nil { os.Exit(1) } diff --git a/cmd/frpc/sub/tcp.go b/cmd/frpc/sub/tcp.go index 2da9ad61be1..1a65a2a9da3 100644 --- a/cmd/frpc/sub/tcp.go +++ b/cmd/frpc/sub/tcp.go @@ -20,7 +20,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -34,7 +36,7 @@ func init() { tcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") tcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") tcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - tcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + tcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(tcpCmd) } @@ -49,35 +51,30 @@ var tcpCmd = &cobra.Command{ os.Exit(1) } - cfg := &config.TCPProxyConf{} + cfg := &v1.TCPProxyConfig{} var prefix string if user != "" { prefix = user + "." } - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.TCPProxy + cfg.Name = prefix + proxyName + cfg.Type = consts.TCPProxy cfg.LocalIP = localIP cfg.LocalPort = localPort cfg.RemotePort = remotePort - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - - proxyConfs := map[string]config.ProxyConf{ - cfg.ProxyName: cfg, - } - err = startService(clientCfg, proxyConfs, nil, "") + err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/tcpmux.go b/cmd/frpc/sub/tcpmux.go index 4b993f9cec1..a217591b316 100644 --- a/cmd/frpc/sub/tcpmux.go +++ b/cmd/frpc/sub/tcpmux.go @@ -21,7 +21,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -37,7 +39,7 @@ func init() { tcpMuxCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") tcpMuxCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") tcpMuxCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - tcpMuxCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + tcpMuxCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(tcpMuxCmd) } @@ -52,37 +54,33 @@ var tcpMuxCmd = &cobra.Command{ os.Exit(1) } - cfg := &config.TCPMuxProxyConf{} + cfg := &v1.TCPMuxProxyConfig{} var prefix string if user != "" { prefix = user + "." } - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.TCPMuxProxy + cfg.Name = prefix + proxyName + cfg.Type = consts.TCPMuxProxy cfg.LocalIP = localIP cfg.LocalPort = localPort cfg.CustomDomains = strings.Split(customDomains, ",") cfg.SubDomain = subDomain cfg.Multiplexer = multiplexer - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - proxyConfs := map[string]config.ProxyConf{ - cfg.ProxyName: cfg, - } - err = startService(clientCfg, proxyConfs, nil, "") + err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/udp.go b/cmd/frpc/sub/udp.go index 9a4803dc94d..e617070a802 100644 --- a/cmd/frpc/sub/udp.go +++ b/cmd/frpc/sub/udp.go @@ -20,7 +20,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -34,7 +36,7 @@ func init() { udpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") udpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") udpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - udpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + udpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(udpCmd) } @@ -49,35 +51,31 @@ var udpCmd = &cobra.Command{ os.Exit(1) } - cfg := &config.UDPProxyConf{} + cfg := &v1.UDPProxyConfig{} var prefix string if user != "" { prefix = user + "." } - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.UDPProxy + cfg.Name = prefix + proxyName + cfg.Type = consts.UDPProxy cfg.LocalIP = localIP cfg.LocalPort = localPort cfg.RemotePort = remotePort - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - proxyConfs := map[string]config.ProxyConf{ - cfg.ProxyName: cfg, - } - err = startService(clientCfg, proxyConfs, nil, "") + err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/verify.go b/cmd/frpc/sub/verify.go index c86b1e82b9c..a84f54f2a8f 100644 --- a/cmd/frpc/sub/verify.go +++ b/cmd/frpc/sub/verify.go @@ -21,6 +21,7 @@ import ( "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/v1/validation" ) func init() { @@ -31,7 +32,20 @@ var verifyCmd = &cobra.Command{ Use: "verify", Short: "Verify that the configures is valid", RunE: func(cmd *cobra.Command, args []string) error { - _, _, _, err := config.ParseClientConfig(cfgFile) + if cfgFile == "" { + fmt.Println("frpc: the configuration file is not specified") + return nil + } + + cliCfg, pxyCfgs, visitorCfgs, _, err := config.LoadClientConfig(cfgFile) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + warning, err := validation.ValidateAllClientConfig(cliCfg, pxyCfgs, visitorCfgs) + if warning != nil { + fmt.Printf("WARNING: %v\n", warning) + } if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/xtcp.go b/cmd/frpc/sub/xtcp.go index 60483afa709..a4bdd8031b8 100644 --- a/cmd/frpc/sub/xtcp.go +++ b/cmd/frpc/sub/xtcp.go @@ -20,7 +20,9 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/consts" ) @@ -38,7 +40,7 @@ func init() { xtcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") xtcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") xtcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - xtcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", config.BandwidthLimitModeClient, "bandwidth limit mode") + xtcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") rootCmd.AddCommand(xtcpCmd) } @@ -53,8 +55,8 @@ var xtcpCmd = &cobra.Command{ os.Exit(1) } - proxyConfs := make(map[string]config.ProxyConf) - visitorConfs := make(map[string]config.VisitorConf) + pxyCfgs := make([]v1.ProxyConfigurer, 0) + visitorCfgs := make([]v1.VisitorConfigurer, 0) var prefix string if user != "" { @@ -63,50 +65,48 @@ var xtcpCmd = &cobra.Command{ switch role { case "server": - cfg := &config.XTCPProxyConf{} - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.XTCPProxy - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.Role = role - cfg.Sk = sk + cfg := &v1.XTCPProxyConfig{} + cfg.Name = prefix + proxyName + cfg.Type = consts.XTCPProxy + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.Secretkey = sk cfg.LocalIP = localIP cfg.LocalPort = localPort - cfg.BandwidthLimit, err = config.NewBandwidthQuantity(bandwidthLimit) + cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) if err != nil { fmt.Println(err) os.Exit(1) } - cfg.BandwidthLimitMode = bandwidthLimitMode - err = cfg.ValidateForClient() - if err != nil { + cfg.Transport.BandwidthLimitMode = bandwidthLimitMode + + if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { fmt.Println(err) os.Exit(1) } - proxyConfs[cfg.ProxyName] = cfg + pxyCfgs = append(pxyCfgs, cfg) case "visitor": - cfg := &config.XTCPVisitorConf{} - cfg.ProxyName = prefix + proxyName - cfg.ProxyType = consts.XTCPProxy - cfg.UseEncryption = useEncryption - cfg.UseCompression = useCompression - cfg.Role = role - cfg.Sk = sk + cfg := &v1.XTCPVisitorConfig{} + cfg.Name = prefix + proxyName + cfg.Type = consts.XTCPProxy + cfg.Transport.UseEncryption = useEncryption + cfg.Transport.UseCompression = useCompression + cfg.SecretKey = sk cfg.ServerName = serverName cfg.BindAddr = bindAddr cfg.BindPort = bindPort - err = cfg.Validate() - if err != nil { + + if err := validation.ValidateVisitorConfigurer(cfg); err != nil { fmt.Println(err) os.Exit(1) } - visitorConfs[cfg.ProxyName] = cfg + visitorCfgs = append(visitorCfgs, cfg) default: fmt.Println("invalid role") os.Exit(1) } - err = startService(clientCfg, proxyConfs, visitorConfs, "") + err = startService(clientCfg, pxyCfgs, visitorCfgs, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frps/main.go b/cmd/frps/main.go index 6ae5378be48..34676a2ba6b 100644 --- a/cmd/frps/main.go +++ b/cmd/frps/main.go @@ -15,9 +15,6 @@ package main import ( - "math/rand" - "time" - "github.com/fatedier/golib/crypto" _ "github.com/fatedier/frp/assets/frps" @@ -26,8 +23,5 @@ import ( func main() { crypto.DefaultSalt = "frp" - // TODO: remove this when we drop support for go1.19 - rand.Seed(time.Now().UnixNano()) - Execute() } diff --git a/cmd/frps/root.go b/cmd/frps/root.go index e1859376a9a..af94aa47d9a 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -21,19 +21,15 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/util/log" - "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/server" ) -const ( - CfgFileTypeIni = iota - CfgFileTypeCmd -) - var ( cfgFile string showVersion bool @@ -104,24 +100,35 @@ var rootCmd = &cobra.Command{ return nil } - var cfg config.ServerCommonConf - var err error + var ( + svrCfg *v1.ServerConfig + isLegacyFormat bool + err error + ) if cfgFile != "" { - var content []byte - content, err = config.GetRenderedConfFromFile(cfgFile) + svrCfg, isLegacyFormat, err = config.LoadServerConfig(cfgFile) if err != nil { return err } - cfg, err = parseServerCommonCfg(CfgFileTypeIni, content) + if isLegacyFormat { + fmt.Printf("WARNING: ini format is deprecated and the support will be removed in the future, " + + "please use yaml/json/toml format instead!\n") + } } else { - cfg, err = parseServerCommonCfg(CfgFileTypeCmd, nil) + if svrCfg, err = parseServerConfigFromCmd(); err != nil { + return err + } + } + + warning, err := validation.ValidateServerConfig(svrCfg) + if warning != nil { + fmt.Printf("WARNING: %v\n", warning) } if err != nil { return err } - err = runServer(cfg) - if err != nil { + if err := runServer(svrCfg); err != nil { fmt.Println(err) os.Exit(1) } @@ -135,26 +142,8 @@ func Execute() { } } -func parseServerCommonCfg(fileType int, source []byte) (cfg config.ServerCommonConf, err error) { - if fileType == CfgFileTypeIni { - cfg, err = config.UnmarshalServerConfFromIni(source) - } else if fileType == CfgFileTypeCmd { - cfg, err = parseServerCommonCfgFromCmd() - } - if err != nil { - return - } - cfg.Complete() - err = cfg.Validate() - if err != nil { - err = fmt.Errorf("parse config error: %v", err) - return - } - return -} - -func parseServerCommonCfgFromCmd() (cfg config.ServerCommonConf, err error) { - cfg = config.GetDefaultServerConf() +func parseServerConfigFromCmd() (*v1.ServerConfig, error) { + cfg := &v1.ServerConfig{} cfg.BindAddr = bindAddr cfg.BindPort = bindPort @@ -163,42 +152,42 @@ func parseServerCommonCfgFromCmd() (cfg config.ServerCommonConf, err error) { cfg.VhostHTTPPort = vhostHTTPPort cfg.VhostHTTPSPort = vhostHTTPSPort cfg.VhostHTTPTimeout = vhostHTTPTimeout - cfg.DashboardAddr = dashboardAddr - cfg.DashboardPort = dashboardPort - cfg.DashboardUser = dashboardUser - cfg.DashboardPwd = dashboardPwd + cfg.WebServer.Addr = dashboardAddr + cfg.WebServer.Port = dashboardPort + cfg.WebServer.User = dashboardUser + cfg.WebServer.Password = dashboardPwd cfg.EnablePrometheus = enablePrometheus - cfg.DashboardTLSCertFile = dashboardTLSCertFile - cfg.DashboardTLSKeyFile = dashboardTLSKeyFile - cfg.DashboardTLSMode = dashboardTLSMode - cfg.LogFile = logFile - cfg.LogLevel = logLevel - cfg.LogMaxDays = logMaxDays + if dashboardTLSMode { + cfg.WebServer.TLS = &v1.TLSConfig{ + CertFile: dashboardTLSCertFile, + KeyFile: dashboardTLSKeyFile, + } + } + cfg.Log.To = logFile + cfg.Log.Level = logLevel + cfg.Log.MaxDays = logMaxDays + cfg.Log.DisablePrintColor = disableLogColor cfg.SubDomainHost = subDomainHost - cfg.TLSOnly = tlsOnly + cfg.TLS.Force = tlsOnly + cfg.MaxPortsPerClient = maxPortsPerClient // Only token authentication is supported in cmd mode - cfg.ServerConfig = auth.GetDefaultServerConf() - cfg.Token = token - if len(allowPorts) > 0 { - // e.g. 1000-2000,2001,2002,3000-4000 - ports, errRet := util.ParseRangeNumbers(allowPorts) - if errRet != nil { - err = fmt.Errorf("parse conf error: allow_ports: %v", errRet) - return - } + cfg.Auth.Token = token - for _, port := range ports { - cfg.AllowPorts[int(port)] = struct{}{} + if len(allowPorts) > 0 { + portsRanges, err := types.NewPortsRangeSliceFromString(allowPorts) + if err != nil { + return cfg, fmt.Errorf("allow_ports format error: %v", err) } + cfg.AllowPorts = portsRanges } - cfg.MaxPortsPerClient = maxPortsPerClient - cfg.DisableLogColor = disableLogColor - return + + cfg.Complete() + return cfg, nil } -func runServer(cfg config.ServerCommonConf) (err error) { - log.InitLog(cfg.LogWay, cfg.LogFile, cfg.LogLevel, cfg.LogMaxDays, cfg.DisableLogColor) +func runServer(cfg *v1.ServerConfig) (err error) { + log.InitLog(cfg.Log.To, cfg.Log.Level, cfg.Log.MaxDays, cfg.Log.DisablePrintColor) if cfgFile != "" { log.Info("frps uses config file: %s", cfgFile) diff --git a/cmd/frps/verify.go b/cmd/frps/verify.go index 42f2ca74b08..4f0cefb18fb 100644 --- a/cmd/frps/verify.go +++ b/cmd/frps/verify.go @@ -21,6 +21,7 @@ import ( "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/v1/validation" ) func init() { @@ -32,21 +33,23 @@ var verifyCmd = &cobra.Command{ Short: "Verify that the configures is valid", RunE: func(cmd *cobra.Command, args []string) error { if cfgFile == "" { - fmt.Println("no config file is specified") + fmt.Println("frps: the configuration file is not specified") return nil } - iniContent, err := config.GetRenderedConfFromFile(cfgFile) + svrCfg, _, err := config.LoadServerConfig(cfgFile) if err != nil { fmt.Println(err) os.Exit(1) } - _, err = parseServerCommonCfg(CfgFileTypeIni, iniContent) + warning, err := validation.ValidateServerConfig(svrCfg) + if warning != nil { + fmt.Printf("WARNING: %v\n", warning) + } if err != nil { fmt.Println(err) os.Exit(1) } - fmt.Printf("frps: the configuration file %s syntax is ok\n", cfgFile) return nil }, diff --git a/go.mod b/go.mod index e9042ecf802..49e74d5739f 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,12 @@ module github.com/fatedier/frp go 1.20 require ( + github.com/BurntSushi/toml v0.3.1 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.6.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb github.com/fatedier/golib v0.1.1-0.20230725122706-dcbaee8eef40 github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible - github.com/go-playground/validator/v10 v10.14.1 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 @@ -37,11 +37,8 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/go-jose/go-jose/v3 v3.0.0 // indirect github.com/go-logr/logr v1.2.4 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect @@ -52,7 +49,6 @@ require ( github.com/klauspost/cpuid/v2 v2.0.6 // indirect github.com/klauspost/reedsolomon v1.9.15 // indirect github.com/kr/text v0.2.0 // indirect - github.com/leodido/go-urn v1.2.4 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/logging v0.2.2 // indirect @@ -76,8 +72,11 @@ require ( golang.org/x/tools v0.9.3 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.31.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/yaml v1.3.0 // indirect ) // TODO(fatedier): Temporary use the modified version, update to the official version after merging into the official repository. diff --git a/go.sum b/go.sum index d1b794c9f1f..f7ed6f4be41 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= @@ -32,19 +33,10 @@ github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1: github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= -github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/go-jose/go-jose/v3 v3.0.0 h1:s6rrhirfEP/CGIoc6p+PZAeogN2SxKav6Wp7+dyMWVo= github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= -github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -93,8 +85,6 @@ github.com/klauspost/reedsolomon v1.9.15/go.mod h1:eqPAcE7xar5CIzcdfwydOEdcmchAK github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= -github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -147,7 +137,6 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -275,6 +264,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -286,3 +277,7 @@ k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY= k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go index 894da2471c7..2a79149c32f 100644 --- a/pkg/auth/auth.go +++ b/pkg/auth/auth.go @@ -17,76 +17,26 @@ package auth import ( "fmt" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/msg" ) -type BaseConfig struct { - // AuthenticationMethod specifies what authentication method to use to - // authenticate frpc with frps. If "token" is specified - token will be - // read into login message. If "oidc" is specified - OIDC (Open ID Connect) - // token will be issued using OIDC settings. By default, this value is "token". - AuthenticationMethod string `ini:"authentication_method" json:"authentication_method"` - // AuthenticateHeartBeats specifies whether to include authentication token in - // heartbeats sent to frps. By default, this value is false. - AuthenticateHeartBeats bool `ini:"authenticate_heartbeats" json:"authenticate_heartbeats"` - // AuthenticateNewWorkConns specifies whether to include authentication token in - // new work connections sent to frps. By default, this value is false. - AuthenticateNewWorkConns bool `ini:"authenticate_new_work_conns" json:"authenticate_new_work_conns"` -} - -func getDefaultBaseConf() BaseConfig { - return BaseConfig{ - AuthenticationMethod: "token", - AuthenticateHeartBeats: false, - AuthenticateNewWorkConns: false, - } -} - -type ClientConfig struct { - BaseConfig `ini:",extends"` - OidcClientConfig `ini:",extends"` - TokenConfig `ini:",extends"` -} - -func GetDefaultClientConf() ClientConfig { - return ClientConfig{ - BaseConfig: getDefaultBaseConf(), - OidcClientConfig: getDefaultOidcClientConf(), - TokenConfig: getDefaultTokenConf(), - } -} - -type ServerConfig struct { - BaseConfig `ini:",extends"` - OidcServerConfig `ini:",extends"` - TokenConfig `ini:",extends"` -} - -func GetDefaultServerConf() ServerConfig { - return ServerConfig{ - BaseConfig: getDefaultBaseConf(), - OidcServerConfig: getDefaultOidcServerConf(), - TokenConfig: getDefaultTokenConf(), - } -} - type Setter interface { SetLogin(*msg.Login) error SetPing(*msg.Ping) error SetNewWorkConn(*msg.NewWorkConn) error } -func NewAuthSetter(cfg ClientConfig) (authProvider Setter) { - switch cfg.AuthenticationMethod { +func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter) { + switch cfg.Method { case consts.TokenAuthMethod: - authProvider = NewTokenAuth(cfg.BaseConfig, cfg.TokenConfig) + authProvider = NewTokenAuth(cfg.AdditionalAuthScopes, cfg.Token) case consts.OidcAuthMethod: - authProvider = NewOidcAuthSetter(cfg.BaseConfig, cfg.OidcClientConfig) + authProvider = NewOidcAuthSetter(cfg.AdditionalAuthScopes, cfg.OIDC) default: - panic(fmt.Sprintf("wrong authentication method: '%s'", cfg.AuthenticationMethod)) + panic(fmt.Sprintf("wrong method: '%s'", cfg.Method)) } - return authProvider } @@ -96,13 +46,12 @@ type Verifier interface { VerifyNewWorkConn(*msg.NewWorkConn) error } -func NewAuthVerifier(cfg ServerConfig) (authVerifier Verifier) { - switch cfg.AuthenticationMethod { +func NewAuthVerifier(cfg v1.AuthServerConfig) (authVerifier Verifier) { + switch cfg.Method { case consts.TokenAuthMethod: - authVerifier = NewTokenAuth(cfg.BaseConfig, cfg.TokenConfig) + authVerifier = NewTokenAuth(cfg.AdditionalAuthScopes, cfg.Token) case consts.OidcAuthMethod: - authVerifier = NewOidcAuthVerifier(cfg.BaseConfig, cfg.OidcServerConfig) + authVerifier = NewOidcAuthVerifier(cfg.AdditionalAuthScopes, cfg.OIDC) } - return authVerifier } diff --git a/pkg/auth/legacy/legacy.go b/pkg/auth/legacy/legacy.go new file mode 100644 index 00000000000..c16d38f2c91 --- /dev/null +++ b/pkg/auth/legacy/legacy.go @@ -0,0 +1,145 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package legacy + +type BaseConfig struct { + // AuthenticationMethod specifies what authentication method to use to + // authenticate frpc with frps. If "token" is specified - token will be + // read into login message. If "oidc" is specified - OIDC (Open ID Connect) + // token will be issued using OIDC settings. By default, this value is "token". + AuthenticationMethod string `ini:"authentication_method" json:"authentication_method"` + // AuthenticateHeartBeats specifies whether to include authentication token in + // heartbeats sent to frps. By default, this value is false. + AuthenticateHeartBeats bool `ini:"authenticate_heartbeats" json:"authenticate_heartbeats"` + // AuthenticateNewWorkConns specifies whether to include authentication token in + // new work connections sent to frps. By default, this value is false. + AuthenticateNewWorkConns bool `ini:"authenticate_new_work_conns" json:"authenticate_new_work_conns"` +} + +func getDefaultBaseConf() BaseConfig { + return BaseConfig{ + AuthenticationMethod: "token", + AuthenticateHeartBeats: false, + AuthenticateNewWorkConns: false, + } +} + +type ClientConfig struct { + BaseConfig `ini:",extends"` + OidcClientConfig `ini:",extends"` + TokenConfig `ini:",extends"` +} + +func GetDefaultClientConf() ClientConfig { + return ClientConfig{ + BaseConfig: getDefaultBaseConf(), + OidcClientConfig: getDefaultOidcClientConf(), + TokenConfig: getDefaultTokenConf(), + } +} + +type ServerConfig struct { + BaseConfig `ini:",extends"` + OidcServerConfig `ini:",extends"` + TokenConfig `ini:",extends"` +} + +func GetDefaultServerConf() ServerConfig { + return ServerConfig{ + BaseConfig: getDefaultBaseConf(), + OidcServerConfig: getDefaultOidcServerConf(), + TokenConfig: getDefaultTokenConf(), + } +} + +type OidcClientConfig struct { + // OidcClientID specifies the client ID to use to get a token in OIDC + // authentication if AuthenticationMethod == "oidc". By default, this value + // is "". + OidcClientID string `ini:"oidc_client_id" json:"oidc_client_id"` + // OidcClientSecret specifies the client secret to use to get a token in OIDC + // authentication if AuthenticationMethod == "oidc". By default, this value + // is "". + OidcClientSecret string `ini:"oidc_client_secret" json:"oidc_client_secret"` + // OidcAudience specifies the audience of the token in OIDC authentication + // if AuthenticationMethod == "oidc". By default, this value is "". + OidcAudience string `ini:"oidc_audience" json:"oidc_audience"` + // OidcScope specifies the scope of the token in OIDC authentication + // if AuthenticationMethod == "oidc". By default, this value is "". + OidcScope string `ini:"oidc_scope" json:"oidc_scope"` + // OidcTokenEndpointURL specifies the URL which implements OIDC Token Endpoint. + // It will be used to get an OIDC token if AuthenticationMethod == "oidc". + // By default, this value is "". + OidcTokenEndpointURL string `ini:"oidc_token_endpoint_url" json:"oidc_token_endpoint_url"` + + // OidcAdditionalEndpointParams specifies additional parameters to be sent + // this field will be transfer to map[string][]string in OIDC token generator + // The field will be set by prefix "oidc_additional_" + OidcAdditionalEndpointParams map[string]string `ini:"-" json:"oidc_additional_endpoint_params"` +} + +func getDefaultOidcClientConf() OidcClientConfig { + return OidcClientConfig{ + OidcClientID: "", + OidcClientSecret: "", + OidcAudience: "", + OidcScope: "", + OidcTokenEndpointURL: "", + OidcAdditionalEndpointParams: make(map[string]string), + } +} + +type OidcServerConfig struct { + // OidcIssuer specifies the issuer to verify OIDC tokens with. This issuer + // will be used to load public keys to verify signature and will be compared + // with the issuer claim in the OIDC token. It will be used if + // AuthenticationMethod == "oidc". By default, this value is "". + OidcIssuer string `ini:"oidc_issuer" json:"oidc_issuer"` + // OidcAudience specifies the audience OIDC tokens should contain when validated. + // If this value is empty, audience ("client ID") verification will be skipped. + // It will be used when AuthenticationMethod == "oidc". By default, this + // value is "". + OidcAudience string `ini:"oidc_audience" json:"oidc_audience"` + // OidcSkipExpiryCheck specifies whether to skip checking if the OIDC token is + // expired. It will be used when AuthenticationMethod == "oidc". By default, this + // value is false. + OidcSkipExpiryCheck bool `ini:"oidc_skip_expiry_check" json:"oidc_skip_expiry_check"` + // OidcSkipIssuerCheck specifies whether to skip checking if the OIDC token's + // issuer claim matches the issuer specified in OidcIssuer. It will be used when + // AuthenticationMethod == "oidc". By default, this value is false. + OidcSkipIssuerCheck bool `ini:"oidc_skip_issuer_check" json:"oidc_skip_issuer_check"` +} + +func getDefaultOidcServerConf() OidcServerConfig { + return OidcServerConfig{ + OidcIssuer: "", + OidcAudience: "", + OidcSkipExpiryCheck: false, + OidcSkipIssuerCheck: false, + } +} + +type TokenConfig struct { + // Token specifies the authorization token used to create keys to be sent + // to the server. The server must have a matching token for authorization + // to succeed. By default, this value is "". + Token string `ini:"token" json:"token"` +} + +func getDefaultTokenConf() TokenConfig { + return TokenConfig{ + Token: "", + } +} diff --git a/pkg/auth/oidc.go b/pkg/auth/oidc.go index c8ef923d3fc..f428a04dacf 100644 --- a/pkg/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -19,105 +19,40 @@ import ( "fmt" "github.com/coreos/go-oidc/v3/oidc" + "github.com/samber/lo" "golang.org/x/oauth2/clientcredentials" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" ) -type OidcClientConfig struct { - // OidcClientID specifies the client ID to use to get a token in OIDC - // authentication if AuthenticationMethod == "oidc". By default, this value - // is "". - OidcClientID string `ini:"oidc_client_id" json:"oidc_client_id"` - // OidcClientSecret specifies the client secret to use to get a token in OIDC - // authentication if AuthenticationMethod == "oidc". By default, this value - // is "". - OidcClientSecret string `ini:"oidc_client_secret" json:"oidc_client_secret"` - // OidcAudience specifies the audience of the token in OIDC authentication - // if AuthenticationMethod == "oidc". By default, this value is "". - OidcAudience string `ini:"oidc_audience" json:"oidc_audience"` - // OidcScope specifies the scope of the token in OIDC authentication - // if AuthenticationMethod == "oidc". By default, this value is "". - OidcScope string `ini:"oidc_scope" json:"oidc_scope"` - // OidcTokenEndpointURL specifies the URL which implements OIDC Token Endpoint. - // It will be used to get an OIDC token if AuthenticationMethod == "oidc". - // By default, this value is "". - OidcTokenEndpointURL string `ini:"oidc_token_endpoint_url" json:"oidc_token_endpoint_url"` - - // OidcAdditionalEndpointParams specifies additional parameters to be sent - // this field will be transfer to map[string][]string in OIDC token generator - // The field will be set by prefix "oidc_additional_" - OidcAdditionalEndpointParams map[string]string `ini:"-" json:"oidc_additional_endpoint_params"` -} - -func getDefaultOidcClientConf() OidcClientConfig { - return OidcClientConfig{ - OidcClientID: "", - OidcClientSecret: "", - OidcAudience: "", - OidcScope: "", - OidcTokenEndpointURL: "", - OidcAdditionalEndpointParams: make(map[string]string), - } -} - -type OidcServerConfig struct { - // OidcIssuer specifies the issuer to verify OIDC tokens with. This issuer - // will be used to load public keys to verify signature and will be compared - // with the issuer claim in the OIDC token. It will be used if - // AuthenticationMethod == "oidc". By default, this value is "". - OidcIssuer string `ini:"oidc_issuer" json:"oidc_issuer"` - // OidcAudience specifies the audience OIDC tokens should contain when validated. - // If this value is empty, audience ("client ID") verification will be skipped. - // It will be used when AuthenticationMethod == "oidc". By default, this - // value is "". - OidcAudience string `ini:"oidc_audience" json:"oidc_audience"` - // OidcSkipExpiryCheck specifies whether to skip checking if the OIDC token is - // expired. It will be used when AuthenticationMethod == "oidc". By default, this - // value is false. - OidcSkipExpiryCheck bool `ini:"oidc_skip_expiry_check" json:"oidc_skip_expiry_check"` - // OidcSkipIssuerCheck specifies whether to skip checking if the OIDC token's - // issuer claim matches the issuer specified in OidcIssuer. It will be used when - // AuthenticationMethod == "oidc". By default, this value is false. - OidcSkipIssuerCheck bool `ini:"oidc_skip_issuer_check" json:"oidc_skip_issuer_check"` -} - -func getDefaultOidcServerConf() OidcServerConfig { - return OidcServerConfig{ - OidcIssuer: "", - OidcAudience: "", - OidcSkipExpiryCheck: false, - OidcSkipIssuerCheck: false, - } -} - type OidcAuthProvider struct { - BaseConfig + additionalAuthScopes []v1.AuthScope tokenGenerator *clientcredentials.Config } -func NewOidcAuthSetter(baseCfg BaseConfig, cfg OidcClientConfig) *OidcAuthProvider { +func NewOidcAuthSetter(additionalAuthScopes []v1.AuthScope, cfg v1.AuthOIDCClientConfig) *OidcAuthProvider { eps := make(map[string][]string) - for k, v := range cfg.OidcAdditionalEndpointParams { + for k, v := range cfg.AdditionalEndpointParams { eps[k] = []string{v} } - if cfg.OidcAudience != "" { - eps["audience"] = []string{cfg.OidcAudience} + if cfg.Audience != "" { + eps["audience"] = []string{cfg.Audience} } tokenGenerator := &clientcredentials.Config{ - ClientID: cfg.OidcClientID, - ClientSecret: cfg.OidcClientSecret, - Scopes: []string{cfg.OidcScope}, - TokenURL: cfg.OidcTokenEndpointURL, + ClientID: cfg.ClientID, + ClientSecret: cfg.ClientSecret, + Scopes: []string{cfg.Scope}, + TokenURL: cfg.TokenEndpointURL, EndpointParams: eps, } return &OidcAuthProvider{ - BaseConfig: baseCfg, - tokenGenerator: tokenGenerator, + additionalAuthScopes: additionalAuthScopes, + tokenGenerator: tokenGenerator, } } @@ -135,7 +70,7 @@ func (auth *OidcAuthProvider) SetLogin(loginMsg *msg.Login) (err error) { } func (auth *OidcAuthProvider) SetPing(pingMsg *msg.Ping) (err error) { - if !auth.AuthenticateHeartBeats { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -144,7 +79,7 @@ func (auth *OidcAuthProvider) SetPing(pingMsg *msg.Ping) (err error) { } func (auth *OidcAuthProvider) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (err error) { - if !auth.AuthenticateNewWorkConns { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } @@ -153,26 +88,26 @@ func (auth *OidcAuthProvider) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (e } type OidcAuthConsumer struct { - BaseConfig + additionalAuthScopes []v1.AuthScope verifier *oidc.IDTokenVerifier subjectFromLogin string } -func NewOidcAuthVerifier(baseCfg BaseConfig, cfg OidcServerConfig) *OidcAuthConsumer { - provider, err := oidc.NewProvider(context.Background(), cfg.OidcIssuer) +func NewOidcAuthVerifier(additionalAuthScopes []v1.AuthScope, cfg v1.AuthOIDCServerConfig) *OidcAuthConsumer { + provider, err := oidc.NewProvider(context.Background(), cfg.Issuer) if err != nil { panic(err) } verifierConf := oidc.Config{ - ClientID: cfg.OidcAudience, - SkipClientIDCheck: cfg.OidcAudience == "", - SkipExpiryCheck: cfg.OidcSkipExpiryCheck, - SkipIssuerCheck: cfg.OidcSkipIssuerCheck, + ClientID: cfg.Audience, + SkipClientIDCheck: cfg.Audience == "", + SkipExpiryCheck: cfg.SkipExpiryCheck, + SkipIssuerCheck: cfg.SkipIssuerCheck, } return &OidcAuthConsumer{ - BaseConfig: baseCfg, - verifier: provider.Verifier(&verifierConf), + additionalAuthScopes: additionalAuthScopes, + verifier: provider.Verifier(&verifierConf), } } @@ -200,7 +135,7 @@ func (auth *OidcAuthConsumer) verifyPostLoginToken(privilegeKey string) (err err } func (auth *OidcAuthConsumer) VerifyPing(pingMsg *msg.Ping) (err error) { - if !auth.AuthenticateHeartBeats { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -208,7 +143,7 @@ func (auth *OidcAuthConsumer) VerifyPing(pingMsg *msg.Ping) (err error) { } func (auth *OidcAuthConsumer) VerifyNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (err error) { - if !auth.AuthenticateNewWorkConns { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } diff --git a/pkg/auth/token.go b/pkg/auth/token.go index 9b2e3f7ce02..0b34b05e417 100644 --- a/pkg/auth/token.go +++ b/pkg/auth/token.go @@ -18,43 +18,32 @@ import ( "fmt" "time" + "github.com/samber/lo" + + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/util" ) -type TokenConfig struct { - // Token specifies the authorization token used to create keys to be sent - // to the server. The server must have a matching token for authorization - // to succeed. By default, this value is "". - Token string `ini:"token" json:"token"` -} - -func getDefaultTokenConf() TokenConfig { - return TokenConfig{ - Token: "", - } -} - type TokenAuthSetterVerifier struct { - BaseConfig - - token string + additionalAuthScopes []v1.AuthScope + token string } -func NewTokenAuth(baseCfg BaseConfig, cfg TokenConfig) *TokenAuthSetterVerifier { +func NewTokenAuth(additionalAuthScopes []v1.AuthScope, token string) *TokenAuthSetterVerifier { return &TokenAuthSetterVerifier{ - BaseConfig: baseCfg, - token: cfg.Token, + additionalAuthScopes: additionalAuthScopes, + token: token, } } -func (auth *TokenAuthSetterVerifier) SetLogin(loginMsg *msg.Login) (err error) { +func (auth *TokenAuthSetterVerifier) SetLogin(loginMsg *msg.Login) error { loginMsg.PrivilegeKey = util.GetAuthKey(auth.token, loginMsg.Timestamp) return nil } func (auth *TokenAuthSetterVerifier) SetPing(pingMsg *msg.Ping) error { - if !auth.AuthenticateHeartBeats { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -64,7 +53,7 @@ func (auth *TokenAuthSetterVerifier) SetPing(pingMsg *msg.Ping) error { } func (auth *TokenAuthSetterVerifier) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) error { - if !auth.AuthenticateNewWorkConns { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } @@ -81,7 +70,7 @@ func (auth *TokenAuthSetterVerifier) VerifyLogin(m *msg.Login) error { } func (auth *TokenAuthSetterVerifier) VerifyPing(m *msg.Ping) error { - if !auth.AuthenticateHeartBeats { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -92,7 +81,7 @@ func (auth *TokenAuthSetterVerifier) VerifyPing(m *msg.Ping) error { } func (auth *TokenAuthSetterVerifier) VerifyNewWorkConn(m *msg.NewWorkConn) error { - if !auth.AuthenticateNewWorkConns { + if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } diff --git a/pkg/config/client_test.go b/pkg/config/client_test.go deleted file mode 100644 index 187324a11a6..00000000000 --- a/pkg/config/client_test.go +++ /dev/null @@ -1,680 +0,0 @@ -// Copyright 2020 The frp Authors -// -// Licensed 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. - -package config - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/fatedier/frp/pkg/auth" - "github.com/fatedier/frp/pkg/consts" -) - -const ( - testUser = "test" -) - -var testClientBytesWithFull = []byte(` - # [common] is integral section - [common] - server_addr = 0.0.0.9 - server_port = 7009 - http_proxy = http://user:passwd@192.168.1.128:8080 - log_file = ./frpc.log9 - log_way = file - log_level = info9 - log_max_days = 39 - disable_log_color = false - authenticate_heartbeats = false - authenticate_new_work_conns = false - token = 12345678 - oidc_client_id = client-id - oidc_client_secret = client-secret - oidc_audience = audience - oidc_token_endpoint_url = endpoint_url - admin_addr = 127.0.0.9 - admin_port = 7409 - admin_user = admin9 - admin_pwd = admin9 - assets_dir = ./static9 - pool_count = 59 - tcp_mux - user = your_name - login_fail_exit - protocol = tcp - tls_enable = true - tls_cert_file = client.crt - tls_key_file = client.key - tls_trusted_ca_file = ca.crt - tls_server_name = example.com - dns_server = 8.8.8.9 - start = ssh,dns - heartbeat_interval = 39 - heartbeat_timeout = 99 - meta_var1 = 123 - meta_var2 = 234 - udp_packet_size = 1509 - - # all proxy - [ssh] - type = tcp - local_ip = 127.0.0.9 - local_port = 29 - bandwidth_limit = 19MB - bandwidth_limit_mode = server - use_encryption - use_compression - remote_port = 6009 - group = test_group - group_key = 123456 - health_check_type = tcp - health_check_timeout_s = 3 - health_check_max_failed = 3 - health_check_interval_s = 19 - meta_var1 = 123 - meta_var2 = 234 - - [ssh_random] - type = tcp - local_ip = 127.0.0.9 - local_port = 29 - remote_port = 9 - - [range:tcp_port] - type = tcp - local_ip = 127.0.0.9 - local_port = 6010-6011,6019 - remote_port = 6010-6011,6019 - use_encryption = false - use_compression = false - - [dns] - type = udp - local_ip = 114.114.114.114 - local_port = 59 - remote_port = 6009 - use_encryption - use_compression - - [range:udp_port] - type = udp - local_ip = 114.114.114.114 - local_port = 6000,6010-6011 - remote_port = 6000,6010-6011 - use_encryption - use_compression - - [web01] - type = http - local_ip = 127.0.0.9 - local_port = 89 - use_encryption - use_compression - http_user = admin - http_pwd = admin - subdomain = web01 - custom_domains = web02.yourdomain.com - locations = /,/pic - host_header_rewrite = example.com - header_X-From-Where = frp - health_check_type = http - health_check_url = /status - health_check_interval_s = 19 - health_check_max_failed = 3 - health_check_timeout_s = 3 - - [web02] - type = https - local_ip = 127.0.0.9 - local_port = 8009 - use_encryption - use_compression - subdomain = web01 - custom_domains = web02.yourdomain.com - proxy_protocol_version = v2 - - [secret_tcp] - type = stcp - sk = abcdefg - local_ip = 127.0.0.1 - local_port = 22 - use_encryption = false - use_compression = false - - [p2p_tcp] - type = xtcp - sk = abcdefg - local_ip = 127.0.0.1 - local_port = 22 - use_encryption = false - use_compression = false - - [tcpmuxhttpconnect] - type = tcpmux - multiplexer = httpconnect - local_ip = 127.0.0.1 - local_port = 10701 - custom_domains = tunnel1 - - [plugin_unix_domain_socket] - type = tcp - remote_port = 6003 - plugin = unix_domain_socket - plugin_unix_path = /var/run/docker.sock - - [plugin_http_proxy] - type = tcp - remote_port = 6004 - plugin = http_proxy - plugin_http_user = abc - plugin_http_passwd = abc - - [plugin_socks5] - type = tcp - remote_port = 6005 - plugin = socks5 - plugin_user = abc - plugin_passwd = abc - - [plugin_static_file] - type = tcp - remote_port = 6006 - plugin = static_file - plugin_local_path = /var/www/blog - plugin_strip_prefix = static - plugin_http_user = abc - plugin_http_passwd = abc - - [plugin_https2http] - type = https - custom_domains = test.yourdomain.com - plugin = https2http - plugin_local_addr = 127.0.0.1:80 - plugin_crt_path = ./server.crt - plugin_key_path = ./server.key - plugin_host_header_rewrite = 127.0.0.1 - plugin_header_X-From-Where = frp - - [plugin_http2https] - type = http - custom_domains = test.yourdomain.com - plugin = http2https - plugin_local_addr = 127.0.0.1:443 - plugin_host_header_rewrite = 127.0.0.1 - plugin_header_X-From-Where = frp - - # visitor - [secret_tcp_visitor] - role = visitor - type = stcp - server_name = secret_tcp - sk = abcdefg - bind_addr = 127.0.0.1 - bind_port = 9000 - use_encryption = false - use_compression = false - - [p2p_tcp_visitor] - role = visitor - type = xtcp - server_name = p2p_tcp - sk = abcdefg - bind_addr = 127.0.0.1 - bind_port = 9001 - use_encryption = false - use_compression = false - `) - -func Test_LoadClientCommonConf(t *testing.T) { - assert := assert.New(t) - - expected := ClientCommonConf{ - ClientConfig: auth.ClientConfig{ - BaseConfig: auth.BaseConfig{ - AuthenticationMethod: "token", - AuthenticateHeartBeats: false, - AuthenticateNewWorkConns: false, - }, - TokenConfig: auth.TokenConfig{ - Token: "12345678", - }, - OidcClientConfig: auth.OidcClientConfig{ - OidcClientID: "client-id", - OidcClientSecret: "client-secret", - OidcAudience: "audience", - OidcTokenEndpointURL: "endpoint_url", - }, - }, - ServerAddr: "0.0.0.9", - ServerPort: 7009, - NatHoleSTUNServer: "stun.easyvoip.com:3478", - DialServerTimeout: 10, - DialServerKeepAlive: 7200, - HTTPProxy: "http://user:passwd@192.168.1.128:8080", - LogFile: "./frpc.log9", - LogWay: "file", - LogLevel: "info9", - LogMaxDays: 39, - DisableLogColor: false, - AdminAddr: "127.0.0.9", - AdminPort: 7409, - AdminUser: "admin9", - AdminPwd: "admin9", - AssetsDir: "./static9", - PoolCount: 59, - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - User: "your_name", - LoginFailExit: true, - Protocol: "tcp", - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - TLSEnable: true, - TLSCertFile: "client.crt", - TLSKeyFile: "client.key", - TLSTrustedCaFile: "ca.crt", - TLSServerName: "example.com", - DisableCustomTLSFirstByte: true, - DNSServer: "8.8.8.9", - Start: []string{"ssh", "dns"}, - HeartbeatInterval: 39, - HeartbeatTimeout: 99, - Metas: map[string]string{ - "var1": "123", - "var2": "234", - }, - UDPPacketSize: 1509, - IncludeConfigFiles: []string{}, - } - - common, err := UnmarshalClientConfFromIni(testClientBytesWithFull) - assert.NoError(err) - assert.EqualValues(expected, common) -} - -func Test_LoadClientBasicConf(t *testing.T) { - assert := assert.New(t) - - proxyExpected := map[string]ProxyConf{ - testUser + ".ssh": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".ssh", - ProxyType: consts.TCPProxy, - UseCompression: true, - UseEncryption: true, - Group: "test_group", - GroupKey: "123456", - BandwidthLimit: MustBandwidthQuantity("19MB"), - BandwidthLimitMode: BandwidthLimitModeServer, - Metas: map[string]string{ - "var1": "123", - "var2": "234", - }, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 29, - }, - HealthCheckConf: HealthCheckConf{ - HealthCheckType: consts.TCPProxy, - HealthCheckTimeoutS: 3, - HealthCheckMaxFailed: 3, - HealthCheckIntervalS: 19, - HealthCheckAddr: "127.0.0.9:29", - }, - }, - RemotePort: 6009, - }, - testUser + ".ssh_random": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".ssh_random", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 29, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 9, - }, - testUser + ".tcp_port_0": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".tcp_port_0", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 6010, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6010, - }, - testUser + ".tcp_port_1": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".tcp_port_1", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 6011, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6011, - }, - testUser + ".tcp_port_2": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".tcp_port_2", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 6019, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6019, - }, - testUser + ".dns": &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".dns", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 59, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6009, - }, - testUser + ".udp_port_0": &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".udp_port_0", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 6000, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6000, - }, - testUser + ".udp_port_1": &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".udp_port_1", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 6010, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6010, - }, - testUser + ".udp_port_2": &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".udp_port_2", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 6011, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6011, - }, - testUser + ".web01": &HTTPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".web01", - ProxyType: consts.HTTPProxy, - UseCompression: true, - UseEncryption: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 89, - }, - HealthCheckConf: HealthCheckConf{ - HealthCheckType: consts.HTTPProxy, - HealthCheckTimeoutS: 3, - HealthCheckMaxFailed: 3, - HealthCheckIntervalS: 19, - HealthCheckURL: "http://127.0.0.9:89/status", - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"web02.yourdomain.com"}, - SubDomain: "web01", - }, - Locations: []string{"/", "/pic"}, - HTTPUser: "admin", - HTTPPwd: "admin", - HostHeaderRewrite: "example.com", - Headers: map[string]string{ - "X-From-Where": "frp", - }, - }, - testUser + ".web02": &HTTPSProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".web02", - ProxyType: consts.HTTPSProxy, - UseCompression: true, - UseEncryption: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 8009, - }, - ProxyProtocolVersion: "v2", - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"web02.yourdomain.com"}, - SubDomain: "web01", - }, - }, - testUser + ".secret_tcp": &STCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".secret_tcp", - ProxyType: consts.STCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - LocalPort: 22, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RoleServerCommonConf: RoleServerCommonConf{ - Role: "server", - Sk: "abcdefg", - }, - }, - testUser + ".p2p_tcp": &XTCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".p2p_tcp", - ProxyType: consts.XTCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - LocalPort: 22, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RoleServerCommonConf: RoleServerCommonConf{ - Role: "server", - Sk: "abcdefg", - }, - }, - testUser + ".tcpmuxhttpconnect": &TCPMuxProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".tcpmuxhttpconnect", - ProxyType: consts.TCPMuxProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - LocalPort: 10701, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"tunnel1"}, - SubDomain: "", - }, - Multiplexer: "httpconnect", - }, - testUser + ".plugin_unix_domain_socket": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".plugin_unix_domain_socket", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - Plugin: "unix_domain_socket", - PluginParams: map[string]string{ - "plugin_unix_path": "/var/run/docker.sock", - }, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6003, - }, - testUser + ".plugin_http_proxy": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".plugin_http_proxy", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - Plugin: "http_proxy", - PluginParams: map[string]string{ - "plugin_http_user": "abc", - "plugin_http_passwd": "abc", - }, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6004, - }, - testUser + ".plugin_socks5": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".plugin_socks5", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - Plugin: "socks5", - PluginParams: map[string]string{ - "plugin_user": "abc", - "plugin_passwd": "abc", - }, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6005, - }, - testUser + ".plugin_static_file": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".plugin_static_file", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - Plugin: "static_file", - PluginParams: map[string]string{ - "plugin_local_path": "/var/www/blog", - "plugin_strip_prefix": "static", - "plugin_http_user": "abc", - "plugin_http_passwd": "abc", - }, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6006, - }, - testUser + ".plugin_https2http": &HTTPSProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".plugin_https2http", - ProxyType: consts.HTTPSProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - Plugin: "https2http", - PluginParams: map[string]string{ - "plugin_local_addr": "127.0.0.1:80", - "plugin_crt_path": "./server.crt", - "plugin_key_path": "./server.key", - "plugin_host_header_rewrite": "127.0.0.1", - "plugin_header_X-From-Where": "frp", - }, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"test.yourdomain.com"}, - }, - }, - testUser + ".plugin_http2https": &HTTPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testUser + ".plugin_http2https", - ProxyType: consts.HTTPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - Plugin: "http2https", - PluginParams: map[string]string{ - "plugin_local_addr": "127.0.0.1:443", - "plugin_host_header_rewrite": "127.0.0.1", - "plugin_header_X-From-Where": "frp", - }, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"test.yourdomain.com"}, - }, - }, - } - - visitorExpected := map[string]VisitorConf{ - testUser + ".secret_tcp_visitor": &STCPVisitorConf{ - BaseVisitorConf: BaseVisitorConf{ - ProxyName: testUser + ".secret_tcp_visitor", - ProxyType: consts.STCPProxy, - Role: "visitor", - Sk: "abcdefg", - ServerName: testVisitorPrefix + "secret_tcp", - BindAddr: "127.0.0.1", - BindPort: 9000, - }, - }, - testUser + ".p2p_tcp_visitor": &XTCPVisitorConf{ - BaseVisitorConf: BaseVisitorConf{ - ProxyName: testUser + ".p2p_tcp_visitor", - ProxyType: consts.XTCPProxy, - Role: "visitor", - Sk: "abcdefg", - ServerName: testProxyPrefix + "p2p_tcp", - BindAddr: "127.0.0.1", - BindPort: 9001, - }, - Protocol: "quic", - MaxRetriesAnHour: 8, - MinRetryInterval: 90, - FallbackTimeoutMs: 1000, - }, - } - - proxyActual, visitorActual, err := LoadAllProxyConfsFromIni(testUser, testClientBytesWithFull, nil) - assert.NoError(err) - assert.Equal(proxyExpected, proxyActual) - assert.Equal(visitorExpected, visitorActual) -} diff --git a/pkg/config/README.md b/pkg/config/legacy/README.md similarity index 100% rename from pkg/config/README.md rename to pkg/config/legacy/README.md diff --git a/pkg/config/client.go b/pkg/config/legacy/client.go similarity index 97% rename from pkg/config/client.go rename to pkg/config/legacy/client.go index 029470dc1de..92d3a956aef 100644 --- a/pkg/config/client.go +++ b/pkg/config/legacy/client.go @@ -1,4 +1,4 @@ -// Copyright 2020 The frp Authors +// Copyright 2023 The frp Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package legacy import ( "fmt" @@ -23,15 +23,16 @@ import ( "github.com/samber/lo" "gopkg.in/ini.v1" - "github.com/fatedier/frp/pkg/auth" + legacyauth "github.com/fatedier/frp/pkg/auth/legacy" "github.com/fatedier/frp/pkg/util/util" ) -// ClientCommonConf contains information for a client service. It is +// ClientCommonConf is the configuration parsed from ini. +// It contains information for a client service. It is // recommended to use GetDefaultClientConf instead of creating this object // directly, so that all unspecified fields have reasonable default values. type ClientCommonConf struct { - auth.ClientConfig `ini:",extends"` + legacyauth.ClientConfig `ini:",extends"` // ServerAddr specifies the address of the server to connect to. By // default, this value is "0.0.0.0". @@ -168,85 +169,6 @@ type ClientCommonConf struct { PprofEnable bool `ini:"pprof_enable" json:"pprof_enable"` } -// GetDefaultClientConf returns a client configuration with default values. -func GetDefaultClientConf() ClientCommonConf { - return ClientCommonConf{ - ClientConfig: auth.GetDefaultClientConf(), - ServerAddr: "0.0.0.0", - ServerPort: 7000, - NatHoleSTUNServer: "stun.easyvoip.com:3478", - DialServerTimeout: 10, - DialServerKeepAlive: 7200, - HTTPProxy: os.Getenv("http_proxy"), - LogFile: "console", - LogWay: "console", - LogLevel: "info", - LogMaxDays: 3, - AdminAddr: "127.0.0.1", - PoolCount: 1, - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - LoginFailExit: true, - Start: make([]string, 0), - Protocol: "tcp", - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - TLSEnable: true, - DisableCustomTLSFirstByte: true, - HeartbeatInterval: 30, - HeartbeatTimeout: 90, - Metas: make(map[string]string), - UDPPacketSize: 1500, - IncludeConfigFiles: make([]string, 0), - } -} - -func (cfg *ClientCommonConf) Complete() { - if cfg.LogFile == "console" { - cfg.LogWay = "console" - } else { - cfg.LogWay = "file" - } -} - -func (cfg *ClientCommonConf) Validate() error { - if cfg.HeartbeatTimeout > 0 && cfg.HeartbeatInterval > 0 { - if cfg.HeartbeatTimeout < cfg.HeartbeatInterval { - return fmt.Errorf("invalid heartbeat_timeout, heartbeat_timeout is less than heartbeat_interval") - } - } - - if !cfg.TLSEnable { - if cfg.TLSCertFile != "" { - fmt.Println("WARNING! tls_cert_file is invalid when tls_enable is false") - } - - if cfg.TLSKeyFile != "" { - fmt.Println("WARNING! tls_key_file is invalid when tls_enable is false") - } - - if cfg.TLSTrustedCaFile != "" { - fmt.Println("WARNING! tls_trusted_ca_file is invalid when tls_enable is false") - } - } - - if !lo.Contains([]string{"tcp", "kcp", "quic", "websocket", "wss"}, cfg.Protocol) { - return fmt.Errorf("invalid protocol") - } - - for _, f := range cfg.IncludeConfigFiles { - absDir, err := filepath.Abs(filepath.Dir(f)) - if err != nil { - return fmt.Errorf("include: parse directory of %s failed: %v", f, absDir) - } - if _, err := os.Stat(absDir); os.IsNotExist(err) { - return fmt.Errorf("include: directory of %s not exist", f) - } - } - return nil -} - // Supported sources including: string(file path), []byte, Reader interface. func UnmarshalClientConfFromIni(source interface{}) (ClientCommonConf, error) { f, err := ini.LoadSources(ini.LoadOptions{ @@ -421,3 +343,74 @@ func copySection(source, target *ini.Section) { _, _ = target.NewKey(key, value) } } + +// GetDefaultClientConf returns a client configuration with default values. +func GetDefaultClientConf() ClientCommonConf { + return ClientCommonConf{ + ClientConfig: legacyauth.GetDefaultClientConf(), + ServerAddr: "0.0.0.0", + ServerPort: 7000, + NatHoleSTUNServer: "stun.easyvoip.com:3478", + DialServerTimeout: 10, + DialServerKeepAlive: 7200, + HTTPProxy: os.Getenv("http_proxy"), + LogFile: "console", + LogWay: "console", + LogLevel: "info", + LogMaxDays: 3, + AdminAddr: "127.0.0.1", + PoolCount: 1, + TCPMux: true, + TCPMuxKeepaliveInterval: 60, + LoginFailExit: true, + Start: make([]string, 0), + Protocol: "tcp", + QUICKeepalivePeriod: 10, + QUICMaxIdleTimeout: 30, + QUICMaxIncomingStreams: 100000, + TLSEnable: true, + DisableCustomTLSFirstByte: true, + HeartbeatInterval: 30, + HeartbeatTimeout: 90, + Metas: make(map[string]string), + UDPPacketSize: 1500, + IncludeConfigFiles: make([]string, 0), + } +} + +func (cfg *ClientCommonConf) Validate() error { + if cfg.HeartbeatTimeout > 0 && cfg.HeartbeatInterval > 0 { + if cfg.HeartbeatTimeout < cfg.HeartbeatInterval { + return fmt.Errorf("invalid heartbeat_timeout, heartbeat_timeout is less than heartbeat_interval") + } + } + + if !cfg.TLSEnable { + if cfg.TLSCertFile != "" { + fmt.Println("WARNING! tls_cert_file is invalid when tls_enable is false") + } + + if cfg.TLSKeyFile != "" { + fmt.Println("WARNING! tls_key_file is invalid when tls_enable is false") + } + + if cfg.TLSTrustedCaFile != "" { + fmt.Println("WARNING! tls_trusted_ca_file is invalid when tls_enable is false") + } + } + + if !lo.Contains([]string{"tcp", "kcp", "quic", "websocket", "wss"}, cfg.Protocol) { + return fmt.Errorf("invalid protocol") + } + + for _, f := range cfg.IncludeConfigFiles { + absDir, err := filepath.Abs(filepath.Dir(f)) + if err != nil { + return fmt.Errorf("include: parse directory of %s failed: %v", f, err) + } + if _, err := os.Stat(absDir); os.IsNotExist(err) { + return fmt.Errorf("include: directory of %s not exist", f) + } + } + return nil +} diff --git a/pkg/config/legacy/conversion.go b/pkg/config/legacy/conversion.go new file mode 100644 index 00000000000..8d9074bfd22 --- /dev/null +++ b/pkg/config/legacy/conversion.go @@ -0,0 +1,350 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package legacy + +import ( + "strings" + + "github.com/samber/lo" + + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCommonConfig { + out := &v1.ClientCommonConfig{} + out.User = conf.User + out.Auth.Method = conf.ClientConfig.AuthenticationMethod + out.Auth.Token = conf.ClientConfig.Token + if conf.ClientConfig.AuthenticateHeartBeats { + out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeHeartBeats) + } + if conf.ClientConfig.AuthenticateNewWorkConns { + out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeNewWorkConns) + } + out.Auth.OIDC.ClientID = conf.ClientConfig.OidcClientID + out.Auth.OIDC.ClientSecret = conf.ClientConfig.OidcClientSecret + out.Auth.OIDC.Audience = conf.ClientConfig.OidcAudience + out.Auth.OIDC.Scope = conf.ClientConfig.OidcScope + out.Auth.OIDC.TokenEndpointURL = conf.ClientConfig.OidcTokenEndpointURL + out.Auth.OIDC.AdditionalEndpointParams = conf.ClientConfig.OidcAdditionalEndpointParams + + out.ServerAddr = conf.ServerAddr + out.ServerPort = conf.ServerPort + out.NatHoleSTUNServer = conf.NatHoleSTUNServer + out.Transport.DialServerTimeout = conf.DialServerTimeout + out.Transport.DialServerKeepAlive = conf.DialServerKeepAlive + out.Transport.ConnectServerLocalIP = conf.ConnectServerLocalIP + out.Transport.ProxyURL = conf.HTTPProxy + out.Transport.PoolCount = conf.PoolCount + out.Transport.TCPMux = lo.ToPtr(conf.TCPMux) + out.Transport.TCPMuxKeepaliveInterval = conf.TCPMuxKeepaliveInterval + out.Transport.Protocol = conf.Protocol + out.Transport.HeartbeatInterval = conf.HeartbeatInterval + out.Transport.HeartbeatTimeout = conf.HeartbeatTimeout + out.Transport.QUIC.KeepalivePeriod = conf.QUICKeepalivePeriod + out.Transport.QUIC.MaxIdleTimeout = conf.QUICMaxIdleTimeout + out.Transport.QUIC.MaxIncomingStreams = conf.QUICMaxIncomingStreams + out.Transport.TLS.Enable = lo.ToPtr(conf.TLSEnable) + out.Transport.TLS.DisableCustomTLSFirstByte = lo.ToPtr(conf.DisableCustomTLSFirstByte) + out.Transport.TLS.TLSConfig.CertFile = conf.TLSCertFile + out.Transport.TLS.TLSConfig.KeyFile = conf.TLSKeyFile + out.Transport.TLS.TLSConfig.TrustedCaFile = conf.TLSTrustedCaFile + out.Transport.TLS.TLSConfig.ServerName = conf.TLSServerName + + out.Log.To = conf.LogFile + out.Log.Level = conf.LogLevel + out.Log.MaxDays = conf.LogMaxDays + out.Log.DisablePrintColor = conf.DisableLogColor + + out.WebServer.Addr = conf.AdminAddr + out.WebServer.Port = conf.AdminPort + out.WebServer.Password = conf.AdminPwd + out.WebServer.AssetsDir = conf.AssetsDir + out.WebServer.PprofEnable = conf.PprofEnable + + out.DNSServer = conf.DNSServer + out.LoginFailExit = lo.ToPtr(conf.LoginFailExit) + out.Start = conf.Start + out.UDPPacketSize = conf.UDPPacketSize + out.Metadatas = conf.Metas + out.IncludeConfigFiles = conf.IncludeConfigFiles + return out +} + +func Convert_ServerCommonConf_To_v1(conf *ServerCommonConf) *v1.ServerConfig { + out := &v1.ServerConfig{} + out.Auth.Method = conf.ServerConfig.AuthenticationMethod + out.Auth.Token = conf.ServerConfig.Token + if conf.ServerConfig.AuthenticateHeartBeats { + out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeHeartBeats) + } + if conf.ServerConfig.AuthenticateNewWorkConns { + out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeNewWorkConns) + } + out.Auth.OIDC.Audience = conf.ServerConfig.OidcAudience + out.Auth.OIDC.Issuer = conf.ServerConfig.OidcIssuer + out.Auth.OIDC.SkipExpiryCheck = conf.ServerConfig.OidcSkipExpiryCheck + out.Auth.OIDC.SkipIssuerCheck = conf.ServerConfig.OidcSkipIssuerCheck + + out.BindAddr = conf.BindAddr + out.BindPort = conf.BindPort + out.KCPBindPort = conf.KCPBindPort + out.QUICBindPort = conf.QUICBindPort + out.Transport.QUIC.KeepalivePeriod = conf.QUICKeepalivePeriod + out.Transport.QUIC.MaxIdleTimeout = conf.QUICMaxIdleTimeout + out.Transport.QUIC.MaxIncomingStreams = conf.QUICMaxIncomingStreams + + out.ProxyBindAddr = conf.ProxyBindAddr + out.VhostHTTPPort = conf.VhostHTTPPort + out.VhostHTTPSPort = conf.VhostHTTPSPort + out.TCPMuxHTTPConnectPort = conf.TCPMuxHTTPConnectPort + out.TCPMuxPassthrough = conf.TCPMuxPassthrough + out.VhostHTTPTimeout = conf.VhostHTTPTimeout + + out.WebServer.Addr = conf.DashboardAddr + out.WebServer.Port = conf.DashboardPort + out.WebServer.User = conf.DashboardUser + out.WebServer.Password = conf.DashboardPwd + out.WebServer.AssetsDir = conf.AssetsDir + if conf.DashboardTLSMode { + out.WebServer.TLS = &v1.TLSConfig{} + out.WebServer.TLS.CertFile = conf.DashboardTLSCertFile + out.WebServer.TLS.KeyFile = conf.DashboardTLSKeyFile + out.WebServer.PprofEnable = conf.PprofEnable + } + + out.EnablePrometheus = conf.EnablePrometheus + + out.Log.To = conf.LogFile + out.Log.Level = conf.LogLevel + out.Log.MaxDays = conf.LogMaxDays + out.Log.DisablePrintColor = conf.DisableLogColor + + out.DetailedErrorsToClient = lo.ToPtr(conf.DetailedErrorsToClient) + out.SubDomainHost = conf.SubDomainHost + out.Custom404Page = conf.Custom404Page + out.UserConnTimeout = conf.UserConnTimeout + out.UDPPacketSize = conf.UDPPacketSize + out.NatHoleAnalysisDataReserveHours = conf.NatHoleAnalysisDataReserveHours + + out.Transport.TCPMux = lo.ToPtr(conf.TCPMux) + out.Transport.TCPMuxKeepaliveInterval = conf.TCPMuxKeepaliveInterval + out.Transport.TCPKeepAlive = conf.TCPKeepAlive + out.Transport.MaxPoolCount = conf.MaxPoolCount + out.Transport.HeartbeatTimeout = conf.HeartbeatTimeout + + out.MaxPortsPerClient = conf.MaxPortsPerClient + + out.TLS.Force = conf.TLSOnly + out.TLS.CertFile = conf.TLSCertFile + out.TLS.KeyFile = conf.TLSKeyFile + out.TLS.TrustedCaFile = conf.TLSTrustedCaFile + + for _, v := range conf.HTTPPlugins { + out.HTTPPlugins = append(out.HTTPPlugins, v1.HTTPPluginOptions{ + Name: v.Name, + Addr: v.Addr, + Path: v.Path, + Ops: v.Ops, + TLSVerify: v.TLSVerify, + }) + } + + out.AllowPorts, _ = types.NewPortsRangeSliceFromString(conf.AllowPortsStr) + return out +} + +func transformHeadersFromPluginParams(params map[string]string) v1.HeaderOperations { + out := v1.HeaderOperations{} + for k, v := range params { + if !strings.HasPrefix(k, "plugin_header_") { + continue + } + if k = strings.TrimPrefix(k, "plugin_header_"); k != "" { + out.Set[k] = v + } + } + return out +} + +func Convert_ProxyConf_To_v1_Base(conf ProxyConf) *v1.ProxyBaseConfig { + out := &v1.ProxyBaseConfig{} + base := conf.GetBaseConfig() + + out.Name = base.ProxyName + out.Type = base.ProxyType + out.Metadatas = base.Metas + + out.Transport.UseEncryption = base.UseEncryption + out.Transport.UseCompression = base.UseCompression + out.Transport.BandwidthLimit = base.BandwidthLimit + out.Transport.BandwidthLimitMode = base.BandwidthLimitMode + out.Transport.ProxyProtocolVersion = base.ProxyProtocolVersion + + out.LoadBalancer.Group = base.Group + out.LoadBalancer.GroupKey = base.GroupKey + + out.HealthCheck.Type = base.HealthCheckType + out.HealthCheck.TimeoutSeconds = base.HealthCheckTimeoutS + out.HealthCheck.MaxFailed = base.HealthCheckMaxFailed + out.HealthCheck.IntervalSeconds = base.HealthCheckIntervalS + out.HealthCheck.Path = base.HealthCheckURL + + out.LocalIP = base.LocalIP + out.LocalPort = base.LocalPort + + switch base.Plugin { + case "http2https": + out.Plugin.ClientPluginOptions = &v1.HTTP2HTTPSPluginOptions{ + LocalAddr: base.PluginParams["plugin_local_addr"], + HostHeaderRewrite: base.PluginParams["plugin_host_header_rewrite"], + RequestHeaders: transformHeadersFromPluginParams(base.PluginParams), + } + case "http_proxy": + out.Plugin.ClientPluginOptions = &v1.HTTPProxyPluginOptions{ + HTTPUser: base.PluginParams["plugin_http_user"], + HTTPPassword: base.PluginParams["plugin_http_passwd"], + } + case "https2http": + out.Plugin.ClientPluginOptions = &v1.HTTPS2HTTPPluginOptions{ + LocalAddr: base.PluginParams["plugin_local_addr"], + HostHeaderRewrite: base.PluginParams["plugin_host_header_rewrite"], + RequestHeaders: transformHeadersFromPluginParams(base.PluginParams), + CrtPath: base.PluginParams["plugin_crt_path"], + KeyPath: base.PluginParams["plugin_key_path"], + } + case "https2https": + out.Plugin.ClientPluginOptions = &v1.HTTPS2HTTPSPluginOptions{ + LocalAddr: base.PluginParams["plugin_local_addr"], + HostHeaderRewrite: base.PluginParams["plugin_host_header_rewrite"], + RequestHeaders: transformHeadersFromPluginParams(base.PluginParams), + CrtPath: base.PluginParams["plugin_crt_path"], + KeyPath: base.PluginParams["plugin_key_path"], + } + case "socks5": + out.Plugin.ClientPluginOptions = &v1.Socks5PluginOptions{ + Username: base.PluginParams["plugin_user"], + Password: base.PluginParams["plugin_passwd"], + } + case "static_file": + out.Plugin.ClientPluginOptions = &v1.StaticFilePluginOptions{ + LocalPath: base.PluginParams["plugin_local_path"], + StripPrefix: base.PluginParams["plugin_strip_prefix"], + HTTPUser: base.PluginParams["plugin_http_user"], + HTTPPassword: base.PluginParams["plugin_http_passwd"], + } + case "unix_domain_socket": + out.Plugin.ClientPluginOptions = &v1.UnixDomainSocketPluginOptions{ + UnixPath: base.PluginParams["plugin_unix_path"], + } + } + out.Plugin.Type = base.Plugin + return out +} + +func Convert_ProxyConf_To_v1(conf ProxyConf) v1.ProxyConfigurer { + outBase := Convert_ProxyConf_To_v1_Base(conf) + var out v1.ProxyConfigurer + switch v := conf.(type) { + case *TCPProxyConf: + c := &v1.TCPProxyConfig{ProxyBaseConfig: *outBase} + c.RemotePort = v.RemotePort + out = c + case *UDPProxyConf: + c := &v1.UDPProxyConfig{ProxyBaseConfig: *outBase} + c.RemotePort = v.RemotePort + out = c + case *HTTPProxyConf: + c := &v1.HTTPProxyConfig{ProxyBaseConfig: *outBase} + c.CustomDomains = v.CustomDomains + c.SubDomain = v.SubDomain + c.Locations = v.Locations + c.HTTPUser = v.HTTPUser + c.HTTPPassword = v.HTTPPwd + c.HostHeaderRewrite = v.HostHeaderRewrite + c.RequestHeaders.Set = v.Headers + c.RouteByHTTPUser = v.RouteByHTTPUser + out = c + case *HTTPSProxyConf: + c := &v1.HTTPSProxyConfig{ProxyBaseConfig: *outBase} + c.CustomDomains = v.CustomDomains + c.SubDomain = v.SubDomain + out = c + case *TCPMuxProxyConf: + c := &v1.TCPMuxProxyConfig{ProxyBaseConfig: *outBase} + c.CustomDomains = v.CustomDomains + c.SubDomain = v.SubDomain + c.HTTPUser = v.HTTPUser + c.HTTPPassword = v.HTTPPwd + c.RouteByHTTPUser = v.RouteByHTTPUser + c.Multiplexer = v.Multiplexer + out = c + case *STCPProxyConf: + c := &v1.STCPProxyConfig{ProxyBaseConfig: *outBase} + c.Secretkey = v.Sk + c.AllowUsers = v.AllowUsers + out = c + case *SUDPProxyConf: + c := &v1.SUDPProxyConfig{ProxyBaseConfig: *outBase} + c.Secretkey = v.Sk + c.AllowUsers = v.AllowUsers + out = c + case *XTCPProxyConf: + c := &v1.XTCPProxyConfig{ProxyBaseConfig: *outBase} + c.Secretkey = v.Sk + c.AllowUsers = v.AllowUsers + } + return out +} + +func Convert_VisitorConf_To_v1_Base(conf VisitorConf) *v1.VisitorBaseConfig { + out := &v1.VisitorBaseConfig{} + base := conf.GetBaseConfig() + + out.Name = base.ProxyName + out.Type = base.ProxyType + out.Transport.UseEncryption = base.UseEncryption + out.Transport.UseCompression = base.UseCompression + out.SecretKey = base.Sk + out.ServerUser = base.ServerUser + out.ServerName = base.ServerName + out.BindAddr = base.BindAddr + out.BindPort = base.BindPort + return out +} + +func Convert_VisitorConf_To_v1(conf VisitorConf) v1.VisitorConfigurer { + outBase := Convert_VisitorConf_To_v1_Base(conf) + var out v1.VisitorConfigurer + switch v := conf.(type) { + case *STCPVisitorConf: + c := &v1.STCPVisitorConfig{VisitorBaseConfig: *outBase} + out = c + case *SUDPVisitorConf: + c := &v1.SUDPVisitorConfig{VisitorBaseConfig: *outBase} + out = c + case *XTCPVisitorConf: + c := &v1.XTCPVisitorConfig{VisitorBaseConfig: *outBase} + c.Protocol = v.Protocol + c.KeepTunnelOpen = v.KeepTunnelOpen + c.MaxRetriesAnHour = v.MaxRetriesAnHour + c.MinRetryInterval = v.MinRetryInterval + c.FallbackTo = v.FallbackTo + c.FallbackTimeoutMs = v.FallbackTimeoutMs + out = c + } + return out +} diff --git a/pkg/config/parse.go b/pkg/config/legacy/parse.go similarity index 98% rename from pkg/config/parse.go rename to pkg/config/legacy/parse.go index 9f4cdb6b74b..637783bc73b 100644 --- a/pkg/config/parse.go +++ b/pkg/config/legacy/parse.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package legacy import ( "bytes" @@ -40,7 +40,6 @@ func ParseClientConfig(filePath string) ( if err != nil { return } - cfg.Complete() if err = cfg.Validate(); err != nil { err = fmt.Errorf("parse config error: %v", err) return diff --git a/pkg/config/legacy/proxy.go b/pkg/config/legacy/proxy.go new file mode 100644 index 00000000000..a6ce55aba4d --- /dev/null +++ b/pkg/config/legacy/proxy.go @@ -0,0 +1,375 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package legacy + +import ( + "fmt" + "reflect" + + "gopkg.in/ini.v1" + + "github.com/fatedier/frp/pkg/config/types" + "github.com/fatedier/frp/pkg/consts" +) + +// Proxy +var ( + proxyConfTypeMap = map[string]reflect.Type{ + consts.TCPProxy: reflect.TypeOf(TCPProxyConf{}), + consts.TCPMuxProxy: reflect.TypeOf(TCPMuxProxyConf{}), + consts.UDPProxy: reflect.TypeOf(UDPProxyConf{}), + consts.HTTPProxy: reflect.TypeOf(HTTPProxyConf{}), + consts.HTTPSProxy: reflect.TypeOf(HTTPSProxyConf{}), + consts.STCPProxy: reflect.TypeOf(STCPProxyConf{}), + consts.XTCPProxy: reflect.TypeOf(XTCPProxyConf{}), + consts.SUDPProxy: reflect.TypeOf(SUDPProxyConf{}), + } +) + +type ProxyConf interface { + // GetBaseConfig returns the BaseProxyConf for this config. + GetBaseConfig() *BaseProxyConf + // UnmarshalFromIni unmarshals a ini.Section into this config. This function + // will be called on the frpc side. + UnmarshalFromIni(string, string, *ini.Section) error +} + +func NewConfByType(proxyType string) ProxyConf { + v, ok := proxyConfTypeMap[proxyType] + if !ok { + return nil + } + cfg := reflect.New(v).Interface().(ProxyConf) + return cfg +} + +// Proxy Conf Loader +// DefaultProxyConf creates a empty ProxyConf object by proxyType. +// If proxyType doesn't exist, return nil. +func DefaultProxyConf(proxyType string) ProxyConf { + return NewConfByType(proxyType) +} + +// Proxy loaded from ini +func NewProxyConfFromIni(prefix, name string, section *ini.Section) (ProxyConf, error) { + // section.Key: if key not exists, section will set it with default value. + proxyType := section.Key("type").String() + if proxyType == "" { + proxyType = consts.TCPProxy + } + + conf := DefaultProxyConf(proxyType) + if conf == nil { + return nil, fmt.Errorf("invalid type [%s]", proxyType) + } + + if err := conf.UnmarshalFromIni(prefix, name, section); err != nil { + return nil, err + } + return conf, nil +} + +// LocalSvrConf configures what location the client will to, or what +// plugin will be used. +type LocalSvrConf struct { + // LocalIP specifies the IP address or host name to to. + LocalIP string `ini:"local_ip" json:"local_ip"` + // LocalPort specifies the port to to. + LocalPort int `ini:"local_port" json:"local_port"` + + // Plugin specifies what plugin should be used for ng. If this value + // is set, the LocalIp and LocalPort values will be ignored. By default, + // this value is "". + Plugin string `ini:"plugin" json:"plugin"` + // PluginParams specify parameters to be passed to the plugin, if one is + // being used. By default, this value is an empty map. + PluginParams map[string]string `ini:"-"` +} + +// HealthCheckConf configures health checking. This can be useful for load +// balancing purposes to detect and remove proxies to failing services. +type HealthCheckConf struct { + // HealthCheckType specifies what protocol to use for health checking. + // Valid values include "tcp", "http", and "". If this value is "", health + // checking will not be performed. By default, this value is "". + // + // If the type is "tcp", a connection will be attempted to the target + // server. If a connection cannot be established, the health check fails. + // + // If the type is "http", a GET request will be made to the endpoint + // specified by HealthCheckURL. If the response is not a 200, the health + // check fails. + HealthCheckType string `ini:"health_check_type" json:"health_check_type"` // tcp | http + // HealthCheckTimeoutS specifies the number of seconds to wait for a health + // check attempt to connect. If the timeout is reached, this counts as a + // health check failure. By default, this value is 3. + HealthCheckTimeoutS int `ini:"health_check_timeout_s" json:"health_check_timeout_s"` + // HealthCheckMaxFailed specifies the number of allowed failures before the + // is stopped. By default, this value is 1. + HealthCheckMaxFailed int `ini:"health_check_max_failed" json:"health_check_max_failed"` + // HealthCheckIntervalS specifies the time in seconds between health + // checks. By default, this value is 10. + HealthCheckIntervalS int `ini:"health_check_interval_s" json:"health_check_interval_s"` + // HealthCheckURL specifies the address to send health checks to if the + // health check type is "http". + HealthCheckURL string `ini:"health_check_url" json:"health_check_url"` + // HealthCheckAddr specifies the address to connect to if the health check + // type is "tcp". + HealthCheckAddr string `ini:"-"` +} + +// BaseProxyConf provides configuration info that is common to all types. +type BaseProxyConf struct { + // ProxyName is the name of this + ProxyName string `ini:"name" json:"name"` + // ProxyType specifies the type of this Valid values include "tcp", + // "udp", "http", "https", "stcp", and "xtcp". By default, this value is + // "tcp". + ProxyType string `ini:"type" json:"type"` + + // UseEncryption controls whether or not communication with the server will + // be encrypted. Encryption is done using the tokens supplied in the server + // and client configuration. By default, this value is false. + UseEncryption bool `ini:"use_encryption" json:"use_encryption"` + // UseCompression controls whether or not communication with the server + // will be compressed. By default, this value is false. + UseCompression bool `ini:"use_compression" json:"use_compression"` + // Group specifies which group the is a part of. The server will use + // this information to load balance proxies in the same group. If the value + // is "", this will not be in a group. By default, this value is "". + Group string `ini:"group" json:"group"` + // GroupKey specifies a group key, which should be the same among proxies + // of the same group. By default, this value is "". + GroupKey string `ini:"group_key" json:"group_key"` + + // ProxyProtocolVersion specifies which protocol version to use. Valid + // values include "v1", "v2", and "". If the value is "", a protocol + // version will be automatically selected. By default, this value is "". + ProxyProtocolVersion string `ini:"proxy_protocol_version" json:"proxy_protocol_version"` + + // BandwidthLimit limit the bandwidth + // 0 means no limit + BandwidthLimit types.BandwidthQuantity `ini:"bandwidth_limit" json:"bandwidth_limit"` + // BandwidthLimitMode specifies whether to limit the bandwidth on the + // client or server side. Valid values include "client" and "server". + // By default, this value is "client". + BandwidthLimitMode string `ini:"bandwidth_limit_mode" json:"bandwidth_limit_mode"` + + // meta info for each proxy + Metas map[string]string `ini:"-" json:"metas"` + + LocalSvrConf `ini:",extends"` + HealthCheckConf `ini:",extends"` +} + +// Base +func (cfg *BaseProxyConf) GetBaseConfig() *BaseProxyConf { + return cfg +} + +// BaseProxyConf apply custom logic changes. +func (cfg *BaseProxyConf) decorate(_ string, name string, section *ini.Section) error { + cfg.ProxyName = name + // metas_xxx + cfg.Metas = GetMapWithoutPrefix(section.KeysHash(), "meta_") + + // bandwidth_limit + if bandwidth, err := section.GetKey("bandwidth_limit"); err == nil { + cfg.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidth.String()) + if err != nil { + return err + } + } + + // plugin_xxx + cfg.LocalSvrConf.PluginParams = GetMapByPrefix(section.KeysHash(), "plugin_") + return nil +} + +type DomainConf struct { + CustomDomains []string `ini:"custom_domains" json:"custom_domains"` + SubDomain string `ini:"subdomain" json:"subdomain"` +} + +type RoleServerCommonConf struct { + Role string `ini:"role" json:"role"` + Sk string `ini:"sk" json:"sk"` + AllowUsers []string `ini:"allow_users" json:"allow_users"` +} + +// HTTP +type HTTPProxyConf struct { + BaseProxyConf `ini:",extends"` + DomainConf `ini:",extends"` + + Locations []string `ini:"locations" json:"locations"` + HTTPUser string `ini:"http_user" json:"http_user"` + HTTPPwd string `ini:"http_pwd" json:"http_pwd"` + HostHeaderRewrite string `ini:"host_header_rewrite" json:"host_header_rewrite"` + Headers map[string]string `ini:"-" json:"headers"` + RouteByHTTPUser string `ini:"route_by_http_user" json:"route_by_http_user"` +} + +func (cfg *HTTPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + cfg.Headers = GetMapWithoutPrefix(section.KeysHash(), "header_") + return nil +} + +// HTTPS +type HTTPSProxyConf struct { + BaseProxyConf `ini:",extends"` + DomainConf `ini:",extends"` +} + +func (cfg *HTTPSProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + return nil +} + +// TCP +type TCPProxyConf struct { + BaseProxyConf `ini:",extends"` + RemotePort int `ini:"remote_port" json:"remote_port"` +} + +func (cfg *TCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + + return nil +} + +// UDP +type UDPProxyConf struct { + BaseProxyConf `ini:",extends"` + + RemotePort int `ini:"remote_port" json:"remote_port"` +} + +func (cfg *UDPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + + return nil +} + +// TCPMux +type TCPMuxProxyConf struct { + BaseProxyConf `ini:",extends"` + DomainConf `ini:",extends"` + HTTPUser string `ini:"http_user" json:"http_user,omitempty"` + HTTPPwd string `ini:"http_pwd" json:"http_pwd,omitempty"` + RouteByHTTPUser string `ini:"route_by_http_user" json:"route_by_http_user"` + + Multiplexer string `ini:"multiplexer"` +} + +func (cfg *TCPMuxProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + + return nil +} + +// STCP +type STCPProxyConf struct { + BaseProxyConf `ini:",extends"` + RoleServerCommonConf `ini:",extends"` +} + +func (cfg *STCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + if cfg.Role == "" { + cfg.Role = "server" + } + return nil +} + +// XTCP +type XTCPProxyConf struct { + BaseProxyConf `ini:",extends"` + RoleServerCommonConf `ini:",extends"` +} + +func (cfg *XTCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + if cfg.Role == "" { + cfg.Role = "server" + } + return nil +} + +// SUDP +type SUDPProxyConf struct { + BaseProxyConf `ini:",extends"` + RoleServerCommonConf `ini:",extends"` +} + +func (cfg *SUDPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { + err := preUnmarshalFromIni(cfg, prefix, name, section) + if err != nil { + return err + } + + // Add custom logic unmarshal if exists + return nil +} + +func preUnmarshalFromIni(cfg ProxyConf, prefix string, name string, section *ini.Section) error { + err := section.MapTo(cfg) + if err != nil { + return err + } + + err = cfg.GetBaseConfig().decorate(prefix, name, section) + if err != nil { + return err + } + + return nil +} diff --git a/pkg/config/server.go b/pkg/config/legacy/server.go similarity index 87% rename from pkg/config/server.go rename to pkg/config/legacy/server.go index 7d3310f647c..a10db34b7e0 100644 --- a/pkg/config/server.go +++ b/pkg/config/legacy/server.go @@ -1,4 +1,4 @@ -// Copyright 2020 The frp Authors +// Copyright 2023 The frp Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,25 +12,29 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package legacy import ( - "fmt" "strings" - "github.com/go-playground/validator/v10" "gopkg.in/ini.v1" - "github.com/fatedier/frp/pkg/auth" - plugin "github.com/fatedier/frp/pkg/plugin/server" - "github.com/fatedier/frp/pkg/util/util" + legacyauth "github.com/fatedier/frp/pkg/auth/legacy" ) +type HTTPPluginOptions struct { + Name string `ini:"name"` + Addr string `ini:"addr"` + Path string `ini:"path"` + Ops []string `ini:"ops"` + TLSVerify bool `ini:"tls_verify"` +} + // ServerCommonConf contains information for a server service. It is // recommended to use GetDefaultServerConf instead of creating this object // directly, so that all unspecified fields have reasonable default values. type ServerCommonConf struct { - auth.ServerConfig `ini:",extends"` + legacyauth.ServerConfig `ini:",extends"` // BindAddr specifies the address that the server binds to. By default, // this value is "0.0.0.0". @@ -185,7 +189,7 @@ type ServerCommonConf struct { // connection. By default, this value is 10. UserConnTimeout int64 `ini:"user_conn_timeout" json:"user_conn_timeout"` // HTTPPlugins specify the server plugins support HTTP protocol. - HTTPPlugins map[string]plugin.HTTPPluginOptions `ini:"-" json:"http_plugins"` + HTTPPlugins map[string]HTTPPluginOptions `ini:"-" json:"http_plugins"` // UDPPacketSize specifies the UDP packet size // By default, this value is 1500 UDPPacketSize int64 `ini:"udp_packet_size" json:"udp_packet_size"` @@ -200,7 +204,7 @@ type ServerCommonConf struct { // defaults. func GetDefaultServerConf() ServerCommonConf { return ServerCommonConf{ - ServerConfig: auth.GetDefaultServerConf(), + ServerConfig: legacyauth.GetDefaultServerConf(), BindAddr: "0.0.0.0", BindPort: 7000, QUICKeepalivePeriod: 10, @@ -221,7 +225,7 @@ func GetDefaultServerConf() ServerCommonConf { MaxPortsPerClient: 0, HeartbeatTimeout: 90, UserConnTimeout: 10, - HTTPPlugins: make(map[string]plugin.HTTPPluginOptions), + HTTPPlugins: make(map[string]HTTPPluginOptions), UDPPacketSize: 1500, NatHoleAnalysisDataReserveHours: 7 * 24, } @@ -253,18 +257,11 @@ func UnmarshalServerConfFromIni(source interface{}) (ServerCommonConf, error) { // allow_ports allowPortStr := s.Key("allow_ports").String() if allowPortStr != "" { - allowPorts, err := util.ParseRangeNumbers(allowPortStr) - if err != nil { - return ServerCommonConf{}, fmt.Errorf("invalid allow_ports: %v", err) - } - for _, port := range allowPorts { - common.AllowPorts[int(port)] = struct{}{} - } common.AllowPortsStr = allowPortStr } // plugin.xxx - pluginOpts := make(map[string]plugin.HTTPPluginOptions) + pluginOpts := make(map[string]HTTPPluginOptions) for _, section := range f.Sections() { name := section.Name() if !strings.HasPrefix(name, "plugin.") { @@ -283,47 +280,10 @@ func UnmarshalServerConfFromIni(source interface{}) (ServerCommonConf, error) { return common, nil } -func (cfg *ServerCommonConf) Complete() { - if cfg.LogFile == "console" { - cfg.LogWay = "console" - } else { - cfg.LogWay = "file" - } - - if cfg.ProxyBindAddr == "" { - cfg.ProxyBindAddr = cfg.BindAddr - } - - if cfg.TLSTrustedCaFile != "" { - cfg.TLSOnly = true - } -} - -func (cfg *ServerCommonConf) Validate() error { - if !cfg.DashboardTLSMode { - if cfg.DashboardTLSCertFile != "" { - fmt.Println("WARNING! dashboard_tls_cert_file is invalid when dashboard_tls_mode is false") - } - - if cfg.DashboardTLSKeyFile != "" { - fmt.Println("WARNING! dashboard_tls_key_file is invalid when dashboard_tls_mode is false") - } - } else { - if cfg.DashboardTLSCertFile == "" { - return fmt.Errorf("ERROR! dashboard_tls_cert_file must be specified when dashboard_tls_mode is true") - } - - if cfg.DashboardTLSKeyFile == "" { - return fmt.Errorf("ERROR! dashboard_tls_cert_file must be specified when dashboard_tls_mode is true") - } - } - return validator.New().Struct(cfg) -} - -func loadHTTPPluginOpt(section *ini.Section) (*plugin.HTTPPluginOptions, error) { +func loadHTTPPluginOpt(section *ini.Section) (*HTTPPluginOptions, error) { name := strings.TrimSpace(strings.TrimPrefix(section.Name(), "plugin.")) - opt := new(plugin.HTTPPluginOptions) + opt := &HTTPPluginOptions{} err := section.MapTo(opt) if err != nil { return nil, err diff --git a/pkg/config/utils.go b/pkg/config/legacy/utils.go similarity index 98% rename from pkg/config/utils.go rename to pkg/config/legacy/utils.go index aef674d4308..9366f8c76c1 100644 --- a/pkg/config/utils.go +++ b/pkg/config/legacy/utils.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package legacy import ( "strings" diff --git a/pkg/config/value.go b/pkg/config/legacy/value.go similarity index 99% rename from pkg/config/value.go rename to pkg/config/legacy/value.go index 2f228823376..ecf805c9912 100644 --- a/pkg/config/value.go +++ b/pkg/config/legacy/value.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package legacy import ( "bytes" diff --git a/pkg/config/visitor.go b/pkg/config/legacy/visitor.go similarity index 74% rename from pkg/config/visitor.go rename to pkg/config/legacy/visitor.go index 31a8a02bd4f..5ee36a1ac1c 100644 --- a/pkg/config/visitor.go +++ b/pkg/config/legacy/visitor.go @@ -1,4 +1,4 @@ -// Copyright 2018 fatedier, fatedier@gmail.com +// Copyright 2023 The frp Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,13 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package legacy import ( "fmt" "reflect" - "github.com/samber/lo" "gopkg.in/ini.v1" "github.com/fatedier/frp/pkg/consts" @@ -38,8 +37,16 @@ type VisitorConf interface { GetBaseConfig() *BaseVisitorConf // UnmarshalFromIni unmarshals config from ini. UnmarshalFromIni(prefix string, name string, section *ini.Section) error - // Validate validates config. - Validate() error +} + +// DefaultVisitorConf creates a empty VisitorConf object by visitorType. +// If visitorType doesn't exist, return nil. +func DefaultVisitorConf(visitorType string) VisitorConf { + v, ok := visitorConfTypeMap[visitorType] + if !ok { + return nil + } + return reflect.New(v).Interface().(VisitorConf) } type BaseVisitorConf struct { @@ -59,96 +66,14 @@ type BaseVisitorConf struct { BindPort int `ini:"bind_port" json:"bind_port"` } -type SUDPVisitorConf struct { - BaseVisitorConf `ini:",extends"` -} - -type STCPVisitorConf struct { - BaseVisitorConf `ini:",extends"` -} - -type XTCPVisitorConf struct { - BaseVisitorConf `ini:",extends"` - - Protocol string `ini:"protocol" json:"protocol,omitempty"` - KeepTunnelOpen bool `ini:"keep_tunnel_open" json:"keep_tunnel_open,omitempty"` - MaxRetriesAnHour int `ini:"max_retries_an_hour" json:"max_retries_an_hour,omitempty"` - MinRetryInterval int `ini:"min_retry_interval" json:"min_retry_interval,omitempty"` - FallbackTo string `ini:"fallback_to" json:"fallback_to,omitempty"` - FallbackTimeoutMs int `ini:"fallback_timeout_ms" json:"fallback_timeout_ms,omitempty"` -} - -// DefaultVisitorConf creates a empty VisitorConf object by visitorType. -// If visitorType doesn't exist, return nil. -func DefaultVisitorConf(visitorType string) VisitorConf { - v, ok := visitorConfTypeMap[visitorType] - if !ok { - return nil - } - return reflect.New(v).Interface().(VisitorConf) -} - -// Visitor loaded from ini -func NewVisitorConfFromIni(prefix string, name string, section *ini.Section) (VisitorConf, error) { - // section.Key: if key not exists, section will set it with default value. - visitorType := section.Key("type").String() - - if visitorType == "" { - return nil, fmt.Errorf("type shouldn't be empty") - } - - conf := DefaultVisitorConf(visitorType) - if conf == nil { - return nil, fmt.Errorf("type [%s] error", visitorType) - } - - if err := conf.UnmarshalFromIni(prefix, name, section); err != nil { - return nil, fmt.Errorf("type [%s] error", visitorType) - } - - if err := conf.Validate(); err != nil { - return nil, err - } - - return conf, nil -} - // Base func (cfg *BaseVisitorConf) GetBaseConfig() *BaseVisitorConf { return cfg } -func (cfg *BaseVisitorConf) validate() (err error) { - if cfg.Role != "visitor" { - err = fmt.Errorf("invalid role") - return - } - if cfg.BindAddr == "" { - err = fmt.Errorf("bind_addr shouldn't be empty") - return - } - // BindPort can be less than 0, it means don't bind to the port and only receive connections redirected from - // other visitors - if cfg.BindPort == 0 { - err = fmt.Errorf("bind_port is required") - return - } - return -} - -func (cfg *BaseVisitorConf) unmarshalFromIni(prefix string, name string, section *ini.Section) error { - _ = section - +func (cfg *BaseVisitorConf) unmarshalFromIni(_ string, name string, _ *ini.Section) error { // Custom decoration after basic unmarshal: - // proxy name - cfg.ProxyName = prefix + name - - // server_name - if cfg.ServerUser == "" { - cfg.ServerName = prefix + cfg.ServerName - } else { - cfg.ServerName = cfg.ServerUser + "." + cfg.ServerName - } + cfg.ProxyName = name // bind_addr if cfg.BindAddr == "" { @@ -170,8 +95,9 @@ func preVisitorUnmarshalFromIni(cfg VisitorConf, prefix string, name string, sec return nil } -// SUDP -var _ VisitorConf = &SUDPVisitorConf{} +type SUDPVisitorConf struct { + BaseVisitorConf `ini:",extends"` +} func (cfg *SUDPVisitorConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) (err error) { err = preVisitorUnmarshalFromIni(cfg, prefix, name, section) @@ -184,19 +110,10 @@ func (cfg *SUDPVisitorConf) UnmarshalFromIni(prefix string, name string, section return } -func (cfg *SUDPVisitorConf) Validate() (err error) { - if err = cfg.BaseVisitorConf.validate(); err != nil { - return - } - - // Add custom logic validate, if exists - - return +type STCPVisitorConf struct { + BaseVisitorConf `ini:",extends"` } -// STCP -var _ VisitorConf = &STCPVisitorConf{} - func (cfg *STCPVisitorConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) (err error) { err = preVisitorUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -208,19 +125,17 @@ func (cfg *STCPVisitorConf) UnmarshalFromIni(prefix string, name string, section return } -func (cfg *STCPVisitorConf) Validate() (err error) { - if err = cfg.BaseVisitorConf.validate(); err != nil { - return - } - - // Add custom logic validate, if exists +type XTCPVisitorConf struct { + BaseVisitorConf `ini:",extends"` - return + Protocol string `ini:"protocol" json:"protocol,omitempty"` + KeepTunnelOpen bool `ini:"keep_tunnel_open" json:"keep_tunnel_open,omitempty"` + MaxRetriesAnHour int `ini:"max_retries_an_hour" json:"max_retries_an_hour,omitempty"` + MinRetryInterval int `ini:"min_retry_interval" json:"min_retry_interval,omitempty"` + FallbackTo string `ini:"fallback_to" json:"fallback_to,omitempty"` + FallbackTimeoutMs int `ini:"fallback_timeout_ms" json:"fallback_timeout_ms,omitempty"` } -// XTCP -var _ VisitorConf = &XTCPVisitorConf{} - func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) (err error) { err = preVisitorUnmarshalFromIni(cfg, prefix, name, section) if err != nil { @@ -243,14 +158,22 @@ func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name string, section return } -func (cfg *XTCPVisitorConf) Validate() (err error) { - if err = cfg.BaseVisitorConf.validate(); err != nil { - return +// Visitor loaded from ini +func NewVisitorConfFromIni(prefix string, name string, section *ini.Section) (VisitorConf, error) { + // section.Key: if key not exists, section will set it with default value. + visitorType := section.Key("type").String() + + if visitorType == "" { + return nil, fmt.Errorf("type shouldn't be empty") + } + + conf := DefaultVisitorConf(visitorType) + if conf == nil { + return nil, fmt.Errorf("type [%s] error", visitorType) } - // Add custom logic validate, if exists - if !lo.Contains([]string{"", "kcp", "quic"}, cfg.Protocol) { - return fmt.Errorf("protocol should be 'kcp' or 'quic'") + if err := conf.UnmarshalFromIni(prefix, name, section); err != nil { + return nil, fmt.Errorf("type [%s] error", visitorType) } - return + return conf, nil } diff --git a/pkg/config/load.go b/pkg/config/load.go new file mode 100644 index 00000000000..2f454eb289e --- /dev/null +++ b/pkg/config/load.go @@ -0,0 +1,283 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package config + +import ( + "bytes" + "encoding/json" + "fmt" + "html/template" + "os" + "path/filepath" + "strings" + + "github.com/BurntSushi/toml" + "github.com/samber/lo" + "gopkg.in/ini.v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/yaml" + + "github.com/fatedier/frp/pkg/config/legacy" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/util" +) + +var glbEnvs map[string]string + +func init() { + glbEnvs = make(map[string]string) + envs := os.Environ() + for _, env := range envs { + pair := strings.SplitN(env, "=", 2) + if len(pair) != 2 { + continue + } + glbEnvs[pair[0]] = pair[1] + } +} + +type Values struct { + Envs map[string]string // environment vars +} + +func GetValues() *Values { + return &Values{ + Envs: glbEnvs, + } +} + +func DetectLegacyINIFormat(content []byte) bool { + f, err := ini.Load(content) + if err != nil { + return false + } + if _, err := f.GetSection("common"); err == nil { + return true + } + return false +} + +func DetectLegacyINIFormatFromFile(path string) bool { + b, err := os.ReadFile(path) + if err != nil { + return false + } + return DetectLegacyINIFormat(b) +} + +func RenderWithTemplate(in []byte, values *Values) ([]byte, error) { + tmpl, err := template.New("frp").Parse(string(in)) + if err != nil { + return nil, err + } + + buffer := bytes.NewBufferString("") + if err := tmpl.Execute(buffer, values); err != nil { + return nil, err + } + return buffer.Bytes(), nil +} + +func LoadFileContentWithTemplate(path string, values *Values) ([]byte, error) { + b, err := os.ReadFile(path) + if err != nil { + return nil, err + } + return RenderWithTemplate(b, values) +} + +func LoadConfigureFromFile(path string, c any) error { + content, err := LoadFileContentWithTemplate(path, GetValues()) + if err != nil { + return err + } + return LoadConfigure(content, c) +} + +// LoadConfigure loads configuration from bytes and unmarshal into c. +// Now it supports json, yaml and toml format. +func LoadConfigure(b []byte, c any) error { + var tomlObj interface{} + if err := toml.Unmarshal(b, &tomlObj); err == nil { + b, err = json.Marshal(&tomlObj) + if err != nil { + return err + } + } + + decoder := yaml.NewYAMLOrJSONDecoder(bytes.NewBuffer(b), 4096) + return decoder.Decode(c) +} + +func NewProxyConfigurerFromMsg(m *msg.NewProxy, serverCfg *v1.ServerConfig) (v1.ProxyConfigurer, error) { + m.ProxyType = util.EmptyOr(m.ProxyType, consts.TCPProxy) + + configurer := v1.NewProxyConfigurerByType(m.ProxyType) + if configurer == nil { + return nil, fmt.Errorf("unknown proxy type: %s", m.ProxyType) + } + + configurer.UnmarshalFromMsg(m) + configurer.Complete("") + + if err := validation.ValidateProxyConfigurerForServer(configurer, serverCfg); err != nil { + return nil, err + } + return configurer, nil +} + +func LoadServerConfig(path string) (*v1.ServerConfig, bool, error) { + var ( + svrCfg *v1.ServerConfig + isLegacyFormat bool + ) + // detect legacy ini format + if DetectLegacyINIFormatFromFile(path) { + content, err := legacy.GetRenderedConfFromFile(path) + if err != nil { + return nil, true, err + } + legacyCfg, err := legacy.UnmarshalServerConfFromIni(content) + if err != nil { + return nil, true, err + } + svrCfg = legacy.Convert_ServerCommonConf_To_v1(&legacyCfg) + isLegacyFormat = true + } else { + svrCfg = &v1.ServerConfig{} + if err := LoadConfigureFromFile(path, svrCfg); err != nil { + return nil, false, err + } + } + if svrCfg != nil { + svrCfg.Complete() + } + return svrCfg, isLegacyFormat, nil +} + +func LoadClientConfig(path string) ( + *v1.ClientCommonConfig, + []v1.ProxyConfigurer, + []v1.VisitorConfigurer, + bool, error, +) { + var ( + cliCfg *v1.ClientCommonConfig + pxyCfgs = make([]v1.ProxyConfigurer, 0) + visitorCfgs = make([]v1.VisitorConfigurer, 0) + isLegacyFormat bool + ) + + if DetectLegacyINIFormatFromFile(path) { + legacyCommon, legacyPxyCfgs, legacyVisitorCfgs, err := legacy.ParseClientConfig(path) + if err != nil { + return nil, nil, nil, true, err + } + cliCfg = legacy.Convert_ClientCommonConf_To_v1(&legacyCommon) + for _, c := range legacyPxyCfgs { + pxyCfgs = append(pxyCfgs, legacy.Convert_ProxyConf_To_v1(c)) + } + for _, c := range legacyVisitorCfgs { + visitorCfgs = append(visitorCfgs, legacy.Convert_VisitorConf_To_v1(c)) + } + isLegacyFormat = true + } else { + allCfg := v1.ClientConfig{} + if err := LoadConfigureFromFile(path, &allCfg); err != nil { + return nil, nil, nil, false, err + } + cliCfg = &allCfg.ClientCommonConfig + for _, c := range allCfg.Proxies { + pxyCfgs = append(pxyCfgs, c.ProxyConfigurer) + } + for _, c := range allCfg.Visitors { + visitorCfgs = append(visitorCfgs, c.VisitorConfigurer) + } + } + + // Load additional config from includes. + // legacy ini format alredy handle this in ParseClientConfig. + if len(cliCfg.IncludeConfigFiles) > 0 && !isLegacyFormat { + extPxyCfgs, extVisitorCfgs, err := LoadAdditionalClientConfigs(cliCfg.IncludeConfigFiles, isLegacyFormat) + if err != nil { + return nil, nil, nil, isLegacyFormat, err + } + pxyCfgs = append(pxyCfgs, extPxyCfgs...) + visitorCfgs = append(visitorCfgs, extVisitorCfgs...) + } + + // Filter by start + if len(cliCfg.Start) > 0 { + startSet := sets.New(cliCfg.Start...) + pxyCfgs = lo.Filter(pxyCfgs, func(c v1.ProxyConfigurer, _ int) bool { + return startSet.Has(c.GetBaseConfig().Name) + }) + visitorCfgs = lo.Filter(visitorCfgs, func(c v1.VisitorConfigurer, _ int) bool { + return startSet.Has(c.GetBaseConfig().Name) + }) + } + + if cliCfg != nil { + cliCfg.Complete() + } + for _, c := range pxyCfgs { + c.Complete(cliCfg.User) + } + for _, c := range visitorCfgs { + c.Complete(cliCfg) + } + return cliCfg, pxyCfgs, visitorCfgs, isLegacyFormat, nil +} + +func LoadAdditionalClientConfigs(paths []string, isLegacyFormat bool) ([]v1.ProxyConfigurer, []v1.VisitorConfigurer, error) { + pxyCfgs := make([]v1.ProxyConfigurer, 0) + visitorCfgs := make([]v1.VisitorConfigurer, 0) + for _, path := range paths { + absDir, err := filepath.Abs(filepath.Dir(path)) + if err != nil { + return nil, nil, err + } + if _, err := os.Stat(absDir); os.IsNotExist(err) { + return nil, nil, err + } + files, err := os.ReadDir(absDir) + if err != nil { + return nil, nil, err + } + for _, fi := range files { + if fi.IsDir() { + continue + } + absFile := filepath.Join(absDir, fi.Name()) + if matched, _ := filepath.Match(filepath.Join(absDir, filepath.Base(path)), absFile); matched { + // support yaml/json/toml + cfg := v1.ClientConfig{} + if err := LoadConfigureFromFile(absFile, &cfg); err != nil { + return nil, nil, fmt.Errorf("load additional config from %s error: %v", absFile, err) + } + for _, c := range cfg.Proxies { + pxyCfgs = append(pxyCfgs, c.ProxyConfigurer) + } + for _, c := range cfg.Visitors { + visitorCfgs = append(visitorCfgs, c.VisitorConfigurer) + } + } + } + } + return pxyCfgs, visitorCfgs, nil +} diff --git a/pkg/config/proxy.go b/pkg/config/proxy.go deleted file mode 100644 index 1169fd7527e..00000000000 --- a/pkg/config/proxy.go +++ /dev/null @@ -1,921 +0,0 @@ -// Copyright 2016 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package config - -import ( - "fmt" - "net" - "reflect" - "strconv" - "strings" - - "gopkg.in/ini.v1" - - "github.com/fatedier/frp/pkg/consts" - "github.com/fatedier/frp/pkg/msg" -) - -// Proxy -var ( - proxyConfTypeMap = map[string]reflect.Type{ - consts.TCPProxy: reflect.TypeOf(TCPProxyConf{}), - consts.TCPMuxProxy: reflect.TypeOf(TCPMuxProxyConf{}), - consts.UDPProxy: reflect.TypeOf(UDPProxyConf{}), - consts.HTTPProxy: reflect.TypeOf(HTTPProxyConf{}), - consts.HTTPSProxy: reflect.TypeOf(HTTPSProxyConf{}), - consts.STCPProxy: reflect.TypeOf(STCPProxyConf{}), - consts.XTCPProxy: reflect.TypeOf(XTCPProxyConf{}), - consts.SUDPProxy: reflect.TypeOf(SUDPProxyConf{}), - } -) - -func NewConfByType(proxyType string) ProxyConf { - v, ok := proxyConfTypeMap[proxyType] - if !ok { - return nil - } - cfg := reflect.New(v).Interface().(ProxyConf) - return cfg -} - -type ProxyConf interface { - // GetBaseConfig returns the BaseProxyConf for this config. - GetBaseConfig() *BaseProxyConf - // SetDefaultValues sets the default values for this config. - SetDefaultValues() - // UnmarshalFromMsg unmarshals a msg.NewProxy message into this config. - // This function will be called on the frps side. - UnmarshalFromMsg(*msg.NewProxy) - // UnmarshalFromIni unmarshals a ini.Section into this config. This function - // will be called on the frpc side. - UnmarshalFromIni(string, string, *ini.Section) error - // MarshalToMsg marshals this config into a msg.NewProxy message. This - // function will be called on the frpc side. - MarshalToMsg(*msg.NewProxy) - // ValidateForClient checks that the config is valid for the frpc side. - ValidateForClient() error - // ValidateForServer checks that the config is valid for the frps side. - ValidateForServer(ServerCommonConf) error -} - -// LocalSvrConf configures what location the client will to, or what -// plugin will be used. -type LocalSvrConf struct { - // LocalIP specifies the IP address or host name to to. - LocalIP string `ini:"local_ip" json:"local_ip"` - // LocalPort specifies the port to to. - LocalPort int `ini:"local_port" json:"local_port"` - - // Plugin specifies what plugin should be used for ng. If this value - // is set, the LocalIp and LocalPort values will be ignored. By default, - // this value is "". - Plugin string `ini:"plugin" json:"plugin"` - // PluginParams specify parameters to be passed to the plugin, if one is - // being used. By default, this value is an empty map. - PluginParams map[string]string `ini:"-"` -} - -// HealthCheckConf configures health checking. This can be useful for load -// balancing purposes to detect and remove proxies to failing services. -type HealthCheckConf struct { - // HealthCheckType specifies what protocol to use for health checking. - // Valid values include "tcp", "http", and "". If this value is "", health - // checking will not be performed. By default, this value is "". - // - // If the type is "tcp", a connection will be attempted to the target - // server. If a connection cannot be established, the health check fails. - // - // If the type is "http", a GET request will be made to the endpoint - // specified by HealthCheckURL. If the response is not a 200, the health - // check fails. - HealthCheckType string `ini:"health_check_type" json:"health_check_type"` // tcp | http - // HealthCheckTimeoutS specifies the number of seconds to wait for a health - // check attempt to connect. If the timeout is reached, this counts as a - // health check failure. By default, this value is 3. - HealthCheckTimeoutS int `ini:"health_check_timeout_s" json:"health_check_timeout_s"` - // HealthCheckMaxFailed specifies the number of allowed failures before the - // is stopped. By default, this value is 1. - HealthCheckMaxFailed int `ini:"health_check_max_failed" json:"health_check_max_failed"` - // HealthCheckIntervalS specifies the time in seconds between health - // checks. By default, this value is 10. - HealthCheckIntervalS int `ini:"health_check_interval_s" json:"health_check_interval_s"` - // HealthCheckURL specifies the address to send health checks to if the - // health check type is "http". - HealthCheckURL string `ini:"health_check_url" json:"health_check_url"` - // HealthCheckAddr specifies the address to connect to if the health check - // type is "tcp". - HealthCheckAddr string `ini:"-"` -} - -// BaseProxyConf provides configuration info that is common to all types. -type BaseProxyConf struct { - // ProxyName is the name of this - ProxyName string `ini:"name" json:"name"` - // ProxyType specifies the type of this Valid values include "tcp", - // "udp", "http", "https", "stcp", and "xtcp". By default, this value is - // "tcp". - ProxyType string `ini:"type" json:"type"` - - // UseEncryption controls whether or not communication with the server will - // be encrypted. Encryption is done using the tokens supplied in the server - // and client configuration. By default, this value is false. - UseEncryption bool `ini:"use_encryption" json:"use_encryption"` - // UseCompression controls whether or not communication with the server - // will be compressed. By default, this value is false. - UseCompression bool `ini:"use_compression" json:"use_compression"` - // Group specifies which group the is a part of. The server will use - // this information to load balance proxies in the same group. If the value - // is "", this will not be in a group. By default, this value is "". - Group string `ini:"group" json:"group"` - // GroupKey specifies a group key, which should be the same among proxies - // of the same group. By default, this value is "". - GroupKey string `ini:"group_key" json:"group_key"` - - // ProxyProtocolVersion specifies which protocol version to use. Valid - // values include "v1", "v2", and "". If the value is "", a protocol - // version will be automatically selected. By default, this value is "". - ProxyProtocolVersion string `ini:"proxy_protocol_version" json:"proxy_protocol_version"` - - // BandwidthLimit limit the bandwidth - // 0 means no limit - BandwidthLimit BandwidthQuantity `ini:"bandwidth_limit" json:"bandwidth_limit"` - // BandwidthLimitMode specifies whether to limit the bandwidth on the - // client or server side. Valid values include "client" and "server". - // By default, this value is "client". - BandwidthLimitMode string `ini:"bandwidth_limit_mode" json:"bandwidth_limit_mode"` - - // meta info for each proxy - Metas map[string]string `ini:"-" json:"metas"` - - LocalSvrConf `ini:",extends"` - HealthCheckConf `ini:",extends"` -} - -type DomainConf struct { - CustomDomains []string `ini:"custom_domains" json:"custom_domains"` - SubDomain string `ini:"subdomain" json:"subdomain"` -} - -type RoleServerCommonConf struct { - Role string `ini:"role" json:"role"` - Sk string `ini:"sk" json:"sk"` - AllowUsers []string `ini:"allow_users" json:"allow_users"` -} - -func (cfg *RoleServerCommonConf) setDefaultValues() { - cfg.Role = "server" -} - -func (cfg *RoleServerCommonConf) marshalToMsg(m *msg.NewProxy) { - m.Sk = cfg.Sk - m.AllowUsers = cfg.AllowUsers -} - -func (cfg *RoleServerCommonConf) unmarshalFromMsg(m *msg.NewProxy) { - cfg.Sk = m.Sk - cfg.AllowUsers = m.AllowUsers -} - -// HTTP -type HTTPProxyConf struct { - BaseProxyConf `ini:",extends"` - DomainConf `ini:",extends"` - - Locations []string `ini:"locations" json:"locations"` - HTTPUser string `ini:"http_user" json:"http_user"` - HTTPPwd string `ini:"http_pwd" json:"http_pwd"` - HostHeaderRewrite string `ini:"host_header_rewrite" json:"host_header_rewrite"` - Headers map[string]string `ini:"-" json:"headers"` - RouteByHTTPUser string `ini:"route_by_http_user" json:"route_by_http_user"` -} - -// HTTPS -type HTTPSProxyConf struct { - BaseProxyConf `ini:",extends"` - DomainConf `ini:",extends"` -} - -// TCP -type TCPProxyConf struct { - BaseProxyConf `ini:",extends"` - RemotePort int `ini:"remote_port" json:"remote_port"` -} - -// UDP -type UDPProxyConf struct { - BaseProxyConf `ini:",extends"` - - RemotePort int `ini:"remote_port" json:"remote_port"` -} - -// TCPMux -type TCPMuxProxyConf struct { - BaseProxyConf `ini:",extends"` - DomainConf `ini:",extends"` - HTTPUser string `ini:"http_user" json:"http_user,omitempty"` - HTTPPwd string `ini:"http_pwd" json:"http_pwd,omitempty"` - RouteByHTTPUser string `ini:"route_by_http_user" json:"route_by_http_user"` - - Multiplexer string `ini:"multiplexer"` -} - -// STCP -type STCPProxyConf struct { - BaseProxyConf `ini:",extends"` - RoleServerCommonConf `ini:",extends"` -} - -// XTCP -type XTCPProxyConf struct { - BaseProxyConf `ini:",extends"` - RoleServerCommonConf `ini:",extends"` -} - -// SUDP -type SUDPProxyConf struct { - BaseProxyConf `ini:",extends"` - RoleServerCommonConf `ini:",extends"` -} - -// Proxy Conf Loader -// DefaultProxyConf creates a empty ProxyConf object by proxyType. -// If proxyType doesn't exist, return nil. -func DefaultProxyConf(proxyType string) ProxyConf { - conf := NewConfByType(proxyType) - if conf != nil { - conf.SetDefaultValues() - } - return conf -} - -// Proxy loaded from ini -func NewProxyConfFromIni(prefix, name string, section *ini.Section) (ProxyConf, error) { - // section.Key: if key not exists, section will set it with default value. - proxyType := section.Key("type").String() - if proxyType == "" { - proxyType = consts.TCPProxy - } - - conf := DefaultProxyConf(proxyType) - if conf == nil { - return nil, fmt.Errorf("invalid type [%s]", proxyType) - } - - if err := conf.UnmarshalFromIni(prefix, name, section); err != nil { - return nil, err - } - - if err := conf.ValidateForClient(); err != nil { - return nil, err - } - return conf, nil -} - -// Proxy loaded from msg -func NewProxyConfFromMsg(m *msg.NewProxy, serverCfg ServerCommonConf) (ProxyConf, error) { - if m.ProxyType == "" { - m.ProxyType = consts.TCPProxy - } - - conf := DefaultProxyConf(m.ProxyType) - if conf == nil { - return nil, fmt.Errorf("proxy [%s] type [%s] error", m.ProxyName, m.ProxyType) - } - - conf.UnmarshalFromMsg(m) - - err := conf.ValidateForServer(serverCfg) - if err != nil { - return nil, err - } - - return conf, nil -} - -// Base -func (cfg *BaseProxyConf) GetBaseConfig() *BaseProxyConf { - return cfg -} - -func (cfg *BaseProxyConf) SetDefaultValues() { - cfg.LocalSvrConf = LocalSvrConf{ - LocalIP: "127.0.0.1", - } - cfg.BandwidthLimitMode = BandwidthLimitModeClient -} - -// BaseProxyConf apply custom logic changes. -func (cfg *BaseProxyConf) decorate(prefix string, name string, section *ini.Section) error { - // proxy_name - cfg.ProxyName = prefix + name - - // metas_xxx - cfg.Metas = GetMapWithoutPrefix(section.KeysHash(), "meta_") - - // bandwidth_limit - if bandwidth, err := section.GetKey("bandwidth_limit"); err == nil { - cfg.BandwidthLimit, err = NewBandwidthQuantity(bandwidth.String()) - if err != nil { - return err - } - } - - // plugin_xxx - cfg.LocalSvrConf.PluginParams = GetMapByPrefix(section.KeysHash(), "plugin_") - - // custom logic code - if cfg.HealthCheckType == "tcp" && cfg.Plugin == "" { - cfg.HealthCheckAddr = cfg.LocalIP + fmt.Sprintf(":%d", cfg.LocalPort) - } - - if cfg.HealthCheckType == "http" && cfg.Plugin == "" && cfg.HealthCheckURL != "" { - s := "http://" + net.JoinHostPort(cfg.LocalIP, strconv.Itoa(cfg.LocalPort)) - if !strings.HasPrefix(cfg.HealthCheckURL, "/") { - s += "/" - } - cfg.HealthCheckURL = s + cfg.HealthCheckURL - } - - return nil -} - -func (cfg *BaseProxyConf) marshalToMsg(m *msg.NewProxy) { - m.ProxyName = cfg.ProxyName - m.ProxyType = cfg.ProxyType - m.UseEncryption = cfg.UseEncryption - m.UseCompression = cfg.UseCompression - m.BandwidthLimit = cfg.BandwidthLimit.String() - // leave it empty for default value to reduce traffic - if cfg.BandwidthLimitMode != "client" { - m.BandwidthLimitMode = cfg.BandwidthLimitMode - } - m.Group = cfg.Group - m.GroupKey = cfg.GroupKey - m.Metas = cfg.Metas -} - -func (cfg *BaseProxyConf) unmarshalFromMsg(m *msg.NewProxy) { - cfg.ProxyName = m.ProxyName - cfg.ProxyType = m.ProxyType - cfg.UseEncryption = m.UseEncryption - cfg.UseCompression = m.UseCompression - if m.BandwidthLimit != "" { - cfg.BandwidthLimit, _ = NewBandwidthQuantity(m.BandwidthLimit) - } - if m.BandwidthLimitMode != "" { - cfg.BandwidthLimitMode = m.BandwidthLimitMode - } - cfg.Group = m.Group - cfg.GroupKey = m.GroupKey - cfg.Metas = m.Metas -} - -func (cfg *BaseProxyConf) validateForClient() (err error) { - if cfg.ProxyProtocolVersion != "" { - if cfg.ProxyProtocolVersion != "v1" && cfg.ProxyProtocolVersion != "v2" { - return fmt.Errorf("no support proxy protocol version: %s", cfg.ProxyProtocolVersion) - } - } - - if cfg.BandwidthLimitMode != "client" && cfg.BandwidthLimitMode != "server" { - return fmt.Errorf("bandwidth_limit_mode should be client or server") - } - - if err = cfg.LocalSvrConf.validateForClient(); err != nil { - return - } - if err = cfg.HealthCheckConf.validateForClient(); err != nil { - return - } - return nil -} - -func (cfg *BaseProxyConf) validateForServer() (err error) { - if cfg.BandwidthLimitMode != "client" && cfg.BandwidthLimitMode != "server" { - return fmt.Errorf("bandwidth_limit_mode should be client or server") - } - return nil -} - -// DomainConf -func (cfg *DomainConf) check() (err error) { - if len(cfg.CustomDomains) == 0 && cfg.SubDomain == "" { - err = fmt.Errorf("custom_domains and subdomain should set at least one of them") - return - } - return -} - -func (cfg *DomainConf) validateForClient() (err error) { - if err = cfg.check(); err != nil { - return - } - return -} - -func (cfg *DomainConf) validateForServer(serverCfg ServerCommonConf) (err error) { - if err = cfg.check(); err != nil { - return - } - - for _, domain := range cfg.CustomDomains { - if serverCfg.SubDomainHost != "" && len(strings.Split(serverCfg.SubDomainHost, ".")) < len(strings.Split(domain, ".")) { - if strings.Contains(domain, serverCfg.SubDomainHost) { - return fmt.Errorf("custom domain [%s] should not belong to subdomain_host [%s]", domain, serverCfg.SubDomainHost) - } - } - } - - if cfg.SubDomain != "" { - if serverCfg.SubDomainHost == "" { - return fmt.Errorf("subdomain is not supported because this feature is not enabled in remote frps") - } - if strings.Contains(cfg.SubDomain, ".") || strings.Contains(cfg.SubDomain, "*") { - return fmt.Errorf("'.' and '*' is not supported in subdomain") - } - } - return nil -} - -// LocalSvrConf -func (cfg *LocalSvrConf) validateForClient() (err error) { - if cfg.Plugin == "" { - if cfg.LocalIP == "" { - err = fmt.Errorf("local ip or plugin is required") - return - } - if cfg.LocalPort <= 0 { - err = fmt.Errorf("error local_port") - return - } - } - return -} - -// HealthCheckConf -func (cfg *HealthCheckConf) validateForClient() error { - if cfg.HealthCheckType != "" && cfg.HealthCheckType != "tcp" && cfg.HealthCheckType != "http" { - return fmt.Errorf("unsupport health check type") - } - if cfg.HealthCheckType != "" { - if cfg.HealthCheckType == "http" && cfg.HealthCheckURL == "" { - return fmt.Errorf("health_check_url is required for health check type 'http'") - } - } - return nil -} - -func preUnmarshalFromIni(cfg ProxyConf, prefix string, name string, section *ini.Section) error { - err := section.MapTo(cfg) - if err != nil { - return err - } - - err = cfg.GetBaseConfig().decorate(prefix, name, section) - if err != nil { - return err - } - - return nil -} - -// TCP -func (cfg *TCPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.RemotePort = m.RemotePort -} - -func (cfg *TCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - - return nil -} - -func (cfg *TCPProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - m.RemotePort = cfg.RemotePort -} - -func (cfg *TCPProxyConf) ValidateForClient() (err error) { - if err = cfg.BaseProxyConf.validateForClient(); err != nil { - return - } - - // Add custom logic check if exists - - return -} - -func (cfg *TCPProxyConf) ValidateForServer(_ ServerCommonConf) error { - return cfg.BaseProxyConf.validateForServer() -} - -// TCPMux -func (cfg *TCPMuxProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - - return nil -} - -func (cfg *TCPMuxProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.CustomDomains = m.CustomDomains - cfg.SubDomain = m.SubDomain - cfg.Multiplexer = m.Multiplexer - cfg.HTTPUser = m.HTTPUser - cfg.HTTPPwd = m.HTTPPwd - cfg.RouteByHTTPUser = m.RouteByHTTPUser -} - -func (cfg *TCPMuxProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - m.CustomDomains = cfg.CustomDomains - m.SubDomain = cfg.SubDomain - m.Multiplexer = cfg.Multiplexer - m.HTTPUser = cfg.HTTPUser - m.HTTPPwd = cfg.HTTPPwd - m.RouteByHTTPUser = cfg.RouteByHTTPUser -} - -func (cfg *TCPMuxProxyConf) ValidateForClient() (err error) { - if err = cfg.BaseProxyConf.validateForClient(); err != nil { - return - } - - // Add custom logic check if exists - if err = cfg.DomainConf.validateForClient(); err != nil { - return - } - - if cfg.Multiplexer != consts.HTTPConnectTCPMultiplexer { - return fmt.Errorf("parse conf error: incorrect multiplexer [%s]", cfg.Multiplexer) - } - - return -} - -func (cfg *TCPMuxProxyConf) ValidateForServer(serverCfg ServerCommonConf) (err error) { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - - if cfg.Multiplexer != consts.HTTPConnectTCPMultiplexer { - return fmt.Errorf("proxy [%s] incorrect multiplexer [%s]", cfg.ProxyName, cfg.Multiplexer) - } - - if cfg.Multiplexer == consts.HTTPConnectTCPMultiplexer && serverCfg.TCPMuxHTTPConnectPort == 0 { - return fmt.Errorf("proxy [%s] type [tcpmux] with multiplexer [httpconnect] requires tcpmux_httpconnect_port configuration", cfg.ProxyName) - } - - if err = cfg.DomainConf.validateForServer(serverCfg); err != nil { - err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) - return - } - - return -} - -// UDP -func (cfg *UDPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - - return nil -} - -func (cfg *UDPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.RemotePort = m.RemotePort -} - -func (cfg *UDPProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - m.RemotePort = cfg.RemotePort -} - -func (cfg *UDPProxyConf) ValidateForClient() (err error) { - if err = cfg.BaseProxyConf.validateForClient(); err != nil { - return - } - - // Add custom logic check if exists - - return -} - -func (cfg *UDPProxyConf) ValidateForServer(_ ServerCommonConf) error { - return cfg.BaseProxyConf.validateForServer() -} - -// HTTP -func (cfg *HTTPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - cfg.Headers = GetMapWithoutPrefix(section.KeysHash(), "header_") - return nil -} - -func (cfg *HTTPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.CustomDomains = m.CustomDomains - cfg.SubDomain = m.SubDomain - cfg.Locations = m.Locations - cfg.HostHeaderRewrite = m.HostHeaderRewrite - cfg.HTTPUser = m.HTTPUser - cfg.HTTPPwd = m.HTTPPwd - cfg.Headers = m.Headers - cfg.RouteByHTTPUser = m.RouteByHTTPUser -} - -func (cfg *HTTPProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - m.CustomDomains = cfg.CustomDomains - m.SubDomain = cfg.SubDomain - m.Locations = cfg.Locations - m.HostHeaderRewrite = cfg.HostHeaderRewrite - m.HTTPUser = cfg.HTTPUser - m.HTTPPwd = cfg.HTTPPwd - m.Headers = cfg.Headers - m.RouteByHTTPUser = cfg.RouteByHTTPUser -} - -func (cfg *HTTPProxyConf) ValidateForClient() (err error) { - if err = cfg.BaseProxyConf.validateForClient(); err != nil { - return - } - - // Add custom logic check if exists - if err = cfg.DomainConf.validateForClient(); err != nil { - return - } - - return -} - -func (cfg *HTTPProxyConf) ValidateForServer(serverCfg ServerCommonConf) (err error) { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - - if serverCfg.VhostHTTPPort == 0 { - return fmt.Errorf("type [http] not support when vhost_http_port is not set") - } - - if err = cfg.DomainConf.validateForServer(serverCfg); err != nil { - err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) - return - } - - return -} - -// HTTPS -func (cfg *HTTPSProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - return nil -} - -func (cfg *HTTPSProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.CustomDomains = m.CustomDomains - cfg.SubDomain = m.SubDomain -} - -func (cfg *HTTPSProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - m.CustomDomains = cfg.CustomDomains - m.SubDomain = cfg.SubDomain -} - -func (cfg *HTTPSProxyConf) ValidateForClient() (err error) { - if err = cfg.BaseProxyConf.validateForClient(); err != nil { - return - } - - // Add custom logic check if exists - if err = cfg.DomainConf.validateForClient(); err != nil { - return - } - return -} - -func (cfg *HTTPSProxyConf) ValidateForServer(serverCfg ServerCommonConf) (err error) { - if err := cfg.BaseProxyConf.validateForServer(); err != nil { - return err - } - - if serverCfg.VhostHTTPSPort == 0 { - return fmt.Errorf("type [https] not support when vhost_https_port is not set") - } - - if err = cfg.DomainConf.validateForServer(serverCfg); err != nil { - err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) - return - } - - return -} - -// SUDP -func (cfg *SUDPProxyConf) SetDefaultValues() { - cfg.BaseProxyConf.SetDefaultValues() - cfg.RoleServerCommonConf.setDefaultValues() -} - -func (cfg *SUDPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - return nil -} - -// Only for role server. -func (cfg *SUDPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.RoleServerCommonConf.unmarshalFromMsg(m) -} - -func (cfg *SUDPProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - cfg.RoleServerCommonConf.marshalToMsg(m) -} - -func (cfg *SUDPProxyConf) ValidateForClient() (err error) { - if err := cfg.BaseProxyConf.validateForClient(); err != nil { - return err - } - - // Add custom logic check if exists - if cfg.Role != "server" { - return fmt.Errorf("role should be 'server'") - } - - return nil -} - -func (cfg *SUDPProxyConf) ValidateForServer(_ ServerCommonConf) error { - return cfg.BaseProxyConf.validateForServer() -} - -// STCP -func (cfg *STCPProxyConf) SetDefaultValues() { - cfg.BaseProxyConf.SetDefaultValues() - cfg.RoleServerCommonConf.setDefaultValues() -} - -func (cfg *STCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - if cfg.Role == "" { - cfg.Role = "server" - } - return nil -} - -// Only for role server. -func (cfg *STCPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.RoleServerCommonConf.unmarshalFromMsg(m) -} - -func (cfg *STCPProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - cfg.RoleServerCommonConf.marshalToMsg(m) -} - -func (cfg *STCPProxyConf) ValidateForClient() (err error) { - if err = cfg.BaseProxyConf.validateForClient(); err != nil { - return - } - - // Add custom logic check if exists - if cfg.Role != "server" { - return fmt.Errorf("role should be 'server'") - } - - return -} - -func (cfg *STCPProxyConf) ValidateForServer(_ ServerCommonConf) error { - return cfg.BaseProxyConf.validateForServer() -} - -// XTCP -func (cfg *XTCPProxyConf) SetDefaultValues() { - cfg.BaseProxyConf.SetDefaultValues() - cfg.RoleServerCommonConf.setDefaultValues() -} - -func (cfg *XTCPProxyConf) UnmarshalFromIni(prefix string, name string, section *ini.Section) error { - err := preUnmarshalFromIni(cfg, prefix, name, section) - if err != nil { - return err - } - - // Add custom logic unmarshal if exists - if cfg.Role == "" { - cfg.Role = "server" - } - return nil -} - -// Only for role server. -func (cfg *XTCPProxyConf) UnmarshalFromMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.unmarshalFromMsg(m) - - // Add custom logic unmarshal if exists - cfg.RoleServerCommonConf.unmarshalFromMsg(m) -} - -func (cfg *XTCPProxyConf) MarshalToMsg(m *msg.NewProxy) { - cfg.BaseProxyConf.marshalToMsg(m) - - // Add custom logic marshal if exists - cfg.RoleServerCommonConf.marshalToMsg(m) -} - -func (cfg *XTCPProxyConf) ValidateForClient() (err error) { - if err = cfg.BaseProxyConf.validateForClient(); err != nil { - return - } - - // Add custom logic check if exists - if cfg.Role != "server" { - return fmt.Errorf("role should be 'server'") - } - return -} - -func (cfg *XTCPProxyConf) ValidateForServer(_ ServerCommonConf) error { - return cfg.BaseProxyConf.validateForServer() -} diff --git a/pkg/config/proxy_test.go b/pkg/config/proxy_test.go deleted file mode 100644 index 99d60811cf5..00000000000 --- a/pkg/config/proxy_test.go +++ /dev/null @@ -1,478 +0,0 @@ -// Copyright 2020 The frp Authors -// -// Licensed 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. - -package config - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "gopkg.in/ini.v1" - - "github.com/fatedier/frp/pkg/consts" -) - -var ( - testLoadOptions = ini.LoadOptions{ - Insensitive: false, - InsensitiveSections: false, - InsensitiveKeys: false, - IgnoreInlineComment: true, - AllowBooleanKeys: true, - } - - testProxyPrefix = "test." -) - -func Test_Proxy_Interface(_ *testing.T) { - for name := range proxyConfTypeMap { - NewConfByType(name) - } -} - -func Test_Proxy_UnmarshalFromIni(t *testing.T) { - assert := assert.New(t) - - testcases := []struct { - sname string - source []byte - expected ProxyConf - }{ - { - sname: "ssh", - source: []byte(` - [ssh] - # tcp | udp | http | https | stcp | xtcp, default is tcp - type = tcp - local_ip = 127.0.0.9 - local_port = 29 - bandwidth_limit = 19MB - bandwidth_limit_mode = server - use_encryption - use_compression - remote_port = 6009 - group = test_group - group_key = 123456 - health_check_type = tcp - health_check_timeout_s = 3 - health_check_max_failed = 3 - health_check_interval_s = 19 - meta_var1 = 123 - meta_var2 = 234`), - expected: &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "ssh", - ProxyType: consts.TCPProxy, - UseCompression: true, - UseEncryption: true, - Group: "test_group", - GroupKey: "123456", - BandwidthLimit: MustBandwidthQuantity("19MB"), - BandwidthLimitMode: BandwidthLimitModeServer, - Metas: map[string]string{ - "var1": "123", - "var2": "234", - }, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 29, - }, - HealthCheckConf: HealthCheckConf{ - HealthCheckType: consts.TCPProxy, - HealthCheckTimeoutS: 3, - HealthCheckMaxFailed: 3, - HealthCheckIntervalS: 19, - HealthCheckAddr: "127.0.0.9:29", - }, - }, - RemotePort: 6009, - }, - }, - { - sname: "ssh_random", - source: []byte(` - [ssh_random] - type = tcp - local_ip = 127.0.0.9 - local_port = 29 - remote_port = 9 - `), - expected: &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "ssh_random", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 29, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 9, - }, - }, - { - sname: "dns", - source: []byte(` - [dns] - type = udp - local_ip = 114.114.114.114 - local_port = 59 - remote_port = 6009 - use_encryption - use_compression - `), - expected: &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "dns", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 59, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6009, - }, - }, - { - sname: "web01", - source: []byte(` - [web01] - type = http - local_ip = 127.0.0.9 - local_port = 89 - use_encryption - use_compression - http_user = admin - http_pwd = admin - subdomain = web01 - custom_domains = web02.yourdomain.com - locations = /,/pic - host_header_rewrite = example.com - header_X-From-Where = frp - health_check_type = http - health_check_url = /status - health_check_interval_s = 19 - health_check_max_failed = 3 - health_check_timeout_s = 3 - `), - expected: &HTTPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "web01", - ProxyType: consts.HTTPProxy, - UseCompression: true, - UseEncryption: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 89, - }, - HealthCheckConf: HealthCheckConf{ - HealthCheckType: consts.HTTPProxy, - HealthCheckTimeoutS: 3, - HealthCheckMaxFailed: 3, - HealthCheckIntervalS: 19, - HealthCheckURL: "http://127.0.0.9:89/status", - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"web02.yourdomain.com"}, - SubDomain: "web01", - }, - Locations: []string{"/", "/pic"}, - HTTPUser: "admin", - HTTPPwd: "admin", - HostHeaderRewrite: "example.com", - Headers: map[string]string{ - "X-From-Where": "frp", - }, - }, - }, - { - sname: "web02", - source: []byte(` - [web02] - type = https - local_ip = 127.0.0.9 - local_port = 8009 - use_encryption - use_compression - subdomain = web01 - custom_domains = web02.yourdomain.com - proxy_protocol_version = v2 - `), - expected: &HTTPSProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "web02", - ProxyType: consts.HTTPSProxy, - UseCompression: true, - UseEncryption: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 8009, - }, - ProxyProtocolVersion: "v2", - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"web02.yourdomain.com"}, - SubDomain: "web01", - }, - }, - }, - { - sname: "secret_tcp", - source: []byte(` - [secret_tcp] - type = stcp - sk = abcdefg - local_ip = 127.0.0.1 - local_port = 22 - use_encryption = false - use_compression = false - `), - expected: &STCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "secret_tcp", - ProxyType: consts.STCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - LocalPort: 22, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RoleServerCommonConf: RoleServerCommonConf{ - Role: "server", - Sk: "abcdefg", - }, - }, - }, - { - sname: "p2p_tcp", - source: []byte(` - [p2p_tcp] - type = xtcp - sk = abcdefg - local_ip = 127.0.0.1 - local_port = 22 - use_encryption = false - use_compression = false - `), - expected: &XTCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "p2p_tcp", - ProxyType: consts.XTCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - LocalPort: 22, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RoleServerCommonConf: RoleServerCommonConf{ - Role: "server", - Sk: "abcdefg", - }, - }, - }, - { - sname: "tcpmuxhttpconnect", - source: []byte(` - [tcpmuxhttpconnect] - type = tcpmux - multiplexer = httpconnect - local_ip = 127.0.0.1 - local_port = 10701 - custom_domains = tunnel1 - `), - expected: &TCPMuxProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "tcpmuxhttpconnect", - ProxyType: consts.TCPMuxProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.1", - LocalPort: 10701, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - DomainConf: DomainConf{ - CustomDomains: []string{"tunnel1"}, - SubDomain: "", - }, - Multiplexer: "httpconnect", - }, - }, - } - - for _, c := range testcases { - f, err := ini.LoadSources(testLoadOptions, c.source) - assert.NoError(err) - - proxyType := f.Section(c.sname).Key("type").String() - assert.NotEmpty(proxyType) - - actual := DefaultProxyConf(proxyType) - assert.NotNil(actual) - - err = actual.UnmarshalFromIni(testProxyPrefix, c.sname, f.Section(c.sname)) - assert.NoError(err) - assert.Equal(c.expected, actual) - } -} - -func Test_RangeProxy_UnmarshalFromIni(t *testing.T) { - assert := assert.New(t) - - testcases := []struct { - sname string - source []byte - expected map[string]ProxyConf - }{ - { - sname: "range:tcp_port", - source: []byte(` - [range:tcp_port] - type = tcp - local_ip = 127.0.0.9 - local_port = 6010-6011,6019 - remote_port = 6010-6011,6019 - use_encryption = false - use_compression = false - `), - expected: map[string]ProxyConf{ - "tcp_port_0": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "tcp_port_0", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 6010, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6010, - }, - "tcp_port_1": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "tcp_port_1", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 6011, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6011, - }, - "tcp_port_2": &TCPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "tcp_port_2", - ProxyType: consts.TCPProxy, - LocalSvrConf: LocalSvrConf{ - LocalIP: "127.0.0.9", - LocalPort: 6019, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6019, - }, - }, - }, - { - sname: "range:udp_port", - source: []byte(` - [range:udp_port] - type = udp - local_ip = 114.114.114.114 - local_port = 6000,6010-6011 - remote_port = 6000,6010-6011 - use_encryption - use_compression - `), - expected: map[string]ProxyConf{ - "udp_port_0": &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "udp_port_0", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 6000, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6000, - }, - "udp_port_1": &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "udp_port_1", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 6010, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6010, - }, - "udp_port_2": &UDPProxyConf{ - BaseProxyConf: BaseProxyConf{ - ProxyName: testProxyPrefix + "udp_port_2", - ProxyType: consts.UDPProxy, - UseEncryption: true, - UseCompression: true, - LocalSvrConf: LocalSvrConf{ - LocalIP: "114.114.114.114", - LocalPort: 6011, - }, - BandwidthLimitMode: BandwidthLimitModeClient, - }, - RemotePort: 6011, - }, - }, - }, - } - - for _, c := range testcases { - - f, err := ini.LoadSources(testLoadOptions, c.source) - assert.NoError(err) - - actual := make(map[string]ProxyConf) - s := f.Section(c.sname) - - err = renderRangeProxyTemplates(f, s) - assert.NoError(err) - - f.DeleteSection(ini.DefaultSection) - f.DeleteSection(c.sname) - - for _, section := range f.Sections() { - proxyType := section.Key("type").String() - newsname := section.Name() - - tmp := DefaultProxyConf(proxyType) - err = tmp.UnmarshalFromIni(testProxyPrefix, newsname, section) - assert.NoError(err) - - actual[newsname] = tmp - } - - assert.Equal(c.expected, actual) - } -} diff --git a/pkg/config/server_test.go b/pkg/config/server_test.go deleted file mode 100644 index 7218397b7ac..00000000000 --- a/pkg/config/server_test.go +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright 2020 The frp Authors -// -// Licensed 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. - -package config - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/fatedier/frp/pkg/auth" - plugin "github.com/fatedier/frp/pkg/plugin/server" -) - -func Test_LoadServerCommonConf(t *testing.T) { - assert := assert.New(t) - - testcases := []struct { - source []byte - expected ServerCommonConf - }{ - { - source: []byte(` - # [common] is integral section - [common] - bind_addr = 0.0.0.9 - bind_port = 7009 - kcp_bind_port = 7007 - proxy_bind_addr = 127.0.0.9 - vhost_http_port = 89 - vhost_https_port = 449 - vhost_http_timeout = 69 - tcpmux_httpconnect_port = 1339 - dashboard_addr = 0.0.0.9 - dashboard_port = 7509 - dashboard_user = admin9 - dashboard_pwd = admin9 - enable_prometheus - assets_dir = ./static9 - log_file = ./frps.log9 - log_way = file - log_level = info9 - log_max_days = 39 - disable_log_color = false - detailed_errors_to_client - authentication_method = token - authenticate_heartbeats = false - authenticate_new_work_conns = false - token = 123456789 - oidc_issuer = test9 - oidc_audience = test9 - oidc_skip_expiry_check - oidc_skip_issuer_check - heartbeat_timeout = 99 - user_conn_timeout = 9 - allow_ports = 10-12,99 - max_pool_count = 59 - max_ports_per_client = 9 - tls_only = false - tls_cert_file = server.crt - tls_key_file = server.key - tls_trusted_ca_file = ca.crt - subdomain_host = frps.com - tcp_mux - udp_packet_size = 1509 - [plugin.user-manager] - addr = 127.0.0.1:9009 - path = /handler - ops = Login - [plugin.port-manager] - addr = 127.0.0.1:9009 - path = /handler - ops = NewProxy - tls_verify - `), - expected: ServerCommonConf{ - ServerConfig: auth.ServerConfig{ - BaseConfig: auth.BaseConfig{ - AuthenticationMethod: "token", - AuthenticateHeartBeats: false, - AuthenticateNewWorkConns: false, - }, - TokenConfig: auth.TokenConfig{ - Token: "123456789", - }, - OidcServerConfig: auth.OidcServerConfig{ - OidcIssuer: "test9", - OidcAudience: "test9", - OidcSkipExpiryCheck: true, - OidcSkipIssuerCheck: true, - }, - }, - BindAddr: "0.0.0.9", - BindPort: 7009, - KCPBindPort: 7007, - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - ProxyBindAddr: "127.0.0.9", - VhostHTTPPort: 89, - VhostHTTPSPort: 449, - VhostHTTPTimeout: 69, - TCPMuxHTTPConnectPort: 1339, - DashboardAddr: "0.0.0.9", - DashboardPort: 7509, - DashboardUser: "admin9", - DashboardPwd: "admin9", - EnablePrometheus: true, - AssetsDir: "./static9", - LogFile: "./frps.log9", - LogWay: "file", - LogLevel: "info9", - LogMaxDays: 39, - DisableLogColor: false, - DetailedErrorsToClient: true, - HeartbeatTimeout: 99, - UserConnTimeout: 9, - AllowPorts: map[int]struct{}{ - 10: {}, - 11: {}, - 12: {}, - 99: {}, - }, - AllowPortsStr: "10-12,99", - MaxPoolCount: 59, - MaxPortsPerClient: 9, - TLSOnly: true, - TLSCertFile: "server.crt", - TLSKeyFile: "server.key", - TLSTrustedCaFile: "ca.crt", - SubDomainHost: "frps.com", - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - TCPKeepAlive: 7200, - UDPPacketSize: 1509, - NatHoleAnalysisDataReserveHours: 7 * 24, - - HTTPPlugins: map[string]plugin.HTTPPluginOptions{ - "user-manager": { - Name: "user-manager", - Addr: "127.0.0.1:9009", - Path: "/handler", - Ops: []string{"Login"}, - }, - "port-manager": { - Name: "port-manager", - Addr: "127.0.0.1:9009", - Path: "/handler", - Ops: []string{"NewProxy"}, - TLSVerify: true, - }, - }, - }, - }, - { - source: []byte(` - # [common] is integral section - [common] - bind_addr = 0.0.0.9 - bind_port = 7009 - `), - expected: ServerCommonConf{ - ServerConfig: auth.ServerConfig{ - BaseConfig: auth.BaseConfig{ - AuthenticationMethod: "token", - AuthenticateHeartBeats: false, - AuthenticateNewWorkConns: false, - }, - }, - BindAddr: "0.0.0.9", - BindPort: 7009, - QUICKeepalivePeriod: 10, - QUICMaxIdleTimeout: 30, - QUICMaxIncomingStreams: 100000, - ProxyBindAddr: "0.0.0.9", - VhostHTTPTimeout: 60, - DashboardAddr: "0.0.0.0", - DashboardUser: "", - DashboardPwd: "", - EnablePrometheus: false, - LogFile: "console", - LogWay: "console", - LogLevel: "info", - LogMaxDays: 3, - DetailedErrorsToClient: true, - TCPMux: true, - TCPMuxKeepaliveInterval: 60, - TCPKeepAlive: 7200, - AllowPorts: make(map[int]struct{}), - MaxPoolCount: 5, - HeartbeatTimeout: 90, - UserConnTimeout: 10, - HTTPPlugins: make(map[string]plugin.HTTPPluginOptions), - UDPPacketSize: 1500, - NatHoleAnalysisDataReserveHours: 7 * 24, - }, - }, - } - - for _, c := range testcases { - actual, err := UnmarshalServerConfFromIni(c.source) - assert.NoError(err) - actual.Complete() - assert.Equal(c.expected, actual) - } -} diff --git a/pkg/config/types.go b/pkg/config/types/types.go similarity index 58% rename from pkg/config/types.go rename to pkg/config/types/types.go index 7aefee12600..b6fb7a85471 100644 --- a/pkg/config/types.go +++ b/pkg/config/types/types.go @@ -12,11 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package types import ( "encoding/json" "errors" + "fmt" "strconv" "strings" ) @@ -123,3 +124,62 @@ func (q *BandwidthQuantity) MarshalJSON() ([]byte, error) { func (q *BandwidthQuantity) Bytes() int64 { return q.i } + +type PortsRange struct { + Start int `json:"start,omitempty"` + End int `json:"end,omitempty"` + Single int `json:"single,omitempty"` +} + +type PortsRangeSlice []PortsRange + +func (p PortsRangeSlice) String() string { + strs := []string{} + for _, v := range p { + if v.Single > 0 { + strs = append(strs, strconv.Itoa(v.Single)) + } else { + strs = append(strs, strconv.Itoa(v.Start)+"-"+strconv.Itoa(v.End)) + } + } + return strings.Join(strs, ",") +} + +// the format of str is like "1000-2000,3000,4000-5000" +func NewPortsRangeSliceFromString(str string) ([]PortsRange, error) { + str = strings.TrimSpace(str) + out := []PortsRange{} + numRanges := strings.Split(str, ",") + for _, numRangeStr := range numRanges { + // 1000-2000 or 2001 + numArray := strings.Split(numRangeStr, "-") + // length: only 1 or 2 is correct + rangeType := len(numArray) + switch rangeType { + case 1: + // single number + singleNum, err := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64) + if err != nil { + return nil, fmt.Errorf("range number is invalid, %v", err) + } + out = append(out, PortsRange{Single: int(singleNum)}) + case 2: + // range numbers + min, err := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64) + if err != nil { + return nil, fmt.Errorf("range number is invalid, %v", err) + } + max, err := strconv.ParseInt(strings.TrimSpace(numArray[1]), 10, 64) + if err != nil { + return nil, fmt.Errorf("range number is invalid, %v", err) + } + if max < min { + return nil, fmt.Errorf("range number is invalid") + } + out = append(out, PortsRange{Start: int(min), End: int(max)}) + default: + return nil, fmt.Errorf("range number is invalid") + } + } + return out, nil +} diff --git a/pkg/config/types_test.go b/pkg/config/types/types_test.go similarity index 54% rename from pkg/config/types_test.go rename to pkg/config/types/types_test.go index ab03dfd2a34..8843de5af81 100644 --- a/pkg/config/types_test.go +++ b/pkg/config/types/types_test.go @@ -12,13 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package types import ( "encoding/json" "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) type Wrap struct { @@ -27,14 +27,46 @@ type Wrap struct { } func TestBandwidthQuantity(t *testing.T) { - assert := assert.New(t) + require := require.New(t) var w Wrap err := json.Unmarshal([]byte(`{"b":"1KB","int":5}`), &w) - assert.NoError(err) - assert.EqualValues(1*KB, w.B.Bytes()) + require.NoError(err) + require.EqualValues(1*KB, w.B.Bytes()) buf, err := json.Marshal(&w) - assert.NoError(err) - assert.Equal(`{"b":"1KB","int":5}`, string(buf)) + require.NoError(err) + require.Equal(`{"b":"1KB","int":5}`, string(buf)) +} + +func TestPortsRangeSlice2String(t *testing.T) { + require := require.New(t) + + ports := []PortsRange{ + { + Start: 1000, + End: 2000, + }, + { + Single: 3000, + }, + } + str := PortsRangeSlice(ports).String() + require.Equal("1000-2000,3000", str) +} + +func TestNewPortsRangeSliceFromString(t *testing.T) { + require := require.New(t) + + ports, err := NewPortsRangeSliceFromString("1000-2000,3000") + require.NoError(err) + require.Equal([]PortsRange{ + { + Start: 1000, + End: 2000, + }, + { + Single: 3000, + }, + }, ports) } diff --git a/pkg/config/v1/api.go b/pkg/config/v1/api.go new file mode 100644 index 00000000000..0991fc93513 --- /dev/null +++ b/pkg/config/v1/api.go @@ -0,0 +1,19 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +type APIMetadata struct { + Version string `json:"version"` +} diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go new file mode 100644 index 00000000000..878ae2b7075 --- /dev/null +++ b/pkg/config/v1/client.go @@ -0,0 +1,199 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "os" + + "github.com/samber/lo" + + "github.com/fatedier/frp/pkg/util/util" +) + +type ClientConfig struct { + ClientCommonConfig + + Proxies []TypedProxyConfig `json:"proxies,omitempty"` + Visitors []TypedVisitorConfig `json:"visitors,omitempty"` +} + +type ClientCommonConfig struct { + APIMetadata + + Auth AuthClientConfig `json:"auth,omitempty"` + // User specifies a prefix for proxy names to distinguish them from other + // clients. If this value is not "", proxy names will automatically be + // changed to "{user}.{proxy_name}". + User string `json:"user,omitempty"` + + // ServerAddr specifies the address of the server to connect to. By + // default, this value is "0.0.0.0". + ServerAddr string `json:"serverAddr,omitempty"` + // ServerPort specifies the port to connect to the server on. By default, + // this value is 7000. + ServerPort int `json:"serverPort,omitempty"` + // STUN server to help penetrate NAT hole. + NatHoleSTUNServer string `json:"natHoleStunServer,omitempty"` + // DNSServer specifies a DNS server address for FRPC to use. If this value + // is "", the default DNS will be used. + DNSServer string `json:"dnsServer,omitempty"` + // LoginFailExit controls whether or not the client should exit after a + // failed login attempt. If false, the client will retry until a login + // attempt succeeds. By default, this value is true. + LoginFailExit *bool `json:"loginFailExit,omitempty"` + // Start specifies a set of enabled proxies by name. If this set is empty, + // all supplied proxies are enabled. By default, this value is an empty + // set. + Start []string `json:"start,omitempty"` + + Log LogConfig `json:"log,omitempty"` + WebServer WebServerConfig `json:"webServer,omitempty"` + Transport ClientTransportConfig `json:"transport,omitempty"` + + // UDPPacketSize specifies the udp packet size + // By default, this value is 1500 + UDPPacketSize int64 `json:"udpPacketSize,omitempty"` + // Client metadata info + Metadatas map[string]string `json:"metadatas,omitempty"` + + // Include other config files for proxies. + IncludeConfigFiles []string `json:"includes,omitempty"` +} + +func (c *ClientCommonConfig) Complete() { + c.ServerAddr = util.EmptyOr(c.ServerAddr, "0.0.0.0") + c.ServerPort = util.EmptyOr(c.ServerPort, 7000) + c.LoginFailExit = util.EmptyOr(c.LoginFailExit, lo.ToPtr(true)) + + c.Auth.Complete() + c.Log.Complete() + c.Transport.Complete() + c.WebServer.Complete() + + c.UDPPacketSize = util.EmptyOr(c.UDPPacketSize, 1500) +} + +type ClientTransportConfig struct { + // Protocol specifies the protocol to use when interacting with the server. + // Valid values are "tcp", "kcp", "quic", "websocket" and "wss". By default, this value + // is "tcp". + Protocol string `json:"protocol,omitempty"` + // The maximum amount of time a dial to server will wait for a connect to complete. + DialServerTimeout int64 `json:"dialServerTimeout,omitempty"` + // DialServerKeepAlive specifies the interval between keep-alive probes for an active network connection between frpc and frps. + // If negative, keep-alive probes are disabled. + DialServerKeepAlive int64 `json:"dialServerKeepalive,omitempty"` + // ConnectServerLocalIP specifies the address of the client bind when it connect to server. + // Note: This value only use in TCP/Websocket protocol. Not support in KCP protocol. + ConnectServerLocalIP string `json:"connectServerLocalIP,omitempty"` + // ProxyURL specifies a proxy address to connect to the server through. If + // this value is "", the server will be connected to directly. By default, + // this value is read from the "http_proxy" environment variable. + ProxyURL string `json:"proxyURL,omitempty"` + // PoolCount specifies the number of connections the client will make to + // the server in advance. + PoolCount int `json:"poolCount,omitempty"` + // TCPMux toggles TCP stream multiplexing. This allows multiple requests + // from a client to share a single TCP connection. If this value is true, + // the server must have TCP multiplexing enabled as well. By default, this + // value is true. + TCPMux *bool `json:"tcpMux,omitempty"` + // TCPMuxKeepaliveInterval specifies the keep alive interval for TCP stream multipler. + // If TCPMux is true, heartbeat of application layer is unnecessary because it can only rely on heartbeat in TCPMux. + TCPMuxKeepaliveInterval int64 `json:"tcpMuxKeepaliveInterval,omitempty"` + // QUIC protocol options. + QUIC QUICOptions `json:"quic,omitempty"` + // HeartBeatInterval specifies at what interval heartbeats are sent to the + // server, in seconds. It is not recommended to change this value. By + // default, this value is 30. Set negative value to disable it. + HeartbeatInterval int64 `json:"heartbeatInterval,omitempty"` + // HeartBeatTimeout specifies the maximum allowed heartbeat response delay + // before the connection is terminated, in seconds. It is not recommended + // to change this value. By default, this value is 90. Set negative value to disable it. + HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"` + // TLS specifies TLS settings for the connection to the server. + TLS TLSClientConfig `json:"tls,omitempty"` +} + +func (c *ClientTransportConfig) Complete() { + c.Protocol = util.EmptyOr(c.Protocol, "tcp") + c.DialServerTimeout = util.EmptyOr(c.DialServerTimeout, 10) + c.DialServerKeepAlive = util.EmptyOr(c.DialServerKeepAlive, 7200) + c.ProxyURL = util.EmptyOr(c.ProxyURL, os.Getenv("http_proxy")) + c.PoolCount = util.EmptyOr(c.PoolCount, 1) + c.TCPMux = util.EmptyOr(c.TCPMux, lo.ToPtr(true)) + c.TCPMuxKeepaliveInterval = util.EmptyOr(c.TCPMuxKeepaliveInterval, 60) + c.HeartbeatInterval = util.EmptyOr(c.HeartbeatInterval, 30) + c.HeartbeatTimeout = util.EmptyOr(c.HeartbeatTimeout, 90) + c.QUIC.Complete() + c.TLS.Complete() +} + +type TLSClientConfig struct { + // TLSEnable specifies whether or not TLS should be used when communicating + // with the server. If "tls.certFile" and "tls.keyFile" are valid, + // client will load the supplied tls configuration. + // Since v0.50.0, the default value has been changed to true, and tls is enabled by default. + Enable *bool `json:"enable,omitempty"` + // If DisableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the + // first custom byte when tls is enabled. + // Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default. + DisableCustomTLSFirstByte *bool `json:"disableCustomTLSFirstByte,omitempty"` + + TLSConfig +} + +func (c *TLSClientConfig) Complete() { + c.Enable = util.EmptyOr(c.Enable, lo.ToPtr(true)) + c.DisableCustomTLSFirstByte = util.EmptyOr(c.DisableCustomTLSFirstByte, lo.ToPtr(true)) +} + +type AuthClientConfig struct { + // Method specifies what authentication method to use to + // authenticate frpc with frps. If "token" is specified - token will be + // read into login message. If "oidc" is specified - OIDC (Open ID Connect) + // token will be issued using OIDC settings. By default, this value is "token". + Method string `json:"method,omitempty"` + // Specify whether to include auth info in additional scope. + // Current supported scopes are: "HeartBeats", "NewWorkConns". + AdditionalAuthScopes []AuthScope `json:"additionalAuthScopes,omitempty"` + // Token specifies the authorization token used to create keys to be sent + // to the server. The server must have a matching token for authorization + // to succeed. By default, this value is "". + Token string `json:"token,omitempty"` + OIDC AuthOIDCClientConfig `json:"oidc,omitempty"` +} + +func (c *AuthClientConfig) Complete() { + c.Method = util.EmptyOr(c.Method, "token") +} + +type AuthOIDCClientConfig struct { + // ClientID specifies the client ID to use to get a token in OIDC authentication. + ClientID string `json:"clientID,omitempty"` + // ClientSecret specifies the client secret to use to get a token in OIDC + // authentication. + ClientSecret string `json:"clientSecret,omitempty"` + // Audience specifies the audience of the token in OIDC authentication. + Audience string `json:"audience,omitempty"` + // Scope specifies the scope of the token in OIDC authentication. + Scope string `json:"scope,omitempty"` + // TokenEndpointURL specifies the URL which implements OIDC Token Endpoint. + // It will be used to get an OIDC token. + TokenEndpointURL string `json:"tokenEndpointURL,omitempty"` + // AdditionalEndpointParams specifies additional parameters to be sent + // this field will be transfer to map[string][]string in OIDC token generator. + AdditionalEndpointParams map[string]string `json:"additionalEndpointParams,omitempty"` +} diff --git a/pkg/config/v1/client_test.go b/pkg/config/v1/client_test.go new file mode 100644 index 00000000000..01acbf0b395 --- /dev/null +++ b/pkg/config/v1/client_test.go @@ -0,0 +1,34 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "testing" + + "github.com/samber/lo" + "github.com/stretchr/testify/require" +) + +func TestClientConfigComplete(t *testing.T) { + require := require.New(t) + c := &ClientConfig{} + c.Complete() + + require.Equal("token", c.Auth.Method) + require.Equal(true, lo.FromPtr(c.Transport.TCPMux)) + require.Equal(true, lo.FromPtr(c.LoginFailExit)) + require.Equal(true, lo.FromPtr(c.Transport.TLS.Enable)) + require.Equal(true, lo.FromPtr(c.Transport.TLS.DisableCustomTLSFirstByte)) +} diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go new file mode 100644 index 00000000000..dcb7b5ec9dc --- /dev/null +++ b/pkg/config/v1/common.go @@ -0,0 +1,110 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "github.com/fatedier/frp/pkg/util/util" +) + +type AuthScope string + +const ( + AuthScopeHeartBeats AuthScope = "HeartBeats" + AuthScopeNewWorkConns AuthScope = "NewWorkConns" +) + +// QUIC protocol options +type QUICOptions struct { + KeepalivePeriod int `json:"quicKeepalivePeriod,omitempty" validate:"gte=0"` + MaxIdleTimeout int `json:"quicMaxIdleTimeout,omitempty" validate:"gte=0"` + MaxIncomingStreams int `json:"quicMaxIncomingStreams,omitempty" validate:"gte=0"` +} + +func (c *QUICOptions) Complete() { + c.KeepalivePeriod = util.EmptyOr(c.KeepalivePeriod, 10) + c.MaxIdleTimeout = util.EmptyOr(c.MaxIdleTimeout, 30) + c.MaxIncomingStreams = util.EmptyOr(c.MaxIncomingStreams, 100000) +} + +type WebServerConfig struct { + // This is the network address to bind on for serving the web interface and API. + // By default, this value is "127.0.0.1". + Addr string `json:"addr,omitempty"` + // Port specifies the port for the web server to listen on. If this + // value is 0, the admin server will not be started. + Port int `json:"port,omitempty"` + // User specifies the username that the web server will use for login. + User string `json:"user,omitempty"` + // Password specifies the password that the admin server will use for login. + Password string `json:"password,omitempty"` + // AssetsDir specifies the local directory that the admin server will load + // resources from. If this value is "", assets will be loaded from the + // bundled executable using embed package. + AssetsDir string `json:"assetsDir,omitempty"` + // Enable golang pprof handlers. + PprofEnable bool `json:"pprofEnable,omitempty"` + // Enable TLS if TLSConfig is not nil. + TLS *TLSConfig `json:"tls,omitempty"` +} + +func (c *WebServerConfig) Complete() { + c.Addr = util.EmptyOr(c.Addr, "127.0.0.1") +} + +type TLSConfig struct { + // CertPath specifies the path of the cert file that client will load. + CertFile string `json:"certFile,omitempty"` + // KeyPath specifies the path of the secret key file that client will load. + KeyFile string `json:"keyFile,omitempty"` + // TrustedCaFile specifies the path of the trusted ca file that will load. + TrustedCaFile string `json:"trustedCaFile,omitempty"` + // ServerName specifies the custom server name of tls certificate. By + // default, server name if same to ServerAddr. + ServerName string `json:"serverName,omitempty"` +} + +type LogConfig struct { + // This is destination where frp should wirte the logs. + // If "console" is used, logs will be printed to stdout, otherwise, + // logs will be written to the specified file. + // By default, this value is "console". + To string `json:"to,omitempty"` + // Level specifies the minimum log level. Valid values are "trace", + // "debug", "info", "warn", and "error". By default, this value is "info". + Level string `json:"level,omitempty"` + // MaxDays specifies the maximum number of days to store log information + // before deletion. + MaxDays int64 `json:"maxDays"` + // DisablePrintColor disables log colors when log.to is "console". + DisablePrintColor bool `json:"disablePrintColor,omitempty"` +} + +func (c *LogConfig) Complete() { + c.To = util.EmptyOr(c.To, "console") + c.Level = util.EmptyOr(c.Level, "info") + c.MaxDays = util.EmptyOr(c.MaxDays, 3) +} + +type HTTPPluginOptions struct { + Name string `json:"name"` + Addr string `json:"addr"` + Path string `json:"path"` + Ops []string `json:"ops"` + TLSVerify bool `json:"tls_verify,omitempty"` +} + +type HeaderOperations struct { + Set map[string]string `json:"set,omitempty"` +} diff --git a/pkg/config/v1/plugin.go b/pkg/config/v1/plugin.go new file mode 100644 index 00000000000..e593c6ff58d --- /dev/null +++ b/pkg/config/v1/plugin.go @@ -0,0 +1,117 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "encoding/json" + "errors" + "fmt" + "reflect" +) + +type ClientPluginOptions interface{} + +type TypedClientPluginOptions struct { + Type string `json:"type"` + ClientPluginOptions +} + +func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error { + if len(b) == 4 && string(b) == "null" { + return errors.New("type is required") + } + + typeStruct := struct { + Type string `json:"type"` + }{} + if err := json.Unmarshal(b, &typeStruct); err != nil { + return err + } + + c.Type = typeStruct.Type + + v, ok := clientPluginOptionsTypeMap[typeStruct.Type] + if !ok { + return fmt.Errorf("unknown plugin type: %s", typeStruct.Type) + } + if err := json.Unmarshal(b, v); err != nil { + return err + } + c.ClientPluginOptions = v + return nil +} + +const ( + PluginHTTP2HTTPS = "http2https" + PluginHTTPProxy = "http_proxy" + PluginHTTPS2HTTP = "https2http" + PluginHTTPS2HTTPS = "https2https" + PluginSocks5 = "socks5" + PluginStaticFile = "static_file" + PluginUnixDomainSocket = "unix_domain_socket" +) + +var clientPluginOptionsTypeMap = map[string]reflect.Type{ + PluginHTTP2HTTPS: reflect.TypeOf(HTTP2HTTPSPluginOptions{}), + PluginHTTPProxy: reflect.TypeOf(HTTPProxyPluginOptions{}), + PluginHTTPS2HTTP: reflect.TypeOf(HTTPS2HTTPPluginOptions{}), + PluginHTTPS2HTTPS: reflect.TypeOf(HTTPS2HTTPSPluginOptions{}), + PluginSocks5: reflect.TypeOf(Socks5PluginOptions{}), + PluginStaticFile: reflect.TypeOf(StaticFilePluginOptions{}), + PluginUnixDomainSocket: reflect.TypeOf(UnixDomainSocketPluginOptions{}), +} + +type HTTP2HTTPSPluginOptions struct { + LocalAddr string `json:"localAddr,omitempty"` + HostHeaderRewrite string `json:"hostHeaderRewrite,omitempty"` + RequestHeaders HeaderOperations `json:"requestHeaders,omitempty"` +} + +type HTTPProxyPluginOptions struct { + HTTPUser string `json:"httpUser,omitempty"` + HTTPPassword string `json:"httpPassword,omitempty"` +} + +type HTTPS2HTTPPluginOptions struct { + LocalAddr string `json:"localAddr,omitempty"` + HostHeaderRewrite string `json:"hostHeaderRewrite,omitempty"` + RequestHeaders HeaderOperations `json:"requestHeaders,omitempty"` + CrtPath string `json:"crtPath,omitempty"` + KeyPath string `json:"keyPath,omitempty"` +} + +type HTTPS2HTTPSPluginOptions struct { + LocalAddr string `json:"localAddr,omitempty"` + HostHeaderRewrite string `json:"hostHeaderRewrite,omitempty"` + RequestHeaders HeaderOperations `json:"requestHeaders,omitempty"` + CrtPath string `json:"crtPath,omitempty"` + KeyPath string `json:"keyPath,omitempty"` +} + +type Socks5PluginOptions struct { + Username string `json:"username,omitempty"` + Password string `json:"password,omitempty"` +} + +type StaticFilePluginOptions struct { + LocalPath string `json:"localPath,omitempty"` + StripPrefix string `json:"stripPrefix,omitempty"` + HTTPUser string `json:"httpUser,omitempty"` + HTTPPassword string `json:"httpPassword,omitempty"` +} + +type UnixDomainSocketPluginOptions struct { + UnixPath string `json:"unixPath,omitempty"` +} diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go new file mode 100644 index 00000000000..60107ed6498 --- /dev/null +++ b/pkg/config/v1/proxy.go @@ -0,0 +1,420 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "encoding/json" + "errors" + "fmt" + "reflect" + + "github.com/samber/lo" + + "github.com/fatedier/frp/pkg/config/types" + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/util" +) + +type ProxyTransport struct { + // UseEncryption controls whether or not communication with the server will + // be encrypted. Encryption is done using the tokens supplied in the server + // and client configuration. + UseEncryption bool `json:"useEncryption,omitempty"` + // UseCompression controls whether or not communication with the server + // will be compressed. + UseCompression bool `json:"useCompression,omitempty"` + // BandwidthLimit limit the bandwidth + // 0 means no limit + BandwidthLimit types.BandwidthQuantity `json:"bandwidthLimit,omitempty"` + // BandwidthLimitMode specifies whether to limit the bandwidth on the + // client or server side. Valid values include "client" and "server". + // By default, this value is "client". + BandwidthLimitMode string `json:"bandwidthLimitMode,omitempty"` + // ProxyProtocolVersion specifies which protocol version to use. Valid + // values include "v1", "v2", and "". If the value is "", a protocol + // version will be automatically selected. By default, this value is "". + ProxyProtocolVersion string `json:"proxyProtocolVersion,omitempty"` +} + +type LoadBalancerConfig struct { + // Group specifies which group the is a part of. The server will use + // this information to load balance proxies in the same group. If the value + // is "", this will not be in a group. + Group string `json:"group"` + // GroupKey specifies a group key, which should be the same among proxies + // of the same group. + GroupKey string `json:"groupKey,omitempty"` +} + +type ProxyBackend struct { + // LocalIP specifies the IP address or host name of the backend. + LocalIP string `json:"localIP,omitempty"` + // LocalPort specifies the port of the backend. + LocalPort int `json:"localPort,omitempty"` + + // Plugin specifies what plugin should be used for handling connections. If this value + // is set, the LocalIP and LocalPort values will be ignored. + Plugin TypedClientPluginOptions `json:"plugin,omitempty"` +} + +// HealthCheckConfig configures health checking. This can be useful for load +// balancing purposes to detect and remove proxies to failing services. +type HealthCheckConfig struct { + // Type specifies what protocol to use for health checking. + // Valid values include "tcp", "http", and "". If this value is "", health + // checking will not be performed. + // + // If the type is "tcp", a connection will be attempted to the target + // server. If a connection cannot be established, the health check fails. + // + // If the type is "http", a GET request will be made to the endpoint + // specified by HealthCheckURL. If the response is not a 200, the health + // check fails. + Type string `json:"type"` // tcp | http + // TimeoutSeconds specifies the number of seconds to wait for a health + // check attempt to connect. If the timeout is reached, this counts as a + // health check failure. By default, this value is 3. + TimeoutSeconds int `json:"timeoutSeconds,omitempty"` + // MaxFailed specifies the number of allowed failures before the + // is stopped. By default, this value is 1. + MaxFailed int `json:"maxFailed,omitempty"` + // IntervalSeconds specifies the time in seconds between health + // checks. By default, this value is 10. + IntervalSeconds int `json:"intervalSeconds"` + // Path specifies the path to send health checks to if the + // health check type is "http". + Path string `json:"path,omitempty"` +} + +type DomainConfig struct { + CustomDomains []string `json:"customDomains,omitempty"` + SubDomain string `json:"subdomain,omitempty"` +} + +type ProxyBaseConfig struct { + Name string `json:"name"` + Type string `json:"type"` + Transport ProxyTransport `json:"transport,omitempty"` + // metadata info for each proxy + Metadatas map[string]string `json:"metadatas,omitempty"` + LoadBalancer LoadBalancerConfig `json:"loadBalancer,omitempty"` + HealthCheck HealthCheckConfig `json:"healthCheck,omitempty"` + ProxyBackend +} + +func (c *ProxyBaseConfig) GetBaseConfig() *ProxyBaseConfig { + return c +} + +func (c *ProxyBaseConfig) Complete(namePrefix string) { + c.Name = lo.Ternary(namePrefix == "", "", namePrefix+".") + c.Name + c.LocalIP = util.EmptyOr(c.LocalIP, "127.0.0.1") + c.Transport.BandwidthLimitMode = util.EmptyOr(c.Transport.BandwidthLimitMode, types.BandwidthLimitModeClient) +} + +func (c *ProxyBaseConfig) MarshalToMsg(m *msg.NewProxy) { + m.ProxyName = c.Name + m.ProxyType = c.Type + m.UseEncryption = c.Transport.UseEncryption + m.UseCompression = c.Transport.UseCompression + m.BandwidthLimit = c.Transport.BandwidthLimit.String() + // leave it empty for default value to reduce traffic + if c.Transport.BandwidthLimitMode != "client" { + m.BandwidthLimitMode = c.Transport.BandwidthLimitMode + } + m.Group = c.LoadBalancer.Group + m.GroupKey = c.LoadBalancer.GroupKey + m.Metas = c.Metadatas +} + +func (c *ProxyBaseConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.Name = m.ProxyName + c.Type = m.ProxyType + c.Transport.UseEncryption = m.UseEncryption + c.Transport.UseCompression = m.UseCompression + if m.BandwidthLimit != "" { + c.Transport.BandwidthLimit, _ = types.NewBandwidthQuantity(m.BandwidthLimit) + } + if m.BandwidthLimitMode != "" { + c.Transport.BandwidthLimitMode = m.BandwidthLimitMode + } + c.LoadBalancer.Group = m.Group + c.LoadBalancer.GroupKey = m.GroupKey + c.Metadatas = m.Metas +} + +type TypedProxyConfig struct { + Type string `json:"type"` + ProxyConfigurer +} + +func (c *TypedProxyConfig) UnmarshalJSON(b []byte) error { + if len(b) == 4 && string(b) == "null" { + return errors.New("type is required") + } + + typeStruct := struct { + Type string `json:"type"` + }{} + if err := json.Unmarshal(b, &typeStruct); err != nil { + return err + } + + c.Type = typeStruct.Type + configurer := NewProxyConfigurerByType(typeStruct.Type) + if configurer == nil { + return fmt.Errorf("unknown proxy type: %s", typeStruct.Type) + } + if err := json.Unmarshal(b, configurer); err != nil { + return err + } + c.ProxyConfigurer = configurer + return nil +} + +type ProxyConfigurer interface { + Complete(namePrefix string) + GetBaseConfig() *ProxyBaseConfig + // MarshalToMsg marshals this config into a msg.NewProxy message. This + // function will be called on the frpc side. + MarshalToMsg(*msg.NewProxy) + // UnmarshalFromMsg unmarshals a msg.NewProxy message into this config. + // This function will be called on the frps side. + UnmarshalFromMsg(*msg.NewProxy) +} + +var proxyConfigTypeMap = map[string]reflect.Type{ + consts.TCPProxy: reflect.TypeOf(TCPProxyConfig{}), + consts.UDPProxy: reflect.TypeOf(UDPProxyConfig{}), + consts.HTTPProxy: reflect.TypeOf(HTTPProxyConfig{}), + consts.HTTPSProxy: reflect.TypeOf(HTTPSProxyConfig{}), + consts.TCPMuxProxy: reflect.TypeOf(TCPMuxProxyConfig{}), + consts.STCPProxy: reflect.TypeOf(STCPProxyConfig{}), + consts.XTCPProxy: reflect.TypeOf(XTCPProxyConfig{}), + consts.SUDPProxy: reflect.TypeOf(SUDPProxyConfig{}), +} + +func NewProxyConfigurerByType(proxyType string) ProxyConfigurer { + v, ok := proxyConfigTypeMap[proxyType] + if !ok { + return nil + } + return reflect.New(v).Interface().(ProxyConfigurer) +} + +var _ ProxyConfigurer = &TCPProxyConfig{} + +type TCPProxyConfig struct { + ProxyBaseConfig + + RemotePort int `json:"remotePort,omitempty"` +} + +func (c *TCPProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.RemotePort = c.RemotePort +} + +func (c *TCPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.RemotePort = m.RemotePort +} + +var _ ProxyConfigurer = &UDPProxyConfig{} + +type UDPProxyConfig struct { + ProxyBaseConfig + + RemotePort int `json:"remotePort,omitempty"` +} + +func (c *UDPProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.RemotePort = c.RemotePort +} + +func (c *UDPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.RemotePort = m.RemotePort +} + +var _ ProxyConfigurer = &HTTPProxyConfig{} + +type HTTPProxyConfig struct { + ProxyBaseConfig + DomainConfig + + Locations []string `json:"locations,omitempty"` + HTTPUser string `json:"httpUser,omitempty"` + HTTPPassword string `json:"httpPassword,omitempty"` + HostHeaderRewrite string `json:"hostHeaderRewrite,omitempty"` + RequestHeaders HeaderOperations `json:"requestHeaders,omitempty"` + RouteByHTTPUser string `json:"routeByHttpUser,omitempty"` +} + +func (c *HTTPProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.CustomDomains = c.CustomDomains + m.SubDomain = c.SubDomain + m.Locations = c.Locations + m.HostHeaderRewrite = c.HostHeaderRewrite + m.HTTPUser = c.HTTPUser + m.HTTPPwd = c.HTTPPassword + m.Headers = c.RequestHeaders.Set + m.RouteByHTTPUser = c.RouteByHTTPUser +} + +func (c *HTTPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.CustomDomains = m.CustomDomains + c.SubDomain = m.SubDomain + c.Locations = m.Locations + c.HostHeaderRewrite = m.HostHeaderRewrite + c.HTTPUser = m.HTTPUser + c.HTTPPassword = m.HTTPPwd + c.RequestHeaders.Set = m.Headers + c.RouteByHTTPUser = m.RouteByHTTPUser +} + +var _ ProxyConfigurer = &HTTPSProxyConfig{} + +type HTTPSProxyConfig struct { + ProxyBaseConfig + DomainConfig +} + +func (c *HTTPSProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.CustomDomains = c.CustomDomains + m.SubDomain = c.SubDomain +} + +func (c *HTTPSProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.CustomDomains = m.CustomDomains + c.SubDomain = m.SubDomain +} + +var _ ProxyConfigurer = &TCPMuxProxyConfig{} + +type TCPMuxProxyConfig struct { + ProxyBaseConfig + DomainConfig + + HTTPUser string `json:"httpUser,omitempty"` + HTTPPassword string `json:"httpPassword,omitempty"` + RouteByHTTPUser string `json:"routeByHttpUser,omitempty"` + Multiplexer string `json:"multiplexer,omitempty"` +} + +func (c *TCPMuxProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.CustomDomains = c.CustomDomains + m.SubDomain = c.SubDomain + m.Multiplexer = c.Multiplexer + m.HTTPUser = c.HTTPUser + m.HTTPPwd = c.HTTPPassword + m.RouteByHTTPUser = c.RouteByHTTPUser +} + +func (c *TCPMuxProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.CustomDomains = m.CustomDomains + c.SubDomain = m.SubDomain + c.Multiplexer = m.Multiplexer + c.HTTPUser = m.HTTPUser + c.HTTPPassword = m.HTTPPwd + c.RouteByHTTPUser = m.RouteByHTTPUser +} + +var _ ProxyConfigurer = &STCPProxyConfig{} + +type STCPProxyConfig struct { + ProxyBaseConfig + + Secretkey string `json:"secretKey,omitempty"` + AllowUsers []string `json:"allowUsers,omitempty"` +} + +func (c *STCPProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.Sk = c.Secretkey + m.AllowUsers = c.AllowUsers +} + +func (c *STCPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.Secretkey = m.Sk + c.AllowUsers = m.AllowUsers +} + +var _ ProxyConfigurer = &XTCPProxyConfig{} + +type XTCPProxyConfig struct { + ProxyBaseConfig + + Secretkey string `json:"secretKey,omitempty"` + AllowUsers []string `json:"allowUsers,omitempty"` +} + +func (c *XTCPProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.Sk = c.Secretkey + m.AllowUsers = c.AllowUsers +} + +func (c *XTCPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.Secretkey = m.Sk + c.AllowUsers = m.AllowUsers +} + +var _ ProxyConfigurer = &SUDPProxyConfig{} + +type SUDPProxyConfig struct { + ProxyBaseConfig + + Secretkey string `json:"secretKey,omitempty"` + AllowUsers []string `json:"allowUsers,omitempty"` +} + +func (c *SUDPProxyConfig) MarshalToMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.MarshalToMsg(m) + + m.Sk = c.Secretkey + m.AllowUsers = c.AllowUsers +} + +func (c *SUDPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { + c.ProxyBaseConfig.UnmarshalFromMsg(m) + + c.Secretkey = m.Sk + c.AllowUsers = m.AllowUsers +} diff --git a/pkg/config/v1/proxy_test.go b/pkg/config/v1/proxy_test.go new file mode 100644 index 00000000000..64753250818 --- /dev/null +++ b/pkg/config/v1/proxy_test.go @@ -0,0 +1,49 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestUnmarshalTypedProxyConfig(t *testing.T) { + require := require.New(t) + proxyConfigs := struct { + Proxies []TypedProxyConfig `json:"proxies,omitempty"` + }{} + + strs := `{ + "proxies": [ + { + "type": "tcp", + "localPort": 22, + "remotePort": 6000 + }, + { + "type": "http", + "localPort": 80, + "customDomains": ["www.example.com"] + } + ] + }` + err := json.Unmarshal([]byte(strs), &proxyConfigs) + require.NoError(err) + + require.IsType(&TCPProxyConfig{}, proxyConfigs.Proxies[0].ProxyConfigurer) + require.IsType(&HTTPProxyConfig{}, proxyConfigs.Proxies[1].ProxyConfigurer) +} diff --git a/pkg/config/v1/server.go b/pkg/config/v1/server.go new file mode 100644 index 00000000000..65c5dc46c9c --- /dev/null +++ b/pkg/config/v1/server.go @@ -0,0 +1,190 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "github.com/samber/lo" + + "github.com/fatedier/frp/pkg/config/types" + "github.com/fatedier/frp/pkg/util/util" +) + +type ServerConfig struct { + APIMetadata + + Auth AuthServerConfig `json:"auth,omitempty"` + // BindAddr specifies the address that the server binds to. By default, + // this value is "0.0.0.0". + BindAddr string `json:"bindAddr,omitempty"` + // BindPort specifies the port that the server listens on. By default, this + // value is 7000. + BindPort int `json:"bindPort,omitempty" validate:"gte=0,lte=65535"` + // KCPBindPort specifies the KCP port that the server listens on. If this + // value is 0, the server will not listen for KCP connections. + KCPBindPort int `json:"kcpBindPort,omitempty" validate:"gte=0,lte=65535"` + // QUICBindPort specifies the QUIC port that the server listens on. + // Set this value to 0 will disable this feature. + QUICBindPort int `json:"quicBindPort,omitempty" validate:"gte=0,lte=65535"` + // ProxyBindAddr specifies the address that the proxy binds to. This value + // may be the same as BindAddr. + ProxyBindAddr string `json:"proxyBindAddr,omitempty"` + // VhostHTTPPort specifies the port that the server listens for HTTP Vhost + // requests. If this value is 0, the server will not listen for HTTP + // requests. + VhostHTTPPort int `json:"vhostHTTPPort,omitempty" validate:"gte=0,lte=65535"` + // VhostHTTPTimeout specifies the response header timeout for the Vhost + // HTTP server, in seconds. By default, this value is 60. + VhostHTTPTimeout int64 `json:"vhostHTTPTimeout,omitempty"` + // VhostHTTPSPort specifies the port that the server listens for HTTPS + // Vhost requests. If this value is 0, the server will not listen for HTTPS + // requests. + VhostHTTPSPort int `json:"vhostHTTPSPort,omitempty" validate:"gte=0,lte=65535"` + // TCPMuxHTTPConnectPort specifies the port that the server listens for TCP + // HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP + // requests on one single port. If it's not - it will listen on this value for + // HTTP CONNECT requests. + TCPMuxHTTPConnectPort int `json:"tcpmuxHTTPConnectPort,omitempty" validate:"gte=0,lte=65535"` + // If TCPMuxPassthrough is true, frps won't do any update on traffic. + TCPMuxPassthrough bool `json:"tcpmuxPassthrough,omitempty"` + // SubDomainHost specifies the domain that will be attached to sub-domains + // requested by the client when using Vhost proxying. For example, if this + // value is set to "frps.com" and the client requested the subdomain + // "test", the resulting URL would be "test.frps.com". + SubDomainHost string `json:"subdomainHost,omitempty"` + // Custom404Page specifies a path to a custom 404 page to display. If this + // value is "", a default page will be displayed. + Custom404Page string `json:"custom404Page,omitempty"` + + WebServer WebServerConfig `json:"webServer,omitempty"` + // EnablePrometheus will export prometheus metrics on webserver address + // in /metrics api. + EnablePrometheus bool `json:"enablePrometheus,omitempty"` + + Log LogConfig `json:"log,omitempty"` + + Transport ServerTransportConfig `json:"transport,omitempty"` + + TLS TLSServerConfig `json:"tls,omitempty"` + + // DetailedErrorsToClient defines whether to send the specific error (with + // debug info) to frpc. By default, this value is true. + DetailedErrorsToClient *bool `json:"detailedErrorsToClient,omitempty"` + // MaxPortsPerClient specifies the maximum number of ports a single client + // may proxy to. If this value is 0, no limit will be applied. + MaxPortsPerClient int64 `json:"maxPortsPerClient,omitempty"` + // UserConnTimeout specifies the maximum time to wait for a work + // connection. By default, this value is 10. + UserConnTimeout int64 `json:"userConnTimeout,omitempty"` + // UDPPacketSize specifies the UDP packet size + // By default, this value is 1500 + UDPPacketSize int64 `json:"udpPacketSize,omitempty"` + // NatHoleAnalysisDataReserveHours specifies the hours to reserve nat hole analysis data. + NatHoleAnalysisDataReserveHours int64 `json:"natholeAnalysisDataReserveHours,omitempty"` + + AllowPorts []types.PortsRange `json:"allowPorts,omitempty"` + + HTTPPlugins []HTTPPluginOptions `json:"httpPlugins,omitempty"` +} + +func (c *ServerConfig) Complete() { + c.Auth.Complete() + c.Log.Complete() + c.Transport.Complete() + c.WebServer.Complete() + + c.BindAddr = util.EmptyOr(c.BindAddr, "0.0.0.0") + c.BindPort = util.EmptyOr(c.BindPort, 7000) + if c.ProxyBindAddr == "" { + c.ProxyBindAddr = c.BindAddr + } + if c.TLS.TrustedCaFile != "" { + c.TLS.Force = true + } + + if c.WebServer.Port > 0 { + c.WebServer.Addr = util.EmptyOr(c.WebServer.Addr, "0.0.0.0") + } + + c.VhostHTTPTimeout = util.EmptyOr(c.VhostHTTPTimeout, 60) + c.DetailedErrorsToClient = util.EmptyOr(c.DetailedErrorsToClient, lo.ToPtr(true)) + c.UserConnTimeout = util.EmptyOr(c.UserConnTimeout, 10) + c.UDPPacketSize = util.EmptyOr(c.UDPPacketSize, 1500) + c.NatHoleAnalysisDataReserveHours = util.EmptyOr(c.NatHoleAnalysisDataReserveHours, 7*24) +} + +type AuthServerConfig struct { + Method string `json:"method,omitempty"` + AdditionalAuthScopes []AuthScope `json:"additionalAuthScopes,omitempty"` + Token string `json:"token,omitempty"` + OIDC AuthOIDCServerConfig `json:"oidc,omitempty"` +} + +func (c *AuthServerConfig) Complete() { + c.Method = util.EmptyOr(c.Method, "token") +} + +type AuthOIDCServerConfig struct { + // Issuer specifies the issuer to verify OIDC tokens with. This issuer + // will be used to load public keys to verify signature and will be compared + // with the issuer claim in the OIDC token. + Issuer string `json:"issuer,omitempty"` + // Audience specifies the audience OIDC tokens should contain when validated. + // If this value is empty, audience ("client ID") verification will be skipped. + Audience string `json:"audience,omitempty"` + // SkipExpiryCheck specifies whether to skip checking if the OIDC token is + // expired. + SkipExpiryCheck bool `json:"skipExpiryCheck,omitempty"` + // SkipIssuerCheck specifies whether to skip checking if the OIDC token's + // issuer claim matches the issuer specified in OidcIssuer. + SkipIssuerCheck bool `json:"skipIssuerCheck,omitempty"` +} + +type ServerTransportConfig struct { + // TCPMux toggles TCP stream multiplexing. This allows multiple requests + // from a client to share a single TCP connection. By default, this value + // is true. + TCPMux *bool `json:"tcpMux,omitempty"` + // TCPMuxKeepaliveInterval specifies the keep alive interval for TCP stream multipler. + // If TCPMux is true, heartbeat of application layer is unnecessary because it can only rely on heartbeat in TCPMux. + TCPMuxKeepaliveInterval int64 `json:"tcpMuxKeepaliveInterval,omitempty"` + // TCPKeepAlive specifies the interval between keep-alive probes for an active network connection between frpc and frps. + // If negative, keep-alive probes are disabled. + TCPKeepAlive int64 `json:"tcpKeepalive,omitempty"` + // MaxPoolCount specifies the maximum pool size for each proxy. By default, + // this value is 5. + MaxPoolCount int64 `json:"maxPoolCount,omitempty"` + // HeartBeatTimeout specifies the maximum time to wait for a heartbeat + // before terminating the connection. It is not recommended to change this + // value. By default, this value is 90. Set negative value to disable it. + HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"` + // QUIC options. + QUIC QUICOptions `json:"quic,omitempty"` +} + +func (c *ServerTransportConfig) Complete() { + c.TCPMux = util.EmptyOr(c.TCPMux, lo.ToPtr(true)) + c.TCPMuxKeepaliveInterval = util.EmptyOr(c.TCPMuxKeepaliveInterval, 60) + c.TCPKeepAlive = util.EmptyOr(c.TCPKeepAlive, 7200) + c.MaxPoolCount = util.EmptyOr(c.MaxPoolCount, 5) + c.HeartbeatTimeout = util.EmptyOr(c.HeartbeatTimeout, 90) + c.QUIC.Complete() +} + +type TLSServerConfig struct { + // Force specifies whether to only accept TLS-encrypted connections. + Force bool `json:"force,omitempty"` + + TLSConfig +} diff --git a/pkg/config/v1/server_test.go b/pkg/config/v1/server_test.go new file mode 100644 index 00000000000..8ce5b2c19f2 --- /dev/null +++ b/pkg/config/v1/server_test.go @@ -0,0 +1,32 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "testing" + + "github.com/samber/lo" + "github.com/stretchr/testify/require" +) + +func TestServerConfigComplete(t *testing.T) { + require := require.New(t) + c := &ServerConfig{} + c.Complete() + + require.Equal("token", c.Auth.Method) + require.Equal(true, lo.FromPtr(c.Transport.TCPMux)) + require.Equal(true, lo.FromPtr(c.DetailedErrorsToClient)) +} diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go new file mode 100644 index 00000000000..537f386df83 --- /dev/null +++ b/pkg/config/v1/validation/client.go @@ -0,0 +1,90 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package validation + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/samber/lo" + + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { + var ( + warnings Warning + errs error + ) + if c.Transport.HeartbeatTimeout > 0 && c.Transport.HeartbeatInterval > 0 { + if c.Transport.HeartbeatTimeout < c.Transport.HeartbeatInterval { + errs = AppendError(errs, fmt.Errorf("invalid transport.heartbeatTimeout, heartbeat timeout should not less than heartbeat interval")) + } + } + + if !lo.FromPtr(c.Transport.TLS.Enable) { + checkTLSConfig := func(name string, value string) Warning { + if value != "" { + return fmt.Errorf("%s is invalid when transport.tls.enable is false", name) + } + return nil + } + + warnings = AppendError(warnings, checkTLSConfig("transport.tls.certFile", c.Transport.TLS.CertFile)) + warnings = AppendError(warnings, checkTLSConfig("transport.tls.keyFile", c.Transport.TLS.KeyFile)) + warnings = AppendError(warnings, checkTLSConfig("transport.tls.trustedCaFile", c.Transport.TLS.TrustedCaFile)) + } + + if !lo.Contains([]string{"tcp", "kcp", "quic", "websocket", "wss"}, c.Transport.Protocol) { + errs = AppendError(errs, fmt.Errorf("invalid transport.protocol, only support tcp, kcp, quic, websocket, wss")) + } + + for _, f := range c.IncludeConfigFiles { + absDir, err := filepath.Abs(filepath.Dir(f)) + if err != nil { + errs = AppendError(errs, fmt.Errorf("include: parse directory of %s failed: %v", f, err)) + continue + } + if _, err := os.Stat(absDir); os.IsNotExist(err) { + errs = AppendError(errs, fmt.Errorf("include: directory of %s not exist", f)) + } + } + return warnings, errs +} + +func ValidateAllClientConfig(c *v1.ClientCommonConfig, pxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer) (Warning, error) { + var warnings Warning + if c != nil { + warning, err := ValidateClientCommonConfig(c) + warnings = AppendError(warnings, warning) + if err != nil { + return err, warnings + } + } + + for _, c := range pxyCfgs { + if err := ValidateProxyConfigurerForClient(c); err != nil { + return warnings, fmt.Errorf("proxy %s: %v", c.GetBaseConfig().Name, err) + } + } + + for _, c := range visitorCfgs { + if err := ValidateVisitorConfigurer(c); err != nil { + return warnings, fmt.Errorf("visitor %s: %v", c.GetBaseConfig().Name, err) + } + } + return warnings, nil +} diff --git a/pkg/config/v1/validation/common.go b/pkg/config/v1/validation/common.go new file mode 100644 index 00000000000..f2d5251ebb8 --- /dev/null +++ b/pkg/config/v1/validation/common.go @@ -0,0 +1,41 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package validation + +import ( + "fmt" + + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +func validateWebServerConfig(c *v1.WebServerConfig) error { + if c.TLS != nil { + if c.TLS.CertFile == "" { + return fmt.Errorf("tls.certFile must be specified when tls is enabled") + } + if c.TLS.KeyFile == "" { + return fmt.Errorf("tls.keyFile must be specified when tls is enabled") + } + } + return nil +} + +// ValidatePort checks that the network port is in range +func ValidatePort(port int) error { + if 0 <= port && port <= 65535 { + return nil + } + return fmt.Errorf("port number %d must be in the range 0..65535", port) +} diff --git a/pkg/config/v1/validation/plugin.go b/pkg/config/v1/validation/plugin.go new file mode 100644 index 00000000000..9c88d142cb2 --- /dev/null +++ b/pkg/config/v1/validation/plugin.go @@ -0,0 +1,72 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package validation + +import ( + "errors" + + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +func ValidateClientPluginOptions(c v1.ClientPluginOptions) error { + switch v := c.(type) { + case *v1.HTTP2HTTPSPluginOptions: + return validateHTTP2HTTPSPluginOptions(v) + case *v1.HTTPS2HTTPPluginOptions: + return validateHTTPS2HTTPPluginOptions(v) + case *v1.HTTPS2HTTPSPluginOptions: + return validateHTTPS2HTTPSPluginOptions(v) + case *v1.StaticFilePluginOptions: + return validateStaticFilePluginOptions(v) + case *v1.UnixDomainSocketPluginOptions: + return validateUnixDomainSocketPluginOptions(v) + } + return nil +} + +func validateHTTP2HTTPSPluginOptions(c *v1.HTTP2HTTPSPluginOptions) error { + if c.LocalAddr == "" { + return errors.New("localAddr is required") + } + return nil +} + +func validateHTTPS2HTTPPluginOptions(c *v1.HTTPS2HTTPPluginOptions) error { + if c.LocalAddr == "" { + return errors.New("localAddr is required") + } + return nil +} + +func validateHTTPS2HTTPSPluginOptions(c *v1.HTTPS2HTTPSPluginOptions) error { + if c.LocalAddr == "" { + return errors.New("localAddr is required") + } + return nil +} + +func validateStaticFilePluginOptions(c *v1.StaticFilePluginOptions) error { + if c.LocalPath == "" { + return errors.New("localPath is required") + } + return nil +} + +func validateUnixDomainSocketPluginOptions(c *v1.UnixDomainSocketPluginOptions) error { + if c.UnixPath == "" { + return errors.New("unixPath is required") + } + return nil +} diff --git a/pkg/config/v1/validation/proxy.go b/pkg/config/v1/validation/proxy.go new file mode 100644 index 00000000000..541a4376ee0 --- /dev/null +++ b/pkg/config/v1/validation/proxy.go @@ -0,0 +1,234 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package validation + +import ( + "errors" + "fmt" + "strings" + + "github.com/samber/lo" + + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/consts" +) + +func validateProxyBaseConfigForClient(c *v1.ProxyBaseConfig) error { + if c.Name == "" { + return errors.New("name should not be empty") + } + + if !lo.Contains([]string{"", "v1", "v2"}, c.Transport.ProxyProtocolVersion) { + return fmt.Errorf("not support proxy protocol version: %s", c.Transport.ProxyProtocolVersion) + } + + if !lo.Contains([]string{"client", "server"}, c.Transport.BandwidthLimitMode) { + return fmt.Errorf("bandwidth limit mode should be client or server") + } + + if c.Plugin.Type == "" { + if err := ValidatePort(c.LocalPort); err != nil { + return fmt.Errorf("localPort: %v", err) + } + } + + if !lo.Contains([]string{"", "tcp", "http"}, c.HealthCheck.Type) { + return fmt.Errorf("not support health check type: %s", c.HealthCheck.Type) + } + if c.HealthCheck.Type != "" { + if c.HealthCheck.Type == "http" && + c.HealthCheck.Path == "" { + return fmt.Errorf("health check path should not be empty") + } + } + + if c.Plugin.Type != "" { + if err := ValidateClientPluginOptions(c.Plugin.ClientPluginOptions); err != nil { + return fmt.Errorf("plugin %s: %v", c.Plugin.Type, err) + } + } + return nil +} + +func validateProxyBaseConfigForServer(c *v1.ProxyBaseConfig, s *v1.ServerConfig) error { + return nil +} + +func validateDomainConfigForClient(c *v1.DomainConfig) error { + if c.SubDomain == "" && len(c.CustomDomains) == 0 { + return errors.New("subdomain and custom domains should not be both empty") + } + return nil +} + +func validateDomainConfigForServer(c *v1.DomainConfig, s *v1.ServerConfig) error { + for _, domain := range c.CustomDomains { + if s.SubDomainHost != "" && len(strings.Split(s.SubDomainHost, ".")) < len(strings.Split(domain, ".")) { + if strings.Contains(domain, s.SubDomainHost) { + return fmt.Errorf("custom domain [%s] should not belong to subdomain host [%s]", domain, s.SubDomainHost) + } + } + } + + if c.SubDomain != "" { + if s.SubDomainHost == "" { + return errors.New("subdomain is not supported because this feature is not enabled in server") + } + + if strings.Contains(c.SubDomain, ".") || strings.Contains(c.SubDomain, "*") { + return errors.New("'.' and '*' are not supported in subdomain") + } + } + return nil +} + +func ValidateProxyConfigurerForClient(c v1.ProxyConfigurer) error { + base := c.GetBaseConfig() + if err := validateProxyBaseConfigForClient(base); err != nil { + return err + } + + switch v := c.(type) { + case *v1.TCPProxyConfig: + return validateTCPProxyConfigForClient(v) + case *v1.UDPProxyConfig: + return validateUDPProxyConfigForClient(v) + case *v1.TCPMuxProxyConfig: + return validateTCPMuxProxyConfigForClient(v) + case *v1.HTTPProxyConfig: + return validateHTTPProxyConfigForClient(v) + case *v1.HTTPSProxyConfig: + return validateHTTPSProxyConfigForClient(v) + case *v1.STCPProxyConfig: + return validateSTCPProxyConfigForClient(v) + case *v1.XTCPProxyConfig: + return validateXTCPProxyConfigForClient(v) + case *v1.SUDPProxyConfig: + return validateSUDPProxyConfigForClient(v) + } + return errors.New("unknown proxy config type") +} + +func validateTCPProxyConfigForClient(c *v1.TCPProxyConfig) error { + return nil +} + +func validateUDPProxyConfigForClient(c *v1.UDPProxyConfig) error { + return nil +} + +func validateTCPMuxProxyConfigForClient(c *v1.TCPMuxProxyConfig) error { + if err := validateDomainConfigForClient(&c.DomainConfig); err != nil { + return err + } + + if !lo.Contains([]string{consts.HTTPConnectTCPMultiplexer}, c.Multiplexer) { + return fmt.Errorf("not support multiplexer: %s", c.Multiplexer) + } + return nil +} + +func validateHTTPProxyConfigForClient(c *v1.HTTPProxyConfig) error { + return validateDomainConfigForClient(&c.DomainConfig) +} + +func validateHTTPSProxyConfigForClient(c *v1.HTTPSProxyConfig) error { + return validateDomainConfigForClient(&c.DomainConfig) +} + +func validateSTCPProxyConfigForClient(c *v1.STCPProxyConfig) error { + return nil +} + +func validateXTCPProxyConfigForClient(c *v1.XTCPProxyConfig) error { + return nil +} + +func validateSUDPProxyConfigForClient(c *v1.SUDPProxyConfig) error { + return nil +} + +func ValidateProxyConfigurerForServer(c v1.ProxyConfigurer, s *v1.ServerConfig) error { + base := c.GetBaseConfig() + if err := validateProxyBaseConfigForServer(base, s); err != nil { + return err + } + + switch v := c.(type) { + case *v1.TCPProxyConfig: + return validateTCPProxyConfigForServer(v, s) + case *v1.UDPProxyConfig: + return validateUDPProxyConfigForServer(v, s) + case *v1.TCPMuxProxyConfig: + return validateTCPMuxProxyConfigForServer(v, s) + case *v1.HTTPProxyConfig: + return validateHTTPProxyConfigForServer(v, s) + case *v1.HTTPSProxyConfig: + return validateHTTPSProxyConfigForServer(v, s) + case *v1.STCPProxyConfig: + return validateSTCPProxyConfigForServer(v, s) + case *v1.XTCPProxyConfig: + return validateXTCPProxyConfigForServer(v, s) + case *v1.SUDPProxyConfig: + return validateSUDPProxyConfigForServer(v, s) + default: + return errors.New("unknown proxy config type") + } +} + +func validateTCPProxyConfigForServer(c *v1.TCPProxyConfig, s *v1.ServerConfig) error { + return nil +} + +func validateUDPProxyConfigForServer(c *v1.UDPProxyConfig, s *v1.ServerConfig) error { + return nil +} + +func validateTCPMuxProxyConfigForServer(c *v1.TCPMuxProxyConfig, s *v1.ServerConfig) error { + if c.Multiplexer == consts.HTTPConnectTCPMultiplexer && + s.TCPMuxHTTPConnectPort == 0 { + return fmt.Errorf("tcpmux with multiplexer httpconnect not supported because this feature is not enabled in server") + } + + return validateDomainConfigForServer(&c.DomainConfig, s) +} + +func validateHTTPProxyConfigForServer(c *v1.HTTPProxyConfig, s *v1.ServerConfig) error { + if s.VhostHTTPPort == 0 { + return fmt.Errorf("type [http] not supported when vhost http port is not set") + } + + return validateDomainConfigForServer(&c.DomainConfig, s) +} + +func validateHTTPSProxyConfigForServer(c *v1.HTTPSProxyConfig, s *v1.ServerConfig) error { + if s.VhostHTTPSPort == 0 { + return fmt.Errorf("type [https] not supported when vhost https port is not set") + } + + return validateDomainConfigForServer(&c.DomainConfig, s) +} + +func validateSTCPProxyConfigForServer(c *v1.STCPProxyConfig, s *v1.ServerConfig) error { + return nil +} + +func validateXTCPProxyConfigForServer(c *v1.XTCPProxyConfig, s *v1.ServerConfig) error { + return nil +} + +func validateSUDPProxyConfigForServer(c *v1.SUDPProxyConfig, s *v1.ServerConfig) error { + return nil +} diff --git a/pkg/config/v1/validation/server.go b/pkg/config/v1/validation/server.go new file mode 100644 index 00000000000..9f0fbfad0d6 --- /dev/null +++ b/pkg/config/v1/validation/server.go @@ -0,0 +1,37 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package validation + +import ( + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { + var ( + warnings Warning + errs error + ) + if err := validateWebServerConfig(&c.WebServer); err != nil { + errs = AppendError(errs, err) + } + + errs = AppendError(errs, ValidatePort(c.BindPort)) + errs = AppendError(errs, ValidatePort(c.KCPBindPort)) + errs = AppendError(errs, ValidatePort(c.QUICBindPort)) + errs = AppendError(errs, ValidatePort(c.VhostHTTPPort)) + errs = AppendError(errs, ValidatePort(c.VhostHTTPSPort)) + errs = AppendError(errs, ValidatePort(c.TCPMuxHTTPConnectPort)) + return warnings, errs +} diff --git a/pkg/config/v1/validation/validation.go b/pkg/config/v1/validation/validation.go new file mode 100644 index 00000000000..b081e909a25 --- /dev/null +++ b/pkg/config/v1/validation/validation.go @@ -0,0 +1,28 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package validation + +import ( + "errors" +) + +type Warning error + +func AppendError(err error, errs ...error) error { + if len(errs) == 0 { + return err + } + return errors.Join(append([]error{err}, errs...)...) +} diff --git a/pkg/config/v1/validation/visitor.go b/pkg/config/v1/validation/visitor.go new file mode 100644 index 00000000000..c478b490e0f --- /dev/null +++ b/pkg/config/v1/validation/visitor.go @@ -0,0 +1,59 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package validation + +import ( + "errors" + "fmt" + + "github.com/samber/lo" + + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +func ValidateVisitorConfigurer(c v1.VisitorConfigurer) error { + base := c.GetBaseConfig() + if err := validateVisitorBaseConfig(base); err != nil { + return err + } + + switch v := c.(type) { + case *v1.STCPVisitorConfig: + case *v1.SUDPVisitorConfig: + case *v1.XTCPVisitorConfig: + return validateXTCPVisitorConfig(v) + default: + return errors.New("unknown visitor config type") + } + return nil +} + +func validateVisitorBaseConfig(c *v1.VisitorBaseConfig) error { + if c.Name == "" { + return errors.New("name should not be empty") + } + + if c.BindPort == 0 { + return errors.New("bind port is required") + } + return nil +} + +func validateXTCPVisitorConfig(c *v1.XTCPVisitorConfig) error { + if !lo.Contains([]string{"kcp", "quic"}, c.Protocol) { + return fmt.Errorf("protocol should be kcp or quic") + } + return nil +} diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go new file mode 100644 index 00000000000..523b863b416 --- /dev/null +++ b/pkg/config/v1/visitor.go @@ -0,0 +1,155 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "encoding/json" + "errors" + "fmt" + "reflect" + + "github.com/samber/lo" + + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/util/util" +) + +type VisitorTransport struct { + UseEncryption bool `json:"useEncryption,omitempty"` + UseCompression bool `json:"useCompression,omitempty"` +} + +type VisitorBaseConfig struct { + Name string `json:"name"` + Type string `json:"type"` + Transport VisitorTransport `json:"transport,omitempty"` + SecretKey string `json:"sk,omitempty"` + // if the server user is not set, it defaults to the current user + ServerUser string `json:"serverUser,omitempty"` + ServerName string `json:"serverName,omitempty"` + BindAddr string `json:"bindAddr,omitempty"` + // BindPort is the port that visitor listens on. + // It can be less than 0, it means don't bind to the port and only receive connections redirected from + // other visitors. (This is not supported for SUDP now) + BindPort int `json:"bindPort,omitempty"` +} + +func (c *VisitorBaseConfig) GetBaseConfig() *VisitorBaseConfig { + return c +} + +func (c *VisitorBaseConfig) Complete(g *ClientCommonConfig) { + if c.BindAddr == "" { + c.BindAddr = "127.0.0.1" + } + + namePrefix := "" + if g.User != "" { + namePrefix = g.User + "." + } + c.Name = namePrefix + c.Name + + if c.ServerUser != "" { + c.ServerName = c.ServerUser + "." + c.ServerName + } else { + c.ServerName = namePrefix + c.ServerName + } +} + +type VisitorConfigurer interface { + Complete(*ClientCommonConfig) + GetBaseConfig() *VisitorBaseConfig +} + +var visitorConfigTypeMap = map[string]reflect.Type{ + consts.STCPProxy: reflect.TypeOf(STCPVisitorConfig{}), + consts.XTCPProxy: reflect.TypeOf(XTCPVisitorConfig{}), + consts.SUDPProxy: reflect.TypeOf(SUDPVisitorConfig{}), +} + +type TypedVisitorConfig struct { + Type string `json:"type"` + VisitorConfigurer +} + +func (c *TypedVisitorConfig) UnmarshalJSON(b []byte) error { + if len(b) == 4 && string(b) == "null" { + return errors.New("type is required") + } + + typeStruct := struct { + Type string `json:"type"` + }{} + if err := json.Unmarshal(b, &typeStruct); err != nil { + return err + } + + c.Type = typeStruct.Type + configurer := NewVisitorConfigurerByType(typeStruct.Type) + if configurer == nil { + return fmt.Errorf("unknown visitor type: %s" + typeStruct.Type) + } + if err := json.Unmarshal(b, configurer); err != nil { + return err + } + c.VisitorConfigurer = configurer + return nil +} + +func NewVisitorConfigurerByType(t string) VisitorConfigurer { + v, ok := visitorConfigTypeMap[t] + if !ok { + return nil + } + return reflect.New(v).Interface().(VisitorConfigurer) +} + +var _ VisitorConfigurer = &STCPVisitorConfig{} + +type STCPVisitorConfig struct { + VisitorBaseConfig +} + +var _ VisitorConfigurer = &SUDPVisitorConfig{} + +type SUDPVisitorConfig struct { + VisitorBaseConfig +} + +var _ VisitorConfigurer = &XTCPVisitorConfig{} + +type XTCPVisitorConfig struct { + VisitorBaseConfig + + Protocol string `json:"protocol,omitempty"` + KeepTunnelOpen bool `json:"keepTunnelOpen,omitempty"` + MaxRetriesAnHour int `json:"maxRetriesAnHour,omitempty"` + MinRetryInterval int `json:"minRetryInterval,omitempty"` + FallbackTo string `json:"fallbackTo,omitempty"` + FallbackTimeoutMs int `json:"fallbackTimeoutMs,omitempty"` +} + +func (c *XTCPVisitorConfig) Complete(g *ClientCommonConfig) { + c.VisitorBaseConfig.Complete(g) + + c.Protocol = util.EmptyOr(c.Protocol, "quic") + c.MaxRetriesAnHour = util.EmptyOr(c.MaxRetriesAnHour, 8) + c.MinRetryInterval = util.EmptyOr(c.MinRetryInterval, 90) + c.FallbackTimeoutMs = util.EmptyOr(c.FallbackTimeoutMs, 1000) + + if c.FallbackTo != "" { + c.FallbackTo = lo.Ternary(g.User == "", "", g.User+".") + c.FallbackTo + } +} diff --git a/pkg/config/visitor_test.go b/pkg/config/visitor_test.go deleted file mode 100644 index 46cbef5ab50..00000000000 --- a/pkg/config/visitor_test.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2020 The frp Authors -// -// Licensed 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. - -package config - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "gopkg.in/ini.v1" - - "github.com/fatedier/frp/pkg/consts" -) - -const testVisitorPrefix = "test." - -func Test_Visitor_Interface(_ *testing.T) { - for name := range visitorConfTypeMap { - DefaultVisitorConf(name) - } -} - -func Test_Visitor_UnmarshalFromIni(t *testing.T) { - assert := assert.New(t) - - testcases := []struct { - sname string - source []byte - expected VisitorConf - }{ - { - sname: "secret_tcp_visitor", - source: []byte(` - [secret_tcp_visitor] - role = visitor - type = stcp - server_name = secret_tcp - sk = abcdefg - bind_addr = 127.0.0.1 - bind_port = 9000 - use_encryption = false - use_compression = false - `), - expected: &STCPVisitorConf{ - BaseVisitorConf: BaseVisitorConf{ - ProxyName: testVisitorPrefix + "secret_tcp_visitor", - ProxyType: consts.STCPProxy, - Role: "visitor", - Sk: "abcdefg", - ServerName: testVisitorPrefix + "secret_tcp", - BindAddr: "127.0.0.1", - BindPort: 9000, - }, - }, - }, - { - sname: "p2p_tcp_visitor", - source: []byte(` - [p2p_tcp_visitor] - role = visitor - type = xtcp - server_name = p2p_tcp - sk = abcdefg - bind_addr = 127.0.0.1 - bind_port = 9001 - use_encryption = false - use_compression = false - `), - expected: &XTCPVisitorConf{ - BaseVisitorConf: BaseVisitorConf{ - ProxyName: testVisitorPrefix + "p2p_tcp_visitor", - ProxyType: consts.XTCPProxy, - Role: "visitor", - Sk: "abcdefg", - ServerName: testProxyPrefix + "p2p_tcp", - BindAddr: "127.0.0.1", - BindPort: 9001, - }, - Protocol: "quic", - MaxRetriesAnHour: 8, - MinRetryInterval: 90, - FallbackTimeoutMs: 1000, - }, - }, - } - - for _, c := range testcases { - f, err := ini.LoadSources(testLoadOptions, c.source) - assert.NoError(err) - - visitorType := f.Section(c.sname).Key("type").String() - assert.NotEmpty(visitorType) - - actual := DefaultVisitorConf(visitorType) - assert.NotNil(actual) - - err = actual.UnmarshalFromIni(testVisitorPrefix, c.sname, f.Section(c.sname)) - assert.NoError(err) - assert.Equal(c.expected, actual) - } -} diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index beacab00570..712a24be223 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -16,55 +16,34 @@ package plugin import ( "crypto/tls" - "fmt" "io" "net" "net/http" "net/http/httputil" - "strings" + v1 "github.com/fatedier/frp/pkg/config/v1" utilnet "github.com/fatedier/frp/pkg/util/net" ) -const PluginHTTP2HTTPS = "http2https" - func init() { - Register(PluginHTTP2HTTPS, NewHTTP2HTTPSPlugin) + Register(v1.PluginHTTP2HTTPS, NewHTTP2HTTPSPlugin) } type HTTP2HTTPSPlugin struct { - hostHeaderRewrite string - localAddr string - headers map[string]string + opts *v1.HTTP2HTTPSPluginOptions l *Listener s *http.Server } -func NewHTTP2HTTPSPlugin(params map[string]string) (Plugin, error) { - localAddr := params["plugin_local_addr"] - hostHeaderRewrite := params["plugin_host_header_rewrite"] - headers := make(map[string]string) - for k, v := range params { - if !strings.HasPrefix(k, "plugin_header_") { - continue - } - if k = strings.TrimPrefix(k, "plugin_header_"); k != "" { - headers[k] = v - } - } - - if localAddr == "" { - return nil, fmt.Errorf("plugin_local_addr is required") - } +func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { + opts := options.(*v1.HTTP2HTTPSPluginOptions) listener := NewProxyListener() p := &HTTP2HTTPSPlugin{ - localAddr: localAddr, - hostHeaderRewrite: hostHeaderRewrite, - headers: headers, - l: listener, + opts: opts, + l: listener, } tr := &http.Transport{ @@ -74,11 +53,11 @@ func NewHTTP2HTTPSPlugin(params map[string]string) (Plugin, error) { rp := &httputil.ReverseProxy{ Director: func(req *http.Request) { req.URL.Scheme = "https" - req.URL.Host = p.localAddr - if p.hostHeaderRewrite != "" { - req.Host = p.hostHeaderRewrite + req.URL.Host = p.opts.LocalAddr + if p.opts.HostHeaderRewrite != "" { + req.Host = p.opts.HostHeaderRewrite } - for k, v := range p.headers { + for k, v := range p.opts.RequestHeaders.Set { req.Header.Set(k, v) } }, @@ -103,7 +82,7 @@ func (p *HTTP2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ } func (p *HTTP2HTTPSPlugin) Name() string { - return PluginHTTP2HTTPS + return v1.PluginHTTP2HTTPS } func (p *HTTP2HTTPSPlugin) Close() error { diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index f9e5dae81d1..6af7c103d5e 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -26,32 +26,29 @@ import ( libio "github.com/fatedier/golib/io" libnet "github.com/fatedier/golib/net" + v1 "github.com/fatedier/frp/pkg/config/v1" utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" ) -const PluginHTTPProxy = "http_proxy" - func init() { - Register(PluginHTTPProxy, NewHTTPProxyPlugin) + Register(v1.PluginHTTPProxy, NewHTTPProxyPlugin) } type HTTPProxy struct { - l *Listener - s *http.Server - AuthUser string - AuthPasswd string + opts *v1.HTTPProxyPluginOptions + + l *Listener + s *http.Server } -func NewHTTPProxyPlugin(params map[string]string) (Plugin, error) { - user := params["plugin_http_user"] - passwd := params["plugin_http_passwd"] +func NewHTTPProxyPlugin(options v1.ClientPluginOptions) (Plugin, error) { + opts := options.(*v1.HTTPProxyPluginOptions) listener := NewProxyListener() hp := &HTTPProxy{ - l: listener, - AuthUser: user, - AuthPasswd: passwd, + l: listener, + opts: opts, } hp.s = &http.Server{ @@ -65,7 +62,7 @@ func NewHTTPProxyPlugin(params map[string]string) (Plugin, error) { } func (hp *HTTPProxy) Name() string { - return PluginHTTPProxy + return v1.PluginHTTPProxy } func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { @@ -162,7 +159,7 @@ func (hp *HTTPProxy) ConnectHandler(rw http.ResponseWriter, req *http.Request) { } func (hp *HTTPProxy) Auth(req *http.Request) bool { - if hp.AuthUser == "" && hp.AuthPasswd == "" { + if hp.opts.HTTPUser == "" && hp.opts.HTTPPassword == "" { return true } @@ -181,8 +178,8 @@ func (hp *HTTPProxy) Auth(req *http.Request) bool { return false } - if !util.ConstantTimeEqString(pair[0], hp.AuthUser) || - !util.ConstantTimeEqString(pair[1], hp.AuthPasswd) { + if !util.ConstantTimeEqString(pair[0], hp.opts.HTTPUser) || + !util.ConstantTimeEqString(pair[1], hp.opts.HTTPPassword) { time.Sleep(200 * time.Millisecond) return false } diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 71cc025c646..0adfabf0f1e 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -21,67 +21,40 @@ import ( "net" "net/http" "net/http/httputil" - "strings" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/transport" utilnet "github.com/fatedier/frp/pkg/util/net" ) -const PluginHTTPS2HTTP = "https2http" - func init() { - Register(PluginHTTPS2HTTP, NewHTTPS2HTTPPlugin) + Register(v1.PluginHTTPS2HTTP, NewHTTPS2HTTPPlugin) } type HTTPS2HTTPPlugin struct { - crtPath string - keyPath string - hostHeaderRewrite string - localAddr string - headers map[string]string + opts *v1.HTTPS2HTTPPluginOptions l *Listener s *http.Server } -func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) { - crtPath := params["plugin_crt_path"] - keyPath := params["plugin_key_path"] - localAddr := params["plugin_local_addr"] - hostHeaderRewrite := params["plugin_host_header_rewrite"] - headers := make(map[string]string) - for k, v := range params { - if !strings.HasPrefix(k, "plugin_header_") { - continue - } - if k = strings.TrimPrefix(k, "plugin_header_"); k != "" { - headers[k] = v - } - } - - if localAddr == "" { - return nil, fmt.Errorf("plugin_local_addr is required") - } - +func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { + opts := options.(*v1.HTTPS2HTTPPluginOptions) listener := NewProxyListener() p := &HTTPS2HTTPPlugin{ - crtPath: crtPath, - keyPath: keyPath, - localAddr: localAddr, - hostHeaderRewrite: hostHeaderRewrite, - headers: headers, - l: listener, + opts: opts, + l: listener, } rp := &httputil.ReverseProxy{ Director: func(req *http.Request) { req.URL.Scheme = "http" - req.URL.Host = p.localAddr - if p.hostHeaderRewrite != "" { - req.Host = p.hostHeaderRewrite + req.URL.Host = p.opts.LocalAddr + if p.opts.HostHeaderRewrite != "" { + req.Host = p.opts.HostHeaderRewrite } - for k, v := range p.headers { + for k, v := range p.opts.RequestHeaders.Set { req.Header.Set(k, v) } }, @@ -95,7 +68,7 @@ func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) { tlsConfig *tls.Config err error ) - if crtPath != "" || keyPath != "" { + if opts.CrtPath != "" || opts.KeyPath != "" { tlsConfig, err = p.genTLSConfig() } else { tlsConfig, err = transport.NewServerTLSConfig("", "", "") @@ -113,7 +86,7 @@ func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) { } func (p *HTTPS2HTTPPlugin) genTLSConfig() (*tls.Config, error) { - cert, err := tls.LoadX509KeyPair(p.crtPath, p.keyPath) + cert, err := tls.LoadX509KeyPair(p.opts.CrtPath, p.opts.KeyPath) if err != nil { return nil, err } @@ -128,7 +101,7 @@ func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ } func (p *HTTPS2HTTPPlugin) Name() string { - return PluginHTTPS2HTTP + return v1.PluginHTTPS2HTTP } func (p *HTTPS2HTTPPlugin) Close() error { diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index d925ec24ad2..374755e6c6d 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -21,57 +21,31 @@ import ( "net" "net/http" "net/http/httputil" - "strings" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/transport" utilnet "github.com/fatedier/frp/pkg/util/net" ) -const PluginHTTPS2HTTPS = "https2https" - func init() { - Register(PluginHTTPS2HTTPS, NewHTTPS2HTTPSPlugin) + Register(v1.PluginHTTPS2HTTPS, NewHTTPS2HTTPSPlugin) } type HTTPS2HTTPSPlugin struct { - crtPath string - keyPath string - hostHeaderRewrite string - localAddr string - headers map[string]string + opts *v1.HTTPS2HTTPSPluginOptions l *Listener s *http.Server } -func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) { - crtPath := params["plugin_crt_path"] - keyPath := params["plugin_key_path"] - localAddr := params["plugin_local_addr"] - hostHeaderRewrite := params["plugin_host_header_rewrite"] - headers := make(map[string]string) - for k, v := range params { - if !strings.HasPrefix(k, "plugin_header_") { - continue - } - if k = strings.TrimPrefix(k, "plugin_header_"); k != "" { - headers[k] = v - } - } - - if localAddr == "" { - return nil, fmt.Errorf("plugin_local_addr is required") - } +func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { + opts := options.(*v1.HTTPS2HTTPSPluginOptions) listener := NewProxyListener() p := &HTTPS2HTTPSPlugin{ - crtPath: crtPath, - keyPath: keyPath, - localAddr: localAddr, - hostHeaderRewrite: hostHeaderRewrite, - headers: headers, - l: listener, + opts: opts, + l: listener, } tr := &http.Transport{ @@ -81,11 +55,11 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) { rp := &httputil.ReverseProxy{ Director: func(req *http.Request) { req.URL.Scheme = "https" - req.URL.Host = p.localAddr - if p.hostHeaderRewrite != "" { - req.Host = p.hostHeaderRewrite + req.URL.Host = p.opts.LocalAddr + if p.opts.HostHeaderRewrite != "" { + req.Host = p.opts.HostHeaderRewrite } - for k, v := range p.headers { + for k, v := range p.opts.RequestHeaders.Set { req.Header.Set(k, v) } }, @@ -100,7 +74,7 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) { tlsConfig *tls.Config err error ) - if crtPath != "" || keyPath != "" { + if opts.CrtPath != "" || opts.KeyPath != "" { tlsConfig, err = p.genTLSConfig() } else { tlsConfig, err = transport.NewServerTLSConfig("", "", "") @@ -118,7 +92,7 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) { } func (p *HTTPS2HTTPSPlugin) genTLSConfig() (*tls.Config, error) { - cert, err := tls.LoadX509KeyPair(p.crtPath, p.keyPath) + cert, err := tls.LoadX509KeyPair(p.opts.CrtPath, p.opts.KeyPath) if err != nil { return nil, err } @@ -133,7 +107,7 @@ func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ } func (p *HTTPS2HTTPSPlugin) Name() string { - return PluginHTTPS2HTTPS + return v1.PluginHTTPS2HTTPS } func (p *HTTPS2HTTPSPlugin) Close() error { diff --git a/pkg/plugin/client/plugin.go b/pkg/plugin/client/plugin.go index 6850919a3c1..98e1bb73a09 100644 --- a/pkg/plugin/client/plugin.go +++ b/pkg/plugin/client/plugin.go @@ -21,21 +21,23 @@ import ( "sync" "github.com/fatedier/golib/errors" + + v1 "github.com/fatedier/frp/pkg/config/v1" ) // Creators is used for create plugins to handle connections. var creators = make(map[string]CreatorFn) // params has prefix "plugin_" -type CreatorFn func(params map[string]string) (Plugin, error) +type CreatorFn func(options v1.ClientPluginOptions) (Plugin, error) func Register(name string, fn CreatorFn) { creators[name] = fn } -func Create(name string, params map[string]string) (p Plugin, err error) { +func Create(name string, options v1.ClientPluginOptions) (p Plugin, err error) { if fn, ok := creators[name]; ok { - p, err = fn(params) + p, err = fn(options) } else { err = fmt.Errorf("plugin [%s] is not registered", name) } diff --git a/pkg/plugin/client/socks5.go b/pkg/plugin/client/socks5.go index 805f956b907..f71d579b795 100644 --- a/pkg/plugin/client/socks5.go +++ b/pkg/plugin/client/socks5.go @@ -21,28 +21,26 @@ import ( gosocks5 "github.com/armon/go-socks5" + v1 "github.com/fatedier/frp/pkg/config/v1" utilnet "github.com/fatedier/frp/pkg/util/net" ) -const PluginSocks5 = "socks5" - func init() { - Register(PluginSocks5, NewSocks5Plugin) + Register(v1.PluginSocks5, NewSocks5Plugin) } type Socks5Plugin struct { Server *gosocks5.Server } -func NewSocks5Plugin(params map[string]string) (p Plugin, err error) { - user := params["plugin_user"] - passwd := params["plugin_passwd"] +func NewSocks5Plugin(options v1.ClientPluginOptions) (p Plugin, err error) { + opts := options.(*v1.Socks5PluginOptions) cfg := &gosocks5.Config{ Logger: log.New(io.Discard, "", log.LstdFlags), } - if user != "" || passwd != "" { - cfg.Credentials = gosocks5.StaticCredentials(map[string]string{user: passwd}) + if opts.Username != "" || opts.Password != "" { + cfg.Credentials = gosocks5.StaticCredentials(map[string]string{opts.Username: opts.Password}) } sp := &Socks5Plugin{} sp.Server, err = gosocks5.New(cfg) @@ -57,7 +55,7 @@ func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []b } func (sp *Socks5Plugin) Name() string { - return PluginSocks5 + return v1.PluginSocks5 } func (sp *Socks5Plugin) Close() error { diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index 45f731bbf6e..9140ffd6057 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -22,51 +22,41 @@ import ( "github.com/gorilla/mux" + v1 "github.com/fatedier/frp/pkg/config/v1" utilnet "github.com/fatedier/frp/pkg/util/net" ) -const PluginStaticFile = "static_file" - func init() { - Register(PluginStaticFile, NewStaticFilePlugin) + Register(v1.PluginStaticFile, NewStaticFilePlugin) } type StaticFilePlugin struct { - localPath string - stripPrefix string - httpUser string - httpPasswd string + opts *v1.StaticFilePluginOptions l *Listener s *http.Server } -func NewStaticFilePlugin(params map[string]string) (Plugin, error) { - localPath := params["plugin_local_path"] - stripPrefix := params["plugin_strip_prefix"] - httpUser := params["plugin_http_user"] - httpPasswd := params["plugin_http_passwd"] +func NewStaticFilePlugin(options v1.ClientPluginOptions) (Plugin, error) { + opts := options.(*v1.StaticFilePluginOptions) listener := NewProxyListener() sp := &StaticFilePlugin{ - localPath: localPath, - stripPrefix: stripPrefix, - httpUser: httpUser, - httpPasswd: httpPasswd, + opts: opts, l: listener, } var prefix string - if stripPrefix != "" { - prefix = "/" + stripPrefix + "/" + if opts.StripPrefix != "" { + prefix = "/" + opts.StripPrefix + "/" } else { prefix = "/" } router := mux.NewRouter() - router.Use(utilnet.NewHTTPAuthMiddleware(httpUser, httpPasswd).SetAuthFailDelay(200 * time.Millisecond).Middleware) - router.PathPrefix(prefix).Handler(utilnet.MakeHTTPGzipHandler(http.StripPrefix(prefix, http.FileServer(http.Dir(localPath))))).Methods("GET") + router.Use(utilnet.NewHTTPAuthMiddleware(opts.HTTPUser, opts.HTTPPassword).SetAuthFailDelay(200 * time.Millisecond).Middleware) + router.PathPrefix(prefix).Handler(utilnet.MakeHTTPGzipHandler(http.StripPrefix(prefix, http.FileServer(http.Dir(opts.LocalPath))))).Methods("GET") sp.s = &http.Server{ Handler: router, } @@ -82,7 +72,7 @@ func (sp *StaticFilePlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ } func (sp *StaticFilePlugin) Name() string { - return PluginStaticFile + return v1.PluginStaticFile } func (sp *StaticFilePlugin) Close() error { diff --git a/pkg/plugin/client/unix_domain_socket.go b/pkg/plugin/client/unix_domain_socket.go index 03371356033..266a529e3d1 100644 --- a/pkg/plugin/client/unix_domain_socket.go +++ b/pkg/plugin/client/unix_domain_socket.go @@ -15,31 +15,26 @@ package plugin import ( - "fmt" "io" "net" libio "github.com/fatedier/golib/io" -) -const PluginUnixDomainSocket = "unix_domain_socket" + v1 "github.com/fatedier/frp/pkg/config/v1" +) func init() { - Register(PluginUnixDomainSocket, NewUnixDomainSocketPlugin) + Register(v1.PluginUnixDomainSocket, NewUnixDomainSocketPlugin) } type UnixDomainSocketPlugin struct { UnixAddr *net.UnixAddr } -func NewUnixDomainSocketPlugin(params map[string]string) (p Plugin, err error) { - unixPath, ok := params["plugin_unix_path"] - if !ok { - err = fmt.Errorf("plugin_unix_path not found") - return - } +func NewUnixDomainSocketPlugin(options v1.ClientPluginOptions) (p Plugin, err error) { + opts := options.(*v1.UnixDomainSocketPluginOptions) - unixAddr, errRet := net.ResolveUnixAddr("unix", unixPath) + unixAddr, errRet := net.ResolveUnixAddr("unix", opts.UnixPath) if errRet != nil { err = errRet return @@ -66,7 +61,7 @@ func (uds *UnixDomainSocketPlugin) Handle(conn io.ReadWriteCloser, _ net.Conn, e } func (uds *UnixDomainSocketPlugin) Name() string { - return PluginUnixDomainSocket + return v1.PluginUnixDomainSocket } func (uds *UnixDomainSocketPlugin) Close() error { diff --git a/pkg/plugin/server/http.go b/pkg/plugin/server/http.go index 0f561204ce4..7108b7fb185 100644 --- a/pkg/plugin/server/http.go +++ b/pkg/plugin/server/http.go @@ -25,24 +25,18 @@ import ( "net/url" "reflect" "strings" -) -type HTTPPluginOptions struct { - Name string `ini:"name"` - Addr string `ini:"addr"` - Path string `ini:"path"` - Ops []string `ini:"ops"` - TLSVerify bool `ini:"tls_verify"` -} + v1 "github.com/fatedier/frp/pkg/config/v1" +) type httpPlugin struct { - options HTTPPluginOptions + options v1.HTTPPluginOptions url string client *http.Client } -func NewHTTPPluginOptions(options HTTPPluginOptions) Plugin { +func NewHTTPPluginOptions(options v1.HTTPPluginOptions) Plugin { url := fmt.Sprintf("%s%s", options.Addr, options.Path) var client *http.Client diff --git a/pkg/util/log/log.go b/pkg/util/log/log.go index 01a454d595d..a1391b3260a 100644 --- a/pkg/util/log/log.go +++ b/pkg/util/log/log.go @@ -29,15 +29,14 @@ func init() { Log.SetLogFuncCallDepth(Log.GetLogFuncCallDepth() + 1) } -func InitLog(logWay string, logFile string, logLevel string, maxdays int64, disableLogColor bool) { - SetLogFile(logWay, logFile, maxdays, disableLogColor) +func InitLog(logFile string, logLevel string, maxdays int64, disableLogColor bool) { + SetLogFile(logFile, maxdays, disableLogColor) SetLogLevel(logLevel) } // SetLogFile to configure log params -// logWay: file or console -func SetLogFile(logWay string, logFile string, maxdays int64, disableLogColor bool) { - if logWay == "console" { +func SetLogFile(logFile string, maxdays int64, disableLogColor bool) { + if logFile == "console" { params := "" if disableLogColor { params = `{"color": false}` diff --git a/pkg/util/util/http.go b/pkg/util/util/http.go index d89af08b76a..7d6200a25ec 100644 --- a/pkg/util/util/http.go +++ b/pkg/util/util/http.go @@ -1,4 +1,4 @@ -// Copyright 2020 guylewin, guy@lewin.co.il +// Copyright 2023 The frp Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/util/util/types.go b/pkg/util/util/types.go new file mode 100644 index 00000000000..784b8f193ad --- /dev/null +++ b/pkg/util/util/types.go @@ -0,0 +1,23 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package util + +func EmptyOr[T comparable](v T, fallback T) T { + var zero T + if zero == v { + return fallback + } + return v +} diff --git a/server/control.go b/server/control.go index abf17ab3b6b..5f6eb9fd47d 100644 --- a/server/control.go +++ b/server/control.go @@ -26,9 +26,11 @@ import ( "github.com/fatedier/golib/control/shutdown" "github.com/fatedier/golib/crypto" "github.com/fatedier/golib/errors" + "github.com/samber/lo" "github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" pkgerr "github.com/fatedier/frp/pkg/errors" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" @@ -151,7 +153,7 @@ type Control struct { mu sync.RWMutex // Server configuration information - serverCfg config.ServerCommonConf + serverCfg *v1.ServerConfig xl *xlog.Logger ctx context.Context @@ -165,11 +167,11 @@ func NewControl( authVerifier auth.Verifier, ctlConn net.Conn, loginMsg *msg.Login, - serverCfg config.ServerCommonConf, + serverCfg *v1.ServerConfig, ) *Control { poolCount := loginMsg.PoolCount - if poolCount > int(serverCfg.MaxPoolCount) { - poolCount = int(serverCfg.MaxPoolCount) + if poolCount > int(serverCfg.Transport.MaxPoolCount) { + poolCount = int(serverCfg.Transport.MaxPoolCount) } ctl := &Control{ rc: rc, @@ -320,7 +322,7 @@ func (ctl *Control) writer() { defer ctl.allShutdown.Start() defer ctl.writerShutdown.Done() - encWriter, err := crypto.NewWriter(ctl.conn, []byte(ctl.serverCfg.Token)) + encWriter, err := crypto.NewWriter(ctl.conn, []byte(ctl.serverCfg.Auth.Token)) if err != nil { xl.Error("crypto new writer error: %v", err) ctl.allShutdown.Start() @@ -352,7 +354,7 @@ func (ctl *Control) reader() { defer ctl.allShutdown.Start() defer ctl.readerShutdown.Done() - encReader := crypto.NewReader(ctl.conn, []byte(ctl.serverCfg.Token)) + encReader := crypto.NewReader(ctl.conn, []byte(ctl.serverCfg.Auth.Token)) for { m, err := msg.ReadMsg(encReader) if err != nil { @@ -400,7 +402,7 @@ func (ctl *Control) stoper() { for _, pxy := range ctl.proxies { pxy.Close() ctl.pxyManager.Del(pxy.GetName()) - metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConf().GetBaseConfig().ProxyType) + metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConfigurer().GetBaseConfig().Type) notifyContent := &plugin.CloseProxyContent{ User: plugin.UserInfo{ @@ -450,7 +452,7 @@ func (ctl *Control) manager() { var heartbeatCh <-chan time.Time // Don't need application heartbeat if TCPMux is enabled, // yamux will do same thing. - if !ctl.serverCfg.TCPMux && ctl.serverCfg.HeartbeatTimeout > 0 { + if !lo.FromPtr(ctl.serverCfg.Transport.TCPMux) && ctl.serverCfg.Transport.HeartbeatTimeout > 0 { heartbeat := time.NewTicker(time.Second) defer heartbeat.Stop() heartbeatCh = heartbeat.C @@ -459,7 +461,7 @@ func (ctl *Control) manager() { for { select { case <-heartbeatCh: - if time.Since(ctl.lastPing) > time.Duration(ctl.serverCfg.HeartbeatTimeout)*time.Second { + if time.Since(ctl.lastPing) > time.Duration(ctl.serverCfg.Transport.HeartbeatTimeout)*time.Second { xl.Warn("heartbeat timeout") return } @@ -491,7 +493,8 @@ func (ctl *Control) manager() { } if err != nil { xl.Warn("new proxy [%s] type [%s] error: %v", m.ProxyName, m.ProxyType, err) - resp.Error = util.GenerateResponseErrorString(fmt.Sprintf("new proxy [%s] error", m.ProxyName), err, ctl.serverCfg.DetailedErrorsToClient) + resp.Error = util.GenerateResponseErrorString(fmt.Sprintf("new proxy [%s] error", m.ProxyName), + err, lo.FromPtr(ctl.serverCfg.DetailedErrorsToClient)) } else { resp.RemoteAddr = remoteAddr xl.Info("new proxy [%s] type [%s] success", m.ProxyName, m.ProxyType) @@ -524,7 +527,7 @@ func (ctl *Control) manager() { if err != nil { xl.Warn("received invalid ping: %v", err) ctl.sendCh <- &msg.Pong{ - Error: util.GenerateResponseErrorString("invalid ping", err, ctl.serverCfg.DetailedErrorsToClient), + Error: util.GenerateResponseErrorString("invalid ping", err, lo.FromPtr(ctl.serverCfg.DetailedErrorsToClient)), } return } @@ -549,9 +552,9 @@ func (ctl *Control) HandleNatHoleReport(m *msg.NatHoleReport) { } func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err error) { - var pxyConf config.ProxyConf + var pxyConf v1.ProxyConfigurer // Load configures from NewProxy message and validate. - pxyConf, err = config.NewProxyConfFromMsg(pxyMsg, ctl.serverCfg) + pxyConf, err = config.NewProxyConfigurerFromMsg(pxyMsg, ctl.serverCfg) if err != nil { return } @@ -632,7 +635,7 @@ func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error) { delete(ctl.proxies, closeMsg.ProxyName) ctl.mu.Unlock() - metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConf().GetBaseConfig().ProxyType) + metrics.Server.CloseProxy(pxy.GetName(), pxy.GetConfigurer().GetBaseConfig().Type) notifyContent := &plugin.CloseProxyContent{ User: plugin.UserInfo{ diff --git a/server/dashboard.go b/server/dashboard.go index a5c46ba3133..1f290cf9a5a 100644 --- a/server/dashboard.go +++ b/server/dashboard.go @@ -39,7 +39,7 @@ func (svr *Service) RunDashboardServer(address string) (err error) { router.HandleFunc("/healthz", svr.Healthz) // debug - if svr.cfg.PprofEnable { + if svr.cfg.WebServer.PprofEnable { router.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline) router.HandleFunc("/debug/pprof/profile", pprof.Profile) router.HandleFunc("/debug/pprof/symbol", pprof.Symbol) @@ -49,7 +49,7 @@ func (svr *Service) RunDashboardServer(address string) (err error) { subRouter := router.NewRoute().Subrouter() - user, passwd := svr.cfg.DashboardUser, svr.cfg.DashboardPwd + user, passwd := svr.cfg.WebServer.User, svr.cfg.WebServer.Password subRouter.Use(utilnet.NewHTTPAuthMiddleware(user, passwd).SetAuthFailDelay(200 * time.Millisecond).Middleware) // metrics @@ -82,8 +82,8 @@ func (svr *Service) RunDashboardServer(address string) (err error) { return err } - if svr.cfg.DashboardTLSMode { - cert, err := tls.LoadX509KeyPair(svr.cfg.DashboardTLSCertFile, svr.cfg.DashboardTLSKeyFile) + if svr.cfg.WebServer.TLS != nil { + cert, err := tls.LoadX509KeyPair(svr.cfg.WebServer.TLS.CertFile, svr.cfg.WebServer.TLS.KeyFile) if err != nil { return err } diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 198a111aa61..e54ebe7732d 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -20,7 +20,8 @@ import ( "github.com/gorilla/mux" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/metrics/mem" "github.com/fatedier/frp/pkg/util/log" @@ -81,11 +82,11 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { KCPBindPort: svr.cfg.KCPBindPort, QUICBindPort: svr.cfg.QUICBindPort, SubdomainHost: svr.cfg.SubDomainHost, - MaxPoolCount: svr.cfg.MaxPoolCount, + MaxPoolCount: svr.cfg.Transport.MaxPoolCount, MaxPortsPerClient: svr.cfg.MaxPortsPerClient, - HeartBeatTimeout: svr.cfg.HeartbeatTimeout, - AllowPortsStr: svr.cfg.AllowPortsStr, - TLSOnly: svr.cfg.TLSOnly, + HeartBeatTimeout: svr.cfg.Transport.HeartbeatTimeout, + AllowPortsStr: types.PortsRangeSlice(svr.cfg.AllowPorts).String(), + TLSOnly: svr.cfg.TLS.Force, TotalTrafficIn: serverStats.TotalTrafficIn, TotalTrafficOut: serverStats.TotalTrafficOut, @@ -99,7 +100,7 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { } type BaseOutConf struct { - config.BaseProxyConf + v1.ProxyBaseConfig } type TCPOutConf struct { @@ -109,7 +110,7 @@ type TCPOutConf struct { type TCPMuxOutConf struct { BaseOutConf - config.DomainConf + v1.DomainConfig Multiplexer string `json:"multiplexer"` } @@ -120,14 +121,14 @@ type UDPOutConf struct { type HTTPOutConf struct { BaseOutConf - config.DomainConf + v1.DomainConfig Locations []string `json:"locations"` HostHeaderRewrite string `json:"host_header_rewrite"` } type HTTPSOutConf struct { BaseOutConf - config.DomainConf + v1.DomainConfig } type STCPOutConf struct { @@ -204,7 +205,7 @@ func (svr *Service) getProxyStatsByType(proxyType string) (proxyInfos []*ProxySt for _, ps := range proxyStats { proxyInfo := &ProxyStatsInfo{} if pxy, ok := svr.pxyManager.GetByName(ps.Name); ok { - content, err := json.Marshal(pxy.GetConf()) + content, err := json.Marshal(pxy.GetConfigurer()) if err != nil { log.Warn("marshal proxy [%s] conf info error: %v", ps.Name, err) continue @@ -278,7 +279,7 @@ func (svr *Service) getProxyStatsByTypeAndName(proxyType string, proxyName strin msg = "no proxy info found" } else { if pxy, ok := svr.pxyManager.GetByName(proxyName); ok { - content, err := json.Marshal(pxy.GetConf()) + content, err := json.Marshal(pxy.GetConfigurer()) if err != nil { log.Warn("marshal proxy [%s] conf info error: %v", ps.Name, err) code = 400 diff --git a/server/ports/ports.go b/server/ports/ports.go index f852f843596..5a73fbc5b3e 100644 --- a/server/ports/ports.go +++ b/server/ports/ports.go @@ -6,6 +6,8 @@ import ( "strconv" "sync" "time" + + "github.com/fatedier/frp/pkg/config/types" ) const ( @@ -39,7 +41,7 @@ type Manager struct { mu sync.Mutex } -func NewManager(netType string, bindAddr string, allowPorts map[int]struct{}) *Manager { +func NewManager(netType string, bindAddr string, allowPorts []types.PortsRange) *Manager { pm := &Manager{ reservedPorts: make(map[string]*PortCtx), usedPorts: make(map[int]*PortCtx), @@ -48,8 +50,14 @@ func NewManager(netType string, bindAddr string, allowPorts map[int]struct{}) *M netType: netType, } if len(allowPorts) > 0 { - for port := range allowPorts { - pm.freePorts[port] = struct{}{} + for _, pair := range allowPorts { + if pair.Single > 0 { + pm.freePorts[pair.Single] = struct{}{} + } else { + for i := pair.Start; i <= pair.End; i++ { + pm.freePorts[i] = struct{}{} + } + } } } else { for i := MinPort; i <= MaxPort; i++ { diff --git a/server/proxy/http.go b/server/proxy/http.go index 432dbc101b3..cafaf8f3d9a 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -22,7 +22,7 @@ import ( libio "github.com/fatedier/golib/io" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/util/limit" utilnet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" @@ -31,18 +31,18 @@ import ( ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.HTTPProxyConf{}), NewHTTPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.HTTPProxyConfig{}), NewHTTPProxy) } type HTTPProxy struct { *BaseProxy - cfg *config.HTTPProxyConf + cfg *v1.HTTPProxyConfig closeFuncs []func() } -func NewHTTPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.HTTPProxyConf) +func NewHTTPProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.HTTPProxyConfig) if !ok { return nil } @@ -57,9 +57,9 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { routeConfig := vhost.RouteConfig{ RewriteHost: pxy.cfg.HostHeaderRewrite, RouteByHTTPUser: pxy.cfg.RouteByHTTPUser, - Headers: pxy.cfg.Headers, + Headers: pxy.cfg.RequestHeaders.Set, Username: pxy.cfg.HTTPUser, - Password: pxy.cfg.HTTPPwd, + Password: pxy.cfg.HTTPPassword, CreateConnFn: pxy.GetRealConn, } @@ -87,14 +87,14 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { tmpRouteConfig := routeConfig // handle group - if pxy.cfg.Group != "" { - err = pxy.rc.HTTPGroupCtl.Register(pxy.name, pxy.cfg.Group, pxy.cfg.GroupKey, routeConfig) + if pxy.cfg.LoadBalancer.Group != "" { + err = pxy.rc.HTTPGroupCtl.Register(pxy.name, pxy.cfg.LoadBalancer.Group, pxy.cfg.LoadBalancer.GroupKey, routeConfig) if err != nil { return } pxy.closeFuncs = append(pxy.closeFuncs, func() { - pxy.rc.HTTPGroupCtl.UnRegister(pxy.name, pxy.cfg.Group, tmpRouteConfig) + pxy.rc.HTTPGroupCtl.UnRegister(pxy.name, pxy.cfg.LoadBalancer.Group, tmpRouteConfig) }) } else { // no group @@ -108,7 +108,7 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { } addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPPort)) xl.Info("http proxy listen for host [%s] location [%s] group [%s], routeByHTTPUser [%s]", - routeConfig.Domain, routeConfig.Location, pxy.cfg.Group, pxy.cfg.RouteByHTTPUser) + routeConfig.Domain, routeConfig.Location, pxy.cfg.LoadBalancer.Group, pxy.cfg.RouteByHTTPUser) } } @@ -120,14 +120,14 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { tmpRouteConfig := routeConfig // handle group - if pxy.cfg.Group != "" { - err = pxy.rc.HTTPGroupCtl.Register(pxy.name, pxy.cfg.Group, pxy.cfg.GroupKey, routeConfig) + if pxy.cfg.LoadBalancer.Group != "" { + err = pxy.rc.HTTPGroupCtl.Register(pxy.name, pxy.cfg.LoadBalancer.Group, pxy.cfg.LoadBalancer.GroupKey, routeConfig) if err != nil { return } pxy.closeFuncs = append(pxy.closeFuncs, func() { - pxy.rc.HTTPGroupCtl.UnRegister(pxy.name, pxy.cfg.Group, tmpRouteConfig) + pxy.rc.HTTPGroupCtl.UnRegister(pxy.name, pxy.cfg.LoadBalancer.Group, tmpRouteConfig) }) } else { err = pxy.rc.HTTPReverseProxy.Register(routeConfig) @@ -141,17 +141,13 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { addrs = append(addrs, util.CanonicalAddr(tmpRouteConfig.Domain, pxy.serverCfg.VhostHTTPPort)) xl.Info("http proxy listen for host [%s] location [%s] group [%s], routeByHTTPUser [%s]", - routeConfig.Domain, routeConfig.Location, pxy.cfg.Group, pxy.cfg.RouteByHTTPUser) + routeConfig.Domain, routeConfig.Location, pxy.cfg.LoadBalancer.Group, pxy.cfg.RouteByHTTPUser) } } remoteAddr = strings.Join(addrs, ",") return } -func (pxy *HTTPProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err error) { xl := pxy.xl rAddr, errRet := net.ResolveTCPAddr("tcp", remoteAddr) @@ -167,14 +163,14 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err } var rwc io.ReadWriteCloser = tmpConn - if pxy.cfg.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Token)) + if pxy.cfg.Transport.UseEncryption { + rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Auth.Token)) if err != nil { xl.Error("create encryption stream error: %v", err) return } } - if pxy.cfg.UseCompression { + if pxy.cfg.Transport.UseCompression { rwc = libio.WithCompression(rwc) } @@ -186,13 +182,13 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err workConn = utilnet.WrapReadWriteCloserToConn(rwc, tmpConn) workConn = utilnet.WrapStatsConn(workConn, pxy.updateStatsAfterClosedConn) - metrics.Server.OpenConnection(pxy.GetName(), pxy.GetConf().GetBaseConfig().ProxyType) + metrics.Server.OpenConnection(pxy.GetName(), pxy.GetConfigurer().GetBaseConfig().Type) return } func (pxy *HTTPProxy) updateStatsAfterClosedConn(totalRead, totalWrite int64) { name := pxy.GetName() - proxyType := pxy.GetConf().GetBaseConfig().ProxyType + proxyType := pxy.GetConfigurer().GetBaseConfig().Type metrics.Server.CloseConnection(name, proxyType) metrics.Server.AddTrafficIn(name, proxyType, totalWrite) metrics.Server.AddTrafficOut(name, proxyType, totalRead) diff --git a/server/proxy/https.go b/server/proxy/https.go index 74f0e7ca26e..dc9b77ebe00 100644 --- a/server/proxy/https.go +++ b/server/proxy/https.go @@ -18,22 +18,22 @@ import ( "reflect" "strings" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.HTTPSProxyConf{}), NewHTTPSProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.HTTPSProxyConfig{}), NewHTTPSProxy) } type HTTPSProxy struct { *BaseProxy - cfg *config.HTTPSProxyConf + cfg *v1.HTTPSProxyConfig } -func NewHTTPSProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.HTTPSProxyConf) +func NewHTTPSProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.HTTPSProxyConfig) if !ok { return nil } @@ -86,10 +86,6 @@ func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { return } -func (pxy *HTTPSProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *HTTPSProxy) Close() { pxy.BaseProxy.Close() } diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index d1e6625523a..0cd7a6e5371 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -27,7 +27,8 @@ import ( libio "github.com/fatedier/golib/io" "golang.org/x/time/rate" - "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/pkg/util/limit" @@ -37,9 +38,9 @@ import ( "github.com/fatedier/frp/server/metrics" ) -var proxyFactoryRegistry = map[reflect.Type]func(*BaseProxy, config.ProxyConf) Proxy{} +var proxyFactoryRegistry = map[reflect.Type]func(*BaseProxy) Proxy{} -func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*BaseProxy, config.ProxyConf) Proxy) { +func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*BaseProxy) Proxy) { proxyFactoryRegistry[proxyConfType] = factory } @@ -49,7 +50,7 @@ type Proxy interface { Context() context.Context Run() (remoteAddr string, err error) GetName() string - GetConf() config.ProxyConf + GetConfigurer() v1.ProxyConfigurer GetWorkConnFromPool(src, dst net.Addr) (workConn net.Conn, err error) GetUsedPortsNum() int GetResourceController() *controller.ResourceController @@ -66,11 +67,11 @@ type BaseProxy struct { usedPortsNum int poolCount int getWorkConnFn GetWorkConnFn - serverCfg config.ServerCommonConf + serverCfg *v1.ServerConfig limiter *rate.Limiter userInfo plugin.UserInfo loginMsg *msg.Login - pxyConf config.ProxyConf + configurer v1.ProxyConfigurer mu sync.RWMutex xl *xlog.Logger @@ -105,6 +106,10 @@ func (pxy *BaseProxy) GetLimiter() *rate.Limiter { return pxy.limiter } +func (pxy *BaseProxy) GetConfigurer() v1.ProxyConfigurer { + return pxy.configurer +} + func (pxy *BaseProxy) Close() { xl := xlog.FromContextSafe(pxy.ctx) xl.Info("proxy closing") @@ -209,13 +214,13 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { defer userConn.Close() serverCfg := pxy.serverCfg - cfg := pxy.pxyConf.GetBaseConfig() + cfg := pxy.configurer.GetBaseConfig() // server plugin hook rc := pxy.GetResourceController() content := &plugin.NewUserConnContent{ User: pxy.GetUserInfo(), ProxyName: pxy.GetName(), - ProxyType: cfg.ProxyType, + ProxyType: cfg.Type, RemoteAddr: userConn.RemoteAddr().String(), } _, err := rc.PluginManager.NewUserConn(content) @@ -232,15 +237,16 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { defer workConn.Close() var local io.ReadWriteCloser = workConn - xl.Trace("handler user tcp connection, use_encryption: %t, use_compression: %t", cfg.UseEncryption, cfg.UseCompression) - if cfg.UseEncryption { - local, err = libio.WithEncryption(local, []byte(serverCfg.Token)) + xl.Trace("handler user tcp connection, use_encryption: %t, use_compression: %t", + cfg.Transport.UseEncryption, cfg.Transport.UseCompression) + if cfg.Transport.UseEncryption { + local, err = libio.WithEncryption(local, []byte(serverCfg.Auth.Token)) if err != nil { xl.Error("create encryption stream error: %v", err) return } } - if cfg.UseCompression { + if cfg.Transport.UseCompression { var recycleFn func() local, recycleFn = libio.WithCompressionFromPool(local) defer recycleFn() @@ -256,7 +262,7 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { workConn.RemoteAddr().String(), userConn.LocalAddr().String(), userConn.RemoteAddr().String()) name := pxy.GetName() - proxyType := cfg.ProxyType + proxyType := cfg.Type metrics.Server.OpenConnection(name, proxyType) inCount, outCount, _ := libio.Join(local, userConn) metrics.Server.CloseConnection(name, proxyType) @@ -266,18 +272,18 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { } func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.ResourceController, poolCount int, - getWorkConnFn GetWorkConnFn, pxyConf config.ProxyConf, serverCfg config.ServerCommonConf, loginMsg *msg.Login, + getWorkConnFn GetWorkConnFn, configurer v1.ProxyConfigurer, serverCfg *v1.ServerConfig, loginMsg *msg.Login, ) (pxy Proxy, err error) { - xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(pxyConf.GetBaseConfig().ProxyName) + xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(configurer.GetBaseConfig().Name) var limiter *rate.Limiter - limitBytes := pxyConf.GetBaseConfig().BandwidthLimit.Bytes() - if limitBytes > 0 && pxyConf.GetBaseConfig().BandwidthLimitMode == config.BandwidthLimitModeServer { + limitBytes := configurer.GetBaseConfig().Transport.BandwidthLimit.Bytes() + if limitBytes > 0 && configurer.GetBaseConfig().Transport.BandwidthLimitMode == types.BandwidthLimitModeServer { limiter = rate.NewLimiter(rate.Limit(float64(limitBytes)), int(limitBytes)) } basePxy := BaseProxy{ - name: pxyConf.GetBaseConfig().ProxyName, + name: configurer.GetBaseConfig().Name, rc: rc, listeners: make([]net.Listener, 0), poolCount: poolCount, @@ -288,14 +294,14 @@ func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.Reso ctx: xlog.NewContext(ctx, xl), userInfo: userInfo, loginMsg: loginMsg, - pxyConf: pxyConf, + configurer: configurer, } - factory := proxyFactoryRegistry[reflect.TypeOf(pxyConf)] + factory := proxyFactoryRegistry[reflect.TypeOf(configurer)] if factory == nil { return pxy, fmt.Errorf("proxy type not support") } - pxy = factory(&basePxy, pxyConf) + pxy = factory(&basePxy) if pxy == nil { return nil, fmt.Errorf("proxy not created") } diff --git a/server/proxy/stcp.go b/server/proxy/stcp.go index 7c1511ab288..4f08a7c12c3 100644 --- a/server/proxy/stcp.go +++ b/server/proxy/stcp.go @@ -17,20 +17,20 @@ package proxy import ( "reflect" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.STCPProxyConf{}), NewSTCPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.STCPProxyConfig{}), NewSTCPProxy) } type STCPProxy struct { *BaseProxy - cfg *config.STCPProxyConf + cfg *v1.STCPProxyConfig } -func NewSTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.STCPProxyConf) +func NewSTCPProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.STCPProxyConfig) if !ok { return nil } @@ -47,7 +47,7 @@ func (pxy *STCPProxy) Run() (remoteAddr string, err error) { if len(allowUsers) == 0 { allowUsers = []string{pxy.GetUserInfo().User} } - listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Sk, allowUsers) + listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Secretkey, allowUsers) if errRet != nil { err = errRet return @@ -59,10 +59,6 @@ func (pxy *STCPProxy) Run() (remoteAddr string, err error) { return } -func (pxy *STCPProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *STCPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.VisitorManager.CloseListener(pxy.GetName()) diff --git a/server/proxy/sudp.go b/server/proxy/sudp.go index 492b09542bd..a6d7c798f1b 100644 --- a/server/proxy/sudp.go +++ b/server/proxy/sudp.go @@ -17,20 +17,20 @@ package proxy import ( "reflect" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.SUDPProxyConf{}), NewSUDPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.SUDPProxyConfig{}), NewSUDPProxy) } type SUDPProxy struct { *BaseProxy - cfg *config.SUDPProxyConf + cfg *v1.SUDPProxyConfig } -func NewSUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.SUDPProxyConf) +func NewSUDPProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.SUDPProxyConfig) if !ok { return nil } @@ -47,7 +47,7 @@ func (pxy *SUDPProxy) Run() (remoteAddr string, err error) { if len(allowUsers) == 0 { allowUsers = []string{pxy.GetUserInfo().User} } - listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Sk, allowUsers) + listener, errRet := pxy.rc.VisitorManager.Listen(pxy.GetName(), pxy.cfg.Secretkey, allowUsers) if errRet != nil { err = errRet return @@ -59,10 +59,6 @@ func (pxy *SUDPProxy) Run() (remoteAddr string, err error) { return } -func (pxy *SUDPProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *SUDPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.VisitorManager.CloseListener(pxy.GetName()) diff --git a/server/proxy/tcp.go b/server/proxy/tcp.go index 5bb5c1abfaf..4196ad4ae3a 100644 --- a/server/proxy/tcp.go +++ b/server/proxy/tcp.go @@ -20,22 +20,22 @@ import ( "reflect" "strconv" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.TCPProxyConf{}), NewTCPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.TCPProxyConfig{}), NewTCPProxy) } type TCPProxy struct { *BaseProxy - cfg *config.TCPProxyConf + cfg *v1.TCPProxyConfig realBindPort int } -func NewTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.TCPProxyConf) +func NewTCPProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.TCPProxyConfig) if !ok { return nil } @@ -48,8 +48,9 @@ func NewTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { func (pxy *TCPProxy) Run() (remoteAddr string, err error) { xl := pxy.xl - if pxy.cfg.Group != "" { - l, realBindPort, errRet := pxy.rc.TCPGroupCtl.Listen(pxy.name, pxy.cfg.Group, pxy.cfg.GroupKey, pxy.serverCfg.ProxyBindAddr, pxy.cfg.RemotePort) + if pxy.cfg.LoadBalancer.Group != "" { + l, realBindPort, errRet := pxy.rc.TCPGroupCtl.Listen(pxy.name, pxy.cfg.LoadBalancer.Group, pxy.cfg.LoadBalancer.GroupKey, + pxy.serverCfg.ProxyBindAddr, pxy.cfg.RemotePort) if errRet != nil { err = errRet return @@ -61,7 +62,7 @@ func (pxy *TCPProxy) Run() (remoteAddr string, err error) { }() pxy.realBindPort = realBindPort pxy.listeners = append(pxy.listeners, l) - xl.Info("tcp proxy listen port [%d] in group [%s]", pxy.cfg.RemotePort, pxy.cfg.Group) + xl.Info("tcp proxy listen port [%d] in group [%s]", pxy.cfg.RemotePort, pxy.cfg.LoadBalancer.Group) } else { pxy.realBindPort, err = pxy.rc.TCPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort) if err != nil { @@ -87,13 +88,9 @@ func (pxy *TCPProxy) Run() (remoteAddr string, err error) { return } -func (pxy *TCPProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *TCPProxy) Close() { pxy.BaseProxy.Close() - if pxy.cfg.Group == "" { + if pxy.cfg.LoadBalancer.Group == "" { pxy.rc.TCPPortManager.Release(pxy.realBindPort) } } diff --git a/server/proxy/tcpmux.go b/server/proxy/tcpmux.go index 6d25a84ecb2..15824223f26 100644 --- a/server/proxy/tcpmux.go +++ b/server/proxy/tcpmux.go @@ -20,23 +20,23 @@ import ( "reflect" "strings" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.TCPMuxProxyConf{}), NewTCPMuxProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.TCPMuxProxyConfig{}), NewTCPMuxProxy) } type TCPMuxProxy struct { *BaseProxy - cfg *config.TCPMuxProxyConf + cfg *v1.TCPMuxProxyConfig } -func NewTCPMuxProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.TCPMuxProxyConf) +func NewTCPMuxProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.TCPMuxProxyConfig) if !ok { return nil } @@ -57,8 +57,9 @@ func (pxy *TCPMuxProxy) httpConnectListen( Username: httpUser, Password: httpPwd, } - if pxy.cfg.Group != "" { - l, err = pxy.rc.TCPMuxGroupCtl.Listen(pxy.ctx, pxy.cfg.Multiplexer, pxy.cfg.Group, pxy.cfg.GroupKey, *routeConfig) + if pxy.cfg.LoadBalancer.Group != "" { + l, err = pxy.rc.TCPMuxGroupCtl.Listen(pxy.ctx, pxy.cfg.Multiplexer, + pxy.cfg.LoadBalancer.Group, pxy.cfg.LoadBalancer.GroupKey, *routeConfig) } else { l, err = pxy.rc.TCPMuxHTTPConnectMuxer.Listen(pxy.ctx, routeConfig) } @@ -66,7 +67,7 @@ func (pxy *TCPMuxProxy) httpConnectListen( return nil, err } pxy.xl.Info("tcpmux httpconnect multiplexer listens for host [%s], group [%s] routeByHTTPUser [%s]", - domain, pxy.cfg.Group, pxy.cfg.RouteByHTTPUser) + domain, pxy.cfg.LoadBalancer.Group, pxy.cfg.RouteByHTTPUser) pxy.listeners = append(pxy.listeners, l) return append(addrs, util.CanonicalAddr(domain, pxy.serverCfg.TCPMuxHTTPConnectPort)), nil } @@ -78,7 +79,7 @@ func (pxy *TCPMuxProxy) httpConnectRun() (remoteAddr string, err error) { continue } - addrs, err = pxy.httpConnectListen(domain, pxy.cfg.RouteByHTTPUser, pxy.cfg.HTTPUser, pxy.cfg.HTTPPwd, addrs) + addrs, err = pxy.httpConnectListen(domain, pxy.cfg.RouteByHTTPUser, pxy.cfg.HTTPUser, pxy.cfg.HTTPPassword, addrs) if err != nil { return "", err } @@ -86,7 +87,7 @@ func (pxy *TCPMuxProxy) httpConnectRun() (remoteAddr string, err error) { if pxy.cfg.SubDomain != "" { addrs, err = pxy.httpConnectListen(pxy.cfg.SubDomain+"."+pxy.serverCfg.SubDomainHost, - pxy.cfg.RouteByHTTPUser, pxy.cfg.HTTPUser, pxy.cfg.HTTPPwd, addrs) + pxy.cfg.RouteByHTTPUser, pxy.cfg.HTTPUser, pxy.cfg.HTTPPassword, addrs) if err != nil { return "", err } @@ -111,10 +112,6 @@ func (pxy *TCPMuxProxy) Run() (remoteAddr string, err error) { return remoteAddr, err } -func (pxy *TCPMuxProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *TCPMuxProxy) Close() { pxy.BaseProxy.Close() } diff --git a/server/proxy/udp.go b/server/proxy/udp.go index 20108bf3933..772c3f0d1b9 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -26,7 +26,7 @@ import ( "github.com/fatedier/golib/errors" libio "github.com/fatedier/golib/io" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/proto/udp" "github.com/fatedier/frp/pkg/util/limit" @@ -35,12 +35,12 @@ import ( ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.UDPProxyConf{}), NewUDPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.UDPProxyConfig{}), NewUDPProxy) } type UDPProxy struct { *BaseProxy - cfg *config.UDPProxyConf + cfg *v1.UDPProxyConfig realBindPort int @@ -63,8 +63,8 @@ type UDPProxy struct { isClosed bool } -func NewUDPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.UDPProxyConf) +func NewUDPProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.UDPProxyConfig) if !ok { return nil } @@ -140,7 +140,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { pxy.readCh <- m metrics.Server.AddTrafficOut( pxy.GetName(), - pxy.GetConf().GetBaseConfig().ProxyType, + pxy.GetConfigurer().GetBaseConfig().Type, int64(len(m.Content)), ) }); errRet != nil { @@ -170,7 +170,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { xl.Trace("send message to udp workConn: %s", udpMsg.Content) metrics.Server.AddTrafficIn( pxy.GetName(), - pxy.GetConf().GetBaseConfig().ProxyType, + pxy.GetConfigurer().GetBaseConfig().Type, int64(len(udpMsg.Content)), ) continue @@ -204,15 +204,15 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { } var rwc io.ReadWriteCloser = workConn - if pxy.cfg.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Token)) + if pxy.cfg.Transport.UseEncryption { + rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Auth.Token)) if err != nil { xl.Error("create encryption stream error: %v", err) workConn.Close() continue } } - if pxy.cfg.UseCompression { + if pxy.cfg.Transport.UseCompression { rwc = libio.WithCompression(rwc) } @@ -245,10 +245,6 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { return remoteAddr, nil } -func (pxy *UDPProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *UDPProxy) Close() { pxy.mu.Lock() defer pxy.mu.Unlock() diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index acf127d7f26..fe60c630c57 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -20,23 +20,23 @@ import ( "github.com/fatedier/golib/errors" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" ) func init() { - RegisterProxyFactory(reflect.TypeOf(&config.XTCPProxyConf{}), NewXTCPProxy) + RegisterProxyFactory(reflect.TypeOf(&v1.XTCPProxyConfig{}), NewXTCPProxy) } type XTCPProxy struct { *BaseProxy - cfg *config.XTCPProxyConf + cfg *v1.XTCPProxyConfig closeCh chan struct{} } -func NewXTCPProxy(baseProxy *BaseProxy, cfg config.ProxyConf) Proxy { - unwrapped, ok := cfg.(*config.XTCPProxyConf) +func NewXTCPProxy(baseProxy *BaseProxy) Proxy { + unwrapped, ok := baseProxy.GetConfigurer().(*v1.XTCPProxyConfig) if !ok { return nil } @@ -58,7 +58,7 @@ func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { if len(allowUsers) == 0 { allowUsers = []string{pxy.GetUserInfo().User} } - sidCh, err := pxy.rc.NatHoleController.ListenClient(pxy.GetName(), pxy.cfg.Sk, allowUsers) + sidCh, err := pxy.rc.NatHoleController.ListenClient(pxy.GetName(), pxy.cfg.Secretkey, allowUsers) if err != nil { return "", err } @@ -86,10 +86,6 @@ func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { return } -func (pxy *XTCPProxy) GetConf() config.ProxyConf { - return pxy.cfg -} - func (pxy *XTCPProxy) Close() { pxy.BaseProxy.Close() pxy.rc.NatHoleController.CloseClient(pxy.GetName()) diff --git a/server/service.go b/server/service.go index 002468814d1..c81ea4d2a5b 100644 --- a/server/service.go +++ b/server/service.go @@ -22,17 +22,17 @@ import ( "io" "net" "net/http" - "sort" "strconv" "time" "github.com/fatedier/golib/net/mux" fmux "github.com/hashicorp/yamux" quic "github.com/quic-go/quic-go" + "github.com/samber/lo" "github.com/fatedier/frp/assets" "github.com/fatedier/frp/pkg/auth" - "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" modelmetrics "github.com/fatedier/frp/pkg/metrics" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/nathole" @@ -98,7 +98,7 @@ type Service struct { tlsConfig *tls.Config - cfg config.ServerCommonConf + cfg *v1.ServerConfig // service context ctx context.Context @@ -106,11 +106,11 @@ type Service struct { cancel context.CancelFunc } -func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { +func NewService(cfg *v1.ServerConfig) (svr *Service, err error) { tlsConfig, err := transport.NewServerTLSConfig( - cfg.TLSCertFile, - cfg.TLSKeyFile, - cfg.TLSTrustedCaFile) + cfg.TLS.CertFile, + cfg.TLS.KeyFile, + cfg.TLS.TrustedCaFile) if err != nil { return } @@ -125,7 +125,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { UDPPortManager: ports.NewManager("udp", cfg.ProxyBindAddr, cfg.AllowPorts), }, httpVhostRouter: vhost.NewRouters(), - authVerifier: auth.NewAuthVerifier(cfg.ServerConfig), + authVerifier: auth.NewAuthVerifier(cfg.Auth), tlsConfig: tlsConfig, cfg: cfg, ctx: context.Background(), @@ -150,15 +150,9 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { } // Init all plugins - pluginNames := make([]string, 0, len(cfg.HTTPPlugins)) - for n := range cfg.HTTPPlugins { - pluginNames = append(pluginNames, n) - } - sort.Strings(pluginNames) - - for _, name := range pluginNames { - svr.pluginManager.Register(plugin.NewHTTPPluginOptions(cfg.HTTPPlugins[name])) - log.Info("plugin [%s] has been registered", name) + for _, p := range cfg.HTTPPlugins { + svr.pluginManager.Register(plugin.NewHTTPPluginOptions(p)) + log.Info("plugin [%s] has been registered", p.Name) } svr.rc.PluginManager = svr.pluginManager @@ -196,7 +190,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { } svr.muxer = mux.NewMux(ln) - svr.muxer.SetKeepAlive(time.Duration(cfg.TCPKeepAlive) * time.Second) + svr.muxer.SetKeepAlive(time.Duration(cfg.Transport.TCPKeepAlive) * time.Second) go func() { _ = svr.muxer.Serve() }() @@ -221,9 +215,9 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { quicTLSCfg := tlsConfig.Clone() quicTLSCfg.NextProtos = []string{"frp"} svr.quicListener, err = quic.ListenAddr(address, quicTLSCfg, &quic.Config{ - MaxIdleTimeout: time.Duration(cfg.QUICMaxIdleTimeout) * time.Second, - MaxIncomingStreams: int64(cfg.QUICMaxIncomingStreams), - KeepAlivePeriod: time.Duration(cfg.QUICKeepalivePeriod) * time.Second, + MaxIdleTimeout: time.Duration(cfg.Transport.QUIC.MaxIdleTimeout) * time.Second, + MaxIncomingStreams: int64(cfg.Transport.QUIC.MaxIncomingStreams), + KeepAlivePeriod: time.Duration(cfg.Transport.QUIC.KeepalivePeriod) * time.Second, }) if err != nil { err = fmt.Errorf("listen on quic udp address %s error: %v", address, err) @@ -305,11 +299,11 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) { var statsEnable bool // Create dashboard web server. - if cfg.DashboardPort > 0 { + if cfg.WebServer.Port > 0 { // Init dashboard assets - assets.Load(cfg.AssetsDir) + assets.Load(cfg.WebServer.AssetsDir) - address := net.JoinHostPort(cfg.DashboardAddr, strconv.Itoa(cfg.DashboardPort)) + address := net.JoinHostPort(cfg.WebServer.Addr, strconv.Itoa(cfg.WebServer.Port)) err = svr.RunDashboardServer(address) if err != nil { err = fmt.Errorf("create dashboard web server error, %v", err) @@ -416,7 +410,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn) { xl.Warn("register control error: %v", err) _ = msg.WriteMsg(conn, &msg.LoginResp{ Version: version.Full(), - Error: util.GenerateResponseErrorString("register control error", err, svr.cfg.DetailedErrorsToClient), + Error: util.GenerateResponseErrorString("register control error", err, lo.FromPtr(svr.cfg.DetailedErrorsToClient)), }) conn.Close() } @@ -429,7 +423,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn) { xl.Warn("register visitor conn error: %v", err) _ = msg.WriteMsg(conn, &msg.NewVisitorConnResp{ ProxyName: m.ProxyName, - Error: util.GenerateResponseErrorString("register visitor conn error", err, svr.cfg.DetailedErrorsToClient), + Error: util.GenerateResponseErrorString("register visitor conn error", err, lo.FromPtr(svr.cfg.DetailedErrorsToClient)), }) conn.Close() } else { @@ -461,7 +455,7 @@ func (svr *Service) HandleListener(l net.Listener) { log.Trace("start check TLS connection...") originConn := c var isTLS, custom bool - c, isTLS, custom, err = utilnet.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, svr.cfg.TLSOnly, connReadTimeout) + c, isTLS, custom, err = utilnet.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, svr.cfg.TLS.Force, connReadTimeout) if err != nil { log.Warn("CheckAndEnableTLSServerConnWithTimeout error: %v", err) originConn.Close() @@ -471,9 +465,9 @@ func (svr *Service) HandleListener(l net.Listener) { // Start a new goroutine to handle connection. go func(ctx context.Context, frpConn net.Conn) { - if svr.cfg.TCPMux { + if lo.FromPtr(svr.cfg.Transport.TCPMux) { fmuxCfg := fmux.DefaultConfig() - fmuxCfg.KeepAliveInterval = time.Duration(svr.cfg.TCPMuxKeepaliveInterval) * time.Second + fmuxCfg.KeepAliveInterval = time.Duration(svr.cfg.Transport.TCPMuxKeepaliveInterval) * time.Second fmuxCfg.LogOutput = io.Discard fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Server(frpConn, fmuxCfg) @@ -594,7 +588,7 @@ func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) if err != nil { xl.Warn("invalid NewWorkConn with run id [%s]", newMsg.RunID) _ = msg.WriteMsg(workConn, &msg.StartWorkConn{ - Error: util.GenerateResponseErrorString("invalid NewWorkConn", err, ctl.serverCfg.DetailedErrorsToClient), + Error: util.GenerateResponseErrorString("invalid NewWorkConn", err, lo.FromPtr(svr.cfg.DetailedErrorsToClient)), }) return fmt.Errorf("invalid NewWorkConn with run id [%s]", newMsg.RunID) } @@ -603,7 +597,8 @@ func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) func (svr *Service) RegisterVisitorConn(visitorConn net.Conn, newMsg *msg.NewVisitorConn) error { visitorUser := "" - // TODO: Compatible with old versions, can be without runID, user is empty. In later versions, it will be mandatory to include runID. + // TODO(deprecation): Compatible with old versions, can be without runID, user is empty. In later versions, it will be mandatory to include runID. + // If runID is required, it is not compatible with versions prior to v0.50.0. if newMsg.RunID != "" { ctl, exist := svr.ctlManager.GetByID(newMsg.RunID) if !exist { diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index f809288e1ca..af2ca261112 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -31,7 +31,7 @@ func TestMain(m *testing.M) { os.Exit(1) } - log.InitLog("console", "", framework.TestContext.LogLevel, 0, true) + log.InitLog("console", framework.TestContext.LogLevel, 0, true) os.Exit(m.Run()) } From 7cd02f5bd862840dce1e244716dde81b42ca072e Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 13 Sep 2023 16:32:39 +0800 Subject: [PATCH 096/444] add e2e tests for v1 config (#3608) --- Release.md | 2 + cmd/frpc/sub/root.go | 2 +- cmd/frps/root.go | 11 +- conf/frpc.ini | 9 - conf/{frpc_full.ini => frpc_legacy_full.ini} | 0 conf/frps.ini | 2 - conf/{frps_full.ini => frps_legacy_full.ini} | 0 go.mod | 2 +- go.sum | 3 +- hack/run-e2e.sh | 2 +- pkg/auth/auth.go | 8 +- pkg/config/legacy/conversion.go | 18 +- pkg/config/load.go | 3 +- pkg/config/v1/client.go | 2 +- pkg/config/v1/plugin.go | 5 +- pkg/config/v1/server.go | 18 +- pkg/config/v1/validation/client.go | 2 +- pkg/config/v1/visitor.go | 2 +- pkg/plugin/client/plugin.go | 3 + server/dashboard_api.go | 2 +- server/service.go | 8 +- test/e2e/e2e_test.go | 9 +- test/e2e/examples.go | 9 +- test/e2e/framework/consts/consts.go | 16 +- test/e2e/framework/process.go | 10 +- test/e2e/{ => legacy}/basic/basic.go | 24 +- test/e2e/{ => legacy}/basic/client.go | 12 +- test/e2e/{ => legacy}/basic/client_server.go | 6 +- test/e2e/{ => legacy}/basic/cmd.go | 0 test/e2e/{ => legacy}/basic/config.go | 4 +- test/e2e/{ => legacy}/basic/http.go | 18 +- test/e2e/{ => legacy}/basic/server.go | 16 +- test/e2e/{ => legacy}/basic/tcpmux.go | 8 +- test/e2e/{ => legacy}/basic/xtcp.go | 4 +- .../{ => legacy}/features/bandwidth_limit.go | 10 +- test/e2e/{ => legacy}/features/chaos.go | 0 test/e2e/{ => legacy}/features/group.go | 12 +- test/e2e/{ => legacy}/features/heartbeat.go | 0 test/e2e/{ => legacy}/features/monitor.go | 4 +- test/e2e/{ => legacy}/features/real_ip.go | 12 +- test/e2e/{ => legacy}/plugin/client.go | 28 +- test/e2e/{ => legacy}/plugin/server.go | 34 +- test/e2e/{ => legacy}/plugin/utils.go | 0 test/e2e/v1/basic/basic.go | 524 ++++++++++++++++++ test/e2e/v1/basic/client.go | 136 +++++ test/e2e/v1/basic/client_server.go | 325 +++++++++++ test/e2e/v1/basic/cmd.go | 109 ++++ test/e2e/v1/basic/config.go | 84 +++ test/e2e/v1/basic/http.go | 388 +++++++++++++ test/e2e/v1/basic/server.go | 192 +++++++ test/e2e/v1/basic/tcpmux.go | 223 ++++++++ test/e2e/v1/basic/xtcp.go | 53 ++ test/e2e/v1/features/bandwidth_limit.go | 108 ++++ test/e2e/v1/features/chaos.go | 64 +++ test/e2e/v1/features/group.go | 267 +++++++++ test/e2e/v1/features/heartbeat.go | 47 ++ test/e2e/v1/features/monitor.go | 55 ++ test/e2e/v1/features/real_ip.go | 154 +++++ test/e2e/v1/plugin/client.go | 331 +++++++++++ test/e2e/v1/plugin/server.go | 415 ++++++++++++++ test/e2e/v1/plugin/utils.go | 41 ++ 61 files changed, 3697 insertions(+), 159 deletions(-) delete mode 100644 conf/frpc.ini rename conf/{frpc_full.ini => frpc_legacy_full.ini} (100%) delete mode 100644 conf/frps.ini rename conf/{frps_full.ini => frps_legacy_full.ini} (100%) rename test/e2e/{ => legacy}/basic/basic.go (95%) rename test/e2e/{ => legacy}/basic/client.go (90%) rename test/e2e/{ => legacy}/basic/client_server.go (98%) rename test/e2e/{ => legacy}/basic/cmd.go (100%) rename test/e2e/{ => legacy}/basic/config.go (95%) rename test/e2e/{ => legacy}/basic/http.go (95%) rename test/e2e/{ => legacy}/basic/server.go (91%) rename test/e2e/{ => legacy}/basic/tcpmux.go (96%) rename test/e2e/{ => legacy}/basic/xtcp.go (91%) rename test/e2e/{ => legacy}/features/bandwidth_limit.go (91%) rename test/e2e/{ => legacy}/features/chaos.go (100%) rename test/e2e/{ => legacy}/features/group.go (95%) rename test/e2e/{ => legacy}/features/heartbeat.go (100%) rename test/e2e/{ => legacy}/features/monitor.go (91%) rename test/e2e/{ => legacy}/features/real_ip.go (92%) rename test/e2e/{ => legacy}/plugin/client.go (91%) rename test/e2e/{ => legacy}/plugin/server.go (90%) rename test/e2e/{ => legacy}/plugin/utils.go (100%) create mode 100644 test/e2e/v1/basic/basic.go create mode 100644 test/e2e/v1/basic/client.go create mode 100644 test/e2e/v1/basic/client_server.go create mode 100644 test/e2e/v1/basic/cmd.go create mode 100644 test/e2e/v1/basic/config.go create mode 100644 test/e2e/v1/basic/http.go create mode 100644 test/e2e/v1/basic/server.go create mode 100644 test/e2e/v1/basic/tcpmux.go create mode 100644 test/e2e/v1/basic/xtcp.go create mode 100644 test/e2e/v1/features/bandwidth_limit.go create mode 100644 test/e2e/v1/features/chaos.go create mode 100644 test/e2e/v1/features/group.go create mode 100644 test/e2e/v1/features/heartbeat.go create mode 100644 test/e2e/v1/features/monitor.go create mode 100644 test/e2e/v1/features/real_ip.go create mode 100644 test/e2e/v1/plugin/client.go create mode 100644 test/e2e/v1/plugin/server.go create mode 100644 test/e2e/v1/plugin/utils.go diff --git a/Release.md b/Release.md index cff4dbc12b7..7f01beef8b6 100644 --- a/Release.md +++ b/Release.md @@ -1 +1,3 @@ ### Features + +* Configuration: We now support TOML, YAML, and JSON for configuration. Please note that INI is deprecated and will be removed in future releases. New features will only be available in TOML, YAML, or JSON. Users wanting these new features should switch their configuration format accordingly. #2521 diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 01c73c01762..e1194fb863d 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -186,7 +186,7 @@ func parseClientCommonCfgFromCmd() (*v1.ClientCommonConfig, error) { cfg.Complete() - err, warning := validation.ValidateClientCommonConfig(cfg) + warning, err := validation.ValidateClientCommonConfig(cfg) if warning != nil { fmt.Printf("WARNING: %v\n", warning) } diff --git a/cmd/frps/root.go b/cmd/frps/root.go index af94aa47d9a..601e068ea61 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -108,7 +108,8 @@ var rootCmd = &cobra.Command{ if cfgFile != "" { svrCfg, isLegacyFormat, err = config.LoadServerConfig(cfgFile) if err != nil { - return err + fmt.Println(err) + os.Exit(1) } if isLegacyFormat { fmt.Printf("WARNING: ini format is deprecated and the support will be removed in the future, " + @@ -116,7 +117,8 @@ var rootCmd = &cobra.Command{ } } else { if svrCfg, err = parseServerConfigFromCmd(); err != nil { - return err + fmt.Println(err) + os.Exit(1) } } @@ -125,7 +127,8 @@ var rootCmd = &cobra.Command{ fmt.Printf("WARNING: %v\n", warning) } if err != nil { - return err + fmt.Println(err) + os.Exit(1) } if err := runServer(svrCfg); err != nil { @@ -168,7 +171,7 @@ func parseServerConfigFromCmd() (*v1.ServerConfig, error) { cfg.Log.MaxDays = logMaxDays cfg.Log.DisablePrintColor = disableLogColor cfg.SubDomainHost = subDomainHost - cfg.TLS.Force = tlsOnly + cfg.Transport.TLS.Force = tlsOnly cfg.MaxPortsPerClient = maxPortsPerClient // Only token authentication is supported in cmd mode diff --git a/conf/frpc.ini b/conf/frpc.ini deleted file mode 100644 index 13a8e5f6fc9..00000000000 --- a/conf/frpc.ini +++ /dev/null @@ -1,9 +0,0 @@ -[common] -server_addr = 127.0.0.1 -server_port = 7000 - -[ssh] -type = tcp -local_ip = 127.0.0.1 -local_port = 22 -remote_port = 6000 diff --git a/conf/frpc_full.ini b/conf/frpc_legacy_full.ini similarity index 100% rename from conf/frpc_full.ini rename to conf/frpc_legacy_full.ini diff --git a/conf/frps.ini b/conf/frps.ini deleted file mode 100644 index 229567a9d6b..00000000000 --- a/conf/frps.ini +++ /dev/null @@ -1,2 +0,0 @@ -[common] -bind_port = 7000 diff --git a/conf/frps_full.ini b/conf/frps_legacy_full.ini similarity index 100% rename from conf/frps_full.ini rename to conf/frps_legacy_full.ini diff --git a/go.mod b/go.mod index 49e74d5739f..f7996399484 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,6 @@ module github.com/fatedier/frp go 1.20 require ( - github.com/BurntSushi/toml v0.3.1 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.6.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb @@ -15,6 +14,7 @@ require ( github.com/hashicorp/yamux v0.1.1 github.com/onsi/ginkgo/v2 v2.11.0 github.com/onsi/gomega v1.27.8 + github.com/pelletier/go-toml/v2 v2.1.0 github.com/pion/stun v0.6.1 github.com/pires/go-proxyproto v0.7.0 github.com/prometheus/client_golang v1.16.0 diff --git a/go.sum b/go.sum index f7ed6f4be41..4cab567e29b 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,6 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= @@ -93,6 +92,8 @@ github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= diff --git a/hack/run-e2e.sh b/hack/run-e2e.sh index 953df0ee8ae..a7d4688a7be 100755 --- a/hack/run-e2e.sh +++ b/hack/run-e2e.sh @@ -6,7 +6,7 @@ ROOT=$(unset CDPATH && cd "$(dirname "$SCRIPT")/.." && pwd) ginkgo_command=$(which ginkgo 2>/dev/null) if [ -z "$ginkgo_command" ]; then echo "ginkgo not found, try to install..." - go install github.com/onsi/ginkgo/v2/ginkgo@v2.8.3 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.11.0 fi debug=false diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go index 2a79149c32f..4c654906ea0 100644 --- a/pkg/auth/auth.go +++ b/pkg/auth/auth.go @@ -31,9 +31,9 @@ type Setter interface { func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter) { switch cfg.Method { case consts.TokenAuthMethod: - authProvider = NewTokenAuth(cfg.AdditionalAuthScopes, cfg.Token) + authProvider = NewTokenAuth(cfg.AdditionalScopes, cfg.Token) case consts.OidcAuthMethod: - authProvider = NewOidcAuthSetter(cfg.AdditionalAuthScopes, cfg.OIDC) + authProvider = NewOidcAuthSetter(cfg.AdditionalScopes, cfg.OIDC) default: panic(fmt.Sprintf("wrong method: '%s'", cfg.Method)) } @@ -49,9 +49,9 @@ type Verifier interface { func NewAuthVerifier(cfg v1.AuthServerConfig) (authVerifier Verifier) { switch cfg.Method { case consts.TokenAuthMethod: - authVerifier = NewTokenAuth(cfg.AdditionalAuthScopes, cfg.Token) + authVerifier = NewTokenAuth(cfg.AdditionalScopes, cfg.Token) case consts.OidcAuthMethod: - authVerifier = NewOidcAuthVerifier(cfg.AdditionalAuthScopes, cfg.OIDC) + authVerifier = NewOidcAuthVerifier(cfg.AdditionalScopes, cfg.OIDC) } return authVerifier } diff --git a/pkg/config/legacy/conversion.go b/pkg/config/legacy/conversion.go index 8d9074bfd22..2540217f663 100644 --- a/pkg/config/legacy/conversion.go +++ b/pkg/config/legacy/conversion.go @@ -29,10 +29,10 @@ func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCommonConf out.Auth.Method = conf.ClientConfig.AuthenticationMethod out.Auth.Token = conf.ClientConfig.Token if conf.ClientConfig.AuthenticateHeartBeats { - out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeHeartBeats) + out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeHeartBeats) } if conf.ClientConfig.AuthenticateNewWorkConns { - out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeNewWorkConns) + out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeNewWorkConns) } out.Auth.OIDC.ClientID = conf.ClientConfig.OidcClientID out.Auth.OIDC.ClientSecret = conf.ClientConfig.OidcClientSecret @@ -89,10 +89,10 @@ func Convert_ServerCommonConf_To_v1(conf *ServerCommonConf) *v1.ServerConfig { out.Auth.Method = conf.ServerConfig.AuthenticationMethod out.Auth.Token = conf.ServerConfig.Token if conf.ServerConfig.AuthenticateHeartBeats { - out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeHeartBeats) + out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeHeartBeats) } if conf.ServerConfig.AuthenticateNewWorkConns { - out.Auth.AdditionalAuthScopes = append(out.Auth.AdditionalAuthScopes, v1.AuthScopeNewWorkConns) + out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeNewWorkConns) } out.Auth.OIDC.Audience = conf.ServerConfig.OidcAudience out.Auth.OIDC.Issuer = conf.ServerConfig.OidcIssuer @@ -146,12 +146,12 @@ func Convert_ServerCommonConf_To_v1(conf *ServerCommonConf) *v1.ServerConfig { out.Transport.MaxPoolCount = conf.MaxPoolCount out.Transport.HeartbeatTimeout = conf.HeartbeatTimeout - out.MaxPortsPerClient = conf.MaxPortsPerClient + out.Transport.TLS.Force = conf.TLSOnly + out.Transport.TLS.CertFile = conf.TLSCertFile + out.Transport.TLS.KeyFile = conf.TLSKeyFile + out.Transport.TLS.TrustedCaFile = conf.TLSTrustedCaFile - out.TLS.Force = conf.TLSOnly - out.TLS.CertFile = conf.TLSCertFile - out.TLS.KeyFile = conf.TLSKeyFile - out.TLS.TrustedCaFile = conf.TLSTrustedCaFile + out.MaxPortsPerClient = conf.MaxPortsPerClient for _, v := range conf.HTTPPlugins { out.HTTPPlugins = append(out.HTTPPlugins, v1.HTTPPluginOptions{ diff --git a/pkg/config/load.go b/pkg/config/load.go index 2f454eb289e..739c4a8ca3d 100644 --- a/pkg/config/load.go +++ b/pkg/config/load.go @@ -23,7 +23,7 @@ import ( "path/filepath" "strings" - "github.com/BurntSushi/toml" + toml "github.com/pelletier/go-toml/v2" "github.com/samber/lo" "gopkg.in/ini.v1" "k8s.io/apimachinery/pkg/util/sets" @@ -119,7 +119,6 @@ func LoadConfigure(b []byte, c any) error { return err } } - decoder := yaml.NewYAMLOrJSONDecoder(bytes.NewBuffer(b), 4096) return decoder.Decode(c) } diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index 878ae2b7075..6c68738bf64 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -168,7 +168,7 @@ type AuthClientConfig struct { Method string `json:"method,omitempty"` // Specify whether to include auth info in additional scope. // Current supported scopes are: "HeartBeats", "NewWorkConns". - AdditionalAuthScopes []AuthScope `json:"additionalAuthScopes,omitempty"` + AdditionalScopes []AuthScope `json:"additionalScopes,omitempty"` // Token specifies the authorization token used to create keys to be sent // to the server. The server must have a matching token for authorization // to succeed. By default, this value is "". diff --git a/pkg/config/v1/plugin.go b/pkg/config/v1/plugin.go index e593c6ff58d..a01d10227be 100644 --- a/pkg/config/v1/plugin.go +++ b/pkg/config/v1/plugin.go @@ -46,10 +46,11 @@ func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error { if !ok { return fmt.Errorf("unknown plugin type: %s", typeStruct.Type) } - if err := json.Unmarshal(b, v); err != nil { + options := reflect.New(v).Interface().(ClientPluginOptions) + if err := json.Unmarshal(b, options); err != nil { return err } - c.ClientPluginOptions = v + c.ClientPluginOptions = options return nil } diff --git a/pkg/config/v1/server.go b/pkg/config/v1/server.go index 65c5dc46c9c..5a5316d8c25 100644 --- a/pkg/config/v1/server.go +++ b/pkg/config/v1/server.go @@ -76,8 +76,6 @@ type ServerConfig struct { Transport ServerTransportConfig `json:"transport,omitempty"` - TLS TLSServerConfig `json:"tls,omitempty"` - // DetailedErrorsToClient defines whether to send the specific error (with // debug info) to frpc. By default, this value is true. DetailedErrorsToClient *bool `json:"detailedErrorsToClient,omitempty"` @@ -109,9 +107,6 @@ func (c *ServerConfig) Complete() { if c.ProxyBindAddr == "" { c.ProxyBindAddr = c.BindAddr } - if c.TLS.TrustedCaFile != "" { - c.TLS.Force = true - } if c.WebServer.Port > 0 { c.WebServer.Addr = util.EmptyOr(c.WebServer.Addr, "0.0.0.0") @@ -125,10 +120,10 @@ func (c *ServerConfig) Complete() { } type AuthServerConfig struct { - Method string `json:"method,omitempty"` - AdditionalAuthScopes []AuthScope `json:"additionalAuthScopes,omitempty"` - Token string `json:"token,omitempty"` - OIDC AuthOIDCServerConfig `json:"oidc,omitempty"` + Method string `json:"method,omitempty"` + AdditionalScopes []AuthScope `json:"additionalScopes,omitempty"` + Token string `json:"token,omitempty"` + OIDC AuthOIDCServerConfig `json:"oidc,omitempty"` } func (c *AuthServerConfig) Complete() { @@ -171,6 +166,8 @@ type ServerTransportConfig struct { HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"` // QUIC options. QUIC QUICOptions `json:"quic,omitempty"` + // TLS specifies TLS settings for the connection from the client. + TLS TLSServerConfig `json:"tls,omitempty"` } func (c *ServerTransportConfig) Complete() { @@ -180,6 +177,9 @@ func (c *ServerTransportConfig) Complete() { c.MaxPoolCount = util.EmptyOr(c.MaxPoolCount, 5) c.HeartbeatTimeout = util.EmptyOr(c.HeartbeatTimeout, 90) c.QUIC.Complete() + if c.TLS.TrustedCaFile != "" { + c.TLS.Force = true + } } type TLSServerConfig struct { diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index 537f386df83..2868789ba8c 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -71,7 +71,7 @@ func ValidateAllClientConfig(c *v1.ClientCommonConfig, pxyCfgs []v1.ProxyConfigu warning, err := ValidateClientCommonConfig(c) warnings = AppendError(warnings, warning) if err != nil { - return err, warnings + return warnings, err } } diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go index 523b863b416..ad216e354ba 100644 --- a/pkg/config/v1/visitor.go +++ b/pkg/config/v1/visitor.go @@ -35,7 +35,7 @@ type VisitorBaseConfig struct { Name string `json:"name"` Type string `json:"type"` Transport VisitorTransport `json:"transport,omitempty"` - SecretKey string `json:"sk,omitempty"` + SecretKey string `json:"secretKey,omitempty"` // if the server user is not set, it defaults to the current user ServerUser string `json:"serverUser,omitempty"` ServerName string `json:"serverName,omitempty"` diff --git a/pkg/plugin/client/plugin.go b/pkg/plugin/client/plugin.go index 98e1bb73a09..da0ceb59d8f 100644 --- a/pkg/plugin/client/plugin.go +++ b/pkg/plugin/client/plugin.go @@ -32,6 +32,9 @@ var creators = make(map[string]CreatorFn) type CreatorFn func(options v1.ClientPluginOptions) (Plugin, error) func Register(name string, fn CreatorFn) { + if _, exist := creators[name]; exist { + panic(fmt.Sprintf("plugin [%s] is already registered", name)) + } creators[name] = fn } diff --git a/server/dashboard_api.go b/server/dashboard_api.go index e54ebe7732d..7a4fdfff230 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -86,7 +86,7 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { MaxPortsPerClient: svr.cfg.MaxPortsPerClient, HeartBeatTimeout: svr.cfg.Transport.HeartbeatTimeout, AllowPortsStr: types.PortsRangeSlice(svr.cfg.AllowPorts).String(), - TLSOnly: svr.cfg.TLS.Force, + TLSOnly: svr.cfg.Transport.TLS.Force, TotalTrafficIn: serverStats.TotalTrafficIn, TotalTrafficOut: serverStats.TotalTrafficOut, diff --git a/server/service.go b/server/service.go index c81ea4d2a5b..a5e84ea91ac 100644 --- a/server/service.go +++ b/server/service.go @@ -108,9 +108,9 @@ type Service struct { func NewService(cfg *v1.ServerConfig) (svr *Service, err error) { tlsConfig, err := transport.NewServerTLSConfig( - cfg.TLS.CertFile, - cfg.TLS.KeyFile, - cfg.TLS.TrustedCaFile) + cfg.Transport.TLS.CertFile, + cfg.Transport.TLS.KeyFile, + cfg.Transport.TLS.TrustedCaFile) if err != nil { return } @@ -455,7 +455,7 @@ func (svr *Service) HandleListener(l net.Listener) { log.Trace("start check TLS connection...") originConn := c var isTLS, custom bool - c, isTLS, custom, err = utilnet.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, svr.cfg.TLS.Force, connReadTimeout) + c, isTLS, custom, err = utilnet.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, svr.cfg.Transport.TLS.Force, connReadTimeout) if err != nil { log.Warn("CheckAndEnableTLSServerConnWithTimeout error: %v", err) originConn.Close() diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index af2ca261112..27c36e0c809 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -10,10 +10,13 @@ import ( "github.com/fatedier/frp/pkg/util/log" // test source - _ "github.com/fatedier/frp/test/e2e/basic" - _ "github.com/fatedier/frp/test/e2e/features" "github.com/fatedier/frp/test/e2e/framework" - _ "github.com/fatedier/frp/test/e2e/plugin" + _ "github.com/fatedier/frp/test/e2e/legacy/basic" + _ "github.com/fatedier/frp/test/e2e/legacy/features" + _ "github.com/fatedier/frp/test/e2e/legacy/plugin" + _ "github.com/fatedier/frp/test/e2e/v1/basic" + _ "github.com/fatedier/frp/test/e2e/v1/features" + _ "github.com/fatedier/frp/test/e2e/v1/plugin" ) // handleFlags sets up all flags and parses the command line. diff --git a/test/e2e/examples.go b/test/e2e/examples.go index 9accdf9cdf1..135ce706918 100644 --- a/test/e2e/examples.go +++ b/test/e2e/examples.go @@ -19,10 +19,11 @@ var _ = ginkgo.Describe("[Feature: Example]", func() { remotePort := f.AllocPort() clientConf += fmt.Sprintf(` - [tcp] - type = tcp - local_port = {{ .%s }} - remote_port = %d + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d `, framework.TCPEchoServerPort, remotePort) f.RunProcesses([]string{serverConf}, []string{clientConf}) diff --git a/test/e2e/framework/consts/consts.go b/test/e2e/framework/consts/consts.go index 622eba924b0..1e5ca500401 100644 --- a/test/e2e/framework/consts/consts.go +++ b/test/e2e/framework/consts/consts.go @@ -18,12 +18,23 @@ var ( PortClientAdmin string DefaultServerConfig = ` +bindPort = {{ .%s }} +log.level = "trace" +` + + DefaultClientConfig = ` +serverAddr = "127.0.0.1" +serverPort = {{ .%s }} +log.level = "trace" +` + + LegacyDefaultServerConfig = ` [common] bind_port = {{ .%s }} log_level = trace ` - DefaultClientConfig = ` + LegacyDefaultClientConfig = ` [common] server_addr = 127.0.0.1 server_port = {{ .%s }} @@ -34,6 +45,9 @@ var ( func init() { PortServerName = port.GenName("Server") PortClientAdmin = port.GenName("ClientAdmin") + LegacyDefaultServerConfig = fmt.Sprintf(LegacyDefaultServerConfig, port.GenName("Server")) + LegacyDefaultClientConfig = fmt.Sprintf(LegacyDefaultClientConfig, port.GenName("Server")) + DefaultServerConfig = fmt.Sprintf(DefaultServerConfig, port.GenName("Server")) DefaultClientConfig = fmt.Sprintf(DefaultClientConfig, port.GenName("Server")) } diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index ca717e258b3..437c8997ca5 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -29,7 +29,10 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-server-%d", i)) err = os.WriteFile(path, []byte(outs[i]), 0o666) ExpectNoError(err) - flog.Trace("[%s] %s", path, outs[i]) + + if TestContext.Debug { + flog.Debug("[%s] %s", path, outs[i]) + } p := process.NewWithEnvs(TestContext.FRPServerPath, []string{"-c", path}, f.osEnvs) f.serverConfPaths = append(f.serverConfPaths, path) @@ -46,7 +49,10 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-client-%d", i)) err = os.WriteFile(path, []byte(outs[index]), 0o666) ExpectNoError(err) - flog.Trace("[%s] %s", path, outs[index]) + + if TestContext.Debug { + flog.Debug("[%s] %s", path, outs[index]) + } p := process.NewWithEnvs(TestContext.FRPClientPath, []string{"-c", path}, f.osEnvs) f.clientConfPaths = append(f.clientConfPaths, path) diff --git a/test/e2e/basic/basic.go b/test/e2e/legacy/basic/basic.go similarity index 95% rename from test/e2e/basic/basic.go rename to test/e2e/legacy/basic/basic.go index 805b46010b2..763d3353a34 100644 --- a/test/e2e/basic/basic.go +++ b/test/e2e/legacy/basic/basic.go @@ -25,8 +25,8 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { for _, t := range types { proxyType := t ginkgo.It(fmt.Sprintf("Expose a %s echo server", strings.ToUpper(proxyType)), func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig localPortName := "" protocol := "tcp" @@ -96,13 +96,13 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { ginkgo.Describe("HTTP", func() { ginkgo.It("proxy to HTTP server", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig vhostHTTPPort := f.AllocPort() serverConf += fmt.Sprintf(` vhost_http_port = %d `, vhostHTTPPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig getProxyConf := func(proxyName string, customDomains string, extra string) string { return fmt.Sprintf(` @@ -178,14 +178,14 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { ginkgo.Describe("HTTPS", func() { ginkgo.It("proxy to HTTPS server", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig vhostHTTPSPort := f.AllocPort() serverConf += fmt.Sprintf(` vhost_https_port = %d `, vhostHTTPSPort) localPort := f.AllocPort() - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig getProxyConf := func(proxyName string, customDomains string, extra string) string { return fmt.Sprintf(` [%s] @@ -281,10 +281,10 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { for _, t := range types { proxyType := t ginkgo.It(fmt.Sprintf("Expose echo server with %s", strings.ToUpper(proxyType)), func() { - serverConf := consts.DefaultServerConfig - clientServerConf := consts.DefaultClientConfig + "\nuser = user1" - clientVisitorConf := consts.DefaultClientConfig + "\nuser = user1" - clientUser2VisitorConf := consts.DefaultClientConfig + "\nuser = user2" + serverConf := consts.LegacyDefaultServerConfig + clientServerConf := consts.LegacyDefaultClientConfig + "\nuser = user1" + clientVisitorConf := consts.LegacyDefaultClientConfig + "\nuser = user1" + clientUser2VisitorConf := consts.LegacyDefaultClientConfig + "\nuser = user2" localPortName := "" protocol := "tcp" @@ -439,8 +439,8 @@ var _ = ginkgo.Describe("[Feature: Basic]", func() { ginkgo.Describe("TCPMUX", func() { ginkgo.It("Type tcpmux", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig tcpmuxHTTPConnectPortName := port.GenName("TCPMUX") serverConf += fmt.Sprintf(` diff --git a/test/e2e/basic/client.go b/test/e2e/legacy/basic/client.go similarity index 90% rename from test/e2e/basic/client.go rename to test/e2e/legacy/basic/client.go index fb9b16b573a..b2e462bbeb5 100644 --- a/test/e2e/basic/client.go +++ b/test/e2e/legacy/basic/client.go @@ -18,7 +18,7 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { f := framework.NewDefaultFramework() ginkgo.It("Update && Reload API", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig adminPort := f.AllocPort() @@ -26,7 +26,7 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { p2Port := f.AllocPort() p3Port := f.AllocPort() - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` admin_port = %d [p1] @@ -80,10 +80,10 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { }) ginkgo.It("healthz", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig dashboardPort := f.AllocPort() - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` admin_addr = 0.0.0.0 admin_port = %d admin_user = admin @@ -103,11 +103,11 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { }) ginkgo.It("stop", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig adminPort := f.AllocPort() testPort := f.AllocPort() - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` admin_port = %d [test] diff --git a/test/e2e/basic/client_server.go b/test/e2e/legacy/basic/client_server.go similarity index 98% rename from test/e2e/basic/client_server.go rename to test/e2e/legacy/basic/client_server.go index e7730f459ce..03bca0c54e2 100644 --- a/test/e2e/basic/client_server.go +++ b/test/e2e/legacy/basic/client_server.go @@ -33,8 +33,8 @@ func renderBindPortConfig(protocol string) string { } func runClientServerTest(f *framework.Framework, configures *generalTestConfigures) { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig if configures.clientPrefix != "" { clientConf = configures.clientPrefix } @@ -64,7 +64,7 @@ func runClientServerTest(f *framework.Framework, configures *generalTestConfigur clientConfs := []string{clientConf} if configures.client2 != "" { - client2Conf := consts.DefaultClientConfig + client2Conf := consts.LegacyDefaultClientConfig if configures.client2Prefix != "" { client2Conf = configures.client2Prefix } diff --git a/test/e2e/basic/cmd.go b/test/e2e/legacy/basic/cmd.go similarity index 100% rename from test/e2e/basic/cmd.go rename to test/e2e/legacy/basic/cmd.go diff --git a/test/e2e/basic/config.go b/test/e2e/legacy/basic/config.go similarity index 95% rename from test/e2e/basic/config.go rename to test/e2e/legacy/basic/config.go index acee2c560ec..6e9f35643ea 100644 --- a/test/e2e/basic/config.go +++ b/test/e2e/legacy/basic/config.go @@ -15,8 +15,8 @@ var _ = ginkgo.Describe("[Feature: Config]", func() { ginkgo.Describe("Template", func() { ginkgo.It("render by env", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig portName := port.GenName("TCP") serverConf += fmt.Sprintf(` diff --git a/test/e2e/basic/http.go b/test/e2e/legacy/basic/http.go similarity index 95% rename from test/e2e/basic/http.go rename to test/e2e/legacy/basic/http.go index f8b173879e3..77ba105264a 100644 --- a/test/e2e/basic/http.go +++ b/test/e2e/legacy/basic/http.go @@ -19,7 +19,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { f := framework.NewDefaultFramework() getDefaultServerConf := func(vhostHTTPPort int) string { - conf := consts.DefaultServerConfig + ` + conf := consts.LegacyDefaultServerConfig + ` vhost_http_port = %d ` return fmt.Sprintf(conf, vhostHTTPPort) @@ -41,7 +41,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { barPort := f.AllocPort() f.RunServer("", newHTTPServer(barPort, "bar")) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [foo] type = http @@ -91,7 +91,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { otherPort := f.AllocPort() f.RunServer("", newHTTPServer(otherPort, "other")) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [foo] type = http @@ -142,7 +142,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = http @@ -180,7 +180,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { vhostHTTPPort := f.AllocPort() serverConf := getDefaultServerConf(vhostHTTPPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = http @@ -225,7 +225,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { barPort := f.AllocPort() f.RunServer("", newHTTPServer(barPort, "bar")) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [foo] type = http @@ -270,7 +270,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { ) f.RunServer("", localServer) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = http @@ -303,7 +303,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { ) f.RunServer("", localServer) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = http @@ -352,7 +352,7 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { f.RunServer("", localServer) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = http diff --git a/test/e2e/basic/server.go b/test/e2e/legacy/basic/server.go similarity index 91% rename from test/e2e/basic/server.go rename to test/e2e/legacy/basic/server.go index bfa2f2eb87e..08bc6b220ff 100644 --- a/test/e2e/basic/server.go +++ b/test/e2e/legacy/basic/server.go @@ -18,8 +18,8 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { f := framework.NewDefaultFramework() ginkgo.It("Ports Whitelist", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig serverConf += ` allow_ports = 20000-25000,25002,30000-50000 @@ -81,8 +81,8 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { }) ginkgo.It("Alloc Random Port", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig adminPort := f.AllocPort() clientConf += fmt.Sprintf(` @@ -125,13 +125,13 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { }) ginkgo.It("Port Reuse", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig // Use same port as PortServer serverConf += fmt.Sprintf(` vhost_http_port = {{ .%s }} `, consts.PortServerName) - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` [http] type = http local_port = {{ .%s }} @@ -146,7 +146,7 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { }) ginkgo.It("healthz", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig dashboardPort := f.AllocPort() // Use same port as PortServer @@ -158,7 +158,7 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { dashboard_pwd = admin `, consts.PortServerName, dashboardPort) - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` [http] type = http local_port = {{ .%s }} diff --git a/test/e2e/basic/tcpmux.go b/test/e2e/legacy/basic/tcpmux.go similarity index 96% rename from test/e2e/basic/tcpmux.go rename to test/e2e/legacy/basic/tcpmux.go index a1106b958ba..5bb742bc8e3 100644 --- a/test/e2e/basic/tcpmux.go +++ b/test/e2e/legacy/basic/tcpmux.go @@ -20,7 +20,7 @@ var _ = ginkgo.Describe("[Feature: TCPMUX httpconnect]", func() { f := framework.NewDefaultFramework() getDefaultServerConf := func(httpconnectPort int) string { - conf := consts.DefaultServerConfig + ` + conf := consts.LegacyDefaultServerConfig + ` tcpmux_httpconnect_port = %d ` return fmt.Sprintf(conf, httpconnectPort) @@ -53,7 +53,7 @@ var _ = ginkgo.Describe("[Feature: TCPMUX httpconnect]", func() { otherPort := f.AllocPort() f.RunServer("", newServer(otherPort, "other")) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [foo] type = tcpmux @@ -110,7 +110,7 @@ var _ = ginkgo.Describe("[Feature: TCPMUX httpconnect]", func() { fooPort := f.AllocPort() f.RunServer("", newServer(fooPort, "foo")) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = tcpmux @@ -195,7 +195,7 @@ var _ = ginkgo.Describe("[Feature: TCPMUX httpconnect]", func() { localPort := f.AllocPort() f.RunServer("", newServer(localPort)) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = tcpmux diff --git a/test/e2e/basic/xtcp.go b/test/e2e/legacy/basic/xtcp.go similarity index 91% rename from test/e2e/basic/xtcp.go rename to test/e2e/legacy/basic/xtcp.go index a501d7935c5..3c47f577808 100644 --- a/test/e2e/basic/xtcp.go +++ b/test/e2e/legacy/basic/xtcp.go @@ -16,8 +16,8 @@ var _ = ginkgo.Describe("[Feature: XTCP]", func() { f := framework.NewDefaultFramework() ginkgo.It("Fallback To STCP", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig bindPortName := port.GenName("XTCP") clientConf += fmt.Sprintf(` diff --git a/test/e2e/features/bandwidth_limit.go b/test/e2e/legacy/features/bandwidth_limit.go similarity index 91% rename from test/e2e/features/bandwidth_limit.go rename to test/e2e/legacy/features/bandwidth_limit.go index 96d236462d6..cbc6e928d1b 100644 --- a/test/e2e/features/bandwidth_limit.go +++ b/test/e2e/legacy/features/bandwidth_limit.go @@ -10,17 +10,17 @@ import ( plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" + plugintest "github.com/fatedier/frp/test/e2e/legacy/plugin" "github.com/fatedier/frp/test/e2e/mock/server/streamserver" "github.com/fatedier/frp/test/e2e/pkg/request" - plugintest "github.com/fatedier/frp/test/e2e/plugin" ) var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { f := framework.NewDefaultFramework() ginkgo.It("Proxy Bandwidth Limit by Client", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig localPort := f.AllocPort() localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort)) @@ -69,13 +69,13 @@ var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = 127.0.0.1:%d path = /handler ops = NewProxy `, pluginPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig localPort := f.AllocPort() localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort)) diff --git a/test/e2e/features/chaos.go b/test/e2e/legacy/features/chaos.go similarity index 100% rename from test/e2e/features/chaos.go rename to test/e2e/legacy/features/chaos.go diff --git a/test/e2e/features/group.go b/test/e2e/legacy/features/group.go similarity index 95% rename from test/e2e/features/group.go rename to test/e2e/legacy/features/group.go index 8ec6112549e..dc15f75c5da 100644 --- a/test/e2e/features/group.go +++ b/test/e2e/legacy/features/group.go @@ -62,8 +62,8 @@ var _ = ginkgo.Describe("[Feature: Group]", func() { ginkgo.Describe("Load Balancing", func() { ginkgo.It("TCP", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig fooPort := f.AllocPort() fooServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(fooPort), streamserver.WithRespContent([]byte("foo"))) @@ -114,8 +114,8 @@ var _ = ginkgo.Describe("[Feature: Group]", func() { ginkgo.Describe("Health Check", func() { ginkgo.It("TCP", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig fooPort := f.AllocPort() fooServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(fooPort), streamserver.WithRespContent([]byte("foo"))) @@ -180,10 +180,10 @@ var _ = ginkgo.Describe("[Feature: Group]", func() { ginkgo.It("HTTP", func() { vhostPort := f.AllocPort() - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d `, vhostPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig fooPort := f.AllocPort() fooServer := newHTTPServer(fooPort, "foo") diff --git a/test/e2e/features/heartbeat.go b/test/e2e/legacy/features/heartbeat.go similarity index 100% rename from test/e2e/features/heartbeat.go rename to test/e2e/legacy/features/heartbeat.go diff --git a/test/e2e/features/monitor.go b/test/e2e/legacy/features/monitor.go similarity index 91% rename from test/e2e/features/monitor.go rename to test/e2e/legacy/features/monitor.go index 74996d2cad5..8968df9f01b 100644 --- a/test/e2e/features/monitor.go +++ b/test/e2e/legacy/features/monitor.go @@ -18,13 +18,13 @@ var _ = ginkgo.Describe("[Feature: Monitor]", func() { ginkgo.It("Prometheus metrics", func() { dashboardPort := f.AllocPort() - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` enable_prometheus = true dashboard_addr = 0.0.0.0 dashboard_port = %d `, dashboardPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig remotePort := f.AllocPort() clientConf += fmt.Sprintf(` [tcp] diff --git a/test/e2e/features/real_ip.go b/test/e2e/legacy/features/real_ip.go similarity index 92% rename from test/e2e/features/real_ip.go rename to test/e2e/legacy/features/real_ip.go index 31f02fe2db3..082df8c6260 100644 --- a/test/e2e/features/real_ip.go +++ b/test/e2e/legacy/features/real_ip.go @@ -23,7 +23,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { ginkgo.It("HTTP X-Forwarded-For", func() { vhostHTTPPort := f.AllocPort() - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d `, vhostHTTPPort) @@ -36,7 +36,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { ) f.RunServer("", localServer) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [test] type = http @@ -56,8 +56,8 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { ginkgo.Describe("Proxy Protocol", func() { ginkgo.It("TCP", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig localPort := f.AllocPort() localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort), @@ -107,11 +107,11 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { ginkgo.It("HTTP", func() { vhostHTTPPort := f.AllocPort() - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d `, vhostHTTPPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig localPort := f.AllocPort() var srcAddrRecord string diff --git a/test/e2e/plugin/client.go b/test/e2e/legacy/plugin/client.go similarity index 91% rename from test/e2e/plugin/client.go rename to test/e2e/legacy/plugin/client.go index 3046b900c93..b69c6aed780 100644 --- a/test/e2e/plugin/client.go +++ b/test/e2e/legacy/plugin/client.go @@ -21,8 +21,8 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { ginkgo.Describe("UnixDomainSocket", func() { ginkgo.It("Expose a unix domain socket echo server", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig getProxyConf := func(proxyName string, portName string, extra string) string { return fmt.Sprintf(` @@ -77,8 +77,8 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { }) ginkgo.It("http_proxy", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig remotePort := f.AllocPort() clientConf += fmt.Sprintf(` @@ -109,8 +109,8 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { }) ginkgo.It("socks5 proxy", func() { - serverConf := consts.DefaultServerConfig - clientConf := consts.DefaultClientConfig + serverConf := consts.LegacyDefaultServerConfig + clientConf := consts.LegacyDefaultClientConfig remotePort := f.AllocPort() clientConf += fmt.Sprintf(` @@ -137,10 +137,10 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { ginkgo.It("static_file", func() { vhostPort := f.AllocPort() - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` vhost_http_port = %d `, vhostPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig remotePort := f.AllocPort() f.WriteTempFile("test_static_file", "foo") @@ -185,14 +185,14 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { }) ginkgo.It("http2https", func() { - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig vhostHTTPPort := f.AllocPort() serverConf += fmt.Sprintf(` vhost_http_port = %d `, vhostHTTPPort) localPort := f.AllocPort() - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` [http2https] type = http custom_domains = example.com @@ -227,14 +227,14 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { crtPath := f.WriteTempFile("server.crt", string(artifacts.Cert)) keyPath := f.WriteTempFile("server.key", string(artifacts.Key)) - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig vhostHTTPSPort := f.AllocPort() serverConf += fmt.Sprintf(` vhost_https_port = %d `, vhostHTTPSPort) localPort := f.AllocPort() - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` [https2http] type = https custom_domains = example.com @@ -271,14 +271,14 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { crtPath := f.WriteTempFile("server.crt", string(artifacts.Cert)) keyPath := f.WriteTempFile("server.key", string(artifacts.Key)) - serverConf := consts.DefaultServerConfig + serverConf := consts.LegacyDefaultServerConfig vhostHTTPSPort := f.AllocPort() serverConf += fmt.Sprintf(` vhost_https_port = %d `, vhostHTTPSPort) localPort := f.AllocPort() - clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + clientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` [https2https] type = https custom_domains = example.com diff --git a/test/e2e/plugin/server.go b/test/e2e/legacy/plugin/server.go similarity index 90% rename from test/e2e/plugin/server.go rename to test/e2e/legacy/plugin/server.go index 955e3b5477f..0011b1b9ac7 100644 --- a/test/e2e/plugin/server.go +++ b/test/e2e/legacy/plugin/server.go @@ -44,13 +44,13 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.user-manager] addr = 127.0.0.1:%d path = /handler ops = Login `, localPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig remotePort := f.AllocPort() clientConf += fmt.Sprintf(` @@ -63,7 +63,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { `, framework.TCPEchoServerPort, remotePort) remotePort2 := f.AllocPort() - invalidTokenClientConf := consts.DefaultClientConfig + fmt.Sprintf(` + invalidTokenClientConf := consts.LegacyDefaultClientConfig + fmt.Sprintf(` [tcp2] type = tcp local_port = {{ .%s }} @@ -102,13 +102,13 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = 127.0.0.1:%d path = /handler ops = NewProxy `, localPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig remotePort := f.AllocPort() clientConf += fmt.Sprintf(` @@ -137,13 +137,13 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = 127.0.0.1:%d path = /handler ops = NewProxy `, localPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [tcp] @@ -178,13 +178,13 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = 127.0.0.1:%d path = /handler ops = CloseProxy `, localPort) - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig remotePort := f.AllocPort() clientConf += fmt.Sprintf(` @@ -230,7 +230,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = 127.0.0.1:%d path = /handler @@ -238,7 +238,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { `, localPort) remotePort := f.AllocPort() - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` heartbeat_interval = 1 authenticate_heartbeats = true @@ -280,7 +280,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = 127.0.0.1:%d path = /handler @@ -288,7 +288,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { `, localPort) remotePort := f.AllocPort() - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [tcp] type = tcp @@ -325,7 +325,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = 127.0.0.1:%d path = /handler @@ -333,7 +333,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { `, localPort) remotePort := f.AllocPort() - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [tcp] type = tcp @@ -372,7 +372,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { f.RunServer("", pluginServer) - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + serverConf := consts.LegacyDefaultServerConfig + fmt.Sprintf(` [plugin.test] addr = https://127.0.0.1:%d path = /handler @@ -380,7 +380,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { `, localPort) remotePort := f.AllocPort() - clientConf := consts.DefaultClientConfig + clientConf := consts.LegacyDefaultClientConfig clientConf += fmt.Sprintf(` [tcp] type = tcp diff --git a/test/e2e/plugin/utils.go b/test/e2e/legacy/plugin/utils.go similarity index 100% rename from test/e2e/plugin/utils.go rename to test/e2e/legacy/plugin/utils.go diff --git a/test/e2e/v1/basic/basic.go b/test/e2e/v1/basic/basic.go new file mode 100644 index 00000000000..9d9d34cb39d --- /dev/null +++ b/test/e2e/v1/basic/basic.go @@ -0,0 +1,524 @@ +package basic + +import ( + "crypto/tls" + "fmt" + "strings" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/mock/server/httpserver" + "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + "github.com/fatedier/frp/test/e2e/pkg/port" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: Basic]", func() { + f := framework.NewDefaultFramework() + + ginkgo.Describe("TCP && UDP", func() { + types := []string{"tcp", "udp"} + for _, t := range types { + proxyType := t + ginkgo.It(fmt.Sprintf("Expose a %s echo server", strings.ToUpper(proxyType)), func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + localPortName := "" + protocol := "tcp" + switch proxyType { + case "tcp": + localPortName = framework.TCPEchoServerPort + protocol = "tcp" + case "udp": + localPortName = framework.UDPEchoServerPort + protocol = "udp" + } + getProxyConf := func(proxyName string, portName string, extra string) string { + return fmt.Sprintf(` + [[proxies]] + name = "%s" + type = "%s" + localPort = {{ .%s }} + remotePort = {{ .%s }} + `+extra, proxyName, proxyType, localPortName, portName) + } + + tests := []struct { + proxyName string + portName string + extraConfig string + }{ + { + proxyName: "normal", + portName: port.GenName("Normal"), + }, + { + proxyName: "with-encryption", + portName: port.GenName("WithEncryption"), + extraConfig: "transport.useEncryption = true", + }, + { + proxyName: "with-compression", + portName: port.GenName("WithCompression"), + extraConfig: "transport.useCompression = true", + }, + { + proxyName: "with-encryption-and-compression", + portName: port.GenName("WithEncryptionAndCompression"), + extraConfig: ` + transport.useEncryption = true + transport.useCompression = true + `, + }, + } + + // build all client config + for _, test := range tests { + clientConf += getProxyConf(test.proxyName, test.portName, test.extraConfig) + "\n" + } + // run frps and frpc + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + for _, test := range tests { + framework.NewRequestExpect(f). + Protocol(protocol). + PortName(test.portName). + Explain(test.proxyName). + Ensure() + } + }) + } + }) + + ginkgo.Describe("HTTP", func() { + ginkgo.It("proxy to HTTP server", func() { + serverConf := consts.DefaultServerConfig + vhostHTTPPort := f.AllocPort() + serverConf += fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostHTTPPort) + + clientConf := consts.DefaultClientConfig + + getProxyConf := func(proxyName string, customDomains string, extra string) string { + return fmt.Sprintf(` + [[proxies]] + name = "%s" + type = "http" + localPort = {{ .%s }} + customDomains = %s + `+extra, proxyName, framework.HTTPSimpleServerPort, customDomains) + } + + tests := []struct { + proxyName string + customDomains string + extraConfig string + }{ + { + proxyName: "normal", + }, + { + proxyName: "with-encryption", + extraConfig: "transport.useEncryption = true", + }, + { + proxyName: "with-compression", + extraConfig: "transport.useCompression = true", + }, + { + proxyName: "with-encryption-and-compression", + extraConfig: ` + transport.useEncryption = true + transport.useCompression = true + `, + }, + { + proxyName: "multiple-custom-domains", + customDomains: `["a.example.com", "b.example.com"]`, + }, + } + + // build all client config + for i, test := range tests { + if tests[i].customDomains == "" { + tests[i].customDomains = fmt.Sprintf(`["%s"]`, test.proxyName+".example.com") + } + clientConf += getProxyConf(test.proxyName, tests[i].customDomains, test.extraConfig) + "\n" + } + // run frps and frpc + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + for _, test := range tests { + for _, domain := range strings.Split(test.customDomains, ",") { + domain = strings.TrimSpace(domain) + domain = strings.TrimLeft(domain, "[\"") + domain = strings.TrimRight(domain, "]\"") + framework.NewRequestExpect(f). + Explain(test.proxyName + "-" + domain). + Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost(domain) + }). + Ensure() + } + } + + // not exist host + framework.NewRequestExpect(f). + Explain("not exist host"). + Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("not-exist.example.com") + }). + Ensure(framework.ExpectResponseCode(404)) + }) + }) + + ginkgo.Describe("HTTPS", func() { + ginkgo.It("proxy to HTTPS server", func() { + serverConf := consts.DefaultServerConfig + vhostHTTPSPort := f.AllocPort() + serverConf += fmt.Sprintf(` + vhostHTTPSPort = %d + `, vhostHTTPSPort) + + localPort := f.AllocPort() + clientConf := consts.DefaultClientConfig + getProxyConf := func(proxyName string, customDomains string, extra string) string { + return fmt.Sprintf(` + [[proxies]] + name = "%s" + type = "https" + localPort = %d + customDomains = %s + `+extra, proxyName, localPort, customDomains) + } + + tests := []struct { + proxyName string + customDomains string + extraConfig string + }{ + { + proxyName: "normal", + }, + { + proxyName: "with-encryption", + extraConfig: "transport.useEncryption = true", + }, + { + proxyName: "with-compression", + extraConfig: "transport.useCompression = true", + }, + { + proxyName: "with-encryption-and-compression", + extraConfig: ` + transport.useEncryption = true + transport.useCompression = true + `, + }, + { + proxyName: "multiple-custom-domains", + customDomains: `["a.example.com", "b.example.com"]`, + }, + } + + // build all client config + for i, test := range tests { + if tests[i].customDomains == "" { + tests[i].customDomains = fmt.Sprintf(`["%s"]`, test.proxyName+".example.com") + } + clientConf += getProxyConf(test.proxyName, tests[i].customDomains, test.extraConfig) + "\n" + } + // run frps and frpc + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + tlsConfig, err := transport.NewServerTLSConfig("", "", "") + framework.ExpectNoError(err) + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithTLSConfig(tlsConfig), + httpserver.WithResponse([]byte("test")), + ) + f.RunServer("", localServer) + + for _, test := range tests { + for _, domain := range strings.Split(test.customDomains, ",") { + domain = strings.TrimSpace(domain) + domain = strings.TrimLeft(domain, "[\"") + domain = strings.TrimRight(domain, "]\"") + framework.NewRequestExpect(f). + Explain(test.proxyName + "-" + domain). + Port(vhostHTTPSPort). + RequestModify(func(r *request.Request) { + r.HTTPS().HTTPHost(domain).TLSConfig(&tls.Config{ + ServerName: domain, + InsecureSkipVerify: true, + }) + }). + ExpectResp([]byte("test")). + Ensure() + } + } + + // not exist host + notExistDomain := "not-exist.example.com" + framework.NewRequestExpect(f). + Explain("not exist host"). + Port(vhostHTTPSPort). + RequestModify(func(r *request.Request) { + r.HTTPS().HTTPHost(notExistDomain).TLSConfig(&tls.Config{ + ServerName: notExistDomain, + InsecureSkipVerify: true, + }) + }). + ExpectError(true). + Ensure() + }) + }) + + ginkgo.Describe("STCP && SUDP && XTCP", func() { + types := []string{"stcp", "sudp", "xtcp"} + for _, t := range types { + proxyType := t + ginkgo.It(fmt.Sprintf("Expose echo server with %s", strings.ToUpper(proxyType)), func() { + serverConf := consts.DefaultServerConfig + clientServerConf := consts.DefaultClientConfig + "\nuser = \"user1\"" + clientVisitorConf := consts.DefaultClientConfig + "\nuser = \"user1\"" + clientUser2VisitorConf := consts.DefaultClientConfig + "\nuser = \"user2\"" + + localPortName := "" + protocol := "tcp" + switch proxyType { + case "stcp": + localPortName = framework.TCPEchoServerPort + protocol = "tcp" + case "sudp": + localPortName = framework.UDPEchoServerPort + protocol = "udp" + case "xtcp": + localPortName = framework.TCPEchoServerPort + protocol = "tcp" + ginkgo.Skip("stun server is not stable") + } + + correctSK := "abc" + wrongSK := "123" + + getProxyServerConf := func(proxyName string, extra string) string { + return fmt.Sprintf(` + [[proxies]] + name = "%s" + type = "%s" + secretKey = "%s" + localPort = {{ .%s }} + `+extra, proxyName, proxyType, correctSK, localPortName) + } + getProxyVisitorConf := func(proxyName string, portName, visitorSK, extra string) string { + return fmt.Sprintf(` + [[visitors]] + name = "%s" + type = "%s" + serverName = "%s" + secretKey = "%s" + bindPort = {{ .%s }} + `+extra, proxyName, proxyType, proxyName, visitorSK, portName) + } + + tests := []struct { + proxyName string + bindPortName string + visitorSK string + commonExtraConfig string + proxyExtraConfig string + visitorExtraConfig string + expectError bool + deployUser2Client bool + // skipXTCP is used to skip xtcp test case + skipXTCP bool + }{ + { + proxyName: "normal", + bindPortName: port.GenName("Normal"), + visitorSK: correctSK, + skipXTCP: true, + }, + { + proxyName: "with-encryption", + bindPortName: port.GenName("WithEncryption"), + visitorSK: correctSK, + commonExtraConfig: "transport.useEncryption = true", + skipXTCP: true, + }, + { + proxyName: "with-compression", + bindPortName: port.GenName("WithCompression"), + visitorSK: correctSK, + commonExtraConfig: "transport.useCompression = true", + skipXTCP: true, + }, + { + proxyName: "with-encryption-and-compression", + bindPortName: port.GenName("WithEncryptionAndCompression"), + visitorSK: correctSK, + commonExtraConfig: ` + transport.useEncryption = true + transport.useCompression = true + `, + skipXTCP: true, + }, + { + proxyName: "with-error-sk", + bindPortName: port.GenName("WithErrorSK"), + visitorSK: wrongSK, + expectError: true, + }, + { + proxyName: "allowed-user", + bindPortName: port.GenName("AllowedUser"), + visitorSK: correctSK, + proxyExtraConfig: `allowUsers = ["another", "user2"]`, + visitorExtraConfig: `serverUser = "user1"`, + deployUser2Client: true, + }, + { + proxyName: "not-allowed-user", + bindPortName: port.GenName("NotAllowedUser"), + visitorSK: correctSK, + proxyExtraConfig: `allowUsers = ["invalid"]`, + visitorExtraConfig: `serverUser = "user1"`, + expectError: true, + }, + { + proxyName: "allow-all", + bindPortName: port.GenName("AllowAll"), + visitorSK: correctSK, + proxyExtraConfig: `allowUsers = ["*"]`, + visitorExtraConfig: `serverUser = "user1"`, + deployUser2Client: true, + }, + } + + // build all client config + for _, test := range tests { + clientServerConf += getProxyServerConf(test.proxyName, test.commonExtraConfig+"\n"+test.proxyExtraConfig) + "\n" + } + for _, test := range tests { + config := getProxyVisitorConf( + test.proxyName, test.bindPortName, test.visitorSK, test.commonExtraConfig+"\n"+test.visitorExtraConfig, + ) + "\n" + if test.deployUser2Client { + clientUser2VisitorConf += config + } else { + clientVisitorConf += config + } + } + // run frps and frpc + f.RunProcesses([]string{serverConf}, []string{clientServerConf, clientVisitorConf, clientUser2VisitorConf}) + + for _, test := range tests { + timeout := time.Second + if t == "xtcp" { + if test.skipXTCP { + continue + } + timeout = 10 * time.Second + } + framework.NewRequestExpect(f). + RequestModify(func(r *request.Request) { + r.Timeout(timeout) + }). + Protocol(protocol). + PortName(test.bindPortName). + Explain(test.proxyName). + ExpectError(test.expectError). + Ensure() + } + }) + } + }) + + ginkgo.Describe("TCPMUX", func() { + ginkgo.It("Type tcpmux", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + tcpmuxHTTPConnectPortName := port.GenName("TCPMUX") + serverConf += fmt.Sprintf(` + tcpmuxHTTPConnectPort = {{ .%s }} + `, tcpmuxHTTPConnectPortName) + + getProxyConf := func(proxyName string, extra string) string { + return fmt.Sprintf(` + [[proxies]] + name = "%s" + type = "tcpmux" + multiplexer = "httpconnect" + localPort = {{ .%s }} + customDomains = ["%s"] + `+extra, proxyName, port.GenName(proxyName), proxyName) + } + + tests := []struct { + proxyName string + extraConfig string + }{ + { + proxyName: "normal", + }, + { + proxyName: "with-encryption", + extraConfig: "transport.useEncryption = true", + }, + { + proxyName: "with-compression", + extraConfig: "transport.useCompression = true", + }, + { + proxyName: "with-encryption-and-compression", + extraConfig: ` + transport.useEncryption = true + transport.useCompression = true + `, + }, + } + + // build all client config + for _, test := range tests { + clientConf += getProxyConf(test.proxyName, test.extraConfig) + "\n" + + localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(f.AllocPort()), streamserver.WithRespContent([]byte(test.proxyName))) + f.RunServer(port.GenName(test.proxyName), localServer) + } + + // run frps and frpc + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // Request without HTTP connect should get error + framework.NewRequestExpect(f). + PortName(tcpmuxHTTPConnectPortName). + ExpectError(true). + Explain("request without HTTP connect expect error"). + Ensure() + + proxyURL := fmt.Sprintf("http://127.0.0.1:%d", f.PortByName(tcpmuxHTTPConnectPortName)) + // Request with incorrect connect hostname + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.Addr("invalid").Proxy(proxyURL) + }).ExpectError(true).Explain("request without HTTP connect expect error").Ensure() + + // Request with correct connect hostname + for _, test := range tests { + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.Addr(test.proxyName).Proxy(proxyURL) + }).ExpectResp([]byte(test.proxyName)).Explain(test.proxyName).Ensure() + } + }) + }) +}) diff --git a/test/e2e/v1/basic/client.go b/test/e2e/v1/basic/client.go new file mode 100644 index 00000000000..111a238a61e --- /dev/null +++ b/test/e2e/v1/basic/client.go @@ -0,0 +1,136 @@ +package basic + +import ( + "fmt" + "strconv" + "strings" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/request" + clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" +) + +var _ = ginkgo.Describe("[Feature: ClientManage]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("Update && Reload API", func() { + serverConf := consts.DefaultServerConfig + + adminPort := f.AllocPort() + + p1Port := f.AllocPort() + p2Port := f.AllocPort() + p3Port := f.AllocPort() + + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + webServer.port = %d + + [[proxies]] + name = "p1" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + + [[proxies]] + name = "p2" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + + [[proxies]] + name = "p3" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, adminPort, + framework.TCPEchoServerPort, p1Port, + framework.TCPEchoServerPort, p2Port, + framework.TCPEchoServerPort, p3Port) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(p1Port).Ensure() + framework.NewRequestExpect(f).Port(p2Port).Ensure() + framework.NewRequestExpect(f).Port(p3Port).Ensure() + + client := clientsdk.New("127.0.0.1", adminPort) + conf, err := client.GetConfig() + framework.ExpectNoError(err) + + newP2Port := f.AllocPort() + // change p2 port and remove p3 proxy + newClientConf := strings.ReplaceAll(conf, strconv.Itoa(p2Port), strconv.Itoa(newP2Port)) + p3Index := strings.LastIndex(newClientConf, "[[proxies]]") + if p3Index >= 0 { + newClientConf = newClientConf[:p3Index] + } + + err = client.UpdateConfig(newClientConf) + framework.ExpectNoError(err) + + err = client.Reload() + framework.ExpectNoError(err) + time.Sleep(time.Second) + + framework.NewRequestExpect(f).Port(p1Port).Explain("p1 port").Ensure() + framework.NewRequestExpect(f).Port(p2Port).Explain("original p2 port").ExpectError(true).Ensure() + framework.NewRequestExpect(f).Port(newP2Port).Explain("new p2 port").Ensure() + framework.NewRequestExpect(f).Port(p3Port).Explain("p3 port").ExpectError(true).Ensure() + }) + + ginkgo.It("healthz", func() { + serverConf := consts.DefaultServerConfig + + dashboardPort := f.AllocPort() + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + webServer.addr = "0.0.0.0" + webServer.port = %d + webServer.user = "admin" + webServer.password = "admin" + `, dashboardPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.HTTP().HTTPPath("/healthz") + }).Port(dashboardPort).ExpectResp([]byte("")).Ensure() + + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.HTTP().HTTPPath("/") + }).Port(dashboardPort). + Ensure(framework.ExpectResponseCode(401)) + }) + + ginkgo.It("stop", func() { + serverConf := consts.DefaultServerConfig + + adminPort := f.AllocPort() + testPort := f.AllocPort() + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + webServer.port = %d + + [[proxies]] + name = "test" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, adminPort, framework.TCPEchoServerPort, testPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(testPort).Ensure() + + client := clientsdk.New("127.0.0.1", adminPort) + err := client.Stop() + framework.ExpectNoError(err) + + time.Sleep(3 * time.Second) + + // frpc stopped so the port is not listened, expect error + framework.NewRequestExpect(f).Port(testPort).ExpectError(true).Ensure() + }) +}) diff --git a/test/e2e/v1/basic/client_server.go b/test/e2e/v1/basic/client_server.go new file mode 100644 index 00000000000..082c0de591a --- /dev/null +++ b/test/e2e/v1/basic/client_server.go @@ -0,0 +1,325 @@ +package basic + +import ( + "fmt" + "strings" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/cert" + "github.com/fatedier/frp/test/e2e/pkg/port" +) + +type generalTestConfigures struct { + server string + client string + clientPrefix string + client2 string + client2Prefix string + testDelay time.Duration + expectError bool +} + +func renderBindPortConfig(protocol string) string { + if protocol == "kcp" { + return fmt.Sprintf(`kcpBindPort = {{ .%s }}`, consts.PortServerName) + } else if protocol == "quic" { + return fmt.Sprintf(`quicBindPort = {{ .%s }}`, consts.PortServerName) + } + return "" +} + +func runClientServerTest(f *framework.Framework, configures *generalTestConfigures) { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + if configures.clientPrefix != "" { + clientConf = configures.clientPrefix + } + + serverConf += fmt.Sprintf(` + %s + `, configures.server) + + tcpPortName := port.GenName("TCP") + udpPortName := port.GenName("UDP") + clientConf += fmt.Sprintf(` + %s + + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = {{ .%s }} + + [[proxies]] + name = "udp" + type = "udp" + localPort = {{ .%s }} + remotePort = {{ .%s }} + `, configures.client, + framework.TCPEchoServerPort, tcpPortName, + framework.UDPEchoServerPort, udpPortName, + ) + + clientConfs := []string{clientConf} + if configures.client2 != "" { + client2Conf := consts.DefaultClientConfig + if configures.client2Prefix != "" { + client2Conf = configures.client2Prefix + } + client2Conf += fmt.Sprintf(` + %s + `, configures.client2) + clientConfs = append(clientConfs, client2Conf) + } + + f.RunProcesses([]string{serverConf}, clientConfs) + + if configures.testDelay > 0 { + time.Sleep(configures.testDelay) + } + + framework.NewRequestExpect(f).PortName(tcpPortName).ExpectError(configures.expectError).Explain("tcp proxy").Ensure() + framework.NewRequestExpect(f).Protocol("udp"). + PortName(udpPortName).ExpectError(configures.expectError).Explain("udp proxy").Ensure() +} + +// defineClientServerTest test a normal tcp and udp proxy with specified TestConfigures. +func defineClientServerTest(desc string, f *framework.Framework, configures *generalTestConfigures) { + ginkgo.It(desc, func() { + runClientServerTest(f, configures) + }) +} + +var _ = ginkgo.Describe("[Feature: Client-Server]", func() { + f := framework.NewDefaultFramework() + + ginkgo.Describe("Protocol", func() { + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} + for _, protocol := range supportProtocols { + configures := &generalTestConfigures{ + server: fmt.Sprintf(` + %s + `, renderBindPortConfig(protocol)), + client: fmt.Sprintf(`transport.protocol = "%s"`, protocol), + } + defineClientServerTest(protocol, f, configures) + } + }) + + // wss is special, it needs to be tested separately. + // frps only supports ws, so there should be a proxy to terminate TLS before frps. + ginkgo.Describe("Protocol wss", func() { + wssPort := f.AllocPort() + configures := &generalTestConfigures{ + clientPrefix: fmt.Sprintf(` + serverAddr = "127.0.0.1" + serverPort = %d + loginFailExit = false + transport.protocol = "wss" + log.level = "trace" + `, wssPort), + // Due to the fact that frps cannot directly accept wss connections, we use the https2http plugin of another frpc to terminate TLS. + client2: fmt.Sprintf(` + [[proxies]] + name = "wss2ws" + type = "tcp" + remotePort = %d + [proxies.plugin] + type = "https2http" + localAddr = "127.0.0.1:{{ .%s }}" + `, wssPort, consts.PortServerName), + testDelay: 10 * time.Second, + } + + defineClientServerTest("wss", f, configures) + }) + + ginkgo.Describe("Authentication", func() { + defineClientServerTest("Token Correct", f, &generalTestConfigures{ + server: `auth.token = "123456"`, + client: `auth.token = "123456"`, + }) + + defineClientServerTest("Token Incorrect", f, &generalTestConfigures{ + server: `auth.token = "123456"`, + client: `auth.token = "invalid"`, + expectError: true, + }) + }) + + ginkgo.Describe("TLS", func() { + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} + for _, protocol := range supportProtocols { + tmp := protocol + // Since v0.50.0, the default value of tls_enable has been changed to true. + // Therefore, here it needs to be set as false to test the scenario of turning it off. + defineClientServerTest("Disable TLS over "+strings.ToUpper(tmp), f, &generalTestConfigures{ + server: fmt.Sprintf(` + %s + `, renderBindPortConfig(protocol)), + client: fmt.Sprintf(`transport.tls.enable = false + transport.protocol = "%s" + `, protocol), + }) + } + + defineClientServerTest("enable tls force, client with TLS", f, &generalTestConfigures{ + server: "transport.tls.force = true", + }) + defineClientServerTest("enable tls force, client without TLS", f, &generalTestConfigures{ + server: "transport.tls.force = true", + client: "transport.tls.enable = false", + expectError: true, + }) + }) + + ginkgo.Describe("TLS with custom certificate", func() { + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} + + var ( + caCrtPath string + serverCrtPath, serverKeyPath string + clientCrtPath, clientKeyPath string + ) + ginkgo.JustBeforeEach(func() { + generator := &cert.SelfSignedCertGenerator{} + artifacts, err := generator.Generate("127.0.0.1") + framework.ExpectNoError(err) + + caCrtPath = f.WriteTempFile("ca.crt", string(artifacts.CACert)) + serverCrtPath = f.WriteTempFile("server.crt", string(artifacts.Cert)) + serverKeyPath = f.WriteTempFile("server.key", string(artifacts.Key)) + generator.SetCA(artifacts.CACert, artifacts.CAKey) + _, err = generator.Generate("127.0.0.1") + framework.ExpectNoError(err) + clientCrtPath = f.WriteTempFile("client.crt", string(artifacts.Cert)) + clientKeyPath = f.WriteTempFile("client.key", string(artifacts.Key)) + }) + + for _, protocol := range supportProtocols { + tmp := protocol + + ginkgo.It("one-way authentication: "+tmp, func() { + runClientServerTest(f, &generalTestConfigures{ + server: fmt.Sprintf(` + %s + transport.tls.trustedCaFile = "%s" + `, renderBindPortConfig(tmp), caCrtPath), + client: fmt.Sprintf(` + transport.protocol = "%s" + transport.tls.certFile = "%s" + transport.tls.keyFile = "%s" + `, tmp, clientCrtPath, clientKeyPath), + }) + }) + + ginkgo.It("mutual authentication: "+tmp, func() { + runClientServerTest(f, &generalTestConfigures{ + server: fmt.Sprintf(` + %s + transport.tls.certFile = "%s" + transport.tls.keyFile = "%s" + transport.tls.trustedCaFile = "%s" + `, renderBindPortConfig(tmp), serverCrtPath, serverKeyPath, caCrtPath), + client: fmt.Sprintf(` + transport.protocol = "%s" + transport.tls.certFile = "%s" + transport.tls.keyFile = "%s" + transport.tls.trustedCaFile = "%s" + `, tmp, clientCrtPath, clientKeyPath, caCrtPath), + }) + }) + } + }) + + ginkgo.Describe("TLS with custom certificate and specified server name", func() { + var ( + caCrtPath string + serverCrtPath, serverKeyPath string + clientCrtPath, clientKeyPath string + ) + ginkgo.JustBeforeEach(func() { + generator := &cert.SelfSignedCertGenerator{} + artifacts, err := generator.Generate("example.com") + framework.ExpectNoError(err) + + caCrtPath = f.WriteTempFile("ca.crt", string(artifacts.CACert)) + serverCrtPath = f.WriteTempFile("server.crt", string(artifacts.Cert)) + serverKeyPath = f.WriteTempFile("server.key", string(artifacts.Key)) + generator.SetCA(artifacts.CACert, artifacts.CAKey) + _, err = generator.Generate("example.com") + framework.ExpectNoError(err) + clientCrtPath = f.WriteTempFile("client.crt", string(artifacts.Cert)) + clientKeyPath = f.WriteTempFile("client.key", string(artifacts.Key)) + }) + + ginkgo.It("mutual authentication", func() { + runClientServerTest(f, &generalTestConfigures{ + server: fmt.Sprintf(` + transport.tls.certFile = "%s" + transport.tls.keyFile = "%s" + transport.tls.trustedCaFile = "%s" + `, serverCrtPath, serverKeyPath, caCrtPath), + client: fmt.Sprintf(` + transport.tls.serverName = "example.com" + transport.tls.certFile = "%s" + transport.tls.keyFile = "%s" + transport.tls.trustedCaFile = "%s" + `, clientCrtPath, clientKeyPath, caCrtPath), + }) + }) + + ginkgo.It("mutual authentication with incorrect server name", func() { + runClientServerTest(f, &generalTestConfigures{ + server: fmt.Sprintf(` + transport.tls.certFile = "%s" + transport.tls.keyFile = "%s" + transport.tls.trustedCaFile = "%s" + `, serverCrtPath, serverKeyPath, caCrtPath), + client: fmt.Sprintf(` + transport.tls.serverName = "invalid.com" + transport.tls.certFile = "%s" + transport.tls.keyFile = "%s" + transport.tls.trustedCaFile = "%s" + `, clientCrtPath, clientKeyPath, caCrtPath), + expectError: true, + }) + }) + }) + + ginkgo.Describe("TLS with disable_custom_tls_first_byte set to false", func() { + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} + for _, protocol := range supportProtocols { + tmp := protocol + defineClientServerTest("TLS over "+strings.ToUpper(tmp), f, &generalTestConfigures{ + server: fmt.Sprintf(` + %s + `, renderBindPortConfig(protocol)), + client: fmt.Sprintf(` + transport.protocol = "%s" + transport.tls.disableCustomTLSFirstByte = false + `, protocol), + }) + } + }) + + ginkgo.Describe("IPv6 bind address", func() { + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} + for _, protocol := range supportProtocols { + tmp := protocol + defineClientServerTest("IPv6 bind address: "+strings.ToUpper(tmp), f, &generalTestConfigures{ + server: fmt.Sprintf(` + bindAddr = "::" + %s + `, renderBindPortConfig(protocol)), + client: fmt.Sprintf(` + transport.protocol = "%s" + `, protocol), + }) + } + }) +}) diff --git a/test/e2e/v1/basic/cmd.go b/test/e2e/v1/basic/cmd.go new file mode 100644 index 00000000000..9d3120fa9dc --- /dev/null +++ b/test/e2e/v1/basic/cmd.go @@ -0,0 +1,109 @@ +package basic + +import ( + "fmt" + "strconv" + "strings" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +const ( + ConfigValidStr = "syntax is ok" +) + +var _ = ginkgo.Describe("[Feature: Cmd]", func() { + f := framework.NewDefaultFramework() + + ginkgo.Describe("Verify", func() { + ginkgo.It("frps valid", func() { + path := f.GenerateConfigFile(` + bindAddr = "0.0.0.0" + bindPort = 7000 + `) + _, output, err := f.RunFrps("verify", "-c", path) + framework.ExpectNoError(err) + framework.ExpectTrue(strings.Contains(output, ConfigValidStr), "output: %s", output) + }) + ginkgo.It("frps invalid", func() { + path := f.GenerateConfigFile(` + bindAddr = "0.0.0.0" + bindPort = 70000 + `) + _, output, err := f.RunFrps("verify", "-c", path) + framework.ExpectNoError(err) + framework.ExpectTrue(!strings.Contains(output, ConfigValidStr), "output: %s", output) + }) + ginkgo.It("frpc valid", func() { + path := f.GenerateConfigFile(` + serverAddr = "0.0.0.0" + serverPort = 7000 + `) + _, output, err := f.RunFrpc("verify", "-c", path) + framework.ExpectNoError(err) + framework.ExpectTrue(strings.Contains(output, ConfigValidStr), "output: %s", output) + }) + ginkgo.It("frpc invalid", func() { + path := f.GenerateConfigFile(` + serverAddr = "0.0.0.0" + serverPort = 7000 + transport.protocol = "invalid" + `) + _, output, err := f.RunFrpc("verify", "-c", path) + framework.ExpectNoError(err) + framework.ExpectTrue(!strings.Contains(output, ConfigValidStr), "output: %s", output) + }) + }) + + ginkgo.Describe("Single proxy", func() { + ginkgo.It("TCP", func() { + serverPort := f.AllocPort() + _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort)) + framework.ExpectNoError(err) + + localPort := f.PortByName(framework.TCPEchoServerPort) + remotePort := f.AllocPort() + _, _, err = f.RunFrpc("tcp", "-s", fmt.Sprintf("127.0.0.1:%d", serverPort), "-t", "123", "-u", "test", + "-l", strconv.Itoa(localPort), "-r", strconv.Itoa(remotePort), "-n", "tcp_test") + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + + ginkgo.It("UDP", func() { + serverPort := f.AllocPort() + _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort)) + framework.ExpectNoError(err) + + localPort := f.PortByName(framework.UDPEchoServerPort) + remotePort := f.AllocPort() + _, _, err = f.RunFrpc("udp", "-s", fmt.Sprintf("127.0.0.1:%d", serverPort), "-t", "123", "-u", "test", + "-l", strconv.Itoa(localPort), "-r", strconv.Itoa(remotePort), "-n", "udp_test") + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Protocol("udp"). + Port(remotePort).Ensure() + }) + + ginkgo.It("HTTP", func() { + serverPort := f.AllocPort() + vhostHTTPPort := f.AllocPort() + _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort), "--vhost_http_port", strconv.Itoa(vhostHTTPPort)) + framework.ExpectNoError(err) + + _, _, err = f.RunFrpc("http", "-s", "127.0.0.1:"+strconv.Itoa(serverPort), "-t", "123", "-u", "test", + "-n", "udp_test", "-l", strconv.Itoa(f.PortByName(framework.HTTPSimpleServerPort)), + "--custom_domain", "test.example.com") + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("test.example.com") + }). + Ensure() + }) + }) +}) diff --git a/test/e2e/v1/basic/config.go b/test/e2e/v1/basic/config.go new file mode 100644 index 00000000000..3aba9ae089d --- /dev/null +++ b/test/e2e/v1/basic/config.go @@ -0,0 +1,84 @@ +package basic + +import ( + "fmt" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/port" +) + +var _ = ginkgo.Describe("[Feature: Config]", func() { + f := framework.NewDefaultFramework() + + ginkgo.Describe("Template", func() { + ginkgo.It("render by env", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + portName := port.GenName("TCP") + serverConf += fmt.Sprintf(` + auth.token = "{{ %s{{ .Envs.FRP_TOKEN }}%s }}" + `, "`", "`") + + clientConf += fmt.Sprintf(` + auth.token = "{{ %s{{ .Envs.FRP_TOKEN }}%s }}" + + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = {{ .%s }} + `, "`", "`", framework.TCPEchoServerPort, portName) + + f.SetEnvs([]string{"FRP_TOKEN=123"}) + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).PortName(portName).Ensure() + }) + }) + + ginkgo.Describe("Includes", func() { + ginkgo.It("split tcp proxies into different files", func() { + serverPort := f.AllocPort() + serverConfigPath := f.GenerateConfigFile(fmt.Sprintf(` + bindAddr = "0.0.0.0" + bindPort = %d + `, serverPort)) + + remotePort := f.AllocPort() + proxyConfigPath := f.GenerateConfigFile(fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = %d + remotePort = %d + `, f.PortByName(framework.TCPEchoServerPort), remotePort)) + + remotePort2 := f.AllocPort() + proxyConfigPath2 := f.GenerateConfigFile(fmt.Sprintf(` + [[proxies]] + name = "tcp2" + type = "tcp" + localPort = %d + remotePort = %d + `, f.PortByName(framework.TCPEchoServerPort), remotePort2)) + + clientConfigPath := f.GenerateConfigFile(fmt.Sprintf(` + serverPort = %d + includes = ["%s","%s"] + `, serverPort, proxyConfigPath, proxyConfigPath2)) + + _, _, err := f.RunFrps("-c", serverConfigPath) + framework.ExpectNoError(err) + + _, _, err = f.RunFrpc("-c", clientConfigPath) + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + framework.NewRequestExpect(f).Port(remotePort2).Ensure() + }) + }) +}) diff --git a/test/e2e/v1/basic/http.go b/test/e2e/v1/basic/http.go new file mode 100644 index 00000000000..e649dbfbe47 --- /dev/null +++ b/test/e2e/v1/basic/http.go @@ -0,0 +1,388 @@ +package basic + +import ( + "fmt" + "net/http" + "net/url" + "strconv" + + "github.com/gorilla/websocket" + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/mock/server/httpserver" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: HTTP]", func() { + f := framework.NewDefaultFramework() + + getDefaultServerConf := func(vhostHTTPPort int) string { + conf := consts.DefaultServerConfig + ` + vhostHTTPPort = %d + ` + return fmt.Sprintf(conf, vhostHTTPPort) + } + newHTTPServer := func(port int, respContent string) *httpserver.Server { + return httpserver.New( + httpserver.WithBindPort(port), + httpserver.WithHandler(framework.SpecifiedHTTPBodyHandler([]byte(respContent))), + ) + } + + ginkgo.It("HTTP route by locations", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + + fooPort := f.AllocPort() + f.RunServer("", newHTTPServer(fooPort, "foo")) + + barPort := f.AllocPort() + f.RunServer("", newHTTPServer(barPort, "bar")) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + locations = ["/","/foo"] + + [[proxies]] + name = "bar" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + locations = ["/bar"] + `, fooPort, barPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + tests := []struct { + path string + expectResp string + desc string + }{ + {path: "/foo", expectResp: "foo", desc: "foo path"}, + {path: "/bar", expectResp: "bar", desc: "bar path"}, + {path: "/other", expectResp: "foo", desc: "other path"}, + } + + for _, test := range tests { + framework.NewRequestExpect(f).Explain(test.desc).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTPPath(test.path) + }). + ExpectResp([]byte(test.expectResp)). + Ensure() + } + }) + + ginkgo.It("HTTP route by HTTP user", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + + fooPort := f.AllocPort() + f.RunServer("", newHTTPServer(fooPort, "foo")) + + barPort := f.AllocPort() + f.RunServer("", newHTTPServer(barPort, "bar")) + + otherPort := f.AllocPort() + f.RunServer("", newHTTPServer(otherPort, "other")) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + routeByHTTPUser = "user1" + + [[proxies]] + name = "bar" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + routeByHTTPUser = "user2" + + [[proxies]] + name = "catchAll" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + `, fooPort, barPort, otherPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // user1 + framework.NewRequestExpect(f).Explain("user1").Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTPAuth("user1", "") + }). + ExpectResp([]byte("foo")). + Ensure() + + // user2 + framework.NewRequestExpect(f).Explain("user2").Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTPAuth("user2", "") + }). + ExpectResp([]byte("bar")). + Ensure() + + // other user + framework.NewRequestExpect(f).Explain("other user").Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTPAuth("user3", "") + }). + ExpectResp([]byte("other")). + Ensure() + }) + + ginkgo.It("HTTP Basic Auth", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = {{ .%s }} + customDomains = ["normal.example.com"] + httpUser = "test" + httpPassword = "test" + `, framework.HTTPSimpleServerPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // not set auth header + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + }). + Ensure(framework.ExpectResponseCode(401)) + + // set incorrect auth header + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTPAuth("test", "invalid") + }). + Ensure(framework.ExpectResponseCode(401)) + + // set correct auth header + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTPAuth("test", "test") + }). + Ensure() + }) + + ginkgo.It("Wildcard domain", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = {{ .%s }} + customDomains = ["*.example.com"] + `, framework.HTTPSimpleServerPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // not match host + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("not-match.test.com") + }). + Ensure(framework.ExpectResponseCode(404)) + + // test.example.com match *.example.com + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("test.example.com") + }). + Ensure() + + // sub.test.example.com match *.example.com + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("sub.test.example.com") + }). + Ensure() + }) + + ginkgo.It("Subdomain", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + serverConf += ` + subdomainHost = "example.com" + ` + + fooPort := f.AllocPort() + f.RunServer("", newHTTPServer(fooPort, "foo")) + + barPort := f.AllocPort() + f.RunServer("", newHTTPServer(barPort, "bar")) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "http" + localPort = %d + subdomain = "foo" + + [[proxies]] + name = "bar" + type = "http" + localPort = %d + subdomain = "bar" + `, fooPort, barPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // foo + framework.NewRequestExpect(f).Explain("foo subdomain").Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("foo.example.com") + }). + ExpectResp([]byte("foo")). + Ensure() + + // bar + framework.NewRequestExpect(f).Explain("bar subdomain").Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("bar.example.com") + }). + ExpectResp([]byte("bar")). + Ensure() + }) + + ginkgo.It("Modify headers", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + + localPort := f.AllocPort() + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(req.Header.Get("X-From-Where"))) + })), + ) + f.RunServer("", localServer) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + requestHeaders.set.x-from-where = "frp" + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // not set auth header + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + }). + ExpectResp([]byte("frp")). // local http server will write this X-From-Where header to response body + Ensure() + }) + + ginkgo.It("Host Header Rewrite", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + + localPort := f.AllocPort() + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(req.Host)) + })), + ) + f.RunServer("", localServer) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + hostHeaderRewrite = "rewrite.example.com" + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + }). + ExpectResp([]byte("rewrite.example.com")). // local http server will write host header to response body + Ensure() + }) + + ginkgo.It("Websocket protocol", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + + upgrader := websocket.Upgrader{} + + localPort := f.AllocPort() + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + c, err := upgrader.Upgrade(w, req, nil) + if err != nil { + return + } + defer c.Close() + for { + mt, message, err := c.ReadMessage() + if err != nil { + break + } + err = c.WriteMessage(mt, message) + if err != nil { + break + } + } + })), + ) + + f.RunServer("", localServer) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = %d + customDomains = ["127.0.0.1"] + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + u := url.URL{Scheme: "ws", Host: "127.0.0.1:" + strconv.Itoa(vhostHTTPPort)} + c, _, err := websocket.DefaultDialer.Dial(u.String(), nil) + framework.ExpectNoError(err) + + err = c.WriteMessage(websocket.TextMessage, []byte(consts.TestString)) + framework.ExpectNoError(err) + + _, msg, err := c.ReadMessage() + framework.ExpectNoError(err) + framework.ExpectEqualValues(consts.TestString, string(msg)) + }) +}) diff --git a/test/e2e/v1/basic/server.go b/test/e2e/v1/basic/server.go new file mode 100644 index 00000000000..ff1225b8fc3 --- /dev/null +++ b/test/e2e/v1/basic/server.go @@ -0,0 +1,192 @@ +package basic + +import ( + "fmt" + "net" + "strconv" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/port" + "github.com/fatedier/frp/test/e2e/pkg/request" + clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" +) + +var _ = ginkgo.Describe("[Feature: Server Manager]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("Ports Whitelist", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + serverConf += ` + allowPorts = [ + { start = 20000, end = 25000 }, + { single = 25002 }, + { start = 30000, end = 50000 }, + ] + ` + + tcpPortName := port.GenName("TCP", port.WithRangePorts(20000, 25000)) + udpPortName := port.GenName("UDP", port.WithRangePorts(30000, 50000)) + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp-allowded-in-range" + type = "tcp" + localPort = {{ .%s }} + remotePort = {{ .%s }} + `, framework.TCPEchoServerPort, tcpPortName) + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp-port-not-allowed" + type = "tcp" + localPort = {{ .%s }} + remotePort = 25001 + `, framework.TCPEchoServerPort) + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp-port-unavailable" + type = "tcp" + localPort = {{ .%s }} + remotePort = {{ .%s }} + `, framework.TCPEchoServerPort, consts.PortServerName) + clientConf += fmt.Sprintf(` + [[proxies]] + name = "udp-allowed-in-range" + type = "udp" + localPort = {{ .%s }} + remotePort = {{ .%s }} + `, framework.UDPEchoServerPort, udpPortName) + clientConf += fmt.Sprintf(` + [[proxies]] + name = "udp-port-not-allowed" + type = "udp" + localPort = {{ .%s }} + remotePort = 25003 + `, framework.UDPEchoServerPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // TCP + // Allowed in range + framework.NewRequestExpect(f).PortName(tcpPortName).Ensure() + + // Not Allowed + framework.NewRequestExpect(f).Port(25001).ExpectError(true).Ensure() + + // Unavailable, already bind by frps + framework.NewRequestExpect(f).PortName(consts.PortServerName).ExpectError(true).Ensure() + + // UDP + // Allowed in range + framework.NewRequestExpect(f).Protocol("udp").PortName(udpPortName).Ensure() + + // Not Allowed + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.UDP().Port(25003) + }).ExpectError(true).Ensure() + }) + + ginkgo.It("Alloc Random Port", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + adminPort := f.AllocPort() + clientConf += fmt.Sprintf(` + webServer.port = %d + + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + + [[proxies]] + name = "udp" + type = "udp" + localPort = {{ .%s }} + `, adminPort, framework.TCPEchoServerPort, framework.UDPEchoServerPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + client := clientsdk.New("127.0.0.1", adminPort) + + // tcp random port + status, err := client.GetProxyStatus("tcp") + framework.ExpectNoError(err) + + _, portStr, err := net.SplitHostPort(status.RemoteAddr) + framework.ExpectNoError(err) + port, err := strconv.Atoi(portStr) + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Port(port).Ensure() + + // udp random port + status, err = client.GetProxyStatus("udp") + framework.ExpectNoError(err) + + _, portStr, err = net.SplitHostPort(status.RemoteAddr) + framework.ExpectNoError(err) + port, err = strconv.Atoi(portStr) + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Protocol("udp").Port(port).Ensure() + }) + + ginkgo.It("Port Reuse", func() { + serverConf := consts.DefaultServerConfig + // Use same port as PortServer + serverConf += fmt.Sprintf(` + vhostHTTPPort = {{ .%s }} + `, consts.PortServerName) + + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + [[proxies]] + name = "http" + type = "http" + localPort = {{ .%s }} + customDomains = ["example.com"] + `, framework.HTTPSimpleServerPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("example.com") + }).PortName(consts.PortServerName).Ensure() + }) + + ginkgo.It("healthz", func() { + serverConf := consts.DefaultServerConfig + dashboardPort := f.AllocPort() + + // Use same port as PortServer + serverConf += fmt.Sprintf(` + vhostHTTPPort = {{ .%s }} + webServer.addr = "0.0.0.0" + webServer.port = %d + webServer.user = "admin" + webServer.password = "admin" + `, consts.PortServerName, dashboardPort) + + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + [[proxies]] + name = "http" + type = "http" + localPort = {{ .%s }} + customDomains = ["example.com"] + `, framework.HTTPSimpleServerPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.HTTP().HTTPPath("/healthz") + }).Port(dashboardPort).ExpectResp([]byte("")).Ensure() + + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.HTTP().HTTPPath("/") + }).Port(dashboardPort). + Ensure(framework.ExpectResponseCode(401)) + }) +}) diff --git a/test/e2e/v1/basic/tcpmux.go b/test/e2e/v1/basic/tcpmux.go new file mode 100644 index 00000000000..356a18be978 --- /dev/null +++ b/test/e2e/v1/basic/tcpmux.go @@ -0,0 +1,223 @@ +package basic + +import ( + "bufio" + "fmt" + "net" + "net/http" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + "github.com/fatedier/frp/test/e2e/pkg/request" + "github.com/fatedier/frp/test/e2e/pkg/rpc" +) + +var _ = ginkgo.Describe("[Feature: TCPMUX httpconnect]", func() { + f := framework.NewDefaultFramework() + + getDefaultServerConf := func(httpconnectPort int) string { + conf := consts.DefaultServerConfig + ` + tcpmuxHTTPConnectPort = %d + ` + return fmt.Sprintf(conf, httpconnectPort) + } + newServer := func(port int, respContent string) *streamserver.Server { + return streamserver.New( + streamserver.TCP, + streamserver.WithBindPort(port), + streamserver.WithRespContent([]byte(respContent)), + ) + } + + proxyURLWithAuth := func(username, password string, port int) string { + if username == "" { + return fmt.Sprintf("http://127.0.0.1:%d", port) + } + return fmt.Sprintf("http://%s:%s@127.0.0.1:%d", username, password, port) + } + + ginkgo.It("Route by HTTP user", func() { + vhostPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostPort) + + fooPort := f.AllocPort() + f.RunServer("", newServer(fooPort, "foo")) + + barPort := f.AllocPort() + f.RunServer("", newServer(barPort, "bar")) + + otherPort := f.AllocPort() + f.RunServer("", newServer(otherPort, "other")) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "tcpmux" + multiplexer = "httpconnect" + localPort = %d + customDomains = ["normal.example.com"] + routeByHTTPUser = "user1" + + [[proxies]] + name = "bar" + type = "tcpmux" + multiplexer = "httpconnect" + localPort = %d + customDomains = ["normal.example.com"] + routeByHTTPUser = "user2" + + [[proxies]] + name = "catchAll" + type = "tcpmux" + multiplexer = "httpconnect" + localPort = %d + customDomains = ["normal.example.com"] + `, fooPort, barPort, otherPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // user1 + framework.NewRequestExpect(f).Explain("user1"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("user1", "", vhostPort)) + }). + ExpectResp([]byte("foo")). + Ensure() + + // user2 + framework.NewRequestExpect(f).Explain("user2"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("user2", "", vhostPort)) + }). + ExpectResp([]byte("bar")). + Ensure() + + // other user + framework.NewRequestExpect(f).Explain("other user"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("user3", "", vhostPort)) + }). + ExpectResp([]byte("other")). + Ensure() + }) + + ginkgo.It("Proxy auth", func() { + vhostPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostPort) + + fooPort := f.AllocPort() + f.RunServer("", newServer(fooPort, "foo")) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "tcpmux" + multiplexer = "httpconnect" + localPort = %d + customDomains = ["normal.example.com"] + httpUser = "test" + httpPassword = "test" + `, fooPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // not set auth header + framework.NewRequestExpect(f).Explain("no auth"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("", "", vhostPort)) + }). + ExpectError(true). + Ensure() + + // set incorrect auth header + framework.NewRequestExpect(f).Explain("incorrect auth"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("test", "invalid", vhostPort)) + }). + ExpectError(true). + Ensure() + + // set correct auth header + framework.NewRequestExpect(f).Explain("correct auth"). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("test", "test", vhostPort)) + }). + ExpectResp([]byte("foo")). + Ensure() + }) + + ginkgo.It("TCPMux Passthrough", func() { + vhostPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostPort) + serverConf += ` + tcpmuxPassthrough = true + ` + + var ( + respErr error + connectRequestHost string + ) + newServer := func(port int) *streamserver.Server { + return streamserver.New( + streamserver.TCP, + streamserver.WithBindPort(port), + streamserver.WithCustomHandler(func(conn net.Conn) { + defer conn.Close() + + // read HTTP CONNECT request + bufioReader := bufio.NewReader(conn) + req, err := http.ReadRequest(bufioReader) + if err != nil { + respErr = err + return + } + connectRequestHost = req.Host + + // return ok response + res := util.OkResponse() + if res.Body != nil { + defer res.Body.Close() + } + _ = res.Write(conn) + + buf, err := rpc.ReadBytes(conn) + if err != nil { + respErr = err + return + } + _, _ = rpc.WriteBytes(conn, buf) + }), + ) + } + + localPort := f.AllocPort() + f.RunServer("", newServer(localPort)) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "tcpmux" + multiplexer = "httpconnect" + localPort = %d + customDomains = ["normal.example.com"] + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f). + RequestModify(func(r *request.Request) { + r.Addr("normal.example.com").Proxy(proxyURLWithAuth("", "", vhostPort)).Body([]byte("frp")) + }). + ExpectResp([]byte("frp")). + Ensure() + framework.ExpectNoError(respErr) + framework.ExpectEqualValues(connectRequestHost, "normal.example.com") + }) +}) diff --git a/test/e2e/v1/basic/xtcp.go b/test/e2e/v1/basic/xtcp.go new file mode 100644 index 00000000000..a5aaf67b81f --- /dev/null +++ b/test/e2e/v1/basic/xtcp.go @@ -0,0 +1,53 @@ +package basic + +import ( + "fmt" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/port" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: XTCP]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("Fallback To STCP", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + bindPortName := port.GenName("XTCP") + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "stcp" + localPort = {{ .%s }} + + [[visitors]] + name = "foo-visitor" + type = "stcp" + serverName = "foo" + bindPort = -1 + + [[visitors]] + name = "bar-visitor" + type = "xtcp" + serverName = "bar" + bindPort = {{ .%s }} + keepTunnelOpen = true + fallbackTo = "foo-visitor" + fallbackTimeoutMs = 200 + `, framework.TCPEchoServerPort, bindPortName) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + framework.NewRequestExpect(f). + RequestModify(func(r *request.Request) { + r.Timeout(time.Second) + }). + PortName(bindPortName). + Ensure() + }) +}) diff --git a/test/e2e/v1/features/bandwidth_limit.go b/test/e2e/v1/features/bandwidth_limit.go new file mode 100644 index 00000000000..5bf1c7967d1 --- /dev/null +++ b/test/e2e/v1/features/bandwidth_limit.go @@ -0,0 +1,108 @@ +package features + +import ( + "fmt" + "strings" + "time" + + "github.com/onsi/ginkgo/v2" + + plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + plugintest "github.com/fatedier/frp/test/e2e/legacy/plugin" + "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("Proxy Bandwidth Limit by Client", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + localPort := f.AllocPort() + localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort)) + f.RunServer("", localServer) + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = %d + remotePort = %d + transport.bandwidthLimit = "10KB" + `, localPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + content := strings.Repeat("a", 50*1024) // 5KB + start := time.Now() + framework.NewRequestExpect(f).Port(remotePort).RequestModify(func(r *request.Request) { + r.Body([]byte(content)).Timeout(30 * time.Second) + }).ExpectResp([]byte(content)).Ensure() + + duration := time.Since(start) + framework.Logf("request duration: %s", duration.String()) + + framework.ExpectTrue(duration.Seconds() > 8, "100Kb with 10KB limit, want > 8 seconds, but got %s", duration.String()) + }) + + ginkgo.It("Proxy Bandwidth Limit by Server", func() { + // new test plugin server + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.NewProxyContent{} + return &r + } + pluginPort := f.AllocPort() + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.NewProxyContent) + content.BandwidthLimit = "10KB" + content.BandwidthLimitMode = "server" + ret.Content = content + return &ret + } + pluginServer := plugintest.NewHTTPPluginServer(pluginPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["NewProxy"] + `, pluginPort) + clientConf := consts.DefaultClientConfig + + localPort := f.AllocPort() + localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort)) + f.RunServer("", localServer) + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = %d + remotePort = %d + `, localPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + content := strings.Repeat("a", 50*1024) // 5KB + start := time.Now() + framework.NewRequestExpect(f).Port(remotePort).RequestModify(func(r *request.Request) { + r.Body([]byte(content)).Timeout(30 * time.Second) + }).ExpectResp([]byte(content)).Ensure() + + duration := time.Since(start) + framework.Logf("request duration: %s", duration.String()) + + framework.ExpectTrue(duration.Seconds() > 8, "100Kb with 10KB limit, want > 8 seconds, but got %s", duration.String()) + }) +}) diff --git a/test/e2e/v1/features/chaos.go b/test/e2e/v1/features/chaos.go new file mode 100644 index 00000000000..f5f8b388c7f --- /dev/null +++ b/test/e2e/v1/features/chaos.go @@ -0,0 +1,64 @@ +package features + +import ( + "fmt" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" +) + +var _ = ginkgo.Describe("[Feature: Chaos]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("reconnect after frps restart", func() { + serverPort := f.AllocPort() + serverConfigPath := f.GenerateConfigFile(fmt.Sprintf(` + bindAddr = "0.0.0.0" + bindPort = %d + `, serverPort)) + + remotePort := f.AllocPort() + clientConfigPath := f.GenerateConfigFile(fmt.Sprintf(` + serverPort = %d + log.level = "trace" + + [[proxies]] + name = "tcp" + type = "tcp" + localPort = %d + remotePort = %d + `, serverPort, f.PortByName(framework.TCPEchoServerPort), remotePort)) + + // 1. start frps and frpc, expect request success + ps, _, err := f.RunFrps("-c", serverConfigPath) + framework.ExpectNoError(err) + + pc, _, err := f.RunFrpc("-c", clientConfigPath) + framework.ExpectNoError(err) + framework.NewRequestExpect(f).Port(remotePort).Ensure() + + // 2. stop frps, expect request failed + _ = ps.Stop() + time.Sleep(200 * time.Millisecond) + framework.NewRequestExpect(f).Port(remotePort).ExpectError(true).Ensure() + + // 3. restart frps, expect request success + _, _, err = f.RunFrps("-c", serverConfigPath) + framework.ExpectNoError(err) + time.Sleep(2 * time.Second) + framework.NewRequestExpect(f).Port(remotePort).Ensure() + + // 4. stop frpc, expect request failed + _ = pc.Stop() + time.Sleep(200 * time.Millisecond) + framework.NewRequestExpect(f).Port(remotePort).ExpectError(true).Ensure() + + // 5. restart frpc, expect request success + _, _, err = f.RunFrpc("-c", clientConfigPath) + framework.ExpectNoError(err) + time.Sleep(time.Second) + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) +}) diff --git a/test/e2e/v1/features/group.go b/test/e2e/v1/features/group.go new file mode 100644 index 00000000000..fe0c957ba8b --- /dev/null +++ b/test/e2e/v1/features/group.go @@ -0,0 +1,267 @@ +package features + +import ( + "fmt" + "strconv" + "sync" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/mock/server/httpserver" + "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: Group]", func() { + f := framework.NewDefaultFramework() + + newHTTPServer := func(port int, respContent string) *httpserver.Server { + return httpserver.New( + httpserver.WithBindPort(port), + httpserver.WithHandler(framework.SpecifiedHTTPBodyHandler([]byte(respContent))), + ) + } + + validateFooBarResponse := func(resp *request.Response) bool { + if string(resp.Content) == "foo" || string(resp.Content) == "bar" { + return true + } + return false + } + + doFooBarHTTPRequest := func(vhostPort int, host string) []string { + results := []string{} + var wait sync.WaitGroup + var mu sync.Mutex + expectFn := func() { + framework.NewRequestExpect(f).Port(vhostPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost(host) + }). + Ensure(validateFooBarResponse, func(resp *request.Response) bool { + mu.Lock() + defer mu.Unlock() + results = append(results, string(resp.Content)) + return true + }) + } + for i := 0; i < 10; i++ { + wait.Add(1) + go func() { + defer wait.Done() + expectFn() + }() + } + + wait.Wait() + return results + } + + ginkgo.Describe("Load Balancing", func() { + ginkgo.It("TCP", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + fooPort := f.AllocPort() + fooServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(fooPort), streamserver.WithRespContent([]byte("foo"))) + f.RunServer("", fooServer) + + barPort := f.AllocPort() + barServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(barPort), streamserver.WithRespContent([]byte("bar"))) + f.RunServer("", barServer) + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "tcp" + localPort = %d + remotePort = %d + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + + [[proxies]] + name = "bar" + type = "tcp" + localPort = %d + remotePort = %d + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + `, fooPort, remotePort, barPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + fooCount := 0 + barCount := 0 + for i := 0; i < 10; i++ { + framework.NewRequestExpect(f).Explain("times " + strconv.Itoa(i)).Port(remotePort).Ensure(func(resp *request.Response) bool { + switch string(resp.Content) { + case "foo": + fooCount++ + case "bar": + barCount++ + default: + return false + } + return true + }) + } + + framework.ExpectTrue(fooCount > 1 && barCount > 1, "fooCount: %d, barCount: %d", fooCount, barCount) + }) + }) + + ginkgo.Describe("Health Check", func() { + ginkgo.It("TCP", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + fooPort := f.AllocPort() + fooServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(fooPort), streamserver.WithRespContent([]byte("foo"))) + f.RunServer("", fooServer) + + barPort := f.AllocPort() + barServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(barPort), streamserver.WithRespContent([]byte("bar"))) + f.RunServer("", barServer) + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "tcp" + localPort = %d + remotePort = %d + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + healthCheck.type = "tcp" + healthCheck.intervalSeconds = 1 + + [[proxies]] + name = "bar" + type = "tcp" + localPort = %d + remotePort = %d + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + healthCheck.type = "tcp" + healthCheck.intervalSeconds = 1 + `, fooPort, remotePort, barPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // check foo and bar is ok + results := []string{} + for i := 0; i < 10; i++ { + framework.NewRequestExpect(f).Port(remotePort).Ensure(validateFooBarResponse, func(resp *request.Response) bool { + results = append(results, string(resp.Content)) + return true + }) + } + framework.ExpectContainElements(results, []string{"foo", "bar"}) + + // close bar server, check foo is ok + barServer.Close() + time.Sleep(2 * time.Second) + for i := 0; i < 10; i++ { + framework.NewRequestExpect(f).Port(remotePort).ExpectResp([]byte("foo")).Ensure() + } + + // resume bar server, check foo and bar is ok + f.RunServer("", barServer) + time.Sleep(2 * time.Second) + results = []string{} + for i := 0; i < 10; i++ { + framework.NewRequestExpect(f).Port(remotePort).Ensure(validateFooBarResponse, func(resp *request.Response) bool { + results = append(results, string(resp.Content)) + return true + }) + } + framework.ExpectContainElements(results, []string{"foo", "bar"}) + }) + + ginkgo.It("HTTP", func() { + vhostPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostPort) + clientConf := consts.DefaultClientConfig + + fooPort := f.AllocPort() + fooServer := newHTTPServer(fooPort, "foo") + f.RunServer("", fooServer) + + barPort := f.AllocPort() + barServer := newHTTPServer(barPort, "bar") + f.RunServer("", barServer) + + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "http" + localPort = %d + customDomains = ["example.com"] + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + healthCheck.type = "http" + healthCheck.intervalSeconds = 1 + healthCheck.path = "/healthz" + + [[proxies]] + name = "bar" + type = "http" + localPort = %d + customDomains = ["example.com"] + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + healthCheck.type = "http" + healthCheck.intervalSeconds = 1 + healthCheck.path = "/healthz" + `, fooPort, barPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // send first HTTP request + var contents []string + framework.NewRequestExpect(f).Port(vhostPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("example.com") + }). + Ensure(func(resp *request.Response) bool { + contents = append(contents, string(resp.Content)) + return true + }) + + // send second HTTP request, should be forwarded to another service + framework.NewRequestExpect(f).Port(vhostPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("example.com") + }). + Ensure(func(resp *request.Response) bool { + contents = append(contents, string(resp.Content)) + return true + }) + + framework.ExpectContainElements(contents, []string{"foo", "bar"}) + + // check foo and bar is ok + results := doFooBarHTTPRequest(vhostPort, "example.com") + framework.ExpectContainElements(results, []string{"foo", "bar"}) + + // close bar server, check foo is ok + barServer.Close() + time.Sleep(2 * time.Second) + results = doFooBarHTTPRequest(vhostPort, "example.com") + framework.ExpectContainElements(results, []string{"foo"}) + framework.ExpectNotContainElements(results, []string{"bar"}) + + // resume bar server, check foo and bar is ok + f.RunServer("", barServer) + time.Sleep(2 * time.Second) + results = doFooBarHTTPRequest(vhostPort, "example.com") + framework.ExpectContainElements(results, []string{"foo", "bar"}) + }) + }) +}) diff --git a/test/e2e/v1/features/heartbeat.go b/test/e2e/v1/features/heartbeat.go new file mode 100644 index 00000000000..4f5409fe7ce --- /dev/null +++ b/test/e2e/v1/features/heartbeat.go @@ -0,0 +1,47 @@ +package features + +import ( + "fmt" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" +) + +var _ = ginkgo.Describe("[Feature: Heartbeat]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("disable application layer heartbeat", func() { + serverPort := f.AllocPort() + serverConf := fmt.Sprintf(` + bindAddr = "0.0.0.0" + bindPort = %d + transport.heartbeatTimeout = -1 + transport.tcpMuxKeepaliveInterval = 2 + `, serverPort) + + remotePort := f.AllocPort() + clientConf := fmt.Sprintf(` + serverPort = %d + log.level = "trace" + transport.heartbeatInterval = -1 + transport.heartbeatTimeout = -1 + transport.tcpMuxKeepaliveInterval = 2 + + [[proxies]] + name = "tcp" + type = "tcp" + localPort = %d + remotePort = %d + `, serverPort, f.PortByName(framework.TCPEchoServerPort), remotePort) + + // run frps and frpc + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Protocol("tcp").Port(remotePort).Ensure() + + time.Sleep(5 * time.Second) + framework.NewRequestExpect(f).Protocol("tcp").Port(remotePort).Ensure() + }) +}) diff --git a/test/e2e/v1/features/monitor.go b/test/e2e/v1/features/monitor.go new file mode 100644 index 00000000000..5d4b8f9f908 --- /dev/null +++ b/test/e2e/v1/features/monitor.go @@ -0,0 +1,55 @@ +package features + +import ( + "fmt" + "strings" + "time" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: Monitor]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("Prometheus metrics", func() { + dashboardPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + enablePrometheus = true + webServer.addr = "0.0.0.0" + webServer.port = %d + `, dashboardPort) + + clientConf := consts.DefaultClientConfig + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + time.Sleep(500 * time.Millisecond) + + framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { + r.HTTP().Port(dashboardPort).HTTPPath("/metrics") + }).Ensure(func(resp *request.Response) bool { + log.Trace("prometheus metrics response: \n%s", resp.Content) + if resp.Code != 200 { + return false + } + if !strings.Contains(string(resp.Content), "traffic_in") { + return false + } + return true + }) + }) +}) diff --git a/test/e2e/v1/features/real_ip.go b/test/e2e/v1/features/real_ip.go new file mode 100644 index 00000000000..85338c62072 --- /dev/null +++ b/test/e2e/v1/features/real_ip.go @@ -0,0 +1,154 @@ +package features + +import ( + "bufio" + "fmt" + "net" + "net/http" + + "github.com/onsi/ginkgo/v2" + pp "github.com/pires/go-proxyproto" + + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/mock/server/httpserver" + "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + "github.com/fatedier/frp/test/e2e/pkg/request" + "github.com/fatedier/frp/test/e2e/pkg/rpc" +) + +var _ = ginkgo.Describe("[Feature: Real IP]", func() { + f := framework.NewDefaultFramework() + + ginkgo.It("HTTP X-Forwarded-For", func() { + vhostHTTPPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostHTTPPort) + + localPort := f.AllocPort() + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(req.Header.Get("X-Forwarded-For"))) + })), + ) + f.RunServer("", localServer) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + }). + ExpectResp([]byte("127.0.0.1")). + Ensure() + }) + + ginkgo.Describe("Proxy Protocol", func() { + ginkgo.It("TCP", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + localPort := f.AllocPort() + localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort), + streamserver.WithCustomHandler(func(c net.Conn) { + defer c.Close() + rd := bufio.NewReader(c) + ppHeader, err := pp.Read(rd) + if err != nil { + log.Error("read proxy protocol error: %v", err) + return + } + + for { + if _, err := rpc.ReadBytes(rd); err != nil { + return + } + + buf := []byte(ppHeader.SourceAddr.String()) + _, _ = rpc.WriteBytes(c, buf) + } + })) + f.RunServer("", localServer) + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = %d + remotePort = %d + transport.proxyProtocolVersion = "v2" + `, localPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure(func(resp *request.Response) bool { + log.Trace("ProxyProtocol get SourceAddr: %s", string(resp.Content)) + addr, err := net.ResolveTCPAddr("tcp", string(resp.Content)) + if err != nil { + return false + } + if addr.IP.String() != "127.0.0.1" { + return false + } + return true + }) + }) + + ginkgo.It("HTTP", func() { + vhostHTTPPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostHTTPPort) + + clientConf := consts.DefaultClientConfig + + localPort := f.AllocPort() + var srcAddrRecord string + localServer := streamserver.New(streamserver.TCP, streamserver.WithBindPort(localPort), + streamserver.WithCustomHandler(func(c net.Conn) { + defer c.Close() + rd := bufio.NewReader(c) + ppHeader, err := pp.Read(rd) + if err != nil { + log.Error("read proxy protocol error: %v", err) + return + } + srcAddrRecord = ppHeader.SourceAddr.String() + })) + f.RunServer("", localServer) + + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + transport.proxyProtocolVersion = "v2" + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(vhostHTTPPort).RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + }).Ensure(framework.ExpectResponseCode(404)) + + log.Trace("ProxyProtocol get SourceAddr: %s", srcAddrRecord) + addr, err := net.ResolveTCPAddr("tcp", srcAddrRecord) + framework.ExpectNoError(err, srcAddrRecord) + framework.ExpectEqualValues("127.0.0.1", addr.IP.String()) + }) + }) +}) diff --git a/test/e2e/v1/plugin/client.go b/test/e2e/v1/plugin/client.go new file mode 100644 index 00000000000..f544570ae7e --- /dev/null +++ b/test/e2e/v1/plugin/client.go @@ -0,0 +1,331 @@ +package plugin + +import ( + "crypto/tls" + "fmt" + "strconv" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/mock/server/httpserver" + "github.com/fatedier/frp/test/e2e/pkg/cert" + "github.com/fatedier/frp/test/e2e/pkg/port" + "github.com/fatedier/frp/test/e2e/pkg/request" +) + +var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { + f := framework.NewDefaultFramework() + + ginkgo.Describe("UnixDomainSocket", func() { + ginkgo.It("Expose a unix domain socket echo server", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + getProxyConf := func(proxyName string, portName string, extra string) string { + return fmt.Sprintf(` + [[proxies]] + name = "%s" + type = "tcp" + remotePort = {{ .%s }} + [proxies.plugin] + type = "unix_domain_socket" + unixPath = "{{ .%s }}" + `+extra, proxyName, portName, framework.UDSEchoServerAddr) + } + + tests := []struct { + proxyName string + portName string + extraConfig string + }{ + { + proxyName: "normal", + portName: port.GenName("Normal"), + }, + { + proxyName: "with-encryption", + portName: port.GenName("WithEncryption"), + extraConfig: "transport.useEncryption = true", + }, + { + proxyName: "with-compression", + portName: port.GenName("WithCompression"), + extraConfig: "transport.useCompression = true", + }, + { + proxyName: "with-encryption-and-compression", + portName: port.GenName("WithEncryptionAndCompression"), + extraConfig: ` + transport.useEncryption = true + transport.useCompression = true + `, + }, + } + + // build all client config + for _, test := range tests { + clientConf += getProxyConf(test.proxyName, test.portName, test.extraConfig) + "\n" + } + // run frps and frpc + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + for _, test := range tests { + framework.NewRequestExpect(f).Port(f.PortByName(test.portName)).Ensure() + } + }) + }) + + ginkgo.It("http_proxy", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + remotePort = %d + [proxies.plugin] + type = "http_proxy" + httpUser = "abc" + httpPassword = "123" + `, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // http proxy, no auth info + framework.NewRequestExpect(f).PortName(framework.HTTPSimpleServerPort).RequestModify(func(r *request.Request) { + r.HTTP().Proxy("http://127.0.0.1:" + strconv.Itoa(remotePort)) + }).Ensure(framework.ExpectResponseCode(407)) + + // http proxy, correct auth + framework.NewRequestExpect(f).PortName(framework.HTTPSimpleServerPort).RequestModify(func(r *request.Request) { + r.HTTP().Proxy("http://abc:123@127.0.0.1:" + strconv.Itoa(remotePort)) + }).Ensure() + + // connect TCP server by CONNECT method + framework.NewRequestExpect(f).PortName(framework.TCPEchoServerPort).RequestModify(func(r *request.Request) { + r.TCP().Proxy("http://abc:123@127.0.0.1:" + strconv.Itoa(remotePort)) + }) + }) + + ginkgo.It("socks5 proxy", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + remotePort = %d + [proxies.plugin] + type = "socks5" + username = "abc" + password = "123" + `, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // http proxy, no auth info + framework.NewRequestExpect(f).PortName(framework.TCPEchoServerPort).RequestModify(func(r *request.Request) { + r.TCP().Proxy("socks5://127.0.0.1:" + strconv.Itoa(remotePort)) + }).ExpectError(true).Ensure() + + // http proxy, correct auth + framework.NewRequestExpect(f).PortName(framework.TCPEchoServerPort).RequestModify(func(r *request.Request) { + r.TCP().Proxy("socks5://abc:123@127.0.0.1:" + strconv.Itoa(remotePort)) + }).Ensure() + }) + + ginkgo.It("static_file", func() { + vhostPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostPort) + clientConf := consts.DefaultClientConfig + + remotePort := f.AllocPort() + f.WriteTempFile("test_static_file", "foo") + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + remotePort = %d + [proxies.plugin] + type = "static_file" + localPath = "%s" + + [[proxies]] + name = "http" + type = "http" + customDomains = ["example.com"] + [proxies.plugin] + type = "static_file" + localPath = "%s" + + [[proxies]] + name = "http-with-auth" + type = "http" + customDomains = ["other.example.com"] + [proxies.plugin] + type = "static_file" + localPath = "%s" + httpUser = "abc" + httpPassword = "123" + `, remotePort, f.TempDirectory, f.TempDirectory, f.TempDirectory) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // from tcp proxy + framework.NewRequestExpect(f).Request( + framework.NewHTTPRequest().HTTPPath("/test_static_file").Port(remotePort), + ).ExpectResp([]byte("foo")).Ensure() + + // from http proxy without auth + framework.NewRequestExpect(f).Request( + framework.NewHTTPRequest().HTTPHost("example.com").HTTPPath("/test_static_file").Port(vhostPort), + ).ExpectResp([]byte("foo")).Ensure() + + // from http proxy with auth + framework.NewRequestExpect(f).Request( + framework.NewHTTPRequest().HTTPHost("other.example.com").HTTPPath("/test_static_file").Port(vhostPort).HTTPAuth("abc", "123"), + ).ExpectResp([]byte("foo")).Ensure() + }) + + ginkgo.It("http2https", func() { + serverConf := consts.DefaultServerConfig + vhostHTTPPort := f.AllocPort() + serverConf += fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostHTTPPort) + + localPort := f.AllocPort() + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + [[proxies]] + name = "http2https" + type = "http" + customDomains = ["example.com"] + [proxies.plugin] + type = "http2https" + localAddr = "127.0.0.1:%d" + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + tlsConfig, err := transport.NewServerTLSConfig("", "", "") + framework.ExpectNoError(err) + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithTLSConfig(tlsConfig), + httpserver.WithResponse([]byte("test")), + ) + f.RunServer("", localServer) + + framework.NewRequestExpect(f). + Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("example.com") + }). + ExpectResp([]byte("test")). + Ensure() + }) + + ginkgo.It("https2http", func() { + generator := &cert.SelfSignedCertGenerator{} + artifacts, err := generator.Generate("example.com") + framework.ExpectNoError(err) + crtPath := f.WriteTempFile("server.crt", string(artifacts.Cert)) + keyPath := f.WriteTempFile("server.key", string(artifacts.Key)) + + serverConf := consts.DefaultServerConfig + vhostHTTPSPort := f.AllocPort() + serverConf += fmt.Sprintf(` + vhostHTTPSPort = %d + `, vhostHTTPSPort) + + localPort := f.AllocPort() + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + [[proxies]] + name = "https2http" + type = "https" + customDomains = ["example.com"] + [proxies.plugin] + type = "https2http" + localAddr = "127.0.0.1:%d" + crtPath = "%s" + keyPath = "%s" + `, localPort, crtPath, keyPath) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithResponse([]byte("test")), + ) + f.RunServer("", localServer) + + framework.NewRequestExpect(f). + Port(vhostHTTPSPort). + RequestModify(func(r *request.Request) { + r.HTTPS().HTTPHost("example.com").TLSConfig(&tls.Config{ + ServerName: "example.com", + InsecureSkipVerify: true, + }) + }). + ExpectResp([]byte("test")). + Ensure() + }) + + ginkgo.It("https2https", func() { + generator := &cert.SelfSignedCertGenerator{} + artifacts, err := generator.Generate("example.com") + framework.ExpectNoError(err) + crtPath := f.WriteTempFile("server.crt", string(artifacts.Cert)) + keyPath := f.WriteTempFile("server.key", string(artifacts.Key)) + + serverConf := consts.DefaultServerConfig + vhostHTTPSPort := f.AllocPort() + serverConf += fmt.Sprintf(` + vhostHTTPSPort = %d + `, vhostHTTPSPort) + + localPort := f.AllocPort() + clientConf := consts.DefaultClientConfig + fmt.Sprintf(` + [[proxies]] + name = "https2https" + type = "https" + customDomains = ["example.com"] + [proxies.plugin] + type = "https2https" + localAddr = "127.0.0.1:%d" + crtPath = "%s" + keyPath = "%s" + `, localPort, crtPath, keyPath) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + tlsConfig, err := transport.NewServerTLSConfig("", "", "") + framework.ExpectNoError(err) + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithResponse([]byte("test")), + httpserver.WithTLSConfig(tlsConfig), + ) + f.RunServer("", localServer) + + framework.NewRequestExpect(f). + Port(vhostHTTPSPort). + RequestModify(func(r *request.Request) { + r.HTTPS().HTTPHost("example.com").TLSConfig(&tls.Config{ + ServerName: "example.com", + InsecureSkipVerify: true, + }) + }). + ExpectResp([]byte("test")). + Ensure() + }) +}) diff --git a/test/e2e/v1/plugin/server.go b/test/e2e/v1/plugin/server.go new file mode 100644 index 00000000000..02e8469d57b --- /dev/null +++ b/test/e2e/v1/plugin/server.go @@ -0,0 +1,415 @@ +package plugin + +import ( + "fmt" + "time" + + "github.com/onsi/ginkgo/v2" + + plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" +) + +var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { + f := framework.NewDefaultFramework() + + ginkgo.Describe("Login", func() { + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.LoginContent{} + return &r + } + + ginkgo.It("Auth for custom meta token", func() { + localPort := f.AllocPort() + + clientAddressGot := false + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.LoginContent) + if content.ClientAddress != "" { + clientAddressGot = true + } + if content.Metas["token"] == "123" { + ret.Unchange = true + } else { + ret.Reject = true + ret.RejectReason = "invalid token" + } + return &ret + } + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "user-manager" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["Login"] + `, localPort) + clientConf := consts.DefaultClientConfig + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + metadatas.token = "123" + + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + remotePort2 := f.AllocPort() + invalidTokenClientConf := consts.DefaultClientConfig + fmt.Sprintf(` + [[proxies]] + name = "tcp2" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort2) + + f.RunProcesses([]string{serverConf}, []string{clientConf, invalidTokenClientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + framework.NewRequestExpect(f).Port(remotePort2).ExpectError(true).Ensure() + + framework.ExpectTrue(clientAddressGot) + }) + }) + + ginkgo.Describe("NewProxy", func() { + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.NewProxyContent{} + return &r + } + + ginkgo.It("Validate Info", func() { + localPort := f.AllocPort() + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.NewProxyContent) + if content.ProxyName == "tcp" { + ret.Unchange = true + } else { + ret.Reject = true + } + return &ret + } + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["NewProxy"] + `, localPort) + clientConf := consts.DefaultClientConfig + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + + ginkgo.It("Mofify RemotePort", func() { + localPort := f.AllocPort() + remotePort := f.AllocPort() + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.NewProxyContent) + content.RemotePort = remotePort + ret.Content = content + return &ret + } + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["NewProxy"] + `, localPort) + clientConf := consts.DefaultClientConfig + + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = 0 + `, framework.TCPEchoServerPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + }) + + ginkgo.Describe("CloseProxy", func() { + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.CloseProxyContent{} + return &r + } + + ginkgo.It("Validate Info", func() { + localPort := f.AllocPort() + var recordProxyName string + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.CloseProxyContent) + recordProxyName = content.ProxyName + return &ret + } + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["CloseProxy"] + `, localPort) + clientConf := consts.DefaultClientConfig + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + _, clients := f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + + for _, c := range clients { + _ = c.Stop() + } + + time.Sleep(1 * time.Second) + + framework.ExpectEqual(recordProxyName, "tcp") + }) + }) + + ginkgo.Describe("Ping", func() { + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.PingContent{} + return &r + } + + ginkgo.It("Validate Info", func() { + localPort := f.AllocPort() + + var record string + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.PingContent) + record = content.Ping.PrivilegeKey + ret.Unchange = true + return &ret + } + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["Ping"] + `, localPort) + + remotePort := f.AllocPort() + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + transport.heartbeatInterval = 1 + auth.additionalScopes = ["HeartBeats"] + + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + + time.Sleep(3 * time.Second) + framework.ExpectNotEqual("", record) + }) + }) + + ginkgo.Describe("NewWorkConn", func() { + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.NewWorkConnContent{} + return &r + } + + ginkgo.It("Validate Info", func() { + localPort := f.AllocPort() + + var record string + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.NewWorkConnContent) + record = content.NewWorkConn.RunID + ret.Unchange = true + return &ret + } + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["NewWorkConn"] + `, localPort) + + remotePort := f.AllocPort() + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + + framework.ExpectNotEqual("", record) + }) + }) + + ginkgo.Describe("NewUserConn", func() { + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.NewUserConnContent{} + return &r + } + ginkgo.It("Validate Info", func() { + localPort := f.AllocPort() + + var record string + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.NewUserConnContent) + record = content.RemoteAddr + ret.Unchange = true + return &ret + } + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "127.0.0.1:%d" + path = "/handler" + ops = ["NewUserConn"] + `, localPort) + + remotePort := f.AllocPort() + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + + framework.ExpectNotEqual("", record) + }) + }) + + ginkgo.Describe("HTTPS Protocol", func() { + newFunc := func() *plugin.Request { + var r plugin.Request + r.Content = &plugin.NewUserConnContent{} + return &r + } + ginkgo.It("Validate Login Info, disable tls verify", func() { + localPort := f.AllocPort() + + var record string + handler := func(req *plugin.Request) *plugin.Response { + var ret plugin.Response + content := req.Content.(*plugin.NewUserConnContent) + record = content.RemoteAddr + ret.Unchange = true + return &ret + } + tlsConfig, err := transport.NewServerTLSConfig("", "", "") + framework.ExpectNoError(err) + pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, tlsConfig) + + f.RunServer("", pluginServer) + + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + [[httpPlugins]] + name = "test" + addr = "https://127.0.0.1:%d" + path = "/handler" + ops = ["NewUserConn"] + `, localPort) + + remotePort := f.AllocPort() + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "tcp" + type = "tcp" + localPort = {{ .%s }} + remotePort = %d + `, framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + + framework.ExpectNotEqual("", record) + }) + }) +}) diff --git a/test/e2e/v1/plugin/utils.go b/test/e2e/v1/plugin/utils.go new file mode 100644 index 00000000000..51de01d9383 --- /dev/null +++ b/test/e2e/v1/plugin/utils.go @@ -0,0 +1,41 @@ +package plugin + +import ( + "crypto/tls" + "encoding/json" + "io" + "net/http" + + plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/test/e2e/mock/server/httpserver" +) + +type Handler func(req *plugin.Request) *plugin.Response + +type NewPluginRequest func() *plugin.Request + +func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler Handler, tlsConfig *tls.Config) *httpserver.Server { + return httpserver.New( + httpserver.WithBindPort(port), + httpserver.WithTLSConfig(tlsConfig), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + r := newFunc() + buf, err := io.ReadAll(req.Body) + if err != nil { + w.WriteHeader(500) + return + } + log.Trace("plugin request: %s", string(buf)) + err = json.Unmarshal(buf, &r) + if err != nil { + w.WriteHeader(500) + return + } + resp := handler(r) + buf, _ = json.Marshal(resp) + log.Trace("plugin response: %s", string(buf)) + _, _ = w.Write(buf) + })), + ) +} From 74255f711eba8fd2550ea2669cb4b03109d9ce44 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 13 Sep 2023 18:59:51 +0800 Subject: [PATCH 097/444] config: add some validations (#3610) --- cmd/frpc/sub/root.go | 2 +- pkg/config/v1/server.go | 12 ++++---- pkg/config/v1/validation/client.go | 19 ++++++++++-- pkg/config/v1/validation/common.go | 16 +++++++++-- pkg/config/v1/validation/proxy.go | 2 +- pkg/config/v1/validation/server.go | 33 +++++++++++++++++---- pkg/config/v1/validation/validation.go | 40 ++++++++++++++++++++++++++ pkg/config/v1/visitor.go | 2 +- test/e2e/v1/basic/config.go | 38 ++++++++++++++++++++++++ 9 files changed, 144 insertions(+), 20 deletions(-) diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index e1194fb863d..878114b108b 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -117,6 +117,7 @@ var rootCmd = &cobra.Command{ // Do not show command usage here. err := runClient(cfgFile) if err != nil { + fmt.Println(err) os.Exit(1) } return nil @@ -199,7 +200,6 @@ func parseClientCommonCfgFromCmd() (*v1.ClientCommonConfig, error) { func runClient(cfgFilePath string) error { cfg, pxyCfgs, visitorCfgs, isLegacyFormat, err := config.LoadClientConfig(cfgFilePath) if err != nil { - fmt.Println(err) return err } if isLegacyFormat { diff --git a/pkg/config/v1/server.go b/pkg/config/v1/server.go index 5a5316d8c25..53d758d8d4c 100644 --- a/pkg/config/v1/server.go +++ b/pkg/config/v1/server.go @@ -30,32 +30,32 @@ type ServerConfig struct { BindAddr string `json:"bindAddr,omitempty"` // BindPort specifies the port that the server listens on. By default, this // value is 7000. - BindPort int `json:"bindPort,omitempty" validate:"gte=0,lte=65535"` + BindPort int `json:"bindPort,omitempty"` // KCPBindPort specifies the KCP port that the server listens on. If this // value is 0, the server will not listen for KCP connections. - KCPBindPort int `json:"kcpBindPort,omitempty" validate:"gte=0,lte=65535"` + KCPBindPort int `json:"kcpBindPort,omitempty"` // QUICBindPort specifies the QUIC port that the server listens on. // Set this value to 0 will disable this feature. - QUICBindPort int `json:"quicBindPort,omitempty" validate:"gte=0,lte=65535"` + QUICBindPort int `json:"quicBindPort,omitempty"` // ProxyBindAddr specifies the address that the proxy binds to. This value // may be the same as BindAddr. ProxyBindAddr string `json:"proxyBindAddr,omitempty"` // VhostHTTPPort specifies the port that the server listens for HTTP Vhost // requests. If this value is 0, the server will not listen for HTTP // requests. - VhostHTTPPort int `json:"vhostHTTPPort,omitempty" validate:"gte=0,lte=65535"` + VhostHTTPPort int `json:"vhostHTTPPort,omitempty"` // VhostHTTPTimeout specifies the response header timeout for the Vhost // HTTP server, in seconds. By default, this value is 60. VhostHTTPTimeout int64 `json:"vhostHTTPTimeout,omitempty"` // VhostHTTPSPort specifies the port that the server listens for HTTPS // Vhost requests. If this value is 0, the server will not listen for HTTPS // requests. - VhostHTTPSPort int `json:"vhostHTTPSPort,omitempty" validate:"gte=0,lte=65535"` + VhostHTTPSPort int `json:"vhostHTTPSPort,omitempty"` // TCPMuxHTTPConnectPort specifies the port that the server listens for TCP // HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP // requests on one single port. If it's not - it will listen on this value for // HTTP CONNECT requests. - TCPMuxHTTPConnectPort int `json:"tcpmuxHTTPConnectPort,omitempty" validate:"gte=0,lte=65535"` + TCPMuxHTTPConnectPort int `json:"tcpmuxHTTPConnectPort,omitempty"` // If TCPMuxPassthrough is true, frps won't do any update on traffic. TCPMuxPassthrough bool `json:"tcpmuxPassthrough,omitempty"` // SubDomainHost specifies the domain that will be attached to sub-domains diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index 2868789ba8c..00214ddecc6 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -29,6 +29,21 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { warnings Warning errs error ) + if !lo.Contains(supportedAuthMethods, c.Auth.Method) { + errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", supportedAuthMethods)) + } + if !lo.Every(supportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { + errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", supportedAuthAdditionalScopes)) + } + + if err := validateLogConfig(&c.Log); err != nil { + errs = AppendError(errs, err) + } + + if err := validateWebServerConfig(&c.WebServer); err != nil { + errs = AppendError(errs, err) + } + if c.Transport.HeartbeatTimeout > 0 && c.Transport.HeartbeatInterval > 0 { if c.Transport.HeartbeatTimeout < c.Transport.HeartbeatInterval { errs = AppendError(errs, fmt.Errorf("invalid transport.heartbeatTimeout, heartbeat timeout should not less than heartbeat interval")) @@ -48,8 +63,8 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { warnings = AppendError(warnings, checkTLSConfig("transport.tls.trustedCaFile", c.Transport.TLS.TrustedCaFile)) } - if !lo.Contains([]string{"tcp", "kcp", "quic", "websocket", "wss"}, c.Transport.Protocol) { - errs = AppendError(errs, fmt.Errorf("invalid transport.protocol, only support tcp, kcp, quic, websocket, wss")) + if !lo.Contains(supportedTransportProtocols, c.Transport.Protocol) { + errs = AppendError(errs, fmt.Errorf("invalid transport.protocol, optional values are %v", supportedTransportProtocols)) } for _, f := range c.IncludeConfigFiles { diff --git a/pkg/config/v1/validation/common.go b/pkg/config/v1/validation/common.go index f2d5251ebb8..3409a9d6a98 100644 --- a/pkg/config/v1/validation/common.go +++ b/pkg/config/v1/validation/common.go @@ -17,6 +17,8 @@ package validation import ( "fmt" + "github.com/samber/lo" + v1 "github.com/fatedier/frp/pkg/config/v1" ) @@ -29,13 +31,21 @@ func validateWebServerConfig(c *v1.WebServerConfig) error { return fmt.Errorf("tls.keyFile must be specified when tls is enabled") } } - return nil + + return ValidatePort(c.Port, "webServer.port") } // ValidatePort checks that the network port is in range -func ValidatePort(port int) error { +func ValidatePort(port int, fieldPath string) error { if 0 <= port && port <= 65535 { return nil } - return fmt.Errorf("port number %d must be in the range 0..65535", port) + return fmt.Errorf("%s: port number %d must be in the range 0..65535", fieldPath, port) +} + +func validateLogConfig(c *v1.LogConfig) error { + if !lo.Contains(supportedLogLevels, c.Level) { + return fmt.Errorf("invalid log level, optional values are %v", supportedLogLevels) + } + return nil } diff --git a/pkg/config/v1/validation/proxy.go b/pkg/config/v1/validation/proxy.go index 541a4376ee0..c53cf7fc363 100644 --- a/pkg/config/v1/validation/proxy.go +++ b/pkg/config/v1/validation/proxy.go @@ -39,7 +39,7 @@ func validateProxyBaseConfigForClient(c *v1.ProxyBaseConfig) error { } if c.Plugin.Type == "" { - if err := ValidatePort(c.LocalPort); err != nil { + if err := ValidatePort(c.LocalPort, "localPort"); err != nil { return fmt.Errorf("localPort: %v", err) } } diff --git a/pkg/config/v1/validation/server.go b/pkg/config/v1/validation/server.go index 9f0fbfad0d6..d8b222f88c5 100644 --- a/pkg/config/v1/validation/server.go +++ b/pkg/config/v1/validation/server.go @@ -15,6 +15,10 @@ package validation import ( + "fmt" + + "github.com/samber/lo" + v1 "github.com/fatedier/frp/pkg/config/v1" ) @@ -23,15 +27,32 @@ func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { warnings Warning errs error ) + if !lo.Contains(supportedAuthMethods, c.Auth.Method) { + errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", supportedAuthMethods)) + } + if !lo.Every(supportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { + errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", supportedAuthAdditionalScopes)) + } + + if err := validateLogConfig(&c.Log); err != nil { + errs = AppendError(errs, err) + } + if err := validateWebServerConfig(&c.WebServer); err != nil { errs = AppendError(errs, err) } - errs = AppendError(errs, ValidatePort(c.BindPort)) - errs = AppendError(errs, ValidatePort(c.KCPBindPort)) - errs = AppendError(errs, ValidatePort(c.QUICBindPort)) - errs = AppendError(errs, ValidatePort(c.VhostHTTPPort)) - errs = AppendError(errs, ValidatePort(c.VhostHTTPSPort)) - errs = AppendError(errs, ValidatePort(c.TCPMuxHTTPConnectPort)) + errs = AppendError(errs, ValidatePort(c.BindPort, "bindPort")) + errs = AppendError(errs, ValidatePort(c.KCPBindPort, "kcpBindPort")) + errs = AppendError(errs, ValidatePort(c.QUICBindPort, "quicBindPort")) + errs = AppendError(errs, ValidatePort(c.VhostHTTPPort, "vhostHTTPPort")) + errs = AppendError(errs, ValidatePort(c.VhostHTTPSPort, "vhostHTTPSPort")) + errs = AppendError(errs, ValidatePort(c.TCPMuxHTTPConnectPort, "tcpMuxHTTPConnectPort")) + + for _, p := range c.HTTPPlugins { + if !lo.Every(supportedHTTPPluginOps, p.Ops) { + errs = AppendError(errs, fmt.Errorf("invalid http plugin ops, optional values are %v", supportedHTTPPluginOps)) + } + } return warnings, errs } diff --git a/pkg/config/v1/validation/validation.go b/pkg/config/v1/validation/validation.go index b081e909a25..bc25272a140 100644 --- a/pkg/config/v1/validation/validation.go +++ b/pkg/config/v1/validation/validation.go @@ -16,6 +16,46 @@ package validation import ( "errors" + + v1 "github.com/fatedier/frp/pkg/config/v1" + splugin "github.com/fatedier/frp/pkg/plugin/server" +) + +var ( + supportedTransportProtocols = []string{ + "tcp", + "kcp", + "quic", + "websocket", + "wss", + } + + supportedAuthMethods = []string{ + "token", + "oidc", + } + + supportedAuthAdditionalScopes = []v1.AuthScope{ + "HeartBeats", + "NewWorkConns", + } + + supportedLogLevels = []string{ + "trace", + "debug", + "info", + "warn", + "error", + } + + supportedHTTPPluginOps = []string{ + splugin.OpLogin, + splugin.OpNewProxy, + splugin.OpCloseProxy, + splugin.OpPing, + splugin.OpNewWorkConn, + splugin.OpNewUserConn, + } ) type Warning error diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go index ad216e354ba..6e229880893 100644 --- a/pkg/config/v1/visitor.go +++ b/pkg/config/v1/visitor.go @@ -99,7 +99,7 @@ func (c *TypedVisitorConfig) UnmarshalJSON(b []byte) error { c.Type = typeStruct.Type configurer := NewVisitorConfigurerByType(typeStruct.Type) if configurer == nil { - return fmt.Errorf("unknown visitor type: %s" + typeStruct.Type) + return fmt.Errorf("unknown visitor type: %s", typeStruct.Type) } if err := json.Unmarshal(b, configurer); err != nil { return err diff --git a/test/e2e/v1/basic/config.go b/test/e2e/v1/basic/config.go index 3aba9ae089d..686b3c5c498 100644 --- a/test/e2e/v1/basic/config.go +++ b/test/e2e/v1/basic/config.go @@ -81,4 +81,42 @@ var _ = ginkgo.Describe("[Feature: Config]", func() { framework.NewRequestExpect(f).Port(remotePort2).Ensure() }) }) + + ginkgo.Describe("Support Formats", func() { + ginkgo.It("YAML", func() { + serverConf := fmt.Sprintf(` +bindPort: {{ .%s }} +log: + level: trace +`, port.GenName("Server")) + + remotePort := f.AllocPort() + clientConf := fmt.Sprintf(` +serverPort: {{ .%s }} +log: + level: trace + +proxies: +- name: tcp + type: tcp + localPort: {{ .%s }} + remotePort: %d +`, port.GenName("Server"), framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + + ginkgo.It("JSON", func() { + serverConf := fmt.Sprintf(`{"bindPort": {{ .%s }}, "log": {"level": "trace"}}`, port.GenName("Server")) + + remotePort := f.AllocPort() + clientConf := fmt.Sprintf(`{"serverPort": {{ .%s }}, "log": {"level": "trace"}, +"proxies": [{"name": "tcp", "type": "tcp", "localPort": {{ .%s }}, "remotePort": %d}]}`, + port.GenName("Server"), framework.TCPEchoServerPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + }) }) From bae0b4d7c00837743766808bc4f02e93a8313f39 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 15 Sep 2023 10:33:32 +0800 Subject: [PATCH 098/444] optimize the code of the command line (#3614) --- Release.md | 5 + cmd/frpc/sub/admin.go | 117 ++++++++++++++++ cmd/frpc/sub/flags.go | 125 ++++++++++++++++++ cmd/frpc/sub/http.go | 96 -------------- cmd/frpc/sub/https.go | 88 ------------ cmd/frpc/sub/nathole.go | 2 - cmd/frpc/sub/proxy.go | 121 +++++++++++++++++ cmd/frpc/sub/reload.go | 86 ------------ cmd/frpc/sub/root.go | 90 ------------- cmd/frpc/sub/status.go | 108 --------------- cmd/frpc/sub/stcp.go | 114 ---------------- cmd/frpc/sub/stop.go | 86 ------------ cmd/frpc/sub/sudp.go | 113 ---------------- cmd/frpc/sub/tcp.go | 84 ------------ cmd/frpc/sub/tcpmux.go | 90 ------------- cmd/frpc/sub/udp.go | 85 ------------ cmd/frpc/sub/xtcp.go | 116 ---------------- cmd/frps/flags.go | 110 +++++++++++++++ cmd/frps/root.go | 102 +------------- pkg/config/types/types.go | 3 + pkg/config/v1/validation/client.go | 12 +- pkg/config/v1/validation/common.go | 4 +- pkg/config/v1/validation/server.go | 12 +- pkg/config/v1/validation/validation.go | 10 +- pkg/config/v1/validation/visitor.go | 6 +- {test/e2e/pkg => pkg}/sdk/client/client.go | 20 ++- pkg/util/util/http.go | 5 + test/e2e/legacy/basic/client.go | 2 +- test/e2e/legacy/basic/cmd.go | 7 +- test/e2e/legacy/basic/server.go | 2 +- test/e2e/legacy/features/bandwidth_limit.go | 4 +- test/e2e/legacy/plugin/server.go | 17 +-- .../plugin/utils.go => pkg/plugin/plugin.go} | 0 test/e2e/pkg/request/request.go | 4 +- test/e2e/pkg/utils/utils.go | 10 -- test/e2e/v1/basic/client.go | 2 +- test/e2e/v1/basic/cmd.go | 7 +- test/e2e/v1/basic/server.go | 2 +- test/e2e/v1/features/bandwidth_limit.go | 4 +- test/e2e/v1/plugin/server.go | 17 +-- test/e2e/v1/plugin/utils.go | 41 ------ 41 files changed, 566 insertions(+), 1363 deletions(-) create mode 100644 cmd/frpc/sub/admin.go create mode 100644 cmd/frpc/sub/flags.go delete mode 100644 cmd/frpc/sub/http.go delete mode 100644 cmd/frpc/sub/https.go create mode 100644 cmd/frpc/sub/proxy.go delete mode 100644 cmd/frpc/sub/reload.go delete mode 100644 cmd/frpc/sub/status.go delete mode 100644 cmd/frpc/sub/stcp.go delete mode 100644 cmd/frpc/sub/stop.go delete mode 100644 cmd/frpc/sub/sudp.go delete mode 100644 cmd/frpc/sub/tcp.go delete mode 100644 cmd/frpc/sub/tcpmux.go delete mode 100644 cmd/frpc/sub/udp.go delete mode 100644 cmd/frpc/sub/xtcp.go create mode 100644 cmd/frps/flags.go rename {test/e2e/pkg => pkg}/sdk/client/client.go (79%) rename test/e2e/{legacy/plugin/utils.go => pkg/plugin/plugin.go} (100%) delete mode 100644 test/e2e/pkg/utils/utils.go delete mode 100644 test/e2e/v1/plugin/utils.go diff --git a/Release.md b/Release.md index 7f01beef8b6..a25902cbe54 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,8 @@ ### Features * Configuration: We now support TOML, YAML, and JSON for configuration. Please note that INI is deprecated and will be removed in future releases. New features will only be available in TOML, YAML, or JSON. Users wanting these new features should switch their configuration format accordingly. #2521 + +### Breaking Changes + +* Change the way to start the visitor through the command line from `frpc stcp --role=visitor xxx` to `frpc stcp visitor xxx`. +* Modified the semantics of the `server_addr` in the command line, no longer including the port. Added the `server_port` parameter to configure the port. diff --git a/cmd/frpc/sub/admin.go b/cmd/frpc/sub/admin.go new file mode 100644 index 00000000000..c5514bc1397 --- /dev/null +++ b/cmd/frpc/sub/admin.go @@ -0,0 +1,117 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package sub + +import ( + "fmt" + "os" + "strings" + + "github.com/rodaine/table" + "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" + clientsdk "github.com/fatedier/frp/pkg/sdk/client" +) + +func init() { + rootCmd.AddCommand(NewAdminCommand( + "reload", + "Hot-Reload frpc configuration", + ReloadHandler, + )) + + rootCmd.AddCommand(NewAdminCommand( + "status", + "Overview of all proxies status", + StatusHandler, + )) + + rootCmd.AddCommand(NewAdminCommand( + "stop", + "Stop the running frpc", + StopHandler, + )) +} + +func NewAdminCommand(name, short string, handler func(*v1.ClientCommonConfig) error) *cobra.Command { + return &cobra.Command{ + Use: name, + Short: short, + Run: func(cmd *cobra.Command, args []string) { + cfg, _, _, _, err := config.LoadClientConfig(cfgFile) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + if cfg.WebServer.Port <= 0 { + fmt.Println("web server port should be set if you want to use this feature") + os.Exit(1) + } + + if err := handler(cfg); err != nil { + fmt.Println(err) + os.Exit(1) + } + }, + } +} + +func ReloadHandler(clientCfg *v1.ClientCommonConfig) error { + client := clientsdk.New(clientCfg.WebServer.Addr, clientCfg.WebServer.Port) + client.SetAuth(clientCfg.WebServer.User, clientCfg.WebServer.Password) + if err := client.Reload(); err != nil { + return err + } + fmt.Println("reload success") + return nil +} + +func StatusHandler(clientCfg *v1.ClientCommonConfig) error { + client := clientsdk.New(clientCfg.WebServer.Addr, clientCfg.WebServer.Port) + client.SetAuth(clientCfg.WebServer.User, clientCfg.WebServer.Password) + res, err := client.GetAllProxyStatus() + if err != nil { + return err + } + + fmt.Printf("Proxy Status...\n\n") + for _, typ := range proxyTypes { + arrs := res[typ] + if len(arrs) == 0 { + continue + } + + fmt.Println(strings.ToUpper(typ)) + tbl := table.New("Name", "Status", "LocalAddr", "Plugin", "RemoteAddr", "Error") + for _, ps := range arrs { + tbl.AddRow(ps.Name, ps.Status, ps.LocalAddr, ps.Plugin, ps.RemoteAddr, ps.Err) + } + tbl.Print() + fmt.Println("") + } + return nil +} + +func StopHandler(clientCfg *v1.ClientCommonConfig) error { + client := clientsdk.New(clientCfg.WebServer.Addr, clientCfg.WebServer.Port) + client.SetAuth(clientCfg.WebServer.User, clientCfg.WebServer.Password) + if err := client.Stop(); err != nil { + return err + } + fmt.Println("stop success") + return nil +} diff --git a/cmd/frpc/sub/flags.go b/cmd/frpc/sub/flags.go new file mode 100644 index 00000000000..eb3cc010629 --- /dev/null +++ b/cmd/frpc/sub/flags.go @@ -0,0 +1,125 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package sub + +import ( + "fmt" + + "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" +) + +type BandwidthQuantityFlag struct { + V *types.BandwidthQuantity +} + +func (f *BandwidthQuantityFlag) Set(s string) error { + return f.V.UnmarshalString(s) +} + +func (f *BandwidthQuantityFlag) String() string { + return f.V.String() +} + +func (f *BandwidthQuantityFlag) Type() string { + return "string" +} + +func RegisterProxyFlags(cmd *cobra.Command, c v1.ProxyConfigurer) { + registerProxyBaseConfigFlags(cmd, c.GetBaseConfig()) + switch cc := c.(type) { + case *v1.TCPProxyConfig: + cmd.Flags().IntVarP(&cc.RemotePort, "remote_port", "r", 0, "remote port") + case *v1.UDPProxyConfig: + cmd.Flags().IntVarP(&cc.RemotePort, "remote_port", "r", 0, "remote port") + case *v1.HTTPProxyConfig: + registerProxyDomainConfigFlags(cmd, &cc.DomainConfig) + cmd.Flags().StringSliceVarP(&cc.Locations, "locations", "", []string{}, "locations") + cmd.Flags().StringVarP(&cc.HTTPUser, "http_user", "", "", "http auth user") + cmd.Flags().StringVarP(&cc.HTTPPassword, "http_pwd", "", "", "http auth password") + cmd.Flags().StringVarP(&cc.HostHeaderRewrite, "host_header_rewrite", "", "", "host header rewrite") + case *v1.HTTPSProxyConfig: + registerProxyDomainConfigFlags(cmd, &cc.DomainConfig) + case *v1.TCPMuxProxyConfig: + registerProxyDomainConfigFlags(cmd, &cc.DomainConfig) + cmd.Flags().StringVarP(&cc.Multiplexer, "mux", "", "", "multiplexer") + case *v1.STCPProxyConfig: + cmd.Flags().StringVarP(&cc.Secretkey, "sk", "", "", "secret key") + case *v1.SUDPProxyConfig: + cmd.Flags().StringVarP(&cc.Secretkey, "sk", "", "", "secret key") + case *v1.XTCPProxyConfig: + cmd.Flags().StringVarP(&cc.Secretkey, "sk", "", "", "secret key") + } +} + +func registerProxyBaseConfigFlags(cmd *cobra.Command, c *v1.ProxyBaseConfig) { + if c == nil { + return + } + cmd.Flags().StringVarP(&c.Name, "proxy_name", "n", "", "proxy name") + cmd.Flags().StringVarP(&c.LocalIP, "local_ip", "i", "127.0.0.1", "local ip") + cmd.Flags().IntVarP(&c.LocalPort, "local_port", "l", 0, "local port") + cmd.Flags().BoolVarP(&c.Transport.UseEncryption, "ue", "", false, "use encryption") + cmd.Flags().BoolVarP(&c.Transport.UseCompression, "uc", "", false, "use compression") + cmd.Flags().StringVarP(&c.Transport.BandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") + cmd.Flags().VarP(&BandwidthQuantityFlag{V: &c.Transport.BandwidthLimit}, "bandwidth_limit", "", "bandwidth limit (e.g. 100KB or 1MB)") +} + +func registerProxyDomainConfigFlags(cmd *cobra.Command, c *v1.DomainConfig) { + if c == nil { + return + } + cmd.Flags().StringSliceVarP(&c.CustomDomains, "custom_domain", "d", []string{}, "custom domains") + cmd.Flags().StringVarP(&c.SubDomain, "sd", "", "", "sub domain") +} + +func RegisterVisitorFlags(cmd *cobra.Command, c v1.VisitorConfigurer) { + registerVisitorBaseConfigFlags(cmd, c.GetBaseConfig()) + + // add visitor flags if exist +} + +func registerVisitorBaseConfigFlags(cmd *cobra.Command, c *v1.VisitorBaseConfig) { + if c == nil { + return + } + cmd.Flags().StringVarP(&c.Name, "visitor_name", "n", "", "visitor name") + cmd.Flags().BoolVarP(&c.Transport.UseEncryption, "ue", "", false, "use encryption") + cmd.Flags().BoolVarP(&c.Transport.UseCompression, "uc", "", false, "use compression") + cmd.Flags().StringVarP(&c.SecretKey, "sk", "", "", "secret key") + cmd.Flags().StringVarP(&c.ServerName, "server_name", "", "", "server name") + cmd.Flags().StringVarP(&c.BindAddr, "bind_addr", "", "", "bind addr") + cmd.Flags().IntVarP(&c.BindPort, "bind_port", "", 0, "bind port") +} + +func RegisterClientCommonConfigFlags(cmd *cobra.Command, c *v1.ClientCommonConfig) { + cmd.PersistentFlags().StringVarP(&c.ServerAddr, "server_addr", "s", "127.0.0.1", "frp server's address") + cmd.PersistentFlags().IntVarP(&c.ServerPort, "server_port", "P", 7000, "frp server's port") + cmd.PersistentFlags().StringVarP(&c.User, "user", "u", "", "user") + cmd.PersistentFlags().StringVarP(&c.Transport.Protocol, "protocol", "p", "tcp", + fmt.Sprintf("optional values are %v", validation.SupportedTransportProtocols)) + cmd.PersistentFlags().StringVarP(&c.Auth.Token, "token", "t", "", "auth token") + cmd.PersistentFlags().StringVarP(&c.Log.Level, "log_level", "", "info", "log level") + cmd.PersistentFlags().StringVarP(&c.Log.To, "log_file", "", "console", "console or file path") + cmd.PersistentFlags().Int64VarP(&c.Log.MaxDays, "log_max_days", "", 3, "log file reversed days") + cmd.PersistentFlags().BoolVarP(&c.Log.DisablePrintColor, "disable_log_color", "", false, "disable log color in console") + cmd.PersistentFlags().StringVarP(&c.Transport.TLS.ServerName, "tls_server_name", "", "", "specify the custom server name of tls certificate") + cmd.PersistentFlags().StringVarP(&c.DNSServer, "dns_server", "", "", "specify dns server instead of using system default one") + + c.Transport.TLS.Enable = cmd.PersistentFlags().BoolP("tls_enable", "", true, "enable frpc tls") +} diff --git a/cmd/frpc/sub/http.go b/cmd/frpc/sub/http.go deleted file mode 100644 index 55c45b70bed..00000000000 --- a/cmd/frpc/sub/http.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - "strings" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(httpCmd) - - httpCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - httpCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - httpCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - httpCmd.PersistentFlags().StringVarP(&customDomains, "custom_domain", "d", "", "custom domain") - httpCmd.PersistentFlags().StringVarP(&subDomain, "sd", "", "", "sub domain") - httpCmd.PersistentFlags().StringVarP(&locations, "locations", "", "", "locations") - httpCmd.PersistentFlags().StringVarP(&httpUser, "http_user", "", "", "http auth user") - httpCmd.PersistentFlags().StringVarP(&httpPwd, "http_pwd", "", "", "http auth password") - httpCmd.PersistentFlags().StringVarP(&hostHeaderRewrite, "host_header_rewrite", "", "", "host header rewrite") - httpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - httpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - httpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - httpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(httpCmd) -} - -var httpCmd = &cobra.Command{ - Use: "http", - Short: "Run frpc with a single http proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - cfg := &v1.HTTPProxyConfig{} - var prefix string - if user != "" { - prefix = user + "." - } - cfg.Name = prefix + proxyName - cfg.Type = consts.HTTPProxy - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.CustomDomains = strings.Split(customDomains, ",") - cfg.SubDomain = subDomain - cfg.Locations = strings.Split(locations, ",") - cfg.HTTPUser = httpUser - cfg.HTTPPassword = httpPwd - cfg.HostHeaderRewrite = hostHeaderRewrite - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - - err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frpc/sub/https.go b/cmd/frpc/sub/https.go deleted file mode 100644 index d6bf4a6e3a4..00000000000 --- a/cmd/frpc/sub/https.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - "strings" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(httpsCmd) - - httpsCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - httpsCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - httpsCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - httpsCmd.PersistentFlags().StringVarP(&customDomains, "custom_domain", "d", "", "custom domain") - httpsCmd.PersistentFlags().StringVarP(&subDomain, "sd", "", "", "sub domain") - httpsCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - httpsCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - httpsCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - httpsCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(httpsCmd) -} - -var httpsCmd = &cobra.Command{ - Use: "https", - Short: "Run frpc with a single https proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - cfg := &v1.HTTPSProxyConfig{} - var prefix string - if user != "" { - prefix = user + "." - } - cfg.Name = prefix + proxyName - cfg.Type = consts.HTTPSProxy - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.CustomDomains = strings.Split(customDomains, ",") - cfg.SubDomain = subDomain - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - - err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go index 92977cd2221..72b635f1bf1 100644 --- a/cmd/frpc/sub/nathole.go +++ b/cmd/frpc/sub/nathole.go @@ -31,8 +31,6 @@ var ( ) func init() { - RegisterCommonFlags(natholeCmd) - rootCmd.AddCommand(natholeCmd) natholeCmd.AddCommand(natholeDiscoveryCmd) diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go new file mode 100644 index 00000000000..d27d3fadc71 --- /dev/null +++ b/cmd/frpc/sub/proxy.go @@ -0,0 +1,121 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package sub + +import ( + "fmt" + "os" + + "github.com/samber/lo" + "github.com/spf13/cobra" + + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/config/v1/validation" + "github.com/fatedier/frp/pkg/consts" +) + +var proxyTypes = []string{ + consts.TCPProxy, + consts.UDPProxy, + consts.TCPMuxProxy, + consts.HTTPProxy, + consts.HTTPSProxy, + consts.STCPProxy, + consts.SUDPProxy, + consts.XTCPProxy, +} + +var visitorTypes = []string{ + consts.STCPProxy, + consts.SUDPProxy, + consts.XTCPProxy, +} + +func init() { + for _, typ := range proxyTypes { + c := v1.NewProxyConfigurerByType(typ) + if c == nil { + panic("proxy type: " + typ + " not support") + } + clientCfg := v1.ClientCommonConfig{} + cmd := NewProxyCommand(typ, c, &clientCfg) + RegisterClientCommonConfigFlags(cmd, &clientCfg) + RegisterProxyFlags(cmd, c) + + // add sub command for visitor + if lo.Contains(visitorTypes, typ) { + vc := v1.NewVisitorConfigurerByType(typ) + if vc == nil { + panic("visitor type: " + typ + " not support") + } + visitorCmd := NewVisitorCommand(typ, vc, &clientCfg) + RegisterVisitorFlags(visitorCmd, vc) + cmd.AddCommand(visitorCmd) + } + rootCmd.AddCommand(cmd) + } +} + +func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.ClientCommonConfig) *cobra.Command { + return &cobra.Command{ + Use: name, + Short: fmt.Sprintf("Run frpc with a single %s proxy", name), + Run: func(cmd *cobra.Command, args []string) { + clientCfg.Complete() + if _, err := validation.ValidateClientCommonConfig(clientCfg); err != nil { + fmt.Println(err) + os.Exit(1) + } + + c.Complete(clientCfg.User) + c.GetBaseConfig().Type = name + if err := validation.ValidateProxyConfigurerForClient(c); err != nil { + fmt.Println(err) + os.Exit(1) + } + err := startService(clientCfg, []v1.ProxyConfigurer{c}, nil, "") + if err != nil { + fmt.Println(err) + os.Exit(1) + } + }, + } +} + +func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v1.ClientCommonConfig) *cobra.Command { + return &cobra.Command{ + Use: "visitor", + Short: fmt.Sprintf("Run frpc with a single %s visitor", name), + Run: func(cmd *cobra.Command, args []string) { + clientCfg.Complete() + if _, err := validation.ValidateClientCommonConfig(clientCfg); err != nil { + fmt.Println(err) + os.Exit(1) + } + + c.Complete(clientCfg) + c.GetBaseConfig().Type = name + if err := validation.ValidateVisitorConfigurer(c); err != nil { + fmt.Println(err) + os.Exit(1) + } + err := startService(clientCfg, nil, []v1.VisitorConfigurer{c}, "") + if err != nil { + fmt.Println(err) + os.Exit(1) + } + }, + } +} diff --git a/cmd/frpc/sub/reload.go b/cmd/frpc/sub/reload.go deleted file mode 100644 index a01a34f37de..00000000000 --- a/cmd/frpc/sub/reload.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "encoding/base64" - "fmt" - "io" - "net/http" - "os" - "strings" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config" - v1 "github.com/fatedier/frp/pkg/config/v1" -) - -func init() { - rootCmd.AddCommand(reloadCmd) -} - -var reloadCmd = &cobra.Command{ - Use: "reload", - Short: "Hot-Reload frpc configuration", - RunE: func(cmd *cobra.Command, args []string) error { - cfg, _, _, _, err := config.LoadClientConfig(cfgFile) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - err = reload(cfg) - if err != nil { - fmt.Printf("frpc reload error: %v\n", err) - os.Exit(1) - } - fmt.Printf("reload success\n") - return nil - }, -} - -func reload(clientCfg *v1.ClientCommonConfig) error { - if clientCfg.WebServer.Port == 0 { - return fmt.Errorf("the port of web server shoud be set if you want to use reload feature") - } - - req, err := http.NewRequest("GET", "http://"+ - clientCfg.WebServer.Addr+":"+ - fmt.Sprintf("%d", clientCfg.WebServer.Port)+"/api/reload", nil) - if err != nil { - return err - } - - authStr := "Basic " + base64.StdEncoding.EncodeToString( - []byte(clientCfg.WebServer.User+":"+clientCfg.WebServer.Password)) - - req.Header.Add("Authorization", authStr) - resp, err := http.DefaultClient.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode == 200 { - return nil - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - return err - } - return fmt.Errorf("code [%d], %s", resp.StatusCode, strings.TrimSpace(string(body))) -} diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 878114b108b..915e6b35174 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -18,16 +18,13 @@ import ( "context" "fmt" "io/fs" - "net" "os" "os/signal" "path/filepath" - "strconv" "sync" "syscall" "time" - "github.com/samber/lo" "github.com/spf13/cobra" "github.com/fatedier/frp/client" @@ -42,40 +39,6 @@ var ( cfgFile string cfgDir string showVersion bool - - serverAddr string - user string - protocol string - token string - logLevel string - logFile string - logMaxDays int - disableLogColor bool - dnsServer string - - proxyName string - localIP string - localPort int - remotePort int - useEncryption bool - useCompression bool - bandwidthLimit string - bandwidthLimitMode string - customDomains string - subDomain string - httpUser string - httpPwd string - locations string - hostHeaderRewrite string - role string - sk string - multiplexer string - serverName string - bindAddr string - bindPort int - - tlsEnable bool - tlsServerName string ) func init() { @@ -84,20 +47,6 @@ func init() { rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frpc") } -func RegisterCommonFlags(cmd *cobra.Command) { - cmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address") - cmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user") - cmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp, kcp, quic, websocket, wss") - cmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token") - cmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level") - cmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path") - cmd.PersistentFlags().IntVarP(&logMaxDays, "log_max_days", "", 3, "log file reversed days") - cmd.PersistentFlags().BoolVarP(&disableLogColor, "disable_log_color", "", false, "disable log color in console") - cmd.PersistentFlags().BoolVarP(&tlsEnable, "tls_enable", "", true, "enable frpc tls") - cmd.PersistentFlags().StringVarP(&tlsServerName, "tls_server_name", "", "", "specify the custom server name of tls certificate") - cmd.PersistentFlags().StringVarP(&dnsServer, "dns_server", "", "", "specify dns server instead of using system default one") -} - var rootCmd = &cobra.Command{ Use: "frpc", Short: "frpc is the client of frp (https://github.com/fatedier/frp)", @@ -158,45 +107,6 @@ func handleTermSignal(svr *client.Service) { svr.GracefulClose(500 * time.Millisecond) } -func parseClientCommonCfgFromCmd() (*v1.ClientCommonConfig, error) { - cfg := &v1.ClientCommonConfig{} - - ipStr, portStr, err := net.SplitHostPort(serverAddr) - if err != nil { - return nil, fmt.Errorf("invalid server_addr: %v", err) - } - - cfg.ServerAddr = ipStr - cfg.ServerPort, err = strconv.Atoi(portStr) - if err != nil { - return nil, fmt.Errorf("invalid server_addr: %v", err) - } - - cfg.User = user - cfg.Transport.Protocol = protocol - cfg.Log.Level = logLevel - cfg.Log.To = logFile - cfg.Log.MaxDays = int64(logMaxDays) - cfg.Log.DisablePrintColor = disableLogColor - cfg.DNSServer = dnsServer - - // Only token authentication is supported in cmd mode - cfg.Auth.Token = token - cfg.Transport.TLS.Enable = lo.ToPtr(tlsEnable) - cfg.Transport.TLS.ServerName = tlsServerName - - cfg.Complete() - - warning, err := validation.ValidateClientCommonConfig(cfg) - if warning != nil { - fmt.Printf("WARNING: %v\n", warning) - } - if err != nil { - return nil, fmt.Errorf("parse config error: %v", err) - } - return cfg, nil -} - func runClient(cfgFilePath string) error { cfg, pxyCfgs, visitorCfgs, isLegacyFormat, err := config.LoadClientConfig(cfgFilePath) if err != nil { diff --git a/cmd/frpc/sub/status.go b/cmd/frpc/sub/status.go deleted file mode 100644 index 1db4a956b18..00000000000 --- a/cmd/frpc/sub/status.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "encoding/base64" - "encoding/json" - "fmt" - "io" - "net/http" - "os" - "strings" - - "github.com/rodaine/table" - "github.com/spf13/cobra" - - "github.com/fatedier/frp/client" - "github.com/fatedier/frp/pkg/config" - v1 "github.com/fatedier/frp/pkg/config/v1" -) - -func init() { - rootCmd.AddCommand(statusCmd) -} - -var statusCmd = &cobra.Command{ - Use: "status", - Short: "Overview of all proxies status", - RunE: func(cmd *cobra.Command, args []string) error { - cfg, _, _, _, err := config.LoadClientConfig(cfgFile) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - if err = status(cfg); err != nil { - fmt.Printf("frpc get status error: %v\n", err) - os.Exit(1) - } - return nil - }, -} - -func status(clientCfg *v1.ClientCommonConfig) error { - if clientCfg.WebServer.Port == 0 { - return fmt.Errorf("the port of web server shoud be set if you want to get proxy status") - } - - req, err := http.NewRequest("GET", "http://"+ - clientCfg.WebServer.Addr+":"+fmt.Sprintf("%d", clientCfg.WebServer.Port)+"/api/status", nil) - if err != nil { - return err - } - - authStr := "Basic " + base64.StdEncoding.EncodeToString( - []byte(clientCfg.WebServer.User+":"+clientCfg.WebServer.Password)) - - req.Header.Add("Authorization", authStr) - resp, err := http.DefaultClient.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode != 200 { - return fmt.Errorf("admin api status code [%d]", resp.StatusCode) - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - return err - } - res := make(client.StatusResp) - err = json.Unmarshal(body, &res) - if err != nil { - return fmt.Errorf("unmarshal http response error: %s", strings.TrimSpace(string(body))) - } - - fmt.Println("Proxy Status...") - types := []string{"tcp", "udp", "tcpmux", "http", "https", "stcp", "sudp", "xtcp"} - for _, pxyType := range types { - arrs := res[pxyType] - if len(arrs) == 0 { - continue - } - - fmt.Println(strings.ToUpper(pxyType)) - tbl := table.New("Name", "Status", "LocalAddr", "Plugin", "RemoteAddr", "Error") - for _, ps := range arrs { - tbl.AddRow(ps.Name, ps.Status, ps.LocalAddr, ps.Plugin, ps.RemoteAddr, ps.Err) - } - tbl.Print() - fmt.Println("") - } - return nil -} diff --git a/cmd/frpc/sub/stcp.go b/cmd/frpc/sub/stcp.go deleted file mode 100644 index 47ad3628663..00000000000 --- a/cmd/frpc/sub/stcp.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(stcpCmd) - - stcpCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - stcpCmd.PersistentFlags().StringVarP(&role, "role", "", "server", "role") - stcpCmd.PersistentFlags().StringVarP(&sk, "sk", "", "", "secret key") - stcpCmd.PersistentFlags().StringVarP(&serverName, "server_name", "", "", "server name") - stcpCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - stcpCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - stcpCmd.PersistentFlags().StringVarP(&bindAddr, "bind_addr", "", "", "bind addr") - stcpCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "", 0, "bind port") - stcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - stcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - stcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - stcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(stcpCmd) -} - -var stcpCmd = &cobra.Command{ - Use: "stcp", - Short: "Run frpc with a single stcp proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - pxyCfgs := make([]v1.ProxyConfigurer, 0) - visitorCfgs := make([]v1.VisitorConfigurer, 0) - - var prefix string - if user != "" { - prefix = user + "." - } - - switch role { - case "server": - cfg := &v1.STCPProxyConfig{} - cfg.Name = prefix + proxyName - cfg.Type = consts.STCPProxy - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Secretkey = sk - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - pxyCfgs = append(pxyCfgs, cfg) - case "visitor": - cfg := &v1.STCPVisitorConfig{} - cfg.Name = prefix + proxyName - cfg.Type = consts.STCPProxy - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.SecretKey = sk - cfg.ServerName = serverName - cfg.BindAddr = bindAddr - cfg.BindPort = bindPort - if err := validation.ValidateVisitorConfigurer(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - visitorCfgs = append(visitorCfgs, cfg) - default: - fmt.Println("invalid role") - os.Exit(1) - } - - err = startService(clientCfg, pxyCfgs, visitorCfgs, "") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frpc/sub/stop.go b/cmd/frpc/sub/stop.go deleted file mode 100644 index c0ec5da5e91..00000000000 --- a/cmd/frpc/sub/stop.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2023 The frp Authors -// -// Licensed 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. - -package sub - -import ( - "encoding/base64" - "fmt" - "io" - "net/http" - "os" - "strings" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config" - v1 "github.com/fatedier/frp/pkg/config/v1" -) - -func init() { - rootCmd.AddCommand(stopCmd) -} - -var stopCmd = &cobra.Command{ - Use: "stop", - Short: "Stop the running frpc", - RunE: func(cmd *cobra.Command, args []string) error { - cfg, _, _, _, err := config.LoadClientConfig(cfgFile) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - err = stopClient(cfg) - if err != nil { - fmt.Printf("frpc stop error: %v\n", err) - os.Exit(1) - } - fmt.Printf("stop success\n") - return nil - }, -} - -func stopClient(clientCfg *v1.ClientCommonConfig) error { - if clientCfg.WebServer.Port == 0 { - return fmt.Errorf("the port of web server shoud be set if you want to use stop feature") - } - - req, err := http.NewRequest("POST", "http://"+ - clientCfg.WebServer.Addr+":"+ - fmt.Sprintf("%d", clientCfg.WebServer.Port)+"/api/stop", nil) - if err != nil { - return err - } - - authStr := "Basic " + base64.StdEncoding.EncodeToString( - []byte(clientCfg.WebServer.User+":"+clientCfg.WebServer.Password)) - - req.Header.Add("Authorization", authStr) - resp, err := http.DefaultClient.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode == 200 { - return nil - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - return err - } - return fmt.Errorf("code [%d], %s", resp.StatusCode, strings.TrimSpace(string(body))) -} diff --git a/cmd/frpc/sub/sudp.go b/cmd/frpc/sub/sudp.go deleted file mode 100644 index 28f17ee6019..00000000000 --- a/cmd/frpc/sub/sudp.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(sudpCmd) - - sudpCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - sudpCmd.PersistentFlags().StringVarP(&role, "role", "", "server", "role") - sudpCmd.PersistentFlags().StringVarP(&sk, "sk", "", "", "secret key") - sudpCmd.PersistentFlags().StringVarP(&serverName, "server_name", "", "", "server name") - sudpCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - sudpCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - sudpCmd.PersistentFlags().StringVarP(&bindAddr, "bind_addr", "", "", "bind addr") - sudpCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "", 0, "bind port") - sudpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - sudpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - sudpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - sudpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(sudpCmd) -} - -var sudpCmd = &cobra.Command{ - Use: "sudp", - Short: "Run frpc with a single sudp proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - pxyCfgs := make([]v1.ProxyConfigurer, 0) - visitorCfgs := make([]v1.VisitorConfigurer, 0) - - var prefix string - if user != "" { - prefix = user + "." - } - - switch role { - case "server": - cfg := &v1.SUDPProxyConfig{} - cfg.Name = prefix + proxyName - cfg.Type = consts.SUDPProxy - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Secretkey = sk - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - pxyCfgs = append(pxyCfgs, cfg) - case "visitor": - cfg := &v1.SUDPVisitorConfig{} - cfg.Name = prefix + proxyName - cfg.Type = consts.SUDPProxy - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.SecretKey = sk - cfg.ServerName = serverName - cfg.BindAddr = bindAddr - cfg.BindPort = bindPort - if err := validation.ValidateVisitorConfigurer(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - visitorCfgs = append(visitorCfgs, cfg) - default: - fmt.Println("invalid role") - os.Exit(1) - } - - err = startService(clientCfg, pxyCfgs, visitorCfgs, "") - if err != nil { - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frpc/sub/tcp.go b/cmd/frpc/sub/tcp.go deleted file mode 100644 index 1a65a2a9da3..00000000000 --- a/cmd/frpc/sub/tcp.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(tcpCmd) - - tcpCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - tcpCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - tcpCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - tcpCmd.PersistentFlags().IntVarP(&remotePort, "remote_port", "r", 0, "remote port") - tcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - tcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - tcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - tcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(tcpCmd) -} - -var tcpCmd = &cobra.Command{ - Use: "tcp", - Short: "Run frpc with a single tcp proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - cfg := &v1.TCPProxyConfig{} - var prefix string - if user != "" { - prefix = user + "." - } - cfg.Name = prefix + proxyName - cfg.Type = consts.TCPProxy - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.RemotePort = remotePort - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frpc/sub/tcpmux.go b/cmd/frpc/sub/tcpmux.go deleted file mode 100644 index a217591b316..00000000000 --- a/cmd/frpc/sub/tcpmux.go +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2020 guylewin, guy@lewin.co.il -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - "strings" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(tcpMuxCmd) - - tcpMuxCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - tcpMuxCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - tcpMuxCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - tcpMuxCmd.PersistentFlags().StringVarP(&customDomains, "custom_domain", "d", "", "custom domain") - tcpMuxCmd.PersistentFlags().StringVarP(&subDomain, "sd", "", "", "sub domain") - tcpMuxCmd.PersistentFlags().StringVarP(&multiplexer, "mux", "", "", "multiplexer") - tcpMuxCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - tcpMuxCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - tcpMuxCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - tcpMuxCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(tcpMuxCmd) -} - -var tcpMuxCmd = &cobra.Command{ - Use: "tcpmux", - Short: "Run frpc with a single tcpmux proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - cfg := &v1.TCPMuxProxyConfig{} - var prefix string - if user != "" { - prefix = user + "." - } - cfg.Name = prefix + proxyName - cfg.Type = consts.TCPMuxProxy - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.CustomDomains = strings.Split(customDomains, ",") - cfg.SubDomain = subDomain - cfg.Multiplexer = multiplexer - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - - err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frpc/sub/udp.go b/cmd/frpc/sub/udp.go deleted file mode 100644 index e617070a802..00000000000 --- a/cmd/frpc/sub/udp.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(udpCmd) - - udpCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - udpCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - udpCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - udpCmd.PersistentFlags().IntVarP(&remotePort, "remote_port", "r", 0, "remote port") - udpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - udpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - udpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - udpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(udpCmd) -} - -var udpCmd = &cobra.Command{ - Use: "udp", - Short: "Run frpc with a single udp proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - cfg := &v1.UDPProxyConfig{} - var prefix string - if user != "" { - prefix = user + "." - } - cfg.Name = prefix + proxyName - cfg.Type = consts.UDPProxy - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.RemotePort = remotePort - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - - err = startService(clientCfg, []v1.ProxyConfigurer{cfg}, nil, "") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frpc/sub/xtcp.go b/cmd/frpc/sub/xtcp.go deleted file mode 100644 index a4bdd8031b8..00000000000 --- a/cmd/frpc/sub/xtcp.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2018 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package sub - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" - - "github.com/fatedier/frp/pkg/config/types" - v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" -) - -func init() { - RegisterCommonFlags(xtcpCmd) - - xtcpCmd.PersistentFlags().StringVarP(&proxyName, "proxy_name", "n", "", "proxy name") - xtcpCmd.PersistentFlags().StringVarP(&role, "role", "", "server", "role") - xtcpCmd.PersistentFlags().StringVarP(&sk, "sk", "", "", "secret key") - xtcpCmd.PersistentFlags().StringVarP(&serverName, "server_name", "", "", "server name") - xtcpCmd.PersistentFlags().StringVarP(&localIP, "local_ip", "i", "127.0.0.1", "local ip") - xtcpCmd.PersistentFlags().IntVarP(&localPort, "local_port", "l", 0, "local port") - xtcpCmd.PersistentFlags().StringVarP(&bindAddr, "bind_addr", "", "", "bind addr") - xtcpCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "", 0, "bind port") - xtcpCmd.PersistentFlags().BoolVarP(&useEncryption, "ue", "", false, "use encryption") - xtcpCmd.PersistentFlags().BoolVarP(&useCompression, "uc", "", false, "use compression") - xtcpCmd.PersistentFlags().StringVarP(&bandwidthLimit, "bandwidth_limit", "", "", "bandwidth limit") - xtcpCmd.PersistentFlags().StringVarP(&bandwidthLimitMode, "bandwidth_limit_mode", "", types.BandwidthLimitModeClient, "bandwidth limit mode") - - rootCmd.AddCommand(xtcpCmd) -} - -var xtcpCmd = &cobra.Command{ - Use: "xtcp", - Short: "Run frpc with a single xtcp proxy", - RunE: func(cmd *cobra.Command, args []string) error { - clientCfg, err := parseClientCommonCfgFromCmd() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - pxyCfgs := make([]v1.ProxyConfigurer, 0) - visitorCfgs := make([]v1.VisitorConfigurer, 0) - - var prefix string - if user != "" { - prefix = user + "." - } - - switch role { - case "server": - cfg := &v1.XTCPProxyConfig{} - cfg.Name = prefix + proxyName - cfg.Type = consts.XTCPProxy - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.Secretkey = sk - cfg.LocalIP = localIP - cfg.LocalPort = localPort - cfg.Transport.BandwidthLimit, err = types.NewBandwidthQuantity(bandwidthLimit) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - cfg.Transport.BandwidthLimitMode = bandwidthLimitMode - - if err := validation.ValidateProxyConfigurerForClient(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - pxyCfgs = append(pxyCfgs, cfg) - case "visitor": - cfg := &v1.XTCPVisitorConfig{} - cfg.Name = prefix + proxyName - cfg.Type = consts.XTCPProxy - cfg.Transport.UseEncryption = useEncryption - cfg.Transport.UseCompression = useCompression - cfg.SecretKey = sk - cfg.ServerName = serverName - cfg.BindAddr = bindAddr - cfg.BindPort = bindPort - - if err := validation.ValidateVisitorConfigurer(cfg); err != nil { - fmt.Println(err) - os.Exit(1) - } - visitorCfgs = append(visitorCfgs, cfg) - default: - fmt.Println("invalid role") - os.Exit(1) - } - - err = startService(clientCfg, pxyCfgs, visitorCfgs, "") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - return nil - }, -} diff --git a/cmd/frps/flags.go b/cmd/frps/flags.go new file mode 100644 index 00000000000..50170684734 --- /dev/null +++ b/cmd/frps/flags.go @@ -0,0 +1,110 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package main + +import ( + "strconv" + + "github.com/spf13/cobra" + + "github.com/fatedier/frp/pkg/config/types" + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +type PortsRangeSliceFlag struct { + V *[]types.PortsRange +} + +func (f *PortsRangeSliceFlag) String() string { + if f.V == nil { + return "" + } + return types.PortsRangeSlice(*f.V).String() +} + +func (f *PortsRangeSliceFlag) Set(s string) error { + slice, err := types.NewPortsRangeSliceFromString(s) + if err != nil { + return err + } + *f.V = slice + return nil +} + +func (f *PortsRangeSliceFlag) Type() string { + return "string" +} + +type BoolFuncFlag struct { + TrueFunc func() + FalseFunc func() + + v bool +} + +func (f *BoolFuncFlag) String() string { + return strconv.FormatBool(f.v) +} + +func (f *BoolFuncFlag) Set(s string) error { + f.v = strconv.FormatBool(f.v) == "true" + + if !f.v { + if f.FalseFunc != nil { + f.FalseFunc() + } + return nil + } + + if f.TrueFunc != nil { + f.TrueFunc() + } + return nil +} + +func (f *BoolFuncFlag) Type() string { + return "bool" +} + +func RegisterServerConfigFlags(cmd *cobra.Command, c *v1.ServerConfig) { + cmd.PersistentFlags().StringVarP(&c.BindAddr, "bind_addr", "", "0.0.0.0", "bind address") + cmd.PersistentFlags().IntVarP(&c.BindPort, "bind_port", "p", 7000, "bind port") + cmd.PersistentFlags().IntVarP(&c.KCPBindPort, "kcp_bind_port", "", 0, "kcp bind udp port") + cmd.PersistentFlags().StringVarP(&c.ProxyBindAddr, "proxy_bind_addr", "", "0.0.0.0", "proxy bind address") + cmd.PersistentFlags().IntVarP(&c.VhostHTTPPort, "vhost_http_port", "", 0, "vhost http port") + cmd.PersistentFlags().IntVarP(&c.VhostHTTPSPort, "vhost_https_port", "", 0, "vhost https port") + cmd.PersistentFlags().Int64VarP(&c.VhostHTTPTimeout, "vhost_http_timeout", "", 60, "vhost http response header timeout") + cmd.PersistentFlags().StringVarP(&c.WebServer.Addr, "dashboard_addr", "", "0.0.0.0", "dashboard address") + cmd.PersistentFlags().IntVarP(&c.WebServer.Port, "dashboard_port", "", 0, "dashboard port") + cmd.PersistentFlags().StringVarP(&c.WebServer.User, "dashboard_user", "", "admin", "dashboard user") + cmd.PersistentFlags().StringVarP(&c.WebServer.Password, "dashboard_pwd", "", "admin", "dashboard password") + cmd.PersistentFlags().BoolVarP(&c.EnablePrometheus, "enable_prometheus", "", false, "enable prometheus dashboard") + cmd.PersistentFlags().StringVarP(&c.Log.To, "log_file", "", "console", "log file") + cmd.PersistentFlags().StringVarP(&c.Log.Level, "log_level", "", "info", "log level") + cmd.PersistentFlags().Int64VarP(&c.Log.MaxDays, "log_max_days", "", 3, "log max days") + cmd.PersistentFlags().BoolVarP(&c.Log.DisablePrintColor, "disable_log_color", "", false, "disable log color in console") + cmd.PersistentFlags().StringVarP(&c.Auth.Token, "token", "t", "", "auth token") + cmd.PersistentFlags().StringVarP(&c.SubDomainHost, "subdomain_host", "", "", "subdomain host") + cmd.PersistentFlags().VarP(&PortsRangeSliceFlag{V: &c.AllowPorts}, "allow_ports", "", "allow ports") + cmd.PersistentFlags().Int64VarP(&c.MaxPortsPerClient, "max_ports_per_client", "", 0, "max ports per client") + cmd.PersistentFlags().BoolVarP(&c.Transport.TLS.Force, "tls_only", "", false, "frps tls only") + + webServerTLS := v1.TLSConfig{} + cmd.PersistentFlags().StringVarP(&webServerTLS.CertFile, "dashboard_tls_cert_file", "", "", "dashboard tls cert file") + cmd.PersistentFlags().StringVarP(&webServerTLS.KeyFile, "dashboard_tls_key_file", "", "", "dashboard tls key file") + cmd.PersistentFlags().VarP(&BoolFuncFlag{ + TrueFunc: func() { c.WebServer.TLS = &webServerTLS }, + }, "dashboard_tls_mode", "", "if enable dashboard tls mode") +} diff --git a/cmd/frps/root.go b/cmd/frps/root.go index 601e068ea61..4a6f0117620 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -22,7 +22,6 @@ import ( "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" - "github.com/fatedier/frp/pkg/config/types" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" "github.com/fatedier/frp/pkg/util/log" @@ -34,61 +33,14 @@ var ( cfgFile string showVersion bool - bindAddr string - bindPort int - kcpBindPort int - proxyBindAddr string - vhostHTTPPort int - vhostHTTPSPort int - vhostHTTPTimeout int64 - dashboardAddr string - dashboardPort int - dashboardUser string - dashboardPwd string - enablePrometheus bool - logFile string - logLevel string - logMaxDays int64 - disableLogColor bool - token string - subDomainHost string - allowPorts string - maxPortsPerClient int64 - tlsOnly bool - dashboardTLSMode bool - dashboardTLSCertFile string - dashboardTLSKeyFile string + serverCfg v1.ServerConfig ) func init() { rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "", "config file of frps") rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frps") - rootCmd.PersistentFlags().StringVarP(&bindAddr, "bind_addr", "", "0.0.0.0", "bind address") - rootCmd.PersistentFlags().IntVarP(&bindPort, "bind_port", "p", 7000, "bind port") - rootCmd.PersistentFlags().IntVarP(&kcpBindPort, "kcp_bind_port", "", 0, "kcp bind udp port") - rootCmd.PersistentFlags().StringVarP(&proxyBindAddr, "proxy_bind_addr", "", "0.0.0.0", "proxy bind address") - rootCmd.PersistentFlags().IntVarP(&vhostHTTPPort, "vhost_http_port", "", 0, "vhost http port") - rootCmd.PersistentFlags().IntVarP(&vhostHTTPSPort, "vhost_https_port", "", 0, "vhost https port") - rootCmd.PersistentFlags().Int64VarP(&vhostHTTPTimeout, "vhost_http_timeout", "", 60, "vhost http response header timeout") - rootCmd.PersistentFlags().StringVarP(&dashboardAddr, "dashboard_addr", "", "0.0.0.0", "dashboard address") - rootCmd.PersistentFlags().IntVarP(&dashboardPort, "dashboard_port", "", 0, "dashboard port") - rootCmd.PersistentFlags().StringVarP(&dashboardUser, "dashboard_user", "", "admin", "dashboard user") - rootCmd.PersistentFlags().StringVarP(&dashboardPwd, "dashboard_pwd", "", "admin", "dashboard password") - rootCmd.PersistentFlags().BoolVarP(&enablePrometheus, "enable_prometheus", "", false, "enable prometheus dashboard") - rootCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "log file") - rootCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level") - rootCmd.PersistentFlags().Int64VarP(&logMaxDays, "log_max_days", "", 3, "log max days") - rootCmd.PersistentFlags().BoolVarP(&disableLogColor, "disable_log_color", "", false, "disable log color in console") - - rootCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token") - rootCmd.PersistentFlags().StringVarP(&subDomainHost, "subdomain_host", "", "", "subdomain host") - rootCmd.PersistentFlags().StringVarP(&allowPorts, "allow_ports", "", "", "allow ports") - rootCmd.PersistentFlags().Int64VarP(&maxPortsPerClient, "max_ports_per_client", "", 0, "max ports per client") - rootCmd.PersistentFlags().BoolVarP(&tlsOnly, "tls_only", "", false, "frps tls only") - rootCmd.PersistentFlags().BoolVarP(&dashboardTLSMode, "dashboard_tls_mode", "", false, "dashboard tls mode") - rootCmd.PersistentFlags().StringVarP(&dashboardTLSCertFile, "dashboard_tls_cert_file", "", "", "dashboard tls cert file") - rootCmd.PersistentFlags().StringVarP(&dashboardTLSKeyFile, "dashboard_tls_key_file", "", "", "dashboard tls key file") + RegisterServerConfigFlags(rootCmd, &serverCfg) } var rootCmd = &cobra.Command{ @@ -116,10 +68,8 @@ var rootCmd = &cobra.Command{ "please use yaml/json/toml format instead!\n") } } else { - if svrCfg, err = parseServerConfigFromCmd(); err != nil { - fmt.Println(err) - os.Exit(1) - } + serverCfg.Complete() + svrCfg = &serverCfg } warning, err := validation.ValidateServerConfig(svrCfg) @@ -145,50 +95,6 @@ func Execute() { } } -func parseServerConfigFromCmd() (*v1.ServerConfig, error) { - cfg := &v1.ServerConfig{} - - cfg.BindAddr = bindAddr - cfg.BindPort = bindPort - cfg.KCPBindPort = kcpBindPort - cfg.ProxyBindAddr = proxyBindAddr - cfg.VhostHTTPPort = vhostHTTPPort - cfg.VhostHTTPSPort = vhostHTTPSPort - cfg.VhostHTTPTimeout = vhostHTTPTimeout - cfg.WebServer.Addr = dashboardAddr - cfg.WebServer.Port = dashboardPort - cfg.WebServer.User = dashboardUser - cfg.WebServer.Password = dashboardPwd - cfg.EnablePrometheus = enablePrometheus - if dashboardTLSMode { - cfg.WebServer.TLS = &v1.TLSConfig{ - CertFile: dashboardTLSCertFile, - KeyFile: dashboardTLSKeyFile, - } - } - cfg.Log.To = logFile - cfg.Log.Level = logLevel - cfg.Log.MaxDays = logMaxDays - cfg.Log.DisablePrintColor = disableLogColor - cfg.SubDomainHost = subDomainHost - cfg.Transport.TLS.Force = tlsOnly - cfg.MaxPortsPerClient = maxPortsPerClient - - // Only token authentication is supported in cmd mode - cfg.Auth.Token = token - - if len(allowPorts) > 0 { - portsRanges, err := types.NewPortsRangeSliceFromString(allowPorts) - if err != nil { - return cfg, fmt.Errorf("allow_ports format error: %v", err) - } - cfg.AllowPorts = portsRanges - } - - cfg.Complete() - return cfg, nil -} - func runServer(cfg *v1.ServerConfig) (err error) { log.InitLog(cfg.Log.To, cfg.Log.Level, cfg.Log.MaxDays, cfg.Log.DisablePrintColor) diff --git a/pkg/config/types/types.go b/pkg/config/types/types.go index b6fb7a85471..fac29d74612 100644 --- a/pkg/config/types/types.go +++ b/pkg/config/types/types.go @@ -134,6 +134,9 @@ type PortsRange struct { type PortsRangeSlice []PortsRange func (p PortsRangeSlice) String() string { + if len(p) == 0 { + return "" + } strs := []string{} for _, v := range p { if v.Single > 0 { diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index 00214ddecc6..38123946a59 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -29,11 +29,11 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { warnings Warning errs error ) - if !lo.Contains(supportedAuthMethods, c.Auth.Method) { - errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", supportedAuthMethods)) + if !lo.Contains(SupportedAuthMethods, c.Auth.Method) { + errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", SupportedAuthMethods)) } - if !lo.Every(supportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { - errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", supportedAuthAdditionalScopes)) + if !lo.Every(SupportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { + errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", SupportedAuthAdditionalScopes)) } if err := validateLogConfig(&c.Log); err != nil { @@ -63,8 +63,8 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { warnings = AppendError(warnings, checkTLSConfig("transport.tls.trustedCaFile", c.Transport.TLS.TrustedCaFile)) } - if !lo.Contains(supportedTransportProtocols, c.Transport.Protocol) { - errs = AppendError(errs, fmt.Errorf("invalid transport.protocol, optional values are %v", supportedTransportProtocols)) + if !lo.Contains(SupportedTransportProtocols, c.Transport.Protocol) { + errs = AppendError(errs, fmt.Errorf("invalid transport.protocol, optional values are %v", SupportedTransportProtocols)) } for _, f := range c.IncludeConfigFiles { diff --git a/pkg/config/v1/validation/common.go b/pkg/config/v1/validation/common.go index 3409a9d6a98..c159e270bf3 100644 --- a/pkg/config/v1/validation/common.go +++ b/pkg/config/v1/validation/common.go @@ -44,8 +44,8 @@ func ValidatePort(port int, fieldPath string) error { } func validateLogConfig(c *v1.LogConfig) error { - if !lo.Contains(supportedLogLevels, c.Level) { - return fmt.Errorf("invalid log level, optional values are %v", supportedLogLevels) + if !lo.Contains(SupportedLogLevels, c.Level) { + return fmt.Errorf("invalid log level, optional values are %v", SupportedLogLevels) } return nil } diff --git a/pkg/config/v1/validation/server.go b/pkg/config/v1/validation/server.go index d8b222f88c5..5f17d6c7a73 100644 --- a/pkg/config/v1/validation/server.go +++ b/pkg/config/v1/validation/server.go @@ -27,11 +27,11 @@ func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { warnings Warning errs error ) - if !lo.Contains(supportedAuthMethods, c.Auth.Method) { - errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", supportedAuthMethods)) + if !lo.Contains(SupportedAuthMethods, c.Auth.Method) { + errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", SupportedAuthMethods)) } - if !lo.Every(supportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { - errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", supportedAuthAdditionalScopes)) + if !lo.Every(SupportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { + errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", SupportedAuthAdditionalScopes)) } if err := validateLogConfig(&c.Log); err != nil { @@ -50,8 +50,8 @@ func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { errs = AppendError(errs, ValidatePort(c.TCPMuxHTTPConnectPort, "tcpMuxHTTPConnectPort")) for _, p := range c.HTTPPlugins { - if !lo.Every(supportedHTTPPluginOps, p.Ops) { - errs = AppendError(errs, fmt.Errorf("invalid http plugin ops, optional values are %v", supportedHTTPPluginOps)) + if !lo.Every(SupportedHTTPPluginOps, p.Ops) { + errs = AppendError(errs, fmt.Errorf("invalid http plugin ops, optional values are %v", SupportedHTTPPluginOps)) } } return warnings, errs diff --git a/pkg/config/v1/validation/validation.go b/pkg/config/v1/validation/validation.go index bc25272a140..dcce5f7100f 100644 --- a/pkg/config/v1/validation/validation.go +++ b/pkg/config/v1/validation/validation.go @@ -22,7 +22,7 @@ import ( ) var ( - supportedTransportProtocols = []string{ + SupportedTransportProtocols = []string{ "tcp", "kcp", "quic", @@ -30,17 +30,17 @@ var ( "wss", } - supportedAuthMethods = []string{ + SupportedAuthMethods = []string{ "token", "oidc", } - supportedAuthAdditionalScopes = []v1.AuthScope{ + SupportedAuthAdditionalScopes = []v1.AuthScope{ "HeartBeats", "NewWorkConns", } - supportedLogLevels = []string{ + SupportedLogLevels = []string{ "trace", "debug", "info", @@ -48,7 +48,7 @@ var ( "error", } - supportedHTTPPluginOps = []string{ + SupportedHTTPPluginOps = []string{ splugin.OpLogin, splugin.OpNewProxy, splugin.OpCloseProxy, diff --git a/pkg/config/v1/validation/visitor.go b/pkg/config/v1/validation/visitor.go index c478b490e0f..5307dc9053b 100644 --- a/pkg/config/v1/validation/visitor.go +++ b/pkg/config/v1/validation/visitor.go @@ -42,7 +42,11 @@ func ValidateVisitorConfigurer(c v1.VisitorConfigurer) error { func validateVisitorBaseConfig(c *v1.VisitorBaseConfig) error { if c.Name == "" { - return errors.New("name should not be empty") + return errors.New("name is required") + } + + if c.ServerName == "" { + return errors.New("server name is required") } if c.BindPort == 0 { diff --git a/test/e2e/pkg/sdk/client/client.go b/pkg/sdk/client/client.go similarity index 79% rename from test/e2e/pkg/sdk/client/client.go rename to pkg/sdk/client/client.go index 3d157073e77..c9657905f24 100644 --- a/test/e2e/pkg/sdk/client/client.go +++ b/pkg/sdk/client/client.go @@ -10,7 +10,7 @@ import ( "strings" "github.com/fatedier/frp/client" - "github.com/fatedier/frp/test/e2e/pkg/utils" + "github.com/fatedier/frp/pkg/util/util" ) type Client struct { @@ -53,6 +53,22 @@ func (c *Client) GetProxyStatus(name string) (*client.ProxyStatusResp, error) { return nil, fmt.Errorf("no proxy status found") } +func (c *Client) GetAllProxyStatus() (client.StatusResp, error) { + req, err := http.NewRequest("GET", "http://"+c.address+"/api/status", nil) + if err != nil { + return nil, err + } + content, err := c.do(req) + if err != nil { + return nil, err + } + allStatus := make(client.StatusResp) + if err = json.Unmarshal([]byte(content), &allStatus); err != nil { + return nil, fmt.Errorf("unmarshal http response error: %s", strings.TrimSpace(content)) + } + return allStatus, nil +} + func (c *Client) Reload() error { req, err := http.NewRequest("GET", "http://"+c.address+"/api/reload", nil) if err != nil { @@ -90,7 +106,7 @@ func (c *Client) UpdateConfig(content string) error { func (c *Client) setAuthHeader(req *http.Request) { if c.authUser != "" || c.authPwd != "" { - req.Header.Set("Authorization", utils.BasicAuth(c.authUser, c.authPwd)) + req.Header.Set("Authorization", util.BasicAuth(c.authUser, c.authPwd)) } } diff --git a/pkg/util/util/http.go b/pkg/util/util/http.go index 7d6200a25ec..a6a25a4cbe1 100644 --- a/pkg/util/util/http.go +++ b/pkg/util/util/http.go @@ -95,3 +95,8 @@ func ParseBasicAuth(auth string) (username, password string, ok bool) { } return cs[:s], cs[s+1:], true } + +func BasicAuth(username, passwd string) string { + auth := username + ":" + passwd + return "Basic " + base64.StdEncoding.EncodeToString([]byte(auth)) +} diff --git a/test/e2e/legacy/basic/client.go b/test/e2e/legacy/basic/client.go index b2e462bbeb5..da23db9c1fe 100644 --- a/test/e2e/legacy/basic/client.go +++ b/test/e2e/legacy/basic/client.go @@ -8,10 +8,10 @@ import ( "github.com/onsi/ginkgo/v2" + clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/request" - clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" ) var _ = ginkgo.Describe("[Feature: ClientManage]", func() { diff --git a/test/e2e/legacy/basic/cmd.go b/test/e2e/legacy/basic/cmd.go index 89f2435dcf8..7d86233a0ad 100644 --- a/test/e2e/legacy/basic/cmd.go +++ b/test/e2e/legacy/basic/cmd.go @@ -1,7 +1,6 @@ package basic import ( - "fmt" "strconv" "strings" @@ -70,7 +69,7 @@ var _ = ginkgo.Describe("[Feature: Cmd]", func() { localPort := f.PortByName(framework.TCPEchoServerPort) remotePort := f.AllocPort() - _, _, err = f.RunFrpc("tcp", "-s", fmt.Sprintf("127.0.0.1:%d", serverPort), "-t", "123", "-u", "test", + _, _, err = f.RunFrpc("tcp", "-s", "127.0.0.1", "-P", strconv.Itoa(serverPort), "-t", "123", "-u", "test", "-l", strconv.Itoa(localPort), "-r", strconv.Itoa(remotePort), "-n", "tcp_test") framework.ExpectNoError(err) @@ -84,7 +83,7 @@ var _ = ginkgo.Describe("[Feature: Cmd]", func() { localPort := f.PortByName(framework.UDPEchoServerPort) remotePort := f.AllocPort() - _, _, err = f.RunFrpc("udp", "-s", fmt.Sprintf("127.0.0.1:%d", serverPort), "-t", "123", "-u", "test", + _, _, err = f.RunFrpc("udp", "-s", "127.0.0.1", "-P", strconv.Itoa(serverPort), "-t", "123", "-u", "test", "-l", strconv.Itoa(localPort), "-r", strconv.Itoa(remotePort), "-n", "udp_test") framework.ExpectNoError(err) @@ -98,7 +97,7 @@ var _ = ginkgo.Describe("[Feature: Cmd]", func() { _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort), "--vhost_http_port", strconv.Itoa(vhostHTTPPort)) framework.ExpectNoError(err) - _, _, err = f.RunFrpc("http", "-s", "127.0.0.1:"+strconv.Itoa(serverPort), "-t", "123", "-u", "test", + _, _, err = f.RunFrpc("http", "-s", "127.0.0.1", "-P", strconv.Itoa(serverPort), "-t", "123", "-u", "test", "-n", "udp_test", "-l", strconv.Itoa(f.PortByName(framework.HTTPSimpleServerPort)), "--custom_domain", "test.example.com") framework.ExpectNoError(err) diff --git a/test/e2e/legacy/basic/server.go b/test/e2e/legacy/basic/server.go index 08bc6b220ff..f3c2a22824e 100644 --- a/test/e2e/legacy/basic/server.go +++ b/test/e2e/legacy/basic/server.go @@ -7,11 +7,11 @@ import ( "github.com/onsi/ginkgo/v2" + clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/port" "github.com/fatedier/frp/test/e2e/pkg/request" - clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" ) var _ = ginkgo.Describe("[Feature: Server Manager]", func() { diff --git a/test/e2e/legacy/features/bandwidth_limit.go b/test/e2e/legacy/features/bandwidth_limit.go index cbc6e928d1b..c94e473f063 100644 --- a/test/e2e/legacy/features/bandwidth_limit.go +++ b/test/e2e/legacy/features/bandwidth_limit.go @@ -10,8 +10,8 @@ import ( plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" - plugintest "github.com/fatedier/frp/test/e2e/legacy/plugin" "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + pluginpkg "github.com/fatedier/frp/test/e2e/pkg/plugin" "github.com/fatedier/frp/test/e2e/pkg/request" ) @@ -65,7 +65,7 @@ var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { ret.Content = content return &ret } - pluginServer := plugintest.NewHTTPPluginServer(pluginPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(pluginPort, newFunc, handler, nil) f.RunServer("", pluginServer) diff --git a/test/e2e/legacy/plugin/server.go b/test/e2e/legacy/plugin/server.go index 0011b1b9ac7..3f14a42dcf6 100644 --- a/test/e2e/legacy/plugin/server.go +++ b/test/e2e/legacy/plugin/server.go @@ -10,6 +10,7 @@ import ( "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" + pluginpkg "github.com/fatedier/frp/test/e2e/pkg/plugin" ) var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { @@ -40,7 +41,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { } return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -98,7 +99,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { } return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -133,7 +134,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Content = content return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -174,7 +175,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { recordProxyName = content.ProxyName return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -226,7 +227,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Unchange = true return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -276,7 +277,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Unchange = true return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -321,7 +322,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Unchange = true return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -368,7 +369,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { } tlsConfig, err := transport.NewServerTLSConfig("", "", "") framework.ExpectNoError(err) - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, tlsConfig) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, tlsConfig) f.RunServer("", pluginServer) diff --git a/test/e2e/legacy/plugin/utils.go b/test/e2e/pkg/plugin/plugin.go similarity index 100% rename from test/e2e/legacy/plugin/utils.go rename to test/e2e/pkg/plugin/plugin.go diff --git a/test/e2e/pkg/request/request.go b/test/e2e/pkg/request/request.go index 44bc0d0ccb6..50deb3bf31a 100644 --- a/test/e2e/pkg/request/request.go +++ b/test/e2e/pkg/request/request.go @@ -14,8 +14,8 @@ import ( libdial "github.com/fatedier/golib/net/dial" + "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/test/e2e/pkg/rpc" - "github.com/fatedier/frp/test/e2e/pkg/utils" ) type Request struct { @@ -115,7 +115,7 @@ func (r *Request) HTTPHeaders(headers map[string]string) *Request { } func (r *Request) HTTPAuth(user, password string) *Request { - r.authValue = utils.BasicAuth(user, password) + r.authValue = util.BasicAuth(user, password) return r } diff --git a/test/e2e/pkg/utils/utils.go b/test/e2e/pkg/utils/utils.go deleted file mode 100644 index 7b177e14bb0..00000000000 --- a/test/e2e/pkg/utils/utils.go +++ /dev/null @@ -1,10 +0,0 @@ -package utils - -import ( - "encoding/base64" -) - -func BasicAuth(username, passwd string) string { - auth := username + ":" + passwd - return "Basic " + base64.StdEncoding.EncodeToString([]byte(auth)) -} diff --git a/test/e2e/v1/basic/client.go b/test/e2e/v1/basic/client.go index 111a238a61e..25b99424101 100644 --- a/test/e2e/v1/basic/client.go +++ b/test/e2e/v1/basic/client.go @@ -8,10 +8,10 @@ import ( "github.com/onsi/ginkgo/v2" + clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/request" - clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" ) var _ = ginkgo.Describe("[Feature: ClientManage]", func() { diff --git a/test/e2e/v1/basic/cmd.go b/test/e2e/v1/basic/cmd.go index 9d3120fa9dc..08a9ea943b9 100644 --- a/test/e2e/v1/basic/cmd.go +++ b/test/e2e/v1/basic/cmd.go @@ -1,7 +1,6 @@ package basic import ( - "fmt" "strconv" "strings" @@ -66,7 +65,7 @@ var _ = ginkgo.Describe("[Feature: Cmd]", func() { localPort := f.PortByName(framework.TCPEchoServerPort) remotePort := f.AllocPort() - _, _, err = f.RunFrpc("tcp", "-s", fmt.Sprintf("127.0.0.1:%d", serverPort), "-t", "123", "-u", "test", + _, _, err = f.RunFrpc("tcp", "-s", "127.0.0.1", "-P", strconv.Itoa(serverPort), "-t", "123", "-u", "test", "-l", strconv.Itoa(localPort), "-r", strconv.Itoa(remotePort), "-n", "tcp_test") framework.ExpectNoError(err) @@ -80,7 +79,7 @@ var _ = ginkgo.Describe("[Feature: Cmd]", func() { localPort := f.PortByName(framework.UDPEchoServerPort) remotePort := f.AllocPort() - _, _, err = f.RunFrpc("udp", "-s", fmt.Sprintf("127.0.0.1:%d", serverPort), "-t", "123", "-u", "test", + _, _, err = f.RunFrpc("udp", "-s", "127.0.0.1", "-P", strconv.Itoa(serverPort), "-t", "123", "-u", "test", "-l", strconv.Itoa(localPort), "-r", strconv.Itoa(remotePort), "-n", "udp_test") framework.ExpectNoError(err) @@ -94,7 +93,7 @@ var _ = ginkgo.Describe("[Feature: Cmd]", func() { _, _, err := f.RunFrps("-t", "123", "-p", strconv.Itoa(serverPort), "--vhost_http_port", strconv.Itoa(vhostHTTPPort)) framework.ExpectNoError(err) - _, _, err = f.RunFrpc("http", "-s", "127.0.0.1:"+strconv.Itoa(serverPort), "-t", "123", "-u", "test", + _, _, err = f.RunFrpc("http", "-s", "127.0.0.1", "-P", strconv.Itoa(serverPort), "-t", "123", "-u", "test", "-n", "udp_test", "-l", strconv.Itoa(f.PortByName(framework.HTTPSimpleServerPort)), "--custom_domain", "test.example.com") framework.ExpectNoError(err) diff --git a/test/e2e/v1/basic/server.go b/test/e2e/v1/basic/server.go index ff1225b8fc3..eed1ddaa3f1 100644 --- a/test/e2e/v1/basic/server.go +++ b/test/e2e/v1/basic/server.go @@ -7,11 +7,11 @@ import ( "github.com/onsi/ginkgo/v2" + clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/port" "github.com/fatedier/frp/test/e2e/pkg/request" - clientsdk "github.com/fatedier/frp/test/e2e/pkg/sdk/client" ) var _ = ginkgo.Describe("[Feature: Server Manager]", func() { diff --git a/test/e2e/v1/features/bandwidth_limit.go b/test/e2e/v1/features/bandwidth_limit.go index 5bf1c7967d1..efcf38ed3e7 100644 --- a/test/e2e/v1/features/bandwidth_limit.go +++ b/test/e2e/v1/features/bandwidth_limit.go @@ -10,8 +10,8 @@ import ( plugin "github.com/fatedier/frp/pkg/plugin/server" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" - plugintest "github.com/fatedier/frp/test/e2e/legacy/plugin" "github.com/fatedier/frp/test/e2e/mock/server/streamserver" + pluginpkg "github.com/fatedier/frp/test/e2e/pkg/plugin" "github.com/fatedier/frp/test/e2e/pkg/request" ) @@ -66,7 +66,7 @@ var _ = ginkgo.Describe("[Feature: Bandwidth Limit]", func() { ret.Content = content return &ret } - pluginServer := plugintest.NewHTTPPluginServer(pluginPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(pluginPort, newFunc, handler, nil) f.RunServer("", pluginServer) diff --git a/test/e2e/v1/plugin/server.go b/test/e2e/v1/plugin/server.go index 02e8469d57b..66456f57f95 100644 --- a/test/e2e/v1/plugin/server.go +++ b/test/e2e/v1/plugin/server.go @@ -10,6 +10,7 @@ import ( "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" + pluginpkg "github.com/fatedier/frp/test/e2e/pkg/plugin" ) var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { @@ -40,7 +41,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { } return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -101,7 +102,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { } return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -138,7 +139,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Content = content return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -181,7 +182,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { recordProxyName = content.ProxyName return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -235,7 +236,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Unchange = true return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -287,7 +288,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Unchange = true return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -334,7 +335,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { ret.Unchange = true return &ret } - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, nil) f.RunServer("", pluginServer) @@ -383,7 +384,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { } tlsConfig, err := transport.NewServerTLSConfig("", "", "") framework.ExpectNoError(err) - pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, tlsConfig) + pluginServer := pluginpkg.NewHTTPPluginServer(localPort, newFunc, handler, tlsConfig) f.RunServer("", pluginServer) diff --git a/test/e2e/v1/plugin/utils.go b/test/e2e/v1/plugin/utils.go deleted file mode 100644 index 51de01d9383..00000000000 --- a/test/e2e/v1/plugin/utils.go +++ /dev/null @@ -1,41 +0,0 @@ -package plugin - -import ( - "crypto/tls" - "encoding/json" - "io" - "net/http" - - plugin "github.com/fatedier/frp/pkg/plugin/server" - "github.com/fatedier/frp/pkg/util/log" - "github.com/fatedier/frp/test/e2e/mock/server/httpserver" -) - -type Handler func(req *plugin.Request) *plugin.Response - -type NewPluginRequest func() *plugin.Request - -func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler Handler, tlsConfig *tls.Config) *httpserver.Server { - return httpserver.New( - httpserver.WithBindPort(port), - httpserver.WithTLSConfig(tlsConfig), - httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - r := newFunc() - buf, err := io.ReadAll(req.Body) - if err != nil { - w.WriteHeader(500) - return - } - log.Trace("plugin request: %s", string(buf)) - err = json.Unmarshal(buf, &r) - if err != nil { - w.WriteHeader(500) - return - } - resp := handler(r) - buf, _ = json.Marshal(resp) - log.Trace("plugin response: %s", string(buf)) - _, _ = w.Write(buf) - })), - ) -} From 5c8ea51eb574dfcc5efc0bec788d321588d4c01b Mon Sep 17 00:00:00 2001 From: Zeyu Dong Date: Mon, 18 Sep 2023 02:28:05 -0400 Subject: [PATCH 099/444] return ssl alert unrecognized_name when https domain not registered (#3620) --- pkg/util/tcpmux/httpconnect.go | 12 +++++++++++- pkg/util/vhost/http.go | 2 +- pkg/util/vhost/https.go | 7 +++++++ pkg/util/vhost/resource.go | 2 +- pkg/util/vhost/vhost.go | 14 ++++++++------ 5 files changed, 28 insertions(+), 9 deletions(-) diff --git a/pkg/util/tcpmux/httpconnect.go b/pkg/util/tcpmux/httpconnect.go index 650891f40b1..17989adcad5 100644 --- a/pkg/util/tcpmux/httpconnect.go +++ b/pkg/util/tcpmux/httpconnect.go @@ -40,7 +40,8 @@ func NewHTTPConnectTCPMuxer(listener net.Listener, passthrough bool, timeout tim ret := &HTTPConnectTCPMuxer{passthrough: passthrough} mux, err := vhost.NewMuxer(listener, ret.getHostFromHTTPConnect, timeout) mux.SetCheckAuthFunc(ret.auth). - SetSuccessHookFunc(ret.sendConnectResponse) + SetSuccessHookFunc(ret.sendConnectResponse). + SetFailHookFunc(vhostFailed) ret.Muxer = mux return ret, err } @@ -92,6 +93,15 @@ func (muxer *HTTPConnectTCPMuxer) auth(c net.Conn, username, password string, re return false, nil } +func vhostFailed(c net.Conn) { + res := vhost.NotFoundResponse() + if res.Body != nil { + defer res.Body.Close() + } + _ = res.Write(c) + _ = c.Close() +} + func (muxer *HTTPConnectTCPMuxer) getHostFromHTTPConnect(c net.Conn) (net.Conn, map[string]string, error) { reqInfoMap := make(map[string]string, 0) sc, rd := libnet.NewSharedConn(c) diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index af3a4ab5146..7b914ce9b74 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -251,7 +251,7 @@ func (rp *HTTPReverseProxy) connectHandler(rw http.ResponseWriter, req *http.Req remote, err := rp.CreateConnection(req.Context().Value(RouteInfoKey).(*RequestRouteInfo), false) if err != nil { - _ = notFoundResponse().Write(client) + _ = NotFoundResponse().Write(client) client.Close() return } diff --git a/pkg/util/vhost/https.go b/pkg/util/vhost/https.go index e15c1901b43..bcfdb81e387 100644 --- a/pkg/util/vhost/https.go +++ b/pkg/util/vhost/https.go @@ -29,6 +29,7 @@ type HTTPSMuxer struct { func NewHTTPSMuxer(listener net.Listener, timeout time.Duration) (*HTTPSMuxer, error) { mux, err := NewMuxer(listener, GetHTTPSHostname, timeout) + mux.SetFailHookFunc(vhostFailed) if err != nil { return nil, err } @@ -69,6 +70,12 @@ func readClientHello(reader io.Reader) (*tls.ClientHelloInfo, error) { return hello, nil } +func vhostFailed(c net.Conn) { + // Alert with alertUnrecognizedName + _ = tls.Server(c, &tls.Config{}).Handshake() + c.Close() +} + type readOnlyConn struct { reader io.Reader } diff --git a/pkg/util/vhost/resource.go b/pkg/util/vhost/resource.go index e09edf21ef7..d78082b24d0 100644 --- a/pkg/util/vhost/resource.go +++ b/pkg/util/vhost/resource.go @@ -67,7 +67,7 @@ func getNotFoundPageContent() []byte { return buf } -func notFoundResponse() *http.Response { +func NotFoundResponse() *http.Response { header := make(http.Header) header.Set("server", "frp/"+version.Full()) header.Set("Content-Type", "text/html") diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index 6051a217f5c..29123b695d9 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -46,6 +46,7 @@ type ( authFunc func(conn net.Conn, username, password string, reqInfoMap map[string]string) (bool, error) hostRewriteFunc func(net.Conn, string) (net.Conn, error) successHookFunc func(net.Conn, map[string]string) error + failHookFunc func(net.Conn) ) // Muxer is a functional component used for https and tcpmux proxies. @@ -58,6 +59,7 @@ type Muxer struct { vhostFunc muxFunc checkAuth authFunc successHook successHookFunc + failHook failHookFunc rewriteHost hostRewriteFunc registryRouter *Routers } @@ -87,6 +89,11 @@ func (v *Muxer) SetSuccessHookFunc(f successHookFunc) *Muxer { return v } +func (v *Muxer) SetFailHookFunc(f failHookFunc) *Muxer { + v.failHook = f + return v +} + func (v *Muxer) SetRewriteHostFunc(f hostRewriteFunc) *Muxer { v.rewriteHost = f return v @@ -206,13 +213,8 @@ func (v *Muxer) handle(c net.Conn) { httpUser := reqInfoMap["HTTPUser"] l, ok := v.getListener(name, path, httpUser) if !ok { - res := notFoundResponse() - if res.Body != nil { - defer res.Body.Close() - } - _ = res.Write(c) log.Debug("http request for host [%s] path [%s] httpUser [%s] not found", name, path, httpUser) - _ = c.Close() + v.failHook(sConn) return } From 5e70d5bee0e99eeaccd555cc24bd76a3d5bfe045 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 20 Sep 2023 15:18:50 +0800 Subject: [PATCH 100/444] code optimization (#3625) --- client/proxy/proxy.go | 15 ++++----- cmd/frpc/sub/admin.go | 4 +-- cmd/frpc/sub/proxy.go | 35 ++++++++++----------- pkg/auth/auth.go | 9 +++--- pkg/config/legacy/conversion.go | 4 +-- pkg/config/legacy/proxy.go | 40 ++++++++++++++--------- pkg/config/legacy/visitor.go | 20 +++++++----- pkg/config/load.go | 5 ++- pkg/config/v1/client.go | 2 +- pkg/config/v1/client_test.go | 2 +- pkg/config/v1/common.go | 7 +++++ pkg/config/v1/proxy.go | 42 ++++++++++++++++++------- pkg/config/v1/server.go | 2 +- pkg/config/v1/server_test.go | 2 +- pkg/config/v1/validation/proxy.go | 5 ++- pkg/config/v1/validation/validation.go | 2 +- pkg/config/v1/visitor.go | 21 ++++++++----- pkg/consts/consts.go | 41 ------------------------ pkg/plugin/client/http2https.go | 2 +- pkg/plugin/client/http_proxy.go | 2 +- pkg/plugin/client/https2http.go | 2 +- pkg/plugin/client/https2https.go | 2 +- pkg/plugin/client/plugin.go | 8 +++-- pkg/plugin/client/socks5.go | 2 +- pkg/plugin/client/static_file.go | 2 +- pkg/plugin/client/unix_domain_socket.go | 6 ++-- pkg/util/version/version.go | 35 --------------------- pkg/util/version/version_test.go | 12 ------- server/control.go | 10 +++++- server/dashboard_api.go | 27 ++++++++-------- server/group/tcpmux.go | 6 ++-- server/proxy/proxy.go | 27 ++++++++++------ server/proxy/tcpmux.go | 5 ++- server/service.go | 6 ---- 34 files changed, 190 insertions(+), 222 deletions(-) delete mode 100644 pkg/consts/consts.go diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 4bdd4285fe5..5ba63f94cce 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -15,7 +15,6 @@ package proxy import ( - "bytes" "context" "io" "net" @@ -149,7 +148,7 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } // check if we need to send proxy protocol info - var extraInfo []byte + var extraInfo plugin.ExtraInfo if baseCfg.Transport.ProxyProtocolVersion != "" { if m.SrcAddr != "" && m.SrcPort != 0 { if m.DstAddr == "" { @@ -175,16 +174,14 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor h.Version = 2 } - buf := bytes.NewBuffer(nil) - _, _ = h.WriteTo(buf) - extraInfo = buf.Bytes() + extraInfo.ProxyProtocolHeader = h } } if pxy.proxyPlugin != nil { // if plugin is set, let plugin handle connection first xl.Debug("handle by plugin: %s", pxy.proxyPlugin.Name()) - pxy.proxyPlugin.Handle(remote, workConn, extraInfo) + pxy.proxyPlugin.Handle(remote, workConn, &extraInfo) xl.Debug("handle by plugin finished") return } @@ -202,10 +199,10 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor xl.Debug("join connections, localConn(l[%s] r[%s]) workConn(l[%s] r[%s])", localConn.LocalAddr().String(), localConn.RemoteAddr().String(), workConn.LocalAddr().String(), workConn.RemoteAddr().String()) - if len(extraInfo) > 0 { - if _, err := localConn.Write(extraInfo); err != nil { + if extraInfo.ProxyProtocolHeader != nil { + if _, err := extraInfo.ProxyProtocolHeader.WriteTo(localConn); err != nil { workConn.Close() - xl.Error("write extraInfo to local conn error: %v", err) + xl.Error("write proxy protocol header to local conn error: %v", err) return } } diff --git a/cmd/frpc/sub/admin.go b/cmd/frpc/sub/admin.go index c5514bc1397..2a5f2830a15 100644 --- a/cmd/frpc/sub/admin.go +++ b/cmd/frpc/sub/admin.go @@ -90,12 +90,12 @@ func StatusHandler(clientCfg *v1.ClientCommonConfig) error { fmt.Printf("Proxy Status...\n\n") for _, typ := range proxyTypes { - arrs := res[typ] + arrs := res[string(typ)] if len(arrs) == 0 { continue } - fmt.Println(strings.ToUpper(typ)) + fmt.Println(strings.ToUpper(string(typ))) tbl := table.New("Name", "Status", "LocalAddr", "Plugin", "RemoteAddr", "Error") for _, ps := range arrs { tbl.AddRow(ps.Name, ps.Status, ps.LocalAddr, ps.Plugin, ps.RemoteAddr, ps.Err) diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go index d27d3fadc71..7ae8d353b39 100644 --- a/cmd/frpc/sub/proxy.go +++ b/cmd/frpc/sub/proxy.go @@ -23,24 +23,23 @@ import ( v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" ) -var proxyTypes = []string{ - consts.TCPProxy, - consts.UDPProxy, - consts.TCPMuxProxy, - consts.HTTPProxy, - consts.HTTPSProxy, - consts.STCPProxy, - consts.SUDPProxy, - consts.XTCPProxy, +var proxyTypes = []v1.ProxyType{ + v1.ProxyTypeTCP, + v1.ProxyTypeUDP, + v1.ProxyTypeTCPMUX, + v1.ProxyTypeHTTP, + v1.ProxyTypeHTTPS, + v1.ProxyTypeSTCP, + v1.ProxyTypeSUDP, + v1.ProxyTypeXTCP, } -var visitorTypes = []string{ - consts.STCPProxy, - consts.SUDPProxy, - consts.XTCPProxy, +var visitorTypes = []v1.VisitorType{ + v1.VisitorTypeSTCP, + v1.VisitorTypeSUDP, + v1.VisitorTypeXTCP, } func init() { @@ -50,17 +49,17 @@ func init() { panic("proxy type: " + typ + " not support") } clientCfg := v1.ClientCommonConfig{} - cmd := NewProxyCommand(typ, c, &clientCfg) + cmd := NewProxyCommand(string(typ), c, &clientCfg) RegisterClientCommonConfigFlags(cmd, &clientCfg) RegisterProxyFlags(cmd, c) // add sub command for visitor - if lo.Contains(visitorTypes, typ) { - vc := v1.NewVisitorConfigurerByType(typ) + if lo.Contains(visitorTypes, v1.VisitorType(typ)) { + vc := v1.NewVisitorConfigurerByType(v1.VisitorType(typ)) if vc == nil { panic("visitor type: " + typ + " not support") } - visitorCmd := NewVisitorCommand(typ, vc, &clientCfg) + visitorCmd := NewVisitorCommand(string(typ), vc, &clientCfg) RegisterVisitorFlags(visitorCmd, vc) cmd.AddCommand(visitorCmd) } diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go index 4c654906ea0..9d8db7b686b 100644 --- a/pkg/auth/auth.go +++ b/pkg/auth/auth.go @@ -18,7 +18,6 @@ import ( "fmt" v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/msg" ) @@ -30,9 +29,9 @@ type Setter interface { func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter) { switch cfg.Method { - case consts.TokenAuthMethod: + case v1.AuthMethodToken: authProvider = NewTokenAuth(cfg.AdditionalScopes, cfg.Token) - case consts.OidcAuthMethod: + case v1.AuthMethodOIDC: authProvider = NewOidcAuthSetter(cfg.AdditionalScopes, cfg.OIDC) default: panic(fmt.Sprintf("wrong method: '%s'", cfg.Method)) @@ -48,9 +47,9 @@ type Verifier interface { func NewAuthVerifier(cfg v1.AuthServerConfig) (authVerifier Verifier) { switch cfg.Method { - case consts.TokenAuthMethod: + case v1.AuthMethodToken: authVerifier = NewTokenAuth(cfg.AdditionalScopes, cfg.Token) - case consts.OidcAuthMethod: + case v1.AuthMethodOIDC: authVerifier = NewOidcAuthVerifier(cfg.AdditionalScopes, cfg.OIDC) } return authVerifier diff --git a/pkg/config/legacy/conversion.go b/pkg/config/legacy/conversion.go index 2540217f663..189cd73dbdb 100644 --- a/pkg/config/legacy/conversion.go +++ b/pkg/config/legacy/conversion.go @@ -26,7 +26,7 @@ import ( func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCommonConfig { out := &v1.ClientCommonConfig{} out.User = conf.User - out.Auth.Method = conf.ClientConfig.AuthenticationMethod + out.Auth.Method = v1.AuthMethod(conf.ClientConfig.AuthenticationMethod) out.Auth.Token = conf.ClientConfig.Token if conf.ClientConfig.AuthenticateHeartBeats { out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeHeartBeats) @@ -86,7 +86,7 @@ func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCommonConf func Convert_ServerCommonConf_To_v1(conf *ServerCommonConf) *v1.ServerConfig { out := &v1.ServerConfig{} - out.Auth.Method = conf.ServerConfig.AuthenticationMethod + out.Auth.Method = v1.AuthMethod(conf.ServerConfig.AuthenticationMethod) out.Auth.Token = conf.ServerConfig.Token if conf.ServerConfig.AuthenticateHeartBeats { out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeHeartBeats) diff --git a/pkg/config/legacy/proxy.go b/pkg/config/legacy/proxy.go index a6ce55aba4d..e6653ee9787 100644 --- a/pkg/config/legacy/proxy.go +++ b/pkg/config/legacy/proxy.go @@ -21,20 +21,32 @@ import ( "gopkg.in/ini.v1" "github.com/fatedier/frp/pkg/config/types" - "github.com/fatedier/frp/pkg/consts" +) + +type ProxyType string + +const ( + ProxyTypeTCP ProxyType = "tcp" + ProxyTypeUDP ProxyType = "udp" + ProxyTypeTCPMUX ProxyType = "tcpmux" + ProxyTypeHTTP ProxyType = "http" + ProxyTypeHTTPS ProxyType = "https" + ProxyTypeSTCP ProxyType = "stcp" + ProxyTypeXTCP ProxyType = "xtcp" + ProxyTypeSUDP ProxyType = "sudp" ) // Proxy var ( - proxyConfTypeMap = map[string]reflect.Type{ - consts.TCPProxy: reflect.TypeOf(TCPProxyConf{}), - consts.TCPMuxProxy: reflect.TypeOf(TCPMuxProxyConf{}), - consts.UDPProxy: reflect.TypeOf(UDPProxyConf{}), - consts.HTTPProxy: reflect.TypeOf(HTTPProxyConf{}), - consts.HTTPSProxy: reflect.TypeOf(HTTPSProxyConf{}), - consts.STCPProxy: reflect.TypeOf(STCPProxyConf{}), - consts.XTCPProxy: reflect.TypeOf(XTCPProxyConf{}), - consts.SUDPProxy: reflect.TypeOf(SUDPProxyConf{}), + proxyConfTypeMap = map[ProxyType]reflect.Type{ + ProxyTypeTCP: reflect.TypeOf(TCPProxyConf{}), + ProxyTypeUDP: reflect.TypeOf(UDPProxyConf{}), + ProxyTypeTCPMUX: reflect.TypeOf(TCPMuxProxyConf{}), + ProxyTypeHTTP: reflect.TypeOf(HTTPProxyConf{}), + ProxyTypeHTTPS: reflect.TypeOf(HTTPSProxyConf{}), + ProxyTypeSTCP: reflect.TypeOf(STCPProxyConf{}), + ProxyTypeXTCP: reflect.TypeOf(XTCPProxyConf{}), + ProxyTypeSUDP: reflect.TypeOf(SUDPProxyConf{}), } ) @@ -46,7 +58,7 @@ type ProxyConf interface { UnmarshalFromIni(string, string, *ini.Section) error } -func NewConfByType(proxyType string) ProxyConf { +func NewConfByType(proxyType ProxyType) ProxyConf { v, ok := proxyConfTypeMap[proxyType] if !ok { return nil @@ -58,16 +70,16 @@ func NewConfByType(proxyType string) ProxyConf { // Proxy Conf Loader // DefaultProxyConf creates a empty ProxyConf object by proxyType. // If proxyType doesn't exist, return nil. -func DefaultProxyConf(proxyType string) ProxyConf { +func DefaultProxyConf(proxyType ProxyType) ProxyConf { return NewConfByType(proxyType) } // Proxy loaded from ini func NewProxyConfFromIni(prefix, name string, section *ini.Section) (ProxyConf, error) { // section.Key: if key not exists, section will set it with default value. - proxyType := section.Key("type").String() + proxyType := ProxyType(section.Key("type").String()) if proxyType == "" { - proxyType = consts.TCPProxy + proxyType = ProxyTypeTCP } conf := DefaultProxyConf(proxyType) diff --git a/pkg/config/legacy/visitor.go b/pkg/config/legacy/visitor.go index 5ee36a1ac1c..031c29bfa9a 100644 --- a/pkg/config/legacy/visitor.go +++ b/pkg/config/legacy/visitor.go @@ -19,16 +19,22 @@ import ( "reflect" "gopkg.in/ini.v1" +) + +type VisitorType string - "github.com/fatedier/frp/pkg/consts" +const ( + VisitorTypeSTCP VisitorType = "stcp" + VisitorTypeXTCP VisitorType = "xtcp" + VisitorTypeSUDP VisitorType = "sudp" ) // Visitor var ( - visitorConfTypeMap = map[string]reflect.Type{ - consts.STCPProxy: reflect.TypeOf(STCPVisitorConf{}), - consts.XTCPProxy: reflect.TypeOf(XTCPVisitorConf{}), - consts.SUDPProxy: reflect.TypeOf(SUDPVisitorConf{}), + visitorConfTypeMap = map[VisitorType]reflect.Type{ + VisitorTypeSTCP: reflect.TypeOf(STCPVisitorConf{}), + VisitorTypeXTCP: reflect.TypeOf(XTCPVisitorConf{}), + VisitorTypeSUDP: reflect.TypeOf(SUDPVisitorConf{}), } ) @@ -41,7 +47,7 @@ type VisitorConf interface { // DefaultVisitorConf creates a empty VisitorConf object by visitorType. // If visitorType doesn't exist, return nil. -func DefaultVisitorConf(visitorType string) VisitorConf { +func DefaultVisitorConf(visitorType VisitorType) VisitorConf { v, ok := visitorConfTypeMap[visitorType] if !ok { return nil @@ -161,7 +167,7 @@ func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name string, section // Visitor loaded from ini func NewVisitorConfFromIni(prefix string, name string, section *ini.Section) (VisitorConf, error) { // section.Key: if key not exists, section will set it with default value. - visitorType := section.Key("type").String() + visitorType := VisitorType(section.Key("type").String()) if visitorType == "" { return nil, fmt.Errorf("type shouldn't be empty") diff --git a/pkg/config/load.go b/pkg/config/load.go index 739c4a8ca3d..af2c3e80704 100644 --- a/pkg/config/load.go +++ b/pkg/config/load.go @@ -32,7 +32,6 @@ import ( "github.com/fatedier/frp/pkg/config/legacy" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/util" ) @@ -124,9 +123,9 @@ func LoadConfigure(b []byte, c any) error { } func NewProxyConfigurerFromMsg(m *msg.NewProxy, serverCfg *v1.ServerConfig) (v1.ProxyConfigurer, error) { - m.ProxyType = util.EmptyOr(m.ProxyType, consts.TCPProxy) + m.ProxyType = util.EmptyOr(m.ProxyType, string(v1.ProxyTypeTCP)) - configurer := v1.NewProxyConfigurerByType(m.ProxyType) + configurer := v1.NewProxyConfigurerByType(v1.ProxyType(m.ProxyType)) if configurer == nil { return nil, fmt.Errorf("unknown proxy type: %s", m.ProxyType) } diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index 6c68738bf64..76e317108f7 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -165,7 +165,7 @@ type AuthClientConfig struct { // authenticate frpc with frps. If "token" is specified - token will be // read into login message. If "oidc" is specified - OIDC (Open ID Connect) // token will be issued using OIDC settings. By default, this value is "token". - Method string `json:"method,omitempty"` + Method AuthMethod `json:"method,omitempty"` // Specify whether to include auth info in additional scope. // Current supported scopes are: "HeartBeats", "NewWorkConns". AdditionalScopes []AuthScope `json:"additionalScopes,omitempty"` diff --git a/pkg/config/v1/client_test.go b/pkg/config/v1/client_test.go index 01acbf0b395..9a3662caa86 100644 --- a/pkg/config/v1/client_test.go +++ b/pkg/config/v1/client_test.go @@ -26,7 +26,7 @@ func TestClientConfigComplete(t *testing.T) { c := &ClientConfig{} c.Complete() - require.Equal("token", c.Auth.Method) + require.EqualValues("token", c.Auth.Method) require.Equal(true, lo.FromPtr(c.Transport.TCPMux)) require.Equal(true, lo.FromPtr(c.LoginFailExit)) require.Equal(true, lo.FromPtr(c.Transport.TLS.Enable)) diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go index dcb7b5ec9dc..be4e39a0220 100644 --- a/pkg/config/v1/common.go +++ b/pkg/config/v1/common.go @@ -25,6 +25,13 @@ const ( AuthScopeNewWorkConns AuthScope = "NewWorkConns" ) +type AuthMethod string + +const ( + AuthMethodToken AuthMethod = "token" + AuthMethodOIDC AuthMethod = "oidc" +) + // QUIC protocol options type QUICOptions struct { KeepalivePeriod int `json:"quicKeepalivePeriod,omitempty" validate:"gte=0"` diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index 60107ed6498..dc09c6b9a33 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -23,7 +23,6 @@ import ( "github.com/samber/lo" "github.com/fatedier/frp/pkg/config/types" - "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/util" ) @@ -174,7 +173,7 @@ func (c *TypedProxyConfig) UnmarshalJSON(b []byte) error { } c.Type = typeStruct.Type - configurer := NewProxyConfigurerByType(typeStruct.Type) + configurer := NewProxyConfigurerByType(ProxyType(typeStruct.Type)) if configurer == nil { return fmt.Errorf("unknown proxy type: %s", typeStruct.Type) } @@ -196,18 +195,31 @@ type ProxyConfigurer interface { UnmarshalFromMsg(*msg.NewProxy) } -var proxyConfigTypeMap = map[string]reflect.Type{ - consts.TCPProxy: reflect.TypeOf(TCPProxyConfig{}), - consts.UDPProxy: reflect.TypeOf(UDPProxyConfig{}), - consts.HTTPProxy: reflect.TypeOf(HTTPProxyConfig{}), - consts.HTTPSProxy: reflect.TypeOf(HTTPSProxyConfig{}), - consts.TCPMuxProxy: reflect.TypeOf(TCPMuxProxyConfig{}), - consts.STCPProxy: reflect.TypeOf(STCPProxyConfig{}), - consts.XTCPProxy: reflect.TypeOf(XTCPProxyConfig{}), - consts.SUDPProxy: reflect.TypeOf(SUDPProxyConfig{}), +type ProxyType string + +const ( + ProxyTypeTCP ProxyType = "tcp" + ProxyTypeUDP ProxyType = "udp" + ProxyTypeTCPMUX ProxyType = "tcpmux" + ProxyTypeHTTP ProxyType = "http" + ProxyTypeHTTPS ProxyType = "https" + ProxyTypeSTCP ProxyType = "stcp" + ProxyTypeXTCP ProxyType = "xtcp" + ProxyTypeSUDP ProxyType = "sudp" +) + +var proxyConfigTypeMap = map[ProxyType]reflect.Type{ + ProxyTypeTCP: reflect.TypeOf(TCPProxyConfig{}), + ProxyTypeUDP: reflect.TypeOf(UDPProxyConfig{}), + ProxyTypeHTTP: reflect.TypeOf(HTTPProxyConfig{}), + ProxyTypeHTTPS: reflect.TypeOf(HTTPSProxyConfig{}), + ProxyTypeTCPMUX: reflect.TypeOf(TCPMuxProxyConfig{}), + ProxyTypeSTCP: reflect.TypeOf(STCPProxyConfig{}), + ProxyTypeXTCP: reflect.TypeOf(XTCPProxyConfig{}), + ProxyTypeSUDP: reflect.TypeOf(SUDPProxyConfig{}), } -func NewProxyConfigurerByType(proxyType string) ProxyConfigurer { +func NewProxyConfigurerByType(proxyType ProxyType) ProxyConfigurer { v, ok := proxyConfigTypeMap[proxyType] if !ok { return nil @@ -316,6 +328,12 @@ func (c *HTTPSProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { c.SubDomain = m.SubDomain } +type TCPMultiplexerType string + +const ( + TCPMultiplexerHTTPConnect TCPMultiplexerType = "httpconnect" +) + var _ ProxyConfigurer = &TCPMuxProxyConfig{} type TCPMuxProxyConfig struct { diff --git a/pkg/config/v1/server.go b/pkg/config/v1/server.go index 53d758d8d4c..380bd2d9267 100644 --- a/pkg/config/v1/server.go +++ b/pkg/config/v1/server.go @@ -120,7 +120,7 @@ func (c *ServerConfig) Complete() { } type AuthServerConfig struct { - Method string `json:"method,omitempty"` + Method AuthMethod `json:"method,omitempty"` AdditionalScopes []AuthScope `json:"additionalScopes,omitempty"` Token string `json:"token,omitempty"` OIDC AuthOIDCServerConfig `json:"oidc,omitempty"` diff --git a/pkg/config/v1/server_test.go b/pkg/config/v1/server_test.go index 8ce5b2c19f2..3100fc4b12f 100644 --- a/pkg/config/v1/server_test.go +++ b/pkg/config/v1/server_test.go @@ -26,7 +26,7 @@ func TestServerConfigComplete(t *testing.T) { c := &ServerConfig{} c.Complete() - require.Equal("token", c.Auth.Method) + require.EqualValues("token", c.Auth.Method) require.Equal(true, lo.FromPtr(c.Transport.TCPMux)) require.Equal(true, lo.FromPtr(c.DetailedErrorsToClient)) } diff --git a/pkg/config/v1/validation/proxy.go b/pkg/config/v1/validation/proxy.go index c53cf7fc363..65970e9f484 100644 --- a/pkg/config/v1/validation/proxy.go +++ b/pkg/config/v1/validation/proxy.go @@ -22,7 +22,6 @@ import ( "github.com/samber/lo" v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/consts" ) func validateProxyBaseConfigForClient(c *v1.ProxyBaseConfig) error { @@ -134,7 +133,7 @@ func validateTCPMuxProxyConfigForClient(c *v1.TCPMuxProxyConfig) error { return err } - if !lo.Contains([]string{consts.HTTPConnectTCPMultiplexer}, c.Multiplexer) { + if !lo.Contains([]string{string(v1.TCPMultiplexerHTTPConnect)}, c.Multiplexer) { return fmt.Errorf("not support multiplexer: %s", c.Multiplexer) } return nil @@ -197,7 +196,7 @@ func validateUDPProxyConfigForServer(c *v1.UDPProxyConfig, s *v1.ServerConfig) e } func validateTCPMuxProxyConfigForServer(c *v1.TCPMuxProxyConfig, s *v1.ServerConfig) error { - if c.Multiplexer == consts.HTTPConnectTCPMultiplexer && + if c.Multiplexer == string(v1.TCPMultiplexerHTTPConnect) && s.TCPMuxHTTPConnectPort == 0 { return fmt.Errorf("tcpmux with multiplexer httpconnect not supported because this feature is not enabled in server") } diff --git a/pkg/config/v1/validation/validation.go b/pkg/config/v1/validation/validation.go index dcce5f7100f..4ca6b67f0f0 100644 --- a/pkg/config/v1/validation/validation.go +++ b/pkg/config/v1/validation/validation.go @@ -30,7 +30,7 @@ var ( "wss", } - SupportedAuthMethods = []string{ + SupportedAuthMethods = []v1.AuthMethod{ "token", "oidc", } diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go index 6e229880893..90ecd86d191 100644 --- a/pkg/config/v1/visitor.go +++ b/pkg/config/v1/visitor.go @@ -22,7 +22,6 @@ import ( "github.com/samber/lo" - "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/util/util" ) @@ -73,10 +72,18 @@ type VisitorConfigurer interface { GetBaseConfig() *VisitorBaseConfig } -var visitorConfigTypeMap = map[string]reflect.Type{ - consts.STCPProxy: reflect.TypeOf(STCPVisitorConfig{}), - consts.XTCPProxy: reflect.TypeOf(XTCPVisitorConfig{}), - consts.SUDPProxy: reflect.TypeOf(SUDPVisitorConfig{}), +type VisitorType string + +const ( + VisitorTypeSTCP VisitorType = "stcp" + VisitorTypeXTCP VisitorType = "xtcp" + VisitorTypeSUDP VisitorType = "sudp" +) + +var visitorConfigTypeMap = map[VisitorType]reflect.Type{ + VisitorTypeSTCP: reflect.TypeOf(STCPVisitorConfig{}), + VisitorTypeXTCP: reflect.TypeOf(XTCPVisitorConfig{}), + VisitorTypeSUDP: reflect.TypeOf(SUDPVisitorConfig{}), } type TypedVisitorConfig struct { @@ -97,7 +104,7 @@ func (c *TypedVisitorConfig) UnmarshalJSON(b []byte) error { } c.Type = typeStruct.Type - configurer := NewVisitorConfigurerByType(typeStruct.Type) + configurer := NewVisitorConfigurerByType(VisitorType(typeStruct.Type)) if configurer == nil { return fmt.Errorf("unknown visitor type: %s", typeStruct.Type) } @@ -108,7 +115,7 @@ func (c *TypedVisitorConfig) UnmarshalJSON(b []byte) error { return nil } -func NewVisitorConfigurerByType(t string) VisitorConfigurer { +func NewVisitorConfigurerByType(t VisitorType) VisitorConfigurer { v, ok := visitorConfigTypeMap[t] if !ok { return nil diff --git a/pkg/consts/consts.go b/pkg/consts/consts.go deleted file mode 100644 index 9e4438349b6..00000000000 --- a/pkg/consts/consts.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2016 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package consts - -var ( - // proxy status - Idle = "idle" - Working = "working" - Closed = "closed" - Online = "online" - Offline = "offline" - - // proxy type - TCPProxy = "tcp" - UDPProxy = "udp" - TCPMuxProxy = "tcpmux" - HTTPProxy = "http" - HTTPSProxy = "https" - STCPProxy = "stcp" - XTCPProxy = "xtcp" - SUDPProxy = "sudp" - - // authentication method - TokenAuthMethod = "token" - OidcAuthMethod = "oidc" - - // TCP multiplexer - HTTPConnectTCPMultiplexer = "httpconnect" -) diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index 712a24be223..7f093af1b0f 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -76,7 +76,7 @@ func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { return p, nil } -func (p *HTTP2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { +func (p *HTTP2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index 6af7c103d5e..06c6296a11d 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -65,7 +65,7 @@ func (hp *HTTPProxy) Name() string { return v1.PluginHTTPProxy } -func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { +func (hp *HTTPProxy) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) sc, rd := libnet.NewSharedConn(wrapConn) diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 0adfabf0f1e..aa498f3f1a9 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -95,7 +95,7 @@ func (p *HTTPS2HTTPPlugin) genTLSConfig() (*tls.Config, error) { return config, nil } -func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { +func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index 374755e6c6d..fc38f62b364 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -101,7 +101,7 @@ func (p *HTTPS2HTTPSPlugin) genTLSConfig() (*tls.Config, error) { return config, nil } -func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { +func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/plugin.go b/pkg/plugin/client/plugin.go index da0ceb59d8f..520e379441f 100644 --- a/pkg/plugin/client/plugin.go +++ b/pkg/plugin/client/plugin.go @@ -21,6 +21,7 @@ import ( "sync" "github.com/fatedier/golib/errors" + pp "github.com/pires/go-proxyproto" v1 "github.com/fatedier/frp/pkg/config/v1" ) @@ -47,11 +48,14 @@ func Create(name string, options v1.ClientPluginOptions) (p Plugin, err error) { return } +type ExtraInfo struct { + ProxyProtocolHeader *pp.Header +} + type Plugin interface { Name() string - // extraBufToLocal will send to local connection first, then join conn with local connection - Handle(conn io.ReadWriteCloser, realConn net.Conn, extraBufToLocal []byte) + Handle(conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo) Close() error } diff --git a/pkg/plugin/client/socks5.go b/pkg/plugin/client/socks5.go index f71d579b795..c2e253d241f 100644 --- a/pkg/plugin/client/socks5.go +++ b/pkg/plugin/client/socks5.go @@ -48,7 +48,7 @@ func NewSocks5Plugin(options v1.ClientPluginOptions) (p Plugin, err error) { return } -func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { +func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { defer conn.Close() wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = sp.Server.ServeConn(wrapConn) diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index 9140ffd6057..20b79a099da 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -66,7 +66,7 @@ func NewStaticFilePlugin(options v1.ClientPluginOptions) (Plugin, error) { return sp, nil } -func (sp *StaticFilePlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ []byte) { +func (sp *StaticFilePlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { wrapConn := utilnet.WrapReadWriteCloserToConn(conn, realConn) _ = sp.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/unix_domain_socket.go b/pkg/plugin/client/unix_domain_socket.go index 266a529e3d1..f186ec925ea 100644 --- a/pkg/plugin/client/unix_domain_socket.go +++ b/pkg/plugin/client/unix_domain_socket.go @@ -46,13 +46,13 @@ func NewUnixDomainSocketPlugin(options v1.ClientPluginOptions) (p Plugin, err er return } -func (uds *UnixDomainSocketPlugin) Handle(conn io.ReadWriteCloser, _ net.Conn, extraBufToLocal []byte) { +func (uds *UnixDomainSocketPlugin) Handle(conn io.ReadWriteCloser, _ net.Conn, extra *ExtraInfo) { localConn, err := net.DialUnix("unix", nil, uds.UnixAddr) if err != nil { return } - if len(extraBufToLocal) > 0 { - if _, err := localConn.Write(extraBufToLocal); err != nil { + if extra.ProxyProtocolHeader != nil { + if _, err := extra.ProxyProtocolHeader.WriteTo(localConn); err != nil { return } } diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 9a9135940c6..32a94580ea7 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -45,38 +45,3 @@ func Major(v string) int64 { func Minor(v string) int64 { return getSubVersion(v, 2) } - -// add every case there if server will not accept client's protocol and return false -func Compat(client string) (ok bool, msg string) { - if LessThan(client, "0.18.0") { - return false, "Please upgrade your frpc version to at least 0.18.0" - } - return true, "" -} - -func LessThan(client string, server string) bool { - vc := Proto(client) - vs := Proto(server) - if vc > vs { - return false - } else if vc < vs { - return true - } - - vc = Major(client) - vs = Major(server) - if vc > vs { - return false - } else if vc < vs { - return true - } - - vc = Minor(client) - vs = Minor(server) - if vc > vs { - return false - } else if vc < vs { - return true - } - return false -} diff --git a/pkg/util/version/version_test.go b/pkg/util/version/version_test.go index a77bf421832..73b96a85f79 100644 --- a/pkg/util/version/version_test.go +++ b/pkg/util/version/version_test.go @@ -51,15 +51,3 @@ func TestVersion(t *testing.T) { version := Full() assert.Equal(parseVerion, version) } - -func TestCompact(t *testing.T) { - assert := assert.New(t) - ok, _ := Compat("0.9.0") - assert.False(ok) - - ok, _ = Compat("10.0.0") - assert.True(ok) - - ok, _ = Compat("0.10.0") - assert.False(ok) -} diff --git a/server/control.go b/server/control.go index 5f6eb9fd47d..f2eaaa56ad7 100644 --- a/server/control.go +++ b/server/control.go @@ -568,7 +568,15 @@ func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err // NewProxy will return an interface Proxy. // In fact, it creates different proxies based on the proxy type. We just call run() here. - pxy, err := proxy.NewProxy(ctl.ctx, userInfo, ctl.rc, ctl.poolCount, ctl.GetWorkConn, pxyConf, ctl.serverCfg, ctl.loginMsg) + pxy, err := proxy.NewProxy(ctl.ctx, &proxy.Options{ + UserInfo: userInfo, + LoginMsg: ctl.loginMsg, + PoolCount: ctl.poolCount, + ResourceController: ctl.rc, + GetWorkConnFn: ctl.GetWorkConn, + Configurer: pxyConf, + ServerCfg: ctl.serverCfg, + }) if err != nil { return remoteAddr, err } diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 7a4fdfff230..56faac30789 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -22,7 +22,6 @@ import ( "github.com/fatedier/frp/pkg/config/types" v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/metrics/mem" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" @@ -139,21 +138,21 @@ type XTCPOutConf struct { BaseOutConf } -func getConfByType(proxyType string) interface{} { - switch proxyType { - case consts.TCPProxy: +func getConfByType(proxyType string) any { + switch v1.ProxyType(proxyType) { + case v1.ProxyTypeTCP: return &TCPOutConf{} - case consts.TCPMuxProxy: + case v1.ProxyTypeTCPMUX: return &TCPMuxOutConf{} - case consts.UDPProxy: + case v1.ProxyTypeUDP: return &UDPOutConf{} - case consts.HTTPProxy: + case v1.ProxyTypeHTTP: return &HTTPOutConf{} - case consts.HTTPSProxy: + case v1.ProxyTypeHTTPS: return &HTTPSOutConf{} - case consts.STCPProxy: + case v1.ProxyTypeSTCP: return &STCPOutConf{} - case consts.XTCPProxy: + case v1.ProxyTypeXTCP: return &XTCPOutConf{} default: return nil @@ -215,12 +214,12 @@ func (svr *Service) getProxyStatsByType(proxyType string) (proxyInfos []*ProxySt log.Warn("unmarshal proxy [%s] conf info error: %v", ps.Name, err) continue } - proxyInfo.Status = consts.Online + proxyInfo.Status = "online" if pxy.GetLoginMsg() != nil { proxyInfo.ClientVersion = pxy.GetLoginMsg().Version } } else { - proxyInfo.Status = consts.Offline + proxyInfo.Status = "offline" } proxyInfo.Name = ps.Name proxyInfo.TodayTrafficIn = ps.TodayTrafficIn @@ -293,9 +292,9 @@ func (svr *Service) getProxyStatsByTypeAndName(proxyType string, proxyName strin msg = "parse conf error" return } - proxyInfo.Status = consts.Online + proxyInfo.Status = "online" } else { - proxyInfo.Status = consts.Offline + proxyInfo.Status = "offline" } proxyInfo.TodayTrafficIn = ps.TodayTrafficIn proxyInfo.TodayTrafficOut = ps.TodayTrafficOut diff --git a/server/group/tcpmux.go b/server/group/tcpmux.go index 0d9790eb88f..1712bc747ce 100644 --- a/server/group/tcpmux.go +++ b/server/group/tcpmux.go @@ -22,7 +22,7 @@ import ( gerr "github.com/fatedier/golib/errors" - "github.com/fatedier/frp/pkg/consts" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/util/tcpmux" "github.com/fatedier/frp/pkg/util/vhost" ) @@ -59,8 +59,8 @@ func (tmgc *TCPMuxGroupCtl) Listen( } tmgc.mu.Unlock() - switch multiplexer { - case consts.HTTPConnectTCPMultiplexer: + switch v1.TCPMultiplexerType(multiplexer) { + case v1.TCPMultiplexerHTTPConnect: return tcpMuxGroup.HTTPConnectListen(ctx, group, groupKey, routeConfig) default: err = fmt.Errorf("unknown multiplexer [%s]", multiplexer) diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 0cd7a6e5371..fe6f781b728 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -271,9 +271,18 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { xl.Debug("join connections closed") } -func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.ResourceController, poolCount int, - getWorkConnFn GetWorkConnFn, configurer v1.ProxyConfigurer, serverCfg *v1.ServerConfig, loginMsg *msg.Login, -) (pxy Proxy, err error) { +type Options struct { + UserInfo plugin.UserInfo + LoginMsg *msg.Login + PoolCount int + ResourceController *controller.ResourceController + GetWorkConnFn GetWorkConnFn + Configurer v1.ProxyConfigurer + ServerCfg *v1.ServerConfig +} + +func NewProxy(ctx context.Context, options *Options) (pxy Proxy, err error) { + configurer := options.Configurer xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(configurer.GetBaseConfig().Name) var limiter *rate.Limiter @@ -284,16 +293,16 @@ func NewProxy(ctx context.Context, userInfo plugin.UserInfo, rc *controller.Reso basePxy := BaseProxy{ name: configurer.GetBaseConfig().Name, - rc: rc, + rc: options.ResourceController, listeners: make([]net.Listener, 0), - poolCount: poolCount, - getWorkConnFn: getWorkConnFn, - serverCfg: serverCfg, + poolCount: options.PoolCount, + getWorkConnFn: options.GetWorkConnFn, + serverCfg: options.ServerCfg, limiter: limiter, xl: xl, ctx: xlog.NewContext(ctx, xl), - userInfo: userInfo, - loginMsg: loginMsg, + userInfo: options.UserInfo, + loginMsg: options.LoginMsg, configurer: configurer, } diff --git a/server/proxy/tcpmux.go b/server/proxy/tcpmux.go index 15824223f26..5b914c3983d 100644 --- a/server/proxy/tcpmux.go +++ b/server/proxy/tcpmux.go @@ -21,7 +21,6 @@ import ( "strings" v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/consts" "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/frp/pkg/util/vhost" ) @@ -99,8 +98,8 @@ func (pxy *TCPMuxProxy) httpConnectRun() (remoteAddr string, err error) { } func (pxy *TCPMuxProxy) Run() (remoteAddr string, err error) { - switch pxy.cfg.Multiplexer { - case consts.HTTPConnectTCPMultiplexer: + switch v1.TCPMultiplexerType(pxy.cfg.Multiplexer) { + case v1.TCPMultiplexerHTTPConnect: remoteAddr, err = pxy.httpConnectRun() default: err = fmt.Errorf("unknown multiplexer [%s]", pxy.cfg.Multiplexer) diff --git a/server/service.go b/server/service.go index a5e84ea91ac..9deffa020f0 100644 --- a/server/service.go +++ b/server/service.go @@ -533,12 +533,6 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login) (err xl.Info("client login info: ip [%s] version [%s] hostname [%s] os [%s] arch [%s]", ctlConn.RemoteAddr().String(), loginMsg.Version, loginMsg.Hostname, loginMsg.Os, loginMsg.Arch) - // Check client version. - if ok, msg := version.Compat(loginMsg.Version); !ok { - err = fmt.Errorf("%s", msg) - return - } - // Check auth. if err = svr.authVerifier.VerifyLogin(loginMsg); err != nil { return From 21d8e674f0e7a167e2ab40183a512f8d29126cc2 Mon Sep 17 00:00:00 2001 From: ZeroVocabulary Date: Mon, 9 Oct 2023 03:05:03 -0400 Subject: [PATCH 101/444] mentioned antivirus detection in installation instructions, added recommendation to whitelist client binaries in antivirus (#3647) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0ae937496c8..5dc8658bb18 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,8 @@ Next, place the `frps` binary and `frps.ini` configuration file on Server A, whi Finally, place the `frpc` binary and `frpc.ini` configuration file on Server B, which is located on a LAN that cannot be directly accessed from the public internet. +Some antiviruses improperly mark frpc as malware and delete it. This is due to frp being a networking tool capable of creating reverse proxies. Antiviruses sometimes flag reverse proxies due to their ability to bypass firewall port restrictions. If you are using antivirus, then you may need to whitelist/exclude frpc in your antivirus settings to avoid accidental quarantine/deletion. See [issue 3637](https://github.com/fatedier/frp/issues/3637) for more details. + ### Access your computer in a LAN network via SSH 1. Modify `frps.ini` on server A by setting the `bind_port` for frp clients to connect to: From 3ae1a4f45af2e875820a095d53202cef20363474 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 10 Oct 2023 16:48:13 +0800 Subject: [PATCH 102/444] update confugration examples and README (#3650) --- README.md | 996 ++++++++++++------------- README_zh.md | 4 - Release.md | 1 + conf/frpc.toml | 360 +++++++++ conf/frps.toml | 154 ++++ conf/{ => legacy}/frpc_legacy_full.ini | 0 conf/{ => legacy}/frps_legacy_full.ini | 0 doc/server_plugin.md | 69 +- package.sh | 1 + pkg/config/legacy/client.go | 6 +- pkg/config/legacy/server.go | 20 +- pkg/config/load_test.go | 45 ++ pkg/config/v1/common.go | 6 +- pkg/config/v1/proxy.go | 4 +- pkg/config/v1/server.go | 2 +- pkg/util/version/version.go | 2 +- web/frps/auto-imports.d.ts | 4 +- 17 files changed, 1105 insertions(+), 569 deletions(-) create mode 100644 conf/frpc.toml create mode 100644 conf/frps.toml rename conf/{ => legacy}/frpc_legacy_full.ini (100%) rename conf/{ => legacy}/frps_legacy_full.ini (100%) create mode 100644 pkg/config/load_test.go diff --git a/README.md b/README.md index 5dc8658bb18..7c7656bf522 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ frp also offers a P2P connect mode. * [Configuration Files](#configuration-files) * [Using Environment Variables](#using-environment-variables) * [Split Configures Into Different Files](#split-configures-into-different-files) - * [Dashboard](#dashboard) + * [Server Dashboard](#server-dashboard) * [Admin UI](#admin-ui) * [Monitor](#monitor) * [Prometheus](#prometheus) @@ -72,10 +72,8 @@ frp also offers a P2P connect mode. * [URL Routing](#url-routing) * [TCP Port Multiplexing](#tcp-port-multiplexing) * [Connecting to frps via HTTP PROXY](#connecting-to-frps-via-http-proxy) - * [Range ports mapping](#range-ports-mapping) * [Client Plugins](#client-plugins) * [Server Manage Plugins](#server-manage-plugins) -* [Development Plan](#development-plan) * [Contributing](#contributing) * [Donation](#donation) * [GitHub Sponsors](#github-sponsors) @@ -113,46 +111,45 @@ We sincerely appreciate your support for frp. To begin, download the latest program for your operating system and architecture from the [Release](https://github.com/fatedier/frp/releases) page. -Next, place the `frps` binary and `frps.ini` configuration file on Server A, which has a public IP address. +Next, place the `frps` binary and server configuration file on Server A, which has a public IP address. -Finally, place the `frpc` binary and `frpc.ini` configuration file on Server B, which is located on a LAN that cannot be directly accessed from the public internet. +Finally, place the `frpc` binary and client configuration file on Server B, which is located on a LAN that cannot be directly accessed from the public internet. Some antiviruses improperly mark frpc as malware and delete it. This is due to frp being a networking tool capable of creating reverse proxies. Antiviruses sometimes flag reverse proxies due to their ability to bypass firewall port restrictions. If you are using antivirus, then you may need to whitelist/exclude frpc in your antivirus settings to avoid accidental quarantine/deletion. See [issue 3637](https://github.com/fatedier/frp/issues/3637) for more details. ### Access your computer in a LAN network via SSH -1. Modify `frps.ini` on server A by setting the `bind_port` for frp clients to connect to: +1. Modify `frps.toml` on server A by setting the `bindPort` for frp clients to connect to: - ```ini - # frps.ini - [common] - bind_port = 7000 + ```toml + # frps.toml + bindPort = 7000 ``` 2. Start `frps` on server A: - `./frps -c ./frps.ini` + `./frps -c ./frps.toml` -3. Modify `frpc.ini` on server B and set the `server_addr` field to the public IP address of your frps server: +3. Modify `frpc.toml` on server B and set the `serverAddr` field to the public IP address of your frps server: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 - [ssh] - type = tcp - local_ip = 127.0.0.1 - local_port = 22 - remote_port = 6000 + [[proxies]] + name = "ssh" + type = "tcp" + localIP = "127.0.0.1" + localPort = 22 + remotePort = 6000 ``` -Note that the `local_port` (listened on the client) and `remote_port` (exposed on the server) are used for traffic going in and out of the frp system, while the `server_port` is used for communication between frps and frpc. +Note that the `localPort` (listened on the client) and `remotePort` (exposed on the server) are used for traffic going in and out of the frp system, while the `serverPort` is used for communication between frps and frpc. 4. Start `frpc` on server B: - `./frpc -c ./frpc.ini` + `./frpc -c ./frpc.toml` 5. To access server B from another machine through server A via SSH (assuming the username is `test`), use the following command: @@ -162,42 +159,41 @@ Note that the `local_port` (listened on the client) and `remote_port` (exposed o This example implements multiple SSH services exposed through the same port using a proxy of type tcpmux. Similarly, as long as the client supports the HTTP Connect proxy connection method, port reuse can be achieved in this way. -1. Deploy frps on a machine with a public IP and modify the frps.ini file. Here is a simplified configuration: +1. Deploy frps on a machine with a public IP and modify the frps.toml file. Here is a simplified configuration: - ```ini - [common] - bind_port = 7000 - tcpmux_httpconnect_port = 5002 + ```toml + bindPort = 7000 + tcpmuxHTTPConnectPort = 5002 ``` 2. Deploy frpc on the internal machine A with the following configuration: - ```ini - [common] - server_addr = x.x.x.x - server_port = 7000 - - [ssh1] - type = tcpmux - multiplexer = httpconnect - custom_domains = machine-a.example.com - local_ip = 127.0.0.1 - local_port = 22 + ```toml + serverAddr = "x.x.x.x" + serverPort = 7000 + + [[proxies]] + name = "ssh1" + type = "tcpmux" + multiplexer = "httpconnect" + customDomains = ["machine-a.example.com"] + localIP = "127.0.0.1" + localPort = 22 ``` 3. Deploy another frpc on the internal machine B with the following configuration: - ```ini - [common] - server_addr = x.x.x.x - server_port = 7000 - - [ssh2] - type = tcpmux - multiplexer = httpconnect - custom_domains = machine-b.example.com - local_ip = 127.0.0.1 - local_port = 22 + ```toml + serverAddr = "x.x.x.x" + serverPort = 7000 + + [[proxies]] + name = "ssh2" + type = "tcpmux" + multiplexer = "httpconnect" + customDomains = ["machine-b.example.com"] + localIP = "127.0.0.1" + localPort = 22 ``` 4. To access internal machine A using SSH ProxyCommand, assuming the username is "test": @@ -214,38 +210,37 @@ Sometimes we need to expose a local web service behind a NAT network to others f Unfortunately, we cannot resolve a domain name to a local IP. However, we can use frp to expose an HTTP(S) service. -1. Modify `frps.ini` and set the HTTP port for vhost to 8080: +1. Modify `frps.toml` and set the HTTP port for vhost to 8080: - ```ini - # frps.ini - [common] - bind_port = 7000 - vhost_http_port = 8080 + ```toml + # frps.toml + bindPort = 7000 + vhostHTTPPort = 8080 ``` If you want to configure an https proxy, you need to set up the `vhost_https_port`. 2. Start `frps`: - `./frps -c ./frps.ini` + `./frps -c ./frps.toml` -3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Specify the `local_port` of your web service: +3. Modify `frpc.toml` and set `serverAddr` to the IP address of the remote frps server. Specify the `localPort` of your web service: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 - [web] - type = http - local_port = 80 - custom_domains = www.example.com + [[proxies]] + name = "web" + type = "http" + localPort = 80 + customDomains = ["www.example.com"] ``` 4. Start `frpc`: - `./frpc -c ./frpc.ini` + `./frpc -c ./frpc.toml` 5. Map the A record of `www.example.com` to either the public IP of the remote frps server or a CNAME record pointing to your original domain. @@ -253,36 +248,35 @@ Unfortunately, we cannot resolve a domain name to a local IP. However, we can us ### Forward DNS query requests -1. Modify `frps.ini`: +1. Modify `frps.toml`: - ```ini - # frps.ini - [common] - bind_port = 7000 + ```toml + # frps.toml + bindPort = 7000 ``` 2. Start `frps`: - `./frps -c ./frps.ini` + `./frps -c ./frps.toml` -3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Forward DNS query requests to the Google Public DNS server `8.8.8.8:53`: +3. Modify `frpc.toml` and set `serverAddr` to the IP address of the remote frps server. Forward DNS query requests to the Google Public DNS server `8.8.8.8:53`: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 - [dns] - type = udp - local_ip = 8.8.8.8 - local_port = 53 - remote_port = 6000 + [[proxies]] + name = "dns" + type = "udp" + localIP = "8.8.8.8" + localPort = 53 + remotePort = 6000 ``` 4. Start frpc: - `./frpc -c ./frpc.ini` + `./frpc -c ./frpc.toml` 5. Test DNS resolution using the `dig` command: @@ -296,17 +290,18 @@ Configure `frps` as above. 1. Start `frpc` with the following configuration: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 - - [unix_domain_socket] - type = tcp - remote_port = 6000 - plugin = unix_domain_socket - plugin_unix_path = /var/run/docker.sock + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 + + [[proxies]] + name = "unix_domain_socket" + type = "tcp" + remotePort = 6000 + [proxies.plugin] + type = "unix_domain_socket" + unixPath = "/var/run/docker.sock" ``` 2. Test the configuration by getting the docker version using `curl`: @@ -321,20 +316,21 @@ Configure `frps` as described above, then: 1. Start `frpc` with the following configuration: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 - - [test_static_file] - type = tcp - remote_port = 6000 - plugin = static_file - plugin_local_path = /tmp/files - plugin_strip_prefix = static - plugin_http_user = abc - plugin_http_passwd = abc + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 + + [[proxies]] + name = "test_static_file" + type = "tcp" + remotePort = 6000 + [proxies.plugin] + type = "static_file" + localPath = "/tmp/files" + stripPrefix = "static" + httpUser = "abc" + httpPassword = "abc" ``` 2. Visit `http://x.x.x.x:6000/static/` from your browser and specify correct username and password to view files in `/tmp/files` on the `frpc` machine. @@ -345,23 +341,24 @@ You may substitute `https2https` for the plugin, and point the `plugin_local_add 1. Start `frpc` with the following configuration: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 - vhost_https_port = 443 - - [test_https2http] - type = https - custom_domains = test.example.com - - plugin = https2http - plugin_local_addr = 127.0.0.1:80 - plugin_crt_path = ./server.crt - plugin_key_path = ./server.key - plugin_host_header_rewrite = 127.0.0.1 - plugin_header_X-From-Where = frp + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 + vhostHTTPSPort = 443 + + [[proxies]] + name = "test_https2http" + type = "https" + customDomains = ["test.example.com"] + + [proxies.plugin] + type = "https2http" + localAddr = "127.0.0.1:80" + crtPath = "./server.crt" + keyPath = "./server.key" + hostHeaderRewrite = "127.0.0.1" + requestHeaders.set.x-from-where = "frp" ``` 2. Visit `https://test.example.com`. @@ -374,34 +371,33 @@ Configure `frps` same as above. 1. Start `frpc` on machine B with the following config. This example is for exposing the SSH service (port 22), and note the `sk` field for the preshared key, and that the `remote_port` field is removed here: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 - - [secret_ssh] - type = stcp - sk = abcdefg - local_ip = 127.0.0.1 - local_port = 22 + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 + + [[proxies]] + name = "secret_ssh" + type = "stcp" + secretKey = "abcdefg" + localIP = "127.0.0.1" + localPort = 22 ``` 2. Start another `frpc` (typically on another machine C) with the following config to access the SSH service with a security key (`sk` field): - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 - - [secret_ssh_visitor] - type = stcp - role = visitor - server_name = secret_ssh - sk = abcdefg - bind_addr = 127.0.0.1 - bind_port = 6000 + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 + + [[visitors]] + name = "secret_ssh_visitor" + type = "stcp" + serverName = "secret_ssh" + secretKey = "abcdefg" + bindAddr = "127.0.0.1" + bindPort = 6000 ``` 3. On machine C, connect to SSH on machine B, using this command: @@ -414,42 +410,41 @@ Configure `frps` same as above. Note that it may not work with all types of NAT devices. You might want to fallback to stcp if xtcp doesn't work. -1. Start `frpc` on machine B, and expose the SSH port. Note that the `remote_port` field is removed: +1. Start `frpc` on machine B, and expose the SSH port. Note that the `remotePort` field is removed: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 # set up a new stun server if the default one is not available. - # nat_hole_stun_server = xxx - - [p2p_ssh] - type = xtcp - sk = abcdefg - local_ip = 127.0.0.1 - local_port = 22 + # natHoleStunServer = "xxx" + + [[proxies]] + name = "p2p_ssh" + type = "xtcp" + secretKey = "abcdefg" + localIP = "127.0.0.1" + localPort = 22 ``` 2. Start another `frpc` (typically on another machine C) with the configuration to connect to SSH using P2P mode: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - server_port = 7000 + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + serverPort = 7000 # set up a new stun server if the default one is not available. - # nat_hole_stun_server = xxx - - [p2p_ssh_visitor] - type = xtcp - role = visitor - server_name = p2p_ssh - sk = abcdefg - bind_addr = 127.0.0.1 - bind_port = 6000 + # natHoleStunServer = "xxx" + + [[visitors]] + name = "p2p_ssh_visitor" + type = "xtcp" + serverName = "p2p_ssh" + secretKey = "abcdefg" + bindAddr = "127.0.0.1" + bindPort = 6000 # when automatic tunnel persistence is required, set it to true - keep_tunnel_open = false + keepTunnelOpen = false ``` 3. On machine C, connect to SSH on machine B, using this command: @@ -460,35 +455,39 @@ Note that it may not work with all types of NAT devices. You might want to fallb ### Configuration Files +Since v0.52.0, we support TOML, YAML, and JSON for configuration. Please note that INI is deprecated and will be removed in future releases. New features will only be available in TOML, YAML, or JSON. Users wanting these new features should switch their configuration format accordingly. + Read the full example configuration files to find out even more features not described here. -[Full configuration file for frps (Server)](./conf/frps_full.ini) +Examples use TOML format, but you can still use YAML or JSON. -[Full configuration file for frpc (Client)](./conf/frpc_full.ini) +[Full configuration file for frps (Server)](./conf/frps.toml) + +[Full configuration file for frpc (Client)](./conf/frpc.toml) ### Using Environment Variables Environment variables can be referenced in the configuration file, using Go's standard format: -```ini -# frpc.ini -[common] -server_addr = {{ .Envs.FRP_SERVER_ADDR }} -server_port = 7000 - -[ssh] -type = tcp -local_ip = 127.0.0.1 -local_port = 22 -remote_port = {{ .Envs.FRP_SSH_REMOTE_PORT }} +```toml +# frpc.toml +serverAddr = "{{ .Envs.FRP_SERVER_ADDR }}" +serverPort = 7000 + +[[proxies]] +name = "ssh" +type = "tcp" +localIP = "127.0.0.1" +localPort = 22 +remotePort = "{{ .Envs.FRP_SSH_REMOTE_PORT }}" ``` With the config above, variables can be passed into `frpc` program like this: ``` -export FRP_SERVER_ADDR="x.x.x.x" -export FRP_SSH_REMOTE_PORT="6000" -./frpc -c ./frpc.ini +export FRP_SERVER_ADDR=x.x.x.x +export FRP_SSH_REMOTE_PORT=6000 +./frpc -c ./frpc.toml ``` `frpc` will render configuration file template using OS environment variables. Remember to prefix your reference with `.Envs`. @@ -497,81 +496,77 @@ export FRP_SSH_REMOTE_PORT="6000" You can split multiple proxy configs into different files and include them in the main file. -```ini -# frpc.ini -[common] -server_addr = x.x.x.x -server_port = 7000 -includes=./confd/*.ini +```toml +# frpc.toml +serverAddr = "x.x.x.x" +serverPort = 7000 +includes = ["./confd/*.toml"] ``` -```ini -# ./confd/test.ini -[ssh] -type = tcp -local_ip = 127.0.0.1 -local_port = 22 -remote_port = 6000 +```toml +# ./confd/test.toml +[[proxies]] +name = "ssh" +type = "tcp" +localIP = "127.0.0.1" +localPort = 22 +remotePort = 6000 ``` -### Dashboard +### Server Dashboard Check frp's status and proxies' statistics information by Dashboard. Configure a port for dashboard to enable this feature: -```ini -[common] -dashboard_port = 7500 +```toml +webServer.port = 7500 # dashboard's username and password are both optional -dashboard_user = admin -dashboard_pwd = admin +webServer.user = "admin" +webServer.password = "admin" ``` Then visit `http://[server_addr]:7500` to see the dashboard, with username and password both being `admin`. Additionally, you can use HTTPS port by using your domains wildcard or normal SSL certificate: -```ini -[common] -dashboard_port = 7500 +```toml +webServer.port = 7500 # dashboard's username and password are both optional -dashboard_user = admin -dashboard_pwd = admin -dashboard_tls_mode = true -dashboard_tls_cert_file = server.crt -dashboard_tls_key_file = server.key +webServer.user = "admin" +webServer.password = "admin" +webServer.tls.certFile = "server.crt" +webServer.tls.keyFile = "server.key" ``` Then visit `https://[server_addr]:7500` to see the dashboard in secure HTTPS connection, with username and password both being `admin`. ![dashboard](/doc/pic/dashboard.png) -### Admin UI +### Client Admin UI -The Admin UI helps you check and manage frpc's configuration. +The Client Admin UI helps you check and manage frpc's configuration. Configure an address for admin UI to enable this feature: -```ini -[common] -admin_addr = 127.0.0.1 -admin_port = 7400 -admin_user = admin -admin_pwd = admin +```toml +webServer.addr = "127.0.0.1" +webServer.port = 7400 +webServer.user = "admin" +webServer.password = "admin" ``` Then visit `http://127.0.0.1:7400` to see admin UI, with username and password both being `admin`. ### Monitor -When dashboard is enabled, frps will save monitor data in cache. It will be cleared after process restart. +When web server is enabled, frps will save monitor data in cache for 7 days. It will be cleared after process restart. Prometheus is also supported. #### Prometheus -Enable dashboard first, then configure `enable_prometheus = true` in `frps.ini`. +Enable dashboard first, then configure `enablePrometheus = true` in `frps.toml`. `http://{dashboard_addr}/metrics` will provide prometheus monitor data. @@ -579,80 +574,81 @@ Enable dashboard first, then configure `enable_prometheus = true` in `frps.ini`. There are 2 authentication methods to authenticate frpc with frps. -You can decide which one to use by configuring `authentication_method` under `[common]` in `frpc.ini` and `frps.ini`. +You can decide which one to use by configuring `auth.method` in `frpc.toml` and `frps.toml`, the default one is token. -Configuring `authenticate_heartbeats = true` under `[common]` will use the configured authentication method to add and validate authentication on every heartbeat between frpc and frps. +Configuring `auth.additionalScopes = ["HeartBeats"]` will use the configured authentication method to add and validate authentication on every heartbeat between frpc and frps. -Configuring `authenticate_new_work_conns = true` under `[common]` will do the same for every new work connection between frpc and frps. +Configuring `auth.additionalScopes = ["NewWorkConns"]` will do the same for every new work connection between frpc and frps. #### Token Authentication -When specifying `authentication_method = token` under `[common]` in `frpc.ini` and `frps.ini` - token based authentication will be used. +When specifying `auth.method = "token"` in `frpc.toml` and `frps.toml` - token based authentication will be used. -Make sure to specify the same `token` in the `[common]` section in `frps.ini` and `frpc.ini` for frpc to pass frps validation +Make sure to specify the same `auth.token` in `frps.toml` and `frpc.toml` for frpc to pass frps validation #### OIDC Authentication -When specifying `authentication_method = oidc` under `[common]` in `frpc.ini` and `frps.ini` - OIDC based authentication will be used. +When specifying `auth.method = "oidc"` in `frpc.toml` and `frps.toml` - OIDC based authentication will be used. OIDC stands for OpenID Connect, and the flow used is called [Client Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.4). -To use this authentication type - configure `frpc.ini` and `frps.ini` as follows: +To use this authentication type - configure `frpc.toml` and `frps.toml` as follows: -```ini -# frps.ini -[common] -authentication_method = oidc -oidc_issuer = https://example-oidc-issuer.com/ -oidc_audience = https://oidc-audience.com/.default +```toml +# frps.toml +auth.method = "oidc" +auth.oidc.issuer = "https://example-oidc-issuer.com/" +auth.oidc.audience = "https://oidc-audience.com/.default" ``` -```ini -# frpc.ini -[common] -authentication_method = oidc -oidc_client_id = 98692467-37de-409a-9fac-bb2585826f18 # Replace with OIDC client ID -oidc_client_secret = oidc_secret -oidc_audience = https://oidc-audience.com/.default -oidc_token_endpoint_url = https://example-oidc-endpoint.com/oauth2/v2.0/token +```toml +# frpc.toml +auth.method = "oidc" +auth.oidc.clientID = "98692467-37de-409a-9fac-bb2585826f18" # Replace with OIDC client ID +auth.oidc.clientSecret = "oidc_secret" +auth.oidc.audience = "https://oidc-audience.com/.default" +auth.oidc.tokenEndpointURL = "https://example-oidc-endpoint.com/oauth2/v2.0/token" ``` ### Encryption and Compression The features are off by default. You can turn on encryption and/or compression: -```ini -# frpc.ini -[ssh] -type = tcp -local_port = 22 -remote_port = 6000 -use_encryption = true -use_compression = true +```toml +# frpc.toml +[[proxies]] +name = "ssh" +type = "tcp" +localPort = 22 +remotePort = 6000 +transport.useEncryption = true +transport.useCompression = true ``` #### TLS -Since v0.50.0, the default value of `tls_enable` and `disable_custom_tls_first_byte` has been changed to true, and tls is enabled by default. +Since v0.50.0, the default value of `transport.tls.enable` and `transport.tls.disableCustomTLSFirstByte` has been changed to true, and tls is enabled by default. + +For port multiplexing, frp sends a first byte `0x17` to dial a TLS connection. This only takes effect when you set `transport.tls.disableCustomTLSFirstByte` to false. -For port multiplexing, frp sends a first byte `0x17` to dial a TLS connection. This only takes effect when you set `disable_custom_tls_first_byte` to false. +To **enforce** `frps` to only accept TLS connections - configure `transport.tls.force = true` in `frps.toml`. **This is optional.** -To **enforce** `frps` to only accept TLS connections - configure `tls_only = true` in the `[common]` section in `frps.ini`. **This is optional.** +**`frpc` TLS settings:** -**`frpc` TLS settings (under the `[common]` section):** -```ini -tls_enable = true -tls_cert_file = certificate.crt -tls_key_file = certificate.key -tls_trusted_ca_file = ca.crt +```toml +transport.tls.enable = true +transport.tls.certFile = "certificate.crt" +transport.tls.keyFile = "certificate.key" +transport.tls.trustedCaFile = "ca.crt" ``` -**`frps` TLS settings (under the `[common]` section):** -```ini -tls_only = true -tls_cert_file = certificate.crt -tls_key_file = certificate.key -tls_trusted_ca_file = ca.crt +**`frps` TLS settings:** + +```toml +transport.tls.force = true +transport.tls.certFile = "certificate.crt" +transport.tls.keyFile = "certificate.key" +transport.tls.trustedCaFile = "ca.crt" ``` You will need **a root CA cert** and **at least one SSL/TLS certificate**. It **can** be self-signed or regular (such as Let's Encrypt or another SSL/TLS certificate provider). @@ -729,40 +725,41 @@ openssl x509 -req -days 365 -sha256 \ ### Hot-Reloading frpc configuration -The `admin_addr` and `admin_port` fields are required for enabling HTTP API: +The `webServer` fields are required for enabling HTTP API: -```ini -# frpc.ini -[common] -admin_addr = 127.0.0.1 -admin_port = 7400 +```toml +# frpc.toml +webServer.addr = "127.0.0.1" +webServer.port = 7400 ``` -Then run command `frpc reload -c ./frpc.ini` and wait for about 10 seconds to let `frpc` create or update or remove proxies. +Then run command `frpc reload -c ./frpc.toml` and wait for about 10 seconds to let `frpc` create or update or remove proxies. -**Note that parameters in [common] section won't be modified except 'start'.** +**Note that global client parameters won't be modified except 'start'.** -You can run command `frpc verify -c ./frpc.ini` before reloading to check if there are config errors. +You can run command `frpc verify -c ./frpc.toml` before reloading to check if there are config errors. ### Get proxy status from client -Use `frpc status -c ./frpc.ini` to get status of all proxies. The `admin_addr` and `admin_port` fields are required for enabling HTTP API. +Use `frpc status -c ./frpc.toml` to get status of all proxies. The `webServer` fields are required for enabling HTTP API. ### Only allowing certain ports on the server -`allow_ports` in `frps.ini` is used to avoid abuse of ports: +`allowPorts` in `frps.toml` is used to avoid abuse of ports: -```ini -# frps.ini -[common] -allow_ports = 2000-3000,3001,3003,4000-50000 +```toml +# frps.toml +allowPorts = [ + { start = 2000, end = 3000 }, + { single = 3001 }, + { single = 3003 }, + { start = 4000, end = 50000 } +] ``` -`allow_ports` consists of specific ports or port ranges (lowest port number, dash `-`, highest port number), separated by comma `,`. - ### Port Reuse -`vhost_http_port` and `vhost_https_port` in frps can use same port with `bind_port`. frps will detect the connection's protocol and handle it correspondingly. +`vhostHTTPPort` and `vhostHTTPSPort` in frps can use same port with `bindPort`. frps will detect the connection's protocol and handle it correspondingly. We would like to try to allow multiple proxies bind a same remote port with different protocols in the future. @@ -770,29 +767,29 @@ We would like to try to allow multiple proxies bind a same remote port with diff #### For Each Proxy -```ini -# frpc.ini -[ssh] -type = tcp -local_port = 22 -remote_port = 6000 -bandwidth_limit = 1MB +```toml +# frpc.toml +[[proxies]] +name = "ssh" +type = "tcp" +localPort = 22 +remotePort = 6000 +transport.bandwidthLimit = "1MB" ``` -Set `bandwidth_limit` in each proxy's configure to enable this feature. Supported units are `MB` and `KB`. +Set `transport.bandwidthLimit` in each proxy's configure to enable this feature. Supported units are `MB` and `KB`. -Set `bandwidth_limit_mode` to `client` or `server` to limit bandwidth on the client or server side. Default is `client`. +Set `transport.bandwidthLimitMode` to `client` or `server` to limit bandwidth on the client or server side. Default is `client`. ### TCP Stream Multiplexing frp supports tcp stream multiplexing since v0.10.0 like HTTP2 Multiplexing, in which case all logic connections to the same frpc are multiplexed into the same TCP connection. -You can disable this feature by modify `frps.ini` and `frpc.ini`: +You can disable this feature by modify `frps.toml` and `frpc.toml`: -```ini -# frps.ini and frpc.ini, must be same -[common] -tcp_mux = false +```toml +# frps.toml and frpc.toml, must be same +tcpMux = false ``` ### Support KCP Protocol @@ -803,25 +800,23 @@ KCP mode uses UDP as the underlying transport. Using KCP in frp: 1. Enable KCP in frps: - ```ini - # frps.ini - [common] - bind_port = 7000 + ```toml + # frps.toml + bindPort = 7000 # Specify a UDP port for KCP. - kcp_bind_port = 7000 + kcpBindPort = 7000 ``` - The `kcp_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port. + The `kcpBindPort` number can be the same number as `bindPort`, since `bindPort` field specifies a TCP port. -2. Configure `frpc.ini` to use KCP to connect to frps: +2. Configure `frpc.toml` to use KCP to connect to frps: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - # Same as the 'kcp_bind_port' in frps.ini - server_port = 7000 - protocol = kcp + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + # Same as the 'kcpBindPort' in frps.toml + serverPort = 7000 + transport.protocol = "kcp" ``` ### Support QUIC Protocol @@ -832,25 +827,23 @@ Using QUIC in frp: 1. Enable QUIC in frps: - ```ini - # frps.ini - [common] - bind_port = 7000 + ```toml + # frps.toml + bindPort = 7000 # Specify a UDP port for QUIC. - quic_bind_port = 7000 + quicBindPort = 7000 ``` - The `quic_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port. + The `quicBindPort` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port. -2. Configure `frpc.ini` to use QUIC to connect to frps: +2. Configure `frpc.toml` to use QUIC to connect to frps: - ```ini - # frpc.ini - [common] - server_addr = x.x.x.x - # Same as the 'quic_bind_port' in frps.ini - server_port = 7000 - protocol = quic + ```toml + # frpc.toml + serverAddr = "x.x.x.x" + # Same as the 'quicBindPort' in frps.toml + serverPort = 7000 + transport.protocol = "quic" ``` ### Connection Pooling @@ -859,20 +852,18 @@ By default, frps creates a new frpc connection to the backend service upon a use This feature is suitable for a large number of short connections. -1. Configure the limit of pool count each proxy can use in `frps.ini`: +1. Configure the limit of pool count each proxy can use in `frps.toml`: - ```ini - # frps.ini - [common] - max_pool_count = 5 + ```toml + # frps.toml + transport.maxPoolCount = 5 ``` 2. Enable and specify the number of connection pool: - ```ini - # frpc.ini - [common] - pool_count = 1 + ```toml + # frpc.toml + transport.poolCount = 1 ``` ### Load balancing @@ -881,87 +872,92 @@ Load balancing is supported by `group`. This feature is only available for types `tcp`, `http`, `tcpmux` now. -```ini -# frpc.ini -[test1] -type = tcp -local_port = 8080 -remote_port = 80 -group = web -group_key = 123 - -[test2] -type = tcp -local_port = 8081 -remote_port = 80 -group = web -group_key = 123 +```toml +# frpc.toml +[[proxies]] +name = "test1" +type = "tcp" +localPort = 8080 +remotePort = 80 +loadBalancer.group = "web" +loadBalancer.groupKey = "123" + +[[proxies]] +name = "test2" +type = "tcp" +localPort = 8081 +remotePort = 80 +loadBalancer.group = "web" +loadBalancer.groupKey = "123" ``` -`group_key` is used for authentication. +`loadBalancer.groupKey` is used for authentication. Connections to port 80 will be dispatched to proxies in the same group randomly. -For type `tcp`, `remote_port` in the same group should be the same. +For type `tcp`, `remotePort` in the same group should be the same. -For type `http`, `custom_domains`, `subdomain`, `locations` should be the same. +For type `http`, `customDomains`, `subdomain`, `locations` should be the same. ### Service Health Check Health check feature can help you achieve high availability with load balancing. -Add `health_check_type = tcp` or `health_check_type = http` to enable health check. +Add `healthCheck.type = "tcp"` or `healthCheck.type = "http"` to enable health check. With health check type **tcp**, the service port will be pinged (TCPing): -```ini -# frpc.ini -[test1] -type = tcp -local_port = 22 -remote_port = 6000 +```toml +# frpc.toml +[[proxies]] +name = "test1" +type = "tcp" +localPort = 22 +remotePort = 6000 # Enable TCP health check -health_check_type = tcp +healthCheck.type = "tcp" # TCPing timeout seconds -health_check_timeout_s = 3 +healthCheck.timeoutSeconds = 3 # If health check failed 3 times in a row, the proxy will be removed from frps -health_check_max_failed = 3 +healthCheck.maxFailed = 3 # A health check every 10 seconds -health_check_interval_s = 10 +healthCheck.intervalSeconds = 10 ``` With health check type **http**, an HTTP request will be sent to the service and an HTTP 2xx OK response is expected: -```ini -# frpc.ini -[web] -type = http -local_ip = 127.0.0.1 -local_port = 80 -custom_domains = test.example.com +```toml +# frpc.toml +[[proxies]] +name = "web" +type = "http" +localIP = "127.0.0.1" +localPort = 80 +customDomains = ["test.example.com"] # Enable HTTP health check -health_check_type = http +healthCheck.type = "http" # frpc will send a GET request to '/status' # and expect an HTTP 2xx OK response -health_check_url = /status -health_check_timeout_s = 3 -health_check_max_failed = 3 -health_check_interval_s = 10 +healthCheck.path = "/status" +healthCheck.timeoutSeconds = 3 +healthCheck.maxFailed = 3 +healthCheck.intervalSeconds = 10 ``` ### Rewriting the HTTP Host Header By default frp does not modify the tunneled HTTP requests at all as it's a byte-for-byte copy. -However, speaking of web servers and HTTP requests, your web server might rely on the `Host` HTTP header to determine the website to be accessed. frp can rewrite the `Host` header when forwarding the HTTP requests, with the `host_header_rewrite` field: +However, speaking of web servers and HTTP requests, your web server might rely on the `Host` HTTP header to determine the website to be accessed. frp can rewrite the `Host` header when forwarding the HTTP requests, with the `hostHeaderRewrite` field: -```ini -# frpc.ini -[web] -type = http -local_port = 80 -custom_domains = test.example.com -host_header_rewrite = dev.example.com +```toml +# frpc.toml +[[proxies]] +name = "web" +type = "http" +localPort = 80 +customDomains = ["test.example.com"] +hostHeaderRewrite = "dev.example.com" ``` The HTTP request will have the `Host` header rewritten to `Host: dev.example.com` when it reaches the actual web server, although the request from the browser probably has `Host: test.example.com`. @@ -970,19 +966,18 @@ The HTTP request will have the `Host` header rewritten to `Host: dev.example.com Similar to `Host`, You can override other HTTP request headers with proxy type `http`. -```ini -# frpc.ini -[web] -type = http -local_port = 80 -custom_domains = test.example.com -host_header_rewrite = dev.example.com -header_X-From-Where = frp +```toml +# frpc.toml +[[proxies]] +name = "web" +type = "http" +localPort = 80 +customDomains = ["test.example.com"] +hostHeaderRewrite = "dev.example.com" +requestHeaders.set.x-from-where = "frp" ``` -Note that parameter(s) prefixed with `header_` will be added to HTTP request headers. - -In this example, it will set header `X-From-Where: frp` in the HTTP request. +In this example, it will set header `x-from-where: frp` in the HTTP request. ### Get Real IP @@ -998,15 +993,16 @@ frp supports Proxy Protocol to send user's real IP to local services. It support Here is an example for https service: -```ini -# frpc.ini -[web] -type = https -local_port = 443 -custom_domains = test.example.com +```toml +# frpc.toml +[[proxies]] +name = "web" +type = "https" +localPort = 443 +customDomains = ["test.example.com"] # now v1 and v2 are supported -proxy_protocol_version = v2 +transport.proxyProtocolVersion = "v2" ``` You can enable Proxy Protocol support in nginx to expose user's real IP in HTTP header `X-Real-IP`, and then read `X-Real-IP` header in your web service for the real IP. @@ -1019,14 +1015,15 @@ This enforces HTTP Basic Auth on all requests with the username and password spe It can only be enabled when proxy type is http. -```ini -# frpc.ini -[web] -type = http -local_port = 80 -custom_domains = test.example.com -http_user = abc -http_pwd = abc +```toml +# frpc.toml +[[proxies]] +name = "web" +type = "http" +localPort = 80 +customDomains = ["test.example.com"] +httpUser = "abc" +httpPassword = "abc" ``` Visit `http://test.example.com` in the browser and now you are prompted to enter the username and password. @@ -1035,24 +1032,25 @@ Visit `http://test.example.com` in the browser and now you are prompted to enter It is convenient to use `subdomain` configure for http and https types when many people share one frps server. -```ini -# frps.ini -subdomain_host = frps.com +```toml +# frps.toml +subDomainHost = "frps.com" ``` Resolve `*.frps.com` to the frps server's IP. This is usually called a Wildcard DNS record. -```ini -# frpc.ini -[web] -type = http -local_port = 80 -subdomain = test +```toml +# frpc.toml +[[proxies]] +name = "web" +type = "http" +localPort = 80 +subdomain = "test" ``` Now you can visit your web service on `test.frps.com`. -Note that if `subdomain_host` is not empty, `custom_domains` should not be the subdomain of `subdomain_host`. +Note that if `subdomainHost` is not empty, `customDomains` should not be the subdomain of `subdomainHost`. ### URL Routing @@ -1060,59 +1058,61 @@ frp supports forwarding HTTP requests to different backend web services by url r `locations` specifies the prefix of URL used for routing. frps first searches for the most specific prefix location given by literal strings regardless of the listed order. -```ini -# frpc.ini -[web01] -type = http -local_port = 80 -custom_domains = web.example.com -locations = / - -[web02] -type = http -local_port = 81 -custom_domains = web.example.com -locations = /news,/about +```toml +# frpc.toml +[[proxies]] +name = "web01" +type = "http" +localPort = 80 +customDomains = ["web.example.com"] +locations = ["/"] + +[[proxies]] +name = "web02" +type = "http" +localPort = 81 +customDomains = ["web.example.com"] +locations = ["/news", "/about"] ``` HTTP requests with URL prefix `/news` or `/about` will be forwarded to **web02** and other requests to **web01**. ### TCP Port Multiplexing -frp supports receiving TCP sockets directed to different proxies on a single port on frps, similar to `vhost_http_port` and `vhost_https_port`. +frp supports receiving TCP sockets directed to different proxies on a single port on frps, similar to `vhostHTTPPort` and `vhostHTTPSPort`. The only supported TCP port multiplexing method available at the moment is `httpconnect` - HTTP CONNECT tunnel. -When setting `tcpmux_httpconnect_port` to anything other than 0 in frps under `[common]`, frps will listen on this port for HTTP CONNECT requests. +When setting `tcpmuxHTTPConnectPort` to anything other than 0 in frps, frps will listen on this port for HTTP CONNECT requests. -The host of the HTTP CONNECT request will be used to match the proxy in frps. Proxy hosts can be configured in frpc by configuring `custom_domain` and / or `subdomain` under `type = tcpmux` proxies, when `multiplexer = httpconnect`. +The host of the HTTP CONNECT request will be used to match the proxy in frps. Proxy hosts can be configured in frpc by configuring `customDomains` and / or `subdomain` under `tcpmux` proxies, when `multiplexer = "httpconnect"`. For example: -```ini -# frps.ini -[common] -bind_port = 7000 -tcpmux_httpconnect_port = 1337 +```toml +# frps.toml +bindPort = 7000 +tcpmuxHTTPConnectPort = 1337 ``` -```ini -# frpc.ini -[common] -server_addr = x.x.x.x -server_port = 7000 - -[proxy1] -type = tcpmux -multiplexer = httpconnect -custom_domains = test1 -local_port = 80 - -[proxy2] -type = tcpmux -multiplexer = httpconnect -custom_domains = test2 -local_port = 8080 +```toml +# frpc.toml +serverAddr = "x.x.x.x" +serverPort = 7000 + +[[proxies]] +name = "proxy1" +type = "tcpmux" +multiplexer = "httpconnect" +customDomains = ["test1"] +localPort = 80 + +[[proxies]] +name = "proxy2" +type = "tcpmux" +multiplexer = "httpconnect" +customDomains = ["test2"] +localPort = 8080 ``` In the above configuration - frps can be contacted on port 1337 with a HTTP CONNECT header such as: @@ -1122,56 +1122,40 @@ CONNECT test1 HTTP/1.1\r\n\r\n ``` and the connection will be routed to `proxy1`. -### Connecting to frps via HTTP PROXY +### Connecting to frps via PROXY -frpc can connect to frps using HTTP proxy if you set OS environment variable `HTTP_PROXY`, or if `http_proxy` is set in frpc.ini file. +frpc can connect to frps through proxy if you set OS environment variable `HTTP_PROXY`, or if `transport.proxyURL` is set in frpc.toml file. It only works when protocol is tcp. -```ini -# frpc.ini -[common] -server_addr = x.x.x.x -server_port = 7000 -http_proxy = http://user:pwd@192.168.1.128:8080 +```toml +# frpc.toml +serverAddr = "x.x.x.x" +serverPort = 7000 +transport.proxyURL = "http://user:pwd@192.168.1.128:8080" ``` -### Range ports mapping - -Proxy with names that start with `range:` will support mapping range ports. - -```ini -# frpc.ini -[range:test_tcp] -type = tcp -local_ip = 127.0.0.1 -local_port = 6000-6006,6007 -remote_port = 6000-6006,6007 -``` - -frpc will generate 8 proxies like `test_tcp_0`, `test_tcp_1`, ..., `test_tcp_7`. - ### Client Plugins frpc only forwards requests to local TCP or UDP ports by default. Plugins are used for providing rich features. There are built-in plugins such as `unix_domain_socket`, `http_proxy`, `socks5`, `static_file`, `http2https`, `https2http`, `https2https` and you can see [example usage](#example-usage). -Specify which plugin to use with the `plugin` parameter. Configuration parameters of plugin should be started with `plugin_`. `local_ip` and `local_port` are not used for plugin. - Using plugin **http_proxy**: -```ini -# frpc.ini -[http_proxy] -type = tcp -remote_port = 6000 -plugin = http_proxy -plugin_http_user = abc -plugin_http_passwd = abc +```toml +# frpc.toml +[[proxies]] +name = "http_proxy" +type = "tcp" +remotePort = 6000 +[proxies.plugin] +type = "http_proxy" +httpUser = "abc" +httpPassword = "abc" ``` -`plugin_http_user` and `plugin_http_passwd` are configuration parameters used in `http_proxy` plugin. +`httpUser` and `httpPassword` are configuration parameters used in `http_proxy` plugin. ### Server Manage Plugins @@ -1179,10 +1163,6 @@ Read the [document](/doc/server_plugin.md). Find more plugins in [gofrp/plugin](https://github.com/gofrp/plugin). -## Development Plan - -* Log HTTP request information in frps. - ## Contributing Interested in getting involved? We would like to help you! diff --git a/README_zh.md b/README_zh.md index 951a793880b..d6256a1bcb3 100644 --- a/README_zh.md +++ b/README_zh.md @@ -90,10 +90,6 @@ frp 是一个免费且开源的项目,我们欢迎任何人为其开发和进 ![zsxq](/doc/pic/zsxq.jpg) -### 支付宝扫码捐赠 - -![donate-alipay](/doc/pic/donate-alipay.png) - ### 微信支付捐赠 ![donate-wechatpay](/doc/pic/donate-wechatpay.png) diff --git a/Release.md b/Release.md index a25902cbe54..95f1ba3648b 100644 --- a/Release.md +++ b/Release.md @@ -6,3 +6,4 @@ * Change the way to start the visitor through the command line from `frpc stcp --role=visitor xxx` to `frpc stcp visitor xxx`. * Modified the semantics of the `server_addr` in the command line, no longer including the port. Added the `server_port` parameter to configure the port. +* No longer support range ports mapping in TOML/YAML/JSON. diff --git a/conf/frpc.toml b/conf/frpc.toml new file mode 100644 index 00000000000..05d6cbe2a5b --- /dev/null +++ b/conf/frpc.toml @@ -0,0 +1,360 @@ +# your proxy name will be changed to {user}.{proxy} +user = "your_name" + +# A literal address or host name for IPv6 must be enclosed +# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80" +# For single serverAddr field, no need square brackets, like serverAddr = "::". +serverAddr = "0.0.0.0" +serverPort = 7000 + +# STUN server to help penetrate NAT hole. +# natHoleStunServer = "stun.easyvoip.com:3478" + +# Decide if exit program when first login failed, otherwise continuous relogin to frps +# default is true +loginFailExit = true + +# console or real logFile path like ./frpc.log +log.to = "./frpc.log" +# trace, debug, info, warn, error +log.level = "info" +log.maxDays = 3 +# disable log colors when log.to is console, default is false +log.disablePrintColor = false + +auth.method = "token" +# auth.additionalScopes specifies additional scopes to include authentication information. +# Optional values are HeartBeats, NewWorkConns. +# auth.additionalScopes = ["HeartBeats", "NewWorkConns"] + +# auth token +auth.token = "12345678" + +# oidc.clientID specifies the client ID to use to get a token in OIDC authentication. +# auth.oidc.clientID = "" +# oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication. +# auth.oidc.clientSecret = "" +# oidc.audience specifies the audience of the token in OIDC authentication. +# auth.oidc.audience = "" +# oidc_scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "". +# auth.oidc.scope = "" +# oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint. +# It will be used to get an OIDC token. +# auth.oidc.tokenEndpointURL = "" + +# oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint. +# For example, if you want to specify the "audience" parameter, you can set as follow. +# frp will add "audience=" "var1=" to the additional parameters. +# auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/" +# auth.oidc.additionalEndpointParams.var1 = "foobar" + +# Set admin address for control frpc's action by http api such as reload +webServer.addr = "127.0.0.1" +webServer.port = 7400 +webServer.user = "admin" +webServer.password = "admin" +# Admin assets directory. By default, these assets are bundled with frpc. +# webServer.assetsDir = "./static" + +# Enable golang pprof handlers in admin listener. +webServer.pprofEnable = false + +# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds. +# transport.dialServerTimeout = 10 + +# dialServerKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps. +# If negative, keep-alive probes are disabled. +# transport.dialServerKeepalive = 7200 + +# connections will be established in advance, default value is zero +transport.poolCount = 5 + +# If tcp stream multiplexing is used, default is true, it must be same with frps +# transport.tcpMux = true + +# Specify keep alive interval for tcp mux. +# only valid if tcpMux is enabled. +# transport.tcpMuxKeepaliveInterval = 60 + +# Communication protocol used to connect to server +# supports tcp, kcp, quic, websocket and wss now, default is tcp +transport.protocol = "tcp" + +# set client binding ip when connect server, default is empty. +# only when protocol = tcp or websocket, the value will be used. +transport.connectServerLocalIP = "0.0.0.0" + +# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set proxyURL here or in global environment variables +# it only works when protocol is tcp +# transport.proxyURL = "http://user:passwd@192.168.1.128:8080" +# transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080" +# transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080" + +# quic protocol options +# transport.quic.keepalivePeriod = 10 +# transport.quic.maxIdleTimeout = 30 +# transport.quic.maxIncomingStreams = 100000 + +# If tls.enable is true, frpc will connect frps by tls. +# Since v0.50.0, the default value has been changed to true, and tls is enabled by default. +transport.tls.enable = true + +# transport.tls.certFile = "client.crt" +# transport.tls.keyFile = "client.key" +# transport.tls.trustedCaFile = "ca.crt" +# transport.tls.serverName = "example.com" + +# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the +# first custom byte when tls is enabled. +# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default. +# transport.tls.disableCustomTLSFirstByte = true + +# Heartbeat configure, it's not recommended to modify the default value. +# The default value of heartbeat_interval is 10 and heartbeat_timeout is 90. Set negative value +# to disable it. +# transport.heartbeatInterval = 30 +# transport.heartbeatTimeout = 90 + +# Specify a dns server, so frpc will use this instead of default one +# dnsServer = "8.8.8.8" + +# Proxy names you want to start. +# Default is empty, means all proxies. +# start = ["ssh", "dns"] + +# Specify udp packet size, unit is byte. If not set, the default value is 1500. +# This parameter should be same between client and server. +# It affects the udp and sudp proxy. +udpPacketSize = 1500 + +# Additional metadatas for client. +metadatas.var1 = "abc" +metadatas.var2 = "123" + +# Include other config files for proxies. +# includes = ["./confd/*.ini"] + +[[proxies]] +# 'ssh' is the unique proxy name +# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh' +name = "ssh" +type = "tcp" +localIP = "127.0.0.1" +localPort = 22 +# Limit bandwidth for this proxy, unit is KB and MB +transport.bandwidthLimit = "1MB" +# Where to limit bandwidth, can be 'client' or 'server', default is 'client' +transport.bandwidthLimitMode = "client" +# If true, traffic of this proxy will be encrypted, default is false +transport.useEncryption = false +# If true, traffic will be compressed +transport.useCompression = false +# Remote port listen by frps +remotePort = 6001 +# frps will load balancing connections for proxies in same group +loadBalancer.group = "test_group" +# group should have same group key +loadBalancer.groupKey = "123456" +# Enable health check for the backend service, it supports 'tcp' and 'http' now. +# frpc will connect local service's port to detect it's healthy status +healthCheck.type = "tcp" +# Health check connection timeout +healthCheck.timeoutSeconds = 3 +# If continuous failed in 3 times, the proxy will be removed from frps +healthCheck.maxFailed = 3 +# every 10 seconds will do a health check +healthCheck.intervalSeconds = 10 +# additional meta info for each proxy +metadatas.var1 = "abc" +metadatas.var2 = "123" + +[[proxies]] +name = "ssh_random" +type = "tcp" +localIP = "192.168.31.100" +localPort = 22 +# If remote_port is 0, frps will assign a random port for you +remotePort = 0 + +[[proxies]] +name = "dns" +type = "udp" +localIP = "114.114.114.114" +localPort = 53 +remotePort = 6002 + +# Resolve your domain names to [server_addr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02 +[[proxies]] +name = "web01" +type = "http" +localIP = "127.0.0.1" +localPort = 80 +# http username and password are safety certification for http protocol +# if not set, you can access this custom_domains without certification +httpUser = "admin" +httpPassword = "admin" +# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com +subdomain = "web01" +customDomains = ["web01.yourdomain.com"] +# locations is only available for http type +locations = ["/", "/pic"] +# route requests to this service if http basic auto user is abc +# route_by_http_user = abc +hostHeaderRewrite = "example.com" +# params with prefix "header_" will be used to update http request headers +requestHeaders.set.x-from-where = "frp" +healthCheck.type = "http" +# frpc will send a GET http request '/status' to local http service +# http service is alive when it return 2xx http response code +healthCheck.path = "/status" +healthCheck.intervalSeconds = 10 +healthCheck.maxFailed = 3 +healthCheck.timeoutSeconds = 3 + +[[proxies]] +name = "web02" +type = "https" +localIP = "127.0.0.1" +localPort = 8000 +subdomain = "web02" +customDomains = ["web02.yourdomain.com"] +# if not empty, frpc will use proxy protocol to transfer connection info to your local service +# v1 or v2 or empty +transport.proxyProtocolVersion = "v2" + +[[proxies]] +name = "tcpmuxhttpconnect" +type = "tcpmux" +multiplexer = "httpconnect" +localIP = "127.0.0.1" +localPort = 10701 +customDomains = ["tunnel1"] +# routeByHTTPUser = "user1" + +[[proxies]] +name = "plugin_unix_domain_socket" +type = "tcp" +remotePort = 6003 +# if plugin is defined, local_ip and local_port is useless +# plugin will handle connections got from frps +[proxies.plugin] +type = "unix_domain_socket" +unixPath = "/var/run/docker.sock" + +[[proxies]] +name = "plugin_http_proxy" +type = "tcp" +remotePort = 6004 +[proxies.plugin] +type = "http_proxy" +httpUser = "abc" +httpPassword = "abc" + +[[proxies]] +name = "plugin_socks5" +type = "tcp" +remotePort = 6005 +[proxies.plugin] +type = "socks5" +username = "abc" +password = "abc" + +[[proxies]] +name = "plugin_static_file" +type = "tcp" +remotePort = 6006 +[proxies.plugin] +type = "static_file" +localPath = "/var/www/blog" +stripPrefix = "static" +httpUser = "abc" +httpPassword = "abc" + +[[proxies]] +name = "plugin_https2http" +type = "https" +customDomains = ["test.yourdomain.com"] +[proxies.plugin] +type = "https2http" +localAddr = "127.0.0.1:80" +crtPath = "./server.crt" +keyPath = "./server.key" +hostHeaderRewrite = "127.0.0.1" +requestHeaders.set.x-from-where = "frp" + +[[proxies]] +name = "plugin_https2https" +type = "https" +customDomains = ["test.yourdomain.com"] +[proxies.plugin] +type = "https2https" +localAddr = "127.0.0.1:443" +crtPath = "./server.crt" +keyPath = "./server.key" +hostHeaderRewrite = "127.0.0.1" +requestHeaders.set.x-from-where = "frp" + +[[proxies]] +name = "plugin_http2https" +type = "http" +customDomains = ["test.yourdomain.com"] +[proxies.plugin] +type = "http2https" +localAddr = "127.0.0.1:443" +hostHeaderRewrite = "127.0.0.1" +requestHeaders.set.x-from-where = "frp" + +[[proxies]] +name = "secret_tcp" +# If the type is secret tcp, remote_port is useless +# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor +type = "stcp" +# secretKey is used for authentication for visitors +secretKey = "abcdefg" +localIP = "127.0.0.1" +localPort = 22 +# If not empty, only visitors from specified users can connect. +# Otherwise, visitors from same user can connect. '*' means allow all users. +allowUsers = ["*"] + +[[proxies]] +name = "p2p_tcp" +type = "xtcp" +secretKey = "abcdefg" +localIP = "127.0.0.1" +localPort = 22 +# If not empty, only visitors from specified users can connect. +# Otherwise, visitors from same user can connect. '*' means allow all users. +allowUsers = ["user1", "user2"] + +# frpc role visitor -> frps -> frpc role server +[[visitors]] +name = "secret_tcp_visitor" +type = "stcp" +# the server name you want to visitor +serverName = "secret_tcp" +secretKey = "abcdefg" +# connect this address to visitor stcp server +bindAddr = "127.0.0.1" +# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from +# other visitors. (This is not supported for SUDP now) +bindPort = 9000 + +[[visitors]] +name = "p2p_tcp_visitor" +type = "xtcp" +# if the server user is not set, it defaults to the current user +serverUser = "user1" +serverName = "p2p_tcp" +secretKey = "abcdefg" +bindAddr = "127.0.0.1" +# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from +# other visitors. (This is not supported for SUDP now) +bindPort = 9001 +# when automatic tunnel persistence is required, set it to true +keepTunnelOpen = false +# effective when keep_tunnel_open is set to true, the number of attempts to punch through per hour +maxRetriesAnHour = 8 +minRetryInterval = 90 +# fallbackTo = "stcp_visitor" +# fallbackTimeoutMs = 500 diff --git a/conf/frps.toml b/conf/frps.toml new file mode 100644 index 00000000000..59db6c9ea5c --- /dev/null +++ b/conf/frps.toml @@ -0,0 +1,154 @@ +# A literal address or host name for IPv6 must be enclosed +# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80" +# For single "bind_addr" field, no need square brackets, like "bind_addr = ::". +bindAddr = "0.0.0.0" +bindPort = 7000 + +# udp port used for kcp protocol, it can be same with 'bind_port'. +# if not set, kcp is disabled in frps. +kcpBindPort = 7000 + +# udp port used for quic protocol. +# if not set, quic is disabled in frps. +# quicBindPort = 7002 + +# Specify which address proxy will listen for, default value is same with bind_addr +# proxy_bind_addr = "127.0.0.1" + +# quic protocol options +# transport.quic.keepalivePeriod = 10 +# transport.quic.maxIdleTimeout = 30 +# transport.quic.maxIncomingStreams = 100000 + +# Heartbeat configure, it's not recommended to modify the default value +# The default value of heartbeat_timeout is 90. Set negative value to disable it. +# transport.heartbeatTimeout = 90 + +# Pool count in each proxy will keep no more than maxPoolCount. +transport.maxPoolCount = 5 + +# If tcp stream multiplexing is used, default is true +# transport.tcpMux = true + +# Specify keep alive interval for tcp mux. +# only valid if tcpMux is true. +# transport.tcpMuxKeepaliveInterval = 60 + +# tcpKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps. +# If negative, keep-alive probes are disabled. +# transport.tcpKeepalive = 7200 + +# transport.tls.force specifies whether to only accept TLS-encrypted connections. By default, the value is false. +tls.force = false + +# transport.tls.certFile = "server.crt" +# transport.tls.keyFile = "server.key" +# transport.tls.trustedCaFile = "ca.crt" + +# If you want to support virtual host, you must set the http port for listening (optional) +# Note: http port and https port can be same with bind_port +vhostHTTPPort = 80 +vhostHTTPSPort = 443 + +# Response header timeout(seconds) for vhost http server, default is 60s +# vhostHTTPTimeout = 60 + +# tcpmuxHTTPConnectPort specifies the port that the server listens for TCP +# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP +# requests on one single port. If it's not - it will listen on this value for +# HTTP CONNECT requests. By default, this value is 0. +# tcpmuxHTTPConnectPort = 1337 + +# If tcpmux_passthrough is true, frps won't do any update on traffic. +# tcpmuxPassthrough = false + +# Configure the web server to enable the dashboard for frps. +# dashboard is available only if webServer.port is set. +webServer.addr = "127.0.0.1" +webServer.port = 7500 +webServer.user = "admin" +webServer.password = "admin" +# webServer.tls.certFile = "server.crt" +# webServer.tls.keyFile = "server.key" +# dashboard assets directory(only for debug mode) +# webServer.assetsDir = "./static" + +# Enable golang pprof handlers in dashboard listener. +# Dashboard port must be set first +webServer.pprofEnable = false + +# enablePrometheus will export prometheus metrics on webServer in /metrics api. +enablePrometheus = true + +# console or real logFile path like ./frps.log +log.to = "./frps.log" +# trace, debug, info, warn, error +log.level = info +log.maxDays = 3 +# disable log colors when log.to is console, default is false +log.disablePrintColor = false + +# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true. +detailedErrorsToClient = true + +# auth.method specifies what authentication method to use authenticate frpc with frps. +# If "token" is specified - token will be read into login message. +# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token". +auth.method = "token" + +# auth.additionalScopes specifies additional scopes to include authentication information. +# Optional values are HeartBeats, NewWorkConns. +# auth.additionalScopes = ["HeartBeats", "NewWorkConns"] + +# auth token +auth.token = "12345678" + +# oidc issuer specifies the issuer to verify OIDC tokens with. +auth.oidc.issuer = "" +# oidc audience specifies the audience OIDC tokens should contain when validated. +auth.oidc.audience = "" +# oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired. +auth.oidc.skipExpiryCheck = false +# oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer. +auth.oidc.skipIssuerCheck = false + +# userConnTimeout specifies the maximum time to wait for a work connection. +# userConnTimeout = 10 + +# Only allow frpc to bind ports you list. By default, there won't be any limit. +allowPorts = [ + { start = 2000, end = 3000 }, + { single = 3001 }, + { single = 3003 }, + { start = 4000, end = 50000 } +] + +# Max ports can be used for each client, default value is 0 means no limit +maxPortsPerClient = 0 + +# If subDomainHost is not empty, you can set subdomain when type is http or https in frpc's configure file +# When subdomain is est, the host used by routing is test.frps.com +subDomainHost = "frps.com" + +# custom 404 page for HTTP requests +# custom404Page = "/path/to/404.html" + +# specify udp packet size, unit is byte. If not set, the default value is 1500. +# This parameter should be same between client and server. +# It affects the udp and sudp proxy. +udpPacketSize = 1500 + +# Retention time for NAT hole punching strategy data. +natholeAnalysisDataReserveHours = 168 + +[[httpPlugins]] +name = "user-manager" +addr = "127.0.0.1:9000" +path = "/handler" +ops = ["Login"] + +[[httpPlugins]] +name = "port-manager" +addr = "127.0.0.1:9001" +path = "/handler" +ops = ["NewProxy"] diff --git a/conf/frpc_legacy_full.ini b/conf/legacy/frpc_legacy_full.ini similarity index 100% rename from conf/frpc_legacy_full.ini rename to conf/legacy/frpc_legacy_full.ini diff --git a/conf/frps_legacy_full.ini b/conf/legacy/frps_legacy_full.ini similarity index 100% rename from conf/frps_legacy_full.ini rename to conf/legacy/frps_legacy_full.ini diff --git a/doc/server_plugin.md b/doc/server_plugin.md index f4e377f43c7..b8fa161907e 100644 --- a/doc/server_plugin.md +++ b/doc/server_plugin.md @@ -216,49 +216,50 @@ New user connection received from proxy (support `tcp`, `stcp`, `https` and `tcp ### Server Plugin Configuration -```ini -# frps.ini -[common] -bind_port = 7000 - -[plugin.user-manager] -addr = 127.0.0.1:9000 -path = /handler -ops = Login - -[plugin.port-manager] -addr = 127.0.0.1:9001 -path = /handler -ops = NewProxy +```toml +# frps.toml +bindPort = 7000 + +[[httpPlugins]] +name = "user-manager" +addr = "127.0.0.1:9000" +path = "/handler" +ops = ["Login"] + +[[httpPlugins]] +name = "port-manager" +addr = "127.0.0.1:9001" +path = "/handler" +ops = ["NewProxy"] ``` -- addr: the address where the external RPC service listens. Defaults to http. For https, specify the schema: `addr = https://127.0.0.1:9001`. +- addr: the address where the external RPC service listens. Defaults to http. For https, specify the schema: `addr = "https://127.0.0.1:9001"`. - path: http request url path for the POST request. - ops: operations plugin needs to handle (e.g. "Login", "NewProxy", ...). -- tls_verify: When the schema is https, we verify by default. Set this value to false if you want to skip verification. +- tlsVerify: When the schema is https, we verify by default. Set this value to false if you want to skip verification. ### Metadata Metadata will be sent to the server plugin in each RPC request. -There are 2 types of metadata entries - 1 under `[common]` and the other under each proxy configuration. -Metadata entries under `[common]` will be sent in `Login` under the key `metas`, and in any other RPC request under `user.metas`. +There are 2 types of metadata entries - global one and the other under each proxy configuration. +Global metadata entries will be sent in `Login` under the key `metas`, and in any other RPC request under `user.metas`. Metadata entries under each proxy configuration will be sent in `NewProxy` op only, under `metas`. -Metadata entries start with `meta_`. This is an example of metadata entries in `[common]` and under the proxy named `[ssh]`: - -``` -# frpc.ini -[common] -server_addr = 127.0.0.1 -server_port = 7000 -user = fake -meta_token = fake -meta_version = 1.0.0 - -[ssh] -type = tcp -local_port = 22 -remote_port = 6000 -meta_id = 123 +This is an example of metadata entries: + +```toml +# frpc.toml +serverAddr = "127.0.0.1" +serverPort = 7000 +user = "fake" +metadatas.token = "fake" +metadatas.version = "1.0.0" + +[[proxies]] +name = "ssh" +type = "tcp" +localPort = 22 +remotePort = 6000 +metadatas.id = "123" ``` diff --git a/package.sh b/package.sh index 1a63a4e8c30..f3b220b6a2d 100755 --- a/package.sh +++ b/package.sh @@ -47,6 +47,7 @@ for os in $os_all; do fi cp ../LICENSE ${frp_path} cp -rf ../conf/* ${frp_path} + rm -rf ${frp_path}/legacy # packages cd ./packages diff --git a/pkg/config/legacy/client.go b/pkg/config/legacy/client.go index 92d3a956aef..f7257cb55f2 100644 --- a/pkg/config/legacy/client.go +++ b/pkg/config/legacy/client.go @@ -123,9 +123,9 @@ type ClientCommonConf struct { // is "tcp". Protocol string `ini:"protocol" json:"protocol"` // QUIC protocol options - QUICKeepalivePeriod int `ini:"quic_keepalive_period" json:"quic_keepalive_period" validate:"gte=0"` - QUICMaxIdleTimeout int `ini:"quic_max_idle_timeout" json:"quic_max_idle_timeout" validate:"gte=0"` - QUICMaxIncomingStreams int `ini:"quic_max_incoming_streams" json:"quic_max_incoming_streams" validate:"gte=0"` + QUICKeepalivePeriod int `ini:"quic_keepalive_period" json:"quic_keepalive_period"` + QUICMaxIdleTimeout int `ini:"quic_max_idle_timeout" json:"quic_max_idle_timeout"` + QUICMaxIncomingStreams int `ini:"quic_max_incoming_streams" json:"quic_max_incoming_streams"` // TLSEnable specifies whether or not TLS should be used when communicating // with the server. If "tls_cert_file" and "tls_key_file" are valid, // client will load the supplied tls configuration. diff --git a/pkg/config/legacy/server.go b/pkg/config/legacy/server.go index a10db34b7e0..acdb93b40a6 100644 --- a/pkg/config/legacy/server.go +++ b/pkg/config/legacy/server.go @@ -41,35 +41,35 @@ type ServerCommonConf struct { BindAddr string `ini:"bind_addr" json:"bind_addr"` // BindPort specifies the port that the server listens on. By default, this // value is 7000. - BindPort int `ini:"bind_port" json:"bind_port" validate:"gte=0,lte=65535"` + BindPort int `ini:"bind_port" json:"bind_port"` // KCPBindPort specifies the KCP port that the server listens on. If this // value is 0, the server will not listen for KCP connections. By default, // this value is 0. - KCPBindPort int `ini:"kcp_bind_port" json:"kcp_bind_port" validate:"gte=0,lte=65535"` + KCPBindPort int `ini:"kcp_bind_port" json:"kcp_bind_port"` // QUICBindPort specifies the QUIC port that the server listens on. // Set this value to 0 will disable this feature. // By default, the value is 0. - QUICBindPort int `ini:"quic_bind_port" json:"quic_bind_port" validate:"gte=0,lte=65535"` + QUICBindPort int `ini:"quic_bind_port" json:"quic_bind_port"` // QUIC protocol options - QUICKeepalivePeriod int `ini:"quic_keepalive_period" json:"quic_keepalive_period" validate:"gte=0"` - QUICMaxIdleTimeout int `ini:"quic_max_idle_timeout" json:"quic_max_idle_timeout" validate:"gte=0"` - QUICMaxIncomingStreams int `ini:"quic_max_incoming_streams" json:"quic_max_incoming_streams" validate:"gte=0"` + QUICKeepalivePeriod int `ini:"quic_keepalive_period" json:"quic_keepalive_period"` + QUICMaxIdleTimeout int `ini:"quic_max_idle_timeout" json:"quic_max_idle_timeout"` + QUICMaxIncomingStreams int `ini:"quic_max_incoming_streams" json:"quic_max_incoming_streams"` // ProxyBindAddr specifies the address that the proxy binds to. This value // may be the same as BindAddr. ProxyBindAddr string `ini:"proxy_bind_addr" json:"proxy_bind_addr"` // VhostHTTPPort specifies the port that the server listens for HTTP Vhost // requests. If this value is 0, the server will not listen for HTTP // requests. By default, this value is 0. - VhostHTTPPort int `ini:"vhost_http_port" json:"vhost_http_port" validate:"gte=0,lte=65535"` + VhostHTTPPort int `ini:"vhost_http_port" json:"vhost_http_port"` // VhostHTTPSPort specifies the port that the server listens for HTTPS // Vhost requests. If this value is 0, the server will not listen for HTTPS // requests. By default, this value is 0. - VhostHTTPSPort int `ini:"vhost_https_port" json:"vhost_https_port" validate:"gte=0,lte=65535"` + VhostHTTPSPort int `ini:"vhost_https_port" json:"vhost_https_port"` // TCPMuxHTTPConnectPort specifies the port that the server listens for TCP // HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP // requests on one single port. If it's not - it will listen on this value for // HTTP CONNECT requests. By default, this value is 0. - TCPMuxHTTPConnectPort int `ini:"tcpmux_httpconnect_port" json:"tcpmux_httpconnect_port" validate:"gte=0,lte=65535"` + TCPMuxHTTPConnectPort int `ini:"tcpmux_httpconnect_port" json:"tcpmux_httpconnect_port"` // If TCPMuxPassthrough is true, frps won't do any update on traffic. TCPMuxPassthrough bool `ini:"tcpmux_passthrough" json:"tcpmux_passthrough"` // VhostHTTPTimeout specifies the response header timeout for the Vhost @@ -81,7 +81,7 @@ type ServerCommonConf struct { // DashboardPort specifies the port that the dashboard listens on. If this // value is 0, the dashboard will not be started. By default, this value is // 0. - DashboardPort int `ini:"dashboard_port" json:"dashboard_port" validate:"gte=0,lte=65535"` + DashboardPort int `ini:"dashboard_port" json:"dashboard_port"` // DashboardTLSCertFile specifies the path of the cert file that the server will // load. If "dashboard_tls_cert_file", "dashboard_tls_key_file" are valid, the server will use this // supplied tls configuration. diff --git a/pkg/config/load_test.go b/pkg/config/load_test.go new file mode 100644 index 00000000000..eab4ba96b7d --- /dev/null +++ b/pkg/config/load_test.go @@ -0,0 +1,45 @@ +// Copyright 2023 The frp Authors +// +// Licensed 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. + +package config + +import ( + "testing" + + "github.com/stretchr/testify/require" + + v1 "github.com/fatedier/frp/pkg/config/v1" +) + +func TestLoadConfigure(t *testing.T) { + require := require.New(t) + content := ` +bindAddr = "127.0.0.1" +kcpBindPort = 7000 +quicBindPort = 7001 +tcpmuxHTTPConnectPort = 7005 +custom404Page = "/abc.html" +transport.tcpKeepalive = 10 +` + + svrCfg := v1.ServerConfig{} + err := LoadConfigure([]byte(content), &svrCfg) + require.NoError(err) + require.EqualValues("127.0.0.1", svrCfg.BindAddr) + require.EqualValues(7000, svrCfg.KCPBindPort) + require.EqualValues(7001, svrCfg.QUICBindPort) + require.EqualValues(7005, svrCfg.TCPMuxHTTPConnectPort) + require.EqualValues("/abc.html", svrCfg.Custom404Page) + require.EqualValues(10, svrCfg.Transport.TCPKeepAlive) +} diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go index be4e39a0220..119c024cbfd 100644 --- a/pkg/config/v1/common.go +++ b/pkg/config/v1/common.go @@ -34,9 +34,9 @@ const ( // QUIC protocol options type QUICOptions struct { - KeepalivePeriod int `json:"quicKeepalivePeriod,omitempty" validate:"gte=0"` - MaxIdleTimeout int `json:"quicMaxIdleTimeout,omitempty" validate:"gte=0"` - MaxIncomingStreams int `json:"quicMaxIncomingStreams,omitempty" validate:"gte=0"` + KeepalivePeriod int `json:"keepalivePeriod,omitempty"` + MaxIdleTimeout int `json:"maxIdleTimeout,omitempty"` + MaxIncomingStreams int `json:"maxIncomingStreams,omitempty"` } func (c *QUICOptions) Complete() { diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index dc09c6b9a33..41bb13414b7 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -278,7 +278,7 @@ type HTTPProxyConfig struct { HTTPPassword string `json:"httpPassword,omitempty"` HostHeaderRewrite string `json:"hostHeaderRewrite,omitempty"` RequestHeaders HeaderOperations `json:"requestHeaders,omitempty"` - RouteByHTTPUser string `json:"routeByHttpUser,omitempty"` + RouteByHTTPUser string `json:"routeByHTTPUser,omitempty"` } func (c *HTTPProxyConfig) MarshalToMsg(m *msg.NewProxy) { @@ -342,7 +342,7 @@ type TCPMuxProxyConfig struct { HTTPUser string `json:"httpUser,omitempty"` HTTPPassword string `json:"httpPassword,omitempty"` - RouteByHTTPUser string `json:"routeByHttpUser,omitempty"` + RouteByHTTPUser string `json:"routeByHTTPUser,omitempty"` Multiplexer string `json:"multiplexer,omitempty"` } diff --git a/pkg/config/v1/server.go b/pkg/config/v1/server.go index 380bd2d9267..5648d2495e4 100644 --- a/pkg/config/v1/server.go +++ b/pkg/config/v1/server.go @@ -62,7 +62,7 @@ type ServerConfig struct { // requested by the client when using Vhost proxying. For example, if this // value is set to "frps.com" and the client requested the subdomain // "test", the resulting URL would be "test.frps.com". - SubDomainHost string `json:"subdomainHost,omitempty"` + SubDomainHost string `json:"subDomainHost,omitempty"` // Custom404Page specifies a path to a custom 404 page to display. If this // value is "", a default page will be displayed. Custom404Page string `json:"custom404Page,omitempty"` diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 32a94580ea7..32b31837b6f 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.51.3" +var version = "0.52.0" func Full() string { return version diff --git a/web/frps/auto-imports.d.ts b/web/frps/auto-imports.d.ts index 08908edd6a4..afc379b3e12 100644 --- a/web/frps/auto-imports.d.ts +++ b/web/frps/auto-imports.d.ts @@ -1,5 +1,3 @@ // Generated by 'unplugin-auto-import' export {} -declare global { - -} +declare global {} From 5eb8f3db03d35598182637d416a1dd5defa7112b Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 10 Oct 2023 19:02:52 +0800 Subject: [PATCH 103/444] fix tlsVerify json tag (#3654) --- pkg/config/legacy/server.go | 2 +- pkg/config/v1/common.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/config/legacy/server.go b/pkg/config/legacy/server.go index acdb93b40a6..797770a3a94 100644 --- a/pkg/config/legacy/server.go +++ b/pkg/config/legacy/server.go @@ -27,7 +27,7 @@ type HTTPPluginOptions struct { Addr string `ini:"addr"` Path string `ini:"path"` Ops []string `ini:"ops"` - TLSVerify bool `ini:"tls_verify"` + TLSVerify bool `ini:"tlsVerify"` } // ServerCommonConf contains information for a server service. It is diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go index 119c024cbfd..422a8082ede 100644 --- a/pkg/config/v1/common.go +++ b/pkg/config/v1/common.go @@ -109,7 +109,7 @@ type HTTPPluginOptions struct { Addr string `json:"addr"` Path string `json:"path"` Ops []string `json:"ops"` - TLSVerify bool `json:"tls_verify,omitempty"` + TLSVerify bool `json:"tlsVerify,omitempty"` } type HeaderOperations struct { From 307d1bfa3f2aff6d6ee1e43b0e0caeee115da443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E9=B8=BF=E9=A3=9E?= Date: Tue, 10 Oct 2023 19:45:33 +0800 Subject: [PATCH 104/444] Fix log.level configuration in frps.toml (#3655) ```toml log.level = info ``` changed to ```toml log.level = "info" ``` --- conf/frps.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/frps.toml b/conf/frps.toml index 59db6c9ea5c..180a3b24148 100644 --- a/conf/frps.toml +++ b/conf/frps.toml @@ -83,7 +83,7 @@ enablePrometheus = true # console or real logFile path like ./frps.log log.to = "./frps.log" # trace, debug, info, warn, error -log.level = info +log.level = "info" log.maxDays = 3 # disable log colors when log.to is console, default is false log.disablePrintColor = false From 7cc67e852e358ffc111201ed2bf081f171b4388d Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 11 Oct 2023 11:49:40 +0800 Subject: [PATCH 105/444] fix that transport.tls.disableCustomTLSFirstByte doesn't take effect (#3660) --- README.md | 2 ++ Release.md | 10 ++-------- client/service.go | 3 +++ pkg/util/version/version.go | 2 +- test/e2e/v1/basic/client_server.go | 20 +++++++++++++++++++- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 7c7656bf522..b560d4473e5 100644 --- a/README.md +++ b/README.md @@ -761,6 +761,8 @@ allowPorts = [ `vhostHTTPPort` and `vhostHTTPSPort` in frps can use same port with `bindPort`. frps will detect the connection's protocol and handle it correspondingly. +What you need to pay attention to is that if you want to configure `vhostHTTPSPort` and `bindPort` to the same port, you need to first set `transport.tls.disableCustomTLSFirstByte` to false. + We would like to try to allow multiple proxies bind a same remote port with different protocols in the future. ### Bandwidth Limit diff --git a/Release.md b/Release.md index 95f1ba3648b..3d164f73f43 100644 --- a/Release.md +++ b/Release.md @@ -1,9 +1,3 @@ -### Features +### Fixes -* Configuration: We now support TOML, YAML, and JSON for configuration. Please note that INI is deprecated and will be removed in future releases. New features will only be available in TOML, YAML, or JSON. Users wanting these new features should switch their configuration format accordingly. #2521 - -### Breaking Changes - -* Change the way to start the visitor through the command line from `frpc stcp --role=visitor xxx` to `frpc stcp visitor xxx`. -* Modified the semantics of the `server_addr` in the command line, no longer including the port. Added the `server_port` parameter to configure the port. -* No longer support range ports mapping in TOML/YAML/JSON. +* `transport.tls.disableCustomTLSFirstByte` doesn't have any effect. diff --git a/client/service.go b/client/service.go index 5ddc23c3f29..184a87a3305 100644 --- a/client/service.go +++ b/client/service.go @@ -476,6 +476,9 @@ func (cm *ConnectionManager) realConnect() (net.Conn, error) { // Make sure that if it is wss, the websocket hook is executed after the tls hook. dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: utilnet.DialHookWebsocket(protocol, tlsConfig.ServerName), Priority: 110})) default: + dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{ + Hook: utilnet.DialHookCustomTLSHeadByte(tlsConfig != nil, lo.FromPtr(cm.cfg.Transport.TLS.DisableCustomTLSFirstByte)), + })) dialOptions = append(dialOptions, libdial.WithTLSConfig(tlsConfig)) } diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 32b31837b6f..5f6f3702c50 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version = "0.52.0" +var version = "0.52.1" func Full() string { return version diff --git a/test/e2e/v1/basic/client_server.go b/test/e2e/v1/basic/client_server.go index 082c0de591a..16270781855 100644 --- a/test/e2e/v1/basic/client_server.go +++ b/test/e2e/v1/basic/client_server.go @@ -291,7 +291,7 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { }) }) - ginkgo.Describe("TLS with disable_custom_tls_first_byte set to false", func() { + ginkgo.Describe("TLS with disableCustomTLSFirstByte set to false", func() { supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} for _, protocol := range supportProtocols { tmp := protocol @@ -322,4 +322,22 @@ var _ = ginkgo.Describe("[Feature: Client-Server]", func() { }) } }) + + ginkgo.Describe("Use same port for bindPort and vhostHTTPSPort", func() { + supportProtocols := []string{"tcp", "kcp", "quic", "websocket"} + for _, protocol := range supportProtocols { + tmp := protocol + defineClientServerTest("Use same port for bindPort and vhostHTTPSPort: "+strings.ToUpper(tmp), f, &generalTestConfigures{ + server: fmt.Sprintf(` + vhostHTTPSPort = {{ .%s }} + %s + `, consts.PortServerName, renderBindPortConfig(protocol)), + // transport.tls.disableCustomTLSFirstByte should set to false when vhostHTTPSPort is same as bindPort + client: fmt.Sprintf(` + transport.protocol = "%s" + transport.tls.disableCustomTLSFirstByte = false + `, protocol), + }) + } + }) }) From df12cc2b9d24eb0cbf0b64078c97bf32d8c2da9c Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 11 Oct 2023 15:01:07 +0800 Subject: [PATCH 106/444] fix broken server api and dashboard info (#3662) --- Release.md | 2 + .../{index-ea3edf22.js => index-9465253b.js} | 38 ++--- assets/frps/static/index.html | 2 +- pkg/config/v1/plugin.go | 6 +- server/dashboard_api.go | 70 ++++----- web/frps/auto-imports.d.ts | 4 +- web/frps/src/components/ProxiesHTTP.vue | 12 +- web/frps/src/components/ProxiesHTTPS.vue | 12 +- web/frps/src/components/ProxyView.vue | 12 +- web/frps/src/components/ProxyViewExpand.vue | 12 +- web/frps/src/components/ServerOverview.vue | 142 +++++++++--------- web/frps/src/components/Traffic.vue | 8 +- web/frps/src/utils/chart.ts | 42 +++--- web/frps/src/utils/proxy.ts | 87 +++++------ 14 files changed, 224 insertions(+), 225 deletions(-) rename assets/frps/static/{index-ea3edf22.js => index-9465253b.js} (76%) diff --git a/Release.md b/Release.md index 3d164f73f43..b5f39eec02d 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,5 @@ ### Fixes * `transport.tls.disableCustomTLSFirstByte` doesn't have any effect. +* The Server API did not return the data correctly. +* The Dashboard is unable to display data. diff --git a/assets/frps/static/index-ea3edf22.js b/assets/frps/static/index-9465253b.js similarity index 76% rename from assets/frps/static/index-ea3edf22.js rename to assets/frps/static/index-9465253b.js index 206292caf46..c2f4e63ddc1 100644 --- a/assets/frps/static/index-ea3edf22.js +++ b/assets/frps/static/index-9465253b.js @@ -1,4 +1,4 @@ -var fD=Object.defineProperty;var dD=(e,t,r)=>t in e?fD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var hD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,r)=>(dD(e,typeof t!="symbol"?t+"":t,r),r);var Tre=hD((Nr,Fr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Em(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function St(e){if(be(e)){const t={};for(let r=0;r{if(r){const n=r.split(pD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ue(e){let t="";if(He(e))t=e;else if(be(e))for(let r=0;rOd(r,t))}const Me=e=>He(e)?e:e==null?"":be(e)||Xe(e)&&(e.toString===mC||!De(e.toString))?JSON.stringify(e,gC,2):String(e),gC=(e,t)=>t&&t.__v_isRef?gC(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:kd(t)?{[`Set(${t.size})`]:[...t.values()]}:Xe(t)&&!be(t)&&!yC(t)?String(t):t,yt={},ns=[],ur=()=>{},wD=()=>!1,xD=/^on[^a-z]/,Rd=e=>xD.test(e),Pm=e=>e.startsWith("onUpdate:"),Gt=Object.assign,Lm=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},SD=Object.prototype.hasOwnProperty,We=(e,t)=>SD.call(e,t),be=Array.isArray,is=e=>Bu(e)==="[object Map]",kd=e=>Bu(e)==="[object Set]",K0=e=>Bu(e)==="[object Date]",De=e=>typeof e=="function",He=e=>typeof e=="string",tu=e=>typeof e=="symbol",Xe=e=>e!==null&&typeof e=="object",jf=e=>Xe(e)&&De(e.then)&&De(e.catch),mC=Object.prototype.toString,Bu=e=>mC.call(e),CD=e=>Bu(e).slice(8,-1),yC=e=>Bu(e)==="[object Object]",Dm=e=>He(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mf=Em(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Nd=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},TD=/-(\w)/g,An=Nd(e=>e.replace(TD,(t,r)=>r?r.toUpperCase():"")),MD=/\B([A-Z])/g,xo=Nd(e=>e.replace(MD,"-$1").toLowerCase()),Fd=Nd(e=>e.charAt(0).toUpperCase()+e.slice(1)),yf=Nd(e=>e?`on${Fd(e)}`:""),ru=(e,t)=>!Object.is(e,t),_f=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},AD=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ED=e=>{const t=He(e)?Number(e):NaN;return isNaN(t)?e:t};let X0;const PD=()=>X0||(X0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Or;class LD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Or,!t&&Or&&(this.index=(Or.scopes||(Or.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Or;try{return Or=this,t()}finally{Or=r}}}on(){Or=this}off(){Or=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},bC=e=>(e.w&ea)>0,wC=e=>(e.n&ea)>0,OD=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(c==="length"||c>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":be(e)?Dm(r)&&s.push(o.get("length")):(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"delete":be(e)||(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"set":is(e)&&s.push(o.get(no));break}if(s.length===1)s[0]&&Tp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);Tp(Im(l))}}function Tp(e,t){const r=be(e)?e:[...e];for(const n of r)n.computed&&Q0(n);for(const n of r)n.computed||Q0(n)}function Q0(e,t){(e!==bn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function kD(e,t){var r;return(r=qf.get(e))===null||r===void 0?void 0:r.get(t)}const ND=Em("__proto__,__v_isRef,__isVue"),CC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(tu)),FD=Rm(),BD=Rm(!1,!0),$D=Rm(!0),J0=HD();function HD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ke(this);for(let a=0,o=this.length;a{e[t]=function(...r){Os();const n=Ke(this)[t].apply(this,r);return Rs(),n}}),e}function zD(e){const t=Ke(this);return Mr(t,"has",e),t.hasOwnProperty(e)}function Rm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?nI:PC:t?EC:AC).get(n))return n;const o=be(n);if(!e){if(o&&We(J0,i))return Reflect.get(J0,i,a);if(i==="hasOwnProperty")return zD}const s=Reflect.get(n,i,a);return(tu(i)?CC.has(i):ND(i))||(e||Mr(n,"get",i),t)?s:Ct(s)?o&&Dm(i)?s:s.value:Xe(s)?e?$u(s):fn(s):s}}const WD=TC(),VD=TC(!0);function TC(e=!1){return function(r,n,i,a){let o=r[n];if(vs(o)&&Ct(o)&&!Ct(i))return!1;if(!e&&(!Kf(i)&&!vs(i)&&(o=Ke(o),i=Ke(i)),!be(r)&&Ct(o)&&!Ct(i)))return o.value=i,!0;const s=be(r)&&Dm(n)?Number(n)e,Bd=e=>Reflect.getPrototypeOf(e);function uc(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ke(e),a=Ke(t);r||(t!==a&&Mr(i,"get",t),Mr(i,"get",a));const{has:o}=Bd(i),s=n?km:r?Bm:nu;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function cc(e,t=!1){const r=this.__v_raw,n=Ke(r),i=Ke(e);return t||(e!==i&&Mr(n,"has",e),Mr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function fc(e,t=!1){return e=e.__v_raw,!t&&Mr(Ke(e),"iterate",no),Reflect.get(e,"size",e)}function e_(e){e=Ke(e);const t=Ke(this);return Bd(t).has.call(t,e)||(t.add(e),gi(t,"add",e,e)),this}function t_(e,t){t=Ke(t);const r=Ke(this),{has:n,get:i}=Bd(r);let a=n.call(r,e);a||(e=Ke(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?ru(t,o)&&gi(r,"set",e,t):gi(r,"add",e,t),this}function r_(e){const t=Ke(this),{has:r,get:n}=Bd(t);let i=r.call(t,e);i||(e=Ke(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&gi(t,"delete",e,void 0),a}function n_(){const e=Ke(this),t=e.size!==0,r=e.clear();return t&&gi(e,"clear",void 0,void 0),r}function dc(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ke(o),l=t?km:e?Bm:nu;return!e&&Mr(s,"iterate",no),o.forEach((u,c)=>n.call(i,l(u),l(c),a))}}function hc(e,t,r){return function(...n){const i=this.__v_raw,a=Ke(i),o=is(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),c=r?km:t?Bm:nu;return!t&&Mr(a,"iterate",l?Cp:no),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Pi(e){return function(...t){return e==="delete"?!1:this}}function KD(){const e={get(a){return uc(this,a)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!1)},t={get(a){return uc(this,a,!1,!0)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!0)},r={get(a){return uc(this,a,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!1)},n={get(a){return uc(this,a,!0,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Pi("add"),set:Pi("set"),delete:Pi("delete"),clear:Pi("clear"),forEach:dc(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=hc(a,!1,!1),r[a]=hc(a,!0,!1),t[a]=hc(a,!1,!0),n[a]=hc(a,!0,!0)}),[e,r,t,n]}const[XD,ZD,QD,JD]=KD();function Nm(e,t){const r=t?e?JD:QD:e?ZD:XD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(We(r,i)&&i in n?r:n,i,a)}const eI={get:Nm(!1,!1)},tI={get:Nm(!1,!0)},rI={get:Nm(!0,!1)},AC=new WeakMap,EC=new WeakMap,PC=new WeakMap,nI=new WeakMap;function iI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function aI(e){return e.__v_skip||!Object.isExtensible(e)?0:iI(CD(e))}function fn(e){return vs(e)?e:Fm(e,!1,MC,eI,AC)}function LC(e){return Fm(e,!1,qD,tI,EC)}function $u(e){return Fm(e,!0,YD,rI,PC)}function Fm(e,t,r,n,i){if(!Xe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=aI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function as(e){return vs(e)?as(e.__v_raw):!!(e&&e.__v_isReactive)}function vs(e){return!!(e&&e.__v_isReadonly)}function Kf(e){return!!(e&&e.__v_isShallow)}function DC(e){return as(e)||vs(e)}function Ke(e){const t=e&&e.__v_raw;return t?Ke(t):e}function IC(e){return Yf(e,"__v_skip",!0),e}const nu=e=>Xe(e)?fn(e):e,Bm=e=>Xe(e)?$u(e):e;function OC(e){Xi&&bn&&(e=Ke(e),SC(e.dep||(e.dep=Im())))}function RC(e,t){e=Ke(e);const r=e.dep;r&&Tp(r)}function Ct(e){return!!(e&&e.__v_isRef===!0)}function B(e){return kC(e,!1)}function $m(e){return kC(e,!0)}function kC(e,t){return Ct(e)?e:new oI(e,t)}class oI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ke(t),this._value=r?t:nu(t)}get value(){return OC(this),this._value}set value(t){const r=this.__v_isShallow||Kf(t)||vs(t);t=r?t:Ke(t),ru(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:nu(t),RC(this))}}function E(e){return Ct(e)?e.value:e}const sI={get:(e,t,r)=>E(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Ct(i)&&!Ct(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function NC(e){return as(e)?e:new Proxy(e,sI)}function $d(e){const t=be(e)?new Array(e.length):{};for(const r in e)t[r]=tn(e,r);return t}class lI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return kD(Ke(this._object),this._key)}}function tn(e,t,r){const n=e[t];return Ct(n)?n:new lI(e,t,r)}var FC;class uI{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[FC]=!1,this._dirty=!0,this.effect=new Om(t,()=>{this._dirty||(this._dirty=!0,RC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ke(this);return OC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}FC="__v_isReadonly";function cI(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=ur):(n=e.get,i=e.set),new uI(n,i,a||!i,r)}function fI(e,...t){}function Zi(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Hd(a,t,r)}return i}function rn(e,t,r,n){if(De(e)){const a=Zi(e,t,r,n);return a&&jf(a)&&a.catch(o=>{Hd(o,t,r)}),a}const i=[];for(let a=0;a>>1;au(tr[n])$n&&tr.splice(t,1)}function pI(e){be(e)?os.push(...e):(!ci||!ci.includes(e,e.allowRecurse?Ga+1:Ga))&&os.push(e),$C()}function i_(e,t=iu?$n+1:0){for(;tau(r)-au(n)),Ga=0;Gae.id==null?1/0:e.id,gI=(e,t)=>{const r=au(e)-au(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function zC(e){Mp=!1,iu=!0,tr.sort(gI);const t=ur;try{for($n=0;$nHe(h)?h.trim():h)),f&&(i=r.map(AD))}let s,l=n[s=yf(t)]||n[s=yf(An(t))];!l&&a&&(l=n[s=yf(xo(t))]),l&&rn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,rn(u,e,6,i)}}function WC(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const c=WC(u,t,!0);c&&(s=!0,Gt(o,c))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(Xe(e)&&n.set(e,null),null):(be(a)?a.forEach(l=>o[l]=null):Gt(o,a),Xe(e)&&n.set(e,o),o)}function zd(e,t){return!e||!Rd(t)?!1:(t=t.slice(2).replace(/Once$/,""),We(e,t[0].toLowerCase()+t.slice(1))||We(e,xo(t))||We(e,t))}let qt=null,VC=null;function Xf(e){const t=qt;return qt=e,VC=e&&e.type.__scopeId||null,t}function Z(e,t=qt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&g_(-1);const a=Xf(t);let o;try{o=e(...i)}finally{Xf(a),n._d&&g_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ih(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Xf(e);try{if(r.shapeFlag&4){const b=i||n;g=Bn(c.call(b,b,f,a,h,d,v)),m=l}else{const b=t;g=Bn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:yI(l)}}catch(b){Dl.length=0,Hd(b,e,1),g=ee(xr)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(Pm)&&(m=_I(m,o)),_=mi(_,m))}return r.dirs&&(_=mi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Xf(y),g}const yI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Rd(r))&&((t||(t={}))[r]=e[r]);return t},_I=(e,t)=>{const r={};for(const n in e)(!Pm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function bI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?a_(n,o,u):!!o;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function SI(e,t){t&&t.pendingBranch?be(e)?t.effects.push(...e):t.effects.push(e):pI(e)}function At(e,t){if(It){let r=It.provides;const n=It.parent&&It.parent.provides;n===r&&(r=It.provides=Object.create(n)),r[e]=t}}function Ee(e,t,r=!1){const n=It||qt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&De(t)?t.call(n.proxy):t}}function io(e,t){return Wm(e,null,t)}const vc={};function Se(e,t,r){return Wm(e,t,r)}function Wm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=yt){const s=_C()===(It==null?void 0:It.scope)?It:null;let l,u=!1,c=!1;if(Ct(e)?(l=()=>e.value,u=Kf(e)):as(e)?(l=()=>e,n=!0):be(e)?(c=!0,u=e.some(_=>as(_)||Kf(_)),l=()=>e.map(_=>{if(Ct(_))return _.value;if(as(_))return Xa(_);if(De(_))return Zi(_,s,2)})):De(e)?t?l=()=>Zi(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return f&&f(),rn(e,s,3,[d])}:l=ur,t&&n){const _=l;l=()=>Xa(_())}let f,d=_=>{f=m.onStop=()=>{Zi(_,s,4)}},h;if(uu)if(d=ur,t?r&&rn(t,s,3,[l(),c?[]:void 0,d]):l(),i==="sync"){const _=vO();h=_.__watcherHandles||(_.__watcherHandles=[])}else return ur;let v=c?new Array(e.length).fill(vc):vc;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(c?_.some((b,x)=>ru(b,v[x])):ru(_,v)))&&(f&&f(),rn(t,s,3,[_,v===vc?void 0:c&&v[0]===vc?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>yr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>zm(p));const m=new Om(l,g);t?r?p():v=m.run():i==="post"?yr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&Lm(s.scope.effects,m)};return h&&h.push(y),y}function CI(e,t,r){const n=this.proxy,i=He(e)?e.includes(".")?GC(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=It;ps(this);const s=Wm(i,a.bind(n),r);return o?ps(o):ao(),s}function GC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Xa(r,t)});else if(yC(e))for(const r in e)Xa(e[r],t);return e}function UC(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return wt(()=>{e.isMounted=!0}),Xt(()=>{e.isUnmounting=!0}),e}const Wr=[Function,Array],TI={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Wr,onEnter:Wr,onAfterEnter:Wr,onEnterCancelled:Wr,onBeforeLeave:Wr,onLeave:Wr,onAfterLeave:Wr,onLeaveCancelled:Wr,onBeforeAppear:Wr,onAppear:Wr,onAfterAppear:Wr,onAppearCancelled:Wr},setup(e,{slots:t}){const r=ct(),n=UC();let i;return()=>{const a=t.default&&Vm(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==xr){o=p;break}}const s=Ke(e),{mode:l}=s;if(n.isLeaving)return Oh(o);const u=o_(o);if(!u)return Oh(o);const c=ou(u,s,n,r);su(u,c);const f=r.subTree,d=f&&o_(f);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==xr&&(!Ua(u,d)||h)){const p=ou(d,s,n,r);if(su(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Oh(o);l==="in-out"&&u.type!==xr&&(p.delayLeave=(g,m,y)=>{const _=YC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=y})}return o}}},jC=TI;function YC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function ou(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=YC(r,e),x=(C,M)=>{C&&rn(C,n,9,M)},w=(C,M)=>{const P=M[1];x(C,M),be(C)?C.every(A=>A.length<=1)&&P():C.length<=1&&P()},S={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C._leaveCb&&C._leaveCb(!0);const P=b[_];P&&Ua(e,P)&&P.el._leaveCb&&P.el._leaveCb(),x(M,[C])},enter(C){let M=l,P=u,A=c;if(!r.isMounted)if(i)M=g||l,P=m||u,A=y||c;else return;let T=!1;const D=C._enterCb=N=>{T||(T=!0,N?x(A,[C]):x(P,[C]),S.delayedLeave&&S.delayedLeave(),C._enterCb=void 0)};M?w(M,[C,D]):D()},leave(C,M){const P=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return M();x(f,[C]);let A=!1;const T=C._leaveCb=D=>{A||(A=!0,M(),D?x(v,[C]):x(h,[C]),C._leaveCb=void 0,b[P]===e&&delete b[P])};b[P]=e,d?w(d,[C,T]):T()},clone(C){return ou(C,t,r,n)}};return S}function Oh(e){if(Wd(e))return e=mi(e),e.children=null,e}function o_(e){return Wd(e)?e.children?e.children[0]:void 0:e}function su(e,t){e.shapeFlag&6&&e.component?su(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vm(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Wd=e=>e.type.__isKeepAlive;function MI(e,t){KC(e,"a",t)}function qC(e,t){KC(e,"da",t)}function KC(e,t,r=It){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Vd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Wd(i.parent.vnode)&&AI(n,t,r,i),i=i.parent}}function AI(e,t,r,n){const i=Vd(t,e,n,!0);ks(()=>{Lm(n[t],i)},r)}function Vd(e,t,r=It,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Os(),ps(r);const s=rn(t,r,e,o);return ao(),Rs(),s});return n?i.unshift(a):i.push(a),a}}const Si=e=>(t,r=It)=>(!uu||e==="sp")&&Vd(e,(...n)=>t(...n),r),Gd=Si("bm"),wt=Si("m"),EI=Si("bu"),Hu=Si("u"),Xt=Si("bum"),ks=Si("um"),PI=Si("sp"),LI=Si("rtg"),DI=Si("rtc");function II(e,t=It){Vd("ec",e,t)}function nr(e,t){const r=qt;if(r===null)return e;const n=jd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sta(t)?!(t.type===xr||t.type===pt&&!QC(t.children)):!0)?e:null}function RI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:yf(n)]=e[n];return r}const Ap=e=>e?uT(e)?jd(e)||e.proxy:Ap(e.parent):null,Pl=Gt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ap(e.parent),$root:e=>Ap(e.root),$emit:e=>e.emit,$options:e=>jm(e),$forceUpdate:e=>e.f||(e.f=()=>zm(e.update)),$nextTick:e=>e.n||(e.n=Ft.bind(e.proxy)),$watch:e=>CI.bind(e)}),Rh=(e,t)=>e!==yt&&!e.__isScriptSetup&&We(e,t),kI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Rh(n,t))return o[t]=1,n[t];if(i!==yt&&We(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&We(u,t))return o[t]=3,a[t];if(r!==yt&&We(r,t))return o[t]=4,r[t];Ep&&(o[t]=0)}}const c=Pl[t];let f,d;if(c)return t==="$attrs"&&Mr(e,"get",t),c(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(r!==yt&&We(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,We(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Rh(i,t)?(i[t]=r,!0):n!==yt&&We(n,t)?(n[t]=r,!0):We(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==yt&&We(e,o)||Rh(t,o)||(s=a[0])&&We(s,o)||We(n,o)||We(Pl,o)||We(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:We(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let Ep=!0;function NI(e){const t=jm(e),r=e.proxy,n=e.ctx;Ep=!1,t.beforeCreate&&u_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:P,inheritAttrs:A,components:T,directives:D,filters:N}=t;if(u&&FI(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const G in o){const F=o[G];De(F)&&(n[G]=F.bind(r))}if(i){const G=i.call(r,r);Xe(G)&&(e.data=fn(G))}if(Ep=!0,a)for(const G in a){const F=a[G],R=De(F)?F.bind(r,r):De(F.get)?F.get.bind(r,r):ur,j=!De(F)&&De(F.set)?F.set.bind(r):ur,re=k({get:R,set:j});Object.defineProperty(n,G,{enumerable:!0,configurable:!0,get:()=>re.value,set:oe=>re.value=oe})}if(s)for(const G in s)JC(s[G],n,r,G);if(l){const G=De(l)?l.call(r):l;Reflect.ownKeys(G).forEach(F=>{At(F,G[F])})}c&&u_(c,e,"c");function $(G,F){be(F)?F.forEach(R=>G(R.bind(r))):F&&G(F.bind(r))}if($(Gd,f),$(wt,d),$(EI,h),$(Hu,v),$(MI,p),$(qC,g),$(II,C),$(DI,w),$(LI,S),$(Xt,y),$(ks,b),$(PI,M),be(P))if(P.length){const G=e.exposed||(e.exposed={});P.forEach(F=>{Object.defineProperty(G,F,{get:()=>r[F],set:R=>r[F]=R})})}else e.exposed||(e.exposed={});x&&e.render===ur&&(e.render=x),A!=null&&(e.inheritAttrs=A),T&&(e.components=T),D&&(e.directives=D)}function FI(e,t,r=ur,n=!1){be(e)&&(e=Pp(e));for(const i in e){const a=e[i];let o;Xe(a)?"default"in a?o=Ee(a.from||i,a.default,!0):o=Ee(a.from||i):o=Ee(a),Ct(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function u_(e,t,r){rn(be(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function JC(e,t,r,n){const i=n.includes(".")?GC(r,n):()=>r[n];if(He(e)){const a=t[e];De(a)&&Se(i,a)}else if(De(e))Se(i,e.bind(r));else if(Xe(e))if(be(e))e.forEach(a=>JC(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&Se(i,a,e)}}function jm(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>Zf(l,u,o,!0)),Zf(l,t,o)),Xe(t)&&a.set(t,l),l}function Zf(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Zf(e,a,r,!0),i&&i.forEach(o=>Zf(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=BI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const BI={data:c_,props:za,emits:za,methods:za,computed:za,beforeCreate:ir,created:ir,beforeMount:ir,mounted:ir,beforeUpdate:ir,updated:ir,beforeDestroy:ir,beforeUnmount:ir,destroyed:ir,unmounted:ir,activated:ir,deactivated:ir,errorCaptured:ir,serverPrefetch:ir,components:za,directives:za,watch:HI,provide:c_,inject:$I};function c_(e,t){return t?e?function(){return Gt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function $I(e,t){return za(Pp(e),Pp(t))}function Pp(e){if(be(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=tT(f,t,!0);Gt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!a&&!l)return Xe(e)&&n.set(e,ns),ns;if(be(a))for(let c=0;c-1,h[1]=p<0||v-1||We(h,"default"))&&s.push(f)}}}const u=[o,s];return Xe(e)&&n.set(e,u),u}function f_(e){return e[0]!=="$"}function d_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function h_(e,t){return d_(e)===d_(t)}function v_(e,t){return be(t)?t.findIndex(r=>h_(r,e)):De(t)&&h_(t,e)?0:-1}const rT=e=>e[0]==="_"||e==="$stable",Ym=e=>be(e)?e.map(Bn):[Bn(e)],VI=(e,t,r)=>{if(t._n)return t;const n=Z((...i)=>Ym(t(...i)),r);return n._c=!1,n},nT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(rT(i))continue;const a=e[i];if(De(a))t[i]=VI(i,a,n);else if(a!=null){const o=Ym(a);t[i]=()=>o}}},iT=(e,t)=>{const r=Ym(t);e.slots.default=()=>r},GI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ke(t),Yf(t,"_",r)):nT(t,e.slots={})}else e.slots={},t&&iT(e,t);Yf(e.slots,Ud,1)},UI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=yt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Gt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,nT(t,i)),o=t}else t&&(iT(e,t),o={default:1});if(a)for(const s in i)!rT(s)&&!(s in o)&&delete i[s]};function aT(){return{app:null,config:{isNativeTag:wD,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let jI=0;function YI(e,t){return function(n,i=null){De(n)||(n=Object.assign({},n)),i!=null&&!Xe(i)&&(i=null);const a=aT(),o=new Set;let s=!1;const l=a.app={_uid:jI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:pO,get config(){return a.config},set config(u){},use(u,...c){return o.has(u)||(u&&De(u.install)?(o.add(u),u.install(l,...c)):De(u)&&(o.add(u),u(l,...c))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,c){return c?(a.components[u]=c,l):a.components[u]},directive(u,c){return c?(a.directives[u]=c,l):a.directives[u]},mount(u,c,f){if(!s){const d=ee(n,i);return d.appContext=a,c&&t?t(d,u):e(d,u,f),s=!0,l._container=u,u.__vue_app__=l,jd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,c){return a.provides[u]=c,l}};return l}}function Dp(e,t,r,n,i=!1){if(be(e)){e.forEach((d,h)=>Dp(d,t&&(be(t)?t[h]:t),r,n,i));return}if(El(n)&&!i)return;const a=n.shapeFlag&4?jd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,c=s.refs===yt?s.refs={}:s.refs,f=s.setupState;if(u!=null&&u!==l&&(He(u)?(c[u]=null,We(f,u)&&(f[u]=null)):Ct(u)&&(u.value=null)),De(l))Zi(l,s,12,[o,c]);else{const d=He(l),h=Ct(l);if(d||h){const v=()=>{if(e.f){const p=d?We(f,l)?f[l]:c[l]:l.value;i?be(p)&&Lm(p,a):be(p)?p.includes(a)||p.push(a):d?(c[l]=[a],We(f,l)&&(f[l]=c[l])):(l.value=[a],e.k&&(c[e.k]=l.value))}else d?(c[l]=o,We(f,l)&&(f[l]=o)):h&&(l.value=o,e.k&&(c[e.k]=o))};o?(v.id=-1,yr(v,r)):v()}}}const yr=SI;function qI(e){return KI(e)}function KI(e,t){const r=PD();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=ur,insertStaticContent:v}=e,p=(L,I,z,U=null,K=null,ne=null,fe=!1,te=null,ie=!!I.dynamicChildren)=>{if(L===I)return;L&&!Ua(L,I)&&(U=W(L),oe(L,K,ne,!0),L=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:X,ref:we,shapeFlag:he}=I;switch(X){case Ns:g(L,I,z,U);break;case xr:m(L,I,z,U);break;case kh:L==null&&y(I,z,U,fe);break;case pt:T(L,I,z,U,K,ne,fe,te,ie);break;default:he&1?x(L,I,z,U,K,ne,fe,te,ie):he&6?D(L,I,z,U,K,ne,fe,te,ie):(he&64||he&128)&&X.process(L,I,z,U,K,ne,fe,te,ie,le)}we!=null&&K&&Dp(we,L&&L.ref,ne,I||L,!I)},g=(L,I,z,U)=>{if(L==null)n(I.el=s(I.children),z,U);else{const K=I.el=L.el;I.children!==L.children&&u(K,I.children)}},m=(L,I,z,U)=>{L==null?n(I.el=l(I.children||""),z,U):I.el=L.el},y=(L,I,z,U)=>{[L.el,L.anchor]=v(L.children,I,z,U,L.el,L.anchor)},_=({el:L,anchor:I},z,U)=>{let K;for(;L&&L!==I;)K=d(L),n(L,z,U),L=K;n(I,z,U)},b=({el:L,anchor:I})=>{let z;for(;L&&L!==I;)z=d(L),i(L),L=z;i(I)},x=(L,I,z,U,K,ne,fe,te,ie)=>{fe=fe||I.type==="svg",L==null?w(I,z,U,K,ne,fe,te,ie):M(L,I,K,ne,fe,te,ie)},w=(L,I,z,U,K,ne,fe,te)=>{let ie,X;const{type:we,props:he,shapeFlag:xe,transition:Oe,dirs:ze}=L;if(ie=L.el=o(L.type,ne,he&&he.is,he),xe&8?c(ie,L.children):xe&16&&C(L.children,ie,null,U,K,ne&&we!=="foreignObject",fe,te),ze&&ha(L,null,U,"created"),S(ie,L,L.scopeId,fe,U),he){for(const Je in he)Je!=="value"&&!mf(Je)&&a(ie,Je,null,he[Je],ne,L.children,U,K,Q);"value"in he&&a(ie,"value",null,he.value),(X=he.onVnodeBeforeMount)&&On(X,U,L)}ze&&ha(L,null,U,"beforeMount");const rt=(!K||K&&!K.pendingBranch)&&Oe&&!Oe.persisted;rt&&Oe.beforeEnter(ie),n(ie,I,z),((X=he&&he.onVnodeMounted)||rt||ze)&&yr(()=>{X&&On(X,U,L),rt&&Oe.enter(ie),ze&&ha(L,null,U,"mounted")},K)},S=(L,I,z,U,K)=>{if(z&&h(L,z),U)for(let ne=0;ne{for(let X=ie;X{const te=I.el=L.el;let{patchFlag:ie,dynamicChildren:X,dirs:we}=I;ie|=L.patchFlag&16;const he=L.props||yt,xe=I.props||yt;let Oe;z&&va(z,!1),(Oe=xe.onVnodeBeforeUpdate)&&On(Oe,z,I,L),we&&ha(I,L,z,"beforeUpdate"),z&&va(z,!0);const ze=K&&I.type!=="foreignObject";if(X?P(L.dynamicChildren,X,te,z,U,ze,ne):fe||F(L,I,te,null,z,U,ze,ne,!1),ie>0){if(ie&16)A(te,I,he,xe,z,U,K);else if(ie&2&&he.class!==xe.class&&a(te,"class",null,xe.class,K),ie&4&&a(te,"style",he.style,xe.style,K),ie&8){const rt=I.dynamicProps;for(let Je=0;Je{Oe&&On(Oe,z,I,L),we&&ha(I,L,z,"updated")},U)},P=(L,I,z,U,K,ne,fe)=>{for(let te=0;te{if(z!==U){if(z!==yt)for(const te in z)!mf(te)&&!(te in U)&&a(L,te,z[te],null,fe,I.children,K,ne,Q);for(const te in U){if(mf(te))continue;const ie=U[te],X=z[te];ie!==X&&te!=="value"&&a(L,te,X,ie,fe,I.children,K,ne,Q)}"value"in U&&a(L,"value",z.value,U.value)}},T=(L,I,z,U,K,ne,fe,te,ie)=>{const X=I.el=L?L.el:s(""),we=I.anchor=L?L.anchor:s("");let{patchFlag:he,dynamicChildren:xe,slotScopeIds:Oe}=I;Oe&&(te=te?te.concat(Oe):Oe),L==null?(n(X,z,U),n(we,z,U),C(I.children,z,we,K,ne,fe,te,ie)):he>0&&he&64&&xe&&L.dynamicChildren?(P(L.dynamicChildren,xe,z,K,ne,fe,te),(I.key!=null||K&&I===K.subTree)&&qm(L,I,!0)):F(L,I,z,we,K,ne,fe,te,ie)},D=(L,I,z,U,K,ne,fe,te,ie)=>{I.slotScopeIds=te,L==null?I.shapeFlag&512?K.ctx.activate(I,z,U,fe,ie):N(I,z,U,K,ne,fe,ie):H(L,I,ie)},N=(L,I,z,U,K,ne,fe)=>{const te=L.component=oO(L,U,K);if(Wd(L)&&(te.ctx.renderer=le),sO(te),te.asyncDep){if(K&&K.registerDep(te,$),!L.el){const ie=te.subTree=ee(xr);m(null,ie,I,z)}return}$(te,L,I,z,K,ne,fe)},H=(L,I,z)=>{const U=I.component=L.component;if(bI(L,I,z))if(U.asyncDep&&!U.asyncResolved){G(U,I,z);return}else U.next=I,vI(U.update),U.update();else I.el=L.el,U.vnode=I},$=(L,I,z,U,K,ne,fe)=>{const te=()=>{if(L.isMounted){let{next:we,bu:he,u:xe,parent:Oe,vnode:ze}=L,rt=we,Je;va(L,!1),we?(we.el=ze.el,G(L,we,fe)):we=ze,he&&_f(he),(Je=we.props&&we.props.onVnodeBeforeUpdate)&&On(Je,Oe,we,ze),va(L,!0);const Lt=Ih(L),ve=L.subTree;L.subTree=Lt,p(ve,Lt,f(ve.el),W(ve),L,K,ne),we.el=Lt.el,rt===null&&wI(L,Lt.el),xe&&yr(xe,K),(Je=we.props&&we.props.onVnodeUpdated)&&yr(()=>On(Je,Oe,we,ze),K)}else{let we;const{el:he,props:xe}=I,{bm:Oe,m:ze,parent:rt}=L,Je=El(I);if(va(L,!1),Oe&&_f(Oe),!Je&&(we=xe&&xe.onVnodeBeforeMount)&&On(we,rt,I),va(L,!0),he&&J){const Lt=()=>{L.subTree=Ih(L),J(he,L.subTree,L,K,null)};Je?I.type.__asyncLoader().then(()=>!L.isUnmounted&&Lt()):Lt()}else{const Lt=L.subTree=Ih(L);p(null,Lt,z,U,L,K,ne),I.el=Lt.el}if(ze&&yr(ze,K),!Je&&(we=xe&&xe.onVnodeMounted)){const Lt=I;yr(()=>On(we,rt,Lt),K)}(I.shapeFlag&256||rt&&El(rt.vnode)&&rt.vnode.shapeFlag&256)&&L.a&&yr(L.a,K),L.isMounted=!0,I=z=U=null}},ie=L.effect=new Om(te,()=>zm(X),L.scope),X=L.update=()=>ie.run();X.id=L.uid,va(L,!0),X()},G=(L,I,z)=>{I.component=L;const U=L.vnode.props;L.vnode=I,L.next=null,WI(L,I.props,U,z),UI(L,I.children,z),Os(),i_(),Rs()},F=(L,I,z,U,K,ne,fe,te,ie=!1)=>{const X=L&&L.children,we=L?L.shapeFlag:0,he=I.children,{patchFlag:xe,shapeFlag:Oe}=I;if(xe>0){if(xe&128){j(X,he,z,U,K,ne,fe,te,ie);return}else if(xe&256){R(X,he,z,U,K,ne,fe,te,ie);return}}Oe&8?(we&16&&Q(X,K,ne),he!==X&&c(z,he)):we&16?Oe&16?j(X,he,z,U,K,ne,fe,te,ie):Q(X,K,ne,!0):(we&8&&c(z,""),Oe&16&&C(he,z,U,K,ne,fe,te,ie))},R=(L,I,z,U,K,ne,fe,te,ie)=>{L=L||ns,I=I||ns;const X=L.length,we=I.length,he=Math.min(X,we);let xe;for(xe=0;xewe?Q(L,K,ne,!0,!1,he):C(I,z,U,K,ne,fe,te,ie,he)},j=(L,I,z,U,K,ne,fe,te,ie)=>{let X=0;const we=I.length;let he=L.length-1,xe=we-1;for(;X<=he&&X<=xe;){const Oe=L[X],ze=I[X]=ie?Vi(I[X]):Bn(I[X]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;X++}for(;X<=he&&X<=xe;){const Oe=L[he],ze=I[xe]=ie?Vi(I[xe]):Bn(I[xe]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;he--,xe--}if(X>he){if(X<=xe){const Oe=xe+1,ze=Oexe)for(;X<=he;)oe(L[X],K,ne,!0),X++;else{const Oe=X,ze=X,rt=new Map;for(X=ze;X<=xe;X++){const it=I[X]=ie?Vi(I[X]):Bn(I[X]);it.key!=null&&rt.set(it.key,X)}let Je,Lt=0;const ve=xe-ze+1;let Pe=!1,je=0;const Be=new Array(ve);for(X=0;X=ve){oe(it,K,ne,!0);continue}let Mt;if(it.key!=null)Mt=rt.get(it.key);else for(Je=ze;Je<=xe;Je++)if(Be[Je-ze]===0&&Ua(it,I[Je])){Mt=Je;break}Mt===void 0?oe(it,K,ne,!0):(Be[Mt-ze]=X+1,Mt>=je?je=Mt:Pe=!0,p(it,I[Mt],z,null,K,ne,fe,te,ie),Lt++)}const nt=Pe?XI(Be):ns;for(Je=nt.length-1,X=ve-1;X>=0;X--){const it=ze+X,Mt=I[it],ri=it+1{const{el:ne,type:fe,transition:te,children:ie,shapeFlag:X}=L;if(X&6){re(L.component.subTree,I,z,U);return}if(X&128){L.suspense.move(I,z,U);return}if(X&64){fe.move(L,I,z,le);return}if(fe===pt){n(ne,I,z);for(let he=0;hete.enter(ne),K);else{const{leave:he,delayLeave:xe,afterLeave:Oe}=te,ze=()=>n(ne,I,z),rt=()=>{he(ne,()=>{ze(),Oe&&Oe()})};xe?xe(ne,ze,rt):rt()}else n(ne,I,z)},oe=(L,I,z,U=!1,K=!1)=>{const{type:ne,props:fe,ref:te,children:ie,dynamicChildren:X,shapeFlag:we,patchFlag:he,dirs:xe}=L;if(te!=null&&Dp(te,null,z,L,!0),we&256){I.ctx.deactivate(L);return}const Oe=we&1&&xe,ze=!El(L);let rt;if(ze&&(rt=fe&&fe.onVnodeBeforeUnmount)&&On(rt,I,L),we&6)V(L.component,z,U);else{if(we&128){L.suspense.unmount(z,U);return}Oe&&ha(L,null,I,"beforeUnmount"),we&64?L.type.remove(L,I,z,K,le,U):X&&(ne!==pt||he>0&&he&64)?Q(X,I,z,!1,!0):(ne===pt&&he&384||!K&&we&16)&&Q(ie,I,z),U&&ye(L)}(ze&&(rt=fe&&fe.onVnodeUnmounted)||Oe)&&yr(()=>{rt&&On(rt,I,L),Oe&&ha(L,null,I,"unmounted")},z)},ye=L=>{const{type:I,el:z,anchor:U,transition:K}=L;if(I===pt){Ae(z,U);return}if(I===kh){b(L);return}const ne=()=>{i(z),K&&!K.persisted&&K.afterLeave&&K.afterLeave()};if(L.shapeFlag&1&&K&&!K.persisted){const{leave:fe,delayLeave:te}=K,ie=()=>fe(z,ne);te?te(L.el,ne,ie):ie()}else ne()},Ae=(L,I)=>{let z;for(;L!==I;)z=d(L),i(L),L=z;i(I)},V=(L,I,z)=>{const{bum:U,scope:K,update:ne,subTree:fe,um:te}=L;U&&_f(U),K.stop(),ne&&(ne.active=!1,oe(fe,L,I,z)),te&&yr(te,I),yr(()=>{L.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Q=(L,I,z,U=!1,K=!1,ne=0)=>{for(let fe=ne;feL.shapeFlag&6?W(L.component.subTree):L.shapeFlag&128?L.suspense.next():d(L.anchor||L.el),q=(L,I,z)=>{L==null?I._vnode&&oe(I._vnode,null,null,!0):p(I._vnode||null,L,I,null,null,null,z),i_(),HC(),I._vnode=L},le={p,um:oe,m:re,r:ye,mt:N,mc:C,pc:F,pbc:P,n:W,o:e};let de,J;return t&&([de,J]=t(le)),{render:q,hydrate:de,createApp:YI(q,de)}}function va({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function qm(e,t,r=!1){const n=e.children,i=t.children;if(be(n)&&be(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const ZI=e=>e.__isTeleport,Ll=e=>e&&(e.disabled||e.disabled===""),p_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ip=(e,t)=>{const r=e&&e.to;return He(r)?t?t(r):null:r},QI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ll(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");h(x,r,n),h(w,r,n);const S=t.target=Ip(t.props,v),C=t.targetAnchor=p("");S&&(h(C,S),o=o||p_(S));const M=(P,A)=>{y&16&&c(_,P,A,i,a,o,s,l)};m?M(r,w):S&&M(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Ll(e.props),M=C?r:w,P=C?x:S;if(o=o||p_(w),b?(d(e.dynamicChildren,b,M,i,a,o,s),qm(e,t,!0)):l||f(e,t,M,P,i,a,o,s,!1),m)C||pc(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Ip(t.props,v);A&&pc(t,A,null,u,0)}else C&&pc(t,w,S,u,1)}oT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&a(c),(o||!Ll(d))&&(a(u),s&16))for(let h=0;h0?wn||ns:null,tO(),lu>0&&wn&&wn.push(e),e}function me(e,t,r,n,i,a){return sT(ae(e,t,r,n,i,a,!0))}function _e(e,t,r,n,i){return sT(ee(e,t,r,n,i,!0))}function ta(e){return e?e.__v_isVNode===!0:!1}function Ua(e,t){return e.type===t.type&&e.key===t.key}const Ud="__vInternal",lT=({key:e})=>e??null,bf=({ref:e,ref_key:t,ref_for:r})=>e!=null?He(e)||Ct(e)||De(e)?{i:qt,r:e,k:t,f:!!r}:e:null;function ae(e,t=null,r=null,n=0,i=null,a=e===pt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&lT(t),ref:t&&bf(t),scopeId:VC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:qt};return s?(Km(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=He(r)?8:16),lu>0&&!o&&wn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&wn.push(l),l}const ee=rO;function rO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===XC)&&(e=xr),ta(e)){const s=mi(e,t,!0);return r&&Km(s,r),lu>0&&!a&&wn&&(s.shapeFlag&6?wn[wn.indexOf(e)]=s:wn.push(s)),s.patchFlag|=-2,s}if(fO(e)&&(e=e.__vccOpts),t){t=nO(t);let{class:s,style:l}=t;s&&!He(s)&&(t.class=ue(s)),Xe(l)&&(DC(l)&&!be(l)&&(l=Gt({},l)),t.style=St(l))}const o=He(e)?1:xI(e)?128:ZI(e)?64:Xe(e)?4:De(e)?2:0;return ae(e,t,r,n,i,o,a,!0)}function nO(e){return e?DC(e)||Ud in e?Gt({},e):e:null}function mi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ca(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&lT(s),ref:t&&t.ref?r&&i?be(i)?i.concat(bf(t)):[i,bf(t)]:bf(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mi(e.ssContent),ssFallback:e.ssFallback&&mi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Bt(e=" ",t=0){return ee(Ns,null,e,t)}function Fe(e="",t=!1){return t?(Y(),_e(xr,null,e)):ee(xr,null,e)}function Bn(e){return e==null||typeof e=="boolean"?ee(xr):be(e)?ee(pt,null,e.slice()):typeof e=="object"?Vi(e):ee(Ns,null,String(e))}function Vi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mi(e)}function Km(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(be(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Km(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Ud in t)?t._ctx=qt:i===3&&qt&&(qt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:qt},r=32):(t=String(t),n&64?(r=16,t=[Bt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ca(...e){const t={};for(let r=0;rIt||qt,ps=e=>{It=e,e.scope.on()},ao=()=>{It&&It.scope.off(),It=null};function uT(e){return e.vnode.shapeFlag&4}let uu=!1;function sO(e,t=!1){uu=t;const{props:r,children:n}=e.vnode,i=uT(e);zI(e,r,i,t),GI(e,n);const a=i?lO(e,t):void 0;return uu=!1,a}function lO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=IC(new Proxy(e.ctx,kI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?fT(e):null;ps(e),Os();const a=Zi(n,e,0,[e.props,i]);if(Rs(),ao(),jf(a)){if(a.then(ao,ao),t)return a.then(o=>{m_(e,o,t)}).catch(o=>{Hd(o,e,0)});e.asyncDep=a}else m_(e,a,t)}else cT(e,t)}function m_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Xe(t)&&(e.setupState=NC(t)),cT(e,r)}let y_;function cT(e,t,r){const n=e.type;if(!e.render){if(!t&&y_&&!n.render){const i=n.template||jm(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Gt(Gt({isCustomElement:a,delimiters:s},o),l);n.render=y_(i,u)}}e.render=n.render||ur}ps(e),Os(),NI(e),Rs(),ao()}function uO(e){return new Proxy(e.attrs,{get(t,r){return Mr(e,"get","$attrs"),t[r]}})}function fT(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=uO(e))},slots:e.slots,emit:e.emit,expose:t}}function jd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(NC(IC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Pl)return Pl[r](e)},has(t,r){return r in t||r in Pl}}))}function cO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function fO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>cI(e,t,uu);function Yd(){return dO().slots}function dO(){const e=ct();return e.setupContext||(e.setupContext=fT(e))}function Ce(e,t,r){const n=arguments.length;return n===2?Xe(t)&&!be(t)?ta(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&ta(r)&&(r=[r]),ee(e,t,r))}const hO=Symbol(""),vO=()=>Ee(hO),pO="3.2.47",gO="http://www.w3.org/2000/svg",ja=typeof document<"u"?document:null,__=ja&&ja.createElement("template"),mO={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?ja.createElementNS(gO,e):ja.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>ja.createTextNode(e),createComment:e=>ja.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ja.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{__.innerHTML=n?`${e}`:e;const s=__.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function yO(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function _O(e,t,r){const n=e.style,i=He(r);if(r&&!i){if(t&&!He(t))for(const a in t)r[a]==null&&Op(n,a,"");for(const a in r)Op(n,a,r[a])}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const b_=/\s*!important$/;function Op(e,t,r){if(be(r))r.forEach(n=>Op(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=bO(e,t);b_.test(r)?e.setProperty(xo(n),r.replace(b_,""),"important"):e[n]=r}}const w_=["Webkit","Moz","ms"],Nh={};function bO(e,t){const r=Nh[t];if(r)return r;let n=An(t);if(n!=="filter"&&n in e)return Nh[t]=n;n=Fd(n);for(let i=0;iFh||(MO.then(()=>Fh=0),Fh=Date.now());function EO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;rn(PO(n,r.value),t,5,[n])};return r.value=e,r.attached=AO(),r}function PO(e,t){if(be(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const C_=/^on[a-z]/,LO=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?yO(e,n,i):t==="style"?_O(e,r,n):Rd(t)?Pm(t)||CO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):DO(e,t,n,i))?xO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),wO(e,t,n,i))};function DO(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&C_.test(t)&&De(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||C_.test(t)&&He(r)?!1:t in e}const Li="transition",Ys="animation",Ci=(e,{slots:t})=>Ce(jC,vT(e),t);Ci.displayName="Transition";const hT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},IO=Ci.props=Gt({},jC.props,hT),pa=(e,t=[])=>{be(e)?e.forEach(r=>r(...t)):e&&e(...t)},T_=e=>e?be(e)?e.some(t=>t.length>1):e.length>1:!1;function vT(e){const t={};for(const T in e)T in hT||(t[T]=e[T]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:c=s,leaveFromClass:f=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=OO(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:S=y,onAppearCancelled:C=_}=t,M=(T,D,N)=>{Bi(T,D?c:s),Bi(T,D?u:o),N&&N()},P=(T,D)=>{T._isLeaving=!1,Bi(T,f),Bi(T,h),Bi(T,d),D&&D()},A=T=>(D,N)=>{const H=T?S:y,$=()=>M(D,T,N);pa(H,[D,$]),M_(()=>{Bi(D,T?l:a),li(D,T?c:s),T_(H)||A_(D,n,p,$)})};return Gt(t,{onBeforeEnter(T){pa(m,[T]),li(T,a),li(T,o)},onBeforeAppear(T){pa(w,[T]),li(T,l),li(T,u)},onEnter:A(!1),onAppear:A(!0),onLeave(T,D){T._isLeaving=!0;const N=()=>P(T,D);li(T,f),gT(),li(T,d),M_(()=>{T._isLeaving&&(Bi(T,f),li(T,h),T_(b)||A_(T,n,g,N))}),pa(b,[T,N])},onEnterCancelled(T){M(T,!1),pa(_,[T])},onAppearCancelled(T){M(T,!0),pa(C,[T])},onLeaveCancelled(T){P(T),pa(x,[T])}})}function OO(e){if(e==null)return null;if(Xe(e))return[Bh(e.enter),Bh(e.leave)];{const t=Bh(e);return[t,t]}}function Bh(e){return ED(e)}function li(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Bi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function M_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let RO=0;function A_(e,t,r,n){const i=e._endId=++RO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=pT(e,t);if(!o)return n();const u=o+"end";let c=0;const f=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(r[v]||"").split(", "),i=n(`${Li}Delay`),a=n(`${Li}Duration`),o=E_(i,a),s=n(`${Ys}Delay`),l=n(`${Ys}Duration`),u=E_(s,l);let c=null,f=0,d=0;t===Li?o>0&&(c=Li,f=o,d=a.length):t===Ys?u>0&&(c=Ys,f=u,d=l.length):(f=Math.max(o,u),c=f>0?o>u?Li:Ys:null,d=c?c===Li?a.length:l.length:0);const h=c===Li&&/\b(transform|all)(,|$)/.test(n(`${Li}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function E_(e,t){for(;e.lengthP_(r)+P_(e[n])))}function P_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function gT(){return document.body.offsetHeight}const mT=new WeakMap,yT=new WeakMap,_T={name:"TransitionGroup",props:Gt({},IO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=ct(),n=UC();let i,a;return Hu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!HO(i[0].el,r.vnode.el,o))return;i.forEach(FO),i.forEach(BO);const s=i.filter($O);gT(),s.forEach(l=>{const u=l.el,c=u.style;li(u,o),c.transform=c.webkitTransform=c.transitionDuration="";const f=u._moveCb=d=>{d&&d.target!==u||(!d||/transform$/.test(d.propertyName))&&(u.removeEventListener("transitionend",f),u._moveCb=null,Bi(u,o))};u.addEventListener("transitionend",f)})}),()=>{const o=Ke(e),s=vT(o);let l=o.tag||pt;i=a,a=t.default?Vm(t.default()):[];for(let u=0;udelete e.mode;_T.props;const NO=_T;function FO(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function BO(e){yT.set(e,e.el.getBoundingClientRect())}function $O(e){const t=mT.get(e),r=yT.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function HO(e,t,r){const n=e.cloneNode();e._vtc&&e._vtc.forEach(o=>{o.split(/\s+/).forEach(s=>s&&n.classList.remove(s))}),r.split(/\s+/).forEach(o=>o&&n.classList.add(o)),n.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(n);const{hasTransform:a}=pT(n);return i.removeChild(n),a}const L_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return be(t)?r=>_f(t,r):t},Qf={deep:!0,created(e,t,r){e._assign=L_(r),dT(e,"change",()=>{const n=e._modelValue,i=zO(e),a=e.checked,o=e._assign;if(be(n)){const s=pC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(kd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(bT(e,a))})},mounted:D_,beforeUpdate(e,t,r){e._assign=L_(r),D_(e,t,r)}};function D_(e,{value:t,oldValue:r},n){e._modelValue=t,be(t)?e.checked=pC(t,n.props.value)>-1:kd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=Od(t,bT(e,!0)))}function zO(e){return"_value"in e?e._value:e.value}function bT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const WO=["ctrl","shift","alt","meta"],VO={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>WO.some(r=>e[`${r}Key`]&&!t.includes(r))},Jf=(e,t)=>(r,...n)=>{for(let i=0;ir=>{if(!("key"in r))return;const n=xo(r.key);if(t.some(i=>i===n||GO[i]===n))return e(r)},yi={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):qs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),qs(e,!0),n.enter(e)):n.leave(e,()=>{qs(e,!1)}):qs(e,t))},beforeUnmount(e,{value:t}){qs(e,t)}};function qs(e,t){e.style.display=t?e._vod:"none"}const jO=Gt({patchProp:LO},mO);let I_;function wT(){return I_||(I_=qI(jO))}const O_=(...e)=>{wT().render(...e)},YO=(...e)=>{const t=wT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=qO(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function qO(e){return He(e)?document.querySelector(e):e}const wf=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},fi=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var R_;const Nt=typeof window<"u",Br=e=>typeof e=="boolean",KO=e=>typeof e=="function",$t=e=>typeof e=="number",XO=e=>typeof e=="string",Rp=()=>{};Nt&&((R_=window==null?void 0:window.navigator)!=null&&R_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ho(e){return typeof e=="function"?e():E(e)}function xT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const ST=e=>e();function ZO(e,t={}){let r,n,i=Rp;const a=s=>{clearTimeout(s),i(),i=Rp};return s=>{const l=ho(e),u=ho(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((c,f)=>{i=t.rejectOnCancel?f:c,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,c(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,c(s())},l)})}}function QO(e=ST){const t=B(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:$u(t),pause:r,resume:n,eventFilter:i}}function JO(e){return e}function zu(e){return _C()?(ID(e),!0):!1}function eR(e,t=200,r={}){return xT(ZO(t,r),e)}function tR(e,t=200,r={}){const n=B(e.value),i=eR(()=>{n.value=e.value},t,r);return Se(e,()=>i()),n}function rR(e){return typeof e=="function"?k(e):B(e)}function CT(e,t=!0){ct()?wt(e):t?e():Ft(e)}function kp(e,t,r={}){const{immediate:n=!0}=r,i=B(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},ho(t))}return n&&(i.value=!0,Nt&&l()),zu(s),{isPending:$u(i),start:l,stop:s}}function nR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Ct(e),a=B(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=ho(r);return a.value=a.value===l?ho(n):l,a.value}}return i?o:[a,o]}var k_=Object.getOwnPropertySymbols,iR=Object.prototype.hasOwnProperty,aR=Object.prototype.propertyIsEnumerable,oR=(e,t)=>{var r={};for(var n in e)iR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&k_)for(var n of k_(e))t.indexOf(n)<0&&aR.call(e,n)&&(r[n]=e[n]);return r};function sR(e,t,r={}){const n=r,{eventFilter:i=ST}=n,a=oR(n,["eventFilter"]);return Se(e,xT(i,t),a)}var lR=Object.defineProperty,uR=Object.defineProperties,cR=Object.getOwnPropertyDescriptors,ed=Object.getOwnPropertySymbols,TT=Object.prototype.hasOwnProperty,MT=Object.prototype.propertyIsEnumerable,N_=(e,t,r)=>t in e?lR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fR=(e,t)=>{for(var r in t||(t={}))TT.call(t,r)&&N_(e,r,t[r]);if(ed)for(var r of ed(t))MT.call(t,r)&&N_(e,r,t[r]);return e},dR=(e,t)=>uR(e,cR(t)),hR=(e,t)=>{var r={};for(var n in e)TT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ed)for(var n of ed(e))t.indexOf(n)<0&&MT.call(e,n)&&(r[n]=e[n]);return r};function vR(e,t,r={}){const n=r,{eventFilter:i}=n,a=hR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=QO(i);return{stop:sR(e,t,dR(fR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Ui(e){var t;const r=ho(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ra=Nt?window:void 0;function xn(...e){let t,r,n,i;if(XO(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ra):[t,r,n,i]=e,!t)return Rp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(c=>c()),a.length=0},s=(c,f,d)=>(c.addEventListener(f,d,i),()=>c.removeEventListener(f,d,i)),l=Se(()=>Ui(t),c=>{o(),c&&a.push(...r.flatMap(f=>n.map(d=>s(c,f,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return zu(u),u}function pR(e,t,r={}){const{window:n=ra,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=Ui(v);return p&&(h.target===p||h.composedPath().includes(p))}}),c=h=>{n.clearTimeout(l);const v=Ui(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},f=[xn(n,"click",c,{passive:!0,capture:a}),xn(n,"pointerdown",h=>{const v=Ui(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),xn(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>c(h),50)}},{passive:!0}),o&&xn(n,"blur",h=>{var v;const p=Ui(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>f.forEach(h=>h())}function AT(e,t=!1){const r=B(),n=()=>r.value=Boolean(e());return n(),CT(n,t),r}function gR(e,t={}){const{window:r=ra}=t,n=AT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=B(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(rR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return io(s),zu(()=>o()),a}const Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Fp="__vueuse_ssr_handlers__";Np[Fp]=Np[Fp]||{};const mR=Np[Fp];function ET(e,t){return mR[e]||t}function yR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var _R=Object.defineProperty,F_=Object.getOwnPropertySymbols,bR=Object.prototype.hasOwnProperty,wR=Object.prototype.propertyIsEnumerable,B_=(e,t,r)=>t in e?_R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$_=(e,t)=>{for(var r in t||(t={}))bR.call(t,r)&&B_(e,r,t[r]);if(F_)for(var r of F_(t))wR.call(t,r)&&B_(e,r,t[r]);return e};const xR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function SR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=ra,eventFilter:d,onError:h=S=>{console.error(S)}}=n,v=(c?$m:B)(t);if(!r)try{r=ET("getDefaultStorage",()=>{var S;return(S=ra)==null?void 0:S.localStorage})()}catch(S){h(S)}if(!r)return v;const p=ho(t),g=yR(p),m=(i=n.serializer)!=null?i:xR[g],{pause:y,resume:_}=vR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:d});return f&&s&&xn(f,"storage",w),w(),v;function b(S){try{if(S==null)r.removeItem(e);else{const C=m.write(S),M=r.getItem(e);M!==C&&(r.setItem(e,C),f&&(f==null||f.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){h(C)}}function x(S){const C=S?S.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,m.write(p)),p;if(!S&&u){const M=m.read(C);return KO(u)?u(M,p):g==="object"&&!Array.isArray(M)?$_($_({},p),M):M}else return typeof C!="string"?C:m.read(C)}function w(S){if(!(S&&S.storageArea!==r)){if(S&&S.key==null){v.value=p;return}if(!(S&&S.key!==e)){y();try{v.value=x(S)}catch(C){h(C)}finally{S?Ft(_):_()}}}}}function PT(e){return gR("(prefers-color-scheme: dark)",e)}var CR=Object.defineProperty,H_=Object.getOwnPropertySymbols,TR=Object.prototype.hasOwnProperty,MR=Object.prototype.propertyIsEnumerable,z_=(e,t,r)=>t in e?CR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,AR=(e,t)=>{for(var r in t||(t={}))TR.call(t,r)&&z_(e,r,t[r]);if(H_)for(var r of H_(t))MR.call(t,r)&&z_(e,r,t[r]);return e};function ER(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=ra,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,c=AR({auto:"",light:"light",dark:"dark"},e.modes||{}),f=PT({window:i}),d=k(()=>f.value?"dark":"light"),h=l||(o==null?B(n):SR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return h.value==="auto"&&!u?d.value:h.value},set(y){h.value=y}}),p=ET("updateHTMLAttrs",(y,_,b)=>{const x=i==null?void 0:i.document.querySelector(y);if(x)if(_==="class"){const w=b.split(/\s/g);Object.values(c).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{w.includes(S)?x.classList.add(S):x.classList.remove(S)})}else x.setAttribute(_,b)});function g(y){var _;const b=y==="auto"?d.value:y;p(t,r,(_=c[b])!=null?_:b)}function m(y){e.onChanged?e.onChanged(y,g):g(y)}return Se(v,m,{flush:"post",immediate:!0}),u&&Se(d,()=>m(v.value),{flush:"post"}),CT(()=>m(v.value)),v}var PR=Object.defineProperty,LR=Object.defineProperties,DR=Object.getOwnPropertyDescriptors,W_=Object.getOwnPropertySymbols,IR=Object.prototype.hasOwnProperty,OR=Object.prototype.propertyIsEnumerable,V_=(e,t,r)=>t in e?PR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,RR=(e,t)=>{for(var r in t||(t={}))IR.call(t,r)&&V_(e,r,t[r]);if(W_)for(var r of W_(t))OR.call(t,r)&&V_(e,r,t[r]);return e},kR=(e,t)=>LR(e,DR(t));function NR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=ra}=e,i=ER(kR(RR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=PT({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var G_=Object.getOwnPropertySymbols,FR=Object.prototype.hasOwnProperty,BR=Object.prototype.propertyIsEnumerable,$R=(e,t)=>{var r={};for(var n in e)FR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&G_)for(var n of G_(e))t.indexOf(n)<0&&BR.call(e,n)&&(r[n]=e[n]);return r};function gs(e,t,r={}){const n=r,{window:i=ra}=n,a=$R(n,["window"]);let o;const s=AT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=Se(()=>Ui(e),f=>{l(),s.value&&i&&f&&(o=new ResizeObserver(t),o.observe(f,a))},{immediate:!0,flush:"post"}),c=()=>{l(),u()};return zu(c),{isSupported:s,stop:c}}var U_;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(U_||(U_={}));var HR=Object.defineProperty,j_=Object.getOwnPropertySymbols,zR=Object.prototype.hasOwnProperty,WR=Object.prototype.propertyIsEnumerable,Y_=(e,t,r)=>t in e?HR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,VR=(e,t)=>{for(var r in t||(t={}))zR.call(t,r)&&Y_(e,r,t[r]);if(j_)for(var r of j_(t))WR.call(t,r)&&Y_(e,r,t[r]);return e};const GR={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};VR({linear:JO},GR);var UR=typeof global=="object"&&global&&global.Object===Object&&global;const LT=UR;var jR=typeof self=="object"&&self&&self.Object===Object&&self,YR=LT||jR||Function("return this")();const Pn=YR;var qR=Pn.Symbol;const sn=qR;var DT=Object.prototype,KR=DT.hasOwnProperty,XR=DT.toString,Ks=sn?sn.toStringTag:void 0;function ZR(e){var t=KR.call(e,Ks),r=e[Ks];try{e[Ks]=void 0;var n=!0}catch{}var i=XR.call(e);return n&&(t?e[Ks]=r:delete e[Ks]),i}var QR=Object.prototype,JR=QR.toString;function ek(e){return JR.call(e)}var tk="[object Null]",rk="[object Undefined]",q_=sn?sn.toStringTag:void 0;function So(e){return e==null?e===void 0?rk:tk:q_&&q_ in Object(e)?ZR(e):ek(e)}function qn(e){return e!=null&&typeof e=="object"}var nk="[object Symbol]";function qd(e){return typeof e=="symbol"||qn(e)&&So(e)==nk}function IT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=kk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function $k(e){return function(){return e}}var Hk=function(){try{var e=To(Object,"defineProperty");return e({},"",{}),e}catch{}}();const td=Hk;var zk=td?function(e,t){return td(e,"toString",{configurable:!0,enumerable:!1,value:$k(t),writable:!0})}:Xm;const Wk=zk;var Vk=Bk(Wk);const kT=Vk;function Gk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=Xk}function Fs(e){return e!=null&&ey(e.length)&&!Zm(e)}function Zk(e,t,r){if(!Ar(r))return!1;var n=typeof t;return(n=="number"?Fs(r)&&Kd(t,r.length):n=="string"&&t in r)?Wu(r[t],e):!1}function Qk(e){return Kk(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&Zk(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function vF(e,t){var r=this.__data__,n=Xd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Ti(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?ly(s,t-1,r,n,i):sy(i,s):n||(i[i.length]=s)}return i}function IF(e){var t=e==null?0:e.length;return t?ly(e,1):[]}function OF(e){return kT(NT(e,void 0,IF),e+"")}var RF=zT(Object.getPrototypeOf,Object);const uy=RF;var kF="[object Object]",NF=Function.prototype,FF=Object.prototype,WT=NF.toString,BF=FF.hasOwnProperty,$F=WT.call(Object);function HF(e){if(!qn(e)||So(e)!=kF)return!1;var t=uy(e);if(t===null)return!0;var r=BF.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&WT.call(r)==$F}function $p(){if(!arguments.length)return[];var e=arguments[0];return fr(e)?e:[e]}function zF(){this.__data__=new Ti,this.size=0}function WF(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function VF(e){return this.__data__.get(e)}function GF(e){return this.__data__.has(e)}var UF=200;function jF(e,t){var r=this.__data__;if(r instanceof Ti){var n=r.__data__;if(!hu||n.lengths))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=r&P$?new nd:void 0;for(a.set(e,t),a.set(t,e);++f=t||S<0||f&&C>=a}function m(){var w=Wh();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Wh())}function x(){var w=Wh(),S=g(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(f)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return x.cancel=_,x.flush=b,x}function Gp(e,t,r){(r!==void 0&&!Wu(e[t],r)||r===void 0&&!(t in e))&&Qm(e,t,r)}function S5(e){return qn(e)&&Fs(e)}function Up(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function C5(e){return Vu(e,Uu(e))}function T5(e,t,r,n,i,a,o){var s=Up(e,r),l=Up(t,r),u=o.get(l);if(u){Gp(e,r,u);return}var c=a?a(s,l,r+"",e,t,o):void 0,f=c===void 0;if(f){var d=fr(l),h=!d&&fu(l),v=!d&&!h&&ny(l);c=l,d||h||v?fr(s)?c=s:S5(s)?c=RT(s):h?(f=!1,c=GT(l,!0)):v?(f=!1,c=qT(l,!0)):c=[]:HF(l)||cu(l)?(c=s,cu(s)?c=C5(s):(!Ar(s)||Zm(s))&&(c=KT(l))):f=!1}f&&(o.set(l,c),i(c,l,n,a,o),o.delete(l)),Gp(e,r,c)}function iM(e,t,r,n,i){e!==t&&nM(t,function(a,o){if(i||(i=new Mn),Ar(a))T5(e,t,o,r,iM,n,i);else{var s=n?n(Up(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),Gp(e,o,s)}},Uu)}function M5(e,t){var r=-1,n=Fs(e)?Array(e.length):[];return y5(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function A5(e,t){var r=fr(e)?IT:M5;return r(e,d5(t))}function E5(e,t){return ly(A5(e,t),1)}function jp(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,ys=e=>typeof Element>"u"?!1:e instanceof Element,F5=e=>He(e)?!Number.isNaN(Number(e)):!1,Tb=e=>Object.keys(e),Sf=(e,t,r)=>({get value(){return vu(e,t,r)},set value(n){N5(e,t,n)}});class B5 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function na(e,t){throw new B5(`[${e}] ${t}`)}const sM=(e="")=>e.split(" ").filter(t=>!!t.trim()),Ol=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Zo=(e,t)=>{!e||!t.trim()||e.classList.add(...sM(t))},ss=(e,t)=>{!e||!t.trim()||e.classList.remove(...sM(t))},Mb=(e,t)=>{var r;if(!Nt||!e||!t)return"";let n=An(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function po(e,t="px"){if(!e)return"";if($t(e)||F5(e))return`${e}${t}`;if(He(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Zn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},$5={name:"ArrowDown"},H5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z5=ae("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),W5=[z5];function V5(e,t,r,n,i,a){return Y(),me("svg",H5,W5)}var lM=Zn($5,[["render",V5],["__file","arrow-down.vue"]]),G5={name:"ArrowRight"},U5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},j5=ae("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),Y5=[j5];function q5(e,t,r,n,i,a){return Y(),me("svg",U5,Y5)}var dy=Zn(G5,[["render",q5],["__file","arrow-right.vue"]]),K5={name:"ArrowUp"},X5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z5=ae("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),Q5=[Z5];function J5(e,t,r,n,i,a){return Y(),me("svg",X5,Q5)}var e3=Zn(K5,[["render",J5],["__file","arrow-up.vue"]]),t3={name:"CircleCloseFilled"},r3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),i3=[n3];function a3(e,t,r,n,i,a){return Y(),me("svg",r3,i3)}var uM=Zn(t3,[["render",a3],["__file","circle-close-filled.vue"]]),o3={name:"Close"},s3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l3=ae("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),u3=[l3];function c3(e,t,r,n,i,a){return Y(),me("svg",s3,u3)}var Yp=Zn(o3,[["render",c3],["__file","close.vue"]]),f3={name:"InfoFilled"},d3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),v3=[h3];function p3(e,t,r,n,i,a){return Y(),me("svg",d3,v3)}var cM=Zn(f3,[["render",p3],["__file","info-filled.vue"]]),g3={name:"Loading"},m3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},y3=ae("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),_3=[y3];function b3(e,t,r,n,i,a){return Y(),me("svg",m3,_3)}var hy=Zn(g3,[["render",b3],["__file","loading.vue"]]),w3={name:"More"},x3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},S3=ae("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),C3=[S3];function T3(e,t,r,n,i,a){return Y(),me("svg",x3,C3)}var M3=Zn(w3,[["render",T3],["__file","more.vue"]]),A3={name:"SuccessFilled"},E3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),L3=[P3];function D3(e,t,r,n,i,a){return Y(),me("svg",E3,L3)}var fM=Zn(A3,[["render",D3],["__file","success-filled.vue"]]),I3={name:"WarningFilled"},O3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),k3=[R3];function N3(e,t,r,n,i,a){return Y(),me("svg",O3,k3)}var dM=Zn(I3,[["render",N3],["__file","warning-filled.vue"]]);const hM="__epPropKey",Le=e=>e,F3=e=>Xe(e)&&!!e[hM],eh=(e,t)=>{if(!Xe(e)||F3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let c=!1,f=[];if(r&&(f=Array.from(r),We(e,"default")&&f.push(i),c||(c=f.includes(u))),o&&(c||(c=o(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");fI(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[hM]:!0};return We(e,"default")&&(l.default=i),l},tt=e=>jp(Object.entries(e).map(([t,r])=>[t,eh(r,t)])),Wn=Le([String,Object,Function]),B3={Close:Yp,SuccessFilled:fM,InfoFilled:cM,WarningFilled:dM,CircleCloseFilled:uM},Ab={success:fM,warning:dM,error:uM,info:cM},hr=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},$3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),H3=(e,t)=>(e.install=r=>{r.directive(t,e)},e),fa=e=>(e.install=ur,e),Ot={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},go="update:modelValue",qp="change",Kp="input",Yu=["","default","small","large"],z3=e=>["",...Yu].includes(e),Cf=e=>{const t=be(e)?e:[e],r=[];return t.forEach(n=>{var i;be(n)?r.push(...Cf(n)):ta(n)&&be(n.children)?r.push(...Cf(n.children)):(r.push(n),ta(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Cf(n.component.subTree)))}),r},Ya=e=>e,vy=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{Se(()=>E(o),s=>{},{immediate:!0})};var W3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const V3=e=>(t,r)=>G3(t,r,E(e)),G3=(e,t,r)=>vu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),U3=e=>{const t=k(()=>E(e).name),r=Ct(e)?e:B(e);return{lang:t,locale:r,t:V3(e)}},vM=Symbol("localeContextKey"),py=e=>{const t=e||Ee(vM,B());return U3(k(()=>t.value||W3))},Xp="el",j3="is-",ga=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},pM=Symbol("namespaceContextKey"),gy=e=>{const t=e||Ee(pM,B(Xp));return k(()=>E(t)||Xp)},Ne=(e,t)=>{const r=gy(t);return{namespace:r,b:(p="")=>ga(r.value,e,p,"",""),e:p=>p?ga(r.value,e,"",p,""):"",m:p=>p?ga(r.value,e,"","",p):"",be:(p,g)=>p&&g?ga(r.value,e,p,g,""):"",em:(p,g)=>p&&g?ga(r.value,e,"",p,g):"",bm:(p,g)=>p&&g?ga(r.value,e,p,"",g):"",bem:(p,g,m)=>p&&g&&m?ga(r.value,e,p,g,m):"",is:(p,...g)=>{const m=g.length>=1?g[0]:!0;return p&&m?`${j3}${p}`:""},cssVar:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${m}`]=p[m]);return g},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${e}-${m}`]=p[m]);return g},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},Y3=eh({type:Le(Boolean),default:null}),q3=eh({type:Le(Function)}),K3=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:Y3,[r]:q3};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:c,onHide:f})=>{const d=ct(),{emit:h}=d,v=d.props,p=k(()=>De(v[r])),g=k(()=>v[e]===null),m=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),De(c)&&c(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),De(f)&&f(S))},_=S=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&Nt;C&&h(t,!0),(g.value||!C)&&m(S)},b=S=>{if(v.disabled===!0||!Nt)return;const C=p.value&&Nt;C&&h(t,!1),(g.value||!C)&&y(S)},x=S=>{Br(S)&&(v.disabled&&S?p.value&&h(t,!1):o.value!==S&&(S?m():y()))},w=()=>{o.value?b():_()};return Se(()=>v[e],x),l&&d.appContext.config.globalProperties.$route!==void 0&&Se(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),wt(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}},gM=e=>{const t=ct();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var Sr="top",ln="bottom",un="right",Cr="left",my="auto",qu=[Sr,ln,un,Cr],_s="start",mu="end",X3="clippingParents",mM="viewport",Xs="popper",Z3="reference",Eb=qu.reduce(function(e,t){return e.concat([t+"-"+_s,t+"-"+mu])},[]),yy=[].concat(qu,[my]).reduce(function(e,t){return e.concat([t,t+"-"+_s,t+"-"+mu])},[]),Q3="beforeRead",J3="read",e4="afterRead",t4="beforeMain",r4="main",n4="afterMain",i4="beforeWrite",a4="write",o4="afterWrite",s4=[Q3,J3,e4,t4,r4,n4,i4,a4,o4];function Kn(e){return e?(e.nodeName||"").toLowerCase():null}function Ln(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bs(e){var t=Ln(e).Element;return e instanceof t||e instanceof Element}function an(e){var t=Ln(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function _y(e){if(typeof ShadowRoot>"u")return!1;var t=Ln(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function l4(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!an(a)||!Kn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function u4(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!an(i)||!Kn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var yM={name:"applyStyles",enabled:!0,phase:"write",fn:l4,effect:u4,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var oo=Math.max,od=Math.min,ws=Math.round;function xs(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(an(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ws(r.width)/o||1),a>0&&(i=ws(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function by(e){var t=xs(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function _M(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&_y(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function _i(e){return Ln(e).getComputedStyle(e)}function c4(e){return["table","td","th"].indexOf(Kn(e))>=0}function da(e){return((bs(e)?e.ownerDocument:e.document)||window.document).documentElement}function th(e){return Kn(e)==="html"?e:e.assignedSlot||e.parentNode||(_y(e)?e.host:null)||da(e)}function Pb(e){return!an(e)||_i(e).position==="fixed"?null:e.offsetParent}function f4(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&an(e)){var n=_i(e);if(n.position==="fixed")return null}var i=th(e);for(_y(i)&&(i=i.host);an(i)&&["html","body"].indexOf(Kn(i))<0;){var a=_i(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ku(e){for(var t=Ln(e),r=Pb(e);r&&c4(r)&&_i(r).position==="static";)r=Pb(r);return r&&(Kn(r)==="html"||Kn(r)==="body"&&_i(r).position==="static")?t:r||f4(e)||t}function wy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rl(e,t,r){return oo(e,od(t,r))}function d4(e,t,r){var n=Rl(e,t,r);return n>r?r:n}function bM(){return{top:0,right:0,bottom:0,left:0}}function wM(e){return Object.assign({},bM(),e)}function xM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var h4=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,wM(typeof e!="number"?e:xM(e,qu))};function v4(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=wy(s),u=[Cr,un].indexOf(s)>=0,c=u?"height":"width";if(!(!a||!o)){var f=h4(i.padding,r),d=by(a),h=l==="y"?Sr:Cr,v=l==="y"?ln:un,p=r.rects.reference[c]+r.rects.reference[l]-o[l]-r.rects.popper[c],g=o[l]-r.rects.reference[l],m=Ku(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=f[h],x=y-d[c]-f[v],w=y/2-d[c]/2+_,S=Rl(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function p4(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!_M(t.elements.popper,i)||(t.elements.arrow=i))}var g4={name:"arrow",enabled:!0,phase:"main",fn:v4,effect:p4,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ss(e){return e.split("-")[1]}var m4={top:"auto",right:"auto",bottom:"auto",left:"auto"};function y4(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ws(t*i)/i||0,y:ws(r*i)/i||0}}function Lb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof c=="function"?c({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Cr,b=Sr,x=window;if(u){var w=Ku(r),S="clientHeight",C="clientWidth";if(w===Ln(r)&&(w=da(r),_i(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===Sr||(i===Cr||i===un)&&a===mu){b=ln;var M=f&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=M-n.height,p*=l?1:-1}if(i===Cr||(i===Sr||i===ln)&&a===mu){_=un;var P=f&&w===x&&x.visualViewport?x.visualViewport.width:w[C];h-=P-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&m4),T=c===!0?y4({x:h,y:p}):{x:h,y:p};if(h=T.x,p=T.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function _4(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:Ss(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Lb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Lb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var SM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:_4,data:{}},mc={passive:!0};function b4(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=Ln(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",r.update,mc)}),s&&l.addEventListener("resize",r.update,mc),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",r.update,mc)}),s&&l.removeEventListener("resize",r.update,mc)}}var CM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:b4,data:{}},w4={left:"right",right:"left",bottom:"top",top:"bottom"};function Tf(e){return e.replace(/left|right|bottom|top/g,function(t){return w4[t]})}var x4={start:"end",end:"start"};function Db(e){return e.replace(/start|end/g,function(t){return x4[t]})}function xy(e){var t=Ln(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Sy(e){return xs(da(e)).left+xy(e).scrollLeft}function S4(e){var t=Ln(e),r=da(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Sy(e),y:s}}function C4(e){var t,r=da(e),n=xy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=oo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=oo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Sy(e),l=-n.scrollTop;return _i(i||r).direction==="rtl"&&(s+=oo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function Cy(e){var t=_i(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function TM(e){return["html","body","#document"].indexOf(Kn(e))>=0?e.ownerDocument.body:an(e)&&Cy(e)?e:TM(th(e))}function kl(e,t){var r;t===void 0&&(t=[]);var n=TM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=Ln(n),o=i?[a].concat(a.visualViewport||[],Cy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(kl(th(o)))}function Zp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function T4(e){var t=xs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ib(e,t){return t===mM?Zp(S4(e)):bs(t)?T4(t):Zp(C4(da(e)))}function M4(e){var t=kl(th(e)),r=["absolute","fixed"].indexOf(_i(e).position)>=0,n=r&&an(e)?Ku(e):e;return bs(n)?t.filter(function(i){return bs(i)&&_M(i,n)&&Kn(i)!=="body"}):[]}function A4(e,t,r){var n=t==="clippingParents"?M4(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=Ib(e,l);return s.top=oo(u.top,s.top),s.right=od(u.right,s.right),s.bottom=od(u.bottom,s.bottom),s.left=oo(u.left,s.left),s},Ib(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function MM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?Ss(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case Sr:l={x:o,y:t.y-r.height};break;case ln:l={x:o,y:t.y+t.height};break;case un:l={x:t.x+t.width,y:s};break;case Cr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?wy(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case _s:l[u]=l[u]-(t[c]/2-r[c]/2);break;case mu:l[u]=l[u]+(t[c]/2-r[c]/2);break}}return l}function yu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?X3:a,s=r.rootBoundary,l=s===void 0?mM:s,u=r.elementContext,c=u===void 0?Xs:u,f=r.altBoundary,d=f===void 0?!1:f,h=r.padding,v=h===void 0?0:h,p=wM(typeof v!="number"?v:xM(v,qu)),g=c===Xs?Z3:Xs,m=e.rects.popper,y=e.elements[d?g:c],_=A4(bs(y)?y:y.contextElement||da(e.elements.popper),o,l),b=xs(e.elements.reference),x=MM({reference:b,element:m,strategy:"absolute",placement:i}),w=Zp(Object.assign({},m,x)),S=c===Xs?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},M=e.modifiersData.offset;if(c===Xs&&M){var P=M[i];Object.keys(C).forEach(function(A){var T=[un,ln].indexOf(A)>=0?1:-1,D=[Sr,ln].indexOf(A)>=0?"y":"x";C[A]+=P[D]*T})}return C}function E4(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?yy:l,c=Ss(n),f=c?s?Eb:Eb.filter(function(v){return Ss(v)===c}):qu,d=f.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=f);var h=d.reduce(function(v,p){return v[p]=yu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function P4(e){if(jn(e)===my)return[];var t=Tf(e);return[Db(e),t,Db(t)]}function L4(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=jn(g),y=m===g,_=l||(y||!v?[Tf(g)]:P4(g)),b=[g].concat(_).reduce(function(Ae,V){return Ae.concat(jn(V)===my?E4(t,{placement:V,boundary:c,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,M=b[0],P=0;P=0,H=N?"width":"height",$=yu(t,{placement:A,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),G=N?D?un:Cr:D?ln:Sr;x[H]>w[H]&&(G=Tf(G));var F=Tf(G),R=[];if(a&&R.push($[T]<=0),s&&R.push($[G]<=0,$[F]<=0),R.every(function(Ae){return Ae})){M=A,C=!1;break}S.set(A,R)}if(C)for(var j=v?3:1,re=function(Ae){var V=b.find(function(Q){var W=S.get(Q);if(W)return W.slice(0,Ae).every(function(q){return q})});if(V)return M=V,"break"},oe=j;oe>0;oe--){var ye=re(oe);if(ye==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var D4={name:"flip",enabled:!0,phase:"main",fn:L4,requiresIfExists:["offset"],data:{_skip:!1}};function Ob(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Rb(e){return[Sr,un,ln,Cr].some(function(t){return e[t]>=0})}function I4(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=yu(t,{elementContext:"reference"}),s=yu(t,{altBoundary:!0}),l=Ob(o,n),u=Ob(s,i,a),c=Rb(l),f=Rb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var O4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:I4};function R4(e,t,r){var n=jn(e),i=[Cr,Sr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Cr,un].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function k4(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=yy.reduce(function(c,f){return c[f]=R4(f,t.rects,a),c},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var N4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:k4};function F4(e){var t=e.state,r=e.name;t.modifiersData[r]=MM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var AM={name:"popperOffsets",enabled:!0,phase:"read",fn:F4,data:{}};function B4(e){return e==="x"?"y":"x"}function $4(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=yu(t,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),m=jn(t.placement),y=Ss(t.placement),_=!y,b=wy(m),x=B4(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,P=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(w){if(a){var D,N=b==="y"?Sr:Cr,H=b==="y"?ln:un,$=b==="y"?"height":"width",G=w[b],F=G+g[N],R=G-g[H],j=h?-C[$]/2:0,re=y===_s?S[$]:C[$],oe=y===_s?-C[$]:-S[$],ye=t.elements.arrow,Ae=h&&ye?by(ye):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:bM(),Q=V[N],W=V[H],q=Rl(0,S[$],Ae[$]),le=_?S[$]/2-j-q-Q-P.mainAxis:re-q-Q-P.mainAxis,de=_?-S[$]/2+j+q+W+P.mainAxis:oe+q+W+P.mainAxis,J=t.elements.arrow&&Ku(t.elements.arrow),L=J?b==="y"?J.clientTop||0:J.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=G+le-I-L,U=G+de-I,K=Rl(h?od(F,z):F,G,h?oo(R,U):R);w[b]=K,T[b]=K-G}if(s){var ne,fe=b==="x"?Sr:Cr,te=b==="x"?ln:un,ie=w[x],X=x==="y"?"height":"width",we=ie+g[fe],he=ie-g[te],xe=[Sr,Cr].indexOf(m)!==-1,Oe=(ne=A==null?void 0:A[x])!=null?ne:0,ze=xe?we:ie-S[X]-C[X]-Oe+P.altAxis,rt=xe?ie+S[X]+C[X]-Oe-P.altAxis:he,Je=h&&xe?d4(ze,ie,rt):Rl(h?ze:we,ie,h?rt:he);w[x]=Je,T[x]=Je-ie}t.modifiersData[n]=T}}var H4={name:"preventOverflow",enabled:!0,phase:"main",fn:$4,requiresIfExists:["offset"]};function z4(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function W4(e){return e===Ln(e)||!an(e)?xy(e):z4(e)}function V4(e){var t=e.getBoundingClientRect(),r=ws(t.width)/e.offsetWidth||1,n=ws(t.height)/e.offsetHeight||1;return r!==1||n!==1}function G4(e,t,r){r===void 0&&(r=!1);var n=an(t),i=an(t)&&V4(t),a=da(t),o=xs(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Kn(t)!=="body"||Cy(a))&&(s=W4(t)),an(t)?(l=xs(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Sy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function U4(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function j4(e){var t=U4(e);return s4.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function Y4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function q4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var kb={placement:"bottom",modifiers:[],strategy:"absolute"};function Nb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=Q4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:c,modifiers:f}=E(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],n,{name:"applyStyles",enabled:!1}]}}),a=$m(),o=B({styles:{popper:{position:E(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return Se(i,l=>{const u=E(a);u&&u.setOptions(l)},{deep:!0}),Se([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=EM(l,u,E(i)))}),Xt(()=>{s()}),{state:k(()=>{var l;return{...((l=E(a))==null?void 0:l.state)||{}}}),styles:k(()=>E(o).styles),attributes:k(()=>E(o).attributes),update:()=>{var l;return(l=E(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=E(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>E(a))}};function Q4(e){const t=Object.keys(e.elements),r=jp(t.map(i=>[i,e.styles[i]||{}])),n=jp(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}function Fb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return zu(()=>r()),{registerTimeout:t,cancelTimeout:r}}const Bb={prefix:Math.floor(Math.random()*1e4),current:0},J4=Symbol("elIdInjection"),PM=()=>ct()?Ee(J4,Bb):Bb,My=e=>{const t=PM(),r=gy();return k(()=>E(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let Yo=[];const $b=e=>{const t=e;t.key===Ot.esc&&Yo.forEach(r=>r(t))},eH=e=>{wt(()=>{Yo.length===0&&document.addEventListener("keydown",$b),Nt&&Yo.push(e)}),Xt(()=>{Yo=Yo.filter(t=>t!==e),Yo.length===0&&Nt&&document.removeEventListener("keydown",$b)})};let Hb;const LM=()=>{const e=gy(),t=PM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},tH=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},rH=()=>{const{id:e,selector:t}=LM();return Gd(()=>{Nt&&!Hb&&!document.body.querySelector(t.value)&&(Hb=tH(e.value))}),{id:e,selector:t}},nH=tt({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),DM=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Fb(),{registerTimeout:o,cancelTimeout:s}=Fb();return{onOpen:c=>{a(()=>{n(c);const f=E(r);$t(f)&&f>0&&o(()=>{i(c)},f)},E(e))},onClose:c=>{s(),a(()=>{i(c)},E(t))}}},IM=Symbol("elForwardRef"),iH=e=>{At(IM,{setForwardRef:r=>{e.value=r}})},aH=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),zb=B(0),OM=2e3,RM=Symbol("zIndexContextKey"),Ay=e=>{const t=e||Ee(RM,void 0),r=k(()=>{const a=E(t);return $t(a)?a:OM}),n=k(()=>r.value+zb.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(zb.value++,n.value)}},Xu=eh({type:String,values:Yu,required:!1}),kM=Symbol("size"),oH=()=>{const e=Ee(kM,{});return k(()=>E(e.size)||"")},NM=Symbol(),sd=B();function Ey(e,t=void 0){const r=ct()?Ee(NM,sd):sd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function sH(e,t){const r=Ey(),n=Ne(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Xp})),i=py(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=Ay(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||OM})),o=k(()=>{var s;return E(t)||((s=r.value)==null?void 0:s.size)||""});return FM(k(()=>E(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const FM=(e,t,r=!1)=>{var n;const i=!!ct(),a=i?Ey():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?At:void 0;if(!o)return;const s=k(()=>{const l=E(e);return a!=null&&a.value?lH(a.value,l):l});return o(NM,s),o(vM,k(()=>s.value.locale)),o(pM,k(()=>s.value.namespace)),o(RM,k(()=>s.value.zIndex)),o(kM,{size:k(()=>s.value.size||"")}),(r||!sd.value)&&(sd.value=s.value),s},lH=(e,t)=>{var r;const n=[...new Set([...Tb(e),...Tb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},uH=tt({a11y:{type:Boolean,default:!0},locale:{type:Le(Object)},size:Xu,button:{type:Le(Object)},experimentalFeatures:{type:Le(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Le(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),Qp={};ce({name:"ElConfigProvider",props:uH,setup(e,{slots:t}){Se(()=>e.message,n=>{Object.assign(Qp,n??{})},{immediate:!0,deep:!0});const r=FM(e);return()=>$e(t,"default",{config:r==null?void 0:r.value})}});var Ze=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const cH=tt({size:{type:Le([Number,String])},color:{type:String}}),fH=ce({name:"ElIcon",inheritAttrs:!1}),dH=ce({...fH,props:cH,setup(e){const t=e,r=Ne("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:ad(i)?void 0:po(i),"--color":a}});return(i,a)=>(Y(),me("i",ca({class:E(r).b(),style:E(n)},i.$attrs),[$e(i.$slots,"default")],16))}});var hH=Ze(dH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const lr=hr(hH),Bs=Symbol("formContextKey"),mo=Symbol("formItemContextKey"),ia=(e,t={})=>{const r=B(void 0),n=t.prop?r:gM("size"),i=t.global?r:oH(),a=t.form?{size:void 0}:Ee(Bs,void 0),o=t.formItem?{size:void 0}:Ee(mo,void 0);return k(()=>n.value||E(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},rh=e=>{const t=gM("disabled"),r=Ee(Bs,void 0);return k(()=>t.value||E(e)||(r==null?void 0:r.disabled)||!1)},Zu=()=>{const e=Ee(Bs,void 0),t=Ee(mo,void 0);return{form:e,formItem:t}},Py=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=B(!1)),n||(n=B(!1));const i=B();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return wt(()=>{a=Se([tn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:My().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),ks(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},vH=tt({size:{type:String,values:Yu},disabled:Boolean}),pH=tt({...vH,model:Object,rules:{type:Le(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),gH={validate:(e,t,r)=>(be(e)||He(e))&&Br(t)&&He(r)};function mH(){const e=B([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const yc=(e,t)=>{const r=$p(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},yH="ElForm",_H=ce({name:yH}),bH=ce({..._H,props:pH,emits:gH,setup(e,{expose:t,emit:r}){const n=e,i=[],a=ia(),o=Ne("form"),s=k(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},c=(y=[])=>{n.model&&yc(i,y).forEach(_=>_.resetField())},f=(y=[])=>{yc(i,y).forEach(_=>_.clearValidate())},d=k(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=yc(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const x of _)try{await x.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!De(_);try{const x=await p(y);return x===!0&&(_==null||_(x)),x}catch(x){if(x instanceof Error)throw x;const w=x;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=yc(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView(n.scrollIntoViewOptions))};return Se(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),At(Bs,fn({...$d(n),emit:r,resetFields:c,clearValidate:f,validateField:g,addField:l,removeField:u,...mH()})),t({validate:v,validateField:g,resetFields:c,clearValidate:f,scrollToField:m}),(y,_)=>(Y(),me("form",{class:ue(E(s))},[$e(y.$slots,"default")],2))}});var wH=Ze(bH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Mf(e,t,r){return SH()?Mf=Reflect.construct.bind():Mf=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&_u(u,o.prototype),u},Mf.apply(null,arguments)}function CH(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function eg(e){var t=typeof Map=="function"?new Map:void 0;return eg=function(n){if(n===null||!CH(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Mf(n,arguments,Jp(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),_u(i,n)},eg(e)}var TH=/%[sdj%]/g,MH=function(){};typeof process<"u"&&process.env;function tg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function kr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function AH(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function zt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||AH(t)&&typeof e=="string"&&!e)}function EH(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function Wb(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,st in e?fD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var hD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,r)=>(dD(e,typeof t!="symbol"?t+"":t,r),r);var Tre=hD((Nr,Fr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Pm(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}function xt(e){if(be(e)){const t={};for(let r=0;r{if(r){const n=r.split(pD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ue(e){let t="";if(He(e))t=e;else if(be(e))for(let r=0;rOd(r,t))}const Me=e=>He(e)?e:e==null?"":be(e)||Xe(e)&&(e.toString===mC||!De(e.toString))?JSON.stringify(e,gC,2):String(e),gC=(e,t)=>t&&t.__v_isRef?gC(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:kd(t)?{[`Set(${t.size})`]:[...t.values()]}:Xe(t)&&!be(t)&&!yC(t)?String(t):t,yt={},ns=[],ur=()=>{},wD=()=>!1,SD=/^on[^a-z]/,Rd=e=>SD.test(e),Em=e=>e.startsWith("onUpdate:"),Gt=Object.assign,Lm=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},xD=Object.prototype.hasOwnProperty,We=(e,t)=>xD.call(e,t),be=Array.isArray,is=e=>Bu(e)==="[object Map]",kd=e=>Bu(e)==="[object Set]",K0=e=>Bu(e)==="[object Date]",De=e=>typeof e=="function",He=e=>typeof e=="string",tu=e=>typeof e=="symbol",Xe=e=>e!==null&&typeof e=="object",jf=e=>Xe(e)&&De(e.then)&&De(e.catch),mC=Object.prototype.toString,Bu=e=>mC.call(e),CD=e=>Bu(e).slice(8,-1),yC=e=>Bu(e)==="[object Object]",Dm=e=>He(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mf=Pm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Nd=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},TD=/-(\w)/g,An=Nd(e=>e.replace(TD,(t,r)=>r?r.toUpperCase():"")),MD=/\B([A-Z])/g,So=Nd(e=>e.replace(MD,"-$1").toLowerCase()),Fd=Nd(e=>e.charAt(0).toUpperCase()+e.slice(1)),yf=Nd(e=>e?`on${Fd(e)}`:""),ru=(e,t)=>!Object.is(e,t),_f=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},AD=e=>{const t=parseFloat(e);return isNaN(t)?e:t},PD=e=>{const t=He(e)?Number(e):NaN;return isNaN(t)?e:t};let X0;const ED=()=>X0||(X0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Or;class LD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Or,!t&&Or&&(this.index=(Or.scopes||(Or.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Or;try{return Or=this,t()}finally{Or=r}}}on(){Or=this}off(){Or=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},bC=e=>(e.w&ea)>0,wC=e=>(e.n&ea)>0,OD=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(c==="length"||c>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":be(e)?Dm(r)&&s.push(o.get("length")):(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"delete":be(e)||(s.push(o.get(no)),is(e)&&s.push(o.get(Cp)));break;case"set":is(e)&&s.push(o.get(no));break}if(s.length===1)s[0]&&Tp(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);Tp(Im(l))}}function Tp(e,t){const r=be(e)?e:[...e];for(const n of r)n.computed&&Q0(n);for(const n of r)n.computed||Q0(n)}function Q0(e,t){(e!==bn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function kD(e,t){var r;return(r=qf.get(e))===null||r===void 0?void 0:r.get(t)}const ND=Pm("__proto__,__v_isRef,__isVue"),CC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(tu)),FD=Rm(),BD=Rm(!1,!0),$D=Rm(!0),J0=HD();function HD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ke(this);for(let a=0,o=this.length;a{e[t]=function(...r){Os();const n=Ke(this)[t].apply(this,r);return Rs(),n}}),e}function zD(e){const t=Ke(this);return Mr(t,"has",e),t.hasOwnProperty(e)}function Rm(e=!1,t=!1){return function(n,i,a){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&a===(e?t?nI:EC:t?PC:AC).get(n))return n;const o=be(n);if(!e){if(o&&We(J0,i))return Reflect.get(J0,i,a);if(i==="hasOwnProperty")return zD}const s=Reflect.get(n,i,a);return(tu(i)?CC.has(i):ND(i))||(e||Mr(n,"get",i),t)?s:Ct(s)?o&&Dm(i)?s:s.value:Xe(s)?e?$u(s):fn(s):s}}const WD=TC(),VD=TC(!0);function TC(e=!1){return function(r,n,i,a){let o=r[n];if(vs(o)&&Ct(o)&&!Ct(i))return!1;if(!e&&(!Kf(i)&&!vs(i)&&(o=Ke(o),i=Ke(i)),!be(r)&&Ct(o)&&!Ct(i)))return o.value=i,!0;const s=be(r)&&Dm(n)?Number(n)e,Bd=e=>Reflect.getPrototypeOf(e);function uc(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ke(e),a=Ke(t);r||(t!==a&&Mr(i,"get",t),Mr(i,"get",a));const{has:o}=Bd(i),s=n?km:r?Bm:nu;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function cc(e,t=!1){const r=this.__v_raw,n=Ke(r),i=Ke(e);return t||(e!==i&&Mr(n,"has",e),Mr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function fc(e,t=!1){return e=e.__v_raw,!t&&Mr(Ke(e),"iterate",no),Reflect.get(e,"size",e)}function e_(e){e=Ke(e);const t=Ke(this);return Bd(t).has.call(t,e)||(t.add(e),gi(t,"add",e,e)),this}function t_(e,t){t=Ke(t);const r=Ke(this),{has:n,get:i}=Bd(r);let a=n.call(r,e);a||(e=Ke(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?ru(t,o)&&gi(r,"set",e,t):gi(r,"add",e,t),this}function r_(e){const t=Ke(this),{has:r,get:n}=Bd(t);let i=r.call(t,e);i||(e=Ke(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&gi(t,"delete",e,void 0),a}function n_(){const e=Ke(this),t=e.size!==0,r=e.clear();return t&&gi(e,"clear",void 0,void 0),r}function dc(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ke(o),l=t?km:e?Bm:nu;return!e&&Mr(s,"iterate",no),o.forEach((u,c)=>n.call(i,l(u),l(c),a))}}function hc(e,t,r){return function(...n){const i=this.__v_raw,a=Ke(i),o=is(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),c=r?km:t?Bm:nu;return!t&&Mr(a,"iterate",l?Cp:no),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Ei(e){return function(...t){return e==="delete"?!1:this}}function KD(){const e={get(a){return uc(this,a)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!1)},t={get(a){return uc(this,a,!1,!0)},get size(){return fc(this)},has:cc,add:e_,set:t_,delete:r_,clear:n_,forEach:dc(!1,!0)},r={get(a){return uc(this,a,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Ei("add"),set:Ei("set"),delete:Ei("delete"),clear:Ei("clear"),forEach:dc(!0,!1)},n={get(a){return uc(this,a,!0,!0)},get size(){return fc(this,!0)},has(a){return cc.call(this,a,!0)},add:Ei("add"),set:Ei("set"),delete:Ei("delete"),clear:Ei("clear"),forEach:dc(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=hc(a,!1,!1),r[a]=hc(a,!0,!1),t[a]=hc(a,!1,!0),n[a]=hc(a,!0,!0)}),[e,r,t,n]}const[XD,ZD,QD,JD]=KD();function Nm(e,t){const r=t?e?JD:QD:e?ZD:XD;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(We(r,i)&&i in n?r:n,i,a)}const eI={get:Nm(!1,!1)},tI={get:Nm(!1,!0)},rI={get:Nm(!0,!1)},AC=new WeakMap,PC=new WeakMap,EC=new WeakMap,nI=new WeakMap;function iI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function aI(e){return e.__v_skip||!Object.isExtensible(e)?0:iI(CD(e))}function fn(e){return vs(e)?e:Fm(e,!1,MC,eI,AC)}function LC(e){return Fm(e,!1,qD,tI,PC)}function $u(e){return Fm(e,!0,YD,rI,EC)}function Fm(e,t,r,n,i){if(!Xe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=aI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function as(e){return vs(e)?as(e.__v_raw):!!(e&&e.__v_isReactive)}function vs(e){return!!(e&&e.__v_isReadonly)}function Kf(e){return!!(e&&e.__v_isShallow)}function DC(e){return as(e)||vs(e)}function Ke(e){const t=e&&e.__v_raw;return t?Ke(t):e}function IC(e){return Yf(e,"__v_skip",!0),e}const nu=e=>Xe(e)?fn(e):e,Bm=e=>Xe(e)?$u(e):e;function OC(e){Xi&&bn&&(e=Ke(e),xC(e.dep||(e.dep=Im())))}function RC(e,t){e=Ke(e);const r=e.dep;r&&Tp(r)}function Ct(e){return!!(e&&e.__v_isRef===!0)}function B(e){return kC(e,!1)}function $m(e){return kC(e,!0)}function kC(e,t){return Ct(e)?e:new oI(e,t)}class oI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ke(t),this._value=r?t:nu(t)}get value(){return OC(this),this._value}set value(t){const r=this.__v_isShallow||Kf(t)||vs(t);t=r?t:Ke(t),ru(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:nu(t),RC(this))}}function P(e){return Ct(e)?e.value:e}const sI={get:(e,t,r)=>P(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Ct(i)&&!Ct(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function NC(e){return as(e)?e:new Proxy(e,sI)}function $d(e){const t=be(e)?new Array(e.length):{};for(const r in e)t[r]=tn(e,r);return t}class lI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return kD(Ke(this._object),this._key)}}function tn(e,t,r){const n=e[t];return Ct(n)?n:new lI(e,t,r)}var FC;class uI{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[FC]=!1,this._dirty=!0,this.effect=new Om(t,()=>{this._dirty||(this._dirty=!0,RC(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ke(this);return OC(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}FC="__v_isReadonly";function cI(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=ur):(n=e.get,i=e.set),new uI(n,i,a||!i,r)}function fI(e,...t){}function Zi(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Hd(a,t,r)}return i}function rn(e,t,r,n){if(De(e)){const a=Zi(e,t,r,n);return a&&jf(a)&&a.catch(o=>{Hd(o,t,r)}),a}const i=[];for(let a=0;a>>1;au(tr[n])$n&&tr.splice(t,1)}function pI(e){be(e)?os.push(...e):(!ci||!ci.includes(e,e.allowRecurse?Ga+1:Ga))&&os.push(e),$C()}function i_(e,t=iu?$n+1:0){for(;tau(r)-au(n)),Ga=0;Gae.id==null?1/0:e.id,gI=(e,t)=>{const r=au(e)-au(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function zC(e){Mp=!1,iu=!0,tr.sort(gI);const t=ur;try{for($n=0;$nHe(h)?h.trim():h)),f&&(i=r.map(AD))}let s,l=n[s=yf(t)]||n[s=yf(An(t))];!l&&a&&(l=n[s=yf(So(t))]),l&&rn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,rn(u,e,6,i)}}function WC(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const c=WC(u,t,!0);c&&(s=!0,Gt(o,c))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(Xe(e)&&n.set(e,null),null):(be(a)?a.forEach(l=>o[l]=null):Gt(o,a),Xe(e)&&n.set(e,o),o)}function zd(e,t){return!e||!Rd(t)?!1:(t=t.slice(2).replace(/Once$/,""),We(e,t[0].toLowerCase()+t.slice(1))||We(e,So(t))||We(e,t))}let qt=null,VC=null;function Xf(e){const t=qt;return qt=e,VC=e&&e.type.__scopeId||null,t}function Z(e,t=qt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&g_(-1);const a=Xf(t);let o;try{o=e(...i)}finally{Xf(a),n._d&&g_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ih(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:c,renderCache:f,data:d,setupState:h,ctx:v,inheritAttrs:p}=e;let g,m;const y=Xf(e);try{if(r.shapeFlag&4){const b=i||n;g=Bn(c.call(b,b,f,a,h,d,v)),m=l}else{const b=t;g=Bn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),m=t.props?l:yI(l)}}catch(b){Dl.length=0,Hd(b,e,1),g=ee(Sr)}let _=g;if(m&&p!==!1){const b=Object.keys(m),{shapeFlag:S}=_;b.length&&S&7&&(o&&b.some(Em)&&(m=_I(m,o)),_=mi(_,m))}return r.dirs&&(_=mi(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,Xf(y),g}const yI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Rd(r))&&((t||(t={}))[r]=e[r]);return t},_I=(e,t)=>{const r={};for(const n in e)(!Em(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function bI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?a_(n,o,u):!!o;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function xI(e,t){t&&t.pendingBranch?be(e)?t.effects.push(...e):t.effects.push(e):pI(e)}function At(e,t){if(It){let r=It.provides;const n=It.parent&&It.parent.provides;n===r&&(r=It.provides=Object.create(n)),r[e]=t}}function Pe(e,t,r=!1){const n=It||qt;if(n){const i=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return r&&De(t)?t.call(n.proxy):t}}function io(e,t){return Wm(e,null,t)}const vc={};function xe(e,t,r){return Wm(e,t,r)}function Wm(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=yt){const s=_C()===(It==null?void 0:It.scope)?It:null;let l,u=!1,c=!1;if(Ct(e)?(l=()=>e.value,u=Kf(e)):as(e)?(l=()=>e,n=!0):be(e)?(c=!0,u=e.some(_=>as(_)||Kf(_)),l=()=>e.map(_=>{if(Ct(_))return _.value;if(as(_))return Xa(_);if(De(_))return Zi(_,s,2)})):De(e)?t?l=()=>Zi(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return f&&f(),rn(e,s,3,[d])}:l=ur,t&&n){const _=l;l=()=>Xa(_())}let f,d=_=>{f=m.onStop=()=>{Zi(_,s,4)}},h;if(uu)if(d=ur,t?r&&rn(t,s,3,[l(),c?[]:void 0,d]):l(),i==="sync"){const _=vO();h=_.__watcherHandles||(_.__watcherHandles=[])}else return ur;let v=c?new Array(e.length).fill(vc):vc;const p=()=>{if(m.active)if(t){const _=m.run();(n||u||(c?_.some((b,S)=>ru(b,v[S])):ru(_,v)))&&(f&&f(),rn(t,s,3,[_,v===vc?void 0:c&&v[0]===vc?[]:v,d]),v=_)}else m.run()};p.allowRecurse=!!t;let g;i==="sync"?g=p:i==="post"?g=()=>yr(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),g=()=>zm(p));const m=new Om(l,g);t?r?p():v=m.run():i==="post"?yr(m.run.bind(m),s&&s.suspense):m.run();const y=()=>{m.stop(),s&&s.scope&&Lm(s.scope.effects,m)};return h&&h.push(y),y}function CI(e,t,r){const n=this.proxy,i=He(e)?e.includes(".")?GC(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=It;ps(this);const s=Wm(i,a.bind(n),r);return o?ps(o):ao(),s}function GC(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{Xa(r,t)});else if(yC(e))for(const r in e)Xa(e[r],t);return e}function UC(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return wt(()=>{e.isMounted=!0}),Xt(()=>{e.isUnmounting=!0}),e}const Wr=[Function,Array],TI={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Wr,onEnter:Wr,onAfterEnter:Wr,onEnterCancelled:Wr,onBeforeLeave:Wr,onLeave:Wr,onAfterLeave:Wr,onLeaveCancelled:Wr,onBeforeAppear:Wr,onAppear:Wr,onAfterAppear:Wr,onAppearCancelled:Wr},setup(e,{slots:t}){const r=ct(),n=UC();let i;return()=>{const a=t.default&&Vm(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==Sr){o=p;break}}const s=Ke(e),{mode:l}=s;if(n.isLeaving)return Oh(o);const u=o_(o);if(!u)return Oh(o);const c=ou(u,s,n,r);su(u,c);const f=r.subTree,d=f&&o_(f);let h=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(d&&d.type!==Sr&&(!Ua(u,d)||h)){const p=ou(d,s,n,r);if(su(d,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&r.update()},Oh(o);l==="in-out"&&u.type!==Sr&&(p.delayLeave=(g,m,y)=>{const _=YC(n,d);_[String(d.key)]=d,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=y})}return o}}},jC=TI;function YC(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function ou(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),b=YC(r,e),S=(C,M)=>{C&&rn(C,n,9,M)},w=(C,M)=>{const E=M[1];S(C,M),be(C)?C.every(A=>A.length<=1)&&E():C.length<=1&&E()},x={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C._leaveCb&&C._leaveCb(!0);const E=b[_];E&&Ua(e,E)&&E.el._leaveCb&&E.el._leaveCb(),S(M,[C])},enter(C){let M=l,E=u,A=c;if(!r.isMounted)if(i)M=g||l,E=m||u,A=y||c;else return;let T=!1;const D=C._enterCb=N=>{T||(T=!0,N?S(A,[C]):S(E,[C]),x.delayedLeave&&x.delayedLeave(),C._enterCb=void 0)};M?w(M,[C,D]):D()},leave(C,M){const E=String(e.key);if(C._enterCb&&C._enterCb(!0),r.isUnmounting)return M();S(f,[C]);let A=!1;const T=C._leaveCb=D=>{A||(A=!0,M(),D?S(v,[C]):S(h,[C]),C._leaveCb=void 0,b[E]===e&&delete b[E])};b[E]=e,d?w(d,[C,T]):T()},clone(C){return ou(C,t,r,n)}};return x}function Oh(e){if(Wd(e))return e=mi(e),e.children=null,e}function o_(e){return Wd(e)?e.children?e.children[0]:void 0:e}function su(e,t){e.shapeFlag&6&&e.component?su(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vm(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Wd=e=>e.type.__isKeepAlive;function MI(e,t){KC(e,"a",t)}function qC(e,t){KC(e,"da",t)}function KC(e,t,r=It){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Vd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Wd(i.parent.vnode)&&AI(n,t,r,i),i=i.parent}}function AI(e,t,r,n){const i=Vd(t,e,n,!0);ks(()=>{Lm(n[t],i)},r)}function Vd(e,t,r=It,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Os(),ps(r);const s=rn(t,r,e,o);return ao(),Rs(),s});return n?i.unshift(a):i.push(a),a}}const xi=e=>(t,r=It)=>(!uu||e==="sp")&&Vd(e,(...n)=>t(...n),r),Gd=xi("bm"),wt=xi("m"),PI=xi("bu"),Hu=xi("u"),Xt=xi("bum"),ks=xi("um"),EI=xi("sp"),LI=xi("rtg"),DI=xi("rtc");function II(e,t=It){Vd("ec",e,t)}function nr(e,t){const r=qt;if(r===null)return e;const n=jd(r)||r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;at(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;sta(t)?!(t.type===Sr||t.type===pt&&!QC(t.children)):!0)?e:null}function RI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:yf(n)]=e[n];return r}const Ap=e=>e?uT(e)?jd(e)||e.proxy:Ap(e.parent):null,El=Gt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ap(e.parent),$root:e=>Ap(e.root),$emit:e=>e.emit,$options:e=>jm(e),$forceUpdate:e=>e.f||(e.f=()=>zm(e.update)),$nextTick:e=>e.n||(e.n=Ft.bind(e.proxy)),$watch:e=>CI.bind(e)}),Rh=(e,t)=>e!==yt&&!e.__isScriptSetup&&We(e,t),kI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Rh(n,t))return o[t]=1,n[t];if(i!==yt&&We(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&We(u,t))return o[t]=3,a[t];if(r!==yt&&We(r,t))return o[t]=4,r[t];Pp&&(o[t]=0)}}const c=El[t];let f,d;if(c)return t==="$attrs"&&Mr(e,"get",t),c(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(r!==yt&&We(r,t))return o[t]=4,r[t];if(d=l.config.globalProperties,We(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Rh(i,t)?(i[t]=r,!0):n!==yt&&We(n,t)?(n[t]=r,!0):We(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==yt&&We(e,o)||Rh(t,o)||(s=a[0])&&We(s,o)||We(n,o)||We(El,o)||We(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:We(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let Pp=!0;function NI(e){const t=jm(e),r=e.proxy,n=e.ctx;Pp=!1,t.beforeCreate&&u_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:v,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:b,render:S,renderTracked:w,renderTriggered:x,errorCaptured:C,serverPrefetch:M,expose:E,inheritAttrs:A,components:T,directives:D,filters:N}=t;if(u&&FI(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const G in o){const F=o[G];De(F)&&(n[G]=F.bind(r))}if(i){const G=i.call(r,r);Xe(G)&&(e.data=fn(G))}if(Pp=!0,a)for(const G in a){const F=a[G],R=De(F)?F.bind(r,r):De(F.get)?F.get.bind(r,r):ur,j=!De(F)&&De(F.set)?F.set.bind(r):ur,re=k({get:R,set:j});Object.defineProperty(n,G,{enumerable:!0,configurable:!0,get:()=>re.value,set:oe=>re.value=oe})}if(s)for(const G in s)JC(s[G],n,r,G);if(l){const G=De(l)?l.call(r):l;Reflect.ownKeys(G).forEach(F=>{At(F,G[F])})}c&&u_(c,e,"c");function $(G,F){be(F)?F.forEach(R=>G(R.bind(r))):F&&G(F.bind(r))}if($(Gd,f),$(wt,d),$(PI,h),$(Hu,v),$(MI,p),$(qC,g),$(II,C),$(DI,w),$(LI,x),$(Xt,y),$(ks,b),$(EI,M),be(E))if(E.length){const G=e.exposed||(e.exposed={});E.forEach(F=>{Object.defineProperty(G,F,{get:()=>r[F],set:R=>r[F]=R})})}else e.exposed||(e.exposed={});S&&e.render===ur&&(e.render=S),A!=null&&(e.inheritAttrs=A),T&&(e.components=T),D&&(e.directives=D)}function FI(e,t,r=ur,n=!1){be(e)&&(e=Ep(e));for(const i in e){const a=e[i];let o;Xe(a)?"default"in a?o=Pe(a.from||i,a.default,!0):o=Pe(a.from||i):o=Pe(a),Ct(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function u_(e,t,r){rn(be(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function JC(e,t,r,n){const i=n.includes(".")?GC(r,n):()=>r[n];if(He(e)){const a=t[e];De(a)&&xe(i,a)}else if(De(e))xe(i,e.bind(r));else if(Xe(e))if(be(e))e.forEach(a=>JC(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&xe(i,a,e)}}function jm(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>Zf(l,u,o,!0)),Zf(l,t,o)),Xe(t)&&a.set(t,l),l}function Zf(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Zf(e,a,r,!0),i&&i.forEach(o=>Zf(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=BI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const BI={data:c_,props:za,emits:za,methods:za,computed:za,beforeCreate:ir,created:ir,beforeMount:ir,mounted:ir,beforeUpdate:ir,updated:ir,beforeDestroy:ir,beforeUnmount:ir,destroyed:ir,unmounted:ir,activated:ir,deactivated:ir,errorCaptured:ir,serverPrefetch:ir,components:za,directives:za,watch:HI,provide:c_,inject:$I};function c_(e,t){return t?e?function(){return Gt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function $I(e,t){return za(Ep(e),Ep(t))}function Ep(e){if(be(e)){const t={};for(let r=0;r0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=tT(f,t,!0);Gt(o,d),h&&s.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!a&&!l)return Xe(e)&&n.set(e,ns),ns;if(be(a))for(let c=0;c-1,h[1]=p<0||v-1||We(h,"default"))&&s.push(f)}}}const u=[o,s];return Xe(e)&&n.set(e,u),u}function f_(e){return e[0]!=="$"}function d_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function h_(e,t){return d_(e)===d_(t)}function v_(e,t){return be(t)?t.findIndex(r=>h_(r,e)):De(t)&&h_(t,e)?0:-1}const rT=e=>e[0]==="_"||e==="$stable",Ym=e=>be(e)?e.map(Bn):[Bn(e)],VI=(e,t,r)=>{if(t._n)return t;const n=Z((...i)=>Ym(t(...i)),r);return n._c=!1,n},nT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(rT(i))continue;const a=e[i];if(De(a))t[i]=VI(i,a,n);else if(a!=null){const o=Ym(a);t[i]=()=>o}}},iT=(e,t)=>{const r=Ym(t);e.slots.default=()=>r},GI=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ke(t),Yf(t,"_",r)):nT(t,e.slots={})}else e.slots={},t&&iT(e,t);Yf(e.slots,Ud,1)},UI=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=yt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Gt(i,t),!r&&s===1&&delete i._):(a=!t.$stable,nT(t,i)),o=t}else t&&(iT(e,t),o={default:1});if(a)for(const s in i)!rT(s)&&!(s in o)&&delete i[s]};function aT(){return{app:null,config:{isNativeTag:wD,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let jI=0;function YI(e,t){return function(n,i=null){De(n)||(n=Object.assign({},n)),i!=null&&!Xe(i)&&(i=null);const a=aT(),o=new Set;let s=!1;const l=a.app={_uid:jI++,_component:n,_props:i,_container:null,_context:a,_instance:null,version:pO,get config(){return a.config},set config(u){},use(u,...c){return o.has(u)||(u&&De(u.install)?(o.add(u),u.install(l,...c)):De(u)&&(o.add(u),u(l,...c))),l},mixin(u){return a.mixins.includes(u)||a.mixins.push(u),l},component(u,c){return c?(a.components[u]=c,l):a.components[u]},directive(u,c){return c?(a.directives[u]=c,l):a.directives[u]},mount(u,c,f){if(!s){const d=ee(n,i);return d.appContext=a,c&&t?t(d,u):e(d,u,f),s=!0,l._container=u,u.__vue_app__=l,jd(d.component)||d.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(u,c){return a.provides[u]=c,l}};return l}}function Dp(e,t,r,n,i=!1){if(be(e)){e.forEach((d,h)=>Dp(d,t&&(be(t)?t[h]:t),r,n,i));return}if(Pl(n)&&!i)return;const a=n.shapeFlag&4?jd(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,c=s.refs===yt?s.refs={}:s.refs,f=s.setupState;if(u!=null&&u!==l&&(He(u)?(c[u]=null,We(f,u)&&(f[u]=null)):Ct(u)&&(u.value=null)),De(l))Zi(l,s,12,[o,c]);else{const d=He(l),h=Ct(l);if(d||h){const v=()=>{if(e.f){const p=d?We(f,l)?f[l]:c[l]:l.value;i?be(p)&&Lm(p,a):be(p)?p.includes(a)||p.push(a):d?(c[l]=[a],We(f,l)&&(f[l]=c[l])):(l.value=[a],e.k&&(c[e.k]=l.value))}else d?(c[l]=o,We(f,l)&&(f[l]=o)):h&&(l.value=o,e.k&&(c[e.k]=o))};o?(v.id=-1,yr(v,r)):v()}}}const yr=xI;function qI(e){return KI(e)}function KI(e,t){const r=ED();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=ur,insertStaticContent:v}=e,p=(L,I,z,U=null,K=null,ne=null,fe=!1,te=null,ie=!!I.dynamicChildren)=>{if(L===I)return;L&&!Ua(L,I)&&(U=W(L),oe(L,K,ne,!0),L=null),I.patchFlag===-2&&(ie=!1,I.dynamicChildren=null);const{type:X,ref:we,shapeFlag:he}=I;switch(X){case Ns:g(L,I,z,U);break;case Sr:m(L,I,z,U);break;case kh:L==null&&y(I,z,U,fe);break;case pt:T(L,I,z,U,K,ne,fe,te,ie);break;default:he&1?S(L,I,z,U,K,ne,fe,te,ie):he&6?D(L,I,z,U,K,ne,fe,te,ie):(he&64||he&128)&&X.process(L,I,z,U,K,ne,fe,te,ie,le)}we!=null&&K&&Dp(we,L&&L.ref,ne,I||L,!I)},g=(L,I,z,U)=>{if(L==null)n(I.el=s(I.children),z,U);else{const K=I.el=L.el;I.children!==L.children&&u(K,I.children)}},m=(L,I,z,U)=>{L==null?n(I.el=l(I.children||""),z,U):I.el=L.el},y=(L,I,z,U)=>{[L.el,L.anchor]=v(L.children,I,z,U,L.el,L.anchor)},_=({el:L,anchor:I},z,U)=>{let K;for(;L&&L!==I;)K=d(L),n(L,z,U),L=K;n(I,z,U)},b=({el:L,anchor:I})=>{let z;for(;L&&L!==I;)z=d(L),i(L),L=z;i(I)},S=(L,I,z,U,K,ne,fe,te,ie)=>{fe=fe||I.type==="svg",L==null?w(I,z,U,K,ne,fe,te,ie):M(L,I,K,ne,fe,te,ie)},w=(L,I,z,U,K,ne,fe,te)=>{let ie,X;const{type:we,props:he,shapeFlag:Se,transition:Oe,dirs:ze}=L;if(ie=L.el=o(L.type,ne,he&&he.is,he),Se&8?c(ie,L.children):Se&16&&C(L.children,ie,null,U,K,ne&&we!=="foreignObject",fe,te),ze&&ha(L,null,U,"created"),x(ie,L,L.scopeId,fe,U),he){for(const Je in he)Je!=="value"&&!mf(Je)&&a(ie,Je,null,he[Je],ne,L.children,U,K,Q);"value"in he&&a(ie,"value",null,he.value),(X=he.onVnodeBeforeMount)&&On(X,U,L)}ze&&ha(L,null,U,"beforeMount");const rt=(!K||K&&!K.pendingBranch)&&Oe&&!Oe.persisted;rt&&Oe.beforeEnter(ie),n(ie,I,z),((X=he&&he.onVnodeMounted)||rt||ze)&&yr(()=>{X&&On(X,U,L),rt&&Oe.enter(ie),ze&&ha(L,null,U,"mounted")},K)},x=(L,I,z,U,K)=>{if(z&&h(L,z),U)for(let ne=0;ne{for(let X=ie;X{const te=I.el=L.el;let{patchFlag:ie,dynamicChildren:X,dirs:we}=I;ie|=L.patchFlag&16;const he=L.props||yt,Se=I.props||yt;let Oe;z&&va(z,!1),(Oe=Se.onVnodeBeforeUpdate)&&On(Oe,z,I,L),we&&ha(I,L,z,"beforeUpdate"),z&&va(z,!0);const ze=K&&I.type!=="foreignObject";if(X?E(L.dynamicChildren,X,te,z,U,ze,ne):fe||F(L,I,te,null,z,U,ze,ne,!1),ie>0){if(ie&16)A(te,I,he,Se,z,U,K);else if(ie&2&&he.class!==Se.class&&a(te,"class",null,Se.class,K),ie&4&&a(te,"style",he.style,Se.style,K),ie&8){const rt=I.dynamicProps;for(let Je=0;Je{Oe&&On(Oe,z,I,L),we&&ha(I,L,z,"updated")},U)},E=(L,I,z,U,K,ne,fe)=>{for(let te=0;te{if(z!==U){if(z!==yt)for(const te in z)!mf(te)&&!(te in U)&&a(L,te,z[te],null,fe,I.children,K,ne,Q);for(const te in U){if(mf(te))continue;const ie=U[te],X=z[te];ie!==X&&te!=="value"&&a(L,te,X,ie,fe,I.children,K,ne,Q)}"value"in U&&a(L,"value",z.value,U.value)}},T=(L,I,z,U,K,ne,fe,te,ie)=>{const X=I.el=L?L.el:s(""),we=I.anchor=L?L.anchor:s("");let{patchFlag:he,dynamicChildren:Se,slotScopeIds:Oe}=I;Oe&&(te=te?te.concat(Oe):Oe),L==null?(n(X,z,U),n(we,z,U),C(I.children,z,we,K,ne,fe,te,ie)):he>0&&he&64&&Se&&L.dynamicChildren?(E(L.dynamicChildren,Se,z,K,ne,fe,te),(I.key!=null||K&&I===K.subTree)&&qm(L,I,!0)):F(L,I,z,we,K,ne,fe,te,ie)},D=(L,I,z,U,K,ne,fe,te,ie)=>{I.slotScopeIds=te,L==null?I.shapeFlag&512?K.ctx.activate(I,z,U,fe,ie):N(I,z,U,K,ne,fe,ie):H(L,I,ie)},N=(L,I,z,U,K,ne,fe)=>{const te=L.component=oO(L,U,K);if(Wd(L)&&(te.ctx.renderer=le),sO(te),te.asyncDep){if(K&&K.registerDep(te,$),!L.el){const ie=te.subTree=ee(Sr);m(null,ie,I,z)}return}$(te,L,I,z,K,ne,fe)},H=(L,I,z)=>{const U=I.component=L.component;if(bI(L,I,z))if(U.asyncDep&&!U.asyncResolved){G(U,I,z);return}else U.next=I,vI(U.update),U.update();else I.el=L.el,U.vnode=I},$=(L,I,z,U,K,ne,fe)=>{const te=()=>{if(L.isMounted){let{next:we,bu:he,u:Se,parent:Oe,vnode:ze}=L,rt=we,Je;va(L,!1),we?(we.el=ze.el,G(L,we,fe)):we=ze,he&&_f(he),(Je=we.props&&we.props.onVnodeBeforeUpdate)&&On(Je,Oe,we,ze),va(L,!0);const Lt=Ih(L),ve=L.subTree;L.subTree=Lt,p(ve,Lt,f(ve.el),W(ve),L,K,ne),we.el=Lt.el,rt===null&&wI(L,Lt.el),Se&&yr(Se,K),(Je=we.props&&we.props.onVnodeUpdated)&&yr(()=>On(Je,Oe,we,ze),K)}else{let we;const{el:he,props:Se}=I,{bm:Oe,m:ze,parent:rt}=L,Je=Pl(I);if(va(L,!1),Oe&&_f(Oe),!Je&&(we=Se&&Se.onVnodeBeforeMount)&&On(we,rt,I),va(L,!0),he&&J){const Lt=()=>{L.subTree=Ih(L),J(he,L.subTree,L,K,null)};Je?I.type.__asyncLoader().then(()=>!L.isUnmounted&&Lt()):Lt()}else{const Lt=L.subTree=Ih(L);p(null,Lt,z,U,L,K,ne),I.el=Lt.el}if(ze&&yr(ze,K),!Je&&(we=Se&&Se.onVnodeMounted)){const Lt=I;yr(()=>On(we,rt,Lt),K)}(I.shapeFlag&256||rt&&Pl(rt.vnode)&&rt.vnode.shapeFlag&256)&&L.a&&yr(L.a,K),L.isMounted=!0,I=z=U=null}},ie=L.effect=new Om(te,()=>zm(X),L.scope),X=L.update=()=>ie.run();X.id=L.uid,va(L,!0),X()},G=(L,I,z)=>{I.component=L;const U=L.vnode.props;L.vnode=I,L.next=null,WI(L,I.props,U,z),UI(L,I.children,z),Os(),i_(),Rs()},F=(L,I,z,U,K,ne,fe,te,ie=!1)=>{const X=L&&L.children,we=L?L.shapeFlag:0,he=I.children,{patchFlag:Se,shapeFlag:Oe}=I;if(Se>0){if(Se&128){j(X,he,z,U,K,ne,fe,te,ie);return}else if(Se&256){R(X,he,z,U,K,ne,fe,te,ie);return}}Oe&8?(we&16&&Q(X,K,ne),he!==X&&c(z,he)):we&16?Oe&16?j(X,he,z,U,K,ne,fe,te,ie):Q(X,K,ne,!0):(we&8&&c(z,""),Oe&16&&C(he,z,U,K,ne,fe,te,ie))},R=(L,I,z,U,K,ne,fe,te,ie)=>{L=L||ns,I=I||ns;const X=L.length,we=I.length,he=Math.min(X,we);let Se;for(Se=0;Sewe?Q(L,K,ne,!0,!1,he):C(I,z,U,K,ne,fe,te,ie,he)},j=(L,I,z,U,K,ne,fe,te,ie)=>{let X=0;const we=I.length;let he=L.length-1,Se=we-1;for(;X<=he&&X<=Se;){const Oe=L[X],ze=I[X]=ie?Vi(I[X]):Bn(I[X]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;X++}for(;X<=he&&X<=Se;){const Oe=L[he],ze=I[Se]=ie?Vi(I[Se]):Bn(I[Se]);if(Ua(Oe,ze))p(Oe,ze,z,null,K,ne,fe,te,ie);else break;he--,Se--}if(X>he){if(X<=Se){const Oe=Se+1,ze=OeSe)for(;X<=he;)oe(L[X],K,ne,!0),X++;else{const Oe=X,ze=X,rt=new Map;for(X=ze;X<=Se;X++){const it=I[X]=ie?Vi(I[X]):Bn(I[X]);it.key!=null&&rt.set(it.key,X)}let Je,Lt=0;const ve=Se-ze+1;let Ee=!1,je=0;const Be=new Array(ve);for(X=0;X=ve){oe(it,K,ne,!0);continue}let Mt;if(it.key!=null)Mt=rt.get(it.key);else for(Je=ze;Je<=Se;Je++)if(Be[Je-ze]===0&&Ua(it,I[Je])){Mt=Je;break}Mt===void 0?oe(it,K,ne,!0):(Be[Mt-ze]=X+1,Mt>=je?je=Mt:Ee=!0,p(it,I[Mt],z,null,K,ne,fe,te,ie),Lt++)}const nt=Ee?XI(Be):ns;for(Je=nt.length-1,X=ve-1;X>=0;X--){const it=ze+X,Mt=I[it],ri=it+1{const{el:ne,type:fe,transition:te,children:ie,shapeFlag:X}=L;if(X&6){re(L.component.subTree,I,z,U);return}if(X&128){L.suspense.move(I,z,U);return}if(X&64){fe.move(L,I,z,le);return}if(fe===pt){n(ne,I,z);for(let he=0;hete.enter(ne),K);else{const{leave:he,delayLeave:Se,afterLeave:Oe}=te,ze=()=>n(ne,I,z),rt=()=>{he(ne,()=>{ze(),Oe&&Oe()})};Se?Se(ne,ze,rt):rt()}else n(ne,I,z)},oe=(L,I,z,U=!1,K=!1)=>{const{type:ne,props:fe,ref:te,children:ie,dynamicChildren:X,shapeFlag:we,patchFlag:he,dirs:Se}=L;if(te!=null&&Dp(te,null,z,L,!0),we&256){I.ctx.deactivate(L);return}const Oe=we&1&&Se,ze=!Pl(L);let rt;if(ze&&(rt=fe&&fe.onVnodeBeforeUnmount)&&On(rt,I,L),we&6)V(L.component,z,U);else{if(we&128){L.suspense.unmount(z,U);return}Oe&&ha(L,null,I,"beforeUnmount"),we&64?L.type.remove(L,I,z,K,le,U):X&&(ne!==pt||he>0&&he&64)?Q(X,I,z,!1,!0):(ne===pt&&he&384||!K&&we&16)&&Q(ie,I,z),U&&ye(L)}(ze&&(rt=fe&&fe.onVnodeUnmounted)||Oe)&&yr(()=>{rt&&On(rt,I,L),Oe&&ha(L,null,I,"unmounted")},z)},ye=L=>{const{type:I,el:z,anchor:U,transition:K}=L;if(I===pt){Ae(z,U);return}if(I===kh){b(L);return}const ne=()=>{i(z),K&&!K.persisted&&K.afterLeave&&K.afterLeave()};if(L.shapeFlag&1&&K&&!K.persisted){const{leave:fe,delayLeave:te}=K,ie=()=>fe(z,ne);te?te(L.el,ne,ie):ie()}else ne()},Ae=(L,I)=>{let z;for(;L!==I;)z=d(L),i(L),L=z;i(I)},V=(L,I,z)=>{const{bum:U,scope:K,update:ne,subTree:fe,um:te}=L;U&&_f(U),K.stop(),ne&&(ne.active=!1,oe(fe,L,I,z)),te&&yr(te,I),yr(()=>{L.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Q=(L,I,z,U=!1,K=!1,ne=0)=>{for(let fe=ne;feL.shapeFlag&6?W(L.component.subTree):L.shapeFlag&128?L.suspense.next():d(L.anchor||L.el),q=(L,I,z)=>{L==null?I._vnode&&oe(I._vnode,null,null,!0):p(I._vnode||null,L,I,null,null,null,z),i_(),HC(),I._vnode=L},le={p,um:oe,m:re,r:ye,mt:N,mc:C,pc:F,pbc:E,n:W,o:e};let de,J;return t&&([de,J]=t(le)),{render:q,hydrate:de,createApp:YI(q,de)}}function va({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function qm(e,t,r=!1){const n=e.children,i=t.children;if(be(n)&&be(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}const ZI=e=>e.__isTeleport,Ll=e=>e&&(e.disabled||e.disabled===""),p_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ip=(e,t)=>{const r=e&&e.to;return He(r)?t?t(r):null:r},QI={__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:v,createText:p,createComment:g}}=u,m=Ll(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const S=t.el=p(""),w=t.anchor=p("");h(S,r,n),h(w,r,n);const x=t.target=Ip(t.props,v),C=t.targetAnchor=p("");x&&(h(C,x),o=o||p_(x));const M=(E,A)=>{y&16&&c(_,E,A,i,a,o,s,l)};m?M(r,w):x&&M(x,C)}else{t.el=e.el;const S=t.anchor=e.anchor,w=t.target=e.target,x=t.targetAnchor=e.targetAnchor,C=Ll(e.props),M=C?r:w,E=C?S:x;if(o=o||p_(w),b?(d(e.dynamicChildren,b,M,i,a,o,s),qm(e,t,!0)):l||f(e,t,M,E,i,a,o,s,!1),m)C||pc(t,r,S,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=Ip(t.props,v);A&&pc(t,A,null,u,0)}else C&&pc(t,w,x,u,1)}oT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&a(c),(o||!Ll(d))&&(a(u),s&16))for(let h=0;h0?wn||ns:null,tO(),lu>0&&wn&&wn.push(e),e}function me(e,t,r,n,i,a){return sT(ae(e,t,r,n,i,a,!0))}function _e(e,t,r,n,i){return sT(ee(e,t,r,n,i,!0))}function ta(e){return e?e.__v_isVNode===!0:!1}function Ua(e,t){return e.type===t.type&&e.key===t.key}const Ud="__vInternal",lT=({key:e})=>e??null,bf=({ref:e,ref_key:t,ref_for:r})=>e!=null?He(e)||Ct(e)||De(e)?{i:qt,r:e,k:t,f:!!r}:e:null;function ae(e,t=null,r=null,n=0,i=null,a=e===pt?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&lT(t),ref:t&&bf(t),scopeId:VC,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:qt};return s?(Km(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=He(r)?8:16),lu>0&&!o&&wn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&wn.push(l),l}const ee=rO;function rO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===XC)&&(e=Sr),ta(e)){const s=mi(e,t,!0);return r&&Km(s,r),lu>0&&!a&&wn&&(s.shapeFlag&6?wn[wn.indexOf(e)]=s:wn.push(s)),s.patchFlag|=-2,s}if(fO(e)&&(e=e.__vccOpts),t){t=nO(t);let{class:s,style:l}=t;s&&!He(s)&&(t.class=ue(s)),Xe(l)&&(DC(l)&&!be(l)&&(l=Gt({},l)),t.style=xt(l))}const o=He(e)?1:SI(e)?128:ZI(e)?64:Xe(e)?4:De(e)?2:0;return ae(e,t,r,n,i,o,a,!0)}function nO(e){return e?DC(e)||Ud in e?Gt({},e):e:null}function mi(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ca(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&lT(s),ref:t&&t.ref?r&&i?be(i)?i.concat(bf(t)):[i,bf(t)]:bf(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pt?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mi(e.ssContent),ssFallback:e.ssFallback&&mi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Bt(e=" ",t=0){return ee(Ns,null,e,t)}function Fe(e="",t=!1){return t?(Y(),_e(Sr,null,e)):ee(Sr,null,e)}function Bn(e){return e==null||typeof e=="boolean"?ee(Sr):be(e)?ee(pt,null,e.slice()):typeof e=="object"?Vi(e):ee(Ns,null,String(e))}function Vi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mi(e)}function Km(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(be(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Km(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Ud in t)?t._ctx=qt:i===3&&qt&&(qt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:qt},r=32):(t=String(t),n&64?(r=16,t=[Bt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ca(...e){const t={};for(let r=0;rIt||qt,ps=e=>{It=e,e.scope.on()},ao=()=>{It&&It.scope.off(),It=null};function uT(e){return e.vnode.shapeFlag&4}let uu=!1;function sO(e,t=!1){uu=t;const{props:r,children:n}=e.vnode,i=uT(e);zI(e,r,i,t),GI(e,n);const a=i?lO(e,t):void 0;return uu=!1,a}function lO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=IC(new Proxy(e.ctx,kI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?fT(e):null;ps(e),Os();const a=Zi(n,e,0,[e.props,i]);if(Rs(),ao(),jf(a)){if(a.then(ao,ao),t)return a.then(o=>{m_(e,o,t)}).catch(o=>{Hd(o,e,0)});e.asyncDep=a}else m_(e,a,t)}else cT(e,t)}function m_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Xe(t)&&(e.setupState=NC(t)),cT(e,r)}let y_;function cT(e,t,r){const n=e.type;if(!e.render){if(!t&&y_&&!n.render){const i=n.template||jm(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Gt(Gt({isCustomElement:a,delimiters:s},o),l);n.render=y_(i,u)}}e.render=n.render||ur}ps(e),Os(),NI(e),Rs(),ao()}function uO(e){return new Proxy(e.attrs,{get(t,r){return Mr(e,"get","$attrs"),t[r]}})}function fT(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=uO(e))},slots:e.slots,emit:e.emit,expose:t}}function jd(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(NC(IC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in El)return El[r](e)},has(t,r){return r in t||r in El}}))}function cO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function fO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>cI(e,t,uu);function Yd(){return dO().slots}function dO(){const e=ct();return e.setupContext||(e.setupContext=fT(e))}function Ce(e,t,r){const n=arguments.length;return n===2?Xe(t)&&!be(t)?ta(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&ta(r)&&(r=[r]),ee(e,t,r))}const hO=Symbol(""),vO=()=>Pe(hO),pO="3.2.47",gO="http://www.w3.org/2000/svg",ja=typeof document<"u"?document:null,__=ja&&ja.createElement("template"),mO={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t?ja.createElementNS(gO,e):ja.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>ja.createTextNode(e),createComment:e=>ja.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ja.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{__.innerHTML=n?`${e}`:e;const s=__.content;if(n){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function yO(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function _O(e,t,r){const n=e.style,i=He(r);if(r&&!i){if(t&&!He(t))for(const a in t)r[a]==null&&Op(n,a,"");for(const a in r)Op(n,a,r[a])}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const b_=/\s*!important$/;function Op(e,t,r){if(be(r))r.forEach(n=>Op(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=bO(e,t);b_.test(r)?e.setProperty(So(n),r.replace(b_,""),"important"):e[n]=r}}const w_=["Webkit","Moz","ms"],Nh={};function bO(e,t){const r=Nh[t];if(r)return r;let n=An(t);if(n!=="filter"&&n in e)return Nh[t]=n;n=Fd(n);for(let i=0;iFh||(MO.then(()=>Fh=0),Fh=Date.now());function PO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;rn(EO(n,r.value),t,5,[n])};return r.value=e,r.attached=AO(),r}function EO(e,t){if(be(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const C_=/^on[a-z]/,LO=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?yO(e,n,i):t==="style"?_O(e,r,n):Rd(t)?Em(t)||CO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):DO(e,t,n,i))?SO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),wO(e,t,n,i))};function DO(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&C_.test(t)&&De(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||C_.test(t)&&He(r)?!1:t in e}const Li="transition",Ys="animation",Ci=(e,{slots:t})=>Ce(jC,vT(e),t);Ci.displayName="Transition";const hT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},IO=Ci.props=Gt({},jC.props,hT),pa=(e,t=[])=>{be(e)?e.forEach(r=>r(...t)):e&&e(...t)},T_=e=>e?be(e)?e.some(t=>t.length>1):e.length>1:!1;function vT(e){const t={};for(const T in e)T in hT||(t[T]=e[T]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:c=s,leaveFromClass:f=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,v=OO(i),p=v&&v[0],g=v&&v[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:S,onBeforeAppear:w=m,onAppear:x=y,onAppearCancelled:C=_}=t,M=(T,D,N)=>{Bi(T,D?c:s),Bi(T,D?u:o),N&&N()},E=(T,D)=>{T._isLeaving=!1,Bi(T,f),Bi(T,h),Bi(T,d),D&&D()},A=T=>(D,N)=>{const H=T?x:y,$=()=>M(D,T,N);pa(H,[D,$]),M_(()=>{Bi(D,T?l:a),li(D,T?c:s),T_(H)||A_(D,n,p,$)})};return Gt(t,{onBeforeEnter(T){pa(m,[T]),li(T,a),li(T,o)},onBeforeAppear(T){pa(w,[T]),li(T,l),li(T,u)},onEnter:A(!1),onAppear:A(!0),onLeave(T,D){T._isLeaving=!0;const N=()=>E(T,D);li(T,f),gT(),li(T,d),M_(()=>{T._isLeaving&&(Bi(T,f),li(T,h),T_(b)||A_(T,n,g,N))}),pa(b,[T,N])},onEnterCancelled(T){M(T,!1),pa(_,[T])},onAppearCancelled(T){M(T,!0),pa(C,[T])},onLeaveCancelled(T){E(T),pa(S,[T])}})}function OO(e){if(e==null)return null;if(Xe(e))return[Bh(e.enter),Bh(e.leave)];{const t=Bh(e);return[t,t]}}function Bh(e){return PD(e)}function li(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Bi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function M_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let RO=0;function A_(e,t,r,n){const i=e._endId=++RO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=pT(e,t);if(!o)return n();const u=o+"end";let c=0;const f=()=>{e.removeEventListener(u,d),a()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(r[v]||"").split(", "),i=n(`${Li}Delay`),a=n(`${Li}Duration`),o=P_(i,a),s=n(`${Ys}Delay`),l=n(`${Ys}Duration`),u=P_(s,l);let c=null,f=0,d=0;t===Li?o>0&&(c=Li,f=o,d=a.length):t===Ys?u>0&&(c=Ys,f=u,d=l.length):(f=Math.max(o,u),c=f>0?o>u?Li:Ys:null,d=c?c===Li?a.length:l.length:0);const h=c===Li&&/\b(transform|all)(,|$)/.test(n(`${Li}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function P_(e,t){for(;e.lengthE_(r)+E_(e[n])))}function E_(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function gT(){return document.body.offsetHeight}const mT=new WeakMap,yT=new WeakMap,_T={name:"TransitionGroup",props:Gt({},IO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=ct(),n=UC();let i,a;return Hu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!HO(i[0].el,r.vnode.el,o))return;i.forEach(FO),i.forEach(BO);const s=i.filter($O);gT(),s.forEach(l=>{const u=l.el,c=u.style;li(u,o),c.transform=c.webkitTransform=c.transitionDuration="";const f=u._moveCb=d=>{d&&d.target!==u||(!d||/transform$/.test(d.propertyName))&&(u.removeEventListener("transitionend",f),u._moveCb=null,Bi(u,o))};u.addEventListener("transitionend",f)})}),()=>{const o=Ke(e),s=vT(o);let l=o.tag||pt;i=a,a=t.default?Vm(t.default()):[];for(let u=0;udelete e.mode;_T.props;const NO=_T;function FO(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function BO(e){yT.set(e,e.el.getBoundingClientRect())}function $O(e){const t=mT.get(e),r=yT.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function HO(e,t,r){const n=e.cloneNode();e._vtc&&e._vtc.forEach(o=>{o.split(/\s+/).forEach(s=>s&&n.classList.remove(s))}),r.split(/\s+/).forEach(o=>o&&n.classList.add(o)),n.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(n);const{hasTransform:a}=pT(n);return i.removeChild(n),a}const L_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return be(t)?r=>_f(t,r):t},Qf={deep:!0,created(e,t,r){e._assign=L_(r),dT(e,"change",()=>{const n=e._modelValue,i=zO(e),a=e.checked,o=e._assign;if(be(n)){const s=pC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(kd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(bT(e,a))})},mounted:D_,beforeUpdate(e,t,r){e._assign=L_(r),D_(e,t,r)}};function D_(e,{value:t,oldValue:r},n){e._modelValue=t,be(t)?e.checked=pC(t,n.props.value)>-1:kd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=Od(t,bT(e,!0)))}function zO(e){return"_value"in e?e._value:e.value}function bT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const WO=["ctrl","shift","alt","meta"],VO={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>WO.some(r=>e[`${r}Key`]&&!t.includes(r))},Jf=(e,t)=>(r,...n)=>{for(let i=0;ir=>{if(!("key"in r))return;const n=So(r.key);if(t.some(i=>i===n||GO[i]===n))return e(r)},yi={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):qs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),qs(e,!0),n.enter(e)):n.leave(e,()=>{qs(e,!1)}):qs(e,t))},beforeUnmount(e,{value:t}){qs(e,t)}};function qs(e,t){e.style.display=t?e._vod:"none"}const jO=Gt({patchProp:LO},mO);let I_;function wT(){return I_||(I_=qI(jO))}const O_=(...e)=>{wT().render(...e)},YO=(...e)=>{const t=wT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=qO(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function qO(e){return He(e)?document.querySelector(e):e}const wf=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},fi=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var R_;const Nt=typeof window<"u",Br=e=>typeof e=="boolean",KO=e=>typeof e=="function",$t=e=>typeof e=="number",XO=e=>typeof e=="string",Rp=()=>{};Nt&&((R_=window==null?void 0:window.navigator)!=null&&R_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ho(e){return typeof e=="function"?e():P(e)}function ST(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const xT=e=>e();function ZO(e,t={}){let r,n,i=Rp;const a=s=>{clearTimeout(s),i(),i=Rp};return s=>{const l=ho(e),u=ho(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((c,f)=>{i=t.rejectOnCancel?f:c,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,c(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,c(s())},l)})}}function QO(e=xT){const t=B(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:$u(t),pause:r,resume:n,eventFilter:i}}function JO(e){return e}function zu(e){return _C()?(ID(e),!0):!1}function eR(e,t=200,r={}){return ST(ZO(t,r),e)}function tR(e,t=200,r={}){const n=B(e.value),i=eR(()=>{n.value=e.value},t,r);return xe(e,()=>i()),n}function rR(e){return typeof e=="function"?k(e):B(e)}function CT(e,t=!0){ct()?wt(e):t?e():Ft(e)}function kp(e,t,r={}){const{immediate:n=!0}=r,i=B(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},ho(t))}return n&&(i.value=!0,Nt&&l()),zu(s),{isPending:$u(i),start:l,stop:s}}function nR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Ct(e),a=B(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=ho(r);return a.value=a.value===l?ho(n):l,a.value}}return i?o:[a,o]}var k_=Object.getOwnPropertySymbols,iR=Object.prototype.hasOwnProperty,aR=Object.prototype.propertyIsEnumerable,oR=(e,t)=>{var r={};for(var n in e)iR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&k_)for(var n of k_(e))t.indexOf(n)<0&&aR.call(e,n)&&(r[n]=e[n]);return r};function sR(e,t,r={}){const n=r,{eventFilter:i=xT}=n,a=oR(n,["eventFilter"]);return xe(e,ST(i,t),a)}var lR=Object.defineProperty,uR=Object.defineProperties,cR=Object.getOwnPropertyDescriptors,ed=Object.getOwnPropertySymbols,TT=Object.prototype.hasOwnProperty,MT=Object.prototype.propertyIsEnumerable,N_=(e,t,r)=>t in e?lR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fR=(e,t)=>{for(var r in t||(t={}))TT.call(t,r)&&N_(e,r,t[r]);if(ed)for(var r of ed(t))MT.call(t,r)&&N_(e,r,t[r]);return e},dR=(e,t)=>uR(e,cR(t)),hR=(e,t)=>{var r={};for(var n in e)TT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ed)for(var n of ed(e))t.indexOf(n)<0&&MT.call(e,n)&&(r[n]=e[n]);return r};function vR(e,t,r={}){const n=r,{eventFilter:i}=n,a=hR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=QO(i);return{stop:sR(e,t,dR(fR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Ui(e){var t;const r=ho(e);return(t=r==null?void 0:r.$el)!=null?t:r}const ra=Nt?window:void 0;function Sn(...e){let t,r,n,i;if(XO(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=ra):[t,r,n,i]=e,!t)return Rp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(c=>c()),a.length=0},s=(c,f,d)=>(c.addEventListener(f,d,i),()=>c.removeEventListener(f,d,i)),l=xe(()=>Ui(t),c=>{o(),c&&a.push(...r.flatMap(f=>n.map(d=>s(c,f,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return zu(u),u}function pR(e,t,r={}){const{window:n=ra,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=h=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===h.target||h.composedPath().includes(p));{const p=Ui(v);return p&&(h.target===p||h.composedPath().includes(p))}}),c=h=>{n.clearTimeout(l);const v=Ui(e);if(!(!v||v===h.target||h.composedPath().includes(v))){if(h.detail===0&&(s=!u(h)),!s){s=!0;return}t(h)}},f=[Sn(n,"click",c,{passive:!0,capture:a}),Sn(n,"pointerdown",h=>{const v=Ui(e);v&&(s=!h.composedPath().includes(v)&&!u(h))},{passive:!0}),Sn(n,"pointerup",h=>{if(h.button===0){const v=h.composedPath();h.composedPath=()=>v,l=n.setTimeout(()=>c(h),50)}},{passive:!0}),o&&Sn(n,"blur",h=>{var v;const p=Ui(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(h)})].filter(Boolean);return()=>f.forEach(h=>h())}function AT(e,t=!1){const r=B(),n=()=>r.value=Boolean(e());return n(),CT(n,t),r}function gR(e,t={}){const{window:r=ra}=t,n=AT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=B(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(rR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return io(s),zu(()=>o()),a}const Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Fp="__vueuse_ssr_handlers__";Np[Fp]=Np[Fp]||{};const mR=Np[Fp];function PT(e,t){return mR[e]||t}function yR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var _R=Object.defineProperty,F_=Object.getOwnPropertySymbols,bR=Object.prototype.hasOwnProperty,wR=Object.prototype.propertyIsEnumerable,B_=(e,t,r)=>t in e?_R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$_=(e,t)=>{for(var r in t||(t={}))bR.call(t,r)&&B_(e,r,t[r]);if(F_)for(var r of F_(t))wR.call(t,r)&&B_(e,r,t[r]);return e};const SR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function xR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=ra,eventFilter:d,onError:h=x=>{console.error(x)}}=n,v=(c?$m:B)(t);if(!r)try{r=PT("getDefaultStorage",()=>{var x;return(x=ra)==null?void 0:x.localStorage})()}catch(x){h(x)}if(!r)return v;const p=ho(t),g=yR(p),m=(i=n.serializer)!=null?i:SR[g],{pause:y,resume:_}=vR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:d});return f&&s&&Sn(f,"storage",w),w(),v;function b(x){try{if(x==null)r.removeItem(e);else{const C=m.write(x),M=r.getItem(e);M!==C&&(r.setItem(e,C),f&&(f==null||f.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){h(C)}}function S(x){const C=x?x.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,m.write(p)),p;if(!x&&u){const M=m.read(C);return KO(u)?u(M,p):g==="object"&&!Array.isArray(M)?$_($_({},p),M):M}else return typeof C!="string"?C:m.read(C)}function w(x){if(!(x&&x.storageArea!==r)){if(x&&x.key==null){v.value=p;return}if(!(x&&x.key!==e)){y();try{v.value=S(x)}catch(C){h(C)}finally{x?Ft(_):_()}}}}}function ET(e){return gR("(prefers-color-scheme: dark)",e)}var CR=Object.defineProperty,H_=Object.getOwnPropertySymbols,TR=Object.prototype.hasOwnProperty,MR=Object.prototype.propertyIsEnumerable,z_=(e,t,r)=>t in e?CR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,AR=(e,t)=>{for(var r in t||(t={}))TR.call(t,r)&&z_(e,r,t[r]);if(H_)for(var r of H_(t))MR.call(t,r)&&z_(e,r,t[r]);return e};function PR(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=ra,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,c=AR({auto:"",light:"light",dark:"dark"},e.modes||{}),f=ET({window:i}),d=k(()=>f.value?"dark":"light"),h=l||(o==null?B(n):xR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return h.value==="auto"&&!u?d.value:h.value},set(y){h.value=y}}),p=PT("updateHTMLAttrs",(y,_,b)=>{const S=i==null?void 0:i.document.querySelector(y);if(S)if(_==="class"){const w=b.split(/\s/g);Object.values(c).flatMap(x=>(x||"").split(/\s/g)).filter(Boolean).forEach(x=>{w.includes(x)?S.classList.add(x):S.classList.remove(x)})}else S.setAttribute(_,b)});function g(y){var _;const b=y==="auto"?d.value:y;p(t,r,(_=c[b])!=null?_:b)}function m(y){e.onChanged?e.onChanged(y,g):g(y)}return xe(v,m,{flush:"post",immediate:!0}),u&&xe(d,()=>m(v.value),{flush:"post"}),CT(()=>m(v.value)),v}var ER=Object.defineProperty,LR=Object.defineProperties,DR=Object.getOwnPropertyDescriptors,W_=Object.getOwnPropertySymbols,IR=Object.prototype.hasOwnProperty,OR=Object.prototype.propertyIsEnumerable,V_=(e,t,r)=>t in e?ER(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,RR=(e,t)=>{for(var r in t||(t={}))IR.call(t,r)&&V_(e,r,t[r]);if(W_)for(var r of W_(t))OR.call(t,r)&&V_(e,r,t[r]);return e},kR=(e,t)=>LR(e,DR(t));function NR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=ra}=e,i=PR(kR(RR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=ET({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var G_=Object.getOwnPropertySymbols,FR=Object.prototype.hasOwnProperty,BR=Object.prototype.propertyIsEnumerable,$R=(e,t)=>{var r={};for(var n in e)FR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&G_)for(var n of G_(e))t.indexOf(n)<0&&BR.call(e,n)&&(r[n]=e[n]);return r};function gs(e,t,r={}){const n=r,{window:i=ra}=n,a=$R(n,["window"]);let o;const s=AT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=xe(()=>Ui(e),f=>{l(),s.value&&i&&f&&(o=new ResizeObserver(t),o.observe(f,a))},{immediate:!0,flush:"post"}),c=()=>{l(),u()};return zu(c),{isSupported:s,stop:c}}var U_;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(U_||(U_={}));var HR=Object.defineProperty,j_=Object.getOwnPropertySymbols,zR=Object.prototype.hasOwnProperty,WR=Object.prototype.propertyIsEnumerable,Y_=(e,t,r)=>t in e?HR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,VR=(e,t)=>{for(var r in t||(t={}))zR.call(t,r)&&Y_(e,r,t[r]);if(j_)for(var r of j_(t))WR.call(t,r)&&Y_(e,r,t[r]);return e};const GR={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};VR({linear:JO},GR);var UR=typeof global=="object"&&global&&global.Object===Object&&global;const LT=UR;var jR=typeof self=="object"&&self&&self.Object===Object&&self,YR=LT||jR||Function("return this")();const En=YR;var qR=En.Symbol;const sn=qR;var DT=Object.prototype,KR=DT.hasOwnProperty,XR=DT.toString,Ks=sn?sn.toStringTag:void 0;function ZR(e){var t=KR.call(e,Ks),r=e[Ks];try{e[Ks]=void 0;var n=!0}catch{}var i=XR.call(e);return n&&(t?e[Ks]=r:delete e[Ks]),i}var QR=Object.prototype,JR=QR.toString;function ek(e){return JR.call(e)}var tk="[object Null]",rk="[object Undefined]",q_=sn?sn.toStringTag:void 0;function xo(e){return e==null?e===void 0?rk:tk:q_&&q_ in Object(e)?ZR(e):ek(e)}function qn(e){return e!=null&&typeof e=="object"}var nk="[object Symbol]";function qd(e){return typeof e=="symbol"||qn(e)&&xo(e)==nk}function IT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=kk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function $k(e){return function(){return e}}var Hk=function(){try{var e=To(Object,"defineProperty");return e({},"",{}),e}catch{}}();const td=Hk;var zk=td?function(e,t){return td(e,"toString",{configurable:!0,enumerable:!1,value:$k(t),writable:!0})}:Xm;const Wk=zk;var Vk=Bk(Wk);const kT=Vk;function Gk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=Xk}function Fs(e){return e!=null&&ey(e.length)&&!Zm(e)}function Zk(e,t,r){if(!Ar(r))return!1;var n=typeof t;return(n=="number"?Fs(r)&&Kd(t,r.length):n=="string"&&t in r)?Wu(r[t],e):!1}function Qk(e){return Kk(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&Zk(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function vF(e,t){var r=this.__data__,n=Xd(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Ti(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?ly(s,t-1,r,n,i):sy(i,s):n||(i[i.length]=s)}return i}function IF(e){var t=e==null?0:e.length;return t?ly(e,1):[]}function OF(e){return kT(NT(e,void 0,IF),e+"")}var RF=zT(Object.getPrototypeOf,Object);const uy=RF;var kF="[object Object]",NF=Function.prototype,FF=Object.prototype,WT=NF.toString,BF=FF.hasOwnProperty,$F=WT.call(Object);function HF(e){if(!qn(e)||xo(e)!=kF)return!1;var t=uy(e);if(t===null)return!0;var r=BF.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&WT.call(r)==$F}function $p(){if(!arguments.length)return[];var e=arguments[0];return fr(e)?e:[e]}function zF(){this.__data__=new Ti,this.size=0}function WF(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function VF(e){return this.__data__.get(e)}function GF(e){return this.__data__.has(e)}var UF=200;function jF(e,t){var r=this.__data__;if(r instanceof Ti){var n=r.__data__;if(!hu||n.lengths))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,h=r&E$?new nd:void 0;for(a.set(e,t),a.set(t,e);++f=t||x<0||f&&C>=a}function m(){var w=Wh();if(g(w))return y(w);s=setTimeout(m,p(w))}function y(w){return s=void 0,d&&n?h(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(Wh())}function S(){var w=Wh(),x=g(w);if(n=arguments,i=this,l=w,x){if(s===void 0)return v(l);if(f)return clearTimeout(s),s=setTimeout(m,t),h(l)}return s===void 0&&(s=setTimeout(m,t)),o}return S.cancel=_,S.flush=b,S}function Gp(e,t,r){(r!==void 0&&!Wu(e[t],r)||r===void 0&&!(t in e))&&Qm(e,t,r)}function x5(e){return qn(e)&&Fs(e)}function Up(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function C5(e){return Vu(e,Uu(e))}function T5(e,t,r,n,i,a,o){var s=Up(e,r),l=Up(t,r),u=o.get(l);if(u){Gp(e,r,u);return}var c=a?a(s,l,r+"",e,t,o):void 0,f=c===void 0;if(f){var d=fr(l),h=!d&&fu(l),v=!d&&!h&&ny(l);c=l,d||h||v?fr(s)?c=s:x5(s)?c=RT(s):h?(f=!1,c=GT(l,!0)):v?(f=!1,c=qT(l,!0)):c=[]:HF(l)||cu(l)?(c=s,cu(s)?c=C5(s):(!Ar(s)||Zm(s))&&(c=KT(l))):f=!1}f&&(o.set(l,c),i(c,l,n,a,o),o.delete(l)),Gp(e,r,c)}function iM(e,t,r,n,i){e!==t&&nM(t,function(a,o){if(i||(i=new Mn),Ar(a))T5(e,t,o,r,iM,n,i);else{var s=n?n(Up(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),Gp(e,o,s)}},Uu)}function M5(e,t){var r=-1,n=Fs(e)?Array(e.length):[];return y5(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function A5(e,t){var r=fr(e)?IT:M5;return r(e,d5(t))}function P5(e,t){return ly(A5(e,t),1)}function jp(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,ys=e=>typeof Element>"u"?!1:e instanceof Element,F5=e=>He(e)?!Number.isNaN(Number(e)):!1,Tb=e=>Object.keys(e),xf=(e,t,r)=>({get value(){return vu(e,t,r)},set value(n){N5(e,t,n)}});class B5 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function na(e,t){throw new B5(`[${e}] ${t}`)}const sM=(e="")=>e.split(" ").filter(t=>!!t.trim()),Ol=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Zo=(e,t)=>{!e||!t.trim()||e.classList.add(...sM(t))},ss=(e,t)=>{!e||!t.trim()||e.classList.remove(...sM(t))},Mb=(e,t)=>{var r;if(!Nt||!e||!t)return"";let n=An(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function po(e,t="px"){if(!e)return"";if($t(e)||F5(e))return`${e}${t}`;if(He(e))return e}/*! Element Plus Icons Vue v2.0.10 */var Zn=(e,t)=>{let r=e.__vccOpts||e;for(let[n,i]of t)r[n]=i;return r},$5={name:"ArrowDown"},H5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z5=ae("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),W5=[z5];function V5(e,t,r,n,i,a){return Y(),me("svg",H5,W5)}var lM=Zn($5,[["render",V5],["__file","arrow-down.vue"]]),G5={name:"ArrowRight"},U5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},j5=ae("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),Y5=[j5];function q5(e,t,r,n,i,a){return Y(),me("svg",U5,Y5)}var dy=Zn(G5,[["render",q5],["__file","arrow-right.vue"]]),K5={name:"ArrowUp"},X5={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z5=ae("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),Q5=[Z5];function J5(e,t,r,n,i,a){return Y(),me("svg",X5,Q5)}var e3=Zn(K5,[["render",J5],["__file","arrow-up.vue"]]),t3={name:"CircleCloseFilled"},r3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),i3=[n3];function a3(e,t,r,n,i,a){return Y(),me("svg",r3,i3)}var uM=Zn(t3,[["render",a3],["__file","circle-close-filled.vue"]]),o3={name:"Close"},s3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l3=ae("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),u3=[l3];function c3(e,t,r,n,i,a){return Y(),me("svg",s3,u3)}var Yp=Zn(o3,[["render",c3],["__file","close.vue"]]),f3={name:"InfoFilled"},d3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),v3=[h3];function p3(e,t,r,n,i,a){return Y(),me("svg",d3,v3)}var cM=Zn(f3,[["render",p3],["__file","info-filled.vue"]]),g3={name:"Loading"},m3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},y3=ae("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),_3=[y3];function b3(e,t,r,n,i,a){return Y(),me("svg",m3,_3)}var hy=Zn(g3,[["render",b3],["__file","loading.vue"]]),w3={name:"More"},S3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},x3=ae("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),C3=[x3];function T3(e,t,r,n,i,a){return Y(),me("svg",S3,C3)}var M3=Zn(w3,[["render",T3],["__file","more.vue"]]),A3={name:"SuccessFilled"},P3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},E3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),L3=[E3];function D3(e,t,r,n,i,a){return Y(),me("svg",P3,L3)}var fM=Zn(A3,[["render",D3],["__file","success-filled.vue"]]),I3={name:"WarningFilled"},O3={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R3=ae("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),k3=[R3];function N3(e,t,r,n,i,a){return Y(),me("svg",O3,k3)}var dM=Zn(I3,[["render",N3],["__file","warning-filled.vue"]]);const hM="__epPropKey",Le=e=>e,F3=e=>Xe(e)&&!!e[hM],eh=(e,t)=>{if(!Xe(e)||F3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let c=!1,f=[];if(r&&(f=Array.from(r),We(e,"default")&&f.push(i),c||(c=f.includes(u))),o&&(c||(c=o(u))),!c&&f.length>0){const d=[...new Set(f)].map(h=>JSON.stringify(h)).join(", ");fI(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[hM]:!0};return We(e,"default")&&(l.default=i),l},tt=e=>jp(Object.entries(e).map(([t,r])=>[t,eh(r,t)])),Wn=Le([String,Object,Function]),B3={Close:Yp,SuccessFilled:fM,InfoFilled:cM,WarningFilled:dM,CircleCloseFilled:uM},Ab={success:fM,warning:dM,error:uM,info:cM},hr=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},$3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),H3=(e,t)=>(e.install=r=>{r.directive(t,e)},e),fa=e=>(e.install=ur,e),Ot={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},go="update:modelValue",qp="change",Kp="input",Yu=["","default","small","large"],z3=e=>["",...Yu].includes(e),Cf=e=>{const t=be(e)?e:[e],r=[];return t.forEach(n=>{var i;be(n)?r.push(...Cf(n)):ta(n)&&be(n.children)?r.push(...Cf(n.children)):(r.push(n),ta(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Cf(n.component.subTree)))}),r},Ya=e=>e,vy=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{xe(()=>P(o),s=>{},{immediate:!0})};var W3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const V3=e=>(t,r)=>G3(t,r,P(e)),G3=(e,t,r)=>vu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),U3=e=>{const t=k(()=>P(e).name),r=Ct(e)?e:B(e);return{lang:t,locale:r,t:V3(e)}},vM=Symbol("localeContextKey"),py=e=>{const t=e||Pe(vM,B());return U3(k(()=>t.value||W3))},Xp="el",j3="is-",ga=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},pM=Symbol("namespaceContextKey"),gy=e=>{const t=e||Pe(pM,B(Xp));return k(()=>P(t)||Xp)},Ne=(e,t)=>{const r=gy(t);return{namespace:r,b:(p="")=>ga(r.value,e,p,"",""),e:p=>p?ga(r.value,e,"",p,""):"",m:p=>p?ga(r.value,e,"","",p):"",be:(p,g)=>p&&g?ga(r.value,e,p,g,""):"",em:(p,g)=>p&&g?ga(r.value,e,"",p,g):"",bm:(p,g)=>p&&g?ga(r.value,e,p,"",g):"",bem:(p,g,m)=>p&&g&&m?ga(r.value,e,p,g,m):"",is:(p,...g)=>{const m=g.length>=1?g[0]:!0;return p&&m?`${j3}${p}`:""},cssVar:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${m}`]=p[m]);return g},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const g={};for(const m in p)p[m]&&(g[`--${r.value}-${e}-${m}`]=p[m]);return g},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},Y3=eh({type:Le(Boolean),default:null}),q3=eh({type:Le(Function)}),K3=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:Y3,[r]:q3};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:c,onHide:f})=>{const d=ct(),{emit:h}=d,v=d.props,p=k(()=>De(v[r])),g=k(()=>v[e]===null),m=x=>{o.value!==!0&&(o.value=!0,s&&(s.value=x),De(c)&&c(x))},y=x=>{o.value!==!1&&(o.value=!1,s&&(s.value=x),De(f)&&f(x))},_=x=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&Nt;C&&h(t,!0),(g.value||!C)&&m(x)},b=x=>{if(v.disabled===!0||!Nt)return;const C=p.value&&Nt;C&&h(t,!1),(g.value||!C)&&y(x)},S=x=>{Br(x)&&(v.disabled&&x?p.value&&h(t,!1):o.value!==x&&(x?m():y()))},w=()=>{o.value?b():_()};return xe(()=>v[e],S),l&&d.appContext.config.globalProperties.$route!==void 0&&xe(()=>({...d.proxy.$route}),()=>{l.value&&o.value&&b()}),wt(()=>{S(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}},gM=e=>{const t=ct();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var xr="top",ln="bottom",un="right",Cr="left",my="auto",qu=[xr,ln,un,Cr],_s="start",mu="end",X3="clippingParents",mM="viewport",Xs="popper",Z3="reference",Pb=qu.reduce(function(e,t){return e.concat([t+"-"+_s,t+"-"+mu])},[]),yy=[].concat(qu,[my]).reduce(function(e,t){return e.concat([t,t+"-"+_s,t+"-"+mu])},[]),Q3="beforeRead",J3="read",e4="afterRead",t4="beforeMain",r4="main",n4="afterMain",i4="beforeWrite",a4="write",o4="afterWrite",s4=[Q3,J3,e4,t4,r4,n4,i4,a4,o4];function Kn(e){return e?(e.nodeName||"").toLowerCase():null}function Ln(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bs(e){var t=Ln(e).Element;return e instanceof t||e instanceof Element}function an(e){var t=Ln(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function _y(e){if(typeof ShadowRoot>"u")return!1;var t=Ln(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function l4(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!an(a)||!Kn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function u4(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!an(i)||!Kn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var yM={name:"applyStyles",enabled:!0,phase:"write",fn:l4,effect:u4,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var oo=Math.max,od=Math.min,ws=Math.round;function Ss(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(an(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ws(r.width)/o||1),a>0&&(i=ws(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function by(e){var t=Ss(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function _M(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&_y(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function _i(e){return Ln(e).getComputedStyle(e)}function c4(e){return["table","td","th"].indexOf(Kn(e))>=0}function da(e){return((bs(e)?e.ownerDocument:e.document)||window.document).documentElement}function th(e){return Kn(e)==="html"?e:e.assignedSlot||e.parentNode||(_y(e)?e.host:null)||da(e)}function Eb(e){return!an(e)||_i(e).position==="fixed"?null:e.offsetParent}function f4(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&an(e)){var n=_i(e);if(n.position==="fixed")return null}var i=th(e);for(_y(i)&&(i=i.host);an(i)&&["html","body"].indexOf(Kn(i))<0;){var a=_i(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ku(e){for(var t=Ln(e),r=Eb(e);r&&c4(r)&&_i(r).position==="static";)r=Eb(r);return r&&(Kn(r)==="html"||Kn(r)==="body"&&_i(r).position==="static")?t:r||f4(e)||t}function wy(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rl(e,t,r){return oo(e,od(t,r))}function d4(e,t,r){var n=Rl(e,t,r);return n>r?r:n}function bM(){return{top:0,right:0,bottom:0,left:0}}function wM(e){return Object.assign({},bM(),e)}function SM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var h4=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,wM(typeof e!="number"?e:SM(e,qu))};function v4(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=wy(s),u=[Cr,un].indexOf(s)>=0,c=u?"height":"width";if(!(!a||!o)){var f=h4(i.padding,r),d=by(a),h=l==="y"?xr:Cr,v=l==="y"?ln:un,p=r.rects.reference[c]+r.rects.reference[l]-o[l]-r.rects.popper[c],g=o[l]-r.rects.reference[l],m=Ku(a),y=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,b=f[h],S=y-d[c]-f[v],w=y/2-d[c]/2+_,x=Rl(b,w,S),C=l;r.modifiersData[n]=(t={},t[C]=x,t.centerOffset=x-w,t)}}function p4(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!_M(t.elements.popper,i)||(t.elements.arrow=i))}var g4={name:"arrow",enabled:!0,phase:"main",fn:v4,effect:p4,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function xs(e){return e.split("-")[1]}var m4={top:"auto",right:"auto",bottom:"auto",left:"auto"};function y4(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ws(t*i)/i||0,y:ws(r*i)/i||0}}function Lb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=o.x,h=d===void 0?0:d,v=o.y,p=v===void 0?0:v,g=typeof c=="function"?c({x:h,y:p}):{x:h,y:p};h=g.x,p=g.y;var m=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Cr,b=xr,S=window;if(u){var w=Ku(r),x="clientHeight",C="clientWidth";if(w===Ln(r)&&(w=da(r),_i(w).position!=="static"&&s==="absolute"&&(x="scrollHeight",C="scrollWidth")),w=w,i===xr||(i===Cr||i===un)&&a===mu){b=ln;var M=f&&w===S&&S.visualViewport?S.visualViewport.height:w[x];p-=M-n.height,p*=l?1:-1}if(i===Cr||(i===xr||i===ln)&&a===mu){_=un;var E=f&&w===S&&S.visualViewport?S.visualViewport.width:w[C];h-=E-n.width,h*=l?1:-1}}var A=Object.assign({position:s},u&&m4),T=c===!0?y4({x:h,y:p}):{x:h,y:p};if(h=T.x,p=T.y,l){var D;return Object.assign({},A,(D={},D[b]=y?"0":"",D[_]=m?"0":"",D.transform=(S.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",D))}return Object.assign({},A,(t={},t[b]=y?p+"px":"",t[_]=m?h+"px":"",t.transform="",t))}function _4(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:xs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Lb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Lb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var xM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:_4,data:{}},mc={passive:!0};function b4(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=Ln(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",r.update,mc)}),s&&l.addEventListener("resize",r.update,mc),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",r.update,mc)}),s&&l.removeEventListener("resize",r.update,mc)}}var CM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:b4,data:{}},w4={left:"right",right:"left",bottom:"top",top:"bottom"};function Tf(e){return e.replace(/left|right|bottom|top/g,function(t){return w4[t]})}var S4={start:"end",end:"start"};function Db(e){return e.replace(/start|end/g,function(t){return S4[t]})}function Sy(e){var t=Ln(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function xy(e){return Ss(da(e)).left+Sy(e).scrollLeft}function x4(e){var t=Ln(e),r=da(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+xy(e),y:s}}function C4(e){var t,r=da(e),n=Sy(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=oo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=oo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+xy(e),l=-n.scrollTop;return _i(i||r).direction==="rtl"&&(s+=oo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function Cy(e){var t=_i(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function TM(e){return["html","body","#document"].indexOf(Kn(e))>=0?e.ownerDocument.body:an(e)&&Cy(e)?e:TM(th(e))}function kl(e,t){var r;t===void 0&&(t=[]);var n=TM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=Ln(n),o=i?[a].concat(a.visualViewport||[],Cy(n)?n:[]):n,s=t.concat(o);return i?s:s.concat(kl(th(o)))}function Zp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function T4(e){var t=Ss(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ib(e,t){return t===mM?Zp(x4(e)):bs(t)?T4(t):Zp(C4(da(e)))}function M4(e){var t=kl(th(e)),r=["absolute","fixed"].indexOf(_i(e).position)>=0,n=r&&an(e)?Ku(e):e;return bs(n)?t.filter(function(i){return bs(i)&&_M(i,n)&&Kn(i)!=="body"}):[]}function A4(e,t,r){var n=t==="clippingParents"?M4(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=Ib(e,l);return s.top=oo(u.top,s.top),s.right=od(u.right,s.right),s.bottom=od(u.bottom,s.bottom),s.left=oo(u.left,s.left),s},Ib(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function MM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?xs(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case xr:l={x:o,y:t.y-r.height};break;case ln:l={x:o,y:t.y+t.height};break;case un:l={x:t.x+t.width,y:s};break;case Cr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?wy(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case _s:l[u]=l[u]-(t[c]/2-r[c]/2);break;case mu:l[u]=l[u]+(t[c]/2-r[c]/2);break}}return l}function yu(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?X3:a,s=r.rootBoundary,l=s===void 0?mM:s,u=r.elementContext,c=u===void 0?Xs:u,f=r.altBoundary,d=f===void 0?!1:f,h=r.padding,v=h===void 0?0:h,p=wM(typeof v!="number"?v:SM(v,qu)),g=c===Xs?Z3:Xs,m=e.rects.popper,y=e.elements[d?g:c],_=A4(bs(y)?y:y.contextElement||da(e.elements.popper),o,l),b=Ss(e.elements.reference),S=MM({reference:b,element:m,strategy:"absolute",placement:i}),w=Zp(Object.assign({},m,S)),x=c===Xs?w:b,C={top:_.top-x.top+p.top,bottom:x.bottom-_.bottom+p.bottom,left:_.left-x.left+p.left,right:x.right-_.right+p.right},M=e.modifiersData.offset;if(c===Xs&&M){var E=M[i];Object.keys(C).forEach(function(A){var T=[un,ln].indexOf(A)>=0?1:-1,D=[xr,ln].indexOf(A)>=0?"y":"x";C[A]+=E[D]*T})}return C}function P4(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?yy:l,c=xs(n),f=c?s?Pb:Pb.filter(function(v){return xs(v)===c}):qu,d=f.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=f);var h=d.reduce(function(v,p){return v[p]=yu(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(h).sort(function(v,p){return h[v]-h[p]})}function E4(e){if(jn(e)===my)return[];var t=Tf(e);return[Db(e),t,Db(t)]}function L4(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,c=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,v=h===void 0?!0:h,p=r.allowedAutoPlacements,g=t.options.placement,m=jn(g),y=m===g,_=l||(y||!v?[Tf(g)]:E4(g)),b=[g].concat(_).reduce(function(Ae,V){return Ae.concat(jn(V)===my?P4(t,{placement:V,boundary:c,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:p}):V)},[]),S=t.rects.reference,w=t.rects.popper,x=new Map,C=!0,M=b[0],E=0;E=0,H=N?"width":"height",$=yu(t,{placement:A,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),G=N?D?un:Cr:D?ln:xr;S[H]>w[H]&&(G=Tf(G));var F=Tf(G),R=[];if(a&&R.push($[T]<=0),s&&R.push($[G]<=0,$[F]<=0),R.every(function(Ae){return Ae})){M=A,C=!1;break}x.set(A,R)}if(C)for(var j=v?3:1,re=function(Ae){var V=b.find(function(Q){var W=x.get(Q);if(W)return W.slice(0,Ae).every(function(q){return q})});if(V)return M=V,"break"},oe=j;oe>0;oe--){var ye=re(oe);if(ye==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var D4={name:"flip",enabled:!0,phase:"main",fn:L4,requiresIfExists:["offset"],data:{_skip:!1}};function Ob(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Rb(e){return[xr,un,ln,Cr].some(function(t){return e[t]>=0})}function I4(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=yu(t,{elementContext:"reference"}),s=yu(t,{altBoundary:!0}),l=Ob(o,n),u=Ob(s,i,a),c=Rb(l),f=Rb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var O4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:I4};function R4(e,t,r){var n=jn(e),i=[Cr,xr].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Cr,un].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function k4(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=yy.reduce(function(c,f){return c[f]=R4(f,t.rects,a),c},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var N4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:k4};function F4(e){var t=e.state,r=e.name;t.modifiersData[r]=MM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var AM={name:"popperOffsets",enabled:!0,phase:"read",fn:F4,data:{}};function B4(e){return e==="x"?"y":"x"}function $4(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,f=r.padding,d=r.tether,h=d===void 0?!0:d,v=r.tetherOffset,p=v===void 0?0:v,g=yu(t,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),m=jn(t.placement),y=xs(t.placement),_=!y,b=wy(m),S=B4(b),w=t.modifiersData.popperOffsets,x=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,E=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(w){if(a){var D,N=b==="y"?xr:Cr,H=b==="y"?ln:un,$=b==="y"?"height":"width",G=w[b],F=G+g[N],R=G-g[H],j=h?-C[$]/2:0,re=y===_s?x[$]:C[$],oe=y===_s?-C[$]:-x[$],ye=t.elements.arrow,Ae=h&&ye?by(ye):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:bM(),Q=V[N],W=V[H],q=Rl(0,x[$],Ae[$]),le=_?x[$]/2-j-q-Q-E.mainAxis:re-q-Q-E.mainAxis,de=_?-x[$]/2+j+q+W+E.mainAxis:oe+q+W+E.mainAxis,J=t.elements.arrow&&Ku(t.elements.arrow),L=J?b==="y"?J.clientTop||0:J.clientLeft||0:0,I=(D=A==null?void 0:A[b])!=null?D:0,z=G+le-I-L,U=G+de-I,K=Rl(h?od(F,z):F,G,h?oo(R,U):R);w[b]=K,T[b]=K-G}if(s){var ne,fe=b==="x"?xr:Cr,te=b==="x"?ln:un,ie=w[S],X=S==="y"?"height":"width",we=ie+g[fe],he=ie-g[te],Se=[xr,Cr].indexOf(m)!==-1,Oe=(ne=A==null?void 0:A[S])!=null?ne:0,ze=Se?we:ie-x[X]-C[X]-Oe+E.altAxis,rt=Se?ie+x[X]+C[X]-Oe-E.altAxis:he,Je=h&&Se?d4(ze,ie,rt):Rl(h?ze:we,ie,h?rt:he);w[S]=Je,T[S]=Je-ie}t.modifiersData[n]=T}}var H4={name:"preventOverflow",enabled:!0,phase:"main",fn:$4,requiresIfExists:["offset"]};function z4(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function W4(e){return e===Ln(e)||!an(e)?Sy(e):z4(e)}function V4(e){var t=e.getBoundingClientRect(),r=ws(t.width)/e.offsetWidth||1,n=ws(t.height)/e.offsetHeight||1;return r!==1||n!==1}function G4(e,t,r){r===void 0&&(r=!1);var n=an(t),i=an(t)&&V4(t),a=da(t),o=Ss(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Kn(t)!=="body"||Cy(a))&&(s=W4(t)),an(t)?(l=Ss(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=xy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function U4(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function j4(e){var t=U4(e);return s4.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function Y4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function q4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var kb={placement:"bottom",modifiers:[],strategy:"absolute"};function Nb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=Q4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:c,modifiers:f}=P(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],n,{name:"applyStyles",enabled:!1}]}}),a=$m(),o=B({styles:{popper:{position:P(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return xe(i,l=>{const u=P(a);u&&u.setOptions(l)},{deep:!0}),xe([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=PM(l,u,P(i)))}),Xt(()=>{s()}),{state:k(()=>{var l;return{...((l=P(a))==null?void 0:l.state)||{}}}),styles:k(()=>P(o).styles),attributes:k(()=>P(o).attributes),update:()=>{var l;return(l=P(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=P(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>P(a))}};function Q4(e){const t=Object.keys(e.elements),r=jp(t.map(i=>[i,e.styles[i]||{}])),n=jp(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}function Fb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return zu(()=>r()),{registerTimeout:t,cancelTimeout:r}}const Bb={prefix:Math.floor(Math.random()*1e4),current:0},J4=Symbol("elIdInjection"),EM=()=>ct()?Pe(J4,Bb):Bb,My=e=>{const t=EM(),r=gy();return k(()=>P(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let Yo=[];const $b=e=>{const t=e;t.key===Ot.esc&&Yo.forEach(r=>r(t))},eH=e=>{wt(()=>{Yo.length===0&&document.addEventListener("keydown",$b),Nt&&Yo.push(e)}),Xt(()=>{Yo=Yo.filter(t=>t!==e),Yo.length===0&&Nt&&document.removeEventListener("keydown",$b)})};let Hb;const LM=()=>{const e=gy(),t=EM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},tH=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},rH=()=>{const{id:e,selector:t}=LM();return Gd(()=>{Nt&&!Hb&&!document.body.querySelector(t.value)&&(Hb=tH(e.value))}),{id:e,selector:t}},nH=tt({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),DM=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Fb(),{registerTimeout:o,cancelTimeout:s}=Fb();return{onOpen:c=>{a(()=>{n(c);const f=P(r);$t(f)&&f>0&&o(()=>{i(c)},f)},P(e))},onClose:c=>{s(),a(()=>{i(c)},P(t))}}},IM=Symbol("elForwardRef"),iH=e=>{At(IM,{setForwardRef:r=>{e.value=r}})},aH=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),zb=B(0),OM=2e3,RM=Symbol("zIndexContextKey"),Ay=e=>{const t=e||Pe(RM,void 0),r=k(()=>{const a=P(t);return $t(a)?a:OM}),n=k(()=>r.value+zb.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(zb.value++,n.value)}},Xu=eh({type:String,values:Yu,required:!1}),kM=Symbol("size"),oH=()=>{const e=Pe(kM,{});return k(()=>P(e.size)||"")},NM=Symbol(),sd=B();function Py(e,t=void 0){const r=ct()?Pe(NM,sd):sd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function sH(e,t){const r=Py(),n=Ne(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Xp})),i=py(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=Ay(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||OM})),o=k(()=>{var s;return P(t)||((s=r.value)==null?void 0:s.size)||""});return FM(k(()=>P(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const FM=(e,t,r=!1)=>{var n;const i=!!ct(),a=i?Py():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?At:void 0;if(!o)return;const s=k(()=>{const l=P(e);return a!=null&&a.value?lH(a.value,l):l});return o(NM,s),o(vM,k(()=>s.value.locale)),o(pM,k(()=>s.value.namespace)),o(RM,k(()=>s.value.zIndex)),o(kM,{size:k(()=>s.value.size||"")}),(r||!sd.value)&&(sd.value=s.value),s},lH=(e,t)=>{var r;const n=[...new Set([...Tb(e),...Tb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},uH=tt({a11y:{type:Boolean,default:!0},locale:{type:Le(Object)},size:Xu,button:{type:Le(Object)},experimentalFeatures:{type:Le(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Le(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),Qp={};ce({name:"ElConfigProvider",props:uH,setup(e,{slots:t}){xe(()=>e.message,n=>{Object.assign(Qp,n??{})},{immediate:!0,deep:!0});const r=FM(e);return()=>$e(t,"default",{config:r==null?void 0:r.value})}});var Ze=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const cH=tt({size:{type:Le([Number,String])},color:{type:String}}),fH=ce({name:"ElIcon",inheritAttrs:!1}),dH=ce({...fH,props:cH,setup(e){const t=e,r=Ne("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:ad(i)?void 0:po(i),"--color":a}});return(i,a)=>(Y(),me("i",ca({class:P(r).b(),style:P(n)},i.$attrs),[$e(i.$slots,"default")],16))}});var hH=Ze(dH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const lr=hr(hH),Bs=Symbol("formContextKey"),mo=Symbol("formItemContextKey"),ia=(e,t={})=>{const r=B(void 0),n=t.prop?r:gM("size"),i=t.global?r:oH(),a=t.form?{size:void 0}:Pe(Bs,void 0),o=t.formItem?{size:void 0}:Pe(mo,void 0);return k(()=>n.value||P(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},rh=e=>{const t=gM("disabled"),r=Pe(Bs,void 0);return k(()=>t.value||P(e)||(r==null?void 0:r.disabled)||!1)},Zu=()=>{const e=Pe(Bs,void 0),t=Pe(mo,void 0);return{form:e,formItem:t}},Ey=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=B(!1)),n||(n=B(!1));const i=B();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return wt(()=>{a=xe([tn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:My().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),ks(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},vH=tt({size:{type:String,values:Yu},disabled:Boolean}),pH=tt({...vH,model:Object,rules:{type:Le(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),gH={validate:(e,t,r)=>(be(e)||He(e))&&Br(t)&&He(r)};function mH(){const e=B([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const yc=(e,t)=>{const r=$p(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},yH="ElForm",_H=ce({name:yH}),bH=ce({..._H,props:pH,emits:gH,setup(e,{expose:t,emit:r}){const n=e,i=[],a=ia(),o=Ne("form"),s=k(()=>{const{labelPosition:y,inline:_}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${y}`)]:y,[o.m("inline")]:_}]}),l=y=>{i.push(y)},u=y=>{y.prop&&i.splice(i.indexOf(y),1)},c=(y=[])=>{n.model&&yc(i,y).forEach(_=>_.resetField())},f=(y=[])=>{yc(i,y).forEach(_=>_.clearValidate())},d=k(()=>!!n.model),h=y=>{if(i.length===0)return[];const _=yc(i,y);return _.length?_:[]},v=async y=>g(void 0,y),p=async(y=[])=>{if(!d.value)return!1;const _=h(y);if(_.length===0)return!0;let b={};for(const S of _)try{await S.validate("")}catch(w){b={...b,...w}}return Object.keys(b).length===0?!0:Promise.reject(b)},g=async(y=[],_)=>{const b=!De(_);try{const S=await p(y);return S===!0&&(_==null||_(S)),S}catch(S){if(S instanceof Error)throw S;const w=S;return n.scrollToError&&m(Object.keys(w)[0]),_==null||_(!1,w),b&&Promise.reject(w)}},m=y=>{var _;const b=yc(i,y)[0];b&&((_=b.$el)==null||_.scrollIntoView(n.scrollIntoViewOptions))};return xe(()=>n.rules,()=>{n.validateOnRuleChange&&v().catch(y=>void 0)},{deep:!0}),At(Bs,fn({...$d(n),emit:r,resetFields:c,clearValidate:f,validateField:g,addField:l,removeField:u,...mH()})),t({validate:v,validateField:g,resetFields:c,clearValidate:f,scrollToField:m}),(y,_)=>(Y(),me("form",{class:ue(P(s))},[$e(y.$slots,"default")],2))}});var wH=Ze(bH,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Mf(e,t,r){return xH()?Mf=Reflect.construct.bind():Mf=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&_u(u,o.prototype),u},Mf.apply(null,arguments)}function CH(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function eg(e){var t=typeof Map=="function"?new Map:void 0;return eg=function(n){if(n===null||!CH(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Mf(n,arguments,Jp(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),_u(i,n)},eg(e)}var TH=/%[sdj%]/g,MH=function(){};typeof process<"u"&&process.env;function tg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function kr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function AH(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function zt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||AH(t)&&typeof e=="string"&&!e)}function PH(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function Wb(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,st in e?fD(e,t,{enumerable:!0,config (?:`+n+":){1}(?:(?::"+n+"){0,4}:"+r+"|(?::"+n+`){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4 (?::(?:(?::`+n+"){0,5}:"+r+"|(?::"+n+`){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4 )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1 -`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",c="(?:\\S+(?::\\S*)?@)?",f=l.v4().source,d=l.v6().source,h="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",g="(?::\\d{2,5})?",m='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+c+"(?:localhost|"+f+"|"+d+"|"+h+v+p+")"+g+m;return _c=new RegExp("(?:^"+y+"$)","i"),_c},jb={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},bl={integer:function(t){return bl.number(t)&&parseInt(t,10)===t},float:function(t){return bl.number(t)&&!bl.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 typeof t=="object"&&!bl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(jb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(RH())},hex:function(t){return typeof t=="string"&&!!t.match(jb.hex)}},kH=function(t,r,n,i,a){if(t.required&&r===void 0){BM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?bl[s](r)||i.push(kr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(kr(a.messages.types[s],t.fullField,t.type))},NH=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=r,f=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?f="number":h?f="string":v&&(f="array"),!f)return!1;v&&(c=r.length),h&&(c=r.replace(u,"_").length),o?c!==t.len&&i.push(kr(a.messages[f].len,t.fullField,t.len)):s&&!l&&ct.max?i.push(kr(a.messages[f].max,t.fullField,t.max)):s&&l&&(ct.max)&&i.push(kr(a.messages[f].range,t.fullField,t.min,t.max))},Lo="enum",FH=function(t,r,n,i,a){t[Lo]=Array.isArray(t[Lo])?t[Lo]:[],t[Lo].indexOf(r)===-1&&i.push(kr(a.messages[Lo],t.fullField,t[Lo].join(", ")))},BH=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:BM,whitespace:OH,type:kH,range:NH,enum:FH,pattern:BH},$H=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),zt(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},HH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},zH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},WH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},VH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r)||Ye.type(t,r,i,o,a)}n(o)},GH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},UH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},jH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},YH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},qH="enum",KH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[qH](t,r,i,o,a)}n(o)},XH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},ZH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!zt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},QH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},Vh=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(zt(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),zt(r,o)||Ye.type(t,r,i,s,a)}n(s)},JH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},Nl={string:$H,method:HH,number:zH,boolean:WH,regexp:VH,integer:GH,float:UH,array:jH,object:YH,enum:KH,pattern:XH,date:ZH,url:Vh,hex:Vh,email:Vh,required:QH,any:JH};function rg(){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 ng=rg(),Qu=function(){function e(r){this.rules=null,this._messages=ng,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Ub(rg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function c(p){var g=[],m={};function y(b){if(Array.isArray(b)){var x;g=(x=g).concat.apply(x,b)}else g.push(b)}for(var _=0;_");const i=Ne("form"),a=B(),o=B(0),s=()=>{var c;if((c=a.value)!=null&&c.firstElementChild){const f=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(f))}else return 0},l=(c="update")=>{Ft(()=>{t.default&&e.isAutoWidth&&(c==="update"?o.value=s():c==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return wt(()=>{u()}),Xt(()=>{l("remove")}),Hu(()=>u()),Se(o,(c,f)=>{e.updateAll&&(r==null||r.registerLabelWidth(c,f))}),gs(k(()=>{var c,f;return(f=(c=a.value)==null?void 0:c.firstElementChild)!=null?f:null}),u),()=>{var c,f;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return ee("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(c=t.default)==null?void 0:c.call(t)])}else return ee(pt,{ref:a},[(f=t.default)==null?void 0:f.call(t)])}}});const nz=["role","aria-labelledby"],iz=ce({name:"ElFormItem"}),az=ce({...iz,props:tz,setup(e,{expose:t}){const r=e,n=Yd(),i=Ee(Bs,void 0),a=Ee(mo,void 0),o=ia(void 0,{formItem:!1}),s=Ne("form-item"),l=My().value,u=B([]),c=B(""),f=tR(c,100),d=B(""),h=B();let v,p=!1;const g=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",c.value==="error"),s.is("validating",c.value==="validating"),s.is("success",c.value==="success"),s.is("required",N.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>Br(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=k(()=>r.prop?He(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),S=k(()=>r.for||u.value.length===1?u.value[0]:void 0),C=k(()=>!S.value&&w.value),M=!!a,P=k(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return Sf(W,r.prop).value}),A=k(()=>{const{required:W}=r,q=[];r.rules&&q.push(...$p(r.rules));const le=i==null?void 0:i.rules;if(le&&r.prop){const de=Sf(le,r.prop).value;de&&q.push(...$p(de))}if(W!==void 0){const de=q.map((J,L)=>[J,L]).filter(([J])=>Object.keys(J).includes("required"));if(de.length>0)for(const[J,L]of de)J.required!==W&&(q[L]={...J,required:W});else q.push({required:W})}return q}),T=k(()=>A.value.length>0),D=W=>A.value.filter(le=>!le.trigger||!W?!0:Array.isArray(le.trigger)?le.trigger.includes(W):le.trigger===W).map(({trigger:le,...de})=>de),N=k(()=>A.value.some(W=>W.required)),H=k(()=>{var W;return f.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),$=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),G=W=>{c.value=W},F=W=>{var q,le;const{errors:de,fields:J}=W;(!de||!J)&&console.error(W),G("error"),d.value=de?(le=(q=de==null?void 0:de[0])==null?void 0:q.message)!=null?le:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},R=()=>{G("success"),i==null||i.emit("validate",r.prop,!0,"")},j=async W=>{const q=x.value;return new Qu({[q]:W}).validate({[q]:P.value},{firstFields:!0}).then(()=>(R(),!0)).catch(de=>(F(de),Promise.reject(de)))},re=async(W,q)=>{if(p||!r.prop)return!1;const le=De(q);if(!T.value)return q==null||q(!1),!1;const de=D(W);return de.length===0?(q==null||q(!0),!0):(G("validating"),j(de).then(()=>(q==null||q(!0),!0)).catch(J=>{const{fields:L}=J;return q==null||q(!1,L),le?!1:Promise.reject(L)}))},oe=()=>{G(""),d.value="",p=!1},ye=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const q=Sf(W,r.prop);p=!0,q.value=bb(v),await Ft(),oe(),p=!1},Ae=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(q=>q!==W)};Se(()=>r.error,W=>{d.value=W||"",G(W?"error":"")},{immediate:!0}),Se(()=>r.validateStatus,W=>G(W||""));const Q=fn({...$d(r),$el:h,size:o,validateState:c,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Ae,removeInputId:V,resetField:ye,clearValidate:oe,validate:re});return At(mo,Q),wt(()=>{r.prop&&(i==null||i.addField(Q),v=bb(P.value))}),Xt(()=>{i==null||i.removeField(Q)}),t({size:o,validateMessage:d,validateState:c,validate:re,clearValidate:oe,resetField:ye}),(W,q)=>{var le;return Y(),me("div",{ref_key:"formItemRef",ref:h,class:ue(E(y)),role:E(C)?"group":void 0,"aria-labelledby":E(C)?E(l):void 0},[ee(E(rz),{"is-auto-width":E(g).width==="auto","update-all":((le=E(i))==null?void 0:le.labelWidth)==="auto"},{default:Z(()=>[E(w)?(Y(),_e(nn(E(S)?"label":"div"),{key:0,id:E(l),for:E(S),class:ue(E(s).e("label")),style:St(E(g))},{default:Z(()=>[$e(W.$slots,"label",{label:E($)},()=>[Bt(Me(E($)),1)])]),_:3},8,["id","for","class","style"])):Fe("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),ae("div",{class:ue(E(s).e("content")),style:St(E(m))},[$e(W.$slots,"default"),ee(NO,{name:`${E(s).namespace.value}-zoom-in-top`},{default:Z(()=>[E(H)?$e(W.$slots,"error",{key:0,error:d.value},()=>[ae("div",{class:ue(E(b))},Me(d.value),3)]):Fe("v-if",!0)]),_:3},8,["name"])],6)],10,nz)}}});var $M=Ze(az,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const HM=hr(wH,{FormItem:$M}),zM=fa($M),Qo=4,oz={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},sz=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),WM=Symbol("scrollbarContextKey"),lz=tt({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),uz="Thumb",cz=ce({__name:"thumb",props:lz,setup(e){const t=e,r=Ee(WM),n=Ne("scrollbar");r||na(uz,"can not inject scrollbar context");const i=B(),a=B(),o=B({}),s=B(!1);let l=!1,u=!1,c=Nt?document.onselectstart:null;const f=k(()=>oz[t.vertical?"vertical":"horizontal"]),d=k(()=>sz({size:t.size,move:t.move,bar:f.value})),h=k(()=>i.value[f.value.offset]**2/r.wrapElement[f.value.scrollSize]/t.ratio/a.value[f.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[f.value.axis]=C[f.value.offset]-(w[f.value.client]-C.getBoundingClientRect()[f.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[f.value.direction]-w[f.value.client]),C=a.value[f.value.offset]/2,M=(S-C)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=M*r.wrapElement[f.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),c=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[f.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[f.value.direction]-w[f.value.client])*-1,M=a.value[f.value.offset]-S,P=(C-M)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=P*r.wrapElement[f.value.scrollSize]/100},y=()=>{l=!1,o.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};Xt(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return xn(tn(r,"scrollbarElement"),"mousemove",_),xn(tn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(Y(),_e(Ci,{name:E(n).b("fade"),persisted:""},{default:Z(()=>[nr(ae("div",{ref_key:"instance",ref:i,class:ue([E(n).e("bar"),E(n).is(E(f).key)]),onMousedown:p},[ae("div",{ref_key:"thumb",ref:a,class:ue(E(n).e("thumb")),style:St(E(d)),onMousedown:v},null,38)],34),[[yi,w.always||s.value]])]),_:1},8,["name"]))}});var qb=Ze(cz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const fz=tt({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),dz=ce({__name:"bar",props:fz,setup(e,{expose:t}){const r=e,n=B(0),i=B(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Qo,l=o.offsetWidth-Qo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(Y(),me(pt,null,[ee(qb,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),ee(qb,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var hz=Ze(dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const vz=tt({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Le([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),pz={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every($t)},gz="ElScrollbar",mz=ce({name:gz}),yz=ce({...mz,props:vz,emits:pz,setup(e,{expose:t,emit:r}){const n=e,i=Ne("scrollbar");let a,o;const s=B(),l=B(),u=B(),c=B("0"),f=B("0"),d=B(),h=B(1),v=B(1),p=k(()=>{const S={};return n.height&&(S.height=po(n.height)),n.maxHeight&&(S.maxHeight=po(n.maxHeight)),[n.wrapStyle,S]}),g=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=k(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=d.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){Xe(S)?l.value.scrollTo(S):$t(S)&&$t(C)&&l.value.scrollTo(S,C)}const b=S=>{$t(S)&&(l.value.scrollTop=S)},x=S=>{$t(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Qo,C=l.value.offsetWidth-Qo,M=S**2/l.value.scrollHeight,P=C**2/l.value.scrollWidth,A=Math.max(M,n.minSize),T=Math.max(P,n.minSize);h.value=M/(S-M)/(A/(S-A)),v.value=P/(C-P)/(T/(C-T)),f.value=A+Qon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=gs(u,w),o=xn("resize",w))},{immediate:!0}),Se(()=>[n.maxHeight,n.height],()=>{n.native||Ft(()=>{var S;w(),l.value&&((S=d.value)==null||S.handleScroll(l.value))})}),At(WM,fn({scrollbarElement:s,wrapElement:l})),wt(()=>{n.native||Ft(()=>{w()})}),Hu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(Y(),me("div",{ref_key:"scrollbarRef",ref:s,class:ue(E(i).b())},[ae("div",{ref_key:"wrapRef",ref:l,class:ue(E(g)),style:St(E(p)),onScroll:y},[(Y(),_e(nn(S.tag),{ref_key:"resizeRef",ref:u,class:ue(E(m)),style:St(S.viewStyle)},{default:Z(()=>[$e(S.$slots,"default")]),_:3},8,["class","style"]))],38),S.native?Fe("v-if",!0):(Y(),_e(hz,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:S.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var _z=Ze(yz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const VM=hr(_z),Ly=Symbol("popper"),GM=Symbol("popperContent"),bz=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],UM=tt({role:{type:String,values:bz,default:"tooltip"}}),wz=ce({name:"ElPopper",inheritAttrs:!1}),xz=ce({...wz,props:UM,setup(e,{expose:t}){const r=e,n=B(),i=B(),a=B(),o=B(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),At(Ly,l),(u,c)=>$e(u.$slots,"default")}});var Sz=Ze(xz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const jM=tt({arrowOffset:{type:Number,default:5}}),Cz=ce({name:"ElPopperArrow",inheritAttrs:!1}),Tz=ce({...Cz,props:jM,setup(e,{expose:t}){const r=e,n=Ne("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Ee(GM,void 0);return Se(()=>r.arrowOffset,s=>{i.value=s}),Xt(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(Y(),me("span",{ref_key:"arrowRef",ref:a,class:ue(E(n).e("arrow")),style:St(E(o)),"data-popper-arrow":""},null,6))}});var Mz=Ze(Tz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Az="ElOnlyChild",Ez=ce({name:Az,setup(e,{slots:t,attrs:r}){var n;const i=Ee(IM),a=aH((n=i==null?void 0:i.setForwardRef)!=null?n:ur);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=YM(s);return l?nr(mi(l,r),[[a]]):null}}});function YM(e){if(!e)return null;const t=e;for(const r of t){if(Xe(r))switch(r.type){case xr:continue;case Ns:case"svg":return Kb(r);case pt:return YM(r.children);default:return r}return Kb(r)}return null}function Kb(e){const t=Ne("only-child");return ee("span",{class:t.e("content")},[e])}const qM=tt({virtualRef:{type:Le(Object)},virtualTriggering:Boolean,onMouseenter:{type:Le(Function)},onMouseleave:{type:Le(Function)},onClick:{type:Le(Function)},onKeydown:{type:Le(Function)},onFocus:{type:Le(Function)},onBlur:{type:Le(Function)},onContextmenu:{type:Le(Function)},id:String,open:Boolean}),Pz=ce({name:"ElPopperTrigger",inheritAttrs:!1}),Lz=ce({...Pz,props:qM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Ee(Ly,void 0);iH(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return wt(()=>{Se(()=>r.virtualRef,c=>{c&&(i.value=Ui(c))},{immediate:!0}),Se(i,(c,f)=>{u==null||u(),u=void 0,ys(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(c.addEventListener(d.slice(2).toLowerCase(),v),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),v))}),u=Se([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{gu(d[v])?c.removeAttribute(h):c.setAttribute(h,d[v])})},{immediate:!0})),ys(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),Xt(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(c,f)=>c.virtualTriggering?Fe("v-if",!0):(Y(),_e(E(Ez),ca({key:0},c.$attrs,{"aria-controls":E(a),"aria-describedby":E(o),"aria-expanded":E(l),"aria-haspopup":E(s)}),{default:Z(()=>[$e(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Dz=Ze(Lz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Gh="focus-trap.focus-after-trapped",Uh="focus-trap.focus-after-released",Iz="focus-trap.focusout-prevented",Xb={cancelable:!0,bubbles:!1},Oz={cancelable:!0,bubbles:!1},Zb="focusAfterTrapped",Qb="focusAfterReleased",Rz=Symbol("elFocusTrap"),Dy=B(),nh=B(0),Iy=B(0);let bc=0;const KM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Jb=(e,t)=>{for(const r of e)if(!kz(r,t))return r},kz=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Nz=e=>{const t=KM(e),r=Jb(t,e),n=Jb(t.reverse(),e);return[r,n]},Fz=e=>e instanceof HTMLInputElement&&"select"in e,$i=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Iy.value=window.performance.now(),e!==r&&Fz(e)&&t&&e.select()}};function e1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const Bz=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=e1(e,n),e.unshift(n)},remove:n=>{var i,a;e=e1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},$z=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if($i(n,t),document.activeElement!==r)return},t1=Bz(),Hz=()=>nh.value>Iy.value,wc=()=>{Dy.value="pointer",nh.value=window.performance.now()},r1=()=>{Dy.value="keyboard",nh.value=window.performance.now()},zz=()=>(wt(()=>{bc===0&&(document.addEventListener("mousedown",wc),document.addEventListener("touchstart",wc),document.addEventListener("keydown",r1)),bc++}),Xt(()=>{bc--,bc<=0&&(document.removeEventListener("mousedown",wc),document.removeEventListener("touchstart",wc),document.removeEventListener("keydown",r1))}),{focusReason:Dy,lastUserFocusTimestamp:nh,lastAutomatedFocusTimestamp:Iy}),xc=e=>new CustomEvent(Iz,{...Oz,detail:e}),Wz=ce({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Zb,Qb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=B();let n,i;const{focusReason:a}=zz();eH(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===Ot.tab&&!g&&!m&&!y,S=document.activeElement;if(w&&S){const C=_,[M,P]=Nz(C);if(M&&P){if(!b&&S===P){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(M,!0))}else if(b&&[M,C].includes(S)){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),x&&$i(P,!0))}}else if(S===C){const T=xc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||v.preventDefault()}}};At(Rz,{focusTrapRef:r,onKeydown:s}),Se(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),Se([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",c),v.addEventListener("focusout",f)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",c),p.removeEventListener("focusout",f))});const l=v=>{t(Zb,v)},u=v=>t(Qb,v),c=v=>{const p=E(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:$i(i,!0))},f=v=>{const p=E(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!gu(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=xc({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||$i(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Ft();const v=E(r);if(v){t1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Gh,Xb);v.addEventListener(Gh,l),v.dispatchEvent(m),m.defaultPrevented||Ft(()=>{let y=e.focusStartEl;He(y)||($i(y),document.activeElement!==y&&(y="first")),y==="first"&&$z(KM(v),!0),(document.activeElement===p||y==="container")&&$i(v)})}}}function h(){const v=E(r);if(v){v.removeEventListener(Gh,l);const p=new CustomEvent(Uh,{...Xb,detail:{focusReason:a.value}});v.addEventListener(Uh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!Hz()||v.contains(document.activeElement))&&$i(n??document.body),v.removeEventListener(Uh,l),t1.remove(o)}}return wt(()=>{e.trapped&&d(),Se(()=>e.trapped,v=>{v?d():h()})}),Xt(()=>{e.trapped&&h()}),{onKeydown:s}}});function Vz(e,t,r,n,i,a){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var Gz=Ze(Wz,[["render",Vz],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const Uz=["fixed","absolute"],jz=tt({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Le(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:yy,default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},strategy:{type:String,values:Uz,default:"absolute"}}),XM=tt({...jz,id:String,style:{type:Le([String,Array,Object])},className:{type:Le([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Le([String,Array,Object])},popperStyle:{type:Le([String,Array,Object])},referenceEl:{type:Le(Object)},triggerTargetEl:{type:Le(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Yz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},qz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...Xz(e),...t]};return Zz(a,i==null?void 0:i.modifiers),a},Kz=e=>{if(Nt)return Ui(e)};function Xz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function Zz(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const Qz=0,Jz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Ee(Ly,void 0),a=B(),o=B(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var m;const y=E(a),_=(m=E(o))!=null?m:Qz;return{name:"arrow",enabled:!L5(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...qz(e,[E(l),E(s)])})),c=k(()=>Kz(e.referenceEl)||E(n)),{attributes:f,state:d,styles:h,update:v,forceUpdate:p,instanceRef:g}=Z4(c,r,u);return Se(g,m=>t.value=m),wt(()=>{Se(()=>{var m;return(m=E(c))==null?void 0:m.getBoundingClientRect()},()=>{v()})}),{attributes:f,arrowRef:a,contentRef:r,instanceRef:g,state:d,styles:h,role:i,forceUpdate:p,update:v}},e6=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=Ay(),a=Ne("popper"),o=k(()=>E(t).popper),s=B(e.zIndex||i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:E(s)},e.popperStyle||{},E(r).popper]),c=k(()=>n.value==="dialog"?"false":void 0),f=k(()=>E(r).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=e.zIndex||i()}}},t6=(e,t)=>{const r=B(!1),n=B();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},r6=ce({name:"ElPopperContent"}),n6=ce({...r6,props:XM,emits:Yz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:c}=t6(n,r),{attributes:f,arrowRef:d,contentRef:h,styles:v,instanceRef:p,role:g,update:m}=Jz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:x,contentStyle:w,updateZIndex:S}=e6(n,{styles:v,attributes:f,role:g}),C=Ee(mo,void 0),M=B();At(GM,{arrowStyle:_,arrowRef:d,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&At(mo,{...C,addInputId:ur,removeInputId:ur});let P;const A=(D=!0)=>{m(),D&&S()},T=()=>{A(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return wt(()=>{Se(()=>n.triggerTargetEl,(D,N)=>{P==null||P(),P=void 0;const H=E(D||h.value),$=E(N||h.value);ys(H)&&(P=Se([g,()=>n.ariaLabel,y,()=>n.id],G=>{["role","aria-label","aria-modal","id"].forEach((F,R)=>{gu(G[R])?H.removeAttribute(F):H.setAttribute(F,G[R])})},{immediate:!0})),$!==H&&ys($)&&["role","aria-label","aria-modal","id"].forEach(G=>{$.removeAttribute(G)})},{immediate:!0}),Se(()=>n.visible,T,{immediate:!0})}),Xt(()=>{P==null||P(),P=void 0}),t({popperContentRef:h,popperInstanceRef:p,updatePopper:A,contentStyle:w}),(D,N)=>(Y(),me("div",ca({ref_key:"contentRef",ref:h},E(b),{style:E(w),class:E(x),tabindex:"-1",onMouseenter:N[0]||(N[0]=H=>D.$emit("mouseenter",H)),onMouseleave:N[1]||(N[1]=H=>D.$emit("mouseleave",H))}),[ee(E(Gz),{trapped:E(a),"trap-on-focus-in":!0,"focus-trap-el":E(h),"focus-start-el":E(i),onFocusAfterTrapped:E(s),onFocusAfterReleased:E(o),onFocusin:E(l),onFocusoutPrevented:E(u),onReleaseRequested:E(c)},{default:Z(()=>[$e(D.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var i6=Ze(n6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const a6=hr(Sz),Oy=Symbol("elTooltip"),qr=tt({...nH,...XM,appendTo:{type:Le([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Le(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),bu=tt({...qM,disabled:Boolean,trigger:{type:Le([String,Array]),default:"hover"},triggerKeys:{type:Le(Array),default:()=>[Ot.enter,Ot.space]}}),{useModelToggleProps:o6,useModelToggleEmits:s6,useModelToggle:l6}=K3("visible"),u6=tt({...UM,...o6,...qr,...bu,...jM,showArrow:{type:Boolean,default:!0}}),c6=[...s6,"before-show","before-hide","show","hide","open","close"],f6=(e,t)=>be(e)?e.includes(t):e===t,Do=(e,t,r)=>n=>{f6(E(e),t)&&r(n)},d6=ce({name:"ElTooltipTrigger"}),h6=ce({...d6,props:bu,setup(e,{expose:t}){const r=e,n=Ne("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Ee(Oy,void 0),c=B(null),f=()=>{if(E(i)||r.disabled)return!0},d=tn(r,"trigger"),h=fi(f,Do(d,"hover",s)),v=fi(f,Do(d,"hover",l)),p=fi(f,Do(d,"click",b=>{b.button===0&&u(b)})),g=fi(f,Do(d,"focus",s)),m=fi(f,Do(d,"focus",l)),y=fi(f,Do(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=fi(f,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:c}),(b,x)=>(Y(),_e(E(Dz),{id:E(a),"virtual-ref":b.virtualRef,open:E(o),"virtual-triggering":b.virtualTriggering,class:ue(E(n).e("trigger")),onBlur:E(m),onClick:E(p),onContextmenu:E(y),onFocus:E(g),onMouseenter:E(h),onMouseleave:E(v),onKeydown:E(_)},{default:Z(()=>[$e(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var v6=Ze(h6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const p6=ce({name:"ElTooltipContent",inheritAttrs:!1}),g6=ce({...p6,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=LM(),i=Ne("tooltip"),a=B(null),o=B(!1),{controlled:s,id:l,open:u,trigger:c,onClose:f,onOpen:d,onShow:h,onHide:v,onBeforeShow:p,onBeforeHide:g}=Ee(Oy,void 0),m=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);Xt(()=>{o.value=!0});const _=k(()=>E(y)?!0:E(u)),b=k(()=>r.disabled?!1:E(u)),x=k(()=>r.appendTo||n.value),w=k(()=>{var G;return(G=r.style)!=null?G:{}}),S=k(()=>!E(u)),C=()=>{v()},M=()=>{if(E(s))return!0},P=fi(M,()=>{r.enterable&&E(c)==="hover"&&d()}),A=fi(M,()=>{E(c)==="hover"&&f()}),T=()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G),p==null||p()},D=()=>{g==null||g()},N=()=>{h(),$=pR(k(()=>{var G;return(G=a.value)==null?void 0:G.popperContentRef}),()=>{if(E(s))return;E(c)!=="hover"&&f()})},H=()=>{r.virtualTriggering||f()};let $;return Se(()=>E(u),G=>{G||$==null||$()},{flush:"post"}),Se(()=>r.content,()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G)}),t({contentRef:a}),(G,F)=>(Y(),_e(eO,{disabled:!G.teleported,to:E(x)},[ee(Ci,{name:E(m),onAfterLeave:C,onBeforeEnter:T,onAfterEnter:N,onBeforeLeave:D},{default:Z(()=>[E(_)?nr((Y(),_e(E(i6),ca({key:0,id:E(l),ref_key:"contentRef",ref:a},G.$attrs,{"aria-label":G.ariaLabel,"aria-hidden":E(S),"boundaries-padding":G.boundariesPadding,"fallback-placements":G.fallbackPlacements,"gpu-acceleration":G.gpuAcceleration,offset:G.offset,placement:G.placement,"popper-options":G.popperOptions,strategy:G.strategy,effect:G.effect,enterable:G.enterable,pure:G.pure,"popper-class":G.popperClass,"popper-style":[G.popperStyle,E(w)],"reference-el":G.referenceEl,"trigger-target-el":G.triggerTargetEl,visible:E(b),"z-index":G.zIndex,onMouseenter:E(P),onMouseleave:E(A),onBlur:H,onClose:E(f)}),{default:Z(()=>[o.value?Fe("v-if",!0):$e(G.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[yi,E(b)]]):Fe("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var m6=Ze(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const y6=["innerHTML"],_6={key:1},b6=ce({name:"ElTooltip"}),w6=ce({...b6,props:u6,emits:c6,setup(e,{expose:t,emit:r}){const n=e;rH();const i=My(),a=B(),o=B(),s=()=>{var m;const y=E(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=B(!1),u=B(),{show:c,hide:f,hasUpdateHandler:d}=l6({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=DM({showAfter:tn(n,"showAfter"),hideAfter:tn(n,"hideAfter"),autoClose:tn(n,"autoClose"),open:c,close:f}),p=k(()=>Br(n.visible)&&!d.value);At(Oy,{controlled:p,id:i,open:$u(l),trigger:tn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{E(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),Se(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return qC(()=>l.value&&f()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:f}),(m,y)=>(Y(),_e(E(a6),{ref_key:"popperRef",ref:a,role:m.role},{default:Z(()=>[ee(v6,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:Z(()=>[m.$slots.default?$e(m.$slots,"default",{key:0}):Fe("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(m6,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:Z(()=>[$e(m.$slots,"content",{},()=>[m.rawContent?(Y(),me("span",{key:0,innerHTML:m.content},null,8,y6)):(Y(),me("span",_6,Me(m.content),1))]),m.showArrow?(Y(),_e(E(Mz),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):Fe("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var x6=Ze(w6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ju=hr(x6),S6=tt({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),C6=["textContent"],T6=ce({name:"ElBadge"}),M6=ce({...T6,props:S6,setup(e,{expose:t}){const r=e,n=Ne("badge"),i=k(()=>r.isDot?"":$t(r.value)&&$t(r.max)?r.max(Y(),me("div",{class:ue(E(n).b())},[$e(a.$slots,"default"),ee(Ci,{name:`${E(n).namespace.value}-zoom-in-center`,persisted:""},{default:Z(()=>[nr(ae("sup",{class:ue([E(n).e("content"),E(n).em("content",a.type),E(n).is("fixed",!!a.$slots.default),E(n).is("dot",a.isDot)]),textContent:Me(E(i))},null,10,C6),[[yi,!a.hidden&&(E(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var A6=Ze(M6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const E6=hr(A6),ZM=Symbol("buttonGroupContextKey"),P6=(e,t)=>{vy({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Ee(ZM,void 0),n=Ey("button"),{form:i}=Zu(),a=ia(k(()=>r==null?void 0:r.size)),o=rh(),s=B(),l=Yd(),u=k(()=>e.type||(r==null?void 0:r.type)||""),c=k(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),f=k(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(c.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Ns){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},L6=["default","primary","success","warning","info","danger","text",""],D6=["button","submit","reset"],ig=tt({size:Xu,disabled:Boolean,type:{type:String,values:L6,default:""},icon:{type:Wn},nativeType:{type:String,values:D6,default:"button"},loading:Boolean,loadingIcon:{type:Wn,default:()=>hy},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),I6={click:e=>e instanceof MouseEvent};function Kt(e,t){O6(e)&&(e="100%");var r=R6(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Sc(e){return Math.min(1,Math.max(0,e))}function O6(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function R6(e){return typeof e=="string"&&e.indexOf("%")!==-1}function QM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Cc(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Qa(e){return e.length===1?"0"+e:String(e)}function k6(e,t,r){return{r:Kt(e,255)*255,g:Kt(t,255)*255,b:Kt(r,255)*255}}function n1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function N6(e,t,r){var n,i,a;if(e=Kt(e,360),t=Kt(t,100),r=Kt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=jh(s,o,e+1/3),i=jh(s,o,e),a=jh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function i1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var ag={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function z6(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=G6(e)),typeof e=="object"&&(ii(e.r)&&ii(e.g)&&ii(e.b)?(t=k6(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ii(e.h)&&ii(e.s)&&ii(e.v)?(n=Cc(e.s),i=Cc(e.v),t=F6(e.h,n,i),o=!0,s="hsv"):ii(e.h)&&ii(e.s)&&ii(e.l)&&(n=Cc(e.s),a=Cc(e.l),t=N6(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=QM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var W6="[-\\+]?\\d+%?",V6="[-\\+]?\\d*\\.\\d+%?",ji="(?:".concat(V6,")|(?:").concat(W6,")"),Yh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),qh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),pn={CSS_UNIT:new RegExp(ji),rgb:new RegExp("rgb"+Yh),rgba:new RegExp("rgba"+qh),hsl:new RegExp("hsl"+Yh),hsla:new RegExp("hsla"+qh),hsv:new RegExp("hsv"+Yh),hsva:new RegExp("hsva"+qh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function G6(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ag[e])e=ag[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=pn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=pn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=pn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=pn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=pn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=pn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=pn.hex8.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),a:o1(r[4]),format:t?"name":"hex8"}:(r=pn.hex6.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),format:t?"name":"hex"}:(r=pn.hex4.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),a:o1(r[4]+r[4]),format:t?"name":"hex8"}:(r=pn.hex3.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ii(e){return Boolean(pn.CSS_UNIT.exec(String(e)))}var JM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=H6(t)),this.originalInput=t;var i=z6(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=QM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=i1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=i1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=n1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=n1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),a1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),B6(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(Kt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(Kt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+a1(this.r,this.g,this.b,!1),r=0,n=Object.entries(ag);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=Sc(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=Sc(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=Sc(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=Sc(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new JM(i),o=e.dark?a.tint(20).toString():Di(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Di(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Di(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Di(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Di(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Di(a,80):a.tint(80).toString());else{const s=e.dark?Di(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Di(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const j6=["aria-disabled","disabled","autofocus","type"],Y6=ce({name:"ElButton"}),q6=ce({...Y6,props:ig,emits:I6,setup(e,{expose:t,emit:r}){const n=e,i=U6(n),a=Ne("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:c,handleClick:f}=P6(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,h)=>(Y(),me("button",{ref_key:"_ref",ref:o,class:ue([E(a).b(),E(a).m(E(l)),E(a).m(E(s)),E(a).is("disabled",E(u)),E(a).is("loading",d.loading),E(a).is("plain",d.plain),E(a).is("round",d.round),E(a).is("circle",d.circle),E(a).is("text",d.text),E(a).is("link",d.link),E(a).is("has-bg",d.bg)]),"aria-disabled":E(u)||d.loading,disabled:E(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:St(E(i)),onClick:h[0]||(h[0]=(...v)=>E(f)&&E(f)(...v))},[d.loading?(Y(),me(pt,{key:0},[d.$slots.loading?$e(d.$slots,"loading",{key:0}):(Y(),_e(E(lr),{key:1,class:ue(E(a).is("loading"))},{default:Z(()=>[(Y(),_e(nn(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(Y(),_e(E(lr),{key:1},{default:Z(()=>[d.icon?(Y(),_e(nn(d.icon),{key:0})):$e(d.$slots,"icon",{key:1})]),_:3})):Fe("v-if",!0),d.$slots.default?(Y(),me("span",{key:2,class:ue({[E(a).em("text","expand")]:E(c)})},[$e(d.$slots,"default")],2)):Fe("v-if",!0)],14,j6))}});var K6=Ze(q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const X6={size:ig.size,type:ig.type},Z6=ce({name:"ElButtonGroup"}),Q6=ce({...Z6,props:X6,setup(e){const t=e;At(ZM,fn({size:tn(t,"size"),type:tn(t,"type")}));const r=Ne("button");return(n,i)=>(Y(),me("div",{class:ue(`${E(r).b("group")}`)},[$e(n.$slots,"default")],2))}});var eA=Ze(Q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const J6=hr(K6,{ButtonGroup:eA});fa(eA);var e8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Hi=new Map;let s1;Nt&&(document.addEventListener("mousedown",e=>s1=e),document.addEventListener("mouseup",e=>{for(const t of Hi.values())for(const{documentHandler:r}of t)r(e,s1)}));function l1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:ys(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,c=e.contains(o)||e.contains(s),f=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||c||f||d||h||t.value(n,i)}}const t8={beforeMount(e,t){Hi.has(e)||Hi.set(e,[]),Hi.get(e).push({documentHandler:l1(e,t),bindingFn:t.value})},updated(e,t){Hi.has(e)||Hi.set(e,[]);const r=Hi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:l1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Hi.delete(e)}};var u1=!1,qa,og,sg,Af,Ef,tA,Pf,lg,ug,cg,rA,fg,dg,nA,iA;function vr(){if(!u1){u1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(fg=/\b(iPhone|iP[ao]d)/.exec(e),dg=/\b(iP[ao]d)/.exec(e),cg=/Android/i.exec(e),nA=/FBAN\/\w+;/i.exec(e),iA=/Mobile/i.exec(e),rA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);tA=n?parseFloat(n[1])+4:qa,og=t[2]?parseFloat(t[2]):NaN,sg=t[3]?parseFloat(t[3]):NaN,Af=t[4]?parseFloat(t[4]):NaN,Af?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Ef=t&&t[1]?parseFloat(t[1]):NaN):Ef=NaN}else qa=og=sg=Ef=Af=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Pf=i?parseFloat(i[1].replace("_",".")):!0}else Pf=!1;lg=!!r[2],ug=!!r[3]}else Pf=lg=ug=!1}}var hg={ie:function(){return vr()||qa},ieCompatibilityMode:function(){return vr()||tA>qa},ie64:function(){return hg.ie()&&rA},firefox:function(){return vr()||og},opera:function(){return vr()||sg},webkit:function(){return vr()||Af},safari:function(){return hg.webkit()},chrome:function(){return vr()||Ef},windows:function(){return vr()||lg},osx:function(){return vr()||Pf},linux:function(){return vr()||ug},iphone:function(){return vr()||fg},mobile:function(){return vr()||fg||dg||cg||iA},nativeApp:function(){return vr()||nA},android:function(){return vr()||cg},ipad:function(){return vr()||dg}},r8=hg,Tc=!!(typeof window<"u"&&window.document&&window.document.createElement),n8={canUseDOM:Tc,canUseWorkers:typeof Worker<"u",canUseEventListeners:Tc&&!!(window.addEventListener||window.attachEvent),canUseViewport:Tc&&!!window.screen,isInWorker:!Tc},aA=n8,oA;aA.canUseDOM&&(oA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function i8(e,t){if(!aA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&oA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var a8=i8,c1=10,f1=40,d1=800;function sA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*c1,i=r*c1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=f1,i*=f1):(n*=d1,i*=d1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}sA.getEventType=function(){return r8.firefox()?"DOMMouseScroll":a8("wheel")?"wheel":"mousewheel"};var o8=sA;/** +`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",c="(?:\\S+(?::\\S*)?@)?",f=l.v4().source,d=l.v6().source,h="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",g="(?::\\d{2,5})?",m='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+c+"(?:localhost|"+f+"|"+d+"|"+h+v+p+")"+g+m;return _c=new RegExp("(?:^"+y+"$)","i"),_c},jb={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},bl={integer:function(t){return bl.number(t)&&parseInt(t,10)===t},float:function(t){return bl.number(t)&&!bl.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 typeof t=="object"&&!bl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(jb.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(RH())},hex:function(t){return typeof t=="string"&&!!t.match(jb.hex)}},kH=function(t,r,n,i,a){if(t.required&&r===void 0){BM(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?bl[s](r)||i.push(kr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(kr(a.messages.types[s],t.fullField,t.type))},NH=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=r,f=null,d=typeof r=="number",h=typeof r=="string",v=Array.isArray(r);if(d?f="number":h?f="string":v&&(f="array"),!f)return!1;v&&(c=r.length),h&&(c=r.replace(u,"_").length),o?c!==t.len&&i.push(kr(a.messages[f].len,t.fullField,t.len)):s&&!l&&ct.max?i.push(kr(a.messages[f].max,t.fullField,t.max)):s&&l&&(ct.max)&&i.push(kr(a.messages[f].range,t.fullField,t.min,t.max))},Lo="enum",FH=function(t,r,n,i,a){t[Lo]=Array.isArray(t[Lo])?t[Lo]:[],t[Lo].indexOf(r)===-1&&i.push(kr(a.messages[Lo],t.fullField,t[Lo].join(", ")))},BH=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(kr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Ye={required:BM,whitespace:OH,type:kH,range:NH,enum:FH,pattern:BH},$H=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a,"string"),zt(r,"string")||(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a),Ye.pattern(t,r,i,o,a),t.whitespace===!0&&Ye.whitespace(t,r,i,o,a))}n(o)},HH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},zH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},WH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},VH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r)||Ye.type(t,r,i,o,a)}n(o)},GH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},UH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},jH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Ye.required(t,r,i,o,a,"array"),r!=null&&(Ye.type(t,r,i,o,a),Ye.range(t,r,i,o,a))}n(o)},YH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye.type(t,r,i,o,a)}n(o)},qH="enum",KH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a),r!==void 0&&Ye[qH](t,r,i,o,a)}n(o)},XH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"string")&&!t.required)return n();Ye.required(t,r,i,o,a),zt(r,"string")||Ye.pattern(t,r,i,o,a)}n(o)},ZH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r,"date")&&!t.required)return n();if(Ye.required(t,r,i,o,a),!zt(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Ye.type(t,l,i,o,a),l&&Ye.range(t,l.getTime(),i,o,a)}}n(o)},QH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Ye.required(t,r,i,o,a,s),n(o)},Vh=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(zt(r,o)&&!t.required)return n();Ye.required(t,r,i,s,a,o),zt(r,o)||Ye.type(t,r,i,s,a)}n(s)},JH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(zt(r)&&!t.required)return n();Ye.required(t,r,i,o,a)}n(o)},Nl={string:$H,method:HH,number:zH,boolean:WH,regexp:VH,integer:GH,float:UH,array:jH,object:YH,enum:KH,pattern:XH,date:ZH,url:Vh,hex:Vh,email:Vh,required:QH,any:JH};function rg(){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 ng=rg(),Qu=function(){function e(r){this.rules=null,this._messages=ng,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=Ub(rg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function c(p){var g=[],m={};function y(b){if(Array.isArray(b)){var S;g=(S=g).concat.apply(S,b)}else g.push(b)}for(var _=0;_");const i=Ne("form"),a=B(),o=B(0),s=()=>{var c;if((c=a.value)!=null&&c.firstElementChild){const f=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(f))}else return 0},l=(c="update")=>{Ft(()=>{t.default&&e.isAutoWidth&&(c==="update"?o.value=s():c==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return wt(()=>{u()}),Xt(()=>{l("remove")}),Hu(()=>u()),xe(o,(c,f)=>{e.updateAll&&(r==null||r.registerLabelWidth(c,f))}),gs(k(()=>{var c,f;return(f=(c=a.value)==null?void 0:c.firstElementChild)!=null?f:null}),u),()=>{var c,f;if(!t)return null;const{isAutoWidth:d}=e;if(d){const h=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&h&&h!=="auto"){const g=Math.max(0,Number.parseInt(h,10)-o.value),m=r.labelPosition==="left"?"marginRight":"marginLeft";g&&(p[m]=`${g}px`)}return ee("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(c=t.default)==null?void 0:c.call(t)])}else return ee(pt,{ref:a},[(f=t.default)==null?void 0:f.call(t)])}}});const nz=["role","aria-labelledby"],iz=ce({name:"ElFormItem"}),az=ce({...iz,props:tz,setup(e,{expose:t}){const r=e,n=Yd(),i=Pe(Bs,void 0),a=Pe(mo,void 0),o=ia(void 0,{formItem:!1}),s=Ne("form-item"),l=My().value,u=B([]),c=B(""),f=tR(c,100),d=B(""),h=B();let v,p=!1;const g=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return W?{width:W}:{}}),m=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const W=po(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:W}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",c.value==="error"),s.is("validating",c.value==="validating"),s.is("success",c.value==="success"),s.is("required",N.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>Br(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),S=k(()=>r.prop?He(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),x=k(()=>r.for||u.value.length===1?u.value[0]:void 0),C=k(()=>!x.value&&w.value),M=!!a,E=k(()=>{const W=i==null?void 0:i.model;if(!(!W||!r.prop))return xf(W,r.prop).value}),A=k(()=>{const{required:W}=r,q=[];r.rules&&q.push(...$p(r.rules));const le=i==null?void 0:i.rules;if(le&&r.prop){const de=xf(le,r.prop).value;de&&q.push(...$p(de))}if(W!==void 0){const de=q.map((J,L)=>[J,L]).filter(([J])=>Object.keys(J).includes("required"));if(de.length>0)for(const[J,L]of de)J.required!==W&&(q[L]={...J,required:W});else q.push({required:W})}return q}),T=k(()=>A.value.length>0),D=W=>A.value.filter(le=>!le.trigger||!W?!0:Array.isArray(le.trigger)?le.trigger.includes(W):le.trigger===W).map(({trigger:le,...de})=>de),N=k(()=>A.value.some(W=>W.required)),H=k(()=>{var W;return f.value==="error"&&r.showMessage&&((W=i==null?void 0:i.showMessage)!=null?W:!0)}),$=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),G=W=>{c.value=W},F=W=>{var q,le;const{errors:de,fields:J}=W;(!de||!J)&&console.error(W),G("error"),d.value=de?(le=(q=de==null?void 0:de[0])==null?void 0:q.message)!=null?le:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,d.value)},R=()=>{G("success"),i==null||i.emit("validate",r.prop,!0,"")},j=async W=>{const q=S.value;return new Qu({[q]:W}).validate({[q]:E.value},{firstFields:!0}).then(()=>(R(),!0)).catch(de=>(F(de),Promise.reject(de)))},re=async(W,q)=>{if(p||!r.prop)return!1;const le=De(q);if(!T.value)return q==null||q(!1),!1;const de=D(W);return de.length===0?(q==null||q(!0),!0):(G("validating"),j(de).then(()=>(q==null||q(!0),!0)).catch(J=>{const{fields:L}=J;return q==null||q(!1,L),le?!1:Promise.reject(L)}))},oe=()=>{G(""),d.value="",p=!1},ye=async()=>{const W=i==null?void 0:i.model;if(!W||!r.prop)return;const q=xf(W,r.prop);p=!0,q.value=bb(v),await Ft(),oe(),p=!1},Ae=W=>{u.value.includes(W)||u.value.push(W)},V=W=>{u.value=u.value.filter(q=>q!==W)};xe(()=>r.error,W=>{d.value=W||"",G(W?"error":"")},{immediate:!0}),xe(()=>r.validateStatus,W=>G(W||""));const Q=fn({...$d(r),$el:h,size:o,validateState:c,labelId:l,inputIds:u,isGroup:C,hasLabel:w,addInputId:Ae,removeInputId:V,resetField:ye,clearValidate:oe,validate:re});return At(mo,Q),wt(()=>{r.prop&&(i==null||i.addField(Q),v=bb(E.value))}),Xt(()=>{i==null||i.removeField(Q)}),t({size:o,validateMessage:d,validateState:c,validate:re,clearValidate:oe,resetField:ye}),(W,q)=>{var le;return Y(),me("div",{ref_key:"formItemRef",ref:h,class:ue(P(y)),role:P(C)?"group":void 0,"aria-labelledby":P(C)?P(l):void 0},[ee(P(rz),{"is-auto-width":P(g).width==="auto","update-all":((le=P(i))==null?void 0:le.labelWidth)==="auto"},{default:Z(()=>[P(w)?(Y(),_e(nn(P(x)?"label":"div"),{key:0,id:P(l),for:P(x),class:ue(P(s).e("label")),style:xt(P(g))},{default:Z(()=>[$e(W.$slots,"label",{label:P($)},()=>[Bt(Me(P($)),1)])]),_:3},8,["id","for","class","style"])):Fe("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),ae("div",{class:ue(P(s).e("content")),style:xt(P(m))},[$e(W.$slots,"default"),ee(NO,{name:`${P(s).namespace.value}-zoom-in-top`},{default:Z(()=>[P(H)?$e(W.$slots,"error",{key:0,error:d.value},()=>[ae("div",{class:ue(P(b))},Me(d.value),3)]):Fe("v-if",!0)]),_:3},8,["name"])],6)],10,nz)}}});var $M=Ze(az,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const HM=hr(wH,{FormItem:$M}),zM=fa($M),Qo=4,oz={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},sz=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),WM=Symbol("scrollbarContextKey"),lz=tt({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),uz="Thumb",cz=ce({__name:"thumb",props:lz,setup(e){const t=e,r=Pe(WM),n=Ne("scrollbar");r||na(uz,"can not inject scrollbar context");const i=B(),a=B(),o=B({}),s=B(!1);let l=!1,u=!1,c=Nt?document.onselectstart:null;const f=k(()=>oz[t.vertical?"vertical":"horizontal"]),d=k(()=>sz({size:t.size,move:t.move,bar:f.value})),h=k(()=>i.value[f.value.offset]**2/r.wrapElement[f.value.scrollSize]/t.ratio/a.value[f.value.offset]),v=w=>{var x;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(x=window.getSelection())==null||x.removeAllRanges(),g(w);const C=w.currentTarget;C&&(o.value[f.value.axis]=C[f.value.offset]-(w[f.value.client]-C.getBoundingClientRect()[f.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const x=Math.abs(w.target.getBoundingClientRect()[f.value.direction]-w[f.value.client]),C=a.value[f.value.offset]/2,M=(x-C)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=M*r.wrapElement[f.value.scrollSize]/100},g=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",m),document.addEventListener("mouseup",y),c=document.onselectstart,document.onselectstart=()=>!1},m=w=>{if(!i.value||!a.value||l===!1)return;const x=o.value[f.value.axis];if(!x)return;const C=(i.value.getBoundingClientRect()[f.value.direction]-w[f.value.client])*-1,M=a.value[f.value.offset]-x,E=(C-M)*100*h.value/i.value[f.value.offset];r.wrapElement[f.value.scroll]=E*r.wrapElement[f.value.scrollSize]/100},y=()=>{l=!1,o.value[f.value.axis]=0,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",y),S(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};Xt(()=>{S(),document.removeEventListener("mouseup",y)});const S=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return Sn(tn(r,"scrollbarElement"),"mousemove",_),Sn(tn(r,"scrollbarElement"),"mouseleave",b),(w,x)=>(Y(),_e(Ci,{name:P(n).b("fade"),persisted:""},{default:Z(()=>[nr(ae("div",{ref_key:"instance",ref:i,class:ue([P(n).e("bar"),P(n).is(P(f).key)]),onMousedown:p},[ae("div",{ref_key:"thumb",ref:a,class:ue(P(n).e("thumb")),style:xt(P(d)),onMousedown:v},null,38)],34),[[yi,w.always||s.value]])]),_:1},8,["name"]))}});var qb=Ze(cz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const fz=tt({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),dz=ce({__name:"bar",props:fz,setup(e,{expose:t}){const r=e,n=B(0),i=B(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Qo,l=o.offsetWidth-Qo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(Y(),me(pt,null,[ee(qb,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),ee(qb,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var hz=Ze(dz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const vz=tt({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Le([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),pz={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every($t)},gz="ElScrollbar",mz=ce({name:gz}),yz=ce({...mz,props:vz,emits:pz,setup(e,{expose:t,emit:r}){const n=e,i=Ne("scrollbar");let a,o;const s=B(),l=B(),u=B(),c=B("0"),f=B("0"),d=B(),h=B(1),v=B(1),p=k(()=>{const x={};return n.height&&(x.height=po(n.height)),n.maxHeight&&(x.maxHeight=po(n.maxHeight)),[n.wrapStyle,x]}),g=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),m=k(()=>[i.e("view"),n.viewClass]),y=()=>{var x;l.value&&((x=d.value)==null||x.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(x,C){Xe(x)?l.value.scrollTo(x):$t(x)&&$t(C)&&l.value.scrollTo(x,C)}const b=x=>{$t(x)&&(l.value.scrollTop=x)},S=x=>{$t(x)&&(l.value.scrollLeft=x)},w=()=>{if(!l.value)return;const x=l.value.offsetHeight-Qo,C=l.value.offsetWidth-Qo,M=x**2/l.value.scrollHeight,E=C**2/l.value.scrollWidth,A=Math.max(M,n.minSize),T=Math.max(E,n.minSize);h.value=M/(x-M)/(A/(x-A)),v.value=E/(C-E)/(T/(C-T)),f.value=A+Qon.noresize,x=>{x?(a==null||a(),o==null||o()):({stop:a}=gs(u,w),o=Sn("resize",w))},{immediate:!0}),xe(()=>[n.maxHeight,n.height],()=>{n.native||Ft(()=>{var x;w(),l.value&&((x=d.value)==null||x.handleScroll(l.value))})}),At(WM,fn({scrollbarElement:s,wrapElement:l})),wt(()=>{n.native||Ft(()=>{w()})}),Hu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:S,handleScroll:y}),(x,C)=>(Y(),me("div",{ref_key:"scrollbarRef",ref:s,class:ue(P(i).b())},[ae("div",{ref_key:"wrapRef",ref:l,class:ue(P(g)),style:xt(P(p)),onScroll:y},[(Y(),_e(nn(x.tag),{ref_key:"resizeRef",ref:u,class:ue(P(m)),style:xt(x.viewStyle)},{default:Z(()=>[$e(x.$slots,"default")]),_:3},8,["class","style"]))],38),x.native?Fe("v-if",!0):(Y(),_e(hz,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:x.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var _z=Ze(yz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const VM=hr(_z),Ly=Symbol("popper"),GM=Symbol("popperContent"),bz=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],UM=tt({role:{type:String,values:bz,default:"tooltip"}}),wz=ce({name:"ElPopper",inheritAttrs:!1}),Sz=ce({...wz,props:UM,setup(e,{expose:t}){const r=e,n=B(),i=B(),a=B(),o=B(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),At(Ly,l),(u,c)=>$e(u.$slots,"default")}});var xz=Ze(Sz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const jM=tt({arrowOffset:{type:Number,default:5}}),Cz=ce({name:"ElPopperArrow",inheritAttrs:!1}),Tz=ce({...Cz,props:jM,setup(e,{expose:t}){const r=e,n=Ne("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Pe(GM,void 0);return xe(()=>r.arrowOffset,s=>{i.value=s}),Xt(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(Y(),me("span",{ref_key:"arrowRef",ref:a,class:ue(P(n).e("arrow")),style:xt(P(o)),"data-popper-arrow":""},null,6))}});var Mz=Ze(Tz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Az="ElOnlyChild",Pz=ce({name:Az,setup(e,{slots:t,attrs:r}){var n;const i=Pe(IM),a=aH((n=i==null?void 0:i.setForwardRef)!=null?n:ur);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=YM(s);return l?nr(mi(l,r),[[a]]):null}}});function YM(e){if(!e)return null;const t=e;for(const r of t){if(Xe(r))switch(r.type){case Sr:continue;case Ns:case"svg":return Kb(r);case pt:return YM(r.children);default:return r}return Kb(r)}return null}function Kb(e){const t=Ne("only-child");return ee("span",{class:t.e("content")},[e])}const qM=tt({virtualRef:{type:Le(Object)},virtualTriggering:Boolean,onMouseenter:{type:Le(Function)},onMouseleave:{type:Le(Function)},onClick:{type:Le(Function)},onKeydown:{type:Le(Function)},onFocus:{type:Le(Function)},onBlur:{type:Le(Function)},onContextmenu:{type:Le(Function)},id:String,open:Boolean}),Ez=ce({name:"ElPopperTrigger",inheritAttrs:!1}),Lz=ce({...Ez,props:qM,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Pe(Ly,void 0);iH(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return wt(()=>{xe(()=>r.virtualRef,c=>{c&&(i.value=Ui(c))},{immediate:!0}),xe(i,(c,f)=>{u==null||u(),u=void 0,ys(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var h;const v=r[d];v&&(c.addEventListener(d.slice(2).toLowerCase(),v),(h=f==null?void 0:f.removeEventListener)==null||h.call(f,d.slice(2).toLowerCase(),v))}),u=xe([a,o,s,l],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{gu(d[v])?c.removeAttribute(h):c.setAttribute(h,d[v])})},{immediate:!0})),ys(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),Xt(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(c,f)=>c.virtualTriggering?Fe("v-if",!0):(Y(),_e(P(Pz),ca({key:0},c.$attrs,{"aria-controls":P(a),"aria-describedby":P(o),"aria-expanded":P(l),"aria-haspopup":P(s)}),{default:Z(()=>[$e(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Dz=Ze(Lz,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const Gh="focus-trap.focus-after-trapped",Uh="focus-trap.focus-after-released",Iz="focus-trap.focusout-prevented",Xb={cancelable:!0,bubbles:!1},Oz={cancelable:!0,bubbles:!1},Zb="focusAfterTrapped",Qb="focusAfterReleased",Rz=Symbol("elFocusTrap"),Dy=B(),nh=B(0),Iy=B(0);let bc=0;const KM=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},Jb=(e,t)=>{for(const r of e)if(!kz(r,t))return r},kz=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Nz=e=>{const t=KM(e),r=Jb(t,e),n=Jb(t.reverse(),e);return[r,n]},Fz=e=>e instanceof HTMLInputElement&&"select"in e,$i=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Iy.value=window.performance.now(),e!==r&&Fz(e)&&t&&e.select()}};function e1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const Bz=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=e1(e,n),e.unshift(n)},remove:n=>{var i,a;e=e1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},$z=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if($i(n,t),document.activeElement!==r)return},t1=Bz(),Hz=()=>nh.value>Iy.value,wc=()=>{Dy.value="pointer",nh.value=window.performance.now()},r1=()=>{Dy.value="keyboard",nh.value=window.performance.now()},zz=()=>(wt(()=>{bc===0&&(document.addEventListener("mousedown",wc),document.addEventListener("touchstart",wc),document.addEventListener("keydown",r1)),bc++}),Xt(()=>{bc--,bc<=0&&(document.removeEventListener("mousedown",wc),document.removeEventListener("touchstart",wc),document.removeEventListener("keydown",r1))}),{focusReason:Dy,lastUserFocusTimestamp:nh,lastAutomatedFocusTimestamp:Iy}),Sc=e=>new CustomEvent(Iz,{...Oz,detail:e}),Wz=ce({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Zb,Qb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=B();let n,i;const{focusReason:a}=zz();eH(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:g,ctrlKey:m,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:S}=e,w=p===Ot.tab&&!g&&!m&&!y,x=document.activeElement;if(w&&x){const C=_,[M,E]=Nz(C);if(M&&E){if(!b&&x===E){const T=Sc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),S&&$i(M,!0))}else if(b&&[M,C].includes(x)){const T=Sc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||(v.preventDefault(),S&&$i(E,!0))}}else if(x===C){const T=Sc({focusReason:a.value});t("focusout-prevented",T),T.defaultPrevented||v.preventDefault()}}};At(Rz,{focusTrapRef:r,onKeydown:s}),xe(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),xe([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",c),v.addEventListener("focusout",f)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",c),p.removeEventListener("focusout",f))});const l=v=>{t(Zb,v)},u=v=>t(Qb,v),c=v=>{const p=P(r);if(!p)return;const g=v.target,m=v.relatedTarget,y=g&&p.contains(g);e.trapped||m&&p.contains(m)||(n=m),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=g:$i(i,!0))},f=v=>{const p=P(r);if(!(o.paused||!p))if(e.trapped){const g=v.relatedTarget;!gu(g)&&!p.contains(g)&&setTimeout(()=>{if(!o.paused&&e.trapped){const m=Sc({focusReason:a.value});t("focusout-prevented",m),m.defaultPrevented||$i(i,!0)}},0)}else{const g=v.target;g&&p.contains(g)||t("focusout",v)}};async function d(){await Ft();const v=P(r);if(v){t1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const m=new Event(Gh,Xb);v.addEventListener(Gh,l),v.dispatchEvent(m),m.defaultPrevented||Ft(()=>{let y=e.focusStartEl;He(y)||($i(y),document.activeElement!==y&&(y="first")),y==="first"&&$z(KM(v),!0),(document.activeElement===p||y==="container")&&$i(v)})}}}function h(){const v=P(r);if(v){v.removeEventListener(Gh,l);const p=new CustomEvent(Uh,{...Xb,detail:{focusReason:a.value}});v.addEventListener(Uh,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!Hz()||v.contains(document.activeElement))&&$i(n??document.body),v.removeEventListener(Uh,l),t1.remove(o)}}return wt(()=>{e.trapped&&d(),xe(()=>e.trapped,v=>{v?d():h()})}),Xt(()=>{e.trapped&&h()}),{onKeydown:s}}});function Vz(e,t,r,n,i,a){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var Gz=Ze(Wz,[["render",Vz],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const Uz=["fixed","absolute"],jz=tt({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Le(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:yy,default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},strategy:{type:String,values:Uz,default:"absolute"}}),XM=tt({...jz,id:String,style:{type:Le([String,Array,Object])},className:{type:Le([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Le([String,Array,Object])},popperStyle:{type:Le([String,Array,Object])},referenceEl:{type:Le(Object)},triggerTargetEl:{type:Le(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Yz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},qz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...Xz(e),...t]};return Zz(a,i==null?void 0:i.modifiers),a},Kz=e=>{if(Nt)return Ui(e)};function Xz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function Zz(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const Qz=0,Jz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Pe(Ly,void 0),a=B(),o=B(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var m;const y=P(a),_=(m=P(o))!=null?m:Qz;return{name:"arrow",enabled:!L5(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...qz(e,[P(l),P(s)])})),c=k(()=>Kz(e.referenceEl)||P(n)),{attributes:f,state:d,styles:h,update:v,forceUpdate:p,instanceRef:g}=Z4(c,r,u);return xe(g,m=>t.value=m),wt(()=>{xe(()=>{var m;return(m=P(c))==null?void 0:m.getBoundingClientRect()},()=>{v()})}),{attributes:f,arrowRef:a,contentRef:r,instanceRef:g,state:d,styles:h,role:i,forceUpdate:p,update:v}},e6=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=Ay(),a=Ne("popper"),o=k(()=>P(t).popper),s=B(e.zIndex||i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:P(s)},e.popperStyle||{},P(r).popper]),c=k(()=>n.value==="dialog"?"false":void 0),f=k(()=>P(r).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=e.zIndex||i()}}},t6=(e,t)=>{const r=B(!1),n=B();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},r6=ce({name:"ElPopperContent"}),n6=ce({...r6,props:XM,emits:Yz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:c}=t6(n,r),{attributes:f,arrowRef:d,contentRef:h,styles:v,instanceRef:p,role:g,update:m}=Jz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:S,contentStyle:w,updateZIndex:x}=e6(n,{styles:v,attributes:f,role:g}),C=Pe(mo,void 0),M=B();At(GM,{arrowStyle:_,arrowRef:d,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&At(mo,{...C,addInputId:ur,removeInputId:ur});let E;const A=(D=!0)=>{m(),D&&x()},T=()=>{A(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return wt(()=>{xe(()=>n.triggerTargetEl,(D,N)=>{E==null||E(),E=void 0;const H=P(D||h.value),$=P(N||h.value);ys(H)&&(E=xe([g,()=>n.ariaLabel,y,()=>n.id],G=>{["role","aria-label","aria-modal","id"].forEach((F,R)=>{gu(G[R])?H.removeAttribute(F):H.setAttribute(F,G[R])})},{immediate:!0})),$!==H&&ys($)&&["role","aria-label","aria-modal","id"].forEach(G=>{$.removeAttribute(G)})},{immediate:!0}),xe(()=>n.visible,T,{immediate:!0})}),Xt(()=>{E==null||E(),E=void 0}),t({popperContentRef:h,popperInstanceRef:p,updatePopper:A,contentStyle:w}),(D,N)=>(Y(),me("div",ca({ref_key:"contentRef",ref:h},P(b),{style:P(w),class:P(S),tabindex:"-1",onMouseenter:N[0]||(N[0]=H=>D.$emit("mouseenter",H)),onMouseleave:N[1]||(N[1]=H=>D.$emit("mouseleave",H))}),[ee(P(Gz),{trapped:P(a),"trap-on-focus-in":!0,"focus-trap-el":P(h),"focus-start-el":P(i),onFocusAfterTrapped:P(s),onFocusAfterReleased:P(o),onFocusin:P(l),onFocusoutPrevented:P(u),onReleaseRequested:P(c)},{default:Z(()=>[$e(D.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var i6=Ze(n6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const a6=hr(xz),Oy=Symbol("elTooltip"),qr=tt({...nH,...XM,appendTo:{type:Le([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Le(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),bu=tt({...qM,disabled:Boolean,trigger:{type:Le([String,Array]),default:"hover"},triggerKeys:{type:Le(Array),default:()=>[Ot.enter,Ot.space]}}),{useModelToggleProps:o6,useModelToggleEmits:s6,useModelToggle:l6}=K3("visible"),u6=tt({...UM,...o6,...qr,...bu,...jM,showArrow:{type:Boolean,default:!0}}),c6=[...s6,"before-show","before-hide","show","hide","open","close"],f6=(e,t)=>be(e)?e.includes(t):e===t,Do=(e,t,r)=>n=>{f6(P(e),t)&&r(n)},d6=ce({name:"ElTooltipTrigger"}),h6=ce({...d6,props:bu,setup(e,{expose:t}){const r=e,n=Ne("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Pe(Oy,void 0),c=B(null),f=()=>{if(P(i)||r.disabled)return!0},d=tn(r,"trigger"),h=fi(f,Do(d,"hover",s)),v=fi(f,Do(d,"hover",l)),p=fi(f,Do(d,"click",b=>{b.button===0&&u(b)})),g=fi(f,Do(d,"focus",s)),m=fi(f,Do(d,"focus",l)),y=fi(f,Do(d,"contextmenu",b=>{b.preventDefault(),u(b)})),_=fi(f,b=>{const{code:S}=b;r.triggerKeys.includes(S)&&(b.preventDefault(),u(b))});return t({triggerRef:c}),(b,S)=>(Y(),_e(P(Dz),{id:P(a),"virtual-ref":b.virtualRef,open:P(o),"virtual-triggering":b.virtualTriggering,class:ue(P(n).e("trigger")),onBlur:P(m),onClick:P(p),onContextmenu:P(y),onFocus:P(g),onMouseenter:P(h),onMouseleave:P(v),onKeydown:P(_)},{default:Z(()=>[$e(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var v6=Ze(h6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const p6=ce({name:"ElTooltipContent",inheritAttrs:!1}),g6=ce({...p6,props:qr,setup(e,{expose:t}){const r=e,{selector:n}=LM(),i=Ne("tooltip"),a=B(null),o=B(!1),{controlled:s,id:l,open:u,trigger:c,onClose:f,onOpen:d,onShow:h,onHide:v,onBeforeShow:p,onBeforeHide:g}=Pe(Oy,void 0),m=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);Xt(()=>{o.value=!0});const _=k(()=>P(y)?!0:P(u)),b=k(()=>r.disabled?!1:P(u)),S=k(()=>r.appendTo||n.value),w=k(()=>{var G;return(G=r.style)!=null?G:{}}),x=k(()=>!P(u)),C=()=>{v()},M=()=>{if(P(s))return!0},E=fi(M,()=>{r.enterable&&P(c)==="hover"&&d()}),A=fi(M,()=>{P(c)==="hover"&&f()}),T=()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G),p==null||p()},D=()=>{g==null||g()},N=()=>{h(),$=pR(k(()=>{var G;return(G=a.value)==null?void 0:G.popperContentRef}),()=>{if(P(s))return;P(c)!=="hover"&&f()})},H=()=>{r.virtualTriggering||f()};let $;return xe(()=>P(u),G=>{G||$==null||$()},{flush:"post"}),xe(()=>r.content,()=>{var G,F;(F=(G=a.value)==null?void 0:G.updatePopper)==null||F.call(G)}),t({contentRef:a}),(G,F)=>(Y(),_e(eO,{disabled:!G.teleported,to:P(S)},[ee(Ci,{name:P(m),onAfterLeave:C,onBeforeEnter:T,onAfterEnter:N,onBeforeLeave:D},{default:Z(()=>[P(_)?nr((Y(),_e(P(i6),ca({key:0,id:P(l),ref_key:"contentRef",ref:a},G.$attrs,{"aria-label":G.ariaLabel,"aria-hidden":P(x),"boundaries-padding":G.boundariesPadding,"fallback-placements":G.fallbackPlacements,"gpu-acceleration":G.gpuAcceleration,offset:G.offset,placement:G.placement,"popper-options":G.popperOptions,strategy:G.strategy,effect:G.effect,enterable:G.enterable,pure:G.pure,"popper-class":G.popperClass,"popper-style":[G.popperStyle,P(w)],"reference-el":G.referenceEl,"trigger-target-el":G.triggerTargetEl,visible:P(b),"z-index":G.zIndex,onMouseenter:P(E),onMouseleave:P(A),onBlur:H,onClose:P(f)}),{default:Z(()=>[o.value?Fe("v-if",!0):$e(G.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[yi,P(b)]]):Fe("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var m6=Ze(g6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const y6=["innerHTML"],_6={key:1},b6=ce({name:"ElTooltip"}),w6=ce({...b6,props:u6,emits:c6,setup(e,{expose:t,emit:r}){const n=e;rH();const i=My(),a=B(),o=B(),s=()=>{var m;const y=P(a);y&&((m=y.popperInstanceRef)==null||m.update())},l=B(!1),u=B(),{show:c,hide:f,hasUpdateHandler:d}=l6({indicator:l,toggleReason:u}),{onOpen:h,onClose:v}=DM({showAfter:tn(n,"showAfter"),hideAfter:tn(n,"hideAfter"),autoClose:tn(n,"autoClose"),open:c,close:f}),p=k(()=>Br(n.visible)&&!d.value);At(Oy,{controlled:p,id:i,open:$u(l),trigger:tn(n,"trigger"),onOpen:m=>{h(m)},onClose:m=>{v(m)},onToggle:m=>{P(l)?v(m):h(m)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),xe(()=>n.disabled,m=>{m&&l.value&&(l.value=!1)});const g=()=>{var m,y;const _=(y=(m=o.value)==null?void 0:m.contentRef)==null?void 0:y.popperContentRef;return _&&_.contains(document.activeElement)};return qC(()=>l.value&&f()),t({popperRef:a,contentRef:o,isFocusInsideContent:g,updatePopper:s,onOpen:h,onClose:v,hide:f}),(m,y)=>(Y(),_e(P(a6),{ref_key:"popperRef",ref:a,role:m.role},{default:Z(()=>[ee(v6,{disabled:m.disabled,trigger:m.trigger,"trigger-keys":m.triggerKeys,"virtual-ref":m.virtualRef,"virtual-triggering":m.virtualTriggering},{default:Z(()=>[m.$slots.default?$e(m.$slots,"default",{key:0}):Fe("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(m6,{ref_key:"contentRef",ref:o,"aria-label":m.ariaLabel,"boundaries-padding":m.boundariesPadding,content:m.content,disabled:m.disabled,effect:m.effect,enterable:m.enterable,"fallback-placements":m.fallbackPlacements,"hide-after":m.hideAfter,"gpu-acceleration":m.gpuAcceleration,offset:m.offset,persistent:m.persistent,"popper-class":m.popperClass,"popper-style":m.popperStyle,placement:m.placement,"popper-options":m.popperOptions,pure:m.pure,"raw-content":m.rawContent,"reference-el":m.referenceEl,"trigger-target-el":m.triggerTargetEl,"show-after":m.showAfter,strategy:m.strategy,teleported:m.teleported,transition:m.transition,"virtual-triggering":m.virtualTriggering,"z-index":m.zIndex,"append-to":m.appendTo},{default:Z(()=>[$e(m.$slots,"content",{},()=>[m.rawContent?(Y(),me("span",{key:0,innerHTML:m.content},null,8,y6)):(Y(),me("span",_6,Me(m.content),1))]),m.showArrow?(Y(),_e(P(Mz),{key:0,"arrow-offset":m.arrowOffset},null,8,["arrow-offset"])):Fe("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var S6=Ze(w6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ju=hr(S6),x6=tt({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),C6=["textContent"],T6=ce({name:"ElBadge"}),M6=ce({...T6,props:x6,setup(e,{expose:t}){const r=e,n=Ne("badge"),i=k(()=>r.isDot?"":$t(r.value)&&$t(r.max)?r.max(Y(),me("div",{class:ue(P(n).b())},[$e(a.$slots,"default"),ee(Ci,{name:`${P(n).namespace.value}-zoom-in-center`,persisted:""},{default:Z(()=>[nr(ae("sup",{class:ue([P(n).e("content"),P(n).em("content",a.type),P(n).is("fixed",!!a.$slots.default),P(n).is("dot",a.isDot)]),textContent:Me(P(i))},null,10,C6),[[yi,!a.hidden&&(P(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var A6=Ze(M6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const P6=hr(A6),ZM=Symbol("buttonGroupContextKey"),E6=(e,t)=>{vy({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Pe(ZM,void 0),n=Py("button"),{form:i}=Zu(),a=ia(k(()=>r==null?void 0:r.size)),o=rh(),s=B(),l=Yd(),u=k(()=>e.type||(r==null?void 0:r.type)||""),c=k(()=>{var h,v,p;return(p=(v=e.autoInsertSpace)!=null?v:(h=n.value)==null?void 0:h.autoInsertSpace)!=null?p:!1}),f=k(()=>{var h;const v=(h=l.default)==null?void 0:h.call(l);if(c.value&&(v==null?void 0:v.length)===1){const p=v[0];if((p==null?void 0:p.type)===Ns){const g=p.children;return/^\p{Unified_Ideograph}{2}$/u.test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,shouldAddSpace:f,handleClick:h=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",h)}}},L6=["default","primary","success","warning","info","danger","text",""],D6=["button","submit","reset"],ig=tt({size:Xu,disabled:Boolean,type:{type:String,values:L6,default:""},icon:{type:Wn},nativeType:{type:String,values:D6,default:"button"},loading:Boolean,loadingIcon:{type:Wn,default:()=>hy},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),I6={click:e=>e instanceof MouseEvent};function Kt(e,t){O6(e)&&(e="100%");var r=R6(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function xc(e){return Math.min(1,Math.max(0,e))}function O6(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function R6(e){return typeof e=="string"&&e.indexOf("%")!==-1}function QM(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Cc(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Qa(e){return e.length===1?"0"+e:String(e)}function k6(e,t,r){return{r:Kt(e,255)*255,g:Kt(t,255)*255,b:Kt(r,255)*255}}function n1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function N6(e,t,r){var n,i,a;if(e=Kt(e,360),t=Kt(t,100),r=Kt(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=jh(s,o,e+1/3),i=jh(s,o,e),a=jh(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function i1(e,t,r){e=Kt(e,255),t=Kt(t,255),r=Kt(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var ag={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function z6(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=G6(e)),typeof e=="object"&&(ii(e.r)&&ii(e.g)&&ii(e.b)?(t=k6(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ii(e.h)&&ii(e.s)&&ii(e.v)?(n=Cc(e.s),i=Cc(e.v),t=F6(e.h,n,i),o=!0,s="hsv"):ii(e.h)&&ii(e.s)&&ii(e.l)&&(n=Cc(e.s),a=Cc(e.l),t=N6(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=QM(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var W6="[-\\+]?\\d+%?",V6="[-\\+]?\\d*\\.\\d+%?",ji="(?:".concat(V6,")|(?:").concat(W6,")"),Yh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),qh="[\\s|\\(]+(".concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")[,|\\s]+(").concat(ji,")\\s*\\)?"),pn={CSS_UNIT:new RegExp(ji),rgb:new RegExp("rgb"+Yh),rgba:new RegExp("rgba"+qh),hsl:new RegExp("hsl"+Yh),hsla:new RegExp("hsla"+qh),hsv:new RegExp("hsv"+Yh),hsva:new RegExp("hsva"+qh),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function G6(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ag[e])e=ag[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=pn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=pn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=pn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=pn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=pn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=pn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=pn.hex8.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),a:o1(r[4]),format:t?"name":"hex8"}:(r=pn.hex6.exec(e),r?{r:Ir(r[1]),g:Ir(r[2]),b:Ir(r[3]),format:t?"name":"hex"}:(r=pn.hex4.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),a:o1(r[4]+r[4]),format:t?"name":"hex8"}:(r=pn.hex3.exec(e),r?{r:Ir(r[1]+r[1]),g:Ir(r[2]+r[2]),b:Ir(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function ii(e){return Boolean(pn.CSS_UNIT.exec(String(e)))}var JM=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=H6(t)),this.originalInput=t;var i=z6(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=QM(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=i1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=i1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=n1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=n1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),a1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),B6(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(Kt(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(Kt(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+a1(this.r,this.g,this.b,!1),r=0,n=Object.entries(ag);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=xc(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=xc(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=xc(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=xc(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new JM(i),o=e.dark?a.tint(20).toString():Di(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Di(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Di(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Di(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Di(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Di(a,80):a.tint(80).toString());else{const s=e.dark?Di(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Di(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const j6=["aria-disabled","disabled","autofocus","type"],Y6=ce({name:"ElButton"}),q6=ce({...Y6,props:ig,emits:I6,setup(e,{expose:t,emit:r}){const n=e,i=U6(n),a=Ne("button"),{_ref:o,_size:s,_type:l,_disabled:u,shouldAddSpace:c,handleClick:f}=E6(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,h)=>(Y(),me("button",{ref_key:"_ref",ref:o,class:ue([P(a).b(),P(a).m(P(l)),P(a).m(P(s)),P(a).is("disabled",P(u)),P(a).is("loading",d.loading),P(a).is("plain",d.plain),P(a).is("round",d.round),P(a).is("circle",d.circle),P(a).is("text",d.text),P(a).is("link",d.link),P(a).is("has-bg",d.bg)]),"aria-disabled":P(u)||d.loading,disabled:P(u)||d.loading,autofocus:d.autofocus,type:d.nativeType,style:xt(P(i)),onClick:h[0]||(h[0]=(...v)=>P(f)&&P(f)(...v))},[d.loading?(Y(),me(pt,{key:0},[d.$slots.loading?$e(d.$slots,"loading",{key:0}):(Y(),_e(P(lr),{key:1,class:ue(P(a).is("loading"))},{default:Z(()=>[(Y(),_e(nn(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(Y(),_e(P(lr),{key:1},{default:Z(()=>[d.icon?(Y(),_e(nn(d.icon),{key:0})):$e(d.$slots,"icon",{key:1})]),_:3})):Fe("v-if",!0),d.$slots.default?(Y(),me("span",{key:2,class:ue({[P(a).em("text","expand")]:P(c)})},[$e(d.$slots,"default")],2)):Fe("v-if",!0)],14,j6))}});var K6=Ze(q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const X6={size:ig.size,type:ig.type},Z6=ce({name:"ElButtonGroup"}),Q6=ce({...Z6,props:X6,setup(e){const t=e;At(ZM,fn({size:tn(t,"size"),type:tn(t,"type")}));const r=Ne("button");return(n,i)=>(Y(),me("div",{class:ue(`${P(r).b("group")}`)},[$e(n.$slots,"default")],2))}});var eA=Ze(Q6,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const J6=hr(K6,{ButtonGroup:eA});fa(eA);var e8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Hi=new Map;let s1;Nt&&(document.addEventListener("mousedown",e=>s1=e),document.addEventListener("mouseup",e=>{for(const t of Hi.values())for(const{documentHandler:r}of t)r(e,s1)}));function l1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:ys(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,c=e.contains(o)||e.contains(s),f=e===o,d=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),h=a&&(a.contains(o)||a.contains(s));l||u||c||f||d||h||t.value(n,i)}}const t8={beforeMount(e,t){Hi.has(e)||Hi.set(e,[]),Hi.get(e).push({documentHandler:l1(e,t),bindingFn:t.value})},updated(e,t){Hi.has(e)||Hi.set(e,[]);const r=Hi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:l1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Hi.delete(e)}};var u1=!1,qa,og,sg,Af,Pf,tA,Ef,lg,ug,cg,rA,fg,dg,nA,iA;function vr(){if(!u1){u1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(fg=/\b(iPhone|iP[ao]d)/.exec(e),dg=/\b(iP[ao]d)/.exec(e),cg=/Android/i.exec(e),nA=/FBAN\/\w+;/i.exec(e),iA=/Mobile/i.exec(e),rA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);tA=n?parseFloat(n[1])+4:qa,og=t[2]?parseFloat(t[2]):NaN,sg=t[3]?parseFloat(t[3]):NaN,Af=t[4]?parseFloat(t[4]):NaN,Af?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Pf=t&&t[1]?parseFloat(t[1]):NaN):Pf=NaN}else qa=og=sg=Pf=Af=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Ef=i?parseFloat(i[1].replace("_",".")):!0}else Ef=!1;lg=!!r[2],ug=!!r[3]}else Ef=lg=ug=!1}}var hg={ie:function(){return vr()||qa},ieCompatibilityMode:function(){return vr()||tA>qa},ie64:function(){return hg.ie()&&rA},firefox:function(){return vr()||og},opera:function(){return vr()||sg},webkit:function(){return vr()||Af},safari:function(){return hg.webkit()},chrome:function(){return vr()||Pf},windows:function(){return vr()||lg},osx:function(){return vr()||Ef},linux:function(){return vr()||ug},iphone:function(){return vr()||fg},mobile:function(){return vr()||fg||dg||cg||iA},nativeApp:function(){return vr()||nA},android:function(){return vr()||cg},ipad:function(){return vr()||dg}},r8=hg,Tc=!!(typeof window<"u"&&window.document&&window.document.createElement),n8={canUseDOM:Tc,canUseWorkers:typeof Worker<"u",canUseEventListeners:Tc&&!!(window.addEventListener||window.attachEvent),canUseViewport:Tc&&!!window.screen,isInWorker:!Tc},aA=n8,oA;aA.canUseDOM&&(oA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function i8(e,t){if(!aA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&oA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var a8=i8,c1=10,f1=40,d1=800;function sA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*c1,i=r*c1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=f1,i*=f1):(n*=d1,i*=d1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}sA.getEventType=function(){return r8.firefox()?"DOMMouseScroll":a8("wheel")?"wheel":"mousewheel"};var o8=sA;/** * Checks if an event is supported in the current execution environment. * * NOTE: This will not work correctly for non-generic events such as `change`, @@ -22,18 +22,18 @@ var fD=Object.defineProperty;var dD=(e,t,r)=>t in e?fD(e,t,{enumerable:!0,config * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const s8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=o8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},l8={beforeMount(e,t){s8(e,t.value)}},lA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Xu,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},uA={[go]:e=>He(e)||$t(e)||Br(e),change:e=>He(e)||$t(e)||Br(e)},$s=Symbol("checkboxGroupContextKey"),u8=({model:e,isChecked:t})=>{const r=Ee($s,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!ad(s)&&e.value.length>=s&&!t.value||!ad(l)&&e.value.length<=l&&t.value});return{isDisabled:rh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},c8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Ee($s,void 0),{formItem:s}=Zu(),{emit:l}=ct();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function c(v,p){l("change",u(v),p)}function f(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ft(),c(t.value,v)))}const h=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return Se(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:f,onClickRoot:d}},f8=e=>{const t=B(!1),{emit:r}=ct(),n=Ee($s,void 0),i=k(()=>ad(n)===!1),a=B(!1);return{model:k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&be(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(go,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},d8=(e,t,{model:r})=>{const n=Ee($s,void 0),i=B(!1),a=k(()=>{const u=r.value;return Br(u)?u:be(u)?Xe(e.label)?u.map(Ke).some(c=>P5(c,e.label)):u.map(Ke).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},h8=(e,{model:t})=>{function r(){be(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},cA=(e,t)=>{const{formItem:r}=Zu(),{model:n,isGroup:i,isLimitExceeded:a}=f8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c}=d8(e,t,{model:n}),{isDisabled:f}=u8({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=Py(e,{formItemContext:r,disableIdGeneration:c,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=c8(e,{model:n,isLimitExceeded:a,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return h8(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:f,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c,model:n,handleChange:v,onClickRoot:p}},v8=["tabindex","role","aria-checked"],p8=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],g8=["id","aria-hidden","disabled","value","name","tabindex"],m8=ce({name:"ElCheckbox"}),y8=ce({...m8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=cA(t,r),h=Ne("checkbox"),v=k(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=k(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(Y(),_e(nn(!E(u)&&E(i)?"span":"label"),{class:ue(E(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:E(d)},{default:Z(()=>[ae("span",{class:ue(E(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?nr((Y(),me("input",{key:0,id:E(n),"onUpdate:modelValue":m[0]||(m[0]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:E(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,p8)),[[Qf,E(c)]]):nr((Y(),me("input",{key:1,id:E(n),"onUpdate:modelValue":m[4]||(m[4]=y=>Ct(c)?c.value=y:null),class:ue(E(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:E(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>E(f)&&E(f)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,g8)),[[Qf,E(c)]]),ae("span",{class:ue(E(h).e("inner"))},null,2)],10,v8),E(u)?(Y(),me("span",{key:0,class:ue(E(h).e("label"))},[$e(g.$slots,"default"),g.$slots.default?Fe("v-if",!0):(Y(),me(pt,{key:0},[Bt(Me(g.label),1)],64))],2)):Fe("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var _8=Ze(y8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const b8=["name","tabindex","disabled","true-value","false-value"],w8=["name","tabindex","disabled","value"],x8=ce({name:"ElCheckboxButton"}),S8=ce({...x8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=cA(t,r),u=Ee($s,void 0),c=Ne("checkbox"),f=k(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=k(()=>[c.b("button"),c.bm("button",o.value),c.is("disabled",a.value),c.is("checked",i.value),c.is("focus",n.value)]);return(h,v)=>(Y(),me("label",{class:ue(E(d))},[h.trueLabel||h.falseLabel?nr((Y(),me("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,b8)),[[Qf,E(s)]]):nr((Y(),me("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>Ct(s)?s.value=p:null),class:ue(E(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:E(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>E(l)&&E(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,w8)),[[Qf,E(s)]]),h.$slots.default||h.label?(Y(),me("span",{key:2,class:ue(E(c).be("button","inner")),style:St(E(i)?E(f):void 0)},[$e(h.$slots,"default",{},()=>[Bt(Me(h.label),1)])],6)):Fe("v-if",!0)],2))}});var fA=Ze(S8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const C8=tt({modelValue:{type:Le(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Xu,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),T8={[go]:e=>be(e),change:e=>be(e)},M8=ce({name:"ElCheckboxGroup"}),A8=ce({...M8,props:C8,emits:T8,setup(e,{emit:t}){const r=e,n=Ne("checkbox"),{formItem:i}=Zu(),{inputId:a,isLabeledByFormItem:o}=Py(r,{formItemContext:i}),s=async u=>{t(go,u),await Ft(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return At($s,{...k5($d(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),Se(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return Y(),_e(nn(u.tag),{id:E(a),class:ue(E(n).b("group")),role:"group","aria-label":E(o)?void 0:u.label||"checkbox-group","aria-labelledby":E(o)?(f=E(i))==null?void 0:f.labelId:void 0},{default:Z(()=>[$e(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var dA=Ze(A8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Cs=hr(_8,{CheckboxButton:fA,CheckboxGroup:dA});fa(fA);fa(dA);const E8=tt({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Yu,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),P8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},L8=ce({name:"ElTag"}),D8=ce({...L8,props:E8,emits:P8,setup(e,{emit:t}){const r=e,n=ia(),i=Ne("tag"),a=k(()=>{const{type:l,hit:u,effect:c,closable:f,round:d}=r;return[i.b(),i.is("closable",f),i.m(l),i.m(n.value),i.m(c),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(Y(),me("span",{key:0,class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],6)):(Y(),_e(Ci,{key:1,name:`${E(i).namespace.value}-zoom-in-center`,appear:""},{default:Z(()=>[ae("span",{class:ue(E(a)),style:St({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(E(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(E(lr),{key:0,class:ue(E(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(E(Yp))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],6)]),_:3},8,["name"]))}});var I8=Ze(D8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const O8=hr(I8),hA=Symbol("rowContextKey"),R8=["start","center","end","space-around","space-between","space-evenly"],k8=["top","middle","bottom"],N8=tt({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:R8,default:"start"},align:{type:String,values:k8,default:"top"}}),F8=ce({name:"ElRow"}),B8=ce({...F8,props:N8,setup(e){const t=e,r=Ne("row"),n=k(()=>t.gutter);At(hA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var $8=Ze(B8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const vA=hr($8),H8=tt({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Le([Number,Object]),default:()=>Ya({})},sm:{type:Le([Number,Object]),default:()=>Ya({})},md:{type:Le([Number,Object]),default:()=>Ya({})},lg:{type:Le([Number,Object]),default:()=>Ya({})},xl:{type:Le([Number,Object]),default:()=>Ya({})}}),z8=ce({name:"ElCol"}),W8=ce({...z8,props:H8,setup(e){const t=e,{gutter:r}=Ee(hA,{gutter:k(()=>0)}),n=Ne("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];$t(c)&&(u==="span"?o.push(n.b(`${t[u]}`)):c>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{$t(t[u])?o.push(n.b(`${u}-${t[u]}`)):Xe(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{o.push(c!=="span"?n.b(`${u}-${c}-${f}`):n.b(`${u}-${f}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(E(a)),style:St(E(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ze(W8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const pA=hr(V8),G8=ce({name:"ElCollapseTransition"}),U8=ce({...G8,setup(e){const t=Ne("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(Y(),_e(Ci,ca({name:E(t).b()},RI(r)),{default:Z(()=>[$e(n.$slots,"default")]),_:3},16,["name"]))}});var Lf=Ze(U8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);Lf.install=e=>{e.component(Lf.name,Lf)};const j8=Lf,Y8=ce({inheritAttrs:!1});function q8(e,t,r,n,i,a){return $e(e.$slots,"default")}var K8=Ze(Y8,[["render",q8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const X8=ce({name:"ElCollectionItem",inheritAttrs:!1});function Z8(e,t,r,n,i,a){return $e(e.$slots,"default")}var Q8=Ze(X8,[["render",Z8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const J8="data-el-collection-item",eW=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...K8,name:t,setup(){const s=B(null),l=new Map;At(n,{itemMap:l,getItems:()=>{const c=E(s);if(!c)return[];const f=Array.from(c.querySelectorAll(`[${J8}]`));return[...l.values()].sort((h,v)=>f.indexOf(h.ref)-f.indexOf(v.ref))},collectionRef:s})}},o={...Q8,name:r,setup(s,{attrs:l}){const u=B(null),c=Ee(n,void 0);At(i,{collectionItemRef:u}),wt(()=>{const f=E(u);f&&c.itemMap.set(f,{ref:f,...l})}),Xt(()=>{const f=E(u);c.itemMap.delete(f)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Kh=tt({trigger:bu.trigger,effect:{...qr.effect,default:"light"},type:{type:Le(String)},placement:{type:Le(String),default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Le([Number,String]),default:0},maxHeight:{type:Le([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Le(Object)},teleported:qr.teleported});tt({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wn}});tt({onKeydown:{type:Le(Function)}});Ot.down,Ot.pageDown,Ot.home;Ot.up,Ot.pageUp,Ot.end;eW("Dropdown");let tW=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Ot.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Ot.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Ot.tab:{wf(t,"mouseleave");break}case Ot.enter:case Ot.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},rW=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new tW(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Ot.down:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Ot.up:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Ot.tab:{wf(t.currentTarget,"mouseleave");break}case Ot.enter:case Ot.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},nW=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new rW(n,t)})}};const iW=ce({name:"ElMenuCollapseTransition",setup(){const e=Ne("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Zo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){ss(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Ol(r,e.m("collapse"))?(ss(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Zo(r,e.m("collapse"))):(Zo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),ss(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Zo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function aW(e,t,r,n,i,a){return Y(),_e(Ci,ca({mode:"out-in"},e.listeners),{default:Z(()=>[$e(e.$slots,"default")]),_:3},16)}var oW=Ze(iW,[["render",aW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function gA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function sW(e){return k(()=>{const r=e.backgroundColor;return r?new JM(r).shade(20).toString():""})}const mA=(e,t)=>{const r=Ne("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":sW(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},lW=tt({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wn},expandOpenIcon:{type:Wn},collapseCloseIcon:{type:Wn},collapseOpenIcon:{type:Wn}}),Mc="ElSubMenu";var Ry=ce({name:Mc,props:lW,setup(e,{slots:t,expose:r}){vy({from:"popper-append-to-body",replacement:"teleported",scope:Mc,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=ct(),{indexPath:i,parentMenu:a}=gA(n,k(()=>e.index)),o=Ne("menu"),s=Ne("sub-menu"),l=Ee("rootMenu");l||na(Mc,"can not inject root menu");const u=Ee(`subMenu:${a.value.uid}`);u||na(Mc,"can not inject sub menu");const c=B({}),f=B({});let d;const h=B(!1),v=B(),p=B(null),g=k(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=k(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:lM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:dy),y=k(()=>u.level===0),_=k(()=>{var R;const j=(R=e.teleported)!=null?R:e.popperAppendToBody;return j===void 0?y.value:j}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=k(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),S=k(()=>{let R=!1;return Object.values(c.value).forEach(j=>{j.active&&(R=!0)}),Object.values(f.value).forEach(j=>{j.active&&(R=!0)}),R}),C=k(()=>l.props.backgroundColor||""),M=k(()=>l.props.activeTextColor||""),P=k(()=>l.props.textColor||""),A=k(()=>l.props.mode),T=fn({index:e.index,indexPath:i,active:S}),D=k(()=>A.value!=="horizontal"?{color:P.value}:{borderBottomColor:S.value?l.props.activeTextColor?M.value:"":"transparent",color:S.value?M.value:P.value}),N=()=>{var R,j,re;return(re=(j=(R=p.value)==null?void 0:R.popperRef)==null?void 0:j.popperInstanceRef)==null?void 0:re.destroy()},H=R=>{R||N()},$=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},G=(R,j=e.showTimeout)=>{var re;R.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=kp(()=>{l.openMenu(e.index,i.value)},j),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},F=(R=!1)=>{var j,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=kp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&R&&((j=n.parent)==null?void 0:j.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};Se(()=>l.props.collapse,R=>H(Boolean(R)));{const R=re=>{f.value[re.index]=re},j=re=>{delete f.value[re.index]};At(`subMenu:${n.uid}`,{addSubMenu:R,removeSubMenu:j,handleMouseleave:F,mouseInChild:h,level:u.level+1})}return r({opened:w}),wt(()=>{l.addSubMenu(T),u.addSubMenu(T)}),Xt(()=>{u.removeSubMenu(T),l.removeSubMenu(T)}),()=>{var R;const j=[(R=t.title)==null?void 0:R.call(t),Ce(lr,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>He(m.value)?Ce(n.appContext.components[m.value]):Ce(m.value)})],re=mA(l.props,u.level+1),oe=l.isMenuPopup?Ce(Ju,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var ye;return Ce("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Ae=>G(Ae,100),onMouseleave:()=>F(!0),onFocus:Ae=>G(Ae,100)},[Ce("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)])])},default:()=>Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:$},j)}):Ce(pt,{},[Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:$},j),Ce(j8,{},{default:()=>{var ye;return nr(Ce("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)]),[[yi,w.value]])}})]);return Ce("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:G,onMouseleave:()=>F(!0),onFocus:G},[oe])}}});const uW=tt({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Le(Array),default:()=>Ya([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Xh=e=>Array.isArray(e)&&e.every(t=>He(t)),cW={close:(e,t)=>He(e)&&Xh(t),open:(e,t)=>He(e)&&Xh(t),select:(e,t,r,n)=>He(e)&&Xh(t)&&Xe(r)&&(n===void 0||n instanceof Promise)};var fW=ce({name:"ElMenu",props:uW,emits:cW,setup(e,{emit:t,slots:r,expose:n}){const i=ct(),a=i.appContext.config.globalProperties.$router,o=B(),s=Ne("menu"),l=Ne("sub-menu"),u=B(-1),c=B(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=B(e.defaultActive),d=B({}),h=B({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const A=f.value&&d.value[f.value];if(!A||e.mode==="horizontal"||e.collapse)return;A.indexPath.forEach(D=>{const N=h.value[D];N&&g(D,N.indexPath)})},g=(A,T)=>{c.value.includes(A)||(e.uniqueOpened&&(c.value=c.value.filter(D=>T.includes(D))),c.value.push(A),t("open",A,T))},m=A=>{const T=c.value.indexOf(A);T!==-1&&c.value.splice(T,1)},y=(A,T)=>{m(A),t("close",A,T)},_=({index:A,indexPath:T})=>{c.value.includes(A)?y(A,T):g(A,T)},b=A=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:T,indexPath:D}=A;if(!(gu(T)||gu(D)))if(e.router&&a){const N=A.route||T,H=a.push(N).then($=>($||(f.value=T),$));t("select",T,D,{index:T,indexPath:D,route:N},H)}else f.value=T,t("select",T,D,{index:T,indexPath:D})},x=A=>{const T=d.value,D=T[A]||f.value&&T[f.value]||T[e.defaultActive];D?f.value=D.index:f.value=A},w=()=>{var A,T;if(!o.value)return-1;const D=Array.from((T=(A=o.value)==null?void 0:A.childNodes)!=null?T:[]).filter(j=>j.nodeName!=="#text"||j.nodeValue),N=64,H=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),$=Number.parseInt(getComputedStyle(o.value).paddingRight,10),G=o.value.clientWidth-H-$;let F=0,R=0;return D.forEach((j,re)=>{F+=j.offsetWidth||0,F<=G-N&&(R=re+1)}),R===D.length?-1:R},S=(A,T=33.34)=>{let D;return()=>{D&&clearTimeout(D),D=setTimeout(()=>{A()},T)}};let C=!0;const M=()=>{const A=()=>{u.value=-1,Ft(()=>{u.value=w()})};C?A():S(A)(),C=!1};Se(()=>e.defaultActive,A=>{d.value[A]||(f.value=""),x(A)}),Se(()=>e.collapse,A=>{A&&(c.value=[])}),Se(d.value,p);let P;io(()=>{e.mode==="horizontal"&&e.ellipsis?P=gs(o,M).stop:P==null||P()});{const A=H=>{h.value[H.index]=H},T=H=>{delete h.value[H.index]};At("rootMenu",fn({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:v,addMenuItem:H=>{d.value[H.index]=H},removeMenuItem:H=>{delete d.value[H.index]},addSubMenu:A,removeSubMenu:T,openMenu:g,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),At(`subMenu:${i.uid}`,{addSubMenu:A,removeSubMenu:T,mouseInChild:B(!1),level:0})}return wt(()=>{e.mode==="horizontal"&&new nW(i.vnode.el,s.namespace.value)}),n({open:T=>{const{indexPath:D}=h.value[T];D.forEach(N=>g(N,D))},close:m,handleResize:M}),()=>{var A,T;let D=(T=(A=r.default)==null?void 0:A.call(r))!=null?T:[];const N=[];if(e.mode==="horizontal"&&o.value){const G=Cf(D),F=u.value===-1?G:G.slice(0,u.value),R=u.value===-1?[]:G.slice(u.value);R!=null&&R.length&&e.ellipsis&&(D=F,N.push(Ce(Ry,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>Ce(lr,{class:l.e("icon-more")},{default:()=>Ce(M3)}),default:()=>R})))}const H=mA(e,0),$=Ce("ul",{key:String(e.collapse),role:"menubar",ref:o,style:H.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...D,...N]);return e.collapseTransition&&e.mode==="vertical"?Ce(oW,()=>$):$}}});const dW=tt({index:{type:Le([String,null]),default:null},route:{type:Le([String,Object])},disabled:Boolean}),hW={click:e=>He(e.index)&&Array.isArray(e.indexPath)},Zh="ElMenuItem",vW=ce({name:Zh,components:{ElTooltip:Ju},props:dW,emits:hW,setup(e,{emit:t}){const r=ct(),n=Ee("rootMenu"),i=Ne("menu"),a=Ne("menu-item");n||na(Zh,"can not inject root menu");const{parentMenu:o,indexPath:s}=gA(r,tn(e,"index")),l=Ee(`subMenu:${o.value.uid}`);l||na(Zh,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),c=fn({index:e.index,indexPath:s,active:u}),f=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",c))};return wt(()=>{l.addSubMenu(c),n.addMenuItem(c)}),Xt(()=>{l.removeSubMenu(c),n.removeMenuItem(c)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:f}}});function pW(e,t,r,n,i,a){const o=_r("el-tooltip");return Y(),me("li",{class:ue([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(Y(),_e(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:Z(()=>[$e(e.$slots,"title")]),default:Z(()=>[ae("div",{class:ue(e.nsMenu.be("tooltip","trigger"))},[$e(e.$slots,"default")],2)]),_:3},8,["effect"])):(Y(),me(pt,{key:1},[$e(e.$slots,"default"),$e(e.$slots,"title")],64))],2)}var yA=Ze(vW,[["render",pW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const gW={title:String},mW="ElMenuItemGroup",yW=ce({name:mW,props:gW,setup(){return{ns:Ne("menu-item-group")}}});function _W(e,t,r,n,i,a){return Y(),me("li",{class:ue(e.ns.b())},[ae("div",{class:ue(e.ns.e("title"))},[e.$slots.title?$e(e.$slots,"title",{key:1}):(Y(),me(pt,{key:0},[Bt(Me(e.title),1)],64))],2),ae("ul",null,[$e(e.$slots,"default")])],2)}var _A=Ze(yW,[["render",_W],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const bW=hr(fW,{MenuItem:yA,MenuItemGroup:_A,SubMenu:Ry}),wW=fa(yA);fa(_A);const xW=fa(Ry),SW=tt({trigger:bu.trigger,placement:Kh.placement,disabled:bu.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Kh.popperOptions,tabindex:Kh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),CW={"update:visible":e=>Br(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},TW="onUpdate:visible",MW=ce({name:"ElPopover"}),AW=ce({...MW,props:SW,emits:CW,setup(e,{expose:t,emit:r}){const n=e,i=k(()=>n[TW]),a=Ne("popover"),o=B(),s=k(()=>{var g;return(g=E(o))==null?void 0:g.popperRef}),l=k(()=>[{width:po(n.width)},n.popperStyle]),u=k(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),c=k(()=>n.transition===`${a.namespace.value}-fade-in-linear`),f=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:f}),(g,m)=>(Y(),_e(E(Ju),ca({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":E(u),"popper-style":E(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":E(c),"onUpdate:visible":E(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:Z(()=>[g.title?(Y(),me("div",{key:0,class:ue(E(a).e("title")),role:"title"},Me(g.title),3)):Fe("v-if",!0),$e(g.$slots,"default",{},()=>[Bt(Me(g.content),1)])]),default:Z(()=>[g.$slots.reference?$e(g.$slots,"reference",{key:0}):Fe("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var EW=Ze(AW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const h1=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var PW={mounted(e,t){h1(e,t)},updated(e,t){h1(e,t)}};const LW="popover",DW=H3(PW,LW),IW=hr(EW,{directive:DW}),OW=tt({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Wn},inactiveIcon:{type:Wn},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Le(Function)},size:{type:String,validator:z3},tabindex:{type:[String,Number]}}),RW={[go]:e=>Br(e)||He(e)||$t(e),[qp]:e=>Br(e)||He(e)||$t(e),[Kp]:e=>Br(e)||He(e)||$t(e)},kW=["onClick"],NW=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],FW=["aria-hidden"],BW=["aria-hidden"],$W=["aria-hidden"],vg="ElSwitch",HW=ce({name:vg}),zW=ce({...HW,props:OW,emits:RW,setup(e,{expose:t,emit:r}){const n=e,i=ct(),{formItem:a}=Zu(),o=ia(),s=Ne("switch");vy({from:'"value"',replacement:'"model-value" or "v-model"',scope:vg,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var x;return!!((x=i.vnode.props)!=null&&x.value)}));const{inputId:l}=Py(n,{formItemContext:a}),u=rh(k(()=>n.loading)),c=B(n.modelValue!==!1),f=B(),d=B(),h=k(()=>[s.b(),s.m(o.value),s.is("disabled",u.value),s.is("checked",g.value)]),v=k(()=>({width:po(n.width)}));Se(()=>n.modelValue,()=>{c.value=!0}),Se(()=>n.value,()=>{c.value=!1});const p=k(()=>c.value?n.modelValue:n.value),g=k(()=>p.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(p.value)||(r(go,n.inactiveValue),r(qp,n.inactiveValue),r(Kp,n.inactiveValue)),Se(g,x=>{var w;f.value.checked=x,n.validateEvent&&((w=a==null?void 0:a.validate)==null||w.call(a,"change").catch(S=>void 0))});const m=()=>{const x=g.value?n.inactiveValue:n.activeValue;r(go,x),r(qp,x),r(Kp,x),Ft(()=>{f.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:x}=n;if(!x){m();return}const w=x();[jf(w),Br(w)].includes(!0)||na(vg,"beforeChange must return type `Promise` or `boolean`"),jf(w)?w.then(C=>{C&&m()}).catch(C=>{}):w&&m()},_=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),b=()=>{var x,w;(w=(x=f.value)==null?void 0:x.focus)==null||w.call(x)};return wt(()=>{f.value.checked=g.value}),t({focus:b,checked:g}),(x,w)=>(Y(),me("div",{class:ue(E(h)),style:St(E(_)),onClick:Jf(y,["prevent"])},[ae("input",{id:E(l),ref_key:"input",ref:f,class:ue(E(s).e("input")),type:"checkbox",role:"switch","aria-checked":E(g),"aria-disabled":E(u),name:x.name,"true-value":x.activeValue,"false-value":x.inactiveValue,disabled:E(u),tabindex:x.tabindex,onChange:m,onKeydown:UO(y,["enter"])},null,42,NW),!x.inlinePrompt&&(x.inactiveIcon||x.inactiveText)?(Y(),me("span",{key:0,class:ue([E(s).e("label"),E(s).em("label","left"),E(s).is("active",!E(g))])},[x.inactiveIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.inactiveIcon)))]),_:1})):Fe("v-if",!0),!x.inactiveIcon&&x.inactiveText?(Y(),me("span",{key:1,"aria-hidden":E(g)},Me(x.inactiveText),9,FW)):Fe("v-if",!0)],2)):Fe("v-if",!0),ae("span",{ref_key:"core",ref:d,class:ue(E(s).e("core")),style:St(E(v))},[x.inlinePrompt?(Y(),me("div",{key:0,class:ue(E(s).e("inner"))},[x.activeIcon||x.inactiveIcon?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("icon"))},{default:Z(()=>[(Y(),_e(nn(E(g)?x.activeIcon:x.inactiveIcon)))]),_:1},8,["class"])):x.activeText||x.inactiveText?(Y(),me("span",{key:1,class:ue(E(s).is("text")),"aria-hidden":!E(g)},Me(E(g)?x.activeText:x.inactiveText),11,BW)):Fe("v-if",!0)],2)):Fe("v-if",!0),ae("div",{class:ue(E(s).e("action"))},[x.loading?(Y(),_e(E(lr),{key:0,class:ue(E(s).is("loading"))},{default:Z(()=>[ee(E(hy))]),_:1},8,["class"])):Fe("v-if",!0)],2)],6),!x.inlinePrompt&&(x.activeIcon||x.activeText)?(Y(),me("span",{key:1,class:ue([E(s).e("label"),E(s).em("label","right"),E(s).is("active",E(g))])},[x.activeIcon?(Y(),_e(E(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(x.activeIcon)))]),_:1})):Fe("v-if",!0),!x.activeIcon&&x.activeText?(Y(),me("span",{key:1,"aria-hidden":!E(g)},Me(x.activeText),9,$W)):Fe("v-if",!0)],2)):Fe("v-if",!0)],14,kW))}});var WW=Ze(zW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const VW=hr(WW);/*! +*/const s8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=o8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},l8={beforeMount(e,t){s8(e,t.value)}},lA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Xu,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},uA={[go]:e=>He(e)||$t(e)||Br(e),change:e=>He(e)||$t(e)||Br(e)},$s=Symbol("checkboxGroupContextKey"),u8=({model:e,isChecked:t})=>{const r=Pe($s,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!ad(s)&&e.value.length>=s&&!t.value||!ad(l)&&e.value.length<=l&&t.value});return{isDisabled:rh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},c8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Pe($s,void 0),{formItem:s}=Zu(),{emit:l}=ct();function u(v){var p,g;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(g=e.falseLabel)!=null?g:!1}function c(v,p){l("change",u(v),p)}function f(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function d(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(m=>m.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Ft(),c(t.value,v)))}const h=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return xe(()=>e.modelValue,()=>{h.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:f,onClickRoot:d}},f8=e=>{const t=B(!1),{emit:r}=ct(),n=Pe($s,void 0),i=k(()=>ad(n)===!1),a=B(!1);return{model:k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&be(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value),a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(go,s),t.value=s)}}),isGroup:i,isLimitExceeded:a}},d8=(e,t,{model:r})=>{const n=Pe($s,void 0),i=B(!1),a=k(()=>{const u=r.value;return Br(u)?u:be(u)?Xe(e.label)?u.map(Ke).some(c=>E5(c,e.label)):u.map(Ke).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=ia(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!(t.default||e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},h8=(e,{model:t})=>{function r(){be(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},cA=(e,t)=>{const{formItem:r}=Zu(),{model:n,isGroup:i,isLimitExceeded:a}=f8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c}=d8(e,t,{model:n}),{isDisabled:f}=u8({model:n,isChecked:s}),{inputId:d,isLabeledByFormItem:h}=Ey(e,{formItemContext:r,disableIdGeneration:c,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=c8(e,{model:n,isLimitExceeded:a,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:h});return h8(e,{model:n}),{inputId:d,isLabeledByFormItem:h,isChecked:s,isDisabled:f,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c,model:n,handleChange:v,onClickRoot:p}},v8=["tabindex","role","aria-checked"],p8=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],g8=["id","aria-hidden","disabled","value","name","tabindex"],m8=ce({name:"ElCheckbox"}),y8=ce({...m8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=cA(t,r),h=Ne("checkbox"),v=k(()=>[h.b(),h.m(l.value),h.is("disabled",o.value),h.is("bordered",t.border),h.is("checked",a.value)]),p=k(()=>[h.e("input"),h.is("disabled",o.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(g,m)=>(Y(),_e(nn(!P(u)&&P(i)?"span":"label"),{class:ue(P(v)),"aria-controls":g.indeterminate?g.controls:null,onClick:P(d)},{default:Z(()=>[ae("span",{class:ue(P(p)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?nr((Y(),me("input",{key:0,id:P(n),"onUpdate:modelValue":m[0]||(m[0]=y=>Ct(c)?c.value=y:null),class:ue(P(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:P(o),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:m[1]||(m[1]=(...y)=>P(f)&&P(f)(...y)),onFocus:m[2]||(m[2]=y=>s.value=!0),onBlur:m[3]||(m[3]=y=>s.value=!1)},null,42,p8)),[[Qf,P(c)]]):nr((Y(),me("input",{key:1,id:P(n),"onUpdate:modelValue":m[4]||(m[4]=y=>Ct(c)?c.value=y:null),class:ue(P(h).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:P(o),value:g.label,name:g.name,tabindex:g.tabindex,onChange:m[5]||(m[5]=(...y)=>P(f)&&P(f)(...y)),onFocus:m[6]||(m[6]=y=>s.value=!0),onBlur:m[7]||(m[7]=y=>s.value=!1)},null,42,g8)),[[Qf,P(c)]]),ae("span",{class:ue(P(h).e("inner"))},null,2)],10,v8),P(u)?(Y(),me("span",{key:0,class:ue(P(h).e("label"))},[$e(g.$slots,"default"),g.$slots.default?Fe("v-if",!0):(Y(),me(pt,{key:0},[Bt(Me(g.label),1)],64))],2)):Fe("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var _8=Ze(y8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const b8=["name","tabindex","disabled","true-value","false-value"],w8=["name","tabindex","disabled","value"],S8=ce({name:"ElCheckboxButton"}),x8=ce({...S8,props:lA,emits:uA,setup(e){const t=e,r=Yd(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=cA(t,r),u=Pe($s,void 0),c=Ne("checkbox"),f=k(()=>{var h,v,p,g;const m=(v=(h=u==null?void 0:u.fill)==null?void 0:h.value)!=null?v:"";return{backgroundColor:m,borderColor:m,color:(g=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?g:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}}),d=k(()=>[c.b("button"),c.bm("button",o.value),c.is("disabled",a.value),c.is("checked",i.value),c.is("focus",n.value)]);return(h,v)=>(Y(),me("label",{class:ue(P(d))},[h.trueLabel||h.falseLabel?nr((Y(),me("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Ct(s)?s.value=p:null),class:ue(P(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:P(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:v[1]||(v[1]=(...p)=>P(l)&&P(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1)},null,42,b8)),[[Qf,P(s)]]):nr((Y(),me("input",{key:1,"onUpdate:modelValue":v[4]||(v[4]=p=>Ct(s)?s.value=p:null),class:ue(P(c).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:P(a),value:h.label,onChange:v[5]||(v[5]=(...p)=>P(l)&&P(l)(...p)),onFocus:v[6]||(v[6]=p=>n.value=!0),onBlur:v[7]||(v[7]=p=>n.value=!1)},null,42,w8)),[[Qf,P(s)]]),h.$slots.default||h.label?(Y(),me("span",{key:2,class:ue(P(c).be("button","inner")),style:xt(P(i)?P(f):void 0)},[$e(h.$slots,"default",{},()=>[Bt(Me(h.label),1)])],6)):Fe("v-if",!0)],2))}});var fA=Ze(x8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const C8=tt({modelValue:{type:Le(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Xu,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),T8={[go]:e=>be(e),change:e=>be(e)},M8=ce({name:"ElCheckboxGroup"}),A8=ce({...M8,props:C8,emits:T8,setup(e,{emit:t}){const r=e,n=Ne("checkbox"),{formItem:i}=Zu(),{inputId:a,isLabeledByFormItem:o}=Ey(r,{formItemContext:i}),s=async u=>{t(go,u),await Ft(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return At($s,{...k5($d(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),xe(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return Y(),_e(nn(u.tag),{id:P(a),class:ue(P(n).b("group")),role:"group","aria-label":P(o)?void 0:u.label||"checkbox-group","aria-labelledby":P(o)?(f=P(i))==null?void 0:f.labelId:void 0},{default:Z(()=>[$e(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var dA=Ze(A8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Cs=hr(_8,{CheckboxButton:fA,CheckboxGroup:dA});fa(fA);fa(dA);const P8=tt({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:Yu,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),E8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},L8=ce({name:"ElTag"}),D8=ce({...L8,props:P8,emits:E8,setup(e,{emit:t}){const r=e,n=ia(),i=Ne("tag"),a=k(()=>{const{type:l,hit:u,effect:c,closable:f,round:d}=r;return[i.b(),i.is("closable",f),i.m(l),i.m(n.value),i.m(c),i.is("hit",u),i.is("round",d)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(Y(),me("span",{key:0,class:ue(P(a)),style:xt({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(P(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(P(lr),{key:0,class:ue(P(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(P(Yp))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],6)):(Y(),_e(Ci,{key:1,name:`${P(i).namespace.value}-zoom-in-center`,appear:""},{default:Z(()=>[ae("span",{class:ue(P(a)),style:xt({backgroundColor:l.color}),onClick:s},[ae("span",{class:ue(P(i).e("content"))},[$e(l.$slots,"default")],2),l.closable?(Y(),_e(P(lr),{key:0,class:ue(P(i).e("close")),onClick:Jf(o,["stop"])},{default:Z(()=>[ee(P(Yp))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],6)]),_:3},8,["name"]))}});var I8=Ze(D8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const O8=hr(I8),hA=Symbol("rowContextKey"),R8=["start","center","end","space-around","space-between","space-evenly"],k8=["top","middle","bottom"],N8=tt({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:R8,default:"start"},align:{type:String,values:k8,default:"top"}}),F8=ce({name:"ElRow"}),B8=ce({...F8,props:N8,setup(e){const t=e,r=Ne("row"),n=k(()=>t.gutter);At(hA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,t.align!=="top")]);return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(P(a)),style:xt(P(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var $8=Ze(B8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const vA=hr($8),H8=tt({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Le([Number,Object]),default:()=>Ya({})},sm:{type:Le([Number,Object]),default:()=>Ya({})},md:{type:Le([Number,Object]),default:()=>Ya({})},lg:{type:Le([Number,Object]),default:()=>Ya({})},xl:{type:Le([Number,Object]),default:()=>Ya({})}}),z8=ce({name:"ElCol"}),W8=ce({...z8,props:H8,setup(e){const t=e,{gutter:r}=Pe(hA,{gutter:k(()=>0)}),n=Ne("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];$t(c)&&(u==="span"?o.push(n.b(`${t[u]}`)):c>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{$t(t[u])?o.push(n.b(`${u}-${t[u]}`)):Xe(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{o.push(c!=="span"?n.b(`${u}-${c}-${f}`):n.b(`${u}-${f}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(Y(),_e(nn(o.tag),{class:ue(P(a)),style:xt(P(i))},{default:Z(()=>[$e(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ze(W8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const pA=hr(V8),G8=ce({name:"ElCollapseTransition"}),U8=ce({...G8,setup(e){const t=Ne("collapse-transition"),r={beforeEnter(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0},enter(n){n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.maxHeight=`${n.scrollHeight}px`,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.maxHeight=0,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden"},afterEnter(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow},beforeLeave(n){n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.maxHeight=`${n.scrollHeight}px`,n.style.overflow="hidden"},leave(n){n.scrollHeight!==0&&(n.style.maxHeight=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){n.style.maxHeight="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom}};return(n,i)=>(Y(),_e(Ci,ca({name:P(t).b()},RI(r)),{default:Z(()=>[$e(n.$slots,"default")]),_:3},16,["name"]))}});var Lf=Ze(U8,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);Lf.install=e=>{e.component(Lf.name,Lf)};const j8=Lf,Y8=ce({inheritAttrs:!1});function q8(e,t,r,n,i,a){return $e(e.$slots,"default")}var K8=Ze(Y8,[["render",q8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const X8=ce({name:"ElCollectionItem",inheritAttrs:!1});function Z8(e,t,r,n,i,a){return $e(e.$slots,"default")}var Q8=Ze(X8,[["render",Z8],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const J8="data-el-collection-item",eW=e=>{const t=`El${e}Collection`,r=`${t}Item`,n=Symbol(t),i=Symbol(r),a={...K8,name:t,setup(){const s=B(null),l=new Map;At(n,{itemMap:l,getItems:()=>{const c=P(s);if(!c)return[];const f=Array.from(c.querySelectorAll(`[${J8}]`));return[...l.values()].sort((h,v)=>f.indexOf(h.ref)-f.indexOf(v.ref))},collectionRef:s})}},o={...Q8,name:r,setup(s,{attrs:l}){const u=B(null),c=Pe(n,void 0);At(i,{collectionItemRef:u}),wt(()=>{const f=P(u);f&&c.itemMap.set(f,{ref:f,...l})}),Xt(()=>{const f=P(u);c.itemMap.delete(f)})}};return{COLLECTION_INJECTION_KEY:n,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:a,ElCollectionItem:o}},Kh=tt({trigger:bu.trigger,effect:{...qr.effect,default:"light"},type:{type:Le(String)},placement:{type:Le(String),default:"bottom"},popperOptions:{type:Le(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Le([Number,String]),default:0},maxHeight:{type:Le([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Le(Object)},teleported:qr.teleported});tt({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Wn}});tt({onKeydown:{type:Le(Function)}});Ot.down,Ot.pageDown,Ot.home;Ot.up,Ot.pageUp,Ot.end;eW("Dropdown");let tW=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case Ot.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case Ot.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case Ot.tab:{wf(t,"mouseleave");break}case Ot.enter:case Ot.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},rW=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new tW(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case Ot.down:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case Ot.up:{wf(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case Ot.tab:{wf(t.currentTarget,"mouseleave");break}case Ot.enter:case Ot.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},nW=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new rW(n,t)})}};const iW=ce({name:"ElMenuCollapseTransition",setup(){const e=Ne("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Zo(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){ss(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),Ol(r,e.m("collapse"))?(ss(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Zo(r,e.m("collapse"))):(Zo(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),ss(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Zo(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function aW(e,t,r,n,i,a){return Y(),_e(Ci,ca({mode:"out-in"},e.listeners),{default:Z(()=>[$e(e.$slots,"default")]),_:3},16)}var oW=Ze(iW,[["render",aW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function gA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function sW(e){return k(()=>{const r=e.backgroundColor;return r?new JM(r).shade(20).toString():""})}const mA=(e,t)=>{const r=Ne("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":sW(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},lW=tt({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Wn},expandOpenIcon:{type:Wn},collapseCloseIcon:{type:Wn},collapseOpenIcon:{type:Wn}}),Mc="ElSubMenu";var Ry=ce({name:Mc,props:lW,setup(e,{slots:t,expose:r}){vy({from:"popper-append-to-body",replacement:"teleported",scope:Mc,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=ct(),{indexPath:i,parentMenu:a}=gA(n,k(()=>e.index)),o=Ne("menu"),s=Ne("sub-menu"),l=Pe("rootMenu");l||na(Mc,"can not inject root menu");const u=Pe(`subMenu:${a.value.uid}`);u||na(Mc,"can not inject sub menu");const c=B({}),f=B({});let d;const h=B(!1),v=B(),p=B(null),g=k(()=>A.value==="horizontal"&&y.value?"bottom-start":"right-start"),m=k(()=>A.value==="horizontal"&&y.value||A.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:lM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:dy),y=k(()=>u.level===0),_=k(()=>{var R;const j=(R=e.teleported)!=null?R:e.popperAppendToBody;return j===void 0?y.value:j}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),S=k(()=>A.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),x=k(()=>{let R=!1;return Object.values(c.value).forEach(j=>{j.active&&(R=!0)}),Object.values(f.value).forEach(j=>{j.active&&(R=!0)}),R}),C=k(()=>l.props.backgroundColor||""),M=k(()=>l.props.activeTextColor||""),E=k(()=>l.props.textColor||""),A=k(()=>l.props.mode),T=fn({index:e.index,indexPath:i,active:x}),D=k(()=>A.value!=="horizontal"?{color:E.value}:{borderBottomColor:x.value?l.props.activeTextColor?M.value:"":"transparent",color:x.value?M.value:E.value}),N=()=>{var R,j,re;return(re=(j=(R=p.value)==null?void 0:R.popperRef)==null?void 0:j.popperInstanceRef)==null?void 0:re.destroy()},H=R=>{R||N()},$=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:x.value})},G=(R,j=e.showTimeout)=>{var re;R.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,d==null||d(),{stop:d}=kp(()=>{l.openMenu(e.index,i.value)},j),_.value&&((re=a.value.vnode.el)==null||re.dispatchEvent(new MouseEvent("mouseenter")))))},F=(R=!1)=>{var j,re;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(d==null||d(),u.mouseInChild.value=!1,{stop:d}=kp(()=>!h.value&&l.closeMenu(e.index,i.value),e.hideTimeout),_.value&&R&&((j=n.parent)==null?void 0:j.type.name)==="ElSubMenu"&&((re=u.handleMouseleave)==null||re.call(u,!0)))};xe(()=>l.props.collapse,R=>H(Boolean(R)));{const R=re=>{f.value[re.index]=re},j=re=>{delete f.value[re.index]};At(`subMenu:${n.uid}`,{addSubMenu:R,removeSubMenu:j,handleMouseleave:F,mouseInChild:h,level:u.level+1})}return r({opened:w}),wt(()=>{l.addSubMenu(T),u.addSubMenu(T)}),Xt(()=>{u.removeSubMenu(T),l.removeSubMenu(T)}),()=>{var R;const j=[(R=t.title)==null?void 0:R.call(t),Ce(lr,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>He(m.value)?Ce(n.appContext.components[m.value]):Ce(m.value)})],re=mA(l.props,u.level+1),oe=l.isMenuPopup?Ce(Ju,{ref:p,visible:w.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:_.value,fallbackPlacements:S.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var ye;return Ce("div",{class:[o.m(A.value),o.m("popup-container"),e.popperClass],onMouseenter:Ae=>G(Ae,100),onMouseleave:()=>F(!0),onFocus:Ae=>G(Ae,100)},[Ce("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${g.value}`)],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)])])},default:()=>Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],onClick:$},j)}):Ce(pt,{},[Ce("div",{class:s.e("title"),style:[D.value,{backgroundColor:C.value}],ref:v,onClick:$},j),Ce(j8,{},{default:()=>{var ye;return nr(Ce("ul",{role:"menu",class:[o.b(),o.m("inline")],style:re.value},[(ye=t.default)==null?void 0:ye.call(t)]),[[yi,w.value]])}})]);return Ce("li",{class:[s.b(),s.is("active",x.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:G,onMouseleave:()=>F(!0),onFocus:G},[oe])}}});const uW=tt({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Le(Array),default:()=>Ya([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Xh=e=>Array.isArray(e)&&e.every(t=>He(t)),cW={close:(e,t)=>He(e)&&Xh(t),open:(e,t)=>He(e)&&Xh(t),select:(e,t,r,n)=>He(e)&&Xh(t)&&Xe(r)&&(n===void 0||n instanceof Promise)};var fW=ce({name:"ElMenu",props:uW,emits:cW,setup(e,{emit:t,slots:r,expose:n}){const i=ct(),a=i.appContext.config.globalProperties.$router,o=B(),s=Ne("menu"),l=Ne("sub-menu"),u=B(-1),c=B(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=B(e.defaultActive),d=B({}),h=B({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const A=f.value&&d.value[f.value];if(!A||e.mode==="horizontal"||e.collapse)return;A.indexPath.forEach(D=>{const N=h.value[D];N&&g(D,N.indexPath)})},g=(A,T)=>{c.value.includes(A)||(e.uniqueOpened&&(c.value=c.value.filter(D=>T.includes(D))),c.value.push(A),t("open",A,T))},m=A=>{const T=c.value.indexOf(A);T!==-1&&c.value.splice(T,1)},y=(A,T)=>{m(A),t("close",A,T)},_=({index:A,indexPath:T})=>{c.value.includes(A)?y(A,T):g(A,T)},b=A=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:T,indexPath:D}=A;if(!(gu(T)||gu(D)))if(e.router&&a){const N=A.route||T,H=a.push(N).then($=>($||(f.value=T),$));t("select",T,D,{index:T,indexPath:D,route:N},H)}else f.value=T,t("select",T,D,{index:T,indexPath:D})},S=A=>{const T=d.value,D=T[A]||f.value&&T[f.value]||T[e.defaultActive];D?f.value=D.index:f.value=A},w=()=>{var A,T;if(!o.value)return-1;const D=Array.from((T=(A=o.value)==null?void 0:A.childNodes)!=null?T:[]).filter(j=>j.nodeName!=="#text"||j.nodeValue),N=64,H=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),$=Number.parseInt(getComputedStyle(o.value).paddingRight,10),G=o.value.clientWidth-H-$;let F=0,R=0;return D.forEach((j,re)=>{F+=j.offsetWidth||0,F<=G-N&&(R=re+1)}),R===D.length?-1:R},x=(A,T=33.34)=>{let D;return()=>{D&&clearTimeout(D),D=setTimeout(()=>{A()},T)}};let C=!0;const M=()=>{const A=()=>{u.value=-1,Ft(()=>{u.value=w()})};C?A():x(A)(),C=!1};xe(()=>e.defaultActive,A=>{d.value[A]||(f.value=""),S(A)}),xe(()=>e.collapse,A=>{A&&(c.value=[])}),xe(d.value,p);let E;io(()=>{e.mode==="horizontal"&&e.ellipsis?E=gs(o,M).stop:E==null||E()});{const A=H=>{h.value[H.index]=H},T=H=>{delete h.value[H.index]};At("rootMenu",fn({props:e,openedMenus:c,items:d,subMenus:h,activeIndex:f,isMenuPopup:v,addMenuItem:H=>{d.value[H.index]=H},removeMenuItem:H=>{delete d.value[H.index]},addSubMenu:A,removeSubMenu:T,openMenu:g,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),At(`subMenu:${i.uid}`,{addSubMenu:A,removeSubMenu:T,mouseInChild:B(!1),level:0})}return wt(()=>{e.mode==="horizontal"&&new nW(i.vnode.el,s.namespace.value)}),n({open:T=>{const{indexPath:D}=h.value[T];D.forEach(N=>g(N,D))},close:m,handleResize:M}),()=>{var A,T;let D=(T=(A=r.default)==null?void 0:A.call(r))!=null?T:[];const N=[];if(e.mode==="horizontal"&&o.value){const G=Cf(D),F=u.value===-1?G:G.slice(0,u.value),R=u.value===-1?[]:G.slice(u.value);R!=null&&R.length&&e.ellipsis&&(D=F,N.push(Ce(Ry,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>Ce(lr,{class:l.e("icon-more")},{default:()=>Ce(M3)}),default:()=>R})))}const H=mA(e,0),$=Ce("ul",{key:String(e.collapse),role:"menubar",ref:o,style:H.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...D,...N]);return e.collapseTransition&&e.mode==="vertical"?Ce(oW,()=>$):$}}});const dW=tt({index:{type:Le([String,null]),default:null},route:{type:Le([String,Object])},disabled:Boolean}),hW={click:e=>He(e.index)&&Array.isArray(e.indexPath)},Zh="ElMenuItem",vW=ce({name:Zh,components:{ElTooltip:Ju},props:dW,emits:hW,setup(e,{emit:t}){const r=ct(),n=Pe("rootMenu"),i=Ne("menu"),a=Ne("menu-item");n||na(Zh,"can not inject root menu");const{parentMenu:o,indexPath:s}=gA(r,tn(e,"index")),l=Pe(`subMenu:${o.value.uid}`);l||na(Zh,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),c=fn({index:e.index,indexPath:s,active:u}),f=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",c))};return wt(()=>{l.addSubMenu(c),n.addMenuItem(c)}),Xt(()=>{l.removeSubMenu(c),n.removeMenuItem(c)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:f}}});function pW(e,t,r,n,i,a){const o=_r("el-tooltip");return Y(),me("li",{class:ue([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(Y(),_e(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:Z(()=>[$e(e.$slots,"title")]),default:Z(()=>[ae("div",{class:ue(e.nsMenu.be("tooltip","trigger"))},[$e(e.$slots,"default")],2)]),_:3},8,["effect"])):(Y(),me(pt,{key:1},[$e(e.$slots,"default"),$e(e.$slots,"title")],64))],2)}var yA=Ze(vW,[["render",pW],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const gW={title:String},mW="ElMenuItemGroup",yW=ce({name:mW,props:gW,setup(){return{ns:Ne("menu-item-group")}}});function _W(e,t,r,n,i,a){return Y(),me("li",{class:ue(e.ns.b())},[ae("div",{class:ue(e.ns.e("title"))},[e.$slots.title?$e(e.$slots,"title",{key:1}):(Y(),me(pt,{key:0},[Bt(Me(e.title),1)],64))],2),ae("ul",null,[$e(e.$slots,"default")])],2)}var _A=Ze(yW,[["render",_W],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const bW=hr(fW,{MenuItem:yA,MenuItemGroup:_A,SubMenu:Ry}),wW=fa(yA);fa(_A);const SW=fa(Ry),xW=tt({trigger:bu.trigger,placement:Kh.placement,disabled:bu.disabled,visible:qr.visible,transition:qr.transition,popperOptions:Kh.popperOptions,tabindex:Kh.tabindex,content:qr.content,popperStyle:qr.popperStyle,popperClass:qr.popperClass,enterable:{...qr.enterable,default:!0},effect:{...qr.effect,default:"light"},teleported:qr.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),CW={"update:visible":e=>Br(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},TW="onUpdate:visible",MW=ce({name:"ElPopover"}),AW=ce({...MW,props:xW,emits:CW,setup(e,{expose:t,emit:r}){const n=e,i=k(()=>n[TW]),a=Ne("popover"),o=B(),s=k(()=>{var g;return(g=P(o))==null?void 0:g.popperRef}),l=k(()=>[{width:po(n.width)},n.popperStyle]),u=k(()=>[a.b(),n.popperClass,{[a.m("plain")]:!!n.content}]),c=k(()=>n.transition===`${a.namespace.value}-fade-in-linear`),f=()=>{var g;(g=o.value)==null||g.hide()},d=()=>{r("before-enter")},h=()=>{r("before-leave")},v=()=>{r("after-enter")},p=()=>{r("update:visible",!1),r("after-leave")};return t({popperRef:s,hide:f}),(g,m)=>(Y(),_e(P(Ju),ca({ref_key:"tooltipRef",ref:o},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":P(u),"popper-style":P(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":P(c),"onUpdate:visible":P(i),onBeforeShow:d,onBeforeHide:h,onShow:v,onHide:p}),{content:Z(()=>[g.title?(Y(),me("div",{key:0,class:ue(P(a).e("title")),role:"title"},Me(g.title),3)):Fe("v-if",!0),$e(g.$slots,"default",{},()=>[Bt(Me(g.content),1)])]),default:Z(()=>[g.$slots.reference?$e(g.$slots,"reference",{key:0}):Fe("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var PW=Ze(AW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const h1=(e,t)=>{const r=t.arg||t.value,n=r==null?void 0:r.popperRef;n&&(n.triggerRef=e)};var EW={mounted(e,t){h1(e,t)},updated(e,t){h1(e,t)}};const LW="popover",DW=H3(EW,LW),IW=hr(PW,{directive:DW}),OW=tt({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Wn},inactiveIcon:{type:Wn},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Le(Function)},size:{type:String,validator:z3},tabindex:{type:[String,Number]}}),RW={[go]:e=>Br(e)||He(e)||$t(e),[qp]:e=>Br(e)||He(e)||$t(e),[Kp]:e=>Br(e)||He(e)||$t(e)},kW=["onClick"],NW=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],FW=["aria-hidden"],BW=["aria-hidden"],$W=["aria-hidden"],vg="ElSwitch",HW=ce({name:vg}),zW=ce({...HW,props:OW,emits:RW,setup(e,{expose:t,emit:r}){const n=e,i=ct(),{formItem:a}=Zu(),o=ia(),s=Ne("switch");vy({from:'"value"',replacement:'"model-value" or "v-model"',scope:vg,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var S;return!!((S=i.vnode.props)!=null&&S.value)}));const{inputId:l}=Ey(n,{formItemContext:a}),u=rh(k(()=>n.loading)),c=B(n.modelValue!==!1),f=B(),d=B(),h=k(()=>[s.b(),s.m(o.value),s.is("disabled",u.value),s.is("checked",g.value)]),v=k(()=>({width:po(n.width)}));xe(()=>n.modelValue,()=>{c.value=!0}),xe(()=>n.value,()=>{c.value=!1});const p=k(()=>c.value?n.modelValue:n.value),g=k(()=>p.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(p.value)||(r(go,n.inactiveValue),r(qp,n.inactiveValue),r(Kp,n.inactiveValue)),xe(g,S=>{var w;f.value.checked=S,n.validateEvent&&((w=a==null?void 0:a.validate)==null||w.call(a,"change").catch(x=>void 0))});const m=()=>{const S=g.value?n.inactiveValue:n.activeValue;r(go,S),r(qp,S),r(Kp,S),Ft(()=>{f.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:S}=n;if(!S){m();return}const w=S();[jf(w),Br(w)].includes(!0)||na(vg,"beforeChange must return type `Promise` or `boolean`"),jf(w)?w.then(C=>{C&&m()}).catch(C=>{}):w&&m()},_=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),b=()=>{var S,w;(w=(S=f.value)==null?void 0:S.focus)==null||w.call(S)};return wt(()=>{f.value.checked=g.value}),t({focus:b,checked:g}),(S,w)=>(Y(),me("div",{class:ue(P(h)),style:xt(P(_)),onClick:Jf(y,["prevent"])},[ae("input",{id:P(l),ref_key:"input",ref:f,class:ue(P(s).e("input")),type:"checkbox",role:"switch","aria-checked":P(g),"aria-disabled":P(u),name:S.name,"true-value":S.activeValue,"false-value":S.inactiveValue,disabled:P(u),tabindex:S.tabindex,onChange:m,onKeydown:UO(y,["enter"])},null,42,NW),!S.inlinePrompt&&(S.inactiveIcon||S.inactiveText)?(Y(),me("span",{key:0,class:ue([P(s).e("label"),P(s).em("label","left"),P(s).is("active",!P(g))])},[S.inactiveIcon?(Y(),_e(P(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(S.inactiveIcon)))]),_:1})):Fe("v-if",!0),!S.inactiveIcon&&S.inactiveText?(Y(),me("span",{key:1,"aria-hidden":P(g)},Me(S.inactiveText),9,FW)):Fe("v-if",!0)],2)):Fe("v-if",!0),ae("span",{ref_key:"core",ref:d,class:ue(P(s).e("core")),style:xt(P(v))},[S.inlinePrompt?(Y(),me("div",{key:0,class:ue(P(s).e("inner"))},[S.activeIcon||S.inactiveIcon?(Y(),_e(P(lr),{key:0,class:ue(P(s).is("icon"))},{default:Z(()=>[(Y(),_e(nn(P(g)?S.activeIcon:S.inactiveIcon)))]),_:1},8,["class"])):S.activeText||S.inactiveText?(Y(),me("span",{key:1,class:ue(P(s).is("text")),"aria-hidden":!P(g)},Me(P(g)?S.activeText:S.inactiveText),11,BW)):Fe("v-if",!0)],2)):Fe("v-if",!0),ae("div",{class:ue(P(s).e("action"))},[S.loading?(Y(),_e(P(lr),{key:0,class:ue(P(s).is("loading"))},{default:Z(()=>[ee(P(hy))]),_:1},8,["class"])):Fe("v-if",!0)],2)],6),!S.inlinePrompt&&(S.activeIcon||S.activeText)?(Y(),me("span",{key:1,class:ue([P(s).e("label"),P(s).em("label","right"),P(s).is("active",P(g))])},[S.activeIcon?(Y(),_e(P(lr),{key:0},{default:Z(()=>[(Y(),_e(nn(S.activeIcon)))]),_:1})):Fe("v-if",!0),!S.activeIcon&&S.activeText?(Y(),me("span",{key:1,"aria-hidden":!P(g)},Me(S.activeText),9,$W)):Fe("v-if",!0)],2)):Fe("v-if",!0)],14,kW))}});var WW=Ze(zW,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const VW=hr(WW);/*! * escape-html * Copyright(c) 2012-2013 TJ Holowaychuk * Copyright(c) 2015 Andreas Lubbe * Copyright(c) 2015 Tiancheng "Timothy" Gu * MIT Licensed - */var GW=/["'&<>]/,UW=jW;function jW(e){var t=""+e,r=GW.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?vu(s,u):u(s,l,e))):(t!=="$key"&&Xe(s)&&"$value"in s&&(s=s.$value),[Xe(s)?vu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,c=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},bA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},qW=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},Ja=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Yt(n,t)]={row:n,index:i}}),r};function KW(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(We(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function ky(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function wA(e){return e===""||e!==void 0&&(e=ky(e),Number.isNaN(e)&&(e=80)),e}function XW(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function ZW(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Fl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,be(t.children)&&t.children.forEach(l=>{Fl(e,l,r??!a)})};return Br(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function QW(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const c=u[r];i(c)||a(u,c,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ui;function JW(e,t,r,n,i){i=aM({enterable:!0,showArrow:!0},i);const a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=i.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",i.popperClass||""].join(" "),r=UW(r),m.innerHTML=r,m.style.zIndex=String(n()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){c&&c.update()}ui==null||ui(),ui=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ui),ui=void 0}catch{}};let c=null,f=u,d=ui;i.enterable&&({onOpen:f,onClose:d}=DM({showAfter:i.showAfter,hideAfter:i.hideAfter,open:u,close:ui}));const h=s();h.onmouseenter=f,h.onmouseleave=d;const v=[];if(i.offset&&v.push({name:"offset",options:{offset:[0,i.offset]}}),i.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=i.popperOptions||{};return c=EM(t,h,{placement:i.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ui),c}function xA(e){return e.children?E5(e.children,xA):[e]}function p1(e,t){return e+t.colSpan}const SA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=xA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(p1,0),a=i+l.reduce(p1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ny=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=SA(t,r,n,i);if(s){const c=s==="left";o.push(`${e}-fixed-column--${s}`),c&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!c&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function g1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Fy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=SA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(g1,0):s.right=u.slice(o+1).reverse().reduce(g1,0),s},Ts=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function eV(e){const t=ct(),r=B(!1),n=B([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const c=Ja(n.value,u);n.value=l.reduce((f,d)=>{const h=Yt(d,u);return c[h]&&f.push(d),f},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Fl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=Ja(u,c);n.value=l.reduce((d,h)=>{const v=f[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Ja(n.value,u)[Yt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function tV(e){const t=ct(),r=B(null),n=B(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(E(c)||[]).find(h=>Yt(h,f.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const c=n.value;if(u&&u!==c){n.value=u,t.emit("current-change",n.value,c);return}!u&&c&&(n.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=n.value;if(!c.includes(f)&&f){if(u){const d=Yt(f,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,f)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function rV(e){const t=B([]),r=B({}),n=B(16),i=B(!1),a=B({}),o=B("hasChildren"),s=B("children"),l=ct(),u=k(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=k(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Yt(w,m);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),f=m=>{const y=e.rowKey.value,_={};return QW(m,(b,x,w)=>{const S=Yt(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Yt(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=c.value,w=Object.keys(b),S={};if(w.length){const C=E(r),M=[],P=(T,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||T!=null&&T.expanded);{const N=y||t.value&&t.value.includes(D);return!!(T!=null&&T.expanded||N)}};w.forEach(T=>{const D=C[T],N={...b[T]};if(N.expanded=P(D,T),N.lazy){const{loaded:H=!1,loading:$=!1}=D||{};N.loaded=!!H,N.loading=!!$,M.push(T)}S[T]=N});const A=Object.keys(x);i.value&&A.length&&M.length&&A.forEach(T=>{const D=C[T],N=x[T].children;if(M.includes(T)){if(S[T].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[T].children=N}else{const{loaded:H=!1,loading:$=!1}=D||{};S[T]={lazy:!0,loaded:!!H,loading:!!$,expanded:P(D,T),children:N,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};Se(()=>t.value,()=>{d(!0)}),Se(()=>u.value,()=>{d()}),Se(()=>c.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Yt(m,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Yt(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const nV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:YW(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Df=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,Df(r.children)):t.push(r)}),t};function iV(){var e;const t=ct(),{size:r}=$d((e=t.proxy)==null?void 0:e.$props),n=B(null),i=B([]),a=B([]),o=B(!1),s=B([]),l=B([]),u=B([]),c=B([]),f=B([]),d=B([]),h=B([]),v=B([]),p=[],g=B(0),m=B(0),y=B(0),_=B(!1),b=B([]),x=B(!1),w=B(!1),S=B(null),C=B({}),M=B(null),P=B(null),A=B(null),T=B(null),D=B(null);Se(i,()=>t.state&&G(!1),{deep:!0});const N=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},H=ve=>{var Pe;(Pe=ve.children)==null||Pe.forEach(je=>{je.fixed=ve.fixed,H(je)})},$=()=>{s.value.forEach(nt=>{H(nt)}),c.value=s.value.filter(nt=>nt.fixed===!0||nt.fixed==="left"),f.value=s.value.filter(nt=>nt.fixed==="right"),c.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,c.value.unshift(s.value[0]));const ve=s.value.filter(nt=>!nt.fixed);l.value=[].concat(c.value).concat(ve).concat(f.value);const Pe=Df(ve),je=Df(c.value),Be=Df(f.value);g.value=Pe.length,m.value=je.length,y.value=Be.length,u.value=[].concat(je).concat(Pe).concat(Be),o.value=c.value.length>0||f.value.length>0},G=(ve,Pe=!1)=>{ve&&$(),Pe?t.state.doLayout():t.state.debouncedUpdateLayout()},F=ve=>b.value.includes(ve),R=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},j=()=>{let ve;if(n.value){ve=[];const Pe=Ja(b.value,n.value),je=Ja(i.value,n.value);for(const Be in Pe)We(Pe,Be)&&!je[Be]&&ve.push(Pe[Be].row)}else ve=b.value.filter(Pe=>!i.value.includes(Pe));if(ve.length){const Pe=b.value.filter(je=>!ve.includes(je));b.value=Pe,t.emit("selection-change",Pe.slice())}},re=()=>(b.value||[]).slice(),oe=(ve,Pe=void 0,je=!0)=>{if(Fl(b.value,ve,Pe)){const nt=(b.value||[]).slice();je&&t.emit("select",nt,ve),t.emit("selection-change",nt)}},ye=()=>{var ve,Pe;const je=w.value?!_.value:!(_.value||b.value.length);_.value=je;let Be=!1,nt=0;const it=(Pe=(ve=t==null?void 0:t.store)==null?void 0:ve.states)==null?void 0:Pe.rowKey.value;i.value.forEach((Mt,ri)=>{const ni=ri+nt;S.value?S.value.call(null,Mt,ni)&&Fl(b.value,Mt,je)&&(Be=!0):Fl(b.value,Mt,je)&&(Be=!0),nt+=Q(Yt(Mt,it))}),Be&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},Ae=()=>{const ve=Ja(b.value,n.value);i.value.forEach(Pe=>{const je=Yt(Pe,n.value),Be=ve[je];Be&&(b.value[Be.index]=Pe)})},V=()=>{var ve,Pe,je;if(((ve=i.value)==null?void 0:ve.length)===0){_.value=!1;return}let Be;n.value&&(Be=Ja(b.value,n.value));const nt=function(ni){return Be?!!Be[Yt(ni,n.value)]:b.value.includes(ni)};let it=!0,Mt=0,ri=0;for(let ni=0,sD=(i.value||[]).length;ni{var Pe;if(!t||!t.store)return 0;const{treeData:je}=t.store.states;let Be=0;const nt=(Pe=je.value[ve])==null?void 0:Pe.children;return nt&&(Be+=nt.length,nt.forEach(it=>{Be+=Q(it)})),Be},W=(ve,Pe)=>{Array.isArray(ve)||(ve=[ve]);const je={};return ve.forEach(Be=>{C.value[Be.id]=Pe,je[Be.columnKey||Be.id]=Pe}),je},q=(ve,Pe,je)=>{P.value&&P.value!==ve&&(P.value.order=null),P.value=ve,A.value=Pe,T.value=je},le=()=>{let ve=E(a);Object.keys(C.value).forEach(Pe=>{const je=C.value[Pe];if(!je||je.length===0)return;const Be=bA({columns:u.value},Pe);Be&&Be.filterMethod&&(ve=ve.filter(nt=>je.some(it=>Be.filterMethod.call(null,it,nt,Be))))}),M.value=ve},de=()=>{i.value=nV(M.value,{sortingColumn:P.value,sortProp:A.value,sortOrder:T.value})},J=(ve=void 0)=>{ve&&ve.filter||le(),de()},L=ve=>{const{tableHeaderRef:Pe}=t.refs;if(!Pe)return;const je=Object.assign({},Pe.filterPanels),Be=Object.keys(je);if(Be.length)if(typeof ve=="string"&&(ve=[ve]),Array.isArray(ve)){const nt=ve.map(it=>qW({columns:u.value},it));Be.forEach(it=>{const Mt=nt.find(ri=>ri.id===it);Mt&&(Mt.filteredValue=[])}),t.store.commit("filterChange",{column:nt,values:[],silent:!0,multi:!0})}else Be.forEach(nt=>{const it=u.value.find(Mt=>Mt.id===nt);it&&(it.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},I=()=>{P.value&&(q(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:z,toggleRowExpansion:U,updateExpandRows:K,states:ne,isRowExpanded:fe}=eV({data:i,rowKey:n}),{updateTreeExpandKeys:te,toggleTreeExpansion:ie,updateTreeData:X,loadOrToggle:we,states:he}=rV({data:i,rowKey:n}),{updateCurrentRowData:xe,updateCurrentRow:Oe,setCurrentRowKey:ze,states:rt}=tV({data:i,rowKey:n});return{assertRowKey:N,updateColumns:$,scheduleLayout:G,isSelected:F,clearSelection:R,cleanSelection:j,getSelectionRows:re,toggleRowSelection:oe,_toggleAllSelection:ye,toggleAllSelection:null,updateSelectionByRowKey:Ae,updateAllSelected:V,updateFilters:W,updateCurrentRow:Oe,updateSort:q,execFilter:le,execSort:de,execQuery:J,clearFilter:L,clearSort:I,toggleRowExpansion:U,setExpandRowKeysAdapter:ve=>{z(ve),te(ve)},setCurrentRowKey:ze,toggleRowExpansionAdapter:(ve,Pe)=>{u.value.some(({type:Be})=>Be==="expand")?U(ve,Pe):ie(ve,Pe)},isRowExpanded:fe,updateExpandRows:K,updateCurrentRowData:xe,loadOrToggle:we,updateTreeData:X,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:g,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:x,selectOnIndeterminate:w,selectable:S,filters:C,filteredData:M,sortingColumn:P,sortProp:A,sortOrder:T,hoverRow:D,...ne,...he,...rt}}}function pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=pg(r.children,t)),r)})}function gg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&gg(t.children)}),e.sort((t,r)=>t.no-r.no)}function aV(){const e=ct(),t=iV();return{ns:Ne("table"),...t,mutations:{setData(o,s){const l=E(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),E(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const c=E(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=pg(c,l)):(c.push(s),f=c),gg(f),o._columns.value=f,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(gg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const c=E(o._columns)||[];if(l)l.children.splice(l.children.findIndex(d=>d.id===s.id),1),Ft(()=>{var d;((d=l.children)==null?void 0:d.length)===0&&delete l.children}),o._columns.value=pg(c,l);else{const d=c.indexOf(s);d>-1&&(c.splice(d,1),o._columns.value=c)}const f=o.updateOrderFns.indexOf(u);f>-1&&o.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:c}=s;if(l){const f=E(o.columns).find(d=>d.property===l);f&&(f.order=u,e.store.updateSort(f,l,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:c}=o,f=E(l),d=E(u),h=E(c);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:c}=s,f=e.store.updateFilters(l,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Ft(()=>e.layout.updateScrollY.apply(e.layout))}}}const Bl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function oV(e,t){if(!e)throw new Error("Table is required.");const r=aV();return r.toggleAllSelection=id(r._toggleAllSelection,10),Object.keys(Bl).forEach(n=>{CA(TA(t,n),n,r)}),sV(r,t),r}function sV(e,t){Object.keys(Bl).forEach(r=>{Se(()=>TA(t,r),n=>{CA(n,r,e)})})}function CA(e,t,r){let n=e,i=Bl[t];typeof Bl[t]=="object"&&(i=i.key,n=n||Bl[t].default),r.states[i].value=n}function TA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class lV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=B(null),this.scrollX=B(!1),this.scrollY=B(!1),this.bodyWidth=B(null),this.fixedWidth=B(null),this.rightFixedWidth=B(null),this.gutterWidth=0;for(const r in t)We(t,r)&&(Ct(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Nt)return;const n=this.table.vnode.el;if(t=XW(t),this.height.value=Number(t),!n&&(t||t===0))return Ft(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Nt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),c=l/u;let f=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*c);f+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-f}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:uV}=Cs,cV=ce({name:"ElTableFilterPanel",components:{ElCheckbox:Cs,ElCheckboxGroup:uV,ElScrollbar:VM,ElTooltip:Ju,ElIcon:lr,ArrowDown:lM,ArrowUp:e3},directives:{ClickOutside:t8},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=ct(),{t:r}=py(),n=Ne("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=B(!1),o=B(null),s=k(()=>e.column&&e.column.filters),l=k({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=k({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),c=k(()=>e.column?e.column.filterMultiple:!0),f=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};Se(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=k(()=>{var b,x;return(x=(b=o.value)==null?void 0:b.popperRef)==null?void 0:x.contentRef});return{tooltipVisible:a,multiple:c,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:f,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),fV={key:0},dV=["disabled"],hV=["label","onClick"];function vV(e,t,r,n,i,a){const o=_r("el-checkbox"),s=_r("el-checkbox-group"),l=_r("el-scrollbar"),u=_r("arrow-up"),c=_r("arrow-down"),f=_r("el-icon"),d=_r("el-tooltip"),h=ZC("click-outside");return Y(),_e(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:Z(()=>[e.multiple?(Y(),me("div",fV,[ae("div",{class:ue(e.ns.e("content"))},[ee(l,{"wrap-class":e.ns.e("wrap")},{default:Z(()=>[ee(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:ue(e.ns.e("checkbox-group"))},{default:Z(()=>[(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),_e(o,{key:v.value,label:v.value},{default:Z(()=>[Bt(Me(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ae("div",{class:ue(e.ns.e("bottom"))},[ae("button",{class:ue({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Me(e.t("el.table.confirmFilter")),11,dV),ae("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Me(e.t("el.table.resetFilter")),1)],2)])):(Y(),me("ul",{key:1,class:ue(e.ns.e("list"))},[ae("li",{class:ue([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Me(e.t("el.table.clearFilter")),3),(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),me("li",{key:v.value,class:ue([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Me(v.text),11,hV))),128))],2))]),default:Z(()=>[nr((Y(),me("span",{class:ue([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[ee(f,null,{default:Z(()=>[e.column.filterOpened?(Y(),_e(u,{key:0})):(Y(),_e(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var pV=Ze(cV,[["render",vV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function MA(e){const t=ct();Gd(()=>{r.value.addObserver(t)}),wt(()=>{n(r.value),i(r.value)}),Hu(()=>{n(r.value),i(r.value)}),ks(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,f=s.length;c{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=l.length;c{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=B(null),l=B(!1),u=B({}),c=(p,g)=>{if(Nt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Zo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=m==null?void 0:m.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=P=>{const A=P.clientX-u.value.startMouseLeft,T=u.value.startLeft+A;S.style.left=`${Math.max(w,T)}px`},M=()=>{if(l.value){const{startColumnLeft:P,startLeft:A}=u.value,D=Number.parseInt(S.style.left,10)-P;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-P,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{ss(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},f=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Ol(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Ol(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Nt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Ol(b,"noclick")){ss(b,"noclick");return}if(!g.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=g,w=g.property),_?S=g.order=_:S=g.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function mV(e){const t=Ee(Qn),r=Ne("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:c}));const h=Fy(l,c.fixed,e.store,u);return Ts(h,"left"),Ts(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,c)=>{const f=Ny(r.b(),l,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:c})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const AA=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,AA(r.children))):t.push(r)}),t},yV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function _V(e){const t=Ee(Qn),r=k(()=>yV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var bV=ce({name:"ElTableHeader",components:{ElCheckbox:Cs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=ct(),n=Ee(Qn),i=Ne("table"),a=B({}),{onColumnsChange:o,onScrollableChange:s}=MA(n);wt(async()=>{await Ft(),await Ft();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=gV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=mV(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=_V(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return Ce("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>Ce("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Ce("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>c(b,y),onMouseout:d},[Ce("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&Ce("span",{onClick:b=>f(b,y),class:"caret-wrapper"},[Ce("i",{onClick:b=>f(b,y,"ascending"),class:"sort-caret ascending"}),Ce("i",{onClick:b=>f(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Ce(pV,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function wV(e){const t=Ee(Qn),r=B(""),n=B(Ce("div")),{nextZIndex:i}=Ay(),a=(h,v,p)=>{var g;const m=t,y=Qh(h);let _;const b=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;y&&(_=v1({columns:e.store.states.columns.value},y,b),_&&(m==null||m.emit(`cell-${p}`,v,_,y,h))),m==null||m.emit(`row-${p}`,v,_,h)},o=(h,v)=>{a(h,v,"dblclick")},s=(h,v)=>{e.store.commit("setCurrentRow",v),a(h,v,"click")},l=(h,v)=>{a(h,v,"contextmenu")},u=id(h=>{e.store.commit("setHoverRow",h)},30),c=id(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:o,handleClick:s,handleContextMenu:l,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(h,v,p)=>{var g;const m=t,y=Qh(h),_=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;if(y){const C=v1({columns:e.store.states.columns.value},y,_),M=m.hoverState={cell:y,column:C,row:v};m==null||m.emit("cell-mouse-enter",M.row,M.column,M.cell,h)}if(!p)return;const b=h.target.querySelector(".cell");if(!(Ol(b,`${_}-tooltip`)&&b.childNodes.length))return;const x=document.createRange();x.setStart(b,0),x.setEnd(b,b.childNodes.length);const w=Math.round(x.getBoundingClientRect().width),S=(Number.parseInt(Mb(b,"paddingLeft"),10)||0)+(Number.parseInt(Mb(b,"paddingRight"),10)||0);(w+S>b.offsetWidth||b.scrollWidth>b.offsetWidth)&&JW(t==null?void 0:t.refs.tableWrapper,y,y.innerText||y.textContent,i,p)},handleCellMouseLeave:h=>{if(!Qh(h))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,h)},tooltipContent:r,tooltipTrigger:n}}function xV(e){const t=Ee(Qn),r=Ne("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const p=Fy(c,e==null?void 0:e.fixed,e.store);return Ts(p,"left"),Ts(p,"right"),Object.assign({},v,p)},getCellClass:(u,c,f,d,h)=>{const v=Ny(r.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(f,f+c);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function SV(e){const t=Ee(Qn),r=Ne("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=wV(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=xV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const M=t.props.rowKey;return M?Yt(S,M):C},b=(S,C,M,P=!1)=>{const{tooltipEffect:A,tooltipOptions:T,store:D}=e,{indent:N,columns:H}=D.states,$=h(S,C);let G=!0;return M&&($.push(r.em("row",`level-${M.level}`)),G=M.display),Ce("tr",{style:[G?null:{display:"none"},d(S,C)],class:$,key:_(S,C),onDblclick:R=>n(R,S),onClick:R=>i(R,S),onContextmenu:R=>a(R,S),onMouseenter:()=>o(C),onMouseleave:s},H.value.map((R,j)=>{const{rowspan:re,colspan:oe}=g(S,R,C,j);if(!re||!oe)return null;const ye={...R};ye.realWidth=m(H.value,oe,j);const Ae={store:e.store,_self:e.context||t,column:ye,row:S,$index:C,cellIndex:j,expanded:P};j===y.value&&M&&(Ae.treeNode={indent:M.level*N.value,level:M.level},typeof M.expanded=="boolean"&&(Ae.treeNode.expanded=M.expanded,"loading"in M&&(Ae.treeNode.loading=M.loading),"noLazyChildren"in M&&(Ae.treeNode.noLazyChildren=M.noLazyChildren)));const V=`${C},${j}`,Q=ye.columnKey||ye.rawColumnKey||"",W=x(j,R,Ae),q=R.showOverflowTooltip&&aM({effect:A},T,R.showOverflowTooltip);return Ce("td",{style:v(C,j,S,R),class:p(C,j,S,R,oe-1),key:`${Q}${V}`,rowspan:re,colspan:oe,onMouseenter:le=>l(le,S,q),onMouseleave:u},[W])}))},x=(S,C,M)=>C.renderCell(M);return{wrappedRowRender:(S,C)=>{const M=e.store,{isRowExpanded:P,assertRowKey:A}=M,{treeData:T,lazyTreeNodeMap:D,childrenColumnName:N,rowKey:H}=M.states,$=M.states.columns.value;if($.some(({type:F})=>F==="expand")){const F=P(S),R=b(S,C,void 0,F),j=t.renderExpanded;return F?j?[[R,Ce("tr",{key:`expanded-row__${R.key}`},[Ce("td",{colspan:$.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[j({row:S,$index:C,store:M,expanded:F})])])]]:(console.error("[Element Error]renderExpanded is required."),R):[[R]]}else if(Object.keys(T.value).length){A();const F=Yt(S,H.value);let R=T.value[F],j=null;R&&(j={expanded:R.expanded,level:R.level,display:!0},typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(j.noLazyChildren=!(R.children&&R.children.length)),j.loading=R.loading));const re=[b(S,C,j)];if(R){let oe=0;const ye=(V,Q)=>{V&&V.length&&Q&&V.forEach(W=>{const q={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},le=Yt(W,H.value);if(le==null)throw new Error("For nested data item, row-key is required.");if(R={...T.value[le]},R&&(q.expanded=R.expanded,R.level=R.level||q.level,R.display=!!(R.expanded&&q.display),typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(q.noLazyChildren=!(R.children&&R.children.length)),q.loading=R.loading)),oe++,re.push(b(W,C+oe,q)),R){const de=D.value[le]||W[N.value];ye(de,R)}})};R.display=!0;const Ae=D.value[F]||S[N.value];ye(Ae,R)}return re}else return b(S,C,void 0)},tooltipContent:c,tooltipTrigger:f}}const CV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var TV=ce({name:"ElTableBody",props:CV,setup(e){const t=ct(),r=Ee(Qn),n=Ne("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=SV(e),{onColumnsChange:s,onScrollableChange:l}=MA(r);return Se(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Nt)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[c],p=h[u];v&&ss(v,"hover-row"),p&&Zo(p,"hover-row")})}),ks(()=>{var u;(u=ui)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Ce("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function By(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Ce("colgroup",{},r.map(i=>Ce("col",n(i))))}By.props=["columns","tableLayout"];function MV(){const e=Ee(Qn),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function AV(e){const{columns:t}=MV(),r=Ne("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ny(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Fy(o,a.fixed,e.store);return Ts(s,"left"),Ts(s,"right"),s},columns:t}}var EV=ce({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=AV(e);return{ns:Ne("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const c=o.map(v=>Number(v[l.property])),f=[];let d=!0;c.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];f.push(p?p.length:0)}});const h=Math.max.apply(null,f);d?s[u]="":s[u]=c.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),Ce("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[By({columns:e}),Ce("tbody",[Ce("tr",{},[...e.map((l,u)=>Ce("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[Ce("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function PV(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function LV(e,t,r,n){const i=B(!1),a=B(null),o=B(!1),s=F=>{o.value=F},l=B({width:null,height:null,headerHeight:null}),u=B(!1),c={display:"inline-block",verticalAlign:"middle"},f=B(),d=B(0),h=B(0),v=B(0),p=B(0);io(()=>{t.setHeight(e.height)}),io(()=>{t.setMaxHeight(e.maxHeight)}),Se(()=>[e.currentRowKey,r.states.rowKey],([F,R])=>{!E(R)||!E(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),Se(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),io(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(F,R)=>{const{pixelX:j,pixelY:re}=R;Math.abs(j)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=R.pixelX/5)},y=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};wt(async()=>{await Ft(),r.updateColumns(),M(),requestAnimationFrame(b);const F=n.vnode.el,R=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:f.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&R?R.offsetHeight:null},r.states.columns.value.forEach(j=>{j.filteredValue&&j.filteredValue.length&&n.store.commit("filterChange",{column:j,values:j.filteredValue,silent:!0})}),n.$ready=!0});const x=(F,R)=>{if(!F)return;const j=Array.from(F.classList).filter(re=>!re.startsWith("is-scrolling-"));j.push(t.scrollX.value?R:"is-scrolling-none"),F.className=j.join(" ")},w=F=>{const{tableWrapper:R}=n.refs;x(R,F)},S=F=>{const{tableWrapper:R}=n.refs;return!!(R&&R.classList.contains(F))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";S(V)||w(V);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:R,offsetWidth:j,scrollWidth:re}=F,{headerWrapper:oe,footerWrapper:ye}=n.refs;oe&&(oe.scrollLeft=R),ye&&(ye.scrollLeft=R);const Ae=re-j-1;R>=Ae?w("is-scrolling-right"):w(R===0?"is-scrolling-left":"is-scrolling-middle")},M=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&xn(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?gs(n.vnode.el,P):xn(window,"resize",P),gs(n.refs.bodyWrapper,()=>{var F,R;P(),(R=(F=n.refs)==null?void 0:F.scrollBarRef)==null||R.update()}))},P=()=>{var F,R,j;const re=n.vnode.el;if(!n.$ready||!re)return;let oe=!1;const{width:ye,height:Ae,headerHeight:V}=l.value,Q=f.value=re.offsetWidth;ye!==Q&&(oe=!0);const W=re.offsetHeight;(e.height||y.value)&&Ae!==W&&(oe=!0);const q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(q==null?void 0:q.offsetHeight)!==V&&(oe=!0),d.value=((R=n.refs.tableWrapper)==null?void 0:R.scrollHeight)||0,v.value=(q==null?void 0:q.scrollHeight)||0,p.value=((j=n.refs.footerWrapper)==null?void 0:j.offsetHeight)||0,h.value=d.value-v.value-p.value,oe&&(l.value={width:Q,height:W,headerHeight:e.showHeader&&(q==null?void 0:q.offsetHeight)||0},b())},A=ia(),T=k(()=>{const{bodyWidth:F,scrollY:R,gutterWidth:j}=t;return F.value?`${F.value-(R.value?j:0)}px`:""}),D=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&h.value&&(F=`${h.value}px`);const R=f.value;return{width:R?`${R}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),$=k(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const F=e.maxHeight;if(d.value>=Number(F))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:N,handleFixedMousewheel:(F,R)=>{const j=n.refs.bodyWrapper;if(Math.abs(R.spinY)>0){const re=j.scrollTop;R.pixelY<0&&re!==0&&F.preventDefault(),R.pixelY>0&&j.scrollHeight-j.clientHeight>re&&F.preventDefault(),j.scrollTop+=Math.ceil(R.pixelY/5)}else j.scrollLeft+=Math.ceil(R.pixelX/5)},resizeProxyVisible:o,bodyWidth:T,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:H,scrollbarStyle:$}}function DV(e){const t=B(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};wt(()=>{r()}),ks(()=>{var n;(n=t.value)==null||n.disconnect()})}var IV={data:{type:Array,default:()=>[]},size:Xu,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const OV=()=>{const e=B(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&$t(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let RV=1;const kV=ce({name:"ElTable",directives:{Mousewheel:l8},components:{TableHeader:bV,TableBody:TV,TableFooter:EV,ElScrollbar:VM,hColgroup:By},props:IV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=py(),r=Ne("table"),n=ct();At(Qn,n);const i=oV(n,e);n.store=i;const a=new lV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=PV(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:P,resizeState:A,doLayout:T,tableBodyStyles:D,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G}=LV(e,a,i,n),{scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}=OV(),oe=id(T,50),ye=`${r.namespace.value}-table_${RV++}`;n.tableId=ye,n.state={isGroup:_,resizeState:A,doLayout:T,debouncedUpdateLayout:oe};const Ae=k(()=>e.sumText||t("el.table.sumText")),V=k(()=>e.emptyText||t("el.table.emptyText"));return DV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:ye,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:M,resizeState:A,isGroup:_,bodyWidth:P,tableBodyStyles:D,emptyBlockStyle:S,debouncedUpdateLayout:oe,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:T,sort:p,t,setDragVisible:y,context:n,computedSumText:Ae,computedEmptyText:V,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G,scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}}}),NV=["data-prefix"],FV={ref:"hiddenColumns",class:"hidden-columns"};function BV(e,t,r,n,i,a){const o=_r("hColgroup"),s=_r("table-header"),l=_r("table-body"),u=_r("el-scrollbar"),c=_r("table-footer"),f=ZC("mousewheel");return Y(),me("div",{ref:"tableWrapper",class:ue([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:St(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...d)=>e.handleMouseLeave&&e.handleMouseLeave(...d))},[ae("div",{class:ue(e.ns.e("inner-wrapper")),style:St(e.tableInnerStyle)},[ae("div",FV,[$e(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?nr((Y(),me("div",{key:0,ref:"headerWrapper",class:ue(e.ns.e("header-wrapper"))},[ae("table",{ref:"tableHeader",class:ue(e.ns.e("header")),style:St(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ee(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):Fe("v-if",!0),ae("div",{ref:"bodyWrapper",class:ue(e.ns.e("body-wrapper"))},[ee(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:Z(()=>[ae("table",{ref:"tableBody",class:ue(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:St({width:e.bodyWidth,tableLayout:e.tableLayout})},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(Y(),_e(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):Fe("v-if",!0),ee(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(Y(),me("div",{key:0,ref:"emptyBlock",style:St(e.emptyBlockStyle),class:ue(e.ns.e("empty-block"))},[ae("span",{class:ue(e.ns.e("empty-text"))},[$e(e.$slots,"empty",{},()=>[Bt(Me(e.computedEmptyText),1)])],2)],6)):Fe("v-if",!0),e.$slots.append?(Y(),me("div",{key:1,ref:"appendWrapper",class:ue(e.ns.e("append-wrapper"))},[$e(e.$slots,"append")],2)):Fe("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?nr((Y(),me("div",{key:1,ref:"footerWrapper",class:ue(e.ns.e("footer-wrapper"))},[ee(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:St(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[yi,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):Fe("v-if",!0),e.border||e.isGroup?(Y(),me("div",{key:2,class:ue(e.ns.e("border-left-patch"))},null,2)):Fe("v-if",!0)],6),nr(ae("div",{ref:"resizeProxy",class:ue(e.ns.e("column-resize-proxy"))},null,2),[[yi,e.resizeProxyVisible]])],46,NV)}var $V=Ze(kV,[["render",BV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const HV={selection:"table-column--selection",expand:"table__expand-column"},zV={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},WV=e=>HV[e]||"",VV={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Ce(Cs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return Ce(Cs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Ce("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Ce("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Ce(lr,null,{default:()=>[Ce(dy)]})]})},sortable:!1,resizable:!1}};function GV({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&Sf(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function UV({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Ce("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Ce("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=dy;t.loading&&(l=hy),a.push(Ce("div",{class:s,onClick:o},{default:()=>[Ce(lr,{class:{[i.is("loading")]:t.loading}},{default:()=>[Ce(l)]})]}))}else a.push(Ce("span",{class:i.e("placeholder")}));return a}function m1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function jV(e,t){const r=ct();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{let f=c;u==="width"&&l==="realWidth"&&(f=ky(c)),u==="minWidth"&&l==="realMinWidth"&&(f=wA(c)),r.columnConfig.value[u]=f,r.columnConfig.value[l]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&Se(()=>t[u],c=>{r.columnConfig.value[l]=c})})}}}function YV(e,t,r){const n=ct(),i=B(""),a=B(!1),o=B(),s=B(),l=Ne("table");io(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),io(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),c=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:x}=b.states,w=x.value;return w&&Object.keys(w).length>0}),f=B(ky(e.width)),d=B(wA(e.minWidth)),h=b=>(f.value&&(b.width=f.value),d.value&&(b.minWidth=d.value),!f.value&&d.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const x=b.type,w=VV[x]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const S=WV(x);if(S){const C=`${E(l.namespace)}-${S}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>x(w)):x(b);function x(w){var S;((S=w==null?void 0:w.type)==null?void 0:S.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>{n.columnConfig.value.label;const S=t.header;return S?S(w):b.label});let x=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Ce("div",{class:"cell"},[x(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(x=x||GV,b.renderCell=w=>{let S=null;if(t.default){const D=t.default(w);S=D.some(N=>N.type!==xr)?D:x(w)}else S=x(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(D=>D.type==="default"),P=c.value&&w.cellIndex===M,A=UV(w,P),T={class:"cell",style:{}};return b.showOverflowTooltip&&(T.class=`${T.class} ${E(l.namespace)}-tooltip`,T.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(S),Ce("div",T,[A,S])}),b},getPropsData:(...b)=>b.reduce((x,w)=>(Array.isArray(w)&&w.forEach(S=>{x[S]=e[S]}),x),{}),getColumnElIndex:(b,x)=>Array.prototype.indexOf.call(b,x),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var qV={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let KV=1;var EA=ce({name:"ElTableColumn",components:{ElCheckbox:Cs},props:qV,setup(e,{slots:t}){const r=ct(),n=B({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=jV(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g,updateColumnOrder:m}=YV(e,t,i),y=c.value;s.value=`${y.tableId||y.columnId}_column_${KV++}`,Gd(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,x={...zV[_],id:s.value,type:_,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let P=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);P=KW(x,P),P=ZW(h,f,d)(P),n.value=P,a(),o()}),wt(()=>{var _;const b=c.value,x=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(x||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,m)}),Xt(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,m)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===pt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!He(s==null?void 0:s.children)&&i.push(s)});return Ce("div",i)}catch{return Ce("div",[])}}});const XV=hr($V,{TableColumn:EA}),ZV=fa(EA),PA=["success","info","warning","error"],mr=Ya({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Nt?document.body:void 0}),QV=tt({customClass:{type:String,default:mr.customClass},center:{type:Boolean,default:mr.center},dangerouslyUseHTMLString:{type:Boolean,default:mr.dangerouslyUseHTMLString},duration:{type:Number,default:mr.duration},icon:{type:Wn,default:mr.icon},id:{type:String,default:mr.id},message:{type:Le([String,Object,Function]),default:mr.message},onClose:{type:Le(Function),required:!1},showClose:{type:Boolean,default:mr.showClose},type:{type:String,values:PA,default:mr.type},offset:{type:Number,default:mr.offset},zIndex:{type:Number,default:mr.zIndex},grouping:{type:Boolean,default:mr.grouping},repeatNum:{type:Number,default:mr.repeatNum}}),JV={destroy:()=>!0},Sn=LC([]),eG=e=>{const t=Sn.findIndex(i=>i.id===e),r=Sn[t];let n;return t>0&&(n=Sn[t-1]),{current:r,prev:n}},tG=e=>{const{prev:t}=eG(e);return t?t.vm.exposed.bottom.value:0},rG=(e,t)=>Sn.findIndex(n=>n.id===e)>0?20:t,nG=["id"],iG=["innerHTML"],aG=ce({name:"ElMessage"}),oG=ce({...aG,props:QV,emits:JV,setup(e,{expose:t}){const r=e,{Close:n}=B3,{ns:i,zIndex:a}=sH("message"),{currentZIndex:o,nextZIndex:s}=a,l=B(),u=B(!1),c=B(0);let f;const d=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),h=k(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Ab[S]}}),v=k(()=>r.icon||Ab[r.type]||""),p=k(()=>tG(r.id)),g=k(()=>rG(r.id,r.offset)+p.value),m=k(()=>c.value+g.value),y=k(()=>({top:`${g.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:f}=kp(()=>{x()},r.duration))}function b(){f==null||f()}function x(){u.value=!1}function w({code:S}){S===Ot.esc&&x()}return wt(()=>{_(),s(),u.value=!0}),Se(()=>r.repeatNum,()=>{b(),_()}),xn(document,"keydown",w),gs(l,()=>{c.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:m,close:x}),(S,C)=>(Y(),_e(Ci,{name:E(i).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:C[0]||(C[0]=M=>S.$emit("destroy")),persisted:""},{default:Z(()=>[nr(ae("div",{id:S.id,ref_key:"messageRef",ref:l,class:ue([E(i).b(),{[E(i).m(S.type)]:S.type&&!S.icon},E(i).is("center",S.center),E(i).is("closable",S.showClose),S.customClass]),style:St(E(y)),role:"alert",onMouseenter:b,onMouseleave:_},[S.repeatNum>1?(Y(),_e(E(E6),{key:0,value:S.repeatNum,type:E(d),class:ue(E(i).e("badge"))},null,8,["value","type","class"])):Fe("v-if",!0),E(v)?(Y(),_e(E(lr),{key:1,class:ue([E(i).e("icon"),E(h)])},{default:Z(()=>[(Y(),_e(nn(E(v))))]),_:1},8,["class"])):Fe("v-if",!0),$e(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(Y(),me(pt,{key:1},[Fe(" Caution here, message could've been compromised, never use user's input as message "),ae("p",{class:ue(E(i).e("content")),innerHTML:S.message},null,10,iG)],2112)):(Y(),me("p",{key:0,class:ue(E(i).e("content"))},Me(S.message),3))]),S.showClose?(Y(),_e(E(lr),{key:2,class:ue(E(i).e("closeBtn")),onClick:Jf(x,["stop"])},{default:Z(()=>[ee(E(n))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],46,nG),[[yi,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var sG=Ze(oG,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let lG=1;const LA=e=>{const t=!e||He(e)||ta(e)||De(e)?{message:e}:e,r={...mr,...t};if(!r.appendTo)r.appendTo=document.body;else if(He(r.appendTo)){let n=document.querySelector(r.appendTo);ys(n)||(n=document.body),r.appendTo=n}return r},uG=e=>{const t=Sn.indexOf(e);if(t===-1)return;Sn.splice(t,1);const{handler:r}=e;r.close()},cG=({appendTo:e,...t},r)=>{const n=`message_${lG++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),uG(c)},onDestroy:()=>{O_(null,a)}},s=ee(sG,o,De(o.message)||ta(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ms._context,O_(s,a),e.appendChild(a.firstElementChild);const l=s.component,c={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return c},Ms=(e={},t)=>{if(!Nt)return{close:()=>{}};if($t(Qp.max)&&Sn.length>=Qp.max)return{close:()=>{}};const r=LA(e);if(r.grouping&&Sn.length){const i=Sn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=cG(r,t);return Sn.push(n),n.handler};PA.forEach(e=>{Ms[e]=(t={},r)=>{const n=LA(t);return Ms({...n,type:e},r)}});function fG(e){for(const t of Sn)(!e||e===t.props.type)&&t.handler.close()}Ms.closeAll=fG;Ms._context=null;const DA=$3(Ms,"$message"),dG={id:"app"},hG={class:"grid-content header-color"},vG={class:"header-content"},pG=ae("div",{class:"brand"},[ae("a",{href:"#"},"frp")],-1),gG={class:"dark-switch"},mG=ae("span",null,"Proxies",-1),yG={id:"content"},_G=ae("footer",null,null,-1),bG=ce({__name:"App",setup(e){const t=NR(),r=B(t),n=nR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=VW,l=wW,u=xW,c=bW,f=pA,d=_r("router-view"),h=vA;return Y(),me("div",dG,[ae("header",hG,[ae("div",vG,[pG,ae("div",gG,[ee(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:E(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ae("section",null,[ee(h,null,{default:Z(()=>[ee(f,{id:"side-nav",xs:24,md:4},{default:Z(()=>[ee(c,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:Z(()=>[ee(l,{index:"/"},{default:Z(()=>[Bt("Overview")]),_:1}),ee(u,{index:"/proxies"},{title:Z(()=>[mG]),default:Z(()=>[ee(l,{index:"/proxies/tcp"},{default:Z(()=>[Bt("TCP")]),_:1}),ee(l,{index:"/proxies/udp"},{default:Z(()=>[Bt("UDP")]),_:1}),ee(l,{index:"/proxies/http"},{default:Z(()=>[Bt("HTTP")]),_:1}),ee(l,{index:"/proxies/https"},{default:Z(()=>[Bt("HTTPS")]),_:1}),ee(l,{index:"/proxies/stcp"},{default:Z(()=>[Bt("STCP")]),_:1}),ee(l,{index:"/proxies/sudp"},{default:Z(()=>[Bt("SUDP")]),_:1})]),_:1}),ee(l,{index:""},{default:Z(()=>[Bt("Help")]),_:1})]),_:1})]),_:1}),ee(f,{xs:24,md:20},{default:Z(()=>[ae("div",yG,[ee(d)])]),_:1})]),_:1})]),_G])}}});/*! + */var GW=/["'&<>]/,UW=jW;function jW(e){var t=""+e,r=GW.exec(t);if(!r)return t;var n,i="",a=0,o=0;for(a=r.index;atypeof u=="string"?vu(s,u):u(s,l,e))):(t!=="$key"&&Xe(s)&&"$value"in s&&(s=s.$value),[Xe(s)?vu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,c=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},bA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},qW=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},Ja=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Yt(n,t)]={row:n,index:i}}),r};function KW(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(We(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function ky(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function wA(e){return e===""||e!==void 0&&(e=ky(e),Number.isNaN(e)&&(e=80)),e}function XW(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function ZW(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Fl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,be(t.children)&&t.children.forEach(l=>{Fl(e,l,r??!a)})};return Br(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function QW(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const c=u[r];i(c)||a(u,c,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let ui;function JW(e,t,r,n,i){i=aM({enterable:!0,showArrow:!0},i);const a=e==null?void 0:e.dataset.prefix,o=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=i.effect==="light",m=document.createElement("div");return m.className=[`${a}-popper`,g?"is-light":"is-dark",i.popperClass||""].join(" "),r=UW(r),m.innerHTML=r,m.style.zIndex=String(n()),e==null||e.appendChild(m),m}function l(){const g=document.createElement("div");return g.className=`${a}-popper__arrow`,g}function u(){c&&c.update()}ui==null||ui(),ui=()=>{try{c&&c.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener("mouseenter",f),t.removeEventListener("mouseleave",d),o==null||o.removeEventListener("scroll",ui),ui=void 0}catch{}};let c=null,f=u,d=ui;i.enterable&&({onOpen:f,onClose:d}=DM({showAfter:i.showAfter,hideAfter:i.hideAfter,open:u,close:ui}));const h=s();h.onmouseenter=f,h.onmouseleave=d;const v=[];if(i.offset&&v.push({name:"offset",options:{offset:[0,i.offset]}}),i.showArrow){const g=h.appendChild(l());v.push({name:"arrow",options:{element:g,padding:10}})}const p=i.popperOptions||{};return c=PM(t,h,{placement:i.placement||"top",strategy:"fixed",...p,modifiers:p.modifiers?v.concat(p.modifiers):v}),t.addEventListener("mouseenter",f),t.addEventListener("mouseleave",d),o==null||o.addEventListener("scroll",ui),c}function SA(e){return e.children?P5(e.children,SA):[e]}function p1(e,t){return e+t.colSpan}const xA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=SA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(p1,0),a=i+l.reduce(p1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ny=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=xA(t,r,n,i);if(s){const c=s==="left";o.push(`${e}-fixed-column--${s}`),c&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!c&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function g1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Fy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=xA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(g1,0):s.right=u.slice(o+1).reverse().reduce(g1,0),s},Ts=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function eV(e){const t=ct(),r=B(!1),n=B([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const c=Ja(n.value,u);n.value=l.reduce((f,d)=>{const h=Yt(d,u);return c[h]&&f.push(d),f},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{Fl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=Ja(u,c);n.value=l.reduce((d,h)=>{const v=f[h];return v&&d.push(v.row),d},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Ja(n.value,u)[Yt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function tV(e){const t=ct(),r=B(null),n=B(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(P(c)||[]).find(h=>Yt(h,f.value)===u)),n.value=d,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const c=n.value;if(u&&u!==c){n.value=u,t.emit("current-change",n.value,c);return}!u&&c&&(n.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=n.value;if(!c.includes(f)&&f){if(u){const d=Yt(f,u);o(d)}else n.value=null;n.value===null&&t.emit("current-change",null,f)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function rV(e){const t=B([]),r=B({}),n=B(16),i=B(!1),a=B({}),o=B("hasChildren"),s=B("children"),l=ct(),u=k(()=>{if(!e.rowKey.value)return{};const m=e.data.value||[];return f(m)}),c=k(()=>{const m=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const S={children:[]};a.value[b].forEach(w=>{const x=Yt(w,m);S.children.push(x),w[o.value]&&!_[x]&&(_[x]={children:[]})}),_[b]=S}}),_}),f=m=>{const y=e.rowKey.value,_={};return QW(m,(b,S,w)=>{const x=Yt(b,y);Array.isArray(S)?_[x]={children:S.map(C=>Yt(C,y)),level:w}:i.value&&(_[x]={children:[],lazy:!0,level:w})},s.value,o.value),_},d=(m=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,S=c.value,w=Object.keys(b),x={};if(w.length){const C=P(r),M=[],E=(T,D)=>{if(m)return t.value?y||t.value.includes(D):!!(y||T!=null&&T.expanded);{const N=y||t.value&&t.value.includes(D);return!!(T!=null&&T.expanded||N)}};w.forEach(T=>{const D=C[T],N={...b[T]};if(N.expanded=E(D,T),N.lazy){const{loaded:H=!1,loading:$=!1}=D||{};N.loaded=!!H,N.loading=!!$,M.push(T)}x[T]=N});const A=Object.keys(S);i.value&&A.length&&M.length&&A.forEach(T=>{const D=C[T],N=S[T].children;if(M.includes(T)){if(x[T].children.length!==0)throw new Error("[ElTable]children must be an empty array.");x[T].children=N}else{const{loaded:H=!1,loading:$=!1}=D||{};x[T]={lazy:!0,loaded:!!H,loading:!!$,expanded:E(D,T),children:N,level:""}}})}r.value=x,(_=l.store)==null||_.updateTableScrollY()};xe(()=>t.value,()=>{d(!0)}),xe(()=>u.value,()=>{d()}),xe(()=>c.value,()=>{d()});const h=m=>{t.value=m,d()},v=(m,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Yt(m,_),S=b&&r.value[b];if(b&&S&&"expanded"in S){const w=S.expanded;y=typeof y>"u"?!S.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",m,y),l.store.updateTableScrollY()}},p=m=>{l.store.assertRowKey();const y=e.rowKey.value,_=Yt(m,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?g(m,_,b):v(m,void 0)},g=(m,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(m,_,S=>{if(!Array.isArray(S))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,S.length&&(a.value[y]=S),l.emit("expand-change",m,!0)}))};return{loadData:g,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:h,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const nV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:YW(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Df=e=>{const t=[];return e.forEach(r=>{r.children?t.push.apply(t,Df(r.children)):t.push(r)}),t};function iV(){var e;const t=ct(),{size:r}=$d((e=t.proxy)==null?void 0:e.$props),n=B(null),i=B([]),a=B([]),o=B(!1),s=B([]),l=B([]),u=B([]),c=B([]),f=B([]),d=B([]),h=B([]),v=B([]),p=[],g=B(0),m=B(0),y=B(0),_=B(!1),b=B([]),S=B(!1),w=B(!1),x=B(null),C=B({}),M=B(null),E=B(null),A=B(null),T=B(null),D=B(null);xe(i,()=>t.state&&G(!1),{deep:!0});const N=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},H=ve=>{var Ee;(Ee=ve.children)==null||Ee.forEach(je=>{je.fixed=ve.fixed,H(je)})},$=()=>{s.value.forEach(nt=>{H(nt)}),c.value=s.value.filter(nt=>nt.fixed===!0||nt.fixed==="left"),f.value=s.value.filter(nt=>nt.fixed==="right"),c.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,c.value.unshift(s.value[0]));const ve=s.value.filter(nt=>!nt.fixed);l.value=[].concat(c.value).concat(ve).concat(f.value);const Ee=Df(ve),je=Df(c.value),Be=Df(f.value);g.value=Ee.length,m.value=je.length,y.value=Be.length,u.value=[].concat(je).concat(Ee).concat(Be),o.value=c.value.length>0||f.value.length>0},G=(ve,Ee=!1)=>{ve&&$(),Ee?t.state.doLayout():t.state.debouncedUpdateLayout()},F=ve=>b.value.includes(ve),R=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},j=()=>{let ve;if(n.value){ve=[];const Ee=Ja(b.value,n.value),je=Ja(i.value,n.value);for(const Be in Ee)We(Ee,Be)&&!je[Be]&&ve.push(Ee[Be].row)}else ve=b.value.filter(Ee=>!i.value.includes(Ee));if(ve.length){const Ee=b.value.filter(je=>!ve.includes(je));b.value=Ee,t.emit("selection-change",Ee.slice())}},re=()=>(b.value||[]).slice(),oe=(ve,Ee=void 0,je=!0)=>{if(Fl(b.value,ve,Ee)){const nt=(b.value||[]).slice();je&&t.emit("select",nt,ve),t.emit("selection-change",nt)}},ye=()=>{var ve,Ee;const je=w.value?!_.value:!(_.value||b.value.length);_.value=je;let Be=!1,nt=0;const it=(Ee=(ve=t==null?void 0:t.store)==null?void 0:ve.states)==null?void 0:Ee.rowKey.value;i.value.forEach((Mt,ri)=>{const ni=ri+nt;x.value?x.value.call(null,Mt,ni)&&Fl(b.value,Mt,je)&&(Be=!0):Fl(b.value,Mt,je)&&(Be=!0),nt+=Q(Yt(Mt,it))}),Be&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},Ae=()=>{const ve=Ja(b.value,n.value);i.value.forEach(Ee=>{const je=Yt(Ee,n.value),Be=ve[je];Be&&(b.value[Be.index]=Ee)})},V=()=>{var ve,Ee,je;if(((ve=i.value)==null?void 0:ve.length)===0){_.value=!1;return}let Be;n.value&&(Be=Ja(b.value,n.value));const nt=function(ni){return Be?!!Be[Yt(ni,n.value)]:b.value.includes(ni)};let it=!0,Mt=0,ri=0;for(let ni=0,sD=(i.value||[]).length;ni{var Ee;if(!t||!t.store)return 0;const{treeData:je}=t.store.states;let Be=0;const nt=(Ee=je.value[ve])==null?void 0:Ee.children;return nt&&(Be+=nt.length,nt.forEach(it=>{Be+=Q(it)})),Be},W=(ve,Ee)=>{Array.isArray(ve)||(ve=[ve]);const je={};return ve.forEach(Be=>{C.value[Be.id]=Ee,je[Be.columnKey||Be.id]=Ee}),je},q=(ve,Ee,je)=>{E.value&&E.value!==ve&&(E.value.order=null),E.value=ve,A.value=Ee,T.value=je},le=()=>{let ve=P(a);Object.keys(C.value).forEach(Ee=>{const je=C.value[Ee];if(!je||je.length===0)return;const Be=bA({columns:u.value},Ee);Be&&Be.filterMethod&&(ve=ve.filter(nt=>je.some(it=>Be.filterMethod.call(null,it,nt,Be))))}),M.value=ve},de=()=>{i.value=nV(M.value,{sortingColumn:E.value,sortProp:A.value,sortOrder:T.value})},J=(ve=void 0)=>{ve&&ve.filter||le(),de()},L=ve=>{const{tableHeaderRef:Ee}=t.refs;if(!Ee)return;const je=Object.assign({},Ee.filterPanels),Be=Object.keys(je);if(Be.length)if(typeof ve=="string"&&(ve=[ve]),Array.isArray(ve)){const nt=ve.map(it=>qW({columns:u.value},it));Be.forEach(it=>{const Mt=nt.find(ri=>ri.id===it);Mt&&(Mt.filteredValue=[])}),t.store.commit("filterChange",{column:nt,values:[],silent:!0,multi:!0})}else Be.forEach(nt=>{const it=u.value.find(Mt=>Mt.id===nt);it&&(it.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},I=()=>{E.value&&(q(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:z,toggleRowExpansion:U,updateExpandRows:K,states:ne,isRowExpanded:fe}=eV({data:i,rowKey:n}),{updateTreeExpandKeys:te,toggleTreeExpansion:ie,updateTreeData:X,loadOrToggle:we,states:he}=rV({data:i,rowKey:n}),{updateCurrentRowData:Se,updateCurrentRow:Oe,setCurrentRowKey:ze,states:rt}=tV({data:i,rowKey:n});return{assertRowKey:N,updateColumns:$,scheduleLayout:G,isSelected:F,clearSelection:R,cleanSelection:j,getSelectionRows:re,toggleRowSelection:oe,_toggleAllSelection:ye,toggleAllSelection:null,updateSelectionByRowKey:Ae,updateAllSelected:V,updateFilters:W,updateCurrentRow:Oe,updateSort:q,execFilter:le,execSort:de,execQuery:J,clearFilter:L,clearSort:I,toggleRowExpansion:U,setExpandRowKeysAdapter:ve=>{z(ve),te(ve)},setCurrentRowKey:ze,toggleRowExpansionAdapter:(ve,Ee)=>{u.value.some(({type:Be})=>Be==="expand")?U(ve,Ee):ie(ve,Ee)},isRowExpanded:fe,updateExpandRows:K,updateCurrentRowData:Se,loadOrToggle:we,updateTreeData:X,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:h,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:g,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:S,selectOnIndeterminate:w,selectable:x,filters:C,filteredData:M,sortingColumn:E,sortProp:A,sortOrder:T,hoverRow:D,...ne,...he,...rt}}}function pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=pg(r.children,t)),r)})}function gg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&gg(t.children)}),e.sort((t,r)=>t.no-r.no)}function aV(){const e=ct(),t=iV();return{ns:Ne("table"),...t,mutations:{setData(o,s){const l=P(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),P(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const c=P(o._columns);let f=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),f=pg(c,l)):(c.push(s),f=c),gg(f),o._columns.value=f,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(gg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const c=P(o._columns)||[];if(l)l.children.splice(l.children.findIndex(d=>d.id===s.id),1),Ft(()=>{var d;((d=l.children)==null?void 0:d.length)===0&&delete l.children}),o._columns.value=pg(c,l);else{const d=c.indexOf(s);d>-1&&(c.splice(d,1),o._columns.value=c)}const f=o.updateOrderFns.indexOf(u);f>-1&&o.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:c}=s;if(l){const f=P(o.columns).find(d=>d.property===l);f&&(f.order=u,e.store.updateSort(f,l,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:c}=o,f=P(l),d=P(u),h=P(c);h===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:f,prop:d,order:h}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:c}=s,f=e.store.updateFilters(l,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Ft(()=>e.layout.updateScrollY.apply(e.layout))}}}const Bl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function oV(e,t){if(!e)throw new Error("Table is required.");const r=aV();return r.toggleAllSelection=id(r._toggleAllSelection,10),Object.keys(Bl).forEach(n=>{CA(TA(t,n),n,r)}),sV(r,t),r}function sV(e,t){Object.keys(Bl).forEach(r=>{xe(()=>TA(t,r),n=>{CA(n,r,e)})})}function CA(e,t,r){let n=e,i=Bl[t];typeof Bl[t]=="object"&&(i=i.key,n=n||Bl[t].default),r.states[i].value=n}function TA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class lV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=B(null),this.scrollX=B(!1),this.scrollY=B(!1),this.bodyWidth=B(null),this.fixedWidth=B(null),this.rightFixedWidth=B(null),this.gutterWidth=0;for(const r in t)We(t,r)&&(Ct(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!Nt)return;const n=this.table.vnode.el;if(t=XW(t),this.height.value=Number(t),!n&&(t||t===0))return Ft(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!Nt)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((d,h)=>d+Number(h.minWidth||80),0),c=l/u;let f=0;a.forEach((d,h)=>{if(h===0)return;const v=Math.floor(Number(d.minWidth||80)*c);f+=v,d.realWidth=Number(d.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-f}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:uV}=Cs,cV=ce({name:"ElTableFilterPanel",components:{ElCheckbox:Cs,ElCheckboxGroup:uV,ElScrollbar:VM,ElTooltip:Ju,ElIcon:lr,ArrowDown:lM,ArrowUp:e3},directives:{ClickOutside:t8},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=ct(),{t:r}=py(),n=Ne("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=B(!1),o=B(null),s=k(()=>e.column&&e.column.filters),l=k({get:()=>{var b;return(((b=e.column)==null?void 0:b.filteredValue)||[])[0]},set:b=>{u.value&&(typeof b<"u"&&b!==null?u.value.splice(0,1,b):u.value.splice(0,1))}}),u=k({get(){return e.column?e.column.filteredValue||[]:[]},set(b){e.column&&e.upDataColumn("filteredValue",b)}}),c=k(()=>e.column?e.column.filterMultiple:!0),f=b=>b.value===l.value,d=()=>{a.value=!1},h=b=>{b.stopPropagation(),a.value=!a.value},v=()=>{a.value=!1},p=()=>{y(u.value),d()},g=()=>{u.value=[],y(u.value),d()},m=b=>{l.value=b,y(typeof b<"u"&&b!==null?u.value:[]),d()},y=b=>{e.store.commit("filterChange",{column:e.column,values:b}),e.store.updateAllSelected()};xe(a,b=>{e.column&&e.upDataColumn("filterOpened",b)},{immediate:!0});const _=k(()=>{var b,S;return(S=(b=o.value)==null?void 0:b.popperRef)==null?void 0:S.contentRef});return{tooltipVisible:a,multiple:c,filteredValue:u,filterValue:l,filters:s,handleConfirm:p,handleReset:g,handleSelect:m,isActive:f,t:r,ns:n,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:_,tooltip:o}}}),fV={key:0},dV=["disabled"],hV=["label","onClick"];function vV(e,t,r,n,i,a){const o=_r("el-checkbox"),s=_r("el-checkbox-group"),l=_r("el-scrollbar"),u=_r("arrow-up"),c=_r("arrow-down"),f=_r("el-icon"),d=_r("el-tooltip"),h=ZC("click-outside");return Y(),_e(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:Z(()=>[e.multiple?(Y(),me("div",fV,[ae("div",{class:ue(e.ns.e("content"))},[ee(l,{"wrap-class":e.ns.e("wrap")},{default:Z(()=>[ee(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:ue(e.ns.e("checkbox-group"))},{default:Z(()=>[(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),_e(o,{key:v.value,label:v.value},{default:Z(()=>[Bt(Me(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ae("div",{class:ue(e.ns.e("bottom"))},[ae("button",{class:ue({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},Me(e.t("el.table.confirmFilter")),11,dV),ae("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},Me(e.t("el.table.resetFilter")),1)],2)])):(Y(),me("ul",{key:1,class:ue(e.ns.e("list"))},[ae("li",{class:ue([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},Me(e.t("el.table.clearFilter")),3),(Y(!0),me(pt,null,l_(e.filters,v=>(Y(),me("li",{key:v.value,class:ue([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},Me(v.text),11,hV))),128))],2))]),default:Z(()=>[nr((Y(),me("span",{class:ue([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[ee(f,null,{default:Z(()=>[e.column.filterOpened?(Y(),_e(u,{key:0})):(Y(),_e(c,{key:1}))]),_:1})],2)),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var pV=Ze(cV,[["render",vV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function MA(e){const t=ct();Gd(()=>{r.value.addObserver(t)}),wt(()=>{n(r.value),i(r.value)}),Hu(()=>{n(r.value),i(r.value)}),ks(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,f=s.length;c{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=l.length;c{p.stopPropagation()},a=(p,g)=>{!g.filters&&g.sortable?v(p,g,!1):g.filterable&&!g.sortable&&i(p),n==null||n.emit("header-click",g,p)},o=(p,g)=>{n==null||n.emit("header-contextmenu",g,p)},s=B(null),l=B(!1),u=B({}),c=(p,g)=>{if(Nt&&!(g.children&&g.children.length>0)&&s.value&&e.border){l.value=!0;const m=n;t("set-drag-visible",!0);const _=(m==null?void 0:m.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${g.id}`),S=b.getBoundingClientRect(),w=S.left-_+30;Zo(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:S.right-_,startColumnLeft:S.left-_,tableLeft:_};const x=m==null?void 0:m.refs.resizeProxy;x.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=E=>{const A=E.clientX-u.value.startMouseLeft,T=u.value.startLeft+A;x.style.left=`${Math.max(w,T)}px`},M=()=>{if(l.value){const{startColumnLeft:E,startLeft:A}=u.value,D=Number.parseInt(x.style.left,10)-E;g.width=g.realWidth=D,m==null||m.emit("header-dragend",g.width,A-E,g,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{ss(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},f=(p,g)=>{var m;if(g.children&&g.children.length>0)return;const y=(m=p.target)==null?void 0:m.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",Ol(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=g):l.value||(b.cursor="",Ol(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},d=()=>{Nt&&(document.body.style.cursor="")},h=({order:p,sortOrders:g})=>{if(p==="")return g[0];const m=g.indexOf(p||null);return g[m>g.length-2?0:m+1]},v=(p,g,m)=>{var y;p.stopPropagation();const _=g.order===m?null:m||h(g),b=(y=p.target)==null?void 0:y.closest("th");if(b&&Ol(b,"noclick")){ss(b,"noclick");return}if(!g.sortable)return;const S=e.store.states;let w=S.sortProp.value,x;const C=S.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),S.sortingColumn.value=g,w=g.property),_?x=g.order=_:x=g.order=null,S.sortProp.value=w,S.sortOrder.value=x,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:v,handleFilterClick:i}}function mV(e){const t=Pe(Qn),r=Ne("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:s,columnIndex:l,row:u,column:c}));const h=Fy(l,c.fixed,e.store,u);return Ts(h,"left"),Ts(h,"right"),Object.assign({},d,h)},getHeaderCellClass:(s,l,u,c)=>{const f=Ny(r.b(),l,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const h=t==null?void 0:t.props.headerCellClassName;return typeof h=="string"?d.push(h):typeof h=="function"&&d.push(h.call(null,{rowIndex:s,columnIndex:l,row:u,column:c})),d.push(r.e("cell")),d.filter(v=>Boolean(v)).join(" ")}}}const AA=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,AA(r.children))):t.push(r)}),t},yV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function _V(e){const t=Pe(Qn),r=k(()=>yV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var bV=ce({name:"ElTableHeader",components:{ElCheckbox:Cs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=ct(),n=Pe(Qn),i=Ne("table"),a=B({}),{onColumnsChange:o,onScrollableChange:s}=MA(n);wt(async()=>{await Ft(),await Ft();const{prop:w,order:x}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:x,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v}=gV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:g,getHeaderCellStyle:m,getHeaderCellClass:y}=mV(e),{isGroup:_,toggleAllSelection:b,columnRows:S}=_V(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:S,getHeaderRowClass:g,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:m,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:h,$parent:v}=this;let p=1;return Ce("thead",{class:{[e.is("group")]:t}},r.map((g,m)=>Ce("tr",{class:a(m),key:m,style:o(m)},g.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Ce("th",{class:i(m,_,g,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(m,_,g,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>c(b,y),onMouseout:d},[Ce("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:h,_self:v}):y.label,y.sortable&&Ce("span",{onClick:b=>f(b,y),class:"caret-wrapper"},[Ce("i",{onClick:b=>f(b,y,"ascending"),class:"sort-caret ascending"}),Ce("i",{onClick:b=>f(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Ce(pV,{store:h,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,S)=>{y[b]=S}})])]))))))}});function wV(e){const t=Pe(Qn),r=B(""),n=B(Ce("div")),{nextZIndex:i}=Ay(),a=(h,v,p)=>{var g;const m=t,y=Qh(h);let _;const b=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;y&&(_=v1({columns:e.store.states.columns.value},y,b),_&&(m==null||m.emit(`cell-${p}`,v,_,y,h))),m==null||m.emit(`row-${p}`,v,_,h)},o=(h,v)=>{a(h,v,"dblclick")},s=(h,v)=>{e.store.commit("setCurrentRow",v),a(h,v,"click")},l=(h,v)=>{a(h,v,"contextmenu")},u=id(h=>{e.store.commit("setHoverRow",h)},30),c=id(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:o,handleClick:s,handleContextMenu:l,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(h,v,p)=>{var g;const m=t,y=Qh(h),_=(g=m==null?void 0:m.vnode.el)==null?void 0:g.dataset.prefix;if(y){const C=v1({columns:e.store.states.columns.value},y,_),M=m.hoverState={cell:y,column:C,row:v};m==null||m.emit("cell-mouse-enter",M.row,M.column,M.cell,h)}if(!p)return;const b=h.target.querySelector(".cell");if(!(Ol(b,`${_}-tooltip`)&&b.childNodes.length))return;const S=document.createRange();S.setStart(b,0),S.setEnd(b,b.childNodes.length);const w=Math.round(S.getBoundingClientRect().width),x=(Number.parseInt(Mb(b,"paddingLeft"),10)||0)+(Number.parseInt(Mb(b,"paddingRight"),10)||0);(w+x>b.offsetWidth||b.scrollWidth>b.offsetWidth)&&JW(t==null?void 0:t.refs.tableWrapper,y,y.innerText||y.textContent,i,p)},handleCellMouseLeave:h=>{if(!Qh(h))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,h)},tooltipContent:r,tooltipTrigger:n}}function SV(e){const t=Pe(Qn),r=Ne("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(r.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const h=t==null?void 0:t.props.cellStyle;let v=h??{};typeof h=="function"&&(v=h.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const p=Fy(c,e==null?void 0:e.fixed,e.store);return Ts(p,"left"),Ts(p,"right"),Object.assign({},v,p)},getCellClass:(u,c,f,d,h)=>{const v=Ny(r.b(),c,e==null?void 0:e.fixed,e.store,void 0,h),p=[d.id,d.align,d.className,...v],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?p.push(g):typeof g=="function"&&p.push(g.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),p.push(r.e("cell")),p.filter(m=>Boolean(m)).join(" ")},getSpan:(u,c,f,d)=>{let h=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const g=p({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(g)?(h=g[0],v=g[1]):typeof g=="object"&&(h=g.rowspan,v=g.colspan)}return{rowspan:h,colspan:v}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:h,width:v})=>h||v).slice(f,f+c);return Number(d.reduce((h,v)=>Number(h)+Number(v),-1))}}}function xV(e){const t=Pe(Qn),r=Ne("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=wV(e),{getRowStyle:d,getRowClass:h,getCellStyle:v,getCellClass:p,getSpan:g,getColspanRealWidth:m}=SV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:x})=>x==="default")),_=(x,C)=>{const M=t.props.rowKey;return M?Yt(x,M):C},b=(x,C,M,E=!1)=>{const{tooltipEffect:A,tooltipOptions:T,store:D}=e,{indent:N,columns:H}=D.states,$=h(x,C);let G=!0;return M&&($.push(r.em("row",`level-${M.level}`)),G=M.display),Ce("tr",{style:[G?null:{display:"none"},d(x,C)],class:$,key:_(x,C),onDblclick:R=>n(R,x),onClick:R=>i(R,x),onContextmenu:R=>a(R,x),onMouseenter:()=>o(C),onMouseleave:s},H.value.map((R,j)=>{const{rowspan:re,colspan:oe}=g(x,R,C,j);if(!re||!oe)return null;const ye={...R};ye.realWidth=m(H.value,oe,j);const Ae={store:e.store,_self:e.context||t,column:ye,row:x,$index:C,cellIndex:j,expanded:E};j===y.value&&M&&(Ae.treeNode={indent:M.level*N.value,level:M.level},typeof M.expanded=="boolean"&&(Ae.treeNode.expanded=M.expanded,"loading"in M&&(Ae.treeNode.loading=M.loading),"noLazyChildren"in M&&(Ae.treeNode.noLazyChildren=M.noLazyChildren)));const V=`${C},${j}`,Q=ye.columnKey||ye.rawColumnKey||"",W=S(j,R,Ae),q=R.showOverflowTooltip&&aM({effect:A},T,R.showOverflowTooltip);return Ce("td",{style:v(C,j,x,R),class:p(C,j,x,R,oe-1),key:`${Q}${V}`,rowspan:re,colspan:oe,onMouseenter:le=>l(le,x,q),onMouseleave:u},[W])}))},S=(x,C,M)=>C.renderCell(M);return{wrappedRowRender:(x,C)=>{const M=e.store,{isRowExpanded:E,assertRowKey:A}=M,{treeData:T,lazyTreeNodeMap:D,childrenColumnName:N,rowKey:H}=M.states,$=M.states.columns.value;if($.some(({type:F})=>F==="expand")){const F=E(x),R=b(x,C,void 0,F),j=t.renderExpanded;return F?j?[[R,Ce("tr",{key:`expanded-row__${R.key}`},[Ce("td",{colspan:$.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[j({row:x,$index:C,store:M,expanded:F})])])]]:(console.error("[Element Error]renderExpanded is required."),R):[[R]]}else if(Object.keys(T.value).length){A();const F=Yt(x,H.value);let R=T.value[F],j=null;R&&(j={expanded:R.expanded,level:R.level,display:!0},typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(j.noLazyChildren=!(R.children&&R.children.length)),j.loading=R.loading));const re=[b(x,C,j)];if(R){let oe=0;const ye=(V,Q)=>{V&&V.length&&Q&&V.forEach(W=>{const q={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},le=Yt(W,H.value);if(le==null)throw new Error("For nested data item, row-key is required.");if(R={...T.value[le]},R&&(q.expanded=R.expanded,R.level=R.level||q.level,R.display=!!(R.expanded&&q.display),typeof R.lazy=="boolean"&&(typeof R.loaded=="boolean"&&R.loaded&&(q.noLazyChildren=!(R.children&&R.children.length)),q.loading=R.loading)),oe++,re.push(b(W,C+oe,q)),R){const de=D.value[le]||W[N.value];ye(de,R)}})};R.display=!0;const Ae=D.value[F]||x[N.value];ye(Ae,R)}return re}else return b(x,C,void 0)},tooltipContent:c,tooltipTrigger:f}}const CV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var TV=ce({name:"ElTableBody",props:CV,setup(e){const t=ct(),r=Pe(Qn),n=Ne("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=xV(e),{onColumnsChange:s,onScrollableChange:l}=MA(r);return xe(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Nt)return;let f=window.requestAnimationFrame;f||(f=d=>window.setTimeout(d,16)),f(()=>{const d=t==null?void 0:t.vnode.el,h=Array.from((d==null?void 0:d.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${n.e("row")}`)),v=h[c],p=h[u];v&&ss(v,"hover-row"),p&&Zo(p,"hover-row")})}),ks(()=>{var u;(u=ui)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Ce("tbody",{},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function By(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Ce("colgroup",{},r.map(i=>Ce("col",n(i))))}By.props=["columns","tableLayout"];function MV(){const e=Pe(Qn),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function AV(e){const{columns:t}=MV(),r=Ne("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ny(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Fy(o,a.fixed,e.store);return Ts(s,"left"),Ts(s,"right"),s},columns:t}}var PV=ce({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=AV(e);return{ns:Ne("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i,ns:a}=this,o=this.store.states.data.value;let s=[];return n?s=n({columns:e,data:o}):e.forEach((l,u)=>{if(u===0){s[u]=i;return}const c=o.map(v=>Number(v[l.property])),f=[];let d=!0;c.forEach(v=>{if(!Number.isNaN(+v)){d=!1;const p=`${v}`.split(".")[1];f.push(p?p.length:0)}});const h=Math.max.apply(null,f);d?s[u]="":s[u]=c.reduce((v,p)=>{const g=Number(p);return Number.isNaN(+g)?v:Number.parseFloat((v+p).toFixed(Math.min(h,20)))},0)}),Ce("table",{class:a.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[By({columns:e}),Ce("tbody",[Ce("tr",{},[...e.map((l,u)=>Ce("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:r(e,u),style:t(l,u)},[Ce("div",{class:["cell",l.labelClassName]},[s[u]])]))])])])}});function EV(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function LV(e,t,r,n){const i=B(!1),a=B(null),o=B(!1),s=F=>{o.value=F},l=B({width:null,height:null,headerHeight:null}),u=B(!1),c={display:"inline-block",verticalAlign:"middle"},f=B(),d=B(0),h=B(0),v=B(0),p=B(0);io(()=>{t.setHeight(e.height)}),io(()=>{t.setMaxHeight(e.maxHeight)}),xe(()=>[e.currentRowKey,r.states.rowKey],([F,R])=>{!P(R)||!P(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),xe(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),io(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},m=(F,R)=>{const{pixelX:j,pixelY:re}=R;Math.abs(j)>=Math.abs(re)&&(n.refs.bodyWrapper.scrollLeft+=R.pixelX/5)},y=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),_=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),b=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};wt(async()=>{await Ft(),r.updateColumns(),M(),requestAnimationFrame(b);const F=n.vnode.el,R=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:f.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&R?R.offsetHeight:null},r.states.columns.value.forEach(j=>{j.filteredValue&&j.filteredValue.length&&n.store.commit("filterChange",{column:j,values:j.filteredValue,silent:!0})}),n.$ready=!0});const S=(F,R)=>{if(!F)return;const j=Array.from(F.classList).filter(re=>!re.startsWith("is-scrolling-"));j.push(t.scrollX.value?R:"is-scrolling-none"),F.className=j.join(" ")},w=F=>{const{tableWrapper:R}=n.refs;S(R,F)},x=F=>{const{tableWrapper:R}=n.refs;return!!(R&&R.classList.contains(F))},C=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const V="is-scrolling-none";x(V)||w(V);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:R,offsetWidth:j,scrollWidth:re}=F,{headerWrapper:oe,footerWrapper:ye}=n.refs;oe&&(oe.scrollLeft=R),ye&&(ye.scrollLeft=R);const Ae=re-j-1;R>=Ae?w("is-scrolling-right"):w(R===0?"is-scrolling-left":"is-scrolling-middle")},M=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&Sn(n.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?gs(n.vnode.el,E):Sn(window,"resize",E),gs(n.refs.bodyWrapper,()=>{var F,R;E(),(R=(F=n.refs)==null?void 0:F.scrollBarRef)==null||R.update()}))},E=()=>{var F,R,j;const re=n.vnode.el;if(!n.$ready||!re)return;let oe=!1;const{width:ye,height:Ae,headerHeight:V}=l.value,Q=f.value=re.offsetWidth;ye!==Q&&(oe=!0);const W=re.offsetHeight;(e.height||y.value)&&Ae!==W&&(oe=!0);const q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(q==null?void 0:q.offsetHeight)!==V&&(oe=!0),d.value=((R=n.refs.tableWrapper)==null?void 0:R.scrollHeight)||0,v.value=(q==null?void 0:q.scrollHeight)||0,p.value=((j=n.refs.footerWrapper)==null?void 0:j.offsetHeight)||0,h.value=d.value-v.value-p.value,oe&&(l.value={width:Q,height:W,headerHeight:e.showHeader&&(q==null?void 0:q.offsetHeight)||0},b())},A=ia(),T=k(()=>{const{bodyWidth:F,scrollY:R,gutterWidth:j}=t;return F.value?`${F.value-(R.value?j:0)}px`:""}),D=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&h.value&&(F=`${h.value}px`);const R=f.value;return{width:R?`${R}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),$=k(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`};{const F=e.maxHeight;if(d.value>=Number(F))return{maxHeight:`${d.value-v.value-p.value}px`}}}return{}});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:m,tableSize:A,emptyBlockStyle:N,handleFixedMousewheel:(F,R)=>{const j=n.refs.bodyWrapper;if(Math.abs(R.spinY)>0){const re=j.scrollTop;R.pixelY<0&&re!==0&&F.preventDefault(),R.pixelY>0&&j.scrollHeight-j.clientHeight>re&&F.preventDefault(),j.scrollTop+=Math.ceil(R.pixelY/5)}else j.scrollLeft+=Math.ceil(R.pixelX/5)},resizeProxyVisible:o,bodyWidth:T,resizeState:l,doLayout:b,tableBodyStyles:_,tableLayout:D,scrollbarViewStyle:c,tableInnerStyle:H,scrollbarStyle:$}}function DV(e){const t=B(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};wt(()=>{r()}),ks(()=>{var n;(n=t.value)==null||n.disconnect()})}var IV={data:{type:Array,default:()=>[]},size:Xu,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const OV=()=>{const e=B(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&$t(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let RV=1;const kV=ce({name:"ElTable",directives:{Mousewheel:l8},components:{TableHeader:bV,TableBody:TV,TableFooter:PV,ElScrollbar:VM,hColgroup:By},props:IV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=py(),r=Ne("table"),n=ct();At(Qn,n);const i=oV(n,e);n.store=i;const a=new lV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,sort:p}=EV(i),{isHidden:g,renderExpanded:m,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:S,tableSize:w,emptyBlockStyle:x,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:E,resizeState:A,doLayout:T,tableBodyStyles:D,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G}=LV(e,a,i,n),{scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}=OV(),oe=id(T,50),ye=`${r.namespace.value}-table_${RV++}`;n.tableId=ye,n.state={isGroup:_,resizeState:A,doLayout:T,debouncedUpdateLayout:oe};const Ae=k(()=>e.sumText||t("el.table.sumText")),V=k(()=>e.emptyText||t("el.table.emptyText"));return DV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:S,handleMouseLeave:b,tableId:ye,tableSize:w,isHidden:g,isEmpty:o,renderExpanded:m,resizeProxyVisible:M,resizeState:A,isGroup:_,bodyWidth:E,tableBodyStyles:D,emptyBlockStyle:x,debouncedUpdateLayout:oe,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:h,clearSort:v,doLayout:T,sort:p,t,setDragVisible:y,context:n,computedSumText:Ae,computedEmptyText:V,tableLayout:N,scrollbarViewStyle:H,tableInnerStyle:$,scrollbarStyle:G,scrollBarRef:F,scrollTo:R,setScrollLeft:j,setScrollTop:re}}}),NV=["data-prefix"],FV={ref:"hiddenColumns",class:"hidden-columns"};function BV(e,t,r,n,i,a){const o=_r("hColgroup"),s=_r("table-header"),l=_r("table-body"),u=_r("el-scrollbar"),c=_r("table-footer"),f=ZC("mousewheel");return Y(),me("div",{ref:"tableWrapper",class:ue([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:xt(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...d)=>e.handleMouseLeave&&e.handleMouseLeave(...d))},[ae("div",{class:ue(e.ns.e("inner-wrapper")),style:xt(e.tableInnerStyle)},[ae("div",FV,[$e(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?nr((Y(),me("div",{key:0,ref:"headerWrapper",class:ue(e.ns.e("header-wrapper"))},[ae("table",{ref:"tableHeader",class:ue(e.ns.e("header")),style:xt(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ee(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):Fe("v-if",!0),ae("div",{ref:"bodyWrapper",class:ue(e.ns.e("body-wrapper"))},[ee(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:Z(()=>[ae("table",{ref:"tableBody",class:ue(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:xt({width:e.bodyWidth,tableLayout:e.tableLayout})},[ee(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(Y(),_e(s,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):Fe("v-if",!0),ee(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"])],6),e.isEmpty?(Y(),me("div",{key:0,ref:"emptyBlock",style:xt(e.emptyBlockStyle),class:ue(e.ns.e("empty-block"))},[ae("span",{class:ue(e.ns.e("empty-text"))},[$e(e.$slots,"empty",{},()=>[Bt(Me(e.computedEmptyText),1)])],2)],6)):Fe("v-if",!0),e.$slots.append?(Y(),me("div",{key:1,ref:"appendWrapper",class:ue(e.ns.e("append-wrapper"))},[$e(e.$slots,"append")],2)):Fe("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?nr((Y(),me("div",{key:1,ref:"footerWrapper",class:ue(e.ns.e("footer-wrapper"))},[ee(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:xt(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[yi,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):Fe("v-if",!0),e.border||e.isGroup?(Y(),me("div",{key:2,class:ue(e.ns.e("border-left-patch"))},null,2)):Fe("v-if",!0)],6),nr(ae("div",{ref:"resizeProxy",class:ue(e.ns.e("column-resize-proxy"))},null,2),[[yi,e.resizeProxyVisible]])],46,NV)}var $V=Ze(kV,[["render",BV],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const HV={selection:"table-column--selection",expand:"table__expand-column"},zV={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},WV=e=>HV[e]||"",VV={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Ce(Cs,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:r,$index:n}){return Ce(Cs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Ce("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Ce("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Ce(lr,null,{default:()=>[Ce(dy)]})]})},sortable:!1,resizable:!1}};function GV({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&xf(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function UV({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Ce("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Ce("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=dy;t.loading&&(l=hy),a.push(Ce("div",{class:s,onClick:o},{default:()=>[Ce(lr,{class:{[i.is("loading")]:t.loading}},{default:()=>[Ce(l)]})]}))}else a.push(Ce("span",{class:i.e("placeholder")}));return a}function m1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function jV(e,t){const r=ct();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&xe(()=>t[u],c=>{let f=c;u==="width"&&l==="realWidth"&&(f=ky(c)),u==="minWidth"&&l==="realMinWidth"&&(f=wA(c)),r.columnConfig.value[u]=f,r.columnConfig.value[l]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=m1(a,o);Object.keys(s).forEach(l=>{const u=o[l];We(t,u)&&xe(()=>t[u],c=>{r.columnConfig.value[l]=c})})}}}function YV(e,t,r){const n=ct(),i=B(""),a=B(!1),o=B(),s=B(),l=Ne("table");io(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),io(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),c=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:S}=b.states,w=S.value;return w&&Object.keys(w).length>0}),f=B(ky(e.width)),d=B(wA(e.minWidth)),h=b=>(f.value&&(b.width=f.value),d.value&&(b.minWidth=d.value),!f.value&&d.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const S=b.type,w=VV[S]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const x=WV(S);if(x){const C=`${P(l.namespace)}-${x}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>S(w)):S(b);function S(w){var x;((x=w==null?void 0:w.type)==null?void 0:x.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:h,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>{n.columnConfig.value.label;const x=t.header;return x?x(w):b.label});let S=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Ce("div",{class:"cell"},[S(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(S=S||GV,b.renderCell=w=>{let x=null;if(t.default){const D=t.default(w);x=D.some(N=>N.type!==Sr)?D:S(w)}else x=S(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(D=>D.type==="default"),E=c.value&&w.cellIndex===M,A=UV(w,E),T={class:"cell",style:{}};return b.showOverflowTooltip&&(T.class=`${T.class} ${P(l.namespace)}-tooltip`,T.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(x),Ce("div",T,[A,x])}),b},getPropsData:(...b)=>b.reduce((S,w)=>(Array.isArray(w)&&w.forEach(x=>{S[x]=e[x]}),S),{}),getColumnElIndex:(b,S)=>Array.prototype.indexOf.call(b,S),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var qV={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:[Boolean,Object],fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let KV=1;var PA=ce({name:"ElTableColumn",components:{ElCheckbox:Cs},props:qV,setup(e,{slots:t}){const r=ct(),n=B({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=jV(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:h,getPropsData:v,getColumnElIndex:p,realAlign:g,updateColumnOrder:m}=YV(e,t,i),y=c.value;s.value=`${y.tableId||y.columnId}_column_${KV++}`,Gd(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,S={...zV[_],id:s.value,type:_,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let E=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);E=KW(S,E),E=ZW(h,f,d)(E),n.value=E,a(),o()}),wt(()=>{var _;const b=c.value,S=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(S||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,m)}),Xt(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,m)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===pt&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!He(s==null?void 0:s.children)&&i.push(s)});return Ce("div",i)}catch{return Ce("div",[])}}});const XV=hr($V,{TableColumn:PA}),ZV=fa(PA),EA=["success","info","warning","error"],mr=Ya({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Nt?document.body:void 0}),QV=tt({customClass:{type:String,default:mr.customClass},center:{type:Boolean,default:mr.center},dangerouslyUseHTMLString:{type:Boolean,default:mr.dangerouslyUseHTMLString},duration:{type:Number,default:mr.duration},icon:{type:Wn,default:mr.icon},id:{type:String,default:mr.id},message:{type:Le([String,Object,Function]),default:mr.message},onClose:{type:Le(Function),required:!1},showClose:{type:Boolean,default:mr.showClose},type:{type:String,values:EA,default:mr.type},offset:{type:Number,default:mr.offset},zIndex:{type:Number,default:mr.zIndex},grouping:{type:Boolean,default:mr.grouping},repeatNum:{type:Number,default:mr.repeatNum}}),JV={destroy:()=>!0},xn=LC([]),eG=e=>{const t=xn.findIndex(i=>i.id===e),r=xn[t];let n;return t>0&&(n=xn[t-1]),{current:r,prev:n}},tG=e=>{const{prev:t}=eG(e);return t?t.vm.exposed.bottom.value:0},rG=(e,t)=>xn.findIndex(n=>n.id===e)>0?20:t,nG=["id"],iG=["innerHTML"],aG=ce({name:"ElMessage"}),oG=ce({...aG,props:QV,emits:JV,setup(e,{expose:t}){const r=e,{Close:n}=B3,{ns:i,zIndex:a}=sH("message"),{currentZIndex:o,nextZIndex:s}=a,l=B(),u=B(!1),c=B(0);let f;const d=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),h=k(()=>{const x=r.type;return{[i.bm("icon",x)]:x&&Ab[x]}}),v=k(()=>r.icon||Ab[r.type]||""),p=k(()=>tG(r.id)),g=k(()=>rG(r.id,r.offset)+p.value),m=k(()=>c.value+g.value),y=k(()=>({top:`${g.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:f}=kp(()=>{S()},r.duration))}function b(){f==null||f()}function S(){u.value=!1}function w({code:x}){x===Ot.esc&&S()}return wt(()=>{_(),s(),u.value=!0}),xe(()=>r.repeatNum,()=>{b(),_()}),Sn(document,"keydown",w),gs(l,()=>{c.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:m,close:S}),(x,C)=>(Y(),_e(Ci,{name:P(i).b("fade"),onBeforeLeave:x.onClose,onAfterLeave:C[0]||(C[0]=M=>x.$emit("destroy")),persisted:""},{default:Z(()=>[nr(ae("div",{id:x.id,ref_key:"messageRef",ref:l,class:ue([P(i).b(),{[P(i).m(x.type)]:x.type&&!x.icon},P(i).is("center",x.center),P(i).is("closable",x.showClose),x.customClass]),style:xt(P(y)),role:"alert",onMouseenter:b,onMouseleave:_},[x.repeatNum>1?(Y(),_e(P(P6),{key:0,value:x.repeatNum,type:P(d),class:ue(P(i).e("badge"))},null,8,["value","type","class"])):Fe("v-if",!0),P(v)?(Y(),_e(P(lr),{key:1,class:ue([P(i).e("icon"),P(h)])},{default:Z(()=>[(Y(),_e(nn(P(v))))]),_:1},8,["class"])):Fe("v-if",!0),$e(x.$slots,"default",{},()=>[x.dangerouslyUseHTMLString?(Y(),me(pt,{key:1},[Fe(" Caution here, message could've been compromised, never use user's input as message "),ae("p",{class:ue(P(i).e("content")),innerHTML:x.message},null,10,iG)],2112)):(Y(),me("p",{key:0,class:ue(P(i).e("content"))},Me(x.message),3))]),x.showClose?(Y(),_e(P(lr),{key:2,class:ue(P(i).e("closeBtn")),onClick:Jf(S,["stop"])},{default:Z(()=>[ee(P(n))]),_:1},8,["class","onClick"])):Fe("v-if",!0)],46,nG),[[yi,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var sG=Ze(oG,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let lG=1;const LA=e=>{const t=!e||He(e)||ta(e)||De(e)?{message:e}:e,r={...mr,...t};if(!r.appendTo)r.appendTo=document.body;else if(He(r.appendTo)){let n=document.querySelector(r.appendTo);ys(n)||(n=document.body),r.appendTo=n}return r},uG=e=>{const t=xn.indexOf(e);if(t===-1)return;xn.splice(t,1);const{handler:r}=e;r.close()},cG=({appendTo:e,...t},r)=>{const n=`message_${lG++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),uG(c)},onDestroy:()=>{O_(null,a)}},s=ee(sG,o,De(o.message)||ta(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ms._context,O_(s,a),e.appendChild(a.firstElementChild);const l=s.component,c={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return c},Ms=(e={},t)=>{if(!Nt)return{close:()=>{}};if($t(Qp.max)&&xn.length>=Qp.max)return{close:()=>{}};const r=LA(e);if(r.grouping&&xn.length){const i=xn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=cG(r,t);return xn.push(n),n.handler};EA.forEach(e=>{Ms[e]=(t={},r)=>{const n=LA(t);return Ms({...n,type:e},r)}});function fG(e){for(const t of xn)(!e||e===t.props.type)&&t.handler.close()}Ms.closeAll=fG;Ms._context=null;const DA=$3(Ms,"$message"),dG={id:"app"},hG={class:"grid-content header-color"},vG={class:"header-content"},pG=ae("div",{class:"brand"},[ae("a",{href:"#"},"frp")],-1),gG={class:"dark-switch"},mG=ae("span",null,"Proxies",-1),yG={id:"content"},_G=ae("footer",null,null,-1),bG=ce({__name:"App",setup(e){const t=NR(),r=B(t),n=nR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=VW,l=wW,u=SW,c=bW,f=pA,d=_r("router-view"),h=vA;return Y(),me("div",dG,[ae("header",hG,[ae("div",vG,[pG,ae("div",gG,[ee(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:P(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ae("section",null,[ee(h,null,{default:Z(()=>[ee(f,{id:"side-nav",xs:24,md:4},{default:Z(()=>[ee(c,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:Z(()=>[ee(l,{index:"/"},{default:Z(()=>[Bt("Overview")]),_:1}),ee(u,{index:"/proxies"},{title:Z(()=>[mG]),default:Z(()=>[ee(l,{index:"/proxies/tcp"},{default:Z(()=>[Bt("TCP")]),_:1}),ee(l,{index:"/proxies/udp"},{default:Z(()=>[Bt("UDP")]),_:1}),ee(l,{index:"/proxies/http"},{default:Z(()=>[Bt("HTTP")]),_:1}),ee(l,{index:"/proxies/https"},{default:Z(()=>[Bt("HTTPS")]),_:1}),ee(l,{index:"/proxies/stcp"},{default:Z(()=>[Bt("STCP")]),_:1}),ee(l,{index:"/proxies/sudp"},{default:Z(()=>[Bt("SUDP")]),_:1})]),_:1}),ee(l,{index:""},{default:Z(()=>[Bt("Help")]),_:1})]),_:1})]),_:1}),ee(f,{xs:24,md:20},{default:Z(()=>[ae("div",yG,[ee(d)])]),_:1})]),_:1})]),_G])}}});/*! * vue-router v4.1.6 * (c) 2022 Eduardo San Martin Morote * @license MIT - */const qo=typeof window<"u";function wG(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const lt=Object.assign;function Jh(e,t){const r={};for(const n in t){const i=t[n];r[n]=En(i)?i.map(e):e(i)}return r}const $l=()=>{},En=Array.isArray,xG=/\/$/,SG=e=>e.replace(xG,"");function ev(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=AG(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function CG(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function y1(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function TG(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&As(t.matched[n],r.matched[i])&&IA(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function As(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function IA(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!MG(e[r],t[r]))return!1;return!0}function MG(e,t){return En(e)?_1(e,t):En(t)?_1(t,e):e===t}function _1(e,t){return En(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function AG(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/");let i=r.length-1,a,o;for(a=0;a1&&i--;else break;return r.slice(0,i).join("/")+"/"+n.slice(a-(a===n.length?1:0)).join("/")}var wu;(function(e){e.pop="pop",e.push="push"})(wu||(wu={}));var Hl;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Hl||(Hl={}));function EG(e){if(!e)if(qo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),SG(e)}const PG=/^[^#]+#/;function LG(e,t){return e.replace(PG,"#")+t}function DG(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const ih=()=>({left:window.pageXOffset,top:window.pageYOffset});function IG(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=DG(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function b1(e,t){return(history.state?history.state.position-t:-1)+e}const mg=new Map;function OG(e,t){mg.set(e,t)}function RG(e){const t=mg.get(e);return mg.delete(e),t}let kG=()=>location.protocol+"//"+location.host;function OA(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),y1(l,"")}return y1(r,e)+n+i}function NG(e,t,r,n){let i=[],a=[],o=null;const s=({state:d})=>{const h=OA(e,location),v=r.value,p=t.value;let g=0;if(d){if(r.value=h,t.value=d,o&&o===v){o=null;return}g=p?d.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,v,{delta:g,type:wu.pop,direction:g?g>0?Hl.forward:Hl.back:Hl.unknown})})};function l(){o=r.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return a.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(lt({},d.state,{scroll:ih()}),"")}function f(){for(const d of a)d();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",c),{pauseListeners:l,listen:u,destroy:f}}function w1(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?ih():null}}function FG(e){const{history:t,location:r}=window,n={value:OA(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,c){const f=e.indexOf("#"),d=f>-1?(r.host&&document.querySelector("base")?e:e.slice(f))+l:kG()+e+l;try{t[c?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),r[c?"replace":"assign"](d)}}function o(l,u){const c=lt({},t.state,w1(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,c,!0),n.value=l}function s(l,u){const c=lt({},i.value,t.state,{forward:l,scroll:ih()});a(c.current,c,!0);const f=lt({},w1(n.value,l,null),{position:c.position+1},u);a(l,f,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function BG(e){e=EG(e);const t=FG(e),r=NG(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=lt({location:"",base:e,go:n,createHref:LG.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function $G(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),BG(e)}function HG(e){return typeof e=="string"||e&&typeof e=="object"}function RA(e){return typeof e=="string"||typeof e=="symbol"}const Ii={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},kA=Symbol("");var x1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(x1||(x1={}));function Es(e,t){return lt(new Error,{type:e,[kA]:!0},t)}function ai(e,t){return e instanceof Error&&kA in e&&(t==null||!!(e.type&t))}const S1="[^/]+?",zG={sensitive:!1,strict:!1,start:!0,end:!0},WG=/[.+*?^${}()[\]/\\]/g;function VG(e,t){const r=lt({},zG,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const c=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function UG(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const jG={type:0,value:""},YG=/[a-zA-Z0-9_]/;function qG(e){if(!e)return[[]];if(e==="/")return[[jG]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",c="";function f(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{o(y)}:$l}function o(c){if(RA(c)){const f=n.get(c);f&&(n.delete(c),r.splice(r.indexOf(f),1),f.children.forEach(o),f.alias.forEach(o))}else{const f=r.indexOf(c);f>-1&&(r.splice(f,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return r}function l(c){let f=0;for(;f=0&&(c.record.path!==r[f].record.path||!NA(c,r[f]));)f++;r.splice(f,0,c),c.record.name&&!M1(c)&&n.set(c.record.name,c)}function u(c,f){let d,h={},v,p;if("name"in c&&c.name){if(d=n.get(c.name),!d)throw Es(1,{location:c});p=d.record.name,h=lt(T1(f.params,d.keys.filter(y=>!y.optional).map(y=>y.name)),c.params&&T1(c.params,d.keys.map(y=>y.name))),v=d.stringify(h)}else if("path"in c)v=c.path,d=r.find(y=>y.re.test(v)),d&&(h=d.parse(v),p=d.record.name);else{if(d=f.name?n.get(f.name):r.find(y=>y.re.test(f.path)),!d)throw Es(1,{location:c,currentLocation:f});p=d.record.name,h=lt({},f.params,c.params),v=d.stringify(h)}const g=[];let m=d;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:v,params:h,matched:g,meta:JG(g)}}return e.forEach(c=>a(c)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function T1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function ZG(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:QG(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function QG(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="boolean"?r:r[n];return t}function M1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function JG(e){return e.reduce((t,r)=>lt(t,r.meta),{})}function A1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function NA(e,t){return t.children.some(r=>r===e||NA(e,r))}const FA=/#/g,eU=/&/g,tU=/\//g,rU=/=/g,nU=/\?/g,BA=/\+/g,iU=/%5B/g,aU=/%5D/g,$A=/%5E/g,oU=/%60/g,HA=/%7B/g,sU=/%7C/g,zA=/%7D/g,lU=/%20/g;function $y(e){return encodeURI(""+e).replace(sU,"|").replace(iU,"[").replace(aU,"]")}function uU(e){return $y(e).replace(HA,"{").replace(zA,"}").replace($A,"^")}function yg(e){return $y(e).replace(BA,"%2B").replace(lU,"+").replace(FA,"%23").replace(eU,"%26").replace(oU,"`").replace(HA,"{").replace(zA,"}").replace($A,"^")}function cU(e){return yg(e).replace(rU,"%3D")}function fU(e){return $y(e).replace(FA,"%23").replace(nU,"%3F")}function dU(e){return e==null?"":fU(e).replace(tU,"%2F")}function ld(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function hU(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&yg(a)):[n&&yg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function vU(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=En(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const pU=Symbol(""),P1=Symbol(""),Hy=Symbol(""),WA=Symbol(""),_g=Symbol("");function Zs(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function Gi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=f=>{f===!1?s(Es(4,{from:r,to:t})):f instanceof Error?s(f):HG(f)?s(Es(2,{from:t,to:f})):(a&&n.enterCallbacks[i]===a&&typeof f=="function"&&a.push(f),o())},u=e.call(n&&n.instances[i],t,r,l);let c=Promise.resolve(u);e.length<3&&(c=c.then(l)),c.catch(f=>s(f))})}function tv(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(gU(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Gi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const c=wG(u)?u.default:u;a.components[o]=c;const d=(c.__vccOpts||c)[t];return d&&Gi(d,r,n,a,o)()}))}}return i}function gU(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function L1(e){const t=Ee(Hy),r=Ee(WA),n=k(()=>t.resolve(E(e.to))),i=k(()=>{const{matched:l}=n.value,{length:u}=l,c=l[u-1],f=r.matched;if(!c||!f.length)return-1;const d=f.findIndex(As.bind(null,c));if(d>-1)return d;const h=D1(l[u-2]);return u>1&&D1(c)===h&&f[f.length-1].path!==h?f.findIndex(As.bind(null,l[u-2])):d}),a=k(()=>i.value>-1&&bU(r.params,n.value.params)),o=k(()=>i.value>-1&&i.value===r.matched.length-1&&IA(r.params,n.value.params));function s(l={}){return _U(l)?t[E(e.replace)?"replace":"push"](E(e.to)).catch($l):Promise.resolve()}return{route:n,href:k(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const mU=ce({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:L1,setup(e,{slots:t}){const r=fn(L1(e)),{options:n}=Ee(Hy),i=k(()=>({[I1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[I1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:Ce("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),yU=mU;function _U(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function bU(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!En(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function D1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const I1=(e,t,r)=>e??t??r,wU=ce({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Ee(_g),i=k(()=>e.route||n.value),a=Ee(P1,0),o=k(()=>{let u=E(a);const{matched:c}=i.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),s=k(()=>i.value.matched[o.value]);At(P1,k(()=>o.value+1)),At(pU,s),At(_g,i);const l=B();return Se(()=>[l.value,s.value,e.name],([u,c,f],[d,h,v])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!As(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,c=e.name,f=s.value,d=f&&f.components[c];if(!d)return O1(r.default,{Component:d,route:u});const h=f.props[c],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,g=Ce(d,lt({},v,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return O1(r.default,{Component:g,route:u})||g}}});function O1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const xU=wU;function SU(e){const t=XG(e.routes,e),r=e.parseQuery||hU,n=e.stringifyQuery||E1,i=e.history,a=Zs(),o=Zs(),s=Zs(),l=$m(Ii);let u=Ii;qo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Jh.bind(null,V=>""+V),f=Jh.bind(null,dU),d=Jh.bind(null,ld);function h(V,Q){let W,q;return RA(V)?(W=t.getRecordMatcher(V),q=Q):q=V,t.addRoute(q,W)}function v(V){const Q=t.getRecordMatcher(V);Q&&t.removeRoute(Q)}function p(){return t.getRoutes().map(V=>V.record)}function g(V){return!!t.getRecordMatcher(V)}function m(V,Q){if(Q=lt({},Q||l.value),typeof V=="string"){const L=ev(r,V,Q.path),I=t.resolve({path:L.path},Q),z=i.createHref(L.fullPath);return lt(L,I,{params:d(I.params),hash:ld(L.hash),redirectedFrom:void 0,href:z})}let W;if("path"in V)W=lt({},V,{path:ev(r,V.path,Q.path).path});else{const L=lt({},V.params);for(const I in L)L[I]==null&&delete L[I];W=lt({},V,{params:f(V.params)}),Q.params=f(Q.params)}const q=t.resolve(W,Q),le=V.hash||"";q.params=c(d(q.params));const de=CG(n,lt({},V,{hash:uU(le),path:q.path})),J=i.createHref(de);return lt({fullPath:de,hash:le,query:n===E1?vU(V.query):V.query||{}},q,{redirectedFrom:void 0,href:J})}function y(V){return typeof V=="string"?ev(r,V,l.value.path):lt({},V)}function _(V,Q){if(u!==V)return Es(8,{from:Q,to:V})}function b(V){return S(V)}function x(V){return b(lt(y(V),{replace:!0}))}function w(V){const Q=V.matched[V.matched.length-1];if(Q&&Q.redirect){const{redirect:W}=Q;let q=typeof W=="function"?W(V):W;return typeof q=="string"&&(q=q.includes("?")||q.includes("#")?q=y(q):{path:q},q.params={}),lt({query:V.query,hash:V.hash,params:"path"in q?{}:V.params},q)}}function S(V,Q){const W=u=m(V),q=l.value,le=V.state,de=V.force,J=V.replace===!0,L=w(W);if(L)return S(lt(y(L),{state:typeof L=="object"?lt({},le,L.state):le,force:de,replace:J}),Q||W);const I=W;I.redirectedFrom=Q;let z;return!de&&TG(n,q,W)&&(z=Es(16,{to:I,from:q}),j(q,q,!0,!1)),(z?Promise.resolve(z):M(I,q)).catch(U=>ai(U)?ai(U,2)?U:R(U):G(U,I,q)).then(U=>{if(U){if(ai(U,2))return S(lt({replace:J},y(U.to),{state:typeof U.to=="object"?lt({},le,U.to.state):le,force:de}),Q||I)}else U=A(I,q,!0,J,le);return P(I,q,U),U})}function C(V,Q){const W=_(V,Q);return W?Promise.reject(W):Promise.resolve()}function M(V,Q){let W;const[q,le,de]=CU(V,Q);W=tv(q.reverse(),"beforeRouteLeave",V,Q);for(const L of q)L.leaveGuards.forEach(I=>{W.push(Gi(I,V,Q))});const J=C.bind(null,V,Q);return W.push(J),Io(W).then(()=>{W=[];for(const L of a.list())W.push(Gi(L,V,Q));return W.push(J),Io(W)}).then(()=>{W=tv(le,"beforeRouteUpdate",V,Q);for(const L of le)L.updateGuards.forEach(I=>{W.push(Gi(I,V,Q))});return W.push(J),Io(W)}).then(()=>{W=[];for(const L of V.matched)if(L.beforeEnter&&!Q.matched.includes(L))if(En(L.beforeEnter))for(const I of L.beforeEnter)W.push(Gi(I,V,Q));else W.push(Gi(L.beforeEnter,V,Q));return W.push(J),Io(W)}).then(()=>(V.matched.forEach(L=>L.enterCallbacks={}),W=tv(de,"beforeRouteEnter",V,Q),W.push(J),Io(W))).then(()=>{W=[];for(const L of o.list())W.push(Gi(L,V,Q));return W.push(J),Io(W)}).catch(L=>ai(L,8)?L:Promise.reject(L))}function P(V,Q,W){for(const q of s.list())q(V,Q,W)}function A(V,Q,W,q,le){const de=_(V,Q);if(de)return de;const J=Q===Ii,L=qo?history.state:{};W&&(q||J?i.replace(V.fullPath,lt({scroll:J&&L&&L.scroll},le)):i.push(V.fullPath,le)),l.value=V,j(V,Q,W,J),R()}let T;function D(){T||(T=i.listen((V,Q,W)=>{if(!Ae.listening)return;const q=m(V),le=w(q);if(le){S(lt(le,{replace:!0}),q).catch($l);return}u=q;const de=l.value;qo&&OG(b1(de.fullPath,W.delta),ih()),M(q,de).catch(J=>ai(J,12)?J:ai(J,2)?(S(J.to,q).then(L=>{ai(L,20)&&!W.delta&&W.type===wu.pop&&i.go(-1,!1)}).catch($l),Promise.reject()):(W.delta&&i.go(-W.delta,!1),G(J,q,de))).then(J=>{J=J||A(q,de,!1),J&&(W.delta&&!ai(J,8)?i.go(-W.delta,!1):W.type===wu.pop&&ai(J,20)&&i.go(-1,!1)),P(q,de,J)}).catch($l)}))}let N=Zs(),H=Zs(),$;function G(V,Q,W){R(V);const q=H.list();return q.length?q.forEach(le=>le(V,Q,W)):console.error(V),Promise.reject(V)}function F(){return $&&l.value!==Ii?Promise.resolve():new Promise((V,Q)=>{N.add([V,Q])})}function R(V){return $||($=!V,D(),N.list().forEach(([Q,W])=>V?W(V):Q()),N.reset()),V}function j(V,Q,W,q){const{scrollBehavior:le}=e;if(!qo||!le)return Promise.resolve();const de=!W&&RG(b1(V.fullPath,0))||(q||!W)&&history.state&&history.state.scroll||null;return Ft().then(()=>le(V,Q,de)).then(J=>J&&IG(J)).catch(J=>G(J,V,Q))}const re=V=>i.go(V);let oe;const ye=new Set,Ae={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,hasRoute:g,getRoutes:p,resolve:m,options:e,push:b,replace:x,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:H.add,isReady:F,install(V){const Q=this;V.component("RouterLink",yU),V.component("RouterView",xU),V.config.globalProperties.$router=Q,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>E(l)}),qo&&!oe&&l.value===Ii&&(oe=!0,b(i.location).catch(le=>{}));const W={};for(const le in Ii)W[le]=k(()=>l.value[le]);V.provide(Hy,Q),V.provide(WA,fn(W)),V.provide(_g,l);const q=V.unmount;ye.add(V),V.unmount=function(){ye.delete(V),ye.size<1&&(u=Ii,T&&T(),T=null,l.value=Ii,oe=!1,$=!1),q()}}};return Ae}function Io(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function CU(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oAs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>As(u,l))||i.push(l))}return[r,n,i]}var aa={},TU={get exports(){return aa},set exports(e){aa=e}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(e8,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(f){return typeof f<"u"&&f!==null},o=function(f){return f!==f},s=function(f){return isFinite(f)&&!o(parseFloat(f))},l=function(f){var d=Object.prototype.toString.call(f);return d==="[object Array]"},u={intword:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(f,h)},compactInteger:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1];d=Math.max(d,0);var h=parseInt(f,10),v=h<0?"-":"",p=Math.abs(h),g=String(p),m=g.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+g;if(m>y[0]+3)return h.toExponential(d).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=m-b+1,C=g.split(""),M=C.slice(0,S),P=C.slice(S,S+d+1),A=M.join(""),T=P.join("");T.length=v)return u.formatNumber(f/v,d,"")+" "+h+"B"}return f>=1024?u.formatNumber(f/1024,0)+" KB":u.formatNumber(f,0)+u.pluralize(f," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1],h=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,M){return M?S.substr(0,M)+C:""},g=function(S,C,M){return S.substr(M).replace(/(\d{3})(?=\d)/g,"$1"+C)},m=function(S,C,M){return M?C+u.toFixed(Math.abs(S),M).split(".")[1]:""},y=u.normalizePrecision(d),_=f<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(f||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,h,x)+g(b,h,x)+m(f,v,y)},toFixed:function(f,d){d=a(d)?d:u.normalizePrecision(d,0);var h=Math.pow(10,d);return(Math.round(f*h)/h).toFixed(d)},normalizePrecision:function(f,d){return f=Math.round(Math.abs(f)),o(f)?d:f},ordinal:function(f){var d=parseInt(f,10);if(d===0)return f;var h=d%100;if([11,12,13].indexOf(h)>=0)return d+"th";var v=d%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+d+p},times:function(f){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(f)&&f>=0){var h=parseFloat(f),v=["never","once","twice"];if(a(d[h]))return String(d[h]);var p=a(v[h])&&v[h].toString();return p||h.toString()+" times"}return null},pluralize:function(f,d,h){return a(f)&&a(d)?(h=a(h)?h:d+"s",parseInt(f,10)===1?d:h):null},truncate:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return f.length>d?f.substring(0,d-h.length)+h:f},truncateWords:function(f,d){for(var h=f.split(" "),v="",p=0;pd?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(f)&&s(d)&&f>d&&(v=d+h),(v||f).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(f,d,h){var v=f.length,p=void 0;if(v<2)return String(f);if(v===2)return f.join(" and ");if(a(d)&&v>d){var g=v-d;p=d,h=a(h)?h:", and "+g+" "+u.pluralize(g,"other")}else p=-1,h=", and "+f[v-1];return f.slice(0,p).join(", ")+h},dictionary:function(f){var d=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],h=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(f)&&(typeof f>"u"?"undefined":r(f))==="object"&&!l(f)){var p=[];for(var g in f)if(f.hasOwnProperty(g)){var m=f[g];p.push(""+g+d+m)}return p.join(h)}return v},frequency:function(f,d){if(!l(f))return null;var h=f.length,v=u.times(h);return h===0?v+" "+d:d+" "+v},pace:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(f===0||d===0)return"No "+u.pluralize(0,h);for(var v="Approximately",p=void 0,g=void 0,m=f/d,y=0;y1){p=_.name;break}}p||(v="Less than",g=1,p=n[n.length-1].name);var b=Math.round(g);return h=u.pluralize(b,h),v+" "+b+" "+h+" per "+p},nl2br:function(f){var d=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return f.replace(/\n/g,d)},br2nl:function(f){var d=arguments.length<=1||arguments[1]===void 0?`\r -`:arguments[1];return f.replace(/\/g,d)},capitalize:function(f){var d=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+f.charAt(0).toUpperCase()+(d?f.slice(1).toLowerCase():f.slice(1))},capitalizeAll:function(f){return f.replace(/(?:^|\s)\S/g,function(d){return d.toUpperCase()})},titleCase:function(f){var d=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,h=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,g=void 0;return g=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],x=[],w=y.split(_?p:v),S=0;S{},Pn=Array.isArray,SG=/\/$/,xG=e=>e.replace(SG,"");function ev(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=AG(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function CG(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function y1(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function TG(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&As(t.matched[n],r.matched[i])&&IA(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function As(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function IA(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!MG(e[r],t[r]))return!1;return!0}function MG(e,t){return Pn(e)?_1(e,t):Pn(t)?_1(t,e):e===t}function _1(e,t){return Pn(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function AG(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/");let i=r.length-1,a,o;for(a=0;a1&&i--;else break;return r.slice(0,i).join("/")+"/"+n.slice(a-(a===n.length?1:0)).join("/")}var wu;(function(e){e.pop="pop",e.push="push"})(wu||(wu={}));var Hl;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Hl||(Hl={}));function PG(e){if(!e)if(qo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),xG(e)}const EG=/^[^#]+#/;function LG(e,t){return e.replace(EG,"#")+t}function DG(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const ih=()=>({left:window.pageXOffset,top:window.pageYOffset});function IG(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=DG(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function b1(e,t){return(history.state?history.state.position-t:-1)+e}const mg=new Map;function OG(e,t){mg.set(e,t)}function RG(e){const t=mg.get(e);return mg.delete(e),t}let kG=()=>location.protocol+"//"+location.host;function OA(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),y1(l,"")}return y1(r,e)+n+i}function NG(e,t,r,n){let i=[],a=[],o=null;const s=({state:d})=>{const h=OA(e,location),v=r.value,p=t.value;let g=0;if(d){if(r.value=h,t.value=d,o&&o===v){o=null;return}g=p?d.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,v,{delta:g,type:wu.pop,direction:g?g>0?Hl.forward:Hl.back:Hl.unknown})})};function l(){o=r.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return a.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(lt({},d.state,{scroll:ih()}),"")}function f(){for(const d of a)d();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",c),{pauseListeners:l,listen:u,destroy:f}}function w1(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?ih():null}}function FG(e){const{history:t,location:r}=window,n={value:OA(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,c){const f=e.indexOf("#"),d=f>-1?(r.host&&document.querySelector("base")?e:e.slice(f))+l:kG()+e+l;try{t[c?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),r[c?"replace":"assign"](d)}}function o(l,u){const c=lt({},t.state,w1(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,c,!0),n.value=l}function s(l,u){const c=lt({},i.value,t.state,{forward:l,scroll:ih()});a(c.current,c,!0);const f=lt({},w1(n.value,l,null),{position:c.position+1},u);a(l,f,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function BG(e){e=PG(e);const t=FG(e),r=NG(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=lt({location:"",base:e,go:n,createHref:LG.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function $G(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),BG(e)}function HG(e){return typeof e=="string"||e&&typeof e=="object"}function RA(e){return typeof e=="string"||typeof e=="symbol"}const Ii={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},kA=Symbol("");var S1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(S1||(S1={}));function Ps(e,t){return lt(new Error,{type:e,[kA]:!0},t)}function ai(e,t){return e instanceof Error&&kA in e&&(t==null||!!(e.type&t))}const x1="[^/]+?",zG={sensitive:!1,strict:!1,start:!0,end:!0},WG=/[.+*?^${}()[\]/\\]/g;function VG(e,t){const r=lt({},zG,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const c=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function UG(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const jG={type:0,value:""},YG=/[a-zA-Z0-9_]/;function qG(e){if(!e)return[[]];if(e==="/")return[[jG]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",c="";function f(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{o(y)}:$l}function o(c){if(RA(c)){const f=n.get(c);f&&(n.delete(c),r.splice(r.indexOf(f),1),f.children.forEach(o),f.alias.forEach(o))}else{const f=r.indexOf(c);f>-1&&(r.splice(f,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return r}function l(c){let f=0;for(;f=0&&(c.record.path!==r[f].record.path||!NA(c,r[f]));)f++;r.splice(f,0,c),c.record.name&&!M1(c)&&n.set(c.record.name,c)}function u(c,f){let d,h={},v,p;if("name"in c&&c.name){if(d=n.get(c.name),!d)throw Ps(1,{location:c});p=d.record.name,h=lt(T1(f.params,d.keys.filter(y=>!y.optional).map(y=>y.name)),c.params&&T1(c.params,d.keys.map(y=>y.name))),v=d.stringify(h)}else if("path"in c)v=c.path,d=r.find(y=>y.re.test(v)),d&&(h=d.parse(v),p=d.record.name);else{if(d=f.name?n.get(f.name):r.find(y=>y.re.test(f.path)),!d)throw Ps(1,{location:c,currentLocation:f});p=d.record.name,h=lt({},f.params,c.params),v=d.stringify(h)}const g=[];let m=d;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:v,params:h,matched:g,meta:JG(g)}}return e.forEach(c=>a(c)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function T1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function ZG(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:QG(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function QG(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="boolean"?r:r[n];return t}function M1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function JG(e){return e.reduce((t,r)=>lt(t,r.meta),{})}function A1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function NA(e,t){return t.children.some(r=>r===e||NA(e,r))}const FA=/#/g,eU=/&/g,tU=/\//g,rU=/=/g,nU=/\?/g,BA=/\+/g,iU=/%5B/g,aU=/%5D/g,$A=/%5E/g,oU=/%60/g,HA=/%7B/g,sU=/%7C/g,zA=/%7D/g,lU=/%20/g;function $y(e){return encodeURI(""+e).replace(sU,"|").replace(iU,"[").replace(aU,"]")}function uU(e){return $y(e).replace(HA,"{").replace(zA,"}").replace($A,"^")}function yg(e){return $y(e).replace(BA,"%2B").replace(lU,"+").replace(FA,"%23").replace(eU,"%26").replace(oU,"`").replace(HA,"{").replace(zA,"}").replace($A,"^")}function cU(e){return yg(e).replace(rU,"%3D")}function fU(e){return $y(e).replace(FA,"%23").replace(nU,"%3F")}function dU(e){return e==null?"":fU(e).replace(tU,"%2F")}function ld(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function hU(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&yg(a)):[n&&yg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function vU(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=Pn(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const pU=Symbol(""),E1=Symbol(""),Hy=Symbol(""),WA=Symbol(""),_g=Symbol("");function Zs(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function Gi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=f=>{f===!1?s(Ps(4,{from:r,to:t})):f instanceof Error?s(f):HG(f)?s(Ps(2,{from:t,to:f})):(a&&n.enterCallbacks[i]===a&&typeof f=="function"&&a.push(f),o())},u=e.call(n&&n.instances[i],t,r,l);let c=Promise.resolve(u);e.length<3&&(c=c.then(l)),c.catch(f=>s(f))})}function tv(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(gU(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Gi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const c=wG(u)?u.default:u;a.components[o]=c;const d=(c.__vccOpts||c)[t];return d&&Gi(d,r,n,a,o)()}))}}return i}function gU(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function L1(e){const t=Pe(Hy),r=Pe(WA),n=k(()=>t.resolve(P(e.to))),i=k(()=>{const{matched:l}=n.value,{length:u}=l,c=l[u-1],f=r.matched;if(!c||!f.length)return-1;const d=f.findIndex(As.bind(null,c));if(d>-1)return d;const h=D1(l[u-2]);return u>1&&D1(c)===h&&f[f.length-1].path!==h?f.findIndex(As.bind(null,l[u-2])):d}),a=k(()=>i.value>-1&&bU(r.params,n.value.params)),o=k(()=>i.value>-1&&i.value===r.matched.length-1&&IA(r.params,n.value.params));function s(l={}){return _U(l)?t[P(e.replace)?"replace":"push"](P(e.to)).catch($l):Promise.resolve()}return{route:n,href:k(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const mU=ce({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:L1,setup(e,{slots:t}){const r=fn(L1(e)),{options:n}=Pe(Hy),i=k(()=>({[I1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[I1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:Ce("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),yU=mU;function _U(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function bU(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!Pn(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function D1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const I1=(e,t,r)=>e??t??r,wU=ce({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Pe(_g),i=k(()=>e.route||n.value),a=Pe(E1,0),o=k(()=>{let u=P(a);const{matched:c}=i.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),s=k(()=>i.value.matched[o.value]);At(E1,k(()=>o.value+1)),At(pU,s),At(_g,i);const l=B();return xe(()=>[l.value,s.value,e.name],([u,c,f],[d,h,v])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!As(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,c=e.name,f=s.value,d=f&&f.components[c];if(!d)return O1(r.default,{Component:d,route:u});const h=f.props[c],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,g=Ce(d,lt({},v,t,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return O1(r.default,{Component:g,route:u})||g}}});function O1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const SU=wU;function xU(e){const t=XG(e.routes,e),r=e.parseQuery||hU,n=e.stringifyQuery||P1,i=e.history,a=Zs(),o=Zs(),s=Zs(),l=$m(Ii);let u=Ii;qo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Jh.bind(null,V=>""+V),f=Jh.bind(null,dU),d=Jh.bind(null,ld);function h(V,Q){let W,q;return RA(V)?(W=t.getRecordMatcher(V),q=Q):q=V,t.addRoute(q,W)}function v(V){const Q=t.getRecordMatcher(V);Q&&t.removeRoute(Q)}function p(){return t.getRoutes().map(V=>V.record)}function g(V){return!!t.getRecordMatcher(V)}function m(V,Q){if(Q=lt({},Q||l.value),typeof V=="string"){const L=ev(r,V,Q.path),I=t.resolve({path:L.path},Q),z=i.createHref(L.fullPath);return lt(L,I,{params:d(I.params),hash:ld(L.hash),redirectedFrom:void 0,href:z})}let W;if("path"in V)W=lt({},V,{path:ev(r,V.path,Q.path).path});else{const L=lt({},V.params);for(const I in L)L[I]==null&&delete L[I];W=lt({},V,{params:f(V.params)}),Q.params=f(Q.params)}const q=t.resolve(W,Q),le=V.hash||"";q.params=c(d(q.params));const de=CG(n,lt({},V,{hash:uU(le),path:q.path})),J=i.createHref(de);return lt({fullPath:de,hash:le,query:n===P1?vU(V.query):V.query||{}},q,{redirectedFrom:void 0,href:J})}function y(V){return typeof V=="string"?ev(r,V,l.value.path):lt({},V)}function _(V,Q){if(u!==V)return Ps(8,{from:Q,to:V})}function b(V){return x(V)}function S(V){return b(lt(y(V),{replace:!0}))}function w(V){const Q=V.matched[V.matched.length-1];if(Q&&Q.redirect){const{redirect:W}=Q;let q=typeof W=="function"?W(V):W;return typeof q=="string"&&(q=q.includes("?")||q.includes("#")?q=y(q):{path:q},q.params={}),lt({query:V.query,hash:V.hash,params:"path"in q?{}:V.params},q)}}function x(V,Q){const W=u=m(V),q=l.value,le=V.state,de=V.force,J=V.replace===!0,L=w(W);if(L)return x(lt(y(L),{state:typeof L=="object"?lt({},le,L.state):le,force:de,replace:J}),Q||W);const I=W;I.redirectedFrom=Q;let z;return!de&&TG(n,q,W)&&(z=Ps(16,{to:I,from:q}),j(q,q,!0,!1)),(z?Promise.resolve(z):M(I,q)).catch(U=>ai(U)?ai(U,2)?U:R(U):G(U,I,q)).then(U=>{if(U){if(ai(U,2))return x(lt({replace:J},y(U.to),{state:typeof U.to=="object"?lt({},le,U.to.state):le,force:de}),Q||I)}else U=A(I,q,!0,J,le);return E(I,q,U),U})}function C(V,Q){const W=_(V,Q);return W?Promise.reject(W):Promise.resolve()}function M(V,Q){let W;const[q,le,de]=CU(V,Q);W=tv(q.reverse(),"beforeRouteLeave",V,Q);for(const L of q)L.leaveGuards.forEach(I=>{W.push(Gi(I,V,Q))});const J=C.bind(null,V,Q);return W.push(J),Io(W).then(()=>{W=[];for(const L of a.list())W.push(Gi(L,V,Q));return W.push(J),Io(W)}).then(()=>{W=tv(le,"beforeRouteUpdate",V,Q);for(const L of le)L.updateGuards.forEach(I=>{W.push(Gi(I,V,Q))});return W.push(J),Io(W)}).then(()=>{W=[];for(const L of V.matched)if(L.beforeEnter&&!Q.matched.includes(L))if(Pn(L.beforeEnter))for(const I of L.beforeEnter)W.push(Gi(I,V,Q));else W.push(Gi(L.beforeEnter,V,Q));return W.push(J),Io(W)}).then(()=>(V.matched.forEach(L=>L.enterCallbacks={}),W=tv(de,"beforeRouteEnter",V,Q),W.push(J),Io(W))).then(()=>{W=[];for(const L of o.list())W.push(Gi(L,V,Q));return W.push(J),Io(W)}).catch(L=>ai(L,8)?L:Promise.reject(L))}function E(V,Q,W){for(const q of s.list())q(V,Q,W)}function A(V,Q,W,q,le){const de=_(V,Q);if(de)return de;const J=Q===Ii,L=qo?history.state:{};W&&(q||J?i.replace(V.fullPath,lt({scroll:J&&L&&L.scroll},le)):i.push(V.fullPath,le)),l.value=V,j(V,Q,W,J),R()}let T;function D(){T||(T=i.listen((V,Q,W)=>{if(!Ae.listening)return;const q=m(V),le=w(q);if(le){x(lt(le,{replace:!0}),q).catch($l);return}u=q;const de=l.value;qo&&OG(b1(de.fullPath,W.delta),ih()),M(q,de).catch(J=>ai(J,12)?J:ai(J,2)?(x(J.to,q).then(L=>{ai(L,20)&&!W.delta&&W.type===wu.pop&&i.go(-1,!1)}).catch($l),Promise.reject()):(W.delta&&i.go(-W.delta,!1),G(J,q,de))).then(J=>{J=J||A(q,de,!1),J&&(W.delta&&!ai(J,8)?i.go(-W.delta,!1):W.type===wu.pop&&ai(J,20)&&i.go(-1,!1)),E(q,de,J)}).catch($l)}))}let N=Zs(),H=Zs(),$;function G(V,Q,W){R(V);const q=H.list();return q.length?q.forEach(le=>le(V,Q,W)):console.error(V),Promise.reject(V)}function F(){return $&&l.value!==Ii?Promise.resolve():new Promise((V,Q)=>{N.add([V,Q])})}function R(V){return $||($=!V,D(),N.list().forEach(([Q,W])=>V?W(V):Q()),N.reset()),V}function j(V,Q,W,q){const{scrollBehavior:le}=e;if(!qo||!le)return Promise.resolve();const de=!W&&RG(b1(V.fullPath,0))||(q||!W)&&history.state&&history.state.scroll||null;return Ft().then(()=>le(V,Q,de)).then(J=>J&&IG(J)).catch(J=>G(J,V,Q))}const re=V=>i.go(V);let oe;const ye=new Set,Ae={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,hasRoute:g,getRoutes:p,resolve:m,options:e,push:b,replace:S,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:H.add,isReady:F,install(V){const Q=this;V.component("RouterLink",yU),V.component("RouterView",SU),V.config.globalProperties.$router=Q,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>P(l)}),qo&&!oe&&l.value===Ii&&(oe=!0,b(i.location).catch(le=>{}));const W={};for(const le in Ii)W[le]=k(()=>l.value[le]);V.provide(Hy,Q),V.provide(WA,fn(W)),V.provide(_g,l);const q=V.unmount;ye.add(V),V.unmount=function(){ye.delete(V),ye.size<1&&(u=Ii,T&&T(),T=null,l.value=Ii,oe=!1,$=!1),q()}}};return Ae}function Io(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function CU(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oAs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>As(u,l))||i.push(l))}return[r,n,i]}var aa={},TU={get exports(){return aa},set exports(e){aa=e}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(e8,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(f){return typeof f<"u"&&f!==null},o=function(f){return f!==f},s=function(f){return isFinite(f)&&!o(parseFloat(f))},l=function(f){var d=Object.prototype.toString.call(f);return d==="[object Array]"},u={intword:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(f,h)},compactInteger:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1];d=Math.max(d,0);var h=parseInt(f,10),v=h<0?"-":"",p=Math.abs(h),g=String(p),m=g.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+g;if(m>y[0]+3)return h.toExponential(d).replace("e+","x10^");for(var b=void 0,S=0;S=w){b=w;break}}var x=m-b+1,C=g.split(""),M=C.slice(0,x),E=C.slice(x,x+d+1),A=M.join(""),T=E.join("");T.length=v)return u.formatNumber(f/v,d,"")+" "+h+"B"}return f>=1024?u.formatNumber(f/1024,0)+" KB":u.formatNumber(f,0)+u.pluralize(f," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?0:arguments[1],h=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(x,C,M){return M?x.substr(0,M)+C:""},g=function(x,C,M){return x.substr(M).replace(/(\d{3})(?=\d)/g,"$1"+C)},m=function(x,C,M){return M?C+u.toFixed(Math.abs(x),M).split(".")[1]:""},y=u.normalizePrecision(d),_=f<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(f||0),y),10)),S=b.length>3?b.length%3:0;return _+p(b,h,S)+g(b,h,S)+m(f,v,y)},toFixed:function(f,d){d=a(d)?d:u.normalizePrecision(d,0);var h=Math.pow(10,d);return(Math.round(f*h)/h).toFixed(d)},normalizePrecision:function(f,d){return f=Math.round(Math.abs(f)),o(f)?d:f},ordinal:function(f){var d=parseInt(f,10);if(d===0)return f;var h=d%100;if([11,12,13].indexOf(h)>=0)return d+"th";var v=d%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+d+p},times:function(f){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(f)&&f>=0){var h=parseFloat(f),v=["never","once","twice"];if(a(d[h]))return String(d[h]);var p=a(v[h])&&v[h].toString();return p||h.toString()+" times"}return null},pluralize:function(f,d,h){return a(f)&&a(d)?(h=a(h)?h:d+"s",parseInt(f,10)===1?d:h):null},truncate:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return f.length>d?f.substring(0,d-h.length)+h:f},truncateWords:function(f,d){for(var h=f.split(" "),v="",p=0;pd?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(f){var d=arguments.length<=1||arguments[1]===void 0?100:arguments[1],h=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(f)&&s(d)&&f>d&&(v=d+h),(v||f).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(f,d,h){var v=f.length,p=void 0;if(v<2)return String(f);if(v===2)return f.join(" and ");if(a(d)&&v>d){var g=v-d;p=d,h=a(h)?h:", and "+g+" "+u.pluralize(g,"other")}else p=-1,h=", and "+f[v-1];return f.slice(0,p).join(", ")+h},dictionary:function(f){var d=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],h=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(f)&&(typeof f>"u"?"undefined":r(f))==="object"&&!l(f)){var p=[];for(var g in f)if(f.hasOwnProperty(g)){var m=f[g];p.push(""+g+d+m)}return p.join(h)}return v},frequency:function(f,d){if(!l(f))return null;var h=f.length,v=u.times(h);return h===0?v+" "+d:d+" "+v},pace:function(f,d){var h=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(f===0||d===0)return"No "+u.pluralize(0,h);for(var v="Approximately",p=void 0,g=void 0,m=f/d,y=0;y1){p=_.name;break}}p||(v="Less than",g=1,p=n[n.length-1].name);var b=Math.round(g);return h=u.pluralize(b,h),v+" "+b+" "+h+" per "+p},nl2br:function(f){var d=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return f.replace(/\n/g,d)},br2nl:function(f){var d=arguments.length<=1||arguments[1]===void 0?`\r +`:arguments[1];return f.replace(/\/g,d)},capitalize:function(f){var d=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+f.charAt(0).toUpperCase()+(d?f.slice(1).toLowerCase():f.slice(1))},capitalizeAll:function(f){return f.replace(/(?:^|\s)\S/g,function(d){return d.toUpperCase()})},titleCase:function(f){var d=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,h=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,g=void 0;return g=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],S=[],w=y.split(_?p:v),x=0;x"u"&&typeof self<"u"?Va.worker=!0:typeof navigator>"u"?(Va.node=!0,Va.svgSupported=!0):EU(navigator.userAgent,Va);function EU(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ge=Va;var zy=12,PU="sans-serif",yo=zy+"px "+PU,LU=20,DU=100,IU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function OU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function a9(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),f=2*u,d=c.left,h=c.top;o.push(d,h),l=l&&a&&d===a[f]&&h===a[f+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?F1(s,o):F1(o,s))}function XA(e){return e.nodeName.toUpperCase()==="CANVAS"}var o9=/([&<>"'])/g,s9={"&":"&","<":"<",">":">",'"':""","'":"'"};function Xr(e){return e==null?"":(e+"").replace(o9,function(t,r){return s9[r]})}var l9=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,av=[],u9=Ge.browser.firefox&&+Ge.browser.version.split(".")[0]<39;function Ag(e,t,r,n){return r=r||{},n?$1(e,t,r):u9&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):$1(e,t,r),r}function $1(e,t,r){if(Ge.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(XA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Mg(av,e,n,i)){r.zrX=av[0],r.zrY=av[1];return}}r.zrX=r.zrY=0}function jy(e){return e||window.event}function jr(e,t,r){if(t=jy(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&Ag(e,o,t,r)}else{Ag(e,t,t,r);var a=c9(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&l9.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function c9(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function f9(e,t,r,n){e.addEventListener(t,r,n)}function d9(e,t,r,n){e.removeEventListener(t,r,n)}var ZA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},h9=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=H1(n)/H1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=v9(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function Su(){return[1,0,0,1,0,0]}function Yy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function p9(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function us(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Eg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function qy(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),c=Math.cos(r);return e[0]=n*c+o*u,e[1]=-n*u+o*c,e[2]=i*c+s*u,e[3]=-i*u+c*s,e[4]=c*a+u*l,e[5]=c*l-u*a,e}function g9(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function lh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var m9=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const ke=m9;var Ec=Math.min,Pc=Math.max,ma=new ke,ya=new ke,_a=new ke,ba=new ke,Qs=new ke,Js=new ke,y9=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=Ec(t.x,this.x),n=Ec(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Pc(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Pc(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=Su();return Eg(a,a,[-r.x,-r.y]),g9(a,a,[n,i]),Eg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,c=t.y,f=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}ma.x=_a.x=r.x,ma.y=ba.y=r.y,ya.x=ba.x=r.x+r.width,ya.y=_a.y=r.y+r.height,ma.transform(n),ba.transform(n),ya.transform(n),_a.transform(n),t.x=Ec(ma.x,ya.x,_a.x,ba.x),t.y=Ec(ma.y,ya.y,_a.y,ba.y);var l=Pc(ma.x,ya.x,_a.x,ba.x),u=Pc(ma.y,ya.y,_a.y,ba.y);t.width=l-t.x,t.height=u-t.y},e}();const et=y9;var QA="silent";function _9(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:b9}}function b9(){ZA(this.event)}var w9=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ei),el=function(){function e(t,r){this.x=t,this.y=r}return e}(),x9=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],sv=new et(0,0,0,0),JA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new el(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new w9,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new e9(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(O(x9,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=e2(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new el(n,i):this.findHover(n,i),u=l.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new el(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=_9(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new el(r,n);if(z1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,c=new et(r-u,n-u,l,l),f=a.length-1;f>=0;f--){var d=a[f];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(sv.copy(d.getBoundingRect()),d.transform&&sv.applyTransform(d.transform),sv.intersect(c)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function S9(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?QA:!0}return!1}function z1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=S9(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==QA)){t.target=o;break}}}function e2(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const C9=JA;var t2=32,tl=7;function T9(e){for(var t=0;e>=t2;)t|=e&1,e>>=1;return e+t}function W1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function M9(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function lv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+c])>0?o=c+1:l=c}return l}function uv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+c])<0?l=c:o=c+1}return l}function A9(e,t){var r=tl,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;c(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=tl||S>=tl);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[x+m];e[b]=o[_];return}for(var S=r;;){var C=0,M=0,P=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){P=!0;break}}else if(e[b--]=o[_--],M++,C=0,--g===1){P=!0;break}while((C|M)=0;m--)e[w+m]=e[x+m];if(v===0){P=!0;break}}if(e[b--]=o[_--],--g===1){P=!0;break}if(M=g-lv(e[y],o,0,g,g-1,t),M!==0){for(b-=M,_-=M,g-=M,w=b+1,x=_+1,m=0;m=tl||M>=tl);if(P)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,x=y+1,m=v-1;m>=0;m--)e[w+m]=e[x+m];e[b]=o[_]}else{if(g===0)throw new Error;for(x=b-(g-1),m=0;ms&&(l=s),V1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Rr=1,wl=2,Ko=4,G1=!1;function cv(){G1||(G1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function U1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var E9=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=U1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(c.__clipPaths=[]),isNaN(c.z)&&(cv(),c.z=0),isNaN(c.z2)&&(cv(),c.z2=0),isNaN(c.zlevel)&&(cv(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var f=t.getDecalElement&&t.getDecalElement();f&&this._updateAndAddDisplayable(f,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const P9=E9;var r2;r2=Ge.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Pg=r2;var Of={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-Of.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?Of.bounceIn(e*2)*.5:Of.bounceOut(e*2-1)*.5+.5}};const n2=Of;var Lc=Math.pow,Qi=Math.sqrt,fd=1e-8,i2=1e-4,j1=Qi(3),Dc=1/3,Hn=Hs(),Zr=Hs(),cs=Hs();function Yi(e){return e>-fd&&efd||e<-fd}function jt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function Y1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function o2(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,c=s*s-3*o*l,f=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Yi(c)&&Yi(f))if(Yi(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=f*f-4*c*d;if(Yi(p)){var g=f/c,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Qi(p),_=c*s+1.5*o*(-f+y),b=c*s+1.5*o*(-f-y);_<0?_=-Lc(-_,Dc):_=Lc(_,Dc),b<0?b=-Lc(-b,Dc):b=Lc(b,Dc);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var x=(2*c*s-3*o*f)/(2*Qi(c*c*c)),w=Math.acos(x)/3,S=Qi(c),C=Math.cos(w),v=(-s-2*S*C)/(3*o),m=(-s+S*(C+j1*Math.sin(w)))/(3*o),M=(-s+S*(C-j1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),M>=0&&M<=1&&(a[h++]=M)}}return h}function s2(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Yi(o)){if(a2(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(Yi(c))i[0]=-a/(2*o);else if(c>0){var f=Qi(c),u=(-a+f)/(2*o),d=(-a-f)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function dd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,c=(l-s)*i+s,f=(c-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=f,a[4]=f,a[5]=c,a[6]=l,a[7]=n}function l2(e,t,r,n,i,a,o,s,l,u,c){var f,d=.005,h=1/0,v,p,g,m;Hn[0]=l,Hn[1]=u;for(var y=0;y<1;y+=.05)Zr[0]=jt(e,r,i,o,y),Zr[1]=jt(t,n,a,s,y),g=ls(Hn,Zr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(Yi(c)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var f=Qi(c),u=(-o+f)/(2*a),d=(-o-f)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function u2(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function hd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function c2(e,t,r,n,i,a,o,s,l){var u,c=.005,f=1/0;Hn[0]=o,Hn[1]=s;for(var d=0;d<1;d+=.05){Zr[0]=Jt(e,r,i,d),Zr[1]=Jt(t,n,a,d);var h=ls(Hn,Zr);h=0&&h=1?1:o2(0,n,a,1,l,s)&&jt(0,i,o,1,s[0])}}}var R9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Tr,this.ondestroy=t.ondestroy||Tr,this.onrestart=t.onrestart||Tr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ve(t)?t:n2[t]||f2(t)},e}();const k9=R9;var d2=function(){function e(t){this.value=t}return e}(),N9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new d2(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),F9=function(){function e(t){this._list=new N9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new d2(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const tc=F9;var K1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Vl(e){return e=Math.round(e),e<0?0:e>255?255:e}function X1(e){return e<0?0:e>1?1:e}function fv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Vl(parseFloat(t)/100*255):Vl(parseInt(t,10))}function Gl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?X1(parseFloat(t)/100):X1(parseFloat(t))}function dv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Ur(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Lg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var h2=new tc(20),Ic=null;function Ro(e,t){Ic&&Lg(Ic,t),Ic=h2.put(e,Ic||t.slice())}function so(e,t){if(e){t=t||[];var r=h2.get(e);if(r)return Lg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in K1)return Lg(t,K1[n]),Ro(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Ur(t,0,0,0,1);return}return Ur(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Ro(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Ur(t,0,0,0,1);return}return Ur(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Ro(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Ur(t,+u[0],+u[1],+u[2],1):Ur(t,0,0,0,1);c=Gl(u.pop());case"rgb":if(u.length>=3)return Ur(t,fv(u[0]),fv(u[1]),fv(u[2]),u.length===3?c:Gl(u[3])),Ro(e,t),t;Ur(t,0,0,0,1);return;case"hsla":if(u.length!==4){Ur(t,0,0,0,1);return}return u[3]=Gl(u[3]),Z1(u,t),Ro(e,t),t;case"hsl":if(u.length!==3){Ur(t,0,0,0,1);return}return Z1(u,t),Ro(e,t),t;default:return}}Ur(t,0,0,0,1)}}function Z1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Gl(e[1]),i=Gl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Ur(t,Vl(dv(o,a,r+1/3)*255),Vl(dv(o,a,r)*255),Vl(dv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function Q1(e,t){var r=so(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ky(r,r.length===4?"rgba":"rgb")}}function Ky(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function vd(e,t){var r=so(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function B9(e){return e.type==="linear"}function $9(e){return e.type==="radial"}(function(){return Ge.hasGlobalWindow&&Ve(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Dg=Array.prototype.slice;function di(e,t,r){return(t-e)*r+e}function hv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=ew,l=r;if(Er(r)){var u=V9(r);s=u,(u===1&&!bt(r[0])||u===2&&!bt(r[0][0]))&&(o=!0)}else if(bt(r)&&!cd(r))s=Rc;else if(Te(r))if(!isNaN(+r))s=Rc;else{var c=so(r);c&&(l=c,s=xl)}else if(oh(r)){var f=se({},l);f.colorStops=Re(r.colorStops,function(h){return{offset:h.offset,color:so(h.color)}}),B9(r)?s=Ig:$9(r)&&(s=Og),l=f}a===0?this.valType=s:(s!==this.valType||s===ew)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=Ve(n)?n:n2[n]||f2(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=kc(i),u=tw(i),c=0;c=0&&!(o[c].percent<=r);c--);c=d(c,s-2)}else{for(c=f;cr);c++);c=d(c-1,s-2)}v=o[c+1],h=o[c]}if(h&&v){this._lastFr=c,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?rl:t[l];if((kc(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(kc(a))a===Nf?hv(y,h[i],v[i],m):H9(y,h[i],v[i],m);else if(tw(a)){var _=h[i],b=v[i],x=a===Ig;t[l]={type:x?"linear":"radial",x:di(_.x,b.x,m),y:di(_.y,b.y,m),colorStops:Re(_.colorStops,function(S,C){var M=b.colorStops[C];return{offset:di(S.offset,M.offset,m),color:kf(hv([],S.color,M.color,m))}}),global:b.global},x?(t[l].x2=di(_.x2,b.x2,m),t[l].y2=di(_.y2,b.y2,m)):t[l].r=di(_.r,b.r,m)}else if(u)hv(y,h[i],v[i],m),n||(t[l]=kf(y));else{var w=di(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===Rc?t[n]=t[n]+i:r===xl?(so(t[n],rl),Oc(rl,rl,i,1),t[n]=kf(rl)):r===Nf?Oc(t[n],t[n],i,1):r===v2&&J1(t[n],t[n],i,1)},e}(),U9=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Gy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Tt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Rf(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Rf(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const Xy=U9;function ts(){return new Date().getTime()}var j9=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ts()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Pg(n),!r._paused&&r.update())}Pg(n)},t.prototype.start=function(){this._running||(this._time=ts(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ts(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ts()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new Xy(r,n.loop);return this.addAnimator(i),i},t}(ei);const Y9=j9;var q9=300,vv=Ge.domSupported,pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Re(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),rw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},nw=!1;function Rg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function K9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function gv(e){e&&(e.zrByTouch=!0)}function X9(e,t){return jr(e.dom,new Z9(e,t),!0)}function p2(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var Z9=function(){function e(t,r){this.stopPropagation=Tr,this.stopImmediatePropagation=Tr,this.preventDefault=Tr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),mn={mousedown:function(e){e=jr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=jr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=jr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=jr(this.dom,e);var t=e.toElement||e.relatedTarget;p2(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){nw=!0,e=jr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){nw||(e=jr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=jr(this.dom,e),gv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),mn.mousemove.call(this,e),mn.mousedown.call(this,e)},touchmove:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"change"),mn.mousemove.call(this,e)},touchend:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"end"),mn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentow||e<-ow}var xa=[],ko=[],yv=Su(),_v=Math.abs,nj=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return wa(this.rotation)||wa(this.x)||wa(this.y)||wa(this.scaleX-1)||wa(this.scaleY-1)||wa(this.skewX)||wa(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&aw(n);return}n=n||Su(),r?this.getLocalTransform(n):aw(n),t&&(r?us(n,t,n):p9(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(xa);var n=xa[0]<0?-1:1,i=xa[1]<0?-1:1,a=((xa[0]-n)*r+n)/xa[0]||0,o=((xa[1]-i)*r+i)/xa[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Su(),lh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(us(ko,t.invTransform,r),r=ko);var n=this.originX,i=this.originY;(n||i)&&(yv[4]=n,yv[5]=i,us(ko,r,yv),ko[4]-=n,ko[5]-=i,r=ko),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&on(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&on(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&_v(t[0]-1)>1e-10&&_v(t[3]-1)>1e-10?Math.sqrt(_v(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){ij(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,f=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&qy(r,r,u),r[4]+=n+c,r[5]+=i+f,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Cu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function ij(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function gd(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,c="left",f="top";if(n instanceof Array)l+=sa(n[0],r.width),u+=sa(n[1],r.height),c=null,f=null;else switch(n){case"left":l-=i,u+=s,c="right",f="middle";break;case"right":l+=i+o,u+=s,f="middle";break;case"top":l+=o/2,u-=i,c="center",f="bottom";break;case"bottom":l+=o/2,u+=a+i,c="center";break;case"inside":l+=o/2,u+=s,c="center",f="middle";break;case"insideLeft":l+=i,u+=s,f="middle";break;case"insideRight":l+=o-i,u+=s,c="right",f="middle";break;case"insideTop":l+=o/2,u+=i,c="center";break;case"insideBottom":l+=o/2,u+=a-i,c="center",f="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,c="right";break;case"insideBottomLeft":l+=i,u+=a-i,f="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,c="right",f="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=c,e.verticalAlign=f,e}var bv="__zr_normal__",wv=Cu.concat(["ignore"]),aj=oa(Cu,function(e,t){return e[t]=!0,e},{ignore:!1}),No={},oj=new et(0,0,0,0),Jy=function(){function e(t){this.id=UA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var c=oj;n.layoutRect?c.copy(n.layoutRect):c.copy(this.getBoundingRect()),i||c.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(No,n,c):gd(No,n,c),a.x=No.x,a.y=No.y,o=No.align,s=No.verticalAlign;var f=n.origin;if(f&&n.rotation!=null){var d=void 0,h=void 0;f==="center"?(d=c.width*.5,h=c.height*.5):(d=sa(f[0],c.width),h=sa(f[1],c.height)),u=!0,a.originX=-a.x+d+(i?0:c.x),a.originY=-a.y+h+(i?0:c.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Rr,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Bg:Fg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&so(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ky(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},se(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Ie(t))for(var n=t,i=Tt(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(bv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===bv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ot(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Gy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var c=!!(u&&u.hoverLayer||i);c&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var f=this._textContent,d=this._textGuide;return f&&f.useState(t,r,n,c),d&&d.useState(t,r,n,c),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=ot(i,t),o=ot(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,M=void 0,P=void 0;if(s){M={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];M[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){P={};for(var b=0;b<_;b++){var m=p[b];P[m]=Rf(r[m]),lj(r,n,m)}}var x=new Xy(r,!1,!1,f?Vt(v,function(T){return T.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),d&&C&&x.whenWithKeys(0,C,p),P&&x.whenWithKeys(0,P,p),x.whenWithKeys(u??500,s?M:n,p).delay(c||0),e.addAnimator(x,t),o.push(x)}}const y2=Jy;var _2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=ot(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ot(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i"u"&&typeof self<"u"?Va.worker=!0:typeof navigator>"u"?(Va.node=!0,Va.svgSupported=!0):PU(navigator.userAgent,Va);function PU(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}const Ge=Va;var zy=12,EU="sans-serif",yo=zy+"px "+EU,LU=20,DU=100,IU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function OU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function a9(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),f=2*u,d=c.left,h=c.top;o.push(d,h),l=l&&a&&d===a[f]&&h===a[f+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?F1(s,o):F1(o,s))}function XA(e){return e.nodeName.toUpperCase()==="CANVAS"}var o9=/([&<>"'])/g,s9={"&":"&","<":"<",">":">",'"':""","'":"'"};function Xr(e){return e==null?"":(e+"").replace(o9,function(t,r){return s9[r]})}var l9=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,av=[],u9=Ge.browser.firefox&&+Ge.browser.version.split(".")[0]<39;function Ag(e,t,r,n){return r=r||{},n?$1(e,t,r):u9&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):$1(e,t,r),r}function $1(e,t,r){if(Ge.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(XA(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Mg(av,e,n,i)){r.zrX=av[0],r.zrY=av[1];return}}r.zrX=r.zrY=0}function jy(e){return e||window.event}function jr(e,t,r){if(t=jy(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&Ag(e,o,t,r)}else{Ag(e,t,t,r);var a=c9(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&l9.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function c9(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function f9(e,t,r,n){e.addEventListener(t,r,n)}function d9(e,t,r,n){e.removeEventListener(t,r,n)}var ZA=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},h9=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=H1(n)/H1(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=v9(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function xu(){return[1,0,0,1,0,0]}function Yy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function p9(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function us(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Pg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function qy(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),c=Math.cos(r);return e[0]=n*c+o*u,e[1]=-n*u+o*c,e[2]=i*c+s*u,e[3]=-i*u+c*s,e[4]=c*a+u*l,e[5]=c*l-u*a,e}function g9(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function lh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var m9=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const ke=m9;var Pc=Math.min,Ec=Math.max,ma=new ke,ya=new ke,_a=new ke,ba=new ke,Qs=new ke,Js=new ke,y9=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=Pc(t.x,this.x),n=Pc(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Ec(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Ec(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=xu();return Pg(a,a,[-r.x,-r.y]),g9(a,a,[n,i]),Pg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,c=t.y,f=t.y+t.height,d=!(av&&(v=_,pv&&(v=b,m=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}ma.x=_a.x=r.x,ma.y=ba.y=r.y,ya.x=ba.x=r.x+r.width,ya.y=_a.y=r.y+r.height,ma.transform(n),ba.transform(n),ya.transform(n),_a.transform(n),t.x=Pc(ma.x,ya.x,_a.x,ba.x),t.y=Pc(ma.y,ya.y,_a.y,ba.y);var l=Ec(ma.x,ya.x,_a.x,ba.x),u=Ec(ma.y,ya.y,_a.y,ba.y);t.width=l-t.x,t.height=u-t.y},e}();const et=y9;var QA="silent";function _9(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:b9}}function b9(){ZA(this.event)}var w9=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ei),el=function(){function e(t,r){this.x=t,this.y=r}return e}(),S9=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],sv=new et(0,0,0,0),JA=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new el(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new w9,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new e9(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(O(S9,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=eP(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new el(n,i):this.findHover(n,i),u=l.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new el(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=_9(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new el(r,n);if(z1(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,c=new et(r-u,n-u,l,l),f=a.length-1;f>=0;f--){var d=a[f];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(sv.copy(d.getBoundingRect()),d.transform&&sv.applyTransform(d.transform),sv.intersect(c)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,p=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function x9(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?QA:!0}return!1}function z1(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=x9(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==QA)){t.target=o;break}}}function eP(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const C9=JA;var tP=32,tl=7;function T9(e){for(var t=0;e>=tP;)t|=e&1,e>>=1;return e+t}function W1(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function M9(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function lv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+c])>0?o=c+1:l=c}return l}function uv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+c])<0?l=c:o=c+1}return l}function A9(e,t){var r=tl,n,i,a=0;e.length;var o=[];n=[],i=[];function s(h,v){n[a]=h,i[a]=v,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;c(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=tl||x>=tl);if(C)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),v===1){for(m=0;m=0;m--)e[w+m]=e[S+m];e[b]=o[_];return}for(var x=r;;){var C=0,M=0,E=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){E=!0;break}}else if(e[b--]=o[_--],M++,C=0,--g===1){E=!0;break}while((C|M)=0;m--)e[w+m]=e[S+m];if(v===0){E=!0;break}}if(e[b--]=o[_--],--g===1){E=!0;break}if(M=g-lv(e[y],o,0,g,g-1,t),M!==0){for(b-=M,_-=M,g-=M,w=b+1,S=_+1,m=0;m=tl||M>=tl);if(E)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),g===1){for(b-=v,y-=v,w=b+1,S=y+1,m=v-1;m>=0;m--)e[w+m]=e[S+m];e[b]=o[_]}else{if(g===0)throw new Error;for(S=b-(g-1),m=0;ms&&(l=s),V1(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Rr=1,wl=2,Ko=4,G1=!1;function cv(){G1||(G1=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function U1(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var P9=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=U1}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(c.__clipPaths=[]),isNaN(c.z)&&(cv(),c.z=0),isNaN(c.z2)&&(cv(),c.z2=0),isNaN(c.zlevel)&&(cv(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var f=t.getDecalElement&&t.getDecalElement();f&&this._updateAndAddDisplayable(f,r,n);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const E9=P9;var rP;rP=Ge.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Eg=rP;var Of={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-Of.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?Of.bounceIn(e*2)*.5:Of.bounceOut(e*2-1)*.5+.5}};const nP=Of;var Lc=Math.pow,Qi=Math.sqrt,fd=1e-8,iP=1e-4,j1=Qi(3),Dc=1/3,Hn=Hs(),Zr=Hs(),cs=Hs();function Yi(e){return e>-fd&&efd||e<-fd}function jt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function Y1(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function oP(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,c=s*s-3*o*l,f=s*l-9*o*u,d=l*l-3*s*u,h=0;if(Yi(c)&&Yi(f))if(Yi(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[h++]=v)}else{var p=f*f-4*c*d;if(Yi(p)){var g=f/c,v=-s/o+g,m=-g/2;v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Qi(p),_=c*s+1.5*o*(-f+y),b=c*s+1.5*o*(-f-y);_<0?_=-Lc(-_,Dc):_=Lc(_,Dc),b<0?b=-Lc(-b,Dc):b=Lc(b,Dc);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[h++]=v)}else{var S=(2*c*s-3*o*f)/(2*Qi(c*c*c)),w=Math.acos(S)/3,x=Qi(c),C=Math.cos(w),v=(-s-2*x*C)/(3*o),m=(-s+x*(C+j1*Math.sin(w)))/(3*o),M=(-s+x*(C-j1*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[h++]=v),m>=0&&m<=1&&(a[h++]=m),M>=0&&M<=1&&(a[h++]=M)}}return h}function sP(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Yi(o)){if(aP(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(Yi(c))i[0]=-a/(2*o);else if(c>0){var f=Qi(c),u=(-a+f)/(2*o),d=(-a-f)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function dd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,c=(l-s)*i+s,f=(c-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=f,a[4]=f,a[5]=c,a[6]=l,a[7]=n}function lP(e,t,r,n,i,a,o,s,l,u,c){var f,d=.005,h=1/0,v,p,g,m;Hn[0]=l,Hn[1]=u;for(var y=0;y<1;y+=.05)Zr[0]=jt(e,r,i,o,y),Zr[1]=jt(t,n,a,s,y),g=ls(Hn,Zr),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(Yi(c)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var f=Qi(c),u=(-o+f)/(2*a),d=(-o-f)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function uP(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function hd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function cP(e,t,r,n,i,a,o,s,l){var u,c=.005,f=1/0;Hn[0]=o,Hn[1]=s;for(var d=0;d<1;d+=.05){Zr[0]=Jt(e,r,i,d),Zr[1]=Jt(t,n,a,d);var h=ls(Hn,Zr);h=0&&h=1?1:oP(0,n,a,1,l,s)&&jt(0,i,o,1,s[0])}}}var R9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Tr,this.ondestroy=t.ondestroy||Tr,this.onrestart=t.onrestart||Tr,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ve(t)?t:nP[t]||fP(t)},e}();const k9=R9;var dP=function(){function e(t){this.value=t}return e}(),N9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new dP(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),F9=function(){function e(t){this._list=new N9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new dP(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();const tc=F9;var K1={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Vl(e){return e=Math.round(e),e<0?0:e>255?255:e}function X1(e){return e<0?0:e>1?1:e}function fv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Vl(parseFloat(t)/100*255):Vl(parseInt(t,10))}function Gl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?X1(parseFloat(t)/100):X1(parseFloat(t))}function dv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Ur(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Lg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var hP=new tc(20),Ic=null;function Ro(e,t){Ic&&Lg(Ic,t),Ic=hP.put(e,Ic||t.slice())}function so(e,t){if(e){t=t||[];var r=hP.get(e);if(r)return Lg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in K1)return Lg(t,K1[n]),Ro(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Ur(t,0,0,0,1);return}return Ur(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Ro(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Ur(t,0,0,0,1);return}return Ur(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Ro(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Ur(t,+u[0],+u[1],+u[2],1):Ur(t,0,0,0,1);c=Gl(u.pop());case"rgb":if(u.length>=3)return Ur(t,fv(u[0]),fv(u[1]),fv(u[2]),u.length===3?c:Gl(u[3])),Ro(e,t),t;Ur(t,0,0,0,1);return;case"hsla":if(u.length!==4){Ur(t,0,0,0,1);return}return u[3]=Gl(u[3]),Z1(u,t),Ro(e,t),t;case"hsl":if(u.length!==3){Ur(t,0,0,0,1);return}return Z1(u,t),Ro(e,t),t;default:return}}Ur(t,0,0,0,1)}}function Z1(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Gl(e[1]),i=Gl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Ur(t,Vl(dv(o,a,r+1/3)*255),Vl(dv(o,a,r)*255),Vl(dv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function Q1(e,t){var r=so(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Ky(r,r.length===4?"rgba":"rgb")}}function Ky(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function vd(e,t){var r=so(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function B9(e){return e.type==="linear"}function $9(e){return e.type==="radial"}(function(){return Ge.hasGlobalWindow&&Ve(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Dg=Array.prototype.slice;function di(e,t,r){return(t-e)*r+e}function hv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=ew,l=r;if(Pr(r)){var u=V9(r);s=u,(u===1&&!bt(r[0])||u===2&&!bt(r[0][0]))&&(o=!0)}else if(bt(r)&&!cd(r))s=Rc;else if(Te(r))if(!isNaN(+r))s=Rc;else{var c=so(r);c&&(l=c,s=Sl)}else if(oh(r)){var f=se({},l);f.colorStops=Re(r.colorStops,function(h){return{offset:h.offset,color:so(h.color)}}),B9(r)?s=Ig:$9(r)&&(s=Og),l=f}a===0?this.valType=s:(s!==this.valType||s===ew)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=Ve(n)?n:nP[n]||fP(n)),i.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,g){return p.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=kc(i),u=tw(i),c=0;c=0&&!(o[c].percent<=r);c--);c=d(c,s-2)}else{for(c=f;cr);c++);c=d(c-1,s-2)}v=o[c+1],h=o[c]}if(h&&v){this._lastFr=c,this._lastFrP=r;var g=v.percent-h.percent,m=g===0?1:d((r-h.percent)/g,1);v.easingFunc&&(m=v.easingFunc(m));var y=n?this._additiveValue:u?rl:t[l];if((kc(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:v.rawValue;else if(kc(a))a===Nf?hv(y,h[i],v[i],m):H9(y,h[i],v[i],m);else if(tw(a)){var _=h[i],b=v[i],S=a===Ig;t[l]={type:S?"linear":"radial",x:di(_.x,b.x,m),y:di(_.y,b.y,m),colorStops:Re(_.colorStops,function(x,C){var M=b.colorStops[C];return{offset:di(x.offset,M.offset,m),color:kf(hv([],x.color,M.color,m))}}),global:b.global},S?(t[l].x2=di(_.x2,b.x2,m),t[l].y2=di(_.y2,b.y2,m)):t[l].r=di(_.r,b.r,m)}else if(u)hv(y,h[i],v[i],m),n||(t[l]=kf(y));else{var w=di(h[i],v[i],m);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===Rc?t[n]=t[n]+i:r===Sl?(so(t[n],rl),Oc(rl,rl,i,1),t[n]=kf(rl)):r===Nf?Oc(t[n],t[n],i,1):r===vP&&J1(t[n],t[n],i,1)},e}(),U9=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){Gy("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Tt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Rf(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Rf(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();const Xy=U9;function ts(){return new Date().getTime()}var j9=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ts()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Eg(n),!r._paused&&r.update())}Eg(n)},t.prototype.start=function(){this._running||(this._time=ts(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ts(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ts()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new Xy(r,n.loop);return this.addAnimator(i),i},t}(ei);const Y9=j9;var q9=300,vv=Ge.domSupported,pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Re(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),rw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},nw=!1;function Rg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function K9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function gv(e){e&&(e.zrByTouch=!0)}function X9(e,t){return jr(e.dom,new Z9(e,t),!0)}function pP(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var Z9=function(){function e(t,r){this.stopPropagation=Tr,this.stopImmediatePropagation=Tr,this.preventDefault=Tr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),mn={mousedown:function(e){e=jr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=jr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=jr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=jr(this.dom,e);var t=e.toElement||e.relatedTarget;pP(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){nw=!0,e=jr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){nw||(e=jr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=jr(this.dom,e),gv(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),mn.mousemove.call(this,e),mn.mousedown.call(this,e)},touchmove:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"change"),mn.mousemove.call(this,e)},touchend:function(e){e=jr(this.dom,e),gv(e),this.handler.processGesture(e,"end"),mn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentow||e<-ow}var Sa=[],ko=[],yv=xu(),_v=Math.abs,nj=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return wa(this.rotation)||wa(this.x)||wa(this.y)||wa(this.scaleX-1)||wa(this.scaleY-1)||wa(this.skewX)||wa(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&aw(n);return}n=n||xu(),r?this.getLocalTransform(n):aw(n),t&&(r?us(n,t,n):p9(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Sa);var n=Sa[0]<0?-1:1,i=Sa[1]<0?-1:1,a=((Sa[0]-n)*r+n)/Sa[0]||0,o=((Sa[1]-i)*r+i)/Sa[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||xu(),lh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(us(ko,t.invTransform,r),r=ko);var n=this.originX,i=this.originY;(n||i)&&(yv[4]=n,yv[5]=i,us(ko,r,yv),ko[4]-=n,ko[5]-=i,r=ko),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&on(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&on(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&_v(t[0]-1)>1e-10&&_v(t[3]-1)>1e-10?Math.sqrt(_v(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){ij(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,f=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-d*p*o,r[5]=-p*o-h*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=d*o,u&&qy(r,r,u),r[4]+=n+c,r[5]+=i+f,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Cu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function ij(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function gd(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,c="left",f="top";if(n instanceof Array)l+=sa(n[0],r.width),u+=sa(n[1],r.height),c=null,f=null;else switch(n){case"left":l-=i,u+=s,c="right",f="middle";break;case"right":l+=i+o,u+=s,f="middle";break;case"top":l+=o/2,u-=i,c="center",f="bottom";break;case"bottom":l+=o/2,u+=a+i,c="center";break;case"inside":l+=o/2,u+=s,c="center",f="middle";break;case"insideLeft":l+=i,u+=s,f="middle";break;case"insideRight":l+=o-i,u+=s,c="right",f="middle";break;case"insideTop":l+=o/2,u+=i,c="center";break;case"insideBottom":l+=o/2,u+=a-i,c="center",f="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,c="right";break;case"insideBottomLeft":l+=i,u+=a-i,f="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,c="right",f="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=c,e.verticalAlign=f,e}var bv="__zr_normal__",wv=Cu.concat(["ignore"]),aj=oa(Cu,function(e,t){return e[t]=!0,e},{ignore:!1}),No={},oj=new et(0,0,0,0),Jy=function(){function e(t){this.id=UA(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var c=oj;n.layoutRect?c.copy(n.layoutRect):c.copy(this.getBoundingRect()),i||c.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(No,n,c):gd(No,n,c),a.x=No.x,a.y=No.y,o=No.align,s=No.verticalAlign;var f=n.origin;if(f&&n.rotation!=null){var d=void 0,h=void 0;f==="center"?(d=c.width*.5,h=c.height*.5):(d=sa(f[0],c.width),h=sa(f[1],c.height)),u=!0,a.originX=-a.x+d+(i?0:c.x),a.originY=-a.y+h+(i?0:c.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Rr,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Bg:Fg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&so(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ky(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},se(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Ie(t))for(var n=t,i=Tt(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(bv,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===bv,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ot(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){Gy("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var c=!!(u&&u.hoverLayer||i);c&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var f=this._textContent,d=this._textGuide;return f&&f.useState(t,r,n,c),d&&d.useState(t,r,n,c),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,d),g&&g.useStates(t,r,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Rr)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=ot(i,t),o=ot(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var d=0;d0||i.force&&!o.length){var C=void 0,M=void 0,E=void 0;if(s){M={},d&&(C={});for(var b=0;b<_;b++){var m=p[b];M[m]=r[m],d?C[m]=n[m]:r[m]=n[m]}}else if(d){E={};for(var b=0;b<_;b++){var m=p[b];E[m]=Rf(r[m]),lj(r,n,m)}}var S=new Xy(r,!1,!1,f?Vt(v,function(T){return T.targetName===t}):null);S.targetName=t,i.scope&&(S.scope=i.scope),d&&C&&S.whenWithKeys(0,C,p),E&&S.whenWithKeys(0,E,p),S.whenWithKeys(u??500,s?M:n,p).delay(c||0),e.addAnimator(S,t),o.push(S)}}const yP=Jy;var _P=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=ot(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ot(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function gt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Te(e)?pj(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function kt(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),w2),e=(+e).toFixed(t),r?e:+e}function hi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return gj(e)}function gj(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function mj(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function yj(e,t){var r=oa(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Re(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Re(i,function(h){return Math.floor(h)}),s=oa(o,function(h,v){return h+v},0),l=Re(i,function(h,v){return h-o[v]});su&&(u=l[f],c=f);++o[c],l[c]=0,++s}return Re(o,function(h){return h/n})}function _j(e,t){var r=Math.max(hi(e),hi(t)),n=e+t;return r>w2?n:kt(n,r)}function x2(e){var t=Math.PI*2;return(e%t+t)%t}function md(e){return e>-cw&&e=10&&t++,t}function S2(e,t){var r=e0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function yd(e){var t=parseFloat(e);return t==e&&(t!==0||!Te(e)||e.indexOf("x")<=0)?t:NaN}function xj(e){return!isNaN(yd(e))}function C2(){return Math.round(Math.random()*9)}function T2(e,t){return t===0?e:T2(t,e%t)}function fw(e,t){return e==null?t:t==null?e:e*t/T2(e,t)}function br(e){throw new Error(e)}function dw(e,t,r){return(t-e)*r+e}var M2="series\0",Sj="\0_ec_\0";function cr(e){return e instanceof Array?e:e==null?[]:[e]}function Hg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var jj=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],Yj=Mu(jj),qj=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return Yj(this,t,r)},e}(),zg=new tc(50);function Kj(e){if(typeof e=="string"){var t=zg.get(e);return t&&t.image}else return e}function D2(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=zg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!fh(t)&&a.pending.push(o)):(t=Mo.loadImage(e,vw,vw),t.__zrImageSrc=e,zg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function vw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=$r(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function O2(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=$r(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?Zj(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=$r(e,n)}return e===""&&(e=t.placeholder),e}function Zj(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);f=f.slice(0,v)}if(e&&a&&c!=null)for(var p=I2(c,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&Mv(r,e.substring(s,u),t,o),Mv(r,l[2],t,o,l[1]),s=Tv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var T=S.width,D=T==null||T==="auto";if(typeof T=="string"&&T.charAt(T.length-1)==="%")w.percentWidth=T,c.push(w),w.contentWidth=$r(w.text,P);else{if(D){var N=S.backgroundColor,H=N&&N.image;H&&(H=Kj(H),fh(H)&&(w.width=Math.max(w.width,H.width*A/H.height)))}var $=v&&n!=null?n-b:null;$!=null&&$0&&v+n.accumWidth>n.width&&(c=t.split(` -`),u=!0),n.accumWidth=v}else{var p=R2(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,f=p.linesWidths,c=p.lines}}else c=t.split(` -`);for(var g=0;g=33&&t<=383}var nY=oa(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function iY(e){return rY(e)?!!nY[e]:!0}function R2(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,c=0,f=0;fr:i+c+h>r){c?(s||l)&&(v?(s||(s=l,l="",u=0,c=u),a.push(s),o.push(c-u),l+=d,u+=h,s="",c=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(c),s=d,c=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}c+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(c)),a.length===1&&(c+=i),{accumWidth:c,lines:a,linesWidths:o}}var Wg="__zr_style_"+Math.round(Math.random()*10),lo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},dh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};lo[Wg]=!0;var gw=["z","z2","invisible"],aY=["invisible"],oY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Tt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Nc[0]=Lv(i)*r+e,Nc[1]=Pv(i)*n+t,Fc[0]=Lv(a)*r+e,Fc[1]=Pv(a)*n+t,u(s,Nc,Fc),c(l,Nc,Fc),i=i%Ca,i<0&&(i=i+Ca),a=a%Ca,a<0&&(a=a+Ca),i>a&&!o?a+=Ca:ii&&(Bc[0]=Lv(h)*r+e,Bc[1]=Pv(h)*n+t,u(s,Bc,s),c(l,Bc,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ta=[],Ma=[],Rn=[],Oi=[],kn=[],Nn=[],Dv=Math.min,Iv=Math.max,Aa=Math.cos,Ea=Math.sin,oi=Math.abs,Vg=Math.PI,zi=Vg*2,Ov=typeof Float32Array<"u",nl=[];function Rv(e){var t=Math.round(e/Vg*1e8)/1e8;return t%2*Vg}function fY(e,t){var r=Rv(e[0]);r<0&&(r+=zi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=zi?i=r+zi:t&&r-i>=zi?i=r-zi:!t&&r>i?i=r+(zi-Rv(r-i)):t&&r0&&(this._ux=oi(n/pd/t)||0,this._uy=oi(n/pd/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=oi(t-this._xi),i=oi(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),nl[0]=i,nl[1]=a,fY(nl,o),i=nl[0],a=nl[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Aa(a)*n+t,this._yi=Ea(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Ov&&(this.data=new Float32Array(r));for(var n=0;nc.length&&(this._expandData(),c=this.data);for(var f=0;f0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Rn[0]=Rn[1]=kn[0]=kn[1]=Number.MAX_VALUE,Oi[0]=Oi[1]=Nn[0]=Nn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||oi(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case at.C:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++],w=t[d++],S=t[d++];p=L9(a,o,b,x,g,m,w,S,10),a=w,o=S;break}case at.Q:{var b=t[d++],x=t[d++],g=t[d++],m=t[d++];p=I9(a,o,b,x,g,m,10),a=g,o=m;break}case at.A:var C=t[d++],M=t[d++],P=t[d++],A=t[d++],T=t[d++],D=t[d++],N=D+T;d+=1,t[d++],v&&(s=Aa(T)*P+C,l=Ea(T)*A+M),p=Iv(P,A)*Dv(zi,Math.abs(D)),a=Aa(N)*P+C,o=Ea(N)*A+M;break;case at.R:{s=a=t[d++],l=o=t[d++];var H=t[d++],$=t[d++];p=H*2+$*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[f++]=p,c+=p)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,c,f,d,h=r<1,v,p,g=0,m=0,y,_=0,b,x;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case at.M:s=u=n[w++],l=c=n[w++],t.moveTo(u,c);break;case at.L:{f=n[w++],d=n[w++];var M=oi(f-u),P=oi(d-c);if(M>i||P>a){if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+f*T,c*(1-T)+d*T);break e}g+=A}t.lineTo(f,d),u=f,c=d,_=0}else{var D=M*M+P*P;D>_&&(b=f,x=d,_=D)}break}case at.C:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++],F=n[w++],R=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;dd(u,N,$,F,T,Ta),dd(c,H,G,R,T,Ma),t.bezierCurveTo(Ta[1],Ma[1],Ta[2],Ma[2],Ta[3],Ma[3]);break e}g+=A}t.bezierCurveTo(N,H,$,G,F,R),u=F,c=R;break}case at.Q:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;hd(u,N,$,T,Ta),hd(c,H,G,T,Ma),t.quadraticCurveTo(Ta[1],Ma[1],Ta[2],Ma[2]);break e}g+=A}t.quadraticCurveTo(N,H,$,G),u=$,c=G;break}case at.A:var j=n[w++],re=n[w++],oe=n[w++],ye=n[w++],Ae=n[w++],V=n[w++],Q=n[w++],W=!n[w++],q=oe>ye?oe:ye,le=oi(oe-ye)>.001,de=Ae+V,J=!1;if(h){var A=v[m++];g+A>y&&(de=Ae+V*(y-g)/A,J=!0),g+=A}if(le&&t.ellipse?t.ellipse(j,re,oe,ye,Q,Ae,de,W):t.arc(j,re,q,Ae,de,W),J)break e;C&&(s=Aa(Ae)*oe+j,l=Ea(Ae)*ye+re),u=Aa(de)*oe+j,c=Ea(de)*ye+re;break;case at.R:s=u=n[w],l=c=n[w+1],f=n[w++],d=n[w++];var L=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(f,d),t.lineTo(f+Dv(z,L),d),z-=L,z>0&&t.lineTo(f+L,d+Dv(z,I)),z-=I,z>0&&t.lineTo(f+Iv(L-z,0),d+I),z-=L,z>0&&t.lineTo(f,d+Iv(I-z,0));break e}g+=A}t.rect(f,d,L,I);break;case at.Z:if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+s*T,c*(1-T)+l*T);break e}g+=A}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const _o=dY;function Fo(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+f&&c>n+f&&c>a+f&&c>s+f||ce+f&&u>r+f&&u>i+f&&u>o+f||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||c+ui&&(i+=il);var d=Math.atan2(l,s);return d<0&&(d+=il),d>=n&&d<=i||d+il>=n&&d+il<=i}function Pa(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ri=_o.CMD,La=Math.PI*2,gY=1e-4;function mY(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&yY(),h=jt(t,n,a,s,Kr[0]),d>1&&(v=jt(t,n,a,s,Kr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var c=0,f=Jt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);or[0]=-l,or[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=La-1e-4){n=0,i=La;var c=a?1:-1;return o>=or[0]+e&&o<=or[1]+e?c:0}if(n>i){var f=n;n=i,i=f}n<0&&(n+=La,i+=La);for(var d=0,h=0;h<2;h++){var v=or[h];if(v+e>o){var p=Math.atan2(s,v),c=a?1:-1;p<0&&(p=La+p),(p>=n&&p<=i||p+La>=n&&p+La<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Pa(l,u,c,f,n,i))),g&&(l=a[v],u=a[v+1],c=l,f=u),p){case Ri.M:c=a[v++],f=a[v++],l=c,u=f;break;case Ri.L:if(r){if(Fo(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Pa(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.C:if(r){if(hY(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=_Y(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.Q:if(r){if(vY(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=bY(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);d=Math.cos(x)*_+m,h=Math.sin(x)*b+y,g?(c=d,f=h):s+=Pa(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(pY(m,y,b,x,x+w,S,t,C,i))return!0}else s+=wY(m,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+m,u=Math.sin(x+w)*b+y;break;case Ri.R:c=l=a[v++],f=u=a[v++];var M=a[v++],P=a[v++];if(d=c+M,h=f+P,r){if(Fo(c,f,d,f,t,n,i)||Fo(d,f,d,h,t,n,i)||Fo(d,h,c,h,t,n,i)||Fo(c,h,c,f,t,n,i))return!0}else s+=Pa(d,f,d,h,n,i),s+=Pa(c,h,c,f,n,i);break;case Ri.Z:if(r){if(Fo(l,u,c,f,t,n,i))return!0}else s+=Pa(l,u,c,f,n,i);l=c,u=f;break}}return!r&&!mY(u,f)&&(s+=Pa(l,u,c,f,n,i)||0),s!==0}function xY(e,t,r){return k2(e,0,!1,t,r)}function SY(e,t,r,n){return k2(e,t,!0,r,n)}var N2=dt({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},lo),CY={style:dt({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},dh.style)},kv=Cu.concat(["invisible","culling","z","z2","zlevel","parent"]),TY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Fg:n>.2?rj:Bg}else if(r)return Bg}return Fg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Te(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=vd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Ko)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),SY(s,l/u,r,n)))return!0}if(this.hasFill())return xY(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Ko,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:se(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Ko)},t.prototype.createStyle=function(r){return sh(N2,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=se({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=se({},i.shape),se(u,n.shape)):(u=se({},a?this.shape:i.shape),se(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=se({},this.shape);for(var c={},f=Tt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return sh(MY,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Zy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(ac);F2.prototype.type="tspan";const Gg=F2;var AY=dt({x:0,y:0},lo),EY={style:dt({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},dh.style)};function PY(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var B2=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return sh(AY,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=PY(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return EY},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new et(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(ac);B2.prototype.type="image";const zs=B2;function LY(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,c;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=c=o:o instanceof Array?o.length===1?s=l=u=c=o[0]:o.length===2?(s=u=o[0],l=c=o[1]):o.length===3?(s=o[0],l=c=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],c=o[3]):s=l=u=c=0;var f;s+l>i&&(f=s+l,s*=i/f,l*=i/f),u+c>i&&(f=u+c,u*=i/f,c*=i/f),l+u>a&&(f=l+u,l*=a/f,u*=a/f),s+c>a&&(f=s+c,s*=a/f,c*=a/f),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+c,n+a),c!==0&&e.arc(r+c,n+a-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var rs=Math.round;function $2(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(rs(n*2)===rs(i*2)&&(e.x1=e.x2=eo(n,s,!0)),rs(a*2)===rs(o*2)&&(e.y1=e.y2=eo(a,s,!0))),e}}function H2(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=eo(n,s,!0),e.y=eo(i,s,!0),e.width=Math.max(eo(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(eo(i+o,s,!1)-e.y,o===0?0:1)),e}}function eo(e,t,r){if(!t)return e;var n=rs(e*2);return(n+rs(t))%2===0?n/2:(n+(r?1:-1))/2}var DY=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),IY={},z2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new DY},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=H2(IY,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?LY(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ht);z2.prototype.type="rect";const Ht=z2;var ww={fill:"#000"},xw=2,OY={style:dt({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},dh.style)},W2=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=ww,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,T=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,N=0;N=0&&(N=w[D],N.align==="right");)this._placeToken(N,r,C,m,T,"right",_),M-=N.width,T-=N.width,D--;for(A+=(a-(A-g)-(y-T)-M)/2;P<=D;)N=w[P],this._placeToken(N,r,C,m,A+N.width/2,"center",_),A+=N.width,P++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,f=a+i/2;c==="top"?f=a+r.height/2:c==="bottom"&&(f=a+i-r.height/2);var d=!r.isLineHolder&&Nv(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,f-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=Ew(o,s,v),f-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Gg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=Aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),x=Mw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=xw,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=f,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||yo,g.opacity=zl(u.opacity,n.opacity,1),Cw(g,u),x&&(g.lineWidth=zl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=x),b&&(g.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new et(Sl(g.x,S,g.textAlign),Xo(g.y,C,g.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,c=r.borderColor,f=l&&l.image,d=l&&!f,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&c){p=this._getOrCreateChild(Ht),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(f){g=this._getOrCreateChild(zs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&c){var y=p.style;y.lineWidth=u,y.stroke=c,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=zl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return FY(r)&&(n=[r.fontStyle,r.fontWeight,NY(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Vn(n)||r.textFont||r.font},t}(ac),RY={left:!0,right:1,center:1},kY={top:1,bottom:1,middle:1},Sw=["fontStyle","fontWeight","fontSize","fontFamily"];function NY(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?zy+"px":e+"px"}function Cw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ht){var o=V2(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Bo(s)||Bo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=se({},n),u=se({},u),u.fill=s):!Bo(u.fill)&&Bo(s)?(a=!0,n=se({},n),u=se({},u),u.fill=Ow(s)):!Bo(u.stroke)&&Bo(l)&&(a||(n=se({},n),u=se({},u)),u.stroke=Ow(l)),n.style=u}}if(n&&n.z2==null){a||(n=se({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??HY)}return n}function jY(e,t,r){if(r&&r.z2==null){r=se({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??zY)}return r}function YY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:GY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=se({},r),o=se({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Fv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return UY(this,e,t,r);if(e==="blur")return YY(this,e,r);if(e==="select")return jY(this,e,r)}return r}function qY(e){e.stateProxy=Fv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Fv),r&&(r.stateProxy=Fv)}function kw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,U2)}function Nw(e,t){!Z2(e,t)&&!e.__highByOuter&&Ai(e,j2)}function Ug(e,t){e.__highByOuter|=1<<(t||0),Ai(e,U2)}function jg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ai(e,j2)}function KY(e){Ai(e,s0)}function q2(e){Ai(e,Y2)}function K2(e){Ai(e,WY)}function X2(e){Ai(e,VY)}function Z2(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function Q2(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=i0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){Y2(u)}),s&&r.push(a)),o.isBlured=!1}),O(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Yg(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,c){for(var f=0;f0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Kg(e,t,r){tE(e,!0),Ai(e,qY),r7(e,t,r)}function t7(e){tE(e,!1)}function J2(e,t,r,n){n?t7(e):Kg(e,t,r)}function r7(e,t,r){var n=ft(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Bw=["emphasis","blur","select"],n7={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function eE(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Bv(v),s*=Bv(v));var p=(i===a?-1:1)*Bv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Hc(f)*g-$c(f)*m,_=(t+n)/2+$c(f)*g+Hc(f)*m,b=Ww([1,0],[(d-g)/o,(h-m)/s]),x=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],S=Ww(x,w);if(Qg(x,w)<=-1&&(S=al),Qg(x,w)>=1&&(S=0),S<0){var C=Math.round(S/al*1e6)/1e6;S=al*2+C%2*al}c.addData(u,y,_,o,s,b,S,f,a)}var u7=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,c7=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function f7(e){var t=new _o;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=_o.CMD,l=e.match(u7);if(!l)return t;for(var u=0;uN*N+H*H&&(C=P,M=A),{cx:C,cy:M,x0:-c,y0:-f,x1:C*(i/x-1),y1:M*(i/x-1)}}function _7(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function b7(e,t){var r,n=Cl(t.r,0),i=Cl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,f=t.cy,d=!!t.clockwise,h=Gw(u-l),v=h>$v&&h%$v;if(v>gn&&(h=v),!(n>gn))e.moveTo(c,f);else if(h>$v-gn)e.moveTo(c+n*Ho(l),f+n*Da(l)),e.arc(c,f,n,l,u,!d),i>gn&&(e.moveTo(c+i*Ho(u),f+i*Da(u)),e.arc(c,f,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,M=void 0,P=void 0,A=void 0,T=void 0,D=void 0,N=void 0,H=n*Ho(l),$=n*Da(l),G=i*Ho(u),F=i*Da(u),R=h>gn;if(R){var j=t.cornerRadius;j&&(r=_7(j),p=r[0],g=r[1],m=r[2],y=r[3]);var re=Gw(n-i)/2;if(_=Fn(re,m),b=Fn(re,y),x=Fn(re,p),w=Fn(re,g),M=S=Cl(_,b),P=C=Cl(x,w),(S>gn||C>gn)&&(A=n*Ho(u),T=n*Da(u),D=i*Ho(l),N=i*Da(l),hgn){var le=Fn(m,M),de=Fn(y,M),J=zc(D,N,H,$,n,le,d),L=zc(A,T,G,F,n,de,d);e.moveTo(c+J.cx+J.x0,f+J.cy+J.y0),M0&&e.arc(c+J.cx,f+J.cy,le,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,n,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),!d),de>0&&e.arc(c+L.cx,f+L.cy,de,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.moveTo(c+H,f+$),e.arc(c,f,n,l,u,!d);if(!(i>gn)||!R)e.lineTo(c+G,f+F);else if(P>gn){var le=Fn(p,P),de=Fn(g,P),J=zc(G,F,A,T,i,-de,d),L=zc(H,$,D,N,i,-le,d);e.lineTo(c+J.cx+J.x0,f+J.cy+J.y0),P0&&e.arc(c+J.cx,f+J.cy,de,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,i,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),d),le>0&&e.arc(c+L.cx,f+L.cy,le,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.lineTo(c+G,f+F),e.arc(c,f,i,u,l,d)}e.closePath()}}}var w7=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),uE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new w7},t.prototype.buildPath=function(r,n){b7(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ht);uE.prototype.type="sector";const Ao=uE;var x7=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),cE=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new x7},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ht);cE.prototype.type="ring";const fE=cE;function S7(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,c,f;if(n){c=[1/0,1/0],f=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=S7(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],c=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,f=i.length;sOa[1]){if(s=!1,a)return s;var c=Math.abs(Oa[0]-Ia[1]),f=Math.abs(Ia[0]-Oa[1]);Math.min(c,f)>i.len()&&(c0){var f=c.duration,d=c.delay,h=c.easing,v={duration:f,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Pr(e,t,r,n,i,a){f0("update",e,t,r,n,i,a)}function Hr(e,t,r,n,i,a){f0("enter",e,t,r,n,i,a)}function fs(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Yw(e){return!e.isGroup}function Q7(e){return e.shape!=null}function ME(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Yw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return Q7(o)&&(s.shape=se({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Yw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Pr(o,l,r,ft(o).dataIndex)}}})}function J7(e,t){return Re(e,function(r){var n=r[0];n=xd(n,t.x),n=Sd(n,t.x+t.width);var i=r[1];return i=xd(i,t.y),i=Sd(i,t.y+t.height),[n,i]})}function eq(e,t){var r=xd(e.x,t.x),n=Sd(e.x+e.width,t.x+t.width),i=xd(e.y,t.y),a=Sd(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function v0(e,t,r){var n=se({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),dt(i,r),new zs(n)):d0(e.replace("path://",""),n,r,"center")}function tq(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Hv(h,v,c,f)/d;return!(g<0||g>1)}function Hv(e,t,r,n){return e*n-r*t}function rq(e){return e<=1e-6&&e>=-1e-6}function p0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Te(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&O(Tt(l),function(c){Ps(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=ft(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:dt({content:n,formatterParams:s},i)}}function qw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function g0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function IE(e,t){return st(st({},e,!0),t,!0)}const _q={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},bq={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Cd="ZH",y0="EN",Eu=y0,zf={},_0={},OE=Ge.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Cd)>-1?Cd:Eu}():Eu;function RE(e,t){e=e.toUpperCase(),_0[e]=new rr(t),zf[e]=t}function wq(e){if(Te(e)){var t=zf[e.toUpperCase()]||{};return e===Cd||e===y0?Qe(t):st(Qe(t),Qe(zf[Eu]),!1)}else return st(Qe(e),Qe(zf[Eu]),!1)}function xq(e){return _0[e]}function Sq(){return _0[Eu]}RE(y0,_q);RE(Cd,bq);var b0=1e3,w0=b0*60,Kl=w0*60,en=Kl*24,ex=en*365,Tl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Gc="{yyyy}-{MM}-{dd}",tx={year:"{yyyy}",month:"{yyyy}-{MM}",day:Gc,hour:Gc+" "+Tl.hour,minute:Gc+" "+Tl.minute,second:Gc+" "+Tl.second,millisecond:Tl.none},Vv=["year","month","day","hour","minute","second","millisecond"],kE=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ra(e,t){return e+="","0000".substr(0,t-e.length)+e}function ds(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Cq(e){return e===ds(e)}function Tq(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function mh(e,t,r,n){var i=wi(e),a=i[x0(r)](),o=i[hs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[yh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),c=i[Pu(r)](),f=(c-1)%12+1,d=i[_h(r)](),h=i[bh(r)](),v=i[wh(r)](),p=n instanceof rr?n:xq(n||OE)||Sq(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Ra(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Ra(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ra(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,Ra(f+"",2)).replace(/{h}/g,f+"").replace(/{mm}/g,Ra(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Ra(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Ra(v,3)).replace(/{S}/g,v+"")}function Mq(e,t,r,n,i){var a=null;if(Te(r))a=r;else if(Ve(r))a=r(e.value,t,{level:e.level});else{var o=se({},Tl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var f=e.level==null?0:e.level>=0?e.level:a.length+e.level;f=Math.min(f,a.length-1),a=a[f]}}return mh(new Date(e.value),a,i,n)}function NE(e,t){var r=wi(e),n=r[hs(t)]()+1,i=r[yh(t)](),a=r[Pu(t)](),o=r[_h(t)](),s=r[bh(t)](),l=r[wh(t)](),u=l===0,c=u&&s===0,f=c&&o===0,d=f&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":f?"hour":c?"minute":u?"second":"millisecond"}function rx(e,t,r){var n=bt(e)?wi(e):e;switch(t=t||NE(e,r),t){case"year":return n[x0(r)]();case"half-year":return n[hs(r)]()>=6?1:0;case"quarter":return Math.floor((n[hs(r)]()+1)/4);case"month":return n[hs(r)]();case"day":return n[yh(r)]();case"half-day":return n[Pu(r)]()/24;case"hour":return n[Pu(r)]();case"minute":return n[_h(r)]();case"second":return n[bh(r)]();case"millisecond":return n[wh(r)]()}}function x0(e){return e?"getUTCFullYear":"getFullYear"}function hs(e){return e?"getUTCMonth":"getMonth"}function yh(e){return e?"getUTCDate":"getDate"}function Pu(e){return e?"getUTCHours":"getHours"}function _h(e){return e?"getUTCMinutes":"getMinutes"}function bh(e){return e?"getUTCSeconds":"getSeconds"}function wh(e){return e?"getUTCMilliseconds":"getMilliseconds"}function Aq(e){return e?"setUTCFullYear":"setFullYear"}function FE(e){return e?"setUTCMonth":"setMonth"}function BE(e){return e?"setUTCDate":"setDate"}function $E(e){return e?"setUTCHours":"setHours"}function HE(e){return e?"setUTCMinutes":"setMinutes"}function zE(e){return e?"setUTCSeconds":"setSeconds"}function WE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function VE(e){if(!xj(e))return Te(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function GE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var xh=jA;function tm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(c){return c&&Vn(c)?c:"-"}function a(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?wi(e):e;if(isNaN(+l)){if(s)return"-"}else return mh(l,n,r)}if(t==="ordinal")return wg(e)?i(e):bt(e)&&a(e)?e+"":"-";var u=yd(e);return a(u)?VE(u):wg(e)?i(e):typeof e=="boolean"?e+"":"-"}var nx=["a","b","c","d","e","f","g"],Gv=function(e,t){return"{"+e+(t??"")+"}"};function UE(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Lu(e,t){return t=t||"transparent",Te(e)?e:Ie(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function ix(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Wf=O,Pq=["left","right","top","bottom","width","height"],Uc=[["width","left","right"],["height","top","bottom"]];function S0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),f=t.childAt(u+1),d=f&&f.getBoundingRect(),h,v;if(e==="horizontal"){var p=c.width+(d?-d.x+c.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=c.height):s=Math.max(s,c.height)}else{var g=c.height+(d?-d.y+c.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Xl=S0;Rt(S0,"vertical");Rt(S0,"horizontal");function Ls(e,t,r){r=xh(r||0);var n=t.width,i=t.height,a=gt(e.left,n),o=gt(e.top,i),s=gt(e.right,n),l=gt(e.bottom,i),u=gt(e.width,n),c=gt(e.height,i),f=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(c)&&(c=i-l-f-o),h!=null&&(isNaN(u)&&isNaN(c)&&(h>n/i?u=n*.8:c=i*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-c-f),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-c/2-r[0];break;case"bottom":o=i-c-f;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(c)&&(c=i-f-o-(l||0));var v=new et(a+r[3],o+r[0],u,c);return v.margin=r,v}function Du(e){var t=e.layoutMode||e.constructor.layoutMode;return Ie(t)?t:t?{type:t}:null}function Ds(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(Uc[0],0),a=o(Uc[1],1);u(Uc[0],e,i),u(Uc[1],e,a);function o(c,f){var d={},h=0,v={},p=0,g=2;if(Wf(c,function(_){v[_]=e[_]}),Wf(c,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[f])return l(t,c[1])?v[c[2]]=null:l(t,c[2])&&(v[c[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return ic(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(rr);L2(Ws,rr);ch(Ws);mq(Ws);yq(Ws,Iq);function Iq(e){var t=[];return O(Ws.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Re(t,function(r){return Gn(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const xt=Ws;var jE="";typeof navigator<"u"&&(jE=navigator.platform||"");var zo="rgba(0, 0, 0, 0.2)";const Oq={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zo,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zo,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zo,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zo,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zo,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zo,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:jE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var YE=Ue(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),dn="original",Lr="arrayRows",In="objectRows",ti="keyedColumns",Ji="typedArray",qE="unknown",pi="column",Vs="row",Ut={Must:1,Might:2,Not:3},KE=Et();function Rq(e){KE(e).datasetMap=Ue()}function kq(e,t,r){var n={},i=C0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=KE(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,c,f;e=e.slice(),O(e,function(p,g){var m=Ie(p)?p:e[g]={name:p};m.type==="ordinal"&&c==null&&(c=g,f=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:f,valueWayDim:0});O(e,function(p,g){var m=p.name,y=v(p);if(c==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(c===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function zq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=o==null||!n?r:Hq(n,o);if(c=c||r,!(!c||!c.length)){var f=c[l];return i&&(u[i]=f),s.paletteIdx=(l+1)%c.length,f}}function Wq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var jc,ol,ox,sx="\0_ec_inner",Vq=1,QE=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new rr(a),this._locale=new rr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=cx(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,cx(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?ox(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&O(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ue(),u=n&&n.replaceMergeMainTypeMap;Rq(this),O(r,function(f,d){f!=null&&(xt.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Qe(f):st(i[d],f,!0))}),u&&u.each(function(f,d){xt.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),xt.topologicalTravel(s,xt.getAllClassMainTypes(),c,this);function c(f){var d=$q(this,f,cr(r[f])),h=a.get(f),v=h?u&&u.get(f)?"replaceMerge":"normalMerge":"replaceAll",p=Tj(h,d,v);Ij(p,f,xt),i[f]=null,a.set(f,null),o.set(f,0);var g=[],m=[],y=0,_;O(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=f==="series",M=xt.getClass(f,b.keyInfo.subType,!C);if(!M)return;if(f==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var P=se({componentIndex:x},b.keyInfo);w=new M(S,this,this,P),se(w,P),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[f]=g,a.set(f,m),o.set(f,y),f==="series"&&jc(this)}this._seriesIndices||jc(this)},t.prototype.getOption=function(){var r=Qe(this.option);return O(r,function(n,i){if(xt.hasClass(i)){for(var a=cr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Tu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[sx],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function eK(e,t){return e.join(",")===t.join(",")}const tK=Xq;var hn=O,Iu=Ie,fx=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function jv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=fx.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=_j(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var Ch=function(){function e(t){this.data=t.data||(t.sourceFormat===ti?{}:[]),this.sourceFormat=t.sourceFormat||qE,this.seriesLayoutBy=t.seriesLayoutBy||pi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};yx=(t={},t[Lr+"_"+pi]={pure:!0,appendData:a},t[Lr+"_"+Vs]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[In]={pure:!0,appendData:a},t[ti]={pure:!0,appendData:function(o){var s=this._data;O(o,function(l,u){for(var c=s[u]||(s[u]=[]),f=0;f<(l||[]).length;f++)c.push(l[f])})}},t[dn]={appendData:a},t[Ji]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Is(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function Sx(e){var t,r;return Ie(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function Zl(e){return new _K(e)}var _K=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function c(y){return!(y>=1)&&(y=1),y}var f;(this._dirty||a==="reset")&&(this._dirty=!1,f=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(f||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),wK=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Vf(t,r)},e}();function xK(e,t){var r=new wK,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==pi&&br(o);var s=[],l={},u=e.dimensionsDefine;if(u)O(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ps(l,m)&&br(_),l[m]=y}});else for(var c=0;c65535?LK:DK}function Wo(){return[1/0,-1/0]}function IK(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function Mx(e,t,r,n,i){var a=fP[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Re(o,function(y){return y.property}),c=0;cm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,c=0,f=this.count();c=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=c))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=f&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],x=t[i[1]][1],m=0;m=f&&y<=d||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=f&&y<=d||isNaN(y))&&(l[u++]=S)}else for(var m=0;mt[P][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),c,f,d,h=new(ll(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vc&&(c=f,d=b)}A>0&&Ac-v&&(l=c-v,s.length=l);for(var p=0;pf[1]&&(f[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=f)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Vf(r[a],this._dimensions[a])}Kv={arrayRows:t,objectRows:function(r,n,i,a){return Vf(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Vf(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),OK=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(Yc(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,a=[c._getVersionSign()]}else s=o.get("data",!0),l=zr(s)?Ji:dn,a=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(f.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(f.sourceHeader,d.sourceHeader),p=qe(f.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[rm(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[rm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&Ax(a)}var o,s=[],l=[];return O(t,function(u){u.prepareSource();var c=u.getSource(i||0),f="";i!=null&&!c&&Ax(f),s.push(c),l.push(u._getVersionSign())}),n?o=EK(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[fK(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function gt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Te(e)?pj(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function kt(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),wP),e=(+e).toFixed(t),r?e:+e}function hi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return gj(e)}function gj(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function mj(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function yj(e,t){var r=oa(e,function(h,v){return h+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Re(e,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=Re(i,function(h){return Math.floor(h)}),s=oa(o,function(h,v){return h+v},0),l=Re(i,function(h,v){return h-o[v]});su&&(u=l[f],c=f);++o[c],l[c]=0,++s}return Re(o,function(h){return h/n})}function _j(e,t){var r=Math.max(hi(e),hi(t)),n=e+t;return r>wP?n:kt(n,r)}function SP(e){var t=Math.PI*2;return(e%t+t)%t}function md(e){return e>-cw&&e=10&&t++,t}function xP(e,t){var r=e0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function yd(e){var t=parseFloat(e);return t==e&&(t!==0||!Te(e)||e.indexOf("x")<=0)?t:NaN}function Sj(e){return!isNaN(yd(e))}function CP(){return Math.round(Math.random()*9)}function TP(e,t){return t===0?e:TP(t,e%t)}function fw(e,t){return e==null?t:t==null?e:e*t/TP(e,t)}function br(e){throw new Error(e)}function dw(e,t,r){return(t-e)*r+e}var MP="series\0",xj="\0_ec_\0";function cr(e){return e instanceof Array?e:e==null?[]:[e]}function Hg(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var jj=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],Yj=Mu(jj),qj=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return Yj(this,t,r)},e}(),zg=new tc(50);function Kj(e){if(typeof e=="string"){var t=zg.get(e);return t&&t.image}else return e}function DP(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=zg.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!fh(t)&&a.pending.push(o)):(t=Mo.loadImage(e,vw,vw),t.__zrImageSrc=e,zg.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function vw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=$r(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function OP(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=$r(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?Zj(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=$r(e,n)}return e===""&&(e=t.placeholder),e}function Zj(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var v=Math.floor(h/s);f=f.slice(0,v)}if(e&&a&&c!=null)for(var p=IP(c,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&Mv(r,e.substring(s,u),t,o),Mv(r,l[2],t,o,l[1]),s=Tv.lastIndex}si){S>0?(y.tokens=y.tokens.slice(0,S),g(y,b,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break e}var T=x.width,D=T==null||T==="auto";if(typeof T=="string"&&T.charAt(T.length-1)==="%")w.percentWidth=T,c.push(w),w.contentWidth=$r(w.text,E);else{if(D){var N=x.backgroundColor,H=N&&N.image;H&&(H=Kj(H),fh(H)&&(w.width=Math.max(w.width,H.width*A/H.height)))}var $=v&&n!=null?n-b:null;$!=null&&$0&&v+n.accumWidth>n.width&&(c=t.split(` +`),u=!0),n.accumWidth=v}else{var p=RP(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,f=p.linesWidths,c=p.lines}}else c=t.split(` +`);for(var g=0;g=33&&t<=383}var nY=oa(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function iY(e){return rY(e)?!!nY[e]:!0}function RP(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,c=0,f=0;fr:i+c+h>r){c?(s||l)&&(v?(s||(s=l,l="",u=0,c=u),a.push(s),o.push(c-u),l+=d,u+=h,s="",c=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(c),s=d,c=h)):v?(a.push(l),o.push(u),l=d,u=h):(a.push(d),o.push(h));continue}c+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(c)),a.length===1&&(c+=i),{accumWidth:c,lines:a,linesWidths:o}}var Wg="__zr_style_"+Math.round(Math.random()*10),lo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},dh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};lo[Wg]=!0;var gw=["z","z2","invisible"],aY=["invisible"],oY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Tt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Nc[0]=Lv(i)*r+e,Nc[1]=Ev(i)*n+t,Fc[0]=Lv(a)*r+e,Fc[1]=Ev(a)*n+t,u(s,Nc,Fc),c(l,Nc,Fc),i=i%Ca,i<0&&(i=i+Ca),a=a%Ca,a<0&&(a=a+Ca),i>a&&!o?a+=Ca:ii&&(Bc[0]=Lv(h)*r+e,Bc[1]=Ev(h)*n+t,u(s,Bc,s),c(l,Bc,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ta=[],Ma=[],Rn=[],Oi=[],kn=[],Nn=[],Dv=Math.min,Iv=Math.max,Aa=Math.cos,Pa=Math.sin,oi=Math.abs,Vg=Math.PI,zi=Vg*2,Ov=typeof Float32Array<"u",nl=[];function Rv(e){var t=Math.round(e/Vg*1e8)/1e8;return t%2*Vg}function fY(e,t){var r=Rv(e[0]);r<0&&(r+=zi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=zi?i=r+zi:t&&r-i>=zi?i=r-zi:!t&&r>i?i=r+(zi-Rv(r-i)):t&&r0&&(this._ux=oi(n/pd/t)||0,this._uy=oi(n/pd/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=oi(t-this._xi),i=oi(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),nl[0]=i,nl[1]=a,fY(nl,o),i=nl[0],a=nl[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Aa(a)*n+t,this._yi=Pa(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Ov&&(this.data=new Float32Array(r));for(var n=0;nc.length&&(this._expandData(),c=this.data);for(var f=0;f0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Rn[0]=Rn[1]=kn[0]=kn[1]=Number.MAX_VALUE,Oi[0]=Oi[1]=Nn[0]=Nn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||oi(_)>i||d===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case at.C:{var b=t[d++],S=t[d++],g=t[d++],m=t[d++],w=t[d++],x=t[d++];p=L9(a,o,b,S,g,m,w,x,10),a=w,o=x;break}case at.Q:{var b=t[d++],S=t[d++],g=t[d++],m=t[d++];p=I9(a,o,b,S,g,m,10),a=g,o=m;break}case at.A:var C=t[d++],M=t[d++],E=t[d++],A=t[d++],T=t[d++],D=t[d++],N=D+T;d+=1,t[d++],v&&(s=Aa(T)*E+C,l=Pa(T)*A+M),p=Iv(E,A)*Dv(zi,Math.abs(D)),a=Aa(N)*E+C,o=Pa(N)*A+M;break;case at.R:{s=a=t[d++],l=o=t[d++];var H=t[d++],$=t[d++];p=H*2+$*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[f++]=p,c+=p)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,c,f,d,h=r<1,v,p,g=0,m=0,y,_=0,b,S;if(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;e:for(var w=0;w0&&(t.lineTo(b,S),_=0),x){case at.M:s=u=n[w++],l=c=n[w++],t.moveTo(u,c);break;case at.L:{f=n[w++],d=n[w++];var M=oi(f-u),E=oi(d-c);if(M>i||E>a){if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+f*T,c*(1-T)+d*T);break e}g+=A}t.lineTo(f,d),u=f,c=d,_=0}else{var D=M*M+E*E;D>_&&(b=f,S=d,_=D)}break}case at.C:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++],F=n[w++],R=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;dd(u,N,$,F,T,Ta),dd(c,H,G,R,T,Ma),t.bezierCurveTo(Ta[1],Ma[1],Ta[2],Ma[2],Ta[3],Ma[3]);break e}g+=A}t.bezierCurveTo(N,H,$,G,F,R),u=F,c=R;break}case at.Q:{var N=n[w++],H=n[w++],$=n[w++],G=n[w++];if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;hd(u,N,$,T,Ta),hd(c,H,G,T,Ma),t.quadraticCurveTo(Ta[1],Ma[1],Ta[2],Ma[2]);break e}g+=A}t.quadraticCurveTo(N,H,$,G),u=$,c=G;break}case at.A:var j=n[w++],re=n[w++],oe=n[w++],ye=n[w++],Ae=n[w++],V=n[w++],Q=n[w++],W=!n[w++],q=oe>ye?oe:ye,le=oi(oe-ye)>.001,de=Ae+V,J=!1;if(h){var A=v[m++];g+A>y&&(de=Ae+V*(y-g)/A,J=!0),g+=A}if(le&&t.ellipse?t.ellipse(j,re,oe,ye,Q,Ae,de,W):t.arc(j,re,q,Ae,de,W),J)break e;C&&(s=Aa(Ae)*oe+j,l=Pa(Ae)*ye+re),u=Aa(de)*oe+j,c=Pa(de)*ye+re;break;case at.R:s=u=n[w],l=c=n[w+1],f=n[w++],d=n[w++];var L=n[w++],I=n[w++];if(h){var A=v[m++];if(g+A>y){var z=y-g;t.moveTo(f,d),t.lineTo(f+Dv(z,L),d),z-=L,z>0&&t.lineTo(f+L,d+Dv(z,I)),z-=I,z>0&&t.lineTo(f+Iv(L-z,0),d+I),z-=L,z>0&&t.lineTo(f,d+Iv(I-z,0));break e}g+=A}t.rect(f,d,L,I);break;case at.Z:if(h){var A=v[m++];if(g+A>y){var T=(y-g)/A;t.lineTo(u*(1-T)+s*T,c*(1-T)+l*T);break e}g+=A}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();const _o=dY;function Fo(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+f&&c>n+f&&c>a+f&&c>s+f||ce+f&&u>r+f&&u>i+f&&u>o+f||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||c+ui&&(i+=il);var d=Math.atan2(l,s);return d<0&&(d+=il),d>=n&&d<=i||d+il>=n&&d+il<=i}function Ea(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ri=_o.CMD,La=Math.PI*2,gY=1e-4;function mY(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&yY(),h=jt(t,n,a,s,Kr[0]),d>1&&(v=jt(t,n,a,s,Kr[1]))),d===2?gt&&s>n&&s>a||s=0&&u<=1){for(var c=0,f=Jt(t,n,a,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);or[0]=-l,or[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=La-1e-4){n=0,i=La;var c=a?1:-1;return o>=or[0]+e&&o<=or[1]+e?c:0}if(n>i){var f=n;n=i,i=f}n<0&&(n+=La,i+=La);for(var d=0,h=0;h<2;h++){var v=or[h];if(v+e>o){var p=Math.atan2(s,v),c=a?1:-1;p<0&&(p=La+p),(p>=n&&p<=i||p+La>=n&&p+La<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Ea(l,u,c,f,n,i))),g&&(l=a[v],u=a[v+1],c=l,f=u),p){case Ri.M:c=a[v++],f=a[v++],l=c,u=f;break;case Ri.L:if(r){if(Fo(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Ea(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.C:if(r){if(hY(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=_Y(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.Q:if(r){if(vY(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=bY(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ri.A:var m=a[v++],y=a[v++],_=a[v++],b=a[v++],S=a[v++],w=a[v++];v+=1;var x=!!(1-a[v++]);d=Math.cos(S)*_+m,h=Math.sin(S)*b+y,g?(c=d,f=h):s+=Ea(l,u,d,h,n,i);var C=(n-m)*b/_+m;if(r){if(pY(m,y,b,S,S+w,x,t,C,i))return!0}else s+=wY(m,y,b,S,S+w,x,C,i);l=Math.cos(S+w)*_+m,u=Math.sin(S+w)*b+y;break;case Ri.R:c=l=a[v++],f=u=a[v++];var M=a[v++],E=a[v++];if(d=c+M,h=f+E,r){if(Fo(c,f,d,f,t,n,i)||Fo(d,f,d,h,t,n,i)||Fo(d,h,c,h,t,n,i)||Fo(c,h,c,f,t,n,i))return!0}else s+=Ea(d,f,d,h,n,i),s+=Ea(c,h,c,f,n,i);break;case Ri.Z:if(r){if(Fo(l,u,c,f,t,n,i))return!0}else s+=Ea(l,u,c,f,n,i);l=c,u=f;break}}return!r&&!mY(u,f)&&(s+=Ea(l,u,c,f,n,i)||0),s!==0}function SY(e,t,r){return kP(e,0,!1,t,r)}function xY(e,t,r,n){return kP(e,t,!0,r,n)}var NP=dt({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},lo),CY={style:dt({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},dh.style)},kv=Cu.concat(["invisible","culling","z","z2","zlevel","parent"]),TY=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Fg:n>.2?rj:Bg}else if(r)return Bg}return Fg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Te(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=vd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Ko)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),xY(s,l/u,r,n)))return!0}if(this.hasFill())return SY(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Ko,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:se(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Ko)},t.prototype.createStyle=function(r){return sh(NP,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=se({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=se({},i.shape),se(u,n.shape)):(u=se({},a?this.shape:i.shape),se(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=se({},this.shape);for(var c={},f=Tt(u),d=0;d0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return sh(MY,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=Zy(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(ac);FP.prototype.type="tspan";const Gg=FP;var AY=dt({x:0,y:0},lo),PY={style:dt({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},dh.style)};function EY(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var BP=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return sh(AY,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=EY(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return PY},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new et(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(ac);BP.prototype.type="image";const zs=BP;function LY(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,c;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=c=o:o instanceof Array?o.length===1?s=l=u=c=o[0]:o.length===2?(s=u=o[0],l=c=o[1]):o.length===3?(s=o[0],l=c=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],c=o[3]):s=l=u=c=0;var f;s+l>i&&(f=s+l,s*=i/f,l*=i/f),u+c>i&&(f=u+c,u*=i/f,c*=i/f),l+u>a&&(f=l+u,l*=a/f,u*=a/f),s+c>a&&(f=s+c,s*=a/f,c*=a/f),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+c,n+a),c!==0&&e.arc(r+c,n+a-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var rs=Math.round;function $P(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(rs(n*2)===rs(i*2)&&(e.x1=e.x2=eo(n,s,!0)),rs(a*2)===rs(o*2)&&(e.y1=e.y2=eo(a,s,!0))),e}}function HP(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=eo(n,s,!0),e.y=eo(i,s,!0),e.width=Math.max(eo(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(eo(i+o,s,!1)-e.y,o===0?0:1)),e}}function eo(e,t,r){if(!t)return e;var n=rs(e*2);return(n+rs(t))%2===0?n/2:(n+(r?1:-1))/2}var DY=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),IY={},zP=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new DY},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=HP(IY,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?LY(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(ht);zP.prototype.type="rect";const Ht=zP;var ww={fill:"#000"},Sw=2,OY={style:dt({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},dh.style)},WP=function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=ww,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,T=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),D=o.calculatedLineHeight,N=0;N=0&&(N=w[D],N.align==="right");)this._placeToken(N,r,C,m,T,"right",_),M-=N.width,T-=N.width,D--;for(A+=(a-(A-g)-(y-T)-M)/2;E<=D;)N=w[E],this._placeToken(N,r,C,m,A+N.width/2,"center",_),A+=N.width,E++;m+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,f=a+i/2;c==="top"?f=a+r.height/2:c==="bottom"&&(f=a+i-r.height/2);var d=!r.isLineHolder&&Nv(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,f-r.height/2,r.width,r.height);var h=!!u.backgroundColor,v=r.textPadding;v&&(o=Pw(o,s,v),f-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(Gg),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,b=Aw("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),S=Mw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=Sw,m.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=f,w&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=r.font||yo,g.opacity=zl(u.opacity,n.opacity,1),Cw(g,u),S&&(g.lineWidth=zl(u.lineWidth,n.lineWidth,_),g.lineDash=qe(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=S),b&&(g.fill=b);var x=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new et(xl(g.x,x,g.textAlign),Xo(g.y,C,g.textBaseline),x,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,c=r.borderColor,f=l&&l.image,d=l&&!f,h=r.borderRadius,v=this,p,g;if(d||r.lineHeight||u&&c){p=this._getOrCreateChild(Ht),p.useStyle(p.createStyle()),p.style.fill=null;var m=p.shape;m.x=i,m.y=a,m.width=o,m.height=s,m.r=h,p.dirtyShape()}if(d){var y=p.style;y.fill=l||null,y.fillOpacity=qe(r.fillOpacity,1)}else if(f){g=this._getOrCreateChild(zs),g.onload=function(){v.dirtyStyle()};var _=g.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&c){var y=p.style;y.lineWidth=u,y.stroke=c,y.strokeOpacity=qe(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||g).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=zl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return FY(r)&&(n=[r.fontStyle,r.fontWeight,NY(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Vn(n)||r.textFont||r.font},t}(ac),RY={left:!0,right:1,center:1},kY={top:1,bottom:1,middle:1},xw=["fontStyle","fontWeight","fontSize","fontFamily"];function NY(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?zy+"px":e+"px"}function Cw(e,t){for(var r=0;r=0,a=!1;if(e instanceof ht){var o=VP(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Bo(s)||Bo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=se({},n),u=se({},u),u.fill=s):!Bo(u.fill)&&Bo(s)?(a=!0,n=se({},n),u=se({},u),u.fill=Ow(s)):!Bo(u.stroke)&&Bo(l)&&(a||(n=se({},n),u=se({},u)),u.stroke=Ow(l)),n.style=u}}if(n&&n.z2==null){a||(n=se({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??HY)}return n}function jY(e,t,r){if(r&&r.z2==null){r=se({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??zY)}return r}function YY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:GY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=se({},r),o=se({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Fv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return UY(this,e,t,r);if(e==="blur")return YY(this,e,r);if(e==="select")return jY(this,e,r)}return r}function qY(e){e.stateProxy=Fv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Fv),r&&(r.stateProxy=Fv)}function kw(e,t){!ZP(e,t)&&!e.__highByOuter&&Ai(e,UP)}function Nw(e,t){!ZP(e,t)&&!e.__highByOuter&&Ai(e,jP)}function Ug(e,t){e.__highByOuter|=1<<(t||0),Ai(e,UP)}function jg(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ai(e,jP)}function KY(e){Ai(e,s0)}function qP(e){Ai(e,YP)}function KP(e){Ai(e,WY)}function XP(e){Ai(e,VY)}function ZP(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function QP(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=i0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){YP(u)}),s&&r.push(a)),o.isBlured=!1}),O(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function Yg(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,c){for(var f=0;f0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function Kg(e,t,r){t2(e,!0),Ai(e,qY),r7(e,t,r)}function t7(e){t2(e,!1)}function JP(e,t,r,n){n?t7(e):Kg(e,t,r)}function r7(e,t,r){var n=ft(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Bw=["emphasis","blur","select"],n7={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function e2(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Bv(v),s*=Bv(v));var p=(i===a?-1:1)*Bv((o*o*(s*s)-o*o*(h*h)-s*s*(d*d))/(o*o*(h*h)+s*s*(d*d)))||0,g=p*o*h/s,m=p*-s*d/o,y=(e+r)/2+Hc(f)*g-$c(f)*m,_=(t+n)/2+$c(f)*g+Hc(f)*m,b=Ww([1,0],[(d-g)/o,(h-m)/s]),S=[(d-g)/o,(h-m)/s],w=[(-1*d-g)/o,(-1*h-m)/s],x=Ww(S,w);if(Qg(S,w)<=-1&&(x=al),Qg(S,w)>=1&&(x=0),x<0){var C=Math.round(x/al*1e6)/1e6;x=al*2+C%2*al}c.addData(u,y,_,o,s,b,x,f,a)}var u7=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,c7=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function f7(e){var t=new _o;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=_o.CMD,l=e.match(u7);if(!l)return t;for(var u=0;uN*N+H*H&&(C=E,M=A),{cx:C,cy:M,x0:-c,y0:-f,x1:C*(i/S-1),y1:M*(i/S-1)}}function _7(e){var t;if(ge(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function b7(e,t){var r,n=Cl(t.r,0),i=Cl(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,f=t.cy,d=!!t.clockwise,h=Gw(u-l),v=h>$v&&h%$v;if(v>gn&&(h=v),!(n>gn))e.moveTo(c,f);else if(h>$v-gn)e.moveTo(c+n*Ho(l),f+n*Da(l)),e.arc(c,f,n,l,u,!d),i>gn&&(e.moveTo(c+i*Ho(u),f+i*Da(u)),e.arc(c,f,i,u,l,d));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,b=void 0,S=void 0,w=void 0,x=void 0,C=void 0,M=void 0,E=void 0,A=void 0,T=void 0,D=void 0,N=void 0,H=n*Ho(l),$=n*Da(l),G=i*Ho(u),F=i*Da(u),R=h>gn;if(R){var j=t.cornerRadius;j&&(r=_7(j),p=r[0],g=r[1],m=r[2],y=r[3]);var re=Gw(n-i)/2;if(_=Fn(re,m),b=Fn(re,y),S=Fn(re,p),w=Fn(re,g),M=x=Cl(_,b),E=C=Cl(S,w),(x>gn||C>gn)&&(A=n*Ho(u),T=n*Da(u),D=i*Ho(l),N=i*Da(l),hgn){var le=Fn(m,M),de=Fn(y,M),J=zc(D,N,H,$,n,le,d),L=zc(A,T,G,F,n,de,d);e.moveTo(c+J.cx+J.x0,f+J.cy+J.y0),M0&&e.arc(c+J.cx,f+J.cy,le,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,n,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),!d),de>0&&e.arc(c+L.cx,f+L.cy,de,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.moveTo(c+H,f+$),e.arc(c,f,n,l,u,!d);if(!(i>gn)||!R)e.lineTo(c+G,f+F);else if(E>gn){var le=Fn(p,E),de=Fn(g,E),J=zc(G,F,A,T,i,-de,d),L=zc(H,$,D,N,i,-le,d);e.lineTo(c+J.cx+J.x0,f+J.cy+J.y0),E0&&e.arc(c+J.cx,f+J.cy,de,Zt(J.y0,J.x0),Zt(J.y1,J.x1),!d),e.arc(c,f,i,Zt(J.cy+J.y1,J.cx+J.x1),Zt(L.cy+L.y1,L.cx+L.x1),d),le>0&&e.arc(c+L.cx,f+L.cy,le,Zt(L.y1,L.x1),Zt(L.y0,L.x0),!d))}else e.lineTo(c+G,f+F),e.arc(c,f,i,u,l,d)}e.closePath()}}}var w7=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),u2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new w7},t.prototype.buildPath=function(r,n){b7(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(ht);u2.prototype.type="sector";const Ao=u2;var S7=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),c2=function(e){pe(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new S7},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(ht);c2.prototype.type="ring";const f2=c2;function x7(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,c,f;if(n){c=[1/0,1/0],f=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(n){var a=x7(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],c=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,f=i.length;sOa[1]){if(s=!1,a)return s;var c=Math.abs(Oa[0]-Ia[1]),f=Math.abs(Ia[0]-Oa[1]);Math.min(c,f)>i.len()&&(c0){var f=c.duration,d=c.delay,h=c.easing,v={duration:f,delay:d||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Er(e,t,r,n,i,a){f0("update",e,t,r,n,i,a)}function Hr(e,t,r,n,i,a){f0("enter",e,t,r,n,i,a)}function fs(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Yw(e){return!e.isGroup}function Q7(e){return e.shape!=null}function M2(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Yw(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return Q7(o)&&(s.shape=se({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Yw(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Er(o,l,r,ft(o).dataIndex)}}})}function J7(e,t){return Re(e,function(r){var n=r[0];n=Sd(n,t.x),n=xd(n,t.x+t.width);var i=r[1];return i=Sd(i,t.y),i=xd(i,t.y+t.height),[n,i]})}function eq(e,t){var r=Sd(e.x,t.x),n=xd(e.x+e.width,t.x+t.width),i=Sd(e.y,t.y),a=xd(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function v0(e,t,r){var n=se({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),dt(i,r),new zs(n)):d0(e.replace("path://",""),n,r,"center")}function tq(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=Hv(h,v,c,f)/d;return!(g<0||g>1)}function Hv(e,t,r,n){return e*n-r*t}function rq(e){return e<=1e-6&&e>=-1e-6}function p0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Te(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&O(Tt(l),function(c){Es(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=ft(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:dt({content:n,formatterParams:s},i)}}function qw(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function g0(e,t){if(e)if(ge(e))for(var r=0;r=0&&s.push(l)}),s}}function I2(e,t){return st(st({},e,!0),t,!0)}const _q={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},bq={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Cd="ZH",y0="EN",Pu=y0,zf={},_0={},O2=Ge.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Cd)>-1?Cd:Pu}():Pu;function R2(e,t){e=e.toUpperCase(),_0[e]=new rr(t),zf[e]=t}function wq(e){if(Te(e)){var t=zf[e.toUpperCase()]||{};return e===Cd||e===y0?Qe(t):st(Qe(t),Qe(zf[Pu]),!1)}else return st(Qe(e),Qe(zf[Pu]),!1)}function Sq(e){return _0[e]}function xq(){return _0[Pu]}R2(y0,_q);R2(Cd,bq);var b0=1e3,w0=b0*60,Kl=w0*60,en=Kl*24,eS=en*365,Tl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Gc="{yyyy}-{MM}-{dd}",tS={year:"{yyyy}",month:"{yyyy}-{MM}",day:Gc,hour:Gc+" "+Tl.hour,minute:Gc+" "+Tl.minute,second:Gc+" "+Tl.second,millisecond:Tl.none},Vv=["year","month","day","hour","minute","second","millisecond"],k2=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ra(e,t){return e+="","0000".substr(0,t-e.length)+e}function ds(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Cq(e){return e===ds(e)}function Tq(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function mh(e,t,r,n){var i=wi(e),a=i[S0(r)](),o=i[hs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[yh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),c=i[Eu(r)](),f=(c-1)%12+1,d=i[_h(r)](),h=i[bh(r)](),v=i[wh(r)](),p=n instanceof rr?n:Sq(n||O2)||xq(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),b=g.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,m[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Ra(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Ra(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ra(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,Ra(f+"",2)).replace(/{h}/g,f+"").replace(/{mm}/g,Ra(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Ra(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Ra(v,3)).replace(/{S}/g,v+"")}function Mq(e,t,r,n,i){var a=null;if(Te(r))a=r;else if(Ve(r))a=r(e.value,t,{level:e.level});else{var o=se({},Tl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ge(a)){var f=e.level==null?0:e.level>=0?e.level:a.length+e.level;f=Math.min(f,a.length-1),a=a[f]}}return mh(new Date(e.value),a,i,n)}function N2(e,t){var r=wi(e),n=r[hs(t)]()+1,i=r[yh(t)](),a=r[Eu(t)](),o=r[_h(t)](),s=r[bh(t)](),l=r[wh(t)](),u=l===0,c=u&&s===0,f=c&&o===0,d=f&&a===0,h=d&&i===1,v=h&&n===1;return v?"year":h?"month":d?"day":f?"hour":c?"minute":u?"second":"millisecond"}function rS(e,t,r){var n=bt(e)?wi(e):e;switch(t=t||N2(e,r),t){case"year":return n[S0(r)]();case"half-year":return n[hs(r)]()>=6?1:0;case"quarter":return Math.floor((n[hs(r)]()+1)/4);case"month":return n[hs(r)]();case"day":return n[yh(r)]();case"half-day":return n[Eu(r)]()/24;case"hour":return n[Eu(r)]();case"minute":return n[_h(r)]();case"second":return n[bh(r)]();case"millisecond":return n[wh(r)]()}}function S0(e){return e?"getUTCFullYear":"getFullYear"}function hs(e){return e?"getUTCMonth":"getMonth"}function yh(e){return e?"getUTCDate":"getDate"}function Eu(e){return e?"getUTCHours":"getHours"}function _h(e){return e?"getUTCMinutes":"getMinutes"}function bh(e){return e?"getUTCSeconds":"getSeconds"}function wh(e){return e?"getUTCMilliseconds":"getMilliseconds"}function Aq(e){return e?"setUTCFullYear":"setFullYear"}function F2(e){return e?"setUTCMonth":"setMonth"}function B2(e){return e?"setUTCDate":"setDate"}function $2(e){return e?"setUTCHours":"setHours"}function H2(e){return e?"setUTCMinutes":"setMinutes"}function z2(e){return e?"setUTCSeconds":"setSeconds"}function W2(e){return e?"setUTCMilliseconds":"setMilliseconds"}function V2(e){if(!Sj(e))return Te(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function G2(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var Sh=jA;function tm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(c){return c&&Vn(c)?c:"-"}function a(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?wi(e):e;if(isNaN(+l)){if(s)return"-"}else return mh(l,n,r)}if(t==="ordinal")return wg(e)?i(e):bt(e)&&a(e)?e+"":"-";var u=yd(e);return a(u)?V2(u):wg(e)?i(e):typeof e=="boolean"?e+"":"-"}var nS=["a","b","c","d","e","f","g"],Gv=function(e,t){return"{"+e+(t??"")+"}"};function U2(e,t,r){ge(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Lu(e,t){return t=t||"transparent",Te(e)?e:Ie(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function iS(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Wf=O,Eq=["left","right","top","bottom","width","height"],Uc=[["width","left","right"],["height","top","bottom"]];function x0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),f=t.childAt(u+1),d=f&&f.getBoundingRect(),h,v;if(e==="horizontal"){var p=c.width+(d?-d.x+c.x:0);h=a+p,h>n||l.newline?(a=0,h=p,o+=s+r,s=c.height):s=Math.max(s,c.height)}else{var g=c.height+(d?-d.y+c.y:0);v=o+g,v>i||l.newline?(a+=s+r,o=0,v=g,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=h+r:o=v+r)})}var Xl=x0;Rt(x0,"vertical");Rt(x0,"horizontal");function Ls(e,t,r){r=Sh(r||0);var n=t.width,i=t.height,a=gt(e.left,n),o=gt(e.top,i),s=gt(e.right,n),l=gt(e.bottom,i),u=gt(e.width,n),c=gt(e.height,i),f=r[2]+r[0],d=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(c)&&(c=i-l-f-o),h!=null&&(isNaN(u)&&isNaN(c)&&(h>n/i?u=n*.8:c=i*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(a)&&(a=n-s-u-d),isNaN(o)&&(o=i-l-c-f),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-c/2-r[0];break;case"bottom":o=i-c-f;break}a=a||0,o=o||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(c)&&(c=i-f-o-(l||0));var v=new et(a+r[3],o+r[0],u,c);return v.margin=r,v}function Du(e){var t=e.layoutMode||e.constructor.layoutMode;return Ie(t)?t:t?{type:t}:null}function Ds(e,t,r){var n=r&&r.ignoreSize;!ge(n)&&(n=[n,n]);var i=o(Uc[0],0),a=o(Uc[1],1);u(Uc[0],e,i),u(Uc[1],e,a);function o(c,f){var d={},h=0,v={},p=0,g=2;if(Wf(c,function(_){v[_]=e[_]}),Wf(c,function(_){s(t,_)&&(d[_]=v[_]=t[_]),l(d,_)&&h++,l(v,_)&&p++}),n[f])return l(t,c[1])?v[c[2]]=null:l(t,c[2])&&(v[c[1]]=null),v;if(p===g||!h)return v;if(h>=g)return d;for(var m=0;m=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return ic(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(rr);LP(Ws,rr);ch(Ws);mq(Ws);yq(Ws,Iq);function Iq(e){var t=[];return O(Ws.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Re(t,function(r){return Gn(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const St=Ws;var j2="";typeof navigator<"u"&&(j2=navigator.platform||"");var zo="rgba(0, 0, 0, 0.2)";const Oq={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zo,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zo,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zo,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zo,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zo,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zo,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:j2.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var Y2=Ue(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),dn="original",Lr="arrayRows",In="objectRows",ti="keyedColumns",Ji="typedArray",q2="unknown",pi="column",Vs="row",Ut={Must:1,Might:2,Not:3},K2=Pt();function Rq(e){K2(e).datasetMap=Ue()}function kq(e,t,r){var n={},i=C0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=K2(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,c,f;e=e.slice(),O(e,function(p,g){var m=Ie(p)?p:e[g]={name:p};m.type==="ordinal"&&c==null&&(c=g,f=v(m)),n[m.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:f,valueWayDim:0});O(e,function(p,g){var m=p.name,y=v(p);if(c==null){var _=d.valueWayDim;h(n[m],_,y),h(o,_,y),d.valueWayDim+=y}else if(c===g)h(n[m],0,y),h(a,0,y);else{var _=d.categoryWayDim;h(n[m],_,y),h(o,_,y),d.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function zq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=o==null||!n?r:Hq(n,o);if(c=c||r,!(!c||!c.length)){var f=c[l];return i&&(u[i]=f),s.paletteIdx=(l+1)%c.length,f}}function Wq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var jc,ol,oS,sS="\0_ec_inner",Vq=1,Q2=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new rr(a),this._locale=new rr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=cS(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,cS(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?oS(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&O(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=Ue(),u=n&&n.replaceMergeMainTypeMap;Rq(this),O(r,function(f,d){f!=null&&(St.hasClass(d)?d&&(s.push(d),l.set(d,!0)):i[d]=i[d]==null?Qe(f):st(i[d],f,!0))}),u&&u.each(function(f,d){St.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),St.topologicalTravel(s,St.getAllClassMainTypes(),c,this);function c(f){var d=$q(this,f,cr(r[f])),h=a.get(f),v=h?u&&u.get(f)?"replaceMerge":"normalMerge":"replaceAll",p=Tj(h,d,v);Ij(p,f,St),i[f]=null,a.set(f,null),o.set(f,0);var g=[],m=[],y=0,_;O(p,function(b,S){var w=b.existing,x=b.newOption;if(!x)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=f==="series",M=St.getClass(f,b.keyInfo.subType,!C);if(!M)return;if(f==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(x,this),w.optionUpdated(x,!1);else{var E=se({componentIndex:S},b.keyInfo);w=new M(x,this,this,E),se(w,E),b.brandNew&&(w.__requireNewView=!0),w.init(x,this,this),w.optionUpdated(null,!0)}}w?(g.push(w.option),m.push(w),y++):(g.push(void 0),m.push(void 0))},this),i[f]=g,a.set(f,m),o.set(f,y),f==="series"&&jc(this)}this._seriesIndices||jc(this)},t.prototype.getOption=function(){var r=Qe(this.option);return O(r,function(n,i){if(St.hasClass(i)){for(var a=cr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Tu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[sS],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function eK(e,t){return e.join(",")===t.join(",")}const tK=Xq;var hn=O,Iu=Ie,fS=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function jv(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=fS.length;r=0;g--){var m=e[g];if(s||(v=m.data.rawIndexOf(m.stackedByDimension,h)),v>=0){var y=m.data.getByRawIndex(m.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&d>=0&&y>0||l==="samesign"&&d<=0&&y<0){d=_j(d,y),p=y;break}}}return n[0]=d,n[1]=p,n})})}var Ch=function(){function e(t){this.data=t.data||(t.sourceFormat===ti?{}:[]),this.sourceFormat=t.sourceFormat||q2,this.seriesLayoutBy=t.seriesLayoutBy||pi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=v,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};yS=(t={},t[Lr+"_"+pi]={pure:!0,appendData:a},t[Lr+"_"+Vs]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[In]={pure:!0,appendData:a},t[ti]={pure:!0,appendData:function(o){var s=this._data;O(o,function(l,u){for(var c=s[u]||(s[u]=[]),f=0;f<(l||[]).length;f++)c.push(l[f])})}},t[dn]={appendData:a},t[Ji]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[g])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Is(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function SS(e){var t,r;return Ie(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function Zl(e){return new _K(e)}var _K=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function c(y){return!(y>=1)&&(y=1),y}var f;(this._dirty||a==="reset")&&(this._dirty=!1,f=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(f||h1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),wK=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Vf(t,r)},e}();function SK(e,t){var r=new wK,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==pi&&br(o);var s=[],l={},u=e.dimensionsDefine;if(u)O(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Es(l,m)&&br(_),l[m]=y}});else for(var c=0;c65535?LK:DK}function Wo(){return[1/0,-1/0]}function IK(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function TS(e,t,r,n,i){var a=fE[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;ug[1]&&(g[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Re(o,function(y){return y.property}),c=0;cm[1]&&(m[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,c=0,f=this.count();c=0&&l<0)&&(s=v,l=h,u=0),h===l&&(o[u++]=c))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=f&&y<=d||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],b=t[i[1]][0],S=t[i[1]][1],m=0;m=f&&y<=d||isNaN(y))&&(w>=b&&w<=S||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var m=0;m=f&&y<=d||isNaN(y))&&(l[u++]=x)}else for(var m=0;mt[E][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(m))}return um[1]&&(m[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),c,f,d,h=new(ll(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var v=1;vc&&(c=f,d=b)}A>0&&Ac-v&&(l=c-v,s.length=l);for(var p=0;pf[1]&&(f[1]=m),d[h++]=y}return a._count=h,a._indices=d,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=f)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Vf(r[a],this._dimensions[a])}Kv={arrayRows:t,objectRows:function(r,n,i,a){return Vf(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Vf(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),OK=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(Yc(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,a=[c._getVersionSign()]}else s=o.get("data",!0),l=zr(s)?Ji:dn,a=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=qe(f.seriesLayoutBy,d.seriesLayoutBy)||null,v=qe(f.sourceHeader,d.sourceHeader),p=qe(f.dimensions,d.dimensions),g=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||p;i=g?[rm(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:p},l)]:[]}else{var m=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=m.get("source",!0);i=[rm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&MS(a)}var o,s=[],l=[];return O(t,function(u){u.prepareSource();var c=u.getSource(i||0),f="";i!=null&&!c&&MS(f),s.push(c),l.push(u._getVersionSign())}),n?o=PK(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[fK(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return O(e.blocks,function(i){var a=pP(i);a>=t&&(t=a+ +(n&&(!a||im(i)&&!i.noHeader)))}),t}return 0}function NK(e,t,r,n){var i=t.noHeader,a=BK(pP(t)),o=[],s=t.blocks||[];bi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ps(u,l)){var c=new bK(u[l],null);s.sort(function(v,p){return c.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}O(s,function(v,p){var g=t.valueFormatter,m=vP(v)(g?se(se({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var f=e.renderMode==="richText"?o.join(a.richText):am(o.join(""),i?r:a.html);if(i)return f;var d=tm(t.header,"ordinal",e.useUTC),h=hP(n,e.renderMode).nameStyle;return e.renderMode==="richText"?gP(e,d,h)+a.richText+f:am('
'+Xr(d)+"
"+f,r)}function FK(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Re(b,function(x,w){return tm(x,ge(h)?h[w]:h,u)})};if(!(a&&o)){var f=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":tm(l,"ordinal",u),h=t.valueType,v=o?[]:c(t.value),p=!s||!a,g=!s&&a,m=hP(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":f)+(a?"":gP(e,d,y))+(o?"":zK(e,v,p,g,_)):am((s?"":f)+(a?"":$K(d,!s,y))+(o?"":HK(v,p,g,_)),r)}}function Ex(e,t,r,n,i,a){if(e){var o=vP(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function BK(e){return{html:RK[e],richText:kK[e]}}function am(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function $K(e,t,r){var n=t?"margin-left:2px":"";return''+Xr(e)+""}function HK(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Re(e,function(o){return Xr(o)}).join("  ")+""}function gP(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function zK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function WK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Lu(n)}function mP(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var Xv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=C2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Eq({color:r,type:t,renderMode:n,markerId:i});return Te(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?O(r,function(a){return se(n,a)}):se(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function VK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=WK(t,r),c,f,d,h;if(o>1||l&&!o){var v=GK(s,t,r,a,u);c=v.inlineValues,f=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=c=Is(i,r,a[0]),f=p.type}else h=c=l?s[0]:s;var g=t0(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Ou("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Ou("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Vn(_),value:c,valueType:f})].concat(d||[])})}function GK(e,t,r,n,i){var a=t.getData(),o=oa(e,function(f,d,h){var v=a.getDimensionInfo(h);return f=f||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?O(n,function(f){c(Is(a,r,f),f)}):O(e,c);function c(f,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Ou("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:f,valueType:h.type})):(s.push(f),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var ki=Et();function qc(e,t){return e.getName(t)||e.getId(t)}var UK="__universalTransitionEnabled",Mh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Zl({count:YK,reset:qK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=ki(this).sourceManager=new OK(this);a.prepareSource();var o=this.getInitialData(r,i);Lx(o,this),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Du(this),a=i?Sh(r):{},o=this.subType;xt.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),Hg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Ds(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Du(this);i&&Ds(this.option,r,i);var a=ki(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);Lx(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,Px(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!zr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=T0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[qc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[UK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Ie(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return xt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(xt);Jn(Mh,yK);Jn(Mh,T0);L2(Mh,xt);function Px(e){var t=e.name;t0(e)||(e.name=jK(e)||t)}function jK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return O(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function YK(e){return e.model.getRawData().count()}function qK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),KK}function KK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function Lx(e,t){O(UU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Rt(XK,t))})}function XK(e,t){var r=om(e);return r&&r.setOutputEnd((t||this).count()),t}function om(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const wo=Mh;var D0=function(){function e(){this.group=new cn,this.uid=gh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();n0(D0);ch(D0);const xi=D0;function yP(){var e=Et();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var _P=Et(),ZK=yP(),I0=function(){function e(){this.group=new cn,this.uid=gh("viewChart"),this.renderTask=Zl({plan:QK,reset:JK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&Ix(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){g0(this.group,t)},e.markUpdateMethod=function(t,r){_P(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function Dx(e,t,r){e&&Xg(e)&&(t==="emphasis"?Ug:jg)(e,r)}function Ix(e,t,r){var n=nc(e,t),i=t&&t.highlightKey!=null?i7(t.highlightKey):null;n!=null?O(cr(n),function(a){Dx(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){Dx(a,r,i)})}n0(I0);ch(I0);function QK(e){return ZK(e.model)}function JK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&_P(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),eX[l]}var eX={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const co=I0;var Td="\0__throttleOriginMethod",Ox="\0__throttleRate",Rx="\0__throttleType";function O0(e,t,r){var n,i=0,a=0,o=null,s,l,u,c;t=t||0;function f(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?f():o=setTimeout(f,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){c=h},d}function bP(e,t,r,n){var i=e[t];if(i){var a=i[Td]||i,o=i[Rx],s=i[Ox];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=O0(a,r,n==="debounce"),i[Td]=a,i[Rx]=n,i[Ox]=r}return i}}function sm(e,t){var r=e[t];r&&r[Td]&&(r.clear&&r.clear(),e[t]=r[Td])}var kx=Et(),Nx={itemStyle:Mu(DE,!0),lineStyle:Mu(LE,!0)},tX={lineStyle:"stroke",itemStyle:"fill"};function wP(e,t){var r=e.visualStyleMapper||Nx[t];return r||(console.warn("Unknown style type '"+t+"'."),Nx.itemStyle)}function xP(e,t){var r=e.visualDrawType||tX[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var rX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=wP(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=xP(e,n),u=o[l],c=Ve(u)?u:null,f=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||f){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ve(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||Ve(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=se({},o);g[l]=c(p),h.setItemVisual(v,"style",g)}}}},ul=new rr,nX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=wP(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){ul.option=l[n];var u=i(ul),c=o.ensureUniqueItemVisual(s,"style");se(c,u),ul.option.decal&&(o.setItemVisual(s,"decal",ul.option.decal),ul.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},iX={performRawSeries:!0,overallReset:function(e){var t=Ue();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),kx(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=kx(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=xP(r,s);a.each(function(u){var c=a.getRawIndex(u);i[c]=u}),n.each(function(u){var c=i[u],f=a.getItemVisual(c,"colorFromPalette");if(f){var d=a.ensureUniqueItemVisual(c,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Kc=Math.PI;function aX(e,t){t=t||{},dt(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new cn,n=new Ht({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new dr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Ht({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new c0({shape:{startAngle:-Kc/2,endAngle:-Kc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Kc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Kc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),a.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var oX=function(){function e(t,r,n,i){this._stageTaskMap=Ue(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ue();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;O(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";bi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;O(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),f=c.seriesTaskMap,d=c.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else f&&f.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ue(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,i).each(c);function c(f){var d=f.uid,h=s.set(d,o&&o.get(d)||Zl({plan:fX,reset:dX,count:vX}));h.context={model:f,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(f,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||Zl({reset:sX});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ue(),u=t.seriesType,c=t.getTargetSeries,f=!0,d=!1,h="";bi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):c?c(n,i).each(v):(f=!1,O(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,Zl({reset:lX,onDirty:cX})));m.context={model:p,overallProgress:f},m.agent=o,m.__block=f,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ve(t)&&(t={overallReset:t,seriesType:pX(t)}),t.uid=gh("stageHandler"),r&&(t.visualType=r),t},e}();function sX(e){e.overallReset(e.ecModel,e.api,e.payload)}function lX(e){return e.overallProgress&&uX}function uX(){this.agent.dirty(),this.getDownstream().dirty()}function cX(){this.agent&&this.agent.dirty()}function fX(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function dX(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=cr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Re(t,function(r,n){return SP(n)}):hX}var hX=SP(0);function SP(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(n[u]=l,c=!0),c||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return c(l,o,"mainType")&&c(l,o,"subType")&&c(l,o,"index","componentIndex")&&c(l,o,"name")&&c(l,o,"id")&&c(u,a,"name")&&c(u,a,"dataIndex")&&c(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function c(f,d,h,v){return f[h]==null||d[v||h]===f[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),lm=["symbol","symbolSize","symbolRotate","symbolOffset"],Hx=lm.concat(["symbolKeepAspect"]),_X={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&to(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function cm(e,t,r){for(var n=t.type==="radial"?$X(e,t,r):BX(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:bt(e)?[e]:ge(e)?e:null}function EP(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&zX(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Re(r,function(a){return a/i}),n/=i)}return[r,n]}var WX=new _o(!0);function Ad(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function zx(e){return typeof e=="string"&&e!=="none"}function Ed(e){var t=e.fill;return t!=null&&t!=="none"}function Wx(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function Vx(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function fm(e,t,r){var n=D2(t.image,t.__image,r);if(fh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*jU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function VX(e,t,r,n){var i,a=Ad(r),o=Ed(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var c=t.path||WX,f=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=f?cm(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=f?cm(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=f||!t.__canvasFillPattern?fm(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(x=f||!t.__canvasStrokePattern?fm(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();c.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=EP(t),C=i[0],M=i[1]);var P=!0;(u||f&Ko)&&(c.setDPR(e.dpr),l?c.setContext(null):(c.setContext(e),P=!1),c.reset(),t.buildPath(c,t.shape,n),c.toStatic(),t.pathUpdated()),P&&c.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&Vx(e,r),o&&Wx(e,r)):(o&&Wx(e,r),a&&Vx(e,r))),C&&e.setLineDash([])}function GX(e,t,r){var n=t.__image=D2(r.image,t.__image,t,t.onload);if(!(!n||!fh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,f=o-u,d=s-c;e.drawImage(n,u,c,f,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function UX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||yo,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=EP(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Ad(r)&&e.strokeText(i,r.x,r.y),Ed(r)&&e.fillText(i,r.x,r.y)):(Ed(r)&&e.fillText(i,r.x,r.y),Ad(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var Gx=["shadowBlur","shadowOffsetX","shadowOffsetY"],Ux=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function PP(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){wr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?lo.opacity:o}(n||t.blend!==r.blend)&&(a||(wr(e,i),a=!0),e.globalCompositeOperation=t.blend||lo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Qt]){if(this._disposed){this.id;return}var a,o,s;if(Ie(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Qt]=!0,!this._model||n){var l=new tK(this._api),u=this._theme,c=this._model=new JE;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},vm);var f={seriesTransition:s,optionChanged:!0};if(i)this[gr]={silent:a,updateParams:f},this[Qt]=!1,this.getZr().wakeUp();else{try{Go(this),Ni.update.call(this,null,f)}catch(d){throw this[gr]=null,this[Qt]=!1,d}this._ssr||this._zr.flush(),this[gr]=null,this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ge.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ge.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return O(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;O(n,function(l){i.eachComponent({mainType:l},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(a.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return O(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(oS[i]){var l=s,u=s,c=-s,f=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();O(Jl,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Qe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),c=o(w.right,c),f=o(w.bottom,f),d.push({dom:x,left:w.left,top:w.top})}}),l*=h,u*=h,c*=h,f*=h;var v=c-l,p=f-u,g=Mo.createCanvas(),m=uw(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return O(d,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Ht({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),O(d,function(_){var b=new zs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return tp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return tp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Cv(i,r);return O(o,function(s,l){l.indexOf("Models")>=0&&O(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)a=a||!!c.containPoint(n);else if(l==="seriesModels"){var f=this._chartsMap[u.__viewId];f&&f.containPoint&&(a=a||f.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Cv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?wX(s,l,n):xX(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;O(mZ,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Al(s,function(v){var p=ft(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=se({},p.eventData),!0},!0),l){var c=l.componentType,f=l.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",f=l.seriesIndex);var d=c&&f!=null&&o.getComponent(c,f),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),O(Ql,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),O(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),CX(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&E2(this.getDom(),F0,"");var n=this,i=n._api,a=n._model;O(n._componentsViews,function(o){o.dispose(a,i)}),O(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Jl[n.id]},t.prototype.resize=function(r){if(!this[Qt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[gr]&&(a==null&&(a=this[gr].silent),i=!0,this[gr]=null),this[Qt]=!0;try{i&&Go(this),Ni.update.call(this,{type:"resize",animation:se({duration:0},r&&r.animation)})}catch(o){throw this[Qt]=!1,o}this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Ie(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!pm[r]){var i=pm[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=se({},r);return n.type=Ql[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Ie(n)||(n={silent:!!n}),!!Pd[r.type]&&this._model){if(this[Qt]){this._pendingActions.push(r);return}var i=n.silent;np.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ge.browser.weChat&&this._throttledZrFlush(),cl.call(this,i),fl.call(this,i)}},t.prototype.updateLabelLayout=function(){yn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Go=function(f){var d=f._scheduler;d.restorePipelines(f._model),d.prepareStageTasks(),ep(f,!0),ep(f,!1),d.plan()},ep=function(f,d){for(var h=f._model,v=f._scheduler,p=d?f._componentsViews:f._chartsViews,g=d?f._componentsMap:f._chartsMap,m=f._zr,y=f._api,_=0;_d.get("hoverLayerThreshold")&&!Ge.node&&!Ge.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=f._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(f,d){var h=f.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(f,d){if(!f.preventAutoZ){var h=f.get("z")||0,v=f.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(f,d,h,v){var p=f.getTextContent(),g=f.getTextGuideLine(),m=f.isGroup;if(m)for(var y=f.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(fs(m))return;if(m instanceof ht&&a7(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}iS=function(f){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return f._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return f._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Ug(v,p),Vr(f)},h.prototype.leaveEmphasis=function(v,p){jg(v,p),Vr(f)},h.prototype.enterBlur=function(v){KY(v),Vr(f)},h.prototype.leaveBlur=function(v){q2(v),Vr(f)},h.prototype.enterSelect=function(v){K2(v),Vr(f)},h.prototype.leaveSelect=function(v){X2(v),Vr(f)},h.prototype.getModel=function(){return f.getModel()},h.prototype.getViewOfComponentModel=function(v){return f.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return f.getViewOfSeriesModel(v)},h}(eP))(f)},GP=function(f){function d(h,v){for(var p=0;p=0)){sS.push(r);var a=MP.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function XP(e,t){pm[e]=t}function CZ(e,t,r){var n=rZ("registerMap");n&&n(e,t,r)}var TZ=AK;Po(k0,rX);Po(Ah,nX);Po(Ah,iX);Po(k0,_X);Po(Ah,bX);Po(BP,JX);qP(rP);KP(aZ,uK);XP("default",aX);Gs({type:uo,event:uo,update:uo},Tr);Gs({type:$f,event:$f,update:$f},Tr);Gs({type:jl,event:jl,update:jl},Tr);Gs({type:Hf,event:Hf,update:Hf},Tr);Gs({type:Yl,event:Yl,update:Yl},Tr);YP("light",gX);YP("dark",mX);function dl(e){return e==null?0:e.length||1}function lS(e){return e}var MZ=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||lS,this._newKeyGetter=i||lS,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var c=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(c,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(f===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(f===1&&d===1)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;s30}var hl=Ie,Fi=Re,kZ=typeof Int32Array>"u"?Array:Int32Array,NZ="e\0\0",uS=-1,FZ=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],BZ=["_approximateExtent"],cS,tf,vl,pl,op,rf,sp,$Z=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;QP(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},c=0;c=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===dn;if(l&&!i.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():hl(a)&&(a=se({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,hl(r)?se(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){hl(t)?se(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?se(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;$Y(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){O(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Fi(this.dimensions,this._getDimInfo,this),this.hostModel)),op(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ve(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Uy(arguments)))})},e.internalField=function(){cS=function(t){var r=t._invertedIndicesMap;O(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new kZ(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),i[r]=l}}}(),e}();const rL=$Z;function nL(e,t){A0(e)||(e=E0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ue(),a=[],o=zZ(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&tL(o),l=n===e.dimensionsDefine,u=l?eL(e):JP(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var f=Ue(c),d=new cP(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function zZ(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return O(t,function(a){var o;Ie(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function WZ(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var VZ=function(){function e(t){this.coordSysDims=[],this.axisMap=Ue(),this.categoryAxisMap=Ue(),this.coordSysName=t}return e}();function GZ(e){var t=e.get("coordinateSystem"),r=new VZ(t),n=UZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var UZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Cn).models[0],a=e.getReferringComponents("yAxis",Cn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Uo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Uo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Cn).models[0];t.coordSysDims=["single"],r.set("single",i),Uo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Cn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Uo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Uo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();O(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),c=o[l];r.set(c,u),Uo(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Uo(e){return e.get("type")==="category"}function jZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;YZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,f,d;if(O(a,function(y,_){Te(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!c&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(c=y))}),c&&!n&&!u&&(n=!0),c){f="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,v=c.type,p=0;O(a,function(y){y.coordDim===h&&p++});var g={name:f,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(f,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:f}}function YZ(e){return!QP(e.schema)}function iL(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function qZ(e,t){return iL(e,t)?e.getCalculationInfo("stackResultDimension"):t}function KZ(e,t){var r=e.get("coordinateSystem"),n=M0.get(r),i;return t&&t.coordSysDims&&(i=Re(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=LZ(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function XZ(e,t,r){var n,i;return r&&O(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function aL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=E0(e)):(i=n.getSource(),a=i.sourceFormat===dn);var o=GZ(t),s=KZ(t,o),l=r.useEncodeDefaulter,u=Ve(l)?l:l?Rt(kq,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},f=nL(i,c),d=XZ(f.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(f),v=jZ(t,{schema:f,store:h}),p=new rL(f,t);p.setCalculationInfo(v);var g=d!=null&&ZZ(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function ZZ(e){if(e.sourceFormat===dn){var t=QZ(e.data||[]);return!ge(rc(t))}}function QZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();ch(oL);const Ei=oL;var JZ=0,eQ=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++JZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Re(n,tQ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Te(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ue(this.categories))},e}();function tQ(e){return Ie(e)&&e.value!=null?e.value:e+""}const gm=eQ;function mm(e){return e.type==="interval"||e.type==="log"}function rQ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=S2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=sL(o),l=i.niceTickExtent=[kt(Math.ceil(e[0]/o)*o,s),kt(Math.floor(e[1]/o)*o,s)];return nQ(l,e),i}function lp(e){var t=Math.pow(10,e0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,kt(r*t)}function sL(e){return hi(e)+2}function fS(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function nQ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),fS(e,0,t),fS(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function Eh(e,t){return e>=t[0]&&e<=t[1]}function Ph(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function Lh(e,t){return e*(t[1]-t[0])+t[0]}var lL=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new gm({})),ge(i)&&(i=new gm({categories:Re(i,function(a){return Ie(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Te(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),Eh(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(Lh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Ei);Ei.registerClass(lL);const uL=lL;var Ba=kt,cL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return Eh(r,this._extent)},t.prototype.normalize=function(r){return Ph(r,this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=sL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var c=s.length?s[s.length-1].value:a[1];return i[1]>c&&(r?s.push({value:Ba(c+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function hL(e){var t=oQ(e),r=[];return O(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],c=Math.abs(o[1]-o[0]),f=a.scale.getExtent(),d=Math.abs(f[1]-f[0]);s=u?c/d*u:c}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=gt(n.get("barWidth"),s),p=gt(n.get("barMaxWidth"),s),g=gt(n.get("barMinWidth")||(pL(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:W0(a),stackId:z0(n)})}),sQ(r)}function sQ(e){var t={};O(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var c=n.barWidth;c&&!l[u].width&&(l[u].width=c,c=Math.min(s.remainedWidth,c),s.remainedWidth-=c);var f=n.barMaxWidth;f&&(l[u].maxWidth=f);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return O(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Tt(a).length;s=Math.max(35-l*4,15)+"%"}var u=gt(s,o),c=gt(n.gap,1),f=n.remainedWidth,d=n.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),O(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,f-=b+c*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,f-=b+c*b,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var v=0,p;O(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+c)}),p&&(v-=p.width*c);var g=-v/2;O(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+c)})}),r}function lQ(e,t,r){if(e&&t){var n=e[W0(t)];return n!=null&&r!=null?n[z0(r)]:n}}function uQ(e,t){var r=dL(e,t),n=hL(r);O(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=z0(i),u=n[W0(s)][l],c=u.offset,f=u.width;a.setLayout({bandWidth:u.bandWidth,offset:c,size:f})})}function cQ(e){return{seriesType:e,plan:yP(),reset:function(t){if(vL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),c=r.getCalculationInfo("stackResultDimension"),f=iL(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=fQ(i,a),v=pL(t),p=t.get("barMinHeight")||0,g=c&&r.getDimensionIndex(c),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&up(x*3),S=v&&l&&up(x*3),C=v&&up(x),M=n.master.getRect(),P=d?M.width:M.height,A,T=b.getStore(),D=0;(A=_.next())!=null;){var N=T.get(f?g:o,A),H=T.get(s,A),$=h,G=void 0;f&&(G=+N-T.get(o,A));var F=void 0,R=void 0,j=void 0,re=void 0;if(d){var oe=n.dataToPoint([N,H]);if(f){var ye=n.dataToPoint([G,H]);$=ye[0]}F=$,R=oe[1]+y,j=oe[0]-$,re=m,Math.abs(j)>>1;e[i][1]i&&(this._approxInterval=i);var s=nf.length,l=Math.min(dQ(nf,this._approxInterval,0,s),s-1);this._interval=nf[l][1],this._minLevelUnit=nf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return bt(r)?r:+wi(r)},t.prototype.contain=function(r){return Eh(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Ph(this.parse(r),this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.type="time",t}(sc),nf=[["second",b0],["minute",w0],["hour",Kl],["quarter-day",Kl*6],["half-day",Kl*12],["day",en*1.2],["half-week",en*3.5],["week",en*7],["month",en*31],["quarter",en*95],["half-year",ex/2],["year",ex]];function hQ(e,t,r,n){var i=wi(t),a=wi(r),o=function(v){return rx(i,v,n)===rx(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},c=function(){return u()&&o("hour")},f=function(){return c()&&o("minute")},d=function(){return f()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return h()}}function vQ(e,t){return e/=en,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function pQ(e){var t=30*en;return e/=t,e>6?6:e>3?3:e>2?2:1}function gQ(e){return e/=Kl,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function dS(e,t){return e/=t?w0:b0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function mQ(e){return S2(e,!0)}function yQ(e,t,r){var n=new Date(e);switch(ds(t)){case"year":case"month":n[FE(r)](0);case"day":n[BE(r)](1);case"hour":n[$E(r)](0);case"minute":n[HE(r)](0);case"second":n[zE(r)](0),n[WE(r)](0)}return n.getTime()}function _Q(e,t,r,n){var i=1e4,a=kE,o=0;function s(P,A,T,D,N,H,$){for(var G=new Date(A),F=A,R=G[D]();F1&&H===0&&T.unshift({value:T[0].value-F})}}for(var H=0;H=n[0]&&y<=n[1]&&f++)}var _=(n[1]-n[0])/t;if(f>_*1.5&&d>_/1.5||(u.push(g),f>_||e===a[h]))break}c=[]}}}for(var b=Vt(Re(u,function(P){return Vt(P,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(P){return P.length>0}),x=[],w=b.length-1,h=0;h0;)a*=10;var s=[kt(SQ(n[0]/a)*a),kt(xQ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){eu.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=vn(r)/vn(this.base),Eh(r,this._extent)},t.prototype.normalize=function(r){return r=vn(r)/vn(this.base),Ph(r,this._extent)},t.prototype.scale=function(r){return r=Lh(r,this._extent),af(this.base,r)},t.type="log",t}(Ei),mL=V0.prototype;mL.getMinorTicks=eu.getMinorTicks;mL.getLabel=eu.getLabel;function of(e,t){return wQ(e,hi(t))}Ei.registerClass(V0);const CQ=V0;var TQ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(t,r){this[AQ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=MQ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),MQ={min:"_determinedMin",max:"_determinedMax"},AQ={min:"_dataMin",max:"_dataMax"};function EQ(e,t,r){var n=e.rawExtentInfo;return n||(n=new TQ(e,t,r),e.rawExtentInfo=n,n)}function sf(e,t){return t==null?null:cd(t)?NaN:e.parse(t)}function yL(e,t){var r=e.type,n=EQ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=dL("bar",o),l=!1;if(O(s,function(f){l=l||f.getBaseAxis()===t.axis}),l){var u=hL(s),c=PQ(i,a,t,u);i=c.min,a=c.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function PQ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=lQ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;O(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;O(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=t-e,f=1-(s+l)/a,d=c/f-c;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function vS(e,t){var r=t,n=yL(e,r),i=n.extent,a=r.get("splitNumber");e instanceof CQ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function LQ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new uL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new bQ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Ei.getClass(t)||sc)}}function DQ(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function lc(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Te(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ve(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(G0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function G0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function IQ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof uL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=lc(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;c=0||(pS.push(e),Ve(e)&&(e={install:e}),e.install(NQ))}var Nu=Et();function FQ(e){return e.type==="category"?$Q(e):zQ(e)}function BQ(e,t){return e.type==="category"?HQ(e,t):{ticks:Re(e.scale.getTicks(),function(r){return r.value})}}function $Q(e){var t=e.getLabelModel(),r=bL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function bL(e,t){var r=wL(e,"labels"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;return Ve(n)?a=TL(e,n):(o=n==="auto"?WQ(e):n,a=CL(e,o)),SL(r,n,{labels:a,labelCategoryInterval:o})}function HQ(e,t){var r=wL(e,"ticks"),n=U0(t),i=xL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ve(n))a=TL(e,n,!0);else if(n==="auto"){var s=bL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Re(s.labels,function(l){return l.tickValue})}else o=n,a=CL(e,o,!0);return SL(r,n,{ticks:a,tickCategoryInterval:o})}function zQ(e){var t=e.scale.getTicks(),r=lc(e);return{labels:Re(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function wL(e,t){return Nu(e)[t]||(Nu(e)[t]=[])}function xL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(n)),f=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Zy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/c,y=h/f;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Nu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function GQ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function CL(e,t,r){var n=lc(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],c=i.count();u!==0&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=_L(e),d=o.get("showMinLabel")||f,h=o.get("showMaxLabel")||f;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function TL(e,t,r){var n=e.scale,i=lc(e),a=[];return O(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var gS=[0,1],UQ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return mj(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count())),$g(t,gS,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),mS(n,i.count()));var a=$g(t,n,gS,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=BQ(this,r),i=n.ticks,a=Re(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return jQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Re(n,function(a){return Re(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return FQ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return VQ(this)},e}();function mS(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function jQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;O(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();s=1+c[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var f=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=kt(h),v=kt(v),f?h>v:hi&&(i+=gl);var h=Math.atan2(s,o);if(h<0&&(h+=gl),h>=n&&h<=i||h+gl>=n&&h+gl<=i)return l[0]=c,l[1]=f,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function Dd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,c=r-e,f=n-t,d=Math.sqrt(c*c+f*f);c/=d,f/=d;var h=l*c+u*f,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*c,g=o[1]=t+v*f;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function ML(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),c=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(c-a)*(c-a))}var _n=[];function ZQ(e,t,r){var n=ML(t.x,t.y,t.width,t.height,e.x,e.y,_n);return r.set(_n[0],_n[1]),n}function QQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,c=t.data,f=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),ke.sub(Un,Tn,ut),ke.sub(zn,Pt,ut);var r=Un.len(),n=zn.len();if(!(r<.001||n<.001)){Un.scale(1/r),zn.scale(1/n);var i=Un.dot(zn),a=Math.cos(t);if(a1&&ke.copy(sr,Pt),sr.toArray(e[1])}}}}function JQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Pt.fromArray(e[2]),ke.sub(Un,ut,Tn),ke.sub(zn,Pt,ut);var n=Un.len(),i=zn.len();if(!(n<.001||i<.001)){Un.scale(1/n),zn.scale(1/i);var a=Un.dot(t),o=Math.cos(r);if(a=l)ke.copy(sr,Pt);else{sr.scaleAndAdd(zn,s/Math.tan(Math.PI/2-c));var f=Pt.x!==ut.x?(sr.x-ut.x)/(Pt.x-ut.x):(sr.y-ut.y)/(Pt.y-ut.y);if(isNaN(f))return;f<0?ke.copy(sr,ut):f>1&&ke.copy(sr,Pt)}sr.toArray(e[1])}}}}function _S(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function eJ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Cg(n[0],n[1]),a=Cg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=nv([],n[1],n[0],o/i),l=nv([],n[1],n[2],o/a),u=nv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var c=1;c0&&a&&x(-c/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&S(-m),y<0&&S(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,M,P){if(C<0){var A=Math.min(M,-C);if(A>0){x(A*P,0,o);var T=A+C;T<0&&w(-T*P,1)}else w(-C*P,1)}}function x(C,M,P){C!==0&&(u=!0);for(var A=M;A0)for(var T=0;T0;T--){var $=P[T-1]*H;x(-$,T,o)}}}function S(C){var M=C<0?-1:1;C=Math.abs(C);for(var P=Math.ceil(C/(o-1)),A=0;A0?x(P,0,A+1):x(-P,o-A-1,o),C-=P,C<=0)return}return u}function tJ(e,t,r,n){return DL(e,"x","width",t,r,n)}function IL(e,t,r,n){return DL(e,"y","height",t,r,n)}function OL(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new et(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Pr(n,u,r,l)}else if(n.attr(u),!oc(n).valueAnimation){var f=qe(n.style.opacity,1);n.style.opacity=0,Hr(n,{style:{opacity:f}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};lf(h,u,uf),lf(h,n.states.select,uf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};lf(v,u,uf),lf(v,n.states.emphasis,uf)}lq(n,l,c,r,r)}if(i&&!i.ignore&&!i.invisible){var a=iJ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Pr(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Hr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const oJ=aJ;var fp=Et();function sJ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=fp(r).labelManager;i||(i=fp(r).labelManager=new oJ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=fp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function lJ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Is(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function cJ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,c=r.get(["lineStyle","width"])||2;o-=c/2,s-=c/2,l+=c,u+=c,o=Math.floor(o),l=Math.round(l);var f=new Ht({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(f.shape.x+=l),f.shape.width=0):(v||(f.shape.y+=u),f.shape.height=0);var p=Ve(i)?function(g){i(g,f)}:null;Hr(f,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return f}function fJ(e,t,r){var n=e.getArea(),i=kt(n.r0,1),a=kt(n.r,1),o=new Ao({shape:{cx:kt(e.cx,1),cy:kt(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Hr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function dJ(e,t,r,n,i){if(e){if(e.type==="polar")return fJ(e,t,r);if(e.type==="cartesian2d")return cJ(e,t,r,n,i)}else return null;return null}function RL(e,t){return e.type===t}var hJ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),c=l.getExtent(),f=n.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(f||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Te(a)?v=hJ[a]:Ve(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,vJ))}}}}}var kL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return aL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)O(a.getAxes(),function(f,d){if(f.type==="category"){var h=f.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=f.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;o[c]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(wo);wo.registerClass(kL);const wS=kL;var gJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return aL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=IE(wS.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(wS);const mJ=gJ;var yJ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),_J=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new yJ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,c=n.startAngle,f=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?f-cMath.PI/2&&cs)return!0;s=f}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){wd(a,r,ft(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(co),SS={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=dp(t.x,e.x),s=hp(t.x+t.width,i),l=dp(t.y,e.y),u=hp(t.y+t.height,a),c=si?s:o,t.y=f&&l>a?u:l,t.width=c?0:s-o,t.height=f?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||f},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=hp(t.r,e.r),a=dp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},CS={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Ht({shape:se({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var c=u.shape,f=i?"height":"width";c[f]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?xS:Ao,c=new u({shape:n,z2:1});c.name="item";var f=NL(i);if(c.calculateTextPosition=bJ(f,{isRoundCap:u===xS}),a){var d=c.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Pr:Hr)(c,{shape:v},a)}return c}};function CJ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function TS(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Pr:Hr)(r,{shape:l},t,i,null);var c=t?e.baseAxis.model:null;(o?Pr:Hr)(r,{shape:u},c,i)}function MS(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function AJ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function NL(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function ES(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var c=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",f=PE(n);m0(e,f,{labelFetcher:a,labelDataIndex:r,defaultText:lJ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,wJ(e,h==="outside"?c:h,NL(o),n.get(["label","rotate"]))}sq(d,f,a.getRawValue(r),function(p){return uJ(t,p)});var v=n.getModel(["emphasis"]);J2(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),eE(e,n),AJ(i)&&(e.style.fill="none",e.style.stroke="none",O(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function EJ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var PJ=function(){function e(){}return e}(),PS=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new PJ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,c=0;c=0?r:null},30,!1);function LJ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,f=a.length/3;c=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[c]}return-1}function FL(e,t,r){if(RL(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function DJ(e,t,r){var n=e.type==="polar"?Ao:Ht;return new n({shape:FL(t,r,e),silent:!0,z2:0})}const IJ=SJ;function OJ(e){e.registerChartView(IJ),e.registerSeriesModel(mJ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Rt(uQ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,cQ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,pJ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var hf=Math.PI*2,IS=Math.PI/180;function BL(e,t){return Ls(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function $L(e,t){var r=BL(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=gt(r.width,t.getWidth()),o=gt(r.height,t.getHeight()),s=Math.min(a,o),l=gt(i[0],s/2),u=gt(i[1],s/2),c,f,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);c=h[0]||0,f=h[1]||0}else ge(n)||(n=[n,n]),c=gt(n[0],a)+r.x,f=gt(n[1],o)+r.y;return{cx:c,cy:f,r0:l,r:u}}function RJ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=BL(n,r),s=$L(n,r),l=s.cx,u=s.cy,c=s.r,f=s.r0,d=-n.get("startAngle")*IS,h=n.get("minAngle")*IS,v=0;i.each(a,function(P){!isNaN(P)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=hf,w=0,S=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:c}),i.each(a,function(P,A){var T;if(isNaN(P)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:f,r:y?NaN:c});return}y!=="area"?T=p===0&&_?g:P*g:T=hf/v,Tr?m:g,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-f)/2}}}function vp(e){return e.position==="center"}function BJ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*NJ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,f=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,M=S.getTextContent(),P=S.getTextGuideLine(),A=t.getItemModel(w),T=A.getModel("label"),D=T.get("position")||A.get(["emphasis","label","position"]),N=T.get("distanceToLabelLine"),H=T.get("alignTo"),$=gt(T.get("edgeDistance"),u),G=T.get("bleedMargin"),F=A.getModel("labelLine"),R=F.get("length");R=gt(R,u);var j=F.get("length2");if(j=gt(j,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":oe>0?"left":"right"}var U=Math.PI,K=0,ne=T.get("rotate");if(bt(ne))K=ne*(U/180);else if(D==="center")K=0;else if(ne==="radial"||ne===!0){var fe=oe<0?-re+U:-re;K=fe}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(oe,ye);te<0&&(te=U*2+te);var ie=ye>0;ie&&(te=U+te),K=te-U}if(a=!!K,M.x=Ae,M.y=V,M.rotation=K,M.setStyle({verticalAlign:"middle"}),q){M.setStyle({align:W});var he=M.states.select;he&&(he.x+=M.x,he.y+=M.y)}else{var X=M.getBoundingRect().clone();X.applyTransform(M.getComputedTransform());var we=(M.style.margin||0)+2.1;X.y-=we/2,X.height+=we,r.push({label:M,labelLine:P,position:D,len:R,len2:j,minTurnAngle:F.get("minTurnAngle"),maxSurfaceAngle:F.get("maxSurfaceAngle"),surfaceNormal:new ke(oe,ye),linePoints:Q,textAlign:W,labelDistance:N,labelAlignTo:H,edgeDistance:$,bleedMargin:G,rect:X,unconstrainedWidth:X.width,labelStyleWidth:M.style.width})}S.setTextConfig({inside:q})}}),!a&&e.get("avoidLabelOverlap")&&FJ(r,n,i,l,u,d,c,f);for(var p=0;p0){for(var c=o.getItemLayout(0),f=1;isNaN(c&&c.startAngle)&&f=a.r0}},t.type="pie",t}(co);const zJ=HJ;function WJ(e,t,r){t=ge(t)&&{coordDimensions:t}||se({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=nL(n,t).dimensions,a=new rL(i,e);return a.initData(n,r),a}var VJ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const GJ=VJ;var UJ=Et(),jJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new GJ(_t(this.getData,this),_t(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return WJ(this,{coordDimensions:["value"],encodeDefaulter:Rt(Nq,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=UJ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=yj(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Hg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(wo);const YJ=jJ;function qJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(bt(o)&&!isNaN(o)&&o<0)})}}}function KJ(e){e.registerChartView(zJ),e.registerSeriesModel(YJ),SX("pie",e.registerAction),e.registerLayout(Rt(RJ,"pie")),e.registerProcessor(kJ("pie")),e.registerProcessor(qJ("pie"))}var XJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(xt);const ZJ=XJ;var ym=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Cn).models[0]},t.type="cartesian2dAxis",t}(xt);Jn(ym,kQ);var zL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},QJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},zL),j0=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},zL),JJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},j0),eee=dt({logBase:10},j0);const tee={category:QJ,value:j0,time:JJ,log:eee};var ree={value:1,category:1,time:1,log:1};function RS(e,t,r,n){O(ree,function(i,a){var o=st(st({},tee[a],!0),n,!0),s=function(l){pe(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+a,c}return u.prototype.mergeDefaultAndTheme=function(c,f){var d=Du(this),h=d?Sh(c):{},v=f.getTheme();st(c,v.get(a+"Axis")),st(c,this.getDefaultOption()),c.type=kS(c),d&&Ds(c,h,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=gm.createByAxisModel(this))},u.prototype.getCategories=function(c){var f=this.option;if(f.type==="category")return c?f.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",kS)}function kS(e){return e.type||(e.data?"category":"value")}var nee=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Re(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Vt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const iee=nee;var _m=["x","y"];function NS(e){return e.type==="interval"||e.type==="time"}var aee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=_m,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!NS(r)||!NS(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var c=(s[0]-o[0])/l,f=(s[1]-o[1])/u,d=o[0]-i[0]*c,h=o[1]-a[0]*f,v=this._transform=[c,0,0,f,d,h];this._invTransform=lh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new et(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return on(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return on(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new et(i,a,o,s)},t}(iee),oee=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(YQ);const see=oee;function bm(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,c=n.getRect(),f=[c.x,c.x+c.width,c.y,c.y+c.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[f[2]-h,f[3]+h]:[f[0]-h,f[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:f[0],u==="x"?v[d[l]]:f[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),xu(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function FS(e){return e.get("coordinateSystem")==="cartesian2d"}function BS(e){var t={xAxisModel:null,yAxisModel:null};return O(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Cn).models[0];t[n]=a}),t}var pp=Math.log;function lee(e,t,r){var n=sc.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=yL(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if(e.type==="log"){var d=pp(e.base);u=[pp(u[0])/d,pp(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:c,fixMax:f});var h=n.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(c&&f)v=(g-p)/o;else if(c)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=lp(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=lp(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=kt(g-y),p<0&&u[0]>=0?(p=0,g=kt(y)):g>0&&u[1]<=0&&(g=0,p=-kt(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var uee=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=_m,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Tt(o),u=l.length;if(u){for(var c=[],f=u-1;f>=0;f--){var d=+l[f],h=o[d],v=h.model,p=h.scale;mm(p)&&v.get("alignTicks")&&v.get("interval")==null?c.push(h):(vS(p,v),mm(p)&&(s=h))}c.length&&(s||(s=c.pop(),vS(s.scale,s.model)),O(c,function(g){lee(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};O(n.x,function(o){$S(n,"y",o,a)}),O(n.y,function(o){$S(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ls(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(O(s,function(u){if(!u.model.get(["axisLabel","inside"])){var c=IQ(u);if(c){var f=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[f]-=c[f]+d,u.position==="top"?o.y+=c.height+d:u.position==="left"&&(o.x+=c.width+d)}}}),l()),O(this._coordsList,function(u){u.calcAffineTransform()});function l(){O(s,function(u){var c=u.isHorizontal(),f=c?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(f[d],f[1-d]),cee(u,c?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Ie(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):md(i-Ki)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),zS={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(on(s,s,o),on(l,l,o));var c=se({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new bo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Au(f.shape,f.style.lineWidth),f.anid="line",r.add(f);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Te(d)&&(d=[d,d]),(Te(h)||bt(h))&&(h=[h,h]);var v=FX(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];O([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=R0(d[y],-p/2,-g/2,p,g,c.stroke,!0),b=m.r+m.offset,x=u?l:s;_.attr({rotation:m.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=vee(r,n,t,e),a=gee(r,n,t,e);if(hee(t,a,i),pee(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=LL(Re(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));OL(o)}},axisName:function(e,t,r,n){var i=xu(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,f=[a==="start"?u[0]-c*l:a==="end"?u[1]+c*l:(u[0]+u[1])/2,VS(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Ki/180);var v;VS(a)?d=fo.innerTextLayout(e.rotation,h??e.rotation,o):(d=dee(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=xu(e.nameTruncateMaxWidth,g.maxWidth,v),_=new dr({x:f[0],y:f[1],rotation:d.rotation,silent:fo.isLabelSilent(t),style:la(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(p0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=fo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,ft(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function dee(e,t,r,n){var i=x2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return md(i-Ki/2)?(o=l?"bottom":"top",a="center"):md(i-Ki*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iKi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function hee(e,t,r){if(!_L(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],c=r[1],f=r[r.length-1],d=r[r.length-2];n===!1?(Gr(a),Gr(u)):WS(a,o)&&(n?(Gr(o),Gr(c)):(Gr(a),Gr(u))),i===!1?(Gr(s),Gr(f)):WS(l,s)&&(i?(Gr(l),Gr(d)):(Gr(s),Gr(f)))}}function Gr(e){e&&(e.ignore=!0)}function WS(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Yy([]);return qy(i,i,-e.rotation),r.applyTransform(us([],i,e.getLocalTransform())),n.applyTransform(us([],i,t.getLocalTransform())),r.intersect(n)}}function VS(e){return e==="middle"||e==="center"}function WL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function xee(e){var t=Y0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=wm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var f=this.__startIndex;f15)break}}N.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var P=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?pf:0),this._needsManuallyCompositing),c.__builtin__||Gy("ZLevel "+u+" has been used by unkown layer "+c.id),c!==a&&(c.__used=!0,c.__startIndex!==l&&(c.__dirty=!0),c.__startIndex=l,c.incremental?c.__drawIndex=-1:c.__drawIndex=l,r(l),a=c),i.__dirty&Rr&&!i.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(f,d){!f.__used&&f.getElementCount()>0&&(f.__dirty=!0,f.__startIndex=f.__endIndex=f.__drawIndex=0),f.__dirty&&f.__drawIndex<0&&(f.__drawIndex=f.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,O(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=Y0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new nq[a.type](qS(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new dr(qS(r.label));t.add(a),XS(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),XS(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=v0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){ZA(u.event)},onmousedown:_p(this._onHandleDragMove,this,0,0),drift:_p(this._onHandleDragMove,this),ondragend:_p(this._onHandleDragEnd,this)}),n.add(i)),ZS(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,bP(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){KS(this._axisPointerModel,!r&&this._moveAnimation,this._handle,bp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(bp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(bp(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),sm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function KS(e,t,r,n){YL(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Pr(r,n,e):(r.stopAnimation(),r.attr(n)))}function YL(e,t){if(Ie(e)&&Ie(t)){var r=!0;return O(t,function(n,i){r=r&&YL(e[i],n)}),!!r}else return e===t}function XS(e,t){e[t.get(["label","show"])?"show":"hide"]()}function bp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function ZS(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const zee=Hee;function Wee(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function Vee(e,t,r,n,i){var a=r.get("value"),o=qL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=xh(s.get("padding")||0),u=s.getFont(),c=Zy(o,u),f=i.position,d=c.width+l[1]+l[3],h=c.height+l[0]+l[2],v=i.align;v==="right"&&(f[0]-=d),v==="center"&&(f[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(f[1]-=h),p==="middle"&&(f[1]-=h/2),Gee(f,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:f[0],y:f[1],style:la(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function Gee(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function qL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:G0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};O(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,f=u&&u.getDataParams(c);f&&s.seriesData.push(f)}),Te(o)?a=o.replace("{value}",a):Ve(o)&&(a=o(s))}return a}function KL(e,t,r){var n=Su();return qy(n,n,r.rotation),Eg(n,n,r.position),h0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function Uee(e,t,r,n,i,a){var o=VL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),Vee(t,n,i,a,{position:KL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function jee(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function Yee(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var qee=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),c=QS(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=Wee(a),h=Kee[u](s,f,c);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=bm(l.model,i);Uee(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=bm(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=KL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=QS(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,f=[r.x,r.y];f[c]+=n[c],f[c]=Math.min(l[1],f[c]),f[c]=Math.max(l[0],f[c]);var d=(u[1]+u[0])/2,h=[d,d];h[c]=f[c];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:f[0],y:f[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[c]}},t}(zee);function QS(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var Kee={line:function(e,t,r){var n=jee([t,r[0]],[t,r[1]],JS(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:Yee([t-n/2,r[0]],[n,i],JS(e))}}};function JS(e){return e.dim==="x"?0:1}const Xee=qee;var Zee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(xt);const Qee=Zee;var vi=Et(),Jee=O;function XL(e,t,r){if(!Ge.node){var n=t.getZr();vi(n).records||(vi(n).records={}),ete(n,t);var i=vi(n).records[e]||(vi(n).records[e]={});i.handler=r}}function ete(e,t){if(vi(e).initialized)return;vi(e).initialized=!0,r("click",Rt(eC,"click")),r("mousemove",Rt(eC,"mousemove")),r("globalout",rte);function r(n,i){e.on(n,function(a){var o=nte(t);Jee(vi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),tte(o.pendings,t)})}}function tte(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function rte(e,t,r){e.handler("leave",null,r)}function eC(e,t,r,n){t.handler(e,r,n)}function nte(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function Sm(e,t){if(!Ge.node){var r=t.getZr(),n=(vi(r).records||{})[e];n&&(vi(r).records[e]=null)}}var ite=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";XL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){Sm("axisPointer",n)},t.prototype.dispose=function(r,n){Sm("axisPointer",n)},t.type="axisPointer",t}(xi);const ate=ite;function ZL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=nc(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),f=c.dim,d=u.dim,h=f==="x"||f==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Re(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var tC=Et();function ote(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||_t(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Uf(i)&&(i=ZL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Uf(i),u=a.axesInfo,c=s.axesInfo,f=n==="leave"||Uf(i),d={},h={},v={list:[],map:{}},p={showPointer:Rt(lte,h),showTooltip:Rt(ute,v)};O(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);O(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=hte(u,b);if(!f&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&rC(b,C,p,!1,d)}})});var g={};return O(c,function(m,y){var _=m.linkGroup;_&&!h[y]&&O(_.axesInfo,function(b,x){var w=h[x];if(b!==m&&w){var S=w.value;_.mapper&&(S=m.axis.scale.parse(_.mapper(S,nC(b),nC(m)))),g[m.key]=S}})}),O(g,function(m,y){rC(c[y],m,p,!0,d)}),cte(h,c,d),fte(v,i,e,o),dte(c,o,r),d}}function rC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=ste(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&se(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function ste(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return O(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),f,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(c,e,r);d=h.dataIndices,f=h.nestestValue}else{if(d=l.getData().indicesOfNearest(c[0],e,r.type==="category"?.5:null),!d.length)return;f=l.getData().get(c[0],d[0])}if(!(f==null||!isFinite(f))){var v=e-f,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=f,a.length=0),O(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function lte(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function ute(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Fu(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function cte(e,t,r){var n=r.axesInfo=[];O(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function fte(e,t,r,n){if(Uf(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function dte(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=tC(n)[i]||{},o=tC(n)[i]={};O(e,function(u,c){var f=u.axisPointerModel.option;f.status==="show"&&O(f.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];O(a,function(u,c){!o[c]&&l.push(u)}),O(o,function(u,c){!a[c]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function hte(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function nC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Uf(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function QL(e){GL.registerAxisPointerClass("CartesianAxisPointer",Xee),e.registerComponentModel(Qee),e.registerComponentView(ate),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=mee(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},ote)}function vte(e){ua(Iee),ua(QL)}function pte(e,t){var r=xh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Ht({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(xt);const mte=gte;function JL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function eD(e){if(Ge.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var c=u*Math.PI/180,f=o+i,d=f*Math.abs(Math.cos(c))+f*Math.abs(Math.sin(c)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-f)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Cte(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ge.transformSupported?","+q0+n:",left"+n+",top"+n),bte+":"+i}function iC(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ge.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ge.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+q0+":"+o+";":[["top",0],["left",0],[tD,o]]}function Tte(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),O(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Mte(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),c=e.getModel("textStyle"),f=mP(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(Cte(i,r)),a&&n.push("background-color:"+a),O(["width","color","radius"],function(h){var v="border-"+h,p=GE(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(Tte(c)),f!=null&&n.push("padding:"+xh(f).join("px ")+"px"),n.join(";")+";"}function aC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&n9(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Ate=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ge.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;aC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,c=a.painter.getViewportRoot();jr(c,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=_te(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=wte+Mte(t,!this._firstShow,this._longHide)+iC(a[0],a[1],!0)+("border-color:"+Lu(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Te(a)&&n.get("trigger")==="item"&&!JL(n)&&(s=Ste(n,i,a)),Te(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ge.node||!i.getDom())){var o=lC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Nte(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var c=Dte;c.x=a.x,c.y=a.y,c.update(),ft(c).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:c},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var f=ZL(a,n),d=f.point[0],h=f.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:f.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(lC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),f=ml([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(f.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Al(i,function(u){if(ft(u).dataIndex!=null)return s=u,!0;if(ft(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=_t(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=ml([n.tooltipOption],a),l=this._renderMode,u=[],c=Ou("section",{blocks:[],noHeader:!0}),f=[],d=new Xv;O(r,function(y){O(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=qL(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Ou("section",{header:w,noHeader:!Vn(w),sortBlocks:!0,blocks:[]});c.blocks.push(S),O(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),P=C.dataIndexInside,A=M.getDataParams(P);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=G0(b.axis,{value:x}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Lu(A.color),l);var T=Sx(M.formatTooltip(P,!0,null)),D=T.frag;if(D){var N=ml([M],a).get("valueFormatter");S.blocks.push(N?se({valueFormatter:N},D):D)}T.text&&f.push(T.text),u.push(A)}})}})}),c.blocks.reverse(),f.reverse();var h=n.position,v=s.get("order"),p=Ex(c,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&f.unshift(p);var g=l==="richText"?` +`];function Ou(e,t){return t.type=e,t}function im(e){return e.type==="section"}function vE(e){return im(e)?NK:FK}function pE(e){if(im(e)){var t=0,r=e.blocks.length,n=r>1||r>0&&!e.noHeader;return O(e.blocks,function(i){var a=pE(i);a>=t&&(t=a+ +(n&&(!a||im(i)&&!i.noHeader)))}),t}return 0}function NK(e,t,r,n){var i=t.noHeader,a=BK(pE(t)),o=[],s=t.blocks||[];bi(!s||ge(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Es(u,l)){var c=new bK(u[l],null);s.sort(function(v,p){return c.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}O(s,function(v,p){var g=t.valueFormatter,m=vE(v)(g?se(se({},e),{valueFormatter:g}):e,v,p>0?a.html:0,n);m!=null&&o.push(m)});var f=e.renderMode==="richText"?o.join(a.richText):am(o.join(""),i?r:a.html);if(i)return f;var d=tm(t.header,"ordinal",e.useUTC),h=hE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?gE(e,d,h)+a.richText+f:am('
'+Xr(d)+"
"+f,r)}function FK(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(b){return b=ge(b)?b:[b],Re(b,function(S,w){return tm(S,ge(h)?h[w]:h,u)})};if(!(a&&o)){var f=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=a?"":tm(l,"ordinal",u),h=t.valueType,v=o?[]:c(t.value),p=!s||!a,g=!s&&a,m=hE(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":f)+(a?"":gE(e,d,y))+(o?"":zK(e,v,p,g,_)):am((s?"":f)+(a?"":$K(d,!s,y))+(o?"":HK(v,p,g,_)),r)}}function AS(e,t,r,n,i,a){if(e){var o=vE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function BK(e){return{html:RK[e],richText:kK[e]}}function am(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function $K(e,t,r){var n=t?"margin-left:2px":"";return''+Xr(e)+""}function HK(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ge(e)?e:[e],''+Re(e,function(o){return Xr(o)}).join("  ")+""}function gE(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function zK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ge(t)?t.join(" "):t,a)}function WK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Lu(n)}function mE(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var Xv=function(){function e(){this.richTextStyles={},this._nextStyleNameId=CP()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Pq({color:r,type:t,renderMode:n,markerId:i});return Te(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ge(r)?O(r,function(a){return se(n,a)}):se(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function VK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ge(s),u=WK(t,r),c,f,d,h;if(o>1||l&&!o){var v=GK(s,t,r,a,u);c=v.inlineValues,f=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=c=Is(i,r,a[0]),f=p.type}else h=c=l?s[0]:s;var g=t0(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return Ou("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[Ou("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Vn(_),value:c,valueType:f})].concat(d||[])})}function GK(e,t,r,n,i){var a=t.getData(),o=oa(e,function(f,d,h){var v=a.getDimensionInfo(h);return f=f||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?O(n,function(f){c(Is(a,r,f),f)}):O(e,c);function c(f,d){var h=a.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(o?u.push(Ou("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:f,valueType:h.type})):(s.push(f),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var ki=Pt();function qc(e,t){return e.getName(t)||e.getId(t)}var UK="__universalTransitionEnabled",Mh=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Zl({count:YK,reset:qK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=ki(this).sourceManager=new OK(this);a.prepareSource();var o=this.getInitialData(r,i);ES(o,this),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,PS(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Du(this),a=i?xh(r):{},o=this.subType;St.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),Hg(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Ds(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Du(this);i&&Ds(this.option,r,i);var a=ki(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);ES(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,ki(this).dataBeforeProcessed=o,PS(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!zr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=T0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[qc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[UK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Ie(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return St.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(St);Jn(Mh,yK);Jn(Mh,T0);LP(Mh,St);function PS(e){var t=e.name;t0(e)||(e.name=jK(e)||t)}function jK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return O(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function YK(e){return e.model.getRawData().count()}function qK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),KK}function KK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function ES(e,t){O(UU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Rt(XK,t))})}function XK(e,t){var r=om(e);return r&&r.setOutputEnd((t||this).count()),t}function om(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const wo=Mh;var D0=function(){function e(){this.group=new cn,this.uid=gh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();n0(D0);ch(D0);const Si=D0;function yE(){var e=Pt();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var _E=Pt(),ZK=yE(),I0=function(){function e(){this.group=new cn,this.uid=gh("viewChart"),this.renderTask=Zl({plan:QK,reset:JK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&DS(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&DS(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){g0(this.group,t)},e.markUpdateMethod=function(t,r){_E(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function LS(e,t,r){e&&Xg(e)&&(t==="emphasis"?Ug:jg)(e,r)}function DS(e,t,r){var n=nc(e,t),i=t&&t.highlightKey!=null?i7(t.highlightKey):null;n!=null?O(cr(n),function(a){LS(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){LS(a,r,i)})}n0(I0);ch(I0);function QK(e){return ZK(e.model)}function JK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&_E(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),eX[l]}var eX={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const co=I0;var Td="\0__throttleOriginMethod",IS="\0__throttleRate",OS="\0__throttleType";function O0(e,t,r){var n,i=0,a=0,o=null,s,l,u,c;t=t||0;function f(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?f():o=setTimeout(f,-s),i=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(h){c=h},d}function bE(e,t,r,n){var i=e[t];if(i){var a=i[Td]||i,o=i[OS],s=i[IS];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=O0(a,r,n==="debounce"),i[Td]=a,i[OS]=n,i[IS]=r}return i}}function sm(e,t){var r=e[t];r&&r[Td]&&(r.clear&&r.clear(),e[t]=r[Td])}var RS=Pt(),kS={itemStyle:Mu(D2,!0),lineStyle:Mu(L2,!0)},tX={lineStyle:"stroke",itemStyle:"fill"};function wE(e,t){var r=e.visualStyleMapper||kS[t];return r||(console.warn("Unknown style type '"+t+"'."),kS.itemStyle)}function SE(e,t){var r=e.visualDrawType||tX[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var rX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=wE(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=SE(e,n),u=o[l],c=Ve(u)?u:null,f=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||f){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ve(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||Ve(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var p=e.getDataParams(v),g=se({},o);g[l]=c(p),h.setItemVisual(v,"style",g)}}}},ul=new rr,nX={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=wE(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){ul.option=l[n];var u=i(ul),c=o.ensureUniqueItemVisual(s,"style");se(c,u),ul.option.decal&&(o.setItemVisual(s,"decal",ul.option.decal),ul.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},iX={performRawSeries:!0,overallReset:function(e){var t=Ue();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),RS(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=RS(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=SE(r,s);a.each(function(u){var c=a.getRawIndex(u);i[c]=u}),n.each(function(u){var c=i[u],f=a.getItemVisual(c,"colorFromPalette");if(f){var d=a.ensureUniqueItemVisual(c,"style"),h=n.getName(u)||u+"",v=n.count();d[l]=r.getColorFromPalette(h,o,v)}})}})}},Kc=Math.PI;function aX(e,t){t=t||{},dt(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new cn,n=new Ht({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new dr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Ht({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new c0({shape:{startAngle:-Kc/2,endAngle:-Kc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Kc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Kc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),a.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var oX=function(){function e(t,r,n,i){this._stageTaskMap=Ue(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Ue();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;O(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";bi(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;O(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),f=c.seriesTaskMap,d=c.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&d.dirty(),o.updatePayload(d,n);var p=o.getPerformArgs(d,i.block);v.each(function(g){g.perform(p)}),d.perform(p)&&(a=!0)}else f&&f.each(function(g,m){s(i,g)&&g.dirty();var y=o.getPerformArgs(g,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=Ue(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,i).each(c);function c(f){var d=f.uid,h=s.set(d,o&&o.get(d)||Zl({plan:fX,reset:dX,count:vX}));h.context={model:f,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(f,h)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||Zl({reset:sX});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=Ue(),u=t.seriesType,c=t.getTargetSeries,f=!0,d=!1,h="";bi(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,v):c?c(n,i).each(v):(f=!1,O(n.getSeries(),v));function v(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(d=!0,Zl({reset:lX,onDirty:cX})));m.context={model:p,overallProgress:f},m.agent=o,m.__block=f,a._pipe(p,m)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ve(t)&&(t={overallReset:t,seriesType:pX(t)}),t.uid=gh("stageHandler"),r&&(t.visualType=r),t},e}();function sX(e){e.overallReset(e.ecModel,e.api,e.payload)}function lX(e){return e.overallProgress&&uX}function uX(){this.agent.dirty(),this.getDownstream().dirty()}function cX(){this.agent&&this.agent.dirty()}function fX(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function dX(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=cr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Re(t,function(r,n){return xE(n)}):hX}var hX=xE(0);function xE(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(r.mainType=v,r[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(n[u]=l,c=!0),c||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return c(l,o,"mainType")&&c(l,o,"subType")&&c(l,o,"index","componentIndex")&&c(l,o,"name")&&c(l,o,"id")&&c(u,a,"name")&&c(u,a,"dataIndex")&&c(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function c(f,d,h,v){return f[h]==null||d[v||h]===f[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),lm=["symbol","symbolSize","symbolRotate","symbolOffset"],$S=lm.concat(["symbolKeepAspect"]),_X={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&to(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function cm(e,t,r){for(var n=t.type==="radial"?$X(e,t,r):BX(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:bt(e)?[e]:ge(e)?e:null}function PE(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&zX(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Re(r,function(a){return a/i}),n/=i)}return[r,n]}var WX=new _o(!0);function Ad(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function HS(e){return typeof e=="string"&&e!=="none"}function Pd(e){var t=e.fill;return t!=null&&t!=="none"}function zS(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function WS(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function fm(e,t,r){var n=DP(t.image,t.__image,r);if(fh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*jU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function VX(e,t,r,n){var i,a=Ad(r),o=Pd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var c=t.path||WX,f=t.__dirty;if(!n){var d=r.fill,h=r.stroke,v=o&&!!d.colorStops,p=a&&!!h.colorStops,g=o&&!!d.image,m=a&&!!h.image,y=void 0,_=void 0,b=void 0,S=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=f?cm(e,d,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=f?cm(e,h,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(b=f||!t.__canvasFillPattern?fm(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=b),m&&(S=f||!t.__canvasStrokePattern?fm(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:g&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:m&&(S?e.strokeStyle=S:a=!1)}var x=t.getGlobalScale();c.setScale(x[0],x[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=PE(t),C=i[0],M=i[1]);var E=!0;(u||f&Ko)&&(c.setDPR(e.dpr),l?c.setContext(null):(c.setContext(e),E=!1),c.reset(),t.buildPath(c,t.shape,n),c.toStatic(),t.pathUpdated()),E&&c.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&WS(e,r),o&&zS(e,r)):(o&&zS(e,r),a&&WS(e,r))),C&&e.setLineDash([])}function GX(e,t,r){var n=t.__image=DP(r.image,t.__image,t,t.onload);if(!(!n||!fh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,f=o-u,d=s-c;e.drawImage(n,u,c,f,d,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function UX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||yo,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=PE(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Ad(r)&&e.strokeText(i,r.x,r.y),Pd(r)&&e.fillText(i,r.x,r.y)):(Pd(r)&&e.fillText(i,r.x,r.y),Ad(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var VS=["shadowBlur","shadowOffsetX","shadowOffsetY"],GS=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function EE(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){wr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?lo.opacity:o}(n||t.blend!==r.blend)&&(a||(wr(e,i),a=!0),e.globalCompositeOperation=t.blend||lo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[Qt]){if(this._disposed){this.id;return}var a,o,s;if(Ie(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[Qt]=!0,!this._model||n){var l=new tK(this._api),u=this._theme,c=this._model=new J2;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},vm);var f={seriesTransition:s,optionChanged:!0};if(i)this[gr]={silent:a,updateParams:f},this[Qt]=!1,this.getZr().wakeUp();else{try{Go(this),Ni.update.call(this,null,f)}catch(d){throw this[gr]=null,this[Qt]=!1,d}this._ssr||this._zr.flush(),this[gr]=null,this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Ge.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(Ge.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return O(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;O(n,function(l){i.eachComponent({mainType:l},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(a.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return O(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(ax[i]){var l=s,u=s,c=-s,f=-s,d=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();O(Jl,function(_,b){if(_.group===i){var S=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(Qe(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),c=o(w.right,c),f=o(w.bottom,f),d.push({dom:S,left:w.left,top:w.top})}}),l*=h,u*=h,c*=h,f*=h;var v=c-l,p=f-u,g=Mo.createCanvas(),m=uw(g,{renderer:n?"svg":"canvas"});if(m.resize({width:v,height:p}),n){var y="";return O(d,function(_){var b=_.left-l,S=_.top-u;y+=''+_.dom+""}),m.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&m.painter.setBackgroundColor(r.connectedBackgroundColor),m.refreshImmediately(),m.painter.toDataURL()}else return r.connectedBackgroundColor&&m.add(new Ht({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),O(d,function(_){var b=new zs({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(b)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return tp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return tp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Cv(i,r);return O(o,function(s,l){l.indexOf("Models")>=0&&O(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)a=a||!!c.containPoint(n);else if(l==="seriesModels"){var f=this._chartsMap[u.__viewId];f&&f.containPoint&&(a=a||f.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Cv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?wX(s,l,n):SX(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;O(mZ,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Al(s,function(v){var p=ft(v);if(p&&p.dataIndex!=null){var g=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=g&&g.getDataParams(p.dataIndex,p.dataType)||{},!0}else if(p.eventData)return l=se({},p.eventData),!0},!0),l){var c=l.componentType,f=l.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",f=l.seriesIndex);var d=c&&f!=null&&o.getComponent(c,f),h=d&&r[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),O(Ql,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),O(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),CX(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&PP(this.getDom(),F0,"");var n=this,i=n._api,a=n._model;O(n._componentsViews,function(o){o.dispose(a,i)}),O(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Jl[n.id]},t.prototype.resize=function(r){if(!this[Qt]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[gr]&&(a==null&&(a=this[gr].silent),i=!0,this[gr]=null),this[Qt]=!0;try{i&&Go(this),Ni.update.call(this,{type:"resize",animation:se({duration:0},r&&r.animation)})}catch(o){throw this[Qt]=!1,o}this[Qt]=!1,cl.call(this,a),fl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Ie(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!pm[r]){var i=pm[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=se({},r);return n.type=Ql[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Ie(n)||(n={silent:!!n}),!!Ed[r.type]&&this._model){if(this[Qt]){this._pendingActions.push(r);return}var i=n.silent;np.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&Ge.browser.weChat&&this._throttledZrFlush(),cl.call(this,i),fl.call(this,i)}},t.prototype.updateLabelLayout=function(){yn.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Go=function(f){var d=f._scheduler;d.restorePipelines(f._model),d.prepareStageTasks(),ep(f,!0),ep(f,!1),d.plan()},ep=function(f,d){for(var h=f._model,v=f._scheduler,p=d?f._componentsViews:f._chartsViews,g=d?f._componentsMap:f._chartsMap,m=f._zr,y=f._api,_=0;_d.get("hoverLayerThreshold")&&!Ge.node&&!Ge.worker&&d.eachSeries(function(g){if(!g.preventUsingHoverLayer){var m=f._chartsMap[g.__viewId];m.__alive&&m.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(f,d){var h=f.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(f,d){if(!f.preventAutoZ){var h=f.get("z")||0,v=f.get("zlevel")||0;d.eachRendered(function(p){return l(p,h,v,-1/0),!0})}}function l(f,d,h,v){var p=f.getTextContent(),g=f.getTextGuideLine(),m=f.isGroup;if(m)for(var y=f.childrenRef(),_=0;_0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(m){if(m.states&&m.states.emphasis){if(fs(m))return;if(m instanceof ht&&a7(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(v){m.stateTransition=g;var _=m.getTextContent(),b=m.getTextGuideLine();_&&(_.stateTransition=g),b&&(b.stateTransition=g)}m.__dirty&&i(m)}})}nx=function(f){return new(function(d){pe(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return f._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return f._model.getComponent(p.mainType,p.index);v=v.parent}},h.prototype.enterEmphasis=function(v,p){Ug(v,p),Vr(f)},h.prototype.leaveEmphasis=function(v,p){jg(v,p),Vr(f)},h.prototype.enterBlur=function(v){KY(v),Vr(f)},h.prototype.leaveBlur=function(v){qP(v),Vr(f)},h.prototype.enterSelect=function(v){KP(v),Vr(f)},h.prototype.leaveSelect=function(v){XP(v),Vr(f)},h.prototype.getModel=function(){return f.getModel()},h.prototype.getViewOfComponentModel=function(v){return f.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return f.getViewOfSeriesModel(v)},h}(eE))(f)},GE=function(f){function d(h,v){for(var p=0;p=0)){ox.push(r);var a=ME.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function XE(e,t){pm[e]=t}function CZ(e,t,r){var n=rZ("registerMap");n&&n(e,t,r)}var TZ=AK;Eo(k0,rX);Eo(Ah,nX);Eo(Ah,iX);Eo(k0,_X);Eo(Ah,bX);Eo(BE,JX);qE(rE);KE(aZ,uK);XE("default",aX);Gs({type:uo,event:uo,update:uo},Tr);Gs({type:$f,event:$f,update:$f},Tr);Gs({type:jl,event:jl,update:jl},Tr);Gs({type:Hf,event:Hf,update:Hf},Tr);Gs({type:Yl,event:Yl,update:Yl},Tr);YE("light",gX);YE("dark",mX);function dl(e){return e==null?0:e.length||1}function sx(e){return e}var MZ=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||sx,this._newKeyGetter=i||sx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var c=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(c,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(f===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(f===1&&d===1)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;s30}var hl=Ie,Fi=Re,kZ=typeof Int32Array>"u"?Array:Int32Array,NZ="e\0\0",lx=-1,FZ=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],BZ=["_approximateExtent"],ux,tf,vl,pl,op,rf,sp,$Z=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;QE(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},c=0;c=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===dn;if(l&&!i.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ge(a)?a=a.slice():hl(a)&&(a=se({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,hl(r)?se(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){hl(t)?se(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?se(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;$Y(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){O(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Fi(this.dimensions,this._getDimInfo,this),this.hostModel)),op(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ve(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(Uy(arguments)))})},e.internalField=function(){ux=function(t){var r=t._invertedIndicesMap;O(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new kZ(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),i[r]=l}}}(),e}();const rL=$Z;function nL(e,t){A0(e)||(e=P0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=Ue(),a=[],o=zZ(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&tL(o),l=n===e.dimensionsDefine,u=l?eL(e):JE(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var f=Ue(c),d=new cE(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function zZ(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return O(t,function(a){var o;Ie(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function WZ(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var VZ=function(){function e(t){this.coordSysDims=[],this.axisMap=Ue(),this.categoryAxisMap=Ue(),this.coordSysName=t}return e}();function GZ(e){var t=e.get("coordinateSystem"),r=new VZ(t),n=UZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var UZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Cn).models[0],a=e.getReferringComponents("yAxis",Cn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Uo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Uo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Cn).models[0];t.coordSysDims=["single"],r.set("single",i),Uo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Cn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Uo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Uo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();O(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),c=o[l];r.set(c,u),Uo(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Uo(e){return e.get("type")==="category"}function jZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;YZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,f,d;if(O(a,function(y,_){Te(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!c&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(c=y))}),c&&!n&&!u&&(n=!0),c){f="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,v=c.type,p=0;O(a,function(y){y.coordDim===h&&p++});var g={name:f,coordDim:h,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:d,coordDim:d,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(d,v),m.storeDimIndex=s.ensureCalculationDimension(f,v)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:f}}function YZ(e){return!QE(e.schema)}function iL(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function qZ(e,t){return iL(e,t)?e.getCalculationInfo("stackResultDimension"):t}function KZ(e,t){var r=e.get("coordinateSystem"),n=M0.get(r),i;return t&&t.coordSysDims&&(i=Re(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=LZ(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function XZ(e,t,r){var n,i;return r&&O(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function aL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=P0(e)):(i=n.getSource(),a=i.sourceFormat===dn);var o=GZ(t),s=KZ(t,o),l=r.useEncodeDefaulter,u=Ve(l)?l:l?Rt(kq,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},f=nL(i,c),d=XZ(f.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(f),v=jZ(t,{schema:f,store:h}),p=new rL(f,t);p.setCalculationInfo(v);var g=d!=null&&ZZ(i)?function(m,y,_,b){return b===d?_:this.defaultDimValueGetter(m,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function ZZ(e){if(e.sourceFormat===dn){var t=QZ(e.data||[]);return!ge(rc(t))}}function QZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();ch(oL);const Pi=oL;var JZ=0,eQ=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++JZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Re(n,tQ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Te(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Ue(this.categories))},e}();function tQ(e){return Ie(e)&&e.value!=null?e.value:e+""}const gm=eQ;function mm(e){return e.type==="interval"||e.type==="log"}function rQ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=xP(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=sL(o),l=i.niceTickExtent=[kt(Math.ceil(e[0]/o)*o,s),kt(Math.floor(e[1]/o)*o,s)];return nQ(l,e),i}function lp(e){var t=Math.pow(10,e0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,kt(r*t)}function sL(e){return hi(e)+2}function cx(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function nQ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),cx(e,0,t),cx(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function Ph(e,t){return e>=t[0]&&e<=t[1]}function Eh(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function Lh(e,t){return e*(t[1]-t[0])+t[0]}var lL=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new gm({})),ge(i)&&(i=new gm({categories:Re(i,function(a){return Ie(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Te(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),Ph(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Eh(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(Lh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(Pi);Pi.registerClass(lL);const uL=lL;var Ba=kt,cL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return Ph(r,this._extent)},t.prototype.normalize=function(r){return Eh(r,this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=sL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var c=s.length?s[s.length-1].value:a[1];return i[1]>c&&(r?s.push({value:Ba(c+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&h0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function hL(e){var t=oQ(e),r=[];return O(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],c=Math.abs(o[1]-o[0]),f=a.scale.getExtent(),d=Math.abs(f[1]-f[0]);s=u?c/d*u:c}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var v=gt(n.get("barWidth"),s),p=gt(n.get("barMaxWidth"),s),g=gt(n.get("barMinWidth")||(pL(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:W0(a),stackId:z0(n)})}),sQ(r)}function sQ(e){var t={};O(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var c=n.barWidth;c&&!l[u].width&&(l[u].width=c,c=Math.min(s.remainedWidth,c),s.remainedWidth-=c);var f=n.barMaxWidth;f&&(l[u].maxWidth=f);var d=n.barMinWidth;d&&(l[u].minWidth=d);var h=n.barGap;h!=null&&(s.gap=h);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return O(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Tt(a).length;s=Math.max(35-l*4,15)+"%"}var u=gt(s,o),c=gt(n.gap,1),f=n.remainedWidth,d=n.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),O(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var b=m.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),m.width=b,f-=b+c*b,d--}else{var b=h;y&&yb&&(b=_),b!==h&&(m.width=b,f-=b+c*b,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var v=0,p;O(a,function(m,y){m.width||(m.width=h),p=m,v+=m.width*(1+c)}),p&&(v-=p.width*c);var g=-v/2;O(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+c)})}),r}function lQ(e,t,r){if(e&&t){var n=e[W0(t)];return n!=null&&r!=null?n[z0(r)]:n}}function uQ(e,t){var r=dL(e,t),n=hL(r);O(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=z0(i),u=n[W0(s)][l],c=u.offset,f=u.width;a.setLayout({bandWidth:u.bandWidth,offset:c,size:f})})}function cQ(e){return{seriesType:e,plan:yE(),reset:function(t){if(vL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),c=r.getCalculationInfo("stackResultDimension"),f=iL(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=a.isHorizontal(),h=fQ(i,a),v=pL(t),p=t.get("barMinHeight")||0,g=c&&r.getDimensionIndex(c),m=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var S=_.count,w=v&&up(S*3),x=v&&l&&up(S*3),C=v&&up(S),M=n.master.getRect(),E=d?M.width:M.height,A,T=b.getStore(),D=0;(A=_.next())!=null;){var N=T.get(f?g:o,A),H=T.get(s,A),$=h,G=void 0;f&&(G=+N-T.get(o,A));var F=void 0,R=void 0,j=void 0,re=void 0;if(d){var oe=n.dataToPoint([N,H]);if(f){var ye=n.dataToPoint([G,H]);$=ye[0]}F=$,R=oe[1]+y,j=oe[0]-$,re=m,Math.abs(j)>>1;e[i][1]i&&(this._approxInterval=i);var s=nf.length,l=Math.min(dQ(nf,this._approxInterval,0,s),s-1);this._interval=nf[l][1],this._minLevelUnit=nf[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return bt(r)?r:+wi(r)},t.prototype.contain=function(r){return Ph(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Eh(this.parse(r),this._extent)},t.prototype.scale=function(r){return Lh(r,this._extent)},t.type="time",t}(sc),nf=[["second",b0],["minute",w0],["hour",Kl],["quarter-day",Kl*6],["half-day",Kl*12],["day",en*1.2],["half-week",en*3.5],["week",en*7],["month",en*31],["quarter",en*95],["half-year",eS/2],["year",eS]];function hQ(e,t,r,n){var i=wi(t),a=wi(r),o=function(v){return rS(i,v,n)===rS(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},c=function(){return u()&&o("hour")},f=function(){return c()&&o("minute")},d=function(){return f()&&o("second")},h=function(){return d()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return h()}}function vQ(e,t){return e/=en,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function pQ(e){var t=30*en;return e/=t,e>6?6:e>3?3:e>2?2:1}function gQ(e){return e/=Kl,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function fx(e,t){return e/=t?w0:b0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function mQ(e){return xP(e,!0)}function yQ(e,t,r){var n=new Date(e);switch(ds(t)){case"year":case"month":n[F2(r)](0);case"day":n[B2(r)](1);case"hour":n[$2(r)](0);case"minute":n[H2(r)](0);case"second":n[z2(r)](0),n[W2(r)](0)}return n.getTime()}function _Q(e,t,r,n){var i=1e4,a=k2,o=0;function s(E,A,T,D,N,H,$){for(var G=new Date(A),F=A,R=G[D]();F1&&H===0&&T.unshift({value:T[0].value-F})}}for(var H=0;H=n[0]&&y<=n[1]&&f++)}var _=(n[1]-n[0])/t;if(f>_*1.5&&d>_/1.5||(u.push(g),f>_||e===a[h]))break}c=[]}}}for(var b=Vt(Re(u,function(E){return Vt(E,function(A){return A.value>=n[0]&&A.value<=n[1]&&!A.notAdd})}),function(E){return E.length>0}),S=[],w=b.length-1,h=0;h0;)a*=10;var s=[kt(xQ(n[0]/a)*a),kt(SQ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){eu.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=vn(r)/vn(this.base),Ph(r,this._extent)},t.prototype.normalize=function(r){return r=vn(r)/vn(this.base),Eh(r,this._extent)},t.prototype.scale=function(r){return r=Lh(r,this._extent),af(this.base,r)},t.type="log",t}(Pi),mL=V0.prototype;mL.getMinorTicks=eu.getMinorTicks;mL.getLabel=eu.getLabel;function of(e,t){return wQ(e,hi(t))}Pi.registerClass(V0);const CQ=V0;var TQ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(t,r){this[AQ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=MQ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),MQ={min:"_determinedMin",max:"_determinedMax"},AQ={min:"_dataMin",max:"_dataMax"};function PQ(e,t,r){var n=e.rawExtentInfo;return n||(n=new TQ(e,t,r),e.rawExtentInfo=n,n)}function sf(e,t){return t==null?null:cd(t)?NaN:e.parse(t)}function yL(e,t){var r=e.type,n=PQ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=dL("bar",o),l=!1;if(O(s,function(f){l=l||f.getBaseAxis()===t.axis}),l){var u=hL(s),c=EQ(i,a,t,u);i=c.min,a=c.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function EQ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=lQ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;O(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;O(o,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=t-e,f=1-(s+l)/a,d=c/f-c;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function hx(e,t){var r=t,n=yL(e,r),i=n.extent,a=r.get("splitNumber");e instanceof CQ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function LQ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new uL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new bQ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Pi.getClass(t)||sc)}}function DQ(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function lc(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Te(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ve(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(G0(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function G0(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function IQ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof uL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=lc(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;c=0||(vx.push(e),Ve(e)&&(e={install:e}),e.install(NQ))}var Nu=Pt();function FQ(e){return e.type==="category"?$Q(e):zQ(e)}function BQ(e,t){return e.type==="category"?HQ(e,t):{ticks:Re(e.scale.getTicks(),function(r){return r.value})}}function $Q(e){var t=e.getLabelModel(),r=bL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function bL(e,t){var r=wL(e,"labels"),n=U0(t),i=SL(r,n);if(i)return i;var a,o;return Ve(n)?a=TL(e,n):(o=n==="auto"?WQ(e):n,a=CL(e,o)),xL(r,n,{labels:a,labelCategoryInterval:o})}function HQ(e,t){var r=wL(e,"ticks"),n=U0(t),i=SL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ve(n))a=TL(e,n,!0);else if(n==="auto"){var s=bL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Re(s.labels,function(l){return l.tickValue})}else o=n,a=CL(e,o,!0);return xL(r,n,{ticks:a,tickCategoryInterval:o})}function zQ(e){var t=e.scale.getTicks(),r=lc(e);return{labels:Re(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function wL(e,t){return Nu(e)[t]||(Nu(e)[t]=[])}function SL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(n)),f=Math.abs(u*Math.sin(n)),d=0,h=0;l<=a[1];l+=s){var v=0,p=0,g=Zy(r({value:l}),t.font,"center","top");v=g.width*1.3,p=g.height*1.3,d=Math.max(d,v,7),h=Math.max(h,p,7)}var m=d/c,y=h/f;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),b=Nu(e.model),S=e.getExtent(),w=b.lastAutoInterval,x=b.lastTickCount;return w!=null&&x!=null&&Math.abs(w-_)<=1&&Math.abs(x-o)<=1&&w>_&&b.axisExtent0===S[0]&&b.axisExtent1===S[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=S[0],b.axisExtent1=S[1]),_}function GQ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function CL(e,t,r){var n=lc(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],c=i.count();u!==0&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=_L(e),d=o.get("showMinLabel")||f,h=o.get("showMaxLabel")||f;d&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);h&&v-l!==a[1]&&p(a[1]);function p(g){var m={value:g};s.push(r?g:{formattedLabel:n(m),rawLabel:i.getLabel(m),tickValue:g})}return s}function TL(e,t,r){var n=e.scale,i=lc(e),a=[];return O(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var px=[0,1],UQ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return mj(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),gx(n,i.count())),$g(t,px,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),gx(n,i.count()));var a=$g(t,n,px,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=BQ(this,r),i=n.ticks,a=Re(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return jQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Re(n,function(a){return Re(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return FQ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return VQ(this)},e}();function gx(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function jQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[0]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;O(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();s=1+c[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var f=a[0]>a[1];d(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&d(a[0],t[0].coord)&&t.unshift({coord:a[0]}),d(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&d(o.coord,a[1])&&t.push({coord:a[1]});function d(h,v){return h=kt(h),v=kt(v),f?h>v:hi&&(i+=gl);var h=Math.atan2(s,o);if(h<0&&(h+=gl),h>=n&&h<=i||h+gl>=n&&h+gl<=i)return l[0]=c,l[1]=f,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,g=r*Math.cos(i)+e,m=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(g-o)*(g-o)+(m-s)*(m-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=g,l[1]=m,Math.sqrt(_))}function Dd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,c=r-e,f=n-t,d=Math.sqrt(c*c+f*f);c/=d,f/=d;var h=l*c+u*f,v=h/d;s&&(v=Math.min(Math.max(v,0),1)),v*=d;var p=o[0]=e+v*c,g=o[1]=t+v*f;return Math.sqrt((p-i)*(p-i)+(g-a)*(g-a))}function ML(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),c=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(c-a)*(c-a))}var _n=[];function ZQ(e,t,r){var n=ML(t.x,t.y,t.width,t.height,e.x,e.y,_n);return r.set(_n[0],_n[1]),n}function QQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,c=t.data,f=e.x,d=e.y,h=0;h0){t=t/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Et.fromArray(e[2]),ke.sub(Un,Tn,ut),ke.sub(zn,Et,ut);var r=Un.len(),n=zn.len();if(!(r<.001||n<.001)){Un.scale(1/r),zn.scale(1/n);var i=Un.dot(zn),a=Math.cos(t);if(a1&&ke.copy(sr,Et),sr.toArray(e[1])}}}}function JQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Tn.fromArray(e[0]),ut.fromArray(e[1]),Et.fromArray(e[2]),ke.sub(Un,ut,Tn),ke.sub(zn,Et,ut);var n=Un.len(),i=zn.len();if(!(n<.001||i<.001)){Un.scale(1/n),zn.scale(1/i);var a=Un.dot(t),o=Math.cos(r);if(a=l)ke.copy(sr,Et);else{sr.scaleAndAdd(zn,s/Math.tan(Math.PI/2-c));var f=Et.x!==ut.x?(sr.x-ut.x)/(Et.x-ut.x):(sr.y-ut.y)/(Et.y-ut.y);if(isNaN(f))return;f<0?ke.copy(sr,ut):f>1&&ke.copy(sr,Et)}sr.toArray(e[1])}}}}function yx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function eJ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Cg(n[0],n[1]),a=Cg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=nv([],n[1],n[0],o/i),l=nv([],n[1],n[2],o/a),u=nv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var c=1;c0&&a&&S(-c/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&w(-m,.8),y<0&&w(y,.8),_(),b(m,y,1),b(y,m,-1),_(),m<0&&x(-m),y<0&&x(y);function _(){m=p.rect[t]-n,y=i-g.rect[t]-g.rect[r]}function b(C,M,E){if(C<0){var A=Math.min(M,-C);if(A>0){S(A*E,0,o);var T=A+C;T<0&&w(-T*E,1)}else w(-C*E,1)}}function S(C,M,E){C!==0&&(u=!0);for(var A=M;A0)for(var T=0;T0;T--){var $=E[T-1]*H;S(-$,T,o)}}}function x(C){var M=C<0?-1:1;C=Math.abs(C);for(var E=Math.ceil(C/(o-1)),A=0;A0?S(E,0,A+1):S(-E,o-A-1,o),C-=E,C<=0)return}return u}function tJ(e,t,r,n){return DL(e,"x","width",t,r,n)}function IL(e,t,r,n){return DL(e,"y","height",t,r,n)}function OL(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new et(0,0,0,0);function n(p){if(!p.ignore){var g=p.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(d,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Er(n,u,r,l)}else if(n.attr(u),!oc(n).valueAnimation){var f=qe(n.style.opacity,1);n.style.opacity=0,Hr(n,{style:{opacity:f}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};lf(h,u,uf),lf(h,n.states.select,uf)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};lf(v,u,uf),lf(v,n.states.emphasis,uf)}lq(n,l,c,r,r)}if(i&&!i.ignore&&!i.invisible){var a=iJ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Er(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Hr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}();const oJ=aJ;var fp=Pt();function sJ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=fp(r).labelManager;i||(i=fp(r).labelManager=new oJ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=fp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function lJ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Is(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function cJ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,c=r.get(["lineStyle","width"])||2;o-=c/2,s-=c/2,l+=c,u+=c,o=Math.floor(o),l=Math.round(l);var f=new Ht({shape:{x:o,y:s,width:l,height:u}});if(t){var d=e.getBaseAxis(),h=d.isHorizontal(),v=d.inverse;h?(v&&(f.shape.x+=l),f.shape.width=0):(v||(f.shape.y+=u),f.shape.height=0);var p=Ve(i)?function(g){i(g,f)}:null;Hr(f,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return f}function fJ(e,t,r){var n=e.getArea(),i=kt(n.r0,1),a=kt(n.r,1),o=new Ao({shape:{cx:kt(e.cx,1),cy:kt(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Hr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function dJ(e,t,r,n,i){if(e){if(e.type==="polar")return fJ(e,t,r);if(e.type==="cartesian2d")return cJ(e,t,r,n,i)}else return null;return null}function RL(e,t){return e.type===t}var hJ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),c=l.getExtent(),f=n.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(f||1),h=Math.round(s/d);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var v=void 0;Te(a)?v=hJ[a]:Ve(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,vJ))}}}}}var kL=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return aL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.dataToPoint(a.clampData(r));if(i)O(a.getAxes(),function(f,d){if(f.type==="category"){var h=f.getTicksCoords(),v=a.clampData(r)[d];n&&(n[d]==="x1"||n[d]==="y1")&&(v+=1),v>h.length-1&&(v=h.length-1),v<0&&(v=0),h[v]&&(o[d]=f.toGlobalCoord(h[v].coord))}});else{var s=this.getData(),l=s.getLayout("offset"),u=s.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;o[c]+=l+u/2}return o}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(wo);wo.registerClass(kL);const bx=kL;var gJ=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return aL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=I2(bx.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(bx);const mJ=gJ;var yJ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),_J=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new yJ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,c=n.startAngle,f=n.endAngle,d=n.clockwise,h=Math.PI*2,v=d?f-cMath.PI/2&&cs)return!0;s=f}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){wd(a,r,ft(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(co),xx={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=dp(t.x,e.x),s=hp(t.x+t.width,i),l=dp(t.y,e.y),u=hp(t.y+t.height,a),c=si?s:o,t.y=f&&l>a?u:l,t.width=c?0:s-o,t.height=f?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||f},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=hp(t.r,e.r),a=dp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},Cx={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Ht({shape:se({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var c=u.shape,f=i?"height":"width";c[f]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?Sx:Ao,c=new u({shape:n,z2:1});c.name="item";var f=NL(i);if(c.calculateTextPosition=bJ(f,{isRoundCap:u===Sx}),a){var d=c.shape,h=i?"r":"endAngle",v={};d[h]=i?0:n.startAngle,v[h]=n[h],(s?Er:Hr)(c,{shape:v},a)}return c}};function CJ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function Tx(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Er:Hr)(r,{shape:l},t,i,null);var c=t?e.baseAxis.model:null;(o?Er:Hr)(r,{shape:u},c,i)}function Mx(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function AJ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function NL(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function Px(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");s||e.setShape("r",n.get(["itemStyle","borderRadius"])||0),e.useStyle(l);var u=n.getShallow("cursor");u&&e.attr("cursor",u);var c=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",f=E2(n);m0(e,f,{labelFetcher:a,labelDataIndex:r,defaultText:lJ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=e.getTextContent();if(s&&d){var h=n.get(["label","position"]);e.textConfig.inside=h==="middle"?!0:null,wJ(e,h==="outside"?c:h,NL(o),n.get(["label","rotate"]))}sq(d,f,a.getRawValue(r),function(p){return uJ(t,p)});var v=n.getModel(["emphasis"]);JP(e,v.get("focus"),v.get("blurScope"),v.get("disabled")),e2(e,n),AJ(i)&&(e.style.fill="none",e.style.stroke="none",O(e.states,function(p){p.style&&(p.style.fill=p.style.stroke="none")}))}function PJ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var EJ=function(){function e(){}return e}(),Ex=function(e){pe(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new EJ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,c=0;c=0?r:null},30,!1);function LJ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,f=a.length/3;c=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[c]}return-1}function FL(e,t,r){if(RL(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function DJ(e,t,r){var n=e.type==="polar"?Ao:Ht;return new n({shape:FL(t,r,e),silent:!0,z2:0})}const IJ=xJ;function OJ(e){e.registerChartView(IJ),e.registerSeriesModel(mJ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Rt(uQ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,cQ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,pJ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var hf=Math.PI*2,Ix=Math.PI/180;function BL(e,t){return Ls(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function $L(e,t){var r=BL(e,t),n=e.get("center"),i=e.get("radius");ge(i)||(i=[0,i]);var a=gt(r.width,t.getWidth()),o=gt(r.height,t.getHeight()),s=Math.min(a,o),l=gt(i[0],s/2),u=gt(i[1],s/2),c,f,d=e.coordinateSystem;if(d){var h=d.dataToPoint(n);c=h[0]||0,f=h[1]||0}else ge(n)||(n=[n,n]),c=gt(n[0],a)+r.x,f=gt(n[1],o)+r.y;return{cx:c,cy:f,r0:l,r:u}}function RJ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=BL(n,r),s=$L(n,r),l=s.cx,u=s.cy,c=s.r,f=s.r0,d=-n.get("startAngle")*Ix,h=n.get("minAngle")*Ix,v=0;i.each(a,function(E){!isNaN(E)&&v++});var p=i.getSum(a),g=Math.PI/(p||v)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var S=hf,w=0,x=d,C=m?1:-1;if(i.setLayout({viewRect:o,r:c}),i.each(a,function(E,A){var T;if(isNaN(E)){i.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:f,r:y?NaN:c});return}y!=="area"?T=p===0&&_?g:E*g:T=hf/v,Tr?m:g,S=Math.abs(_.label.y-r);if(S>=b.maxY){var w=_.label.x-t-_.len2*i,x=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:h:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var g=(n.style.margin||0)+2.1;a.height=p.height+g,a.y-=(a.height-f)/2}}}function vp(e){return e.position==="center"}function BJ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*NJ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,f=s.y,d=s.height;function h(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var x in w.states)if(w.states[x].ignore===!1)return!0;return!1}t.each(function(w){var x=t.getItemGraphicEl(w),C=x.shape,M=x.getTextContent(),E=x.getTextGuideLine(),A=t.getItemModel(w),T=A.getModel("label"),D=T.get("position")||A.get(["emphasis","label","position"]),N=T.get("distanceToLabelLine"),H=T.get("alignTo"),$=gt(T.get("edgeDistance"),u),G=T.get("bleedMargin"),F=A.getModel("labelLine"),R=F.get("length");R=gt(R,u);var j=F.get("length2");if(j=gt(j,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":oe>0?"left":"right"}var U=Math.PI,K=0,ne=T.get("rotate");if(bt(ne))K=ne*(U/180);else if(D==="center")K=0;else if(ne==="radial"||ne===!0){var fe=oe<0?-re+U:-re;K=fe}else if(ne==="tangential"&&D!=="outside"&&D!=="outer"){var te=Math.atan2(oe,ye);te<0&&(te=U*2+te);var ie=ye>0;ie&&(te=U+te),K=te-U}if(a=!!K,M.x=Ae,M.y=V,M.rotation=K,M.setStyle({verticalAlign:"middle"}),q){M.setStyle({align:W});var he=M.states.select;he&&(he.x+=M.x,he.y+=M.y)}else{var X=M.getBoundingRect().clone();X.applyTransform(M.getComputedTransform());var we=(M.style.margin||0)+2.1;X.y-=we/2,X.height+=we,r.push({label:M,labelLine:E,position:D,len:R,len2:j,minTurnAngle:F.get("minTurnAngle"),maxSurfaceAngle:F.get("maxSurfaceAngle"),surfaceNormal:new ke(oe,ye),linePoints:Q,textAlign:W,labelDistance:N,labelAlignTo:H,edgeDistance:$,bleedMargin:G,rect:X,unconstrainedWidth:X.width,labelStyleWidth:M.style.width})}x.setTextConfig({inside:q})}}),!a&&e.get("avoidLabelOverlap")&&FJ(r,n,i,l,u,d,c,f);for(var p=0;p0){for(var c=o.getItemLayout(0),f=1;isNaN(c&&c.startAngle)&&f=a.r0}},t.type="pie",t}(co);const zJ=HJ;function WJ(e,t,r){t=ge(t)&&{coordDimensions:t}||se({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=nL(n,t).dimensions,a=new rL(i,e);return a.initData(n,r),a}var VJ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const GJ=VJ;var UJ=Pt(),jJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new GJ(_t(this.getData,this),_t(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return WJ(this,{coordDimensions:["value"],encodeDefaulter:Rt(Nq,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=UJ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=yj(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Hg(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(wo);const YJ=jJ;function qJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(bt(o)&&!isNaN(o)&&o<0)})}}}function KJ(e){e.registerChartView(zJ),e.registerSeriesModel(YJ),xX("pie",e.registerAction),e.registerLayout(Rt(RJ,"pie")),e.registerProcessor(kJ("pie")),e.registerProcessor(qJ("pie"))}var XJ=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(St);const ZJ=XJ;var ym=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Cn).models[0]},t.type="cartesian2dAxis",t}(St);Jn(ym,kQ);var zL={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},QJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},zL),j0=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},zL),JJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},j0),eee=dt({logBase:10},j0);const tee={category:QJ,value:j0,time:JJ,log:eee};var ree={value:1,category:1,time:1,log:1};function Rx(e,t,r,n){O(ree,function(i,a){var o=st(st({},tee[a],!0),n,!0),s=function(l){pe(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+a,c}return u.prototype.mergeDefaultAndTheme=function(c,f){var d=Du(this),h=d?xh(c):{},v=f.getTheme();st(c,v.get(a+"Axis")),st(c,this.getDefaultOption()),c.type=kx(c),d&&Ds(c,h,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=gm.createByAxisModel(this))},u.prototype.getCategories=function(c){var f=this.option;if(f.type==="category")return c?f.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",kx)}function kx(e){return e.type||(e.data?"category":"value")}var nee=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Re(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),Vt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const iee=nee;var _m=["x","y"];function Nx(e){return e.type==="interval"||e.type==="time"}var aee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=_m,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!Nx(r)||!Nx(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var c=(s[0]-o[0])/l,f=(s[1]-o[1])/u,d=o[0]-i[0]*c,h=o[1]-a[0]*f,v=this._transform=[c,0,0,f,d,h];this._invTransform=lh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new et(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return on(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return on(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new et(i,a,o,s)},t}(iee),oee=function(e){pe(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(YQ);const see=oee;function bm(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,c=n.getRect(),f=[c.x,c.x+c.width,c.y,c.y+c.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[f[2]-h,f[3]+h]:[f[0]-h,f[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[d.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[d[l]]:f[0],u==="x"?v[d[l]]:f[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=g[s],a.labelOffset=o?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),Su(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var m=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-m:m,a.z2=1,a}function Fx(e){return e.get("coordinateSystem")==="cartesian2d"}function Bx(e){var t={xAxisModel:null,yAxisModel:null};return O(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Cn).models[0];t[n]=a}),t}var pp=Math.log;function lee(e,t,r){var n=sc.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=yL(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if(e.type==="log"){var d=pp(e.base);u=[pp(u[0])/d,pp(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:c,fixMax:f});var h=n.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var v=n.getInterval.call(e),p=u[0],g=u[1];if(c&&f)v=(g-p)/o;else if(c)for(g=u[0]+v*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)v=lp(v),p=u[1]-v*o;else{var m=e.getTicks().length-1;m>o&&(v=lp(v));var y=v*o;g=Math.ceil(u[1]/v)*v,p=kt(g-y),p<0&&u[0]>=0?(p=0,g=kt(y)):g>0&&u[1]<=0&&(g=0,p=-kt(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,g+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,g-v)}var uee=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=_m,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Tt(o),u=l.length;if(u){for(var c=[],f=u-1;f>=0;f--){var d=+l[f],h=o[d],v=h.model,p=h.scale;mm(p)&&v.get("alignTicks")&&v.get("interval")==null?c.push(h):(hx(p,v),mm(p)&&(s=h))}c.length&&(s||(s=c.pop(),hx(s.scale,s.model)),O(c,function(g){lee(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};O(n.x,function(o){$x(n,"y",o,a)}),O(n.y,function(o){$x(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ls(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(O(s,function(u){if(!u.model.get(["axisLabel","inside"])){var c=IQ(u);if(c){var f=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);o[f]-=c[f]+d,u.position==="top"?o.y+=c.height+d:u.position==="left"&&(o.x+=c.width+d)}}}),l()),O(this._coordsList,function(u){u.calcAffineTransform()});function l(){O(s,function(u){var c=u.isHorizontal(),f=c?[0,o.width]:[0,o.height],d=u.inverse?1:0;u.setExtent(f[d],f[1-d]),cee(u,c?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Ie(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):md(i-Ki)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),zx={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(on(s,s,o),on(l,l,o));var c=se({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new bo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Au(f.shape,f.style.lineWidth),f.anid="line",r.add(f);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);Te(d)&&(d=[d,d]),(Te(h)||bt(h))&&(h=[h,h]);var v=FX(t.get(["axisLine","symbolOffset"])||0,h),p=h[0],g=h[1];O([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(m,y){if(d[y]!=="none"&&d[y]!=null){var _=R0(d[y],-p/2,-g/2,p,g,c.stroke,!0),b=m.r+m.offset,S=u?l:s;_.attr({rotation:m.rotate,x:S[0]+b*Math.cos(e.rotation),y:S[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=vee(r,n,t,e),a=gee(r,n,t,e);if(hee(t,a,i),pee(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=LL(Re(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));OL(o)}},axisName:function(e,t,r,n){var i=Su(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,f=[a==="start"?u[0]-c*l:a==="end"?u[1]+c*l:(u[0]+u[1])/2,Vx(a)?e.labelOffset+o*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*Ki/180);var v;Vx(a)?d=fo.innerTextLayout(e.rotation,h??e.rotation,o):(d=dee(e.rotation,a,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=Su(e.nameTruncateMaxWidth,g.maxWidth,v),_=new dr({x:f[0],y:f[1],rotation:d.rotation,silent:fo.isLabelSilent(t),style:la(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(p0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=fo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,ft(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function dee(e,t,r,n){var i=SP(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return md(i-Ki/2)?(o=l?"bottom":"top",a="center"):md(i-Ki*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iKi/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function hee(e,t,r){if(!_L(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],c=r[1],f=r[r.length-1],d=r[r.length-2];n===!1?(Gr(a),Gr(u)):Wx(a,o)&&(n?(Gr(o),Gr(c)):(Gr(a),Gr(u))),i===!1?(Gr(s),Gr(f)):Wx(l,s)&&(i?(Gr(l),Gr(d)):(Gr(s),Gr(f)))}}function Gr(e){e&&(e.ignore=!0)}function Wx(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=Yy([]);return qy(i,i,-e.rotation),r.applyTransform(us([],i,e.getLocalTransform())),n.applyTransform(us([],i,t.getLocalTransform())),r.intersect(n)}}function Vx(e){return e==="middle"||e==="center"}function WL(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function See(e){var t=Y0(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=wm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var f=this.__startIndex;f15)break}}N.prevElClipPaths&&m.restore()};if(y)if(y.length===0)C=g.__endIndex;else for(var E=h.dpr,A=0;A0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?pf:0),this._needsManuallyCompositing),c.__builtin__||Gy("ZLevel "+u+" has been used by unkown layer "+c.id),c!==a&&(c.__used=!0,c.__startIndex!==l&&(c.__dirty=!0),c.__startIndex=l,c.incremental?c.__drawIndex=-1:c.__drawIndex=l,r(l),a=c),i.__dirty&Rr&&!i.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(f,d){!f.__used&&f.getElementCount()>0&&(f.__dirty=!0,f.__startIndex=f.__endIndex=f.__drawIndex=0),f.__dirty&&f.__drawIndex<0&&(f.__drawIndex=f.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,O(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=Y0(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new nq[a.type](qx(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new dr(qx(r.label));t.add(a),Xx(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),Xx(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=v0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){ZA(u.event)},onmousedown:_p(this._onHandleDragMove,this,0,0),drift:_p(this._onHandleDragMove,this),ondragend:_p(this._onHandleDragEnd,this)}),n.add(i)),Zx(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ge(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,bE(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){Kx(this._axisPointerModel,!r&&this._moveAnimation,this._handle,bp(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(bp(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(bp(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),sm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function Kx(e,t,r,n){YL(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Er(r,n,e):(r.stopAnimation(),r.attr(n)))}function YL(e,t){if(Ie(e)&&Ie(t)){var r=!0;return O(t,function(n,i){r=r&&YL(e[i],n)}),!!r}else return e===t}function Xx(e,t){e[t.get(["label","show"])?"show":"hide"]()}function bp(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function Zx(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const zee=Hee;function Wee(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function Vee(e,t,r,n,i){var a=r.get("value"),o=qL(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=Sh(s.get("padding")||0),u=s.getFont(),c=Zy(o,u),f=i.position,d=c.width+l[1]+l[3],h=c.height+l[0]+l[2],v=i.align;v==="right"&&(f[0]-=d),v==="center"&&(f[0]-=d/2);var p=i.verticalAlign;p==="bottom"&&(f[1]-=h),p==="middle"&&(f[1]-=h/2),Gee(f,d,h,n);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=t.get(["axisLine","lineStyle","color"])),e.label={x:f[0],y:f[1],style:la(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function Gee(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function qL(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:G0(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};O(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,f=u&&u.getDataParams(c);f&&s.seriesData.push(f)}),Te(o)?a=o.replace("{value}",a):Ve(o)&&(a=o(s))}return a}function KL(e,t,r){var n=xu();return qy(n,n,r.rotation),Pg(n,n,r.position),h0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function Uee(e,t,r,n,i,a){var o=VL.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),Vee(t,n,i,a,{position:KL(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function jee(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function Yee(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var qee=function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),c=Qx(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var d=Wee(a),h=Kee[u](s,f,c);h.style=d,r.graphicKey=h.type,r.pointer=h}var v=bm(l.model,i);Uee(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=bm(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=KL(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=Qx(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,f=[r.x,r.y];f[c]+=n[c],f[c]=Math.min(l[1],f[c]),f[c]=Math.max(l[0],f[c]);var d=(u[1]+u[0])/2,h=[d,d];h[c]=f[c];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:f[0],y:f[1],rotation:r.rotation,cursorPoint:h,tooltipOption:v[c]}},t}(zee);function Qx(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var Kee={line:function(e,t,r){var n=jee([t,r[0]],[t,r[1]],Jx(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:Yee([t-n/2,r[0]],[n,i],Jx(e))}}};function Jx(e){return e.dim==="x"?0:1}const Xee=qee;var Zee=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(St);const Qee=Zee;var vi=Pt(),Jee=O;function XL(e,t,r){if(!Ge.node){var n=t.getZr();vi(n).records||(vi(n).records={}),ete(n,t);var i=vi(n).records[e]||(vi(n).records[e]={});i.handler=r}}function ete(e,t){if(vi(e).initialized)return;vi(e).initialized=!0,r("click",Rt(eC,"click")),r("mousemove",Rt(eC,"mousemove")),r("globalout",rte);function r(n,i){e.on(n,function(a){var o=nte(t);Jee(vi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),tte(o.pendings,t)})}}function tte(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function rte(e,t,r){e.handler("leave",null,r)}function eC(e,t,r,n){t.handler(e,r,n)}function nte(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function xm(e,t){if(!Ge.node){var r=t.getZr(),n=(vi(r).records||{})[e];n&&(vi(r).records[e]=null)}}var ite=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";XL("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){xm("axisPointer",n)},t.prototype.dispose=function(r,n){xm("axisPointer",n)},t.type="axisPointer",t}(Si);const ate=ite;function ZL(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=nc(a,e);if(o==null||o<0||ge(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),f=c.dim,d=u.dim,h=f==="x"||f==="radius"?1:0,v=a.mapDimension(d),p=[];p[h]=a.get(v,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Re(l.dimensions,function(m){return a.mapDimension(m)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:s}}var tC=Pt();function ote(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||_t(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Uf(i)&&(i=ZL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Uf(i),u=a.axesInfo,c=s.axesInfo,f=n==="leave"||Uf(i),d={},h={},v={list:[],map:{}},p={showPointer:Rt(lte,h),showTooltip:Rt(ute,v)};O(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);O(s.coordSysAxesInfo[y],function(b,S){var w=b.axis,x=hte(u,b);if(!f&&_&&(!u||x)){var C=x&&x.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&rC(b,C,p,!1,d)}})});var g={};return O(c,function(m,y){var _=m.linkGroup;_&&!h[y]&&O(_.axesInfo,function(b,S){var w=h[S];if(b!==m&&w){var x=w.value;_.mapper&&(x=m.axis.scale.parse(_.mapper(x,nC(b),nC(m)))),g[m.key]=x}})}),O(g,function(m,y){rC(c[y],m,p,!0,d)}),cte(h,c,d),fte(v,i,e,o),dte(c,o,r),d}}function rC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=ste(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&se(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function ste(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return O(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),f,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(c,e,r);d=h.dataIndices,f=h.nestestValue}else{if(d=l.getData().indicesOfNearest(c[0],e,r.type==="category"?.5:null),!d.length)return;f=l.getData().get(c[0],d[0])}if(!(f==null||!isFinite(f))){var v=e-f,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=f,a.length=0),O(d,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function lte(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function ute(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Fu(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function cte(e,t,r){var n=r.axesInfo=[];O(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function fte(e,t,r,n){if(Uf(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function dte(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=tC(n)[i]||{},o=tC(n)[i]={};O(e,function(u,c){var f=u.axisPointerModel.option;f.status==="show"&&O(f.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;o[h]=d})});var s=[],l=[];O(a,function(u,c){!o[c]&&l.push(u)}),O(o,function(u,c){!a[c]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function hte(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function nC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Uf(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function QL(e){GL.registerAxisPointerClass("CartesianAxisPointer",Xee),e.registerComponentModel(Qee),e.registerComponentView(ate),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ge(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=mee(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},ote)}function vte(e){ua(Iee),ua(QL)}function pte(e,t){var r=Sh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Ht({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(St);const mte=gte;function JL(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function eD(e){if(Ge.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var c=u*Math.PI/180,f=o+i,d=f*Math.abs(Math.cos(c))+f*Math.abs(Math.sin(c)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-f)/2)*100)/100;s+=";"+a+":-"+h+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Cte(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=Ge.transformSupported?","+q0+n:",left"+n+",top"+n),bte+":"+i}function iC(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Ge.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=Ge.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+q0+":"+o+";":[["top",0],["left",0],[tD,o]]}function Tte(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),O(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Mte(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),c=e.getModel("textStyle"),f=mE(e,"html"),d=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+d),t&&i&&n.push(Cte(i,r)),a&&n.push("background-color:"+a),O(["width","color","radius"],function(h){var v="border-"+h,p=G2(v),g=e.get(p);g!=null&&n.push(v+":"+g+(h==="color"?"":"px"))}),n.push(Tte(c)),f!=null&&n.push("padding:"+Sh(f).join("px ")+"px"),n.join(";")+";"}function aC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&n9(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Ate=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,Ge.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;aC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,c=a.painter.getViewportRoot();jr(c,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=_te(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=wte+Mte(t,!this._firstShow,this._longHide)+iC(a[0],a[1],!0)+("border-color:"+Lu(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Te(a)&&n.get("trigger")==="item"&&!JL(n)&&(s=xte(n,i,a)),Te(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ge(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||Ge.node||!i.getDom())){var o=lC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Nte(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var c=Dte;c.x=a.x,c.y=a.y,c.update(),ft(c).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:c},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var f=ZL(a,n),d=f.point[0],h=f.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:f.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(lC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),f=ml([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(f.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Al(i,function(u){if(ft(u).dataIndex!=null)return s=u,!0;if(ft(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=_t(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=ml([n.tooltipOption],a),l=this._renderMode,u=[],c=Ou("section",{blocks:[],noHeader:!0}),f=[],d=new Xv;O(r,function(y){O(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),S=_.value;if(!(!b||S==null)){var w=qL(S,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),x=Ou("section",{header:w,noHeader:!Vn(w),sortBlocks:!0,blocks:[]});c.blocks.push(x),O(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),E=C.dataIndexInside,A=M.getDataParams(E);if(!(A.dataIndex<0)){A.axisDim=_.axisDim,A.axisIndex=_.axisIndex,A.axisType=_.axisType,A.axisId=_.axisId,A.axisValue=G0(b.axis,{value:S}),A.axisValueLabel=w,A.marker=d.makeTooltipMarker("item",Lu(A.color),l);var T=SS(M.formatTooltip(E,!0,null)),D=T.frag;if(D){var N=ml([M],a).get("valueFormatter");x.blocks.push(N?se({valueFormatter:N},D):D)}T.text&&f.push(T.text),u.push(A)}})}})}),c.blocks.reverse(),f.reverse();var h=n.position,v=s.get("order"),p=AS(c,d,l,v,i.get("useUTC"),s.get("textStyle"));p&&f.unshift(p);var g=l==="richText"?` -`:"
",m=f.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=ft(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,f=o.dataType,d=u.getData(f),h=this._renderMode,v=r.positionDefault,p=ml([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(c,f),y=new Xv;m.marker=y.makeTooltipMarker("item",Lu(m.color),h);var _=Sx(u.formatTooltip(c,!1,f)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?Ex(x?se({valueFormatter:x},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+c;this._showOrMove(p,function(){this._showTooltipContent(p,S,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=ft(n),o=a.tooltipConfig,s=o.option||{};if(Te(s)){var l=s;s={content:l,formatter:l}}var u=[s],c=this._ecModel.getComponent(a.componentMainType,a.componentIndex);c&&u.push(c),u.push({formatter:s.content});var f=r.positionDefault,d=ml(u,this._tooltipModel,f?{position:f}:null),h=d.get("content"),v=Math.random()+"",p=new Xv;this._showOrMove(d,function(){var g=Qe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,c){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var f=this._tooltipContent;f.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Te(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=mh(m.axisValue,h,g)),h=UE(h,i,!0)}else if(Ve(d)){var _=_t(function(b,x){b===this._ticket&&(f.setContent(x,c,r,p,l),this._updatePosition(r,l,o,s,f,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;f.setContent(h,c,r,p,l),f.show(r,p),this._updatePosition(r,l,o,s,f,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get("position");var f=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ve(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,c],contentSize:f.slice()})),ge(n))i=gt(n[0],u),a=gt(n[1],c);else if(Ie(n)){var p=n;p.width=f[0],p.height=f[1];var g=Ls(p,{width:u,height:c});i=g.x,a=g.y,d=null,h=null}else if(Te(n)&&l){var m=kte(n,v,f,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=Ote(i,a,o,u,c,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=uC(d)?f[0]/2:d==="right"?f[0]:0),h&&(a-=uC(h)?f[1]/2:h==="bottom"?f[1]:0),JL(r)){var m=Rte(i,a,o,u,c);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&O(i,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},f=c.dataByAxis||[];o=o&&u.length===f.length,o&&O(u,function(d,h){var v=f[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&O(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&O(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ge.node||!n.getDom()||(sm(this,"_updatePosition"),this._tooltipContent.dispose(),Sm("itemTooltip",n))},t.type="tooltip",t}(xi);function ml(e,t,r){var n=t.ecModel,i;r?(i=new rr(r,n,n),i=new rr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof rr&&(o=o.get("tooltip",!0)),Te(o)&&(o={formatter:o}),o&&(i=new rr(o,i,n)))}return i}function lC(e,t){return e.dispatchAction||_t(t.dispatchAction,t)}function Ote(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Rte(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function kte(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+o;break;case"left":s=t.x-i-o,l=t.y+c/2-a/2;break;case"right":s=t.x+u+o,l=t.y+c/2-a/2}return[s,l]}function uC(e){return e==="center"||e==="middle"}function Nte(e,t,r){var n=r0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=ic(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var c=ft(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const Fte=Ite;function Bte(e){ua(QL),e.registerComponentModel(mte),e.registerComponentView(Fte),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Tr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Tr)}var $te=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(xt),Hte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),c=new dr({style:la(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),f=c.getBoundingRect(),d=r.get("subtext"),h=new dr({style:la(s,{text:d,fill:s.getTextColor(),y:f.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);c.silent=!v&&!g,h.silent=!p&&!g,v&&c.on("click",function(){ix(v,"_"+r.get("target"))}),p&&h.on("click",function(){ix(p,"_"+r.get("subtarget"))}),ft(c).eventData=ft(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(c),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};c.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Ht({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(xi);function zte(e){e.registerComponentModel($te),e.registerComponentView(Hte)}var Wte=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},Vte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&O(n,function(a,o){Te(a)&&(a={type:a}),n[o]=st(a,Wte(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(xt);const Cm=Vte;var jo=Rt,Tm=O,gf=cn,Gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new gf),this.group.add(this._selectorGroup=new gf),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var c=r.getBoxLayoutParams(),f={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ls(c,f,d),v=this.layoutInner(r,o,h,a,l,u),p=Ls(dt({width:v.width,height:v.height},c),f,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=pte(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),c=Ue(),f=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),Tm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` -`)){var g=new gf;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!c.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,x,b,f,a);w.on("click",jo(cC,p,null,a,d)).on("mouseover",jo(Mm,m.name,null,a,d)).on("mouseout",jo(Am,m.name,null,a,d)),c.set(p,!0)}else i.eachRawSeries(function(S){if(!c.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),P=C.getItemVisual(M,"style"),A=C.getItemVisual(M,"legendIcon"),T=so(P.fill);T&&T[3]===0&&(T[3]=.2,P=se(se({},P),{fill:Ky(T,"rgba")}));var D=this._createItem(S,p,v,h,n,r,{},P,A,f,a);D.on("click",jo(cC,null,p,a,d)).on("mouseover",jo(Mm,null,p,a,d)).on("mouseout",jo(Am,null,p,a,d)),c.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Tm(r,function(u){var c=u.type,f=new dr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(f);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);m0(f,{normal:d,emphasis:h},{defaultText:u.title}),Kg(f)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,c,f,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");c=_||c||"roundRect";var b=Ute(c,a,l,u,h,g,d),x=new gf,w=a.getModel("textStyle");if(Ve(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:c,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;x.add(jte({itemWidth:v,itemHeight:p,icon:c,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,P=o.get("formatter"),A=n;Te(P)&&P?A=P.replace("{name}",n??""):Ve(P)&&(A=P(n));var T=a.get("inactiveColor");x.add(new dr({style:la(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():T,align:M,verticalAlign:"middle"})}));var D=new Ht({shape:x.getBoundingRect(),invisible:!0}),N=a.getModel("tooltip");return N.get("show")&&p0({el:D,componentModel:o,itemName:n,itemTooltipOption:N.option}),x.add(D),x.eachChild(function(H){H.silent=!0}),D.silent=!f,this.getContentGroup().add(x),Kg(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Xl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var c=l.getBoundingRect(),f=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),o){Xl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=c[g]+v:f[p]+=d[g]+v,h[1-p]+=c[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=f[0],l.y=f[1];var _={x:0,y:0};return _[g]=c[g]+v+d[g],_[m]=Math.max(c[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=f[0],l.y=f[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(xi);function Ute(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),Tm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",f=l.getShallow("decal");u.decal=!f||f==="inherit"?n.decal:dm(f,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[c]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[c];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function jte(e){var t=e.icon||"roundRect",r=R0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function cC(e,t,r,n){Am(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),Mm(e,t,r,n)}function nD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=c[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,c.setPosition(g),f.setPosition(m),d.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:h[o],x[s]=Math.max(h[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),f.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],f.setClipPath(new Ht({shape:w})),f.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Pr(c,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;O(["pagePrev","pageNext"],function(c){var f=c+"DataIndex",d=n[f]!=null,h=i.childOfName(c);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Te(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=wp[o],l=xp[o],u=this._findTargetItemIndex(n),c=i.children(),f=c[u],d=c.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!f)return v;var p=b(f);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(c[g]),(!_&&y.e>m.s+a||_&&!x(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(c[g]),(!_||!x(y,_.s))&&m.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(iD);const Qte=Zte;function Jte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ere(e){ua(aD),e.registerComponentModel(Xte),e.registerComponentView(Qte),Jte(e)}function tre(e){ua(aD),ua(ere)}ua([KJ,OJ,$ee,sJ,zte,Bte,tre,vte]);function rre(e,t,r){const n=B0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return aa.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function nre(e,t){const r=B0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxy_type_count.tcp!=null&&t.proxy_type_count.tcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxy_type_count.udp!=null&&t.proxy_type_count.udp!=0&&(n.series[0].data.push({value:t.proxy_type_count.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxy_type_count.http!=null&&t.proxy_type_count.http!=0&&(n.series[0].data.push({value:t.proxy_type_count.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxy_type_count.https!=null&&t.proxy_type_count.https!=0&&(n.series[0].data.push({value:t.proxy_type_count.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxy_type_count.stcp!=null&&t.proxy_type_count.stcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxy_type_count.sudp!=null&&t.proxy_type_count.sudp!=0&&(n.series[0].data.push({value:t.proxy_type_count.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxy_type_count.xtcp!=null&&t.proxy_type_count.xtcp!=0&&(n.series[0].data.push({value:t.proxy_type_count.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function ire(e,t,r){const n={width:"600px",height:"400px"},i=B0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const c of l){const f='';u+=f+c.seriesName+": "+aa.fileSize(c.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return aa.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const hC=ce({__name:"LongSpan",props:{content:null,length:null},setup(e){return(t,r)=>{const n=Ju;return Y(),me(pt,null,[ee(n,{content:e.content,placement:"top"},{default:Z(()=>[nr(ae("span",null,Me(e.content.slice(0,e.length))+"...",513),[[yi,e.content.length>e.length]])]),_:1},8,["content"]),nr(ae("span",null,Me(e.content),513),[[yi,e.content.length<30]])],64)}}}),are={class:"source"},ore=ae("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),sre=ae("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),lre=ce({__name:"ServerOverview",setup(e){let t=B({version:"",bind_port:0,kcp_bind_port:0,quic_bind_port:0,vhost_http_port:0,vhost_https_port:0,tcpmux_httpconnect_port:0,subdomain_host:"",max_pool_count:0,max_ports_per_client:"",allow_ports_str:"",tls_only:!1,heart_beat_timeout:0,client_counts:0,cur_conns:0,proxy_counts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bind_port=n.bind_port,t.value.kcp_bind_port=n.kcp_bind_port,t.value.quic_bind_port=n.quic_bind_port,t.value.vhost_http_port=n.vhost_http_port,t.value.vhost_https_port=n.vhost_https_port,t.value.tcpmux_httpconnect_port=n.tcpmux_httpconnect_port,t.value.subdomain_host=n.subdomain_host,t.value.max_pool_count=n.max_pool_count,t.value.max_ports_per_client=n.max_ports_per_client,t.value.max_ports_per_client=="0"&&(t.value.max_ports_per_client="no limit"),t.value.allow_ports_str=n.allow_ports_str,t.value.tls_only=n.tls_only,t.value.heart_beat_timeout=n.heart_beat_timeout,t.value.client_counts=n.client_counts,t.value.cur_conns=n.cur_conns,t.value.proxy_counts=0,n.proxy_type_count!=null&&(n.proxy_type_count.tcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.tcp),n.proxy_type_count.udp!=null&&(t.value.proxy_counts+=n.proxy_type_count.udp),n.proxy_type_count.http!=null&&(t.value.proxy_counts+=n.proxy_type_count.http),n.proxy_type_count.https!=null&&(t.value.proxy_counts+=n.proxy_type_count.https),n.proxy_type_count.stcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.stcp),n.proxy_type_count.sudp!=null&&(t.value.proxy_counts+=n.proxy_type_count.sudp),n.proxy_type_count.xtcp!=null&&(t.value.proxy_counts+=n.proxy_type_count.xtcp)),rre("traffic",n.total_traffic_in,n.total_traffic_out),nre("proxies",n)}).catch(()=>{DA({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=zM,o=HM,s=pA,l=vA;return Y(),me("div",null,[ee(l,null,{default:Z(()=>[ee(s,{md:12},{default:Z(()=>[ae("div",are,[ee(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:Z(()=>[ee(a,{label:"Version"},{default:Z(()=>[ae("span",null,Me(E(t).version),1)]),_:1}),ee(a,{label:"BindPort"},{default:Z(()=>[ae("span",null,Me(E(t).bind_port),1)]),_:1}),E(t).kcp_bind_port!=0?(Y(),_e(a,{key:0,label:"KCP Bind Port"},{default:Z(()=>[ae("span",null,Me(E(t).kcp_bind_port),1)]),_:1})):Fe("",!0),E(t).quic_bind_port!=0?(Y(),_e(a,{key:1,label:"QUIC Bind Port"},{default:Z(()=>[ae("span",null,Me(E(t).quic_bind_port),1)]),_:1})):Fe("",!0),E(t).vhost_http_port!=0?(Y(),_e(a,{key:2,label:"Http Port"},{default:Z(()=>[ae("span",null,Me(E(t).vhost_http_port),1)]),_:1})):Fe("",!0),E(t).vhost_https_port!=0?(Y(),_e(a,{key:3,label:"Https Port"},{default:Z(()=>[ae("span",null,Me(E(t).vhost_https_port),1)]),_:1})):Fe("",!0),E(t).tcpmux_httpconnect_port!=0?(Y(),_e(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:Z(()=>[ae("span",null,Me(E(t).tcpmux_httpconnect_port),1)]),_:1})):Fe("",!0),E(t).subdomain_host!=""?(Y(),_e(a,{key:5,label:"Subdomain Host"},{default:Z(()=>[ee(hC,{content:E(t).subdomain_host,length:30},null,8,["content"])]),_:1})):Fe("",!0),ee(a,{label:"Max PoolCount"},{default:Z(()=>[ae("span",null,Me(E(t).max_pool_count),1)]),_:1}),ee(a,{label:"Max Ports Per Client"},{default:Z(()=>[ae("span",null,Me(E(t).max_ports_per_client),1)]),_:1}),E(t).allow_ports_str!=""?(Y(),_e(a,{key:6,label:"Allow Ports"},{default:Z(()=>[ee(hC,{content:E(t).allow_ports_str,length:30},null,8,["content"])]),_:1})):Fe("",!0),E(t).tls_only===!0?(Y(),_e(a,{key:7,label:"TLS Only"},{default:Z(()=>[ae("span",null,Me(E(t).tls_only),1)]),_:1})):Fe("",!0),ee(a,{label:"HeartBeat Timeout"},{default:Z(()=>[ae("span",null,Me(E(t).heart_beat_timeout),1)]),_:1}),ee(a,{label:"Client Counts"},{default:Z(()=>[ae("span",null,Me(E(t).client_counts),1)]),_:1}),ee(a,{label:"Current Connections"},{default:Z(()=>[ae("span",null,Me(E(t).cur_conns),1)]),_:1}),ee(a,{label:"Proxy Counts"},{default:Z(()=>[ae("span",null,Me(E(t).proxy_counts),1)]),_:1})]),_:1})])]),_:1}),ee(s,{md:12},{default:Z(()=>[ore,sre]),_:1})]),_:1})])}}});class Us{constructor(t){Wt(this,"name");Wt(this,"type");Wt(this,"encryption");Wt(this,"compression");Wt(this,"conns");Wt(this,"traffic_in");Wt(this,"traffic_out");Wt(this,"last_start_time");Wt(this,"last_close_time");Wt(this,"status");Wt(this,"client_version");Wt(this,"addr");Wt(this,"port");Wt(this,"custom_domains");Wt(this,"host_header_rewrite");Wt(this,"locations");Wt(this,"subdomain");this.name=t.name,this.type="",t.conf!=null?(this.encryption=t.conf.use_encryption,this.compression=t.conf.use_compression):(this.encryption=!1,this.compression=!1),this.conns=t.cur_conns,this.traffic_in=t.today_traffic_in,this.traffic_out=t.today_traffic_out,this.last_start_time=t.last_start_time,this.last_close_time=t.last_close_time,this.status=t.status,this.client_version=t.client_version,this.addr="",this.port=0,this.custom_domains="",this.host_header_rewrite="",this.locations="",this.subdomain=""}}class ure extends Us{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class cre extends Us{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remote_port,this.port=t.conf.remote_port):(this.addr="",this.port=0)}}class fre extends Us{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,this.host_header_rewrite=t.conf.host_header_rewrite,this.locations=t.conf.locations,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.host_header_rewrite="",this.subdomain="",this.locations="")}}class dre extends Us{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null?(this.custom_domains=t.conf.custom_domains,t.conf.subdomain!=""?this.subdomain=t.conf.subdomain+"."+n:this.subdomain=""):(this.custom_domains="",this.subdomain="")}}class hre extends Us{constructor(t){super(t),this.type="stcp"}}class vre extends Us{constructor(t){super(t),this.type="sudp"}}const pre=["id"],gre=ce({__name:"Traffic",props:{proxy_name:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxy_name;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{ire(t.proxy_name,i.traffic_in,i.traffic_out)}).catch(i=>{DA({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(Y(),me("div",{id:e.proxy_name,style:{width:"600px",height:"400px"}},null,8,pre))}}),mre=ce({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=zM,i=HM;return e.proxyType==="http"||e.proxyType==="https"?(Y(),_e(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Domains"},{default:Z(()=>[ae("span",null,Me(e.row.custom_domains),1)]),_:1}),ee(n,{label:"SubDomain"},{default:Z(()=>[ae("span",null,Me(e.row.subdomain),1)]),_:1}),ee(n,{label:"locations"},{default:Z(()=>[ae("span",null,Me(e.row.locations),1)]),_:1}),ee(n,{label:"HostRewrite"},{default:Z(()=>[ae("span",null,Me(e.row.host_header_rewrite),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.last_close_time),1)]),_:1})]),_:1})):(Y(),_e(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Addr"},{default:Z(()=>[ae("span",null,Me(e.row.addr),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.last_start_time),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.last_close_time),1)]),_:1})]),_:1}))}}}),js=ce({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(n,i)=>aa.fileSize(n.traffic_in),r=(n,i)=>aa.fileSize(n.traffic_out);return(n,i)=>{const a=gre,o=J6,s=IW,l=ZV,u=O8,c=XV;return Y(),me("div",null,[ee(c,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:Z(()=>[ee(l,{type:"expand"},{default:Z(f=>[ee(s,{placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click"},{default:Z(()=>[ee(a,{proxy_name:f.row.name},null,8,["proxy_name"])]),reference:Z(()=>[ee(o,{type:"primary",size:"large",name:f.row.name,style:{"margin-bottom":"10px"}},{default:Z(()=>[Bt("Traffic Statistics ")]),_:2},1032,["name"])]),_:2},1024),ee(mre,{row:f.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),ee(l,{label:"Name",prop:"name",sortable:""}),ee(l,{label:"Port",prop:"port",sortable:""}),ee(l,{label:"Connections",prop:"conns",sortable:""}),ee(l,{label:"Traffic In",prop:"traffic_in",formatter:t,sortable:""}),ee(l,{label:"Traffic Out",prop:"traffic_out",formatter:r,sortable:""}),ee(l,{label:"ClientVersion",prop:"client_version",sortable:""}),ee(l,{label:"Status",prop:"status",sortable:""},{default:Z(f=>[f.row.status==="online"?(Y(),_e(u,{key:0,type:"success"},{default:Z(()=>[Bt(Me(f.row.status),1)]),_:2},1024)):(Y(),_e(u,{key:1,type:"danger"},{default:Z(()=>[Bt(Me(f.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),yre=ce({__name:"ProxiesTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new ure(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"tcp"},null,8,["proxies"]))}}),_re=ce({__name:"ProxiesUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new cre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"udp"},null,8,["proxies"]))}}),bre=ce({__name:"ProxiesHTTP",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_http_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new fre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"http"},null,8,["proxies"]))}}),wre=ce({__name:"ProxiesHTTPS",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhost_https_port,i=a.subdomain_host,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new dre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"https"},null,8,["proxies"]))}}),xre=ce({__name:"ProxiesSTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new hre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"stcp"},null,8,["proxies"]))}}),Sre=ce({__name:"ProxiesSUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new vre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:E(t),proxyType:"sudp"},null,8,["proxies"]))}}),Cre=SU({history:$G(),routes:[{path:"/",name:"ServerOverview",component:lre},{path:"/proxies/tcp",name:"ProxiesTCP",component:yre},{path:"/proxies/udp",name:"ProxiesUDP",component:_re},{path:"/proxies/http",name:"ProxiesHTTP",component:bre},{path:"/proxies/https",name:"ProxiesHTTPS",component:wre},{path:"/proxies/stcp",name:"ProxiesSTCP",component:xre},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Sre}]}),oD=YO(bG);oD.use(Cre);oD.mount("#app")});export default Tre(); +`:"
",m=f.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,m,u,Math.random()+"",o[0],o[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=ft(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,f=o.dataType,d=u.getData(f),h=this._renderMode,v=r.positionDefault,p=ml([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(c,f),y=new Xv;m.marker=y.makeTooltipMarker("item",Lu(m.color),h);var _=SS(u.formatTooltip(c,!1,f)),b=p.get("order"),S=p.get("valueFormatter"),w=_.frag,x=w?AS(S?se({valueFormatter:S},w):w,y,h,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+c;this._showOrMove(p,function(){this._showTooltipContent(p,x,m,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=ft(n),o=a.tooltipConfig,s=o.option||{};if(Te(s)){var l=s;s={content:l,formatter:l}}var u=[s],c=this._ecModel.getComponent(a.componentMainType,a.componentIndex);c&&u.push(c),u.push({formatter:s.content});var f=r.positionDefault,d=ml(u,this._tooltipModel,f?{position:f}:null),h=d.get("content"),v=Math.random()+"",p=new Xv;this._showOrMove(d,function(){var g=Qe(d.get("formatterParams")||{});this._showTooltipContent(d,h,g,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,c){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var f=this._tooltipContent;f.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var h=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(d)if(Te(d)){var g=r.ecModel.get("useUTC"),m=ge(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=d,y&&(h=mh(m.axisValue,h,g)),h=U2(h,i,!0)}else if(Ve(d)){var _=_t(function(b,S){b===this._ticket&&(f.setContent(S,c,r,p,l),this._updatePosition(r,l,o,s,f,i,u))},this);this._ticket=a,h=d(i,a,_)}else h=d;f.setContent(h,c,r,p,l),f.show(r,p),this._updatePosition(r,l,o,s,f,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ge(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ge(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get("position");var f=o.getSize(),d=r.get("align"),h=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ve(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,c],contentSize:f.slice()})),ge(n))i=gt(n[0],u),a=gt(n[1],c);else if(Ie(n)){var p=n;p.width=f[0],p.height=f[1];var g=Ls(p,{width:u,height:c});i=g.x,a=g.y,d=null,h=null}else if(Te(n)&&l){var m=kte(n,v,f,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=Ote(i,a,o,u,c,d?null:20,h?null:20);i=m[0],a=m[1]}if(d&&(i-=uC(d)?f[0]/2:d==="right"?f[0]:0),h&&(a-=uC(h)?f[1]/2:h==="bottom"?f[1]:0),JL(r)){var m=Rte(i,a,o,u,c);i=m[0],a=m[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&O(i,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},f=c.dataByAxis||[];o=o&&u.length===f.length,o&&O(u,function(d,h){var v=f[h]||{},p=d.seriesDataIndices||[],g=v.seriesDataIndices||[];o=o&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&p.length===g.length,o&&O(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&O(d.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){Ge.node||!n.getDom()||(sm(this,"_updatePosition"),this._tooltipContent.dispose(),xm("itemTooltip",n))},t.type="tooltip",t}(Si);function ml(e,t,r){var n=t.ecModel,i;r?(i=new rr(r,n,n),i=new rr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof rr&&(o=o.get("tooltip",!0)),Te(o)&&(o={formatter:o}),o&&(i=new rr(o,i,n)))}return i}function lC(e,t){return e.dispatchAction||_t(t.dispatchAction,t)}function Ote(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Rte(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function kte(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+o;break;case"left":s=t.x-i-o,l=t.y+c/2-a/2;break;case"right":s=t.x+u+o,l=t.y+c/2-a/2}return[s,l]}function uC(e){return e==="center"||e==="middle"}function Nte(e,t,r){var n=r0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=ic(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var c=ft(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const Fte=Ite;function Bte(e){ua(QL),e.registerComponentModel(mte),e.registerComponentView(Fte),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Tr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Tr)}var $te=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(St),Hte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=qe(r.get("textBaseline"),r.get("textVerticalAlign")),c=new dr({style:la(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),f=c.getBoundingRect(),d=r.get("subtext"),h=new dr({style:la(s,{text:d,fill:s.getTextColor(),y:f.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);c.silent=!v&&!g,h.silent=!p&&!g,v&&c.on("click",function(){iS(v,"_"+r.get("target"))}),p&&h.on("click",function(){iS(p,"_"+r.get("subtarget"))}),ft(c).eventData=ft(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(c),d&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};c.setStyle(b),h.setStyle(b),m=a.getBoundingRect();var S=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var x=new Ht({shape:{x:m.x-S[3],y:m.y-S[0],width:m.width+S[1]+S[3],height:m.height+S[0]+S[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(x)}},t.type="title",t}(Si);function zte(e){e.registerComponentModel($te),e.registerComponentView(Hte)}var Wte=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},Vte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ge(n)&&O(n,function(a,o){Te(a)&&(a={type:a}),n[o]=st(a,Wte(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(St);const Cm=Vte;var jo=Rt,Tm=O,gf=cn,Gte=function(e){pe(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new gf),this.group.add(this._selectorGroup=new gf),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var c=r.getBoxLayoutParams(),f={width:i.getWidth(),height:i.getHeight()},d=r.get("padding"),h=Ls(c,f,d),v=this.layoutInner(r,o,h,a,l,u),p=Ls(dt({width:v.width,height:v.height},c),f,d);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=pte(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),c=Ue(),f=n.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),Tm(n.getData(),function(h,v){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` +`)){var g=new gf;g.newline=!0,u.add(g);return}var m=i.getSeriesByName(p)[0];if(!c.get(p))if(m){var y=m.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),S=y.getVisual("style"),w=this._createItem(m,p,v,h,n,r,_,S,b,f,a);w.on("click",jo(cC,p,null,a,d)).on("mouseover",jo(Mm,m.name,null,a,d)).on("mouseout",jo(Am,m.name,null,a,d)),c.set(p,!0)}else i.eachRawSeries(function(x){if(!c.get(p)&&x.legendVisualProvider){var C=x.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),E=C.getItemVisual(M,"style"),A=C.getItemVisual(M,"legendIcon"),T=so(E.fill);T&&T[3]===0&&(T[3]=.2,E=se(se({},E),{fill:Ky(T,"rgba")}));var D=this._createItem(x,p,v,h,n,r,{},E,A,f,a);D.on("click",jo(cC,null,p,a,d)).on("mouseover",jo(Mm,null,p,a,d)).on("mouseout",jo(Am,null,p,a,d)),c.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Tm(r,function(u){var c=u.type,f=new dr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(f);var d=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);m0(f,{normal:d,emphasis:h},{defaultText:u.title}),Kg(f)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,c,f,d){var h=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),m=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");c=_||c||"roundRect";var b=Ute(c,a,l,u,h,g,d),S=new gf,w=a.getModel("textStyle");if(Ve(r.getLegendIcon)&&(!_||_==="inherit"))S.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:c,iconRotate:m,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var x=_==="inherit"&&r.getData().getVisual("symbol")?m==="inherit"?r.getData().getVisual("symbolRotate"):m:0;S.add(jte({itemWidth:v,itemHeight:p,icon:c,iconRotate:x,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,E=o.get("formatter"),A=n;Te(E)&&E?A=E.replace("{name}",n??""):Ve(E)&&(A=E(n));var T=a.get("inactiveColor");S.add(new dr({style:la(w,{text:A,x:C,y:p/2,fill:g?w.getTextColor():T,align:M,verticalAlign:"middle"})}));var D=new Ht({shape:S.getBoundingRect(),invisible:!0}),N=a.getModel("tooltip");return N.get("show")&&p0({el:D,componentModel:o,itemName:n,itemTooltipOption:N.option}),S.add(D),S.eachChild(function(H){H.silent=!0}),D.silent=!f,this.getContentGroup().add(S),Kg(S),S.__legendDataIndex=i,S},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Xl(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var c=l.getBoundingRect(),f=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),o){Xl("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,g=p===0?"width":"height",m=p===0?"height":"width",y=p===0?"y":"x";s==="end"?h[p]+=c[g]+v:f[p]+=d[g]+v,h[1-p]+=c[m]/2-d[m]/2,u.x=h[0],u.y=h[1],l.x=f[0],l.y=f[1];var _={x:0,y:0};return _[g]=c[g]+v+d[g],_[m]=Math.max(c[m],d[m]),_[y]=Math.min(0,d[y]+h[1-p]),_}else return l.x=f[0],l.y=f[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(Si);function Ute(e,t,r,n,i,a,o){function s(g,m){g.lineWidth==="auto"&&(g.lineWidth=m.lineWidth>0?2:0),Tm(g,function(y,_){g[_]==="inherit"&&(g[_]=m[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",f=l.getShallow("decal");u.decal=!f||f==="inherit"?n.decal:dm(f,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[c]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),h.stroke==="auto"&&(h.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[c];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function jte(e){var t=e.icon||"roundRect",r=R0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function cC(e,t,r,n){Am(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),Mm(e,t,r,n)}function nD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],g=[-h.x,-h.y];n||(g[a]=c[u]);var m=[0,0],y=[-v.x,-v.y],_=qe(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:m[a]+=v[o]+_}y[1-a]+=h[s]/2-v[s]/2,c.setPosition(g),f.setPosition(m),d.setPosition(y);var S={x:0,y:0};if(S[o]=p?i[o]:h[o],S[s]=Math.max(h[s],v[s]),S[l]=Math.min(0,v[l]+y[1-a]),f.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=S[s],f.setClipPath(new Ht({shape:w})),f.__rectSize=w[o]}else d.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(r);return x.pageIndex!=null&&Er(c,{x:x.contentPosition[0],y:x.contentPosition[1]},p?r:null),this._updatePageInfoView(r,x),S},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;O(["pagePrev","pageNext"],function(c){var f=c+"DataIndex",d=n[f]!=null,h=i.childOfName(c);h&&(h.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Te(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=wp[o],l=Sp[o],u=this._findTargetItemIndex(n),c=i.children(),f=c[u],d=c.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!f)return v;var p=b(f);v.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=d;++g)_=b(c[g]),(!_&&y.e>m.s+a||_&&!S(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=m.i),++v.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=b(c[g]),(!_||!S(y,_.s))&&m.i=x&&w.s<=x+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(iD);const Qte=Zte;function Jte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ere(e){ua(aD),e.registerComponentModel(Xte),e.registerComponentView(Qte),Jte(e)}function tre(e){ua(aD),ua(ere)}ua([KJ,OJ,$ee,sJ,zte,Bte,tre,vte]);function rre(e,t,r){const n=B0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return aa.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function nre(e,t){const r=B0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxyTypeCount.tcp!=null&&t.proxyTypeCount.tcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxyTypeCount.udp!=null&&t.proxyTypeCount.udp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxyTypeCount.http!=null&&t.proxyTypeCount.http!=0&&(n.series[0].data.push({value:t.proxyTypeCount.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxyTypeCount.https!=null&&t.proxyTypeCount.https!=0&&(n.series[0].data.push({value:t.proxyTypeCount.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxyTypeCount.stcp!=null&&t.proxyTypeCount.stcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxyTypeCount.sudp!=null&&t.proxyTypeCount.sudp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxyTypeCount.xtcp!=null&&t.proxyTypeCount.xtcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function ire(e,t,r){const n={width:"600px",height:"400px"},i=B0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const c of l){const f='';u+=f+c.seriesName+": "+aa.fileSize(c.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return aa.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const hC=ce({__name:"LongSpan",props:{content:null,length:null},setup(e){return(t,r)=>{const n=Ju;return Y(),me(pt,null,[ee(n,{content:e.content,placement:"top"},{default:Z(()=>[nr(ae("span",null,Me(e.content.slice(0,e.length))+"...",513),[[yi,e.content.length>e.length]])]),_:1},8,["content"]),nr(ae("span",null,Me(e.content),513),[[yi,e.content.length<30]])],64)}}}),are={class:"source"},ore=ae("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),sre=ae("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),lre=ce({__name:"ServerOverview",setup(e){let t=B({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bindPort=n.bindPort,t.value.kcpBindPort=n.kcpBindPort,t.value.quicBindPort=n.quicBindPort,t.value.vhostHTTPPort=n.vhostHTTPPort,t.value.vhostHTTPSPort=n.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=n.tcpmuxHTTPConnectPort,t.value.subdomainHost=n.subdomainHost,t.value.maxPoolCount=n.maxPoolCount,t.value.maxPortsPerClient=n.maxPortsPerClient,t.value.maxPortsPerClient=="0"&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=n.allowPortsStr,t.value.tlsForce=n.tlsForce,t.value.heartbeatTimeout=n.heartbeatTimeout,t.value.clientCounts=n.clientCounts,t.value.curConns=n.curConns,t.value.proxyCounts=0,n.proxyTypeCount!=null&&(n.proxyTypeCount.tcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.tcp),n.proxyTypeCount.udp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.udp),n.proxyTypeCount.http!=null&&(t.value.proxyCounts+=n.proxyTypeCount.http),n.proxyTypeCount.https!=null&&(t.value.proxyCounts+=n.proxyTypeCount.https),n.proxyTypeCount.stcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.stcp),n.proxyTypeCount.sudp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.sudp),n.proxyTypeCount.xtcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.xtcp)),rre("traffic",n.totalTrafficIn,n.totalTrafficOut),nre("proxies",n)}).catch(()=>{DA({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=zM,o=HM,s=pA,l=vA;return Y(),me("div",null,[ee(l,null,{default:Z(()=>[ee(s,{md:12},{default:Z(()=>[ae("div",are,[ee(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:Z(()=>[ee(a,{label:"Version"},{default:Z(()=>[ae("span",null,Me(P(t).version),1)]),_:1}),ee(a,{label:"BindPort"},{default:Z(()=>[ae("span",null,Me(P(t).bindPort),1)]),_:1}),P(t).kcpBindPort!=0?(Y(),_e(a,{key:0,label:"KCP Bind Port"},{default:Z(()=>[ae("span",null,Me(P(t).kcpBindPort),1)]),_:1})):Fe("",!0),P(t).quicBindPort!=0?(Y(),_e(a,{key:1,label:"QUIC Bind Port"},{default:Z(()=>[ae("span",null,Me(P(t).quicBindPort),1)]),_:1})):Fe("",!0),P(t).vhostHTTPPort!=0?(Y(),_e(a,{key:2,label:"Http Port"},{default:Z(()=>[ae("span",null,Me(P(t).vhostHTTPPort),1)]),_:1})):Fe("",!0),P(t).vhostHTTPSPort!=0?(Y(),_e(a,{key:3,label:"Https Port"},{default:Z(()=>[ae("span",null,Me(P(t).vhostHTTPSPort),1)]),_:1})):Fe("",!0),P(t).tcpmuxHTTPConnectPort!=0?(Y(),_e(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:Z(()=>[ae("span",null,Me(P(t).tcpmuxHTTPConnectPort),1)]),_:1})):Fe("",!0),P(t).subdomainHost!=""?(Y(),_e(a,{key:5,label:"Subdomain Host"},{default:Z(()=>[ee(hC,{content:P(t).subdomainHost,length:30},null,8,["content"])]),_:1})):Fe("",!0),ee(a,{label:"Max PoolCount"},{default:Z(()=>[ae("span",null,Me(P(t).maxPoolCount),1)]),_:1}),ee(a,{label:"Max Ports Per Client"},{default:Z(()=>[ae("span",null,Me(P(t).maxPortsPerClient),1)]),_:1}),P(t).allowPortsStr!=""?(Y(),_e(a,{key:6,label:"Allow Ports"},{default:Z(()=>[ee(hC,{content:P(t).allowPortsStr,length:30},null,8,["content"])]),_:1})):Fe("",!0),P(t).tlsForce===!0?(Y(),_e(a,{key:7,label:"TLS Force"},{default:Z(()=>[ae("span",null,Me(P(t).tlsForce),1)]),_:1})):Fe("",!0),ee(a,{label:"HeartBeat Timeout"},{default:Z(()=>[ae("span",null,Me(P(t).heartbeatTimeout),1)]),_:1}),ee(a,{label:"Client Counts"},{default:Z(()=>[ae("span",null,Me(P(t).clientCounts),1)]),_:1}),ee(a,{label:"Current Connections"},{default:Z(()=>[ae("span",null,Me(P(t).curConns),1)]),_:1}),ee(a,{label:"Proxy Counts"},{default:Z(()=>[ae("span",null,Me(P(t).proxyCounts),1)]),_:1})]),_:1})])]),_:1}),ee(s,{md:12},{default:Z(()=>[ore,sre]),_:1})]),_:1})])}}});class Us{constructor(t){Wt(this,"name");Wt(this,"type");Wt(this,"encryption");Wt(this,"compression");Wt(this,"conns");Wt(this,"trafficIn");Wt(this,"trafficOut");Wt(this,"lastStartTime");Wt(this,"lastCloseTime");Wt(this,"status");Wt(this,"clientVersion");Wt(this,"addr");Wt(this,"port");Wt(this,"customDomains");Wt(this,"hostHeaderRewrite");Wt(this,"locations");Wt(this,"subdomain");this.name=t.name,this.type="",this.encryption=!1,this.compression=!1,t.conf!=null&&t.conf.useEncryption!=null&&(this.encryption=t.conf.useEncryption),t.conf!=null&&t.conf.useCompression!=null&&(this.compression=t.conf.useCompression),this.conns=t.curConns,this.trafficIn=t.todayTrafficIn,this.trafficOut=t.todayTrafficOut,this.lastStartTime=t.lastStartTime,this.lastCloseTime=t.lastCloseTime,this.status=t.status,this.clientVersion=t.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class ure extends Us{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class cre extends Us{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class fre extends Us{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf!=null&&(t.conf.customDomains!=null&&(this.customDomains=t.conf.customDomains),this.hostHeaderRewrite=t.conf.hostHeaderRewrite,this.locations=t.conf.locations,t.conf.subdomain!=null&&t.conf.subdomain!=""&&(this.subdomain=t.conf.subdomain+"."+n))}}class dre extends Us{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null&&(t.conf.customDomains!=null&&(this.customDomains=t.conf.customDomains),t.conf.subdomain!=null&&t.conf.subdomain!=""&&(this.subdomain=t.conf.subdomain+"."+n))}}class hre extends Us{constructor(t){super(t),this.type="stcp"}}class vre extends Us{constructor(t){super(t),this.type="sudp"}}const pre=["id"],gre=ce({__name:"Traffic",props:{proxyName:null},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxyName;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{ire(t.proxyName,i.trafficIn,i.trafficOut)}).catch(i=>{DA({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(Y(),me("div",{id:e.proxyName,style:{width:"600px",height:"400px"}},null,8,pre))}}),mre=ce({__name:"ProxyViewExpand",props:{row:null,proxyType:null},setup(e){return(t,r)=>{const n=zM,i=HM;return e.proxyType==="http"||e.proxyType==="https"?(Y(),_e(i,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Domains"},{default:Z(()=>[ae("span",null,Me(e.row.customDomains),1)]),_:1}),ee(n,{label:"SubDomain"},{default:Z(()=>[ae("span",null,Me(e.row.subdomain),1)]),_:1}),ee(n,{label:"locations"},{default:Z(()=>[ae("span",null,Me(e.row.locations),1)]),_:1}),ee(n,{label:"HostRewrite"},{default:Z(()=>[ae("span",null,Me(e.row.hostHeaderRewrite),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.lastStartTime),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.lastCloseTime),1)]),_:1})]),_:1})):(Y(),_e(i,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:Z(()=>[ee(n,{label:"Name"},{default:Z(()=>[ae("span",null,Me(e.row.name),1)]),_:1}),ee(n,{label:"Type"},{default:Z(()=>[ae("span",null,Me(e.row.type),1)]),_:1}),ee(n,{label:"Addr"},{default:Z(()=>[ae("span",null,Me(e.row.addr),1)]),_:1}),ee(n,{label:"Encryption"},{default:Z(()=>[ae("span",null,Me(e.row.encryption),1)]),_:1}),ee(n,{label:"Compression"},{default:Z(()=>[ae("span",null,Me(e.row.compression),1)]),_:1}),ee(n,{label:"Last Start"},{default:Z(()=>[ae("span",null,Me(e.row.lastStartTime),1)]),_:1}),ee(n,{label:"Last Close"},{default:Z(()=>[ae("span",null,Me(e.row.lastCloseTime),1)]),_:1})]),_:1}))}}}),js=ce({__name:"ProxyView",props:{proxies:null,proxyType:null},setup(e){const t=(n,i)=>aa.fileSize(n.trafficIn),r=(n,i)=>aa.fileSize(n.trafficOut);return(n,i)=>{const a=gre,o=J6,s=IW,l=ZV,u=O8,c=XV;return Y(),me("div",null,[ee(c,{data:e.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:Z(()=>[ee(l,{type:"expand"},{default:Z(f=>[ee(s,{placement:"right",width:"600",style:{"margin-left":"0px"},trigger:"click"},{default:Z(()=>[ee(a,{proxyName:f.row.name},null,8,["proxyName"])]),reference:Z(()=>[ee(o,{type:"primary",size:"large",name:f.row.name,style:{"margin-bottom":"10px"}},{default:Z(()=>[Bt("Traffic Statistics ")]),_:2},1032,["name"])]),_:2},1024),ee(mre,{row:f.row,proxyType:e.proxyType},null,8,["row","proxyType"])]),_:1}),ee(l,{label:"Name",prop:"name",sortable:""}),ee(l,{label:"Port",prop:"port",sortable:""}),ee(l,{label:"Connections",prop:"conns",sortable:""}),ee(l,{label:"Traffic In",prop:"trafficIn",formatter:t,sortable:""}),ee(l,{label:"Traffic Out",prop:"trafficOut",formatter:r,sortable:""}),ee(l,{label:"ClientVersion",prop:"clientVersion",sortable:""}),ee(l,{label:"Status",prop:"status",sortable:""},{default:Z(f=>[f.row.status==="online"?(Y(),_e(u,{key:0,type:"success"},{default:Z(()=>[Bt(Me(f.row.status),1)]),_:2},1024)):(Y(),_e(u,{key:1,type:"danger"},{default:Z(()=>[Bt(Me(f.row.status),1)]),_:2},1024))]),_:1})]),_:1},8,["data"])])}}}),yre=ce({__name:"ProxiesTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new ure(i))})})(),(n,i)=>(Y(),_e(js,{proxies:P(t),proxyType:"tcp"},null,8,["proxies"]))}}),_re=ce({__name:"ProxiesUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new cre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:P(t),proxyType:"udp"},null,8,["proxies"]))}}),bre=ce({__name:"ProxiesHTTP",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new fre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:P(t),proxyType:"http"},null,8,["proxies"]))}}),wre=ce({__name:"ProxiesHTTPS",setup(e){let t=B([]);return(()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPSPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{for(let s of o.proxies)t.value.push(new dre(s,n,i))})})})(),(n,i)=>(Y(),_e(js,{proxies:P(t),proxyType:"https"},null,8,["proxies"]))}}),Sre=ce({__name:"ProxiesSTCP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new hre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:P(t),proxyType:"stcp"},null,8,["proxies"]))}}),xre=ce({__name:"ProxiesSUDP",setup(e){let t=B([]);return(()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{for(let i of n.proxies)t.value.push(new vre(i))})})(),(n,i)=>(Y(),_e(js,{proxies:P(t),proxyType:"sudp"},null,8,["proxies"]))}}),Cre=xU({history:$G(),routes:[{path:"/",name:"ServerOverview",component:lre},{path:"/proxies/tcp",name:"ProxiesTCP",component:yre},{path:"/proxies/udp",name:"ProxiesUDP",component:_re},{path:"/proxies/http",name:"ProxiesHTTP",component:bre},{path:"/proxies/https",name:"ProxiesHTTPS",component:wre},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Sre},{path:"/proxies/sudp",name:"ProxiesSUDP",component:xre}]}),oD=YO(bG);oD.use(Cre);oD.mount("#app")});export default Tre(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index c08019b8397..4f2e0ca4341 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -4,7 +4,7 @@ frps dashboard - + diff --git a/pkg/config/v1/plugin.go b/pkg/config/v1/plugin.go index a01d10227be..bd5ff384a56 100644 --- a/pkg/config/v1/plugin.go +++ b/pkg/config/v1/plugin.go @@ -16,7 +16,6 @@ package v1 import ( "encoding/json" - "errors" "fmt" "reflect" ) @@ -30,7 +29,7 @@ type TypedClientPluginOptions struct { func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error { if len(b) == 4 && string(b) == "null" { - return errors.New("type is required") + return nil } typeStruct := struct { @@ -41,6 +40,9 @@ func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error { } c.Type = typeStruct.Type + if c.Type == "" { + return nil + } v, ok := clientPluginOptionsTypeMap[typeStruct.Type] if !ok { diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 56faac30789..b5a923f9456 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -34,24 +34,24 @@ type GeneralResponse struct { type serverInfoResp struct { Version string `json:"version"` - BindPort int `json:"bind_port"` - VhostHTTPPort int `json:"vhost_http_port"` - VhostHTTPSPort int `json:"vhost_https_port"` - TCPMuxHTTPConnectPort int `json:"tcpmux_httpconnect_port"` - KCPBindPort int `json:"kcp_bind_port"` - QUICBindPort int `json:"quic_bind_port"` - SubdomainHost string `json:"subdomain_host"` - MaxPoolCount int64 `json:"max_pool_count"` - MaxPortsPerClient int64 `json:"max_ports_per_client"` - HeartBeatTimeout int64 `json:"heart_beat_timeout"` - AllowPortsStr string `json:"allow_ports_str,omitempty"` - TLSOnly bool `json:"tls_only,omitempty"` - - TotalTrafficIn int64 `json:"total_traffic_in"` - TotalTrafficOut int64 `json:"total_traffic_out"` - CurConns int64 `json:"cur_conns"` - ClientCounts int64 `json:"client_counts"` - ProxyTypeCounts map[string]int64 `json:"proxy_type_count"` + BindPort int `json:"bindPort"` + VhostHTTPPort int `json:"vhostHTTPPort"` + VhostHTTPSPort int `json:"vhostHTTPSPort"` + TCPMuxHTTPConnectPort int `json:"tcpmuxHTTPConnectPort"` + KCPBindPort int `json:"kcpBindPort"` + QUICBindPort int `json:"quicBindPort"` + SubdomainHost string `json:"subdomainHost"` + MaxPoolCount int64 `json:"maxPoolCount"` + MaxPortsPerClient int64 `json:"maxPortsPerClient"` + HeartBeatTimeout int64 `json:"heartbeatTimeout"` + AllowPortsStr string `json:"allowPortsStr,omitempty"` + TLSForce bool `json:"tlsForce,omitempty"` + + TotalTrafficIn int64 `json:"totalTrafficIn"` + TotalTrafficOut int64 `json:"totalTrafficOut"` + CurConns int64 `json:"curConns"` + ClientCounts int64 `json:"clientCounts"` + ProxyTypeCounts map[string]int64 `json:"proxyTypeCount"` } // /healthz @@ -85,7 +85,7 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) { MaxPortsPerClient: svr.cfg.MaxPortsPerClient, HeartBeatTimeout: svr.cfg.Transport.HeartbeatTimeout, AllowPortsStr: types.PortsRangeSlice(svr.cfg.AllowPorts).String(), - TLSOnly: svr.cfg.Transport.TLS.Force, + TLSForce: svr.cfg.Transport.TLS.Force, TotalTrafficIn: serverStats.TotalTrafficIn, TotalTrafficOut: serverStats.TotalTrafficOut, @@ -104,7 +104,7 @@ type BaseOutConf struct { type TCPOutConf struct { BaseOutConf - RemotePort int `json:"remote_port"` + RemotePort int `json:"remotePort"` } type TCPMuxOutConf struct { @@ -115,14 +115,14 @@ type TCPMuxOutConf struct { type UDPOutConf struct { BaseOutConf - RemotePort int `json:"remote_port"` + RemotePort int `json:"remotePort"` } type HTTPOutConf struct { BaseOutConf v1.DomainConfig Locations []string `json:"locations"` - HostHeaderRewrite string `json:"host_header_rewrite"` + HostHeaderRewrite string `json:"hostHeaderRewrite"` } type HTTPSOutConf struct { @@ -163,12 +163,12 @@ func getConfByType(proxyType string) any { type ProxyStatsInfo struct { Name string `json:"name"` Conf interface{} `json:"conf"` - ClientVersion string `json:"client_version,omitempty"` - TodayTrafficIn int64 `json:"today_traffic_in"` - TodayTrafficOut int64 `json:"today_traffic_out"` - CurConns int64 `json:"cur_conns"` - LastStartTime string `json:"last_start_time"` - LastCloseTime string `json:"last_close_time"` + ClientVersion string `json:"clientVersion,omitempty"` + TodayTrafficIn int64 `json:"todayTrafficIn"` + TodayTrafficOut int64 `json:"todayTrafficOut"` + CurConns int64 `json:"curConns"` + LastStartTime string `json:"lastStartTime"` + LastCloseTime string `json:"lastCloseTime"` Status string `json:"status"` } @@ -236,11 +236,11 @@ func (svr *Service) getProxyStatsByType(proxyType string) (proxyInfos []*ProxySt type GetProxyStatsResp struct { Name string `json:"name"` Conf interface{} `json:"conf"` - TodayTrafficIn int64 `json:"today_traffic_in"` - TodayTrafficOut int64 `json:"today_traffic_out"` - CurConns int64 `json:"cur_conns"` - LastStartTime string `json:"last_start_time"` - LastCloseTime string `json:"last_close_time"` + TodayTrafficIn int64 `json:"todayTrafficIn"` + TodayTrafficOut int64 `json:"todayTrafficOut"` + CurConns int64 `json:"curConns"` + LastStartTime string `json:"lastStartTime"` + LastCloseTime string `json:"lastCloseTime"` Status string `json:"status"` } @@ -310,8 +310,8 @@ func (svr *Service) getProxyStatsByTypeAndName(proxyType string, proxyName strin // /api/traffic/:name type GetProxyTrafficResp struct { Name string `json:"name"` - TrafficIn []int64 `json:"traffic_in"` - TrafficOut []int64 `json:"traffic_out"` + TrafficIn []int64 `json:"trafficIn"` + TrafficOut []int64 `json:"trafficOut"` } func (svr *Service) APIProxyTraffic(w http.ResponseWriter, r *http.Request) { diff --git a/web/frps/auto-imports.d.ts b/web/frps/auto-imports.d.ts index afc379b3e12..08908edd6a4 100644 --- a/web/frps/auto-imports.d.ts +++ b/web/frps/auto-imports.d.ts @@ -1,3 +1,5 @@ // Generated by 'unplugin-auto-import' export {} -declare global {} +declare global { + +} diff --git a/web/frps/src/components/ProxiesHTTP.vue b/web/frps/src/components/ProxiesHTTP.vue index 645893d4fa5..b65f51d778a 100644 --- a/web/frps/src/components/ProxiesHTTP.vue +++ b/web/frps/src/components/ProxiesHTTP.vue @@ -10,16 +10,16 @@ import ProxyView from './ProxyView.vue' let proxies = ref([]) const fetchData = () => { - let vhost_http_port: number - let subdomain_host: string + let vhostHTTPPort: number + let subdomainHost: string fetch('../api/serverinfo', { credentials: 'include' }) .then((res) => { return res.json() }) .then((json) => { - vhost_http_port = json.vhost_http_port - subdomain_host = json.subdomain_host - if (vhost_http_port == null || vhost_http_port == 0) { + vhostHTTPPort = json.vhostHTTPPort + subdomainHost = json.subdomainHost + if (vhostHTTPPort == null || vhostHTTPPort == 0) { return } fetch('../api/proxy/http', { credentials: 'include' }) @@ -29,7 +29,7 @@ const fetchData = () => { .then((json) => { for (let proxyStats of json.proxies) { proxies.value.push( - new HTTPProxy(proxyStats, vhost_http_port, subdomain_host) + new HTTPProxy(proxyStats, vhostHTTPPort, subdomainHost) ) } }) diff --git a/web/frps/src/components/ProxiesHTTPS.vue b/web/frps/src/components/ProxiesHTTPS.vue index 992aa411e75..93c0204ef2b 100644 --- a/web/frps/src/components/ProxiesHTTPS.vue +++ b/web/frps/src/components/ProxiesHTTPS.vue @@ -10,16 +10,16 @@ import ProxyView from './ProxyView.vue' let proxies = ref([]) const fetchData = () => { - let vhost_https_port: number - let subdomain_host: string + let vhostHTTPSPort: number + let subdomainHost: string fetch('../api/serverinfo', { credentials: 'include' }) .then((res) => { return res.json() }) .then((json) => { - vhost_https_port = json.vhost_https_port - subdomain_host = json.subdomain_host - if (vhost_https_port == null || vhost_https_port == 0) { + vhostHTTPSPort = json.vhostHTTPSPort + subdomainHost = json.subdomainHost + if (vhostHTTPSPort == null || vhostHTTPSPort == 0) { return } fetch('../api/proxy/https', { credentials: 'include' }) @@ -29,7 +29,7 @@ const fetchData = () => { .then((json) => { for (let proxyStats of json.proxies) { proxies.value.push( - new HTTPSProxy(proxyStats, vhost_https_port, subdomain_host) + new HTTPSProxy(proxyStats, vhostHTTPSPort, subdomainHost) ) } }) diff --git a/web/frps/src/components/ProxyView.vue b/web/frps/src/components/ProxyView.vue index 5a0b4c3f1b5..d26f66e92a8 100644 --- a/web/frps/src/components/ProxyView.vue +++ b/web/frps/src/components/ProxyView.vue @@ -14,7 +14,7 @@ trigger="click" > + + diff --git a/web/frps/src/utils/proxy.ts b/web/frps/src/utils/proxy.ts index 97092560bcb..3bac3cc4f42 100644 --- a/web/frps/src/utils/proxy.ts +++ b/web/frps/src/utils/proxy.ts @@ -1,6 +1,7 @@ class BaseProxy { name: string type: string + annotations: Map encryption: boolean compression: boolean conns: number @@ -21,6 +22,13 @@ class BaseProxy { constructor(proxyStats: any) { this.name = proxyStats.name this.type = '' + this.annotations = new Map() + if (proxyStats.conf?.annotations) { + for (const key in proxyStats.conf.annotations) { + this.annotations.set(key, proxyStats.conf.annotations[key]) + } + } + this.encryption = false this.compression = false this.encryption = From dc34a68542b8566ce22de983dd890428922838fc Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 19 Feb 2024 16:45:25 +0800 Subject: [PATCH 161/444] support go1.22 and drop support for go1.20 (#4001) --- .circleci/config.yml | 4 ++-- .github/workflows/build-and-push-image.yml | 12 ++++++------ .github/workflows/golangci-lint.yml | 8 ++++---- .github/workflows/goreleaser.yml | 8 ++++---- README.md | 4 ---- README_zh.md | 4 ---- dockerfiles/Dockerfile-for-frpc | 2 +- dockerfiles/Dockerfile-for-frps | 2 +- go.mod | 2 +- 9 files changed, 19 insertions(+), 27 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c7e1ef67109..794ce64ad1a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: go-version-latest: docker: - - image: cimg/go:1.21-node + - image: cimg/go:1.22-node resource_class: large steps: - checkout @@ -10,7 +10,7 @@ jobs: - run: make alltest go-version-last: docker: - - image: cimg/go:1.20-node + - image: cimg/go:1.21-node resource_class: large steps: - checkout diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index 9607ba1823a..d1516f80ce3 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -19,15 +19,15 @@ jobs: steps: # environment - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: '0' - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 # get image tag name - name: Get Image Tag Name @@ -38,13 +38,13 @@ jobs: echo "TAG_NAME=${{ github.event.inputs.tag }}" >> $GITHUB_ENV fi - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Login to the GPR - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -72,7 +72,7 @@ jobs: ${{ env.TAG_FRPC_GPR }} - name: Build and push frps - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . file: ./dockerfiles/Dockerfile-for-frps diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 9517af535fa..6b8075f7bfc 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -14,12 +14,12 @@ jobs: name: lint runs-on: ubuntu-latest steps: - - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 with: - go-version: '1.21' - - uses: actions/checkout@v3 + go-version: '1.22' + - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v4 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version version: v1.55 diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index a0aae79d065..7c01f3764a0 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -8,21 +8,21 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: - go-version: '1.21' + go-version: '1.22' - name: Make All run: | ./package.sh - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v4 + uses: goreleaser/goreleaser-action@v5 with: version: latest args: release --clean --release-notes=./Release.md diff --git a/README.md b/README.md index a665610ebb1..cf6b7cf5495 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,6 @@ -   - - -

diff --git a/README_zh.md b/README_zh.md index c54bdce784c..d78875c40d4 100644 --- a/README_zh.md +++ b/README_zh.md @@ -13,10 +13,6 @@ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP -   - - -

diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index 19d07db82d3..99b3120778a 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,4 +1,4 @@ -FROM golang:1.21 AS building +FROM golang:1.22 AS building COPY . /building WORKDIR /building diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps index 93f169fc08f..3d2c387a431 100644 --- a/dockerfiles/Dockerfile-for-frps +++ b/dockerfiles/Dockerfile-for-frps @@ -1,4 +1,4 @@ -FROM golang:1.21 AS building +FROM golang:1.22 AS building COPY . /building WORKDIR /building diff --git a/go.mod b/go.mod index 035cec4dd63..414baedcd93 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fatedier/frp -go 1.20 +go 1.21 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 From 2f958c20955cda65a7391e26412b34983531d89d Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 19 Feb 2024 17:17:02 +0800 Subject: [PATCH 162/444] bump quic-go to 0.41.0 (#4002) --- go.mod | 7 +++---- go.sum | 28 ++++++++++------------------ 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 414baedcd93..90974bc2331 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/pion/stun v0.6.1 github.com/pires/go-proxyproto v0.7.0 github.com/prometheus/client_golang v1.16.0 - github.com/quic-go/quic-go v0.37.7 + github.com/quic-go/quic-go v0.41.0 github.com/rodaine/table v1.1.0 github.com/samber/lo v1.38.1 github.com/spf13/cobra v1.8.0 @@ -43,7 +43,6 @@ require ( github.com/go-jose/go-jose/v3 v3.0.1 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.5.9 // indirect @@ -61,15 +60,15 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.10.1 // indirect - github.com/quic-go/qtls-go1-20 v0.3.1 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect + go.uber.org/mock v0.3.0 // indirect golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect - golang.org/x/mod v0.10.0 // indirect + golang.org/x/mod v0.11.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.9.3 // indirect diff --git a/go.sum b/go.sum index e324b4ce4f2..255f8c24530 100644 --- a/go.sum +++ b/go.sum @@ -40,8 +40,6 @@ github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEe github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -82,6 +80,7 @@ github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/reedsolomon v1.9.15 h1:g2erWKD2M6rgnPf89fCji6jNlhMKMdXcuNHMW1SYCIo= github.com/klauspost/reedsolomon v1.9.15/go.mod h1:eqPAcE7xar5CIzcdfwydOEdcmchAKAP/qs14y4GCBOk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= @@ -117,10 +116,8 @@ github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= -github.com/quic-go/qtls-go1-20 v0.3.1 h1:O4BLOM3hwfVF3AcktIylQXyl7Yi2iBNVy5QsV+ySxbg= -github.com/quic-go/qtls-go1-20 v0.3.1/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= -github.com/quic-go/quic-go v0.37.7 h1:AgKsQLZ1+YCwZd2GYhBUsJDYZwEkA5gENtAjb+MxONU= -github.com/quic-go/quic-go v0.37.7/go.mod h1:YsbH1r4mSHPJcLF4k4zruUkLBqctEMBDR6VPvcYjIsU= +github.com/quic-go/quic-go v0.41.0 h1:aD8MmHfgqTURWNJy48IYFg2OnxwHT3JL7ahGs73lb4k= +github.com/quic-go/quic-go v0.41.0/go.mod h1:qCkNjqczPEvgsOnxZ0eCD14lv+B2LHlFAB++CNOh9hA= github.com/rodaine/table v1.1.0 h1:/fUlCSdjamMY8VifdQRIu3VWZXYLY7QHFkVorS8NTr4= github.com/rodaine/table v1.1.0/go.mod h1:Qu3q5wi1jTQD6B6HsP6szie/S4w1QUQ8pq22pz9iL8g= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= @@ -154,11 +151,12 @@ github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhso github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37/go.mod h1:HpMP7DB2CyokmAh4lp0EQnnWhmycP/TvwBGzvuie+H0= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo= +go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -171,11 +169,10 @@ golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZ golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -185,7 +182,6 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= @@ -198,7 +194,6 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= @@ -209,8 +204,6 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -223,6 +216,7 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -239,15 +233,12 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= @@ -270,6 +261,7 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= From 4957fd23eed324ba3a2b6087dd74461d6d68bb87 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 19 Feb 2024 17:46:47 +0800 Subject: [PATCH 163/444] display go version in make (#4003) --- .github/workflows/golangci-lint.yml | 40 ++++++++++++++--------------- Makefile | 5 +++- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 6b8075f7bfc..72186658d30 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -14,28 +14,28 @@ jobs: name: lint runs-on: ubuntu-latest steps: - - uses: actions/setup-go@v5 - with: - go-version: '1.22' - - uses: actions/checkout@v4 - - name: golangci-lint - uses: golangci/golangci-lint-action@v4 - with: - # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v1.55 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: '1.22' + - name: golangci-lint + uses: golangci/golangci-lint-action@v4 + with: + # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version + version: v1.55 - # Optional: golangci-lint command line arguments. - # args: --issues-exit-code=0 + # Optional: golangci-lint command line arguments. + # args: --issues-exit-code=0 - # Optional: show only new issues if it's a pull request. The default value is `false`. - # only-new-issues: true + # Optional: show only new issues if it's a pull request. The default value is `false`. + # only-new-issues: true - # Optional: if set to true then the all caching functionality will be complete disabled, - # takes precedence over all other caching options. - # skip-cache: true + # Optional: if set to true then the all caching functionality will be complete disabled, + # takes precedence over all other caching options. + # skip-cache: true - # Optional: if set to true then the action don't cache or restore ~/go/pkg. - # skip-pkg-cache: true + # Optional: if set to true then the action don't cache or restore ~/go/pkg. + # skip-pkg-cache: true - # Optional: if set to true then the action don't cache or restore ~/.cache/go-build. - # skip-build-cache: true + # Optional: if set to true then the action don't cache or restore ~/.cache/go-build. + # skip-build-cache: true diff --git a/Makefile b/Makefile index f8326891de6..b9dfb085aca 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,13 @@ export PATH := $(GOPATH)/bin:$(PATH) export GO111MODULE=on LDFLAGS := -s -w -all: fmt build +all: env fmt build build: frps frpc +env: + @go version + # compile assets into binary file file: rm -rf ./assets/frps/static/* From 518ca2ceb275706a0b6a4a8b6954837fae587c0a Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 19 Feb 2024 21:04:29 +0800 Subject: [PATCH 164/444] ReverseProxy: use Rewrite to replace Director (#4005) * display go version in make * ReverseProxy: use Rewrite to replace Director --- Makefile | 2 +- pkg/plugin/client/http2https.go | 3 ++- pkg/plugin/client/https2http.go | 3 ++- pkg/plugin/client/https2https.go | 3 ++- pkg/util/vhost/http.go | 4 +++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index b9dfb085aca..603aeabd97e 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -export PATH := $(GOPATH)/bin:$(PATH) +export PATH := $(PATH):`go env GOPATH`/bin export GO111MODULE=on LDFLAGS := -s -w diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index ac54551afbe..7cd3cd4295f 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -53,7 +53,8 @@ func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { } rp := &httputil.ReverseProxy{ - Director: func(req *http.Request) { + Rewrite: func(r *httputil.ProxyRequest) { + req := r.Out req.URL.Scheme = "https" req.URL.Host = p.opts.LocalAddr if p.opts.HostHeaderRewrite != "" { diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index ba66bfaeb93..389ac849eb8 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -50,7 +50,8 @@ func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { } rp := &httputil.ReverseProxy{ - Director: func(req *http.Request) { + Rewrite: func(r *httputil.ProxyRequest) { + req := r.Out req.URL.Scheme = "http" req.URL.Host = p.opts.LocalAddr if p.opts.HostHeaderRewrite != "" { diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index a79ea3b106c..da3302b80d2 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -55,7 +55,8 @@ func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { } rp := &httputil.ReverseProxy{ - Director: func(req *http.Request) { + Rewrite: func(r *httputil.ProxyRequest) { + req := r.Out req.URL.Scheme = "https" req.URL.Host = p.opts.LocalAddr if p.opts.HostHeaderRewrite != "" { diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index 72ab4775cbd..7aa67c98f36 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -58,7 +58,9 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * } proxy := &httputil.ReverseProxy{ // Modify incoming requests by route policies. - Director: func(req *http.Request) { + Rewrite: func(r *httputil.ProxyRequest) { + r.SetXForwarded() + req := r.Out req.URL.Scheme = "http" reqRouteInfo := req.Context().Value(RouteInfoKey).(*RequestRouteInfo) oldHost, _ := httppkg.CanonicalHost(reqRouteInfo.Host) From adb04e81e737a7d05e132e68a439d56874c4b32d Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 19 Feb 2024 21:13:20 +0800 Subject: [PATCH 165/444] bump pion/stun to v2 (#4006) --- go.mod | 3 ++- go.sum | 14 ++++++++++++-- pkg/nathole/discovery.go | 2 +- pkg/nathole/utils.go | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 90974bc2331..ee9b73acbe1 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/onsi/ginkgo/v2 v2.11.0 github.com/onsi/gomega v1.27.8 github.com/pelletier/go-toml/v2 v2.1.0 - github.com/pion/stun v0.6.1 + github.com/pion/stun/v2 v2.0.0 github.com/pires/go-proxyproto v0.7.0 github.com/prometheus/client_golang v1.16.0 github.com/quic-go/quic-go v0.41.0 @@ -55,6 +55,7 @@ require ( github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/logging v0.2.2 // indirect github.com/pion/transport/v2 v2.2.1 // indirect + github.com/pion/transport/v3 v3.0.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect diff --git a/go.sum b/go.sum index 255f8c24530..e77c5cf7cba 100644 --- a/go.sum +++ b/go.sum @@ -97,10 +97,12 @@ github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= -github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= -github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= +github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0= +github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ= github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c= github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= +github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= +github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs= github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -161,6 +163,7 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -185,6 +188,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -209,12 +214,16 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -223,6 +232,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= diff --git a/pkg/nathole/discovery.go b/pkg/nathole/discovery.go index 0be4126012c..f25cd4637f3 100644 --- a/pkg/nathole/discovery.go +++ b/pkg/nathole/discovery.go @@ -19,7 +19,7 @@ import ( "net" "time" - "github.com/pion/stun" + "github.com/pion/stun/v2" ) var responseTimeout = 3 * time.Second diff --git a/pkg/nathole/utils.go b/pkg/nathole/utils.go index 22ba016fa5e..3896a2153f0 100644 --- a/pkg/nathole/utils.go +++ b/pkg/nathole/utils.go @@ -21,7 +21,7 @@ import ( "strconv" "github.com/fatedier/golib/crypto" - "github.com/pion/stun" + "github.com/pion/stun/v2" "github.com/fatedier/frp/pkg/msg" ) From b6361fb143c727cdf034ccebb4068e4f2117899c Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 19 Feb 2024 21:27:56 +0800 Subject: [PATCH 166/444] use go built-in min & max functions to replace lo.Min and lo.Max (#4007) --- pkg/nathole/analysis.go | 2 +- pkg/nathole/controller.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/nathole/analysis.go b/pkg/nathole/analysis.go index 75f9a55c6f1..eb44d6d9545 100644 --- a/pkg/nathole/analysis.go +++ b/pkg/nathole/analysis.go @@ -224,7 +224,7 @@ func (mhr *MakeHoleRecords) ReportSuccess(mode int, index int) { } score.Score += 2 - score.Score = lo.Min([]int{score.Score, 10}) + score.Score = min(score.Score, 10) return } } diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index dd134abe0f7..03c05b35303 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -317,7 +317,7 @@ func (c *Controller) analysis(session *Session) (*msg.NatHoleResp, *msg.NatHoleR session.cBehavior = cBehavior session.vBehavior = vBehavior - timeoutMs := lo.Max([]int{cBehavior.SendDelayMs, vBehavior.SendDelayMs}) + 5000 + timeoutMs := max(cBehavior.SendDelayMs, vBehavior.SendDelayMs) + 5000 if cBehavior.ListenRandomPorts > 0 || vBehavior.ListenRandomPorts > 0 { timeoutMs += 30000 } @@ -384,8 +384,8 @@ func getRangePorts(addrs []string, difference, maxNumber int) []msg.PortsRange { return nil } ports = append(ports, msg.PortsRange{ - From: lo.Max([]int{port - difference - 5, port - maxNumber, 1}), - To: lo.Min([]int{port + difference + 5, port + maxNumber, 65535}), + From: max(port-difference-5, port-maxNumber, 1), + To: min(port+difference+5, port+maxNumber, 65535), }) return ports } From 3e0c78233a96dab76f0548e697c890ebb072efc4 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 20 Feb 2024 12:01:41 +0800 Subject: [PATCH 167/444] use std slices package (#4008) --- .github/workflows/golangci-lint.yml | 1 + client/admin_api.go | 12 +++++------- cmd/frpc/sub/proxy.go | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- pkg/auth/oidc.go | 10 +++++----- pkg/auth/token.go | 11 +++++------ pkg/config/legacy/client.go | 4 ++-- pkg/config/v1/validation/client.go | 5 +++-- pkg/config/v1/validation/common.go | 5 ++--- pkg/config/v1/validation/proxy.go | 10 +++++----- pkg/config/v1/validation/server.go | 3 ++- pkg/config/v1/validation/visitor.go | 5 ++--- pkg/nathole/analysis.go | 10 ++++++---- pkg/nathole/classify.go | 5 ++--- pkg/nathole/controller.go | 15 ++++++++------- pkg/nathole/nathole.go | 8 ++++---- pkg/ssh/server.go | 4 ++-- pkg/util/vhost/router.go | 23 ++++++----------------- pkg/util/xlog/xlog.go | 7 ++++--- server/dashboard_api.go | 7 ++++--- server/visitor/visitor.go | 4 ++-- 22 files changed, 75 insertions(+), 84 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 72186658d30..462e33563c6 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -18,6 +18,7 @@ jobs: - uses: actions/setup-go@v5 with: go-version: '1.22' + cache: false - name: golangci-lint uses: golangci/golangci-lint-action@v4 with: diff --git a/client/admin_api.go b/client/admin_api.go index 5e4d67c60fa..e15fc4a4da5 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -15,19 +15,17 @@ package client import ( + "cmp" "encoding/json" "fmt" "io" "net" "net/http" "os" - "sort" + "slices" "strconv" - "strings" "time" - "github.com/samber/lo" - "github.com/fatedier/frp/client/proxy" "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/config/v1/validation" @@ -153,7 +151,7 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta if status.Err == "" { psr.RemoteAddr = status.RemoteAddr - if lo.Contains([]string{"tcp", "udp"}, status.Type) { + if slices.Contains([]string{"tcp", "udp"}, status.Type) { psr.RemoteAddr = serverAddr + psr.RemoteAddr } } @@ -190,8 +188,8 @@ func (svr *Service) apiStatus(w http.ResponseWriter, _ *http.Request) { if len(arrs) <= 1 { continue } - sort.Slice(arrs, func(i, j int) bool { - return strings.Compare(arrs[i].Name, arrs[j].Name) < 0 + slices.SortFunc(arrs, func(a, b ProxyStatusResp) int { + return cmp.Compare(a.Name, b.Name) }) } } diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go index 960509433ca..c5d76b1e3b3 100644 --- a/cmd/frpc/sub/proxy.go +++ b/cmd/frpc/sub/proxy.go @@ -17,8 +17,8 @@ package sub import ( "fmt" "os" + "slices" - "github.com/samber/lo" "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" @@ -55,7 +55,7 @@ func init() { config.RegisterProxyFlags(cmd, c) // add sub command for visitor - if lo.Contains(visitorTypes, v1.VisitorType(typ)) { + if slices.Contains(visitorTypes, v1.VisitorType(typ)) { vc := v1.NewVisitorConfigurerByType(v1.VisitorType(typ)) if vc == nil { panic("visitor type: " + typ + " not support") diff --git a/go.mod b/go.mod index ee9b73acbe1..90cedc2ccad 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/prometheus/client_golang v1.16.0 github.com/quic-go/quic-go v0.41.0 github.com/rodaine/table v1.1.0 - github.com/samber/lo v1.38.1 + github.com/samber/lo v1.39.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index e77c5cf7cba..a4f7aaf1f05 100644 --- a/go.sum +++ b/go.sum @@ -125,8 +125,8 @@ github.com/rodaine/table v1.1.0/go.mod h1:Qu3q5wi1jTQD6B6HsP6szie/S4w1QUQ8pq22pz github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= -github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= +github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= +github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= diff --git a/pkg/auth/oidc.go b/pkg/auth/oidc.go index f428a04dacf..d87420ff764 100644 --- a/pkg/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -17,9 +17,9 @@ package auth import ( "context" "fmt" + "slices" "github.com/coreos/go-oidc/v3/oidc" - "github.com/samber/lo" "golang.org/x/oauth2/clientcredentials" v1 "github.com/fatedier/frp/pkg/config/v1" @@ -70,7 +70,7 @@ func (auth *OidcAuthProvider) SetLogin(loginMsg *msg.Login) (err error) { } func (auth *OidcAuthProvider) SetPing(pingMsg *msg.Ping) (err error) { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -79,7 +79,7 @@ func (auth *OidcAuthProvider) SetPing(pingMsg *msg.Ping) (err error) { } func (auth *OidcAuthProvider) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (err error) { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } @@ -135,7 +135,7 @@ func (auth *OidcAuthConsumer) verifyPostLoginToken(privilegeKey string) (err err } func (auth *OidcAuthConsumer) VerifyPing(pingMsg *msg.Ping) (err error) { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -143,7 +143,7 @@ func (auth *OidcAuthConsumer) VerifyPing(pingMsg *msg.Ping) (err error) { } func (auth *OidcAuthConsumer) VerifyNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (err error) { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } diff --git a/pkg/auth/token.go b/pkg/auth/token.go index 0b34b05e417..9ee993f9d50 100644 --- a/pkg/auth/token.go +++ b/pkg/auth/token.go @@ -16,10 +16,9 @@ package auth import ( "fmt" + "slices" "time" - "github.com/samber/lo" - v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/util/util" @@ -43,7 +42,7 @@ func (auth *TokenAuthSetterVerifier) SetLogin(loginMsg *msg.Login) error { } func (auth *TokenAuthSetterVerifier) SetPing(pingMsg *msg.Ping) error { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -53,7 +52,7 @@ func (auth *TokenAuthSetterVerifier) SetPing(pingMsg *msg.Ping) error { } func (auth *TokenAuthSetterVerifier) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) error { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } @@ -70,7 +69,7 @@ func (auth *TokenAuthSetterVerifier) VerifyLogin(m *msg.Login) error { } func (auth *TokenAuthSetterVerifier) VerifyPing(m *msg.Ping) error { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { return nil } @@ -81,7 +80,7 @@ func (auth *TokenAuthSetterVerifier) VerifyPing(m *msg.Ping) error { } func (auth *TokenAuthSetterVerifier) VerifyNewWorkConn(m *msg.NewWorkConn) error { - if !lo.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { return nil } diff --git a/pkg/config/legacy/client.go b/pkg/config/legacy/client.go index 50f62bef1bc..b45ed069d00 100644 --- a/pkg/config/legacy/client.go +++ b/pkg/config/legacy/client.go @@ -18,9 +18,9 @@ import ( "fmt" "os" "path/filepath" + "slices" "strings" - "github.com/samber/lo" "gopkg.in/ini.v1" legacyauth "github.com/fatedier/frp/pkg/auth/legacy" @@ -399,7 +399,7 @@ func (cfg *ClientCommonConf) Validate() error { } } - if !lo.Contains([]string{"tcp", "kcp", "quic", "websocket", "wss"}, cfg.Protocol) { + if !slices.Contains([]string{"tcp", "kcp", "quic", "websocket", "wss"}, cfg.Protocol) { return fmt.Errorf("invalid protocol") } diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index 16fc4ccb48e..cc46607cb9c 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -18,6 +18,7 @@ import ( "fmt" "os" "path/filepath" + "slices" "github.com/samber/lo" @@ -29,7 +30,7 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { warnings Warning errs error ) - if !lo.Contains(SupportedAuthMethods, c.Auth.Method) { + if !slices.Contains(SupportedAuthMethods, c.Auth.Method) { errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", SupportedAuthMethods)) } if !lo.Every(SupportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { @@ -63,7 +64,7 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { warnings = AppendError(warnings, checkTLSConfig("transport.tls.trustedCaFile", c.Transport.TLS.TrustedCaFile)) } - if !lo.Contains(SupportedTransportProtocols, c.Transport.Protocol) { + if !slices.Contains(SupportedTransportProtocols, c.Transport.Protocol) { errs = AppendError(errs, fmt.Errorf("invalid transport.protocol, optional values are %v", SupportedTransportProtocols)) } diff --git a/pkg/config/v1/validation/common.go b/pkg/config/v1/validation/common.go index c159e270bf3..c7b93a32243 100644 --- a/pkg/config/v1/validation/common.go +++ b/pkg/config/v1/validation/common.go @@ -16,8 +16,7 @@ package validation import ( "fmt" - - "github.com/samber/lo" + "slices" v1 "github.com/fatedier/frp/pkg/config/v1" ) @@ -44,7 +43,7 @@ func ValidatePort(port int, fieldPath string) error { } func validateLogConfig(c *v1.LogConfig) error { - if !lo.Contains(SupportedLogLevels, c.Level) { + if !slices.Contains(SupportedLogLevels, c.Level) { return fmt.Errorf("invalid log level, optional values are %v", SupportedLogLevels) } return nil diff --git a/pkg/config/v1/validation/proxy.go b/pkg/config/v1/validation/proxy.go index 343e6133dc7..d8e3d01e076 100644 --- a/pkg/config/v1/validation/proxy.go +++ b/pkg/config/v1/validation/proxy.go @@ -17,9 +17,9 @@ package validation import ( "errors" "fmt" + "slices" "strings" - "github.com/samber/lo" "k8s.io/apimachinery/pkg/util/validation" v1 "github.com/fatedier/frp/pkg/config/v1" @@ -33,10 +33,10 @@ func validateProxyBaseConfigForClient(c *v1.ProxyBaseConfig) error { if err := ValidateAnnotations(c.Annotations); err != nil { return err } - if !lo.Contains([]string{"", "v1", "v2"}, c.Transport.ProxyProtocolVersion) { + if !slices.Contains([]string{"", "v1", "v2"}, c.Transport.ProxyProtocolVersion) { return fmt.Errorf("not support proxy protocol version: %s", c.Transport.ProxyProtocolVersion) } - if !lo.Contains([]string{"client", "server"}, c.Transport.BandwidthLimitMode) { + if !slices.Contains([]string{"client", "server"}, c.Transport.BandwidthLimitMode) { return fmt.Errorf("bandwidth limit mode should be client or server") } @@ -46,7 +46,7 @@ func validateProxyBaseConfigForClient(c *v1.ProxyBaseConfig) error { } } - if !lo.Contains([]string{"", "tcp", "http"}, c.HealthCheck.Type) { + if !slices.Contains([]string{"", "tcp", "http"}, c.HealthCheck.Type) { return fmt.Errorf("not support health check type: %s", c.HealthCheck.Type) } if c.HealthCheck.Type != "" { @@ -139,7 +139,7 @@ func validateTCPMuxProxyConfigForClient(c *v1.TCPMuxProxyConfig) error { return err } - if !lo.Contains([]string{string(v1.TCPMultiplexerHTTPConnect)}, c.Multiplexer) { + if !slices.Contains([]string{string(v1.TCPMultiplexerHTTPConnect)}, c.Multiplexer) { return fmt.Errorf("not support multiplexer: %s", c.Multiplexer) } return nil diff --git a/pkg/config/v1/validation/server.go b/pkg/config/v1/validation/server.go index 5f17d6c7a73..cdb80ea3851 100644 --- a/pkg/config/v1/validation/server.go +++ b/pkg/config/v1/validation/server.go @@ -16,6 +16,7 @@ package validation import ( "fmt" + "slices" "github.com/samber/lo" @@ -27,7 +28,7 @@ func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { warnings Warning errs error ) - if !lo.Contains(SupportedAuthMethods, c.Auth.Method) { + if !slices.Contains(SupportedAuthMethods, c.Auth.Method) { errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", SupportedAuthMethods)) } if !lo.Every(SupportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { diff --git a/pkg/config/v1/validation/visitor.go b/pkg/config/v1/validation/visitor.go index 5307dc9053b..50efc47ddb6 100644 --- a/pkg/config/v1/validation/visitor.go +++ b/pkg/config/v1/validation/visitor.go @@ -17,8 +17,7 @@ package validation import ( "errors" "fmt" - - "github.com/samber/lo" + "slices" v1 "github.com/fatedier/frp/pkg/config/v1" ) @@ -56,7 +55,7 @@ func validateVisitorBaseConfig(c *v1.VisitorBaseConfig) error { } func validateXTCPVisitorConfig(c *v1.XTCPVisitorConfig) error { - if !lo.Contains([]string{"kcp", "quic"}, c.Protocol) { + if !slices.Contains([]string{"kcp", "quic"}, c.Protocol) { return fmt.Errorf("protocol should be kcp or quic") } return nil diff --git a/pkg/nathole/analysis.go b/pkg/nathole/analysis.go index eb44d6d9545..6be0be5557d 100644 --- a/pkg/nathole/analysis.go +++ b/pkg/nathole/analysis.go @@ -15,6 +15,8 @@ package nathole import ( + "cmp" + "slices" "sync" "time" @@ -233,12 +235,12 @@ func (mhr *MakeHoleRecords) Recommand() (mode, index int) { mhr.mu.Lock() defer mhr.mu.Unlock() - maxScore := lo.MaxBy(mhr.scores, func(item, max *BehaviorScore) bool { - return item.Score > max.Score - }) - if maxScore == nil { + if len(mhr.scores) == 0 { return 0, 0 } + maxScore := slices.MaxFunc(mhr.scores, func(a, b *BehaviorScore) int { + return cmp.Compare(a.Score, b.Score) + }) maxScore.Score-- mhr.LastUpdateTime = time.Now() return maxScore.Mode, maxScore.Index diff --git a/pkg/nathole/classify.go b/pkg/nathole/classify.go index 1ec5952bd63..5abb0e23826 100644 --- a/pkg/nathole/classify.go +++ b/pkg/nathole/classify.go @@ -17,9 +17,8 @@ package nathole import ( "fmt" "net" + "slices" "strconv" - - "github.com/samber/lo" ) const ( @@ -59,7 +58,7 @@ func ClassifyNATFeature(addresses []string, localIPs []string) (*NatFeature, err if err != nil { return nil, err } - if lo.Contains(localIPs, ip) { + if slices.Contains(localIPs, ip) { natFeature.PublicNetwork = true } diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index 03c05b35303..9c558326566 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -20,6 +20,7 @@ import ( "encoding/hex" "fmt" "net" + "slices" "strconv" "sync" "time" @@ -72,7 +73,7 @@ type Session struct { func (s *Session) genAnalysisKey() { hash := md5.New() - vIPs := lo.Uniq(parseIPs(s.visitorMsg.MappedAddrs)) + vIPs := slices.Compact(parseIPs(s.visitorMsg.MappedAddrs)) if len(vIPs) > 0 { hash.Write([]byte(vIPs[0])) } @@ -80,7 +81,7 @@ func (s *Session) genAnalysisKey() { hash.Write([]byte(s.vNatFeature.Behavior)) hash.Write([]byte(strconv.FormatBool(s.vNatFeature.RegularPortsChange))) - cIPs := lo.Uniq(parseIPs(s.clientMsg.MappedAddrs)) + cIPs := slices.Compact(parseIPs(s.clientMsg.MappedAddrs)) if len(cIPs) > 0 { hash.Write([]byte(cIPs[0])) } @@ -156,7 +157,7 @@ func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport. _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, fmt.Sprintf("xtcp server for [%s] doesn't exist", m.ProxyName))) return } - if !lo.Contains(cfg.allowUsers, visitorUser) && !lo.Contains(cfg.allowUsers, "*") { + if !slices.Contains(cfg.allowUsers, visitorUser) && !slices.Contains(cfg.allowUsers, "*") { _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, fmt.Sprintf("xtcp visitor user [%s] not allowed for [%s]", visitorUser, m.ProxyName))) return } @@ -327,8 +328,8 @@ func (c *Controller) analysis(session *Session) (*msg.NatHoleResp, *msg.NatHoleR TransactionID: vm.TransactionID, Sid: session.sid, Protocol: protocol, - CandidateAddrs: lo.Uniq(cm.MappedAddrs), - AssistedAddrs: lo.Uniq(cm.AssistedAddrs), + CandidateAddrs: slices.Compact(cm.MappedAddrs), + AssistedAddrs: slices.Compact(cm.AssistedAddrs), DetectBehavior: msg.NatHoleDetectBehavior{ Mode: mode, Role: vBehavior.Role, @@ -344,8 +345,8 @@ func (c *Controller) analysis(session *Session) (*msg.NatHoleResp, *msg.NatHoleR TransactionID: cm.TransactionID, Sid: session.sid, Protocol: protocol, - CandidateAddrs: lo.Uniq(vm.MappedAddrs), - AssistedAddrs: lo.Uniq(vm.AssistedAddrs), + CandidateAddrs: slices.Compact(vm.MappedAddrs), + AssistedAddrs: slices.Compact(vm.AssistedAddrs), DetectBehavior: msg.NatHoleDetectBehavior{ Mode: mode, Role: cBehavior.Role, diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index c10eb30dd57..065d0eb4a6c 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -19,12 +19,12 @@ import ( "fmt" "math/rand" "net" + "slices" "strconv" "strings" "time" "github.com/fatedier/golib/pool" - "github.com/samber/lo" "golang.org/x/net/ipv4" "k8s.io/apimachinery/pkg/util/sets" @@ -212,7 +212,7 @@ func MakeHole(ctx context.Context, listenConn *net.UDPConn, m *msg.NatHoleResp, } } - detectAddrs = lo.Uniq(detectAddrs) + detectAddrs = slices.Compact(detectAddrs) for _, detectAddr := range detectAddrs { for _, conn := range listenConns { if err := sendSidMessage(ctx, conn, m.Sid, transactionID, detectAddr, key, m.DetectBehavior.TTL); err != nil { @@ -377,7 +377,7 @@ func sendSidMessageToRangePorts( sendFunc func(*net.UDPConn, string) error, ) { xl := xlog.FromContextSafe(ctx) - for _, ip := range lo.Uniq(parseIPs(addrs)) { + for _, ip := range slices.Compact(parseIPs(addrs)) { for _, portsRange := range ports { for i := portsRange.From; i <= portsRange.To; i++ { detectAddr := net.JoinHostPort(ip, strconv.Itoa(i)) @@ -419,7 +419,7 @@ func sendSidMessageToRandomPorts( continue } - for _, ip := range lo.Uniq(parseIPs(addrs)) { + for _, ip := range slices.Compact(parseIPs(addrs)) { detectAddr := net.JoinHostPort(ip, strconv.Itoa(port)) if err := sendFunc(conn, detectAddr); err != nil { xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) diff --git a/pkg/ssh/server.go b/pkg/ssh/server.go index f3d68f3cf96..7fb93c348c0 100644 --- a/pkg/ssh/server.go +++ b/pkg/ssh/server.go @@ -20,12 +20,12 @@ import ( "errors" "fmt" "net" + "slices" "strings" "sync" "time" libio "github.com/fatedier/golib/io" - "github.com/samber/lo" "github.com/spf13/cobra" flag "github.com/spf13/pflag" "golang.org/x/crypto/ssh" @@ -262,7 +262,7 @@ func (s *TunnelServer) parseClientAndProxyConfigurer(_ *tcpipForward, extraPaylo } proxyType := strings.TrimSpace(args[0]) supportTypes := []string{"tcp", "http", "https", "tcpmux", "stcp"} - if !lo.Contains(supportTypes, proxyType) { + if !slices.Contains(supportTypes, proxyType) { return nil, nil, helpMessage, fmt.Errorf("invalid proxy type: %s, support types: %v", proxyType, supportTypes) } pc := v1.NewProxyConfigurerByType(v1.ProxyType(proxyType)) diff --git a/pkg/util/vhost/router.go b/pkg/util/vhost/router.go index e8e5a53fccc..4df79aa7b44 100644 --- a/pkg/util/vhost/router.go +++ b/pkg/util/vhost/router.go @@ -1,8 +1,9 @@ package vhost import ( + "cmp" "errors" - "sort" + "slices" "strings" "sync" ) @@ -58,7 +59,10 @@ func (r *Routers) Add(domain, location, httpUser string, payload interface{}) er payload: payload, } vrs = append(vrs, vr) - sort.Sort(sort.Reverse(ByLocation(vrs))) + + slices.SortFunc(vrs, func(a, b *Router) int { + return -cmp.Compare(a.location, b.location) + }) routersByHTTPUser[httpUser] = vrs r.indexByDomain[domain] = routersByHTTPUser @@ -130,18 +134,3 @@ func (r *Routers) exist(host, path, httpUser string) (route *Router, exist bool) } return } - -// sort by location -type ByLocation []*Router - -func (a ByLocation) Len() int { - return len(a) -} - -func (a ByLocation) Swap(i, j int) { - a[i], a[j] = a[j], a[i] -} - -func (a ByLocation) Less(i, j int) bool { - return strings.Compare(a[i].location, a[j].location) < 0 -} diff --git a/pkg/util/xlog/xlog.go b/pkg/util/xlog/xlog.go index 7b69dcafe0a..56b07522eb7 100644 --- a/pkg/util/xlog/xlog.go +++ b/pkg/util/xlog/xlog.go @@ -15,7 +15,8 @@ package xlog import ( - "sort" + "cmp" + "slices" "github.com/fatedier/frp/pkg/util/log" ) @@ -77,8 +78,8 @@ func (l *Logger) AddPrefix(prefix LogPrefix) *Logger { } func (l *Logger) renderPrefixString() { - sort.SliceStable(l.prefixes, func(i, j int) bool { - return l.prefixes[i].Priority < l.prefixes[j].Priority + slices.SortStableFunc(l.prefixes, func(a, b LogPrefix) int { + return cmp.Compare(a.Priority, b.Priority) }) l.prefixString = "" for _, v := range l.prefixes { diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 1b0087b4d82..9ecd5a7c265 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -15,9 +15,10 @@ package server import ( + "cmp" "encoding/json" "net/http" - "sort" + "slices" "github.com/gorilla/mux" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -228,8 +229,8 @@ func (svr *Service) apiProxyByType(w http.ResponseWriter, r *http.Request) { proxyInfoResp := GetProxyInfoResp{} proxyInfoResp.Proxies = svr.getProxyStatsByType(proxyType) - sort.Slice(proxyInfoResp.Proxies, func(i, j int) bool { - return proxyInfoResp.Proxies[i].Name < proxyInfoResp.Proxies[j].Name + slices.SortFunc(proxyInfoResp.Proxies, func(a, b *ProxyStatsInfo) int { + return cmp.Compare(a.Name, b.Name) }) buf, _ := json.Marshal(&proxyInfoResp) diff --git a/server/visitor/visitor.go b/server/visitor/visitor.go index ed06dc4b4e9..57194d98775 100644 --- a/server/visitor/visitor.go +++ b/server/visitor/visitor.go @@ -18,10 +18,10 @@ import ( "fmt" "io" "net" + "slices" "sync" libio "github.com/fatedier/golib/io" - "github.com/samber/lo" netpkg "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/util" @@ -75,7 +75,7 @@ func (vm *Manager) NewConn(name string, conn net.Conn, timestamp int64, signKey return } - if !lo.Contains(l.allowUsers, visitorUser) && !lo.Contains(l.allowUsers, "*") { + if !slices.Contains(l.allowUsers, visitorUser) && !slices.Contains(l.allowUsers, "*") { err = fmt.Errorf("visitor connection of [%s] user [%s] not allowed", name, visitorUser) return } From b2b580be22559f3e0339e299fc40305a99e8818c Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 20 Feb 2024 16:11:37 +0800 Subject: [PATCH 168/444] update kcp-go package (#4009) --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- pkg/util/net/kcp.go | 12 ++++++++++-- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/go.mod b/go.mod index 90cedc2ccad..49d07fb39c7 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,7 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.6.0 github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.1.1-0.20230725122706-dcbaee8eef40 - github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible + github.com/fatedier/golib v0.3.0 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 @@ -25,8 +24,9 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 github.com/tidwall/gjson v1.17.1 + github.com/xtaci/kcp-go/v5 v5.6.7 golang.org/x/crypto v0.17.0 - golang.org/x/net v0.17.0 + golang.org/x/net v0.19.0 golang.org/x/oauth2 v0.10.0 golang.org/x/sync v0.3.0 golang.org/x/time v0.3.0 @@ -48,8 +48,8 @@ require ( github.com/google/go-cmp v0.5.9 // indirect github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/klauspost/cpuid/v2 v2.0.6 // indirect - github.com/klauspost/reedsolomon v1.9.15 // indirect + github.com/klauspost/cpuid/v2 v2.2.6 // indirect + github.com/klauspost/reedsolomon v1.12.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect @@ -62,8 +62,8 @@ require ( github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.10.1 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect - github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect - github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect + github.com/templexxx/cpu v0.1.0 // indirect + github.com/templexxx/xorsimd v0.4.2 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect diff --git a/go.sum b/go.sum index a4f7aaf1f05..2112c7120c7 100644 --- a/go.sum +++ b/go.sum @@ -26,10 +26,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.1.1-0.20230725122706-dcbaee8eef40 h1:BVdpWT6viE/mpuRa6txNyRNjtHa1Efrii9Du6/gHfJ0= -github.com/fatedier/golib v0.1.1-0.20230725122706-dcbaee8eef40/go.mod h1:Lmi9U4VfvdRvonSMh1FgXVy1hCXycVyJk4E9ktokknE= -github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= -github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= +github.com/fatedier/golib v0.3.0 h1:xX0QQoYD1ns3IHVDTSysg6gL8buZvGaLyQFvBnWIRF4= +github.com/fatedier/golib v0.3.0/go.mod h1:pmX4FYyp6N4awxDB6jAgIDVOUWuH+QkVP4v30O+iJDM= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= @@ -75,10 +73,10 @@ github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/klauspost/cpuid/v2 v2.0.6 h1:dQ5ueTiftKxp0gyjKSx5+8BtPWkyQbd95m8Gys/RarI= -github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/reedsolomon v1.9.15 h1:g2erWKD2M6rgnPf89fCji6jNlhMKMdXcuNHMW1SYCIo= -github.com/klauspost/reedsolomon v1.9.15/go.mod h1:eqPAcE7xar5CIzcdfwydOEdcmchAKAP/qs14y4GCBOk= +github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= +github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/reedsolomon v1.12.0 h1:I5FEp3xSwVCcEh3F5A7dofEfhXdF/bWhQWPH+XwBFno= +github.com/klauspost/reedsolomon v1.12.0/go.mod h1:EPLZJeh4l27pUGC3aXOjheaoh1I9yut7xTURiW3LQ9Y= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -140,10 +138,10 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU= -github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU= -github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b h1:fj5tQ8acgNUr6O8LEplsxDhUIe2573iLkJc+PqnzZTI= -github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4= +github.com/templexxx/cpu v0.1.0 h1:wVM+WIJP2nYaxVxqgHPD4wGA2aJ9rvrQRV8CvFzNb40= +github.com/templexxx/cpu v0.1.0/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk= +github.com/templexxx/xorsimd v0.4.2 h1:ocZZ+Nvu65LGHmCLZ7OoCtg8Fx8jnHKK37SjvngUoVI= +github.com/templexxx/xorsimd v0.4.2/go.mod h1:HgwaPoDREdi6OnULpSfxhzaiiSUY4Fi3JPn1wpt28NI= github.com/tidwall/gjson v1.17.1 h1:wlYEnwqAHgzmhNUFfw7Xalt2JzQvsMx2Se4PcoFCT/U= github.com/tidwall/gjson v1.17.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -152,6 +150,8 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= +github.com/xtaci/kcp-go/v5 v5.6.7 h1:7+rnxNFIsjEwTXQk4cSZpXM4pO0hqtpwE1UFFoJBffA= +github.com/xtaci/kcp-go/v5 v5.6.7/go.mod h1:oE9j2NVqAkuKO5o8ByKGch3vgVX3BNf8zqP8JiGq0bM= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37/go.mod h1:HpMP7DB2CyokmAh4lp0EQnnWhmycP/TvwBGzvuie+H0= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= @@ -190,8 +190,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= diff --git a/pkg/util/net/kcp.go b/pkg/util/net/kcp.go index 77b6bfa76ff..b1d1fb93a48 100644 --- a/pkg/util/net/kcp.go +++ b/pkg/util/net/kcp.go @@ -18,7 +18,7 @@ import ( "fmt" "net" - kcp "github.com/fatedier/kcp-go" + kcp "github.com/xtaci/kcp-go/v5" ) type KCPListener struct { @@ -85,7 +85,15 @@ func (l *KCPListener) Addr() net.Addr { } func NewKCPConnFromUDP(conn *net.UDPConn, connected bool, raddr string) (net.Conn, error) { - kcpConn, err := kcp.NewConnEx(1, connected, raddr, nil, 10, 3, conn) + udpAddr, err := net.ResolveUDPAddr("udp", raddr) + if err != nil { + return nil, err + } + var pConn net.PacketConn = conn + if connected { + pConn = &ConnectedUDPConn{conn} + } + kcpConn, err := kcp.NewConn3(1, udpAddr, nil, 10, 3, pConn) if err != nil { return nil, err } From 52f66b05e624233105924906f67f10347a5ed0de Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 21 Feb 2024 17:20:40 +0800 Subject: [PATCH 169/444] update golangci-lint version to 1.56 (#4013) --- .github/workflows/golangci-lint.yml | 2 +- .golangci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 462e33563c6..18f69d52438 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -23,7 +23,7 @@ jobs: uses: golangci/golangci-lint-action@v4 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v1.55 + version: v1.56 # Optional: golangci-lint command line arguments. # args: --issues-exit-code=0 diff --git a/.golangci.yml b/.golangci.yml index 8349c9e4aa0..cd92e43c89f 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,5 @@ service: - golangci-lint-version: 1.55.x # use the fixed version to not introduce new linters unexpectedly + golangci-lint-version: 1.56.x # use the fixed version to not introduce new linters unexpectedly run: concurrency: 4 From 80cfd0938ef8c35745e86e3a0aaa4047c01aa506 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 22 Feb 2024 20:24:33 +0800 Subject: [PATCH 170/444] use go1.22 (#4018) --- .circleci/config.yml | 19 +++++-------------- go.mod | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 794ce64ad1a..3dff8a52ca6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,24 +2,15 @@ version: 2 jobs: go-version-latest: docker: - - image: cimg/go:1.22-node + - image: cimg/go:1.22-node resource_class: large steps: - - checkout - - run: make - - run: make alltest - go-version-last: - docker: - - image: cimg/go:1.21-node - resource_class: large - steps: - - checkout - - run: make - - run: make alltest + - checkout + - run: make + - run: make alltest workflows: version: 2 build_and_test: jobs: - - go-version-latest - - go-version-last + - go-version-latest diff --git a/go.mod b/go.mod index 49d07fb39c7..f35dcfeefff 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fatedier/frp -go 1.21 +go 1.22 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 From 7ae3719b8264469570b90ba9fbd9a8e5777f48cd Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 22 Feb 2024 21:04:21 +0800 Subject: [PATCH 171/444] cleanup code (#4019) --- pkg/config/types/types.go | 9 ------ pkg/msg/ctl.go | 4 --- pkg/util/net/http.go | 24 --------------- pkg/util/net/websocket.go | 10 ------ pkg/util/util/util.go | 10 ------ pkg/util/util/util_test.go | 42 ------------------------- pkg/util/version/version.go | 26 ---------------- pkg/util/version/version_test.go | 53 -------------------------------- pkg/util/wait/backoff.go | 19 ------------ 9 files changed, 197 deletions(-) delete mode 100644 pkg/util/version/version_test.go diff --git a/pkg/config/types/types.go b/pkg/config/types/types.go index fac29d74612..a6cd2e71b0e 100644 --- a/pkg/config/types/types.go +++ b/pkg/config/types/types.go @@ -45,15 +45,6 @@ func NewBandwidthQuantity(s string) (BandwidthQuantity, error) { return q, nil } -func MustBandwidthQuantity(s string) BandwidthQuantity { - q := BandwidthQuantity{} - err := q.UnmarshalString(s) - if err != nil { - panic(err) - } - return q -} - func (q *BandwidthQuantity) Equal(u *BandwidthQuantity) bool { if q == nil && u == nil { return true diff --git a/pkg/msg/ctl.go b/pkg/msg/ctl.go index 5ccee4a4caf..bf0c71a779b 100644 --- a/pkg/msg/ctl.go +++ b/pkg/msg/ctl.go @@ -42,7 +42,3 @@ func ReadMsgInto(c io.Reader, msg Message) (err error) { func WriteMsg(c io.Writer, msg interface{}) (err error) { return msgCtl.WriteMsg(c, msg) } - -func Pack(msg interface{}) (data []byte, err error) { - return msgCtl.Pack(msg) -} diff --git a/pkg/util/net/http.go b/pkg/util/net/http.go index 642d15901e3..e9fc52609fc 100644 --- a/pkg/util/net/http.go +++ b/pkg/util/net/http.go @@ -24,30 +24,6 @@ import ( "github.com/fatedier/frp/pkg/util/util" ) -type HTTPAuthWrapper struct { - h http.Handler - user string - passwd string -} - -func NewHTTPBasicAuthWrapper(h http.Handler, user, passwd string) http.Handler { - return &HTTPAuthWrapper{ - h: h, - user: user, - passwd: passwd, - } -} - -func (aw *HTTPAuthWrapper) ServeHTTP(w http.ResponseWriter, r *http.Request) { - user, passwd, hasAuth := r.BasicAuth() - if (aw.user == "" && aw.passwd == "") || (hasAuth && user == aw.user && passwd == aw.passwd) { - aw.h.ServeHTTP(w, r) - } else { - w.Header().Set("WWW-Authenticate", `Basic realm="Restricted"`) - http.Error(w, http.StatusText(http.StatusUnauthorized), http.StatusUnauthorized) - } -} - type HTTPAuthMiddleware struct { user string passwd string diff --git a/pkg/util/net/websocket.go b/pkg/util/net/websocket.go index 6a8d369c4a9..e642be06f3c 100644 --- a/pkg/util/net/websocket.go +++ b/pkg/util/net/websocket.go @@ -4,7 +4,6 @@ import ( "errors" "net" "net/http" - "strconv" "golang.org/x/net/websocket" ) @@ -50,15 +49,6 @@ func NewWebsocketListener(ln net.Listener) (wl *WebsocketListener) { return } -func ListenWebsocket(bindAddr string, bindPort int) (*WebsocketListener, error) { - tcpLn, err := net.Listen("tcp", net.JoinHostPort(bindAddr, strconv.Itoa(bindPort))) - if err != nil { - return nil, err - } - l := NewWebsocketListener(tcpLn) - return l, nil -} - func (p *WebsocketListener) Accept() (net.Conn, error) { c, ok := <-p.acceptCh if !ok { diff --git a/pkg/util/util/util.go b/pkg/util/util/util.go index d2562b01a27..c7fd9971f28 100644 --- a/pkg/util/util/util.go +++ b/pkg/util/util/util.go @@ -47,16 +47,6 @@ func RandIDWithLen(idLen int) (id string, err error) { return id[:idLen], nil } -// RandIDWithRandLen return a rand string with length between [start, end). -func RandIDWithRandLen(start, end int) (id string, err error) { - if start >= end { - err = fmt.Errorf("start should be less than end") - return - } - idLen := mathrand.Intn(end-start) + start - return RandIDWithLen(idLen) -} - func GetAuthKey(token string, timestamp int64) (key string) { md5Ctx := md5.New() md5Ctx.Write([]byte(token)) diff --git a/pkg/util/util/util_test.go b/pkg/util/util/util_test.go index cf76485b281..0061861119e 100644 --- a/pkg/util/util/util_test.go +++ b/pkg/util/util/util_test.go @@ -14,48 +14,6 @@ func TestRandId(t *testing.T) { assert.Equal(16, len(id)) } -func TestRandIDWithRandLen(t *testing.T) { - tests := []struct { - name string - start int - end int - expectErr bool - }{ - { - name: "start and end are equal", - start: 5, - end: 5, - expectErr: true, - }, - { - name: "start is less than end", - start: 5, - end: 10, - expectErr: false, - }, - { - name: "start is greater than end", - start: 10, - end: 5, - expectErr: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - assert := assert.New(t) - id, err := RandIDWithRandLen(tt.start, tt.end) - if tt.expectErr { - assert.Error(err) - } else { - assert.NoError(err) - assert.GreaterOrEqual(len(id), tt.start) - assert.Less(len(id), tt.end) - } - }) - } -} - func TestGetAuthKey(t *testing.T) { assert := assert.New(t) key := GetAuthKey("1234", 1488720000) diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 1dc5904c0e4..27ed32ec50d 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,34 +14,8 @@ package version -import ( - "strconv" - "strings" -) - var version = "0.54.0" func Full() string { return version } - -func getSubVersion(v string, position int) int64 { - arr := strings.Split(v, ".") - if len(arr) < 3 { - return 0 - } - res, _ := strconv.ParseInt(arr[position], 10, 64) - return res -} - -func Proto(v string) int64 { - return getSubVersion(v, 0) -} - -func Major(v string) int64 { - return getSubVersion(v, 1) -} - -func Minor(v string) int64 { - return getSubVersion(v, 2) -} diff --git a/pkg/util/version/version_test.go b/pkg/util/version/version_test.go deleted file mode 100644 index 2b4077cf33b..00000000000 --- a/pkg/util/version/version_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2016 fatedier, fatedier@gmail.com -// -// Licensed 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. - -package version - -import ( - "fmt" - "strconv" - "strings" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestFull(t *testing.T) { - assert := assert.New(t) - version := Full() - arr := strings.Split(version, ".") - assert.Equal(3, len(arr)) - - proto, err := strconv.ParseInt(arr[0], 10, 64) - assert.NoError(err) - assert.True(proto >= 0) - - major, err := strconv.ParseInt(arr[1], 10, 64) - assert.NoError(err) - assert.True(major >= 0) - - minor, err := strconv.ParseInt(arr[2], 10, 64) - assert.NoError(err) - assert.True(minor >= 0) -} - -func TestVersion(t *testing.T) { - assert := assert.New(t) - proto := Proto(Full()) - major := Major(Full()) - minor := Minor(Full()) - parseVersion := fmt.Sprintf("%d.%d.%d", proto, major, minor) - version := Full() - assert.Equal(parseVersion, version) -} diff --git a/pkg/util/wait/backoff.go b/pkg/util/wait/backoff.go index e07c5316ff6..16d9dd6a850 100644 --- a/pkg/util/wait/backoff.go +++ b/pkg/util/wait/backoff.go @@ -16,7 +16,6 @@ package wait import ( "math/rand" - "sync" "time" "github.com/fatedier/frp/pkg/util/util" @@ -174,21 +173,3 @@ func Until(f func(), period time.Duration, stopCh <-chan struct{}) { return period }), true, stopCh) } - -func MergeAndCloseOnAnyStopChannel[T any](upstreams ...<-chan T) <-chan T { - out := make(chan T) - closeOnce := sync.Once{} - for _, upstream := range upstreams { - ch := upstream - go func() { - select { - case <-ch: - closeOnce.Do(func() { - close(out) - }) - case <-out: - } - }() - } - return out -} From b3946489dd115a7c2a5e413d6630b2867b7184f7 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 27 Feb 2024 17:43:37 +0800 Subject: [PATCH 172/444] add new badges (#4028) --- README.md | 2 ++ README_zh.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/README.md b/README.md index cf6b7cf5495..0892e76cad3 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![Build Status](https://circleci.com/gh/fatedier/frp.svg?style=shield)](https://circleci.com/gh/fatedier/frp) [![GitHub release](https://img.shields.io/github/tag/fatedier/frp.svg?label=release)](https://github.com/fatedier/frp/releases) +[![Go Report Card](https://goreportcard.com/badge/github.com/fatedier/frp)](https://goreportcard.com/report/github.com/fatedier/frp) +[![GitHub Releases Stats](https://img.shields.io/github/downloads/fatedier/frp/total.svg?logo=github)](https://somsubhra.github.io/github-release-stats/?username=fatedier&repository=frp) [README](README.md) | [中文文档](README_zh.md) diff --git a/README_zh.md b/README_zh.md index d78875c40d4..cba1f2bf2ea 100644 --- a/README_zh.md +++ b/README_zh.md @@ -2,6 +2,8 @@ [![Build Status](https://circleci.com/gh/fatedier/frp.svg?style=shield)](https://circleci.com/gh/fatedier/frp) [![GitHub release](https://img.shields.io/github/tag/fatedier/frp.svg?label=release)](https://github.com/fatedier/frp/releases) +[![Go Report Card](https://goreportcard.com/badge/github.com/fatedier/frp)](https://goreportcard.com/report/github.com/fatedier/frp) +[![GitHub Releases Stats](https://img.shields.io/github/downloads/fatedier/frp/total.svg?logo=github)](https://somsubhra.github.io/github-release-stats/?username=fatedier&repository=frp) [README](README.md) | [中文文档](README_zh.md) From f63b4d5c292f6235bab9e38b665f21421533f8fc Mon Sep 17 00:00:00 2001 From: Haotian Zou <49368462+ChrisKimZHT@users.noreply.github.com> Date: Sun, 3 Mar 2024 22:57:17 +0800 Subject: [PATCH 173/444] fix: change absolute path to relative path (#4038) --- web/frps/src/components/ProxyView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/frps/src/components/ProxyView.vue b/web/frps/src/components/ProxyView.vue index 2811a30f5e4..97a6e071f51 100644 --- a/web/frps/src/components/ProxyView.vue +++ b/web/frps/src/components/ProxyView.vue @@ -111,7 +111,7 @@ const formatTrafficOut = (row: BaseProxy, _: TableColumnCtx) => { } const clearOfflineProxies = () => { - fetch('/api/proxies?status=offline', { + fetch('../api/proxies?status=offline', { method: 'DELETE', credentials: 'include', }) From 32f09c4b606237f6543443ad56bdaac505a83053 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 3 Mar 2024 23:02:38 +0800 Subject: [PATCH 174/444] regen web assets (#4040) --- assets/frps/static/{index-ky4re_ta.js => index-Q42Pu2_S.js} | 2 +- assets/frps/static/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename assets/frps/static/{index-ky4re_ta.js => index-Q42Pu2_S.js} (99%) diff --git a/assets/frps/static/index-ky4re_ta.js b/assets/frps/static/index-Q42Pu2_S.js similarity index 99% rename from assets/frps/static/index-ky4re_ta.js rename to assets/frps/static/index-Q42Pu2_S.js index cf7b8c3b515..45293e05cfd 100644 --- a/assets/frps/static/index-ky4re_ta.js +++ b/assets/frps/static/index-Q42Pu2_S.js @@ -81,4 +81,4 @@ PERFORMANCE OF THIS SOFTWARE. `:"
",g=c.join(m);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,d,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,g,u,Math.random()+"",o[0],o[1],d,null,h)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=dt(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,h=u.getData(c),d=this._renderMode,v=r.positionDefault,p=bl([h.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),m=p.get("trigger");if(!(m!=null&&m!=="item")){var g=u.getDataParams(f,c),y=new up;g.marker=y.makeTooltipMarker("item",ku(g.color),d);var _=FS(u.formatTooltip(f,!1,c)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?WS(x?ue({valueFormatter:x},w):w,y,d,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,S,g,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:h.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=dt(n),o=a.tooltipConfig,s=o.option||{};if(Ee(s)){var l=s;s={content:l,formatter:l}}var u=[s],f=this._ecModel.getComponent(a.componentMainType,a.componentIndex);f&&u.push(f),u.push({formatter:s.content});var c=r.positionDefault,h=bl(u,this._tooltipModel,c?{position:c}:null),d=h.get("content"),v=Math.random()+"",p=new up;this._showOrMove(h,function(){var m=tt(h.get("formatterParams")||{});this._showTooltipContent(h,d,m,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,f){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var c=this._tooltipContent;c.setEnterable(r.get("enterable"));var h=r.get("formatter");l=l||r.get("position");var d=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(h)if(Ee(h)){var m=r.ecModel.get("useUTC"),g=ye(i)?i[0]:i,y=g&&g.axisType&&g.axisType.indexOf("time")>=0;d=h,y&&(d=Ph(g.axisValue,d,m)),d=pE(d,i,!0)}else if(Ye(h)){var _=xt(function(b,x){b===this._ticket&&(c.setContent(x,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,d=h(i,a,_)}else d=h;c.setContent(d,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ye(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ye(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||r.get("position");var c=o.getSize(),h=r.get("align"),d=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ye(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,f],contentSize:c.slice()})),ye(n))i=yt(n[0],u),a=yt(n[1],f);else if(Re(n)){var p=n;p.width=c[0],p.height=c[1];var m=Ls(p,{width:u,height:f});i=m.x,a=m.y,h=null,d=null}else if(Ee(n)&&l){var g=$ee(n,v,c,r.get("borderWidth"));i=g[0],a=g[1]}else{var g=Bee(i,a,o,u,f,h?null:20,d?null:20);i=g[0],a=g[1]}if(h&&(i-=CC(h)?c[0]/2:h==="right"?c[0]:0),d&&(a-=CC(d)?c[1]/2:d==="bottom"?c[1]:0),_D(r)){var g=Fee(i,a,o,u,f);i=g[0],a=g[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&R(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&R(u,function(h,d){var v=c[d]||{},p=h.seriesDataIndices||[],m=v.seriesDataIndices||[];o=o&&h.value===v.value&&h.axisType===v.axisType&&h.axisId===v.axisId&&p.length===m.length,o&&R(p,function(g,y){var _=m[y];o=o&&g.seriesIndex===_.seriesIndex&&g.dataIndex===_.dataIndex}),a&&R(h.seriesDataIndices,function(g){var y=g.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){He.node||!n.getDom()||(wm(this,"_updatePosition"),this._tooltipContent.dispose(),Fm("itemTooltip",n))},t.type="tooltip",t}(Mi);function bl(e,t,r){var n=t.ecModel,i;r?(i=new sr(r,n,n),i=new sr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof sr&&(o=o.get("tooltip",!0)),Ee(o)&&(o={formatter:o}),o&&(i=new sr(o,i,n)))}return i}function xC(e,t){return e.dispatchAction||xt(t.dispatchAction,t)}function Bee(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Fee(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function $ee(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function CC(e){return e==="center"||e==="middle"}function Hee(e,t,r){var n=v0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=lf(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=dt(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const zee=Nee;function Vee(e){va(yD),e.registerComponentModel(See),e.registerComponentView(zee),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Er),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Er)}var Wee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(Mt),Gee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=Ze(r.get("textBaseline"),r.get("textVerticalAlign")),f=new mr({style:ha(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),h=r.get("subtext"),d=new mr({style:ha(s,{text:h,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),m=r.get("triggerEvent",!0);f.silent=!v&&!m,d.silent=!p&&!m,v&&f.on("click",function(){bS(v,"_"+r.get("target"))}),p&&d.on("click",function(){bS(p,"_"+r.get("subtarget"))}),dt(f).eventData=dt(d).eventData=m?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),h&&a.add(d);var g=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=g.width,y.height=g.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),d.setStyle(b),g=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Gt({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(Mi);function Uee(e){e.registerComponentModel(Wee),e.registerComponentView(Gee)}var Yee=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},jee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ye(n)&&R(n,function(a,o){Ee(a)&&(a={type:a}),n[o]=st(a,Yee(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(Mt);const $m=jee;var jo=Ot,Hm=R,wc=Ur,qee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new wc),this.group.add(this._selectorGroup=new wc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var f=r.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},h=r.get("padding"),d=Ls(f,c,h),v=this.layoutInner(r,o,d,a,l,u),p=Ls(ht({width:v.width,height:v.height},f),c,h);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=bee(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=je(),c=n.get("selectedMode"),h=[];i.eachRawSeries(function(d){!d.get("legendHoverLink")&&h.push(d.id)}),Hm(n.getData(),function(d,v){var p=d.get("name");if(!this.newlineDisabled&&(p===""||p===` `)){var m=new wc;m.newline=!0,u.add(m);return}var g=i.getSeriesByName(p)[0];if(!f.get(p))if(g){var y=g.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(g,p,v,d,n,r,_,x,b,c,a);w.on("click",jo(TC,p,null,a,h)).on("mouseover",jo(zm,g.name,null,a,h)).on("mouseout",jo(Vm,g.name,null,a,h)),f.set(p,!0)}else i.eachRawSeries(function(S){if(!f.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),A=C.getItemVisual(M,"style"),P=C.getItemVisual(M,"legendIcon"),E=uo(A.fill);E&&E[3]===0&&(E[3]=.2,A=ue(ue({},A),{fill:s0(E,"rgba")}));var L=this._createItem(S,p,v,d,n,r,{},A,P,c,a);L.on("click",jo(TC,null,p,a,h)).on("mouseover",jo(zm,null,p,a,h)).on("mouseout",jo(Vm,null,p,a,h)),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Hm(r,function(u){var f=u.type,c=new mr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var h=n.getModel("selectorLabel"),d=n.getModel(["emphasis","selectorLabel"]);E0(c,{normal:h,emphasis:d},{defaultText:u.title}),um(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,h){var d=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),m=o.isSelected(n),g=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var b=Kee(f,a,l,u,d,m,h),x=new wc,w=a.getModel("textStyle");if(Ye(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:f,iconRotate:g,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?g==="inherit"?r.getData().getVisual("symbolRotate"):g:0;x.add(Xee({itemWidth:v,itemHeight:p,icon:f,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,A=o.get("formatter"),P=n;Ee(A)&&A?P=A.replace("{name}",n??""):Ye(A)&&(P=A(n));var E=m?w.getTextColor():a.get("inactiveColor");x.add(new mr({style:ha(w,{text:P,x:C,y:p/2,fill:E,align:M,verticalAlign:"middle"},{inheritColor:E})}));var L=new Gt({shape:x.getBoundingRect(),invisible:!0}),O=a.getModel("tooltip");return O.get("show")&&A0({el:L,componentModel:o,itemName:n,itemTooltipOption:O.option}),x.add(L),x.eachChild(function(N){N.silent=!0}),L.silent=!c,this.getContentGroup().add(x),um(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();ru(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){ru("horizontal",u,r.get("selectorItemGap",!0));var h=u.getBoundingRect(),d=[-h.x,-h.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,m=p===0?"width":"height",g=p===0?"height":"width",y=p===0?"y":"x";s==="end"?d[p]+=f[m]+v:c[p]+=h[m]+v,d[1-p]+=f[g]/2-h[g]/2,u.x=d[0],u.y=d[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[m]=f[m]+v+h[m],_[g]=Math.max(f[g],h[g]),_[y]=Math.min(0,h[y]+d[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(Mi);function Kee(e,t,r,n,i,a,o){function s(m,g){m.lineWidth==="auto"&&(m.lineWidth=g.lineWidth>0?2:0),Hm(m,function(y,_){m[_]==="inherit"&&(m[_]=g[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=e.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:Mm(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var h=t.getModel("lineStyle"),d=h.getLineStyle();if(s(d,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),d.stroke==="auto"&&(d.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),d.stroke=h.get("inactiveColor"),d.lineWidth=h.get("inactiveWidth")}return{itemStyle:u,lineStyle:d}}function Xee(e){var t=e.icon||"roundRect",r=j0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function TC(e,t,r,n){Vm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),zm(e,t,r,n)}function xD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],m=[-d.x,-d.y];n||(m[a]=f[u]);var g=[0,0],y=[-v.x,-v.y],_=Ze(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:g[a]+=v[o]+_}y[1-a]+=d[s]/2-v[s]/2,f.setPosition(m),c.setPosition(g),h.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:d[o],x[s]=Math.max(d[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Gt({shape:w})),c.__rectSize=w[o]}else h.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Or(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",h=n[c]!=null,d=i.childOfName(f);d&&(d.setStyle("fill",h?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),d.cursor=h?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ee(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=Rp[o],l=kp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],h=f.length,d=h?1:0,v={contentPosition:[i.x,i.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var m=u+1,g=p,y=p,_=null;m<=h;++m)_=b(f[m]),(!_&&y.e>g.s+a||_&&!x(_,g.s))&&(y.i>g.i?g=y:g=_,g&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=g.i),++v.pageCount)),y=_;for(var m=u-1,g=p,y=p,_=null;m>=-1;--m)_=b(f[m]),(!_||!x(y,_.s))&&g.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(CD);const rte=tte;function nte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ite(e){va(TD),e.registerComponentModel(ete),e.registerComponentView(rte),nte(e)}function ate(e){va(TD),va(ite)}va([tJ,$Q,GJ,vQ,Uee,Vee,ate,_ee]);function ote(e,t,r){const n=Z0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return Mu.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function ste(e,t){const r=Z0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxyTypeCount.tcp!=null&&t.proxyTypeCount.tcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxyTypeCount.udp!=null&&t.proxyTypeCount.udp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxyTypeCount.http!=null&&t.proxyTypeCount.http!=0&&(n.series[0].data.push({value:t.proxyTypeCount.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxyTypeCount.https!=null&&t.proxyTypeCount.https!=0&&(n.series[0].data.push({value:t.proxyTypeCount.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxyTypeCount.stcp!=null&&t.proxyTypeCount.stcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxyTypeCount.sudp!=null&&t.proxyTypeCount.sudp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxyTypeCount.xtcp!=null&&t.proxyTypeCount.xtcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function lte(e,t,r){const n={width:"600px",height:"400px"},i=Z0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+Mu.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return Mu.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const PC=ie({__name:"LongSpan",props:{content:{},length:{}},setup(e){return(t,r)=>{const n=Hs;return G(),ce(ft,null,[Z(n,{content:t.content,placement:"top"},{default:j(()=>[qt(ee("span",null,be(t.content.slice(0,t.length))+"...",513),[[Kn,t.content.length>t.length]])]),_:1},8,["content"]),qt(ee("span",null,be(t.content),513),[[Kn,t.content.length<30]])],64)}}}),ute={class:"source"},fte=ee("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),cte=ee("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),dte=ie({__name:"ServerOverview",setup(e){let t=$({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bindPort=n.bindPort,t.value.kcpBindPort=n.kcpBindPort,t.value.quicBindPort=n.quicBindPort,t.value.vhostHTTPPort=n.vhostHTTPPort,t.value.vhostHTTPSPort=n.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=n.tcpmuxHTTPConnectPort,t.value.subdomainHost=n.subdomainHost,t.value.maxPoolCount=n.maxPoolCount,t.value.maxPortsPerClient=n.maxPortsPerClient,t.value.maxPortsPerClient=="0"&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=n.allowPortsStr,t.value.tlsForce=n.tlsForce,t.value.heartbeatTimeout=n.heartbeatTimeout,t.value.clientCounts=n.clientCounts,t.value.curConns=n.curConns,t.value.proxyCounts=0,n.proxyTypeCount!=null&&(n.proxyTypeCount.tcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.tcp),n.proxyTypeCount.udp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.udp),n.proxyTypeCount.http!=null&&(t.value.proxyCounts+=n.proxyTypeCount.http),n.proxyTypeCount.https!=null&&(t.value.proxyCounts+=n.proxyTypeCount.https),n.proxyTypeCount.stcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.stcp),n.proxyTypeCount.sudp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.sudp),n.proxyTypeCount.xtcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.xtcp)),ote("traffic",n.totalTrafficIn,n.totalTrafficOut),ste("proxies",n)}).catch(()=>{Wl({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=sA,o=oA,s=$A,l=FA;return G(),ce("div",null,[Z(l,null,{default:j(()=>[Z(s,{md:12},{default:j(()=>[ee("div",ute,[Z(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:j(()=>[Z(a,{label:"Version"},{default:j(()=>[ee("span",null,be(T(t).version),1)]),_:1}),Z(a,{label:"BindPort"},{default:j(()=>[ee("span",null,be(T(t).bindPort),1)]),_:1}),T(t).kcpBindPort!=0?(G(),de(a,{key:0,label:"KCP Bind Port"},{default:j(()=>[ee("span",null,be(T(t).kcpBindPort),1)]),_:1})):Ae("",!0),T(t).quicBindPort!=0?(G(),de(a,{key:1,label:"QUIC Bind Port"},{default:j(()=>[ee("span",null,be(T(t).quicBindPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPPort!=0?(G(),de(a,{key:2,label:"Http Port"},{default:j(()=>[ee("span",null,be(T(t).vhostHTTPPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPSPort!=0?(G(),de(a,{key:3,label:"Https Port"},{default:j(()=>[ee("span",null,be(T(t).vhostHTTPSPort),1)]),_:1})):Ae("",!0),T(t).tcpmuxHTTPConnectPort!=0?(G(),de(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:j(()=>[ee("span",null,be(T(t).tcpmuxHTTPConnectPort),1)]),_:1})):Ae("",!0),T(t).subdomainHost!=""?(G(),de(a,{key:5,label:"Subdomain Host"},{default:j(()=>[Z(PC,{content:T(t).subdomainHost,length:30},null,8,["content"])]),_:1})):Ae("",!0),Z(a,{label:"Max PoolCount"},{default:j(()=>[ee("span",null,be(T(t).maxPoolCount),1)]),_:1}),Z(a,{label:"Max Ports Per Client"},{default:j(()=>[ee("span",null,be(T(t).maxPortsPerClient),1)]),_:1}),T(t).allowPortsStr!=""?(G(),de(a,{key:6,label:"Allow Ports"},{default:j(()=>[Z(PC,{content:T(t).allowPortsStr,length:30},null,8,["content"])]),_:1})):Ae("",!0),T(t).tlsForce===!0?(G(),de(a,{key:7,label:"TLS Force"},{default:j(()=>[ee("span",null,be(T(t).tlsForce),1)]),_:1})):Ae("",!0),Z(a,{label:"HeartBeat Timeout"},{default:j(()=>[ee("span",null,be(T(t).heartbeatTimeout),1)]),_:1}),Z(a,{label:"Client Counts"},{default:j(()=>[ee("span",null,be(T(t).clientCounts),1)]),_:1}),Z(a,{label:"Current Connections"},{default:j(()=>[ee("span",null,be(T(t).curConns),1)]),_:1}),Z(a,{label:"Proxy Counts"},{default:j(()=>[ee("span",null,be(T(t).proxyCounts),1)]),_:1})]),_:1})])]),_:1}),Z(s,{md:12},{default:j(()=>[fte,cte]),_:1})]),_:1})])}}});class qs{constructor(t){zt(this,"name");zt(this,"type");zt(this,"annotations");zt(this,"encryption");zt(this,"compression");zt(this,"conns");zt(this,"trafficIn");zt(this,"trafficOut");zt(this,"lastStartTime");zt(this,"lastCloseTime");zt(this,"status");zt(this,"clientVersion");zt(this,"addr");zt(this,"port");zt(this,"customDomains");zt(this,"hostHeaderRewrite");zt(this,"locations");zt(this,"subdomain");var r,n,i,a,o;if(this.name=t.name,this.type="",this.annotations=new Map,(r=t.conf)!=null&&r.annotations)for(const s in t.conf.annotations)this.annotations.set(s,t.conf.annotations[s]);this.encryption=!1,this.compression=!1,this.encryption=((i=(n=t.conf)==null?void 0:n.transport)==null?void 0:i.useEncryption)||this.encryption,this.compression=((o=(a=t.conf)==null?void 0:a.transport)==null?void 0:o.useCompression)||this.compression,this.conns=t.curConns,this.trafficIn=t.todayTrafficIn,this.trafficOut=t.todayTrafficOut,this.lastStartTime=t.lastStartTime,this.lastCloseTime=t.lastCloseTime,this.status=t.status,this.clientVersion=t.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class hte extends qs{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class vte extends qs{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class pte extends qs{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf&&(this.customDomains=t.conf.customDomains||this.customDomains,this.hostHeaderRewrite=t.conf.hostHeaderRewrite,this.locations=t.conf.locations,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class gte extends qs{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null&&(this.customDomains=t.conf.customDomains||this.customDomains,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class mte extends qs{constructor(t){super(t),this.type="stcp"}}class yte extends qs{constructor(t){super(t),this.type="sudp"}}const _te=["id"],bte=ie({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxyName;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{lte(t.proxyName,i.trafficIn,i.trafficOut)}).catch(i=>{Wl({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(G(),ce("div",{id:n.proxyName,style:{width:"600px",height:"400px"}},null,8,_te))}}),wte={key:2},Ste={class:"annotation-key"},xte=ie({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,r=()=>{const n=[];return t.row.annotations&&t.row.annotations.forEach((i,a)=>{n.push({key:a,value:i})}),n};return(n,i)=>{const a=sA,o=oA,s=VA,l=wW;return G(),ce(ft,null,[n.proxyType==="http"||n.proxyType==="https"?(G(),de(o,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:j(()=>[Z(a,{label:"Name"},{default:j(()=>[ee("span",null,be(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:j(()=>[ee("span",null,be(n.row.type),1)]),_:1}),Z(a,{label:"Domains"},{default:j(()=>[ee("span",null,be(n.row.customDomains),1)]),_:1}),Z(a,{label:"SubDomain"},{default:j(()=>[ee("span",null,be(n.row.subdomain),1)]),_:1}),Z(a,{label:"locations"},{default:j(()=>[ee("span",null,be(n.row.locations),1)]),_:1}),Z(a,{label:"HostRewrite"},{default:j(()=>[ee("span",null,be(n.row.hostHeaderRewrite),1)]),_:1}),Z(a,{label:"Encryption"},{default:j(()=>[ee("span",null,be(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:j(()=>[ee("span",null,be(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:j(()=>[ee("span",null,be(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:j(()=>[ee("span",null,be(n.row.lastCloseTime),1)]),_:1})]),_:1})):(G(),de(o,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:j(()=>[Z(a,{label:"Name"},{default:j(()=>[ee("span",null,be(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:j(()=>[ee("span",null,be(n.row.type),1)]),_:1}),Z(a,{label:"Addr"},{default:j(()=>[ee("span",null,be(n.row.addr),1)]),_:1}),Z(a,{label:"Encryption"},{default:j(()=>[ee("span",null,be(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:j(()=>[ee("span",null,be(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:j(()=>[ee("span",null,be(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:j(()=>[ee("span",null,be(n.row.lastCloseTime),1)]),_:1})]),_:1})),n.row.annotations&&n.row.annotations.size>0?(G(),ce("div",wte,[Z(s),Z(l,{class:"title-text",size:"large"},{default:j(()=>[mt("Annotations")]),_:1}),ee("ul",null,[(G(!0),ce(ft,null,Hp(r(),u=>(G(),ce("li",null,[ee("span",Ste,be(u.key),1),ee("span",null,be(u.value),1)]))),256))])])):Ae("",!0)],64)}}}),Cte={class:"flex items-center",style:{"margin-right":"30px"}},Ks=ie({__name:"ProxyView",props:{proxies:{},proxyType:{}},emits:["refresh"],setup(e,{emit:t}){const r=t,n=$(!1),i=$(""),a=(l,u)=>Mu.fileSize(l.trafficIn),o=(l,u)=>Mu.fileSize(l.trafficOut),s=()=>{fetch("/api/proxies?status=offline",{method:"DELETE",credentials:"include"}).then(l=>{l.ok?(Wl({message:"Successfully cleared offline proxies",type:"success"}),r("refresh")):Wl({message:"Failed to clear offline proxies: "+l.status+" "+l.statusText,type:"warning"})}).catch(l=>{Wl({message:"Failed to clear offline proxies: "+l.message,type:"warning"})})};return(l,u)=>{const f=yg,c=eV,h=q6,d=gW,v=N8,p=pW,m=bte,g=p6;return G(),ce(ft,null,[ee("div",null,[Z(h,{icon:null,style:{width:"100%","margin-left":"30px","margin-bottom":"20px"}},{title:j(()=>[ee("span",null,be(l.proxyType),1)]),content:j(()=>[]),extra:j(()=>[ee("div",Cte,[Z(c,{title:"Are you sure to clear all data of offline proxies?",onConfirm:s},{reference:j(()=>[Z(f,null,{default:j(()=>[mt("ClearOfflineProxies")]),_:1})]),_:1}),Z(f,{onClick:u[0]||(u[0]=y=>l.$emit("refresh"))},{default:j(()=>[mt("Refresh")]),_:1})])]),_:1}),Z(p,{data:l.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:j(()=>[Z(d,{type:"expand"},{default:j(y=>[Z(xte,{row:y.row,proxyType:l.proxyType},null,8,["row","proxyType"])]),_:1}),Z(d,{label:"Name",prop:"name",sortable:""}),Z(d,{label:"Port",prop:"port",sortable:""}),Z(d,{label:"Connections",prop:"conns",sortable:""}),Z(d,{label:"Traffic In",prop:"trafficIn",formatter:a,sortable:""}),Z(d,{label:"Traffic Out",prop:"trafficOut",formatter:o,sortable:""}),Z(d,{label:"ClientVersion",prop:"clientVersion",sortable:""}),Z(d,{label:"Status",prop:"status",sortable:""},{default:j(y=>[y.row.status==="online"?(G(),de(v,{key:0,type:"success"},{default:j(()=>[mt(be(y.row.status),1)]),_:2},1024)):(G(),de(v,{key:1,type:"danger"},{default:j(()=>[mt(be(y.row.status),1)]),_:2},1024))]),_:1}),Z(d,{label:"Operations"},{default:j(y=>[Z(f,{type:"primary",name:y.row.name,style:{"margin-bottom":"10px"},onClick:_=>{i.value=y.row.name,n.value=!0}},{default:j(()=>[mt("Traffic ")]),_:2},1032,["name","onClick"])]),_:1})]),_:1},8,["data"])]),Z(g,{modelValue:n.value,"onUpdate:modelValue":u[1]||(u[1]=y=>n.value=y),"destroy-on-close":"true",title:i.value,width:"700px"},{default:j(()=>[Z(m,{proxyName:i.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])],64)}}}),Tte=ie({__name:"ProxiesTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new hte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"tcp",onRefresh:r},null,8,["proxies"]))}}),Mte=ie({__name:"ProxiesUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new vte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"udp",onRefresh:r},null,8,["proxies"]))}}),Ate=ie({__name:"ProxiesHTTP",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new pte(s,n,i))})})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"http",onRefresh:r},null,8,["proxies"]))}}),Pte=ie({__name:"ProxiesHTTPS",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPSPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new gte(s,n,i))})})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"https",onRefresh:r},null,8,["proxies"]))}}),Ete=ie({__name:"ProxiesSTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new mte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"stcp",onRefresh:r},null,8,["proxies"]))}}),Lte=ie({__name:"ProxiesSUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new yte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"sudp",onRefresh:r},null,8,["proxies"]))}}),Dte=jG({history:uG(),routes:[{path:"/",name:"ServerOverview",component:dte},{path:"/proxies/tcp",name:"ProxiesTCP",component:Tte},{path:"/proxies/udp",name:"ProxiesUDP",component:Mte},{path:"/proxies/http",name:"ProxiesHTTP",component:Ate},{path:"/proxies/https",name:"ProxiesHTTPS",component:Pte},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Ete},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Lte}]}),MD=oR(GW);MD.use(Dte);MD.mount("#app")});export default Ite(); +`||u==="")){var f=o.isSelected(u);n.hasOwnProperty(u)?n[u]=n[u]&&f:n[u]=f}})}),e==="allSelect"||e==="inverseSelect"?{selected:n}:{name:t.name,selected:n}}function Qee(e){e.registerAction("legendToggleSelect","legendselectchanged",Ot(wl,"toggleSelected")),e.registerAction("legendAllSelect","legendselectall",Ot(wl,"allSelect")),e.registerAction("legendInverseSelect","legendinverseselect",Ot(wl,"inverseSelect")),e.registerAction("legendSelect","legendselected",Ot(wl,"select")),e.registerAction("legendUnSelect","legendunselected",Ot(wl,"unSelect"))}function TD(e){e.registerComponentModel($m),e.registerComponentView(CD),e.registerProcessor(e.PRIORITY.PROCESSOR.SERIES_FILTER,Zee),e.registerSubTypeDefaulter("legend",function(){return"plain"}),Qee(e)}var Jee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.setScrollDataIndex=function(r){this.option.scrollDataIndex=r},t.prototype.init=function(r,n,i){var a=Rh(r);e.prototype.init.call(this,r,n,i),MC(this,r,a)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),MC(this,this.option,r)},t.type="legend.scroll",t.defaultOption=rE($m.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),t}($m);function MC(e,t,r){var n=e.getOrient(),i=[1,1];i[n.index]=0,Ds(t,r,{type:"box",ignoreSize:!!i})}const ete=Jee;var AC=Ur,Rp=["width","height"],kp=["x","y"],tte=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!0,r._currentIndex=0,r}return t.prototype.init=function(){e.prototype.init.call(this),this.group.add(this._containerGroup=new AC),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new AC)},t.prototype.resetInner=function(){e.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this;e.prototype.renderInner.call(this,r,n,i,a,o,s,l);var f=this._controllerGroup,c=n.get("pageIconSize",!0),h=ye(c)?c:[c,c];v("pagePrev",0);var d=n.getModel("pageTextStyle");f.add(new mr({name:"pageText",style:{text:"xx/xx",fill:d.getTextColor(),font:d.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),v("pageNext",1);function v(p,m){var g=p+"DataIndex",y=M0(n.get("pageIcons",!0)[n.getOrient().name][m],{onclick:xt(u._pageGo,u,g,n,a)},{x:-h[0]/2,y:-h[1]/2,width:h[0],height:h[1]});y.name=p,f.add(y)}},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getSelectorGroup(),u=r.getOrient().index,f=Rp[u],c=kp[u],h=Rp[1-u],d=kp[1-u];o&&ru("horizontal",l,r.get("selectorItemGap",!0));var v=r.get("selectorButtonGap",!0),p=l.getBoundingRect(),m=[-p.x,-p.y],g=tt(i);o&&(g[f]=i[f]-p[f]-v);var y=this._layoutContentAndController(r,a,g,u,f,h,d,c);if(o){if(s==="end")m[u]+=y[f]+v;else{var _=p[f]+v;m[u]-=_,y[c]-=_}y[f]+=p[f]+v,m[1-u]+=y[d]+y[h]/2-p[h]/2,y[h]=Math.max(y[h],p[h]),y[d]=Math.min(y[d],p[d]+m[1-u]),l.x=m[0],l.y=m[1],l.markRedraw()}return y},t.prototype._layoutContentAndController=function(r,n,i,a,o,s,l,u){var f=this.getContentGroup(),c=this._containerGroup,h=this._controllerGroup;ru(r.get("orient"),f,r.get("itemGap"),a?i.width:null,a?null:i.height),ru("horizontal",h,r.get("pageButtonItemGap",!0));var d=f.getBoundingRect(),v=h.getBoundingRect(),p=this._showController=d[o]>i[o],m=[-d.x,-d.y];n||(m[a]=f[u]);var g=[0,0],y=[-v.x,-v.y],_=Ze(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:g[a]+=v[o]+_}y[1-a]+=d[s]/2-v[s]/2,f.setPosition(m),c.setPosition(g),h.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:d[o],x[s]=Math.max(d[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Gt({shape:w})),c.__rectSize=w[o]}else h.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Or(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",h=n[c]!=null,d=i.childOfName(f);d&&(d.setStyle("fill",h?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),d.cursor=h?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ee(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=Rp[o],l=kp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],h=f.length,d=h?1:0,v={contentPosition:[i.x,i.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var m=u+1,g=p,y=p,_=null;m<=h;++m)_=b(f[m]),(!_&&y.e>g.s+a||_&&!x(_,g.s))&&(y.i>g.i?g=y:g=_,g&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=g.i),++v.pageCount)),y=_;for(var m=u-1,g=p,y=p,_=null;m>=-1;--m)_=b(f[m]),(!_||!x(y,_.s))&&g.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(CD);const rte=tte;function nte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ite(e){va(TD),e.registerComponentModel(ete),e.registerComponentView(rte),nte(e)}function ate(e){va(TD),va(ite)}va([tJ,$Q,GJ,vQ,Uee,Vee,ate,_ee]);function ote(e,t,r){const n=Z0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return Mu.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function ste(e,t){const r=Z0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxyTypeCount.tcp!=null&&t.proxyTypeCount.tcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxyTypeCount.udp!=null&&t.proxyTypeCount.udp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxyTypeCount.http!=null&&t.proxyTypeCount.http!=0&&(n.series[0].data.push({value:t.proxyTypeCount.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxyTypeCount.https!=null&&t.proxyTypeCount.https!=0&&(n.series[0].data.push({value:t.proxyTypeCount.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxyTypeCount.stcp!=null&&t.proxyTypeCount.stcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxyTypeCount.sudp!=null&&t.proxyTypeCount.sudp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxyTypeCount.xtcp!=null&&t.proxyTypeCount.xtcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function lte(e,t,r){const n={width:"600px",height:"400px"},i=Z0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+Mu.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return Mu.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const PC=ie({__name:"LongSpan",props:{content:{},length:{}},setup(e){return(t,r)=>{const n=Hs;return G(),ce(ft,null,[Z(n,{content:t.content,placement:"top"},{default:j(()=>[qt(ee("span",null,be(t.content.slice(0,t.length))+"...",513),[[Kn,t.content.length>t.length]])]),_:1},8,["content"]),qt(ee("span",null,be(t.content),513),[[Kn,t.content.length<30]])],64)}}}),ute={class:"source"},fte=ee("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),cte=ee("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),dte=ie({__name:"ServerOverview",setup(e){let t=$({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bindPort=n.bindPort,t.value.kcpBindPort=n.kcpBindPort,t.value.quicBindPort=n.quicBindPort,t.value.vhostHTTPPort=n.vhostHTTPPort,t.value.vhostHTTPSPort=n.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=n.tcpmuxHTTPConnectPort,t.value.subdomainHost=n.subdomainHost,t.value.maxPoolCount=n.maxPoolCount,t.value.maxPortsPerClient=n.maxPortsPerClient,t.value.maxPortsPerClient=="0"&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=n.allowPortsStr,t.value.tlsForce=n.tlsForce,t.value.heartbeatTimeout=n.heartbeatTimeout,t.value.clientCounts=n.clientCounts,t.value.curConns=n.curConns,t.value.proxyCounts=0,n.proxyTypeCount!=null&&(n.proxyTypeCount.tcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.tcp),n.proxyTypeCount.udp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.udp),n.proxyTypeCount.http!=null&&(t.value.proxyCounts+=n.proxyTypeCount.http),n.proxyTypeCount.https!=null&&(t.value.proxyCounts+=n.proxyTypeCount.https),n.proxyTypeCount.stcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.stcp),n.proxyTypeCount.sudp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.sudp),n.proxyTypeCount.xtcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.xtcp)),ote("traffic",n.totalTrafficIn,n.totalTrafficOut),ste("proxies",n)}).catch(()=>{Wl({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=sA,o=oA,s=$A,l=FA;return G(),ce("div",null,[Z(l,null,{default:j(()=>[Z(s,{md:12},{default:j(()=>[ee("div",ute,[Z(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:j(()=>[Z(a,{label:"Version"},{default:j(()=>[ee("span",null,be(T(t).version),1)]),_:1}),Z(a,{label:"BindPort"},{default:j(()=>[ee("span",null,be(T(t).bindPort),1)]),_:1}),T(t).kcpBindPort!=0?(G(),de(a,{key:0,label:"KCP Bind Port"},{default:j(()=>[ee("span",null,be(T(t).kcpBindPort),1)]),_:1})):Ae("",!0),T(t).quicBindPort!=0?(G(),de(a,{key:1,label:"QUIC Bind Port"},{default:j(()=>[ee("span",null,be(T(t).quicBindPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPPort!=0?(G(),de(a,{key:2,label:"Http Port"},{default:j(()=>[ee("span",null,be(T(t).vhostHTTPPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPSPort!=0?(G(),de(a,{key:3,label:"Https Port"},{default:j(()=>[ee("span",null,be(T(t).vhostHTTPSPort),1)]),_:1})):Ae("",!0),T(t).tcpmuxHTTPConnectPort!=0?(G(),de(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:j(()=>[ee("span",null,be(T(t).tcpmuxHTTPConnectPort),1)]),_:1})):Ae("",!0),T(t).subdomainHost!=""?(G(),de(a,{key:5,label:"Subdomain Host"},{default:j(()=>[Z(PC,{content:T(t).subdomainHost,length:30},null,8,["content"])]),_:1})):Ae("",!0),Z(a,{label:"Max PoolCount"},{default:j(()=>[ee("span",null,be(T(t).maxPoolCount),1)]),_:1}),Z(a,{label:"Max Ports Per Client"},{default:j(()=>[ee("span",null,be(T(t).maxPortsPerClient),1)]),_:1}),T(t).allowPortsStr!=""?(G(),de(a,{key:6,label:"Allow Ports"},{default:j(()=>[Z(PC,{content:T(t).allowPortsStr,length:30},null,8,["content"])]),_:1})):Ae("",!0),T(t).tlsForce===!0?(G(),de(a,{key:7,label:"TLS Force"},{default:j(()=>[ee("span",null,be(T(t).tlsForce),1)]),_:1})):Ae("",!0),Z(a,{label:"HeartBeat Timeout"},{default:j(()=>[ee("span",null,be(T(t).heartbeatTimeout),1)]),_:1}),Z(a,{label:"Client Counts"},{default:j(()=>[ee("span",null,be(T(t).clientCounts),1)]),_:1}),Z(a,{label:"Current Connections"},{default:j(()=>[ee("span",null,be(T(t).curConns),1)]),_:1}),Z(a,{label:"Proxy Counts"},{default:j(()=>[ee("span",null,be(T(t).proxyCounts),1)]),_:1})]),_:1})])]),_:1}),Z(s,{md:12},{default:j(()=>[fte,cte]),_:1})]),_:1})])}}});class qs{constructor(t){zt(this,"name");zt(this,"type");zt(this,"annotations");zt(this,"encryption");zt(this,"compression");zt(this,"conns");zt(this,"trafficIn");zt(this,"trafficOut");zt(this,"lastStartTime");zt(this,"lastCloseTime");zt(this,"status");zt(this,"clientVersion");zt(this,"addr");zt(this,"port");zt(this,"customDomains");zt(this,"hostHeaderRewrite");zt(this,"locations");zt(this,"subdomain");var r,n,i,a,o;if(this.name=t.name,this.type="",this.annotations=new Map,(r=t.conf)!=null&&r.annotations)for(const s in t.conf.annotations)this.annotations.set(s,t.conf.annotations[s]);this.encryption=!1,this.compression=!1,this.encryption=((i=(n=t.conf)==null?void 0:n.transport)==null?void 0:i.useEncryption)||this.encryption,this.compression=((o=(a=t.conf)==null?void 0:a.transport)==null?void 0:o.useCompression)||this.compression,this.conns=t.curConns,this.trafficIn=t.todayTrafficIn,this.trafficOut=t.todayTrafficOut,this.lastStartTime=t.lastStartTime,this.lastCloseTime=t.lastCloseTime,this.status=t.status,this.clientVersion=t.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class hte extends qs{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class vte extends qs{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class pte extends qs{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf&&(this.customDomains=t.conf.customDomains||this.customDomains,this.hostHeaderRewrite=t.conf.hostHeaderRewrite,this.locations=t.conf.locations,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class gte extends qs{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null&&(this.customDomains=t.conf.customDomains||this.customDomains,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class mte extends qs{constructor(t){super(t),this.type="stcp"}}class yte extends qs{constructor(t){super(t),this.type="sudp"}}const _te=["id"],bte=ie({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxyName;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{lte(t.proxyName,i.trafficIn,i.trafficOut)}).catch(i=>{Wl({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(G(),ce("div",{id:n.proxyName,style:{width:"600px",height:"400px"}},null,8,_te))}}),wte={key:2},Ste={class:"annotation-key"},xte=ie({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,r=()=>{const n=[];return t.row.annotations&&t.row.annotations.forEach((i,a)=>{n.push({key:a,value:i})}),n};return(n,i)=>{const a=sA,o=oA,s=VA,l=wW;return G(),ce(ft,null,[n.proxyType==="http"||n.proxyType==="https"?(G(),de(o,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:j(()=>[Z(a,{label:"Name"},{default:j(()=>[ee("span",null,be(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:j(()=>[ee("span",null,be(n.row.type),1)]),_:1}),Z(a,{label:"Domains"},{default:j(()=>[ee("span",null,be(n.row.customDomains),1)]),_:1}),Z(a,{label:"SubDomain"},{default:j(()=>[ee("span",null,be(n.row.subdomain),1)]),_:1}),Z(a,{label:"locations"},{default:j(()=>[ee("span",null,be(n.row.locations),1)]),_:1}),Z(a,{label:"HostRewrite"},{default:j(()=>[ee("span",null,be(n.row.hostHeaderRewrite),1)]),_:1}),Z(a,{label:"Encryption"},{default:j(()=>[ee("span",null,be(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:j(()=>[ee("span",null,be(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:j(()=>[ee("span",null,be(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:j(()=>[ee("span",null,be(n.row.lastCloseTime),1)]),_:1})]),_:1})):(G(),de(o,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:j(()=>[Z(a,{label:"Name"},{default:j(()=>[ee("span",null,be(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:j(()=>[ee("span",null,be(n.row.type),1)]),_:1}),Z(a,{label:"Addr"},{default:j(()=>[ee("span",null,be(n.row.addr),1)]),_:1}),Z(a,{label:"Encryption"},{default:j(()=>[ee("span",null,be(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:j(()=>[ee("span",null,be(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:j(()=>[ee("span",null,be(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:j(()=>[ee("span",null,be(n.row.lastCloseTime),1)]),_:1})]),_:1})),n.row.annotations&&n.row.annotations.size>0?(G(),ce("div",wte,[Z(s),Z(l,{class:"title-text",size:"large"},{default:j(()=>[mt("Annotations")]),_:1}),ee("ul",null,[(G(!0),ce(ft,null,Hp(r(),u=>(G(),ce("li",null,[ee("span",Ste,be(u.key),1),ee("span",null,be(u.value),1)]))),256))])])):Ae("",!0)],64)}}}),Cte={class:"flex items-center",style:{"margin-right":"30px"}},Ks=ie({__name:"ProxyView",props:{proxies:{},proxyType:{}},emits:["refresh"],setup(e,{emit:t}){const r=t,n=$(!1),i=$(""),a=(l,u)=>Mu.fileSize(l.trafficIn),o=(l,u)=>Mu.fileSize(l.trafficOut),s=()=>{fetch("../api/proxies?status=offline",{method:"DELETE",credentials:"include"}).then(l=>{l.ok?(Wl({message:"Successfully cleared offline proxies",type:"success"}),r("refresh")):Wl({message:"Failed to clear offline proxies: "+l.status+" "+l.statusText,type:"warning"})}).catch(l=>{Wl({message:"Failed to clear offline proxies: "+l.message,type:"warning"})})};return(l,u)=>{const f=yg,c=eV,h=q6,d=gW,v=N8,p=pW,m=bte,g=p6;return G(),ce(ft,null,[ee("div",null,[Z(h,{icon:null,style:{width:"100%","margin-left":"30px","margin-bottom":"20px"}},{title:j(()=>[ee("span",null,be(l.proxyType),1)]),content:j(()=>[]),extra:j(()=>[ee("div",Cte,[Z(c,{title:"Are you sure to clear all data of offline proxies?",onConfirm:s},{reference:j(()=>[Z(f,null,{default:j(()=>[mt("ClearOfflineProxies")]),_:1})]),_:1}),Z(f,{onClick:u[0]||(u[0]=y=>l.$emit("refresh"))},{default:j(()=>[mt("Refresh")]),_:1})])]),_:1}),Z(p,{data:l.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:j(()=>[Z(d,{type:"expand"},{default:j(y=>[Z(xte,{row:y.row,proxyType:l.proxyType},null,8,["row","proxyType"])]),_:1}),Z(d,{label:"Name",prop:"name",sortable:""}),Z(d,{label:"Port",prop:"port",sortable:""}),Z(d,{label:"Connections",prop:"conns",sortable:""}),Z(d,{label:"Traffic In",prop:"trafficIn",formatter:a,sortable:""}),Z(d,{label:"Traffic Out",prop:"trafficOut",formatter:o,sortable:""}),Z(d,{label:"ClientVersion",prop:"clientVersion",sortable:""}),Z(d,{label:"Status",prop:"status",sortable:""},{default:j(y=>[y.row.status==="online"?(G(),de(v,{key:0,type:"success"},{default:j(()=>[mt(be(y.row.status),1)]),_:2},1024)):(G(),de(v,{key:1,type:"danger"},{default:j(()=>[mt(be(y.row.status),1)]),_:2},1024))]),_:1}),Z(d,{label:"Operations"},{default:j(y=>[Z(f,{type:"primary",name:y.row.name,style:{"margin-bottom":"10px"},onClick:_=>{i.value=y.row.name,n.value=!0}},{default:j(()=>[mt("Traffic ")]),_:2},1032,["name","onClick"])]),_:1})]),_:1},8,["data"])]),Z(g,{modelValue:n.value,"onUpdate:modelValue":u[1]||(u[1]=y=>n.value=y),"destroy-on-close":"true",title:i.value,width:"700px"},{default:j(()=>[Z(m,{proxyName:i.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])],64)}}}),Tte=ie({__name:"ProxiesTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new hte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"tcp",onRefresh:r},null,8,["proxies"]))}}),Mte=ie({__name:"ProxiesUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new vte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"udp",onRefresh:r},null,8,["proxies"]))}}),Ate=ie({__name:"ProxiesHTTP",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new pte(s,n,i))})})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"http",onRefresh:r},null,8,["proxies"]))}}),Pte=ie({__name:"ProxiesHTTPS",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPSPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new gte(s,n,i))})})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"https",onRefresh:r},null,8,["proxies"]))}}),Ete=ie({__name:"ProxiesSTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new mte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"stcp",onRefresh:r},null,8,["proxies"]))}}),Lte=ie({__name:"ProxiesSUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new yte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"sudp",onRefresh:r},null,8,["proxies"]))}}),Dte=jG({history:uG(),routes:[{path:"/",name:"ServerOverview",component:dte},{path:"/proxies/tcp",name:"ProxiesTCP",component:Tte},{path:"/proxies/udp",name:"ProxiesUDP",component:Mte},{path:"/proxies/http",name:"ProxiesHTTP",component:Ate},{path:"/proxies/https",name:"ProxiesHTTPS",component:Pte},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Ete},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Lte}]}),MD=oR(GW);MD.use(Dte);MD.mount("#app")});export default Ite(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index 53028f2326e..0a1966e8306 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -4,7 +4,7 @@ frps dashboard - + From 49443cb2c67d1dd3443120cc8127952360d07087 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 7 Mar 2024 14:45:55 +0800 Subject: [PATCH 175/444] update sponsor (#4045) * update sponsors --- README.md | 4 ++++ README_zh.md | 4 ++++ doc/pic/sponsor_daytona.png | Bin 0 -> 57279 bytes 3 files changed, 8 insertions(+) create mode 100644 doc/pic/sponsor_daytona.png diff --git a/README.md b/README.md index 0892e76cad3..8dbf45ada28 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,10 @@ +   + + +

diff --git a/README_zh.md b/README_zh.md index cba1f2bf2ea..2c902f9f049 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,6 +15,10 @@ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP +   + + +

diff --git a/doc/pic/sponsor_daytona.png b/doc/pic/sponsor_daytona.png new file mode 100644 index 0000000000000000000000000000000000000000..b00f93279005d3c31dae52bf1b720aaf71cf7d0f GIT binary patch literal 57279 zcmeFZc{r7A+djOMiU>)P%yTl6dB{9OAqk1hLuSg5p-dSO>}Ns3H`LPC-xl~Tq? z$Q&~C+gJDf-0%B++dF;3wte3pzqLL0{nWbGy4HD}=W!m#e(d{xUeWqTG(a!p=Ih#AkcFY{~^&fX%|uV1P1W7Yj!i~LRM195M3hYmf0B?Cla`T@l9Cc&6B7{=7Z#Be7CR^?CN6tW zN>)^Y?e7-{e$mU;Ue-`eWd1KS4Kd&VOA&&Cc7#%gMvX$=!{OcttB~_p?3<92o6ix8dsX&t=`b|DGyL zny{ahhp?!S2=TW5e9+eBpU-)m^>X?1HYKZ|M0S| zuK#@6+eiHzM)dc+{fD3SHuCqd6E?K-c0cQ7W2b%&zsUKofqDBF+Wp(q{13j4kN@*! z4@Y+&cW+1c|6~&W`Op7Mg@>%Fmz|Z5yO)u>yUV{;TK`{HVG}zjB*Mn0XJzB$M!fER z;voP2ik+I3kDUSs7F|M6L|jlr%1BgPR$NS0RPum`w5*88Umw*&DA`*1Sp6p-7MJ-y zeAwOA$=?6J{iv;tti8LJs}&~M$<@liPT0fE;m@z>>B(xldHYzo+1P2TDR5w@LQYP$ zvf}pAcB0}^HiGtc){=q}*7%pSm4u9-jJ54S8!IesUev})^q`E?LEC>_?WmU%wxpHI zzrQMRRJORHjJT+TxcEVFK`9wgJ3$EPZKwZW zp8jVe`s@3?j&``{f3f&~eaze4-pAL<%TCz=bNW9BFX8`e_}*6M{+q$e926BhXl*Yj zZYwGxC}C?SA!sEoVJ|3ZYb_xvX(eGLCW(;zF9-i`!T5h~@PA+3#?i{n!4COXnBzaa z9UFJIb9P?;ZaqA#ysVIR?Yz7dIPAULUD>QWJY1Y?tcZ&ze9q1G?@abjII#J+v;AA} z|EIrWYv<+k?7+F-nOa7KlBb$(CO?ipR6ksFfB`r6FZ(#!pFx()@pIHEMz<(sX}7cMYv&frFH_F_33XB z21+vaRGr0pyZ-zK{W$}}qJ>k1Bm@GDGL3v^mTtj|)C0Rn6H`;w4d^6x|M?Kzelju= z!ZeF^l5ug5i{$$|$IlElMhKcc^qUz_HZ-KwPNGwz`+KM27!QVqg>iCn4i68LhhE5_`7^GlLx;!+e(7YP_e}&Sn|!{#wrWe_ z#zz~Ulo}NoIy!!9PZzeV^}9%uq@{R^q%(ZS+P>_u+22z%KRZ0br4qIhFQRWkmQh1O zn7KzoY9*Ovnl|;mv_EtUMQCWKmy5^JkI$Ln4lIg+88`WA%r}nEj`J1w=ydz!vZirq zCvkDpl4~bbCg##;|GCqV&7|Rk3%+4&WXWyeG`|+QkA|##-Q(-KWG)pO6LVF@do)|& zyjGGCA6;{n#-&;LQhmO_z`zupe6tc`K05wXom~A^Td_=Co$Fa16D&}0m7kZ zWt#9V$CNhPWFEb%2hXG>CwG6UylY-FH`E+^kg=mcFH4sv*|139m5*%ruymT;nYXuR zKl}Ehxs;KUJ0roEZ&;+y$3+`$#9z@pmOSQP-19=@au zXPYN`%jcOG_t4Qj^cYm(zgsUC1WP03EUu{@AJcEISi$eDL{ zt(qcb9zAY2{jI0?{R5j8y6sz7B9|;0h6zd=%fkxif7TXD$Oo@24>n!eBWzLYJ8gmM zIy>{LXyxkb(`~V`YGWHcPG)`v*B(-)z@?>WNE^!T_PX3NF8P?CwDFAJWu2{oYuA>^rT9E1R45ZF?B7&2LwWr&uQCwx8!D^Z2$ORWouS-%KFPD2EZR z+Qp%rRN!>AAnV|nO26453|A%~9LqIbzv?#j>N=M;mep~=L#xW|^P{s9m1o}H!}?FX z%oNwiGbl1r*)?&g)kU%jZ)+y7{G8rYWE3#@;eqR?$}Wi=vq}WQ1$kxcd_EOY;7PbZ9BNwu%RgJg6`x(W zKts4dqY^Gn#f-gjm@BC(PqWmt{Q3L$@4L9J%lmtMd!2jYo_S*XS4`&31{KlMPcLvE zPBSVo>#=@tC@t87?K!4Z|J#jrK0-dTGL3QZZeho4-r0$ddnva%IE-OLud<{%yUYYy zJhxG^TobWU(bd%@&)(PVTu~pmVu*cfEA}T>x7#?Dx(U#>EFaJCH7Na{BjJ28!CfpwsNO zkzn+l{2+Sv``eThx>TLxq1%+leI6ml^*uU!INwm4i#9?f*RTlNF*Y`~xVShgE33S` zJUKa8C*KRNvuDqO)AIFw?(VVMo-{ZP^K`Pv@m zlHvHJ@PI7zbh(qDths>VhEZ^zPbfVIw_ui?;F}=ZvV=SEi$+f4R*RVyA zTKj6eR~N>I9j%j+lhXxHVmHYzun0?EcI|0`b}v$#K2=U#VOMQzYWn>7Gqc{)h4F4q4vwMW;aKa2NAl-yrX>|q zx}??`T8&-)QsuqhKa-lkM@OvE+hf?sBCQ;+y7g7h;$q+5l}vownXMF}c>d=kcB%ng zzCPa#L+go-zNg)tY~j-Ju?Y$Nwf^%;zt`rmT2!oxwaC9z%(dFdJotR`nRfWOrTR+Ec1`Q2tD7x#Hm1Bjv!q{Ks?{2}*irq^n<;%_ zFS)olg#-Jw!v;A~Q-uQ~xs$Kh8ar!#*oAnFFY*2+Aw*CS>wxm0<9+PckhNLOmAS9X zpV!-xd3W(1c^12)agLT_(42!zrNo#sd?8@{&hg?S+442EZAnM2%gRV-zx>vf*Lh85 z*S>vO2^X%|nW7?Bm@IRv8&tChr0VRCNz&q~Jb1oVw7tx@`1tY@*C58KSVOwhCxnVy zFZ!P;P1_#fi65T1V9UN~r?q^{&0B^=Y8<(I+btbam>&)_UTELkBvQ$JM?WTfIneK< z@h;Mf6tyCKjJ&!WiNFK7*M_|t92!I}U)jA(W>guN6UE%9Ng?cdw@J6W{4C%d^9%J$%8+6sIZ1 zGR#UwrG@zUonPNjp1=zBmKQEFIy6P@ASUjh)pN6P;nhD{J(<)EylTwzx~i+I{Q?3W zJ$iJf#~F3mxcK_DYj2$^u+91CR46Z~ZYl0@mduLN$ZI(LdfaDgSc9z?k^+h~UU%;b z)LA5?Yd>2&v060bpKX;Pe>h%^!=HBxWj~w0oBjE#q{<#l>BF}?QbG?*__K64R}6I? z%BwLhrzIf62RYqJ~92kk4oBP0lc1MXh z`Gij^6n1*d?AM0M`iIsC2>5GYsmlB|r(*~t$EYd=0e_EkDJX%Y|+kWIqwws3>*1u`9W z`oS~rD7XK4QBV}4Og?^mzW&7h0coLw2N$sis96;+$HfKxT5tjyF*m<$u*>Z)_v6(&2$N5wJN68WVpUHpks+zxTbcabQqQ`l+OmC7J zho`rV6*^+e1r>1iV{GNvW@?*MO;o zo0nG!zYkdC>FEjh^7#Cco3-^#1|QEAN6Ovsk^r)6dR zJu}#Z3c|(Bjj9{U<{_Um9k!Y9dG+hApdDMAijEa3BF!x? z`^l5;Ji!;+``Gy)KZkrLwntdQ%-3{F<2y!0DiPZ`CYDOfDzG#(-un~+9-;`Zixuee1^-@O zxc1o3r1*Kl#5Aq?27zwZ1JN?fVs6G_H6 z=^JIzxgAdar7G}0Oo$m)*DCLE!$=udRt>b=XDJ{+VGDb7I_+R7|VTuReLga zUG@p|EeILJF^k3?*#trb@-V; zzkBytY`+rYlP=}-T@ng_fB;e>HFjQJbI;@Ud5#W`HdxdJtj{!2ul&g1wY~0VVPO&S zdtFLJYvcfJZlRlphX*ddx;XLvrh4pJzHu!o7=n2>yAP83Iy!}q6-ez4^s(HXGG4PZ z(&75qru>OoF8$E}NqhFBA5~gkcsyP2?d^SFX75@d+L#^tBz2D*u>d|t+k~qA!!gHy zZSsym-gB(Uucc|cEKQus^H97IEQ8WNutBmUU1iZ9pg?3udJvwTCl;X#O~8!_37tST zxRbGO^+eUHH~zExEC=I?bvO5MKBL5rE8%^wDh2)7{;z z?iL*z-fZo8?wnhH{W_LBOUm8imecuT*JS~Bi--*crk7dTgHW1f&D-LUAvoIF_*yTN z4Y&IE@hW;SbfxBWq6t-1OI7{BpAg=d{9$el_2=OdddKK`0N3!wd+hJmyX?{EpF(`T z$#2L0I&s%zc47S3Do~c+Z(@(*LHOaZn}+7T$6#ad`Y)MB=QT8*3qM&a!xzA9{90b7 zQ{Kd!*FBCnH?n?oc{|Vme-b@aXS)Z!hpI{OP z1_n5^?wVk4-aAqH<%DHWg?qoE{7KFq0|*Q3!$v&)G@sbKB}V+Q60SevSe5Fr8?e#pLw*Mj+A9)nWHjt!CS2Hj*Z7RS{%bUp zb31qNaC3K{Zhootr&D*T_;^z*JMYWo5S^{^JulEQB_$=PMLxcG@uGA<+k?6`TVh}% z$9!>>h}yDcO9`6(V}(cT%S{<5QLBAqKmVNiWMgA9HEn@3vy)Tf1FO0*A44RH9m-Nl z#!lk{C+_L$=ro=z6F8h?`y_ZhFeoTiHgP4)lE&z+i6<6!T9T0t(AoiA4pyIDDgO=w zQ%l@laeJiCh_i>}P=0XlMp(GywiJgu((w}rG%WO-Tb}Y=@L*4VZ=82@ye+~_OBhfk zaw&%dvd2_aRi#`%65~yCDJ~)5H#%QjB%Fpn^5@<}o$m)+v&VLCR}TzaL(kdV`R*7Z zLH=|8%szR$X6$%6RAGtzXEU%niG){J7(kB43Ky-mkIw>Y$eLA%Wxk<|&o})OCr*_2 zn%|1HWw6J-LEF&b-Ht85BI8BcnHjwrYm8Kb^_X^TlgQL1At6C7Ifkm!f7WcnvMyke zSZL5}MVpT_DPCJCIa#%VVa~|rG~d9xei=7=T`Ij7JM6tpOg>zb@s^jDkKwiQzjLhc z6}C2TgU$y(7lO`iA~3R^mG4K2{#bEF?$I!aK_rwayLS3-#zrn4imYm8i3JVwo1DC`rCvUS;b+DEq`R&Ed+0w9wRK zGc(ZOFG=migsNJbk-;E;l;_@2z-L)Dwj1A)(%q#kP(!oC>~yBT)b*eB^15SD_X}YT zWJB@6sCmA&%@%F#b#QI#21OC~(95U(R?9%Jj$uC2CiGRgl^j7iLx4bWP=ZCla zzzh)xD0uPxK z8w)x(IOK{sKQOTsGsVWB@bqd{QBJZ&Sp>zQ-TiPTSeZW+U6>2V(4R}ki;Qeq;umLU z+sfT7>P0E%oA+260p)ZGPWL|vLDiA3;iIZTydueEk6p{0CT$Yo(*F75^ZB*q*=bq9 znu!k&hB1>~5545JFSV^rmUkit9*c6?rCMZkZu*M?8{5;$#gi9!S4)7UP+?Ia9k|gqjHN+hbI~QMupk+>0naJpv4}ns{7|hsnZ9$(MoGxW)St8IX!z_J)*p| zpZ6p9DQhedVBPX)-W%tNBra1F*EPXk){nD_jqwy24gnJQH{I@>v})~%-;{T%m;#j(b0K{Q_~>4}diC{1YB81#aA19XT|r*nEASC>wf*G8MAnrnY^gf4iTQ?3;6;Hp=mktp zI}j6wxnCM2xkMvt?)amTErM&8bC_BC#tKE^LK6FjrWy5GDJ6B9#whEP}pKFG+( zc==NIYQb##rawKkS;^0(C2F)dD9&11QJ|XA(@$huIa8rud~-`XC+KHpvvr%LE(0y? z9O$9iDK#J2>lURgBqbo#iHV-v*AU#XPX3#=Hq1Y`Qqa!$IY*NDxjAgw1Ta5XEcCrJ z^t7aC$YWyJ~Whv}}*^CUcdyotEBR{W{o-{c=gZQhuw>i3#5QSV-;4_YN=s)r9H zqPF($HqW}8kWgh-V!cTPqv>+=P!+l-0DNo^c*S0VQP{G+7N`>iEc#mgBCZ5z$f;ds zR^g0n{2gONd!hE6z{0}PktNmtz~<7-zCJC#k=8_Dxs{cb-ro0}o$jDpy~kedo>v|k zY*W{aXUZJge_!CSbI+ZT5nHRnp=^D9efUB4^mcFNEt)jp#>G>gs-_Ebg0GIL%K#)H z{YH!)TlJVQ_wjjX#NQn2Ut4n#G#)@HQr5h@85KD>Inrz&?sB}l5UP%P{FjB z;`ReqkKD}U?D@U_$#1|S_r7X&d-83Gmo;oq&60VK0)hJ=eSG*}a{WkQ_c%KKsatx| zcR>drYI`6tfmQ}K=Qp~|w!x!924Hp1>+6fe#6+3k&iPt|hU)NPH1gC;()aN`c9N+8 zz3Ag>ia`Nb(IZEWAcTlK+T*hm#vo1-S@*E8{P_A6nCbuu(eeP1m?S@;#_adjc@dlF z{Nnct%ofn$hj#?Ztxf2}HRBkYMJ}6_M7rIaHb${&y{G`@vAKDRUFnb>O?Y~Gdh23= zY1(HjEGX5BC#wM5T6Nev=Yi2Vh_9jPC%-MKJ*<#3njaosUS0-v3TTOE_AA;tNCzFM z5=)FG;Y06O2Ld1I^0dErA$x8z zW1She!RhKNaZyxhIiGJ=T2m;#{QR-i*Z3~>x`|1~a-JxqHv$!184=|E*5FU&r;Cvn zZ*i^ws$y0M01U`OBwq(C2K;9VD18e|gFcAvMP9;iHO7iy0LMKF^0G3d@ggw*avD9E z+RHNkyvTAfz#n}z-Mzgl#ijLV9j{?Sv>siUn?qY{c#k9(l<_i4v+VUB?=3@`ORkeD z-!|e;tZA69Z8%+x815-P;fwF10YyMY_ZsANp`xwe-PdR6E>KhH@^3z*{k-gMk8^X= z+3icM#J>AGL?bK1t zZ*toLR!&1x^HYBv21tz6XEGuTk+bvjtKW-D=dQ^_j}eDjn4jM(**}<_{JpBFL>J)X zW!>=P5!+mbC!B3&V1apFf`($*@SX>%1~_f1UgxWt@m@#ANu+G@BWe0(WnWU z1Uezg05D-cbVPA+ZwwL*RXP~d&8NSp8PEmi{-7ahtP*r$>YYL?Gj)H09vRrn%&g;j&trZdL)50Wwsx)$1+WF|4wAOJoJ%+;9+-cWXHo39B3OVR@kMlvsI3xbEKFXV}u_STLwnw(S4ose)i+;Pu7if zTMQsdF&rX$dWnoEg)wH2fnEfv7qQxueKG_@1*jsx`Xk!f`xo|GNXK_O;;Q~b&!YJr zAI`dN7NwF4GGQgFR#8B}1t}RBHcQk-Bm3}`SY-n!{rpAK<(|tW?743iSDZM{>tYON?xxy@P z{>G8QPv~399XgHpk2lD<-ki)(D}9flt|G5<%$Gp)@T!sT?|34i*O?_HjJ|_Em41es zv2z|y4d8bK0Mt}E?^7NL$3E>=^E`ijSu8m*ap$gG$M}S|%#7zqd)~w{`tz`C3+G;p z-hPODD{u|>cDH>CKYxN;_!UmRE4&{%ObdUiGinK5%Mrfp!F=~V19XWlQk$29=cZ!L zvFkrj42(qE8`?r_Pb8cSvn`pbUCZ??s7VMhyNKc=6H|*Q6-7goef9tE62LcNU44e@LIraluwdc??G@yeu z8%%nx`!AmKV~8AV?pWoeOyMBo*uUQi7MqQYji2YQA=HpAAlEcHC#jIx!P>#g8%s{s zUx}Qjr=|4)leV@pKgDW=tpG|^OGn4+8+U{tNTIlWy!H*xqoSg)5xtm}NVbHNv7=KJ zjmsfpk8SpXK>^V76RXNK>gv;2de$9`5;V!@!Rt~|QtImIby$i)61eCU}w|@kdYuHi`wsLVWeFzkTKdD<9IlL^($lvW7IZxvP49TPho4NEQNu z;ztwBwYie2)II6cGj$7K^w1@yzKOJ~tWRS(Asg`3d=)OL_V<9wX8n$Zc=xXFSp;M` zvL@8$78dS8lgSV~W@tF$wI@Q(crPS!R3qJ^NB8VHe~j*UUBKDew2X+0UaJnJ9-te@wBH-qCjJs#oFDh@ME4s6!Zdk? z9o>bb3wEYg3m^~IfZ(fA4>QryY6WBfUE2$r60`QQf}M|x%NAD# zjo7$v&-qPClz~6_=dH;~$xYIlHw!e=G-}Oimnpr^?{%T?p18~wRkh_rwfa|ZFCYxd zb3`IkL~UDXpv@#E9~wPfVFpr*A_Feg4Xb~zEQJoTm-dN;|NN5QMf$|5TdE1Zt5saeH1x6R zFZ+xlR(UoN^j!w(w+w_`+GF7O?rtyqAXka>#?LQbz5u6A0-mbos)&}G2zb>5g3bV? z|FC>n`Sj@lu-)(xs3h5L@Gsyv-r?gg4{o3pdCt#!6^ z&Lii+U8Me&G=`TiJ}QdFGy_0mKK&E2aQDPw1j~mE*uawewDR9n9Sn+ET&=Rr zo>+*wR+Q1oV{b!%8ZK)}GGo=$bsD=D{DmOpgZAXu*mhvKALHXS=cdfk?3zPD_H=%- zEboPLB3-~#325uxN1yUU?17NT77`gwdm$)I2Mi^!~w*-qfr>Z4N+AKD-c`ukb0ZV>ny z;3Xc|99c*SA&Abl)w394Yg z(htGlQhc)J@ndw@od~ZYBl=Tw7xagp?Yse?2Tc6Osj{@VxP$7?i;T?U>{;+?Fs7yH zaU_z7T4m?o);G3egXd|y=@NCwV$TWipyw)mKo^QwHG=nTP6)c`^s&D`1Z}pzTW8rM zdYJOEvKZHbI2CfT*`f1v>e02iFYO^Zs*os297PXLSCd~}?!6(#&chQ4tvo%&CxxbD zw`{H`4Xb6YK2DVR`}DrKP!9J>Rem<{fh(a2H-O@#M1$;^$&S z>-P`T{9T4wMdWk+0|I_QkhyC-0SSW1nKfC93vs+SKc5A3<>7JPT&T*jf}1SVuJ`6W z`uhTMuy|kx$vzs!o#48#xuAERSFo{-HZl>Fzvnje;5uU*98FRJ0(U`sf>xm3zMX%8 zTZn>6Dgl5Wzcq?J7=pTPEv zV3P<3uU?x}5*H@w*-N)j8nCOtfbq{y^Ca(QXTLaHO?^|D@=~bZv(n`h&iqZQEPeBa(JY=)uYb z0q>!6&-dh`ibbH&RxO8b@x@qWglw!hfYk?gR$iVDavkc*A|&4!nY+!_`%m2K1DQH^ zSywv#WQB8T!)d-((aRK~Y$@$ukpaz0-hs3W4Y|!ss>~3l5!=i$x_@kFC@G=p1UhHG z@99gw$1h&ma>wWn<3VR1w7{^(VFLxfkKRNGyrOtv&uLiWz)8k7i#fcy#u~h=JW{)5 zQz+Y3N{0Imoh%S|)9muyPskrQ4r58A6_Q;gB(y*QPDzh}r=ab&ZQGXBF?w@f>jH`A zZL1f~6{A<3{EVaFLkL-&s@fxDZUPAbE&rF_a8-prZc^9OEH$fm5$u0OCm-pWoRU%^ ztHYlqZMfPXPop>Uhn5E#1bA$23^9hp4t}ZGqC^$EjjL=58tcNs0`We%wBg?n-9yG6 zeqKQC*Uo@Ci;>xWb~KJ9W?+G#LYjjEL3yIt0ik^d5t5VDn7=BUggEd#fz@4vf$4J{ z7!EL0MdmeSd9${;!~QJP@*uOnNI}y5wRlEz_z?(0*Uyg*%FFjzKd7zhzD-XJJI-nL z#Kg5M84a57UKbuR>*bk2cru|t6lA1U^dF#8?~+(YCLNXed^?(oOXRzFPy-vgyq!MW9|R17r&pufr(uuCvd7?l*5<0@Z;JuNJ^X43m{H2D z5h@SR9D$>W&UyZ`F7%Vu@X*k^d#AD-I0v!iRa8}{p3qyFo{IjL9IvN@p5awg)mcgcK2LcHM zoqgcN_zXZQ=<;(NckODJ6~a1uqLW6e8*>*tl4M%w}bdL=nnzBpEE$ zhyFLcz5ck`IUSfi5WdqunAxH%EuM$dg$^=MHY+KRTNvHYr;2z_wX>YN#Z&$BlM8HQ zm?f{-ttq87&i(Js{8F$I%j5?_1g6G})lEFa%}^0<#%bo}b6~)!uDlj>985uC$V z0kME1yCv3N^`{KiygHhr_!$lp+>_kZY|NtThx@tsjvtx%{>$V$RbV0-8q4l+uJAjh z!=y_~I@^6ziO61Q9W#*!#L?D<1aK-lE<7jrmlL>y{&z>*D$ICwGuZ4O<@xr=M{Tc& z&|kai=NF%>vZ60HbL%RHRGJo7yoT>Ibjru=P=9rE6zf3KP0PvYUWvS1rP+o20h|ua4!G_`*8;NTI(#1Jfrg}CSwBc=%n)H? zI~3@0B{7j*;z>rwC>lcIu=UeO1IK23^3YPe@-C5&(-1#5`N8}!W0S~kexq+tld`u& z4_9M2cJ}u5$vqU?&sYU$?pBqE*wc65`%!=D!DdOtm62q2)yUdE)67Vm=1dsk`BM=O z;II@thr;uY^C5Ua@)z(T$t z4<#8HP5*fjZtjQzCxCV9Fo14(1(ZgJ)#ycuslcKX&BnBA%YBux;bG4D z2;!~TnMSKYe?Z%}4{Y?e7Eh*@dHFxm1K7Q&`1m7-4~sKU+L!NrVm?ql_^9YU#fDPn zd_Y}2bXM?0-~}${<+!nCyZHcQ!h)}^uYcvbpn`$|B6fXcEa%e(;0q95!agaX&I{pV zE9lL>`8@JHIHt*7NfR@DQ=3Lj^jfKE`)v=V6Jj?tBdwqn1Lvcg7=In#IAt%HMbvxI z9zvFaudTfIvb*-$oO<KEP{#%)*SVg z>6bm7>92kmBpeya6g@Rn%$)x`*`dZ2BJ~HvgKFq{c`09=ZoRLD;h4)E=I{Y zry4uBlRY?TUpO2P+yjy=9bqsOAlZ33YF;hCSrw=Y_?0khJJ7*nHtHOA5!L`&9sTu$ z3rnoT)E@}qxAZ-XeMCx_f?mMmTdIt@0jI|0nWZIGc|Q+$`4rzRzSt&5(SWj^+$I6T zHu!a{WmM7iPmGFz)i9huK-kI5d`f<7j%qOSI*N7d-9sk@(qOnGjtqi5WS6VUH{p38 z+D72&0!x}VnW>ecW2gAh;j%`aSqc1<=X^9p!w-`4>Rq*clK2`X8IW37gT~*`Kw(uw z1nun}<9&URa|MBjTo&Ou`bzR_(D zC}maj$aGoa81XvtPCe8eW`RkiN%f6upxI;xZh;`08oRK4`%Axm)DT`>}{^A1`+(svKzP-wy$&j^+8N6gC`Az(v!I|r~5p-z1#ca zQT{hQ1WRG2PuE;FiHwz*mR9LGta0h%JF?K*u;tWvkHHu;hgrLM=GSS{ch(PZEb|uD zv-QWV2(OwoXrSQmSYVomXrr2gZIi6@d(9g(3FvMxXxv_>DXFp{_B3053lAr~e&kY! z5csLq9*Pe8`OAC7Uu7#CNN=APZ4aUH^UXKhA6!I<$*`+1^PT#55S=3OMsM$%j*cmq zc;NQnVo{KWy;QUXRAWt>ZNR0Du-h}6RQgN}MpR}XZZ$RK4X`?I>zv2gj*<3FK-FSj zr^RatM4c4XP5lS$?%j*XGw4(HShx6DTK22RAaSk}-7NWJ>IS6BYpc^w5R1quR6#8` zMwXOh_;$B|c@X(uqHgwhmvaSpi9ldAKr@S6l`WSP`Q+u-a5RPi!aCBycJ3s9C7g(f zNzjGe|JM77*-mKB9CD+;e~UO?;-``rI>xRTYE~ljM*Ff>62^8CNeO-6q>F}u5g;eM zumuyw+3S!K-FAh@;mLS!?RShwx41-ZLq_4J?s14OW&0{D+IB&9UF8ozu!2p}U2(^0Tfx=XT`(a$#HRi!!9TH##0jbNe zG~~a5WRHGdBSikiXa%5Was7yrta#PQ~I2 z?d`;DkT6X9KC;X$p0v@oAUkn5Tt?|PgcT1ytCWwtM=D|ZZJ@T>rk%vpLX>KOmVQ?G zczH3(c-=w@d7Z1;%(Mb)7S2jd*LKw0=SgKJ3$YTNkx;sINo@u?po-TCC%h58FZPVt>U@{bdAg>l6Naadf_Rxp2p)WQu zF$vqcYkl3HkYa=hlFdbTksS_O#d-(PPYxm7coGb89jr#+dW}sFQjTy`0{`C|K}AMpCS&m}t}5vU1f5D+!&MT3G-*pX==I4jb*qV-nv*VVo_*+x zk?R5BV%STSf)=_oha3#Q`YZDA zY!#Lsglo3!)GVx8+S=MHN3Gr3W@cyiM~;&9X)R-43}1LhK0HQdv@wE0kEeT8 zKYV+B#Fa6BcuCTB_p031=L53eslt(7)S3eYFZ$&mx=Gsm*JR@-V4Kh2RxnA^J91>y zzy5v!oeG&JQ=xHjP*70+rO+J&J`N&b8UWJ*Y!xtv`M|MSkbX(!2dLJf}Xt4Gm6 zt`odT^+Ed34r=N>{xk4KrP=jgYB!*fW&^~vcGG4L5PtTGin0k5h$;@u{dG>qqWZcB zbgJ@B#gpJp&5+>+)b1!Wohw?hrrIjz$?l^c#s2<|x&o?E~jj>MVZ4#kICP zoIusH1$yTK{-curoLatN&^OWChSOw}ln_cHThDUd2eXZXo`EGWzO~BwvXAcm!;%W6 z!yv04*kn(V$dw6LfQ+$;Wej>Yn8aNvkXYM^#OifP*Q+@0 zR^ATVG^AHQn9W4@w$zGxo63XPz9J9N*n}J)54c&$x{WX;u2{0-MXX{F%A|nVjKY#udT6mDMtOmuA zvn;9}iUD%u7Sot@)o|WKjfg#0#3_%#&5b^2&x zDV_o8c(y2edI#@VGJm zQHS;syA?zv*tw6r!GQS?QsNU5ge#4UZmM=a>~TH?@&#`*fB$+Ox*$%j=I;OCToEH6 z1Nt025oC!K?H|7zb6w!l2R&dslNYUNU)~>-d@5}#Xk&yUp9P6Xa^a9N;b|x)(2BCbiktWW?miw)wYnMu?#fW zUX(B-8PsQ(8iFR?3D%ffRM#2$XQ#K>QZ~7KsuYAX0GPo&>y|BQ2CPgSFJAn*k*6HW z=9i5F&}6w_u6Mxly!J7S3~Uk5{q6S?5vB(KW^odw+#Pmfl#(2U^TvD>H;6~h0U4V6 z)c1B~m7yd-E`3~6Gk8_1y$m!9ZOzMHNT^O%g|a;>ArX({gYd=3jf*ST^s1LH-grL& zFt7dt-GrF)+uPthc!h+H5tT4-CxBt`vX%SQK)F%SkNLByAmxdf}1l-~XIJ zuEBgGek`j!a`~)PqSatPz+WrOrhuns!k0J252KA;KmvwnLM_4gY^NNod-JZiozc#m zKZmC+$EM-jgx8{xWTy&BF2~r!(##ClpXU(Ep$_>DTrAE;yNM{f2dlSYy#66N_58v@ z>V1-wV+3UyEMhg{C?hBVBtCYn^~v)z{c6^gcVQ%h!T}m7AdrLbju9Qniu1Dm(l5a;Ym&qF@X}}QKzG4kYdEI0D};EFW2-EgbVR(2es1LX%yZ|j`}a7cm0mFV!$DF z5e6U&w5&KV>J2;wcg;wi_j^PK4gt7MTtyw`(Db7v6@{k}RIdnSa)O~|(k-MX21*<# zhwb?n8jCMIbZmakNbow{58G^i!Q-QL@6k%T@Dme(H0z1086Z*S-hd{CrTGXMdvY6> z*olZYi=)%%PTjuL?iWi0V#8v?%mOb#Kpjiz`hX+-;M9(-I2DMFFau)xvabdT3WA(Z zdovjx0?@kkC@X6Y5)OMf<<_t~-{h(CeEa~QSP}eF!ATT^<<|gV1U@r5bsWbJe+_Gc zq+6dfo+vO4r%QGIh_v?S)e-I1NF^o|2ud2*Mv5Oq6n1|NRRU z-i7(M6N@~_(FIPCRx@m(@*By-2L^aXSub1S7!WLd@Ol8Uy#{n48oS2FGZT#8fuj3d z?YX&^G@nZw{bu2YNWJ6KDtFS7&jw+XuCWsAr?4*(7;p z4^2F)Up7o+_HffboAko+AROo%#F5WxTO(Lu>j5h$2X(Plk~w(LdYfLi$~Zzv#T4WU ze=2AJ&|Aj?W#NBEqK#)&`hqS$wmFnKR&)PY^q7BnuZsu+?1V58;z#A2-f$((%2a}Z zMGj69eR7+IA@&+a?9JOS{tKH|17qRrV!v?|d#%k)K4*Xj-Xqs;pL#55V94Q2xDfQ( zj*g%oK69B4`w7@*8c6;gNd_LdfW`vWYCLYhNKF){p#$ee+Q6Cm<0pX)krmj(zql^r z`4l?&aL~Pa@xq!xqp-V6!c{WMTYwYPv_>9IGNP>j5L#SXf&?Xq)(&F^E;@jN0y=i} z=Reuo+6ut)#L208+jU-EIK3Uv5SxQ&ktrAxQ8yqG^W@~{q$yZrc;>qCpocCD3!vj| zsbzm#+j!9J`eBV%P&rg|dk3U{pb2OSvWr!8`i+vWj$?SOadmZdIL`bI-@+LVNaIZ# z9r;H5XVB}E+v{O%(ct5#*)fw)b^cUF%1AW5u%F*W#oPW*A+!R5(t_lmzcVZQ#nA&d#GRg&5=PQSlIx z2&rMTOzQQ@SK7bg;E@x?0P_#vl*BT>~{&hJBA0Y*HL z11|EK8l3tZY#tJgRx{-DHVa-~d{4BK4ryN#hn5Q`9ZbV7Jz>cQbAjQ^^_;Lo<(j}? zad763W<4aSn#2Xg9_~}T&=lho+?^ApEVQ)9p%k>Q>4oG~i6kr-4o>^kux->Zj}?Eo zx@~r$#=cyJpZ^Zxg+sgpF;7EK4MFjeq^x1E`Bq0<#$Q?w2PaO1Mo0g;Oxq`pC*x z+*RW+DDDBcfWZc!9S$@^fRC^52|l_NvPxtmzp+=$tKQ5ZCLVb~I6exnp#B2~H=zL# zHE{4T#8x0+k^kVq@!GGtj}kD>J&_LP-&k$34xglq!J#5f?$qrlO zVU*!x)E-RCFx5r(jYY&8L?zopQ8XOdv{klSNl63Icd4|Tkk5^JEf`09jLYnYS4$)O zWF8I}>V}!^^fNqOz@)_Z(jzf?n)+z)xKO^;UR{WxNoupjBtYjcv3#OfFQk%V8;BG#?{g=& z;g+gkImSTc7P?lnRO^w;zoS%g7x~k$b0uoMw4Vn%4?11Z;?M_;)s@H=j{14GpM(n> zbHQ~twh&SXOf7rko)gbV^w-ycTB7QCIpXE7udlCcd}On~*#qll-~OO<8+!wi&Uu}D zF&UW^bg4?lBx%(>{E-yxfPyqBsbq z@gaw({Q@}cfc6-@3QbM5O77G08sd{puvM)qiN|2kWyF-1^FeRP_@~n%biWHX z6JoXzS>!{_mdBg@)fHBsgHP3Z@n!!;Q@W_5Eb9Uqtvy0i)-eX6QDTDDuq7vgX zA+SUOH)e(}9!tP=~4d?6P7T6sk#ALXSs8ehsbuHq-G6egBby~A%~8uM6DbyQMrI{X1Q}n*z;gs z$(>h%Eu;850^87uUQ?Yovyvo-~$T5T~|3!dzfJqOC^8z5u4A^XkFFBLXWCTcoJ* zPz>VXIqOO#Jaq>Z_Dhf4o<7~e_Y+Sbc%k8vk$rNwVJ9gh*6GiWrNAp9TP)#RRK~8E z0-~Q3ygXo$Sms?djWE8)o-kdY(++_NgovPK1Ajb=-h~5raQMZnG}GW1BJtTA(V=6M zM0YsmKXzW#G!31L8OkJJ4D6mv3XM2sNHo5J%P2C6ak#lHf`gOO24xHh!+&F~rq=}$ zA4ixglOJr^KvXcP;tqB@$;!k7Ja?g$gL^&VygL1O%hzQ`m}XGDVxp4;>D#dzVyvHY zUgArAfv^VAeh$+G7s7$jqrBRno|Qs20>SCS7?268<7^=b)FO!3O(>A4M~9t1-GDe6 zq2dWFji#@}E!|2}*(BV%GqLJ^s@wh-d*A&}W&g)tcajuNnW0cZvdJhBg^V&1 z63L9RmB=blQb<-tgpjOIMpoG~2}xv+A|cu1e4kgJ?_cqKe0$tK+>iU#an5zF>-B!U zp6hku!8TyE2We+z$;MWk+%`y1U}y^Avp%$czZv=>IXO9{&~JF=2*V)8!p_Ng{s`)* z&7t|!jE;Y}N>?gXIJ|U|m1#tKFeJ?Em87Gd@eIKnjmm^EKOfD5VNqSHxW1E9V{>ya zKtBk7aF&YWC>q+iTI7MxnsaDrN+I#!gB^P@v64d<;Ja<0#IKTljl8 zwW>9&FLlsQRs_|UJqQXSCK048B>c+}NC*x6kSCB`GG6j7ldz6W;p+iSBm&1brX{_X zT8Xbe!?!>Nv;*=URd46I!E1kF#t2Fsr9{R|4DEH zKwEHSppil|{)D?m_9*BL!z`w`U7)a)BvcP6Y42|z0OD65IJ*oo3k0GEI1OC1pWwc^ zgg))2r_Tqsgd%c~n;W*fo=k${$Va?_Rw>=hZAc{}PW3a0 zj}UktUp5x?6E}s|B-c?;(1>810yDM*HUMfY|ISvC!-o%}D?#X(g++C3t+KMRoc9_Y zMM;4mkay-C<%efwL@>eIhDyH&;%KCutP!=;tVqpQH24XAaFwEq}a2w%xr9{ zK>ARYOx|5Tbo8iUT07i*iE9J4$m9a4)MF6obuo5}k~R!}oGuvy2MDb)x=+UZb)1bb zBh7w{-L_R)^0cNVuEHvwKr~!L%L8vb9`B>ajvc%H61W{oIO3o%QQ*Wfs_-@*31(1& z0AHjT9Zzy{vSyt0;P5a#3k%D>eT35<{WWmym6esTX~FGPB1A{2s*2VfM^!nDNZ^jeFdAnnGw&1sfM&`S1yo0APVr}m13-ieG-3y$6VFa)HF1R%p{D&*MV~W z_+j1q>ma z=U`?w1ak%Y#Cjyvu~`yBGT~)IV;niI0HjXLd88g+_p8o{#TOa7Tjz=deYsWHzrvmJ z&j9IU@Z(~&rP?4BPcjz36?8a;hK9<@_b%n6*?fb@ zU4ZGIMfBrlv5SfN^=|Q3E->Y2ywpiYDvXiP%^NoaL55dURNwg(6hfkT9s7f`W+8`z&EcU>f4yCl$1HXYMoP#|L0S2KV?zEr?WdLB~2^%-R+~Yy3 z&xiV}?Ye~_yK;Z*X}WFRigwZ}GghnO2|@W>YnR+;LU?HfCkp?#mG1}EMdWEoMr+8n z*45TxB;nxQwC#=`P23jty6vHfpN8&d%)_71B{7_O4+hZHYvu#JP%tjPygj7cfhu|r z3~=`bp`ySk;=w|*-_P-OwNu=s93+{+9gFjwdH?1$v;R!?mL3nL&eS_xCGtO8Z|@1J z!5zHSbIYeGY26&vcL}|$jHT_}+E(y*pnp!%@6F(6``A~$49@Z6n6@0nzjbRYJ@@of ziwEfFsI$<1TfBYa;QLmRAE_yC>GPZ{8O0XWarimywmX&dwUQbB^(68mseBHbb_qeN zg0!Tj;|R*TgT8)X)7ru}TS+=r3F{BOTY=^V?;8Z_3XyCDPJy1jlRiJ3_jYho+^?i7 zDnFd}QBe1_-^%qwo^DaaBMeo%zR5cVqbl7;18&r4y6`*OvNU$dGD)9+o|AB#Ra@}1 z&S64VB6}R2X6u>UU+tkdHd3F$e&m&gnId{@EW>Jh&d79QvBOL3@?VInd~YjuDt_jqShBgcyp1mb=Bba_oiJ zUA-OsN4EHzm)?9vjRBsLhz;T6Rvp?nOOPOtq{>Cc_oI6wWMCr=^!|#Q-=3Vwo{?=8 z(EvuArV+j0%Hv@Te0mil-R*P;Nn1KWL}%2q#ixdFH{d{_+at!!;j&JK?w(NX+1h3r z3Ej6Qm7a7PNzLZP)njj%>zsg> z0!zq1B*{xPnkIug`+ZgDg7=6kH`ngjvj?v(?mGr#dDB7GM|ZM%D$&(YoNFz{dJ|H}u7A)_yk%Z?nj@;tU89H|JOth; z(B%G6f zwU+3s9uQG{=nhZq&o#_a>?fiu5yhE!8%Dv~YcQ^It43OKvHr{3ULrAC4{gI=Rd22G zeDv=JIrf8+`1fy{o`(|y@c;g({R{5>_wWDzKmWgUO`agl`8FLTktK?ZQ7STgi8|@w zgGnz#QamR2{ zQK^gMcf(?s$gU<7rOv%O(h|2k${^H4iUF40Pys$WyLdu`egW_L5C6-OmX)e1M8GnGlGk&oaxb_;Q-Auh z-{DsESJXE6dFcAm!YQg*SFIuslo)V2{F(Cc`0Mptr_uvmYe$0iz!`!>K)81By zXSrv}axaOGnVDHrv-S4vO~S&OZw*h95U~PtD&UR>54JZn971Ixk{d-kMvO%Ar`H^Auybg|9}-7tsnfLlBQ1dxO` z=-!t~t-x7bS6xkL8*j7MVY+hn@SvwK^TPw<5`Kmd9KKnAdr{eE%Jo*~32S&MI%BH(eD%0GQJHWFakQRf8m>5}cXKvv>f1&lMQSi8 zQBp<nBu@e6Ux0V7R{_L5?4Fm z!KkH5gjn0YJ8v0kXQ+f<@bPn$*{f~8XNoTea4!J$B{)e+?Zl;|7BTC&{`jPw(PCKQ z`W@{j#Fn&-zKeHs`H}47I~5yh1e8jBX&Fj#*ezu6$pL7hr_kV8eI85ggoKmt>uYP& z&g@8%A-&|x84UbP?zI+Zs?5^=^I8C~|1F$w8TzeIWFbU!ue`S{zG&JTb7Ss(4GrnG z-S4Hy9mR7hpo*%@5C7u8cnA9+07W!hWy|_+4TI#VsJS*x-(CE{$isK4vVL<(k7GBv zJELSEp0`roF5x@JCzm*a*+ZNmkg`h1+%U~Q<8F{WYzK_Su+*&qs=>ZDHeu|`n<$E^ z2IFMpGXdluV_g$ApRJd`gmYjr?wK)U+Igl`D~}(OdY4~+Jx8-~U*r;%Jbm>qgk;M> z28*%S8xAj^`fi{8Z2PNGzd4Ov>iUk>T2FSBX07I%{^Psq*2!fHiBc23MuTk|NF-7n z|7a|Gyev}>_2d9YUBkYmx*d!EZTR26D#sB!A)R<6bfr_mK|lJ9z|=3gq#`ChturT zu?RIYk|ER+fcS|*sY2pbL?XNf6iErN8*;-3qE>Gp_wtjR0#jarUJ|%6n6dX3NtpR@G@|(F^12zlV0#j2{(7xU< zeCnjHIht3pyT$vgEtwh`#w>BU?tbtWsLS+~%NisK1x}3J5fL>`?5a-?4`R$q&9FVv z60+`Hid3`ypAA|>b}GUutPqf6kgEgW2g4o+(Wzg)le-fyxF2{5tnJ?-)5R%8fIKI|tHso(r{`iFj?It`2@B`I?$(*pPqMu4zOxF9rE`C|PodrFBw%Z>`2-sQi9JEB6i)M^ z>LH)9Htb|LOk1FF@$4VH`8y85=ePe!@6mJG$|fFH3>aS8!TfO@C?JH9AGNI@>*Lkj z09n{)Z=b!ykLa6u;ATL1fooV5xH*t~Kt}@3$N8ljxa9`GpJ)vP*F=MxzcKagpg`tT zFn(GK-#aRNd=R(?b^&w!6EW>QA4Hk~l;SGo=%m;DKDnk(=iR?=7f#Y>C1AFXpFXvg zj2(4$hw~P3QLB-i#VkcPm) zlzHqz$vBrD?jIqt=>(VW?bp@FL@K7;^?}B#z<5bIxaygdGtKhMt-JdVPgd^Ncl%!K z$z3v_Qop$(D*;Wkodi@pi@(>$SEqfT$J*K`r$P+ZfW)8$FoGBhJUcK4#BR3Eu`6)O zSBMdMXi>9j0AUX+8V?JE85o$%DatXwK3bn=i)oY0V}2cYupO;%||bK=X1h<+g% zfhM%$xXVLWj~qRE)CzX9t8ZCN9>Q`J2Z{r784mjs0pjN@&N8WO7yjGBz3pD^kc_#1 z{P+?*LaBh?1GVl0+KeQScPP4w9u7eBpv#ua^fr9peDUKu0>A{O&t9 zO(_(@-6GyVQ(VQ_U48cP5`Ox}mW8lX;l+Q+e^u#%mvYs%<0t3*5AusWxtH^a^N zX{_ZUT+G20e267l!8`{nv~(&lsLSz{aY;d18t+C87&ugCeaxJmo*rWcviVxh&u`Ol z#O>oczg3vm-+7wZEZrl4h1Pcp1{8J^MWLLVkHmeZ5w? z?$T0a;WHy4P-v8QG2HvuVqk-+z)22?%jtNBXbKA3PxCR*C93&VN6?feKc-ud`WR|c zz&3o1%g8d$xKbyw5}nhFmqytS9S`|GdHhUNR)}u@UDF;#|BXe-UDWYUhex(+o`*ry zImiwiCxQQhzw}(r1Fr|rn4KODlaaOM9Y8UMq#JsuWv)~e=+aZ*8R^Qb4_$V@q*5Bz zxguXOlH)eqW0Zb9^UML2(N5R!OglB(oK(mBfux87i+#!BEalrTICSdU1%I(Rb9OR^iNI{(KE=~~4brLw7yN$7 zFWu^{5`7UjLMYKD}A8mjA`W01Tp5+$MXUI0$zLv63P6+%B^6%8q6y%L|I^x{=>)NXlN7dj*>a@D&?m(2OUrLNK5~T zZF0|Fdjuc0_PJ*;Xk96FpfNtH?rfXa+@U)T+twDC`Z*O%@21>U--3xEuTbfxYe6B$ z(kQjh`pZs!v?gMfjnc=CVcy4S_xSPS=;#OfarqqYK+^ki5&_`JvjCrN-aMe%cv%E3 zxP^rUx^MugU0SXZc5aNRIpr$|>l;jDpin^1cl}GIga3T8i)Z2x2mW@ASvQO#h#BC~ zjL+2KbBwqNVFjQMkRri$Cm^ck3mlP-=T^m4N{%*VK~^|$(UB2Y0Gh4x&!&m9{H44r z+WM|Uiw3kPYfxBh?8Cys5Ve#fo1=n)f=7;YUjBpxatN0*KV8PCkgofOJU=+%ND8>- z0l9f+CtU21;XE*XO1$Wc7rWk)Bc&<2ZQp-Yb{;;4M_bbvuYAfJp(u0Y1Wz?lY%O3MRX zYa{OaRE`wwKPb?!E{XSJpkq`oF?d*yCrmX($CGJEb7}YL$_l#9h|@1HpExS|AVc}BeRAlMl|7vR1 z6>Arna@}eg{%>3dYE-oEM#kR(ss$ASqMSs+8wM4S6a7XF?+bL1<&3nJM=Q3F|^=bx}!XVr05nzDpd$R=F3SnxOGq6 ztiY-XSC@51dAT=q1EcQ5e1^A=l&UUiwIV<{2QO`fDQ_sYT0cXT4I5qs8pU3rvOcMw-#1|M}HkPC!Ezyc3apRr}quJ(?c+BC`yAH*OL(jf(3!JfjQflzp zBAbt~m}!T%71}opBKWMr!VbK=G^#q%_db|!I7JS%{9@k1rC8g<3(~^_F)Pc<>7D$^ zZGPhPbeV6@)xBR7P<;Yh1%d*an%Y}h_WDo|=0rKL7a;J`+CdB-d-e*eh(MklJGQ*K zn$dZ7=Si3(Q(wIJ0V$Gs{*+hX&4zjFqQ{T9A7p5P^7#GRokd3p{dFmyT+NmufdxcudU7(rhwVVj>D1rxmWc z%q6=a)=QW=5DswLWIHxDLC-HFBh%g4nF7N+6xz0Ml%ao{l{y6)4-G!N3+0%o!ozj_ zEARMko?R5WbdREHm%5(bm!5Lk*{Dx=fwOVa@u8v1I70w$;!GTS*?oCwwFlEb<_eG* zG~3g4bIlHN5J?0k7~MhKQ5^LWnSz}U;k2=ofNBXqdXtzU#;$0%1CGd`3?Cl&c=*rj2my9Dx9 ziRvJCHCXrwjKV~)uD9^RlbkU26g!`WbO61yNwV@=YDVALKacR0(Q(Lua~*?rLCC0n zROj2JbHT$vTChRtGx}_BX0Kn1$mZ{;%SAH^g8#vzN3xzv_2|FQ8b7>skk07J`HW7~ zPB70jJ9f;?%~fUnz#V}wtE2G|eXh(#Y%Z>@+0dv$MNDLJCM)0YA(MqWL6VevEPllB z03;+lGO}@wY`OJJJ5VMf4hKHY8nX|K?HIfXSEF5_NRor@mlY! zTE5*BOZ0EEW6FvU^xYHjGwF&46*!mMV z1E2~(M(Pt&mbj;Qhe%~Q6rmQ@z_42<-G{sx)mXNbZRb72k|Dga7^4Yj3BWlQwX|gX zK0&_)wM{W@FVG7R5cJ-=ZE~K1k`m(4=b$ne`NQdGX&3(dNwVRQlpLEKeu;J+@_zgq zA9&Q{>_=>NI0|9&ZO+s4qk33_K`aoL70<)Wj3J&+2i(goF>hx^KQ=eR-#r1ZAcRSw zAWD)c9mJyVL2^)bizcoInog)EELnJf<>9`8h-N2UPKw?&k|GK-hOsqtu(0bsNC&AFTzjUf>Y83Q`^3nI zUkGXMUiw{5(-WQ7(Dws_$?dlN=yZR`4J21K_6AAC+5{&3?kg(+xgV3dWy==4rTI3M zXShl43vaH=MO#}J5`!UU_&v)NbL_c8Zrh%FIQ%QAMH!U7ywo;_?nU}rp@G2vf~}sc zJG_^Ix0RkZSTk0Vv0~>Gb}OI?z!BW%X|an!q5V1@ssFazow1pie+NMvKEMTyChjU^ zE5l4#000Yl9)p8#0V!T7d6D(uxzFDpv#5N8$O!iqCaIpaYOXUO`#1`(b_QC?Kv9m` z1T{!XYAPfRxG4xf4@8iNef`j*qM`y{gDEN?x~z_$*NgkkN&o&cH+KzpByI?lvr8#z zFO`Qa!mL(ci-xna2-DwSl?s$`K@}>_?Azoik(PvuLP#c{B|y2XKA(!O+XOxw1l|Jk z3V!&I5Pbk(nN^1tV5UjGI{X!)5n{hoNP*=H zm-ZbUO8J)YmemKX3nQw!n2$+{==44YQzhcA#{oWA1_lvCPHLMqjucDD*yTbjF0<~= z+p2i_!8qSqe>k2h)CNNBY*%6qqY|O_zE~jOeP3|HVwd8%R8MoUXt#LC@c(6r9*Usu z{le|Lo9izEgNLj*dbKU^wl+2_9m9AO>$|!Ly^o>}n5Loeaa_%DL%T0MXNfI8TwD>( zE%fX%_x=4*CqA3GU&}VbcY;KYFo+_WMhlAJ}F7e9zT4-d{Q@#FZ;s|3aQBVa+7m#@GWo%Vvery?90H@In&6%$_{-#X|EHX3So zM7z{(C_s-!huf z8yXt_tYHkwK|B?=W(GE58;;=z6+z8n3(k4i{LsN_MI zuFJm{fdW&tK;v+McQ7><&b2t>)PZs(j&hKCzaNG_v-}pDn>Pz_uY<1rWmgw{|xOTDEDDMx2LJLpXG(@JZ&bP;xJ37K4l^OOI!U!t$JR^gs z{{DjS7a?yA*tfG+{biWHMz!8!Tnm`!pNrruMm2ZdCw|h||h=Lyk?ar^^4OFI&Pz02usr zLNxKf0wdTzl4h7yJ5A-iYIpZ_3v_a*D~Hd&`U}N;k4y(#hBH$7!Esp52crwnE_b;* zxj;DaywA1}{}t9903FOiUssj!TsYsQoKMqOu3d-%AX=cQ8>fwa7oV%tV=;LB?~Bw_ zLfMG_Rn-4@>PQUYu4YbHu^dGR4$=u48XHq4#9%||jk8W`zD>8cdWACq^QCe!Axng_ z7@=M`B%pUe$c0tvpgS#BIRx0~9%!klE7!aIzGLvh)~F*_N6;|h!anp-ZNHA>IjF|2 z|IH{WlFrg=nv+$muc@&_%ZOf5@LVmO<{T&GZ;Jj`=MS&Z+$p&P^!L)eT_tgx_T^v8 zy*#e}J?wdwDiL8rIEV++xWVXMxclL;SNUo5=Fg5or^|$C?cZ7vjNqS)X&exZRF6gx zX=HMB0&=pgNTC21vW`V7=n=viW-`>|AmqcIN|bfzt1#$PwxJV2esMnI$C`BgD(I$9fk&YN3GvnV0&DbJ^}Y4p1qk*(xJ=nQk-cA4>3xWE8Qz%GAmszU#qRrHn-pGT z8M0bPLxt)BsQe!5WzZk(`ElJarl8A#)G85Mmi)z5atGOhh3CM5!>gJXc0aHHR*ZW2 z(a8@kPxRV@huGmBJXh=R!FL%8J`kC^yTJ59#y=5Lw`z_5t5HPqvB^05O+DQcemtxW z9VkSfpWsO15{1$XE>uX|!TrMkRPBykSJ)i@{qzE)B}^~wzc`H|WZ!_pP7>R92kom~ zV$+~n%I?D7NxyWyzc#%KkPVAOlz&)6BoO2;IJk2wiFb9v0abP?Qi{i336Zd-r} z=UnnaIi5`3RG5vEn%c6^LJpBsc)l9u{k`HHYx9yuZ%w~QOB3IDSDaT;G8Lp74pVe@ z!i_?$1^%1+AE7;C6|J(cf{^(__vN14Qs(+Unu66 zMjFmhas3N%^9ypiDK?nEwBuQ5Xt0m>`q7U~O&-5{IcA@VUWC65H|7Wy=>D#kovEs*R^bl70R zGG!@^OrOeg`*+@=cI$Mqi4T1pbH%fOa)2wz%Fb>p!TP_20xV(QAoOA*j{g^TG5{(|^5A`r#wcNAiuwzS^&Un9peJy5VDI`Eqh_XU zVh{_AMF8&e6X)SldtC|z%Qz}Yg;@=?4_VAXZVivgOsk*Y64*7u(7nWUcdp%5vL|z_ zuE`<~=hANkM74Z8Zjt**wsptdUR%0gldn$fQ4tZAs|eyxTQ9Kl*?yrb|4N8aUDF^> zBP#7sD6++{`vmC5NVi-_$@E9W=s@(1r?4*Vy~xgNMs&icW6Ze0;AriIo7u=!N`v zMe3aX=bZ+SehV+2p)Wk!T(*>h+o9di+!bA@o z*btXdT9P90CO1x5_djpI{KEc1?=5dO*%;A;=lBE1RWh|N9jlS?W03To?{9C${0f;n zra5?7zhOMn;Bf&L$SP?|+IQ(L^O$Z}?ywXg7JVJvc?2w&;z~RxkyNV;bGOWd%2JDuxny&m|FYae96C z*{|DWEl%$bEuA{xSW%SVb4kQ`gfINKs4Xn*ATi@*-JgVprt4+kh-G2Y>uhbM^BIgh ztZ$E-2(~7I3PTijcFsv-iYW(ywb1cpw8w)=%$TVm&On4CwgaJir{B9ifxr^!=bhFP zPzbV!jkNzd$0@)>Oor&jF_8;2QErXcL6^fw($d?X=r~X85jdl+zPdU+wWI^DUpo~@_SL&HBZHueR9`X8T_NZ9v&ZD`oeB_~_Dfc0q@7l1xrlI`z@ z96R{IgLIt~>ee|5g{74hi0HOQoCS9S3>o9z{rg?DDUg&8>Ud!`T3Vt&I1+r_z*OGa zcEisYGVTsF2>J$00>f_|34U~C9;>15(e4ct$AmD0x)1c_M@z~%r~Ys7<_)OV=KaD9 zi`_cjF6yFg@yz7FQ!K-aW7GZ#&z>2hiPFbbpe()Bfe-6wWwE4Com&@|6bsZ~0SqDC zX`MwD#xa=ZPMzYmpGAjBhNZ*N=d3R$iuUm2BpXb1lkRvZ`HsmRV7VvbJVF(JcF(An z%G#oSica_2Yf%`KW@QOLH7*WOT%#~=PEE~W>cj{Sfr#WqFxTbejr)j38|YOGIDPi) zJ4h)ppyubjK@Ws6122FD8vX~~3=9O~cp|7xs6F}?9uG>}V+j$+*)C)=y3MZP$^&&4 zXo3tLDd!bBDJ0(|;fFx2aPUWgzPIl&|Fl2>{tt0KDt@2PPXa|*8ThazNVy&2J?sX= zH$vT-fesbrOkTFs6_R>1p%9z@SzC5N>JY9MWSmCHPL+!e1k7~vcOD!Zy@O1anqLUF z5}*Mqx@t2>m~Y^m$0z(=!fYcM+Zah>jkXC-8wS)=-B%<<%*L^%Tq3t z^6T)x>L4h7?Z~s37}$=SxQA?Pa}5xwOGGVgkCMiQVNk^wtV(VQV?Bx^J1n8txFKy( z{|Uv6pTXHL0F{x3MdUK3Z)uWOJ`3WnHvTjv8NRKAKLzAJDico1LxE_Q&G3=e)*1(% zlA>N>^vBS`%zSq3Rg&w}40e&Yxw&yxbDhFsQvjS({XPR|TX9en9o@yw-iz-NKMvym zKsC63z zBa!n{+qZ>!UyEXHLJ#KP@2}kb^N0saPZzm@FoCP2)zg|g(exu$MH2C z`E7wocyui!Sp829_L-S|WZ>#ZQraQ=XWz|OEH25re_tgyo7pUH5|WhND-AQU^6=*e zJ{gcls_)=FPQ`Kdd!_)y+MX+T_0Xd^Lf^BsNSv}yKt?A0=Jcf{BUmC%?GJ6Te8^1R z@2Lg|76Av3C!?&vhXbCfG%=TL1<3LN6>Raw2V-SGgb(O^uiP7OmpgIrE3{@ za4?1X?Z7TEN&7Xy)+d*DEXop=YFk@@raZ+b6sVHuFsr`iCfvm0CJ_e7vaX2go&lAz}(9e7xCL z?q^sM4&=wb(8ozQ^s!qmreccu24m9Fub(F}^YkgObzlDD|CkPk z@Xy}mWTS);=*R8!^in?^w`~k}n3*{nsxQJ}tnBZFpnS(G{H4=K((?DLWyZ+TS&*^< zO?%5*xo=q)yMQ%NDg6K_0vB{q*gnOVK&~rOaHg|h{b6kD=3=9>+PVO|{6nzg+Mz3Z zZ+Y-S>p_($?O^jg_b%jFsKQcr{~<9P0WlooGp0%e$OjX^U&C>Cgb|HS=I|blAk*)> zj)m&{6QaMpf~43)&7|X5w}o6YEcc9lyakB~_@-{=X-Qhio_*0DP%1A`31ny_$#y9(GiW@R-tGkDU4 zd!x%FDyD^JjSqhlQx|srRCWi?y}+%3S7eOe$t)DdOc~en*}4OF1?ioZm8E46yUc%F zP9%&hS{IZ3G)5c5<^~)&pp^C8^R{_+s;^d z)`J6q8EanLy*xNe+z5>kdP?+rdXql$k1+=!@obl+ybDROQY!s%GzuL08|UCYKA;p$ z<(>kqa}f9;O{jiM9V?)bU1)Op$=S43=oDPe>{k2%l~kQ&$oMjLEuf7a{wwcqzhF++Bp~WOO!#ry5P}($xSjzbL891^vgr-U*Yg0J z&bWIBVvAJS%IrsKodY-sBR1Ra-Jc0qUSUwCcMQ-C}|WkQ27(3SN)(qeS)( zE(f+*$P97hcduas4R8jCXjnO}!T<}PL^N8%tWO^mZKc|0IuW+b6YXzKW+_8$ocfb6 zgK8*8s0H==>SwY*n(3(7CIwZXXUEG>$XMN)H*HwzMY>|5GtBypXR)U9n6NO>fTO%~ zNbQDVr#2`S>Lx~qR*`0$5mv47cCm$gtLu|U?B&sTN(5fZDkvg24o@F&Lb8?FOasm) z2tr|crK95F3cC;)^ym@0r0v&Ymn+7`-$_FUcdKG{a?+QWJ*#6?#NvcC5~lp8?{wS71FB6+s~b-Ui8xJCAZ}^|@?A7E zyefKq%ZF#(B*h}HhW7R*VsF{am)F`;Z=ltfjoeu!0OcWcdq0A7>~akjrsZ#wa^2^w zNJlo_E-$ z6l&tVoN}_{)T!QUpGO|8_tae$dBl2zx>eTCL0NX!5D-o9(6T-o{~?Z_P^be0Xutf%$<3Iv>yb^h{1s|3yc*gMn`Sy7&*s*6Q@p9V?;#b zeAnSVLiR8Xc;f~uusm^s1Vjn|McvXYxonkwWgpyYv@9YsV=ZhO8=H&Pi5iFPLFkAa znr14n&voI~^o7Wp1b_8!D8BDNeIX$waKC%}xpWEHR-eW1H!H~Hhdj#9`K5I)ZLD%k z{F6S@$E#4>0S^Jq^y4Q_eDlWTuqj@IRtaMS!e%j|qg`_fZz5~<%T_f<=c6&lTIdko zcWXbAKVpo9?4Y{MEx1{Q3g%*4to#C0o@=~bV=D=FR08(#bmxt_)nfmYak=N#@b57} z$6T>rzWZ$9-KdDluuWWke{LRo{>vc@T`vHnn55IboM6oTw}n&BEP8-Zun^nh&522q zyX#=E%Yb`1W=3?qJYm{G`i|^Um>O~73`MEQ>_+?!AlPr{E+C!o(?Vm35di|>{K6C& zK|#nZbI^)Eu#J~xdN}(2&N^$*3XqgKW@DkKC_y&PI4qo}*}mQ8OJ;hTHT(+<{%L#( z{vtEiE+MRnVn?cKyt`Y*r2xEzu4E;hgM#tyPpcEBUHRH0L8s?_p?`9h1PNe-(n-))0NgfC#M`2-2}(Yh(OgvTm{I}nQy#=HxIEU@$Uud z?rit9xIlQn@~`-WsQg8wAdy{%)jxDrA5Ee+bC6h0QvI36e*v+^O;rh3ubclpB1^=^ zW=~HcIVg{#4j!WK-)W|?Ll&Jq{_?E6O^lrDFTP+(?S&zV|IlAN85yckha>F33cp^a zF7gCSJN&$^zNMV@uYne~=WokG%8M6<0&XMQLrDDRYRN6rTaZoi7$*=E;V7q-anmdt zU;1&$0S0I-e7y~J9gRMf&6cbz9Do;r-X}R@9;h|&)OKRCl-owB!GCDf?gGxg7rxLhQpQXW7 z%t}aqV%xbQb?h53d#w2J?0nUUaTpbwDSjts9b!0LX9n)LQEc59M?e^g3Lsg3OGU>{ zl`K6xK|&YuxP^p*IZv~{I)Z(X-Q5=~X6um`0W<(T%i@w#IRC1WnD=n72lh&pc>78Tl!O z1u<>Rq4`PbRXg&V#U0M`G7oYMo5!tNL(6xZn&;q0LrXB!e3HuF|2%MG)(tAIgKj+U z?Z3}lWJLV)`s%b?jFsO(gTR=lZ5MEC!rRVbudhHhHlod8EV$At-|cnG-B0WC1<#Z?Usm5#Gur%3MJkszjVRSpQ0GY=JJ+X{3Ia zpR+w`-ty8cAk|qrEHfYY{X6((q79f24VF#Vg#vmA%7oeLbp^-O{@GEYqc4C{MM746 zxyD;ybx%FM(1VP|n++k+eCzv3m57rW0UE>Ah@0j}AahjS?#eq!?qMS>WSp0C)M(sz&}{jZVH*5N^D|#|I7{o*b&#;ovPgdTRu~2eCFe00{6+ zq4ARTT47Kixy`Z+CQFO&Z5Aiw%HoV9h*mTkVCHlZ0>pL-wGG zLxqcDq}6Lrcl5*V%JxCA+5bEnoPw7!R+3>;*h9p zr?0&U-T(ywBM1X?{QLLsXJ)>+iQhBDlySFD?8Ej;<1-+=kotq5;-woW(Kn}jUfUVx z!q7Ty6u7s49(JmxrVNOrDu%ybjm@v69P-LZjAA~5&ZsWVgN$Rsrj+ z`G8n9aKFB`_x=nO@+T%H;;mO!sA_0@D|9eXcvXRg#yO)0pCFlh&W1w4nY|DM*F%4A z7gZ;J#n8w|SF$&EU2f3~AA_2yIQHta|HR%JePv}zxn!7Eb&+;q+3I;WuO|~PC;X-X z;Kf@PSIJ8Tz%&DhkF9|g^VJn z=VK7mJwp3%y-usEH#uoLwofLjXjiVW?|#5g7giJixl#d6E$WLPDSNk477C0W?fHbB z83JZE59B06*1;9qbY&7Z*1wRU?FX9eqBX|GTTLv+ZzHOF%P7+h#;yK}v&er#y>ns@ zA#t!9?5cIlmQ7qr5*OlLvl{?^7TVH%|kZbqW|Dt$>R$ zo7VnN>$ewhdp8|P&eXdW#M*g;mDiI9{g~)D6y8J6D6hNSR~kKGQxrLZ>8)Wq>LAKb z@|yv+k;Q%~h_kxAJBO;7M|M%maU#EP1X&t^At5InPRUVmtx=e=DCcxtp))+-XCJux z0YV-f{Yc(P=rIugx5a0%Vv0DXg^Z;8Q_o!Ve2z7ZLn~+ETMv~Q`OUyx)M}JA)&wDR ziCycPzkheK-zr<4r{_rE?AT{J7&R(!M&(p5a8HP~6{w1fiY!#*Jb~f(*{n2MojY~P zPlKn5FDwvg@_m&IHs{h6QweaBe zl*5gam8cLc3gj8?HE)z*G~93-!fFG=c^{q;pwUo^aFbVKu+hKCfspPpd5SiM#|$m zryr@#DLY%ptz4luMJ1yXC@THvr3=dr4IW1NwPc2?aj4Gv8Apo5HTCqy@GbUd?(czP zUdrAGy3xW@`&FnqAzVUEPL{a~SEc$XPCv)OqhGA@T3)|?jpeLs`3)8Uk4i&&*825c zA@vd$03{BG{w_s`&T#A>k(1jeuY<}5C|k^NV3XftV2eNjVTCyGmla-5teP}_x7IcP z{;DN3g)=|ehK({h%&^Uy;40`izFx>)@o5)+5F9*MWHc7Bs~T&>s;ftCMGfu*H76D; zs90gP#+zv9y7IRhGdp4h@1W0)tE{Yq{)H>ElwmBC}16dns) zE5m8jZQJ8kdw4|mtA4&LLL~lUVy)rDfVIBfWTE+GUOpO& z0+GDp+vi;IoP2Hi=X^uK0!VIreACE`d}%Grl0KPL@Z zG+Hd$lg_s2eoHDwzmsZZne@1%=sDkWs{Pb?(@`bQT>9j_``Uv>sj14(Ev_z`^9(xv zE^h6P@6TV`SBvGg9hKS)SJKt;^7AJ>zF|H0u`dtQ)zmsli;n1?Uw`s2VwmNb)Vs=_ zH#S)d%l(MJw0PG^e{p;(GGw7#0}-l5Ml2$NKM#2IoA?OTv6O&JhTu43Jkjp0A$z~r z)d6iyQ3>(j;f3Gp-b2+YZw%o*rsr9s6D(``bwIE#h%Kjpj5#p-RpZykzx1APr{CQN zo9>Yqk=hQ%N7zXXzcLh;q7cKa{w@i5#q{@)!Kf3Uf+mSsd zUam1iwXgyq_YajK4^C{P+{pwT55Y8w<6^)3%HaLF&kRm6J(cV++JA2yFYEoOjJ>H7 zmRcrz+SQBCF7~>F7?Ode9TE_5biRAe1>0DHxmA7Ni`PO}9Q?VmYw6U5NUW>0le{>r zLjQgmQ5n|zVfsuqnQ-vXoA5jbf%*}3-a1hP-+)%VKthn~%|kA+XLMA?9ND|Dv;+Qt zu!ieB?)C={rUch9F)}K(6w)kt7k;WG;EOcw<3IBAvOn|Z2Db#oc@_BB?Nr;Bgd^CHRQ=crT+f?2^?=LX2Xq* zjga-V2b`;Ynv;`o>zuVj43=3hE!~CfF@>$dxFn#yej!RYt^Mgy)h7_z;SSU6=`W35 zL^7#p?Zjj=KB2Vg6SNna=A~@e3#Y7A&}}d>j-Hitv<(?AG8ruZzlz$2j^bBW4u>)2 z0hPYR7O5Var<8VI(lj}a{HJ+VPE&B#nbULz+S<{vu}u>bv&ofkGE8+mSh*sNuqVdf zEB7MXPWxf<{Z#Seab;D{(cm*$g%RAbG4yZG(m3QM-4LD-u!|r6dHP3T_k6FZW)5H#e?x;llTp zM)o=-l|`MV_RF8JPd#dQX+@YZ0D@{{7>qGYHNy_?i!VHtjyR-`|y-%Xsx` za8SnXTXK8q@o%rIbXkUxo$zy_{_@%WO820dvy^^cqb78IT+GO57Ok~*a{UH%8dfXA zVc`kP2&BWs*OwI#+Y++?+I#EjVjXccMVa>PJ3ITLtcn}C)8E{^lCbmA%1x|Rf>p4k z*Sc6cSu!@OwA8oL#NL-vYm1DrprvIB2&In|iqFJ;yT0lJx>TU1p{=d#TY+6{baVp?_QuM#LbmAp*;b?$KG~;ieN>;=N*>P0 zFb&w)LvqX*^%u1gi{`s^JwB^C*G`e-_a&=pqBqkfd1bO=W?f=|KK)ozdHKsEJ~f~r zChjRNRU0vZ0m<8==OwxwWn16Q)GzYvrbsL*T0)W}fZ{=SAqfdvpp~$KJTGh>_^|lW z`~V=9`#AcQBeJ?}7v|^ph*|u=vP~e+N8Pke+}fCIw1uq4e>;9U5Oi^m z$a6A+5mPmNI+~hF7ATn>rj(XqozO{l_hn#LS-FT{rM26pcK&=sgN3uV`Ijhdbc6T( zzq2YN^Eu<~_Iu{{Wu_h3h}mduY03Jy3NrFS*6x!0l}&4@T%3L-SaYDgW=Rz(piX0Q zD8A$4pdRnPv@`EfwOgQ@e(qvsVq#)o0G#$|=IDLIeI>ekyiMAZ)}sqS{wXB-*TL#+E}=Pl(Fy)CA-vlG;r9V(}kPrzs^^J|CkIN z9U;(+_ab#H9)UJI#Lpl2pCXdp=}cs5p9-iKPGy91$C`(Jrb>vk71EDmrbRaV=k(6$hnIn|SrAoU2OO z)>ldSh1XuBq+qj9(0__JeYWj$8@Nj+_aYdI;^#=vY^#lkV1%_KX>0rM7dG#mejDW% zRW&lzIjt^oKp{c9<64W8k+pROzM6eUuLor3V(h|BPyYe|LBZpmORwRAkz=ipJM!+# z)wMv;)b^im44#G&z&AMZ@dh(Y_JMr^-k9cA9_LB zxYicxv(P<`y3{#I!(IoiHFWZNw;G|r|8iMGq!zMkeA6gv_j2xCm0$(q)bBo?kgU?5 zv++3Fj{03*e$F#2%))ALI2T~ZGw~@awk#hKhWzNniTALR98!@$Hi4~VJ9k-Sr7s+0 zFJ9!!ufHMJhbFhm&S^|NtIspKbjhB~d_@Fa%)(dvSIng*JYx?BCbj?kl@(OD(ED;H z^x|+_t(a?D1UuPKLE9K+d0{GfSXv0)GAQ0@9IA$;%af9P^#mNtQ}_avlaWnY1k8To zx?wHD-4AwfsG#|w$>eJ5@v06OL^|~Z9r_Yy7Z-!$RhR8cdRT2z_jXMebPF7P7CGz| z*1&?;{J6N@_ibywoVt2?IRC%51Ty$n1I?WVzkse8MvzNdS|U(KtemA`OjS)ZSA$Co7DtN_ywdzqOXp+Gs`6 zq9LEJ*-~$B+@C+r*lhOJux0Gx`XGCqzCIg#`U#PddgErjZ$W=Z#-2@(%L)!?zxoy? zQeI7-S96p-Z?;c=PH}Pmvo&}aVQU>V@-EKK6|43R^!JXFrOq+b;Bn2&{0pme>3F<{ zjlgg0g8(M%y6k+^+!niuQL|Hm;J6p!;);*YXt_vr{U}CYHMPL>D+UZlCQjd9369Ip z;Z5IwX7J6Pkcr>eRD(w9m)+-fuD%;hCxgWi35fYfn3b{ODR`l#6JI{WC>OW(aS-0Snf$rB?Q$Q{$Yu>m16JVQQ?a# zpf*(LdF7JY+(dcWMJ}(nE7wNk<>^@EoC10Bp{XhV^=m7HuJ-lGT@6K7@ySnBVc^=S z&QF`TE7y}+#-$i9ALSxH^Nn54 z|7q_{|DoRh@bQ+Ty(kkIN{bkkB>R@=*vd9VmPFatWXn#Ggs6~Y&DaUY9vR9hOG2_I zWDnW*CBE03-|zb$d~bf{#<_7GVrJg2<@vmx*Rn7(=s@JXe8S|Uq8Ny4($evvLXSBU z@-TowqK5S5_^2psLj@C?qp6eh2erU^_C^kgiC&HL<@?N)l$7b?d? ze4F8Pi(%MA#os+cu-|MnTN_D`CO=&Et@=x zndMKHZlm+qCFbx0&JV*aF%igHZ)xSNJ@43*TJGH=DRAKZO}L+A&St6PTXvNwWAw;k zi0*E}G2WjEEgmR(`5eI|?hLs4f=q|jYJlhAUJ1j6% zEAQ}>SqVj959(-ZYlwSzdsryn_ml6s^7b43)~#NOKH68WrYE~$XsDn}oqsg7uyEwu ztxZXm*?C&{F7d+lgD+{zNuS7QvUxB?dSU#kRj%LV7{ogdENRY-t=-oyGmd{I z8D6%vRlIkv@cTeV+BGhW^H=2lke_NB871npeW|U5g`UxZChwqJivEa$Yfy6VW}Rk* z-ie7L2W0~mn@a=~B(YF4Qgv$!Lk#mOPctU!lMxRLMn6+)3ck2><=9F^8#DFCRL+k~DK*tsWm z@5&2ItRYY1Hhmo`-c_TaJi;k5;WOh=dN8u3}vfq(QuEt(mbkzpQ_$+94xS5Vyk-b;sqY?s}6R{-d<~1!;D>N zR^-aUW&FF~G_N@n_}EO|GP2Fd?OS9L9x(ns^!VYdRB@k@ z8`YpdH2YqfC?3`$6YytLtnG8p(DLRC(hRkqe^2c{Eh6Gv{Vbjs6s}i*!IB<)ks!8* ztEJAPg^^9W3~3V{>+cVXeiXrE3_g!=FoxGHpD!Q$WXFq#W6>Lt2APvCQRvi1GKWV- zZqu82&5v^c7`mLBU6J(5p#+1A);9h#idT^vA9?z1AZq@2w_B=PK3vAzTh3xUB;mRC_PfOI{(gS@A;!@Y1wxmZr$f zVv(7x1iS!x34o5}fRHg#fX^o9aY|R0%`9lER7vZSibGLS8-vh9iTz$#hxH>QrogP> z@KA7z|9n=vmC$7_`-R`y35^O53}|bJSASeiZM0(VzJ0+#LFlN}8!TtK@$cUo<FY;L5!Z}+jm^AtENy;%?L13=;yaZTn)uzsWShsk#)L^$NaOLQNgkH4jh2zw(iS261pMOR ziHZ6{34|En!rW)i!Uo#nxZ0-+sohpWffNx~mAWzN1wP~8CXpUbaJz=YL9`B?yTDky z+?l_#Q)rc2bkqKZSr9K#^+SgGCH9aBegZ^`#GNMukMtwRGFI{(WMp%484vp3;tPO* zNpL^QH5{bd_YxIiUOARA!%$5w0Zfs3Jf_*A@;~!ARYwB-{o{x289zU)_wC=E|6sg) zD(e1yh6$nAVfc0z8`oa1jG$D*4h!;>;D7+ioA_XQX4koPt3tSSVWI?!S)&i$nlw%r zXk0mulAb5}O{QzaLF23t^2IiqQVq8{JRQtIP^pDkmsawJCI7QHdXNg`HKYVhj8Xk> zQILW~{W3gU%q12RO;4;K1e;Z+lD}UN61sJt7-S!~0yI~;{ zgOckHHCPE1*|1N;jTNLZEJzkyw;QnRH8j}Prt>Y`cw~Ns=G`Ra`K5dFY5e3ea){s( zr*kG;tVh+M6<$_s2V49*0+U`Jg|G4%^k43cC626FH*1p*@A6)%lDg0ZT+z{Qt}%d` zbPHndX3~`m&nl?hjEqu)UW$!P}af-ddT)ai&7U^YjdNYJ-f&_4*6)TWKZKAI_ZdWw`H(> z;Cel7QH0GCYF_=UJtcPKU(^7omV9x{dd@X^0Vs+p)Gg@m6{QTu!vOQ~<0XvThZ?-J zv)ir(mQhGpmTL%pGk<F9FgSWVY&ht7e;w%!^dpdG_|yr zAVvI^5W;uz=urs0+Z@JPgU&Z;odNn`kk^r~GyX#S0Hbh^FoK|-()Kp{=e#Ge}kF~r=9S#H)#q({C5E& zC#HifIlZqsafxk_dE5Cn`At?!YymaQXHxBW0 z$sqhIeru58A}}$fpJuD9s(usTcgj6rH1ozo5Q>f)M%#-t=vaZo!xD_qB{PvHzL+*K2iYNzE3R z0uBuD_nQKNG3b`Lk968NscUM2qJXu42-X8kOmdBId(FQjORfy|a0XKb!@2wnjO*A% z?%o%DcCFRzrUI4&rNhkA)x0vVoY3h9sY!*FU&~_4L+4y39(j9 z2T-6+g<|V>+3G|>y3Z$r_>f)^CRVpe@LD6Np_vql!Qf}r2vOmP1}*@fBJ z8|9wk_c#CfRo#;IsM)g-dQ0rA9o`p<{5ce}sS7&L5j2(f8)@?$+9N>3blkkNa4$Q~ z1+dU~`KCE|0x4M)(c$4G2A^htZi`eNW5Z!Xd)4HAiKv)eLyUZ^=Zg8R+LjCi5`5E; z#8FKf-0;b1&g1QaXf-Ud*Z(*bm_245mqUX1lH0~`8lqgy%zp?}9z!NZ%j7pQDERPN z-^;}C6NAup%3*!=Ep&8rv_jKaP@=RBtM!~6#|u_*(91z%xiPV+JyWUC0DgVA4dqP3 z`Gjzv5a*U;m>_b?=eXY|XCOGy04 zDF_^D76eBK6BTo1=6jYM>1VMZgEa`mm+_>__%~83zoZa3l9snwh2gKLI%K6+!k(o) z>PlFwWCFBr8#6D<;WlU7{!cq1!oI|a4`;ymtF8P3?rf>@i6l#I**Y}gNMsnHeoea4 z1}#4N7hUVj6LaA#P^wn=ZjANz#_wx^E}|ApSx$P+N$h>#G-l(eKp1rM&B#^3JngEx zoftztzwbgy?$I6Ci%Yfo>ofJ@lgOQ@8~|yg^3%9}PM<#Jpx|QVHZ%ku;vf3JtRKzH zz;N*?e@06ow7pQz2)PRtQ%GP(V(fyxL6_>PtgcRIuvcHExrf7+5%X1=H%N4}u3`wL ze~^UnSu}fW^I=_0N_(1-m4#})7wagEb6}u}qb9k<0&C|Fj2(gT-F*8@7g)ydFf$_~ zKUN+;>^4b7F7Q9l+dxBhkbu~4 z5b6l{4VJBWC*<}Nu^)RGVmIC8)PwvgylWbh@p4z2(+9Qot8m zE6}5%aRSS^9{>e#ABbAe^b6!`I6E)llx27Qb$c}3_z7R7v5AR0U`oV_s|O{w_m3BC zh~9et9-aL+%XReU6QFWy>U%h%X87?#SDFFbR+<^9{g9H44ZBzrsG(9D%ZspmNZSY} zIsqDjOb}3Kfx(~Wc~n$J8!Hae^B8boO@o-8md5;V#dne9GBaYp zy#4)RjED(HKq&LC4_kg|9;H!$fcUkyA47rWwXrVn;tDwoC-Kcyc{ZRgQIS!WTze?g*rhG2i-qNt zlin5;QUImJ0vc0zJj(}_Om@2&y2Oq+l$geO6hguj=bn2W(=p!3WIdZ-AW&YSmz?{; z-=KDlu4)=s*ktJ}xEgnYnpSRb1oR2_Sg{L`OhB$620h{%jQ2Z&hJ6%A-x65M7*PsG z)ot^+0csAXO7v9oHC5k-57myL07kJr-c3z8897BVA@T4S7L^n)fiq5>`*sE7G*tKy z6Eq-VQdQOI_o@XkM#brOdn3Q8N{@X5HEd_Zg^ji4#856q*7+%*J&@|BrE#Oz91^KK zBn%?DVhFSY7cV8a#M)r!iophWFms?0k2#b;)4Gy1C>&r12(2H- z-hQJe_`{3nGimulvi@vU%PTA3KHFoRqt!A)S%T|FN9VHDZ#9cGJEui8w^};s>iT-m znVOV)<10cUA`iReVa^0HNY->QFgT2efUx4UvxwOn=1TQM;|bg0Y5N9A2tW>9!(`$E z2&$gY(t+)XPb*Bzv;ng;mR@4&y*J$~P}1fM_(U7aKRseT4sayQHsc9A?}?hnO{TND4meeH?!M{$ z^zDpDFhVb}?t;;Pl{)8q_*rSIL^cAONjvXOW_2Pdq~s&zPqpzb4v@J(j*N_qOka3+ zl|a_f5kp&yAzK%|Zwl#r@>lcR4lDdgXjIzT8m39W6fCo;C9dEjntLQ~Xgr;X^ z^l}GUPF~Tgt9}cZ-00jP9H%V{yRpAT7=+yx*disrJ@nBeh#sd z6*ugz-N!PMyjD9|5tf1p^nV&s`K$cLsj!S612AANIUP>gPW&#ftwfpv3c5ZlwNZQ* zrkNQ$M~^~dus+)tI7@6XQZsFObaV$u_ZXT1CHy+(#S-uF^ZjN&z7s_$7c$D%?5umr z{(y{u5_D!}Z51%qw=1(KHPH2gAZcX8VcZ+eF@o_7Zp98rJF|%l+vwig zOnw!%>v!Ry32CvYO5=zFEg(nC@iXc^j7=QGZkm~yDJYy?*@Y*Ct(2Xfj<)Yueybej z@|b#%$@`7vT1Fhu{ShTs)&T~5s@wd&(yxT1GnSSw_01M_y9QQ#GT}bH6!YO3 znK`M&q9vY=tt!x9tDpXiKulx^yI9(tQvt_!c&~6j;TAm7lpmLLr3WV(7p6KqOc{}V zClT9*=Z6_olZB%IMG2aRJ__pXNkAab2aIv0`C(Q5;XXyrT`raL9JB39pTx~epNqf@wW{Mo)$b{vhMlOJGIjZ`vO(enGVVdvPm zT`>e5bOD-W6sXYIbQZqIvJi_x#5+)@v8I%4SDBNFprFyx zD4(!AMML>C>?&p90=SnoMq+jY3dY91{SO8Qems7v3fWuq_h;Em71p)!7X(K;7OGy$ zF#j|AZ$dEVyhRGRsem3uXmxHWo>*Vs@v5hgY`w?!7<=a{8f-2=bTnKT6G)^~@2<$K z5^oT9EA3pY1oi~oc}-}F`^rd)Tt6?fXv1y?uN-|&ZEYYtt5s6#wqUpjPB>ZUs=A1Ojjl3~gsH=3iq*l*+6WrR22#-ed{_#w8$J<11_YYuHHOxLWBK#zDh`FNQ&*r zg@l!seg%T8VhFn1cR1*@LpWAXCN8aRfB5j>l!WTu*F|-C<68B>k{g03_b_8B89nH$ z7-9{TQoe#mW(c9hFx&VH^R>N=E7cwkY7qUI)Rew#B z0wTAy9_cM-cinMwpX7CT@S(al%F#k*qKV0)5@M`9Mz9!FqRl4NURCrLD=iCt${?Hb z_N_C(VgcRw)Ko3yGw}yxVN8O;k|rC2qYUymFN21SXvR{i$1k2cIT5onGr%Qj3lF^r z0vRTZZ0SZ_Q4&BQ0LADH(ByG4xGqjWludIYI``I=&9p#g*MBd_8NmpTeZ~;?@+I#M znSYtz10rjvsc``W0!&{J*y*odvC`5X=Iqi_Ne%V&-562;%pDpS_)4@5?(wCV0prJ` zsXF2&A+|!reuLa6A4Fla2$%yM&;o`FeI();kYfFS$=*pqLaZFyRY~Q7zP2`ZfPu-7 z2A7YRNH9iQBDijW_*G4V=#_t0H(}SSR)g>F7J>FWY;SkNz^NOOc?sE(NqSv*+n!C{M~59%D@sThpy@*A1f;}VUE}s`X@frQ&#P63K&_)0 zi}<`!rEk`9 zN}a(uM#T%Go8eb+aN34#XI9%7g5g1#Gw+>Q310AHU${5&E$v3p1n0E^k_8G@fJCIt zR^tjjD=hUfS1v0koFgLJb{!BP?uaj*&%xk=iAUMgRAKI!g9wH*Qj`?SL!XZtf@bc* z?q*d9Z6|gGXee~jiGF%_ChAZ%0DZK^+R)I@zMee=(sYD=Ylo>`MiMv0lRkYMD<1C{)mttUS6rwr!5;| zyP%}`TvKyUwsAT<{_APz(M}E;zy}y}Bd>M$7(eCSfKLVhZDI7A_`3tcs*dc?TvX(M z-=)@i=>dOKq9)tAWeX~1HfGb>2co#@o+tyP*=nx1!>BRY>BaPiPjIn4NyA zdaYc8^Tb%|ZC5JVwEvC`*bBp}3Vue=WV`I*#Q6b6KzE)gec-2bk{uphp8gjwfibXx zXv)pm83g&}#chdi#ekTAft{ZZ^=UueutloUWC4yer2AMvnF0VF-cW*d+|P`Q6B9+? z!;ga(2Y$;3pXuuv@Hd9vc-d^dIDSs}Rl2oM4ZMvy+KQ7ruAZd%k3x$EXH0NU;IL>_ zsIDH?1ha0}sJbDMzmh4G3ZwHaBvqX}BdFXk17SlYd*Z2*748ZUy8()hTzRF`g1f3M zyJrb=OdJo9F)^7!@mHh z=bJZAVpHZFnFSuK_)9dvvt~P9baY@;fNP0i9gdhte|gIztwoH)SIF;Og7d)-fM){d z452j1E}aR8+~1AH6_*4KU8cZgNPWN=dR>6b7?Vrk#*vxzv!&VDHi+W6coCu77=PlE zf_!;B!8Hxj1#$^^i}@_R)O{h~idF+|En-Y19xz`uYHG+(_tYjR}#^RoHzuy1k+jrp)T5)gm@Dj_j( z02h8(>kDuDNZ;&r|Nc$YMCQDsJNDW{ycP-2`3O@KnM*hDzVP|MwjLTBgdMFHOT`$e2#b0 z1OQJcy}`nZuOntQZZT@Y??QtP%EmWqBjX4_(c;WZdU`reiDFMlP^|?M`{XB&R`KfT zKhfzIdXxRd@`tYDgc|i3?Ad|ef&?-oavf%CQEqvOi4QB>1Uoc>#(JiUd!5t`&FtoN~aq#HpeO| zhQI+u*ky*0uD-TrUs3&hvBl|H>ZC5XMF$QXU}GCV2YdciKwu!st=igJ^xJg+?|+qT@vIa6$6$ELZ*N+iu*F8MWM|3>7j0x)SUDu~ z)KIY8Ea5^<+5Ni+ro{`WZ|<31dRJf}v}(b~!RYV_nk<`!(*y7rA`N3$Cx2$>WF7alwL^?hKexvzHr@f1J3OJxf7 zlG#L0$^4JuqrIYK)y3C=uh|de+oxu3?>)P$A9r0PVZTk?meQ^$88U%Pc;_&}#=!6kNWjq0y;1c( zlviVHTDOIwXru;U9?)b(y1av%8y8H=T&~0!um^UwFUl~+#wj}wy|>x&=t)T`XV1Su zEB{t{?rM2DIrPNTRW)C2l}YeNcQ2ch>u#ajTtVqKgeQrubHRxgYWx#<+Pj*T>4w$< zsQ(J<=eg6FlygMpSk-j7XA3W15fi-#0>% zsnt5a#EL^rRklh|T!c>)jknsDHH4GCJc?^2x}grjLBQ@Y$G7*5@e|l&t$o;D1>U2` zz0j+Z6qOX{TiQs(0TC6lmhO-BNAAa8Xc_kGu3O*qpyw>di~k})%{(O0lC zE2bS1E5GtT_)PYS1oI`CHvB@r$;A~%Ln4V8fURHspM2B(zzQ}Q+IO&N6SMFCAJ6(;_85|6 zX|KEF|C`>bOF#(jf3N@j*neNc|Gtp_zJ~v;kpI4h|81H7zJ~udXGrtLX1}7}R&qfX RzS4fHqO8i_Su(f0{|~$1s=fdK literal 0 HcmV?d00001 From 43ba7bd338493787abc672e6f1017805838b77a3 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 12 Mar 2024 13:58:53 +0800 Subject: [PATCH 176/444] use new log package (#4054) --- client/admin_api.go | 38 ++++++------ client/connector.go | 6 +- client/control.go | 26 ++++----- client/health/health.go | 8 +-- client/proxy/proxy.go | 18 +++--- client/proxy/proxy_manager.go | 4 +- client/proxy/proxy_wrapper.go | 12 ++-- client/proxy/sudp.go | 22 +++---- client/proxy/udp.go | 20 +++---- client/proxy/xtcp.go | 34 +++++------ client/service.go | 14 ++--- client/visitor/stcp.go | 14 ++--- client/visitor/sudp.go | 32 +++++----- client/visitor/visitor_manager.go | 12 ++-- client/visitor/xtcp.go | 48 +++++++-------- cmd/frpc/sub/root.go | 6 +- cmd/frps/root.go | 8 +-- go.mod | 7 +-- go.sum | 18 +++--- pkg/metrics/mem/server.go | 4 +- pkg/nathole/controller.go | 22 +++---- pkg/nathole/nathole.go | 24 ++++---- pkg/plugin/server/manager.go | 12 ++-- pkg/ssh/gateway.go | 4 +- pkg/ssh/server.go | 6 +- pkg/util/log/log.go | 91 +++++++++++++---------------- pkg/util/vhost/http.go | 14 ++--- pkg/util/vhost/resource.go | 4 +- pkg/util/vhost/vhost.go | 16 ++--- pkg/util/xlog/xlog.go | 20 +++---- server/control.go | 34 +++++------ server/dashboard_api.go | 30 +++++----- server/proxy/http.go | 8 +-- server/proxy/https.go | 4 +- server/proxy/proxy.go | 26 ++++----- server/proxy/stcp.go | 2 +- server/proxy/sudp.go | 2 +- server/proxy/tcp.go | 4 +- server/proxy/tcpmux.go | 2 +- server/proxy/udp.go | 26 ++++----- server/proxy/xtcp.go | 2 +- server/service.go | 52 ++++++++--------- test/e2e/e2e.go | 2 +- test/e2e/e2e_test.go | 2 +- test/e2e/framework/process.go | 4 +- test/e2e/framework/request.go | 6 +- test/e2e/legacy/features/monitor.go | 2 +- test/e2e/legacy/features/real_ip.go | 8 +-- test/e2e/pkg/plugin/plugin.go | 4 +- test/e2e/v1/features/monitor.go | 2 +- test/e2e/v1/features/real_ip.go | 8 +-- 51 files changed, 389 insertions(+), 405 deletions(-) diff --git a/client/admin_api.go b/client/admin_api.go index e15fc4a4da5..ff889d52355 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -76,9 +76,9 @@ func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { strictConfigMode, _ = strconv.ParseBool(strictStr) } - log.Info("api request [/api/reload]") + log.Infof("api request [/api/reload]") defer func() { - log.Info("api response [/api/reload], code [%d]", res.Code) + log.Infof("api response [/api/reload], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -89,32 +89,32 @@ func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { if err != nil { res.Code = 400 res.Msg = err.Error() - log.Warn("reload frpc proxy config error: %s", res.Msg) + log.Warnf("reload frpc proxy config error: %s", res.Msg) return } if _, err := validation.ValidateAllClientConfig(cliCfg, proxyCfgs, visitorCfgs); err != nil { res.Code = 400 res.Msg = err.Error() - log.Warn("reload frpc proxy config error: %s", res.Msg) + log.Warnf("reload frpc proxy config error: %s", res.Msg) return } if err := svr.UpdateAllConfigurer(proxyCfgs, visitorCfgs); err != nil { res.Code = 500 res.Msg = err.Error() - log.Warn("reload frpc proxy config error: %s", res.Msg) + log.Warnf("reload frpc proxy config error: %s", res.Msg) return } - log.Info("success reload conf") + log.Infof("success reload conf") } // POST /api/stop func (svr *Service) apiStop(w http.ResponseWriter, _ *http.Request) { res := GeneralResponse{Code: 200} - log.Info("api request [/api/stop]") + log.Infof("api request [/api/stop]") defer func() { - log.Info("api response [/api/stop], code [%d]", res.Code) + log.Infof("api response [/api/stop], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -165,9 +165,9 @@ func (svr *Service) apiStatus(w http.ResponseWriter, _ *http.Request) { res StatusResp = make(map[string][]ProxyStatusResp) ) - log.Info("Http request [/api/status]") + log.Infof("Http request [/api/status]") defer func() { - log.Info("Http response [/api/status]") + log.Infof("Http response [/api/status]") buf, _ = json.Marshal(&res) _, _ = w.Write(buf) }() @@ -198,9 +198,9 @@ func (svr *Service) apiStatus(w http.ResponseWriter, _ *http.Request) { func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { res := GeneralResponse{Code: 200} - log.Info("Http get request [/api/config]") + log.Infof("Http get request [/api/config]") defer func() { - log.Info("Http get response [/api/config], code [%d]", res.Code) + log.Infof("Http get response [/api/config], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -210,7 +210,7 @@ func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { if svr.configFilePath == "" { res.Code = 400 res.Msg = "frpc has no config file path" - log.Warn("%s", res.Msg) + log.Warnf("%s", res.Msg) return } @@ -218,7 +218,7 @@ func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { if err != nil { res.Code = 400 res.Msg = err.Error() - log.Warn("load frpc config file error: %s", res.Msg) + log.Warnf("load frpc config file error: %s", res.Msg) return } res.Msg = string(content) @@ -228,9 +228,9 @@ func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} - log.Info("Http put request [/api/config]") + log.Infof("Http put request [/api/config]") defer func() { - log.Info("Http put response [/api/config], code [%d]", res.Code) + log.Infof("Http put response [/api/config], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -242,21 +242,21 @@ func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { if err != nil { res.Code = 400 res.Msg = fmt.Sprintf("read request body error: %v", err) - log.Warn("%s", res.Msg) + log.Warnf("%s", res.Msg) return } if len(body) == 0 { res.Code = 400 res.Msg = "body can't be empty" - log.Warn("%s", res.Msg) + log.Warnf("%s", res.Msg) return } if err := os.WriteFile(svr.configFilePath, body, 0o644); err != nil { res.Code = 500 res.Msg = fmt.Sprintf("write content to frpc config file error: %v", err) - log.Warn("%s", res.Msg) + log.Warnf("%s", res.Msg) return } } diff --git a/client/connector.go b/client/connector.go index 8c3cd1ec68d..184194a171f 100644 --- a/client/connector.go +++ b/client/connector.go @@ -84,7 +84,7 @@ func (c *defaultConnectorImpl) Open() error { tlsConfig, err = transport.NewClientTLSConfig("", "", "", sn) } if err != nil { - xl.Warn("fail to build tls configuration, err: %v", err) + xl.Warnf("fail to build tls configuration, err: %v", err) return err } tlsConfig.NextProtos = []string{"frp"} @@ -164,14 +164,14 @@ func (c *defaultConnectorImpl) realConnect() (net.Conn, error) { c.cfg.Transport.TLS.TrustedCaFile, sn) if err != nil { - xl.Warn("fail to build tls configuration, err: %v", err) + xl.Warnf("fail to build tls configuration, err: %v", err) return nil, err } } proxyType, addr, auth, err := libdial.ParseProxyURL(c.cfg.Transport.ProxyURL) if err != nil { - xl.Error("fail to parse proxy url") + xl.Errorf("fail to parse proxy url") return nil, err } dialOptions := []libdial.DialOption{} diff --git a/client/control.go b/client/control.go index b272ee06800..e1916890573 100644 --- a/client/control.go +++ b/client/control.go @@ -124,7 +124,7 @@ func (ctl *Control) handleReqWorkConn(_ msg.Message) { xl := ctl.xl workConn, err := ctl.connectServer() if err != nil { - xl.Warn("start new connection to server error: %v", err) + xl.Warnf("start new connection to server error: %v", err) return } @@ -132,24 +132,24 @@ func (ctl *Control) handleReqWorkConn(_ msg.Message) { RunID: ctl.sessionCtx.RunID, } if err = ctl.sessionCtx.AuthSetter.SetNewWorkConn(m); err != nil { - xl.Warn("error during NewWorkConn authentication: %v", err) + xl.Warnf("error during NewWorkConn authentication: %v", err) workConn.Close() return } if err = msg.WriteMsg(workConn, m); err != nil { - xl.Warn("work connection write to server error: %v", err) + xl.Warnf("work connection write to server error: %v", err) workConn.Close() return } var startMsg msg.StartWorkConn if err = msg.ReadMsgInto(workConn, &startMsg); err != nil { - xl.Trace("work connection closed before response StartWorkConn message: %v", err) + xl.Tracef("work connection closed before response StartWorkConn message: %v", err) workConn.Close() return } if startMsg.Error != "" { - xl.Error("StartWorkConn contains error: %s", startMsg.Error) + xl.Errorf("StartWorkConn contains error: %s", startMsg.Error) workConn.Close() return } @@ -165,9 +165,9 @@ func (ctl *Control) handleNewProxyResp(m msg.Message) { // Start a new proxy handler if no error got err := ctl.pm.StartProxy(inMsg.ProxyName, inMsg.RemoteAddr, inMsg.Error) if err != nil { - xl.Warn("[%s] start error: %v", inMsg.ProxyName, err) + xl.Warnf("[%s] start error: %v", inMsg.ProxyName, err) } else { - xl.Info("[%s] start proxy success", inMsg.ProxyName) + xl.Infof("[%s] start proxy success", inMsg.ProxyName) } } @@ -178,7 +178,7 @@ func (ctl *Control) handleNatHoleResp(m msg.Message) { // Dispatch the NatHoleResp message to the related proxy. ok := ctl.msgTransporter.DispatchWithType(inMsg, msg.TypeNameNatHoleResp, inMsg.TransactionID) if !ok { - xl.Trace("dispatch NatHoleResp message to related proxy error") + xl.Tracef("dispatch NatHoleResp message to related proxy error") } } @@ -187,12 +187,12 @@ func (ctl *Control) handlePong(m msg.Message) { inMsg := m.(*msg.Pong) if inMsg.Error != "" { - xl.Error("Pong message contains error: %s", inMsg.Error) + xl.Errorf("Pong message contains error: %s", inMsg.Error) ctl.closeSession() return } ctl.lastPong.Store(time.Now()) - xl.Debug("receive heartbeat from server") + xl.Debugf("receive heartbeat from server") } // closeSession closes the control connection. @@ -241,10 +241,10 @@ func (ctl *Control) heartbeatWorker() { if ctl.sessionCtx.Common.Transport.HeartbeatInterval > 0 { // send heartbeat to server sendHeartBeat := func() (bool, error) { - xl.Debug("send heartbeat to server") + xl.Debugf("send heartbeat to server") pingMsg := &msg.Ping{} if err := ctl.sessionCtx.AuthSetter.SetPing(pingMsg); err != nil { - xl.Warn("error during ping authentication: %v, skip sending ping message", err) + xl.Warnf("error during ping authentication: %v, skip sending ping message", err) return false, err } _ = ctl.msgDispatcher.Send(pingMsg) @@ -269,7 +269,7 @@ func (ctl *Control) heartbeatWorker() { go wait.Until(func() { if time.Since(ctl.lastPong.Load().(time.Time)) > time.Duration(ctl.sessionCtx.Common.Transport.HeartbeatTimeout)*time.Second { - xl.Warn("heartbeat timeout") + xl.Warnf("heartbeat timeout") ctl.closeSession() return } diff --git a/client/health/health.go b/client/health/health.go index 63eec721811..7147f779340 100644 --- a/client/health/health.go +++ b/client/health/health.go @@ -112,17 +112,17 @@ func (monitor *Monitor) checkWorker() { } if err == nil { - xl.Trace("do one health check success") + xl.Tracef("do one health check success") if !monitor.statusOK && monitor.statusNormalFn != nil { - xl.Info("health check status change to success") + xl.Infof("health check status change to success") monitor.statusOK = true monitor.statusNormalFn() } } else { - xl.Warn("do one health check failed: %v", err) + xl.Warnf("do one health check failed: %v", err) monitor.failedTimes++ if monitor.statusOK && int(monitor.failedTimes) >= monitor.maxFailedTimes && monitor.statusFailedFn != nil { - xl.Warn("health check status change to failed") + xl.Warnf("health check status change to failed") monitor.statusOK = false monitor.statusFailedFn() } diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 396539c0837..f806c8f9d7f 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -141,13 +141,13 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor }) } - xl.Trace("handle tcp work connection, useEncryption: %t, useCompression: %t", + xl.Tracef("handle tcp work connection, useEncryption: %t, useCompression: %t", baseCfg.Transport.UseEncryption, baseCfg.Transport.UseCompression) if baseCfg.Transport.UseEncryption { remote, err = libio.WithEncryption(remote, encKey) if err != nil { workConn.Close() - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return } } @@ -189,9 +189,9 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor if pxy.proxyPlugin != nil { // if plugin is set, let plugin handle connection first - xl.Debug("handle by plugin: %s", pxy.proxyPlugin.Name()) + xl.Debugf("handle by plugin: %s", pxy.proxyPlugin.Name()) pxy.proxyPlugin.Handle(remote, workConn, &extraInfo) - xl.Debug("handle by plugin finished") + xl.Debugf("handle by plugin finished") return } @@ -201,25 +201,25 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor ) if err != nil { workConn.Close() - xl.Error("connect to local service [%s:%d] error: %v", baseCfg.LocalIP, baseCfg.LocalPort, err) + xl.Errorf("connect to local service [%s:%d] error: %v", baseCfg.LocalIP, baseCfg.LocalPort, err) return } - xl.Debug("join connections, localConn(l[%s] r[%s]) workConn(l[%s] r[%s])", localConn.LocalAddr().String(), + xl.Debugf("join connections, localConn(l[%s] r[%s]) workConn(l[%s] r[%s])", localConn.LocalAddr().String(), localConn.RemoteAddr().String(), workConn.LocalAddr().String(), workConn.RemoteAddr().String()) if extraInfo.ProxyProtocolHeader != nil { if _, err := extraInfo.ProxyProtocolHeader.WriteTo(localConn); err != nil { workConn.Close() - xl.Error("write proxy protocol header to local conn error: %v", err) + xl.Errorf("write proxy protocol header to local conn error: %v", err) return } } _, _, errs := libio.Join(localConn, remote) - xl.Debug("join connections closed") + xl.Debugf("join connections closed") if len(errs) > 0 { - xl.Trace("join connections errors: %v", errs) + xl.Tracef("join connections errors: %v", errs) } if compressionResourceRecycleFn != nil { compressionResourceRecycleFn() diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index 12e2f6cfee8..95778ce0213 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -152,7 +152,7 @@ func (pm *Manager) UpdateAll(proxyCfgs []v1.ProxyConfigurer) { } } if len(delPxyNames) > 0 { - xl.Info("proxy removed: %s", delPxyNames) + xl.Infof("proxy removed: %s", delPxyNames) } addPxyNames := make([]string, 0) @@ -170,6 +170,6 @@ func (pm *Manager) UpdateAll(proxyCfgs []v1.ProxyConfigurer) { } } if len(addPxyNames) > 0 { - xl.Info("proxy added: %s", addPxyNames) + xl.Infof("proxy added: %s", addPxyNames) } } diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index 84f24abb668..487e3702b9e 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -114,7 +114,7 @@ func NewWrapper( addr := net.JoinHostPort(baseInfo.LocalIP, strconv.Itoa(baseInfo.LocalPort)) pw.monitor = health.NewMonitor(pw.ctx, baseInfo.HealthCheck, addr, pw.statusNormalCallback, pw.statusFailedCallback) - xl.Trace("enable health check monitor") + xl.Tracef("enable health check monitor") } pw.pxy = NewProxy(pw.ctx, pw.Cfg, clientCfg, pw.msgTransporter) @@ -197,7 +197,7 @@ func (pw *Wrapper) checkWorker() { (pw.Phase == ProxyPhaseWaitStart && now.After(pw.lastSendStartMsg.Add(waitResponseTimeout))) || (pw.Phase == ProxyPhaseStartErr && now.After(pw.lastStartErr.Add(startErrTimeout))) { - xl.Trace("change status from [%s] to [%s]", pw.Phase, ProxyPhaseWaitStart) + xl.Tracef("change status from [%s] to [%s]", pw.Phase, ProxyPhaseWaitStart) pw.Phase = ProxyPhaseWaitStart var newProxyMsg msg.NewProxy @@ -212,7 +212,7 @@ func (pw *Wrapper) checkWorker() { pw.mu.Lock() if pw.Phase == ProxyPhaseRunning || pw.Phase == ProxyPhaseWaitStart { pw.close() - xl.Trace("change status from [%s] to [%s]", pw.Phase, ProxyPhaseCheckFailed) + xl.Tracef("change status from [%s] to [%s]", pw.Phase, ProxyPhaseCheckFailed) pw.Phase = ProxyPhaseCheckFailed } pw.mu.Unlock() @@ -236,7 +236,7 @@ func (pw *Wrapper) statusNormalCallback() { default: } }) - xl.Info("health check success") + xl.Infof("health check success") } func (pw *Wrapper) statusFailedCallback() { @@ -248,7 +248,7 @@ func (pw *Wrapper) statusFailedCallback() { default: } }) - xl.Info("health check failed") + xl.Infof("health check failed") } func (pw *Wrapper) InWorkConn(workConn net.Conn, m *msg.StartWorkConn) { @@ -257,7 +257,7 @@ func (pw *Wrapper) InWorkConn(workConn net.Conn, m *msg.StartWorkConn) { pxy := pw.pxy pw.mu.RUnlock() if pxy != nil && pw.Phase == ProxyPhaseRunning { - xl.Debug("start a new work connection, localAddr: %s remoteAddr: %s", workConn.LocalAddr().String(), workConn.RemoteAddr().String()) + xl.Debugf("start a new work connection, localAddr: %s remoteAddr: %s", workConn.LocalAddr().String(), workConn.RemoteAddr().String()) go pxy.InWorkConn(workConn, m) } else { workConn.Close() diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index 4d06170dc90..ad9db89a940 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -81,7 +81,7 @@ func (pxy *SUDPProxy) Close() { func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { xl := pxy.xl - xl.Info("incoming a new work connection for sudp proxy, %s", conn.RemoteAddr().String()) + xl.Infof("incoming a new work connection for sudp proxy, %s", conn.RemoteAddr().String()) var rwc io.ReadWriteCloser = conn var err error @@ -94,7 +94,7 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Auth.Token)) if err != nil { conn.Close() - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return } } @@ -133,21 +133,21 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { // first to check sudp proxy is closed or not select { case <-pxy.closeCh: - xl.Trace("frpc sudp proxy is closed") + xl.Tracef("frpc sudp proxy is closed") return default: } var udpMsg msg.UDPPacket if errRet := msg.ReadMsgInto(conn, &udpMsg); errRet != nil { - xl.Warn("read from workConn for sudp error: %v", errRet) + xl.Warnf("read from workConn for sudp error: %v", errRet) return } if errRet := errors.PanicToError(func() { readCh <- &udpMsg }); errRet != nil { - xl.Warn("reader goroutine for sudp work connection closed: %v", errRet) + xl.Warnf("reader goroutine for sudp work connection closed: %v", errRet) return } } @@ -157,21 +157,21 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { workConnSenderFn := func(conn net.Conn, sendCh chan msg.Message) { defer func() { closeFn() - xl.Info("writer goroutine for sudp work connection closed") + xl.Infof("writer goroutine for sudp work connection closed") }() var errRet error for rawMsg := range sendCh { switch m := rawMsg.(type) { case *msg.UDPPacket: - xl.Trace("frpc send udp package to frpc visitor, [udp local: %v, remote: %v], [tcp work conn local: %v, remote: %v]", + xl.Tracef("frpc send udp package to frpc visitor, [udp local: %v, remote: %v], [tcp work conn local: %v, remote: %v]", m.LocalAddr.String(), m.RemoteAddr.String(), conn.LocalAddr().String(), conn.RemoteAddr().String()) case *msg.Ping: - xl.Trace("frpc send ping message to frpc visitor") + xl.Tracef("frpc send ping message to frpc visitor") } if errRet = msg.WriteMsg(conn, rawMsg); errRet != nil { - xl.Error("sudp work write error: %v", errRet) + xl.Errorf("sudp work write error: %v", errRet) return } } @@ -191,11 +191,11 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { if errRet = errors.PanicToError(func() { sendCh <- &msg.Ping{} }); errRet != nil { - xl.Warn("heartbeat goroutine for sudp work connection closed") + xl.Warnf("heartbeat goroutine for sudp work connection closed") return } case <-pxy.closeCh: - xl.Trace("frpc sudp proxy is closed") + xl.Tracef("frpc sudp proxy is closed") return } } diff --git a/client/proxy/udp.go b/client/proxy/udp.go index 38d14ff598b..b08fe1608ad 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -90,7 +90,7 @@ func (pxy *UDPProxy) Close() { func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { xl := pxy.xl - xl.Info("incoming a new work connection for udp proxy, %s", conn.RemoteAddr().String()) + xl.Infof("incoming a new work connection for udp proxy, %s", conn.RemoteAddr().String()) // close resources related with old workConn pxy.Close() @@ -105,7 +105,7 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Auth.Token)) if err != nil { conn.Close() - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return } } @@ -125,32 +125,32 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { for { var udpMsg msg.UDPPacket if errRet := msg.ReadMsgInto(conn, &udpMsg); errRet != nil { - xl.Warn("read from workConn for udp error: %v", errRet) + xl.Warnf("read from workConn for udp error: %v", errRet) return } if errRet := errors.PanicToError(func() { - xl.Trace("get udp package from workConn: %s", udpMsg.Content) + xl.Tracef("get udp package from workConn: %s", udpMsg.Content) readCh <- &udpMsg }); errRet != nil { - xl.Info("reader goroutine for udp work connection closed: %v", errRet) + xl.Infof("reader goroutine for udp work connection closed: %v", errRet) return } } } workConnSenderFn := func(conn net.Conn, sendCh chan msg.Message) { defer func() { - xl.Info("writer goroutine for udp work connection closed") + xl.Infof("writer goroutine for udp work connection closed") }() var errRet error for rawMsg := range sendCh { switch m := rawMsg.(type) { case *msg.UDPPacket: - xl.Trace("send udp package to workConn: %s", m.Content) + xl.Tracef("send udp package to workConn: %s", m.Content) case *msg.Ping: - xl.Trace("send ping message to udp workConn") + xl.Tracef("send ping message to udp workConn") } if errRet = msg.WriteMsg(conn, rawMsg); errRet != nil { - xl.Error("udp work write error: %v", errRet) + xl.Errorf("udp work write error: %v", errRet) return } } @@ -162,7 +162,7 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { if errRet = errors.PanicToError(func() { sendCh <- &msg.Ping{} }); errRet != nil { - xl.Trace("heartbeat goroutine for udp work connection closed") + xl.Tracef("heartbeat goroutine for udp work connection closed") break } } diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index e5e5d47e280..31f9ac89734 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -59,17 +59,17 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC var natHoleSidMsg msg.NatHoleSid err := msg.ReadMsgInto(conn, &natHoleSidMsg) if err != nil { - xl.Error("xtcp read from workConn error: %v", err) + xl.Errorf("xtcp read from workConn error: %v", err) return } - xl.Trace("nathole prepare start") + xl.Tracef("nathole prepare start") prepareResult, err := nathole.Prepare([]string{pxy.clientCfg.NatHoleSTUNServer}) if err != nil { - xl.Warn("nathole prepare error: %v", err) + xl.Warnf("nathole prepare error: %v", err) return } - xl.Info("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", + xl.Infof("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", prepareResult.NatType, prepareResult.Behavior, prepareResult.Addrs, prepareResult.AssistedAddrs) defer prepareResult.ListenConn.Close() @@ -83,14 +83,14 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC AssistedAddrs: prepareResult.AssistedAddrs, } - xl.Trace("nathole exchange info start") + xl.Tracef("nathole exchange info start") natHoleRespMsg, err := nathole.ExchangeInfo(pxy.ctx, pxy.msgTransporter, transactionID, natHoleClientMsg, 5*time.Second) if err != nil { - xl.Warn("nathole exchange info error: %v", err) + xl.Warnf("nathole exchange info error: %v", err) return } - xl.Info("get natHoleRespMsg, sid [%s], protocol [%s], candidate address %v, assisted address %v, detectBehavior: %+v", + xl.Infof("get natHoleRespMsg, sid [%s], protocol [%s], candidate address %v, assisted address %v, detectBehavior: %+v", natHoleRespMsg.Sid, natHoleRespMsg.Protocol, natHoleRespMsg.CandidateAddrs, natHoleRespMsg.AssistedAddrs, natHoleRespMsg.DetectBehavior) @@ -98,7 +98,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC newListenConn, raddr, err := nathole.MakeHole(pxy.ctx, listenConn, natHoleRespMsg, []byte(pxy.cfg.Secretkey)) if err != nil { listenConn.Close() - xl.Warn("make hole error: %v", err) + xl.Warnf("make hole error: %v", err) _ = pxy.msgTransporter.Send(&msg.NatHoleReport{ Sid: natHoleRespMsg.Sid, Success: false, @@ -106,7 +106,7 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC return } listenConn = newListenConn - xl.Info("establishing nat hole connection successful, sid [%s], remoteAddr [%s]", natHoleRespMsg.Sid, raddr) + xl.Infof("establishing nat hole connection successful, sid [%s], remoteAddr [%s]", natHoleRespMsg.Sid, raddr) _ = pxy.msgTransporter.Send(&msg.NatHoleReport{ Sid: natHoleRespMsg.Sid, @@ -128,14 +128,14 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s laddr, _ := net.ResolveUDPAddr("udp", listenConn.LocalAddr().String()) lConn, err := net.DialUDP("udp", laddr, raddr) if err != nil { - xl.Warn("dial udp error: %v", err) + xl.Warnf("dial udp error: %v", err) return } defer lConn.Close() remote, err := netpkg.NewKCPConnFromUDP(lConn, true, raddr.String()) if err != nil { - xl.Warn("create kcp connection from udp connection error: %v", err) + xl.Warnf("create kcp connection from udp connection error: %v", err) return } @@ -145,7 +145,7 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s fmuxCfg.LogOutput = io.Discard session, err := fmux.Server(remote, fmuxCfg) if err != nil { - xl.Error("create mux session error: %v", err) + xl.Errorf("create mux session error: %v", err) return } defer session.Close() @@ -153,7 +153,7 @@ func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.UDPAddr, s for { muxConn, err := session.Accept() if err != nil { - xl.Error("accept connection error: %v", err) + xl.Errorf("accept connection error: %v", err) return } go pxy.HandleTCPWorkConnection(muxConn, startWorkConnMsg, []byte(pxy.cfg.Secretkey)) @@ -166,7 +166,7 @@ func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, star tlsConfig, err := transport.NewServerTLSConfig("", "", "") if err != nil { - xl.Warn("create tls config error: %v", err) + xl.Warnf("create tls config error: %v", err) return } tlsConfig.NextProtos = []string{"frp"} @@ -178,19 +178,19 @@ func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDPAddr, star }, ) if err != nil { - xl.Warn("dial quic error: %v", err) + xl.Warnf("dial quic error: %v", err) return } // only accept one connection from raddr c, err := quicListener.Accept(pxy.ctx) if err != nil { - xl.Error("quic accept connection error: %v", err) + xl.Errorf("quic accept connection error: %v", err) return } for { stream, err := c.AcceptStream(pxy.ctx) if err != nil { - xl.Debug("quic accept stream error: %v", err) + xl.Debugf("quic accept stream error: %v", err) _ = c.CloseWithError(0, "") return } diff --git a/client/service.go b/client/service.go index 3d1a21b0e04..25e108fc8b6 100644 --- a/client/service.go +++ b/client/service.go @@ -174,9 +174,9 @@ func (svr *Service) Run(ctx context.Context) error { if svr.webServer != nil { go func() { - log.Info("admin server listen on %s", svr.webServer.Address()) + log.Infof("admin server listen on %s", svr.webServer.Address()) if err := svr.webServer.Run(); err != nil { - log.Warn("admin server exit with error: %v", err) + log.Warnf("admin server exit with error: %v", err) } }() } @@ -269,14 +269,14 @@ func (svr *Service) login() (conn net.Conn, connector Connector, err error) { if loginRespMsg.Error != "" { err = fmt.Errorf("%s", loginRespMsg.Error) - xl.Error("%s", loginRespMsg.Error) + xl.Errorf("%s", loginRespMsg.Error) return } svr.runID = loginRespMsg.RunID xl.AddPrefix(xlog.LogPrefix{Name: "runID", Value: svr.runID}) - xl.Info("login to server success, get run id [%s]", loginRespMsg.RunID) + xl.Infof("login to server success, get run id [%s]", loginRespMsg.RunID) return } @@ -284,10 +284,10 @@ func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, firstLoginE xl := xlog.FromContextSafe(svr.ctx) loginFunc := func() (bool, error) { - xl.Info("try to connect to server...") + xl.Infof("try to connect to server...") conn, connector, err := svr.login() if err != nil { - xl.Warn("connect to server error: %v", err) + xl.Warnf("connect to server error: %v", err) if firstLoginExit { svr.cancel(cancelErr{Err: err}) } @@ -313,7 +313,7 @@ func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, firstLoginE ctl, err := NewControl(svr.ctx, sessionCtx) if err != nil { conn.Close() - xl.Error("NewControl error: %v", err) + xl.Errorf("NewControl error: %v", err) return false, err } ctl.SetInWorkConnCallback(svr.handleWorkConnCb) diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 58433879492..b26faf5200c 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -56,7 +56,7 @@ func (sv *STCPVisitor) worker() { for { conn, err := sv.l.Accept() if err != nil { - xl.Warn("stcp local listener closed") + xl.Warnf("stcp local listener closed") return } go sv.handleConn(conn) @@ -68,7 +68,7 @@ func (sv *STCPVisitor) internalConnWorker() { for { conn, err := sv.internalLn.Accept() if err != nil { - xl.Warn("stcp internal listener closed") + xl.Warnf("stcp internal listener closed") return } go sv.handleConn(conn) @@ -79,7 +79,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { xl := xlog.FromContextSafe(sv.ctx) defer userConn.Close() - xl.Debug("get a new stcp user connection") + xl.Debugf("get a new stcp user connection") visitorConn, err := sv.helper.ConnectServer() if err != nil { return @@ -97,7 +97,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { } err = msg.WriteMsg(visitorConn, newVisitorConnMsg) if err != nil { - xl.Warn("send newVisitorConnMsg to server error: %v", err) + xl.Warnf("send newVisitorConnMsg to server error: %v", err) return } @@ -105,13 +105,13 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { _ = visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) if err != nil { - xl.Warn("get newVisitorConnRespMsg error: %v", err) + xl.Warnf("get newVisitorConnRespMsg error: %v", err) return } _ = visitorConn.SetReadDeadline(time.Time{}) if newVisitorConnRespMsg.Error != "" { - xl.Warn("start new visitor connection error: %s", newVisitorConnRespMsg.Error) + xl.Warnf("start new visitor connection error: %s", newVisitorConnRespMsg.Error) return } @@ -120,7 +120,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { if sv.cfg.Transport.UseEncryption { remote, err = libio.WithEncryption(remote, []byte(sv.cfg.SecretKey)) if err != nil { - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return } } diff --git a/client/visitor/sudp.go b/client/visitor/sudp.go index 1d489bec42b..284aee10915 100644 --- a/client/visitor/sudp.go +++ b/client/visitor/sudp.go @@ -62,7 +62,7 @@ func (sv *SUDPVisitor) Run() (err error) { sv.sendCh = make(chan *msg.UDPPacket, 1024) sv.readCh = make(chan *msg.UDPPacket, 1024) - xl.Info("sudp start to work, listen on %s", addr) + xl.Infof("sudp start to work, listen on %s", addr) go sv.dispatcher() go udp.ForwardUserConn(sv.udpConn, sv.readCh, sv.sendCh, int(sv.clientCfg.UDPPacketSize)) @@ -84,17 +84,17 @@ func (sv *SUDPVisitor) dispatcher() { select { case firstPacket = <-sv.sendCh: if firstPacket == nil { - xl.Info("frpc sudp visitor proxy is closed") + xl.Infof("frpc sudp visitor proxy is closed") return } case <-sv.checkCloseCh: - xl.Info("frpc sudp visitor proxy is closed") + xl.Infof("frpc sudp visitor proxy is closed") return } visitorConn, err = sv.getNewVisitorConn() if err != nil { - xl.Warn("newVisitorConn to frps error: %v, try to reconnect", err) + xl.Warnf("newVisitorConn to frps error: %v, try to reconnect", err) continue } @@ -111,7 +111,7 @@ func (sv *SUDPVisitor) dispatcher() { func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { xl := xlog.FromContextSafe(sv.ctx) - xl.Debug("starting sudp proxy worker") + xl.Debugf("starting sudp proxy worker") wg := &sync.WaitGroup{} wg.Add(2) @@ -134,21 +134,21 @@ func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { // frpc will send heartbeat in workConn to frpc visitor for keeping alive _ = conn.SetReadDeadline(time.Now().Add(60 * time.Second)) if rawMsg, errRet = msg.ReadMsg(conn); errRet != nil { - xl.Warn("read from workconn for user udp conn error: %v", errRet) + xl.Warnf("read from workconn for user udp conn error: %v", errRet) return } _ = conn.SetReadDeadline(time.Time{}) switch m := rawMsg.(type) { case *msg.Ping: - xl.Debug("frpc visitor get ping message from frpc") + xl.Debugf("frpc visitor get ping message from frpc") continue case *msg.UDPPacket: if errRet := errors.PanicToError(func() { sv.readCh <- m - xl.Trace("frpc visitor get udp packet from workConn: %s", m.Content) + xl.Tracef("frpc visitor get udp packet from workConn: %s", m.Content) }); errRet != nil { - xl.Info("reader goroutine for udp work connection closed") + xl.Infof("reader goroutine for udp work connection closed") return } } @@ -165,25 +165,25 @@ func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { var errRet error if firstPacket != nil { if errRet = msg.WriteMsg(conn, firstPacket); errRet != nil { - xl.Warn("sender goroutine for udp work connection closed: %v", errRet) + xl.Warnf("sender goroutine for udp work connection closed: %v", errRet) return } - xl.Trace("send udp package to workConn: %s", firstPacket.Content) + xl.Tracef("send udp package to workConn: %s", firstPacket.Content) } for { select { case udpMsg, ok := <-sv.sendCh: if !ok { - xl.Info("sender goroutine for udp work connection closed") + xl.Infof("sender goroutine for udp work connection closed") return } if errRet = msg.WriteMsg(conn, udpMsg); errRet != nil { - xl.Warn("sender goroutine for udp work connection closed: %v", errRet) + xl.Warnf("sender goroutine for udp work connection closed: %v", errRet) return } - xl.Trace("send udp package to workConn: %s", udpMsg.Content) + xl.Tracef("send udp package to workConn: %s", udpMsg.Content) case <-closeCh: return } @@ -194,7 +194,7 @@ func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPPacket) { go workConnSenderFn(workConn) wg.Wait() - xl.Info("sudp worker is closed") + xl.Infof("sudp worker is closed") } func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { @@ -235,7 +235,7 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) { if sv.cfg.Transport.UseEncryption { remote, err = libio.WithEncryption(remote, []byte(sv.cfg.SecretKey)) if err != nil { - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return nil, err } } diff --git a/client/visitor/visitor_manager.go b/client/visitor/visitor_manager.go index 4f31f2706ed..6ff65dabae0 100644 --- a/client/visitor/visitor_manager.go +++ b/client/visitor/visitor_manager.go @@ -79,14 +79,14 @@ func (vm *Manager) keepVisitorsRunning() { for { select { case <-vm.stopCh: - xl.Trace("gracefully shutdown visitor manager") + xl.Tracef("gracefully shutdown visitor manager") return case <-ticker.C: vm.mu.Lock() for _, cfg := range vm.cfgs { name := cfg.GetBaseConfig().Name if _, exist := vm.visitors[name]; !exist { - xl.Info("try to start visitor [%s]", name) + xl.Infof("try to start visitor [%s]", name) _ = vm.startVisitor(cfg) } } @@ -115,10 +115,10 @@ func (vm *Manager) startVisitor(cfg v1.VisitorConfigurer) (err error) { visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.helper) err = visitor.Run() if err != nil { - xl.Warn("start error: %v", err) + xl.Warnf("start error: %v", err) } else { vm.visitors[name] = visitor - xl.Info("start visitor success") + xl.Infof("start visitor success") } return } @@ -156,7 +156,7 @@ func (vm *Manager) UpdateAll(cfgs []v1.VisitorConfigurer) { } } if len(delNames) > 0 { - xl.Info("visitor removed: %v", delNames) + xl.Infof("visitor removed: %v", delNames) } addNames := make([]string, 0) @@ -169,7 +169,7 @@ func (vm *Manager) UpdateAll(cfgs []v1.VisitorConfigurer) { } } if len(addNames) > 0 { - xl.Info("visitor added: %v", addNames) + xl.Infof("visitor added: %v", addNames) } } diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index ad773503e03..a1efd72b62b 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -93,7 +93,7 @@ func (sv *XTCPVisitor) worker() { for { conn, err := sv.l.Accept() if err != nil { - xl.Warn("xtcp local listener closed") + xl.Warnf("xtcp local listener closed") return } go sv.handleConn(conn) @@ -105,7 +105,7 @@ func (sv *XTCPVisitor) internalConnWorker() { for { conn, err := sv.internalLn.Accept() if err != nil { - xl.Warn("xtcp internal listener closed") + xl.Warnf("xtcp internal listener closed") return } go sv.handleConn(conn) @@ -140,14 +140,14 @@ func (sv *XTCPVisitor) keepTunnelOpenWorker() { case <-sv.ctx.Done(): return case <-ticker.C: - xl.Debug("keepTunnelOpenWorker try to check tunnel...") + xl.Debugf("keepTunnelOpenWorker try to check tunnel...") conn, err := sv.getTunnelConn() if err != nil { - xl.Warn("keepTunnelOpenWorker get tunnel connection error: %v", err) + xl.Warnf("keepTunnelOpenWorker get tunnel connection error: %v", err) _ = sv.retryLimiter.Wait(sv.ctx) continue } - xl.Debug("keepTunnelOpenWorker check success") + xl.Debugf("keepTunnelOpenWorker check success") if conn != nil { conn.Close() } @@ -164,7 +164,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } }() - xl.Debug("get a new xtcp user connection") + xl.Debugf("get a new xtcp user connection") // Open a tunnel connection to the server. If there is already a successful hole-punching connection, // it will be reused. Otherwise, it will block and wait for a successful hole-punching connection until timeout. @@ -176,15 +176,15 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } tunnelConn, err := sv.openTunnel(ctx) if err != nil { - xl.Error("open tunnel error: %v", err) + xl.Errorf("open tunnel error: %v", err) // no fallback, just return if sv.cfg.FallbackTo == "" { return } - xl.Debug("try to transfer connection to visitor: %s", sv.cfg.FallbackTo) + xl.Debugf("try to transfer connection to visitor: %s", sv.cfg.FallbackTo) if err := sv.helper.TransferConn(sv.cfg.FallbackTo, userConn); err != nil { - xl.Error("transfer connection to visitor %s error: %v", sv.cfg.FallbackTo, err) + xl.Errorf("transfer connection to visitor %s error: %v", sv.cfg.FallbackTo, err) return } isConnTrasfered = true @@ -195,7 +195,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { if sv.cfg.Transport.UseEncryption { muxConnRWCloser, err = libio.WithEncryption(muxConnRWCloser, []byte(sv.cfg.SecretKey)) if err != nil { - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return } } @@ -206,9 +206,9 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { } _, _, errs := libio.Join(userConn, muxConnRWCloser) - xl.Debug("join connections closed") + xl.Debugf("join connections closed") if len(errs) > 0 { - xl.Trace("join connections errors: %v", errs) + xl.Tracef("join connections errors: %v", errs) } } @@ -239,7 +239,7 @@ func (sv *XTCPVisitor) openTunnel(ctx context.Context) (conn net.Conn, err error if err != nil { if err != ErrNoTunnelSession { - xl.Warn("get tunnel connection error: %v", err) + xl.Warnf("get tunnel connection error: %v", err) } continue } @@ -268,19 +268,19 @@ func (sv *XTCPVisitor) getTunnelConn() (net.Conn, error) { // 4. Create a tunnel session using an underlying UDP connection. func (sv *XTCPVisitor) makeNatHole() { xl := xlog.FromContextSafe(sv.ctx) - xl.Trace("makeNatHole start") + xl.Tracef("makeNatHole start") if err := nathole.PreCheck(sv.ctx, sv.helper.MsgTransporter(), sv.cfg.ServerName, 5*time.Second); err != nil { - xl.Warn("nathole precheck error: %v", err) + xl.Warnf("nathole precheck error: %v", err) return } - xl.Trace("nathole prepare start") + xl.Tracef("nathole prepare start") prepareResult, err := nathole.Prepare([]string{sv.clientCfg.NatHoleSTUNServer}) if err != nil { - xl.Warn("nathole prepare error: %v", err) + xl.Warnf("nathole prepare error: %v", err) return } - xl.Info("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", + xl.Infof("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", prepareResult.NatType, prepareResult.Behavior, prepareResult.Addrs, prepareResult.AssistedAddrs) listenConn := prepareResult.ListenConn @@ -298,30 +298,30 @@ func (sv *XTCPVisitor) makeNatHole() { AssistedAddrs: prepareResult.AssistedAddrs, } - xl.Trace("nathole exchange info start") + xl.Tracef("nathole exchange info start") natHoleRespMsg, err := nathole.ExchangeInfo(sv.ctx, sv.helper.MsgTransporter(), transactionID, natHoleVisitorMsg, 5*time.Second) if err != nil { listenConn.Close() - xl.Warn("nathole exchange info error: %v", err) + xl.Warnf("nathole exchange info error: %v", err) return } - xl.Info("get natHoleRespMsg, sid [%s], protocol [%s], candidate address %v, assisted address %v, detectBehavior: %+v", + xl.Infof("get natHoleRespMsg, sid [%s], protocol [%s], candidate address %v, assisted address %v, detectBehavior: %+v", natHoleRespMsg.Sid, natHoleRespMsg.Protocol, natHoleRespMsg.CandidateAddrs, natHoleRespMsg.AssistedAddrs, natHoleRespMsg.DetectBehavior) newListenConn, raddr, err := nathole.MakeHole(sv.ctx, listenConn, natHoleRespMsg, []byte(sv.cfg.SecretKey)) if err != nil { listenConn.Close() - xl.Warn("make hole error: %v", err) + xl.Warnf("make hole error: %v", err) return } listenConn = newListenConn - xl.Info("establishing nat hole connection successful, sid [%s], remoteAddr [%s]", natHoleRespMsg.Sid, raddr) + xl.Infof("establishing nat hole connection successful, sid [%s], remoteAddr [%s]", natHoleRespMsg.Sid, raddr) if err := sv.session.Init(listenConn, raddr); err != nil { listenConn.Close() - xl.Warn("init tunnel session error: %v", err) + xl.Warnf("init tunnel session error: %v", err) return } } diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 64cac22fff7..a496d077a2f 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -136,11 +136,11 @@ func startService( visitorCfgs []v1.VisitorConfigurer, cfgFile string, ) error { - log.InitLog(cfg.Log.To, cfg.Log.Level, cfg.Log.MaxDays, cfg.Log.DisablePrintColor) + log.InitLogger(cfg.Log.To, cfg.Log.Level, int(cfg.Log.MaxDays), cfg.Log.DisablePrintColor) if cfgFile != "" { - log.Info("start frpc service for config file [%s]", cfgFile) - defer log.Info("frpc service for config file [%s] stopped", cfgFile) + log.Infof("start frpc service for config file [%s]", cfgFile) + defer log.Infof("frpc service for config file [%s] stopped", cfgFile) } svr, err := client.NewService(client.ServiceOptions{ Common: cfg, diff --git a/cmd/frps/root.go b/cmd/frps/root.go index cc083518df1..d69df5f5da8 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -99,19 +99,19 @@ func Execute() { } func runServer(cfg *v1.ServerConfig) (err error) { - log.InitLog(cfg.Log.To, cfg.Log.Level, cfg.Log.MaxDays, cfg.Log.DisablePrintColor) + log.InitLogger(cfg.Log.To, cfg.Log.Level, int(cfg.Log.MaxDays), cfg.Log.DisablePrintColor) if cfgFile != "" { - log.Info("frps uses config file: %s", cfgFile) + log.Infof("frps uses config file: %s", cfgFile) } else { - log.Info("frps uses command line arguments for config") + log.Infof("frps uses command line arguments for config") } svr, err := server.NewService(cfg) if err != nil { return err } - log.Info("frps started successfully") + log.Infof("frps started successfully") svr.Run(context.Background()) return } diff --git a/go.mod b/go.mod index f35dcfeefff..3d82efe4820 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,7 @@ go 1.22 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.6.0 - github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.3.0 + github.com/fatedier/golib v0.4.0 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 @@ -25,7 +24,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/tidwall/gjson v1.17.1 github.com/xtaci/kcp-go/v5 v5.6.7 - golang.org/x/crypto v0.17.0 + golang.org/x/crypto v0.18.0 golang.org/x/net v0.19.0 golang.org/x/oauth2 v0.10.0 golang.org/x/sync v0.3.0 @@ -70,7 +69,7 @@ require ( go.uber.org/mock v0.3.0 // indirect golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect golang.org/x/mod v0.11.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.9.3 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index 2112c7120c7..474da7b48b9 100644 --- a/go.sum +++ b/go.sum @@ -24,10 +24,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= -github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.3.0 h1:xX0QQoYD1ns3IHVDTSysg6gL8buZvGaLyQFvBnWIRF4= -github.com/fatedier/golib v0.3.0/go.mod h1:pmX4FYyp6N4awxDB6jAgIDVOUWuH+QkVP4v30O+iJDM= +github.com/fatedier/golib v0.4.0 h1:lafvYRMhFmqrfIUChKy/f5AXqs1eDSk+GAUtLexN5bU= +github.com/fatedier/golib v0.4.0/go.mod h1:gpu+1vXxtJ072NYaNsn/YWgojDL8Ap2kFZQtbzT2qkg= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= @@ -164,8 +162,8 @@ golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= @@ -216,16 +214,16 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/pkg/metrics/mem/server.go b/pkg/metrics/mem/server.go index 4f08001b1c4..d92546c4c58 100644 --- a/pkg/metrics/mem/server.go +++ b/pkg/metrics/mem/server.go @@ -62,7 +62,7 @@ func (m *serverMetrics) run() { time.Sleep(12 * time.Hour) start := time.Now() count, total := m.clearUselessInfo(time.Duration(7*24) * time.Hour) - log.Debug("clear useless proxy statistics data count %d/%d, cost %v", count, total, time.Since(start)) + log.Debugf("clear useless proxy statistics data count %d/%d, cost %v", count, total, time.Since(start)) } }() } @@ -80,7 +80,7 @@ func (m *serverMetrics) clearUselessInfo(continuousOfflineDuration time.Duration time.Since(data.LastCloseTime) > continuousOfflineDuration { delete(m.info.ProxyStatistics, name) count++ - log.Trace("clear proxy [%s]'s statistics data, lastCloseTime: [%s]", name, data.LastCloseTime.String()) + log.Tracef("clear proxy [%s]'s statistics data, lastCloseTime: [%s]", name, data.LastCloseTime.String()) } } return count, total diff --git a/pkg/nathole/controller.go b/pkg/nathole/controller.go index 9c558326566..2eca5929455 100644 --- a/pkg/nathole/controller.go +++ b/pkg/nathole/controller.go @@ -115,7 +115,7 @@ func (c *Controller) CleanWorker(ctx context.Context) { case <-ticker.C: start := time.Now() count, total := c.analyzer.Clean() - log.Trace("clean %d/%d nathole analysis data, cost %v", count, total, time.Since(start)) + log.Tracef("clean %d/%d nathole analysis data, cost %v", count, total, time.Since(start)) case <-ctx.Done(): return } @@ -191,11 +191,11 @@ func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport. return nil }() if err != nil { - log.Warn("handle visitorMsg error: %v", err) + log.Warnf("handle visitorMsg error: %v", err) _ = transporter.Send(c.GenNatHoleResponse(m.TransactionID, nil, err.Error())) return } - log.Trace("handle visitor message, sid [%s], server name: %s", sid, m.ProxyName) + log.Tracef("handle visitor message, sid [%s], server name: %s", sid, m.ProxyName) defer func() { c.mu.Lock() @@ -213,14 +213,14 @@ func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter transport. select { case <-session.notifyCh: case <-time.After(time.Duration(NatHoleTimeout) * time.Second): - log.Debug("wait for NatHoleClient message timeout, sid [%s]", sid) + log.Debugf("wait for NatHoleClient message timeout, sid [%s]", sid) return } // Make hole-punching decisions based on the NAT information of the client and visitor. vResp, cResp, err := c.analysis(session) if err != nil { - log.Debug("sid [%s] analysis error: %v", err) + log.Debugf("sid [%s] analysis error: %v", err) vResp = c.GenNatHoleResponse(session.visitorMsg.TransactionID, nil, err.Error()) cResp = c.GenNatHoleResponse(session.clientMsg.TransactionID, nil, err.Error()) } @@ -257,7 +257,7 @@ func (c *Controller) HandleClient(m *msg.NatHoleClient, transporter transport.Me if !ok { return } - log.Trace("handle client message, sid [%s], server name: %s", session.sid, m.ProxyName) + log.Tracef("handle client message, sid [%s], server name: %s", session.sid, m.ProxyName) session.clientMsg = m session.clientTransporter = transporter select { @@ -271,13 +271,13 @@ func (c *Controller) HandleReport(m *msg.NatHoleReport) { session, ok := c.sessions[m.Sid] c.mu.RUnlock() if !ok { - log.Trace("sid [%s] report make hole success: %v, but session not found", m.Sid, m.Success) + log.Tracef("sid [%s] report make hole success: %v, but session not found", m.Sid, m.Success) return } if m.Success { c.analyzer.ReportSuccess(session.analysisKey, session.recommandMode, session.recommandIndex) } - log.Info("sid [%s] report make hole success: %v, mode %v, index %v", + log.Infof("sid [%s] report make hole success: %v, mode %v, index %v", m.Sid, m.Success, session.recommandMode, session.recommandIndex) } @@ -359,10 +359,10 @@ func (c *Controller) analysis(session *Session) (*msg.NatHoleResp, *msg.NatHoleR }, } - log.Debug("sid [%s] visitor nat: %+v, candidateAddrs: %v; client nat: %+v, candidateAddrs: %v, protocol: %s", + log.Debugf("sid [%s] visitor nat: %+v, candidateAddrs: %v; client nat: %+v, candidateAddrs: %v, protocol: %s", session.sid, *vNatFeature, vm.MappedAddrs, *cNatFeature, cm.MappedAddrs, protocol) - log.Debug("sid [%s] visitor detect behavior: %+v", session.sid, vResp.DetectBehavior) - log.Debug("sid [%s] client detect behavior: %+v", session.sid, cResp.DetectBehavior) + log.Debugf("sid [%s] visitor detect behavior: %+v", session.sid, vResp.DetectBehavior) + log.Debugf("sid [%s] client detect behavior: %+v", session.sid, cResp.DetectBehavior) return vResp, cResp, nil } diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index 065d0eb4a6c..18cd12bcf9b 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -204,7 +204,7 @@ func MakeHole(ctx context.Context, listenConn *net.UDPConn, m *msg.NatHoleResp, for i := 0; i < m.DetectBehavior.ListenRandomPorts; i++ { tmpConn, err := net.ListenUDP("udp4", nil) if err != nil { - xl.Warn("listen random udp addr error: %v", err) + xl.Warnf("listen random udp addr error: %v", err) continue } listenConns = append(listenConns, tmpConn) @@ -216,7 +216,7 @@ func MakeHole(ctx context.Context, listenConn *net.UDPConn, m *msg.NatHoleResp, for _, detectAddr := range detectAddrs { for _, conn := range listenConns { if err := sendSidMessage(ctx, conn, m.Sid, transactionID, detectAddr, key, m.DetectBehavior.TTL); err != nil { - xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) + xl.Tracef("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) } } } @@ -289,16 +289,16 @@ func waitDetectMessage( if err != nil { return nil, err } - xl.Debug("get udp message local %s, from %s", conn.LocalAddr(), raddr) + xl.Debugf("get udp message local %s, from %s", conn.LocalAddr(), raddr) var m msg.NatHoleSid if err := DecodeMessageInto(buf[:n], key, &m); err != nil { - xl.Warn("decode sid message error: %v", err) + xl.Warnf("decode sid message error: %v", err) continue } pool.PutBuf(buf) if m.Sid != sid { - xl.Warn("get sid message with wrong sid: %s, expect: %s", m.Sid, sid) + xl.Warnf("get sid message with wrong sid: %s, expect: %s", m.Sid, sid) continue } @@ -311,7 +311,7 @@ func waitDetectMessage( m.Response = true buf2, err := EncodeMessage(&m, key) if err != nil { - xl.Warn("encode sid message error: %v", err) + xl.Warnf("encode sid message error: %v", err) continue } _, _ = conn.WriteToUDP(buf2, raddr) @@ -329,7 +329,7 @@ func sendSidMessage( if ttl > 0 { ttlStr = fmt.Sprintf(" with ttl %d", ttl) } - xl.Trace("send sid message from %s to %s%s", conn.LocalAddr(), addr, ttlStr) + xl.Tracef("send sid message from %s to %s%s", conn.LocalAddr(), addr, ttlStr) raddr, err := net.ResolveUDPAddr("udp4", addr) if err != nil { return err @@ -351,14 +351,14 @@ func sendSidMessage( uConn := ipv4.NewConn(conn) original, err := uConn.TTL() if err != nil { - xl.Trace("get ttl error %v", err) + xl.Tracef("get ttl error %v", err) return err } - xl.Trace("original ttl %d", original) + xl.Tracef("original ttl %d", original) err = uConn.SetTTL(ttl) if err != nil { - xl.Trace("set ttl error %v", err) + xl.Tracef("set ttl error %v", err) } else { defer func() { _ = uConn.SetTTL(original) @@ -382,7 +382,7 @@ func sendSidMessageToRangePorts( for i := portsRange.From; i <= portsRange.To; i++ { detectAddr := net.JoinHostPort(ip, strconv.Itoa(i)) if err := sendFunc(conn, detectAddr); err != nil { - xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) + xl.Tracef("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) } time.Sleep(2 * time.Millisecond) } @@ -422,7 +422,7 @@ func sendSidMessageToRandomPorts( for _, ip := range slices.Compact(parseIPs(addrs)) { detectAddr := net.JoinHostPort(ip, strconv.Itoa(port)) if err := sendFunc(conn, detectAddr); err != nil { - xl.Trace("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) + xl.Tracef("send sid message from %s to %s error: %v", conn.LocalAddr(), detectAddr, err) } time.Sleep(time.Millisecond * 15) } diff --git a/pkg/plugin/server/manager.go b/pkg/plugin/server/manager.go index 516f407e1fd..ed96444ac22 100644 --- a/pkg/plugin/server/manager.go +++ b/pkg/plugin/server/manager.go @@ -86,7 +86,7 @@ func (m *Manager) Login(content *LoginContent) (*LoginContent, error) { for _, p := range m.loginPlugins { res, retContent, err = p.Handle(ctx, OpLogin, *content) if err != nil { - xl.Warn("send Login request to plugin [%s] error: %v", p.Name(), err) + xl.Warnf("send Login request to plugin [%s] error: %v", p.Name(), err) return nil, errors.New("send Login request to plugin error") } if res.Reject { @@ -120,7 +120,7 @@ func (m *Manager) NewProxy(content *NewProxyContent) (*NewProxyContent, error) { for _, p := range m.newProxyPlugins { res, retContent, err = p.Handle(ctx, OpNewProxy, *content) if err != nil { - xl.Warn("send NewProxy request to plugin [%s] error: %v", p.Name(), err) + xl.Warnf("send NewProxy request to plugin [%s] error: %v", p.Name(), err) return nil, errors.New("send NewProxy request to plugin error") } if res.Reject { @@ -147,7 +147,7 @@ func (m *Manager) CloseProxy(content *CloseProxyContent) error { for _, p := range m.closeProxyPlugins { _, _, err := p.Handle(ctx, OpCloseProxy, *content) if err != nil { - xl.Warn("send CloseProxy request to plugin [%s] error: %v", p.Name(), err) + xl.Warnf("send CloseProxy request to plugin [%s] error: %v", p.Name(), err) errs = append(errs, fmt.Sprintf("[%s]: %v", p.Name(), err)) } } @@ -179,7 +179,7 @@ func (m *Manager) Ping(content *PingContent) (*PingContent, error) { for _, p := range m.pingPlugins { res, retContent, err = p.Handle(ctx, OpPing, *content) if err != nil { - xl.Warn("send Ping request to plugin [%s] error: %v", p.Name(), err) + xl.Warnf("send Ping request to plugin [%s] error: %v", p.Name(), err) return nil, errors.New("send Ping request to plugin error") } if res.Reject { @@ -213,7 +213,7 @@ func (m *Manager) NewWorkConn(content *NewWorkConnContent) (*NewWorkConnContent, for _, p := range m.newWorkConnPlugins { res, retContent, err = p.Handle(ctx, OpNewWorkConn, *content) if err != nil { - xl.Warn("send NewWorkConn request to plugin [%s] error: %v", p.Name(), err) + xl.Warnf("send NewWorkConn request to plugin [%s] error: %v", p.Name(), err) return nil, errors.New("send NewWorkConn request to plugin error") } if res.Reject { @@ -247,7 +247,7 @@ func (m *Manager) NewUserConn(content *NewUserConnContent) (*NewUserConnContent, for _, p := range m.newUserConnPlugins { res, retContent, err = p.Handle(ctx, OpNewUserConn, *content) if err != nil { - xl.Info("send NewUserConn request to plugin [%s] error: %v", p.Name(), err) + xl.Infof("send NewUserConn request to plugin [%s] error: %v", p.Name(), err) return nil, errors.New("send NewUserConn request to plugin error") } if res.Reject { diff --git a/pkg/ssh/gateway.go b/pkg/ssh/gateway.go index 90f2228ec18..5716f04038d 100644 --- a/pkg/ssh/gateway.go +++ b/pkg/ssh/gateway.go @@ -75,7 +75,7 @@ func NewGateway( sshConfig.PublicKeyCallback = func(conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { authorizedKeysMap, err := loadAuthorizedKeysFromFile(cfg.AuthorizedKeysFile) if err != nil { - log.Error("load authorized keys file error: %v", err) + log.Errorf("load authorized keys file error: %v", err) return nil, fmt.Errorf("internal error") } @@ -120,7 +120,7 @@ func (g *Gateway) handleConn(conn net.Conn) { return } if err := ts.Run(); err != nil { - log.Error("ssh tunnel server run error: %v", err) + log.Errorf("ssh tunnel server run error: %v", err) } } diff --git a/pkg/ssh/server.go b/pkg/ssh/server.go index 7fb93c348c0..2adab17fb5a 100644 --- a/pkg/ssh/server.go +++ b/pkg/ssh/server.go @@ -123,7 +123,7 @@ func (s *TunnelServer) Run() error { // join workConn and ssh channel c, err := s.openConn(addr) if err != nil { - log.Trace("open conn error: %v", err) + log.Tracef("open conn error: %v", err) workConn.Close() return false } @@ -167,7 +167,7 @@ func (s *TunnelServer) Run() error { if ps, err := s.waitProxyStatusReady(pc.GetBaseConfig().Name, time.Second); err != nil { s.writeToClient(err.Error()) - log.Warn("wait proxy status ready error: %v", err) + log.Warnf("wait proxy status ready error: %v", err) } else { // success s.writeToClient(createSuccessInfo(clientCfg.User, pc, ps)) @@ -175,7 +175,7 @@ func (s *TunnelServer) Run() error { } s.vc.Close() - log.Trace("ssh tunnel connection from %v closed", sshConn.RemoteAddr()) + log.Tracef("ssh tunnel connection from %v closed", sshConn.RemoteAddr()) s.closeDoneChOnce.Do(func() { _ = sshConn.Close() close(s.doneCh) diff --git a/pkg/util/log/log.go b/pkg/util/log/log.go index a1391b3260a..f6399e00809 100644 --- a/pkg/util/log/log.go +++ b/pkg/util/log/log.go @@ -15,78 +15,65 @@ package log import ( - "fmt" + "os" - "github.com/fatedier/beego/logs" + "github.com/fatedier/golib/log" ) -// Log is the under log object -var Log *logs.BeeLogger +var Logger *log.Logger func init() { - Log = logs.NewLogger(200) - Log.EnableFuncCallDepth(true) - Log.SetLogFuncCallDepth(Log.GetLogFuncCallDepth() + 1) + Logger = log.New( + log.WithCaller(true), + log.AddCallerSkip(1), + log.WithLevel(log.InfoLevel), + ) } -func InitLog(logFile string, logLevel string, maxdays int64, disableLogColor bool) { - SetLogFile(logFile, maxdays, disableLogColor) - SetLogLevel(logLevel) -} - -// SetLogFile to configure log params -func SetLogFile(logFile string, maxdays int64, disableLogColor bool) { - if logFile == "console" { - params := "" - if disableLogColor { - params = `{"color": false}` +func InitLogger(logPath string, levelStr string, maxDays int, disableLogColor bool) { + options := []log.Option{} + if logPath == "console" { + if !disableLogColor { + options = append(options, + log.WithOutput(log.NewConsoleWriter(log.ConsoleConfig{ + Colorful: true, + }, os.Stdout)), + ) } - _ = Log.SetLogger("console", params) } else { - params := fmt.Sprintf(`{"filename": "%s", "maxdays": %d}`, logFile, maxdays) - _ = Log.SetLogger("file", params) + writer := log.NewRotateFileWriter(log.RotateFileConfig{ + FileName: logPath, + Mode: log.RotateFileModeDaily, + MaxDays: maxDays, + }) + writer.Init() + options = append(options, log.WithOutput(writer)) } -} -// SetLogLevel set log level, default is warning -// value: error, warning, info, debug, trace -func SetLogLevel(logLevel string) { - var level int - switch logLevel { - case "error": - level = 3 - case "warn": - level = 4 - case "info": - level = 6 - case "debug": - level = 7 - case "trace": - level = 8 - default: - level = 4 // warning + level, err := log.ParseLevel(levelStr) + if err != nil { + level = log.InfoLevel } - Log.SetLevel(level) + options = append(options, log.WithLevel(level)) + Logger = Logger.WithOptions(options...) } -// wrap log - -func Error(format string, v ...interface{}) { - Log.Error(format, v...) +func Errorf(format string, v ...interface{}) { + Logger.Errorf(format, v...) } -func Warn(format string, v ...interface{}) { - Log.Warn(format, v...) +func Warnf(format string, v ...interface{}) { + Logger.Warnf(format, v...) } -func Info(format string, v ...interface{}) { - Log.Info(format, v...) +func Infof(format string, v ...interface{}) { + Logger.Infof(format, v...) } -func Debug(format string, v ...interface{}) { - Log.Debug(format, v...) +func Debugf(format string, v ...interface{}) { + Logger.Debugf(format, v...) } -func Trace(format string, v ...interface{}) { - Log.Trace(format, v...) +func Tracef(format string, v ...interface{}) { + Logger.Tracef(format, v...) } diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index 7aa67c98f36..34a1400ac6f 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -20,7 +20,7 @@ import ( "encoding/base64" "errors" "fmt" - "log" + stdlog "log" "net" "net/http" "net/http/httputil" @@ -32,7 +32,7 @@ import ( "github.com/fatedier/golib/pool" httppkg "github.com/fatedier/frp/pkg/util/http" - logpkg "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/log" ) var ErrNoRouteFound = errors.New("no route found") @@ -76,7 +76,7 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * // ignore error here, it will use CreateConnFn instead later endpoint, _ = rc.ChooseEndpointFn() reqRouteInfo.Endpoint = endpoint - logpkg.Trace("choose endpoint name [%s] for http request host [%s] path [%s] httpuser [%s]", + log.Tracef("choose endpoint name [%s] for http request host [%s] path [%s] httpuser [%s]", endpoint, oldHost, reqRouteInfo.URL, reqRouteInfo.HTTPUser) } // Set {domain}.{location}.{routeByHTTPUser}.{endpoint} as URL host here to let http transport reuse connections. @@ -116,9 +116,9 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * }, }, BufferPool: newWrapPool(), - ErrorLog: log.New(newWrapLogger(), "", 0), + ErrorLog: stdlog.New(newWrapLogger(), "", 0), ErrorHandler: func(rw http.ResponseWriter, req *http.Request, err error) { - logpkg.Warn("do http proxy request [host: %s] error: %v", req.Host, err) + log.Warnf("do http proxy request [host: %s] error: %v", req.Host, err) rw.WriteHeader(http.StatusNotFound) _, _ = rw.Write(getNotFoundPageContent()) }, @@ -145,7 +145,7 @@ func (rp *HTTPReverseProxy) UnRegister(routeCfg RouteConfig) { func (rp *HTTPReverseProxy) GetRouteConfig(domain, location, routeByHTTPUser string) *RouteConfig { vr, ok := rp.getVhost(domain, location, routeByHTTPUser) if ok { - logpkg.Debug("get new HTTP request host [%s] path [%s] httpuser [%s]", domain, location, routeByHTTPUser) + log.Debugf("get new HTTP request host [%s] path [%s] httpuser [%s]", domain, location, routeByHTTPUser) return vr.payload.(*RouteConfig) } return nil @@ -335,6 +335,6 @@ type wrapLogger struct{} func newWrapLogger() *wrapLogger { return &wrapLogger{} } func (l *wrapLogger) Write(p []byte) (n int, err error) { - logpkg.Warn("%s", string(bytes.TrimRight(p, "\n"))) + log.Warnf("%s", string(bytes.TrimRight(p, "\n"))) return len(p), nil } diff --git a/pkg/util/vhost/resource.go b/pkg/util/vhost/resource.go index bf91e13358f..a65e29973ea 100644 --- a/pkg/util/vhost/resource.go +++ b/pkg/util/vhost/resource.go @@ -20,7 +20,7 @@ import ( "net/http" "os" - logpkg "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" ) @@ -58,7 +58,7 @@ func getNotFoundPageContent() []byte { if NotFoundPagePath != "" { buf, err = os.ReadFile(NotFoundPagePath) if err != nil { - logpkg.Warn("read custom 404 page error: %v", err) + log.Warnf("read custom 404 page error: %v", err) buf = []byte(NotFound) } } else { diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index d529e4249e3..b1370599a70 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -203,7 +203,7 @@ func (v *Muxer) handle(c net.Conn) { sConn, reqInfoMap, err := v.vhostFunc(c) if err != nil { - log.Debug("get hostname from http/https request error: %v", err) + log.Debugf("get hostname from http/https request error: %v", err) _ = c.Close() return } @@ -213,7 +213,7 @@ func (v *Muxer) handle(c net.Conn) { httpUser := reqInfoMap["HTTPUser"] l, ok := v.getListener(name, path, httpUser) if !ok { - log.Debug("http request for host [%s] path [%s] httpUser [%s] not found", name, path, httpUser) + log.Debugf("http request for host [%s] path [%s] httpUser [%s] not found", name, path, httpUser) v.failHook(sConn) return } @@ -221,7 +221,7 @@ func (v *Muxer) handle(c net.Conn) { xl := xlog.FromContextSafe(l.ctx) if v.successHook != nil { if err := v.successHook(c, reqInfoMap); err != nil { - xl.Info("success func failure on vhost connection: %v", err) + xl.Infof("success func failure on vhost connection: %v", err) _ = c.Close() return } @@ -232,7 +232,7 @@ func (v *Muxer) handle(c net.Conn) { if l.mux.checkAuth != nil && l.username != "" { ok, err := l.mux.checkAuth(c, l.username, l.password, reqInfoMap) if !ok || err != nil { - xl.Debug("auth failed for user: %s", l.username) + xl.Debugf("auth failed for user: %s", l.username) _ = c.Close() return } @@ -244,12 +244,12 @@ func (v *Muxer) handle(c net.Conn) { } c = sConn - xl.Debug("new request host [%s] path [%s] httpUser [%s]", name, path, httpUser) + xl.Debugf("new request host [%s] path [%s] httpUser [%s]", name, path, httpUser) err = errors.PanicToError(func() { l.accept <- c }) if err != nil { - xl.Warn("listener is already closed, ignore this request") + xl.Warnf("listener is already closed, ignore this request") } } @@ -278,10 +278,10 @@ func (l *Listener) Accept() (net.Conn, error) { if l.mux.rewriteHost != nil { sConn, err := l.mux.rewriteHost(conn, l.rewriteHost) if err != nil { - xl.Warn("host header rewrite failed: %v", err) + xl.Warnf("host header rewrite failed: %v", err) return nil, fmt.Errorf("host header rewrite failed") } - xl.Debug("rewrite host to [%s] success", l.rewriteHost) + xl.Debugf("rewrite host to [%s] success", l.rewriteHost) conn = sConn } return netpkg.NewContextConn(l.ctx, conn), nil diff --git a/pkg/util/xlog/xlog.go b/pkg/util/xlog/xlog.go index 56b07522eb7..184c0c1f7a5 100644 --- a/pkg/util/xlog/xlog.go +++ b/pkg/util/xlog/xlog.go @@ -94,22 +94,22 @@ func (l *Logger) Spawn() *Logger { return nl } -func (l *Logger) Error(format string, v ...interface{}) { - log.Log.Error(l.prefixString+format, v...) +func (l *Logger) Errorf(format string, v ...interface{}) { + log.Logger.Errorf(l.prefixString+format, v...) } -func (l *Logger) Warn(format string, v ...interface{}) { - log.Log.Warn(l.prefixString+format, v...) +func (l *Logger) Warnf(format string, v ...interface{}) { + log.Logger.Warnf(l.prefixString+format, v...) } -func (l *Logger) Info(format string, v ...interface{}) { - log.Log.Info(l.prefixString+format, v...) +func (l *Logger) Infof(format string, v ...interface{}) { + log.Logger.Infof(l.prefixString+format, v...) } -func (l *Logger) Debug(format string, v ...interface{}) { - log.Log.Debug(l.prefixString+format, v...) +func (l *Logger) Debugf(format string, v ...interface{}) { + log.Logger.Debugf(l.prefixString+format, v...) } -func (l *Logger) Trace(format string, v ...interface{}) { - log.Log.Trace(l.prefixString+format, v...) +func (l *Logger) Tracef(format string, v ...interface{}) { + log.Logger.Tracef(l.prefixString+format, v...) } diff --git a/server/control.go b/server/control.go index dbb1af0a038..ea8a34c17ef 100644 --- a/server/control.go +++ b/server/control.go @@ -224,7 +224,7 @@ func (ctl *Control) Close() error { func (ctl *Control) Replaced(newCtl *Control) { xl := ctl.xl - xl.Info("Replaced by client [%s]", newCtl.runID) + xl.Infof("Replaced by client [%s]", newCtl.runID) ctl.runID = "" ctl.conn.Close() } @@ -233,17 +233,17 @@ func (ctl *Control) RegisterWorkConn(conn net.Conn) error { xl := ctl.xl defer func() { if err := recover(); err != nil { - xl.Error("panic error: %v", err) - xl.Error(string(debug.Stack())) + xl.Errorf("panic error: %v", err) + xl.Errorf(string(debug.Stack())) } }() select { case ctl.workConnCh <- conn: - xl.Debug("new work connection registered") + xl.Debugf("new work connection registered") return nil default: - xl.Debug("work connection pool is full, discarding") + xl.Debugf("work connection pool is full, discarding") return fmt.Errorf("work connection pool is full, discarding") } } @@ -256,8 +256,8 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { xl := ctl.xl defer func() { if err := recover(); err != nil { - xl.Error("panic error: %v", err) - xl.Error(string(debug.Stack())) + xl.Errorf("panic error: %v", err) + xl.Errorf(string(debug.Stack())) } }() @@ -269,7 +269,7 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { err = pkgerr.ErrCtlClosed return } - xl.Debug("get work connection from pool") + xl.Debugf("get work connection from pool") default: // no work connections available in the poll, send message to frpc to get more if err := ctl.msgDispatcher.Send(&msg.ReqWorkConn{}); err != nil { @@ -280,13 +280,13 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { case workConn, ok = <-ctl.workConnCh: if !ok { err = pkgerr.ErrCtlClosed - xl.Warn("no work connections available, %v", err) + xl.Warnf("no work connections available, %v", err) return } case <-time.After(time.Duration(ctl.serverCfg.UserConnTimeout) * time.Second): err = fmt.Errorf("timeout trying to get work connection") - xl.Warn("%v", err) + xl.Warnf("%v", err) return } } @@ -305,7 +305,7 @@ func (ctl *Control) heartbeatWorker() { if !lo.FromPtr(ctl.serverCfg.Transport.TCPMux) && ctl.serverCfg.Transport.HeartbeatTimeout > 0 { go wait.Until(func() { if time.Since(ctl.lastPing.Load().(time.Time)) > time.Duration(ctl.serverCfg.Transport.HeartbeatTimeout)*time.Second { - xl.Warn("heartbeat timeout") + xl.Warnf("heartbeat timeout") ctl.conn.Close() return } @@ -356,7 +356,7 @@ func (ctl *Control) worker() { } metrics.Server.CloseClient() - xl.Info("client exit success") + xl.Infof("client exit success") close(ctl.doneCh) } @@ -393,12 +393,12 @@ func (ctl *Control) handleNewProxy(m msg.Message) { ProxyName: inMsg.ProxyName, } if err != nil { - xl.Warn("new proxy [%s] type [%s] error: %v", inMsg.ProxyName, inMsg.ProxyType, err) + xl.Warnf("new proxy [%s] type [%s] error: %v", inMsg.ProxyName, inMsg.ProxyType, err) resp.Error = util.GenerateResponseErrorString(fmt.Sprintf("new proxy [%s] error", inMsg.ProxyName), err, lo.FromPtr(ctl.serverCfg.DetailedErrorsToClient)) } else { resp.RemoteAddr = remoteAddr - xl.Info("new proxy [%s] type [%s] success", inMsg.ProxyName, inMsg.ProxyType) + xl.Infof("new proxy [%s] type [%s] success", inMsg.ProxyName, inMsg.ProxyType) metrics.Server.NewProxy(inMsg.ProxyName, inMsg.ProxyType) } _ = ctl.msgDispatcher.Send(resp) @@ -422,14 +422,14 @@ func (ctl *Control) handlePing(m msg.Message) { err = ctl.authVerifier.VerifyPing(inMsg) } if err != nil { - xl.Warn("received invalid ping: %v", err) + xl.Warnf("received invalid ping: %v", err) _ = ctl.msgDispatcher.Send(&msg.Pong{ Error: util.GenerateResponseErrorString("invalid ping", err, lo.FromPtr(ctl.serverCfg.DetailedErrorsToClient)), }) return } ctl.lastPing.Store(time.Now()) - xl.Debug("receive heartbeat") + xl.Debugf("receive heartbeat") _ = ctl.msgDispatcher.Send(&msg.Pong{}) } @@ -452,7 +452,7 @@ func (ctl *Control) handleCloseProxy(m msg.Message) { xl := ctl.xl inMsg := m.(*msg.CloseProxy) _ = ctl.CloseProxy(inMsg) - xl.Info("close proxy [%s] success", inMsg.ProxyName) + xl.Infof("close proxy [%s] success", inMsg.ProxyName) } func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err error) { diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 9ecd5a7c265..62415c968d2 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -99,14 +99,14 @@ func (svr *Service) healthz(w http.ResponseWriter, _ *http.Request) { func (svr *Service) apiServerInfo(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} defer func() { - log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Info("Http request: [%s]", r.URL.Path) + log.Infof("Http request: [%s]", r.URL.Path) serverStats := mem.StatsCollector.GetServer() svrResp := serverInfoResp{ Version: version.Full(), @@ -219,13 +219,13 @@ func (svr *Service) apiProxyByType(w http.ResponseWriter, r *http.Request) { proxyType := params["type"] defer func() { - log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Info("Http request: [%s]", r.URL.Path) + log.Infof("Http request: [%s]", r.URL.Path) proxyInfoResp := GetProxyInfoResp{} proxyInfoResp.Proxies = svr.getProxyStatsByType(proxyType) @@ -245,12 +245,12 @@ func (svr *Service) getProxyStatsByType(proxyType string) (proxyInfos []*ProxySt if pxy, ok := svr.pxyManager.GetByName(ps.Name); ok { content, err := json.Marshal(pxy.GetConfigurer()) if err != nil { - log.Warn("marshal proxy [%s] conf info error: %v", ps.Name, err) + log.Warnf("marshal proxy [%s] conf info error: %v", ps.Name, err) continue } proxyInfo.Conf = getConfByType(ps.Type) if err = json.Unmarshal(content, &proxyInfo.Conf); err != nil { - log.Warn("unmarshal proxy [%s] conf info error: %v", ps.Name, err) + log.Warnf("unmarshal proxy [%s] conf info error: %v", ps.Name, err) continue } proxyInfo.Status = "online" @@ -291,13 +291,13 @@ func (svr *Service) apiProxyByTypeAndName(w http.ResponseWriter, r *http.Request name := params["name"] defer func() { - log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Info("Http request: [%s]", r.URL.Path) + log.Infof("Http request: [%s]", r.URL.Path) var proxyStatsResp GetProxyStatsResp proxyStatsResp, res.Code, res.Msg = svr.getProxyStatsByTypeAndName(proxyType, name) @@ -319,14 +319,14 @@ func (svr *Service) getProxyStatsByTypeAndName(proxyType string, proxyName strin if pxy, ok := svr.pxyManager.GetByName(proxyName); ok { content, err := json.Marshal(pxy.GetConfigurer()) if err != nil { - log.Warn("marshal proxy [%s] conf info error: %v", ps.Name, err) + log.Warnf("marshal proxy [%s] conf info error: %v", ps.Name, err) code = 400 msg = "parse conf error" return } proxyInfo.Conf = getConfByType(ps.Type) if err = json.Unmarshal(content, &proxyInfo.Conf); err != nil { - log.Warn("unmarshal proxy [%s] conf info error: %v", ps.Name, err) + log.Warnf("unmarshal proxy [%s] conf info error: %v", ps.Name, err) code = 400 msg = "parse conf error" return @@ -359,13 +359,13 @@ func (svr *Service) apiProxyTraffic(w http.ResponseWriter, r *http.Request) { name := params["name"] defer func() { - log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Info("Http request: [%s]", r.URL.Path) + log.Infof("Http request: [%s]", r.URL.Path) trafficResp := GetProxyTrafficResp{} trafficResp.Name = name @@ -387,9 +387,9 @@ func (svr *Service) apiProxyTraffic(w http.ResponseWriter, r *http.Request) { func (svr *Service) deleteProxies(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} - log.Info("Http request: [%s]", r.URL.Path) + log.Infof("Http request: [%s]", r.URL.Path) defer func() { - log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -403,5 +403,5 @@ func (svr *Service) deleteProxies(w http.ResponseWriter, r *http.Request) { return } cleared, total := mem.StatsCollector.ClearOfflineProxies() - log.Info("cleared [%d] offline proxies, total [%d] proxies", cleared, total) + log.Infof("cleared [%d] offline proxies, total [%d] proxies", cleared, total) } diff --git a/server/proxy/http.go b/server/proxy/http.go index 44a462b7ecc..cd4c4b968bc 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -107,7 +107,7 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { }) } addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPPort)) - xl.Info("http proxy listen for host [%s] location [%s] group [%s], routeByHTTPUser [%s]", + xl.Infof("http proxy listen for host [%s] location [%s] group [%s], routeByHTTPUser [%s]", routeConfig.Domain, routeConfig.Location, pxy.cfg.LoadBalancer.Group, pxy.cfg.RouteByHTTPUser) } } @@ -140,7 +140,7 @@ func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { } addrs = append(addrs, util.CanonicalAddr(tmpRouteConfig.Domain, pxy.serverCfg.VhostHTTPPort)) - xl.Info("http proxy listen for host [%s] location [%s] group [%s], routeByHTTPUser [%s]", + xl.Infof("http proxy listen for host [%s] location [%s] group [%s], routeByHTTPUser [%s]", routeConfig.Domain, routeConfig.Location, pxy.cfg.LoadBalancer.Group, pxy.cfg.RouteByHTTPUser) } } @@ -152,7 +152,7 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err xl := pxy.xl rAddr, errRet := net.ResolveTCPAddr("tcp", remoteAddr) if errRet != nil { - xl.Warn("resolve TCP addr [%s] error: %v", remoteAddr, errRet) + xl.Warnf("resolve TCP addr [%s] error: %v", remoteAddr, errRet) // we do not return error here since remoteAddr is not necessary for proxies without proxy protocol enabled } @@ -166,7 +166,7 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err if pxy.cfg.Transport.UseEncryption { rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Auth.Token)) if err != nil { - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return } } diff --git a/server/proxy/https.go b/server/proxy/https.go index dc9b77ebe00..4575ac13d08 100644 --- a/server/proxy/https.go +++ b/server/proxy/https.go @@ -64,7 +64,7 @@ func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { err = errRet return } - xl.Info("https proxy listen for host [%s]", routeConfig.Domain) + xl.Infof("https proxy listen for host [%s]", routeConfig.Domain) pxy.listeners = append(pxy.listeners, l) addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPSPort)) } @@ -76,7 +76,7 @@ func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { err = errRet return } - xl.Info("https proxy listen for host [%s]", routeConfig.Domain) + xl.Infof("https proxy listen for host [%s]", routeConfig.Domain) pxy.listeners = append(pxy.listeners, l) addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPSPort)) } diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index f5c850e98af..d5ab0f13ae5 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -112,7 +112,7 @@ func (pxy *BaseProxy) GetConfigurer() v1.ProxyConfigurer { func (pxy *BaseProxy) Close() { xl := xlog.FromContextSafe(pxy.ctx) - xl.Info("proxy closing") + xl.Infof("proxy closing") for _, l := range pxy.listeners { l.Close() } @@ -125,10 +125,10 @@ func (pxy *BaseProxy) GetWorkConnFromPool(src, dst net.Addr) (workConn net.Conn, // try all connections from the pool for i := 0; i < pxy.poolCount+1; i++ { if workConn, err = pxy.getWorkConnFn(); err != nil { - xl.Warn("failed to get work connection: %v", err) + xl.Warnf("failed to get work connection: %v", err) return } - xl.Debug("get a new work connection: [%s]", workConn.RemoteAddr().String()) + xl.Debugf("get a new work connection: [%s]", workConn.RemoteAddr().String()) xl.Spawn().AppendPrefix(pxy.GetName()) workConn = netpkg.NewContextConn(pxy.ctx, workConn) @@ -158,7 +158,7 @@ func (pxy *BaseProxy) GetWorkConnFromPool(src, dst net.Addr) (workConn net.Conn, Error: "", }) if err != nil { - xl.Warn("failed to send message to work connection from pool: %v, times: %d", err, i) + xl.Warnf("failed to send message to work connection from pool: %v, times: %d", err, i) workConn.Close() } else { break @@ -166,7 +166,7 @@ func (pxy *BaseProxy) GetWorkConnFromPool(src, dst net.Addr) (workConn net.Conn, } if err != nil { - xl.Error("try to get work connection failed in the end") + xl.Errorf("try to get work connection failed in the end") return } return @@ -193,15 +193,15 @@ func (pxy *BaseProxy) startCommonTCPListenersHandler() { if max := 1 * time.Second; tempDelay > max { tempDelay = max } - xl.Info("met temporary error: %s, sleep for %s ...", err, tempDelay) + xl.Infof("met temporary error: %s, sleep for %s ...", err, tempDelay) time.Sleep(tempDelay) continue } - xl.Warn("listener is closed: %s", err) + xl.Warnf("listener is closed: %s", err) return } - xl.Info("get a user connection [%s]", c.RemoteAddr().String()) + xl.Infof("get a user connection [%s]", c.RemoteAddr().String()) go pxy.handleUserTCPConnection(c) } }(listener) @@ -225,7 +225,7 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { } _, err := rc.PluginManager.NewUserConn(content) if err != nil { - xl.Warn("the user conn [%s] was rejected, err:%v", content.RemoteAddr, err) + xl.Warnf("the user conn [%s] was rejected, err:%v", content.RemoteAddr, err) return } @@ -237,12 +237,12 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { defer workConn.Close() var local io.ReadWriteCloser = workConn - xl.Trace("handler user tcp connection, use_encryption: %t, use_compression: %t", + xl.Tracef("handler user tcp connection, use_encryption: %t, use_compression: %t", cfg.Transport.UseEncryption, cfg.Transport.UseCompression) if cfg.Transport.UseEncryption { local, err = libio.WithEncryption(local, []byte(serverCfg.Auth.Token)) if err != nil { - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) return } } @@ -258,7 +258,7 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { }) } - xl.Debug("join connections, workConn(l[%s] r[%s]) userConn(l[%s] r[%s])", workConn.LocalAddr().String(), + xl.Debugf("join connections, workConn(l[%s] r[%s]) userConn(l[%s] r[%s])", workConn.LocalAddr().String(), workConn.RemoteAddr().String(), userConn.LocalAddr().String(), userConn.RemoteAddr().String()) name := pxy.GetName() @@ -268,7 +268,7 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { metrics.Server.CloseConnection(name, proxyType) metrics.Server.AddTrafficIn(name, proxyType, inCount) metrics.Server.AddTrafficOut(name, proxyType, outCount) - xl.Debug("join connections closed") + xl.Debugf("join connections closed") } type Options struct { diff --git a/server/proxy/stcp.go b/server/proxy/stcp.go index 4f08a7c12c3..06b1b17f47b 100644 --- a/server/proxy/stcp.go +++ b/server/proxy/stcp.go @@ -53,7 +53,7 @@ func (pxy *STCPProxy) Run() (remoteAddr string, err error) { return } pxy.listeners = append(pxy.listeners, listener) - xl.Info("stcp proxy custom listen success") + xl.Infof("stcp proxy custom listen success") pxy.startCommonTCPListenersHandler() return diff --git a/server/proxy/sudp.go b/server/proxy/sudp.go index a6d7c798f1b..f37fb4239fd 100644 --- a/server/proxy/sudp.go +++ b/server/proxy/sudp.go @@ -53,7 +53,7 @@ func (pxy *SUDPProxy) Run() (remoteAddr string, err error) { return } pxy.listeners = append(pxy.listeners, listener) - xl.Info("sudp proxy custom listen success") + xl.Infof("sudp proxy custom listen success") pxy.startCommonTCPListenersHandler() return diff --git a/server/proxy/tcp.go b/server/proxy/tcp.go index 4196ad4ae3a..a6eae3a9d6b 100644 --- a/server/proxy/tcp.go +++ b/server/proxy/tcp.go @@ -62,7 +62,7 @@ func (pxy *TCPProxy) Run() (remoteAddr string, err error) { }() pxy.realBindPort = realBindPort pxy.listeners = append(pxy.listeners, l) - xl.Info("tcp proxy listen port [%d] in group [%s]", pxy.cfg.RemotePort, pxy.cfg.LoadBalancer.Group) + xl.Infof("tcp proxy listen port [%d] in group [%s]", pxy.cfg.RemotePort, pxy.cfg.LoadBalancer.Group) } else { pxy.realBindPort, err = pxy.rc.TCPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort) if err != nil { @@ -79,7 +79,7 @@ func (pxy *TCPProxy) Run() (remoteAddr string, err error) { return } pxy.listeners = append(pxy.listeners, listener) - xl.Info("tcp proxy listen port [%d]", pxy.cfg.RemotePort) + xl.Infof("tcp proxy listen port [%d]", pxy.cfg.RemotePort) } pxy.cfg.RemotePort = pxy.realBindPort diff --git a/server/proxy/tcpmux.go b/server/proxy/tcpmux.go index 5b914c3983d..6e95b66b35b 100644 --- a/server/proxy/tcpmux.go +++ b/server/proxy/tcpmux.go @@ -65,7 +65,7 @@ func (pxy *TCPMuxProxy) httpConnectListen( if err != nil { return nil, err } - pxy.xl.Info("tcpmux httpconnect multiplexer listens for host [%s], group [%s] routeByHTTPUser [%s]", + pxy.xl.Infof("tcpmux httpconnect multiplexer listens for host [%s], group [%s] routeByHTTPUser [%s]", domain, pxy.cfg.LoadBalancer.Group, pxy.cfg.RouteByHTTPUser) pxy.listeners = append(pxy.listeners, l) return append(addrs, util.CanonicalAddr(domain, pxy.serverCfg.TCPMuxHTTPConnectPort)), nil diff --git a/server/proxy/udp.go b/server/proxy/udp.go index ea970818d8e..53a07d52676 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -97,10 +97,10 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { udpConn, errRet := net.ListenUDP("udp", addr) if errRet != nil { err = errRet - xl.Warn("listen udp port error: %v", err) + xl.Warnf("listen udp port error: %v", err) return } - xl.Info("udp proxy listen port [%d]", pxy.cfg.RemotePort) + xl.Infof("udp proxy listen port [%d]", pxy.cfg.RemotePort) pxy.udpConn = udpConn pxy.sendCh = make(chan *msg.UDPPacket, 1024) @@ -114,11 +114,11 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { rawMsg msg.Message errRet error ) - xl.Trace("loop waiting message from udp workConn") + xl.Tracef("loop waiting message from udp workConn") // client will send heartbeat in workConn for keeping alive _ = conn.SetReadDeadline(time.Now().Add(time.Duration(60) * time.Second)) if rawMsg, errRet = msg.ReadMsg(conn); errRet != nil { - xl.Warn("read from workConn for udp error: %v", errRet) + xl.Warnf("read from workConn for udp error: %v", errRet) _ = conn.Close() // notify proxy to start a new work connection // ignore error here, it means the proxy is closed @@ -128,15 +128,15 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { return } if err := conn.SetReadDeadline(time.Time{}); err != nil { - xl.Warn("set read deadline error: %v", err) + xl.Warnf("set read deadline error: %v", err) } switch m := rawMsg.(type) { case *msg.Ping: - xl.Trace("udp work conn get ping message") + xl.Tracef("udp work conn get ping message") continue case *msg.UDPPacket: if errRet := errors.PanicToError(func() { - xl.Trace("get udp message from workConn: %s", m.Content) + xl.Tracef("get udp message from workConn: %s", m.Content) pxy.readCh <- m metrics.Server.AddTrafficOut( pxy.GetName(), @@ -145,7 +145,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { ) }); errRet != nil { conn.Close() - xl.Info("reader goroutine for udp work connection closed") + xl.Infof("reader goroutine for udp work connection closed") return } } @@ -159,15 +159,15 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { select { case udpMsg, ok := <-pxy.sendCh: if !ok { - xl.Info("sender goroutine for udp work connection closed") + xl.Infof("sender goroutine for udp work connection closed") return } if errRet = msg.WriteMsg(conn, udpMsg); errRet != nil { - xl.Info("sender goroutine for udp work connection closed: %v", errRet) + xl.Infof("sender goroutine for udp work connection closed: %v", errRet) conn.Close() return } - xl.Trace("send message to udp workConn: %s", udpMsg.Content) + xl.Tracef("send message to udp workConn: %s", udpMsg.Content) metrics.Server.AddTrafficIn( pxy.GetName(), pxy.GetConfigurer().GetBaseConfig().Type, @@ -175,7 +175,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { ) continue case <-ctx.Done(): - xl.Info("sender goroutine for udp work connection closed") + xl.Infof("sender goroutine for udp work connection closed") return } } @@ -207,7 +207,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { if pxy.cfg.Transport.UseEncryption { rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Auth.Token)) if err != nil { - xl.Error("create encryption stream error: %v", err) + xl.Errorf("create encryption stream error: %v", err) workConn.Close() continue } diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index fe60c630c57..f69d0790d65 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -77,7 +77,7 @@ func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { } errRet = msg.WriteMsg(workConn, m) if errRet != nil { - xl.Warn("write nat hole sid package error, %v", errRet) + xl.Warnf("write nat hole sid package error, %v", errRet) } workConn.Close() } diff --git a/server/service.go b/server/service.go index c2410b06376..12564325b5d 100644 --- a/server/service.go +++ b/server/service.go @@ -172,13 +172,13 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { if err != nil { return nil, fmt.Errorf("create vhost tcpMuxer error, %v", err) } - log.Info("tcpmux httpconnect multiplexer listen on %s, passthough: %v", address, cfg.TCPMuxPassthrough) + log.Infof("tcpmux httpconnect multiplexer listen on %s, passthough: %v", address, cfg.TCPMuxPassthrough) } // Init all plugins for _, p := range cfg.HTTPPlugins { svr.pluginManager.Register(plugin.NewHTTPPluginOptions(p)) - log.Info("plugin [%s] has been registered", p.Name) + log.Infof("plugin [%s] has been registered", p.Name) } svr.rc.PluginManager = svr.pluginManager @@ -222,7 +222,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { ln = svr.muxer.DefaultListener() svr.listener = ln - log.Info("frps tcp listen on %s", address) + log.Infof("frps tcp listen on %s", address) // Listen for accepting connections from client using kcp protocol. if cfg.KCPBindPort > 0 { @@ -231,7 +231,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { if err != nil { return nil, fmt.Errorf("listen on kcp udp address %s error: %v", address, err) } - log.Info("frps kcp listen on udp %s", address) + log.Infof("frps kcp listen on udp %s", address) } if cfg.QUICBindPort > 0 { @@ -246,7 +246,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { if err != nil { return nil, fmt.Errorf("listen on quic udp address %s error: %v", address, err) } - log.Info("frps quic listen on %s", address) + log.Infof("frps quic listen on %s", address) } if cfg.SSHTunnelGateway.BindPort > 0 { @@ -255,7 +255,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { return nil, fmt.Errorf("create ssh gateway error: %v", err) } svr.sshTunnelGateway = sshGateway - log.Info("frps sshTunnelGateway listen on port %d", cfg.SSHTunnelGateway.BindPort) + log.Infof("frps sshTunnelGateway listen on port %d", cfg.SSHTunnelGateway.BindPort) } // Listen for accepting connections from client using websocket protocol. @@ -289,7 +289,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { go func() { _ = server.Serve(l) }() - log.Info("http service listen on %s", address) + log.Infof("http service listen on %s", address) } // Create https vhost muxer. @@ -303,7 +303,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { if err != nil { return nil, fmt.Errorf("create server listener error, %v", err) } - log.Info("https service listen on %s", address) + log.Infof("https service listen on %s", address) } svr.rc.VhostHTTPSMuxer, err = vhost.NewHTTPSMuxer(l, vhostReadWriteTimeout) @@ -335,9 +335,9 @@ func (svr *Service) Run(ctx context.Context) { // run dashboard web server. if svr.webServer != nil { go func() { - log.Info("dashboard listen on %s", svr.webServer.Address()) + log.Infof("dashboard listen on %s", svr.webServer.Address()) if err := svr.webServer.Run(); err != nil { - log.Warn("dashboard server exit with error: %v", err) + log.Warnf("dashboard server exit with error: %v", err) } }() } @@ -408,7 +408,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn, interna _ = conn.SetReadDeadline(time.Now().Add(connReadTimeout)) if rawMsg, err = msg.ReadMsg(conn); err != nil { - log.Trace("Failed to read message: %v", err) + log.Tracef("Failed to read message: %v", err) conn.Close() return } @@ -430,7 +430,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn, interna // If login failed, send error message there. // Otherwise send success message in control's work goroutine. if err != nil { - xl.Warn("register control error: %v", err) + xl.Warnf("register control error: %v", err) _ = msg.WriteMsg(conn, &msg.LoginResp{ Version: version.Full(), Error: util.GenerateResponseErrorString("register control error", err, lo.FromPtr(svr.cfg.DetailedErrorsToClient)), @@ -443,7 +443,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn, interna } case *msg.NewVisitorConn: if err = svr.RegisterVisitorConn(conn, m); err != nil { - xl.Warn("register visitor conn error: %v", err) + xl.Warnf("register visitor conn error: %v", err) _ = msg.WriteMsg(conn, &msg.NewVisitorConnResp{ ProxyName: m.ProxyName, Error: util.GenerateResponseErrorString("register visitor conn error", err, lo.FromPtr(svr.cfg.DetailedErrorsToClient)), @@ -456,7 +456,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn, interna }) } default: - log.Warn("Error message type for the new connection [%s]", conn.RemoteAddr().String()) + log.Warnf("Error message type for the new connection [%s]", conn.RemoteAddr().String()) conn.Close() } } @@ -469,7 +469,7 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { for { c, err := l.Accept() if err != nil { - log.Warn("Listener for incoming connections from client closed") + log.Warnf("Listener for incoming connections from client closed") return } // inject xlog object into net.Conn context @@ -479,17 +479,17 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { c = netpkg.NewContextConn(xlog.NewContext(ctx, xl), c) if !internal { - log.Trace("start check TLS connection...") + log.Tracef("start check TLS connection...") originConn := c forceTLS := svr.cfg.Transport.TLS.Force var isTLS, custom bool c, isTLS, custom, err = netpkg.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, forceTLS, connReadTimeout) if err != nil { - log.Warn("CheckAndEnableTLSServerConnWithTimeout error: %v", err) + log.Warnf("CheckAndEnableTLSServerConnWithTimeout error: %v", err) originConn.Close() continue } - log.Trace("check TLS connection success, isTLS: %v custom: %v internal: %v", isTLS, custom, internal) + log.Tracef("check TLS connection success, isTLS: %v custom: %v internal: %v", isTLS, custom, internal) } // Start a new goroutine to handle connection. @@ -501,7 +501,7 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Server(frpConn, fmuxCfg) if err != nil { - log.Warn("Failed to create mux connection: %v", err) + log.Warnf("Failed to create mux connection: %v", err) frpConn.Close() return } @@ -509,7 +509,7 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { for { stream, err := session.AcceptStream() if err != nil { - log.Debug("Accept new mux stream error: %v", err) + log.Debugf("Accept new mux stream error: %v", err) session.Close() return } @@ -527,7 +527,7 @@ func (svr *Service) HandleQUICListener(l *quic.Listener) { for { c, err := l.Accept(context.Background()) if err != nil { - log.Warn("QUICListener for incoming connections from client closed") + log.Warnf("QUICListener for incoming connections from client closed") return } // Start a new goroutine to handle connection. @@ -535,7 +535,7 @@ func (svr *Service) HandleQUICListener(l *quic.Listener) { for { stream, err := frpConn.AcceptStream(context.Background()) if err != nil { - log.Debug("Accept new quic mux stream error: %v", err) + log.Debugf("Accept new quic mux stream error: %v", err) _ = frpConn.CloseWithError(0, "") return } @@ -560,7 +560,7 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login, inter xl := xlog.FromContextSafe(ctx) xl.AppendPrefix(loginMsg.RunID) ctx = xlog.NewContext(ctx, xl) - xl.Info("client login info: ip [%s] version [%s] hostname [%s] os [%s] arch [%s]", + xl.Infof("client login info: ip [%s] version [%s] hostname [%s] os [%s] arch [%s]", ctlConn.RemoteAddr().String(), loginMsg.Version, loginMsg.Hostname, loginMsg.Os, loginMsg.Arch) // Check auth. @@ -575,7 +575,7 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login, inter // TODO(fatedier): use SessionContext ctl, err := NewControl(ctx, svr.rc, svr.pxyManager, svr.pluginManager, authVerifier, ctlConn, !internal, loginMsg, svr.cfg) if err != nil { - xl.Warn("create new controller error: %v", err) + xl.Warnf("create new controller error: %v", err) // don't return detailed errors to client return fmt.Errorf("unexpected error when creating new controller") } @@ -601,7 +601,7 @@ func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) xl := netpkg.NewLogFromConn(workConn) ctl, exist := svr.ctlManager.GetByID(newMsg.RunID) if !exist { - xl.Warn("No client control found for run id [%s]", newMsg.RunID) + xl.Warnf("No client control found for run id [%s]", newMsg.RunID) return fmt.Errorf("no client control found for run id [%s]", newMsg.RunID) } // server plugin hook @@ -620,7 +620,7 @@ func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) err = ctl.authVerifier.VerifyNewWorkConn(newMsg) } if err != nil { - xl.Warn("invalid NewWorkConn with run id [%s]", newMsg.RunID) + xl.Warnf("invalid NewWorkConn with run id [%s]", newMsg.RunID) _ = msg.WriteMsg(workConn, &msg.StartWorkConn{ Error: util.GenerateResponseErrorString("invalid NewWorkConn", err, lo.FromPtr(svr.cfg.DetailedErrorsToClient)), }) diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 30887d2a7dc..994ac59deef 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -38,7 +38,7 @@ func RunE2ETests(t *testing.T) { // Randomize specs as well as suites suiteConfig.RandomizeAllSpecs = true - log.Info("Starting e2e run %q on Ginkgo node %d of total %d", + log.Infof("Starting e2e run %q on Ginkgo node %d of total %d", framework.RunID, suiteConfig.ParallelProcess, suiteConfig.ParallelTotal) ginkgo.RunSpecs(t, "frp e2e suite", suiteConfig, reporterConfig) } diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index 27c36e0c809..e32f89f083f 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -34,7 +34,7 @@ func TestMain(m *testing.M) { os.Exit(1) } - log.InitLog("console", framework.TestContext.LogLevel, 0, true) + log.InitLogger("console", framework.TestContext.LogLevel, 0, true) os.Exit(m.Run()) } diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index ae89e820078..0845914bf06 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -31,7 +31,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str ExpectNoError(err) if TestContext.Debug { - flog.Debug("[%s] %s", path, outs[i]) + flog.Debugf("[%s] %s", path, outs[i]) } p := process.NewWithEnvs(TestContext.FRPServerPath, []string{"-c", path}, f.osEnvs) @@ -52,7 +52,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str ExpectNoError(err) if TestContext.Debug { - flog.Debug("[%s] %s", path, outs[index]) + flog.Debugf("[%s] %s", path, outs[index]) } p := process.NewWithEnvs(TestContext.FRPClientPath, []string{"-c", path}, f.osEnvs) diff --git a/test/e2e/framework/request.go b/test/e2e/framework/request.go index 6b75a2593ad..53d44a3eac4 100644 --- a/test/e2e/framework/request.go +++ b/test/e2e/framework/request.go @@ -20,7 +20,7 @@ func ExpectResponseCode(code int) EnsureFunc { if resp.Code == code { return true } - flog.Warn("Expect code %d, but got %d", code, resp.Code) + flog.Warnf("Expect code %d, but got %d", code, resp.Code) return false } } @@ -111,14 +111,14 @@ func (e *RequestExpect) Ensure(fns ...EnsureFunc) { if len(fns) == 0 { if !bytes.Equal(e.expectResp, ret.Content) { - flog.Trace("Response info: %+v", ret) + flog.Tracef("Response info: %+v", ret) } ExpectEqualValuesWithOffset(1, ret.Content, e.expectResp, e.explain...) } else { for _, fn := range fns { ok := fn(ret) if !ok { - flog.Trace("Response info: %+v", ret) + flog.Tracef("Response info: %+v", ret) } ExpectTrueWithOffset(1, ok, e.explain...) } diff --git a/test/e2e/legacy/features/monitor.go b/test/e2e/legacy/features/monitor.go index 8968df9f01b..75aa183bb97 100644 --- a/test/e2e/legacy/features/monitor.go +++ b/test/e2e/legacy/features/monitor.go @@ -41,7 +41,7 @@ var _ = ginkgo.Describe("[Feature: Monitor]", func() { framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { r.HTTP().Port(dashboardPort).HTTPPath("/metrics") }).Ensure(func(resp *request.Response) bool { - log.Trace("prometheus metrics response: \n%s", resp.Content) + log.Tracef("prometheus metrics response: \n%s", resp.Content) if resp.Code != 200 { return false } diff --git a/test/e2e/legacy/features/real_ip.go b/test/e2e/legacy/features/real_ip.go index 082df8c6260..f74c62d2d68 100644 --- a/test/e2e/legacy/features/real_ip.go +++ b/test/e2e/legacy/features/real_ip.go @@ -66,7 +66,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { rd := bufio.NewReader(c) ppHeader, err := pp.Read(rd) if err != nil { - log.Error("read proxy protocol error: %v", err) + log.Errorf("read proxy protocol error: %v", err) return } @@ -93,7 +93,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { f.RunProcesses([]string{serverConf}, []string{clientConf}) framework.NewRequestExpect(f).Port(remotePort).Ensure(func(resp *request.Response) bool { - log.Trace("ProxyProtocol get SourceAddr: %s", string(resp.Content)) + log.Tracef("ProxyProtocol get SourceAddr: %s", string(resp.Content)) addr, err := net.ResolveTCPAddr("tcp", string(resp.Content)) if err != nil { return false @@ -121,7 +121,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { rd := bufio.NewReader(c) ppHeader, err := pp.Read(rd) if err != nil { - log.Error("read proxy protocol error: %v", err) + log.Errorf("read proxy protocol error: %v", err) return } srcAddrRecord = ppHeader.SourceAddr.String() @@ -142,7 +142,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { r.HTTP().HTTPHost("normal.example.com") }).Ensure(framework.ExpectResponseCode(404)) - log.Trace("ProxyProtocol get SourceAddr: %s", srcAddrRecord) + log.Tracef("ProxyProtocol get SourceAddr: %s", srcAddrRecord) addr, err := net.ResolveTCPAddr("tcp", srcAddrRecord) framework.ExpectNoError(err, srcAddrRecord) framework.ExpectEqualValues("127.0.0.1", addr.IP.String()) diff --git a/test/e2e/pkg/plugin/plugin.go b/test/e2e/pkg/plugin/plugin.go index 51de01d9383..b807a060a0d 100644 --- a/test/e2e/pkg/plugin/plugin.go +++ b/test/e2e/pkg/plugin/plugin.go @@ -26,7 +26,7 @@ func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler Handler, tl w.WriteHeader(500) return } - log.Trace("plugin request: %s", string(buf)) + log.Tracef("plugin request: %s", string(buf)) err = json.Unmarshal(buf, &r) if err != nil { w.WriteHeader(500) @@ -34,7 +34,7 @@ func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler Handler, tl } resp := handler(r) buf, _ = json.Marshal(resp) - log.Trace("plugin response: %s", string(buf)) + log.Tracef("plugin response: %s", string(buf)) _, _ = w.Write(buf) })), ) diff --git a/test/e2e/v1/features/monitor.go b/test/e2e/v1/features/monitor.go index 5d4b8f9f908..fe92203a159 100644 --- a/test/e2e/v1/features/monitor.go +++ b/test/e2e/v1/features/monitor.go @@ -42,7 +42,7 @@ var _ = ginkgo.Describe("[Feature: Monitor]", func() { framework.NewRequestExpect(f).RequestModify(func(r *request.Request) { r.HTTP().Port(dashboardPort).HTTPPath("/metrics") }).Ensure(func(resp *request.Response) bool { - log.Trace("prometheus metrics response: \n%s", resp.Content) + log.Tracef("prometheus metrics response: \n%s", resp.Content) if resp.Code != 200 { return false } diff --git a/test/e2e/v1/features/real_ip.go b/test/e2e/v1/features/real_ip.go index 85338c62072..11febaa245d 100644 --- a/test/e2e/v1/features/real_ip.go +++ b/test/e2e/v1/features/real_ip.go @@ -67,7 +67,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { rd := bufio.NewReader(c) ppHeader, err := pp.Read(rd) if err != nil { - log.Error("read proxy protocol error: %v", err) + log.Errorf("read proxy protocol error: %v", err) return } @@ -95,7 +95,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { f.RunProcesses([]string{serverConf}, []string{clientConf}) framework.NewRequestExpect(f).Port(remotePort).Ensure(func(resp *request.Response) bool { - log.Trace("ProxyProtocol get SourceAddr: %s", string(resp.Content)) + log.Tracef("ProxyProtocol get SourceAddr: %s", string(resp.Content)) addr, err := net.ResolveTCPAddr("tcp", string(resp.Content)) if err != nil { return false @@ -123,7 +123,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { rd := bufio.NewReader(c) ppHeader, err := pp.Read(rd) if err != nil { - log.Error("read proxy protocol error: %v", err) + log.Errorf("read proxy protocol error: %v", err) return } srcAddrRecord = ppHeader.SourceAddr.String() @@ -145,7 +145,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { r.HTTP().HTTPHost("normal.example.com") }).Ensure(framework.ExpectResponseCode(404)) - log.Trace("ProxyProtocol get SourceAddr: %s", srcAddrRecord) + log.Tracef("ProxyProtocol get SourceAddr: %s", srcAddrRecord) addr, err := net.ResolveTCPAddr("tcp", srcAddrRecord) framework.ExpectNoError(err, srcAddrRecord) framework.ExpectEqualValues("127.0.0.1", addr.IP.String()) From e6ec5a509bf55d77af7b898f851aec239a669526 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 12 Mar 2024 15:14:13 +0800 Subject: [PATCH 177/444] update release notes (#4055) --- Release.md | 9 +++++++++ cmd/frpc/sub/root.go | 2 +- cmd/frps/root.go | 2 +- pkg/config/v1/plugin.go | 2 +- pkg/config/v1/proxy.go | 2 +- pkg/config/v1/visitor.go | 2 +- pkg/util/version/version.go | 2 +- test/e2e/v1/plugin/client.go | 3 ++- 8 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Release.md b/Release.md index c0d90bbc868..babea4c319a 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,12 @@ +### Notable Changes + +* The minimum supported Go version has been updated to `1.22`. In the new version of Go, the default minimum supported TLS version has been changed to `TLS 1.2`. +* The default value of `--strict-config` has been changed from `false` to `true`. If your configuration file uses a non-existent configuration item or has a spelling error, the application will throw an error. This startup parameter was introduced in version `v0.53.0`. If you wish to continue using the old behavior, you need to explicitly set `--strict-config=false`. + ### Features * Proxy supports configuring annotations, which will be displayed in the frps dashboard. + +### Changes + +* Removed dependencies on the forked version of kcp-go and beego log, kcp-go now uses the upstream version, and golib/log replaces beego log. diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index a496d077a2f..b844ddfd5e9 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -46,7 +46,7 @@ func init() { rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "./frpc.ini", "config file of frpc") rootCmd.PersistentFlags().StringVarP(&cfgDir, "config_dir", "", "", "config directory, run one frpc service for each file in config directory") rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frpc") - rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", false, "strict config parsing mode, unknown fields will cause an error") + rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", true, "strict config parsing mode, unknown fields will cause an errors") } var rootCmd = &cobra.Command{ diff --git a/cmd/frps/root.go b/cmd/frps/root.go index d69df5f5da8..fff487d1074 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -40,7 +40,7 @@ var ( func init() { rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "", "config file of frps") rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frps") - rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", false, "strict config parsing mode, unknown fields will cause error") + rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", true, "strict config parsing mode, unknown fields will cause errors") config.RegisterServerConfigFlags(rootCmd, &serverCfg) } diff --git a/pkg/config/v1/plugin.go b/pkg/config/v1/plugin.go index db9d0d1a0b2..5602a813c3c 100644 --- a/pkg/config/v1/plugin.go +++ b/pkg/config/v1/plugin.go @@ -57,7 +57,7 @@ func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error { } if err := decoder.Decode(options); err != nil { - return err + return fmt.Errorf("unmarshal ClientPluginOptions error: %v", err) } c.ClientPluginOptions = options return nil diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index cf87037ac15..c906543211e 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -186,7 +186,7 @@ func (c *TypedProxyConfig) UnmarshalJSON(b []byte) error { decoder.DisallowUnknownFields() } if err := decoder.Decode(configurer); err != nil { - return err + return fmt.Errorf("unmarshal ProxyConfig error: %v", err) } c.ProxyConfigurer = configurer return nil diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go index a9b2411ab3d..e9fa166ea57 100644 --- a/pkg/config/v1/visitor.go +++ b/pkg/config/v1/visitor.go @@ -114,7 +114,7 @@ func (c *TypedVisitorConfig) UnmarshalJSON(b []byte) error { decoder.DisallowUnknownFields() } if err := decoder.Decode(configurer); err != nil { - return err + return fmt.Errorf("unmarshal VisitorConfig error: %v", err) } c.VisitorConfigurer = configurer return nil diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 27ed32ec50d..c25574dc578 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.54.0" +var version = "0.55.0" func Full() string { return version diff --git a/test/e2e/v1/plugin/client.go b/test/e2e/v1/plugin/client.go index f544570ae7e..476adb89e09 100644 --- a/test/e2e/v1/plugin/client.go +++ b/test/e2e/v1/plugin/client.go @@ -30,10 +30,11 @@ var _ = ginkgo.Describe("[Feature: Client-Plugins]", func() { name = "%s" type = "tcp" remotePort = {{ .%s }} + `+extra, proxyName, portName) + fmt.Sprintf(` [proxies.plugin] type = "unix_domain_socket" unixPath = "{{ .%s }}" - `+extra, proxyName, portName, framework.UDSEchoServerAddr) + `, framework.UDSEchoServerAddr) } tests := []struct { From e0c979e98eebc5a4799a87c2b45773cd0abcd982 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 12 Mar 2024 17:37:14 +0800 Subject: [PATCH 178/444] fix release scripts (#4057) --- Makefile.cross-compiles | 6 +++--- Release.md | 13 +------------ pkg/util/version/version.go | 2 +- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/Makefile.cross-compiles b/Makefile.cross-compiles index 3c123df8af6..1040ef2c5f6 100644 --- a/Makefile.cross-compiles +++ b/Makefile.cross-compiles @@ -1,4 +1,4 @@ -export PATH := $(GOPATH)/bin:$(PATH) +export PATH := $(PATH):`go env GOPATH`/bin export GO111MODULE=on LDFLAGS := -s -w @@ -15,8 +15,8 @@ app: gomips=$(shell echo "$(n)" | cut -d : -f 3);\ target_suffix=$${os}_$${arch};\ echo "Build $${os}-$${arch}...";\ - env CGO_ENABLED=0 GOOS=$${os} GOARCH=$${arch} GOMIPS=$${gomips} go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frpc_$${target_suffix} ./cmd/frpc;\ - env CGO_ENABLED=0 GOOS=$${os} GOARCH=$${arch} GOMIPS=$${gomips} go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frps_$${target_suffix} ./cmd/frps;\ + env CGO_ENABLED=0 GOOS=$${os} GOARCH=$${arch} GOMIPS=$${gomips} go build -trimpath -ldflags "$(LDFLAGS)" -tags frpc -o ./release/frpc_$${target_suffix} ./cmd/frpc;\ + env CGO_ENABLED=0 GOOS=$${os} GOARCH=$${arch} GOMIPS=$${gomips} go build -trimpath -ldflags "$(LDFLAGS)" -tags frps -o ./release/frps_$${target_suffix} ./cmd/frps;\ echo "Build $${os}-$${arch} done";\ ) @mv ./release/frpc_windows_amd64 ./release/frpc_windows_amd64.exe diff --git a/Release.md b/Release.md index babea4c319a..bf512ca5b29 100644 --- a/Release.md +++ b/Release.md @@ -1,12 +1 @@ -### Notable Changes - -* The minimum supported Go version has been updated to `1.22`. In the new version of Go, the default minimum supported TLS version has been changed to `TLS 1.2`. -* The default value of `--strict-config` has been changed from `false` to `true`. If your configuration file uses a non-existent configuration item or has a spelling error, the application will throw an error. This startup parameter was introduced in version `v0.53.0`. If you wish to continue using the old behavior, you need to explicitly set `--strict-config=false`. - -### Features - -* Proxy supports configuring annotations, which will be displayed in the frps dashboard. - -### Changes - -* Removed dependencies on the forked version of kcp-go and beego log, kcp-go now uses the upstream version, and golib/log replaces beego log. +No feature changes, just a fix for the issue of no released assets in version 0.55.0. diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index c25574dc578..f5bac1bca87 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.55.0" +var version = "0.55.1" func Full() string { return version From d5589213c5d190450d510d392602f408b9f7167f Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 12 Mar 2024 18:07:55 +0800 Subject: [PATCH 179/444] add `set -e` in package.sh (#4059) --- package.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.sh b/package.sh index de3ab2fded0..9a6290db442 100755 --- a/package.sh +++ b/package.sh @@ -1,3 +1,6 @@ +#!/bin/sh +set -e + # compile for version make if [ $? -ne 0 ]; then From 86c2ad78c859bc2172404d7327336bab230b8660 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 13 Mar 2024 21:53:09 +0800 Subject: [PATCH 180/444] disable quic-go's receive buffer warning (#4063) --- Release.md | 1 - client/service.go | 3 +++ server/service.go | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Release.md b/Release.md index bf512ca5b29..e69de29bb2d 100644 --- a/Release.md +++ b/Release.md @@ -1 +0,0 @@ -No feature changes, just a fix for the issue of no released assets in version 0.55.0. diff --git a/client/service.go b/client/service.go index 25e108fc8b6..e24e16d7fa3 100644 --- a/client/service.go +++ b/client/service.go @@ -19,6 +19,7 @@ import ( "errors" "fmt" "net" + "os" "runtime" "sync" "time" @@ -40,6 +41,8 @@ import ( func init() { crypto.DefaultSalt = "frp" + // Disable quic-go's receive buffer warning. + os.Setenv("QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING", "true") } type cancelErr struct { diff --git a/server/service.go b/server/service.go index 12564325b5d..4c3ee125f41 100644 --- a/server/service.go +++ b/server/service.go @@ -22,6 +22,7 @@ import ( "io" "net" "net/http" + "os" "strconv" "time" @@ -59,6 +60,11 @@ const ( vhostReadWriteTimeout time.Duration = 30 * time.Second ) +func init() { + // Disable quic-go's receive buffer warning. + os.Setenv("QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING", "true") +} + // Server service type Service struct { // Dispatch connections to different handlers listen on same port From fa977c839f0863f2dd4b7ce560552d85a6fff777 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 14 Mar 2024 19:49:58 +0800 Subject: [PATCH 181/444] fix daily log rotate (#4066) --- Release.md | 3 +++ go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Release.md b/Release.md index e69de29bb2d..3f4af070a58 100644 --- a/Release.md +++ b/Release.md @@ -0,0 +1,3 @@ +### Fixes + +* Fix the issue of incorrect interval time for rotating the log by day. diff --git a/go.mod b/go.mod index 3d82efe4820..977c436b0ee 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.6.0 - github.com/fatedier/golib v0.4.0 + github.com/fatedier/golib v0.4.1 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 diff --git a/go.sum b/go.sum index 474da7b48b9..0c472ae6c64 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatedier/golib v0.4.0 h1:lafvYRMhFmqrfIUChKy/f5AXqs1eDSk+GAUtLexN5bU= -github.com/fatedier/golib v0.4.0/go.mod h1:gpu+1vXxtJ072NYaNsn/YWgojDL8Ap2kFZQtbzT2qkg= +github.com/fatedier/golib v0.4.1 h1:C37VN3M+F3nUdh13laZsiyb5EXNe3tZnUdoHi+7rx+Q= +github.com/fatedier/golib v0.4.1/go.mod h1:gpu+1vXxtJ072NYaNsn/YWgojDL8Ap2kFZQtbzT2qkg= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= From 8383d528d982fdb746e939dfb9d170b53ef93f7b Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 15 Mar 2024 14:22:03 +0800 Subject: [PATCH 182/444] disable quic-go's ECN support by default (#4069) --- Release.md | 1 + client/service.go | 4 ++++ server/service.go | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/Release.md b/Release.md index 3f4af070a58..a699be85ad0 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,4 @@ ### Fixes * Fix the issue of incorrect interval time for rotating the log by day. +* Disable quic-go's ECN support by default. It may cause issues on certain operating systems. diff --git a/client/service.go b/client/service.go index e24e16d7fa3..7a7f6dc88d2 100644 --- a/client/service.go +++ b/client/service.go @@ -43,6 +43,10 @@ func init() { crypto.DefaultSalt = "frp" // Disable quic-go's receive buffer warning. os.Setenv("QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING", "true") + // Disable quic-go's ECN support by default. It may cause issues on certain operating systems. + if os.Getenv("QUIC_GO_DISABLE_ECN") == "" { + os.Setenv("QUIC_GO_DISABLE_ECN", "true") + } } type cancelErr struct { diff --git a/server/service.go b/server/service.go index 4c3ee125f41..4fdb2166ac7 100644 --- a/server/service.go +++ b/server/service.go @@ -63,6 +63,10 @@ const ( func init() { // Disable quic-go's receive buffer warning. os.Setenv("QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING", "true") + // Disable quic-go's ECN support by default. It may cause issues on certain operating systems. + if os.Getenv("QUIC_GO_DISABLE_ECN") == "" { + os.Setenv("QUIC_GO_DISABLE_ECN", "true") + } } // Server service From 3585f5c0c08a23cc840df1c16e4deb8c4ad719b9 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 15 Mar 2024 17:23:16 +0800 Subject: [PATCH 183/444] support range ports mapping by go template (#4073) --- pkg/config/load.go | 5 +++- pkg/config/template.go | 52 +++++++++++++++++++++++++++++++++ test/e2e/framework/client.go | 12 ++++---- test/e2e/framework/expect.go | 4 +++ test/e2e/framework/framework.go | 2 +- test/e2e/legacy/basic/client.go | 5 ++-- test/e2e/legacy/basic/server.go | 3 +- test/e2e/v1/basic/client.go | 5 ++-- test/e2e/v1/basic/config.go | 45 ++++++++++++++++++++++++++++ test/e2e/v1/basic/server.go | 3 +- 10 files changed, 117 insertions(+), 19 deletions(-) create mode 100644 pkg/config/template.go diff --git a/pkg/config/load.go b/pkg/config/load.go index cdbb8e916f4..f9a705eb213 100644 --- a/pkg/config/load.go +++ b/pkg/config/load.go @@ -80,7 +80,10 @@ func DetectLegacyINIFormatFromFile(path string) bool { } func RenderWithTemplate(in []byte, values *Values) ([]byte, error) { - tmpl, err := template.New("frp").Parse(string(in)) + tmpl, err := template.New("frp").Funcs(template.FuncMap{ + "parseNumberRange": parseNumberRange, + "parseNumberRangePair": parseNumberRangePair, + }).Parse(string(in)) if err != nil { return nil, err } diff --git a/pkg/config/template.go b/pkg/config/template.go new file mode 100644 index 00000000000..44bc456dd7b --- /dev/null +++ b/pkg/config/template.go @@ -0,0 +1,52 @@ +// Copyright 2024 The frp Authors +// +// Licensed 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. + +package config + +import ( + "fmt" + + "github.com/fatedier/frp/pkg/util/util" +) + +type NumberPair struct { + First int64 + Second int64 +} + +func parseNumberRangePair(firstRangeStr, secondRangeStr string) ([]NumberPair, error) { + firstRangeNumbers, err := util.ParseRangeNumbers(firstRangeStr) + if err != nil { + return nil, err + } + secondRangeNumbers, err := util.ParseRangeNumbers(secondRangeStr) + if err != nil { + return nil, err + } + if len(firstRangeNumbers) != len(secondRangeNumbers) { + return nil, fmt.Errorf("first and second range numbers are not in pairs") + } + pairs := make([]NumberPair, 0, len(firstRangeNumbers)) + for i := 0; i < len(firstRangeNumbers); i++ { + pairs = append(pairs, NumberPair{ + First: firstRangeNumbers[i], + Second: secondRangeNumbers[i], + }) + } + return pairs, nil +} + +func parseNumberRange(firstRangeStr string) ([]int64, error) { + return util.ParseRangeNumbers(firstRangeStr) +} diff --git a/test/e2e/framework/client.go b/test/e2e/framework/client.go index 76614354a48..c13cee10a46 100644 --- a/test/e2e/framework/client.go +++ b/test/e2e/framework/client.go @@ -1,11 +1,9 @@ package framework -type FRPClient struct { - port int -} +import ( + clientsdk "github.com/fatedier/frp/pkg/sdk/client" +) -func (f *Framework) FRPClient(port int) *FRPClient { - return &FRPClient{ - port: port, - } +func (f *Framework) APIClientForFrpc(port int) *clientsdk.Client { + return clientsdk.New("127.0.0.1", port) } diff --git a/test/e2e/framework/expect.go b/test/e2e/framework/expect.go index dab6da70ef0..3c357bb02cd 100644 --- a/test/e2e/framework/expect.go +++ b/test/e2e/framework/expect.go @@ -43,6 +43,10 @@ func ExpectNoErrorWithOffset(offset int, err error, explain ...interface{}) { gomega.ExpectWithOffset(1+offset, err).NotTo(gomega.HaveOccurred(), explain...) } +func ExpectContainSubstring(actual, substr string, explain ...interface{}) { + gomega.ExpectWithOffset(1, actual).To(gomega.ContainSubstring(substr), explain...) +} + // ExpectConsistOf expects actual contains precisely the extra elements. The ordering of the elements does not matter. func ExpectConsistOf(actual interface{}, extra interface{}, explain ...interface{}) { gomega.ExpectWithOffset(1, actual).To(gomega.ConsistOf(extra), explain...) diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index e0be5af14f9..527096cd1b4 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -217,7 +217,7 @@ func (f *Framework) RenderTemplates(templates []string) (outs []string, ports ma } for _, t := range templates { - tmpl, err := template.New("").Parse(t) + tmpl, err := template.New("frp-e2e").Parse(t) if err != nil { return nil, nil, err } diff --git a/test/e2e/legacy/basic/client.go b/test/e2e/legacy/basic/client.go index d4862e529dc..98f675b823a 100644 --- a/test/e2e/legacy/basic/client.go +++ b/test/e2e/legacy/basic/client.go @@ -8,7 +8,6 @@ import ( "github.com/onsi/ginkgo/v2" - clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/request" @@ -54,7 +53,7 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { framework.NewRequestExpect(f).Port(p2Port).Ensure() framework.NewRequestExpect(f).Port(p3Port).Ensure() - client := clientsdk.New("127.0.0.1", adminPort) + client := f.APIClientForFrpc(adminPort) conf, err := client.GetConfig() framework.ExpectNoError(err) @@ -120,7 +119,7 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { framework.NewRequestExpect(f).Port(testPort).Ensure() - client := clientsdk.New("127.0.0.1", adminPort) + client := f.APIClientForFrpc(adminPort) err := client.Stop() framework.ExpectNoError(err) diff --git a/test/e2e/legacy/basic/server.go b/test/e2e/legacy/basic/server.go index ca6717c639a..62bfd62ae71 100644 --- a/test/e2e/legacy/basic/server.go +++ b/test/e2e/legacy/basic/server.go @@ -7,7 +7,6 @@ import ( "github.com/onsi/ginkgo/v2" - clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/port" @@ -99,7 +98,7 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { f.RunProcesses([]string{serverConf}, []string{clientConf}) - client := clientsdk.New("127.0.0.1", adminPort) + client := f.APIClientForFrpc(adminPort) // tcp random port status, err := client.GetProxyStatus("tcp") diff --git a/test/e2e/v1/basic/client.go b/test/e2e/v1/basic/client.go index b0b258db308..ef5e262f709 100644 --- a/test/e2e/v1/basic/client.go +++ b/test/e2e/v1/basic/client.go @@ -8,7 +8,6 @@ import ( "github.com/onsi/ginkgo/v2" - clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/request" @@ -57,7 +56,7 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { framework.NewRequestExpect(f).Port(p2Port).Ensure() framework.NewRequestExpect(f).Port(p3Port).Ensure() - client := clientsdk.New("127.0.0.1", adminPort) + client := f.APIClientForFrpc(adminPort) conf, err := client.GetConfig() framework.ExpectNoError(err) @@ -124,7 +123,7 @@ var _ = ginkgo.Describe("[Feature: ClientManage]", func() { framework.NewRequestExpect(f).Port(testPort).Ensure() - client := clientsdk.New("127.0.0.1", adminPort) + client := f.APIClientForFrpc(adminPort) err := client.Stop() framework.ExpectNoError(err) diff --git a/test/e2e/v1/basic/config.go b/test/e2e/v1/basic/config.go index 686b3c5c498..7dc3cedb3d9 100644 --- a/test/e2e/v1/basic/config.go +++ b/test/e2e/v1/basic/config.go @@ -38,6 +38,51 @@ var _ = ginkgo.Describe("[Feature: Config]", func() { framework.NewRequestExpect(f).PortName(portName).Ensure() }) + + ginkgo.It("Range ports mapping", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + adminPort := f.AllocPort() + + localPortsRange := "13010-13012,13014" + remotePortsRange := "23010-23012,23014" + escapeTemplate := func(s string) string { + return "{{ `" + s + "` }}" + } + clientConf += fmt.Sprintf(` + webServer.port = %d + + %s + [[proxies]] + name = "tcp-%s" + type = "tcp" + localPort = %s + remotePort = %s + %s + `, adminPort, + escapeTemplate(fmt.Sprintf(`{{- range $_, $v := parseNumberRangePair "%s" "%s" }}`, localPortsRange, remotePortsRange)), + escapeTemplate("{{ $v.First }}"), + escapeTemplate("{{ $v.First }}"), + escapeTemplate("{{ $v.Second }}"), + escapeTemplate("{{- end }}"), + ) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + client := f.APIClientForFrpc(adminPort) + checkProxyFn := func(name string, localPort, remotePort int) { + status, err := client.GetProxyStatus(name) + framework.ExpectNoError(err) + + framework.ExpectContainSubstring(status.LocalAddr, fmt.Sprintf(":%d", localPort)) + framework.ExpectContainSubstring(status.RemoteAddr, fmt.Sprintf(":%d", remotePort)) + } + checkProxyFn("tcp-13010", 13010, 23010) + checkProxyFn("tcp-13011", 13011, 23011) + checkProxyFn("tcp-13012", 13012, 23012) + checkProxyFn("tcp-13014", 13014, 23014) + }) }) ginkgo.Describe("Includes", func() { diff --git a/test/e2e/v1/basic/server.go b/test/e2e/v1/basic/server.go index f2f4e0a5954..fe8af4d1108 100644 --- a/test/e2e/v1/basic/server.go +++ b/test/e2e/v1/basic/server.go @@ -7,7 +7,6 @@ import ( "github.com/onsi/ginkgo/v2" - clientsdk "github.com/fatedier/frp/pkg/sdk/client" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/pkg/port" @@ -110,7 +109,7 @@ var _ = ginkgo.Describe("[Feature: Server Manager]", func() { f.RunProcesses([]string{serverConf}, []string{clientConf}) - client := clientsdk.New("127.0.0.1", adminPort) + client := f.APIClientForFrpc(adminPort) // tcp random port status, err := client.GetProxyStatus("tcp") From acf33db4e4b6c9cf9182d93280299010637b6324 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 15 Mar 2024 17:50:58 +0800 Subject: [PATCH 184/444] update release notes (#4074) --- Release.md | 18 ++++++++++++++++++ pkg/util/version/version.go | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Release.md b/Release.md index a699be85ad0..f106d8025ce 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,21 @@ +### Features + +* Support range ports mapping in TOML/YAML/JSON configuration file by using go template syntax. + + For example: + + ``` + {{- range $_, $v := parseNumberRangePair "6000-6006,6007" "6000-6006,6007" }} + [[proxies]] + name = "tcp-{{ $v.First }}" + type = "tcp" + localPort = {{ $v.First }} + remotePort = {{ $v.Second }} + {{- end }} + ``` + + This will create 8 proxies such as `tcp-6000, tcp-6001, ... tcp-6007`. + ### Fixes * Fix the issue of incorrect interval time for rotating the log by day. diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index f5bac1bca87..90af7813120 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.55.1" +var version = "0.56.0" func Full() string { return version From 002831ea823edfa2ab3695b3f4fc0404979bcedf Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 19 Mar 2024 13:22:29 +0800 Subject: [PATCH 185/444] add doc for port range mapping (#4081) --- README.md | 19 +++++++++++++++++++ go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8dbf45ada28..69cce9ddc48 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ frp also offers a P2P connect mode. * [URL Routing](#url-routing) * [TCP Port Multiplexing](#tcp-port-multiplexing) * [Connecting to frps via PROXY](#connecting-to-frps-via-proxy) + * [Port range mapping](#port-range-mapping) * [Client Plugins](#client-plugins) * [Server Manage Plugins](#server-manage-plugins) * [SSH Tunnel Gateway](#ssh-tunnel-gateway) @@ -1158,6 +1159,24 @@ serverPort = 7000 transport.proxyURL = "http://user:pwd@192.168.1.128:8080" ``` +### Port range mapping + +*Added in v0.56.0* + +We can use the range syntax of Go template combined with the built-in `parseNumberRangePair` function to achieve port range mapping. + +The following example, when run, will create 8 proxies named `test-6000, test-6001 ... test-6007`, each mapping the remote port to the local port. + +``` +{{- range $_, $v := parseNumberRangePair "6000-6006,6007" "6000-6006,6007" }} +[[proxies]] +name = "tcp-{{ $v.First }}" +type = "tcp" +localPort = {{ $v.First }} +remotePort = {{ $v.Second }} +{{- end }} +``` + ### Client Plugins frpc only forwards requests to local TCP or UDP ports by default. diff --git a/go.mod b/go.mod index 977c436b0ee..d820b96cdd2 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.6.0 - github.com/fatedier/golib v0.4.1 + github.com/fatedier/golib v0.4.2 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 diff --git a/go.sum b/go.sum index 0c472ae6c64..b00cb78fafd 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatedier/golib v0.4.1 h1:C37VN3M+F3nUdh13laZsiyb5EXNe3tZnUdoHi+7rx+Q= -github.com/fatedier/golib v0.4.1/go.mod h1:gpu+1vXxtJ072NYaNsn/YWgojDL8Ap2kFZQtbzT2qkg= +github.com/fatedier/golib v0.4.2 h1:k+ZBdUFTTipnP1RHfEhGbzyShRdz/rZtFGnjpXG9D9c= +github.com/fatedier/golib v0.4.2/go.mod h1:gpu+1vXxtJ072NYaNsn/YWgojDL8Ap2kFZQtbzT2qkg= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= From bc5fb91c055eb1befdad5d5051c91290fab3d816 Mon Sep 17 00:00:00 2001 From: Kaive Young Date: Wed, 20 Mar 2024 14:58:03 +0800 Subject: [PATCH 186/444] add header for http healthcheck (#4085) --- client/health/health.go | 12 ++++++++++-- conf/frpc_full_example.toml | 4 ++++ pkg/config/v1/common.go | 5 +++++ pkg/config/v1/proxy.go | 3 +++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/client/health/health.go b/client/health/health.go index 7147f779340..d298e61520d 100644 --- a/client/health/health.go +++ b/client/health/health.go @@ -40,8 +40,8 @@ type Monitor struct { addr string // For http - url string - + url string + header http.Header failedTimes uint64 statusOK bool statusNormalFn func() @@ -73,6 +73,11 @@ func NewMonitor(ctx context.Context, cfg v1.HealthCheckConfig, addr string, } url = s + cfg.Path } + header := make(http.Header) + for _, h := range cfg.HTTPHeaders { + header.Set(h.Name, h.Value) + } + return &Monitor{ checkType: cfg.Type, interval: time.Duration(cfg.IntervalSeconds) * time.Second, @@ -80,6 +85,7 @@ func NewMonitor(ctx context.Context, cfg v1.HealthCheckConfig, addr string, maxFailedTimes: cfg.MaxFailed, addr: addr, url: url, + header: header, statusOK: false, statusNormalFn: statusNormalFn, statusFailedFn: statusFailedFn, @@ -163,6 +169,8 @@ func (monitor *Monitor) doHTTPCheck(ctx context.Context) error { if err != nil { return err } + req.Header = monitor.header + req.Host = monitor.header.Get("Host") resp, err := http.DefaultClient.Do(req) if err != nil { return err diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index 59de6fa48e5..4dae6b3c6e6 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -216,6 +216,10 @@ healthCheck.path = "/status" healthCheck.intervalSeconds = 10 healthCheck.maxFailed = 3 healthCheck.timeoutSeconds = 3 +# set health check headers +healthCheck.httpheaders=[ + { name = "x-from-where", value = "frp" } +] [[proxies]] name = "web02" diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go index 24ec9b0d825..ddb23356823 100644 --- a/pkg/config/v1/common.go +++ b/pkg/config/v1/common.go @@ -129,3 +129,8 @@ type HTTPPluginOptions struct { type HeaderOperations struct { Set map[string]string `json:"set,omitempty"` } + +type HTTPHeader struct { + Name string `json:"name"` + Value string `json:"value"` +} diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index c906543211e..9d91b585583 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -97,6 +97,9 @@ type HealthCheckConfig struct { // Path specifies the path to send health checks to if the // health check type is "http". Path string `json:"path,omitempty"` + // Headers specifies the headers to send health checks to if the + // health check type is "http". + HTTPHeaders []HTTPHeader `json:"httpHeaders,omitempty"` } type DomainConfig struct { From c08be0fd926f46f1f5fd9b2105b9ba3753522548 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 20 Mar 2024 15:16:01 +0800 Subject: [PATCH 187/444] update release notes (#4086) --- Release.md | 2 ++ conf/frpc_full_example.toml | 2 +- pkg/config/v1/proxy.go | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Release.md b/Release.md index f106d8025ce..ca58a04d7d9 100644 --- a/Release.md +++ b/Release.md @@ -16,6 +16,8 @@ This will create 8 proxies such as `tcp-6000, tcp-6001, ... tcp-6007`. +* Health check supports custom request headers. + ### Fixes * Fix the issue of incorrect interval time for rotating the log by day. diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index 4dae6b3c6e6..0528ddeaf37 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -217,7 +217,7 @@ healthCheck.intervalSeconds = 10 healthCheck.maxFailed = 3 healthCheck.timeoutSeconds = 3 # set health check headers -healthCheck.httpheaders=[ +healthCheck.httpHeaders=[ { name = "x-from-where", value = "frp" } ] diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index 9d91b585583..1949cfd34d1 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -97,8 +97,8 @@ type HealthCheckConfig struct { // Path specifies the path to send health checks to if the // health check type is "http". Path string `json:"path,omitempty"` - // Headers specifies the headers to send health checks to if the - // health check type is "http". + // HTTPHeaders specifies the headers to send with the health request, if + // the health check type is "http". HTTPHeaders []HTTPHeader `json:"httpHeaders,omitempty"` } From b36f3834eb5cefbd25c85777df9b362ddc6c2820 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 20 Mar 2024 15:48:31 +0800 Subject: [PATCH 188/444] use math/rand/v2 (#4020) --- .github/workflows/golangci-lint.yml | 2 +- .golangci.yml | 27 +++++++++------------------ pkg/nathole/nathole.go | 6 +++--- pkg/util/util/util.go | 4 ++-- pkg/util/wait/backoff.go | 2 +- 5 files changed, 16 insertions(+), 25 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 18f69d52438..b3e2cb43c39 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -23,7 +23,7 @@ jobs: uses: golangci/golangci-lint-action@v4 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v1.56 + version: v1.57 # Optional: golangci-lint command line arguments. # args: --issues-exit-code=0 diff --git a/.golangci.yml b/.golangci.yml index cd92e43c89f..e2f8a240991 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,5 @@ service: - golangci-lint-version: 1.56.x # use the fixed version to not introduce new linters unexpectedly + golangci-lint-version: 1.57.x # use the fixed version to not introduce new linters unexpectedly run: concurrency: 4 @@ -8,23 +8,6 @@ run: build-tags: - integ - integfuzz - # which dirs to skip: they won't be analyzed; - # can use regexp here: generated.*, regexp is applied on full path; - # default value is empty list, but next dirs are always skipped independently - # from this option's value: - # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ - skip-dirs: - - genfiles$ - - vendor$ - - bin$ - - # which files to skip: they will be analyzed, but issues from them - # won't be reported. Default value is empty list, but there is - # no need to include all autogenerated files, we confidently recognize - # autogenerated files. If it's not please let us know. - skip-files: - - ".*\\.pb\\.go" - - ".*\\.gen\\.go" linters: disable-all: true @@ -136,6 +119,14 @@ issues: - unparam text: "is always false" + exclude-dirs: + - genfiles$ + - vendor$ + - bin$ + exclude-files: + - ".*\\.pb\\.go" + - ".*\\.gen\\.go" + # Independently from option `exclude` we use default exclude patterns, # it can be disabled by this option. To list all # excluded by default patterns execute `golangci-lint run --help`. diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index 18cd12bcf9b..bdd0ee83cb2 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -17,7 +17,7 @@ package nathole import ( "context" "fmt" - "math/rand" + "math/rand/v2" "net" "slices" "strconv" @@ -341,7 +341,7 @@ func sendSidMessage( TransactionID: transactionID, Sid: sid, Response: false, - Nonce: strings.Repeat("0", rand.Intn(20)), + Nonce: strings.Repeat("0", rand.IntN(20)), } buf, err := EncodeMessage(m, key) if err != nil { @@ -398,7 +398,7 @@ func sendSidMessageToRandomPorts( used := sets.New[int]() getUnusedPort := func() int { for i := 0; i < 10; i++ { - port := rand.Intn(65535-1024) + 1024 + port := rand.IntN(65535-1024) + 1024 if !used.Has(port) { used.Insert(port) return port diff --git a/pkg/util/util/util.go b/pkg/util/util/util.go index c7fd9971f28..7758054d948 100644 --- a/pkg/util/util/util.go +++ b/pkg/util/util/util.go @@ -20,7 +20,7 @@ import ( "crypto/subtle" "encoding/hex" "fmt" - mathrand "math/rand" + mathrand "math/rand/v2" "net" "strconv" "strings" @@ -124,7 +124,7 @@ func RandomSleep(duration time.Duration, minRatio, maxRatio float64) time.Durati if max <= min { n = min } else { - n = mathrand.Int63n(max-min) + min + n = mathrand.Int64N(max-min) + min } d := duration * time.Duration(n) / time.Duration(1000) time.Sleep(d) diff --git a/pkg/util/wait/backoff.go b/pkg/util/wait/backoff.go index 16d9dd6a850..4d01ace328c 100644 --- a/pkg/util/wait/backoff.go +++ b/pkg/util/wait/backoff.go @@ -15,7 +15,7 @@ package wait import ( - "math/rand" + "math/rand/v2" "time" "github.com/fatedier/frp/pkg/util/util" From f16ef0097565f4835fb1fd04074c9310fa22a30b Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 21 Mar 2024 17:34:09 +0800 Subject: [PATCH 189/444] set CompatibilityMode for android (#4091) --- Makefile.cross-compiles | 2 +- Release.md | 1 + cmd/frpc/main.go | 2 + cmd/frps/main.go | 5 +-- pkg/util/net/dns.go | 4 +- pkg/util/system/system.go | 22 +++++++++++ pkg/util/system/system_android.go | 66 +++++++++++++++++++++++++++++++ server/service.go | 2 + 8 files changed, 98 insertions(+), 6 deletions(-) create mode 100644 pkg/util/system/system.go create mode 100644 pkg/util/system/system_android.go diff --git a/Makefile.cross-compiles b/Makefile.cross-compiles index 1040ef2c5f6..8887cad4bee 100644 --- a/Makefile.cross-compiles +++ b/Makefile.cross-compiles @@ -2,7 +2,7 @@ export PATH := $(PATH):`go env GOPATH`/bin export GO111MODULE=on LDFLAGS := -s -w -os-archs=darwin:amd64 darwin:arm64 freebsd:amd64 linux:amd64 linux:arm linux:arm64 windows:amd64 windows:arm64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 +os-archs=darwin:amd64 darwin:arm64 freebsd:amd64 linux:amd64 linux:arm linux:arm64 windows:amd64 windows:arm64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 android:arm64 all: build diff --git a/Release.md b/Release.md index ca58a04d7d9..9682800fed1 100644 --- a/Release.md +++ b/Release.md @@ -17,6 +17,7 @@ This will create 8 proxies such as `tcp-6000, tcp-6001, ... tcp-6007`. * Health check supports custom request headers. +* Enable compatibility mode for the Android system to solve the issues of incorrect log time caused by time zone problems and default DNS resolution failures. ### Fixes diff --git a/cmd/frpc/main.go b/cmd/frpc/main.go index f9a6c252ad1..f7651bca169 100644 --- a/cmd/frpc/main.go +++ b/cmd/frpc/main.go @@ -17,8 +17,10 @@ package main import ( _ "github.com/fatedier/frp/assets/frpc" "github.com/fatedier/frp/cmd/frpc/sub" + "github.com/fatedier/frp/pkg/util/system" ) func main() { + system.EnableCompatibilityMode() sub.Execute() } diff --git a/cmd/frps/main.go b/cmd/frps/main.go index 34676a2ba6b..3cb398d8290 100644 --- a/cmd/frps/main.go +++ b/cmd/frps/main.go @@ -15,13 +15,12 @@ package main import ( - "github.com/fatedier/golib/crypto" - _ "github.com/fatedier/frp/assets/frps" _ "github.com/fatedier/frp/pkg/metrics" + "github.com/fatedier/frp/pkg/util/system" ) func main() { - crypto.DefaultSalt = "frp" + system.EnableCompatibilityMode() Execute() } diff --git a/pkg/util/net/dns.go b/pkg/util/net/dns.go index 5e1d5ccbfc1..441b1e67a3f 100644 --- a/pkg/util/net/dns.go +++ b/pkg/util/net/dns.go @@ -26,8 +26,8 @@ func SetDefaultDNSAddress(dnsAddress string) { // Change default dns server net.DefaultResolver = &net.Resolver{ PreferGo: true, - Dial: func(ctx context.Context, network, address string) (net.Conn, error) { - return net.Dial("udp", dnsAddress) + Dial: func(ctx context.Context, network, _ string) (net.Conn, error) { + return net.Dial(network, dnsAddress) }, } } diff --git a/pkg/util/system/system.go b/pkg/util/system/system.go new file mode 100644 index 00000000000..ae40e85e214 --- /dev/null +++ b/pkg/util/system/system.go @@ -0,0 +1,22 @@ +// Copyright 2024 The frp Authors +// +// Licensed 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. + +//go:build !android + +package system + +// EnableCompatibilityMode enables compatibility mode for different system. +// For example, on Android, the inability to obtain the correct time zone will result in incorrect log time output. +func EnableCompatibilityMode() { +} diff --git a/pkg/util/system/system_android.go b/pkg/util/system/system_android.go new file mode 100644 index 00000000000..bfcf401dfb5 --- /dev/null +++ b/pkg/util/system/system_android.go @@ -0,0 +1,66 @@ +// Copyright 2024 The frp Authors +// +// Licensed 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. + +package system + +import ( + "context" + "net" + "os/exec" + "strings" + "time" +) + +func EnableCompatibilityMode() { + fixTimezone() + fixDNSResolver() +} + +// fixTimezone is used to try our best to fix timezone issue on some Android devices. +func fixTimezone() { + out, err := exec.Command("/system/bin/getprop", "persist.sys.timezone").Output() + if err != nil { + return + } + loc, err := time.LoadLocation(strings.TrimSpace(string(out))) + if err != nil { + return + } + time.Local = loc +} + +// fixDNSResolver will first attempt to resolve google.com to check if the current DNS is available. +// If it is not available, it will default to using 8.8.8.8 as the DNS server. +// This is a workaround for the issue that golang can't get the default DNS servers on Android. +func fixDNSResolver() { + // First, we attempt to resolve a domain. If resolution is successful, no modifications are necessary. + // In real-world scenarios, users may have already configured /etc/resolv.conf, or compiled directly + // in the Android environment instead of using cross-platform compilation, so this issue does not arise. + if net.DefaultResolver != nil { + timeoutCtx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() + _, err := net.DefaultResolver.LookupHost(timeoutCtx, "google.com") + if err == nil { + return + } + } + // If the resolution fails, use 8.8.8.8 as the DNS server. + // Note: If there are other methods to obtain the default DNS servers, the default DNS servers should be used preferentially. + net.DefaultResolver = &net.Resolver{ + PreferGo: true, + Dial: func(ctx context.Context, network, _ string) (net.Conn, error) { + return net.Dial(network, "8.8.8.8:53") + }, + } +} diff --git a/server/service.go b/server/service.go index 4fdb2166ac7..325f7f6cbf3 100644 --- a/server/service.go +++ b/server/service.go @@ -26,6 +26,7 @@ import ( "strconv" "time" + "github.com/fatedier/golib/crypto" "github.com/fatedier/golib/net/mux" fmux "github.com/hashicorp/yamux" quic "github.com/quic-go/quic-go" @@ -61,6 +62,7 @@ const ( ) func init() { + crypto.DefaultSalt = "frp" // Disable quic-go's receive buffer warning. os.Setenv("QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING", "true") // Disable quic-go's ECN support by default. It may cause issues on certain operating systems. From 86f90f4d2709194c7537e7be4f4a6d4f379adbd4 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 21 Mar 2024 19:38:18 +0800 Subject: [PATCH 190/444] package.sh add android (#4094) --- Release.md | 24 ------------------------ package.sh | 2 +- 2 files changed, 1 insertion(+), 25 deletions(-) diff --git a/Release.md b/Release.md index 9682800fed1..8b137891791 100644 --- a/Release.md +++ b/Release.md @@ -1,25 +1 @@ -### Features -* Support range ports mapping in TOML/YAML/JSON configuration file by using go template syntax. - - For example: - - ``` - {{- range $_, $v := parseNumberRangePair "6000-6006,6007" "6000-6006,6007" }} - [[proxies]] - name = "tcp-{{ $v.First }}" - type = "tcp" - localPort = {{ $v.First }} - remotePort = {{ $v.Second }} - {{- end }} - ``` - - This will create 8 proxies such as `tcp-6000, tcp-6001, ... tcp-6007`. - -* Health check supports custom request headers. -* Enable compatibility mode for the Android system to solve the issues of incorrect log time caused by time zone problems and default DNS resolution failures. - -### Fixes - -* Fix the issue of incorrect interval time for rotating the log by day. -* Disable quic-go's ECN support by default. It may cause issues on certain operating systems. diff --git a/package.sh b/package.sh index 9a6290db442..8d16f72a6fe 100755 --- a/package.sh +++ b/package.sh @@ -17,7 +17,7 @@ make -f ./Makefile.cross-compiles rm -rf ./release/packages mkdir -p ./release/packages -os_all='linux windows darwin freebsd' +os_all='linux windows darwin freebsd android' arch_all='386 amd64 arm arm64 mips64 mips64le mips mipsle riscv64' cd ./release From 590ccda677afef39763e225fb777c3b2bf0ef4c7 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 28 Mar 2024 16:47:27 +0800 Subject: [PATCH 191/444] fix x-forwarded-for header (#4111) --- Release.md | 6 ++ client/proxy/proxy.go | 54 ++++++----- pkg/plugin/client/http2https.go | 3 + pkg/plugin/client/https2http.go | 7 +- pkg/plugin/client/https2https.go | 7 +- pkg/plugin/client/plugin.go | 2 + pkg/util/net/conn.go | 11 ++- pkg/util/vhost/http.go | 1 + test/e2e/framework/request.go | 2 +- test/e2e/v1/features/real_ip.go | 162 +++++++++++++++++++++++++++---- 10 files changed, 204 insertions(+), 51 deletions(-) diff --git a/Release.md b/Release.md index 8b137891791..163ca3728a1 100644 --- a/Release.md +++ b/Release.md @@ -1 +1,7 @@ +### Features +* `https2http` and `https2https` plugin now supports `X-Forwared-For` header. + +### Fixes + +* `X-Forwared-For` header is now correctly set in the request to the backend server for proxy type http. diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index f806c8f9d7f..16295e052c7 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -158,33 +158,35 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor // check if we need to send proxy protocol info var extraInfo plugin.ExtraInfo - if baseCfg.Transport.ProxyProtocolVersion != "" { - if m.SrcAddr != "" && m.SrcPort != 0 { - if m.DstAddr == "" { - m.DstAddr = "127.0.0.1" - } - srcAddr, _ := net.ResolveTCPAddr("tcp", net.JoinHostPort(m.SrcAddr, strconv.Itoa(int(m.SrcPort)))) - dstAddr, _ := net.ResolveTCPAddr("tcp", net.JoinHostPort(m.DstAddr, strconv.Itoa(int(m.DstPort)))) - h := &pp.Header{ - Command: pp.PROXY, - SourceAddr: srcAddr, - DestinationAddr: dstAddr, - } - - if strings.Contains(m.SrcAddr, ".") { - h.TransportProtocol = pp.TCPv4 - } else { - h.TransportProtocol = pp.TCPv6 - } - - if baseCfg.Transport.ProxyProtocolVersion == "v1" { - h.Version = 1 - } else if baseCfg.Transport.ProxyProtocolVersion == "v2" { - h.Version = 2 - } - - extraInfo.ProxyProtocolHeader = h + if m.SrcAddr != "" && m.SrcPort != 0 { + if m.DstAddr == "" { + m.DstAddr = "127.0.0.1" } + srcAddr, _ := net.ResolveTCPAddr("tcp", net.JoinHostPort(m.SrcAddr, strconv.Itoa(int(m.SrcPort)))) + dstAddr, _ := net.ResolveTCPAddr("tcp", net.JoinHostPort(m.DstAddr, strconv.Itoa(int(m.DstPort)))) + extraInfo.SrcAddr = srcAddr + extraInfo.DstAddr = dstAddr + } + + if baseCfg.Transport.ProxyProtocolVersion != "" && m.SrcAddr != "" && m.SrcPort != 0 { + h := &pp.Header{ + Command: pp.PROXY, + SourceAddr: extraInfo.SrcAddr, + DestinationAddr: extraInfo.DstAddr, + } + + if strings.Contains(m.SrcAddr, ".") { + h.TransportProtocol = pp.TCPv4 + } else { + h.TransportProtocol = pp.TCPv6 + } + + if baseCfg.Transport.ProxyProtocolVersion == "v1" { + h.Version = 1 + } else if baseCfg.Transport.ProxyProtocolVersion == "v2" { + h.Version = 2 + } + extraInfo.ProxyProtocolHeader = h } if pxy.proxyPlugin != nil { diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index 7cd3cd4295f..65bc2140b64 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -54,6 +54,9 @@ func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { rp := &httputil.ReverseProxy{ Rewrite: func(r *httputil.ProxyRequest) { + r.Out.Header["X-Forwarded-For"] = r.In.Header["X-Forwarded-For"] + r.Out.Header["X-Forwarded-Host"] = r.In.Header["X-Forwarded-Host"] + r.Out.Header["X-Forwarded-Proto"] = r.In.Header["X-Forwarded-Proto"] req := r.Out req.URL.Scheme = "https" req.URL.Host = p.opts.LocalAddr diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 389ac849eb8..1dc3840180d 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -51,6 +51,8 @@ func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { rp := &httputil.ReverseProxy{ Rewrite: func(r *httputil.ProxyRequest) { + r.Out.Header["X-Forwarded-For"] = r.In.Header["X-Forwarded-For"] + r.SetXForwarded() req := r.Out req.URL.Scheme = "http" req.URL.Host = p.opts.LocalAddr @@ -98,8 +100,11 @@ func (p *HTTPS2HTTPPlugin) genTLSConfig() (*tls.Config, error) { return config, nil } -func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { +func (p *HTTPS2HTTPPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo) { wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) + if extra.SrcAddr != nil { + wrapConn.SetRemoteAddr(extra.SrcAddr) + } _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index da3302b80d2..dd3245f83be 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -56,6 +56,8 @@ func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { rp := &httputil.ReverseProxy{ Rewrite: func(r *httputil.ProxyRequest) { + r.Out.Header["X-Forwarded-For"] = r.In.Header["X-Forwarded-For"] + r.SetXForwarded() req := r.Out req.URL.Scheme = "https" req.URL.Host = p.opts.LocalAddr @@ -104,8 +106,11 @@ func (p *HTTPS2HTTPSPlugin) genTLSConfig() (*tls.Config, error) { return config, nil } -func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { +func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo) { wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) + if extra.SrcAddr != nil { + wrapConn.SetRemoteAddr(extra.SrcAddr) + } _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/plugin.go b/pkg/plugin/client/plugin.go index 520e379441f..0e5548e9f4e 100644 --- a/pkg/plugin/client/plugin.go +++ b/pkg/plugin/client/plugin.go @@ -50,6 +50,8 @@ func Create(name string, options v1.ClientPluginOptions) (p Plugin, err error) { type ExtraInfo struct { ProxyProtocolHeader *pp.Header + SrcAddr net.Addr + DstAddr net.Addr } type Plugin interface { diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index a5bbe7371c5..20ac73ed1c6 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -76,9 +76,11 @@ type WrapReadWriteCloserConn struct { io.ReadWriteCloser underConn net.Conn + + remoteAddr net.Addr } -func WrapReadWriteCloserToConn(rwc io.ReadWriteCloser, underConn net.Conn) net.Conn { +func WrapReadWriteCloserToConn(rwc io.ReadWriteCloser, underConn net.Conn) *WrapReadWriteCloserConn { return &WrapReadWriteCloserConn{ ReadWriteCloser: rwc, underConn: underConn, @@ -92,7 +94,14 @@ func (conn *WrapReadWriteCloserConn) LocalAddr() net.Addr { return (*net.TCPAddr)(nil) } +func (conn *WrapReadWriteCloserConn) SetRemoteAddr(addr net.Addr) { + conn.remoteAddr = addr +} + func (conn *WrapReadWriteCloserConn) RemoteAddr() net.Addr { + if conn.remoteAddr != nil { + return conn.remoteAddr + } if conn.underConn != nil { return conn.underConn.RemoteAddr() } diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index 34a1400ac6f..7afc7ebbf19 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -59,6 +59,7 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * proxy := &httputil.ReverseProxy{ // Modify incoming requests by route policies. Rewrite: func(r *httputil.ProxyRequest) { + r.Out.Header["X-Forwarded-For"] = r.In.Header["X-Forwarded-For"] r.SetXForwarded() req := r.Out req.URL.Scheme = "http" diff --git a/test/e2e/framework/request.go b/test/e2e/framework/request.go index 53d44a3eac4..1fc67fe86ab 100644 --- a/test/e2e/framework/request.go +++ b/test/e2e/framework/request.go @@ -113,7 +113,7 @@ func (e *RequestExpect) Ensure(fns ...EnsureFunc) { if !bytes.Equal(e.expectResp, ret.Content) { flog.Tracef("Response info: %+v", ret) } - ExpectEqualValuesWithOffset(1, ret.Content, e.expectResp, e.explain...) + ExpectEqualValuesWithOffset(1, string(ret.Content), string(e.expectResp), e.explain...) } else { for _, fn := range fns { ok := fn(ret) diff --git a/test/e2e/v1/features/real_ip.go b/test/e2e/v1/features/real_ip.go index 11febaa245d..94508f7da9a 100644 --- a/test/e2e/v1/features/real_ip.go +++ b/test/e2e/v1/features/real_ip.go @@ -2,6 +2,7 @@ package features import ( "bufio" + "crypto/tls" "fmt" "net" "net/http" @@ -9,6 +10,7 @@ import ( "github.com/onsi/ginkgo/v2" pp "github.com/pires/go-proxyproto" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" @@ -21,23 +23,24 @@ import ( var _ = ginkgo.Describe("[Feature: Real IP]", func() { f := framework.NewDefaultFramework() - ginkgo.It("HTTP X-Forwarded-For", func() { - vhostHTTPPort := f.AllocPort() - serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + ginkgo.Describe("HTTP X-forwarded-For", func() { + ginkgo.It("Client Without Header", func() { + vhostHTTPPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` vhostHTTPPort = %d `, vhostHTTPPort) - localPort := f.AllocPort() - localServer := httpserver.New( - httpserver.WithBindPort(localPort), - httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - _, _ = w.Write([]byte(req.Header.Get("X-Forwarded-For"))) - })), - ) - f.RunServer("", localServer) - - clientConf := consts.DefaultClientConfig - clientConf += fmt.Sprintf(` + localPort := f.AllocPort() + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(req.Header.Get("X-Forwarded-For"))) + })), + ) + f.RunServer("", localServer) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` [[proxies]] name = "test" type = "http" @@ -45,14 +48,131 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { customDomains = ["normal.example.com"] `, localPort) - f.RunProcesses([]string{serverConf}, []string{clientConf}) + f.RunProcesses([]string{serverConf}, []string{clientConf}) - framework.NewRequestExpect(f).Port(vhostHTTPPort). - RequestModify(func(r *request.Request) { - r.HTTP().HTTPHost("normal.example.com") - }). - ExpectResp([]byte("127.0.0.1")). - Ensure() + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + }). + ExpectResp([]byte("127.0.0.1")). + Ensure() + }) + + ginkgo.It("Client With Header", func() { + vhostHTTPPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostHTTPPort) + + localPort := f.AllocPort() + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(req.Header.Get("X-Forwarded-For"))) + })), + ) + f.RunServer("", localServer) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + r.HTTP().HTTPHeaders(map[string]string{"x-forwarded-for": "2.2.2.2"}) + }). + ExpectResp([]byte("2.2.2.2, 127.0.0.1")). + Ensure() + }) + + ginkgo.It("http2https plugin", func() { + vhostHTTPPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPPort = %d + `, vhostHTTPPort) + + localPort := f.AllocPort() + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + customDomains = ["normal.example.com"] + [proxies.plugin] + type = "http2https" + localAddr = "127.0.0.1:%d" + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + tlsConfig, err := transport.NewServerTLSConfig("", "", "") + framework.ExpectNoError(err) + + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(req.Header.Get("X-Forwarded-For"))) + })), + httpserver.WithTLSConfig(tlsConfig), + ) + f.RunServer("", localServer) + + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com") + r.HTTP().HTTPHeaders(map[string]string{"x-forwarded-for": "2.2.2.2, 3.3.3.3"}) + }). + ExpectResp([]byte("2.2.2.2, 3.3.3.3, 127.0.0.1")). + Ensure() + }) + + ginkgo.It("https2http plugin", func() { + vhostHTTPSPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPSPort = %d + `, vhostHTTPSPort) + + localPort := f.AllocPort() + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "https" + customDomains = ["normal.example.com"] + [proxies.plugin] + type = "https2http" + localAddr = "127.0.0.1:%d" + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + _, _ = w.Write([]byte(req.Header.Get("X-Forwarded-For"))) + })), + ) + f.RunServer("", localServer) + + framework.NewRequestExpect(f).Port(vhostHTTPSPort). + RequestModify(func(r *request.Request) { + r.HTTPS().HTTPHost("normal.example.com"). + HTTPHeaders(map[string]string{"x-forwarded-for": "2.2.2.2"}). + TLSConfig(&tls.Config{ServerName: "normal.example.com", InsecureSkipVerify: true}) + }). + ExpectResp([]byte("2.2.2.2, 127.0.0.1")). + Ensure() + }) }) ginkgo.Describe("Proxy Protocol", func() { From d2d03a8fd93b4482dc3e278398ecd093d7d6a12b Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 9 Apr 2024 11:39:21 +0800 Subject: [PATCH 192/444] bump deps version (#4136) --- go.mod | 67 ++++++++-------- go.sum | 153 ++++++++++++++++++------------------ hack/run-e2e.sh | 2 +- pkg/util/version/version.go | 2 +- 4 files changed, 110 insertions(+), 114 deletions(-) diff --git a/go.mod b/go.mod index d820b96cdd2..2a5003d71d8 100644 --- a/go.mod +++ b/go.mod @@ -4,34 +4,34 @@ go 1.22 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 - github.com/coreos/go-oidc/v3 v3.6.0 + github.com/coreos/go-oidc/v3 v3.10.0 github.com/fatedier/golib v0.4.2 - github.com/google/uuid v1.3.0 - github.com/gorilla/mux v1.8.0 - github.com/gorilla/websocket v1.5.0 + github.com/google/uuid v1.6.0 + github.com/gorilla/mux v1.8.1 + github.com/gorilla/websocket v1.5.1 github.com/hashicorp/yamux v0.1.1 - github.com/onsi/ginkgo/v2 v2.11.0 - github.com/onsi/gomega v1.27.8 - github.com/pelletier/go-toml/v2 v2.1.0 + github.com/onsi/ginkgo/v2 v2.17.1 + github.com/onsi/gomega v1.32.0 + github.com/pelletier/go-toml/v2 v2.2.0 github.com/pion/stun/v2 v2.0.0 github.com/pires/go-proxyproto v0.7.0 - github.com/prometheus/client_golang v1.16.0 - github.com/quic-go/quic-go v0.41.0 - github.com/rodaine/table v1.1.0 + github.com/prometheus/client_golang v1.19.0 + github.com/quic-go/quic-go v0.42.0 + github.com/rodaine/table v1.2.0 github.com/samber/lo v1.39.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/tidwall/gjson v1.17.1 - github.com/xtaci/kcp-go/v5 v5.6.7 - golang.org/x/crypto v0.18.0 - golang.org/x/net v0.19.0 - golang.org/x/oauth2 v0.10.0 - golang.org/x/sync v0.3.0 - golang.org/x/time v0.3.0 + github.com/xtaci/kcp-go/v5 v5.6.8 + golang.org/x/crypto v0.22.0 + golang.org/x/net v0.24.0 + golang.org/x/oauth2 v0.16.0 + golang.org/x/sync v0.6.0 + golang.org/x/time v0.5.0 gopkg.in/ini.v1 v1.67.0 - k8s.io/apimachinery v0.27.4 - k8s.io/client-go v0.27.4 + k8s.io/apimachinery v0.28.8 + k8s.io/client-go v0.28.8 ) require ( @@ -39,44 +39,43 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-jose/go-jose/v3 v3.0.1 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-jose/go-jose/v4 v4.0.1 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/cpuid/v2 v2.2.6 // indirect github.com/klauspost/reedsolomon v1.12.0 // indirect github.com/kr/text v0.2.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/logging v0.2.2 // indirect github.com/pion/transport/v2 v2.2.1 // indirect github.com/pion/transport/v3 v3.0.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.48.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/templexxx/cpu v0.1.0 // indirect github.com/templexxx/xorsimd v0.4.2 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect - go.uber.org/mock v0.3.0 // indirect + go.uber.org/mock v0.4.0 // indirect golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect - golang.org/x/mod v0.11.0 // indirect - golang.org/x/sys v0.16.0 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/sys v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.9.3 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.31.0 // indirect + golang.org/x/tools v0.17.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect + k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) diff --git a/go.sum b/go.sum index b00cb78fafd..8f1610f357c 100644 --- a/go.sum +++ b/go.sum @@ -14,8 +14,8 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/coreos/go-oidc/v3 v3.6.0 h1:AKVxfYw1Gmkn/w96z0DbT/B/xFnzTd3MkZvWLjF4n/o= -github.com/coreos/go-oidc/v3 v3.6.0/go.mod h1:ZpHUsHBucTUj6WOkrP4E20UPynbLZzhTQ1XKCXkxyPc= +github.com/coreos/go-oidc/v3 v3.10.0 h1:tDnXHnLyiTVyT/2zLDGj09pFPkhND8Gl8lnTRhoEaJU= +github.com/coreos/go-oidc/v3 v3.10.0/go.mod h1:5j11xcw0D3+SGxn6Z/WFADsgcWVMyNAlSQupk0KK3ac= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -28,19 +28,17 @@ github.com/fatedier/golib v0.4.2 h1:k+ZBdUFTTipnP1RHfEhGbzyShRdz/rZtFGnjpXG9D9c= github.com/fatedier/golib v0.4.2/go.mod h1:gpu+1vXxtJ072NYaNsn/YWgojDL8Ap2kFZQtbzT2qkg= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= -github.com/go-jose/go-jose/v3 v3.0.1/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= +github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -48,26 +46,26 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -79,16 +77,14 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= -github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= -github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= -github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= -github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= -github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= +github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= +github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk= +github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg= +github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= +github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= @@ -105,19 +101,21 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= -github.com/quic-go/quic-go v0.41.0 h1:aD8MmHfgqTURWNJy48IYFg2OnxwHT3JL7ahGs73lb4k= -github.com/quic-go/quic-go v0.41.0/go.mod h1:qCkNjqczPEvgsOnxZ0eCD14lv+B2LHlFAB++CNOh9hA= -github.com/rodaine/table v1.1.0 h1:/fUlCSdjamMY8VifdQRIu3VWZXYLY7QHFkVorS8NTr4= -github.com/rodaine/table v1.1.0/go.mod h1:Qu3q5wi1jTQD6B6HsP6szie/S4w1QUQ8pq22pz9iL8g= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= +github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/quic-go/quic-go v0.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM= +github.com/quic-go/quic-go v0.42.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rodaine/table v1.2.0 h1:38HEnwK4mKSHQJIkavVj+bst1TEY7j9zhLMWu4QJrMA= +github.com/rodaine/table v1.2.0/go.mod h1:wejb/q/Yd4T/SVmBSRMr7GCq3KlcZp3gyNYdLSBhkaE= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -130,12 +128,14 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/templexxx/cpu v0.1.0 h1:wVM+WIJP2nYaxVxqgHPD4wGA2aJ9rvrQRV8CvFzNb40= github.com/templexxx/cpu v0.1.0/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk= github.com/templexxx/xorsimd v0.4.2 h1:ocZZ+Nvu65LGHmCLZ7OoCtg8Fx8jnHKK37SjvngUoVI= @@ -148,22 +148,21 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= -github.com/xtaci/kcp-go/v5 v5.6.7 h1:7+rnxNFIsjEwTXQk4cSZpXM4pO0hqtpwE1UFFoJBffA= -github.com/xtaci/kcp-go/v5 v5.6.7/go.mod h1:oE9j2NVqAkuKO5o8ByKGch3vgVX3BNf8zqP8JiGq0bM= +github.com/xtaci/kcp-go/v5 v5.6.8 h1:jlI/0jAyjoOjT/SaGB58s4bQMJiNS41A2RKzR6TMWeI= +github.com/xtaci/kcp-go/v5 v5.6.8/go.mod h1:oE9j2NVqAkuKO5o8ByKGch3vgVX3BNf8zqP8JiGq0bM= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37/go.mod h1:HpMP7DB2CyokmAh4lp0EQnnWhmycP/TvwBGzvuie+H0= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo= -go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= +go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= @@ -172,14 +171,13 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -188,19 +186,18 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= -golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -214,27 +211,27 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= +golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -243,14 +240,14 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= -golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -265,8 +262,8 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -279,12 +276,12 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= -k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= -k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= -k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY= -k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.28.8 h1:hi/nrxHwk4QLV+W/SHve1bypTE59HCDorLY1stBIxKQ= +k8s.io/apimachinery v0.28.8/go.mod h1:cBnwIM3fXoRo28SqbV/Ihxf/iviw85KyXOrzxvZQ83U= +k8s.io/client-go v0.28.8 h1:TE59Tjd87WKvS2FPBTfIKLFX0nQJ4SSHsnDo5IHjgOw= +k8s.io/client-go v0.28.8/go.mod h1:uDVQ/rPzWpWIy40c6lZ4mUwaEvRWGnpoqSO4FM65P3o= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= diff --git a/hack/run-e2e.sh b/hack/run-e2e.sh index a574b6db98c..8009359c14a 100755 --- a/hack/run-e2e.sh +++ b/hack/run-e2e.sh @@ -6,7 +6,7 @@ ROOT=$(unset CDPATH && cd "$(dirname "$SCRIPT")/.." && pwd) ginkgo_command=$(which ginkgo 2>/dev/null) if [ -z "$ginkgo_command" ]; then echo "ginkgo not found, try to install..." - go install github.com/onsi/ginkgo/v2/ginkgo@v2.11.0 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 fi debug=false diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 90af7813120..d1867b37d8b 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.56.0" +var version = "0.57.0" func Full() string { return version From ba937e9fbf4e5a28e7f3280aa596eae79ab4d247 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 9 Apr 2024 15:03:32 +0800 Subject: [PATCH 193/444] update README (#4139) --- README.md | 2 +- Release.md | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index 69cce9ddc48..3ff84ab2592 100644 --- a/README.md +++ b/README.md @@ -1003,7 +1003,7 @@ In this example, it will set header `x-from-where: frp` in the HTTP request. #### HTTP X-Forwarded-For -This feature is for http proxy only. +This feature is for `http` proxies or proxies with the `https2http` and `https2https` plugins enabled. You can get user's real IP from HTTP request headers `X-Forwarded-For`. diff --git a/Release.md b/Release.md index 163ca3728a1..cff4dbc12b7 100644 --- a/Release.md +++ b/Release.md @@ -1,7 +1 @@ ### Features - -* `https2http` and `https2https` plugin now supports `X-Forwared-For` header. - -### Fixes - -* `X-Forwared-For` header is now correctly set in the request to the backend server for proxy type http. From e52727e01c11cebdd08eb7e2f6a4509874e6ad13 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 10 Apr 2024 12:05:22 +0800 Subject: [PATCH 194/444] update golib (#4142) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 2a5003d71d8..4c07bebb369 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.10.0 - github.com/fatedier/golib v0.4.2 + github.com/fatedier/golib v0.4.3 github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.1 @@ -35,7 +35,7 @@ require ( ) require ( - github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect + github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index 8f1610f357c..1d6330d4957 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,6 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= -github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= +github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= +github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatedier/golib v0.4.2 h1:k+ZBdUFTTipnP1RHfEhGbzyShRdz/rZtFGnjpXG9D9c= -github.com/fatedier/golib v0.4.2/go.mod h1:gpu+1vXxtJ072NYaNsn/YWgojDL8Ap2kFZQtbzT2qkg= +github.com/fatedier/golib v0.4.3 h1:eOcDBZauYqoNKwnJY9xWWa1pu7ff/JPZBizXeZOtj7k= +github.com/fatedier/golib v0.4.3/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= From 07946e9752a5f829d1bb5cdf6cfbaeef906f278f Mon Sep 17 00:00:00 2001 From: gopherfarm Date: Thu, 11 Apr 2024 11:01:02 +0800 Subject: [PATCH 195/444] fix: revert gorilla/websocket from 1.5.1 to 1.5.0 (#4149) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4c07bebb369..f6fc54d63ea 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/fatedier/golib v0.4.3 github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 - github.com/gorilla/websocket v1.5.1 + github.com/gorilla/websocket v1.5.0 github.com/hashicorp/yamux v0.1.1 github.com/onsi/ginkgo/v2 v2.17.1 github.com/onsi/gomega v1.32.0 diff --git a/go.sum b/go.sum index 1d6330d4957..6647ebd5658 100644 --- a/go.sum +++ b/go.sum @@ -64,8 +64,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= -github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= From dd7e2e84737dc4a78b311d8b53ccfc66a26e09d8 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 11 Apr 2024 20:19:08 +0800 Subject: [PATCH 196/444] return 504 instead of 404 for proxy type http request timeout (#4151) --- .golangci.yml | 6 +---- Release.md | 4 ++- client/admin_api.go | 2 +- client/connector.go | 34 ++++++++++++------------ client/proxy/proxy.go | 6 ++--- go.mod | 2 +- go.sum | 4 +-- pkg/plugin/client/http2https.go | 8 +++++- pkg/plugin/client/http_proxy.go | 3 ++- pkg/plugin/client/https2http.go | 10 ++++++- pkg/plugin/client/https2https.go | 12 +++++++-- pkg/plugin/client/static_file.go | 3 ++- pkg/util/log/log.go | 30 +++++++++++++++++++++ pkg/util/net/dial.go | 6 ++--- pkg/util/net/websocket.go | 6 +++-- pkg/util/vhost/http.go | 30 +++++++-------------- pkg/util/vhost/https_test.go | 2 +- server/service.go | 9 ++++--- test/e2e/framework/framework.go | 2 +- test/e2e/framework/process.go | 6 ++--- test/e2e/pkg/request/request.go | 6 ++--- test/e2e/v1/basic/http.go | 45 ++++++++++++++++++++++++++++++++ 22 files changed, 162 insertions(+), 74 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index e2f8a240991..2b2ccb08030 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,6 +1,6 @@ service: golangci-lint-version: 1.57.x # use the fixed version to not introduce new linters unexpectedly - + run: concurrency: 4 # timeout for analysis, e.g. 30s, 5m, default is 1m @@ -86,12 +86,8 @@ linters-settings: severity: "low" confidence: "low" excludes: - - G102 - - G112 - - G306 - G401 - G402 - - G404 - G501 issues: diff --git a/Release.md b/Release.md index cff4dbc12b7..5de41f2fe0b 100644 --- a/Release.md +++ b/Release.md @@ -1 +1,3 @@ -### Features +### Fixes + +* When an HTTP proxy request times out, it returns 504 instead of 404 now. diff --git a/client/admin_api.go b/client/admin_api.go index ff889d52355..708b2cbd9e6 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -253,7 +253,7 @@ func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { return } - if err := os.WriteFile(svr.configFilePath, body, 0o644); err != nil { + if err := os.WriteFile(svr.configFilePath, body, 0o600); err != nil { res.Code = 500 res.Msg = fmt.Sprintf("write content to frpc config file error: %v", err) log.Warnf("%s", res.Msg) diff --git a/client/connector.go b/client/connector.go index 184194a171f..64aa71c06e1 100644 --- a/client/connector.go +++ b/client/connector.go @@ -24,7 +24,7 @@ import ( "sync" "time" - libdial "github.com/fatedier/golib/net/dial" + libnet "github.com/fatedier/golib/net" fmux "github.com/hashicorp/yamux" quic "github.com/quic-go/quic-go" "github.com/samber/lo" @@ -169,44 +169,44 @@ func (c *defaultConnectorImpl) realConnect() (net.Conn, error) { } } - proxyType, addr, auth, err := libdial.ParseProxyURL(c.cfg.Transport.ProxyURL) + proxyType, addr, auth, err := libnet.ParseProxyURL(c.cfg.Transport.ProxyURL) if err != nil { xl.Errorf("fail to parse proxy url") return nil, err } - dialOptions := []libdial.DialOption{} + dialOptions := []libnet.DialOption{} protocol := c.cfg.Transport.Protocol switch protocol { case "websocket": protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: netpkg.DialHookWebsocket(protocol, "")})) - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{ + dialOptions = append(dialOptions, libnet.WithAfterHook(libnet.AfterHook{Hook: netpkg.DialHookWebsocket(protocol, "")})) + dialOptions = append(dialOptions, libnet.WithAfterHook(libnet.AfterHook{ Hook: netpkg.DialHookCustomTLSHeadByte(tlsConfig != nil, lo.FromPtr(c.cfg.Transport.TLS.DisableCustomTLSFirstByte)), })) - dialOptions = append(dialOptions, libdial.WithTLSConfig(tlsConfig)) + dialOptions = append(dialOptions, libnet.WithTLSConfig(tlsConfig)) case "wss": protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithTLSConfigAndPriority(100, tlsConfig)) + dialOptions = append(dialOptions, libnet.WithTLSConfigAndPriority(100, tlsConfig)) // Make sure that if it is wss, the websocket hook is executed after the tls hook. - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: netpkg.DialHookWebsocket(protocol, tlsConfig.ServerName), Priority: 110})) + dialOptions = append(dialOptions, libnet.WithAfterHook(libnet.AfterHook{Hook: netpkg.DialHookWebsocket(protocol, tlsConfig.ServerName), Priority: 110})) default: - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{ + dialOptions = append(dialOptions, libnet.WithAfterHook(libnet.AfterHook{ Hook: netpkg.DialHookCustomTLSHeadByte(tlsConfig != nil, lo.FromPtr(c.cfg.Transport.TLS.DisableCustomTLSFirstByte)), })) - dialOptions = append(dialOptions, libdial.WithTLSConfig(tlsConfig)) + dialOptions = append(dialOptions, libnet.WithTLSConfig(tlsConfig)) } if c.cfg.Transport.ConnectServerLocalIP != "" { - dialOptions = append(dialOptions, libdial.WithLocalAddr(c.cfg.Transport.ConnectServerLocalIP)) + dialOptions = append(dialOptions, libnet.WithLocalAddr(c.cfg.Transport.ConnectServerLocalIP)) } dialOptions = append(dialOptions, - libdial.WithProtocol(protocol), - libdial.WithTimeout(time.Duration(c.cfg.Transport.DialServerTimeout)*time.Second), - libdial.WithKeepAlive(time.Duration(c.cfg.Transport.DialServerKeepAlive)*time.Second), - libdial.WithProxy(proxyType, addr), - libdial.WithProxyAuth(auth), + libnet.WithProtocol(protocol), + libnet.WithTimeout(time.Duration(c.cfg.Transport.DialServerTimeout)*time.Second), + libnet.WithKeepAlive(time.Duration(c.cfg.Transport.DialServerKeepAlive)*time.Second), + libnet.WithProxy(proxyType, addr), + libnet.WithProxyAuth(auth), ) - conn, err := libdial.DialContext( + conn, err := libnet.DialContext( c.ctx, net.JoinHostPort(c.cfg.ServerAddr, strconv.Itoa(c.cfg.ServerPort)), dialOptions..., diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 16295e052c7..cc02f809a9c 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -25,7 +25,7 @@ import ( "time" libio "github.com/fatedier/golib/io" - libdial "github.com/fatedier/golib/net/dial" + libnet "github.com/fatedier/golib/net" pp "github.com/pires/go-proxyproto" "golang.org/x/time/rate" @@ -197,9 +197,9 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor return } - localConn, err := libdial.Dial( + localConn, err := libnet.Dial( net.JoinHostPort(baseCfg.LocalIP, strconv.Itoa(baseCfg.LocalPort)), - libdial.WithTimeout(10*time.Second), + libnet.WithTimeout(10*time.Second), ) if err != nil { workConn.Close() diff --git a/go.mod b/go.mod index f6fc54d63ea..72bbc0acd0f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.10.0 - github.com/fatedier/golib v0.4.3 + github.com/fatedier/golib v0.5.0 github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.0 diff --git a/go.sum b/go.sum index 6647ebd5658..efcb18ee7da 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatedier/golib v0.4.3 h1:eOcDBZauYqoNKwnJY9xWWa1pu7ff/JPZBizXeZOtj7k= -github.com/fatedier/golib v0.4.3/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ= +github.com/fatedier/golib v0.5.0 h1:hNcH7hgfIFqVWbP+YojCCAj4eO94pPf4dEF8lmq2jWs= +github.com/fatedier/golib v0.5.0/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index 65bc2140b64..b9a799bb861 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -19,11 +19,15 @@ package plugin import ( "crypto/tls" "io" + stdlog "log" "net" "net/http" "net/http/httputil" + "github.com/fatedier/golib/pool" + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/util/log" netpkg "github.com/fatedier/frp/pkg/util/net" ) @@ -67,7 +71,9 @@ func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { req.Header.Set(k, v) } }, - Transport: tr, + Transport: tr, + BufferPool: pool.NewBuffer(32 * 1024), + ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0), } p.s = &http.Server{ diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index 90a99b09434..ed8d97ec521 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -54,7 +54,8 @@ func NewHTTPProxyPlugin(options v1.ClientPluginOptions) (Plugin, error) { } hp.s = &http.Server{ - Handler: hp, + Handler: hp, + ReadHeaderTimeout: 60 * time.Second, } go func() { diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 1dc3840180d..d7bddcb3505 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -20,12 +20,17 @@ import ( "crypto/tls" "fmt" "io" + stdlog "log" "net" "net/http" "net/http/httputil" + "time" + + "github.com/fatedier/golib/pool" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/pkg/util/log" netpkg "github.com/fatedier/frp/pkg/util/net" ) @@ -63,10 +68,13 @@ func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { req.Header.Set(k, v) } }, + BufferPool: pool.NewBuffer(32 * 1024), + ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0), } p.s = &http.Server{ - Handler: rp, + Handler: rp, + ReadHeaderTimeout: 60 * time.Second, } var ( diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index dd3245f83be..047d4ff26ab 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -20,12 +20,17 @@ import ( "crypto/tls" "fmt" "io" + stdlog "log" "net" "net/http" "net/http/httputil" + "time" + + "github.com/fatedier/golib/pool" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/pkg/util/log" netpkg "github.com/fatedier/frp/pkg/util/net" ) @@ -68,11 +73,14 @@ func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { req.Header.Set(k, v) } }, - Transport: tr, + Transport: tr, + BufferPool: pool.NewBuffer(32 * 1024), + ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0), } p.s = &http.Server{ - Handler: rp, + Handler: rp, + ReadHeaderTimeout: 60 * time.Second, } var ( diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index a7db2657e7e..493710205c4 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -60,7 +60,8 @@ func NewStaticFilePlugin(options v1.ClientPluginOptions) (Plugin, error) { router.Use(netpkg.NewHTTPAuthMiddleware(opts.HTTPUser, opts.HTTPPassword).SetAuthFailDelay(200 * time.Millisecond).Middleware) router.PathPrefix(prefix).Handler(netpkg.MakeHTTPGzipHandler(http.StripPrefix(prefix, http.FileServer(http.Dir(opts.LocalPath))))).Methods("GET") sp.s = &http.Server{ - Handler: router, + Handler: router, + ReadHeaderTimeout: 60 * time.Second, } go func() { _ = sp.s.Serve(listener) diff --git a/pkg/util/log/log.go b/pkg/util/log/log.go index f6399e00809..e2125365808 100644 --- a/pkg/util/log/log.go +++ b/pkg/util/log/log.go @@ -15,11 +15,20 @@ package log import ( + "bytes" "os" "github.com/fatedier/golib/log" ) +var ( + TraceLevel = log.TraceLevel + DebugLevel = log.DebugLevel + InfoLevel = log.InfoLevel + WarnLevel = log.WarnLevel + ErrorLevel = log.ErrorLevel +) + var Logger *log.Logger func init() { @@ -77,3 +86,24 @@ func Debugf(format string, v ...interface{}) { func Tracef(format string, v ...interface{}) { Logger.Tracef(format, v...) } + +func Logf(level log.Level, offset int, format string, v ...interface{}) { + Logger.Logf(level, offset, format, v...) +} + +type WriteLogger struct { + level log.Level + offset int +} + +func NewWriteLogger(level log.Level, offset int) *WriteLogger { + return &WriteLogger{ + level: level, + offset: offset, + } +} + +func (w *WriteLogger) Write(p []byte) (n int, err error) { + Logger.Log(w.level, w.offset, string(bytes.TrimRight(p, "\n"))) + return len(p), nil +} diff --git a/pkg/util/net/dial.go b/pkg/util/net/dial.go index bc670643a0b..1a3859edfa7 100644 --- a/pkg/util/net/dial.go +++ b/pkg/util/net/dial.go @@ -5,11 +5,11 @@ import ( "net" "net/url" - libdial "github.com/fatedier/golib/net/dial" + libnet "github.com/fatedier/golib/net" "golang.org/x/net/websocket" ) -func DialHookCustomTLSHeadByte(enableTLS bool, disableCustomTLSHeadByte bool) libdial.AfterHookFunc { +func DialHookCustomTLSHeadByte(enableTLS bool, disableCustomTLSHeadByte bool) libnet.AfterHookFunc { return func(ctx context.Context, c net.Conn, addr string) (context.Context, net.Conn, error) { if enableTLS && !disableCustomTLSHeadByte { _, err := c.Write([]byte{byte(FRPTLSHeadByte)}) @@ -21,7 +21,7 @@ func DialHookCustomTLSHeadByte(enableTLS bool, disableCustomTLSHeadByte bool) li } } -func DialHookWebsocket(protocol string, host string) libdial.AfterHookFunc { +func DialHookWebsocket(protocol string, host string) libnet.AfterHookFunc { return func(ctx context.Context, c net.Conn, addr string) (context.Context, net.Conn, error) { if protocol != "wss" { protocol = "ws" diff --git a/pkg/util/net/websocket.go b/pkg/util/net/websocket.go index e642be06f3c..263b3a1d98d 100644 --- a/pkg/util/net/websocket.go +++ b/pkg/util/net/websocket.go @@ -4,6 +4,7 @@ import ( "errors" "net" "net/http" + "time" "golang.org/x/net/websocket" ) @@ -39,8 +40,9 @@ func NewWebsocketListener(ln net.Listener) (wl *WebsocketListener) { })) wl.server = &http.Server{ - Addr: ln.Addr().String(), - Handler: muxer, + Addr: ln.Addr().String(), + Handler: muxer, + ReadHeaderTimeout: 60 * time.Second, } go func() { diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index 7afc7ebbf19..518f45476a4 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -15,7 +15,6 @@ package vhost import ( - "bytes" "context" "encoding/base64" "errors" @@ -116,10 +115,16 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) * return nil, nil }, }, - BufferPool: newWrapPool(), - ErrorLog: stdlog.New(newWrapLogger(), "", 0), + BufferPool: pool.NewBuffer(32 * 1024), + ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0), ErrorHandler: func(rw http.ResponseWriter, req *http.Request, err error) { - log.Warnf("do http proxy request [host: %s] error: %v", req.Host, err) + log.Logf(log.WarnLevel, 1, "do http proxy request [host: %s] error: %v", req.Host, err) + if err != nil { + if e, ok := err.(net.Error); ok && e.Timeout() { + rw.WriteHeader(http.StatusGatewayTimeout) + return + } + } rw.WriteHeader(http.StatusNotFound) _, _ = rw.Write(getNotFoundPageContent()) }, @@ -322,20 +327,3 @@ func (rp *HTTPReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) rp.proxy.ServeHTTP(rw, newreq) } } - -type wrapPool struct{} - -func newWrapPool() *wrapPool { return &wrapPool{} } - -func (p *wrapPool) Get() []byte { return pool.GetBuf(32 * 1024) } - -func (p *wrapPool) Put(buf []byte) { pool.PutBuf(buf) } - -type wrapLogger struct{} - -func newWrapLogger() *wrapLogger { return &wrapLogger{} } - -func (l *wrapLogger) Write(p []byte) (n int, err error) { - log.Warnf("%s", string(bytes.TrimRight(p, "\n"))) - return len(p), nil -} diff --git a/pkg/util/vhost/https_test.go b/pkg/util/vhost/https_test.go index 47fb9dae4ed..08a3f558a86 100644 --- a/pkg/util/vhost/https_test.go +++ b/pkg/util/vhost/https_test.go @@ -12,7 +12,7 @@ import ( func TestGetHTTPSHostname(t *testing.T) { require := require.New(t) - l, err := net.Listen("tcp", ":") + l, err := net.Listen("tcp", "127.0.0.1:") require.NoError(err) defer l.Close() diff --git a/server/service.go b/server/service.go index 325f7f6cbf3..27c4110d92a 100644 --- a/server/service.go +++ b/server/service.go @@ -286,12 +286,13 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.VhostHTTPPort)) server := &http.Server{ - Addr: address, - Handler: rp, + Addr: address, + Handler: rp, + ReadHeaderTimeout: 60 * time.Second, } var l net.Listener if httpMuxOn { - l = svr.muxer.ListenHttp(1) + l = svr.muxer.ListenHTTP(1) } else { l, err = net.Listen("tcp", address) if err != nil { @@ -308,7 +309,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { if cfg.VhostHTTPSPort > 0 { var l net.Listener if httpsMuxOn { - l = svr.muxer.ListenHttps(1) + l = svr.muxer.ListenHTTPS(1) } else { address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.VhostHTTPSPort)) l, err = net.Listen("tcp", address) diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 527096cd1b4..efd098ab5a8 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -260,7 +260,7 @@ func (f *Framework) SetEnvs(envs []string) { func (f *Framework) WriteTempFile(name string, content string) string { filePath := filepath.Join(f.TempDirectory, name) - err := os.WriteFile(filePath, []byte(content), 0o766) + err := os.WriteFile(filePath, []byte(content), 0o600) ExpectNoError(err) return filePath } diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 0845914bf06..10b3611bf6e 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -27,7 +27,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str currentServerProcesses := make([]*process.Process, 0, len(serverTemplates)) for i := range serverTemplates { path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-server-%d", i)) - err = os.WriteFile(path, []byte(outs[i]), 0o666) + err = os.WriteFile(path, []byte(outs[i]), 0o600) ExpectNoError(err) if TestContext.Debug { @@ -48,7 +48,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str for i := range clientTemplates { index := i + len(serverTemplates) path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-client-%d", i)) - err = os.WriteFile(path, []byte(outs[index]), 0o666) + err = os.WriteFile(path, []byte(outs[index]), 0o600) ExpectNoError(err) if TestContext.Debug { @@ -94,7 +94,7 @@ func (f *Framework) RunFrpc(args ...string) (*process.Process, string, error) { func (f *Framework) GenerateConfigFile(content string) string { f.configFileIndex++ path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-config-%d", f.configFileIndex)) - err := os.WriteFile(path, []byte(content), 0o666) + err := os.WriteFile(path, []byte(content), 0o600) ExpectNoError(err) return path } diff --git a/test/e2e/pkg/request/request.go b/test/e2e/pkg/request/request.go index 740bc4fbf2c..211cc42527d 100644 --- a/test/e2e/pkg/request/request.go +++ b/test/e2e/pkg/request/request.go @@ -12,7 +12,7 @@ import ( "strconv" "time" - libdial "github.com/fatedier/golib/net/dial" + libnet "github.com/fatedier/golib/net" httppkg "github.com/fatedier/frp/pkg/util/http" "github.com/fatedier/frp/test/e2e/pkg/rpc" @@ -160,11 +160,11 @@ func (r *Request) Do() (*Response, error) { if r.protocol != "tcp" { return nil, fmt.Errorf("only tcp protocol is allowed for proxy") } - proxyType, proxyAddress, auth, err := libdial.ParseProxyURL(r.proxyURL) + proxyType, proxyAddress, auth, err := libnet.ParseProxyURL(r.proxyURL) if err != nil { return nil, fmt.Errorf("parse ProxyURL error: %v", err) } - conn, err = libdial.Dial(addr, libdial.WithProxy(proxyType, proxyAddress), libdial.WithProxyAuth(auth)) + conn, err = libnet.Dial(addr, libnet.WithProxy(proxyType, proxyAddress), libnet.WithProxyAuth(auth)) if err != nil { return nil, err } diff --git a/test/e2e/v1/basic/http.go b/test/e2e/v1/basic/http.go index e649dbfbe47..4883263efae 100644 --- a/test/e2e/v1/basic/http.go +++ b/test/e2e/v1/basic/http.go @@ -5,6 +5,7 @@ import ( "net/http" "net/url" "strconv" + "time" "github.com/gorilla/websocket" "github.com/onsi/ginkgo/v2" @@ -385,4 +386,48 @@ var _ = ginkgo.Describe("[Feature: HTTP]", func() { framework.ExpectNoError(err) framework.ExpectEqualValues(consts.TestString, string(msg)) }) + + ginkgo.It("vhostHTTPTimeout", func() { + vhostHTTPPort := f.AllocPort() + serverConf := getDefaultServerConf(vhostHTTPPort) + serverConf += ` + vhostHTTPTimeout = 2 + ` + + delayDuration := 0 * time.Second + localPort := f.AllocPort() + localServer := httpserver.New( + httpserver.WithBindPort(localPort), + httpserver.WithHandler(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + time.Sleep(delayDuration) + _, _ = w.Write([]byte(req.Host)) + })), + ) + f.RunServer("", localServer) + + clientConf := consts.DefaultClientConfig + clientConf += fmt.Sprintf(` + [[proxies]] + name = "test" + type = "http" + localPort = %d + customDomains = ["normal.example.com"] + `, localPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTP().Timeout(time.Second) + }). + ExpectResp([]byte("normal.example.com")). + Ensure() + + delayDuration = 3 * time.Second + framework.NewRequestExpect(f).Port(vhostHTTPPort). + RequestModify(func(r *request.Request) { + r.HTTP().HTTPHost("normal.example.com").HTTP().Timeout(5 * time.Second) + }). + Ensure(framework.ExpectResponseCode(504)) + }) }) From f3a71bc08f0e606ff407638a34ddf09ecffe2364 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 11 Apr 2024 22:40:42 +0800 Subject: [PATCH 197/444] show tcpmux proxies on the frps dashboard (#4152) --- Release.md | 4 ++ .../{index-Q42Pu2_S.js => index-82-40HIG.js} | 32 ++++----- assets/frps/static/index.html | 2 +- server/dashboard_api.go | 3 +- web/frps/components.d.ts | 1 + web/frps/src/App.vue | 1 + web/frps/src/components/ProxiesTCPMux.vue | 38 ++++++++++ web/frps/src/components/ProxyViewExpand.vue | 70 +++++++++---------- web/frps/src/components/ServerOverview.vue | 4 +- web/frps/src/router/index.ts | 6 ++ web/frps/src/utils/proxy.ts | 23 ++++++ 11 files changed, 128 insertions(+), 56 deletions(-) rename assets/frps/static/{index-Q42Pu2_S.js => index-82-40HIG.js} (91%) create mode 100644 web/frps/src/components/ProxiesTCPMux.vue diff --git a/Release.md b/Release.md index 5de41f2fe0b..725ebe9457a 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,7 @@ +### Features + +* Show tcpmux proxies on the frps dashboard. + ### Fixes * When an HTTP proxy request times out, it returns 504 instead of 404 now. diff --git a/assets/frps/static/index-Q42Pu2_S.js b/assets/frps/static/index-82-40HIG.js similarity index 91% rename from assets/frps/static/index-Q42Pu2_S.js rename to assets/frps/static/index-82-40HIG.js index 45293e05cfd..3d8e3c08da8 100644 --- a/assets/frps/static/index-Q42Pu2_S.js +++ b/assets/frps/static/index-82-40HIG.js @@ -1,20 +1,20 @@ -var DD=Object.defineProperty;var ID=(e,t,r)=>t in e?DD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var OD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zt=(e,t,r)=>(ID(e,typeof t!="symbol"?t+"":t,r),r);var Ite=OD(($r,Hr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();/** +var DD=Object.defineProperty;var ID=(e,t,r)=>t in e?DD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var OD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var It=(e,t,r)=>(ID(e,typeof t!="symbol"?t+"":t,r),r);var Bte=OD(($r,Hr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();/** * @vue/shared v3.4.15 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Wm(e,t){const r=new Set(e.split(","));return t?n=>r.has(n.toLowerCase()):n=>r.has(n)}const St={},ns=[],Bt=()=>{},RD=()=>!1,Wd=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gm=e=>e.startsWith("onUpdate:"),$t=Object.assign,Um=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},kD=Object.prototype.hasOwnProperty,Ue=(e,t)=>kD.call(e,t),_e=Array.isArray,is=e=>Wu(e)==="[object Map]",Gd=e=>Wu(e)==="[object Set]",l_=e=>Wu(e)==="[object Date]",De=e=>typeof e=="function",ze=e=>typeof e=="string",oa=e=>typeof e=="symbol",qe=e=>e!==null&&typeof e=="object",Qc=e=>(qe(e)||De(e))&&De(e.then)&&De(e.catch),EC=Object.prototype.toString,Wu=e=>EC.call(e),ND=e=>Wu(e).slice(8,-1),LC=e=>Wu(e)==="[object Object]",Ym=e=>ze(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Sc=Wm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ud=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},BD=/-(\w)/g,Pn=Ud(e=>e.replace(BD,(t,r)=>r?r.toUpperCase():"")),FD=/\B([A-Z])/g,xo=Ud(e=>e.replace(FD,"-$1").toLowerCase()),Yd=Ud(e=>e.charAt(0).toUpperCase()+e.slice(1)),xc=Ud(e=>e?`on${Yd(e)}`:""),sa=(e,t)=>!Object.is(e,t),Cc=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},$D=e=>{const t=parseFloat(e);return isNaN(t)?e:t},HD=e=>{const t=ze(e)?Number(e):NaN;return isNaN(t)?e:t};let u_;const DC=()=>u_||(u_=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ct(e){if(_e(e)){const t={};for(let r=0;r{if(r){const n=r.split(VD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function re(e){let t="";if(ze(e))t=e;else if(_e(e))for(let r=0;rjd(r,t))}const be=e=>ze(e)?e:e==null?"":_e(e)||qe(e)&&(e.toString===EC||!De(e.toString))?JSON.stringify(e,RC,2):String(e),RC=(e,t)=>t&&t.__v_isRef?RC(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i],a)=>(r[Wh(n,a)+" =>"]=i,r),{})}:Gd(t)?{[`Set(${t.size})`]:[...t.values()].map(r=>Wh(r))}:oa(t)?Wh(t):qe(t)&&!_e(t)&&!LC(t)?String(t):t,Wh=(e,t="")=>{var r;return oa(e)?`Symbol(${(r=e.description)!=null?r:t})`:e};/** +**/function Wm(e,t){const r=new Set(e.split(","));return t?n=>r.has(n.toLowerCase()):n=>r.has(n)}const St={},as=[],Ft=()=>{},RD=()=>!1,Wd=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gm=e=>e.startsWith("onUpdate:"),Ht=Object.assign,Um=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},kD=Object.prototype.hasOwnProperty,Ue=(e,t)=>kD.call(e,t),_e=Array.isArray,os=e=>Wu(e)==="[object Map]",Gd=e=>Wu(e)==="[object Set]",l_=e=>Wu(e)==="[object Date]",De=e=>typeof e=="function",ze=e=>typeof e=="string",oa=e=>typeof e=="symbol",qe=e=>e!==null&&typeof e=="object",Qc=e=>(qe(e)||De(e))&&De(e.then)&&De(e.catch),EC=Object.prototype.toString,Wu=e=>EC.call(e),ND=e=>Wu(e).slice(8,-1),LC=e=>Wu(e)==="[object Object]",Ym=e=>ze(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Sc=Wm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ud=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},BD=/-(\w)/g,Pn=Ud(e=>e.replace(BD,(t,r)=>r?r.toUpperCase():"")),FD=/\B([A-Z])/g,xo=Ud(e=>e.replace(FD,"-$1").toLowerCase()),Yd=Ud(e=>e.charAt(0).toUpperCase()+e.slice(1)),xc=Ud(e=>e?`on${Yd(e)}`:""),sa=(e,t)=>!Object.is(e,t),Cc=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},$D=e=>{const t=parseFloat(e);return isNaN(t)?e:t},HD=e=>{const t=ze(e)?Number(e):NaN;return isNaN(t)?e:t};let u_;const DC=()=>u_||(u_=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ct(e){if(_e(e)){const t={};for(let r=0;r{if(r){const n=r.split(VD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function re(e){let t="";if(ze(e))t=e;else if(_e(e))for(let r=0;rjd(r,t))}const xe=e=>ze(e)?e:e==null?"":_e(e)||qe(e)&&(e.toString===EC||!De(e.toString))?JSON.stringify(e,RC,2):String(e),RC=(e,t)=>t&&t.__v_isRef?RC(e,t.value):os(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i],a)=>(r[Wh(n,a)+" =>"]=i,r),{})}:Gd(t)?{[`Set(${t.size})`]:[...t.values()].map(r=>Wh(r))}:oa(t)?Wh(t):qe(t)&&!_e(t)&&!LC(t)?String(t):t,Wh=(e,t="")=>{var r;return oa(e)?`Symbol(${(r=e.description)!=null?r:t})`:e};/** * @vue/reactivity v3.4.15 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Nr;class qD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Nr,!t&&Nr&&(this.index=(Nr.scopes||(Nr.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Nr;try{return Nr=this,t()}finally{Nr=r}}}on(){Nr=this}off(){Nr=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r=2))break}this._dirtyLevel<2&&(this._dirtyLevel=0),To()}return this._dirtyLevel>=2}set dirty(t){this._dirtyLevel=t?2:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ta,r=io;try{return ta=!0,io=this,this._runnings++,f_(this),this.fn()}finally{c_(this),this._runnings--,io=r,ta=t}}stop(){var t;this.active&&(f_(this),c_(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function XD(e){return e.value}function f_(e){e._trackId++,e._depsLength=0}function c_(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t{const r=new Map;return r.cleanup=e,r.computed=t,r},ed=new WeakMap,ao=Symbol(""),Fp=Symbol("");function Lr(e,t,r){if(ta&&io){let n=ed.get(e);n||ed.set(e,n=new Map);let i=n.get(r);i||n.set(r,i=VC(()=>n.delete(r))),$C(io,i)}}function mi(e,t,r,n,i,a){const o=ed.get(e);if(!o)return;let s=[];if(t==="clear")s=[...o.values()];else if(r==="length"&&_e(e)){const l=Number(n);o.forEach((u,f)=>{(f==="length"||!oa(f)&&f>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":_e(e)?Ym(r)&&s.push(o.get("length")):(s.push(o.get(ao)),is(e)&&s.push(o.get(Fp)));break;case"delete":_e(e)||(s.push(o.get(ao)),is(e)&&s.push(o.get(Fp)));break;case"set":is(e)&&s.push(o.get(ao));break}qm();for(const l of s)l&&HC(l,2);Km()}function ZD(e,t){var r;return(r=ed.get(e))==null?void 0:r.get(t)}const QD=Wm("__proto__,__v_isRef,__isVue"),WC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(oa)),d_=JD();function JD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Qe(this);for(let a=0,o=this.length;a{e[t]=function(...r){Co(),qm();const n=Qe(this)[t].apply(this,r);return Km(),To(),n}}),e}function eI(e){const t=Qe(this);return Lr(t,"has",e),t.hasOwnProperty(e)}class GC{constructor(t=!1,r=!1){this._isReadonly=t,this._shallow=r}get(t,r,n){const i=this._isReadonly,a=this._shallow;if(r==="__v_isReactive")return!i;if(r==="__v_isReadonly")return i;if(r==="__v_isShallow")return a;if(r==="__v_raw")return n===(i?a?hI:qC:a?jC:YC).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const o=_e(t);if(!i){if(o&&Ue(d_,r))return Reflect.get(d_,r,n);if(r==="hasOwnProperty")return eI}const s=Reflect.get(t,r,n);return(oa(r)?WC.has(r):QD(r))||(i||Lr(t,"get",r),a)?s:Pt(s)?o&&Ym(r)?s:s.value:qe(s)?i?Gu(s):Ln(s):s}}class UC extends GC{constructor(t=!1){super(!1,t)}set(t,r,n,i){let a=t[r];if(!this._shallow){const l=hs(a);if(!td(n)&&!hs(n)&&(a=Qe(a),n=Qe(n)),!_e(t)&&Pt(a)&&!Pt(n))return l?!1:(a.value=n,!0)}const o=_e(t)&&Ym(r)?Number(r)e,qd=e=>Reflect.getPrototypeOf(e);function vf(e,t,r=!1,n=!1){e=e.__v_raw;const i=Qe(e),a=Qe(t);r||(sa(t,a)&&Lr(i,"get",t),Lr(i,"get",a));const{has:o}=qd(i),s=n?Xm:r?ey:su;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function pf(e,t=!1){const r=this.__v_raw,n=Qe(r),i=Qe(e);return t||(sa(e,i)&&Lr(n,"has",e),Lr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function gf(e,t=!1){return e=e.__v_raw,!t&&Lr(Qe(e),"iterate",ao),Reflect.get(e,"size",e)}function h_(e){e=Qe(e);const t=Qe(this);return qd(t).has.call(t,e)||(t.add(e),mi(t,"add",e,e)),this}function v_(e,t){t=Qe(t);const r=Qe(this),{has:n,get:i}=qd(r);let a=n.call(r,e);a||(e=Qe(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?sa(t,o)&&mi(r,"set",e,t):mi(r,"add",e,t),this}function p_(e){const t=Qe(this),{has:r,get:n}=qd(t);let i=r.call(t,e);i||(e=Qe(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&mi(t,"delete",e,void 0),a}function g_(){const e=Qe(this),t=e.size!==0,r=e.clear();return t&&mi(e,"clear",void 0,void 0),r}function mf(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Qe(o),l=t?Xm:e?ey:su;return!e&&Lr(s,"iterate",ao),o.forEach((u,f)=>n.call(i,l(u),l(f),a))}}function yf(e,t,r){return function(...n){const i=this.__v_raw,a=Qe(i),o=is(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),f=r?Xm:t?ey:su;return!t&&Lr(a,"iterate",l?Fp:ao),{next(){const{value:c,done:h}=u.next();return h?{value:c,done:h}:{value:s?[f(c[0]),f(c[1])]:f(c),done:h}},[Symbol.iterator](){return this}}}}function Di(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function aI(){const e={get(a){return vf(this,a)},get size(){return gf(this)},has:pf,add:h_,set:v_,delete:p_,clear:g_,forEach:mf(!1,!1)},t={get(a){return vf(this,a,!1,!0)},get size(){return gf(this)},has:pf,add:h_,set:v_,delete:p_,clear:g_,forEach:mf(!1,!0)},r={get(a){return vf(this,a,!0)},get size(){return gf(this,!0)},has(a){return pf.call(this,a,!0)},add:Di("add"),set:Di("set"),delete:Di("delete"),clear:Di("clear"),forEach:mf(!0,!1)},n={get(a){return vf(this,a,!0,!0)},get size(){return gf(this,!0)},has(a){return pf.call(this,a,!0)},add:Di("add"),set:Di("set"),delete:Di("delete"),clear:Di("clear"),forEach:mf(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=yf(a,!1,!1),r[a]=yf(a,!0,!1),t[a]=yf(a,!1,!0),n[a]=yf(a,!0,!0)}),[e,r,t,n]}const[oI,sI,lI,uI]=aI();function Zm(e,t){const r=t?e?uI:lI:e?sI:oI;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(Ue(r,i)&&i in n?r:n,i,a)}const fI={get:Zm(!1,!1)},cI={get:Zm(!1,!0)},dI={get:Zm(!0,!1)},YC=new WeakMap,jC=new WeakMap,qC=new WeakMap,hI=new WeakMap;function vI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pI(e){return e.__v_skip||!Object.isExtensible(e)?0:vI(ND(e))}function Ln(e){return hs(e)?e:Jm(e,!1,rI,fI,YC)}function Qm(e){return Jm(e,!1,iI,cI,jC)}function Gu(e){return Jm(e,!0,nI,dI,qC)}function Jm(e,t,r,n,i){if(!qe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=pI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function as(e){return hs(e)?as(e.__v_raw):!!(e&&e.__v_isReactive)}function hs(e){return!!(e&&e.__v_isReadonly)}function td(e){return!!(e&&e.__v_isShallow)}function KC(e){return as(e)||hs(e)}function Qe(e){const t=e&&e.__v_raw;return t?Qe(t):e}function XC(e){return Jc(e,"__v_skip",!0),e}const su=e=>qe(e)?Ln(e):e,ey=e=>qe(e)?Gu(e):e;class ZC{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new jm(()=>t(this._value),()=>Tc(this,1),()=>this.dep&&zC(this.dep)),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Qe(this);return(!t._cacheable||t.effect.dirty)&&sa(t._value,t._value=t.effect.run())&&Tc(t,2),JC(t),t.effect._dirtyLevel>=1&&Tc(t,1),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function QC(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=Bt):(n=e.get,i=e.set),new ZC(n,i,a||!i,r)}function JC(e){ta&&io&&(e=Qe(e),$C(io,e.dep||(e.dep=VC(()=>e.dep=void 0,e instanceof ZC?e:void 0))))}function Tc(e,t=2,r){e=Qe(e);const n=e.dep;n&&HC(n,t)}function Pt(e){return!!(e&&e.__v_isRef===!0)}function $(e){return eT(e,!1)}function ty(e){return eT(e,!0)}function eT(e,t){return Pt(e)?e:new gI(e,t)}class gI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Qe(t),this._value=r?t:su(t)}get value(){return JC(this),this._value}set value(t){const r=this.__v_isShallow||td(t)||hs(t);t=r?t:Qe(t),sa(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:su(t),Tc(this,2))}}function T(e){return Pt(e)?e.value:e}const mI={get:(e,t,r)=>T(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Pt(i)&&!Pt(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function tT(e){return as(e)?e:new Proxy(e,mI)}function Kd(e){const t=_e(e)?new Array(e.length):{};for(const r in e)t[r]=rT(e,r);return t}class yI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return ZD(Qe(this._object),this._key)}}class _I{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function wn(e,t,r){return Pt(e)?e:De(e)?new _I(e):qe(e)&&arguments.length>1?rT(e,t,r):$(e)}function rT(e,t,r){const n=e[t];return Pt(n)?n:new yI(e,t,r)}/** +**/let Nr;class qD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Nr,!t&&Nr&&(this.index=(Nr.scopes||(Nr.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Nr;try{return Nr=this,t()}finally{Nr=r}}}on(){Nr=this}off(){Nr=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r=2))break}this._dirtyLevel<2&&(this._dirtyLevel=0),To()}return this._dirtyLevel>=2}set dirty(t){this._dirtyLevel=t?2:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ta,r=io;try{return ta=!0,io=this,this._runnings++,f_(this),this.fn()}finally{c_(this),this._runnings--,io=r,ta=t}}stop(){var t;this.active&&(f_(this),c_(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function XD(e){return e.value}function f_(e){e._trackId++,e._depsLength=0}function c_(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t{const r=new Map;return r.cleanup=e,r.computed=t,r},ed=new WeakMap,ao=Symbol(""),Fp=Symbol("");function Lr(e,t,r){if(ta&&io){let n=ed.get(e);n||ed.set(e,n=new Map);let i=n.get(r);i||n.set(r,i=VC(()=>n.delete(r))),$C(io,i)}}function mi(e,t,r,n,i,a){const o=ed.get(e);if(!o)return;let s=[];if(t==="clear")s=[...o.values()];else if(r==="length"&&_e(e)){const l=Number(n);o.forEach((u,f)=>{(f==="length"||!oa(f)&&f>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":_e(e)?Ym(r)&&s.push(o.get("length")):(s.push(o.get(ao)),os(e)&&s.push(o.get(Fp)));break;case"delete":_e(e)||(s.push(o.get(ao)),os(e)&&s.push(o.get(Fp)));break;case"set":os(e)&&s.push(o.get(ao));break}qm();for(const l of s)l&&HC(l,2);Km()}function ZD(e,t){var r;return(r=ed.get(e))==null?void 0:r.get(t)}const QD=Wm("__proto__,__v_isRef,__isVue"),WC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(oa)),d_=JD();function JD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Qe(this);for(let a=0,o=this.length;a{e[t]=function(...r){Co(),qm();const n=Qe(this)[t].apply(this,r);return Km(),To(),n}}),e}function eI(e){const t=Qe(this);return Lr(t,"has",e),t.hasOwnProperty(e)}class GC{constructor(t=!1,r=!1){this._isReadonly=t,this._shallow=r}get(t,r,n){const i=this._isReadonly,a=this._shallow;if(r==="__v_isReactive")return!i;if(r==="__v_isReadonly")return i;if(r==="__v_isShallow")return a;if(r==="__v_raw")return n===(i?a?hI:qC:a?jC:YC).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const o=_e(t);if(!i){if(o&&Ue(d_,r))return Reflect.get(d_,r,n);if(r==="hasOwnProperty")return eI}const s=Reflect.get(t,r,n);return(oa(r)?WC.has(r):QD(r))||(i||Lr(t,"get",r),a)?s:Pt(s)?o&&Ym(r)?s:s.value:qe(s)?i?Gu(s):Ln(s):s}}class UC extends GC{constructor(t=!1){super(!1,t)}set(t,r,n,i){let a=t[r];if(!this._shallow){const l=ps(a);if(!td(n)&&!ps(n)&&(a=Qe(a),n=Qe(n)),!_e(t)&&Pt(a)&&!Pt(n))return l?!1:(a.value=n,!0)}const o=_e(t)&&Ym(r)?Number(r)e,qd=e=>Reflect.getPrototypeOf(e);function vf(e,t,r=!1,n=!1){e=e.__v_raw;const i=Qe(e),a=Qe(t);r||(sa(t,a)&&Lr(i,"get",t),Lr(i,"get",a));const{has:o}=qd(i),s=n?Xm:r?ey:su;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function pf(e,t=!1){const r=this.__v_raw,n=Qe(r),i=Qe(e);return t||(sa(e,i)&&Lr(n,"has",e),Lr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function gf(e,t=!1){return e=e.__v_raw,!t&&Lr(Qe(e),"iterate",ao),Reflect.get(e,"size",e)}function h_(e){e=Qe(e);const t=Qe(this);return qd(t).has.call(t,e)||(t.add(e),mi(t,"add",e,e)),this}function v_(e,t){t=Qe(t);const r=Qe(this),{has:n,get:i}=qd(r);let a=n.call(r,e);a||(e=Qe(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?sa(t,o)&&mi(r,"set",e,t):mi(r,"add",e,t),this}function p_(e){const t=Qe(this),{has:r,get:n}=qd(t);let i=r.call(t,e);i||(e=Qe(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&mi(t,"delete",e,void 0),a}function g_(){const e=Qe(this),t=e.size!==0,r=e.clear();return t&&mi(e,"clear",void 0,void 0),r}function mf(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Qe(o),l=t?Xm:e?ey:su;return!e&&Lr(s,"iterate",ao),o.forEach((u,f)=>n.call(i,l(u),l(f),a))}}function yf(e,t,r){return function(...n){const i=this.__v_raw,a=Qe(i),o=os(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),f=r?Xm:t?ey:su;return!t&&Lr(a,"iterate",l?Fp:ao),{next(){const{value:c,done:h}=u.next();return h?{value:c,done:h}:{value:s?[f(c[0]),f(c[1])]:f(c),done:h}},[Symbol.iterator](){return this}}}}function Di(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function aI(){const e={get(a){return vf(this,a)},get size(){return gf(this)},has:pf,add:h_,set:v_,delete:p_,clear:g_,forEach:mf(!1,!1)},t={get(a){return vf(this,a,!1,!0)},get size(){return gf(this)},has:pf,add:h_,set:v_,delete:p_,clear:g_,forEach:mf(!1,!0)},r={get(a){return vf(this,a,!0)},get size(){return gf(this,!0)},has(a){return pf.call(this,a,!0)},add:Di("add"),set:Di("set"),delete:Di("delete"),clear:Di("clear"),forEach:mf(!0,!1)},n={get(a){return vf(this,a,!0,!0)},get size(){return gf(this,!0)},has(a){return pf.call(this,a,!0)},add:Di("add"),set:Di("set"),delete:Di("delete"),clear:Di("clear"),forEach:mf(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=yf(a,!1,!1),r[a]=yf(a,!0,!1),t[a]=yf(a,!1,!0),n[a]=yf(a,!0,!0)}),[e,r,t,n]}const[oI,sI,lI,uI]=aI();function Zm(e,t){const r=t?e?uI:lI:e?sI:oI;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(Ue(r,i)&&i in n?r:n,i,a)}const fI={get:Zm(!1,!1)},cI={get:Zm(!1,!0)},dI={get:Zm(!0,!1)},YC=new WeakMap,jC=new WeakMap,qC=new WeakMap,hI=new WeakMap;function vI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pI(e){return e.__v_skip||!Object.isExtensible(e)?0:vI(ND(e))}function Ln(e){return ps(e)?e:Jm(e,!1,rI,fI,YC)}function Qm(e){return Jm(e,!1,iI,cI,jC)}function Gu(e){return Jm(e,!0,nI,dI,qC)}function Jm(e,t,r,n,i){if(!qe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=pI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function ss(e){return ps(e)?ss(e.__v_raw):!!(e&&e.__v_isReactive)}function ps(e){return!!(e&&e.__v_isReadonly)}function td(e){return!!(e&&e.__v_isShallow)}function KC(e){return ss(e)||ps(e)}function Qe(e){const t=e&&e.__v_raw;return t?Qe(t):e}function XC(e){return Jc(e,"__v_skip",!0),e}const su=e=>qe(e)?Ln(e):e,ey=e=>qe(e)?Gu(e):e;class ZC{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new jm(()=>t(this._value),()=>Tc(this,1),()=>this.dep&&zC(this.dep)),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Qe(this);return(!t._cacheable||t.effect.dirty)&&sa(t._value,t._value=t.effect.run())&&Tc(t,2),JC(t),t.effect._dirtyLevel>=1&&Tc(t,1),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function QC(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=Ft):(n=e.get,i=e.set),new ZC(n,i,a||!i,r)}function JC(e){ta&&io&&(e=Qe(e),$C(io,e.dep||(e.dep=VC(()=>e.dep=void 0,e instanceof ZC?e:void 0))))}function Tc(e,t=2,r){e=Qe(e);const n=e.dep;n&&HC(n,t)}function Pt(e){return!!(e&&e.__v_isRef===!0)}function $(e){return eT(e,!1)}function ty(e){return eT(e,!0)}function eT(e,t){return Pt(e)?e:new gI(e,t)}class gI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Qe(t),this._value=r?t:su(t)}get value(){return JC(this),this._value}set value(t){const r=this.__v_isShallow||td(t)||ps(t);t=r?t:Qe(t),sa(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:su(t),Tc(this,2))}}function T(e){return Pt(e)?e.value:e}const mI={get:(e,t,r)=>T(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Pt(i)&&!Pt(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function tT(e){return ss(e)?e:new Proxy(e,mI)}function Kd(e){const t=_e(e)?new Array(e.length):{};for(const r in e)t[r]=rT(e,r);return t}class yI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return ZD(Qe(this._object),this._key)}}class _I{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function wn(e,t,r){return Pt(e)?e:De(e)?new _I(e):qe(e)&&arguments.length>1?rT(e,t,r):$(e)}function rT(e,t,r){const n=e[t];return Pt(n)?n:new yI(e,t,r)}/** * @vue/runtime-core v3.4.15 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function ra(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Xd(a,t,r)}return i}function sn(e,t,r,n){if(De(e)){const a=ra(e,t,r,n);return a&&Qc(a)&&a.catch(o=>{Xd(o,t,r)}),a}const i=[];for(let a=0;a>>1,i=or[n],a=uu(i);azn&&or.splice(t,1)}function xI(e){_e(e)?os.push(...e):(!Yi||!Yi.includes(e,e.allowRecurse?Ua+1:Ua))&&os.push(e),iT()}function m_(e,t,r=lu?zn+1:0){for(;ruu(r)-uu(n));if(os.length=0,Yi){Yi.push(...t);return}for(Yi=t,Ua=0;Uae.id==null?1/0:e.id,CI=(e,t)=>{const r=uu(e)-uu(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function oT(e){$p=!1,lu=!0,or.sort(CI);try{for(zn=0;znze(d)?d.trim():d)),c&&(i=r.map($D))}let s,l=n[s=xc(t)]||n[s=xc(Pn(t))];!l&&a&&(l=n[s=xc(xo(t))]),l&&sn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,sn(u,e,6,i)}}function sT(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const f=sT(u,t,!0);f&&(s=!0,$t(o,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(qe(e)&&n.set(e,null),null):(_e(a)?a.forEach(l=>o[l]=null):$t(o,a),qe(e)&&n.set(e,o),o)}function Zd(e,t){return!e||!Wd(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ue(e,t[0].toLowerCase()+t.slice(1))||Ue(e,xo(t))||Ue(e,t))}let Wt=null,lT=null;function rd(e){const t=Wt;return Wt=e,lT=e&&e.type.__scopeId||null,t}function j(e,t=Wt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&D_(-1);const a=rd(t);let o;try{o=e(...i)}finally{rd(a),n._d&&D_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Gh(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:f,renderCache:c,data:h,setupState:d,ctx:v,inheritAttrs:p}=e;let m,g;const y=rd(e);try{if(r.shapeFlag&4){const b=i||n,x=b;m=Hn(f.call(x,b,c,a,d,h,v)),g=l}else{const b=t;m=Hn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),g=t.props?l:MI(l)}}catch(b){kl.length=0,Xd(b,e,1),m=Z(Mr)}let _=m;if(g&&p!==!1){const b=Object.keys(g),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(Gm)&&(g=AI(g,o)),_=_i(_,g))}return r.dirs&&(_=_i(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),m=_,rd(y),m}const MI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Wd(r))&&((t||(t={}))[r]=e[r]);return t},AI=(e,t)=>{const r={};for(const n in e)(!Gm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function PI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?y_(n,o,u):!!o;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function II(e,t){t&&t.pendingBranch?_e(e)?t.effects.push(...e):t.effects.push(e):xI(e)}const OI=Symbol.for("v-scx"),RI=()=>Le(OI);function na(e,t){return oy(e,null,t)}const _f={};function we(e,t,r){return oy(e,t,r)}function oy(e,t,{immediate:r,deep:n,flush:i,once:a,onTrack:o,onTrigger:s}=St){if(t&&a){const w=t;t=(...S)=>{w(...S),x()}}const l=Qt,u=w=>n===!0?w:Xa(w,n===!1?1:void 0);let f,c=!1,h=!1;if(Pt(e)?(f=()=>e.value,c=td(e)):as(e)?(f=()=>u(e),c=!0):_e(e)?(h=!0,c=e.some(w=>as(w)||td(w)),f=()=>e.map(w=>{if(Pt(w))return w.value;if(as(w))return u(w);if(De(w))return ra(w,l,2)})):De(e)?t?f=()=>ra(e,l,2):f=()=>(d&&d(),sn(e,l,3,[v])):f=Bt,t&&n){const w=f;f=()=>Xa(w())}let d,v=w=>{d=_.onStop=()=>{ra(w,l,4),d=_.onStop=void 0}},p;if(rh)if(v=Bt,t?r&&sn(t,l,3,[f(),h?[]:void 0,v]):f(),i==="sync"){const w=RI();p=w.__watcherHandles||(w.__watcherHandles=[])}else return Bt;let m=h?new Array(e.length).fill(_f):_f;const g=()=>{if(!(!_.active||!_.dirty))if(t){const w=_.run();(n||c||(h?w.some((S,C)=>sa(S,m[C])):sa(w,m)))&&(d&&d(),sn(t,l,3,[w,m===_f?void 0:h&&m[0]===_f?[]:m,v]),m=w)}else _.run()};g.allowRecurse=!!t;let y;i==="sync"?y=g:i==="post"?y=()=>Sr(g,l&&l.suspense):(g.pre=!0,l&&(g.id=l.uid),y=()=>ny(g));const _=new jm(f,Bt,y),b=kC(),x=()=>{_.stop(),b&&Um(b.effects,_)};return t?r?g():m=_.run():i==="post"?Sr(_.run.bind(_),l&&l.suspense):_.run(),p&&p.push(x),x}function kI(e,t,r){const n=this.proxy,i=ze(e)?e.includes(".")?cT(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=Yu(this),s=oy(i,a.bind(n),r);return o(),s}function cT(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i0){if(r>=t)return e;r++}if(n=n||new Set,n.has(e))return e;if(n.add(e),Pt(e))Xa(e.value,t,r,n);else if(_e(e))for(let i=0;i{Xa(i,t,r,n)});else if(LC(e))for(const i in e)Xa(e[i],t,r,n);return e}function qt(e,t){if(Wt===null)return e;const r=nh(Wt)||Wt.proxy,n=e.dirs||(e.dirs=[]);for(let i=0;i{e.isMounted=!0}),tr(()=>{e.isUnmounting=!0}),e}const jr=[Function,Array],hT={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jr,onEnter:jr,onAfterEnter:jr,onEnterCancelled:jr,onBeforeLeave:jr,onLeave:jr,onAfterLeave:jr,onLeaveCancelled:jr,onBeforeAppear:jr,onAppear:jr,onAfterAppear:jr,onAppearCancelled:jr},NI={name:"BaseTransition",props:hT,setup(e,{slots:t}){const r=it(),n=dT();let i;return()=>{const a=t.default&&sy(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==Mr){o=p;break}}const s=Qe(e),{mode:l}=s;if(n.isLeaving)return Uh(o);const u=b_(o);if(!u)return Uh(o);const f=fu(u,s,n,r);cu(u,f);const c=r.subTree,h=c&&b_(c);let d=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,d=!0)}if(h&&h.type!==Mr&&(!Ya(u,h)||d)){const p=fu(h,s,n,r);if(cu(h,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&(r.effect.dirty=!0,r.update())},Uh(o);l==="in-out"&&u.type!==Mr&&(p.delayLeave=(m,g,y)=>{const _=vT(n,h);_[String(h.key)]=h,m[ji]=()=>{g(),m[ji]=void 0,delete f.delayedLeave},f.delayedLeave=y})}return o}}},BI=NI;function vT(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function fu(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:h,onAfterLeave:d,onLeaveCancelled:v,onBeforeAppear:p,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=t,_=String(e.key),b=vT(r,e),x=(C,M)=>{C&&sn(C,n,9,M)},w=(C,M)=>{const A=M[1];x(C,M),_e(C)?C.every(P=>P.length<=1)&&A():C.length<=1&&A()},S={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C[ji]&&C[ji](!0);const A=b[_];A&&Ya(e,A)&&A.el[ji]&&A.el[ji](),x(M,[C])},enter(C){let M=l,A=u,P=f;if(!r.isMounted)if(i)M=m||l,A=g||u,P=y||f;else return;let E=!1;const L=C[bf]=O=>{E||(E=!0,O?x(P,[C]):x(A,[C]),S.delayedLeave&&S.delayedLeave(),C[bf]=void 0)};M?w(M,[C,L]):L()},leave(C,M){const A=String(e.key);if(C[bf]&&C[bf](!0),r.isUnmounting)return M();x(c,[C]);let P=!1;const E=C[ji]=L=>{P||(P=!0,M(),L?x(v,[C]):x(d,[C]),C[ji]=void 0,b[A]===e&&delete b[A])};b[A]=e,h?w(h,[C,E]):E()},clone(C){return fu(C,t,r,n)}};return S}function Uh(e){if(Qd(e))return e=_i(e),e.children=null,e}function b_(e){return Qd(e)?e.children?e.children[0]:void 0:e}function cu(e,t){e.shapeFlag&6&&e.component?cu(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function sy(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Qd=e=>e.type.__isKeepAlive;function FI(e,t){gT(e,"a",t)}function pT(e,t){gT(e,"da",t)}function gT(e,t,r=Qt){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Jd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Qd(i.parent.vnode)&&$I(n,t,r,i),i=i.parent}}function $I(e,t,r,n){const i=Jd(t,e,n,!0);Os(()=>{Um(n[t],i)},r)}function Jd(e,t,r=Qt,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Co();const s=Yu(r),l=sn(t,r,e,o);return s(),To(),l});return n?i.unshift(a):i.push(a),a}}const Ai=e=>(t,r=Qt)=>(!rh||e==="sp")&&Jd(e,(...n)=>t(...n),r),eh=Ai("bm"),_t=Ai("m"),HI=Ai("bu"),Uu=Ai("u"),tr=Ai("bum"),Os=Ai("um"),zI=Ai("sp"),VI=Ai("rtg"),WI=Ai("rtc");function GI(e,t=Qt){Jd("ec",e,t)}function Hp(e,t,r,n){let i;const a=r&&r[n];if(_e(e)||ze(e)){i=new Array(e.length);for(let o=0,s=e.length;ot(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;s{const a=n.fn(...i);return a&&(a.key=n.key),a}:n.fn)}return e}function Ce(e,t,r={},n,i){if(Wt.isCE||Wt.parent&&Il(Wt.parent)&&Wt.parent.isCE)return t!=="default"&&(r.name=t),Z("slot",r,n&&n());let a=e[t];a&&a._c&&(a._d=!1),G();const o=a&&mT(a(r)),s=de(ft,{key:r.key||o&&o.key||`_${t}`},o||(n?n():[]),o&&e._===1?64:-2);return!i&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),a&&a._c&&(a._d=!0),s}function mT(e){return e.some(t=>la(t)?!(t.type===Mr||t.type===ft&&!mT(t.children)):!0)?e:null}function YI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:xc(n)]=e[n];return r}const zp=e=>e?LT(e)?nh(e)||e.proxy:zp(e.parent):null,Ol=$t(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zp(e.parent),$root:e=>zp(e.root),$emit:e=>e.emit,$options:e=>ly(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,ny(e.update)}),$nextTick:e=>e.n||(e.n=kt.bind(e.proxy)),$watch:e=>kI.bind(e)}),Yh=(e,t)=>e!==St&&!e.__isScriptSetup&&Ue(e,t),jI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const d=o[t];if(d!==void 0)switch(d){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Yh(n,t))return o[t]=1,n[t];if(i!==St&&Ue(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&Ue(u,t))return o[t]=3,a[t];if(r!==St&&Ue(r,t))return o[t]=4,r[t];Vp&&(o[t]=0)}}const f=Ol[t];let c,h;if(f)return t==="$attrs"&&Lr(e,"get",t),f(e);if((c=s.__cssModules)&&(c=c[t]))return c;if(r!==St&&Ue(r,t))return o[t]=4,r[t];if(h=l.config.globalProperties,Ue(h,t))return h[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Yh(i,t)?(i[t]=r,!0):n!==St&&Ue(n,t)?(n[t]=r,!0):Ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==St&&Ue(e,o)||Yh(t,o)||(s=a[0])&&Ue(s,o)||Ue(n,o)||Ue(Ol,o)||Ue(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:Ue(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};function Rs(){return qI().slots}function qI(){const e=it();return e.setupContext||(e.setupContext=IT(e))}function w_(e){return _e(e)?e.reduce((t,r)=>(t[r]=null,t),{}):e}let Vp=!0;function KI(e){const t=ly(e),r=e.proxy,n=e.ctx;Vp=!1,t.beforeCreate&&S_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:f,beforeMount:c,mounted:h,beforeUpdate:d,updated:v,activated:p,deactivated:m,beforeDestroy:g,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:A,inheritAttrs:P,components:E,directives:L,filters:O}=t;if(u&&XI(u,n,null),o)for(const V in o){const U=o[V];De(U)&&(n[V]=U.bind(r))}if(i){const V=i.call(r,r);qe(V)&&(e.data=Ln(V))}if(Vp=!0,a)for(const V in a){const U=a[V],F=De(U)?U.bind(r,r):De(U.get)?U.get.bind(r,r):Bt,z=!De(U)&&De(U.set)?U.set.bind(r):Bt,te=k({get:F,set:z});Object.defineProperty(n,V,{enumerable:!0,configurable:!0,get:()=>te.value,set:J=>te.value=J})}if(s)for(const V in s)yT(s[V],n,r,V);if(l){const V=De(l)?l.call(r):l;Reflect.ownKeys(V).forEach(U=>{Dt(U,V[U])})}f&&S_(f,e,"c");function H(V,U){_e(U)?U.forEach(F=>V(F.bind(r))):U&&V(U.bind(r))}if(H(eh,c),H(_t,h),H(HI,d),H(Uu,v),H(FI,p),H(pT,m),H(GI,C),H(WI,w),H(VI,S),H(tr,y),H(Os,b),H(zI,M),_e(A))if(A.length){const V=e.exposed||(e.exposed={});A.forEach(U=>{Object.defineProperty(V,U,{get:()=>r[U],set:F=>r[U]=F})})}else e.exposed||(e.exposed={});x&&e.render===Bt&&(e.render=x),P!=null&&(e.inheritAttrs=P),E&&(e.components=E),L&&(e.directives=L)}function XI(e,t,r=Bt){_e(e)&&(e=Wp(e));for(const n in e){const i=e[n];let a;qe(i)?"default"in i?a=Le(i.from||n,i.default,!0):a=Le(i.from||n):a=Le(i),Pt(a)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:o=>a.value=o}):t[n]=a}}function S_(e,t,r){sn(_e(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function yT(e,t,r,n){const i=n.includes(".")?cT(r,n):()=>r[n];if(ze(e)){const a=t[e];De(a)&&we(i,a)}else if(De(e))we(i,e.bind(r));else if(qe(e))if(_e(e))e.forEach(a=>yT(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&we(i,a,e)}}function ly(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>nd(l,u,o,!0)),nd(l,t,o)),qe(t)&&a.set(t,l),l}function nd(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&nd(e,a,r,!0),i&&i.forEach(o=>nd(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=ZI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const ZI={data:x_,props:C_,emits:C_,methods:Sl,computed:Sl,beforeCreate:ur,created:ur,beforeMount:ur,mounted:ur,beforeUpdate:ur,updated:ur,beforeDestroy:ur,beforeUnmount:ur,destroyed:ur,unmounted:ur,activated:ur,deactivated:ur,errorCaptured:ur,serverPrefetch:ur,components:Sl,directives:Sl,watch:JI,provide:x_,inject:QI};function x_(e,t){return t?e?function(){return $t(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function QI(e,t){return Sl(Wp(e),Wp(t))}function Wp(e){if(_e(e)){const t={};for(let r=0;r1)return r&&De(t)?t.call(n&&n.proxy):t}}function rO(e,t,r,n=!1){const i={},a={};Jc(a,th,1),e.propsDefaults=Object.create(null),bT(e,t,i,a);for(const o in e.propsOptions[0])o in i||(i[o]=void 0);r?e.props=n?i:Qm(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function nO(e,t,r,n){const{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=Qe(i),[l]=e.propsOptions;let u=!1;if((n||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[h,d]=wT(c,t,!0);$t(o,h),d&&s.push(...d)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!a&&!l)return qe(e)&&n.set(e,ns),ns;if(_e(a))for(let f=0;f-1,d[1]=p<0||v-1||Ue(d,"default"))&&s.push(c)}}}const u=[o,s];return qe(e)&&n.set(e,u),u}function T_(e){return e[0]!=="$"}function M_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function A_(e,t){return M_(e)===M_(t)}function P_(e,t){return _e(t)?t.findIndex(r=>A_(r,e)):De(t)&&A_(t,e)?0:-1}const ST=e=>e[0]==="_"||e==="$stable",uy=e=>_e(e)?e.map(Hn):[Hn(e)],iO=(e,t,r)=>{if(t._n)return t;const n=j((...i)=>uy(t(...i)),r);return n._c=!1,n},xT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(ST(i))continue;const a=e[i];if(De(a))t[i]=iO(i,a,n);else if(a!=null){const o=uy(a);t[i]=()=>o}}},CT=(e,t)=>{const r=uy(t);e.slots.default=()=>r},aO=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Qe(t),Jc(t,"_",r)):xT(t,e.slots={})}else e.slots={},t&&CT(e,t);Jc(e.slots,th,1)},oO=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=St;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:($t(i,t),!r&&s===1&&delete i._):(a=!t.$stable,xT(t,i)),o=t}else t&&(CT(e,t),o={default:1});if(a)for(const s in i)!ST(s)&&o[s]==null&&delete i[s]};function Up(e,t,r,n,i=!1){if(_e(e)){e.forEach((h,d)=>Up(h,t&&(_e(t)?t[d]:t),r,n,i));return}if(Il(n)&&!i)return;const a=n.shapeFlag&4?nh(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,f=s.refs===St?s.refs={}:s.refs,c=s.setupState;if(u!=null&&u!==l&&(ze(u)?(f[u]=null,Ue(c,u)&&(c[u]=null)):Pt(u)&&(u.value=null)),De(l))ra(l,s,12,[o,f]);else{const h=ze(l),d=Pt(l),v=e.f;if(h||d){const p=()=>{if(v){const m=h?Ue(c,l)?c[l]:f[l]:l.value;i?_e(m)&&Um(m,a):_e(m)?m.includes(a)||m.push(a):h?(f[l]=[a],Ue(c,l)&&(c[l]=f[l])):(l.value=[a],e.k&&(f[e.k]=l.value))}else h?(f[l]=o,Ue(c,l)&&(c[l]=o)):d&&(l.value=o,e.k&&(f[e.k]=o))};i||v?p():(p.id=-1,Sr(p,r))}}}const Sr=II;function sO(e){return lO(e)}function lO(e,t){const r=DC();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:h,setScopeId:d=Bt,insertStaticContent:v}=e,p=(D,I,W,X=null,q=null,le=null,fe=void 0,ae=null,se=!!I.dynamicChildren)=>{if(D===I)return;D&&!Ya(D,I)&&(X=B(D),J(D,q,le,!0),D=null),I.patchFlag===-2&&(se=!1,I.dynamicChildren=null);const{type:ne,ref:he,shapeFlag:Me}=I;switch(ne){case ks:m(D,I,W,X);break;case Mr:g(D,I,W,X);break;case qh:D==null&&y(I,W,X,fe);break;case ft:E(D,I,W,X,q,le,fe,ae,se);break;default:Me&1?x(D,I,W,X,q,le,fe,ae,se):Me&6?L(D,I,W,X,q,le,fe,ae,se):(Me&64||Me&128)&&ne.process(D,I,W,X,q,le,fe,ae,se,Q)}he!=null&&q&&Up(he,D&&D.ref,le,I||D,!I)},m=(D,I,W,X)=>{if(D==null)n(I.el=s(I.children),W,X);else{const q=I.el=D.el;I.children!==D.children&&u(q,I.children)}},g=(D,I,W,X)=>{D==null?n(I.el=l(I.children||""),W,X):I.el=D.el},y=(D,I,W,X)=>{[D.el,D.anchor]=v(D.children,I,W,X,D.el,D.anchor)},_=({el:D,anchor:I},W,X)=>{let q;for(;D&&D!==I;)q=h(D),n(D,W,X),D=q;n(I,W,X)},b=({el:D,anchor:I})=>{let W;for(;D&&D!==I;)W=h(D),i(D),D=W;i(I)},x=(D,I,W,X,q,le,fe,ae,se)=>{I.type==="svg"?fe="svg":I.type==="math"&&(fe="mathml"),D==null?w(I,W,X,q,le,fe,ae,se):M(D,I,q,le,fe,ae,se)},w=(D,I,W,X,q,le,fe,ae)=>{let se,ne;const{props:he,shapeFlag:Me,transition:xe,dirs:ke}=D;if(se=D.el=o(D.type,le,he&&he.is,he),Me&8?f(se,D.children):Me&16&&C(D.children,se,null,X,q,jh(D,le),fe,ae),ke&&ma(D,null,X,"created"),S(se,D,D.scopeId,fe,X),he){for(const rt in he)rt!=="value"&&!Sc(rt)&&a(se,rt,null,he[rt],le,D.children,X,q,Ie);"value"in he&&a(se,"value",null,he.value,le),(ne=he.onVnodeBeforeMount)&&kn(ne,X,D)}ke&&ma(D,null,X,"beforeMount");const Ve=uO(q,xe);Ve&&xe.beforeEnter(se),n(se,I,W),((ne=he&&he.onVnodeMounted)||Ve||ke)&&Sr(()=>{ne&&kn(ne,X,D),Ve&&xe.enter(se),ke&&ma(D,null,X,"mounted")},q)},S=(D,I,W,X,q)=>{if(W&&d(D,W),X)for(let le=0;le{for(let ne=se;ne{const ae=I.el=D.el;let{patchFlag:se,dynamicChildren:ne,dirs:he}=I;se|=D.patchFlag&16;const Me=D.props||St,xe=I.props||St;let ke;if(W&&ya(W,!1),(ke=xe.onVnodeBeforeUpdate)&&kn(ke,W,I,D),he&&ma(I,D,W,"beforeUpdate"),W&&ya(W,!0),ne?A(D.dynamicChildren,ne,ae,W,X,jh(I,q),le):fe||U(D,I,ae,null,W,X,jh(I,q),le,!1),se>0){if(se&16)P(ae,I,Me,xe,W,X,q);else if(se&2&&Me.class!==xe.class&&a(ae,"class",null,xe.class,q),se&4&&a(ae,"style",Me.style,xe.style,q),se&8){const Ve=I.dynamicProps;for(let rt=0;rt{ke&&kn(ke,W,I,D),he&&ma(I,D,W,"updated")},X)},A=(D,I,W,X,q,le,fe)=>{for(let ae=0;ae{if(W!==X){if(W!==St)for(const ae in W)!Sc(ae)&&!(ae in X)&&a(D,ae,W[ae],null,fe,I.children,q,le,Ie);for(const ae in X){if(Sc(ae))continue;const se=X[ae],ne=W[ae];se!==ne&&ae!=="value"&&a(D,ae,ne,se,fe,I.children,q,le,Ie)}"value"in X&&a(D,"value",W.value,X.value,fe)}},E=(D,I,W,X,q,le,fe,ae,se)=>{const ne=I.el=D?D.el:s(""),he=I.anchor=D?D.anchor:s("");let{patchFlag:Me,dynamicChildren:xe,slotScopeIds:ke}=I;ke&&(ae=ae?ae.concat(ke):ke),D==null?(n(ne,W,X),n(he,W,X),C(I.children||[],W,he,q,le,fe,ae,se)):Me>0&&Me&64&&xe&&D.dynamicChildren?(A(D.dynamicChildren,xe,W,q,le,fe,ae),(I.key!=null||q&&I===q.subTree)&&fy(D,I,!0)):U(D,I,W,he,q,le,fe,ae,se)},L=(D,I,W,X,q,le,fe,ae,se)=>{I.slotScopeIds=ae,D==null?I.shapeFlag&512?q.ctx.activate(I,W,X,fe,se):O(I,W,X,q,le,fe,se):N(D,I,se)},O=(D,I,W,X,q,le,fe)=>{const ae=D.component=_O(D,X,q);if(Qd(D)&&(ae.ctx.renderer=Q),bO(ae),ae.asyncDep){if(q&&q.registerDep(ae,H),!D.el){const se=ae.subTree=Z(Mr);g(null,se,I,W)}}else H(ae,D,I,W,q,le,fe)},N=(D,I,W)=>{const X=I.component=D.component;if(PI(D,I,W))if(X.asyncDep&&!X.asyncResolved){V(X,I,W);return}else X.next=I,SI(X.update),X.effect.dirty=!0,X.update();else I.el=D.el,X.vnode=I},H=(D,I,W,X,q,le,fe)=>{const ae=()=>{if(D.isMounted){let{next:he,bu:Me,u:xe,parent:ke,vnode:Ve}=D;{const We=TT(D);if(We){he&&(he.el=Ve.el,V(D,he,fe)),We.asyncDep.then(()=>{D.isUnmounted||ae()});return}}let rt=he,bt;ya(D,!1),he?(he.el=Ve.el,V(D,he,fe)):he=Ve,Me&&Cc(Me),(bt=he.props&&he.props.onVnodeBeforeUpdate)&&kn(bt,ke,he,Ve),ya(D,!0);const ve=Gh(D),Pe=D.subTree;D.subTree=ve,p(Pe,ve,c(Pe.el),B(Pe),D,q,le),he.el=ve.el,rt===null&&EI(D,ve.el),xe&&Sr(xe,q),(bt=he.props&&he.props.onVnodeUpdated)&&Sr(()=>kn(bt,ke,he,Ve),q)}else{let he;const{el:Me,props:xe}=I,{bm:ke,m:Ve,parent:rt}=D,bt=Il(I);if(ya(D,!1),ke&&Cc(ke),!bt&&(he=xe&&xe.onVnodeBeforeMount)&&kn(he,rt,I),ya(D,!0),Me&&pe){const ve=()=>{D.subTree=Gh(D),pe(Me,D.subTree,D,q,null)};bt?I.type.__asyncLoader().then(()=>!D.isUnmounted&&ve()):ve()}else{const ve=D.subTree=Gh(D);p(null,ve,W,X,D,q,le),I.el=ve.el}if(Ve&&Sr(Ve,q),!bt&&(he=xe&&xe.onVnodeMounted)){const ve=I;Sr(()=>kn(he,rt,ve),q)}(I.shapeFlag&256||rt&&Il(rt.vnode)&&rt.vnode.shapeFlag&256)&&D.a&&Sr(D.a,q),D.isMounted=!0,I=W=X=null}},se=D.effect=new jm(ae,Bt,()=>ny(ne),D.scope),ne=D.update=()=>{se.dirty&&se.run()};ne.id=D.uid,ya(D,!0),ne()},V=(D,I,W)=>{I.component=D;const X=D.vnode.props;D.vnode=I,D.next=null,nO(D,I.props,X,W),oO(D,I.children,W),Co(),m_(D),To()},U=(D,I,W,X,q,le,fe,ae,se=!1)=>{const ne=D&&D.children,he=D?D.shapeFlag:0,Me=I.children,{patchFlag:xe,shapeFlag:ke}=I;if(xe>0){if(xe&128){z(ne,Me,W,X,q,le,fe,ae,se);return}else if(xe&256){F(ne,Me,W,X,q,le,fe,ae,se);return}}ke&8?(he&16&&Ie(ne,q,le),Me!==ne&&f(W,Me)):he&16?ke&16?z(ne,Me,W,X,q,le,fe,ae,se):Ie(ne,q,le,!0):(he&8&&f(W,""),ke&16&&C(Me,W,X,q,le,fe,ae,se))},F=(D,I,W,X,q,le,fe,ae,se)=>{D=D||ns,I=I||ns;const ne=D.length,he=I.length,Me=Math.min(ne,he);let xe;for(xe=0;xehe?Ie(D,q,le,!0,!1,Me):C(I,W,X,q,le,fe,ae,se,Me)},z=(D,I,W,X,q,le,fe,ae,se)=>{let ne=0;const he=I.length;let Me=D.length-1,xe=he-1;for(;ne<=Me&&ne<=xe;){const ke=D[ne],Ve=I[ne]=se?qi(I[ne]):Hn(I[ne]);if(Ya(ke,Ve))p(ke,Ve,W,null,q,le,fe,ae,se);else break;ne++}for(;ne<=Me&&ne<=xe;){const ke=D[Me],Ve=I[xe]=se?qi(I[xe]):Hn(I[xe]);if(Ya(ke,Ve))p(ke,Ve,W,null,q,le,fe,ae,se);else break;Me--,xe--}if(ne>Me){if(ne<=xe){const ke=xe+1,Ve=kexe)for(;ne<=Me;)J(D[ne],q,le,!0),ne++;else{const ke=ne,Ve=ne,rt=new Map;for(ne=Ve;ne<=xe;ne++){const pt=I[ne]=se?qi(I[ne]):Hn(I[ne]);pt.key!=null&&rt.set(pt.key,ne)}let bt,ve=0;const Pe=xe-Ve+1;let We=!1,Ge=0;const et=new Array(Pe);for(ne=0;ne=Pe){J(pt,q,le,!0);continue}let Kt;if(pt.key!=null)Kt=rt.get(pt.key);else for(bt=Ve;bt<=xe;bt++)if(et[bt-Ve]===0&&Ya(pt,I[bt])){Kt=bt;break}Kt===void 0?J(pt,q,le,!0):(et[Kt-Ve]=ne+1,Kt>=Ge?Ge=Kt:We=!0,p(pt,I[Kt],W,null,q,le,fe,ae,se),ve++)}const Ht=We?fO(et):ns;for(bt=Ht.length-1,ne=Pe-1;ne>=0;ne--){const pt=Ve+ne,Kt=I[pt],Yr=pt+1{const{el:le,type:fe,transition:ae,children:se,shapeFlag:ne}=D;if(ne&6){te(D.component.subTree,I,W,X);return}if(ne&128){D.suspense.move(I,W,X);return}if(ne&64){fe.move(D,I,W,Q);return}if(fe===ft){n(le,I,W);for(let Me=0;Meae.enter(le),q);else{const{leave:Me,delayLeave:xe,afterLeave:ke}=ae,Ve=()=>n(le,I,W),rt=()=>{Me(le,()=>{Ve(),ke&&ke()})};xe?xe(le,Ve,rt):rt()}else n(le,I,W)},J=(D,I,W,X=!1,q=!1)=>{const{type:le,props:fe,ref:ae,children:se,dynamicChildren:ne,shapeFlag:he,patchFlag:Me,dirs:xe}=D;if(ae!=null&&Up(ae,null,W,D,!0),he&256){I.ctx.deactivate(D);return}const ke=he&1&&xe,Ve=!Il(D);let rt;if(Ve&&(rt=fe&&fe.onVnodeBeforeUnmount)&&kn(rt,I,D),he&6)$e(D.component,W,X);else{if(he&128){D.suspense.unmount(W,X);return}ke&&ma(D,null,I,"beforeUnmount"),he&64?D.type.remove(D,I,W,q,Q,X):ne&&(le!==ft||Me>0&&Me&64)?Ie(ne,I,W,!1,!0):(le===ft&&Me&384||!q&&he&16)&&Ie(se,I,W),X&&me(D)}(Ve&&(rt=fe&&fe.onVnodeUnmounted)||ke)&&Sr(()=>{rt&&kn(rt,I,D),ke&&ma(D,null,I,"unmounted")},W)},me=D=>{const{type:I,el:W,anchor:X,transition:q}=D;if(I===ft){Se(W,X);return}if(I===qh){b(D);return}const le=()=>{i(W),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(D.shapeFlag&1&&q&&!q.persisted){const{leave:fe,delayLeave:ae}=q,se=()=>fe(W,le);ae?ae(D.el,le,se):se()}else le()},Se=(D,I)=>{let W;for(;D!==I;)W=h(D),i(D),D=W;i(I)},$e=(D,I,W)=>{const{bum:X,scope:q,update:le,subTree:fe,um:ae}=D;X&&Cc(X),q.stop(),le&&(le.active=!1,J(fe,D,I,W)),ae&&Sr(ae,I),Sr(()=>{D.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&D.asyncDep&&!D.asyncResolved&&D.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Ie=(D,I,W,X=!1,q=!1,le=0)=>{for(let fe=le;feD.shapeFlag&6?B(D.component.subTree):D.shapeFlag&128?D.suspense.next():h(D.anchor||D.el);let Y=!1;const K=(D,I,W)=>{D==null?I._vnode&&J(I._vnode,null,null,!0):p(I._vnode||null,D,I,null,null,null,W),Y||(Y=!0,m_(),aT(),Y=!1),I._vnode=D},Q={p,um:J,m:te,r:me,mt:O,mc:C,pc:U,pbc:A,n:B,o:e};let oe,pe;return t&&([oe,pe]=t(Q)),{render:K,hydrate:oe,createApp:tO(K,oe)}}function jh({type:e,props:t},r){return r==="svg"&&e==="foreignObject"||r==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:r}function ya({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function uO(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function fy(e,t,r=!1){const n=e.children,i=t.children;if(_e(n)&&_e(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}function TT(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:TT(t)}const cO=e=>e.__isTeleport,Rl=e=>e&&(e.disabled||e.disabled===""),E_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,L_=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Yp=(e,t)=>{const r=e&&e.to;return ze(r)?t?t(r):null:r},dO={name:"Teleport",__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:f,pc:c,pbc:h,o:{insert:d,querySelector:v,createText:p,createComment:m}}=u,g=Rl(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");d(x,r,n),d(w,r,n);const S=t.target=Yp(t.props,v),C=t.targetAnchor=p("");S&&(d(C,S),o==="svg"||E_(S)?o="svg":(o==="mathml"||L_(S))&&(o="mathml"));const M=(A,P)=>{y&16&&f(_,A,P,i,a,o,s,l)};g?M(r,w):S&&M(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Rl(e.props),M=C?r:w,A=C?x:S;if(o==="svg"||E_(w)?o="svg":(o==="mathml"||L_(w))&&(o="mathml"),b?(h(e.dynamicChildren,b,M,i,a,o,s),fy(e,t,!0)):l||c(e,t,M,A,i,a,o,s,!1),g)C?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):wf(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const P=t.target=Yp(t.props,v);P&&wf(t,P,null,u,0)}else C&&wf(t,w,S,u,1)}AT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:f,target:c,props:h}=e;if(c&&a(f),o&&a(u),s&16){const d=o||!Rl(h);for(let v=0;v0?Sn||ns:null,vO(),du>0&&Sn&&Sn.push(e),e}function ce(e,t,r,n,i,a){return PT(ee(e,t,r,n,i,a,!0))}function de(e,t,r,n,i){return PT(Z(e,t,r,n,i,!0))}function la(e){return e?e.__v_isVNode===!0:!1}function Ya(e,t){return e.type===t.type&&e.key===t.key}const th="__vInternal",ET=({key:e})=>e??null,Mc=({ref:e,ref_key:t,ref_for:r})=>(typeof e=="number"&&(e=""+e),e!=null?ze(e)||Pt(e)||De(e)?{i:Wt,r:e,k:t,f:!!r}:e:null);function ee(e,t=null,r=null,n=0,i=null,a=e===ft?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ET(t),ref:t&&Mc(t),scopeId:lT,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Wt};return s?(cy(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=ze(r)?8:16),du>0&&!o&&Sn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&Sn.push(l),l}const Z=pO;function pO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===uT)&&(e=Mr),la(e)){const s=_i(e,t,!0);return r&&cy(s,r),du>0&&!a&&Sn&&(s.shapeFlag&6?Sn[Sn.indexOf(e)]=s:Sn.push(s)),s.patchFlag|=-2,s}if(CO(e)&&(e=e.__vccOpts),t){t=gO(t);let{class:s,style:l}=t;s&&!ze(s)&&(t.class=re(s)),qe(l)&&(KC(l)&&!_e(l)&&(l=$t({},l)),t.style=ct(l))}const o=ze(e)?1:DI(e)?128:cO(e)?64:qe(e)?4:De(e)?2:0;return ee(e,t,r,n,i,o,a,!0)}function gO(e){return e?KC(e)||th in e?$t({},e):e:null}function _i(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ei(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&ET(s),ref:t&&t.ref?r&&i?_e(i)?i.concat(Mc(t)):[i,Mc(t)]:Mc(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ft?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_i(e.ssContent),ssFallback:e.ssFallback&&_i(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function mt(e=" ",t=0){return Z(ks,null,e,t)}function Ae(e="",t=!1){return t?(G(),de(Mr,null,e)):Z(Mr,null,e)}function Hn(e){return e==null||typeof e=="boolean"?Z(Mr):_e(e)?Z(ft,null,e.slice()):typeof e=="object"?qi(e):Z(ks,null,String(e))}function qi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_i(e)}function cy(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(_e(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),cy(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(th in t)?t._ctx=Wt:i===3&&Wt&&(Wt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:Wt},r=32):(t=String(t),n&64?(r=16,t=[mt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ei(...e){const t={};for(let r=0;rQt||Wt;let ad,jp;{const e=DC(),t=(r,n)=>{let i;return(i=e[r])||(i=e[r]=[]),i.push(n),a=>{i.length>1?i.forEach(o=>o(a)):i[0](a)}};ad=t("__VUE_INSTANCE_SETTERS__",r=>Qt=r),jp=t("__VUE_SSR_SETTERS__",r=>rh=r)}const Yu=e=>{const t=Qt;return ad(e),e.scope.on(),()=>{e.scope.off(),ad(t)}},I_=()=>{Qt&&Qt.scope.off(),ad(null)};function LT(e){return e.vnode.shapeFlag&4}let rh=!1;function bO(e,t=!1){t&&jp(t);const{props:r,children:n}=e.vnode,i=LT(e);rO(e,r,i,t),aO(e,n);const a=i?wO(e,t):void 0;return t&&jp(!1),a}function wO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=XC(new Proxy(e.ctx,jI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?IT(e):null,a=Yu(e);Co();const o=ra(n,e,0,[e.props,i]);if(To(),a(),Qc(o)){if(o.then(I_,I_),t)return o.then(s=>{O_(e,s,t)}).catch(s=>{Xd(s,e,0)});e.asyncDep=o}else O_(e,o,t)}else DT(e,t)}function O_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:qe(t)&&(e.setupState=tT(t)),DT(e,r)}let R_;function DT(e,t,r){const n=e.type;if(!e.render){if(!t&&R_&&!n.render){const i=n.template||ly(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=$t($t({isCustomElement:a,delimiters:s},o),l);n.render=R_(i,u)}}e.render=n.render||Bt}{const i=Yu(e);Co();try{KI(e)}finally{To(),i()}}}function SO(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,r){return Lr(e,"get","$attrs"),t[r]}}))}function IT(e){const t=r=>{e.exposed=r||{}};return{get attrs(){return SO(e)},slots:e.slots,emit:e.emit,expose:t}}function nh(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(tT(XC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Ol)return Ol[r](e)},has(t,r){return r in t||r in Ol}}))}function xO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function CO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>QC(e,t,rh);function Te(e,t,r){const n=arguments.length;return n===2?qe(t)&&!_e(t)?la(t)?Z(e,null,[t]):Z(e,t):Z(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&la(r)&&(r=[r]),Z(e,t,r))}const TO="3.4.15",MO=Bt;/** +**/function ra(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Xd(a,t,r)}return i}function sn(e,t,r,n){if(De(e)){const a=ra(e,t,r,n);return a&&Qc(a)&&a.catch(o=>{Xd(o,t,r)}),a}const i=[];for(let a=0;a>>1,i=or[n],a=uu(i);azn&&or.splice(t,1)}function xI(e){_e(e)?ls.push(...e):(!Yi||!Yi.includes(e,e.allowRecurse?Ua+1:Ua))&&ls.push(e),iT()}function m_(e,t,r=lu?zn+1:0){for(;ruu(r)-uu(n));if(ls.length=0,Yi){Yi.push(...t);return}for(Yi=t,Ua=0;Uae.id==null?1/0:e.id,CI=(e,t)=>{const r=uu(e)-uu(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function oT(e){$p=!1,lu=!0,or.sort(CI);try{for(zn=0;znze(d)?d.trim():d)),c&&(i=r.map($D))}let s,l=n[s=xc(t)]||n[s=xc(Pn(t))];!l&&a&&(l=n[s=xc(xo(t))]),l&&sn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,sn(u,e,6,i)}}function sT(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const f=sT(u,t,!0);f&&(s=!0,Ht(o,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(qe(e)&&n.set(e,null),null):(_e(a)?a.forEach(l=>o[l]=null):Ht(o,a),qe(e)&&n.set(e,o),o)}function Zd(e,t){return!e||!Wd(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ue(e,t[0].toLowerCase()+t.slice(1))||Ue(e,xo(t))||Ue(e,t))}let Wt=null,lT=null;function rd(e){const t=Wt;return Wt=e,lT=e&&e.type.__scopeId||null,t}function q(e,t=Wt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&D_(-1);const a=rd(t);let o;try{o=e(...i)}finally{rd(a),n._d&&D_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Gh(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:f,renderCache:c,data:h,setupState:d,ctx:v,inheritAttrs:p}=e;let m,g;const y=rd(e);try{if(r.shapeFlag&4){const b=i||n,x=b;m=Hn(f.call(x,b,c,a,d,h,v)),g=l}else{const b=t;m=Hn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),g=t.props?l:MI(l)}}catch(b){kl.length=0,Xd(b,e,1),m=Z(Mr)}let _=m;if(g&&p!==!1){const b=Object.keys(g),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(Gm)&&(g=AI(g,o)),_=_i(_,g))}return r.dirs&&(_=_i(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),m=_,rd(y),m}const MI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Wd(r))&&((t||(t={}))[r]=e[r]);return t},AI=(e,t)=>{const r={};for(const n in e)(!Gm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function PI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?y_(n,o,u):!!o;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function II(e,t){t&&t.pendingBranch?_e(e)?t.effects.push(...e):t.effects.push(e):xI(e)}const OI=Symbol.for("v-scx"),RI=()=>Le(OI);function na(e,t){return oy(e,null,t)}const _f={};function be(e,t,r){return oy(e,t,r)}function oy(e,t,{immediate:r,deep:n,flush:i,once:a,onTrack:o,onTrigger:s}=St){if(t&&a){const w=t;t=(...S)=>{w(...S),x()}}const l=Qt,u=w=>n===!0?w:Xa(w,n===!1?1:void 0);let f,c=!1,h=!1;if(Pt(e)?(f=()=>e.value,c=td(e)):ss(e)?(f=()=>u(e),c=!0):_e(e)?(h=!0,c=e.some(w=>ss(w)||td(w)),f=()=>e.map(w=>{if(Pt(w))return w.value;if(ss(w))return u(w);if(De(w))return ra(w,l,2)})):De(e)?t?f=()=>ra(e,l,2):f=()=>(d&&d(),sn(e,l,3,[v])):f=Ft,t&&n){const w=f;f=()=>Xa(w())}let d,v=w=>{d=_.onStop=()=>{ra(w,l,4),d=_.onStop=void 0}},p;if(rh)if(v=Ft,t?r&&sn(t,l,3,[f(),h?[]:void 0,v]):f(),i==="sync"){const w=RI();p=w.__watcherHandles||(w.__watcherHandles=[])}else return Ft;let m=h?new Array(e.length).fill(_f):_f;const g=()=>{if(!(!_.active||!_.dirty))if(t){const w=_.run();(n||c||(h?w.some((S,C)=>sa(S,m[C])):sa(w,m)))&&(d&&d(),sn(t,l,3,[w,m===_f?void 0:h&&m[0]===_f?[]:m,v]),m=w)}else _.run()};g.allowRecurse=!!t;let y;i==="sync"?y=g:i==="post"?y=()=>Sr(g,l&&l.suspense):(g.pre=!0,l&&(g.id=l.uid),y=()=>ny(g));const _=new jm(f,Ft,y),b=kC(),x=()=>{_.stop(),b&&Um(b.effects,_)};return t?r?g():m=_.run():i==="post"?Sr(_.run.bind(_),l&&l.suspense):_.run(),p&&p.push(x),x}function kI(e,t,r){const n=this.proxy,i=ze(e)?e.includes(".")?cT(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=Yu(this),s=oy(i,a.bind(n),r);return o(),s}function cT(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i0){if(r>=t)return e;r++}if(n=n||new Set,n.has(e))return e;if(n.add(e),Pt(e))Xa(e.value,t,r,n);else if(_e(e))for(let i=0;i{Xa(i,t,r,n)});else if(LC(e))for(const i in e)Xa(e[i],t,r,n);return e}function qt(e,t){if(Wt===null)return e;const r=nh(Wt)||Wt.proxy,n=e.dirs||(e.dirs=[]);for(let i=0;i{e.isMounted=!0}),tr(()=>{e.isUnmounting=!0}),e}const jr=[Function,Array],hT={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jr,onEnter:jr,onAfterEnter:jr,onEnterCancelled:jr,onBeforeLeave:jr,onLeave:jr,onAfterLeave:jr,onLeaveCancelled:jr,onBeforeAppear:jr,onAppear:jr,onAfterAppear:jr,onAppearCancelled:jr},NI={name:"BaseTransition",props:hT,setup(e,{slots:t}){const r=it(),n=dT();let i;return()=>{const a=t.default&&sy(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==Mr){o=p;break}}const s=Qe(e),{mode:l}=s;if(n.isLeaving)return Uh(o);const u=b_(o);if(!u)return Uh(o);const f=fu(u,s,n,r);cu(u,f);const c=r.subTree,h=c&&b_(c);let d=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,d=!0)}if(h&&h.type!==Mr&&(!Ya(u,h)||d)){const p=fu(h,s,n,r);if(cu(h,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&(r.effect.dirty=!0,r.update())},Uh(o);l==="in-out"&&u.type!==Mr&&(p.delayLeave=(m,g,y)=>{const _=vT(n,h);_[String(h.key)]=h,m[ji]=()=>{g(),m[ji]=void 0,delete f.delayedLeave},f.delayedLeave=y})}return o}}},BI=NI;function vT(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function fu(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:h,onAfterLeave:d,onLeaveCancelled:v,onBeforeAppear:p,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=t,_=String(e.key),b=vT(r,e),x=(C,M)=>{C&&sn(C,n,9,M)},w=(C,M)=>{const A=M[1];x(C,M),_e(C)?C.every(P=>P.length<=1)&&A():C.length<=1&&A()},S={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C[ji]&&C[ji](!0);const A=b[_];A&&Ya(e,A)&&A.el[ji]&&A.el[ji](),x(M,[C])},enter(C){let M=l,A=u,P=f;if(!r.isMounted)if(i)M=m||l,A=g||u,P=y||f;else return;let E=!1;const L=C[bf]=O=>{E||(E=!0,O?x(P,[C]):x(A,[C]),S.delayedLeave&&S.delayedLeave(),C[bf]=void 0)};M?w(M,[C,L]):L()},leave(C,M){const A=String(e.key);if(C[bf]&&C[bf](!0),r.isUnmounting)return M();x(c,[C]);let P=!1;const E=C[ji]=L=>{P||(P=!0,M(),L?x(v,[C]):x(d,[C]),C[ji]=void 0,b[A]===e&&delete b[A])};b[A]=e,h?w(h,[C,E]):E()},clone(C){return fu(C,t,r,n)}};return S}function Uh(e){if(Qd(e))return e=_i(e),e.children=null,e}function b_(e){return Qd(e)?e.children?e.children[0]:void 0:e}function cu(e,t){e.shapeFlag&6&&e.component?cu(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function sy(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Qd=e=>e.type.__isKeepAlive;function FI(e,t){gT(e,"a",t)}function pT(e,t){gT(e,"da",t)}function gT(e,t,r=Qt){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Jd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Qd(i.parent.vnode)&&$I(n,t,r,i),i=i.parent}}function $I(e,t,r,n){const i=Jd(t,e,n,!0);ks(()=>{Um(n[t],i)},r)}function Jd(e,t,r=Qt,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Co();const s=Yu(r),l=sn(t,r,e,o);return s(),To(),l});return n?i.unshift(a):i.push(a),a}}const Ai=e=>(t,r=Qt)=>(!rh||e==="sp")&&Jd(e,(...n)=>t(...n),r),eh=Ai("bm"),_t=Ai("m"),HI=Ai("bu"),Uu=Ai("u"),tr=Ai("bum"),ks=Ai("um"),zI=Ai("sp"),VI=Ai("rtg"),WI=Ai("rtc");function GI(e,t=Qt){Jd("ec",e,t)}function Hp(e,t,r,n){let i;const a=r&&r[n];if(_e(e)||ze(e)){i=new Array(e.length);for(let o=0,s=e.length;ot(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;s{const a=n.fn(...i);return a&&(a.key=n.key),a}:n.fn)}return e}function Ce(e,t,r={},n,i){if(Wt.isCE||Wt.parent&&Il(Wt.parent)&&Wt.parent.isCE)return t!=="default"&&(r.name=t),Z("slot",r,n&&n());let a=e[t];a&&a._c&&(a._d=!1),G();const o=a&&mT(a(r)),s=ve(ft,{key:r.key||o&&o.key||`_${t}`},o||(n?n():[]),o&&e._===1?64:-2);return!i&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),a&&a._c&&(a._d=!0),s}function mT(e){return e.some(t=>la(t)?!(t.type===Mr||t.type===ft&&!mT(t.children)):!0)?e:null}function YI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:xc(n)]=e[n];return r}const zp=e=>e?LT(e)?nh(e)||e.proxy:zp(e.parent):null,Ol=Ht(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zp(e.parent),$root:e=>zp(e.root),$emit:e=>e.emit,$options:e=>ly(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,ny(e.update)}),$nextTick:e=>e.n||(e.n=Nt.bind(e.proxy)),$watch:e=>kI.bind(e)}),Yh=(e,t)=>e!==St&&!e.__isScriptSetup&&Ue(e,t),jI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const d=o[t];if(d!==void 0)switch(d){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Yh(n,t))return o[t]=1,n[t];if(i!==St&&Ue(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&Ue(u,t))return o[t]=3,a[t];if(r!==St&&Ue(r,t))return o[t]=4,r[t];Vp&&(o[t]=0)}}const f=Ol[t];let c,h;if(f)return t==="$attrs"&&Lr(e,"get",t),f(e);if((c=s.__cssModules)&&(c=c[t]))return c;if(r!==St&&Ue(r,t))return o[t]=4,r[t];if(h=l.config.globalProperties,Ue(h,t))return h[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Yh(i,t)?(i[t]=r,!0):n!==St&&Ue(n,t)?(n[t]=r,!0):Ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==St&&Ue(e,o)||Yh(t,o)||(s=a[0])&&Ue(s,o)||Ue(n,o)||Ue(Ol,o)||Ue(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:Ue(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};function Ns(){return qI().slots}function qI(){const e=it();return e.setupContext||(e.setupContext=IT(e))}function w_(e){return _e(e)?e.reduce((t,r)=>(t[r]=null,t),{}):e}let Vp=!0;function KI(e){const t=ly(e),r=e.proxy,n=e.ctx;Vp=!1,t.beforeCreate&&S_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:f,beforeMount:c,mounted:h,beforeUpdate:d,updated:v,activated:p,deactivated:m,beforeDestroy:g,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:A,inheritAttrs:P,components:E,directives:L,filters:O}=t;if(u&&XI(u,n,null),o)for(const V in o){const U=o[V];De(U)&&(n[V]=U.bind(r))}if(i){const V=i.call(r,r);qe(V)&&(e.data=Ln(V))}if(Vp=!0,a)for(const V in a){const U=a[V],F=De(U)?U.bind(r,r):De(U.get)?U.get.bind(r,r):Ft,z=!De(U)&&De(U.set)?U.set.bind(r):Ft,ee=k({get:F,set:z});Object.defineProperty(n,V,{enumerable:!0,configurable:!0,get:()=>ee.value,set:J=>ee.value=J})}if(s)for(const V in s)yT(s[V],n,r,V);if(l){const V=De(l)?l.call(r):l;Reflect.ownKeys(V).forEach(U=>{Dt(U,V[U])})}f&&S_(f,e,"c");function H(V,U){_e(U)?U.forEach(F=>V(F.bind(r))):U&&V(U.bind(r))}if(H(eh,c),H(_t,h),H(HI,d),H(Uu,v),H(FI,p),H(pT,m),H(GI,C),H(WI,w),H(VI,S),H(tr,y),H(ks,b),H(zI,M),_e(A))if(A.length){const V=e.exposed||(e.exposed={});A.forEach(U=>{Object.defineProperty(V,U,{get:()=>r[U],set:F=>r[U]=F})})}else e.exposed||(e.exposed={});x&&e.render===Ft&&(e.render=x),P!=null&&(e.inheritAttrs=P),E&&(e.components=E),L&&(e.directives=L)}function XI(e,t,r=Ft){_e(e)&&(e=Wp(e));for(const n in e){const i=e[n];let a;qe(i)?"default"in i?a=Le(i.from||n,i.default,!0):a=Le(i.from||n):a=Le(i),Pt(a)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:o=>a.value=o}):t[n]=a}}function S_(e,t,r){sn(_e(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function yT(e,t,r,n){const i=n.includes(".")?cT(r,n):()=>r[n];if(ze(e)){const a=t[e];De(a)&&be(i,a)}else if(De(e))be(i,e.bind(r));else if(qe(e))if(_e(e))e.forEach(a=>yT(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&be(i,a,e)}}function ly(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>nd(l,u,o,!0)),nd(l,t,o)),qe(t)&&a.set(t,l),l}function nd(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&nd(e,a,r,!0),i&&i.forEach(o=>nd(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=ZI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const ZI={data:x_,props:C_,emits:C_,methods:Sl,computed:Sl,beforeCreate:ur,created:ur,beforeMount:ur,mounted:ur,beforeUpdate:ur,updated:ur,beforeDestroy:ur,beforeUnmount:ur,destroyed:ur,unmounted:ur,activated:ur,deactivated:ur,errorCaptured:ur,serverPrefetch:ur,components:Sl,directives:Sl,watch:JI,provide:x_,inject:QI};function x_(e,t){return t?e?function(){return Ht(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function QI(e,t){return Sl(Wp(e),Wp(t))}function Wp(e){if(_e(e)){const t={};for(let r=0;r1)return r&&De(t)?t.call(n&&n.proxy):t}}function rO(e,t,r,n=!1){const i={},a={};Jc(a,th,1),e.propsDefaults=Object.create(null),bT(e,t,i,a);for(const o in e.propsOptions[0])o in i||(i[o]=void 0);r?e.props=n?i:Qm(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function nO(e,t,r,n){const{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=Qe(i),[l]=e.propsOptions;let u=!1;if((n||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[h,d]=wT(c,t,!0);Ht(o,h),d&&s.push(...d)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!a&&!l)return qe(e)&&n.set(e,as),as;if(_e(a))for(let f=0;f-1,d[1]=p<0||v-1||Ue(d,"default"))&&s.push(c)}}}const u=[o,s];return qe(e)&&n.set(e,u),u}function T_(e){return e[0]!=="$"}function M_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function A_(e,t){return M_(e)===M_(t)}function P_(e,t){return _e(t)?t.findIndex(r=>A_(r,e)):De(t)&&A_(t,e)?0:-1}const ST=e=>e[0]==="_"||e==="$stable",uy=e=>_e(e)?e.map(Hn):[Hn(e)],iO=(e,t,r)=>{if(t._n)return t;const n=q((...i)=>uy(t(...i)),r);return n._c=!1,n},xT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(ST(i))continue;const a=e[i];if(De(a))t[i]=iO(i,a,n);else if(a!=null){const o=uy(a);t[i]=()=>o}}},CT=(e,t)=>{const r=uy(t);e.slots.default=()=>r},aO=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Qe(t),Jc(t,"_",r)):xT(t,e.slots={})}else e.slots={},t&&CT(e,t);Jc(e.slots,th,1)},oO=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=St;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Ht(i,t),!r&&s===1&&delete i._):(a=!t.$stable,xT(t,i)),o=t}else t&&(CT(e,t),o={default:1});if(a)for(const s in i)!ST(s)&&o[s]==null&&delete i[s]};function Up(e,t,r,n,i=!1){if(_e(e)){e.forEach((h,d)=>Up(h,t&&(_e(t)?t[d]:t),r,n,i));return}if(Il(n)&&!i)return;const a=n.shapeFlag&4?nh(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,f=s.refs===St?s.refs={}:s.refs,c=s.setupState;if(u!=null&&u!==l&&(ze(u)?(f[u]=null,Ue(c,u)&&(c[u]=null)):Pt(u)&&(u.value=null)),De(l))ra(l,s,12,[o,f]);else{const h=ze(l),d=Pt(l),v=e.f;if(h||d){const p=()=>{if(v){const m=h?Ue(c,l)?c[l]:f[l]:l.value;i?_e(m)&&Um(m,a):_e(m)?m.includes(a)||m.push(a):h?(f[l]=[a],Ue(c,l)&&(c[l]=f[l])):(l.value=[a],e.k&&(f[e.k]=l.value))}else h?(f[l]=o,Ue(c,l)&&(c[l]=o)):d&&(l.value=o,e.k&&(f[e.k]=o))};i||v?p():(p.id=-1,Sr(p,r))}}}const Sr=II;function sO(e){return lO(e)}function lO(e,t){const r=DC();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:h,setScopeId:d=Ft,insertStaticContent:v}=e,p=(D,I,W,X=null,j=null,le=null,fe=void 0,ae=null,se=!!I.dynamicChildren)=>{if(D===I)return;D&&!Ya(D,I)&&(X=B(D),J(D,j,le,!0),D=null),I.patchFlag===-2&&(se=!1,I.dynamicChildren=null);const{type:ne,ref:de,shapeFlag:Me}=I;switch(ne){case Bs:m(D,I,W,X);break;case Mr:g(D,I,W,X);break;case qh:D==null&&y(I,W,X,fe);break;case ft:E(D,I,W,X,j,le,fe,ae,se);break;default:Me&1?x(D,I,W,X,j,le,fe,ae,se):Me&6?L(D,I,W,X,j,le,fe,ae,se):(Me&64||Me&128)&&ne.process(D,I,W,X,j,le,fe,ae,se,Q)}de!=null&&j&&Up(de,D&&D.ref,le,I||D,!I)},m=(D,I,W,X)=>{if(D==null)n(I.el=s(I.children),W,X);else{const j=I.el=D.el;I.children!==D.children&&u(j,I.children)}},g=(D,I,W,X)=>{D==null?n(I.el=l(I.children||""),W,X):I.el=D.el},y=(D,I,W,X)=>{[D.el,D.anchor]=v(D.children,I,W,X,D.el,D.anchor)},_=({el:D,anchor:I},W,X)=>{let j;for(;D&&D!==I;)j=h(D),n(D,W,X),D=j;n(I,W,X)},b=({el:D,anchor:I})=>{let W;for(;D&&D!==I;)W=h(D),i(D),D=W;i(I)},x=(D,I,W,X,j,le,fe,ae,se)=>{I.type==="svg"?fe="svg":I.type==="math"&&(fe="mathml"),D==null?w(I,W,X,j,le,fe,ae,se):M(D,I,j,le,fe,ae,se)},w=(D,I,W,X,j,le,fe,ae)=>{let se,ne;const{props:de,shapeFlag:Me,transition:Se,dirs:ke}=D;if(se=D.el=o(D.type,le,de&&de.is,de),Me&8?f(se,D.children):Me&16&&C(D.children,se,null,X,j,jh(D,le),fe,ae),ke&&ma(D,null,X,"created"),S(se,D,D.scopeId,fe,X),de){for(const rt in de)rt!=="value"&&!Sc(rt)&&a(se,rt,null,de[rt],le,D.children,X,j,Ie);"value"in de&&a(se,"value",null,de.value,le),(ne=de.onVnodeBeforeMount)&&kn(ne,X,D)}ke&&ma(D,null,X,"beforeMount");const Ve=uO(j,Se);Ve&&Se.beforeEnter(se),n(se,I,W),((ne=de&&de.onVnodeMounted)||Ve||ke)&&Sr(()=>{ne&&kn(ne,X,D),Ve&&Se.enter(se),ke&&ma(D,null,X,"mounted")},j)},S=(D,I,W,X,j)=>{if(W&&d(D,W),X)for(let le=0;le{for(let ne=se;ne{const ae=I.el=D.el;let{patchFlag:se,dynamicChildren:ne,dirs:de}=I;se|=D.patchFlag&16;const Me=D.props||St,Se=I.props||St;let ke;if(W&&ya(W,!1),(ke=Se.onVnodeBeforeUpdate)&&kn(ke,W,I,D),de&&ma(I,D,W,"beforeUpdate"),W&&ya(W,!0),ne?A(D.dynamicChildren,ne,ae,W,X,jh(I,j),le):fe||U(D,I,ae,null,W,X,jh(I,j),le,!1),se>0){if(se&16)P(ae,I,Me,Se,W,X,j);else if(se&2&&Me.class!==Se.class&&a(ae,"class",null,Se.class,j),se&4&&a(ae,"style",Me.style,Se.style,j),se&8){const Ve=I.dynamicProps;for(let rt=0;rt{ke&&kn(ke,W,I,D),de&&ma(I,D,W,"updated")},X)},A=(D,I,W,X,j,le,fe)=>{for(let ae=0;ae{if(W!==X){if(W!==St)for(const ae in W)!Sc(ae)&&!(ae in X)&&a(D,ae,W[ae],null,fe,I.children,j,le,Ie);for(const ae in X){if(Sc(ae))continue;const se=X[ae],ne=W[ae];se!==ne&&ae!=="value"&&a(D,ae,ne,se,fe,I.children,j,le,Ie)}"value"in X&&a(D,"value",W.value,X.value,fe)}},E=(D,I,W,X,j,le,fe,ae,se)=>{const ne=I.el=D?D.el:s(""),de=I.anchor=D?D.anchor:s("");let{patchFlag:Me,dynamicChildren:Se,slotScopeIds:ke}=I;ke&&(ae=ae?ae.concat(ke):ke),D==null?(n(ne,W,X),n(de,W,X),C(I.children||[],W,de,j,le,fe,ae,se)):Me>0&&Me&64&&Se&&D.dynamicChildren?(A(D.dynamicChildren,Se,W,j,le,fe,ae),(I.key!=null||j&&I===j.subTree)&&fy(D,I,!0)):U(D,I,W,de,j,le,fe,ae,se)},L=(D,I,W,X,j,le,fe,ae,se)=>{I.slotScopeIds=ae,D==null?I.shapeFlag&512?j.ctx.activate(I,W,X,fe,se):O(I,W,X,j,le,fe,se):N(D,I,se)},O=(D,I,W,X,j,le,fe)=>{const ae=D.component=_O(D,X,j);if(Qd(D)&&(ae.ctx.renderer=Q),bO(ae),ae.asyncDep){if(j&&j.registerDep(ae,H),!D.el){const se=ae.subTree=Z(Mr);g(null,se,I,W)}}else H(ae,D,I,W,j,le,fe)},N=(D,I,W)=>{const X=I.component=D.component;if(PI(D,I,W))if(X.asyncDep&&!X.asyncResolved){V(X,I,W);return}else X.next=I,SI(X.update),X.effect.dirty=!0,X.update();else I.el=D.el,X.vnode=I},H=(D,I,W,X,j,le,fe)=>{const ae=()=>{if(D.isMounted){let{next:de,bu:Me,u:Se,parent:ke,vnode:Ve}=D;{const We=TT(D);if(We){de&&(de.el=Ve.el,V(D,de,fe)),We.asyncDep.then(()=>{D.isUnmounted||ae()});return}}let rt=de,bt;ya(D,!1),de?(de.el=Ve.el,V(D,de,fe)):de=Ve,Me&&Cc(Me),(bt=de.props&&de.props.onVnodeBeforeUpdate)&&kn(bt,ke,de,Ve),ya(D,!0);const he=Gh(D),Pe=D.subTree;D.subTree=he,p(Pe,he,c(Pe.el),B(Pe),D,j,le),de.el=he.el,rt===null&&EI(D,he.el),Se&&Sr(Se,j),(bt=de.props&&de.props.onVnodeUpdated)&&Sr(()=>kn(bt,ke,de,Ve),j)}else{let de;const{el:Me,props:Se}=I,{bm:ke,m:Ve,parent:rt}=D,bt=Il(I);if(ya(D,!1),ke&&Cc(ke),!bt&&(de=Se&&Se.onVnodeBeforeMount)&&kn(de,rt,I),ya(D,!0),Me&&pe){const he=()=>{D.subTree=Gh(D),pe(Me,D.subTree,D,j,null)};bt?I.type.__asyncLoader().then(()=>!D.isUnmounted&&he()):he()}else{const he=D.subTree=Gh(D);p(null,he,W,X,D,j,le),I.el=he.el}if(Ve&&Sr(Ve,j),!bt&&(de=Se&&Se.onVnodeMounted)){const he=I;Sr(()=>kn(de,rt,he),j)}(I.shapeFlag&256||rt&&Il(rt.vnode)&&rt.vnode.shapeFlag&256)&&D.a&&Sr(D.a,j),D.isMounted=!0,I=W=X=null}},se=D.effect=new jm(ae,Ft,()=>ny(ne),D.scope),ne=D.update=()=>{se.dirty&&se.run()};ne.id=D.uid,ya(D,!0),ne()},V=(D,I,W)=>{I.component=D;const X=D.vnode.props;D.vnode=I,D.next=null,nO(D,I.props,X,W),oO(D,I.children,W),Co(),m_(D),To()},U=(D,I,W,X,j,le,fe,ae,se=!1)=>{const ne=D&&D.children,de=D?D.shapeFlag:0,Me=I.children,{patchFlag:Se,shapeFlag:ke}=I;if(Se>0){if(Se&128){z(ne,Me,W,X,j,le,fe,ae,se);return}else if(Se&256){F(ne,Me,W,X,j,le,fe,ae,se);return}}ke&8?(de&16&&Ie(ne,j,le),Me!==ne&&f(W,Me)):de&16?ke&16?z(ne,Me,W,X,j,le,fe,ae,se):Ie(ne,j,le,!0):(de&8&&f(W,""),ke&16&&C(Me,W,X,j,le,fe,ae,se))},F=(D,I,W,X,j,le,fe,ae,se)=>{D=D||as,I=I||as;const ne=D.length,de=I.length,Me=Math.min(ne,de);let Se;for(Se=0;Sede?Ie(D,j,le,!0,!1,Me):C(I,W,X,j,le,fe,ae,se,Me)},z=(D,I,W,X,j,le,fe,ae,se)=>{let ne=0;const de=I.length;let Me=D.length-1,Se=de-1;for(;ne<=Me&&ne<=Se;){const ke=D[ne],Ve=I[ne]=se?qi(I[ne]):Hn(I[ne]);if(Ya(ke,Ve))p(ke,Ve,W,null,j,le,fe,ae,se);else break;ne++}for(;ne<=Me&&ne<=Se;){const ke=D[Me],Ve=I[Se]=se?qi(I[Se]):Hn(I[Se]);if(Ya(ke,Ve))p(ke,Ve,W,null,j,le,fe,ae,se);else break;Me--,Se--}if(ne>Me){if(ne<=Se){const ke=Se+1,Ve=keSe)for(;ne<=Me;)J(D[ne],j,le,!0),ne++;else{const ke=ne,Ve=ne,rt=new Map;for(ne=Ve;ne<=Se;ne++){const gt=I[ne]=se?qi(I[ne]):Hn(I[ne]);gt.key!=null&&rt.set(gt.key,ne)}let bt,he=0;const Pe=Se-Ve+1;let We=!1,Ge=0;const et=new Array(Pe);for(ne=0;ne=Pe){J(gt,j,le,!0);continue}let Kt;if(gt.key!=null)Kt=rt.get(gt.key);else for(bt=Ve;bt<=Se;bt++)if(et[bt-Ve]===0&&Ya(gt,I[bt])){Kt=bt;break}Kt===void 0?J(gt,j,le,!0):(et[Kt-Ve]=ne+1,Kt>=Ge?Ge=Kt:We=!0,p(gt,I[Kt],W,null,j,le,fe,ae,se),he++)}const zt=We?fO(et):as;for(bt=zt.length-1,ne=Pe-1;ne>=0;ne--){const gt=Ve+ne,Kt=I[gt],Yr=gt+1{const{el:le,type:fe,transition:ae,children:se,shapeFlag:ne}=D;if(ne&6){ee(D.component.subTree,I,W,X);return}if(ne&128){D.suspense.move(I,W,X);return}if(ne&64){fe.move(D,I,W,Q);return}if(fe===ft){n(le,I,W);for(let Me=0;Meae.enter(le),j);else{const{leave:Me,delayLeave:Se,afterLeave:ke}=ae,Ve=()=>n(le,I,W),rt=()=>{Me(le,()=>{Ve(),ke&&ke()})};Se?Se(le,Ve,rt):rt()}else n(le,I,W)},J=(D,I,W,X=!1,j=!1)=>{const{type:le,props:fe,ref:ae,children:se,dynamicChildren:ne,shapeFlag:de,patchFlag:Me,dirs:Se}=D;if(ae!=null&&Up(ae,null,W,D,!0),de&256){I.ctx.deactivate(D);return}const ke=de&1&&Se,Ve=!Il(D);let rt;if(Ve&&(rt=fe&&fe.onVnodeBeforeUnmount)&&kn(rt,I,D),de&6)$e(D.component,W,X);else{if(de&128){D.suspense.unmount(W,X);return}ke&&ma(D,null,I,"beforeUnmount"),de&64?D.type.remove(D,I,W,j,Q,X):ne&&(le!==ft||Me>0&&Me&64)?Ie(ne,I,W,!1,!0):(le===ft&&Me&384||!j&&de&16)&&Ie(se,I,W),X&&me(D)}(Ve&&(rt=fe&&fe.onVnodeUnmounted)||ke)&&Sr(()=>{rt&&kn(rt,I,D),ke&&ma(D,null,I,"unmounted")},W)},me=D=>{const{type:I,el:W,anchor:X,transition:j}=D;if(I===ft){we(W,X);return}if(I===qh){b(D);return}const le=()=>{i(W),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(D.shapeFlag&1&&j&&!j.persisted){const{leave:fe,delayLeave:ae}=j,se=()=>fe(W,le);ae?ae(D.el,le,se):se()}else le()},we=(D,I)=>{let W;for(;D!==I;)W=h(D),i(D),D=W;i(I)},$e=(D,I,W)=>{const{bum:X,scope:j,update:le,subTree:fe,um:ae}=D;X&&Cc(X),j.stop(),le&&(le.active=!1,J(fe,D,I,W)),ae&&Sr(ae,I),Sr(()=>{D.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&D.asyncDep&&!D.asyncResolved&&D.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Ie=(D,I,W,X=!1,j=!1,le=0)=>{for(let fe=le;feD.shapeFlag&6?B(D.component.subTree):D.shapeFlag&128?D.suspense.next():h(D.anchor||D.el);let Y=!1;const K=(D,I,W)=>{D==null?I._vnode&&J(I._vnode,null,null,!0):p(I._vnode||null,D,I,null,null,null,W),Y||(Y=!0,m_(),aT(),Y=!1),I._vnode=D},Q={p,um:J,m:ee,r:me,mt:O,mc:C,pc:U,pbc:A,n:B,o:e};let oe,pe;return t&&([oe,pe]=t(Q)),{render:K,hydrate:oe,createApp:tO(K,oe)}}function jh({type:e,props:t},r){return r==="svg"&&e==="foreignObject"||r==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:r}function ya({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function uO(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function fy(e,t,r=!1){const n=e.children,i=t.children;if(_e(n)&&_e(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}function TT(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:TT(t)}const cO=e=>e.__isTeleport,Rl=e=>e&&(e.disabled||e.disabled===""),E_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,L_=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Yp=(e,t)=>{const r=e&&e.to;return ze(r)?t?t(r):null:r},dO={name:"Teleport",__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:f,pc:c,pbc:h,o:{insert:d,querySelector:v,createText:p,createComment:m}}=u,g=Rl(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");d(x,r,n),d(w,r,n);const S=t.target=Yp(t.props,v),C=t.targetAnchor=p("");S&&(d(C,S),o==="svg"||E_(S)?o="svg":(o==="mathml"||L_(S))&&(o="mathml"));const M=(A,P)=>{y&16&&f(_,A,P,i,a,o,s,l)};g?M(r,w):S&&M(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Rl(e.props),M=C?r:w,A=C?x:S;if(o==="svg"||E_(w)?o="svg":(o==="mathml"||L_(w))&&(o="mathml"),b?(h(e.dynamicChildren,b,M,i,a,o,s),fy(e,t,!0)):l||c(e,t,M,A,i,a,o,s,!1),g)C?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):wf(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const P=t.target=Yp(t.props,v);P&&wf(t,P,null,u,0)}else C&&wf(t,w,S,u,1)}AT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:f,target:c,props:h}=e;if(c&&a(f),o&&a(u),s&16){const d=o||!Rl(h);for(let v=0;v0?Sn||as:null,vO(),du>0&&Sn&&Sn.push(e),e}function ce(e,t,r,n,i,a){return PT(te(e,t,r,n,i,a,!0))}function ve(e,t,r,n,i){return PT(Z(e,t,r,n,i,!0))}function la(e){return e?e.__v_isVNode===!0:!1}function Ya(e,t){return e.type===t.type&&e.key===t.key}const th="__vInternal",ET=({key:e})=>e??null,Mc=({ref:e,ref_key:t,ref_for:r})=>(typeof e=="number"&&(e=""+e),e!=null?ze(e)||Pt(e)||De(e)?{i:Wt,r:e,k:t,f:!!r}:e:null);function te(e,t=null,r=null,n=0,i=null,a=e===ft?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ET(t),ref:t&&Mc(t),scopeId:lT,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Wt};return s?(cy(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=ze(r)?8:16),du>0&&!o&&Sn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&Sn.push(l),l}const Z=pO;function pO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===uT)&&(e=Mr),la(e)){const s=_i(e,t,!0);return r&&cy(s,r),du>0&&!a&&Sn&&(s.shapeFlag&6?Sn[Sn.indexOf(e)]=s:Sn.push(s)),s.patchFlag|=-2,s}if(CO(e)&&(e=e.__vccOpts),t){t=gO(t);let{class:s,style:l}=t;s&&!ze(s)&&(t.class=re(s)),qe(l)&&(KC(l)&&!_e(l)&&(l=Ht({},l)),t.style=ct(l))}const o=ze(e)?1:DI(e)?128:cO(e)?64:qe(e)?4:De(e)?2:0;return te(e,t,r,n,i,o,a,!0)}function gO(e){return e?KC(e)||th in e?Ht({},e):e:null}function _i(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ei(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&ET(s),ref:t&&t.ref?r&&i?_e(i)?i.concat(Mc(t)):[i,Mc(t)]:Mc(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ft?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_i(e.ssContent),ssFallback:e.ssFallback&&_i(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function pt(e=" ",t=0){return Z(Bs,null,e,t)}function Ae(e="",t=!1){return t?(G(),ve(Mr,null,e)):Z(Mr,null,e)}function Hn(e){return e==null||typeof e=="boolean"?Z(Mr):_e(e)?Z(ft,null,e.slice()):typeof e=="object"?qi(e):Z(Bs,null,String(e))}function qi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_i(e)}function cy(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(_e(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),cy(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(th in t)?t._ctx=Wt:i===3&&Wt&&(Wt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:Wt},r=32):(t=String(t),n&64?(r=16,t=[pt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ei(...e){const t={};for(let r=0;rQt||Wt;let ad,jp;{const e=DC(),t=(r,n)=>{let i;return(i=e[r])||(i=e[r]=[]),i.push(n),a=>{i.length>1?i.forEach(o=>o(a)):i[0](a)}};ad=t("__VUE_INSTANCE_SETTERS__",r=>Qt=r),jp=t("__VUE_SSR_SETTERS__",r=>rh=r)}const Yu=e=>{const t=Qt;return ad(e),e.scope.on(),()=>{e.scope.off(),ad(t)}},I_=()=>{Qt&&Qt.scope.off(),ad(null)};function LT(e){return e.vnode.shapeFlag&4}let rh=!1;function bO(e,t=!1){t&&jp(t);const{props:r,children:n}=e.vnode,i=LT(e);rO(e,r,i,t),aO(e,n);const a=i?wO(e,t):void 0;return t&&jp(!1),a}function wO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=XC(new Proxy(e.ctx,jI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?IT(e):null,a=Yu(e);Co();const o=ra(n,e,0,[e.props,i]);if(To(),a(),Qc(o)){if(o.then(I_,I_),t)return o.then(s=>{O_(e,s,t)}).catch(s=>{Xd(s,e,0)});e.asyncDep=o}else O_(e,o,t)}else DT(e,t)}function O_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:qe(t)&&(e.setupState=tT(t)),DT(e,r)}let R_;function DT(e,t,r){const n=e.type;if(!e.render){if(!t&&R_&&!n.render){const i=n.template||ly(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Ht(Ht({isCustomElement:a,delimiters:s},o),l);n.render=R_(i,u)}}e.render=n.render||Ft}{const i=Yu(e);Co();try{KI(e)}finally{To(),i()}}}function SO(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,r){return Lr(e,"get","$attrs"),t[r]}}))}function IT(e){const t=r=>{e.exposed=r||{}};return{get attrs(){return SO(e)},slots:e.slots,emit:e.emit,expose:t}}function nh(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(tT(XC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Ol)return Ol[r](e)},has(t,r){return r in t||r in Ol}}))}function xO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function CO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>QC(e,t,rh);function Te(e,t,r){const n=arguments.length;return n===2?qe(t)&&!_e(t)?la(t)?Z(e,null,[t]):Z(e,t):Z(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&la(r)&&(r=[r]),Z(e,t,r))}const TO="3.4.15",MO=Ft;/** * @vue/runtime-dom v3.4.15 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const AO="http://www.w3.org/2000/svg",PO="http://www.w3.org/1998/Math/MathML",Ki=typeof document<"u"?document:null,k_=Ki&&Ki.createElement("template"),EO={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t==="svg"?Ki.createElementNS(AO,e):t==="mathml"?Ki.createElementNS(PO,e):Ki.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Ki.createTextNode(e),createComment:e=>Ki.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ki.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{k_.innerHTML=n==="svg"?`${e}`:n==="mathml"?`${e}`:e;const s=k_.content;if(n==="svg"||n==="mathml"){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}},Ii="transition",Xs="animation",vs=Symbol("_vtc"),ti=(e,{slots:t})=>Te(BI,RT(e),t);ti.displayName="Transition";const OT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},LO=ti.props=$t({},hT,OT),_a=(e,t=[])=>{_e(e)?e.forEach(r=>r(...t)):e&&e(...t)},N_=e=>e?_e(e)?e.some(t=>t.length>1):e.length>1:!1;function RT(e){const t={};for(const E in e)E in OT||(t[E]=e[E]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:f=s,leaveFromClass:c=`${r}-leave-from`,leaveActiveClass:h=`${r}-leave-active`,leaveToClass:d=`${r}-leave-to`}=e,v=DO(i),p=v&&v[0],m=v&&v[1],{onBeforeEnter:g,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=g,onAppear:S=y,onAppearCancelled:C=_}=t,M=(E,L,O)=>{zi(E,L?f:s),zi(E,L?u:o),O&&O()},A=(E,L)=>{E._isLeaving=!1,zi(E,c),zi(E,d),zi(E,h),L&&L()},P=E=>(L,O)=>{const N=E?S:y,H=()=>M(L,E,O);_a(N,[L,H]),B_(()=>{zi(L,E?l:a),ci(L,E?f:s),N_(N)||F_(L,n,p,H)})};return $t(t,{onBeforeEnter(E){_a(g,[E]),ci(E,a),ci(E,o)},onBeforeAppear(E){_a(w,[E]),ci(E,l),ci(E,u)},onEnter:P(!1),onAppear:P(!0),onLeave(E,L){E._isLeaving=!0;const O=()=>A(E,L);ci(E,c),NT(),ci(E,h),B_(()=>{E._isLeaving&&(zi(E,c),ci(E,d),N_(b)||F_(E,n,m,O))}),_a(b,[E,O])},onEnterCancelled(E){M(E,!1),_a(_,[E])},onAppearCancelled(E){M(E,!0),_a(C,[E])},onLeaveCancelled(E){A(E),_a(x,[E])}})}function DO(e){if(e==null)return null;if(qe(e))return[Kh(e.enter),Kh(e.leave)];{const t=Kh(e);return[t,t]}}function Kh(e){return HD(e)}function ci(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e[vs]||(e[vs]=new Set)).add(t)}function zi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const r=e[vs];r&&(r.delete(t),r.size||(e[vs]=void 0))}function B_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let IO=0;function F_(e,t,r,n){const i=e._endId=++IO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=kT(e,t);if(!o)return n();const u=o+"end";let f=0;const c=()=>{e.removeEventListener(u,h),a()},h=d=>{d.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[v]||"").split(", "),i=n(`${Ii}Delay`),a=n(`${Ii}Duration`),o=$_(i,a),s=n(`${Xs}Delay`),l=n(`${Xs}Duration`),u=$_(s,l);let f=null,c=0,h=0;t===Ii?o>0&&(f=Ii,c=o,h=a.length):t===Xs?u>0&&(f=Xs,c=u,h=l.length):(c=Math.max(o,u),f=c>0?o>u?Ii:Xs:null,h=f?f===Ii?a.length:l.length:0);const d=f===Ii&&/\b(transform|all)(,|$)/.test(n(`${Ii}Property`).toString());return{type:f,timeout:c,propCount:h,hasTransform:d}}function $_(e,t){for(;e.lengthH_(r)+H_(e[n])))}function H_(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function NT(){return document.body.offsetHeight}function OO(e,t,r){const n=e[vs];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}const dy=Symbol("_vod"),Kn={beforeMount(e,{value:t},{transition:r}){e[dy]=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Zs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),Zs(e,!0),n.enter(e)):n.leave(e,()=>{Zs(e,!1)}):Zs(e,t))},beforeUnmount(e,{value:t}){Zs(e,t)}};function Zs(e,t){e.style.display=t?e[dy]:"none"}const RO=Symbol("");function kO(e,t,r){const n=e.style,i=n.display,a=ze(r);if(r&&!a){if(t&&!ze(t))for(const o in t)r[o]==null&&qp(n,o,"");for(const o in r)qp(n,o,r[o])}else if(a){if(t!==r){const o=n[RO];o&&(r+=";"+o),n.cssText=r}}else t&&e.removeAttribute("style");dy in e&&(n.display=i)}const z_=/\s*!important$/;function qp(e,t,r){if(_e(r))r.forEach(n=>qp(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=NO(e,t);z_.test(r)?e.setProperty(xo(n),r.replace(z_,""),"important"):e[n]=r}}const V_=["Webkit","Moz","ms"],Xh={};function NO(e,t){const r=Xh[t];if(r)return r;let n=Pn(t);if(n!=="filter"&&n in e)return Xh[t]=n;n=Yd(n);for(let i=0;iZh||(VO.then(()=>Zh=0),Zh=Date.now());function GO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;sn(UO(n,r.value),t,5,[n])};return r.value=e,r.attached=WO(),r}function UO(e,t){if(_e(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const Y_=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,YO=(e,t,r,n,i,a,o,s,l)=>{const u=i==="svg";t==="class"?OO(e,n,u):t==="style"?kO(e,r,n):Wd(t)?Gm(t)||HO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jO(e,t,n,u))?FO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),BO(e,t,n,u))};function jO(e,t,r,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Y_(t)&&De(r));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Y_(t)&&ze(r)?!1:t in e}const FT=new WeakMap,$T=new WeakMap,od=Symbol("_moveCb"),j_=Symbol("_enterCb"),HT={name:"TransitionGroup",props:$t({},LO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=it(),n=dT();let i,a;return Uu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!JO(i[0].el,r.vnode.el,o))return;i.forEach(XO),i.forEach(ZO);const s=i.filter(QO);NT(),s.forEach(l=>{const u=l.el,f=u.style;ci(u,o),f.transform=f.webkitTransform=f.transitionDuration="";const c=u[od]=h=>{h&&h.target!==u||(!h||/transform$/.test(h.propertyName))&&(u.removeEventListener("transitionend",c),u[od]=null,zi(u,o))};u.addEventListener("transitionend",c)})}),()=>{const o=Qe(e),s=RT(o);let l=o.tag||ft;i=a,a=t.default?sy(t.default()):[];for(let u=0;udelete e.mode;HT.props;const KO=HT;function XO(e){const t=e.el;t[od]&&t[od](),t[j_]&&t[j_]()}function ZO(e){$T.set(e,e.el.getBoundingClientRect())}function QO(e){const t=FT.get(e),r=$T.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function JO(e,t,r){const n=e.cloneNode(),i=e[vs];i&&i.forEach(s=>{s.split(/\s+/).forEach(l=>l&&n.classList.remove(l))}),r.split(/\s+/).forEach(s=>s&&n.classList.add(s)),n.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(n);const{hasTransform:o}=kT(n);return a.removeChild(n),o}const q_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return _e(t)?r=>Cc(t,r):t},Qh=Symbol("_assign"),sd={deep:!0,created(e,t,r){e[Qh]=q_(r),BT(e,"change",()=>{const n=e._modelValue,i=eR(e),a=e.checked,o=e[Qh];if(_e(n)){const s=OC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(Gd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(zT(e,a))})},mounted:K_,beforeUpdate(e,t,r){e[Qh]=q_(r),K_(e,t,r)}};function K_(e,{value:t,oldValue:r},n){e._modelValue=t,_e(t)?e.checked=OC(t,n.props.value)>-1:Gd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=jd(t,zT(e,!0)))}function eR(e){return"_value"in e?e._value:e.value}function zT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const tR=["ctrl","shift","alt","meta"],rR={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>tR.some(r=>e[`${r}Key`]&&!t.includes(r))},ua=(e,t)=>{const r=e._withMods||(e._withMods={}),n=t.join(".");return r[n]||(r[n]=(i,...a)=>{for(let o=0;o{const r=e._withKeys||(e._withKeys={}),n=t.join(".");return r[n]||(r[n]=i=>{if(!("key"in i))return;const a=xo(i.key);if(t.some(o=>o===a||nR[o]===a))return e(i)})},aR=$t({patchProp:YO},EO);let X_;function VT(){return X_||(X_=sO(aR))}const ld=(...e)=>{VT().render(...e)},oR=(...e)=>{const t=VT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=lR(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,sR(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function sR(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function lR(e){return ze(e)?document.querySelector(e):e}const Ac=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},di=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var Z_;const At=typeof window<"u",uR=e=>typeof e=="function",fR=e=>typeof e=="string",Kp=()=>{};At&&((Z_=window==null?void 0:window.navigator)!=null&&Z_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function po(e){return typeof e=="function"?e():T(e)}function WT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const GT=e=>e();function cR(e,t={}){let r,n,i=Kp;const a=s=>{clearTimeout(s),i(),i=Kp};return s=>{const l=po(e),u=po(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((f,c)=>{i=t.rejectOnCancel?c:f,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,f(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,f(s())},l)})}}function dR(e=GT){const t=$(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:Gu(t),pause:r,resume:n,eventFilter:i}}function hR(e){return e}function ju(e){return kC()?(NC(e),!0):!1}function vR(e,t=200,r={}){return WT(cR(t,r),e)}function pR(e,t=200,r={}){const n=$(e.value),i=vR(()=>{n.value=e.value},t,r);return we(e,()=>i()),n}function gR(e){return typeof e=="function"?k(e):$(e)}function UT(e,t=!0){it()?_t(e):t?e():kt(e)}function hu(e,t,r={}){const{immediate:n=!0}=r,i=$(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},po(t))}return n&&(i.value=!0,At&&l()),ju(s),{isPending:Gu(i),start:l,stop:s}}function mR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Pt(e),a=$(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=po(r);return a.value=a.value===l?po(n):l,a.value}}return i?o:[a,o]}var Q_=Object.getOwnPropertySymbols,yR=Object.prototype.hasOwnProperty,_R=Object.prototype.propertyIsEnumerable,bR=(e,t)=>{var r={};for(var n in e)yR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Q_)for(var n of Q_(e))t.indexOf(n)<0&&_R.call(e,n)&&(r[n]=e[n]);return r};function wR(e,t,r={}){const n=r,{eventFilter:i=GT}=n,a=bR(n,["eventFilter"]);return we(e,WT(i,t),a)}var SR=Object.defineProperty,xR=Object.defineProperties,CR=Object.getOwnPropertyDescriptors,ud=Object.getOwnPropertySymbols,YT=Object.prototype.hasOwnProperty,jT=Object.prototype.propertyIsEnumerable,J_=(e,t,r)=>t in e?SR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,TR=(e,t)=>{for(var r in t||(t={}))YT.call(t,r)&&J_(e,r,t[r]);if(ud)for(var r of ud(t))jT.call(t,r)&&J_(e,r,t[r]);return e},MR=(e,t)=>xR(e,CR(t)),AR=(e,t)=>{var r={};for(var n in e)YT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ud)for(var n of ud(e))t.indexOf(n)<0&&jT.call(e,n)&&(r[n]=e[n]);return r};function PR(e,t,r={}){const n=r,{eventFilter:i}=n,a=AR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=dR(i);return{stop:wR(e,t,MR(TR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Zi(e){var t;const r=po(e);return(t=r==null?void 0:r.$el)!=null?t:r}const fa=At?window:void 0;function xn(...e){let t,r,n,i;if(fR(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=fa):[t,r,n,i]=e,!t)return Kp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(f=>f()),a.length=0},s=(f,c,h)=>(f.addEventListener(c,h,i),()=>f.removeEventListener(c,h,i)),l=we(()=>Zi(t),f=>{o(),f&&a.push(...r.flatMap(c=>n.map(h=>s(f,c,h))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return ju(u),u}function ER(e,t,r={}){const{window:n=fa,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=d=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===d.target||d.composedPath().includes(p));{const p=Zi(v);return p&&(d.target===p||d.composedPath().includes(p))}}),f=d=>{n.clearTimeout(l);const v=Zi(e);if(!(!v||v===d.target||d.composedPath().includes(v))){if(d.detail===0&&(s=!u(d)),!s){s=!0;return}t(d)}},c=[xn(n,"click",f,{passive:!0,capture:a}),xn(n,"pointerdown",d=>{const v=Zi(e);v&&(s=!d.composedPath().includes(v)&&!u(d))},{passive:!0}),xn(n,"pointerup",d=>{if(d.button===0){const v=d.composedPath();d.composedPath=()=>v,l=n.setTimeout(()=>f(d),50)}},{passive:!0}),o&&xn(n,"blur",d=>{var v;const p=Zi(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(d)})].filter(Boolean);return()=>c.forEach(d=>d())}function qT(e,t=!1){const r=$(),n=()=>r.value=!!e();return n(),UT(n,t),r}function LR(e,t={}){const{window:r=fa}=t,n=qT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=$(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(gR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return na(s),ju(()=>o()),a}const Xp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zp="__vueuse_ssr_handlers__";Xp[Zp]=Xp[Zp]||{};const DR=Xp[Zp];function KT(e,t){return DR[e]||t}function IR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var OR=Object.defineProperty,eb=Object.getOwnPropertySymbols,RR=Object.prototype.hasOwnProperty,kR=Object.prototype.propertyIsEnumerable,tb=(e,t,r)=>t in e?OR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rb=(e,t)=>{for(var r in t||(t={}))RR.call(t,r)&&tb(e,r,t[r]);if(eb)for(var r of eb(t))kR.call(t,r)&&tb(e,r,t[r]);return e};const NR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function BR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:f,window:c=fa,eventFilter:h,onError:d=S=>{console.error(S)}}=n,v=(f?ty:$)(t);if(!r)try{r=KT("getDefaultStorage",()=>{var S;return(S=fa)==null?void 0:S.localStorage})()}catch(S){d(S)}if(!r)return v;const p=po(t),m=IR(p),g=(i=n.serializer)!=null?i:NR[m],{pause:y,resume:_}=PR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:h});return c&&s&&xn(c,"storage",w),w(),v;function b(S){try{if(S==null)r.removeItem(e);else{const C=g.write(S),M=r.getItem(e);M!==C&&(r.setItem(e,C),c&&(c==null||c.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){d(C)}}function x(S){const C=S?S.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,g.write(p)),p;if(!S&&u){const M=g.read(C);return uR(u)?u(M,p):m==="object"&&!Array.isArray(M)?rb(rb({},p),M):M}else return typeof C!="string"?C:g.read(C)}function w(S){if(!(S&&S.storageArea!==r)){if(S&&S.key==null){v.value=p;return}if(!(S&&S.key!==e)){y();try{v.value=x(S)}catch(C){d(C)}finally{S?kt(_):_()}}}}}function XT(e){return LR("(prefers-color-scheme: dark)",e)}var FR=Object.defineProperty,nb=Object.getOwnPropertySymbols,$R=Object.prototype.hasOwnProperty,HR=Object.prototype.propertyIsEnumerable,ib=(e,t,r)=>t in e?FR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,zR=(e,t)=>{for(var r in t||(t={}))$R.call(t,r)&&ib(e,r,t[r]);if(nb)for(var r of nb(t))HR.call(t,r)&&ib(e,r,t[r]);return e};function VR(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=fa,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,f=zR({auto:"",light:"light",dark:"dark"},e.modes||{}),c=XT({window:i}),h=k(()=>c.value?"dark":"light"),d=l||(o==null?$(n):BR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return d.value==="auto"&&!u?h.value:d.value},set(y){d.value=y}}),p=KT("updateHTMLAttrs",(y,_,b)=>{const x=i==null?void 0:i.document.querySelector(y);if(x)if(_==="class"){const w=b.split(/\s/g);Object.values(f).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{w.includes(S)?x.classList.add(S):x.classList.remove(S)})}else x.setAttribute(_,b)});function m(y){var _;const b=y==="auto"?h.value:y;p(t,r,(_=f[b])!=null?_:b)}function g(y){e.onChanged?e.onChanged(y,m):m(y)}return we(v,g,{flush:"post",immediate:!0}),u&&we(h,()=>g(v.value),{flush:"post"}),UT(()=>g(v.value)),v}var WR=Object.defineProperty,GR=Object.defineProperties,UR=Object.getOwnPropertyDescriptors,ab=Object.getOwnPropertySymbols,YR=Object.prototype.hasOwnProperty,jR=Object.prototype.propertyIsEnumerable,ob=(e,t,r)=>t in e?WR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qR=(e,t)=>{for(var r in t||(t={}))YR.call(t,r)&&ob(e,r,t[r]);if(ab)for(var r of ab(t))jR.call(t,r)&&ob(e,r,t[r]);return e},KR=(e,t)=>GR(e,UR(t));function XR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=fa}=e,i=VR(KR(qR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=XT({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var sb=Object.getOwnPropertySymbols,ZR=Object.prototype.hasOwnProperty,QR=Object.prototype.propertyIsEnumerable,JR=(e,t)=>{var r={};for(var n in e)ZR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&sb)for(var n of sb(e))t.indexOf(n)<0&&QR.call(e,n)&&(r[n]=e[n]);return r};function ps(e,t,r={}){const n=r,{window:i=fa}=n,a=JR(n,["window"]);let o;const s=qT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=we(()=>Zi(e),c=>{l(),s.value&&i&&c&&(o=new ResizeObserver(t),o.observe(c,a))},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return ju(f),{isSupported:s,stop:f}}var lb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(lb||(lb={}));var ek=Object.defineProperty,ub=Object.getOwnPropertySymbols,tk=Object.prototype.hasOwnProperty,rk=Object.prototype.propertyIsEnumerable,fb=(e,t,r)=>t in e?ek(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,nk=(e,t)=>{for(var r in t||(t={}))tk.call(t,r)&&fb(e,r,t[r]);if(ub)for(var r of ub(t))rk.call(t,r)&&fb(e,r,t[r]);return e};const ik={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};nk({linear:hR},ik);var ZT=typeof global=="object"&&global&&global.Object===Object&&global,ak=typeof self=="object"&&self&&self.Object===Object&&self,Dn=ZT||ak||Function("return this")(),fn=Dn.Symbol,QT=Object.prototype,ok=QT.hasOwnProperty,sk=QT.toString,Qs=fn?fn.toStringTag:void 0;function lk(e){var t=ok.call(e,Qs),r=e[Qs];try{e[Qs]=void 0;var n=!0}catch{}var i=sk.call(e);return n&&(t?e[Qs]=r:delete e[Qs]),i}var uk=Object.prototype,fk=uk.toString;function ck(e){return fk.call(e)}var dk="[object Null]",hk="[object Undefined]",cb=fn?fn.toStringTag:void 0;function Mo(e){return e==null?e===void 0?hk:dk:cb&&cb in Object(e)?lk(e):ck(e)}function Xn(e){return e!=null&&typeof e=="object"}var vk="[object Symbol]";function ih(e){return typeof e=="symbol"||Xn(e)&&Mo(e)==vk}function JT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=Vk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Yk(e){return function(){return e}}var fd=function(){try{var e=Po(Object,"defineProperty");return e({},"",{}),e}catch{}}(),jk=fd?function(e,t){return fd(e,"toString",{configurable:!0,enumerable:!1,value:Yk(t),writable:!0})}:hy;const qk=jk;var rM=Uk(qk);function Kk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=tN}function Ns(e){return e!=null&&my(e.length)&&!vy(e)}function rN(e,t,r){if(!Dr(r))return!1;var n=typeof t;return(n=="number"?Ns(r)&&ah(t,r.length):n=="string"&&t in r)?qu(r[t],e):!1}function nN(e){return eN(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&rN(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function hB(e,t){var r=this.__data__,n=oh(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Pi(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?Ty(s,t-1,r,n,i):Cy(i,s):n||(i[i.length]=s)}return i}function EB(e){var t=e==null?0:e.length;return t?Ty(e,1):[]}function LB(e){return rM(nM(e,void 0,EB),e+"")}var DB=lM(Object.getPrototypeOf,Object);const My=DB;var IB="[object Object]",OB=Function.prototype,RB=Object.prototype,uM=OB.toString,kB=RB.hasOwnProperty,NB=uM.call(Object);function BB(e){if(!Xn(e)||Mo(e)!=IB)return!1;var t=My(e);if(t===null)return!0;var r=kB.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&uM.call(r)==NB}function Jp(){if(!arguments.length)return[];var e=arguments[0];return gr(e)?e:[e]}function FB(){this.__data__=new Pi,this.size=0}function $B(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function HB(e){return this.__data__.get(e)}function zB(e){return this.__data__.has(e)}var VB=200;function WB(e,t){var r=this.__data__;if(r instanceof Pi){var n=r.__data__;if(!mu||n.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,h=!0,d=r&y$?new dd:void 0;for(a.set(e,t),a.set(t,e);++c=t||S<0||c&&C>=a}function g(){var w=rv();if(m(w))return y(w);s=setTimeout(g,p(w))}function y(w){return s=void 0,h&&n?d(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(rv())}function x(){var w=rv(),S=m(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(c)return clearTimeout(s),s=setTimeout(g,t),d(l)}return s===void 0&&(s=setTimeout(g,t)),o}return x.cancel=_,x.flush=b,x}function ig(e,t,r){(r!==void 0&&!qu(e[t],r)||r===void 0&&!(t in e))&&py(e,t,r)}function u3(e){return Xn(e)&&Ns(e)}function ag(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function f3(e){return Ku(e,Zu(e))}function c3(e,t,r,n,i,a,o){var s=ag(e,r),l=ag(t,r),u=o.get(l);if(u){ig(e,r,u);return}var f=a?a(s,l,r+"",e,t,o):void 0,c=f===void 0;if(c){var h=gr(l),d=!h&&pu(l),v=!h&&!d&&by(l);f=l,h||d||v?gr(s)?f=s:u3(s)?f=tM(s):d?(c=!1,f=cM(l,!0)):v?(c=!1,f=pM(l,!0)):f=[]:BB(l)||vu(l)?(f=s,vu(s)?f=f3(s):(!Dr(s)||vy(s))&&(f=gM(l))):c=!1}c&&(o.set(l,f),i(f,l,n,a,o),o.delete(l)),ig(e,r,f)}function TM(e,t,r,n,i){e!==t&&CM(t,function(a,o){if(i||(i=new An),Dr(a))c3(e,t,o,r,TM,n,i);else{var s=n?n(ag(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),ig(e,o,s)}},Zu)}function d3(e,t){var r=-1,n=Ns(e)?Array(e.length):[];return a3(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function h3(e,t){var r=gr(e)?JT:d3;return r(e,t3(t))}function v3(e,t){return Ty(h3(e,t),1)}function og(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,zr=e=>typeof e=="boolean",Rt=e=>typeof e=="number",mo=e=>typeof Element>"u"?!1:e instanceof Element,S3=e=>ze(e)?!Number.isNaN(Number(e)):!1,Vb=e=>Object.keys(e),Ec=(e,t,r)=>({get value(){return yu(e,t,r)},set value(n){w3(e,t,n)}});class x3 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function bi(e,t){throw new x3(`[${e}] ${t}`)}const PM=(e="")=>e.split(" ").filter(t=>!!t.trim()),oo=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Za=(e,t)=>{!e||!t.trim()||e.classList.add(...PM(t))},so=(e,t)=>{!e||!t.trim()||e.classList.remove(...PM(t))},C3=(e,t)=>{var r;if(!At||!e||!t)return"";let n=Pn(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function Zn(e,t="px"){if(!e)return"";if(Rt(e)||S3(e))return`${e}${t}`;if(ze(e))return e}let xf;const T3=e=>{var t;if(!At)return 0;if(xf!==void 0)return xf;const r=document.createElement("div");r.className=`${e}-scrollbar__wrap`,r.style.visibility="hidden",r.style.width="100px",r.style.position="absolute",r.style.top="-9999px",document.body.appendChild(r);const n=r.offsetWidth;r.style.overflow="scroll";const i=document.createElement("div");i.style.width="100%",r.appendChild(i);const a=i.offsetWidth;return(t=r.parentNode)==null||t.removeChild(r),xf=n-a,xf};/*! Element Plus Icons Vue v2.3.1 */var M3=ie({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),EM=M3,A3=ie({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),Ey=A3,P3=ie({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),E3=P3,L3=ie({name:"Back",__name:"back",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),ee("path",{fill:"currentColor",d:"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z"})]))}}),D3=L3,I3=ie({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),LM=I3,O3=ie({name:"Close",__name:"close",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),vd=O3,R3=ie({name:"InfoFilled",__name:"info-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),DM=R3,k3=ie({name:"Loading",__name:"loading",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),Ly=k3,N3=ie({name:"More",__name:"more",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}}),B3=N3,F3=ie({name:"QuestionFilled",__name:"question-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z"})]))}}),$3=F3,H3=ie({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),IM=H3,z3=ie({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ee("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),OM=z3;const RM="__epPropKey",Be=e=>e,V3=e=>qe(e)&&!!e[RM],fh=(e,t)=>{if(!qe(e)||V3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let f=!1,c=[];if(r&&(c=Array.from(r),Ue(e,"default")&&c.push(i),f||(f=c.includes(u))),o&&(f||(f=o(u))),!f&&c.length>0){const h=[...new Set(c)].map(d=>JSON.stringify(d)).join(", ");MO(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${h}], got value ${JSON.stringify(u)}.`)}return f}:void 0,[RM]:!0};return Ue(e,"default")&&(l.default=i),l},Je=e=>og(Object.entries(e).map(([t,r])=>[t,fh(r,t)])),vr=Be([String,Object,Function]),W3={Close:vd},G3={Close:vd,SuccessFilled:IM,InfoFilled:DM,WarningFilled:OM,CircleCloseFilled:LM},Wb={success:IM,warning:OM,error:LM,info:DM},Yt=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},U3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),pa=e=>(e.install=Bt,e),Y3=(...e)=>t=>{e.forEach(r=>{De(r)?r(t):r.value=t})},hr={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},wi="update:modelValue",sg="change",lg="input",Bs=["","default","small","large"],j3=e=>["",...Bs].includes(e);var Lc=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(Lc||{});const Dc=e=>{const t=_e(e)?e:[e],r=[];return t.forEach(n=>{var i;_e(n)?r.push(...Dc(n)):la(n)&&_e(n.children)?r.push(...Dc(n.children)):(r.push(n),la(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Dc(n.component.subTree)))}),r},q3=e=>At?window.requestAnimationFrame(e):setTimeout(e,16),ja=e=>e,bu=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{we(()=>T(o),s=>{},{immediate:!0})},K3=(e,t,r)=>{let n={offsetX:0,offsetY:0};const i=s=>{const l=s.clientX,u=s.clientY,{offsetX:f,offsetY:c}=n,h=e.value.getBoundingClientRect(),d=h.left,v=h.top,p=h.width,m=h.height,g=document.documentElement.clientWidth,y=document.documentElement.clientHeight,_=-d+f,b=-v+c,x=g-d-p+f,w=y-v-m+c,S=M=>{const A=Math.min(Math.max(f+M.clientX-l,_),x),P=Math.min(Math.max(c+M.clientY-u,b),w);n={offsetX:A,offsetY:P},e.value&&(e.value.style.transform=`translate(${Zn(A)}, ${Zn(P)})`)},C=()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C)};document.addEventListener("mousemove",S),document.addEventListener("mouseup",C)},a=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",i)},o=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",i)};_t(()=>{na(()=>{r.value?a():o()})}),tr(()=>{o()})};var X3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const Z3=e=>(t,r)=>Q3(t,r,T(e)),Q3=(e,t,r)=>yu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),J3=e=>{const t=k(()=>T(e).name),r=Pt(e)?e:$(e);return{lang:t,locale:r,t:Z3(e)}},kM=Symbol("localeContextKey"),Fs=e=>{const t=e||Le(kM,$());return J3(k(()=>t.value||X3))},Bl="el",e5="is-",ba=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},NM=Symbol("namespaceContextKey"),Dy=e=>{const t=e||(it()?Le(NM,$(Bl)):$(Bl));return k(()=>T(t)||Bl)},Oe=(e,t)=>{const r=Dy(t);return{namespace:r,b:(p="")=>ba(r.value,e,p,"",""),e:p=>p?ba(r.value,e,"",p,""):"",m:p=>p?ba(r.value,e,"","",p):"",be:(p,m)=>p&&m?ba(r.value,e,p,m,""):"",em:(p,m)=>p&&m?ba(r.value,e,"",p,m):"",bm:(p,m)=>p&&m?ba(r.value,e,p,"",m):"",bem:(p,m,g)=>p&&m&&g?ba(r.value,e,p,m,g):"",is:(p,...m)=>{const g=m.length>=1?m[0]:!0;return p&&g?`${e5}${p}`:""},cssVar:p=>{const m={};for(const g in p)p[g]&&(m[`--${r.value}-${g}`]=p[g]);return m},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const m={};for(const g in p)p[g]&&(m[`--${r.value}-${e}-${g}`]=p[g]);return m},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},t5=(e,t={})=>{Pt(e)||bi("[useLockscreen]","You need to pass a ref param to this function");const r=t.ns||Oe("popup"),n=QC(()=>r.bm("parent","hidden"));if(!At||oo(document.body,n.value))return;let i=0,a=!1,o="0";const s=()=>{setTimeout(()=>{so(document==null?void 0:document.body,n.value),a&&document&&(document.body.style.width=o)},200)};we(e,l=>{if(!l){s();return}a=!oo(document.body,n.value),a&&(o=document.body.style.width),i=T3(r.namespace.value);const u=document.documentElement.clientHeight0&&(u||f==="scroll")&&a&&(document.body.style.width=`calc(100% - ${i}px)`),Za(document.body,n.value)}),NC(()=>s())},r5=fh({type:Be(Boolean),default:null}),n5=fh({type:Be(Function)}),BM=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:r5,[r]:n5};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:f,onHide:c})=>{const h=it(),{emit:d}=h,v=h.props,p=k(()=>De(v[r])),m=k(()=>v[e]===null),g=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),De(f)&&f(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),De(c)&&c(S))},_=S=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&At;C&&d(t,!0),(m.value||!C)&&g(S)},b=S=>{if(v.disabled===!0||!At)return;const C=p.value&&At;C&&d(t,!1),(m.value||!C)&&y(S)},x=S=>{zr(S)&&(v.disabled&&S?p.value&&d(t,!1):o.value!==S&&(S?g():y()))},w=()=>{o.value?b():_()};return we(()=>v[e],x),l&&h.appContext.config.globalProperties.$route!==void 0&&we(()=>({...h.proxy.$route}),()=>{l.value&&o.value&&b()}),_t(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}};BM("modelValue");const FM=e=>{const t=it();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var Ar="top",cn="bottom",dn="right",Pr="left",Iy="auto",Ju=[Ar,cn,dn,Pr],_s="start",wu="end",i5="clippingParents",$M="viewport",Js="popper",a5="reference",Gb=Ju.reduce(function(e,t){return e.concat([t+"-"+_s,t+"-"+wu])},[]),Oy=[].concat(Ju,[Iy]).reduce(function(e,t){return e.concat([t,t+"-"+_s,t+"-"+wu])},[]),o5="beforeRead",s5="read",l5="afterRead",u5="beforeMain",f5="main",c5="afterMain",d5="beforeWrite",h5="write",v5="afterWrite",p5=[o5,s5,l5,u5,f5,c5,d5,h5,v5];function Qn(e){return e?(e.nodeName||"").toLowerCase():null}function In(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bs(e){var t=In(e).Element;return e instanceof t||e instanceof Element}function ln(e){var t=In(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Ry(e){if(typeof ShadowRoot>"u")return!1;var t=In(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function g5(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!ln(a)||!Qn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function m5(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!ln(i)||!Qn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var HM={name:"applyStyles",enabled:!0,phase:"write",fn:g5,effect:m5,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var lo=Math.max,pd=Math.min,ws=Math.round;function Ss(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(ln(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=ws(r.width)/o||1),a>0&&(i=ws(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function ky(e){var t=Ss(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function zM(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Ry(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Si(e){return In(e).getComputedStyle(e)}function y5(e){return["table","td","th"].indexOf(Qn(e))>=0}function ga(e){return((bs(e)?e.ownerDocument:e.document)||window.document).documentElement}function ch(e){return Qn(e)==="html"?e:e.assignedSlot||e.parentNode||(Ry(e)?e.host:null)||ga(e)}function Ub(e){return!ln(e)||Si(e).position==="fixed"?null:e.offsetParent}function _5(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&ln(e)){var n=Si(e);if(n.position==="fixed")return null}var i=ch(e);for(Ry(i)&&(i=i.host);ln(i)&&["html","body"].indexOf(Qn(i))<0;){var a=Si(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function ef(e){for(var t=In(e),r=Ub(e);r&&y5(r)&&Si(r).position==="static";)r=Ub(r);return r&&(Qn(r)==="html"||Qn(r)==="body"&&Si(r).position==="static")?t:r||_5(e)||t}function Ny(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Fl(e,t,r){return lo(e,pd(t,r))}function b5(e,t,r){var n=Fl(e,t,r);return n>r?r:n}function VM(){return{top:0,right:0,bottom:0,left:0}}function WM(e){return Object.assign({},VM(),e)}function GM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var w5=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,WM(typeof e!="number"?e:GM(e,Ju))};function S5(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=Ny(s),u=[Pr,dn].indexOf(s)>=0,f=u?"height":"width";if(!(!a||!o)){var c=w5(i.padding,r),h=ky(a),d=l==="y"?Ar:Pr,v=l==="y"?cn:dn,p=r.rects.reference[f]+r.rects.reference[l]-o[l]-r.rects.popper[f],m=o[l]-r.rects.reference[l],g=ef(a),y=g?l==="y"?g.clientHeight||0:g.clientWidth||0:0,_=p/2-m/2,b=c[d],x=y-h[f]-c[v],w=y/2-h[f]/2+_,S=Fl(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function x5(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!zM(t.elements.popper,i)||(t.elements.arrow=i))}var C5={name:"arrow",enabled:!0,phase:"main",fn:S5,effect:x5,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function xs(e){return e.split("-")[1]}var T5={top:"auto",right:"auto",bottom:"auto",left:"auto"};function M5(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:ws(t*i)/i||0,y:ws(r*i)/i||0}}function Yb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,f=e.roundOffsets,c=e.isFixed,h=o.x,d=h===void 0?0:h,v=o.y,p=v===void 0?0:v,m=typeof f=="function"?f({x:d,y:p}):{x:d,y:p};d=m.x,p=m.y;var g=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Pr,b=Ar,x=window;if(u){var w=ef(r),S="clientHeight",C="clientWidth";if(w===In(r)&&(w=ga(r),Si(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===Ar||(i===Pr||i===dn)&&a===wu){b=cn;var M=c&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=M-n.height,p*=l?1:-1}if(i===Pr||(i===Ar||i===cn)&&a===wu){_=dn;var A=c&&w===x&&x.visualViewport?x.visualViewport.width:w[C];d-=A-n.width,d*=l?1:-1}}var P=Object.assign({position:s},u&&T5),E=f===!0?M5({x:d,y:p}):{x:d,y:p};if(d=E.x,p=E.y,l){var L;return Object.assign({},P,(L={},L[b]=y?"0":"",L[_]=g?"0":"",L.transform=(x.devicePixelRatio||1)<=1?"translate("+d+"px, "+p+"px)":"translate3d("+d+"px, "+p+"px, 0)",L))}return Object.assign({},P,(t={},t[b]=y?p+"px":"",t[_]=g?d+"px":"",t.transform="",t))}function A5(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:xs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var UM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:A5,data:{}},Cf={passive:!0};function P5(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=In(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(f){f.addEventListener("scroll",r.update,Cf)}),s&&l.addEventListener("resize",r.update,Cf),function(){a&&u.forEach(function(f){f.removeEventListener("scroll",r.update,Cf)}),s&&l.removeEventListener("resize",r.update,Cf)}}var YM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:P5,data:{}},E5={left:"right",right:"left",bottom:"top",top:"bottom"};function Ic(e){return e.replace(/left|right|bottom|top/g,function(t){return E5[t]})}var L5={start:"end",end:"start"};function jb(e){return e.replace(/start|end/g,function(t){return L5[t]})}function By(e){var t=In(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Fy(e){return Ss(ga(e)).left+By(e).scrollLeft}function D5(e){var t=In(e),r=ga(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Fy(e),y:s}}function I5(e){var t,r=ga(e),n=By(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=lo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=lo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Fy(e),l=-n.scrollTop;return Si(i||r).direction==="rtl"&&(s+=lo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function $y(e){var t=Si(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function jM(e){return["html","body","#document"].indexOf(Qn(e))>=0?e.ownerDocument.body:ln(e)&&$y(e)?e:jM(ch(e))}function $l(e,t){var r;t===void 0&&(t=[]);var n=jM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=In(n),o=i?[a].concat(a.visualViewport||[],$y(n)?n:[]):n,s=t.concat(o);return i?s:s.concat($l(ch(o)))}function ug(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function O5(e){var t=Ss(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function qb(e,t){return t===$M?ug(D5(e)):bs(t)?O5(t):ug(I5(ga(e)))}function R5(e){var t=$l(ch(e)),r=["absolute","fixed"].indexOf(Si(e).position)>=0,n=r&&ln(e)?ef(e):e;return bs(n)?t.filter(function(i){return bs(i)&&zM(i,n)&&Qn(i)!=="body"}):[]}function k5(e,t,r){var n=t==="clippingParents"?R5(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=qb(e,l);return s.top=lo(u.top,s.top),s.right=pd(u.right,s.right),s.bottom=pd(u.bottom,s.bottom),s.left=lo(u.left,s.left),s},qb(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function qM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?xs(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case Ar:l={x:o,y:t.y-r.height};break;case cn:l={x:o,y:t.y+t.height};break;case dn:l={x:t.x+t.width,y:s};break;case Pr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?Ny(i):null;if(u!=null){var f=u==="y"?"height":"width";switch(a){case _s:l[u]=l[u]-(t[f]/2-r[f]/2);break;case wu:l[u]=l[u]+(t[f]/2-r[f]/2);break}}return l}function Su(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?i5:a,s=r.rootBoundary,l=s===void 0?$M:s,u=r.elementContext,f=u===void 0?Js:u,c=r.altBoundary,h=c===void 0?!1:c,d=r.padding,v=d===void 0?0:d,p=WM(typeof v!="number"?v:GM(v,Ju)),m=f===Js?a5:Js,g=e.rects.popper,y=e.elements[h?m:f],_=k5(bs(y)?y:y.contextElement||ga(e.elements.popper),o,l),b=Ss(e.elements.reference),x=qM({reference:b,element:g,strategy:"absolute",placement:i}),w=ug(Object.assign({},g,x)),S=f===Js?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},M=e.modifiersData.offset;if(f===Js&&M){var A=M[i];Object.keys(C).forEach(function(P){var E=[dn,cn].indexOf(P)>=0?1:-1,L=[Ar,cn].indexOf(P)>=0?"y":"x";C[P]+=A[L]*E})}return C}function N5(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Oy:l,f=xs(n),c=f?s?Gb:Gb.filter(function(v){return xs(v)===f}):Ju,h=c.filter(function(v){return u.indexOf(v)>=0});h.length===0&&(h=c);var d=h.reduce(function(v,p){return v[p]=Su(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(d).sort(function(v,p){return d[v]-d[p]})}function B5(e){if(jn(e)===Iy)return[];var t=Ic(e);return[jb(e),t,jb(t)]}function F5(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,f=r.boundary,c=r.rootBoundary,h=r.altBoundary,d=r.flipVariations,v=d===void 0?!0:d,p=r.allowedAutoPlacements,m=t.options.placement,g=jn(m),y=g===m,_=l||(y||!v?[Ic(m)]:B5(m)),b=[m].concat(_).reduce(function(Se,$e){return Se.concat(jn($e)===Iy?N5(t,{placement:$e,boundary:f,rootBoundary:c,padding:u,flipVariations:v,allowedAutoPlacements:p}):$e)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,M=b[0],A=0;A=0,N=O?"width":"height",H=Su(t,{placement:P,boundary:f,rootBoundary:c,altBoundary:h,padding:u}),V=O?L?dn:Pr:L?cn:Ar;x[N]>w[N]&&(V=Ic(V));var U=Ic(V),F=[];if(a&&F.push(H[E]<=0),s&&F.push(H[V]<=0,H[U]<=0),F.every(function(Se){return Se})){M=P,C=!1;break}S.set(P,F)}if(C)for(var z=v?3:1,te=function(Se){var $e=b.find(function(Ie){var B=S.get(Ie);if(B)return B.slice(0,Se).every(function(Y){return Y})});if($e)return M=$e,"break"},J=z;J>0;J--){var me=te(J);if(me==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var $5={name:"flip",enabled:!0,phase:"main",fn:F5,requiresIfExists:["offset"],data:{_skip:!1}};function Kb(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Xb(e){return[Ar,dn,cn,Pr].some(function(t){return e[t]>=0})}function H5(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=Su(t,{elementContext:"reference"}),s=Su(t,{altBoundary:!0}),l=Kb(o,n),u=Kb(s,i,a),f=Xb(l),c=Xb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:f,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":c})}var z5={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:H5};function V5(e,t,r){var n=jn(e),i=[Pr,Ar].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Pr,dn].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function W5(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=Oy.reduce(function(f,c){return f[c]=V5(c,t.rects,a),f},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var G5={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:W5};function U5(e){var t=e.state,r=e.name;t.modifiersData[r]=qM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var KM={name:"popperOffsets",enabled:!0,phase:"read",fn:U5,data:{}};function Y5(e){return e==="x"?"y":"x"}function j5(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,f=r.altBoundary,c=r.padding,h=r.tether,d=h===void 0?!0:h,v=r.tetherOffset,p=v===void 0?0:v,m=Su(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:f}),g=jn(t.placement),y=xs(t.placement),_=!y,b=Ny(g),x=Y5(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,A=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,E={x:0,y:0};if(w){if(a){var L,O=b==="y"?Ar:Pr,N=b==="y"?cn:dn,H=b==="y"?"height":"width",V=w[b],U=V+m[O],F=V-m[N],z=d?-C[H]/2:0,te=y===_s?S[H]:C[H],J=y===_s?-C[H]:-S[H],me=t.elements.arrow,Se=d&&me?ky(me):{width:0,height:0},$e=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:VM(),Ie=$e[O],B=$e[N],Y=Fl(0,S[H],Se[H]),K=_?S[H]/2-z-Y-Ie-A.mainAxis:te-Y-Ie-A.mainAxis,Q=_?-S[H]/2+z+Y+B+A.mainAxis:J+Y+B+A.mainAxis,oe=t.elements.arrow&&ef(t.elements.arrow),pe=oe?b==="y"?oe.clientTop||0:oe.clientLeft||0:0,D=(L=P==null?void 0:P[b])!=null?L:0,I=V+K-D-pe,W=V+Q-D,X=Fl(d?pd(U,I):U,V,d?lo(F,W):F);w[b]=X,E[b]=X-V}if(s){var q,le=b==="x"?Ar:Pr,fe=b==="x"?cn:dn,ae=w[x],se=x==="y"?"height":"width",ne=ae+m[le],he=ae-m[fe],Me=[Ar,Pr].indexOf(g)!==-1,xe=(q=P==null?void 0:P[x])!=null?q:0,ke=Me?ne:ae-S[se]-C[se]-xe+A.altAxis,Ve=Me?ae+S[se]+C[se]-xe-A.altAxis:he,rt=d&&Me?b5(ke,ae,Ve):Fl(d?ke:ne,ae,d?Ve:he);w[x]=rt,E[x]=rt-ae}t.modifiersData[n]=E}}var q5={name:"preventOverflow",enabled:!0,phase:"main",fn:j5,requiresIfExists:["offset"]};function K5(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function X5(e){return e===In(e)||!ln(e)?By(e):K5(e)}function Z5(e){var t=e.getBoundingClientRect(),r=ws(t.width)/e.offsetWidth||1,n=ws(t.height)/e.offsetHeight||1;return r!==1||n!==1}function Q5(e,t,r){r===void 0&&(r=!1);var n=ln(t),i=ln(t)&&Z5(t),a=ga(t),o=Ss(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Qn(t)!=="body"||$y(a))&&(s=X5(t)),ln(t)?(l=Ss(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Fy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function J5(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function e4(e){var t=J5(e);return p5.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function t4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function r4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var Zb={placement:"bottom",modifiers:[],strategy:"absolute"};function Qb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=s4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:f,modifiers:c}=T(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:f||"absolute",modifiers:[...c||[],n,{name:"applyStyles",enabled:!1}]}}),a=ty(),o=$({styles:{popper:{position:T(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return we(i,l=>{const u=T(a);u&&u.setOptions(l)},{deep:!0}),we([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=a4(l,u,T(i)))}),tr(()=>{s()}),{state:k(()=>{var l;return{...((l=T(a))==null?void 0:l.state)||{}}}),styles:k(()=>T(o).styles),attributes:k(()=>T(o).attributes),update:()=>{var l;return(l=T(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=T(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>T(a))}};function s4(e){const t=Object.keys(e.elements),r=og(t.map(i=>[i,e.styles[i]||{}])),n=og(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}const XM=e=>{if(!e)return{onClick:Bt,onMousedown:Bt,onMouseup:Bt};let t=!1,r=!1;return{onClick:o=>{t&&r&&e(o),t=r=!1},onMousedown:o=>{t=o.target===o.currentTarget},onMouseup:o=>{r=o.target===o.currentTarget}}};function Jb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return ju(()=>r()),{registerTimeout:t,cancelTimeout:r}}const e1={prefix:Math.floor(Math.random()*1e4),current:0},l4=Symbol("elIdInjection"),ZM=()=>it()?Le(l4,e1):e1,xu=e=>{const t=ZM(),r=Dy();return k(()=>T(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let qo=[];const t1=e=>{const t=e;t.key===hr.esc&&qo.forEach(r=>r(t))},u4=e=>{_t(()=>{qo.length===0&&document.addEventListener("keydown",t1),At&&qo.push(e)}),tr(()=>{qo=qo.filter(t=>t!==e),qo.length===0&&At&&document.removeEventListener("keydown",t1)})};let r1;const QM=()=>{const e=Dy(),t=ZM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},f4=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},c4=()=>{const{id:e,selector:t}=QM();return eh(()=>{At&&!r1&&!document.body.querySelector(t.value)&&(r1=f4(e.value))}),{id:e,selector:t}},d4=Je({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),h4=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Jb(),{registerTimeout:o,cancelTimeout:s}=Jb();return{onOpen:f=>{a(()=>{n(f);const c=T(r);Rt(c)&&c>0&&o(()=>{i(f)},c)},T(e))},onClose:f=>{s(),a(()=>{i(f)},T(t))}}},JM=Symbol("elForwardRef"),v4=e=>{Dt(JM,{setForwardRef:r=>{e.value=r}})},p4=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),n1=$(0),eA=2e3,tA=Symbol("zIndexContextKey"),zy=e=>{const t=e||(it()?Le(tA,void 0):void 0),r=k(()=>{const a=T(t);return Rt(a)?a:eA}),n=k(()=>r.value+n1.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(n1.value++,n.value)}},dh=fh({type:String,values:Bs,required:!1}),rA=Symbol("size"),g4=()=>{const e=Le(rA,{});return k(()=>T(e.size)||"")},nA=Symbol(),gd=$();function hh(e,t=void 0){const r=it()?Le(nA,gd):gd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function m4(e,t){const r=hh(),n=Oe(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Bl})),i=Fs(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=zy(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||eA})),o=k(()=>{var s;return T(t)||((s=r.value)==null?void 0:s.size)||""});return y4(k(()=>T(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const y4=(e,t,r=!1)=>{var n;const i=!!it(),a=i?hh():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?Dt:void 0;if(!o)return;const s=k(()=>{const l=T(e);return a!=null&&a.value?_4(a.value,l):l});return o(nA,s),o(kM,k(()=>s.value.locale)),o(NM,k(()=>s.value.namespace)),o(tA,k(()=>s.value.zIndex)),o(rA,{size:k(()=>s.value.size||"")}),(r||!gd.value)&&(gd.value=s.value),s},_4=(e,t)=>{var r;const n=[...new Set([...Vb(e),...Vb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},i1={};var Ke=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const b4=Je({size:{type:Be([Number,String])},color:{type:String}}),w4=ie({name:"ElIcon",inheritAttrs:!1}),S4=ie({...w4,props:b4,setup(e){const t=e,r=Oe("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:ys(i)?void 0:Zn(i),"--color":a}});return(i,a)=>(G(),ce("i",ei({class:T(r).b(),style:T(n)},i.$attrs),[Ce(i.$slots,"default")],16))}});var x4=Ke(S4,[["__file","icon.vue"]]);const Nt=Yt(x4),$s=Symbol("formContextKey"),yo=Symbol("formItemContextKey"),xi=(e,t={})=>{const r=$(void 0),n=t.prop?r:FM("size"),i=t.global?r:g4(),a=t.form?{size:void 0}:Le($s,void 0),o=t.formItem?{size:void 0}:Le(yo,void 0);return k(()=>n.value||T(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},vh=e=>{const t=FM("disabled"),r=Le($s,void 0);return k(()=>t.value||T(e)||(r==null?void 0:r.disabled)||!1)},tf=()=>{const e=Le($s,void 0),t=Le(yo,void 0);return{form:e,formItem:t}},Vy=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=$(!1)),n||(n=$(!1));const i=$();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return _t(()=>{a=we([wn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:xu().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),Os(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},C4=Je({size:{type:String,values:Bs},disabled:Boolean}),T4=Je({...C4,model:Object,rules:{type:Be(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),M4={validate:(e,t,r)=>(_e(e)||ze(e))&&zr(t)&&ze(r)};function A4(){const e=$([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const Tf=(e,t)=>{const r=Jp(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},P4="ElForm",E4=ie({name:P4}),L4=ie({...E4,props:T4,emits:M4,setup(e,{expose:t,emit:r}){const n=e,i=[],a=xi(),o=Oe("form"),s=k(()=>{const{labelPosition:_,inline:b}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${_}`)]:_,[o.m("inline")]:b}]}),l=_=>i.find(b=>b.prop===_),u=_=>{i.push(_)},f=_=>{_.prop&&i.splice(i.indexOf(_),1)},c=(_=[])=>{n.model&&Tf(i,_).forEach(b=>b.resetField())},h=(_=[])=>{Tf(i,_).forEach(b=>b.clearValidate())},d=k(()=>!!n.model),v=_=>{if(i.length===0)return[];const b=Tf(i,_);return b.length?b:[]},p=async _=>g(void 0,_),m=async(_=[])=>{if(!d.value)return!1;const b=v(_);if(b.length===0)return!0;let x={};for(const w of b)try{await w.validate("")}catch(S){x={...x,...S}}return Object.keys(x).length===0?!0:Promise.reject(x)},g=async(_=[],b)=>{const x=!De(b);try{const w=await m(_);return w===!0&&(b==null||b(w)),w}catch(w){if(w instanceof Error)throw w;const S=w;return n.scrollToError&&y(Object.keys(S)[0]),b==null||b(!1,S),x&&Promise.reject(S)}},y=_=>{var b;const x=Tf(i,_)[0];x&&((b=x.$el)==null||b.scrollIntoView(n.scrollIntoViewOptions))};return we(()=>n.rules,()=>{n.validateOnRuleChange&&p().catch(_=>void 0)},{deep:!0}),Dt($s,Ln({...Kd(n),emit:r,resetFields:c,clearValidate:h,validateField:g,getField:l,addField:u,removeField:f,...A4()})),t({validate:p,validateField:g,resetFields:c,clearValidate:h,scrollToField:y}),(_,b)=>(G(),ce("form",{class:re(T(s))},[Ce(_.$slots,"default")],2))}});var D4=Ke(L4,[["__file","form.vue"]]);function Qa(){return Qa=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Oc(e,t,r){return O4()?Oc=Reflect.construct.bind():Oc=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&Cu(u,o.prototype),u},Oc.apply(null,arguments)}function R4(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function cg(e){var t=typeof Map=="function"?new Map:void 0;return cg=function(n){if(n===null||!R4(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Oc(n,arguments,fg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Cu(i,n)},cg(e)}var k4=/%[sdj%]/g,N4=function(){};function dg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function Fr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function B4(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Ut(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||B4(t)&&typeof e=="string"&&!e)}function F4(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function a1(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,s{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t==="svg"?Ki.createElementNS(AO,e):t==="mathml"?Ki.createElementNS(PO,e):Ki.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Ki.createTextNode(e),createComment:e=>Ki.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ki.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{k_.innerHTML=n==="svg"?`${e}`:n==="mathml"?`${e}`:e;const s=k_.content;if(n==="svg"||n==="mathml"){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}},Ii="transition",Xs="animation",gs=Symbol("_vtc"),ti=(e,{slots:t})=>Te(BI,RT(e),t);ti.displayName="Transition";const OT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},LO=ti.props=Ht({},hT,OT),_a=(e,t=[])=>{_e(e)?e.forEach(r=>r(...t)):e&&e(...t)},N_=e=>e?_e(e)?e.some(t=>t.length>1):e.length>1:!1;function RT(e){const t={};for(const E in e)E in OT||(t[E]=e[E]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:f=s,leaveFromClass:c=`${r}-leave-from`,leaveActiveClass:h=`${r}-leave-active`,leaveToClass:d=`${r}-leave-to`}=e,v=DO(i),p=v&&v[0],m=v&&v[1],{onBeforeEnter:g,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=g,onAppear:S=y,onAppearCancelled:C=_}=t,M=(E,L,O)=>{zi(E,L?f:s),zi(E,L?u:o),O&&O()},A=(E,L)=>{E._isLeaving=!1,zi(E,c),zi(E,d),zi(E,h),L&&L()},P=E=>(L,O)=>{const N=E?S:y,H=()=>M(L,E,O);_a(N,[L,H]),B_(()=>{zi(L,E?l:a),ci(L,E?f:s),N_(N)||F_(L,n,p,H)})};return Ht(t,{onBeforeEnter(E){_a(g,[E]),ci(E,a),ci(E,o)},onBeforeAppear(E){_a(w,[E]),ci(E,l),ci(E,u)},onEnter:P(!1),onAppear:P(!0),onLeave(E,L){E._isLeaving=!0;const O=()=>A(E,L);ci(E,c),NT(),ci(E,h),B_(()=>{E._isLeaving&&(zi(E,c),ci(E,d),N_(b)||F_(E,n,m,O))}),_a(b,[E,O])},onEnterCancelled(E){M(E,!1),_a(_,[E])},onAppearCancelled(E){M(E,!0),_a(C,[E])},onLeaveCancelled(E){A(E),_a(x,[E])}})}function DO(e){if(e==null)return null;if(qe(e))return[Kh(e.enter),Kh(e.leave)];{const t=Kh(e);return[t,t]}}function Kh(e){return HD(e)}function ci(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e[gs]||(e[gs]=new Set)).add(t)}function zi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const r=e[gs];r&&(r.delete(t),r.size||(e[gs]=void 0))}function B_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let IO=0;function F_(e,t,r,n){const i=e._endId=++IO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=kT(e,t);if(!o)return n();const u=o+"end";let f=0;const c=()=>{e.removeEventListener(u,h),a()},h=d=>{d.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[v]||"").split(", "),i=n(`${Ii}Delay`),a=n(`${Ii}Duration`),o=$_(i,a),s=n(`${Xs}Delay`),l=n(`${Xs}Duration`),u=$_(s,l);let f=null,c=0,h=0;t===Ii?o>0&&(f=Ii,c=o,h=a.length):t===Xs?u>0&&(f=Xs,c=u,h=l.length):(c=Math.max(o,u),f=c>0?o>u?Ii:Xs:null,h=f?f===Ii?a.length:l.length:0);const d=f===Ii&&/\b(transform|all)(,|$)/.test(n(`${Ii}Property`).toString());return{type:f,timeout:c,propCount:h,hasTransform:d}}function $_(e,t){for(;e.lengthH_(r)+H_(e[n])))}function H_(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function NT(){return document.body.offsetHeight}function OO(e,t,r){const n=e[gs];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}const dy=Symbol("_vod"),Kn={beforeMount(e,{value:t},{transition:r}){e[dy]=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Zs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),Zs(e,!0),n.enter(e)):n.leave(e,()=>{Zs(e,!1)}):Zs(e,t))},beforeUnmount(e,{value:t}){Zs(e,t)}};function Zs(e,t){e.style.display=t?e[dy]:"none"}const RO=Symbol("");function kO(e,t,r){const n=e.style,i=n.display,a=ze(r);if(r&&!a){if(t&&!ze(t))for(const o in t)r[o]==null&&qp(n,o,"");for(const o in r)qp(n,o,r[o])}else if(a){if(t!==r){const o=n[RO];o&&(r+=";"+o),n.cssText=r}}else t&&e.removeAttribute("style");dy in e&&(n.display=i)}const z_=/\s*!important$/;function qp(e,t,r){if(_e(r))r.forEach(n=>qp(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=NO(e,t);z_.test(r)?e.setProperty(xo(n),r.replace(z_,""),"important"):e[n]=r}}const V_=["Webkit","Moz","ms"],Xh={};function NO(e,t){const r=Xh[t];if(r)return r;let n=Pn(t);if(n!=="filter"&&n in e)return Xh[t]=n;n=Yd(n);for(let i=0;iZh||(VO.then(()=>Zh=0),Zh=Date.now());function GO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;sn(UO(n,r.value),t,5,[n])};return r.value=e,r.attached=WO(),r}function UO(e,t){if(_e(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const Y_=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,YO=(e,t,r,n,i,a,o,s,l)=>{const u=i==="svg";t==="class"?OO(e,n,u):t==="style"?kO(e,r,n):Wd(t)?Gm(t)||HO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jO(e,t,n,u))?FO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),BO(e,t,n,u))};function jO(e,t,r,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Y_(t)&&De(r));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Y_(t)&&ze(r)?!1:t in e}const FT=new WeakMap,$T=new WeakMap,od=Symbol("_moveCb"),j_=Symbol("_enterCb"),HT={name:"TransitionGroup",props:Ht({},LO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=it(),n=dT();let i,a;return Uu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!JO(i[0].el,r.vnode.el,o))return;i.forEach(XO),i.forEach(ZO);const s=i.filter(QO);NT(),s.forEach(l=>{const u=l.el,f=u.style;ci(u,o),f.transform=f.webkitTransform=f.transitionDuration="";const c=u[od]=h=>{h&&h.target!==u||(!h||/transform$/.test(h.propertyName))&&(u.removeEventListener("transitionend",c),u[od]=null,zi(u,o))};u.addEventListener("transitionend",c)})}),()=>{const o=Qe(e),s=RT(o);let l=o.tag||ft;i=a,a=t.default?sy(t.default()):[];for(let u=0;udelete e.mode;HT.props;const KO=HT;function XO(e){const t=e.el;t[od]&&t[od](),t[j_]&&t[j_]()}function ZO(e){$T.set(e,e.el.getBoundingClientRect())}function QO(e){const t=FT.get(e),r=$T.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function JO(e,t,r){const n=e.cloneNode(),i=e[gs];i&&i.forEach(s=>{s.split(/\s+/).forEach(l=>l&&n.classList.remove(l))}),r.split(/\s+/).forEach(s=>s&&n.classList.add(s)),n.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(n);const{hasTransform:o}=kT(n);return a.removeChild(n),o}const q_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return _e(t)?r=>Cc(t,r):t},Qh=Symbol("_assign"),sd={deep:!0,created(e,t,r){e[Qh]=q_(r),BT(e,"change",()=>{const n=e._modelValue,i=eR(e),a=e.checked,o=e[Qh];if(_e(n)){const s=OC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(Gd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(zT(e,a))})},mounted:K_,beforeUpdate(e,t,r){e[Qh]=q_(r),K_(e,t,r)}};function K_(e,{value:t,oldValue:r},n){e._modelValue=t,_e(t)?e.checked=OC(t,n.props.value)>-1:Gd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=jd(t,zT(e,!0)))}function eR(e){return"_value"in e?e._value:e.value}function zT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const tR=["ctrl","shift","alt","meta"],rR={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>tR.some(r=>e[`${r}Key`]&&!t.includes(r))},ua=(e,t)=>{const r=e._withMods||(e._withMods={}),n=t.join(".");return r[n]||(r[n]=(i,...a)=>{for(let o=0;o{const r=e._withKeys||(e._withKeys={}),n=t.join(".");return r[n]||(r[n]=i=>{if(!("key"in i))return;const a=xo(i.key);if(t.some(o=>o===a||nR[o]===a))return e(i)})},aR=Ht({patchProp:YO},EO);let X_;function VT(){return X_||(X_=sO(aR))}const ld=(...e)=>{VT().render(...e)},oR=(...e)=>{const t=VT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=lR(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,sR(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function sR(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function lR(e){return ze(e)?document.querySelector(e):e}const Ac=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},di=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var Z_;const At=typeof window<"u",uR=e=>typeof e=="function",fR=e=>typeof e=="string",Kp=()=>{};At&&((Z_=window==null?void 0:window.navigator)!=null&&Z_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function po(e){return typeof e=="function"?e():T(e)}function WT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const GT=e=>e();function cR(e,t={}){let r,n,i=Kp;const a=s=>{clearTimeout(s),i(),i=Kp};return s=>{const l=po(e),u=po(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((f,c)=>{i=t.rejectOnCancel?c:f,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,f(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,f(s())},l)})}}function dR(e=GT){const t=$(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:Gu(t),pause:r,resume:n,eventFilter:i}}function hR(e){return e}function ju(e){return kC()?(NC(e),!0):!1}function vR(e,t=200,r={}){return WT(cR(t,r),e)}function pR(e,t=200,r={}){const n=$(e.value),i=vR(()=>{n.value=e.value},t,r);return be(e,()=>i()),n}function gR(e){return typeof e=="function"?k(e):$(e)}function UT(e,t=!0){it()?_t(e):t?e():Nt(e)}function hu(e,t,r={}){const{immediate:n=!0}=r,i=$(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},po(t))}return n&&(i.value=!0,At&&l()),ju(s),{isPending:Gu(i),start:l,stop:s}}function mR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Pt(e),a=$(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=po(r);return a.value=a.value===l?po(n):l,a.value}}return i?o:[a,o]}var Q_=Object.getOwnPropertySymbols,yR=Object.prototype.hasOwnProperty,_R=Object.prototype.propertyIsEnumerable,bR=(e,t)=>{var r={};for(var n in e)yR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Q_)for(var n of Q_(e))t.indexOf(n)<0&&_R.call(e,n)&&(r[n]=e[n]);return r};function wR(e,t,r={}){const n=r,{eventFilter:i=GT}=n,a=bR(n,["eventFilter"]);return be(e,WT(i,t),a)}var SR=Object.defineProperty,xR=Object.defineProperties,CR=Object.getOwnPropertyDescriptors,ud=Object.getOwnPropertySymbols,YT=Object.prototype.hasOwnProperty,jT=Object.prototype.propertyIsEnumerable,J_=(e,t,r)=>t in e?SR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,TR=(e,t)=>{for(var r in t||(t={}))YT.call(t,r)&&J_(e,r,t[r]);if(ud)for(var r of ud(t))jT.call(t,r)&&J_(e,r,t[r]);return e},MR=(e,t)=>xR(e,CR(t)),AR=(e,t)=>{var r={};for(var n in e)YT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ud)for(var n of ud(e))t.indexOf(n)<0&&jT.call(e,n)&&(r[n]=e[n]);return r};function PR(e,t,r={}){const n=r,{eventFilter:i}=n,a=AR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=dR(i);return{stop:wR(e,t,MR(TR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Zi(e){var t;const r=po(e);return(t=r==null?void 0:r.$el)!=null?t:r}const fa=At?window:void 0;function xn(...e){let t,r,n,i;if(fR(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=fa):[t,r,n,i]=e,!t)return Kp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(f=>f()),a.length=0},s=(f,c,h)=>(f.addEventListener(c,h,i),()=>f.removeEventListener(c,h,i)),l=be(()=>Zi(t),f=>{o(),f&&a.push(...r.flatMap(c=>n.map(h=>s(f,c,h))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return ju(u),u}function ER(e,t,r={}){const{window:n=fa,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=d=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===d.target||d.composedPath().includes(p));{const p=Zi(v);return p&&(d.target===p||d.composedPath().includes(p))}}),f=d=>{n.clearTimeout(l);const v=Zi(e);if(!(!v||v===d.target||d.composedPath().includes(v))){if(d.detail===0&&(s=!u(d)),!s){s=!0;return}t(d)}},c=[xn(n,"click",f,{passive:!0,capture:a}),xn(n,"pointerdown",d=>{const v=Zi(e);v&&(s=!d.composedPath().includes(v)&&!u(d))},{passive:!0}),xn(n,"pointerup",d=>{if(d.button===0){const v=d.composedPath();d.composedPath=()=>v,l=n.setTimeout(()=>f(d),50)}},{passive:!0}),o&&xn(n,"blur",d=>{var v;const p=Zi(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(d)})].filter(Boolean);return()=>c.forEach(d=>d())}function qT(e,t=!1){const r=$(),n=()=>r.value=!!e();return n(),UT(n,t),r}function LR(e,t={}){const{window:r=fa}=t,n=qT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=$(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(gR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return na(s),ju(()=>o()),a}const Xp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zp="__vueuse_ssr_handlers__";Xp[Zp]=Xp[Zp]||{};const DR=Xp[Zp];function KT(e,t){return DR[e]||t}function IR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var OR=Object.defineProperty,eb=Object.getOwnPropertySymbols,RR=Object.prototype.hasOwnProperty,kR=Object.prototype.propertyIsEnumerable,tb=(e,t,r)=>t in e?OR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rb=(e,t)=>{for(var r in t||(t={}))RR.call(t,r)&&tb(e,r,t[r]);if(eb)for(var r of eb(t))kR.call(t,r)&&tb(e,r,t[r]);return e};const NR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function BR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:f,window:c=fa,eventFilter:h,onError:d=S=>{console.error(S)}}=n,v=(f?ty:$)(t);if(!r)try{r=KT("getDefaultStorage",()=>{var S;return(S=fa)==null?void 0:S.localStorage})()}catch(S){d(S)}if(!r)return v;const p=po(t),m=IR(p),g=(i=n.serializer)!=null?i:NR[m],{pause:y,resume:_}=PR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:h});return c&&s&&xn(c,"storage",w),w(),v;function b(S){try{if(S==null)r.removeItem(e);else{const C=g.write(S),M=r.getItem(e);M!==C&&(r.setItem(e,C),c&&(c==null||c.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){d(C)}}function x(S){const C=S?S.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,g.write(p)),p;if(!S&&u){const M=g.read(C);return uR(u)?u(M,p):m==="object"&&!Array.isArray(M)?rb(rb({},p),M):M}else return typeof C!="string"?C:g.read(C)}function w(S){if(!(S&&S.storageArea!==r)){if(S&&S.key==null){v.value=p;return}if(!(S&&S.key!==e)){y();try{v.value=x(S)}catch(C){d(C)}finally{S?Nt(_):_()}}}}}function XT(e){return LR("(prefers-color-scheme: dark)",e)}var FR=Object.defineProperty,nb=Object.getOwnPropertySymbols,$R=Object.prototype.hasOwnProperty,HR=Object.prototype.propertyIsEnumerable,ib=(e,t,r)=>t in e?FR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,zR=(e,t)=>{for(var r in t||(t={}))$R.call(t,r)&&ib(e,r,t[r]);if(nb)for(var r of nb(t))HR.call(t,r)&&ib(e,r,t[r]);return e};function VR(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=fa,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,f=zR({auto:"",light:"light",dark:"dark"},e.modes||{}),c=XT({window:i}),h=k(()=>c.value?"dark":"light"),d=l||(o==null?$(n):BR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return d.value==="auto"&&!u?h.value:d.value},set(y){d.value=y}}),p=KT("updateHTMLAttrs",(y,_,b)=>{const x=i==null?void 0:i.document.querySelector(y);if(x)if(_==="class"){const w=b.split(/\s/g);Object.values(f).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{w.includes(S)?x.classList.add(S):x.classList.remove(S)})}else x.setAttribute(_,b)});function m(y){var _;const b=y==="auto"?h.value:y;p(t,r,(_=f[b])!=null?_:b)}function g(y){e.onChanged?e.onChanged(y,m):m(y)}return be(v,g,{flush:"post",immediate:!0}),u&&be(h,()=>g(v.value),{flush:"post"}),UT(()=>g(v.value)),v}var WR=Object.defineProperty,GR=Object.defineProperties,UR=Object.getOwnPropertyDescriptors,ab=Object.getOwnPropertySymbols,YR=Object.prototype.hasOwnProperty,jR=Object.prototype.propertyIsEnumerable,ob=(e,t,r)=>t in e?WR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qR=(e,t)=>{for(var r in t||(t={}))YR.call(t,r)&&ob(e,r,t[r]);if(ab)for(var r of ab(t))jR.call(t,r)&&ob(e,r,t[r]);return e},KR=(e,t)=>GR(e,UR(t));function XR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=fa}=e,i=VR(KR(qR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=XT({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var sb=Object.getOwnPropertySymbols,ZR=Object.prototype.hasOwnProperty,QR=Object.prototype.propertyIsEnumerable,JR=(e,t)=>{var r={};for(var n in e)ZR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&sb)for(var n of sb(e))t.indexOf(n)<0&&QR.call(e,n)&&(r[n]=e[n]);return r};function ms(e,t,r={}){const n=r,{window:i=fa}=n,a=JR(n,["window"]);let o;const s=qT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=be(()=>Zi(e),c=>{l(),s.value&&i&&c&&(o=new ResizeObserver(t),o.observe(c,a))},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return ju(f),{isSupported:s,stop:f}}var lb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(lb||(lb={}));var ek=Object.defineProperty,ub=Object.getOwnPropertySymbols,tk=Object.prototype.hasOwnProperty,rk=Object.prototype.propertyIsEnumerable,fb=(e,t,r)=>t in e?ek(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,nk=(e,t)=>{for(var r in t||(t={}))tk.call(t,r)&&fb(e,r,t[r]);if(ub)for(var r of ub(t))rk.call(t,r)&&fb(e,r,t[r]);return e};const ik={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};nk({linear:hR},ik);var ZT=typeof global=="object"&&global&&global.Object===Object&&global,ak=typeof self=="object"&&self&&self.Object===Object&&self,Dn=ZT||ak||Function("return this")(),fn=Dn.Symbol,QT=Object.prototype,ok=QT.hasOwnProperty,sk=QT.toString,Qs=fn?fn.toStringTag:void 0;function lk(e){var t=ok.call(e,Qs),r=e[Qs];try{e[Qs]=void 0;var n=!0}catch{}var i=sk.call(e);return n&&(t?e[Qs]=r:delete e[Qs]),i}var uk=Object.prototype,fk=uk.toString;function ck(e){return fk.call(e)}var dk="[object Null]",hk="[object Undefined]",cb=fn?fn.toStringTag:void 0;function Mo(e){return e==null?e===void 0?hk:dk:cb&&cb in Object(e)?lk(e):ck(e)}function Xn(e){return e!=null&&typeof e=="object"}var vk="[object Symbol]";function ih(e){return typeof e=="symbol"||Xn(e)&&Mo(e)==vk}function JT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=Vk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Yk(e){return function(){return e}}var fd=function(){try{var e=Po(Object,"defineProperty");return e({},"",{}),e}catch{}}(),jk=fd?function(e,t){return fd(e,"toString",{configurable:!0,enumerable:!1,value:Yk(t),writable:!0})}:hy;const qk=jk;var rM=Uk(qk);function Kk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=tN}function Fs(e){return e!=null&&my(e.length)&&!vy(e)}function rN(e,t,r){if(!Dr(r))return!1;var n=typeof t;return(n=="number"?Fs(r)&&ah(t,r.length):n=="string"&&t in r)?qu(r[t],e):!1}function nN(e){return eN(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&rN(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function hB(e,t){var r=this.__data__,n=oh(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Pi(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?Ty(s,t-1,r,n,i):Cy(i,s):n||(i[i.length]=s)}return i}function EB(e){var t=e==null?0:e.length;return t?Ty(e,1):[]}function LB(e){return rM(nM(e,void 0,EB),e+"")}var DB=lM(Object.getPrototypeOf,Object);const My=DB;var IB="[object Object]",OB=Function.prototype,RB=Object.prototype,uM=OB.toString,kB=RB.hasOwnProperty,NB=uM.call(Object);function BB(e){if(!Xn(e)||Mo(e)!=IB)return!1;var t=My(e);if(t===null)return!0;var r=kB.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&uM.call(r)==NB}function Jp(){if(!arguments.length)return[];var e=arguments[0];return gr(e)?e:[e]}function FB(){this.__data__=new Pi,this.size=0}function $B(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function HB(e){return this.__data__.get(e)}function zB(e){return this.__data__.has(e)}var VB=200;function WB(e,t){var r=this.__data__;if(r instanceof Pi){var n=r.__data__;if(!mu||n.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,h=!0,d=r&y$?new dd:void 0;for(a.set(e,t),a.set(t,e);++c=t||S<0||c&&C>=a}function g(){var w=rv();if(m(w))return y(w);s=setTimeout(g,p(w))}function y(w){return s=void 0,h&&n?d(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(rv())}function x(){var w=rv(),S=m(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(c)return clearTimeout(s),s=setTimeout(g,t),d(l)}return s===void 0&&(s=setTimeout(g,t)),o}return x.cancel=_,x.flush=b,x}function ig(e,t,r){(r!==void 0&&!qu(e[t],r)||r===void 0&&!(t in e))&&py(e,t,r)}function u3(e){return Xn(e)&&Fs(e)}function ag(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function f3(e){return Ku(e,Zu(e))}function c3(e,t,r,n,i,a,o){var s=ag(e,r),l=ag(t,r),u=o.get(l);if(u){ig(e,r,u);return}var f=a?a(s,l,r+"",e,t,o):void 0,c=f===void 0;if(c){var h=gr(l),d=!h&&pu(l),v=!h&&!d&&by(l);f=l,h||d||v?gr(s)?f=s:u3(s)?f=tM(s):d?(c=!1,f=cM(l,!0)):v?(c=!1,f=pM(l,!0)):f=[]:BB(l)||vu(l)?(f=s,vu(s)?f=f3(s):(!Dr(s)||vy(s))&&(f=gM(l))):c=!1}c&&(o.set(l,f),i(f,l,n,a,o),o.delete(l)),ig(e,r,f)}function TM(e,t,r,n,i){e!==t&&CM(t,function(a,o){if(i||(i=new An),Dr(a))c3(e,t,o,r,TM,n,i);else{var s=n?n(ag(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),ig(e,o,s)}},Zu)}function d3(e,t){var r=-1,n=Fs(e)?Array(e.length):[];return a3(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function h3(e,t){var r=gr(e)?JT:d3;return r(e,t3(t))}function v3(e,t){return Ty(h3(e,t),1)}function og(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,zr=e=>typeof e=="boolean",kt=e=>typeof e=="number",mo=e=>typeof Element>"u"?!1:e instanceof Element,S3=e=>ze(e)?!Number.isNaN(Number(e)):!1,Vb=e=>Object.keys(e),Ec=(e,t,r)=>({get value(){return yu(e,t,r)},set value(n){w3(e,t,n)}});class x3 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function bi(e,t){throw new x3(`[${e}] ${t}`)}const PM=(e="")=>e.split(" ").filter(t=>!!t.trim()),oo=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Za=(e,t)=>{!e||!t.trim()||e.classList.add(...PM(t))},so=(e,t)=>{!e||!t.trim()||e.classList.remove(...PM(t))},C3=(e,t)=>{var r;if(!At||!e||!t)return"";let n=Pn(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function Zn(e,t="px"){if(!e)return"";if(kt(e)||S3(e))return`${e}${t}`;if(ze(e))return e}let xf;const T3=e=>{var t;if(!At)return 0;if(xf!==void 0)return xf;const r=document.createElement("div");r.className=`${e}-scrollbar__wrap`,r.style.visibility="hidden",r.style.width="100px",r.style.position="absolute",r.style.top="-9999px",document.body.appendChild(r);const n=r.offsetWidth;r.style.overflow="scroll";const i=document.createElement("div");i.style.width="100%",r.appendChild(i);const a=i.offsetWidth;return(t=r.parentNode)==null||t.removeChild(r),xf=n-a,xf};/*! Element Plus Icons Vue v2.3.1 */var M3=ie({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),EM=M3,A3=ie({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),Ey=A3,P3=ie({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),E3=P3,L3=ie({name:"Back",__name:"back",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),te("path",{fill:"currentColor",d:"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z"})]))}}),D3=L3,I3=ie({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),LM=I3,O3=ie({name:"Close",__name:"close",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),vd=O3,R3=ie({name:"InfoFilled",__name:"info-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),DM=R3,k3=ie({name:"Loading",__name:"loading",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),Ly=k3,N3=ie({name:"More",__name:"more",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}}),B3=N3,F3=ie({name:"QuestionFilled",__name:"question-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z"})]))}}),$3=F3,H3=ie({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),IM=H3,z3=ie({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),OM=z3;const RM="__epPropKey",Be=e=>e,V3=e=>qe(e)&&!!e[RM],fh=(e,t)=>{if(!qe(e)||V3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let f=!1,c=[];if(r&&(c=Array.from(r),Ue(e,"default")&&c.push(i),f||(f=c.includes(u))),o&&(f||(f=o(u))),!f&&c.length>0){const h=[...new Set(c)].map(d=>JSON.stringify(d)).join(", ");MO(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${h}], got value ${JSON.stringify(u)}.`)}return f}:void 0,[RM]:!0};return Ue(e,"default")&&(l.default=i),l},Je=e=>og(Object.entries(e).map(([t,r])=>[t,fh(r,t)])),vr=Be([String,Object,Function]),W3={Close:vd},G3={Close:vd,SuccessFilled:IM,InfoFilled:DM,WarningFilled:OM,CircleCloseFilled:LM},Wb={success:IM,warning:OM,error:LM,info:DM},Yt=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},U3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),pa=e=>(e.install=Ft,e),Y3=(...e)=>t=>{e.forEach(r=>{De(r)?r(t):r.value=t})},hr={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},wi="update:modelValue",sg="change",lg="input",$s=["","default","small","large"],j3=e=>["",...$s].includes(e);var Lc=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(Lc||{});const Dc=e=>{const t=_e(e)?e:[e],r=[];return t.forEach(n=>{var i;_e(n)?r.push(...Dc(n)):la(n)&&_e(n.children)?r.push(...Dc(n.children)):(r.push(n),la(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Dc(n.component.subTree)))}),r},q3=e=>At?window.requestAnimationFrame(e):setTimeout(e,16),ja=e=>e,bu=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{be(()=>T(o),s=>{},{immediate:!0})},K3=(e,t,r)=>{let n={offsetX:0,offsetY:0};const i=s=>{const l=s.clientX,u=s.clientY,{offsetX:f,offsetY:c}=n,h=e.value.getBoundingClientRect(),d=h.left,v=h.top,p=h.width,m=h.height,g=document.documentElement.clientWidth,y=document.documentElement.clientHeight,_=-d+f,b=-v+c,x=g-d-p+f,w=y-v-m+c,S=M=>{const A=Math.min(Math.max(f+M.clientX-l,_),x),P=Math.min(Math.max(c+M.clientY-u,b),w);n={offsetX:A,offsetY:P},e.value&&(e.value.style.transform=`translate(${Zn(A)}, ${Zn(P)})`)},C=()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C)};document.addEventListener("mousemove",S),document.addEventListener("mouseup",C)},a=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",i)},o=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",i)};_t(()=>{na(()=>{r.value?a():o()})}),tr(()=>{o()})};var X3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const Z3=e=>(t,r)=>Q3(t,r,T(e)),Q3=(e,t,r)=>yu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),J3=e=>{const t=k(()=>T(e).name),r=Pt(e)?e:$(e);return{lang:t,locale:r,t:Z3(e)}},kM=Symbol("localeContextKey"),Hs=e=>{const t=e||Le(kM,$());return J3(k(()=>t.value||X3))},Bl="el",e5="is-",ba=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},NM=Symbol("namespaceContextKey"),Dy=e=>{const t=e||(it()?Le(NM,$(Bl)):$(Bl));return k(()=>T(t)||Bl)},Oe=(e,t)=>{const r=Dy(t);return{namespace:r,b:(p="")=>ba(r.value,e,p,"",""),e:p=>p?ba(r.value,e,"",p,""):"",m:p=>p?ba(r.value,e,"","",p):"",be:(p,m)=>p&&m?ba(r.value,e,p,m,""):"",em:(p,m)=>p&&m?ba(r.value,e,"",p,m):"",bm:(p,m)=>p&&m?ba(r.value,e,p,"",m):"",bem:(p,m,g)=>p&&m&&g?ba(r.value,e,p,m,g):"",is:(p,...m)=>{const g=m.length>=1?m[0]:!0;return p&&g?`${e5}${p}`:""},cssVar:p=>{const m={};for(const g in p)p[g]&&(m[`--${r.value}-${g}`]=p[g]);return m},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const m={};for(const g in p)p[g]&&(m[`--${r.value}-${e}-${g}`]=p[g]);return m},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},t5=(e,t={})=>{Pt(e)||bi("[useLockscreen]","You need to pass a ref param to this function");const r=t.ns||Oe("popup"),n=QC(()=>r.bm("parent","hidden"));if(!At||oo(document.body,n.value))return;let i=0,a=!1,o="0";const s=()=>{setTimeout(()=>{so(document==null?void 0:document.body,n.value),a&&document&&(document.body.style.width=o)},200)};be(e,l=>{if(!l){s();return}a=!oo(document.body,n.value),a&&(o=document.body.style.width),i=T3(r.namespace.value);const u=document.documentElement.clientHeight0&&(u||f==="scroll")&&a&&(document.body.style.width=`calc(100% - ${i}px)`),Za(document.body,n.value)}),NC(()=>s())},r5=fh({type:Be(Boolean),default:null}),n5=fh({type:Be(Function)}),BM=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:r5,[r]:n5};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:f,onHide:c})=>{const h=it(),{emit:d}=h,v=h.props,p=k(()=>De(v[r])),m=k(()=>v[e]===null),g=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),De(f)&&f(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),De(c)&&c(S))},_=S=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&At;C&&d(t,!0),(m.value||!C)&&g(S)},b=S=>{if(v.disabled===!0||!At)return;const C=p.value&&At;C&&d(t,!1),(m.value||!C)&&y(S)},x=S=>{zr(S)&&(v.disabled&&S?p.value&&d(t,!1):o.value!==S&&(S?g():y()))},w=()=>{o.value?b():_()};return be(()=>v[e],x),l&&h.appContext.config.globalProperties.$route!==void 0&&be(()=>({...h.proxy.$route}),()=>{l.value&&o.value&&b()}),_t(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}};BM("modelValue");const FM=e=>{const t=it();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var Ar="top",cn="bottom",dn="right",Pr="left",Iy="auto",Ju=[Ar,cn,dn,Pr],ws="start",wu="end",i5="clippingParents",$M="viewport",Js="popper",a5="reference",Gb=Ju.reduce(function(e,t){return e.concat([t+"-"+ws,t+"-"+wu])},[]),Oy=[].concat(Ju,[Iy]).reduce(function(e,t){return e.concat([t,t+"-"+ws,t+"-"+wu])},[]),o5="beforeRead",s5="read",l5="afterRead",u5="beforeMain",f5="main",c5="afterMain",d5="beforeWrite",h5="write",v5="afterWrite",p5=[o5,s5,l5,u5,f5,c5,d5,h5,v5];function Qn(e){return e?(e.nodeName||"").toLowerCase():null}function In(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ss(e){var t=In(e).Element;return e instanceof t||e instanceof Element}function ln(e){var t=In(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Ry(e){if(typeof ShadowRoot>"u")return!1;var t=In(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function g5(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!ln(a)||!Qn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function m5(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!ln(i)||!Qn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var HM={name:"applyStyles",enabled:!0,phase:"write",fn:g5,effect:m5,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var lo=Math.max,pd=Math.min,xs=Math.round;function Cs(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(ln(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=xs(r.width)/o||1),a>0&&(i=xs(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function ky(e){var t=Cs(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function zM(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Ry(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Si(e){return In(e).getComputedStyle(e)}function y5(e){return["table","td","th"].indexOf(Qn(e))>=0}function ga(e){return((Ss(e)?e.ownerDocument:e.document)||window.document).documentElement}function ch(e){return Qn(e)==="html"?e:e.assignedSlot||e.parentNode||(Ry(e)?e.host:null)||ga(e)}function Ub(e){return!ln(e)||Si(e).position==="fixed"?null:e.offsetParent}function _5(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&ln(e)){var n=Si(e);if(n.position==="fixed")return null}var i=ch(e);for(Ry(i)&&(i=i.host);ln(i)&&["html","body"].indexOf(Qn(i))<0;){var a=Si(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function ef(e){for(var t=In(e),r=Ub(e);r&&y5(r)&&Si(r).position==="static";)r=Ub(r);return r&&(Qn(r)==="html"||Qn(r)==="body"&&Si(r).position==="static")?t:r||_5(e)||t}function Ny(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Fl(e,t,r){return lo(e,pd(t,r))}function b5(e,t,r){var n=Fl(e,t,r);return n>r?r:n}function VM(){return{top:0,right:0,bottom:0,left:0}}function WM(e){return Object.assign({},VM(),e)}function GM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var w5=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,WM(typeof e!="number"?e:GM(e,Ju))};function S5(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=Ny(s),u=[Pr,dn].indexOf(s)>=0,f=u?"height":"width";if(!(!a||!o)){var c=w5(i.padding,r),h=ky(a),d=l==="y"?Ar:Pr,v=l==="y"?cn:dn,p=r.rects.reference[f]+r.rects.reference[l]-o[l]-r.rects.popper[f],m=o[l]-r.rects.reference[l],g=ef(a),y=g?l==="y"?g.clientHeight||0:g.clientWidth||0:0,_=p/2-m/2,b=c[d],x=y-h[f]-c[v],w=y/2-h[f]/2+_,S=Fl(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function x5(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!zM(t.elements.popper,i)||(t.elements.arrow=i))}var C5={name:"arrow",enabled:!0,phase:"main",fn:S5,effect:x5,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ts(e){return e.split("-")[1]}var T5={top:"auto",right:"auto",bottom:"auto",left:"auto"};function M5(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:xs(t*i)/i||0,y:xs(r*i)/i||0}}function Yb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,f=e.roundOffsets,c=e.isFixed,h=o.x,d=h===void 0?0:h,v=o.y,p=v===void 0?0:v,m=typeof f=="function"?f({x:d,y:p}):{x:d,y:p};d=m.x,p=m.y;var g=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Pr,b=Ar,x=window;if(u){var w=ef(r),S="clientHeight",C="clientWidth";if(w===In(r)&&(w=ga(r),Si(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===Ar||(i===Pr||i===dn)&&a===wu){b=cn;var M=c&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=M-n.height,p*=l?1:-1}if(i===Pr||(i===Ar||i===cn)&&a===wu){_=dn;var A=c&&w===x&&x.visualViewport?x.visualViewport.width:w[C];d-=A-n.width,d*=l?1:-1}}var P=Object.assign({position:s},u&&T5),E=f===!0?M5({x:d,y:p}):{x:d,y:p};if(d=E.x,p=E.y,l){var L;return Object.assign({},P,(L={},L[b]=y?"0":"",L[_]=g?"0":"",L.transform=(x.devicePixelRatio||1)<=1?"translate("+d+"px, "+p+"px)":"translate3d("+d+"px, "+p+"px, 0)",L))}return Object.assign({},P,(t={},t[b]=y?p+"px":"",t[_]=g?d+"px":"",t.transform="",t))}function A5(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:Ts(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var UM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:A5,data:{}},Cf={passive:!0};function P5(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=In(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(f){f.addEventListener("scroll",r.update,Cf)}),s&&l.addEventListener("resize",r.update,Cf),function(){a&&u.forEach(function(f){f.removeEventListener("scroll",r.update,Cf)}),s&&l.removeEventListener("resize",r.update,Cf)}}var YM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:P5,data:{}},E5={left:"right",right:"left",bottom:"top",top:"bottom"};function Ic(e){return e.replace(/left|right|bottom|top/g,function(t){return E5[t]})}var L5={start:"end",end:"start"};function jb(e){return e.replace(/start|end/g,function(t){return L5[t]})}function By(e){var t=In(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Fy(e){return Cs(ga(e)).left+By(e).scrollLeft}function D5(e){var t=In(e),r=ga(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Fy(e),y:s}}function I5(e){var t,r=ga(e),n=By(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=lo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=lo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Fy(e),l=-n.scrollTop;return Si(i||r).direction==="rtl"&&(s+=lo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function $y(e){var t=Si(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function jM(e){return["html","body","#document"].indexOf(Qn(e))>=0?e.ownerDocument.body:ln(e)&&$y(e)?e:jM(ch(e))}function $l(e,t){var r;t===void 0&&(t=[]);var n=jM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=In(n),o=i?[a].concat(a.visualViewport||[],$y(n)?n:[]):n,s=t.concat(o);return i?s:s.concat($l(ch(o)))}function ug(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function O5(e){var t=Cs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function qb(e,t){return t===$M?ug(D5(e)):Ss(t)?O5(t):ug(I5(ga(e)))}function R5(e){var t=$l(ch(e)),r=["absolute","fixed"].indexOf(Si(e).position)>=0,n=r&&ln(e)?ef(e):e;return Ss(n)?t.filter(function(i){return Ss(i)&&zM(i,n)&&Qn(i)!=="body"}):[]}function k5(e,t,r){var n=t==="clippingParents"?R5(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=qb(e,l);return s.top=lo(u.top,s.top),s.right=pd(u.right,s.right),s.bottom=pd(u.bottom,s.bottom),s.left=lo(u.left,s.left),s},qb(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function qM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?Ts(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case Ar:l={x:o,y:t.y-r.height};break;case cn:l={x:o,y:t.y+t.height};break;case dn:l={x:t.x+t.width,y:s};break;case Pr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?Ny(i):null;if(u!=null){var f=u==="y"?"height":"width";switch(a){case ws:l[u]=l[u]-(t[f]/2-r[f]/2);break;case wu:l[u]=l[u]+(t[f]/2-r[f]/2);break}}return l}function Su(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?i5:a,s=r.rootBoundary,l=s===void 0?$M:s,u=r.elementContext,f=u===void 0?Js:u,c=r.altBoundary,h=c===void 0?!1:c,d=r.padding,v=d===void 0?0:d,p=WM(typeof v!="number"?v:GM(v,Ju)),m=f===Js?a5:Js,g=e.rects.popper,y=e.elements[h?m:f],_=k5(Ss(y)?y:y.contextElement||ga(e.elements.popper),o,l),b=Cs(e.elements.reference),x=qM({reference:b,element:g,strategy:"absolute",placement:i}),w=ug(Object.assign({},g,x)),S=f===Js?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},M=e.modifiersData.offset;if(f===Js&&M){var A=M[i];Object.keys(C).forEach(function(P){var E=[dn,cn].indexOf(P)>=0?1:-1,L=[Ar,cn].indexOf(P)>=0?"y":"x";C[P]+=A[L]*E})}return C}function N5(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Oy:l,f=Ts(n),c=f?s?Gb:Gb.filter(function(v){return Ts(v)===f}):Ju,h=c.filter(function(v){return u.indexOf(v)>=0});h.length===0&&(h=c);var d=h.reduce(function(v,p){return v[p]=Su(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(d).sort(function(v,p){return d[v]-d[p]})}function B5(e){if(jn(e)===Iy)return[];var t=Ic(e);return[jb(e),t,jb(t)]}function F5(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,f=r.boundary,c=r.rootBoundary,h=r.altBoundary,d=r.flipVariations,v=d===void 0?!0:d,p=r.allowedAutoPlacements,m=t.options.placement,g=jn(m),y=g===m,_=l||(y||!v?[Ic(m)]:B5(m)),b=[m].concat(_).reduce(function(we,$e){return we.concat(jn($e)===Iy?N5(t,{placement:$e,boundary:f,rootBoundary:c,padding:u,flipVariations:v,allowedAutoPlacements:p}):$e)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,M=b[0],A=0;A=0,N=O?"width":"height",H=Su(t,{placement:P,boundary:f,rootBoundary:c,altBoundary:h,padding:u}),V=O?L?dn:Pr:L?cn:Ar;x[N]>w[N]&&(V=Ic(V));var U=Ic(V),F=[];if(a&&F.push(H[E]<=0),s&&F.push(H[V]<=0,H[U]<=0),F.every(function(we){return we})){M=P,C=!1;break}S.set(P,F)}if(C)for(var z=v?3:1,ee=function(we){var $e=b.find(function(Ie){var B=S.get(Ie);if(B)return B.slice(0,we).every(function(Y){return Y})});if($e)return M=$e,"break"},J=z;J>0;J--){var me=ee(J);if(me==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var $5={name:"flip",enabled:!0,phase:"main",fn:F5,requiresIfExists:["offset"],data:{_skip:!1}};function Kb(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Xb(e){return[Ar,dn,cn,Pr].some(function(t){return e[t]>=0})}function H5(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=Su(t,{elementContext:"reference"}),s=Su(t,{altBoundary:!0}),l=Kb(o,n),u=Kb(s,i,a),f=Xb(l),c=Xb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:f,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":c})}var z5={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:H5};function V5(e,t,r){var n=jn(e),i=[Pr,Ar].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Pr,dn].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function W5(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=Oy.reduce(function(f,c){return f[c]=V5(c,t.rects,a),f},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var G5={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:W5};function U5(e){var t=e.state,r=e.name;t.modifiersData[r]=qM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var KM={name:"popperOffsets",enabled:!0,phase:"read",fn:U5,data:{}};function Y5(e){return e==="x"?"y":"x"}function j5(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,f=r.altBoundary,c=r.padding,h=r.tether,d=h===void 0?!0:h,v=r.tetherOffset,p=v===void 0?0:v,m=Su(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:f}),g=jn(t.placement),y=Ts(t.placement),_=!y,b=Ny(g),x=Y5(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,A=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,E={x:0,y:0};if(w){if(a){var L,O=b==="y"?Ar:Pr,N=b==="y"?cn:dn,H=b==="y"?"height":"width",V=w[b],U=V+m[O],F=V-m[N],z=d?-C[H]/2:0,ee=y===ws?S[H]:C[H],J=y===ws?-C[H]:-S[H],me=t.elements.arrow,we=d&&me?ky(me):{width:0,height:0},$e=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:VM(),Ie=$e[O],B=$e[N],Y=Fl(0,S[H],we[H]),K=_?S[H]/2-z-Y-Ie-A.mainAxis:ee-Y-Ie-A.mainAxis,Q=_?-S[H]/2+z+Y+B+A.mainAxis:J+Y+B+A.mainAxis,oe=t.elements.arrow&&ef(t.elements.arrow),pe=oe?b==="y"?oe.clientTop||0:oe.clientLeft||0:0,D=(L=P==null?void 0:P[b])!=null?L:0,I=V+K-D-pe,W=V+Q-D,X=Fl(d?pd(U,I):U,V,d?lo(F,W):F);w[b]=X,E[b]=X-V}if(s){var j,le=b==="x"?Ar:Pr,fe=b==="x"?cn:dn,ae=w[x],se=x==="y"?"height":"width",ne=ae+m[le],de=ae-m[fe],Me=[Ar,Pr].indexOf(g)!==-1,Se=(j=P==null?void 0:P[x])!=null?j:0,ke=Me?ne:ae-S[se]-C[se]-Se+A.altAxis,Ve=Me?ae+S[se]+C[se]-Se-A.altAxis:de,rt=d&&Me?b5(ke,ae,Ve):Fl(d?ke:ne,ae,d?Ve:de);w[x]=rt,E[x]=rt-ae}t.modifiersData[n]=E}}var q5={name:"preventOverflow",enabled:!0,phase:"main",fn:j5,requiresIfExists:["offset"]};function K5(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function X5(e){return e===In(e)||!ln(e)?By(e):K5(e)}function Z5(e){var t=e.getBoundingClientRect(),r=xs(t.width)/e.offsetWidth||1,n=xs(t.height)/e.offsetHeight||1;return r!==1||n!==1}function Q5(e,t,r){r===void 0&&(r=!1);var n=ln(t),i=ln(t)&&Z5(t),a=ga(t),o=Cs(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Qn(t)!=="body"||$y(a))&&(s=X5(t)),ln(t)?(l=Cs(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Fy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function J5(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function e4(e){var t=J5(e);return p5.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function t4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function r4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var Zb={placement:"bottom",modifiers:[],strategy:"absolute"};function Qb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=s4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:f,modifiers:c}=T(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:f||"absolute",modifiers:[...c||[],n,{name:"applyStyles",enabled:!1}]}}),a=ty(),o=$({styles:{popper:{position:T(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return be(i,l=>{const u=T(a);u&&u.setOptions(l)},{deep:!0}),be([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=a4(l,u,T(i)))}),tr(()=>{s()}),{state:k(()=>{var l;return{...((l=T(a))==null?void 0:l.state)||{}}}),styles:k(()=>T(o).styles),attributes:k(()=>T(o).attributes),update:()=>{var l;return(l=T(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=T(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>T(a))}};function s4(e){const t=Object.keys(e.elements),r=og(t.map(i=>[i,e.styles[i]||{}])),n=og(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}const XM=e=>{if(!e)return{onClick:Ft,onMousedown:Ft,onMouseup:Ft};let t=!1,r=!1;return{onClick:o=>{t&&r&&e(o),t=r=!1},onMousedown:o=>{t=o.target===o.currentTarget},onMouseup:o=>{r=o.target===o.currentTarget}}};function Jb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return ju(()=>r()),{registerTimeout:t,cancelTimeout:r}}const e1={prefix:Math.floor(Math.random()*1e4),current:0},l4=Symbol("elIdInjection"),ZM=()=>it()?Le(l4,e1):e1,xu=e=>{const t=ZM(),r=Dy();return k(()=>T(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let Xo=[];const t1=e=>{const t=e;t.key===hr.esc&&Xo.forEach(r=>r(t))},u4=e=>{_t(()=>{Xo.length===0&&document.addEventListener("keydown",t1),At&&Xo.push(e)}),tr(()=>{Xo=Xo.filter(t=>t!==e),Xo.length===0&&At&&document.removeEventListener("keydown",t1)})};let r1;const QM=()=>{const e=Dy(),t=ZM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},f4=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},c4=()=>{const{id:e,selector:t}=QM();return eh(()=>{At&&!r1&&!document.body.querySelector(t.value)&&(r1=f4(e.value))}),{id:e,selector:t}},d4=Je({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),h4=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Jb(),{registerTimeout:o,cancelTimeout:s}=Jb();return{onOpen:f=>{a(()=>{n(f);const c=T(r);kt(c)&&c>0&&o(()=>{i(f)},c)},T(e))},onClose:f=>{s(),a(()=>{i(f)},T(t))}}},JM=Symbol("elForwardRef"),v4=e=>{Dt(JM,{setForwardRef:r=>{e.value=r}})},p4=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),n1=$(0),eA=2e3,tA=Symbol("zIndexContextKey"),zy=e=>{const t=e||(it()?Le(tA,void 0):void 0),r=k(()=>{const a=T(t);return kt(a)?a:eA}),n=k(()=>r.value+n1.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(n1.value++,n.value)}},dh=fh({type:String,values:$s,required:!1}),rA=Symbol("size"),g4=()=>{const e=Le(rA,{});return k(()=>T(e.size)||"")},nA=Symbol(),gd=$();function hh(e,t=void 0){const r=it()?Le(nA,gd):gd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function m4(e,t){const r=hh(),n=Oe(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Bl})),i=Hs(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=zy(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||eA})),o=k(()=>{var s;return T(t)||((s=r.value)==null?void 0:s.size)||""});return y4(k(()=>T(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const y4=(e,t,r=!1)=>{var n;const i=!!it(),a=i?hh():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?Dt:void 0;if(!o)return;const s=k(()=>{const l=T(e);return a!=null&&a.value?_4(a.value,l):l});return o(nA,s),o(kM,k(()=>s.value.locale)),o(NM,k(()=>s.value.namespace)),o(tA,k(()=>s.value.zIndex)),o(rA,{size:k(()=>s.value.size||"")}),(r||!gd.value)&&(gd.value=s.value),s},_4=(e,t)=>{var r;const n=[...new Set([...Vb(e),...Vb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},i1={};var Ke=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const b4=Je({size:{type:Be([Number,String])},color:{type:String}}),w4=ie({name:"ElIcon",inheritAttrs:!1}),S4=ie({...w4,props:b4,setup(e){const t=e,r=Oe("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:bs(i)?void 0:Zn(i),"--color":a}});return(i,a)=>(G(),ce("i",ei({class:T(r).b(),style:T(n)},i.$attrs),[Ce(i.$slots,"default")],16))}});var x4=Ke(S4,[["__file","icon.vue"]]);const Bt=Yt(x4),zs=Symbol("formContextKey"),yo=Symbol("formItemContextKey"),xi=(e,t={})=>{const r=$(void 0),n=t.prop?r:FM("size"),i=t.global?r:g4(),a=t.form?{size:void 0}:Le(zs,void 0),o=t.formItem?{size:void 0}:Le(yo,void 0);return k(()=>n.value||T(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},vh=e=>{const t=FM("disabled"),r=Le(zs,void 0);return k(()=>t.value||T(e)||(r==null?void 0:r.disabled)||!1)},tf=()=>{const e=Le(zs,void 0),t=Le(yo,void 0);return{form:e,formItem:t}},Vy=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=$(!1)),n||(n=$(!1));const i=$();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return _t(()=>{a=be([wn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:xu().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),ks(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},C4=Je({size:{type:String,values:$s},disabled:Boolean}),T4=Je({...C4,model:Object,rules:{type:Be(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),M4={validate:(e,t,r)=>(_e(e)||ze(e))&&zr(t)&&ze(r)};function A4(){const e=$([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const Tf=(e,t)=>{const r=Jp(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},P4="ElForm",E4=ie({name:P4}),L4=ie({...E4,props:T4,emits:M4,setup(e,{expose:t,emit:r}){const n=e,i=[],a=xi(),o=Oe("form"),s=k(()=>{const{labelPosition:_,inline:b}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${_}`)]:_,[o.m("inline")]:b}]}),l=_=>i.find(b=>b.prop===_),u=_=>{i.push(_)},f=_=>{_.prop&&i.splice(i.indexOf(_),1)},c=(_=[])=>{n.model&&Tf(i,_).forEach(b=>b.resetField())},h=(_=[])=>{Tf(i,_).forEach(b=>b.clearValidate())},d=k(()=>!!n.model),v=_=>{if(i.length===0)return[];const b=Tf(i,_);return b.length?b:[]},p=async _=>g(void 0,_),m=async(_=[])=>{if(!d.value)return!1;const b=v(_);if(b.length===0)return!0;let x={};for(const w of b)try{await w.validate("")}catch(S){x={...x,...S}}return Object.keys(x).length===0?!0:Promise.reject(x)},g=async(_=[],b)=>{const x=!De(b);try{const w=await m(_);return w===!0&&(b==null||b(w)),w}catch(w){if(w instanceof Error)throw w;const S=w;return n.scrollToError&&y(Object.keys(S)[0]),b==null||b(!1,S),x&&Promise.reject(S)}},y=_=>{var b;const x=Tf(i,_)[0];x&&((b=x.$el)==null||b.scrollIntoView(n.scrollIntoViewOptions))};return be(()=>n.rules,()=>{n.validateOnRuleChange&&p().catch(_=>void 0)},{deep:!0}),Dt(zs,Ln({...Kd(n),emit:r,resetFields:c,clearValidate:h,validateField:g,getField:l,addField:u,removeField:f,...A4()})),t({validate:p,validateField:g,resetFields:c,clearValidate:h,scrollToField:y}),(_,b)=>(G(),ce("form",{class:re(T(s))},[Ce(_.$slots,"default")],2))}});var D4=Ke(L4,[["__file","form.vue"]]);function Qa(){return Qa=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Oc(e,t,r){return O4()?Oc=Reflect.construct.bind():Oc=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&Cu(u,o.prototype),u},Oc.apply(null,arguments)}function R4(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function cg(e){var t=typeof Map=="function"?new Map:void 0;return cg=function(n){if(n===null||!R4(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Oc(n,arguments,fg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Cu(i,n)},cg(e)}var k4=/%[sdj%]/g,N4=function(){};function dg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function Fr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function B4(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Ut(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||B4(t)&&typeof e=="string"&&!e)}function F4(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function a1(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,st in e?DD(e,t,{enumerable:!0,config (?:`+n+":){1}(?:(?::"+n+"){0,4}:"+r+"|(?::"+n+`){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4 (?::(?:(?::`+n+"){0,5}:"+r+"|(?::"+n+`){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4 )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1 -`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",f="(?:\\S+(?::\\S*)?@)?",c=l.v4().source,h=l.v6().source,d="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",m="(?::\\d{2,5})?",g='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+f+"(?:localhost|"+c+"|"+h+"|"+d+v+p+")"+m+g;return Mf=new RegExp("(?:^"+y+"$)","i"),Mf},u1={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},xl={integer:function(t){return xl.number(t)&&parseInt(t,10)===t},float:function(t){return xl.number(t)&&!xl.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 typeof t=="object"&&!xl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(u1.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(G4())},hex:function(t){return typeof t=="string"&&!!t.match(u1.hex)}},U4=function(t,r,n,i,a){if(t.required&&r===void 0){iA(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?xl[s](r)||i.push(Fr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(Fr(a.messages.types[s],t.fullField,t.type))},Y4=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=r,c=null,h=typeof r=="number",d=typeof r=="string",v=Array.isArray(r);if(h?c="number":d?c="string":v&&(c="array"),!c)return!1;v&&(f=r.length),d&&(f=r.replace(u,"_").length),o?f!==t.len&&i.push(Fr(a.messages[c].len,t.fullField,t.len)):s&&!l&&ft.max?i.push(Fr(a.messages[c].max,t.fullField,t.max)):s&&l&&(ft.max)&&i.push(Fr(a.messages[c].range,t.fullField,t.min,t.max))},Io="enum",j4=function(t,r,n,i,a){t[Io]=Array.isArray(t[Io])?t[Io]:[],t[Io].indexOf(r)===-1&&i.push(Fr(a.messages[Io],t.fullField,t[Io].join(", ")))},q4=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(Fr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(Fr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Xe={required:iA,whitespace:W4,type:U4,range:Y4,enum:j4,pattern:q4},K4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"string")&&!t.required)return n();Xe.required(t,r,i,o,a,"string"),Ut(r,"string")||(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a),Xe.pattern(t,r,i,o,a),t.whitespace===!0&&Xe.whitespace(t,r,i,o,a))}n(o)},X4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},Z4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},Q4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},J4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),Ut(r)||Xe.type(t,r,i,o,a)}n(o)},eH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},tH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},rH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Xe.required(t,r,i,o,a,"array"),r!=null&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},nH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},iH="enum",aH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe[iH](t,r,i,o,a)}n(o)},oH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"string")&&!t.required)return n();Xe.required(t,r,i,o,a),Ut(r,"string")||Xe.pattern(t,r,i,o,a)}n(o)},sH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"date")&&!t.required)return n();if(Xe.required(t,r,i,o,a),!Ut(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Xe.type(t,l,i,o,a),l&&Xe.range(t,l.getTime(),i,o,a)}}n(o)},lH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Xe.required(t,r,i,o,a,s),n(o)},nv=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(Ut(r,o)&&!t.required)return n();Xe.required(t,r,i,s,a,o),Ut(r,o)||Xe.type(t,r,i,s,a)}n(s)},uH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a)}n(o)},Hl={string:K4,method:X4,number:Z4,boolean:Q4,regexp:J4,integer:eH,float:tH,array:rH,object:nH,enum:aH,pattern:oH,date:sH,url:nv,hex:nv,email:nv,required:lH,any:uH};function hg(){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 vg=hg(),rf=function(){function e(r){this.rules=null,this._messages=vg,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=l1(hg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function f(p){var m=[],g={};function y(b){if(Array.isArray(b)){var x;m=(x=m).concat.apply(x,b)}else m.push(b)}for(var _=0;_");const i=Oe("form"),a=$(),o=$(0),s=()=>{var f;if((f=a.value)!=null&&f.firstElementChild){const c=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(c))}else return 0},l=(f="update")=>{kt(()=>{t.default&&e.isAutoWidth&&(f==="update"?o.value=s():f==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return _t(()=>{u()}),tr(()=>{l("remove")}),Uu(()=>u()),we(o,(f,c)=>{e.updateAll&&(r==null||r.registerLabelWidth(f,c))}),ps(k(()=>{var f,c;return(c=(f=a.value)==null?void 0:f.firstElementChild)!=null?c:null}),u),()=>{var f,c;if(!t)return null;const{isAutoWidth:h}=e;if(h){const d=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&d&&d!=="auto"){const m=Math.max(0,Number.parseInt(d,10)-o.value),g=r.labelPosition==="left"?"marginRight":"marginLeft";m&&(p[g]=`${m}px`)}return Z("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(f=t.default)==null?void 0:f.call(t)])}else return Z(ft,{ref:a},[(c=t.default)==null?void 0:c.call(t)])}}});const hH=["role","aria-labelledby"],vH=ie({name:"ElFormItem"}),pH=ie({...vH,props:cH,setup(e,{expose:t}){const r=e,n=Rs(),i=Le($s,void 0),a=Le(yo,void 0),o=xi(void 0,{formItem:!1}),s=Oe("form-item"),l=xu().value,u=$([]),f=$(""),c=pR(f,100),h=$(""),d=$();let v,p=!1;const m=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const B=Zn(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return B?{width:B}:{}}),g=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const B=Zn(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:B}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",f.value==="error"),s.is("validating",f.value==="validating"),s.is("success",f.value==="success"),s.is("required",O.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>zr(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=k(()=>r.prop?ze(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),S=k(()=>r.for||(u.value.length===1?u.value[0]:void 0)),C=k(()=>!S.value&&w.value),M=!!a,A=k(()=>{const B=i==null?void 0:i.model;if(!(!B||!r.prop))return Ec(B,r.prop).value}),P=k(()=>{const{required:B}=r,Y=[];r.rules&&Y.push(...Jp(r.rules));const K=i==null?void 0:i.rules;if(K&&r.prop){const Q=Ec(K,r.prop).value;Q&&Y.push(...Jp(Q))}if(B!==void 0){const Q=Y.map((oe,pe)=>[oe,pe]).filter(([oe])=>Object.keys(oe).includes("required"));if(Q.length>0)for(const[oe,pe]of Q)oe.required!==B&&(Y[pe]={...oe,required:B});else Y.push({required:B})}return Y}),E=k(()=>P.value.length>0),L=B=>P.value.filter(K=>!K.trigger||!B?!0:Array.isArray(K.trigger)?K.trigger.includes(B):K.trigger===B).map(({trigger:K,...Q})=>Q),O=k(()=>P.value.some(B=>B.required)),N=k(()=>{var B;return c.value==="error"&&r.showMessage&&((B=i==null?void 0:i.showMessage)!=null?B:!0)}),H=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),V=B=>{f.value=B},U=B=>{var Y,K;const{errors:Q,fields:oe}=B;(!Q||!oe)&&console.error(B),V("error"),h.value=Q?(K=(Y=Q==null?void 0:Q[0])==null?void 0:Y.message)!=null?K:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,h.value)},F=()=>{V("success"),i==null||i.emit("validate",r.prop,!0,"")},z=async B=>{const Y=x.value;return new rf({[Y]:B}).validate({[Y]:A.value},{firstFields:!0}).then(()=>(F(),!0)).catch(Q=>(U(Q),Promise.reject(Q)))},te=async(B,Y)=>{if(p||!r.prop)return!1;const K=De(Y);if(!E.value)return Y==null||Y(!1),!1;const Q=L(B);return Q.length===0?(Y==null||Y(!0),!0):(V("validating"),z(Q).then(()=>(Y==null||Y(!0),!0)).catch(oe=>{const{fields:pe}=oe;return Y==null||Y(!1,pe),K?!1:Promise.reject(pe)}))},J=()=>{V(""),h.value="",p=!1},me=async()=>{const B=i==null?void 0:i.model;if(!B||!r.prop)return;const Y=Ec(B,r.prop);p=!0,Y.value=Bb(v),await kt(),J(),p=!1},Se=B=>{u.value.includes(B)||u.value.push(B)},$e=B=>{u.value=u.value.filter(Y=>Y!==B)};we(()=>r.error,B=>{h.value=B||"",V(B?"error":"")},{immediate:!0}),we(()=>r.validateStatus,B=>V(B||""));const Ie=Ln({...Kd(r),$el:d,size:o,validateState:f,labelId:l,inputIds:u,isGroup:C,hasLabel:w,fieldValue:A,addInputId:Se,removeInputId:$e,resetField:me,clearValidate:J,validate:te});return Dt(yo,Ie),_t(()=>{r.prop&&(i==null||i.addField(Ie),v=Bb(A.value))}),tr(()=>{i==null||i.removeField(Ie)}),t({size:o,validateMessage:h,validateState:f,validate:te,clearValidate:J,resetField:me}),(B,Y)=>{var K;return G(),ce("div",{ref_key:"formItemRef",ref:d,class:re(T(y)),role:T(C)?"group":void 0,"aria-labelledby":T(C)?T(l):void 0},[Z(T(dH),{"is-auto-width":T(m).width==="auto","update-all":((K=T(i))==null?void 0:K.labelWidth)==="auto"},{default:j(()=>[T(w)?(G(),de(Vt(T(S)?"label":"div"),{key:0,id:T(l),for:T(S),class:re(T(s).e("label")),style:ct(T(m))},{default:j(()=>[Ce(B.$slots,"label",{label:T(H)},()=>[mt(be(T(H)),1)])]),_:3},8,["id","for","class","style"])):Ae("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),ee("div",{class:re(T(s).e("content")),style:ct(T(g))},[Ce(B.$slots,"default"),Z(KO,{name:`${T(s).namespace.value}-zoom-in-top`},{default:j(()=>[T(N)?Ce(B.$slots,"error",{key:0,error:h.value},()=>[ee("div",{class:re(T(b))},be(h.value),3)]):Ae("v-if",!0)]),_:3},8,["name"])],6)],10,hH)}}});var aA=Ke(pH,[["__file","form-item.vue"]]);const oA=Yt(D4,{FormItem:aA}),sA=pa(aA),Qo=4,gH={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},mH=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),lA=Symbol("scrollbarContextKey"),yH=Je({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),_H="Thumb",bH=ie({__name:"thumb",props:yH,setup(e){const t=e,r=Le(lA),n=Oe("scrollbar");r||bi(_H,"can not inject scrollbar context");const i=$(),a=$(),o=$({}),s=$(!1);let l=!1,u=!1,f=At?document.onselectstart:null;const c=k(()=>gH[t.vertical?"vertical":"horizontal"]),h=k(()=>mH({size:t.size,move:t.move,bar:c.value})),d=k(()=>i.value[c.value.offset]**2/r.wrapElement[c.value.scrollSize]/t.ratio/a.value[c.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),m(w);const C=w.currentTarget;C&&(o.value[c.value.axis]=C[c.value.offset]-(w[c.value.client]-C.getBoundingClientRect()[c.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[c.value.direction]-w[c.value.client]),C=a.value[c.value.offset]/2,M=(S-C)*100*d.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=M*r.wrapElement[c.value.scrollSize]/100},m=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",g),document.addEventListener("mouseup",y),f=document.onselectstart,document.onselectstart=()=>!1},g=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[c.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[c.value.direction]-w[c.value.client])*-1,M=a.value[c.value.offset]-S,A=(C-M)*100*d.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=A*r.wrapElement[c.value.scrollSize]/100},y=()=>{l=!1,o.value[c.value.axis]=0,document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};tr(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==f&&(document.onselectstart=f)};return xn(wn(r,"scrollbarElement"),"mousemove",_),xn(wn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(G(),de(ti,{name:T(n).b("fade"),persisted:""},{default:j(()=>[qt(ee("div",{ref_key:"instance",ref:i,class:re([T(n).e("bar"),T(n).is(T(c).key)]),onMousedown:p},[ee("div",{ref_key:"thumb",ref:a,class:re(T(n).e("thumb")),style:ct(T(h)),onMousedown:v},null,38)],34),[[Kn,w.always||s.value]])]),_:1},8,["name"]))}});var c1=Ke(bH,[["__file","thumb.vue"]]);const wH=Je({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),SH=ie({__name:"bar",props:wH,setup(e,{expose:t}){const r=e,n=$(0),i=$(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-Qo,l=o.offsetWidth-Qo;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(G(),ce(ft,null,[Z(c1,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),Z(c1,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var xH=Ke(SH,[["__file","bar.vue"]]);const CH=Je({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Be([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),TH={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Rt)},MH="ElScrollbar",AH=ie({name:MH}),PH=ie({...AH,props:CH,emits:TH,setup(e,{expose:t,emit:r}){const n=e,i=Oe("scrollbar");let a,o;const s=$(),l=$(),u=$(),f=$("0"),c=$("0"),h=$(),d=$(1),v=$(1),p=k(()=>{const S={};return n.height&&(S.height=Zn(n.height)),n.maxHeight&&(S.maxHeight=Zn(n.maxHeight)),[n.wrapStyle,S]}),m=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),g=k(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=h.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){qe(S)?l.value.scrollTo(S):Rt(S)&&Rt(C)&&l.value.scrollTo(S,C)}const b=S=>{Rt(S)&&(l.value.scrollTop=S)},x=S=>{Rt(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-Qo,C=l.value.offsetWidth-Qo,M=S**2/l.value.scrollHeight,A=C**2/l.value.scrollWidth,P=Math.max(M,n.minSize),E=Math.max(A,n.minSize);d.value=M/(S-M)/(P/(S-P)),v.value=A/(C-A)/(E/(C-E)),c.value=P+Qon.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=ps(u,w),o=xn("resize",w))},{immediate:!0}),we(()=>[n.maxHeight,n.height],()=>{n.native||kt(()=>{var S;w(),l.value&&((S=h.value)==null||S.handleScroll(l.value))})}),Dt(lA,Ln({scrollbarElement:s,wrapElement:l})),_t(()=>{n.native||kt(()=>{w()})}),Uu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(G(),ce("div",{ref_key:"scrollbarRef",ref:s,class:re(T(i).b())},[ee("div",{ref_key:"wrapRef",ref:l,class:re(T(m)),style:ct(T(p)),onScroll:y},[(G(),de(Vt(S.tag),{id:S.id,ref_key:"resizeRef",ref:u,class:re(T(g)),style:ct(S.viewStyle),role:S.role,"aria-label":S.ariaLabel,"aria-orientation":S.ariaOrientation},{default:j(()=>[Ce(S.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),S.native?Ae("v-if",!0):(G(),de(xH,{key:0,ref_key:"barRef",ref:h,height:c.value,width:f.value,always:S.always,"ratio-x":v.value,"ratio-y":d.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var EH=Ke(PH,[["__file","scrollbar.vue"]]);const uA=Yt(EH),Wy=Symbol("popper"),fA=Symbol("popperContent"),LH=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],cA=Je({role:{type:String,values:LH,default:"tooltip"}}),DH=ie({name:"ElPopper",inheritAttrs:!1}),IH=ie({...DH,props:cA,setup(e,{expose:t}){const r=e,n=$(),i=$(),a=$(),o=$(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),Dt(Wy,l),(u,f)=>Ce(u.$slots,"default")}});var OH=Ke(IH,[["__file","popper.vue"]]);const dA=Je({arrowOffset:{type:Number,default:5}}),RH=ie({name:"ElPopperArrow",inheritAttrs:!1}),kH=ie({...RH,props:dA,setup(e,{expose:t}){const r=e,n=Oe("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Le(fA,void 0);return we(()=>r.arrowOffset,s=>{i.value=s}),tr(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(G(),ce("span",{ref_key:"arrowRef",ref:a,class:re(T(n).e("arrow")),style:ct(T(o)),"data-popper-arrow":""},null,6))}});var NH=Ke(kH,[["__file","arrow.vue"]]);const BH="ElOnlyChild",FH=ie({name:BH,setup(e,{slots:t,attrs:r}){var n;const i=Le(JM),a=p4((n=i==null?void 0:i.setForwardRef)!=null?n:Bt);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=hA(s);return l?qt(_i(l,r),[[a]]):null}}});function hA(e){if(!e)return null;const t=e;for(const r of t){if(qe(r))switch(r.type){case Mr:continue;case ks:case"svg":return d1(r);case ft:return hA(r.children);default:return r}return d1(r)}return null}function d1(e){const t=Oe("only-child");return Z("span",{class:t.e("content")},[e])}const vA=Je({virtualRef:{type:Be(Object)},virtualTriggering:Boolean,onMouseenter:{type:Be(Function)},onMouseleave:{type:Be(Function)},onClick:{type:Be(Function)},onKeydown:{type:Be(Function)},onFocus:{type:Be(Function)},onBlur:{type:Be(Function)},onContextmenu:{type:Be(Function)},id:String,open:Boolean}),$H=ie({name:"ElPopperTrigger",inheritAttrs:!1}),HH=ie({...$H,props:vA,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Le(Wy,void 0);v4(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return _t(()=>{we(()=>r.virtualRef,f=>{f&&(i.value=Zi(f))},{immediate:!0}),we(i,(f,c)=>{u==null||u(),u=void 0,mo(f)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(h=>{var d;const v=r[h];v&&(f.addEventListener(h.slice(2).toLowerCase(),v),(d=c==null?void 0:c.removeEventListener)==null||d.call(c,h.slice(2).toLowerCase(),v))}),u=we([a,o,s,l],h=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((d,v)=>{ms(h[v])?f.removeAttribute(d):f.setAttribute(d,h[v])})},{immediate:!0})),mo(c)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(h=>c.removeAttribute(h))},{immediate:!0})}),tr(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(f,c)=>f.virtualTriggering?Ae("v-if",!0):(G(),de(T(FH),ei({key:0},f.$attrs,{"aria-controls":T(a),"aria-describedby":T(o),"aria-expanded":T(l),"aria-haspopup":T(s)}),{default:j(()=>[Ce(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var zH=Ke(HH,[["__file","trigger.vue"]]);const iv="focus-trap.focus-after-trapped",av="focus-trap.focus-after-released",VH="focus-trap.focusout-prevented",h1={cancelable:!0,bubbles:!1},WH={cancelable:!0,bubbles:!1},v1="focusAfterTrapped",p1="focusAfterReleased",pA=Symbol("elFocusTrap"),Gy=$(),ph=$(0),Uy=$(0);let Af=0;const gA=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},g1=(e,t)=>{for(const r of e)if(!GH(r,t))return r},GH=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},UH=e=>{const t=gA(e),r=g1(t,e),n=g1(t.reverse(),e);return[r,n]},YH=e=>e instanceof HTMLInputElement&&"select"in e,Vi=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Uy.value=window.performance.now(),e!==r&&YH(e)&&t&&e.select()}};function m1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const jH=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=m1(e,n),e.unshift(n)},remove:n=>{var i,a;e=m1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},qH=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(Vi(n,t),document.activeElement!==r)return},y1=jH(),KH=()=>ph.value>Uy.value,Pf=()=>{Gy.value="pointer",ph.value=window.performance.now()},_1=()=>{Gy.value="keyboard",ph.value=window.performance.now()},XH=()=>(_t(()=>{Af===0&&(document.addEventListener("mousedown",Pf),document.addEventListener("touchstart",Pf),document.addEventListener("keydown",_1)),Af++}),tr(()=>{Af--,Af<=0&&(document.removeEventListener("mousedown",Pf),document.removeEventListener("touchstart",Pf),document.removeEventListener("keydown",_1))}),{focusReason:Gy,lastUserFocusTimestamp:ph,lastAutomatedFocusTimestamp:Uy}),Ef=e=>new CustomEvent(VH,{...WH,detail:e}),ZH=ie({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[v1,p1,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=$();let n,i;const{focusReason:a}=XH();u4(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:m,ctrlKey:g,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===hr.tab&&!m&&!g&&!y,S=document.activeElement;if(w&&S){const C=_,[M,A]=UH(C);if(M&&A){if(!b&&S===A){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||(v.preventDefault(),x&&Vi(M,!0))}else if(b&&[M,C].includes(S)){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||(v.preventDefault(),x&&Vi(A,!0))}}else if(S===C){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||v.preventDefault()}}};Dt(pA,{focusTrapRef:r,onKeydown:s}),we(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),we([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",f),v.addEventListener("focusout",c)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",f),p.removeEventListener("focusout",c))});const l=v=>{t(v1,v)},u=v=>t(p1,v),f=v=>{const p=T(r);if(!p)return;const m=v.target,g=v.relatedTarget,y=m&&p.contains(m);e.trapped||g&&p.contains(g)||(n=g),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=m:Vi(i,!0))},c=v=>{const p=T(r);if(!(o.paused||!p))if(e.trapped){const m=v.relatedTarget;!ms(m)&&!p.contains(m)&&setTimeout(()=>{if(!o.paused&&e.trapped){const g=Ef({focusReason:a.value});t("focusout-prevented",g),g.defaultPrevented||Vi(i,!0)}},0)}else{const m=v.target;m&&p.contains(m)||t("focusout",v)}};async function h(){await kt();const v=T(r);if(v){y1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const g=new Event(iv,h1);v.addEventListener(iv,l),v.dispatchEvent(g),g.defaultPrevented||kt(()=>{let y=e.focusStartEl;ze(y)||(Vi(y),document.activeElement!==y&&(y="first")),y==="first"&&qH(gA(v),!0),(document.activeElement===p||y==="container")&&Vi(v)})}}}function d(){const v=T(r);if(v){v.removeEventListener(iv,l);const p=new CustomEvent(av,{...h1,detail:{focusReason:a.value}});v.addEventListener(av,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!KH()||v.contains(document.activeElement))&&Vi(n??document.body),v.removeEventListener(av,u),y1.remove(o)}}return _t(()=>{e.trapped&&h(),we(()=>e.trapped,v=>{v?h():d()})}),tr(()=>{e.trapped&&d()}),{onKeydown:s}}});function QH(e,t,r,n,i,a){return Ce(e.$slots,"default",{handleKeydown:e.onKeydown})}var mA=Ke(ZH,[["render",QH],["__file","focus-trap.vue"]]);const JH=["fixed","absolute"],ez=Je({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Be(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:Oy,default:"bottom"},popperOptions:{type:Be(Object),default:()=>({})},strategy:{type:String,values:JH,default:"absolute"}}),yA=Je({...ez,id:String,style:{type:Be([String,Array,Object])},className:{type:Be([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Be([String,Array,Object])},popperStyle:{type:Be([String,Array,Object])},referenceEl:{type:Be(Object)},triggerTargetEl:{type:Be(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),tz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},rz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...iz(e),...t]};return az(a,i==null?void 0:i.modifiers),a},nz=e=>{if(At)return Zi(e)};function iz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function az(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const oz=0,sz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Le(Wy,void 0),a=$(),o=$(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var g;const y=T(a),_=(g=T(o))!=null?g:oz;return{name:"arrow",enabled:!MM(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...rz(e,[T(l),T(s)])})),f=k(()=>nz(e.referenceEl)||T(n)),{attributes:c,state:h,styles:d,update:v,forceUpdate:p,instanceRef:m}=o4(f,r,u);return we(m,g=>t.value=g),_t(()=>{we(()=>{var g;return(g=T(f))==null?void 0:g.getBoundingClientRect()},()=>{v()})}),{attributes:c,arrowRef:a,contentRef:r,instanceRef:m,state:h,styles:d,role:i,forceUpdate:p,update:v}},lz=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=zy(),a=Oe("popper"),o=k(()=>T(t).popper),s=$(Rt(e.zIndex)?e.zIndex:i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:T(s)},T(r).popper,e.popperStyle||{}]),f=k(()=>n.value==="dialog"?"false":void 0),c=k(()=>T(r).arrow||{});return{ariaModal:f,arrowStyle:c,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=Rt(e.zIndex)?e.zIndex:i()}}},uz=(e,t)=>{const r=$(!1),n=$();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var f;((f=u.detail)==null?void 0:f.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},fz=ie({name:"ElPopperContent"}),cz=ie({...fz,props:yA,emits:tz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:f}=uz(n,r),{attributes:c,arrowRef:h,contentRef:d,styles:v,instanceRef:p,role:m,update:g}=sz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:x,contentStyle:w,updateZIndex:S}=lz(n,{styles:v,attributes:c,role:m}),C=Le(yo,void 0),M=$();Dt(fA,{arrowStyle:_,arrowRef:h,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&Dt(yo,{...C,addInputId:Bt,removeInputId:Bt});let A;const P=(L=!0)=>{g(),L&&S()},E=()=>{P(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return _t(()=>{we(()=>n.triggerTargetEl,(L,O)=>{A==null||A(),A=void 0;const N=T(L||d.value),H=T(O||d.value);mo(N)&&(A=we([m,()=>n.ariaLabel,y,()=>n.id],V=>{["role","aria-label","aria-modal","id"].forEach((U,F)=>{ms(V[F])?N.removeAttribute(U):N.setAttribute(U,V[F])})},{immediate:!0})),H!==N&&mo(H)&&["role","aria-label","aria-modal","id"].forEach(V=>{H.removeAttribute(V)})},{immediate:!0}),we(()=>n.visible,E,{immediate:!0})}),tr(()=>{A==null||A(),A=void 0}),t({popperContentRef:d,popperInstanceRef:p,updatePopper:P,contentStyle:w}),(L,O)=>(G(),ce("div",ei({ref_key:"contentRef",ref:d},T(b),{style:T(w),class:T(x),tabindex:"-1",onMouseenter:O[0]||(O[0]=N=>L.$emit("mouseenter",N)),onMouseleave:O[1]||(O[1]=N=>L.$emit("mouseleave",N))}),[Z(T(mA),{trapped:T(a),"trap-on-focus-in":!0,"focus-trap-el":T(d),"focus-start-el":T(i),onFocusAfterTrapped:T(s),onFocusAfterReleased:T(o),onFocusin:T(l),onFocusoutPrevented:T(u),onReleaseRequested:T(f)},{default:j(()=>[Ce(L.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var dz=Ke(cz,[["__file","content.vue"]]);const hz=Yt(OH),Yy=Symbol("elTooltip"),md=Je({...d4,...yA,appendTo:{type:Be([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Be(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),_A=Je({...vA,disabled:Boolean,trigger:{type:Be([String,Array]),default:"hover"},triggerKeys:{type:Be(Array),default:()=>[hr.enter,hr.space]}}),{useModelToggleProps:vz,useModelToggleEmits:pz,useModelToggle:gz}=BM("visible"),mz=Je({...cA,...vz,...md,..._A,...dA,showArrow:{type:Boolean,default:!0}}),yz=[...pz,"before-show","before-hide","show","hide","open","close"],_z=(e,t)=>_e(e)?e.includes(t):e===t,Oo=(e,t,r)=>n=>{_z(T(e),t)&&r(n)},bz=ie({name:"ElTooltipTrigger"}),wz=ie({...bz,props:_A,setup(e,{expose:t}){const r=e,n=Oe("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Le(Yy,void 0),f=$(null),c=()=>{if(T(i)||r.disabled)return!0},h=wn(r,"trigger"),d=di(c,Oo(h,"hover",s)),v=di(c,Oo(h,"hover",l)),p=di(c,Oo(h,"click",b=>{b.button===0&&u(b)})),m=di(c,Oo(h,"focus",s)),g=di(c,Oo(h,"focus",l)),y=di(c,Oo(h,"contextmenu",b=>{b.preventDefault(),u(b)})),_=di(c,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:f}),(b,x)=>(G(),de(T(zH),{id:T(a),"virtual-ref":b.virtualRef,open:T(o),"virtual-triggering":b.virtualTriggering,class:re(T(n).e("trigger")),onBlur:T(g),onClick:T(p),onContextmenu:T(y),onFocus:T(m),onMouseenter:T(d),onMouseleave:T(v),onKeydown:T(_)},{default:j(()=>[Ce(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var Sz=Ke(wz,[["__file","trigger.vue"]]);const xz=ie({name:"ElTooltipContent",inheritAttrs:!1}),Cz=ie({...xz,props:md,setup(e,{expose:t}){const r=e,{selector:n}=QM(),i=Oe("tooltip"),a=$(null),o=$(!1),{controlled:s,id:l,open:u,trigger:f,onClose:c,onOpen:h,onShow:d,onHide:v,onBeforeShow:p,onBeforeHide:m}=Le(Yy,void 0),g=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);tr(()=>{o.value=!0});const _=k(()=>T(y)?!0:T(u)),b=k(()=>r.disabled?!1:T(u)),x=k(()=>r.appendTo||n.value),w=k(()=>{var V;return(V=r.style)!=null?V:{}}),S=k(()=>!T(u)),C=()=>{v()},M=()=>{if(T(s))return!0},A=di(M,()=>{r.enterable&&T(f)==="hover"&&h()}),P=di(M,()=>{T(f)==="hover"&&c()}),E=()=>{var V,U;(U=(V=a.value)==null?void 0:V.updatePopper)==null||U.call(V),p==null||p()},L=()=>{m==null||m()},O=()=>{d(),H=ER(k(()=>{var V;return(V=a.value)==null?void 0:V.popperContentRef}),()=>{if(T(s))return;T(f)!=="hover"&&c()})},N=()=>{r.virtualTriggering||c()};let H;return we(()=>T(u),V=>{V||H==null||H()},{flush:"post"}),we(()=>r.content,()=>{var V,U;(U=(V=a.value)==null?void 0:V.updatePopper)==null||U.call(V)}),t({contentRef:a}),(V,U)=>(G(),de(MT,{disabled:!V.teleported,to:T(x)},[Z(ti,{name:T(g),onAfterLeave:C,onBeforeEnter:E,onAfterEnter:O,onBeforeLeave:L},{default:j(()=>[T(_)?qt((G(),de(T(dz),ei({key:0,id:T(l),ref_key:"contentRef",ref:a},V.$attrs,{"aria-label":V.ariaLabel,"aria-hidden":T(S),"boundaries-padding":V.boundariesPadding,"fallback-placements":V.fallbackPlacements,"gpu-acceleration":V.gpuAcceleration,offset:V.offset,placement:V.placement,"popper-options":V.popperOptions,strategy:V.strategy,effect:V.effect,enterable:V.enterable,pure:V.pure,"popper-class":V.popperClass,"popper-style":[V.popperStyle,T(w)],"reference-el":V.referenceEl,"trigger-target-el":V.triggerTargetEl,visible:T(b),"z-index":V.zIndex,onMouseenter:T(A),onMouseleave:T(P),onBlur:N,onClose:T(c)}),{default:j(()=>[o.value?Ae("v-if",!0):Ce(V.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Kn,T(b)]]):Ae("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var Tz=Ke(Cz,[["__file","content.vue"]]);const Mz=["innerHTML"],Az={key:1},Pz=ie({name:"ElTooltip"}),Ez=ie({...Pz,props:mz,emits:yz,setup(e,{expose:t,emit:r}){const n=e;c4();const i=xu(),a=$(),o=$(),s=()=>{var g;const y=T(a);y&&((g=y.popperInstanceRef)==null||g.update())},l=$(!1),u=$(),{show:f,hide:c,hasUpdateHandler:h}=gz({indicator:l,toggleReason:u}),{onOpen:d,onClose:v}=h4({showAfter:wn(n,"showAfter"),hideAfter:wn(n,"hideAfter"),autoClose:wn(n,"autoClose"),open:f,close:c}),p=k(()=>zr(n.visible)&&!h.value);Dt(Yy,{controlled:p,id:i,open:Gu(l),trigger:wn(n,"trigger"),onOpen:g=>{d(g)},onClose:g=>{v(g)},onToggle:g=>{T(l)?v(g):d(g)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),we(()=>n.disabled,g=>{g&&l.value&&(l.value=!1)});const m=g=>{var y,_;const b=(_=(y=o.value)==null?void 0:y.contentRef)==null?void 0:_.popperContentRef,x=(g==null?void 0:g.relatedTarget)||document.activeElement;return b&&b.contains(x)};return pT(()=>l.value&&c()),t({popperRef:a,contentRef:o,isFocusInsideContent:m,updatePopper:s,onOpen:d,onClose:v,hide:c}),(g,y)=>(G(),de(T(hz),{ref_key:"popperRef",ref:a,role:g.role},{default:j(()=>[Z(Sz,{disabled:g.disabled,trigger:g.trigger,"trigger-keys":g.triggerKeys,"virtual-ref":g.virtualRef,"virtual-triggering":g.virtualTriggering},{default:j(()=>[g.$slots.default?Ce(g.$slots,"default",{key:0}):Ae("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),Z(Tz,{ref_key:"contentRef",ref:o,"aria-label":g.ariaLabel,"boundaries-padding":g.boundariesPadding,content:g.content,disabled:g.disabled,effect:g.effect,enterable:g.enterable,"fallback-placements":g.fallbackPlacements,"hide-after":g.hideAfter,"gpu-acceleration":g.gpuAcceleration,offset:g.offset,persistent:g.persistent,"popper-class":g.popperClass,"popper-style":g.popperStyle,placement:g.placement,"popper-options":g.popperOptions,pure:g.pure,"raw-content":g.rawContent,"reference-el":g.referenceEl,"trigger-target-el":g.triggerTargetEl,"show-after":g.showAfter,strategy:g.strategy,teleported:g.teleported,transition:g.transition,"virtual-triggering":g.virtualTriggering,"z-index":g.zIndex,"append-to":g.appendTo},{default:j(()=>[Ce(g.$slots,"content",{},()=>[g.rawContent?(G(),ce("span",{key:0,innerHTML:g.content},null,8,Mz)):(G(),ce("span",Az,be(g.content),1))]),g.showArrow?(G(),de(T(NH),{key:0,"arrow-offset":g.arrowOffset},null,8,["arrow-offset"])):Ae("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var Lz=Ke(Ez,[["__file","tooltip.vue"]]);const Hs=Yt(Lz),Dz=Je({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),Iz=["textContent"],Oz=ie({name:"ElBadge"}),Rz=ie({...Oz,props:Dz,setup(e,{expose:t}){const r=e,n=Oe("badge"),i=k(()=>r.isDot?"":Rt(r.value)&&Rt(r.max)?r.max(G(),ce("div",{class:re(T(n).b())},[Ce(a.$slots,"default"),Z(ti,{name:`${T(n).namespace.value}-zoom-in-center`,persisted:""},{default:j(()=>[qt(ee("sup",{class:re([T(n).e("content"),T(n).em("content",a.type),T(n).is("fixed",!!a.$slots.default),T(n).is("dot",a.isDot)]),textContent:be(T(i))},null,10,Iz),[[Kn,!a.hidden&&(T(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var kz=Ke(Rz,[["__file","badge.vue"]]);const Nz=Yt(kz),bA=Symbol("buttonGroupContextKey"),Bz=(e,t)=>{bu({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Le(bA,void 0),n=hh("button"),{form:i}=tf(),a=xi(k(()=>r==null?void 0:r.size)),o=vh(),s=$(),l=Rs(),u=k(()=>e.type||(r==null?void 0:r.type)||""),f=k(()=>{var v,p,m;return(m=(p=e.autoInsertSpace)!=null?p:(v=n.value)==null?void 0:v.autoInsertSpace)!=null?m:!1}),c=k(()=>e.tag==="button"?{ariaDisabled:o.value||e.loading,disabled:o.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=k(()=>{var v;const p=(v=l.default)==null?void 0:v.call(l);if(f.value&&(p==null?void 0:p.length)===1){const m=p[0];if((m==null?void 0:m.type)===ks){const g=m.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,_props:c,shouldAddSpace:h,handleClick:v=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",v)}}},pg=["default","primary","success","warning","info","danger","text",""],Fz=["button","submit","reset"],gg=Je({size:dh,disabled:Boolean,type:{type:String,values:pg,default:""},icon:{type:vr},nativeType:{type:String,values:Fz,default:"button"},loading:Boolean,loadingIcon:{type:vr,default:()=>Ly},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:Be([String,Object]),default:"button"}}),$z={click:e=>e instanceof MouseEvent};function er(e,t){Hz(e)&&(e="100%");var r=zz(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Lf(e){return Math.min(1,Math.max(0,e))}function Hz(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function zz(e){return typeof e=="string"&&e.indexOf("%")!==-1}function wA(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Df(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ja(e){return e.length===1?"0"+e:String(e)}function Vz(e,t,r){return{r:er(e,255)*255,g:er(t,255)*255,b:er(r,255)*255}}function b1(e,t,r){e=er(e,255),t=er(t,255),r=er(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function Wz(e,t,r){var n,i,a;if(e=er(e,360),t=er(t,100),r=er(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=ov(s,o,e+1/3),i=ov(s,o,e),a=ov(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function w1(e,t,r){e=er(e,255),t=er(t,255),r=er(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var mg={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function qz(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=Zz(e)),typeof e=="object"&&(si(e.r)&&si(e.g)&&si(e.b)?(t=Vz(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):si(e.h)&&si(e.s)&&si(e.v)?(n=Df(e.s),i=Df(e.v),t=Gz(e.h,n,i),o=!0,s="hsv"):si(e.h)&&si(e.s)&&si(e.l)&&(n=Df(e.s),a=Df(e.l),t=Wz(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=wA(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var Kz="[-\\+]?\\d+%?",Xz="[-\\+]?\\d*\\.\\d+%?",Qi="(?:".concat(Xz,")|(?:").concat(Kz,")"),sv="[\\s|\\(]+(".concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")\\s*\\)?"),lv="[\\s|\\(]+(".concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")\\s*\\)?"),gn={CSS_UNIT:new RegExp(Qi),rgb:new RegExp("rgb"+sv),rgba:new RegExp("rgba"+lv),hsl:new RegExp("hsl"+sv),hsla:new RegExp("hsla"+lv),hsv:new RegExp("hsv"+sv),hsva:new RegExp("hsva"+lv),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Zz(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(mg[e])e=mg[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=gn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=gn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=gn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=gn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=gn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=gn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=gn.hex8.exec(e),r?{r:kr(r[1]),g:kr(r[2]),b:kr(r[3]),a:x1(r[4]),format:t?"name":"hex8"}:(r=gn.hex6.exec(e),r?{r:kr(r[1]),g:kr(r[2]),b:kr(r[3]),format:t?"name":"hex"}:(r=gn.hex4.exec(e),r?{r:kr(r[1]+r[1]),g:kr(r[2]+r[2]),b:kr(r[3]+r[3]),a:x1(r[4]+r[4]),format:t?"name":"hex8"}:(r=gn.hex3.exec(e),r?{r:kr(r[1]+r[1]),g:kr(r[2]+r[2]),b:kr(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function si(e){return!!gn.CSS_UNIT.exec(String(e))}var SA=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=jz(t)),this.originalInput=t;var i=qz(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=wA(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=w1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=w1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=b1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=b1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),S1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),Uz(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(er(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(er(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+S1(this.r,this.g,this.b,!1),r=0,n=Object.entries(mg);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=Lf(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=Lf(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=Lf(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=Lf(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new SA(i),o=e.dark?a.tint(20).toString():Oi(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Oi(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Oi(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Oi(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Oi(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Oi(a,80):a.tint(80).toString());else{const s=e.dark?Oi(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Oi(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const Jz=ie({name:"ElButton"}),e8=ie({...Jz,props:gg,emits:$z,setup(e,{expose:t,emit:r}){const n=e,i=Qz(n),a=Oe("button"),{_ref:o,_size:s,_type:l,_disabled:u,_props:f,shouldAddSpace:c,handleClick:h}=Bz(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,v)=>(G(),de(Vt(d.tag),ei({ref_key:"_ref",ref:o},T(f),{class:[T(a).b(),T(a).m(T(l)),T(a).m(T(s)),T(a).is("disabled",T(u)),T(a).is("loading",d.loading),T(a).is("plain",d.plain),T(a).is("round",d.round),T(a).is("circle",d.circle),T(a).is("text",d.text),T(a).is("link",d.link),T(a).is("has-bg",d.bg)],style:T(i),onClick:T(h)}),{default:j(()=>[d.loading?(G(),ce(ft,{key:0},[d.$slots.loading?Ce(d.$slots,"loading",{key:0}):(G(),de(T(Nt),{key:1,class:re(T(a).is("loading"))},{default:j(()=>[(G(),de(Vt(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(G(),de(T(Nt),{key:1},{default:j(()=>[d.icon?(G(),de(Vt(d.icon),{key:0})):Ce(d.$slots,"icon",{key:1})]),_:3})):Ae("v-if",!0),d.$slots.default?(G(),ce("span",{key:2,class:re({[T(a).em("text","expand")]:T(c)})},[Ce(d.$slots,"default")],2)):Ae("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var t8=Ke(e8,[["__file","button.vue"]]);const r8={size:gg.size,type:gg.type},n8=ie({name:"ElButtonGroup"}),i8=ie({...n8,props:r8,setup(e){const t=e;Dt(bA,Ln({size:wn(t,"size"),type:wn(t,"type")}));const r=Oe("button");return(n,i)=>(G(),ce("div",{class:re(`${T(r).b("group")}`)},[Ce(n.$slots,"default")],2))}});var xA=Ke(i8,[["__file","button-group.vue"]]);const yg=Yt(t8,{ButtonGroup:xA});pa(xA);var a8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Wi=new Map;let C1;At&&(document.addEventListener("mousedown",e=>C1=e),document.addEventListener("mouseup",e=>{for(const t of Wi.values())for(const{documentHandler:r}of t)r(e,C1)}));function T1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:mo(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,f=e.contains(o)||e.contains(s),c=e===o,h=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),d=a&&(a.contains(o)||a.contains(s));l||u||f||c||h||d||t.value(n,i)}}const CA={beforeMount(e,t){Wi.has(e)||Wi.set(e,[]),Wi.get(e).push({documentHandler:T1(e,t),bindingFn:t.value})},updated(e,t){Wi.has(e)||Wi.set(e,[]);const r=Wi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:T1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Wi.delete(e)}};var M1=!1,qa,_g,bg,Rc,kc,TA,Nc,wg,Sg,xg,MA,Cg,Tg,AA,PA;function yr(){if(!M1){M1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Cg=/\b(iPhone|iP[ao]d)/.exec(e),Tg=/\b(iP[ao]d)/.exec(e),xg=/Android/i.exec(e),AA=/FBAN\/\w+;/i.exec(e),PA=/Mobile/i.exec(e),MA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);TA=n?parseFloat(n[1])+4:qa,_g=t[2]?parseFloat(t[2]):NaN,bg=t[3]?parseFloat(t[3]):NaN,Rc=t[4]?parseFloat(t[4]):NaN,Rc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),kc=t&&t[1]?parseFloat(t[1]):NaN):kc=NaN}else qa=_g=bg=kc=Rc=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Nc=i?parseFloat(i[1].replace("_",".")):!0}else Nc=!1;wg=!!r[2],Sg=!!r[3]}else Nc=wg=Sg=!1}}var Mg={ie:function(){return yr()||qa},ieCompatibilityMode:function(){return yr()||TA>qa},ie64:function(){return Mg.ie()&&MA},firefox:function(){return yr()||_g},opera:function(){return yr()||bg},webkit:function(){return yr()||Rc},safari:function(){return Mg.webkit()},chrome:function(){return yr()||kc},windows:function(){return yr()||wg},osx:function(){return yr()||Nc},linux:function(){return yr()||Sg},iphone:function(){return yr()||Cg},mobile:function(){return yr()||Cg||Tg||xg||PA},nativeApp:function(){return yr()||AA},android:function(){return yr()||xg},ipad:function(){return yr()||Tg}},o8=Mg,If=!!(typeof window<"u"&&window.document&&window.document.createElement),s8={canUseDOM:If,canUseWorkers:typeof Worker<"u",canUseEventListeners:If&&!!(window.addEventListener||window.attachEvent),canUseViewport:If&&!!window.screen,isInWorker:!If},EA=s8,LA;EA.canUseDOM&&(LA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function l8(e,t){if(!EA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&LA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var u8=l8,A1=10,P1=40,E1=800;function DA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*A1,i=r*A1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=P1,i*=P1):(n*=E1,i*=E1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}DA.getEventType=function(){return o8.firefox()?"DOMMouseScroll":u8("wheel")?"wheel":"mousewheel"};var f8=DA;/** +`).replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new RegExp("(?:^"+r+"$)|(?:^"+i+"$)"),o=new RegExp("^"+r+"$"),s=new RegExp("^"+i+"$"),l=function(b){return b&&b.exact?a:new RegExp("(?:"+t(b)+r+t(b)+")|(?:"+t(b)+i+t(b)+")","g")};l.v4=function(_){return _&&_.exact?o:new RegExp(""+t(_)+r+t(_),"g")},l.v6=function(_){return _&&_.exact?s:new RegExp(""+t(_)+i+t(_),"g")};var u="(?:(?:[a-z]+:)?//)",f="(?:\\S+(?::\\S*)?@)?",c=l.v4().source,h=l.v6().source,d="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",v="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",p="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",m="(?::\\d{2,5})?",g='(?:[/?#][^\\s"]*)?',y="(?:"+u+"|www\\.)"+f+"(?:localhost|"+c+"|"+h+"|"+d+v+p+")"+m+g;return Mf=new RegExp("(?:^"+y+"$)","i"),Mf},u1={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},xl={integer:function(t){return xl.number(t)&&parseInt(t,10)===t},float:function(t){return xl.number(t)&&!xl.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 typeof t=="object"&&!xl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(u1.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(G4())},hex:function(t){return typeof t=="string"&&!!t.match(u1.hex)}},U4=function(t,r,n,i,a){if(t.required&&r===void 0){iA(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?xl[s](r)||i.push(Fr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(Fr(a.messages.types[s],t.fullField,t.type))},Y4=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=r,c=null,h=typeof r=="number",d=typeof r=="string",v=Array.isArray(r);if(h?c="number":d?c="string":v&&(c="array"),!c)return!1;v&&(f=r.length),d&&(f=r.replace(u,"_").length),o?f!==t.len&&i.push(Fr(a.messages[c].len,t.fullField,t.len)):s&&!l&&ft.max?i.push(Fr(a.messages[c].max,t.fullField,t.max)):s&&l&&(ft.max)&&i.push(Fr(a.messages[c].range,t.fullField,t.min,t.max))},Ro="enum",j4=function(t,r,n,i,a){t[Ro]=Array.isArray(t[Ro])?t[Ro]:[],t[Ro].indexOf(r)===-1&&i.push(Fr(a.messages[Ro],t.fullField,t[Ro].join(", ")))},q4=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(Fr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(Fr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Xe={required:iA,whitespace:W4,type:U4,range:Y4,enum:j4,pattern:q4},K4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"string")&&!t.required)return n();Xe.required(t,r,i,o,a,"string"),Ut(r,"string")||(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a),Xe.pattern(t,r,i,o,a),t.whitespace===!0&&Xe.whitespace(t,r,i,o,a))}n(o)},X4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},Z4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},Q4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},J4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),Ut(r)||Xe.type(t,r,i,o,a)}n(o)},eH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},tH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},rH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Xe.required(t,r,i,o,a,"array"),r!=null&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},nH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},iH="enum",aH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe[iH](t,r,i,o,a)}n(o)},oH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"string")&&!t.required)return n();Xe.required(t,r,i,o,a),Ut(r,"string")||Xe.pattern(t,r,i,o,a)}n(o)},sH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"date")&&!t.required)return n();if(Xe.required(t,r,i,o,a),!Ut(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Xe.type(t,l,i,o,a),l&&Xe.range(t,l.getTime(),i,o,a)}}n(o)},lH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Xe.required(t,r,i,o,a,s),n(o)},nv=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(Ut(r,o)&&!t.required)return n();Xe.required(t,r,i,s,a,o),Ut(r,o)||Xe.type(t,r,i,s,a)}n(s)},uH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a)}n(o)},Hl={string:K4,method:X4,number:Z4,boolean:Q4,regexp:J4,integer:eH,float:tH,array:rH,object:nH,enum:aH,pattern:oH,date:sH,url:nv,hex:nv,email:nv,required:lH,any:uH};function hg(){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 vg=hg(),rf=function(){function e(r){this.rules=null,this._messages=vg,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=l1(hg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function f(p){var m=[],g={};function y(b){if(Array.isArray(b)){var x;m=(x=m).concat.apply(x,b)}else m.push(b)}for(var _=0;_");const i=Oe("form"),a=$(),o=$(0),s=()=>{var f;if((f=a.value)!=null&&f.firstElementChild){const c=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(c))}else return 0},l=(f="update")=>{Nt(()=>{t.default&&e.isAutoWidth&&(f==="update"?o.value=s():f==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return _t(()=>{u()}),tr(()=>{l("remove")}),Uu(()=>u()),be(o,(f,c)=>{e.updateAll&&(r==null||r.registerLabelWidth(f,c))}),ms(k(()=>{var f,c;return(c=(f=a.value)==null?void 0:f.firstElementChild)!=null?c:null}),u),()=>{var f,c;if(!t)return null;const{isAutoWidth:h}=e;if(h){const d=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&d&&d!=="auto"){const m=Math.max(0,Number.parseInt(d,10)-o.value),g=r.labelPosition==="left"?"marginRight":"marginLeft";m&&(p[g]=`${m}px`)}return Z("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(f=t.default)==null?void 0:f.call(t)])}else return Z(ft,{ref:a},[(c=t.default)==null?void 0:c.call(t)])}}});const hH=["role","aria-labelledby"],vH=ie({name:"ElFormItem"}),pH=ie({...vH,props:cH,setup(e,{expose:t}){const r=e,n=Ns(),i=Le(zs,void 0),a=Le(yo,void 0),o=xi(void 0,{formItem:!1}),s=Oe("form-item"),l=xu().value,u=$([]),f=$(""),c=pR(f,100),h=$(""),d=$();let v,p=!1;const m=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const B=Zn(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return B?{width:B}:{}}),g=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const B=Zn(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:B}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",f.value==="error"),s.is("validating",f.value==="validating"),s.is("success",f.value==="success"),s.is("required",O.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>zr(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=k(()=>r.prop?ze(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),S=k(()=>r.for||(u.value.length===1?u.value[0]:void 0)),C=k(()=>!S.value&&w.value),M=!!a,A=k(()=>{const B=i==null?void 0:i.model;if(!(!B||!r.prop))return Ec(B,r.prop).value}),P=k(()=>{const{required:B}=r,Y=[];r.rules&&Y.push(...Jp(r.rules));const K=i==null?void 0:i.rules;if(K&&r.prop){const Q=Ec(K,r.prop).value;Q&&Y.push(...Jp(Q))}if(B!==void 0){const Q=Y.map((oe,pe)=>[oe,pe]).filter(([oe])=>Object.keys(oe).includes("required"));if(Q.length>0)for(const[oe,pe]of Q)oe.required!==B&&(Y[pe]={...oe,required:B});else Y.push({required:B})}return Y}),E=k(()=>P.value.length>0),L=B=>P.value.filter(K=>!K.trigger||!B?!0:Array.isArray(K.trigger)?K.trigger.includes(B):K.trigger===B).map(({trigger:K,...Q})=>Q),O=k(()=>P.value.some(B=>B.required)),N=k(()=>{var B;return c.value==="error"&&r.showMessage&&((B=i==null?void 0:i.showMessage)!=null?B:!0)}),H=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),V=B=>{f.value=B},U=B=>{var Y,K;const{errors:Q,fields:oe}=B;(!Q||!oe)&&console.error(B),V("error"),h.value=Q?(K=(Y=Q==null?void 0:Q[0])==null?void 0:Y.message)!=null?K:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,h.value)},F=()=>{V("success"),i==null||i.emit("validate",r.prop,!0,"")},z=async B=>{const Y=x.value;return new rf({[Y]:B}).validate({[Y]:A.value},{firstFields:!0}).then(()=>(F(),!0)).catch(Q=>(U(Q),Promise.reject(Q)))},ee=async(B,Y)=>{if(p||!r.prop)return!1;const K=De(Y);if(!E.value)return Y==null||Y(!1),!1;const Q=L(B);return Q.length===0?(Y==null||Y(!0),!0):(V("validating"),z(Q).then(()=>(Y==null||Y(!0),!0)).catch(oe=>{const{fields:pe}=oe;return Y==null||Y(!1,pe),K?!1:Promise.reject(pe)}))},J=()=>{V(""),h.value="",p=!1},me=async()=>{const B=i==null?void 0:i.model;if(!B||!r.prop)return;const Y=Ec(B,r.prop);p=!0,Y.value=Bb(v),await Nt(),J(),p=!1},we=B=>{u.value.includes(B)||u.value.push(B)},$e=B=>{u.value=u.value.filter(Y=>Y!==B)};be(()=>r.error,B=>{h.value=B||"",V(B?"error":"")},{immediate:!0}),be(()=>r.validateStatus,B=>V(B||""));const Ie=Ln({...Kd(r),$el:d,size:o,validateState:f,labelId:l,inputIds:u,isGroup:C,hasLabel:w,fieldValue:A,addInputId:we,removeInputId:$e,resetField:me,clearValidate:J,validate:ee});return Dt(yo,Ie),_t(()=>{r.prop&&(i==null||i.addField(Ie),v=Bb(A.value))}),tr(()=>{i==null||i.removeField(Ie)}),t({size:o,validateMessage:h,validateState:f,validate:ee,clearValidate:J,resetField:me}),(B,Y)=>{var K;return G(),ce("div",{ref_key:"formItemRef",ref:d,class:re(T(y)),role:T(C)?"group":void 0,"aria-labelledby":T(C)?T(l):void 0},[Z(T(dH),{"is-auto-width":T(m).width==="auto","update-all":((K=T(i))==null?void 0:K.labelWidth)==="auto"},{default:q(()=>[T(w)?(G(),ve(Vt(T(S)?"label":"div"),{key:0,id:T(l),for:T(S),class:re(T(s).e("label")),style:ct(T(m))},{default:q(()=>[Ce(B.$slots,"label",{label:T(H)},()=>[pt(xe(T(H)),1)])]),_:3},8,["id","for","class","style"])):Ae("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),te("div",{class:re(T(s).e("content")),style:ct(T(g))},[Ce(B.$slots,"default"),Z(KO,{name:`${T(s).namespace.value}-zoom-in-top`},{default:q(()=>[T(N)?Ce(B.$slots,"error",{key:0,error:h.value},()=>[te("div",{class:re(T(b))},xe(h.value),3)]):Ae("v-if",!0)]),_:3},8,["name"])],6)],10,hH)}}});var aA=Ke(pH,[["__file","form-item.vue"]]);const oA=Yt(D4,{FormItem:aA}),sA=pa(aA),es=4,gH={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},mH=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),lA=Symbol("scrollbarContextKey"),yH=Je({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),_H="Thumb",bH=ie({__name:"thumb",props:yH,setup(e){const t=e,r=Le(lA),n=Oe("scrollbar");r||bi(_H,"can not inject scrollbar context");const i=$(),a=$(),o=$({}),s=$(!1);let l=!1,u=!1,f=At?document.onselectstart:null;const c=k(()=>gH[t.vertical?"vertical":"horizontal"]),h=k(()=>mH({size:t.size,move:t.move,bar:c.value})),d=k(()=>i.value[c.value.offset]**2/r.wrapElement[c.value.scrollSize]/t.ratio/a.value[c.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),m(w);const C=w.currentTarget;C&&(o.value[c.value.axis]=C[c.value.offset]-(w[c.value.client]-C.getBoundingClientRect()[c.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[c.value.direction]-w[c.value.client]),C=a.value[c.value.offset]/2,M=(S-C)*100*d.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=M*r.wrapElement[c.value.scrollSize]/100},m=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",g),document.addEventListener("mouseup",y),f=document.onselectstart,document.onselectstart=()=>!1},g=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[c.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[c.value.direction]-w[c.value.client])*-1,M=a.value[c.value.offset]-S,A=(C-M)*100*d.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=A*r.wrapElement[c.value.scrollSize]/100},y=()=>{l=!1,o.value[c.value.axis]=0,document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};tr(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==f&&(document.onselectstart=f)};return xn(wn(r,"scrollbarElement"),"mousemove",_),xn(wn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(G(),ve(ti,{name:T(n).b("fade"),persisted:""},{default:q(()=>[qt(te("div",{ref_key:"instance",ref:i,class:re([T(n).e("bar"),T(n).is(T(c).key)]),onMousedown:p},[te("div",{ref_key:"thumb",ref:a,class:re(T(n).e("thumb")),style:ct(T(h)),onMousedown:v},null,38)],34),[[Kn,w.always||s.value]])]),_:1},8,["name"]))}});var c1=Ke(bH,[["__file","thumb.vue"]]);const wH=Je({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),SH=ie({__name:"bar",props:wH,setup(e,{expose:t}){const r=e,n=$(0),i=$(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-es,l=o.offsetWidth-es;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(G(),ce(ft,null,[Z(c1,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),Z(c1,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var xH=Ke(SH,[["__file","bar.vue"]]);const CH=Je({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Be([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),TH={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(kt)},MH="ElScrollbar",AH=ie({name:MH}),PH=ie({...AH,props:CH,emits:TH,setup(e,{expose:t,emit:r}){const n=e,i=Oe("scrollbar");let a,o;const s=$(),l=$(),u=$(),f=$("0"),c=$("0"),h=$(),d=$(1),v=$(1),p=k(()=>{const S={};return n.height&&(S.height=Zn(n.height)),n.maxHeight&&(S.maxHeight=Zn(n.maxHeight)),[n.wrapStyle,S]}),m=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),g=k(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=h.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){qe(S)?l.value.scrollTo(S):kt(S)&&kt(C)&&l.value.scrollTo(S,C)}const b=S=>{kt(S)&&(l.value.scrollTop=S)},x=S=>{kt(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-es,C=l.value.offsetWidth-es,M=S**2/l.value.scrollHeight,A=C**2/l.value.scrollWidth,P=Math.max(M,n.minSize),E=Math.max(A,n.minSize);d.value=M/(S-M)/(P/(S-P)),v.value=A/(C-A)/(E/(C-E)),c.value=P+esn.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=ms(u,w),o=xn("resize",w))},{immediate:!0}),be(()=>[n.maxHeight,n.height],()=>{n.native||Nt(()=>{var S;w(),l.value&&((S=h.value)==null||S.handleScroll(l.value))})}),Dt(lA,Ln({scrollbarElement:s,wrapElement:l})),_t(()=>{n.native||Nt(()=>{w()})}),Uu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(G(),ce("div",{ref_key:"scrollbarRef",ref:s,class:re(T(i).b())},[te("div",{ref_key:"wrapRef",ref:l,class:re(T(m)),style:ct(T(p)),onScroll:y},[(G(),ve(Vt(S.tag),{id:S.id,ref_key:"resizeRef",ref:u,class:re(T(g)),style:ct(S.viewStyle),role:S.role,"aria-label":S.ariaLabel,"aria-orientation":S.ariaOrientation},{default:q(()=>[Ce(S.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),S.native?Ae("v-if",!0):(G(),ve(xH,{key:0,ref_key:"barRef",ref:h,height:c.value,width:f.value,always:S.always,"ratio-x":v.value,"ratio-y":d.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var EH=Ke(PH,[["__file","scrollbar.vue"]]);const uA=Yt(EH),Wy=Symbol("popper"),fA=Symbol("popperContent"),LH=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],cA=Je({role:{type:String,values:LH,default:"tooltip"}}),DH=ie({name:"ElPopper",inheritAttrs:!1}),IH=ie({...DH,props:cA,setup(e,{expose:t}){const r=e,n=$(),i=$(),a=$(),o=$(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),Dt(Wy,l),(u,f)=>Ce(u.$slots,"default")}});var OH=Ke(IH,[["__file","popper.vue"]]);const dA=Je({arrowOffset:{type:Number,default:5}}),RH=ie({name:"ElPopperArrow",inheritAttrs:!1}),kH=ie({...RH,props:dA,setup(e,{expose:t}){const r=e,n=Oe("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Le(fA,void 0);return be(()=>r.arrowOffset,s=>{i.value=s}),tr(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(G(),ce("span",{ref_key:"arrowRef",ref:a,class:re(T(n).e("arrow")),style:ct(T(o)),"data-popper-arrow":""},null,6))}});var NH=Ke(kH,[["__file","arrow.vue"]]);const BH="ElOnlyChild",FH=ie({name:BH,setup(e,{slots:t,attrs:r}){var n;const i=Le(JM),a=p4((n=i==null?void 0:i.setForwardRef)!=null?n:Ft);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=hA(s);return l?qt(_i(l,r),[[a]]):null}}});function hA(e){if(!e)return null;const t=e;for(const r of t){if(qe(r))switch(r.type){case Mr:continue;case Bs:case"svg":return d1(r);case ft:return hA(r.children);default:return r}return d1(r)}return null}function d1(e){const t=Oe("only-child");return Z("span",{class:t.e("content")},[e])}const vA=Je({virtualRef:{type:Be(Object)},virtualTriggering:Boolean,onMouseenter:{type:Be(Function)},onMouseleave:{type:Be(Function)},onClick:{type:Be(Function)},onKeydown:{type:Be(Function)},onFocus:{type:Be(Function)},onBlur:{type:Be(Function)},onContextmenu:{type:Be(Function)},id:String,open:Boolean}),$H=ie({name:"ElPopperTrigger",inheritAttrs:!1}),HH=ie({...$H,props:vA,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Le(Wy,void 0);v4(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return _t(()=>{be(()=>r.virtualRef,f=>{f&&(i.value=Zi(f))},{immediate:!0}),be(i,(f,c)=>{u==null||u(),u=void 0,mo(f)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(h=>{var d;const v=r[h];v&&(f.addEventListener(h.slice(2).toLowerCase(),v),(d=c==null?void 0:c.removeEventListener)==null||d.call(c,h.slice(2).toLowerCase(),v))}),u=be([a,o,s,l],h=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((d,v)=>{_s(h[v])?f.removeAttribute(d):f.setAttribute(d,h[v])})},{immediate:!0})),mo(c)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(h=>c.removeAttribute(h))},{immediate:!0})}),tr(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(f,c)=>f.virtualTriggering?Ae("v-if",!0):(G(),ve(T(FH),ei({key:0},f.$attrs,{"aria-controls":T(a),"aria-describedby":T(o),"aria-expanded":T(l),"aria-haspopup":T(s)}),{default:q(()=>[Ce(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var zH=Ke(HH,[["__file","trigger.vue"]]);const iv="focus-trap.focus-after-trapped",av="focus-trap.focus-after-released",VH="focus-trap.focusout-prevented",h1={cancelable:!0,bubbles:!1},WH={cancelable:!0,bubbles:!1},v1="focusAfterTrapped",p1="focusAfterReleased",pA=Symbol("elFocusTrap"),Gy=$(),ph=$(0),Uy=$(0);let Af=0;const gA=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},g1=(e,t)=>{for(const r of e)if(!GH(r,t))return r},GH=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},UH=e=>{const t=gA(e),r=g1(t,e),n=g1(t.reverse(),e);return[r,n]},YH=e=>e instanceof HTMLInputElement&&"select"in e,Vi=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Uy.value=window.performance.now(),e!==r&&YH(e)&&t&&e.select()}};function m1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const jH=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=m1(e,n),e.unshift(n)},remove:n=>{var i,a;e=m1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},qH=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(Vi(n,t),document.activeElement!==r)return},y1=jH(),KH=()=>ph.value>Uy.value,Pf=()=>{Gy.value="pointer",ph.value=window.performance.now()},_1=()=>{Gy.value="keyboard",ph.value=window.performance.now()},XH=()=>(_t(()=>{Af===0&&(document.addEventListener("mousedown",Pf),document.addEventListener("touchstart",Pf),document.addEventListener("keydown",_1)),Af++}),tr(()=>{Af--,Af<=0&&(document.removeEventListener("mousedown",Pf),document.removeEventListener("touchstart",Pf),document.removeEventListener("keydown",_1))}),{focusReason:Gy,lastUserFocusTimestamp:ph,lastAutomatedFocusTimestamp:Uy}),Ef=e=>new CustomEvent(VH,{...WH,detail:e}),ZH=ie({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[v1,p1,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=$();let n,i;const{focusReason:a}=XH();u4(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:m,ctrlKey:g,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===hr.tab&&!m&&!g&&!y,S=document.activeElement;if(w&&S){const C=_,[M,A]=UH(C);if(M&&A){if(!b&&S===A){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||(v.preventDefault(),x&&Vi(M,!0))}else if(b&&[M,C].includes(S)){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||(v.preventDefault(),x&&Vi(A,!0))}}else if(S===C){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||v.preventDefault()}}};Dt(pA,{focusTrapRef:r,onKeydown:s}),be(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),be([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",f),v.addEventListener("focusout",c)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",f),p.removeEventListener("focusout",c))});const l=v=>{t(v1,v)},u=v=>t(p1,v),f=v=>{const p=T(r);if(!p)return;const m=v.target,g=v.relatedTarget,y=m&&p.contains(m);e.trapped||g&&p.contains(g)||(n=g),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=m:Vi(i,!0))},c=v=>{const p=T(r);if(!(o.paused||!p))if(e.trapped){const m=v.relatedTarget;!_s(m)&&!p.contains(m)&&setTimeout(()=>{if(!o.paused&&e.trapped){const g=Ef({focusReason:a.value});t("focusout-prevented",g),g.defaultPrevented||Vi(i,!0)}},0)}else{const m=v.target;m&&p.contains(m)||t("focusout",v)}};async function h(){await Nt();const v=T(r);if(v){y1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const g=new Event(iv,h1);v.addEventListener(iv,l),v.dispatchEvent(g),g.defaultPrevented||Nt(()=>{let y=e.focusStartEl;ze(y)||(Vi(y),document.activeElement!==y&&(y="first")),y==="first"&&qH(gA(v),!0),(document.activeElement===p||y==="container")&&Vi(v)})}}}function d(){const v=T(r);if(v){v.removeEventListener(iv,l);const p=new CustomEvent(av,{...h1,detail:{focusReason:a.value}});v.addEventListener(av,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!KH()||v.contains(document.activeElement))&&Vi(n??document.body),v.removeEventListener(av,u),y1.remove(o)}}return _t(()=>{e.trapped&&h(),be(()=>e.trapped,v=>{v?h():d()})}),tr(()=>{e.trapped&&d()}),{onKeydown:s}}});function QH(e,t,r,n,i,a){return Ce(e.$slots,"default",{handleKeydown:e.onKeydown})}var mA=Ke(ZH,[["render",QH],["__file","focus-trap.vue"]]);const JH=["fixed","absolute"],ez=Je({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Be(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:Oy,default:"bottom"},popperOptions:{type:Be(Object),default:()=>({})},strategy:{type:String,values:JH,default:"absolute"}}),yA=Je({...ez,id:String,style:{type:Be([String,Array,Object])},className:{type:Be([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Be([String,Array,Object])},popperStyle:{type:Be([String,Array,Object])},referenceEl:{type:Be(Object)},triggerTargetEl:{type:Be(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),tz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},rz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...iz(e),...t]};return az(a,i==null?void 0:i.modifiers),a},nz=e=>{if(At)return Zi(e)};function iz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function az(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const oz=0,sz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Le(Wy,void 0),a=$(),o=$(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var g;const y=T(a),_=(g=T(o))!=null?g:oz;return{name:"arrow",enabled:!MM(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...rz(e,[T(l),T(s)])})),f=k(()=>nz(e.referenceEl)||T(n)),{attributes:c,state:h,styles:d,update:v,forceUpdate:p,instanceRef:m}=o4(f,r,u);return be(m,g=>t.value=g),_t(()=>{be(()=>{var g;return(g=T(f))==null?void 0:g.getBoundingClientRect()},()=>{v()})}),{attributes:c,arrowRef:a,contentRef:r,instanceRef:m,state:h,styles:d,role:i,forceUpdate:p,update:v}},lz=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=zy(),a=Oe("popper"),o=k(()=>T(t).popper),s=$(kt(e.zIndex)?e.zIndex:i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:T(s)},T(r).popper,e.popperStyle||{}]),f=k(()=>n.value==="dialog"?"false":void 0),c=k(()=>T(r).arrow||{});return{ariaModal:f,arrowStyle:c,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=kt(e.zIndex)?e.zIndex:i()}}},uz=(e,t)=>{const r=$(!1),n=$();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var f;((f=u.detail)==null?void 0:f.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},fz=ie({name:"ElPopperContent"}),cz=ie({...fz,props:yA,emits:tz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:f}=uz(n,r),{attributes:c,arrowRef:h,contentRef:d,styles:v,instanceRef:p,role:m,update:g}=sz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:x,contentStyle:w,updateZIndex:S}=lz(n,{styles:v,attributes:c,role:m}),C=Le(yo,void 0),M=$();Dt(fA,{arrowStyle:_,arrowRef:h,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&Dt(yo,{...C,addInputId:Ft,removeInputId:Ft});let A;const P=(L=!0)=>{g(),L&&S()},E=()=>{P(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return _t(()=>{be(()=>n.triggerTargetEl,(L,O)=>{A==null||A(),A=void 0;const N=T(L||d.value),H=T(O||d.value);mo(N)&&(A=be([m,()=>n.ariaLabel,y,()=>n.id],V=>{["role","aria-label","aria-modal","id"].forEach((U,F)=>{_s(V[F])?N.removeAttribute(U):N.setAttribute(U,V[F])})},{immediate:!0})),H!==N&&mo(H)&&["role","aria-label","aria-modal","id"].forEach(V=>{H.removeAttribute(V)})},{immediate:!0}),be(()=>n.visible,E,{immediate:!0})}),tr(()=>{A==null||A(),A=void 0}),t({popperContentRef:d,popperInstanceRef:p,updatePopper:P,contentStyle:w}),(L,O)=>(G(),ce("div",ei({ref_key:"contentRef",ref:d},T(b),{style:T(w),class:T(x),tabindex:"-1",onMouseenter:O[0]||(O[0]=N=>L.$emit("mouseenter",N)),onMouseleave:O[1]||(O[1]=N=>L.$emit("mouseleave",N))}),[Z(T(mA),{trapped:T(a),"trap-on-focus-in":!0,"focus-trap-el":T(d),"focus-start-el":T(i),onFocusAfterTrapped:T(s),onFocusAfterReleased:T(o),onFocusin:T(l),onFocusoutPrevented:T(u),onReleaseRequested:T(f)},{default:q(()=>[Ce(L.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var dz=Ke(cz,[["__file","content.vue"]]);const hz=Yt(OH),Yy=Symbol("elTooltip"),md=Je({...d4,...yA,appendTo:{type:Be([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Be(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),_A=Je({...vA,disabled:Boolean,trigger:{type:Be([String,Array]),default:"hover"},triggerKeys:{type:Be(Array),default:()=>[hr.enter,hr.space]}}),{useModelToggleProps:vz,useModelToggleEmits:pz,useModelToggle:gz}=BM("visible"),mz=Je({...cA,...vz,...md,..._A,...dA,showArrow:{type:Boolean,default:!0}}),yz=[...pz,"before-show","before-hide","show","hide","open","close"],_z=(e,t)=>_e(e)?e.includes(t):e===t,ko=(e,t,r)=>n=>{_z(T(e),t)&&r(n)},bz=ie({name:"ElTooltipTrigger"}),wz=ie({...bz,props:_A,setup(e,{expose:t}){const r=e,n=Oe("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Le(Yy,void 0),f=$(null),c=()=>{if(T(i)||r.disabled)return!0},h=wn(r,"trigger"),d=di(c,ko(h,"hover",s)),v=di(c,ko(h,"hover",l)),p=di(c,ko(h,"click",b=>{b.button===0&&u(b)})),m=di(c,ko(h,"focus",s)),g=di(c,ko(h,"focus",l)),y=di(c,ko(h,"contextmenu",b=>{b.preventDefault(),u(b)})),_=di(c,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:f}),(b,x)=>(G(),ve(T(zH),{id:T(a),"virtual-ref":b.virtualRef,open:T(o),"virtual-triggering":b.virtualTriggering,class:re(T(n).e("trigger")),onBlur:T(g),onClick:T(p),onContextmenu:T(y),onFocus:T(m),onMouseenter:T(d),onMouseleave:T(v),onKeydown:T(_)},{default:q(()=>[Ce(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var Sz=Ke(wz,[["__file","trigger.vue"]]);const xz=ie({name:"ElTooltipContent",inheritAttrs:!1}),Cz=ie({...xz,props:md,setup(e,{expose:t}){const r=e,{selector:n}=QM(),i=Oe("tooltip"),a=$(null),o=$(!1),{controlled:s,id:l,open:u,trigger:f,onClose:c,onOpen:h,onShow:d,onHide:v,onBeforeShow:p,onBeforeHide:m}=Le(Yy,void 0),g=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);tr(()=>{o.value=!0});const _=k(()=>T(y)?!0:T(u)),b=k(()=>r.disabled?!1:T(u)),x=k(()=>r.appendTo||n.value),w=k(()=>{var V;return(V=r.style)!=null?V:{}}),S=k(()=>!T(u)),C=()=>{v()},M=()=>{if(T(s))return!0},A=di(M,()=>{r.enterable&&T(f)==="hover"&&h()}),P=di(M,()=>{T(f)==="hover"&&c()}),E=()=>{var V,U;(U=(V=a.value)==null?void 0:V.updatePopper)==null||U.call(V),p==null||p()},L=()=>{m==null||m()},O=()=>{d(),H=ER(k(()=>{var V;return(V=a.value)==null?void 0:V.popperContentRef}),()=>{if(T(s))return;T(f)!=="hover"&&c()})},N=()=>{r.virtualTriggering||c()};let H;return be(()=>T(u),V=>{V||H==null||H()},{flush:"post"}),be(()=>r.content,()=>{var V,U;(U=(V=a.value)==null?void 0:V.updatePopper)==null||U.call(V)}),t({contentRef:a}),(V,U)=>(G(),ve(MT,{disabled:!V.teleported,to:T(x)},[Z(ti,{name:T(g),onAfterLeave:C,onBeforeEnter:E,onAfterEnter:O,onBeforeLeave:L},{default:q(()=>[T(_)?qt((G(),ve(T(dz),ei({key:0,id:T(l),ref_key:"contentRef",ref:a},V.$attrs,{"aria-label":V.ariaLabel,"aria-hidden":T(S),"boundaries-padding":V.boundariesPadding,"fallback-placements":V.fallbackPlacements,"gpu-acceleration":V.gpuAcceleration,offset:V.offset,placement:V.placement,"popper-options":V.popperOptions,strategy:V.strategy,effect:V.effect,enterable:V.enterable,pure:V.pure,"popper-class":V.popperClass,"popper-style":[V.popperStyle,T(w)],"reference-el":V.referenceEl,"trigger-target-el":V.triggerTargetEl,visible:T(b),"z-index":V.zIndex,onMouseenter:T(A),onMouseleave:T(P),onBlur:N,onClose:T(c)}),{default:q(()=>[o.value?Ae("v-if",!0):Ce(V.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Kn,T(b)]]):Ae("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var Tz=Ke(Cz,[["__file","content.vue"]]);const Mz=["innerHTML"],Az={key:1},Pz=ie({name:"ElTooltip"}),Ez=ie({...Pz,props:mz,emits:yz,setup(e,{expose:t,emit:r}){const n=e;c4();const i=xu(),a=$(),o=$(),s=()=>{var g;const y=T(a);y&&((g=y.popperInstanceRef)==null||g.update())},l=$(!1),u=$(),{show:f,hide:c,hasUpdateHandler:h}=gz({indicator:l,toggleReason:u}),{onOpen:d,onClose:v}=h4({showAfter:wn(n,"showAfter"),hideAfter:wn(n,"hideAfter"),autoClose:wn(n,"autoClose"),open:f,close:c}),p=k(()=>zr(n.visible)&&!h.value);Dt(Yy,{controlled:p,id:i,open:Gu(l),trigger:wn(n,"trigger"),onOpen:g=>{d(g)},onClose:g=>{v(g)},onToggle:g=>{T(l)?v(g):d(g)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),be(()=>n.disabled,g=>{g&&l.value&&(l.value=!1)});const m=g=>{var y,_;const b=(_=(y=o.value)==null?void 0:y.contentRef)==null?void 0:_.popperContentRef,x=(g==null?void 0:g.relatedTarget)||document.activeElement;return b&&b.contains(x)};return pT(()=>l.value&&c()),t({popperRef:a,contentRef:o,isFocusInsideContent:m,updatePopper:s,onOpen:d,onClose:v,hide:c}),(g,y)=>(G(),ve(T(hz),{ref_key:"popperRef",ref:a,role:g.role},{default:q(()=>[Z(Sz,{disabled:g.disabled,trigger:g.trigger,"trigger-keys":g.triggerKeys,"virtual-ref":g.virtualRef,"virtual-triggering":g.virtualTriggering},{default:q(()=>[g.$slots.default?Ce(g.$slots,"default",{key:0}):Ae("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),Z(Tz,{ref_key:"contentRef",ref:o,"aria-label":g.ariaLabel,"boundaries-padding":g.boundariesPadding,content:g.content,disabled:g.disabled,effect:g.effect,enterable:g.enterable,"fallback-placements":g.fallbackPlacements,"hide-after":g.hideAfter,"gpu-acceleration":g.gpuAcceleration,offset:g.offset,persistent:g.persistent,"popper-class":g.popperClass,"popper-style":g.popperStyle,placement:g.placement,"popper-options":g.popperOptions,pure:g.pure,"raw-content":g.rawContent,"reference-el":g.referenceEl,"trigger-target-el":g.triggerTargetEl,"show-after":g.showAfter,strategy:g.strategy,teleported:g.teleported,transition:g.transition,"virtual-triggering":g.virtualTriggering,"z-index":g.zIndex,"append-to":g.appendTo},{default:q(()=>[Ce(g.$slots,"content",{},()=>[g.rawContent?(G(),ce("span",{key:0,innerHTML:g.content},null,8,Mz)):(G(),ce("span",Az,xe(g.content),1))]),g.showArrow?(G(),ve(T(NH),{key:0,"arrow-offset":g.arrowOffset},null,8,["arrow-offset"])):Ae("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var Lz=Ke(Ez,[["__file","tooltip.vue"]]);const Vs=Yt(Lz),Dz=Je({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),Iz=["textContent"],Oz=ie({name:"ElBadge"}),Rz=ie({...Oz,props:Dz,setup(e,{expose:t}){const r=e,n=Oe("badge"),i=k(()=>r.isDot?"":kt(r.value)&&kt(r.max)?r.max(G(),ce("div",{class:re(T(n).b())},[Ce(a.$slots,"default"),Z(ti,{name:`${T(n).namespace.value}-zoom-in-center`,persisted:""},{default:q(()=>[qt(te("sup",{class:re([T(n).e("content"),T(n).em("content",a.type),T(n).is("fixed",!!a.$slots.default),T(n).is("dot",a.isDot)]),textContent:xe(T(i))},null,10,Iz),[[Kn,!a.hidden&&(T(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var kz=Ke(Rz,[["__file","badge.vue"]]);const Nz=Yt(kz),bA=Symbol("buttonGroupContextKey"),Bz=(e,t)=>{bu({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Le(bA,void 0),n=hh("button"),{form:i}=tf(),a=xi(k(()=>r==null?void 0:r.size)),o=vh(),s=$(),l=Ns(),u=k(()=>e.type||(r==null?void 0:r.type)||""),f=k(()=>{var v,p,m;return(m=(p=e.autoInsertSpace)!=null?p:(v=n.value)==null?void 0:v.autoInsertSpace)!=null?m:!1}),c=k(()=>e.tag==="button"?{ariaDisabled:o.value||e.loading,disabled:o.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=k(()=>{var v;const p=(v=l.default)==null?void 0:v.call(l);if(f.value&&(p==null?void 0:p.length)===1){const m=p[0];if((m==null?void 0:m.type)===Bs){const g=m.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,_props:c,shouldAddSpace:h,handleClick:v=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",v)}}},pg=["default","primary","success","warning","info","danger","text",""],Fz=["button","submit","reset"],gg=Je({size:dh,disabled:Boolean,type:{type:String,values:pg,default:""},icon:{type:vr},nativeType:{type:String,values:Fz,default:"button"},loading:Boolean,loadingIcon:{type:vr,default:()=>Ly},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:Be([String,Object]),default:"button"}}),$z={click:e=>e instanceof MouseEvent};function er(e,t){Hz(e)&&(e="100%");var r=zz(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Lf(e){return Math.min(1,Math.max(0,e))}function Hz(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function zz(e){return typeof e=="string"&&e.indexOf("%")!==-1}function wA(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Df(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ja(e){return e.length===1?"0"+e:String(e)}function Vz(e,t,r){return{r:er(e,255)*255,g:er(t,255)*255,b:er(r,255)*255}}function b1(e,t,r){e=er(e,255),t=er(t,255),r=er(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function Wz(e,t,r){var n,i,a;if(e=er(e,360),t=er(t,100),r=er(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=ov(s,o,e+1/3),i=ov(s,o,e),a=ov(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function w1(e,t,r){e=er(e,255),t=er(t,255),r=er(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var mg={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function qz(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=Zz(e)),typeof e=="object"&&(si(e.r)&&si(e.g)&&si(e.b)?(t=Vz(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):si(e.h)&&si(e.s)&&si(e.v)?(n=Df(e.s),i=Df(e.v),t=Gz(e.h,n,i),o=!0,s="hsv"):si(e.h)&&si(e.s)&&si(e.l)&&(n=Df(e.s),a=Df(e.l),t=Wz(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=wA(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var Kz="[-\\+]?\\d+%?",Xz="[-\\+]?\\d*\\.\\d+%?",Qi="(?:".concat(Xz,")|(?:").concat(Kz,")"),sv="[\\s|\\(]+(".concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")\\s*\\)?"),lv="[\\s|\\(]+(".concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")\\s*\\)?"),gn={CSS_UNIT:new RegExp(Qi),rgb:new RegExp("rgb"+sv),rgba:new RegExp("rgba"+lv),hsl:new RegExp("hsl"+sv),hsla:new RegExp("hsla"+lv),hsv:new RegExp("hsv"+sv),hsva:new RegExp("hsva"+lv),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Zz(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(mg[e])e=mg[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=gn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=gn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=gn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=gn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=gn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=gn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=gn.hex8.exec(e),r?{r:kr(r[1]),g:kr(r[2]),b:kr(r[3]),a:x1(r[4]),format:t?"name":"hex8"}:(r=gn.hex6.exec(e),r?{r:kr(r[1]),g:kr(r[2]),b:kr(r[3]),format:t?"name":"hex"}:(r=gn.hex4.exec(e),r?{r:kr(r[1]+r[1]),g:kr(r[2]+r[2]),b:kr(r[3]+r[3]),a:x1(r[4]+r[4]),format:t?"name":"hex8"}:(r=gn.hex3.exec(e),r?{r:kr(r[1]+r[1]),g:kr(r[2]+r[2]),b:kr(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function si(e){return!!gn.CSS_UNIT.exec(String(e))}var SA=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=jz(t)),this.originalInput=t;var i=qz(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=wA(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=w1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=w1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=b1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=b1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),S1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),Uz(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(er(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(er(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+S1(this.r,this.g,this.b,!1),r=0,n=Object.entries(mg);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=Lf(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=Lf(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=Lf(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=Lf(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new SA(i),o=e.dark?a.tint(20).toString():Oi(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Oi(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Oi(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Oi(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Oi(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Oi(a,80):a.tint(80).toString());else{const s=e.dark?Oi(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Oi(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const Jz=ie({name:"ElButton"}),e8=ie({...Jz,props:gg,emits:$z,setup(e,{expose:t,emit:r}){const n=e,i=Qz(n),a=Oe("button"),{_ref:o,_size:s,_type:l,_disabled:u,_props:f,shouldAddSpace:c,handleClick:h}=Bz(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,v)=>(G(),ve(Vt(d.tag),ei({ref_key:"_ref",ref:o},T(f),{class:[T(a).b(),T(a).m(T(l)),T(a).m(T(s)),T(a).is("disabled",T(u)),T(a).is("loading",d.loading),T(a).is("plain",d.plain),T(a).is("round",d.round),T(a).is("circle",d.circle),T(a).is("text",d.text),T(a).is("link",d.link),T(a).is("has-bg",d.bg)],style:T(i),onClick:T(h)}),{default:q(()=>[d.loading?(G(),ce(ft,{key:0},[d.$slots.loading?Ce(d.$slots,"loading",{key:0}):(G(),ve(T(Bt),{key:1,class:re(T(a).is("loading"))},{default:q(()=>[(G(),ve(Vt(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(G(),ve(T(Bt),{key:1},{default:q(()=>[d.icon?(G(),ve(Vt(d.icon),{key:0})):Ce(d.$slots,"icon",{key:1})]),_:3})):Ae("v-if",!0),d.$slots.default?(G(),ce("span",{key:2,class:re({[T(a).em("text","expand")]:T(c)})},[Ce(d.$slots,"default")],2)):Ae("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var t8=Ke(e8,[["__file","button.vue"]]);const r8={size:gg.size,type:gg.type},n8=ie({name:"ElButtonGroup"}),i8=ie({...n8,props:r8,setup(e){const t=e;Dt(bA,Ln({size:wn(t,"size"),type:wn(t,"type")}));const r=Oe("button");return(n,i)=>(G(),ce("div",{class:re(`${T(r).b("group")}`)},[Ce(n.$slots,"default")],2))}});var xA=Ke(i8,[["__file","button-group.vue"]]);const yg=Yt(t8,{ButtonGroup:xA});pa(xA);var a8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Wi=new Map;let C1;At&&(document.addEventListener("mousedown",e=>C1=e),document.addEventListener("mouseup",e=>{for(const t of Wi.values())for(const{documentHandler:r}of t)r(e,C1)}));function T1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:mo(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,f=e.contains(o)||e.contains(s),c=e===o,h=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),d=a&&(a.contains(o)||a.contains(s));l||u||f||c||h||d||t.value(n,i)}}const CA={beforeMount(e,t){Wi.has(e)||Wi.set(e,[]),Wi.get(e).push({documentHandler:T1(e,t),bindingFn:t.value})},updated(e,t){Wi.has(e)||Wi.set(e,[]);const r=Wi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:T1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Wi.delete(e)}};var M1=!1,qa,_g,bg,Rc,kc,TA,Nc,wg,Sg,xg,MA,Cg,Tg,AA,PA;function yr(){if(!M1){M1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Cg=/\b(iPhone|iP[ao]d)/.exec(e),Tg=/\b(iP[ao]d)/.exec(e),xg=/Android/i.exec(e),AA=/FBAN\/\w+;/i.exec(e),PA=/Mobile/i.exec(e),MA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);TA=n?parseFloat(n[1])+4:qa,_g=t[2]?parseFloat(t[2]):NaN,bg=t[3]?parseFloat(t[3]):NaN,Rc=t[4]?parseFloat(t[4]):NaN,Rc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),kc=t&&t[1]?parseFloat(t[1]):NaN):kc=NaN}else qa=_g=bg=kc=Rc=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Nc=i?parseFloat(i[1].replace("_",".")):!0}else Nc=!1;wg=!!r[2],Sg=!!r[3]}else Nc=wg=Sg=!1}}var Mg={ie:function(){return yr()||qa},ieCompatibilityMode:function(){return yr()||TA>qa},ie64:function(){return Mg.ie()&&MA},firefox:function(){return yr()||_g},opera:function(){return yr()||bg},webkit:function(){return yr()||Rc},safari:function(){return Mg.webkit()},chrome:function(){return yr()||kc},windows:function(){return yr()||wg},osx:function(){return yr()||Nc},linux:function(){return yr()||Sg},iphone:function(){return yr()||Cg},mobile:function(){return yr()||Cg||Tg||xg||PA},nativeApp:function(){return yr()||AA},android:function(){return yr()||xg},ipad:function(){return yr()||Tg}},o8=Mg,If=!!(typeof window<"u"&&window.document&&window.document.createElement),s8={canUseDOM:If,canUseWorkers:typeof Worker<"u",canUseEventListeners:If&&!!(window.addEventListener||window.attachEvent),canUseViewport:If&&!!window.screen,isInWorker:!If},EA=s8,LA;EA.canUseDOM&&(LA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function l8(e,t){if(!EA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&LA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var u8=l8,A1=10,P1=40,E1=800;function DA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*A1,i=r*A1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=P1,i*=P1):(n*=E1,i*=E1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}DA.getEventType=function(){return o8.firefox()?"DOMMouseScroll":u8("wheel")?"wheel":"mousewheel"};var f8=DA;/** * Checks if an event is supported in the current execution environment. * * NOTE: This will not work correctly for non-generic events such as `change`, @@ -38,11 +38,11 @@ var DD=Object.defineProperty;var ID=(e,t,r)=>t in e?DD(e,t,{enumerable:!0,config * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const c8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=f8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},d8={beforeMount(e,t){c8(e,t.value)}},IA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:dh,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},OA={[wi]:e=>ze(e)||Rt(e)||zr(e),change:e=>ze(e)||Rt(e)||zr(e)},zs=Symbol("checkboxGroupContextKey"),h8=({model:e,isChecked:t})=>{const r=Le(zs,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!ys(s)&&e.value.length>=s&&!t.value||!ys(l)&&e.value.length<=l&&t.value});return{isDisabled:vh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},v8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Le(zs,void 0),{formItem:s}=tf(),{emit:l}=it();function u(v){var p,m;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(m=e.falseLabel)!=null?m:!1}function f(v,p){l("change",u(v),p)}function c(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function h(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(g=>g.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await kt(),f(t.value,v)))}const d=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return we(()=>e.modelValue,()=>{d.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:c,onClickRoot:h}},p8=e=>{const t=$(!1),{emit:r}=it(),n=Le(zs,void 0),i=k(()=>ys(n)===!1),a=$(!1),o=k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&_e(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value)&&s.length>o.value.length,a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(wi,s),t.value=s)}});return{model:o,isGroup:i,isLimitExceeded:a}},g8=(e,t,{model:r})=>{const n=Le(zs,void 0),i=$(!1),a=k(()=>{const u=r.value;return zr(u)?u:_e(u)?qe(e.label)?u.map(Qe).some(f=>p3(f,e.label)):u.map(Qe).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=xi(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=xi(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!t.default||!ms(e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},m8=(e,{model:t})=>{function r(){_e(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},RA=(e,t)=>{const{formItem:r}=tf(),{model:n,isGroup:i,isLimitExceeded:a}=p8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f}=g8(e,t,{model:n}),{isDisabled:c}=h8({model:n,isChecked:s}),{inputId:h,isLabeledByFormItem:d}=Vy(e,{formItemContext:r,disableIdGeneration:f,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=v8(e,{model:n,isLimitExceeded:a,hasOwnLabel:f,isDisabled:c,isLabeledByFormItem:d});return m8(e,{model:n}),{inputId:h,isLabeledByFormItem:d,isChecked:s,isDisabled:c,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f,model:n,handleChange:v,onClickRoot:p}},y8=["id","indeterminate","name","tabindex","disabled","true-value","false-value"],_8=["id","indeterminate","disabled","value","name","tabindex"],b8=ie({name:"ElCheckbox"}),w8=ie({...b8,props:IA,emits:OA,setup(e){const t=e,r=Rs(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:f,handleChange:c,onClickRoot:h}=RA(t,r),d=Oe("checkbox"),v=k(()=>[d.b(),d.m(l.value),d.is("disabled",o.value),d.is("bordered",t.border),d.is("checked",a.value)]),p=k(()=>[d.e("input"),d.is("disabled",o.value),d.is("checked",a.value),d.is("indeterminate",t.indeterminate),d.is("focus",s.value)]);return(m,g)=>(G(),de(Vt(!T(u)&&T(i)?"span":"label"),{class:re(T(v)),"aria-controls":m.indeterminate?m.controls:null,onClick:T(h)},{default:j(()=>[ee("span",{class:re(T(p))},[m.trueLabel||m.falseLabel?qt((G(),ce("input",{key:0,id:T(n),"onUpdate:modelValue":g[0]||(g[0]=y=>Pt(f)?f.value=y:null),class:re(T(d).e("original")),type:"checkbox",indeterminate:m.indeterminate,name:m.name,tabindex:m.tabindex,disabled:T(o),"true-value":m.trueLabel,"false-value":m.falseLabel,onChange:g[1]||(g[1]=(...y)=>T(c)&&T(c)(...y)),onFocus:g[2]||(g[2]=y=>s.value=!0),onBlur:g[3]||(g[3]=y=>s.value=!1),onClick:g[4]||(g[4]=ua(()=>{},["stop"]))},null,42,y8)),[[sd,T(f)]]):qt((G(),ce("input",{key:1,id:T(n),"onUpdate:modelValue":g[5]||(g[5]=y=>Pt(f)?f.value=y:null),class:re(T(d).e("original")),type:"checkbox",indeterminate:m.indeterminate,disabled:T(o),value:m.label,name:m.name,tabindex:m.tabindex,onChange:g[6]||(g[6]=(...y)=>T(c)&&T(c)(...y)),onFocus:g[7]||(g[7]=y=>s.value=!0),onBlur:g[8]||(g[8]=y=>s.value=!1),onClick:g[9]||(g[9]=ua(()=>{},["stop"]))},null,42,_8)),[[sd,T(f)]]),ee("span",{class:re(T(d).e("inner"))},null,2)],2),T(u)?(G(),ce("span",{key:0,class:re(T(d).e("label"))},[Ce(m.$slots,"default"),m.$slots.default?Ae("v-if",!0):(G(),ce(ft,{key:0},[mt(be(m.label),1)],64))],2)):Ae("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var S8=Ke(w8,[["__file","checkbox.vue"]]);const x8=["name","tabindex","disabled","true-value","false-value"],C8=["name","tabindex","disabled","value"],T8=ie({name:"ElCheckboxButton"}),M8=ie({...T8,props:IA,emits:OA,setup(e){const t=e,r=Rs(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=RA(t,r),u=Le(zs,void 0),f=Oe("checkbox"),c=k(()=>{var d,v,p,m;const g=(v=(d=u==null?void 0:u.fill)==null?void 0:d.value)!=null?v:"";return{backgroundColor:g,borderColor:g,color:(m=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?m:"",boxShadow:g?`-1px 0 0 0 ${g}`:void 0}}),h=k(()=>[f.b("button"),f.bm("button",o.value),f.is("disabled",a.value),f.is("checked",i.value),f.is("focus",n.value)]);return(d,v)=>(G(),ce("label",{class:re(T(h))},[d.trueLabel||d.falseLabel?qt((G(),ce("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Pt(s)?s.value=p:null),class:re(T(f).be("button","original")),type:"checkbox",name:d.name,tabindex:d.tabindex,disabled:T(a),"true-value":d.trueLabel,"false-value":d.falseLabel,onChange:v[1]||(v[1]=(...p)=>T(l)&&T(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1),onClick:v[4]||(v[4]=ua(()=>{},["stop"]))},null,42,x8)),[[sd,T(s)]]):qt((G(),ce("input",{key:1,"onUpdate:modelValue":v[5]||(v[5]=p=>Pt(s)?s.value=p:null),class:re(T(f).be("button","original")),type:"checkbox",name:d.name,tabindex:d.tabindex,disabled:T(a),value:d.label,onChange:v[6]||(v[6]=(...p)=>T(l)&&T(l)(...p)),onFocus:v[7]||(v[7]=p=>n.value=!0),onBlur:v[8]||(v[8]=p=>n.value=!1),onClick:v[9]||(v[9]=ua(()=>{},["stop"]))},null,42,C8)),[[sd,T(s)]]),d.$slots.default||d.label?(G(),ce("span",{key:2,class:re(T(f).be("button","inner")),style:ct(T(i)?T(c):void 0)},[Ce(d.$slots,"default",{},()=>[mt(be(d.label),1)])],6)):Ae("v-if",!0)],2))}});var kA=Ke(M8,[["__file","checkbox-button.vue"]]);const A8=Je({modelValue:{type:Be(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:dh,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),P8={[wi]:e=>_e(e),change:e=>_e(e)},E8=ie({name:"ElCheckboxGroup"}),L8=ie({...E8,props:A8,emits:P8,setup(e,{emit:t}){const r=e,n=Oe("checkbox"),{formItem:i}=tf(),{inputId:a,isLabeledByFormItem:o}=Vy(r,{formItemContext:i}),s=async u=>{t(wi,u),await kt(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return Dt(zs,{...b3(Kd(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),we(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,f)=>{var c;return G(),de(Vt(u.tag),{id:T(a),class:re(T(n).b("group")),role:"group","aria-label":T(o)?void 0:u.label||"checkbox-group","aria-labelledby":T(o)?(c=T(i))==null?void 0:c.labelId:void 0},{default:j(()=>[Ce(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var NA=Ke(L8,[["__file","checkbox-group.vue"]]);const Cs=Yt(S8,{CheckboxButton:kA,CheckboxGroup:NA});pa(kA);pa(NA);const D8=Je({type:{type:String,values:["success","info","warning","danger",""],default:""},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:{type:String,default:""},size:{type:String,values:Bs,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),I8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},O8=ie({name:"ElTag"}),R8=ie({...O8,props:D8,emits:I8,setup(e,{emit:t}){const r=e,n=xi(),i=Oe("tag"),a=k(()=>{const{type:l,hit:u,effect:f,closable:c,round:h}=r;return[i.b(),i.is("closable",c),i.m(l),i.m(n.value),i.m(f),i.is("hit",u),i.is("round",h)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(G(),ce("span",{key:0,class:re(T(a)),style:ct({backgroundColor:l.color}),onClick:s},[ee("span",{class:re(T(i).e("content"))},[Ce(l.$slots,"default")],2),l.closable?(G(),de(T(Nt),{key:0,class:re(T(i).e("close")),onClick:ua(o,["stop"])},{default:j(()=>[Z(T(vd))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)):(G(),de(ti,{key:1,name:`${T(i).namespace.value}-zoom-in-center`,appear:""},{default:j(()=>[ee("span",{class:re(T(a)),style:ct({backgroundColor:l.color}),onClick:s},[ee("span",{class:re(T(i).e("content"))},[Ce(l.$slots,"default")],2),l.closable?(G(),de(T(Nt),{key:0,class:re(T(i).e("close")),onClick:ua(o,["stop"])},{default:j(()=>[Z(T(vd))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)]),_:3},8,["name"]))}});var k8=Ke(R8,[["__file","tag.vue"]]);const N8=Yt(k8),BA=Symbol("rowContextKey"),B8=["start","center","end","space-around","space-between","space-evenly"],F8=["top","middle","bottom"],$8=Je({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:B8,default:"start"},align:{type:String,values:F8}}),H8=ie({name:"ElRow"}),z8=ie({...H8,props:$8,setup(e){const t=e,r=Oe("row"),n=k(()=>t.gutter);Dt(BA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,!!t.align)]);return(o,s)=>(G(),de(Vt(o.tag),{class:re(T(a)),style:ct(T(i))},{default:j(()=>[Ce(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ke(z8,[["__file","row.vue"]]);const FA=Yt(V8),W8=Je({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Be([Number,Object]),default:()=>ja({})},sm:{type:Be([Number,Object]),default:()=>ja({})},md:{type:Be([Number,Object]),default:()=>ja({})},lg:{type:Be([Number,Object]),default:()=>ja({})},xl:{type:Be([Number,Object]),default:()=>ja({})}}),G8=ie({name:"ElCol"}),U8=ie({...G8,props:W8,setup(e){const t=e,{gutter:r}=Le(BA,{gutter:k(()=>0)}),n=Oe("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const f=t[u];Rt(f)&&(u==="span"?o.push(n.b(`${t[u]}`)):f>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{Rt(t[u])?o.push(n.b(`${u}-${t[u]}`)):qe(t[u])&&Object.entries(t[u]).forEach(([f,c])=>{o.push(f!=="span"?n.b(`${u}-${f}-${c}`):n.b(`${u}-${c}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(G(),de(Vt(o.tag),{class:re(T(a)),style:ct(T(i))},{default:j(()=>[Ce(o.$slots,"default")]),_:3},8,["class","style"]))}});var Y8=Ke(U8,[["__file","col.vue"]]);const $A=Yt(Y8),j8=ie({name:"ElCollapseTransition"}),q8=ie({...j8,setup(e){const t=Oe("collapse-transition"),r=i=>{i.style.maxHeight="",i.style.overflow=i.dataset.oldOverflow,i.style.paddingTop=i.dataset.oldPaddingTop,i.style.paddingBottom=i.dataset.oldPaddingBottom},n={beforeEnter(i){i.dataset||(i.dataset={}),i.dataset.oldPaddingTop=i.style.paddingTop,i.dataset.oldPaddingBottom=i.style.paddingBottom,i.style.height&&(i.dataset.elExistsHeight=i.style.height),i.style.maxHeight=0,i.style.paddingTop=0,i.style.paddingBottom=0},enter(i){requestAnimationFrame(()=>{i.dataset.oldOverflow=i.style.overflow,i.dataset.elExistsHeight?i.style.maxHeight=i.dataset.elExistsHeight:i.scrollHeight!==0?i.style.maxHeight=`${i.scrollHeight}px`:i.style.maxHeight=0,i.style.paddingTop=i.dataset.oldPaddingTop,i.style.paddingBottom=i.dataset.oldPaddingBottom,i.style.overflow="hidden"})},afterEnter(i){i.style.maxHeight="",i.style.overflow=i.dataset.oldOverflow},enterCancelled(i){r(i)},beforeLeave(i){i.dataset||(i.dataset={}),i.dataset.oldPaddingTop=i.style.paddingTop,i.dataset.oldPaddingBottom=i.style.paddingBottom,i.dataset.oldOverflow=i.style.overflow,i.style.maxHeight=`${i.scrollHeight}px`,i.style.overflow="hidden"},leave(i){i.scrollHeight!==0&&(i.style.maxHeight=0,i.style.paddingTop=0,i.style.paddingBottom=0)},afterLeave(i){r(i)},leaveCancelled(i){r(i)}};return(i,a)=>(G(),de(ti,ei({name:T(t).b()},YI(n)),{default:j(()=>[Ce(i.$slots,"default")]),_:3},16,["name"]))}});var Bc=Ke(q8,[["__file","collapse-transition.vue"]]);Bc.install=e=>{e.component(Bc.name,Bc)};const K8=Bc,X8=Je({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Be([String,Array,Object])},zIndex:{type:Be([String,Number])}}),Z8={click:e=>e instanceof MouseEvent},Q8="overlay";var J8=ie({name:"ElOverlay",props:X8,emits:Z8,setup(e,{slots:t,emit:r}){const n=Oe(Q8),i=l=>{r("click",l)},{onClick:a,onMousedown:o,onMouseup:s}=XM(e.customMaskEvent?void 0:i);return()=>e.mask?Z("div",{class:[n.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:a,onMousedown:o,onMouseup:s},[Ce(t,"default")],Lc.STYLE|Lc.CLASS|Lc.PROPS,["onClick","onMouseup","onMousedown"]):Te("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ce(t,"default")])}});const e6=J8,HA=Symbol("dialogInjectionKey"),zA=Je({center:Boolean,alignCenter:Boolean,closeIcon:{type:vr},customClass:{type:String,default:""},draggable:Boolean,fullscreen:Boolean,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),t6={close:()=>!0},r6=["aria-level"],n6=["aria-label"],i6=["id"],a6=ie({name:"ElDialogContent"}),o6=ie({...a6,props:zA,emits:t6,setup(e){const t=e,{t:r}=Fs(),{Close:n}=W3,{dialogRef:i,headerRef:a,bodyId:o,ns:s,style:l}=Le(HA),{focusTrapRef:u}=Le(pA),f=k(()=>[s.b(),s.is("fullscreen",t.fullscreen),s.is("draggable",t.draggable),s.is("align-center",t.alignCenter),{[s.m("center")]:t.center},t.customClass]),c=Y3(u,i),h=k(()=>t.draggable);return K3(i,a,h),(d,v)=>(G(),ce("div",{ref:T(c),class:re(T(f)),style:ct(T(l)),tabindex:"-1"},[ee("header",{ref_key:"headerRef",ref:a,class:re(T(s).e("header"))},[Ce(d.$slots,"header",{},()=>[ee("span",{role:"heading","aria-level":d.ariaLevel,class:re(T(s).e("title"))},be(d.title),11,r6)]),d.showClose?(G(),ce("button",{key:0,"aria-label":T(r)("el.dialog.close"),class:re(T(s).e("headerbtn")),type:"button",onClick:v[0]||(v[0]=p=>d.$emit("close"))},[Z(T(Nt),{class:re(T(s).e("close"))},{default:j(()=>[(G(),de(Vt(d.closeIcon||T(n))))]),_:1},8,["class"])],10,n6)):Ae("v-if",!0)],2),ee("div",{id:T(o),class:re(T(s).e("body"))},[Ce(d.$slots,"default")],10,i6),d.$slots.footer?(G(),ce("footer",{key:0,class:re(T(s).e("footer"))},[Ce(d.$slots,"footer")],2)):Ae("v-if",!0)],6))}});var s6=Ke(o6,[["__file","dialog-content.vue"]]);const l6=Je({...zA,appendToBody:Boolean,appendTo:{type:Be(String),default:"body"},beforeClose:{type:Be(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1},headerAriaLevel:{type:String,default:"2"}}),u6={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[wi]:e=>zr(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},f6=(e,t)=>{var r;const i=it().emit,{nextZIndex:a}=zy();let o="";const s=xu(),l=xu(),u=$(!1),f=$(!1),c=$(!1),h=$((r=e.zIndex)!=null?r:a());let d,v;const p=hh("namespace",Bl),m=k(()=>{const N={},H=`--${p.value}-dialog`;return e.fullscreen||(e.top&&(N[`${H}-margin-top`]=e.top),e.width&&(N[`${H}-width`]=Zn(e.width))),N}),g=k(()=>e.alignCenter?{display:"flex"}:{});function y(){i("opened")}function _(){i("closed"),i(wi,!1),e.destroyOnClose&&(c.value=!1)}function b(){i("close")}function x(){v==null||v(),d==null||d(),e.openDelay&&e.openDelay>0?{stop:d}=hu(()=>M(),e.openDelay):M()}function w(){d==null||d(),v==null||v(),e.closeDelay&&e.closeDelay>0?{stop:v}=hu(()=>A(),e.closeDelay):A()}function S(){function N(H){H||(f.value=!0,u.value=!1)}e.beforeClose?e.beforeClose(N):w()}function C(){e.closeOnClickModal&&S()}function M(){At&&(u.value=!0)}function A(){u.value=!1}function P(){i("openAutoFocus")}function E(){i("closeAutoFocus")}function L(N){var H;((H=N.detail)==null?void 0:H.focusReason)==="pointer"&&N.preventDefault()}e.lockScroll&&t5(u);function O(){e.closeOnPressEscape&&S()}return we(()=>e.modelValue,N=>{N?(f.value=!1,x(),c.value=!0,h.value=MM(e.zIndex)?a():h.value++,kt(()=>{i("open"),t.value&&(t.value.scrollTop=0)})):u.value&&w()}),we(()=>e.fullscreen,N=>{t.value&&(N?(o=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=o)}),_t(()=>{e.modelValue&&(u.value=!0,c.value=!0,x())}),{afterEnter:y,afterLeave:_,beforeLeave:b,handleClose:S,onModalClick:C,close:w,doClose:A,onOpenAutoFocus:P,onCloseAutoFocus:E,onCloseRequested:O,onFocusoutPrevented:L,titleId:s,bodyId:l,closed:f,style:m,overlayDialogStyle:g,rendered:c,visible:u,zIndex:h}},c6=["aria-label","aria-labelledby","aria-describedby"],d6=ie({name:"ElDialog",inheritAttrs:!1}),h6=ie({...d6,props:l6,emits:u6,setup(e,{expose:t}){const r=e,n=Rs();bu({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},k(()=>!!n.title)),bu({scope:"el-dialog",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/dialog.html#attributes",type:"Attribute"},k(()=>!!r.customClass));const i=Oe("dialog"),a=$(),o=$(),s=$(),{visible:l,titleId:u,bodyId:f,style:c,overlayDialogStyle:h,rendered:d,zIndex:v,afterEnter:p,afterLeave:m,beforeLeave:g,handleClose:y,onModalClick:_,onOpenAutoFocus:b,onCloseAutoFocus:x,onCloseRequested:w,onFocusoutPrevented:S}=f6(r,a);Dt(HA,{dialogRef:a,headerRef:o,bodyId:f,ns:i,rendered:d,style:c});const C=XM(_),M=k(()=>r.draggable&&!r.fullscreen);return t({visible:l,dialogContentRef:s}),(A,P)=>(G(),de(MT,{to:A.appendTo,disabled:A.appendTo!=="body"?!1:!A.appendToBody},[Z(ti,{name:"dialog-fade",onAfterEnter:T(p),onAfterLeave:T(m),onBeforeLeave:T(g),persisted:""},{default:j(()=>[qt(Z(T(e6),{"custom-mask-event":"",mask:A.modal,"overlay-class":A.modalClass,"z-index":T(v)},{default:j(()=>[ee("div",{role:"dialog","aria-modal":"true","aria-label":A.title||void 0,"aria-labelledby":A.title?void 0:T(u),"aria-describedby":T(f),class:re(`${T(i).namespace.value}-overlay-dialog`),style:ct(T(h)),onClick:P[0]||(P[0]=(...E)=>T(C).onClick&&T(C).onClick(...E)),onMousedown:P[1]||(P[1]=(...E)=>T(C).onMousedown&&T(C).onMousedown(...E)),onMouseup:P[2]||(P[2]=(...E)=>T(C).onMouseup&&T(C).onMouseup(...E))},[Z(T(mA),{loop:"",trapped:T(l),"focus-start-el":"container",onFocusAfterTrapped:T(b),onFocusAfterReleased:T(x),onFocusoutPrevented:T(S),onReleaseRequested:T(w)},{default:j(()=>[T(d)?(G(),de(s6,ei({key:0,ref_key:"dialogContentRef",ref:s},A.$attrs,{"custom-class":A.customClass,center:A.center,"align-center":A.alignCenter,"close-icon":A.closeIcon,draggable:T(M),fullscreen:A.fullscreen,"show-close":A.showClose,title:A.title,"aria-level":A.headerAriaLevel,onClose:T(y)}),UI({header:j(()=>[A.$slots.title?Ce(A.$slots,"title",{key:1}):Ce(A.$slots,"header",{key:0,close:T(y),titleId:T(u),titleClass:T(i).e("title")})]),default:j(()=>[Ce(A.$slots,"default")]),_:2},[A.$slots.footer?{name:"footer",fn:j(()=>[Ce(A.$slots,"footer")])}:void 0]),1040,["custom-class","center","align-center","close-icon","draggable","fullscreen","show-close","title","aria-level","onClose"])):Ae("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,c6)]),_:3},8,["mask","overlay-class","z-index"]),[[Kn,T(l)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["to","disabled"]))}});var v6=Ke(h6,[["__file","dialog.vue"]]);const p6=Yt(v6),g6=Je({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:Be(String),default:"solid"}}),m6=ie({name:"ElDivider"}),y6=ie({...m6,props:g6,setup(e){const t=e,r=Oe("divider"),n=k(()=>r.cssVar({"border-style":t.borderStyle}));return(i,a)=>(G(),ce("div",{class:re([T(r).b(),T(r).m(i.direction)]),style:ct(T(n)),role:"separator"},[i.$slots.default&&i.direction!=="vertical"?(G(),ce("div",{key:0,class:re([T(r).e("text"),T(r).is(i.contentPosition)])},[Ce(i.$slots,"default")],2)):Ae("v-if",!0)],6))}});var _6=Ke(y6,[["__file","divider.vue"]]);const VA=Yt(_6);let b6=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case hr.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case hr.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case hr.tab:{Ac(t,"mouseleave");break}case hr.enter:case hr.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},w6=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new b6(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case hr.down:{Ac(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case hr.up:{Ac(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case hr.tab:{Ac(t.currentTarget,"mouseleave");break}case hr.enter:case hr.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},S6=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new w6(n,t)})}};const x6=ie({name:"ElMenuCollapseTransition",setup(){const e=Oe("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Za(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){so(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),oo(r,e.m("collapse"))?(so(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Za(r,e.m("collapse"))):(Za(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),so(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Za(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function C6(e,t,r,n,i,a){return G(),de(ti,ei({mode:"out-in"},e.listeners),{default:j(()=>[Ce(e.$slots,"default")]),_:3},16)}var T6=Ke(x6,[["render",C6],["__file","menu-collapse-transition.vue"]]);function WA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function M6(e){return k(()=>{const r=e.backgroundColor;return r?new SA(r).shade(20).toString():""})}const GA=(e,t)=>{const r=Oe("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":M6(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},A6=Je({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:vr},expandOpenIcon:{type:vr},collapseCloseIcon:{type:vr},collapseOpenIcon:{type:vr}}),Of="ElSubMenu";var jy=ie({name:Of,props:A6,setup(e,{slots:t,expose:r}){bu({from:"popper-append-to-body",replacement:"teleported",scope:Of,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=it(),{indexPath:i,parentMenu:a}=WA(n,k(()=>e.index)),o=Oe("menu"),s=Oe("sub-menu"),l=Le("rootMenu");l||bi(Of,"can not inject root menu");const u=Le(`subMenu:${a.value.uid}`);u||bi(Of,"can not inject sub menu");const f=$({}),c=$({});let h;const d=$(!1),v=$(),p=$(null),m=k(()=>C.value==="horizontal"&&y.value?"bottom-start":"right-start"),g=k(()=>C.value==="horizontal"&&y.value||C.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:EM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:Ey),y=k(()=>u.level===0),_=k(()=>{var z;const te=(z=e.teleported)!=null?z:e.popperAppendToBody;return te===void 0?y.value:te}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=k(()=>C.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),S=k(()=>{let z=!1;return Object.values(f.value).forEach(te=>{te.active&&(z=!0)}),Object.values(c.value).forEach(te=>{te.active&&(z=!0)}),z}),C=k(()=>l.props.mode),M=Ln({index:e.index,indexPath:i,active:S}),A=GA(l.props,u.level+1),P=k(()=>{var z;return(z=e.popperOffset)!=null?z:l.props.popperOffset}),E=k(()=>{var z;return(z=e.popperClass)!=null?z:l.props.popperClass}),L=k(()=>{var z;return(z=e.showTimeout)!=null?z:l.props.showTimeout}),O=k(()=>{var z;return(z=e.hideTimeout)!=null?z:l.props.hideTimeout}),N=()=>{var z,te,J;return(J=(te=(z=p.value)==null?void 0:z.popperRef)==null?void 0:te.popperInstanceRef)==null?void 0:J.destroy()},H=z=>{z||N()},V=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},U=(z,te=L.value)=>{var J;if(z.type!=="focus"){if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled){u.mouseInChild.value=!0;return}u.mouseInChild.value=!0,h==null||h(),{stop:h}=hu(()=>{l.openMenu(e.index,i.value)},te),_.value&&((J=a.value.vnode.el)==null||J.dispatchEvent(new MouseEvent("mouseenter")))}},F=(z=!1)=>{var te;if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"){u.mouseInChild.value=!1;return}h==null||h(),u.mouseInChild.value=!1,{stop:h}=hu(()=>!d.value&&l.closeMenu(e.index,i.value),O.value),_.value&&z&&((te=u.handleMouseleave)==null||te.call(u,!0))};we(()=>l.props.collapse,z=>H(!!z));{const z=J=>{c.value[J.index]=J},te=J=>{delete c.value[J.index]};Dt(`subMenu:${n.uid}`,{addSubMenu:z,removeSubMenu:te,handleMouseleave:F,mouseInChild:d,level:u.level+1})}return r({opened:w}),_t(()=>{l.addSubMenu(M),u.addSubMenu(M)}),tr(()=>{u.removeSubMenu(M),l.removeSubMenu(M)}),()=>{var z;const te=[(z=t.title)==null?void 0:z.call(t),Te(Nt,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>ze(g.value)?Te(n.appContext.components[g.value]):Te(g.value)})],J=l.isMenuPopup?Te(Hs,{ref:p,visible:w.value,effect:"light",pure:!0,offset:P.value,showArrow:!1,persistent:!0,popperClass:E.value,placement:m.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var me;return Te("div",{class:[o.m(C.value),o.m("popup-container"),E.value],onMouseenter:Se=>U(Se,100),onMouseleave:()=>F(!0),onFocus:Se=>U(Se,100)},[Te("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${m.value}`)],style:A.value},[(me=t.default)==null?void 0:me.call(t)])])},default:()=>Te("div",{class:s.e("title"),onClick:V},te)}):Te(ft,{},[Te("div",{class:s.e("title"),ref:v,onClick:V},te),Te(K8,{},{default:()=>{var me;return qt(Te("ul",{role:"menu",class:[o.b(),o.m("inline")],style:A.value},[(me=t.default)==null?void 0:me.call(t)]),[[Kn,w.value]])}})]);return Te("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:U,onMouseleave:()=>F(),onFocus:U},[J])}}});const P6=Je({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Be(Array),default:()=>ja([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:vr,default:()=>B3},popperEffect:{type:String,values:["dark","light"],default:"dark"},popperClass:String,showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300}}),uv=e=>Array.isArray(e)&&e.every(t=>ze(t)),E6={close:(e,t)=>ze(e)&&uv(t),open:(e,t)=>ze(e)&&uv(t),select:(e,t,r,n)=>ze(e)&&uv(t)&&qe(r)&&(n===void 0||n instanceof Promise)};var L6=ie({name:"ElMenu",props:P6,emits:E6,setup(e,{emit:t,slots:r,expose:n}){const i=it(),a=i.appContext.config.globalProperties.$router,o=$(),s=Oe("menu"),l=Oe("sub-menu"),u=$(-1),f=$(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),c=$(e.defaultActive),h=$({}),d=$({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const L=c.value&&h.value[c.value];if(!L||e.mode==="horizontal"||e.collapse)return;L.indexPath.forEach(N=>{const H=d.value[N];H&&m(N,H.indexPath)})},m=(L,O)=>{f.value.includes(L)||(e.uniqueOpened&&(f.value=f.value.filter(N=>O.includes(N))),f.value.push(L),t("open",L,O))},g=L=>{const O=f.value.indexOf(L);O!==-1&&f.value.splice(O,1)},y=(L,O)=>{g(L),t("close",L,O)},_=({index:L,indexPath:O})=>{f.value.includes(L)?y(L,O):m(L,O)},b=L=>{(e.mode==="horizontal"||e.collapse)&&(f.value=[]);const{index:O,indexPath:N}=L;if(!(ms(O)||ms(N)))if(e.router&&a){const H=L.route||O,V=a.push(H).then(U=>(U||(c.value=O),U));t("select",O,N,{index:O,indexPath:N,route:H},V)}else c.value=O,t("select",O,N,{index:O,indexPath:N})},x=L=>{const O=h.value,N=O[L]||c.value&&O[c.value]||O[e.defaultActive];N?c.value=N.index:c.value=L},w=()=>{var L,O;if(!o.value)return-1;const N=Array.from((O=(L=o.value)==null?void 0:L.childNodes)!=null?O:[]).filter(J=>J.nodeName!=="#comment"&&(J.nodeName!=="#text"||J.nodeValue)),H=64,V=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),U=Number.parseInt(getComputedStyle(o.value).paddingRight,10),F=o.value.clientWidth-V-U;let z=0,te=0;return N.forEach((J,me)=>{z+=J.offsetWidth||0,z<=F-H&&(te=me+1)}),te===N.length?-1:te},S=L=>d.value[L].indexPath,C=(L,O=33.34)=>{let N;return()=>{N&&clearTimeout(N),N=setTimeout(()=>{L()},O)}};let M=!0;const A=()=>{const L=()=>{u.value=-1,kt(()=>{u.value=w()})};M?L():C(L)(),M=!1};we(()=>e.defaultActive,L=>{h.value[L]||(c.value=""),x(L)}),we(()=>e.collapse,L=>{L&&(f.value=[])}),we(h.value,p);let P;na(()=>{e.mode==="horizontal"&&e.ellipsis?P=ps(o,A).stop:P==null||P()});const E=$(!1);{const L=V=>{d.value[V.index]=V},O=V=>{delete d.value[V.index]};Dt("rootMenu",Ln({props:e,openedMenus:f,items:h,subMenus:d,activeIndex:c,isMenuPopup:v,addMenuItem:V=>{h.value[V.index]=V},removeMenuItem:V=>{delete h.value[V.index]},addSubMenu:L,removeSubMenu:O,openMenu:m,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),Dt(`subMenu:${i.uid}`,{addSubMenu:L,removeSubMenu:O,mouseInChild:E,level:0})}return _t(()=>{e.mode==="horizontal"&&new S6(i.vnode.el,s.namespace.value)}),n({open:O=>{const{indexPath:N}=d.value[O];N.forEach(H=>m(H,N))},close:g,handleResize:A}),()=>{var L,O;let N=(O=(L=r.default)==null?void 0:L.call(r))!=null?O:[];const H=[];if(e.mode==="horizontal"&&o.value){const z=Dc(N),te=u.value===-1?z:z.slice(0,u.value),J=u.value===-1?[]:z.slice(u.value);J!=null&&J.length&&e.ellipsis&&(N=te,H.push(Te(jy,{index:"sub-menu-more",class:l.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>Te(Nt,{class:l.e("icon-more")},{default:()=>Te(e.ellipsisIcon)}),default:()=>J})))}const V=GA(e,0),U=e.closeOnClickOutside?[[CA,()=>{f.value.length&&(E.value||(f.value.forEach(z=>t("close",z,S(z))),f.value=[]))}]]:[],F=qt(Te("ul",{key:String(e.collapse),role:"menubar",ref:o,style:V.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...N,...H]),U);return e.collapseTransition&&e.mode==="vertical"?Te(T6,()=>F):F}}});const D6=Je({index:{type:Be([String,null]),default:null},route:{type:Be([String,Object])},disabled:Boolean}),I6={click:e=>ze(e.index)&&Array.isArray(e.indexPath)},fv="ElMenuItem",O6=ie({name:fv,components:{ElTooltip:Hs},props:D6,emits:I6,setup(e,{emit:t}){const r=it(),n=Le("rootMenu"),i=Oe("menu"),a=Oe("menu-item");n||bi(fv,"can not inject root menu");const{parentMenu:o,indexPath:s}=WA(r,wn(e,"index")),l=Le(`subMenu:${o.value.uid}`);l||bi(fv,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),f=Ln({index:e.index,indexPath:s,active:u}),c=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",f))};return _t(()=>{l.addSubMenu(f),n.addMenuItem(f)}),tr(()=>{l.removeSubMenu(f),n.removeMenuItem(f)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:c}}});function R6(e,t,r,n,i,a){const o=xr("el-tooltip");return G(),ce("li",{class:re([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(G(),de(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:j(()=>[Ce(e.$slots,"title")]),default:j(()=>[ee("div",{class:re(e.nsMenu.be("tooltip","trigger"))},[Ce(e.$slots,"default")],2)]),_:3},8,["effect"])):(G(),ce(ft,{key:1},[Ce(e.$slots,"default"),Ce(e.$slots,"title")],64))],2)}var UA=Ke(O6,[["render",R6],["__file","menu-item.vue"]]);const k6={title:String},N6="ElMenuItemGroup",B6=ie({name:N6,props:k6,setup(){return{ns:Oe("menu-item-group")}}});function F6(e,t,r,n,i,a){return G(),ce("li",{class:re(e.ns.b())},[ee("div",{class:re(e.ns.e("title"))},[e.$slots.title?Ce(e.$slots,"title",{key:1}):(G(),ce(ft,{key:0},[mt(be(e.title),1)],64))],2),ee("ul",null,[Ce(e.$slots,"default")])],2)}var YA=Ke(B6,[["render",F6],["__file","menu-item-group.vue"]]);const $6=Yt(L6,{MenuItem:UA,MenuItemGroup:YA,SubMenu:jy}),H6=pa(UA);pa(YA);const z6=pa(jy),V6=Je({icon:{type:vr,default:()=>D3},title:String,content:{type:String,default:""}}),W6={back:()=>!0},G6=["aria-label"],U6=ie({name:"ElPageHeader"}),Y6=ie({...U6,props:V6,emits:W6,setup(e,{emit:t}){const r=Rs(),{t:n}=Fs(),i=Oe("page-header"),a=k(()=>[i.b(),{[i.m("has-breadcrumb")]:!!r.breadcrumb,[i.m("has-extra")]:!!r.extra,[i.is("contentful")]:!!r.default}]);function o(){t("back")}return(s,l)=>(G(),ce("div",{class:re(T(a))},[s.$slots.breadcrumb?(G(),ce("div",{key:0,class:re(T(i).e("breadcrumb"))},[Ce(s.$slots,"breadcrumb")],2)):Ae("v-if",!0),ee("div",{class:re(T(i).e("header"))},[ee("div",{class:re(T(i).e("left"))},[ee("div",{class:re(T(i).e("back")),role:"button",tabindex:"0",onClick:o},[s.icon||s.$slots.icon?(G(),ce("div",{key:0,"aria-label":s.title||T(n)("el.pageHeader.title"),class:re(T(i).e("icon"))},[Ce(s.$slots,"icon",{},()=>[s.icon?(G(),de(T(Nt),{key:0},{default:j(()=>[(G(),de(Vt(s.icon)))]),_:1})):Ae("v-if",!0)])],10,G6)):Ae("v-if",!0),ee("div",{class:re(T(i).e("title"))},[Ce(s.$slots,"title",{},()=>[mt(be(s.title||T(n)("el.pageHeader.title")),1)])],2)],2),Z(T(VA),{direction:"vertical"}),ee("div",{class:re(T(i).e("content"))},[Ce(s.$slots,"content",{},()=>[mt(be(s.content),1)])],2)],2),s.$slots.extra?(G(),ce("div",{key:0,class:re(T(i).e("extra"))},[Ce(s.$slots,"extra")],2)):Ae("v-if",!0)],2),s.$slots.default?(G(),ce("div",{key:1,class:re(T(i).e("main"))},[Ce(s.$slots,"default")],2)):Ae("v-if",!0)],2))}});var j6=Ke(Y6,[["__file","page-header.vue"]]);const q6=Yt(j6),K6=Je({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:pg,default:"primary"},cancelButtonType:{type:String,values:pg,default:"text"},icon:{type:vr,default:()=>$3},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1},hideAfter:{type:Number,default:200},teleported:md.teleported,persistent:md.persistent,width:{type:[String,Number],default:150}}),X6={confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},Z6=ie({name:"ElPopconfirm"}),Q6=ie({...Z6,props:K6,emits:X6,setup(e,{emit:t}){const r=e,{t:n}=Fs(),i=Oe("popconfirm"),a=$(),o=()=>{var h,d;(d=(h=a.value)==null?void 0:h.onClose)==null||d.call(h)},s=k(()=>({width:Zn(r.width)})),l=h=>{t("confirm",h),o()},u=h=>{t("cancel",h),o()},f=k(()=>r.confirmButtonText||n("el.popconfirm.confirmButtonText")),c=k(()=>r.cancelButtonText||n("el.popconfirm.cancelButtonText"));return(h,d)=>(G(),de(T(Hs),ei({ref_key:"tooltipRef",ref:a,trigger:"click",effect:"light"},h.$attrs,{"popper-class":`${T(i).namespace.value}-popover`,"popper-style":T(s),teleported:h.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":h.hideAfter,persistent:h.persistent}),{content:j(()=>[ee("div",{class:re(T(i).b())},[ee("div",{class:re(T(i).e("main"))},[!h.hideIcon&&h.icon?(G(),de(T(Nt),{key:0,class:re(T(i).e("icon")),style:ct({color:h.iconColor})},{default:j(()=>[(G(),de(Vt(h.icon)))]),_:1},8,["class","style"])):Ae("v-if",!0),mt(" "+be(h.title),1)],2),ee("div",{class:re(T(i).e("action"))},[Z(T(yg),{size:"small",type:h.cancelButtonType==="text"?"":h.cancelButtonType,text:h.cancelButtonType==="text",onClick:u},{default:j(()=>[mt(be(T(c)),1)]),_:1},8,["type","text"]),Z(T(yg),{size:"small",type:h.confirmButtonType==="text"?"":h.confirmButtonType,text:h.confirmButtonType==="text",onClick:l},{default:j(()=>[mt(be(T(f)),1)]),_:1},8,["type","text"])],2)],2)]),default:j(()=>[h.$slots.reference?Ce(h.$slots,"reference",{key:0}):Ae("v-if",!0)]),_:3},16,["popper-class","popper-style","teleported","hide-after","persistent"]))}});var J6=Ke(Q6,[["__file","popconfirm.vue"]]);const eV=Yt(J6),tV=Je({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},size:{type:String,validator:j3},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},inactiveActionIcon:{type:vr},activeActionIcon:{type:vr},activeIcon:{type:vr},inactiveIcon:{type:vr},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Be(Function)},id:String,tabindex:{type:[String,Number]},value:{type:[Boolean,String,Number],default:!1},label:{type:String,default:void 0}}),rV={[wi]:e=>zr(e)||ze(e)||Rt(e),[sg]:e=>zr(e)||ze(e)||Rt(e),[lg]:e=>zr(e)||ze(e)||Rt(e)},nV=["onClick"],iV=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"],aV=["aria-hidden"],oV=["aria-hidden"],sV=["aria-hidden"],Ag="ElSwitch",lV=ie({name:Ag}),uV=ie({...lV,props:tV,emits:rV,setup(e,{expose:t,emit:r}){const n=e,i=it(),{formItem:a}=tf(),o=xi(),s=Oe("switch");(C=>{C.forEach(M=>{bu({from:M[0],replacement:M[1],scope:Ag,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var A;return!!((A=i.vnode.props)!=null&&A[M[2]])}))})})([['"value"','"model-value" or "v-model"',"value"],['"active-color"',"CSS var `--el-switch-on-color`","activeColor"],['"inactive-color"',"CSS var `--el-switch-off-color`","inactiveColor"],['"border-color"',"CSS var `--el-switch-border-color`","borderColor"]]);const{inputId:u}=Vy(n,{formItemContext:a}),f=vh(k(()=>n.loading)),c=$(n.modelValue!==!1),h=$(),d=$(),v=k(()=>[s.b(),s.m(o.value),s.is("disabled",f.value),s.is("checked",_.value)]),p=k(()=>[s.e("label"),s.em("label","left"),s.is("active",!_.value)]),m=k(()=>[s.e("label"),s.em("label","right"),s.is("active",_.value)]),g=k(()=>({width:Zn(n.width)}));we(()=>n.modelValue,()=>{c.value=!0}),we(()=>n.value,()=>{c.value=!1});const y=k(()=>c.value?n.modelValue:n.value),_=k(()=>y.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(y.value)||(r(wi,n.inactiveValue),r(sg,n.inactiveValue),r(lg,n.inactiveValue)),we(_,C=>{var M;h.value.checked=C,n.validateEvent&&((M=a==null?void 0:a.validate)==null||M.call(a,"change").catch(A=>void 0))});const b=()=>{const C=_.value?n.inactiveValue:n.activeValue;r(wi,C),r(sg,C),r(lg,C),kt(()=>{h.value.checked=_.value})},x=()=>{if(f.value)return;const{beforeChange:C}=n;if(!C){b();return}const M=C();[Qc(M),zr(M)].includes(!0)||bi(Ag,"beforeChange must return type `Promise` or `boolean`"),Qc(M)?M.then(P=>{P&&b()}).catch(P=>{}):M&&b()},w=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),S=()=>{var C,M;(M=(C=h.value)==null?void 0:C.focus)==null||M.call(C)};return _t(()=>{h.value.checked=_.value}),t({focus:S,checked:_}),(C,M)=>(G(),ce("div",{class:re(T(v)),style:ct(T(w)),onClick:ua(x,["prevent"])},[ee("input",{id:T(u),ref_key:"input",ref:h,class:re(T(s).e("input")),type:"checkbox",role:"switch","aria-checked":T(_),"aria-disabled":T(f),"aria-label":C.label,name:C.name,"true-value":C.activeValue,"false-value":C.inactiveValue,disabled:T(f),tabindex:C.tabindex,onChange:b,onKeydown:iR(x,["enter"])},null,42,iV),!C.inlinePrompt&&(C.inactiveIcon||C.inactiveText)?(G(),ce("span",{key:0,class:re(T(p))},[C.inactiveIcon?(G(),de(T(Nt),{key:0},{default:j(()=>[(G(),de(Vt(C.inactiveIcon)))]),_:1})):Ae("v-if",!0),!C.inactiveIcon&&C.inactiveText?(G(),ce("span",{key:1,"aria-hidden":T(_)},be(C.inactiveText),9,aV)):Ae("v-if",!0)],2)):Ae("v-if",!0),ee("span",{ref_key:"core",ref:d,class:re(T(s).e("core")),style:ct(T(g))},[C.inlinePrompt?(G(),ce("div",{key:0,class:re(T(s).e("inner"))},[C.activeIcon||C.inactiveIcon?(G(),de(T(Nt),{key:0,class:re(T(s).is("icon"))},{default:j(()=>[(G(),de(Vt(T(_)?C.activeIcon:C.inactiveIcon)))]),_:1},8,["class"])):C.activeText||C.inactiveText?(G(),ce("span",{key:1,class:re(T(s).is("text")),"aria-hidden":!T(_)},be(T(_)?C.activeText:C.inactiveText),11,oV)):Ae("v-if",!0)],2)):Ae("v-if",!0),ee("div",{class:re(T(s).e("action"))},[C.loading?(G(),de(T(Nt),{key:0,class:re(T(s).is("loading"))},{default:j(()=>[Z(T(Ly))]),_:1},8,["class"])):T(_)?Ce(C.$slots,"active-action",{key:1},()=>[C.activeActionIcon?(G(),de(T(Nt),{key:0},{default:j(()=>[(G(),de(Vt(C.activeActionIcon)))]),_:1})):Ae("v-if",!0)]):T(_)?Ae("v-if",!0):Ce(C.$slots,"inactive-action",{key:2},()=>[C.inactiveActionIcon?(G(),de(T(Nt),{key:0},{default:j(()=>[(G(),de(Vt(C.inactiveActionIcon)))]),_:1})):Ae("v-if",!0)])],2)],6),!C.inlinePrompt&&(C.activeIcon||C.activeText)?(G(),ce("span",{key:1,class:re(T(m))},[C.activeIcon?(G(),de(T(Nt),{key:0},{default:j(()=>[(G(),de(Vt(C.activeIcon)))]),_:1})):Ae("v-if",!0),!C.activeIcon&&C.activeText?(G(),ce("span",{key:1,"aria-hidden":!T(_)},be(C.activeText),9,sV)):Ae("v-if",!0)],2)):Ae("v-if",!0)],14,nV))}});var fV=Ke(uV,[["__file","switch.vue"]]);const cV=Yt(fV),cv=function(e){var t;return(t=e.target)==null?void 0:t.closest("td")},dV=function(e,t,r,n,i){if(!t&&!n&&(!i||Array.isArray(i)&&!i.length))return e;typeof r=="string"?r=r==="descending"?-1:1:r=r&&r<0?-1:1;const a=n?null:function(s,l){return i?(Array.isArray(i)||(i=[i]),i.map(u=>typeof u=="string"?yu(s,u):u(s,l,e))):(t!=="$key"&&qe(s)&&"$value"in s&&(s=s.$value),[qe(s)?yu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,f=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},jA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},hV=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},eo=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Jt(n,t)]={row:n,index:i}}),r};function vV(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(Ue(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function qy(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function qA(e){return e===""||e!==void 0&&(e=qy(e),Number.isNaN(e)&&(e=80)),e}function pV(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function gV(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function zl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,_e(t.children)&&t.children.forEach(l=>{zl(e,l,r??!a)})};return zr(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function mV(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const f=u[r];i(f)||a(u,f,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let Xr=null;function yV(e,t,r,n){if((Xr==null?void 0:Xr.trigger)===r)return;Xr==null||Xr();const i=n==null?void 0:n.refs.tableWrapper,a=i==null?void 0:i.dataset.prefix,o={strategy:"fixed",...e.popperOptions},s=Z(Hs,{content:t,virtualTriggering:!0,virtualRef:r,appendTo:i,placement:"top",transition:"none",offset:0,hideAfter:0,...e,popperOptions:o,onHide:()=>{Xr==null||Xr()}});s.appContext=n.appContext;const l=document.createElement("div");ld(s,l),s.component.exposed.onOpen();const u=i==null?void 0:i.querySelector(`.${a}-scrollbar__wrap`);Xr=()=>{ld(null,l),u==null||u.removeEventListener("scroll",Xr),Xr=null},Xr.trigger=r,u==null||u.addEventListener("scroll",Xr)}function KA(e){return e.children?v3(e.children,KA):[e]}function D1(e,t){return e+t.colSpan}const XA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=KA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(D1,0),a=i+l.reduce(D1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ky=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=XA(t,r,n,i);if(s){const f=s==="left";o.push(`${e}-fixed-column--${s}`),f&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!f&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function I1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Xy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=XA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(I1,0):s.right=u.slice(o+1).reverse().reduce(I1,0),s},Ts=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function _V(e){const t=it(),r=$(!1),n=$([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const f=eo(n.value,u);n.value=l.reduce((c,h)=>{const d=Jt(h,u);return f[d]&&c.push(h),c},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{zl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],f=e.rowKey.value,c=eo(u,f);n.value=l.reduce((h,d)=>{const v=c[d];return v&&h.push(v.row),h},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!eo(n.value,u)[Jt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function bV(e){const t=it(),r=$(null),n=$(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:f,rowKey:c}=e;let h=null;c.value&&(h=(T(f)||[]).find(d=>Jt(d,c.value)===u)),n.value=h,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const f=n.value;if(u&&u!==f){n.value=u,t.emit("current-change",n.value,f);return}!u&&f&&(n.value=null,t.emit("current-change",null,f))},updateCurrentRowData:()=>{const u=e.rowKey.value,f=e.data.value||[],c=n.value;if(!f.includes(c)&&c){if(u){const h=Jt(c,u);o(h)}else n.value=null;n.value===null&&t.emit("current-change",null,c)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function wV(e){const t=$([]),r=$({}),n=$(16),i=$(!1),a=$({}),o=$("hasChildren"),s=$("children"),l=it(),u=k(()=>{if(!e.rowKey.value)return{};const g=e.data.value||[];return c(g)}),f=k(()=>{const g=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Jt(w,g);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),c=g=>{const y=e.rowKey.value,_={};return mV(g,(b,x,w)=>{const S=Jt(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Jt(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},h=(g=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=f.value,w=Object.keys(b),S={};if(w.length){const C=T(r),M=[],A=(E,L)=>{if(g)return t.value?y||t.value.includes(L):!!(y||E!=null&&E.expanded);{const O=y||t.value&&t.value.includes(L);return!!(E!=null&&E.expanded||O)}};w.forEach(E=>{const L=C[E],O={...b[E]};if(O.expanded=A(L,E),O.lazy){const{loaded:N=!1,loading:H=!1}=L||{};O.loaded=!!N,O.loading=!!H,M.push(E)}S[E]=O});const P=Object.keys(x);i.value&&P.length&&M.length&&P.forEach(E=>{const L=C[E],O=x[E].children;if(M.includes(E)){if(S[E].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[E].children=O}else{const{loaded:N=!1,loading:H=!1}=L||{};S[E]={lazy:!0,loaded:!!N,loading:!!H,expanded:A(L,E),children:O,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};we(()=>t.value,()=>{h(!0)}),we(()=>u.value,()=>{h()}),we(()=>f.value,()=>{h()});const d=g=>{t.value=g,h()},v=(g,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Jt(g,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",g,y),l.store.updateTableScrollY()}},p=g=>{l.store.assertRowKey();const y=e.rowKey.value,_=Jt(g,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?m(g,_,b):v(g,void 0)},m=(g,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(g,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",g,!0)}))};return{loadData:m,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:d,updateTreeData:h,normalize:c,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const SV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:dV(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Fc=e=>{const t=[];return e.forEach(r=>{r.children&&r.children.length>0?t.push.apply(t,Fc(r.children)):t.push(r)}),t};function xV(){var e;const t=it(),{size:r}=Kd((e=t.proxy)==null?void 0:e.$props),n=$(null),i=$([]),a=$([]),o=$(!1),s=$([]),l=$([]),u=$([]),f=$([]),c=$([]),h=$([]),d=$([]),v=$([]),p=[],m=$(0),g=$(0),y=$(0),_=$(!1),b=$([]),x=$(!1),w=$(!1),S=$(null),C=$({}),M=$(null),A=$(null),P=$(null),E=$(null),L=$(null);we(i,()=>t.state&&V(!1),{deep:!0});const O=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},N=ve=>{var Pe;(Pe=ve.children)==null||Pe.forEach(We=>{We.fixed=ve.fixed,N(We)})},H=()=>{s.value.forEach(et=>{N(et)}),f.value=s.value.filter(et=>et.fixed===!0||et.fixed==="left"),c.value=s.value.filter(et=>et.fixed==="right"),f.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,f.value.unshift(s.value[0]));const ve=s.value.filter(et=>!et.fixed);l.value=[].concat(f.value).concat(ve).concat(c.value);const Pe=Fc(ve),We=Fc(f.value),Ge=Fc(c.value);m.value=Pe.length,g.value=We.length,y.value=Ge.length,u.value=[].concat(We).concat(Pe).concat(Ge),o.value=f.value.length>0||c.value.length>0},V=(ve,Pe=!1)=>{ve&&H(),Pe?t.state.doLayout():t.state.debouncedUpdateLayout()},U=ve=>b.value.includes(ve),F=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},z=()=>{let ve;if(n.value){ve=[];const Pe=eo(b.value,n.value),We=eo(i.value,n.value);for(const Ge in Pe)Ue(Pe,Ge)&&!We[Ge]&&ve.push(Pe[Ge].row)}else ve=b.value.filter(Pe=>!i.value.includes(Pe));if(ve.length){const Pe=b.value.filter(We=>!ve.includes(We));b.value=Pe,t.emit("selection-change",Pe.slice())}},te=()=>(b.value||[]).slice(),J=(ve,Pe=void 0,We=!0)=>{if(zl(b.value,ve,Pe)){const et=(b.value||[]).slice();We&&t.emit("select",et,ve),t.emit("selection-change",et)}},me=()=>{var ve,Pe;const We=w.value?!_.value:!(_.value||b.value.length);_.value=We;let Ge=!1,et=0;const Ht=(Pe=(ve=t==null?void 0:t.store)==null?void 0:ve.states)==null?void 0:Pe.rowKey.value;i.value.forEach((pt,Kt)=>{const Yr=Kt+et;S.value?S.value.call(null,pt,Yr)&&zl(b.value,pt,We)&&(Ge=!0):zl(b.value,pt,We)&&(Ge=!0),et+=Ie(Jt(pt,Ht))}),Ge&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},Se=()=>{const ve=eo(b.value,n.value);i.value.forEach(Pe=>{const We=Jt(Pe,n.value),Ge=ve[We];Ge&&(b.value[Ge.index]=Pe)})},$e=()=>{var ve,Pe,We;if(((ve=i.value)==null?void 0:ve.length)===0){_.value=!1;return}let Ge;n.value&&(Ge=eo(b.value,n.value));const et=function(Yr){return Ge?!!Ge[Jt(Yr,n.value)]:b.value.includes(Yr)};let Ht=!0,pt=0,Kt=0;for(let Yr=0,AD=(i.value||[]).length;Yr{var Pe;if(!t||!t.store)return 0;const{treeData:We}=t.store.states;let Ge=0;const et=(Pe=We.value[ve])==null?void 0:Pe.children;return et&&(Ge+=et.length,et.forEach(Ht=>{Ge+=Ie(Ht)})),Ge},B=(ve,Pe)=>{Array.isArray(ve)||(ve=[ve]);const We={};return ve.forEach(Ge=>{C.value[Ge.id]=Pe,We[Ge.columnKey||Ge.id]=Pe}),We},Y=(ve,Pe,We)=>{A.value&&A.value!==ve&&(A.value.order=null),A.value=ve,P.value=Pe,E.value=We},K=()=>{let ve=T(a);Object.keys(C.value).forEach(Pe=>{const We=C.value[Pe];if(!We||We.length===0)return;const Ge=jA({columns:u.value},Pe);Ge&&Ge.filterMethod&&(ve=ve.filter(et=>We.some(Ht=>Ge.filterMethod.call(null,Ht,et,Ge))))}),M.value=ve},Q=()=>{i.value=SV(M.value,{sortingColumn:A.value,sortProp:P.value,sortOrder:E.value})},oe=(ve=void 0)=>{ve&&ve.filter||K(),Q()},pe=ve=>{const{tableHeaderRef:Pe}=t.refs;if(!Pe)return;const We=Object.assign({},Pe.filterPanels),Ge=Object.keys(We);if(Ge.length)if(typeof ve=="string"&&(ve=[ve]),Array.isArray(ve)){const et=ve.map(Ht=>hV({columns:u.value},Ht));Ge.forEach(Ht=>{const pt=et.find(Kt=>Kt.id===Ht);pt&&(pt.filteredValue=[])}),t.store.commit("filterChange",{column:et,values:[],silent:!0,multi:!0})}else Ge.forEach(et=>{const Ht=u.value.find(pt=>pt.id===et);Ht&&(Ht.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},D=()=>{A.value&&(Y(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:I,toggleRowExpansion:W,updateExpandRows:X,states:q,isRowExpanded:le}=_V({data:i,rowKey:n}),{updateTreeExpandKeys:fe,toggleTreeExpansion:ae,updateTreeData:se,loadOrToggle:ne,states:he}=wV({data:i,rowKey:n}),{updateCurrentRowData:Me,updateCurrentRow:xe,setCurrentRowKey:ke,states:Ve}=bV({data:i,rowKey:n});return{assertRowKey:O,updateColumns:H,scheduleLayout:V,isSelected:U,clearSelection:F,cleanSelection:z,getSelectionRows:te,toggleRowSelection:J,_toggleAllSelection:me,toggleAllSelection:null,updateSelectionByRowKey:Se,updateAllSelected:$e,updateFilters:B,updateCurrentRow:xe,updateSort:Y,execFilter:K,execSort:Q,execQuery:oe,clearFilter:pe,clearSort:D,toggleRowExpansion:W,setExpandRowKeysAdapter:ve=>{I(ve),fe(ve)},setCurrentRowKey:ke,toggleRowExpansionAdapter:(ve,Pe)=>{u.value.some(({type:Ge})=>Ge==="expand")?W(ve,Pe):ae(ve,Pe)},isRowExpanded:le,updateExpandRows:X,updateCurrentRowData:Me,loadOrToggle:ne,updateTreeData:se,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:f,rightFixedColumns:c,leafColumns:h,fixedLeafColumns:d,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:m,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:x,selectOnIndeterminate:w,selectable:S,filters:C,filteredData:M,sortingColumn:A,sortProp:P,sortOrder:E,hoverRow:L,...q,...he,...Ve}}}function Pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=Pg(r.children,t)),r)})}function Eg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&Eg(t.children)}),e.sort((t,r)=>t.no-r.no)}function CV(){const e=it(),t=xV();return{ns:Oe("table"),...t,mutations:{setData(o,s){const l=T(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),T(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const f=T(o._columns);let c=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),c=Pg(f,l)):(f.push(s),c=f),Eg(c),o._columns.value=c,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(Eg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const f=T(o._columns)||[];if(l)l.children.splice(l.children.findIndex(h=>h.id===s.id),1),kt(()=>{var h;((h=l.children)==null?void 0:h.length)===0&&delete l.children}),o._columns.value=Pg(f,l);else{const h=f.indexOf(s);h>-1&&(f.splice(h,1),o._columns.value=f)}const c=o.updateOrderFns.indexOf(u);c>-1&&o.updateOrderFns.splice(c,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:f}=s;if(l){const c=T(o.columns).find(h=>h.property===l);c&&(c.order=u,e.store.updateSort(c,l,u),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:f}=o,c=T(l),h=T(u),d=T(f);d===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:c,prop:h,order:d}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:f}=s,c=e.store.updateFilters(l,u);e.store.execQuery(),f||e.emit("filter-change",c),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){kt(()=>e.layout.updateScrollY.apply(e.layout))}}}const Vl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"}};function TV(e,t){if(!e)throw new Error("Table is required.");const r=CV();return r.toggleAllSelection=hd(r._toggleAllSelection,10),Object.keys(Vl).forEach(n=>{ZA(QA(t,n),n,r)}),MV(r,t),r}function MV(e,t){Object.keys(Vl).forEach(r=>{we(()=>QA(t,r),n=>{ZA(n,r,e)})})}function ZA(e,t,r){let n=e,i=Vl[t];typeof Vl[t]=="object"&&(i=i.key,n=n||Vl[t].default),r.states[i].value=n}function QA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class AV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=$(null),this.scrollX=$(!1),this.scrollY=$(!1),this.bodyWidth=$(null),this.fixedWidth=$(null),this.rightFixedWidth=$(null),this.gutterWidth=0;for(const r in t)Ue(t,r)&&(Pt(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!At)return;const n=this.table.vnode.el;if(t=pV(t),this.height.value=Number(t),!n&&(t||t===0))return kt(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!At)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((h,d)=>h+Number(d.minWidth||80),0),f=l/u;let c=0;a.forEach((h,d)=>{if(d===0)return;const v=Math.floor(Number(h.minWidth||80)*f);c+=v,h.realWidth=Number(h.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-c}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:PV}=Cs,EV=ie({name:"ElTableFilterPanel",components:{ElCheckbox:Cs,ElCheckboxGroup:PV,ElScrollbar:uA,ElTooltip:Hs,ElIcon:Nt,ArrowDown:EM,ArrowUp:E3},directives:{ClickOutside:CA},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=it(),{t:r}=Fs(),n=Oe("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=$(!1),o=$(null),s=k(()=>e.column&&e.column.filters),l=k(()=>e.column.filterClassName?`${n.b()} ${e.column.filterClassName}`:n.b()),u=k({get:()=>{var x;return(((x=e.column)==null?void 0:x.filteredValue)||[])[0]},set:x=>{f.value&&(typeof x<"u"&&x!==null?f.value.splice(0,1,x):f.value.splice(0,1))}}),f=k({get(){return e.column?e.column.filteredValue||[]:[]},set(x){e.column&&e.upDataColumn("filteredValue",x)}}),c=k(()=>e.column?e.column.filterMultiple:!0),h=x=>x.value===u.value,d=()=>{a.value=!1},v=x=>{x.stopPropagation(),a.value=!a.value},p=()=>{a.value=!1},m=()=>{_(f.value),d()},g=()=>{f.value=[],_(f.value),d()},y=x=>{u.value=x,_(typeof x<"u"&&x!==null?f.value:[]),d()},_=x=>{e.store.commit("filterChange",{column:e.column,values:x}),e.store.updateAllSelected()};we(a,x=>{e.column&&e.upDataColumn("filterOpened",x)},{immediate:!0});const b=k(()=>{var x,w;return(w=(x=o.value)==null?void 0:x.popperRef)==null?void 0:w.contentRef});return{tooltipVisible:a,multiple:c,filterClassName:l,filteredValue:f,filterValue:u,filters:s,handleConfirm:m,handleReset:g,handleSelect:y,isActive:h,t:r,ns:n,showFilterPanel:v,hideFilterPanel:p,popperPaneRef:b,tooltip:o}}}),LV={key:0},DV=["disabled"],IV=["label","onClick"];function OV(e,t,r,n,i,a){const o=xr("el-checkbox"),s=xr("el-checkbox-group"),l=xr("el-scrollbar"),u=xr("arrow-up"),f=xr("arrow-down"),c=xr("el-icon"),h=xr("el-tooltip"),d=fT("click-outside");return G(),de(h,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.filterClassName,persistent:""},{content:j(()=>[e.multiple?(G(),ce("div",LV,[ee("div",{class:re(e.ns.e("content"))},[Z(l,{"wrap-class":e.ns.e("wrap")},{default:j(()=>[Z(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:re(e.ns.e("checkbox-group"))},{default:j(()=>[(G(!0),ce(ft,null,Hp(e.filters,v=>(G(),de(o,{key:v.value,label:v.value},{default:j(()=>[mt(be(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ee("div",{class:re(e.ns.e("bottom"))},[ee("button",{class:re({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},be(e.t("el.table.confirmFilter")),11,DV),ee("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},be(e.t("el.table.resetFilter")),1)],2)])):(G(),ce("ul",{key:1,class:re(e.ns.e("list"))},[ee("li",{class:re([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},be(e.t("el.table.clearFilter")),3),(G(!0),ce(ft,null,Hp(e.filters,v=>(G(),ce("li",{key:v.value,class:re([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},be(v.text),11,IV))),128))],2))]),default:j(()=>[qt((G(),ce("span",{class:re([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[Z(c,null,{default:j(()=>[e.column.filterOpened?(G(),de(u,{key:0})):(G(),de(f,{key:1}))]),_:1})],2)),[[d,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var RV=Ke(EV,[["render",OV],["__file","filter-panel.vue"]]);function JA(e){const t=it();eh(()=>{r.value.addObserver(t)}),_t(()=>{n(r.value),i(r.value)}),Uu(()=>{n(r.value),i(r.value)}),Os(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(f=>{u[f.id]=f});for(let f=0,c=s.length;f{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let f=0,c=l.length;f{p.stopPropagation()},a=(p,m)=>{!m.filters&&m.sortable?v(p,m,!1):m.filterable&&!m.sortable&&i(p),n==null||n.emit("header-click",m,p)},o=(p,m)=>{n==null||n.emit("header-contextmenu",m,p)},s=$(null),l=$(!1),u=$({}),f=(p,m)=>{if(At&&!(m.children&&m.children.length>0)&&s.value&&e.border){l.value=!0;const g=n;t("set-drag-visible",!0);const _=(g==null?void 0:g.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${m.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Za(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=g==null?void 0:g.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=A=>{const P=A.clientX-u.value.startMouseLeft,E=u.value.startLeft+P;S.style.left=`${Math.max(w,E)}px`},M=()=>{if(l.value){const{startColumnLeft:A,startLeft:P}=u.value,L=Number.parseInt(S.style.left,10)-A;m.width=m.realWidth=L,g==null||g.emit("header-dragend",m.width,P-A,m,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{so(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},c=(p,m)=>{if(m.children&&m.children.length>0)return;const g=p.target;if(!mo(g))return;const y=g==null?void 0:g.closest("th");if(!(!m||!m.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",oo(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=m):l.value||(b.cursor="",oo(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},h=()=>{At&&(document.body.style.cursor="")},d=({order:p,sortOrders:m})=>{if(p==="")return m[0];const g=m.indexOf(p||null);return m[g>m.length-2?0:g+1]},v=(p,m,g)=>{var y;p.stopPropagation();const _=m.order===g?null:g||d(m),b=(y=p.target)==null?void 0:y.closest("th");if(b&&oo(b,"noclick")){so(b,"noclick");return}if(!m.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==m||C===m&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=m,w=m.property),_?S=m.order=_:S=m.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:v,handleFilterClick:i}}function NV(e){const t=Le(ri),r=Oe("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,f)=>{var c;let h=(c=t==null?void 0:t.props.headerCellStyle)!=null?c:{};typeof h=="function"&&(h=h.call(null,{rowIndex:s,columnIndex:l,row:u,column:f}));const d=Xy(l,f.fixed,e.store,u);return Ts(d,"left"),Ts(d,"right"),Object.assign({},h,d)},getHeaderCellClass:(s,l,u,f)=>{const c=Ky(r.b(),l,f.fixed,e.store,u),h=[f.id,f.order,f.headerAlign,f.className,f.labelClassName,...c];f.children||h.push("is-leaf"),f.sortable&&h.push("is-sortable");const d=t==null?void 0:t.props.headerCellClassName;return typeof d=="string"?h.push(d):typeof d=="function"&&h.push(d.call(null,{rowIndex:s,columnIndex:l,row:u,column:f})),h.push(r.e("cell")),h.filter(v=>!!v).join(" ")}}}const e2=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,e2(r.children))):t.push(r)}),t},BV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function FV(e){const t=Le(ri),r=k(()=>BV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var $V=ie({name:"ElTableHeader",components:{ElCheckbox:Cs},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=it(),n=Le(ri),i=Oe("table"),a=$({}),{onColumnsChange:o,onScrollableChange:s}=JA(n);_t(async()=>{await kt(),await kt();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:d,handleFilterClick:v}=kV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:m,getHeaderCellStyle:g,getHeaderCellClass:y}=NV(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=FV(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:m,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:g,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:d,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:f,handleSortClick:c,handleMouseOut:h,store:d,$parent:v}=this;let p=1;return Te("thead",{class:{[e.is("group")]:t}},r.map((m,g)=>Te("tr",{class:a(g),key:g,style:o(g)},m.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Te("th",{class:i(g,_,m,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(g,_,m,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>f(b,y),onMouseout:h},[Te("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:d,_self:v}):y.label,y.sortable&&Te("span",{onClick:b=>c(b,y),class:"caret-wrapper"},[Te("i",{onClick:b=>c(b,y,"ascending"),class:"sort-caret ascending"}),Te("i",{onClick:b=>c(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Te(RV,{store:d,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function HV(e){const t=Le(ri),r=$(""),n=$(Te("div")),i=(d,v,p)=>{var m;const g=t,y=cv(d);let _;const b=(m=g==null?void 0:g.vnode.el)==null?void 0:m.dataset.prefix;y&&(_=L1({columns:e.store.states.columns.value},y,b),_&&(g==null||g.emit(`cell-${p}`,v,_,y,d))),g==null||g.emit(`row-${p}`,v,_,d)},a=(d,v)=>{i(d,v,"dblclick")},o=(d,v)=>{e.store.commit("setCurrentRow",v),i(d,v,"click")},s=(d,v)=>{i(d,v,"contextmenu")},l=hd(d=>{e.store.commit("setHoverRow",d)},30),u=hd(()=>{e.store.commit("setHoverRow",null)},30),f=d=>{const v=window.getComputedStyle(d,null),p=Number.parseInt(v.paddingLeft,10)||0,m=Number.parseInt(v.paddingRight,10)||0,g=Number.parseInt(v.paddingTop,10)||0,y=Number.parseInt(v.paddingBottom,10)||0;return{left:p,right:m,top:g,bottom:y}};return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(d,v,p)=>{var m;const g=t,y=cv(d),_=(m=g==null?void 0:g.vnode.el)==null?void 0:m.dataset.prefix;if(y){const H=L1({columns:e.store.states.columns.value},y,_),V=g.hoverState={cell:y,column:H,row:v};g==null||g.emit("cell-mouse-enter",V.row,V.column,V.cell,d)}if(!p)return;const b=d.target.querySelector(".cell");if(!(oo(b,`${_}-tooltip`)&&b.childNodes.length))return;const x=document.createRange();x.setStart(b,0),x.setEnd(b,b.childNodes.length);let w=x.getBoundingClientRect().width,S=x.getBoundingClientRect().height;w-Math.floor(w)<.001&&(w=Math.floor(w)),S-Math.floor(S)<.001&&(S=Math.floor(S));const{top:A,left:P,right:E,bottom:L}=f(b),O=P+E,N=A+L;(w+O>b.offsetWidth||S+N>b.offsetHeight||b.scrollWidth>b.offsetWidth)&&yV(p,y.innerText||y.textContent,y,g)},handleCellMouseLeave:d=>{if(!cv(d))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,d)},tooltipContent:r,tooltipTrigger:n}}function zV(e){const t=Le(ri),r=Oe("table");return{getRowStyle:(u,f)=>{const c=t==null?void 0:t.props.rowStyle;return typeof c=="function"?c.call(null,{row:u,rowIndex:f}):c||null},getRowClass:(u,f)=>{const c=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&c.push("current-row"),e.stripe&&f%2===1&&c.push(r.em("row","striped"));const h=t==null?void 0:t.props.rowClassName;return typeof h=="string"?c.push(h):typeof h=="function"&&c.push(h.call(null,{row:u,rowIndex:f})),c},getCellStyle:(u,f,c,h)=>{const d=t==null?void 0:t.props.cellStyle;let v=d??{};typeof d=="function"&&(v=d.call(null,{rowIndex:u,columnIndex:f,row:c,column:h}));const p=Xy(f,e==null?void 0:e.fixed,e.store);return Ts(p,"left"),Ts(p,"right"),Object.assign({},v,p)},getCellClass:(u,f,c,h,d)=>{const v=Ky(r.b(),f,e==null?void 0:e.fixed,e.store,void 0,d),p=[h.id,h.align,h.className,...v],m=t==null?void 0:t.props.cellClassName;return typeof m=="string"?p.push(m):typeof m=="function"&&p.push(m.call(null,{rowIndex:u,columnIndex:f,row:c,column:h})),p.push(r.e("cell")),p.filter(g=>!!g).join(" ")},getSpan:(u,f,c,h)=>{let d=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const m=p({row:u,column:f,rowIndex:c,columnIndex:h});Array.isArray(m)?(d=m[0],v=m[1]):typeof m=="object"&&(d=m.rowspan,v=m.colspan)}return{rowspan:d,colspan:v}},getColspanRealWidth:(u,f,c)=>{if(f<1)return u[c].realWidth;const h=u.map(({realWidth:d,width:v})=>d||v).slice(c,c+f);return Number(h.reduce((d,v)=>Number(d)+Number(v),-1))}}}function VV(e){const t=Le(ri),r=Oe("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:f,tooltipTrigger:c}=HV(e),{getRowStyle:h,getRowClass:d,getCellStyle:v,getCellClass:p,getSpan:m,getColspanRealWidth:g}=zV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const M=t.props.rowKey;return M?Jt(S,M):C},b=(S,C,M,A=!1)=>{const{tooltipEffect:P,tooltipOptions:E,store:L}=e,{indent:O,columns:N}=L.states,H=d(S,C);let V=!0;return M&&(H.push(r.em("row",`level-${M.level}`)),V=M.display),Te("tr",{style:[V?null:{display:"none"},h(S,C)],class:H,key:_(S,C),onDblclick:F=>n(F,S),onClick:F=>i(F,S),onContextmenu:F=>a(F,S),onMouseenter:()=>o(C),onMouseleave:s},N.value.map((F,z)=>{const{rowspan:te,colspan:J}=m(S,F,C,z);if(!te||!J)return null;const me=Object.assign({},F);me.realWidth=g(N.value,J,z);const Se={store:e.store,_self:e.context||t,column:me,row:S,$index:C,cellIndex:z,expanded:A};z===y.value&&M&&(Se.treeNode={indent:M.level*O.value,level:M.level},typeof M.expanded=="boolean"&&(Se.treeNode.expanded=M.expanded,"loading"in M&&(Se.treeNode.loading=M.loading),"noLazyChildren"in M&&(Se.treeNode.noLazyChildren=M.noLazyChildren)));const $e=`${C},${z}`,Ie=me.columnKey||me.rawColumnKey||"",B=x(z,F,Se),Y=F.showOverflowTooltip&&m3({effect:P},E,F.showOverflowTooltip);return Te("td",{style:v(C,z,S,F),class:p(C,z,S,F,J-1),key:`${Ie}${$e}`,rowspan:te,colspan:J,onMouseenter:K=>l(K,S,Y),onMouseleave:u},[B])}))},x=(S,C,M)=>C.renderCell(M);return{wrappedRowRender:(S,C)=>{const M=e.store,{isRowExpanded:A,assertRowKey:P}=M,{treeData:E,lazyTreeNodeMap:L,childrenColumnName:O,rowKey:N}=M.states,H=M.states.columns.value;if(H.some(({type:U})=>U==="expand")){const U=A(S),F=b(S,C,void 0,U),z=t.renderExpanded;return U?z?[[F,Te("tr",{key:`expanded-row__${F.key}`},[Te("td",{colspan:H.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[z({row:S,$index:C,store:M,expanded:U})])])]]:(console.error("[Element Error]renderExpanded is required."),F):[[F]]}else if(Object.keys(E.value).length){P();const U=Jt(S,N.value);let F=E.value[U],z=null;F&&(z={expanded:F.expanded,level:F.level,display:!0},typeof F.lazy=="boolean"&&(typeof F.loaded=="boolean"&&F.loaded&&(z.noLazyChildren=!(F.children&&F.children.length)),z.loading=F.loading));const te=[b(S,C,z)];if(F){let J=0;const me=($e,Ie)=>{$e&&$e.length&&Ie&&$e.forEach(B=>{const Y={display:Ie.display&&Ie.expanded,level:Ie.level+1,expanded:!1,noLazyChildren:!1,loading:!1},K=Jt(B,N.value);if(K==null)throw new Error("For nested data item, row-key is required.");if(F={...E.value[K]},F&&(Y.expanded=F.expanded,F.level=F.level||Y.level,F.display=!!(F.expanded&&Y.display),typeof F.lazy=="boolean"&&(typeof F.loaded=="boolean"&&F.loaded&&(Y.noLazyChildren=!(F.children&&F.children.length)),Y.loading=F.loading)),J++,te.push(b(B,C+J,Y)),F){const Q=L.value[K]||B[O.value];me(Q,F)}})};F.display=!0;const Se=L.value[U]||S[O.value];me(Se,F)}return te}else return b(S,C,void 0)},tooltipContent:f,tooltipTrigger:c}}const WV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var GV=ie({name:"ElTableBody",props:WV,setup(e){const t=it(),r=Le(ri),n=Oe("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=VV(e),{onColumnsChange:s,onScrollableChange:l}=JA(r);return we(e.store.states.hoverRow,(u,f)=>{!e.store.states.isComplex.value||!At||q3(()=>{const c=t==null?void 0:t.vnode.el,h=Array.from((c==null?void 0:c.children)||[]).filter(p=>p==null?void 0:p.classList.contains(`${n.e("row")}`)),d=h[f],v=h[u];d&&so(d,"hover-row"),v&&Za(v,"hover-row")})}),Os(()=>{var u;(u=Xr)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Te("tbody",{tabIndex:-1},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function UV(){const e=Le(ri),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function YV(e){const{columns:t}=UV(),r=Oe("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ky(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Xy(o,a.fixed,e.store);return Ts(s,"left"),Ts(s,"right"),s},columns:t}}var jV=ie({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=YV(e);return{ns:Oe("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i}=this,a=this.store.states.data.value;let o=[];return n?o=n({columns:e,data:a}):e.forEach((s,l)=>{if(l===0){o[l]=i;return}const u=a.map(d=>Number(d[s.property])),f=[];let c=!0;u.forEach(d=>{if(!Number.isNaN(+d)){c=!1;const v=`${d}`.split(".")[1];f.push(v?v.length:0)}});const h=Math.max.apply(null,f);c?o[l]="":o[l]=u.reduce((d,v)=>{const p=Number(v);return Number.isNaN(+p)?d:Number.parseFloat((d+v).toFixed(Math.min(h,20)))},0)}),Te(Te("tfoot",[Te("tr",{},[...e.map((s,l)=>Te("td",{key:l,colspan:s.colSpan,rowspan:s.rowSpan,class:r(e,l),style:t(s,l)},[Te("div",{class:["cell",s.labelClassName]},[o[l]])]))])]))}});function qV(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,c)=>{e.toggleRowSelection(f,c,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,c)=>{e.toggleRowExpansionAdapter(f,c)},clearSort:()=>{e.clearSort()},sort:(f,c)=>{e.commit("sort",{prop:f,order:c})}}}function KV(e,t,r,n){const i=$(!1),a=$(null),o=$(!1),s=F=>{o.value=F},l=$({width:null,height:null,headerHeight:null}),u=$(!1),f={display:"inline-block",verticalAlign:"middle"},c=$(),h=$(0),d=$(0),v=$(0),p=$(0),m=$(0);na(()=>{t.setHeight(e.height)}),na(()=>{t.setMaxHeight(e.maxHeight)}),we(()=>[e.currentRowKey,r.states.rowKey],([F,z])=>{!T(z)||!T(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),we(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),na(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},y=(F,z)=>{const{pixelX:te,pixelY:J}=z;Math.abs(te)>=Math.abs(J)&&(n.refs.bodyWrapper.scrollLeft+=z.pixelX/5)},_=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),b=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),x=()=>{_.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(M)};_t(async()=>{await kt(),r.updateColumns(),A(),requestAnimationFrame(x);const F=n.vnode.el,z=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:c.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&z?z.offsetHeight:null},r.states.columns.value.forEach(te=>{te.filteredValue&&te.filteredValue.length&&n.store.commit("filterChange",{column:te,values:te.filteredValue,silent:!0})}),n.$ready=!0});const w=(F,z)=>{if(!F)return;const te=Array.from(F.classList).filter(J=>!J.startsWith("is-scrolling-"));te.push(t.scrollX.value?z:"is-scrolling-none"),F.className=te.join(" ")},S=F=>{const{tableWrapper:z}=n.refs;w(z,F)},C=F=>{const{tableWrapper:z}=n.refs;return!!(z&&z.classList.contains(F))},M=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const Ie="is-scrolling-none";C(Ie)||S(Ie);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:z,offsetWidth:te,scrollWidth:J}=F,{headerWrapper:me,footerWrapper:Se}=n.refs;me&&(me.scrollLeft=z),Se&&(Se.scrollLeft=z);const $e=J-te-1;z>=$e?S("is-scrolling-right"):S(z===0?"is-scrolling-left":"is-scrolling-middle")},A=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&xn(n.refs.scrollBarRef.wrapRef,"scroll",M,{passive:!0}),e.fit?ps(n.vnode.el,P):xn(window,"resize",P),ps(n.refs.bodyWrapper,()=>{var F,z;P(),(z=(F=n.refs)==null?void 0:F.scrollBarRef)==null||z.update()}))},P=()=>{var F,z,te,J;const me=n.vnode.el;if(!n.$ready||!me)return;let Se=!1;const{width:$e,height:Ie,headerHeight:B}=l.value,Y=c.value=me.offsetWidth;$e!==Y&&(Se=!0);const K=me.offsetHeight;(e.height||_.value)&&Ie!==K&&(Se=!0);const Q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(Q==null?void 0:Q.offsetHeight)!==B&&(Se=!0),h.value=((z=n.refs.tableWrapper)==null?void 0:z.scrollHeight)||0,v.value=(Q==null?void 0:Q.scrollHeight)||0,p.value=((te=n.refs.footerWrapper)==null?void 0:te.offsetHeight)||0,m.value=((J=n.refs.appendWrapper)==null?void 0:J.offsetHeight)||0,d.value=h.value-v.value-p.value-m.value,Se&&(l.value={width:Y,height:K,headerHeight:e.showHeader&&(Q==null?void 0:Q.offsetHeight)||0},x())},E=xi(),L=k(()=>{const{bodyWidth:F,scrollY:z,gutterWidth:te}=t;return F.value?`${F.value-(z.value?te:0)}px`:""}),O=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&d.value&&(F=`${d.value}px`);const z=c.value;return{width:z?`${z}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),V=k(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`}:{maxHeight:`${e.maxHeight-v.value-p.value}px`}:{});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:y,tableSize:E,emptyBlockStyle:N,handleFixedMousewheel:(F,z)=>{const te=n.refs.bodyWrapper;if(Math.abs(z.spinY)>0){const J=te.scrollTop;z.pixelY<0&&J!==0&&F.preventDefault(),z.pixelY>0&&te.scrollHeight-te.clientHeight>J&&F.preventDefault(),te.scrollTop+=Math.ceil(z.pixelY/5)}else te.scrollLeft+=Math.ceil(z.pixelX/5)},resizeProxyVisible:o,bodyWidth:L,resizeState:l,doLayout:x,tableBodyStyles:b,tableLayout:O,scrollbarViewStyle:f,tableInnerStyle:H,scrollbarStyle:V}}function XV(e){const t=$(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};_t(()=>{r()}),Os(()=>{var n;(n=t.value)==null||n.disconnect()})}var ZV={data:{type:Array,default:()=>[]},size:dh,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean,showOverflowTooltip:[Boolean,Object]};function t2(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Te("colgroup",{},r.map(i=>Te("col",n(i))))}t2.props=["columns","tableLayout"];const QV=()=>{const e=$(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&Rt(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let JV=1;const eW=ie({name:"ElTable",directives:{Mousewheel:d8},components:{TableHeader:$V,TableBody:GV,TableFooter:jV,ElScrollbar:uA,hColgroup:t2},props:ZV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=Fs(),r=Oe("table"),n=it();Dt(ri,n);const i=TV(n,e);n.store=i;const a=new AV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:h,toggleRowExpansion:d,clearSort:v,sort:p}=qV(i),{isHidden:m,renderExpanded:g,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:A,resizeState:P,doLayout:E,tableBodyStyles:L,tableLayout:O,scrollbarViewStyle:N,tableInnerStyle:H,scrollbarStyle:V}=KV(e,a,i,n),{scrollBarRef:U,scrollTo:F,setScrollLeft:z,setScrollTop:te}=QV(),J=hd(E,50),me=`${r.namespace.value}-table_${JV++}`;n.tableId=me,n.state={isGroup:_,resizeState:P,doLayout:E,debouncedUpdateLayout:J};const Se=k(()=>e.sumText||t("el.table.sumText")),$e=k(()=>e.emptyText||t("el.table.emptyText"));return XV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:me,tableSize:w,isHidden:m,isEmpty:o,renderExpanded:g,resizeProxyVisible:M,resizeState:P,isGroup:_,bodyWidth:A,tableBodyStyles:L,emptyBlockStyle:S,debouncedUpdateLayout:J,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:h,toggleRowExpansion:d,clearSort:v,doLayout:E,sort:p,t,setDragVisible:y,context:n,computedSumText:Se,computedEmptyText:$e,tableLayout:O,scrollbarViewStyle:N,tableInnerStyle:H,scrollbarStyle:V,scrollBarRef:U,scrollTo:F,setScrollLeft:z,setScrollTop:te}}}),tW=["data-prefix"],rW={ref:"hiddenColumns",class:"hidden-columns"};function nW(e,t,r,n,i,a){const o=xr("hColgroup"),s=xr("table-header"),l=xr("table-body"),u=xr("table-footer"),f=xr("el-scrollbar"),c=fT("mousewheel");return G(),ce("div",{ref:"tableWrapper",class:re([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:ct(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...h)=>e.handleMouseLeave&&e.handleMouseLeave(...h))},[ee("div",{class:re(e.ns.e("inner-wrapper")),style:ct(e.tableInnerStyle)},[ee("div",rW,[Ce(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?qt((G(),ce("div",{key:0,ref:"headerWrapper",class:re(e.ns.e("header-wrapper"))},[ee("table",{ref:"tableHeader",class:re(e.ns.e("header")),style:ct(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Z(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[c,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),ee("div",{ref:"bodyWrapper",class:re(e.ns.e("body-wrapper"))},[Z(f,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:j(()=>[ee("table",{ref:"tableBody",class:re(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:ct({width:e.bodyWidth,tableLayout:e.tableLayout})},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(G(),de(s,{key:0,ref:"tableHeaderRef",class:re(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","onSetDragVisible"])):Ae("v-if",!0),Z(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&e.tableLayout==="auto"?(G(),de(u,{key:1,class:re(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Ae("v-if",!0)],6),e.isEmpty?(G(),ce("div",{key:0,ref:"emptyBlock",style:ct(e.emptyBlockStyle),class:re(e.ns.e("empty-block"))},[ee("span",{class:re(e.ns.e("empty-text"))},[Ce(e.$slots,"empty",{},()=>[mt(be(e.computedEmptyText),1)])],2)],6)):Ae("v-if",!0),e.$slots.append?(G(),ce("div",{key:1,ref:"appendWrapper",class:re(e.ns.e("append-wrapper"))},[Ce(e.$slots,"append")],2)):Ae("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary&&e.tableLayout==="fixed"?qt((G(),ce("div",{key:1,ref:"footerWrapper",class:re(e.ns.e("footer-wrapper"))},[ee("table",{class:re(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:ct(e.tableBodyStyles)},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Z(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Kn,!e.isEmpty],[c,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),e.border||e.isGroup?(G(),ce("div",{key:2,class:re(e.ns.e("border-left-patch"))},null,2)):Ae("v-if",!0)],6),qt(ee("div",{ref:"resizeProxy",class:re(e.ns.e("column-resize-proxy"))},null,2),[[Kn,e.resizeProxyVisible]])],46,tW)}var iW=Ke(eW,[["render",nW],["__file","table.vue"]]);const aW={selection:"table-column--selection",expand:"table__expand-column"},oW={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},sW=e=>aW[e]||"",lW={selection:{renderHeader({store:e,column:t}){function r(){return e.states.data.value&&e.states.data.value.length===0}return Te(Cs,{disabled:r(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value,ariaLabel:t.label})},renderCell({row:e,column:t,store:r,$index:n}){return Te(Cs,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e),ariaLabel:t.label})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Te("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Te("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Te(Nt,null,{default:()=>[Te(Ey)]})]})},sortable:!1,resizable:!1}};function uW({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&Ec(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function fW({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Te("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Te("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=Ey;t.loading&&(l=Ly),a.push(Te("div",{class:s,onClick:o},{default:()=>[Te(Nt,{class:{[i.is("loading")]:t.loading}},{default:()=>[Te(l)]})]}))}else a.push(Te("span",{class:i.e("placeholder")}));return a}function O1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function cW(e,t){const r=it();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=O1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ue(t,u)&&we(()=>t[u],f=>{let c=f;u==="width"&&l==="realWidth"&&(c=qy(f)),u==="minWidth"&&l==="realMinWidth"&&(c=qA(f)),r.columnConfig.value[u]=c,r.columnConfig.value[l]=c;const h=u==="fixed";e.value.store.scheduleLayout(h)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=O1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ue(t,u)&&we(()=>t[u],f=>{r.columnConfig.value[l]=f})})}}}function dW(e,t,r){const n=it(),i=$(""),a=$(!1),o=$(),s=$(),l=Oe("table");na(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),na(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),f=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:x}=b.states,w=x.value;return w&&Object.keys(w).length>0}),c=$(qy(e.width)),h=$(qA(e.minWidth)),d=b=>(c.value&&(b.width=c.value),h.value&&(b.minWidth=h.value),!c.value&&h.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const x=b.type,w=lW[x]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const S=sW(x);if(S){const C=`${T(l.namespace)}-${S}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>x(w)):x(b);function x(w){var S;((S=w==null?void 0:w.type)==null?void 0:S.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:d,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>(n.columnConfig.value.label,Ce(t,"header",w,()=>[b.label])));let x=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Te("div",{class:"cell"},[x(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(x=x||uW,b.renderCell=w=>{let S=null;if(t.default){const L=t.default(w);S=L.some(O=>O.type!==Mr)?L:x(w)}else S=x(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(L=>L.type==="default"),A=f.value&&w.cellIndex===M,P=fW(w,A),E={class:"cell",style:{}};return b.showOverflowTooltip&&(E.class=`${E.class} ${T(l.namespace)}-tooltip`,E.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(S),Te("div",E,[P,S])}),b},getPropsData:(...b)=>b.reduce((x,w)=>(Array.isArray(w)&&w.forEach(S=>{x[S]=e[S]}),x),{}),getColumnElIndex:(b,x)=>Array.prototype.indexOf.call(b,x),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var hW={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let vW=1;var r2=ie({name:"ElTableColumn",components:{ElCheckbox:Cs},props:hW,setup(e,{slots:t}){const r=it(),n=$({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=cW(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:f,setColumnWidth:c,setColumnForcedProps:h,setColumnRenders:d,getPropsData:v,getColumnElIndex:p,realAlign:m,updateColumnOrder:g}=dW(e,t,i),y=f.value;s.value=`${y.tableId||y.columnId}_column_${vW++}`,eh(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,x=ys(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip,w={...oW[_],id:s.value,type:_,property:e.prop||e.property,align:m,headerAlign:u,showOverflowTooltip:x,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let P=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);P=vV(w,P),P=gV(d,c,h)(P),n.value=P,a(),o()}),_t(()=>{var _;const b=f.value,x=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(x||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,g)}),tr(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,g)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===ft&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!ze(s==null?void 0:s.children)&&i.push(s)});return Te("div",i)}catch{return Te("div",[])}}});const pW=Yt(iW,{TableColumn:r2}),gW=pa(r2),mW=Je({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:Bs,default:""},truncated:{type:Boolean},lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),yW=ie({name:"ElText"}),_W=ie({...yW,props:mW,setup(e){const t=e,r=xi(),n=Oe("text"),i=k(()=>[n.b(),n.m(t.type),n.m(r.value),n.is("truncated",t.truncated),n.is("line-clamp",!ys(t.lineClamp))]);return(a,o)=>(G(),de(Vt(a.tag),{class:re(T(i)),style:ct({"-webkit-line-clamp":a.lineClamp})},{default:j(()=>[Ce(a.$slots,"default")]),_:3},8,["class","style"]))}});var bW=Ke(_W,[["__file","text.vue"]]);const wW=Yt(bW),n2=["success","info","warning","error"],wr=ja({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:At?document.body:void 0}),SW=Je({customClass:{type:String,default:wr.customClass},center:{type:Boolean,default:wr.center},dangerouslyUseHTMLString:{type:Boolean,default:wr.dangerouslyUseHTMLString},duration:{type:Number,default:wr.duration},icon:{type:vr,default:wr.icon},id:{type:String,default:wr.id},message:{type:Be([String,Object,Function]),default:wr.message},onClose:{type:Be(Function),required:!1},showClose:{type:Boolean,default:wr.showClose},type:{type:String,values:n2,default:wr.type},offset:{type:Number,default:wr.offset},zIndex:{type:Number,default:wr.zIndex},grouping:{type:Boolean,default:wr.grouping},repeatNum:{type:Number,default:wr.repeatNum}}),xW={destroy:()=>!0},Cn=Qm([]),CW=e=>{const t=Cn.findIndex(i=>i.id===e),r=Cn[t];let n;return t>0&&(n=Cn[t-1]),{current:r,prev:n}},TW=e=>{const{prev:t}=CW(e);return t?t.vm.exposed.bottom.value:0},MW=(e,t)=>Cn.findIndex(n=>n.id===e)>0?20:t,AW=["id"],PW=["innerHTML"],EW=ie({name:"ElMessage"}),LW=ie({...EW,props:SW,emits:xW,setup(e,{expose:t}){const r=e,{Close:n}=G3,{ns:i,zIndex:a}=m4("message"),{currentZIndex:o,nextZIndex:s}=a,l=$(),u=$(!1),f=$(0);let c;const h=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),d=k(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Wb[S]}}),v=k(()=>r.icon||Wb[r.type]||""),p=k(()=>TW(r.id)),m=k(()=>MW(r.id,r.offset)+p.value),g=k(()=>f.value+m.value),y=k(()=>({top:`${m.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:c}=hu(()=>{x()},r.duration))}function b(){c==null||c()}function x(){u.value=!1}function w({code:S}){S===hr.esc&&x()}return _t(()=>{_(),s(),u.value=!0}),we(()=>r.repeatNum,()=>{b(),_()}),xn(document,"keydown",w),ps(l,()=>{f.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:g,close:x}),(S,C)=>(G(),de(ti,{name:T(i).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:C[0]||(C[0]=M=>S.$emit("destroy")),persisted:""},{default:j(()=>[qt(ee("div",{id:S.id,ref_key:"messageRef",ref:l,class:re([T(i).b(),{[T(i).m(S.type)]:S.type},T(i).is("center",S.center),T(i).is("closable",S.showClose),S.customClass]),style:ct(T(y)),role:"alert",onMouseenter:b,onMouseleave:_},[S.repeatNum>1?(G(),de(T(Nz),{key:0,value:S.repeatNum,type:T(h),class:re(T(i).e("badge"))},null,8,["value","type","class"])):Ae("v-if",!0),T(v)?(G(),de(T(Nt),{key:1,class:re([T(i).e("icon"),T(d)])},{default:j(()=>[(G(),de(Vt(T(v))))]),_:1},8,["class"])):Ae("v-if",!0),Ce(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(G(),ce(ft,{key:1},[Ae(" Caution here, message could've been compromised, never use user's input as message "),ee("p",{class:re(T(i).e("content")),innerHTML:S.message},null,10,PW)],2112)):(G(),ce("p",{key:0,class:re(T(i).e("content"))},be(S.message),3))]),S.showClose?(G(),de(T(Nt),{key:2,class:re(T(i).e("closeBtn")),onClick:ua(x,["stop"])},{default:j(()=>[Z(T(n))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],46,AW),[[Kn,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var DW=Ke(LW,[["__file","message.vue"]]);let IW=1;const i2=e=>{const t=!e||ze(e)||la(e)||De(e)?{message:e}:e,r={...wr,...t};if(!r.appendTo)r.appendTo=document.body;else if(ze(r.appendTo)){let n=document.querySelector(r.appendTo);mo(n)||(n=document.body),r.appendTo=n}return r},OW=e=>{const t=Cn.indexOf(e);if(t===-1)return;Cn.splice(t,1);const{handler:r}=e;r.close()},RW=({appendTo:e,...t},r)=>{const n=`message_${IW++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),OW(f)},onDestroy:()=>{ld(null,a)}},s=Z(DW,o,De(o.message)||la(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ms._context,ld(s,a),e.appendChild(a.firstElementChild);const l=s.component,f={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return f},Ms=(e={},t)=>{if(!At)return{close:()=>{}};if(Rt(i1.max)&&Cn.length>=i1.max)return{close:()=>{}};const r=i2(e);if(r.grouping&&Cn.length){const i=Cn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=RW(r,t);return Cn.push(n),n.handler};n2.forEach(e=>{Ms[e]=(t={},r)=>{const n=i2(t);return Ms({...n,type:e},r)}});function kW(e){for(const t of Cn)(!e||e===t.props.type)&&t.handler.close()}Ms.closeAll=kW;Ms._context=null;const Wl=U3(Ms,"$message"),NW={id:"app"},BW={class:"grid-content header-color"},FW={class:"header-content"},$W=ee("div",{class:"brand"},[ee("a",{href:"#"},"frp")],-1),HW={class:"dark-switch"},zW=ee("span",null,"Proxies",-1),VW={id:"content"},WW=ee("footer",null,null,-1),GW=ie({__name:"App",setup(e){const t=XR(),r=$(t),n=mR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=cV,l=H6,u=z6,f=$6,c=$A,h=xr("router-view"),d=FA;return G(),ce("div",NW,[ee("header",BW,[ee("div",FW,[$W,ee("div",HW,[Z(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:T(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ee("section",null,[Z(d,null,{default:j(()=>[Z(c,{id:"side-nav",xs:24,md:4},{default:j(()=>[Z(f,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:j(()=>[Z(l,{index:"/"},{default:j(()=>[mt("Overview")]),_:1}),Z(u,{index:"/proxies"},{title:j(()=>[zW]),default:j(()=>[Z(l,{index:"/proxies/tcp"},{default:j(()=>[mt("TCP")]),_:1}),Z(l,{index:"/proxies/udp"},{default:j(()=>[mt("UDP")]),_:1}),Z(l,{index:"/proxies/http"},{default:j(()=>[mt("HTTP")]),_:1}),Z(l,{index:"/proxies/https"},{default:j(()=>[mt("HTTPS")]),_:1}),Z(l,{index:"/proxies/stcp"},{default:j(()=>[mt("STCP")]),_:1}),Z(l,{index:"/proxies/sudp"},{default:j(()=>[mt("SUDP")]),_:1})]),_:1}),Z(l,{index:""},{default:j(()=>[mt("Help")]),_:1})]),_:1})]),_:1}),Z(c,{xs:24,md:20},{default:j(()=>[ee("div",VW,[Z(h)])]),_:1})]),_:1})]),WW])}}});/*! +*/const c8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=f8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},d8={beforeMount(e,t){c8(e,t.value)}},IA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:dh,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},OA={[wi]:e=>ze(e)||kt(e)||zr(e),change:e=>ze(e)||kt(e)||zr(e)},Ws=Symbol("checkboxGroupContextKey"),h8=({model:e,isChecked:t})=>{const r=Le(Ws,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!bs(s)&&e.value.length>=s&&!t.value||!bs(l)&&e.value.length<=l&&t.value});return{isDisabled:vh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},v8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Le(Ws,void 0),{formItem:s}=tf(),{emit:l}=it();function u(v){var p,m;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(m=e.falseLabel)!=null?m:!1}function f(v,p){l("change",u(v),p)}function c(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function h(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(g=>g.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Nt(),f(t.value,v)))}const d=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return be(()=>e.modelValue,()=>{d.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:c,onClickRoot:h}},p8=e=>{const t=$(!1),{emit:r}=it(),n=Le(Ws,void 0),i=k(()=>bs(n)===!1),a=$(!1),o=k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&_e(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value)&&s.length>o.value.length,a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(wi,s),t.value=s)}});return{model:o,isGroup:i,isLimitExceeded:a}},g8=(e,t,{model:r})=>{const n=Le(Ws,void 0),i=$(!1),a=k(()=>{const u=r.value;return zr(u)?u:_e(u)?qe(e.label)?u.map(Qe).some(f=>p3(f,e.label)):u.map(Qe).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=xi(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=xi(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!t.default||!_s(e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},m8=(e,{model:t})=>{function r(){_e(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},RA=(e,t)=>{const{formItem:r}=tf(),{model:n,isGroup:i,isLimitExceeded:a}=p8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f}=g8(e,t,{model:n}),{isDisabled:c}=h8({model:n,isChecked:s}),{inputId:h,isLabeledByFormItem:d}=Vy(e,{formItemContext:r,disableIdGeneration:f,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=v8(e,{model:n,isLimitExceeded:a,hasOwnLabel:f,isDisabled:c,isLabeledByFormItem:d});return m8(e,{model:n}),{inputId:h,isLabeledByFormItem:d,isChecked:s,isDisabled:c,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f,model:n,handleChange:v,onClickRoot:p}},y8=["id","indeterminate","name","tabindex","disabled","true-value","false-value"],_8=["id","indeterminate","disabled","value","name","tabindex"],b8=ie({name:"ElCheckbox"}),w8=ie({...b8,props:IA,emits:OA,setup(e){const t=e,r=Ns(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:f,handleChange:c,onClickRoot:h}=RA(t,r),d=Oe("checkbox"),v=k(()=>[d.b(),d.m(l.value),d.is("disabled",o.value),d.is("bordered",t.border),d.is("checked",a.value)]),p=k(()=>[d.e("input"),d.is("disabled",o.value),d.is("checked",a.value),d.is("indeterminate",t.indeterminate),d.is("focus",s.value)]);return(m,g)=>(G(),ve(Vt(!T(u)&&T(i)?"span":"label"),{class:re(T(v)),"aria-controls":m.indeterminate?m.controls:null,onClick:T(h)},{default:q(()=>[te("span",{class:re(T(p))},[m.trueLabel||m.falseLabel?qt((G(),ce("input",{key:0,id:T(n),"onUpdate:modelValue":g[0]||(g[0]=y=>Pt(f)?f.value=y:null),class:re(T(d).e("original")),type:"checkbox",indeterminate:m.indeterminate,name:m.name,tabindex:m.tabindex,disabled:T(o),"true-value":m.trueLabel,"false-value":m.falseLabel,onChange:g[1]||(g[1]=(...y)=>T(c)&&T(c)(...y)),onFocus:g[2]||(g[2]=y=>s.value=!0),onBlur:g[3]||(g[3]=y=>s.value=!1),onClick:g[4]||(g[4]=ua(()=>{},["stop"]))},null,42,y8)),[[sd,T(f)]]):qt((G(),ce("input",{key:1,id:T(n),"onUpdate:modelValue":g[5]||(g[5]=y=>Pt(f)?f.value=y:null),class:re(T(d).e("original")),type:"checkbox",indeterminate:m.indeterminate,disabled:T(o),value:m.label,name:m.name,tabindex:m.tabindex,onChange:g[6]||(g[6]=(...y)=>T(c)&&T(c)(...y)),onFocus:g[7]||(g[7]=y=>s.value=!0),onBlur:g[8]||(g[8]=y=>s.value=!1),onClick:g[9]||(g[9]=ua(()=>{},["stop"]))},null,42,_8)),[[sd,T(f)]]),te("span",{class:re(T(d).e("inner"))},null,2)],2),T(u)?(G(),ce("span",{key:0,class:re(T(d).e("label"))},[Ce(m.$slots,"default"),m.$slots.default?Ae("v-if",!0):(G(),ce(ft,{key:0},[pt(xe(m.label),1)],64))],2)):Ae("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var S8=Ke(w8,[["__file","checkbox.vue"]]);const x8=["name","tabindex","disabled","true-value","false-value"],C8=["name","tabindex","disabled","value"],T8=ie({name:"ElCheckboxButton"}),M8=ie({...T8,props:IA,emits:OA,setup(e){const t=e,r=Ns(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=RA(t,r),u=Le(Ws,void 0),f=Oe("checkbox"),c=k(()=>{var d,v,p,m;const g=(v=(d=u==null?void 0:u.fill)==null?void 0:d.value)!=null?v:"";return{backgroundColor:g,borderColor:g,color:(m=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?m:"",boxShadow:g?`-1px 0 0 0 ${g}`:void 0}}),h=k(()=>[f.b("button"),f.bm("button",o.value),f.is("disabled",a.value),f.is("checked",i.value),f.is("focus",n.value)]);return(d,v)=>(G(),ce("label",{class:re(T(h))},[d.trueLabel||d.falseLabel?qt((G(),ce("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Pt(s)?s.value=p:null),class:re(T(f).be("button","original")),type:"checkbox",name:d.name,tabindex:d.tabindex,disabled:T(a),"true-value":d.trueLabel,"false-value":d.falseLabel,onChange:v[1]||(v[1]=(...p)=>T(l)&&T(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1),onClick:v[4]||(v[4]=ua(()=>{},["stop"]))},null,42,x8)),[[sd,T(s)]]):qt((G(),ce("input",{key:1,"onUpdate:modelValue":v[5]||(v[5]=p=>Pt(s)?s.value=p:null),class:re(T(f).be("button","original")),type:"checkbox",name:d.name,tabindex:d.tabindex,disabled:T(a),value:d.label,onChange:v[6]||(v[6]=(...p)=>T(l)&&T(l)(...p)),onFocus:v[7]||(v[7]=p=>n.value=!0),onBlur:v[8]||(v[8]=p=>n.value=!1),onClick:v[9]||(v[9]=ua(()=>{},["stop"]))},null,42,C8)),[[sd,T(s)]]),d.$slots.default||d.label?(G(),ce("span",{key:2,class:re(T(f).be("button","inner")),style:ct(T(i)?T(c):void 0)},[Ce(d.$slots,"default",{},()=>[pt(xe(d.label),1)])],6)):Ae("v-if",!0)],2))}});var kA=Ke(M8,[["__file","checkbox-button.vue"]]);const A8=Je({modelValue:{type:Be(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:dh,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),P8={[wi]:e=>_e(e),change:e=>_e(e)},E8=ie({name:"ElCheckboxGroup"}),L8=ie({...E8,props:A8,emits:P8,setup(e,{emit:t}){const r=e,n=Oe("checkbox"),{formItem:i}=tf(),{inputId:a,isLabeledByFormItem:o}=Vy(r,{formItemContext:i}),s=async u=>{t(wi,u),await Nt(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return Dt(Ws,{...b3(Kd(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),be(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,f)=>{var c;return G(),ve(Vt(u.tag),{id:T(a),class:re(T(n).b("group")),role:"group","aria-label":T(o)?void 0:u.label||"checkbox-group","aria-labelledby":T(o)?(c=T(i))==null?void 0:c.labelId:void 0},{default:q(()=>[Ce(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var NA=Ke(L8,[["__file","checkbox-group.vue"]]);const Ms=Yt(S8,{CheckboxButton:kA,CheckboxGroup:NA});pa(kA);pa(NA);const D8=Je({type:{type:String,values:["success","info","warning","danger",""],default:""},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:{type:String,default:""},size:{type:String,values:$s,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),I8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},O8=ie({name:"ElTag"}),R8=ie({...O8,props:D8,emits:I8,setup(e,{emit:t}){const r=e,n=xi(),i=Oe("tag"),a=k(()=>{const{type:l,hit:u,effect:f,closable:c,round:h}=r;return[i.b(),i.is("closable",c),i.m(l),i.m(n.value),i.m(f),i.is("hit",u),i.is("round",h)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(G(),ce("span",{key:0,class:re(T(a)),style:ct({backgroundColor:l.color}),onClick:s},[te("span",{class:re(T(i).e("content"))},[Ce(l.$slots,"default")],2),l.closable?(G(),ve(T(Bt),{key:0,class:re(T(i).e("close")),onClick:ua(o,["stop"])},{default:q(()=>[Z(T(vd))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)):(G(),ve(ti,{key:1,name:`${T(i).namespace.value}-zoom-in-center`,appear:""},{default:q(()=>[te("span",{class:re(T(a)),style:ct({backgroundColor:l.color}),onClick:s},[te("span",{class:re(T(i).e("content"))},[Ce(l.$slots,"default")],2),l.closable?(G(),ve(T(Bt),{key:0,class:re(T(i).e("close")),onClick:ua(o,["stop"])},{default:q(()=>[Z(T(vd))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)]),_:3},8,["name"]))}});var k8=Ke(R8,[["__file","tag.vue"]]);const N8=Yt(k8),BA=Symbol("rowContextKey"),B8=["start","center","end","space-around","space-between","space-evenly"],F8=["top","middle","bottom"],$8=Je({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:B8,default:"start"},align:{type:String,values:F8}}),H8=ie({name:"ElRow"}),z8=ie({...H8,props:$8,setup(e){const t=e,r=Oe("row"),n=k(()=>t.gutter);Dt(BA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,!!t.align)]);return(o,s)=>(G(),ve(Vt(o.tag),{class:re(T(a)),style:ct(T(i))},{default:q(()=>[Ce(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ke(z8,[["__file","row.vue"]]);const FA=Yt(V8),W8=Je({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Be([Number,Object]),default:()=>ja({})},sm:{type:Be([Number,Object]),default:()=>ja({})},md:{type:Be([Number,Object]),default:()=>ja({})},lg:{type:Be([Number,Object]),default:()=>ja({})},xl:{type:Be([Number,Object]),default:()=>ja({})}}),G8=ie({name:"ElCol"}),U8=ie({...G8,props:W8,setup(e){const t=e,{gutter:r}=Le(BA,{gutter:k(()=>0)}),n=Oe("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const f=t[u];kt(f)&&(u==="span"?o.push(n.b(`${t[u]}`)):f>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{kt(t[u])?o.push(n.b(`${u}-${t[u]}`)):qe(t[u])&&Object.entries(t[u]).forEach(([f,c])=>{o.push(f!=="span"?n.b(`${u}-${f}-${c}`):n.b(`${u}-${c}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(G(),ve(Vt(o.tag),{class:re(T(a)),style:ct(T(i))},{default:q(()=>[Ce(o.$slots,"default")]),_:3},8,["class","style"]))}});var Y8=Ke(U8,[["__file","col.vue"]]);const $A=Yt(Y8),j8=ie({name:"ElCollapseTransition"}),q8=ie({...j8,setup(e){const t=Oe("collapse-transition"),r=i=>{i.style.maxHeight="",i.style.overflow=i.dataset.oldOverflow,i.style.paddingTop=i.dataset.oldPaddingTop,i.style.paddingBottom=i.dataset.oldPaddingBottom},n={beforeEnter(i){i.dataset||(i.dataset={}),i.dataset.oldPaddingTop=i.style.paddingTop,i.dataset.oldPaddingBottom=i.style.paddingBottom,i.style.height&&(i.dataset.elExistsHeight=i.style.height),i.style.maxHeight=0,i.style.paddingTop=0,i.style.paddingBottom=0},enter(i){requestAnimationFrame(()=>{i.dataset.oldOverflow=i.style.overflow,i.dataset.elExistsHeight?i.style.maxHeight=i.dataset.elExistsHeight:i.scrollHeight!==0?i.style.maxHeight=`${i.scrollHeight}px`:i.style.maxHeight=0,i.style.paddingTop=i.dataset.oldPaddingTop,i.style.paddingBottom=i.dataset.oldPaddingBottom,i.style.overflow="hidden"})},afterEnter(i){i.style.maxHeight="",i.style.overflow=i.dataset.oldOverflow},enterCancelled(i){r(i)},beforeLeave(i){i.dataset||(i.dataset={}),i.dataset.oldPaddingTop=i.style.paddingTop,i.dataset.oldPaddingBottom=i.style.paddingBottom,i.dataset.oldOverflow=i.style.overflow,i.style.maxHeight=`${i.scrollHeight}px`,i.style.overflow="hidden"},leave(i){i.scrollHeight!==0&&(i.style.maxHeight=0,i.style.paddingTop=0,i.style.paddingBottom=0)},afterLeave(i){r(i)},leaveCancelled(i){r(i)}};return(i,a)=>(G(),ve(ti,ei({name:T(t).b()},YI(n)),{default:q(()=>[Ce(i.$slots,"default")]),_:3},16,["name"]))}});var Bc=Ke(q8,[["__file","collapse-transition.vue"]]);Bc.install=e=>{e.component(Bc.name,Bc)};const K8=Bc,X8=Je({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Be([String,Array,Object])},zIndex:{type:Be([String,Number])}}),Z8={click:e=>e instanceof MouseEvent},Q8="overlay";var J8=ie({name:"ElOverlay",props:X8,emits:Z8,setup(e,{slots:t,emit:r}){const n=Oe(Q8),i=l=>{r("click",l)},{onClick:a,onMousedown:o,onMouseup:s}=XM(e.customMaskEvent?void 0:i);return()=>e.mask?Z("div",{class:[n.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:a,onMousedown:o,onMouseup:s},[Ce(t,"default")],Lc.STYLE|Lc.CLASS|Lc.PROPS,["onClick","onMouseup","onMousedown"]):Te("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ce(t,"default")])}});const e6=J8,HA=Symbol("dialogInjectionKey"),zA=Je({center:Boolean,alignCenter:Boolean,closeIcon:{type:vr},customClass:{type:String,default:""},draggable:Boolean,fullscreen:Boolean,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),t6={close:()=>!0},r6=["aria-level"],n6=["aria-label"],i6=["id"],a6=ie({name:"ElDialogContent"}),o6=ie({...a6,props:zA,emits:t6,setup(e){const t=e,{t:r}=Hs(),{Close:n}=W3,{dialogRef:i,headerRef:a,bodyId:o,ns:s,style:l}=Le(HA),{focusTrapRef:u}=Le(pA),f=k(()=>[s.b(),s.is("fullscreen",t.fullscreen),s.is("draggable",t.draggable),s.is("align-center",t.alignCenter),{[s.m("center")]:t.center},t.customClass]),c=Y3(u,i),h=k(()=>t.draggable);return K3(i,a,h),(d,v)=>(G(),ce("div",{ref:T(c),class:re(T(f)),style:ct(T(l)),tabindex:"-1"},[te("header",{ref_key:"headerRef",ref:a,class:re(T(s).e("header"))},[Ce(d.$slots,"header",{},()=>[te("span",{role:"heading","aria-level":d.ariaLevel,class:re(T(s).e("title"))},xe(d.title),11,r6)]),d.showClose?(G(),ce("button",{key:0,"aria-label":T(r)("el.dialog.close"),class:re(T(s).e("headerbtn")),type:"button",onClick:v[0]||(v[0]=p=>d.$emit("close"))},[Z(T(Bt),{class:re(T(s).e("close"))},{default:q(()=>[(G(),ve(Vt(d.closeIcon||T(n))))]),_:1},8,["class"])],10,n6)):Ae("v-if",!0)],2),te("div",{id:T(o),class:re(T(s).e("body"))},[Ce(d.$slots,"default")],10,i6),d.$slots.footer?(G(),ce("footer",{key:0,class:re(T(s).e("footer"))},[Ce(d.$slots,"footer")],2)):Ae("v-if",!0)],6))}});var s6=Ke(o6,[["__file","dialog-content.vue"]]);const l6=Je({...zA,appendToBody:Boolean,appendTo:{type:Be(String),default:"body"},beforeClose:{type:Be(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1},headerAriaLevel:{type:String,default:"2"}}),u6={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[wi]:e=>zr(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},f6=(e,t)=>{var r;const i=it().emit,{nextZIndex:a}=zy();let o="";const s=xu(),l=xu(),u=$(!1),f=$(!1),c=$(!1),h=$((r=e.zIndex)!=null?r:a());let d,v;const p=hh("namespace",Bl),m=k(()=>{const N={},H=`--${p.value}-dialog`;return e.fullscreen||(e.top&&(N[`${H}-margin-top`]=e.top),e.width&&(N[`${H}-width`]=Zn(e.width))),N}),g=k(()=>e.alignCenter?{display:"flex"}:{});function y(){i("opened")}function _(){i("closed"),i(wi,!1),e.destroyOnClose&&(c.value=!1)}function b(){i("close")}function x(){v==null||v(),d==null||d(),e.openDelay&&e.openDelay>0?{stop:d}=hu(()=>M(),e.openDelay):M()}function w(){d==null||d(),v==null||v(),e.closeDelay&&e.closeDelay>0?{stop:v}=hu(()=>A(),e.closeDelay):A()}function S(){function N(H){H||(f.value=!0,u.value=!1)}e.beforeClose?e.beforeClose(N):w()}function C(){e.closeOnClickModal&&S()}function M(){At&&(u.value=!0)}function A(){u.value=!1}function P(){i("openAutoFocus")}function E(){i("closeAutoFocus")}function L(N){var H;((H=N.detail)==null?void 0:H.focusReason)==="pointer"&&N.preventDefault()}e.lockScroll&&t5(u);function O(){e.closeOnPressEscape&&S()}return be(()=>e.modelValue,N=>{N?(f.value=!1,x(),c.value=!0,h.value=MM(e.zIndex)?a():h.value++,Nt(()=>{i("open"),t.value&&(t.value.scrollTop=0)})):u.value&&w()}),be(()=>e.fullscreen,N=>{t.value&&(N?(o=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=o)}),_t(()=>{e.modelValue&&(u.value=!0,c.value=!0,x())}),{afterEnter:y,afterLeave:_,beforeLeave:b,handleClose:S,onModalClick:C,close:w,doClose:A,onOpenAutoFocus:P,onCloseAutoFocus:E,onCloseRequested:O,onFocusoutPrevented:L,titleId:s,bodyId:l,closed:f,style:m,overlayDialogStyle:g,rendered:c,visible:u,zIndex:h}},c6=["aria-label","aria-labelledby","aria-describedby"],d6=ie({name:"ElDialog",inheritAttrs:!1}),h6=ie({...d6,props:l6,emits:u6,setup(e,{expose:t}){const r=e,n=Ns();bu({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},k(()=>!!n.title)),bu({scope:"el-dialog",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/dialog.html#attributes",type:"Attribute"},k(()=>!!r.customClass));const i=Oe("dialog"),a=$(),o=$(),s=$(),{visible:l,titleId:u,bodyId:f,style:c,overlayDialogStyle:h,rendered:d,zIndex:v,afterEnter:p,afterLeave:m,beforeLeave:g,handleClose:y,onModalClick:_,onOpenAutoFocus:b,onCloseAutoFocus:x,onCloseRequested:w,onFocusoutPrevented:S}=f6(r,a);Dt(HA,{dialogRef:a,headerRef:o,bodyId:f,ns:i,rendered:d,style:c});const C=XM(_),M=k(()=>r.draggable&&!r.fullscreen);return t({visible:l,dialogContentRef:s}),(A,P)=>(G(),ve(MT,{to:A.appendTo,disabled:A.appendTo!=="body"?!1:!A.appendToBody},[Z(ti,{name:"dialog-fade",onAfterEnter:T(p),onAfterLeave:T(m),onBeforeLeave:T(g),persisted:""},{default:q(()=>[qt(Z(T(e6),{"custom-mask-event":"",mask:A.modal,"overlay-class":A.modalClass,"z-index":T(v)},{default:q(()=>[te("div",{role:"dialog","aria-modal":"true","aria-label":A.title||void 0,"aria-labelledby":A.title?void 0:T(u),"aria-describedby":T(f),class:re(`${T(i).namespace.value}-overlay-dialog`),style:ct(T(h)),onClick:P[0]||(P[0]=(...E)=>T(C).onClick&&T(C).onClick(...E)),onMousedown:P[1]||(P[1]=(...E)=>T(C).onMousedown&&T(C).onMousedown(...E)),onMouseup:P[2]||(P[2]=(...E)=>T(C).onMouseup&&T(C).onMouseup(...E))},[Z(T(mA),{loop:"",trapped:T(l),"focus-start-el":"container",onFocusAfterTrapped:T(b),onFocusAfterReleased:T(x),onFocusoutPrevented:T(S),onReleaseRequested:T(w)},{default:q(()=>[T(d)?(G(),ve(s6,ei({key:0,ref_key:"dialogContentRef",ref:s},A.$attrs,{"custom-class":A.customClass,center:A.center,"align-center":A.alignCenter,"close-icon":A.closeIcon,draggable:T(M),fullscreen:A.fullscreen,"show-close":A.showClose,title:A.title,"aria-level":A.headerAriaLevel,onClose:T(y)}),UI({header:q(()=>[A.$slots.title?Ce(A.$slots,"title",{key:1}):Ce(A.$slots,"header",{key:0,close:T(y),titleId:T(u),titleClass:T(i).e("title")})]),default:q(()=>[Ce(A.$slots,"default")]),_:2},[A.$slots.footer?{name:"footer",fn:q(()=>[Ce(A.$slots,"footer")])}:void 0]),1040,["custom-class","center","align-center","close-icon","draggable","fullscreen","show-close","title","aria-level","onClose"])):Ae("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,c6)]),_:3},8,["mask","overlay-class","z-index"]),[[Kn,T(l)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["to","disabled"]))}});var v6=Ke(h6,[["__file","dialog.vue"]]);const p6=Yt(v6),g6=Je({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:Be(String),default:"solid"}}),m6=ie({name:"ElDivider"}),y6=ie({...m6,props:g6,setup(e){const t=e,r=Oe("divider"),n=k(()=>r.cssVar({"border-style":t.borderStyle}));return(i,a)=>(G(),ce("div",{class:re([T(r).b(),T(r).m(i.direction)]),style:ct(T(n)),role:"separator"},[i.$slots.default&&i.direction!=="vertical"?(G(),ce("div",{key:0,class:re([T(r).e("text"),T(r).is(i.contentPosition)])},[Ce(i.$slots,"default")],2)):Ae("v-if",!0)],6))}});var _6=Ke(y6,[["__file","divider.vue"]]);const VA=Yt(_6);let b6=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case hr.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case hr.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case hr.tab:{Ac(t,"mouseleave");break}case hr.enter:case hr.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},w6=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new b6(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case hr.down:{Ac(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case hr.up:{Ac(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case hr.tab:{Ac(t.currentTarget,"mouseleave");break}case hr.enter:case hr.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},S6=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new w6(n,t)})}};const x6=ie({name:"ElMenuCollapseTransition",setup(){const e=Oe("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Za(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){so(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),oo(r,e.m("collapse"))?(so(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Za(r,e.m("collapse"))):(Za(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),so(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Za(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function C6(e,t,r,n,i,a){return G(),ve(ti,ei({mode:"out-in"},e.listeners),{default:q(()=>[Ce(e.$slots,"default")]),_:3},16)}var T6=Ke(x6,[["render",C6],["__file","menu-collapse-transition.vue"]]);function WA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function M6(e){return k(()=>{const r=e.backgroundColor;return r?new SA(r).shade(20).toString():""})}const GA=(e,t)=>{const r=Oe("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":M6(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},A6=Je({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:vr},expandOpenIcon:{type:vr},collapseCloseIcon:{type:vr},collapseOpenIcon:{type:vr}}),Of="ElSubMenu";var jy=ie({name:Of,props:A6,setup(e,{slots:t,expose:r}){bu({from:"popper-append-to-body",replacement:"teleported",scope:Of,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=it(),{indexPath:i,parentMenu:a}=WA(n,k(()=>e.index)),o=Oe("menu"),s=Oe("sub-menu"),l=Le("rootMenu");l||bi(Of,"can not inject root menu");const u=Le(`subMenu:${a.value.uid}`);u||bi(Of,"can not inject sub menu");const f=$({}),c=$({});let h;const d=$(!1),v=$(),p=$(null),m=k(()=>C.value==="horizontal"&&y.value?"bottom-start":"right-start"),g=k(()=>C.value==="horizontal"&&y.value||C.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:EM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:Ey),y=k(()=>u.level===0),_=k(()=>{var z;const ee=(z=e.teleported)!=null?z:e.popperAppendToBody;return ee===void 0?y.value:ee}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=k(()=>C.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),S=k(()=>{let z=!1;return Object.values(f.value).forEach(ee=>{ee.active&&(z=!0)}),Object.values(c.value).forEach(ee=>{ee.active&&(z=!0)}),z}),C=k(()=>l.props.mode),M=Ln({index:e.index,indexPath:i,active:S}),A=GA(l.props,u.level+1),P=k(()=>{var z;return(z=e.popperOffset)!=null?z:l.props.popperOffset}),E=k(()=>{var z;return(z=e.popperClass)!=null?z:l.props.popperClass}),L=k(()=>{var z;return(z=e.showTimeout)!=null?z:l.props.showTimeout}),O=k(()=>{var z;return(z=e.hideTimeout)!=null?z:l.props.hideTimeout}),N=()=>{var z,ee,J;return(J=(ee=(z=p.value)==null?void 0:z.popperRef)==null?void 0:ee.popperInstanceRef)==null?void 0:J.destroy()},H=z=>{z||N()},V=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},U=(z,ee=L.value)=>{var J;if(z.type!=="focus"){if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled){u.mouseInChild.value=!0;return}u.mouseInChild.value=!0,h==null||h(),{stop:h}=hu(()=>{l.openMenu(e.index,i.value)},ee),_.value&&((J=a.value.vnode.el)==null||J.dispatchEvent(new MouseEvent("mouseenter")))}},F=(z=!1)=>{var ee;if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"){u.mouseInChild.value=!1;return}h==null||h(),u.mouseInChild.value=!1,{stop:h}=hu(()=>!d.value&&l.closeMenu(e.index,i.value),O.value),_.value&&z&&((ee=u.handleMouseleave)==null||ee.call(u,!0))};be(()=>l.props.collapse,z=>H(!!z));{const z=J=>{c.value[J.index]=J},ee=J=>{delete c.value[J.index]};Dt(`subMenu:${n.uid}`,{addSubMenu:z,removeSubMenu:ee,handleMouseleave:F,mouseInChild:d,level:u.level+1})}return r({opened:w}),_t(()=>{l.addSubMenu(M),u.addSubMenu(M)}),tr(()=>{u.removeSubMenu(M),l.removeSubMenu(M)}),()=>{var z;const ee=[(z=t.title)==null?void 0:z.call(t),Te(Bt,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>ze(g.value)?Te(n.appContext.components[g.value]):Te(g.value)})],J=l.isMenuPopup?Te(Vs,{ref:p,visible:w.value,effect:"light",pure:!0,offset:P.value,showArrow:!1,persistent:!0,popperClass:E.value,placement:m.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var me;return Te("div",{class:[o.m(C.value),o.m("popup-container"),E.value],onMouseenter:we=>U(we,100),onMouseleave:()=>F(!0),onFocus:we=>U(we,100)},[Te("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${m.value}`)],style:A.value},[(me=t.default)==null?void 0:me.call(t)])])},default:()=>Te("div",{class:s.e("title"),onClick:V},ee)}):Te(ft,{},[Te("div",{class:s.e("title"),ref:v,onClick:V},ee),Te(K8,{},{default:()=>{var me;return qt(Te("ul",{role:"menu",class:[o.b(),o.m("inline")],style:A.value},[(me=t.default)==null?void 0:me.call(t)]),[[Kn,w.value]])}})]);return Te("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:U,onMouseleave:()=>F(),onFocus:U},[J])}}});const P6=Je({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Be(Array),default:()=>ja([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:vr,default:()=>B3},popperEffect:{type:String,values:["dark","light"],default:"dark"},popperClass:String,showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300}}),uv=e=>Array.isArray(e)&&e.every(t=>ze(t)),E6={close:(e,t)=>ze(e)&&uv(t),open:(e,t)=>ze(e)&&uv(t),select:(e,t,r,n)=>ze(e)&&uv(t)&&qe(r)&&(n===void 0||n instanceof Promise)};var L6=ie({name:"ElMenu",props:P6,emits:E6,setup(e,{emit:t,slots:r,expose:n}){const i=it(),a=i.appContext.config.globalProperties.$router,o=$(),s=Oe("menu"),l=Oe("sub-menu"),u=$(-1),f=$(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),c=$(e.defaultActive),h=$({}),d=$({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const L=c.value&&h.value[c.value];if(!L||e.mode==="horizontal"||e.collapse)return;L.indexPath.forEach(N=>{const H=d.value[N];H&&m(N,H.indexPath)})},m=(L,O)=>{f.value.includes(L)||(e.uniqueOpened&&(f.value=f.value.filter(N=>O.includes(N))),f.value.push(L),t("open",L,O))},g=L=>{const O=f.value.indexOf(L);O!==-1&&f.value.splice(O,1)},y=(L,O)=>{g(L),t("close",L,O)},_=({index:L,indexPath:O})=>{f.value.includes(L)?y(L,O):m(L,O)},b=L=>{(e.mode==="horizontal"||e.collapse)&&(f.value=[]);const{index:O,indexPath:N}=L;if(!(_s(O)||_s(N)))if(e.router&&a){const H=L.route||O,V=a.push(H).then(U=>(U||(c.value=O),U));t("select",O,N,{index:O,indexPath:N,route:H},V)}else c.value=O,t("select",O,N,{index:O,indexPath:N})},x=L=>{const O=h.value,N=O[L]||c.value&&O[c.value]||O[e.defaultActive];N?c.value=N.index:c.value=L},w=()=>{var L,O;if(!o.value)return-1;const N=Array.from((O=(L=o.value)==null?void 0:L.childNodes)!=null?O:[]).filter(J=>J.nodeName!=="#comment"&&(J.nodeName!=="#text"||J.nodeValue)),H=64,V=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),U=Number.parseInt(getComputedStyle(o.value).paddingRight,10),F=o.value.clientWidth-V-U;let z=0,ee=0;return N.forEach((J,me)=>{z+=J.offsetWidth||0,z<=F-H&&(ee=me+1)}),ee===N.length?-1:ee},S=L=>d.value[L].indexPath,C=(L,O=33.34)=>{let N;return()=>{N&&clearTimeout(N),N=setTimeout(()=>{L()},O)}};let M=!0;const A=()=>{const L=()=>{u.value=-1,Nt(()=>{u.value=w()})};M?L():C(L)(),M=!1};be(()=>e.defaultActive,L=>{h.value[L]||(c.value=""),x(L)}),be(()=>e.collapse,L=>{L&&(f.value=[])}),be(h.value,p);let P;na(()=>{e.mode==="horizontal"&&e.ellipsis?P=ms(o,A).stop:P==null||P()});const E=$(!1);{const L=V=>{d.value[V.index]=V},O=V=>{delete d.value[V.index]};Dt("rootMenu",Ln({props:e,openedMenus:f,items:h,subMenus:d,activeIndex:c,isMenuPopup:v,addMenuItem:V=>{h.value[V.index]=V},removeMenuItem:V=>{delete h.value[V.index]},addSubMenu:L,removeSubMenu:O,openMenu:m,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),Dt(`subMenu:${i.uid}`,{addSubMenu:L,removeSubMenu:O,mouseInChild:E,level:0})}return _t(()=>{e.mode==="horizontal"&&new S6(i.vnode.el,s.namespace.value)}),n({open:O=>{const{indexPath:N}=d.value[O];N.forEach(H=>m(H,N))},close:g,handleResize:A}),()=>{var L,O;let N=(O=(L=r.default)==null?void 0:L.call(r))!=null?O:[];const H=[];if(e.mode==="horizontal"&&o.value){const z=Dc(N),ee=u.value===-1?z:z.slice(0,u.value),J=u.value===-1?[]:z.slice(u.value);J!=null&&J.length&&e.ellipsis&&(N=ee,H.push(Te(jy,{index:"sub-menu-more",class:l.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>Te(Bt,{class:l.e("icon-more")},{default:()=>Te(e.ellipsisIcon)}),default:()=>J})))}const V=GA(e,0),U=e.closeOnClickOutside?[[CA,()=>{f.value.length&&(E.value||(f.value.forEach(z=>t("close",z,S(z))),f.value=[]))}]]:[],F=qt(Te("ul",{key:String(e.collapse),role:"menubar",ref:o,style:V.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...N,...H]),U);return e.collapseTransition&&e.mode==="vertical"?Te(T6,()=>F):F}}});const D6=Je({index:{type:Be([String,null]),default:null},route:{type:Be([String,Object])},disabled:Boolean}),I6={click:e=>ze(e.index)&&Array.isArray(e.indexPath)},fv="ElMenuItem",O6=ie({name:fv,components:{ElTooltip:Vs},props:D6,emits:I6,setup(e,{emit:t}){const r=it(),n=Le("rootMenu"),i=Oe("menu"),a=Oe("menu-item");n||bi(fv,"can not inject root menu");const{parentMenu:o,indexPath:s}=WA(r,wn(e,"index")),l=Le(`subMenu:${o.value.uid}`);l||bi(fv,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),f=Ln({index:e.index,indexPath:s,active:u}),c=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",f))};return _t(()=>{l.addSubMenu(f),n.addMenuItem(f)}),tr(()=>{l.removeSubMenu(f),n.removeMenuItem(f)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:c}}});function R6(e,t,r,n,i,a){const o=xr("el-tooltip");return G(),ce("li",{class:re([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(G(),ve(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:q(()=>[Ce(e.$slots,"title")]),default:q(()=>[te("div",{class:re(e.nsMenu.be("tooltip","trigger"))},[Ce(e.$slots,"default")],2)]),_:3},8,["effect"])):(G(),ce(ft,{key:1},[Ce(e.$slots,"default"),Ce(e.$slots,"title")],64))],2)}var UA=Ke(O6,[["render",R6],["__file","menu-item.vue"]]);const k6={title:String},N6="ElMenuItemGroup",B6=ie({name:N6,props:k6,setup(){return{ns:Oe("menu-item-group")}}});function F6(e,t,r,n,i,a){return G(),ce("li",{class:re(e.ns.b())},[te("div",{class:re(e.ns.e("title"))},[e.$slots.title?Ce(e.$slots,"title",{key:1}):(G(),ce(ft,{key:0},[pt(xe(e.title),1)],64))],2),te("ul",null,[Ce(e.$slots,"default")])],2)}var YA=Ke(B6,[["render",F6],["__file","menu-item-group.vue"]]);const $6=Yt(L6,{MenuItem:UA,MenuItemGroup:YA,SubMenu:jy}),H6=pa(UA);pa(YA);const z6=pa(jy),V6=Je({icon:{type:vr,default:()=>D3},title:String,content:{type:String,default:""}}),W6={back:()=>!0},G6=["aria-label"],U6=ie({name:"ElPageHeader"}),Y6=ie({...U6,props:V6,emits:W6,setup(e,{emit:t}){const r=Ns(),{t:n}=Hs(),i=Oe("page-header"),a=k(()=>[i.b(),{[i.m("has-breadcrumb")]:!!r.breadcrumb,[i.m("has-extra")]:!!r.extra,[i.is("contentful")]:!!r.default}]);function o(){t("back")}return(s,l)=>(G(),ce("div",{class:re(T(a))},[s.$slots.breadcrumb?(G(),ce("div",{key:0,class:re(T(i).e("breadcrumb"))},[Ce(s.$slots,"breadcrumb")],2)):Ae("v-if",!0),te("div",{class:re(T(i).e("header"))},[te("div",{class:re(T(i).e("left"))},[te("div",{class:re(T(i).e("back")),role:"button",tabindex:"0",onClick:o},[s.icon||s.$slots.icon?(G(),ce("div",{key:0,"aria-label":s.title||T(n)("el.pageHeader.title"),class:re(T(i).e("icon"))},[Ce(s.$slots,"icon",{},()=>[s.icon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(s.icon)))]),_:1})):Ae("v-if",!0)])],10,G6)):Ae("v-if",!0),te("div",{class:re(T(i).e("title"))},[Ce(s.$slots,"title",{},()=>[pt(xe(s.title||T(n)("el.pageHeader.title")),1)])],2)],2),Z(T(VA),{direction:"vertical"}),te("div",{class:re(T(i).e("content"))},[Ce(s.$slots,"content",{},()=>[pt(xe(s.content),1)])],2)],2),s.$slots.extra?(G(),ce("div",{key:0,class:re(T(i).e("extra"))},[Ce(s.$slots,"extra")],2)):Ae("v-if",!0)],2),s.$slots.default?(G(),ce("div",{key:1,class:re(T(i).e("main"))},[Ce(s.$slots,"default")],2)):Ae("v-if",!0)],2))}});var j6=Ke(Y6,[["__file","page-header.vue"]]);const q6=Yt(j6),K6=Je({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:pg,default:"primary"},cancelButtonType:{type:String,values:pg,default:"text"},icon:{type:vr,default:()=>$3},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1},hideAfter:{type:Number,default:200},teleported:md.teleported,persistent:md.persistent,width:{type:[String,Number],default:150}}),X6={confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},Z6=ie({name:"ElPopconfirm"}),Q6=ie({...Z6,props:K6,emits:X6,setup(e,{emit:t}){const r=e,{t:n}=Hs(),i=Oe("popconfirm"),a=$(),o=()=>{var h,d;(d=(h=a.value)==null?void 0:h.onClose)==null||d.call(h)},s=k(()=>({width:Zn(r.width)})),l=h=>{t("confirm",h),o()},u=h=>{t("cancel",h),o()},f=k(()=>r.confirmButtonText||n("el.popconfirm.confirmButtonText")),c=k(()=>r.cancelButtonText||n("el.popconfirm.cancelButtonText"));return(h,d)=>(G(),ve(T(Vs),ei({ref_key:"tooltipRef",ref:a,trigger:"click",effect:"light"},h.$attrs,{"popper-class":`${T(i).namespace.value}-popover`,"popper-style":T(s),teleported:h.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":h.hideAfter,persistent:h.persistent}),{content:q(()=>[te("div",{class:re(T(i).b())},[te("div",{class:re(T(i).e("main"))},[!h.hideIcon&&h.icon?(G(),ve(T(Bt),{key:0,class:re(T(i).e("icon")),style:ct({color:h.iconColor})},{default:q(()=>[(G(),ve(Vt(h.icon)))]),_:1},8,["class","style"])):Ae("v-if",!0),pt(" "+xe(h.title),1)],2),te("div",{class:re(T(i).e("action"))},[Z(T(yg),{size:"small",type:h.cancelButtonType==="text"?"":h.cancelButtonType,text:h.cancelButtonType==="text",onClick:u},{default:q(()=>[pt(xe(T(c)),1)]),_:1},8,["type","text"]),Z(T(yg),{size:"small",type:h.confirmButtonType==="text"?"":h.confirmButtonType,text:h.confirmButtonType==="text",onClick:l},{default:q(()=>[pt(xe(T(f)),1)]),_:1},8,["type","text"])],2)],2)]),default:q(()=>[h.$slots.reference?Ce(h.$slots,"reference",{key:0}):Ae("v-if",!0)]),_:3},16,["popper-class","popper-style","teleported","hide-after","persistent"]))}});var J6=Ke(Q6,[["__file","popconfirm.vue"]]);const eV=Yt(J6),tV=Je({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},size:{type:String,validator:j3},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},inactiveActionIcon:{type:vr},activeActionIcon:{type:vr},activeIcon:{type:vr},inactiveIcon:{type:vr},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Be(Function)},id:String,tabindex:{type:[String,Number]},value:{type:[Boolean,String,Number],default:!1},label:{type:String,default:void 0}}),rV={[wi]:e=>zr(e)||ze(e)||kt(e),[sg]:e=>zr(e)||ze(e)||kt(e),[lg]:e=>zr(e)||ze(e)||kt(e)},nV=["onClick"],iV=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"],aV=["aria-hidden"],oV=["aria-hidden"],sV=["aria-hidden"],Ag="ElSwitch",lV=ie({name:Ag}),uV=ie({...lV,props:tV,emits:rV,setup(e,{expose:t,emit:r}){const n=e,i=it(),{formItem:a}=tf(),o=xi(),s=Oe("switch");(C=>{C.forEach(M=>{bu({from:M[0],replacement:M[1],scope:Ag,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var A;return!!((A=i.vnode.props)!=null&&A[M[2]])}))})})([['"value"','"model-value" or "v-model"',"value"],['"active-color"',"CSS var `--el-switch-on-color`","activeColor"],['"inactive-color"',"CSS var `--el-switch-off-color`","inactiveColor"],['"border-color"',"CSS var `--el-switch-border-color`","borderColor"]]);const{inputId:u}=Vy(n,{formItemContext:a}),f=vh(k(()=>n.loading)),c=$(n.modelValue!==!1),h=$(),d=$(),v=k(()=>[s.b(),s.m(o.value),s.is("disabled",f.value),s.is("checked",_.value)]),p=k(()=>[s.e("label"),s.em("label","left"),s.is("active",!_.value)]),m=k(()=>[s.e("label"),s.em("label","right"),s.is("active",_.value)]),g=k(()=>({width:Zn(n.width)}));be(()=>n.modelValue,()=>{c.value=!0}),be(()=>n.value,()=>{c.value=!1});const y=k(()=>c.value?n.modelValue:n.value),_=k(()=>y.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(y.value)||(r(wi,n.inactiveValue),r(sg,n.inactiveValue),r(lg,n.inactiveValue)),be(_,C=>{var M;h.value.checked=C,n.validateEvent&&((M=a==null?void 0:a.validate)==null||M.call(a,"change").catch(A=>void 0))});const b=()=>{const C=_.value?n.inactiveValue:n.activeValue;r(wi,C),r(sg,C),r(lg,C),Nt(()=>{h.value.checked=_.value})},x=()=>{if(f.value)return;const{beforeChange:C}=n;if(!C){b();return}const M=C();[Qc(M),zr(M)].includes(!0)||bi(Ag,"beforeChange must return type `Promise` or `boolean`"),Qc(M)?M.then(P=>{P&&b()}).catch(P=>{}):M&&b()},w=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),S=()=>{var C,M;(M=(C=h.value)==null?void 0:C.focus)==null||M.call(C)};return _t(()=>{h.value.checked=_.value}),t({focus:S,checked:_}),(C,M)=>(G(),ce("div",{class:re(T(v)),style:ct(T(w)),onClick:ua(x,["prevent"])},[te("input",{id:T(u),ref_key:"input",ref:h,class:re(T(s).e("input")),type:"checkbox",role:"switch","aria-checked":T(_),"aria-disabled":T(f),"aria-label":C.label,name:C.name,"true-value":C.activeValue,"false-value":C.inactiveValue,disabled:T(f),tabindex:C.tabindex,onChange:b,onKeydown:iR(x,["enter"])},null,42,iV),!C.inlinePrompt&&(C.inactiveIcon||C.inactiveText)?(G(),ce("span",{key:0,class:re(T(p))},[C.inactiveIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.inactiveIcon)))]),_:1})):Ae("v-if",!0),!C.inactiveIcon&&C.inactiveText?(G(),ce("span",{key:1,"aria-hidden":T(_)},xe(C.inactiveText),9,aV)):Ae("v-if",!0)],2)):Ae("v-if",!0),te("span",{ref_key:"core",ref:d,class:re(T(s).e("core")),style:ct(T(g))},[C.inlinePrompt?(G(),ce("div",{key:0,class:re(T(s).e("inner"))},[C.activeIcon||C.inactiveIcon?(G(),ve(T(Bt),{key:0,class:re(T(s).is("icon"))},{default:q(()=>[(G(),ve(Vt(T(_)?C.activeIcon:C.inactiveIcon)))]),_:1},8,["class"])):C.activeText||C.inactiveText?(G(),ce("span",{key:1,class:re(T(s).is("text")),"aria-hidden":!T(_)},xe(T(_)?C.activeText:C.inactiveText),11,oV)):Ae("v-if",!0)],2)):Ae("v-if",!0),te("div",{class:re(T(s).e("action"))},[C.loading?(G(),ve(T(Bt),{key:0,class:re(T(s).is("loading"))},{default:q(()=>[Z(T(Ly))]),_:1},8,["class"])):T(_)?Ce(C.$slots,"active-action",{key:1},()=>[C.activeActionIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.activeActionIcon)))]),_:1})):Ae("v-if",!0)]):T(_)?Ae("v-if",!0):Ce(C.$slots,"inactive-action",{key:2},()=>[C.inactiveActionIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.inactiveActionIcon)))]),_:1})):Ae("v-if",!0)])],2)],6),!C.inlinePrompt&&(C.activeIcon||C.activeText)?(G(),ce("span",{key:1,class:re(T(m))},[C.activeIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.activeIcon)))]),_:1})):Ae("v-if",!0),!C.activeIcon&&C.activeText?(G(),ce("span",{key:1,"aria-hidden":!T(_)},xe(C.activeText),9,sV)):Ae("v-if",!0)],2)):Ae("v-if",!0)],14,nV))}});var fV=Ke(uV,[["__file","switch.vue"]]);const cV=Yt(fV),cv=function(e){var t;return(t=e.target)==null?void 0:t.closest("td")},dV=function(e,t,r,n,i){if(!t&&!n&&(!i||Array.isArray(i)&&!i.length))return e;typeof r=="string"?r=r==="descending"?-1:1:r=r&&r<0?-1:1;const a=n?null:function(s,l){return i?(Array.isArray(i)||(i=[i]),i.map(u=>typeof u=="string"?yu(s,u):u(s,l,e))):(t!=="$key"&&qe(s)&&"$value"in s&&(s=s.$value),[qe(s)?yu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,f=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},jA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},hV=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},eo=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Jt(n,t)]={row:n,index:i}}),r};function vV(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(Ue(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function qy(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function qA(e){return e===""||e!==void 0&&(e=qy(e),Number.isNaN(e)&&(e=80)),e}function pV(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function gV(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function zl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,_e(t.children)&&t.children.forEach(l=>{zl(e,l,r??!a)})};return zr(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function mV(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const f=u[r];i(f)||a(u,f,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let Xr=null;function yV(e,t,r,n){if((Xr==null?void 0:Xr.trigger)===r)return;Xr==null||Xr();const i=n==null?void 0:n.refs.tableWrapper,a=i==null?void 0:i.dataset.prefix,o={strategy:"fixed",...e.popperOptions},s=Z(Vs,{content:t,virtualTriggering:!0,virtualRef:r,appendTo:i,placement:"top",transition:"none",offset:0,hideAfter:0,...e,popperOptions:o,onHide:()=>{Xr==null||Xr()}});s.appContext=n.appContext;const l=document.createElement("div");ld(s,l),s.component.exposed.onOpen();const u=i==null?void 0:i.querySelector(`.${a}-scrollbar__wrap`);Xr=()=>{ld(null,l),u==null||u.removeEventListener("scroll",Xr),Xr=null},Xr.trigger=r,u==null||u.addEventListener("scroll",Xr)}function KA(e){return e.children?v3(e.children,KA):[e]}function D1(e,t){return e+t.colSpan}const XA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=KA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(D1,0),a=i+l.reduce(D1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ky=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=XA(t,r,n,i);if(s){const f=s==="left";o.push(`${e}-fixed-column--${s}`),f&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!f&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function I1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Xy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=XA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(I1,0):s.right=u.slice(o+1).reverse().reduce(I1,0),s},As=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function _V(e){const t=it(),r=$(!1),n=$([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const f=eo(n.value,u);n.value=l.reduce((c,h)=>{const d=Jt(h,u);return f[d]&&c.push(h),c},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{zl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],f=e.rowKey.value,c=eo(u,f);n.value=l.reduce((h,d)=>{const v=c[d];return v&&h.push(v.row),h},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!eo(n.value,u)[Jt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function bV(e){const t=it(),r=$(null),n=$(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:f,rowKey:c}=e;let h=null;c.value&&(h=(T(f)||[]).find(d=>Jt(d,c.value)===u)),n.value=h,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const f=n.value;if(u&&u!==f){n.value=u,t.emit("current-change",n.value,f);return}!u&&f&&(n.value=null,t.emit("current-change",null,f))},updateCurrentRowData:()=>{const u=e.rowKey.value,f=e.data.value||[],c=n.value;if(!f.includes(c)&&c){if(u){const h=Jt(c,u);o(h)}else n.value=null;n.value===null&&t.emit("current-change",null,c)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function wV(e){const t=$([]),r=$({}),n=$(16),i=$(!1),a=$({}),o=$("hasChildren"),s=$("children"),l=it(),u=k(()=>{if(!e.rowKey.value)return{};const g=e.data.value||[];return c(g)}),f=k(()=>{const g=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Jt(w,g);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),c=g=>{const y=e.rowKey.value,_={};return mV(g,(b,x,w)=>{const S=Jt(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Jt(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},h=(g=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=f.value,w=Object.keys(b),S={};if(w.length){const C=T(r),M=[],A=(E,L)=>{if(g)return t.value?y||t.value.includes(L):!!(y||E!=null&&E.expanded);{const O=y||t.value&&t.value.includes(L);return!!(E!=null&&E.expanded||O)}};w.forEach(E=>{const L=C[E],O={...b[E]};if(O.expanded=A(L,E),O.lazy){const{loaded:N=!1,loading:H=!1}=L||{};O.loaded=!!N,O.loading=!!H,M.push(E)}S[E]=O});const P=Object.keys(x);i.value&&P.length&&M.length&&P.forEach(E=>{const L=C[E],O=x[E].children;if(M.includes(E)){if(S[E].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[E].children=O}else{const{loaded:N=!1,loading:H=!1}=L||{};S[E]={lazy:!0,loaded:!!N,loading:!!H,expanded:A(L,E),children:O,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};be(()=>t.value,()=>{h(!0)}),be(()=>u.value,()=>{h()}),be(()=>f.value,()=>{h()});const d=g=>{t.value=g,h()},v=(g,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Jt(g,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",g,y),l.store.updateTableScrollY()}},p=g=>{l.store.assertRowKey();const y=e.rowKey.value,_=Jt(g,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?m(g,_,b):v(g,void 0)},m=(g,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(g,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",g,!0)}))};return{loadData:m,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:d,updateTreeData:h,normalize:c,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const SV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:dV(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Fc=e=>{const t=[];return e.forEach(r=>{r.children&&r.children.length>0?t.push.apply(t,Fc(r.children)):t.push(r)}),t};function xV(){var e;const t=it(),{size:r}=Kd((e=t.proxy)==null?void 0:e.$props),n=$(null),i=$([]),a=$([]),o=$(!1),s=$([]),l=$([]),u=$([]),f=$([]),c=$([]),h=$([]),d=$([]),v=$([]),p=[],m=$(0),g=$(0),y=$(0),_=$(!1),b=$([]),x=$(!1),w=$(!1),S=$(null),C=$({}),M=$(null),A=$(null),P=$(null),E=$(null),L=$(null);be(i,()=>t.state&&V(!1),{deep:!0});const O=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},N=he=>{var Pe;(Pe=he.children)==null||Pe.forEach(We=>{We.fixed=he.fixed,N(We)})},H=()=>{s.value.forEach(et=>{N(et)}),f.value=s.value.filter(et=>et.fixed===!0||et.fixed==="left"),c.value=s.value.filter(et=>et.fixed==="right"),f.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,f.value.unshift(s.value[0]));const he=s.value.filter(et=>!et.fixed);l.value=[].concat(f.value).concat(he).concat(c.value);const Pe=Fc(he),We=Fc(f.value),Ge=Fc(c.value);m.value=Pe.length,g.value=We.length,y.value=Ge.length,u.value=[].concat(We).concat(Pe).concat(Ge),o.value=f.value.length>0||c.value.length>0},V=(he,Pe=!1)=>{he&&H(),Pe?t.state.doLayout():t.state.debouncedUpdateLayout()},U=he=>b.value.includes(he),F=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},z=()=>{let he;if(n.value){he=[];const Pe=eo(b.value,n.value),We=eo(i.value,n.value);for(const Ge in Pe)Ue(Pe,Ge)&&!We[Ge]&&he.push(Pe[Ge].row)}else he=b.value.filter(Pe=>!i.value.includes(Pe));if(he.length){const Pe=b.value.filter(We=>!he.includes(We));b.value=Pe,t.emit("selection-change",Pe.slice())}},ee=()=>(b.value||[]).slice(),J=(he,Pe=void 0,We=!0)=>{if(zl(b.value,he,Pe)){const et=(b.value||[]).slice();We&&t.emit("select",et,he),t.emit("selection-change",et)}},me=()=>{var he,Pe;const We=w.value?!_.value:!(_.value||b.value.length);_.value=We;let Ge=!1,et=0;const zt=(Pe=(he=t==null?void 0:t.store)==null?void 0:he.states)==null?void 0:Pe.rowKey.value;i.value.forEach((gt,Kt)=>{const Yr=Kt+et;S.value?S.value.call(null,gt,Yr)&&zl(b.value,gt,We)&&(Ge=!0):zl(b.value,gt,We)&&(Ge=!0),et+=Ie(Jt(gt,zt))}),Ge&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},we=()=>{const he=eo(b.value,n.value);i.value.forEach(Pe=>{const We=Jt(Pe,n.value),Ge=he[We];Ge&&(b.value[Ge.index]=Pe)})},$e=()=>{var he,Pe,We;if(((he=i.value)==null?void 0:he.length)===0){_.value=!1;return}let Ge;n.value&&(Ge=eo(b.value,n.value));const et=function(Yr){return Ge?!!Ge[Jt(Yr,n.value)]:b.value.includes(Yr)};let zt=!0,gt=0,Kt=0;for(let Yr=0,AD=(i.value||[]).length;Yr{var Pe;if(!t||!t.store)return 0;const{treeData:We}=t.store.states;let Ge=0;const et=(Pe=We.value[he])==null?void 0:Pe.children;return et&&(Ge+=et.length,et.forEach(zt=>{Ge+=Ie(zt)})),Ge},B=(he,Pe)=>{Array.isArray(he)||(he=[he]);const We={};return he.forEach(Ge=>{C.value[Ge.id]=Pe,We[Ge.columnKey||Ge.id]=Pe}),We},Y=(he,Pe,We)=>{A.value&&A.value!==he&&(A.value.order=null),A.value=he,P.value=Pe,E.value=We},K=()=>{let he=T(a);Object.keys(C.value).forEach(Pe=>{const We=C.value[Pe];if(!We||We.length===0)return;const Ge=jA({columns:u.value},Pe);Ge&&Ge.filterMethod&&(he=he.filter(et=>We.some(zt=>Ge.filterMethod.call(null,zt,et,Ge))))}),M.value=he},Q=()=>{i.value=SV(M.value,{sortingColumn:A.value,sortProp:P.value,sortOrder:E.value})},oe=(he=void 0)=>{he&&he.filter||K(),Q()},pe=he=>{const{tableHeaderRef:Pe}=t.refs;if(!Pe)return;const We=Object.assign({},Pe.filterPanels),Ge=Object.keys(We);if(Ge.length)if(typeof he=="string"&&(he=[he]),Array.isArray(he)){const et=he.map(zt=>hV({columns:u.value},zt));Ge.forEach(zt=>{const gt=et.find(Kt=>Kt.id===zt);gt&&(gt.filteredValue=[])}),t.store.commit("filterChange",{column:et,values:[],silent:!0,multi:!0})}else Ge.forEach(et=>{const zt=u.value.find(gt=>gt.id===et);zt&&(zt.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},D=()=>{A.value&&(Y(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:I,toggleRowExpansion:W,updateExpandRows:X,states:j,isRowExpanded:le}=_V({data:i,rowKey:n}),{updateTreeExpandKeys:fe,toggleTreeExpansion:ae,updateTreeData:se,loadOrToggle:ne,states:de}=wV({data:i,rowKey:n}),{updateCurrentRowData:Me,updateCurrentRow:Se,setCurrentRowKey:ke,states:Ve}=bV({data:i,rowKey:n});return{assertRowKey:O,updateColumns:H,scheduleLayout:V,isSelected:U,clearSelection:F,cleanSelection:z,getSelectionRows:ee,toggleRowSelection:J,_toggleAllSelection:me,toggleAllSelection:null,updateSelectionByRowKey:we,updateAllSelected:$e,updateFilters:B,updateCurrentRow:Se,updateSort:Y,execFilter:K,execSort:Q,execQuery:oe,clearFilter:pe,clearSort:D,toggleRowExpansion:W,setExpandRowKeysAdapter:he=>{I(he),fe(he)},setCurrentRowKey:ke,toggleRowExpansionAdapter:(he,Pe)=>{u.value.some(({type:Ge})=>Ge==="expand")?W(he,Pe):ae(he,Pe)},isRowExpanded:le,updateExpandRows:X,updateCurrentRowData:Me,loadOrToggle:ne,updateTreeData:se,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:f,rightFixedColumns:c,leafColumns:h,fixedLeafColumns:d,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:m,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:x,selectOnIndeterminate:w,selectable:S,filters:C,filteredData:M,sortingColumn:A,sortProp:P,sortOrder:E,hoverRow:L,...j,...de,...Ve}}}function Pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=Pg(r.children,t)),r)})}function Eg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&Eg(t.children)}),e.sort((t,r)=>t.no-r.no)}function CV(){const e=it(),t=xV();return{ns:Oe("table"),...t,mutations:{setData(o,s){const l=T(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),T(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const f=T(o._columns);let c=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),c=Pg(f,l)):(f.push(s),c=f),Eg(c),o._columns.value=c,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(Eg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const f=T(o._columns)||[];if(l)l.children.splice(l.children.findIndex(h=>h.id===s.id),1),Nt(()=>{var h;((h=l.children)==null?void 0:h.length)===0&&delete l.children}),o._columns.value=Pg(f,l);else{const h=f.indexOf(s);h>-1&&(f.splice(h,1),o._columns.value=f)}const c=o.updateOrderFns.indexOf(u);c>-1&&o.updateOrderFns.splice(c,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:f}=s;if(l){const c=T(o.columns).find(h=>h.property===l);c&&(c.order=u,e.store.updateSort(c,l,u),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:f}=o,c=T(l),h=T(u),d=T(f);d===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:c,prop:h,order:d}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:f}=s,c=e.store.updateFilters(l,u);e.store.execQuery(),f||e.emit("filter-change",c),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Nt(()=>e.layout.updateScrollY.apply(e.layout))}}}const Vl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"}};function TV(e,t){if(!e)throw new Error("Table is required.");const r=CV();return r.toggleAllSelection=hd(r._toggleAllSelection,10),Object.keys(Vl).forEach(n=>{ZA(QA(t,n),n,r)}),MV(r,t),r}function MV(e,t){Object.keys(Vl).forEach(r=>{be(()=>QA(t,r),n=>{ZA(n,r,e)})})}function ZA(e,t,r){let n=e,i=Vl[t];typeof Vl[t]=="object"&&(i=i.key,n=n||Vl[t].default),r.states[i].value=n}function QA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class AV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=$(null),this.scrollX=$(!1),this.scrollY=$(!1),this.bodyWidth=$(null),this.fixedWidth=$(null),this.rightFixedWidth=$(null),this.gutterWidth=0;for(const r in t)Ue(t,r)&&(Pt(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!At)return;const n=this.table.vnode.el;if(t=pV(t),this.height.value=Number(t),!n&&(t||t===0))return Nt(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!At)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((h,d)=>h+Number(d.minWidth||80),0),f=l/u;let c=0;a.forEach((h,d)=>{if(d===0)return;const v=Math.floor(Number(h.minWidth||80)*f);c+=v,h.realWidth=Number(h.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-c}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:PV}=Ms,EV=ie({name:"ElTableFilterPanel",components:{ElCheckbox:Ms,ElCheckboxGroup:PV,ElScrollbar:uA,ElTooltip:Vs,ElIcon:Bt,ArrowDown:EM,ArrowUp:E3},directives:{ClickOutside:CA},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=it(),{t:r}=Hs(),n=Oe("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=$(!1),o=$(null),s=k(()=>e.column&&e.column.filters),l=k(()=>e.column.filterClassName?`${n.b()} ${e.column.filterClassName}`:n.b()),u=k({get:()=>{var x;return(((x=e.column)==null?void 0:x.filteredValue)||[])[0]},set:x=>{f.value&&(typeof x<"u"&&x!==null?f.value.splice(0,1,x):f.value.splice(0,1))}}),f=k({get(){return e.column?e.column.filteredValue||[]:[]},set(x){e.column&&e.upDataColumn("filteredValue",x)}}),c=k(()=>e.column?e.column.filterMultiple:!0),h=x=>x.value===u.value,d=()=>{a.value=!1},v=x=>{x.stopPropagation(),a.value=!a.value},p=()=>{a.value=!1},m=()=>{_(f.value),d()},g=()=>{f.value=[],_(f.value),d()},y=x=>{u.value=x,_(typeof x<"u"&&x!==null?f.value:[]),d()},_=x=>{e.store.commit("filterChange",{column:e.column,values:x}),e.store.updateAllSelected()};be(a,x=>{e.column&&e.upDataColumn("filterOpened",x)},{immediate:!0});const b=k(()=>{var x,w;return(w=(x=o.value)==null?void 0:x.popperRef)==null?void 0:w.contentRef});return{tooltipVisible:a,multiple:c,filterClassName:l,filteredValue:f,filterValue:u,filters:s,handleConfirm:m,handleReset:g,handleSelect:y,isActive:h,t:r,ns:n,showFilterPanel:v,hideFilterPanel:p,popperPaneRef:b,tooltip:o}}}),LV={key:0},DV=["disabled"],IV=["label","onClick"];function OV(e,t,r,n,i,a){const o=xr("el-checkbox"),s=xr("el-checkbox-group"),l=xr("el-scrollbar"),u=xr("arrow-up"),f=xr("arrow-down"),c=xr("el-icon"),h=xr("el-tooltip"),d=fT("click-outside");return G(),ve(h,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.filterClassName,persistent:""},{content:q(()=>[e.multiple?(G(),ce("div",LV,[te("div",{class:re(e.ns.e("content"))},[Z(l,{"wrap-class":e.ns.e("wrap")},{default:q(()=>[Z(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:re(e.ns.e("checkbox-group"))},{default:q(()=>[(G(!0),ce(ft,null,Hp(e.filters,v=>(G(),ve(o,{key:v.value,label:v.value},{default:q(()=>[pt(xe(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),te("div",{class:re(e.ns.e("bottom"))},[te("button",{class:re({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},xe(e.t("el.table.confirmFilter")),11,DV),te("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},xe(e.t("el.table.resetFilter")),1)],2)])):(G(),ce("ul",{key:1,class:re(e.ns.e("list"))},[te("li",{class:re([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},xe(e.t("el.table.clearFilter")),3),(G(!0),ce(ft,null,Hp(e.filters,v=>(G(),ce("li",{key:v.value,class:re([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},xe(v.text),11,IV))),128))],2))]),default:q(()=>[qt((G(),ce("span",{class:re([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[Z(c,null,{default:q(()=>[e.column.filterOpened?(G(),ve(u,{key:0})):(G(),ve(f,{key:1}))]),_:1})],2)),[[d,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var RV=Ke(EV,[["render",OV],["__file","filter-panel.vue"]]);function JA(e){const t=it();eh(()=>{r.value.addObserver(t)}),_t(()=>{n(r.value),i(r.value)}),Uu(()=>{n(r.value),i(r.value)}),ks(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(f=>{u[f.id]=f});for(let f=0,c=s.length;f{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let f=0,c=l.length;f{p.stopPropagation()},a=(p,m)=>{!m.filters&&m.sortable?v(p,m,!1):m.filterable&&!m.sortable&&i(p),n==null||n.emit("header-click",m,p)},o=(p,m)=>{n==null||n.emit("header-contextmenu",m,p)},s=$(null),l=$(!1),u=$({}),f=(p,m)=>{if(At&&!(m.children&&m.children.length>0)&&s.value&&e.border){l.value=!0;const g=n;t("set-drag-visible",!0);const _=(g==null?void 0:g.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${m.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Za(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=g==null?void 0:g.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=A=>{const P=A.clientX-u.value.startMouseLeft,E=u.value.startLeft+P;S.style.left=`${Math.max(w,E)}px`},M=()=>{if(l.value){const{startColumnLeft:A,startLeft:P}=u.value,L=Number.parseInt(S.style.left,10)-A;m.width=m.realWidth=L,g==null||g.emit("header-dragend",m.width,P-A,m,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{so(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},c=(p,m)=>{if(m.children&&m.children.length>0)return;const g=p.target;if(!mo(g))return;const y=g==null?void 0:g.closest("th");if(!(!m||!m.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",oo(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=m):l.value||(b.cursor="",oo(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},h=()=>{At&&(document.body.style.cursor="")},d=({order:p,sortOrders:m})=>{if(p==="")return m[0];const g=m.indexOf(p||null);return m[g>m.length-2?0:g+1]},v=(p,m,g)=>{var y;p.stopPropagation();const _=m.order===g?null:g||d(m),b=(y=p.target)==null?void 0:y.closest("th");if(b&&oo(b,"noclick")){so(b,"noclick");return}if(!m.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==m||C===m&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=m,w=m.property),_?S=m.order=_:S=m.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:v,handleFilterClick:i}}function NV(e){const t=Le(ri),r=Oe("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,f)=>{var c;let h=(c=t==null?void 0:t.props.headerCellStyle)!=null?c:{};typeof h=="function"&&(h=h.call(null,{rowIndex:s,columnIndex:l,row:u,column:f}));const d=Xy(l,f.fixed,e.store,u);return As(d,"left"),As(d,"right"),Object.assign({},h,d)},getHeaderCellClass:(s,l,u,f)=>{const c=Ky(r.b(),l,f.fixed,e.store,u),h=[f.id,f.order,f.headerAlign,f.className,f.labelClassName,...c];f.children||h.push("is-leaf"),f.sortable&&h.push("is-sortable");const d=t==null?void 0:t.props.headerCellClassName;return typeof d=="string"?h.push(d):typeof d=="function"&&h.push(d.call(null,{rowIndex:s,columnIndex:l,row:u,column:f})),h.push(r.e("cell")),h.filter(v=>!!v).join(" ")}}}const e2=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,e2(r.children))):t.push(r)}),t},BV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function FV(e){const t=Le(ri),r=k(()=>BV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var $V=ie({name:"ElTableHeader",components:{ElCheckbox:Ms},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=it(),n=Le(ri),i=Oe("table"),a=$({}),{onColumnsChange:o,onScrollableChange:s}=JA(n);_t(async()=>{await Nt(),await Nt();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:d,handleFilterClick:v}=kV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:m,getHeaderCellStyle:g,getHeaderCellClass:y}=NV(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=FV(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:m,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:g,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:d,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:f,handleSortClick:c,handleMouseOut:h,store:d,$parent:v}=this;let p=1;return Te("thead",{class:{[e.is("group")]:t}},r.map((m,g)=>Te("tr",{class:a(g),key:g,style:o(g)},m.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Te("th",{class:i(g,_,m,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(g,_,m,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>f(b,y),onMouseout:h},[Te("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:d,_self:v}):y.label,y.sortable&&Te("span",{onClick:b=>c(b,y),class:"caret-wrapper"},[Te("i",{onClick:b=>c(b,y,"ascending"),class:"sort-caret ascending"}),Te("i",{onClick:b=>c(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Te(RV,{store:d,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function HV(e){const t=Le(ri),r=$(""),n=$(Te("div")),i=(d,v,p)=>{var m;const g=t,y=cv(d);let _;const b=(m=g==null?void 0:g.vnode.el)==null?void 0:m.dataset.prefix;y&&(_=L1({columns:e.store.states.columns.value},y,b),_&&(g==null||g.emit(`cell-${p}`,v,_,y,d))),g==null||g.emit(`row-${p}`,v,_,d)},a=(d,v)=>{i(d,v,"dblclick")},o=(d,v)=>{e.store.commit("setCurrentRow",v),i(d,v,"click")},s=(d,v)=>{i(d,v,"contextmenu")},l=hd(d=>{e.store.commit("setHoverRow",d)},30),u=hd(()=>{e.store.commit("setHoverRow",null)},30),f=d=>{const v=window.getComputedStyle(d,null),p=Number.parseInt(v.paddingLeft,10)||0,m=Number.parseInt(v.paddingRight,10)||0,g=Number.parseInt(v.paddingTop,10)||0,y=Number.parseInt(v.paddingBottom,10)||0;return{left:p,right:m,top:g,bottom:y}};return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(d,v,p)=>{var m;const g=t,y=cv(d),_=(m=g==null?void 0:g.vnode.el)==null?void 0:m.dataset.prefix;if(y){const H=L1({columns:e.store.states.columns.value},y,_),V=g.hoverState={cell:y,column:H,row:v};g==null||g.emit("cell-mouse-enter",V.row,V.column,V.cell,d)}if(!p)return;const b=d.target.querySelector(".cell");if(!(oo(b,`${_}-tooltip`)&&b.childNodes.length))return;const x=document.createRange();x.setStart(b,0),x.setEnd(b,b.childNodes.length);let w=x.getBoundingClientRect().width,S=x.getBoundingClientRect().height;w-Math.floor(w)<.001&&(w=Math.floor(w)),S-Math.floor(S)<.001&&(S=Math.floor(S));const{top:A,left:P,right:E,bottom:L}=f(b),O=P+E,N=A+L;(w+O>b.offsetWidth||S+N>b.offsetHeight||b.scrollWidth>b.offsetWidth)&&yV(p,y.innerText||y.textContent,y,g)},handleCellMouseLeave:d=>{if(!cv(d))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,d)},tooltipContent:r,tooltipTrigger:n}}function zV(e){const t=Le(ri),r=Oe("table");return{getRowStyle:(u,f)=>{const c=t==null?void 0:t.props.rowStyle;return typeof c=="function"?c.call(null,{row:u,rowIndex:f}):c||null},getRowClass:(u,f)=>{const c=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&c.push("current-row"),e.stripe&&f%2===1&&c.push(r.em("row","striped"));const h=t==null?void 0:t.props.rowClassName;return typeof h=="string"?c.push(h):typeof h=="function"&&c.push(h.call(null,{row:u,rowIndex:f})),c},getCellStyle:(u,f,c,h)=>{const d=t==null?void 0:t.props.cellStyle;let v=d??{};typeof d=="function"&&(v=d.call(null,{rowIndex:u,columnIndex:f,row:c,column:h}));const p=Xy(f,e==null?void 0:e.fixed,e.store);return As(p,"left"),As(p,"right"),Object.assign({},v,p)},getCellClass:(u,f,c,h,d)=>{const v=Ky(r.b(),f,e==null?void 0:e.fixed,e.store,void 0,d),p=[h.id,h.align,h.className,...v],m=t==null?void 0:t.props.cellClassName;return typeof m=="string"?p.push(m):typeof m=="function"&&p.push(m.call(null,{rowIndex:u,columnIndex:f,row:c,column:h})),p.push(r.e("cell")),p.filter(g=>!!g).join(" ")},getSpan:(u,f,c,h)=>{let d=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const m=p({row:u,column:f,rowIndex:c,columnIndex:h});Array.isArray(m)?(d=m[0],v=m[1]):typeof m=="object"&&(d=m.rowspan,v=m.colspan)}return{rowspan:d,colspan:v}},getColspanRealWidth:(u,f,c)=>{if(f<1)return u[c].realWidth;const h=u.map(({realWidth:d,width:v})=>d||v).slice(c,c+f);return Number(h.reduce((d,v)=>Number(d)+Number(v),-1))}}}function VV(e){const t=Le(ri),r=Oe("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:f,tooltipTrigger:c}=HV(e),{getRowStyle:h,getRowClass:d,getCellStyle:v,getCellClass:p,getSpan:m,getColspanRealWidth:g}=zV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const M=t.props.rowKey;return M?Jt(S,M):C},b=(S,C,M,A=!1)=>{const{tooltipEffect:P,tooltipOptions:E,store:L}=e,{indent:O,columns:N}=L.states,H=d(S,C);let V=!0;return M&&(H.push(r.em("row",`level-${M.level}`)),V=M.display),Te("tr",{style:[V?null:{display:"none"},h(S,C)],class:H,key:_(S,C),onDblclick:F=>n(F,S),onClick:F=>i(F,S),onContextmenu:F=>a(F,S),onMouseenter:()=>o(C),onMouseleave:s},N.value.map((F,z)=>{const{rowspan:ee,colspan:J}=m(S,F,C,z);if(!ee||!J)return null;const me=Object.assign({},F);me.realWidth=g(N.value,J,z);const we={store:e.store,_self:e.context||t,column:me,row:S,$index:C,cellIndex:z,expanded:A};z===y.value&&M&&(we.treeNode={indent:M.level*O.value,level:M.level},typeof M.expanded=="boolean"&&(we.treeNode.expanded=M.expanded,"loading"in M&&(we.treeNode.loading=M.loading),"noLazyChildren"in M&&(we.treeNode.noLazyChildren=M.noLazyChildren)));const $e=`${C},${z}`,Ie=me.columnKey||me.rawColumnKey||"",B=x(z,F,we),Y=F.showOverflowTooltip&&m3({effect:P},E,F.showOverflowTooltip);return Te("td",{style:v(C,z,S,F),class:p(C,z,S,F,J-1),key:`${Ie}${$e}`,rowspan:ee,colspan:J,onMouseenter:K=>l(K,S,Y),onMouseleave:u},[B])}))},x=(S,C,M)=>C.renderCell(M);return{wrappedRowRender:(S,C)=>{const M=e.store,{isRowExpanded:A,assertRowKey:P}=M,{treeData:E,lazyTreeNodeMap:L,childrenColumnName:O,rowKey:N}=M.states,H=M.states.columns.value;if(H.some(({type:U})=>U==="expand")){const U=A(S),F=b(S,C,void 0,U),z=t.renderExpanded;return U?z?[[F,Te("tr",{key:`expanded-row__${F.key}`},[Te("td",{colspan:H.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[z({row:S,$index:C,store:M,expanded:U})])])]]:(console.error("[Element Error]renderExpanded is required."),F):[[F]]}else if(Object.keys(E.value).length){P();const U=Jt(S,N.value);let F=E.value[U],z=null;F&&(z={expanded:F.expanded,level:F.level,display:!0},typeof F.lazy=="boolean"&&(typeof F.loaded=="boolean"&&F.loaded&&(z.noLazyChildren=!(F.children&&F.children.length)),z.loading=F.loading));const ee=[b(S,C,z)];if(F){let J=0;const me=($e,Ie)=>{$e&&$e.length&&Ie&&$e.forEach(B=>{const Y={display:Ie.display&&Ie.expanded,level:Ie.level+1,expanded:!1,noLazyChildren:!1,loading:!1},K=Jt(B,N.value);if(K==null)throw new Error("For nested data item, row-key is required.");if(F={...E.value[K]},F&&(Y.expanded=F.expanded,F.level=F.level||Y.level,F.display=!!(F.expanded&&Y.display),typeof F.lazy=="boolean"&&(typeof F.loaded=="boolean"&&F.loaded&&(Y.noLazyChildren=!(F.children&&F.children.length)),Y.loading=F.loading)),J++,ee.push(b(B,C+J,Y)),F){const Q=L.value[K]||B[O.value];me(Q,F)}})};F.display=!0;const we=L.value[U]||S[O.value];me(we,F)}return ee}else return b(S,C,void 0)},tooltipContent:f,tooltipTrigger:c}}const WV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var GV=ie({name:"ElTableBody",props:WV,setup(e){const t=it(),r=Le(ri),n=Oe("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=VV(e),{onColumnsChange:s,onScrollableChange:l}=JA(r);return be(e.store.states.hoverRow,(u,f)=>{!e.store.states.isComplex.value||!At||q3(()=>{const c=t==null?void 0:t.vnode.el,h=Array.from((c==null?void 0:c.children)||[]).filter(p=>p==null?void 0:p.classList.contains(`${n.e("row")}`)),d=h[f],v=h[u];d&&so(d,"hover-row"),v&&Za(v,"hover-row")})}),ks(()=>{var u;(u=Xr)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Te("tbody",{tabIndex:-1},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function UV(){const e=Le(ri),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function YV(e){const{columns:t}=UV(),r=Oe("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ky(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Xy(o,a.fixed,e.store);return As(s,"left"),As(s,"right"),s},columns:t}}var jV=ie({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=YV(e);return{ns:Oe("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i}=this,a=this.store.states.data.value;let o=[];return n?o=n({columns:e,data:a}):e.forEach((s,l)=>{if(l===0){o[l]=i;return}const u=a.map(d=>Number(d[s.property])),f=[];let c=!0;u.forEach(d=>{if(!Number.isNaN(+d)){c=!1;const v=`${d}`.split(".")[1];f.push(v?v.length:0)}});const h=Math.max.apply(null,f);c?o[l]="":o[l]=u.reduce((d,v)=>{const p=Number(v);return Number.isNaN(+p)?d:Number.parseFloat((d+v).toFixed(Math.min(h,20)))},0)}),Te(Te("tfoot",[Te("tr",{},[...e.map((s,l)=>Te("td",{key:l,colspan:s.colSpan,rowspan:s.rowSpan,class:r(e,l),style:t(s,l)},[Te("div",{class:["cell",s.labelClassName]},[o[l]])]))])]))}});function qV(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,c)=>{e.toggleRowSelection(f,c,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,c)=>{e.toggleRowExpansionAdapter(f,c)},clearSort:()=>{e.clearSort()},sort:(f,c)=>{e.commit("sort",{prop:f,order:c})}}}function KV(e,t,r,n){const i=$(!1),a=$(null),o=$(!1),s=F=>{o.value=F},l=$({width:null,height:null,headerHeight:null}),u=$(!1),f={display:"inline-block",verticalAlign:"middle"},c=$(),h=$(0),d=$(0),v=$(0),p=$(0),m=$(0);na(()=>{t.setHeight(e.height)}),na(()=>{t.setMaxHeight(e.maxHeight)}),be(()=>[e.currentRowKey,r.states.rowKey],([F,z])=>{!T(z)||!T(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),be(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),na(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},y=(F,z)=>{const{pixelX:ee,pixelY:J}=z;Math.abs(ee)>=Math.abs(J)&&(n.refs.bodyWrapper.scrollLeft+=z.pixelX/5)},_=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),b=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),x=()=>{_.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(M)};_t(async()=>{await Nt(),r.updateColumns(),A(),requestAnimationFrame(x);const F=n.vnode.el,z=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:c.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&z?z.offsetHeight:null},r.states.columns.value.forEach(ee=>{ee.filteredValue&&ee.filteredValue.length&&n.store.commit("filterChange",{column:ee,values:ee.filteredValue,silent:!0})}),n.$ready=!0});const w=(F,z)=>{if(!F)return;const ee=Array.from(F.classList).filter(J=>!J.startsWith("is-scrolling-"));ee.push(t.scrollX.value?z:"is-scrolling-none"),F.className=ee.join(" ")},S=F=>{const{tableWrapper:z}=n.refs;w(z,F)},C=F=>{const{tableWrapper:z}=n.refs;return!!(z&&z.classList.contains(F))},M=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const Ie="is-scrolling-none";C(Ie)||S(Ie);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:z,offsetWidth:ee,scrollWidth:J}=F,{headerWrapper:me,footerWrapper:we}=n.refs;me&&(me.scrollLeft=z),we&&(we.scrollLeft=z);const $e=J-ee-1;z>=$e?S("is-scrolling-right"):S(z===0?"is-scrolling-left":"is-scrolling-middle")},A=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&xn(n.refs.scrollBarRef.wrapRef,"scroll",M,{passive:!0}),e.fit?ms(n.vnode.el,P):xn(window,"resize",P),ms(n.refs.bodyWrapper,()=>{var F,z;P(),(z=(F=n.refs)==null?void 0:F.scrollBarRef)==null||z.update()}))},P=()=>{var F,z,ee,J;const me=n.vnode.el;if(!n.$ready||!me)return;let we=!1;const{width:$e,height:Ie,headerHeight:B}=l.value,Y=c.value=me.offsetWidth;$e!==Y&&(we=!0);const K=me.offsetHeight;(e.height||_.value)&&Ie!==K&&(we=!0);const Q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(Q==null?void 0:Q.offsetHeight)!==B&&(we=!0),h.value=((z=n.refs.tableWrapper)==null?void 0:z.scrollHeight)||0,v.value=(Q==null?void 0:Q.scrollHeight)||0,p.value=((ee=n.refs.footerWrapper)==null?void 0:ee.offsetHeight)||0,m.value=((J=n.refs.appendWrapper)==null?void 0:J.offsetHeight)||0,d.value=h.value-v.value-p.value-m.value,we&&(l.value={width:Y,height:K,headerHeight:e.showHeader&&(Q==null?void 0:Q.offsetHeight)||0},x())},E=xi(),L=k(()=>{const{bodyWidth:F,scrollY:z,gutterWidth:ee}=t;return F.value?`${F.value-(z.value?ee:0)}px`:""}),O=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&d.value&&(F=`${d.value}px`);const z=c.value;return{width:z?`${z}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),V=k(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`}:{maxHeight:`${e.maxHeight-v.value-p.value}px`}:{});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:y,tableSize:E,emptyBlockStyle:N,handleFixedMousewheel:(F,z)=>{const ee=n.refs.bodyWrapper;if(Math.abs(z.spinY)>0){const J=ee.scrollTop;z.pixelY<0&&J!==0&&F.preventDefault(),z.pixelY>0&&ee.scrollHeight-ee.clientHeight>J&&F.preventDefault(),ee.scrollTop+=Math.ceil(z.pixelY/5)}else ee.scrollLeft+=Math.ceil(z.pixelX/5)},resizeProxyVisible:o,bodyWidth:L,resizeState:l,doLayout:x,tableBodyStyles:b,tableLayout:O,scrollbarViewStyle:f,tableInnerStyle:H,scrollbarStyle:V}}function XV(e){const t=$(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};_t(()=>{r()}),ks(()=>{var n;(n=t.value)==null||n.disconnect()})}var ZV={data:{type:Array,default:()=>[]},size:dh,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean,showOverflowTooltip:[Boolean,Object]};function t2(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Te("colgroup",{},r.map(i=>Te("col",n(i))))}t2.props=["columns","tableLayout"];const QV=()=>{const e=$(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&kt(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let JV=1;const eW=ie({name:"ElTable",directives:{Mousewheel:d8},components:{TableHeader:$V,TableBody:GV,TableFooter:jV,ElScrollbar:uA,hColgroup:t2},props:ZV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=Hs(),r=Oe("table"),n=it();Dt(ri,n);const i=TV(n,e);n.store=i;const a=new AV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:h,toggleRowExpansion:d,clearSort:v,sort:p}=qV(i),{isHidden:m,renderExpanded:g,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:A,resizeState:P,doLayout:E,tableBodyStyles:L,tableLayout:O,scrollbarViewStyle:N,tableInnerStyle:H,scrollbarStyle:V}=KV(e,a,i,n),{scrollBarRef:U,scrollTo:F,setScrollLeft:z,setScrollTop:ee}=QV(),J=hd(E,50),me=`${r.namespace.value}-table_${JV++}`;n.tableId=me,n.state={isGroup:_,resizeState:P,doLayout:E,debouncedUpdateLayout:J};const we=k(()=>e.sumText||t("el.table.sumText")),$e=k(()=>e.emptyText||t("el.table.emptyText"));return XV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:me,tableSize:w,isHidden:m,isEmpty:o,renderExpanded:g,resizeProxyVisible:M,resizeState:P,isGroup:_,bodyWidth:A,tableBodyStyles:L,emptyBlockStyle:S,debouncedUpdateLayout:J,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:h,toggleRowExpansion:d,clearSort:v,doLayout:E,sort:p,t,setDragVisible:y,context:n,computedSumText:we,computedEmptyText:$e,tableLayout:O,scrollbarViewStyle:N,tableInnerStyle:H,scrollbarStyle:V,scrollBarRef:U,scrollTo:F,setScrollLeft:z,setScrollTop:ee}}}),tW=["data-prefix"],rW={ref:"hiddenColumns",class:"hidden-columns"};function nW(e,t,r,n,i,a){const o=xr("hColgroup"),s=xr("table-header"),l=xr("table-body"),u=xr("table-footer"),f=xr("el-scrollbar"),c=fT("mousewheel");return G(),ce("div",{ref:"tableWrapper",class:re([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:ct(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...h)=>e.handleMouseLeave&&e.handleMouseLeave(...h))},[te("div",{class:re(e.ns.e("inner-wrapper")),style:ct(e.tableInnerStyle)},[te("div",rW,[Ce(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?qt((G(),ce("div",{key:0,ref:"headerWrapper",class:re(e.ns.e("header-wrapper"))},[te("table",{ref:"tableHeader",class:re(e.ns.e("header")),style:ct(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Z(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[c,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),te("div",{ref:"bodyWrapper",class:re(e.ns.e("body-wrapper"))},[Z(f,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:q(()=>[te("table",{ref:"tableBody",class:re(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:ct({width:e.bodyWidth,tableLayout:e.tableLayout})},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(G(),ve(s,{key:0,ref:"tableHeaderRef",class:re(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","onSetDragVisible"])):Ae("v-if",!0),Z(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&e.tableLayout==="auto"?(G(),ve(u,{key:1,class:re(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Ae("v-if",!0)],6),e.isEmpty?(G(),ce("div",{key:0,ref:"emptyBlock",style:ct(e.emptyBlockStyle),class:re(e.ns.e("empty-block"))},[te("span",{class:re(e.ns.e("empty-text"))},[Ce(e.$slots,"empty",{},()=>[pt(xe(e.computedEmptyText),1)])],2)],6)):Ae("v-if",!0),e.$slots.append?(G(),ce("div",{key:1,ref:"appendWrapper",class:re(e.ns.e("append-wrapper"))},[Ce(e.$slots,"append")],2)):Ae("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary&&e.tableLayout==="fixed"?qt((G(),ce("div",{key:1,ref:"footerWrapper",class:re(e.ns.e("footer-wrapper"))},[te("table",{class:re(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:ct(e.tableBodyStyles)},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Z(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Kn,!e.isEmpty],[c,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),e.border||e.isGroup?(G(),ce("div",{key:2,class:re(e.ns.e("border-left-patch"))},null,2)):Ae("v-if",!0)],6),qt(te("div",{ref:"resizeProxy",class:re(e.ns.e("column-resize-proxy"))},null,2),[[Kn,e.resizeProxyVisible]])],46,tW)}var iW=Ke(eW,[["render",nW],["__file","table.vue"]]);const aW={selection:"table-column--selection",expand:"table__expand-column"},oW={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},sW=e=>aW[e]||"",lW={selection:{renderHeader({store:e,column:t}){function r(){return e.states.data.value&&e.states.data.value.length===0}return Te(Ms,{disabled:r(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value,ariaLabel:t.label})},renderCell({row:e,column:t,store:r,$index:n}){return Te(Ms,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e),ariaLabel:t.label})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Te("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Te("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Te(Bt,null,{default:()=>[Te(Ey)]})]})},sortable:!1,resizable:!1}};function uW({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&Ec(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function fW({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Te("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Te("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=Ey;t.loading&&(l=Ly),a.push(Te("div",{class:s,onClick:o},{default:()=>[Te(Bt,{class:{[i.is("loading")]:t.loading}},{default:()=>[Te(l)]})]}))}else a.push(Te("span",{class:i.e("placeholder")}));return a}function O1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function cW(e,t){const r=it();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=O1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ue(t,u)&&be(()=>t[u],f=>{let c=f;u==="width"&&l==="realWidth"&&(c=qy(f)),u==="minWidth"&&l==="realMinWidth"&&(c=qA(f)),r.columnConfig.value[u]=c,r.columnConfig.value[l]=c;const h=u==="fixed";e.value.store.scheduleLayout(h)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=O1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ue(t,u)&&be(()=>t[u],f=>{r.columnConfig.value[l]=f})})}}}function dW(e,t,r){const n=it(),i=$(""),a=$(!1),o=$(),s=$(),l=Oe("table");na(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),na(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),f=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:x}=b.states,w=x.value;return w&&Object.keys(w).length>0}),c=$(qy(e.width)),h=$(qA(e.minWidth)),d=b=>(c.value&&(b.width=c.value),h.value&&(b.minWidth=h.value),!c.value&&h.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const x=b.type,w=lW[x]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const S=sW(x);if(S){const C=`${T(l.namespace)}-${S}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>x(w)):x(b);function x(w){var S;((S=w==null?void 0:w.type)==null?void 0:S.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:d,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>(n.columnConfig.value.label,Ce(t,"header",w,()=>[b.label])));let x=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Te("div",{class:"cell"},[x(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(x=x||uW,b.renderCell=w=>{let S=null;if(t.default){const L=t.default(w);S=L.some(O=>O.type!==Mr)?L:x(w)}else S=x(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(L=>L.type==="default"),A=f.value&&w.cellIndex===M,P=fW(w,A),E={class:"cell",style:{}};return b.showOverflowTooltip&&(E.class=`${E.class} ${T(l.namespace)}-tooltip`,E.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(S),Te("div",E,[P,S])}),b},getPropsData:(...b)=>b.reduce((x,w)=>(Array.isArray(w)&&w.forEach(S=>{x[S]=e[S]}),x),{}),getColumnElIndex:(b,x)=>Array.prototype.indexOf.call(b,x),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var hW={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let vW=1;var r2=ie({name:"ElTableColumn",components:{ElCheckbox:Ms},props:hW,setup(e,{slots:t}){const r=it(),n=$({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=cW(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:f,setColumnWidth:c,setColumnForcedProps:h,setColumnRenders:d,getPropsData:v,getColumnElIndex:p,realAlign:m,updateColumnOrder:g}=dW(e,t,i),y=f.value;s.value=`${y.tableId||y.columnId}_column_${vW++}`,eh(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,x=bs(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip,w={...oW[_],id:s.value,type:_,property:e.prop||e.property,align:m,headerAlign:u,showOverflowTooltip:x,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let P=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);P=vV(w,P),P=gV(d,c,h)(P),n.value=P,a(),o()}),_t(()=>{var _;const b=f.value,x=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(x||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,g)}),tr(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,g)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===ft&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!ze(s==null?void 0:s.children)&&i.push(s)});return Te("div",i)}catch{return Te("div",[])}}});const pW=Yt(iW,{TableColumn:r2}),gW=pa(r2),mW=Je({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:$s,default:""},truncated:{type:Boolean},lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),yW=ie({name:"ElText"}),_W=ie({...yW,props:mW,setup(e){const t=e,r=xi(),n=Oe("text"),i=k(()=>[n.b(),n.m(t.type),n.m(r.value),n.is("truncated",t.truncated),n.is("line-clamp",!bs(t.lineClamp))]);return(a,o)=>(G(),ve(Vt(a.tag),{class:re(T(i)),style:ct({"-webkit-line-clamp":a.lineClamp})},{default:q(()=>[Ce(a.$slots,"default")]),_:3},8,["class","style"]))}});var bW=Ke(_W,[["__file","text.vue"]]);const wW=Yt(bW),n2=["success","info","warning","error"],wr=ja({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:At?document.body:void 0}),SW=Je({customClass:{type:String,default:wr.customClass},center:{type:Boolean,default:wr.center},dangerouslyUseHTMLString:{type:Boolean,default:wr.dangerouslyUseHTMLString},duration:{type:Number,default:wr.duration},icon:{type:vr,default:wr.icon},id:{type:String,default:wr.id},message:{type:Be([String,Object,Function]),default:wr.message},onClose:{type:Be(Function),required:!1},showClose:{type:Boolean,default:wr.showClose},type:{type:String,values:n2,default:wr.type},offset:{type:Number,default:wr.offset},zIndex:{type:Number,default:wr.zIndex},grouping:{type:Boolean,default:wr.grouping},repeatNum:{type:Number,default:wr.repeatNum}}),xW={destroy:()=>!0},Cn=Qm([]),CW=e=>{const t=Cn.findIndex(i=>i.id===e),r=Cn[t];let n;return t>0&&(n=Cn[t-1]),{current:r,prev:n}},TW=e=>{const{prev:t}=CW(e);return t?t.vm.exposed.bottom.value:0},MW=(e,t)=>Cn.findIndex(n=>n.id===e)>0?20:t,AW=["id"],PW=["innerHTML"],EW=ie({name:"ElMessage"}),LW=ie({...EW,props:SW,emits:xW,setup(e,{expose:t}){const r=e,{Close:n}=G3,{ns:i,zIndex:a}=m4("message"),{currentZIndex:o,nextZIndex:s}=a,l=$(),u=$(!1),f=$(0);let c;const h=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),d=k(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Wb[S]}}),v=k(()=>r.icon||Wb[r.type]||""),p=k(()=>TW(r.id)),m=k(()=>MW(r.id,r.offset)+p.value),g=k(()=>f.value+m.value),y=k(()=>({top:`${m.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:c}=hu(()=>{x()},r.duration))}function b(){c==null||c()}function x(){u.value=!1}function w({code:S}){S===hr.esc&&x()}return _t(()=>{_(),s(),u.value=!0}),be(()=>r.repeatNum,()=>{b(),_()}),xn(document,"keydown",w),ms(l,()=>{f.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:g,close:x}),(S,C)=>(G(),ve(ti,{name:T(i).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:C[0]||(C[0]=M=>S.$emit("destroy")),persisted:""},{default:q(()=>[qt(te("div",{id:S.id,ref_key:"messageRef",ref:l,class:re([T(i).b(),{[T(i).m(S.type)]:S.type},T(i).is("center",S.center),T(i).is("closable",S.showClose),S.customClass]),style:ct(T(y)),role:"alert",onMouseenter:b,onMouseleave:_},[S.repeatNum>1?(G(),ve(T(Nz),{key:0,value:S.repeatNum,type:T(h),class:re(T(i).e("badge"))},null,8,["value","type","class"])):Ae("v-if",!0),T(v)?(G(),ve(T(Bt),{key:1,class:re([T(i).e("icon"),T(d)])},{default:q(()=>[(G(),ve(Vt(T(v))))]),_:1},8,["class"])):Ae("v-if",!0),Ce(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(G(),ce(ft,{key:1},[Ae(" Caution here, message could've been compromised, never use user's input as message "),te("p",{class:re(T(i).e("content")),innerHTML:S.message},null,10,PW)],2112)):(G(),ce("p",{key:0,class:re(T(i).e("content"))},xe(S.message),3))]),S.showClose?(G(),ve(T(Bt),{key:2,class:re(T(i).e("closeBtn")),onClick:ua(x,["stop"])},{default:q(()=>[Z(T(n))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],46,AW),[[Kn,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var DW=Ke(LW,[["__file","message.vue"]]);let IW=1;const i2=e=>{const t=!e||ze(e)||la(e)||De(e)?{message:e}:e,r={...wr,...t};if(!r.appendTo)r.appendTo=document.body;else if(ze(r.appendTo)){let n=document.querySelector(r.appendTo);mo(n)||(n=document.body),r.appendTo=n}return r},OW=e=>{const t=Cn.indexOf(e);if(t===-1)return;Cn.splice(t,1);const{handler:r}=e;r.close()},RW=({appendTo:e,...t},r)=>{const n=`message_${IW++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),OW(f)},onDestroy:()=>{ld(null,a)}},s=Z(DW,o,De(o.message)||la(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ps._context,ld(s,a),e.appendChild(a.firstElementChild);const l=s.component,f={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return f},Ps=(e={},t)=>{if(!At)return{close:()=>{}};if(kt(i1.max)&&Cn.length>=i1.max)return{close:()=>{}};const r=i2(e);if(r.grouping&&Cn.length){const i=Cn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=RW(r,t);return Cn.push(n),n.handler};n2.forEach(e=>{Ps[e]=(t={},r)=>{const n=i2(t);return Ps({...n,type:e},r)}});function kW(e){for(const t of Cn)(!e||e===t.props.type)&&t.handler.close()}Ps.closeAll=kW;Ps._context=null;const Wl=U3(Ps,"$message"),NW={id:"app"},BW={class:"grid-content header-color"},FW={class:"header-content"},$W=te("div",{class:"brand"},[te("a",{href:"#"},"frp")],-1),HW={class:"dark-switch"},zW=te("span",null,"Proxies",-1),VW={id:"content"},WW=te("footer",null,null,-1),GW=ie({__name:"App",setup(e){const t=XR(),r=$(t),n=mR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=cV,l=H6,u=z6,f=$6,c=$A,h=xr("router-view"),d=FA;return G(),ce("div",NW,[te("header",BW,[te("div",FW,[$W,te("div",HW,[Z(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:T(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),te("section",null,[Z(d,null,{default:q(()=>[Z(c,{id:"side-nav",xs:24,md:4},{default:q(()=>[Z(f,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:q(()=>[Z(l,{index:"/"},{default:q(()=>[pt("Overview")]),_:1}),Z(u,{index:"/proxies"},{title:q(()=>[zW]),default:q(()=>[Z(l,{index:"/proxies/tcp"},{default:q(()=>[pt("TCP")]),_:1}),Z(l,{index:"/proxies/udp"},{default:q(()=>[pt("UDP")]),_:1}),Z(l,{index:"/proxies/http"},{default:q(()=>[pt("HTTP")]),_:1}),Z(l,{index:"/proxies/https"},{default:q(()=>[pt("HTTPS")]),_:1}),Z(l,{index:"/proxies/tcpmux"},{default:q(()=>[pt("TCPMUX")]),_:1}),Z(l,{index:"/proxies/stcp"},{default:q(()=>[pt("STCP")]),_:1}),Z(l,{index:"/proxies/sudp"},{default:q(()=>[pt("SUDP")]),_:1})]),_:1}),Z(l,{index:""},{default:q(()=>[pt("Help")]),_:1})]),_:1})]),_:1}),Z(c,{xs:24,md:20},{default:q(()=>[te("div",VW,[Z(h)])]),_:1})]),_:1})]),WW])}}});/*! * vue-router v4.2.5 * (c) 2023 Eduardo San Martin Morote * @license MIT - */const Ko=typeof window<"u";function UW(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const lt=Object.assign;function dv(e,t){const r={};for(const n in t){const i=t[n];r[n]=En(i)?i.map(e):e(i)}return r}const Gl=()=>{},En=Array.isArray,YW=/\/$/,jW=e=>e.replace(YW,"");function hv(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=ZW(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function qW(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function R1(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function KW(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&As(t.matched[n],r.matched[i])&&a2(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function As(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function a2(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!XW(e[r],t[r]))return!1;return!0}function XW(e,t){return En(e)?k1(e,t):En(t)?k1(t,e):e===t}function k1(e,t){return En(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function ZW(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/"),i=n[n.length-1];(i===".."||i===".")&&n.push("");let a=r.length-1,o,s;for(o=0;o1&&a--;else break;return r.slice(0,a).join("/")+"/"+n.slice(o-(o===n.length?1:0)).join("/")}var Tu;(function(e){e.pop="pop",e.push="push"})(Tu||(Tu={}));var Ul;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ul||(Ul={}));function QW(e){if(!e)if(Ko){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),jW(e)}const JW=/^[^#]+#/;function eG(e,t){return e.replace(JW,"#")+t}function tG(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const gh=()=>({left:window.pageXOffset,top:window.pageYOffset});function rG(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=tG(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function N1(e,t){return(history.state?history.state.position-t:-1)+e}const Lg=new Map;function nG(e,t){Lg.set(e,t)}function iG(e){const t=Lg.get(e);return Lg.delete(e),t}let aG=()=>location.protocol+"//"+location.host;function o2(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),R1(l,"")}return R1(r,e)+n+i}function oG(e,t,r,n){let i=[],a=[],o=null;const s=({state:h})=>{const d=o2(e,location),v=r.value,p=t.value;let m=0;if(h){if(r.value=d,t.value=h,o&&o===v){o=null;return}m=p?h.position-p.position:0}else n(d);i.forEach(g=>{g(r.value,v,{delta:m,type:Tu.pop,direction:m?m>0?Ul.forward:Ul.back:Ul.unknown})})};function l(){o=r.value}function u(h){i.push(h);const d=()=>{const v=i.indexOf(h);v>-1&&i.splice(v,1)};return a.push(d),d}function f(){const{history:h}=window;h.state&&h.replaceState(lt({},h.state,{scroll:gh()}),"")}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:l,listen:u,destroy:c}}function B1(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?gh():null}}function sG(e){const{history:t,location:r}=window,n={value:o2(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=e.indexOf("#"),h=c>-1?(r.host&&document.querySelector("base")?e:e.slice(c))+l:aG()+e+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(d){console.error(d),r[f?"replace":"assign"](h)}}function o(l,u){const f=lt({},t.state,B1(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,f,!0),n.value=l}function s(l,u){const f=lt({},i.value,t.state,{forward:l,scroll:gh()});a(f.current,f,!0);const c=lt({},B1(n.value,l,null),{position:f.position+1},u);a(l,c,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function lG(e){e=QW(e);const t=sG(e),r=oG(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=lt({location:"",base:e,go:n,createHref:eG.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function uG(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),lG(e)}function fG(e){return typeof e=="string"||e&&typeof e=="object"}function s2(e){return typeof e=="string"||typeof e=="symbol"}const Ri={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},l2=Symbol("");var F1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(F1||(F1={}));function Ps(e,t){return lt(new Error,{type:e,[l2]:!0},t)}function li(e,t){return e instanceof Error&&l2 in e&&(t==null||!!(e.type&t))}const $1="[^/]+?",cG={sensitive:!1,strict:!1,start:!0,end:!0},dG=/[.+*?^${}()[\]/\\]/g;function hG(e,t){const r=lt({},cG,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const f=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let c=0;ct.length?t.length===1&&t[0]===80?1:-1:0}function pG(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const gG={type:0,value:""},mG=/[a-zA-Z0-9_]/;function yG(e){if(!e)return[[]];if(e==="/")return[[gG]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${r})/"${u}": ${d}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;s{o(y)}:Gl}function o(f){if(s2(f)){const c=n.get(f);c&&(n.delete(f),r.splice(r.indexOf(c),1),c.children.forEach(o),c.alias.forEach(o))}else{const c=r.indexOf(f);c>-1&&(r.splice(c,1),f.record.name&&n.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return r}function l(f){let c=0;for(;c=0&&(f.record.path!==r[c].record.path||!u2(f,r[c]));)c++;r.splice(c,0,f),f.record.name&&!V1(f)&&n.set(f.record.name,f)}function u(f,c){let h,d={},v,p;if("name"in f&&f.name){if(h=n.get(f.name),!h)throw Ps(1,{location:f});p=h.record.name,d=lt(z1(c.params,h.keys.filter(y=>!y.optional).map(y=>y.name)),f.params&&z1(f.params,h.keys.map(y=>y.name))),v=h.stringify(d)}else if("path"in f)v=f.path,h=r.find(y=>y.re.test(v)),h&&(d=h.parse(v),p=h.record.name);else{if(h=c.name?n.get(c.name):r.find(y=>y.re.test(c.path)),!h)throw Ps(1,{location:f,currentLocation:c});p=h.record.name,d=lt({},c.params,f.params),v=h.stringify(d)}const m=[];let g=h;for(;g;)m.unshift(g.record),g=g.parent;return{name:p,path:v,params:d,matched:m,meta:xG(m)}}return e.forEach(f=>a(f)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function z1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function wG(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:SG(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function SG(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="object"?r[n]:r;return t}function V1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function xG(e){return e.reduce((t,r)=>lt(t,r.meta),{})}function W1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function u2(e,t){return t.children.some(r=>r===e||u2(e,r))}const f2=/#/g,CG=/&/g,TG=/\//g,MG=/=/g,AG=/\?/g,c2=/\+/g,PG=/%5B/g,EG=/%5D/g,d2=/%5E/g,LG=/%60/g,h2=/%7B/g,DG=/%7C/g,v2=/%7D/g,IG=/%20/g;function Zy(e){return encodeURI(""+e).replace(DG,"|").replace(PG,"[").replace(EG,"]")}function OG(e){return Zy(e).replace(h2,"{").replace(v2,"}").replace(d2,"^")}function Dg(e){return Zy(e).replace(c2,"%2B").replace(IG,"+").replace(f2,"%23").replace(CG,"%26").replace(LG,"`").replace(h2,"{").replace(v2,"}").replace(d2,"^")}function RG(e){return Dg(e).replace(MG,"%3D")}function kG(e){return Zy(e).replace(f2,"%23").replace(AG,"%3F")}function NG(e){return e==null?"":kG(e).replace(TG,"%2F")}function yd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function BG(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&Dg(a)):[n&&Dg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function FG(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=En(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const $G=Symbol(""),U1=Symbol(""),Qy=Symbol(""),p2=Symbol(""),Ig=Symbol("");function el(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e.slice(),reset:r}}function Xi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=c=>{c===!1?s(Ps(4,{from:r,to:t})):c instanceof Error?s(c):fG(c)?s(Ps(2,{from:t,to:c})):(a&&n.enterCallbacks[i]===a&&typeof c=="function"&&a.push(c),o())},u=e.call(n&&n.instances[i],t,r,l);let f=Promise.resolve(u);e.length<3&&(f=f.then(l)),f.catch(c=>s(c))})}function vv(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(HG(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Xi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const f=UW(u)?u.default:u;a.components[o]=f;const h=(f.__vccOpts||f)[t];return h&&Xi(h,r,n,a,o)()}))}}return i}function HG(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Y1(e){const t=Le(Qy),r=Le(p2),n=k(()=>t.resolve(T(e.to))),i=k(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const h=c.findIndex(As.bind(null,f));if(h>-1)return h;const d=j1(l[u-2]);return u>1&&j1(f)===d&&c[c.length-1].path!==d?c.findIndex(As.bind(null,l[u-2])):h}),a=k(()=>i.value>-1&&GG(r.params,n.value.params)),o=k(()=>i.value>-1&&i.value===r.matched.length-1&&a2(r.params,n.value.params));function s(l={}){return WG(l)?t[T(e.replace)?"replace":"push"](T(e.to)).catch(Gl):Promise.resolve()}return{route:n,href:k(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const zG=ie({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Y1,setup(e,{slots:t}){const r=Ln(Y1(e)),{options:n}=Le(Qy),i=k(()=>({[q1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[q1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:Te("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),VG=zG;function WG(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function GG(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!En(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function j1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const q1=(e,t,r)=>e??t??r,UG=ie({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Le(Ig),i=k(()=>e.route||n.value),a=Le(U1,0),o=k(()=>{let u=T(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=k(()=>i.value.matched[o.value]);Dt(U1,k(()=>o.value+1)),Dt($G,s),Dt(Ig,i);const l=$();return we(()=>[l.value,s.value,e.name],([u,f,c],[h,d,v])=>{f&&(f.instances[c]=u,d&&d!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=d.leaveGuards),f.updateGuards.size||(f.updateGuards=d.updateGuards))),u&&f&&(!d||!As(f,d)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=e.name,c=s.value,h=c&&c.components[f];if(!h)return K1(r.default,{Component:h,route:u});const d=c.props[f],v=d?d===!0?u.params:typeof d=="function"?d(u):d:null,m=Te(h,lt({},v,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return K1(r.default,{Component:m,route:u})||m}}});function K1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const YG=UG;function jG(e){const t=bG(e.routes,e),r=e.parseQuery||BG,n=e.stringifyQuery||G1,i=e.history,a=el(),o=el(),s=el(),l=ty(Ri);let u=Ri;Ko&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=dv.bind(null,B=>""+B),c=dv.bind(null,NG),h=dv.bind(null,yd);function d(B,Y){let K,Q;return s2(B)?(K=t.getRecordMatcher(B),Q=Y):Q=B,t.addRoute(Q,K)}function v(B){const Y=t.getRecordMatcher(B);Y&&t.removeRoute(Y)}function p(){return t.getRoutes().map(B=>B.record)}function m(B){return!!t.getRecordMatcher(B)}function g(B,Y){if(Y=lt({},Y||l.value),typeof B=="string"){const I=hv(r,B,Y.path),W=t.resolve({path:I.path},Y),X=i.createHref(I.fullPath);return lt(I,W,{params:h(W.params),hash:yd(I.hash),redirectedFrom:void 0,href:X})}let K;if("path"in B)K=lt({},B,{path:hv(r,B.path,Y.path).path});else{const I=lt({},B.params);for(const W in I)I[W]==null&&delete I[W];K=lt({},B,{params:c(I)}),Y.params=c(Y.params)}const Q=t.resolve(K,Y),oe=B.hash||"";Q.params=f(h(Q.params));const pe=qW(n,lt({},B,{hash:OG(oe),path:Q.path})),D=i.createHref(pe);return lt({fullPath:pe,hash:oe,query:n===G1?FG(B.query):B.query||{}},Q,{redirectedFrom:void 0,href:D})}function y(B){return typeof B=="string"?hv(r,B,l.value.path):lt({},B)}function _(B,Y){if(u!==B)return Ps(8,{from:Y,to:B})}function b(B){return S(B)}function x(B){return b(lt(y(B),{replace:!0}))}function w(B){const Y=B.matched[B.matched.length-1];if(Y&&Y.redirect){const{redirect:K}=Y;let Q=typeof K=="function"?K(B):K;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=y(Q):{path:Q},Q.params={}),lt({query:B.query,hash:B.hash,params:"path"in Q?{}:B.params},Q)}}function S(B,Y){const K=u=g(B),Q=l.value,oe=B.state,pe=B.force,D=B.replace===!0,I=w(K);if(I)return S(lt(y(I),{state:typeof I=="object"?lt({},oe,I.state):oe,force:pe,replace:D}),Y||K);const W=K;W.redirectedFrom=Y;let X;return!pe&&KW(n,Q,K)&&(X=Ps(16,{to:W,from:Q}),te(Q,Q,!0,!1)),(X?Promise.resolve(X):A(W,Q)).catch(q=>li(q)?li(q,2)?q:z(q):U(q,W,Q)).then(q=>{if(q){if(li(q,2))return S(lt({replace:D},y(q.to),{state:typeof q.to=="object"?lt({},oe,q.to.state):oe,force:pe}),Y||W)}else q=E(W,Q,!0,D,oe);return P(W,Q,q),q})}function C(B,Y){const K=_(B,Y);return K?Promise.reject(K):Promise.resolve()}function M(B){const Y=Se.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(B):B()}function A(B,Y){let K;const[Q,oe,pe]=qG(B,Y);K=vv(Q.reverse(),"beforeRouteLeave",B,Y);for(const I of Q)I.leaveGuards.forEach(W=>{K.push(Xi(W,B,Y))});const D=C.bind(null,B,Y);return K.push(D),Ie(K).then(()=>{K=[];for(const I of a.list())K.push(Xi(I,B,Y));return K.push(D),Ie(K)}).then(()=>{K=vv(oe,"beforeRouteUpdate",B,Y);for(const I of oe)I.updateGuards.forEach(W=>{K.push(Xi(W,B,Y))});return K.push(D),Ie(K)}).then(()=>{K=[];for(const I of pe)if(I.beforeEnter)if(En(I.beforeEnter))for(const W of I.beforeEnter)K.push(Xi(W,B,Y));else K.push(Xi(I.beforeEnter,B,Y));return K.push(D),Ie(K)}).then(()=>(B.matched.forEach(I=>I.enterCallbacks={}),K=vv(pe,"beforeRouteEnter",B,Y),K.push(D),Ie(K))).then(()=>{K=[];for(const I of o.list())K.push(Xi(I,B,Y));return K.push(D),Ie(K)}).catch(I=>li(I,8)?I:Promise.reject(I))}function P(B,Y,K){s.list().forEach(Q=>M(()=>Q(B,Y,K)))}function E(B,Y,K,Q,oe){const pe=_(B,Y);if(pe)return pe;const D=Y===Ri,I=Ko?history.state:{};K&&(Q||D?i.replace(B.fullPath,lt({scroll:D&&I&&I.scroll},oe)):i.push(B.fullPath,oe)),l.value=B,te(B,Y,K,D),z()}let L;function O(){L||(L=i.listen((B,Y,K)=>{if(!$e.listening)return;const Q=g(B),oe=w(Q);if(oe){S(lt(oe,{replace:!0}),Q).catch(Gl);return}u=Q;const pe=l.value;Ko&&nG(N1(pe.fullPath,K.delta),gh()),A(Q,pe).catch(D=>li(D,12)?D:li(D,2)?(S(D.to,Q).then(I=>{li(I,20)&&!K.delta&&K.type===Tu.pop&&i.go(-1,!1)}).catch(Gl),Promise.reject()):(K.delta&&i.go(-K.delta,!1),U(D,Q,pe))).then(D=>{D=D||E(Q,pe,!1),D&&(K.delta&&!li(D,8)?i.go(-K.delta,!1):K.type===Tu.pop&&li(D,20)&&i.go(-1,!1)),P(Q,pe,D)}).catch(Gl)}))}let N=el(),H=el(),V;function U(B,Y,K){z(B);const Q=H.list();return Q.length?Q.forEach(oe=>oe(B,Y,K)):console.error(B),Promise.reject(B)}function F(){return V&&l.value!==Ri?Promise.resolve():new Promise((B,Y)=>{N.add([B,Y])})}function z(B){return V||(V=!B,O(),N.list().forEach(([Y,K])=>B?K(B):Y()),N.reset()),B}function te(B,Y,K,Q){const{scrollBehavior:oe}=e;if(!Ko||!oe)return Promise.resolve();const pe=!K&&iG(N1(B.fullPath,0))||(Q||!K)&&history.state&&history.state.scroll||null;return kt().then(()=>oe(B,Y,pe)).then(D=>D&&rG(D)).catch(D=>U(D,B,Y))}const J=B=>i.go(B);let me;const Se=new Set,$e={currentRoute:l,listening:!0,addRoute:d,removeRoute:v,hasRoute:m,getRoutes:p,resolve:g,options:e,push:b,replace:x,go:J,back:()=>J(-1),forward:()=>J(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:H.add,isReady:F,install(B){const Y=this;B.component("RouterLink",VG),B.component("RouterView",YG),B.config.globalProperties.$router=Y,Object.defineProperty(B.config.globalProperties,"$route",{enumerable:!0,get:()=>T(l)}),Ko&&!me&&l.value===Ri&&(me=!0,b(i.location).catch(oe=>{}));const K={};for(const oe in Ri)Object.defineProperty(K,oe,{get:()=>l.value[oe],enumerable:!0});B.provide(Qy,Y),B.provide(p2,Qm(K)),B.provide(Ig,l);const Q=B.unmount;Se.add(B),B.unmount=function(){Se.delete(B),Se.size<1&&(u=Ri,L&&L(),L=null,l.value=Ri,me=!1,V=!1),Q()}}};function Ie(B){return B.reduce((Y,K)=>Y.then(()=>M(K)),Promise.resolve())}return $e}function qG(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oAs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>As(u,l))||i.push(l))}return[r,n,i]}var Og={exports:{}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(a8,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(c){return typeof c<"u"&&c!==null},o=function(c){return c!==c},s=function(c){return isFinite(c)&&!o(parseFloat(c))},l=function(c){var h=Object.prototype.toString.call(c);return h==="[object Array]"},u={intword:function(c,h){var d=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(c,d)},compactInteger:function(c){var h=arguments.length<=1||arguments[1]===void 0?0:arguments[1];h=Math.max(h,0);var d=parseInt(c,10),v=d<0?"-":"",p=Math.abs(d),m=String(p),g=m.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+m;if(g>y[0]+3)return d.toExponential(h).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=g-b+1,C=m.split(""),M=C.slice(0,S),A=C.slice(S,S+h+1),P=M.join(""),E=A.join("");E.length=v)return u.formatNumber(c/v,h,"")+" "+d+"B"}return c>=1024?u.formatNumber(c/1024,0)+" KB":u.formatNumber(c,0)+u.pluralize(c," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(c){var h=arguments.length<=1||arguments[1]===void 0?0:arguments[1],d=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,M){return M?S.substr(0,M)+C:""},m=function(S,C,M){return S.substr(M).replace(/(\d{3})(?=\d)/g,"$1"+C)},g=function(S,C,M){return M?C+u.toFixed(Math.abs(S),M).split(".")[1]:""},y=u.normalizePrecision(h),_=c<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(c||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,d,x)+m(b,d,x)+g(c,v,y)},toFixed:function(c,h){h=a(h)?h:u.normalizePrecision(h,0);var d=Math.pow(10,h);return(Math.round(c*d)/d).toFixed(h)},normalizePrecision:function(c,h){return c=Math.round(Math.abs(c)),o(c)?h:c},ordinal:function(c){var h=parseInt(c,10);if(h===0)return c;var d=h%100;if([11,12,13].indexOf(d)>=0)return h+"th";var v=h%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+h+p},times:function(c){var h=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(c)&&c>=0){var d=parseFloat(c),v=["never","once","twice"];if(a(h[d]))return String(h[d]);var p=a(v[d])&&v[d].toString();return p||d.toString()+" times"}return null},pluralize:function(c,h,d){return a(c)&&a(h)?(d=a(d)?d:h+"s",parseInt(c,10)===1?h:d):null},truncate:function(c){var h=arguments.length<=1||arguments[1]===void 0?100:arguments[1],d=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return c.length>h?c.substring(0,h-d.length)+d:c},truncateWords:function(c,h){for(var d=c.split(" "),v="",p=0;ph?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(c){var h=arguments.length<=1||arguments[1]===void 0?100:arguments[1],d=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(c)&&s(h)&&c>h&&(v=h+d),(v||c).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(c,h,d){var v=c.length,p=void 0;if(v<2)return String(c);if(v===2)return c.join(" and ");if(a(h)&&v>h){var m=v-h;p=h,d=a(d)?d:", and "+m+" "+u.pluralize(m,"other")}else p=-1,d=", and "+c[v-1];return c.slice(0,p).join(", ")+d},dictionary:function(c){var h=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],d=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(c)&&(typeof c>"u"?"undefined":r(c))==="object"&&!l(c)){var p=[];for(var m in c)if(c.hasOwnProperty(m)){var g=c[m];p.push(""+m+h+g)}return p.join(d)}return v},frequency:function(c,h){if(!l(c))return null;var d=c.length,v=u.times(d);return d===0?v+" "+h:h+" "+v},pace:function(c,h){var d=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(c===0||h===0)return"No "+u.pluralize(0,d);for(var v="Approximately",p=void 0,m=void 0,g=c/h,y=0;y1){p=_.name;break}}p||(v="Less than",m=1,p=n[n.length-1].name);var b=Math.round(m);return d=u.pluralize(b,d),v+" "+b+" "+d+" per "+p},nl2br:function(c){var h=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return c.replace(/\n/g,h)},br2nl:function(c){var h=arguments.length<=1||arguments[1]===void 0?`\r + */const Zo=typeof window<"u";function UW(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const lt=Object.assign;function dv(e,t){const r={};for(const n in t){const i=t[n];r[n]=En(i)?i.map(e):e(i)}return r}const Gl=()=>{},En=Array.isArray,YW=/\/$/,jW=e=>e.replace(YW,"");function hv(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=ZW(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function qW(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function R1(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function KW(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&Es(t.matched[n],r.matched[i])&&a2(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Es(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function a2(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!XW(e[r],t[r]))return!1;return!0}function XW(e,t){return En(e)?k1(e,t):En(t)?k1(t,e):e===t}function k1(e,t){return En(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function ZW(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/"),i=n[n.length-1];(i===".."||i===".")&&n.push("");let a=r.length-1,o,s;for(o=0;o1&&a--;else break;return r.slice(0,a).join("/")+"/"+n.slice(o-(o===n.length?1:0)).join("/")}var Tu;(function(e){e.pop="pop",e.push="push"})(Tu||(Tu={}));var Ul;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ul||(Ul={}));function QW(e){if(!e)if(Zo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),jW(e)}const JW=/^[^#]+#/;function eG(e,t){return e.replace(JW,"#")+t}function tG(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const gh=()=>({left:window.pageXOffset,top:window.pageYOffset});function rG(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=tG(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function N1(e,t){return(history.state?history.state.position-t:-1)+e}const Lg=new Map;function nG(e,t){Lg.set(e,t)}function iG(e){const t=Lg.get(e);return Lg.delete(e),t}let aG=()=>location.protocol+"//"+location.host;function o2(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),R1(l,"")}return R1(r,e)+n+i}function oG(e,t,r,n){let i=[],a=[],o=null;const s=({state:h})=>{const d=o2(e,location),v=r.value,p=t.value;let m=0;if(h){if(r.value=d,t.value=h,o&&o===v){o=null;return}m=p?h.position-p.position:0}else n(d);i.forEach(g=>{g(r.value,v,{delta:m,type:Tu.pop,direction:m?m>0?Ul.forward:Ul.back:Ul.unknown})})};function l(){o=r.value}function u(h){i.push(h);const d=()=>{const v=i.indexOf(h);v>-1&&i.splice(v,1)};return a.push(d),d}function f(){const{history:h}=window;h.state&&h.replaceState(lt({},h.state,{scroll:gh()}),"")}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:l,listen:u,destroy:c}}function B1(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?gh():null}}function sG(e){const{history:t,location:r}=window,n={value:o2(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=e.indexOf("#"),h=c>-1?(r.host&&document.querySelector("base")?e:e.slice(c))+l:aG()+e+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(d){console.error(d),r[f?"replace":"assign"](h)}}function o(l,u){const f=lt({},t.state,B1(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,f,!0),n.value=l}function s(l,u){const f=lt({},i.value,t.state,{forward:l,scroll:gh()});a(f.current,f,!0);const c=lt({},B1(n.value,l,null),{position:f.position+1},u);a(l,c,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function lG(e){e=QW(e);const t=sG(e),r=oG(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=lt({location:"",base:e,go:n,createHref:eG.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function uG(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),lG(e)}function fG(e){return typeof e=="string"||e&&typeof e=="object"}function s2(e){return typeof e=="string"||typeof e=="symbol"}const Ri={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},l2=Symbol("");var F1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(F1||(F1={}));function Ls(e,t){return lt(new Error,{type:e,[l2]:!0},t)}function li(e,t){return e instanceof Error&&l2 in e&&(t==null||!!(e.type&t))}const $1="[^/]+?",cG={sensitive:!1,strict:!1,start:!0,end:!0},dG=/[.+*?^${}()[\]/\\]/g;function hG(e,t){const r=lt({},cG,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const f=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let c=0;ct.length?t.length===1&&t[0]===80?1:-1:0}function pG(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const gG={type:0,value:""},mG=/[a-zA-Z0-9_]/;function yG(e){if(!e)return[[]];if(e==="/")return[[gG]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${r})/"${u}": ${d}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;s{o(y)}:Gl}function o(f){if(s2(f)){const c=n.get(f);c&&(n.delete(f),r.splice(r.indexOf(c),1),c.children.forEach(o),c.alias.forEach(o))}else{const c=r.indexOf(f);c>-1&&(r.splice(c,1),f.record.name&&n.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return r}function l(f){let c=0;for(;c=0&&(f.record.path!==r[c].record.path||!u2(f,r[c]));)c++;r.splice(c,0,f),f.record.name&&!V1(f)&&n.set(f.record.name,f)}function u(f,c){let h,d={},v,p;if("name"in f&&f.name){if(h=n.get(f.name),!h)throw Ls(1,{location:f});p=h.record.name,d=lt(z1(c.params,h.keys.filter(y=>!y.optional).map(y=>y.name)),f.params&&z1(f.params,h.keys.map(y=>y.name))),v=h.stringify(d)}else if("path"in f)v=f.path,h=r.find(y=>y.re.test(v)),h&&(d=h.parse(v),p=h.record.name);else{if(h=c.name?n.get(c.name):r.find(y=>y.re.test(c.path)),!h)throw Ls(1,{location:f,currentLocation:c});p=h.record.name,d=lt({},c.params,f.params),v=h.stringify(d)}const m=[];let g=h;for(;g;)m.unshift(g.record),g=g.parent;return{name:p,path:v,params:d,matched:m,meta:xG(m)}}return e.forEach(f=>a(f)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function z1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function wG(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:SG(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function SG(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="object"?r[n]:r;return t}function V1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function xG(e){return e.reduce((t,r)=>lt(t,r.meta),{})}function W1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function u2(e,t){return t.children.some(r=>r===e||u2(e,r))}const f2=/#/g,CG=/&/g,TG=/\//g,MG=/=/g,AG=/\?/g,c2=/\+/g,PG=/%5B/g,EG=/%5D/g,d2=/%5E/g,LG=/%60/g,h2=/%7B/g,DG=/%7C/g,v2=/%7D/g,IG=/%20/g;function Zy(e){return encodeURI(""+e).replace(DG,"|").replace(PG,"[").replace(EG,"]")}function OG(e){return Zy(e).replace(h2,"{").replace(v2,"}").replace(d2,"^")}function Dg(e){return Zy(e).replace(c2,"%2B").replace(IG,"+").replace(f2,"%23").replace(CG,"%26").replace(LG,"`").replace(h2,"{").replace(v2,"}").replace(d2,"^")}function RG(e){return Dg(e).replace(MG,"%3D")}function kG(e){return Zy(e).replace(f2,"%23").replace(AG,"%3F")}function NG(e){return e==null?"":kG(e).replace(TG,"%2F")}function yd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function BG(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&Dg(a)):[n&&Dg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function FG(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=En(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const $G=Symbol(""),U1=Symbol(""),Qy=Symbol(""),p2=Symbol(""),Ig=Symbol("");function el(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e.slice(),reset:r}}function Xi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=c=>{c===!1?s(Ls(4,{from:r,to:t})):c instanceof Error?s(c):fG(c)?s(Ls(2,{from:t,to:c})):(a&&n.enterCallbacks[i]===a&&typeof c=="function"&&a.push(c),o())},u=e.call(n&&n.instances[i],t,r,l);let f=Promise.resolve(u);e.length<3&&(f=f.then(l)),f.catch(c=>s(c))})}function vv(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(HG(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Xi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const f=UW(u)?u.default:u;a.components[o]=f;const h=(f.__vccOpts||f)[t];return h&&Xi(h,r,n,a,o)()}))}}return i}function HG(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Y1(e){const t=Le(Qy),r=Le(p2),n=k(()=>t.resolve(T(e.to))),i=k(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const h=c.findIndex(Es.bind(null,f));if(h>-1)return h;const d=j1(l[u-2]);return u>1&&j1(f)===d&&c[c.length-1].path!==d?c.findIndex(Es.bind(null,l[u-2])):h}),a=k(()=>i.value>-1&&GG(r.params,n.value.params)),o=k(()=>i.value>-1&&i.value===r.matched.length-1&&a2(r.params,n.value.params));function s(l={}){return WG(l)?t[T(e.replace)?"replace":"push"](T(e.to)).catch(Gl):Promise.resolve()}return{route:n,href:k(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const zG=ie({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Y1,setup(e,{slots:t}){const r=Ln(Y1(e)),{options:n}=Le(Qy),i=k(()=>({[q1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[q1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:Te("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),VG=zG;function WG(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function GG(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!En(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function j1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const q1=(e,t,r)=>e??t??r,UG=ie({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Le(Ig),i=k(()=>e.route||n.value),a=Le(U1,0),o=k(()=>{let u=T(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=k(()=>i.value.matched[o.value]);Dt(U1,k(()=>o.value+1)),Dt($G,s),Dt(Ig,i);const l=$();return be(()=>[l.value,s.value,e.name],([u,f,c],[h,d,v])=>{f&&(f.instances[c]=u,d&&d!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=d.leaveGuards),f.updateGuards.size||(f.updateGuards=d.updateGuards))),u&&f&&(!d||!Es(f,d)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=e.name,c=s.value,h=c&&c.components[f];if(!h)return K1(r.default,{Component:h,route:u});const d=c.props[f],v=d?d===!0?u.params:typeof d=="function"?d(u):d:null,m=Te(h,lt({},v,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return K1(r.default,{Component:m,route:u})||m}}});function K1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const YG=UG;function jG(e){const t=bG(e.routes,e),r=e.parseQuery||BG,n=e.stringifyQuery||G1,i=e.history,a=el(),o=el(),s=el(),l=ty(Ri);let u=Ri;Zo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=dv.bind(null,B=>""+B),c=dv.bind(null,NG),h=dv.bind(null,yd);function d(B,Y){let K,Q;return s2(B)?(K=t.getRecordMatcher(B),Q=Y):Q=B,t.addRoute(Q,K)}function v(B){const Y=t.getRecordMatcher(B);Y&&t.removeRoute(Y)}function p(){return t.getRoutes().map(B=>B.record)}function m(B){return!!t.getRecordMatcher(B)}function g(B,Y){if(Y=lt({},Y||l.value),typeof B=="string"){const I=hv(r,B,Y.path),W=t.resolve({path:I.path},Y),X=i.createHref(I.fullPath);return lt(I,W,{params:h(W.params),hash:yd(I.hash),redirectedFrom:void 0,href:X})}let K;if("path"in B)K=lt({},B,{path:hv(r,B.path,Y.path).path});else{const I=lt({},B.params);for(const W in I)I[W]==null&&delete I[W];K=lt({},B,{params:c(I)}),Y.params=c(Y.params)}const Q=t.resolve(K,Y),oe=B.hash||"";Q.params=f(h(Q.params));const pe=qW(n,lt({},B,{hash:OG(oe),path:Q.path})),D=i.createHref(pe);return lt({fullPath:pe,hash:oe,query:n===G1?FG(B.query):B.query||{}},Q,{redirectedFrom:void 0,href:D})}function y(B){return typeof B=="string"?hv(r,B,l.value.path):lt({},B)}function _(B,Y){if(u!==B)return Ls(8,{from:Y,to:B})}function b(B){return S(B)}function x(B){return b(lt(y(B),{replace:!0}))}function w(B){const Y=B.matched[B.matched.length-1];if(Y&&Y.redirect){const{redirect:K}=Y;let Q=typeof K=="function"?K(B):K;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=y(Q):{path:Q},Q.params={}),lt({query:B.query,hash:B.hash,params:"path"in Q?{}:B.params},Q)}}function S(B,Y){const K=u=g(B),Q=l.value,oe=B.state,pe=B.force,D=B.replace===!0,I=w(K);if(I)return S(lt(y(I),{state:typeof I=="object"?lt({},oe,I.state):oe,force:pe,replace:D}),Y||K);const W=K;W.redirectedFrom=Y;let X;return!pe&&KW(n,Q,K)&&(X=Ls(16,{to:W,from:Q}),ee(Q,Q,!0,!1)),(X?Promise.resolve(X):A(W,Q)).catch(j=>li(j)?li(j,2)?j:z(j):U(j,W,Q)).then(j=>{if(j){if(li(j,2))return S(lt({replace:D},y(j.to),{state:typeof j.to=="object"?lt({},oe,j.to.state):oe,force:pe}),Y||W)}else j=E(W,Q,!0,D,oe);return P(W,Q,j),j})}function C(B,Y){const K=_(B,Y);return K?Promise.reject(K):Promise.resolve()}function M(B){const Y=we.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(B):B()}function A(B,Y){let K;const[Q,oe,pe]=qG(B,Y);K=vv(Q.reverse(),"beforeRouteLeave",B,Y);for(const I of Q)I.leaveGuards.forEach(W=>{K.push(Xi(W,B,Y))});const D=C.bind(null,B,Y);return K.push(D),Ie(K).then(()=>{K=[];for(const I of a.list())K.push(Xi(I,B,Y));return K.push(D),Ie(K)}).then(()=>{K=vv(oe,"beforeRouteUpdate",B,Y);for(const I of oe)I.updateGuards.forEach(W=>{K.push(Xi(W,B,Y))});return K.push(D),Ie(K)}).then(()=>{K=[];for(const I of pe)if(I.beforeEnter)if(En(I.beforeEnter))for(const W of I.beforeEnter)K.push(Xi(W,B,Y));else K.push(Xi(I.beforeEnter,B,Y));return K.push(D),Ie(K)}).then(()=>(B.matched.forEach(I=>I.enterCallbacks={}),K=vv(pe,"beforeRouteEnter",B,Y),K.push(D),Ie(K))).then(()=>{K=[];for(const I of o.list())K.push(Xi(I,B,Y));return K.push(D),Ie(K)}).catch(I=>li(I,8)?I:Promise.reject(I))}function P(B,Y,K){s.list().forEach(Q=>M(()=>Q(B,Y,K)))}function E(B,Y,K,Q,oe){const pe=_(B,Y);if(pe)return pe;const D=Y===Ri,I=Zo?history.state:{};K&&(Q||D?i.replace(B.fullPath,lt({scroll:D&&I&&I.scroll},oe)):i.push(B.fullPath,oe)),l.value=B,ee(B,Y,K,D),z()}let L;function O(){L||(L=i.listen((B,Y,K)=>{if(!$e.listening)return;const Q=g(B),oe=w(Q);if(oe){S(lt(oe,{replace:!0}),Q).catch(Gl);return}u=Q;const pe=l.value;Zo&&nG(N1(pe.fullPath,K.delta),gh()),A(Q,pe).catch(D=>li(D,12)?D:li(D,2)?(S(D.to,Q).then(I=>{li(I,20)&&!K.delta&&K.type===Tu.pop&&i.go(-1,!1)}).catch(Gl),Promise.reject()):(K.delta&&i.go(-K.delta,!1),U(D,Q,pe))).then(D=>{D=D||E(Q,pe,!1),D&&(K.delta&&!li(D,8)?i.go(-K.delta,!1):K.type===Tu.pop&&li(D,20)&&i.go(-1,!1)),P(Q,pe,D)}).catch(Gl)}))}let N=el(),H=el(),V;function U(B,Y,K){z(B);const Q=H.list();return Q.length?Q.forEach(oe=>oe(B,Y,K)):console.error(B),Promise.reject(B)}function F(){return V&&l.value!==Ri?Promise.resolve():new Promise((B,Y)=>{N.add([B,Y])})}function z(B){return V||(V=!B,O(),N.list().forEach(([Y,K])=>B?K(B):Y()),N.reset()),B}function ee(B,Y,K,Q){const{scrollBehavior:oe}=e;if(!Zo||!oe)return Promise.resolve();const pe=!K&&iG(N1(B.fullPath,0))||(Q||!K)&&history.state&&history.state.scroll||null;return Nt().then(()=>oe(B,Y,pe)).then(D=>D&&rG(D)).catch(D=>U(D,B,Y))}const J=B=>i.go(B);let me;const we=new Set,$e={currentRoute:l,listening:!0,addRoute:d,removeRoute:v,hasRoute:m,getRoutes:p,resolve:g,options:e,push:b,replace:x,go:J,back:()=>J(-1),forward:()=>J(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:H.add,isReady:F,install(B){const Y=this;B.component("RouterLink",VG),B.component("RouterView",YG),B.config.globalProperties.$router=Y,Object.defineProperty(B.config.globalProperties,"$route",{enumerable:!0,get:()=>T(l)}),Zo&&!me&&l.value===Ri&&(me=!0,b(i.location).catch(oe=>{}));const K={};for(const oe in Ri)Object.defineProperty(K,oe,{get:()=>l.value[oe],enumerable:!0});B.provide(Qy,Y),B.provide(p2,Qm(K)),B.provide(Ig,l);const Q=B.unmount;we.add(B),B.unmount=function(){we.delete(B),we.size<1&&(u=Ri,L&&L(),L=null,l.value=Ri,me=!1,V=!1),Q()}}};function Ie(B){return B.reduce((Y,K)=>Y.then(()=>M(K)),Promise.resolve())}return $e}function qG(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oEs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>Es(u,l))||i.push(l))}return[r,n,i]}var Og={exports:{}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(a8,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(c){return typeof c<"u"&&c!==null},o=function(c){return c!==c},s=function(c){return isFinite(c)&&!o(parseFloat(c))},l=function(c){var h=Object.prototype.toString.call(c);return h==="[object Array]"},u={intword:function(c,h){var d=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(c,d)},compactInteger:function(c){var h=arguments.length<=1||arguments[1]===void 0?0:arguments[1];h=Math.max(h,0);var d=parseInt(c,10),v=d<0?"-":"",p=Math.abs(d),m=String(p),g=m.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+m;if(g>y[0]+3)return d.toExponential(h).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=g-b+1,C=m.split(""),M=C.slice(0,S),A=C.slice(S,S+h+1),P=M.join(""),E=A.join("");E.length=v)return u.formatNumber(c/v,h,"")+" "+d+"B"}return c>=1024?u.formatNumber(c/1024,0)+" KB":u.formatNumber(c,0)+u.pluralize(c," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(c){var h=arguments.length<=1||arguments[1]===void 0?0:arguments[1],d=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,M){return M?S.substr(0,M)+C:""},m=function(S,C,M){return S.substr(M).replace(/(\d{3})(?=\d)/g,"$1"+C)},g=function(S,C,M){return M?C+u.toFixed(Math.abs(S),M).split(".")[1]:""},y=u.normalizePrecision(h),_=c<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(c||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,d,x)+m(b,d,x)+g(c,v,y)},toFixed:function(c,h){h=a(h)?h:u.normalizePrecision(h,0);var d=Math.pow(10,h);return(Math.round(c*d)/d).toFixed(h)},normalizePrecision:function(c,h){return c=Math.round(Math.abs(c)),o(c)?h:c},ordinal:function(c){var h=parseInt(c,10);if(h===0)return c;var d=h%100;if([11,12,13].indexOf(d)>=0)return h+"th";var v=h%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+h+p},times:function(c){var h=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(c)&&c>=0){var d=parseFloat(c),v=["never","once","twice"];if(a(h[d]))return String(h[d]);var p=a(v[d])&&v[d].toString();return p||d.toString()+" times"}return null},pluralize:function(c,h,d){return a(c)&&a(h)?(d=a(d)?d:h+"s",parseInt(c,10)===1?h:d):null},truncate:function(c){var h=arguments.length<=1||arguments[1]===void 0?100:arguments[1],d=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return c.length>h?c.substring(0,h-d.length)+d:c},truncateWords:function(c,h){for(var d=c.split(" "),v="",p=0;ph?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(c){var h=arguments.length<=1||arguments[1]===void 0?100:arguments[1],d=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(c)&&s(h)&&c>h&&(v=h+d),(v||c).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(c,h,d){var v=c.length,p=void 0;if(v<2)return String(c);if(v===2)return c.join(" and ");if(a(h)&&v>h){var m=v-h;p=h,d=a(d)?d:", and "+m+" "+u.pluralize(m,"other")}else p=-1,d=", and "+c[v-1];return c.slice(0,p).join(", ")+d},dictionary:function(c){var h=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],d=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(c)&&(typeof c>"u"?"undefined":r(c))==="object"&&!l(c)){var p=[];for(var m in c)if(c.hasOwnProperty(m)){var g=c[m];p.push(""+m+h+g)}return p.join(d)}return v},frequency:function(c,h){if(!l(c))return null;var d=c.length,v=u.times(d);return d===0?v+" "+h:h+" "+v},pace:function(c,h){var d=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(c===0||h===0)return"No "+u.pluralize(0,d);for(var v="Approximately",p=void 0,m=void 0,g=c/h,y=0;y1){p=_.name;break}}p||(v="Less than",m=1,p=n[n.length-1].name);var b=Math.round(m);return d=u.pluralize(b,d),v+" "+b+" "+d+" per "+p},nl2br:function(c){var h=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return c.replace(/\n/g,h)},br2nl:function(c){var h=arguments.length<=1||arguments[1]===void 0?`\r `:arguments[1];return c.replace(/\/g,h)},capitalize:function(c){var h=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+c.charAt(0).toUpperCase()+(h?c.slice(1).toLowerCase():c.slice(1))},capitalizeAll:function(c){return c.replace(/(?:^|\s)\S/g,function(h){return h.toUpperCase()})},titleCase:function(c){var h=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,d=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,m=void 0;return m=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],x=[],w=y.split(_?p:v),S=0;S"u"&&typeof self<"u"?He.worker=!0:typeof navigator>"u"?(He.node=!0,He.svgSupported=!0):ZG(navigator.userAgent,He);function ZG(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}var Jy=12,QG="sans-serif",_o=Jy+"px "+QG,JG=20,eU=100,tU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function rU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function AU(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=e[u].getBoundingClientRect(),c=2*u,h=f.left,d=f.top;o.push(h,d),l=l&&a&&h===a[c]&&d===a[c+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?J1(s,o):J1(o,s))}function x2(e){return e.nodeName.toUpperCase()==="CANVAS"}var PU=/([&<>"'])/g,EU={"&":"&","<":"<",">":">",'"':""","'":"'"};function tn(e){return e==null?"":(e+"").replace(PU,function(t,r){return EU[r]})}var LU=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,yv=[],DU=He.browser.firefox&&+He.browser.version.split(".")[0]<39;function zg(e,t,r,n){return r=r||{},n?tw(e,t,r):DU&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):tw(e,t,r),r}function tw(e,t,r){if(He.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(x2(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Hg(yv,e,n,i)){r.zrX=yv[0],r.zrY=yv[1];return}}r.zrX=r.zrY=0}function i0(e){return e||window.event}function Qr(e,t,r){if(t=i0(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&zg(e,o,t,r)}else{zg(e,t,t,r);var a=IU(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&LU.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function IU(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function OU(e,t,r,n){e.addEventListener(t,r,n)}function RU(e,t,r,n){e.removeEventListener(t,r,n)}var C2=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},kU=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=rw(n)/rw(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=NU(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function Pu(){return[1,0,0,1,0,0]}function a0(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function BU(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function ls(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Vg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function o0(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),f=Math.cos(r);return e[0]=n*f+o*u,e[1]=-n*u+o*f,e[2]=i*f+s*u,e[3]=-i*u+f*s,e[4]=f*a+u*l,e[5]=f*l-u*a,e}function FU(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function bh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var $U=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const Fe=$U;var kf=Math.min,Nf=Math.max,wa=new Fe,Sa=new Fe,xa=new Fe,Ca=new Fe,tl=new Fe,rl=new Fe,nt=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=kf(t.x,this.x),n=kf(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Nf(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Nf(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=Pu();return Vg(a,a,[-r.x,-r.y]),FU(a,a,[n,i]),Vg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,f=t.y,c=t.y+t.height,h=!(av&&(v=_,pv&&(v=b,g=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}wa.x=xa.x=r.x,wa.y=Ca.y=r.y,Sa.x=Ca.x=r.x+r.width,Sa.y=xa.y=r.y+r.height,wa.transform(n),Ca.transform(n),Sa.transform(n),xa.transform(n),t.x=kf(wa.x,Sa.x,xa.x,Ca.x),t.y=kf(wa.y,Sa.y,xa.y,Ca.y);var l=Nf(wa.x,Sa.x,xa.x,Ca.x),u=Nf(wa.y,Sa.y,xa.y,Ca.y);t.width=l-t.x,t.height=u-t.y},e}(),T2="silent";function HU(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:zU}}function zU(){C2(this.event)}var VU=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ii),nl=function(){function e(t,r){this.x=t,this.y=r}return e}(),WU=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],bv=new nt(0,0,0,0),M2=function(e){ge(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new nl(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new VU,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new SU(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(R(WU,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=A2(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new nl(n,i):this.findHover(n,i),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new nl(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=HU(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new nl(r,n);if(nw(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new nt(r-u,n-u,l,l),c=a.length-1;c>=0;c--){var h=a[c];h!==i&&!h.ignore&&!h.ignoreCoarsePointer&&(!h.parent||!h.parent.ignoreCoarsePointer)&&(bv.copy(h.getBoundingRect()),h.transform&&bv.applyTransform(h.transform),bv.intersect(f)&&s.push(h))}if(s.length)for(var d=4,v=Math.PI/12,p=Math.PI*2,m=0;m4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function GU(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?T2:!0}return!1}function nw(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=GU(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==T2)){t.target=o;break}}}function A2(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const UU=M2;var P2=32,il=7;function YU(e){for(var t=0;e>=P2;)t|=e&1,e>>=1;return e+t}function iw(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function jU(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function wv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+f])>0?o=f+1:l=f}return l}function Sv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+f])<0?l=f:o=f+1}return l}function qU(e,t){var r=il,n,i,a=0;e.length;var o=[];n=[],i=[];function s(d,v){n[a]=d,i[a]=v,a+=1}function l(){for(;a>1;){var d=a-2;if(d>=1&&i[d-1]<=i[d]+i[d+1]||d>=2&&i[d-2]<=i[d]+i[d-1])i[d-1]i[d+1])break;f(d)}}function u(){for(;a>1;){var d=a-2;d>0&&i[d-1]=il||S>=il);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(g=0;g=0;g--)e[w+g]=e[x+g];e[b]=o[_];return}for(var S=r;;){var C=0,M=0,A=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){A=!0;break}}else if(e[b--]=o[_--],M++,C=0,--m===1){A=!0;break}while((C|M)=0;g--)e[w+g]=e[x+g];if(v===0){A=!0;break}}if(e[b--]=o[_--],--m===1){A=!0;break}if(M=m-wv(e[y],o,0,m,m-1,t),M!==0){for(b-=M,_-=M,m-=M,w=b+1,x=_+1,g=0;g=il||M>=il);if(A)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),m===1){for(b-=v,y-=v,w=b+1,x=y+1,g=v-1;g>=0;g--)e[w+g]=e[x+g];e[b]=o[_]}else{if(m===0)throw new Error;for(x=b-(m-1),g=0;gs&&(l=s),aw(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Br=1,Cl=2,Xo=4,ow=!1;function xv(){ow||(ow=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function sw(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var KU=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=sw}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(xv(),f.z=0),isNaN(f.z2)&&(xv(),f.z2=0),isNaN(f.zlevel)&&(xv(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var h=t.getTextGuideLine();h&&this._updateAndAddDisplayable(h,r,n);var d=t.getTextContent();d&&this._updateAndAddDisplayable(d,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),E2;E2=He.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Wg=E2;var ql={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-ql.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?ql.bounceIn(e*2)*.5:ql.bounceOut(e*2-1)*.5+.5}},Bf=Math.pow,ia=Math.sqrt,wd=1e-8,L2=1e-4,lw=ia(3),Ff=1/3,Vn=Ws(),rn=Ws(),us=Ws();function Ji(e){return e>-wd&&ewd||e<-wd}function Zt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function uw(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function I2(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,f=s*s-3*o*l,c=s*l-9*o*u,h=l*l-3*s*u,d=0;if(Ji(f)&&Ji(c))if(Ji(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[d++]=v)}else{var p=c*c-4*f*h;if(Ji(p)){var m=c/f,v=-s/o+m,g=-m/2;v>=0&&v<=1&&(a[d++]=v),g>=0&&g<=1&&(a[d++]=g)}else if(p>0){var y=ia(p),_=f*s+1.5*o*(-c+y),b=f*s+1.5*o*(-c-y);_<0?_=-Bf(-_,Ff):_=Bf(_,Ff),b<0?b=-Bf(-b,Ff):b=Bf(b,Ff);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[d++]=v)}else{var x=(2*f*s-3*o*c)/(2*ia(f*f*f)),w=Math.acos(x)/3,S=ia(f),C=Math.cos(w),v=(-s-2*S*C)/(3*o),g=(-s+S*(C+lw*Math.sin(w)))/(3*o),M=(-s+S*(C-lw*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[d++]=v),g>=0&&g<=1&&(a[d++]=g),M>=0&&M<=1&&(a[d++]=M)}}return d}function O2(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Ji(o)){if(D2(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Ji(f))i[0]=-a/(2*o);else if(f>0){var c=ia(f),u=(-a+c)/(2*o),h=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),h>=0&&h<=1&&(i[l++]=h)}}return l}function Sd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function R2(e,t,r,n,i,a,o,s,l,u,f){var c,h=.005,d=1/0,v,p,m,g;Vn[0]=l,Vn[1]=u;for(var y=0;y<1;y+=.05)rn[0]=Zt(e,r,i,o,y),rn[1]=Zt(t,n,a,s,y),m=ss(Vn,rn),m=0&&m=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Ji(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=ia(f),u=(-o+c)/(2*a),h=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),h>=0&&h<=1&&(i[l++]=h)}}return l}function k2(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function xd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function N2(e,t,r,n,i,a,o,s,l){var u,f=.005,c=1/0;Vn[0]=o,Vn[1]=s;for(var h=0;h<1;h+=.05){rn[0]=ir(e,r,i,h),rn[1]=ir(t,n,a,h);var d=ss(Vn,rn);d=0&&d=1?1:I2(0,n,a,1,l,s)&&Zt(0,i,o,1,s[0])}}}var e9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Er,this.ondestroy=t.ondestroy||Er,this.onrestart=t.onrestart||Er,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ye(t)?t:ql[t]||B2(t)},e}();const t9=e9;var F2=function(){function e(t){this.value=t}return e}(),r9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new F2(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),af=function(){function e(t){this._list=new r9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new F2(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),cw={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Kl(e){return e=Math.round(e),e<0?0:e>255?255:e}function dw(e){return e<0?0:e>1?1:e}function Cv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Kl(parseFloat(t)/100*255):Kl(parseInt(t,10))}function Xl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?dw(parseFloat(t)/100):dw(parseFloat(t))}function Tv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Zr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Gg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var $2=new af(20),$f=null;function ko(e,t){$f&&Gg($f,t),$f=$2.put(e,$f||t.slice())}function uo(e,t){if(e){t=t||[];var r=$2.get(e);if(r)return Gg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in cw)return Gg(t,cw[n]),ko(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Zr(t,0,0,0,1);return}return Zr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),ko(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Zr(t,0,0,0,1);return}return Zr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),ko(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Zr(t,+u[0],+u[1],+u[2],1):Zr(t,0,0,0,1);f=Xl(u.pop());case"rgb":if(u.length>=3)return Zr(t,Cv(u[0]),Cv(u[1]),Cv(u[2]),u.length===3?f:Xl(u[3])),ko(e,t),t;Zr(t,0,0,0,1);return;case"hsla":if(u.length!==4){Zr(t,0,0,0,1);return}return u[3]=Xl(u[3]),hw(u,t),ko(e,t),t;case"hsl":if(u.length!==3){Zr(t,0,0,0,1);return}return hw(u,t),ko(e,t),t;default:return}}Zr(t,0,0,0,1)}}function hw(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Xl(e[1]),i=Xl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Zr(t,Kl(Tv(o,a,r+1/3)*255),Kl(Tv(o,a,r)*255),Kl(Tv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function vw(e,t){var r=uo(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return s0(r,r.length===4?"rgba":"rgb")}}function s0(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function Cd(e,t){var r=uo(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function n9(e){return e.type==="linear"}function i9(e){return e.type==="radial"}(function(){return He.hasGlobalWindow&&Ye(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Ug=Array.prototype.slice;function hi(e,t,r){return(t-e)*r+e}function Mv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=gw,l=r;if(Ir(r)){var u=l9(r);s=u,(u===1&&!Tt(r[0])||u===2&&!Tt(r[0][0]))&&(o=!0)}else if(Tt(r)&&!bd(r))s=zf;else if(Ee(r))if(!isNaN(+r))s=zf;else{var f=uo(r);f&&(l=f,s=Tl)}else if(yh(r)){var c=ue({},l);c.colorStops=Ne(r.colorStops,function(d){return{offset:d.offset,color:uo(d.color)}}),n9(r)?s=Yg:i9(r)&&(s=jg),l=c}a===0?this.valType=s:(s!==this.valType||s===gw)&&(o=!0),this.discrete=this.discrete||o;var h={time:t,value:l,rawValue:r,percent:0};return n&&(h.easing=n,h.easingFunc=Ye(n)?n:ql[n]||B2(n)),i.push(h),h},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,m){return p.time-m.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=Vf(i),u=mw(i),f=0;f=0&&!(o[f].percent<=r);f--);f=h(f,s-2)}else{for(f=c;fr);f++);f=h(f-1,s-2)}v=o[f+1],d=o[f]}if(d&&v){this._lastFr=f,this._lastFrP=r;var m=v.percent-d.percent,g=m===0?1:h((r-d.percent)/m,1);v.easingFunc&&(g=v.easingFunc(g));var y=n?this._additiveValue:u?al:t[l];if((Vf(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=g<1?d.rawValue:v.rawValue;else if(Vf(a))a===Vc?Mv(y,d[i],v[i],g):a9(y,d[i],v[i],g);else if(mw(a)){var _=d[i],b=v[i],x=a===Yg;t[l]={type:x?"linear":"radial",x:hi(_.x,b.x,g),y:hi(_.y,b.y,g),colorStops:Ne(_.colorStops,function(S,C){var M=b.colorStops[C];return{offset:hi(S.offset,M.offset,g),color:zc(Mv([],S.color,M.color,g))}}),global:b.global},x?(t[l].x2=hi(_.x2,b.x2,g),t[l].y2=hi(_.y2,b.y2,g)):t[l].r=hi(_.r,b.r,g)}else if(u)Mv(y,d[i],v[i],g),n||(t[l]=zc(y));else{var w=hi(d[i],v[i],g);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===zf?t[n]=t[n]+i:r===Tl?(uo(t[n],al),Hf(al,al,i,1),t[n]=zc(al)):r===Vc?Hf(t[n],t[n],i,1):r===H2&&pw(t[n],t[n],i,1)},e}(),l0=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){r0("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Ct(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Hc(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Hc(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();function ts(){return new Date().getTime()}var f9=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ts()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Wg(n),!r._paused&&r.update())}Wg(n)},t.prototype.start=function(){this._running||(this._time=ts(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ts(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ts()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new l0(r,n.loop);return this.addAnimator(i),i},t}(ii),c9=300,Av=He.domSupported,Pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Ne(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),yw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},_w=!1;function qg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function d9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function Ev(e){e&&(e.zrByTouch=!0)}function h9(e,t){return Qr(e.dom,new v9(e,t),!0)}function z2(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var v9=function(){function e(t,r){this.stopPropagation=Er,this.stopImmediatePropagation=Er,this.preventDefault=Er,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),yn={mousedown:function(e){e=Qr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Qr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Qr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Qr(this.dom,e);var t=e.toElement||e.relatedTarget;z2(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){_w=!0,e=Qr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){_w||(e=Qr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Qr(this.dom,e),Ev(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),yn.mousemove.call(this,e),yn.mousedown.call(this,e)},touchmove:function(e){e=Qr(this.dom,e),Ev(e),this.handler.processGesture(e,"change"),yn.mousemove.call(this,e)},touchend:function(e){e=Qr(this.dom,e),Ev(e),this.handler.processGesture(e,"end"),yn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentSw||e<-Sw}var Ma=[],No=[],Dv=Pu(),Iv=Math.abs,wh=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return Ta(this.rotation)||Ta(this.x)||Ta(this.y)||Ta(this.scaleX-1)||Ta(this.scaleY-1)||Ta(this.skewX)||Ta(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&(ww(n),this.invTransform=null);return}n=n||Pu(),r?this.getLocalTransform(n):ww(n),t&&(r?ls(n,t,n):BU(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Ma);var n=Ma[0]<0?-1:1,i=Ma[1]<0?-1:1,a=((Ma[0]-n)*r+n)/Ma[0]||0,o=((Ma[1]-i)*r+i)/Ma[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Pu(),bh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(ls(No,t.invTransform,r),r=No);var n=this.originX,i=this.originY;(n||i)&&(Dv[4]=n,Dv[5]=i,ls(No,r,Dv),No[4]-=n,No[5]-=i,r=No),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&un(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&un(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&Iv(t[0]-1)>1e-10&&Iv(t[3]-1)>1e-10?Math.sqrt(Iv(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){b9(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,f=t.x,c=t.y,h=t.skewX?Math.tan(t.skewX):0,d=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-h*p*o,r[5]=-p*o-d*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=d*a,r[2]=h*o,u&&o0(r,r,u),r[4]+=n+f,r[5]+=i+c,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Eu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function b9(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function Md(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,f="left",c="top";if(n instanceof Array)l+=da(n[0],r.width),u+=da(n[1],r.height),f=null,c=null;else switch(n){case"left":l-=i,u+=s,f="right",c="middle";break;case"right":l+=i+o,u+=s,c="middle";break;case"top":l+=o/2,u-=i,f="center",c="bottom";break;case"bottom":l+=o/2,u+=a+i,f="center";break;case"inside":l+=o/2,u+=s,f="center",c="middle";break;case"insideLeft":l+=i,u+=s,c="middle";break;case"insideRight":l+=o-i,u+=s,f="right",c="middle";break;case"insideTop":l+=o/2,u+=i,f="center";break;case"insideBottom":l+=o/2,u+=a-i,f="center",c="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,f="right";break;case"insideBottomLeft":l+=i,u+=a-i,c="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,f="right",c="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=f,e.verticalAlign=c,e}var Ov="__zr_normal__",Rv=Eu.concat(["ignore"]),w9=ca(Eu,function(e,t){return e[t]=!0,e},{ignore:!1}),Bo={},S9=new nt(0,0,0,0),c0=function(){function e(t){this.id=y2(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var f=S9;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Bo,n,f):Md(Bo,n,f),a.x=Bo.x,a.y=Bo.y,o=Bo.align,s=Bo.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var h=void 0,d=void 0;c==="center"?(h=f.width*.5,d=f.height*.5):(h=da(c[0],f.width),d=da(c[1],f.height)),u=!0,a.originX=-a.x+h+(i?0:f.x),a.originY=-a.y+d+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,m=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),g=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(g=n.insideFill,y=n.insideStroke,(g==null||g==="auto")&&(g=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(g),_=!0)):(g=n.outsideFill,y=n.outsideStroke,(g==null||g==="auto")&&(g=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(g),_=!0)),g=g||"#000",(g!==m.fill||y!==m.stroke||_!==m.autoStroke||o!==m.align||s!==m.verticalAlign)&&(l=!0,m.fill=g,m.stroke=y,m.autoStroke=_,m.align=o,m.verticalAlign=s,r.setDefaultTextStyle(m)),r.__dirty|=Br,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Qg:Zg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&uo(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,s0(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},ue(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Re(t))for(var n=t,i=Ct(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(Ov,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===Ov,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ot(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){r0("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||i);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,h=this._textGuide;return c&&c.useState(t,r,n,f),h&&h.useState(t,r,n,f),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Br),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,m=this._textGuide;p&&p.useStates(t,r,h),m&&m.useStates(t,r,h),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Br)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=ot(i,t),o=ot(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var h=0;h0||i.force&&!o.length){var C=void 0,M=void 0,A=void 0;if(s){M={},h&&(C={});for(var b=0;b<_;b++){var g=p[b];M[g]=r[g],h?C[g]=n[g]:r[g]=n[g]}}else if(h){A={};for(var b=0;b<_;b++){var g=p[b];A[g]=Hc(r[g]),C9(r,n,g)}}var x=new l0(r,!1,!1,c?jt(v,function(E){return E.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),h&&C&&x.whenWithKeys(0,C,p),A&&x.whenWithKeys(0,A,p),x.whenWithKeys(u??500,s?M:n,p).delay(f||0),e.addAnimator(x,t),o.push(x)}}const G2=c0;var Ur=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=ot(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ot(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i"u"&&typeof self<"u"?He.worker=!0:typeof navigator>"u"?(He.node=!0,He.svgSupported=!0):ZG(navigator.userAgent,He);function ZG(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}var Jy=12,QG="sans-serif",_o=Jy+"px "+QG,JG=20,eU=100,tU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function rU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function AU(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=e[u].getBoundingClientRect(),c=2*u,h=f.left,d=f.top;o.push(h,d),l=l&&a&&h===a[c]&&d===a[c+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?J1(s,o):J1(o,s))}function x2(e){return e.nodeName.toUpperCase()==="CANVAS"}var PU=/([&<>"'])/g,EU={"&":"&","<":"<",">":">",'"':""","'":"'"};function tn(e){return e==null?"":(e+"").replace(PU,function(t,r){return EU[r]})}var LU=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,yv=[],DU=He.browser.firefox&&+He.browser.version.split(".")[0]<39;function zg(e,t,r,n){return r=r||{},n?tw(e,t,r):DU&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):tw(e,t,r),r}function tw(e,t,r){if(He.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(x2(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Hg(yv,e,n,i)){r.zrX=yv[0],r.zrY=yv[1];return}}r.zrX=r.zrY=0}function i0(e){return e||window.event}function Qr(e,t,r){if(t=i0(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&zg(e,o,t,r)}else{zg(e,t,t,r);var a=IU(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&LU.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function IU(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function OU(e,t,r,n){e.addEventListener(t,r,n)}function RU(e,t,r,n){e.removeEventListener(t,r,n)}var C2=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},kU=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=rw(n)/rw(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=NU(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function Pu(){return[1,0,0,1,0,0]}function a0(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function BU(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function fs(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Vg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function o0(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),f=Math.cos(r);return e[0]=n*f+o*u,e[1]=-n*u+o*f,e[2]=i*f+s*u,e[3]=-i*u+f*s,e[4]=f*a+u*l,e[5]=f*l-u*a,e}function FU(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function bh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var $U=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const Fe=$U;var kf=Math.min,Nf=Math.max,wa=new Fe,Sa=new Fe,xa=new Fe,Ca=new Fe,tl=new Fe,rl=new Fe,nt=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=kf(t.x,this.x),n=kf(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Nf(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Nf(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=Pu();return Vg(a,a,[-r.x,-r.y]),FU(a,a,[n,i]),Vg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,f=t.y,c=t.y+t.height,h=!(av&&(v=_,pv&&(v=b,g=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}wa.x=xa.x=r.x,wa.y=Ca.y=r.y,Sa.x=Ca.x=r.x+r.width,Sa.y=xa.y=r.y+r.height,wa.transform(n),Ca.transform(n),Sa.transform(n),xa.transform(n),t.x=kf(wa.x,Sa.x,xa.x,Ca.x),t.y=kf(wa.y,Sa.y,xa.y,Ca.y);var l=Nf(wa.x,Sa.x,xa.x,Ca.x),u=Nf(wa.y,Sa.y,xa.y,Ca.y);t.width=l-t.x,t.height=u-t.y},e}(),T2="silent";function HU(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:zU}}function zU(){C2(this.event)}var VU=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ii),nl=function(){function e(t,r){this.x=t,this.y=r}return e}(),WU=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],bv=new nt(0,0,0,0),M2=function(e){ge(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new nl(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new VU,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new SU(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(R(WU,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=A2(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new nl(n,i):this.findHover(n,i),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new nl(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=HU(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new nl(r,n);if(nw(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new nt(r-u,n-u,l,l),c=a.length-1;c>=0;c--){var h=a[c];h!==i&&!h.ignore&&!h.ignoreCoarsePointer&&(!h.parent||!h.parent.ignoreCoarsePointer)&&(bv.copy(h.getBoundingRect()),h.transform&&bv.applyTransform(h.transform),bv.intersect(f)&&s.push(h))}if(s.length)for(var d=4,v=Math.PI/12,p=Math.PI*2,m=0;m4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function GU(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?T2:!0}return!1}function nw(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=GU(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==T2)){t.target=o;break}}}function A2(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const UU=M2;var P2=32,il=7;function YU(e){for(var t=0;e>=P2;)t|=e&1,e>>=1;return e+t}function iw(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function jU(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function wv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+f])>0?o=f+1:l=f}return l}function Sv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+f])<0?l=f:o=f+1}return l}function qU(e,t){var r=il,n,i,a=0;e.length;var o=[];n=[],i=[];function s(d,v){n[a]=d,i[a]=v,a+=1}function l(){for(;a>1;){var d=a-2;if(d>=1&&i[d-1]<=i[d]+i[d+1]||d>=2&&i[d-2]<=i[d]+i[d-1])i[d-1]i[d+1])break;f(d)}}function u(){for(;a>1;){var d=a-2;d>0&&i[d-1]=il||S>=il);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(g=0;g=0;g--)e[w+g]=e[x+g];e[b]=o[_];return}for(var S=r;;){var C=0,M=0,A=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){A=!0;break}}else if(e[b--]=o[_--],M++,C=0,--m===1){A=!0;break}while((C|M)=0;g--)e[w+g]=e[x+g];if(v===0){A=!0;break}}if(e[b--]=o[_--],--m===1){A=!0;break}if(M=m-wv(e[y],o,0,m,m-1,t),M!==0){for(b-=M,_-=M,m-=M,w=b+1,x=_+1,g=0;g=il||M>=il);if(A)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),m===1){for(b-=v,y-=v,w=b+1,x=y+1,g=v-1;g>=0;g--)e[w+g]=e[x+g];e[b]=o[_]}else{if(m===0)throw new Error;for(x=b-(m-1),g=0;gs&&(l=s),aw(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Br=1,Cl=2,Qo=4,ow=!1;function xv(){ow||(ow=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function sw(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var KU=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=sw}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(xv(),f.z=0),isNaN(f.z2)&&(xv(),f.z2=0),isNaN(f.zlevel)&&(xv(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var h=t.getTextGuideLine();h&&this._updateAndAddDisplayable(h,r,n);var d=t.getTextContent();d&&this._updateAndAddDisplayable(d,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),E2;E2=He.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Wg=E2;var ql={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-ql.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?ql.bounceIn(e*2)*.5:ql.bounceOut(e*2-1)*.5+.5}},Bf=Math.pow,ia=Math.sqrt,wd=1e-8,L2=1e-4,lw=ia(3),Ff=1/3,Vn=Us(),rn=Us(),cs=Us();function Ji(e){return e>-wd&&ewd||e<-wd}function Zt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function uw(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function I2(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,f=s*s-3*o*l,c=s*l-9*o*u,h=l*l-3*s*u,d=0;if(Ji(f)&&Ji(c))if(Ji(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[d++]=v)}else{var p=c*c-4*f*h;if(Ji(p)){var m=c/f,v=-s/o+m,g=-m/2;v>=0&&v<=1&&(a[d++]=v),g>=0&&g<=1&&(a[d++]=g)}else if(p>0){var y=ia(p),_=f*s+1.5*o*(-c+y),b=f*s+1.5*o*(-c-y);_<0?_=-Bf(-_,Ff):_=Bf(_,Ff),b<0?b=-Bf(-b,Ff):b=Bf(b,Ff);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[d++]=v)}else{var x=(2*f*s-3*o*c)/(2*ia(f*f*f)),w=Math.acos(x)/3,S=ia(f),C=Math.cos(w),v=(-s-2*S*C)/(3*o),g=(-s+S*(C+lw*Math.sin(w)))/(3*o),M=(-s+S*(C-lw*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[d++]=v),g>=0&&g<=1&&(a[d++]=g),M>=0&&M<=1&&(a[d++]=M)}}return d}function O2(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Ji(o)){if(D2(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Ji(f))i[0]=-a/(2*o);else if(f>0){var c=ia(f),u=(-a+c)/(2*o),h=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),h>=0&&h<=1&&(i[l++]=h)}}return l}function Sd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function R2(e,t,r,n,i,a,o,s,l,u,f){var c,h=.005,d=1/0,v,p,m,g;Vn[0]=l,Vn[1]=u;for(var y=0;y<1;y+=.05)rn[0]=Zt(e,r,i,o,y),rn[1]=Zt(t,n,a,s,y),m=us(Vn,rn),m=0&&m=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Ji(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=ia(f),u=(-o+c)/(2*a),h=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),h>=0&&h<=1&&(i[l++]=h)}}return l}function k2(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function xd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function N2(e,t,r,n,i,a,o,s,l){var u,f=.005,c=1/0;Vn[0]=o,Vn[1]=s;for(var h=0;h<1;h+=.05){rn[0]=ir(e,r,i,h),rn[1]=ir(t,n,a,h);var d=us(Vn,rn);d=0&&d=1?1:I2(0,n,a,1,l,s)&&Zt(0,i,o,1,s[0])}}}var e9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Er,this.ondestroy=t.ondestroy||Er,this.onrestart=t.onrestart||Er,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ye(t)?t:ql[t]||B2(t)},e}();const t9=e9;var F2=function(){function e(t){this.value=t}return e}(),r9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new F2(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),af=function(){function e(t){this._list=new r9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new F2(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),cw={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Kl(e){return e=Math.round(e),e<0?0:e>255?255:e}function dw(e){return e<0?0:e>1?1:e}function Cv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Kl(parseFloat(t)/100*255):Kl(parseInt(t,10))}function Xl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?dw(parseFloat(t)/100):dw(parseFloat(t))}function Tv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Zr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Gg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var $2=new af(20),$f=null;function Bo(e,t){$f&&Gg($f,t),$f=$2.put(e,$f||t.slice())}function uo(e,t){if(e){t=t||[];var r=$2.get(e);if(r)return Gg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in cw)return Gg(t,cw[n]),Bo(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Zr(t,0,0,0,1);return}return Zr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Bo(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Zr(t,0,0,0,1);return}return Zr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Bo(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Zr(t,+u[0],+u[1],+u[2],1):Zr(t,0,0,0,1);f=Xl(u.pop());case"rgb":if(u.length>=3)return Zr(t,Cv(u[0]),Cv(u[1]),Cv(u[2]),u.length===3?f:Xl(u[3])),Bo(e,t),t;Zr(t,0,0,0,1);return;case"hsla":if(u.length!==4){Zr(t,0,0,0,1);return}return u[3]=Xl(u[3]),hw(u,t),Bo(e,t),t;case"hsl":if(u.length!==3){Zr(t,0,0,0,1);return}return hw(u,t),Bo(e,t),t;default:return}}Zr(t,0,0,0,1)}}function hw(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Xl(e[1]),i=Xl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Zr(t,Kl(Tv(o,a,r+1/3)*255),Kl(Tv(o,a,r)*255),Kl(Tv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function vw(e,t){var r=uo(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return s0(r,r.length===4?"rgba":"rgb")}}function s0(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function Cd(e,t){var r=uo(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function n9(e){return e.type==="linear"}function i9(e){return e.type==="radial"}(function(){return He.hasGlobalWindow&&Ye(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Ug=Array.prototype.slice;function hi(e,t,r){return(t-e)*r+e}function Mv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=gw,l=r;if(Ir(r)){var u=l9(r);s=u,(u===1&&!Tt(r[0])||u===2&&!Tt(r[0][0]))&&(o=!0)}else if(Tt(r)&&!bd(r))s=zf;else if(Ee(r))if(!isNaN(+r))s=zf;else{var f=uo(r);f&&(l=f,s=Tl)}else if(yh(r)){var c=ue({},l);c.colorStops=Ne(r.colorStops,function(d){return{offset:d.offset,color:uo(d.color)}}),n9(r)?s=Yg:i9(r)&&(s=jg),l=c}a===0?this.valType=s:(s!==this.valType||s===gw)&&(o=!0),this.discrete=this.discrete||o;var h={time:t,value:l,rawValue:r,percent:0};return n&&(h.easing=n,h.easingFunc=Ye(n)?n:ql[n]||B2(n)),i.push(h),h},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,m){return p.time-m.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=Vf(i),u=mw(i),f=0;f=0&&!(o[f].percent<=r);f--);f=h(f,s-2)}else{for(f=c;fr);f++);f=h(f-1,s-2)}v=o[f+1],d=o[f]}if(d&&v){this._lastFr=f,this._lastFrP=r;var m=v.percent-d.percent,g=m===0?1:h((r-d.percent)/m,1);v.easingFunc&&(g=v.easingFunc(g));var y=n?this._additiveValue:u?al:t[l];if((Vf(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=g<1?d.rawValue:v.rawValue;else if(Vf(a))a===Vc?Mv(y,d[i],v[i],g):a9(y,d[i],v[i],g);else if(mw(a)){var _=d[i],b=v[i],x=a===Yg;t[l]={type:x?"linear":"radial",x:hi(_.x,b.x,g),y:hi(_.y,b.y,g),colorStops:Ne(_.colorStops,function(S,C){var M=b.colorStops[C];return{offset:hi(S.offset,M.offset,g),color:zc(Mv([],S.color,M.color,g))}}),global:b.global},x?(t[l].x2=hi(_.x2,b.x2,g),t[l].y2=hi(_.y2,b.y2,g)):t[l].r=hi(_.r,b.r,g)}else if(u)Mv(y,d[i],v[i],g),n||(t[l]=zc(y));else{var w=hi(d[i],v[i],g);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===zf?t[n]=t[n]+i:r===Tl?(uo(t[n],al),Hf(al,al,i,1),t[n]=zc(al)):r===Vc?Hf(t[n],t[n],i,1):r===H2&&pw(t[n],t[n],i,1)},e}(),l0=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){r0("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Ct(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Hc(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Hc(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();function ns(){return new Date().getTime()}var f9=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ns()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Wg(n),!r._paused&&r.update())}Wg(n)},t.prototype.start=function(){this._running||(this._time=ns(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ns(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ns()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new l0(r,n.loop);return this.addAnimator(i),i},t}(ii),c9=300,Av=He.domSupported,Pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Ne(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),yw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},_w=!1;function qg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function d9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function Ev(e){e&&(e.zrByTouch=!0)}function h9(e,t){return Qr(e.dom,new v9(e,t),!0)}function z2(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var v9=function(){function e(t,r){this.stopPropagation=Er,this.stopImmediatePropagation=Er,this.preventDefault=Er,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),yn={mousedown:function(e){e=Qr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Qr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Qr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Qr(this.dom,e);var t=e.toElement||e.relatedTarget;z2(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){_w=!0,e=Qr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){_w||(e=Qr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Qr(this.dom,e),Ev(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),yn.mousemove.call(this,e),yn.mousedown.call(this,e)},touchmove:function(e){e=Qr(this.dom,e),Ev(e),this.handler.processGesture(e,"change"),yn.mousemove.call(this,e)},touchend:function(e){e=Qr(this.dom,e),Ev(e),this.handler.processGesture(e,"end"),yn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentSw||e<-Sw}var Ma=[],Fo=[],Dv=Pu(),Iv=Math.abs,wh=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return Ta(this.rotation)||Ta(this.x)||Ta(this.y)||Ta(this.scaleX-1)||Ta(this.scaleY-1)||Ta(this.skewX)||Ta(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&(ww(n),this.invTransform=null);return}n=n||Pu(),r?this.getLocalTransform(n):ww(n),t&&(r?fs(n,t,n):BU(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Ma);var n=Ma[0]<0?-1:1,i=Ma[1]<0?-1:1,a=((Ma[0]-n)*r+n)/Ma[0]||0,o=((Ma[1]-i)*r+i)/Ma[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Pu(),bh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(fs(Fo,t.invTransform,r),r=Fo);var n=this.originX,i=this.originY;(n||i)&&(Dv[4]=n,Dv[5]=i,fs(Fo,r,Dv),Fo[4]-=n,Fo[5]-=i,r=Fo),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&un(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&un(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&Iv(t[0]-1)>1e-10&&Iv(t[3]-1)>1e-10?Math.sqrt(Iv(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){b9(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,f=t.x,c=t.y,h=t.skewX?Math.tan(t.skewX):0,d=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-h*p*o,r[5]=-p*o-d*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=d*a,r[2]=h*o,u&&o0(r,r,u),r[4]+=n+f,r[5]+=i+c,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Eu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function b9(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function Md(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,f="left",c="top";if(n instanceof Array)l+=da(n[0],r.width),u+=da(n[1],r.height),f=null,c=null;else switch(n){case"left":l-=i,u+=s,f="right",c="middle";break;case"right":l+=i+o,u+=s,c="middle";break;case"top":l+=o/2,u-=i,f="center",c="bottom";break;case"bottom":l+=o/2,u+=a+i,f="center";break;case"inside":l+=o/2,u+=s,f="center",c="middle";break;case"insideLeft":l+=i,u+=s,c="middle";break;case"insideRight":l+=o-i,u+=s,f="right",c="middle";break;case"insideTop":l+=o/2,u+=i,f="center";break;case"insideBottom":l+=o/2,u+=a-i,f="center",c="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,f="right";break;case"insideBottomLeft":l+=i,u+=a-i,c="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,f="right",c="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=f,e.verticalAlign=c,e}var Ov="__zr_normal__",Rv=Eu.concat(["ignore"]),w9=ca(Eu,function(e,t){return e[t]=!0,e},{ignore:!1}),$o={},S9=new nt(0,0,0,0),c0=function(){function e(t){this.id=y2(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var f=S9;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition($o,n,f):Md($o,n,f),a.x=$o.x,a.y=$o.y,o=$o.align,s=$o.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var h=void 0,d=void 0;c==="center"?(h=f.width*.5,d=f.height*.5):(h=da(c[0],f.width),d=da(c[1],f.height)),u=!0,a.originX=-a.x+h+(i?0:f.x),a.originY=-a.y+d+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,m=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),g=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(g=n.insideFill,y=n.insideStroke,(g==null||g==="auto")&&(g=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(g),_=!0)):(g=n.outsideFill,y=n.outsideStroke,(g==null||g==="auto")&&(g=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(g),_=!0)),g=g||"#000",(g!==m.fill||y!==m.stroke||_!==m.autoStroke||o!==m.align||s!==m.verticalAlign)&&(l=!0,m.fill=g,m.stroke=y,m.autoStroke=_,m.align=o,m.verticalAlign=s,r.setDefaultTextStyle(m)),r.__dirty|=Br,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Qg:Zg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&uo(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,s0(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},ue(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Re(t))for(var n=t,i=Ct(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(Ov,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===Ov,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ot(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){r0("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||i);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,h=this._textGuide;return c&&c.useState(t,r,n,f),h&&h.useState(t,r,n,f),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Br),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,m=this._textGuide;p&&p.useStates(t,r,h),m&&m.useStates(t,r,h),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Br)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=ot(i,t),o=ot(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var h=0;h0||i.force&&!o.length){var C=void 0,M=void 0,A=void 0;if(s){M={},h&&(C={});for(var b=0;b<_;b++){var g=p[b];M[g]=r[g],h?C[g]=n[g]:r[g]=n[g]}}else if(h){A={};for(var b=0;b<_;b++){var g=p[b];A[g]=Hc(r[g]),C9(r,n,g)}}var x=new l0(r,!1,!1,c?jt(v,function(E){return E.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),h&&C&&x.whenWithKeys(0,C,p),A&&x.whenWithKeys(0,A,p),x.whenWithKeys(u??500,s?M:n,p).delay(f||0),e.addAnimator(x,t),o.push(x)}}const G2=c0;var Ur=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=ot(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ot(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function yt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Ee(e)?D9(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function Ft(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),Y2),e=(+e).toFixed(t),r?e:+e}function vi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return I9(e)}function I9(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function O9(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function R9(e,t){var r=ca(e,function(d,v){return d+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Ne(e,function(d){return(isNaN(d)?0:d)/r*n*100}),a=n*100,o=Ne(i,function(d){return Math.floor(d)}),s=ca(o,function(d,v){return d+v},0),l=Ne(i,function(d,v){return d-o[v]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return Ne(o,function(d){return d/n})}function k9(e,t){var r=Math.max(vi(e),vi(t)),n=e+t;return r>Y2?n:Ft(n,r)}function j2(e){var t=Math.PI*2;return(e%t+t)%t}function Ad(e){return e>-Mw&&e=10&&t++,t}function q2(e,t){var r=d0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function Pd(e){var t=parseFloat(e);return t==e&&(t!==0||!Ee(e)||e.indexOf("x")<=0)?t:NaN}function F9(e){return!isNaN(Pd(e))}function K2(){return Math.round(Math.random()*9)}function X2(e,t){return t===0?e:X2(t,e%t)}function Aw(e,t){return e==null?t:t==null?e:e*t/X2(e,t)}function Cr(e){throw new Error(e)}function Pw(e,t,r){return(t-e)*r+e}var Z2="series\0",$9="\0_ec_\0";function pr(e){return e instanceof Array?e:e==null?[]:[e]}function em(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var l7=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],u7=Du(l7),f7=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return u7(this,t,r)},e}(),tm=new af(50);function c7(e){if(typeof e=="string"){var t=tm.get(e);return t&&t.image}else return e}function rP(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=tm.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!xh(t)&&a.pending.push(o)):(t=Vs.loadImage(e,Lw,Lw),t.__zrImageSrc=e,tm.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function Lw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function yt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Ee(e)?D9(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function $t(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),Y2),e=(+e).toFixed(t),r?e:+e}function vi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return I9(e)}function I9(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function O9(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function R9(e,t){var r=ca(e,function(d,v){return d+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Ne(e,function(d){return(isNaN(d)?0:d)/r*n*100}),a=n*100,o=Ne(i,function(d){return Math.floor(d)}),s=ca(o,function(d,v){return d+v},0),l=Ne(i,function(d,v){return d-o[v]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return Ne(o,function(d){return d/n})}function k9(e,t){var r=Math.max(vi(e),vi(t)),n=e+t;return r>Y2?n:$t(n,r)}function j2(e){var t=Math.PI*2;return(e%t+t)%t}function Ad(e){return e>-Mw&&e=10&&t++,t}function q2(e,t){var r=d0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function Pd(e){var t=parseFloat(e);return t==e&&(t!==0||!Ee(e)||e.indexOf("x")<=0)?t:NaN}function F9(e){return!isNaN(Pd(e))}function K2(){return Math.round(Math.random()*9)}function X2(e,t){return t===0?e:X2(t,e%t)}function Aw(e,t){return e==null?t:t==null?e:e*t/X2(e,t)}function Cr(e){throw new Error(e)}function Pw(e,t,r){return(t-e)*r+e}var Z2="series\0",$9="\0_ec_\0";function pr(e){return e instanceof Array?e:e==null?[]:[e]}function em(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var l7=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],u7=Du(l7),f7=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return u7(this,t,r)},e}(),tm=new af(50);function c7(e){if(typeof e=="string"){var t=tm.get(e);return t&&t.image}else return e}function rP(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=tm.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!xh(t)&&a.pending.push(o)):(t=Gs.loadImage(e,Lw,Lw),t.__zrImageSrc=e,tm.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function Lw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=Vr(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function iP(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=Vr(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?h7(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=Vr(e,n)}return e===""&&(e=t.placeholder),e}function h7(e,t,r,n){for(var i=0,a=0,o=e.length;ad&&u){var v=Math.floor(d/s);c=c.slice(0,v)}if(e&&a&&f!=null)for(var p=nP(f,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),m=0;ms&&$v(r,e.substring(s,u),t,o),$v(r,l[2],t,o,l[1]),s=Fv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),m(y,b,_),r.lines=r.lines.slice(0,g+1)):r.lines=r.lines.slice(0,g);break e}var E=S.width,L=E==null||E==="auto";if(typeof E=="string"&&E.charAt(E.length-1)==="%")w.percentWidth=E,f.push(w),w.contentWidth=Vr(w.text,A);else{if(L){var O=S.backgroundColor,N=O&&O.image;N&&(N=c7(N),xh(N)&&(w.width=Math.max(w.width,N.width*P/N.height)))}var H=v&&n!=null?n-b:null;H!=null&&H0&&v+n.accumWidth>n.width&&(f=t.split(` `),u=!0),n.accumWidth=v}else{var p=aP(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+d,c=p.linesWidths,f=p.lines}}else f=t.split(` `);for(var m=0;m=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var _7=ca(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function b7(e){return y7(e)?!!_7[e]:!0}function aP(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,f=0,c=0;cr:i+f+d>r){f?(s||l)&&(v?(s||(s=l,l="",u=0,f=u),a.push(s),o.push(f-u),l+=h,u+=d,s="",f=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(f),s=h,f=d)):v?(a.push(l),o.push(u),l=h,u=d):(a.push(h),o.push(d));continue}f+=d,v?(l+=h,u+=d):(l&&(s+=l,l="",u=0),s+=h)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(f)),a.length===1&&(f+=i),{accumWidth:f,lines:a,linesWidths:o}}var rm="__zr_style_"+Math.round(Math.random()*10),fo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},Ch={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};fo[rm]=!0;var Iw=["z","z2","invisible"],w7=["invisible"],S7=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Ct(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Wf[0]=Wv(i)*r+e,Wf[1]=Vv(i)*n+t,Gf[0]=Wv(a)*r+e,Gf[1]=Vv(a)*n+t,u(s,Wf,Gf),f(l,Wf,Gf),i=i%Pa,i<0&&(i=i+Pa),a=a%Pa,a<0&&(a=a+Pa),i>a&&!o?a+=Pa:ii&&(Uf[0]=Wv(d)*r+e,Uf[1]=Vv(d)*n+t,u(s,Uf,s),f(l,Uf,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ea=[],La=[],Nn=[],ki=[],Bn=[],Fn=[],Gv=Math.min,Uv=Math.max,Da=Math.cos,Ia=Math.sin,ui=Math.abs,nm=Math.PI,Gi=nm*2,Yv=typeof Float32Array<"u",ol=[];function jv(e){var t=Math.round(e/nm*1e8)/1e8;return t%2*nm}function A7(e,t){var r=jv(e[0]);r<0&&(r+=Gi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=Gi?i=r+Gi:t&&r-i>=Gi?i=r-Gi:!t&&r>i?i=r+(Gi-jv(r-i)):t&&r0&&(this._ux=ui(n/Td/t)||0,this._uy=ui(n/Td/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=ui(t-this._xi),i=ui(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),ol[0]=i,ol[1]=a,A7(ol,o),i=ol[0],a=ol[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Da(a)*n+t,this._yi=Ia(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Yv&&(this.data=new Float32Array(r));for(var n=0;nf.length&&(this._expandData(),f=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Nn[0]=Nn[1]=Bn[0]=Bn[1]=Number.MAX_VALUE,ki[0]=ki[1]=Fn[0]=Fn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||ui(_)>i||h===r-1)&&(p=Math.sqrt(y*y+_*_),a=m,o=g);break}case at.C:{var b=t[h++],x=t[h++],m=t[h++],g=t[h++],w=t[h++],S=t[h++];p=XU(a,o,b,x,m,g,w,S,10),a=w,o=S;break}case at.Q:{var b=t[h++],x=t[h++],m=t[h++],g=t[h++];p=QU(a,o,b,x,m,g,10),a=m,o=g;break}case at.A:var C=t[h++],M=t[h++],A=t[h++],P=t[h++],E=t[h++],L=t[h++],O=L+E;h+=1,t[h++],v&&(s=Da(E)*A+C,l=Ia(E)*P+M),p=Uv(A,P)*Gv(Gi,Math.abs(L)),a=Da(O)*A+C,o=Ia(O)*P+M;break;case at.R:{s=a=t[h++],l=o=t[h++];var N=t[h++],H=t[h++];p=N*2+H*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[c++]=p,f+=p)}return this._pathLen=f,f},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,f,c,h,d=r<1,v,p,m=0,g=0,y,_=0,b,x;if(!(d&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y)))e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case at.M:s=u=n[w++],l=f=n[w++],t.moveTo(u,f);break;case at.L:{c=n[w++],h=n[w++];var M=ui(c-u),A=ui(h-f);if(M>i||A>a){if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;t.lineTo(u*(1-E)+c*E,f*(1-E)+h*E);break e}m+=P}t.lineTo(c,h),u=c,f=h,_=0}else{var L=M*M+A*A;L>_&&(b=c,x=h,_=L)}break}case at.C:{var O=n[w++],N=n[w++],H=n[w++],V=n[w++],U=n[w++],F=n[w++];if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;Sd(u,O,H,U,E,Ea),Sd(f,N,V,F,E,La),t.bezierCurveTo(Ea[1],La[1],Ea[2],La[2],Ea[3],La[3]);break e}m+=P}t.bezierCurveTo(O,N,H,V,U,F),u=U,f=F;break}case at.Q:{var O=n[w++],N=n[w++],H=n[w++],V=n[w++];if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;xd(u,O,H,E,Ea),xd(f,N,V,E,La),t.quadraticCurveTo(Ea[1],La[1],Ea[2],La[2]);break e}m+=P}t.quadraticCurveTo(O,N,H,V),u=H,f=V;break}case at.A:var z=n[w++],te=n[w++],J=n[w++],me=n[w++],Se=n[w++],$e=n[w++],Ie=n[w++],B=!n[w++],Y=J>me?J:me,K=ui(J-me)>.001,Q=Se+$e,oe=!1;if(d){var P=v[g++];m+P>y&&(Q=Se+$e*(y-m)/P,oe=!0),m+=P}if(K&&t.ellipse?t.ellipse(z,te,J,me,Ie,Se,Q,B):t.arc(z,te,Y,Se,Q,B),oe)break e;C&&(s=Da(Se)*J+z,l=Ia(Se)*me+te),u=Da(Q)*J+z,f=Ia(Q)*me+te;break;case at.R:s=u=n[w],l=f=n[w+1],c=n[w++],h=n[w++];var pe=n[w++],D=n[w++];if(d){var P=v[g++];if(m+P>y){var I=y-m;t.moveTo(c,h),t.lineTo(c+Gv(I,pe),h),I-=pe,I>0&&t.lineTo(c+pe,h+Gv(I,D)),I-=D,I>0&&t.lineTo(c+Uv(pe-I,0),h+D),I-=pe,I>0&&t.lineTo(c,h+Uv(D-I,0));break e}m+=P}t.rect(c,h,pe,D);break;case at.Z:if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;t.lineTo(u*(1-E)+s*E,f*(1-E)+l*E);break e}m+=P}t.closePath(),u=s,f=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();function Fo(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+c&&f>n+c&&f>a+c&&f>s+c||fe+c&&u>r+c&&u>i+c&&u>o+c||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||f+ui&&(i+=sl);var h=Math.atan2(l,s);return h<0&&(h+=sl),h>=n&&h<=i||h+sl>=n&&h+sl<=i}function Oa(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ni=bo.CMD,Ra=Math.PI*2,D7=1e-4;function I7(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&O7(),d=Zt(t,n,a,s,en[0]),h>1&&(v=Zt(t,n,a,s,en[1]))),h===2?mt&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=ir(t,n,a,u),h=0;hr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);cr[0]=-l,cr[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Ra-1e-4){n=0,i=Ra;var f=a?1:-1;return o>=cr[0]+e&&o<=cr[1]+e?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=Ra,i+=Ra);for(var h=0,d=0;d<2;d++){var v=cr[d];if(v+e>o){var p=Math.atan2(s,v),f=a?1:-1;p<0&&(p=Ra+p),(p>=n&&p<=i||p+Ra>=n&&p+Ra<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Oa(l,u,f,c,n,i))),m&&(l=a[v],u=a[v+1],f=l,c=u),p){case Ni.M:f=a[v++],c=a[v++],l=f,u=c;break;case Ni.L:if(r){if(Fo(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Oa(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.C:if(r){if(P7(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=R7(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.Q:if(r){if(E7(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=k7(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.A:var g=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);h=Math.cos(x)*_+g,d=Math.sin(x)*b+y,m?(f=h,c=d):s+=Oa(l,u,h,d,n,i);var C=(n-g)*b/_+g;if(r){if(L7(g,y,b,x,x+w,S,t,C,i))return!0}else s+=N7(g,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+g,u=Math.sin(x+w)*b+y;break;case Ni.R:f=l=a[v++],c=u=a[v++];var M=a[v++],A=a[v++];if(h=f+M,d=c+A,r){if(Fo(f,c,h,c,t,n,i)||Fo(h,c,h,d,t,n,i)||Fo(h,d,f,d,t,n,i)||Fo(f,d,f,c,t,n,i))return!0}else s+=Oa(h,c,h,d,n,i),s+=Oa(f,d,f,c,n,i);break;case Ni.Z:if(r){if(Fo(l,u,f,c,t,n,i))return!0}else s+=Oa(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!I7(u,c)&&(s+=Oa(l,u,f,c,n,i)||0),s!==0}function B7(e,t,r){return oP(e,0,!1,t,r)}function F7(e,t,r,n){return oP(e,t,!0,r,n)}var sP=ht({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},fo),$7={style:ht({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},Ch.style)},qv=Eu.concat(["invisible","culling","z","z2","zlevel","parent"]),H7=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Zg:n>.2?_9:Qg}else if(r)return Qg}return Zg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Ee(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Cd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Xo)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),F7(s,l/u,r,n)))return!0}if(this.hasFill())return B7(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Xo,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:ue(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Xo)},t.prototype.createStyle=function(r){return _h(sP,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=ue({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=ue({},i.shape),ue(u,n.shape)):(u=ue({},a?this.shape:i.shape),ue(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=ue({},this.shape);for(var f={},c=Ct(u),h=0;h0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return _h(z7,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=u0(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(uf);lP.prototype.type="tspan";const im=lP;var V7=ht({x:0,y:0},fo),W7={style:ht({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},Ch.style)};function G7(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var uP=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return _h(V7,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=G7(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return W7},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new nt(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(uf);uP.prototype.type="image";const Gs=uP;function U7(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,f;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var c;s+l>i&&(c=s+l,s*=i/c,l*=i/c),u+f>i&&(c=u+f,u*=i/c,f*=i/c),l+u>a&&(c=l+u,l*=a/c,u*=a/c),s+f>a&&(c=s+f,s*=a/c,f*=a/c),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+f,n+a),f!==0&&e.arc(r+f,n+a-f,f,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var rs=Math.round;function fP(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(rs(n*2)===rs(i*2)&&(e.x1=e.x2=to(n,s,!0)),rs(a*2)===rs(o*2)&&(e.y1=e.y2=to(a,s,!0))),e}}function cP(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=to(n,s,!0),e.y=to(i,s,!0),e.width=Math.max(to(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(to(i+o,s,!1)-e.y,o===0?0:1)),e}}function to(e,t,r){if(!t)return e;var n=rs(e*2);return(n+rs(t))%2===0?n/2:(n+(r?1:-1))/2}var Y7=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),j7={},dP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Y7},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=cP(j7,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?U7(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(vt);dP.prototype.type="rect";const Gt=dP;var Bw={fill:"#000"},Fw=2,q7={style:ht({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},Ch.style)},hP=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Bw,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,E=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),L=o.calculatedLineHeight,O=0;O=0&&(O=w[L],O.align==="right");)this._placeToken(O,r,C,g,E,"right",_),M-=O.width,E-=O.width,L--;for(P+=(a-(P-m)-(y-E)-M)/2;A<=L;)O=w[A],this._placeToken(O,r,C,g,P+O.width/2,"center",_),P+=O.width,A++;g+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var f=r.verticalAlign,c=a+i/2;f==="top"?c=a+r.height/2:f==="bottom"&&(c=a+i-r.height/2);var h=!r.isLineHolder&&Kv(u);h&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,c-r.height/2,r.width,r.height);var d=!!u.backgroundColor,v=r.textPadding;v&&(o=Gw(o,s,v),c-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(im),m=p.createStyle();p.useStyle(m);var g=this._defaultStyle,y=!1,_=0,b=Ww("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,g.fill)),x=Vw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!d&&!l&&(!g.autoStroke||y)?(_=Fw,g.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;m.text=r.text,m.x=o,m.y=c,w&&(m.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,m.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",m.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,m.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),m.textAlign=s,m.textBaseline="middle",m.font=r.font||_o,m.opacity=Yl(u.opacity,n.opacity,1),Hw(m,u),x&&(m.lineWidth=Yl(u.lineWidth,n.lineWidth,_),m.lineDash=Ze(u.lineDash,n.lineDash),m.lineDashOffset=n.lineDashOffset||0,m.stroke=x),b&&(m.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new nt(Ml(m.x,S,m.textAlign),Zo(m.y,C,m.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,h=l&&!c,d=r.borderRadius,v=this,p,m;if(h||r.lineHeight||u&&f){p=this._getOrCreateChild(Gt),p.useStyle(p.createStyle()),p.style.fill=null;var g=p.shape;g.x=i,g.y=a,g.width=o,g.height=s,g.r=d,p.dirtyShape()}if(h){var y=p.style;y.fill=l||null,y.fillOpacity=Ze(r.fillOpacity,1)}else if(c){m=this._getOrCreateChild(Gs),m.onload=function(){v.dirtyStyle()};var _=m.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&f){var y=p.style;y.lineWidth=u,y.stroke=f,y.strokeOpacity=Ze(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||m).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=Yl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return Q7(r)&&(n=[r.fontStyle,r.fontWeight,Z7(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Gn(n)||r.textFont||r.font},t}(uf),K7={left:!0,right:1,center:1},X7={top:1,bottom:1,middle:1},$w=["fontStyle","fontWeight","fontSize","fontFamily"];function Z7(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?Jy+"px":e+"px"}function Hw(e,t){for(var r=0;r<$w.length;r++){var n=$w[r],i=t[n];i!=null&&(e[n]=i)}}function Q7(e){return e.fontSize!=null||e.fontFamily||e.fontWeight}function J7(e){return zw(e),R(e.rich,zw),e}function zw(e){if(e){e.font=hP.makeFont(e);var t=e.align;t==="middle"&&(t="center"),e.align=t==null||K7[t]?t:"left";var r=e.verticalAlign;r==="center"&&(r="middle"),e.verticalAlign=r==null||X7[r]?r:"top";var n=e.padding;n&&(e.padding=_2(e.padding))}}function Vw(e,t){return e==null||t<=0||e==="transparent"||e==="none"?null:e.image||e.colorStops?"#000":e}function Ww(e){return e==null||e==="none"?null:e.image||e.colorStops?"#000":e}function Gw(e,t,r){return t==="right"?e-r[1]:t==="center"?e+r[3]/2-r[1]/2:e+r[3]}function Uw(e){var t=e.text;return t!=null&&(t+=""),t}function Kv(e){return!!(e.backgroundColor||e.lineHeight||e.borderWidth&&e.borderColor)}const mr=hP;var dt=Et(),eY=function(e,t,r,n){if(n){var i=dt(n);i.dataIndex=r,i.dataType=t,i.seriesIndex=e,n.type==="group"&&n.traverse(function(a){var o=dt(a);o.seriesIndex=e,o.dataIndex=r,o.dataType=t})}},Yw=1,jw={},vP=Et(),g0=Et(),pP=0,m0=1,y0=2,Jn=["emphasis","blur","select"],Ed=["normal","emphasis","blur","select"],tY=10,rY=9,co="highlight",Uc="downplay",Ql="select",Yc="unselect",Jl="toggleSelect";function $o(e){return e!=null&&e!=="none"}var qw=new af(100);function Kw(e){if(Ee(e)){var t=qw.get(e);return t||(t=vw(e,-.1),qw.put(e,t)),t}else if(yh(e)){var r=ue({},e);return r.colorStops=Ne(e.colorStops,function(n){return{offset:n.offset,color:vw(n.color,-.1)}}),r}return e}function Th(e,t,r){e.onHoverStateChange&&(e.hoverState||0)!==r&&e.onHoverStateChange(t),e.hoverState=r}function gP(e){Th(e,"emphasis",y0)}function mP(e){e.hoverState===y0&&Th(e,"normal",pP)}function _0(e){Th(e,"blur",m0)}function yP(e){e.hoverState===m0&&Th(e,"normal",pP)}function nY(e){e.selected=!0}function iY(e){e.selected=!1}function Xw(e,t,r){t(e,r)}function Li(e,t,r){Xw(e,t,r),e.isGroup&&e.traverse(function(n){Xw(n,t,r)})}function aY(e,t,r,n){for(var i=e.style,a={},o=0;o=0,a=!1;if(e instanceof vt){var o=vP(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if($o(s)||$o(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=ue({},n),u=ue({},u),u.fill=s):!$o(u.fill)&&$o(s)?(a=!0,n=ue({},n),u=ue({},u),u.fill=Kw(s)):!$o(u.stroke)&&$o(l)&&(a||(n=ue({},n),u=ue({},u)),u.stroke=Kw(l)),n.style=u}}if(n&&n.z2==null){a||(n=ue({},n));var f=e.z2EmphasisLift;n.z2=e.z2+(f??tY)}return n}function sY(e,t,r){if(r&&r.z2==null){r=ue({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??rY)}return r}function lY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:aY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=ue({},r),o=ue({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Xv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return oY(this,e,t,r);if(e==="blur")return lY(this,e,r);if(e==="select")return sY(this,e,r)}return r}function uY(e){e.stateProxy=Xv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Xv),r&&(r.stateProxy=Xv)}function Zw(e,t){!SP(e,t)&&!e.__highByOuter&&Li(e,gP)}function Qw(e,t){!SP(e,t)&&!e.__highByOuter&&Li(e,mP)}function am(e,t){e.__highByOuter|=1<<(t||0),Li(e,gP)}function om(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Li(e,mP)}function fY(e){Li(e,_0)}function _P(e){Li(e,yP)}function bP(e){Li(e,nY)}function wP(e){Li(e,iY)}function SP(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function xP(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=g0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){yP(u)}),s&&r.push(a)),o.isBlured=!1}),R(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function sm(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,f){for(var c=0;c0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function um(e,t,r){MP(e,!0),Li(e,uY),mY(e,t,r)}function gY(e){MP(e,!1)}function CP(e,t,r,n){n?gY(e):um(e,t,r)}function mY(e,t,r){var n=dt(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var eS=["emphasis","blur","select"],yY={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function TP(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Zv(v),s*=Zv(v));var p=(i===a?-1:1)*Zv((o*o*(s*s)-o*o*(d*d)-s*s*(h*h))/(o*o*(d*d)+s*s*(h*h)))||0,m=p*o*d/s,g=p*-s*h/o,y=(e+r)/2+jf(c)*m-Yf(c)*g,_=(t+n)/2+Yf(c)*m+jf(c)*g,b=iS([1,0],[(h-m)/o,(d-g)/s]),x=[(h-m)/o,(d-g)/s],w=[(-1*h-m)/o,(-1*d-g)/s],S=iS(x,w);if(dm(x,w)<=-1&&(S=ll),dm(x,w)>=1&&(S=0),S<0){var C=Math.round(S/ll*1e6)/1e6;S=ll*2+C%2*ll}f.addData(u,y,_,o,s,b,S,c,a)}var CY=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,TY=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function MY(e){var t=new bo;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=bo.CMD,l=e.match(CY);if(!l)return t;for(var u=0;uO*O+N*N&&(C=A,M=P),{cx:C,cy:M,x0:-f,y0:-c,x1:C*(i/x-1),y1:M*(i/x-1)}}function RY(e){var t;if(ye(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function kY(e,t){var r,n=Al(t.r,0),i=Al(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var f=t.cx,c=t.cy,h=!!t.clockwise,d=oS(u-l),v=d>Qv&&d%Qv;if(v>mn&&(d=v),!(n>mn))e.moveTo(f,c);else if(d>Qv-mn)e.moveTo(f+n*zo(l),c+n*ka(l)),e.arc(f,c,n,l,u,!h),i>mn&&(e.moveTo(f+i*zo(u),c+i*ka(u)),e.arc(f,c,i,u,l,h));else{var p=void 0,m=void 0,g=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,M=void 0,A=void 0,P=void 0,E=void 0,L=void 0,O=void 0,N=n*zo(l),H=n*ka(l),V=i*zo(u),U=i*ka(u),F=d>mn;if(F){var z=t.cornerRadius;z&&(r=RY(z),p=r[0],m=r[1],g=r[2],y=r[3]);var te=oS(n-i)/2;if(_=$n(te,g),b=$n(te,y),x=$n(te,p),w=$n(te,m),M=S=Al(_,b),A=C=Al(x,w),(S>mn||C>mn)&&(P=n*zo(u),E=n*ka(u),L=i*zo(l),O=i*ka(l),dmn){var K=$n(g,M),Q=$n(y,M),oe=qf(L,O,N,H,n,K,h),pe=qf(P,E,V,U,n,Q,h);e.moveTo(f+oe.cx+oe.x0,c+oe.cy+oe.y0),M0&&e.arc(f+oe.cx,c+oe.cy,K,rr(oe.y0,oe.x0),rr(oe.y1,oe.x1),!h),e.arc(f,c,n,rr(oe.cy+oe.y1,oe.cx+oe.x1),rr(pe.cy+pe.y1,pe.cx+pe.x1),!h),Q>0&&e.arc(f+pe.cx,c+pe.cy,Q,rr(pe.y1,pe.x1),rr(pe.y0,pe.x0),!h))}else e.moveTo(f+N,c+H),e.arc(f,c,n,l,u,!h);if(!(i>mn)||!F)e.lineTo(f+V,c+U);else if(A>mn){var K=$n(p,A),Q=$n(m,A),oe=qf(V,U,P,E,i,-Q,h),pe=qf(N,H,L,O,i,-K,h);e.lineTo(f+oe.cx+oe.x0,c+oe.cy+oe.y0),A0&&e.arc(f+oe.cx,c+oe.cy,Q,rr(oe.y0,oe.x0),rr(oe.y1,oe.x1),!h),e.arc(f,c,i,rr(oe.cy+oe.y1,oe.cx+oe.x1),rr(pe.cy+pe.y1,pe.cx+pe.x1),h),K>0&&e.arc(f+pe.cx,c+pe.cy,K,rr(pe.y1,pe.x1),rr(pe.y0,pe.x0),!h))}else e.lineTo(f+V,c+U),e.arc(f,c,i,u,l,h)}e.closePath()}}}var NY=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),RP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new NY},t.prototype.buildPath=function(r,n){kY(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(vt);RP.prototype.type="sector";const Eo=RP;var BY=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),kP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new BY},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(vt);kP.prototype.type="ring";const NP=kP;function FY(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,f,c;if(n){f=[1/0,1/0],c=[-1/0,-1/0];for(var h=0,d=e.length;h=2){if(n){var a=FY(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],f=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;sBa[1]){if(s=!1,a)return s;var f=Math.abs(Ba[0]-Na[1]),c=Math.abs(Na[0]-Ba[1]);Math.min(f,c)>i.len()&&(f0){var c=f.duration,h=f.delay,d=f.easing,v={duration:c,delay:h||0,easing:d,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Or(e,t,r,n,i,a){x0("update",e,t,r,n,i,a)}function Wr(e,t,r,n,i,a){x0("enter",e,t,r,n,i,a)}function fs(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function uS(e){return!e.isGroup}function dj(e){return e.shape!=null}function XP(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){uS(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return dj(o)&&(s.shape=ue({},o.shape)),s}var a=n(e);t.traverse(function(o){if(uS(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Or(o,l,r,dt(o).dataIndex)}}})}function hj(e,t){return Ne(e,function(r){var n=r[0];n=Id(n,t.x),n=Od(n,t.x+t.width);var i=r[1];return i=Id(i,t.y),i=Od(i,t.y+t.height),[n,i]})}function vj(e,t){var r=Id(e.x,t.x),n=Od(e.x+e.width,t.x+t.width),i=Id(e.y,t.y),a=Od(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function M0(e,t,r){var n=ue({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),ht(i,r),new Gs(n)):C0(e.replace("path://",""),n,r,"center")}function pj(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var m=Jv(d,v,f,c)/h;return!(m<0||m>1)}function Jv(e,t,r,n){return e*n-r*t}function gj(e){return e<=1e-6&&e>=-1e-6}function A0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Ee(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&R(Ct(l),function(f){Es(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=dt(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:ht({content:n,formatterParams:s},i)}}function fS(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function P0(e,t){if(e)if(ye(e))for(var r=0;r=0&&s.push(l)}),s}}function rE(e,t){return st(st({},e,!0),t,!0)}const Oj={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},Rj={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Rd="ZH",L0="EN",Ou=L0,jc={},D0={},nE=He.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Rd)>-1?Rd:Ou}():Ou;function iE(e,t){e=e.toUpperCase(),D0[e]=new sr(t),jc[e]=t}function kj(e){if(Ee(e)){var t=jc[e.toUpperCase()]||{};return e===Rd||e===L0?tt(t):st(tt(t),tt(jc[Ou]),!1)}else return st(tt(e),tt(jc[Ou]),!1)}function Nj(e){return D0[e]}function Bj(){return D0[Ou]}iE(L0,Oj);iE(Rd,Rj);var I0=1e3,O0=I0*60,tu=O0*60,on=tu*24,gS=on*365,Pl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Zf="{yyyy}-{MM}-{dd}",mS={year:"{yyyy}",month:"{yyyy}-{MM}",day:Zf,hour:Zf+" "+Pl.hour,minute:Zf+" "+Pl.minute,second:Zf+" "+Pl.second,millisecond:Pl.none},rp=["year","month","day","hour","minute","second","millisecond"],aE=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Bi(e,t){return e+="","0000".substr(0,t-e.length)+e}function cs(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Fj(e){return e===cs(e)}function $j(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Ph(e,t,r,n){var i=Ti(e),a=i[R0(r)](),o=i[ds(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[Eh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[Ru(r)](),c=(f-1)%12+1,h=i[Lh(r)](),d=i[Dh(r)](),v=i[Ih(r)](),p=n instanceof sr?n:Nj(n||nE)||Bj(),m=p.getModel("time"),g=m.get("month"),y=m.get("monthAbbr"),_=m.get("dayOfWeek"),b=m.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,Bi(a%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,g[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Bi(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Bi(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Bi(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,Bi(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Bi(h,2)).replace(/{m}/g,h+"").replace(/{ss}/g,Bi(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Bi(v,3)).replace(/{S}/g,v+"")}function Hj(e,t,r,n,i){var a=null;if(Ee(r))a=r;else if(Ye(r))a=r(e.value,t,{level:e.level});else{var o=ue({},Pl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ye(a)){var c=e.level==null?0:e.level>=0?e.level:a.length+e.level;c=Math.min(c,a.length-1),a=a[c]}}return Ph(new Date(e.value),a,i,n)}function oE(e,t){var r=Ti(e),n=r[ds(t)]()+1,i=r[Eh(t)](),a=r[Ru(t)](),o=r[Lh(t)](),s=r[Dh(t)](),l=r[Ih(t)](),u=l===0,f=u&&s===0,c=f&&o===0,h=c&&a===0,d=h&&i===1,v=d&&n===1;return v?"year":d?"month":h?"day":c?"hour":f?"minute":u?"second":"millisecond"}function yS(e,t,r){var n=Tt(e)?Ti(e):e;switch(t=t||oE(e,r),t){case"year":return n[R0(r)]();case"half-year":return n[ds(r)]()>=6?1:0;case"quarter":return Math.floor((n[ds(r)]()+1)/4);case"month":return n[ds(r)]();case"day":return n[Eh(r)]();case"half-day":return n[Ru(r)]()/24;case"hour":return n[Ru(r)]();case"minute":return n[Lh(r)]();case"second":return n[Dh(r)]();case"millisecond":return n[Ih(r)]()}}function R0(e){return e?"getUTCFullYear":"getFullYear"}function ds(e){return e?"getUTCMonth":"getMonth"}function Eh(e){return e?"getUTCDate":"getDate"}function Ru(e){return e?"getUTCHours":"getHours"}function Lh(e){return e?"getUTCMinutes":"getMinutes"}function Dh(e){return e?"getUTCSeconds":"getSeconds"}function Ih(e){return e?"getUTCMilliseconds":"getMilliseconds"}function zj(e){return e?"setUTCFullYear":"setFullYear"}function sE(e){return e?"setUTCMonth":"setMonth"}function lE(e){return e?"setUTCDate":"setDate"}function uE(e){return e?"setUTCHours":"setHours"}function fE(e){return e?"setUTCMinutes":"setMinutes"}function cE(e){return e?"setUTCSeconds":"setSeconds"}function dE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function hE(e){if(!F9(e))return Ee(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function vE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var Oh=_2;function pm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&Gn(f)?f:"-"}function a(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?Ti(e):e;if(isNaN(+l)){if(s)return"-"}else return Ph(l,n,r)}if(t==="ordinal")return kg(e)?i(e):Tt(e)&&a(e)?e+"":"-";var u=Pd(e);return a(u)?hE(u):kg(e)?i(e):typeof e=="boolean"?e+"":"-"}var _S=["a","b","c","d","e","f","g"],np=function(e,t){return"{"+e+(t??"")+"}"};function pE(e,t,r){ye(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function ku(e,t){return t=t||"transparent",Ee(e)?e:Re(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function bS(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var qc=R,Wj=["left","right","top","bottom","width","height"],Qf=[["width","left","right"],["height","top","bottom"]];function k0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var f=l.getBoundingRect(),c=t.childAt(u+1),h=c&&c.getBoundingRect(),d,v;if(e==="horizontal"){var p=f.width+(h?-h.x+f.x:0);d=a+p,d>n||l.newline?(a=0,d=p,o+=s+r,s=f.height):s=Math.max(s,f.height)}else{var m=f.height+(h?-h.y+f.y:0);v=o+m,v>i||l.newline?(a+=s+r,o=0,v=m,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=d+r:o=v+r)})}var ru=k0;Ot(k0,"vertical");Ot(k0,"horizontal");function Ls(e,t,r){r=Oh(r||0);var n=t.width,i=t.height,a=yt(e.left,n),o=yt(e.top,i),s=yt(e.right,n),l=yt(e.bottom,i),u=yt(e.width,n),f=yt(e.height,i),c=r[2]+r[0],h=r[1]+r[3],d=e.aspect;switch(isNaN(u)&&(u=n-s-h-a),isNaN(f)&&(f=i-l-c-o),d!=null&&(isNaN(u)&&isNaN(f)&&(d>n/i?u=n*.8:f=i*.8),isNaN(u)&&(u=d*f),isNaN(f)&&(f=u/d)),isNaN(a)&&(a=n-s-u-h),isNaN(o)&&(o=i-l-f-c),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-h;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-f/2-r[0];break;case"bottom":o=i-f-c;break}a=a||0,o=o||0,isNaN(u)&&(u=n-h-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var v=new nt(a+r[3],o+r[0],u,f);return v.margin=r,v}function Nu(e){var t=e.layoutMode||e.constructor.layoutMode;return Re(t)?t:t?{type:t}:null}function Ds(e,t,r){var n=r&&r.ignoreSize;!ye(n)&&(n=[n,n]);var i=o(Qf[0],0),a=o(Qf[1],1);u(Qf[0],e,i),u(Qf[1],e,a);function o(f,c){var h={},d=0,v={},p=0,m=2;if(qc(f,function(_){v[_]=e[_]}),qc(f,function(_){s(t,_)&&(h[_]=v[_]=t[_]),l(h,_)&&d++,l(v,_)&&p++}),n[c])return l(t,f[1])?v[f[2]]=null:l(t,f[2])&&(v[f[1]]=null),v;if(p===m||!d)return v;if(d>=m)return h;for(var g=0;g=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return lf(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(sr);tP(Us,sr);Sh(Us);Dj(Us);Ij(Us,Yj);function Yj(e){var t=[];return R(Us.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Ne(t,function(r){return Un(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const Mt=Us;var gE="";typeof navigator<"u"&&(gE=navigator.platform||"");var Vo="rgba(0, 0, 0, 0.2)";const jj={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Vo,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Vo,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Vo,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Vo,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Vo,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Vo,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:gE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var mE=je(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),hn="original",Rr="arrayRows",Rn="objectRows",ai="keyedColumns",aa="typedArray",yE="unknown",yi="column",Ys="row",Xt={Must:1,Might:2,Not:3},_E=Et();function qj(e){_E(e).datasetMap=je()}function Kj(e,t,r){var n={},i=N0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=_E(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;e=e.slice(),R(e,function(p,m){var g=Re(p)?p:e[m]={name:p};g.type==="ordinal"&&f==null&&(f=m,c=v(g)),n[g.name]=[]});var h=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});R(e,function(p,m){var g=p.name,y=v(p);if(f==null){var _=h.valueWayDim;d(n[g],_,y),d(o,_,y),h.valueWayDim+=y}else if(f===m)d(n[g],0,y),d(a,0,y);else{var _=h.categoryWayDim;d(n[g],_,y),d(o,_,y),h.categoryWayDim+=y}});function d(p,m,g){for(var y=0;yt)return e[n];return e[r-1]}function tq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var f=o==null||!n?r:eq(n,o);if(f=f||r,!(!f||!f.length)){var c=f[l];return i&&(u[i]=c),s.paletteIdx=(l+1)%f.length,c}}function rq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Jf,ul,SS,xS="\0_ec_inner",nq=1,F0=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new sr(a),this._locale=new sr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=MS(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,MS(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?SS(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&R(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=je(),u=n&&n.replaceMergeMainTypeMap;qj(this),R(r,function(c,h){c!=null&&(Mt.hasClass(h)?h&&(s.push(h),l.set(h,!0)):i[h]=i[h]==null?tt(c):st(i[h],c,!0))}),u&&u.each(function(c,h){Mt.hasClass(h)&&!l.get(h)&&(s.push(h),l.set(h,!0))}),Mt.topologicalTravel(s,Mt.getAllClassMainTypes(),f,this);function f(c){var h=Jj(this,c,pr(r[c])),d=a.get(c),v=d?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=z9(d,h,v);q9(p,c,Mt),i[c]=null,a.set(c,null),o.set(c,0);var m=[],g=[],y=0,_;R(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=c==="series",M=Mt.getClass(c,b.keyInfo.subType,!C);if(!M)return;if(c==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var A=ue({componentIndex:x},b.keyInfo);w=new M(S,this,this,A),ue(w,A),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(m.push(w.option),g.push(w),y++):(m.push(void 0),g.push(void 0))},this),i[c]=m,a.set(c,g),o.set(c,y),c==="series"&&Jf(this)}this._seriesIndices||Jf(this)},t.prototype.getOption=function(){var r=tt(this.option);return R(r,function(n,i){if(Mt.hasClass(i)){for(var a=pr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Lu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[xS],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function hq(e,t){return e.join(",")===t.join(",")}const vq=uq;var vn=R,Bu=Re,AS=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function ap(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=AS.length;r=0;m--){var g=e[m];if(s||(v=g.data.rawIndexOf(g.stackedByDimension,d)),v>=0){var y=g.data.getByRawIndex(g.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&h>=0&&y>0||l==="samesign"&&h<=0&&y<0){h=k9(h,y),p=y;break}}}return n[0]=h,n[1]=p,n})})}var kh=function(){function e(t){this.data=t.data||(t.sourceFormat===ai?{}:[]),this.sourceFormat=t.sourceFormat||yE,this.seriesLayoutBy=t.seriesLayoutBy||yi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}d[0]=v,d[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};RS=(t={},t[Rr+"_"+yi]={pure:!0,appendData:a},t[Rr+"_"+Ys]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Rn]={pure:!0,appendData:a},t[ai]={pure:!0,appendData:function(o){var s=this._data;R(o,function(l,u){for(var f=s[u]||(s[u]=[]),c=0;c<(l||[]).length;c++)f.push(l[c])})}},t[hn]={appendData:a},t[aa]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[m])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Is(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function FS(e){var t,r;return Re(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function nu(e){return new Iq(e)}var Iq=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function f(y){return!(y>=1)&&(y=1),y}var c;(this._dirty||a==="reset")&&(this._dirty=!1,c=this._doReset(n)),this._modBy=l,this._modDataCount=u;var h=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,v=Math.min(h!=null?this._dueIndex+h:1/0,this._dueEnd);if(!n&&(c||d1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),Rq=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Kc(t,r)},e}();function kq(e,t){var r=new Rq,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==yi&&Cr(o);var s=[],l={},u=e.dimensionsDefine;if(u)R(u,function(p,m){var g=p.name,y={index:m,name:g,displayName:p.displayName};if(s.push(y),g!=null){var _="";Es(l,g)&&Cr(_),l[g]=y}});else for(var f=0;f65535?Wq:Gq}function Wo(){return[1/0,-1/0]}function Uq(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function zS(e,t,r,n,i){var a=OE[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;um[1]&&(m[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Ne(o,function(y){return y.property}),f=0;fg[1]&&(g[1]=m)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,f=0,c=this.count();f=0&&l<0)&&(s=v,l=d,u=0),d===l&&(o[u++]=f))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=c&&y<=h||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var m=d[i[0]],_=d[i[1]],b=t[i[1]][0],x=t[i[1]][1],g=0;g=c&&y<=h||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var g=0;g=c&&y<=h||isNaN(y))&&(l[u++]=S)}else for(var g=0;gt[A][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(g))}return ug[1]&&(g[1]=m)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),f,c,h,d=new(cl(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));d[s++]=u;for(var v=1;vf&&(f=c,h=b)}P>0&&Pf-v&&(l=f-v,s.length=l);for(var p=0;pc[1]&&(c[1]=g),h[d++]=y}return a._count=d,a._indices=h,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=c)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Kc(r[a],this._dimensions[a])}lp={arrayRows:t,objectRows:function(r,n,i,a){return Kc(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Kc(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),Yq=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(ec(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var f=r[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,a=[f._getVersionSign()]}else s=o.get("data",!0),l=Gr(s)?aa:hn,a=[];var c=this._getSourceMetaRawOption()||{},h=u&&u.metaRawOption||{},d=Ze(c.seriesLayoutBy,h.seriesLayoutBy)||null,v=Ze(c.sourceHeader,h.sourceHeader),p=Ze(c.dimensions,h.dimensions),m=d!==h.seriesLayoutBy||!!v!=!!h.sourceHeader||p;i=m?[gm(s,{seriesLayoutBy:d,sourceHeader:v,dimensions:p},l)]:[]}else{var g=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=g.get("source",!0);i=[gm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&VS(a)}var o,s=[],l=[];return R(t,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&VS(c),s.push(f),l.push(u._getVersionSign())}),n?o=zq(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[Cq(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;rr:i+f+d>r){f?(s||l)&&(v?(s||(s=l,l="",u=0,f=u),a.push(s),o.push(f-u),l+=h,u+=d,s="",f=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(f),s=h,f=d)):v?(a.push(l),o.push(u),l=h,u=d):(a.push(h),o.push(d));continue}f+=d,v?(l+=h,u+=d):(l&&(s+=l,l="",u=0),s+=h)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(f)),a.length===1&&(f+=i),{accumWidth:f,lines:a,linesWidths:o}}var rm="__zr_style_"+Math.round(Math.random()*10),fo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},Ch={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};fo[rm]=!0;var Iw=["z","z2","invisible"],w7=["invisible"],S7=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Ct(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Wf[0]=Wv(i)*r+e,Wf[1]=Vv(i)*n+t,Gf[0]=Wv(a)*r+e,Gf[1]=Vv(a)*n+t,u(s,Wf,Gf),f(l,Wf,Gf),i=i%Pa,i<0&&(i=i+Pa),a=a%Pa,a<0&&(a=a+Pa),i>a&&!o?a+=Pa:ii&&(Uf[0]=Wv(d)*r+e,Uf[1]=Vv(d)*n+t,u(s,Uf,s),f(l,Uf,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ea=[],La=[],Nn=[],ki=[],Bn=[],Fn=[],Gv=Math.min,Uv=Math.max,Da=Math.cos,Ia=Math.sin,ui=Math.abs,nm=Math.PI,Gi=nm*2,Yv=typeof Float32Array<"u",ol=[];function jv(e){var t=Math.round(e/nm*1e8)/1e8;return t%2*nm}function A7(e,t){var r=jv(e[0]);r<0&&(r+=Gi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=Gi?i=r+Gi:t&&r-i>=Gi?i=r-Gi:!t&&r>i?i=r+(Gi-jv(r-i)):t&&r0&&(this._ux=ui(n/Td/t)||0,this._uy=ui(n/Td/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=ui(t-this._xi),i=ui(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),ol[0]=i,ol[1]=a,A7(ol,o),i=ol[0],a=ol[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Da(a)*n+t,this._yi=Ia(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Yv&&(this.data=new Float32Array(r));for(var n=0;nf.length&&(this._expandData(),f=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Nn[0]=Nn[1]=Bn[0]=Bn[1]=Number.MAX_VALUE,ki[0]=ki[1]=Fn[0]=Fn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||ui(_)>i||h===r-1)&&(p=Math.sqrt(y*y+_*_),a=m,o=g);break}case at.C:{var b=t[h++],x=t[h++],m=t[h++],g=t[h++],w=t[h++],S=t[h++];p=XU(a,o,b,x,m,g,w,S,10),a=w,o=S;break}case at.Q:{var b=t[h++],x=t[h++],m=t[h++],g=t[h++];p=QU(a,o,b,x,m,g,10),a=m,o=g;break}case at.A:var C=t[h++],M=t[h++],A=t[h++],P=t[h++],E=t[h++],L=t[h++],O=L+E;h+=1,t[h++],v&&(s=Da(E)*A+C,l=Ia(E)*P+M),p=Uv(A,P)*Gv(Gi,Math.abs(L)),a=Da(O)*A+C,o=Ia(O)*P+M;break;case at.R:{s=a=t[h++],l=o=t[h++];var N=t[h++],H=t[h++];p=N*2+H*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[c++]=p,f+=p)}return this._pathLen=f,f},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,f,c,h,d=r<1,v,p,m=0,g=0,y,_=0,b,x;if(!(d&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y)))e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case at.M:s=u=n[w++],l=f=n[w++],t.moveTo(u,f);break;case at.L:{c=n[w++],h=n[w++];var M=ui(c-u),A=ui(h-f);if(M>i||A>a){if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;t.lineTo(u*(1-E)+c*E,f*(1-E)+h*E);break e}m+=P}t.lineTo(c,h),u=c,f=h,_=0}else{var L=M*M+A*A;L>_&&(b=c,x=h,_=L)}break}case at.C:{var O=n[w++],N=n[w++],H=n[w++],V=n[w++],U=n[w++],F=n[w++];if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;Sd(u,O,H,U,E,Ea),Sd(f,N,V,F,E,La),t.bezierCurveTo(Ea[1],La[1],Ea[2],La[2],Ea[3],La[3]);break e}m+=P}t.bezierCurveTo(O,N,H,V,U,F),u=U,f=F;break}case at.Q:{var O=n[w++],N=n[w++],H=n[w++],V=n[w++];if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;xd(u,O,H,E,Ea),xd(f,N,V,E,La),t.quadraticCurveTo(Ea[1],La[1],Ea[2],La[2]);break e}m+=P}t.quadraticCurveTo(O,N,H,V),u=H,f=V;break}case at.A:var z=n[w++],ee=n[w++],J=n[w++],me=n[w++],we=n[w++],$e=n[w++],Ie=n[w++],B=!n[w++],Y=J>me?J:me,K=ui(J-me)>.001,Q=we+$e,oe=!1;if(d){var P=v[g++];m+P>y&&(Q=we+$e*(y-m)/P,oe=!0),m+=P}if(K&&t.ellipse?t.ellipse(z,ee,J,me,Ie,we,Q,B):t.arc(z,ee,Y,we,Q,B),oe)break e;C&&(s=Da(we)*J+z,l=Ia(we)*me+ee),u=Da(Q)*J+z,f=Ia(Q)*me+ee;break;case at.R:s=u=n[w],l=f=n[w+1],c=n[w++],h=n[w++];var pe=n[w++],D=n[w++];if(d){var P=v[g++];if(m+P>y){var I=y-m;t.moveTo(c,h),t.lineTo(c+Gv(I,pe),h),I-=pe,I>0&&t.lineTo(c+pe,h+Gv(I,D)),I-=D,I>0&&t.lineTo(c+Uv(pe-I,0),h+D),I-=pe,I>0&&t.lineTo(c,h+Uv(D-I,0));break e}m+=P}t.rect(c,h,pe,D);break;case at.Z:if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;t.lineTo(u*(1-E)+s*E,f*(1-E)+l*E);break e}m+=P}t.closePath(),u=s,f=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();function Ho(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+c&&f>n+c&&f>a+c&&f>s+c||fe+c&&u>r+c&&u>i+c&&u>o+c||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||f+ui&&(i+=sl);var h=Math.atan2(l,s);return h<0&&(h+=sl),h>=n&&h<=i||h+sl>=n&&h+sl<=i}function Oa(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ni=bo.CMD,Ra=Math.PI*2,D7=1e-4;function I7(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&O7(),d=Zt(t,n,a,s,en[0]),h>1&&(v=Zt(t,n,a,s,en[1]))),h===2?mt&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=ir(t,n,a,u),h=0;hr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);cr[0]=-l,cr[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Ra-1e-4){n=0,i=Ra;var f=a?1:-1;return o>=cr[0]+e&&o<=cr[1]+e?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=Ra,i+=Ra);for(var h=0,d=0;d<2;d++){var v=cr[d];if(v+e>o){var p=Math.atan2(s,v),f=a?1:-1;p<0&&(p=Ra+p),(p>=n&&p<=i||p+Ra>=n&&p+Ra<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Oa(l,u,f,c,n,i))),m&&(l=a[v],u=a[v+1],f=l,c=u),p){case Ni.M:f=a[v++],c=a[v++],l=f,u=c;break;case Ni.L:if(r){if(Ho(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Oa(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.C:if(r){if(P7(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=R7(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.Q:if(r){if(E7(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=k7(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.A:var g=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);h=Math.cos(x)*_+g,d=Math.sin(x)*b+y,m?(f=h,c=d):s+=Oa(l,u,h,d,n,i);var C=(n-g)*b/_+g;if(r){if(L7(g,y,b,x,x+w,S,t,C,i))return!0}else s+=N7(g,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+g,u=Math.sin(x+w)*b+y;break;case Ni.R:f=l=a[v++],c=u=a[v++];var M=a[v++],A=a[v++];if(h=f+M,d=c+A,r){if(Ho(f,c,h,c,t,n,i)||Ho(h,c,h,d,t,n,i)||Ho(h,d,f,d,t,n,i)||Ho(f,d,f,c,t,n,i))return!0}else s+=Oa(h,c,h,d,n,i),s+=Oa(f,d,f,c,n,i);break;case Ni.Z:if(r){if(Ho(l,u,f,c,t,n,i))return!0}else s+=Oa(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!I7(u,c)&&(s+=Oa(l,u,f,c,n,i)||0),s!==0}function B7(e,t,r){return oP(e,0,!1,t,r)}function F7(e,t,r,n){return oP(e,t,!0,r,n)}var sP=ht({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},fo),$7={style:ht({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},Ch.style)},qv=Eu.concat(["invisible","culling","z","z2","zlevel","parent"]),H7=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Zg:n>.2?_9:Qg}else if(r)return Qg}return Zg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Ee(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Cd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Qo)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),F7(s,l/u,r,n)))return!0}if(this.hasFill())return B7(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Qo,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:ue(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Qo)},t.prototype.createStyle=function(r){return _h(sP,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=ue({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=ue({},i.shape),ue(u,n.shape)):(u=ue({},a?this.shape:i.shape),ue(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=ue({},this.shape);for(var f={},c=Ct(u),h=0;h0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return _h(z7,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=u0(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(uf);lP.prototype.type="tspan";const im=lP;var V7=ht({x:0,y:0},fo),W7={style:ht({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},Ch.style)};function G7(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var uP=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return _h(V7,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=G7(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return W7},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new nt(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(uf);uP.prototype.type="image";const Ys=uP;function U7(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,f;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var c;s+l>i&&(c=s+l,s*=i/c,l*=i/c),u+f>i&&(c=u+f,u*=i/c,f*=i/c),l+u>a&&(c=l+u,l*=a/c,u*=a/c),s+f>a&&(c=s+f,s*=a/c,f*=a/c),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+f,n+a),f!==0&&e.arc(r+f,n+a-f,f,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var is=Math.round;function fP(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(is(n*2)===is(i*2)&&(e.x1=e.x2=to(n,s,!0)),is(a*2)===is(o*2)&&(e.y1=e.y2=to(a,s,!0))),e}}function cP(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=to(n,s,!0),e.y=to(i,s,!0),e.width=Math.max(to(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(to(i+o,s,!1)-e.y,o===0?0:1)),e}}function to(e,t,r){if(!t)return e;var n=is(e*2);return(n+is(t))%2===0?n/2:(n+(r?1:-1))/2}var Y7=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),j7={},dP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Y7},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=cP(j7,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?U7(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(vt);dP.prototype.type="rect";const Gt=dP;var Bw={fill:"#000"},Fw=2,q7={style:ht({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},Ch.style)},hP=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Bw,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,E=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),L=o.calculatedLineHeight,O=0;O=0&&(O=w[L],O.align==="right");)this._placeToken(O,r,C,g,E,"right",_),M-=O.width,E-=O.width,L--;for(P+=(a-(P-m)-(y-E)-M)/2;A<=L;)O=w[A],this._placeToken(O,r,C,g,P+O.width/2,"center",_),P+=O.width,A++;g+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var f=r.verticalAlign,c=a+i/2;f==="top"?c=a+r.height/2:f==="bottom"&&(c=a+i-r.height/2);var h=!r.isLineHolder&&Kv(u);h&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,c-r.height/2,r.width,r.height);var d=!!u.backgroundColor,v=r.textPadding;v&&(o=Gw(o,s,v),c-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(im),m=p.createStyle();p.useStyle(m);var g=this._defaultStyle,y=!1,_=0,b=Ww("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,g.fill)),x=Vw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!d&&!l&&(!g.autoStroke||y)?(_=Fw,g.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;m.text=r.text,m.x=o,m.y=c,w&&(m.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,m.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",m.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,m.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),m.textAlign=s,m.textBaseline="middle",m.font=r.font||_o,m.opacity=Yl(u.opacity,n.opacity,1),Hw(m,u),x&&(m.lineWidth=Yl(u.lineWidth,n.lineWidth,_),m.lineDash=Ze(u.lineDash,n.lineDash),m.lineDashOffset=n.lineDashOffset||0,m.stroke=x),b&&(m.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new nt(Ml(m.x,S,m.textAlign),Jo(m.y,C,m.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,h=l&&!c,d=r.borderRadius,v=this,p,m;if(h||r.lineHeight||u&&f){p=this._getOrCreateChild(Gt),p.useStyle(p.createStyle()),p.style.fill=null;var g=p.shape;g.x=i,g.y=a,g.width=o,g.height=s,g.r=d,p.dirtyShape()}if(h){var y=p.style;y.fill=l||null,y.fillOpacity=Ze(r.fillOpacity,1)}else if(c){m=this._getOrCreateChild(Ys),m.onload=function(){v.dirtyStyle()};var _=m.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&f){var y=p.style;y.lineWidth=u,y.stroke=f,y.strokeOpacity=Ze(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||m).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=Yl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return Q7(r)&&(n=[r.fontStyle,r.fontWeight,Z7(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Gn(n)||r.textFont||r.font},t}(uf),K7={left:!0,right:1,center:1},X7={top:1,bottom:1,middle:1},$w=["fontStyle","fontWeight","fontSize","fontFamily"];function Z7(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?Jy+"px":e+"px"}function Hw(e,t){for(var r=0;r<$w.length;r++){var n=$w[r],i=t[n];i!=null&&(e[n]=i)}}function Q7(e){return e.fontSize!=null||e.fontFamily||e.fontWeight}function J7(e){return zw(e),R(e.rich,zw),e}function zw(e){if(e){e.font=hP.makeFont(e);var t=e.align;t==="middle"&&(t="center"),e.align=t==null||K7[t]?t:"left";var r=e.verticalAlign;r==="center"&&(r="middle"),e.verticalAlign=r==null||X7[r]?r:"top";var n=e.padding;n&&(e.padding=_2(e.padding))}}function Vw(e,t){return e==null||t<=0||e==="transparent"||e==="none"?null:e.image||e.colorStops?"#000":e}function Ww(e){return e==null||e==="none"?null:e.image||e.colorStops?"#000":e}function Gw(e,t,r){return t==="right"?e-r[1]:t==="center"?e+r[3]/2-r[1]/2:e+r[3]}function Uw(e){var t=e.text;return t!=null&&(t+=""),t}function Kv(e){return!!(e.backgroundColor||e.lineHeight||e.borderWidth&&e.borderColor)}const mr=hP;var dt=Et(),eY=function(e,t,r,n){if(n){var i=dt(n);i.dataIndex=r,i.dataType=t,i.seriesIndex=e,n.type==="group"&&n.traverse(function(a){var o=dt(a);o.seriesIndex=e,o.dataIndex=r,o.dataType=t})}},Yw=1,jw={},vP=Et(),g0=Et(),pP=0,m0=1,y0=2,Jn=["emphasis","blur","select"],Ed=["normal","emphasis","blur","select"],tY=10,rY=9,co="highlight",Uc="downplay",Ql="select",Yc="unselect",Jl="toggleSelect";function zo(e){return e!=null&&e!=="none"}var qw=new af(100);function Kw(e){if(Ee(e)){var t=qw.get(e);return t||(t=vw(e,-.1),qw.put(e,t)),t}else if(yh(e)){var r=ue({},e);return r.colorStops=Ne(e.colorStops,function(n){return{offset:n.offset,color:vw(n.color,-.1)}}),r}return e}function Th(e,t,r){e.onHoverStateChange&&(e.hoverState||0)!==r&&e.onHoverStateChange(t),e.hoverState=r}function gP(e){Th(e,"emphasis",y0)}function mP(e){e.hoverState===y0&&Th(e,"normal",pP)}function _0(e){Th(e,"blur",m0)}function yP(e){e.hoverState===m0&&Th(e,"normal",pP)}function nY(e){e.selected=!0}function iY(e){e.selected=!1}function Xw(e,t,r){t(e,r)}function Li(e,t,r){Xw(e,t,r),e.isGroup&&e.traverse(function(n){Xw(n,t,r)})}function aY(e,t,r,n){for(var i=e.style,a={},o=0;o=0,a=!1;if(e instanceof vt){var o=vP(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(zo(s)||zo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=ue({},n),u=ue({},u),u.fill=s):!zo(u.fill)&&zo(s)?(a=!0,n=ue({},n),u=ue({},u),u.fill=Kw(s)):!zo(u.stroke)&&zo(l)&&(a||(n=ue({},n),u=ue({},u)),u.stroke=Kw(l)),n.style=u}}if(n&&n.z2==null){a||(n=ue({},n));var f=e.z2EmphasisLift;n.z2=e.z2+(f??tY)}return n}function sY(e,t,r){if(r&&r.z2==null){r=ue({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??rY)}return r}function lY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:aY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=ue({},r),o=ue({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Xv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return oY(this,e,t,r);if(e==="blur")return lY(this,e,r);if(e==="select")return sY(this,e,r)}return r}function uY(e){e.stateProxy=Xv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Xv),r&&(r.stateProxy=Xv)}function Zw(e,t){!SP(e,t)&&!e.__highByOuter&&Li(e,gP)}function Qw(e,t){!SP(e,t)&&!e.__highByOuter&&Li(e,mP)}function am(e,t){e.__highByOuter|=1<<(t||0),Li(e,gP)}function om(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Li(e,mP)}function fY(e){Li(e,_0)}function _P(e){Li(e,yP)}function bP(e){Li(e,nY)}function wP(e){Li(e,iY)}function SP(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function xP(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=g0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){yP(u)}),s&&r.push(a)),o.isBlured=!1}),R(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function sm(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,f){for(var c=0;c0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function um(e,t,r){MP(e,!0),Li(e,uY),mY(e,t,r)}function gY(e){MP(e,!1)}function CP(e,t,r,n){n?gY(e):um(e,t,r)}function mY(e,t,r){var n=dt(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var eS=["emphasis","blur","select"],yY={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function TP(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Zv(v),s*=Zv(v));var p=(i===a?-1:1)*Zv((o*o*(s*s)-o*o*(d*d)-s*s*(h*h))/(o*o*(d*d)+s*s*(h*h)))||0,m=p*o*d/s,g=p*-s*h/o,y=(e+r)/2+jf(c)*m-Yf(c)*g,_=(t+n)/2+Yf(c)*m+jf(c)*g,b=iS([1,0],[(h-m)/o,(d-g)/s]),x=[(h-m)/o,(d-g)/s],w=[(-1*h-m)/o,(-1*d-g)/s],S=iS(x,w);if(dm(x,w)<=-1&&(S=ll),dm(x,w)>=1&&(S=0),S<0){var C=Math.round(S/ll*1e6)/1e6;S=ll*2+C%2*ll}f.addData(u,y,_,o,s,b,S,c,a)}var CY=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,TY=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function MY(e){var t=new bo;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=bo.CMD,l=e.match(CY);if(!l)return t;for(var u=0;uO*O+N*N&&(C=A,M=P),{cx:C,cy:M,x0:-f,y0:-c,x1:C*(i/x-1),y1:M*(i/x-1)}}function RY(e){var t;if(ye(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function kY(e,t){var r,n=Al(t.r,0),i=Al(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var f=t.cx,c=t.cy,h=!!t.clockwise,d=oS(u-l),v=d>Qv&&d%Qv;if(v>mn&&(d=v),!(n>mn))e.moveTo(f,c);else if(d>Qv-mn)e.moveTo(f+n*Wo(l),c+n*ka(l)),e.arc(f,c,n,l,u,!h),i>mn&&(e.moveTo(f+i*Wo(u),c+i*ka(u)),e.arc(f,c,i,u,l,h));else{var p=void 0,m=void 0,g=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,M=void 0,A=void 0,P=void 0,E=void 0,L=void 0,O=void 0,N=n*Wo(l),H=n*ka(l),V=i*Wo(u),U=i*ka(u),F=d>mn;if(F){var z=t.cornerRadius;z&&(r=RY(z),p=r[0],m=r[1],g=r[2],y=r[3]);var ee=oS(n-i)/2;if(_=$n(ee,g),b=$n(ee,y),x=$n(ee,p),w=$n(ee,m),M=S=Al(_,b),A=C=Al(x,w),(S>mn||C>mn)&&(P=n*Wo(u),E=n*ka(u),L=i*Wo(l),O=i*ka(l),dmn){var K=$n(g,M),Q=$n(y,M),oe=qf(L,O,N,H,n,K,h),pe=qf(P,E,V,U,n,Q,h);e.moveTo(f+oe.cx+oe.x0,c+oe.cy+oe.y0),M0&&e.arc(f+oe.cx,c+oe.cy,K,rr(oe.y0,oe.x0),rr(oe.y1,oe.x1),!h),e.arc(f,c,n,rr(oe.cy+oe.y1,oe.cx+oe.x1),rr(pe.cy+pe.y1,pe.cx+pe.x1),!h),Q>0&&e.arc(f+pe.cx,c+pe.cy,Q,rr(pe.y1,pe.x1),rr(pe.y0,pe.x0),!h))}else e.moveTo(f+N,c+H),e.arc(f,c,n,l,u,!h);if(!(i>mn)||!F)e.lineTo(f+V,c+U);else if(A>mn){var K=$n(p,A),Q=$n(m,A),oe=qf(V,U,P,E,i,-Q,h),pe=qf(N,H,L,O,i,-K,h);e.lineTo(f+oe.cx+oe.x0,c+oe.cy+oe.y0),A0&&e.arc(f+oe.cx,c+oe.cy,Q,rr(oe.y0,oe.x0),rr(oe.y1,oe.x1),!h),e.arc(f,c,i,rr(oe.cy+oe.y1,oe.cx+oe.x1),rr(pe.cy+pe.y1,pe.cx+pe.x1),h),K>0&&e.arc(f+pe.cx,c+pe.cy,K,rr(pe.y1,pe.x1),rr(pe.y0,pe.x0),!h))}else e.lineTo(f+V,c+U),e.arc(f,c,i,u,l,h)}e.closePath()}}}var NY=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),RP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new NY},t.prototype.buildPath=function(r,n){kY(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(vt);RP.prototype.type="sector";const Eo=RP;var BY=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),kP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new BY},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(vt);kP.prototype.type="ring";const NP=kP;function FY(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,f,c;if(n){f=[1/0,1/0],c=[-1/0,-1/0];for(var h=0,d=e.length;h=2){if(n){var a=FY(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],f=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;sBa[1]){if(s=!1,a)return s;var f=Math.abs(Ba[0]-Na[1]),c=Math.abs(Na[0]-Ba[1]);Math.min(f,c)>i.len()&&(f0){var c=f.duration,h=f.delay,d=f.easing,v={duration:c,delay:h||0,easing:d,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Or(e,t,r,n,i,a){x0("update",e,t,r,n,i,a)}function Wr(e,t,r,n,i,a){x0("enter",e,t,r,n,i,a)}function ds(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function uS(e){return!e.isGroup}function dj(e){return e.shape!=null}function XP(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){uS(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return dj(o)&&(s.shape=ue({},o.shape)),s}var a=n(e);t.traverse(function(o){if(uS(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Or(o,l,r,dt(o).dataIndex)}}})}function hj(e,t){return Ne(e,function(r){var n=r[0];n=Id(n,t.x),n=Od(n,t.x+t.width);var i=r[1];return i=Id(i,t.y),i=Od(i,t.y+t.height),[n,i]})}function vj(e,t){var r=Id(e.x,t.x),n=Od(e.x+e.width,t.x+t.width),i=Id(e.y,t.y),a=Od(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function M0(e,t,r){var n=ue({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),ht(i,r),new Ys(n)):C0(e.replace("path://",""),n,r,"center")}function pj(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var m=Jv(d,v,f,c)/h;return!(m<0||m>1)}function Jv(e,t,r,n){return e*n-r*t}function gj(e){return e<=1e-6&&e>=-1e-6}function A0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Ee(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&R(Ct(l),function(f){Ds(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=dt(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:ht({content:n,formatterParams:s},i)}}function fS(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function P0(e,t){if(e)if(ye(e))for(var r=0;r=0&&s.push(l)}),s}}function rE(e,t){return st(st({},e,!0),t,!0)}const Oj={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},Rj={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Rd="ZH",L0="EN",Ou=L0,jc={},D0={},nE=He.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Rd)>-1?Rd:Ou}():Ou;function iE(e,t){e=e.toUpperCase(),D0[e]=new sr(t),jc[e]=t}function kj(e){if(Ee(e)){var t=jc[e.toUpperCase()]||{};return e===Rd||e===L0?tt(t):st(tt(t),tt(jc[Ou]),!1)}else return st(tt(e),tt(jc[Ou]),!1)}function Nj(e){return D0[e]}function Bj(){return D0[Ou]}iE(L0,Oj);iE(Rd,Rj);var I0=1e3,O0=I0*60,tu=O0*60,on=tu*24,gS=on*365,Pl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Zf="{yyyy}-{MM}-{dd}",mS={year:"{yyyy}",month:"{yyyy}-{MM}",day:Zf,hour:Zf+" "+Pl.hour,minute:Zf+" "+Pl.minute,second:Zf+" "+Pl.second,millisecond:Pl.none},rp=["year","month","day","hour","minute","second","millisecond"],aE=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Bi(e,t){return e+="","0000".substr(0,t-e.length)+e}function hs(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Fj(e){return e===hs(e)}function $j(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Ph(e,t,r,n){var i=Ti(e),a=i[R0(r)](),o=i[vs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[Eh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[Ru(r)](),c=(f-1)%12+1,h=i[Lh(r)](),d=i[Dh(r)](),v=i[Ih(r)](),p=n instanceof sr?n:Nj(n||nE)||Bj(),m=p.getModel("time"),g=m.get("month"),y=m.get("monthAbbr"),_=m.get("dayOfWeek"),b=m.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,Bi(a%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,g[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Bi(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Bi(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Bi(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,Bi(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Bi(h,2)).replace(/{m}/g,h+"").replace(/{ss}/g,Bi(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Bi(v,3)).replace(/{S}/g,v+"")}function Hj(e,t,r,n,i){var a=null;if(Ee(r))a=r;else if(Ye(r))a=r(e.value,t,{level:e.level});else{var o=ue({},Pl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ye(a)){var c=e.level==null?0:e.level>=0?e.level:a.length+e.level;c=Math.min(c,a.length-1),a=a[c]}}return Ph(new Date(e.value),a,i,n)}function oE(e,t){var r=Ti(e),n=r[vs(t)]()+1,i=r[Eh(t)](),a=r[Ru(t)](),o=r[Lh(t)](),s=r[Dh(t)](),l=r[Ih(t)](),u=l===0,f=u&&s===0,c=f&&o===0,h=c&&a===0,d=h&&i===1,v=d&&n===1;return v?"year":d?"month":h?"day":c?"hour":f?"minute":u?"second":"millisecond"}function yS(e,t,r){var n=Tt(e)?Ti(e):e;switch(t=t||oE(e,r),t){case"year":return n[R0(r)]();case"half-year":return n[vs(r)]()>=6?1:0;case"quarter":return Math.floor((n[vs(r)]()+1)/4);case"month":return n[vs(r)]();case"day":return n[Eh(r)]();case"half-day":return n[Ru(r)]()/24;case"hour":return n[Ru(r)]();case"minute":return n[Lh(r)]();case"second":return n[Dh(r)]();case"millisecond":return n[Ih(r)]()}}function R0(e){return e?"getUTCFullYear":"getFullYear"}function vs(e){return e?"getUTCMonth":"getMonth"}function Eh(e){return e?"getUTCDate":"getDate"}function Ru(e){return e?"getUTCHours":"getHours"}function Lh(e){return e?"getUTCMinutes":"getMinutes"}function Dh(e){return e?"getUTCSeconds":"getSeconds"}function Ih(e){return e?"getUTCMilliseconds":"getMilliseconds"}function zj(e){return e?"setUTCFullYear":"setFullYear"}function sE(e){return e?"setUTCMonth":"setMonth"}function lE(e){return e?"setUTCDate":"setDate"}function uE(e){return e?"setUTCHours":"setHours"}function fE(e){return e?"setUTCMinutes":"setMinutes"}function cE(e){return e?"setUTCSeconds":"setSeconds"}function dE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function hE(e){if(!F9(e))return Ee(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function vE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var Oh=_2;function pm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&Gn(f)?f:"-"}function a(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?Ti(e):e;if(isNaN(+l)){if(s)return"-"}else return Ph(l,n,r)}if(t==="ordinal")return kg(e)?i(e):Tt(e)&&a(e)?e+"":"-";var u=Pd(e);return a(u)?hE(u):kg(e)?i(e):typeof e=="boolean"?e+"":"-"}var _S=["a","b","c","d","e","f","g"],np=function(e,t){return"{"+e+(t??"")+"}"};function pE(e,t,r){ye(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function ku(e,t){return t=t||"transparent",Ee(e)?e:Re(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function bS(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var qc=R,Wj=["left","right","top","bottom","width","height"],Qf=[["width","left","right"],["height","top","bottom"]];function k0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var f=l.getBoundingRect(),c=t.childAt(u+1),h=c&&c.getBoundingRect(),d,v;if(e==="horizontal"){var p=f.width+(h?-h.x+f.x:0);d=a+p,d>n||l.newline?(a=0,d=p,o+=s+r,s=f.height):s=Math.max(s,f.height)}else{var m=f.height+(h?-h.y+f.y:0);v=o+m,v>i||l.newline?(a+=s+r,o=0,v=m,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=d+r:o=v+r)})}var ru=k0;Rt(k0,"vertical");Rt(k0,"horizontal");function Is(e,t,r){r=Oh(r||0);var n=t.width,i=t.height,a=yt(e.left,n),o=yt(e.top,i),s=yt(e.right,n),l=yt(e.bottom,i),u=yt(e.width,n),f=yt(e.height,i),c=r[2]+r[0],h=r[1]+r[3],d=e.aspect;switch(isNaN(u)&&(u=n-s-h-a),isNaN(f)&&(f=i-l-c-o),d!=null&&(isNaN(u)&&isNaN(f)&&(d>n/i?u=n*.8:f=i*.8),isNaN(u)&&(u=d*f),isNaN(f)&&(f=u/d)),isNaN(a)&&(a=n-s-u-h),isNaN(o)&&(o=i-l-f-c),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-h;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-f/2-r[0];break;case"bottom":o=i-f-c;break}a=a||0,o=o||0,isNaN(u)&&(u=n-h-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var v=new nt(a+r[3],o+r[0],u,f);return v.margin=r,v}function Nu(e){var t=e.layoutMode||e.constructor.layoutMode;return Re(t)?t:t?{type:t}:null}function Os(e,t,r){var n=r&&r.ignoreSize;!ye(n)&&(n=[n,n]);var i=o(Qf[0],0),a=o(Qf[1],1);u(Qf[0],e,i),u(Qf[1],e,a);function o(f,c){var h={},d=0,v={},p=0,m=2;if(qc(f,function(_){v[_]=e[_]}),qc(f,function(_){s(t,_)&&(h[_]=v[_]=t[_]),l(h,_)&&d++,l(v,_)&&p++}),n[c])return l(t,f[1])?v[f[2]]=null:l(t,f[2])&&(v[f[1]]=null),v;if(p===m||!d)return v;if(d>=m)return h;for(var g=0;g=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return lf(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(sr);tP(js,sr);Sh(js);Dj(js);Ij(js,Yj);function Yj(e){var t=[];return R(js.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Ne(t,function(r){return Un(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const Mt=js;var gE="";typeof navigator<"u"&&(gE=navigator.platform||"");var Go="rgba(0, 0, 0, 0.2)";const jj={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Go,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Go,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Go,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Go,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Go,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Go,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:gE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var mE=je(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),hn="original",Rr="arrayRows",Rn="objectRows",ai="keyedColumns",aa="typedArray",yE="unknown",yi="column",qs="row",Xt={Must:1,Might:2,Not:3},_E=Et();function qj(e){_E(e).datasetMap=je()}function Kj(e,t,r){var n={},i=N0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=_E(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;e=e.slice(),R(e,function(p,m){var g=Re(p)?p:e[m]={name:p};g.type==="ordinal"&&f==null&&(f=m,c=v(g)),n[g.name]=[]});var h=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});R(e,function(p,m){var g=p.name,y=v(p);if(f==null){var _=h.valueWayDim;d(n[g],_,y),d(o,_,y),h.valueWayDim+=y}else if(f===m)d(n[g],0,y),d(a,0,y);else{var _=h.categoryWayDim;d(n[g],_,y),d(o,_,y),h.categoryWayDim+=y}});function d(p,m,g){for(var y=0;yt)return e[n];return e[r-1]}function tq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var f=o==null||!n?r:eq(n,o);if(f=f||r,!(!f||!f.length)){var c=f[l];return i&&(u[i]=c),s.paletteIdx=(l+1)%f.length,c}}function rq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Jf,ul,SS,xS="\0_ec_inner",nq=1,F0=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new sr(a),this._locale=new sr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=MS(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,MS(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?SS(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&R(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=je(),u=n&&n.replaceMergeMainTypeMap;qj(this),R(r,function(c,h){c!=null&&(Mt.hasClass(h)?h&&(s.push(h),l.set(h,!0)):i[h]=i[h]==null?tt(c):st(i[h],c,!0))}),u&&u.each(function(c,h){Mt.hasClass(h)&&!l.get(h)&&(s.push(h),l.set(h,!0))}),Mt.topologicalTravel(s,Mt.getAllClassMainTypes(),f,this);function f(c){var h=Jj(this,c,pr(r[c])),d=a.get(c),v=d?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=z9(d,h,v);q9(p,c,Mt),i[c]=null,a.set(c,null),o.set(c,0);var m=[],g=[],y=0,_;R(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=c==="series",M=Mt.getClass(c,b.keyInfo.subType,!C);if(!M)return;if(c==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var A=ue({componentIndex:x},b.keyInfo);w=new M(S,this,this,A),ue(w,A),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(m.push(w.option),g.push(w),y++):(m.push(void 0),g.push(void 0))},this),i[c]=m,a.set(c,g),o.set(c,y),c==="series"&&Jf(this)}this._seriesIndices||Jf(this)},t.prototype.getOption=function(){var r=tt(this.option);return R(r,function(n,i){if(Mt.hasClass(i)){for(var a=pr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Lu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[xS],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function hq(e,t){return e.join(",")===t.join(",")}const vq=uq;var vn=R,Bu=Re,AS=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function ap(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=AS.length;r=0;m--){var g=e[m];if(s||(v=g.data.rawIndexOf(g.stackedByDimension,d)),v>=0){var y=g.data.getByRawIndex(g.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&h>=0&&y>0||l==="samesign"&&h<=0&&y<0){h=k9(h,y),p=y;break}}}return n[0]=h,n[1]=p,n})})}var kh=function(){function e(t){this.data=t.data||(t.sourceFormat===ai?{}:[]),this.sourceFormat=t.sourceFormat||yE,this.seriesLayoutBy=t.seriesLayoutBy||yi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}d[0]=v,d[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};RS=(t={},t[Rr+"_"+yi]={pure:!0,appendData:a},t[Rr+"_"+qs]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Rn]={pure:!0,appendData:a},t[ai]={pure:!0,appendData:function(o){var s=this._data;R(o,function(l,u){for(var f=s[u]||(s[u]=[]),c=0;c<(l||[]).length;c++)f.push(l[c])})}},t[hn]={appendData:a},t[aa]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[m])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Rs(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function FS(e){var t,r;return Re(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function nu(e){return new Iq(e)}var Iq=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function f(y){return!(y>=1)&&(y=1),y}var c;(this._dirty||a==="reset")&&(this._dirty=!1,c=this._doReset(n)),this._modBy=l,this._modDataCount=u;var h=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,v=Math.min(h!=null?this._dueIndex+h:1/0,this._dueEnd);if(!n&&(c||d1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),Rq=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Kc(t,r)},e}();function kq(e,t){var r=new Rq,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==yi&&Cr(o);var s=[],l={},u=e.dimensionsDefine;if(u)R(u,function(p,m){var g=p.name,y={index:m,name:g,displayName:p.displayName};if(s.push(y),g!=null){var _="";Ds(l,g)&&Cr(_),l[g]=y}});else for(var f=0;f65535?Wq:Gq}function Uo(){return[1/0,-1/0]}function Uq(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function zS(e,t,r,n,i){var a=OE[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;um[1]&&(m[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Ne(o,function(y){return y.property}),f=0;fg[1]&&(g[1]=m)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,f=0,c=this.count();f=0&&l<0)&&(s=v,l=d,u=0),d===l&&(o[u++]=f))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=c&&y<=h||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var m=d[i[0]],_=d[i[1]],b=t[i[1]][0],x=t[i[1]][1],g=0;g=c&&y<=h||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var g=0;g=c&&y<=h||isNaN(y))&&(l[u++]=S)}else for(var g=0;gt[A][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(g))}return ug[1]&&(g[1]=m)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),f,c,h,d=new(cl(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));d[s++]=u;for(var v=1;vf&&(f=c,h=b)}P>0&&Pf-v&&(l=f-v,s.length=l);for(var p=0;pc[1]&&(c[1]=g),h[d++]=y}return a._count=d,a._indices=h,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=c)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Kc(r[a],this._dimensions[a])}lp={arrayRows:t,objectRows:function(r,n,i,a){return Kc(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Kc(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),Yq=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(ec(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var f=r[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,a=[f._getVersionSign()]}else s=o.get("data",!0),l=Gr(s)?aa:hn,a=[];var c=this._getSourceMetaRawOption()||{},h=u&&u.metaRawOption||{},d=Ze(c.seriesLayoutBy,h.seriesLayoutBy)||null,v=Ze(c.sourceHeader,h.sourceHeader),p=Ze(c.dimensions,h.dimensions),m=d!==h.seriesLayoutBy||!!v!=!!h.sourceHeader||p;i=m?[gm(s,{seriesLayoutBy:d,sourceHeader:v,dimensions:p},l)]:[]}else{var g=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=g.get("source",!0);i=[gm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&VS(a)}var o,s=[],l=[];return R(t,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&VS(c),s.push(f),l.push(u._getVersionSign())}),n?o=zq(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[Cq(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return R(e.blocks,function(i){var a=BE(i);a>=t&&(t=a+ +(n&&(!a||ym(i)&&!i.noHeader)))}),t}return 0}function Kq(e,t,r,n){var i=t.noHeader,a=Zq(BE(t)),o=[],s=t.blocks||[];Ci(!s||ye(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Es(u,l)){var f=new Oq(u[l],null);s.sort(function(v,p){return f.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(v,p){var m=t.valueFormatter,g=NE(v)(m?ue(ue({},e),{valueFormatter:m}):e,v,p>0?a.html:0,n);g!=null&&o.push(g)});var c=e.renderMode==="richText"?o.join(a.richText):_m(o.join(""),i?r:a.html);if(i)return c;var h=pm(t.header,"ordinal",e.useUTC),d=kE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?FE(e,h,d)+a.richText+c:_m('
'+tn(h)+"
"+c,r)}function Xq(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,f=t.valueFormatter||e.valueFormatter||function(b){return b=ye(b)?b:[b],Ne(b,function(x,w){return pm(x,ye(d)?d[w]:d,u)})};if(!(a&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),h=a?"":pm(l,"ordinal",u),d=t.valueType,v=o?[]:f(t.value),p=!s||!a,m=!s&&a,g=kE(n,i),y=g.nameStyle,_=g.valueStyle;return i==="richText"?(s?"":c)+(a?"":FE(e,h,y))+(o?"":eK(e,v,p,m,_)):_m((s?"":c)+(a?"":Qq(h,!s,y))+(o?"":Jq(v,p,m,_)),r)}}function WS(e,t,r,n,i,a){if(e){var o=NE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function Zq(e){return{html:jq[e],richText:qq[e]}}function _m(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function Qq(e,t,r){var n=t?"margin-left:2px":"";return''+tn(e)+""}function Jq(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ye(e)?e:[e],''+Ne(e,function(o){return tn(o)}).join("  ")+""}function FE(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function eK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ye(t)?t.join(" "):t,a)}function tK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return ku(n)}function $E(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var up=function(){function e(){this.richTextStyles={},this._nextStyleNameId=K2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Vj({color:r,type:t,renderMode:n,markerId:i});return Ee(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ye(r)?R(r,function(a){return ue(n,a)}):ue(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function rK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ye(s),u=tK(t,r),f,c,h,d;if(o>1||l&&!o){var v=nK(s,t,r,a,u);f=v.inlineValues,c=v.inlineValueTypes,h=v.blocks,d=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);d=f=Is(i,r,a[0]),c=p.type}else d=f=l?s[0]:s;var m=h0(t),g=m&&t.name||"",y=i.getName(r),_=n?g:y;return Fu("section",{header:g,noHeader:n||!m,sortParam:d,blocks:[Fu("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Gn(_),value:f,valueType:c})].concat(h||[])})}function nK(e,t,r,n,i){var a=t.getData(),o=ca(e,function(c,h,d){var v=a.getDimensionInfo(d);return c=c||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(c){f(Is(a,r,c),c)}):R(e,f);function f(c,h){var d=a.getDimensionInfo(h);!d||d.otherDims.tooltip===!1||(o?u.push(Fu("nameValue",{markerType:"subItem",markerColor:i,name:d.displayName,value:c,valueType:d.type})):(s.push(c),l.push(d.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Fi=Et();function tc(e,t){return e.getName(t)||e.getId(t)}var iK="__universalTransitionEnabled",Bh=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=nu({count:oK,reset:sK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=Fi(this).sourceManager=new Yq(this);a.prepareSource();var o=this.getInitialData(r,i);US(o,this),this.dataTask.context.data=o,Fi(this).dataBeforeProcessed=o,GS(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Nu(this),a=i?Rh(r):{},o=this.subType;Mt.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),em(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Ds(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Nu(this);i&&Ds(this.option,r,i);var a=Fi(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);US(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Fi(this).dataBeforeProcessed=o,GS(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!Gr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=B0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[tc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[iK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Re(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(r,n)}},t.registerClass=function(r){return Mt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(Mt);ni(Bh,Dq);ni(Bh,B0);tP(Bh,Mt);function GS(e){var t=e.name;h0(e)||(e.name=aK(e)||t)}function aK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return R(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function oK(e){return e.model.getRawData().count()}function sK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),lK}function lK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function US(e,t){R(vU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Ot(uK,t))})}function uK(e,t){var r=bm(e);return r&&r.setOutputEnd((t||this).count()),t}function bm(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const So=Bh;var G0=function(){function e(){this.group=new Ur,this.uid=Ah("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();p0(G0);Sh(G0);const Mi=G0;function HE(){var e=Et();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var zE=Et(),fK=HE(),U0=function(){function e(){this.group=new Ur,this.uid=Ah("viewChart"),this.renderTask=nu({plan:cK,reset:dK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&jS(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&jS(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){P0(this.group,t)},e.markUpdateMethod=function(t,r){zE(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function YS(e,t,r){e&&fm(e)&&(t==="emphasis"?am:om)(e,r)}function jS(e,t,r){var n=sf(e,t),i=t&&t.highlightKey!=null?_Y(t.highlightKey):null;n!=null?R(pr(n),function(a){YS(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){YS(a,r,i)})}p0(U0);Sh(U0);function cK(e){return fK(e.model)}function dK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&zE(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),hK[l]}var hK={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const ho=U0;var kd="\0__throttleOriginMethod",qS="\0__throttleRate",KS="\0__throttleType";function Y0(e,t,r){var n,i=0,a=0,o=null,s,l,u,f;t=t||0;function c(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var h=function(){for(var d=[],v=0;v=0?c():o=setTimeout(c,-s),i=n};return h.clear=function(){o&&(clearTimeout(o),o=null)},h.debounceNextCall=function(d){f=d},h}function VE(e,t,r,n){var i=e[t];if(i){var a=i[kd]||i,o=i[KS],s=i[qS];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=Y0(a,r,n==="debounce"),i[kd]=a,i[KS]=n,i[qS]=r}return i}}function wm(e,t){var r=e[t];r&&r[kd]&&(r.clear&&r.clear(),e[t]=r[kd])}var XS=Et(),ZS={itemStyle:Du(tE,!0),lineStyle:Du(eE,!0)},vK={lineStyle:"stroke",itemStyle:"fill"};function WE(e,t){var r=e.visualStyleMapper||ZS[t];return r||(console.warn("Unknown style type '"+t+"'."),ZS.itemStyle)}function GE(e,t){var r=e.visualDrawType||vK[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var pK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=WE(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=GE(e,n),u=o[l],f=Ye(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var h=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=h,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ye(o.fill)?h:o.fill,o.stroke=o.stroke==="auto"||Ye(o.stroke)?h:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(d,v){var p=e.getDataParams(v),m=ue({},o);m[l]=f(p),d.setItemVisual(v,"style",m)}}}},dl=new sr,gK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=WE(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){dl.option=l[n];var u=i(dl),f=o.ensureUniqueItemVisual(s,"style");ue(f,u),dl.option.decal&&(o.setItemVisual(s,"decal",dl.option.decal),dl.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},mK={performRawSeries:!0,overallReset:function(e){var t=je();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),XS(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=XS(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=GE(r,s);a.each(function(u){var f=a.getRawIndex(u);i[f]=u}),n.each(function(u){var f=i[u],c=a.getItemVisual(f,"colorFromPalette");if(c){var h=a.ensureUniqueItemVisual(f,"style"),d=n.getName(u)||u+"",v=n.count();h[l]=r.getColorFromPalette(d,o,v)}})}})}},rc=Math.PI;function yK(e,t){t=t||{},ht(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new Ur,n=new Gt({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new mr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Gt({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new S0({shape:{startAngle:-rc/2,endAngle:-rc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:rc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:rc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),f=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:f}),a.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var UE=function(){function e(t,r,n,i){this._stageTaskMap=je(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=je();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;R(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";Ci(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;R(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,h=f.overallTask;if(h){var d,v=h.agentStubMap;v.each(function(m){s(i,m)&&(m.dirty(),d=!0)}),d&&h.dirty(),o.updatePayload(h,n);var p=o.getPerformArgs(h,i.block);v.each(function(m){m.perform(p)}),h.perform(p)&&(a=!0)}else c&&c.each(function(m,g){s(i,m)&&m.dirty();var y=o.getPerformArgs(m,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(m.context.model),o.updatePayload(m,n),m.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=je(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(f):l?n.eachRawSeriesByType(l,f):u&&u(n,i).each(f);function f(c){var h=c.uid,d=s.set(h,o&&o.get(h)||nu({plan:xK,reset:CK,count:MK}));d.context={model:c,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(c,d)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||nu({reset:_K});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=je(),u=t.seriesType,f=t.getTargetSeries,c=!0,h=!1,d="";Ci(!t.createOnAllSeries,d),u?n.eachRawSeriesByType(u,v):f?f(n,i).each(v):(c=!1,R(n.getSeries(),v));function v(p){var m=p.uid,g=l.set(m,s&&s.get(m)||(h=!0,nu({reset:bK,onDirty:SK})));g.context={model:p,overallProgress:c},g.agent=o,g.__block=c,a._pipe(p,g)}h&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ye(t)&&(t={overallReset:t,seriesType:AK(t)}),t.uid=Ah("stageHandler"),r&&(t.visualType=r),t},e}();function _K(e){e.overallReset(e.ecModel,e.api,e.payload)}function bK(e){return e.overallProgress&&wK}function wK(){this.agent.dirty(),this.getDownstream().dirty()}function SK(){this.agent&&this.agent.dirty()}function xK(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function CK(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=pr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Ne(t,function(r,n){return YE(n)}):TK}var TK=YE(0);function YE(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&d===u.length-h.length){var v=u.slice(0,d);v!=="data"&&(r.mainType=v,r[h.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(n[u]=l,f=!0),f||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,a,"name")&&f(u,a,"dataIndex")&&f(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function f(c,h,d,v){return c[d]==null||h[v||d]===c[d]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),Sm=["symbol","symbolSize","symbolRotate","symbolOffset"],tx=Sm.concat(["symbolKeepAspect"]),DK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&ro(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function Cm(e,t,r){for(var n=t.type==="radial"?XK(e,t,r):KK(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:Tt(e)?[e]:ye(e)?e:null}function XE(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&QK(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Ne(r,function(a){return a/i}),n/=i)}return[r,n]}var JK=new bo(!0);function Bd(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function rx(e){return typeof e=="string"&&e!=="none"}function Fd(e){var t=e.fill;return t!=null&&t!=="none"}function nx(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function ix(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function Tm(e,t,r){var n=rP(t.image,t.__image,r);if(xh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*pU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function eX(e,t,r,n){var i,a=Bd(r),o=Fd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var f=t.path||JK,c=t.__dirty;if(!n){var h=r.fill,d=r.stroke,v=o&&!!h.colorStops,p=a&&!!d.colorStops,m=o&&!!h.image,g=a&&!!d.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=c?Cm(e,h,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=c?Cm(e,d,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),m&&(b=c||!t.__canvasFillPattern?Tm(e,h,t):t.__canvasFillPattern,t.__canvasFillPattern=b),g&&(x=c||!t.__canvasStrokePattern?Tm(e,d,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:m&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:g&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();f.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=XE(t),C=i[0],M=i[1]);var A=!0;(u||c&Xo)&&(f.setDPR(e.dpr),l?f.setContext(null):(f.setContext(e),A=!1),f.reset(),t.buildPath(f,t.shape,n),f.toStatic(),t.pathUpdated()),A&&f.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&ix(e,r),o&&nx(e,r)):(o&&nx(e,r),a&&ix(e,r))),C&&e.setLineDash([])}function tX(e,t,r){var n=t.__image=rP(r.image,t.__image,t,t.onload);if(!(!n||!xh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,f=r.sy||0;e.drawImage(n,u,f,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,f=r.sy,c=o-u,h=s-f;e.drawImage(n,u,f,c,h,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function rX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||_o,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=XE(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Bd(r)&&e.strokeText(i,r.x,r.y),Fd(r)&&e.fillText(i,r.x,r.y)):(Fd(r)&&e.fillText(i,r.x,r.y),Bd(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var ax=["shadowBlur","shadowOffsetX","shadowOffsetY"],ox=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function ZE(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){Tr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?fo.opacity:o}(n||t.blend!==r.blend)&&(a||(Tr(e,i),a=!0),e.globalCompositeOperation=t.blend||fo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[nr]){if(this._disposed){this.id;return}var a,o,s;if(Re(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[nr]=!0,!this._model||n){var l=new vq(this._api),u=this._theme,f=this._model=new F0;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},Pm);var c={seriesTransition:s,optionChanged:!0};if(i)this[br]={silent:a,updateParams:c},this[nr]=!1,this.getZr().wakeUp();else{try{Uo(this),$i.update.call(this,null,c)}catch(h){throw this[br]=null,this[nr]=!1,h}this._ssr||this._zr.flush(),this[br]=null,this[nr]=!1,hl.call(this,a),vl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||He.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(He.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return R(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;R(n,function(l){i.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(a.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return R(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(Sx[i]){var l=s,u=s,f=-s,c=-s,h=[],d=r&&r.pixelRatio||this.getDevicePixelRatio();R(au,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(tt(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),f=o(w.right,f),c=o(w.bottom,c),h.push({dom:x,left:w.left,top:w.top})}}),l*=d,u*=d,f*=d,c*=d;var v=f-l,p=c-u,m=Vs.createCanvas(),g=Tw(m,{renderer:n?"svg":"canvas"});if(g.resize({width:v,height:p}),n){var y="";return R(h,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),g.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&g.painter.setBackgroundColor(r.connectedBackgroundColor),g.refreshImmediately(),g.painter.toDataURL()}else return r.connectedBackgroundColor&&g.add(new Gt({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),R(h,function(_){var b=new Gs({style:{x:_.left*d-l,y:_.top*d-u,image:_.dom}});g.add(b)}),g.refreshImmediately(),m.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return vp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return vp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Bv(i,r);return R(o,function(s,l){l.indexOf("Models")>=0&&R(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)a=a||!!f.containPoint(n);else if(l==="seriesModels"){var c=this._chartsMap[u.__viewId];c&&c.containPoint&&(a=a||c.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Bv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?OK(s,l,n):RK(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;R(PX,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Ll(s,function(v){var p=dt(v);if(p&&p.dataIndex!=null){var m=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=m&&m.getDataParams(p.dataIndex,p.dataType,s)||{},!0}else if(p.eventData)return l=ue({},p.eventData),!0},!0),l){var f=l.componentType,c=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",c=l.seriesIndex);var h=f&&c!=null&&o.getComponent(f,c),d=h&&r[h.mainType==="series"?"_chartsMap":"_componentsMap"][h.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:h,view:d},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),R(iu,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),R(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),NK(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&J2(this.getDom(),X0,"");var n=this,i=n._api,a=n._model;R(n._componentsViews,function(o){o.dispose(a,i)}),R(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete au[n.id]},t.prototype.resize=function(r){if(!this[nr]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[br]&&(a==null&&(a=this[br].silent),i=!0,this[br]=null),this[nr]=!0;try{i&&Uo(this),$i.update.call(this,{type:"resize",animation:ue({duration:0},r&&r.animation)})}catch(o){throw this[nr]=!1,o}this[nr]=!1,hl.call(this,a),vl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Re(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!Em[r]){var i=Em[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=ue({},r);return n.type=iu[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Re(n)||(n={silent:!!n}),!!$d[r.type]&&this._model){if(this[nr]){this._pendingActions.push(r);return}var i=n.silent;gp.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&He.browser.weChat&&this._throttledZrFlush(),hl.call(this,i),vl.call(this,i)}},t.prototype.updateLabelLayout=function(){_n.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Uo=function(c){var h=c._scheduler;h.restorePipelines(c._model),h.prepareStageTasks(),hp(c,!0),hp(c,!1),h.plan()},hp=function(c,h){for(var d=c._model,v=c._scheduler,p=h?c._componentsViews:c._chartsViews,m=h?c._componentsMap:c._chartsMap,g=c._zr,y=c._api,_=0;_h.get("hoverLayerThreshold")&&!He.node&&!He.worker&&h.eachSeries(function(m){if(!m.preventUsingHoverLayer){var g=c._chartsMap[m.__viewId];g.__alive&&g.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(c,h){var d=c.get("blendMode")||null;h.eachRendered(function(v){v.isGroup||(v.style.blend=d)})}function s(c,h){if(!c.preventAutoZ){var d=c.get("z")||0,v=c.get("zlevel")||0;h.eachRendered(function(p){return l(p,d,v,-1/0),!0})}}function l(c,h,d,v){var p=c.getTextContent(),m=c.getTextGuideLine(),g=c.isGroup;if(g)for(var y=c.childrenRef(),_=0;_0?{duration:p,delay:d.get("delay"),easing:d.get("easing")}:null;h.eachRendered(function(g){if(g.states&&g.states.emphasis){if(fs(g))return;if(g instanceof vt&&bY(g),g.__dirty){var y=g.prevStates;y&&g.useStates(y)}if(v){g.stateTransition=m;var _=g.getTextContent(),b=g.getTextGuideLine();_&&(_.stateTransition=m),b&&(b.stateTransition=m)}g.__dirty&&i(g)}})}_x=function(c){return new(function(h){ge(d,h);function d(){return h!==null&&h.apply(this,arguments)||this}return d.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},d.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);v=v.parent}},d.prototype.enterEmphasis=function(v,p){am(v,p),qr(c)},d.prototype.leaveEmphasis=function(v,p){om(v,p),qr(c)},d.prototype.enterBlur=function(v){fY(v),qr(c)},d.prototype.leaveBlur=function(v){_P(v),qr(c)},d.prototype.enterSelect=function(v){bP(v),qr(c)},d.prototype.leaveSelect=function(v){wP(v),qr(c)},d.prototype.getModel=function(){return c.getModel()},d.prototype.getViewOfComponentModel=function(v){return c.getViewOfComponentModel(v)},d.prototype.getViewOfSeriesModel=function(v){return c.getViewOfSeriesModel(v)},d}(SE))(c)},dL=function(c){function h(d,v){for(var p=0;p=0)){xx.push(r);var a=UE.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function yL(e,t){Em[e]=t}function kX(e,t,r){var n=hX("registerMap");n&&n(e,t,r)}var NX=Hq;Do(q0,pK);Do(Fh,gK);Do(Fh,mK);Do(q0,DK);Do(Fh,IK);Do(oL,fX);gL(CE);mL(gX,Sq);yL("default",yK);js({type:co,event:co,update:co},Er);js({type:Uc,event:Uc,update:Uc},Er);js({type:Ql,event:Ql,update:Ql},Er);js({type:Yc,event:Yc,update:Yc},Er);js({type:Jl,event:Jl,update:Jl},Er);pL("light",PK);pL("dark",EK);function pl(e){return e==null?0:e.length||1}function Cx(e){return e}var BX=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||Cx,this._newKeyGetter=i||Cx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(f,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&h===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&h>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&h===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&h>1)this._updateManyToMany&&this._updateManyToMany(f,u),i[l]=null;else if(c>1)for(var d=0;d1)for(var s=0;s30}var gl=Re,Hi=Ne,UX=typeof Int32Array>"u"?Array:Int32Array,YX="e\0\0",Tx=-1,jX=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],qX=["_approximateExtent"],Mx,lc,ml,yl,_p,uc,bp,CL=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;bL(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},f=0;f=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===hn;if(l&&!i.pure)for(var u=[],f=t;f0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ye(a)?a=a.slice():gl(a)&&(a=ue({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,gl(r)?ue(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){gl(t)?ue(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?ue(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;eY(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){R(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Hi(this.dimensions,this._getDimInfo,this),this.hostModel)),_p(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ye(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(n0(arguments)))})},e.internalField=function(){Mx=function(t){var r=t._invertedIndicesMap;R(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new UX(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}}(),e}();function TL(e,t){H0(e)||(e=z0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=je(),a=[],o=XX(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&xL(o),l=n===e.dimensionsDefine,u=l?SL(e):wL(n),f=t.encodeDefine;!f&&t.encodeDefaulter&&(f=t.encodeDefaulter(e,o));for(var c=je(f),h=new IE(o),d=0;d0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function XX(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return R(t,function(a){var o;Re(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function ZX(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var QX=function(){function e(t){this.coordSysDims=[],this.axisMap=je(),this.categoryAxisMap=je(),this.coordSysName=t}return e}();function JX(e){var t=e.get("coordinateSystem"),r=new QX(t),n=eZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var eZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Tn).models[0],a=e.getReferringComponents("yAxis",Tn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Yo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Yo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Tn).models[0];t.coordSysDims=["single"],r.set("single",i),Yo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Tn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Yo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Yo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();R(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),Yo(u)&&(n.set(f,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Yo(e){return e.get("type")==="category"}function tZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;rZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,f,c,h;if(R(a,function(y,_){Ee(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!f&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(f=y))}),f&&!n&&!u&&(n=!0),f){c="__\0ecstackresult_"+e.id,h="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var d=f.coordDim,v=f.type,p=0;R(a,function(y){y.coordDim===d&&p++});var m={name:c,coordDim:d,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},g={name:h,coordDim:h,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(m.storeDimIndex=s.ensureCalculationDimension(h,v),g.storeDimIndex=s.ensureCalculationDimension(c,v)),o.appendCalculationDimension(m),o.appendCalculationDimension(g)):(a.push(m),a.push(g))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:h,stackResultDimension:c}}function rZ(e){return!bL(e.schema)}function ML(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function nZ(e,t){return ML(e,t)?e.getCalculationInfo("stackResultDimension"):t}function iZ(e,t){var r=e.get("coordinateSystem"),n=$0.get(r),i;return t&&t.coordSysDims&&(i=Ne(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=zX(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function aZ(e,t,r){var n,i;return r&&R(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function AL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=z0(e)):(i=n.getSource(),a=i.sourceFormat===hn);var o=JX(t),s=iZ(t,o),l=r.useEncodeDefaulter,u=Ye(l)?l:l?Ot(Kj,s,t):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=TL(i,f),h=aZ(c.dimensions,r.createInvertedIndices,o),d=a?null:n.getSharedDataStore(c),v=tZ(t,{schema:c,store:d}),p=new CL(c,t);p.setCalculationInfo(v);var m=h!=null&&oZ(i)?function(g,y,_,b){return b===h?_:this.defaultDimValueGetter(g,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:d,null,m),p}function oZ(e){if(e.sourceFormat===hn){var t=sZ(e.data||[]);return!ye(of(t))}}function sZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();Sh(oi);var lZ=0,Lm=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++lZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Ne(n,uZ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Ee(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=je(this.categories))},e}();function uZ(e){return Re(e)&&e.value!=null?e.value:e+""}function Dm(e){return e.type==="interval"||e.type==="log"}function fZ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=q2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=PL(o),l=i.niceTickExtent=[Ft(Math.ceil(e[0]/o)*o,s),Ft(Math.floor(e[1]/o)*o,s)];return cZ(l,e),i}function wp(e){var t=Math.pow(10,d0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,Ft(r*t)}function PL(e){return vi(e)+2}function Ax(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function cZ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Ax(e,0,t),Ax(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function $h(e,t){return e>=t[0]&&e<=t[1]}function Hh(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function zh(e,t){return e*(t[1]-t[0])+t[0]}var EL=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new Lm({})),ye(i)&&(i=new Lm({categories:Ne(i,function(a){return Re(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Ee(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),$h(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Hh(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(zh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(oi);oi.registerClass(EL);const LL=EL;var za=Ft,DL=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return $h(r,this._extent)},t.prototype.normalize=function(r){return Hh(r,this._extent)},t.prototype.scale=function(r){return zh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=PL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var f=s.length?s[s.length-1].value:a[1];return i[1]>f&&(r?s.push({value:za(f+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&d0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function RL(e){var t=vZ(e),r=[];return R(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],f=Math.abs(o[1]-o[0]),c=a.scale.getExtent(),h=Math.abs(c[1]-c[0]);s=u?f/h*u:f}else{var d=n.getData();s=Math.abs(o[1]-o[0])/d.count()}var v=yt(n.get("barWidth"),s),p=yt(n.get("barMaxWidth"),s),m=yt(n.get("barMinWidth")||(NL(n)?.5:1),s),g=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:m,barGap:g,barCategoryGap:y,axisKey:t_(a),stackId:e_(n)})}),pZ(r)}function pZ(e){var t={};R(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=n.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var c=n.barMaxWidth;c&&(l[u].maxWidth=c);var h=n.barMinWidth;h&&(l[u].minWidth=h);var d=n.barGap;d!=null&&(s.gap=d);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return R(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Ct(a).length;s=Math.max(35-l*4,15)+"%"}var u=yt(s,o),f=yt(n.gap,1),c=n.remainedWidth,h=n.autoWidthCount,d=(c-u)/(h+(h-1)*f);d=Math.max(d,0),R(a,function(g){var y=g.maxWidth,_=g.minWidth;if(g.width){var b=g.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),g.width=b,c-=b+f*b,h--}else{var b=d;y&&yb&&(b=_),b!==d&&(g.width=b,c-=b+f*b,h--)}}),d=(c-u)/(h+(h-1)*f),d=Math.max(d,0);var v=0,p;R(a,function(g,y){g.width||(g.width=d),p=g,v+=g.width*(1+f)}),p&&(v-=p.width*f);var m=-v/2;R(a,function(g,y){r[i][y]=r[i][y]||{bandWidth:o,offset:m,width:g.width},m+=g.width*(1+f)})}),r}function gZ(e,t,r){if(e&&t){var n=e[t_(t)];return n!=null&&r!=null?n[e_(r)]:n}}function mZ(e,t){var r=OL(e,t),n=RL(r);R(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=e_(i),u=n[t_(s)][l],f=u.offset,c=u.width;a.setLayout({bandWidth:u.bandWidth,offset:f,size:c})})}function yZ(e){return{seriesType:e,plan:HE(),reset:function(t){if(kL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),f=r.getCalculationInfo("stackResultDimension"),c=ML(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),h=a.isHorizontal(),d=_Z(i,a),v=NL(t),p=t.get("barMinHeight")||0,m=f&&r.getDimensionIndex(f),g=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&Sp(x*3),S=v&&l&&Sp(x*3),C=v&&Sp(x),M=n.master.getRect(),A=h?M.width:M.height,P,E=b.getStore(),L=0;(P=_.next())!=null;){var O=E.get(c?m:o,P),N=E.get(s,P),H=d,V=void 0;c&&(V=+O-E.get(o,P));var U=void 0,F=void 0,z=void 0,te=void 0;if(h){var J=n.dataToPoint([O,N]);if(c){var me=n.dataToPoint([V,N]);H=me[0]}U=H,F=J[1]+y,z=J[0]-H,te=g,Math.abs(z)>>1;e[i][1]i&&(this._approxInterval=i);var s=fc.length,l=Math.min(bZ(fc,this._approxInterval,0,s),s-1);this._interval=fc[l][1],this._minLevelUnit=fc[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return Tt(r)?r:+Ti(r)},t.prototype.contain=function(r){return $h(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Hh(this.parse(r),this._extent)},t.prototype.scale=function(r){return zh(r,this._extent)},t.type="time",t}(df),fc=[["second",I0],["minute",O0],["hour",tu],["quarter-day",tu*6],["half-day",tu*12],["day",on*1.2],["half-week",on*3.5],["week",on*7],["month",on*31],["quarter",on*95],["half-year",gS/2],["year",gS]];function wZ(e,t,r,n){var i=Ti(t),a=Ti(r),o=function(v){return yS(i,v,n)===yS(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},c=function(){return f()&&o("minute")},h=function(){return c()&&o("second")},d=function(){return h()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return c();case"second":return h();case"millisecond":return d()}}function SZ(e,t){return e/=on,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function xZ(e){var t=30*on;return e/=t,e>6?6:e>3?3:e>2?2:1}function CZ(e){return e/=tu,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Px(e,t){return e/=t?O0:I0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function TZ(e){return q2(e,!0)}function MZ(e,t,r){var n=new Date(e);switch(cs(t)){case"year":case"month":n[sE(r)](0);case"day":n[lE(r)](1);case"hour":n[uE(r)](0);case"minute":n[fE(r)](0);case"second":n[cE(r)](0),n[dE(r)](0)}return n.getTime()}function AZ(e,t,r,n){var i=1e4,a=aE,o=0;function s(A,P,E,L,O,N,H){for(var V=new Date(P),U=P,F=V[L]();U1&&N===0&&E.unshift({value:E[0].value-U})}}for(var N=0;N=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&h>_/1.5||(u.push(m),c>_||e===a[d]))break}f=[]}}}for(var b=jt(Ne(u,function(A){return jt(A,function(P){return P.value>=n[0]&&P.value<=n[1]&&!P.notAdd})}),function(A){return A.length>0}),x=[],w=b.length-1,d=0;d0;)a*=10;var s=[Ft(DZ(n[0]/a)*a),Ft(LZ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){ou.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=pn(r)/pn(this.base),$h(r,this._extent)},t.prototype.normalize=function(r){return r=pn(r)/pn(this.base),Hh(r,this._extent)},t.prototype.scale=function(r){return r=zh(r,this._extent),cc(this.base,r)},t.type="log",t}(oi),FL=r_.prototype;FL.getMinorTicks=ou.getMinorTicks;FL.getLabel=ou.getLabel;function dc(e,t){return EZ(e,vi(t))}oi.registerClass(r_);const IZ=r_;var OZ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var h=this._determinedMin,d=this._determinedMax;return h!=null&&(s=h,u=!0),d!=null&&(l=d,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:c}},e.prototype.modifyDataMinMax=function(t,r){this[kZ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=RZ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),RZ={min:"_determinedMin",max:"_determinedMax"},kZ={min:"_dataMin",max:"_dataMax"};function NZ(e,t,r){var n=e.rawExtentInfo;return n||(n=new OZ(e,t,r),e.rawExtentInfo=n,n)}function hc(e,t){return t==null?null:bd(t)?NaN:e.parse(t)}function $L(e,t){var r=e.type,n=NZ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=OL("bar",o),l=!1;if(R(s,function(c){l=l||c.getBaseAxis()===t.axis}),l){var u=RL(s),f=BZ(i,a,t,u);i=f.min,a=f.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function BZ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=gZ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;R(o,function(d){s=Math.min(d.offset,s)});var l=-1/0;R(o,function(d){l=Math.max(d.offset+d.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=t-e,c=1-(s+l)/a,h=f/c-f;return t+=h*(l/u),e-=h*(s/u),{min:e,max:t}}function Lx(e,t){var r=t,n=$L(e,r),i=n.extent,a=r.get("splitNumber");e instanceof IZ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function FZ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new LL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new PZ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(oi.getClass(t)||df)}}function $Z(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function hf(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Ee(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ye(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(n_(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function n_(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function HZ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof LL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=hf(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var f=0;f=0||(Dx.push(e),Ye(e)&&(e={install:e}),e.install(GZ))}var zu=Et();function UZ(e){return e.type==="category"?jZ(e):KZ(e)}function YZ(e,t){return e.type==="category"?qZ(e,t):{ticks:Ne(e.scale.getTicks(),function(r){return r.value})}}function jZ(e){var t=e.getLabelModel(),r=zL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function zL(e,t){var r=VL(e,"labels"),n=i_(t),i=WL(r,n);if(i)return i;var a,o;return Ye(n)?a=YL(e,n):(o=n==="auto"?XZ(e):n,a=UL(e,o)),GL(r,n,{labels:a,labelCategoryInterval:o})}function qZ(e,t){var r=VL(e,"ticks"),n=i_(t),i=WL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ye(n))a=YL(e,n,!0);else if(n==="auto"){var s=zL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Ne(s.labels,function(l){return l.tickValue})}else o=n,a=UL(e,o,!0);return GL(r,n,{ticks:a,tickCategoryInterval:o})}function KZ(e){var t=e.scale.getTicks(),r=hf(e);return{labels:Ne(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function VL(e,t){return zu(e)[t]||(zu(e)[t]=[])}function WL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),f=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),h=0,d=0;l<=a[1];l+=s){var v=0,p=0,m=u0(r({value:l}),t.font,"center","top");v=m.width*1.3,p=m.height*1.3,h=Math.max(h,v,7),d=Math.max(d,p,7)}var g=h/f,y=d/c;isNaN(g)&&(g=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(g,y))),b=zu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function QZ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function UL(e,t,r){var n=hf(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],f=i.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=HL(e),h=o.get("showMinLabel")||c,d=o.get("showMaxLabel")||c;h&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);d&&v-l!==a[1]&&p(a[1]);function p(m){var g={value:m};s.push(r?m:{formattedLabel:n(g),rawLabel:i.getLabel(g),tickValue:m})}return s}function YL(e,t,r){var n=e.scale,i=hf(e),a=[];return R(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var Ix=[0,1],JZ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return O9(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),Ox(n,i.count())),Jg(t,Ix,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),Ox(n,i.count()));var a=Jg(t,n,Ix,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=YZ(this,r),i=n.ticks,a=Ne(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return eQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Ne(n,function(a){return Ne(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return UZ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return ZZ(this)},e}();function Ox(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function eQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[1]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;R(t,function(d){d.coord-=u/2});var f=e.scale.getExtent();s=1+f[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var c=a[0]>a[1];h(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&h(a[0],t[0].coord)&&t.unshift({coord:a[0]}),h(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&h(o.coord,a[1])&&t.push({coord:a[1]});function h(d,v){return d=Ft(d),v=Ft(v),c?d>v:di&&(i+=_l);var d=Math.atan2(s,o);if(d<0&&(d+=_l),d>=n&&d<=i||d+_l>=n&&d+_l<=i)return l[0]=f,l[1]=c,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,m=r*Math.cos(i)+e,g=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(m-o)*(m-o)+(g-s)*(g-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=m,l[1]=g,Math.sqrt(_))}function zd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,f=r-e,c=n-t,h=Math.sqrt(f*f+c*c);f/=h,c/=h;var d=l*f+u*c,v=d/h;s&&(v=Math.min(Math.max(v,0),1)),v*=h;var p=o[0]=e+v*f,m=o[1]=t+v*c;return Math.sqrt((p-i)*(p-i)+(m-a)*(m-a))}function jL(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),f=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(f-a)*(f-a))}var bn=[];function aQ(e,t,r){var n=jL(t.x,t.y,t.width,t.height,e.x,e.y,bn);return r.set(bn[0],bn[1]),n}function oQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,f=t.data,c=e.x,h=e.y,d=0;d0){t=t/180*Math.PI,Mn.fromArray(e[0]),ut.fromArray(e[1]),Lt.fromArray(e[2]),Fe.sub(Yn,Mn,ut),Fe.sub(Wn,Lt,ut);var r=Yn.len(),n=Wn.len();if(!(r<.001||n<.001)){Yn.scale(1/r),Wn.scale(1/n);var i=Yn.dot(Wn),a=Math.cos(t);if(a1&&Fe.copy(dr,Lt),dr.toArray(e[1])}}}}function sQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Mn.fromArray(e[0]),ut.fromArray(e[1]),Lt.fromArray(e[2]),Fe.sub(Yn,ut,Mn),Fe.sub(Wn,Lt,ut);var n=Yn.len(),i=Wn.len();if(!(n<.001||i<.001)){Yn.scale(1/n),Wn.scale(1/i);var a=Yn.dot(t),o=Math.cos(r);if(a=l)Fe.copy(dr,Lt);else{dr.scaleAndAdd(Wn,s/Math.tan(Math.PI/2-f));var c=Lt.x!==ut.x?(dr.x-ut.x)/(Lt.x-ut.x):(dr.y-ut.y)/(Lt.y-ut.y);if(isNaN(c))return;c<0?Fe.copy(dr,ut):c>1&&Fe.copy(dr,Lt)}dr.toArray(e[1])}}}}function kx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function lQ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Fg(n[0],n[1]),a=Fg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=gv([],n[1],n[0],o/i),l=gv([],n[1],n[2],o/a),u=gv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var f=1;f0&&a&&x(-f/o,0,o);var p=e[0],m=e[o-1],g,y;_(),g<0&&w(-g,.8),y<0&&w(y,.8),_(),b(g,y,1),b(y,g,-1),_(),g<0&&S(-g),y<0&&S(y);function _(){g=p.rect[t]-n,y=i-m.rect[t]-m.rect[r]}function b(C,M,A){if(C<0){var P=Math.min(M,-C);if(P>0){x(P*A,0,o);var E=P+C;E<0&&w(-E*A,1)}else w(-C*A,1)}}function x(C,M,A){C!==0&&(u=!0);for(var P=M;P0)for(var E=0;E0;E--){var H=A[E-1]*N;x(-H,E,o)}}}function S(C){var M=C<0?-1:1;C=Math.abs(C);for(var A=Math.ceil(C/(o-1)),P=0;P0?x(A,0,P+1):x(-A,o-P-1,o),C-=A,C<=0)return}return u}function uQ(e,t,r,n){return QL(e,"x","width",t,r,n)}function JL(e,t,r,n){return QL(e,"y","height",t,r,n)}function eD(e){var t=[];e.sort(function(p,m){return m.priority-p.priority});var r=new nt(0,0,0,0);function n(p){if(!p.ignore){var m=p.ensureState("emphasis");m.ignore==null&&(m.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(h,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Or(n,u,r,l)}else if(n.attr(u),!cf(n).valueAnimation){var c=Ze(n.style.opacity,1);n.style.opacity=0,Wr(n,{style:{opacity:c}},r,l)}if(a.oldLayout=u,n.states.select){var d=a.oldLayoutSelect={};vc(d,u,pc),vc(d,n.states.select,pc)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};vc(v,u,pc),vc(v,n.states.emphasis,pc)}Sj(n,l,f,r,r)}if(i&&!i.ignore&&!i.invisible){var a=dQ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Or(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Wr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}(),Cp=Et();function vQ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=Cp(r).labelManager;i||(i=Cp(r).labelManager=new hQ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=Cp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function pQ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Is(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function mQ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,f=r.get(["lineStyle","width"])||2;o-=f/2,s-=f/2,l+=f,u+=f,o=Math.floor(o),l=Math.round(l);var c=new Gt({shape:{x:o,y:s,width:l,height:u}});if(t){var h=e.getBaseAxis(),d=h.isHorizontal(),v=h.inverse;d?(v&&(c.shape.x+=l),c.shape.width=0):(v||(c.shape.y+=u),c.shape.height=0);var p=Ye(i)?function(m){i(m,c)}:null;Wr(c,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return c}function yQ(e,t,r){var n=e.getArea(),i=Ft(n.r0,1),a=Ft(n.r,1),o=new Eo({shape:{cx:Ft(e.cx,1),cy:Ft(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Wr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function _Q(e,t,r,n,i){if(e){if(e.type==="polar")return yQ(e,t,r);if(e.type==="cartesian2d")return mQ(e,t,r,n,i)}else return null;return null}function tD(e,t){return e.type===t}var bQ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),c=n.getDevicePixelRatio(),h=Math.abs(f[1]-f[0])*(c||1),d=Math.round(s/h);if(isFinite(d)&&d>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/d));var v=void 0;Ee(a)?v=bQ[a]:Ye(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/d,v,wQ))}}}}}var Im=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return AL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.clampData(r),s=a.dataToPoint(o);if(i)R(a.getAxes(),function(h,d){if(h.type==="category"&&n!=null){var v=h.getTicksCoords(),p=o[d],m=n[d]==="x1"||n[d]==="y1";if(m&&(p+=1),v.length<2)return;if(v.length===2){s[d]=h.toGlobalCoord(h.getExtent()[m?1:0]);return}for(var g=void 0,y=void 0,_=1,b=0;bp){y=(x+g)/2;break}b===1&&(_=w-v[0].tickValue)}y==null&&(g?g&&(y=v[v.length-1].coord):y=v[0].coord),s[d]=h.toGlobalCoord(y)}});else{var l=this.getData(),u=l.getLayout("offset"),f=l.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;s[c]+=u+f/2}return s}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(So);So.registerClass(Im);var xQ=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return AL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=rE(Im.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(Im);const CQ=xQ;var TQ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),Bx=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new TQ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,f=n.startAngle,c=n.endAngle,h=n.clockwise,d=Math.PI*2,v=h?c-fMath.PI/2&&fs)return!0;s=c}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){Dd(a,r,dt(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(ho),Fx={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=Tp(t.x,e.x),s=Mp(t.x+t.width,i),l=Tp(t.y,e.y),u=Mp(t.y+t.height,a),f=si?s:o,t.y=c&&l>a?u:l,t.width=f?0:s-o,t.height=c?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),f||c},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=Mp(t.r,e.r),a=Tp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},$x={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Gt({shape:ue({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var f=u.shape,c=i?"height":"width";f[c]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?Bx:Eo,f=new u({shape:n,z2:1});f.name="item";var c=rD(i);if(f.calculateTextPosition=MQ(c,{isRoundCap:u===Bx}),a){var h=f.shape,d=i?"r":"endAngle",v={};h[d]=i?n.r0:n.startAngle,v[d]=n[d],(s?Or:Wr)(f,{shape:v},a)}return f}};function LQ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function Hx(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Or:Wr)(r,{shape:l},t,i,null);var f=t?e.baseAxis.model:null;(o?Or:Wr)(r,{shape:u},f,i)}function zx(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function OQ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function rD(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function Wx(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");if(s){if(!a.get("roundCap")){var f=e.shape,c=Dl(n.getModel("itemStyle"),f,!0);ue(f,c),e.setShape(f)}}else{var u=n.get(["itemStyle","borderRadius"])||0;e.setShape("r",u)}e.useStyle(l);var h=n.getShallow("cursor");h&&e.attr("cursor",h);var d=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",v=JP(n);E0(e,v,{labelFetcher:a,labelDataIndex:r,defaultText:pQ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:d});var p=e.getTextContent();if(s&&p){var m=n.get(["label","position"]);e.textConfig.inside=m==="middle"?!0:null,AQ(e,m==="outside"?d:m,rD(o),n.get(["label","rotate"]))}wj(p,v,a.getRawValue(r),function(y){return gQ(t,y)});var g=n.getModel(["emphasis"]);CP(e,g.get("focus"),g.get("blurScope"),g.get("disabled")),TP(e,n),OQ(i)&&(e.style.fill="none",e.style.stroke="none",R(e.states,function(y){y.style&&(y.style.fill=y.style.stroke="none")}))}function RQ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var kQ=function(){function e(){}return e}(),Gx=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new kQ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?r:null},30,!1);function NQ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,f=0,c=a.length/3;f=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[f]}return-1}function nD(e,t,r){if(tD(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function BQ(e,t,r){var n=e.type==="polar"?Eo:Gt;return new n({shape:nD(t,r,e),silent:!0,z2:0})}const FQ=EQ;function $Q(e){e.registerChartView(FQ),e.registerSeriesModel(CQ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Ot(mZ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,yZ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,SQ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var _c=Math.PI*2,jx=Math.PI/180;function iD(e,t){return Ls(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function aD(e,t){var r=iD(e,t),n=e.get("center"),i=e.get("radius");ye(i)||(i=[0,i]);var a=yt(r.width,t.getWidth()),o=yt(r.height,t.getHeight()),s=Math.min(a,o),l=yt(i[0],s/2),u=yt(i[1],s/2),f,c,h=e.coordinateSystem;if(h){var d=h.dataToPoint(n);f=d[0]||0,c=d[1]||0}else ye(n)||(n=[n,n]),f=yt(n[0],a)+r.x,c=yt(n[1],o)+r.y;return{cx:f,cy:c,r0:l,r:u}}function HQ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=iD(n,r),s=aD(n,r),l=s.cx,u=s.cy,f=s.r,c=s.r0,h=-n.get("startAngle")*jx,d=n.get("minAngle")*jx,v=0;i.each(a,function(A){!isNaN(A)&&v++});var p=i.getSum(a),m=Math.PI/(p||v)*2,g=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=_c,w=0,S=h,C=g?1:-1;if(i.setLayout({viewRect:o,r:f}),i.each(a,function(A,P){var E;if(isNaN(A)){i.setItemLayout(P,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:g,cx:l,cy:u,r0:c,r:y?NaN:f});return}y!=="area"?E=p===0&&_?m:A*m:E=_c/v,Er?g:m,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:d:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var m=(n.style.margin||0)+2.1;a.height=p.height+m,a.y-=(a.height-c)/2}}}function Ap(e){return e.position==="center"}function GQ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*VQ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,f=s.x,c=s.y,h=s.height;function d(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,M=S.getTextContent(),A=S.getTextGuideLine(),P=t.getItemModel(w),E=P.getModel("label"),L=E.get("position")||P.get(["emphasis","label","position"]),O=E.get("distanceToLabelLine"),N=E.get("alignTo"),H=yt(E.get("edgeDistance"),u),V=E.get("bleedMargin"),U=P.getModel("labelLine"),F=U.get("length");F=yt(F,u);var z=U.get("length2");if(z=yt(z,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":J>0?"left":"right"}var W=Math.PI,X=0,q=E.get("rotate");if(Tt(q))X=q*(W/180);else if(L==="center")X=0;else if(q==="radial"||q===!0){var le=J<0?-te+W:-te;X=le}else if(q==="tangential"&&L!=="outside"&&L!=="outer"){var fe=Math.atan2(J,me);fe<0&&(fe=W*2+fe);var ae=me>0;ae&&(fe=W+fe),X=fe-W}if(a=!!X,M.x=Se,M.y=$e,M.rotation=X,M.setStyle({verticalAlign:"middle"}),Y){M.setStyle({align:B});var he=M.states.select;he&&(he.x+=M.x,he.y+=M.y)}else{var se=M.getBoundingRect().clone();se.applyTransform(M.getComputedTransform());var ne=(M.style.margin||0)+2.1;se.y-=ne/2,se.height+=ne,r.push({label:M,labelLine:A,position:L,len:F,len2:z,minTurnAngle:U.get("minTurnAngle"),maxSurfaceAngle:U.get("maxSurfaceAngle"),surfaceNormal:new Fe(J,me),linePoints:Ie,textAlign:B,labelDistance:O,labelAlignTo:N,edgeDistance:H,bleedMargin:V,rect:se,unconstrainedWidth:se.width,labelStyleWidth:M.style.width})}S.setTextConfig({inside:Y})}}),!a&&e.get("avoidLabelOverlap")&&WQ(r,n,i,l,u,h,f,c);for(var p=0;p0){for(var f=o.getItemLayout(0),c=1;isNaN(f&&f.startAngle)&&c=a.r0}},t.type="pie",t}(ho);const jQ=YQ;function qQ(e,t,r){t=ye(t)&&{coordDimensions:t}||ue({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=TL(n,t).dimensions,a=new CL(i,e);return a.initData(n,r),a}var KQ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const XQ=KQ;var ZQ=Et(),QQ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new XQ(xt(this.getData,this),xt(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return qQ(this,{coordDimensions:["value"],encodeDefaulter:Ot(Xj,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=ZQ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=R9(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){em(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(So);const JQ=QQ;function eJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(Tt(o)&&!isNaN(o)&&o<0)})}}}function tJ(e){e.registerChartView(jQ),e.registerSeriesModel(JQ),kK("pie",e.registerAction),e.registerLayout(Ot(HQ,"pie")),e.registerProcessor(zQ("pie")),e.registerProcessor(eJ("pie"))}var rJ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(Mt);const nJ=rJ;var Om=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Tn).models[0]},t.type="cartesian2dAxis",t}(Mt);ni(Om,WZ);var sD={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},iJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},sD),a_=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},sD),aJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},a_),oJ=ht({logBase:10},a_);const sJ={category:iJ,value:a_,time:aJ,log:oJ};var lJ={value:1,category:1,time:1,log:1};function Kx(e,t,r,n){R(lJ,function(i,a){var o=st(st({},sJ[a],!0),n,!0),s=function(l){ge(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=t+"Axis."+a,f}return u.prototype.mergeDefaultAndTheme=function(f,c){var h=Nu(this),d=h?Rh(f):{},v=c.getTheme();st(f,v.get(a+"Axis")),st(f,this.getDefaultOption()),f.type=Xx(f),h&&Ds(f,d,h)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=Lm.createByAxisModel(this))},u.prototype.getCategories=function(f){var c=this.option;if(c.type==="category")return f?c.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",Xx)}function Xx(e){return e.type||(e.data?"category":"value")}var uJ=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Ne(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),jt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const fJ=uJ;var Rm=["x","y"];function Zx(e){return e.type==="interval"||e.type==="time"}var cJ=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=Rm,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!Zx(r)||!Zx(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,c=(s[1]-o[1])/u,h=o[0]-i[0]*f,d=o[1]-a[0]*c,v=this._transform=[f,0,0,c,h,d];this._invTransform=bh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new nt(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return un(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return un(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new nt(i,a,o,s)},t}(fJ),dJ=function(e){ge(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(tQ);const hJ=dJ;function km(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,f=n.getRect(),c=[f.x,f.x+f.width,f.y,f.y+f.height],h={left:0,right:1,top:0,bottom:1,onZero:2},d=t.get("offset")||0,v=u==="x"?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[h.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[h[l]]:c[0],u==="x"?v[h[l]]:c[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var m={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=m[s],a.labelOffset=o?v[h[s]]-v[h.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),Au(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var g=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-g:g,a.z2=1,a}function Qx(e){return e.get("coordinateSystem")==="cartesian2d"}function Jx(e){var t={xAxisModel:null,yAxisModel:null};return R(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Tn).models[0];t[n]=a}),t}var Pp=Math.log;function vJ(e,t,r){var n=df.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=$L(e,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(e.type==="log"){var h=Pp(e.base);u=[Pp(u[0])/h,Pp(u[1])/h]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:c});var d=n.getExtent.call(e);f&&(u[0]=d[0]),c&&(u[1]=d[1]);var v=n.getInterval.call(e),p=u[0],m=u[1];if(f&&c)v=(m-p)/o;else if(f)for(m=u[0]+v*o;mu[0]&&isFinite(p)&&isFinite(u[0]);)v=wp(v),p=u[1]-v*o;else{var g=e.getTicks().length-1;g>o&&(v=wp(v));var y=v*o;m=Math.ceil(u[1]/v)*v,p=Ft(m-y),p<0&&u[0]>=0?(p=0,m=Ft(y)):m>0&&u[1]<=0&&(m=0,p=-Ft(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,m+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,m-v)}var pJ=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Rm,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Ct(o),u=l.length;if(u){for(var f=[],c=u-1;c>=0;c--){var h=+l[c],d=o[h],v=d.model,p=d.scale;Dm(p)&&v.get("alignTicks")&&v.get("interval")==null?f.push(d):(Lx(p,v),Dm(p)&&(s=d))}f.length&&(s||(s=f.pop(),Lx(s.scale,s.model)),R(f,function(m){vJ(m.scale,m.model,s.scale)}))}}i(n.x),i(n.y);var a={};R(n.x,function(o){eC(n,"y",o,a)}),R(n.y,function(o){eC(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Ls(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(R(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=HZ(u);if(f){var c=u.isHorizontal()?"height":"width",h=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+h,u.position==="top"?o.y+=f.height+h:u.position==="left"&&(o.x+=f.width+h)}}}),l()),R(this._coordsList,function(u){u.calcAffineTransform()});function l(){R(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],h=u.inverse?1:0;u.setExtent(c[h],c[1-h]),gJ(u,f?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Re(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):Ad(i-ea)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),rC={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(un(s,s,o),un(l,l,o));var f=ue({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new wo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Iu(c.shape,c.style.lineWidth),c.anid="line",r.add(c);var h=t.get(["axisLine","symbol"]);if(h!=null){var d=t.get(["axisLine","symbolSize"]);Ee(h)&&(h=[h,h]),(Ee(d)||Tt(d))&&(d=[d,d]);var v=qK(t.get(["axisLine","symbolOffset"])||0,d),p=d[0],m=d[1];R([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(g,y){if(h[y]!=="none"&&h[y]!=null){var _=j0(h[y],-p/2,-m/2,p,m,f.stroke,!0),b=g.r+g.offset,x=u?l:s;_.attr({rotation:g.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=bJ(r,n,t,e),a=SJ(r,n,t,e);if(_J(t,a,i),wJ(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=ZL(Ne(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));eD(o)}},axisName:function(e,t,r,n){var i=Au(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),f=u[0]>u[1]?-1:1,c=[a==="start"?u[0]-f*l:a==="end"?u[1]+f*l:(u[0]+u[1])/2,iC(a)?e.labelOffset+o*l:0],h,d=t.get("nameRotate");d!=null&&(d=d*ea/180);var v;iC(a)?h=vo.innerTextLayout(e.rotation,d??e.rotation,o):(h=yJ(e.rotation,a,d||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(h.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),m=t.get("nameTruncate",!0)||{},g=m.ellipsis,y=Au(e.nameTruncateMaxWidth,m.maxWidth,v),_=new mr({x:c[0],y:c[1],rotation:h.rotation,silent:vo.isLabelSilent(t),style:ha(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:g,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||h.textAlign,verticalAlign:s.get("verticalAlign")||h.textVerticalAlign}),z2:1});if(A0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=vo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,dt(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function yJ(e,t,r,n){var i=j2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return Ad(i-ea/2)?(o=l?"bottom":"top",a="center"):Ad(i-ea*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iea/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function _J(e,t,r){if(!HL(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],f=r[1],c=r[r.length-1],h=r[r.length-2];n===!1?(Kr(a),Kr(u)):nC(a,o)&&(n?(Kr(o),Kr(f)):(Kr(a),Kr(u))),i===!1?(Kr(s),Kr(c)):nC(l,s)&&(i?(Kr(l),Kr(h)):(Kr(s),Kr(c)))}}function Kr(e){e&&(e.ignore=!0)}function nC(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=a0([]);return o0(i,i,-e.rotation),r.applyTransform(ls([],i,e.getLocalTransform())),n.applyTransform(ls([],i,t.getLocalTransform())),r.intersect(n)}}function iC(e){return e==="middle"||e==="center"}function lD(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function PJ(e){var t=o_(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=Nm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var c=this.__startIndex;c15)break}}O.prevElClipPaths&&g.restore()};if(y)if(y.length===0)C=m.__endIndex;else for(var A=d.dpr,P=0;P0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?bc:0),this._needsManuallyCompositing),f.__builtin__||r0("ZLevel "+u+" has been used by unkown layer "+f.id),f!==a&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,r(l),a=f),i.__dirty&Br&&!i.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(c,h){!c.__used&&c.getElementCount()>0&&(c.__dirty=!0,c.__startIndex=c.__endIndex=c.__drawIndex=0),c.__dirty&&c.__drawIndex<0&&(c.__drawIndex=c.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,R(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=o_(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new mj[a.type](uC(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new mr(uC(r.label));t.add(a),cC(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),cC(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=M0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){C2(u.event)},onmousedown:Ip(this._onHandleDragMove,this,0,0),drift:Ip(this._onHandleDragMove,this),ondragend:Ip(this._onHandleDragEnd,this)}),n.add(i)),dC(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ye(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,VE(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){fC(this._axisPointerModel,!r&&this._moveAnimation,this._handle,Op(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(Op(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(Op(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),wm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function fC(e,t,r,n){hD(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Or(r,n,e):(r.stopAnimation(),r.attr(n)))}function hD(e,t){if(Re(e)&&Re(t)){var r=!0;return R(t,function(n,i){r=r&&hD(e[i],n)}),!!r}else return e===t}function cC(e,t){e[t.get(["label","show"])?"show":"hide"]()}function Op(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function dC(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const YJ=UJ;function jJ(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function qJ(e,t,r,n,i){var a=r.get("value"),o=vD(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=Oh(s.get("padding")||0),u=s.getFont(),f=u0(o,u),c=i.position,h=f.width+l[1]+l[3],d=f.height+l[0]+l[2],v=i.align;v==="right"&&(c[0]-=h),v==="center"&&(c[0]-=h/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=d),p==="middle"&&(c[1]-=d/2),KJ(c,h,d,n);var m=s.get("backgroundColor");(!m||m==="auto")&&(m=t.get(["axisLine","lineStyle","color"])),e.label={x:c[0],y:c[1],style:ha(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:m}),z2:10}}function KJ(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function vD(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:n_(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};R(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,c=u&&u.getDataParams(f);c&&s.seriesData.push(c)}),Ee(o)?a=o.replace("{value}",a):Ye(o)&&(a=o(s))}return a}function pD(e,t,r){var n=Pu();return o0(n,n,r.rotation),Vg(n,n,r.position),T0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function XJ(e,t,r,n,i,a){var o=uD.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),qJ(t,n,i,a,{position:pD(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function ZJ(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function QJ(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var JJ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),f=hC(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var h=jJ(a),d=eee[u](s,c,f);d.style=h,r.graphicKey=d.type,r.pointer=d}var v=km(l.model,i);XJ(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=km(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=pD(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=hC(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,c=[r.x,r.y];c[f]+=n[f],c[f]=Math.min(l[1],c[f]),c[f]=Math.max(l[0],c[f]);var h=(u[1]+u[0])/2,d=[h,h];d[f]=c[f];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:d,tooltipOption:v[f]}},t}(YJ);function hC(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var eee={line:function(e,t,r){var n=ZJ([t,r[0]],[t,r[1]],vC(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:QJ([t-n/2,r[0]],[n,i],vC(e))}}};function vC(e){return e.dim==="x"?0:1}const tee=JJ;var ree=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(Mt);const nee=ree;var gi=Et(),iee=R;function gD(e,t,r){if(!He.node){var n=t.getZr();gi(n).records||(gi(n).records={}),aee(n,t);var i=gi(n).records[e]||(gi(n).records[e]={});i.handler=r}}function aee(e,t){if(gi(e).initialized)return;gi(e).initialized=!0,r("click",Ot(pC,"click")),r("mousemove",Ot(pC,"mousemove")),r("globalout",see);function r(n,i){e.on(n,function(a){var o=lee(t);iee(gi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),oee(o.pendings,t)})}}function oee(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function see(e,t,r){e.handler("leave",null,r)}function pC(e,t,r,n){t.handler(e,r,n)}function lee(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function Fm(e,t){if(!He.node){var r=t.getZr(),n=(gi(r).records||{})[e];n&&(gi(r).records[e]=null)}}var uee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";gD("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){Fm("axisPointer",n)},t.prototype.dispose=function(r,n){Fm("axisPointer",n)},t.type="axisPointer",t}(Mi);const fee=uee;function mD(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=sf(a,e);if(o==null||o<0||ye(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),c=f.dim,h=u.dim,d=c==="x"||c==="radius"?1:0,v=a.mapDimension(h),p=[];p[d]=a.get(v,o),p[1-d]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Ne(l.dimensions,function(g){return a.mapDimension(g)}),o))||[];else if(s){var m=s.getBoundingRect().clone();m.applyTransform(s.transform),r=[m.x+m.width/2,m.y+m.height/2]}return{point:r,el:s}}var gC=Et();function cee(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||xt(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Zc(i)&&(i=mD({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Zc(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Zc(i),h={},d={},v={list:[],map:{}},p={showPointer:Ot(hee,d),showTooltip:Ot(vee,v)};R(s.coordSysMap,function(g,y){var _=l||g.containPoint(i);R(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=yee(u,b);if(!c&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&mC(b,C,p,!1,h)}})});var m={};return R(f,function(g,y){var _=g.linkGroup;_&&!d[y]&&R(_.axesInfo,function(b,x){var w=d[x];if(b!==g&&w){var S=w.value;_.mapper&&(S=g.axis.scale.parse(_.mapper(S,yC(b),yC(g)))),m[g.key]=S}})}),R(m,function(g,y){mC(f[y],g,p,!0,h)}),pee(d,f,h),gee(v,i,e,o),mee(f,o,r),h}}function mC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=dee(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&ue(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function dee(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return R(t.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,h;if(l.getAxisTooltipData){var d=l.getAxisTooltipData(f,e,r);h=d.dataIndices,c=d.nestestValue}else{if(h=l.getData().indicesOfNearest(f[0],e,r.type==="category"?.5:null),!h.length)return;c=l.getData().get(f[0],h[0])}if(!(c==null||!isFinite(c))){var v=e-c,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=c,a.length=0),R(h,function(m){a.push({seriesIndex:l.seriesIndex,dataIndexInside:m,dataIndex:l.getData().getRawIndex(m)})}))}}),{payloadBatch:a,snapToValue:i}}function hee(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function vee(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Vu(l),f=e.map[u];f||(f=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(f)),f.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function pee(e,t,r){var n=r.axesInfo=[];R(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function gee(e,t,r,n){if(Zc(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function mee(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=gC(n)[i]||{},o=gC(n)[i]={};R(e,function(u,f){var c=u.axisPointerModel.option;c.status==="show"&&u.triggerEmphasis&&R(c.seriesDataIndices,function(h){var d=h.seriesIndex+" | "+h.dataIndex;o[d]=h})});var s=[],l=[];R(a,function(u,f){!o[f]&&l.push(u)}),R(o,function(u,f){!a[f]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function yee(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function yC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Zc(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function yD(e){fD.registerAxisPointerClass("CartesianAxisPointer",tee),e.registerComponentModel(nee),e.registerComponentView(fee),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ye(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=xJ(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},cee)}function _ee(e){va(BJ),va(yD)}function bee(e,t){var r=Oh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Gt({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var wee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(Mt);const See=wee;function _D(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function bD(e){if(He.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var f=u*Math.PI/180,c=o+i,h=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),d=Math.round(((h-Math.SQRT2*i)/2+Math.SQRT2*i-(h-c)/2)*100)/100;s+=";"+a+":-"+d+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Eee(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=He.transformSupported?","+s_+n:",left"+n+",top"+n),Tee+":"+i}function _C(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!He.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=He.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+s_+":"+o+";":[["top",0],["left",0],[wD,o]]}function Lee(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),R(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Dee(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),f=e.getModel("textStyle"),c=$E(e,"html"),h=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+h),t&&i&&n.push(Eee(i,r)),a&&n.push("background-color:"+a),R(["width","color","radius"],function(d){var v="border-"+d,p=vE(v),m=e.get(p);m!=null&&n.push(v+":"+m+(d==="color"?"":"px"))}),n.push(Lee(f)),c!=null&&n.push("padding:"+Oh(c).join("px ")+"px"),n.join(";")+";"}function bC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&TU(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Iee=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,He.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;bC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,f=a.painter.getViewportRoot();Qr(f,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=Cee(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this._alwaysShowContent=a,this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=Mee+Dee(t,!this._firstShow,this._longHide)+_C(a[0],a[1],!0)+("border-color:"+ku(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Ee(a)&&n.get("trigger")==="item"&&!_D(n)&&(s=Pee(n,i,a)),Ee(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ye(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||He.node||!i.getDom())){var o=xC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Hee(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var f=kee;f.x=a.x,f.y=a.y,f.update(),dt(f).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:f},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var c=mD(a,n),h=c.point[0],d=c.point[1];h!=null&&d!=null&&this._tryShow({offsetX:h,offsetY:d,target:c.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(xC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var f=u.getData(),c=bl([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(c.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Ll(i,function(u){if(dt(u).dataIndex!=null)return s=u,!0;if(dt(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=xt(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=bl([n.tooltipOption],a),l=this._renderMode,u=[],f=Fu("section",{blocks:[],noHeader:!0}),c=[],h=new up;R(r,function(y){R(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=vD(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Fu("section",{header:w,noHeader:!Gn(w),sortBlocks:!0,blocks:[]});f.blocks.push(S),R(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),A=C.dataIndexInside,P=M.getDataParams(A);if(!(P.dataIndex<0)){P.axisDim=_.axisDim,P.axisIndex=_.axisIndex,P.axisType=_.axisType,P.axisId=_.axisId,P.axisValue=n_(b.axis,{value:x}),P.axisValueLabel=w,P.marker=h.makeTooltipMarker("item",ku(P.color),l);var E=FS(M.formatTooltip(A,!0,null)),L=E.frag;if(L){var O=bl([M],a).get("valueFormatter");S.blocks.push(O?ue({valueFormatter:O},L):L)}E.text&&c.push(E.text),u.push(P)}})}})}),f.blocks.reverse(),c.reverse();var d=n.position,v=s.get("order"),p=WS(f,h,l,v,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var m=l==="richText"?` +`];function Fu(e,t){return t.type=e,t}function ym(e){return e.type==="section"}function NE(e){return ym(e)?Kq:Xq}function BE(e){if(ym(e)){var t=0,r=e.blocks.length,n=r>1||r>0&&!e.noHeader;return R(e.blocks,function(i){var a=BE(i);a>=t&&(t=a+ +(n&&(!a||ym(i)&&!i.noHeader)))}),t}return 0}function Kq(e,t,r,n){var i=t.noHeader,a=Zq(BE(t)),o=[],s=t.blocks||[];Ci(!s||ye(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ds(u,l)){var f=new Oq(u[l],null);s.sort(function(v,p){return f.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(v,p){var m=t.valueFormatter,g=NE(v)(m?ue(ue({},e),{valueFormatter:m}):e,v,p>0?a.html:0,n);g!=null&&o.push(g)});var c=e.renderMode==="richText"?o.join(a.richText):_m(o.join(""),i?r:a.html);if(i)return c;var h=pm(t.header,"ordinal",e.useUTC),d=kE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?FE(e,h,d)+a.richText+c:_m('
'+tn(h)+"
"+c,r)}function Xq(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,f=t.valueFormatter||e.valueFormatter||function(b){return b=ye(b)?b:[b],Ne(b,function(x,w){return pm(x,ye(d)?d[w]:d,u)})};if(!(a&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),h=a?"":pm(l,"ordinal",u),d=t.valueType,v=o?[]:f(t.value),p=!s||!a,m=!s&&a,g=kE(n,i),y=g.nameStyle,_=g.valueStyle;return i==="richText"?(s?"":c)+(a?"":FE(e,h,y))+(o?"":eK(e,v,p,m,_)):_m((s?"":c)+(a?"":Qq(h,!s,y))+(o?"":Jq(v,p,m,_)),r)}}function WS(e,t,r,n,i,a){if(e){var o=NE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function Zq(e){return{html:jq[e],richText:qq[e]}}function _m(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function Qq(e,t,r){var n=t?"margin-left:2px":"";return''+tn(e)+""}function Jq(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ye(e)?e:[e],''+Ne(e,function(o){return tn(o)}).join("  ")+""}function FE(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function eK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ye(t)?t.join(" "):t,a)}function tK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return ku(n)}function $E(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var up=function(){function e(){this.richTextStyles={},this._nextStyleNameId=K2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Vj({color:r,type:t,renderMode:n,markerId:i});return Ee(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ye(r)?R(r,function(a){return ue(n,a)}):ue(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function rK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ye(s),u=tK(t,r),f,c,h,d;if(o>1||l&&!o){var v=nK(s,t,r,a,u);f=v.inlineValues,c=v.inlineValueTypes,h=v.blocks,d=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);d=f=Rs(i,r,a[0]),c=p.type}else d=f=l?s[0]:s;var m=h0(t),g=m&&t.name||"",y=i.getName(r),_=n?g:y;return Fu("section",{header:g,noHeader:n||!m,sortParam:d,blocks:[Fu("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Gn(_),value:f,valueType:c})].concat(h||[])})}function nK(e,t,r,n,i){var a=t.getData(),o=ca(e,function(c,h,d){var v=a.getDimensionInfo(d);return c=c||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(c){f(Rs(a,r,c),c)}):R(e,f);function f(c,h){var d=a.getDimensionInfo(h);!d||d.otherDims.tooltip===!1||(o?u.push(Fu("nameValue",{markerType:"subItem",markerColor:i,name:d.displayName,value:c,valueType:d.type})):(s.push(c),l.push(d.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Fi=Et();function tc(e,t){return e.getName(t)||e.getId(t)}var iK="__universalTransitionEnabled",Bh=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=nu({count:oK,reset:sK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=Fi(this).sourceManager=new Yq(this);a.prepareSource();var o=this.getInitialData(r,i);US(o,this),this.dataTask.context.data=o,Fi(this).dataBeforeProcessed=o,GS(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Nu(this),a=i?Rh(r):{},o=this.subType;Mt.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),em(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Os(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Nu(this);i&&Os(this.option,r,i);var a=Fi(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);US(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Fi(this).dataBeforeProcessed=o,GS(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!Gr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=B0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[tc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[iK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Re(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(r,n)}},t.registerClass=function(r){return Mt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(Mt);ni(Bh,Dq);ni(Bh,B0);tP(Bh,Mt);function GS(e){var t=e.name;h0(e)||(e.name=aK(e)||t)}function aK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return R(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function oK(e){return e.model.getRawData().count()}function sK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),lK}function lK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function US(e,t){R(vU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Rt(uK,t))})}function uK(e,t){var r=bm(e);return r&&r.setOutputEnd((t||this).count()),t}function bm(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const So=Bh;var G0=function(){function e(){this.group=new Ur,this.uid=Ah("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();p0(G0);Sh(G0);const Mi=G0;function HE(){var e=Et();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var zE=Et(),fK=HE(),U0=function(){function e(){this.group=new Ur,this.uid=Ah("viewChart"),this.renderTask=nu({plan:cK,reset:dK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&jS(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&jS(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){P0(this.group,t)},e.markUpdateMethod=function(t,r){zE(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function YS(e,t,r){e&&fm(e)&&(t==="emphasis"?am:om)(e,r)}function jS(e,t,r){var n=sf(e,t),i=t&&t.highlightKey!=null?_Y(t.highlightKey):null;n!=null?R(pr(n),function(a){YS(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){YS(a,r,i)})}p0(U0);Sh(U0);function cK(e){return fK(e.model)}function dK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&zE(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),hK[l]}var hK={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const ho=U0;var kd="\0__throttleOriginMethod",qS="\0__throttleRate",KS="\0__throttleType";function Y0(e,t,r){var n,i=0,a=0,o=null,s,l,u,f;t=t||0;function c(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var h=function(){for(var d=[],v=0;v=0?c():o=setTimeout(c,-s),i=n};return h.clear=function(){o&&(clearTimeout(o),o=null)},h.debounceNextCall=function(d){f=d},h}function VE(e,t,r,n){var i=e[t];if(i){var a=i[kd]||i,o=i[KS],s=i[qS];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=Y0(a,r,n==="debounce"),i[kd]=a,i[KS]=n,i[qS]=r}return i}}function wm(e,t){var r=e[t];r&&r[kd]&&(r.clear&&r.clear(),e[t]=r[kd])}var XS=Et(),ZS={itemStyle:Du(tE,!0),lineStyle:Du(eE,!0)},vK={lineStyle:"stroke",itemStyle:"fill"};function WE(e,t){var r=e.visualStyleMapper||ZS[t];return r||(console.warn("Unknown style type '"+t+"'."),ZS.itemStyle)}function GE(e,t){var r=e.visualDrawType||vK[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var pK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=WE(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=GE(e,n),u=o[l],f=Ye(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var h=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=h,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ye(o.fill)?h:o.fill,o.stroke=o.stroke==="auto"||Ye(o.stroke)?h:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(d,v){var p=e.getDataParams(v),m=ue({},o);m[l]=f(p),d.setItemVisual(v,"style",m)}}}},dl=new sr,gK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=WE(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){dl.option=l[n];var u=i(dl),f=o.ensureUniqueItemVisual(s,"style");ue(f,u),dl.option.decal&&(o.setItemVisual(s,"decal",dl.option.decal),dl.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},mK={performRawSeries:!0,overallReset:function(e){var t=je();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),XS(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=XS(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=GE(r,s);a.each(function(u){var f=a.getRawIndex(u);i[f]=u}),n.each(function(u){var f=i[u],c=a.getItemVisual(f,"colorFromPalette");if(c){var h=a.ensureUniqueItemVisual(f,"style"),d=n.getName(u)||u+"",v=n.count();h[l]=r.getColorFromPalette(d,o,v)}})}})}},rc=Math.PI;function yK(e,t){t=t||{},ht(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new Ur,n=new Gt({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new mr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Gt({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new S0({shape:{startAngle:-rc/2,endAngle:-rc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:rc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:rc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),f=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:f}),a.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var UE=function(){function e(t,r,n,i){this._stageTaskMap=je(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=je();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;R(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";Ci(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;R(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,h=f.overallTask;if(h){var d,v=h.agentStubMap;v.each(function(m){s(i,m)&&(m.dirty(),d=!0)}),d&&h.dirty(),o.updatePayload(h,n);var p=o.getPerformArgs(h,i.block);v.each(function(m){m.perform(p)}),h.perform(p)&&(a=!0)}else c&&c.each(function(m,g){s(i,m)&&m.dirty();var y=o.getPerformArgs(m,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(m.context.model),o.updatePayload(m,n),m.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=je(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(f):l?n.eachRawSeriesByType(l,f):u&&u(n,i).each(f);function f(c){var h=c.uid,d=s.set(h,o&&o.get(h)||nu({plan:xK,reset:CK,count:MK}));d.context={model:c,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(c,d)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||nu({reset:_K});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=je(),u=t.seriesType,f=t.getTargetSeries,c=!0,h=!1,d="";Ci(!t.createOnAllSeries,d),u?n.eachRawSeriesByType(u,v):f?f(n,i).each(v):(c=!1,R(n.getSeries(),v));function v(p){var m=p.uid,g=l.set(m,s&&s.get(m)||(h=!0,nu({reset:bK,onDirty:SK})));g.context={model:p,overallProgress:c},g.agent=o,g.__block=c,a._pipe(p,g)}h&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ye(t)&&(t={overallReset:t,seriesType:AK(t)}),t.uid=Ah("stageHandler"),r&&(t.visualType=r),t},e}();function _K(e){e.overallReset(e.ecModel,e.api,e.payload)}function bK(e){return e.overallProgress&&wK}function wK(){this.agent.dirty(),this.getDownstream().dirty()}function SK(){this.agent&&this.agent.dirty()}function xK(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function CK(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=pr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Ne(t,function(r,n){return YE(n)}):TK}var TK=YE(0);function YE(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&d===u.length-h.length){var v=u.slice(0,d);v!=="data"&&(r.mainType=v,r[h.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(n[u]=l,f=!0),f||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,a,"name")&&f(u,a,"dataIndex")&&f(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function f(c,h,d,v){return c[d]==null||h[v||d]===c[d]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),Sm=["symbol","symbolSize","symbolRotate","symbolOffset"],tx=Sm.concat(["symbolKeepAspect"]),DK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&ro(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function Cm(e,t,r){for(var n=t.type==="radial"?XK(e,t,r):KK(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:Tt(e)?[e]:ye(e)?e:null}function XE(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&QK(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Ne(r,function(a){return a/i}),n/=i)}return[r,n]}var JK=new bo(!0);function Bd(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function rx(e){return typeof e=="string"&&e!=="none"}function Fd(e){var t=e.fill;return t!=null&&t!=="none"}function nx(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function ix(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function Tm(e,t,r){var n=rP(t.image,t.__image,r);if(xh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*pU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function eX(e,t,r,n){var i,a=Bd(r),o=Fd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var f=t.path||JK,c=t.__dirty;if(!n){var h=r.fill,d=r.stroke,v=o&&!!h.colorStops,p=a&&!!d.colorStops,m=o&&!!h.image,g=a&&!!d.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=c?Cm(e,h,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=c?Cm(e,d,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),m&&(b=c||!t.__canvasFillPattern?Tm(e,h,t):t.__canvasFillPattern,t.__canvasFillPattern=b),g&&(x=c||!t.__canvasStrokePattern?Tm(e,d,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:m&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:g&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();f.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=XE(t),C=i[0],M=i[1]);var A=!0;(u||c&Qo)&&(f.setDPR(e.dpr),l?f.setContext(null):(f.setContext(e),A=!1),f.reset(),t.buildPath(f,t.shape,n),f.toStatic(),t.pathUpdated()),A&&f.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&ix(e,r),o&&nx(e,r)):(o&&nx(e,r),a&&ix(e,r))),C&&e.setLineDash([])}function tX(e,t,r){var n=t.__image=rP(r.image,t.__image,t,t.onload);if(!(!n||!xh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,f=r.sy||0;e.drawImage(n,u,f,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,f=r.sy,c=o-u,h=s-f;e.drawImage(n,u,f,c,h,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function rX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||_o,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=XE(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Bd(r)&&e.strokeText(i,r.x,r.y),Fd(r)&&e.fillText(i,r.x,r.y)):(Fd(r)&&e.fillText(i,r.x,r.y),Bd(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var ax=["shadowBlur","shadowOffsetX","shadowOffsetY"],ox=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function ZE(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){Tr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?fo.opacity:o}(n||t.blend!==r.blend)&&(a||(Tr(e,i),a=!0),e.globalCompositeOperation=t.blend||fo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[nr]){if(this._disposed){this.id;return}var a,o,s;if(Re(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[nr]=!0,!this._model||n){var l=new vq(this._api),u=this._theme,f=this._model=new F0;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},Pm);var c={seriesTransition:s,optionChanged:!0};if(i)this[br]={silent:a,updateParams:c},this[nr]=!1,this.getZr().wakeUp();else{try{jo(this),$i.update.call(this,null,c)}catch(h){throw this[br]=null,this[nr]=!1,h}this._ssr||this._zr.flush(),this[br]=null,this[nr]=!1,hl.call(this,a),vl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||He.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(He.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return R(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;R(n,function(l){i.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(a.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return R(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(Sx[i]){var l=s,u=s,f=-s,c=-s,h=[],d=r&&r.pixelRatio||this.getDevicePixelRatio();R(au,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(tt(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),f=o(w.right,f),c=o(w.bottom,c),h.push({dom:x,left:w.left,top:w.top})}}),l*=d,u*=d,f*=d,c*=d;var v=f-l,p=c-u,m=Gs.createCanvas(),g=Tw(m,{renderer:n?"svg":"canvas"});if(g.resize({width:v,height:p}),n){var y="";return R(h,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),g.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&g.painter.setBackgroundColor(r.connectedBackgroundColor),g.refreshImmediately(),g.painter.toDataURL()}else return r.connectedBackgroundColor&&g.add(new Gt({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),R(h,function(_){var b=new Ys({style:{x:_.left*d-l,y:_.top*d-u,image:_.dom}});g.add(b)}),g.refreshImmediately(),m.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return vp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return vp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Bv(i,r);return R(o,function(s,l){l.indexOf("Models")>=0&&R(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)a=a||!!f.containPoint(n);else if(l==="seriesModels"){var c=this._chartsMap[u.__viewId];c&&c.containPoint&&(a=a||c.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Bv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?OK(s,l,n):RK(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;R(PX,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Ll(s,function(v){var p=dt(v);if(p&&p.dataIndex!=null){var m=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=m&&m.getDataParams(p.dataIndex,p.dataType,s)||{},!0}else if(p.eventData)return l=ue({},p.eventData),!0},!0),l){var f=l.componentType,c=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",c=l.seriesIndex);var h=f&&c!=null&&o.getComponent(f,c),d=h&&r[h.mainType==="series"?"_chartsMap":"_componentsMap"][h.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:h,view:d},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),R(iu,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),R(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),NK(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&J2(this.getDom(),X0,"");var n=this,i=n._api,a=n._model;R(n._componentsViews,function(o){o.dispose(a,i)}),R(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete au[n.id]},t.prototype.resize=function(r){if(!this[nr]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[br]&&(a==null&&(a=this[br].silent),i=!0,this[br]=null),this[nr]=!0;try{i&&jo(this),$i.update.call(this,{type:"resize",animation:ue({duration:0},r&&r.animation)})}catch(o){throw this[nr]=!1,o}this[nr]=!1,hl.call(this,a),vl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Re(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!Em[r]){var i=Em[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=ue({},r);return n.type=iu[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Re(n)||(n={silent:!!n}),!!$d[r.type]&&this._model){if(this[nr]){this._pendingActions.push(r);return}var i=n.silent;gp.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&He.browser.weChat&&this._throttledZrFlush(),hl.call(this,i),vl.call(this,i)}},t.prototype.updateLabelLayout=function(){_n.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){jo=function(c){var h=c._scheduler;h.restorePipelines(c._model),h.prepareStageTasks(),hp(c,!0),hp(c,!1),h.plan()},hp=function(c,h){for(var d=c._model,v=c._scheduler,p=h?c._componentsViews:c._chartsViews,m=h?c._componentsMap:c._chartsMap,g=c._zr,y=c._api,_=0;_h.get("hoverLayerThreshold")&&!He.node&&!He.worker&&h.eachSeries(function(m){if(!m.preventUsingHoverLayer){var g=c._chartsMap[m.__viewId];g.__alive&&g.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(c,h){var d=c.get("blendMode")||null;h.eachRendered(function(v){v.isGroup||(v.style.blend=d)})}function s(c,h){if(!c.preventAutoZ){var d=c.get("z")||0,v=c.get("zlevel")||0;h.eachRendered(function(p){return l(p,d,v,-1/0),!0})}}function l(c,h,d,v){var p=c.getTextContent(),m=c.getTextGuideLine(),g=c.isGroup;if(g)for(var y=c.childrenRef(),_=0;_0?{duration:p,delay:d.get("delay"),easing:d.get("easing")}:null;h.eachRendered(function(g){if(g.states&&g.states.emphasis){if(ds(g))return;if(g instanceof vt&&bY(g),g.__dirty){var y=g.prevStates;y&&g.useStates(y)}if(v){g.stateTransition=m;var _=g.getTextContent(),b=g.getTextGuideLine();_&&(_.stateTransition=m),b&&(b.stateTransition=m)}g.__dirty&&i(g)}})}_x=function(c){return new(function(h){ge(d,h);function d(){return h!==null&&h.apply(this,arguments)||this}return d.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},d.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);v=v.parent}},d.prototype.enterEmphasis=function(v,p){am(v,p),qr(c)},d.prototype.leaveEmphasis=function(v,p){om(v,p),qr(c)},d.prototype.enterBlur=function(v){fY(v),qr(c)},d.prototype.leaveBlur=function(v){_P(v),qr(c)},d.prototype.enterSelect=function(v){bP(v),qr(c)},d.prototype.leaveSelect=function(v){wP(v),qr(c)},d.prototype.getModel=function(){return c.getModel()},d.prototype.getViewOfComponentModel=function(v){return c.getViewOfComponentModel(v)},d.prototype.getViewOfSeriesModel=function(v){return c.getViewOfSeriesModel(v)},d}(SE))(c)},dL=function(c){function h(d,v){for(var p=0;p=0)){xx.push(r);var a=UE.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function yL(e,t){Em[e]=t}function kX(e,t,r){var n=hX("registerMap");n&&n(e,t,r)}var NX=Hq;Do(q0,pK);Do(Fh,gK);Do(Fh,mK);Do(q0,DK);Do(Fh,IK);Do(oL,fX);gL(CE);mL(gX,Sq);yL("default",yK);Ks({type:co,event:co,update:co},Er);Ks({type:Uc,event:Uc,update:Uc},Er);Ks({type:Ql,event:Ql,update:Ql},Er);Ks({type:Yc,event:Yc,update:Yc},Er);Ks({type:Jl,event:Jl,update:Jl},Er);pL("light",PK);pL("dark",EK);function pl(e){return e==null?0:e.length||1}function Cx(e){return e}var BX=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||Cx,this._newKeyGetter=i||Cx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(f,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&h===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&h>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&h===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&h>1)this._updateManyToMany&&this._updateManyToMany(f,u),i[l]=null;else if(c>1)for(var d=0;d1)for(var s=0;s30}var gl=Re,Hi=Ne,UX=typeof Int32Array>"u"?Array:Int32Array,YX="e\0\0",Tx=-1,jX=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],qX=["_approximateExtent"],Mx,lc,ml,yl,_p,uc,bp,CL=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;bL(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},f=0;f=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===hn;if(l&&!i.pure)for(var u=[],f=t;f0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ye(a)?a=a.slice():gl(a)&&(a=ue({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,gl(r)?ue(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){gl(t)?ue(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?ue(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;eY(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){R(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Hi(this.dimensions,this._getDimInfo,this),this.hostModel)),_p(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ye(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(n0(arguments)))})},e.internalField=function(){Mx=function(t){var r=t._invertedIndicesMap;R(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new UX(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}}(),e}();function TL(e,t){H0(e)||(e=z0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=je(),a=[],o=XX(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&xL(o),l=n===e.dimensionsDefine,u=l?SL(e):wL(n),f=t.encodeDefine;!f&&t.encodeDefaulter&&(f=t.encodeDefaulter(e,o));for(var c=je(f),h=new IE(o),d=0;d0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function XX(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return R(t,function(a){var o;Re(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function ZX(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var QX=function(){function e(t){this.coordSysDims=[],this.axisMap=je(),this.categoryAxisMap=je(),this.coordSysName=t}return e}();function JX(e){var t=e.get("coordinateSystem"),r=new QX(t),n=eZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var eZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Tn).models[0],a=e.getReferringComponents("yAxis",Tn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),qo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),qo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Tn).models[0];t.coordSysDims=["single"],r.set("single",i),qo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Tn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),qo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),qo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();R(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),qo(u)&&(n.set(f,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function qo(e){return e.get("type")==="category"}function tZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;rZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,f,c,h;if(R(a,function(y,_){Ee(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!f&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(f=y))}),f&&!n&&!u&&(n=!0),f){c="__\0ecstackresult_"+e.id,h="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var d=f.coordDim,v=f.type,p=0;R(a,function(y){y.coordDim===d&&p++});var m={name:c,coordDim:d,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},g={name:h,coordDim:h,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(m.storeDimIndex=s.ensureCalculationDimension(h,v),g.storeDimIndex=s.ensureCalculationDimension(c,v)),o.appendCalculationDimension(m),o.appendCalculationDimension(g)):(a.push(m),a.push(g))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:h,stackResultDimension:c}}function rZ(e){return!bL(e.schema)}function ML(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function nZ(e,t){return ML(e,t)?e.getCalculationInfo("stackResultDimension"):t}function iZ(e,t){var r=e.get("coordinateSystem"),n=$0.get(r),i;return t&&t.coordSysDims&&(i=Ne(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=zX(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function aZ(e,t,r){var n,i;return r&&R(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function AL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=z0(e)):(i=n.getSource(),a=i.sourceFormat===hn);var o=JX(t),s=iZ(t,o),l=r.useEncodeDefaulter,u=Ye(l)?l:l?Rt(Kj,s,t):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=TL(i,f),h=aZ(c.dimensions,r.createInvertedIndices,o),d=a?null:n.getSharedDataStore(c),v=tZ(t,{schema:c,store:d}),p=new CL(c,t);p.setCalculationInfo(v);var m=h!=null&&oZ(i)?function(g,y,_,b){return b===h?_:this.defaultDimValueGetter(g,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:d,null,m),p}function oZ(e){if(e.sourceFormat===hn){var t=sZ(e.data||[]);return!ye(of(t))}}function sZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();Sh(oi);var lZ=0,Lm=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++lZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Ne(n,uZ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Ee(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=je(this.categories))},e}();function uZ(e){return Re(e)&&e.value!=null?e.value:e+""}function Dm(e){return e.type==="interval"||e.type==="log"}function fZ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=q2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=PL(o),l=i.niceTickExtent=[$t(Math.ceil(e[0]/o)*o,s),$t(Math.floor(e[1]/o)*o,s)];return cZ(l,e),i}function wp(e){var t=Math.pow(10,d0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,$t(r*t)}function PL(e){return vi(e)+2}function Ax(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function cZ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Ax(e,0,t),Ax(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function $h(e,t){return e>=t[0]&&e<=t[1]}function Hh(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function zh(e,t){return e*(t[1]-t[0])+t[0]}var EL=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new Lm({})),ye(i)&&(i=new Lm({categories:Ne(i,function(a){return Re(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Ee(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),$h(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Hh(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(zh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(oi);oi.registerClass(EL);const LL=EL;var za=$t,DL=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return $h(r,this._extent)},t.prototype.normalize=function(r){return Hh(r,this._extent)},t.prototype.scale=function(r){return zh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=PL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var f=s.length?s[s.length-1].value:a[1];return i[1]>f&&(r?s.push({value:za(f+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&d0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function RL(e){var t=vZ(e),r=[];return R(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],f=Math.abs(o[1]-o[0]),c=a.scale.getExtent(),h=Math.abs(c[1]-c[0]);s=u?f/h*u:f}else{var d=n.getData();s=Math.abs(o[1]-o[0])/d.count()}var v=yt(n.get("barWidth"),s),p=yt(n.get("barMaxWidth"),s),m=yt(n.get("barMinWidth")||(NL(n)?.5:1),s),g=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:m,barGap:g,barCategoryGap:y,axisKey:t_(a),stackId:e_(n)})}),pZ(r)}function pZ(e){var t={};R(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=n.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var c=n.barMaxWidth;c&&(l[u].maxWidth=c);var h=n.barMinWidth;h&&(l[u].minWidth=h);var d=n.barGap;d!=null&&(s.gap=d);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return R(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Ct(a).length;s=Math.max(35-l*4,15)+"%"}var u=yt(s,o),f=yt(n.gap,1),c=n.remainedWidth,h=n.autoWidthCount,d=(c-u)/(h+(h-1)*f);d=Math.max(d,0),R(a,function(g){var y=g.maxWidth,_=g.minWidth;if(g.width){var b=g.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),g.width=b,c-=b+f*b,h--}else{var b=d;y&&yb&&(b=_),b!==d&&(g.width=b,c-=b+f*b,h--)}}),d=(c-u)/(h+(h-1)*f),d=Math.max(d,0);var v=0,p;R(a,function(g,y){g.width||(g.width=d),p=g,v+=g.width*(1+f)}),p&&(v-=p.width*f);var m=-v/2;R(a,function(g,y){r[i][y]=r[i][y]||{bandWidth:o,offset:m,width:g.width},m+=g.width*(1+f)})}),r}function gZ(e,t,r){if(e&&t){var n=e[t_(t)];return n!=null&&r!=null?n[e_(r)]:n}}function mZ(e,t){var r=OL(e,t),n=RL(r);R(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=e_(i),u=n[t_(s)][l],f=u.offset,c=u.width;a.setLayout({bandWidth:u.bandWidth,offset:f,size:c})})}function yZ(e){return{seriesType:e,plan:HE(),reset:function(t){if(kL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),f=r.getCalculationInfo("stackResultDimension"),c=ML(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),h=a.isHorizontal(),d=_Z(i,a),v=NL(t),p=t.get("barMinHeight")||0,m=f&&r.getDimensionIndex(f),g=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&Sp(x*3),S=v&&l&&Sp(x*3),C=v&&Sp(x),M=n.master.getRect(),A=h?M.width:M.height,P,E=b.getStore(),L=0;(P=_.next())!=null;){var O=E.get(c?m:o,P),N=E.get(s,P),H=d,V=void 0;c&&(V=+O-E.get(o,P));var U=void 0,F=void 0,z=void 0,ee=void 0;if(h){var J=n.dataToPoint([O,N]);if(c){var me=n.dataToPoint([V,N]);H=me[0]}U=H,F=J[1]+y,z=J[0]-H,ee=g,Math.abs(z)>>1;e[i][1]i&&(this._approxInterval=i);var s=fc.length,l=Math.min(bZ(fc,this._approxInterval,0,s),s-1);this._interval=fc[l][1],this._minLevelUnit=fc[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return Tt(r)?r:+Ti(r)},t.prototype.contain=function(r){return $h(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Hh(this.parse(r),this._extent)},t.prototype.scale=function(r){return zh(r,this._extent)},t.type="time",t}(df),fc=[["second",I0],["minute",O0],["hour",tu],["quarter-day",tu*6],["half-day",tu*12],["day",on*1.2],["half-week",on*3.5],["week",on*7],["month",on*31],["quarter",on*95],["half-year",gS/2],["year",gS]];function wZ(e,t,r,n){var i=Ti(t),a=Ti(r),o=function(v){return yS(i,v,n)===yS(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},c=function(){return f()&&o("minute")},h=function(){return c()&&o("second")},d=function(){return h()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return c();case"second":return h();case"millisecond":return d()}}function SZ(e,t){return e/=on,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function xZ(e){var t=30*on;return e/=t,e>6?6:e>3?3:e>2?2:1}function CZ(e){return e/=tu,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Px(e,t){return e/=t?O0:I0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function TZ(e){return q2(e,!0)}function MZ(e,t,r){var n=new Date(e);switch(hs(t)){case"year":case"month":n[sE(r)](0);case"day":n[lE(r)](1);case"hour":n[uE(r)](0);case"minute":n[fE(r)](0);case"second":n[cE(r)](0),n[dE(r)](0)}return n.getTime()}function AZ(e,t,r,n){var i=1e4,a=aE,o=0;function s(A,P,E,L,O,N,H){for(var V=new Date(P),U=P,F=V[L]();U1&&N===0&&E.unshift({value:E[0].value-U})}}for(var N=0;N=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&h>_/1.5||(u.push(m),c>_||e===a[d]))break}f=[]}}}for(var b=jt(Ne(u,function(A){return jt(A,function(P){return P.value>=n[0]&&P.value<=n[1]&&!P.notAdd})}),function(A){return A.length>0}),x=[],w=b.length-1,d=0;d0;)a*=10;var s=[$t(DZ(n[0]/a)*a),$t(LZ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){ou.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=pn(r)/pn(this.base),$h(r,this._extent)},t.prototype.normalize=function(r){return r=pn(r)/pn(this.base),Hh(r,this._extent)},t.prototype.scale=function(r){return r=zh(r,this._extent),cc(this.base,r)},t.type="log",t}(oi),FL=r_.prototype;FL.getMinorTicks=ou.getMinorTicks;FL.getLabel=ou.getLabel;function dc(e,t){return EZ(e,vi(t))}oi.registerClass(r_);const IZ=r_;var OZ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var h=this._determinedMin,d=this._determinedMax;return h!=null&&(s=h,u=!0),d!=null&&(l=d,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:c}},e.prototype.modifyDataMinMax=function(t,r){this[kZ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=RZ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),RZ={min:"_determinedMin",max:"_determinedMax"},kZ={min:"_dataMin",max:"_dataMax"};function NZ(e,t,r){var n=e.rawExtentInfo;return n||(n=new OZ(e,t,r),e.rawExtentInfo=n,n)}function hc(e,t){return t==null?null:bd(t)?NaN:e.parse(t)}function $L(e,t){var r=e.type,n=NZ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=OL("bar",o),l=!1;if(R(s,function(c){l=l||c.getBaseAxis()===t.axis}),l){var u=RL(s),f=BZ(i,a,t,u);i=f.min,a=f.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function BZ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=gZ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;R(o,function(d){s=Math.min(d.offset,s)});var l=-1/0;R(o,function(d){l=Math.max(d.offset+d.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=t-e,c=1-(s+l)/a,h=f/c-f;return t+=h*(l/u),e-=h*(s/u),{min:e,max:t}}function Lx(e,t){var r=t,n=$L(e,r),i=n.extent,a=r.get("splitNumber");e instanceof IZ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function FZ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new LL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new PZ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(oi.getClass(t)||df)}}function $Z(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function hf(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Ee(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ye(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(n_(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function n_(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function HZ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof LL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=hf(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var f=0;f=0||(Dx.push(e),Ye(e)&&(e={install:e}),e.install(GZ))}var zu=Et();function UZ(e){return e.type==="category"?jZ(e):KZ(e)}function YZ(e,t){return e.type==="category"?qZ(e,t):{ticks:Ne(e.scale.getTicks(),function(r){return r.value})}}function jZ(e){var t=e.getLabelModel(),r=zL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function zL(e,t){var r=VL(e,"labels"),n=i_(t),i=WL(r,n);if(i)return i;var a,o;return Ye(n)?a=YL(e,n):(o=n==="auto"?XZ(e):n,a=UL(e,o)),GL(r,n,{labels:a,labelCategoryInterval:o})}function qZ(e,t){var r=VL(e,"ticks"),n=i_(t),i=WL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ye(n))a=YL(e,n,!0);else if(n==="auto"){var s=zL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Ne(s.labels,function(l){return l.tickValue})}else o=n,a=UL(e,o,!0);return GL(r,n,{ticks:a,tickCategoryInterval:o})}function KZ(e){var t=e.scale.getTicks(),r=hf(e);return{labels:Ne(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function VL(e,t){return zu(e)[t]||(zu(e)[t]=[])}function WL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),f=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),h=0,d=0;l<=a[1];l+=s){var v=0,p=0,m=u0(r({value:l}),t.font,"center","top");v=m.width*1.3,p=m.height*1.3,h=Math.max(h,v,7),d=Math.max(d,p,7)}var g=h/f,y=d/c;isNaN(g)&&(g=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(g,y))),b=zu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function QZ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function UL(e,t,r){var n=hf(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],f=i.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=HL(e),h=o.get("showMinLabel")||c,d=o.get("showMaxLabel")||c;h&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);d&&v-l!==a[1]&&p(a[1]);function p(m){var g={value:m};s.push(r?m:{formattedLabel:n(g),rawLabel:i.getLabel(g),tickValue:m})}return s}function YL(e,t,r){var n=e.scale,i=hf(e),a=[];return R(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var Ix=[0,1],JZ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return O9(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),Ox(n,i.count())),Jg(t,Ix,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),Ox(n,i.count()));var a=Jg(t,n,Ix,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=YZ(this,r),i=n.ticks,a=Ne(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return eQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Ne(n,function(a){return Ne(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return UZ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return ZZ(this)},e}();function Ox(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function eQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[1]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;R(t,function(d){d.coord-=u/2});var f=e.scale.getExtent();s=1+f[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var c=a[0]>a[1];h(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&h(a[0],t[0].coord)&&t.unshift({coord:a[0]}),h(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&h(o.coord,a[1])&&t.push({coord:a[1]});function h(d,v){return d=$t(d),v=$t(v),c?d>v:di&&(i+=_l);var d=Math.atan2(s,o);if(d<0&&(d+=_l),d>=n&&d<=i||d+_l>=n&&d+_l<=i)return l[0]=f,l[1]=c,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,m=r*Math.cos(i)+e,g=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(m-o)*(m-o)+(g-s)*(g-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=m,l[1]=g,Math.sqrt(_))}function zd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,f=r-e,c=n-t,h=Math.sqrt(f*f+c*c);f/=h,c/=h;var d=l*f+u*c,v=d/h;s&&(v=Math.min(Math.max(v,0),1)),v*=h;var p=o[0]=e+v*f,m=o[1]=t+v*c;return Math.sqrt((p-i)*(p-i)+(m-a)*(m-a))}function jL(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),f=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(f-a)*(f-a))}var bn=[];function aQ(e,t,r){var n=jL(t.x,t.y,t.width,t.height,e.x,e.y,bn);return r.set(bn[0],bn[1]),n}function oQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,f=t.data,c=e.x,h=e.y,d=0;d0){t=t/180*Math.PI,Mn.fromArray(e[0]),ut.fromArray(e[1]),Lt.fromArray(e[2]),Fe.sub(Yn,Mn,ut),Fe.sub(Wn,Lt,ut);var r=Yn.len(),n=Wn.len();if(!(r<.001||n<.001)){Yn.scale(1/r),Wn.scale(1/n);var i=Yn.dot(Wn),a=Math.cos(t);if(a1&&Fe.copy(dr,Lt),dr.toArray(e[1])}}}}function sQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Mn.fromArray(e[0]),ut.fromArray(e[1]),Lt.fromArray(e[2]),Fe.sub(Yn,ut,Mn),Fe.sub(Wn,Lt,ut);var n=Yn.len(),i=Wn.len();if(!(n<.001||i<.001)){Yn.scale(1/n),Wn.scale(1/i);var a=Yn.dot(t),o=Math.cos(r);if(a=l)Fe.copy(dr,Lt);else{dr.scaleAndAdd(Wn,s/Math.tan(Math.PI/2-f));var c=Lt.x!==ut.x?(dr.x-ut.x)/(Lt.x-ut.x):(dr.y-ut.y)/(Lt.y-ut.y);if(isNaN(c))return;c<0?Fe.copy(dr,ut):c>1&&Fe.copy(dr,Lt)}dr.toArray(e[1])}}}}function kx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function lQ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Fg(n[0],n[1]),a=Fg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=gv([],n[1],n[0],o/i),l=gv([],n[1],n[2],o/a),u=gv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var f=1;f0&&a&&x(-f/o,0,o);var p=e[0],m=e[o-1],g,y;_(),g<0&&w(-g,.8),y<0&&w(y,.8),_(),b(g,y,1),b(y,g,-1),_(),g<0&&S(-g),y<0&&S(y);function _(){g=p.rect[t]-n,y=i-m.rect[t]-m.rect[r]}function b(C,M,A){if(C<0){var P=Math.min(M,-C);if(P>0){x(P*A,0,o);var E=P+C;E<0&&w(-E*A,1)}else w(-C*A,1)}}function x(C,M,A){C!==0&&(u=!0);for(var P=M;P0)for(var E=0;E0;E--){var H=A[E-1]*N;x(-H,E,o)}}}function S(C){var M=C<0?-1:1;C=Math.abs(C);for(var A=Math.ceil(C/(o-1)),P=0;P0?x(A,0,P+1):x(-A,o-P-1,o),C-=A,C<=0)return}return u}function uQ(e,t,r,n){return QL(e,"x","width",t,r,n)}function JL(e,t,r,n){return QL(e,"y","height",t,r,n)}function eD(e){var t=[];e.sort(function(p,m){return m.priority-p.priority});var r=new nt(0,0,0,0);function n(p){if(!p.ignore){var m=p.ensureState("emphasis");m.ignore==null&&(m.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(h,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Or(n,u,r,l)}else if(n.attr(u),!cf(n).valueAnimation){var c=Ze(n.style.opacity,1);n.style.opacity=0,Wr(n,{style:{opacity:c}},r,l)}if(a.oldLayout=u,n.states.select){var d=a.oldLayoutSelect={};vc(d,u,pc),vc(d,n.states.select,pc)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};vc(v,u,pc),vc(v,n.states.emphasis,pc)}Sj(n,l,f,r,r)}if(i&&!i.ignore&&!i.invisible){var a=dQ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Or(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Wr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}(),Cp=Et();function vQ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=Cp(r).labelManager;i||(i=Cp(r).labelManager=new hQ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=Cp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function pQ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Rs(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function mQ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,f=r.get(["lineStyle","width"])||2;o-=f/2,s-=f/2,l+=f,u+=f,o=Math.floor(o),l=Math.round(l);var c=new Gt({shape:{x:o,y:s,width:l,height:u}});if(t){var h=e.getBaseAxis(),d=h.isHorizontal(),v=h.inverse;d?(v&&(c.shape.x+=l),c.shape.width=0):(v||(c.shape.y+=u),c.shape.height=0);var p=Ye(i)?function(m){i(m,c)}:null;Wr(c,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return c}function yQ(e,t,r){var n=e.getArea(),i=$t(n.r0,1),a=$t(n.r,1),o=new Eo({shape:{cx:$t(e.cx,1),cy:$t(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Wr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function _Q(e,t,r,n,i){if(e){if(e.type==="polar")return yQ(e,t,r);if(e.type==="cartesian2d")return mQ(e,t,r,n,i)}else return null;return null}function tD(e,t){return e.type===t}var bQ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),c=n.getDevicePixelRatio(),h=Math.abs(f[1]-f[0])*(c||1),d=Math.round(s/h);if(isFinite(d)&&d>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/d));var v=void 0;Ee(a)?v=bQ[a]:Ye(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/d,v,wQ))}}}}}var Im=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return AL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.clampData(r),s=a.dataToPoint(o);if(i)R(a.getAxes(),function(h,d){if(h.type==="category"&&n!=null){var v=h.getTicksCoords(),p=o[d],m=n[d]==="x1"||n[d]==="y1";if(m&&(p+=1),v.length<2)return;if(v.length===2){s[d]=h.toGlobalCoord(h.getExtent()[m?1:0]);return}for(var g=void 0,y=void 0,_=1,b=0;bp){y=(x+g)/2;break}b===1&&(_=w-v[0].tickValue)}y==null&&(g?g&&(y=v[v.length-1].coord):y=v[0].coord),s[d]=h.toGlobalCoord(y)}});else{var l=this.getData(),u=l.getLayout("offset"),f=l.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;s[c]+=u+f/2}return s}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(So);So.registerClass(Im);var xQ=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return AL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=rE(Im.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(Im);const CQ=xQ;var TQ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),Bx=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new TQ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,f=n.startAngle,c=n.endAngle,h=n.clockwise,d=Math.PI*2,v=h?c-fMath.PI/2&&fs)return!0;s=c}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){Dd(a,r,dt(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(ho),Fx={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=Tp(t.x,e.x),s=Mp(t.x+t.width,i),l=Tp(t.y,e.y),u=Mp(t.y+t.height,a),f=si?s:o,t.y=c&&l>a?u:l,t.width=f?0:s-o,t.height=c?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),f||c},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=Mp(t.r,e.r),a=Tp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},$x={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Gt({shape:ue({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var f=u.shape,c=i?"height":"width";f[c]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?Bx:Eo,f=new u({shape:n,z2:1});f.name="item";var c=rD(i);if(f.calculateTextPosition=MQ(c,{isRoundCap:u===Bx}),a){var h=f.shape,d=i?"r":"endAngle",v={};h[d]=i?n.r0:n.startAngle,v[d]=n[d],(s?Or:Wr)(f,{shape:v},a)}return f}};function LQ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function Hx(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Or:Wr)(r,{shape:l},t,i,null);var f=t?e.baseAxis.model:null;(o?Or:Wr)(r,{shape:u},f,i)}function zx(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function OQ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function rD(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function Wx(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");if(s){if(!a.get("roundCap")){var f=e.shape,c=Dl(n.getModel("itemStyle"),f,!0);ue(f,c),e.setShape(f)}}else{var u=n.get(["itemStyle","borderRadius"])||0;e.setShape("r",u)}e.useStyle(l);var h=n.getShallow("cursor");h&&e.attr("cursor",h);var d=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",v=JP(n);E0(e,v,{labelFetcher:a,labelDataIndex:r,defaultText:pQ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:d});var p=e.getTextContent();if(s&&p){var m=n.get(["label","position"]);e.textConfig.inside=m==="middle"?!0:null,AQ(e,m==="outside"?d:m,rD(o),n.get(["label","rotate"]))}wj(p,v,a.getRawValue(r),function(y){return gQ(t,y)});var g=n.getModel(["emphasis"]);CP(e,g.get("focus"),g.get("blurScope"),g.get("disabled")),TP(e,n),OQ(i)&&(e.style.fill="none",e.style.stroke="none",R(e.states,function(y){y.style&&(y.style.fill=y.style.stroke="none")}))}function RQ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var kQ=function(){function e(){}return e}(),Gx=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new kQ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?r:null},30,!1);function NQ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,f=0,c=a.length/3;f=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[f]}return-1}function nD(e,t,r){if(tD(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function BQ(e,t,r){var n=e.type==="polar"?Eo:Gt;return new n({shape:nD(t,r,e),silent:!0,z2:0})}const FQ=EQ;function $Q(e){e.registerChartView(FQ),e.registerSeriesModel(CQ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Rt(mZ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,yZ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,SQ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var _c=Math.PI*2,jx=Math.PI/180;function iD(e,t){return Is(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function aD(e,t){var r=iD(e,t),n=e.get("center"),i=e.get("radius");ye(i)||(i=[0,i]);var a=yt(r.width,t.getWidth()),o=yt(r.height,t.getHeight()),s=Math.min(a,o),l=yt(i[0],s/2),u=yt(i[1],s/2),f,c,h=e.coordinateSystem;if(h){var d=h.dataToPoint(n);f=d[0]||0,c=d[1]||0}else ye(n)||(n=[n,n]),f=yt(n[0],a)+r.x,c=yt(n[1],o)+r.y;return{cx:f,cy:c,r0:l,r:u}}function HQ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=iD(n,r),s=aD(n,r),l=s.cx,u=s.cy,f=s.r,c=s.r0,h=-n.get("startAngle")*jx,d=n.get("minAngle")*jx,v=0;i.each(a,function(A){!isNaN(A)&&v++});var p=i.getSum(a),m=Math.PI/(p||v)*2,g=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=_c,w=0,S=h,C=g?1:-1;if(i.setLayout({viewRect:o,r:f}),i.each(a,function(A,P){var E;if(isNaN(A)){i.setItemLayout(P,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:g,cx:l,cy:u,r0:c,r:y?NaN:f});return}y!=="area"?E=p===0&&_?m:A*m:E=_c/v,Er?g:m,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:d:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var m=(n.style.margin||0)+2.1;a.height=p.height+m,a.y-=(a.height-c)/2}}}function Ap(e){return e.position==="center"}function GQ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*VQ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,f=s.x,c=s.y,h=s.height;function d(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,M=S.getTextContent(),A=S.getTextGuideLine(),P=t.getItemModel(w),E=P.getModel("label"),L=E.get("position")||P.get(["emphasis","label","position"]),O=E.get("distanceToLabelLine"),N=E.get("alignTo"),H=yt(E.get("edgeDistance"),u),V=E.get("bleedMargin"),U=P.getModel("labelLine"),F=U.get("length");F=yt(F,u);var z=U.get("length2");if(z=yt(z,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":J>0?"left":"right"}var W=Math.PI,X=0,j=E.get("rotate");if(Tt(j))X=j*(W/180);else if(L==="center")X=0;else if(j==="radial"||j===!0){var le=J<0?-ee+W:-ee;X=le}else if(j==="tangential"&&L!=="outside"&&L!=="outer"){var fe=Math.atan2(J,me);fe<0&&(fe=W*2+fe);var ae=me>0;ae&&(fe=W+fe),X=fe-W}if(a=!!X,M.x=we,M.y=$e,M.rotation=X,M.setStyle({verticalAlign:"middle"}),Y){M.setStyle({align:B});var de=M.states.select;de&&(de.x+=M.x,de.y+=M.y)}else{var se=M.getBoundingRect().clone();se.applyTransform(M.getComputedTransform());var ne=(M.style.margin||0)+2.1;se.y-=ne/2,se.height+=ne,r.push({label:M,labelLine:A,position:L,len:F,len2:z,minTurnAngle:U.get("minTurnAngle"),maxSurfaceAngle:U.get("maxSurfaceAngle"),surfaceNormal:new Fe(J,me),linePoints:Ie,textAlign:B,labelDistance:O,labelAlignTo:N,edgeDistance:H,bleedMargin:V,rect:se,unconstrainedWidth:se.width,labelStyleWidth:M.style.width})}S.setTextConfig({inside:Y})}}),!a&&e.get("avoidLabelOverlap")&&WQ(r,n,i,l,u,h,f,c);for(var p=0;p0){for(var f=o.getItemLayout(0),c=1;isNaN(f&&f.startAngle)&&c=a.r0}},t.type="pie",t}(ho);const jQ=YQ;function qQ(e,t,r){t=ye(t)&&{coordDimensions:t}||ue({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=TL(n,t).dimensions,a=new CL(i,e);return a.initData(n,r),a}var KQ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const XQ=KQ;var ZQ=Et(),QQ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new XQ(xt(this.getData,this),xt(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return qQ(this,{coordDimensions:["value"],encodeDefaulter:Rt(Xj,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=ZQ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=R9(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){em(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(So);const JQ=QQ;function eJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(Tt(o)&&!isNaN(o)&&o<0)})}}}function tJ(e){e.registerChartView(jQ),e.registerSeriesModel(JQ),kK("pie",e.registerAction),e.registerLayout(Rt(HQ,"pie")),e.registerProcessor(zQ("pie")),e.registerProcessor(eJ("pie"))}var rJ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(Mt);const nJ=rJ;var Om=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Tn).models[0]},t.type="cartesian2dAxis",t}(Mt);ni(Om,WZ);var sD={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},iJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},sD),a_=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},sD),aJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},a_),oJ=ht({logBase:10},a_);const sJ={category:iJ,value:a_,time:aJ,log:oJ};var lJ={value:1,category:1,time:1,log:1};function Kx(e,t,r,n){R(lJ,function(i,a){var o=st(st({},sJ[a],!0),n,!0),s=function(l){ge(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=t+"Axis."+a,f}return u.prototype.mergeDefaultAndTheme=function(f,c){var h=Nu(this),d=h?Rh(f):{},v=c.getTheme();st(f,v.get(a+"Axis")),st(f,this.getDefaultOption()),f.type=Xx(f),h&&Os(f,d,h)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=Lm.createByAxisModel(this))},u.prototype.getCategories=function(f){var c=this.option;if(c.type==="category")return f?c.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",Xx)}function Xx(e){return e.type||(e.data?"category":"value")}var uJ=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Ne(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),jt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const fJ=uJ;var Rm=["x","y"];function Zx(e){return e.type==="interval"||e.type==="time"}var cJ=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=Rm,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!Zx(r)||!Zx(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,c=(s[1]-o[1])/u,h=o[0]-i[0]*f,d=o[1]-a[0]*c,v=this._transform=[f,0,0,c,h,d];this._invTransform=bh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new nt(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return un(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return un(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new nt(i,a,o,s)},t}(fJ),dJ=function(e){ge(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(tQ);const hJ=dJ;function km(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,f=n.getRect(),c=[f.x,f.x+f.width,f.y,f.y+f.height],h={left:0,right:1,top:0,bottom:1,onZero:2},d=t.get("offset")||0,v=u==="x"?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[h.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[h[l]]:c[0],u==="x"?v[h[l]]:c[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var m={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=m[s],a.labelOffset=o?v[h[s]]-v[h.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),Au(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var g=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-g:g,a.z2=1,a}function Qx(e){return e.get("coordinateSystem")==="cartesian2d"}function Jx(e){var t={xAxisModel:null,yAxisModel:null};return R(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Tn).models[0];t[n]=a}),t}var Pp=Math.log;function vJ(e,t,r){var n=df.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=$L(e,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(e.type==="log"){var h=Pp(e.base);u=[Pp(u[0])/h,Pp(u[1])/h]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:c});var d=n.getExtent.call(e);f&&(u[0]=d[0]),c&&(u[1]=d[1]);var v=n.getInterval.call(e),p=u[0],m=u[1];if(f&&c)v=(m-p)/o;else if(f)for(m=u[0]+v*o;mu[0]&&isFinite(p)&&isFinite(u[0]);)v=wp(v),p=u[1]-v*o;else{var g=e.getTicks().length-1;g>o&&(v=wp(v));var y=v*o;m=Math.ceil(u[1]/v)*v,p=$t(m-y),p<0&&u[0]>=0?(p=0,m=$t(y)):m>0&&u[1]<=0&&(m=0,p=-$t(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,m+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,m-v)}var pJ=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Rm,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Ct(o),u=l.length;if(u){for(var f=[],c=u-1;c>=0;c--){var h=+l[c],d=o[h],v=d.model,p=d.scale;Dm(p)&&v.get("alignTicks")&&v.get("interval")==null?f.push(d):(Lx(p,v),Dm(p)&&(s=d))}f.length&&(s||(s=f.pop(),Lx(s.scale,s.model)),R(f,function(m){vJ(m.scale,m.model,s.scale)}))}}i(n.x),i(n.y);var a={};R(n.x,function(o){eC(n,"y",o,a)}),R(n.y,function(o){eC(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Is(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(R(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=HZ(u);if(f){var c=u.isHorizontal()?"height":"width",h=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+h,u.position==="top"?o.y+=f.height+h:u.position==="left"&&(o.x+=f.width+h)}}}),l()),R(this._coordsList,function(u){u.calcAffineTransform()});function l(){R(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],h=u.inverse?1:0;u.setExtent(c[h],c[1-h]),gJ(u,f?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Re(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):Ad(i-ea)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),rC={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(un(s,s,o),un(l,l,o));var f=ue({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new wo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Iu(c.shape,c.style.lineWidth),c.anid="line",r.add(c);var h=t.get(["axisLine","symbol"]);if(h!=null){var d=t.get(["axisLine","symbolSize"]);Ee(h)&&(h=[h,h]),(Ee(d)||Tt(d))&&(d=[d,d]);var v=qK(t.get(["axisLine","symbolOffset"])||0,d),p=d[0],m=d[1];R([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(g,y){if(h[y]!=="none"&&h[y]!=null){var _=j0(h[y],-p/2,-m/2,p,m,f.stroke,!0),b=g.r+g.offset,x=u?l:s;_.attr({rotation:g.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=bJ(r,n,t,e),a=SJ(r,n,t,e);if(_J(t,a,i),wJ(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=ZL(Ne(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));eD(o)}},axisName:function(e,t,r,n){var i=Au(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),f=u[0]>u[1]?-1:1,c=[a==="start"?u[0]-f*l:a==="end"?u[1]+f*l:(u[0]+u[1])/2,iC(a)?e.labelOffset+o*l:0],h,d=t.get("nameRotate");d!=null&&(d=d*ea/180);var v;iC(a)?h=vo.innerTextLayout(e.rotation,d??e.rotation,o):(h=yJ(e.rotation,a,d||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(h.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),m=t.get("nameTruncate",!0)||{},g=m.ellipsis,y=Au(e.nameTruncateMaxWidth,m.maxWidth,v),_=new mr({x:c[0],y:c[1],rotation:h.rotation,silent:vo.isLabelSilent(t),style:ha(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:g,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||h.textAlign,verticalAlign:s.get("verticalAlign")||h.textVerticalAlign}),z2:1});if(A0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=vo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,dt(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function yJ(e,t,r,n){var i=j2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return Ad(i-ea/2)?(o=l?"bottom":"top",a="center"):Ad(i-ea*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iea/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function _J(e,t,r){if(!HL(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],f=r[1],c=r[r.length-1],h=r[r.length-2];n===!1?(Kr(a),Kr(u)):nC(a,o)&&(n?(Kr(o),Kr(f)):(Kr(a),Kr(u))),i===!1?(Kr(s),Kr(c)):nC(l,s)&&(i?(Kr(l),Kr(h)):(Kr(s),Kr(c)))}}function Kr(e){e&&(e.ignore=!0)}function nC(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=a0([]);return o0(i,i,-e.rotation),r.applyTransform(fs([],i,e.getLocalTransform())),n.applyTransform(fs([],i,t.getLocalTransform())),r.intersect(n)}}function iC(e){return e==="middle"||e==="center"}function lD(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function PJ(e){var t=o_(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=Nm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var c=this.__startIndex;c15)break}}O.prevElClipPaths&&g.restore()};if(y)if(y.length===0)C=m.__endIndex;else for(var A=d.dpr,P=0;P0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?bc:0),this._needsManuallyCompositing),f.__builtin__||r0("ZLevel "+u+" has been used by unkown layer "+f.id),f!==a&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,r(l),a=f),i.__dirty&Br&&!i.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(c,h){!c.__used&&c.getElementCount()>0&&(c.__dirty=!0,c.__startIndex=c.__endIndex=c.__drawIndex=0),c.__dirty&&c.__drawIndex<0&&(c.__drawIndex=c.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,R(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=o_(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new mj[a.type](uC(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new mr(uC(r.label));t.add(a),cC(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),cC(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=M0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){C2(u.event)},onmousedown:Ip(this._onHandleDragMove,this,0,0),drift:Ip(this._onHandleDragMove,this),ondragend:Ip(this._onHandleDragEnd,this)}),n.add(i)),dC(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ye(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,VE(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){fC(this._axisPointerModel,!r&&this._moveAnimation,this._handle,Op(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(Op(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(Op(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),wm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function fC(e,t,r,n){hD(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Or(r,n,e):(r.stopAnimation(),r.attr(n)))}function hD(e,t){if(Re(e)&&Re(t)){var r=!0;return R(t,function(n,i){r=r&&hD(e[i],n)}),!!r}else return e===t}function cC(e,t){e[t.get(["label","show"])?"show":"hide"]()}function Op(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function dC(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const YJ=UJ;function jJ(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function qJ(e,t,r,n,i){var a=r.get("value"),o=vD(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=Oh(s.get("padding")||0),u=s.getFont(),f=u0(o,u),c=i.position,h=f.width+l[1]+l[3],d=f.height+l[0]+l[2],v=i.align;v==="right"&&(c[0]-=h),v==="center"&&(c[0]-=h/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=d),p==="middle"&&(c[1]-=d/2),KJ(c,h,d,n);var m=s.get("backgroundColor");(!m||m==="auto")&&(m=t.get(["axisLine","lineStyle","color"])),e.label={x:c[0],y:c[1],style:ha(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:m}),z2:10}}function KJ(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function vD(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:n_(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};R(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,c=u&&u.getDataParams(f);c&&s.seriesData.push(c)}),Ee(o)?a=o.replace("{value}",a):Ye(o)&&(a=o(s))}return a}function pD(e,t,r){var n=Pu();return o0(n,n,r.rotation),Vg(n,n,r.position),T0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function XJ(e,t,r,n,i,a){var o=uD.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),qJ(t,n,i,a,{position:pD(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function ZJ(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function QJ(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var JJ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),f=hC(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var h=jJ(a),d=eee[u](s,c,f);d.style=h,r.graphicKey=d.type,r.pointer=d}var v=km(l.model,i);XJ(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=km(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=pD(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=hC(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,c=[r.x,r.y];c[f]+=n[f],c[f]=Math.min(l[1],c[f]),c[f]=Math.max(l[0],c[f]);var h=(u[1]+u[0])/2,d=[h,h];d[f]=c[f];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:d,tooltipOption:v[f]}},t}(YJ);function hC(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var eee={line:function(e,t,r){var n=ZJ([t,r[0]],[t,r[1]],vC(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:QJ([t-n/2,r[0]],[n,i],vC(e))}}};function vC(e){return e.dim==="x"?0:1}const tee=JJ;var ree=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(Mt);const nee=ree;var gi=Et(),iee=R;function gD(e,t,r){if(!He.node){var n=t.getZr();gi(n).records||(gi(n).records={}),aee(n,t);var i=gi(n).records[e]||(gi(n).records[e]={});i.handler=r}}function aee(e,t){if(gi(e).initialized)return;gi(e).initialized=!0,r("click",Rt(pC,"click")),r("mousemove",Rt(pC,"mousemove")),r("globalout",see);function r(n,i){e.on(n,function(a){var o=lee(t);iee(gi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),oee(o.pendings,t)})}}function oee(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function see(e,t,r){e.handler("leave",null,r)}function pC(e,t,r,n){t.handler(e,r,n)}function lee(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function Fm(e,t){if(!He.node){var r=t.getZr(),n=(gi(r).records||{})[e];n&&(gi(r).records[e]=null)}}var uee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";gD("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){Fm("axisPointer",n)},t.prototype.dispose=function(r,n){Fm("axisPointer",n)},t.type="axisPointer",t}(Mi);const fee=uee;function mD(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=sf(a,e);if(o==null||o<0||ye(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),c=f.dim,h=u.dim,d=c==="x"||c==="radius"?1:0,v=a.mapDimension(h),p=[];p[d]=a.get(v,o),p[1-d]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Ne(l.dimensions,function(g){return a.mapDimension(g)}),o))||[];else if(s){var m=s.getBoundingRect().clone();m.applyTransform(s.transform),r=[m.x+m.width/2,m.y+m.height/2]}return{point:r,el:s}}var gC=Et();function cee(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||xt(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Zc(i)&&(i=mD({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Zc(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Zc(i),h={},d={},v={list:[],map:{}},p={showPointer:Rt(hee,d),showTooltip:Rt(vee,v)};R(s.coordSysMap,function(g,y){var _=l||g.containPoint(i);R(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=yee(u,b);if(!c&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&mC(b,C,p,!1,h)}})});var m={};return R(f,function(g,y){var _=g.linkGroup;_&&!d[y]&&R(_.axesInfo,function(b,x){var w=d[x];if(b!==g&&w){var S=w.value;_.mapper&&(S=g.axis.scale.parse(_.mapper(S,yC(b),yC(g)))),m[g.key]=S}})}),R(m,function(g,y){mC(f[y],g,p,!0,h)}),pee(d,f,h),gee(v,i,e,o),mee(f,o,r),h}}function mC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=dee(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&ue(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function dee(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return R(t.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,h;if(l.getAxisTooltipData){var d=l.getAxisTooltipData(f,e,r);h=d.dataIndices,c=d.nestestValue}else{if(h=l.getData().indicesOfNearest(f[0],e,r.type==="category"?.5:null),!h.length)return;c=l.getData().get(f[0],h[0])}if(!(c==null||!isFinite(c))){var v=e-c,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=c,a.length=0),R(h,function(m){a.push({seriesIndex:l.seriesIndex,dataIndexInside:m,dataIndex:l.getData().getRawIndex(m)})}))}}),{payloadBatch:a,snapToValue:i}}function hee(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function vee(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Vu(l),f=e.map[u];f||(f=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(f)),f.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function pee(e,t,r){var n=r.axesInfo=[];R(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function gee(e,t,r,n){if(Zc(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function mee(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=gC(n)[i]||{},o=gC(n)[i]={};R(e,function(u,f){var c=u.axisPointerModel.option;c.status==="show"&&u.triggerEmphasis&&R(c.seriesDataIndices,function(h){var d=h.seriesIndex+" | "+h.dataIndex;o[d]=h})});var s=[],l=[];R(a,function(u,f){!o[f]&&l.push(u)}),R(o,function(u,f){!a[f]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function yee(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function yC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Zc(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function yD(e){fD.registerAxisPointerClass("CartesianAxisPointer",tee),e.registerComponentModel(nee),e.registerComponentView(fee),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ye(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=xJ(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},cee)}function _ee(e){va(BJ),va(yD)}function bee(e,t){var r=Oh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Gt({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var wee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(Mt);const See=wee;function _D(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function bD(e){if(He.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var f=u*Math.PI/180,c=o+i,h=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),d=Math.round(((h-Math.SQRT2*i)/2+Math.SQRT2*i-(h-c)/2)*100)/100;s+=";"+a+":-"+d+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Eee(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=He.transformSupported?","+s_+n:",left"+n+",top"+n),Tee+":"+i}function _C(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!He.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=He.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+s_+":"+o+";":[["top",0],["left",0],[wD,o]]}function Lee(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),R(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Dee(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),f=e.getModel("textStyle"),c=$E(e,"html"),h=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+h),t&&i&&n.push(Eee(i,r)),a&&n.push("background-color:"+a),R(["width","color","radius"],function(d){var v="border-"+d,p=vE(v),m=e.get(p);m!=null&&n.push(v+":"+m+(d==="color"?"":"px"))}),n.push(Lee(f)),c!=null&&n.push("padding:"+Oh(c).join("px ")+"px"),n.join(";")+";"}function bC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&TU(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Iee=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,He.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;bC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,f=a.painter.getViewportRoot();Qr(f,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=Cee(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this._alwaysShowContent=a,this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=Mee+Dee(t,!this._firstShow,this._longHide)+_C(a[0],a[1],!0)+("border-color:"+ku(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Ee(a)&&n.get("trigger")==="item"&&!_D(n)&&(s=Pee(n,i,a)),Ee(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ye(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||He.node||!i.getDom())){var o=xC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Hee(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var f=kee;f.x=a.x,f.y=a.y,f.update(),dt(f).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:f},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var c=mD(a,n),h=c.point[0],d=c.point[1];h!=null&&d!=null&&this._tryShow({offsetX:h,offsetY:d,target:c.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(xC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var f=u.getData(),c=bl([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(c.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Ll(i,function(u){if(dt(u).dataIndex!=null)return s=u,!0;if(dt(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=xt(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=bl([n.tooltipOption],a),l=this._renderMode,u=[],f=Fu("section",{blocks:[],noHeader:!0}),c=[],h=new up;R(r,function(y){R(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=vD(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Fu("section",{header:w,noHeader:!Gn(w),sortBlocks:!0,blocks:[]});f.blocks.push(S),R(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),A=C.dataIndexInside,P=M.getDataParams(A);if(!(P.dataIndex<0)){P.axisDim=_.axisDim,P.axisIndex=_.axisIndex,P.axisType=_.axisType,P.axisId=_.axisId,P.axisValue=n_(b.axis,{value:x}),P.axisValueLabel=w,P.marker=h.makeTooltipMarker("item",ku(P.color),l);var E=FS(M.formatTooltip(A,!0,null)),L=E.frag;if(L){var O=bl([M],a).get("valueFormatter");S.blocks.push(O?ue({valueFormatter:O},L):L)}E.text&&c.push(E.text),u.push(P)}})}})}),f.blocks.reverse(),c.reverse();var d=n.position,v=s.get("order"),p=WS(f,h,l,v,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var m=l==="richText"?` -`:"
",g=c.join(m);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,d,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,g,u,Math.random()+"",o[0],o[1],d,null,h)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=dt(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,h=u.getData(c),d=this._renderMode,v=r.positionDefault,p=bl([h.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),m=p.get("trigger");if(!(m!=null&&m!=="item")){var g=u.getDataParams(f,c),y=new up;g.marker=y.makeTooltipMarker("item",ku(g.color),d);var _=FS(u.formatTooltip(f,!1,c)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?WS(x?ue({valueFormatter:x},w):w,y,d,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,S,g,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:h.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=dt(n),o=a.tooltipConfig,s=o.option||{};if(Ee(s)){var l=s;s={content:l,formatter:l}}var u=[s],f=this._ecModel.getComponent(a.componentMainType,a.componentIndex);f&&u.push(f),u.push({formatter:s.content});var c=r.positionDefault,h=bl(u,this._tooltipModel,c?{position:c}:null),d=h.get("content"),v=Math.random()+"",p=new up;this._showOrMove(h,function(){var m=tt(h.get("formatterParams")||{});this._showTooltipContent(h,d,m,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,f){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var c=this._tooltipContent;c.setEnterable(r.get("enterable"));var h=r.get("formatter");l=l||r.get("position");var d=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(h)if(Ee(h)){var m=r.ecModel.get("useUTC"),g=ye(i)?i[0]:i,y=g&&g.axisType&&g.axisType.indexOf("time")>=0;d=h,y&&(d=Ph(g.axisValue,d,m)),d=pE(d,i,!0)}else if(Ye(h)){var _=xt(function(b,x){b===this._ticket&&(c.setContent(x,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,d=h(i,a,_)}else d=h;c.setContent(d,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ye(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ye(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||r.get("position");var c=o.getSize(),h=r.get("align"),d=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ye(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,f],contentSize:c.slice()})),ye(n))i=yt(n[0],u),a=yt(n[1],f);else if(Re(n)){var p=n;p.width=c[0],p.height=c[1];var m=Ls(p,{width:u,height:f});i=m.x,a=m.y,h=null,d=null}else if(Ee(n)&&l){var g=$ee(n,v,c,r.get("borderWidth"));i=g[0],a=g[1]}else{var g=Bee(i,a,o,u,f,h?null:20,d?null:20);i=g[0],a=g[1]}if(h&&(i-=CC(h)?c[0]/2:h==="right"?c[0]:0),d&&(a-=CC(d)?c[1]/2:d==="bottom"?c[1]:0),_D(r)){var g=Fee(i,a,o,u,f);i=g[0],a=g[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&R(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&R(u,function(h,d){var v=c[d]||{},p=h.seriesDataIndices||[],m=v.seriesDataIndices||[];o=o&&h.value===v.value&&h.axisType===v.axisType&&h.axisId===v.axisId&&p.length===m.length,o&&R(p,function(g,y){var _=m[y];o=o&&g.seriesIndex===_.seriesIndex&&g.dataIndex===_.dataIndex}),a&&R(h.seriesDataIndices,function(g){var y=g.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){He.node||!n.getDom()||(wm(this,"_updatePosition"),this._tooltipContent.dispose(),Fm("itemTooltip",n))},t.type="tooltip",t}(Mi);function bl(e,t,r){var n=t.ecModel,i;r?(i=new sr(r,n,n),i=new sr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof sr&&(o=o.get("tooltip",!0)),Ee(o)&&(o={formatter:o}),o&&(i=new sr(o,i,n)))}return i}function xC(e,t){return e.dispatchAction||xt(t.dispatchAction,t)}function Bee(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Fee(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function $ee(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function CC(e){return e==="center"||e==="middle"}function Hee(e,t,r){var n=v0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=lf(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=dt(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const zee=Nee;function Vee(e){va(yD),e.registerComponentModel(See),e.registerComponentView(zee),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Er),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Er)}var Wee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(Mt),Gee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=Ze(r.get("textBaseline"),r.get("textVerticalAlign")),f=new mr({style:ha(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),h=r.get("subtext"),d=new mr({style:ha(s,{text:h,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),m=r.get("triggerEvent",!0);f.silent=!v&&!m,d.silent=!p&&!m,v&&f.on("click",function(){bS(v,"_"+r.get("target"))}),p&&d.on("click",function(){bS(p,"_"+r.get("subtarget"))}),dt(f).eventData=dt(d).eventData=m?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),h&&a.add(d);var g=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=g.width,y.height=g.height;var _=Ls(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),d.setStyle(b),g=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Gt({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(Mi);function Uee(e){e.registerComponentModel(Wee),e.registerComponentView(Gee)}var Yee=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},jee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ye(n)&&R(n,function(a,o){Ee(a)&&(a={type:a}),n[o]=st(a,Yee(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(Mt);const $m=jee;var jo=Ot,Hm=R,wc=Ur,qee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new wc),this.group.add(this._selectorGroup=new wc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var f=r.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},h=r.get("padding"),d=Ls(f,c,h),v=this.layoutInner(r,o,d,a,l,u),p=Ls(ht({width:v.width,height:v.height},f),c,h);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=bee(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=je(),c=n.get("selectedMode"),h=[];i.eachRawSeries(function(d){!d.get("legendHoverLink")&&h.push(d.id)}),Hm(n.getData(),function(d,v){var p=d.get("name");if(!this.newlineDisabled&&(p===""||p===` -`)){var m=new wc;m.newline=!0,u.add(m);return}var g=i.getSeriesByName(p)[0];if(!f.get(p))if(g){var y=g.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(g,p,v,d,n,r,_,x,b,c,a);w.on("click",jo(TC,p,null,a,h)).on("mouseover",jo(zm,g.name,null,a,h)).on("mouseout",jo(Vm,g.name,null,a,h)),f.set(p,!0)}else i.eachRawSeries(function(S){if(!f.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),A=C.getItemVisual(M,"style"),P=C.getItemVisual(M,"legendIcon"),E=uo(A.fill);E&&E[3]===0&&(E[3]=.2,A=ue(ue({},A),{fill:s0(E,"rgba")}));var L=this._createItem(S,p,v,d,n,r,{},A,P,c,a);L.on("click",jo(TC,null,p,a,h)).on("mouseover",jo(zm,null,p,a,h)).on("mouseout",jo(Vm,null,p,a,h)),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Hm(r,function(u){var f=u.type,c=new mr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var h=n.getModel("selectorLabel"),d=n.getModel(["emphasis","selectorLabel"]);E0(c,{normal:h,emphasis:d},{defaultText:u.title}),um(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,h){var d=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),m=o.isSelected(n),g=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var b=Kee(f,a,l,u,d,m,h),x=new wc,w=a.getModel("textStyle");if(Ye(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:f,iconRotate:g,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?g==="inherit"?r.getData().getVisual("symbolRotate"):g:0;x.add(Xee({itemWidth:v,itemHeight:p,icon:f,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,A=o.get("formatter"),P=n;Ee(A)&&A?P=A.replace("{name}",n??""):Ye(A)&&(P=A(n));var E=m?w.getTextColor():a.get("inactiveColor");x.add(new mr({style:ha(w,{text:P,x:C,y:p/2,fill:E,align:M,verticalAlign:"middle"},{inheritColor:E})}));var L=new Gt({shape:x.getBoundingRect(),invisible:!0}),O=a.getModel("tooltip");return O.get("show")&&A0({el:L,componentModel:o,itemName:n,itemTooltipOption:O.option}),x.add(L),x.eachChild(function(N){N.silent=!0}),L.silent=!c,this.getContentGroup().add(x),um(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();ru(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){ru("horizontal",u,r.get("selectorItemGap",!0));var h=u.getBoundingRect(),d=[-h.x,-h.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,m=p===0?"width":"height",g=p===0?"height":"width",y=p===0?"y":"x";s==="end"?d[p]+=f[m]+v:c[p]+=h[m]+v,d[1-p]+=f[g]/2-h[g]/2,u.x=d[0],u.y=d[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[m]=f[m]+v+h[m],_[g]=Math.max(f[g],h[g]),_[y]=Math.min(0,h[y]+d[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(Mi);function Kee(e,t,r,n,i,a,o){function s(m,g){m.lineWidth==="auto"&&(m.lineWidth=g.lineWidth>0?2:0),Hm(m,function(y,_){m[_]==="inherit"&&(m[_]=g[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=e.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:Mm(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var h=t.getModel("lineStyle"),d=h.getLineStyle();if(s(d,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),d.stroke==="auto"&&(d.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),d.stroke=h.get("inactiveColor"),d.lineWidth=h.get("inactiveWidth")}return{itemStyle:u,lineStyle:d}}function Xee(e){var t=e.icon||"roundRect",r=j0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function TC(e,t,r,n){Vm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),zm(e,t,r,n)}function xD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],m=[-d.x,-d.y];n||(m[a]=f[u]);var g=[0,0],y=[-v.x,-v.y],_=Ze(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:g[a]+=v[o]+_}y[1-a]+=d[s]/2-v[s]/2,f.setPosition(m),c.setPosition(g),h.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:d[o],x[s]=Math.max(d[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Gt({shape:w})),c.__rectSize=w[o]}else h.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Or(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",h=n[c]!=null,d=i.childOfName(f);d&&(d.setStyle("fill",h?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),d.cursor=h?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ee(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=Rp[o],l=kp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],h=f.length,d=h?1:0,v={contentPosition:[i.x,i.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var m=u+1,g=p,y=p,_=null;m<=h;++m)_=b(f[m]),(!_&&y.e>g.s+a||_&&!x(_,g.s))&&(y.i>g.i?g=y:g=_,g&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=g.i),++v.pageCount)),y=_;for(var m=u-1,g=p,y=p,_=null;m>=-1;--m)_=b(f[m]),(!_||!x(y,_.s))&&g.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(CD);const rte=tte;function nte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ite(e){va(TD),e.registerComponentModel(ete),e.registerComponentView(rte),nte(e)}function ate(e){va(TD),va(ite)}va([tJ,$Q,GJ,vQ,Uee,Vee,ate,_ee]);function ote(e,t,r){const n=Z0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return Mu.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function ste(e,t){const r=Z0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxyTypeCount.tcp!=null&&t.proxyTypeCount.tcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxyTypeCount.udp!=null&&t.proxyTypeCount.udp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxyTypeCount.http!=null&&t.proxyTypeCount.http!=0&&(n.series[0].data.push({value:t.proxyTypeCount.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxyTypeCount.https!=null&&t.proxyTypeCount.https!=0&&(n.series[0].data.push({value:t.proxyTypeCount.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxyTypeCount.stcp!=null&&t.proxyTypeCount.stcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxyTypeCount.sudp!=null&&t.proxyTypeCount.sudp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxyTypeCount.xtcp!=null&&t.proxyTypeCount.xtcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function lte(e,t,r){const n={width:"600px",height:"400px"},i=Z0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+Mu.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return Mu.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const PC=ie({__name:"LongSpan",props:{content:{},length:{}},setup(e){return(t,r)=>{const n=Hs;return G(),ce(ft,null,[Z(n,{content:t.content,placement:"top"},{default:j(()=>[qt(ee("span",null,be(t.content.slice(0,t.length))+"...",513),[[Kn,t.content.length>t.length]])]),_:1},8,["content"]),qt(ee("span",null,be(t.content),513),[[Kn,t.content.length<30]])],64)}}}),ute={class:"source"},fte=ee("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),cte=ee("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),dte=ie({__name:"ServerOverview",setup(e){let t=$({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bindPort=n.bindPort,t.value.kcpBindPort=n.kcpBindPort,t.value.quicBindPort=n.quicBindPort,t.value.vhostHTTPPort=n.vhostHTTPPort,t.value.vhostHTTPSPort=n.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=n.tcpmuxHTTPConnectPort,t.value.subdomainHost=n.subdomainHost,t.value.maxPoolCount=n.maxPoolCount,t.value.maxPortsPerClient=n.maxPortsPerClient,t.value.maxPortsPerClient=="0"&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=n.allowPortsStr,t.value.tlsForce=n.tlsForce,t.value.heartbeatTimeout=n.heartbeatTimeout,t.value.clientCounts=n.clientCounts,t.value.curConns=n.curConns,t.value.proxyCounts=0,n.proxyTypeCount!=null&&(n.proxyTypeCount.tcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.tcp),n.proxyTypeCount.udp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.udp),n.proxyTypeCount.http!=null&&(t.value.proxyCounts+=n.proxyTypeCount.http),n.proxyTypeCount.https!=null&&(t.value.proxyCounts+=n.proxyTypeCount.https),n.proxyTypeCount.stcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.stcp),n.proxyTypeCount.sudp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.sudp),n.proxyTypeCount.xtcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.xtcp)),ote("traffic",n.totalTrafficIn,n.totalTrafficOut),ste("proxies",n)}).catch(()=>{Wl({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=sA,o=oA,s=$A,l=FA;return G(),ce("div",null,[Z(l,null,{default:j(()=>[Z(s,{md:12},{default:j(()=>[ee("div",ute,[Z(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:j(()=>[Z(a,{label:"Version"},{default:j(()=>[ee("span",null,be(T(t).version),1)]),_:1}),Z(a,{label:"BindPort"},{default:j(()=>[ee("span",null,be(T(t).bindPort),1)]),_:1}),T(t).kcpBindPort!=0?(G(),de(a,{key:0,label:"KCP Bind Port"},{default:j(()=>[ee("span",null,be(T(t).kcpBindPort),1)]),_:1})):Ae("",!0),T(t).quicBindPort!=0?(G(),de(a,{key:1,label:"QUIC Bind Port"},{default:j(()=>[ee("span",null,be(T(t).quicBindPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPPort!=0?(G(),de(a,{key:2,label:"Http Port"},{default:j(()=>[ee("span",null,be(T(t).vhostHTTPPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPSPort!=0?(G(),de(a,{key:3,label:"Https Port"},{default:j(()=>[ee("span",null,be(T(t).vhostHTTPSPort),1)]),_:1})):Ae("",!0),T(t).tcpmuxHTTPConnectPort!=0?(G(),de(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:j(()=>[ee("span",null,be(T(t).tcpmuxHTTPConnectPort),1)]),_:1})):Ae("",!0),T(t).subdomainHost!=""?(G(),de(a,{key:5,label:"Subdomain Host"},{default:j(()=>[Z(PC,{content:T(t).subdomainHost,length:30},null,8,["content"])]),_:1})):Ae("",!0),Z(a,{label:"Max PoolCount"},{default:j(()=>[ee("span",null,be(T(t).maxPoolCount),1)]),_:1}),Z(a,{label:"Max Ports Per Client"},{default:j(()=>[ee("span",null,be(T(t).maxPortsPerClient),1)]),_:1}),T(t).allowPortsStr!=""?(G(),de(a,{key:6,label:"Allow Ports"},{default:j(()=>[Z(PC,{content:T(t).allowPortsStr,length:30},null,8,["content"])]),_:1})):Ae("",!0),T(t).tlsForce===!0?(G(),de(a,{key:7,label:"TLS Force"},{default:j(()=>[ee("span",null,be(T(t).tlsForce),1)]),_:1})):Ae("",!0),Z(a,{label:"HeartBeat Timeout"},{default:j(()=>[ee("span",null,be(T(t).heartbeatTimeout),1)]),_:1}),Z(a,{label:"Client Counts"},{default:j(()=>[ee("span",null,be(T(t).clientCounts),1)]),_:1}),Z(a,{label:"Current Connections"},{default:j(()=>[ee("span",null,be(T(t).curConns),1)]),_:1}),Z(a,{label:"Proxy Counts"},{default:j(()=>[ee("span",null,be(T(t).proxyCounts),1)]),_:1})]),_:1})])]),_:1}),Z(s,{md:12},{default:j(()=>[fte,cte]),_:1})]),_:1})])}}});class qs{constructor(t){zt(this,"name");zt(this,"type");zt(this,"annotations");zt(this,"encryption");zt(this,"compression");zt(this,"conns");zt(this,"trafficIn");zt(this,"trafficOut");zt(this,"lastStartTime");zt(this,"lastCloseTime");zt(this,"status");zt(this,"clientVersion");zt(this,"addr");zt(this,"port");zt(this,"customDomains");zt(this,"hostHeaderRewrite");zt(this,"locations");zt(this,"subdomain");var r,n,i,a,o;if(this.name=t.name,this.type="",this.annotations=new Map,(r=t.conf)!=null&&r.annotations)for(const s in t.conf.annotations)this.annotations.set(s,t.conf.annotations[s]);this.encryption=!1,this.compression=!1,this.encryption=((i=(n=t.conf)==null?void 0:n.transport)==null?void 0:i.useEncryption)||this.encryption,this.compression=((o=(a=t.conf)==null?void 0:a.transport)==null?void 0:o.useCompression)||this.compression,this.conns=t.curConns,this.trafficIn=t.todayTrafficIn,this.trafficOut=t.todayTrafficOut,this.lastStartTime=t.lastStartTime,this.lastCloseTime=t.lastCloseTime,this.status=t.status,this.clientVersion=t.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class hte extends qs{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class vte extends qs{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class pte extends qs{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf&&(this.customDomains=t.conf.customDomains||this.customDomains,this.hostHeaderRewrite=t.conf.hostHeaderRewrite,this.locations=t.conf.locations,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class gte extends qs{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null&&(this.customDomains=t.conf.customDomains||this.customDomains,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class mte extends qs{constructor(t){super(t),this.type="stcp"}}class yte extends qs{constructor(t){super(t),this.type="sudp"}}const _te=["id"],bte=ie({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxyName;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{lte(t.proxyName,i.trafficIn,i.trafficOut)}).catch(i=>{Wl({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(G(),ce("div",{id:n.proxyName,style:{width:"600px",height:"400px"}},null,8,_te))}}),wte={key:2},Ste={class:"annotation-key"},xte=ie({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,r=()=>{const n=[];return t.row.annotations&&t.row.annotations.forEach((i,a)=>{n.push({key:a,value:i})}),n};return(n,i)=>{const a=sA,o=oA,s=VA,l=wW;return G(),ce(ft,null,[n.proxyType==="http"||n.proxyType==="https"?(G(),de(o,{key:0,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:j(()=>[Z(a,{label:"Name"},{default:j(()=>[ee("span",null,be(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:j(()=>[ee("span",null,be(n.row.type),1)]),_:1}),Z(a,{label:"Domains"},{default:j(()=>[ee("span",null,be(n.row.customDomains),1)]),_:1}),Z(a,{label:"SubDomain"},{default:j(()=>[ee("span",null,be(n.row.subdomain),1)]),_:1}),Z(a,{label:"locations"},{default:j(()=>[ee("span",null,be(n.row.locations),1)]),_:1}),Z(a,{label:"HostRewrite"},{default:j(()=>[ee("span",null,be(n.row.hostHeaderRewrite),1)]),_:1}),Z(a,{label:"Encryption"},{default:j(()=>[ee("span",null,be(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:j(()=>[ee("span",null,be(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:j(()=>[ee("span",null,be(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:j(()=>[ee("span",null,be(n.row.lastCloseTime),1)]),_:1})]),_:1})):(G(),de(o,{key:1,"label-position":"left",inline:"",class:"proxy-table-expand"},{default:j(()=>[Z(a,{label:"Name"},{default:j(()=>[ee("span",null,be(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:j(()=>[ee("span",null,be(n.row.type),1)]),_:1}),Z(a,{label:"Addr"},{default:j(()=>[ee("span",null,be(n.row.addr),1)]),_:1}),Z(a,{label:"Encryption"},{default:j(()=>[ee("span",null,be(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:j(()=>[ee("span",null,be(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:j(()=>[ee("span",null,be(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:j(()=>[ee("span",null,be(n.row.lastCloseTime),1)]),_:1})]),_:1})),n.row.annotations&&n.row.annotations.size>0?(G(),ce("div",wte,[Z(s),Z(l,{class:"title-text",size:"large"},{default:j(()=>[mt("Annotations")]),_:1}),ee("ul",null,[(G(!0),ce(ft,null,Hp(r(),u=>(G(),ce("li",null,[ee("span",Ste,be(u.key),1),ee("span",null,be(u.value),1)]))),256))])])):Ae("",!0)],64)}}}),Cte={class:"flex items-center",style:{"margin-right":"30px"}},Ks=ie({__name:"ProxyView",props:{proxies:{},proxyType:{}},emits:["refresh"],setup(e,{emit:t}){const r=t,n=$(!1),i=$(""),a=(l,u)=>Mu.fileSize(l.trafficIn),o=(l,u)=>Mu.fileSize(l.trafficOut),s=()=>{fetch("../api/proxies?status=offline",{method:"DELETE",credentials:"include"}).then(l=>{l.ok?(Wl({message:"Successfully cleared offline proxies",type:"success"}),r("refresh")):Wl({message:"Failed to clear offline proxies: "+l.status+" "+l.statusText,type:"warning"})}).catch(l=>{Wl({message:"Failed to clear offline proxies: "+l.message,type:"warning"})})};return(l,u)=>{const f=yg,c=eV,h=q6,d=gW,v=N8,p=pW,m=bte,g=p6;return G(),ce(ft,null,[ee("div",null,[Z(h,{icon:null,style:{width:"100%","margin-left":"30px","margin-bottom":"20px"}},{title:j(()=>[ee("span",null,be(l.proxyType),1)]),content:j(()=>[]),extra:j(()=>[ee("div",Cte,[Z(c,{title:"Are you sure to clear all data of offline proxies?",onConfirm:s},{reference:j(()=>[Z(f,null,{default:j(()=>[mt("ClearOfflineProxies")]),_:1})]),_:1}),Z(f,{onClick:u[0]||(u[0]=y=>l.$emit("refresh"))},{default:j(()=>[mt("Refresh")]),_:1})])]),_:1}),Z(p,{data:l.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:j(()=>[Z(d,{type:"expand"},{default:j(y=>[Z(xte,{row:y.row,proxyType:l.proxyType},null,8,["row","proxyType"])]),_:1}),Z(d,{label:"Name",prop:"name",sortable:""}),Z(d,{label:"Port",prop:"port",sortable:""}),Z(d,{label:"Connections",prop:"conns",sortable:""}),Z(d,{label:"Traffic In",prop:"trafficIn",formatter:a,sortable:""}),Z(d,{label:"Traffic Out",prop:"trafficOut",formatter:o,sortable:""}),Z(d,{label:"ClientVersion",prop:"clientVersion",sortable:""}),Z(d,{label:"Status",prop:"status",sortable:""},{default:j(y=>[y.row.status==="online"?(G(),de(v,{key:0,type:"success"},{default:j(()=>[mt(be(y.row.status),1)]),_:2},1024)):(G(),de(v,{key:1,type:"danger"},{default:j(()=>[mt(be(y.row.status),1)]),_:2},1024))]),_:1}),Z(d,{label:"Operations"},{default:j(y=>[Z(f,{type:"primary",name:y.row.name,style:{"margin-bottom":"10px"},onClick:_=>{i.value=y.row.name,n.value=!0}},{default:j(()=>[mt("Traffic ")]),_:2},1032,["name","onClick"])]),_:1})]),_:1},8,["data"])]),Z(g,{modelValue:n.value,"onUpdate:modelValue":u[1]||(u[1]=y=>n.value=y),"destroy-on-close":"true",title:i.value,width:"700px"},{default:j(()=>[Z(m,{proxyName:i.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])],64)}}}),Tte=ie({__name:"ProxiesTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new hte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"tcp",onRefresh:r},null,8,["proxies"]))}}),Mte=ie({__name:"ProxiesUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new vte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"udp",onRefresh:r},null,8,["proxies"]))}}),Ate=ie({__name:"ProxiesHTTP",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new pte(s,n,i))})})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"http",onRefresh:r},null,8,["proxies"]))}}),Pte=ie({__name:"ProxiesHTTPS",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPSPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new gte(s,n,i))})})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"https",onRefresh:r},null,8,["proxies"]))}}),Ete=ie({__name:"ProxiesSTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new mte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"stcp",onRefresh:r},null,8,["proxies"]))}}),Lte=ie({__name:"ProxiesSUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new yte(i))})};return r(),(n,i)=>(G(),de(Ks,{proxies:T(t),proxyType:"sudp",onRefresh:r},null,8,["proxies"]))}}),Dte=jG({history:uG(),routes:[{path:"/",name:"ServerOverview",component:dte},{path:"/proxies/tcp",name:"ProxiesTCP",component:Tte},{path:"/proxies/udp",name:"ProxiesUDP",component:Mte},{path:"/proxies/http",name:"ProxiesHTTP",component:Ate},{path:"/proxies/https",name:"ProxiesHTTPS",component:Pte},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Ete},{path:"/proxies/sudp",name:"ProxiesSUDP",component:Lte}]}),MD=oR(GW);MD.use(Dte);MD.mount("#app")});export default Ite(); +`:"
",g=c.join(m);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,d,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,g,u,Math.random()+"",o[0],o[1],d,null,h)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=dt(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,h=u.getData(c),d=this._renderMode,v=r.positionDefault,p=bl([h.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),m=p.get("trigger");if(!(m!=null&&m!=="item")){var g=u.getDataParams(f,c),y=new up;g.marker=y.makeTooltipMarker("item",ku(g.color),d);var _=FS(u.formatTooltip(f,!1,c)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?WS(x?ue({valueFormatter:x},w):w,y,d,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,S,g,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:h.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=dt(n),o=a.tooltipConfig,s=o.option||{};if(Ee(s)){var l=s;s={content:l,formatter:l}}var u=[s],f=this._ecModel.getComponent(a.componentMainType,a.componentIndex);f&&u.push(f),u.push({formatter:s.content});var c=r.positionDefault,h=bl(u,this._tooltipModel,c?{position:c}:null),d=h.get("content"),v=Math.random()+"",p=new up;this._showOrMove(h,function(){var m=tt(h.get("formatterParams")||{});this._showTooltipContent(h,d,m,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,f){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var c=this._tooltipContent;c.setEnterable(r.get("enterable"));var h=r.get("formatter");l=l||r.get("position");var d=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(h)if(Ee(h)){var m=r.ecModel.get("useUTC"),g=ye(i)?i[0]:i,y=g&&g.axisType&&g.axisType.indexOf("time")>=0;d=h,y&&(d=Ph(g.axisValue,d,m)),d=pE(d,i,!0)}else if(Ye(h)){var _=xt(function(b,x){b===this._ticket&&(c.setContent(x,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,d=h(i,a,_)}else d=h;c.setContent(d,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ye(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ye(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||r.get("position");var c=o.getSize(),h=r.get("align"),d=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ye(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,f],contentSize:c.slice()})),ye(n))i=yt(n[0],u),a=yt(n[1],f);else if(Re(n)){var p=n;p.width=c[0],p.height=c[1];var m=Is(p,{width:u,height:f});i=m.x,a=m.y,h=null,d=null}else if(Ee(n)&&l){var g=$ee(n,v,c,r.get("borderWidth"));i=g[0],a=g[1]}else{var g=Bee(i,a,o,u,f,h?null:20,d?null:20);i=g[0],a=g[1]}if(h&&(i-=CC(h)?c[0]/2:h==="right"?c[0]:0),d&&(a-=CC(d)?c[1]/2:d==="bottom"?c[1]:0),_D(r)){var g=Fee(i,a,o,u,f);i=g[0],a=g[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&R(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&R(u,function(h,d){var v=c[d]||{},p=h.seriesDataIndices||[],m=v.seriesDataIndices||[];o=o&&h.value===v.value&&h.axisType===v.axisType&&h.axisId===v.axisId&&p.length===m.length,o&&R(p,function(g,y){var _=m[y];o=o&&g.seriesIndex===_.seriesIndex&&g.dataIndex===_.dataIndex}),a&&R(h.seriesDataIndices,function(g){var y=g.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){He.node||!n.getDom()||(wm(this,"_updatePosition"),this._tooltipContent.dispose(),Fm("itemTooltip",n))},t.type="tooltip",t}(Mi);function bl(e,t,r){var n=t.ecModel,i;r?(i=new sr(r,n,n),i=new sr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof sr&&(o=o.get("tooltip",!0)),Ee(o)&&(o={formatter:o}),o&&(i=new sr(o,i,n)))}return i}function xC(e,t){return e.dispatchAction||xt(t.dispatchAction,t)}function Bee(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Fee(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function $ee(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function CC(e){return e==="center"||e==="middle"}function Hee(e,t,r){var n=v0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=lf(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=dt(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const zee=Nee;function Vee(e){va(yD),e.registerComponentModel(See),e.registerComponentView(zee),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Er),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Er)}var Wee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(Mt),Gee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=Ze(r.get("textBaseline"),r.get("textVerticalAlign")),f=new mr({style:ha(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),h=r.get("subtext"),d=new mr({style:ha(s,{text:h,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),m=r.get("triggerEvent",!0);f.silent=!v&&!m,d.silent=!p&&!m,v&&f.on("click",function(){bS(v,"_"+r.get("target"))}),p&&d.on("click",function(){bS(p,"_"+r.get("subtarget"))}),dt(f).eventData=dt(d).eventData=m?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),h&&a.add(d);var g=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=g.width,y.height=g.height;var _=Is(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),d.setStyle(b),g=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Gt({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(Mi);function Uee(e){e.registerComponentModel(Wee),e.registerComponentView(Gee)}var Yee=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},jee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ye(n)&&R(n,function(a,o){Ee(a)&&(a={type:a}),n[o]=st(a,Yee(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(Mt);const $m=jee;var Ko=Rt,Hm=R,wc=Ur,qee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new wc),this.group.add(this._selectorGroup=new wc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var f=r.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},h=r.get("padding"),d=Is(f,c,h),v=this.layoutInner(r,o,d,a,l,u),p=Is(ht({width:v.width,height:v.height},f),c,h);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=bee(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=je(),c=n.get("selectedMode"),h=[];i.eachRawSeries(function(d){!d.get("legendHoverLink")&&h.push(d.id)}),Hm(n.getData(),function(d,v){var p=d.get("name");if(!this.newlineDisabled&&(p===""||p===` +`)){var m=new wc;m.newline=!0,u.add(m);return}var g=i.getSeriesByName(p)[0];if(!f.get(p))if(g){var y=g.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(g,p,v,d,n,r,_,x,b,c,a);w.on("click",Ko(TC,p,null,a,h)).on("mouseover",Ko(zm,g.name,null,a,h)).on("mouseout",Ko(Vm,g.name,null,a,h)),f.set(p,!0)}else i.eachRawSeries(function(S){if(!f.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),A=C.getItemVisual(M,"style"),P=C.getItemVisual(M,"legendIcon"),E=uo(A.fill);E&&E[3]===0&&(E[3]=.2,A=ue(ue({},A),{fill:s0(E,"rgba")}));var L=this._createItem(S,p,v,d,n,r,{},A,P,c,a);L.on("click",Ko(TC,null,p,a,h)).on("mouseover",Ko(zm,null,p,a,h)).on("mouseout",Ko(Vm,null,p,a,h)),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Hm(r,function(u){var f=u.type,c=new mr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var h=n.getModel("selectorLabel"),d=n.getModel(["emphasis","selectorLabel"]);E0(c,{normal:h,emphasis:d},{defaultText:u.title}),um(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,h){var d=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),m=o.isSelected(n),g=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var b=Kee(f,a,l,u,d,m,h),x=new wc,w=a.getModel("textStyle");if(Ye(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:f,iconRotate:g,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?g==="inherit"?r.getData().getVisual("symbolRotate"):g:0;x.add(Xee({itemWidth:v,itemHeight:p,icon:f,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,A=o.get("formatter"),P=n;Ee(A)&&A?P=A.replace("{name}",n??""):Ye(A)&&(P=A(n));var E=m?w.getTextColor():a.get("inactiveColor");x.add(new mr({style:ha(w,{text:P,x:C,y:p/2,fill:E,align:M,verticalAlign:"middle"},{inheritColor:E})}));var L=new Gt({shape:x.getBoundingRect(),invisible:!0}),O=a.getModel("tooltip");return O.get("show")&&A0({el:L,componentModel:o,itemName:n,itemTooltipOption:O.option}),x.add(L),x.eachChild(function(N){N.silent=!0}),L.silent=!c,this.getContentGroup().add(x),um(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();ru(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){ru("horizontal",u,r.get("selectorItemGap",!0));var h=u.getBoundingRect(),d=[-h.x,-h.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,m=p===0?"width":"height",g=p===0?"height":"width",y=p===0?"y":"x";s==="end"?d[p]+=f[m]+v:c[p]+=h[m]+v,d[1-p]+=f[g]/2-h[g]/2,u.x=d[0],u.y=d[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[m]=f[m]+v+h[m],_[g]=Math.max(f[g],h[g]),_[y]=Math.min(0,h[y]+d[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(Mi);function Kee(e,t,r,n,i,a,o){function s(m,g){m.lineWidth==="auto"&&(m.lineWidth=g.lineWidth>0?2:0),Hm(m,function(y,_){m[_]==="inherit"&&(m[_]=g[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=e.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:Mm(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var h=t.getModel("lineStyle"),d=h.getLineStyle();if(s(d,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),d.stroke==="auto"&&(d.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),d.stroke=h.get("inactiveColor"),d.lineWidth=h.get("inactiveWidth")}return{itemStyle:u,lineStyle:d}}function Xee(e){var t=e.icon||"roundRect",r=j0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function TC(e,t,r,n){Vm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),zm(e,t,r,n)}function xD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],m=[-d.x,-d.y];n||(m[a]=f[u]);var g=[0,0],y=[-v.x,-v.y],_=Ze(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:g[a]+=v[o]+_}y[1-a]+=d[s]/2-v[s]/2,f.setPosition(m),c.setPosition(g),h.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:d[o],x[s]=Math.max(d[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Gt({shape:w})),c.__rectSize=w[o]}else h.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Or(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",h=n[c]!=null,d=i.childOfName(f);d&&(d.setStyle("fill",h?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),d.cursor=h?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ee(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=Rp[o],l=kp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],h=f.length,d=h?1:0,v={contentPosition:[i.x,i.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var m=u+1,g=p,y=p,_=null;m<=h;++m)_=b(f[m]),(!_&&y.e>g.s+a||_&&!x(_,g.s))&&(y.i>g.i?g=y:g=_,g&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=g.i),++v.pageCount)),y=_;for(var m=u-1,g=p,y=p,_=null;m>=-1;--m)_=b(f[m]),(!_||!x(y,_.s))&&g.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(CD);const rte=tte;function nte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ite(e){va(TD),e.registerComponentModel(ete),e.registerComponentView(rte),nte(e)}function ate(e){va(TD),va(ite)}va([tJ,$Q,GJ,vQ,Uee,Vee,ate,_ee]);function ote(e,t,r){const n=Z0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return Mu.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function ste(e,t){const r=Z0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxyTypeCount.tcp!=null&&t.proxyTypeCount.tcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxyTypeCount.udp!=null&&t.proxyTypeCount.udp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxyTypeCount.http!=null&&t.proxyTypeCount.http!=0&&(n.series[0].data.push({value:t.proxyTypeCount.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxyTypeCount.https!=null&&t.proxyTypeCount.https!=0&&(n.series[0].data.push({value:t.proxyTypeCount.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxyTypeCount.stcp!=null&&t.proxyTypeCount.stcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxyTypeCount.sudp!=null&&t.proxyTypeCount.sudp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxyTypeCount.xtcp!=null&&t.proxyTypeCount.xtcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function lte(e,t,r){const n={width:"600px",height:"400px"},i=Z0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+Mu.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return Mu.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const PC=ie({__name:"LongSpan",props:{content:{},length:{}},setup(e){return(t,r)=>{const n=Vs;return G(),ce(ft,null,[Z(n,{content:t.content,placement:"top"},{default:q(()=>[qt(te("span",null,xe(t.content.slice(0,t.length))+"...",513),[[Kn,t.content.length>t.length]])]),_:1},8,["content"]),qt(te("span",null,xe(t.content),513),[[Kn,t.content.length<30]])],64)}}}),ute={class:"source"},fte=te("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),cte=te("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),dte=ie({__name:"ServerOverview",setup(e){let t=$({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bindPort=n.bindPort,t.value.kcpBindPort=n.kcpBindPort,t.value.quicBindPort=n.quicBindPort,t.value.vhostHTTPPort=n.vhostHTTPPort,t.value.vhostHTTPSPort=n.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=n.tcpmuxHTTPConnectPort,t.value.subdomainHost=n.subdomainHost,t.value.maxPoolCount=n.maxPoolCount,t.value.maxPortsPerClient=n.maxPortsPerClient,t.value.maxPortsPerClient=="0"&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=n.allowPortsStr,t.value.tlsForce=n.tlsForce,t.value.heartbeatTimeout=n.heartbeatTimeout,t.value.clientCounts=n.clientCounts,t.value.curConns=n.curConns,t.value.proxyCounts=0,n.proxyTypeCount!=null&&(n.proxyTypeCount.tcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.tcp),n.proxyTypeCount.udp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.udp),n.proxyTypeCount.http!=null&&(t.value.proxyCounts+=n.proxyTypeCount.http),n.proxyTypeCount.https!=null&&(t.value.proxyCounts+=n.proxyTypeCount.https),n.proxyTypeCount.stcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.stcp),n.proxyTypeCount.sudp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.sudp),n.proxyTypeCount.xtcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.xtcp)),ote("traffic",n.totalTrafficIn,n.totalTrafficOut),ste("proxies",n)}).catch(()=>{Wl({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=sA,o=oA,s=$A,l=FA;return G(),ce("div",null,[Z(l,null,{default:q(()=>[Z(s,{md:12},{default:q(()=>[te("div",ute,[Z(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:q(()=>[Z(a,{label:"Version"},{default:q(()=>[te("span",null,xe(T(t).version),1)]),_:1}),Z(a,{label:"BindPort"},{default:q(()=>[te("span",null,xe(T(t).bindPort),1)]),_:1}),T(t).kcpBindPort!=0?(G(),ve(a,{key:0,label:"KCP Bind Port"},{default:q(()=>[te("span",null,xe(T(t).kcpBindPort),1)]),_:1})):Ae("",!0),T(t).quicBindPort!=0?(G(),ve(a,{key:1,label:"QUIC Bind Port"},{default:q(()=>[te("span",null,xe(T(t).quicBindPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPPort!=0?(G(),ve(a,{key:2,label:"HTTP Port"},{default:q(()=>[te("span",null,xe(T(t).vhostHTTPPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPSPort!=0?(G(),ve(a,{key:3,label:"HTTPS Port"},{default:q(()=>[te("span",null,xe(T(t).vhostHTTPSPort),1)]),_:1})):Ae("",!0),T(t).tcpmuxHTTPConnectPort!=0?(G(),ve(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:q(()=>[te("span",null,xe(T(t).tcpmuxHTTPConnectPort),1)]),_:1})):Ae("",!0),T(t).subdomainHost!=""?(G(),ve(a,{key:5,label:"Subdomain Host"},{default:q(()=>[Z(PC,{content:T(t).subdomainHost,length:30},null,8,["content"])]),_:1})):Ae("",!0),Z(a,{label:"Max PoolCount"},{default:q(()=>[te("span",null,xe(T(t).maxPoolCount),1)]),_:1}),Z(a,{label:"Max Ports Per Client"},{default:q(()=>[te("span",null,xe(T(t).maxPortsPerClient),1)]),_:1}),T(t).allowPortsStr!=""?(G(),ve(a,{key:6,label:"Allow Ports"},{default:q(()=>[Z(PC,{content:T(t).allowPortsStr,length:30},null,8,["content"])]),_:1})):Ae("",!0),T(t).tlsForce===!0?(G(),ve(a,{key:7,label:"TLS Force"},{default:q(()=>[te("span",null,xe(T(t).tlsForce),1)]),_:1})):Ae("",!0),Z(a,{label:"HeartBeat Timeout"},{default:q(()=>[te("span",null,xe(T(t).heartbeatTimeout),1)]),_:1}),Z(a,{label:"Client Counts"},{default:q(()=>[te("span",null,xe(T(t).clientCounts),1)]),_:1}),Z(a,{label:"Current Connections"},{default:q(()=>[te("span",null,xe(T(t).curConns),1)]),_:1}),Z(a,{label:"Proxy Counts"},{default:q(()=>[te("span",null,xe(T(t).proxyCounts),1)]),_:1})]),_:1})])]),_:1}),Z(s,{md:12},{default:q(()=>[fte,cte]),_:1})]),_:1})])}}});class Io{constructor(t){It(this,"name");It(this,"type");It(this,"annotations");It(this,"encryption");It(this,"compression");It(this,"conns");It(this,"trafficIn");It(this,"trafficOut");It(this,"lastStartTime");It(this,"lastCloseTime");It(this,"status");It(this,"clientVersion");It(this,"addr");It(this,"port");It(this,"customDomains");It(this,"hostHeaderRewrite");It(this,"locations");It(this,"subdomain");var r,n,i,a,o;if(this.name=t.name,this.type="",this.annotations=new Map,(r=t.conf)!=null&&r.annotations)for(const s in t.conf.annotations)this.annotations.set(s,t.conf.annotations[s]);this.encryption=!1,this.compression=!1,this.encryption=((i=(n=t.conf)==null?void 0:n.transport)==null?void 0:i.useEncryption)||this.encryption,this.compression=((o=(a=t.conf)==null?void 0:a.transport)==null?void 0:o.useCompression)||this.compression,this.conns=t.curConns,this.trafficIn=t.todayTrafficIn,this.trafficOut=t.todayTrafficOut,this.lastStartTime=t.lastStartTime,this.lastCloseTime=t.lastCloseTime,this.status=t.status,this.clientVersion=t.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class hte extends Io{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class vte extends Io{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class pte extends Io{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf&&(this.customDomains=t.conf.customDomains||this.customDomains,this.hostHeaderRewrite=t.conf.hostHeaderRewrite,this.locations=t.conf.locations,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class gte extends Io{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null&&(this.customDomains=t.conf.customDomains||this.customDomains,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class mte extends Io{constructor(r,n,i){super(r);It(this,"multiplexer");It(this,"routeByHTTPUser");this.type="tcpmux",this.port=n,this.multiplexer="",this.routeByHTTPUser="",r.conf&&(this.customDomains=r.conf.customDomains||this.customDomains,this.multiplexer=r.conf.multiplexer,this.routeByHTTPUser=r.conf.routeByHTTPUser,r.conf.subdomain&&(this.subdomain=`${r.conf.subdomain}.${i}`))}}class yte extends Io{constructor(t){super(t),this.type="stcp"}}class _te extends Io{constructor(t){super(t),this.type="sudp"}}const bte=["id"],wte=ie({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxyName;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{lte(t.proxyName,i.trafficIn,i.trafficOut)}).catch(i=>{Wl({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(G(),ce("div",{id:n.proxyName,style:{width:"600px",height:"400px"}},null,8,bte))}}),Ste={key:0},xte={key:1},Cte={key:2},Tte={key:0},Mte={class:"annotation-key"},Ate=ie({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,r=()=>{const n=[];return t.row.annotations&&t.row.annotations.forEach((i,a)=>{n.push({key:a,value:i})}),n};return(n,i)=>{const a=sA,o=oA,s=VA,l=wW;return G(),ce(ft,null,[Z(o,{"label-position":"left","label-width":"auto",inline:"",class:"proxy-table-expand"},{default:q(()=>[Z(a,{label:"Name"},{default:q(()=>[te("span",null,xe(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:q(()=>[te("span",null,xe(n.row.type),1)]),_:1}),Z(a,{label:"Encryption"},{default:q(()=>[te("span",null,xe(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:q(()=>[te("span",null,xe(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:q(()=>[te("span",null,xe(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:q(()=>[te("span",null,xe(n.row.lastCloseTime),1)]),_:1}),n.proxyType==="http"||n.proxyType==="https"?(G(),ce("div",Ste,[Z(a,{label:"Domains"},{default:q(()=>[te("span",null,xe(n.row.customDomains),1)]),_:1}),Z(a,{label:"SubDomain"},{default:q(()=>[te("span",null,xe(n.row.subdomain),1)]),_:1}),Z(a,{label:"locations"},{default:q(()=>[te("span",null,xe(n.row.locations),1)]),_:1}),Z(a,{label:"HostRewrite"},{default:q(()=>[te("span",null,xe(n.row.hostHeaderRewrite),1)]),_:1})])):n.proxyType==="tcpmux"?(G(),ce("div",xte,[Z(a,{label:"Multiplexer"},{default:q(()=>[te("span",null,xe(n.row.multiplexer),1)]),_:1}),Z(a,{label:"RouteByHTTPUser"},{default:q(()=>[te("span",null,xe(n.row.routeByHTTPUser),1)]),_:1}),Z(a,{label:"Domains"},{default:q(()=>[te("span",null,xe(n.row.customDomains),1)]),_:1}),Z(a,{label:"SubDomain"},{default:q(()=>[te("span",null,xe(n.row.subdomain),1)]),_:1})])):(G(),ce("div",Cte,[Z(a,{label:"Addr"},{default:q(()=>[te("span",null,xe(n.row.addr),1)]),_:1})]))]),_:1}),n.row.annotations&&n.row.annotations.size>0?(G(),ce("div",Tte,[Z(s),Z(l,{class:"title-text",size:"large"},{default:q(()=>[pt("Annotations")]),_:1}),te("ul",null,[(G(!0),ce(ft,null,Hp(r(),u=>(G(),ce("li",null,[te("span",Mte,xe(u.key),1),te("span",null,xe(u.value),1)]))),256))])])):Ae("",!0)],64)}}}),Pte={class:"flex items-center",style:{"margin-right":"30px"}},Oo=ie({__name:"ProxyView",props:{proxies:{},proxyType:{}},emits:["refresh"],setup(e,{emit:t}){const r=t,n=$(!1),i=$(""),a=(l,u)=>Mu.fileSize(l.trafficIn),o=(l,u)=>Mu.fileSize(l.trafficOut),s=()=>{fetch("../api/proxies?status=offline",{method:"DELETE",credentials:"include"}).then(l=>{l.ok?(Wl({message:"Successfully cleared offline proxies",type:"success"}),r("refresh")):Wl({message:"Failed to clear offline proxies: "+l.status+" "+l.statusText,type:"warning"})}).catch(l=>{Wl({message:"Failed to clear offline proxies: "+l.message,type:"warning"})})};return(l,u)=>{const f=yg,c=eV,h=q6,d=gW,v=N8,p=pW,m=wte,g=p6;return G(),ce(ft,null,[te("div",null,[Z(h,{icon:null,style:{width:"100%","margin-left":"30px","margin-bottom":"20px"}},{title:q(()=>[te("span",null,xe(l.proxyType),1)]),content:q(()=>[]),extra:q(()=>[te("div",Pte,[Z(c,{title:"Are you sure to clear all data of offline proxies?",onConfirm:s},{reference:q(()=>[Z(f,null,{default:q(()=>[pt("ClearOfflineProxies")]),_:1})]),_:1}),Z(f,{onClick:u[0]||(u[0]=y=>l.$emit("refresh"))},{default:q(()=>[pt("Refresh")]),_:1})])]),_:1}),Z(p,{data:l.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:q(()=>[Z(d,{type:"expand"},{default:q(y=>[Z(Ate,{row:y.row,proxyType:l.proxyType},null,8,["row","proxyType"])]),_:1}),Z(d,{label:"Name",prop:"name",sortable:""}),Z(d,{label:"Port",prop:"port",sortable:""}),Z(d,{label:"Connections",prop:"conns",sortable:""}),Z(d,{label:"Traffic In",prop:"trafficIn",formatter:a,sortable:""}),Z(d,{label:"Traffic Out",prop:"trafficOut",formatter:o,sortable:""}),Z(d,{label:"ClientVersion",prop:"clientVersion",sortable:""}),Z(d,{label:"Status",prop:"status",sortable:""},{default:q(y=>[y.row.status==="online"?(G(),ve(v,{key:0,type:"success"},{default:q(()=>[pt(xe(y.row.status),1)]),_:2},1024)):(G(),ve(v,{key:1,type:"danger"},{default:q(()=>[pt(xe(y.row.status),1)]),_:2},1024))]),_:1}),Z(d,{label:"Operations"},{default:q(y=>[Z(f,{type:"primary",name:y.row.name,style:{"margin-bottom":"10px"},onClick:_=>{i.value=y.row.name,n.value=!0}},{default:q(()=>[pt("Traffic ")]),_:2},1032,["name","onClick"])]),_:1})]),_:1},8,["data"])]),Z(g,{modelValue:n.value,"onUpdate:modelValue":u[1]||(u[1]=y=>n.value=y),"destroy-on-close":"true",title:i.value,width:"700px"},{default:q(()=>[Z(m,{proxyName:i.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])],64)}}}),Ete=ie({__name:"ProxiesTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new hte(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"tcp",onRefresh:r},null,8,["proxies"]))}}),Lte=ie({__name:"ProxiesUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new vte(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"udp",onRefresh:r},null,8,["proxies"]))}}),Dte=ie({__name:"ProxiesHTTP",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new pte(s,n,i))})})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"http",onRefresh:r},null,8,["proxies"]))}}),Ite=ie({__name:"ProxiesHTTPS",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPSPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new gte(s,n,i))})})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"https",onRefresh:r},null,8,["proxies"]))}}),Ote=ie({__name:"ProxiesTCPMux",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.tcpmuxHTTPConnectPort,i=a.subdomainHost,fetch("../api/proxy/tcpmux",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new mte(s,n,i))})})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"tcpmux",onRefresh:r},null,8,["proxies"]))}}),Rte=ie({__name:"ProxiesSTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new yte(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"stcp",onRefresh:r},null,8,["proxies"]))}}),kte=ie({__name:"ProxiesSUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new _te(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"sudp",onRefresh:r},null,8,["proxies"]))}}),Nte=jG({history:uG(),routes:[{path:"/",name:"ServerOverview",component:dte},{path:"/proxies/tcp",name:"ProxiesTCP",component:Ete},{path:"/proxies/udp",name:"ProxiesUDP",component:Lte},{path:"/proxies/http",name:"ProxiesHTTP",component:Dte},{path:"/proxies/https",name:"ProxiesHTTPS",component:Ite},{path:"/proxies/tcpmux",name:"ProxiesTCPMux",component:Ote},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Rte},{path:"/proxies/sudp",name:"ProxiesSUDP",component:kte}]}),MD=oR(GW);MD.use(Nte);MD.mount("#app")});export default Bte(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index 0a1966e8306..075604a5dab 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -4,7 +4,7 @@ frps dashboard - + diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 62415c968d2..ce5a4c74535 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -146,7 +146,8 @@ type TCPOutConf struct { type TCPMuxOutConf struct { BaseOutConf v1.DomainConfig - Multiplexer string `json:"multiplexer"` + Multiplexer string `json:"multiplexer"` + RouteByHTTPUser string `json:"routeByHTTPUser"` } type UDPOutConf struct { diff --git a/web/frps/components.d.ts b/web/frps/components.d.ts index 5a1615e419a..188e961b99d 100644 --- a/web/frps/components.d.ts +++ b/web/frps/components.d.ts @@ -31,6 +31,7 @@ declare module 'vue' { ProxiesSTCP: typeof import('./src/components/ProxiesSTCP.vue')['default'] ProxiesSUDP: typeof import('./src/components/ProxiesSUDP.vue')['default'] ProxiesTCP: typeof import('./src/components/ProxiesTCP.vue')['default'] + ProxiesTCPMux: typeof import('./src/components/ProxiesTCPMux.vue')['default'] ProxiesUDP: typeof import('./src/components/ProxiesUDP.vue')['default'] ProxyView: typeof import('./src/components/ProxyView.vue')['default'] ProxyViewExpand: typeof import('./src/components/ProxyViewExpand.vue')['default'] diff --git a/web/frps/src/App.vue b/web/frps/src/App.vue index 974314b2604..ad15e3a14d1 100644 --- a/web/frps/src/App.vue +++ b/web/frps/src/App.vue @@ -39,6 +39,7 @@ UDP HTTP HTTPS + TCPMUX STCP SUDP diff --git a/web/frps/src/components/ProxiesTCPMux.vue b/web/frps/src/components/ProxiesTCPMux.vue new file mode 100644 index 00000000000..9e39e278683 --- /dev/null +++ b/web/frps/src/components/ProxiesTCPMux.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/web/frps/src/components/ProxyViewExpand.vue b/web/frps/src/components/ProxyViewExpand.vue index 49b17a6611e..f0e7d8992c6 100644 --- a/web/frps/src/components/ProxyViewExpand.vue +++ b/web/frps/src/components/ProxyViewExpand.vue @@ -1,9 +1,9 @@ From 27db6217ecda9236f5bc25c65824f1e723810751 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 6 Jan 2025 14:22:57 +0800 Subject: [PATCH 244/444] frpc: support metadatas and annotations in frpc proxy commands (#4623) --- Release.md | 4 +--- pkg/config/flags.go | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Release.md b/Release.md index d75b07cb7c2..046e4d48039 100644 --- a/Release.md +++ b/Release.md @@ -1,5 +1,3 @@ ### Features -* `tzdata` is installed by default in the container image, and the time zone can be set using the `TZ` environment variable. -* The `quic-bind-port` command line parameter is supported in frps, which specifies the port for accepting frpc connections using the QUIC protocol. -* The vhost HTTP proxy of frps supports the h2c protocol. +* Support metadatas and annotations in frpc proxy commands. diff --git a/pkg/config/flags.go b/pkg/config/flags.go index f9d9e3e4495..6027b622411 100644 --- a/pkg/config/flags.go +++ b/pkg/config/flags.go @@ -106,6 +106,8 @@ func registerProxyBaseConfigFlags(cmd *cobra.Command, c *v1.ProxyBaseConfig, opt } cmd.Flags().StringVarP(&c.Name, "proxy_name", "n", "", "proxy name") + cmd.Flags().StringToStringVarP(&c.Metadatas, "metadatas", "", nil, "metadata key-value pairs (e.g., key1=value1,key2=value2)") + cmd.Flags().StringToStringVarP(&c.Annotations, "annotations", "", nil, "annotation key-value pairs (e.g., key1=value1,key2=value2)") if !options.sshMode { cmd.Flags().StringVarP(&c.LocalIP, "local_ip", "i", "127.0.0.1", "local ip") From 450b8393bc5a06fd1182690b967e8deb0c20b606 Mon Sep 17 00:00:00 2001 From: "Jeb.Wang" Date: Thu, 16 Jan 2025 10:50:57 +0800 Subject: [PATCH 245/444] Fix goroutine leaks * Fix goroutine leaks --- server/proxy/xtcp.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index f69d0790d65..1ccf331c49d 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -17,8 +17,7 @@ package proxy import ( "fmt" "reflect" - - "github.com/fatedier/golib/errors" + "sync" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" @@ -32,7 +31,8 @@ type XTCPProxy struct { *BaseProxy cfg *v1.XTCPProxyConfig - closeCh chan struct{} + closeCh chan struct{} + closeOnce sync.Once } func NewXTCPProxy(baseProxy *BaseProxy) Proxy { @@ -43,6 +43,7 @@ func NewXTCPProxy(baseProxy *BaseProxy) Proxy { return &XTCPProxy{ BaseProxy: baseProxy, cfg: unwrapped, + closeCh: make(chan struct{}), } } @@ -87,9 +88,9 @@ func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { } func (pxy *XTCPProxy) Close() { - pxy.BaseProxy.Close() - pxy.rc.NatHoleController.CloseClient(pxy.GetName()) - _ = errors.PanicToError(func() { + pxy.closeOnce.Do(func() { + pxy.BaseProxy.Close() + pxy.rc.NatHoleController.CloseClient(pxy.GetName()) close(pxy.closeCh) }) } From b8d3ace1139f5bcfee816d9844bba4780d052ba8 Mon Sep 17 00:00:00 2001 From: hansmi Date: Fri, 7 Feb 2025 04:33:11 +0100 Subject: [PATCH 246/444] Use text/template instead of html/template for config pre-processing (#4656) --- pkg/config/load.go | 2 +- pkg/config/load_test.go | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pkg/config/load.go b/pkg/config/load.go index fa814fd0b0a..fa394dda115 100644 --- a/pkg/config/load.go +++ b/pkg/config/load.go @@ -18,10 +18,10 @@ import ( "bytes" "encoding/json" "fmt" - "html/template" "os" "path/filepath" "strings" + "text/template" toml "github.com/pelletier/go-toml/v2" "github.com/samber/lo" diff --git a/pkg/config/load_test.go b/pkg/config/load_test.go index b3f77800449..980a332ad1b 100644 --- a/pkg/config/load_test.go +++ b/pkg/config/load_test.go @@ -112,6 +112,29 @@ func TestLoadServerConfigStrictMode(t *testing.T) { } } +func TestRenderWithTemplate(t *testing.T) { + tests := []struct { + name string + content string + want string + }{ + {"toml", tomlServerContent, tomlServerContent}, + {"yaml", yamlServerContent, yamlServerContent}, + {"json", jsonServerContent, jsonServerContent}, + {"template numeric", `key = {{ 123 }}`, "key = 123"}, + {"template string", `key = {{ "xyz" }}`, "key = xyz"}, + {"template quote", `key = {{ printf "%q" "with space" }}`, `key = "with space"`}, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + require := require.New(t) + got, err := RenderWithTemplate([]byte(test.content), nil) + require.NoError(err) + require.EqualValues(test.want, string(got)) + }) + } +} + func TestCustomStructStrictMode(t *testing.T) { require := require.New(t) From 8b86e1473ca8d180e03b57c2ca50daa6f2880a82 Mon Sep 17 00:00:00 2001 From: ubergeek77 Date: Tue, 11 Feb 2025 21:28:30 -0600 Subject: [PATCH 247/444] Fix ports not being released on Service.Close() (#4666) --- server/service.go | 44 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/server/service.go b/server/service.go index 27c4110d92a..86d82a2ad33 100644 --- a/server/service.go +++ b/server/service.go @@ -77,7 +77,7 @@ type Service struct { muxer *mux.Mux // Accept connections from client - listener net.Listener + muxListener net.Listener // Accept connections using kcp kcpListener net.Listener @@ -125,6 +125,11 @@ type Service struct { ctx context.Context // call cancel to stop service cancel context.CancelFunc + + // Track listeners so they can be closed manually + vhostHTTPSListener net.Listener + tcpmuxHTTPConnectListener net.Listener + tcpListener net.Listener } func NewService(cfg *v1.ServerConfig) (*Service, error) { @@ -180,6 +185,8 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { return nil, fmt.Errorf("create server listener error, %v", err) } + // Save listener so it can be closed in svr.Close() + svr.tcpmuxHTTPConnectListener = l svr.rc.TCPMuxHTTPConnectMuxer, err = tcpmux.NewHTTPConnectTCPMuxer(l, cfg.TCPMuxPassthrough, vhostReadWriteTimeout) if err != nil { return nil, fmt.Errorf("create vhost tcpMuxer error, %v", err) @@ -226,14 +233,16 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { return nil, fmt.Errorf("create server listener error, %v", err) } + // Save listener so it can be closed in svr.Close() + svr.tcpListener = ln + svr.muxer = mux.NewMux(ln) svr.muxer.SetKeepAlive(time.Duration(cfg.Transport.TCPKeepAlive) * time.Second) go func() { _ = svr.muxer.Serve() }() ln = svr.muxer.DefaultListener() - - svr.listener = ln + svr.muxListener = ln log.Infof("frps tcp listen on %s", address) // Listen for accepting connections from client using kcp protocol. @@ -318,7 +327,8 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { } log.Infof("https service listen on %s", address) } - + // Save listener so it can be closed in svr.Close() + svr.vhostHTTPSListener = l svr.rc.VhostHTTPSMuxer, err = vhost.NewHTTPSMuxer(l, vhostReadWriteTimeout) if err != nil { return nil, fmt.Errorf("create vhost httpsMuxer error, %v", err) @@ -374,11 +384,11 @@ func (svr *Service) Run(ctx context.Context) { go svr.sshTunnelGateway.Run() } - svr.HandleListener(svr.listener, false) + svr.HandleListener(svr.muxListener, false) <-svr.ctx.Done() // service context may not be canceled by svr.Close(), we should call it here to release resources - if svr.listener != nil { + if svr.muxListener != nil { svr.Close() } } @@ -400,9 +410,25 @@ func (svr *Service) Close() error { svr.tlsListener.Close() svr.tlsConfig = nil } - if svr.listener != nil { - svr.listener.Close() - svr.listener = nil + if svr.muxListener != nil { + svr.muxListener.Close() + svr.muxListener = nil + } + if svr.vhostHTTPSListener != nil { + svr.vhostHTTPSListener.Close() + svr.vhostHTTPSListener = nil + } + if svr.tcpmuxHTTPConnectListener != nil { + svr.tcpmuxHTTPConnectListener.Close() + svr.tcpmuxHTTPConnectListener = nil + } + if svr.webServer != nil { + svr.webServer.Close() + svr.webServer = nil + } + if svr.tcpListener != nil { + svr.tcpListener.Close() + svr.tcpListener = nil } svr.ctlManager.Close() if svr.cancel != nil { From e0dd947e6af0bc1116e1120ee422f5a8ab18869d Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 12 Feb 2025 12:22:57 +0800 Subject: [PATCH 248/444] frps: release resources in service.Close() (#4667) --- go.mod | 2 +- go.sum | 4 +-- pkg/ssh/gateway.go | 4 +++ pkg/util/vhost/vhost.go | 4 +++ server/controller/resource.go | 10 ++++++++ server/service.go | 48 ++++++++++------------------------- 6 files changed, 35 insertions(+), 37 deletions(-) diff --git a/go.mod b/go.mod index 957fc7f493e..5809def87a1 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22.0 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc/v3 v3.10.0 - github.com/fatedier/golib v0.5.0 + github.com/fatedier/golib v0.5.1 github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.0 diff --git a/go.sum b/go.sum index 4b771361ee0..e1053561e04 100644 --- a/go.sum +++ b/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatedier/golib v0.5.0 h1:hNcH7hgfIFqVWbP+YojCCAj4eO94pPf4dEF8lmq2jWs= -github.com/fatedier/golib v0.5.0/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ= +github.com/fatedier/golib v0.5.1 h1:hcKAnaw5mdI/1KWRGejxR+i1Hn/NvbY5UsMKDr7o13M= +github.com/fatedier/golib v0.5.1/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= diff --git a/pkg/ssh/gateway.go b/pkg/ssh/gateway.go index 5716f04038d..4d90f338385 100644 --- a/pkg/ssh/gateway.go +++ b/pkg/ssh/gateway.go @@ -112,6 +112,10 @@ func (g *Gateway) Run() { } } +func (g *Gateway) Close() error { + return g.ln.Close() +} + func (g *Gateway) handleConn(conn net.Conn) { defer conn.Close() diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index e62a1caf354..75b472b6ee4 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -100,6 +100,10 @@ func (v *Muxer) SetRewriteHostFunc(f hostRewriteFunc) *Muxer { return v } +func (v *Muxer) Close() error { + return v.listener.Close() +} + type ChooseEndpointFunc func() (string, error) type CreateConnFunc func(remoteAddr string) (net.Conn, error) diff --git a/server/controller/resource.go b/server/controller/resource.go index 47236c9e0d0..9d14b18dfbe 100644 --- a/server/controller/resource.go +++ b/server/controller/resource.go @@ -59,3 +59,13 @@ type ResourceController struct { // All server manager plugin PluginManager *plugin.Manager } + +func (rc *ResourceController) Close() error { + if rc.VhostHTTPSMuxer != nil { + rc.VhostHTTPSMuxer.Close() + } + if rc.TCPMuxHTTPConnectMuxer != nil { + rc.TCPMuxHTTPConnectMuxer.Close() + } + return nil +} diff --git a/server/service.go b/server/service.go index 86d82a2ad33..d1dd68a1c90 100644 --- a/server/service.go +++ b/server/service.go @@ -77,7 +77,7 @@ type Service struct { muxer *mux.Mux // Accept connections from client - muxListener net.Listener + listener net.Listener // Accept connections using kcp kcpListener net.Listener @@ -125,11 +125,6 @@ type Service struct { ctx context.Context // call cancel to stop service cancel context.CancelFunc - - // Track listeners so they can be closed manually - vhostHTTPSListener net.Listener - tcpmuxHTTPConnectListener net.Listener - tcpListener net.Listener } func NewService(cfg *v1.ServerConfig) (*Service, error) { @@ -185,8 +180,6 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { return nil, fmt.Errorf("create server listener error, %v", err) } - // Save listener so it can be closed in svr.Close() - svr.tcpmuxHTTPConnectListener = l svr.rc.TCPMuxHTTPConnectMuxer, err = tcpmux.NewHTTPConnectTCPMuxer(l, cfg.TCPMuxPassthrough, vhostReadWriteTimeout) if err != nil { return nil, fmt.Errorf("create vhost tcpMuxer error, %v", err) @@ -233,16 +226,14 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { return nil, fmt.Errorf("create server listener error, %v", err) } - // Save listener so it can be closed in svr.Close() - svr.tcpListener = ln - svr.muxer = mux.NewMux(ln) svr.muxer.SetKeepAlive(time.Duration(cfg.Transport.TCPKeepAlive) * time.Second) go func() { _ = svr.muxer.Serve() }() ln = svr.muxer.DefaultListener() - svr.muxListener = ln + + svr.listener = ln log.Infof("frps tcp listen on %s", address) // Listen for accepting connections from client using kcp protocol. @@ -327,8 +318,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { } log.Infof("https service listen on %s", address) } - // Save listener so it can be closed in svr.Close() - svr.vhostHTTPSListener = l + svr.rc.VhostHTTPSMuxer, err = vhost.NewHTTPSMuxer(l, vhostReadWriteTimeout) if err != nil { return nil, fmt.Errorf("create vhost httpsMuxer error, %v", err) @@ -384,11 +374,11 @@ func (svr *Service) Run(ctx context.Context) { go svr.sshTunnelGateway.Run() } - svr.HandleListener(svr.muxListener, false) + svr.HandleListener(svr.listener, false) <-svr.ctx.Done() // service context may not be canceled by svr.Close(), we should call it here to release resources - if svr.muxListener != nil { + if svr.listener != nil { svr.Close() } } @@ -396,40 +386,30 @@ func (svr *Service) Run(ctx context.Context) { func (svr *Service) Close() error { if svr.kcpListener != nil { svr.kcpListener.Close() - svr.kcpListener = nil } if svr.quicListener != nil { svr.quicListener.Close() - svr.quicListener = nil } if svr.websocketListener != nil { svr.websocketListener.Close() - svr.websocketListener = nil } if svr.tlsListener != nil { svr.tlsListener.Close() - svr.tlsConfig = nil - } - if svr.muxListener != nil { - svr.muxListener.Close() - svr.muxListener = nil } - if svr.vhostHTTPSListener != nil { - svr.vhostHTTPSListener.Close() - svr.vhostHTTPSListener = nil + if svr.sshTunnelListener != nil { + svr.sshTunnelListener.Close() } - if svr.tcpmuxHTTPConnectListener != nil { - svr.tcpmuxHTTPConnectListener.Close() - svr.tcpmuxHTTPConnectListener = nil + if svr.listener != nil { + svr.listener.Close() } if svr.webServer != nil { svr.webServer.Close() - svr.webServer = nil } - if svr.tcpListener != nil { - svr.tcpListener.Close() - svr.tcpListener = nil + if svr.sshTunnelGateway != nil { + svr.sshTunnelGateway.Close() } + svr.rc.Close() + svr.muxer.Close() svr.ctlManager.Close() if svr.cancel != nil { svr.cancel() From 1e8db667434f8f43cd60c16e9a6d694e9bd6e420 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 12 Feb 2025 12:30:37 +0800 Subject: [PATCH 249/444] update Release.md (#4668) --- Release.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Release.md b/Release.md index 046e4d48039..11b788a62bb 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,7 @@ ### Features * Support metadatas and annotations in frpc proxy commands. + +### Fixes + +* Properly release resources in service.Close() to prevent resource leaks when used as a library. From 9757a351c66c89c15812a20e2fbd4f152bdefe9f Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 7 Mar 2025 16:56:08 +0800 Subject: [PATCH 250/444] fix golangci lint config (#4698) --- .circleci/config.yml | 2 +- .golangci.yml | 3 ++- go.mod | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3dff8a52ca6..ede1f5fef64 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: go-version-latest: docker: - - image: cimg/go:1.22-node + - image: cimg/go:1.23-node resource_class: large steps: - checkout diff --git a/.golangci.yml b/.golangci.yml index 5651ef5cf78..a45e4ba3a2d 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -48,7 +48,8 @@ linters-settings: check-blank: false govet: # report about shadowed variables - check-shadowing: false + disable: + - shadow maligned: # print struct with more effective memory layout or not, false by default suggest-new: true diff --git a/go.mod b/go.mod index 5809def87a1..ecf202114f6 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fatedier/frp -go 1.22.0 +go 1.23.0 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 From 773169e0c44070facd652c4b8b3fe6e6ff4d78f3 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 7 Mar 2025 17:22:51 +0800 Subject: [PATCH 251/444] update version (#4699) --- pkg/util/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 9b75f23645b..f56e1ec072c 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.61.1" +var version = "0.61.2" func Full() string { return version From a78814a2e9fef204d0fb06fa0b0b7ae0d8b39589 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 16 Apr 2025 16:05:54 +0800 Subject: [PATCH 252/444] virtual-net: initial (#4751) --- README.md | 45 ++- README_zh.md | 5 - Release.md | 9 +- client/control.go | 8 +- client/proxy/proxy.go | 29 +- client/proxy/proxy_manager.go | 6 +- client/proxy/proxy_wrapper.go | 7 +- client/service.go | 32 +- client/visitor/stcp.go | 4 + client/visitor/visitor.go | 34 +- client/visitor/visitor_manager.go | 14 +- client/visitor/xtcp.go | 10 +- cmd/frpc/sub/root.go | 7 + conf/frpc_full_example.toml | 26 ++ doc/virtual_net.md | 75 ++++ go.mod | 25 +- go.sum | 65 ++-- pkg/config/v1/client.go | 15 +- pkg/config/v1/{plugin.go => proxy_plugin.go} | 56 +-- pkg/config/v1/validation/client.go | 8 + pkg/config/v1/visitor.go | 3 + pkg/config/v1/visitor_plugin.go | 86 +++++ pkg/featuregate/feature_gate.go | 219 +++++++++++ pkg/plugin/client/http2http.go | 10 +- pkg/plugin/client/http2https.go | 10 +- pkg/plugin/client/http_proxy.go | 8 +- pkg/plugin/client/https2http.go | 14 +- pkg/plugin/client/https2https.go | 14 +- pkg/plugin/client/plugin.go | 26 +- pkg/plugin/client/socks5.go | 11 +- pkg/plugin/client/static_file.go | 10 +- pkg/plugin/client/tls2raw.go | 9 +- pkg/plugin/client/unix_domain_socket.go | 13 +- pkg/plugin/client/virtual_net.go | 71 ++++ pkg/plugin/server/http.go | 2 +- pkg/plugin/server/manager.go | 2 +- pkg/plugin/server/plugin.go | 2 +- pkg/plugin/server/tracer.go | 2 +- pkg/plugin/server/types.go | 2 +- pkg/plugin/visitor/plugin.go | 58 +++ pkg/plugin/visitor/virtual_net.go | 232 ++++++++++++ pkg/util/version/version.go | 2 +- pkg/vnet/controller.go | 360 +++++++++++++++++++ pkg/vnet/message.go | 81 +++++ pkg/vnet/tun.go | 77 ++++ pkg/vnet/tun_darwin.go | 85 +++++ pkg/vnet/tun_linux.go | 84 +++++ pkg/vnet/tun_unsupported.go | 27 ++ 48 files changed, 1821 insertions(+), 179 deletions(-) create mode 100644 doc/virtual_net.md rename pkg/config/v1/{plugin.go => proxy_plugin.go} (96%) create mode 100644 pkg/config/v1/visitor_plugin.go create mode 100644 pkg/featuregate/feature_gate.go create mode 100644 pkg/plugin/client/virtual_net.go create mode 100644 pkg/plugin/visitor/plugin.go create mode 100644 pkg/plugin/visitor/virtual_net.go create mode 100644 pkg/vnet/controller.go create mode 100644 pkg/vnet/message.go create mode 100644 pkg/vnet/tun.go create mode 100644 pkg/vnet/tun_darwin.go create mode 100644 pkg/vnet/tun_linux.go create mode 100644 pkg/vnet/tun_unsupported.go diff --git a/README.md b/README.md index ab9ef37b271..e604d5af114 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,6 @@ frp is an open source project with its ongoing development made possible entirel

-

- - - -

@@ -97,6 +92,11 @@ frp also offers a P2P connect mode. * [Client Plugins](#client-plugins) * [Server Manage Plugins](#server-manage-plugins) * [SSH Tunnel Gateway](#ssh-tunnel-gateway) + * [Virtual Network (VirtualNet)](#virtual-network-virtualnet) +* [Feature Gates](#feature-gates) + * [Available Feature Gates](#available-feature-gates) + * [Enabling Feature Gates](#enabling-feature-gates) + * [Feature Lifecycle](#feature-lifecycle) * [Related Projects](#related-projects) * [Contributing](#contributing) * [Donation](#donation) @@ -1260,6 +1260,41 @@ frpc tcp --proxy_name "test-tcp" --local_ip 127.0.0.1 --local_port 8080 --remote Please refer to this [document](/doc/ssh_tunnel_gateway.md) for more information. +### Virtual Network (VirtualNet) + +*Alpha feature added in v0.62.0* + +The VirtualNet feature enables frp to create and manage virtual network connections between clients and visitors through a TUN interface. This allows for IP-level routing between machines, extending frp beyond simple port forwarding to support full network connectivity. + +For detailed information about configuration and usage, please refer to the [VirtualNet documentation](/doc/virtual_net.md). + +## Feature Gates + +frp supports feature gates to enable or disable experimental features. This allows users to try out new features before they're considered stable. + +### Available Feature Gates + +| Name | Stage | Default | Description | +|------|-------|---------|-------------| +| VirtualNet | ALPHA | false | Virtual network capabilities for frp | + +### Enabling Feature Gates + +To enable an experimental feature, add the feature gate to your configuration: + +```toml +featureGates = { + VirtualNet = true +} +``` + +### Feature Lifecycle + +Features typically go through three stages: +1. **ALPHA**: Disabled by default, may be unstable +2. **BETA**: May be enabled by default, more stable but still evolving +3. **GA (Generally Available)**: Enabled by default, ready for production use + ## Related Projects * [gofrp/plugin](https://github.com/gofrp/plugin) - A repository for frp plugins that contains a variety of plugins implemented based on the frp extension mechanism, meeting the customization needs of different scenarios. diff --git a/README_zh.md b/README_zh.md index ebd3109ba0d..d911e15230f 100644 --- a/README_zh.md +++ b/README_zh.md @@ -20,11 +20,6 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

-

- - - -

diff --git a/Release.md b/Release.md index 11b788a62bb..b3edf41090c 100644 --- a/Release.md +++ b/Release.md @@ -1,7 +1,8 @@ -### Features +### Notes -* Support metadatas and annotations in frpc proxy commands. +* **Feature Gates Introduced:** This version introduces a new experimental mechanism called Feature Gates. This allows users to enable or disable specific experimental features before they become generally available. Feature gates can be configured in the `featureGates` map within the configuration file. +* **VirtualNet Feature Gate:** The first available feature gate is `VirtualNet`, which enables the experimental Virtual Network functionality (currently in Alpha stage). -### Fixes +### Features -* Properly release resources in service.Close() to prevent resource leaks when used as a library. +* **Virtual Network (VirtualNet):** Introduce experimental virtual network capabilities (Alpha). This allows creating a TUN device managed by frp, enabling Layer 3 connectivity between different clients within the frp network. Requires root/admin privileges and is currently supported on Linux and macOS. Configuration is done via the `virtualNet` section and the `virtual_net` plugin. Enable with feature gate `VirtualNet`. **Note: As an Alpha feature, configuration details may change in future releases.** \ No newline at end of file diff --git a/client/control.go b/client/control.go index 3e20c312822..157b4aef913 100644 --- a/client/control.go +++ b/client/control.go @@ -29,6 +29,7 @@ import ( netpkg "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/wait" "github.com/fatedier/frp/pkg/util/xlog" + "github.com/fatedier/frp/pkg/vnet" ) type SessionContext struct { @@ -46,6 +47,8 @@ type SessionContext struct { AuthSetter auth.Setter // Connector is used to create new connections, which could be real TCP connections or virtual streams. Connector Connector + // Virtual net controller + VnetController *vnet.Controller } type Control struct { @@ -99,8 +102,9 @@ func NewControl(ctx context.Context, sessionCtx *SessionContext) (*Control, erro ctl.registerMsgHandlers() ctl.msgTransporter = transport.NewMessageTransporter(ctl.msgDispatcher.SendChannel()) - ctl.pm = proxy.NewManager(ctl.ctx, sessionCtx.Common, ctl.msgTransporter) - ctl.vm = visitor.NewManager(ctl.ctx, sessionCtx.RunID, sessionCtx.Common, ctl.connectServer, ctl.msgTransporter) + ctl.pm = proxy.NewManager(ctl.ctx, sessionCtx.Common, ctl.msgTransporter, sessionCtx.VnetController) + ctl.vm = visitor.NewManager(ctl.ctx, sessionCtx.RunID, sessionCtx.Common, + ctl.connectServer, ctl.msgTransporter, sessionCtx.VnetController) return ctl, nil } diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 5cb5ccf2ab4..debda9fa2ff 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -36,6 +36,7 @@ import ( "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/limit" "github.com/fatedier/frp/pkg/util/xlog" + "github.com/fatedier/frp/pkg/vnet" ) var proxyFactoryRegistry = map[reflect.Type]func(*BaseProxy, v1.ProxyConfigurer) Proxy{} @@ -58,6 +59,7 @@ func NewProxy( pxyConf v1.ProxyConfigurer, clientCfg *v1.ClientCommonConfig, msgTransporter transport.MessageTransporter, + vnetController *vnet.Controller, ) (pxy Proxy) { var limiter *rate.Limiter limitBytes := pxyConf.GetBaseConfig().Transport.BandwidthLimit.Bytes() @@ -70,6 +72,7 @@ func NewProxy( clientCfg: clientCfg, limiter: limiter, msgTransporter: msgTransporter, + vnetController: vnetController, xl: xlog.FromContextSafe(ctx), ctx: ctx, } @@ -85,6 +88,7 @@ type BaseProxy struct { baseCfg *v1.ProxyBaseConfig clientCfg *v1.ClientCommonConfig msgTransporter transport.MessageTransporter + vnetController *vnet.Controller limiter *rate.Limiter // proxyPlugin is used to handle connections instead of dialing to local service. // It's only validate for TCP protocol now. @@ -98,7 +102,10 @@ type BaseProxy struct { func (pxy *BaseProxy) Run() error { if pxy.baseCfg.Plugin.Type != "" { - p, err := plugin.Create(pxy.baseCfg.Plugin.Type, pxy.baseCfg.Plugin.ClientPluginOptions) + p, err := plugin.Create(pxy.baseCfg.Plugin.Type, plugin.PluginContext{ + Name: pxy.baseCfg.Name, + VnetController: pxy.vnetController, + }, pxy.baseCfg.Plugin.ClientPluginOptions) if err != nil { return err } @@ -157,22 +164,22 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } // check if we need to send proxy protocol info - var extraInfo plugin.ExtraInfo + var connInfo plugin.ConnectionInfo if m.SrcAddr != "" && m.SrcPort != 0 { if m.DstAddr == "" { m.DstAddr = "127.0.0.1" } srcAddr, _ := net.ResolveTCPAddr("tcp", net.JoinHostPort(m.SrcAddr, strconv.Itoa(int(m.SrcPort)))) dstAddr, _ := net.ResolveTCPAddr("tcp", net.JoinHostPort(m.DstAddr, strconv.Itoa(int(m.DstPort)))) - extraInfo.SrcAddr = srcAddr - extraInfo.DstAddr = dstAddr + connInfo.SrcAddr = srcAddr + connInfo.DstAddr = dstAddr } if baseCfg.Transport.ProxyProtocolVersion != "" && m.SrcAddr != "" && m.SrcPort != 0 { h := &pp.Header{ Command: pp.PROXY, - SourceAddr: extraInfo.SrcAddr, - DestinationAddr: extraInfo.DstAddr, + SourceAddr: connInfo.SrcAddr, + DestinationAddr: connInfo.DstAddr, } if strings.Contains(m.SrcAddr, ".") { @@ -186,13 +193,15 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } else if baseCfg.Transport.ProxyProtocolVersion == "v2" { h.Version = 2 } - extraInfo.ProxyProtocolHeader = h + connInfo.ProxyProtocolHeader = h } + connInfo.Conn = remote + connInfo.UnderlyingConn = workConn if pxy.proxyPlugin != nil { // if plugin is set, let plugin handle connection first xl.Debugf("handle by plugin: %s", pxy.proxyPlugin.Name()) - pxy.proxyPlugin.Handle(pxy.ctx, remote, workConn, &extraInfo) + pxy.proxyPlugin.Handle(pxy.ctx, &connInfo) xl.Debugf("handle by plugin finished") return } @@ -210,8 +219,8 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor xl.Debugf("join connections, localConn(l[%s] r[%s]) workConn(l[%s] r[%s])", localConn.LocalAddr().String(), localConn.RemoteAddr().String(), workConn.LocalAddr().String(), workConn.RemoteAddr().String()) - if extraInfo.ProxyProtocolHeader != nil { - if _, err := extraInfo.ProxyProtocolHeader.WriteTo(localConn); err != nil { + if connInfo.ProxyProtocolHeader != nil { + if _, err := connInfo.ProxyProtocolHeader.WriteTo(localConn); err != nil { workConn.Close() xl.Errorf("write proxy protocol header to local conn error: %v", err) return diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index d42aedc00eb..ea5cc553112 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -28,12 +28,14 @@ import ( "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" + "github.com/fatedier/frp/pkg/vnet" ) type Manager struct { proxies map[string]*Wrapper msgTransporter transport.MessageTransporter inWorkConnCallback func(*v1.ProxyBaseConfig, net.Conn, *msg.StartWorkConn) bool + vnetController *vnet.Controller closed bool mu sync.RWMutex @@ -47,10 +49,12 @@ func NewManager( ctx context.Context, clientCfg *v1.ClientCommonConfig, msgTransporter transport.MessageTransporter, + vnetController *vnet.Controller, ) *Manager { return &Manager{ proxies: make(map[string]*Wrapper), msgTransporter: msgTransporter, + vnetController: vnetController, closed: false, clientCfg: clientCfg, ctx: ctx, @@ -159,7 +163,7 @@ func (pm *Manager) UpdateAll(proxyCfgs []v1.ProxyConfigurer) { for _, cfg := range proxyCfgs { name := cfg.GetBaseConfig().Name if _, ok := pm.proxies[name]; !ok { - pxy := NewWrapper(pm.ctx, cfg, pm.clientCfg, pm.HandleEvent, pm.msgTransporter) + pxy := NewWrapper(pm.ctx, cfg, pm.clientCfg, pm.HandleEvent, pm.msgTransporter, pm.vnetController) if pm.inWorkConnCallback != nil { pxy.SetInWorkConnCallback(pm.inWorkConnCallback) } diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index 95048f29907..f3f17e2b10c 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -31,6 +31,7 @@ import ( "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" + "github.com/fatedier/frp/pkg/vnet" ) const ( @@ -73,6 +74,8 @@ type Wrapper struct { handler event.Handler msgTransporter transport.MessageTransporter + // vnet controller + vnetController *vnet.Controller health uint32 lastSendStartMsg time.Time @@ -91,6 +94,7 @@ func NewWrapper( clientCfg *v1.ClientCommonConfig, eventHandler event.Handler, msgTransporter transport.MessageTransporter, + vnetController *vnet.Controller, ) *Wrapper { baseInfo := cfg.GetBaseConfig() xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(baseInfo.Name) @@ -105,6 +109,7 @@ func NewWrapper( healthNotifyCh: make(chan struct{}), handler: eventHandler, msgTransporter: msgTransporter, + vnetController: vnetController, xl: xl, ctx: xlog.NewContext(ctx, xl), } @@ -117,7 +122,7 @@ func NewWrapper( xl.Tracef("enable health check monitor") } - pw.pxy = NewProxy(pw.ctx, pw.Cfg, clientCfg, pw.msgTransporter) + pw.pxy = NewProxy(pw.ctx, pw.Cfg, clientCfg, pw.msgTransporter, pw.vnetController) return pw } diff --git a/client/service.go b/client/service.go index b06706a6a48..57eb483559e 100644 --- a/client/service.go +++ b/client/service.go @@ -37,6 +37,7 @@ import ( "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/pkg/util/wait" "github.com/fatedier/frp/pkg/util/xlog" + "github.com/fatedier/frp/pkg/vnet" ) func init() { @@ -110,6 +111,8 @@ type Service struct { // web server for admin UI and apis webServer *httppkg.Server + vnetController *vnet.Controller + cfgMu sync.RWMutex common *v1.ClientCommonConfig proxyCfgs []v1.ProxyConfigurer @@ -156,6 +159,9 @@ func NewService(options ServiceOptions) (*Service, error) { if webServer != nil { webServer.RouteRegister(s.registerRouteHandlers) } + if options.Common.VirtualNet.Address != "" { + s.vnetController = vnet.NewController(options.Common.VirtualNet) + } return s, nil } @@ -169,6 +175,19 @@ func (svr *Service) Run(ctx context.Context) error { netpkg.SetDefaultDNSAddress(svr.common.DNSServer) } + if svr.vnetController != nil { + if err := svr.vnetController.Init(); err != nil { + log.Errorf("init virtual network controller error: %v", err) + return err + } + go func() { + log.Infof("virtual network controller start...") + if err := svr.vnetController.Run(); err != nil { + log.Warnf("virtual network controller exit with error: %v", err) + } + }() + } + if svr.webServer != nil { go func() { log.Infof("admin server listen on %s", svr.webServer.Address()) @@ -311,12 +330,13 @@ func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, firstLoginE connEncrypted = false } sessionCtx := &SessionContext{ - Common: svr.common, - RunID: svr.runID, - Conn: conn, - ConnEncrypted: connEncrypted, - AuthSetter: svr.authSetter, - Connector: connector, + Common: svr.common, + RunID: svr.runID, + Conn: conn, + ConnEncrypted: connEncrypted, + AuthSetter: svr.authSetter, + Connector: connector, + VnetController: svr.vnetController, } ctl, err := NewControl(svr.ctx, sessionCtx) if err != nil { diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index b26faf5200c..124202eb8d5 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -44,6 +44,10 @@ func (sv *STCPVisitor) Run() (err error) { } go sv.internalConnWorker() + + if sv.plugin != nil { + sv.plugin.Start() + } return } diff --git a/client/visitor/visitor.go b/client/visitor/visitor.go index d520f735ddc..fb2b3e118a1 100644 --- a/client/visitor/visitor.go +++ b/client/visitor/visitor.go @@ -20,9 +20,11 @@ import ( "sync" v1 "github.com/fatedier/frp/pkg/config/v1" + plugin "github.com/fatedier/frp/pkg/plugin/visitor" "github.com/fatedier/frp/pkg/transport" netpkg "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" + "github.com/fatedier/frp/pkg/vnet" ) // Helper wraps some functions for visitor to use. @@ -34,6 +36,8 @@ type Helper interface { // MsgTransporter returns the message transporter that is used to send and receive messages // to the frp server through the controller. MsgTransporter() transport.MessageTransporter + // VNetController returns the vnet controller that is used to manage the virtual network. + VNetController() *vnet.Controller // RunID returns the run id of current controller. RunID() string } @@ -50,14 +54,34 @@ func NewVisitor( cfg v1.VisitorConfigurer, clientCfg *v1.ClientCommonConfig, helper Helper, -) (visitor Visitor) { +) (Visitor, error) { xl := xlog.FromContextSafe(ctx).Spawn().AppendPrefix(cfg.GetBaseConfig().Name) + ctx = xlog.NewContext(ctx, xl) + var visitor Visitor baseVisitor := BaseVisitor{ clientCfg: clientCfg, helper: helper, - ctx: xlog.NewContext(ctx, xl), + ctx: ctx, internalLn: netpkg.NewInternalListener(), } + if cfg.GetBaseConfig().Plugin.Type != "" { + p, err := plugin.Create( + cfg.GetBaseConfig().Plugin.Type, + plugin.PluginContext{ + Name: cfg.GetBaseConfig().Name, + Ctx: ctx, + VnetController: helper.VNetController(), + HandleConn: func(conn net.Conn) { + _ = baseVisitor.AcceptConn(conn) + }, + }, + cfg.GetBaseConfig().Plugin.VisitorPluginOptions, + ) + if err != nil { + return nil, err + } + baseVisitor.plugin = p + } switch cfg := cfg.(type) { case *v1.STCPVisitorConfig: visitor = &STCPVisitor{ @@ -77,7 +101,7 @@ func NewVisitor( checkCloseCh: make(chan struct{}), } } - return + return visitor, nil } type BaseVisitor struct { @@ -85,6 +109,7 @@ type BaseVisitor struct { helper Helper l net.Listener internalLn *netpkg.InternalListener + plugin plugin.Plugin mu sync.RWMutex ctx context.Context @@ -101,4 +126,7 @@ func (v *BaseVisitor) Close() { if v.internalLn != nil { v.internalLn.Close() } + if v.plugin != nil { + v.plugin.Close() + } } diff --git a/client/visitor/visitor_manager.go b/client/visitor/visitor_manager.go index 6ff65dabae0..b3539c69295 100644 --- a/client/visitor/visitor_manager.go +++ b/client/visitor/visitor_manager.go @@ -27,6 +27,7 @@ import ( v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/xlog" + "github.com/fatedier/frp/pkg/vnet" ) type Manager struct { @@ -50,6 +51,7 @@ func NewManager( clientCfg *v1.ClientCommonConfig, connectServer func() (net.Conn, error), msgTransporter transport.MessageTransporter, + vnetController *vnet.Controller, ) *Manager { m := &Manager{ clientCfg: clientCfg, @@ -62,6 +64,7 @@ func NewManager( m.helper = &visitorHelperImpl{ connectServerFn: connectServer, msgTransporter: msgTransporter, + vnetController: vnetController, transferConnFn: m.TransferConn, runID: runID, } @@ -112,7 +115,11 @@ func (vm *Manager) Close() { func (vm *Manager) startVisitor(cfg v1.VisitorConfigurer) (err error) { xl := xlog.FromContextSafe(vm.ctx) name := cfg.GetBaseConfig().Name - visitor := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.helper) + visitor, err := NewVisitor(vm.ctx, cfg, vm.clientCfg, vm.helper) + if err != nil { + xl.Warnf("new visitor error: %v", err) + return + } err = visitor.Run() if err != nil { xl.Warnf("start error: %v", err) @@ -187,6 +194,7 @@ func (vm *Manager) TransferConn(name string, conn net.Conn) error { type visitorHelperImpl struct { connectServerFn func() (net.Conn, error) msgTransporter transport.MessageTransporter + vnetController *vnet.Controller transferConnFn func(name string, conn net.Conn) error runID string } @@ -203,6 +211,10 @@ func (v *visitorHelperImpl) MsgTransporter() transport.MessageTransporter { return v.msgTransporter } +func (v *visitorHelperImpl) VNetController() *vnet.Controller { + return v.vnetController +} + func (v *visitorHelperImpl) RunID() string { return v.runID } diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index a1efd72b62b..51f29ad2a94 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -73,6 +73,10 @@ func (sv *XTCPVisitor) Run() (err error) { sv.retryLimiter = rate.NewLimiter(rate.Every(time.Hour/time.Duration(sv.cfg.MaxRetriesAnHour)), sv.cfg.MaxRetriesAnHour) go sv.keepTunnelOpenWorker() } + + if sv.plugin != nil { + sv.plugin.Start() + } return } @@ -157,9 +161,9 @@ func (sv *XTCPVisitor) keepTunnelOpenWorker() { func (sv *XTCPVisitor) handleConn(userConn net.Conn) { xl := xlog.FromContextSafe(sv.ctx) - isConnTrasfered := false + isConnTransfered := false defer func() { - if !isConnTrasfered { + if !isConnTransfered { userConn.Close() } }() @@ -187,7 +191,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { xl.Errorf("transfer connection to visitor %s error: %v", sv.cfg.FallbackTo, err) return } - isConnTrasfered = true + isConnTransfered = true return } diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index b844ddfd5e9..ee89c48947a 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -31,6 +31,7 @@ import ( "github.com/fatedier/frp/pkg/config" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" + "github.com/fatedier/frp/pkg/featuregate" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" ) @@ -120,6 +121,12 @@ func runClient(cfgFilePath string) error { "please use yaml/json/toml format instead!\n") } + if len(cfg.FeatureGates) > 0 { + if err := featuregate.SetFromMap(cfg.FeatureGates); err != nil { + return err + } + } + warning, err := validation.ValidateAllClientConfig(cfg, proxyCfgs, visitorCfgs) if warning != nil { fmt.Printf("WARNING: %v\n", warning) diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index eb44739239d..7d4838cd78f 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -129,6 +129,15 @@ transport.tls.enable = true # It affects the udp and sudp proxy. udpPacketSize = 1500 +# Feature gates allows you to enable or disable experimental features +# Format is a map of feature names to boolean values +# You can enable specific features: +#featureGates = { VirtualNet = true } + +# VirtualNet settings for experimental virtual network capabilities +# The virtual network feature requires enabling the VirtualNet feature gate above +# virtualNet.address = "100.86.1.1/24" + # Additional metadatas for client. metadatas.var1 = "abc" metadatas.var2 = "123" @@ -358,6 +367,13 @@ localPort = 22 # Otherwise, visitors from same user can connect. '*' means allow all users. allowUsers = ["user1", "user2"] +[[proxies]] +name = "vnet-server" +type = "stcp" +secretKey = "your-secret-key" +[proxies.plugin] +type = "virtual_net" + # frpc role visitor -> frps -> frpc role server [[visitors]] name = "secret_tcp_visitor" @@ -389,3 +405,13 @@ maxRetriesAnHour = 8 minRetryInterval = 90 # fallbackTo = "stcp_visitor" # fallbackTimeoutMs = 500 + +[[visitors]] +name = "vnet-visitor" +type = "stcp" +serverName = "vnet-server" +secretKey = "your-secret-key" +bindPort = -1 +[visitors.plugin] +type = "virtual_net" +destinationIP = "100.86.0.1" diff --git a/doc/virtual_net.md b/doc/virtual_net.md new file mode 100644 index 00000000000..62653e9f188 --- /dev/null +++ b/doc/virtual_net.md @@ -0,0 +1,75 @@ +# Virtual Network (VirtualNet) + +*Alpha feature added in v0.62.0* + +The VirtualNet feature enables frp to create and manage virtual network connections between clients and visitors through a TUN interface. This allows for IP-level routing between machines, extending frp beyond simple port forwarding to support full network connectivity. + +> **Note**: VirtualNet is an Alpha stage feature and is currently unstable. Its configuration methods and functionality may be adjusted and changed at any time in subsequent versions. Do not use this feature in production environments; it is only recommended for testing and evaluation purposes. + +## Enabling VirtualNet + +Since VirtualNet is currently an alpha feature, you need to enable it with feature gates in your configuration: + +```toml +# frpc.toml +featureGates = { VirtualNet = true } +``` + +## Basic Configuration + +To use the virtual network capabilities: + +1. First, configure your frpc with a virtual network address: + +```toml +# frpc.toml +serverAddr = "x.x.x.x" +serverPort = 7000 +featureGates = { VirtualNet = true } + +# Configure the virtual network interface +virtualNet.address = "100.86.0.1/24" +``` + +2. For client proxies, use the `virtual_net` plugin: + +```toml +# frpc.toml (server side) +[[proxies]] +name = "vnet-server" +type = "stcp" +secretKey = "your-secret-key" +[proxies.plugin] +type = "virtual_net" +``` + +3. For visitor connections, configure the `virtual_net` visitor plugin: + +```toml +# frpc.toml (client side) +serverAddr = "x.x.x.x" +serverPort = 7000 +featureGates = { + VirtualNet = true +} + +# Configure the virtual network interface +virtualNet.address = "100.86.0.2/24" + +[[visitors]] +name = "vnet-visitor" +type = "stcp" +serverName = "vnet-server" +secretKey = "your-secret-key" +bindPort = -1 +[visitors.plugin] +type = "virtual_net" +destinationIP = "100.86.0.1" +``` + +## Requirements and Limitations + +- **Permissions**: Creating a TUN interface requires elevated permissions (root/admin) +- **Platform Support**: Currently supported on Linux and macOS +- **Default Status**: As an alpha feature, VirtualNet is disabled by default +- **Configuration**: A valid IP/CIDR must be provided for each endpoint in the virtual network diff --git a/go.mod b/go.mod index ecf202114f6..0b8ee2a5e8a 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.23.0 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 - github.com/coreos/go-oidc/v3 v3.10.0 + github.com/coreos/go-oidc/v3 v3.14.1 github.com/fatedier/golib v0.5.1 github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 @@ -19,16 +19,19 @@ require ( github.com/quic-go/quic-go v0.48.2 github.com/rodaine/table v1.2.0 github.com/samber/lo v1.47.0 + github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/tidwall/gjson v1.17.1 + github.com/vishvananda/netlink v1.3.0 github.com/xtaci/kcp-go/v5 v5.6.13 - golang.org/x/crypto v0.30.0 - golang.org/x/net v0.32.0 - golang.org/x/oauth2 v0.16.0 - golang.org/x/sync v0.10.0 + golang.org/x/crypto v0.37.0 + golang.org/x/net v0.39.0 + golang.org/x/oauth2 v0.28.0 + golang.org/x/sync v0.13.0 golang.org/x/time v0.5.0 + golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 gopkg.in/ini.v1 v1.67.0 k8s.io/apimachinery v0.28.8 k8s.io/client-go v0.28.8 @@ -39,10 +42,9 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-jose/go-jose/v4 v4.0.1 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect - github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/pprof v0.0.0-20241206021119-61a79c692802 // indirect @@ -64,13 +66,14 @@ require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect + github.com/vishvananda/netns v0.0.4 // indirect go.uber.org/mock v0.5.0 // indirect golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.21.0 // indirect + golang.org/x/sys v0.32.0 // indirect + golang.org/x/text v0.24.0 // indirect golang.org/x/tools v0.28.0 // indirect - google.golang.org/appengine v1.6.8 // indirect + golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index e1053561e04..a39d174edae 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/coreos/go-oidc/v3 v3.10.0 h1:tDnXHnLyiTVyT/2zLDGj09pFPkhND8Gl8lnTRhoEaJU= -github.com/coreos/go-oidc/v3 v3.10.0/go.mod h1:5j11xcw0D3+SGxn6Z/WFADsgcWVMyNAlSQupk0KK3ac= +github.com/coreos/go-oidc/v3 v3.14.1 h1:9ePWwfdwC4QKRlCXsJGou56adA/owXczOzwKdOumLqk= +github.com/coreos/go-oidc/v3 v3.14.1/go.mod h1:HaZ3szPaZ0e4r6ebqvsLWlk2Tn+aejfmrfah6hnSYEU= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -25,8 +25,8 @@ github.com/fatedier/golib v0.5.1 h1:hcKAnaw5mdI/1KWRGejxR+i1Hn/NvbY5UsMKDr7o13M= github.com/fatedier/golib v0.5.1/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= -github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= +github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= @@ -42,17 +42,14 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20241206021119-61a79c692802 h1:US08AXzP0bLurpzFUV3Poa9ZijrRdd1zAIOVtoHEiS8= @@ -117,6 +114,8 @@ github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncj github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc= github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= +github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 h1:TG/diQgUe0pntT/2D9tmUCz4VNwm9MfrtPr0SU2qSX8= +github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8/go.mod h1:P5HUIBuIWKbyjl083/loAegFkfbFNx5i2qEP4CNbm7E= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -129,8 +128,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/templexxx/cpu v0.1.1 h1:isxHaxBXpYFWnk2DReuKkigaZyrjs2+9ypIdGP4h+HI= github.com/templexxx/cpu v0.1.1/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk= github.com/templexxx/xorsimd v0.4.3 h1:9AQTFHd7Bhk3dIT7Al2XeBX5DWOvsUPZCuhyAtNbHjU= @@ -143,6 +143,10 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= +github.com/vishvananda/netlink v1.3.0 h1:X7l42GfcV4S6E4vHTsw48qbrV+9PVojNfIhZcwQdrZk= +github.com/vishvananda/netlink v1.3.0/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs= +github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= +github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= github.com/xtaci/kcp-go/v5 v5.6.13 h1:FEjtz9+D4p8t2x4WjciGt/jsIuhlWjjgPCCWjrVR4Hk= github.com/xtaci/kcp-go/v5 v5.6.13/go.mod h1:75S1AKYYzNUSXIv30h+jPKJYZUwqpfvLshu63nCNSOM= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= @@ -156,8 +160,8 @@ golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= -golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d h1:0olWaB5pg3+oychR51GUVCEsGkeCU/2JxjBgIo4f3M0= golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= @@ -181,18 +185,18 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc= +golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -201,29 +205,30 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= -golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= +golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -238,10 +243,12 @@ golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg= +golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI= +golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 h1:/jFs0duh4rdb8uIfPMv78iAJGcPKDeqAFnaLBropIC4= +golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173/go.mod h1:tkCQ4FQXmpAgYVh++1cq16/dH4QJtmvpRv19DWGAHSA= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -254,8 +261,6 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -268,6 +273,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gvisor.dev/gvisor v0.0.0-20230927004350-cbd86285d259 h1:TbRPT0HtzFP3Cno1zZo7yPzEEnfu8EjLfl6IU9VfqkQ= +gvisor.dev/gvisor v0.0.0-20230927004350-cbd86285d259/go.mod h1:AVgIgHMwK63XvmAzWG9vLQ41YnVHN0du0tEC46fI7yY= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/apimachinery v0.28.8 h1:hi/nrxHwk4QLV+W/SHve1bypTE59HCDorLY1stBIxKQ= diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index d43ec1bcee3..d616fc0a300 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -58,9 +58,14 @@ type ClientCommonConfig struct { // set. Start []string `json:"start,omitempty"` - Log LogConfig `json:"log,omitempty"` - WebServer WebServerConfig `json:"webServer,omitempty"` - Transport ClientTransportConfig `json:"transport,omitempty"` + Log LogConfig `json:"log,omitempty"` + WebServer WebServerConfig `json:"webServer,omitempty"` + Transport ClientTransportConfig `json:"transport,omitempty"` + VirtualNet VirtualNetConfig `json:"virtualNet,omitempty"` + + // FeatureGates specifies a set of feature gates to enable or disable. + // This can be used to enable alpha/beta features or disable default features. + FeatureGates map[string]bool `json:"featureGates,omitempty"` // UDPPacketSize specifies the udp packet size // By default, this value is 1500 @@ -204,3 +209,7 @@ type AuthOIDCClientConfig struct { // this field will be transfer to map[string][]string in OIDC token generator. AdditionalEndpointParams map[string]string `json:"additionalEndpointParams,omitempty"` } + +type VirtualNetConfig struct { + Address string `json:"address,omitempty"` +} diff --git a/pkg/config/v1/plugin.go b/pkg/config/v1/proxy_plugin.go similarity index 96% rename from pkg/config/v1/plugin.go rename to pkg/config/v1/proxy_plugin.go index cdf3cf263e9..128ccae629c 100644 --- a/pkg/config/v1/plugin.go +++ b/pkg/config/v1/proxy_plugin.go @@ -26,6 +26,32 @@ import ( "github.com/fatedier/frp/pkg/util/util" ) +const ( + PluginHTTP2HTTPS = "http2https" + PluginHTTPProxy = "http_proxy" + PluginHTTPS2HTTP = "https2http" + PluginHTTPS2HTTPS = "https2https" + PluginHTTP2HTTP = "http2http" + PluginSocks5 = "socks5" + PluginStaticFile = "static_file" + PluginUnixDomainSocket = "unix_domain_socket" + PluginTLS2Raw = "tls2raw" + PluginVirtualNet = "virtual_net" +) + +var clientPluginOptionsTypeMap = map[string]reflect.Type{ + PluginHTTP2HTTPS: reflect.TypeOf(HTTP2HTTPSPluginOptions{}), + PluginHTTPProxy: reflect.TypeOf(HTTPProxyPluginOptions{}), + PluginHTTPS2HTTP: reflect.TypeOf(HTTPS2HTTPPluginOptions{}), + PluginHTTPS2HTTPS: reflect.TypeOf(HTTPS2HTTPSPluginOptions{}), + PluginHTTP2HTTP: reflect.TypeOf(HTTP2HTTPPluginOptions{}), + PluginSocks5: reflect.TypeOf(Socks5PluginOptions{}), + PluginStaticFile: reflect.TypeOf(StaticFilePluginOptions{}), + PluginUnixDomainSocket: reflect.TypeOf(UnixDomainSocketPluginOptions{}), + PluginTLS2Raw: reflect.TypeOf(TLS2RawPluginOptions{}), + PluginVirtualNet: reflect.TypeOf(VirtualNetPluginOptions{}), +} + type ClientPluginOptions interface { Complete() } @@ -74,30 +100,6 @@ func (c *TypedClientPluginOptions) MarshalJSON() ([]byte, error) { return json.Marshal(c.ClientPluginOptions) } -const ( - PluginHTTP2HTTPS = "http2https" - PluginHTTPProxy = "http_proxy" - PluginHTTPS2HTTP = "https2http" - PluginHTTPS2HTTPS = "https2https" - PluginHTTP2HTTP = "http2http" - PluginSocks5 = "socks5" - PluginStaticFile = "static_file" - PluginUnixDomainSocket = "unix_domain_socket" - PluginTLS2Raw = "tls2raw" -) - -var clientPluginOptionsTypeMap = map[string]reflect.Type{ - PluginHTTP2HTTPS: reflect.TypeOf(HTTP2HTTPSPluginOptions{}), - PluginHTTPProxy: reflect.TypeOf(HTTPProxyPluginOptions{}), - PluginHTTPS2HTTP: reflect.TypeOf(HTTPS2HTTPPluginOptions{}), - PluginHTTPS2HTTPS: reflect.TypeOf(HTTPS2HTTPSPluginOptions{}), - PluginHTTP2HTTP: reflect.TypeOf(HTTP2HTTPPluginOptions{}), - PluginSocks5: reflect.TypeOf(Socks5PluginOptions{}), - PluginStaticFile: reflect.TypeOf(StaticFilePluginOptions{}), - PluginUnixDomainSocket: reflect.TypeOf(UnixDomainSocketPluginOptions{}), - PluginTLS2Raw: reflect.TypeOf(TLS2RawPluginOptions{}), -} - type HTTP2HTTPSPluginOptions struct { Type string `json:"type,omitempty"` LocalAddr string `json:"localAddr,omitempty"` @@ -185,3 +187,9 @@ type TLS2RawPluginOptions struct { } func (o *TLS2RawPluginOptions) Complete() {} + +type VirtualNetPluginOptions struct { + Type string `json:"type,omitempty"` +} + +func (o *VirtualNetPluginOptions) Complete() {} diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index cc46607cb9c..bae21fda40b 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -23,6 +23,7 @@ import ( "github.com/samber/lo" v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/featuregate" ) func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { @@ -30,6 +31,13 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { warnings Warning errs error ) + // validate feature gates + if c.VirtualNet.Address != "" { + if !featuregate.Enabled(featuregate.VirtualNet) { + return warnings, fmt.Errorf("VirtualNet feature is not enabled; enable it by setting the appropriate feature gate flag") + } + } + if !slices.Contains(SupportedAuthMethods, c.Auth.Method) { errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", SupportedAuthMethods)) } diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go index 51fe88a6300..f00391c34e4 100644 --- a/pkg/config/v1/visitor.go +++ b/pkg/config/v1/visitor.go @@ -44,6 +44,9 @@ type VisitorBaseConfig struct { // It can be less than 0, it means don't bind to the port and only receive connections redirected from // other visitors. (This is not supported for SUDP now) BindPort int `json:"bindPort,omitempty"` + + // Plugin specifies what plugin should be used. + Plugin TypedVisitorPluginOptions `json:"plugin,omitempty"` } func (c *VisitorBaseConfig) GetBaseConfig() *VisitorBaseConfig { diff --git a/pkg/config/v1/visitor_plugin.go b/pkg/config/v1/visitor_plugin.go new file mode 100644 index 00000000000..5a4909bdb84 --- /dev/null +++ b/pkg/config/v1/visitor_plugin.go @@ -0,0 +1,86 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "reflect" +) + +const ( + VisitorPluginVirtualNet = "virtual_net" +) + +var visitorPluginOptionsTypeMap = map[string]reflect.Type{ + VisitorPluginVirtualNet: reflect.TypeOf(VirtualNetVisitorPluginOptions{}), +} + +type VisitorPluginOptions interface { + Complete() +} + +type TypedVisitorPluginOptions struct { + Type string `json:"type"` + VisitorPluginOptions +} + +func (c *TypedVisitorPluginOptions) UnmarshalJSON(b []byte) error { + if len(b) == 4 && string(b) == "null" { + return nil + } + + typeStruct := struct { + Type string `json:"type"` + }{} + if err := json.Unmarshal(b, &typeStruct); err != nil { + return err + } + + c.Type = typeStruct.Type + if c.Type == "" { + return errors.New("visitor plugin type is empty") + } + + v, ok := visitorPluginOptionsTypeMap[typeStruct.Type] + if !ok { + return fmt.Errorf("unknown visitor plugin type: %s", typeStruct.Type) + } + options := reflect.New(v).Interface().(VisitorPluginOptions) + + decoder := json.NewDecoder(bytes.NewBuffer(b)) + if DisallowUnknownFields { + decoder.DisallowUnknownFields() + } + + if err := decoder.Decode(options); err != nil { + return fmt.Errorf("unmarshal VisitorPluginOptions error: %v", err) + } + c.VisitorPluginOptions = options + return nil +} + +func (c *TypedVisitorPluginOptions) MarshalJSON() ([]byte, error) { + return json.Marshal(c.VisitorPluginOptions) +} + +type VirtualNetVisitorPluginOptions struct { + Type string `json:"type"` + DestinationIP string `json:"destinationIP"` +} + +func (o *VirtualNetVisitorPluginOptions) Complete() {} diff --git a/pkg/featuregate/feature_gate.go b/pkg/featuregate/feature_gate.go new file mode 100644 index 00000000000..c5fd684bbd2 --- /dev/null +++ b/pkg/featuregate/feature_gate.go @@ -0,0 +1,219 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package featuregate + +import ( + "fmt" + "sort" + "strings" + "sync" + "sync/atomic" +) + +// Feature represents a feature gate name +type Feature string + +// FeatureStage represents the maturity level of a feature +type FeatureStage string + +const ( + // Alpha means the feature is experimental and disabled by default + Alpha FeatureStage = "ALPHA" + // Beta means the feature is more stable but still might change and is disabled by default + Beta FeatureStage = "BETA" + // GA means the feature is generally available and enabled by default + GA FeatureStage = "" +) + +// FeatureSpec describes a feature and its properties +type FeatureSpec struct { + // Default is the default enablement state for the feature + Default bool + // LockToDefault indicates the feature cannot be changed from its default + LockToDefault bool + // Stage indicates the maturity level of the feature + Stage FeatureStage +} + +// Define all available features here +var ( + VirtualNet = Feature("VirtualNet") +) + +// defaultFeatures defines default features with their specifications +var defaultFeatures = map[Feature]FeatureSpec{ + // Actual features + VirtualNet: {Default: false, Stage: Alpha}, +} + +// FeatureGate indicates whether a given feature is enabled or not +type FeatureGate interface { + // Enabled returns true if the key is enabled + Enabled(key Feature) bool + // KnownFeatures returns a slice of strings describing the known features + KnownFeatures() []string +} + +// MutableFeatureGate allows for dynamic feature gate configuration +type MutableFeatureGate interface { + FeatureGate + + // SetFromMap sets feature gate values from a map[string]bool + SetFromMap(m map[string]bool) error + // Add adds features to the feature gate + Add(features map[Feature]FeatureSpec) error + // String returns a string representing the feature gate configuration + String() string +} + +// featureGate implements the FeatureGate and MutableFeatureGate interfaces +type featureGate struct { + // lock guards writes to known, enabled, and reads/writes of closed + lock sync.Mutex + // known holds a map[Feature]FeatureSpec + known atomic.Value + // enabled holds a map[Feature]bool + enabled atomic.Value + // closed is set to true once the feature gates are considered immutable + closed bool +} + +// NewFeatureGate creates a new feature gate with the default features +func NewFeatureGate() MutableFeatureGate { + known := map[Feature]FeatureSpec{} + for k, v := range defaultFeatures { + known[k] = v + } + + f := &featureGate{} + f.known.Store(known) + f.enabled.Store(map[Feature]bool{}) + return f +} + +// SetFromMap sets feature gate values from a map[string]bool +func (f *featureGate) SetFromMap(m map[string]bool) error { + f.lock.Lock() + defer f.lock.Unlock() + + // Copy existing state + known := map[Feature]FeatureSpec{} + for k, v := range f.known.Load().(map[Feature]FeatureSpec) { + known[k] = v + } + enabled := map[Feature]bool{} + for k, v := range f.enabled.Load().(map[Feature]bool) { + enabled[k] = v + } + + // Apply the new settings + for k, v := range m { + k := Feature(k) + featureSpec, ok := known[k] + if !ok { + return fmt.Errorf("unrecognized feature gate: %s", k) + } + if featureSpec.LockToDefault && featureSpec.Default != v { + return fmt.Errorf("cannot set feature gate %v to %v, feature is locked to %v", k, v, featureSpec.Default) + } + enabled[k] = v + } + + // Persist the changes + f.known.Store(known) + f.enabled.Store(enabled) + return nil +} + +// Add adds features to the feature gate +func (f *featureGate) Add(features map[Feature]FeatureSpec) error { + f.lock.Lock() + defer f.lock.Unlock() + + if f.closed { + return fmt.Errorf("cannot add feature gates after the feature gate is closed") + } + + // Copy existing state + known := map[Feature]FeatureSpec{} + for k, v := range f.known.Load().(map[Feature]FeatureSpec) { + known[k] = v + } + + // Add new features + for name, spec := range features { + if existingSpec, found := known[name]; found { + if existingSpec == spec { + continue + } + return fmt.Errorf("feature gate %q with different spec already exists: %v", name, existingSpec) + } + known[name] = spec + } + + // Persist changes + f.known.Store(known) + + return nil +} + +// String returns a string containing all enabled feature gates, formatted as "key1=value1,key2=value2,..." +func (f *featureGate) String() string { + pairs := []string{} + for k, v := range f.enabled.Load().(map[Feature]bool) { + pairs = append(pairs, fmt.Sprintf("%s=%t", k, v)) + } + sort.Strings(pairs) + return strings.Join(pairs, ",") +} + +// Enabled returns true if the key is enabled +func (f *featureGate) Enabled(key Feature) bool { + if v, ok := f.enabled.Load().(map[Feature]bool)[key]; ok { + return v + } + if v, ok := f.known.Load().(map[Feature]FeatureSpec)[key]; ok { + return v.Default + } + return false +} + +// KnownFeatures returns a slice of strings describing the FeatureGate's known features +// GA features are hidden from the list +func (f *featureGate) KnownFeatures() []string { + knownFeatures := f.known.Load().(map[Feature]FeatureSpec) + known := make([]string, 0, len(knownFeatures)) + for k, v := range knownFeatures { + if v.Stage == GA { + continue + } + known = append(known, fmt.Sprintf("%s=true|false (%s - default=%t)", k, v.Stage, v.Default)) + } + sort.Strings(known) + return known +} + +// Default feature gates instance +var DefaultFeatureGates = NewFeatureGate() + +// Enabled checks if a feature is enabled in the default feature gates +func Enabled(name Feature) bool { + return DefaultFeatureGates.Enabled(name) +} + +// SetFromMap sets feature gate values from a map in the default feature gates +func SetFromMap(featureMap map[string]bool) error { + return DefaultFeatureGates.SetFromMap(featureMap) +} diff --git a/pkg/plugin/client/http2http.go b/pkg/plugin/client/http2http.go index d7c4c7e492a..889a10f6643 100644 --- a/pkg/plugin/client/http2http.go +++ b/pkg/plugin/client/http2http.go @@ -14,13 +14,11 @@ //go:build !frps -package plugin +package client import ( "context" - "io" stdlog "log" - "net" "net/http" "net/http/httputil" @@ -42,7 +40,7 @@ type HTTP2HTTPPlugin struct { s *http.Server } -func NewHTTP2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { +func NewHTTP2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error) { opts := options.(*v1.HTTP2HTTPPluginOptions) listener := NewProxyListener() @@ -80,8 +78,8 @@ func NewHTTP2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { return p, nil } -func (p *HTTP2HTTPPlugin) Handle(_ context.Context, conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) +func (p *HTTP2HTTPPlugin) Handle(_ context.Context, connInfo *ConnectionInfo) { + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index 66f9098912c..538f2850f1f 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -14,14 +14,12 @@ //go:build !frps -package plugin +package client import ( "context" "crypto/tls" - "io" stdlog "log" - "net" "net/http" "net/http/httputil" @@ -43,7 +41,7 @@ type HTTP2HTTPSPlugin struct { s *http.Server } -func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { +func NewHTTP2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error) { opts := options.(*v1.HTTP2HTTPSPluginOptions) listener := NewProxyListener() @@ -89,8 +87,8 @@ func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { return p, nil } -func (p *HTTP2HTTPSPlugin) Handle(_ context.Context, conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) +func (p *HTTP2HTTPSPlugin) Handle(_ context.Context, connInfo *ConnectionInfo) { + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go index b7491bd1082..0f6b55f4438 100644 --- a/pkg/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -14,7 +14,7 @@ //go:build !frps -package plugin +package client import ( "bufio" @@ -45,7 +45,7 @@ type HTTPProxy struct { s *http.Server } -func NewHTTPProxyPlugin(options v1.ClientPluginOptions) (Plugin, error) { +func NewHTTPProxyPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error) { opts := options.(*v1.HTTPProxyPluginOptions) listener := NewProxyListener() @@ -69,8 +69,8 @@ func (hp *HTTPProxy) Name() string { return v1.PluginHTTPProxy } -func (hp *HTTPProxy) Handle(_ context.Context, conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) +func (hp *HTTPProxy) Handle(_ context.Context, connInfo *ConnectionInfo) { + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) sc, rd := libnet.NewSharedConn(wrapConn) firstBytes := make([]byte, 7) diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 9632a6fbc80..963b9d2e037 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -14,15 +14,13 @@ //go:build !frps -package plugin +package client import ( "context" "crypto/tls" "fmt" - "io" stdlog "log" - "net" "net/http" "net/http/httputil" "time" @@ -48,7 +46,7 @@ type HTTPS2HTTPPlugin struct { s *http.Server } -func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { +func NewHTTPS2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error) { opts := options.(*v1.HTTPS2HTTPPluginOptions) listener := NewProxyListener() @@ -106,10 +104,10 @@ func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) { return p, nil } -func (p *HTTPS2HTTPPlugin) Handle(_ context.Context, conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo) { - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) - if extra.SrcAddr != nil { - wrapConn.SetRemoteAddr(extra.SrcAddr) +func (p *HTTPS2HTTPPlugin) Handle(_ context.Context, connInfo *ConnectionInfo) { + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) + if connInfo.SrcAddr != nil { + wrapConn.SetRemoteAddr(connInfo.SrcAddr) } _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index 8121e0943de..5c669d367da 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -14,15 +14,13 @@ //go:build !frps -package plugin +package client import ( "context" "crypto/tls" "fmt" - "io" stdlog "log" - "net" "net/http" "net/http/httputil" "time" @@ -48,7 +46,7 @@ type HTTPS2HTTPSPlugin struct { s *http.Server } -func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { +func NewHTTPS2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error) { opts := options.(*v1.HTTPS2HTTPSPluginOptions) listener := NewProxyListener() @@ -112,10 +110,10 @@ func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) { return p, nil } -func (p *HTTPS2HTTPSPlugin) Handle(_ context.Context, conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo) { - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) - if extra.SrcAddr != nil { - wrapConn.SetRemoteAddr(extra.SrcAddr) +func (p *HTTPS2HTTPSPlugin) Handle(_ context.Context, connInfo *ConnectionInfo) { + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) + if connInfo.SrcAddr != nil { + wrapConn.SetRemoteAddr(connInfo.SrcAddr) } _ = p.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/plugin.go b/pkg/plugin/client/plugin.go index 3dce8592629..7bcd04893f5 100644 --- a/pkg/plugin/client/plugin.go +++ b/pkg/plugin/client/plugin.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package plugin +package client import ( "context" @@ -25,13 +25,18 @@ import ( pp "github.com/pires/go-proxyproto" v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/vnet" ) +type PluginContext struct { + Name string + VnetController *vnet.Controller +} + // Creators is used for create plugins to handle connections. var creators = make(map[string]CreatorFn) -// params has prefix "plugin_" -type CreatorFn func(options v1.ClientPluginOptions) (Plugin, error) +type CreatorFn func(pluginCtx PluginContext, options v1.ClientPluginOptions) (Plugin, error) func Register(name string, fn CreatorFn) { if _, exist := creators[name]; exist { @@ -40,16 +45,19 @@ func Register(name string, fn CreatorFn) { creators[name] = fn } -func Create(name string, options v1.ClientPluginOptions) (p Plugin, err error) { - if fn, ok := creators[name]; ok { - p, err = fn(options) +func Create(pluginName string, pluginCtx PluginContext, options v1.ClientPluginOptions) (p Plugin, err error) { + if fn, ok := creators[pluginName]; ok { + p, err = fn(pluginCtx, options) } else { - err = fmt.Errorf("plugin [%s] is not registered", name) + err = fmt.Errorf("plugin [%s] is not registered", pluginName) } return } -type ExtraInfo struct { +type ConnectionInfo struct { + Conn io.ReadWriteCloser + UnderlyingConn net.Conn + ProxyProtocolHeader *pp.Header SrcAddr net.Addr DstAddr net.Addr @@ -58,7 +66,7 @@ type ExtraInfo struct { type Plugin interface { Name() string - Handle(ctx context.Context, conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo) + Handle(ctx context.Context, connInfo *ConnectionInfo) Close() error } diff --git a/pkg/plugin/client/socks5.go b/pkg/plugin/client/socks5.go index 7478ebe1414..752dd1e198e 100644 --- a/pkg/plugin/client/socks5.go +++ b/pkg/plugin/client/socks5.go @@ -14,13 +14,12 @@ //go:build !frps -package plugin +package client import ( "context" "io" "log" - "net" gosocks5 "github.com/armon/go-socks5" @@ -36,7 +35,7 @@ type Socks5Plugin struct { Server *gosocks5.Server } -func NewSocks5Plugin(options v1.ClientPluginOptions) (p Plugin, err error) { +func NewSocks5Plugin(_ PluginContext, options v1.ClientPluginOptions) (p Plugin, err error) { opts := options.(*v1.Socks5PluginOptions) cfg := &gosocks5.Config{ @@ -51,9 +50,9 @@ func NewSocks5Plugin(options v1.ClientPluginOptions) (p Plugin, err error) { return } -func (sp *Socks5Plugin) Handle(_ context.Context, conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { - defer conn.Close() - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) +func (sp *Socks5Plugin) Handle(_ context.Context, connInfo *ConnectionInfo) { + defer connInfo.Conn.Close() + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) _ = sp.Server.ServeConn(wrapConn) } diff --git a/pkg/plugin/client/static_file.go b/pkg/plugin/client/static_file.go index 02cb9930728..0bab120aa22 100644 --- a/pkg/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -14,12 +14,10 @@ //go:build !frps -package plugin +package client import ( "context" - "io" - "net" "net/http" "time" @@ -40,7 +38,7 @@ type StaticFilePlugin struct { s *http.Server } -func NewStaticFilePlugin(options v1.ClientPluginOptions) (Plugin, error) { +func NewStaticFilePlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error) { opts := options.(*v1.StaticFilePluginOptions) listener := NewProxyListener() @@ -70,8 +68,8 @@ func NewStaticFilePlugin(options v1.ClientPluginOptions) (Plugin, error) { return sp, nil } -func (sp *StaticFilePlugin) Handle(_ context.Context, conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) +func (sp *StaticFilePlugin) Handle(_ context.Context, connInfo *ConnectionInfo) { + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) _ = sp.l.PutConn(wrapConn) } diff --git a/pkg/plugin/client/tls2raw.go b/pkg/plugin/client/tls2raw.go index adcc77417d8..445b6c91dfc 100644 --- a/pkg/plugin/client/tls2raw.go +++ b/pkg/plugin/client/tls2raw.go @@ -14,12 +14,11 @@ //go:build !frps -package plugin +package client import ( "context" "crypto/tls" - "io" "net" libio "github.com/fatedier/golib/io" @@ -40,7 +39,7 @@ type TLS2RawPlugin struct { tlsConfig *tls.Config } -func NewTLS2RawPlugin(options v1.ClientPluginOptions) (Plugin, error) { +func NewTLS2RawPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error) { opts := options.(*v1.TLS2RawPluginOptions) p := &TLS2RawPlugin{ @@ -55,10 +54,10 @@ func NewTLS2RawPlugin(options v1.ClientPluginOptions) (Plugin, error) { return p, nil } -func (p *TLS2RawPlugin) Handle(ctx context.Context, conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo) { +func (p *TLS2RawPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo) { xl := xlog.FromContextSafe(ctx) - wrapConn := netpkg.WrapReadWriteCloserToConn(conn, realConn) + wrapConn := netpkg.WrapReadWriteCloserToConn(connInfo.Conn, connInfo.UnderlyingConn) tlsConn := tls.Server(wrapConn, p.tlsConfig) if err := tlsConn.Handshake(); err != nil { diff --git a/pkg/plugin/client/unix_domain_socket.go b/pkg/plugin/client/unix_domain_socket.go index b6aa6075040..52d9c6525be 100644 --- a/pkg/plugin/client/unix_domain_socket.go +++ b/pkg/plugin/client/unix_domain_socket.go @@ -14,11 +14,10 @@ //go:build !frps -package plugin +package client import ( "context" - "io" "net" libio "github.com/fatedier/golib/io" @@ -35,7 +34,7 @@ type UnixDomainSocketPlugin struct { UnixAddr *net.UnixAddr } -func NewUnixDomainSocketPlugin(options v1.ClientPluginOptions) (p Plugin, err error) { +func NewUnixDomainSocketPlugin(_ PluginContext, options v1.ClientPluginOptions) (p Plugin, err error) { opts := options.(*v1.UnixDomainSocketPluginOptions) unixAddr, errRet := net.ResolveUnixAddr("unix", opts.UnixPath) @@ -50,20 +49,20 @@ func NewUnixDomainSocketPlugin(options v1.ClientPluginOptions) (p Plugin, err er return } -func (uds *UnixDomainSocketPlugin) Handle(ctx context.Context, conn io.ReadWriteCloser, _ net.Conn, extra *ExtraInfo) { +func (uds *UnixDomainSocketPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo) { xl := xlog.FromContextSafe(ctx) localConn, err := net.DialUnix("unix", nil, uds.UnixAddr) if err != nil { xl.Warnf("dial to uds %s error: %v", uds.UnixAddr, err) return } - if extra.ProxyProtocolHeader != nil { - if _, err := extra.ProxyProtocolHeader.WriteTo(localConn); err != nil { + if connInfo.ProxyProtocolHeader != nil { + if _, err := connInfo.ProxyProtocolHeader.WriteTo(localConn); err != nil { return } } - libio.Join(localConn, conn) + libio.Join(localConn, connInfo.Conn) } func (uds *UnixDomainSocketPlugin) Name() string { diff --git a/pkg/plugin/client/virtual_net.go b/pkg/plugin/client/virtual_net.go new file mode 100644 index 00000000000..e1b29fdc843 --- /dev/null +++ b/pkg/plugin/client/virtual_net.go @@ -0,0 +1,71 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +//go:build !frps + +package client + +import ( + "context" + + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/util/xlog" +) + +func init() { + Register(v1.PluginVirtualNet, NewVirtualNetPlugin) +} + +type VirtualNetPlugin struct { + pluginCtx PluginContext + opts *v1.VirtualNetPluginOptions +} + +func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.ClientPluginOptions) (Plugin, error) { + opts := options.(*v1.VirtualNetPluginOptions) + + p := &VirtualNetPlugin{ + pluginCtx: pluginCtx, + opts: opts, + } + return p, nil +} + +func (p *VirtualNetPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo) { + xl := xlog.FromContextSafe(ctx) + + // Verify if virtual network controller is available + if p.pluginCtx.VnetController == nil { + return + } + + // Register the connection with the controller + routeName := p.pluginCtx.Name + err := p.pluginCtx.VnetController.RegisterServerConn(ctx, routeName, connInfo.Conn) + if err != nil { + xl.Errorf("virtual net failed to register server connection: %v", err) + return + } +} + +func (p *VirtualNetPlugin) Name() string { + return v1.PluginVirtualNet +} + +func (p *VirtualNetPlugin) Close() error { + if p.pluginCtx.VnetController != nil { + p.pluginCtx.VnetController.UnregisterServerConn(p.pluginCtx.Name) + } + return nil +} diff --git a/pkg/plugin/server/http.go b/pkg/plugin/server/http.go index 6046c38a848..196993ef8b6 100644 --- a/pkg/plugin/server/http.go +++ b/pkg/plugin/server/http.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package plugin +package server import ( "bytes" diff --git a/pkg/plugin/server/manager.go b/pkg/plugin/server/manager.go index 8f23b529fd8..dabfb46cbd0 100644 --- a/pkg/plugin/server/manager.go +++ b/pkg/plugin/server/manager.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package plugin +package server import ( "context" diff --git a/pkg/plugin/server/plugin.go b/pkg/plugin/server/plugin.go index 9456ee9b039..3d3c8cfdd65 100644 --- a/pkg/plugin/server/plugin.go +++ b/pkg/plugin/server/plugin.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package plugin +package server import ( "context" diff --git a/pkg/plugin/server/tracer.go b/pkg/plugin/server/tracer.go index 2f4f2ccc25d..5b6ede182ec 100644 --- a/pkg/plugin/server/tracer.go +++ b/pkg/plugin/server/tracer.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package plugin +package server import ( "context" diff --git a/pkg/plugin/server/types.go b/pkg/plugin/server/types.go index c9fc4a40225..4a5b7527185 100644 --- a/pkg/plugin/server/types.go +++ b/pkg/plugin/server/types.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package plugin +package server import ( "github.com/fatedier/frp/pkg/msg" diff --git a/pkg/plugin/visitor/plugin.go b/pkg/plugin/visitor/plugin.go new file mode 100644 index 00000000000..94adce093b0 --- /dev/null +++ b/pkg/plugin/visitor/plugin.go @@ -0,0 +1,58 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package visitor + +import ( + "context" + "fmt" + "net" + + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/vnet" +) + +type PluginContext struct { + Name string + Ctx context.Context + VnetController *vnet.Controller + HandleConn func(net.Conn) +} + +// Creators is used for create plugins to handle connections. +var creators = make(map[string]CreatorFn) + +type CreatorFn func(pluginCtx PluginContext, options v1.VisitorPluginOptions) (Plugin, error) + +func Register(name string, fn CreatorFn) { + if _, exist := creators[name]; exist { + panic(fmt.Sprintf("plugin [%s] is already registered", name)) + } + creators[name] = fn +} + +func Create(pluginName string, pluginCtx PluginContext, options v1.VisitorPluginOptions) (p Plugin, err error) { + if fn, ok := creators[pluginName]; ok { + p, err = fn(pluginCtx, options) + } else { + err = fmt.Errorf("plugin [%s] is not registered", pluginName) + } + return +} + +type Plugin interface { + Name() string + Start() + Close() error +} diff --git a/pkg/plugin/visitor/virtual_net.go b/pkg/plugin/visitor/virtual_net.go new file mode 100644 index 00000000000..e452e14f810 --- /dev/null +++ b/pkg/plugin/visitor/virtual_net.go @@ -0,0 +1,232 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +//go:build !frps + +package visitor + +import ( + "context" + "errors" + "fmt" + "net" + "sync" + "time" + + v1 "github.com/fatedier/frp/pkg/config/v1" + netutil "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/xlog" +) + +func init() { + Register(v1.VisitorPluginVirtualNet, NewVirtualNetPlugin) +} + +type VirtualNetPlugin struct { + pluginCtx PluginContext + + routes []net.IPNet + + mu sync.Mutex + controllerConn net.Conn + closeSignal chan struct{} + + ctx context.Context + cancel context.CancelFunc +} + +func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.VisitorPluginOptions) (Plugin, error) { + opts := options.(*v1.VirtualNetVisitorPluginOptions) + + p := &VirtualNetPlugin{ + pluginCtx: pluginCtx, + routes: make([]net.IPNet, 0), + } + + p.ctx, p.cancel = context.WithCancel(pluginCtx.Ctx) + + if opts.DestinationIP == "" { + return nil, errors.New("destinationIP is required") + } + + // Parse DestinationIP as a single IP and create a host route + ip := net.ParseIP(opts.DestinationIP) + if ip == nil { + return nil, fmt.Errorf("invalid destination IP address [%s]", opts.DestinationIP) + } + + var mask net.IPMask + if ip.To4() != nil { + mask = net.CIDRMask(32, 32) // /32 for IPv4 + } else { + mask = net.CIDRMask(128, 128) // /128 for IPv6 + } + p.routes = append(p.routes, net.IPNet{IP: ip, Mask: mask}) + + return p, nil +} + +func (p *VirtualNetPlugin) Name() string { + return v1.VisitorPluginVirtualNet +} + +func (p *VirtualNetPlugin) Start() { + xl := xlog.FromContextSafe(p.pluginCtx.Ctx) + if p.pluginCtx.VnetController == nil { + return + } + + routeStr := "unknown" + if len(p.routes) > 0 { + routeStr = p.routes[0].String() + } + xl.Infof("Starting VirtualNetPlugin for visitor [%s], attempting to register routes for %s", p.pluginCtx.Name, routeStr) + + go p.run() +} + +func (p *VirtualNetPlugin) run() { + xl := xlog.FromContextSafe(p.ctx) + reconnectDelay := 10 * time.Second + + for { + // Create a signal channel for this connection attempt + currentCloseSignal := make(chan struct{}) + + // Store the signal channel under lock + p.mu.Lock() + p.closeSignal = currentCloseSignal + p.mu.Unlock() + + select { + case <-p.ctx.Done(): + xl.Infof("VirtualNetPlugin run loop for visitor [%s] stopping (context cancelled before pipe creation).", p.pluginCtx.Name) + // Ensure controllerConn from previous loop is cleaned up if necessary + p.cleanupControllerConn(xl) + return + default: + } + + controllerConn, pluginConn := net.Pipe() + + // Store controllerConn under lock for cleanup purposes + p.mu.Lock() + p.controllerConn = controllerConn + p.mu.Unlock() + + // Wrap pluginConn using CloseNotifyConn + pluginNotifyConn := netutil.WrapCloseNotifyConn(pluginConn, func() { + close(currentCloseSignal) // Signal the run loop + }) + + xl.Infof("Attempting to register client route for visitor [%s]", p.pluginCtx.Name) + err := p.pluginCtx.VnetController.RegisterClientRoute(p.ctx, p.pluginCtx.Name, p.routes, controllerConn) + if err != nil { + xl.Errorf("Failed to register client route for visitor [%s]: %v. Retrying after %v", p.pluginCtx.Name, err, reconnectDelay) + p.cleanupPipePair(xl, controllerConn, pluginConn) // Close both ends on registration failure + + // Wait before retrying registration, unless context is cancelled + select { + case <-time.After(reconnectDelay): + continue // Retry the loop + case <-p.ctx.Done(): + xl.Infof("VirtualNetPlugin registration retry wait interrupted for visitor [%s]", p.pluginCtx.Name) + return // Exit loop if context is cancelled during wait + } + } + + xl.Infof("Successfully registered client route for visitor [%s]. Starting connection handler with CloseNotifyConn.", p.pluginCtx.Name) + + // Pass the CloseNotifyConn to HandleConn. + // HandleConn is responsible for calling Close() on pluginNotifyConn. + p.pluginCtx.HandleConn(pluginNotifyConn) + + // Wait for either the plugin context to be cancelled or the wrapper's Close() to be called via the signal channel. + select { + case <-p.ctx.Done(): + xl.Infof("VirtualNetPlugin run loop stopping for visitor [%s] (context cancelled while waiting).", p.pluginCtx.Name) + // Context cancelled, ensure controller side is closed if HandleConn didn't close its side yet. + p.cleanupControllerConn(xl) + return + case <-currentCloseSignal: + xl.Infof("Detected connection closed via CloseNotifyConn for visitor [%s].", p.pluginCtx.Name) + // HandleConn closed the plugin side (pluginNotifyConn). The closeFn was called, closing currentCloseSignal. + // We still need to close the controller side. + p.cleanupControllerConn(xl) + + // Add a delay before attempting to reconnect, respecting context cancellation. + xl.Infof("Waiting %v before attempting reconnection for visitor [%s]...", reconnectDelay, p.pluginCtx.Name) + select { + case <-time.After(reconnectDelay): + // Delay completed, loop will continue. + case <-p.ctx.Done(): + xl.Infof("VirtualNetPlugin reconnection delay interrupted for visitor [%s]", p.pluginCtx.Name) + return // Exit loop if context is cancelled during wait + } + // Loop will continue to reconnect. + } + + // Loop will restart, context check at the beginning of the loop is sufficient. + xl.Infof("Re-establishing virtual connection for visitor [%s]...", p.pluginCtx.Name) + } +} + +// cleanupControllerConn closes the current controllerConn (if it exists) under lock. +func (p *VirtualNetPlugin) cleanupControllerConn(xl *xlog.Logger) { + p.mu.Lock() + defer p.mu.Unlock() + if p.controllerConn != nil { + xl.Debugf("Cleaning up controllerConn for visitor [%s]", p.pluginCtx.Name) + p.controllerConn.Close() + p.controllerConn = nil + } + // Also clear the closeSignal reference for the completed/cancelled connection attempt + p.closeSignal = nil +} + +// cleanupPipePair closes both ends of a pipe, used typically when registration fails. +func (p *VirtualNetPlugin) cleanupPipePair(xl *xlog.Logger, controllerConn, pluginConn net.Conn) { + xl.Debugf("Cleaning up pipe pair for visitor [%s] after registration failure", p.pluginCtx.Name) + controllerConn.Close() + pluginConn.Close() + p.mu.Lock() + p.controllerConn = nil // Ensure field is nil if it was briefly set + p.closeSignal = nil // Ensure field is nil if it was briefly set + p.mu.Unlock() +} + +// Close initiates the plugin shutdown. +func (p *VirtualNetPlugin) Close() error { + xl := xlog.FromContextSafe(p.pluginCtx.Ctx) // Use base context for close logging + xl.Infof("Closing VirtualNetPlugin for visitor [%s]", p.pluginCtx.Name) + + // 1. Signal the run loop goroutine to stop via context cancellation. + p.cancel() + + // 2. Unregister the route from the controller. + // This might implicitly cause the VnetController to close its end of the pipe (controllerConn). + if p.pluginCtx.VnetController != nil { + p.pluginCtx.VnetController.UnregisterClientRoute(p.pluginCtx.Name) + xl.Infof("Unregistered client route for visitor [%s]", p.pluginCtx.Name) + } else { + xl.Warnf("VnetController is nil during close for visitor [%s], cannot unregister route", p.pluginCtx.Name) + } + + // 3. Explicitly close the controller side of the pipe managed by this plugin. + // This ensures the pipe is broken even if the run loop is stuck or HandleConn hasn't closed its end. + p.cleanupControllerConn(xl) + xl.Infof("Finished cleaning up connections during close for visitor [%s]", p.pluginCtx.Name) + + return nil +} diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index f56e1ec072c..e74233c7083 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.61.2" +var version = "0.62.0" func Full() string { return version diff --git a/pkg/vnet/controller.go b/pkg/vnet/controller.go new file mode 100644 index 00000000000..d43147a3076 --- /dev/null +++ b/pkg/vnet/controller.go @@ -0,0 +1,360 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package vnet + +import ( + "context" + "encoding/base64" + "fmt" + "io" + "net" + "sync" + + "github.com/fatedier/golib/pool" + "github.com/songgao/water/waterutil" + "golang.org/x/net/ipv4" + "golang.org/x/net/ipv6" + + v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/xlog" +) + +const ( + maxPacketSize = 1420 +) + +type Controller struct { + addr string + + tun io.ReadWriteCloser + clientRouter *clientRouter // Route based on destination IP (client mode) + serverRouter *serverRouter // Route based on source IP (server mode) +} + +func NewController(cfg v1.VirtualNetConfig) *Controller { + return &Controller{ + addr: cfg.Address, + clientRouter: newClientRouter(), + serverRouter: newServerRouter(), + } +} + +func (c *Controller) Init() error { + tunDevice, err := OpenTun(context.Background(), c.addr) + if err != nil { + return err + } + c.tun = tunDevice + return nil +} + +func (c *Controller) Run() error { + conn := c.tun + + for { + buf := pool.GetBuf(maxPacketSize) + n, err := conn.Read(buf) + if err != nil { + pool.PutBuf(buf) + log.Warnf("vnet read from tun error: %v", err) + return err + } + + c.handlePacket(buf[:n]) + pool.PutBuf(buf) + } +} + +// handlePacket processes a single packet. The caller is responsible for managing the buffer. +func (c *Controller) handlePacket(buf []byte) { + log.Tracef("vnet read from tun [%d]: %s", len(buf), base64.StdEncoding.EncodeToString(buf)) + + var src, dst net.IP + switch { + case waterutil.IsIPv4(buf): + header, err := ipv4.ParseHeader(buf) + if err != nil { + log.Warnf("parse ipv4 header error:", err) + return + } + src = header.Src + dst = header.Dst + log.Tracef("%s >> %s %d/%-4d %-4x %d", + header.Src, header.Dst, + header.Len, header.TotalLen, header.ID, header.Flags) + case waterutil.IsIPv6(buf): + header, err := ipv6.ParseHeader(buf) + if err != nil { + log.Warnf("parse ipv6 header error:", err) + return + } + src = header.Src + dst = header.Dst + log.Tracef("%s >> %s %d %d", + header.Src, header.Dst, + header.PayloadLen, header.TrafficClass) + default: + log.Tracef("unknown packet, discarded(%d)", len(buf)) + return + } + + targetConn, err := c.clientRouter.findConn(dst) + if err == nil { + if err := WriteMessage(targetConn, buf); err != nil { + log.Warnf("write to client target conn error: %v", err) + } + return + } + + targetConn, err = c.serverRouter.findConnBySrc(dst) + if err == nil { + if err := WriteMessage(targetConn, buf); err != nil { + log.Warnf("write to server target conn error: %v", err) + } + return + } + + log.Tracef("no route found for packet from %s to %s", src, dst) +} + +func (c *Controller) Stop() error { + return c.tun.Close() +} + +// Client connection read loop +func (c *Controller) readLoopClient(ctx context.Context, conn io.ReadWriteCloser) { + xl := xlog.FromContextSafe(ctx) + for { + data, err := ReadMessage(conn) + if err != nil { + xl.Warnf("client read error: %v", err) + return + } + + if len(data) == 0 { + continue + } + + switch { + case waterutil.IsIPv4(data): + header, err := ipv4.ParseHeader(data) + if err != nil { + xl.Warnf("parse ipv4 header error: %v", err) + continue + } + xl.Tracef("%s >> %s %d/%-4d %-4x %d", + header.Src, header.Dst, + header.Len, header.TotalLen, header.ID, header.Flags) + case waterutil.IsIPv6(data): + header, err := ipv6.ParseHeader(data) + if err != nil { + xl.Warnf("parse ipv6 header error: %v", err) + continue + } + xl.Tracef("%s >> %s %d %d", + header.Src, header.Dst, + header.PayloadLen, header.TrafficClass) + default: + xl.Tracef("unknown packet, discarded(%d)", len(data)) + continue + } + + xl.Tracef("vnet write to tun (client) [%d]: %s", len(data), base64.StdEncoding.EncodeToString(data)) + _, err = c.tun.Write(data) + if err != nil { + xl.Warnf("client write tun error: %v", err) + } + } +} + +// Server connection read loop +func (c *Controller) readLoopServer(ctx context.Context, conn io.ReadWriteCloser) { + xl := xlog.FromContextSafe(ctx) + for { + data, err := ReadMessage(conn) + if err != nil { + xl.Warnf("server read error: %v", err) + return + } + + if len(data) == 0 { + continue + } + + // Register source IP to connection mapping + if waterutil.IsIPv4(data) || waterutil.IsIPv6(data) { + var src net.IP + if waterutil.IsIPv4(data) { + header, err := ipv4.ParseHeader(data) + if err == nil { + src = header.Src + c.serverRouter.registerSrcIP(src, conn) + } + } else { + header, err := ipv6.ParseHeader(data) + if err == nil { + src = header.Src + c.serverRouter.registerSrcIP(src, conn) + } + } + } + + xl.Tracef("vnet write to tun (server) [%d]: %s", len(data), base64.StdEncoding.EncodeToString(data)) + _, err = c.tun.Write(data) + if err != nil { + xl.Warnf("server write tun error: %v", err) + } + } +} + +// RegisterClientRoute Register client route (based on destination IP CIDR) +func (c *Controller) RegisterClientRoute(ctx context.Context, name string, routes []net.IPNet, conn io.ReadWriteCloser) error { + if err := c.clientRouter.addRoute(name, routes, conn); err != nil { + return err + } + go c.readLoopClient(ctx, conn) + return nil +} + +// RegisterServerConn Register server connection (dynamically associates with source IPs) +func (c *Controller) RegisterServerConn(ctx context.Context, name string, conn io.ReadWriteCloser) error { + if err := c.serverRouter.addConn(name, conn); err != nil { + return err + } + go c.readLoopServer(ctx, conn) + return nil +} + +// UnregisterServerConn Remove server connection from routing table +func (c *Controller) UnregisterServerConn(name string) { + c.serverRouter.delConn(name) +} + +// UnregisterClientRoute Remove client route from routing table +func (c *Controller) UnregisterClientRoute(name string) { + c.clientRouter.delRoute(name) +} + +// ParseRoutes Convert route strings to IPNet objects +func ParseRoutes(routeStrings []string) ([]net.IPNet, error) { + routes := make([]net.IPNet, 0, len(routeStrings)) + for _, r := range routeStrings { + _, ipNet, err := net.ParseCIDR(r) + if err != nil { + return nil, fmt.Errorf("parse route %s error: %v", r, err) + } + routes = append(routes, *ipNet) + } + return routes, nil +} + +// Client router (based on destination IP routing) +type clientRouter struct { + routes map[string]*routeElement + mu sync.RWMutex +} + +func newClientRouter() *clientRouter { + return &clientRouter{ + routes: make(map[string]*routeElement), + } +} + +func (r *clientRouter) addRoute(name string, routes []net.IPNet, conn io.ReadWriteCloser) error { + r.mu.Lock() + defer r.mu.Unlock() + r.routes[name] = &routeElement{ + name: name, + routes: routes, + conn: conn, + } + return nil +} + +func (r *clientRouter) findConn(dst net.IP) (io.Writer, error) { + r.mu.RLock() + defer r.mu.RUnlock() + for _, re := range r.routes { + for _, route := range re.routes { + if route.Contains(dst) { + return re.conn, nil + } + } + } + return nil, fmt.Errorf("no route found for destination %s", dst) +} + +func (r *clientRouter) delRoute(name string) { + r.mu.Lock() + defer r.mu.Unlock() + delete(r.routes, name) +} + +// Server router (based on source IP routing) +type serverRouter struct { + namedConns map[string]io.ReadWriteCloser // Name to connection mapping + srcIPConns map[string]io.Writer // Source IP string to connection mapping + mu sync.RWMutex +} + +func newServerRouter() *serverRouter { + return &serverRouter{ + namedConns: make(map[string]io.ReadWriteCloser), + srcIPConns: make(map[string]io.Writer), + } +} + +func (r *serverRouter) addConn(name string, conn io.ReadWriteCloser) error { + r.mu.Lock() + original, ok := r.namedConns[name] + r.namedConns[name] = conn + r.mu.Unlock() + if ok { + // Close the original connection if it exists + _ = original.Close() + } + return nil +} + +func (r *serverRouter) findConnBySrc(src net.IP) (io.Writer, error) { + r.mu.RLock() + defer r.mu.RUnlock() + conn, exists := r.srcIPConns[src.String()] + if !exists { + return nil, fmt.Errorf("no route found for source %s", src) + } + return conn, nil +} + +func (r *serverRouter) registerSrcIP(src net.IP, conn io.Writer) { + r.mu.Lock() + defer r.mu.Unlock() + r.srcIPConns[src.String()] = conn +} + +func (r *serverRouter) delConn(name string) { + r.mu.Lock() + defer r.mu.Unlock() + delete(r.namedConns, name) + // Note: We don't delete mappings from srcIPConns because we don't know which source IPs are associated with this connection + // This might cause dangling references, but they will be overwritten on new connections or restart +} + +type routeElement struct { + name string + routes []net.IPNet + conn io.ReadWriteCloser +} diff --git a/pkg/vnet/message.go b/pkg/vnet/message.go new file mode 100644 index 00000000000..002b090ab4a --- /dev/null +++ b/pkg/vnet/message.go @@ -0,0 +1,81 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package vnet + +import ( + "encoding/binary" + "fmt" + "io" +) + +// Maximum message size +const ( + maxMessageSize = 1024 * 1024 // 1MB +) + +// Format: [length(4 bytes)][data(length bytes)] + +// ReadMessage reads a framed message from the reader +func ReadMessage(r io.Reader) ([]byte, error) { + // Read length (4 bytes) + var length uint32 + err := binary.Read(r, binary.LittleEndian, &length) + if err != nil { + return nil, fmt.Errorf("read message length error: %v", err) + } + + // Check length to prevent DoS + if length == 0 { + return nil, fmt.Errorf("message length is 0") + } + if length > maxMessageSize { + return nil, fmt.Errorf("message too large: %d > %d", length, maxMessageSize) + } + + // Read message data + data := make([]byte, length) + _, err = io.ReadFull(r, data) + if err != nil { + return nil, fmt.Errorf("read message data error: %v", err) + } + + return data, nil +} + +// WriteMessage writes a framed message to the writer +func WriteMessage(w io.Writer, data []byte) error { + // Get data length + length := uint32(len(data)) + if length == 0 { + return fmt.Errorf("message data length is 0") + } + if length > maxMessageSize { + return fmt.Errorf("message too large: %d > %d", length, maxMessageSize) + } + + // Write length + err := binary.Write(w, binary.LittleEndian, length) + if err != nil { + return fmt.Errorf("write message length error: %v", err) + } + + // Write message data + _, err = w.Write(data) + if err != nil { + return fmt.Errorf("write message data error: %v", err) + } + + return nil +} diff --git a/pkg/vnet/tun.go b/pkg/vnet/tun.go new file mode 100644 index 00000000000..bafc639271d --- /dev/null +++ b/pkg/vnet/tun.go @@ -0,0 +1,77 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package vnet + +import ( + "context" + "io" + + "github.com/fatedier/golib/pool" + "golang.zx2c4.com/wireguard/tun" +) + +const ( + offset = 16 +) + +type TunDevice interface { + io.ReadWriteCloser +} + +func OpenTun(ctx context.Context, addr string) (TunDevice, error) { + td, err := openTun(ctx, addr) + if err != nil { + return nil, err + } + return &tunDeviceWrapper{dev: td}, nil +} + +type tunDeviceWrapper struct { + dev tun.Device +} + +func (d *tunDeviceWrapper) Read(p []byte) (int, error) { + buf := pool.GetBuf(len(p) + offset) + defer pool.PutBuf(buf) + + sz := make([]int, 1) + + n, err := d.dev.Read([][]byte{buf}, sz, offset) + if err != nil { + return 0, err + } + if n == 0 { + return 0, io.EOF + } + + dataSize := sz[0] + if dataSize > len(p) { + dataSize = len(p) + } + copy(p, buf[offset:offset+dataSize]) + return dataSize, nil +} + +func (d *tunDeviceWrapper) Write(p []byte) (int, error) { + buf := pool.GetBuf(len(p) + offset) + defer pool.PutBuf(buf) + + copy(buf[offset:], p) + return d.dev.Write([][]byte{buf}, offset) +} + +func (d *tunDeviceWrapper) Close() error { + return d.dev.Close() +} diff --git a/pkg/vnet/tun_darwin.go b/pkg/vnet/tun_darwin.go new file mode 100644 index 00000000000..9fa7d42c58f --- /dev/null +++ b/pkg/vnet/tun_darwin.go @@ -0,0 +1,85 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package vnet + +import ( + "context" + "fmt" + "net" + "os/exec" + + "golang.zx2c4.com/wireguard/tun" +) + +const ( + defaultTunName = "utun" + defaultMTU = 1420 +) + +func openTun(_ context.Context, addr string) (tun.Device, error) { + dev, err := tun.CreateTUN(defaultTunName, defaultMTU) + if err != nil { + return nil, err + } + + name, err := dev.Name() + if err != nil { + return nil, err + } + + ip, ipNet, err := net.ParseCIDR(addr) + if err != nil { + return nil, err + } + + // Calculate a peer IP for the point-to-point tunnel + peerIP := generatePeerIP(ip) + + // Configure the interface with proper point-to-point addressing + if err = exec.Command("ifconfig", name, "inet", ip.String(), peerIP.String(), "mtu", fmt.Sprint(defaultMTU), "up").Run(); err != nil { + return nil, err + } + + // Add default route for the tunnel subnet + routes := []net.IPNet{*ipNet} + if err = addRoutes(name, routes); err != nil { + return nil, err + } + return dev, nil +} + +// generatePeerIP creates a peer IP for the point-to-point tunnel +// by incrementing the last octet of the IP +func generatePeerIP(ip net.IP) net.IP { + // Make a copy to avoid modifying the original + peerIP := make(net.IP, len(ip)) + copy(peerIP, ip) + + // Increment the last octet + peerIP[len(peerIP)-1]++ + + return peerIP +} + +// addRoutes configures system routes for the TUN interface +func addRoutes(ifName string, routes []net.IPNet) error { + for _, route := range routes { + routeStr := route.String() + if err := exec.Command("route", "add", "-net", routeStr, "-interface", ifName).Run(); err != nil { + return err + } + } + return nil +} diff --git a/pkg/vnet/tun_linux.go b/pkg/vnet/tun_linux.go new file mode 100644 index 00000000000..7c9c684cc97 --- /dev/null +++ b/pkg/vnet/tun_linux.go @@ -0,0 +1,84 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package vnet + +import ( + "context" + "fmt" + "net" + + "github.com/vishvananda/netlink" + "golang.zx2c4.com/wireguard/tun" +) + +const ( + defaultTunName = "utun" + defaultMTU = 1420 +) + +func openTun(_ context.Context, addr string) (tun.Device, error) { + dev, err := tun.CreateTUN(defaultTunName, defaultMTU) + if err != nil { + return nil, err + } + + name, err := dev.Name() + if err != nil { + return nil, err + } + + ifn, err := net.InterfaceByName(name) + if err != nil { + return nil, err + } + + link, err := netlink.LinkByName(name) + if err != nil { + return nil, err + } + + ip, cidr, err := net.ParseCIDR(addr) + if err != nil { + return nil, err + } + if err := netlink.AddrAdd(link, &netlink.Addr{ + IPNet: &net.IPNet{ + IP: ip, + Mask: cidr.Mask, + }, + }); err != nil { + return nil, err + } + + if err := netlink.LinkSetUp(link); err != nil { + return nil, err + } + + if err = addRoutes(ifn, cidr); err != nil { + return nil, err + } + return dev, nil +} + +func addRoutes(ifn *net.Interface, cidr *net.IPNet) error { + r := netlink.Route{ + Dst: cidr, + LinkIndex: ifn.Index, + } + if err := netlink.RouteReplace(&r); err != nil { + return fmt.Errorf("add route to %v error: %v", r.Dst, err) + } + return nil +} diff --git a/pkg/vnet/tun_unsupported.go b/pkg/vnet/tun_unsupported.go new file mode 100644 index 00000000000..0e2a811441f --- /dev/null +++ b/pkg/vnet/tun_unsupported.go @@ -0,0 +1,27 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +//go:build !darwin && !linux + +package vnet + +import ( + "context" + "fmt" + "runtime" +) + +func openTun(ctx context.Context) (TunDevice, error) { + return nil, fmt.Errorf("virtual net is not supported on this platform (%s/%s)", runtime.GOOS, runtime.GOARCH) +} From e208043323d0ffb5d495c32e14787f509572174c Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 16 Apr 2025 16:17:26 +0800 Subject: [PATCH 253/444] vnet: update tun_unsupported function (#4752) --- pkg/vnet/tun_unsupported.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/vnet/tun_unsupported.go b/pkg/vnet/tun_unsupported.go index 0e2a811441f..731a06cda9e 100644 --- a/pkg/vnet/tun_unsupported.go +++ b/pkg/vnet/tun_unsupported.go @@ -20,8 +20,10 @@ import ( "context" "fmt" "runtime" + + "golang.zx2c4.com/wireguard/tun" ) -func openTun(ctx context.Context) (TunDevice, error) { +func openTun(_ context.Context, _ string) (tun.Device, error) { return nil, fmt.Errorf("virtual net is not supported on this platform (%s/%s)", runtime.GOOS, runtime.GOARCH) } From 27f66baf547ce88f45e2b9d68427410c729427c9 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 17 Apr 2025 01:34:14 +0800 Subject: [PATCH 254/444] update feature gates doc (#4755) --- README.md | 4 +--- doc/virtual_net.md | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e604d5af114..25537220e94 100644 --- a/README.md +++ b/README.md @@ -1283,9 +1283,7 @@ frp supports feature gates to enable or disable experimental features. This allo To enable an experimental feature, add the feature gate to your configuration: ```toml -featureGates = { - VirtualNet = true -} +featureGates = { VirtualNet = true } ``` ### Feature Lifecycle diff --git a/doc/virtual_net.md b/doc/virtual_net.md index 62653e9f188..6f135dfc2fc 100644 --- a/doc/virtual_net.md +++ b/doc/virtual_net.md @@ -49,9 +49,7 @@ type = "virtual_net" # frpc.toml (client side) serverAddr = "x.x.x.x" serverPort = 7000 -featureGates = { - VirtualNet = true -} +featureGates = { VirtualNet = true } # Configure the virtual network interface virtualNet.address = "100.86.0.2/24" From 3c8d648ddc4541f45bdc8d171c564834d8832abc Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 27 Apr 2025 15:22:28 +0800 Subject: [PATCH 255/444] vnet: fix issues (#4771) --- client/admin_api.go | 12 +-- client/control.go | 2 +- client/service.go | 2 +- pkg/plugin/client/virtual_net.go | 43 +++++++--- pkg/plugin/visitor/virtual_net.go | 80 +++++-------------- pkg/util/vhost/http.go | 2 +- pkg/util/vhost/vhost.go | 2 +- pkg/vnet/controller.go | 118 +++++++++++++++++----------- pkg/vnet/message.go | 8 +- pkg/vnet/tun.go | 62 +++++++++++---- pkg/vnet/tun_linux.go | 63 +++++++++++++-- server/control.go | 2 +- server/dashboard_api.go | 20 ++--- server/service.go | 18 ++--- test/e2e/e2e.go | 2 +- test/e2e/framework/request.go | 6 +- test/e2e/legacy/features/real_ip.go | 4 +- test/e2e/v1/features/real_ip.go | 4 +- 18 files changed, 268 insertions(+), 182 deletions(-) diff --git a/client/admin_api.go b/client/admin_api.go index 708b2cbd9e6..f161d588b4d 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -165,9 +165,9 @@ func (svr *Service) apiStatus(w http.ResponseWriter, _ *http.Request) { res StatusResp = make(map[string][]ProxyStatusResp) ) - log.Infof("Http request [/api/status]") + log.Infof("http request [/api/status]") defer func() { - log.Infof("Http response [/api/status]") + log.Infof("http response [/api/status]") buf, _ = json.Marshal(&res) _, _ = w.Write(buf) }() @@ -198,9 +198,9 @@ func (svr *Service) apiStatus(w http.ResponseWriter, _ *http.Request) { func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { res := GeneralResponse{Code: 200} - log.Infof("Http get request [/api/config]") + log.Infof("http get request [/api/config]") defer func() { - log.Infof("Http get response [/api/config], code [%d]", res.Code) + log.Infof("http get response [/api/config], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -228,9 +228,9 @@ func (svr *Service) apiGetConfig(w http.ResponseWriter, _ *http.Request) { func (svr *Service) apiPutConfig(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} - log.Infof("Http put request [/api/config]") + log.Infof("http put request [/api/config]") defer func() { - log.Infof("Http put response [/api/config], code [%d]", res.Code) + log.Infof("http put response [/api/config], code [%d]", res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) diff --git a/client/control.go b/client/control.go index 157b4aef913..0dd70b8c72f 100644 --- a/client/control.go +++ b/client/control.go @@ -189,7 +189,7 @@ func (ctl *Control) handlePong(m msg.Message) { inMsg := m.(*msg.Pong) if inMsg.Error != "" { - xl.Errorf("Pong message contains error: %s", inMsg.Error) + xl.Errorf("pong message contains error: %s", inMsg.Error) ctl.closeSession() return } diff --git a/client/service.go b/client/service.go index 57eb483559e..e163cac4554 100644 --- a/client/service.go +++ b/client/service.go @@ -341,7 +341,7 @@ func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, firstLoginE ctl, err := NewControl(svr.ctx, sessionCtx) if err != nil { conn.Close() - xl.Errorf("NewControl error: %v", err) + xl.Errorf("new control error: %v", err) return false, err } ctl.SetInWorkConnCallback(svr.handleWorkConnCb) diff --git a/pkg/plugin/client/virtual_net.go b/pkg/plugin/client/virtual_net.go index e1b29fdc843..53570035c55 100644 --- a/pkg/plugin/client/virtual_net.go +++ b/pkg/plugin/client/virtual_net.go @@ -18,9 +18,10 @@ package client import ( "context" + "io" + "sync" v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/util/xlog" ) func init() { @@ -30,6 +31,8 @@ func init() { type VirtualNetPlugin struct { pluginCtx PluginContext opts *v1.VirtualNetPluginOptions + mu sync.Mutex + conns map[io.ReadWriteCloser]struct{} } func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.ClientPluginOptions) (Plugin, error) { @@ -43,19 +46,32 @@ func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.ClientPluginOptions } func (p *VirtualNetPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo) { - xl := xlog.FromContextSafe(ctx) - // Verify if virtual network controller is available if p.pluginCtx.VnetController == nil { return } - // Register the connection with the controller - routeName := p.pluginCtx.Name - err := p.pluginCtx.VnetController.RegisterServerConn(ctx, routeName, connInfo.Conn) - if err != nil { - xl.Errorf("virtual net failed to register server connection: %v", err) - return + // Add the connection before starting the read loop to avoid race condition + // where RemoveConn might be called before the connection is added. + p.mu.Lock() + if p.conns == nil { + p.conns = make(map[io.ReadWriteCloser]struct{}) + } + p.conns[connInfo.Conn] = struct{}{} + p.mu.Unlock() + + // Register the connection with the controller and pass the cleanup function + p.pluginCtx.VnetController.StartServerConnReadLoop(ctx, connInfo.Conn, func() { + p.RemoveConn(connInfo.Conn) + }) +} + +func (p *VirtualNetPlugin) RemoveConn(conn io.ReadWriteCloser) { + p.mu.Lock() + defer p.mu.Unlock() + // Check if the map exists, as Close might have set it to nil concurrently + if p.conns != nil { + delete(p.conns, conn) } } @@ -64,8 +80,13 @@ func (p *VirtualNetPlugin) Name() string { } func (p *VirtualNetPlugin) Close() error { - if p.pluginCtx.VnetController != nil { - p.pluginCtx.VnetController.UnregisterServerConn(p.pluginCtx.Name) + p.mu.Lock() + defer p.mu.Unlock() + + // Close any remaining connections + for conn := range p.conns { + _ = conn.Close() } + p.conns = nil return nil } diff --git a/pkg/plugin/visitor/virtual_net.go b/pkg/plugin/visitor/virtual_net.go index e452e14f810..f660c0c89e5 100644 --- a/pkg/plugin/visitor/virtual_net.go +++ b/pkg/plugin/visitor/virtual_net.go @@ -60,7 +60,7 @@ func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.VisitorPluginOption return nil, errors.New("destinationIP is required") } - // Parse DestinationIP as a single IP and create a host route + // Parse DestinationIP and create a host route. ip := net.ParseIP(opts.DestinationIP) if ip == nil { return nil, fmt.Errorf("invalid destination IP address [%s]", opts.DestinationIP) @@ -91,7 +91,7 @@ func (p *VirtualNetPlugin) Start() { if len(p.routes) > 0 { routeStr = p.routes[0].String() } - xl.Infof("Starting VirtualNetPlugin for visitor [%s], attempting to register routes for %s", p.pluginCtx.Name, routeStr) + xl.Infof("starting VirtualNetPlugin for visitor [%s], attempting to register routes for %s", p.pluginCtx.Name, routeStr) go p.run() } @@ -101,10 +101,8 @@ func (p *VirtualNetPlugin) run() { reconnectDelay := 10 * time.Second for { - // Create a signal channel for this connection attempt currentCloseSignal := make(chan struct{}) - // Store the signal channel under lock p.mu.Lock() p.closeSignal = currentCloseSignal p.mu.Unlock() @@ -112,7 +110,6 @@ func (p *VirtualNetPlugin) run() { select { case <-p.ctx.Done(): xl.Infof("VirtualNetPlugin run loop for visitor [%s] stopping (context cancelled before pipe creation).", p.pluginCtx.Name) - // Ensure controllerConn from previous loop is cleaned up if necessary p.cleanupControllerConn(xl) return default: @@ -120,65 +117,43 @@ func (p *VirtualNetPlugin) run() { controllerConn, pluginConn := net.Pipe() - // Store controllerConn under lock for cleanup purposes p.mu.Lock() p.controllerConn = controllerConn p.mu.Unlock() - // Wrap pluginConn using CloseNotifyConn pluginNotifyConn := netutil.WrapCloseNotifyConn(pluginConn, func() { - close(currentCloseSignal) // Signal the run loop + close(currentCloseSignal) // Signal the run loop on close. }) - xl.Infof("Attempting to register client route for visitor [%s]", p.pluginCtx.Name) - err := p.pluginCtx.VnetController.RegisterClientRoute(p.ctx, p.pluginCtx.Name, p.routes, controllerConn) - if err != nil { - xl.Errorf("Failed to register client route for visitor [%s]: %v. Retrying after %v", p.pluginCtx.Name, err, reconnectDelay) - p.cleanupPipePair(xl, controllerConn, pluginConn) // Close both ends on registration failure - - // Wait before retrying registration, unless context is cancelled - select { - case <-time.After(reconnectDelay): - continue // Retry the loop - case <-p.ctx.Done(): - xl.Infof("VirtualNetPlugin registration retry wait interrupted for visitor [%s]", p.pluginCtx.Name) - return // Exit loop if context is cancelled during wait - } - } - - xl.Infof("Successfully registered client route for visitor [%s]. Starting connection handler with CloseNotifyConn.", p.pluginCtx.Name) + xl.Infof("attempting to register client route for visitor [%s]", p.pluginCtx.Name) + p.pluginCtx.VnetController.RegisterClientRoute(p.ctx, p.pluginCtx.Name, p.routes, controllerConn) + xl.Infof("successfully registered client route for visitor [%s]. Starting connection handler with CloseNotifyConn.", p.pluginCtx.Name) // Pass the CloseNotifyConn to HandleConn. // HandleConn is responsible for calling Close() on pluginNotifyConn. p.pluginCtx.HandleConn(pluginNotifyConn) - // Wait for either the plugin context to be cancelled or the wrapper's Close() to be called via the signal channel. + // Wait for context cancellation or connection close. select { case <-p.ctx.Done(): xl.Infof("VirtualNetPlugin run loop stopping for visitor [%s] (context cancelled while waiting).", p.pluginCtx.Name) - // Context cancelled, ensure controller side is closed if HandleConn didn't close its side yet. p.cleanupControllerConn(xl) return case <-currentCloseSignal: - xl.Infof("Detected connection closed via CloseNotifyConn for visitor [%s].", p.pluginCtx.Name) - // HandleConn closed the plugin side (pluginNotifyConn). The closeFn was called, closing currentCloseSignal. - // We still need to close the controller side. + xl.Infof("detected connection closed via CloseNotifyConn for visitor [%s].", p.pluginCtx.Name) + // HandleConn closed the plugin side. Close the controller side. p.cleanupControllerConn(xl) - // Add a delay before attempting to reconnect, respecting context cancellation. - xl.Infof("Waiting %v before attempting reconnection for visitor [%s]...", reconnectDelay, p.pluginCtx.Name) + xl.Infof("waiting %v before attempting reconnection for visitor [%s]...", reconnectDelay, p.pluginCtx.Name) select { case <-time.After(reconnectDelay): - // Delay completed, loop will continue. case <-p.ctx.Done(): xl.Infof("VirtualNetPlugin reconnection delay interrupted for visitor [%s]", p.pluginCtx.Name) - return // Exit loop if context is cancelled during wait + return } - // Loop will continue to reconnect. } - // Loop will restart, context check at the beginning of the loop is sufficient. - xl.Infof("Re-establishing virtual connection for visitor [%s]...", p.pluginCtx.Name) + xl.Infof("re-establishing virtual connection for visitor [%s]...", p.pluginCtx.Name) } } @@ -187,46 +162,31 @@ func (p *VirtualNetPlugin) cleanupControllerConn(xl *xlog.Logger) { p.mu.Lock() defer p.mu.Unlock() if p.controllerConn != nil { - xl.Debugf("Cleaning up controllerConn for visitor [%s]", p.pluginCtx.Name) + xl.Debugf("cleaning up controllerConn for visitor [%s]", p.pluginCtx.Name) p.controllerConn.Close() p.controllerConn = nil } - // Also clear the closeSignal reference for the completed/cancelled connection attempt p.closeSignal = nil } -// cleanupPipePair closes both ends of a pipe, used typically when registration fails. -func (p *VirtualNetPlugin) cleanupPipePair(xl *xlog.Logger, controllerConn, pluginConn net.Conn) { - xl.Debugf("Cleaning up pipe pair for visitor [%s] after registration failure", p.pluginCtx.Name) - controllerConn.Close() - pluginConn.Close() - p.mu.Lock() - p.controllerConn = nil // Ensure field is nil if it was briefly set - p.closeSignal = nil // Ensure field is nil if it was briefly set - p.mu.Unlock() -} - // Close initiates the plugin shutdown. func (p *VirtualNetPlugin) Close() error { - xl := xlog.FromContextSafe(p.pluginCtx.Ctx) // Use base context for close logging - xl.Infof("Closing VirtualNetPlugin for visitor [%s]", p.pluginCtx.Name) + xl := xlog.FromContextSafe(p.pluginCtx.Ctx) + xl.Infof("closing VirtualNetPlugin for visitor [%s]", p.pluginCtx.Name) - // 1. Signal the run loop goroutine to stop via context cancellation. + // Signal the run loop goroutine to stop. p.cancel() - // 2. Unregister the route from the controller. - // This might implicitly cause the VnetController to close its end of the pipe (controllerConn). + // Unregister the route from the controller. if p.pluginCtx.VnetController != nil { p.pluginCtx.VnetController.UnregisterClientRoute(p.pluginCtx.Name) - xl.Infof("Unregistered client route for visitor [%s]", p.pluginCtx.Name) - } else { - xl.Warnf("VnetController is nil during close for visitor [%s], cannot unregister route", p.pluginCtx.Name) + xl.Infof("unregistered client route for visitor [%s]", p.pluginCtx.Name) } - // 3. Explicitly close the controller side of the pipe managed by this plugin. + // Explicitly close the controller side of the pipe. // This ensures the pipe is broken even if the run loop is stuck or HandleConn hasn't closed its end. p.cleanupControllerConn(xl) - xl.Infof("Finished cleaning up connections during close for visitor [%s]", p.pluginCtx.Name) + xl.Infof("finished cleaning up connections during close for visitor [%s]", p.pluginCtx.Name) return nil } diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index bc458a5c48a..46ebc3c7d7f 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -162,7 +162,7 @@ func (rp *HTTPReverseProxy) UnRegister(routeCfg RouteConfig) { func (rp *HTTPReverseProxy) GetRouteConfig(domain, location, routeByHTTPUser string) *RouteConfig { vr, ok := rp.getVhost(domain, location, routeByHTTPUser) if ok { - log.Debugf("get new HTTP request host [%s] path [%s] httpuser [%s]", domain, location, routeByHTTPUser) + log.Debugf("get new http request host [%s] path [%s] httpuser [%s]", domain, location, routeByHTTPUser) return vr.payload.(*RouteConfig) } return nil diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index 75b472b6ee4..66dd577d8ec 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -275,7 +275,7 @@ func (l *Listener) Accept() (net.Conn, error) { xl := xlog.FromContextSafe(l.ctx) conn, ok := <-l.accept if !ok { - return nil, fmt.Errorf("Listener closed") + return nil, fmt.Errorf("listener closed") } // if rewriteHost func is exist diff --git a/pkg/vnet/controller.go b/pkg/vnet/controller.go index d43147a3076..ca71a8c3abd 100644 --- a/pkg/vnet/controller.go +++ b/pkg/vnet/controller.go @@ -87,7 +87,7 @@ func (c *Controller) handlePacket(buf []byte) { case waterutil.IsIPv4(buf): header, err := ipv4.ParseHeader(buf) if err != nil { - log.Warnf("parse ipv4 header error:", err) + log.Warnf("parse ipv4 header error: %v", err) return } src = header.Src @@ -98,7 +98,7 @@ func (c *Controller) handlePacket(buf []byte) { case waterutil.IsIPv6(buf): header, err := ipv6.ParseHeader(buf) if err != nil { - log.Warnf("parse ipv6 header error:", err) + log.Warnf("parse ipv6 header error: %v", err) return } src = header.Src @@ -137,6 +137,12 @@ func (c *Controller) Stop() error { // Client connection read loop func (c *Controller) readLoopClient(ctx context.Context, conn io.ReadWriteCloser) { xl := xlog.FromContextSafe(ctx) + defer func() { + // Remove the route when read loop ends (connection closed) + c.clientRouter.removeConnRoute(conn) + conn.Close() + }() + for { data, err := ReadMessage(conn) if err != nil { @@ -181,8 +187,18 @@ func (c *Controller) readLoopClient(ctx context.Context, conn io.ReadWriteCloser } // Server connection read loop -func (c *Controller) readLoopServer(ctx context.Context, conn io.ReadWriteCloser) { +func (c *Controller) readLoopServer(ctx context.Context, conn io.ReadWriteCloser, onClose func()) { xl := xlog.FromContextSafe(ctx) + defer func() { + // Clean up all IP mappings associated with this connection when it closes + c.serverRouter.cleanupConnIPs(conn) + // Call the provided callback upon closure + if onClose != nil { + onClose() + } + conn.Close() + }() + for { data, err := ReadMessage(conn) if err != nil { @@ -220,27 +236,11 @@ func (c *Controller) readLoopServer(ctx context.Context, conn io.ReadWriteCloser } } -// RegisterClientRoute Register client route (based on destination IP CIDR) -func (c *Controller) RegisterClientRoute(ctx context.Context, name string, routes []net.IPNet, conn io.ReadWriteCloser) error { - if err := c.clientRouter.addRoute(name, routes, conn); err != nil { - return err - } +// RegisterClientRoute registers a client route (based on destination IP CIDR) +// and starts the read loop +func (c *Controller) RegisterClientRoute(ctx context.Context, name string, routes []net.IPNet, conn io.ReadWriteCloser) { + c.clientRouter.addRoute(name, routes, conn) go c.readLoopClient(ctx, conn) - return nil -} - -// RegisterServerConn Register server connection (dynamically associates with source IPs) -func (c *Controller) RegisterServerConn(ctx context.Context, name string, conn io.ReadWriteCloser) error { - if err := c.serverRouter.addConn(name, conn); err != nil { - return err - } - go c.readLoopServer(ctx, conn) - return nil -} - -// UnregisterServerConn Remove server connection from routing table -func (c *Controller) UnregisterServerConn(name string) { - c.serverRouter.delConn(name) } // UnregisterClientRoute Remove client route from routing table @@ -248,6 +248,12 @@ func (c *Controller) UnregisterClientRoute(name string) { c.clientRouter.delRoute(name) } +// StartServerConnReadLoop starts the read loop for a server connection +// (dynamically associates with source IPs) +func (c *Controller) StartServerConnReadLoop(ctx context.Context, conn io.ReadWriteCloser, onClose func()) { + go c.readLoopServer(ctx, conn, onClose) +} + // ParseRoutes Convert route strings to IPNet objects func ParseRoutes(routeStrings []string) ([]net.IPNet, error) { routes := make([]net.IPNet, 0, len(routeStrings)) @@ -273,7 +279,7 @@ func newClientRouter() *clientRouter { } } -func (r *clientRouter) addRoute(name string, routes []net.IPNet, conn io.ReadWriteCloser) error { +func (r *clientRouter) addRoute(name string, routes []net.IPNet, conn io.ReadWriteCloser) { r.mu.Lock() defer r.mu.Unlock() r.routes[name] = &routeElement{ @@ -281,7 +287,6 @@ func (r *clientRouter) addRoute(name string, routes []net.IPNet, conn io.ReadWri routes: routes, conn: conn, } - return nil } func (r *clientRouter) findConn(dst net.IP) (io.Writer, error) { @@ -303,32 +308,29 @@ func (r *clientRouter) delRoute(name string) { delete(r.routes, name) } -// Server router (based on source IP routing) +func (r *clientRouter) removeConnRoute(conn io.Writer) { + r.mu.Lock() + defer r.mu.Unlock() + for name, re := range r.routes { + if re.conn == conn { + delete(r.routes, name) + return + } + } +} + +// Server router (based solely on source IP routing) type serverRouter struct { - namedConns map[string]io.ReadWriteCloser // Name to connection mapping - srcIPConns map[string]io.Writer // Source IP string to connection mapping + srcIPConns map[string]io.Writer // Source IP string to connection mapping mu sync.RWMutex } func newServerRouter() *serverRouter { return &serverRouter{ - namedConns: make(map[string]io.ReadWriteCloser), srcIPConns: make(map[string]io.Writer), } } -func (r *serverRouter) addConn(name string, conn io.ReadWriteCloser) error { - r.mu.Lock() - original, ok := r.namedConns[name] - r.namedConns[name] = conn - r.mu.Unlock() - if ok { - // Close the original connection if it exists - _ = original.Close() - } - return nil -} - func (r *serverRouter) findConnBySrc(src net.IP) (io.Writer, error) { r.mu.RLock() defer r.mu.RUnlock() @@ -340,17 +342,41 @@ func (r *serverRouter) findConnBySrc(src net.IP) (io.Writer, error) { } func (r *serverRouter) registerSrcIP(src net.IP, conn io.Writer) { + key := src.String() + + r.mu.RLock() + existingConn, ok := r.srcIPConns[key] + r.mu.RUnlock() + + // If the entry exists and the connection is the same, no need to do anything. + if ok && existingConn == conn { + return + } + + // Acquire write lock to update the map. r.mu.Lock() defer r.mu.Unlock() - r.srcIPConns[src.String()] = conn + + // Double-check after acquiring the write lock to handle potential race conditions. + existingConn, ok = r.srcIPConns[key] + if ok && existingConn == conn { + return + } + + r.srcIPConns[key] = conn } -func (r *serverRouter) delConn(name string) { +// cleanupConnIPs removes all IP mappings associated with the specified connection +func (r *serverRouter) cleanupConnIPs(conn io.Writer) { r.mu.Lock() defer r.mu.Unlock() - delete(r.namedConns, name) - // Note: We don't delete mappings from srcIPConns because we don't know which source IPs are associated with this connection - // This might cause dangling references, but they will be overwritten on new connections or restart + + // Find and delete all IP mappings pointing to this connection + for ip, mappedConn := range r.srcIPConns { + if mappedConn == conn { + delete(r.srcIPConns, ip) + } + } } type routeElement struct { diff --git a/pkg/vnet/message.go b/pkg/vnet/message.go index 002b090ab4a..68ac7704c12 100644 --- a/pkg/vnet/message.go +++ b/pkg/vnet/message.go @@ -33,7 +33,7 @@ func ReadMessage(r io.Reader) ([]byte, error) { var length uint32 err := binary.Read(r, binary.LittleEndian, &length) if err != nil { - return nil, fmt.Errorf("read message length error: %v", err) + return nil, fmt.Errorf("read message length error: %w", err) } // Check length to prevent DoS @@ -48,7 +48,7 @@ func ReadMessage(r io.Reader) ([]byte, error) { data := make([]byte, length) _, err = io.ReadFull(r, data) if err != nil { - return nil, fmt.Errorf("read message data error: %v", err) + return nil, fmt.Errorf("read message data error: %w", err) } return data, nil @@ -68,13 +68,13 @@ func WriteMessage(w io.Writer, data []byte) error { // Write length err := binary.Write(w, binary.LittleEndian, length) if err != nil { - return fmt.Errorf("write message length error: %v", err) + return fmt.Errorf("write message length error: %w", err) } // Write message data _, err = w.Write(data) if err != nil { - return fmt.Errorf("write message data error: %v", err) + return fmt.Errorf("write message data error: %w", err) } return nil diff --git a/pkg/vnet/tun.go b/pkg/vnet/tun.go index bafc639271d..d26314d053e 100644 --- a/pkg/vnet/tun.go +++ b/pkg/vnet/tun.go @@ -23,7 +23,8 @@ import ( ) const ( - offset = 16 + offset = 16 + defaultPacketSize = 1420 ) type TunDevice interface { @@ -35,20 +36,45 @@ func OpenTun(ctx context.Context, addr string) (TunDevice, error) { if err != nil { return nil, err } - return &tunDeviceWrapper{dev: td}, nil + + mtu, err := td.MTU() + if err != nil { + mtu = defaultPacketSize + } + + bufferSize := max(mtu, defaultPacketSize) + batchSize := td.BatchSize() + + device := &tunDeviceWrapper{ + dev: td, + bufferSize: bufferSize, + readBuffers: make([][]byte, batchSize), + sizeBuffer: make([]int, batchSize), + } + + for i := range device.readBuffers { + device.readBuffers[i] = make([]byte, offset+bufferSize) + } + + return device, nil } type tunDeviceWrapper struct { - dev tun.Device + dev tun.Device + bufferSize int + readBuffers [][]byte + packetBuffers [][]byte + sizeBuffer []int } func (d *tunDeviceWrapper) Read(p []byte) (int, error) { - buf := pool.GetBuf(len(p) + offset) - defer pool.PutBuf(buf) - - sz := make([]int, 1) + if len(d.packetBuffers) > 0 { + n := copy(p, d.packetBuffers[0]) + d.packetBuffers = d.packetBuffers[1:] + return n, nil + } - n, err := d.dev.Read([][]byte{buf}, sz, offset) + n, err := d.dev.Read(d.readBuffers, d.sizeBuffer, offset) if err != nil { return 0, err } @@ -56,20 +82,26 @@ func (d *tunDeviceWrapper) Read(p []byte) (int, error) { return 0, io.EOF } - dataSize := sz[0] - if dataSize > len(p) { - dataSize = len(p) + for i := range n { + if d.sizeBuffer[i] <= 0 { + continue + } + d.packetBuffers = append(d.packetBuffers, d.readBuffers[i][offset:offset+d.sizeBuffer[i]]) } - copy(p, buf[offset:offset+dataSize]) + + dataSize := copy(p, d.packetBuffers[0]) + d.packetBuffers = d.packetBuffers[1:] + return dataSize, nil } func (d *tunDeviceWrapper) Write(p []byte) (int, error) { - buf := pool.GetBuf(len(p) + offset) + buf := pool.GetBuf(offset + d.bufferSize) defer pool.PutBuf(buf) - copy(buf[offset:], p) - return d.dev.Write([][]byte{buf}, offset) + n := copy(buf[offset:], p) + _, err := d.dev.Write([][]byte{buf[:offset+n]}, offset) + return n, err } func (d *tunDeviceWrapper) Close() error { diff --git a/pkg/vnet/tun_linux.go b/pkg/vnet/tun_linux.go index 7c9c684cc97..2e0cc56b234 100644 --- a/pkg/vnet/tun_linux.go +++ b/pkg/vnet/tun_linux.go @@ -16,35 +16,44 @@ package vnet import ( "context" + "crypto/sha256" + "encoding/hex" "fmt" "net" + "strconv" + "strings" "github.com/vishvananda/netlink" "golang.zx2c4.com/wireguard/tun" ) const ( - defaultTunName = "utun" - defaultMTU = 1420 + baseTunName = "utun" + defaultMTU = 1420 ) func openTun(_ context.Context, addr string) (tun.Device, error) { - dev, err := tun.CreateTUN(defaultTunName, defaultMTU) + name, err := findNextTunName(baseTunName) if err != nil { - return nil, err + name = getFallbackTunName(baseTunName, addr) + } + + tunDevice, err := tun.CreateTUN(name, defaultMTU) + if err != nil { + return nil, fmt.Errorf("failed to create TUN device '%s': %w", name, err) } - name, err := dev.Name() + actualName, err := tunDevice.Name() if err != nil { return nil, err } - ifn, err := net.InterfaceByName(name) + ifn, err := net.InterfaceByName(actualName) if err != nil { return nil, err } - link, err := netlink.LinkByName(name) + link, err := netlink.LinkByName(actualName) if err != nil { return nil, err } @@ -69,7 +78,34 @@ func openTun(_ context.Context, addr string) (tun.Device, error) { if err = addRoutes(ifn, cidr); err != nil { return nil, err } - return dev, nil + return tunDevice, nil +} + +func findNextTunName(basename string) (string, error) { + interfaces, err := net.Interfaces() + if err != nil { + return "", fmt.Errorf("failed to get network interfaces: %w", err) + } + maxSuffix := -1 + + for _, iface := range interfaces { + name := iface.Name + if strings.HasPrefix(name, basename) { + suffix := name[len(basename):] + if suffix == "" { + continue + } + + numSuffix, err := strconv.Atoi(suffix) + if err == nil && numSuffix > maxSuffix { + maxSuffix = numSuffix + } + } + } + + nextSuffix := maxSuffix + 1 + name := fmt.Sprintf("%s%d", basename, nextSuffix) + return name, nil } func addRoutes(ifn *net.Interface, cidr *net.IPNet) error { @@ -82,3 +118,14 @@ func addRoutes(ifn *net.Interface, cidr *net.IPNet) error { } return nil } + +// getFallbackTunName generates a deterministic fallback TUN device name +// based on the base name and the provided address string using a hash. +func getFallbackTunName(baseName, addr string) string { + hasher := sha256.New() + hasher.Write([]byte(addr)) + hashBytes := hasher.Sum(nil) + // Use first 4 bytes -> 8 hex chars for brevity, respecting IFNAMSIZ limit. + shortHash := hex.EncodeToString(hashBytes[:4]) + return fmt.Sprintf("%s%s", baseName, shortHash) +} diff --git a/server/control.go b/server/control.go index 0b6b31741b0..b70d8d1268a 100644 --- a/server/control.go +++ b/server/control.go @@ -224,7 +224,7 @@ func (ctl *Control) Close() error { func (ctl *Control) Replaced(newCtl *Control) { xl := ctl.xl - xl.Infof("Replaced by client [%s]", newCtl.runID) + xl.Infof("replaced by client [%s]", newCtl.runID) ctl.runID = "" ctl.conn.Close() } diff --git a/server/dashboard_api.go b/server/dashboard_api.go index a29433a6235..54e5d9e97a8 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -97,14 +97,14 @@ func (svr *Service) healthz(w http.ResponseWriter, _ *http.Request) { func (svr *Service) apiServerInfo(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} defer func() { - log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Infof("Http request: [%s]", r.URL.Path) + log.Infof("http request: [%s]", r.URL.Path) serverStats := mem.StatsCollector.GetServer() svrResp := serverInfoResp{ Version: version.Full(), @@ -218,13 +218,13 @@ func (svr *Service) apiProxyByType(w http.ResponseWriter, r *http.Request) { proxyType := params["type"] defer func() { - log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Infof("Http request: [%s]", r.URL.Path) + log.Infof("http request: [%s]", r.URL.Path) proxyInfoResp := GetProxyInfoResp{} proxyInfoResp.Proxies = svr.getProxyStatsByType(proxyType) @@ -290,13 +290,13 @@ func (svr *Service) apiProxyByTypeAndName(w http.ResponseWriter, r *http.Request name := params["name"] defer func() { - log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Infof("Http request: [%s]", r.URL.Path) + log.Infof("http request: [%s]", r.URL.Path) var proxyStatsResp GetProxyStatsResp proxyStatsResp, res.Code, res.Msg = svr.getProxyStatsByTypeAndName(proxyType, name) @@ -358,13 +358,13 @@ func (svr *Service) apiProxyTraffic(w http.ResponseWriter, r *http.Request) { name := params["name"] defer func() { - log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) } }() - log.Infof("Http request: [%s]", r.URL.Path) + log.Infof("http request: [%s]", r.URL.Path) trafficResp := GetProxyTrafficResp{} trafficResp.Name = name @@ -386,9 +386,9 @@ func (svr *Service) apiProxyTraffic(w http.ResponseWriter, r *http.Request) { func (svr *Service) deleteProxies(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} - log.Infof("Http request: [%s]", r.URL.Path) + log.Infof("http request: [%s]", r.URL.Path) defer func() { - log.Infof("Http response [%s]: code [%d]", r.URL.Path, res.Code) + log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) diff --git a/server/service.go b/server/service.go index d1dd68a1c90..b9abaa80099 100644 --- a/server/service.go +++ b/server/service.go @@ -427,7 +427,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn, interna _ = conn.SetReadDeadline(time.Now().Add(connReadTimeout)) if rawMsg, err = msg.ReadMsg(conn); err != nil { - log.Tracef("Failed to read message: %v", err) + log.Tracef("failed to read message: %v", err) conn.Close() return } @@ -475,7 +475,7 @@ func (svr *Service) handleConnection(ctx context.Context, conn net.Conn, interna }) } default: - log.Warnf("Error message type for the new connection [%s]", conn.RemoteAddr().String()) + log.Warnf("error message type for the new connection [%s]", conn.RemoteAddr().String()) conn.Close() } } @@ -488,7 +488,7 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { for { c, err := l.Accept() if err != nil { - log.Warnf("Listener for incoming connections from client closed") + log.Warnf("listener for incoming connections from client closed") return } // inject xlog object into net.Conn context @@ -504,7 +504,7 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { var isTLS, custom bool c, isTLS, custom, err = netpkg.CheckAndEnableTLSServerConnWithTimeout(c, svr.tlsConfig, forceTLS, connReadTimeout) if err != nil { - log.Warnf("CheckAndEnableTLSServerConnWithTimeout error: %v", err) + log.Warnf("checkAndEnableTLSServerConnWithTimeout error: %v", err) originConn.Close() continue } @@ -520,7 +520,7 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Server(frpConn, fmuxCfg) if err != nil { - log.Warnf("Failed to create mux connection: %v", err) + log.Warnf("failed to create mux connection: %v", err) frpConn.Close() return } @@ -528,7 +528,7 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { for { stream, err := session.AcceptStream() if err != nil { - log.Debugf("Accept new mux stream error: %v", err) + log.Debugf("accept new mux stream error: %v", err) session.Close() return } @@ -546,7 +546,7 @@ func (svr *Service) HandleQUICListener(l *quic.Listener) { for { c, err := l.Accept(context.Background()) if err != nil { - log.Warnf("QUICListener for incoming connections from client closed") + log.Warnf("quic listener for incoming connections from client closed") return } // Start a new goroutine to handle connection. @@ -554,7 +554,7 @@ func (svr *Service) HandleQUICListener(l *quic.Listener) { for { stream, err := frpConn.AcceptStream(context.Background()) if err != nil { - log.Debugf("Accept new quic mux stream error: %v", err) + log.Debugf("accept new quic mux stream error: %v", err) _ = frpConn.CloseWithError(0, "") return } @@ -620,7 +620,7 @@ func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) xl := netpkg.NewLogFromConn(workConn) ctl, exist := svr.ctlManager.GetByID(newMsg.RunID) if !exist { - xl.Warnf("No client control found for run id [%s]", newMsg.RunID) + xl.Warnf("no client control found for run id [%s]", newMsg.RunID) return fmt.Errorf("no client control found for run id [%s]", newMsg.RunID) } // server plugin hook diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 994ac59deef..ee00e1031e2 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -38,7 +38,7 @@ func RunE2ETests(t *testing.T) { // Randomize specs as well as suites suiteConfig.RandomizeAllSpecs = true - log.Infof("Starting e2e run %q on Ginkgo node %d of total %d", + log.Infof("starting e2e run %q on Ginkgo node %d of total %d", framework.RunID, suiteConfig.ParallelProcess, suiteConfig.ParallelTotal) ginkgo.RunSpecs(t, "frp e2e suite", suiteConfig, reporterConfig) } diff --git a/test/e2e/framework/request.go b/test/e2e/framework/request.go index f56fc973a9f..599ff11b26a 100644 --- a/test/e2e/framework/request.go +++ b/test/e2e/framework/request.go @@ -20,7 +20,7 @@ func ExpectResponseCode(code int) EnsureFunc { if resp.Code == code { return true } - flog.Warnf("Expect code %d, but got %d", code, resp.Code) + flog.Warnf("expect code %d, but got %d", code, resp.Code) return false } } @@ -111,14 +111,14 @@ func (e *RequestExpect) Ensure(fns ...EnsureFunc) { if len(fns) == 0 { if !bytes.Equal(e.expectResp, ret.Content) { - flog.Tracef("Response info: %+v", ret) + flog.Tracef("response info: %+v", ret) } ExpectEqualValuesWithOffset(1, string(ret.Content), string(e.expectResp), e.explain...) } else { for _, fn := range fns { ok := fn(ret) if !ok { - flog.Tracef("Response info: %+v", ret) + flog.Tracef("response info: %+v", ret) } ExpectTrueWithOffset(1, ok, e.explain...) } diff --git a/test/e2e/legacy/features/real_ip.go b/test/e2e/legacy/features/real_ip.go index f74c62d2d68..a79afb45b1d 100644 --- a/test/e2e/legacy/features/real_ip.go +++ b/test/e2e/legacy/features/real_ip.go @@ -93,7 +93,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { f.RunProcesses([]string{serverConf}, []string{clientConf}) framework.NewRequestExpect(f).Port(remotePort).Ensure(func(resp *request.Response) bool { - log.Tracef("ProxyProtocol get SourceAddr: %s", string(resp.Content)) + log.Tracef("proxy protocol get SourceAddr: %s", string(resp.Content)) addr, err := net.ResolveTCPAddr("tcp", string(resp.Content)) if err != nil { return false @@ -142,7 +142,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { r.HTTP().HTTPHost("normal.example.com") }).Ensure(framework.ExpectResponseCode(404)) - log.Tracef("ProxyProtocol get SourceAddr: %s", srcAddrRecord) + log.Tracef("proxy protocol get SourceAddr: %s", srcAddrRecord) addr, err := net.ResolveTCPAddr("tcp", srcAddrRecord) framework.ExpectNoError(err, srcAddrRecord) framework.ExpectEqualValues("127.0.0.1", addr.IP.String()) diff --git a/test/e2e/v1/features/real_ip.go b/test/e2e/v1/features/real_ip.go index 94508f7da9a..216f531de92 100644 --- a/test/e2e/v1/features/real_ip.go +++ b/test/e2e/v1/features/real_ip.go @@ -215,7 +215,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { f.RunProcesses([]string{serverConf}, []string{clientConf}) framework.NewRequestExpect(f).Port(remotePort).Ensure(func(resp *request.Response) bool { - log.Tracef("ProxyProtocol get SourceAddr: %s", string(resp.Content)) + log.Tracef("proxy protocol get SourceAddr: %s", string(resp.Content)) addr, err := net.ResolveTCPAddr("tcp", string(resp.Content)) if err != nil { return false @@ -265,7 +265,7 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { r.HTTP().HTTPHost("normal.example.com") }).Ensure(framework.ExpectResponseCode(404)) - log.Tracef("ProxyProtocol get SourceAddr: %s", srcAddrRecord) + log.Tracef("proxy protocol get SourceAddr: %s", srcAddrRecord) addr, err := net.ResolveTCPAddr("tcp", srcAddrRecord) framework.ExpectNoError(err, srcAddrRecord) framework.ExpectEqualValues("127.0.0.1", addr.IP.String()) From b41d8f8e4074c4f633fb67d7d31b97db59472674 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 27 Apr 2025 15:41:13 +0800 Subject: [PATCH 256/444] update release notes (#4772) --- Release.md | 9 ++------- pkg/util/version/version.go | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Release.md b/Release.md index b3edf41090c..94cba964084 100644 --- a/Release.md +++ b/Release.md @@ -1,8 +1,3 @@ -### Notes +### Bug Fixes -* **Feature Gates Introduced:** This version introduces a new experimental mechanism called Feature Gates. This allows users to enable or disable specific experimental features before they become generally available. Feature gates can be configured in the `featureGates` map within the configuration file. -* **VirtualNet Feature Gate:** The first available feature gate is `VirtualNet`, which enables the experimental Virtual Network functionality (currently in Alpha stage). - -### Features - -* **Virtual Network (VirtualNet):** Introduce experimental virtual network capabilities (Alpha). This allows creating a TUN device managed by frp, enabling Layer 3 connectivity between different clients within the frp network. Requires root/admin privileges and is currently supported on Linux and macOS. Configuration is done via the `virtualNet` section and the `virtual_net` plugin. Enable with feature gate `VirtualNet`. **Note: As an Alpha feature, configuration details may change in future releases.** \ No newline at end of file +* **VirtualNet:** Resolved various issues related to connection handling, TUN device management, and stability in the virtual network feature. \ No newline at end of file diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index e74233c7083..8fa6bc193ed 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.62.0" +var version = "0.62.1" func Full() string { return version From c99986fa28bf12b4e46e32d599ddac98b0f87eb0 Mon Sep 17 00:00:00 2001 From: CrynTox <88785107+CrynTox@users.noreply.github.com> Date: Tue, 6 May 2025 07:11:20 +0300 Subject: [PATCH 257/444] build: add x64 openbsd (#4780) Co-authored-by: CrynTox <> --- Makefile.cross-compiles | 2 +- package.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.cross-compiles b/Makefile.cross-compiles index b75792a798c..d084bbef44a 100644 --- a/Makefile.cross-compiles +++ b/Makefile.cross-compiles @@ -2,7 +2,7 @@ export PATH := $(PATH):`go env GOPATH`/bin export GO111MODULE=on LDFLAGS := -s -w -os-archs=darwin:amd64 darwin:arm64 freebsd:amd64 linux:amd64 linux:arm:7 linux:arm:5 linux:arm64 windows:amd64 windows:arm64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 linux:loong64 android:arm64 +os-archs=darwin:amd64 darwin:arm64 freebsd:amd64 openbsd:amd64 linux:amd64 linux:arm:7 linux:arm:5 linux:arm64 windows:amd64 windows:arm64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat linux:riscv64 linux:loong64 android:arm64 all: build diff --git a/package.sh b/package.sh index 4699f59977d..16dfcee03ea 100755 --- a/package.sh +++ b/package.sh @@ -17,7 +17,7 @@ make -f ./Makefile.cross-compiles rm -rf ./release/packages mkdir -p ./release/packages -os_all='linux windows darwin freebsd android' +os_all='linux windows darwin freebsd openbsd android' arch_all='386 amd64 arm arm64 mips64 mips64le mips mipsle riscv64 loong64' extra_all='_ hf' From 077ba80ba35d8ad257f99bbb819fb4cbeaa9e1ba Mon Sep 17 00:00:00 2001 From: scientificworld <30764166+scientificworld@users.noreply.github.com> Date: Mon, 19 May 2025 11:39:35 +0800 Subject: [PATCH 258/444] fix: type error in server_plugin doc (#4799) --- doc/server_plugin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/server_plugin.md b/doc/server_plugin.md index b8fa161907e..6ddef827470 100644 --- a/doc/server_plugin.md +++ b/doc/server_plugin.md @@ -121,7 +121,7 @@ Create new proxy // http and https only "custom_domains": [], "subdomain": , - "locations": , + "locations": [], "http_user": , "http_pwd": , "host_header_rewrite": , From 8eb525a64853aa15fb2bd21865ccaad3092baf29 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 23 May 2025 19:25:34 +0800 Subject: [PATCH 259/444] feat: support YAML merge in strict configuration mode (#4809) --- Release.md | 4 +- pkg/config/load.go | 34 ++++++++++- pkg/config/load_test.go | 119 ++++++++++++++++++++++++++++++++++++ pkg/util/version/version.go | 2 +- 4 files changed, 154 insertions(+), 5 deletions(-) diff --git a/Release.md b/Release.md index 94cba964084..07c58d4a736 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,3 @@ -### Bug Fixes +## Features -* **VirtualNet:** Resolved various issues related to connection handling, TUN device management, and stability in the virtual network feature. \ No newline at end of file +* Support for YAML merge functionality (anchors and references with dot-prefixed fields) in strict configuration mode without requiring `--strict-config=false` parameter. \ No newline at end of file diff --git a/pkg/config/load.go b/pkg/config/load.go index fa394dda115..bb050b406b5 100644 --- a/pkg/config/load.go +++ b/pkg/config/load.go @@ -111,6 +111,33 @@ func LoadConfigureFromFile(path string, c any, strict bool) error { return LoadConfigure(content, c, strict) } +// parseYAMLWithDotFieldsHandling parses YAML with dot-prefixed fields handling +// This function handles both cases efficiently: with or without dot fields +func parseYAMLWithDotFieldsHandling(content []byte, target any) error { + var temp any + if err := yaml.Unmarshal(content, &temp); err != nil { + return err + } + + // Remove dot fields if it's a map + if tempMap, ok := temp.(map[string]any); ok { + for key := range tempMap { + if strings.HasPrefix(key, ".") { + delete(tempMap, key) + } + } + } + + // Convert to JSON and decode with strict validation + jsonBytes, err := json.Marshal(temp) + if err != nil { + return err + } + decoder := json.NewDecoder(bytes.NewReader(jsonBytes)) + decoder.DisallowUnknownFields() + return decoder.Decode(target) +} + // LoadConfigure loads configuration from bytes and unmarshal into c. // Now it supports json, yaml and toml format. func LoadConfigure(b []byte, c any, strict bool) error { @@ -134,10 +161,13 @@ func LoadConfigure(b []byte, c any, strict bool) error { } return decoder.Decode(c) } - // It wasn't JSON. Unmarshal as YAML. + + // Handle YAML content if strict { - return yaml.UnmarshalStrict(b, c) + // In strict mode, always use our custom handler to support YAML merge + return parseYAMLWithDotFieldsHandling(b, c) } + // Non-strict mode, parse normally return yaml.Unmarshal(b, c) } diff --git a/pkg/config/load_test.go b/pkg/config/load_test.go index 980a332ad1b..95d6101e0ba 100644 --- a/pkg/config/load_test.go +++ b/pkg/config/load_test.go @@ -187,3 +187,122 @@ unixPath = "/tmp/uds.sock" err = LoadConfigure([]byte(pluginStr), &clientCfg, true) require.Error(err) } + +// TestYAMLMergeInStrictMode tests that YAML merge functionality works +// even in strict mode by properly handling dot-prefixed fields +func TestYAMLMergeInStrictMode(t *testing.T) { + require := require.New(t) + + yamlContent := ` +serverAddr: "127.0.0.1" +serverPort: 7000 + +.common: &common + type: stcp + secretKey: "test-secret" + localIP: 127.0.0.1 + transport: + useEncryption: true + useCompression: true + +proxies: +- name: ssh + localPort: 22 + <<: *common +- name: web + localPort: 80 + <<: *common +` + + clientCfg := v1.ClientConfig{} + // This should work in strict mode + err := LoadConfigure([]byte(yamlContent), &clientCfg, true) + require.NoError(err) + + // Verify the merge worked correctly + require.Equal("127.0.0.1", clientCfg.ServerAddr) + require.Equal(7000, clientCfg.ServerPort) + require.Len(clientCfg.Proxies, 2) + + // Check first proxy + sshProxy := clientCfg.Proxies[0].ProxyConfigurer + require.Equal("ssh", sshProxy.GetBaseConfig().Name) + require.Equal("stcp", sshProxy.GetBaseConfig().Type) + + // Check second proxy + webProxy := clientCfg.Proxies[1].ProxyConfigurer + require.Equal("web", webProxy.GetBaseConfig().Name) + require.Equal("stcp", webProxy.GetBaseConfig().Type) +} + +// TestOptimizedYAMLProcessing tests the optimization logic for YAML processing +func TestOptimizedYAMLProcessing(t *testing.T) { + require := require.New(t) + + yamlWithDotFields := []byte(` +serverAddr: "127.0.0.1" +.common: &common + type: stcp +proxies: +- name: test + <<: *common +`) + + yamlWithoutDotFields := []byte(` +serverAddr: "127.0.0.1" +proxies: +- name: test + type: tcp + localPort: 22 +`) + + // Test that YAML without dot fields works in strict mode + clientCfg := v1.ClientConfig{} + err := LoadConfigure(yamlWithoutDotFields, &clientCfg, true) + require.NoError(err) + require.Equal("127.0.0.1", clientCfg.ServerAddr) + require.Len(clientCfg.Proxies, 1) + require.Equal("test", clientCfg.Proxies[0].ProxyConfigurer.GetBaseConfig().Name) + + // Test that YAML with dot fields still works in strict mode + err = LoadConfigure(yamlWithDotFields, &clientCfg, true) + require.NoError(err) + require.Equal("127.0.0.1", clientCfg.ServerAddr) + require.Len(clientCfg.Proxies, 1) + require.Equal("test", clientCfg.Proxies[0].ProxyConfigurer.GetBaseConfig().Name) + require.Equal("stcp", clientCfg.Proxies[0].ProxyConfigurer.GetBaseConfig().Type) +} + +// TestYAMLEdgeCases tests edge cases for YAML parsing, including non-map types +func TestYAMLEdgeCases(t *testing.T) { + require := require.New(t) + + // Test array at root (should fail for frp config) + arrayYAML := []byte(` +- item1 +- item2 +`) + clientCfg := v1.ClientConfig{} + err := LoadConfigure(arrayYAML, &clientCfg, true) + require.Error(err) // Should fail because ClientConfig expects an object + + // Test scalar at root (should fail for frp config) + scalarYAML := []byte(`"just a string"`) + err = LoadConfigure(scalarYAML, &clientCfg, true) + require.Error(err) // Should fail because ClientConfig expects an object + + // Test empty object (should work) + emptyYAML := []byte(`{}`) + err = LoadConfigure(emptyYAML, &clientCfg, true) + require.NoError(err) + + // Test nested structure without dots (should work) + nestedYAML := []byte(` +serverAddr: "127.0.0.1" +serverPort: 7000 +`) + err = LoadConfigure(nestedYAML, &clientCfg, true) + require.NoError(err) + require.Equal("127.0.0.1", clientCfg.ServerAddr) + require.Equal(7000, clientCfg.ServerPort) +} diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 8fa6bc193ed..966a942fe62 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.62.1" +var version = "0.63.0" func Full() string { return version From 3fa76b72f3e6b2b9d8b0093ea755d5d1eb0d6b92 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 23 May 2025 21:39:47 +0800 Subject: [PATCH 260/444] add proxy protocol support for UDP proxies (#4810) --- README.md | 2 +- Release.md | 3 +- client/proxy/proxy.go | 24 +--- client/proxy/sudp.go | 2 +- client/proxy/udp.go | 4 +- pkg/proto/udp/udp.go | 16 ++- pkg/util/net/proxyprotocol.go | 45 ++++++++ pkg/util/net/proxyprotocol_test.go | 178 +++++++++++++++++++++++++++++ test/e2e/v1/features/real_ip.go | 50 ++++++++ 9 files changed, 299 insertions(+), 25 deletions(-) create mode 100644 pkg/util/net/proxyprotocol.go create mode 100644 pkg/util/net/proxyprotocol_test.go diff --git a/README.md b/README.md index 25537220e94..f0ab4273096 100644 --- a/README.md +++ b/README.md @@ -1025,7 +1025,7 @@ You can get user's real IP from HTTP request headers `X-Forwarded-For`. #### Proxy Protocol -frp supports Proxy Protocol to send user's real IP to local services. It support all types except UDP. +frp supports Proxy Protocol to send user's real IP to local services. Here is an example for https service: diff --git a/Release.md b/Release.md index 07c58d4a736..19b79d6478b 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,4 @@ ## Features -* Support for YAML merge functionality (anchors and references with dot-prefixed fields) in strict configuration mode without requiring `--strict-config=false` parameter. \ No newline at end of file +* Support for YAML merge functionality (anchors and references with dot-prefixed fields) in strict configuration mode without requiring `--strict-config=false` parameter. +* Support for proxy protocol in UDP proxies to preserve real client IP addresses. \ No newline at end of file diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index debda9fa2ff..876ca579d38 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -20,13 +20,11 @@ import ( "net" "reflect" "strconv" - "strings" "sync" "time" libio "github.com/fatedier/golib/io" libnet "github.com/fatedier/golib/net" - pp "github.com/pires/go-proxyproto" "golang.org/x/time/rate" "github.com/fatedier/frp/pkg/config/types" @@ -35,6 +33,7 @@ import ( plugin "github.com/fatedier/frp/pkg/plugin/client" "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/pkg/util/limit" + netpkg "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/frp/pkg/vnet" ) @@ -176,24 +175,9 @@ func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWor } if baseCfg.Transport.ProxyProtocolVersion != "" && m.SrcAddr != "" && m.SrcPort != 0 { - h := &pp.Header{ - Command: pp.PROXY, - SourceAddr: connInfo.SrcAddr, - DestinationAddr: connInfo.DstAddr, - } - - if strings.Contains(m.SrcAddr, ".") { - h.TransportProtocol = pp.TCPv4 - } else { - h.TransportProtocol = pp.TCPv6 - } - - if baseCfg.Transport.ProxyProtocolVersion == "v1" { - h.Version = 1 - } else if baseCfg.Transport.ProxyProtocolVersion == "v2" { - h.Version = 2 - } - connInfo.ProxyProtocolHeader = h + // Use the common proxy protocol builder function + header := netpkg.BuildProxyProtocolHeaderStruct(connInfo.SrcAddr, connInfo.DstAddr, baseCfg.Transport.ProxyProtocolVersion) + connInfo.ProxyProtocolHeader = header } connInfo.Conn = remote connInfo.UnderlyingConn = workConn diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index ad9db89a940..13741d0ddc7 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -205,5 +205,5 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { go workConnReaderFn(workConn, readCh) go heartbeatFn(sendCh) - udp.Forwarder(pxy.localAddr, readCh, sendCh, int(pxy.clientCfg.UDPPacketSize)) + udp.Forwarder(pxy.localAddr, readCh, sendCh, int(pxy.clientCfg.UDPPacketSize), pxy.cfg.Transport.ProxyProtocolVersion) } diff --git a/client/proxy/udp.go b/client/proxy/udp.go index b08fe1608ad..b70ffe4a0c8 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -171,5 +171,7 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { go workConnSenderFn(pxy.workConn, pxy.sendCh) go workConnReaderFn(pxy.workConn, pxy.readCh) go heartbeatFn(pxy.sendCh) - udp.Forwarder(pxy.localAddr, pxy.readCh, pxy.sendCh, int(pxy.clientCfg.UDPPacketSize)) + + // Call Forwarder with proxy protocol version (empty string means no proxy protocol) + udp.Forwarder(pxy.localAddr, pxy.readCh, pxy.sendCh, int(pxy.clientCfg.UDPPacketSize), pxy.cfg.Transport.ProxyProtocolVersion) } diff --git a/pkg/proto/udp/udp.go b/pkg/proto/udp/udp.go index 7a11984b2e4..f97b3b439cd 100644 --- a/pkg/proto/udp/udp.go +++ b/pkg/proto/udp/udp.go @@ -24,6 +24,7 @@ import ( "github.com/fatedier/golib/pool" "github.com/fatedier/frp/pkg/msg" + netpkg "github.com/fatedier/frp/pkg/util/net" ) func NewUDPPacket(buf []byte, laddr, raddr *net.UDPAddr) *msg.UDPPacket { @@ -69,7 +70,7 @@ func ForwardUserConn(udpConn *net.UDPConn, readCh <-chan *msg.UDPPacket, sendCh } } -func Forwarder(dstAddr *net.UDPAddr, readCh <-chan *msg.UDPPacket, sendCh chan<- msg.Message, bufSize int) { +func Forwarder(dstAddr *net.UDPAddr, readCh <-chan *msg.UDPPacket, sendCh chan<- msg.Message, bufSize int, proxyProtocolVersion string) { var mu sync.RWMutex udpConnMap := make(map[string]*net.UDPConn) @@ -110,6 +111,7 @@ func Forwarder(dstAddr *net.UDPAddr, readCh <-chan *msg.UDPPacket, sendCh chan<- if err != nil { continue } + mu.Lock() udpConn, ok := udpConnMap[udpMsg.RemoteAddr.String()] if !ok { @@ -122,6 +124,18 @@ func Forwarder(dstAddr *net.UDPAddr, readCh <-chan *msg.UDPPacket, sendCh chan<- } mu.Unlock() + // Add proxy protocol header if configured + if proxyProtocolVersion != "" && udpMsg.RemoteAddr != nil { + ppBuf, err := netpkg.BuildProxyProtocolHeader(udpMsg.RemoteAddr, dstAddr, proxyProtocolVersion) + if err == nil { + // Prepend proxy protocol header to the UDP payload + finalBuf := make([]byte, len(ppBuf)+len(buf)) + copy(finalBuf, ppBuf) + copy(finalBuf[len(ppBuf):], buf) + buf = finalBuf + } + } + _, err = udpConn.Write(buf) if err != nil { udpConn.Close() diff --git a/pkg/util/net/proxyprotocol.go b/pkg/util/net/proxyprotocol.go new file mode 100644 index 00000000000..5f0cd51fab8 --- /dev/null +++ b/pkg/util/net/proxyprotocol.go @@ -0,0 +1,45 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package net + +import ( + "bytes" + "fmt" + "net" + + pp "github.com/pires/go-proxyproto" +) + +func BuildProxyProtocolHeaderStruct(srcAddr, dstAddr net.Addr, version string) *pp.Header { + var versionByte byte + if version == "v1" { + versionByte = 1 + } else { + versionByte = 2 // default to v2 + } + return pp.HeaderProxyFromAddrs(versionByte, srcAddr, dstAddr) +} + +func BuildProxyProtocolHeader(srcAddr, dstAddr net.Addr, version string) ([]byte, error) { + h := BuildProxyProtocolHeaderStruct(srcAddr, dstAddr, version) + + // Convert header to bytes using a buffer + var buf bytes.Buffer + _, err := h.WriteTo(&buf) + if err != nil { + return nil, fmt.Errorf("failed to write proxy protocol header: %v", err) + } + return buf.Bytes(), nil +} diff --git a/pkg/util/net/proxyprotocol_test.go b/pkg/util/net/proxyprotocol_test.go new file mode 100644 index 00000000000..187801f67aa --- /dev/null +++ b/pkg/util/net/proxyprotocol_test.go @@ -0,0 +1,178 @@ +package net + +import ( + "net" + "testing" + + pp "github.com/pires/go-proxyproto" + "github.com/stretchr/testify/require" +) + +func TestBuildProxyProtocolHeader(t *testing.T) { + require := require.New(t) + + tests := []struct { + name string + srcAddr net.Addr + dstAddr net.Addr + version string + expectError bool + }{ + { + name: "UDP IPv4 v2", + srcAddr: &net.UDPAddr{IP: net.ParseIP("192.168.1.100"), Port: 12345}, + dstAddr: &net.UDPAddr{IP: net.ParseIP("10.0.0.1"), Port: 3306}, + version: "v2", + expectError: false, + }, + { + name: "TCP IPv4 v1", + srcAddr: &net.TCPAddr{IP: net.ParseIP("192.168.1.100"), Port: 12345}, + dstAddr: &net.TCPAddr{IP: net.ParseIP("10.0.0.1"), Port: 80}, + version: "v1", + expectError: false, + }, + { + name: "UDP IPv6 v2", + srcAddr: &net.UDPAddr{IP: net.ParseIP("2001:db8::1"), Port: 12345}, + dstAddr: &net.UDPAddr{IP: net.ParseIP("::1"), Port: 3306}, + version: "v2", + expectError: false, + }, + { + name: "TCP IPv6 v1", + srcAddr: &net.TCPAddr{IP: net.ParseIP("::1"), Port: 12345}, + dstAddr: &net.TCPAddr{IP: net.ParseIP("2001:db8::1"), Port: 80}, + version: "v1", + expectError: false, + }, + { + name: "nil source address", + srcAddr: nil, + dstAddr: &net.UDPAddr{IP: net.ParseIP("10.0.0.1"), Port: 3306}, + version: "v2", + expectError: false, + }, + { + name: "nil destination address", + srcAddr: &net.TCPAddr{IP: net.ParseIP("192.168.1.100"), Port: 12345}, + dstAddr: nil, + version: "v2", + expectError: false, + }, + { + name: "unsupported address type", + srcAddr: &net.UnixAddr{Name: "/tmp/test.sock", Net: "unix"}, + dstAddr: &net.UDPAddr{IP: net.ParseIP("10.0.0.1"), Port: 3306}, + version: "v2", + expectError: false, + }, + } + + for _, tt := range tests { + header, err := BuildProxyProtocolHeader(tt.srcAddr, tt.dstAddr, tt.version) + + if tt.expectError { + require.Error(err, "test case: %s", tt.name) + continue + } + + require.NoError(err, "test case: %s", tt.name) + require.NotEmpty(header, "test case: %s", tt.name) + } +} + +func TestBuildProxyProtocolHeaderStruct(t *testing.T) { + require := require.New(t) + + tests := []struct { + name string + srcAddr net.Addr + dstAddr net.Addr + version string + expectedProtocol pp.AddressFamilyAndProtocol + expectedVersion byte + expectedCommand pp.ProtocolVersionAndCommand + expectedSourceAddr net.Addr + expectedDestAddr net.Addr + }{ + { + name: "TCP IPv4 v2", + srcAddr: &net.TCPAddr{IP: net.ParseIP("192.168.1.100"), Port: 12345}, + dstAddr: &net.TCPAddr{IP: net.ParseIP("10.0.0.1"), Port: 80}, + version: "v2", + expectedProtocol: pp.TCPv4, + expectedVersion: 2, + expectedCommand: pp.PROXY, + expectedSourceAddr: &net.TCPAddr{IP: net.ParseIP("192.168.1.100"), Port: 12345}, + expectedDestAddr: &net.TCPAddr{IP: net.ParseIP("10.0.0.1"), Port: 80}, + }, + { + name: "UDP IPv6 v1", + srcAddr: &net.UDPAddr{IP: net.ParseIP("2001:db8::1"), Port: 12345}, + dstAddr: &net.UDPAddr{IP: net.ParseIP("::1"), Port: 3306}, + version: "v1", + expectedProtocol: pp.UDPv6, + expectedVersion: 1, + expectedCommand: pp.PROXY, + expectedSourceAddr: &net.UDPAddr{IP: net.ParseIP("2001:db8::1"), Port: 12345}, + expectedDestAddr: &net.UDPAddr{IP: net.ParseIP("::1"), Port: 3306}, + }, + { + name: "TCP IPv6 default version", + srcAddr: &net.TCPAddr{IP: net.ParseIP("::1"), Port: 12345}, + dstAddr: &net.TCPAddr{IP: net.ParseIP("2001:db8::1"), Port: 80}, + version: "", + expectedProtocol: pp.TCPv6, + expectedVersion: 2, // default to v2 + expectedCommand: pp.PROXY, + expectedSourceAddr: &net.TCPAddr{IP: net.ParseIP("::1"), Port: 12345}, + expectedDestAddr: &net.TCPAddr{IP: net.ParseIP("2001:db8::1"), Port: 80}, + }, + { + name: "nil source address", + srcAddr: nil, + dstAddr: &net.UDPAddr{IP: net.ParseIP("10.0.0.1"), Port: 3306}, + version: "v2", + expectedProtocol: pp.UNSPEC, + expectedVersion: 2, + expectedCommand: pp.LOCAL, + expectedSourceAddr: nil, // go-proxyproto sets both to nil when srcAddr is nil + expectedDestAddr: nil, + }, + { + name: "nil destination address", + srcAddr: &net.TCPAddr{IP: net.ParseIP("192.168.1.100"), Port: 12345}, + dstAddr: nil, + version: "v2", + expectedProtocol: pp.UNSPEC, + expectedVersion: 2, + expectedCommand: pp.LOCAL, + expectedSourceAddr: nil, // go-proxyproto sets both to nil when dstAddr is nil + expectedDestAddr: nil, + }, + { + name: "unsupported address type", + srcAddr: &net.UnixAddr{Name: "/tmp/test.sock", Net: "unix"}, + dstAddr: &net.UDPAddr{IP: net.ParseIP("10.0.0.1"), Port: 3306}, + version: "v2", + expectedProtocol: pp.UNSPEC, + expectedVersion: 2, + expectedCommand: pp.LOCAL, + expectedSourceAddr: nil, // go-proxyproto sets both to nil for unsupported types + expectedDestAddr: nil, + }, + } + + for _, tt := range tests { + header := BuildProxyProtocolHeaderStruct(tt.srcAddr, tt.dstAddr, tt.version) + + require.NotNil(header, "test case: %s", tt.name) + + require.Equal(tt.expectedCommand, header.Command, "test case: %s", tt.name) + require.Equal(tt.expectedSourceAddr, header.SourceAddr, "test case: %s", tt.name) + require.Equal(tt.expectedDestAddr, header.DestinationAddr, "test case: %s", tt.name) + require.Equal(tt.expectedProtocol, header.TransportProtocol, "test case: %s", tt.name) + require.Equal(tt.expectedVersion, header.Version, "test case: %s", tt.name) + } +} diff --git a/test/e2e/v1/features/real_ip.go b/test/e2e/v1/features/real_ip.go index 216f531de92..a52cf0a2fbe 100644 --- a/test/e2e/v1/features/real_ip.go +++ b/test/e2e/v1/features/real_ip.go @@ -227,6 +227,56 @@ var _ = ginkgo.Describe("[Feature: Real IP]", func() { }) }) + ginkgo.It("UDP", func() { + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + localPort := f.AllocPort() + localServer := streamserver.New(streamserver.UDP, streamserver.WithBindPort(localPort), + streamserver.WithCustomHandler(func(c net.Conn) { + defer c.Close() + rd := bufio.NewReader(c) + ppHeader, err := pp.Read(rd) + if err != nil { + log.Errorf("read proxy protocol error: %v", err) + return + } + + // Read the actual UDP content after proxy protocol header + if _, err := rpc.ReadBytes(rd); err != nil { + return + } + + buf := []byte(ppHeader.SourceAddr.String()) + _, _ = rpc.WriteBytes(c, buf) + })) + f.RunServer("", localServer) + + remotePort := f.AllocPort() + clientConf += fmt.Sprintf(` + [[proxies]] + name = "udp" + type = "udp" + localPort = %d + remotePort = %d + transport.proxyProtocolVersion = "v2" + `, localPort, remotePort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).Protocol("udp").Port(remotePort).Ensure(func(resp *request.Response) bool { + log.Tracef("udp proxy protocol get SourceAddr: %s", string(resp.Content)) + addr, err := net.ResolveUDPAddr("udp", string(resp.Content)) + if err != nil { + return false + } + if addr.IP.String() != "127.0.0.1" { + return false + } + return true + }) + }) + ginkgo.It("HTTP", func() { vhostHTTPPort := f.AllocPort() serverConf := consts.DefaultServerConfig + fmt.Sprintf(` From 720c09c06b31b44295a90dab9428a910e3c1b222 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 26 May 2025 14:54:03 +0800 Subject: [PATCH 261/444] update test package (#4814) --- .github/workflows/stale.yml | 2 +- pkg/proto/udp/udp_test.go | 8 +++---- pkg/util/metric/counter_test.go | 12 +++++----- pkg/util/metric/date_counter_test.go | 18 +++++++------- pkg/util/util/util_test.go | 36 +++++++++++++--------------- 5 files changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 784053e8f96..8f10d6415d8 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,4 +1,4 @@ -name: "Close stale issues" +name: "Close stale issues and PRs" on: schedule: - cron: "20 0 * * *" diff --git a/pkg/proto/udp/udp_test.go b/pkg/proto/udp/udp_test.go index 0e61d9e65a5..1a7f009117c 100644 --- a/pkg/proto/udp/udp_test.go +++ b/pkg/proto/udp/udp_test.go @@ -3,16 +3,16 @@ package udp import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestUdpPacket(t *testing.T) { - assert := assert.New(t) + require := require.New(t) buf := []byte("hello world") udpMsg := NewUDPPacket(buf, nil, nil) newBuf, err := GetContent(udpMsg) - assert.NoError(err) - assert.EqualValues(buf, newBuf) + require.NoError(err) + require.EqualValues(buf, newBuf) } diff --git a/pkg/util/metric/counter_test.go b/pkg/util/metric/counter_test.go index 4925c25b523..dca72052ed3 100644 --- a/pkg/util/metric/counter_test.go +++ b/pkg/util/metric/counter_test.go @@ -3,21 +3,21 @@ package metric import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestCounter(t *testing.T) { - assert := assert.New(t) + require := require.New(t) c := NewCounter() c.Inc(10) - assert.EqualValues(10, c.Count()) + require.EqualValues(10, c.Count()) c.Dec(5) - assert.EqualValues(5, c.Count()) + require.EqualValues(5, c.Count()) cTmp := c.Snapshot() - assert.EqualValues(5, cTmp.Count()) + require.EqualValues(5, cTmp.Count()) c.Clear() - assert.EqualValues(0, c.Count()) + require.EqualValues(0, c.Count()) } diff --git a/pkg/util/metric/date_counter_test.go b/pkg/util/metric/date_counter_test.go index c9997c70fe7..8752f1985a8 100644 --- a/pkg/util/metric/date_counter_test.go +++ b/pkg/util/metric/date_counter_test.go @@ -3,25 +3,25 @@ package metric import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestDateCounter(t *testing.T) { - assert := assert.New(t) + require := require.New(t) dc := NewDateCounter(3) dc.Inc(10) - assert.EqualValues(10, dc.TodayCount()) + require.EqualValues(10, dc.TodayCount()) dc.Dec(5) - assert.EqualValues(5, dc.TodayCount()) + require.EqualValues(5, dc.TodayCount()) counts := dc.GetLastDaysCount(3) - assert.EqualValues(3, len(counts)) - assert.EqualValues(5, counts[0]) - assert.EqualValues(0, counts[1]) - assert.EqualValues(0, counts[2]) + require.EqualValues(3, len(counts)) + require.EqualValues(5, counts[0]) + require.EqualValues(0, counts[1]) + require.EqualValues(0, counts[2]) dcTmp := dc.Snapshot() - assert.EqualValues(5, dcTmp.TodayCount()) + require.EqualValues(5, dcTmp.TodayCount()) } diff --git a/pkg/util/util/util_test.go b/pkg/util/util/util_test.go index 0061861119e..0a63ba6d086 100644 --- a/pkg/util/util/util_test.go +++ b/pkg/util/util/util_test.go @@ -3,45 +3,41 @@ package util import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestRandId(t *testing.T) { - assert := assert.New(t) + require := require.New(t) id, err := RandID() - assert.NoError(err) + require.NoError(err) t.Log(id) - assert.Equal(16, len(id)) + require.Equal(16, len(id)) } func TestGetAuthKey(t *testing.T) { - assert := assert.New(t) + require := require.New(t) key := GetAuthKey("1234", 1488720000) - assert.Equal("6df41a43725f0c770fd56379e12acf8c", key) + require.Equal("6df41a43725f0c770fd56379e12acf8c", key) } func TestParseRangeNumbers(t *testing.T) { - assert := assert.New(t) + require := require.New(t) numbers, err := ParseRangeNumbers("2-5") - if assert.NoError(err) { - assert.Equal([]int64{2, 3, 4, 5}, numbers) - } + require.NoError(err) + require.Equal([]int64{2, 3, 4, 5}, numbers) numbers, err = ParseRangeNumbers("1") - if assert.NoError(err) { - assert.Equal([]int64{1}, numbers) - } + require.NoError(err) + require.Equal([]int64{1}, numbers) numbers, err = ParseRangeNumbers("3-5,8") - if assert.NoError(err) { - assert.Equal([]int64{3, 4, 5, 8}, numbers) - } + require.NoError(err) + require.Equal([]int64{3, 4, 5, 8}, numbers) numbers, err = ParseRangeNumbers(" 3-5,8, 10-12 ") - if assert.NoError(err) { - assert.Equal([]int64{3, 4, 5, 8, 10, 11, 12}, numbers) - } + require.NoError(err) + require.Equal([]int64{3, 4, 5, 8, 10, 11, 12}, numbers) _, err = ParseRangeNumbers("3-a") - assert.Error(err) + require.Error(err) } From 43cf1688e483bc210f334b6e4c664fea0e3324d8 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 27 May 2025 16:46:15 +0800 Subject: [PATCH 262/444] update golangci-lint version (#4817) --- .github/workflows/golangci-lint.yml | 10 +- .golangci.yml | 212 +++++++++++-------------- client/service.go | 7 +- go.mod | 16 +- go.sum | 32 ++-- hack/run-e2e.sh | 6 +- pkg/config/legacy/client.go | 7 +- pkg/config/legacy/conversion.go | 44 ++--- pkg/config/legacy/proxy.go | 2 +- pkg/config/v1/proxy.go | 2 +- pkg/metrics/mem/server.go | 2 +- pkg/util/net/conn.go | 2 +- pkg/util/vhost/http.go | 6 +- pkg/util/vhost/vhost.go | 6 +- test/e2e/legacy/basic/client_server.go | 8 +- test/e2e/legacy/plugin/server.go | 4 +- test/e2e/v1/basic/client_server.go | 8 +- test/e2e/v1/plugin/server.go | 4 +- 18 files changed, 170 insertions(+), 208 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 8058592853a..40aba1ce409 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -20,10 +20,10 @@ jobs: go-version: '1.23' cache: false - name: golangci-lint - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v8 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v1.61 + version: v2.1 # Optional: golangci-lint command line arguments. # args: --issues-exit-code=0 @@ -34,9 +34,3 @@ jobs: # Optional: if set to true then the all caching functionality will be complete disabled, # takes precedence over all other caching options. # skip-cache: true - - # Optional: if set to true then the action don't cache or restore ~/go/pkg. - # skip-pkg-cache: true - - # Optional: if set to true then the action don't cache or restore ~/.cache/go-build. - # skip-build-cache: true diff --git a/.golangci.yml b/.golangci.yml index a45e4ba3a2d..be0a717e74c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,139 +1,111 @@ -service: - golangci-lint-version: 1.61.x # use the fixed version to not introduce new linters unexpectedly - +version: "2" run: concurrency: 4 - # timeout for analysis, e.g. 30s, 5m, default is 1m - timeout: 20m build-tags: - integ - integfuzz - linters: - disable-all: true + default: none enable: - - unused - - errcheck + - asciicheck - copyloopvar + - errcheck - gocritic - - gofumpt - - goimports - - revive - - gosimple + - gosec - govet - ineffassign - lll + - makezero - misspell + - prealloc + - predeclared + - revive - staticcheck - - stylecheck - - typecheck - unconvert - unparam + - unused + settings: + errcheck: + check-type-assertions: false + check-blank: false + gocritic: + disabled-checks: + - exitAfterDefer + gosec: + excludes: + - G401 + - G402 + - G404 + - G501 + - G115 + severity: low + confidence: low + govet: + disable: + - shadow + lll: + line-length: 160 + tab-width: 1 + misspell: + locale: US + ignore-rules: + - cancelled + - marshalled + unparam: + check-exported: false + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + rules: + - linters: + - errcheck + - maligned + path: _test\.go$|^tests/|^samples/ + - linters: + - revive + - staticcheck + text: use underscores in Go names + - linters: + - revive + text: unused-parameter + - linters: + - unparam + text: is always false + paths: + - .*\.pb\.go + - .*\.gen\.go + - genfiles$ + - vendor$ + - bin$ + - third_party$ + - builtin$ + - examples$ +formatters: + enable: - gci - - gosec - - asciicheck - - prealloc - - predeclared - - makezero - fast: false - -linters-settings: - errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: false - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: false - govet: - # report about shadowed variables - disable: - - shadow - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - ignore-words: - - cancelled - - marshalled - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 160 - # tab width in spaces. Default to 1. - tab-width: 1 - gocritic: - disabled-checks: - - exitAfterDefer - unused: - check-exported: false - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - gci: - sections: - - standard - - default - - prefix(github.com/fatedier/frp/) - gosec: - severity: "low" - confidence: "low" - excludes: - - G401 - - G402 - - G404 - - G501 - - G115 # integer overflow conversion - + - gofumpt + - goimports + settings: + gci: + sections: + - standard + - default + - prefix(github.com/fatedier/frp/) + exclusions: + generated: lax + paths: + - .*\.pb\.go + - .*\.gen\.go + - genfiles$ + - vendor$ + - bin$ + - third_party$ + - builtin$ + - examples$ issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - # exclude: - # - composite literal uses unkeyed fields - - exclude-rules: - # Exclude some linters from running on test files. - - path: _test\.go$|^tests/|^samples/ - linters: - - errcheck - - maligned - - linters: - - revive - - stylecheck - text: "use underscores in Go names" - - linters: - - revive - text: "unused-parameter" - - linters: - - unparam - text: "is always false" - - exclude-dirs: - - genfiles$ - - vendor$ - - bin$ - exclude-files: - - ".*\\.pb\\.go" - - ".*\\.gen\\.go" - - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: true - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. - max-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. + max-issues-per-linter: 0 max-same-issues: 0 diff --git a/client/service.go b/client/service.go index e163cac4554..d6a12970c6c 100644 --- a/client/service.go +++ b/client/service.go @@ -325,10 +325,9 @@ func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, firstLoginE proxyCfgs := svr.proxyCfgs visitorCfgs := svr.visitorCfgs svr.cfgMu.RUnlock() - connEncrypted := true - if svr.clientSpec != nil && svr.clientSpec.Type == "ssh-tunnel" { - connEncrypted = false - } + + connEncrypted := svr.clientSpec == nil || svr.clientSpec.Type != "ssh-tunnel" + sessionCtx := &SessionContext{ Common: svr.common, RunID: svr.runID, diff --git a/go.mod b/go.mod index 0b8ee2a5e8a..e3bdc711cc0 100644 --- a/go.mod +++ b/go.mod @@ -10,8 +10,8 @@ require ( github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.0 github.com/hashicorp/yamux v0.1.1 - github.com/onsi/ginkgo/v2 v2.22.0 - github.com/onsi/gomega v1.34.2 + github.com/onsi/ginkgo/v2 v2.23.4 + github.com/onsi/gomega v1.36.3 github.com/pelletier/go-toml/v2 v2.2.0 github.com/pion/stun/v2 v2.0.0 github.com/pires/go-proxyproto v0.7.0 @@ -46,12 +46,11 @@ require ( github.com/go-logr/logr v1.4.2 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20241206021119-61a79c692802 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/cpuid/v2 v2.2.6 // indirect github.com/klauspost/reedsolomon v1.12.0 // indirect - github.com/kr/text v0.2.0 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/logging v0.2.2 // indirect github.com/pion/transport/v2 v2.2.1 // indirect @@ -67,14 +66,15 @@ require ( github.com/tidwall/pretty v1.2.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect github.com/vishvananda/netns v0.0.4 // indirect + go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/mock v0.5.0 // indirect golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d // indirect - golang.org/x/mod v0.22.0 // indirect + golang.org/x/mod v0.24.0 // indirect golang.org/x/sys v0.32.0 // indirect golang.org/x/text v0.24.0 // indirect - golang.org/x/tools v0.28.0 // indirect + golang.org/x/tools v0.31.0 // indirect golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect - google.golang.org/protobuf v1.34.1 // indirect + google.golang.org/protobuf v1.36.5 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect diff --git a/go.sum b/go.sum index a39d174edae..a65c303320c 100644 --- a/go.sum +++ b/go.sum @@ -14,7 +14,6 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/coreos/go-oidc/v3 v3.14.1 h1:9ePWwfdwC4QKRlCXsJGou56adA/owXczOzwKdOumLqk= github.com/coreos/go-oidc/v3 v3.14.1/go.mod h1:HaZ3szPaZ0e4r6ebqvsLWlk2Tn+aejfmrfah6hnSYEU= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -50,10 +49,11 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/pprof v0.0.0-20241206021119-61a79c692802 h1:US08AXzP0bLurpzFUV3Poa9ZijrRdd1zAIOVtoHEiS8= -github.com/google/pprof v0.0.0-20241206021119-61a79c692802/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -72,10 +72,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= -github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= -github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= +github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus= +github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8= +github.com/onsi/gomega v1.36.3 h1:hID7cr8t3Wp26+cYnfcjR6HpJ00fdogN6dqZ1t6IylU= +github.com/onsi/gomega v1.36.3/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0= github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= @@ -94,6 +94,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -152,6 +154,8 @@ github.com/xtaci/kcp-go/v5 v5.6.13/go.mod h1:75S1AKYYzNUSXIv30h+jPKJYZUwqpfvLshu github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37/go.mod h1:HpMP7DB2CyokmAh4lp0EQnnWhmycP/TvwBGzvuie+H0= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= +go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -170,8 +174,8 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -239,8 +243,8 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= -golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= +golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= +golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg= @@ -261,8 +265,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/hack/run-e2e.sh b/hack/run-e2e.sh index 8009359c14a..d1b20b527f3 100755 --- a/hack/run-e2e.sh +++ b/hack/run-e2e.sh @@ -3,10 +3,10 @@ SCRIPT=$(readlink -f "$0") ROOT=$(unset CDPATH && cd "$(dirname "$SCRIPT")/.." && pwd) -ginkgo_command=$(which ginkgo 2>/dev/null) -if [ -z "$ginkgo_command" ]; then +# Check if ginkgo is available +if ! command -v ginkgo >/dev/null 2>&1; then echo "ginkgo not found, try to install..." - go install github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.23.4 fi debug=false diff --git a/pkg/config/legacy/client.go b/pkg/config/legacy/client.go index 0d677d9cc56..8cc02614798 100644 --- a/pkg/config/legacy/client.go +++ b/pkg/config/legacy/client.go @@ -194,7 +194,7 @@ func UnmarshalClientConfFromIni(source any) (ClientCommonConf, error) { } common.Metas = GetMapWithoutPrefix(s.KeysHash(), "meta_") - common.ClientConfig.OidcAdditionalEndpointParams = GetMapWithoutPrefix(s.KeysHash(), "oidc_additional_") + common.OidcAdditionalEndpointParams = GetMapWithoutPrefix(s.KeysHash(), "oidc_additional_") return common, nil } @@ -229,10 +229,7 @@ func LoadAllProxyConfsFromIni( startProxy[s] = struct{}{} } - startAll := true - if len(startProxy) > 0 { - startAll = false - } + startAll := len(startProxy) == 0 // Build template sections from range section And append to ini.File. rangeSections := make([]*ini.Section, 0) diff --git a/pkg/config/legacy/conversion.go b/pkg/config/legacy/conversion.go index dd8c4a11d91..4ae54f88ecb 100644 --- a/pkg/config/legacy/conversion.go +++ b/pkg/config/legacy/conversion.go @@ -26,20 +26,20 @@ import ( func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCommonConfig { out := &v1.ClientCommonConfig{} out.User = conf.User - out.Auth.Method = v1.AuthMethod(conf.ClientConfig.AuthenticationMethod) - out.Auth.Token = conf.ClientConfig.Token - if conf.ClientConfig.AuthenticateHeartBeats { + out.Auth.Method = v1.AuthMethod(conf.AuthenticationMethod) + out.Auth.Token = conf.Token + if conf.AuthenticateHeartBeats { out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeHeartBeats) } - if conf.ClientConfig.AuthenticateNewWorkConns { + if conf.AuthenticateNewWorkConns { out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeNewWorkConns) } - out.Auth.OIDC.ClientID = conf.ClientConfig.OidcClientID - out.Auth.OIDC.ClientSecret = conf.ClientConfig.OidcClientSecret - out.Auth.OIDC.Audience = conf.ClientConfig.OidcAudience - out.Auth.OIDC.Scope = conf.ClientConfig.OidcScope - out.Auth.OIDC.TokenEndpointURL = conf.ClientConfig.OidcTokenEndpointURL - out.Auth.OIDC.AdditionalEndpointParams = conf.ClientConfig.OidcAdditionalEndpointParams + out.Auth.OIDC.ClientID = conf.OidcClientID + out.Auth.OIDC.ClientSecret = conf.OidcClientSecret + out.Auth.OIDC.Audience = conf.OidcAudience + out.Auth.OIDC.Scope = conf.OidcScope + out.Auth.OIDC.TokenEndpointURL = conf.OidcTokenEndpointURL + out.Auth.OIDC.AdditionalEndpointParams = conf.OidcAdditionalEndpointParams out.ServerAddr = conf.ServerAddr out.ServerPort = conf.ServerPort @@ -59,10 +59,10 @@ func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCommonConf out.Transport.QUIC.MaxIncomingStreams = conf.QUICMaxIncomingStreams out.Transport.TLS.Enable = lo.ToPtr(conf.TLSEnable) out.Transport.TLS.DisableCustomTLSFirstByte = lo.ToPtr(conf.DisableCustomTLSFirstByte) - out.Transport.TLS.TLSConfig.CertFile = conf.TLSCertFile - out.Transport.TLS.TLSConfig.KeyFile = conf.TLSKeyFile - out.Transport.TLS.TLSConfig.TrustedCaFile = conf.TLSTrustedCaFile - out.Transport.TLS.TLSConfig.ServerName = conf.TLSServerName + out.Transport.TLS.CertFile = conf.TLSCertFile + out.Transport.TLS.KeyFile = conf.TLSKeyFile + out.Transport.TLS.TrustedCaFile = conf.TLSTrustedCaFile + out.Transport.TLS.ServerName = conf.TLSServerName out.Log.To = conf.LogFile out.Log.Level = conf.LogLevel @@ -87,18 +87,18 @@ func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCommonConf func Convert_ServerCommonConf_To_v1(conf *ServerCommonConf) *v1.ServerConfig { out := &v1.ServerConfig{} - out.Auth.Method = v1.AuthMethod(conf.ServerConfig.AuthenticationMethod) - out.Auth.Token = conf.ServerConfig.Token - if conf.ServerConfig.AuthenticateHeartBeats { + out.Auth.Method = v1.AuthMethod(conf.AuthenticationMethod) + out.Auth.Token = conf.Token + if conf.AuthenticateHeartBeats { out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeHeartBeats) } - if conf.ServerConfig.AuthenticateNewWorkConns { + if conf.AuthenticateNewWorkConns { out.Auth.AdditionalScopes = append(out.Auth.AdditionalScopes, v1.AuthScopeNewWorkConns) } - out.Auth.OIDC.Audience = conf.ServerConfig.OidcAudience - out.Auth.OIDC.Issuer = conf.ServerConfig.OidcIssuer - out.Auth.OIDC.SkipExpiryCheck = conf.ServerConfig.OidcSkipExpiryCheck - out.Auth.OIDC.SkipIssuerCheck = conf.ServerConfig.OidcSkipIssuerCheck + out.Auth.OIDC.Audience = conf.OidcAudience + out.Auth.OIDC.Issuer = conf.OidcIssuer + out.Auth.OIDC.SkipExpiryCheck = conf.OidcSkipExpiryCheck + out.Auth.OIDC.SkipIssuerCheck = conf.OidcSkipIssuerCheck out.BindAddr = conf.BindAddr out.BindPort = conf.BindPort diff --git a/pkg/config/legacy/proxy.go b/pkg/config/legacy/proxy.go index e6653ee9787..0c461a1a63f 100644 --- a/pkg/config/legacy/proxy.go +++ b/pkg/config/legacy/proxy.go @@ -206,7 +206,7 @@ func (cfg *BaseProxyConf) decorate(_ string, name string, section *ini.Section) } // plugin_xxx - cfg.LocalSvrConf.PluginParams = GetMapByPrefix(section.KeysHash(), "plugin_") + cfg.PluginParams = GetMapByPrefix(section.KeysHash(), "plugin_") return nil } diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index d53d05e3cbd..34bd712592c 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -129,7 +129,7 @@ func (c *ProxyBaseConfig) Complete(namePrefix string) { c.Transport.BandwidthLimitMode = util.EmptyOr(c.Transport.BandwidthLimitMode, types.BandwidthLimitModeClient) if c.Plugin.ClientPluginOptions != nil { - c.Plugin.ClientPluginOptions.Complete() + c.Plugin.Complete() } } diff --git a/pkg/metrics/mem/server.go b/pkg/metrics/mem/server.go index d92546c4c58..70cfc1c1486 100644 --- a/pkg/metrics/mem/server.go +++ b/pkg/metrics/mem/server.go @@ -109,7 +109,7 @@ func (m *serverMetrics) NewProxy(name string, proxyType string) { m.info.ProxyTypeCounts[proxyType] = counter proxyStats, ok := m.info.ProxyStatistics[name] - if !(ok && proxyStats.ProxyType == proxyType) { + if !ok || proxyStats.ProxyType != proxyType { proxyStats = &ProxyStatistics{ Name: name, ProxyType: proxyType, diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index 20ac73ed1c6..ff7d1c37606 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -223,7 +223,7 @@ func (conn *wrapQuicStream) RemoteAddr() net.Addr { } func (conn *wrapQuicStream) Close() error { - conn.Stream.CancelRead(0) + conn.CancelRead(0) return conn.Stream.Close() } diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index 46ebc3c7d7f..05ec174bff0 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -225,11 +225,7 @@ func (rp *HTTPReverseProxy) getVhost(domain, location, routeByHTTPUser string) ( // *.example.com // *.com domainSplit := strings.Split(domain, ".") - for { - if len(domainSplit) < 3 { - break - } - + for len(domainSplit) >= 3 { domainSplit[0] = "*" domain = strings.Join(domainSplit, ".") vr, ok = findRouter(domain, location, routeByHTTPUser) diff --git a/pkg/util/vhost/vhost.go b/pkg/util/vhost/vhost.go index 66dd577d8ec..007751d7f3e 100644 --- a/pkg/util/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -169,11 +169,7 @@ func (v *Muxer) getListener(name, path, httpUser string) (*Listener, bool) { } domainSplit := strings.Split(name, ".") - for { - if len(domainSplit) < 3 { - break - } - + for len(domainSplit) >= 3 { domainSplit[0] = "*" name = strings.Join(domainSplit, ".") diff --git a/test/e2e/legacy/basic/client_server.go b/test/e2e/legacy/basic/client_server.go index 03bca0c54e2..d85b5accfa3 100644 --- a/test/e2e/legacy/basic/client_server.go +++ b/test/e2e/legacy/basic/client_server.go @@ -24,12 +24,14 @@ type generalTestConfigures struct { } func renderBindPortConfig(protocol string) string { - if protocol == "kcp" { + switch protocol { + case "kcp": return fmt.Sprintf(`kcp_bind_port = {{ .%s }}`, consts.PortServerName) - } else if protocol == "quic" { + case "quic": return fmt.Sprintf(`quic_bind_port = {{ .%s }}`, consts.PortServerName) + default: + return "" } - return "" } func runClientServerTest(f *framework.Framework, configures *generalTestConfigures) { diff --git a/test/e2e/legacy/plugin/server.go b/test/e2e/legacy/plugin/server.go index cf600be2ee0..9120b7d77a1 100644 --- a/test/e2e/legacy/plugin/server.go +++ b/test/e2e/legacy/plugin/server.go @@ -223,7 +223,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { handler := func(req *plugin.Request) *plugin.Response { var ret plugin.Response content := req.Content.(*plugin.PingContent) - record = content.Ping.PrivilegeKey + record = content.PrivilegeKey ret.Unchange = true return &ret } @@ -273,7 +273,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { handler := func(req *plugin.Request) *plugin.Response { var ret plugin.Response content := req.Content.(*plugin.NewWorkConnContent) - record = content.NewWorkConn.RunID + record = content.RunID ret.Unchange = true return &ret } diff --git a/test/e2e/v1/basic/client_server.go b/test/e2e/v1/basic/client_server.go index 16270781855..85dd1227dd7 100644 --- a/test/e2e/v1/basic/client_server.go +++ b/test/e2e/v1/basic/client_server.go @@ -24,12 +24,14 @@ type generalTestConfigures struct { } func renderBindPortConfig(protocol string) string { - if protocol == "kcp" { + switch protocol { + case "kcp": return fmt.Sprintf(`kcpBindPort = {{ .%s }}`, consts.PortServerName) - } else if protocol == "quic" { + case "quic": return fmt.Sprintf(`quicBindPort = {{ .%s }}`, consts.PortServerName) + default: + return "" } - return "" } func runClientServerTest(f *framework.Framework, configures *generalTestConfigures) { diff --git a/test/e2e/v1/plugin/server.go b/test/e2e/v1/plugin/server.go index b043c57f13f..6637650d46a 100644 --- a/test/e2e/v1/plugin/server.go +++ b/test/e2e/v1/plugin/server.go @@ -232,7 +232,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { handler := func(req *plugin.Request) *plugin.Response { var ret plugin.Response content := req.Content.(*plugin.PingContent) - record = content.Ping.PrivilegeKey + record = content.PrivilegeKey ret.Unchange = true return &ret } @@ -284,7 +284,7 @@ var _ = ginkgo.Describe("[Feature: Server-Plugins]", func() { handler := func(req *plugin.Request) *plugin.Response { var ret plugin.Response content := req.Content.(*plugin.NewWorkConnContent) - record = content.NewWorkConn.RunID + record = content.RunID ret.Unchange = true return &ret } From c777891f7589e3491f6e5c375b91fd637680aa04 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 25 Jun 2025 11:16:48 +0800 Subject: [PATCH 263/444] update .golangci.yml (#4848) --- .gitignore | 3 +++ .golangci.yml | 1 + 2 files changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 0f69b089a2b..c6480f59a4a 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ client.key # Cache *.swp + +# AI +CLAUDE.md diff --git a/.golangci.yml b/.golangci.yml index be0a717e74c..09848bc7211 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,6 +1,7 @@ version: "2" run: concurrency: 4 + timeout: 20m build-tags: - integ - integfuzz From 61330d4d794180c38d1f8ff7e9024b7f0f69d717 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 1 Jul 2025 18:56:46 +0800 Subject: [PATCH 264/444] Update quic-go dependency from v0.48.2 to v0.53.0 (#4862) - Update go.mod to use github.com/quic-go/quic-go v0.53.0 - Replace quic.Connection interface with *quic.Conn struct - Replace quic.Stream interface with *quic.Stream struct - Update all affected files to use new API: - pkg/util/net/conn.go: Update QuicStreamToNetConn function and wrapQuicStream struct - server/service.go: Update HandleQUICListener function parameter - client/visitor/xtcp.go: Update QUICTunnelSession struct field - client/connector.go: Update defaultConnectorImpl struct field Fixes #4852 Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- client/connector.go | 2 +- client/visitor/xtcp.go | 2 +- go.mod | 3 +-- go.sum | 6 ++---- pkg/util/net/conn.go | 6 +++--- server/service.go | 2 +- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/client/connector.go b/client/connector.go index 64aa71c06e1..ab7c2fdda42 100644 --- a/client/connector.go +++ b/client/connector.go @@ -48,7 +48,7 @@ type defaultConnectorImpl struct { cfg *v1.ClientCommonConfig muxSession *fmux.Session - quicConn quic.Connection + quicConn *quic.Conn closeOnce sync.Once } diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 51f29ad2a94..99d25d8ac81 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -398,7 +398,7 @@ func (ks *KCPTunnelSession) Close() { } type QUICTunnelSession struct { - session quic.Connection + session *quic.Conn listenConn *net.UDPConn mu sync.RWMutex diff --git a/go.mod b/go.mod index e3bdc711cc0..46e753e2a14 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/pion/stun/v2 v2.0.0 github.com/pires/go-proxyproto v0.7.0 github.com/prometheus/client_golang v1.19.1 - github.com/quic-go/quic-go v0.48.2 + github.com/quic-go/quic-go v0.53.0 github.com/rodaine/table v1.2.0 github.com/samber/lo v1.47.0 github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 @@ -68,7 +68,6 @@ require ( github.com/vishvananda/netns v0.0.4 // indirect go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/mock v0.5.0 // indirect - golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d // indirect golang.org/x/mod v0.24.0 // indirect golang.org/x/sys v0.32.0 // indirect golang.org/x/text v0.24.0 // indirect diff --git a/go.sum b/go.sum index a65c303320c..bd044c39cbb 100644 --- a/go.sum +++ b/go.sum @@ -105,8 +105,8 @@ github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSz github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= -github.com/quic-go/quic-go v0.48.2 h1:wsKXZPeGWpMpCGSWqOcqpW2wZYic/8T3aqiOID0/KWE= -github.com/quic-go/quic-go v0.48.2/go.mod h1:yBgs3rWBOADpga7F+jJsb6Ybg1LSYiQvwWlLX+/6HMs= +github.com/quic-go/quic-go v0.53.0 h1:QHX46sISpG2S03dPeZBgVIZp8dGagIaiu2FiVYvpCZI= +github.com/quic-go/quic-go v0.53.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rodaine/table v1.2.0 h1:38HEnwK4mKSHQJIkavVj+bst1TEY7j9zhLMWu4QJrMA= @@ -167,8 +167,6 @@ golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98y golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d h1:0olWaB5pg3+oychR51GUVCEsGkeCU/2JxjBgIo4f3M0= -golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index ff7d1c37606..20468f1b8c5 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -197,11 +197,11 @@ func (statsConn *StatsConn) Close() (err error) { } type wrapQuicStream struct { - quic.Stream - c quic.Connection + *quic.Stream + c *quic.Conn } -func QuicStreamToNetConn(s quic.Stream, c quic.Connection) net.Conn { +func QuicStreamToNetConn(s *quic.Stream, c *quic.Conn) net.Conn { return &wrapQuicStream{ Stream: s, c: c, diff --git a/server/service.go b/server/service.go index b9abaa80099..514afb518e3 100644 --- a/server/service.go +++ b/server/service.go @@ -550,7 +550,7 @@ func (svr *Service) HandleQUICListener(l *quic.Listener) { return } // Start a new goroutine to handle connection. - go func(ctx context.Context, frpConn quic.Connection) { + go func(ctx context.Context, frpConn *quic.Conn) { for { stream, err := frpConn.AcceptStream(context.Background()) if err != nil { From f9065a6a78f91f31ca9522209194346755ac4d87 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 3 Jul 2025 13:17:21 +0800 Subject: [PATCH 265/444] add tokenSource support for auth configuration (#4865) --- README.md | 15 ++ Release.md | 3 +- client/service.go | 11 +- cmd/frpc/sub/nathole.go | 5 +- cmd/frpc/sub/proxy.go | 10 +- cmd/frps/root.go | 5 +- conf/frpc_full_example.toml | 5 + conf/frps_full_example.toml | 5 + pkg/config/load.go | 8 +- pkg/config/v1/client.go | 30 +++- pkg/config/v1/client_test.go | 72 ++++++++- pkg/config/v1/server.go | 25 ++- pkg/config/v1/server_test.go | 72 ++++++++- pkg/config/v1/validation/client.go | 12 ++ pkg/config/v1/validation/server.go | 12 ++ pkg/config/v1/value_source.go | 93 +++++++++++ pkg/config/v1/value_source_test.go | 246 +++++++++++++++++++++++++++++ pkg/ssh/server.go | 5 +- pkg/virtual/client.go | 4 +- test/e2e/v1/basic/token_source.go | 217 +++++++++++++++++++++++++ 20 files changed, 832 insertions(+), 23 deletions(-) create mode 100644 pkg/config/v1/value_source.go create mode 100644 pkg/config/v1/value_source_test.go create mode 100644 test/e2e/v1/basic/token_source.go diff --git a/README.md b/README.md index f0ab4273096..38bafab4891 100644 --- a/README.md +++ b/README.md @@ -612,6 +612,21 @@ When specifying `auth.method = "token"` in `frpc.toml` and `frps.toml` - token b Make sure to specify the same `auth.token` in `frps.toml` and `frpc.toml` for frpc to pass frps validation +##### Token Source + +frp supports reading authentication tokens from external sources using the `tokenSource` configuration. Currently, file-based token source is supported. + +**File-based token source:** + +```toml +# frpc.toml +auth.method = "token" +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "/path/to/token/file" +``` + +The token will be read from the specified file at startup. This is useful for scenarios where tokens are managed by external systems or need to be kept separate from configuration files for security reasons. + #### OIDC Authentication When specifying `auth.method = "oidc"` in `frpc.toml` and `frps.toml` - OIDC based authentication will be used. diff --git a/Release.md b/Release.md index 19b79d6478b..7ee50ea07c9 100644 --- a/Release.md +++ b/Release.md @@ -1,4 +1,3 @@ ## Features -* Support for YAML merge functionality (anchors and references with dot-prefixed fields) in strict configuration mode without requiring `--strict-config=false` parameter. -* Support for proxy protocol in UDP proxies to preserve real client IP addresses. \ No newline at end of file +* Support tokenSource for loading authentication tokens from files \ No newline at end of file diff --git a/client/service.go b/client/service.go index d6a12970c6c..337f8f2b8d0 100644 --- a/client/service.go +++ b/client/service.go @@ -88,13 +88,16 @@ type ServiceOptions struct { } // setServiceOptionsDefault sets the default values for ServiceOptions. -func setServiceOptionsDefault(options *ServiceOptions) { +func setServiceOptionsDefault(options *ServiceOptions) error { if options.Common != nil { - options.Common.Complete() + if err := options.Common.Complete(); err != nil { + return err + } } if options.ConnectorCreator == nil { options.ConnectorCreator = NewConnector } + return nil } // Service is the client service that connects to frps and provides proxy services. @@ -134,7 +137,9 @@ type Service struct { } func NewService(options ServiceOptions) (*Service, error) { - setServiceOptionsDefault(&options) + if err := setServiceOptionsDefault(&options); err != nil { + return nil, err + } var webServer *httppkg.Server if options.Common.WebServer.Port > 0 { diff --git a/cmd/frpc/sub/nathole.go b/cmd/frpc/sub/nathole.go index fb5b08078c2..a07d6852305 100644 --- a/cmd/frpc/sub/nathole.go +++ b/cmd/frpc/sub/nathole.go @@ -51,7 +51,10 @@ var natholeDiscoveryCmd = &cobra.Command{ cfg, _, _, _, err := config.LoadClientConfig(cfgFile, strictConfigMode) if err != nil { cfg = &v1.ClientCommonConfig{} - cfg.Complete() + if err := cfg.Complete(); err != nil { + fmt.Printf("failed to complete config: %v\n", err) + os.Exit(1) + } } if natHoleSTUNServer != "" { cfg.NatHoleSTUNServer = natHoleSTUNServer diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go index c5d76b1e3b3..67bd774f7a3 100644 --- a/cmd/frpc/sub/proxy.go +++ b/cmd/frpc/sub/proxy.go @@ -73,7 +73,10 @@ func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.ClientComm Use: name, Short: fmt.Sprintf("Run frpc with a single %s proxy", name), Run: func(cmd *cobra.Command, args []string) { - clientCfg.Complete() + if err := clientCfg.Complete(); err != nil { + fmt.Println(err) + os.Exit(1) + } if _, err := validation.ValidateClientCommonConfig(clientCfg); err != nil { fmt.Println(err) os.Exit(1) @@ -99,7 +102,10 @@ func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v1.Client Use: "visitor", Short: fmt.Sprintf("Run frpc with a single %s visitor", name), Run: func(cmd *cobra.Command, args []string) { - clientCfg.Complete() + if err := clientCfg.Complete(); err != nil { + fmt.Println(err) + os.Exit(1) + } if _, err := validation.ValidateClientCommonConfig(clientCfg); err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frps/root.go b/cmd/frps/root.go index fff487d1074..c1bfc880624 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -70,7 +70,10 @@ var rootCmd = &cobra.Command{ "please use yaml/json/toml format instead!\n") } } else { - serverCfg.Complete() + if err := serverCfg.Complete(); err != nil { + fmt.Printf("failed to complete server config: %v\n", err) + os.Exit(1) + } svrCfg = &serverCfg } diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index 7d4838cd78f..d8d93a3fe25 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -32,6 +32,11 @@ auth.method = "token" # auth token auth.token = "12345678" +# alternatively, you can use tokenSource to load the token from a file +# this is mutually exclusive with auth.token +# auth.tokenSource.type = "file" +# auth.tokenSource.file.path = "/etc/frp/token" + # oidc.clientID specifies the client ID to use to get a token in OIDC authentication. # auth.oidc.clientID = "" # oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication. diff --git a/conf/frps_full_example.toml b/conf/frps_full_example.toml index a4fc2736a74..aba37435ffc 100644 --- a/conf/frps_full_example.toml +++ b/conf/frps_full_example.toml @@ -105,6 +105,11 @@ auth.method = "token" # auth token auth.token = "12345678" +# alternatively, you can use tokenSource to load the token from a file +# this is mutually exclusive with auth.token +# auth.tokenSource.type = "file" +# auth.tokenSource.file.path = "/etc/frp/token" + # oidc issuer specifies the issuer to verify OIDC tokens with. auth.oidc.issuer = "" # oidc audience specifies the audience OIDC tokens should contain when validated. diff --git a/pkg/config/load.go b/pkg/config/load.go index bb050b406b5..3852af9a886 100644 --- a/pkg/config/load.go +++ b/pkg/config/load.go @@ -212,7 +212,9 @@ func LoadServerConfig(path string, strict bool) (*v1.ServerConfig, bool, error) } } if svrCfg != nil { - svrCfg.Complete() + if err := svrCfg.Complete(); err != nil { + return nil, isLegacyFormat, err + } } return svrCfg, isLegacyFormat, nil } @@ -280,7 +282,9 @@ func LoadClientConfig(path string, strict bool) ( } if cliCfg != nil { - cliCfg.Complete() + if err := cliCfg.Complete(); err != nil { + return nil, nil, nil, isLegacyFormat, err + } } for _, c := range proxyCfgs { c.Complete(cliCfg.User) diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index d616fc0a300..a830df994a5 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -15,6 +15,8 @@ package v1 import ( + "context" + "fmt" "os" "github.com/samber/lo" @@ -77,18 +79,21 @@ type ClientCommonConfig struct { IncludeConfigFiles []string `json:"includes,omitempty"` } -func (c *ClientCommonConfig) Complete() { +func (c *ClientCommonConfig) Complete() error { c.ServerAddr = util.EmptyOr(c.ServerAddr, "0.0.0.0") c.ServerPort = util.EmptyOr(c.ServerPort, 7000) c.LoginFailExit = util.EmptyOr(c.LoginFailExit, lo.ToPtr(true)) c.NatHoleSTUNServer = util.EmptyOr(c.NatHoleSTUNServer, "stun.easyvoip.com:3478") - c.Auth.Complete() + if err := c.Auth.Complete(); err != nil { + return err + } c.Log.Complete() c.Transport.Complete() c.WebServer.Complete() c.UDPPacketSize = util.EmptyOr(c.UDPPacketSize, 1500) + return nil } type ClientTransportConfig struct { @@ -184,12 +189,27 @@ type AuthClientConfig struct { // Token specifies the authorization token used to create keys to be sent // to the server. The server must have a matching token for authorization // to succeed. By default, this value is "". - Token string `json:"token,omitempty"` - OIDC AuthOIDCClientConfig `json:"oidc,omitempty"` + Token string `json:"token,omitempty"` + // TokenSource specifies a dynamic source for the authorization token. + // This is mutually exclusive with Token field. + TokenSource *ValueSource `json:"tokenSource,omitempty"` + OIDC AuthOIDCClientConfig `json:"oidc,omitempty"` } -func (c *AuthClientConfig) Complete() { +func (c *AuthClientConfig) Complete() error { c.Method = util.EmptyOr(c.Method, "token") + + // Resolve tokenSource during configuration loading + if c.Method == AuthMethodToken && c.TokenSource != nil { + token, err := c.TokenSource.Resolve(context.Background()) + if err != nil { + return fmt.Errorf("failed to resolve auth.tokenSource: %w", err) + } + // Move the resolved token to the Token field and clear TokenSource + c.Token = token + c.TokenSource = nil + } + return nil } type AuthOIDCClientConfig struct { diff --git a/pkg/config/v1/client_test.go b/pkg/config/v1/client_test.go index 9ff7c287164..120c4fd42a3 100644 --- a/pkg/config/v1/client_test.go +++ b/pkg/config/v1/client_test.go @@ -15,6 +15,8 @@ package v1 import ( + "os" + "path/filepath" "testing" "github.com/samber/lo" @@ -24,7 +26,8 @@ import ( func TestClientConfigComplete(t *testing.T) { require := require.New(t) c := &ClientConfig{} - c.Complete() + err := c.Complete() + require.NoError(err) require.EqualValues("token", c.Auth.Method) require.Equal(true, lo.FromPtr(c.Transport.TCPMux)) @@ -33,3 +36,70 @@ func TestClientConfigComplete(t *testing.T) { require.Equal(true, lo.FromPtr(c.Transport.TLS.DisableCustomTLSFirstByte)) require.NotEmpty(c.NatHoleSTUNServer) } + +func TestAuthClientConfig_Complete(t *testing.T) { + // Create a temporary file for testing + tmpDir := t.TempDir() + testFile := filepath.Join(tmpDir, "test_token") + testContent := "client-token-value" + err := os.WriteFile(testFile, []byte(testContent), 0o600) + require.NoError(t, err) + + tests := []struct { + name string + config AuthClientConfig + expectToken string + expectPanic bool + }{ + { + name: "tokenSource resolved to token", + config: AuthClientConfig{ + Method: AuthMethodToken, + TokenSource: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: testFile, + }, + }, + }, + expectToken: testContent, + expectPanic: false, + }, + { + name: "direct token unchanged", + config: AuthClientConfig{ + Method: AuthMethodToken, + Token: "direct-token", + }, + expectToken: "direct-token", + expectPanic: false, + }, + { + name: "invalid tokenSource should panic", + config: AuthClientConfig{ + Method: AuthMethodToken, + TokenSource: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: "/non/existent/file", + }, + }, + }, + expectPanic: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.expectPanic { + err := tt.config.Complete() + require.Error(t, err) + } else { + err := tt.config.Complete() + require.NoError(t, err) + require.Equal(t, tt.expectToken, tt.config.Token) + require.Nil(t, tt.config.TokenSource, "TokenSource should be cleared after resolution") + } + }) + } +} diff --git a/pkg/config/v1/server.go b/pkg/config/v1/server.go index 3108cd34f40..54aac080bd0 100644 --- a/pkg/config/v1/server.go +++ b/pkg/config/v1/server.go @@ -15,6 +15,9 @@ package v1 import ( + "context" + "fmt" + "github.com/samber/lo" "github.com/fatedier/frp/pkg/config/types" @@ -98,8 +101,10 @@ type ServerConfig struct { HTTPPlugins []HTTPPluginOptions `json:"httpPlugins,omitempty"` } -func (c *ServerConfig) Complete() { - c.Auth.Complete() +func (c *ServerConfig) Complete() error { + if err := c.Auth.Complete(); err != nil { + return err + } c.Log.Complete() c.Transport.Complete() c.WebServer.Complete() @@ -120,17 +125,31 @@ func (c *ServerConfig) Complete() { c.UserConnTimeout = util.EmptyOr(c.UserConnTimeout, 10) c.UDPPacketSize = util.EmptyOr(c.UDPPacketSize, 1500) c.NatHoleAnalysisDataReserveHours = util.EmptyOr(c.NatHoleAnalysisDataReserveHours, 7*24) + return nil } type AuthServerConfig struct { Method AuthMethod `json:"method,omitempty"` AdditionalScopes []AuthScope `json:"additionalScopes,omitempty"` Token string `json:"token,omitempty"` + TokenSource *ValueSource `json:"tokenSource,omitempty"` OIDC AuthOIDCServerConfig `json:"oidc,omitempty"` } -func (c *AuthServerConfig) Complete() { +func (c *AuthServerConfig) Complete() error { c.Method = util.EmptyOr(c.Method, "token") + + // Resolve tokenSource during configuration loading + if c.Method == AuthMethodToken && c.TokenSource != nil { + token, err := c.TokenSource.Resolve(context.Background()) + if err != nil { + return fmt.Errorf("failed to resolve auth.tokenSource: %w", err) + } + // Move the resolved token to the Token field and clear TokenSource + c.Token = token + c.TokenSource = nil + } + return nil } type AuthOIDCServerConfig struct { diff --git a/pkg/config/v1/server_test.go b/pkg/config/v1/server_test.go index 3100fc4b12f..21d18fb7653 100644 --- a/pkg/config/v1/server_test.go +++ b/pkg/config/v1/server_test.go @@ -15,6 +15,8 @@ package v1 import ( + "os" + "path/filepath" "testing" "github.com/samber/lo" @@ -24,9 +26,77 @@ import ( func TestServerConfigComplete(t *testing.T) { require := require.New(t) c := &ServerConfig{} - c.Complete() + err := c.Complete() + require.NoError(err) require.EqualValues("token", c.Auth.Method) require.Equal(true, lo.FromPtr(c.Transport.TCPMux)) require.Equal(true, lo.FromPtr(c.DetailedErrorsToClient)) } + +func TestAuthServerConfig_Complete(t *testing.T) { + // Create a temporary file for testing + tmpDir := t.TempDir() + testFile := filepath.Join(tmpDir, "test_token") + testContent := "file-token-value" + err := os.WriteFile(testFile, []byte(testContent), 0o600) + require.NoError(t, err) + + tests := []struct { + name string + config AuthServerConfig + expectToken string + expectPanic bool + }{ + { + name: "tokenSource resolved to token", + config: AuthServerConfig{ + Method: AuthMethodToken, + TokenSource: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: testFile, + }, + }, + }, + expectToken: testContent, + expectPanic: false, + }, + { + name: "direct token unchanged", + config: AuthServerConfig{ + Method: AuthMethodToken, + Token: "direct-token", + }, + expectToken: "direct-token", + expectPanic: false, + }, + { + name: "invalid tokenSource should panic", + config: AuthServerConfig{ + Method: AuthMethodToken, + TokenSource: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: "/non/existent/file", + }, + }, + }, + expectPanic: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.expectPanic { + err := tt.config.Complete() + require.Error(t, err) + } else { + err := tt.config.Complete() + require.NoError(t, err) + require.Equal(t, tt.expectToken, tt.config.Token) + require.Nil(t, tt.config.TokenSource, "TokenSource should be cleared after resolution") + } + }) + } +} diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index bae21fda40b..0c8575c990c 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -45,6 +45,18 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", SupportedAuthAdditionalScopes)) } + // Validate token/tokenSource mutual exclusivity + if c.Auth.Token != "" && c.Auth.TokenSource != nil { + errs = AppendError(errs, fmt.Errorf("cannot specify both auth.token and auth.tokenSource")) + } + + // Validate tokenSource if specified + if c.Auth.TokenSource != nil { + if err := c.Auth.TokenSource.Validate(); err != nil { + errs = AppendError(errs, fmt.Errorf("invalid auth.tokenSource: %v", err)) + } + } + if err := validateLogConfig(&c.Log); err != nil { errs = AppendError(errs, err) } diff --git a/pkg/config/v1/validation/server.go b/pkg/config/v1/validation/server.go index cdb80ea3851..5694227299f 100644 --- a/pkg/config/v1/validation/server.go +++ b/pkg/config/v1/validation/server.go @@ -35,6 +35,18 @@ func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", SupportedAuthAdditionalScopes)) } + // Validate token/tokenSource mutual exclusivity + if c.Auth.Token != "" && c.Auth.TokenSource != nil { + errs = AppendError(errs, fmt.Errorf("cannot specify both auth.token and auth.tokenSource")) + } + + // Validate tokenSource if specified + if c.Auth.TokenSource != nil { + if err := c.Auth.TokenSource.Validate(); err != nil { + errs = AppendError(errs, fmt.Errorf("invalid auth.tokenSource: %v", err)) + } + } + if err := validateLogConfig(&c.Log); err != nil { errs = AppendError(errs, err) } diff --git a/pkg/config/v1/value_source.go b/pkg/config/v1/value_source.go new file mode 100644 index 00000000000..624a2658965 --- /dev/null +++ b/pkg/config/v1/value_source.go @@ -0,0 +1,93 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "context" + "errors" + "fmt" + "os" + "strings" +) + +// ValueSource provides a way to dynamically resolve configuration values +// from various sources like files, environment variables, or external services. +type ValueSource struct { + Type string `json:"type"` + File *FileSource `json:"file,omitempty"` +} + +// FileSource specifies how to load a value from a file. +type FileSource struct { + Path string `json:"path"` +} + +// Validate validates the ValueSource configuration. +func (v *ValueSource) Validate() error { + if v == nil { + return errors.New("valueSource cannot be nil") + } + + switch v.Type { + case "file": + if v.File == nil { + return errors.New("file configuration is required when type is 'file'") + } + return v.File.Validate() + default: + return fmt.Errorf("unsupported value source type: %s (only 'file' is supported)", v.Type) + } +} + +// Resolve resolves the value from the configured source. +func (v *ValueSource) Resolve(ctx context.Context) (string, error) { + if err := v.Validate(); err != nil { + return "", err + } + + switch v.Type { + case "file": + return v.File.Resolve(ctx) + default: + return "", fmt.Errorf("unsupported value source type: %s", v.Type) + } +} + +// Validate validates the FileSource configuration. +func (f *FileSource) Validate() error { + if f == nil { + return errors.New("fileSource cannot be nil") + } + + if f.Path == "" { + return errors.New("file path cannot be empty") + } + return nil +} + +// Resolve reads and returns the content from the specified file. +func (f *FileSource) Resolve(_ context.Context) (string, error) { + if err := f.Validate(); err != nil { + return "", err + } + + content, err := os.ReadFile(f.Path) + if err != nil { + return "", fmt.Errorf("failed to read file %s: %v", f.Path, err) + } + + // Trim whitespace, which is important for file-based tokens + return strings.TrimSpace(string(content)), nil +} diff --git a/pkg/config/v1/value_source_test.go b/pkg/config/v1/value_source_test.go new file mode 100644 index 00000000000..685151f44ad --- /dev/null +++ b/pkg/config/v1/value_source_test.go @@ -0,0 +1,246 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package v1 + +import ( + "context" + "os" + "path/filepath" + "testing" +) + +func TestValueSource_Validate(t *testing.T) { + tests := []struct { + name string + vs *ValueSource + wantErr bool + }{ + { + name: "nil valueSource", + vs: nil, + wantErr: true, + }, + { + name: "unsupported type", + vs: &ValueSource{ + Type: "unsupported", + }, + wantErr: true, + }, + { + name: "file type without file config", + vs: &ValueSource{ + Type: "file", + File: nil, + }, + wantErr: true, + }, + { + name: "valid file type with absolute path", + vs: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: "/tmp/test", + }, + }, + wantErr: false, + }, + { + name: "valid file type with relative path", + vs: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: "configs/token", + }, + }, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.vs.Validate() + if (err != nil) != tt.wantErr { + t.Errorf("ValueSource.Validate() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestFileSource_Validate(t *testing.T) { + tests := []struct { + name string + fs *FileSource + wantErr bool + }{ + { + name: "nil fileSource", + fs: nil, + wantErr: true, + }, + { + name: "empty path", + fs: &FileSource{ + Path: "", + }, + wantErr: true, + }, + { + name: "relative path (allowed)", + fs: &FileSource{ + Path: "relative/path", + }, + wantErr: false, + }, + { + name: "absolute path", + fs: &FileSource{ + Path: "/absolute/path", + }, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.fs.Validate() + if (err != nil) != tt.wantErr { + t.Errorf("FileSource.Validate() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestFileSource_Resolve(t *testing.T) { + // Create a temporary file for testing + tmpDir := t.TempDir() + testFile := filepath.Join(tmpDir, "test_token") + testContent := "test-token-value\n\t " + expectedContent := "test-token-value" + + err := os.WriteFile(testFile, []byte(testContent), 0o600) + if err != nil { + t.Fatalf("failed to create test file: %v", err) + } + + tests := []struct { + name string + fs *FileSource + want string + wantErr bool + }{ + { + name: "valid file path", + fs: &FileSource{ + Path: testFile, + }, + want: expectedContent, + wantErr: false, + }, + { + name: "non-existent file", + fs: &FileSource{ + Path: "/non/existent/file", + }, + want: "", + wantErr: true, + }, + { + name: "path traversal attempt (should fail validation)", + fs: &FileSource{ + Path: "../../../etc/passwd", + }, + want: "", + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := tt.fs.Resolve(context.Background()) + if (err != nil) != tt.wantErr { + t.Errorf("FileSource.Resolve() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("FileSource.Resolve() = %v, want %v", got, tt.want) + } + }) + } +} + +func TestValueSource_Resolve(t *testing.T) { + // Create a temporary file for testing + tmpDir := t.TempDir() + testFile := filepath.Join(tmpDir, "test_token") + testContent := "test-token-value" + + err := os.WriteFile(testFile, []byte(testContent), 0o600) + if err != nil { + t.Fatalf("failed to create test file: %v", err) + } + + tests := []struct { + name string + vs *ValueSource + want string + wantErr bool + }{ + { + name: "valid file type", + vs: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: testFile, + }, + }, + want: testContent, + wantErr: false, + }, + { + name: "unsupported type", + vs: &ValueSource{ + Type: "unsupported", + }, + want: "", + wantErr: true, + }, + { + name: "file type with path traversal", + vs: &ValueSource{ + Type: "file", + File: &FileSource{ + Path: "../../../etc/passwd", + }, + }, + want: "", + wantErr: true, + }, + } + + ctx := context.Background() + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := tt.vs.Resolve(ctx) + if (err != nil) != tt.wantErr { + t.Errorf("ValueSource.Resolve() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("ValueSource.Resolve() = %v, want %v", got, tt.want) + } + }) + } +} diff --git a/pkg/ssh/server.go b/pkg/ssh/server.go index 84b744fb9a4..378c609847b 100644 --- a/pkg/ssh/server.go +++ b/pkg/ssh/server.go @@ -105,7 +105,10 @@ func (s *TunnelServer) Run() error { s.writeToClient(err.Error()) return fmt.Errorf("parse flags from ssh client error: %v", err) } - clientCfg.Complete() + if err := clientCfg.Complete(); err != nil { + s.writeToClient(fmt.Sprintf("failed to complete client config: %v", err)) + return fmt.Errorf("complete client config error: %v", err) + } if sshConn.Permissions != nil { clientCfg.User = util.EmptyOr(sshConn.Permissions.Extensions["user"], clientCfg.User) } diff --git a/pkg/virtual/client.go b/pkg/virtual/client.go index 96835a48c7f..8fec28c858d 100644 --- a/pkg/virtual/client.go +++ b/pkg/virtual/client.go @@ -37,7 +37,9 @@ type Client struct { func NewClient(options ClientOptions) (*Client, error) { if options.Common != nil { - options.Common.Complete() + if err := options.Common.Complete(); err != nil { + return nil, err + } } ln := netpkg.NewInternalListener() diff --git a/test/e2e/v1/basic/token_source.go b/test/e2e/v1/basic/token_source.go new file mode 100644 index 00000000000..95bb8dd4b0c --- /dev/null +++ b/test/e2e/v1/basic/token_source.go @@ -0,0 +1,217 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package basic + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/onsi/ginkgo/v2" + + "github.com/fatedier/frp/test/e2e/framework" + "github.com/fatedier/frp/test/e2e/framework/consts" + "github.com/fatedier/frp/test/e2e/pkg/port" +) + +var _ = ginkgo.Describe("[Feature: TokenSource]", func() { + f := framework.NewDefaultFramework() + + ginkgo.Describe("File-based token loading", func() { + ginkgo.It("should work with file tokenSource", func() { + // Create a temporary token file + tmpDir := f.TempDirectory + tokenFile := filepath.Join(tmpDir, "test_token") + tokenContent := "test-token-123" + + err := os.WriteFile(tokenFile, []byte(tokenContent), 0o600) + framework.ExpectNoError(err) + + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + portName := port.GenName("TCP") + + // Server config with tokenSource + serverConf += fmt.Sprintf(` +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "%s" +`, tokenFile) + + // Client config with matching token + clientConf += fmt.Sprintf(` +auth.token = "%s" + +[[proxies]] +name = "tcp" +type = "tcp" +localPort = {{ .%s }} +remotePort = {{ .%s }} +`, tokenContent, framework.TCPEchoServerPort, portName) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).PortName(portName).Ensure() + }) + + ginkgo.It("should work with client tokenSource", func() { + // Create a temporary token file + tmpDir := f.TempDirectory + tokenFile := filepath.Join(tmpDir, "client_token") + tokenContent := "client-token-456" + + err := os.WriteFile(tokenFile, []byte(tokenContent), 0o600) + framework.ExpectNoError(err) + + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + portName := port.GenName("TCP") + + // Server config with matching token + serverConf += fmt.Sprintf(` +auth.token = "%s" +`, tokenContent) + + // Client config with tokenSource + clientConf += fmt.Sprintf(` +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "%s" + +[[proxies]] +name = "tcp" +type = "tcp" +localPort = {{ .%s }} +remotePort = {{ .%s }} +`, tokenFile, framework.TCPEchoServerPort, portName) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).PortName(portName).Ensure() + }) + + ginkgo.It("should work with both server and client tokenSource", func() { + // Create temporary token files + tmpDir := f.TempDirectory + serverTokenFile := filepath.Join(tmpDir, "server_token") + clientTokenFile := filepath.Join(tmpDir, "client_token") + tokenContent := "shared-token-789" + + err := os.WriteFile(serverTokenFile, []byte(tokenContent), 0o600) + framework.ExpectNoError(err) + + err = os.WriteFile(clientTokenFile, []byte(tokenContent), 0o600) + framework.ExpectNoError(err) + + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + portName := port.GenName("TCP") + + // Server config with tokenSource + serverConf += fmt.Sprintf(` +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "%s" +`, serverTokenFile) + + // Client config with tokenSource + clientConf += fmt.Sprintf(` +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "%s" + +[[proxies]] +name = "tcp" +type = "tcp" +localPort = {{ .%s }} +remotePort = {{ .%s }} +`, clientTokenFile, framework.TCPEchoServerPort, portName) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + framework.NewRequestExpect(f).PortName(portName).Ensure() + }) + + ginkgo.It("should fail with mismatched tokens", func() { + // Create temporary token files with different content + tmpDir := f.TempDirectory + serverTokenFile := filepath.Join(tmpDir, "server_token") + clientTokenFile := filepath.Join(tmpDir, "client_token") + + err := os.WriteFile(serverTokenFile, []byte("server-token"), 0o600) + framework.ExpectNoError(err) + + err = os.WriteFile(clientTokenFile, []byte("client-token"), 0o600) + framework.ExpectNoError(err) + + serverConf := consts.DefaultServerConfig + clientConf := consts.DefaultClientConfig + + portName := port.GenName("TCP") + + // Server config with tokenSource + serverConf += fmt.Sprintf(` +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "%s" +`, serverTokenFile) + + // Client config with different tokenSource + clientConf += fmt.Sprintf(` +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "%s" + +[[proxies]] +name = "tcp" +type = "tcp" +localPort = {{ .%s }} +remotePort = {{ .%s }} +`, clientTokenFile, framework.TCPEchoServerPort, portName) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + // This should fail due to token mismatch - the client should not be able to connect + // We expect the request to fail because the proxy tunnel is not established + framework.NewRequestExpect(f).PortName(portName).ExpectError(true).Ensure() + }) + + ginkgo.It("should fail with non-existent token file", func() { + // This test verifies that server fails to start when tokenSource points to non-existent file + // We'll verify this by checking that the configuration loading itself fails + + // Create a config that references a non-existent file + tmpDir := f.TempDirectory + nonExistentFile := filepath.Join(tmpDir, "non_existent_token") + + serverConf := consts.DefaultServerConfig + + // Server config with non-existent tokenSource file + serverConf += fmt.Sprintf(` +auth.tokenSource.type = "file" +auth.tokenSource.file.path = "%s" +`, nonExistentFile) + + // The test expectation is that this will fail during the RunProcesses call + // because the server cannot load the configuration due to missing token file + defer func() { + if r := recover(); r != nil { + // Expected: server should fail to start due to missing file + ginkgo.By(fmt.Sprintf("Server correctly failed to start: %v", r)) + } + }() + + // This should cause a panic or error during server startup + f.RunProcesses([]string{serverConf}, []string{}) + }) + }) +}) From c3bf952d8f49dfb23ef9dfc430cec1d9dab1c967 Mon Sep 17 00:00:00 2001 From: maguowei Date: Thu, 24 Jul 2025 10:16:44 +0800 Subject: [PATCH 266/444] fix webserver port not being released on frpc svr.Close() (#4896) --- client/service.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/service.go b/client/service.go index 337f8f2b8d0..9e1833b972c 100644 --- a/client/service.go +++ b/client/service.go @@ -403,6 +403,10 @@ func (svr *Service) stop() { svr.ctl.GracefulClose(svr.gracefulShutdownDuration) svr.ctl = nil } + if svr.webServer != nil { + svr.webServer.Close() + svr.webServer = nil + } } func (svr *Service) getProxyStatus(name string) (*proxy.WorkingStatus, bool) { From 7fe295f4f4f8edf7f5b1a8b7452a9f8dec4b85f0 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 25 Jul 2025 17:10:32 +0800 Subject: [PATCH 267/444] update golangci-lint version (#4897) --- .github/workflows/golangci-lint.yml | 12 +----------- .golangci.yml | 3 +++ 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 40aba1ce409..d4faac70a7e 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -23,14 +23,4 @@ jobs: uses: golangci/golangci-lint-action@v8 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v2.1 - - # Optional: golangci-lint command line arguments. - # args: --issues-exit-code=0 - - # Optional: show only new issues if it's a pull request. The default value is `false`. - # only-new-issues: true - - # Optional: if set to true then the all caching functionality will be complete disabled, - # takes precedence over all other caching options. - # skip-cache: true + version: v2.3 diff --git a/.golangci.yml b/.golangci.yml index 09848bc7211..3ba2c60fe63 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -73,6 +73,9 @@ linters: - linters: - revive text: unused-parameter + - linters: + - revive + text: "avoid meaningless package names" - linters: - unparam text: is always false From e6dacf3a67c127c005f5e7416bf87ec887f47e15 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 28 Jul 2025 15:19:56 +0800 Subject: [PATCH 268/444] Fix SSH tunnel gateway binding address issue #4900 (#4902) - Fix SSH tunnel gateway incorrectly binding to proxyBindAddr instead of bindAddr - This caused external connections to fail when proxyBindAddr was set to 127.0.0.1 - SSH tunnel gateway now correctly binds to bindAddr for external accessibility - Update Release.md with bug fix description Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- Release.md | 6 +++++- server/service.go | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Release.md b/Release.md index 7ee50ea07c9..9e1ce466a8e 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,7 @@ ## Features -* Support tokenSource for loading authentication tokens from files \ No newline at end of file +* Support tokenSource for loading authentication tokens from files + +## Fixes + +* Fix SSH tunnel gateway incorrectly binding to proxyBindAddr instead of bindAddr, which caused external connections to fail when proxyBindAddr was set to 127.0.0.1 diff --git a/server/service.go b/server/service.go index 514afb518e3..fad0e1432c8 100644 --- a/server/service.go +++ b/server/service.go @@ -262,7 +262,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { } if cfg.SSHTunnelGateway.BindPort > 0 { - sshGateway, err := ssh.NewGateway(cfg.SSHTunnelGateway, cfg.ProxyBindAddr, svr.sshTunnelListener) + sshGateway, err := ssh.NewGateway(cfg.SSHTunnelGateway, cfg.BindAddr, svr.sshTunnelListener) if err != nil { return nil, fmt.Errorf("create ssh gateway error: %v", err) } From dc3bc9182c403c897830c0366c720c691df75545 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 8 Aug 2025 22:28:17 +0800 Subject: [PATCH 269/444] update sponsor info (#4917) --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 38bafab4891..baf9c734cfd 100644 --- a/README.md +++ b/README.md @@ -13,19 +13,36 @@ frp is an open source project with its ongoing development made possible entirel

Gold Sponsors

+

+ + +
+ Warp, the intelligent terminal +
+ Available for macOS, Linux and Windows +
+

+
+ The complete IDE crafted for professional Go developers

+
+ Secure and Elastic Infrastructure for Running Your AI-Generated Code

+
+ The sovereign cloud that puts you in control +
+ An open source, self-hosted alternative to public clouds, built for data ownership and privacy

From 024e4f5f1dd0a408f588ce53eecbc0851613f134 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 10 Aug 2025 22:59:28 +0800 Subject: [PATCH 270/444] improve random TLS certificate generation (#4923) --- Release.md | 4 ++-- pkg/transport/tls.go | 36 +++++++++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/Release.md b/Release.md index 9e1ce466a8e..5b2724d80dd 100644 --- a/Release.md +++ b/Release.md @@ -1,7 +1,7 @@ ## Features -* Support tokenSource for loading authentication tokens from files +* Support tokenSource for loading authentication tokens from files. ## Fixes -* Fix SSH tunnel gateway incorrectly binding to proxyBindAddr instead of bindAddr, which caused external connections to fail when proxyBindAddr was set to 127.0.0.1 +* Fix SSH tunnel gateway incorrectly binding to proxyBindAddr instead of bindAddr, which caused external connections to fail when proxyBindAddr was set to 127.0.0.1. diff --git a/pkg/transport/tls.go b/pkg/transport/tls.go index 5bc75921cbd..e8d2bf483a5 100644 --- a/pkg/transport/tls.go +++ b/pkg/transport/tls.go @@ -22,6 +22,7 @@ import ( "encoding/pem" "math/big" "os" + "time" ) func newCustomTLSKeyPair(certfile, keyfile string) (*tls.Certificate, error) { @@ -32,12 +33,30 @@ func newCustomTLSKeyPair(certfile, keyfile string) (*tls.Certificate, error) { return &tlsCert, nil } -func newRandomTLSKeyPair() *tls.Certificate { +func newRandomTLSKeyPair() (*tls.Certificate, error) { key, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { - panic(err) + return nil, err + } + + // Generate a random positive serial number with 128 bits of entropy. + // RFC 5280 requires serial numbers to be positive integers (not zero). + serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) + serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) + if err != nil { + return nil, err + } + // Ensure serial number is positive (not zero) + if serialNumber.Sign() == 0 { + serialNumber = big.NewInt(1) + } + + template := x509.Certificate{ + SerialNumber: serialNumber, + NotBefore: time.Now().Add(-1 * time.Hour), + NotAfter: time.Now().Add(365 * 24 * time.Hour * 10), } - template := x509.Certificate{SerialNumber: big.NewInt(1)} + certDER, err := x509.CreateCertificate( rand.Reader, &template, @@ -45,16 +64,16 @@ func newRandomTLSKeyPair() *tls.Certificate { &key.PublicKey, key) if err != nil { - panic(err) + return nil, err } keyPEM := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key)}) certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certDER}) tlsCert, err := tls.X509KeyPair(certPEM, keyPEM) if err != nil { - panic(err) + return nil, err } - return &tlsCert + return &tlsCert, nil } // Only support one ca file to add @@ -76,7 +95,10 @@ func NewServerTLSConfig(certPath, keyPath, caPath string) (*tls.Config, error) { if certPath == "" || keyPath == "" { // server will generate tls conf by itself - cert := newRandomTLSKeyPair() + cert, err := newRandomTLSKeyPair() + if err != nil { + return nil, err + } base.Certificates = []tls.Certificate{*cert} } else { cert, err := newCustomTLSKeyPair(certPath, keyPath) From f795950742a9edb8174cf0cdf97e53eb49865914 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 10 Aug 2025 23:11:50 +0800 Subject: [PATCH 271/444] bump version to v0.64.0 (#4924) --- pkg/util/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 966a942fe62..c6497e145f6 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.63.0" +var version = "0.64.0" func Full() string { return version From 024c334d9dcf47ac4d69099c1ef658b6468d6b48 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 12 Aug 2025 01:48:26 +0800 Subject: [PATCH 272/444] Merge pull request #4928 from fatedier/xtcp improve context and polling logic in xtcp visitor --- client/visitor/xtcp.go | 49 ++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 99d25d8ac81..cb374b68e08 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -145,7 +145,7 @@ func (sv *XTCPVisitor) keepTunnelOpenWorker() { return case <-ticker.C: xl.Debugf("keepTunnelOpenWorker try to check tunnel...") - conn, err := sv.getTunnelConn() + conn, err := sv.getTunnelConn(sv.ctx) if err != nil { xl.Warnf("keepTunnelOpenWorker get tunnel connection error: %v", err) _ = sv.retryLimiter.Wait(sv.ctx) @@ -161,9 +161,9 @@ func (sv *XTCPVisitor) keepTunnelOpenWorker() { func (sv *XTCPVisitor) handleConn(userConn net.Conn) { xl := xlog.FromContextSafe(sv.ctx) - isConnTransfered := false + isConnTransferred := false defer func() { - if !isConnTransfered { + if !isConnTransferred { userConn.Close() } }() @@ -172,7 +172,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { // Open a tunnel connection to the server. If there is already a successful hole-punching connection, // it will be reused. Otherwise, it will block and wait for a successful hole-punching connection until timeout. - ctx := context.Background() + ctx := sv.ctx if sv.cfg.FallbackTo != "" { timeoutCtx, cancel := context.WithTimeout(ctx, time.Duration(sv.cfg.FallbackTimeoutMs)*time.Millisecond) defer cancel() @@ -191,7 +191,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { xl.Errorf("transfer connection to visitor %s error: %v", sv.cfg.FallbackTo, err) return } - isConnTransfered = true + isConnTransferred = true return } @@ -219,40 +219,37 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { // openTunnel will open a tunnel connection to the target server. func (sv *XTCPVisitor) openTunnel(ctx context.Context) (conn net.Conn, err error) { xl := xlog.FromContextSafe(sv.ctx) - ticker := time.NewTicker(500 * time.Millisecond) - defer ticker.Stop() + ctx, cancel := context.WithTimeout(ctx, 20*time.Second) + defer cancel() - timeoutC := time.After(20 * time.Second) - immediateTrigger := make(chan struct{}, 1) - defer close(immediateTrigger) - immediateTrigger <- struct{}{} + timer := time.NewTimer(0) + defer timer.Stop() for { select { case <-sv.ctx.Done(): return nil, sv.ctx.Err() case <-ctx.Done(): + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + return nil, fmt.Errorf("open tunnel timeout") + } return nil, ctx.Err() - case <-immediateTrigger: - conn, err = sv.getTunnelConn() - case <-ticker.C: - conn, err = sv.getTunnelConn() - case <-timeoutC: - return nil, fmt.Errorf("open tunnel timeout") - } - - if err != nil { - if err != ErrNoTunnelSession { - xl.Warnf("get tunnel connection error: %v", err) + case <-timer.C: + conn, err = sv.getTunnelConn(ctx) + if err != nil { + if !errors.Is(err, ErrNoTunnelSession) { + xl.Warnf("get tunnel connection error: %v", err) + } + timer.Reset(500 * time.Millisecond) + continue } - continue + return conn, nil } - return conn, nil } } -func (sv *XTCPVisitor) getTunnelConn() (net.Conn, error) { - conn, err := sv.session.OpenConn(sv.ctx) +func (sv *XTCPVisitor) getTunnelConn(ctx context.Context) (net.Conn, error) { + conn, err := sv.session.OpenConn(ctx) if err == nil { return conn, nil } From 14253afe2f5deb66cddbd9a0aac37dd31ace7d29 Mon Sep 17 00:00:00 2001 From: immomo808 <4128219+immomo808@users.noreply.github.com> Date: Fri, 15 Aug 2025 17:11:06 +0900 Subject: [PATCH 273/444] remove quotes (#4938) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index baf9c734cfd..9a1db495ebc 100644 --- a/README.md +++ b/README.md @@ -519,7 +519,7 @@ name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 -remotePort = "{{ .Envs.FRP_SSH_REMOTE_PORT }}" +remotePort = {{ .Envs.FRP_SSH_REMOTE_PORT }} ``` With the config above, variables can be passed into `frpc` program like this: From 80d3f332e184331172f94567b6f5f5606aa4fe18 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 25 Aug 2025 15:52:52 +0800 Subject: [PATCH 274/444] xtcp: add configuration to disable assisted addresses in NAT traversal (#4951) --- Release.md | 6 +----- client/proxy/xtcp.go | 10 +++++++++- client/visitor/xtcp.go | 10 +++++++++- conf/frpc_full_example.toml | 15 +++++++++++++++ pkg/config/v1/common.go | 8 ++++++++ pkg/config/v1/proxy.go | 3 +++ pkg/config/v1/visitor.go | 3 +++ pkg/nathole/nathole.go | 19 +++++++++++++++---- 8 files changed, 63 insertions(+), 11 deletions(-) diff --git a/Release.md b/Release.md index 5b2724d80dd..e0f5084e9ee 100644 --- a/Release.md +++ b/Release.md @@ -1,7 +1,3 @@ ## Features -* Support tokenSource for loading authentication tokens from files. - -## Fixes - -* Fix SSH tunnel gateway incorrectly binding to proxyBindAddr instead of bindAddr, which caused external connections to fail when proxyBindAddr was set to 127.0.0.1. +* Add NAT traversal configuration options for XTCP proxies and visitors. Support disabling assisted addresses to avoid using slow VPN connections during NAT hole punching. diff --git a/client/proxy/xtcp.go b/client/proxy/xtcp.go index 31f9ac89734..6e1deac39d3 100644 --- a/client/proxy/xtcp.go +++ b/client/proxy/xtcp.go @@ -64,11 +64,19 @@ func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkC } xl.Tracef("nathole prepare start") - prepareResult, err := nathole.Prepare([]string{pxy.clientCfg.NatHoleSTUNServer}) + + // Prepare NAT traversal options + var opts nathole.PrepareOptions + if pxy.cfg.NatTraversal != nil && pxy.cfg.NatTraversal.DisableAssistedAddrs { + opts.DisableAssistedAddrs = true + } + + prepareResult, err := nathole.Prepare([]string{pxy.clientCfg.NatHoleSTUNServer}, opts) if err != nil { xl.Warnf("nathole prepare error: %v", err) return } + xl.Infof("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", prepareResult.NatType, prepareResult.Behavior, prepareResult.Addrs, prepareResult.AssistedAddrs) defer prepareResult.ListenConn.Close() diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index cb374b68e08..353577db659 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -276,11 +276,19 @@ func (sv *XTCPVisitor) makeNatHole() { } xl.Tracef("nathole prepare start") - prepareResult, err := nathole.Prepare([]string{sv.clientCfg.NatHoleSTUNServer}) + + // Prepare NAT traversal options + var opts nathole.PrepareOptions + if sv.cfg.NatTraversal != nil && sv.cfg.NatTraversal.DisableAssistedAddrs { + opts.DisableAssistedAddrs = true + } + + prepareResult, err := nathole.Prepare([]string{sv.clientCfg.NatHoleSTUNServer}, opts) if err != nil { xl.Warnf("nathole prepare error: %v", err) return } + xl.Infof("nathole prepare success, nat type: %s, behavior: %s, addresses: %v, assistedAddresses: %v", prepareResult.NatType, prepareResult.Behavior, prepareResult.Addrs, prepareResult.AssistedAddrs) diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index d8d93a3fe25..dfae95734d3 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -372,6 +372,14 @@ localPort = 22 # Otherwise, visitors from same user can connect. '*' means allow all users. allowUsers = ["user1", "user2"] +# NAT traversal configuration (optional) +[proxies.natTraversal] +# Disable the use of local network interfaces (assisted addresses) for NAT traversal. +# When enabled, only STUN-discovered public addresses will be used. +# This can improve performance when you have slow VPN connections. +# Default: false +disableAssistedAddrs = false + [[proxies]] name = "vnet-server" type = "stcp" @@ -411,6 +419,13 @@ minRetryInterval = 90 # fallbackTo = "stcp_visitor" # fallbackTimeoutMs = 500 +# NAT traversal configuration (optional) +[visitors.natTraversal] +# Disable the use of local network interfaces (assisted addresses) for NAT traversal. +# When enabled, only STUN-discovered public addresses will be used. +# Default: false +disableAssistedAddrs = false + [[visitors]] name = "vnet-visitor" type = "stcp" diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go index ddb23356823..38965a3cbcc 100644 --- a/pkg/config/v1/common.go +++ b/pkg/config/v1/common.go @@ -96,6 +96,14 @@ type TLSConfig struct { ServerName string `json:"serverName,omitempty"` } +// NatTraversalConfig defines configuration options for NAT traversal +type NatTraversalConfig struct { + // DisableAssistedAddrs disables the use of local network interfaces + // for assisted connections during NAT traversal. When enabled, + // only STUN-discovered public addresses will be used. + DisableAssistedAddrs bool `json:"disableAssistedAddrs,omitempty"` +} + type LogConfig struct { // This is destination where frp should write the logs. // If "console" is used, logs will be printed to stdout, otherwise, diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index 34bd712592c..37701b6d785 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -422,6 +422,9 @@ type XTCPProxyConfig struct { Secretkey string `json:"secretKey,omitempty"` AllowUsers []string `json:"allowUsers,omitempty"` + + // NatTraversal configuration for NAT traversal + NatTraversal *NatTraversalConfig `json:"natTraversal,omitempty"` } func (c *XTCPProxyConfig) MarshalToMsg(m *msg.NewProxy) { diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go index f00391c34e4..7629875a6f2 100644 --- a/pkg/config/v1/visitor.go +++ b/pkg/config/v1/visitor.go @@ -160,6 +160,9 @@ type XTCPVisitorConfig struct { MinRetryInterval int `json:"minRetryInterval,omitempty"` FallbackTo string `json:"fallbackTo,omitempty"` FallbackTimeoutMs int `json:"fallbackTimeoutMs,omitempty"` + + // NatTraversal configuration for NAT traversal + NatTraversal *NatTraversalConfig `json:"natTraversal,omitempty"` } func (c *XTCPVisitorConfig) Complete(g *ClientCommonConfig) { diff --git a/pkg/nathole/nathole.go b/pkg/nathole/nathole.go index bdd0ee83cb2..72522fac0ed 100644 --- a/pkg/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -68,6 +68,13 @@ var ( DetectRoleReceiver = "receiver" ) +// PrepareOptions defines options for NAT traversal preparation +type PrepareOptions struct { + // DisableAssistedAddrs disables the use of local network interfaces + // for assisted connections during NAT traversal + DisableAssistedAddrs bool +} + type PrepareResult struct { Addrs []string AssistedAddrs []string @@ -108,7 +115,7 @@ func PreCheck( } // Prepare is used to do some preparation work before penetration. -func Prepare(stunServers []string) (*PrepareResult, error) { +func Prepare(stunServers []string, opts PrepareOptions) (*PrepareResult, error) { // discover for Nat type addrs, localAddr, err := Discover(stunServers, "") if err != nil { @@ -133,9 +140,13 @@ func Prepare(stunServers []string) (*PrepareResult, error) { return nil, fmt.Errorf("listen local udp addr error: %v", err) } - assistedAddrs := make([]string, 0, len(localIPs)) - for _, ip := range localIPs { - assistedAddrs = append(assistedAddrs, net.JoinHostPort(ip, strconv.Itoa(laddr.Port))) + // Apply NAT traversal options + var assistedAddrs []string + if !opts.DisableAssistedAddrs { + assistedAddrs = make([]string, 0, len(localIPs)) + for _, ip := range localIPs { + assistedAddrs = append(assistedAddrs, net.JoinHostPort(ip, strconv.Itoa(laddr.Port))) + } } return &PrepareResult{ Addrs: addrs, From 610e5ed4798db5452cc0b62bf4a89ab50d1ee65d Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 25 Aug 2025 17:52:58 +0800 Subject: [PATCH 275/444] improve yamux logging (#4952) --- client/connector.go | 4 +-- client/control.go | 2 ++ go.mod | 2 +- go.sum | 4 +-- pkg/util/xlog/log_writer.go | 65 +++++++++++++++++++++++++++++++++++++ server/service.go | 4 +-- 6 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 pkg/util/xlog/log_writer.go diff --git a/client/connector.go b/client/connector.go index ab7c2fdda42..03d7fc29d97 100644 --- a/client/connector.go +++ b/client/connector.go @@ -17,7 +17,6 @@ package client import ( "context" "crypto/tls" - "io" "net" "strconv" "strings" @@ -115,7 +114,8 @@ func (c *defaultConnectorImpl) Open() error { fmuxCfg := fmux.DefaultConfig() fmuxCfg.KeepAliveInterval = time.Duration(c.cfg.Transport.TCPMuxKeepaliveInterval) * time.Second - fmuxCfg.LogOutput = io.Discard + // Use trace level for yamux logs + fmuxCfg.LogOutput = xlog.NewTraceWriter(xl) fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Client(conn, fmuxCfg) if err != nil { diff --git a/client/control.go b/client/control.go index 0dd70b8c72f..4bd6a2f737a 100644 --- a/client/control.go +++ b/client/control.go @@ -276,10 +276,12 @@ func (ctl *Control) heartbeatWorker() { } func (ctl *Control) worker() { + xl := ctl.xl go ctl.heartbeatWorker() go ctl.msgDispatcher.Run() <-ctl.msgDispatcher.Done() + xl.Debugf("control message dispatcher exited") ctl.closeSession() ctl.pm.Close() diff --git a/go.mod b/go.mod index 46e753e2a14..06bfb6ecc0e 100644 --- a/go.mod +++ b/go.mod @@ -82,4 +82,4 @@ require ( ) // TODO(fatedier): Temporary use the modified version, update to the official version after merging into the official repository. -replace github.com/hashicorp/yamux => github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d +replace github.com/hashicorp/yamux => github.com/fatedier/yamux v0.0.0-20250825093530-d0154be01cd6 diff --git a/go.sum b/go.sum index bd044c39cbb..a411ff30581 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatedier/golib v0.5.1 h1:hcKAnaw5mdI/1KWRGejxR+i1Hn/NvbY5UsMKDr7o13M= github.com/fatedier/golib v0.5.1/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ= -github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d h1:ynk1ra0RUqDWQfvFi5KtMiSobkVQ3cNc0ODb8CfIETo= -github.com/fatedier/yamux v0.0.0-20230628132301-7aca4898904d/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/fatedier/yamux v0.0.0-20250825093530-d0154be01cd6 h1:u92UUy6FURPmNsMBUuongRWC0rBqN6gd01Dzu+D21NE= +github.com/fatedier/yamux v0.0.0-20250825093530-d0154be01cd6/go.mod h1:c5/tk6G0dSpXGzJN7Wk1OEie8grdSJAmeawId9Zvd34= github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= diff --git a/pkg/util/xlog/log_writer.go b/pkg/util/xlog/log_writer.go new file mode 100644 index 00000000000..3fff73240a8 --- /dev/null +++ b/pkg/util/xlog/log_writer.go @@ -0,0 +1,65 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package xlog + +import "strings" + +// LogWriter forwards writes to frp's logger at configurable level. +// It is safe for concurrent use as long as the underlying Logger is thread-safe. +type LogWriter struct { + xl *Logger + logFunc func(string) +} + +func (w LogWriter) Write(p []byte) (n int, err error) { + msg := strings.TrimSpace(string(p)) + w.logFunc(msg) + return len(p), nil +} + +func NewTraceWriter(xl *Logger) LogWriter { + return LogWriter{ + xl: xl, + logFunc: func(msg string) { xl.Tracef("%s", msg) }, + } +} + +func NewDebugWriter(xl *Logger) LogWriter { + return LogWriter{ + xl: xl, + logFunc: func(msg string) { xl.Debugf("%s", msg) }, + } +} + +func NewInfoWriter(xl *Logger) LogWriter { + return LogWriter{ + xl: xl, + logFunc: func(msg string) { xl.Infof("%s", msg) }, + } +} + +func NewWarnWriter(xl *Logger) LogWriter { + return LogWriter{ + xl: xl, + logFunc: func(msg string) { xl.Warnf("%s", msg) }, + } +} + +func NewErrorWriter(xl *Logger) LogWriter { + return LogWriter{ + xl: xl, + logFunc: func(msg string) { xl.Errorf("%s", msg) }, + } +} diff --git a/server/service.go b/server/service.go index fad0e1432c8..7ca80dc89ba 100644 --- a/server/service.go +++ b/server/service.go @@ -19,7 +19,6 @@ import ( "context" "crypto/tls" "fmt" - "io" "net" "net/http" "os" @@ -516,7 +515,8 @@ func (svr *Service) HandleListener(l net.Listener, internal bool) { if lo.FromPtr(svr.cfg.Transport.TCPMux) && !internal { fmuxCfg := fmux.DefaultConfig() fmuxCfg.KeepAliveInterval = time.Duration(svr.cfg.Transport.TCPMuxKeepaliveInterval) * time.Second - fmuxCfg.LogOutput = io.Discard + // Use trace level for yamux logs + fmuxCfg.LogOutput = xlog.NewTraceWriter(xlog.FromContextSafe(ctx)) fmuxCfg.MaxStreamWindowSize = 6 * 1024 * 1024 session, err := fmux.Server(frpConn, fmuxCfg) if err != nil { From 604700cea5e56b0a607f3e243bd85850824b495b Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 27 Aug 2025 11:07:18 +0800 Subject: [PATCH 276/444] update README (#4957) --- README.md | 2 +- README_zh.md | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a1db495ebc..c1afcae0477 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ frp is an open source project with its ongoing development made possible entirel
- Warp, the intelligent terminal + Warp, built for collaborating with AI Agents
Available for macOS, Linux and Windows
diff --git a/README_zh.md b/README_zh.md index d911e15230f..c21be1c0356 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,19 +15,36 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

Gold Sponsors

+

+ + +
+ Warp, built for collaborating with AI Agents +
+ Available for macOS, Linux and Windows +
+

+
+ The complete IDE crafted for professional Go developers

+
+ Secure and Elastic Infrastructure for Running Your AI-Generated Code

+
+ The sovereign cloud that puts you in control +
+ An open source, self-hosted alternative to public clouds, built for data ownership and privacy

From 0a798a7a69adf3ccad352644b01c97763567be70 Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 27 Aug 2025 15:10:36 +0800 Subject: [PATCH 277/444] update go version to 1.24 (#4960) --- .circleci/config.yml | 2 +- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/goreleaser.yml | 2 +- dockerfiles/Dockerfile-for-frpc | 2 +- dockerfiles/Dockerfile-for-frps | 2 +- go.mod | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ede1f5fef64..017d75c9e73 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: go-version-latest: docker: - - image: cimg/go:1.23-node + - image: cimg/go:1.24-node resource_class: large steps: - checkout diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index d4faac70a7e..eb631c240b3 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.23' + go-version: '1.24' cache: false - name: golangci-lint uses: golangci/golangci-lint-action@v8 diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index d55913fda6c..652d156ce59 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -15,7 +15,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: '1.23' + go-version: '1.24' - name: Make All run: | diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index d8d4437ad22..7d77a26de3d 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,4 +1,4 @@ -FROM golang:1.23 AS building +FROM golang:1.24 AS building COPY . /building WORKDIR /building diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps index 00fb51a89d8..489ce0f5282 100644 --- a/dockerfiles/Dockerfile-for-frps +++ b/dockerfiles/Dockerfile-for-frps @@ -1,4 +1,4 @@ -FROM golang:1.23 AS building +FROM golang:1.24 AS building COPY . /building WORKDIR /building diff --git a/go.mod b/go.mod index 06bfb6ecc0e..af633af4135 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fatedier/frp -go 1.23.0 +go 1.24.0 require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 From 7cfa546b55ee485240c3a713b01a4923ee6b714c Mon Sep 17 00:00:00 2001 From: Charlie Blevins Date: Mon, 22 Sep 2025 11:18:49 -0500 Subject: [PATCH 278/444] add proxy name label to the proxy_count prometheus metric (#4985) * add proxy name label to the proxy_count metric * undo label addition in favor of a new metric - this change should not break existing queries * also register this new metric * add type label to proxy_counts_detailed * Update pkg/metrics/prometheus/server.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- pkg/metrics/prometheus/server.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/pkg/metrics/prometheus/server.go b/pkg/metrics/prometheus/server.go index 56dea6e82fe..a99bb1d5efe 100644 --- a/pkg/metrics/prometheus/server.go +++ b/pkg/metrics/prometheus/server.go @@ -14,11 +14,12 @@ const ( var ServerMetrics metrics.ServerMetrics = newServerMetrics() type serverMetrics struct { - clientCount prometheus.Gauge - proxyCount *prometheus.GaugeVec - connectionCount *prometheus.GaugeVec - trafficIn *prometheus.CounterVec - trafficOut *prometheus.CounterVec + clientCount prometheus.Gauge + proxyCount *prometheus.GaugeVec + proxyCountDetailed *prometheus.GaugeVec + connectionCount *prometheus.GaugeVec + trafficIn *prometheus.CounterVec + trafficOut *prometheus.CounterVec } func (m *serverMetrics) NewClient() { @@ -29,12 +30,14 @@ func (m *serverMetrics) CloseClient() { m.clientCount.Dec() } -func (m *serverMetrics) NewProxy(_ string, proxyType string) { +func (m *serverMetrics) NewProxy(name string, proxyType string) { m.proxyCount.WithLabelValues(proxyType).Inc() + m.proxyCountDetailed.WithLabelValues(proxyType, name).Inc() } -func (m *serverMetrics) CloseProxy(_ string, proxyType string) { +func (m *serverMetrics) CloseProxy(name string, proxyType string) { m.proxyCount.WithLabelValues(proxyType).Dec() + m.proxyCountDetailed.WithLabelValues(proxyType, name).Dec() } func (m *serverMetrics) OpenConnection(name string, proxyType string) { @@ -67,6 +70,12 @@ func newServerMetrics() *serverMetrics { Name: "proxy_counts", Help: "The current proxy counts", }, []string{"type"}), + proxyCountDetailed: prometheus.NewGaugeVec(prometheus.GaugeOpts{ + Namespace: namespace, + Subsystem: serverSubsystem, + Name: "proxy_counts_detailed", + Help: "The current number of proxies grouped by type and name", + }, []string{"type", "name"}), connectionCount: prometheus.NewGaugeVec(prometheus.GaugeOpts{ Namespace: namespace, Subsystem: serverSubsystem, @@ -88,6 +97,7 @@ func newServerMetrics() *serverMetrics { } prometheus.MustRegister(m.clientCount) prometheus.MustRegister(m.proxyCount) + prometheus.MustRegister(m.proxyCountDetailed) prometheus.MustRegister(m.connectionCount) prometheus.MustRegister(m.trafficIn) prometheus.MustRegister(m.trafficOut) From abf4942e8a48dacf3689982d41c23a0bfc3470a9 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 25 Sep 2025 10:19:19 +0800 Subject: [PATCH 279/444] auth: enhance OIDC client with TLS and proxy configuration options (#4990) --- Release.md | 1 + client/service.go | 8 ++++- conf/frpc_full_example.toml | 14 ++++++++ pkg/auth/auth.go | 11 +++--- pkg/auth/oidc.go | 71 +++++++++++++++++++++++++++++++++++-- pkg/config/v1/client.go | 11 ++++++ 6 files changed, 108 insertions(+), 8 deletions(-) diff --git a/Release.md b/Release.md index e0f5084e9ee..742c9847aec 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,4 @@ ## Features * Add NAT traversal configuration options for XTCP proxies and visitors. Support disabling assisted addresses to avoid using slow VPN connections during NAT hole punching. +* Enhanced OIDC client configuration with support for custom TLS certificate verification and proxy settings. Added `trustedCaFile`, `insecureSkipVerify`, and `proxyURL` options for OIDC token endpoint connections. diff --git a/client/service.go b/client/service.go index 9e1833b972c..f906e4d0a82 100644 --- a/client/service.go +++ b/client/service.go @@ -149,9 +149,15 @@ func NewService(options ServiceOptions) (*Service, error) { } webServer = ws } + + authSetter, err := auth.NewAuthSetter(options.Common.Auth) + if err != nil { + return nil, err + } + s := &Service{ ctx: context.Background(), - authSetter: auth.NewAuthSetter(options.Common.Auth), + authSetter: authSetter, webServer: webServer, common: options.Common, configFilePath: options.ConfigFilePath, diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index dfae95734d3..6b86907e459 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -55,6 +55,20 @@ auth.token = "12345678" # auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/" # auth.oidc.additionalEndpointParams.var1 = "foobar" +# OIDC TLS and proxy configuration +# Specify a custom CA certificate file for verifying the OIDC token endpoint's TLS certificate. +# This is useful when the OIDC provider uses a self-signed certificate or a custom CA. +# auth.oidc.trustedCaFile = "/path/to/ca.crt" + +# Skip TLS certificate verification for the OIDC token endpoint. +# INSECURE: Only use this for debugging purposes, not recommended for production. +# auth.oidc.insecureSkipVerify = false + +# Specify a proxy server for OIDC token endpoint connections. +# Supports http, https, socks5, and socks5h proxy protocols. +# If not specified, no proxy is used for OIDC connections. +# auth.oidc.proxyURL = "http://proxy.example.com:8080" + # Set admin address for control frpc's action by http api such as reload webServer.addr = "127.0.0.1" webServer.port = 7400 diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go index ae706986708..b954fc80eaa 100644 --- a/pkg/auth/auth.go +++ b/pkg/auth/auth.go @@ -27,16 +27,19 @@ type Setter interface { SetNewWorkConn(*msg.NewWorkConn) error } -func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter) { +func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter, err error) { switch cfg.Method { case v1.AuthMethodToken: authProvider = NewTokenAuth(cfg.AdditionalScopes, cfg.Token) case v1.AuthMethodOIDC: - authProvider = NewOidcAuthSetter(cfg.AdditionalScopes, cfg.OIDC) + authProvider, err = NewOidcAuthSetter(cfg.AdditionalScopes, cfg.OIDC) + if err != nil { + return nil, err + } default: - panic(fmt.Sprintf("wrong method: '%s'", cfg.Method)) + return nil, fmt.Errorf("unsupported auth method: %s", cfg.Method) } - return authProvider + return authProvider, nil } type Verifier interface { diff --git a/pkg/auth/oidc.go b/pkg/auth/oidc.go index 40ce060faa9..c5f636402c8 100644 --- a/pkg/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -16,23 +16,72 @@ package auth import ( "context" + "crypto/tls" + "crypto/x509" "fmt" + "net/http" + "net/url" + "os" "slices" "github.com/coreos/go-oidc/v3/oidc" + "golang.org/x/oauth2" "golang.org/x/oauth2/clientcredentials" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" ) +// createOIDCHTTPClient creates an HTTP client with custom TLS and proxy configuration for OIDC token requests +func createOIDCHTTPClient(trustedCAFile string, insecureSkipVerify bool, proxyURL string) (*http.Client, error) { + // Clone the default transport to get all reasonable defaults + transport := http.DefaultTransport.(*http.Transport).Clone() + + // Configure TLS settings + if trustedCAFile != "" || insecureSkipVerify { + tlsConfig := &tls.Config{ + InsecureSkipVerify: insecureSkipVerify, + } + + if trustedCAFile != "" && !insecureSkipVerify { + caCert, err := os.ReadFile(trustedCAFile) + if err != nil { + return nil, fmt.Errorf("failed to read OIDC CA certificate file %q: %w", trustedCAFile, err) + } + + caCertPool := x509.NewCertPool() + if !caCertPool.AppendCertsFromPEM(caCert) { + return nil, fmt.Errorf("failed to parse OIDC CA certificate from file %q", trustedCAFile) + } + + tlsConfig.RootCAs = caCertPool + } + transport.TLSClientConfig = tlsConfig + } + + // Configure proxy settings + if proxyURL != "" { + parsedURL, err := url.Parse(proxyURL) + if err != nil { + return nil, fmt.Errorf("failed to parse OIDC proxy URL %q: %w", proxyURL, err) + } + transport.Proxy = http.ProxyURL(parsedURL) + } else { + // Explicitly disable proxy to override DefaultTransport's ProxyFromEnvironment + transport.Proxy = nil + } + + return &http.Client{Transport: transport}, nil +} + type OidcAuthProvider struct { additionalAuthScopes []v1.AuthScope tokenGenerator *clientcredentials.Config + httpClient *http.Client } -func NewOidcAuthSetter(additionalAuthScopes []v1.AuthScope, cfg v1.AuthOIDCClientConfig) *OidcAuthProvider { +func NewOidcAuthSetter(additionalAuthScopes []v1.AuthScope, cfg v1.AuthOIDCClientConfig) (*OidcAuthProvider, error) { eps := make(map[string][]string) for k, v := range cfg.AdditionalEndpointParams { eps[k] = []string{v} @@ -50,14 +99,30 @@ func NewOidcAuthSetter(additionalAuthScopes []v1.AuthScope, cfg v1.AuthOIDCClien EndpointParams: eps, } + // Create custom HTTP client if needed + var httpClient *http.Client + if cfg.TrustedCaFile != "" || cfg.InsecureSkipVerify || cfg.ProxyURL != "" { + var err error + httpClient, err = createOIDCHTTPClient(cfg.TrustedCaFile, cfg.InsecureSkipVerify, cfg.ProxyURL) + if err != nil { + return nil, fmt.Errorf("failed to create OIDC HTTP client: %w", err) + } + } + return &OidcAuthProvider{ additionalAuthScopes: additionalAuthScopes, tokenGenerator: tokenGenerator, - } + httpClient: httpClient, + }, nil } func (auth *OidcAuthProvider) generateAccessToken() (accessToken string, err error) { - tokenObj, err := auth.tokenGenerator.Token(context.Background()) + ctx := context.Background() + if auth.httpClient != nil { + ctx = context.WithValue(ctx, oauth2.HTTPClient, auth.httpClient) + } + + tokenObj, err := auth.tokenGenerator.Token(ctx) if err != nil { return "", fmt.Errorf("couldn't generate OIDC token for login: %v", err) } diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index a830df994a5..c6cf97a69be 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -228,6 +228,17 @@ type AuthOIDCClientConfig struct { // AdditionalEndpointParams specifies additional parameters to be sent // this field will be transfer to map[string][]string in OIDC token generator. AdditionalEndpointParams map[string]string `json:"additionalEndpointParams,omitempty"` + + // TrustedCaFile specifies the path to a custom CA certificate file + // for verifying the OIDC token endpoint's TLS certificate. + TrustedCaFile string `json:"trustedCaFile,omitempty"` + // InsecureSkipVerify disables TLS certificate verification for the + // OIDC token endpoint. Only use this for debugging, not recommended for production. + InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"` + // ProxyURL specifies a proxy to use when connecting to the OIDC token endpoint. + // Supports http, https, socks5, and socks5h proxy protocols. + // If empty, no proxy is used for OIDC connections. + ProxyURL string `json:"proxyURL,omitempty"` } type VirtualNetConfig struct { From 6561107945b8bbfaccfa2dc0beab0444ce6a1afe Mon Sep 17 00:00:00 2001 From: juejinyuxitu Date: Thu, 25 Sep 2025 16:47:33 +0800 Subject: [PATCH 280/444] chore: fix struct field name in comment (#4993) Signed-off-by: juejinyuxitu --- pkg/config/v1/common.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go index 38965a3cbcc..8989855485b 100644 --- a/pkg/config/v1/common.go +++ b/pkg/config/v1/common.go @@ -85,9 +85,9 @@ func (c *WebServerConfig) Complete() { } type TLSConfig struct { - // CertPath specifies the path of the cert file that client will load. + // CertFile specifies the path of the cert file that client will load. CertFile string `json:"certFile,omitempty"` - // KeyPath specifies the path of the secret key file that client will load. + // KeyFile specifies the path of the secret key file that client will load. KeyFile string `json:"keyFile,omitempty"` // TrustedCaFile specifies the path of the trusted ca file that will load. TrustedCaFile string `json:"trustedCaFile,omitempty"` From b642a6323cf504ed555cdb984cc1ce731cfba42f Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 25 Sep 2025 16:50:14 +0800 Subject: [PATCH 281/444] update sponsors info (#4997) --- README.md | 7 +++++++ README_zh.md | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/README.md b/README.md index c1afcae0477..00a3498cb63 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,13 @@ frp is an open source project with its ongoing development made possible entirel

Gold Sponsors

+

+ + Recall.ai - API for meeting recordings
+
+ If you're looking for a meeting recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. +
+

diff --git a/README_zh.md b/README_zh.md index c21be1c0356..ea63d7261cb 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,6 +15,13 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

Gold Sponsors

+

+ + Recall.ai - API for meeting recordings
+
+ If you're looking for a meeting recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. +
+

From b5e90c03a1d578b9cf5205cc619dd1570ef46a25 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 25 Sep 2025 20:11:17 +0800 Subject: [PATCH 282/444] bump version to v0.65.0 and update release notes (#4998) --- Release.md | 1 + pkg/util/version/version.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Release.md b/Release.md index 742c9847aec..2ea047fa5de 100644 --- a/Release.md +++ b/Release.md @@ -2,3 +2,4 @@ * Add NAT traversal configuration options for XTCP proxies and visitors. Support disabling assisted addresses to avoid using slow VPN connections during NAT hole punching. * Enhanced OIDC client configuration with support for custom TLS certificate verification and proxy settings. Added `trustedCaFile`, `insecureSkipVerify`, and `proxyURL` options for OIDC token endpoint connections. +* Added detailed Prometheus metrics with `proxy_counts_detailed` metric that includes both proxy type and proxy name labels, enabling monitoring of individual proxy connections instead of just aggregate counts. diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index c6497e145f6..0f4ec433898 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.64.0" +var version = "0.65.0" func Full() string { return version From e382676659cc8d5974ea2e3fa3c4fb94eda1fb76 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 26 Sep 2025 12:26:08 +0800 Subject: [PATCH 283/444] update README (#5001) --- README.md | 16 +++++++++------- README_zh.md | 16 +++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 00a3498cb63..07b14473f9d 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,15 @@ frp is an open source project with its ongoing development made possible entirel

Gold Sponsors

-

- - Recall.ai - API for meeting recordings
-
- If you're looking for a meeting recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. -
-

+
+ +## Recall.ai - API for meeting recordings + +If you're looking for a meeting recording API, consider checking out [Recall.ai](https://www.recall.ai/?utm_source=github&utm_medium=sponsorship&utm_campaign=fatedier-frp), + +an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. + +

diff --git a/README_zh.md b/README_zh.md index ea63d7261cb..174a648063d 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,13 +15,15 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

Gold Sponsors

-

- - Recall.ai - API for meeting recordings
-
- If you're looking for a meeting recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. -
-

+
+ +## Recall.ai - API for meeting recordings + +If you're looking for a meeting recording API, consider checking out [Recall.ai](https://www.recall.ai/?utm_source=github&utm_medium=sponsorship&utm_campaign=fatedier-frp), + +an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. + +

From ee3cc4b14ea2f8c9581fa06b7151593b94f4ddcc Mon Sep 17 00:00:00 2001 From: Zachary Whaley Date: Thu, 16 Oct 2025 21:53:43 -0500 Subject: [PATCH 284/444] Fix CloseNotifyConn.Close function (#5022) The CloseNotifyConn.Close() function calls itself if the closeFlag is equal to 0 which would mean it would immediately swap the closeFlag value to 1 and never call closeFn. It is unclear what the intent of this call to cc.Close() was but I assume it was meant to be a call to close the Conn object instead. --- pkg/util/net/conn.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index 20468f1b8c5..6946b1c2f14 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -149,7 +149,7 @@ func WrapCloseNotifyConn(c net.Conn, closeFn func()) net.Conn { func (cc *CloseNotifyConn) Close() (err error) { pflag := atomic.SwapInt32(&cc.closeFlag, 1) if pflag == 0 { - err = cc.Close() + err = cc.Conn.Close() if cc.closeFn != nil { cc.closeFn() } From 2def23bb0b506efd0ed66c8aaa73abe0d631d48f Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 28 Oct 2025 15:44:03 +0800 Subject: [PATCH 285/444] update sponsor (#5030) --- README.md | 9 +++++++++ README_zh.md | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/README.md b/README.md index 07b14473f9d..fc822a0ea8c 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,15 @@ If you're looking for a meeting recording API, consider checking out [Recall.ai] an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more.

+

+ + +
+ Requestly - Free & Open-Source alternative to Postman +
+ All-in-one platform to Test, Mock and Intercept APIs. +
+

diff --git a/README_zh.md b/README_zh.md index 174a648063d..d3ec8aafbe7 100644 --- a/README_zh.md +++ b/README_zh.md @@ -24,6 +24,15 @@ If you're looking for a meeting recording API, consider checking out [Recall.ai] an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more.

+

+ + +
+ Requestly - Free & Open-Source alternative to Postman +
+ All-in-one platform to Test, Mock and Intercept APIs. +
+

From 469097a54971a3f1026ceb32c440d618da950e2d Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 28 Oct 2025 16:08:29 +0800 Subject: [PATCH 286/444] update sponsor pic (#5031) --- doc/pic/sponsor_daytona.png | Bin 42315 -> 14455 bytes doc/pic/sponsor_lokal.png | Bin 56387 -> 0 bytes doc/pic/sponsor_workos.png | Bin 37517 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/pic/sponsor_lokal.png delete mode 100644 doc/pic/sponsor_workos.png diff --git a/doc/pic/sponsor_daytona.png b/doc/pic/sponsor_daytona.png index a5271cc9502b575014fb52ba55cfa2ef0d41eb72..e36b6bba4aff4a5396ef46a09023e97b7e107673 100644 GIT binary patch literal 14455 zcmbVyWl$V2*Y2{oFYd576pBO9vb#kVDNd2%?k)vNSzvML;_mM51&S3dT4<31#i6*i z=vr-dpy|u zi_ko^6k&kcN&5YN88!`79r>rHr=z2zm6e~Pqhrl2E!jD_;o*_)9-eyohLTb;U{)?t zQqlkozySatj;16B)p@scxCB)Ono|#(hc0nayR?w$=YICs>@;d7a^_F}?NRVz

1d zS^t+WjU+j;j)%uOcNgd6&+hOD`M)mzduO(2K1B%rmZ?XN28@`y+`|Lem9Q~`xL#`~ zf+EpbnCqFrq`=<{E5-jn@yybHA+{V0>?ZVD2?i#LM1BrOz;OoA68_OPI_RLhUPlOk$4wmHE}NXGv=~1BAnD_LEejs#Z%sbNlI_Gl@@X=VecmYv zY}8PzYHZs*+w1W(uIrTU2twyByJ}o~H{H=paxDP97!$)L9p@;T?6^xxLJXouedTz- z|A<(@U}J=5Cp>0EK-7Sw#BA3uJI{CdyAHT;My|0*v#tV{`g<^n_5NH07dw4Bl{Y? zMdMPl)$$0>xy@!6^v9wVmjUz?iqL?$%5uOi3(aeqrQAQ=f%XKx`J9wCoZ;Id$th zV;YfQWr2xwITDW!HsX&;G!skE=TH#E3V}tf_Jo3>Jz|8s)tw#)P3DX|2aMWyQVn51 z$&;!835y5$nP9k!TMBlhYM(+L5%j#jB>6e-{5SXf|D;`%5#^=RFbOCK11|RV$4Cem z2jzq(jvowmqywM$n?J3d4$at(eSu{WK^H_JAKpvSGQ~4qh0QVblzA!ZTS8HyClHQH zZ)rRi88y*F^EgcCbg-&~AIEXo&!%`$N(_Uk;dh+pS5+os#wveq7;zeNBlcpgCK+G; zQ6MGwm<0jNCwqEgdARxZp*Wu5g_MW6b3-@|CLu5RsI_2ZK&S^L*!GDH!m%GNUBD*q zbO{5M2)rdi30CoieISvEoalS29HN)-4>dX-K|5zQikITSO)Y31>8D#`j#SnUC_w+~ z!l#(>rY|im`SUavzD$TFk=d>5KFZaDKXM}g>c3=}_b2(~?r~Mq+ozQ6JiM-0MzPuwO{&M^u{~Q+~{Gz|S`OOsew!o{o2> z+_fw$%d`Q~vLnIG=WS46Fk$XM!ehDO_BJvLsN9eT+O zw&^iRC9)q3@FlMwC#ry2908t~{rO}$2k8C7NmzLL{92m_VscI~v*4MbMn%*|o9BBH z5!$$+XDVCfcYb|UJnlO6IT?DG#d3O{bL0y*hvfGwo6m~ zV-G^j^Mz_CICXlROz-aJI{>DjU)+$V)3t=pU6}mDnghNlLP*P|uN5P+SEtor*o#Mw+&@EoG zO;kf*t}OZAf7>2+aqP8LBBWKrjJk(5-56}pVWu(3GDo(%ei_A+=dR zqH3_fo;(%2A?@Yy^@S<~j8mq6VNGP_Ospg0JLKK_LyT0N-7laJ51v6$NI9}&y!%iX zk3q6LX`<{3Hnp6WdfiE?lZuV$ty@$oH-VlqUkB9s5cVGD%+6>FOAf3+r>AKr&BrSo zH3aRKPR~#yx-t8FH;RRwZ(%}#n&sJ=3aHkVa{>80O=Hpcy6;kc;R#a(Q$8m{aXz1x zIF9D2YAp3oM0?$Y2j8bS=NmK>B#-RRMl?gdEN$_GWnkGOidiAUGFuh+>C$iQ1Jg3g zfm#k>T$qgp2O^YIqZBgprq`3Z753oh%{4+3dVac??70ml2sC~Y5#lR(5Nmst*Owp* zF%ypw@BTjPukflva=O@e>3FrpfC0<-)?|Rg+KK<~%DH9fs8#RX&l?kyB)MQ5HceD~ zacL_CzE_`cM|P@t$@*E+k+@?Ar16&_FOqtM;1?0l-cfBgnT@9;;F{Mp9Cm9&V$ja| zT*(Np_mJHxKO3KoY*OXK2LJEkV6xyo<_0?^$wTW26VqL=nt!ld-vY^osy;mL=CfcQ z6O1svi70%XIBb(VY0izKz4KuX6l<}nnI09PesZ*8$LuThCjt+GqFp!I5R053f=!(T zmQVnwT+ID4)IQk)@@q;i?|6NExa|K1)PJPb>?e1=2kQWkpL(?t!O6tD1vPOT4zDJXfJ$B&pla*=SXb`d4q4 zUq;}4#|d)Z#NC+K29EaMOX8(4u+7me?wMnpReoDYXE6e=pmlZ;5@;%ixyrmerC1yQ zF?xc~!v){tDh~hFERWD5!4;1@}icCnQ+xMevAiA6kI;P`Oy*&L-D5&)s>d z$d>p&c4^i{xqJ0)ya?F6pdWG{I{VJ5*>Qb1mSU-Zze4qVBOO>!;z0o0qjv+PSQ-hU zdI4&aqTHbaqF7QLUq(=lc;x#B)GD5;Ak8CZt=qTAWLz>gk zL#P2W>8Fu~UBv#Oy{-#NnsyKui~va?kkCl56f;y~+3n+0Mk2Sq@3+HKHj&-)e1z~w zI&J7cBOhhZt)YCVeiZ-*JO~0KPzPQ5BUHIyWCpCqs1hZ{v>o`GivZ6q*T9nEHhSTb zK`vDPHz$?7e$$H_KnPBSNkvJGfHqgU2luv*fd8_?5iaZX)~T^VG*-jH$zD69Fcks} ztNaKhzc4`nq-PYfGfJHb6BLrwiEpGUASYH~_68*M*@!9ZDcC!ow#5_L?e(KQM zyXmOdzua0vcbiABj|K>RFdMJw z^^1t&$du1~Z^X_lws#OJY{_`14M=LKazy{ljBi$0Yq`+_9Q3yPK^R=zrVVenQKCa4 zH)7nHDSFk-4+^{)X5Sr2k_{>e5?j=9;(=hLw`-JPuOe-7uP!tG4yu~du{f}@Ck8UT zj4+kepuDp9wDEGkHRNiY7rXJ2m4b-5@Ye5wFh;J^jp*V}_#~ZNQj!Jg7@e64##-E3 zM2_1g%e*E>g0=Jmobgt(Hy@5tCJ_=Qgr!z(bhF4ViLyt&iNDmI#F(+ch{CE6hSh(X zPV%}^nJ(#>1+yh+zPEveGkTHEfcYd(qd{Zo|@WMG!w|34my5 z0q^>M=%W!PmewrntJ(g!T%G|F&6<#e+--%WacC?Z@YdC=_4uCjJ#>Y=O!dj=N3K|a za2efLB3bmJzU*K8Y`N;XVUli_Do(KjQ8B#VM`PCAg>4mg`E9hClX;zP4JKMyh%kyc$p)BPK^Z5_siy@S=dS=gEaaShe^qifS6Q8- z75EXl-dWRSD4+KSSc+BM-wMk*z0)ug^(% zI8u(;31PD;R4Pd&ok!vZ4XHRZNJwP;b)x>HopK0#)0zU)FD;!C%;PS05)g`_o;qe-2W^9&sP^*1phw5a(Xp1DFvYHo!H_1Fev?N_v)oL6}-+M{CAzz?oUK7GO zt05;8;*_EMX(0;#X$f-YrY&~CQ8JWuc%%qLx%JoF{p`|*3HkNkI*7$!RnWmEYpHHK zT#?i)E8L+nf)A&a_ef~CQJYW7% zO=P*lIkK|)hkcM`)ptGCD(5uc1~wZ!_n$L{_-K`;&d0~`J_NdKBVM!o7qNH@AD~_q zI5R#fO;HOY^-BW`*0SG`$XC{W&))#E5{A_eM!$CmQz zsqnXHFm^Qftf@k|(k|SnYWGWIpI{`)a-r`aIDkP0<`=TePyMO2W~H~k$YS>FZ&*b1 zKN!dx=j|V-_su-6MYhP_42Q&ySh`6= zKDWZWFkF|n)AES}w)uxRS`HvVKUTG0QDC%##j9ie3AxZe)3OvZ>trm%IE#0VnA#0k z`izdYAnM()iMMM(1RH9g8)K3ps5CPM3&?UmA{uYMPG>qwF${{F$!w)DB}qK@gPDvq z>*7U1-=B(o#K4UM0U{fEm=s1` zO_DIf%?>Ok``}}sB8BY-`%R5}0ar%DnJu#e^*S^wh!B5-Kl8GFE%a}--@U;{Gb0UU zn>C9;O$>0=y@_P|&@Ra-J39mBtXxdlA^cB^L1{GOQ&+76>Qk;ru@im1Fed7BaJe0d z%$Te-D+-?g1^|Ef_{`pt_7&+!IygcHUW~+;5s@dD70I?J*IjqyDuk{S*QCK+gf!vp zI2dm}H_}*SzA#wthQ7=2PpybYGjZz~C4!m0N{|mlrtR6tZAgax<6X~t{qe*JbdMyr z+oTOW#URO;>WG$x6hZqPZNeh=zTw57x`zweQ;iDEk5Cm$97htOMxtuWP`s-?%=bwQ z$XZoZR_F?w6BaRc> zWNh{O$F2(3lkTGN*n8Q?kL?;?Ye%u~?c0GA?RgLYSY=9kuI3^*)k12S$;#$tjXXTp zUu<)jdLf1=c-?&tGAyyiEZI;f(2j=yMa{=nQXQxCTK~uZsU(hwlO)#9K$++zT1(HI z6s(m~-&12Sa2uAicajs5YPCT7R#KV*@m z(e!;J3;M^dsDqTs*)7FqrTj6pvLJ`I7Ak(9BYDe7PFNATAk$?fDaw|j7*s7O`}2A* z-qcgK&@ycqq~g~Zj+^T^`?U}X!~bAu@O*F5$P_zhk7{~QrADePlZNw}?FBIddeY)= z8V(p<6w?o>(5+^3E`srlea0l4y!BSc4U~ME{UKvM^d)p##oHsem;>7m$AC&%-;0X2 z*#%x5_}SqV6(Qw$6Zxh<=%e`nfemu^;r)rs=-IZucO zl~J0u?f$h=OyDmsmY+upmr2b!c>B2r>Ipo>u-qEFiyM~0eE04})!$FS+C&Z4+Nm3% zz>|gFHta(mZHB1j-llRuI*Ur;9q=p8%W2DTJ$Zxx4dyy2$L(1cXxL(}A6jr@}tV zBIgfJ$5v-O24d{5&JByF^k?J^pAhs5HoZYp#Ah?D66Oy3{XhuTN!kO_jsh*y$4c{1 z{Dr%871!Z2lnF#T*u95hXa1m9JTUSfhrt>!iK2Aj#mEl@yY@PHzVIT-rs3e_)Nado zGahK&%g+FA(^nkG_Jxi4sLlXVL(}`n_2>RNdAf}Y9Lkx5w}tT2s>Q4}uAgfkT@X}` z(Eunv->MC4wywl}VIEf%r0MIhsU&h-`pMZwtd39T)7|zK`MU=rB}A;0e9boyoyYWx zi!3LO3i-o-nnyJs)PFaBwVDm$uj(x5q)r>okpGA&#J^5w{s76;Vz!$V!!k&0odtBn zyxADkG@lAO1t>&?YxwiyiAQt~>-5vLl4Y}n(6*)vj(D)Cel@8BLOOMvE55vvO|_BJ zc|H_k%g6Cdd$X+>BlPsw2*@f2AmqZW#@4*eq%?_AjaA|s^#Qo~8vA%$RW1x=1Hl8*`zxF4H_#cZ(sn4z8 z{Mu~>}R5rx!ZlX@c$K1b(QWPRxr&&X#J zmk3Epq|O(JF6&0_#0H~nzl;9Ij%b_B>al0>SgaG557zd&qFyKGaUndVo8d&XDK|5TdqLkr z{L~m7$U}xo|27Q%JB6?0`^mi_N9)64F;l7v3o0ueVY8mCQ=Hg~it_ttw;FDNwzd(= zq;ln7V10G$q*XLcGp?UT_spE08L+yFUc;_G{3Nb%3%P#x`SC1U^?SxXgCFE~%f8gN z0Qej{alto0EZ1CdwxD6Pv=>JfZt;NYY3^EFd$+RpaK>sG;)rMa!&KpLyBliEDfQL1 zAPJr}6%zluTbj{C%yfUhe)aOO+?oH<>W6z4Iw|3-U*--SE(WlzmSFZt+|uCM@;tKk zDlYc1gUh(+diIX*;RAPGJgp1oS4waUn-fZVtFVJ_lWz>Lg)XO80IkLscF8CBERW!t z0jGM~x+ekofO2tIQHH6pLIAX*co|5t9m-{#W8v8W0Hd?86`)xJtsec0>kVM}@D@=% z1ExyfM;`;obr$_ADumuoTvA#C5=k22(IO)l!ZNQY5JpI+gG!N+PaV9Q%$0yG7OR;L zBF_HqnX8ni*`O^iMS39e7QHmf%i&Vr$FB*U3+T2!m2UZ|QhZ$1AQ=FcAIVg!q_!v} zOa_d|MV=v(1^ZN)G||9h%yj6*c+QL;p`Wdh)N{{{oHqq=+M_@%K%~FWk8Mmnl0qHC zG-#j=`q>y+O@xx}3e$LhgLt)eL%PfY*GVDgLg)>4s}cgfdjO6qtGC(~ zD>KLAuN}CpOPCY(wN~{rSgZ6L>Lh7?zvC`RO299fuw8Dr5;|7{KZSCW(Z?r^(^O?y zy<85jXkqj|P)m*FLgD&2@NG_fPxvNT@zqCLYFV%l!ZEY(Cb5~(CicyX(ftR`ksLPJ zUN(C_YN`=A!%yxHj{*`If~CLfx;f!pS?{|Sdqq`kRJl>OS4U8x99i#16)Bq1?h}j* zrPf?dSw_wyH3h@JQoWxsJiG$cONESe+mf2A4i5NzzUIAf07q_YW(NjIG7-9^q<}#c z@p$`{MesgdMR(Fdk5?$I63L`0SSYG01_|hh=HGJaRhL&%Qo;VcNa482Uq5q?H$FS5 zCb(4ACM+hSlz8f%8rU3vB~$2lUi$UoF?R2UnC13wOxk@+$M>GC!sU<5~I*H@Qkh z+j=bo*2|5eA@>w2{^5yyV88&($A06Jd=*Fg_a$;e7)AHfjQ@)AI6hS1?JPY&in!fg z98Szt{zXcffE%FguE4=5i8Tnrh`{s!Bo{vvxMFCrUo-G%SSV?V&=2kc!oyClMG^Wn z`Krwjq4jYkyu;%4kR%`t@UAsfheW2nR-P67<`*G0?hh>jy7kJ*jH=lA4FuzSkp15@21qm{KbLGY9C3!5f1 zSW!MEL4%Hwn+AA=|Bo@S;*sHzMTs>3Fxw&{y+)0;q}&VQvbI^g5#k6m$oXVtY9|5z z;f5k1(7ccu$sG}J!YL*X#__d`-hL(1#egx$Yo>2Vw9%&@+iUn0`&lrfp7T4~{5t*L zS6y>AzqRdWF|jdW+@K_PlzCaGli3eLB3OlA79j26DeE$r63$jaxk51#`;@+MA#-p5 zl?LQJo=0>y{k7l38TivBmM8PPVg#F0Q4@ZUq)j^G;X$5BtfnFF(2vVfqVzrlA~e)i zN*FA|?p*mfSHP_4?mlIH;tz$T^_Hdtbq&@i@SdYc)+681Sx)YPrRn(57`{U*KWq95g(%~~Uv0`U1QuF* z&j}^YS=-pYD)dbBDlh{!3}lVjyic>3q8~iAt(Ouf62dT>r&Nt(F$+87yXOk}gz?`Wei}C1B<>+%IaMZbD33(-mV8X`-3-wLp^hGLFwr%W*KVb#$fHYX7 z&&j^VPeED0TMsCi@6fUOAL`~qycloP=XL4I zk~qdl<{GjF(pg#_Y+pob)Bvr+2zKMYUXhuG6qjU(v{y1jiRZSpONZ1xQI!f4%`=0* zC-j#u>q1j%Aj*UvKJCl@)r!dEUq!{qP0yBomsmhinGVoEEWNZ1}bv=&kw%`E`q z{QGY4|K+FCW-mA|kAxp>Oa4z)(^0hWa{idy;SCJs?)z%$ zG%21CYJlG_j-C&hb5vs^@BvrlMU7D98cn`%@`X`>8uBZUG!|;5G$}mqVMBU)TkrgW zL8HuK2EkF2*8{=o`__m#3rLmT+(-FS_h;Z+0Ru7mU#q5h;;{|H?))h@(>2R$Tu-dH z;9`x)#~rw@z}rG2sM@kFbOUzasN6Y{!2Nu0LK$eir`}2CGb(s`{W(5X9NRiOCfc^- z`v^hpoTI?MIp-AHEze~un$hw%C`P90*_Z=q2D-Xb0x>si@~`8>;Yhv<(-_EMz_tMC zm=6kfy{=&b`Yzp3U-M<=XBdhbbpOgve=tHd1~;cyA`*@FFNP4HbV{^ot22=u#nDMm zz6NbqOe&)T7}|27lv^Qol?sbQLS;j#+^B0MJT};@Y>vAVFY;U?b1Zc;ks&jpqfGR3 zKpvzLpw&VMmS7KdW9p3o6sNfMLluIHEwBuCc`+JgZSr}81q_H9aWp6;7}!eQU(V1y zeegd8aEcOfASj>G)y1TFq)u_!fQhs-fwjv~_(TCjBg)N z{y4CkY*TRjYtfb8?ih6tU|lE%FNo}msr1Aq*qjj?SH}NhCnAg5Z&-01HzVN?Dy0$? zOuJhyyM`tx$rwy@YlwNV3984Zvfx<^kHZ_JEj>{x-Zs<71F9B zYub6;d8oRkb_sKWg7!_N7z3xA2!o|<-{@l#b)MIF9XEyAmmdVLNg0PmJxqgFenL7Y z>1a9nyJZn_H8YqcurkW{P_7nAX@y1wk#Y-2#aO=9)rBCe@U5hY-3!{_B1~guhLe}DORmbQ)m#T%g<)%uQVV&YwVeFmup-C9; znXK7A=e%l9(jog}buPxpY|PrIIeTRpjNzpI3NoClaE>HM(!5P&kh__*VP@-(k=J8- zxyAmxnqGZh@{7^+(NlooQ!jvfhPeCURtp25G=y`E2cXYfFV$cQHj3CGR6j;7Lt21C9ag5?Q#Y2^%EBqBZw~r=xbvo>_Z(${ ziO`WfcH<|w9z4DN^vzhsm3)z+ z_CU-$T=xtPG@-CF`=u*vUdX%rikP6g@tqY;6^DTJ7cCY=bEokvaa^>yDj$$)`RmiF zuHQRMRw;P`<5pyTbleG_^3ck9Jnt)}jw;`wv@Hm;hu4#7H)Y!B>>9c2_B=vs?H+fE@Az0N3zke%zHt zXy9c*r%T-00MLQ*Ov!VF`$8ssREIetyOb6S%)@cIBq1y2|K;8M@i!g2;oLyPy6qeg z3B!lDNMYimHSUX-m*3`*g7=i-gkG&uvyN@);9cw@h|#oKFEZI~&^KY@Yj!F{MA>o( zr1P7`gmt%hHclJPGx~I{d3`>4w{O3kVTYgRlAp)qxyPTun=aoY%B@dRUo-1cKCv4n zOYU^igJ%)W+GXU61Qx~hG)Qtf1foz$F`v|+)&{TZ3mqLE<(YmRNmF)}!xj-TrZ#a(44po>#yO=bW=uKSXUwLW zh&)_LV(Hgh$tUjh(c9WzvesfAF9raAYm9ETo2aOpM6Mj4&kWmR>?3vVD;Xh;y3?$2 znW#18)v(b8w$PgTXv}~7-V-!(n;oBK<*kp)Dv+WlOn%@LC-WPMgCWnZ3MeT4gkFio zkUxGK>ag!vB^?!WqNoC%jKP1*=Emq&r+x*$v7>IlYNbI7aURkzu|L?eLK7M-{t)5$ zqoy$1goc7X2GD@s>ixe=#U<$vSx{Njj)&7n#`RE-5v`R>_~Ev!;rt#J_S9&kZqlGGsQp~&#UA(+SlJCC}>c*fIY z-r@CU9E*x8W`x(Zv-Zm6FW=i1HZCErw)kaMG*~2FI<*xgSOJee^s=Ri5FJHWCy>_0 zrkw=c2}FQtE$!EAvCe?ROz+LaNF{z6X#W&jY${_ZoUsA%TnheB%Kc&#>ectQ?5{!b zl;P@PLM@TxeeTbYY-IwgKM?@jkNCf?YBNDr#&&<`ob7cs+0bx?dG7aA_o^s>gR;=F z^totx`4VEx?TX*-p@*R9kL^McyT?1N(mAG2hy`v{vN0|d3+(G(BcVBlD>hDDBp#$%SuerIKTb_mtLhnHwq>wijT{w(qX z7eosTi@d&_bb}u{^AF!_|7OG!hF9$^8S-#Pqv9X(NB%}EBnMSEe-}%D# zyksBi-##CEF`y;&`jUPE%{* zZB;+zTpu=85x)8Yt918gcFoyTo;YTNj5_!qeYSGGH#IexQdPqri*iIvydU4tElZ1t z$r21Y+^NPNQ{gv_Zfq8ddPENuxHG%9H>18~=o>$c8kt9z?E8Fs85wU=g|BA&*3_<_ zKf@w!3Y>kKFMB9}BPLSj?sGw;U9EbNm-U*`hKVgI!$R|g@KED3v9rHKG+Vmz&O?h8 zAVND%ZgvkXLM`VYK+p;Mp1pI>i(DWL7474jx1!H-w$vLs@%^fXM~%ftit(h2Vq`nL z$5k6pP%(oYm@-CM2^%hvbdHp-SiXv??ik;!ZVT&6$S3oXI6~q#4f^I=EZst+VDXn! z`|Nw<3$Pr)n9HvT+PpQ0FSKd-Nr;hfgHX9QbjAs({IeegPxUET7DXeCixpo&^3!Rd z{?x>%tH1>P3I~6{OySg^*$jc$$XDv&r8 zAH)FMl1hr6_jh`&5WS^PpJ6N0+QBu# zsi((nU#MFMF}@a8SW%O(_``VQb?;-{S&wW$?l#&7)5K-bJ)JZ+95ZN3srOPea; zJ);8>cyO=n-c0QXnXT~L)B6{x&66Nj2Dhg z^Dm;ntUEA0$r-+)jT)JnDBm)HhfbI{dK?}N@`=89^k8m}An}$)&i5f-T`&|oI8iCtBiKMJnA%U1~70e}}~>5RN;0gCt70+^Vcw`>aB-Ef`*4 zTbIecx*(=y+Rd{izE`*vX2e4r>9(b|Q>zs_m}ddZSwxph|4=-?7sa`)-n`~Q*a=>U zw5tW@By$>^DBe?Zf2o7+$-cuku4_QB8)^zvePw$w)aJd>Pw4S3Avi)I=nXjy!tI9c zoMHiN_C=f7QM}{!+7aaDNzC73Y))8MYdAN;GiL9*ldSGa4K8>kdvHMW8AQlc4` zWIRv^!>3yF3)9_a5ICpcPD4gwH$ot2^MA=&mj33|<#Z_4VaQr3L|F#G%gTnfK@D z39q`oN@mGkoW5#u%YVW#uX{g<>uSt8_TZw_!8<;L#(8?=;e3!@5?Dqhix%1|)7k6< zB#vwRt>H2b#K?ImdncSc!djt8h~<6qt} z>7kx?#J$(Rl}r-zbIaPDMG77JQzHmmoCO)kZ=i=U+fP-a2wzi1YxSqKRfhXkO*wb^ zAQMI9vC-EB&24hvXW|mLq>1Vf^yFNB07hF#GTyd=`g9Wd#s*mlGj<-!!C=;!sllSU zy6c;+sO-1T0%gl;q*gO-Y)r}~YhU#6o%`Hakbh+;zJvYB47p;rckgL16|S~4vli*L z=lhaCtinfSB1ZcHZ!3wQ#uB?CmGkY?pJ=Eesp7vUq4)K(Cr3{fqIC_;!x?SO!?x!9 zsOH+!Ac?TJN8u&7gP_vO5bdtKx|PJ3+;fb~w48S*g7-ZvXCJ0^;;swf0jhoC=rYl4 z6HO4ICC=>|_`wblsk~U8krsGnSgvJ}jUU2f6THRs<_C0xjf~sTXZ-sI26UdH22Hi? zaN^$$pBg=W$rr^yDd8mJ2`#>$se>QSf;P8k^PtjASKSLl8=P^OPH}Tr#ga^->zG>N z6BT@A^@p-WamA@g-!6dr9qvAjIHj2i<5NX$7TS$%7WjTCF~6kIbKWAa zjWxj}zcM7Aq8Go%F~|uPDW*|I-Uz;B?8!@UtaVuu^f12yjkenm zKb}bp&y9<@8|sfy2r{IEmpZsGNJa8bXYgBg_k8gN1-aSEtk?x%oly#|EQlBNWo%zX z+5}rY205ylF9s=ODScHsN2qP$2VcD@HW!P|J$DIjQs6wR+v^D0IZ^!ihw$dbGWzrT zG-B7BJFg(tiVqe$F*oyuMUcu@N}LJgT~Z0TyWS}Mc1N=PKhe7uS09WocRHS&p6&C$ z{UeCSrueIJ+!s}LHt8>(c%OkcyViQj<%?1fu{lvA&sn{~j(E?rzq^CkF6v5NY*6Z8 z_fu-5Qzz?+lX0z5YD9LN%yqYh!-W?29-jC?uxUa3XD7cmf4)HzghgTh2d%dLb>57P z*0@sTBT7xCsPaLOCnBcziky6Re)P@bua%EMhM#tGtW%G=D~fk}p7%7<)jmBmh4O!0 z!M>AnZ|``TW^I!CTWCGttkT{6TxDon%BMuC%kTczqrhsbMEw`8H*b!JqA!lTvg>GG zpUgRV1uSnyA4eriw+1ANxn}LU zyb9++NL(wOYpxxcA4bes*je#C#U;3Xz)NC0&m_i`fA%6x$e{6ZSxB z)=3Od=0mi8Z1GayK=6GmO;p2T1KN${NuMNQ{&yCW|3|GAIadH_c9sX3A9m7z$du&O K literal 42315 zcmeFZ1y_~f7B#BU4NB)`3z8B764DI{(j_6%CDKYt2#C_9h#)1f=@My4L8L(m1?ldP z=C18I=exh*-tjTU8Rr~D*zfbKm~*bV-j^EcN<{dy_?IqSB2rP7*Sd5Gv-HxX%Tc&j z;7@P~oMzy^F1u+d$zC4o;tqiSgZD()(CyMCN>=oLE~{v^Aqw_R%?YEaP zxqcS*LrhJMOz9vjF0#7j2>Es%{Pesw9?l<_LV9bVqgZ8hf}UkwWr`MSrmxE$DwREa zMTCWgDHHfhc&*1&^4rGPZ$pF8zelZ8wW)7K1>CGfc(v67n=Z~Lo`?VY+Pi-lTNe56 z>#R*$SswkBolA}T@;`q|j=@ZZ{)$a|gkbsiU4z<$A^*Nh-a8^N=HGWI-{&X2`tRG8 zIsW&52`7-^th|J6d;Kb(jjqT)j#_l?fjhz zV4|hvy!fc_ijqsexU#ysuiXfpQ}fR7I}%PlIZsKt%(SuHPqRF1^jshBPP*wZoTphl z904iFK4pPm$u$1te|B7E@l{bt$>wN?Qy29;U8>3N!OB# zngyJV=$kPMBjpz6y#M_!bYZHo_NI-kh>47hEGgL}kvfgRs2c45QS?AULZV7IK)$)$ zsvF7j;K76INWFZm9K#ChoV&@2p~I81P|4Vvpn7E*KNsj*8pulKHbhFQ#3B`ZeSJw0 z9;e?%2eOn*OibKdUwV3a&VNfR(8vgikH1FgkRJJau;Rw?Hf-GP0*XL(b37&*PMptA-AD-qFeF0fbQfvt3EQV{&c-zUl%w zh!Qb$optSne|X1h!}nm#P?wF{tnsw%<+X-}hAK@iyJclW!YcfzWF8Z72?-Bz<#>_y zrq9~i+Rys<$jDxzV}pL@Pjj$ogSSboyUGY&flmG{p94o075MC~wUoG4wVvw{@+Q@f zfB!1RwVT^p9-*(l6Elu3euB_4TdYDLT!@(W#d$(=OL%lMkPz&TErLukg)n`y2@|M%>FI z6SW=%FJ34-)(_D+*zJ?L*c-Z!?qV#=(5?oN0Rb0X@oWX&Y5anMj#G_iX%ap=GpqdV z7|cJ4AGJr|TBl3;sj8`|sjHu--r(ow=OAkQIml59hjMbT&ZU(de%o4oycIr$d>s0$ z0}zqyPt{(e9!?OrJbo+U@<>|xIZB9MNN9bs;iT4MRp-5iQaFz6-MifoqMj?m9L&s@ zMYmeRNH!-Md`=FWEG=2QPY>zo=;)}Z!qR8Ve6PL7Zr_Sr*k2pW=`J>@6HF(WXF>Pb zIC?lm8u4d4mWNx@SOk3LFJs(({4391ErNn8w6QQfJsovz zg?L-q*22OKJ~^bf?2}$dFsMyOt0hg065j5sKZ=__8a__wjiYkOhpiR8OJY$^5sVit`Y;V7^(DP3C@vo=*D(%#l_K#5?UV1iCp@VYrw; zWHQjxA8h<~u(8Qq2@&I>!pOJ>30SJ4t)hSpSV+V%^#m1rz4y!FM z2pqKHPl@<9zcK~*{@r*#^9VxCtk&JGS4ZXYn!8{qw1GzN{gw5JYFk2x?(&~=-;A(Q z*74F`@d~anGDhjPHikznO zaOmX4ynKmgeFkX=h4v3dc{*){Y`pXh=*3F$ zrBzi$I{9&Rb#>!vGY9Jv;aL%3w-pRzF}1e-=D!nmp1ITnXZV7Es(-CLIqKdEX@ly= zCWZumx3*$@$u;Cx!^3gu4{-zY=zjd&p8X2fXx~Tb!J~`Pfx@L>6C$Ui^tB_BZq-PH z4XMHh`Jfp1WU~Gl+_b*OOK6fsMpgL4#Jz8uk{4M_a6=#xh>3}p81U1kiwX-L|E_(} zo33o`p5nDOx((M%FXe9>c_*aZoMODvZYWRlx?`X03w$em!qr1~#w?uF-vurjm(-~I z#^6aDips}QMBS_%9SdhJn~-LHRDW;p9ITHZFLEj)1oAp+UR1n+}6a8^#O!a zE_XFjZI{Lx2ZwAt@zpB=$t^V<`6E0?%6ukVHno(w&CQaPnf{uKg9+zqr-_d%AQ?8ykLsY%k%7N}UWr3Qn_yB%d&{yDN+fw7 z=ETv)?>eKr_sCb2H)#c|Uk^S4#N@T{ONKi+K)`vj{^d2cN5Kvio)hhPl29Md%RIN2RW%eXDJiM7&k%uk9|&WSqJIDSg-ycv+9bw;fE8JU=3O3FnAI83S^LTH zEvlPSuh0Mv(8?$tNV6m(*G8}lEG@Hxx&X+0yq~@?JDXL7Z=GROWsl?_=fBhXoU6CD z*OtzxK%X*{m;u!>O;1n%y3`%ehm(#9$J(BGYpCDf-(ITDg3^f7m4XrgK)gA-j{P4l z>#?0tw7AT6WK7$YR16myRzUipTo}LPTMuTdK%wqeERsLnY9)c#I$BE$K>nkhoR}@w z*wh7`#syhfbG$Yu;Y{^CWRjASEWSp)7k}p36~_vFrby2!N6`QD5Heo%&i&tbA*(-2 zl%m!6Jg(dRZuGlTw|X-pBjb0ihtJ_wMmB|xAzXRv`(M9)-MZ-f`O^!4Y6P2-H~|5{ zkorjZ^N;&O_obL4*m**+pFm*j^?hQH@~?NEYD6Yiuw<`TgmrawDPP}R?E7h&i0QFD zPNBvSXeL8bg)t4W75g+N-}a!t6dk;SOu0cpK{3-({-=2jMlWqgOQ!)*qOZGd1c4+% zcQ^b%J{Fd2$WsO}cM;dQaMWE6&CHPK=)TV`vxI}8DW3x_8pS*khu6j`V%2lr=WbxO z3=a>hCUQ#npBik52W(^02DZ+$pl8()vP0eYwB>W`b8oT?L5S2asaC5G#P z71WrJA+?ww8((6}T3F0JfBqcUM*eoG#`0j!+1c5=1>KS|A{8K90*7`s`k`clD^D){ zEH)|FLneObZ91JwmDe-^!%6jdY^BKq4-u`$tT592oLQ9H}!(^l10~eY?+!^mC|Fgk>qgE0rNDswjA9+?b zM%*wGCPr%Ny!GR}%SS{?W=YPBS4l#ky+U0OzI97>>D#o;^;p?l_4g62YA$7C6*gH! zi}w=Sii~S^>NXp@*NsSHQvhoyzj&Z1Cnv`w{*=#ssb9au6tA})I@6n`q9UhbUK(5? zR~FKauV1f65}3|Q2OPu0(@gda0DIETRkzFaT#<7duk+$P-k@nrzvIR8sA$HnJAotX zuve?+==k{fY&bJhavb2XLtH*e6CRLJyo>~96x@Awni%kd$z z9g*)O{c2GJ6gJMz(Y<9ePEqO?a3+mVr}xZ|Vc%0luT9ANcy#vyjnXeN%K7~L!H)f2^;}1Lj(1~5O zw6xsa_dvRc<>4{@{Ctjvf+9zY6sYYFNIU_vSkfA0TL7*NVSARH~dqosfXxf_| zaQ=4MNCV9-OzYpAr)1E7qHB!4o8`_<7QzFS_nDU&zu{YGvRr=eZ$wdlhKnR_!>eT)o~~b3KKOOCwHY`1igI(WjaNC?h8grg1z>OZmSPBy z1MqUn^xbXgyr&8gls6*`SP3c*pRaQ}OqMGk)H22osYVpb+iCM%RyV7s{Of?&toe&M zj`Ag%V!sM8zC{%E6`P1w@bRzFZ{P4eI{q#XeJ*SP{DF^$SChH`a5y$LmUCokY)rHo z8^QdaLY{&#l!X(WUu;|xS7VtW`$Eif?X%lr@0xYHv~7%bAnCLv&=+Lz{SVPkcNcp0 z_Gv_(Jk-#L`J){A@#DuxS|M8CSV^t2><8y(C!q8=O*Kj&k+OUk2|OmWmp?lEEPiYA zqBG;^cWn1?z&F{7pU5=xwO9*Z40Z>@@or2t1%z%6kSU$2OW~%`A6%*3H<%})yUniF z3ypGn)sQB#u?C$H&c8pi^tQWk~~38bl* zcr-MU-9PTii=mn1Fd(FzippYO#ep1>w9RwjEVXFAE@;^S$ z)l)@c{V$OE^x{u7EM@oh8|v$SK>x75IRuK<-?g!8MVfQ9m`UOFwGhAGr2xm?cvL#m zRW_y&`dXi&TsZS1oE$)9zy+#d+I@ult}|^f2L=WrUPaOfU<+w_EJOh7Q*SPM{g#G~ z?q`91UteFzv)u)I-aQC(G^@eGBcoT>zOlO+J4_rhs-&zf;k_p<#tB3R72gWz8hGl# z!TN*d9Uzb4%;S|rT{1g=_m_cNrygGd>t1TbYb1HG%lh+5$oBZCZ z-m^T-tcBk91^x;GGVjqfeJ?^a@CsJ{tp4T*x75X{KzZ?CgD6xCc_pERl1o=EfRA7i zQ1KWaPB=I9_^y8RhCc|q$9i69w?LJeM}-?}N9J5gxxAUB*9tV^D+oD2sbX7f-^Sli zlYRaDG;3??2^$+*ti@PoXXnU>?pBFt1akx=xXJbai!i7bEH*twNw` z2JMZ)>{UMt>9@VjsQ|zUOH$BtqG$vZmkawXe2(|>Q6<@O&yM7jXw&K} zd^J`7EciV24;FqvK)}(1O`yeq=eS%&uiU}9mie<-Q{jSwj4aUfv+`yQ&_Iav-W?^t zb^1o>_!OMtPq(CVPN*s5+)@N=q99s8wy5)1O`=W4Aqv5m2KMl?&@ijxwBi~C#YmJQXtr`N{sy&vD>Tp8%yuS@wr9L&u{nx}wy}<$9yJu12xyE!*Y9q{)&p2`9cJAR#Ph_^yBB$g@+zl(2YRC$_)KGoD&w3zbA{IvJDbe|JLw>kcWsh zs7DL>rS^}Y)DsEdQwXF71w&dg&IxKR{fp7bUcTrSNGW0@N-B zP1F$hwY9bQQGeoo; zkL}7O??6`7g#NswWrRQC76;Mk(mo^L-e%tJbR-Gl4#zozKFCARs`LLk8en%O5m0iI z()es0@2}ePD)5m$TIKK$*Vlz?hLj-ZuroIgxLIhenFF;d|C$Hs^TA=W< zGqt!#xXvl>F$@JP&&;@jq{lsFo6dHHIqqdx*jH#r+ciLjpqz6WRoWI0%kwi3hAb(X z)p@FATS6m*`(-|PEj^0TeW$%0gfyy~MhU-# zCbP3yEZaesz;Z)l7w=lM9MV*5hndbOC@5$Q%Jx*F--u}pT=P(F^x>|*s`)xlX5iU3 zv_9(<8HHnBoeY0xicWS}S$Wl&(ptC0sQP6TE$;jG@5#DeM@Ehm+UgwuD|zzg%bPdU zIjo?IslOLXJi5wtCByNLYL4)Pu)~ivU{m(`LKRS@KG_W^E>GD4zYP}%^{$q?rpW{B z_nR{eDVk0;>bN(_6!@gCbopLO*uar>S3>J8;mC`RKt+Md=+1hqjDHLc>>n7|-kI-4 z+W54Uf(rEQ*o}jO1K7Sd$k;Okw&i7i{Cs^`zF%7U42LErE^h3?@Aw7uLT?`*8~ra+ zQvtwIBW$!#Ivj;rsOSpoEx_+kRrQzWWmpzLNU|L?p(G6HbOy~w&xeDCg@xsFZEXZ0 zf7tWL_`boMyE#Vg*wDw@Hz=RQX?Xh7_=b4vVq}2!Iyk_sOF>DwFg@+EIVq9D3i98R zk3GI!3`8CP-@^0pQ)1TmlnhuWoM_&e7?AvFl+qC2+yENyP`CrX zUG;?MSi{#THa>zWfYrAIm5ZDxoEAU=uNfu8cK4Bm-SCkIo_(7>W``pw)yz_aI!-G3 z@4OGUXAMmidsWKH%9Ig6F7%BHp=(3)VGy#{@x;1%?HZ&Ed9+G+?<%lUh}8^hlcCx_ z6kK{b$9o9mH_-9NtDQ>@f(Sz}%>QouhIvMDSJ0r(-jXK7f;^*K`%6|4kt1+%|4S$tF=zc>KogqEfjbEm&Hytg!6R_!3_Q_49?cZD*ExVqQGxKQa^Tpw8 zG-Q>ohBZ)Z`1o4&8}r@CFe)pf-A~xw-IY_;_8vn)*TBV~HH{!A3^A$m{9R@d7TO&r zC(=x)Fn%A}1t`uLBL~+f-wcs-Du&GC{RR@KU>5vw*?5OPP7EdpAu%v z=%_(^I|#NrF!rE-BdX1XjKjxZ)|4azMOCtLux`zAi{K6)Unziv@{1KmMCxrPTCu%| z3vMSnI~r0_L=$<;syiQPrVY*2tH>R#AE88aFtE^zOD?p%^7}6&SWW9Gyt6lLY+{nA z9;CiL-5NHqsNIx_qK0-1RTQgFbE$`m7+dtleH>YkMgd~0(BWDID`pCFpCIUX<(nT1 z2?;g85dl(4FkPj@3n{f7Kr%5gwG-uAcE#a(*t6tuXn#BezWV#qO`}SYXFJ&_fxdfu zq{ydhlMN404#w~^DV}{GHvcj)@qkW~vjJGy{^pdKC3hnXEWQops|NC&*`^N4YE0F6 zl?*ZR~E9JB{HU%R}oM*pZEDc;|W6NFJ7>Z*6H|l=KZx6PCRzE87AnUFwWrU7M1C0!Nl6L4SOiiZCP(`*!&Z-}9(7 zKzA{iaP6*gNdhk&Sjx7BnTb531{bJ+h?eNG0XoyhE z=?PTqBm>T02e>GIySSJ2fryHI>%JM;*Yd&nTacxi=o@bXcm$aqIknBH_F`%eG#&~X zOmQ~mED$1fmd&yRH+kG{-492KcdJ8 zL-=fZ=@WELPm1roy@j5^aLB6x3V`;a+NuKdy)3KUrr`NQgggNuF>%t0VIwGzJ?TQ$0`P8z7e=;W~bDl7o3{=k2LrbG-ik$A^RM<)T5n@`LjhA95vkeL&~f$ka5RRPCc9eW)f1p}hqjc;0y9?gJU z1&X~w?X0M@IBCo2(JsVf$|ld-%VyO=|EH%-zHpp7Pm?v;#&hBJ_jEwxqD zccjB9=z-a)dua`;UxB!K2A(8M{|X3Jvg?Y#0t>{Lyp?F_?ZtG1M$=Q0KW0a`CGKN3b)%u(AA}JY0WEqsDT(!uUrmgnUZ-N4?Wp zO%`*gBB03RxZPD#yJ=WH2aTSb3a;mLy?V;1`teOIIkKQY(vxjag5v1AmFr>lMD>y% z+M_s()I<5zt1b_0fc~r6hxY=XqGcnAXp@H#7xdX@(=Avx-(#~9hS&z$9@&zhB*lt# z|MxtSA#Y&3n9)%sbmvYTT(+U1p9 zXcQ3}x3RGSVoUdFc@M;Z(`cy-f$mVaYG6OY>B|==fb5Tz0pvsB&^r!dZEhxE@%7eF zt1xjJ7Z{)Q3CAj$nE>BsEs5BCe*KZw7D{%Yl)LT>hW;*%PD{sdGYpQvaJsJSFe zk~$h4qoYrO_e7Yfg}7^$TXsR!=P;#r-3JN9g&JS)K1A5*!aHYDT-Kv*b!bar#0;Qx zf2?FN+5ryl_D63WkfKS0x9*(dlf_H9mRZnPN2#}kb_ozKA&th7$5*MU%(VuQbq5_?c_&5C%SDqAA)y{{9>j8 zG_PE}W;(-CHITeA_o{Q}{;^JTFk28aNpg4H90D!DwhtN1t_NZ~@NdyANjB(*a4E0$ zOu-AV@aNA%xSh6-az6&=rP1=U%dBF4!3`pK0&z5}kh-g^Z2PnL{U2)gpYsEoF6ePdB$aE;A5XkIc>aVPNmnL}aG^^U5^bGu(d3o@>&*&@y_>2Dl!mdiNZv zhQetBNt-`_=mVOL#=nbc3nv>Rs*FiU(1FQmPM;PnEiI6~VmP=Nk88}-xWL3;d9wTX zs>_K{;{pNTF|E%_4i+*CFr;psvxEFhxba0AMTPy=QwAP*$bD$k-j{cv^kMPG0q6 zu6wp4jnEZlZqxdw-{0^@*qD}Es)TfKJ8Z13-hoWb@qnBh18G?o^#=D}d2m`2nZxf% z&I=CII4!C<;wA;@@q-CoBZ5=ls5$R2=KD_W=(ws`p2HU?sWwnjm$7(xOF)h-NXdHr z`n6&d{mbH)=)M4f>HND^H}V}dP!0KxpFd)Xv08v)fO<|4McV`u7LWzHB{u=+fQ2i9 z_oJ1yt!+4Q4&b6&iSOT=z}Tv&s0apg{jD9z$^=;FR&Nv~U#^)+JMTaU0teBlwcWqM zd|cIueLqcHQv-XSUgXIiP|ZHIN;Hhaw?{WFQrE_ z?-xlw0LdjKC4*Cl{}!>>Mp9qiN7zd|gw%Ww;ew1%iQb_k zOpVq(wC=jP?@3q7J=cw3dI%wwp*q3I!XodVj5axZavVdR-?_q|1n#YD1VAb1PGB_1 zGqk|K$gYAbs9@PK+_7$JQGpb1UXpKzG@AI$^d&8g-13!@TSSCE(^Ugb03 zl96!g7Z>g!r_nYpFsNPJ;NZxYe|dF@hU@(WOiU{G9zST74zH3!$jc7-zO=;y9zsM+ ztY>s}fPjmq%MTS{-Vn2wkoL6{C-#yqLzspQ#x!`E0LIG`TfT)#dJ`}gik~m`3vkmO zh+i{w{3eeS=m)?Q7p1QILHhDud~dpxGYo|zjq+_^Vz5Nd#Xv7!0afSv6jI$bOAj7v zKrLWzDfXe?#$H0*ss7FlBZX0K-OqM)2Sw;|OsGAB@ZZ zDRJ@y6YU&sTO3i(16;dSGyfR`Q#SQfjVx6pCI++TG1MiXiN!}(2UM0OsyE?Y6O*|0 zi|Ms&!Tca-mN#=eIzApz`5i_&$jje46u#pGk~)#x)OaGJuCC6^%={LITz3Ls23$9~ zhI7Giq#?L%W_dY(rAo-M1=)EG%HRM>wd2T0#FD*nRmsmc{RHgFDIT=nC99-QRnykF&1t zx-JRAb>3aJ$V|bM{az1Z*Wb-4eT|OJPIPubooQZ#PL=?`ZBFz1RKSG^s{7VkJZxD( z$GtyRo7w}vpo{Xl4m}0qqDBKS_q*l&YY)GgD}|>vYB0?`8xx2;LXZ;E-FAe^fV|tx zfn}$0kj#+(NAL~^Mo{Tbq0%ceG5@S`_(|MUqnq+=V1Vp0v`vG%RdI5^6Np11-Ka8& zYahdhkiP}+P{WQaJO%KTVqENLP^daq3;b^+FZ1_s@{J!w6VN;@(_=3~;w7i17P_Nk zg0YKC8;r7ytjhsoT*km=zxh!G5dwrLGrHh2VeKc7Fa?B#l~fY+#rlAantpyF({LP4 zN*Ds_6M&Nfv!+HCg8l7n!_QAL1|Qk>RoL|D&0=FFwsmws+uMPep6cD1PJ9A_coWv{ z)j-nKR~4C^5BFd`!T^93Gj(*xb9j;KUPuU}9h`-iluKN|MuOS7L}V*U;@*>4FP<$d6Z zMe-&IDib&ZEYPkCHI#KWU|F!E#wGKDYFl{dZ*=s^vy3}-H3wKw{)6gb?|m}pZDens zRH_Q$&%lt}24s@TH=%WM{lHmB*X2_xv$AGk7{+mu`V(Us#AaxH@+;0ZHdJ8pJv!S0 z*aq`nYd}pU5UhLppm+>@R6`31pQ(eiVa5+ei8lgOw=`Hu&!MiBKQI_jP&|ZTgr=R0 zLDf}O)x)DB6>2+oHqwsv_6)D^IbH)vcJ|Kh?ry~TiUa71iMI*!bn*wGzkyFg2xWUC zD0x=!J_0npSerjB$-wE zt~a9XWhRs%5fiSoen?iZppNdR=n2Mypb_CH@m~xTPFM?e(oNBvF#l4}@pM#FQoRE; zZq#{b62^9bcrb@b(5k(LOXksLRy_o~2`FDzrpeQ%PvPVkrTh!sIh|gw9zqMa?KF;V zK6WZ98=5*6rJLLty{b&UBdNezqkZA}wHlUjF1LawG20RxOr^7x$2>DoOENMd+)YRy z%`3T^l7xhhLFlNmal`y6IXQW*wWIOrb|z3((-qm7-o>6a0rml+F~Ohtzb_1 zvJ=ylLeD@_-DbrL0Vx$c(%^$0vAppFtg0%Z&osFC_(*+JmmMr1Zr zLr)3@O)US*CzdX<13W?!6DevDS`xw8oJ1JRhsVd*n3(Jg)zZbl@zE`3PGP;46c@%m zTsnD(QRk#F5NrUFuL%UXfR9tbyKm`9)S9lY%#R88j4R_0z5o=n3XhPxm<&BQDH9 z!EZENY-0`eVAMOP#5$If)c^dHrc1`suOhf~Zf-8yTu8pqpzKNkJ=Q?q~ zb`HkB!##2M_uTL{dGN_G){9;!c{T6}NVm}LDQWW59s`HCo5US^K~)8qD7o`y*3t*C zuV}PPx;=dO2Xrk=-peW?y@7{5+P54g>yPraa|KI+ao5Ix-@;@?(XI=y^`lwkD&w_; zy_@ovLjq|8tn(W9DW2}ksX!uO(tQH&pgQr+#lpTc`_pcA^+WcL9dg6?z87bIXGmE8 z*H(`D(TK^!WaJI$8Qz>2dJ!VKqsttG;Uy8yo1q(6VpR(Z3jyaxxsj1-3sg@nnxF?s!21%D z=q0=>J8gG@U=YrAD8iqj-IF3zVp4Zwn#s@-G_Dr{?;cL`TXZ0_yDr}S#9;0X6XA;B zzOvs0h2mKE)LDcY<}>X~3h3tZPpo8iw}nQSwA*b01p^$+6v=O;0wi6t)=+3B0zBUo za0#Im3wmbnd?GEi2KJ5RCV6L%U!Pq-Q&LUNM1cibnHRQPmiP%Kf3b%7FG8db27rk9 z4(hZ7!1v|KrL*fE;inYR@@T~W_&4XR%;&EU6lJ5Mq7-w*!BlG3MepOSf&CThR+Dlm zFgqD@_kLEx$FPh7l@SVx0zMeqOQATSW5{yg7N7>DyVvU73IE%YPn)1IWvaq7Ur%f; z#LS(@N8TGwFqWt5`T*s8$9xs+|6r3Bwf;_>a}CA3h%pUU0ZqRQ#@3Do+l&>)3k1gD zmf$o10D1LoJ!AlY;M>B&`W`jQ)54liQGMrpLyOs%n`aC|uy2oSV+{ zSPH=Me_iGbypeI-RCjP)OvGoIH8Rq)tXcp+193KBN$&;>49g*cXRP1q8F9gzI|)Yd zSS}AmMMaT-2yTTk=}}~o&@M95^T7e}2>mmtuRQ}JBF!O5fGk8@)NYW)T|$B9d3J7&G&K#4A@I@I^_Psh(CKqbY9Eab zh*V-tjX$!m5C9)4=$xwMwz^Ce^2j1s5`bwAO0NiYAPX~nfu~y!=@&Rn{`Q{kOu*B| zI-^0Jg^Fw%V6J)5hRB1l#v!V#us>Er}G3N7UqaRx*dY1wW;A{>EWqL~grfBWzJH?Rz_ z$>H|^fL`Q*-6H^<1U#MJzk_CLEy4)$R$IYe7*#lWruvj!mhwGBNM^wP$bS=JSqIUk z0t5ToOBNiB=fSJbxWKS|nBi3KcS1=t z3$P6)j)$g^tCP^-`+N^N;e100X)*`tN=wJeV)?l+cYs>{d6?kjwuU>#WLCObHs%uA z9Qe{C+9^sp+$l;dt%8-nB4U6Jf|DP=i9Xut)R5D_g#P}st1 zPNX#Z;aA+xK7WgEcf{z}gAW%(2?}2f6ul>AT!v#)r)Ok+By(|q>UFM{mA4`NxG%Jx zAM{t+X(#erwbsWmoapTDwd%jE)4=kEaVNW>!7r3|R|e6h-ppUnA!`-jdh0aVmpgNB z!Wh-Wk5)zg4SHh08Vl9#6R^)S>+M~_<7;qKO3}OE3R1oE;)s`Y;SG>`E`|q%psS42 znHzJ!Zdy*T4U`|4aFzZ*>Z3Ip*oEO5an(hho6_w2Znsl`KOFA9ZzmTF7kk^=1B01D z=z$6__3u-Q!P4PIHJ?9+HyJ7!i3rRJ7Vq`{9|@Wn79>FXqL%a(xs`zu$Oj7U>nna- zr)tLEBAv&$MzzLq^de}D5JWSeIQCP0`JccrP-0Lv1GP*2F1WKgv}~ zmzbdDQTRmnd@M}Zi9?nIo<4g9U0dbu-JkN%o9=_9VP3ls7&=(|U>>DCF0+W0$f12h zP|zLr)S8={BY4;Ths}>Pig9GOrz-@cJMI7s0JkALcER3Sn{-|%=z=iP(#@WO%%u~u z&sNO-DG!;Z*$Ox({B;PA6GGf`?G0?8bj~-UrC-%1B0&7Y*<>h0`Yf?$I#1#6m+XJ`nJj225WetlzsV+Lfg z2UTR7`PMD1kuK17(5@_S7eQ?TXE(>qKIyzT806!?9*XSpyk zbhvNcBr5<=WaZ>kbZ`&z>--R==Nb4cPQfofHTUG-oCT&9iIj2y!ra{7dwbP)S?xEV zluh}ctV6HPd0+Gpkzfe3pj1&emXctEfItNR;>^qJeu&#sn6h9yRRfQBrQfq3ot?HI z1i(%2IHT|Q--p5;`~!x?Vd~zeAY=Ob`!6?{BZg!0^YbezD(dR)94Dm6%hZ4jkP&u# zyzkIslV}J+V6NJ`r0MBA&@Qc(`ZFTf*q{b+Yqj+!};;&cj+@kTDic1`Iy(N5zP+KZW!e&u#g8& zt2LXr1WD8PE2D2H5WUO+P*k)D{X3IyKKKOv4{q)82#Uh{yDIOyJQhhwbWL3%QOmN0!!pOu0NK zdP5mF_1m{^?KFA{GwS9S7CgZ|lfzo(zShqj7IbeD@G8{5JDzJAV$!cZqrKVI(bW9N z-C1m)|48Axus|^0(V>VsCe`eP!iS9fz&i*vAtr`Y_bZL??c0jEUneH+>_+dnBYXjt z0F@_A@5f2JAQ;t1A*_CH3X*4GVPQWr+I5X9pJvzpArMBcFhkDo&<^5kUNHtL0E^hL zPU;6G4Y00mgBXuHvjf_JLdO*>6RA&J;&O|6B5W_^Bw*+e=jBVJMh!~ zUCJX}^t1t!Q7tJ)!qy0~4BgkEN*n>E0L+qjL&=R(GZXUw%SZ>bqpy*4xd$I;4cuXU z4~Q6<#(*p=OrV#8_b2a$Xk%t#aq6LT^5G<*l~=-y00x`(r#ToWUN8~>A{D_@kYu8q z3O4?vv_=^AbU|$zcubMdT->%H%~@bjmf0y@riJ?!fEOSi4=$6f4n^Nvdrkj2iSL(LDpx+q49)YrcSKw%Ct66kvR{QX^b zpb4wgUCh-V!q5gE_k^shtO11%oH;q)U5=hbL3WP2!^?eLONmIb46hfAmautV`f-T~ zpf#R}CCD^;4TM8;Kg1q2l=8p`7-olxO-$+WadD-Jhl~!9BQjHD`%2Y}1rNarRqP8( zuQ4WMwwg!A`JUFWStEZ2J&H$q_+sW2uj>cZlrKpE5Ph3q)!v$x8&f~pnhsvOf3=+8 zaMWe=Iwd8gGK2CJ@QdZ^m!t&;V;GSiP^H9&P$g;7R5}Uz$jcAoFlo@VQTV>}j7!1Z zkF9c>6}08FT@3#S$D&ZA(Fz$go2#YE!PMH(7OEgg2;s3ahbQ^ap}Uu_Tu!Sozbtls z@tPz0bSyUAu3uXgK(8naLG=TGGxD_09I6SZB=OUi6Zdw!5!v;Rz~=?kfbvLU6jWhI z(*^0oN}2OTys-d+Q!XzDcuRs<5ZW+a21N;25O_|ENATzbZA;;O2<^hz{G?jMFv&cJ z4K#2Mpek9)ucdfHcDa7ggUxxgwK!ad5|luQ@}95+Oali5Ce?L?g6+U^v(SCXW9vJSVb#o z|NDZ5>>w~BIR5&q8JV#Nl2j9Hqc`in zK!X*UL`Z=U3T5hLQyV;NC8wlhBlshb`ZXY_fiETRgqMmHiPS=GBXcAtBn(3iK)250 zkDG*rF*01;lo0q=_(X$!efP61!5jnZ`{VjCDSS30`uurdMGC+L+UsY>3H!omhZ{&A zD4t?Khsf*C1xVv)VHa05ndheKv;M)s9jJ$pT%sCW@KJxYz(1WUV*FXKAPs0PB=4xVG z+^vUSF2(-coERU^>;qDhHyPA#CFQ-x-m8w!ct>6u(t8;IBGlAqspI~gvKkvvPbzTN8{HhkjZ0WV>OBOx!E#`z~qqU zH{LcU;z7=#B|mPY!p_MFv-!5+VQyw-*z)@ZN=eT;ZR|!%S-W-yp^V`7N zHlS82>&?=K&_4x%5o!>~N|%{P-RGrl2?$&qua>+Mw0pfbSZ1LF;MTa%CM`ZDrqu5w z3VvF~5DlY0F9!$z+5MY0i|82`-U&I3Lj!@)-hv)0M@2$H0;t+x82Io|X137(ygDNz z_JxAxg9j6;iEG`7Tn`$&iEI{c9BnQcfG7OE)LF>A+{roE^cC@;m-JPJ$M2l*=>*Ve znGQ|n$?2hs(DB~{wm%=DUcVN1o$CboVgN9WE*ot7+rw(|>(_+yCb;fYu_OcaAZPPP zri1qEI9ARI<9q4LtpSVi5w#iXy7^iPBSvJgNqnRW4*-z@hss{quK9i9c{*Od&G;3k{CNmvHjU7rx<;cxW_A9MEy^_u(0L=itnDZntkf|0DeuF zT-%P7=g1f#94G7B-wDTJ+XX%WH5L5%Nu|BxNvWygPyT#>4bIaOh0BF?gZU|fE~a3V zOyo?gGODiM2xAK6eL#7*d2#OCO3AKq$&mH}>D$}@$%jjt+z)amLJ^5_#{2l!Or~&dvqUZge0UpDHX;`FH?(hCeI+Aa?$33y>hMT)6_TZ?cT}ieWA*8}x1>0M5!OhBDNuDIRuQ z?zP z1Q)!PKdl*rf~w^9OKm{!8PJ}pupz-PZw!%h1ue_A-7c{7RcK)U=qR<)@nTHo+P6mzR+xP5kU8h|@ZF z7Ye*3s$gv)+;=w;*XSf5#S4?|W2UQQ-zF zVr%N9L0AOvvZakQ$H6+tTl5p2yHAR?Rq1|57XbYX)62i*FvnhLP4 zifY?9b&}%lPEp7XUIP&ZP~bamQXr#F@OlJPFS8$_vXq^YY`YW+leu}dl~e(Mg>r{oa__n1n^ev!EfgZUIRj^Frkw z`b}amx-$Qb#rAbO5&B|Gj0Q`j(d@f32B!4qL?^Heh9;jikTk{9TXCb>z;AzoCJ34q zRIc1<2W%k5&lc4U#=BUmEW5No?9dRyLqbh_U~KFdi@agL(MHm|eOJS6Y$+wLChFJw z@K4(?t*)foS_AaL#q)X%w4kGv5eJLepwUD$Stnc#V+rkeek1V3qbYOAl%_XIpjQ{X zeD$guuI=JXcc(fxcMe>VJAjw)mhhY5_xk=5NdYL)3N0Q{9IBhsYsu?3KM&S;@>^h3sTz?>)1} z!7(x-nc*ONB_gsVl06z^WFu&Vn6Ob25iS53VnTa=q1CI? zuamw;!GrpNJCu`^b1^FBF`}fTWc=t6MyV_yl)#acp8jbxYBS+tu}L=AomAK7R_HOx zyk{6wSO^blH{MV#l03W{$5?G@U5oLJvBs8dS0xM(fHFd}R5P#4Gw^^K@i&bv+#O(? zx!`}fa^G^9KfSo{1ONv*2T%?4&*ypI#z}}xczAh%11xQ zpPc&Ci+;FCoyPdI3nJR6;gTD2U9aNC<}pBiRhSy*H>f;>QD@|YJTDStPaq6iqQVE0 zp_Jpq$9-JNTV~$dKdzkqP!hF=R$;?(8cH4HlEKZ~3wY2#Kp;q^pwR1d0hTf*gP2Rqw&vYa6F^nL@MTFJFVB=u7hH zz^&B=eO~Af|K#K0-kUgAo~U4bcZ7G#P=k-Q{TyTj-y57_%%a-cFTkBuE2#Yn)L4LT z?5U<&3;|3CoxPHc>r4{`$*z{D6l<2{-*tU(zyj_0=aLI{V0_p}pWFs;TO6zQfi0DS z0;?XyCRX2ezT6cGXM)~|YbbD4V!64w?LW09vt)&?*#fsa-hu>xPL1#6cSikE-mb$i zytrmR`|fE=;K^V%i-5om^u}v*k7d4n`Eq!8$hFxG%7GIwX^G+N@DhD?KHOncG*F=n z7vSOojg(Ucv#1bJIw%P~wyAs)2dM+_lPL|>4?m4^U;2=TFI={zI?Bb`L__#96zl#) z=bslUM?7{Tv2r7EN}$KFa^pH6ZPCW6^V`U>=R<#>)Tl%&Drsz(Ch*f1S}L{s`8|H! zY||XUvHShsKdEDPi|wtAjY09%*-Y{A*ZP3Rys_)>15hw#y=#-{s*jJ)CcGdak#n5(dJI>lqz3KUoe~h3l7ss9k_@eHycY;p z1~Atp_oCWj9YaIAP`emC7~Hd^14TFVz4x^RN5I~^LO^k8Yc@6Z^$U>f%ix zqUqt}{~Efk@c8goU2gMQ(9|W|yfR*Lb_`AQt`@wkNgpDUk`oyiw$`@oJ!3!ocDJq- zg||`KlMTQj-O?bBXl&e^nVEYX8{N0_|9(4`IPOi7*$TNh6R}?cBzVz=cgynY>*Y1w zl$4krR@oPQk&$H%z=y(I)nEsgfeduEaWV0BSXj|Q9emwp1!sjy1vL4Y1!SEQ@q8Y~ z8Tef?=S_a_szb}PuvGd3*y7oy-Rwm1D2)!&nRmsC*Af$d6>wTyu`ndn(P3vn6!edJ z5Zw?9Q}G30Wi!2zi*OLP?f3FByJ*jAHa_Q{@QPVfX&a%Cmr;|4!CwHYI@q48sdm;2 zn-3Ru0R#?Xe0#AO&MU#}DnK95f(9J!grAbVyu8$*KfP3H))nTp8S3Z#64JYsBgukC zB2?g~2Z5we?SY}{V2w;s@hONZEC<3YhM~YqRF9mGCxOs}di{Dk3gzX=qlH1yIpQbL z9gnR0k>t#`tkE~cL1D@ew9@kQw)kQ^@iJp3{#ym`(`lzpN*YV1sECpLRuVb%T4!IM zT|%6{zHMy9?>-PmSJcZ2N=XHQSP2kjiRsT7f~+PET3TA9W}**r#2k9i3qT4`bVtH3 zn=9`1!70~be{B?zIC6Tj6op;$8=Eh707YULub{ z;8iAJyuMBKW3xTS7S$hJS;Z<3ATG?Z#p_ zd9#>=)BWMF>Q@>ckBd@n*W|?vN{hy+YJsp~(is(BLjSzs6hYjw4 zz{2~j0?mzcuH)WPM_5?MqFs|+=`EU?j@w=1-Lr8?Q2p?Uh+e;&w1bDh%1S(tREk7@ z$j_gb^mF|^!y&S8xJ%~!gIrcLfm#q-5H+MWf&sM=uK7#U0-Eib{0Ojx&}I+3SLV>j zngMa?r*34~{2R0<-yNn=oqAh-bRJM94xwOS6@cuAU13Xl6O7%1_lk;eK%#74Fhc0U zrLrY(YuN?Sb@lq)RO88(=4K@om5M83o0IHjQxIYGQ1v7ErrXGAetgd`Viu@VyUaIg z@l#!q;$ABuN5w1x?xxgSk1`lT4&{7rDE?@A)N{sB{A@1rx&t_ievR2I@yX$1E7lc< z<9r|xy&nF$YOm-)UV%pT6exgRmoI^r1d+lmgDH~@?!2m*N$UKmKIqt?VY_|KS^O$Y z(x%O;4Euy#e&h{6?u?Wg3}3OrO)WOt?*v#N+{;LMu)Es|3Ku}t4L*^{1ojxDcq7q& zNNosxVZ0mEq%TN3hvoIcoyzAjR|s5`-Zza;@C#XGD~N9#PB&)Se*Q7F#Vw!$Q3_Ms zB^~NWI4oC&!D6@dH<9>!(-FpQKwgPz#M^OhZLHocpf>HyIutX-{137qf zgNHK^wf-RUt;=CqSe^Fhj5u1f6T62F;!;5II2I%)h@J^Wcct{grKe7d?s4Rd2X&W?TT>m%`sOI1?@t*(km3C>W_(FFox;31m&u3IuFV;LK6 z;Fb8p;UWTNMJ0bj$Z4PxkSNWVxN}_2sme?i(l%vngrC+8kW8;G>8f06Sb$o{K`yuv zJL?@oBWV>B;^O1U+{%`>FH;cAjF0D`i4pT&LoVzLyr>ClGRfASN`NdjfTbUuCMdVS zZFX_C9lFSR!+P`EZBPbjIOe`}n!c$)8k7Ar(F}0mb$m~wO$fGHUAkO zf`pf;D4HAj&+_(_1yKBh#=v{&qs1=C+a%+WMn_bv4wpOzg+eh+q?$u+v}juYbKV!d zDySjwBTjOY;!J`}q?axSU_D6W(|PkGa7&37LBaswR_{mo+7fL1~PaI>2Mmf z0v0m>%9Ho`=)$?P4^K027sHYR3@f_n5|#lDyy|Nva~#vfQuP%sU+|}{e$K8CXTvQg z8ZCL1_uf8wYfV|fug{Ov~tZ{9~C&$ zBsjPMPN)XJni@)7sFl|g%;$*gAFthF4BEk>{oWmu1d`=fvq%6o?Mr_TJeT|nMLWhk zA^{Tsn`C^}$?syMN*|D~0O^F^a`axOFL6xXs{0q(ZF8=@9q?BC?^oN#HpKqk3+gT6 z`m^q6y6x60^Y*Zgj>CtlwQR}KaIGHx zD#=sN(u^4hIug>Xsy?K=?LN=6=|t|LFXA+%uIbxbuTUfBlCR1_EIuQ>b)V2O5=b&u zw%VK{?AU9Z>;ZMPZ^R}8x0$^Ih?k#WEOl%N$Yt|#r32H&IP8W@rfd2PMKi!k;-o^P zeTD0}z0Vr=&ZBPzcz>?tI#5P4YtaZ#>$Yk4qrQh4jV^XWvG+ zks4gSPZb6Dr_$Pi)T=_96_6#zPP`6#mX+^s9K5WTZw_t-2p0djeXcpVkmb(z1?{k^}PK#uDk0H#5!Lz`c|sNfQa72dl>=^cI|Cw5IO zXl0OQ20ejtKLT=2pamIm8TMSNfHm+HDX0)H3OzGiG^INL%d&ig*fnXKm#t+GsKE41 z!MQ{_$pE?X=>=owKFBT>bWKeN0PNApZQNgnMjU!OFgf0`Vr?p}GB%gQR_^(;+vf^$ z)Ts}SO~G#42mWcm>DCET-YK-|y9L2UU92A2k6v3xy}s0v0wjd9>2a_juDTEBhrcuI zeT2V);bYN99$l!KnCoE*c}!7ADACv9J{~b+6}VsrF+h1F;#l)F5;#NU5MYojG2dshmT=CK?BJP(h+d= zfOpsy-s{KzEjIwp4>( zLT8Krsb8nLNlZcIw#zqY*B>l6jTFIDe}l5|vK35X>>J>)IC%N7hy>MigO3NbGc2P5 z$L)+Y%FdbH8B{pWKC$3{ zknI`)0lCai9+(Ct0`?K>kQ`#U^9d?v_)8R-994I)8Zr7+{CJi|El5C#655Zi;>EmI zWY?=SEVJky9kPh;H@gK zLY5?wO1w9eO1#`vS!dE6|9D}NZF5Zxd2}PZ!ta+qs{a6arDn~0oc7|N{{∈g!Z5 zqxfEZCA)|Km+YpRE#U0lYg)_*kE?IYq`1k6O&Kh%RQsPDHvmQhbJ%=EP20UUoymUm z1oDy3)aAI|lkoA$KLuVqi~cJZM@L4qd?0x$V0p`oG+Hh2za^F#;hE_5I(31boj!x< zXSg^xAfLG+_fkw>^`qX|S4*SIwFZz5?i1gdww{QfK;HR&WXg{aLXPzhMWD-#-?l4z zE+GokZqFgGrKBrBmj2N>WEAA&%)}G#uRrhV&;S=HV~A2M z8Rl=28>K(>b_=nvdm8dWj3&Dat-(YD0fn1-KcUmzoRg8AqF7u3_%~ZA1Wg2C$Wf)( ziMnr|0u51R+G0SL-|8WUPOV532UWl=6H}QjD5|SN1K;kWs6ZC3T#=sW1@gX9GTn%7 z<)8#61|maAH#~kaiu1F7*^`HpY~F6_gSR(x9-s%|kPYxlP~Iej*wtq?3lJA3{lqh0 z0#mJ6jnL5!KhSGn5|0=u8u|>isx3a5)~~3_Zek2-XV0+xB;s%obEk7Cw*|l~Z^)4y zMM3u3c{j1-l6gTWAj!N8HbXhh&>L-UZn`uGjHDw=7wu48ARyV>*{S`b{Dy8^L7nAT zg^mA}6dM8UrT7X|?2ZS4+=%7hq&N|^S8d6hMqhdqtxYV}9{r&@JoZh-+u!&K3WrS0 zRUx~f*LK6M#=nA8z?0!Pp(==q(0u#kkL^U{VXAb57Lj1VTX`e!vFbWMM2i8nu?t~8 z$>XEiU5WH(>W-`r0PG(;ge>;KsS%7tN8+XLkBvpNOhF>q`kPe|6M2U_&ZpS+dU1Dqg66u+O-2tpwe>*|O>ZbwZn zQmlaIwwVH>s9c^tRV}w=J{(stNR2VL!{`dv>0+n_4bv4S8ygoVzzbFE*RV&^wN{}8 z4hd=dc7+tDz>~q^&2A9T3YGLccet&3WgM6M*p4e}W-FlV0iJ>x7V9 zrOOQrhLmcI6%okx8vTlcMEdVlZFJ9pra)lh6Hv~%K&}KBIbW>9YMW_rA4n!6)Zc;|2Ua8;8Zmhl}QB0HNOS zarM1L#?iC=>IyER#LDSDgQ57TerrM)7D(+pAn#$x{K}Op7RTzlx=+kkhPP3F(0+?X zTK^d`8+y`c8xnNEaVO`Rzd?7Rnl%H>NPl8w?{Lje;P8q#6ho({O2|>KKmC-uW3R<% zgY2YcDV?9^-YJksE$+Xd<3d~?$VQ^#{-VO`ZEh5ZOjr;stAfuSO0$z40rQOdm)0$P z;DRpQvsNB$r?26T^CGicB%bW#YC&B44j4{F3~}#X`wLKvdTI_iVcjMrC&xMACE!a> z?r+b+?}DqTQ~Xiz6XNBB4%6y5!E6)1gN@a= zN)nmQqyJ6;kMYdM72iURz(=)HoMkb8(wfjQ%F}D`W#DbmOn;!Q-GA(53u}`)rXwANEQy*{SZ&x$^&WYA?f;lr-!kCd6Wu0 zaF|5PAYHyl41@g1V+Yjh8jfOUAsGH@&^w5c`DM#luvmPh{imS&(C!b9oF*W5tSn|f z>5~nRS$ve{>~Yz~_@Dkt*+w8;Y@zJgHmlu^5&z=)8UUlA)faFFN4$y(u}%-MdSZ}V&4mnA@!&*W&1t$_UqT5KI0 z)8x>+7?QVM6_lPJQ>}4<)&nGu1wY zNn_O_^fj~7Z@b}WtFN1!T>|LeONyA%u1UK$0-yBgr5&*GYxbUvC65mD5cN<;=*2yO zYFlku=Fp(6F>~>HhxO7K^xIMS8mSyl4>s4~o*=Pgjv!r@BZHeLwaOom|W_$BwXYTek;jk9;N( zE;mJFS05|o+vm@yJDObenL(6oEu{7%9HRu$n{T!(_J!!usCy1A# zvND*NC$0O;qci<--sXH-K#9VJ@V{V?4eT7VDtEXUktoFq`K;>&{Q()k;s=mzc=?k! zL^L=d3cT7bLhetNzXXV?1iP8b2b%|3P*2FTM5mbgEW3!1sGinTZONK{hCX5lpuv6_ zhgS(aALhpE%c}-)IBc%{Oh*{ngt2ox{bGDOlv7NMI+12^XSDE3Uy{{wm#8oVD2WDBb= zc}1|+3wRvkG+D4Oiu>k14AOWpB8XOG*uXFAyr9Kqzin3!QpMEcnxoNod#l4>Bh=XS z0I8foA88eIIBUz3s;0r^QW4vt|!jFY@xeMxV{p8W1|1Bf((36l5`i681 z;OBvpCw<6mP)RM3yF4BQ;T0_{F(Y{}d{aZvqUdjB44W=9yVErUU>QPi$% zHbN`2{+&g4K(4eBcon(&njZH+{>j4jT;EhDkj*NUmEYWZS3o`@ztSj}d9CY3Z+y%8 zQpxV$zaUGb_*v>O)`}Ne)R3CRUC3e2oYUucPq>s^#FK^~ewo-{PN#qboCdOr_h3>+ ztvzqMRB0xwFS6q@;Ji!t`d=E2r0?knrgzn{&=(Bw2+=CGP$0eEEOmf0RZAU`k=;5!IH1!bv{? zDA2>g!X&6%MDLaDx+8(L1cJf1jk&9T+34Q*+{!nu#CIU#YLuWK+_uZRJp+*4;g{B< z)o=U~`3|E)&}Kuk(;WEkeC=y}jPJ-W;f8*Z3zw^ADtP2+ntPB-{x+ zEG&yMuk*-`Rtw;;^_wdohOeJEWlGCOWKega5IA1T15pB|uY3{{@2+eyv`cWom!qGP zX}n1KvKGVWi;h(TtKP*rZ+0Z1(aNy-2;@LR=#-q8>x@_m_Nq^&xYra=+eNeF70;}> zUQwWcF9BCk?ohcn;uB;|#5?xCxHSjcnTi6OL4^9H`+D)_Naw@K{BaAoIKY7+zuELI z1U&BAW5JHoNEV|m(~6&UQ*sT2G(v0^WoGG6ZaBTnB^A>F;h`PAW`-0TXMK+2aX5_{ zyNtWLarAuI_(_wsh^j@_JXI2X{M1}d75EE5SLOfr9zHt>Clo*pBF;8;Im0p?n=_9I zpf*3neg+Y<^7Z)re~q$Fm6VmCFzZWdp3iq)L070GrQr{w3&2-fH8eC9!NK-HTI(ao zlj1274wBX7&>oWGE2*9#}a#Z6e0WCyD*|#{AEM(Bdq{VB3YLEmsX$k83768 zjuZANek9QdpPN+9c(}M=z%bcJ)vJA606rDR)TfU~>FA6hCO4%_2nHq?B&M=(tC$r3 zbw*wG*?*;yt;L9Wbc0031tQ*ZA~e>uII~0;u+C8{j-uNnlh}S`wwcG@RokR>l{aw? zcmVf;77VkeF96r?+o-ZR*4Zrf0$1&0A_9g(<;X9 zlc4_ozN1xz!48O%_*SOJp(qse7In{Rj!kkIRSmWs#{FfpEGL<*Y?kR zCt~+c8aK1hW~S}+0-airEZ!qlB}CvB$f-e->vTiNy7ai~hXfTc_kMmdv@3S~arzz>pHvwS2oRm}s=I%0M5EM!5Z~DapCyOQMc5la zhgH4H*f2CEv=`ZWF0m~A;=)F9hWWDLP|M~0ze`-k?2FgzB++v8T8cp%Xe?PU&7-X?qY#JQ z=Mm6ASldjXQw!_)%o${kK0C&7XS&|?am4E>OMjBRe{@3IrB@n?Cdiz4nAg-q1@L0< zuG0PbIVW6;wxA=(tE)&2^PBIG10qO&+&&ZNRYx8&nG#vs{zA_If+CmR;6h8v#86X13UX7vUkf?*5eGP5hV9dDx*O z;+pe({~5<^`{<{nnamcMZ=Jsy72gZ`3LLhi&Arxx^QBZCr|A$opFec`EO(wAHv73< z%+I%+)W?ZW#bL$f{Qe*4#3e>T%un?<4@LRVr)(4Zok(b7PURJNlY?0zc0O@tv!fK2e z8e&bQrKQjwM#Z@4ah7K+B{)%YiQVe|KdkPWJK!rj61x&=&t z-swGSVWi+Qi_@Uh3Ih$~b;k3D281r@+Eon=17Jrreq+xpEXlf|?2<8&@)XMX`FV>_ z_Qz2{={TbT`6oWl%KyIDa(6>yK`YHI+7y`tEkTaz&g0`2rc(fdcjvtu-PKk99UI^j z;56VhM<5t(GrjK3Abqv;Ial&Q`i*x)8rs!+5WU|qZT{Uvl{-v+ZMtUeDP4Q!#PtXg zw*rpdydTQx+NtkKC;4WhD1ERjX6YpxKP8AA|8=`YGLDYx`lIw!as7#LA2zA0u#id{`~NPaKVHlSHcQr+N^#aI!vC#_<;v8;Y-t!8QsIeS}L zsvv-<&4ZFE_6Jl));VE`No)E=nzw%u$cyQUh|*unscld3EYV8xT$_9*a}gBQ7sCQ% z%@*9EYeKbpo@dNF%o-|g#b zCBAHx3WdH-;zpJyK6KCDz$s9w(f+)`>k{Bq#RSW9KGj)`3S=MSvR))zHfV0vR>vMc z^JOKzNf@diSpqU7{SpmGzo-N)dP=I?S6?q`0Rr!1L#VtOhef!_-}T!N^~78vnWgb; zl%NYdfdlk!s<5fXV6ojq(IG6knTKAeeAOgw=XZZ<-`?|**&?L)XUJpZPW|MB%dB_( zW=Xxkd{rXS2z&S`&%2Pbcj^>|MXD(f{2kjw8FI~{+JuanntBbk$%V=vy2;42e|qur zP8r~C?`A%4yCCEzF6#vBW3m1%h1Lel?iCR&@6{>iihvW)+MK~{^lU~0n7gOw&qLBO z&sY)6GGKrMSiob~R8bGglV$ogu$stXxf1p&{gV4HTmf=*G|Kgd6g}hOdz0oN+AHMw zRS@uI($ec2QLWXL4~h}vp&#nx!gBV*BD0F41o96aJUDw_MMig z65HPQ0w-jIv{FiNt$1(DpS?kG|Bo zfG|51l8NgKN7a#2<@!!1zPoWd&tqa#FkW{Q<*_OvMrPkHfjy-7--Jw3^r1lv9w%KS z5NID$enP@vQ~E3?+r`}F*nLrbX;qHOL#9+4itHIhg>Jw92fj3?)e*cd4{GyWiR)W8 z3ZfI)Y6)81`kxhJ3X?dN41zD9LE0p8fX`>GasuiQ`2BOmNZMa3ZK3FBX}=ZUUxk)8 z)}gLUZ)5xAjmeO(ax;Rrr38P^xsAFwTOYwD3OOr$Mf@PJN)m z7M5!QMA$`WuxR%mNf(c$pR+Nr$r|f8rZWwtA3&}3@fh^F3SzuNd600h@AL_W+Lu7y z$JrMnVf9r4va)m=9P>DejQan(jehofx*IHk@MJkcqTf&p+g9dKxN#r~cD>a{LRFCP zn%>VvB+J{&i@2T4iDK4!Z1KlZ-Wx~kKnBr>4CtypJhjKmm6CpbgyCW?w*-X#+du9D zL>Gug7x5h*?uwTpMxV>HlVMXx1sgujf%Ton=e)B>_jJ03h=^iPu_fRmb? zoNQ3UzjWh+d*m@pEtV#;>PY#v#V7sZPlQ9pdHno{Q6@A(r^~eFP6J$+OcIuv(tgy3V*z<`dU_Mk5W)X@E*OsbS~sWQG?Pz_v?|7zTdqke110?4Wc!Wp7_7-=m1auP*e8oArA9Ryn@$G(?clJ z2^ny7X5_*`8yqwyJO9f_|3O9Bi(5a1YzJW>mZ2o;#1aB<|8{lNup%iT@wMv!C4xo4 zFXfQDinh}LJj_dkyupi$X088zoB&jLJDzrQ+MOZAiy9j=Eb<}`xpYuAEc*D>q%<^{ zsDHHEC?-OpmqM03I{?jRq|FAG7wX49sRwAkE0RpumjBKgSu3}kKQJ0VH^=RRG&f|V z-mYf%Cz%=*ic_cBB#7XK33+ewAHE;ja+l!3`l9qQ;n2{{OLtltw^fA3eH0M#uo>c; z%hnvfoV`w?ns-#K+ygnM@FOKw)ZM{U&b+MubieZLj}^y%qnV8*kT)y3ac&S6|dK=y)3UUqOjoLk15YwY~&t2%y7_#`7m zOnABQr?3(V6eQnAq)du`-#h5pe@l({izOY3ivwq*A8RZ-6Bd(=<00fabI7c4_4_xs z&Ck!QK}vb!%qV2Ev(sXCk)7W-g!w$~$24qAM&qSs=~0sKlnZ7mJ%vgV#yb^VM&teS zPI~h8%6QQe*uUlWfiN3C*~gy~XJPZZABc5BHZu0ov9M;qaoek-W^!pIVEXSk=dPrXouD=JM*be_hyFtNt zGV>>sXHtCL+%qOc_6Y#Ng3pRdFE`IaHpiXX4~?4a2kMlMlp7+Ds}FTq`s`?6%VcEL z`!bw0E&o>rxCL+D62EKy_&WY3pO7m1bpm-z6bR)`TO!IsSG%HR{&Ams96 z=Z+@m6(_h)xO>h`5zCV|N_;`-0voO_0FmSvqzWcpcrl};o&Q+~@M+y93;H=ST3P}b zo^sp|eju!e>sPSs7uNe$+WsTAng+Wt_KOTAMOBn%xq)JtasB6f@3rwhu$6svoX?h* zlt<8t?h_EtaScIOS94y-v34j`AXh*5U1If;VNM}le-Ft|ix2##6ryF3JfZSC;fH3N z-|f2E61gW(f8mI}Lgh-4Hd=g)qMb62iw?L3%bD`#xWRP~s#M6^b&e+d1sLLUzF!5^ zW7;dY;HDWr55_fr0m4ynr~5aVAWE)KJu)!>Y~|(!9dF>y+r%7j6ekrCLwwqlkegRF& zr(12@a_IXCU7b>K{{j$c#0=`z1(ibM|0-$}CHr$Fhe6?1tR0|&%j_5eJy}<4$6mfr zagPS}b`Dc3#KQpR)O$ecA5`n<9%Uac@Cby6VK3ai?zz$U{l#TAB4Ma7iG$bD_$>Dr zDLT&p+6~sb0Ky@Jt6$|k^&==HGY$;T(Bm~Kjw>4_zCEiDuON`B)a?C{0pp!?q`e6!lL!hS2Z_dB9iSdduC{5f*{Xucd?r4X3ib% zYuIyt{``h0L6Nijcihg!2^p6z88YOnPy5~n5V;IPz;Ri&GWvbOID{F^z7&Q;tWx=? zz4d_hLqQ&NdYSI$)L#y`77%g(GtnzDN^q;mRo5N^r9&rL`NDyaBn@^68F}|ZUt5rT zoLL4?A(ZY7h)V`>z{7{rd&|5Z`KO_}pfmEp+XgZPDj#FO#z1TLMfg8hKK|tPWSpmV z5ahxH!*T>sQclJFAru}KWGE)?I3vPd9i2~2U_ z)&+qW$xDy+`Cqt_E(Jj*M=Q9@hlf^osJXn;K}iPdAF4ynu3A!hK&hC&^Z7=28&j+2 zGQmwwTe2{~Ec;^_3`PxJ{Mtmwix}zAxAESEAV%ecj_;PML#C4z@i!megzjv<5E8A} z?Ve(883x-}>6qnQ2UxaJozoT&jsB&9=l5qbmAT#R*H}P!CQ*!SX7&_r4n%hB4*q+y zMv4C~Y9mEAHx)KAYPGZffVCY{e{=|F&4T1|Usu!x-lRpJ={c_YpLG7Y_}motUfA`^ z!b6IW@8YpKv<=QRooV47&Xi9u|~X{tkftdpm8-LIKm;8lb;(<vR;F42G| zx5-~9zcGQFBKTQjWn!(bF0z3-4>Sw_L*^g&7 z@8A`3n)?w52y6Mv2i&i>;}$&Xxsan2MV0Xzs>+13_b0-t{!Uq>m`fL06C)2W?f)hh8Izw01+)`Yuc4Ft_)G( z!?nvsOi$rsXBU33c=+S}iRvmp_((=3%9w>p67%vHOLk{Sl7SOu-LF@3%m#ZT+3P(N#C9dAagaaeJavk#<#Rf6Smi!lwY$s3tPN(i{ z2?|at;xmUs;w)#0B<2*jYgpBB=t37qbwRz!>1OulAt^_Lk6Z-AU8_GOO>@U_`LA59 zJ(&~`1^bZ>kDrxGh)(^G)7_GtogKIgO3PS#T1f5XZ5TxrHE-S=N}rSeE#GrXXrkLy zmJpQjy^exACn)x&dleu&pr9?8WF_&3Mqm2oRxci7P?#79<~9(_6(nWp}U`0O^YLSgyRA?F z2f<|~R21a1o6hnaJlB^)(EVP}-s_3|DWn$`-=_e3Q=-IBDM^WUqlG)(EwVu`sj_7C zni*lS_*hMA6T?4Qrt8-o{nwx+2qLLrF%-n-Jy?5c1vXJgUFVI2~cT6H>x2li-5zBt$<pnS_1R-1QgJ9T=!k)bu|luUP?7vL@iW2CW9Y;_t2wKjlNEsIGiAuaUrGZmn^MZ zsbZaF-VEGh%sG4em2qJd(R4rP>o_!Dx*M^tinXShxUgS~_1^;dZqJvU6UZzSXxLG! zJ(nNtEUSF4&kYfxQWZpAb1dm8j))SgC*@^5(1xHk^ zZ5@5l?Fj#`8pxYJS#iQ+i|7AIU|*n?>F|Q+x?cn9JQuz8$$4fo<%vr7lz{?A^7G0}@Og8J)pLkI3ZURpC^`N(^(uvMqZvYOMDO**!L@=K zb_4{5w?eqp=2AbLF%l#z67^bMjh=oST=#@N5v3#rRYTExZU)G^fd@B~^=ED8pHs7g z4f_TTX(eTZsnisp_aO4cb`gV6ToL}9CyPC5wlzFIOyv+r#=@_qKSKt}2&m4@LGK+D z9K4k73awpO{k7}Y-+Qp$)xS;al6Uu=NnNCj&=qH0p75>h$9%%Sg@c~1h^&9G-9(!| zS>2th=_U)xJoHTIR6jd?aDN4d*(3qH#qWw+@ReJDO&8M<)jS36Jd$e+?C}M2^VzV% zvC(e$L6^j$-lZhM4AIxr5|}To8fyKBdd3ar9*8{iP%)TB5`Y8|GAuVCxB@dJbGoAd zbS^+qpW563AA+9$!OI(HYV}6IrH>uzu{h~cz^f<97k z(W)%L?4i}&js)Tns-LBh|l{U zcw|}qESc|8XlZKNfVkXpGSckwg&N1i5poQVJ5?!x2zAO=lb1w}?)z(kSXc%tEb{a4 zRpzE^Zln=CMQziAFQp~3IvGP}$QYr3=W{?WQc?ZcUpNBEUISV@n9L_UY;=x;gufQRLBw)H6>ZXg^jJpN62c4NJSBbYK+Y`YfHZVWyhN0@vZKGB zo6osWwK-Gd4QP9fi6vxzym6eo7ZP+I{x~@5V#{$dJ39*(YdP8E`$sU3KBq`~V!hN! zb!*YOFGf>=#`;2t9eoO@Y{%b^n>y^NzJu;Ujw+IH*3vd{3Xh^S74aF<= zS&GqzM!at@AwIRmT>x8OK7K>jm2|Q#!mUE5X;)_EsTUcJK!kt``qHWk7sA(H+uOu8 zEUk3au(}{`{xNUhEp{G6K~H`g;FK7CVRanmYlA|BxnI)pZA+l%N{)gnrq3mA8U^I6{nA&asiZtFcI6&g^6%cBQJp1jkr4=}6s7Y?!4K!qEW|iWRn6Ea-zbrG{Vs2C zKp*f-?&}l%DB-?aJ6j{2(|o%0xXh#S(03jGy_U>D=dm;Jykg(#mYny#pg+RrWyx!A zJJ^sV!Oafk3NNMXRkDGz2JBLOG$hyw2)R4MmjLR%7wgv7HqE2f!nqaGMw-3s>dzRS zeSiiQ>6t6$u?XjDF>YNcN-vPTm9`r3J7K36EWXf`9zW6nUaJlE5Y)_y<6yuUa%a;=1biaNfg2eqY9({p`-8x_l`d1G4Qak$abvi4KRG30vuseHF@fx>ji#sCxRtG# ztGjtsEqN_vQJx7hq!FK(3iww$jg}X>RnP}r-FFs^(jScPKdjI+g=_GQT5f}31h5`y zTnh}KHa>sl{M8eGKqeM_THG%lsrDID+2F%(6cnC;fBnCI#;_smOl0@`JeZ_dI`|j| z?*+H6flTkst`i&-4*p;q)tOaC5cBftjdOi+tUaCe8=@i(w@-bf>K4@usDYx;JYKX@tZIB zWE^l)Xj0QuNRxlyfe|A4!8e~FQiS{$1&cS#HoYHs3_98Kslifm%aJgS9YT2bsO{;* zUZLXRLa#*KjP@;dwSIx96&DD=Uw-i9-`2K)zJw!bmc}gX6#97SH0*oCKtoCzkwva6 z5H{&h4B~V$&JggWO%9Z~RzvZ@xpAKxy_%FC!uhW!#SDSpk;w$<5l zL@{%S`K<4Q35-c>k~@kUIoowlLVP)ffF4Yt=g6Ml5lx(8{sYk4SDUvJ6#|c1dAud6 z;Tz>VLcP<39^L#pZ4A!SDJB7-vfnp$uCVO`R%TJ@@emN5f55F^^maf^i^2Pc)Dur|<@(Hbg!@jF(}+D!N+RaL z6YZQ5Y@&3PfgX+hUQ_VFS3B6I<+~M7gUe6zywz@)K_m$_u%XLkGh&k2!3_uan0yoA z^5fO7$ezMTCN4RxznyrDmqd|_t{$cXsqs?k(FJ=Hk$VZScHx@5X01)9muv1wEag8c ztP~XYV@Xti3c%@e*5m`dfpmUJi0jTxc?#Gc>%a*>cJ`{JYEty%W<*ZkB`(0Vh56uq z{)}DvLn1xr=KA}<(0#}j9C-doU|TB|$$!wwp2jr7c*j*rg2Y)YNYP~Gn#Ddm-Y6FE zsp&~NIx54?5crg#-H=!5+qbZw^HxW0SOC@3lP#pD>F?iUP#Sdhw+Eah@*1$S^^H#P zK;xcgL6SmPZ;wd~z5n5k9K<)fG~6(J38pZN=S2AHHv+Dgrha|VFF_&&aD1V+CVS5? zb*nRFIm|JldJR&!_;m@%>b!pm89p{_1%Y{&+1Gb*YWlTJ9upMrh$YUOJXUB-)XOK= zM+&;3iy8SfQ5?+eAtmwRtzTefh{I5b)5T{>_^#|6(QXWMR~pCZeChJN|S zHkb~gM)uItT@`h8!VSKO$IssKD?4KuCk=$hs#MzAt$z%q`a-FwoqQ9J=SWGFI+Fe0 zt*;vJ#H=Q+@Q^tQIFwWPpu;E}35Ji&)#{!aBXMQ_C|j4Mnmoj73fd>xC)dN?V!?lU z(Egv%ZEFh?lN+wg;Gcq*j(HoW{UYSw%4fO}QTrvg1En7=5pRSckZ7epRnlShR0E5~ z3*>|u=F~ZUYaX!MuInz7VpPs~Qihn60XaSkyf!(d!*A_g_ncR=lpca4uEp>7XW?ne zZBUlOckUY<6@&wsPIrLBT)|~#?pHELlFB2Pdp?@9pMNjDPX#k}J|~#=E9>>UVK{|l zDESM$13-&^7b<1C_>UZgVuQ~Pz5->aWJ+qHtX_G$tRfd?qgo%xZM%a(q&V{_5$M{l zVPN_=(`9G>5EYS}yd*ED3SWXWR?oZp9{g+^x3`I`Uqbo`sAB}bcR~_*;7AArQwx3f zDv*yF&b=@7Kf5ljcoH}(fzWy6=+V%Xk9Gpbz26@5o&c(z{APb^ette4xNPz>@QmD7 zZtFj?FY%dK^z)M_@chh2_w}p|S&*Fj;sbEKByc{##a%ws{^;M1& diff --git a/doc/pic/sponsor_lokal.png b/doc/pic/sponsor_lokal.png deleted file mode 100644 index 82386356fca673b930634f86435841177e481d91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56387 zcmZTvRa9KTmIVUAoo)#3+PJ$r1VWI;-Q9zGZ~_E(l0blNpmDbj?!n#NA;E1j^WNXw z&sulY+Er)oI=jxQ6RY`N5gUUP0|5a6TUkj?3jqNchJb*Wg!bm&2&@Ss8UX?6SyN40 z{`K|s-w5&>6ckiUxF^Ras2DhxmsjiS>jd}&=jZ2p zdwWcbOhiNgVju}Q8Tr)I)bjH3yLY7AT-=nDRNuaRlaiGBC`<*1!w(J)WMySHH#Zp= z7<5HxOl2ADZ0+Xf=QRZ=oSdB9T-_`!t%in%wzs!6)#YnoHQFDPI5;>I6ckHJN))+B zKSzBwlBO3C7J)*cU0q#fW~N{XS}|roa&mHPY^=J9Oi*ADH8o9PVUg2&5FIU@m#3Ey zJz-W>78Wj1L_|bgU7dpptBn$KVnX7`$cVU@xTQRkvVz3o;$nMyyBs@7YfJ0I#6(7V zx+)Kuo*pNpzIT$;pWb@lfX@ALt)&)8sIepw-sa(fXj} z>+2ij=c2BruB@!m)YQbw%a@mz@9*b7Ha7P2=g-iP&|E(iHdeN;U%ysYRi(Pg3JMDG zQsaFN^ZMjzHvw^EVPWma`2#;M=;vo`TWga~ zdc4GV7^RuMNiqKW%S}8ir<5%`~627?RdoGr`tVUwaMR8 zT&>@8e(_TAFc1nf5}58UX2-`}?~Vde&@t!25ub%jv8-oArj(0I}P9CEY6ln$11(|N7GfM_>2Up6sf3&Y9hbe+j-gRxmc(h zYst_3%1Y7K*JA_uD=IQ@iZs^4tOW%*gw^-fbAC@o^mf_QK)_O$`|bz`i-^i{(%PSv zP8Mt8wxq}hF8O5fxarlkK=cc0Utv*bj+=mGawe!eeGOK4Wem&Q6q69u#oFErujTlP z%W*5_<1-db59-~O>fe7#`u|@i%Pz~N;qV2*#_6%jyejR6p*o?dT z<=d5;O5(@h7&2$yj9h(J;{bkw)oxmSgfnUE&(e86bsCmWD`rpXjpy8N9Z0T;XbFsK z)hdmujcV?G;dP^aj8Joh{Mou>rX=299ZrOvbxf8xh~YqMp0vEij^1WmtX!t;W-D%? zY&51xI@t{PSk!MFHVf%xrtGF#BTJ{Im2iy6Ew}(m^OeTIi6zMv3+eLx!-$*|z=i+;+d_G3|G~pO~)#SPy zRm4|?x3Yv6jl6_$Jc>`aH~8dnj(nax|FtK|vv9L}D@G}g#_!9%AfAWQ_pOCcn**cB zSa_;x!K($#Wz}N>ET3Ij{JZ&mzOq=A>Fe}>CE`QT5MA_y$=Z6k>rdV}{~EUe3YwW6 zgKJY&!!M5>izoLp9RVp2y*j2cCm_d8VAwX3tRm&4mG{5nh(dJ&tkM6Ci5BPVY$56r zz0G;>oT}E36C_mEc}Qogc%5U)NwhT%kSU9;nMy7x;?Ec<)hbt_*P^$vrAyI1Vm10% z+hRxkmhG1^Tf2`PHbYQ(C)--_sMeQ0Cmy5%E>iWqo`Ui>vcyJ1y=8p1n-+L9Gjc~~ zza0;MoFhAb9nk?{q+0ym4JXTcA3ewpawDIg-%obaYky&hkDccMEjK1TCvJ|Z5?1Z} za$F7IS24n(jm%M;4shT}j#_kRY^G$x7eekqN3P-GartA5gQd30L*frNb1RJ9Uu>)Z z+huf2*s5d6)?e89MrwX76Seu4g0`c=nlAf8=sgii*v_zcJ)fPxl~uvFA_eDbGrwsw z8#q2TgTieYw?0}iqh{l+0bTf4EIo^N1MVmYL##Uk&ToKa0Bk_RBQF1U>w2tD`O~rQ zu^BOG{?5IG42B$Z==90Xw$$Ic9x?y#Pq&6=k{&WFg+GVF zwcQyASRHz|ugONA&P`4^Y|DIL0^*^&?2R*m=AhGl<+Jo=A#sy_M~ z5z|IC&O_vinBkwUn>AT?75fL>`Y``2Tet^dL* zwA*7@qrVwUgFEQpCU%hF!QXXYiY;5!c%oy7-NqIXkaf|b+RPz`#;?-y^Y~6&8U(mP zMjoN~GQH{G?njN)riW}u19tXa_@=i*HWwA$b}6M5scG5Knx_Vk$5)Z>E@$c#lEiHh znY0WydVUA;D<|dDz1IiV2`+i##WVc&9ch>oD6EBlDH|}QTGAixh~}`44<7^scZeOJ zb8v8SNbqF&#hHVZBT`a1^bn8XHHVu%Pr0b1)%yKzO21Veo^9SeN~6e#DlJNo54Rv+ z28S`HNAP#Gi*VWPyz6$E)U0+O#i`9IFYjv}x@ zNjQ345e?*XHR*gnC_67>K7#+yCtmNHF3DcRh$u~QS8A+elQ4KI_Y_;fobrPMpT17G z{KT-JQ}e7CKH19zu6wr`jdr|2VT^ROT$T2jPHZsOuUdIkOBo0fxcegT%_BHHK%SRD z_H6R~_1IrQU*ocq1Mxb2*W;G}a~NL5HUcz;I_M-_8#D#k_#R|HN|HWTHf^ti_YN?^ zC1#f0>bqv$Q{l$>ofrN`l|8^3lh1eXs7ZeZxCCIw_y^E?xZ~&7NeK2E;5~D;S^uci z2W>X0uAt!8;M3*#CQcH-$dz0oOME2|Ha4$QI_p}v4h?#^@Q{~}>s#|+%xU>Li@(NT zy9}}WKmv-a&}ux#Eg1}CI0j%zaY|HmbYAY>|6%fVku-j6hIdCYm{%~wTOXqXgA6x^ zZ+%S*!~H`y3OCQatq)y+IO$3H?{Sm#zcw#cw&V^6Isu#jOI}~9Z zNnfNl`%+I^2;}kxupS?$Xh9iE0)Ny9xo#TX@JjyOl<+LRgq%x0*Hq(1mdx`D9+QId zwY2GM&c_!yERoI8;RJYYH#)VedND`r*7E4_GHEaMGyb$1hV5n)cpnUPs^^crZ6f## zDMp1=Md11idXxzFr^n{sAUA0-cQI+BH%llUR-oN9Ff%5~|IJ1++l7IxksFm1m4N#h z%L&S%s%D(Vas9JzZWPH`E-=u26De6&S})PWRLA}>-RA3`A4nb?cCmdbKgU}|i^xx0 zjJB?r1K-qdsI3=a@}0q*bt53X+(V z6cf`uK72f-r=z1&aF7m>29uxo7lT;^v(?^ad{_Je2Oyee?P%33lnWu7UKjLqPR#?W z4KJyQYMoEA0I&6|1507+90 zo}u_&v*3@l2!Q~qo>Yr7`q!Mlt@-W=)F5dv5|WQ;<)FyhXxr|hHg;=YCskwQKc|y! zO?&+aEY$3CU~Z8e$ne{`ut5w>GXKg56b5njF%dFs5o2p>hLwfT^XvLtR9BfPB%Kud zX%_`go0jxjK|>Arn$Kl-`0#P39Nw|~|{oKxP-!!m~VVg1M7F4i8Hu}+_m3uyzScb}d z%_At+)Mk7Fz14=HfhFqFb`AKyZ6Iltlx!aG{{{*{p@HJDBBndv*@AzE4KL&Frk%)B z+QfuX3rK=Vt7~3>GaA7&Q)J+BFq07q71Ghc|LZ2*&5jy4@m2|kTTrCTm2cH>2Khv5su zczcE51SKMc#3LXmz2#I}kHGCPk^=0|c!6ikkpJ+aDdyYzt77cxoCnOt2gA+tD zTy!Zm#@6=43)uD|RLZt>Kb`QbUq$Mx_Z>u&Me8W2el=vkja`b+7?F^q}A^gg95uoa}6(xx-=q!Hn@eCpQG^o;55vZb?sZ>Dz{v$%?YpVXgzW8Hg6d4%Ed` zGeJzJYWF@`^v({*h8Ppbh#&*c z(%RrHd1T2-hb#lyNG4t+16R4yR%g!G11mp(LkCrW^SiEEWmdIPeeJO3 zW|$vFHZ^GC-&!uH6dEuvWLCOV82V)>ppCnWT22PSDbD1~ z{(0B^Wv*-C(SeYBq<7ZE)+RAUShaJWXu#3VuHM=w6iVbOQNMCZbk%vvuBv2b3v=_7 zH{v_tuoEjz6+`kC-_xfH?0Z!`ddUFDzxCPvn+QY@z#5k@&gK_3~K@euctiIvpFGlE#YUcXGPGsLy(8JUs4&JIT zPh7gbk==P~9Xf=9AcOAcjfRbLzPF|KhwJSD+kFtuS9JIl+CN&q8Y5-yv}+spVvGP` zrPj+w(rQff6uGd$ya0C_Rn@wesq&j;&(2=sbntH0#uX()bvpF?t z^*dz`BUmQ{e#cnq{3L6jJC_&qc(ajjl>S(quI-;+0URzaCf~p+8m05M74i#A*auwMg6La^u^b&L+`JFg2+{m(L7S!IJ>4L(qT@o?b z3tAtoUh-C_clfNMbvaG{?$k11&^X_7q^h$eQNSsDoj`^I#)r%xDTBP&pmcQ6!W!7t z$E5%RFaCWK$yMX!>B*A)8@%x9lh)cx=D>x`ICv@J4%9!$`b(dYXyBm{@m)o6O9x-U zOeD8m8~<6}>W{x<@;4q%Q2s&iz#b&6P_eGsh)j2+~c z7PY{&vx}p0f9OmQGR4cVP`-EI-$lAlTX?4IT4*=cZ;N0Fo$t3r|}*dZsN?s-Ql!Gl>HY8?D^_Qn zYCIa|?}ddKtC?ee2gkMtM@{vGmDER7G2$8!vqiep#45Ts5!x}WfUft;bteOek?%D$ zjTH0Yeo>Wv-U$58VK}>d*;wLwEkEAQLG9qU(dD)gM)b}M!d;BJ)9ZJ&-?AI_W~-)< zOZ-?@TE8;}^ta7&HkK~RduQ+ppTgI}b~2+VRK9UH6sE$vY)H!L_?Ml%wSv^rlCbUk z^B;gM8&=l#vK2gwm{QC4NS8a&R;CB8!u)BO`DI`=;mtRhaCwBjEcVV1> ziyn`@n)ALz@!9If&JqTjm$0eYu(@1&*`DjP=C+w%Cp;IfWeqK5xs@wP)YDhn$=luj z)SnDh%2w(g2+jW8hMNkIY2FM>|B)inxH6Q#;?ScSxxp4#$|*E0S67AM1M)pgOdJ%s zasQB8ot*!vhn?LA9_9=e46mGoipoI?#Eb~TVS^WT($!NF@2r&wNHEdaHaCLP&(Rzy z4;%u^T(LSb;23SuoNS|7my)MX&RPzElaS0$8sMh>shPX1t564{kb-wYf9fdT$xh=UBh0iuEVHL+#HZ?mo4V210xiSeldZL7K~*cNHEq;0KZ z29+&}xMWy{Jz!%c@F~ir6ES9bv`u`P_zqfVcfQ3i;mwKLpF-&ca^YR{7n#8;7J7GFscw}g@i4L;QVN)q z_RYi(!E9xDG}XwGmWF0pWK;el_IwX+c7bbyzuw>f0BX`G{$jreOBwGLNvlm?Y@8$jyq$DowG|V!eCB7sjCP;0L_1g0z*C5)EA?)dWn`asUJmSdPfq_HcnR}mJiTl) z+Cni$8Nd1)RPkrP3A4&T-Ea6$XG8f$$oq|lHr$j@`M`#^_pJ7;Ua-8tC<#G*%!^58 zG8ifA?-?COjh|_yyB?ECUdDP9OrT(6cVB4Dk$+MgKNm&>9@VLUz^tV?|Lsga5uy3+ zu7&C4_dE=^%r9_xbf?x`I84S?tKd7jZB-ZyerJ+1zIEB`B#*W$tnB`k1Efrm+D%b>>&npKF44ib}`P2l6^$G;h3Gz7=*rtK@~HP5^*?U%>mrGl`! z9^a~MEVbb>5E$c|ri4bZ$powEvWxI}h~a?k@_H7qJ5wofbw;y96><7W`Tm)Se^%E2 ztVMAleoSA;{LnR{|FiV?2snuj=*%;}5rYD+Q15}Wvhy)N8-354Q;1AQh`=@>p1awd z>D9F5(qjSbA?8$CE0i|(#htsD!mhp^Q5#PtBQs;mK=d=^2XT+k}a0zO$oeSy=aXX zWsSQBc0RLjhu;fH9hC^<<)CPeu&K-0{K@VN8G7i9t+zeA`PT*hHw6nVgi)WL_6*Ra{9F?WNV zx*a};&KmH>WUs& zupgv<0hjGmqF>6GJ6ykw%8UYdq4K*=(N(K}-2)q#J2ZFXR@5A}oU*jd$1*<>h88e* zUQ!Z&Alz>?lt(g&ZjpEbr;Po(8-0E=cRO9Hh%rKCOwlEvAK$>Wlk`T{QI*r_Ed5NI z+YEZ_DmTTg-FX)-+vzbm8->~UEtzk%4Qqx%`jfwR22~W59PWrRXH;Y6FFgxWL)k1aE1#;tc%vXs=I$zo$cm=iU11jy_IWW(2@EOyXeUv8 z!vzGIw$qM*#=)FExn+-&WmLSrjBW4jxbp0Koqh3io%!mkSHkDfIpHY>U)WPV>3|<2 z$|1D6Jm%)y_C&a-NL9wUiPWZ&v2g!6oo)iuXgT>3NZ-?YZ-$I#izA03Ukp*q4lKIt zrq|dbWH&$~;Lw!eR2p%Fd&W#5@N}N+>*BAsAY)q#vMifDA9OL}7E)Yo`FR?1_suv( zeUf?wA?nf{VGM-^2OPnLN&AP^-@qEPfx3VhWhcU8%}+&wQGlJ&ExeIF7m>DOCJ@w3 zLhrpk+ZJ84&n%>~8Y*ThtDvCpaw1ybOB3&5;}N+l0#g{%ukmoTlaeyp8NRT#K79H9 z8dqh*xrNhw|0kx;#o?xd7SR>1WCI%V6GIfNN`@qn+c~OMED-X~dXMB|8s%pn%n-H? z=giF!YIFfnO3@{J&Q~NUaf)kTE`lEL+My$zn+UfsfbRG7(lYzH43~V45_HAN&prJj z9@w$KeS50dR{e`+16MvW?JB@#py=uW^;Pk&{)JRYm9+j*onu zN*mu2tDB>JWdhfqi^B+(LrCMU^-1HR4{MbPGqyyAv*m^9j)IkqJakcZyMwCwrx^6p zRApQiTDdIetBf~s(_C{E+Bh(x{*|_)KJ+(x#0{)Xk>IdTM_LY7$>2lDF z0>p+w!?Z(ZIWW4$3d3aqOgBpNDdy*Xb?V|SVb0SJ$W)4n5Vtvs6WMEqt(kJn^jGH= zNvFTn?`wTT)*bX0exN&6=Xh*=7AkntwfLZPc&8()Y!y zOQ}0vil*_zeNc~__`@iYbrka|I@>~cV2Lci{Ligv@VjuPGA<&5x!<{MCe)p@aM}u_ zNs41GT4=?0K5JBENL>J|?ihujrW?GPzva$fvyqH_5Q8m>)WHa1oYUbHH{v!xIc{oZ zZf1ou(t?H(iEzmP9P3AA-!xkF| z(H+zK`*LQ*B;K5&xdUp%h=Fzb!}Hy=ujj3t7>DwY*0jNQaVt+l1VG+pKPr#UY!vC1 zeQNHj)^XZ@ey%T?2Wm8_jZxM3#3Hw&5`H>gMa2aGYCOLSn4_>MvJNYQkE*@X5ePDZ zFXq{*PkP`qaHQTQ!-<6`c`tq~eP|7}xp)lard?al=7dNWMeAhQKz}&hJ@)YPv+;m< zLLjc-$xAOmY-VJi)g_r-<8WUppsVH#^U4U!cCTHo&mz;zi7~s2SQVl!7O`i@qzX z3=f*Xp8N6|_-daE>s1md?UAMj1)I7Lw}wXPcoNRHTYSv;+q-T&H%%;YG=Dsl^291x zm-DoOruq&ATL=V|%>|ec=t`kEKU=mr;Y5MIAVLI)=`KA>?V(O{xOyfsH#;wA$gs;kZ= zn*;sI-pWH&W|)piwZE8y0;8t)lOuJ!_A3*7Bh#fnimeCWEuzWv*%`K5x#?7LNJB%pc8FIJ2Hvr&_1B6eGDMoCi=O*gjI+ByV=z7(J&lbP~0 z;Ms)`hyh+1>PVwwT-_`vlBh<_{)f%|Wf)g7X!00L7>7EMM?y)982=FvNPW_e#1RTR zQo#a)^J)*mx?UgtZXMfBm{c%vBEcQVUzRo+kH;$sDNUhQaWJcP@m2ff0slcz9O|{v zL}VXmmv`42kya3t9ali7PIILV=G9pvoTKcMD|8guJ#ttp85x(abSLCu4r{Lf5H?>D2_&@JK`FU@}aEW8nqQzQi&CWe0mq8-CH z*5v9M=%vUUULKA|1v51Ykj>34dycVguk#N9UvvN-#{Y8HbuB_a8GNZ%6s^H)^p>D8 z+PA5|7Oqk-EV!k_sJRM=y0Uh;3b&%``|8oIM^Hg0PiX1FWh&il;Z)*yM_C8{2T}W0 z!W;H*yBvzv#&{23iTK7uFj@R*b`JUsatK-CL| zsoj06vDH-ZltMkOW()BS3B-uBu79WMdO~&NA-o#;y|6W$PM3U zAE)ovS4wm?>R1njJQ|OQ1kuv)>V5_HLgFZfGA*Rt9^`QpIi&izMZX+?bYiAHy;)dLA6_Bc(^v!e3R}}=Kr}|OUL;8DO|~? zztg*}0l#<3y8iAJ5Sx}AlC`=aKE@3m{VWWrmCoyXcl?|9f$aJkTlXt^Vk;Ra#Pt5p z@S&iFk5?Y)zgJWZOhe#b>#73=j86seV0qjqp0Aux>P}<&9Gx?sUf}RM|M|P9zLOuH znzs!S1wU7owljjL6FnH|S1PSnyM)7S9_1cVkJ{vr*22&q&$4NAVF+S#nkkh#(?}+i zPpu(kU9SVIe7puj7?7#Jv!7H_a+#9C>x;_)U*FyAkdWz{(iqa{J#%6FV2466i76?L zT=`y}1@qhn92!VoAO1{8zCLXH@m)V{UYTE7QlSNM>#k3Ju_RH=ei0XpP5*R)yZ8e$ zKE&bg=WcWz*4=F&@K?ZSXIaRC=xbKlh)_~UOY^o6b#hzXA1?bq#87900OV-*$I_q$&Lj>pep z6G0sjluv8?`BBU_%5^@3p{Brx+Cr*u~*(&<`k=Uqn|m z7Oh)k5Z0+p3qR*P(woyTB!s~}b?ZsyY(RczIvfzu5bAE975sJtc|A;8tpz`I5SzNl z3DG~q4YP9McID&eGmt`V`Z!-79?!d8TYXOV9Ygd3HX)eAUkFcVfQRMLH3}M^HF5#9 zmNIDZdy#9zx_)@ke1~K*4eeC)EspRdYNyFRNYREftbE^#mA1f3;9Hb1+Kew~`uZ5=!U=sGcRb8LN6arB2CphWxc$*slMmJt=Es?)$e-86lbde9C|mH3Y~-tHH_ zsgUaA`F4I;v<<>j{a{ zwheb0cX0?}KqI!Ymr9i?q|l7Ekj!2DdmVK7sR z`rRG1&V&)r5q$hUE!y7@d?jP@Q8vpqCEMdn9Sw3&mCG%+@W78!QrAL$nXkjx9Py^W{ONNf^5#Rz*V$02r_a(dsY)R=gsxrX^z&O^t!?l`s@%p57qxynyy1(hOwZkD@k+rruTnR($ml4vc^SKl6+N=?SYU_e{^LK zO!0XB)CC>S#ma+NL7>dvp19}{fc0#r{_nO&$4uy${j@e=kP9o?Lu!Y8KC(QOg8UHS z_`N7+LOK0&UTX^T@o<<#0SKD2FVVQb@#iCaxgJ|*J|67K^vMw1Mk`J<=U`%|dr}U= zSOv=Uio41aGToKKB4J=b36a@c^eaO)Xu60?lgd9FsTasN==hd2Y(MaU9sG&|r=FSe zIN3h)dD5X#5RW`s&_3QVUD|TjQ$uA7rh$im&OrI*+T65{K|u77;ezQv@K?bWu1&Ps zn92=EIUG*crR{iM&;-SVAE`Mtb3lprK7Y~&$ETBYcatwwuCcMqn9#7z(GY^AfYk7Z3x;Jk(;-Js0r zbGKpxU$@Nfj^E`6Nj4Y{lgsLRFJ>;0B|ZdmWMBU6+3m%V@`!QyoZdx--HAz<6f=R`{agn!cut-;E$HCzG^MAU>jWc_D+(Up*R&%B}`#f0~OaoPH z2Z3Oo4ad91yLJZ8RA{Qro|T5e5D|WOiGuGnhei~D6Zrz=!$hZa6bd!8JVN*z0A4o} zboj`IGw+R?6?Qpw@A+nR6&T-#0TxC24ZNN$$FVi_4hq<+WVq~G#4Xvg0Xmfs5n1h> zDFrdJw|(k?s~=0)S+-gXA6fMCd@x5OgoU=Yww9iqA%;db@#_>qxDICSm?N0JqL}N% zCW7N-o~6LU$gY@}y`Nhv!YmpvqfYD^&Z8J2``Xf*SS^1U;b#bNP(xpd%^9Neqx$A< z&AAj24W+d=_47X;^v0zLD{oxl=DdCD?)mgHbmcC=8GG6H%aYotA&@=_xCQa~S?eFL zng@@1w^*J%V#Ab~mKKqkn!2;IIMN8*DJ^ABG|f%D3q&15V>$IZrEspa1lC*pzV$y@ z;D)3(4+}Ubc=bs|+KM)@lwXv??}g>9-(p{8s4=d|ns>e2uXzWkK1qY)e8m8BxdoW2 z!pnUvdq1e{>+PF}nS(e%G=CS#eZxWepI1=K?Fo#QWQhI|mdo{~I7l0ez~C#O93!e- z%-YZiWws91GM{=%gIIs=90xrYwUl=58>1a#l}W0&ey~=3Qc%uqn-#fX3!KF8eNx^-r~@rczLR+Tu$g;mN>d(-+; zUX+ae_3^KnXMu2bG*!Q6N(`^0@uZ7dSjLE0nfYaP2_mLA0LTUEl+E&lurOt$+_o`55UH%BR| zvbO$Z)xG_17ciVq+sOJJbVO%yF<}*CSn_|UObNQI4}a698n54k07&;C%H ze|WbFjcsynLvkhEPcs2_5_HCFp>wjLUoUBl`H@8_UCBoAjd@~10v0y5iO3h)x$ecY zvoprYRcE>^C_Axc_mKq)%?Di*y^j$%(i6}Mamd+P`^_~26R<$Y>u$1mVL_JZJ;*QU zbX!^2`lv0Syh?7V4feCg!GXRN=>kCAO4}%6d0zgBKqmx2X&*XC9M?1gKKPIVcWp_x&;h}UcRs&;#9BbAcYmKe19qywh@ zn{>s_VsJ?Cw8z{N>r9H<@sR^_l;8pLN(jx-l;Iu24;GqBoph5DZPu6?C8H8vDV-qZ z7TYMr7p1_4tsYb=`hMEs@S0wgIcC5d%nqcWH}WZ+2aIT2{`iO;QzsWwdBMz@eseol zC8qdX@kUUi-uS@Txn@aX&6z5Ik>7VGLa2Z~IsEna)6=>|l~IR5MwM*kYBuPN1GpYi ze3cl`9;71V3JmcqqZj=I;mT}lbpM+&X|3|2ahx~;wqH4L2@8e(@J=f_VEG$kF>0qSTTIiW$9Ma^L~A z%W4) zm+kkd&Q)h#xP1?Rm#GiFKf{Rnz_z!N_&^#9Z@){M$^*yp3jqgPyjvMC%TD`<&kQ6A zK>~qnb?C&C0dZT{OJ6pEG(|&~>8krZfu8VZQ=-gr7=ki}U>r?GN@J%lm7{(BK@?0W zW|js6a{qVpv0-yFWaR^O%Hul9BY`}CNkHl3;ovDf{18A zJ|lV&jf7>J73I_Z>oM?e!kgLnc|e>z@n!Y0x&gfl03nc9cff7>jujhwK{GJA_U}Wm zn7z)0&Rn`JDNdn6sQe*qXE=-`rVh^<(a}5Kc?K+N0gBWMCB=k$$mt|!C_v_YKCkyj z_K~jMKD%Yk>(T$b`j)|8!2Y5d>!A;Z58K{ZL$A+Pi<((fHax#b@+GZ>!uVD1C>{^p z!wLJ^mFy!h)tSQb&w^zKzuQOSo-vHWk@+0J^l;XxUpg!K1xx`Ft4a=F+`kD}1yrGs zahznHX8iKpMV`5-5mvAiA5aE5R~K;muSq}~F9YpERxM|ZL%V~4- zLrPrBZdmq}E+PTJ2de;Nl6bWEdVV!$r-NfGy+g>si^R-I7xtf4SZa%XER!Ln8LqEO zaKV^HJn-}TN4kPRwrKT7zo92X@STK-SYa+ulFiR?T=y{8%(}>R#uZKf9uSFQoPsd2 z7ClSNk$JBdIs5AO{8RioB6Bjr8;1f%mQGRLq0ta(S=m9{n>I;P`0?k&bEo2WTBfM9 zWBAnA60gbpvRbdgdU7^qqs(m3w?2o4UC{?QZi$$C@;_$cEDzNS%_$g;tZo_aU$G*+ zCCe=+jEFY9&7EWZ{)l1V%(%#_hsiX$jev)ZVgVW)!CNT7oFFkCUlIQ);th%dzqK@s z^qtG6$8T@$!jmH>a41(EMFAN?InzbO@Y-k&+8FZ(kN$~5QQxzvJEe(z)4+eHW@4H7 zhsg*D4D*Ki8v^Tw*eQ#C2T^gZmt5V---y@+(~@-QIlc4!#|9d)Cg1t$NOjNUFqcTx zIDh+#7O}l|R4R7rc7jTKC~3i2mPr>>H;;Hy@l#LBIicv6jj+3Ua=G#JVYK*9**nu! zn3$25BVdE}jFCEw_dhF)Ht5#3P=8INj%Lx#jtaO+o~zcceYLhGIYhs}4cG?~S-wz_+FbToIj6MV zZIOcnEJ%js6R+xZwKSZ#wa(ed4zL z0|NXZ*(TD8ac+hPe@@q(RG0isp{AkwN?En|&CP{Q{D#`Q~YuS>@`PW)*~@M3EoR;%>(sN?6(*%jb3OiColeei}ZzGIVKvEtz!H8e6j z&kWtqD0vx$NU!a^~0}k@T>O?j8*Gpm0fFJh0i8QD*hBh z#&UZf1mP4Hey_OArY(?TvCsykOJgtKBEj{_g*Gcd$C1rbS9x=)n3uS#WY_P3{0I_H zEZV(JvEMdscK3^ozWxCt-AA_#=~IKPz^r{D@VLP`%F|vj!gn0Q{I@YW4Yc9i2fVoo zp+m2nH=NAnKqX;vLO4D!i+F;43#1*j6vbe=>)Wnk|2HZf23|G7+i@s;+ZOQ@ny_E6 z*mGtU=lmq*sp<4e3isC|niFYN$=Z8o)}t%vveLZvu_|q3r<$|^`+g~GxLqY2(zS_P zf4v%I%GqQNmzlrEx!{eIzmnWwO=KQRC1wgRT1DLGe~Cl$M&xn6sL`x;beQ3VS7*6 zLJo!Indt-At9?|97HTDe9e-F6y%-n7;z}`N*RaIq?d>feDMpL;SD_f=#r@TKC$h}q zHxDpEULW-7$bqcWH>6YqyNuWKmE7_8E``!+faOOpimf@7ju+q4T2Ppmskm&UjxblU zVq{e2ti$n@K;TOY3xr9yW#8YEP$wh0n&9J?!9hB(?pQvx*1|=f@ScSk0J39=M^=kj%!IA`7btFo+t>ebxS}FM@;0D&mx zG@Y#98mH{8@VD&~$4g6()$@1r)v;TK%4%9Z2v7*i7_LeRm&Jv{=>P0!;V3@8Dix&iENcvY$rc`ApeH$g%3g!0b~W=!h|I`*Rq#O`aKqEo>Cpi(h$$+} zd)@Zv=dN_Z+4PPpDk_$?YbY0Z-Fceo>gw%XTB2)*G0R~G1;W4abm25E42SX|H$-!8 zgz!7(RJSOU3^v(z`DjjP6w)ivyyt%Z&qxqx#cC&d5i`(<-4qt-`}WU_pgiS9QdYuL zQLdUW-zL}gVWPk{JW;HD!xi_Xn=}ETbDQ+ zI$ocQe)jD1wNKzPzJTQocDnc39mc;Fjglq-#?qcLad8F)hY~|DHi$0p&2pK7EEvqR zLt|Qvv8q=jOan4U;jrwZN>j6>mGC>H7KW&{Fcso9{KsxZl5{stSaUE&snH*`_o=bwtoJ+J&j|ASd9*< zsSa6L9iO+&BiM8uC4SM0?Ax!J4UpC+RPc$VJMc%J+2+TQi=vpHWfOn(;)QR-y*p}?j7;w+DzcAJ(ZDL3qTu` z0}RvcmmK}e(+dFC&hZ#97qFmS3i+iQe<;egB~w!Q38gomQ425ESz<7m9J-$Xoj?()u3vJ^t!bkbN(wLfb~_%bS4$i+uS zRQrJlr%Y~rF^25KS`78dtng)%@sFkMHl7PHN-3$ zMxx*_W5q~7HutW1`w{;VZx%3w`k|GyQGe9t`_NnU6z`rfo3E=Fw!-yzKmwTw^+Btv z@z~F@`sLZXb=@nzSuhDdX+Q>yR?!$wB?e_j-x{~|^#lE>!T$iSKv2K4Ctk`&c|a18 zu)sbg_oY_|z8*^Dj?kKBg7kW+A2N@t==(?sp=+tob=QH)>)q_ek>KkMho_&ZENe}= z%J*JEu8E$V7Ori><>AxNxNW{in`%Y2-^;T+)`S&3QeJqTMOZAvnj*qVEtjL}?xica zD6Cn^_B_YP=;(+8C2)w#Y_nO6MF7UKUHBDAA%L;qEJ({6Jc1%to43r)cicP(Tm4QF z!oGeh@l~B3GPIhs28}*%^Jb&jG>Vsjixy|ArGD9=ida~xia4%SxB334L;RtC1%g+Qv3Gxf zH-7A)eLEK|+dVsk8lJj##qphM7cW~Q1j){T+N(yttB|{pFsFX)>Wm~YOUPJtG+7#2 zixsL^eo;0bU9{q{)yRKl3!J&tIl_rY&KJo*433|wxGEIoFmnD<}6Rn(D>=x&^htIdEh$4 zj*((JzPY#m_0OL%n~Su-VX@kb2IQYcvr%uzpPU+<+JZ{ED*<$8t!XE3WR=WGOD<%> z`e1F2Br3vU{ZN6Cag4@UB8)&-AfZ;uV@nRF5sO3Sa|L3^l$5@_Ru=r7$i3hH{jxys zx*m=ZIUx1JPR}cJr~kjE)a+*$mz6!YaCdVq_eJ>)6?Zh>;^j$=^Y{2Ak-aGhSU&Q`4?*-~39C%fjwR3cN*W(oyNHaG!#=n5dNA5*4w8Fq$aRF<<8DDKRIUT1r#GL;yKq zz!dP-6@nY(M-LR&I8D%%2E}(63o(|yZXnM__pl#g$^tDu(0cki_x3`0 z{U?kLJ-QfNJ*p1W^!b5y!}!dJVjJW@5{k&7kDfa8x)Eqtb?lP2}?kC!7Y$I zUlO^nz$$+0&`zHs*2w@d29WXz+O&|cQW}6#_rinVw>q|4;56AsLfUF>POUn~K5z-^NFmk;(TGKLHH#UG<%gu21?2G`73)dhqtiiH#3?|3C2!b@ zHV2ooV4pUETUG!@>a+IZfUm~@(-obwHD(!LuF5AE@{KmD86Bh5&XJKX%0+oXSzvJ)N(>a7U0+l?(`@=Y3Xhk z`Azof1&?LV5^3ZtQt(?Zj!7eDPmUx;G!bUc6PF2TPDndPGt1G41#1CuL5@XNt}kTq z<9544N9tIlAxpzB*()`uY7u3z#1OQJoMQnL*8hfKGp|Fyb&%@H;xOAbY4Tw!iUBxA zZ6>WwSEc(idjjVm3RFBH1X|2k>gIL09g?<@_uryRzsK6WR5EvOpZDYeU%Ic-k0<1KJ zulwMu(J>tII);M)!4=V!-KfzSOm?kXSJgmcwvA3|sxRS&XIGRLN0rq>l_h>XOTBU( zSo*{pXd8{5us}hBG&17vmqaG4;AJe?dLhCPOTJO^Y(cWiKnn&tkb2Ponmx_4=lVYmy7Zux9Rk>UV5Mg!qTA} zeg$Gdecb367|^5FL2Jaocd9JJSuXkr@R4mqS3C)$agPpLZKGy=K0-FF-2@S`=t>7) z>2!w4Yxa@$ct{H7Ok^V(e3XTUGPe+4(M_MDDXhqiRk~A%R9L~wSjqFe-+Y!dM3yB4 zDkkkwaW`4yQ^DEoFL0Z`YDHu*maI$>U}j>IG!jaV#|rLINAcuuZ!%%AjlRUHyC^Jn z8??Ln4rRbz*a5Kh0SJp23s!+$^m^2>0Pdl|ggufNf*~*r#>TE*Ll2ei)$ajH_T!Ty z(3b1?5PgEpZbIjR7PWRzX?Ii`7}Y=roTH<2XvL}=j&jezN+h|fSY<0Y!i4qZKdPt- z3p~6`7C{p8s35r=!cy?dSWW4Ctp(3g`EBX^nf0>+mEFrcI@slY(#CB*Z)Qy-#*!@z zxK3OUNmkhKf+R-N5prk|>wVXl#*ni3gqC6L-X5<<~lWJ^H#rF>MC2-UEbMi0-x zSQy`+*CIxmbUG&|Cr7{}KGoHO8_)!rFE7USpZHo68hLD`9d`KYL zSm4)ZzI{on(?aTrU6K`w0D)p})9v;Zw0boBdi#@-7&Cx`d!C1|Sd7Jlb)*pETYyVY zv~^UZoHjNPVZ~2c3{?c`EV7yh(Lh*6W95K$u=u0avp4y^6~BP%qx;jdt*z{7t;ITn z(~+0wDALm?OK;Xz0}o%-=2?~cB(BuN$Ft#B#tdqi@3 zgaz(y=1-bYcwKo&C@68yF~=16t7562^cBo{PVB@Pg~7iiK(>(+uA+lAER^t75aw6R z4evTHh^-IK3{-c0c*?y_ICU=@FazAt41@gHNx~~R@zvQ$>j^^*g*uB2Pj(4w)22%2 zU@E{`6>JMP3goFKWldo?%F5jrN=e|+J>hhl?2FCpn;|IDQN&^qmME;# zb3_lYnzom|kQqW)t)u-`V^uM9Roo6`4Gxk}$N*zGjApaRWY+82&oY!s2+NB<$S)?W zc&4ng?M{3jFghH1HY3nrV6Gahg0A4Jn*0qP|2lM9DJH6PpalDrJd}tSD;Hg(WE0gl z4$Pkk!ot7YjfZ3*Ebbbx16rMd%{3L24N0)m`{m8_#eN{L(?O9o?{crG55mJ<;-0`SN z5-J%Lslk7ythq5gwmLY2NO|<>Pu(FFEn;P%%1)|R9!hZe3h@#9&OLoqx*#}mlm`1p3C36dk*vyz)~;44L>Px_&NT>Q5Iu4N9_Q@LWBihxxy>Au86SyW$)~Q zqAJ5Ues<%qEZf5JjbI=Oh=3npik6CmktQEOLTVFfWGaY22`P+Tm{f|TqZeRZ1k>~} zjupc&+?CpmV>&dT$N-ZtLo;1ylQ`AXUH|ua&b#OAvYH^xG|u@A%CfuX>{)7mKF{+$ z@B6+qf5$W5zx~VLKDsCZ#^O+roE39Mi?Gg>*d9<=vjQHPwg1}t>`KdjCD-pBAFw&= z7KJ=;wXrZ@5)l>muF=EH28 zE8dHleAc;MFYn5!3bSfw3$LvEH`&-D%T~_9#rnh=R`_I^U70G5iuJzcdGjS@WMh#m zlm8cL`j9&(gs~{Znk(k!aO5Hp85sZgX&-!r7SE+5Ea1)yVXWIbmUZ`FEz%2Ddb&Op zkg(jqRBnW@$XS<$#oDD1mI$!OS6pW&p2ln7>~P_{{@1^}@XO6h`b9l%NDH6ackG>a zNLbBj>I14eIr5gqM`UM}XN?ld!n$i|WQ+s(leKJm8N?lRE z`E;0{K}54tjt8l}>vGAP>fcORxpL)#?7X;S=Y5N#^(#LNlxM}T^1;gWlMiqf(FzqWLEhFC9DQ+UOOlF&rG+)hUU$LzC{0Oi_y4hbOj5QIiTa?m5Hdc7`F^;en?=Jp7 zmK^NyQ6)L`Wlz?m?5cUPEOtX}(En*G16xAmhP>4^yHaXuR%KNrJ7#L8YTBZl{F-$O zYO?E(*9P57uBy#8#ouK@`HF_T>>9e>_4RuXMW#C*da>~2J=@C4-rR-%Jo#mrA4H~` z>-7C!u@$UtZk5L3MX`?MYQA#!G$8q6fBBF72w!2(`lXt%4jee3IZHFvvTg_qOJj|6 zeR}Cr0Ac;%#&}Z`+NF^j;AS8B>NOEx$wZLOE_?-HiLQwq8&7?9;iutXP6XLlVbAgR z&@;zgAYpA?Zx$U)Odeg-AmoG)78y%hvSIGygf6Vd`2T33e<#I(YpO5W@Py7Z4URHi!v@H?H(>{puy*D_vJCEF_!U=Cu)fOb?2oLSqk> z7!im#bL<#rgoj7XvV)1qBaG{V?HwJmjK#(}8)!5ZeWU3)C}3g5^=@QtFNp}Ni>yKz zjD-z#Ui}ICppJB15*D?{1#IhG9qY z6<}R)X^ee^0E;G9V`EiOc)!vm7rz01VTDJI9651f;S01@!_m_J;~=4liOEc1D=%y6 z=;&ytGS(5%+i>?T8Z^B@LU;ii$nTgpk9!X&#?p;Nu(6)#5h2#c2(bhQmj2HCW)#*R z^w`+o$Jjgd2GUHF@ujcCxmZ^+A)HUXnuqmgmL)#_)hBOV{PZ!2UoiQqrS-%@;j68U z#fpiE$s>#!zi2xNi$W}}yuTAY*;r$re0Dxj1XvK(zyK$OGKXVheab=Bi`V)n#JVv~ zR(kr+-+uf3H^ATc#?r2?vt3;yUx>}WuAEPNf{J3SE9omeA-sKC7go_T-@p3y^#C5U z^z#c_ex#-4+_^igttS>kScgZ=t_Bm6M;m+XXj2E!l0upVefBx;04uuZlT+Qx5MWVv zCy*WKMq|M>@XY+4s~0X~x%Qi5!b%7J{%sO}!dGXzZe11u)?m-Ic}NGJ?!tLkS027v z$_b$qR-!0l^A>iO)#576>9GNiEOOCE`O|woSU)oTsvrPZW5q7qiHBzRi;FI zY009J+7OSUT;(e=7ZoIUOp?vYs&E+UenCM&_j#p|@f@rqeK4MqV~O$izF89gh!6=O z39IOtuf81r`mun0i%C}<@YPXfd)v^IrV^?J>-Gox`}qe}C&k$m4QEzWxWCmeaLM{8 z`Lw!1?Aa4IJIj6UvV)vX7rC8fA4y(-kmlghu6 z9STxy+AA#x1=S@%8KGWO7vSM-e7i=~H-E>Eb6CWyLYaO0t2VzG=T=VS@=&0^wd3NV z560ryl9c6P;$4LuOf7NBy_rLaBvo;f_95MM8Y?r@g@TnoI}B zp0*}R3c(#R7Kd2I0P7T7vCJr}*9MkqS>e-N(pXYiOV3}tB0{WhL>cSsz#qSR`0CFA z#8<f26)cFe&j(b%!fyD>kP!-s&_CMK6)@|K)(#G@j_%%l6l`hi z>>WzBO`&*~A7PP%XS)=_l@uWFt3IR!qGP3bDSqa|XfG*xx8) zNd|ky&YnFxeB)ygU=8*qzWk9_cx70xMlWC?zJjlqqK&66UO%&0)UKMzS6g-qU$yo2 z_Wl*GK6re!I>2ZU{^#Dl%ixvjNCgBfkw5Q?()S@v@@>WyUOPbeFL3x2mOlyW;KK-O zQMd){bSTNWK83Z~!t8WPVa>)*F;TvD2DDbisT?7Z!(|K?E0pM$M;?>#iyDPxt<$sV zIl8byX7LR|UFWe8MQOAJ&W}?}Os3V@(9nnw%d>yd~EFO82jpr8&}T1I5`{S%`JG_ zLyE7sf(2noHul^-at^^2fUdT{SO~8=dwXN25@1EfSU_;b$_$E$qSF+xA&_(u0U3bz zg&MY5VSshn;z{|6pdbRD`&z{p1zOBx4Gas^ZY{9+jIbVBShc4q`YBhG&vmNl52;!{45fK6Mlq@VJRdr{CVY;x?_b8@P>*9UST^hf(3@I7!YQxNb!b@2%dnoJK>ldl+ z{_z)s3&+mfx`k~BdqzfjunpnZSl8IyAK)~-A_dGyiFa@w2?F&526_V?+-ySF$k)hd!eL@H`3MFzIb`1XoT zrcI~}`M|kZ+X^A4q+(Bgp_P7EWDr*P`c+JQh+A0itzz=yrXsA6DzfYz;g!7Al6<=D&w3up^uuP^MVo?>VRnXE3VSyLWJ(|0KpvwyD!kWaCzbul%;|2YT(uc>g@=yz8mbje!!=$xWAq1?c^&G z7U-A0It*VySey^;-n|{=tIp2R3a2s!sEm_DHy6kNry!bhAX&aiQt>h8+DpEO3B)IJ zQ!qZ=QHn2+LV<`(I}aA7SSdn@*M)UZ4=SXvtj86}6oloZa|hI`iU$c)8>(_By0FM! zzJ>K64OKd_J~V8#s=i5)kdUXNknVQ!W;n;4{HFL$yA)P%AOfxrWDJLUtkF_f6~RLO z$qKp8&q5>_s$Y4EiOIC9Si7aLo3H8?!0 z2U*XKi!v6B_4&t_@2r8TG;U3Z@akI{AtYZJR;ZE5Aa^t1^oE3xgjH0;zFK(>y29Y# zZh#Prd{uU6O1|RHY_?u1UdQPlY?PqTP0m_EL<#Fj$VmJ2IbXr&ah2~t6%WB8+Y}8) zCFM^W48n?^EUe6F2uoe%PkS8Oy)J+rUt6I_VTFH4ca-`TR<(9`d7g1g8 zoLtQhN#XK^=UUq-^|~{B?I}^hk{E+5UwI)Li+US`ogk;16C-!;-krE}L?&xZQs7V6ZQ7IIHxitVueBGIB?5VN!t#~3eIMg z%28qBGnS^Li?Y-zD!Wi^C=(yMLf;)kTujPvDU7U$t($paZ3w4GD#ZIO1qemdD{f)M z?2VE7@hvRogJAhAu*%9IRy=8JrFWK{VgYZu>?9nKo+j&~7eb>B2fpi5GKcO3iSEsq=5+c5@<_Ie$nLfq=nfFnk6~2%-_FL%VJj24WMJ}O1OYg#eLv6W#hZ&TpeVE z7cfT$%7U{b99~@>yb53Gr7Q2?ilZwIuRK~BiiS^~qo_|9Ym4;NXlAKXnJSqg{;?LW z&VWkraT33TS==6^k89`$Ld0%1GO;uP` zA#YGySeD|6YcmzkBNbg(ffWg}$Z?MQ2n*zki}U9z=URJsT_F|rRDHJyyWN?-p-MdQ zN!2Z^>e^~fnL%y1h)FrZa*r8?iUd0k=U*F{p;g+|o#H8b6%&(bqecyFr&cVzh;^i; z17ZN^(LzW0ot{LmAnW#R{DHMlZ9>UOCWf$&JIKOV;g3I1B@5Cb5NSbIH*Stx*L{Tp zgs%pubj7)#I4w@TL-?w{zhCx@vadQ2UwQf}E7?Ac!rhyCBUWynO+-YYddOp|;u@E_ zQZydf$UPZ$>KQGu=M+W8`5?1b^WX7QjE5DfU3Q`|5!g|wB zSYx%<^SQ3Y(VrBS{|Y6~kH!)1FRTp#hVs87gET9ycW$H}TBYu+oE<8j7yYDDFP-lT zN)d^nQ);iuk;K148DIvMaB_%Ld7XI85DH!?+cq(oKK6=HnxMnNI&$*J$rjcX+#sSX zSZn0kyd66b^a$L-x=m3Q!YtZS5DXX=_B-%$ci+t)Z@^jT$@&;zc?PWEK6rI_KVBueyg%u&;ItUv1waoYmPo+7M+^rh#o+w1u!%)^Zw1 z?M58AsIO=dMwu1SOioq|1zI&CNU+P6)53BOW9+0v&0$OushYjXEi7w<#*-{8@>vYu zl@b4d!U_+w`1-&fqHcwkwZRP-cT%Z(qjc z_U^mXe+6Fw2n)J8y1TdRFHEYP4z>o_Bc8$guNFt(wsnz0?9_UNqJ&lg0?84jkU~sp z1(m$LO44$$zS^be9JdIvq_A{$Nnz=n4tYRfdA~LjPp`f|NYRA_7RieGE|uHReG98L zoJ;A9bEj;u!r8ogLf58bCdl_og|DDcEsZXvj8J_~7gi4SnW@U5Km>U?cop_ny;;IC znUOir+o`qT94+M6+RUmFa=>@AJqcx@_Ac2$%3|19zLoXt(s|E(-`96lV`TW&(x*N5 zGsF>cSkR~|>8oXkuo6Y1{V=L(s9$O2c7PjOI!CALtB?i3dT)5XQy3(MA}lE^{#dEo zw1C4}Lu~^!>H-lLEvT}34b9s)mT`GTSYX2g32TW_Sm||{OoP+6u)ItEYBqJcZcsdh zRVU{MMjt{=+^4XljbtTCYc=DLOQ#^(y*u>s<2Du+b$Y1pQ_jr8iy2Pa`y?#ggG(HE zgqqx4%f*<0$}w1uVq)@8*waK(C}tC)hSlDrbq#Q9=Fui0FG#Cp*eERTKuhl=)jJ%( z(=Wbs{o1u_SDOvPp7AJ&`@yaayzW4$5&_>?Ht{cK0RMK-lu%6 za@Sl7@LOj`lrmSZf~%FX=xnRcwTgzwU9OT~F`7uFnH05nE)O5-P|p->&0 zdYi-sI_FwinxQI!>O>sO;0ww^UdSfVgr(iuaU04)K?~x+h7#^o9G>-tWMv#092k(g zng@1p*@{(#FTj&>v~&<@D%nc3Ux|*<-l4d7b$ai1HH9SgE~RucjgjT4JW6QY#`>P4 zw>Tv4t*I%iRh>JjXS6(m`W@_Vh`dboYEhEw6BuXarMZO_T_4NT>cUEjWi}X7yhSpc ziJmMhYh?vbfibLb6GXiTD1-SBmii`j#UHnAzNfJ2@eFQQXI99XmN%{qJcTjHAgoCK zeMCl!HVT8V02kmLvuIKw_k9GW(KMaqW(mvWVNuf?+B$@GC<&fL5 z48pQkk-3HR=D4J=44rA&1;IE1_h@R{Anr^tOIRikjScOiD7v>FB_lL8HoE_2K>(2$ zc95~Wk=Y@X1!oy{0%HuSB3&7?K~4p^MbsBa2T!z9_Z5}Yq)gj-(SD^W(_>Qr5627Q zmkW7qzzh<7zFYEI{$T3F7xL#W&JRh^3ZB7>PpHnJ0B*U|3)M6Vxl^5b<7i1}F0(vg zavzpWR?_Fl(`5z-!Q`vHg~gp!*40V(5>`dDh2;An!YZJoFkcrIztXTz!qS(K z*@>5D8#-xT=4yU|iOECbEGRqL-c0RHpskUBwX zvcafJE#O(eI*#SMVxA%H;nL95h2<>Ph*Et`&5@_pda=s)S-=}E#h0*n?h%-KueOGe zSLAg*fUx%XTfk~vSUk%)U_A~AJERLs@4lUtA}(6kP!(P9l_E2ZC{;{MW}u99D6f%d zYtz1ywMbZvZNd|~n?Nh-Sd5H;080x=9gHQFMSFn}ZdKuHlCE$z%Kc~+WQjN}PPnZ5 zF0w&hs*mC;PEi{>%SupgpEg-meJwnDrGb+V6y?eFx4J%!C$UTK+ z4^q7(9BU93FJ&5SrNX+0uvqHR)$a9pj>C5QL>ok*Q!z1_31g+jj&`;I78WceY$bmJ z)a1~5cl;@Xt>76=G^DJjsHqgycM7t=(_JsS!EJFD>FPDsmB(0M5&rb|<8Oe|N?kP} z7nRNJf;N<|9I7&HxK}bThgMjjMUaClXekDek*wNd!>F948u|w0{NRvk%86V&XU9m? zEN)P!FAs49tw;)#&6hJSEKc*l8&0uU6=i(uN_9fKgk{5lz)M&MD@qIEGLzQw$YY6e zPhmyPdH;A6Z<~=H$SVXIg{ADWFzXd>VbxjjgFofga(cL*mAXhxOlAVrl^oYFG}=qb zl4!Tz#NV72wk*DNT|`B?XMi3Ui5WHXD9F+_iH4&ja*nec8hpybR?J2Si+y!|gmuN; zV0t>(Iog2PIMYWirx})-vmqym+9oSq?k4YpZ}2Llxyg!~+8BIJ3*0jVmlx~}L?X0E z@!&Y_1J;=8<@<03IdV7i!jg*x`tRko1rQdkvsxDx6PfEnSl009Fxk`|xJ|vcu!`4O z{0?TUT#&MP7Png@**t``2}TJ`r zC4|v*a^X9-+(jo(*+^w^DT`NfAlO%YTkm8LXQ9Kr5uFS@6RngBQfS59SEBe&-3%c% z<>9E4ix~5_2pV#8t+YrytJpT~8Px~x3ffID4QI>QXR?$C+lh>(@ZGfP+|GmPpAs>mwq6`m4w zGSC;kI<_u+;n?^NXo>PR7L4He=UF+4MTuO@a!)eUfx+b7U8F1BRR(1}kKn39*a{sM zNJH6J)XX5NR~2X$eRynpUJ18oDO_rSqLEOumcy&l^@dNC%VV9!xvIeC{U#zjtm9lY zC)%PBynl6w;vp<>+{ziDTUfD%u?=3$l!@Y4ZJlCbGSjH`_()0(fu^k9-p6gL6?V2vQ!Lv{+E0$_tGZqy@!JqLd#sp4{F*k7V&R zmBtd84J8FpKCJ7^5)TF$?x>B;-#ACUCpEYf;HVQfdC)OVKa?K{xfAE-Z4+^FUflOAOIpCD-}Gmp;Fl z+OFKTVhqCSKG9Btg3?yo8R%-XA=0JJ=zCOEUw1yharZyzBiPCPNWLkPM+?=NUhqNe zD5OP@yN;eb3}KyFGu*BF3V3R#2#~V8Hro-mVJn#o>PJ1JAKE>9vb{+b*%_|-bv=OGa6MTjF6a$O^#~SJ_`DUGXum z^Nr`lxfU+odKf!-ah;t9DMw@Df=peRn3zlj)gF>oH`=?UshOttb+op(-kBIV?=w`= zoyF2(ihwb?dYvI>ef1T#v+wRdzh>bP2oWpwQH0foTDwRFO7&eJ;5Jq}^Dz*u4e;g&WO&4xCa$)Jge z$+WOJA{$2A8fhs~IE!|!Xd!2@g2WdimE{H73bdM5#WO}H!^td6kkWzmX)|+vMS)LglLM`{WA$!X0D+ zh5wpQzVpJG#Yb9Bh#kF-Vvh+^S0*MV51AKkg0k8~Rh$;}YZ9BV-WloXVH4@nVr?<< zhVrR`PKxWnyCT4}16T znm8E70sNL12|IC;awnIZA+EJP7u~;r;UeSe2R9x|#348ZqZ}5l3ILKK^r;uD&xYJsPtDYkwJ6T4 zhhN7EFQryDiwHfkiRBPlT5)FaHM$!Pm)o={yj~5;$SVLyPOj1BQr2d$j$=vol0xg{ z@!^g)f!8aZd1Et+P%e?E_C+>_DEEkCQDV7!RK;>G(dP{Sk|ebKkXn;&2JH+fd7^q2 zW!CG%@$voD&C+s+C0~leN=*%$#KR@{2%&@HiMzME`c^_`1^`H5U-;HOnRAGLHMGdf z~eIe z6v*LKT9U;#k#w1O;U$&T+tg%<4&Em@ti-31rec|A2& zTw$kTSiY@I*0b4=d@v{><}Qr&7!FniW6NY=vQX>aTD8u8B5S0FV}u)63Id ziw8%aF}XA3&Y_%CLC5#Pezks3+A7zIx^CnZLpO_!T0x@2MqbkldAdYpUc;Yr03ba= zj;$!o!b1S3DZ=Uw&2m1{@pA*VIA5@~JW-oa1(a0SD(k6ta7e@77*qSvf zw8d-JOXZ?LN%cS9Vaz-0L9c*aApm>=Ik!SLO;guCRy@yl{qe_~y;G!k6$&fB678^2x8z?5dBn!c|r2UeVUh-8RY+w3^ zchq#JEi2312F~Yc=F;5mP55RhBO%s+u~LcdnM??=22@I^7!`{UVhLPHwdu|cgb-`s z-qb1;ix6TBTxp*Ms91y$OW@1jt8{lPLWnhRSCKxJf)HX6sJiImRS6*$fuc;oB7|53 zBK3+8LI@#*5JCtcgb+dqA%qY@2(cb-A(P1z6tE&Smoe9I<^fJ6QF{f2jxW$#$5*+5ko7R#DFC-g#kYQ?=*9ygZm(-%S+dN8L{=8FF zB!r>7U9bs`6j+fG5^Od>oAFe<)<4`um@_G-eTF-{i_GVO2XJ|aBRneZWV?3@p{}t7 z|4l&(F?b~bH~Xf*E#I9isKR_)IoW{-FSP7t8~3LjrNHE!@D8)L?p@MPx`p?{a8<9l zKQ6ov1;Yt1-ULe!93`+KqcR3<##8Y%CJ1c)!D_x^UHNXXK0Fev*5Sb3?n*XM#7BbV zm=G-IAXs=J2vLNwIRtBIUct&c+1@OIwRnH9zOP;E1|AAll7jUNQe#74LLX!H%PkiL z>%L&sULGuzBuSj|k|<-pT`<69d~&b~Y|QSCex5d1=4V*^fUz0}lm8Pel=-cbw;wFb zGG_15Gprd?BR1hLc0|E?tzhj3*Vi{;I%gjpQ4W3B*sVT2Sc0$^TncXcHXMuzN9`8` z3)4<#22B1_u&(wJFt&P7c>BR}{bmB|a0=FJRo)FtWe^NH{Ym&r!NL>9rd}8K=Oq|W zE*<`9f)!Q`k~hAxAh31i`N0CQT$jP*{{#!eEDK{A>%RS9_3RF}u;HO#%~W8!-znRA zBpa@|?QC&p94x10|LOi}!RjJBpX-RdWL;PGg{guSfg!&6QLtt3dBK`w{=srxum+5X zhphAFgT=e-GUE_36s(!@I|M^VK|tC2sr!qMgSF5GV@#4%4km-KSWJ@9G-7~0E(O%_ zI5%Buf&&vyQ8s1}Cw{f*WPD^?AwL`}QI$-~HGeD9`b-;}9IUTs9H{|GhJi`n!aOL# zNYc@t4Ex|2vTULKoL~V)1r}7_X0TjO4p!S~3RW>>fne<{vTpI3ElCutS?byPZAy(J z1LI(QT*cFD&3C@NawfqDdN;$t>(ICJwXG`|hEzQgiFyEdtLqEZ6c|vBzXrctFLiQ7 zxCM_RhOH_LNm|5E5QiuE=;80ni@mI0gd6pUp`pS+YH$(&gJ&xe(T!nOx^^Dg!pXrB z_w|GAb6+jelE5SokJc{S=j+|Vsd%%oo39XuQLS)FU1B0!+O-%LN*3t-hA8xH(dFANgiEaikC!ySh-#W zgIf17N1<$J<0x2IO{Vo`Qo)CV1t}-n@D7$#Z*v%_*2}R`usR58siNz-efe&%yydcD zdi;CMhF(clMfeAL^A$}m^giQg;I!^Bj+f)jY$Ml}!9*&jv)M{pocy*1zSApc&3Fu9 zfO}SKtW!3W0)WL|b`~u6^+TbQ{bK(C&1Ci5s%crMv~qf*neaTdNrGDf zbz_!vVt@3TSo9b_b-kI7Jr*oYuvIY3oOLi0S96VQAuj>{YJQbaNgB)FtRmD$!4lhL zF91}J8z*UHw4*=loZCw}O&G`b8Fuz0x*pbJVh2z>@nR8~pjaqTU_w#hjS&PIc9x88 z>NYQ`oBrW4u}ZjfBs&?VV+gEvdYfZ+ zb1lQZ3Cf+BgKv8SIljUO*W5)zX|V>XXj(AA5{M}a=G2)BXc_XmyR0K5YPzm#4_*qa z%lYF>jTA=lSADaAwHJiQ4QY#lwl?N*~){m5SUD1iaa_=T%3d!cZLh<3r zZiomex~brAt~0-ckfalx5GQQFzl-k|NQa7%p%XEjx-QTHNyb_~{|A5-ww_1&!U;EE zeU&xcN~ISj*ZIxPh61LvXxTjzSgt12j)kHIY0Mjntq2{A%fG3~5wKj9cao^+?=P+g zY+!lbw7%fpdK3Y)11qC`fjlMEl5BS1{ZdQFVa4ekC&%SnF?GagByuOSxi6`NHqLQ0TIB@tax=*2c-L>H4WbHo0EXmetice z;*V(vq@}1{$DNrGzA$atB4Xmdo0x9xX z(-A012XKcy5s+pWngo}mR=6Pn(jOo0bOcgWo&~HO4W4DKVKl1QfV?^9K~Lwj({{ znT^Y6P!ov<;V0@ah)e~li=Tick$*&cRyPDHZx6^=i3B7>l$IH=(0fU;=DJF|6`4|& z?gI4x0YA9qBv1z#`xzqObCJFbkoy3L${g!o0t@vP5LJH~u)+^CIg$qjUbisG!cP_z$&0sDBn4k1*|+Z9kk1m{ydl1-yy~EEdyFxN%=glZPDKLJ@$j1d0O;&Lig!40&0AQ%xCs| z`MpHrJo__UVQR^myKjTV55OXln%9ktAMqAZQTHe3c2hTv4N8)*11ynRYMMg)x2N>O z=6%?+-X*sm_XJKC`Uo=XIzxhovPFDIZ)c*2=-E9RSd6BMrXNk)+Djv%TB(1%Olk!0 zl!9T){E22(>m9#nTkI?PU2=s~EJh#nOaK;9u(Z0}Q)s@Fez-5v+rxgfry)}trv!gA zhxpF%;ZDD)v{bW2`*m8?<-Vx~AO5_J;2PVMi7cbwt_6T7)KUysL~8tl(;XqP?zKKR zBgCKObgv@lsxyIw0$13|wuPYQ9Rn7Jf3alaWqgMLA9`4BBAmNzU?ErzTX%~Ar0-j) z6hKUStwgRxGznNp*;XxTW)bwPKPw{VbiWljH$YiLu(4yCyKe}xGBI(3@W$%u@_y;V zQnLtk?SdRUf^ua+Cxg)CI=22+t^aa%-+8+TUC#hkYRL*|TsNTS_$7yc;?`Wiw+1j^ z{iY-R#LC6f12h6wBoe!oSp#p2sAn~%k7P}r-;yA0e~x{!wGq9MW50wh;b-dDn!X^t z4SXMgC1z=h(^(r#+5NO*pY$k8#Nyatz@pD&R}#4pCY&c=xuG*4P7>M@IC&R<5RkTK zm40uRHa>aq*+creM~%M37r-JC3)TD6)5R&k3dNAA%LFzDZB=q^pHRkh$;grSHg8zP z!ZtQU8iO_&ShZKoLT%xUK0+6z{vGqSyFtoC*Gl2qh{>*33qd|g@rp36eI1s)_FjE+ zOF>8MZcpWb<&Fa%)_|bNdMo9JNNxtO4r)lc5@rJ{D>H+;2KvDiV3kE!Tl{)FZNOug z0V}dTnyX^PUh5)a)KdA@U=pyP%@C6d!jd)eR(W8pi~&pBW*3_hiiLLVrn&~ytwT{}yN3Z&+X$^+{?Z10M*B^<9%fLK(U9Iy)ecB{`* zW9iJ9ItV&=tSNu?J@&f=pHM*T8D+%?h3xP&0AP;s(Ja-D6g}K+tnI zEgszSmT)mk{{%&`ma0|atk11lEdqRXjM^2UHS&mRX?6+ubnLKC%Ds}%`JrYL8?ntL*^ z7^hhA&g}YD5EtZdpxeOO^K;vU?jCT!S{_+RR}vj?%-N~@Mw5o*hw|m4#KQXVIz5+| z&p6}afR)DVM~nK!nXv5kEru`1q!o`wzzW=tLT1Q{>BQ|d<$f`f8pD3d&+LzcLp@K; zW&n}8OyQz_39N_ktZ1Blfv?h;&sI}dNYRnH&r+z(TAzuY_3H8VZkefk`AKXh~hkJO)5e@D<1ZdT6DKz+f* zY8@@#V3>p+-}iuHiOayO`$&V_@~9?-8`v`w^e+%pG0dU4lp64-sNiW1&jv9T?}!7@ z{~jCCFgtrv_xB{V#v#K zXh#VBaGtSkYWPYBGTtDm0w@`EsaxE>d!++wA}Pp)sc(-A8Rsb2*<7^yl_5Er#drj~ zT1T{q{=;v6xm{h%Y1N?3BF%W9g#J+tPE}wT(Q|%5EP5%T zaG2N0!KEu197iPy3MPTh2o3I0diIq#gB5b*a`9wPHO)qjHN zl-Vp%f&T<;+Tufrhx$JW5cq;?7LaW0@ZH8W%TUj}o8}@-l~Va^G8K+VqrxHHZ#Q04 zJm7!%2QZ5&SCQJxkbDu38-P>cz(MJ|PmuQMum&fiP%2xdHmS@H%hTiF@ityeBU`xH z-$hvKHw|z}+Q467e%e??G%3A23f99en+nR)lYZQ<4BA z_wDI}YRZ|w;+4E72BHiuG<979(a~fZYqLTXX)fY68>VE*iNCaD*H^8IAr&jAb>|3< za$vL>n(X*I$}pbW(Y({pH0%HCJ^62z_Lfpa_Q04_7iQH|dwRRyH;cfNP|+4kKt)e{ zV9gpBM&B=x!u8)LIc=vmZBG-=^k;MpXx$b*+q|BF7&t_qB)C~j&x%3pjtrU_p$-$V z-jqu&jkSc8$J=08(|j>pB9drX)m%3uI3%4TqZ6+Eq1t!RmjI~vhzbk}VTNAJ(B)ZS zndQD~b_&sD!)zx+sjw(2vET9pd%?qYf(x1!!KIy*Y&*jnxM9xL*Rz?hi++3Ky;8=s zL6qF_c}6iOW@u3-SLp20>Z-U(jqhG2Yzr?UGJFG19eEC;L6jMbl$AQI$njqk3>~!8 z#{#BOfbLQ)-uMtD>;{s8Ry1R<-uNV&w~f&}V7~yVq@)&qldib$h!wAsJ;`%vR2-@OGI411CPY>A zt$7xi-*YN;9n7Qp!*r?8<{oIEP$e~$jt)~%+6>ATG|;=W-)#@OjuxCBsX&#iBqWU- zz~qmY%g4_0Ojrg(vnt?C-mSbuWn?2{-67n6u4t|=^w0&y3{(gZ4N^7qhFI?W2Fpq* z;6(xXP9xZxCo1fixDd6}g*H?NBFt^Czi|%O7Jh(2YF&axIq9U*(aaE!m_PUY^JTZ~ zmh0H0fFp5Ts~~mor(->~A8z(vF%`C<6%o`B&zyYO2uwvw^Wd|+mNhd`LDhR9Kw?+V z$w?5?7Y9fk3JI=!duT(4^4-dg?|$bi(_pt1fzAQ=IuGA20Zy1uG8Im4mauOgZ4^g) z8!DS75$jjugxD*7WKfH_jDDuO|91p+nHm*(u_af!-@rh2ATcXp#V$l(=1arwR>lWv zVW!3Zl!0HJQK19>;uvql3{95+IETm_Zf9o5dj0~?FR_5R3v@bl^7a-Mq$8Oy6tDjP z54a`utLP3M%uqEz;N)e)BJ80P&+)W3k5A%s9{-&dZrC{9#MAVf<1WJuB{>NYH(sIQz$tLx06Gx7c{G9i;G$ z*UM`SGsWGk%yWg7TwDlIt3&NbL5>75s3o-FE{lHGJH6_;I8M+k)n#=s-iOdYGPPnL zwZ_qFsn;h|&SUe*mQUz=&K6b*S^;|kn&F40#_A&q7~#Xnmd{+zlZe-gU4-AZ4FY?+ z75z9wqtDxuZ&ePZ>YpScM0DJ4Jr^+dNZ*z1Q>BKir?%%!4@>LK00%O^>aQ&&;7MTUb|CiC|LX5PNv z_=rJOLM<-4@|ox=?TQTi{2x!OZD@(K+2pxSS$WGLD!|}VxyQ9+jf~>STYzJ{d{PJh zL1}cZ8_e|MM(v4^IGoaY9bt~0Lpy&hzpSdor*4fbVL&?cv(^}qSjvW-DNxw539tY6 z=!HVnf2jeR4A7Y_Tu3|3_ld8j1BfIio&qe2&df-|x2Q`U+?rmkUOm8s_plTS@BZb^>^l&|1Lj7*V=i10g#;M*Q2I+ccc)wb+g)Dr2OZ5+-kKo_t}& z!5chg)^6$syrkd!bywxK5OFpI;lr9~b*^NPON68tDliatYRn9fcALE1NTEOpo#3bD zIK7G;Oga^cDA>+Jg@{l)w~QdAefexOmi&Mn@(v`Q+`zNzcr9U?dW1 zw7DqUGjkTN)f>AG2My6DbRc{rDZlKDaE)z*eE@!>{kpVGJ&&j~nTJ(;5rAp;5$aCx zbyR3{g$6((PV-8Hx3?icoA})>u&{uxh*t~+bj+n=6x31aTJRpW6aerS`*-Z{QJ^9{v zrEg*}v#f^`K63rfmWx9Dvy zzws$3fRd|L6}!{86V7dR2tt2R|Loj03s!Yv3n z3qnq7!}?&qm*tSGP2$8=nqs@&Q;*2I&?+)jilpok2N4r6{Zsqwyv+(H7 zw=@lMLxL{Y!=qADP)7aM3X6^?2RwE6{Ms(=jG#$2d zz!=ri?81tK1VU;DebUTzS?k*Hdf?+%4^b)GYcC&u4j{dy7mRs>J z#6}Nq=Ph48%2Xp1+%ky3`k%~u=G+CMSaH_)O2{skwEk5j@5-CpLZllw_p4p;eqXuz z3nx^_j+W`Y`=HCXaq3k*08*d>8my?j<^CP|kL@jV77eK=%Mau<^L@^0`H*|7G9&)+ zrnJ#AsmBRC=oJ}`lfc&2y8~jpkPrJ&PImxIuuh-9!2Grd1-2bG@&73q{vp?NC<6Kn z{lqH?0*PP$CTkPlq5VXNR9%KHrR5#kw^mGxL&T|jO`MHR;)HO5CN0)=+iaYdE!{6y zOiXWdY4fIm_3UOz4s{8?+4NiEQMl!I;jaVWcGPBZRoU~S0@slWhKtmHmPy?B1Icup&}fj2w$URaVRK zZzwFEZ&6Wu3pg6(w+}v{Od~AB8>TJRIE^?`Dzra4^bE3&OF>U7WDI~{xfFg$BvOJ|cleTvPUhUP!`2eZ5S73DB$n#m>5)|}zH(!n zmt!Or>5XEtf~494lm~q96?{(ST4>(N&gcA4$}vT}UcDU7m0?1{;!3@CnXsq_rjkzq zxi$#2jo}CApFezAAn^Mb-01TloN%rMVi#m# zAe-SO)(SZBM`$RBsRQP2%9^4$NFdMB4b=$$aWpMy%9ZPpK_kmPgx*XX0FgJ%;gTqz zo(FOyd;7wsC;Su${w|+Fw@n2f69w?fAW)sLf=7V&1<%+hMba zp5Ty*lF6I|yMseS+SXE7_ zaL?l&V!@Pui3Xf%wDm9tleoD)R5yYa54cY8lZeY0&5@&!n)nl~zf*IFb_sn%y?Foi zW?VowHOTzcxBc3*mU$`ao4^OZVsg+_03W=MPPCd%yz1o>9!XLTTNSfWhgz+Ozi9KG z9XA=}&Pjd@hx=xYw9Z)L^5RF~vvVD4Y?-+$u59(3`0L5FU4zC|M<(`1B0+Yo5&z9d zyr!wjHE!88XYu6QqKB2>&Q706_aB1x?&exOmF?#Sr>a_6IUXH%?l(?zRXG}xBhdNa z+UcVbv}0`9Uz#7;1!%d(6;si6WUTlg^;GQ6@v(t1-(?BAEYYCS#|42F;A%p)0c7qR^FXltvCp!Q*IbTP?&hw6C6)QqD+ zbg;WBC}wq4%{!p?XnprYUpl|Rzf#2Sr)ha0`*QK$p;7&flJ=ge%o|jQR)GG2OWTZ) zK=#F7yLZQanpDYFx>}ZwV86W~4@*@B8XD{94wv6u+rtTIt~TV{u2vYc=}-&*d@np|9s%_ zefB|q`f#1(*1vpAeFc8^Gei>`)ODr&TGH+{D1v&W+;xTZ_D(}G)=|}k%|xDmrTrY< z#V6YpdaeA*viY4v13#&T;c1HN8EKB|IX!AR^jCd9*ZjuW@d6!YC^tfsc`Pk2Hcv*} z8mtlAh`qvre3q}W2JY#(rP|v2hYwu3K{@(B?SmZKf6W@ry}oR3rYZYP_Hcu1yKc`h z`3(c@VJd>~zfWj-M_qto2^Qc^7;QXo@b6tEQ)YK$R%CREOi__SH!~yK8lwzYE0d<= zc=XiSbY|@euWN6_$GNlNEbHoX7yJ13;+`-KZ`bU5`_8+qSg!v+6!2k2^_*)Uvs*Sv z4a9WsAqkcpjL6^jMu?_tN`MFgeKOQTxn9_vd@@V{!vzK(jys@|)0^vgPA|oq5?E^( zz(w5>!L$#wksBvkPjpkQr4M)M*(RUR?_e~RHk<2>m|`HRIA@Bjtu1%Tf)m<=?hwm_ z2wO5B#Y<`Ovv`F#GN28-GsDjG62#nWafk2eDzO~&a-i79>0-DjrST%}fY;+ibH`qb z>&qPOLr;n4%v$1q@nt*JV1U%`RzWN zQ|N4=7=pK=t&2p->Bgd%-bD?~XAm4$=xaM8@a!;(_`MYTA0~5i=%iAtw+*i_uYn%o z`nK6LBHIOhodKYwB#kpcXls$8?#6~9y|!v3E|`x#BiqZp#vmx|qt zdw06#l?*cEka!AQ8IVV~HGa&#fSiOykWUN2r-Vg3dPqviL>dB$zBZmRv0l*8dDI8d z_QTNhq$Qd2zi;*>C&3ziA1Tvor;0Db*>&x9>vPA8iA9*G1np!qUvy0T%Vvk=|MlI2 z)DFeG$oEq(df?{WHiq)CX-N?aSg|KOhF)4}=Ft=xkDf*rRNzsGVW3iY zsuiUhc7Zj?PwLTm{;PSd`|M*kaSaIML|MepL1!wB>SkGd$yDC}V|kZWF@NgJv|8SV znoEpN9br%^%Li2x_P-;ay2}-vtw-Lhgy6CmkoFoO1l`hnJkn9rRv_-;dSF!UX zN3kBt4B5ifB!53xXGG1nd&_dXKv<|BL#f)4Jg%%2|9vnqNr>siEGp`n$3pbrshvwX z{M&iT2X&cUOatDp=31(FOGHWBt_Kkq)ucLUYE$W_y5@*!eE!F1M02RUscEbbqO;f@ zHmTFfOdeBwBa!N|z7ST(Dgs|8@)~!eCk}2;bdULHCkV73!VXj&yzBgqt}+Z7p4NMW z>At*aVVhS#lZ)ynaYRO@3!Ht~rjZGmtH%!{pxd*G=jq^rTgSQWj3Y7@C-6$OVOefmu zg`WaNoKun*o0d`>A1%!J4?g9Dx(*c5^jTFOA~QSwG~V~_5ZnLh(?Heza@c-TEY_Tr zLy<+cr{IiDSjk)a$>`Yw8=;GZCN;L(Tal|>9&JJ2kU_YNd$Epb1G7tPx@*zepZ)y=q##N|o< zan_Bkyct zfY?^w@7S=!&l3+xtMrhFT*|UP&PGcX>U8EE#RBE%9|tVOhDaZ6P59ij`@cy>n4k(WxJd{vkZIRWk1&_6DnfU24VxkQ(p>I zQR(IPtqP&>_N{1b#~Px%R?*~7qYTBwpTd4O%JBUrPny4yZ%-;-r zE&e7L^b~PSm};1p_wjpxV0v)D$p_GK0P~I-{oO#ht`yZd`aw2t#5qi$UjNU3qSsx>>`Ju(PQr@&aZR$ z2ENL$0M;sigit5{H1EBdEP*GG9rYtPMxCCLA^`{fl2+W$~4%6Q*NE6$KG>w!V&Qihg{E5svwga8o?(x;dX zk4Ht5#qGN%=G?~mZuc&E7&4N=cYHvyLZsApW``o_?btV!C=A~Oa?`)MG&7{Ho70)z zN+^9NhE+i~i!rXXx5%IvV^6#DTl4oqqI=WaX|jC1AGheKs@4C5r`v-UbXK*{ZubTRDn*GvEcNIYoV<;tSM>O}R z!$>rF<8pPfclkG2e{o8p_hrp1(A+r!mEl)Kia>oegv!JrPuUr)$E6CwKXL?^C|-() zi$~YFJR=F|F+-T(GYg2i=#kVjGU(R_nR)K#Or-ZS@lridvsUv_I#i~)8grZiNoeS- zfj)HHL!t~}rV0aXuJ<#N)hoTDGVAD3+h3I9Aap@KgjWe$qHh8S?~3PBmFLl+zs!HA zVmwQO3)yx%89oUtYD}(~K7R)t{Xt6mu>Wcf(-DRvgB67fa%Umy#CBOA2Z;)AZKKOy znZn=yJy40?4P^za(%}L%|ImJA7CCzIR`1?$ynD|_%XCor4{W)D)k+2}`C%NN>9l4S zIewOM&~5b*YGn?h7P#Sg>w$_lMFImbtxUL6MsNU4C_o^EjfK{)%8`}&I=nEZ*kY7q zpa#3m;iE|w=T-Lnp%wVw@8#cC#);&G+n{R80Y{zoR!bsB+D9 zU9u}n%EydX$Vr&e$!xzlr;D-BDO0)drkefvn76zszv*QaXRFWsjJ&0lsPvJ3RoS9& zpd7zjgNN1U3~>Jscrb>SMThT--i6Z%(EEgz#z1B~)uLXv>_)HrFBir>V4ao4hz@ju2;w3w*6u=$Kn}_u7UFG0_1~Ki<{WJ=9eGhh&&KK5Adxu@Eqd z3t{h&pJTd`51XA@*s%53BhMCS|GR1=EMi3;@RrY{&T>@75TNd;BMR+Ppgkk%C?KQi z&MrpGzJghM%nV_1pjZ~V1o1c`#VQFys`&T5v!?ad>wQ>hcO5TD5OcaJBXBo$qDHU( zv%9-%gwo=8*X8=3o~f-k(MJdG zy5t~mhA|T*XvQ@2`3F*r)7CEMcCSvZ8#s>SPD!|y7mocI|G!(`lTOsRF<~ER)ZPLU zh0kRV-ICm4QH6q*3qOzHTT8$29BulawheiWTi|rQ+3))cKkVF&Jycn3eAdJz_PD3> zvIi$Ri=|+d|MF z1+NaDrwQPyo15oW7tt(zHjG}+(=dq+h6V1*fB}h!>?ItA!J?v2?y5hdnML6^rhk-S z9o-bBAKt4r0+cWB=O`Ot?NiWp?df+X&5Mnt2rTjHp*t#}?cl0}{STm?9xBmC!gD59 z((3%S3c>6QUf|dEj7ISiA}b;g+1^MaWRNln&OZ@9lD(9S6zg0(f5mK?rOR<)S{FJS zf3RMw@=6P>qQAPN+qAnNyZu>p;Isv6rJB%_c+ceSSFQ*sQ z&xtJVbYuA^Kt@OcIj#M)g!|ue1RG_W;`D4cvm9#vA$^n`dE6nY9ZEzr`_;%jG4xM- ztlBUc=9_d3kIazjqvTz?<+EXDk3-}25QLZ#X}C+;lZc7?hlbnHfzQXfNSk5hQ}8!wElET(D4iS%ct>~>qX8&<(TP@MiqGW(^Cbm zG(O#E=f`9yQYWo8V@A`|=q&4q>?m7NRG>Tot`anh)K`r_)-iT(MHW_~P_MTid3<1p z%YxrG!8O5NcYSInE@P5mk(h!|azAYcM#4h0*u?Hc3Ph1OD!MVhjCwNP2fnm{UZ4(DG+JBC}Oy z=y~}pNp2sU66D%#Zp&(Ynb+GIIp`Ov%C(palXALV3bO*}K|}k14dXN@dK0~e@b3qo6NfX_eXv6pgAlZlSG4aGRJen6DQN(X3#GtlRidvW z`_ZdWTV&9?S*x^pkGNFZ^kqQY1{`KVV!LlbbY9BSkX;OKbQD`FEU%kv{Qc{sHoie} zgpF$7+8xYKppO~JZ#jt9cz#66YuHmL=;*QFh+|hD15={5pzB+Dl@H^;L|}$iwR<{1 zi$4C~Z{*v8U69LmyCHabkv&m@yc!So>py#DT>9Sq#b(fHwVBz9&hu4i66D4T{R<;Z zi(V+?b>ZC7u=QTL#m;dg3Tx+^pk@Xu26@ZV)T@IQItz_ z*o{H;PO|GSuFKp&2A9KD8E9%dy;q!0^UTq@9*16vdeVM88SIckMHnFj&#o_rqMibu zhs|Y6`TJWnM5l&@ZA9Sa7`!ES|2pg-Wwpl(MiIw8|2ug1UxtZ(>gJ#BlNK;eCMH>4=m#pl zo2n5-ROlbufQIs2s_L`G_1~FoHf5-Vp&j#)zc3)$@=q9Vj-}|K7^Wn+V661IQWQ!+ zZqA&bU`r*93w-%{!FGv-CV{4>+?dQ|0D2sFS3||4CpBKXsbW?DKdakkJ*L18>nm-f zlovanaBDYM#FZT3f7-GFyScJ!Gc*8$#CwiRanC4 ztF8(f&W*Xi08st*+^8-3X8@8df1?&tdi@X=xeH+=(E6o3&Xv=FNs?LbzHaej~+y!OjNb)HZH12KdcAv9pnlf-WLz?cAaJQ$B}PS z8gOtmV}n@%qJilPzX&%bc%S8k|H(6RUU*|iud zy7ugn8150Bt3{@;+pZ*9TDBa&)m9{s_iW^0KQ6-J)Au4=@NO`UKj?sC(No;x&9n|P zsF3@zMBTRPu&7MT~cN!r__pvqUp(p5{IZ= zQ%J}mAmBnQ^EGW*(Y6Tu%Y13}>@$Nrg}5vALMH(1!jo4a!^;EasFPK(g@nt(M%I>Mn)} z5e)-iRSp8P=zKJa_oCoAn^Xdb=A4j72jdSK?v?1f7ykioIi$(yQqT_3|9CNpy z9;Vz$#HKGuprzpt&>|#N7rN|n7}ejj01isQus+IcN>I;aIxKnob68Xnw$<~Bbi@fC za_0&Yqaf0ij^lp`*7>S&mP8Q&8@;RO1eGcuN4yHDNm zS^1S;@zvg#*hX!qe`7#8ABn&y{h?7+am~rT1>}f3NO1s1J2Za8@D4Gq>`CF9b#Czb zmUrRuwHlIMtlvr&C~#L$y|VAzVaA&)T&`ODmI46sM#pKtvZFqbz=TkEqt&E-B$?Bc z*lE-o69&9-P4*(;{c zapk~ip{RPaY)?}Q&ck=-nl2rc=I=mN)WzdlhnE*~Ry1i$_JVtRHJO8hu#3}Rq26TD zep}F`%`Qvhdy-3uAUx2pB`kR^NOqe4bn-2bSO_IPN&*G8HrO6GjN2m}ksEBWb76sO z`SBa|<0IVCdy^3FvnX;`#pV_yjpy`Liv&NjQkXU|k@S9fbq23uB_^(oLbWVmN&>+M zpbrZ~HOGD?SBSwoO_ktzB~d{U)59>|CR<*!#6TL*R5Izd!d*LEsLvn|0cebRfW3Gp zsT^rY(Ua@9$j>`r6$HIt0(xh0dG#eo_}BUC&dvDAE6N!Xr%baQRj}@wI6`w}Fe-43 z&X_n<)bjnJ$Ksw}B2QRUpRrzyBu#V(E~t&}!HvfrC%49}CzM!Z*AY{#Iw)H($0`~o z6R$i;=~W2#<73|C#YzuaXwT1Qy{bkM4-BSBkC&Uu9DB_RS^4z%$6JYQ&# z=hU#Zz0jArHzRy0L0c$q4FC(EIhsX1m8u1N(BGo4sFR3OMVpYdu>PInsaZe0xz}_7 zOATmZhjl>Ao5vrwBiK1hyvGC?GineROmzE%dF{Y6gl$`V&!6HruyE@H8YtcU5w5%3QWLAmuZro8eo-IBtugul!6Tj>smtftkA z0JPC!t9!V=$K6oo4d{aJ!?M&68AFuu#8@WEJ2P505csq7(TQ^cus)|?b?^cDMs5?C zk973C_!}TGY6O|WKW5qFRb~}|#N+I^BkZ5&NIpW^WL3Je%Jp2MM)8Zpn2;p4w&!=)A}OS1bRrG561D1HJ^_DGO`Bl$8iNkZO4 zKMNyawanYq>RoqJXkXCAQzpj2kfJ5K{nQb5ZQfK;?EYRT|5t=~r=YVS&~Wes$#;Tf zw3A~1co9is?_PieP0u6}`Bg8-8n)$fOXSY7!E_;g`)yuRlQU~rgU9gQ!q~Q5$>ZBD z79K&@k~k5d>XLh81k1sC6>eu@V997^NRGYiPVoZ8JH5IeNtWJehY*1r5DA~ot3!2P z3fglx&duip2|xgv9B-%(_c4j{DDTL>WMSja?;6n1g>m4pj;5zWxdnkh0lHY?RpNm_}V!cvZ&3^I5#R@*xgKHYuF|AI{FmC_*{Q9qBQfBGl?=B1}!651mqdy@& zA*?T->1y_y=3FN#|8~0-&0mVka^K%!TEVa99_?6npPm7*+M}C+Rv;QRw^>jq5A-17 z*%=2MILP&j;vwwuYX=FmiW*c-2gx;TY?Lq1;P-|Y#nmM2WuXIiX$2~fhO)tk!;2`U z7I)%M?oeEtupo-q5DHMq5MUZaG<|%8e*RfoymjIY-bmG$t#(k$c5*M(nU4T$m9|<_ zNqCotXKJG}+cACkheQR;%D=KaAZpV612r0uP6YxwoO-S?{XS4lXkr|gZ>%Vx`>(j* zZxyEj#K@FXE}HT^${YlbUD;(Y(=!+y_|k~VIJ&f=hbHn3QK*Tw5P2$`-hXc*$U_H`crm1% zAOzf^8_{Cl1y)k|{N}x6?_lN$W#aqu#j}6sD_8#4i41w7P&ol>^i^b?GXL3s;q8i_ z1Dxx^{HhILGWt!lYl)JmK!oEEQf)uIp3oL27-4ooc;*Ki{M)tEqbD?}`gJ70gHdumYHhV%O%3edo;4s56!frK?6 zTG4{(TQDKWt~iY2U)yE}Qq!O!Oe+Aq#!i(@hp^)}zfhu+ zq+9b@epphEy%R2bHddBzoD)0Y4drn2DKd6k{SK)u1zj=BT?b*fI;P|NVh=_y9}Fwh z;u2s9&DaLnymo4D{$I5rEe#4T+#AGpdl~Z*rq5KMfKQsgN$Ihy*Q-i#?|F`um&Vk zv;}%?*e8C2)K!GKb}^3RILY_x_*yb&%~^4vDsvcW5q!o@rd_R!aE?41PcuE!;+5Xe zsQf-`PiYfn76rjIG^=TCHo6YEoM&%67F(xc4xKwbj@~LD=yw7@8G+j*poFZHMhbmh zm@)>8W2hBkc|hyE?ak#d7}Kqg@V83h&P3*vd!fMg5`B_1Di17DO*QF!*+U{;VUysr zLl5DDq~4f(1t`x~U;w$Er;tcOQ6N69lqg96W#qTIFJ+%>^{D5rz@OxnOiO(f@VbpU zSBAuwiz)tP;2SJAFq&T(V7G{`gwjHz$rr{{DNZJEGXE1S`vDhj^R>-cp1+#t9(FO4 zzR#=pM41Utrg{1}?49nSI`y(`2pArfH8kPU7~Es8GQWu-*I->GIS9?~dM?-ol&fB; z!FdRN87w=g{%ryr&8~dJ5+Fs%-@7?EnIj_L@y$QbU3*_TNXA#U=x}X}%FNV$$Q|VA z)FHYgrB9Oz!{6LJ?JPFc_#2&fvMejR%@tqwcLnu`g|~m$NH9%D)kA@bv)Go$3c)d3 zbmj9s+}pNgsv*f4p8H*%TmHg(27!bMUcp}+`3H-~vBpl&nAihM_nS=n`%+(337Rar+!bGb(yY)ch*Xv4 z)%rMF3_CzG{gf(QoAKRAkFJYes@WL;{T>}U%s>36^^pUuqit zyQi--T5B!!u2_UetT=eW9hyA7W*}le(@a--r9bm7e_1fJ6*$cZ>Q-7W4oO?&QPhj} zYt8L@Nw7==NZQ)pGzYp6&iHGr6oQ2!?$BP1x*tWiAJ4ljY1%{Oi zhaX3k+df*{(44JQnsXg<{>*c)IC~tOHB=Y3E}waP|4Z^xRMb(%#@cp9*K{VJQ`@`t z=wZ=X@IOrlQPj@iMX;&~B^+7|b!bM;GhU4rde zN-SqUb`=PrD76=>$$aNBPY7IJF-A?7eHc`kCb0!OR?-%cj~Yz9(hC&?~LB zEmHDszz2D;X?RLiaXmU9CKnK8=JY`m=Ni}uj`-g_Z8qZNWPIQczgdS4ScO)P?f z&&o~YwV&&L=GDn(Iwx(8v`Ea(Yc+Mh+(0XYTN@5Od36g)g-Ak|s52akUxPS?CsLd^ z4Lc0F!%#7d3||nRME7ssQXoF(FSmL(lRB?XH9jVeKBz@HB=THO6fQF%dQbjv(3)pv za1QcvAEVu@zT49?j9&FS?`yQdt5lfWE!4nAq>B6xeF3*qm_3a2r14E zc$=79Ehv4;$fU(+=ugJDIFAXz3saJ=O>4MItAjvy;OR0i`lxZsB z&j$qCkr+j+x?j`2t<2EU2e@M*emABvF-0zI)*+WeCksFTMTVm-A{ZIu3kZ^zlO{p@ zd)#H^y|M5e0o->q`w4-k{j9{EonK7FsQvMG=~(}-9lmO2z=nncn(DP=fp5M0>8)Q! zr{RHH*YjDk>Z__&><@jLR)vED&U1!RhJ>u@sLo=XF8xcE!&gF6x=*`Ymi*P9;|yCe zc%~cmi2SoYPsazJryZJ#wp<@rN0H#oqY-8uhRA9K+B)6{aTlw#9h0h(J_%3%Oh_Ky8&~y0x#*KX7R1Rs0%$Ba*rQuF1@yBD3R#hId+b`q;pWRakw2KY=aLL^ZxF z&DuBlMTXZl{LJt0D?FD7_c?Ds`S3LVS;1A4@===b3&s>FJ*ay2e} zvC(nHmjSJH<**IeHc;hIFwAc>Kw$sI#>baar)VQ?(e4ls1rhwIbf(0XsW)87iJW%O)@n)2XxiIKK(&Y-umB{8wZgTWLy= zJ=yg5bH8oOzSDd8CbA*e{?qfcEBUp7K!AWRRxAU|y-%wBkq&Gvor4U#{@3vOdKK{= zfCDt2)b>ky(S&VvMO7dDHRAU`i#Y8f291$PMXg`yT!@2{utT4m)PEycNlNgcfH*@u zOvn)fBPEj9)h4P3ekMy|LaY%Va4*$wvMb1b{gF+NI*r8U%N>O|9_fiJ!4X`&r4&uj zM;Wp?%~g{Ajw7<4A~x4^MoVG>=h>w&pI_}Z`nwow~vnF^t>m3DxMRToxQ?36JjCS{8?n&`)*Q(fC+7WBflR%j}3gwvp zHSoVzN@z*xnKvm<0~YHAOW4i=>dL2A$&Xxh zbBebaG9Qi$ z3}$&!1RKx`e|_uNN#fjKx_V`JYxz}6W{g=cM*At`oS-alAa~xAkMj& zxtYyZ!q5`mWGe8t^JyksA7KK%DrFd14=+T=bj5d(usW4og~eX0;B)tph5Q#V{}j5g z=e%BClgomP_@s3O@wmQHX@uI9voI!p{F_EnorD4kDP8HCC9VDUDI{l@Khl{`=^LDn zzV;Pfa>B7AcSGoN;@<-QR`i(oe?NfHUzYR6|3l9cckF5H!VzK!A_b*5%LgNZPCdQ` z1t=;o17h1BUl7hQA6}CXAweF$PNvlt92ci}mKEFY88%OCvY{{HLc&6R^_(*ggWcVV zoOV|#|7!S1v)Fgux|7~oZmUwo3O~QHX6-444Gj)XbJ7pDXpM&Cz5jj#x$GQ2oSuzc zWZ6H|EQBjuJO+5dH?(VXdKCJrh&0!y!q3j zRvQeowAPx;QOIW>iTCJKK+}|Wc3fsiv3%0O%)%4L>238so+(3K0>jeZc<-F*QifNK zxhiZxvh|P)mk(Ul9*ftp9MSuMLAdOKavil4$w~ST56me;dPZq+RSWvOnuecJ@kXAa z&>WB3N$s8P{pJ;aijX4q1h~;H&GAx0_&hQXYo|^BRsK+6(w*f95k~}Nlet?)FJD^v zodmU@z|#NZm=Ert-~^n7pn$6M8Zw9Vd`!-?(*>_*e)4*Kgf8{%cf^{qPZnjTQP{D4 zF-kaWB}Yv2jaFz2P8s6l(Kd2#EMGLX?NaRz{Q)#R@@p*~H9oC9Zmcbz!1?h?;|Bis zPbx-0htcDMP2j@9PomwM++(|m2Bi_T6;u-*Qt_Gw4!{J1^eN7O5Og5Z4*|6%#MNd( z3xReU68-&u0wo&S1J+f3<2PG~{WmIN%CJT`m;8XSaBW+jiozu^L4GI*i$U&ZlZ7nN zO(!aPS<=m%pr0n{5-Jh{R>e^+D6}%-+`5WBP%=yddG2LMk*|Q2T%?1eEJJ2^=zOXs zfG#Y1jGKp}UeJujYo$ACQs=fyb5{;O{o}Ios1}t*q2isQU3NfHV zfpp%{uqo{V+0_}I!fvt~3O&XI)~-f#KVuhu1Y=00V~lzQM_I%}i59RHD^@ym&1>EL zBx0-HLe6C_k}&q~Rb_U13t4(mAmJLu35aFHBt3#0WswP@UVUfR?-#Kcsnu$ctO2at zg%^BprCT2cA>;TkYLfED{R*C)uYgq-ahA|^#?Y@fOZU)Tdx=}W2)8s&*P`nBT(^#RDW^VgaT5Ydkv4io=tA*=!J z21kIkAmIHq-4=`6ZyE+|)3jF;3-{>%MNj3hNp>glmkmo1VJ`2W=x``OM%ssXFd0~mQ((sLVBv@l zrc)3f2ddNM4qP0t1`K@Q-we8(YI1q~a30x#bs^%#VqX6$xY2w{Qukf@6}$_yvT?#Z zL*bj*xYHSb4qLGk9W3{i*NYuhO)ew^+@K~<^MMlh_<43+g-`2gy*BBNg0&3}tlFZS z+jXmId)<#AW%?VtfIVw7E|+_wC%#Qs5~?x4iM^4T<{QY*=P?`+1oshyW;arABa`*39x2*Sjf205Lm>WFDpo^3^~Ubu==6MQb2XN&kjXv!MjRF!T*mqu(e(?3`21vURg%wi%I?ud*{}ZFcQV_Ig?IXAl%DEB#I^wZXsZdNPtL6PVwnv}wq zDI67Q-WkBc(x#3D@~GnF2#-DBmWBTUuuU9RIf(H?!$U-CDmsNgNq`&U)-;!nEQW;t z4*}~X2EiK9FM0Gr;8wS%117u3wFa@5>A=dLV=3!G0tF01r1@tC7Ex6 z`l#s7EP}H<0W1g=5YyrrW<7y5x4MtMkF3CA^C`GT#`F*C7JsWqt&IYkF*9_T$WY7t zCaUpvQ~9J(09Ju5Kc3MR@^xfNiC;&+@?I0VEUmFSyQZuX4)lYc0;^cxPeqv9;ux5% zg_t<7RA%Du)5P%X*W=6Slr+M6K#At+NB~yw^?lFNqL++d4jE!hK9Y5s6V3-D0xP^V z7S@32B#!5qqfAsC;|<2ME@I@;A}*U!k{f_yx0!@L#0sp%SB&5MXbP~DslW=o2zwXm z#_A?M;}2>`P*JSF!aKxVSjJA>fURQh0{T9(0&Ab*gf-M{h@P28Olf+Q8diNThX%P} zrjnmWOBunEo&Zgd6M)6ZU<{1>6{CrR1Iy^vN}HyM=B5Da%0CmZN+~fmWg-p>Nc~eYa1+N{*qMT;9?`pC%f8fNM=7i1`SUfP3b?v~!Fk5_rm`;(Z zgge9zSpEUT!g^9}=Au*x9{7C8EJ@Na6U&gSp2^yn+m=YbUTtQ|3CgVw7Dbxlk5_-qGu32j89F$yq#J8DW5v++81o<$&KLFd z(MSM_c{^YUKU_`DCP6)wn@A_yFt=m}tap_nl|LiTeOS2JbBj$H#m;n?Sb=5u?4xy$ z9k4_@?T!PhqL|DM(NfO@tfeh@S~P&A9*ph_5;Mi;B}n*$qc*^zk9$AUFo2pU>!}JV zJh-L+>tYO8?ly+5Yj$8=4iV)SL#TrLx=-+d*BL9gvtR|*T;8!G<8B1a4lG<3n>9=H zU02KIEf%lzh7o}!bR~2o=`Ve>f@6p1`^XBczBwh_!1T;^fGNaG6k7AE67^~L*>Go8 z6Ni{Lpo>yPx*h|TKR_=}npI6rsZ)~}HKT*7%zO4{fdyG&4=lCMSHC&1R#ckRSb!-; z%T;u7U_}o<4myrJL)T3zv_r9>Q&DVz)%6LR_=RyJm>dd|?+w&>8(>iI zd+pczpb0E-BDx7umCd99+QMvGwgDCo2`tJ0-WwlleJ3n?rc4RjW57at%OE$%%)qKi zaKV2ugGXM`n=m23k;grWz#8NmDl}8*j{s|4oIF<)Jt#PEv@*}Ma`X(|z6Ds~t$I$w zGt;B%Uf)MnVEtk`-8+Cqar@&oq%R{9dR}i|PZ3)rRmXspqSu%^p6(>dol6cZzHpXf z>v9{j0_(tO0ahK^1IuX`&hsX)9ScfsJc7>#hQE_KZ0QtAf0)LL$-8 zwYOr(D`Nl%RG0u(LB-NY z7_0AAU>y^2cLcNSQD1tFpzk9qu##*sf0z56FbHB_`*1K{Q--*nfQJXP0@#|gF$Szd z$|7l1^y{lV0a$!E4z)Tfu==WHO4#@WSlXc#SQ`^1T;{-{Z?8$Uwy9TxBq8`hcMVfq zySsEK*aGWKu>)2^%mT*z{4`)~j3+f`m+rz_2m@%ZCP6%nrV~K=ZPjl979xi?GzL^{ zUQbyiB)d%+ByBEn(SCgpfK{CtSgxB8fV#cbJ%2lQf(fkW)&#IJfbWs1vOTc4Qf*1! zBOciX))7Q0=en;<1eWg@;LJx)g>s(*s}7JB0SF9D)$vIC8w@vAU`1nC#quioBfz?} z0E@lJ)tI2bt`%5kL-dLbbsRT(-=<$t}xuqBL2Xcyn8UMSt(VsaUEL4y+M8&4qcA z{Nuo4HLCGX*r#lPh3aEd!fW|+VDVt(w1JIt%h^j6mQz+>kyW-Q`fVm)U1Ms)2-J~l z%n`uXi+E`Dqt(KaD}Hh#!Q9E0fVCc^FF#RMU^Pd1?RyQ++U?x&clt!~II#L#EMVzf zZxB9nv+loTLE*>1BjOQxvkY-7upDPX0)_pU^K)SFSjv0M?Waj#iEgW3_y=UZ46IX) zyW3_3)`1r)$|iW%b*CFt$PSG}`}4peNf0xzxCYMN2f$L2AU_I82jJXATzn^0XYA%H zQLLR#0*fB0t1y?h0Bc`x43Rec31DSGe}@^>^W>inEbib|gwF`g2&`Y|i;sbxe{+UQ z$@1k)5m;!k1o+jFodH;k7z4i;DSN(qK_ zV3{A{tEo`(@$-XEfu&8@rb-ELP4J`J0c$~nKua)YW&~Cp<4qp9)pm~=SV87{wE_$6 zN3pY(o(Wj~Ieq7oxi!D&H{!4gqXDDQ7M~XBe)|A&omhe8g{EUhU^y;8uGs;LN5t!{ zWN8C^Lor}U>HhBfQTj^8nDXI-*AzuUI>LVV);ssajPk=cpa~xG$O8kSOvjB^9Fs_)9?yp8*Ia$S{0CXkEH$zSU z3$1uT>xsb9&9gcGjKD%i7~+0AV2$k8bq(_ujq;rgEFD-_Uq%JSt8HGBw-1St?tAMeZe*;Hlfx^exIh0a!TNOa!p;B`zCa zInIIIW$ic~#kRm|U@EP29N*fs0hXr;45XFS#?EUZ3Ils!F$b*k%dq=E&5okBDg$d!9hs6M&^e9A>+R^lBv) zz#YPYhqv~O({o@8EPmbOl+fUgZ&k&%z(NfP2TlzPz2T36r7W~YO9>en26=s$W-wMe z9$py-PZ)j+BN13!`8Y`Gr@-R72EE3vL8a=1?LGc+Q|E?a>?I6BXaP+JmeLubF)RX$ z#q0$yX9bpL4Wz6|EdSypu!6?2il>CJZeS|EB+kCw)|`<*Dy$LiI`tAxJp za=USPn~J1Pj}kHj=lOW9uprojz1GRgN?XJ5aDb))3+)Cmo()*!S0@BBr+HugCG7?E zksxH4PTu4~-sfjuYgi@Ifu*~#&Riz2_>Qyqg3q1zkk5gI`caS)^I`wuQn6i(3?0`is*Mt(<1B)YPw3(TtY35v3 zV4>VHU~MgNb>_AK7GJ-(pZG$b_h1UJNQOl`i1HNa){(vn@^-UST8m-uR*4>p?JdT; zi8(L8U=NAFY68}-65aT3D&X@xw?D9Rka%iF^f#2YRvN^x^Jv&McEIA-tvxM?)$@w6 z{G5pY=7qJrq&=`uZU7)Z$Kyp6&eyj-237(9tD(Tdau5T=elaV-)rrzG(ZIG>0+35D z=mTIWJF@}{IT}I0(X04X6a)Jd-)Q%>Har@_;Jo?xdst}i8RUB+0t@vuz@cVhF0IS} zEOHkBkhiX$=C)LT#|dC%>MDc=@uC+XHcxmwBFufGxCRa^*&7NxrF#})oMeisZvV)E z%03Z4L4aW_UQH<<$0R+ecWslM$$14}A=lBGli4!r!)62t!1BKInlg)-OfMmOU?JCP zK%)0>Cf>ksFK?@aFh*Yt8a;PFr>*OusjcZe~ZX4*ddY1vII=t#5;S^T|9_^O4>?> zkq9iMF>nHt{BX}Jb+4oX0P`f1l`EN@jlV0AXAUe7ffeJxLOK1qt+7VSr=#rI(PRo$ zVZebEum+AYg)4gE*iGKG_VJXkItWTw&-HTURDd>Fe+|g&4A$aDE^*?{fyJlBvjPi| z-L9A2(Oc>%qoW7ML9EyD9Z!B|0_)iX7Mk}$@SV`BFHMTRA_Xv+05#DOE~H7(@S2)lRIu} z^>jAbdE9py!?Q3<)Eo6@|K&y|o38gbu6U&T0rKB_Us-rYaSPHQ~ldqCko-AHAc81Ma?}`7P+}j)$|I)#3xpI?DZkC6%R`$z! z(}l&V_4P+Jv#4J;o-5_FI&9>|sX{AS&#~j6JgPEuQZA472%kO<8|m?uAo5bSHvgpz z35TBPg_ZhFa+vG)l%)zttGuz3P2c}=>O+DeJxgym+Qo#HP*+|yBDhT z=)P;j<{oQVR=xwB7_8Q4LC7iXnub!p(n5xjDDgb<7lgu-Fdate`dvyf`&EPk>y@CT zmCi69m%h<7=(uu=ek6(z^5vA`c?+<1^)r7UJ737mSCjrFx%``3$i75mD7(xO@|8mJ zM}NKMYZ9~-ORoQ+nkHW_m-Wi8rRTtElPLuz-)fccUlj+|kA7qo$x{E`kH&%Z!=^u` zA7K6H?-%={pPEJ&V1M)jtpAXHfc2wEkzcc$nQjn6_8YC%{{ZX%pdVoUXi_8%RMN$F z`pnbs?c6a6!ax*7(ZNa)#o{YskwUPV4Ol2-0}6t+uE4^|^$Y0&fk2uthT1t z1cF6}OC52zUnev!609;b!I}#eEsIB0y_bo$-%PMZc0R^F>SqG_e712CtWmALIp^Dy z?#E!L&F-~M000000000000000000000000$DgH7L!jIIBcUu4e002ovPDHLkV1gB3 BFwy`3 diff --git a/doc/pic/sponsor_workos.png b/doc/pic/sponsor_workos.png deleted file mode 100644 index 5bc5e627d33020a565aad61ad496dbbf0d8bbf38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37517 zcmbTdWl$YF@GlH4?p~bYc5ruhDFq4#EeEGaad&rjcb9`Zg@e1hySw{+{`brK<-PaA z-N{Tco7v4Klg%$X*@USm%b+3=B0)hxp~}fhszO1*fT5tEqY=LT#{oAZg+M`laZpiI zm-_tt{EuT~bd6}S0&TJkWwe4|w({}u`PF>o{rv;RbQSf_DwM%8uGK1(;quGt$K%Tf zsqNb9+b5yTnxWzK&Ep5Y%^EB$Y}3Tu?%6A>>GJB~3#0SK=E>{*^T+w^`_leP{n#C) z!}`R=(|5b|{qxt;o43}f`;)7;!;4oAkFA;QCqbWW93cS} z&HklFVZZH#-RFXy>)6Ii8pjQ{;#1?a!>XZMPWMgCxP3nF?Tfp2^_acz+VjZzi-4*# zi_9bN$enn=PHF#*UEYay!ag1z-qGdT`q67j+m&SC?$FBP_5H`q&5dlxE}hfH@8ko$ z#Dkvs2bZD~rHH-D`*%b{#LUhsud-98f|KXxXPca3Oiawz*Vm1sSKo>=>EPX>-kbD} zE0xH-sja8GySv}NuR$q?Kcn~Zy08DuJ#3%8?(FPfS*=o2Q$N3an5G|f&fe$zyBb}8 zDj&SPd;Gk(xbP@FO;1l36cj{7MRmwOkq_Nd4BOk-*bw#KvCKX$?z{Q^{W}p6k*TTa z{LV9l-TJ`tBR4lUWbq+6Ik~H=tFErj*4Fmv>1ky3Nnc<8;o)I!ZqCZe%G1-6m6cUR zMdkYXv#qU-fq~)h@K94z^YQs}aB#4urY1KxcX@fasOZ_u?B?|Jw5X^^K|w)OR5UyL zX>@ed&i=Nksmb5pe{TDEa&oe~yxhsj$ZJ$rT37!P7(-Ec!r)p4N>h@`kSjg;xT;$H@Vf$RIuipQF5(S!SEN&V;^W-}SQ zSpC=eEYvyD;jwRdyiqm6z$aPd&`d*Uc(iWl+AuFRkQ`7vz&DVFi0Zi0Z0yw^=GSKrIK{nE3Zq@M}v2BoeXe)GS~V8xl4J{EwX>x_TwvB^(NcV{IDItcDqq5N_@CezZc*? zksXA?&Bv?-|Nk6BhR(U^$G zbjc$ykvx(iZgWcsbpG#wJ*7yj0%gt->0d-JEui zJ=O147k7lQIH8`J4UH~$BTo<4#{e8(4I+!wCzhLU=!&qJJEo5-7pRgoI?63uNQotN zw7U2DumKclg0`jV*~o%8gD$u1yBprDO+EOG6{9jaI4ZfAoyiV+Qr#p3k!^;FN`jPG zi&!UMv;+k)@Alj*@=6{I`1|e}=xnC#%aW#h@^`8+UJOhD+txrIfZtKIG@SpfZ}$<} zE>dAKp~Aut7#@nokk7J9rX`=8J0H@SYlPi3w^Z>RZLsT1FQ*m;NH&6yx4GnBE0VL@ z?vc*?wy46$AT7Xo@tS;vz)4y5=aWX!sCFMHm#1W-?1yox+P+fV!w8H5 zVZVY{2<-M4Z((j!1N<}Cyf#oUqPgXDqLwk_H<0RRZ**D$c`^r2Zu?dTNrwQ^CvS1r z$7UW*@J4D3clbw=+0jz_!U<8M{il5xnu6r-t}eErKZ8d3y@Z;=B@}3b(Fl>zuYBHg z%P$YfQk&72Qxgr}0>ge41WUH2o4bFO(j==Oc4rvM!D4o>_uLE^)de8B(9?rnM6Q|` z>X_oT!~1KgTRh(ehId-X1WjVefWlW7A3P0=$7~?}`xj0E`MxnR_+KlDruZA`gydgq zfB(naqQ3Fy4)x649JJJ2RUdq zy$+MbsgEhKa`@RPDvd*X`cwt>v=NQ><`I(3tVZ@FH7mJW&pF|Sr5!NOHP&gy8Rl_e zdUngrf%z%nw5P2abUb9}mh-vO1AlHXB8)hqh3oK-%yQ6jbXpsU7?u^)NEnAiopqg5 z5XO{#7cs3B4o60I;Pt5f)hNmiTu>ye8r*?hyWlC1D%c2hW4RuSC%;Sl+S|u(t*$ek zUh7?jw?mFMsBu=SWbx!~GuP_TBzc2&4)>spkYSQX{`CbSRkdMLJ|s$q{xv$(t!$A3 zxRk*zn4p`9vhwAbGb@tKGLkdw5q_ ztB%|gjpu?1id)<(l-YN}-+`k^mivC9_w?o4;1~8Ac^HN8SCnYos$;I>nphqDc4v1U zQCplkXi)$)PW=)QPDQtlBd_z00WO`E?M+@JN+sGv?ZKo&1Ccznw7TIu8%1~SRSyYc zc!m-nX^5m>l_brT#GiW3BR>zNGp877HCLJ;Id$e*JL;yd|BsXy%?h@?A8GSCAGe`} z6x+B|m$d0fg*Pd(?{j}}?5Gu2ZQ`DGFhye;iXuRgLJy->dn7`!1FdH!m^nZ{3P+M! zh-Z#T9e&vf!b54yvN@Y|2{|s7^y&v3by*mc zP&QJaW8<|(JDTKl0G5+BryZ-_XxStsbxPY@C%0c5k<$JWxZEs#$=mAxI@yC3CCrT|G#OD!B_&&+`z3xdoIB z?X87}P^&3yJyzrh4#y6=gv3+XaM#Ycf9s!wggcLJWz8*u<8`VL`Gd|*`?MQ8Jfg!9IquA+H^@)(IP6p9pEh|ehpnq44J%jZOEi9zFcKJO+ zA(t@pkukLUh(Pk~nmB;-efJ)zuwTg~T4||W#0U|rJgS2h;XTR8^h|uYr^gc>7*<3y zhoWpBQc$ZaA-?k8%@Y^Dd%S5nUuFciZ~eX*2f1g4kc$p|!N2IPfVo^h?`O=_2nSPz zkA^?%Vt;A02B$2eRVg{z;Ue_!_x>5lCvP1WrRQ111Vra2>~+3+%wRigUe>|GM@8Bj zIBW&{J_KY&c>hQ@&YdNHVAhOJEg}oA1;gl-K;Fg9dunbT#O|lrM-VU;d)p0(fz7{9&D+V#mL{HH@wa`C zHer8VWNe5kcx_fLPKF%197+av&kb{jPdU({PnB^8DdA}}-a3|@o8h}N!}G65_xy?K zK?3*}t<4QpbgEl-J(RC09)4(+^AynXncmzv=dO?$am zX0|7B7bXZp<}G^dw1WAAe_Hegb_ugRd36Sqa;4O?bKL;wtuZR+pv+Ms49cA9aKvET zgNDkdWzD>TxM+!+$g(T9xCJFDrx32`B5oPK>#~naeRxNgc3TW9o&tX;(5%9Ok`n`r zP$gB$a>@6`Bf4|`R$Wr*VC9@u-5KoL>0nikrhb=mO#~L}|XOQ$)Djz!mz`B8gP!^)S?i-)(vXhx@kA*AKx(QSoA6< z0WtHj6ujceTkbW91Kgc=6#>@U`ARYi-!OaE$~r{iZcjFJDYDDr)3Ps{l#~#qra|OD zTaBbYSF8I3Y!Q0+ZCm|`-zY8Z14Hm!Gud{bn@HYTdt@sUe>*1UCFk2O?<`^Hnx2$v zabs#bJe^0<_pL~b6~aqWYpCnE2!BPc(D|e_X7~x;?xCjQW$LsIn)^x+*z#w$jAD!I z6k%DTUNTs`K2Q_^?-%MGSt#};T#u?W0Z*AGDk^lHn=7B|v^0uhdms0STG)}&kF_U( z^)69stRK;i=sY`o&R=s_vS<}1Qsw7@D$r3@qYMg@xm+7ODZ|#gab2~c@D|FY1_bCjX`8RYC?rz$+t8#>%5W65C}RU0-jmjp;@ zU|k|==_htzSkfY?YPND}12`F>fUrnSn^ynW=C`QA73%hTAU);7N+3O%Vh}e%GI7h0 zTNBz9G7t4U1DS3-C2U1LE8@ZwYD&-~CIg^e+)}p_l=B0!vlLXof`YlQ*#4;mR;iZe zs9iC@FB2#ddC_LSIxLB4EkJNGd%$Elo(6m1+7bX-O~qQ zG6$`fqaRZqk>V*ZVyYq_kA6#`OKzXcDOSFV#CVid@A*=clL1q~-^F%@Zfa9EBzd|S z28L4YoN^GT#PovoW*{FVMOdVLJqy9q&bWw-s7)XZLBv+z(&&z;h11TXau=0jDCbK? zLctjsGrrB6F)c$@cKi<9dTfX*GQf@e_yv13kL(7tT}t7?^d9;)ND4-E5D^eI#{74C zsc3>~P^H)I@L%MmozLkT^ouYLSDeuZsrXKON>Cdv;j7t=nq)zeUwQH{sNNtf4YLUc z;F2^~fpt~WbcSV`)2@K<^R5T1fx=&jKbC2`My8U-(SH=%J3Pm0z0bYW!x3(>6+2XG(SKBvc(i4)G8tZn17fu-{#IXCC zS;gnVLtMqDt0wa=D^@cP)d_vg|Yhr#a&>IJblcV)UjnvifRSBAT zG>d{w!e%r4P`$6BGI!K(o_m_GmX>qo1WA!oaKeAiQ{;ibb-;X}IUfvTEPcEtl18q~ zBLZ_*N^Df+JWEBdKD`YcGA{sC8_`?gceg9S#s%?69|Kl?6Eb)P zRK-qvd=9%4XXFpKgx5clsN7*-SQuW3IAK! zU5>*Tj6M!UwW#1BVVqzAEcmTu33GT#LDe8Io(e`IH2o_sg48&arvLrVd)mf=4fonv zC!Ko%ip$0!(6IoW_h1#f*rbJdtX121_P5V5}xFw zp7mt4<&;N>G0k1BaOZ$^W<{R!7@l!jiw?XUJY@VE>E`>{?g-~#R!t$f;NYY}O6d%Y z!dm24WJV>ZELEtB4RJA{3Uklj zL!{iy+717^Q~d1Ibu!CBYfL)FSc(;bn>uD(@dY~c%Cu(FKf4{r;vaD%Hwv9G_J+DO z)DNkf8zLBm$^N6W^A~kTZ;;|6cvN&5NZ=0F_o#)sDsu;z5Bm`p(gq*jP0takLnp#y z_k3}RZA$s?P!3_zCgm_ejX`CkNhi0XJ%nD?CiE^6z| zzbJ)!mLOomaywI=(gvTHt2h^dk$E}@gWXNKdb%ot$QvSUKI7l$=O5GpyS;OIGGjF{ zff#W``NP+#qgmmgz>dT>O^+R!xGMO)6kV5&doh_ zLe<|i^*8m|&@9Is)m*E^AH^8q^bK8JDWYtD-MpyHW+~R>2^pL$c}Y{xnD1P z0h1qlj6Zzuk2A;QFr+01FpsV|YM8{yHIchb{yj`*{M$02a9oGok*pS<)Z=4_cY{@U zHv33gqd#tztF^!hM-IoLQRm)nKI0odyh67gytp9ca2wzF4Xn!9TV^3#bG~pPY|!2izhhtG6|D zHNV__olCFj;G!I!HL^%j6g{6YD_TZpf#cTNMF^GkHho%qvsQvcR zmsy0=;i4^vtbzoT%tIP$~(iAN*B{dD)2rFW0~)1ZmroZ5Z7 zSBJRm-lSL}@u*u28U?=>Gg>BtwL(ch0OC6ED_Xcva~dM9EA@OkLp(yM@40(?`h2VF z8j z8hO#(yyYCxCjwGB12U~rNS&^un{Wi*fVxknJy_xd3C!Oct(W3?WaP*t*7KeqaQ_L)>}-cq?J{B}NW9n!D9_W6=V z#tV&{KZqX=^3$8XqM5=IpRQ0BayQ0L^68k;SV^{nm1hF6`AhY^B>(*bUG`5a_N?tJ zqJ*7jxI)9Eo_~#>jt=emLgJOQ4R}S+nsq8!)x-B4_$?@Z<&0g&KhY$S*!_We!5snfFV! zL#oEPA_%e)%x1z5?|YeC*4!s!%O*cAu5B_+6&^5l`TcEl4Rf*f<~owGug!H|ckjJD zqWOFMc;spA-^a?H{|a6&P#FY|H{7iJh35wscwI z(i#;2y=D)$cwbUtt8?DPWsnairoTtO#S2Y*b6wULI}-p7@~e*^r~y{v-o&TL@VK=@ z3Xc&esep4dtjW}FsAtB9%QzMCoV(7rEB+%-pPbo*lgTY?)n#*im(hZbWh;bjq@oTR z56Rzx(|{cI>*xGL<=*I0Im~cAYy>BFo#Sx35__N_dp|W#kYYaz7R?_{yP*R2YcUc9 zY0T!jo4AUG?HXjzoaEE?c}4a!V=YcQ(!D@nm~+)?!eHb;^y*AnW7#m4YsNQ9;Mo^d zA(NaNo1%~qj$V+klo$K!q(4HP-n6J7MrLX`G^SHLh5bjBG#N*ag5HpUF#kV7*h9%XR)+0@vhViPGzYDMLl%E0!Hb)e;igN5qLEV z2z7YYPVfS)u05=Zvp_~kd!5B~4fTXtBKT)Au(v?3%Omr7=W9tJ$bvgZdB`7Q&f3x= z(qx$8a@yMIpgthVylv)!J7e6Y{TDiyKQ`ps&!oX_4$gcO4BD(b@4_+f)bHBbr5nR8 z8AM@{Ra%|$G7%lBUvqv&E(j!zj*nMpw0*q6C`g_nJ^OrLQ{431z4zwF9J&Zdsi5-? z`VS@3kl_Lr9(-7TV3{x;`Ouh`L5Qe+Cz;^(GVJ*bu-ncqYX+Vg@4rRXy!m}c@PCts zpjT`Vj8C>-YP!i2lIr0YkR$BK7dPQldq1_Xr$>yk3#WoVz?%z`@tc*!?cLEk1t;V{|SE`J}*4iX_91d;~R*~-a_T~|NbxN{GuUjKPG+s}>(X(rR?#D4bv zcv?Ld7=y=zdCscb6x?`!2KjJO9rP~$exx<=LuijNo0XTAk@@WK=m63p{AUC%=zV?o z{JnRhclP|*M(fQixp(%p(?W1;txM-=0sGxu&KAsIz~iKC*A32!{zH z_TReve`W9Q!`2eq_wPthN0*5yvgWvf$wZPx?4b}0Q#>`^>y7`(;P^j~tIWzH4ip)y z{%K}AoqiVSFQ`u^W}Q_u1?-~JlFVB+I35qPm04*tI0J>WYhD8OR!JB+Ut&>&Ko~59 zJU?Qp%pDvIv|5BR93Y~0ATOh^%G|?Oo$D}>sT{D6vCr(wJ#iX%d#M1{;xI0Ji1@+s z$J<@wU^|zqTVT)wUU%eO>g}01DZv}-gdU7hM2o+^0PKb_I|+5HU(e`n$I?Ynq-$Ju zZyc5okdXBNS|mDxA3KPp>qS`D0P;r^4vroj8&N`5JH5_eX%M-vim^ z4I&L-0wdY4XEXOWyWZcNTY`-^b7e#S|=4Z+$`j%JL;BK6T^^wf1u6CVvz$)@lqY=XB78mF@O{^gw zmTBSCAq3o3x9Il~(oqx8^shFLY~n@K!ejUT9~Eby$yM8v6GkMplGL1^y6@zg0n|I$ z&p?y2qyOpRXM0TlUH}m=g+UOo!N4m6^a^A(8MTieOY*}=M@_!`9#_s7*Rs^7PqpS2 z$gI%H7rk^yClh(J`VJ@1S!8av)rCgq`SQCj${%6MX8O>DF>evfq zn|G7tdnLTQ5pA~kCM#iru%|%Zt;(f3kK!g&C-@HYl<`fZni#+1JI5s;R@KW!QgoEI z$$x%1$oT9$uS-(m`}Ct_2uWFLr}saR`9h1_W%L|MtICF=qZ)mII+=+dz1v;xj$}F; zuS}Svma=QbD~%NA`YlyIMGrbsHk$1Zt9Ujm#=`<(FQ4Ui95?>iNdM?9Z#xzU+G<~k ziNgahR>ytVFQp)GRtBcy@YKxWON#<^izD=>i<4&T9WoGLlwVcdh*XDP{VevzT-IqI zB}y?N$AWDW-;osX9VjoFIFC=#(QsYb(0(XTv_j`_5Gxa|epFhq1Xib&vxIec;G) zS(z1~GFeP_&1l)nRfab_c`r{XA^E@f4YFvEcx6D)Mlc>U+Z#cP^{VOR3H|J=w!`RG z?{@7~;kl+Zo1EpP&$V!p_5Jl~_d68r7k9KB8-$Ox#|8&a=^)(jEY=v!4O@ z{l9XMvo7Azyv{6>L_#lTfKaM5NrLTOp+v2!vH9x?ITi)~frbmAwQRwMXMy5h@|~@A zRf)ZyKgpQQETH;>hO}sucfEQUnz^Es9^j?Kclnm(xK52p5fc}@3w{~8uyYX2IF+t{ z3eSELIm?U+mBrwKxawpQ*To2r0S!-|EwBAs)W=H!I1yBTm$>0cRU=(6VK_JSpQ)mc zBW+bZZ>mYzI&7kM3p0}gIIjfXb)kCaeBybd2T>*Dh69u`chP=r-#tjWp`8R!oO(*J z7_Mo%x$AI}(WPz)pT$+~Uwtv`5b|Hi57~|!s&^pPd}{N}7B`oVx$X1c-*TY-m%qvu zho|Y1b?J1C0e|pRq%V>`W|)0T7dLHiFb3FCrys%2Cmz4&L=2ri^|O5N5!uT1xnely z=RvNg_skD+0~ZAH&7yW2p$#uGiIrM{X0dzEvGwJ^`%x|NcpFp~My zx1Qwb-=@3B*rX*}Z2sm9Aa~?}>Xe@alV^jDRUw|pX&Kbs`&ZzX{HP%T#TWxkY=3#> z!JaJqQJ>H`0+qcL=i^x0BGk8%z-LU5ovjjx?5-Ta(koZz#(W#w!d8;4lt~P?Jj+)$ zLOz5v=Gpu!lp;Djb~<>9+V3XBEEW>-y>tcirYQg?La<6lgcfjn4BHpLc36(5@t)i-p+KckvC4oo6%Vxk1A%lAhlJ6EkHji) zBcy`?U6${B6PS2Y1r0y!Rd9vv+pB06$~)7-!LpXLGJUCZlfgm@thhbZ^OERLh5$Sc zy^OpI0K8vXWdjcW3SQmjPt0WeNYGi&9XfV0UU3@Xyad%l9W*|;bj_-|M5EGo7&FwpbvTpM;2W(`QUfgKqSGm^ z`tGv|k6cgyFNV#r&^}ZjD8)h}6YY9vAQ*TTsE0rCGNPIB`(Vu~7v0x8P z7!5~4;&=t*3#+r_;>NRK9a8oZ?SWt~jDHNvUz_Z`EmEsxD~%vngGF6X)hfecqD5X+ zDub~D2HXP)4pPwXQt%lyI*PoSi>ZTy2)%!8rI4}|5b7b6dDFI|5e6~?8LMK_2tkAx zmR$X0D}JpZdWBT2V;+`Ystv0ursr?qji>Wr@xGBRmr zyB>+z4)(^iMoB<>39dWVPIFdZ<6$EAUp=3nbp;HC#i(H7MUO|pOlVF>2lT;Y z<_%uCU?F&4R$}IP8f+p#!%6UiwBn1@e9X@nWPv#Jgl#2ef8S1* zp@LP!R?!eKI<39MiR0@r;wkgvQUV0)mBs9z_c`KfbcAi7<$6aWxue>c7}pK+hbI=P zq*a5Tdz%*>B9ein-oQqa z*Xj_9-2Ap(zzJFilkFj4aC(sttXe(A;yCnmKFLENDdFP2em2P=FqBJCm4l)XiGwK zYdcMsP?BmPE_xDZpad+nlxs!97;r^F-xv4~(3cVX@QL(j!kxac4Q#zekweEX_gHl; zJraZB7NB*i{@7g5kwXs`E~`_iVdBY&AB!3#hl~WTa)Rul)u_~dA8ch_!U-vIWONZ1 z#X-U&k|&v(Dj*PJRm7+CH}JWg z1`w}^a8v_%L369>zuqWLOvraVXC+I@?T#lHE`(!K%#*lDo@59N2e-IrPhbaseLLi) zGBSeRCP|&hnmuH_{3XEI+ZzD%n`1ojV?VHI=>JkpQTc|aOM4GqIa>t~tg~)l5_Uj6 z(@#(tX^m12P!aw8$@KHj>EZV4CZnJP@a+JS5X~tNk_vusB3LN*#Th^d=D*+s$&ET! zwP~O*tc#*!`y2cAWmq9GEh_qYpEKoMYTS>M!$6k=5kk^^OKq!{X?CsraYnIyDv%`tQPds=B)ii*vBT2466Jgde?8H*FW)T2o{lt2ln!`z{rZcvY$t2H zHt!nL1EoZ3+GvNY`RA{ADlw)$ev|e+{-$!pFjzqkxFW8!INvK*20~!r8Qm8vgF>z} zzaV}@qoC;f`qr^a>Vo<(innwkW#Yo0Vc_aZ-iSf-dV()CERK?d=$(3ptB*k@@4@P( z{BEU2vbcEM_urFVh)3@?azmEwjDW@bIhqJ2X~{2~ps1P(33k0fL91%=N^9g`x%Dj7 zp>_Bv{)e?v$j(8a2Lw{gsrroHD4JS<3tG?9hG2~-F6cg4T7L7TS4V+zYReOEVCsQLSaXnrg3u}iropcV=L0PTa+0->Q zqY+Zrc=G+*c`af~N67|mmw|pg$OfC7Y%Rkv;TjJHp%HDI#eMZ$1h*W4{Xt|6ztl7h zU0!ca6iiPHj=R9xx3c>leu$PDs|y&H5`-oYZo<3}xrkWBmd6DgBw^D?@?XF=S|zTp z=*X5>hTY7Kv7MG=>VP0lkV%|A5HN;YSR1L8S`G%k78ir3fE9IY^D8;6XNWFRdrL2_ zC=j<2uKa}iMVd8|6kehK!1(D@x^OGf2tmXh=lRtCb|lIMm8lvv*Wh1JO=%y@%#x5l^qzw- z6M({7w9(>+RTS;ICkZ-+S|ixDnZzQpjym4jde__$&cbTcLGq5Z;)WSfKOi;rlM|#z znG_Zh^*jbi9h|k<8nkG0 z!(t?RpX1}lX+})-T3su0;UeUTJmp_C2R2S7id`hBesh%szPGVP0LIE_gMwBf)|umM z`=}H~SA?d%m?k;NF*G`;c)(pKFN}f9gXTBFFN4q@bv!Wx1Lu-QdmU1b$Rx!_>Ft4IKwxIQ)>#;{)FV=OI!(=>$`TiLXge}%aj<&v9c>)S6`sxN*Z>gdFd zJXWeV2KVLl*S8cw*bM-bp%UbtkFd0KNZW(<=lT4-Q1;bHkYB<>P(DYLM%x)N}L z%GP`oj*Op!iz*Q-I0|)|y_3NkS7(;O4-f5Ut*;RmwL0&<)!qtp#ZG?_nQSknn**7h zYKzkU(NI473ERew~NK#03j z@Kw-v-!gY$@+UW(mJ)pg30}xMeZEfar4~o#WlLT|{V=}N^_Urg zKzYXVIhe%#^oRc0${3Ci>Z*l_)U@G0564o3X=GStRo7N*fywhKM!14reO&V4_m21~ z^T2cNHp%)OCy29*%{}|aLjY7Ea35z3P$S6e82B$d8UsD3DJ7;j5Jh@~WMsoRjine9(Bcs>$c)cZFYbUCkWc} z#8R4S!6A4YYpBXRAFBa+QgTjQGFP)|R{Qs4HP373#ztXP0{F-u<7GUMjs?e^=vdof zVCcxSX3|%0Y7)%ndun!?X?OE% zumnBlPla50$`rVZx*BK9H-9TT&B(j1uejwYe9T+{JI3m$mcNd%u{Kz z_Hs?$QYsNIPxlWDnIRWuY!@*aAn0Sc=jJ_0ZO)&XHT)DZLe`pG2Ny~o)cSY-#>!vum$|9@T%go8?abo7z2{&AsO-Tw`p`)@ z=aZ4S059_=;!4GY{xUm}-z_f6FI40je#Frcwdr%^q)}FA1xHhdpnZbP)OC(;d$3|V zlqVz*e@@ETC{Eg#pR}MXB32N)$S!LcC5M7E|BX;7fZhOK!tvt2KNyaU=>9yg9`}WT!cn(aEc(dUJ zIK{_J@x)q+7;1gKBMFp&&MAFhQ|5!kRFJ(^ zVyL%z)P?PVh0ExvCHxz`E9~gD-G*Gwa@-m|MYy-B=8x8UQVXNActS_cAg-CjKNhC^ zNS3m%Xgw_-Gq~tA9B5(l$_cOA8Pn`C?OQDAwqebW;BQG1JHVIx+#BZjt8pd9} z(pbskR`%TOVa+k&EQi#&l~ z9n@#Su#KCHlj~%!4A0qNIyY!g_@(c1@vYPY6!y9r4s}lO z5=CrWxOK*Z5b4fVQgwLRC&8Z##$D|GoD=qikIW<4Y>KSL>N`Z0&x#;{JIZ;kPfll)*-|R@?($JTH&%6V(Rxg6 z%svt3LraGA`&+po;xezBMQN>Lal&|3r4viYyvpq#>6(HH?Lk|voNc^udc4lzJdtW> zB}j5ur3Y9RKgikw3b4hQZ{WB-~u=s^rci;^lmO@;r@^7*B%)ng<%o5eTNN>|gF^-EQO=16YfX?~nKAsujInvUc z+m2M3O_9;*Wp)vvE)kC({w?0q-f(!i?^z;z_x}FXwpEb($hHsuhz*E2>n(R5GXOkW zh$urbWF>{m2Sj8oy2Q{moh@K!w6`!)vv~!QWVEJ4K|?{RUY8&o3rV2L9Mb99MXK27+4ND!{+xUy0F#BEOLfdV|U)$Mp*| zO7K?x!;sm1_@MnuTwYyI{LK;(ZxAZkn|OpgF0p$V1>Ej2`}(BOnC7Z-z^D24TwsmT zP&M6%gqzk&T3YdQOHh$0?mxS?)J{Oibzz#EF=Nu1Uzy%mPPsZmkc3P|EUn~8LG^S% zcg}YUQ<0clnFzvbX^Gw1HIug={~2ZSVK;#h+~-^?9I9tMWG$YirkZyrTCFUb9vB6G z9ko9x)`gaHS(9u^TAM%+nG3YfB2}?rYG$LpCI3`Yi?P!`(`s~`iXyyQUl(1u)CZZ>wd;iB*;dLMBLXPn9&u+p! zp@9D?GRSrYX2W*{x1<$6sZMcBNpY{bW(EUMH)EYwgypGv`L~ zMBPA=;6ZpLK#-l8`DFd@#yH$t3jg+P`a;Rs6Z#VATSIQ5#>v`>whTv;oc{WwsgrdD z(+S5_Zz)Zs<>*#PF1I1VG?fRucM>z2R&>7wwjZ7o`V;(g_6a6cDl*5DM`i!qG|3h1 z4&4%hV8Wd^j<|hwZtAOLQ|i=*If@KA+CVo;Ed;Wx{J#L2KxMyx*(Ui@@qB6Tesqii zzeI1nSha%R2sKbFrtRQ25!_jCeI;|#}LX#mE0P(SklnTSPw4c?-_ zMZHtthZ&9^)Jx!}&`m>&tv?+%|GKdBH0u$UvgWzy;0^c(aSD*0PNe_#y2<1qGWLN# z5Z#6VA-8olny;MWzr1M;5ZO?Zm&-q@ymbiAev`2NoxVzRf?s1dO4#mxtFTT9Vrlrd zwPvcFm9*f$h~EZZ}&Jh@GfS;n%OT$D^qoMw` zut3jh{hwWfJt67a0fR;d{$GV|u=*i9AO3yKb*yQ?e-r;4GOmF4h1MBRuHn^${)dDGe9q;cvCkGFR>4oP ztA}n$H-BGPpws%#=6IDvBjODCzZI4X5&P+YQWbhso5fvfmxW(;nb4jU^!*@taIm(2C*y8o$WY zWdKd6nfr~Y_=;;%^OmrNyG`BF@g9@wBXAt9#HYpu0BCX@d&c*Ndq z8YO8VfqQ0`N4AU)O>d5UFo0K}9E*KZ@grAE_E}zPI5>Jn50EIhj1sdnTW_-oesRJ^{CRc}Que6!o#NPX8 zay5%O(2ZN#*mY_i6A|?9#N#{NuP*Yd96h+VQv+S{&~SoWcg?CbyG&n!3_c3?&o3WE z9hwRPj8^=nZlBV~9S;8HN!OQVt3580mFgInO7Gx+;t+P7;OFttO{irYB%H2?3&UQM zt5-E)+Kg{@NHIUg5neHQhCvJ3MVDz(>8Q!HtC3H3?=tm@+Zs%+2>^VDCR}*j3QnS? zDXakTEW4J4aa$xKqPd0IwdgTCXjvodS^t*Nq@?g4fwNS4K%ZkfZC#Is? zb!brao=l~WaLAq{@@@xr!eo9-yl$<8$6fjwRK2!o?M|xUd-=4K)n%F`V6LQ;Wb4L^ z0X$cZ4xcph+3GqHCty(Xkm{>(s1GAU46-Wtbyq_w;3X6ST0G9|;M@x$=14 zN&%&48zaeEeI}J%3A`b!uBFt46JTno$Y`)JJ12NU=ZTwUay^Z$O>E&a(VKI((TA=BI6fH*(&P zN^CJy_7Vh_Di0N;N?snQU)ltG@~U4WM{A@!wCkFWc)9Z#pjy2gI-1y-kGO@o@>NNZ zLM0U$`&tjX^>esWjmx1`l{}2%!}HCgxgwWYxtx0&OEE!jn;u^=i^1M1$5?`}OHAvQt+ySDHro6Y@*3UcT%orm z!ZX?MP+acPQK~HG7dQ^W1JUt@|YizAH?ZyGPNLWED-AmzI zm*|3#@Y08-Aj0KYS(6j#kr3|VZw)M)QGx8v;;p<|`ruW8{s<;d99coie zaDC7Exx+#WL68vg5%CaD-3t*SEyzNoTvD1A)ugvEhY+t$gCzt>g0NU1YJjJ7RJ=5b z3j2t5A9$2agP%AWAB`X}*KoWptR62kN=JW!{6c|42)}^#&dWtl^^EV65D_%5Ul>3H zIRPH&bt5SD*@C=IF}J4mD2*&EM6_{ak$SFa*HRP@N9>GkYDOxh8luPZ0*^@i7?MIB#jtiTK2ZqO~BeT4Uu|i8K}k?R2xkqgb$*LRG$HeTtL3K zz~Vr$RsiNL>Uo{mx5JTr2swd8M6%(N-O(2&EMnu37&_5_Rt#h7toRK6pSNlj$Fj+x zp$;H(q-KVsF@4N(7PK#L2*#>bd=@Vri4+jMOYCf^%*p{F_2VDpLMzVnT$g0BGS_K(QWC3K{721DPH~u+m{2 z4X@M*1oc^QR7+~HbfE>pcuSe@HEbl50!&9%S^~VQq}jq}{u1Ad4+K(*HFj^A6Fnx6mD5f{2E=PKOkEYD(uUgJ`k+P}(PZd@2la z$c+$2&s~~lzH+TADWmndI|@J0P(xaZn)<5sLiDDdflw?x$j+MN*=#;@OLGN}Bs8jo zw4)|IMiPkLibtR#tUx{_hlXaCTsrXH+2v^Rar%P+!i=gJFA(%6C9^3UiT%}q}LXu3Vkpj(9%Xq@E;lFQZ3R&jQy#S}ww zBem7DEzZK=H|ACjFB#@`q1t~Cg3z|9l7&Us=Jey0>QxLE#i<>Dk5^|yB$>H7tB69^ zZN?ZFI_R&C3k*~4p=4o^bA*02TP$dSYJp*fGDNwuTFV(BGdQ3Ki_UP->4mF$;89p# zFBllRN~BlMafo)L^6CpAn9NqI^BD#X`dj@+%W2)TYcP&Lj*j28C1R$09PK;;iJv@us*J-c8b9Pub?kF-rcbZ}OTkuY=MW-ltW z?4X4-#^uU5XP|o=rz=D<#ud9PEHV=%Qu9~!k6@-|WVn&lbRsJ-v~sYiDPR;0gAAJ;TmstKtcm!Ir12_1Y3k-)3u-LJ&uBfq>k3<+L)(GHhK`kBNjy zE5J-#LV~Xuq|+0$+X=oYEH7;wj812(l}{`QQ}V%IQ#2IjtNlgXiOiIwr_C6I)75;w zk|ddwr#0_~DJ5k~oQ3{$EWQiZ&jv{tuAJ3RwBQNmgMAuaUY*wF-3%>XR4kuzkPH`3 z`?E>NxbsrCmsdF&4j%NMW^Kfvmyv~~O?w&3P_e(dAV9k80q>na7Lv5>Anm#_sHkRo zJIzySIAk@OC&Y~H6Kw74WU#ZV!I8w2A}j(X;?1(lFX*gZ#2zK@+aDBE4 zOBXZ`5YSyRn}a%hu5m~U4Nqs#+*9Q&u-N*3M`mt|oQj4i)w?J!fKun2<9`prSJr(bVD z7XevV*dqPiHyvxbM`1OPMVOil3{Na>vFJh^e(xn?DepKtJA0>+7Wl~ro?@Ox7H^}g zGq~r^Mj7^6^{TKa6GO9&-oS9cb44&o9K)dbI)k`04hRnH#1^962^@U$;`Tm-HM=Y< z0;LA5=E)uGB$mxC?sZx>Zz0+;h|g{#=uUTu={hITphp%KL33B8-i{7CxVJIz;5g{; zISWyOIBc1|UM6}BFa!HIOA&)~p@PV9>OolApxMO}#t*n^C`niZGdJ~@xzietK{)I9 zVPQE124+1IVkbC)GvRVJd(IJYW;UA*;0e6~No04eot@6O*8(fx30kvxlY`-Vsc^J$ zhT$rU=HTApcogoNC@i!=sK1uZsb@$gvm6ou%QqIO zbd;vYO?YD5;P@eFC(Z!w?MTTQ3|coL5ZYW)I@}DNwfHgTP8brTEG&-=(dE)4e(k82 zMzvw^&Y?b}NXT%v<@x@&AJ?J6wHl_Bly@H-ROMBu$xjH*E5f3~hgv0QGq2qxG^q(= z4<#k@^q?pf+Ofc}HM3MB-E$-=Xuc;bcq$pmkVd5NRh+q(kc`O}yc3OmNmwl`5-`)F z^qC`Ie^5NVsv}1;84q~M0Pcx=Np3IMATg>4D_S*6j}@XcDe06th44aIX00Na+0aV5 zOAsXYK@pa5(;-!vBrN)(O9L<+S1dy;QnIj!RkM6VQ&`kI52t;SWV^2pq|aXo0tzPv zdD~-@=3FfaDnTZ?8Uz?k*E)f=XI>SSDvbzXPo6!MY^_U*!sA`S5=#&T`J`Q2G>Y}g z!m7F5Mo7rlg2Ddc_E+$P zf2BzE2_+tHF$#?LUY>pA3V0Bf*uI+3?>*clB%|qJDY&P+#pd~8VVPJG9ZH?pYaA4J zrPBC>hz58@Z?<^l(Mi@A;nBI~#a+U(98U8P!z@@;(mG=qqAT1dEe=Rk%)<_1Z4A9A z{<%e~H+A0=7A#Bm8z@f-TE@jcx;ci+OER{P2_(ORPjfQ})pe;QL;N7y*U~1wP#{+) zETO-{rSb_{Lc3b&WJhkuUup1T2Rw8Se34ff zyre8F?I_R8$&)H@N-*B{e~G2(UWgG0k!;jm&Q9S{eZCLN;p{cbYSN9W;khgL{((ar5Q*p*Lb+3m4rnKT|nZamsI9);yNYpqW4hN)o-p>d^g^Cv`KfhT;aATl`# zWX2X2PTvsL6i*mE@|yl+uhsr+A6AyOM6At5j940!ydCA-C))!OOaVx&A~<*~wPzVr zUh%mCnbeFVEUfBgD|$%C1_x$mZ|fy&l|lVl9NcL>l_S}_IHv@X>unKM>pm=)QpRH< zEMC_S3#*$Yko@V03gRkzb03z$>9i`-yk8B=4$#6F7M9c%%FhtoB9NJiGPWBrAPk?w zrF{&vnEof!O2-$+Fxpcg+y@(BcOYo!0alRZxVKbgHLkQ)RL@i$-Sy-LZ zkgO>OPR@~N<^A6&q&|*Sb74J#G(+1C{M73kN0%qe)~-_o*A-z2yWpF`^4wa8*{MT3 z9~BHmL{4{_B|1+K5$*Vnu=rVDQxGVc7H>J>D(wXd3HS|RsmhSYbs*yyvhb__0y2tx z&_d8G5sdS2a8h1$k0^Pw+wcX#GhulIhRb)#ouAxB_W=ziV|`i%`T({Vpm<4d|N zOxTALlHs!@H=nZu%7iTIhHnUquPN<#GDz6?VPWm*NwE`?pMPlMs6Ak|_Ff^F3cevM zRRI#2US-rhdIIf=QFNoo8UW5gc;U&wbvu@-z=zG>6P5*;fJ~nnhViQ$DTXeZWjYHa z9m7r7FAy`AaCHrX7pTHCe=q}Nd?Cm;v~LLuJJ{CUEWJrj7Y_XfN5eayFdC)VdmJ>5 zAre4_I#J8Q`bZM&i8A87O9o!O{~Lt>d^Ue9rK=-zB+0Pruk3U;91m=cu2$>WA?86? zZu7T=<*Skm?VhcquayP;iCIY4PWxqw48a_KM_B4@MFzn#Vn?NFA~O$}HKA_^YkBa= zSE#8A25tMER#yZv;njYL)e*?d^~l1?0fiW;-gqXgT}bTbl-^g%3^}L>s{|f}1=k;X zS7hi=KoXWZO+6RZeVJys*r(GemlDGd0!@}5I)q@jWxobT(0S0ptHKKAAVb==s#7OU z)eB(-GNgK{`7m`!qoP5+!a4;H!a7#k(_>*t@4Q4z8Sv==Ll7S&Ve$2*f3;PDrrqUw z{@U{yJfm}tCjJ7TU}5vVvO3fSRI89r=)NH=^`;UgXAUqugga!5YKxP07 z3!5isB#8BXg%N@v#8a+d;|fFB#L?n1XvGnu)#-_2AflWC0Z~RJ3(NFGSm??Q6!MUC zcgn(wgXhBfY&zGIh|#+*>r*$B*zqX&7#bGx$$x`KtcajpKOijC{g%KYXmk%{(;n3` zVL9ET`mvD(66PGTuvQ<1kxRVQoUF|o7<;*W!W&~WrQI>dHSQ_!( z^FF5lp?V6Zhsu)bBTCai^jFo2n%DuKb38c;zAG&E$5vsPEyUBZgKDfk5ExAw8N>>< zt<$kqWm)HF^#EvcK){iSH-x2`=h3+iv``_@k{Mu{*~f+IQqyx?K;f?pl!SGHLh9r)~*ebPkIuXKKvnJv9^%R;9w+l{+h7r50#W= zNbj4%0-C$2+@L$kLoSoOQHd)t44ZkwzlmTpTe1$R#Ff{p1VO{^4u)t(r zEoBp{Ous&$eN$K+SvL!fnOG=tX(PWOtXZ1WhZF`Qk=QjQ&IOjQd|AGPks#>Vhx5Q1 z=533=AS_6bk6FfzuK`TJH98v;XrAPfaYu`=Y_z%rniOfY^`@{E)aYFGLRed`2+MZ! zTv%f`lF7#rhjQ=z3hVRdC$;9NBgXbutFS&7XW8VMB zE_f*{cro)(FEkShyd^A*{n#{BKc9m%Tk(lE%pq6vKeA|lI@eh8wU306wdT%WMOYYZ zZ}(>629buVMkjVL;;A<6@lHiTTc!VHf!~^;7Hk zVs!IUyi`bN+wt~C!WRy1urT>BSGtAfM?$X@KxHeLBrHFkR6G7hdfxfgQAawSR!l5= z%3?cKgcX*P;SO9O(IcRxYbXOS+VgOc*Fm|JKqJSh}Da=fMILWe*TTz51{{gfy64kWL zd?jhV@%cN#@{L1!3$)N8ECsFEW2$l_8f}edFo%SXQ)V`Oq58YRnuGcc zWs3GeNmvS6TxB(Zw5+}*EPI%QxjVB#RQ9SGzAdaOBx45f4DAIZzOF#=&Z;Jhyo&{7 zsezvtR$!2(U!NwriLTu|&d{eXPallX=pooMLkxfV=AwI54Q;zkdwn*D!#vt2$q$bk zc`f4qxnp584-`tuqWdux)}Qptqn&eZVTF1KQd|v_YfWMKfQU(e(62~;9=#zfbse-q z4F>{RWijg#iRpX|BG<|3JWo_||dl(?d^*qjXJj=j&) zqj`j;wxIh)988ov%c}LRUl5kP2+5&9Gpl;| zV!@y7$T5XWT2w9)M~#+xM!la(i-6t1Jyo;0<9-){1qd;5{56u2WDo zhVk|(YsRD7*)&j4CK1gQX5=SFjO>{mhcd&UxV#*8Vk9MDeL1@-p2%f38A5zr(why! z29Vew2{tVYw_~1!?k?~hVS#P}Mr#f^T}RpMnW0r!s`NoIFL&8+!N9F&lgLD{LpGQd z723tZEjPdJ1K|0_QO@);!s<*RC~KX%j}fx45?94dgB;OR!qw?T{L6Y4%vQ8N60qfW~OTbY%T0G4) zIs!Pny%`c^Ja4Uu2HeGHX7J?S%QHbw!%L8H@RYSMqBHr)VY{!ZKMGl~qJj|% zed!9$EO!iCLP8c+iY8Ls0TpGK%tskkYT{!AqKmEx@yg3wMr3l+iUZPBGcxGF@Lgd| zTp-#Qm(sNoBKV@cRajIO((da{4W%`2cnN-02U@TuADB!&!Pj>GhumXk|^SA zQ9mjy?KsbPclMTNIuCQSBCIS;*!s*G%HG*GhZ8ApiR58uHyF@9twx;X*&d(PVI8<+ zh;InXz6!}`@i<^`beycS&2{U}2;3)7jS>&IfNYe`QNJK8U_D2)7bnsXxJl0ud;<3{ zPmtW1)lO*wyD1V)x0Gpc9g(pqt60OMdIoMA-V~N5LDOvZE?}7H7zjg@6KB>@lqAP{ zI%j6grb`kECjhg-S;!@md1hwMGz*oT?o>BN(_!(!;D`D?$@(eL&?Avq*E{`>fOTXc zL&oN-qxtH5gdtE)zNLPA3u)UyH7(tuCiR~R>HY;97kl*z3skW5&MT*W@QBKkfy7W{ z>L_2IBjAu&aFi(tp?AD7x+-q15BI2kT3A$1)(9bFATJb4=!LL?mpr4NuNHjxNPh?$ zYoRc@niJnq7eNcui48I_{A_>D#=zNQ@RqO^#jnB@YuC7Ejsi>4LsyB!*^)pL*}yBp zvP3v;>on1rcQeqtqkBtO_9|`RmKrN7qvHY%uYBS(NOLrd93&F8E&SSXb89*FWgz3; zF6387^cJQP5Kp$s5Jc*1v``${x6zWYbekL`%2nLzfz1N9tN`QKg0wzYEA-;02Vw}P zIgvOW5g=Uu3cf2Wl`95eYyqchJcj-Ifoc^NaJeB9!U;}aMF=TaM@)@8152Zw+^AOoj;oDUuU7W^{Y85S5m3rkqm_8JMgBkz}f;$8rQ3%iGv{q z#-w=|s6&RGtt1llFhQ~fpY&J-hap@~B#J58=2m{KVYo^_HiaKNJ2zU`nsi{Dq0z{D zy~O%B9wix)^LjZFduK$cyyYxSGeq=Kbk{gZL%o-SM6t#z!ctq@Pi)Z>!$+`O0X$*( zC`mI>_neo-;*!5TVc!T7j72XPu_7Zb>7mUBVOi8t9_|E1Sf8EJn@m%`GGa^gsAPI1DVBrOo?1wB63Y)J!JF{}(hu_v4bKijPnk3Zw#qp+IWf_w{* zge)O_cY1GCPa;+j_93%hl(tW4y|mi(L|CYDw$B&^J??}z?gKA{1=S1Uxo)ahRK~eE z!NNpGx+rOgg*gi%1cAdtmKxHzQb-33OHp`&vqamX9kW3(U!pIGv1q;|`^y18)_k`KZ%^70qczw`}}Qo1ZS zT_))jb<3l$44Wwu;sm={#u6KQQQZyN!jC(E$RV_#q*Hm-oP{5dl{Up%7|0oipYOxs z-`F?`Ch9B+aR#C=RDdKA5c{}UhLFWo7KN6fJ~_=E8>HbrHwB(xEpiOfd-Wt7Sz!3^ zGhtnG@KO<$&UDT)5GRpPwXz&$A5TyaJ10Xu~e`xp$tk zpr|0Qkkqg4DLOtNY5B28KEiW-a%`$b5=mjDxvZ6vmw-vQ^)K)~QF-#yw;W5;EO(n~ zcofM~$F+$2);KFEtr~J0jY6o<)wl1>0nAsud+14Ywb!|rTks~pQ)Wu@_+=a?gsXlf z@dkfwNYHb}+ep7jE0>DRJ1%LblF=tL(w2kUWS3+xFINLHz7f4G-kiK${*y8BH!izg z3JY|k*XP_q$SD}_t@ z1dcPh*GKQ0yZJX3Y|=~DM_>Nl;Bu)R5{&rNsY0)Oyy|NmA8ypoRTjrM_l4Bgz(y{4 zD;^bY;4w+~rnYRiLd+xuf8Z+V6`!7Nd{x$-Mg+Z*Gjk^6{R>E(B!y{@{JiNbDW~hy zFTdh6V{F(TV(7n0y7e6A4HZiU@SN^Jw^8|m@Z|dKZBC<f*DD5pTG+**tf9VV6TTP#pA%BS;k%waOim#$`s&;hv4}Oi-W|1J1jYvWQZpm|8|( zcquH^O@7^tQ-zyp=0eq#-g1j2HMg*7Zib;Z5f*USXR@Z=Ss^wcKiDyq%Lw?jnNQL_ zW=wZkh>X44b$7~fcipIOXX}l=-5~W4f{yNiv5ju&fIa_7I)2?fL9GqA?f@oGa`{`< z2t1~fv6CCng65{X6wjyo4j+G%R@ZUZ7tc=(beolE{M)7c*6*>aBwaiBOfJ)~r#8Afb>Jl$s|ojHvve3# zDd{b_JP(u2RWd6rPIkM-#_l!pD7#8W`SgzKL-S6G-&G1e6;?wt^YtX2*erc)&gvdl z$qGc2G2SaOzc-Dg^YMW@ANAy`BS-1{k*mi?z1G|Aope5Zz57tps!7vIK7C}G)a{jA zhe{J3|3G{+el3qlIgx8%tkkJA;_t%&8M|vXqFXGLl$_aJF4wSP3{$Dw0h%F{)77ao z=y8=ks-A4a@|QMog1fD)5mt2O8rV}BzjL|1HeZ8d+o{AhxL6vymacveU8SZl42LDt z9(c;egRrRJ;ZYtZ?MCA$xm;Sg!Cu^n(e#ers(TEjsWf(C1uX;)OYwA{sYB&-xpqH; z7R)Bsu|_m=LGMzX>D$vZq zP8yG3H=qI!QE=fwt(fGRX+<+B)$nz{%M|z}>{Hv>hC?x3j&n_=ex^w$>r8rhgyJV-u9! z=Xh3Et-``_7@nB7r)D z1pgvRg?*1Sfd)MfG4lD8q_sxkMd_+uo^09ogI(1Pi*@r4p>@0%f!!A{fL4AXWxAPw z<5@E*gU@HDUKE~kRO^AQ#q`d%kNz2aPVnq);#eiVWo@P|#%o(x{|Fx&+X4f#?Kk{3e;{9`1|e_ZjQV|s zCocW(N)M_WQm?+N9{o=+rY8^#?SeLK{y+i)3#p_KWjWhrebEly6I3OZNw+Tqem5r> zTO>E|PPYWLY4aVlH$AS+{Al{R$NHW=4`QhMfq{4R8TEey>(QA1$KW;yL08wMQ5KCQv}x0(O`A4t+O%oYrcIkRZQ8VH)22KCQwD}KvXWEoTwg%u+b(TJK)6G^;iYSYSfGi>+pop@$m7&D7IF_*2tAJoHfh-I)RW z5{zxrsX6eAFn_ta>VDp|`g#vzg(2{B8MxXU1pgq@UM`ovf+rczdK~?rfxw6-{;|22 zkHykzZuN5SwD#4Y4ly0$zzf*%c(=iGm`m=JR!?S1#i}{EUWaYD0Dc%}Cck}|ohelc z1OIwaIR!mCuN2l=bos6w{8ZlDdZHPw*|M7^F`W59iIlvy`yud4xDJb+iVpl5y54z~ z3(u+EZ-+}^$7k;i__9DcEV8jw#d8-V@rSz1~f*P1p~4*XQO0gtp40F79uS%$X253v}=y#5P#0cMwL=nZ%cZZ_S?=SP|I4Gjf2 z@Jg&J61wG{6I%yDJft7Ne;*bqS2a{edVLA}17mSTvP&V?)54m>G}a`nbsT9BmTqER zPuRexEgawN{7$3QJb4uA*E=(!#V;Dc~ixgAQ zWMU@+ZMinXbC<@UP0Edf*U?MS=p6XD{A){!6m-p>u%O^@gCD|hDGIE3UchWFn{$EJ z&>a_S+s`+UxtzhrZ^oOF|soT>4_#t#xK>@+| zNa`S2SasNWA(46J>i9H|#4`9l7MA>_kYm@)3!?wlJq~`1q14`*5xjtN8sQgS=aAmp z@(UtmnC3~=__Ku-n8)N@Kz3J;`~hLR?vzV{{~tovgY$d{(P}XlfD>wEj#5 z<_QiB{a*{qxi6tx(8PGV@rUcj7chgD(1{@W{k2~K^%A`rb`Z+_bYXSa2pj-Ehg}5G zKf-EYF+ot)f|iGVKv@1IjOMQm+IJRCVid0S_7j9P`yP|KA+tJI_Y&quec->rMg6Umz% z<>jk`Gcev38y-$&W*>&>T1#zJ3O50cy>ZIlC@kv$d$oA@$VofY`o#rfNadg0eR@&hsHWzrf^%?JM1RLj?J-6P0`$Ga-S!or^>K0X4h%4GF)&wS%X?hPxKF0idX7i zf7-jQ_SlgQbJvr?GPmEvbOCOsBm6)-xtmZDxZheYX`tIjKgaFT1h6cZ^vw44x&*ytUJqzsg zd&>77i^Z{Y_)T}V5@x?$o=>T3tv?v8$fYwl8QmYcxsxLwU%FEFg!C>4@2U|k1|3Bs zXg`TYA%x4pprfNc&wJGfzWJC7dPSQfw0_eN>YkP8*aToqID)yw)L5ELBRJFB1r&_# zBi2rIgmPDMJGW=l0-+cWM)!=05z6cF&o;~Q*vdpz60`ZGF^A3eIeu5JD!`dqk9%#V z_u;RD?oC1Ne&Jv&~4Fi$WaEY?0@b(XvkNt7KNi`}6HVV#FCN<3tYea6mMF#$ z#y3F&UAGdQ)M;Lb#RY^hn>Z0m?aHg`2u+VbjM>;w%$@^=71LV?v{_7UI}6 zy(G7=!;4gRPQ(baiF=ESYLyn)7;13DBh^@cM2Il5Y{z>2ds$y4o7y?Kcz;$6Qw~Wx zi=du1j7H^2y28j-JYoYPOrdSN3)FGOlF+}5u_RIGI6a#r5}OVo>6{o-9{|wL|fA7uX%uBM9Y8=!c%pv#}f%5Vn|DXri&M`poa6$SGhX z^~6#3$_0g?5Smc)w;2==vUpiLN1hq$K#$o-taJSbqb#S}G(?#FPla&C3}og$cp;lF zj}css8G(%dHZ92W!MtNHOPhps{?5bZMxcZQ%Zi-IZm*=Bj#PJ*dmy0D-ZEw|<4m*# z3CpEKU_7agyu0I(vm=je+HMCjgA(zUN7e8N>6DI5PYo4fp>iq0!ZYs#_6C*(aml4t z!uB#7+hoEh62AJI`~&&@5fpU+-=v-2)3RgUwhdaCnENJm~j*F?{Jt6$gIA8>_0wMEz{i#Zj4~l$)um%$ZSuP9xdw0|> zZvU%c_Yj7WtoxB$>V(y^3MmN{`%}YVJSNnHMIEAJCtnzjBNEAjCvaLI+BVk>G=s>f zP8F80EUa&(Vk?mFi3L#4>^y?g)o^+#o_v?@FD_9wj#(8JSr*gNc@{cMg`zS<-#jH~ zJ=UKu*~H~1goPp=nAXAP-OGRAE8ELZc&F zTURVs$09{X#s2)UK!yFP+KUi{=UNKOE-aJDN}*7)*pY33YZR8Se6bRXm28B@?{M&4 zKF@~WM?WxF}4>>kt6UhsF|TNX<*-+(zK(eMUP z81PUupJ{hG0|Pk(i7Koq6OY609;dTs;Eso|L0GKH5QSrx`L=U2_oT3pm~#1@{R97GO`eG`i52@MKMrMr-#5K zP#9lAICs|WbNUDGm}@pvVL{%LY-eM;;|R~oh0RqcvG08KJAHFyFAtv(7DUJ0v%a1y zFM&iX?D~A?DUo0$IIcKG(TqIC^*e#mJ%cJNNSE9lfmwEHWs%aIYd@Q9QKV$MDkqVM zf3y}BL}P0`KHqN2Lhx``qp*lDJj7m%iG=cw8+Iem_F|d#;tRXyo0HpM`myQ2IMytRj?9+AS;* zl(Pb(-(N!L#P9Q2StqPO@#-4OVCSKS@LAarLl%OjyX6X;8b$VF?OrTRAD*+&uB}1{ z8-?}7g6#JbtcCw93wiNC2XszfH`94HI~{YquplJG4!>{i77~b}Z9P7}YZdaS4KS`O z6wjOm)D=ce8BJIOWv|%``*s9^lbjr?J_ONQHB?MkkT-4a`hBzR1R@SOZT@*o_P@#x zwcDZy?|{DpeGYt4me+`dif+{hA9!lXC?9H!Yayfx%TSW+-ei}0aG5p=3v8s)2tm=4 z$d*!HoLsZ8V9CeH{oF*LG$1eIc^<`k-vEYn%0wH4)s{wNT5ZrBLi|X5-7FTpm<^V` z&y`Yxz6N0}&Lfy^Q+HLc<^CWn;mWEsE+7*gh*q;&>9#d{yZ;Y^4 zca(Ds>`Qo^HQ`P%Z#h)*W8TeD>gZ90MM8r{PKoCo!ZYe@XSXpwdaeb?261<5VIhb5 zb=$rpg5UcZg+*u1IoTMK5*4!&& zXIR^=6j}-kuIwu9dQC)sBbVhQ(r>Bl28JvBMmanWPYHFG>`bo>>IF3-7C8`emCCJ4 zr(|tUkLFp{xFn`xYFvHRogj_E>e|9I-K&n#JxchaMJ4-8SW5aDgoQr@SZi)*5>Z>f z+=x5#@cN`YTo$AF?*?@-jUhCnQ-x(uD9t|-BKN)dI|JtZW(I=8MvL~OnC%Qiw{ zX64Z7_PZqb8=yb1DYpm|j0H&*R(lAelX30f9&QpA@Et69v4o%? zrpGQP#v6r2y=~h2yby14EI%HiPjzXwTSfK4;)XE_Yf>?kB@*?4Is#YwCUvmovDLQ4 zI$?bhAu1Yy!uZI8uu!5CD7+PscLFry7NEWl)G?rkrao0zd`hj|Hz!!%xEb*iQ&Wc) z&)N2Nqoy%Cgx8v|(td4>&qz7Z0Rdf9*J8&$enMFKOEZv3GGXY{r?)5afrsgF? z@Rp%oSo(f-(&m^RP3l?+>tP=jciWt2!z4jR+T)7$c7MxDLNUXs78xZ{ijARLLil)B zJ=D|g=j!)ib&g>;Y|sKehG1UpKA=tRMvp>lDC-C&qyFkHVtb>odV)L|F={X85fq1% z!oza*n}sFyDvga5$sSkJYYiiPS$Wif@dvFRV_uKqLyEA7aLcKEuTs3S(Yz0fI`)KG{LI0yKIdRfKgd@^G(qP$Esj z0@hDcx7i?+5TRnU($OF+RNX6OOi-L>WwI&S=^4;SMNplvzGWr6zpHXSg`sHy)U(l- ztYqW7JeUx#^gI^U1cbP@E|Wq{SkiWvrWXgc$l3O9mTSlj+gOeL*07$Lu!dA&p=+S> zftS|DK^i9zHTINz1|_re%P+d!eq0ws4#VIiSdOF4|pH3+M= z(`cH_!LP2W86FSU3(L;bs&c>t(DfZ*waByXR)Ut*!?&6@S_zAIdw|LjRmHi(Q`<`U ztmny%qiYwurL4xJ^V15V*@wFA*&XW6V-#Wy15utH0}U5x6jmRCaI=;p4C&3E2#b1# zw0+rnbg!nLn@9S7c{vD3tgRn6rlyaouxxEWrAX0xU$d~JqeU(2qew`}%ivgo-Vaw_ z{}!rJ`Tc@KZj9f)eKRb05L6b)sSQQ?fyQrXqzLN^3ugvsbX%H*#jpnY+=sXCBLpIG z*xDehd!1H9>vkN|DYt+fpMb_&Pra~wOPF6SjVN3m@z6H$^k92S5y}R;)jbkcKOvS{ z{rnNB2}@trif=BAZJToWMJ-+pQ$coe1WJS8Ft$KLrSQBHK;7zWju*9kA;1I%&Mq!ECY~She`){hSj+=yqOjWCA zn6Rwh5mu`_e+?ljc=mT}RK-2Lz)ELav+GrF#gK=)0S5b9`a5Y~LPh)z^t-4Z-nOY^m(URdoR z450uO1d5Pw_4Ht~*Hb3~;T_kHgjFE?@;T6GzjzSVX|>WcVRefV(!hK2aRI8EXKNT@ zn0SrawuY)-wwi@Cg`s7~U^)5a9)V${31}kuf0<=lM5S~1R-DVn?>PO2a znX>V3b#c;u+~q=Db)aWN;vJ$=P|iO0O*3 z31nz<0{dM3$e4x)jBm_@sUE$huOcFr?=W;+^(mEyW=g{DQ_lP6prcNC&78(WWA_YT z_bvD#OKn0MD((8Og_&l952s6By-7FG5`ZWotGrP35Vg&R4D*v33YyM(_2C?gY>=EW zhv2%S*|3x11AxHWLSH-wYM^Dv%ci6;okh-1q~TjEw`jX%ovmc_3?Oi`iM4??9adQw zHPUy>MII_F8sPuOm-uP0 z{SU!YM;N~A+$qBIayTwVko@)%rJE-1{#COr`l5e?C~3>C)o@I0UVO%-_M716v9Hmm zxZf`q@)Eg(n4y7WE@>)S)`H6XTA27JSdp_T0 z0VSFDZQZeET0S>ls!IGJf5P{*T7w(-PNZ~K<=c*yi)c@s3#kkc$eiHxP@qW%YRi@A zjWiKjRlD0CiR=kpD-*nXAQEUw;PPuq8`CeUZ9dxSnbXp8<%*;y59Oa{VR6NAeVQLx za2XM@nuC`o3=uO|QejPh`teA?{~#m^Ehz+$)*BJxd1kGHfZ@To1ciFh7`%a zXA$FukZb%l5qGcljJ%lB0J@&iJ$s4R#&}Kij)?&=K6`Su4N9e>cervzu`#WW)**xh zmW}O!t6DydbQrUetg){*=TDMIG0ogkZKV1<=JNW3(jeMtJH@B%8$^Va(Jt2-5vLWQ zK(hleCuM1x0`FV7a}rpN)O+vbURx*PmVlH7TEo|X!uKs@cGgMn>3|yNlzO6W+P2SM z|MUGU4~67J+m;WQG<3iN^|z62`Er4D5A`Az>UG)Cz&X}(xBChi@{+rs$$k>|sejW$?vj`>U z-;JIfl}E#vl!OAMzVnEBC?&-S*ZM{u#9^R&n%K#jhHBZoab%lSUE&u~8dK zQsv`c7a1E`D&wAos?aE8E_iT8$W!XbMqr}36g~I%i&Wv0=ootGT%n|;&8 zz0ul^CqYb!6#Cov30V048{TfC#h`u(j={XFy~Wv6Q}a$;=uEVsAGjDn<)t5Kn5~TDpOer29EkC9xpdD%Z z7BrO%hIC0hnK&kUZM9ZzjZ+?P2Sbj3OL``{vum>mlG4jD_uip>_GMow>M(T<%$(Y8 z&DfFF&eHFRm8CATRBG|8Sa_b`fvGsj3&c8yHkHq_xSOAY zlp-CeAmcQU6gQyZdous~U!Pr@w7zL4YC(SBGDX%SBHJjvxgHqAI@yHVAhNhOR?jl$ zUrP4Fm9|bKdAxmB9Md;+fDEkCjqCBLbLCgKGNm9W>d98FZ@TRk3Ts~lYP*^@*;*s} znTFbHxP^LTWpURClS*+4`_X;~B?fUyAlve4>Vrvc3`W%}d_A+A101z(8g}W~p|{4d z@cRNWgbU#V$*p_HwOub&`YP%_Gc}65687;u0?xJEP{=>Yy`tC>ooou=$#F`3%G#UV zlruX$l@N+ITTxg~!fYmDsp;XR4-fA)cdz6+Av4cOtsPHx5>6sqTL)Z$YT5^tH#*Z@ZXHb!vA&y6H z*c?mtwQ()6^9%!Cdfkj-t-Y!6g`>JWftVV|LTklvTF;TslG6!$wKj$^zrI5fJ-}ym z*RX1HW1RQl(|QRVu-E*>*mq!PK8J9+Ha?B0$&j@Nvu4Uz&=O20lc^Dv)S-1&v09I= zp}i6NbWca1$h_I`&s$9U+%x3>msM}$TvoJfe9UuoDB$0pK5;p&)ClC)=gg&XMr~eui7S)ru^W|Ax&Bm zqUApR^+k{A;6m1%wgNnBTe0#I%r{m>sX8evA0<;)RL^tUFk3~X{VQ<$cCZ+0gN$EG zD?|M^=10BNWdm?OeBV-O8Y5ji->lBg0k@{(Tbkz?Wff1?s7=Nyt^F(}Q}*ljcB69m zH7H7yZXdaC8YdUJ?V5dHA$@CDSr9P&!1GCZ?sKB_t+jMQ?KK92NEbVHcJ`)+N9tH1rW#@VM-m>zP( z4?h{g45c2I`oENwHgh*(wpN{Aw_@ov5q=F86Nvk#Ngn?9eOC~5b}8FpH3d!hD4vA^ zW&1>(#p0JkN&pPtyZK#?hI?w_n*ZmXRu?8CC;Px%1jf9-%A%oIs_q(7p1rQPF4Pe4p$Y(ktKBBT6>;Y3EgNmH%|hqXs;_!=3!U91>{+ zA3s)}+Z3)?1_T8T6Q{Cv&d3v@Y@nYkF zu&qmUX=ndorU-WJMk(em`vnygH}Sv2@>lph{QrbG+3u!Qv Date: Tue, 28 Oct 2025 17:37:18 +0800 Subject: [PATCH 287/444] https: add load balancing group support (#5032) --- README.md | 2 +- README_zh.md | 2 +- Release.md | 4 +- server/controller/resource.go | 3 + server/group/https.go | 197 ++++++++++++++++++++++++++++++++++ server/proxy/https.go | 41 ++++--- server/service.go | 3 + test/e2e/framework/process.go | 4 +- test/e2e/v1/features/group.go | 76 +++++++++++++ 9 files changed, 311 insertions(+), 21 deletions(-) create mode 100644 server/group/https.go diff --git a/README.md b/README.md index fc822a0ea8c..299f9a3ccdc 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and

- +
Requestly - Free & Open-Source alternative to Postman diff --git a/README_zh.md b/README_zh.md index d3ec8aafbe7..82ac8a5004e 100644 --- a/README_zh.md +++ b/README_zh.md @@ -25,7 +25,7 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and

- +
Requestly - Free & Open-Source alternative to Postman diff --git a/Release.md b/Release.md index 2ea047fa5de..e237538b4ad 100644 --- a/Release.md +++ b/Release.md @@ -1,5 +1,3 @@ ## Features -* Add NAT traversal configuration options for XTCP proxies and visitors. Support disabling assisted addresses to avoid using slow VPN connections during NAT hole punching. -* Enhanced OIDC client configuration with support for custom TLS certificate verification and proxy settings. Added `trustedCaFile`, `insecureSkipVerify`, and `proxyURL` options for OIDC token endpoint connections. -* Added detailed Prometheus metrics with `proxy_counts_detailed` metric that includes both proxy type and proxy name labels, enabling monitoring of individual proxy connections instead of just aggregate counts. +* HTTPS proxies now support load balancing groups. Multiple HTTPS proxies can be configured with the same `loadBalancer.group` and `loadBalancer.groupKey` to share the same custom domain and distribute traffic across multiple backend services, similar to the existing TCP and HTTP load balancing capabilities. diff --git a/server/controller/resource.go b/server/controller/resource.go index 9d14b18dfbe..717c961676b 100644 --- a/server/controller/resource.go +++ b/server/controller/resource.go @@ -35,6 +35,9 @@ type ResourceController struct { // HTTP Group Controller HTTPGroupCtl *group.HTTPGroupController + // HTTPS Group Controller + HTTPSGroupCtl *group.HTTPSGroupController + // TCP Mux Group Controller TCPMuxGroupCtl *group.TCPMuxGroupCtl diff --git a/server/group/https.go b/server/group/https.go new file mode 100644 index 00000000000..4089b0cbd01 --- /dev/null +++ b/server/group/https.go @@ -0,0 +1,197 @@ +// Copyright 2025 The frp Authors +// +// Licensed 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. + +package group + +import ( + "context" + "net" + "sync" + + gerr "github.com/fatedier/golib/errors" + + "github.com/fatedier/frp/pkg/util/vhost" +) + +type HTTPSGroupController struct { + groups map[string]*HTTPSGroup + + httpsMuxer *vhost.HTTPSMuxer + + mu sync.Mutex +} + +func NewHTTPSGroupController(httpsMuxer *vhost.HTTPSMuxer) *HTTPSGroupController { + return &HTTPSGroupController{ + groups: make(map[string]*HTTPSGroup), + httpsMuxer: httpsMuxer, + } +} + +func (ctl *HTTPSGroupController) Listen( + ctx context.Context, + group, groupKey string, + routeConfig vhost.RouteConfig, +) (l net.Listener, err error) { + indexKey := group + ctl.mu.Lock() + g, ok := ctl.groups[indexKey] + if !ok { + g = NewHTTPSGroup(ctl) + ctl.groups[indexKey] = g + } + ctl.mu.Unlock() + + return g.Listen(ctx, group, groupKey, routeConfig) +} + +func (ctl *HTTPSGroupController) RemoveGroup(group string) { + ctl.mu.Lock() + defer ctl.mu.Unlock() + delete(ctl.groups, group) +} + +type HTTPSGroup struct { + group string + groupKey string + domain string + + acceptCh chan net.Conn + httpsLn *vhost.Listener + lns []*HTTPSGroupListener + ctl *HTTPSGroupController + mu sync.Mutex +} + +func NewHTTPSGroup(ctl *HTTPSGroupController) *HTTPSGroup { + return &HTTPSGroup{ + lns: make([]*HTTPSGroupListener, 0), + ctl: ctl, + acceptCh: make(chan net.Conn), + } +} + +func (g *HTTPSGroup) Listen( + ctx context.Context, + group, groupKey string, + routeConfig vhost.RouteConfig, +) (ln *HTTPSGroupListener, err error) { + g.mu.Lock() + defer g.mu.Unlock() + if len(g.lns) == 0 { + // the first listener, listen on the real address + httpsLn, errRet := g.ctl.httpsMuxer.Listen(ctx, &routeConfig) + if errRet != nil { + return nil, errRet + } + ln = newHTTPSGroupListener(group, g, httpsLn.Addr()) + + g.group = group + g.groupKey = groupKey + g.domain = routeConfig.Domain + g.httpsLn = httpsLn + g.lns = append(g.lns, ln) + go g.worker() + } else { + // route config in the same group must be equal + if g.group != group || g.domain != routeConfig.Domain { + return nil, ErrGroupParamsInvalid + } + if g.groupKey != groupKey { + return nil, ErrGroupAuthFailed + } + ln = newHTTPSGroupListener(group, g, g.lns[0].Addr()) + g.lns = append(g.lns, ln) + } + return +} + +func (g *HTTPSGroup) worker() { + for { + c, err := g.httpsLn.Accept() + if err != nil { + return + } + err = gerr.PanicToError(func() { + g.acceptCh <- c + }) + if err != nil { + return + } + } +} + +func (g *HTTPSGroup) Accept() <-chan net.Conn { + return g.acceptCh +} + +func (g *HTTPSGroup) CloseListener(ln *HTTPSGroupListener) { + g.mu.Lock() + defer g.mu.Unlock() + for i, tmpLn := range g.lns { + if tmpLn == ln { + g.lns = append(g.lns[:i], g.lns[i+1:]...) + break + } + } + if len(g.lns) == 0 { + close(g.acceptCh) + if g.httpsLn != nil { + g.httpsLn.Close() + } + g.ctl.RemoveGroup(g.group) + } +} + +type HTTPSGroupListener struct { + groupName string + group *HTTPSGroup + + addr net.Addr + closeCh chan struct{} +} + +func newHTTPSGroupListener(name string, group *HTTPSGroup, addr net.Addr) *HTTPSGroupListener { + return &HTTPSGroupListener{ + groupName: name, + group: group, + addr: addr, + closeCh: make(chan struct{}), + } +} + +func (ln *HTTPSGroupListener) Accept() (c net.Conn, err error) { + var ok bool + select { + case <-ln.closeCh: + return nil, ErrListenerClosed + case c, ok = <-ln.group.Accept(): + if !ok { + return nil, ErrListenerClosed + } + return c, nil + } +} + +func (ln *HTTPSGroupListener) Addr() net.Addr { + return ln.addr +} + +func (ln *HTTPSGroupListener) Close() (err error) { + close(ln.closeCh) + + // remove self from HTTPSGroup + ln.group.CloseListener(ln) + return +} diff --git a/server/proxy/https.go b/server/proxy/https.go index 4575ac13d08..f137ea7ad6d 100644 --- a/server/proxy/https.go +++ b/server/proxy/https.go @@ -15,6 +15,7 @@ package proxy import ( + "net" "reflect" "strings" @@ -58,27 +59,24 @@ func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { continue } - routeConfig.Domain = domain - l, errRet := pxy.rc.VhostHTTPSMuxer.Listen(pxy.ctx, routeConfig) - if errRet != nil { - err = errRet - return + l, err := pxy.listenForDomain(routeConfig, domain) + if err != nil { + return "", err } - xl.Infof("https proxy listen for host [%s]", routeConfig.Domain) pxy.listeners = append(pxy.listeners, l) - addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPSPort)) + addrs = append(addrs, util.CanonicalAddr(domain, pxy.serverCfg.VhostHTTPSPort)) + xl.Infof("https proxy listen for host [%s] group [%s]", domain, pxy.cfg.LoadBalancer.Group) } if pxy.cfg.SubDomain != "" { - routeConfig.Domain = pxy.cfg.SubDomain + "." + pxy.serverCfg.SubDomainHost - l, errRet := pxy.rc.VhostHTTPSMuxer.Listen(pxy.ctx, routeConfig) - if errRet != nil { - err = errRet - return + domain := pxy.cfg.SubDomain + "." + pxy.serverCfg.SubDomainHost + l, err := pxy.listenForDomain(routeConfig, domain) + if err != nil { + return "", err } - xl.Infof("https proxy listen for host [%s]", routeConfig.Domain) pxy.listeners = append(pxy.listeners, l) - addrs = append(addrs, util.CanonicalAddr(routeConfig.Domain, pxy.serverCfg.VhostHTTPSPort)) + addrs = append(addrs, util.CanonicalAddr(domain, pxy.serverCfg.VhostHTTPSPort)) + xl.Infof("https proxy listen for host [%s] group [%s]", domain, pxy.cfg.LoadBalancer.Group) } pxy.startCommonTCPListenersHandler() @@ -89,3 +87,18 @@ func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { func (pxy *HTTPSProxy) Close() { pxy.BaseProxy.Close() } + +func (pxy *HTTPSProxy) listenForDomain(routeConfig *vhost.RouteConfig, domain string) (net.Listener, error) { + tmpRouteConfig := *routeConfig + tmpRouteConfig.Domain = domain + + if pxy.cfg.LoadBalancer.Group != "" { + return pxy.rc.HTTPSGroupCtl.Listen( + pxy.ctx, + pxy.cfg.LoadBalancer.Group, + pxy.cfg.LoadBalancer.GroupKey, + tmpRouteConfig, + ) + } + return pxy.rc.VhostHTTPSMuxer.Listen(pxy.ctx, &tmpRouteConfig) +} diff --git a/server/service.go b/server/service.go index 7ca80dc89ba..1fe882d293a 100644 --- a/server/service.go +++ b/server/service.go @@ -322,6 +322,9 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { if err != nil { return nil, fmt.Errorf("create vhost httpsMuxer error, %v", err) } + + // Init HTTPS group controller after HTTPSMuxer is created + svr.rc.HTTPSGroupCtl = group.NewHTTPSGroupController(svr.rc.VhostHTTPSMuxer) } // frp tls listener diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 10b3611bf6e..0b837e39fa9 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -75,8 +75,8 @@ func (f *Framework) RunFrps(args ...string) (*process.Process, string, error) { if err != nil { return p, p.StdOutput(), err } - // sleep for a while to get std output - time.Sleep(2 * time.Second) + // Give frps extra time to finish binding ports before proceeding. + time.Sleep(4 * time.Second) return p, p.StdOutput(), nil } diff --git a/test/e2e/v1/features/group.go b/test/e2e/v1/features/group.go index fe0c957ba8b..f6bb1856e38 100644 --- a/test/e2e/v1/features/group.go +++ b/test/e2e/v1/features/group.go @@ -1,6 +1,7 @@ package features import ( + "crypto/tls" "fmt" "strconv" "sync" @@ -8,6 +9,7 @@ import ( "github.com/onsi/ginkgo/v2" + "github.com/fatedier/frp/pkg/transport" "github.com/fatedier/frp/test/e2e/framework" "github.com/fatedier/frp/test/e2e/framework/consts" "github.com/fatedier/frp/test/e2e/mock/server/httpserver" @@ -112,6 +114,80 @@ var _ = ginkgo.Describe("[Feature: Group]", func() { framework.ExpectTrue(fooCount > 1 && barCount > 1, "fooCount: %d, barCount: %d", fooCount, barCount) }) + + ginkgo.It("HTTPS", func() { + vhostHTTPSPort := f.AllocPort() + serverConf := consts.DefaultServerConfig + fmt.Sprintf(` + vhostHTTPSPort = %d + `, vhostHTTPSPort) + clientConf := consts.DefaultClientConfig + + tlsConfig, err := transport.NewServerTLSConfig("", "", "") + framework.ExpectNoError(err) + + fooPort := f.AllocPort() + fooServer := httpserver.New( + httpserver.WithBindPort(fooPort), + httpserver.WithHandler(framework.SpecifiedHTTPBodyHandler([]byte("foo"))), + httpserver.WithTLSConfig(tlsConfig), + ) + f.RunServer("", fooServer) + + barPort := f.AllocPort() + barServer := httpserver.New( + httpserver.WithBindPort(barPort), + httpserver.WithHandler(framework.SpecifiedHTTPBodyHandler([]byte("bar"))), + httpserver.WithTLSConfig(tlsConfig), + ) + f.RunServer("", barServer) + + clientConf += fmt.Sprintf(` + [[proxies]] + name = "foo" + type = "https" + localPort = %d + customDomains = ["example.com"] + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + + [[proxies]] + name = "bar" + type = "https" + localPort = %d + customDomains = ["example.com"] + loadBalancer.group = "test" + loadBalancer.groupKey = "123" + `, fooPort, barPort) + + f.RunProcesses([]string{serverConf}, []string{clientConf}) + + fooCount := 0 + barCount := 0 + for i := 0; i < 10; i++ { + framework.NewRequestExpect(f). + Explain("times " + strconv.Itoa(i)). + Port(vhostHTTPSPort). + RequestModify(func(r *request.Request) { + r.HTTPS().HTTPHost("example.com").TLSConfig(&tls.Config{ + ServerName: "example.com", + InsecureSkipVerify: true, + }) + }). + Ensure(func(resp *request.Response) bool { + switch string(resp.Content) { + case "foo": + fooCount++ + case "bar": + barCount++ + default: + return false + } + return true + }) + } + + framework.ExpectTrue(fooCount > 1 && barCount > 1, "fooCount: %d, barCount: %d", fooCount, barCount) + }) }) ginkgo.Describe("Health Check", func() { From a75320ef2fcbb6103c06bbd5b4ad85f9c35b4cc3 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 28 Oct 2025 17:52:34 +0800 Subject: [PATCH 288/444] update quic-go dependency from v0.53.0 to v0.55.0 (#5033) --- go.mod | 17 ++++++++--------- go.sum | 40 ++++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/go.mod b/go.mod index af633af4135..e23facdeab5 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/pion/stun/v2 v2.0.0 github.com/pires/go-proxyproto v0.7.0 github.com/prometheus/client_golang v1.19.1 - github.com/quic-go/quic-go v0.53.0 + github.com/quic-go/quic-go v0.55.0 github.com/rodaine/table v1.2.0 github.com/samber/lo v1.47.0 github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 @@ -26,10 +26,10 @@ require ( github.com/tidwall/gjson v1.17.1 github.com/vishvananda/netlink v1.3.0 github.com/xtaci/kcp-go/v5 v5.6.13 - golang.org/x/crypto v0.37.0 - golang.org/x/net v0.39.0 + golang.org/x/crypto v0.41.0 + golang.org/x/net v0.43.0 golang.org/x/oauth2 v0.28.0 - golang.org/x/sync v0.13.0 + golang.org/x/sync v0.16.0 golang.org/x/time v0.5.0 golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 gopkg.in/ini.v1 v1.67.0 @@ -67,11 +67,10 @@ require ( github.com/tjfoc/gmsm v1.4.1 // indirect github.com/vishvananda/netns v0.0.4 // indirect go.uber.org/automaxprocs v1.6.0 // indirect - go.uber.org/mock v0.5.0 // indirect - golang.org/x/mod v0.24.0 // indirect - golang.org/x/sys v0.32.0 // indirect - golang.org/x/text v0.24.0 // indirect - golang.org/x/tools v0.31.0 // indirect + golang.org/x/mod v0.27.0 // indirect + golang.org/x/sys v0.35.0 // indirect + golang.org/x/text v0.28.0 // indirect + golang.org/x/tools v0.36.0 // indirect golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index a411ff30581..f73117a3b9b 100644 --- a/go.sum +++ b/go.sum @@ -105,8 +105,8 @@ github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSz github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= -github.com/quic-go/quic-go v0.53.0 h1:QHX46sISpG2S03dPeZBgVIZp8dGagIaiu2FiVYvpCZI= -github.com/quic-go/quic-go v0.53.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY= +github.com/quic-go/quic-go v0.55.0 h1:zccPQIqYCXDt5NmcEabyYvOnomjs8Tlwl7tISjJh9Mk= +github.com/quic-go/quic-go v0.55.0/go.mod h1:DR51ilwU1uE164KuWXhinFcKWGlEjzys2l8zUl5Ss1U= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rodaine/table v1.2.0 h1:38HEnwK4mKSHQJIkavVj+bst1TEY7j9zhLMWu4QJrMA= @@ -156,24 +156,24 @@ github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37/go.mod h1:HpMP7DB2 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= -go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= -go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= +go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko= +go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= +golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -187,8 +187,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= +golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc= golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= @@ -197,8 +197,8 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -213,24 +213,24 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= +golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= +golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= +golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -241,8 +241,8 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= -golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg= From e025843d3c14a1a6801d3a277882cb43b6548e2b Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 29 Oct 2025 01:08:48 +0800 Subject: [PATCH 289/444] vnet: add exponential backoff for failed reconnections (#5035) --- Release.md | 4 +++ client/visitor/stcp.go | 18 ++++++++++++- client/visitor/visitor.go | 2 +- client/visitor/xtcp.go | 11 ++++++++ pkg/plugin/visitor/plugin.go | 15 ++++++++--- pkg/plugin/visitor/virtual_net.go | 44 +++++++++++++++++++++++++------ pkg/util/net/conn.go | 21 ++++++++++++--- pkg/util/net/websocket.go | 2 +- 8 files changed, 99 insertions(+), 18 deletions(-) diff --git a/Release.md b/Release.md index e237538b4ad..18aa0182935 100644 --- a/Release.md +++ b/Release.md @@ -1,3 +1,7 @@ ## Features * HTTPS proxies now support load balancing groups. Multiple HTTPS proxies can be configured with the same `loadBalancer.group` and `loadBalancer.groupKey` to share the same custom domain and distribute traffic across multiple backend services, similar to the existing TCP and HTTP load balancing capabilities. + +## Improvements + +* **VirtualNet**: Implemented intelligent reconnection with exponential backoff. When connection errors occur repeatedly, the reconnect interval increases from 60s to 300s (max), reducing unnecessary reconnection attempts. Normal disconnections still reconnect quickly at 10s intervals. diff --git a/client/visitor/stcp.go b/client/visitor/stcp.go index 124202eb8d5..31f6f1743e5 100644 --- a/client/visitor/stcp.go +++ b/client/visitor/stcp.go @@ -15,6 +15,7 @@ package visitor import ( + "fmt" "io" "net" "strconv" @@ -81,11 +82,22 @@ func (sv *STCPVisitor) internalConnWorker() { func (sv *STCPVisitor) handleConn(userConn net.Conn) { xl := xlog.FromContextSafe(sv.ctx) - defer userConn.Close() + var tunnelErr error + defer func() { + // If there was an error and connection supports CloseWithError, use it + if tunnelErr != nil { + if eConn, ok := userConn.(interface{ CloseWithError(error) error }); ok { + _ = eConn.CloseWithError(tunnelErr) + return + } + } + userConn.Close() + }() xl.Debugf("get a new stcp user connection") visitorConn, err := sv.helper.ConnectServer() if err != nil { + tunnelErr = err return } defer visitorConn.Close() @@ -102,6 +114,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { err = msg.WriteMsg(visitorConn, newVisitorConnMsg) if err != nil { xl.Warnf("send newVisitorConnMsg to server error: %v", err) + tunnelErr = err return } @@ -110,12 +123,14 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) if err != nil { xl.Warnf("get newVisitorConnRespMsg error: %v", err) + tunnelErr = err return } _ = visitorConn.SetReadDeadline(time.Time{}) if newVisitorConnRespMsg.Error != "" { xl.Warnf("start new visitor connection error: %s", newVisitorConnRespMsg.Error) + tunnelErr = fmt.Errorf("%s", newVisitorConnRespMsg.Error) return } @@ -125,6 +140,7 @@ func (sv *STCPVisitor) handleConn(userConn net.Conn) { remote, err = libio.WithEncryption(remote, []byte(sv.cfg.SecretKey)) if err != nil { xl.Errorf("create encryption stream error: %v", err) + tunnelErr = err return } } diff --git a/client/visitor/visitor.go b/client/visitor/visitor.go index fb2b3e118a1..87e4f29ff89 100644 --- a/client/visitor/visitor.go +++ b/client/visitor/visitor.go @@ -71,7 +71,7 @@ func NewVisitor( Name: cfg.GetBaseConfig().Name, Ctx: ctx, VnetController: helper.VNetController(), - HandleConn: func(conn net.Conn) { + SendConnToVisitor: func(conn net.Conn) { _ = baseVisitor.AcceptConn(conn) }, }, diff --git a/client/visitor/xtcp.go b/client/visitor/xtcp.go index 353577db659..cdfeb1ab919 100644 --- a/client/visitor/xtcp.go +++ b/client/visitor/xtcp.go @@ -162,8 +162,16 @@ func (sv *XTCPVisitor) keepTunnelOpenWorker() { func (sv *XTCPVisitor) handleConn(userConn net.Conn) { xl := xlog.FromContextSafe(sv.ctx) isConnTransferred := false + var tunnelErr error defer func() { if !isConnTransferred { + // If there was an error and connection supports CloseWithError, use it + if tunnelErr != nil { + if eConn, ok := userConn.(interface{ CloseWithError(error) error }); ok { + _ = eConn.CloseWithError(tunnelErr) + return + } + } userConn.Close() } }() @@ -181,6 +189,8 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { tunnelConn, err := sv.openTunnel(ctx) if err != nil { xl.Errorf("open tunnel error: %v", err) + tunnelErr = err + // no fallback, just return if sv.cfg.FallbackTo == "" { return @@ -200,6 +210,7 @@ func (sv *XTCPVisitor) handleConn(userConn net.Conn) { muxConnRWCloser, err = libio.WithEncryption(muxConnRWCloser, []byte(sv.cfg.SecretKey)) if err != nil { xl.Errorf("create encryption stream error: %v", err) + tunnelErr = err return } } diff --git a/pkg/plugin/visitor/plugin.go b/pkg/plugin/visitor/plugin.go index 94adce093b0..27eecc82fd1 100644 --- a/pkg/plugin/visitor/plugin.go +++ b/pkg/plugin/visitor/plugin.go @@ -23,11 +23,20 @@ import ( "github.com/fatedier/frp/pkg/vnet" ) +// PluginContext provides the necessary context and callbacks for visitor plugins. type PluginContext struct { - Name string - Ctx context.Context + // Name is the unique identifier for this visitor, used for logging and routing. + Name string + + // Ctx manages the plugin's lifecycle and carries the logger for structured logging. + Ctx context.Context + + // VnetController manages TUN device routing. May be nil if virtual networking is disabled. VnetController *vnet.Controller - HandleConn func(net.Conn) + + // SendConnToVisitor sends a connection to the visitor's internal processing queue. + // Does not return error; failures are handled by closing the connection. + SendConnToVisitor func(net.Conn) } // Creators is used for create plugins to handle connections. diff --git a/pkg/plugin/visitor/virtual_net.go b/pkg/plugin/visitor/virtual_net.go index f660c0c89e5..8193ce03cbd 100644 --- a/pkg/plugin/visitor/virtual_net.go +++ b/pkg/plugin/visitor/virtual_net.go @@ -42,6 +42,8 @@ type VirtualNetPlugin struct { controllerConn net.Conn closeSignal chan struct{} + consecutiveErrors int // Tracks consecutive connection errors for exponential backoff + ctx context.Context cancel context.CancelFunc } @@ -98,7 +100,6 @@ func (p *VirtualNetPlugin) Start() { func (p *VirtualNetPlugin) run() { xl := xlog.FromContextSafe(p.ctx) - reconnectDelay := 10 * time.Second for { currentCloseSignal := make(chan struct{}) @@ -121,7 +122,10 @@ func (p *VirtualNetPlugin) run() { p.controllerConn = controllerConn p.mu.Unlock() - pluginNotifyConn := netutil.WrapCloseNotifyConn(pluginConn, func() { + // Wrap with CloseNotifyConn which supports both close notification and error recording + var closeErr error + pluginNotifyConn := netutil.WrapCloseNotifyConn(pluginConn, func(err error) { + closeErr = err close(currentCloseSignal) // Signal the run loop on close. }) @@ -129,9 +133,9 @@ func (p *VirtualNetPlugin) run() { p.pluginCtx.VnetController.RegisterClientRoute(p.ctx, p.pluginCtx.Name, p.routes, controllerConn) xl.Infof("successfully registered client route for visitor [%s]. Starting connection handler with CloseNotifyConn.", p.pluginCtx.Name) - // Pass the CloseNotifyConn to HandleConn. - // HandleConn is responsible for calling Close() on pluginNotifyConn. - p.pluginCtx.HandleConn(pluginNotifyConn) + // Pass the CloseNotifyConn to the visitor for handling. + // The visitor can call CloseWithError to record the failure reason. + p.pluginCtx.SendConnToVisitor(pluginNotifyConn) // Wait for context cancellation or connection close. select { @@ -140,8 +144,32 @@ func (p *VirtualNetPlugin) run() { p.cleanupControllerConn(xl) return case <-currentCloseSignal: - xl.Infof("detected connection closed via CloseNotifyConn for visitor [%s].", p.pluginCtx.Name) - // HandleConn closed the plugin side. Close the controller side. + // Determine reconnect delay based on error with exponential backoff + var reconnectDelay time.Duration + if closeErr != nil { + p.consecutiveErrors++ + xl.Warnf("connection closed with error for visitor [%s] (consecutive errors: %d): %v", + p.pluginCtx.Name, p.consecutiveErrors, closeErr) + + // Exponential backoff: 60s, 120s, 240s, 300s (capped) + baseDelay := 60 * time.Second + reconnectDelay = baseDelay * time.Duration(1< 300*time.Second { + reconnectDelay = 300 * time.Second + } + } else { + // Reset consecutive errors on successful connection + if p.consecutiveErrors > 0 { + xl.Infof("connection closed normally for visitor [%s], resetting error counter (was %d)", + p.pluginCtx.Name, p.consecutiveErrors) + p.consecutiveErrors = 0 + } else { + xl.Infof("connection closed normally for visitor [%s]", p.pluginCtx.Name) + } + reconnectDelay = 10 * time.Second + } + + // The visitor closed the plugin side. Close the controller side. p.cleanupControllerConn(xl) xl.Infof("waiting %v before attempting reconnection for visitor [%s]...", reconnectDelay, p.pluginCtx.Name) @@ -184,7 +212,7 @@ func (p *VirtualNetPlugin) Close() error { } // Explicitly close the controller side of the pipe. - // This ensures the pipe is broken even if the run loop is stuck or HandleConn hasn't closed its end. + // This ensures the pipe is broken even if the run loop is stuck or the visitor hasn't closed its end. p.cleanupControllerConn(xl) xl.Infof("finished cleaning up connections during close for visitor [%s]", p.pluginCtx.Name) diff --git a/pkg/util/net/conn.go b/pkg/util/net/conn.go index 6946b1c2f14..914a7bb58e1 100644 --- a/pkg/util/net/conn.go +++ b/pkg/util/net/conn.go @@ -135,11 +135,11 @@ type CloseNotifyConn struct { // 1 means closed closeFlag int32 - closeFn func() + closeFn func(error) } -// closeFn will be only called once -func WrapCloseNotifyConn(c net.Conn, closeFn func()) net.Conn { +// closeFn will be only called once with the error (nil if Close() was called, non-nil if CloseWithError() was called) +func WrapCloseNotifyConn(c net.Conn, closeFn func(error)) *CloseNotifyConn { return &CloseNotifyConn{ Conn: c, closeFn: closeFn, @@ -151,12 +151,25 @@ func (cc *CloseNotifyConn) Close() (err error) { if pflag == 0 { err = cc.Conn.Close() if cc.closeFn != nil { - cc.closeFn() + cc.closeFn(nil) } } return } +// CloseWithError closes the connection and passes the error to the close callback. +func (cc *CloseNotifyConn) CloseWithError(err error) error { + pflag := atomic.SwapInt32(&cc.closeFlag, 1) + if pflag == 0 { + closeErr := cc.Conn.Close() + if cc.closeFn != nil { + cc.closeFn(err) + } + return closeErr + } + return nil +} + type StatsConn struct { net.Conn diff --git a/pkg/util/net/websocket.go b/pkg/util/net/websocket.go index 263b3a1d98d..3ca8b332299 100644 --- a/pkg/util/net/websocket.go +++ b/pkg/util/net/websocket.go @@ -32,7 +32,7 @@ func NewWebsocketListener(ln net.Listener) (wl *WebsocketListener) { muxer := http.NewServeMux() muxer.Handle(FrpWebsocketPath, websocket.Handler(func(c *websocket.Conn) { notifyCh := make(chan struct{}) - conn := WrapCloseNotifyConn(c, func() { + conn := WrapCloseNotifyConn(c, func(_ error) { close(notifyCh) }) wl.acceptCh <- conn From b27b846971cd9f7b08023314437fdafc939f6664 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 6 Nov 2025 14:05:03 +0800 Subject: [PATCH 290/444] config: add enabled field for individual proxy and visitor (#5048) --- Release.md | 1 + conf/frpc_full_example.toml | 9 +++++++++ pkg/config/load.go | 11 +++++++++++ pkg/config/v1/proxy.go | 7 +++++-- pkg/config/v1/visitor.go | 7 +++++-- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/Release.md b/Release.md index 18aa0182935..c346193f056 100644 --- a/Release.md +++ b/Release.md @@ -1,6 +1,7 @@ ## Features * HTTPS proxies now support load balancing groups. Multiple HTTPS proxies can be configured with the same `loadBalancer.group` and `loadBalancer.groupKey` to share the same custom domain and distribute traffic across multiple backend services, similar to the existing TCP and HTTP load balancing capabilities. +* Individual frpc proxies and visitors now accept an `enabled` flag (defaults to true), letting you disable specific entries without relying on the global `start` list—disabled blocks are skipped when client configs load. ## Improvements diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index 6b86907e459..ad7953beb56 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -143,6 +143,11 @@ transport.tls.enable = true # Default is empty, means all proxies. # start = ["ssh", "dns"] +# Alternative to 'start': You can control each proxy individually using the 'enabled' field. +# Set 'enabled = false' in a proxy configuration to disable it. +# If 'enabled' is not set or set to true, the proxy is enabled by default. +# The 'enabled' field provides more granular control and is recommended over 'start'. + # Specify udp packet size, unit is byte. If not set, the default value is 1500. # This parameter should be same between client and server. # It affects the udp and sudp proxy. @@ -169,6 +174,8 @@ metadatas.var2 = "123" # If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh' name = "ssh" type = "tcp" +# Enable or disable this proxy. true or omit this field to enable, false to disable. +# enabled = true localIP = "127.0.0.1" localPort = 22 # Limit bandwidth for this proxy, unit is KB and MB @@ -253,6 +260,8 @@ healthCheck.httpHeaders=[ [[proxies]] name = "web02" type = "https" +# Disable this proxy by setting enabled to false +# enabled = false localIP = "127.0.0.1" localPort = 8000 subdomain = "web02" diff --git a/pkg/config/load.go b/pkg/config/load.go index 3852af9a886..6e8c251de02 100644 --- a/pkg/config/load.go +++ b/pkg/config/load.go @@ -281,6 +281,17 @@ func LoadClientConfig(path string, strict bool) ( }) } + // Filter by enabled field in each proxy + // nil or true means enabled, false means disabled + proxyCfgs = lo.Filter(proxyCfgs, func(c v1.ProxyConfigurer, _ int) bool { + enabled := c.GetBaseConfig().Enabled + return enabled == nil || *enabled + }) + visitorCfgs = lo.Filter(visitorCfgs, func(c v1.VisitorConfigurer, _ int) bool { + enabled := c.GetBaseConfig().Enabled + return enabled == nil || *enabled + }) + if cliCfg != nil { if err := cliCfg.Complete(); err != nil { return nil, nil, nil, isLegacyFormat, err diff --git a/pkg/config/v1/proxy.go b/pkg/config/v1/proxy.go index 37701b6d785..1bbe5ac3c9c 100644 --- a/pkg/config/v1/proxy.go +++ b/pkg/config/v1/proxy.go @@ -108,8 +108,11 @@ type DomainConfig struct { } type ProxyBaseConfig struct { - Name string `json:"name"` - Type string `json:"type"` + Name string `json:"name"` + Type string `json:"type"` + // Enabled controls whether this proxy is enabled. nil or true means enabled, false means disabled. + // This allows individual control over each proxy, complementing the global "start" field. + Enabled *bool `json:"enabled,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` Transport ProxyTransport `json:"transport,omitempty"` // metadata info for each proxy diff --git a/pkg/config/v1/visitor.go b/pkg/config/v1/visitor.go index 7629875a6f2..5017f57d8d2 100644 --- a/pkg/config/v1/visitor.go +++ b/pkg/config/v1/visitor.go @@ -32,8 +32,11 @@ type VisitorTransport struct { } type VisitorBaseConfig struct { - Name string `json:"name"` - Type string `json:"type"` + Name string `json:"name"` + Type string `json:"type"` + // Enabled controls whether this visitor is enabled. nil or true means enabled, false means disabled. + // This allows individual control over each visitor, complementing the global "start" field. + Enabled *bool `json:"enabled,omitempty"` Transport VisitorTransport `json:"transport,omitempty"` SecretKey string `json:"secretKey,omitempty"` // if the server user is not set, it defaults to the current user From f736d171ac98db09061d78271edbfd3012c61834 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 18 Nov 2025 00:09:37 +0800 Subject: [PATCH 291/444] rotate gold sponsor order periodically (#5067) --- README.md | 19 ++++++++++--------- README_zh.md | 18 +++++++++--------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 299f9a3ccdc..0b88eb14b18 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,16 @@ frp is an open source project with its ongoing development made possible entirel

Gold Sponsors

+

+ + +
+ The sovereign cloud that puts you in control +
+ An open source, self-hosted alternative to public clouds, built for data ownership and privacy +
+

+
## Recall.ai - API for meeting recordings @@ -54,15 +64,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and Secure and Elastic Infrastructure for Running Your AI-Generated Code

-

- - -
- The sovereign cloud that puts you in control -
- An open source, self-hosted alternative to public clouds, built for data ownership and privacy -
-

## What is frp? diff --git a/README_zh.md b/README_zh.md index 82ac8a5004e..4426813a80a 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,6 +15,15 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

Gold Sponsors

+

+ + +
+ The sovereign cloud that puts you in control +
+ An open source, self-hosted alternative to public clouds, built for data ownership and privacy +
+

## Recall.ai - API for meeting recordings @@ -56,15 +65,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and Secure and Elastic Infrastructure for Running Your AI-Generated Code

-

- - -
- The sovereign cloud that puts you in control -
- An open source, self-hosted alternative to public clouds, built for data ownership and privacy -
-

## 为什么使用 frp ? From 66973a03dbe8e300f2607ad3ada8d515948bac93 Mon Sep 17 00:00:00 2001 From: Krzysztof Bogacki Date: Mon, 17 Nov 2025 17:20:21 +0100 Subject: [PATCH 292/444] Add `exec` value source type (#5050) * config: introduce ExecSource value source * auth: introduce OidcTokenSourceAuthProvider * auth: use OidcTokenSourceAuthProvider if tokenSource config is present on the client * cmd: allow exec token source only if CLI flag was passed --- client/admin_api.go | 2 +- client/service.go | 5 +++ cmd/frpc/sub/proxy.go | 11 +++-- cmd/frpc/sub/root.go | 27 ++++++++---- cmd/frpc/sub/verify.go | 5 ++- pkg/auth/auth.go | 10 +++-- pkg/auth/oidc.go | 45 ++++++++++++++++++++ pkg/config/v1/client.go | 8 ++++ pkg/config/v1/validation/client.go | 19 +++++++-- pkg/config/v1/value_source.go | 67 +++++++++++++++++++++++++++++- 10 files changed, 179 insertions(+), 20 deletions(-) diff --git a/client/admin_api.go b/client/admin_api.go index f161d588b4d..b726dc33b43 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -92,7 +92,7 @@ func (svr *Service) apiReload(w http.ResponseWriter, r *http.Request) { log.Warnf("reload frpc proxy config error: %s", res.Msg) return } - if _, err := validation.ValidateAllClientConfig(cliCfg, proxyCfgs, visitorCfgs); err != nil { + if _, err := validation.ValidateAllClientConfig(cliCfg, proxyCfgs, visitorCfgs, svr.unsafeFeatures); err != nil { res.Code = 400 res.Msg = err.Error() log.Warnf("reload frpc proxy config error: %s", res.Msg) diff --git a/client/service.go b/client/service.go index f906e4d0a82..60eb2d9030d 100644 --- a/client/service.go +++ b/client/service.go @@ -64,6 +64,8 @@ type ServiceOptions struct { ProxyCfgs []v1.ProxyConfigurer VisitorCfgs []v1.VisitorConfigurer + UnsafeFeatures v1.UnsafeFeatures + // ConfigFilePath is the path to the configuration file used to initialize. // If it is empty, it means that the configuration file is not used for initialization. // It may be initialized using command line parameters or called directly. @@ -122,6 +124,8 @@ type Service struct { visitorCfgs []v1.VisitorConfigurer clientSpec *msg.ClientSpec + unsafeFeatures v1.UnsafeFeatures + // The configuration file used to initialize this client, or an empty // string if no configuration file was used. configFilePath string @@ -161,6 +165,7 @@ func NewService(options ServiceOptions) (*Service, error) { webServer: webServer, common: options.Common, configFilePath: options.ConfigFilePath, + unsafeFeatures: options.UnsafeFeatures, proxyCfgs: options.ProxyCfgs, visitorCfgs: options.VisitorCfgs, clientSpec: options.ClientSpec, diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go index 67bd774f7a3..64c0aade486 100644 --- a/cmd/frpc/sub/proxy.go +++ b/cmd/frpc/sub/proxy.go @@ -77,7 +77,9 @@ func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.ClientComm fmt.Println(err) os.Exit(1) } - if _, err := validation.ValidateClientCommonConfig(clientCfg); err != nil { + + unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { fmt.Println(err) os.Exit(1) } @@ -88,7 +90,7 @@ func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.ClientComm fmt.Println(err) os.Exit(1) } - err := startService(clientCfg, []v1.ProxyConfigurer{c}, nil, "") + err := startService(clientCfg, []v1.ProxyConfigurer{c}, nil, unsafeFeatures, "") if err != nil { fmt.Println(err) os.Exit(1) @@ -106,7 +108,8 @@ func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v1.Client fmt.Println(err) os.Exit(1) } - if _, err := validation.ValidateClientCommonConfig(clientCfg); err != nil { + unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { fmt.Println(err) os.Exit(1) } @@ -117,7 +120,7 @@ func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v1.Client fmt.Println(err) os.Exit(1) } - err := startService(clientCfg, nil, []v1.VisitorConfigurer{c}, "") + err := startService(clientCfg, nil, []v1.VisitorConfigurer{c}, unsafeFeatures, "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index ee89c48947a..b9a373b16b6 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -21,6 +21,7 @@ import ( "os" "os/signal" "path/filepath" + "slices" "sync" "syscall" "time" @@ -36,11 +37,18 @@ import ( "github.com/fatedier/frp/pkg/util/version" ) +type UnsafeFeature = string + +const ( + TokenSourceExec UnsafeFeature = "TokenSourceExec" +) + var ( cfgFile string cfgDir string showVersion bool strictConfigMode bool + allowUnsafe []UnsafeFeature ) func init() { @@ -48,6 +56,7 @@ func init() { rootCmd.PersistentFlags().StringVarP(&cfgDir, "config_dir", "", "", "config directory, run one frpc service for each file in config directory") rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frpc") rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", true, "strict config parsing mode, unknown fields will cause an errors") + rootCmd.PersistentFlags().StringSliceVarP(&allowUnsafe, "allow_unsafe", "", []string{}, "allowed unsafe features, one or more of: TokenSourceExec") } var rootCmd = &cobra.Command{ @@ -59,15 +68,17 @@ var rootCmd = &cobra.Command{ return nil } + unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + // If cfgDir is not empty, run multiple frpc service for each config file in cfgDir. // Note that it's only designed for testing. It's not guaranteed to be stable. if cfgDir != "" { - _ = runMultipleClients(cfgDir) + _ = runMultipleClients(cfgDir, unsafeFeatures) return nil } // Do not show command usage here. - err := runClient(cfgFile) + err := runClient(cfgFile, unsafeFeatures) if err != nil { fmt.Println(err) os.Exit(1) @@ -76,7 +87,7 @@ var rootCmd = &cobra.Command{ }, } -func runMultipleClients(cfgDir string) error { +func runMultipleClients(cfgDir string, unsafeFeatures v1.UnsafeFeatures) error { var wg sync.WaitGroup err := filepath.WalkDir(cfgDir, func(path string, d fs.DirEntry, err error) error { if err != nil || d.IsDir() { @@ -86,7 +97,7 @@ func runMultipleClients(cfgDir string) error { time.Sleep(time.Millisecond) go func() { defer wg.Done() - err := runClient(path) + err := runClient(path, unsafeFeatures) if err != nil { fmt.Printf("frpc service error for config file [%s]\n", path) } @@ -111,7 +122,7 @@ func handleTermSignal(svr *client.Service) { svr.GracefulClose(500 * time.Millisecond) } -func runClient(cfgFilePath string) error { +func runClient(cfgFilePath string, unsafeFeatures v1.UnsafeFeatures) error { cfg, proxyCfgs, visitorCfgs, isLegacyFormat, err := config.LoadClientConfig(cfgFilePath, strictConfigMode) if err != nil { return err @@ -127,20 +138,21 @@ func runClient(cfgFilePath string) error { } } - warning, err := validation.ValidateAllClientConfig(cfg, proxyCfgs, visitorCfgs) + warning, err := validation.ValidateAllClientConfig(cfg, proxyCfgs, visitorCfgs, unsafeFeatures) if warning != nil { fmt.Printf("WARNING: %v\n", warning) } if err != nil { return err } - return startService(cfg, proxyCfgs, visitorCfgs, cfgFilePath) + return startService(cfg, proxyCfgs, visitorCfgs, unsafeFeatures, cfgFilePath) } func startService( cfg *v1.ClientCommonConfig, proxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer, + unsafeFeatures v1.UnsafeFeatures, cfgFile string, ) error { log.InitLogger(cfg.Log.To, cfg.Log.Level, int(cfg.Log.MaxDays), cfg.Log.DisablePrintColor) @@ -153,6 +165,7 @@ func startService( Common: cfg, ProxyCfgs: proxyCfgs, VisitorCfgs: visitorCfgs, + UnsafeFeatures: unsafeFeatures, ConfigFilePath: cfgFile, }) if err != nil { diff --git a/cmd/frpc/sub/verify.go b/cmd/frpc/sub/verify.go index 4b971f531c7..2198114cbd7 100644 --- a/cmd/frpc/sub/verify.go +++ b/cmd/frpc/sub/verify.go @@ -17,10 +17,12 @@ package sub import ( "fmt" "os" + "slices" "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" + v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" ) @@ -42,7 +44,8 @@ var verifyCmd = &cobra.Command{ fmt.Println(err) os.Exit(1) } - warning, err := validation.ValidateAllClientConfig(cliCfg, proxyCfgs, visitorCfgs) + unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + warning, err := validation.ValidateAllClientConfig(cliCfg, proxyCfgs, visitorCfgs, unsafeFeatures) if warning != nil { fmt.Printf("WARNING: %v\n", warning) } diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go index b954fc80eaa..64462a2085c 100644 --- a/pkg/auth/auth.go +++ b/pkg/auth/auth.go @@ -32,9 +32,13 @@ func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter, err error) { case v1.AuthMethodToken: authProvider = NewTokenAuth(cfg.AdditionalScopes, cfg.Token) case v1.AuthMethodOIDC: - authProvider, err = NewOidcAuthSetter(cfg.AdditionalScopes, cfg.OIDC) - if err != nil { - return nil, err + if cfg.OIDC.TokenSource != nil { + authProvider = NewOidcTokenSourceAuthSetter(cfg.AdditionalScopes, cfg.OIDC.TokenSource) + } else { + authProvider, err = NewOidcAuthSetter(cfg.AdditionalScopes, cfg.OIDC) + if err != nil { + return nil, err + } } default: return nil, fmt.Errorf("unsupported auth method: %s", cfg.Method) diff --git a/pkg/auth/oidc.go b/pkg/auth/oidc.go index c5f636402c8..d9377f324c0 100644 --- a/pkg/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -152,6 +152,51 @@ func (auth *OidcAuthProvider) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (e return err } +type OidcTokenSourceAuthProvider struct { + additionalAuthScopes []v1.AuthScope + + valueSource *v1.ValueSource +} + +func NewOidcTokenSourceAuthSetter(additionalAuthScopes []v1.AuthScope, valueSource *v1.ValueSource) *OidcTokenSourceAuthProvider { + return &OidcTokenSourceAuthProvider{ + additionalAuthScopes: additionalAuthScopes, + valueSource: valueSource, + } +} + +func (auth *OidcTokenSourceAuthProvider) generateAccessToken() (accessToken string, err error) { + ctx := context.Background() + accessToken, err = auth.valueSource.Resolve(ctx) + if err != nil { + return "", fmt.Errorf("couldn't acquire OIDC token for login: %v", err) + } + return +} + +func (auth *OidcTokenSourceAuthProvider) SetLogin(loginMsg *msg.Login) (err error) { + loginMsg.PrivilegeKey, err = auth.generateAccessToken() + return err +} + +func (auth *OidcTokenSourceAuthProvider) SetPing(pingMsg *msg.Ping) (err error) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeHeartBeats) { + return nil + } + + pingMsg.PrivilegeKey, err = auth.generateAccessToken() + return err +} + +func (auth *OidcTokenSourceAuthProvider) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (err error) { + if !slices.Contains(auth.additionalAuthScopes, v1.AuthScopeNewWorkConns) { + return nil + } + + newWorkConnMsg.PrivilegeKey, err = auth.generateAccessToken() + return err +} + type TokenVerifier interface { Verify(context.Context, string) (*oidc.IDToken, error) } diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index c6cf97a69be..72a19fb3c43 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -239,8 +239,16 @@ type AuthOIDCClientConfig struct { // Supports http, https, socks5, and socks5h proxy protocols. // If empty, no proxy is used for OIDC connections. ProxyURL string `json:"proxyURL,omitempty"` + + // TokenSource specifies a custom dynamic source for the authorization token. + // This is mutually exclusive with every other field of this structure. + TokenSource *ValueSource `json:"tokenSource,omitempty"` } type VirtualNetConfig struct { Address string `json:"address,omitempty"` } + +type UnsafeFeatures struct { + TokenSourceExec bool +} diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index 0c8575c990c..7734a5a4a94 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -26,7 +26,7 @@ import ( "github.com/fatedier/frp/pkg/featuregate" ) -func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { +func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures v1.UnsafeFeatures) (Warning, error) { var ( warnings Warning errs error @@ -52,11 +52,24 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { // Validate tokenSource if specified if c.Auth.TokenSource != nil { + if c.Auth.TokenSource.Type == "exec" && !unsafeFeatures.TokenSourceExec { + errs = AppendError(errs, fmt.Errorf("unsafe 'exec' not allowed for auth.tokenSource.type")) + } if err := c.Auth.TokenSource.Validate(); err != nil { errs = AppendError(errs, fmt.Errorf("invalid auth.tokenSource: %v", err)) } } + if c.Auth.OIDC.TokenSource != nil { + // Validate oidc.tokenSource mutual exclusivity with other fields of oidc + if c.Auth.OIDC.ClientID != "" || c.Auth.OIDC.ClientSecret != "" || c.Auth.OIDC.Audience != "" || c.Auth.OIDC.Scope != "" || c.Auth.OIDC.TokenEndpointURL != "" || len(c.Auth.OIDC.AdditionalEndpointParams) > 0 || c.Auth.OIDC.TrustedCaFile != "" || c.Auth.OIDC.InsecureSkipVerify || c.Auth.OIDC.ProxyURL != "" { + errs = AppendError(errs, fmt.Errorf("cannot specify both auth.oidc.tokenSource and any other field of auth.oidc")) + } + if c.Auth.OIDC.TokenSource.Type == "exec" && !unsafeFeatures.TokenSourceExec { + errs = AppendError(errs, fmt.Errorf("unsafe 'exec' not allowed for auth.oidc.tokenSource.type")) + } + } + if err := validateLogConfig(&c.Log); err != nil { errs = AppendError(errs, err) } @@ -101,10 +114,10 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { return warnings, errs } -func ValidateAllClientConfig(c *v1.ClientCommonConfig, proxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer) (Warning, error) { +func ValidateAllClientConfig(c *v1.ClientCommonConfig, proxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer, unsafeFeatures v1.UnsafeFeatures) (Warning, error) { var warnings Warning if c != nil { - warning, err := ValidateClientCommonConfig(c) + warning, err := ValidateClientCommonConfig(c, unsafeFeatures) warnings = AppendError(warnings, warning) if err != nil { return warnings, err diff --git a/pkg/config/v1/value_source.go b/pkg/config/v1/value_source.go index 624a2658965..88dbaff3641 100644 --- a/pkg/config/v1/value_source.go +++ b/pkg/config/v1/value_source.go @@ -19,6 +19,7 @@ import ( "errors" "fmt" "os" + "os/exec" "strings" ) @@ -27,6 +28,7 @@ import ( type ValueSource struct { Type string `json:"type"` File *FileSource `json:"file,omitempty"` + Exec *ExecSource `json:"exec,omitempty"` } // FileSource specifies how to load a value from a file. @@ -34,6 +36,18 @@ type FileSource struct { Path string `json:"path"` } +// ExecSource specifies how to get a value from another program launched as subprocess. +type ExecSource struct { + Command string `json:"command"` + Args []string `json:"args,omitempty"` + Env []ExecEnvVar `json:"env,omitempty"` +} + +type ExecEnvVar struct { + Name string `json:"name"` + Value string `json:"value"` +} + // Validate validates the ValueSource configuration. func (v *ValueSource) Validate() error { if v == nil { @@ -46,8 +60,13 @@ func (v *ValueSource) Validate() error { return errors.New("file configuration is required when type is 'file'") } return v.File.Validate() + case "exec": + if v.Exec == nil { + return errors.New("exec configuration is required when type is 'exec'") + } + return v.Exec.Validate() default: - return fmt.Errorf("unsupported value source type: %s (only 'file' is supported)", v.Type) + return fmt.Errorf("unsupported value source type: %s (only 'file' and 'exec' are supported)", v.Type) } } @@ -60,6 +79,8 @@ func (v *ValueSource) Resolve(ctx context.Context) (string, error) { switch v.Type { case "file": return v.File.Resolve(ctx) + case "exec": + return v.Exec.Resolve(ctx) default: return "", fmt.Errorf("unsupported value source type: %s", v.Type) } @@ -91,3 +112,47 @@ func (f *FileSource) Resolve(_ context.Context) (string, error) { // Trim whitespace, which is important for file-based tokens return strings.TrimSpace(string(content)), nil } + +// Validate validates the ExecSource configuration. +func (e *ExecSource) Validate() error { + if e == nil { + return errors.New("execSource cannot be nil") + } + + if e.Command == "" { + return errors.New("exec command cannot be empty") + } + + for _, env := range e.Env { + if env.Name == "" { + return errors.New("exec env name cannot be empty") + } + if strings.Contains(env.Name, "=") { + return errors.New("exec env name cannot contain '='") + } + } + return nil +} + +// Resolve reads and returns the content captured from stdout of launched subprocess. +func (e *ExecSource) Resolve(ctx context.Context) (string, error) { + if err := e.Validate(); err != nil { + return "", err + } + + cmd := exec.CommandContext(ctx, e.Command, e.Args...) + if len(e.Env) != 0 { + cmd.Env = os.Environ() + for _, env := range e.Env { + cmd.Env = append(cmd.Env, env.Name+"="+env.Value) + } + } + + content, err := cmd.Output() + if err != nil { + return "", fmt.Errorf("failed to execute command %v: %v", e.Command, err) + } + + // Trim whitespace, which is important for exec-based tokens + return strings.TrimSpace(string(content)), nil +} From 15fd19a16db3348b495716a5a5b41f1646e38838 Mon Sep 17 00:00:00 2001 From: fatedier Date: Tue, 18 Nov 2025 01:11:44 +0800 Subject: [PATCH 293/444] fix lint (#5068) --- .golangci.yml | 1 + cmd/frpc/sub/proxy.go | 4 ++-- cmd/frpc/sub/root.go | 13 +++---------- cmd/frpc/sub/verify.go | 3 +-- pkg/config/v1/client.go | 18 +++++++++++++++++- pkg/config/v1/validation/client.go | 15 +++++++++++---- 6 files changed, 35 insertions(+), 19 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 3ba2c60fe63..f7c0e8bdc45 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -39,6 +39,7 @@ linters: - G404 - G501 - G115 + - G204 severity: low confidence: low govet: diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go index 64c0aade486..0b0251a2650 100644 --- a/cmd/frpc/sub/proxy.go +++ b/cmd/frpc/sub/proxy.go @@ -78,7 +78,7 @@ func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.ClientComm os.Exit(1) } - unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { fmt.Println(err) os.Exit(1) @@ -108,7 +108,7 @@ func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v1.Client fmt.Println(err) os.Exit(1) } - unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index b9a373b16b6..68d69158e6d 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -21,7 +21,6 @@ import ( "os" "os/signal" "path/filepath" - "slices" "sync" "syscall" "time" @@ -37,18 +36,12 @@ import ( "github.com/fatedier/frp/pkg/util/version" ) -type UnsafeFeature = string - -const ( - TokenSourceExec UnsafeFeature = "TokenSourceExec" -) - var ( cfgFile string cfgDir string showVersion bool strictConfigMode bool - allowUnsafe []UnsafeFeature + allowUnsafe []string ) func init() { @@ -56,7 +49,7 @@ func init() { rootCmd.PersistentFlags().StringVarP(&cfgDir, "config_dir", "", "", "config directory, run one frpc service for each file in config directory") rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frpc") rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", true, "strict config parsing mode, unknown fields will cause an errors") - rootCmd.PersistentFlags().StringSliceVarP(&allowUnsafe, "allow_unsafe", "", []string{}, "allowed unsafe features, one or more of: TokenSourceExec") + rootCmd.PersistentFlags().StringSliceVarP(&allowUnsafe, "allow-unsafe", "", []string{}, "allowed unsafe features, one or more of: TokenSourceExec") } var rootCmd = &cobra.Command{ @@ -68,7 +61,7 @@ var rootCmd = &cobra.Command{ return nil } - unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) // If cfgDir is not empty, run multiple frpc service for each config file in cfgDir. // Note that it's only designed for testing. It's not guaranteed to be stable. diff --git a/cmd/frpc/sub/verify.go b/cmd/frpc/sub/verify.go index 2198114cbd7..c0c9d0e275f 100644 --- a/cmd/frpc/sub/verify.go +++ b/cmd/frpc/sub/verify.go @@ -17,7 +17,6 @@ package sub import ( "fmt" "os" - "slices" "github.com/spf13/cobra" @@ -44,7 +43,7 @@ var verifyCmd = &cobra.Command{ fmt.Println(err) os.Exit(1) } - unsafeFeatures := v1.UnsafeFeatures{TokenSourceExec: slices.Contains(allowUnsafe, TokenSourceExec)} + unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) warning, err := validation.ValidateAllClientConfig(cliCfg, proxyCfgs, visitorCfgs, unsafeFeatures) if warning != nil { fmt.Printf("WARNING: %v\n", warning) diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index 72a19fb3c43..8528ff7e149 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -249,6 +249,22 @@ type VirtualNetConfig struct { Address string `json:"address,omitempty"` } +const ( + UnsafeFeatureTokenSourceExec = "TokenSourceExec" +) + type UnsafeFeatures struct { - TokenSourceExec bool + features map[string]bool +} + +func NewUnsafeFeatures(allowed []string) UnsafeFeatures { + features := make(map[string]bool) + for _, f := range allowed { + features[f] = true + } + return UnsafeFeatures{features: features} +} + +func (u UnsafeFeatures) IsEnabled(feature string) bool { + return u.features[feature] } diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index 7734a5a4a94..1c21f01d427 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -52,7 +52,7 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures v1.Unsa // Validate tokenSource if specified if c.Auth.TokenSource != nil { - if c.Auth.TokenSource.Type == "exec" && !unsafeFeatures.TokenSourceExec { + if c.Auth.TokenSource.Type == "exec" && !unsafeFeatures.IsEnabled(v1.UnsafeFeatureTokenSourceExec) { errs = AppendError(errs, fmt.Errorf("unsafe 'exec' not allowed for auth.tokenSource.type")) } if err := c.Auth.TokenSource.Validate(); err != nil { @@ -62,10 +62,12 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures v1.Unsa if c.Auth.OIDC.TokenSource != nil { // Validate oidc.tokenSource mutual exclusivity with other fields of oidc - if c.Auth.OIDC.ClientID != "" || c.Auth.OIDC.ClientSecret != "" || c.Auth.OIDC.Audience != "" || c.Auth.OIDC.Scope != "" || c.Auth.OIDC.TokenEndpointURL != "" || len(c.Auth.OIDC.AdditionalEndpointParams) > 0 || c.Auth.OIDC.TrustedCaFile != "" || c.Auth.OIDC.InsecureSkipVerify || c.Auth.OIDC.ProxyURL != "" { + if c.Auth.OIDC.ClientID != "" || c.Auth.OIDC.ClientSecret != "" || c.Auth.OIDC.Audience != "" || + c.Auth.OIDC.Scope != "" || c.Auth.OIDC.TokenEndpointURL != "" || len(c.Auth.OIDC.AdditionalEndpointParams) > 0 || + c.Auth.OIDC.TrustedCaFile != "" || c.Auth.OIDC.InsecureSkipVerify || c.Auth.OIDC.ProxyURL != "" { errs = AppendError(errs, fmt.Errorf("cannot specify both auth.oidc.tokenSource and any other field of auth.oidc")) } - if c.Auth.OIDC.TokenSource.Type == "exec" && !unsafeFeatures.TokenSourceExec { + if c.Auth.OIDC.TokenSource.Type == "exec" && !unsafeFeatures.IsEnabled(v1.UnsafeFeatureTokenSourceExec) { errs = AppendError(errs, fmt.Errorf("unsafe 'exec' not allowed for auth.oidc.tokenSource.type")) } } @@ -114,7 +116,12 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures v1.Unsa return warnings, errs } -func ValidateAllClientConfig(c *v1.ClientCommonConfig, proxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer, unsafeFeatures v1.UnsafeFeatures) (Warning, error) { +func ValidateAllClientConfig( + c *v1.ClientCommonConfig, + proxyCfgs []v1.ProxyConfigurer, + visitorCfgs []v1.VisitorConfigurer, + unsafeFeatures v1.UnsafeFeatures, +) (Warning, error) { var warnings Warning if c != nil { warning, err := ValidateClientCommonConfig(c, unsafeFeatures) From c3821202b1b0c3931a9ecbe03368716a6ca792dc Mon Sep 17 00:00:00 2001 From: fatedier Date: Wed, 26 Nov 2025 23:55:54 +0800 Subject: [PATCH 294/444] docs: remove zsxq section (#5077) --- README_zh.md | 6 ------ doc/pic/zsxq.jpg | Bin 12647 -> 0 bytes 2 files changed, 6 deletions(-) delete mode 100644 doc/pic/zsxq.jpg diff --git a/README_zh.md b/README_zh.md index 4426813a80a..1c3879fd67f 100644 --- a/README_zh.md +++ b/README_zh.md @@ -137,9 +137,3 @@ frp 是一个免费且开源的项目,我们欢迎任何人为其开发和进 国内用户可以通过 [爱发电](https://afdian.com/a/fatedier) 赞助我们。 企业赞助者可以将贵公司的 Logo 以及链接放置在项目 README 文件中。 - -### 知识星球 - -如果您想了解更多 frp 相关技术以及更新详解,或者寻求任何 frp 使用方面的帮助,都可以通过微信扫描下方的二维码付费加入知识星球的官方社群: - -![zsxq](/doc/pic/zsxq.jpg) diff --git a/doc/pic/zsxq.jpg b/doc/pic/zsxq.jpg deleted file mode 100644 index 0bb1f1d516de893fb25d971fa164ff6deb8c93dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12647 zcmb_?cU%)s*YAde7Ni&HB0V5T@4XX33jw8A=!8xv3Q7?X={59#2!swQ(gjpRse&|> zA_7tb1f(g7!d>uJp8LMfANP;D`Rwd>&zw1JW@qLM9KAo91?Z4^hI#-50ss*32OQ1Q zRvT(-Uok_Q>KUSRPbz2$_P)NJBy<4aud2`w6@_P{{-@r0F(e5AZ739@2hEM zh62Fr@8>c8_xkqsSULcViXF@Pm;V2R=$)MX9YF)lKyC*oe@8D6*8>17%F!1W003kP zAf4}8fbTK312Gd0G!VqT$Jq4`jylE;e{l8*4+gCb@>Bx=#VLDxoGSp(G=p@WAV*hF z4$XTIOL#kBy#auh0>o;LZuU+fHURNCFE5{C4DtcO4*wy?^*^w^y~95;?d@Iv!GC-K zTY`#pu>QWD_Q5AF|33>a&pZ($ARb%e^;P~MdHI9r#5QP*8`ki+Eodh+H^2>Z+{edqsvYf5>}LgWv$MD6UonARcJ{w` zY}<)nPR=^IAO?MhzH#=p{L5eHtZ#tUv99B`+rFMB-v-DJgFAcbAJch3%;_Iw@mE`z zS^y4nOb6|RnfL~n9mf!~6XxJ1sJ z(F5!O9N-E#17d$s{%&#Mq{bU8Er1YU9q{x?k%^a=%PJ?0AhTP_dn z-<)K+WIAL9WO`%>7&}Z2rVK-Yr3QFQ!4zPMe_Q)6Kj{+bFzGz$IO#0u#1(8L?r)C2 zea+9;6)WJRS%B5>*l_62JaP32?q10FGNg+s8K;hjn!e;L!wUerFy-Z%6TSJW>*p ziU4rDjvVsEIRs^u#*` z;)4FjgB?Fe0XRSleo<@yH^2u7gZ@YXa)2_R0q6oqz!bm$*1%y7$Izs zGY|oYC`1aP08xYJLQoJi#2RuH;tKJG1VU~?ZbRZBX^>pVeMkl55u^q39MTIJhD<=_ zAS;k<$WIa|$te;h5-t)!lJg`AB$^~fBp8xQB(5ZWBq1bGBuOOMBt<0EB#k7`N%~2~ zNoGmbNcNxrlnTlMJqs0sDnPZNrcfKG3ls+pgT_HKp+(SIXe-#yqtIFC7w8Wd8H^Fe z0}}&BumQ{x<_PnHg~1YFxv+9rBdiNH3Y&v{g&mSolX8-Zk}8oJl3pZrCA~%(O`1ts zO4>mB68xGLNxzYik+F~ok;#K!qcxd3*$uJ;vV5`!WY5Tk$v%M`1(ZO%X|vNl{7BK`}zHOmRR-M=3z5L}^Ot zL>Ww(Oj$zNN;yQiNO=IKhYP_~;TX6({1!YLUJHK-pN8*HQBmnJVW}dhvZ)?Y z^-#@G{W!&NO5~LGDZ5jFr;<*UoqBd^;?xc`HMJnM2DJ@!0Cf^|1@#N+8R~r+MjCM% zLmDTVaGE@tMw$_t4O&WC0a{Jk%d{c1nY52-hiJdhQPK(0Y17%$h0*2Fwa~qz+oNZs zm!vnP_o7drucYs#|I9$nAjqK0;KUHcP|Wax;S(d2k&jWE(UI{sV+rF+#ziJFCLtz6 zCU>TIrW&R}rmxHl%reYY%-5OonA@3WS)eR}EQTzeEXgc&EN@wUp5{8OdD{7O?CILm zBd5Q!aP7+QLPBiBY&SK61&OI(}E`2Uvt{koxTwl0ZxHY)lx$)c`+$(1o�Zjp244a zdS;b}nMaeylP8;}i|6ZE&a(z*1JB++J9zehSBTe=H~G(R|V2bEM}K&v~CKI`>ZOl$fSikXV)2oH&a( zN<31$Nqplx|9PA9spq@TA4*v~XGtTHm#mv_rL@=|FY#b>egebs2Omb#rxR^mz4L^{Vu~ z>dWfi(0^t?YG7oLYVgjG%h1uV!tg6n9vO=4GCE~sVU%k$j}k%QP_4!!#z^CI<7pEC z6K|6yQ^3^FG~M)rnUI;E*%Nazb2IZi^Ch$-`X;*Dg3;oNMWw|zj20#tGi51k8EDyQ zMQdeeRblo0g3g7s3$qu`Uktt2Z_RFvwQjZ{x3RJ*wb`@Pwau_yw3D@qwtIU?=+gB| zy_eZ9dtPq8LVLyj%Hyk~S1(+xy!y-D)V|1m&%w}v;PBN^+cC>=%}K)v@3i8q>YV1h z?4s(D=JMH9)ivF9#ZBEU)9njZ8=H&WayM|l=lcjBus?5dTa5%>hi{hJ7GVIPgy3T##B&UeNwEt80(1 z(_i<#J`gMt92>kGq8CEE0lVRNqx0t3o40Pxg=&W04}*j`gms4Vg-3-iM(9VB--6%r zxb-?xA~G#<_x6R`tx;T25mBG+=-;V|risQyzq_k^_g)Mv1{*UND;=8?dl=^w*B37l zpBeuv!7-sPQ8F<*@hHh9X)swXxgdos#XIF~s(Na98hu(w+NX5m^hP`nJ`TT|aV4WS zQzr9X7Cb93Yc?B|-JHXplali**DZHEPb=>Mfs+tR_@3{SKT@DkP2G%hBas74j7om7JByRU}n`RV&qY z)o*HaYMN`sYVSW_c@X~)co_I__0iQwZ|jWeIv*=MuB{iSCp0iN#5F=1gB!m#xi!r; zTQ?84AX_?Hm0KI0h(9T7JKL7m&fK2d0q=iLbnlt(voFtGpMUDS(mD0w;)}5^ z^RB^{MlX9_>AiZ_)ji)QYQxhwIDd&u4_L7fQR5M1Y+t4065;NV>AE~Y3YA% zkaB$ayGTo&0LUpExHZ{7I@;j^0PDU{I>^} zFNlyqoaL3!l$23aR#Q_G5Z5u(RxyxQRZ~8C22fD|)4((YLJu5uf!PxM`8_~qo$k2Gx%1wJk8Wi=GPz>N-Vb%pFYv6vvv>ftLFeT69ro|L;Ph zvJF!3(pFI`;Bw-;0HNBBk>K2w~UViUg+ zo9B?RLjK-w*Pme~x`$jydGky16ZekSz52$6(JXx|4MJKyLalyt>`j*@#N3hnPbEdZ zJPUOOpU?$tG_t)8PEIlgi%L_SKPuGy|_(UlFc(Gu4sfzw90Hrav3 z83G2+5&TX*s|jkq>WAW7)jN_qxc>`M{+6*W8l);U-Ih19bO~WD&XjM>@0IL?Jc%-I zk{!N5KYpmsxIQa8sIa~UKFB1KKKCW|%kRf8e%id5{#Bh&H_c`cxX51~(9>6JJ3M{< zcjbk*rt^uV>l}h%xw{|K?g{^7$N)Z>AT)$&Rn2K;ZoFZY%At^YyqNst>krzE*0$4%s<{N;20@HMAy% zg#{tg5Y46yQb6?uS45I`FC9a5_*o=I0hmVgFrS40`vKNY1Fl-7743y_{jV?E;%s*{j z^6p+FzI>JQ?2WnDx9CW+YM%s12QSvRaAZ-zef-6F!RXb5KEwhlGEm?uL6q%PnA_*C zt?igvBTR+`!LBdI?_p#iS&HV6hDy zB51Q%3viPiT6Uc+B&>8NseEd<_MZ1kg|tFt95EQRT_4@xit{HVE4-`s*}G5`7A-T| zgC%mi-LMKsDaht>VD8F#B2PE)D&MX|qFwP-z-IDx(xg!6H;fa@$D#w;#mJE=>eCg7TNejv0t%#E8Olu$|DhOD=TF^N^v-)K}KYYG;OE=4LMCfxPrYm31 z?%}tltderkR=sWqhcnNgj<9W}CO2kp|7fhG4P=IYDJhQ4bR#Ydob4(p5uogg{xLFuOoo56g(`_HEoV+lhoRoGirxXWl=(X%SMl6Sal zKebAC@HVtz8Q(c$f9}!P4O+w-nyQLWvKc5fnv?rDU7gDa$WOAGetHltVk$ArrZU^4W-!Hg!tsMc(XX4JaQcK}dUkELfO`IE$7n8t5 z7W(Duc*}iukbEA#+gG+H7PhC`a5954F}s&9o{p8?V==q)1cdMkIlNChZ7Jg5?(J@$A@{>mphkhuKymtv!si~VkMo>!4Xf1hV&~pi#0J^r zJ2eJG1Ug+^4!tjL7uHu!C1==p5AR!Y`kqj>Vp;nr)N{Qa_uvVy)@WLK7~0!@TxG>e zbDjV&=0Aj)l*^t*s0e44*Wqh=u>uPCDkVeMUYFCu+8_N5IpeP%z7VuFpgfh~Q_k37 zS}8JQ-0pM5qCwF~=2ML^3do`y2}EctbL@BB{x1QF_K&y3P6#btFil0C@iHzidB7t~ zXYlbI$FI}f-jxyl(Ye1@-p{MC5nbT(r(EP zUJa;2TAOM8NPrPiv*%U2j1=z@oL_Oioy2E2m<5uPf7c)Cu*^A}`&bdPHg(O5Y&Jj0 z20!^`&1=o7ROT9v{0cU1a+%nnOC0&b&?H!V0P7l(D~Gy8<-8V7pN={>HBqY?heo^HdN z$`0)q?|Xus;}RQ1ifPYzW*Kl{Zv9tUy`FdnO9fKmxNPm8_h-V{4f!4nIQCJGdrkYV zrj_-lZQF`-;hysu@C5$o5;<+zgsLr#mloHV%!~qZu3BU`nj8TNvC=51K_k@tw!M)Q z>0P~xCp((b2g-HxVIeizi=+lwn4ZydHM%?r*Pd>29n#8t!oWUNwhrI`)ZCg}rYQ zt7vk;j=~gH72TImq|}N-rn!ppiDlk{MwX&+!N~jt#PiatSP`VJ@>7WzA6l=#aYC4w(%;pnMiRZ-?a4ftQ34G9PEI`(E+#>K7rP|Q;sv+K8@j1k7sHMQ=$4z z^roN5lGk^-y8<#qcY|LapE0h*>NaSkwJ+qfc$|HSQ6wrlJ5zKrf7tjnEYjk&YW!UM zg{5_3CF$o|Ps;{Kv;-g)D0L!BM=+4F znmWGIlmxG;nni_qTT>^qK0NtO`ZAk$z1X3s%#N^a4O^`DPXPye5#_c&I9re|NO7`_W<+SN5PUe~E%TM#*}Nwt#lK_6%hId76b5nR1eduU?oGs# zaK&(Y^Q#|&xU|+P`v;N6Ml#Xai%jiR{HsEIznqE`b*@|&C&+xls{L~Qb^b$Nd5&T(R1;dWsn^1L7zcSa3{8*xj&LQ9f zOOaYBGd23?h%N5snMa#_p^tTg?#YTueM(Xz-jQJ}Apy4d`lPsN-x35I?w`HGrNI@Z zd^ljb-sjPnSSV1&soj@uR9pR+Ana5HRrpB1<33X-@A#Oyw;v^S5s4}KYVtF7CGuvG z@yTk!8NAZUj8WFjBV+`dGE6SE%p&w_2~fg1o7*n@5@{AYu`f12sgM{!6cu6}T|SoM`P-H~mGn&HSP@h0)@b@cQDvA(P`+GdsdGVAHmL}bQxn8g@iWBE4Z(=s-&8v_^#<07+CO0I8`$wc_Mn`LZ#Jp}$4>07t zYFm+uut^_Wkl_4CZW5%hmGryGuKLnxJ`7cyy#?CDgSKC+zE}il2;d|1n8=f(P(ohH zB!tiI*jPo^xIh8%*9Z~5XR}oU`XXJ6W%I)_u2(XOlX9 zCa^||#9fbh5Qq(bNER+MF_vVn^0*2-$y@Gs>r;3$!L|!OtW!UQ9dCa40i7z(Bi!#c zP*>WJ6A`e=Iw-Trp#ttA$B%%8BY^YT!u815{$8uu(h7m|%|q%0iVYI~GH!*P*b>eC zhM(+en2%dJ47Xk^UJ%Q$x}$q8ikw#Xang6gjktXkoFfKaKuocO4tdilZ+9l2zG!K~{d z9nMC#Oq4oI+PDvc#*zh%hCl@(~^ks!;;3R$9IU%iY7El z8@$yi)tCy+A$`-Qh}W+=kbQxUrD5qT>qN79mqbMaOmW6Lc2bYU0(Zi2Mp|{?S~>%= z=Cy7SiuZDvnY;CPnGO0O&Vt}-zr>r@aVzsW8K)>tau^L22oO;)o!~pMS?O<^Z~R@&}eXKEjLd%3G$nIgUY6eCOV z#sHPC;hm_myotOw0ShaGFWxaIoNPC$*4i-TBOZ_ImsaX(d94@aGQ?hz6sn+Z8uXOK z^<2^_Y%mblwZrpXfm6XZomRJERN3pFm@MGDFHsL5?kMya#XaK_P*m8O6!*|-Tc7e4 z$JuATM^D=-*$8L=z~JHgcMazhZB2qF8inpZ`@T2wa) z_R$a0^p{rz>jA7*?-gSjy1gZ}pU~@iJA2C&y?I+m@}$evzHwNxAk`F3m-91ZT&-mh zXBC_DS;O=OpJ{^M>a<08ax}x?*|xQ!bT@T9=})*d|ugWwB@g zDgI4$;_)G+PdbLy8HIIP%jnj0WCCFc_yreqzPBMxuipa0PAX!q7{jIC? zWO`Fqz8qc}7@kqd-=_Gag5`r!U~YP?T+?M_3d3Yp3S%;@ow3_@*ul$)Dn;TUbUY_#N@2$O*V$B8_Z!Na@i`FYwPG@?%5M_3}TH7gw z3FyIU#y4lqGUSR)nGzmNHI7T{G+38j5Ko!MXk`}F@RaX+%O}V!R5#Hc=(n!8-1Q!v z*ez85>R(kjHAm}-6H|;0?htK|7LgSH(%&-}hY+P??F*3$ASg{9{ zXt&zg+>ZOGq`Vy3_)YhM-&7VegY{ieZ-jAk5#GhAWdifAwt#1&M+}VeJMp(VRGv>NHB7{Zd`Lwt>KR7KltHf+S&Jye z@OzS%clWuYnUzIwA!#y3BG&7y`sZN+8YwFB^i;FE(_;f4P$*Q}XCq@ePCuhpt1Ia& z)h82a*!4CW-x*6Bhcy}2HY$5Q^Ae>HzT@6QhmrgyXU`DE3u3G)EnlNYi90o{7a^D4 zK)}o(;%$|s$htMN;wz0%N~DGtQ9!}4XX^TgW*_*6*TQ2pn$eN${@DcnnoRolU~)j|Jzk-SWwh9<8C zyx3h}eDA`kt-Fvxty~tC^ZsSSi?z(K@|HgOj>HkbD0n%wIkn%#`0P@` zL$S1?075z;L5F>*^pQdHa>d9?-JEMOWj1xySGk6UIJ@q93`QX?{>GPx(L@l0$Fgh$5|~b8&hv@6gW2E4AyDPVc^2Sfv$~%Yqi;XAQ?7 z-0e-0ko+p+sf?0|`Z02ZID(qFM!;iaL-u?0#3rX#y@}ToxhxNb1NC)2lGcDO?4!#`$zfK(i`)ZQJn zspk#8La*W*KlSl(%rb=b!ZV>@0snumkkAb+q)=?Fk| zb)3vs^m@u?&x3!b*_QV5zZepVwUMPyjSNZr#d|~6@nRYhDLCP93CU&<TuIzBk7di0c|L3re*p}S%q_ak-$9=&e1_JsTLY_YxlV0AF6+_J(Y|FAmFD%t}1k+ZZy>8|A z!HVXPo@#Dg>W)Q0u5K_YI?rCjC-(?A=RV#+qZgE<`uaQ{0%vM8ibNHA+t*Ny1QR;ICAlVX(a3HTMXvk+@GVqde2p+;?* zb?Sef8>=`0Z&xOOLr?JFcqVm0EvDtVgXD{q1ln&yp{ev8)Q2fUHB+~T?(NTzaK?PPjK}-0tkUaWP-^yqvTWK;Y_Maf`>}3tE<1v zR9JIWJy7=!6@QucwJ5m!exe;x+M0fzSd@DI96r55Bd~WTfhCJ}rWH|HE^Fp(E!JWC zrZg`08Mz`X_+?F?T}=H7^9U^YgSpLqmpsib9?09_-GNVdg zXWa9qf z_-MtD@!3YE3`Bh-L!c{{1MLRy=lwXJgW}D2-`QAT@@$f_~qDYyhFpV(v#kJ%ToslQD_!dtL z8arBkuS%s~0R7p@&L*8`G&OKFoq0dMrAC$#Dk+bmq1zNXt2j8>cJpbUSjAdqZ&e?! z4H2D^Dq zHr5MWDY;+IM9!SgpW#aH+<6>mUGfW6BJo`>e{Z_;*g?i2r!0upvWiFvT zq(RyOSH1(k8EKZ8R!HEdDfwBPzj+?9HFX5c3T?((qCF?xng`-zi%sntM_2;Zo+EL7 zqqUCA=>bmyN6+L1Su-q_wP>7mzWQBr&|t62Z;%Grx;iae_Nsx|F)hE&f0>cPAtK&A zAaw-}}&e&>RJ!>>VQ<6G%!_j4>B`a_| zH$Ui7i}Ts~hWnyp6mTI$Fgu-8kQFW=Ud|2orQJpx%wI8Vv?bc~6_#SXiN?)IxD=8n z6Cb(c2Cx&~wB_PQ#bs3%-nnU^wcao$^8dKuV0m(!!Y)37@KGq^DnlwX5Gvg5`OAN# z>1{0+eg;qZ4MQ)T2~Z{1->)=U{d{o$vy%Et^py+xAJ_y|Mx^3JGt#r{-C0GjB_*kg zDSY1avESHou*Pa5TwYfwMGerV^{o4u_{?wRTqrT=oW?fQQ!WS8tLydv@C zX(fq|miQpq0sTr#vqT}T4{7>$?Uq!%?H5r@X}*-K!;K$I?e=5#8EL;cwPMi>>@?Xib;l|cY7F%8IZKRp8Y0yCKFG7uVRDTZ8p{C~Sn zpZIEI6^@ZgpBqs_J<$=yzAA|#a60M7W_c=B^RKB|rl;@x2q}Ic(yO5fe+D>OAADMS z+>nt%VBRRASyGXD%@t=N!I(g}8bBxYnkfqZUC)F-@L5f^5FbHnkdt#^OifZ}GdsDQAj!JuE`R_tDZg$V-&8fv)K=1Q(pK=L(Ev~st*x@w1)Ds~^> zd_p*NLoPYT`5beWA?$Wa!)8f Date: Tue, 2 Dec 2025 11:22:48 +0800 Subject: [PATCH 295/444] refactor: use MessageSender interface for message transporter (#5083) --- Release.md | 4 ++++ client/control.go | 2 +- pkg/msg/handler.go | 4 ---- pkg/transport/message.go | 14 ++++++++------ server/control.go | 2 +- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Release.md b/Release.md index c346193f056..3775da513f4 100644 --- a/Release.md +++ b/Release.md @@ -6,3 +6,7 @@ ## Improvements * **VirtualNet**: Implemented intelligent reconnection with exponential backoff. When connection errors occur repeatedly, the reconnect interval increases from 60s to 300s (max), reducing unnecessary reconnection attempts. Normal disconnections still reconnect quickly at 10s intervals. + +## Fixes + +* Fix deadlock issue when TCP connection is closed. Previously, sending messages could block forever if the connection handler had already stopped. diff --git a/client/control.go b/client/control.go index 4bd6a2f737a..c18ae07c358 100644 --- a/client/control.go +++ b/client/control.go @@ -100,7 +100,7 @@ func NewControl(ctx context.Context, sessionCtx *SessionContext) (*Control, erro ctl.msgDispatcher = msg.NewDispatcher(sessionCtx.Conn) } ctl.registerMsgHandlers() - ctl.msgTransporter = transport.NewMessageTransporter(ctl.msgDispatcher.SendChannel()) + ctl.msgTransporter = transport.NewMessageTransporter(ctl.msgDispatcher) ctl.pm = proxy.NewManager(ctl.ctx, sessionCtx.Common, ctl.msgTransporter, sessionCtx.VnetController) ctl.vm = visitor.NewManager(ctl.ctx, sessionCtx.RunID, sessionCtx.Common, diff --git a/pkg/msg/handler.go b/pkg/msg/handler.go index cb1eb15a307..243e599ab76 100644 --- a/pkg/msg/handler.go +++ b/pkg/msg/handler.go @@ -86,10 +86,6 @@ func (d *Dispatcher) Send(m Message) error { } } -func (d *Dispatcher) SendChannel() chan Message { - return d.sendCh -} - func (d *Dispatcher) RegisterHandler(msg Message, handler func(Message)) { d.msgHandlers[reflect.TypeOf(msg)] = handler } diff --git a/pkg/transport/message.go b/pkg/transport/message.go index dd43fbdc0ed..40165f5dc4a 100644 --- a/pkg/transport/message.go +++ b/pkg/transport/message.go @@ -35,15 +35,19 @@ type MessageTransporter interface { DispatchWithType(m msg.Message, msgType, laneKey string) bool } -func NewMessageTransporter(sendCh chan msg.Message) MessageTransporter { +type MessageSender interface { + Send(msg.Message) error +} + +func NewMessageTransporter(sender MessageSender) MessageTransporter { return &transporterImpl{ - sendCh: sendCh, + sender: sender, registry: make(map[string]map[string]chan msg.Message), } } type transporterImpl struct { - sendCh chan msg.Message + sender MessageSender // First key is message type and second key is lane key. // Dispatch will dispatch message to related channel by its message type @@ -53,9 +57,7 @@ type transporterImpl struct { } func (impl *transporterImpl) Send(m msg.Message) error { - return errors.PanicToError(func() { - impl.sendCh <- m - }) + return impl.sender.Send(m) } func (impl *transporterImpl) Do(ctx context.Context, req msg.Message, laneKey, recvMsgType string) (msg.Message, error) { diff --git a/server/control.go b/server/control.go index b70d8d1268a..65d52062996 100644 --- a/server/control.go +++ b/server/control.go @@ -195,7 +195,7 @@ func NewControl( ctl.msgDispatcher = msg.NewDispatcher(ctl.conn) } ctl.registerMsgHandlers() - ctl.msgTransporter = transport.NewMessageTransporter(ctl.msgDispatcher.SendChannel()) + ctl.msgTransporter = transport.NewMessageTransporter(ctl.msgDispatcher) return ctl, nil } From 0fe8f7a0b6bef8ea97172bfa21ff85c5e429ea40 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 5 Dec 2025 16:26:09 +0800 Subject: [PATCH 296/444] refactor: reorganize security policy into dedicated packag (#5088) --- client/service.go | 5 +- cmd/frpc/sub/proxy.go | 5 +- cmd/frpc/sub/root.go | 16 ++- cmd/frpc/sub/verify.go | 4 +- pkg/config/v1/client.go | 20 ---- pkg/config/v1/validation/client.go | 117 +++++++++++++------ pkg/{ => policy}/featuregate/feature_gate.go | 0 pkg/policy/security/unsafe.go | 34 ++++++ 8 files changed, 133 insertions(+), 68 deletions(-) rename pkg/{ => policy}/featuregate/feature_gate.go (100%) create mode 100644 pkg/policy/security/unsafe.go diff --git a/client/service.go b/client/service.go index 60eb2d9030d..819a2bc5be6 100644 --- a/client/service.go +++ b/client/service.go @@ -31,6 +31,7 @@ import ( "github.com/fatedier/frp/pkg/auth" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/policy/security" httppkg "github.com/fatedier/frp/pkg/util/http" "github.com/fatedier/frp/pkg/util/log" netpkg "github.com/fatedier/frp/pkg/util/net" @@ -64,7 +65,7 @@ type ServiceOptions struct { ProxyCfgs []v1.ProxyConfigurer VisitorCfgs []v1.VisitorConfigurer - UnsafeFeatures v1.UnsafeFeatures + UnsafeFeatures *security.UnsafeFeatures // ConfigFilePath is the path to the configuration file used to initialize. // If it is empty, it means that the configuration file is not used for initialization. @@ -124,7 +125,7 @@ type Service struct { visitorCfgs []v1.VisitorConfigurer clientSpec *msg.ClientSpec - unsafeFeatures v1.UnsafeFeatures + unsafeFeatures *security.UnsafeFeatures // The configuration file used to initialize this client, or an empty // string if no configuration file was used. diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go index 0b0251a2650..0748a8b166f 100644 --- a/cmd/frpc/sub/proxy.go +++ b/cmd/frpc/sub/proxy.go @@ -24,6 +24,7 @@ import ( "github.com/fatedier/frp/pkg/config" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" + "github.com/fatedier/frp/pkg/policy/security" ) var proxyTypes = []v1.ProxyType{ @@ -78,7 +79,7 @@ func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.ClientComm os.Exit(1) } - unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) + unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { fmt.Println(err) os.Exit(1) @@ -108,7 +109,7 @@ func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v1.Client fmt.Println(err) os.Exit(1) } - unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) + unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 68d69158e6d..0750562b351 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -21,6 +21,7 @@ import ( "os" "os/signal" "path/filepath" + "strings" "sync" "syscall" "time" @@ -31,7 +32,8 @@ import ( "github.com/fatedier/frp/pkg/config" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" - "github.com/fatedier/frp/pkg/featuregate" + "github.com/fatedier/frp/pkg/policy/featuregate" + "github.com/fatedier/frp/pkg/policy/security" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" ) @@ -49,7 +51,9 @@ func init() { rootCmd.PersistentFlags().StringVarP(&cfgDir, "config_dir", "", "", "config directory, run one frpc service for each file in config directory") rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frpc") rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", true, "strict config parsing mode, unknown fields will cause an errors") - rootCmd.PersistentFlags().StringSliceVarP(&allowUnsafe, "allow-unsafe", "", []string{}, "allowed unsafe features, one or more of: TokenSourceExec") + + rootCmd.PersistentFlags().StringSliceVarP(&allowUnsafe, "allow-unsafe", "", []string{}, + fmt.Sprintf("allowed unsafe features, one or more of: %s", strings.Join(security.ClientUnsafeFeatures, ", "))) } var rootCmd = &cobra.Command{ @@ -61,7 +65,7 @@ var rootCmd = &cobra.Command{ return nil } - unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) + unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) // If cfgDir is not empty, run multiple frpc service for each config file in cfgDir. // Note that it's only designed for testing. It's not guaranteed to be stable. @@ -80,7 +84,7 @@ var rootCmd = &cobra.Command{ }, } -func runMultipleClients(cfgDir string, unsafeFeatures v1.UnsafeFeatures) error { +func runMultipleClients(cfgDir string, unsafeFeatures *security.UnsafeFeatures) error { var wg sync.WaitGroup err := filepath.WalkDir(cfgDir, func(path string, d fs.DirEntry, err error) error { if err != nil || d.IsDir() { @@ -115,7 +119,7 @@ func handleTermSignal(svr *client.Service) { svr.GracefulClose(500 * time.Millisecond) } -func runClient(cfgFilePath string, unsafeFeatures v1.UnsafeFeatures) error { +func runClient(cfgFilePath string, unsafeFeatures *security.UnsafeFeatures) error { cfg, proxyCfgs, visitorCfgs, isLegacyFormat, err := config.LoadClientConfig(cfgFilePath, strictConfigMode) if err != nil { return err @@ -145,7 +149,7 @@ func startService( cfg *v1.ClientCommonConfig, proxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer, - unsafeFeatures v1.UnsafeFeatures, + unsafeFeatures *security.UnsafeFeatures, cfgFile string, ) error { log.InitLogger(cfg.Log.To, cfg.Log.Level, int(cfg.Log.MaxDays), cfg.Log.DisablePrintColor) diff --git a/cmd/frpc/sub/verify.go b/cmd/frpc/sub/verify.go index c0c9d0e275f..830f7bf1118 100644 --- a/cmd/frpc/sub/verify.go +++ b/cmd/frpc/sub/verify.go @@ -21,8 +21,8 @@ import ( "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" - v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" + "github.com/fatedier/frp/pkg/policy/security" ) func init() { @@ -43,7 +43,7 @@ var verifyCmd = &cobra.Command{ fmt.Println(err) os.Exit(1) } - unsafeFeatures := v1.NewUnsafeFeatures(allowUnsafe) + unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) warning, err := validation.ValidateAllClientConfig(cliCfg, proxyCfgs, visitorCfgs, unsafeFeatures) if warning != nil { fmt.Printf("WARNING: %v\n", warning) diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index 8528ff7e149..61bc6ac67cd 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -248,23 +248,3 @@ type AuthOIDCClientConfig struct { type VirtualNetConfig struct { Address string `json:"address,omitempty"` } - -const ( - UnsafeFeatureTokenSourceExec = "TokenSourceExec" -) - -type UnsafeFeatures struct { - features map[string]bool -} - -func NewUnsafeFeatures(allowed []string) UnsafeFeatures { - features := make(map[string]bool) - for _, f := range allowed { - features[f] = true - } - return UnsafeFeatures{features: features} -} - -func (u UnsafeFeatures) IsEnabled(feature string) bool { - return u.features[feature] -} diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index 1c21f01d427..b55fece7185 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -23,70 +23,111 @@ import ( "github.com/samber/lo" v1 "github.com/fatedier/frp/pkg/config/v1" - "github.com/fatedier/frp/pkg/featuregate" + "github.com/fatedier/frp/pkg/policy/featuregate" + "github.com/fatedier/frp/pkg/policy/security" ) -func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures v1.UnsafeFeatures) (Warning, error) { +func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures *security.UnsafeFeatures) (Warning, error) { var ( warnings Warning errs error ) - // validate feature gates + + validators := []func() (Warning, error){ + func() (Warning, error) { return validateFeatureGates(c) }, + func() (Warning, error) { return validateAuthConfig(&c.Auth, unsafeFeatures) }, + func() (Warning, error) { return nil, validateLogConfig(&c.Log) }, + func() (Warning, error) { return nil, validateWebServerConfig(&c.WebServer) }, + func() (Warning, error) { return validateTransportConfig(&c.Transport) }, + func() (Warning, error) { return validateIncludeFiles(c.IncludeConfigFiles) }, + } + + for _, v := range validators { + w, err := v() + warnings = AppendError(warnings, w) + errs = AppendError(errs, err) + } + return warnings, errs +} + +func validateFeatureGates(c *v1.ClientCommonConfig) (Warning, error) { if c.VirtualNet.Address != "" { if !featuregate.Enabled(featuregate.VirtualNet) { - return warnings, fmt.Errorf("VirtualNet feature is not enabled; enable it by setting the appropriate feature gate flag") + return nil, fmt.Errorf("VirtualNet feature is not enabled; enable it by setting the appropriate feature gate flag") } } + return nil, nil +} - if !slices.Contains(SupportedAuthMethods, c.Auth.Method) { +func validateAuthConfig(c *v1.AuthClientConfig, unsafeFeatures *security.UnsafeFeatures) (Warning, error) { + var errs error + if !slices.Contains(SupportedAuthMethods, c.Method) { errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", SupportedAuthMethods)) } - if !lo.Every(SupportedAuthAdditionalScopes, c.Auth.AdditionalScopes) { + if !lo.Every(SupportedAuthAdditionalScopes, c.AdditionalScopes) { errs = AppendError(errs, fmt.Errorf("invalid auth additional scopes, optional values are %v", SupportedAuthAdditionalScopes)) } // Validate token/tokenSource mutual exclusivity - if c.Auth.Token != "" && c.Auth.TokenSource != nil { + if c.Token != "" && c.TokenSource != nil { errs = AppendError(errs, fmt.Errorf("cannot specify both auth.token and auth.tokenSource")) } // Validate tokenSource if specified - if c.Auth.TokenSource != nil { - if c.Auth.TokenSource.Type == "exec" && !unsafeFeatures.IsEnabled(v1.UnsafeFeatureTokenSourceExec) { - errs = AppendError(errs, fmt.Errorf("unsafe 'exec' not allowed for auth.tokenSource.type")) + if c.TokenSource != nil { + if c.TokenSource.Type == "exec" { + if !unsafeFeatures.IsEnabled(security.TokenSourceExec) { + errs = AppendError(errs, fmt.Errorf("unsafe feature %q is not enabled. "+ + "To enable it, start frpc with '--allow-unsafe %s'", security.TokenSourceExec, security.TokenSourceExec)) + } } - if err := c.Auth.TokenSource.Validate(); err != nil { + if err := c.TokenSource.Validate(); err != nil { errs = AppendError(errs, fmt.Errorf("invalid auth.tokenSource: %v", err)) } } - if c.Auth.OIDC.TokenSource != nil { - // Validate oidc.tokenSource mutual exclusivity with other fields of oidc - if c.Auth.OIDC.ClientID != "" || c.Auth.OIDC.ClientSecret != "" || c.Auth.OIDC.Audience != "" || - c.Auth.OIDC.Scope != "" || c.Auth.OIDC.TokenEndpointURL != "" || len(c.Auth.OIDC.AdditionalEndpointParams) > 0 || - c.Auth.OIDC.TrustedCaFile != "" || c.Auth.OIDC.InsecureSkipVerify || c.Auth.OIDC.ProxyURL != "" { - errs = AppendError(errs, fmt.Errorf("cannot specify both auth.oidc.tokenSource and any other field of auth.oidc")) - } - if c.Auth.OIDC.TokenSource.Type == "exec" && !unsafeFeatures.IsEnabled(v1.UnsafeFeatureTokenSourceExec) { - errs = AppendError(errs, fmt.Errorf("unsafe 'exec' not allowed for auth.oidc.tokenSource.type")) - } - } - - if err := validateLogConfig(&c.Log); err != nil { + if err := validateOIDCConfig(&c.OIDC, unsafeFeatures); err != nil { errs = AppendError(errs, err) } + return nil, errs +} - if err := validateWebServerConfig(&c.WebServer); err != nil { - errs = AppendError(errs, err) +func validateOIDCConfig(c *v1.AuthOIDCClientConfig, unsafeFeatures *security.UnsafeFeatures) error { + if c.TokenSource == nil { + return nil + } + var errs error + // Validate oidc.tokenSource mutual exclusivity with other fields of oidc + if c.ClientID != "" || c.ClientSecret != "" || c.Audience != "" || + c.Scope != "" || c.TokenEndpointURL != "" || len(c.AdditionalEndpointParams) > 0 || + c.TrustedCaFile != "" || c.InsecureSkipVerify || c.ProxyURL != "" { + errs = AppendError(errs, fmt.Errorf("cannot specify both auth.oidc.tokenSource and any other field of auth.oidc")) + } + if c.TokenSource.Type == "exec" { + if !unsafeFeatures.IsEnabled(security.TokenSourceExec) { + errs = AppendError(errs, fmt.Errorf("unsafe feature %q is not enabled. "+ + "To enable it, start frpc with '--allow-unsafe %s'", security.TokenSourceExec, security.TokenSourceExec)) + } } + if err := c.TokenSource.Validate(); err != nil { + errs = AppendError(errs, fmt.Errorf("invalid auth.oidc.tokenSource: %v", err)) + } + return errs +} + +func validateTransportConfig(c *v1.ClientTransportConfig) (Warning, error) { + var ( + warnings Warning + errs error + ) - if c.Transport.HeartbeatTimeout > 0 && c.Transport.HeartbeatInterval > 0 { - if c.Transport.HeartbeatTimeout < c.Transport.HeartbeatInterval { + if c.HeartbeatTimeout > 0 && c.HeartbeatInterval > 0 { + if c.HeartbeatTimeout < c.HeartbeatInterval { errs = AppendError(errs, fmt.Errorf("invalid transport.heartbeatTimeout, heartbeat timeout should not less than heartbeat interval")) } } - if !lo.FromPtr(c.Transport.TLS.Enable) { + if !lo.FromPtr(c.TLS.Enable) { checkTLSConfig := func(name string, value string) Warning { if value != "" { return fmt.Errorf("%s is invalid when transport.tls.enable is false", name) @@ -94,16 +135,20 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures v1.Unsa return nil } - warnings = AppendError(warnings, checkTLSConfig("transport.tls.certFile", c.Transport.TLS.CertFile)) - warnings = AppendError(warnings, checkTLSConfig("transport.tls.keyFile", c.Transport.TLS.KeyFile)) - warnings = AppendError(warnings, checkTLSConfig("transport.tls.trustedCaFile", c.Transport.TLS.TrustedCaFile)) + warnings = AppendError(warnings, checkTLSConfig("transport.tls.certFile", c.TLS.CertFile)) + warnings = AppendError(warnings, checkTLSConfig("transport.tls.keyFile", c.TLS.KeyFile)) + warnings = AppendError(warnings, checkTLSConfig("transport.tls.trustedCaFile", c.TLS.TrustedCaFile)) } - if !slices.Contains(SupportedTransportProtocols, c.Transport.Protocol) { + if !slices.Contains(SupportedTransportProtocols, c.Protocol) { errs = AppendError(errs, fmt.Errorf("invalid transport.protocol, optional values are %v", SupportedTransportProtocols)) } + return warnings, errs +} - for _, f := range c.IncludeConfigFiles { +func validateIncludeFiles(files []string) (Warning, error) { + var errs error + for _, f := range files { absDir, err := filepath.Abs(filepath.Dir(f)) if err != nil { errs = AppendError(errs, fmt.Errorf("include: parse directory of %s failed: %v", f, err)) @@ -113,14 +158,14 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures v1.Unsa errs = AppendError(errs, fmt.Errorf("include: directory of %s not exist", f)) } } - return warnings, errs + return nil, errs } func ValidateAllClientConfig( c *v1.ClientCommonConfig, proxyCfgs []v1.ProxyConfigurer, visitorCfgs []v1.VisitorConfigurer, - unsafeFeatures v1.UnsafeFeatures, + unsafeFeatures *security.UnsafeFeatures, ) (Warning, error) { var warnings Warning if c != nil { diff --git a/pkg/featuregate/feature_gate.go b/pkg/policy/featuregate/feature_gate.go similarity index 100% rename from pkg/featuregate/feature_gate.go rename to pkg/policy/featuregate/feature_gate.go diff --git a/pkg/policy/security/unsafe.go b/pkg/policy/security/unsafe.go new file mode 100644 index 00000000000..b3f84a85278 --- /dev/null +++ b/pkg/policy/security/unsafe.go @@ -0,0 +1,34 @@ +package security + +const ( + TokenSourceExec = "TokenSourceExec" +) + +var ( + ClientUnsafeFeatures = []string{ + TokenSourceExec, + } + + ServerUnsafeFeatures = []string{ + TokenSourceExec, + } +) + +type UnsafeFeatures struct { + features map[string]bool +} + +func NewUnsafeFeatures(allowed []string) *UnsafeFeatures { + features := make(map[string]bool) + for _, f := range allowed { + features[f] = true + } + return &UnsafeFeatures{features: features} +} + +func (u *UnsafeFeatures) IsEnabled(feature string) bool { + if u == nil { + return false + } + return u.features[feature] +} From 2bdf25bae68160230bbe7047e3fef09a9553ef90 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 11 Dec 2025 12:48:08 +0800 Subject: [PATCH 297/444] rotate gold sponsor order periodically (#5094) --- README.md | 22 ++++++++-------------- README_zh.md | 22 ++++++++-------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 0b88eb14b18..a99b2277094 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,14 @@ frp is an open source project with its ongoing development made possible entirel

Gold Sponsors

+

+ + +
+ The complete IDE crafted for professional Go developers +
+

+

@@ -50,20 +58,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and Available for macOS, Linux and Windows

-

- - -
- The complete IDE crafted for professional Go developers -
-

-

- - -
- Secure and Elastic Infrastructure for Running Your AI-Generated Code -
-

## What is frp? diff --git a/README_zh.md b/README_zh.md index 1c3879fd67f..727299bc554 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,6 +15,14 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

Gold Sponsors

+

+ + +
+ The complete IDE crafted for professional Go developers +
+

+

@@ -51,20 +59,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and Available for macOS, Linux and Windows

-

- - -
- The complete IDE crafted for professional Go developers -
-

-

- - -
- Secure and Elastic Infrastructure for Running Your AI-Generated Code -
-

## 为什么使用 frp ? From 7526d7a69af9de505f96ccec5ef47b68666a9201 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 25 Dec 2025 00:53:08 +0800 Subject: [PATCH 298/444] refactor: separate auth config from runtime and defer token resolution (#5105) --- client/control.go | 12 ++--- client/proxy/proxy.go | 5 +- client/proxy/proxy_manager.go | 7 ++- client/proxy/proxy_wrapper.go | 3 +- client/proxy/sudp.go | 2 +- client/proxy/udp.go | 2 +- client/service.go | 12 ++--- cmd/frpc/sub/proxy.go | 6 ++- cmd/frpc/sub/root.go | 1 + cmd/frps/root.go | 9 +++- cmd/frps/verify.go | 5 +- pkg/auth/auth.go | 63 ++++++++++++++++++++++++ pkg/config/v1/client.go | 13 ----- pkg/config/v1/client_test.go | 71 ++------------------------- pkg/config/v1/server.go | 14 ------ pkg/config/v1/server_test.go | 71 ++------------------------- pkg/config/v1/validation/client.go | 27 +++++----- pkg/config/v1/validation/server.go | 8 ++- pkg/config/v1/validation/validator.go | 28 +++++++++++ server/control.go | 7 ++- server/proxy/http.go | 2 +- server/proxy/proxy.go | 6 ++- server/proxy/udp.go | 2 +- server/service.go | 15 ++++-- 24 files changed, 185 insertions(+), 206 deletions(-) create mode 100644 pkg/config/v1/validation/validator.go diff --git a/client/control.go b/client/control.go index c18ae07c358..0f48c36dd52 100644 --- a/client/control.go +++ b/client/control.go @@ -43,8 +43,8 @@ type SessionContext struct { Conn net.Conn // Indicates whether the connection is encrypted. ConnEncrypted bool - // Sets authentication based on selected method - AuthSetter auth.Setter + // Auth runtime used for login, heartbeats, and encryption. + Auth *auth.ClientAuth // Connector is used to create new connections, which could be real TCP connections or virtual streams. Connector Connector // Virtual net controller @@ -91,7 +91,7 @@ func NewControl(ctx context.Context, sessionCtx *SessionContext) (*Control, erro ctl.lastPong.Store(time.Now()) if sessionCtx.ConnEncrypted { - cryptoRW, err := netpkg.NewCryptoReadWriter(sessionCtx.Conn, []byte(sessionCtx.Common.Auth.Token)) + cryptoRW, err := netpkg.NewCryptoReadWriter(sessionCtx.Conn, sessionCtx.Auth.EncryptionKey()) if err != nil { return nil, err } @@ -102,7 +102,7 @@ func NewControl(ctx context.Context, sessionCtx *SessionContext) (*Control, erro ctl.registerMsgHandlers() ctl.msgTransporter = transport.NewMessageTransporter(ctl.msgDispatcher) - ctl.pm = proxy.NewManager(ctl.ctx, sessionCtx.Common, ctl.msgTransporter, sessionCtx.VnetController) + ctl.pm = proxy.NewManager(ctl.ctx, sessionCtx.Common, sessionCtx.Auth.EncryptionKey(), ctl.msgTransporter, sessionCtx.VnetController) ctl.vm = visitor.NewManager(ctl.ctx, sessionCtx.RunID, sessionCtx.Common, ctl.connectServer, ctl.msgTransporter, sessionCtx.VnetController) return ctl, nil @@ -133,7 +133,7 @@ func (ctl *Control) handleReqWorkConn(_ msg.Message) { m := &msg.NewWorkConn{ RunID: ctl.sessionCtx.RunID, } - if err = ctl.sessionCtx.AuthSetter.SetNewWorkConn(m); err != nil { + if err = ctl.sessionCtx.Auth.Setter.SetNewWorkConn(m); err != nil { xl.Warnf("error during NewWorkConn authentication: %v", err) workConn.Close() return @@ -243,7 +243,7 @@ func (ctl *Control) heartbeatWorker() { sendHeartBeat := func() (bool, error) { xl.Debugf("send heartbeat to server") pingMsg := &msg.Ping{} - if err := ctl.sessionCtx.AuthSetter.SetPing(pingMsg); err != nil { + if err := ctl.sessionCtx.Auth.Setter.SetPing(pingMsg); err != nil { xl.Warnf("error during ping authentication: %v, skip sending ping message", err) return false, err } diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index 876ca579d38..8faff38d09b 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -57,6 +57,7 @@ func NewProxy( ctx context.Context, pxyConf v1.ProxyConfigurer, clientCfg *v1.ClientCommonConfig, + encryptionKey []byte, msgTransporter transport.MessageTransporter, vnetController *vnet.Controller, ) (pxy Proxy) { @@ -69,6 +70,7 @@ func NewProxy( baseProxy := BaseProxy{ baseCfg: pxyConf.GetBaseConfig(), clientCfg: clientCfg, + encryptionKey: encryptionKey, limiter: limiter, msgTransporter: msgTransporter, vnetController: vnetController, @@ -86,6 +88,7 @@ func NewProxy( type BaseProxy struct { baseCfg *v1.ProxyBaseConfig clientCfg *v1.ClientCommonConfig + encryptionKey []byte msgTransporter transport.MessageTransporter vnetController *vnet.Controller limiter *rate.Limiter @@ -129,7 +132,7 @@ func (pxy *BaseProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { return } } - pxy.HandleTCPWorkConnection(conn, m, []byte(pxy.clientCfg.Auth.Token)) + pxy.HandleTCPWorkConnection(conn, m, pxy.encryptionKey) } // Common handler for tcp work connections. diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index ea5cc553112..4615e9a2631 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -40,7 +40,8 @@ type Manager struct { closed bool mu sync.RWMutex - clientCfg *v1.ClientCommonConfig + encryptionKey []byte + clientCfg *v1.ClientCommonConfig ctx context.Context } @@ -48,6 +49,7 @@ type Manager struct { func NewManager( ctx context.Context, clientCfg *v1.ClientCommonConfig, + encryptionKey []byte, msgTransporter transport.MessageTransporter, vnetController *vnet.Controller, ) *Manager { @@ -56,6 +58,7 @@ func NewManager( msgTransporter: msgTransporter, vnetController: vnetController, closed: false, + encryptionKey: encryptionKey, clientCfg: clientCfg, ctx: ctx, } @@ -163,7 +166,7 @@ func (pm *Manager) UpdateAll(proxyCfgs []v1.ProxyConfigurer) { for _, cfg := range proxyCfgs { name := cfg.GetBaseConfig().Name if _, ok := pm.proxies[name]; !ok { - pxy := NewWrapper(pm.ctx, cfg, pm.clientCfg, pm.HandleEvent, pm.msgTransporter, pm.vnetController) + pxy := NewWrapper(pm.ctx, cfg, pm.clientCfg, pm.encryptionKey, pm.HandleEvent, pm.msgTransporter, pm.vnetController) if pm.inWorkConnCallback != nil { pxy.SetInWorkConnCallback(pm.inWorkConnCallback) } diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index f3f17e2b10c..4698320a8a0 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -92,6 +92,7 @@ func NewWrapper( ctx context.Context, cfg v1.ProxyConfigurer, clientCfg *v1.ClientCommonConfig, + encryptionKey []byte, eventHandler event.Handler, msgTransporter transport.MessageTransporter, vnetController *vnet.Controller, @@ -122,7 +123,7 @@ func NewWrapper( xl.Tracef("enable health check monitor") } - pw.pxy = NewProxy(pw.ctx, pw.Cfg, clientCfg, pw.msgTransporter, pw.vnetController) + pw.pxy = NewProxy(pw.ctx, pw.Cfg, clientCfg, encryptionKey, pw.msgTransporter, pw.vnetController) return pw } diff --git a/client/proxy/sudp.go b/client/proxy/sudp.go index 13741d0ddc7..3a7af19c93f 100644 --- a/client/proxy/sudp.go +++ b/client/proxy/sudp.go @@ -91,7 +91,7 @@ func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { }) } if pxy.cfg.Transport.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Auth.Token)) + rwc, err = libio.WithEncryption(rwc, pxy.encryptionKey) if err != nil { conn.Close() xl.Errorf("create encryption stream error: %v", err) diff --git a/client/proxy/udp.go b/client/proxy/udp.go index b70ffe4a0c8..1fca99044e5 100644 --- a/client/proxy/udp.go +++ b/client/proxy/udp.go @@ -102,7 +102,7 @@ func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { }) } if pxy.cfg.Transport.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.clientCfg.Auth.Token)) + rwc, err = libio.WithEncryption(rwc, pxy.encryptionKey) if err != nil { conn.Close() xl.Errorf("create encryption stream error: %v", err) diff --git a/client/service.go b/client/service.go index 819a2bc5be6..b282163e220 100644 --- a/client/service.go +++ b/client/service.go @@ -111,8 +111,8 @@ type Service struct { // Uniq id got from frps, it will be attached to loginMsg. runID string - // Sets authentication based on selected method - authSetter auth.Setter + // Auth runtime and encryption materials + auth *auth.ClientAuth // web server for admin UI and apis webServer *httppkg.Server @@ -155,14 +155,14 @@ func NewService(options ServiceOptions) (*Service, error) { webServer = ws } - authSetter, err := auth.NewAuthSetter(options.Common.Auth) + authRuntime, err := auth.BuildClientAuth(&options.Common.Auth) if err != nil { return nil, err } s := &Service{ ctx: context.Background(), - authSetter: authSetter, + auth: authRuntime, webServer: webServer, common: options.Common, configFilePath: options.ConfigFilePath, @@ -296,7 +296,7 @@ func (svr *Service) login() (conn net.Conn, connector Connector, err error) { } // Add auth - if err = svr.authSetter.SetLogin(loginMsg); err != nil { + if err = svr.auth.Setter.SetLogin(loginMsg); err != nil { return } @@ -350,7 +350,7 @@ func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, firstLoginE RunID: svr.runID, Conn: conn, ConnEncrypted: connEncrypted, - AuthSetter: svr.authSetter, + Auth: svr.auth, Connector: connector, VnetController: svr.vnetController, } diff --git a/cmd/frpc/sub/proxy.go b/cmd/frpc/sub/proxy.go index 0748a8b166f..ef7fe67fddb 100644 --- a/cmd/frpc/sub/proxy.go +++ b/cmd/frpc/sub/proxy.go @@ -80,7 +80,8 @@ func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.ClientComm } unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) - if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { + validator := validation.NewConfigValidator(unsafeFeatures) + if _, err := validator.ValidateClientCommonConfig(clientCfg); err != nil { fmt.Println(err) os.Exit(1) } @@ -110,7 +111,8 @@ func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v1.Client os.Exit(1) } unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) - if _, err := validation.ValidateClientCommonConfig(clientCfg, unsafeFeatures); err != nil { + validator := validation.NewConfigValidator(unsafeFeatures) + if _, err := validator.ValidateClientCommonConfig(clientCfg); err != nil { fmt.Println(err) os.Exit(1) } diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 0750562b351..1c2d8d5eaae 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -142,6 +142,7 @@ func runClient(cfgFilePath string, unsafeFeatures *security.UnsafeFeatures) erro if err != nil { return err } + return startService(cfg, proxyCfgs, visitorCfgs, unsafeFeatures, cfgFilePath) } diff --git a/cmd/frps/root.go b/cmd/frps/root.go index c1bfc880624..e6ab008a343 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -18,12 +18,14 @@ import ( "context" "fmt" "os" + "strings" "github.com/spf13/cobra" "github.com/fatedier/frp/pkg/config" v1 "github.com/fatedier/frp/pkg/config/v1" "github.com/fatedier/frp/pkg/config/v1/validation" + "github.com/fatedier/frp/pkg/policy/security" "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/server" @@ -33,6 +35,7 @@ var ( cfgFile string showVersion bool strictConfigMode bool + allowUnsafe []string serverCfg v1.ServerConfig ) @@ -41,6 +44,8 @@ func init() { rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "", "config file of frps") rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frps") rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", true, "strict config parsing mode, unknown fields will cause errors") + rootCmd.PersistentFlags().StringSliceVarP(&allowUnsafe, "allow-unsafe", "", []string{}, + fmt.Sprintf("allowed unsafe features, one or more of: %s", strings.Join(security.ServerUnsafeFeatures, ", "))) config.RegisterServerConfigFlags(rootCmd, &serverCfg) } @@ -77,7 +82,9 @@ var rootCmd = &cobra.Command{ svrCfg = &serverCfg } - warning, err := validation.ValidateServerConfig(svrCfg) + unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) + validator := validation.NewConfigValidator(unsafeFeatures) + warning, err := validator.ValidateServerConfig(svrCfg) if warning != nil { fmt.Printf("WARNING: %v\n", warning) } diff --git a/cmd/frps/verify.go b/cmd/frps/verify.go index 33ad3f63229..7ddef1abcf6 100644 --- a/cmd/frps/verify.go +++ b/cmd/frps/verify.go @@ -22,6 +22,7 @@ import ( "github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/config/v1/validation" + "github.com/fatedier/frp/pkg/policy/security" ) func init() { @@ -42,7 +43,9 @@ var verifyCmd = &cobra.Command{ os.Exit(1) } - warning, err := validation.ValidateServerConfig(svrCfg) + unsafeFeatures := security.NewUnsafeFeatures(allowUnsafe) + validator := validation.NewConfigValidator(unsafeFeatures) + warning, err := validator.ValidateServerConfig(svrCfg) if warning != nil { fmt.Printf("WARNING: %v\n", warning) } diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go index 64462a2085c..366b62ef31e 100644 --- a/pkg/auth/auth.go +++ b/pkg/auth/auth.go @@ -15,6 +15,7 @@ package auth import ( + "context" "fmt" v1 "github.com/fatedier/frp/pkg/config/v1" @@ -27,6 +28,39 @@ type Setter interface { SetNewWorkConn(*msg.NewWorkConn) error } +type ClientAuth struct { + Setter Setter + key []byte +} + +func (a *ClientAuth) EncryptionKey() []byte { + return a.key +} + +// BuildClientAuth resolves any dynamic auth values and returns a prepared auth runtime. +// Caller must run validation before calling this function. +func BuildClientAuth(cfg *v1.AuthClientConfig) (*ClientAuth, error) { + if cfg == nil { + return nil, fmt.Errorf("auth config is nil") + } + resolved := *cfg + if resolved.Method == v1.AuthMethodToken && resolved.TokenSource != nil { + token, err := resolved.TokenSource.Resolve(context.Background()) + if err != nil { + return nil, fmt.Errorf("failed to resolve auth.tokenSource: %w", err) + } + resolved.Token = token + } + setter, err := NewAuthSetter(resolved) + if err != nil { + return nil, err + } + return &ClientAuth{ + Setter: setter, + key: []byte(resolved.Token), + }, nil +} + func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter, err error) { switch cfg.Method { case v1.AuthMethodToken: @@ -52,6 +86,35 @@ type Verifier interface { VerifyNewWorkConn(*msg.NewWorkConn) error } +type ServerAuth struct { + Verifier Verifier + key []byte +} + +func (a *ServerAuth) EncryptionKey() []byte { + return a.key +} + +// BuildServerAuth resolves any dynamic auth values and returns a prepared auth runtime. +// Caller must run validation before calling this function. +func BuildServerAuth(cfg *v1.AuthServerConfig) (*ServerAuth, error) { + if cfg == nil { + return nil, fmt.Errorf("auth config is nil") + } + resolved := *cfg + if resolved.Method == v1.AuthMethodToken && resolved.TokenSource != nil { + token, err := resolved.TokenSource.Resolve(context.Background()) + if err != nil { + return nil, fmt.Errorf("failed to resolve auth.tokenSource: %w", err) + } + resolved.Token = token + } + return &ServerAuth{ + Verifier: NewAuthVerifier(resolved), + key: []byte(resolved.Token), + }, nil +} + func NewAuthVerifier(cfg v1.AuthServerConfig) (authVerifier Verifier) { switch cfg.Method { case v1.AuthMethodToken: diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index 61bc6ac67cd..2c5ccc6f1f9 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -15,8 +15,6 @@ package v1 import ( - "context" - "fmt" "os" "github.com/samber/lo" @@ -198,17 +196,6 @@ type AuthClientConfig struct { func (c *AuthClientConfig) Complete() error { c.Method = util.EmptyOr(c.Method, "token") - - // Resolve tokenSource during configuration loading - if c.Method == AuthMethodToken && c.TokenSource != nil { - token, err := c.TokenSource.Resolve(context.Background()) - if err != nil { - return fmt.Errorf("failed to resolve auth.tokenSource: %w", err) - } - // Move the resolved token to the Token field and clear TokenSource - c.Token = token - c.TokenSource = nil - } return nil } diff --git a/pkg/config/v1/client_test.go b/pkg/config/v1/client_test.go index 120c4fd42a3..5473a5f6a76 100644 --- a/pkg/config/v1/client_test.go +++ b/pkg/config/v1/client_test.go @@ -15,8 +15,6 @@ package v1 import ( - "os" - "path/filepath" "testing" "github.com/samber/lo" @@ -38,68 +36,9 @@ func TestClientConfigComplete(t *testing.T) { } func TestAuthClientConfig_Complete(t *testing.T) { - // Create a temporary file for testing - tmpDir := t.TempDir() - testFile := filepath.Join(tmpDir, "test_token") - testContent := "client-token-value" - err := os.WriteFile(testFile, []byte(testContent), 0o600) - require.NoError(t, err) - - tests := []struct { - name string - config AuthClientConfig - expectToken string - expectPanic bool - }{ - { - name: "tokenSource resolved to token", - config: AuthClientConfig{ - Method: AuthMethodToken, - TokenSource: &ValueSource{ - Type: "file", - File: &FileSource{ - Path: testFile, - }, - }, - }, - expectToken: testContent, - expectPanic: false, - }, - { - name: "direct token unchanged", - config: AuthClientConfig{ - Method: AuthMethodToken, - Token: "direct-token", - }, - expectToken: "direct-token", - expectPanic: false, - }, - { - name: "invalid tokenSource should panic", - config: AuthClientConfig{ - Method: AuthMethodToken, - TokenSource: &ValueSource{ - Type: "file", - File: &FileSource{ - Path: "/non/existent/file", - }, - }, - }, - expectPanic: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if tt.expectPanic { - err := tt.config.Complete() - require.Error(t, err) - } else { - err := tt.config.Complete() - require.NoError(t, err) - require.Equal(t, tt.expectToken, tt.config.Token) - require.Nil(t, tt.config.TokenSource, "TokenSource should be cleared after resolution") - } - }) - } + require := require.New(t) + cfg := &AuthClientConfig{} + err := cfg.Complete() + require.NoError(err) + require.EqualValues("token", cfg.Method) } diff --git a/pkg/config/v1/server.go b/pkg/config/v1/server.go index 54aac080bd0..a92aac97aab 100644 --- a/pkg/config/v1/server.go +++ b/pkg/config/v1/server.go @@ -15,9 +15,6 @@ package v1 import ( - "context" - "fmt" - "github.com/samber/lo" "github.com/fatedier/frp/pkg/config/types" @@ -138,17 +135,6 @@ type AuthServerConfig struct { func (c *AuthServerConfig) Complete() error { c.Method = util.EmptyOr(c.Method, "token") - - // Resolve tokenSource during configuration loading - if c.Method == AuthMethodToken && c.TokenSource != nil { - token, err := c.TokenSource.Resolve(context.Background()) - if err != nil { - return fmt.Errorf("failed to resolve auth.tokenSource: %w", err) - } - // Move the resolved token to the Token field and clear TokenSource - c.Token = token - c.TokenSource = nil - } return nil } diff --git a/pkg/config/v1/server_test.go b/pkg/config/v1/server_test.go index 21d18fb7653..cd9381c509d 100644 --- a/pkg/config/v1/server_test.go +++ b/pkg/config/v1/server_test.go @@ -15,8 +15,6 @@ package v1 import ( - "os" - "path/filepath" "testing" "github.com/samber/lo" @@ -35,68 +33,9 @@ func TestServerConfigComplete(t *testing.T) { } func TestAuthServerConfig_Complete(t *testing.T) { - // Create a temporary file for testing - tmpDir := t.TempDir() - testFile := filepath.Join(tmpDir, "test_token") - testContent := "file-token-value" - err := os.WriteFile(testFile, []byte(testContent), 0o600) - require.NoError(t, err) - - tests := []struct { - name string - config AuthServerConfig - expectToken string - expectPanic bool - }{ - { - name: "tokenSource resolved to token", - config: AuthServerConfig{ - Method: AuthMethodToken, - TokenSource: &ValueSource{ - Type: "file", - File: &FileSource{ - Path: testFile, - }, - }, - }, - expectToken: testContent, - expectPanic: false, - }, - { - name: "direct token unchanged", - config: AuthServerConfig{ - Method: AuthMethodToken, - Token: "direct-token", - }, - expectToken: "direct-token", - expectPanic: false, - }, - { - name: "invalid tokenSource should panic", - config: AuthServerConfig{ - Method: AuthMethodToken, - TokenSource: &ValueSource{ - Type: "file", - File: &FileSource{ - Path: "/non/existent/file", - }, - }, - }, - expectPanic: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if tt.expectPanic { - err := tt.config.Complete() - require.Error(t, err) - } else { - err := tt.config.Complete() - require.NoError(t, err) - require.Equal(t, tt.expectToken, tt.config.Token) - require.Nil(t, tt.config.TokenSource, "TokenSource should be cleared after resolution") - } - }) - } + require := require.New(t) + cfg := &AuthServerConfig{} + err := cfg.Complete() + require.NoError(err) + require.EqualValues("token", cfg.Method) } diff --git a/pkg/config/v1/validation/client.go b/pkg/config/v1/validation/client.go index b55fece7185..eb4a0253dbf 100644 --- a/pkg/config/v1/validation/client.go +++ b/pkg/config/v1/validation/client.go @@ -27,7 +27,7 @@ import ( "github.com/fatedier/frp/pkg/policy/security" ) -func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures *security.UnsafeFeatures) (Warning, error) { +func (v *ConfigValidator) ValidateClientCommonConfig(c *v1.ClientCommonConfig) (Warning, error) { var ( warnings Warning errs error @@ -35,15 +35,15 @@ func ValidateClientCommonConfig(c *v1.ClientCommonConfig, unsafeFeatures *securi validators := []func() (Warning, error){ func() (Warning, error) { return validateFeatureGates(c) }, - func() (Warning, error) { return validateAuthConfig(&c.Auth, unsafeFeatures) }, + func() (Warning, error) { return v.validateAuthConfig(&c.Auth) }, func() (Warning, error) { return nil, validateLogConfig(&c.Log) }, func() (Warning, error) { return nil, validateWebServerConfig(&c.WebServer) }, func() (Warning, error) { return validateTransportConfig(&c.Transport) }, func() (Warning, error) { return validateIncludeFiles(c.IncludeConfigFiles) }, } - for _, v := range validators { - w, err := v() + for _, validator := range validators { + w, err := validator() warnings = AppendError(warnings, w) errs = AppendError(errs, err) } @@ -59,7 +59,7 @@ func validateFeatureGates(c *v1.ClientCommonConfig) (Warning, error) { return nil, nil } -func validateAuthConfig(c *v1.AuthClientConfig, unsafeFeatures *security.UnsafeFeatures) (Warning, error) { +func (v *ConfigValidator) validateAuthConfig(c *v1.AuthClientConfig) (Warning, error) { var errs error if !slices.Contains(SupportedAuthMethods, c.Method) { errs = AppendError(errs, fmt.Errorf("invalid auth method, optional values are %v", SupportedAuthMethods)) @@ -76,9 +76,8 @@ func validateAuthConfig(c *v1.AuthClientConfig, unsafeFeatures *security.UnsafeF // Validate tokenSource if specified if c.TokenSource != nil { if c.TokenSource.Type == "exec" { - if !unsafeFeatures.IsEnabled(security.TokenSourceExec) { - errs = AppendError(errs, fmt.Errorf("unsafe feature %q is not enabled. "+ - "To enable it, start frpc with '--allow-unsafe %s'", security.TokenSourceExec, security.TokenSourceExec)) + if err := v.ValidateUnsafeFeature(security.TokenSourceExec); err != nil { + errs = AppendError(errs, err) } } if err := c.TokenSource.Validate(); err != nil { @@ -86,13 +85,13 @@ func validateAuthConfig(c *v1.AuthClientConfig, unsafeFeatures *security.UnsafeF } } - if err := validateOIDCConfig(&c.OIDC, unsafeFeatures); err != nil { + if err := v.validateOIDCConfig(&c.OIDC); err != nil { errs = AppendError(errs, err) } return nil, errs } -func validateOIDCConfig(c *v1.AuthOIDCClientConfig, unsafeFeatures *security.UnsafeFeatures) error { +func (v *ConfigValidator) validateOIDCConfig(c *v1.AuthOIDCClientConfig) error { if c.TokenSource == nil { return nil } @@ -104,9 +103,8 @@ func validateOIDCConfig(c *v1.AuthOIDCClientConfig, unsafeFeatures *security.Uns errs = AppendError(errs, fmt.Errorf("cannot specify both auth.oidc.tokenSource and any other field of auth.oidc")) } if c.TokenSource.Type == "exec" { - if !unsafeFeatures.IsEnabled(security.TokenSourceExec) { - errs = AppendError(errs, fmt.Errorf("unsafe feature %q is not enabled. "+ - "To enable it, start frpc with '--allow-unsafe %s'", security.TokenSourceExec, security.TokenSourceExec)) + if err := v.ValidateUnsafeFeature(security.TokenSourceExec); err != nil { + errs = AppendError(errs, err) } } if err := c.TokenSource.Validate(); err != nil { @@ -167,9 +165,10 @@ func ValidateAllClientConfig( visitorCfgs []v1.VisitorConfigurer, unsafeFeatures *security.UnsafeFeatures, ) (Warning, error) { + validator := NewConfigValidator(unsafeFeatures) var warnings Warning if c != nil { - warning, err := ValidateClientCommonConfig(c, unsafeFeatures) + warning, err := validator.ValidateClientCommonConfig(c) warnings = AppendError(warnings, warning) if err != nil { return warnings, err diff --git a/pkg/config/v1/validation/server.go b/pkg/config/v1/validation/server.go index 5694227299f..338ecc821b2 100644 --- a/pkg/config/v1/validation/server.go +++ b/pkg/config/v1/validation/server.go @@ -21,9 +21,10 @@ import ( "github.com/samber/lo" v1 "github.com/fatedier/frp/pkg/config/v1" + "github.com/fatedier/frp/pkg/policy/security" ) -func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { +func (v *ConfigValidator) ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { var ( warnings Warning errs error @@ -42,6 +43,11 @@ func ValidateServerConfig(c *v1.ServerConfig) (Warning, error) { // Validate tokenSource if specified if c.Auth.TokenSource != nil { + if c.Auth.TokenSource.Type == "exec" { + if err := v.ValidateUnsafeFeature(security.TokenSourceExec); err != nil { + errs = AppendError(errs, err) + } + } if err := c.Auth.TokenSource.Validate(); err != nil { errs = AppendError(errs, fmt.Errorf("invalid auth.tokenSource: %v", err)) } diff --git a/pkg/config/v1/validation/validator.go b/pkg/config/v1/validation/validator.go new file mode 100644 index 00000000000..1cfe3b21299 --- /dev/null +++ b/pkg/config/v1/validation/validator.go @@ -0,0 +1,28 @@ +package validation + +import ( + "fmt" + + "github.com/fatedier/frp/pkg/policy/security" +) + +// ConfigValidator holds the context dependencies for configuration validation. +type ConfigValidator struct { + unsafeFeatures *security.UnsafeFeatures +} + +// NewConfigValidator creates a new ConfigValidator instance. +func NewConfigValidator(unsafeFeatures *security.UnsafeFeatures) *ConfigValidator { + return &ConfigValidator{ + unsafeFeatures: unsafeFeatures, + } +} + +// ValidateUnsafeFeature checks if a specific unsafe feature is enabled. +func (v *ConfigValidator) ValidateUnsafeFeature(feature string) error { + if !v.unsafeFeatures.IsEnabled(feature) { + return fmt.Errorf("unsafe feature %q is not enabled. "+ + "To enable it, ensure it is allowed in the configuration or command line flags", feature) + } + return nil +} diff --git a/server/control.go b/server/control.go index 65d52062996..af9c9de36a6 100644 --- a/server/control.go +++ b/server/control.go @@ -106,6 +106,8 @@ type Control struct { // verifies authentication based on selected method authVerifier auth.Verifier + // key used for connection encryption + encryptionKey []byte // other components can use this to communicate with client msgTransporter transport.MessageTransporter @@ -157,6 +159,7 @@ func NewControl( pxyManager *proxy.Manager, pluginManager *plugin.Manager, authVerifier auth.Verifier, + encryptionKey []byte, ctlConn net.Conn, ctlConnEncrypted bool, loginMsg *msg.Login, @@ -171,6 +174,7 @@ func NewControl( pxyManager: pxyManager, pluginManager: pluginManager, authVerifier: authVerifier, + encryptionKey: encryptionKey, conn: ctlConn, loginMsg: loginMsg, workConnCh: make(chan net.Conn, poolCount+10), @@ -186,7 +190,7 @@ func NewControl( ctl.lastPing.Store(time.Now()) if ctlConnEncrypted { - cryptoRW, err := netpkg.NewCryptoReadWriter(ctl.conn, []byte(ctl.serverCfg.Auth.Token)) + cryptoRW, err := netpkg.NewCryptoReadWriter(ctl.conn, ctl.encryptionKey) if err != nil { return nil, err } @@ -478,6 +482,7 @@ func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err GetWorkConnFn: ctl.GetWorkConn, Configurer: pxyConf, ServerCfg: ctl.serverCfg, + EncryptionKey: ctl.encryptionKey, }) if err != nil { return remoteAddr, err diff --git a/server/proxy/http.go b/server/proxy/http.go index 9a02dcddce3..2c4f1fd4c8d 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -165,7 +165,7 @@ func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Conn, err err var rwc io.ReadWriteCloser = tmpConn if pxy.cfg.Transport.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Auth.Token)) + rwc, err = libio.WithEncryption(rwc, pxy.encryptionKey) if err != nil { xl.Errorf("create encryption stream error: %v", err) return diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index c7c18c32223..564eca282c4 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -68,6 +68,7 @@ type BaseProxy struct { poolCount int getWorkConnFn GetWorkConnFn serverCfg *v1.ServerConfig + encryptionKey []byte limiter *rate.Limiter userInfo plugin.UserInfo loginMsg *msg.Login @@ -213,7 +214,6 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { xl := xlog.FromContextSafe(pxy.Context()) defer userConn.Close() - serverCfg := pxy.serverCfg cfg := pxy.configurer.GetBaseConfig() // server plugin hook rc := pxy.GetResourceController() @@ -240,7 +240,7 @@ func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { xl.Tracef("handler user tcp connection, use_encryption: %t, use_compression: %t", cfg.Transport.UseEncryption, cfg.Transport.UseCompression) if cfg.Transport.UseEncryption { - local, err = libio.WithEncryption(local, []byte(serverCfg.Auth.Token)) + local, err = libio.WithEncryption(local, pxy.encryptionKey) if err != nil { xl.Errorf("create encryption stream error: %v", err) return @@ -279,6 +279,7 @@ type Options struct { GetWorkConnFn GetWorkConnFn Configurer v1.ProxyConfigurer ServerCfg *v1.ServerConfig + EncryptionKey []byte } func NewProxy(ctx context.Context, options *Options) (pxy Proxy, err error) { @@ -298,6 +299,7 @@ func NewProxy(ctx context.Context, options *Options) (pxy Proxy, err error) { poolCount: options.PoolCount, getWorkConnFn: options.GetWorkConnFn, serverCfg: options.ServerCfg, + encryptionKey: options.EncryptionKey, limiter: limiter, xl: xl, ctx: xlog.NewContext(ctx, xl), diff --git a/server/proxy/udp.go b/server/proxy/udp.go index 53a07d52676..3751dc9bfad 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -205,7 +205,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) { var rwc io.ReadWriteCloser = workConn if pxy.cfg.Transport.UseEncryption { - rwc, err = libio.WithEncryption(rwc, []byte(pxy.serverCfg.Auth.Token)) + rwc, err = libio.WithEncryption(rwc, pxy.encryptionKey) if err != nil { xl.Errorf("create encryption stream error: %v", err) workConn.Close() diff --git a/server/service.go b/server/service.go index 1fe882d293a..de3af837610 100644 --- a/server/service.go +++ b/server/service.go @@ -113,8 +113,8 @@ type Service struct { sshTunnelGateway *ssh.Gateway - // Verifies authentication based on selected method - authVerifier auth.Verifier + // Auth runtime and encryption materials + auth *auth.ServerAuth tlsConfig *tls.Config @@ -149,6 +149,11 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { } } + authRuntime, err := auth.BuildServerAuth(&cfg.Auth) + if err != nil { + return nil, err + } + svr := &Service{ ctlManager: NewControlManager(), pxyManager: proxy.NewManager(), @@ -160,7 +165,7 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { }, sshTunnelListener: netpkg.NewInternalListener(), httpVhostRouter: vhost.NewRouters(), - authVerifier: auth.NewAuthVerifier(cfg.Auth), + auth: authRuntime, webServer: webServer, tlsConfig: tlsConfig, cfg: cfg, @@ -586,7 +591,7 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login, inter ctlConn.RemoteAddr().String(), loginMsg.Version, loginMsg.Hostname, loginMsg.Os, loginMsg.Arch) // Check auth. - authVerifier := svr.authVerifier + authVerifier := svr.auth.Verifier if internal && loginMsg.ClientSpec.AlwaysAuthPass { authVerifier = auth.AlwaysPassVerifier } @@ -595,7 +600,7 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login, inter } // TODO(fatedier): use SessionContext - ctl, err := NewControl(ctx, svr.rc, svr.pxyManager, svr.pluginManager, authVerifier, ctlConn, !internal, loginMsg, svr.cfg) + ctl, err := NewControl(ctx, svr.rc, svr.pxyManager, svr.pluginManager, authVerifier, svr.auth.EncryptionKey(), ctlConn, !internal, loginMsg, svr.cfg) if err != nil { xl.Warnf("create new controller error: %v", err) // don't return detailed errors to client From ef96481f58122ec00d2aa168cc3203532197b014 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 25 Dec 2025 10:15:40 +0800 Subject: [PATCH 299/444] update version and release notes (#5106) --- Release.md | 1 + pkg/util/version/version.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Release.md b/Release.md index 3775da513f4..c1861c58839 100644 --- a/Release.md +++ b/Release.md @@ -2,6 +2,7 @@ * HTTPS proxies now support load balancing groups. Multiple HTTPS proxies can be configured with the same `loadBalancer.group` and `loadBalancer.groupKey` to share the same custom domain and distribute traffic across multiple backend services, similar to the existing TCP and HTTP load balancing capabilities. * Individual frpc proxies and visitors now accept an `enabled` flag (defaults to true), letting you disable specific entries without relying on the global `start` list—disabled blocks are skipped when client configs load. +* OIDC authentication now supports a `tokenSource` field to dynamically obtain tokens from external sources. You can use `type = "file"` to read a token from a file, or `type = "exec"` to run an external command (e.g., a cloud CLI or secrets manager) and capture its stdout as the token. The `exec` type requires the `--allow-unsafe=TokenSourceExec` CLI flag for security reasons. ## Improvements diff --git a/pkg/util/version/version.go b/pkg/util/version/version.go index 0f4ec433898..65f30f06c9a 100644 --- a/pkg/util/version/version.go +++ b/pkg/util/version/version.go @@ -14,7 +14,7 @@ package version -var version = "0.65.0" +var version = "0.66.0" func Full() string { return version From 33428ab538b7c55d46c70e2f04cc153f2400cd5b Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 4 Jan 2026 14:45:51 +0800 Subject: [PATCH 300/444] add e2e tests for exec-based token source (#5111) --- test/e2e/v1/basic/token_source.go | 162 ++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) diff --git a/test/e2e/v1/basic/token_source.go b/test/e2e/v1/basic/token_source.go index 95bb8dd4b0c..4ed7051c5c1 100644 --- a/test/e2e/v1/basic/token_source.go +++ b/test/e2e/v1/basic/token_source.go @@ -29,6 +29,18 @@ import ( var _ = ginkgo.Describe("[Feature: TokenSource]", func() { f := framework.NewDefaultFramework() + createExecTokenScript := func(name string) string { + scriptPath := filepath.Join(f.TempDirectory, name) + scriptContent := `#!/bin/sh +printf '%s\n' "$1" +` + err := os.WriteFile(scriptPath, []byte(scriptContent), 0o600) + framework.ExpectNoError(err) + err = os.Chmod(scriptPath, 0o700) + framework.ExpectNoError(err) + return scriptPath + } + ginkgo.Describe("File-based token loading", func() { ginkgo.It("should work with file tokenSource", func() { // Create a temporary token file @@ -214,4 +226,154 @@ auth.tokenSource.file.path = "%s" f.RunProcesses([]string{serverConf}, []string{}) }) }) + + ginkgo.Describe("Exec-based token loading", func() { + ginkgo.It("should work with server tokenSource", func() { + execValue := "exec-server-value" + scriptPath := createExecTokenScript("server_token_exec.sh") + + serverPort := f.AllocPort() + remotePort := f.AllocPort() + + serverConf := fmt.Sprintf(` +bindAddr = "0.0.0.0" +bindPort = %d + +auth.tokenSource.type = "exec" +auth.tokenSource.exec.command = %q +auth.tokenSource.exec.args = [%q] +`, serverPort, scriptPath, execValue) + + clientConf := fmt.Sprintf(` +serverAddr = "127.0.0.1" +serverPort = %d +loginFailExit = false +auth.token = %q + +[[proxies]] +name = "tcp" +type = "tcp" +localPort = %d +remotePort = %d +`, serverPort, execValue, f.PortByName(framework.TCPEchoServerPort), remotePort) + + serverConfigPath := f.GenerateConfigFile(serverConf) + clientConfigPath := f.GenerateConfigFile(clientConf) + + _, _, err := f.RunFrps("-c", serverConfigPath, "--allow-unsafe=TokenSourceExec") + framework.ExpectNoError(err) + + _, _, err = f.RunFrpc("-c", clientConfigPath, "--allow-unsafe=TokenSourceExec") + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + + ginkgo.It("should work with client tokenSource", func() { + execValue := "exec-client-value" + scriptPath := createExecTokenScript("client_token_exec.sh") + + serverPort := f.AllocPort() + remotePort := f.AllocPort() + + serverConf := fmt.Sprintf(` +bindAddr = "0.0.0.0" +bindPort = %d + +auth.token = %q +`, serverPort, execValue) + + clientConf := fmt.Sprintf(` +serverAddr = "127.0.0.1" +serverPort = %d +loginFailExit = false + +auth.tokenSource.type = "exec" +auth.tokenSource.exec.command = %q +auth.tokenSource.exec.args = [%q] + +[[proxies]] +name = "tcp" +type = "tcp" +localPort = %d +remotePort = %d +`, serverPort, scriptPath, execValue, f.PortByName(framework.TCPEchoServerPort), remotePort) + + serverConfigPath := f.GenerateConfigFile(serverConf) + clientConfigPath := f.GenerateConfigFile(clientConf) + + _, _, err := f.RunFrps("-c", serverConfigPath, "--allow-unsafe=TokenSourceExec") + framework.ExpectNoError(err) + + _, _, err = f.RunFrpc("-c", clientConfigPath, "--allow-unsafe=TokenSourceExec") + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + + ginkgo.It("should work with both server and client tokenSource", func() { + execValue := "exec-shared-value" + scriptPath := createExecTokenScript("shared_token_exec.sh") + + serverPort := f.AllocPort() + remotePort := f.AllocPort() + + serverConf := fmt.Sprintf(` +bindAddr = "0.0.0.0" +bindPort = %d + +auth.tokenSource.type = "exec" +auth.tokenSource.exec.command = %q +auth.tokenSource.exec.args = [%q] +`, serverPort, scriptPath, execValue) + + clientConf := fmt.Sprintf(` +serverAddr = "127.0.0.1" +serverPort = %d +loginFailExit = false + +auth.tokenSource.type = "exec" +auth.tokenSource.exec.command = %q +auth.tokenSource.exec.args = [%q] + +[[proxies]] +name = "tcp" +type = "tcp" +localPort = %d +remotePort = %d +`, serverPort, scriptPath, execValue, f.PortByName(framework.TCPEchoServerPort), remotePort) + + serverConfigPath := f.GenerateConfigFile(serverConf) + clientConfigPath := f.GenerateConfigFile(clientConf) + + _, _, err := f.RunFrps("-c", serverConfigPath, "--allow-unsafe=TokenSourceExec") + framework.ExpectNoError(err) + + _, _, err = f.RunFrpc("-c", clientConfigPath, "--allow-unsafe=TokenSourceExec") + framework.ExpectNoError(err) + + framework.NewRequestExpect(f).Port(remotePort).Ensure() + }) + + ginkgo.It("should fail validation without allow-unsafe", func() { + execValue := "exec-unsafe-value" + scriptPath := createExecTokenScript("unsafe_token_exec.sh") + + serverPort := f.AllocPort() + serverConf := fmt.Sprintf(` +bindAddr = "0.0.0.0" +bindPort = %d + +auth.tokenSource.type = "exec" +auth.tokenSource.exec.command = %q +auth.tokenSource.exec.args = [%q] +`, serverPort, scriptPath, execValue) + + serverConfigPath := f.GenerateConfigFile(serverConf) + + _, output, err := f.RunFrps("verify", "-c", serverConfigPath) + framework.ExpectNoError(err) + framework.ExpectContainSubstring(output, "unsafe feature \"TokenSourceExec\" is not enabled") + }) + }) }) From bc378bcbec9f7ce5fbb7bcd34252d75382bdb4d8 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 8 Jan 2026 19:54:13 +0800 Subject: [PATCH 301/444] rotate gold sponsor order periodically (#5114) --- README.md | 19 ++++++++++--------- README_zh.md | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index a99b2277094..822e1023415 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,16 @@ frp is an open source project with its ongoing development made possible entirel

Gold Sponsors

+

+ + +
+ Warp, built for collaborating with AI Agents +
+ Available for macOS, Linux and Windows +
+

+

@@ -49,15 +59,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and All-in-one platform to Test, Mock and Intercept APIs.

-

- - -
- Warp, built for collaborating with AI Agents -
- Available for macOS, Linux and Windows -
-

## What is frp? diff --git a/README_zh.md b/README_zh.md index 727299bc554..f62b3f46d3d 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,6 +15,16 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

Gold Sponsors

+

+ + +
+ Warp, built for collaborating with AI Agents +
+ Available for macOS, Linux and Windows +
+

+

@@ -50,15 +60,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and All-in-one platform to Test, Mock and Intercept APIs.

-

- - -
- Warp, built for collaborating with AI Agents -
- Available for macOS, Linux and Windows -
-

## 为什么使用 frp ? From 36718d88e4e832cd4b03deb03d7cc3e1538b6846 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 8 Jan 2026 20:07:14 +0800 Subject: [PATCH 302/444] server: add client registry with dashboard support (#5115) --- .../{index-bLBhaJo8.js => index-HyKZ_pht.js} | 2 +- assets/frpc/static/index.html | 2 +- assets/frps/static/index-82-40HIG.js | 84 - assets/frps/static/index-BUrDiw1t.js | 1 + assets/frps/static/index-D4KRVvIu.css | 1 + assets/frps/static/index-rzPDshRD.css | 1 - assets/frps/static/index.html | 6 +- client/service.go | 4 + conf/frpc_full_example.toml | 2 + pkg/config/flags.go | 1 + pkg/config/v1/client.go | 2 + pkg/msg/msg.go | 1 + server/client_registry.go | 146 ++ server/control.go | 3 + server/dashboard_api.go | 151 ++ server/service.go | 19 +- web/frps/.eslintrc.cjs | 2 +- web/frps/components.d.ts | 25 +- web/frps/index.html | 2 +- web/frps/package.json | 32 +- web/frps/src/App.vue | 329 ++- web/frps/src/api/client.ts | 10 + web/frps/src/api/http.ts | 50 + web/frps/src/api/proxy.ts | 18 + web/frps/src/api/server.ts | 6 + web/frps/src/assets/css/custom.css | 89 + web/frps/src/assets/css/dark.css | 58 + web/frps/src/assets/custom.css | 22 - web/frps/src/assets/dark.css | 5 - web/frps/src/assets/icons/github.svg | 3 + web/frps/src/components/ClientCard.vue | 229 ++ web/frps/src/components/LongSpan.vue | 15 - web/frps/src/components/ProxiesHTTP.vue | 42 - web/frps/src/components/ProxiesHTTPS.vue | 42 - web/frps/src/components/ProxiesSTCP.vue | 27 - web/frps/src/components/ProxiesSUDP.vue | 27 - web/frps/src/components/ProxiesTCP.vue | 27 - web/frps/src/components/ProxiesTCPMux.vue | 38 - web/frps/src/components/ProxiesUDP.vue | 27 - web/frps/src/components/ProxyView.vue | 145 -- web/frps/src/components/ProxyViewExpand.vue | 25 +- web/frps/src/components/ServerOverview.vue | 195 -- web/frps/src/components/StatCard.vue | 202 ++ web/frps/src/components/Traffic.vue | 250 +- web/frps/src/main.ts | 5 +- web/frps/src/router/index.ts | 48 +- web/frps/src/svg.d.ts | 5 + web/frps/src/types/client.ts | 12 + web/frps/src/types/proxy.ts | 21 + web/frps/src/types/server.ts | 22 + web/frps/src/utils/chart.ts | 293 --- web/frps/src/utils/client.ts | 82 + web/frps/src/utils/format.ts | 33 + web/frps/src/utils/proxy.ts | 2 +- web/frps/src/views/Clients.vue | 169 ++ web/frps/src/views/Proxies.vue | 375 +++ web/frps/src/views/ServerOverview.vue | 457 ++++ web/frps/vite.config.mts | 20 + web/frps/yarn.lock | 2183 +++++++++++------ 59 files changed, 4204 insertions(+), 1891 deletions(-) rename assets/frpc/static/{index-bLBhaJo8.js => index-HyKZ_pht.js} (99%) delete mode 100644 assets/frps/static/index-82-40HIG.js create mode 100644 assets/frps/static/index-BUrDiw1t.js create mode 100644 assets/frps/static/index-D4KRVvIu.css delete mode 100644 assets/frps/static/index-rzPDshRD.css create mode 100644 server/client_registry.go create mode 100644 web/frps/src/api/client.ts create mode 100644 web/frps/src/api/http.ts create mode 100644 web/frps/src/api/proxy.ts create mode 100644 web/frps/src/api/server.ts create mode 100644 web/frps/src/assets/css/custom.css create mode 100644 web/frps/src/assets/css/dark.css delete mode 100644 web/frps/src/assets/custom.css delete mode 100644 web/frps/src/assets/dark.css create mode 100644 web/frps/src/assets/icons/github.svg create mode 100644 web/frps/src/components/ClientCard.vue delete mode 100644 web/frps/src/components/LongSpan.vue delete mode 100644 web/frps/src/components/ProxiesHTTP.vue delete mode 100644 web/frps/src/components/ProxiesHTTPS.vue delete mode 100644 web/frps/src/components/ProxiesSTCP.vue delete mode 100644 web/frps/src/components/ProxiesSUDP.vue delete mode 100644 web/frps/src/components/ProxiesTCP.vue delete mode 100644 web/frps/src/components/ProxiesTCPMux.vue delete mode 100644 web/frps/src/components/ProxiesUDP.vue delete mode 100644 web/frps/src/components/ProxyView.vue delete mode 100644 web/frps/src/components/ServerOverview.vue create mode 100644 web/frps/src/components/StatCard.vue create mode 100644 web/frps/src/svg.d.ts create mode 100644 web/frps/src/types/client.ts create mode 100644 web/frps/src/types/proxy.ts create mode 100644 web/frps/src/types/server.ts delete mode 100644 web/frps/src/utils/chart.ts create mode 100644 web/frps/src/utils/client.ts create mode 100644 web/frps/src/utils/format.ts create mode 100644 web/frps/src/views/Clients.vue create mode 100644 web/frps/src/views/Proxies.vue create mode 100644 web/frps/src/views/ServerOverview.vue diff --git a/assets/frpc/static/index-bLBhaJo8.js b/assets/frpc/static/index-HyKZ_pht.js similarity index 99% rename from assets/frpc/static/index-bLBhaJo8.js rename to assets/frpc/static/index-HyKZ_pht.js index 2a5ed5ef07d..5439f282cb5 100644 --- a/assets/frpc/static/index-bLBhaJo8.js +++ b/assets/frpc/static/index-HyKZ_pht.js @@ -39,4 +39,4 @@ var lv=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var wA=lv((Pt,Rt) * vue-router v4.2.5 * (c) 2023 Eduardo San Martin Morote * @license MIT - */const Ar=typeof window<"u";function pO(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const je=Object.assign;function Wl(e,t){const n={};for(const r in t){const o=t[r];n[r]=Zt(o)?o.map(e):e(o)}return n}const wo=()=>{},Zt=Array.isArray,hO=/\/$/,vO=e=>e.replace(hO,"");function Vl(e,t,n="/"){let r,o={},s="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(r=t.slice(0,i),s=t.slice(i+1,a>-1?a:t.length),o=e(s)),a>-1&&(r=r||t.slice(0,a),l=t.slice(a,t.length)),r=bO(r??t,n),{fullPath:r+(s&&"?")+s+l,path:r,query:o,hash:l}}function gO(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ff(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function mO(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Yr(t.matched[r],n.matched[o])&&Vh(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Yr(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Vh(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!yO(e[n],t[n]))return!1;return!0}function yO(e,t){return Zt(e)?df(e,t):Zt(t)?df(t,e):e===t}function df(e,t){return Zt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function bO(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,l,a;for(l=0;l1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(l-(l===r.length?1:0)).join("/")}var No;(function(e){e.pop="pop",e.push="push"})(No||(No={}));var Co;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Co||(Co={}));function wO(e){if(!e)if(Ar){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),vO(e)}const CO=/^[^#]+#/;function _O(e,t){return e.replace(CO,"#")+t}function SO(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const bl=()=>({left:window.pageXOffset,top:window.pageYOffset});function EO(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=SO(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function pf(e,t){return(history.state?history.state.position-t:-1)+e}const $a=new Map;function xO(e,t){$a.set(e,t)}function TO(e){const t=$a.get(e);return $a.delete(e),t}let OO=()=>location.protocol+"//"+location.host;function Kh(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let a=o.includes(e.slice(s))?e.slice(s).length:1,i=o.slice(a);return i[0]!=="/"&&(i="/"+i),ff(i,"")}return ff(n,e)+r+o}function AO(e,t,n,r){let o=[],s=[],l=null;const a=({state:d})=>{const p=Kh(e,location),h=n.value,v=t.value;let b=0;if(d){if(n.value=p,t.value=d,l&&l===h){l=null;return}b=v?d.position-v.position:0}else r(p);o.forEach(g=>{g(n.value,h,{delta:b,type:No.pop,direction:b?b>0?Co.forward:Co.back:Co.unknown})})};function i(){l=n.value}function u(d){o.push(d);const p=()=>{const h=o.indexOf(d);h>-1&&o.splice(h,1)};return s.push(p),p}function c(){const{history:d}=window;d.state&&d.replaceState(je({},d.state,{scroll:bl()}),"")}function f(){for(const d of s)d();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:i,listen:u,destroy:f}}function hf(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?bl():null}}function MO(e){const{history:t,location:n}=window,r={value:Kh(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(i,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:OO()+e+i;try{t[c?"replaceState":"pushState"](u,"",d),o.value=u}catch(p){console.error(p),n[c?"replace":"assign"](d)}}function l(i,u){const c=je({},t.state,hf(o.value.back,i,o.value.forward,!0),u,{position:o.value.position});s(i,c,!0),r.value=i}function a(i,u){const c=je({},o.value,t.state,{forward:i,scroll:bl()});s(c.current,c,!0);const f=je({},hf(r.value,i,null),{position:c.position+1},u);s(i,f,!1),r.value=i}return{location:r,state:o,push:a,replace:l}}function PO(e){e=wO(e);const t=MO(e),n=AO(e,t.state,t.location,t.replace);function r(s,l=!0){l||n.pauseListeners(),history.go(s)}const o=je({location:"",base:e,go:r,createHref:_O.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function RO(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),PO(e)}function $O(e){return typeof e=="string"||e&&typeof e=="object"}function Uh(e){return typeof e=="string"||typeof e=="symbol"}const Mn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Gh=Symbol("");var vf;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(vf||(vf={}));function Xr(e,t){return je(new Error,{type:e,[Gh]:!0},t)}function vn(e,t){return e instanceof Error&&Gh in e&&(t==null||!!(e.type&t))}const gf="[^/]+?",IO={sensitive:!1,strict:!1,start:!0,end:!0},NO=/[.+*?^${}()[\]/\\]/g;function LO(e,t){const n=je({},IO,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function FO(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const BO={type:0,value:""},HO=/[a-zA-Z0-9_]/;function DO(e){if(!e)return[[]];if(e==="/")return[[BO]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const o=[];let s;function l(){s&&o.push(s),s=[]}let a=0,i,u="",c="";function f(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=i}for(;a{l(w)}:wo}function l(c){if(Uh(c)){const f=r.get(c);f&&(r.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(l),f.alias.forEach(l))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&r.delete(c.record.name),c.children.forEach(l),c.alias.forEach(l))}}function a(){return n}function i(c){let f=0;for(;f=0&&(c.record.path!==n[f].record.path||!qh(c,n[f]));)f++;n.splice(f,0,c),c.record.name&&!bf(c)&&r.set(c.record.name,c)}function u(c,f){let d,p={},h,v;if("name"in c&&c.name){if(d=r.get(c.name),!d)throw Xr(1,{location:c});v=d.record.name,p=je(yf(f.params,d.keys.filter(w=>!w.optional).map(w=>w.name)),c.params&&yf(c.params,d.keys.map(w=>w.name))),h=d.stringify(p)}else if("path"in c)h=c.path,d=n.find(w=>w.re.test(h)),d&&(p=d.parse(h),v=d.record.name);else{if(d=f.name?r.get(f.name):n.find(w=>w.re.test(f.path)),!d)throw Xr(1,{location:c,currentLocation:f});v=d.record.name,p=je({},f.params,c.params),h=d.stringify(p)}const b=[];let g=d;for(;g;)b.unshift(g.record),g=g.parent;return{name:v,path:h,params:p,matched:b,meta:KO(b)}}return e.forEach(c=>s(c)),{addRoute:s,resolve:u,removeRoute:l,getRoutes:a,getRecordMatcher:o}}function yf(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function WO(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:VO(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function VO(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function bf(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function KO(e){return e.reduce((t,n)=>je(t,n.meta),{})}function wf(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function qh(e,t){return t.children.some(n=>n===e||qh(e,n))}const Yh=/#/g,UO=/&/g,GO=/\//g,qO=/=/g,YO=/\?/g,Xh=/\+/g,XO=/%5B/g,JO=/%5D/g,Jh=/%5E/g,ZO=/%60/g,Zh=/%7B/g,QO=/%7C/g,Qh=/%7D/g,eA=/%20/g;function Di(e){return encodeURI(""+e).replace(QO,"|").replace(XO,"[").replace(JO,"]")}function tA(e){return Di(e).replace(Zh,"{").replace(Qh,"}").replace(Jh,"^")}function Ia(e){return Di(e).replace(Xh,"%2B").replace(eA,"+").replace(Yh,"%23").replace(UO,"%26").replace(ZO,"`").replace(Zh,"{").replace(Qh,"}").replace(Jh,"^")}function nA(e){return Ia(e).replace(qO,"%3D")}function rA(e){return Di(e).replace(Yh,"%23").replace(YO,"%3F")}function oA(e){return e==null?"":rA(e).replace(GO,"%2F")}function Ks(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function sA(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Ia(s)):[r&&Ia(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function lA(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Zt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const aA=Symbol(""),_f=Symbol(""),zi=Symbol(""),ev=Symbol(""),Na=Symbol("");function ao(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Fn(e,t,n,r,o){const s=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const i=f=>{f===!1?a(Xr(4,{from:n,to:t})):f instanceof Error?a(f):$O(f)?a(Xr(2,{from:t,to:f})):(s&&r.enterCallbacks[o]===s&&typeof f=="function"&&s.push(f),l())},u=e.call(r&&r.instances[o],t,n,i);let c=Promise.resolve(u);e.length<3&&(c=c.then(i)),c.catch(f=>a(f))})}function Kl(e,t,n,r){const o=[];for(const s of e)for(const l in s.components){let a=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(iA(a)){const u=(a.__vccOpts||a)[t];u&&o.push(Fn(u,n,r,s,l))}else{let i=a();o.push(()=>i.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${s.path}"`));const c=pO(u)?u.default:u;s.components[l]=c;const d=(c.__vccOpts||c)[t];return d&&Fn(d,n,r,s,l)()}))}}return o}function iA(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Sf(e){const t=_e(zi),n=_e(ev),r=A(()=>t.resolve(m(e.to))),o=A(()=>{const{matched:i}=r.value,{length:u}=i,c=i[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(Yr.bind(null,c));if(d>-1)return d;const p=Ef(i[u-2]);return u>1&&Ef(c)===p&&f[f.length-1].path!==p?f.findIndex(Yr.bind(null,i[u-2])):d}),s=A(()=>o.value>-1&&dA(n.params,r.value.params)),l=A(()=>o.value>-1&&o.value===n.matched.length-1&&Vh(n.params,r.value.params));function a(i={}){return fA(i)?t[m(e.replace)?"replace":"push"](m(e.to)).catch(wo):Promise.resolve()}return{route:r,href:A(()=>r.value.href),isActive:s,isExactActive:l,navigate:a}}const uA=re({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Sf,setup(e,{slots:t}){const n=dn(Sf(e)),{options:r}=_e(zi),o=A(()=>({[xf(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[xf(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:ye("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),cA=uA;function fA(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function dA(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!Zt(o)||o.length!==r.length||r.some((s,l)=>s!==o[l]))return!1}return!0}function Ef(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const xf=(e,t,n)=>e??t??n,pA=re({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=_e(Na),o=A(()=>e.route||r.value),s=_e(_f,0),l=A(()=>{let u=m(s);const{matched:c}=o.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=A(()=>o.value.matched[l.value]);ut(_f,A(()=>l.value+1)),ut(aA,a),ut(Na,o);const i=M();return ge(()=>[i.value,a.value,e.name],([u,c,f],[d,p,h])=>{c&&(c.instances[f]=u,p&&p!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!Yr(c,p)||!d)&&(c.enterCallbacks[f]||[]).forEach(v=>v(u))},{flush:"post"}),()=>{const u=o.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return Tf(n.default,{Component:d,route:u});const p=f.props[c],h=p?p===!0?u.params:typeof p=="function"?p(u):p:null,b=ye(d,je({},h,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[c]=null)},ref:i}));return Tf(n.default,{Component:b,route:u})||b}}});function Tf(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const hA=pA;function vA(e){const t=jO(e.routes,e),n=e.parseQuery||sA,r=e.stringifyQuery||Cf,o=e.history,s=ao(),l=ao(),a=ao(),i=pr(Mn);let u=Mn;Ar&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Wl.bind(null,F=>""+F),f=Wl.bind(null,oA),d=Wl.bind(null,Ks);function p(F,Y){let Z,ae;return Uh(F)?(Z=t.getRecordMatcher(F),ae=Y):ae=F,t.addRoute(ae,Z)}function h(F){const Y=t.getRecordMatcher(F);Y&&t.removeRoute(Y)}function v(){return t.getRoutes().map(F=>F.record)}function b(F){return!!t.getRecordMatcher(F)}function g(F,Y){if(Y=je({},Y||i.value),typeof F=="string"){const x=Vl(n,F,Y.path),R=t.resolve({path:x.path},Y),j=o.createHref(x.fullPath);return je(x,R,{params:d(R.params),hash:Ks(x.hash),redirectedFrom:void 0,href:j})}let Z;if("path"in F)Z=je({},F,{path:Vl(n,F.path,Y.path).path});else{const x=je({},F.params);for(const R in x)x[R]==null&&delete x[R];Z=je({},F,{params:f(x)}),Y.params=f(Y.params)}const ae=t.resolve(Z,Y),Oe=F.hash||"";ae.params=c(d(ae.params));const Be=gO(r,je({},F,{hash:tA(Oe),path:ae.path})),S=o.createHref(Be);return je({fullPath:Be,hash:Oe,query:r===Cf?lA(F.query):F.query||{}},ae,{redirectedFrom:void 0,href:S})}function w(F){return typeof F=="string"?Vl(n,F,i.value.path):je({},F)}function T(F,Y){if(u!==F)return Xr(8,{from:Y,to:F})}function y(F){return C(F)}function O(F){return y(je(w(F),{replace:!0}))}function E(F){const Y=F.matched[F.matched.length-1];if(Y&&Y.redirect){const{redirect:Z}=Y;let ae=typeof Z=="function"?Z(F):Z;return typeof ae=="string"&&(ae=ae.includes("?")||ae.includes("#")?ae=w(ae):{path:ae},ae.params={}),je({query:F.query,hash:F.hash,params:"path"in ae?{}:F.params},ae)}}function C(F,Y){const Z=u=g(F),ae=i.value,Oe=F.state,Be=F.force,S=F.replace===!0,x=E(Z);if(x)return C(je(w(x),{state:typeof x=="object"?je({},Oe,x.state):Oe,force:Be,replace:S}),Y||Z);const R=Z;R.redirectedFrom=Y;let j;return!Be&&mO(r,ae,Z)&&(j=Xr(16,{to:R,from:ae}),oe(ae,ae,!0,!1)),(j?Promise.resolve(j):B(R,ae)).catch(D=>vn(D)?vn(D,2)?D:z(D):te(D,R,ae)).then(D=>{if(D){if(vn(D,2))return C(je({replace:S},w(D.to),{state:typeof D.to=="object"?je({},Oe,D.to.state):Oe,force:Be}),Y||R)}else D=I(R,ae,!0,S,Oe);return W(R,ae,D),D})}function _(F,Y){const Z=T(F,Y);return Z?Promise.reject(Z):Promise.resolve()}function P(F){const Y=Re.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(F):F()}function B(F,Y){let Z;const[ae,Oe,Be]=gA(F,Y);Z=Kl(ae.reverse(),"beforeRouteLeave",F,Y);for(const x of ae)x.leaveGuards.forEach(R=>{Z.push(Fn(R,F,Y))});const S=_.bind(null,F,Y);return Z.push(S),Ne(Z).then(()=>{Z=[];for(const x of s.list())Z.push(Fn(x,F,Y));return Z.push(S),Ne(Z)}).then(()=>{Z=Kl(Oe,"beforeRouteUpdate",F,Y);for(const x of Oe)x.updateGuards.forEach(R=>{Z.push(Fn(R,F,Y))});return Z.push(S),Ne(Z)}).then(()=>{Z=[];for(const x of Be)if(x.beforeEnter)if(Zt(x.beforeEnter))for(const R of x.beforeEnter)Z.push(Fn(R,F,Y));else Z.push(Fn(x.beforeEnter,F,Y));return Z.push(S),Ne(Z)}).then(()=>(F.matched.forEach(x=>x.enterCallbacks={}),Z=Kl(Be,"beforeRouteEnter",F,Y),Z.push(S),Ne(Z))).then(()=>{Z=[];for(const x of l.list())Z.push(Fn(x,F,Y));return Z.push(S),Ne(Z)}).catch(x=>vn(x,8)?x:Promise.reject(x))}function W(F,Y,Z){a.list().forEach(ae=>P(()=>ae(F,Y,Z)))}function I(F,Y,Z,ae,Oe){const Be=T(F,Y);if(Be)return Be;const S=Y===Mn,x=Ar?history.state:{};Z&&(ae||S?o.replace(F.fullPath,je({scroll:S&&x&&x.scroll},Oe)):o.push(F.fullPath,Oe)),i.value=F,oe(F,Y,Z,S),z()}let L;function V(){L||(L=o.listen((F,Y,Z)=>{if(!De.listening)return;const ae=g(F),Oe=E(ae);if(Oe){C(je(Oe,{replace:!0}),ae).catch(wo);return}u=ae;const Be=i.value;Ar&&xO(pf(Be.fullPath,Z.delta),bl()),B(ae,Be).catch(S=>vn(S,12)?S:vn(S,2)?(C(S.to,ae).then(x=>{vn(x,20)&&!Z.delta&&Z.type===No.pop&&o.go(-1,!1)}).catch(wo),Promise.reject()):(Z.delta&&o.go(-Z.delta,!1),te(S,ae,Be))).then(S=>{S=S||I(ae,Be,!1),S&&(Z.delta&&!vn(S,8)?o.go(-Z.delta,!1):Z.type===No.pop&&vn(S,20)&&o.go(-1,!1)),W(ae,Be,S)}).catch(wo)}))}let G=ao(),J=ao(),H;function te(F,Y,Z){z(F);const ae=J.list();return ae.length?ae.forEach(Oe=>Oe(F,Y,Z)):console.error(F),Promise.reject(F)}function k(){return H&&i.value!==Mn?Promise.resolve():new Promise((F,Y)=>{G.add([F,Y])})}function z(F){return H||(H=!F,V(),G.list().forEach(([Y,Z])=>F?Z(F):Y()),G.reset()),F}function oe(F,Y,Z,ae){const{scrollBehavior:Oe}=e;if(!Ar||!Oe)return Promise.resolve();const Be=!Z&&TO(pf(F.fullPath,0))||(ae||!Z)&&history.state&&history.state.scroll||null;return We().then(()=>Oe(F,Y,Be)).then(S=>S&&EO(S)).catch(S=>te(S,F,Y))}const se=F=>o.go(F);let xe;const Re=new Set,De={currentRoute:i,listening:!0,addRoute:p,removeRoute:h,hasRoute:b,getRoutes:v,resolve:g,options:e,push:y,replace:O,go:se,back:()=>se(-1),forward:()=>se(1),beforeEach:s.add,beforeResolve:l.add,afterEach:a.add,onError:J.add,isReady:k,install(F){const Y=this;F.component("RouterLink",cA),F.component("RouterView",hA),F.config.globalProperties.$router=Y,Object.defineProperty(F.config.globalProperties,"$route",{enumerable:!0,get:()=>m(i)}),Ar&&!xe&&i.value===Mn&&(xe=!0,y(o.location).catch(Oe=>{}));const Z={};for(const Oe in Mn)Object.defineProperty(Z,Oe,{get:()=>i.value[Oe],enumerable:!0});F.provide(zi,Y),F.provide(ev,Va(Z)),F.provide(Na,i);const ae=F.unmount;Re.add(F),F.unmount=function(){Re.delete(F),Re.size<1&&(u=Mn,L&&L(),L=null,i.value=Mn,xe=!1,H=!1),ae()}}};function Ne(F){return F.reduce((Y,Z)=>Y.then(()=>P(Z)),Promise.resolve())}return De}function gA(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let l=0;lYr(u,a))?r.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(u=>Yr(u,i))||o.push(i))}return[n,r,o]}const mA=re({__name:"Overview",setup(e){let t=M([]);return(()=>{fetch("/api/status",{credentials:"include"}).then(r=>r.json()).then(r=>{t.value=new Array;for(let o in r)for(let s of r[o])console.log(s),t.value.push(s)}).catch(r=>{nr({showClose:!0,message:"Get status info from frpc failed!"+r,type:"warning"})})})(),(r,o)=>{const s=PT,l=MT,a=Oh,i=Li;return N(),ie("div",null,[fe(i,null,{default:de(()=>[fe(a,{md:24},{default:de(()=>[ce("div",null,[fe(l,{data:m(t),stripe:"",style:{width:"100%"},"default-sort":{prop:"type",order:"ascending"}},{default:de(()=>[fe(s,{prop:"name",label:"name",sortable:""}),fe(s,{prop:"type",label:"type",width:"150",sortable:""}),fe(s,{prop:"local_addr",label:"local address",width:"200",sortable:""}),fe(s,{prop:"plugin",label:"plugin",width:"200",sortable:""}),fe(s,{prop:"remote_addr",label:"remote address",sortable:""}),fe(s,{prop:"status",label:"status",width:"150",sortable:""}),fe(s,{prop:"err",label:"info"})]),_:1},8,["data"])])]),_:1})]),_:1})])}}}),yA=re({__name:"ClientConfigure",setup(e){let t=M("");const n=()=>{fetch("/api/config",{credentials:"include"}).then(o=>o.text()).then(o=>{t.value=o}).catch(()=>{nr({showClose:!0,message:"Get configure content from frpc failed!",type:"warning"})})},r=()=>{oO.confirm("This operation will upload your frpc configure file content and hot reload it, do you want to continue?","Notice",{confirmButtonText:"Yes",cancelButtonText:"No",type:"warning"}).then(()=>{if(t.value==""){nr({message:"Configure content can not be empty!",type:"warning"});return}fetch("/api/config",{credentials:"include",method:"PUT",body:t.value}).then(()=>{fetch("/api/reload",{credentials:"include"}).then(()=>{nr({type:"success",message:"Success"})}).catch(o=>{nr({showClose:!0,message:"Reload frpc configure file error, "+o,type:"warning"})})}).catch(()=>{nr({showClose:!0,message:"Put config to frpc and hot reload failed!",type:"warning"})})}).catch(()=>{nr({message:"Canceled",type:"info"})})};return n(),(o,s)=>{const l=dh,a=Li,i=Yp;return N(),ie("div",null,[fe(a,{id:"head"},{default:de(()=>[fe(l,{type:"primary",onClick:n},{default:de(()=>[Et("Refresh")]),_:1}),fe(l,{type:"primary",onClick:r},{default:de(()=>[Et("Upload")]),_:1})]),_:1}),fe(i,{type:"textarea",autosize:"",modelValue:m(t),"onUpdate:modelValue":s[0]||(s[0]=u=>Xe(t)?t.value=u:t=u),placeholder:"frpc configrue file, can not be empty..."},null,8,["modelValue"])])}}}),bA=vA({history:RO(),routes:[{path:"/",name:"Overview",component:mA},{path:"/configure",name:"ClientConfigure",component:yA}]}),tv=Mm(dO);tv.use(bA);tv.mount("#app")});export default wA(); + */const Ar=typeof window<"u";function pO(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const je=Object.assign;function Wl(e,t){const n={};for(const r in t){const o=t[r];n[r]=Zt(o)?o.map(e):e(o)}return n}const wo=()=>{},Zt=Array.isArray,hO=/\/$/,vO=e=>e.replace(hO,"");function Vl(e,t,n="/"){let r,o={},s="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(r=t.slice(0,i),s=t.slice(i+1,a>-1?a:t.length),o=e(s)),a>-1&&(r=r||t.slice(0,a),l=t.slice(a,t.length)),r=bO(r??t,n),{fullPath:r+(s&&"?")+s+l,path:r,query:o,hash:l}}function gO(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ff(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function mO(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Yr(t.matched[r],n.matched[o])&&Vh(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Yr(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Vh(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!yO(e[n],t[n]))return!1;return!0}function yO(e,t){return Zt(e)?df(e,t):Zt(t)?df(t,e):e===t}function df(e,t){return Zt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function bO(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,l,a;for(l=0;l1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(l-(l===r.length?1:0)).join("/")}var No;(function(e){e.pop="pop",e.push="push"})(No||(No={}));var Co;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Co||(Co={}));function wO(e){if(!e)if(Ar){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),vO(e)}const CO=/^[^#]+#/;function _O(e,t){return e.replace(CO,"#")+t}function SO(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const bl=()=>({left:window.pageXOffset,top:window.pageYOffset});function EO(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=SO(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function pf(e,t){return(history.state?history.state.position-t:-1)+e}const $a=new Map;function xO(e,t){$a.set(e,t)}function TO(e){const t=$a.get(e);return $a.delete(e),t}let OO=()=>location.protocol+"//"+location.host;function Kh(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let a=o.includes(e.slice(s))?e.slice(s).length:1,i=o.slice(a);return i[0]!=="/"&&(i="/"+i),ff(i,"")}return ff(n,e)+r+o}function AO(e,t,n,r){let o=[],s=[],l=null;const a=({state:d})=>{const p=Kh(e,location),h=n.value,v=t.value;let b=0;if(d){if(n.value=p,t.value=d,l&&l===h){l=null;return}b=v?d.position-v.position:0}else r(p);o.forEach(g=>{g(n.value,h,{delta:b,type:No.pop,direction:b?b>0?Co.forward:Co.back:Co.unknown})})};function i(){l=n.value}function u(d){o.push(d);const p=()=>{const h=o.indexOf(d);h>-1&&o.splice(h,1)};return s.push(p),p}function c(){const{history:d}=window;d.state&&d.replaceState(je({},d.state,{scroll:bl()}),"")}function f(){for(const d of s)d();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:i,listen:u,destroy:f}}function hf(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?bl():null}}function MO(e){const{history:t,location:n}=window,r={value:Kh(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(i,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:OO()+e+i;try{t[c?"replaceState":"pushState"](u,"",d),o.value=u}catch(p){console.error(p),n[c?"replace":"assign"](d)}}function l(i,u){const c=je({},t.state,hf(o.value.back,i,o.value.forward,!0),u,{position:o.value.position});s(i,c,!0),r.value=i}function a(i,u){const c=je({},o.value,t.state,{forward:i,scroll:bl()});s(c.current,c,!0);const f=je({},hf(r.value,i,null),{position:c.position+1},u);s(i,f,!1),r.value=i}return{location:r,state:o,push:a,replace:l}}function PO(e){e=wO(e);const t=MO(e),n=AO(e,t.state,t.location,t.replace);function r(s,l=!0){l||n.pauseListeners(),history.go(s)}const o=je({location:"",base:e,go:r,createHref:_O.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function RO(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),PO(e)}function $O(e){return typeof e=="string"||e&&typeof e=="object"}function Uh(e){return typeof e=="string"||typeof e=="symbol"}const Mn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Gh=Symbol("");var vf;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(vf||(vf={}));function Xr(e,t){return je(new Error,{type:e,[Gh]:!0},t)}function vn(e,t){return e instanceof Error&&Gh in e&&(t==null||!!(e.type&t))}const gf="[^/]+?",IO={sensitive:!1,strict:!1,start:!0,end:!0},NO=/[.+*?^${}()[\]/\\]/g;function LO(e,t){const n=je({},IO,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function FO(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const BO={type:0,value:""},HO=/[a-zA-Z0-9_]/;function DO(e){if(!e)return[[]];if(e==="/")return[[BO]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const o=[];let s;function l(){s&&o.push(s),s=[]}let a=0,i,u="",c="";function f(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=i}for(;a{l(w)}:wo}function l(c){if(Uh(c)){const f=r.get(c);f&&(r.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(l),f.alias.forEach(l))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&r.delete(c.record.name),c.children.forEach(l),c.alias.forEach(l))}}function a(){return n}function i(c){let f=0;for(;f=0&&(c.record.path!==n[f].record.path||!qh(c,n[f]));)f++;n.splice(f,0,c),c.record.name&&!bf(c)&&r.set(c.record.name,c)}function u(c,f){let d,p={},h,v;if("name"in c&&c.name){if(d=r.get(c.name),!d)throw Xr(1,{location:c});v=d.record.name,p=je(yf(f.params,d.keys.filter(w=>!w.optional).map(w=>w.name)),c.params&&yf(c.params,d.keys.map(w=>w.name))),h=d.stringify(p)}else if("path"in c)h=c.path,d=n.find(w=>w.re.test(h)),d&&(p=d.parse(h),v=d.record.name);else{if(d=f.name?r.get(f.name):n.find(w=>w.re.test(f.path)),!d)throw Xr(1,{location:c,currentLocation:f});v=d.record.name,p=je({},f.params,c.params),h=d.stringify(p)}const b=[];let g=d;for(;g;)b.unshift(g.record),g=g.parent;return{name:v,path:h,params:p,matched:b,meta:KO(b)}}return e.forEach(c=>s(c)),{addRoute:s,resolve:u,removeRoute:l,getRoutes:a,getRecordMatcher:o}}function yf(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function WO(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:VO(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function VO(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function bf(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function KO(e){return e.reduce((t,n)=>je(t,n.meta),{})}function wf(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function qh(e,t){return t.children.some(n=>n===e||qh(e,n))}const Yh=/#/g,UO=/&/g,GO=/\//g,qO=/=/g,YO=/\?/g,Xh=/\+/g,XO=/%5B/g,JO=/%5D/g,Jh=/%5E/g,ZO=/%60/g,Zh=/%7B/g,QO=/%7C/g,Qh=/%7D/g,eA=/%20/g;function Di(e){return encodeURI(""+e).replace(QO,"|").replace(XO,"[").replace(JO,"]")}function tA(e){return Di(e).replace(Zh,"{").replace(Qh,"}").replace(Jh,"^")}function Ia(e){return Di(e).replace(Xh,"%2B").replace(eA,"+").replace(Yh,"%23").replace(UO,"%26").replace(ZO,"`").replace(Zh,"{").replace(Qh,"}").replace(Jh,"^")}function nA(e){return Ia(e).replace(qO,"%3D")}function rA(e){return Di(e).replace(Yh,"%23").replace(YO,"%3F")}function oA(e){return e==null?"":rA(e).replace(GO,"%2F")}function Ks(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function sA(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Ia(s)):[r&&Ia(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function lA(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Zt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const aA=Symbol(""),_f=Symbol(""),zi=Symbol(""),ev=Symbol(""),Na=Symbol("");function ao(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Fn(e,t,n,r,o){const s=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const i=f=>{f===!1?a(Xr(4,{from:n,to:t})):f instanceof Error?a(f):$O(f)?a(Xr(2,{from:t,to:f})):(s&&r.enterCallbacks[o]===s&&typeof f=="function"&&s.push(f),l())},u=e.call(r&&r.instances[o],t,n,i);let c=Promise.resolve(u);e.length<3&&(c=c.then(i)),c.catch(f=>a(f))})}function Kl(e,t,n,r){const o=[];for(const s of e)for(const l in s.components){let a=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(iA(a)){const u=(a.__vccOpts||a)[t];u&&o.push(Fn(u,n,r,s,l))}else{let i=a();o.push(()=>i.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${s.path}"`));const c=pO(u)?u.default:u;s.components[l]=c;const d=(c.__vccOpts||c)[t];return d&&Fn(d,n,r,s,l)()}))}}return o}function iA(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Sf(e){const t=_e(zi),n=_e(ev),r=A(()=>t.resolve(m(e.to))),o=A(()=>{const{matched:i}=r.value,{length:u}=i,c=i[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(Yr.bind(null,c));if(d>-1)return d;const p=Ef(i[u-2]);return u>1&&Ef(c)===p&&f[f.length-1].path!==p?f.findIndex(Yr.bind(null,i[u-2])):d}),s=A(()=>o.value>-1&&dA(n.params,r.value.params)),l=A(()=>o.value>-1&&o.value===n.matched.length-1&&Vh(n.params,r.value.params));function a(i={}){return fA(i)?t[m(e.replace)?"replace":"push"](m(e.to)).catch(wo):Promise.resolve()}return{route:r,href:A(()=>r.value.href),isActive:s,isExactActive:l,navigate:a}}const uA=re({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Sf,setup(e,{slots:t}){const n=dn(Sf(e)),{options:r}=_e(zi),o=A(()=>({[xf(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[xf(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:ye("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),cA=uA;function fA(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function dA(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!Zt(o)||o.length!==r.length||r.some((s,l)=>s!==o[l]))return!1}return!0}function Ef(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const xf=(e,t,n)=>e??t??n,pA=re({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=_e(Na),o=A(()=>e.route||r.value),s=_e(_f,0),l=A(()=>{let u=m(s);const{matched:c}=o.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=A(()=>o.value.matched[l.value]);ut(_f,A(()=>l.value+1)),ut(aA,a),ut(Na,o);const i=M();return ge(()=>[i.value,a.value,e.name],([u,c,f],[d,p,h])=>{c&&(c.instances[f]=u,p&&p!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!Yr(c,p)||!d)&&(c.enterCallbacks[f]||[]).forEach(v=>v(u))},{flush:"post"}),()=>{const u=o.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return Tf(n.default,{Component:d,route:u});const p=f.props[c],h=p?p===!0?u.params:typeof p=="function"?p(u):p:null,b=ye(d,je({},h,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[c]=null)},ref:i}));return Tf(n.default,{Component:b,route:u})||b}}});function Tf(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const hA=pA;function vA(e){const t=jO(e.routes,e),n=e.parseQuery||sA,r=e.stringifyQuery||Cf,o=e.history,s=ao(),l=ao(),a=ao(),i=pr(Mn);let u=Mn;Ar&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Wl.bind(null,F=>""+F),f=Wl.bind(null,oA),d=Wl.bind(null,Ks);function p(F,Y){let Z,ae;return Uh(F)?(Z=t.getRecordMatcher(F),ae=Y):ae=F,t.addRoute(ae,Z)}function h(F){const Y=t.getRecordMatcher(F);Y&&t.removeRoute(Y)}function v(){return t.getRoutes().map(F=>F.record)}function b(F){return!!t.getRecordMatcher(F)}function g(F,Y){if(Y=je({},Y||i.value),typeof F=="string"){const x=Vl(n,F,Y.path),R=t.resolve({path:x.path},Y),j=o.createHref(x.fullPath);return je(x,R,{params:d(R.params),hash:Ks(x.hash),redirectedFrom:void 0,href:j})}let Z;if("path"in F)Z=je({},F,{path:Vl(n,F.path,Y.path).path});else{const x=je({},F.params);for(const R in x)x[R]==null&&delete x[R];Z=je({},F,{params:f(x)}),Y.params=f(Y.params)}const ae=t.resolve(Z,Y),Oe=F.hash||"";ae.params=c(d(ae.params));const Be=gO(r,je({},F,{hash:tA(Oe),path:ae.path})),S=o.createHref(Be);return je({fullPath:Be,hash:Oe,query:r===Cf?lA(F.query):F.query||{}},ae,{redirectedFrom:void 0,href:S})}function w(F){return typeof F=="string"?Vl(n,F,i.value.path):je({},F)}function T(F,Y){if(u!==F)return Xr(8,{from:Y,to:F})}function y(F){return C(F)}function O(F){return y(je(w(F),{replace:!0}))}function E(F){const Y=F.matched[F.matched.length-1];if(Y&&Y.redirect){const{redirect:Z}=Y;let ae=typeof Z=="function"?Z(F):Z;return typeof ae=="string"&&(ae=ae.includes("?")||ae.includes("#")?ae=w(ae):{path:ae},ae.params={}),je({query:F.query,hash:F.hash,params:"path"in ae?{}:F.params},ae)}}function C(F,Y){const Z=u=g(F),ae=i.value,Oe=F.state,Be=F.force,S=F.replace===!0,x=E(Z);if(x)return C(je(w(x),{state:typeof x=="object"?je({},Oe,x.state):Oe,force:Be,replace:S}),Y||Z);const R=Z;R.redirectedFrom=Y;let j;return!Be&&mO(r,ae,Z)&&(j=Xr(16,{to:R,from:ae}),oe(ae,ae,!0,!1)),(j?Promise.resolve(j):B(R,ae)).catch(D=>vn(D)?vn(D,2)?D:z(D):te(D,R,ae)).then(D=>{if(D){if(vn(D,2))return C(je({replace:S},w(D.to),{state:typeof D.to=="object"?je({},Oe,D.to.state):Oe,force:Be}),Y||R)}else D=I(R,ae,!0,S,Oe);return W(R,ae,D),D})}function _(F,Y){const Z=T(F,Y);return Z?Promise.reject(Z):Promise.resolve()}function P(F){const Y=Re.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(F):F()}function B(F,Y){let Z;const[ae,Oe,Be]=gA(F,Y);Z=Kl(ae.reverse(),"beforeRouteLeave",F,Y);for(const x of ae)x.leaveGuards.forEach(R=>{Z.push(Fn(R,F,Y))});const S=_.bind(null,F,Y);return Z.push(S),Ne(Z).then(()=>{Z=[];for(const x of s.list())Z.push(Fn(x,F,Y));return Z.push(S),Ne(Z)}).then(()=>{Z=Kl(Oe,"beforeRouteUpdate",F,Y);for(const x of Oe)x.updateGuards.forEach(R=>{Z.push(Fn(R,F,Y))});return Z.push(S),Ne(Z)}).then(()=>{Z=[];for(const x of Be)if(x.beforeEnter)if(Zt(x.beforeEnter))for(const R of x.beforeEnter)Z.push(Fn(R,F,Y));else Z.push(Fn(x.beforeEnter,F,Y));return Z.push(S),Ne(Z)}).then(()=>(F.matched.forEach(x=>x.enterCallbacks={}),Z=Kl(Be,"beforeRouteEnter",F,Y),Z.push(S),Ne(Z))).then(()=>{Z=[];for(const x of l.list())Z.push(Fn(x,F,Y));return Z.push(S),Ne(Z)}).catch(x=>vn(x,8)?x:Promise.reject(x))}function W(F,Y,Z){a.list().forEach(ae=>P(()=>ae(F,Y,Z)))}function I(F,Y,Z,ae,Oe){const Be=T(F,Y);if(Be)return Be;const S=Y===Mn,x=Ar?history.state:{};Z&&(ae||S?o.replace(F.fullPath,je({scroll:S&&x&&x.scroll},Oe)):o.push(F.fullPath,Oe)),i.value=F,oe(F,Y,Z,S),z()}let L;function V(){L||(L=o.listen((F,Y,Z)=>{if(!De.listening)return;const ae=g(F),Oe=E(ae);if(Oe){C(je(Oe,{replace:!0}),ae).catch(wo);return}u=ae;const Be=i.value;Ar&&xO(pf(Be.fullPath,Z.delta),bl()),B(ae,Be).catch(S=>vn(S,12)?S:vn(S,2)?(C(S.to,ae).then(x=>{vn(x,20)&&!Z.delta&&Z.type===No.pop&&o.go(-1,!1)}).catch(wo),Promise.reject()):(Z.delta&&o.go(-Z.delta,!1),te(S,ae,Be))).then(S=>{S=S||I(ae,Be,!1),S&&(Z.delta&&!vn(S,8)?o.go(-Z.delta,!1):Z.type===No.pop&&vn(S,20)&&o.go(-1,!1)),W(ae,Be,S)}).catch(wo)}))}let G=ao(),J=ao(),H;function te(F,Y,Z){z(F);const ae=J.list();return ae.length?ae.forEach(Oe=>Oe(F,Y,Z)):console.error(F),Promise.reject(F)}function k(){return H&&i.value!==Mn?Promise.resolve():new Promise((F,Y)=>{G.add([F,Y])})}function z(F){return H||(H=!F,V(),G.list().forEach(([Y,Z])=>F?Z(F):Y()),G.reset()),F}function oe(F,Y,Z,ae){const{scrollBehavior:Oe}=e;if(!Ar||!Oe)return Promise.resolve();const Be=!Z&&TO(pf(F.fullPath,0))||(ae||!Z)&&history.state&&history.state.scroll||null;return We().then(()=>Oe(F,Y,Be)).then(S=>S&&EO(S)).catch(S=>te(S,F,Y))}const se=F=>o.go(F);let xe;const Re=new Set,De={currentRoute:i,listening:!0,addRoute:p,removeRoute:h,hasRoute:b,getRoutes:v,resolve:g,options:e,push:y,replace:O,go:se,back:()=>se(-1),forward:()=>se(1),beforeEach:s.add,beforeResolve:l.add,afterEach:a.add,onError:J.add,isReady:k,install(F){const Y=this;F.component("RouterLink",cA),F.component("RouterView",hA),F.config.globalProperties.$router=Y,Object.defineProperty(F.config.globalProperties,"$route",{enumerable:!0,get:()=>m(i)}),Ar&&!xe&&i.value===Mn&&(xe=!0,y(o.location).catch(Oe=>{}));const Z={};for(const Oe in Mn)Object.defineProperty(Z,Oe,{get:()=>i.value[Oe],enumerable:!0});F.provide(zi,Y),F.provide(ev,Va(Z)),F.provide(Na,i);const ae=F.unmount;Re.add(F),F.unmount=function(){Re.delete(F),Re.size<1&&(u=Mn,L&&L(),L=null,i.value=Mn,xe=!1,H=!1),ae()}}};function Ne(F){return F.reduce((Y,Z)=>Y.then(()=>P(Z)),Promise.resolve())}return De}function gA(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let l=0;lYr(u,a))?r.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(u=>Yr(u,i))||o.push(i))}return[n,r,o]}const mA=re({__name:"Overview",setup(e){let t=M([]);return(()=>{fetch("/api/status",{credentials:"include"}).then(r=>r.json()).then(r=>{t.value=new Array;for(let o in r)for(let s of r[o])console.log(s),t.value.push(s)}).catch(r=>{nr({showClose:!0,message:"Get status info from frpc failed!"+r,type:"warning"})})})(),(r,o)=>{const s=PT,l=MT,a=Oh,i=Li;return N(),ie("div",null,[fe(i,null,{default:de(()=>[fe(a,{md:24},{default:de(()=>[ce("div",null,[fe(l,{data:m(t),stripe:"",style:{width:"100%"},"default-sort":{prop:"type",order:"ascending"}},{default:de(()=>[fe(s,{prop:"name",label:"name",sortable:""}),fe(s,{prop:"type",label:"type",width:"150",sortable:""}),fe(s,{prop:"local_addr",label:"local address",width:"200",sortable:""}),fe(s,{prop:"plugin",label:"plugin",width:"200",sortable:""}),fe(s,{prop:"remote_addr",label:"remote address",sortable:""}),fe(s,{prop:"status",label:"status",width:"150",sortable:""}),fe(s,{prop:"err",label:"info"})]),_:1},8,["data"])])]),_:1})]),_:1})])}}}),yA=re({__name:"ClientConfigure",setup(e){let t=M("");const n=()=>{fetch("/api/config",{credentials:"include"}).then(o=>o.text()).then(o=>{t.value=o}).catch(()=>{nr({showClose:!0,message:"Get configure content from frpc failed!",type:"warning"})})},r=()=>{oO.confirm("This operation will upload your frpc configure file content and hot reload it, do you want to continue?","Notice",{confirmButtonText:"Yes",cancelButtonText:"No",type:"warning"}).then(()=>{if(t.value==""){nr({message:"Configure content can not be empty!",type:"warning"});return}fetch("/api/config",{credentials:"include",method:"PUT",body:t.value}).then(()=>{fetch("/api/reload",{credentials:"include"}).then(()=>{nr({type:"success",message:"Success"})}).catch(o=>{nr({showClose:!0,message:"Reload frpc configure file error, "+o,type:"warning"})})}).catch(()=>{nr({showClose:!0,message:"Put config to frpc and hot reload failed!",type:"warning"})})}).catch(()=>{nr({message:"Canceled",type:"info"})})};return n(),(o,s)=>{const l=dh,a=Li,i=Yp;return N(),ie("div",null,[fe(a,{id:"head"},{default:de(()=>[fe(l,{type:"primary",onClick:n},{default:de(()=>[Et("Refresh")]),_:1}),fe(l,{type:"primary",onClick:r},{default:de(()=>[Et("Upload")]),_:1})]),_:1}),fe(i,{type:"textarea",autosize:"",modelValue:m(t),"onUpdate:modelValue":s[0]||(s[0]=u=>Xe(t)?t.value=u:t=u),placeholder:"frpc configure file, can not be empty..."},null,8,["modelValue"])])}}}),bA=vA({history:RO(),routes:[{path:"/",name:"Overview",component:mA},{path:"/configure",name:"ClientConfigure",component:yA}]}),tv=Mm(dO);tv.use(bA);tv.mount("#app")});export default wA(); diff --git a/assets/frpc/static/index.html b/assets/frpc/static/index.html index c7064ba5fa1..85cbf1c47b6 100644 --- a/assets/frpc/static/index.html +++ b/assets/frpc/static/index.html @@ -4,7 +4,7 @@ frp client admin UI - + diff --git a/assets/frps/static/index-82-40HIG.js b/assets/frps/static/index-82-40HIG.js deleted file mode 100644 index 3d8e3c08da8..00000000000 --- a/assets/frps/static/index-82-40HIG.js +++ /dev/null @@ -1,84 +0,0 @@ -var DD=Object.defineProperty;var ID=(e,t,r)=>t in e?DD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var OD=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var It=(e,t,r)=>(ID(e,typeof t!="symbol"?t+"":t,r),r);var Bte=OD(($r,Hr)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();/** -* @vue/shared v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Wm(e,t){const r=new Set(e.split(","));return t?n=>r.has(n.toLowerCase()):n=>r.has(n)}const St={},as=[],Ft=()=>{},RD=()=>!1,Wd=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gm=e=>e.startsWith("onUpdate:"),Ht=Object.assign,Um=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},kD=Object.prototype.hasOwnProperty,Ue=(e,t)=>kD.call(e,t),_e=Array.isArray,os=e=>Wu(e)==="[object Map]",Gd=e=>Wu(e)==="[object Set]",l_=e=>Wu(e)==="[object Date]",De=e=>typeof e=="function",ze=e=>typeof e=="string",oa=e=>typeof e=="symbol",qe=e=>e!==null&&typeof e=="object",Qc=e=>(qe(e)||De(e))&&De(e.then)&&De(e.catch),EC=Object.prototype.toString,Wu=e=>EC.call(e),ND=e=>Wu(e).slice(8,-1),LC=e=>Wu(e)==="[object Object]",Ym=e=>ze(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Sc=Wm(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ud=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},BD=/-(\w)/g,Pn=Ud(e=>e.replace(BD,(t,r)=>r?r.toUpperCase():"")),FD=/\B([A-Z])/g,xo=Ud(e=>e.replace(FD,"-$1").toLowerCase()),Yd=Ud(e=>e.charAt(0).toUpperCase()+e.slice(1)),xc=Ud(e=>e?`on${Yd(e)}`:""),sa=(e,t)=>!Object.is(e,t),Cc=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},$D=e=>{const t=parseFloat(e);return isNaN(t)?e:t},HD=e=>{const t=ze(e)?Number(e):NaN;return isNaN(t)?e:t};let u_;const DC=()=>u_||(u_=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ct(e){if(_e(e)){const t={};for(let r=0;r{if(r){const n=r.split(VD);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function re(e){let t="";if(ze(e))t=e;else if(_e(e))for(let r=0;rjd(r,t))}const xe=e=>ze(e)?e:e==null?"":_e(e)||qe(e)&&(e.toString===EC||!De(e.toString))?JSON.stringify(e,RC,2):String(e),RC=(e,t)=>t&&t.__v_isRef?RC(e,t.value):os(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i],a)=>(r[Wh(n,a)+" =>"]=i,r),{})}:Gd(t)?{[`Set(${t.size})`]:[...t.values()].map(r=>Wh(r))}:oa(t)?Wh(t):qe(t)&&!_e(t)&&!LC(t)?String(t):t,Wh=(e,t="")=>{var r;return oa(e)?`Symbol(${(r=e.description)!=null?r:t})`:e};/** -* @vue/reactivity v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Nr;class qD{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Nr,!t&&Nr&&(this.index=(Nr.scopes||(Nr.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=Nr;try{return Nr=this,t()}finally{Nr=r}}}on(){Nr=this}off(){Nr=this.parent}stop(t){if(this._active){let r,n;for(r=0,n=this.effects.length;r=2))break}this._dirtyLevel<2&&(this._dirtyLevel=0),To()}return this._dirtyLevel>=2}set dirty(t){this._dirtyLevel=t?2:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ta,r=io;try{return ta=!0,io=this,this._runnings++,f_(this),this.fn()}finally{c_(this),this._runnings--,io=r,ta=t}}stop(){var t;this.active&&(f_(this),c_(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function XD(e){return e.value}function f_(e){e._trackId++,e._depsLength=0}function c_(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t{const r=new Map;return r.cleanup=e,r.computed=t,r},ed=new WeakMap,ao=Symbol(""),Fp=Symbol("");function Lr(e,t,r){if(ta&&io){let n=ed.get(e);n||ed.set(e,n=new Map);let i=n.get(r);i||n.set(r,i=VC(()=>n.delete(r))),$C(io,i)}}function mi(e,t,r,n,i,a){const o=ed.get(e);if(!o)return;let s=[];if(t==="clear")s=[...o.values()];else if(r==="length"&&_e(e)){const l=Number(n);o.forEach((u,f)=>{(f==="length"||!oa(f)&&f>=l)&&s.push(u)})}else switch(r!==void 0&&s.push(o.get(r)),t){case"add":_e(e)?Ym(r)&&s.push(o.get("length")):(s.push(o.get(ao)),os(e)&&s.push(o.get(Fp)));break;case"delete":_e(e)||(s.push(o.get(ao)),os(e)&&s.push(o.get(Fp)));break;case"set":os(e)&&s.push(o.get(ao));break}qm();for(const l of s)l&&HC(l,2);Km()}function ZD(e,t){var r;return(r=ed.get(e))==null?void 0:r.get(t)}const QD=Wm("__proto__,__v_isRef,__isVue"),WC=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(oa)),d_=JD();function JD(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Qe(this);for(let a=0,o=this.length;a{e[t]=function(...r){Co(),qm();const n=Qe(this)[t].apply(this,r);return Km(),To(),n}}),e}function eI(e){const t=Qe(this);return Lr(t,"has",e),t.hasOwnProperty(e)}class GC{constructor(t=!1,r=!1){this._isReadonly=t,this._shallow=r}get(t,r,n){const i=this._isReadonly,a=this._shallow;if(r==="__v_isReactive")return!i;if(r==="__v_isReadonly")return i;if(r==="__v_isShallow")return a;if(r==="__v_raw")return n===(i?a?hI:qC:a?jC:YC).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const o=_e(t);if(!i){if(o&&Ue(d_,r))return Reflect.get(d_,r,n);if(r==="hasOwnProperty")return eI}const s=Reflect.get(t,r,n);return(oa(r)?WC.has(r):QD(r))||(i||Lr(t,"get",r),a)?s:Pt(s)?o&&Ym(r)?s:s.value:qe(s)?i?Gu(s):Ln(s):s}}class UC extends GC{constructor(t=!1){super(!1,t)}set(t,r,n,i){let a=t[r];if(!this._shallow){const l=ps(a);if(!td(n)&&!ps(n)&&(a=Qe(a),n=Qe(n)),!_e(t)&&Pt(a)&&!Pt(n))return l?!1:(a.value=n,!0)}const o=_e(t)&&Ym(r)?Number(r)e,qd=e=>Reflect.getPrototypeOf(e);function vf(e,t,r=!1,n=!1){e=e.__v_raw;const i=Qe(e),a=Qe(t);r||(sa(t,a)&&Lr(i,"get",t),Lr(i,"get",a));const{has:o}=qd(i),s=n?Xm:r?ey:su;if(o.call(i,t))return s(e.get(t));if(o.call(i,a))return s(e.get(a));e!==i&&e.get(t)}function pf(e,t=!1){const r=this.__v_raw,n=Qe(r),i=Qe(e);return t||(sa(e,i)&&Lr(n,"has",e),Lr(n,"has",i)),e===i?r.has(e):r.has(e)||r.has(i)}function gf(e,t=!1){return e=e.__v_raw,!t&&Lr(Qe(e),"iterate",ao),Reflect.get(e,"size",e)}function h_(e){e=Qe(e);const t=Qe(this);return qd(t).has.call(t,e)||(t.add(e),mi(t,"add",e,e)),this}function v_(e,t){t=Qe(t);const r=Qe(this),{has:n,get:i}=qd(r);let a=n.call(r,e);a||(e=Qe(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?sa(t,o)&&mi(r,"set",e,t):mi(r,"add",e,t),this}function p_(e){const t=Qe(this),{has:r,get:n}=qd(t);let i=r.call(t,e);i||(e=Qe(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&mi(t,"delete",e,void 0),a}function g_(){const e=Qe(this),t=e.size!==0,r=e.clear();return t&&mi(e,"clear",void 0,void 0),r}function mf(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Qe(o),l=t?Xm:e?ey:su;return!e&&Lr(s,"iterate",ao),o.forEach((u,f)=>n.call(i,l(u),l(f),a))}}function yf(e,t,r){return function(...n){const i=this.__v_raw,a=Qe(i),o=os(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),f=r?Xm:t?ey:su;return!t&&Lr(a,"iterate",l?Fp:ao),{next(){const{value:c,done:h}=u.next();return h?{value:c,done:h}:{value:s?[f(c[0]),f(c[1])]:f(c),done:h}},[Symbol.iterator](){return this}}}}function Di(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function aI(){const e={get(a){return vf(this,a)},get size(){return gf(this)},has:pf,add:h_,set:v_,delete:p_,clear:g_,forEach:mf(!1,!1)},t={get(a){return vf(this,a,!1,!0)},get size(){return gf(this)},has:pf,add:h_,set:v_,delete:p_,clear:g_,forEach:mf(!1,!0)},r={get(a){return vf(this,a,!0)},get size(){return gf(this,!0)},has(a){return pf.call(this,a,!0)},add:Di("add"),set:Di("set"),delete:Di("delete"),clear:Di("clear"),forEach:mf(!0,!1)},n={get(a){return vf(this,a,!0,!0)},get size(){return gf(this,!0)},has(a){return pf.call(this,a,!0)},add:Di("add"),set:Di("set"),delete:Di("delete"),clear:Di("clear"),forEach:mf(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=yf(a,!1,!1),r[a]=yf(a,!0,!1),t[a]=yf(a,!1,!0),n[a]=yf(a,!0,!0)}),[e,r,t,n]}const[oI,sI,lI,uI]=aI();function Zm(e,t){const r=t?e?uI:lI:e?sI:oI;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(Ue(r,i)&&i in n?r:n,i,a)}const fI={get:Zm(!1,!1)},cI={get:Zm(!1,!0)},dI={get:Zm(!0,!1)},YC=new WeakMap,jC=new WeakMap,qC=new WeakMap,hI=new WeakMap;function vI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pI(e){return e.__v_skip||!Object.isExtensible(e)?0:vI(ND(e))}function Ln(e){return ps(e)?e:Jm(e,!1,rI,fI,YC)}function Qm(e){return Jm(e,!1,iI,cI,jC)}function Gu(e){return Jm(e,!0,nI,dI,qC)}function Jm(e,t,r,n,i){if(!qe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=pI(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function ss(e){return ps(e)?ss(e.__v_raw):!!(e&&e.__v_isReactive)}function ps(e){return!!(e&&e.__v_isReadonly)}function td(e){return!!(e&&e.__v_isShallow)}function KC(e){return ss(e)||ps(e)}function Qe(e){const t=e&&e.__v_raw;return t?Qe(t):e}function XC(e){return Jc(e,"__v_skip",!0),e}const su=e=>qe(e)?Ln(e):e,ey=e=>qe(e)?Gu(e):e;class ZC{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new jm(()=>t(this._value),()=>Tc(this,1),()=>this.dep&&zC(this.dep)),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Qe(this);return(!t._cacheable||t.effect.dirty)&&sa(t._value,t._value=t.effect.run())&&Tc(t,2),JC(t),t.effect._dirtyLevel>=1&&Tc(t,1),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function QC(e,t,r=!1){let n,i;const a=De(e);return a?(n=e,i=Ft):(n=e.get,i=e.set),new ZC(n,i,a||!i,r)}function JC(e){ta&&io&&(e=Qe(e),$C(io,e.dep||(e.dep=VC(()=>e.dep=void 0,e instanceof ZC?e:void 0))))}function Tc(e,t=2,r){e=Qe(e);const n=e.dep;n&&HC(n,t)}function Pt(e){return!!(e&&e.__v_isRef===!0)}function $(e){return eT(e,!1)}function ty(e){return eT(e,!0)}function eT(e,t){return Pt(e)?e:new gI(e,t)}class gI{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Qe(t),this._value=r?t:su(t)}get value(){return JC(this),this._value}set value(t){const r=this.__v_isShallow||td(t)||ps(t);t=r?t:Qe(t),sa(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:su(t),Tc(this,2))}}function T(e){return Pt(e)?e.value:e}const mI={get:(e,t,r)=>T(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Pt(i)&&!Pt(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function tT(e){return ss(e)?e:new Proxy(e,mI)}function Kd(e){const t=_e(e)?new Array(e.length):{};for(const r in e)t[r]=rT(e,r);return t}class yI{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return ZD(Qe(this._object),this._key)}}class _I{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function wn(e,t,r){return Pt(e)?e:De(e)?new _I(e):qe(e)&&arguments.length>1?rT(e,t,r):$(e)}function rT(e,t,r){const n=e[t];return Pt(n)?n:new yI(e,t,r)}/** -* @vue/runtime-core v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function ra(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){Xd(a,t,r)}return i}function sn(e,t,r,n){if(De(e)){const a=ra(e,t,r,n);return a&&Qc(a)&&a.catch(o=>{Xd(o,t,r)}),a}const i=[];for(let a=0;a>>1,i=or[n],a=uu(i);azn&&or.splice(t,1)}function xI(e){_e(e)?ls.push(...e):(!Yi||!Yi.includes(e,e.allowRecurse?Ua+1:Ua))&&ls.push(e),iT()}function m_(e,t,r=lu?zn+1:0){for(;ruu(r)-uu(n));if(ls.length=0,Yi){Yi.push(...t);return}for(Yi=t,Ua=0;Uae.id==null?1/0:e.id,CI=(e,t)=>{const r=uu(e)-uu(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function oT(e){$p=!1,lu=!0,or.sort(CI);try{for(zn=0;znze(d)?d.trim():d)),c&&(i=r.map($D))}let s,l=n[s=xc(t)]||n[s=xc(Pn(t))];!l&&a&&(l=n[s=xc(xo(t))]),l&&sn(l,e,6,i);const u=n[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,sn(u,e,6,i)}}function sT(e,t,r=!1){const n=t.emitsCache,i=n.get(e);if(i!==void 0)return i;const a=e.emits;let o={},s=!1;if(!De(e)){const l=u=>{const f=sT(u,t,!0);f&&(s=!0,Ht(o,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(qe(e)&&n.set(e,null),null):(_e(a)?a.forEach(l=>o[l]=null):Ht(o,a),qe(e)&&n.set(e,o),o)}function Zd(e,t){return!e||!Wd(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ue(e,t[0].toLowerCase()+t.slice(1))||Ue(e,xo(t))||Ue(e,t))}let Wt=null,lT=null;function rd(e){const t=Wt;return Wt=e,lT=e&&e.type.__scopeId||null,t}function q(e,t=Wt,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&D_(-1);const a=rd(t);let o;try{o=e(...i)}finally{rd(a),n._d&&D_(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Gh(e){const{type:t,vnode:r,proxy:n,withProxy:i,props:a,propsOptions:[o],slots:s,attrs:l,emit:u,render:f,renderCache:c,data:h,setupState:d,ctx:v,inheritAttrs:p}=e;let m,g;const y=rd(e);try{if(r.shapeFlag&4){const b=i||n,x=b;m=Hn(f.call(x,b,c,a,d,h,v)),g=l}else{const b=t;m=Hn(b.length>1?b(a,{attrs:l,slots:s,emit:u}):b(a,null)),g=t.props?l:MI(l)}}catch(b){kl.length=0,Xd(b,e,1),m=Z(Mr)}let _=m;if(g&&p!==!1){const b=Object.keys(g),{shapeFlag:x}=_;b.length&&x&7&&(o&&b.some(Gm)&&(g=AI(g,o)),_=_i(_,g))}return r.dirs&&(_=_i(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),m=_,rd(y),m}const MI=e=>{let t;for(const r in e)(r==="class"||r==="style"||Wd(r))&&((t||(t={}))[r]=e[r]);return t},AI=(e,t)=>{const r={};for(const n in e)(!Gm(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function PI(e,t,r){const{props:n,children:i,component:a}=e,{props:o,children:s,patchFlag:l}=t,u=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?y_(n,o,u):!!o;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function II(e,t){t&&t.pendingBranch?_e(e)?t.effects.push(...e):t.effects.push(e):xI(e)}const OI=Symbol.for("v-scx"),RI=()=>Le(OI);function na(e,t){return oy(e,null,t)}const _f={};function be(e,t,r){return oy(e,t,r)}function oy(e,t,{immediate:r,deep:n,flush:i,once:a,onTrack:o,onTrigger:s}=St){if(t&&a){const w=t;t=(...S)=>{w(...S),x()}}const l=Qt,u=w=>n===!0?w:Xa(w,n===!1?1:void 0);let f,c=!1,h=!1;if(Pt(e)?(f=()=>e.value,c=td(e)):ss(e)?(f=()=>u(e),c=!0):_e(e)?(h=!0,c=e.some(w=>ss(w)||td(w)),f=()=>e.map(w=>{if(Pt(w))return w.value;if(ss(w))return u(w);if(De(w))return ra(w,l,2)})):De(e)?t?f=()=>ra(e,l,2):f=()=>(d&&d(),sn(e,l,3,[v])):f=Ft,t&&n){const w=f;f=()=>Xa(w())}let d,v=w=>{d=_.onStop=()=>{ra(w,l,4),d=_.onStop=void 0}},p;if(rh)if(v=Ft,t?r&&sn(t,l,3,[f(),h?[]:void 0,v]):f(),i==="sync"){const w=RI();p=w.__watcherHandles||(w.__watcherHandles=[])}else return Ft;let m=h?new Array(e.length).fill(_f):_f;const g=()=>{if(!(!_.active||!_.dirty))if(t){const w=_.run();(n||c||(h?w.some((S,C)=>sa(S,m[C])):sa(w,m)))&&(d&&d(),sn(t,l,3,[w,m===_f?void 0:h&&m[0]===_f?[]:m,v]),m=w)}else _.run()};g.allowRecurse=!!t;let y;i==="sync"?y=g:i==="post"?y=()=>Sr(g,l&&l.suspense):(g.pre=!0,l&&(g.id=l.uid),y=()=>ny(g));const _=new jm(f,Ft,y),b=kC(),x=()=>{_.stop(),b&&Um(b.effects,_)};return t?r?g():m=_.run():i==="post"?Sr(_.run.bind(_),l&&l.suspense):_.run(),p&&p.push(x),x}function kI(e,t,r){const n=this.proxy,i=ze(e)?e.includes(".")?cT(n,e):()=>n[e]:e.bind(n,n);let a;De(t)?a=t:(a=t.handler,r=t);const o=Yu(this),s=oy(i,a.bind(n),r);return o(),s}function cT(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i0){if(r>=t)return e;r++}if(n=n||new Set,n.has(e))return e;if(n.add(e),Pt(e))Xa(e.value,t,r,n);else if(_e(e))for(let i=0;i{Xa(i,t,r,n)});else if(LC(e))for(const i in e)Xa(e[i],t,r,n);return e}function qt(e,t){if(Wt===null)return e;const r=nh(Wt)||Wt.proxy,n=e.dirs||(e.dirs=[]);for(let i=0;i{e.isMounted=!0}),tr(()=>{e.isUnmounting=!0}),e}const jr=[Function,Array],hT={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jr,onEnter:jr,onAfterEnter:jr,onEnterCancelled:jr,onBeforeLeave:jr,onLeave:jr,onAfterLeave:jr,onLeaveCancelled:jr,onBeforeAppear:jr,onAppear:jr,onAfterAppear:jr,onAppearCancelled:jr},NI={name:"BaseTransition",props:hT,setup(e,{slots:t}){const r=it(),n=dT();let i;return()=>{const a=t.default&&sy(t.default(),!0);if(!a||!a.length)return;let o=a[0];if(a.length>1){for(const p of a)if(p.type!==Mr){o=p;break}}const s=Qe(e),{mode:l}=s;if(n.isLeaving)return Uh(o);const u=b_(o);if(!u)return Uh(o);const f=fu(u,s,n,r);cu(u,f);const c=r.subTree,h=c&&b_(c);let d=!1;const{getTransitionKey:v}=u.type;if(v){const p=v();i===void 0?i=p:p!==i&&(i=p,d=!0)}if(h&&h.type!==Mr&&(!Ya(u,h)||d)){const p=fu(h,s,n,r);if(cu(h,p),l==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update.active!==!1&&(r.effect.dirty=!0,r.update())},Uh(o);l==="in-out"&&u.type!==Mr&&(p.delayLeave=(m,g,y)=>{const _=vT(n,h);_[String(h.key)]=h,m[ji]=()=>{g(),m[ji]=void 0,delete f.delayedLeave},f.delayedLeave=y})}return o}}},BI=NI;function vT(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function fu(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:h,onAfterLeave:d,onLeaveCancelled:v,onBeforeAppear:p,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=t,_=String(e.key),b=vT(r,e),x=(C,M)=>{C&&sn(C,n,9,M)},w=(C,M)=>{const A=M[1];x(C,M),_e(C)?C.every(P=>P.length<=1)&&A():C.length<=1&&A()},S={mode:a,persisted:o,beforeEnter(C){let M=s;if(!r.isMounted)if(i)M=p||s;else return;C[ji]&&C[ji](!0);const A=b[_];A&&Ya(e,A)&&A.el[ji]&&A.el[ji](),x(M,[C])},enter(C){let M=l,A=u,P=f;if(!r.isMounted)if(i)M=m||l,A=g||u,P=y||f;else return;let E=!1;const L=C[bf]=O=>{E||(E=!0,O?x(P,[C]):x(A,[C]),S.delayedLeave&&S.delayedLeave(),C[bf]=void 0)};M?w(M,[C,L]):L()},leave(C,M){const A=String(e.key);if(C[bf]&&C[bf](!0),r.isUnmounting)return M();x(c,[C]);let P=!1;const E=C[ji]=L=>{P||(P=!0,M(),L?x(v,[C]):x(d,[C]),C[ji]=void 0,b[A]===e&&delete b[A])};b[A]=e,h?w(h,[C,E]):E()},clone(C){return fu(C,t,r,n)}};return S}function Uh(e){if(Qd(e))return e=_i(e),e.children=null,e}function b_(e){return Qd(e)?e.children?e.children[0]:void 0:e}function cu(e,t){e.shapeFlag&6&&e.component?cu(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function sy(e,t=!1,r){let n=[],i=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader,Qd=e=>e.type.__isKeepAlive;function FI(e,t){gT(e,"a",t)}function pT(e,t){gT(e,"da",t)}function gT(e,t,r=Qt){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Jd(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Qd(i.parent.vnode)&&$I(n,t,r,i),i=i.parent}}function $I(e,t,r,n){const i=Jd(t,e,n,!0);ks(()=>{Um(n[t],i)},r)}function Jd(e,t,r=Qt,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;Co();const s=Yu(r),l=sn(t,r,e,o);return s(),To(),l});return n?i.unshift(a):i.push(a),a}}const Ai=e=>(t,r=Qt)=>(!rh||e==="sp")&&Jd(e,(...n)=>t(...n),r),eh=Ai("bm"),_t=Ai("m"),HI=Ai("bu"),Uu=Ai("u"),tr=Ai("bum"),ks=Ai("um"),zI=Ai("sp"),VI=Ai("rtg"),WI=Ai("rtc");function GI(e,t=Qt){Jd("ec",e,t)}function Hp(e,t,r,n){let i;const a=r&&r[n];if(_e(e)||ze(e)){i=new Array(e.length);for(let o=0,s=e.length;ot(o,s,void 0,a&&a[s]));else{const o=Object.keys(e);i=new Array(o.length);for(let s=0,l=o.length;s{const a=n.fn(...i);return a&&(a.key=n.key),a}:n.fn)}return e}function Ce(e,t,r={},n,i){if(Wt.isCE||Wt.parent&&Il(Wt.parent)&&Wt.parent.isCE)return t!=="default"&&(r.name=t),Z("slot",r,n&&n());let a=e[t];a&&a._c&&(a._d=!1),G();const o=a&&mT(a(r)),s=ve(ft,{key:r.key||o&&o.key||`_${t}`},o||(n?n():[]),o&&e._===1?64:-2);return!i&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),a&&a._c&&(a._d=!0),s}function mT(e){return e.some(t=>la(t)?!(t.type===Mr||t.type===ft&&!mT(t.children)):!0)?e:null}function YI(e,t){const r={};for(const n in e)r[t&&/[A-Z]/.test(n)?`on:${n}`:xc(n)]=e[n];return r}const zp=e=>e?LT(e)?nh(e)||e.proxy:zp(e.parent):null,Ol=Ht(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zp(e.parent),$root:e=>zp(e.root),$emit:e=>e.emit,$options:e=>ly(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,ny(e.update)}),$nextTick:e=>e.n||(e.n=Nt.bind(e.proxy)),$watch:e=>kI.bind(e)}),Yh=(e,t)=>e!==St&&!e.__isScriptSetup&&Ue(e,t),jI={get({_:e},t){const{ctx:r,setupState:n,data:i,props:a,accessCache:o,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const d=o[t];if(d!==void 0)switch(d){case 1:return n[t];case 2:return i[t];case 4:return r[t];case 3:return a[t]}else{if(Yh(n,t))return o[t]=1,n[t];if(i!==St&&Ue(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&Ue(u,t))return o[t]=3,a[t];if(r!==St&&Ue(r,t))return o[t]=4,r[t];Vp&&(o[t]=0)}}const f=Ol[t];let c,h;if(f)return t==="$attrs"&&Lr(e,"get",t),f(e);if((c=s.__cssModules)&&(c=c[t]))return c;if(r!==St&&Ue(r,t))return o[t]=4,r[t];if(h=l.config.globalProperties,Ue(h,t))return h[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return Yh(i,t)?(i[t]=r,!0):n!==St&&Ue(n,t)?(n[t]=r,!0):Ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:i,propsOptions:a}},o){let s;return!!r[o]||e!==St&&Ue(e,o)||Yh(t,o)||(s=a[0])&&Ue(s,o)||Ue(n,o)||Ue(Ol,o)||Ue(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:Ue(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};function Ns(){return qI().slots}function qI(){const e=it();return e.setupContext||(e.setupContext=IT(e))}function w_(e){return _e(e)?e.reduce((t,r)=>(t[r]=null,t),{}):e}let Vp=!0;function KI(e){const t=ly(e),r=e.proxy,n=e.ctx;Vp=!1,t.beforeCreate&&S_(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:f,beforeMount:c,mounted:h,beforeUpdate:d,updated:v,activated:p,deactivated:m,beforeDestroy:g,beforeUnmount:y,destroyed:_,unmounted:b,render:x,renderTracked:w,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:A,inheritAttrs:P,components:E,directives:L,filters:O}=t;if(u&&XI(u,n,null),o)for(const V in o){const U=o[V];De(U)&&(n[V]=U.bind(r))}if(i){const V=i.call(r,r);qe(V)&&(e.data=Ln(V))}if(Vp=!0,a)for(const V in a){const U=a[V],F=De(U)?U.bind(r,r):De(U.get)?U.get.bind(r,r):Ft,z=!De(U)&&De(U.set)?U.set.bind(r):Ft,ee=k({get:F,set:z});Object.defineProperty(n,V,{enumerable:!0,configurable:!0,get:()=>ee.value,set:J=>ee.value=J})}if(s)for(const V in s)yT(s[V],n,r,V);if(l){const V=De(l)?l.call(r):l;Reflect.ownKeys(V).forEach(U=>{Dt(U,V[U])})}f&&S_(f,e,"c");function H(V,U){_e(U)?U.forEach(F=>V(F.bind(r))):U&&V(U.bind(r))}if(H(eh,c),H(_t,h),H(HI,d),H(Uu,v),H(FI,p),H(pT,m),H(GI,C),H(WI,w),H(VI,S),H(tr,y),H(ks,b),H(zI,M),_e(A))if(A.length){const V=e.exposed||(e.exposed={});A.forEach(U=>{Object.defineProperty(V,U,{get:()=>r[U],set:F=>r[U]=F})})}else e.exposed||(e.exposed={});x&&e.render===Ft&&(e.render=x),P!=null&&(e.inheritAttrs=P),E&&(e.components=E),L&&(e.directives=L)}function XI(e,t,r=Ft){_e(e)&&(e=Wp(e));for(const n in e){const i=e[n];let a;qe(i)?"default"in i?a=Le(i.from||n,i.default,!0):a=Le(i.from||n):a=Le(i),Pt(a)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:o=>a.value=o}):t[n]=a}}function S_(e,t,r){sn(_e(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function yT(e,t,r,n){const i=n.includes(".")?cT(r,n):()=>r[n];if(ze(e)){const a=t[e];De(a)&&be(i,a)}else if(De(e))be(i,e.bind(r));else if(qe(e))if(_e(e))e.forEach(a=>yT(a,t,r,n));else{const a=De(e.handler)?e.handler.bind(r):t[e.handler];De(a)&&be(i,a,e)}}function ly(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t);let l;return s?l=s:!i.length&&!r&&!n?l=t:(l={},i.length&&i.forEach(u=>nd(l,u,o,!0)),nd(l,t,o)),qe(t)&&a.set(t,l),l}function nd(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&nd(e,a,r,!0),i&&i.forEach(o=>nd(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=ZI[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const ZI={data:x_,props:C_,emits:C_,methods:Sl,computed:Sl,beforeCreate:ur,created:ur,beforeMount:ur,mounted:ur,beforeUpdate:ur,updated:ur,beforeDestroy:ur,beforeUnmount:ur,destroyed:ur,unmounted:ur,activated:ur,deactivated:ur,errorCaptured:ur,serverPrefetch:ur,components:Sl,directives:Sl,watch:JI,provide:x_,inject:QI};function x_(e,t){return t?e?function(){return Ht(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function QI(e,t){return Sl(Wp(e),Wp(t))}function Wp(e){if(_e(e)){const t={};for(let r=0;r1)return r&&De(t)?t.call(n&&n.proxy):t}}function rO(e,t,r,n=!1){const i={},a={};Jc(a,th,1),e.propsDefaults=Object.create(null),bT(e,t,i,a);for(const o in e.propsOptions[0])o in i||(i[o]=void 0);r?e.props=n?i:Qm(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function nO(e,t,r,n){const{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=Qe(i),[l]=e.propsOptions;let u=!1;if((n||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[h,d]=wT(c,t,!0);Ht(o,h),d&&s.push(...d)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!a&&!l)return qe(e)&&n.set(e,as),as;if(_e(a))for(let f=0;f-1,d[1]=p<0||v-1||Ue(d,"default"))&&s.push(c)}}}const u=[o,s];return qe(e)&&n.set(e,u),u}function T_(e){return e[0]!=="$"}function M_(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function A_(e,t){return M_(e)===M_(t)}function P_(e,t){return _e(t)?t.findIndex(r=>A_(r,e)):De(t)&&A_(t,e)?0:-1}const ST=e=>e[0]==="_"||e==="$stable",uy=e=>_e(e)?e.map(Hn):[Hn(e)],iO=(e,t,r)=>{if(t._n)return t;const n=q((...i)=>uy(t(...i)),r);return n._c=!1,n},xT=(e,t,r)=>{const n=e._ctx;for(const i in e){if(ST(i))continue;const a=e[i];if(De(a))t[i]=iO(i,a,n);else if(a!=null){const o=uy(a);t[i]=()=>o}}},CT=(e,t)=>{const r=uy(t);e.slots.default=()=>r},aO=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Qe(t),Jc(t,"_",r)):xT(t,e.slots={})}else e.slots={},t&&CT(e,t);Jc(e.slots,th,1)},oO=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=St;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(Ht(i,t),!r&&s===1&&delete i._):(a=!t.$stable,xT(t,i)),o=t}else t&&(CT(e,t),o={default:1});if(a)for(const s in i)!ST(s)&&o[s]==null&&delete i[s]};function Up(e,t,r,n,i=!1){if(_e(e)){e.forEach((h,d)=>Up(h,t&&(_e(t)?t[d]:t),r,n,i));return}if(Il(n)&&!i)return;const a=n.shapeFlag&4?nh(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,f=s.refs===St?s.refs={}:s.refs,c=s.setupState;if(u!=null&&u!==l&&(ze(u)?(f[u]=null,Ue(c,u)&&(c[u]=null)):Pt(u)&&(u.value=null)),De(l))ra(l,s,12,[o,f]);else{const h=ze(l),d=Pt(l),v=e.f;if(h||d){const p=()=>{if(v){const m=h?Ue(c,l)?c[l]:f[l]:l.value;i?_e(m)&&Um(m,a):_e(m)?m.includes(a)||m.push(a):h?(f[l]=[a],Ue(c,l)&&(c[l]=f[l])):(l.value=[a],e.k&&(f[e.k]=l.value))}else h?(f[l]=o,Ue(c,l)&&(c[l]=o)):d&&(l.value=o,e.k&&(f[e.k]=o))};i||v?p():(p.id=-1,Sr(p,r))}}}const Sr=II;function sO(e){return lO(e)}function lO(e,t){const r=DC();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:h,setScopeId:d=Ft,insertStaticContent:v}=e,p=(D,I,W,X=null,j=null,le=null,fe=void 0,ae=null,se=!!I.dynamicChildren)=>{if(D===I)return;D&&!Ya(D,I)&&(X=B(D),J(D,j,le,!0),D=null),I.patchFlag===-2&&(se=!1,I.dynamicChildren=null);const{type:ne,ref:de,shapeFlag:Me}=I;switch(ne){case Bs:m(D,I,W,X);break;case Mr:g(D,I,W,X);break;case qh:D==null&&y(I,W,X,fe);break;case ft:E(D,I,W,X,j,le,fe,ae,se);break;default:Me&1?x(D,I,W,X,j,le,fe,ae,se):Me&6?L(D,I,W,X,j,le,fe,ae,se):(Me&64||Me&128)&&ne.process(D,I,W,X,j,le,fe,ae,se,Q)}de!=null&&j&&Up(de,D&&D.ref,le,I||D,!I)},m=(D,I,W,X)=>{if(D==null)n(I.el=s(I.children),W,X);else{const j=I.el=D.el;I.children!==D.children&&u(j,I.children)}},g=(D,I,W,X)=>{D==null?n(I.el=l(I.children||""),W,X):I.el=D.el},y=(D,I,W,X)=>{[D.el,D.anchor]=v(D.children,I,W,X,D.el,D.anchor)},_=({el:D,anchor:I},W,X)=>{let j;for(;D&&D!==I;)j=h(D),n(D,W,X),D=j;n(I,W,X)},b=({el:D,anchor:I})=>{let W;for(;D&&D!==I;)W=h(D),i(D),D=W;i(I)},x=(D,I,W,X,j,le,fe,ae,se)=>{I.type==="svg"?fe="svg":I.type==="math"&&(fe="mathml"),D==null?w(I,W,X,j,le,fe,ae,se):M(D,I,j,le,fe,ae,se)},w=(D,I,W,X,j,le,fe,ae)=>{let se,ne;const{props:de,shapeFlag:Me,transition:Se,dirs:ke}=D;if(se=D.el=o(D.type,le,de&&de.is,de),Me&8?f(se,D.children):Me&16&&C(D.children,se,null,X,j,jh(D,le),fe,ae),ke&&ma(D,null,X,"created"),S(se,D,D.scopeId,fe,X),de){for(const rt in de)rt!=="value"&&!Sc(rt)&&a(se,rt,null,de[rt],le,D.children,X,j,Ie);"value"in de&&a(se,"value",null,de.value,le),(ne=de.onVnodeBeforeMount)&&kn(ne,X,D)}ke&&ma(D,null,X,"beforeMount");const Ve=uO(j,Se);Ve&&Se.beforeEnter(se),n(se,I,W),((ne=de&&de.onVnodeMounted)||Ve||ke)&&Sr(()=>{ne&&kn(ne,X,D),Ve&&Se.enter(se),ke&&ma(D,null,X,"mounted")},j)},S=(D,I,W,X,j)=>{if(W&&d(D,W),X)for(let le=0;le{for(let ne=se;ne{const ae=I.el=D.el;let{patchFlag:se,dynamicChildren:ne,dirs:de}=I;se|=D.patchFlag&16;const Me=D.props||St,Se=I.props||St;let ke;if(W&&ya(W,!1),(ke=Se.onVnodeBeforeUpdate)&&kn(ke,W,I,D),de&&ma(I,D,W,"beforeUpdate"),W&&ya(W,!0),ne?A(D.dynamicChildren,ne,ae,W,X,jh(I,j),le):fe||U(D,I,ae,null,W,X,jh(I,j),le,!1),se>0){if(se&16)P(ae,I,Me,Se,W,X,j);else if(se&2&&Me.class!==Se.class&&a(ae,"class",null,Se.class,j),se&4&&a(ae,"style",Me.style,Se.style,j),se&8){const Ve=I.dynamicProps;for(let rt=0;rt{ke&&kn(ke,W,I,D),de&&ma(I,D,W,"updated")},X)},A=(D,I,W,X,j,le,fe)=>{for(let ae=0;ae{if(W!==X){if(W!==St)for(const ae in W)!Sc(ae)&&!(ae in X)&&a(D,ae,W[ae],null,fe,I.children,j,le,Ie);for(const ae in X){if(Sc(ae))continue;const se=X[ae],ne=W[ae];se!==ne&&ae!=="value"&&a(D,ae,ne,se,fe,I.children,j,le,Ie)}"value"in X&&a(D,"value",W.value,X.value,fe)}},E=(D,I,W,X,j,le,fe,ae,se)=>{const ne=I.el=D?D.el:s(""),de=I.anchor=D?D.anchor:s("");let{patchFlag:Me,dynamicChildren:Se,slotScopeIds:ke}=I;ke&&(ae=ae?ae.concat(ke):ke),D==null?(n(ne,W,X),n(de,W,X),C(I.children||[],W,de,j,le,fe,ae,se)):Me>0&&Me&64&&Se&&D.dynamicChildren?(A(D.dynamicChildren,Se,W,j,le,fe,ae),(I.key!=null||j&&I===j.subTree)&&fy(D,I,!0)):U(D,I,W,de,j,le,fe,ae,se)},L=(D,I,W,X,j,le,fe,ae,se)=>{I.slotScopeIds=ae,D==null?I.shapeFlag&512?j.ctx.activate(I,W,X,fe,se):O(I,W,X,j,le,fe,se):N(D,I,se)},O=(D,I,W,X,j,le,fe)=>{const ae=D.component=_O(D,X,j);if(Qd(D)&&(ae.ctx.renderer=Q),bO(ae),ae.asyncDep){if(j&&j.registerDep(ae,H),!D.el){const se=ae.subTree=Z(Mr);g(null,se,I,W)}}else H(ae,D,I,W,j,le,fe)},N=(D,I,W)=>{const X=I.component=D.component;if(PI(D,I,W))if(X.asyncDep&&!X.asyncResolved){V(X,I,W);return}else X.next=I,SI(X.update),X.effect.dirty=!0,X.update();else I.el=D.el,X.vnode=I},H=(D,I,W,X,j,le,fe)=>{const ae=()=>{if(D.isMounted){let{next:de,bu:Me,u:Se,parent:ke,vnode:Ve}=D;{const We=TT(D);if(We){de&&(de.el=Ve.el,V(D,de,fe)),We.asyncDep.then(()=>{D.isUnmounted||ae()});return}}let rt=de,bt;ya(D,!1),de?(de.el=Ve.el,V(D,de,fe)):de=Ve,Me&&Cc(Me),(bt=de.props&&de.props.onVnodeBeforeUpdate)&&kn(bt,ke,de,Ve),ya(D,!0);const he=Gh(D),Pe=D.subTree;D.subTree=he,p(Pe,he,c(Pe.el),B(Pe),D,j,le),de.el=he.el,rt===null&&EI(D,he.el),Se&&Sr(Se,j),(bt=de.props&&de.props.onVnodeUpdated)&&Sr(()=>kn(bt,ke,de,Ve),j)}else{let de;const{el:Me,props:Se}=I,{bm:ke,m:Ve,parent:rt}=D,bt=Il(I);if(ya(D,!1),ke&&Cc(ke),!bt&&(de=Se&&Se.onVnodeBeforeMount)&&kn(de,rt,I),ya(D,!0),Me&&pe){const he=()=>{D.subTree=Gh(D),pe(Me,D.subTree,D,j,null)};bt?I.type.__asyncLoader().then(()=>!D.isUnmounted&&he()):he()}else{const he=D.subTree=Gh(D);p(null,he,W,X,D,j,le),I.el=he.el}if(Ve&&Sr(Ve,j),!bt&&(de=Se&&Se.onVnodeMounted)){const he=I;Sr(()=>kn(de,rt,he),j)}(I.shapeFlag&256||rt&&Il(rt.vnode)&&rt.vnode.shapeFlag&256)&&D.a&&Sr(D.a,j),D.isMounted=!0,I=W=X=null}},se=D.effect=new jm(ae,Ft,()=>ny(ne),D.scope),ne=D.update=()=>{se.dirty&&se.run()};ne.id=D.uid,ya(D,!0),ne()},V=(D,I,W)=>{I.component=D;const X=D.vnode.props;D.vnode=I,D.next=null,nO(D,I.props,X,W),oO(D,I.children,W),Co(),m_(D),To()},U=(D,I,W,X,j,le,fe,ae,se=!1)=>{const ne=D&&D.children,de=D?D.shapeFlag:0,Me=I.children,{patchFlag:Se,shapeFlag:ke}=I;if(Se>0){if(Se&128){z(ne,Me,W,X,j,le,fe,ae,se);return}else if(Se&256){F(ne,Me,W,X,j,le,fe,ae,se);return}}ke&8?(de&16&&Ie(ne,j,le),Me!==ne&&f(W,Me)):de&16?ke&16?z(ne,Me,W,X,j,le,fe,ae,se):Ie(ne,j,le,!0):(de&8&&f(W,""),ke&16&&C(Me,W,X,j,le,fe,ae,se))},F=(D,I,W,X,j,le,fe,ae,se)=>{D=D||as,I=I||as;const ne=D.length,de=I.length,Me=Math.min(ne,de);let Se;for(Se=0;Sede?Ie(D,j,le,!0,!1,Me):C(I,W,X,j,le,fe,ae,se,Me)},z=(D,I,W,X,j,le,fe,ae,se)=>{let ne=0;const de=I.length;let Me=D.length-1,Se=de-1;for(;ne<=Me&&ne<=Se;){const ke=D[ne],Ve=I[ne]=se?qi(I[ne]):Hn(I[ne]);if(Ya(ke,Ve))p(ke,Ve,W,null,j,le,fe,ae,se);else break;ne++}for(;ne<=Me&&ne<=Se;){const ke=D[Me],Ve=I[Se]=se?qi(I[Se]):Hn(I[Se]);if(Ya(ke,Ve))p(ke,Ve,W,null,j,le,fe,ae,se);else break;Me--,Se--}if(ne>Me){if(ne<=Se){const ke=Se+1,Ve=keSe)for(;ne<=Me;)J(D[ne],j,le,!0),ne++;else{const ke=ne,Ve=ne,rt=new Map;for(ne=Ve;ne<=Se;ne++){const gt=I[ne]=se?qi(I[ne]):Hn(I[ne]);gt.key!=null&&rt.set(gt.key,ne)}let bt,he=0;const Pe=Se-Ve+1;let We=!1,Ge=0;const et=new Array(Pe);for(ne=0;ne=Pe){J(gt,j,le,!0);continue}let Kt;if(gt.key!=null)Kt=rt.get(gt.key);else for(bt=Ve;bt<=Se;bt++)if(et[bt-Ve]===0&&Ya(gt,I[bt])){Kt=bt;break}Kt===void 0?J(gt,j,le,!0):(et[Kt-Ve]=ne+1,Kt>=Ge?Ge=Kt:We=!0,p(gt,I[Kt],W,null,j,le,fe,ae,se),he++)}const zt=We?fO(et):as;for(bt=zt.length-1,ne=Pe-1;ne>=0;ne--){const gt=Ve+ne,Kt=I[gt],Yr=gt+1{const{el:le,type:fe,transition:ae,children:se,shapeFlag:ne}=D;if(ne&6){ee(D.component.subTree,I,W,X);return}if(ne&128){D.suspense.move(I,W,X);return}if(ne&64){fe.move(D,I,W,Q);return}if(fe===ft){n(le,I,W);for(let Me=0;Meae.enter(le),j);else{const{leave:Me,delayLeave:Se,afterLeave:ke}=ae,Ve=()=>n(le,I,W),rt=()=>{Me(le,()=>{Ve(),ke&&ke()})};Se?Se(le,Ve,rt):rt()}else n(le,I,W)},J=(D,I,W,X=!1,j=!1)=>{const{type:le,props:fe,ref:ae,children:se,dynamicChildren:ne,shapeFlag:de,patchFlag:Me,dirs:Se}=D;if(ae!=null&&Up(ae,null,W,D,!0),de&256){I.ctx.deactivate(D);return}const ke=de&1&&Se,Ve=!Il(D);let rt;if(Ve&&(rt=fe&&fe.onVnodeBeforeUnmount)&&kn(rt,I,D),de&6)$e(D.component,W,X);else{if(de&128){D.suspense.unmount(W,X);return}ke&&ma(D,null,I,"beforeUnmount"),de&64?D.type.remove(D,I,W,j,Q,X):ne&&(le!==ft||Me>0&&Me&64)?Ie(ne,I,W,!1,!0):(le===ft&&Me&384||!j&&de&16)&&Ie(se,I,W),X&&me(D)}(Ve&&(rt=fe&&fe.onVnodeUnmounted)||ke)&&Sr(()=>{rt&&kn(rt,I,D),ke&&ma(D,null,I,"unmounted")},W)},me=D=>{const{type:I,el:W,anchor:X,transition:j}=D;if(I===ft){we(W,X);return}if(I===qh){b(D);return}const le=()=>{i(W),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(D.shapeFlag&1&&j&&!j.persisted){const{leave:fe,delayLeave:ae}=j,se=()=>fe(W,le);ae?ae(D.el,le,se):se()}else le()},we=(D,I)=>{let W;for(;D!==I;)W=h(D),i(D),D=W;i(I)},$e=(D,I,W)=>{const{bum:X,scope:j,update:le,subTree:fe,um:ae}=D;X&&Cc(X),j.stop(),le&&(le.active=!1,J(fe,D,I,W)),ae&&Sr(ae,I),Sr(()=>{D.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&D.asyncDep&&!D.asyncResolved&&D.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Ie=(D,I,W,X=!1,j=!1,le=0)=>{for(let fe=le;feD.shapeFlag&6?B(D.component.subTree):D.shapeFlag&128?D.suspense.next():h(D.anchor||D.el);let Y=!1;const K=(D,I,W)=>{D==null?I._vnode&&J(I._vnode,null,null,!0):p(I._vnode||null,D,I,null,null,null,W),Y||(Y=!0,m_(),aT(),Y=!1),I._vnode=D},Q={p,um:J,m:ee,r:me,mt:O,mc:C,pc:U,pbc:A,n:B,o:e};let oe,pe;return t&&([oe,pe]=t(Q)),{render:K,hydrate:oe,createApp:tO(K,oe)}}function jh({type:e,props:t},r){return r==="svg"&&e==="foreignObject"||r==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:r}function ya({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function uO(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function fy(e,t,r=!1){const n=e.children,i=t.children;if(_e(n)&&_e(i))for(let a=0;a>1,e[r[s]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}function TT(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:TT(t)}const cO=e=>e.__isTeleport,Rl=e=>e&&(e.disabled||e.disabled===""),E_=e=>typeof SVGElement<"u"&&e instanceof SVGElement,L_=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Yp=(e,t)=>{const r=e&&e.to;return ze(r)?t?t(r):null:r},dO={name:"Teleport",__isTeleport:!0,process(e,t,r,n,i,a,o,s,l,u){const{mc:f,pc:c,pbc:h,o:{insert:d,querySelector:v,createText:p,createComment:m}}=u,g=Rl(t.props);let{shapeFlag:y,children:_,dynamicChildren:b}=t;if(e==null){const x=t.el=p(""),w=t.anchor=p("");d(x,r,n),d(w,r,n);const S=t.target=Yp(t.props,v),C=t.targetAnchor=p("");S&&(d(C,S),o==="svg"||E_(S)?o="svg":(o==="mathml"||L_(S))&&(o="mathml"));const M=(A,P)=>{y&16&&f(_,A,P,i,a,o,s,l)};g?M(r,w):S&&M(S,C)}else{t.el=e.el;const x=t.anchor=e.anchor,w=t.target=e.target,S=t.targetAnchor=e.targetAnchor,C=Rl(e.props),M=C?r:w,A=C?x:S;if(o==="svg"||E_(w)?o="svg":(o==="mathml"||L_(w))&&(o="mathml"),b?(h(e.dynamicChildren,b,M,i,a,o,s),fy(e,t,!0)):l||c(e,t,M,A,i,a,o,s,!1),g)C?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):wf(t,r,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const P=t.target=Yp(t.props,v);P&&wf(t,P,null,u,0)}else C&&wf(t,w,S,u,1)}AT(t)},remove(e,t,r,n,{um:i,o:{remove:a}},o){const{shapeFlag:s,children:l,anchor:u,targetAnchor:f,target:c,props:h}=e;if(c&&a(f),o&&a(u),s&16){const d=o||!Rl(h);for(let v=0;v0?Sn||as:null,vO(),du>0&&Sn&&Sn.push(e),e}function ce(e,t,r,n,i,a){return PT(te(e,t,r,n,i,a,!0))}function ve(e,t,r,n,i){return PT(Z(e,t,r,n,i,!0))}function la(e){return e?e.__v_isVNode===!0:!1}function Ya(e,t){return e.type===t.type&&e.key===t.key}const th="__vInternal",ET=({key:e})=>e??null,Mc=({ref:e,ref_key:t,ref_for:r})=>(typeof e=="number"&&(e=""+e),e!=null?ze(e)||Pt(e)||De(e)?{i:Wt,r:e,k:t,f:!!r}:e:null);function te(e,t=null,r=null,n=0,i=null,a=e===ft?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ET(t),ref:t&&Mc(t),scopeId:lT,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Wt};return s?(cy(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=ze(r)?8:16),du>0&&!o&&Sn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&Sn.push(l),l}const Z=pO;function pO(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===uT)&&(e=Mr),la(e)){const s=_i(e,t,!0);return r&&cy(s,r),du>0&&!a&&Sn&&(s.shapeFlag&6?Sn[Sn.indexOf(e)]=s:Sn.push(s)),s.patchFlag|=-2,s}if(CO(e)&&(e=e.__vccOpts),t){t=gO(t);let{class:s,style:l}=t;s&&!ze(s)&&(t.class=re(s)),qe(l)&&(KC(l)&&!_e(l)&&(l=Ht({},l)),t.style=ct(l))}const o=ze(e)?1:DI(e)?128:cO(e)?64:qe(e)?4:De(e)?2:0;return te(e,t,r,n,i,o,a,!0)}function gO(e){return e?KC(e)||th in e?Ht({},e):e:null}function _i(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?ei(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&ET(s),ref:t&&t.ref?r&&i?_e(i)?i.concat(Mc(t)):[i,Mc(t)]:Mc(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ft?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_i(e.ssContent),ssFallback:e.ssFallback&&_i(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function pt(e=" ",t=0){return Z(Bs,null,e,t)}function Ae(e="",t=!1){return t?(G(),ve(Mr,null,e)):Z(Mr,null,e)}function Hn(e){return e==null||typeof e=="boolean"?Z(Mr):_e(e)?Z(ft,null,e.slice()):typeof e=="object"?qi(e):Z(Bs,null,String(e))}function qi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_i(e)}function cy(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(_e(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),cy(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(th in t)?t._ctx=Wt:i===3&&Wt&&(Wt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else De(t)?(t={default:t,_ctx:Wt},r=32):(t=String(t),n&64?(r=16,t=[pt(t)]):r=8);e.children=t,e.shapeFlag|=r}function ei(...e){const t={};for(let r=0;rQt||Wt;let ad,jp;{const e=DC(),t=(r,n)=>{let i;return(i=e[r])||(i=e[r]=[]),i.push(n),a=>{i.length>1?i.forEach(o=>o(a)):i[0](a)}};ad=t("__VUE_INSTANCE_SETTERS__",r=>Qt=r),jp=t("__VUE_SSR_SETTERS__",r=>rh=r)}const Yu=e=>{const t=Qt;return ad(e),e.scope.on(),()=>{e.scope.off(),ad(t)}},I_=()=>{Qt&&Qt.scope.off(),ad(null)};function LT(e){return e.vnode.shapeFlag&4}let rh=!1;function bO(e,t=!1){t&&jp(t);const{props:r,children:n}=e.vnode,i=LT(e);rO(e,r,i,t),aO(e,n);const a=i?wO(e,t):void 0;return t&&jp(!1),a}function wO(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=XC(new Proxy(e.ctx,jI));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?IT(e):null,a=Yu(e);Co();const o=ra(n,e,0,[e.props,i]);if(To(),a(),Qc(o)){if(o.then(I_,I_),t)return o.then(s=>{O_(e,s,t)}).catch(s=>{Xd(s,e,0)});e.asyncDep=o}else O_(e,o,t)}else DT(e,t)}function O_(e,t,r){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:qe(t)&&(e.setupState=tT(t)),DT(e,r)}let R_;function DT(e,t,r){const n=e.type;if(!e.render){if(!t&&R_&&!n.render){const i=n.template||ly(e).template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=Ht(Ht({isCustomElement:a,delimiters:s},o),l);n.render=R_(i,u)}}e.render=n.render||Ft}{const i=Yu(e);Co();try{KI(e)}finally{To(),i()}}}function SO(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,r){return Lr(e,"get","$attrs"),t[r]}}))}function IT(e){const t=r=>{e.exposed=r||{}};return{get attrs(){return SO(e)},slots:e.slots,emit:e.emit,expose:t}}function nh(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(tT(XC(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Ol)return Ol[r](e)},has(t,r){return r in t||r in Ol}}))}function xO(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function CO(e){return De(e)&&"__vccOpts"in e}const k=(e,t)=>QC(e,t,rh);function Te(e,t,r){const n=arguments.length;return n===2?qe(t)&&!_e(t)?la(t)?Z(e,null,[t]):Z(e,t):Z(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&la(r)&&(r=[r]),Z(e,t,r))}const TO="3.4.15",MO=Ft;/** -* @vue/runtime-dom v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const AO="http://www.w3.org/2000/svg",PO="http://www.w3.org/1998/Math/MathML",Ki=typeof document<"u"?document:null,k_=Ki&&Ki.createElement("template"),EO={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const i=t==="svg"?Ki.createElementNS(AO,e):t==="mathml"?Ki.createElementNS(PO,e):Ki.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Ki.createTextNode(e),createComment:e=>Ki.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ki.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,i,a){const o=r?r.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),r),!(i===a||!(i=i.nextSibling)););else{k_.innerHTML=n==="svg"?`${e}`:n==="mathml"?`${e}`:e;const s=k_.content;if(n==="svg"||n==="mathml"){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}},Ii="transition",Xs="animation",gs=Symbol("_vtc"),ti=(e,{slots:t})=>Te(BI,RT(e),t);ti.displayName="Transition";const OT={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},LO=ti.props=Ht({},hT,OT),_a=(e,t=[])=>{_e(e)?e.forEach(r=>r(...t)):e&&e(...t)},N_=e=>e?_e(e)?e.some(t=>t.length>1):e.length>1:!1;function RT(e){const t={};for(const E in e)E in OT||(t[E]=e[E]);if(e.css===!1)return t;const{name:r="v",type:n,duration:i,enterFromClass:a=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:f=s,leaveFromClass:c=`${r}-leave-from`,leaveActiveClass:h=`${r}-leave-active`,leaveToClass:d=`${r}-leave-to`}=e,v=DO(i),p=v&&v[0],m=v&&v[1],{onBeforeEnter:g,onEnter:y,onEnterCancelled:_,onLeave:b,onLeaveCancelled:x,onBeforeAppear:w=g,onAppear:S=y,onAppearCancelled:C=_}=t,M=(E,L,O)=>{zi(E,L?f:s),zi(E,L?u:o),O&&O()},A=(E,L)=>{E._isLeaving=!1,zi(E,c),zi(E,d),zi(E,h),L&&L()},P=E=>(L,O)=>{const N=E?S:y,H=()=>M(L,E,O);_a(N,[L,H]),B_(()=>{zi(L,E?l:a),ci(L,E?f:s),N_(N)||F_(L,n,p,H)})};return Ht(t,{onBeforeEnter(E){_a(g,[E]),ci(E,a),ci(E,o)},onBeforeAppear(E){_a(w,[E]),ci(E,l),ci(E,u)},onEnter:P(!1),onAppear:P(!0),onLeave(E,L){E._isLeaving=!0;const O=()=>A(E,L);ci(E,c),NT(),ci(E,h),B_(()=>{E._isLeaving&&(zi(E,c),ci(E,d),N_(b)||F_(E,n,m,O))}),_a(b,[E,O])},onEnterCancelled(E){M(E,!1),_a(_,[E])},onAppearCancelled(E){M(E,!0),_a(C,[E])},onLeaveCancelled(E){A(E),_a(x,[E])}})}function DO(e){if(e==null)return null;if(qe(e))return[Kh(e.enter),Kh(e.leave)];{const t=Kh(e);return[t,t]}}function Kh(e){return HD(e)}function ci(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e[gs]||(e[gs]=new Set)).add(t)}function zi(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const r=e[gs];r&&(r.delete(t),r.size||(e[gs]=void 0))}function B_(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let IO=0;function F_(e,t,r,n){const i=e._endId=++IO,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=kT(e,t);if(!o)return n();const u=o+"end";let f=0;const c=()=>{e.removeEventListener(u,h),a()},h=d=>{d.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[v]||"").split(", "),i=n(`${Ii}Delay`),a=n(`${Ii}Duration`),o=$_(i,a),s=n(`${Xs}Delay`),l=n(`${Xs}Duration`),u=$_(s,l);let f=null,c=0,h=0;t===Ii?o>0&&(f=Ii,c=o,h=a.length):t===Xs?u>0&&(f=Xs,c=u,h=l.length):(c=Math.max(o,u),f=c>0?o>u?Ii:Xs:null,h=f?f===Ii?a.length:l.length:0);const d=f===Ii&&/\b(transform|all)(,|$)/.test(n(`${Ii}Property`).toString());return{type:f,timeout:c,propCount:h,hasTransform:d}}function $_(e,t){for(;e.lengthH_(r)+H_(e[n])))}function H_(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function NT(){return document.body.offsetHeight}function OO(e,t,r){const n=e[gs];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}const dy=Symbol("_vod"),Kn={beforeMount(e,{value:t},{transition:r}){e[dy]=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Zs(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),Zs(e,!0),n.enter(e)):n.leave(e,()=>{Zs(e,!1)}):Zs(e,t))},beforeUnmount(e,{value:t}){Zs(e,t)}};function Zs(e,t){e.style.display=t?e[dy]:"none"}const RO=Symbol("");function kO(e,t,r){const n=e.style,i=n.display,a=ze(r);if(r&&!a){if(t&&!ze(t))for(const o in t)r[o]==null&&qp(n,o,"");for(const o in r)qp(n,o,r[o])}else if(a){if(t!==r){const o=n[RO];o&&(r+=";"+o),n.cssText=r}}else t&&e.removeAttribute("style");dy in e&&(n.display=i)}const z_=/\s*!important$/;function qp(e,t,r){if(_e(r))r.forEach(n=>qp(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=NO(e,t);z_.test(r)?e.setProperty(xo(n),r.replace(z_,""),"important"):e[n]=r}}const V_=["Webkit","Moz","ms"],Xh={};function NO(e,t){const r=Xh[t];if(r)return r;let n=Pn(t);if(n!=="filter"&&n in e)return Xh[t]=n;n=Yd(n);for(let i=0;iZh||(VO.then(()=>Zh=0),Zh=Date.now());function GO(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;sn(UO(n,r.value),t,5,[n])};return r.value=e,r.attached=WO(),r}function UO(e,t){if(_e(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const Y_=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,YO=(e,t,r,n,i,a,o,s,l)=>{const u=i==="svg";t==="class"?OO(e,n,u):t==="style"?kO(e,r,n):Wd(t)?Gm(t)||HO(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jO(e,t,n,u))?FO(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),BO(e,t,n,u))};function jO(e,t,r,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Y_(t)&&De(r));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Y_(t)&&ze(r)?!1:t in e}const FT=new WeakMap,$T=new WeakMap,od=Symbol("_moveCb"),j_=Symbol("_enterCb"),HT={name:"TransitionGroup",props:Ht({},LO,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=it(),n=dT();let i,a;return Uu(()=>{if(!i.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!JO(i[0].el,r.vnode.el,o))return;i.forEach(XO),i.forEach(ZO);const s=i.filter(QO);NT(),s.forEach(l=>{const u=l.el,f=u.style;ci(u,o),f.transform=f.webkitTransform=f.transitionDuration="";const c=u[od]=h=>{h&&h.target!==u||(!h||/transform$/.test(h.propertyName))&&(u.removeEventListener("transitionend",c),u[od]=null,zi(u,o))};u.addEventListener("transitionend",c)})}),()=>{const o=Qe(e),s=RT(o);let l=o.tag||ft;i=a,a=t.default?sy(t.default()):[];for(let u=0;udelete e.mode;HT.props;const KO=HT;function XO(e){const t=e.el;t[od]&&t[od](),t[j_]&&t[j_]()}function ZO(e){$T.set(e,e.el.getBoundingClientRect())}function QO(e){const t=FT.get(e),r=$T.get(e),n=t.left-r.left,i=t.top-r.top;if(n||i){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${n}px,${i}px)`,a.transitionDuration="0s",e}}function JO(e,t,r){const n=e.cloneNode(),i=e[gs];i&&i.forEach(s=>{s.split(/\s+/).forEach(l=>l&&n.classList.remove(l))}),r.split(/\s+/).forEach(s=>s&&n.classList.add(s)),n.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(n);const{hasTransform:o}=kT(n);return a.removeChild(n),o}const q_=e=>{const t=e.props["onUpdate:modelValue"]||!1;return _e(t)?r=>Cc(t,r):t},Qh=Symbol("_assign"),sd={deep:!0,created(e,t,r){e[Qh]=q_(r),BT(e,"change",()=>{const n=e._modelValue,i=eR(e),a=e.checked,o=e[Qh];if(_e(n)){const s=OC(n,i),l=s!==-1;if(a&&!l)o(n.concat(i));else if(!a&&l){const u=[...n];u.splice(s,1),o(u)}}else if(Gd(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(zT(e,a))})},mounted:K_,beforeUpdate(e,t,r){e[Qh]=q_(r),K_(e,t,r)}};function K_(e,{value:t,oldValue:r},n){e._modelValue=t,_e(t)?e.checked=OC(t,n.props.value)>-1:Gd(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=jd(t,zT(e,!0)))}function eR(e){return"_value"in e?e._value:e.value}function zT(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const tR=["ctrl","shift","alt","meta"],rR={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>tR.some(r=>e[`${r}Key`]&&!t.includes(r))},ua=(e,t)=>{const r=e._withMods||(e._withMods={}),n=t.join(".");return r[n]||(r[n]=(i,...a)=>{for(let o=0;o{const r=e._withKeys||(e._withKeys={}),n=t.join(".");return r[n]||(r[n]=i=>{if(!("key"in i))return;const a=xo(i.key);if(t.some(o=>o===a||nR[o]===a))return e(i)})},aR=Ht({patchProp:YO},EO);let X_;function VT(){return X_||(X_=sO(aR))}const ld=(...e)=>{VT().render(...e)},oR=(...e)=>{const t=VT().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=lR(n);if(!i)return;const a=t._component;!De(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.innerHTML="";const o=r(i,!1,sR(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function sR(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function lR(e){return ze(e)?document.querySelector(e):e}const Ac=function(e,t,...r){let n;t.includes("mouse")||t.includes("click")?n="MouseEvents":t.includes("key")?n="KeyboardEvent":n="HTMLEvents";const i=document.createEvent(n);return i.initEvent(t,...r),e.dispatchEvent(i),e},di=(e,t,{checkForDefaultPrevented:r=!0}={})=>i=>{const a=e==null?void 0:e(i);if(r===!1||!a)return t==null?void 0:t(i)};var Z_;const At=typeof window<"u",uR=e=>typeof e=="function",fR=e=>typeof e=="string",Kp=()=>{};At&&((Z_=window==null?void 0:window.navigator)!=null&&Z_.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function po(e){return typeof e=="function"?e():T(e)}function WT(e,t){function r(...n){return new Promise((i,a)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(i).catch(a)})}return r}const GT=e=>e();function cR(e,t={}){let r,n,i=Kp;const a=s=>{clearTimeout(s),i(),i=Kp};return s=>{const l=po(e),u=po(t.maxWait);return r&&a(r),l<=0||u!==void 0&&u<=0?(n&&(a(n),n=null),Promise.resolve(s())):new Promise((f,c)=>{i=t.rejectOnCancel?c:f,u&&!n&&(n=setTimeout(()=>{r&&a(r),n=null,f(s())},u)),r=setTimeout(()=>{n&&a(n),n=null,f(s())},l)})}}function dR(e=GT){const t=$(!0);function r(){t.value=!1}function n(){t.value=!0}const i=(...a)=>{t.value&&e(...a)};return{isActive:Gu(t),pause:r,resume:n,eventFilter:i}}function hR(e){return e}function ju(e){return kC()?(NC(e),!0):!1}function vR(e,t=200,r={}){return WT(cR(t,r),e)}function pR(e,t=200,r={}){const n=$(e.value),i=vR(()=>{n.value=e.value},t,r);return be(e,()=>i()),n}function gR(e){return typeof e=="function"?k(e):$(e)}function UT(e,t=!0){it()?_t(e):t?e():Nt(e)}function hu(e,t,r={}){const{immediate:n=!0}=r,i=$(!1);let a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.value=!1,o()}function l(...u){o(),i.value=!0,a=setTimeout(()=>{i.value=!1,a=null,e(...u)},po(t))}return n&&(i.value=!0,At&&l()),ju(s),{isPending:Gu(i),start:l,stop:s}}function mR(e=!1,t={}){const{truthyValue:r=!0,falsyValue:n=!1}=t,i=Pt(e),a=$(e);function o(s){if(arguments.length)return a.value=s,a.value;{const l=po(r);return a.value=a.value===l?po(n):l,a.value}}return i?o:[a,o]}var Q_=Object.getOwnPropertySymbols,yR=Object.prototype.hasOwnProperty,_R=Object.prototype.propertyIsEnumerable,bR=(e,t)=>{var r={};for(var n in e)yR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Q_)for(var n of Q_(e))t.indexOf(n)<0&&_R.call(e,n)&&(r[n]=e[n]);return r};function wR(e,t,r={}){const n=r,{eventFilter:i=GT}=n,a=bR(n,["eventFilter"]);return be(e,WT(i,t),a)}var SR=Object.defineProperty,xR=Object.defineProperties,CR=Object.getOwnPropertyDescriptors,ud=Object.getOwnPropertySymbols,YT=Object.prototype.hasOwnProperty,jT=Object.prototype.propertyIsEnumerable,J_=(e,t,r)=>t in e?SR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,TR=(e,t)=>{for(var r in t||(t={}))YT.call(t,r)&&J_(e,r,t[r]);if(ud)for(var r of ud(t))jT.call(t,r)&&J_(e,r,t[r]);return e},MR=(e,t)=>xR(e,CR(t)),AR=(e,t)=>{var r={};for(var n in e)YT.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&ud)for(var n of ud(e))t.indexOf(n)<0&&jT.call(e,n)&&(r[n]=e[n]);return r};function PR(e,t,r={}){const n=r,{eventFilter:i}=n,a=AR(n,["eventFilter"]),{eventFilter:o,pause:s,resume:l,isActive:u}=dR(i);return{stop:wR(e,t,MR(TR({},a),{eventFilter:o})),pause:s,resume:l,isActive:u}}function Zi(e){var t;const r=po(e);return(t=r==null?void 0:r.$el)!=null?t:r}const fa=At?window:void 0;function xn(...e){let t,r,n,i;if(fR(e[0])||Array.isArray(e[0])?([r,n,i]=e,t=fa):[t,r,n,i]=e,!t)return Kp;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],o=()=>{a.forEach(f=>f()),a.length=0},s=(f,c,h)=>(f.addEventListener(c,h,i),()=>f.removeEventListener(c,h,i)),l=be(()=>Zi(t),f=>{o(),f&&a.push(...r.flatMap(c=>n.map(h=>s(f,c,h))))},{immediate:!0,flush:"post"}),u=()=>{l(),o()};return ju(u),u}function ER(e,t,r={}){const{window:n=fa,ignore:i=[],capture:a=!0,detectIframe:o=!1}=r;if(!n)return;let s=!0,l;const u=d=>i.some(v=>{if(typeof v=="string")return Array.from(n.document.querySelectorAll(v)).some(p=>p===d.target||d.composedPath().includes(p));{const p=Zi(v);return p&&(d.target===p||d.composedPath().includes(p))}}),f=d=>{n.clearTimeout(l);const v=Zi(e);if(!(!v||v===d.target||d.composedPath().includes(v))){if(d.detail===0&&(s=!u(d)),!s){s=!0;return}t(d)}},c=[xn(n,"click",f,{passive:!0,capture:a}),xn(n,"pointerdown",d=>{const v=Zi(e);v&&(s=!d.composedPath().includes(v)&&!u(d))},{passive:!0}),xn(n,"pointerup",d=>{if(d.button===0){const v=d.composedPath();d.composedPath=()=>v,l=n.setTimeout(()=>f(d),50)}},{passive:!0}),o&&xn(n,"blur",d=>{var v;const p=Zi(e);((v=n.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(p!=null&&p.contains(n.document.activeElement))&&t(d)})].filter(Boolean);return()=>c.forEach(d=>d())}function qT(e,t=!1){const r=$(),n=()=>r.value=!!e();return n(),UT(n,t),r}function LR(e,t={}){const{window:r=fa}=t,n=qT(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let i;const a=$(!1),o=()=>{i&&("removeEventListener"in i?i.removeEventListener("change",s):i.removeListener(s))},s=()=>{n.value&&(o(),i=r.matchMedia(gR(e).value),a.value=i.matches,"addEventListener"in i?i.addEventListener("change",s):i.addListener(s))};return na(s),ju(()=>o()),a}const Xp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zp="__vueuse_ssr_handlers__";Xp[Zp]=Xp[Zp]||{};const DR=Xp[Zp];function KT(e,t){return DR[e]||t}function IR(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var OR=Object.defineProperty,eb=Object.getOwnPropertySymbols,RR=Object.prototype.hasOwnProperty,kR=Object.prototype.propertyIsEnumerable,tb=(e,t,r)=>t in e?OR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rb=(e,t)=>{for(var r in t||(t={}))RR.call(t,r)&&tb(e,r,t[r]);if(eb)for(var r of eb(t))kR.call(t,r)&&tb(e,r,t[r]);return e};const NR={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function BR(e,t,r,n={}){var i;const{flush:a="pre",deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:f,window:c=fa,eventFilter:h,onError:d=S=>{console.error(S)}}=n,v=(f?ty:$)(t);if(!r)try{r=KT("getDefaultStorage",()=>{var S;return(S=fa)==null?void 0:S.localStorage})()}catch(S){d(S)}if(!r)return v;const p=po(t),m=IR(p),g=(i=n.serializer)!=null?i:NR[m],{pause:y,resume:_}=PR(v,()=>b(v.value),{flush:a,deep:o,eventFilter:h});return c&&s&&xn(c,"storage",w),w(),v;function b(S){try{if(S==null)r.removeItem(e);else{const C=g.write(S),M=r.getItem(e);M!==C&&(r.setItem(e,C),c&&(c==null||c.dispatchEvent(new StorageEvent("storage",{key:e,oldValue:M,newValue:C,storageArea:r}))))}}catch(C){d(C)}}function x(S){const C=S?S.newValue:r.getItem(e);if(C==null)return l&&p!==null&&r.setItem(e,g.write(p)),p;if(!S&&u){const M=g.read(C);return uR(u)?u(M,p):m==="object"&&!Array.isArray(M)?rb(rb({},p),M):M}else return typeof C!="string"?C:g.read(C)}function w(S){if(!(S&&S.storageArea!==r)){if(S&&S.key==null){v.value=p;return}if(!(S&&S.key!==e)){y();try{v.value=x(S)}catch(C){d(C)}finally{S?Nt(_):_()}}}}}function XT(e){return LR("(prefers-color-scheme: dark)",e)}var FR=Object.defineProperty,nb=Object.getOwnPropertySymbols,$R=Object.prototype.hasOwnProperty,HR=Object.prototype.propertyIsEnumerable,ib=(e,t,r)=>t in e?FR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,zR=(e,t)=>{for(var r in t||(t={}))$R.call(t,r)&&ib(e,r,t[r]);if(nb)for(var r of nb(t))HR.call(t,r)&&ib(e,r,t[r]);return e};function VR(e={}){const{selector:t="html",attribute:r="class",initialValue:n="auto",window:i=fa,storage:a,storageKey:o="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:l,emitAuto:u}=e,f=zR({auto:"",light:"light",dark:"dark"},e.modes||{}),c=XT({window:i}),h=k(()=>c.value?"dark":"light"),d=l||(o==null?$(n):BR(o,n,a,{window:i,listenToStorageChanges:s})),v=k({get(){return d.value==="auto"&&!u?h.value:d.value},set(y){d.value=y}}),p=KT("updateHTMLAttrs",(y,_,b)=>{const x=i==null?void 0:i.document.querySelector(y);if(x)if(_==="class"){const w=b.split(/\s/g);Object.values(f).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{w.includes(S)?x.classList.add(S):x.classList.remove(S)})}else x.setAttribute(_,b)});function m(y){var _;const b=y==="auto"?h.value:y;p(t,r,(_=f[b])!=null?_:b)}function g(y){e.onChanged?e.onChanged(y,m):m(y)}return be(v,g,{flush:"post",immediate:!0}),u&&be(h,()=>g(v.value),{flush:"post"}),UT(()=>g(v.value)),v}var WR=Object.defineProperty,GR=Object.defineProperties,UR=Object.getOwnPropertyDescriptors,ab=Object.getOwnPropertySymbols,YR=Object.prototype.hasOwnProperty,jR=Object.prototype.propertyIsEnumerable,ob=(e,t,r)=>t in e?WR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qR=(e,t)=>{for(var r in t||(t={}))YR.call(t,r)&&ob(e,r,t[r]);if(ab)for(var r of ab(t))jR.call(t,r)&&ob(e,r,t[r]);return e},KR=(e,t)=>GR(e,UR(t));function XR(e={}){const{valueDark:t="dark",valueLight:r="",window:n=fa}=e,i=VR(KR(qR({},e),{onChanged:(s,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,s==="dark"):l(s)},modes:{dark:t,light:r}})),a=XT({window:n});return k({get(){return i.value==="dark"},set(s){s===a.value?i.value="auto":i.value=s?"dark":"light"}})}var sb=Object.getOwnPropertySymbols,ZR=Object.prototype.hasOwnProperty,QR=Object.prototype.propertyIsEnumerable,JR=(e,t)=>{var r={};for(var n in e)ZR.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&sb)for(var n of sb(e))t.indexOf(n)<0&&QR.call(e,n)&&(r[n]=e[n]);return r};function ms(e,t,r={}){const n=r,{window:i=fa}=n,a=JR(n,["window"]);let o;const s=qT(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},u=be(()=>Zi(e),c=>{l(),s.value&&i&&c&&(o=new ResizeObserver(t),o.observe(c,a))},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return ju(f),{isSupported:s,stop:f}}var lb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(lb||(lb={}));var ek=Object.defineProperty,ub=Object.getOwnPropertySymbols,tk=Object.prototype.hasOwnProperty,rk=Object.prototype.propertyIsEnumerable,fb=(e,t,r)=>t in e?ek(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,nk=(e,t)=>{for(var r in t||(t={}))tk.call(t,r)&&fb(e,r,t[r]);if(ub)for(var r of ub(t))rk.call(t,r)&&fb(e,r,t[r]);return e};const ik={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};nk({linear:hR},ik);var ZT=typeof global=="object"&&global&&global.Object===Object&&global,ak=typeof self=="object"&&self&&self.Object===Object&&self,Dn=ZT||ak||Function("return this")(),fn=Dn.Symbol,QT=Object.prototype,ok=QT.hasOwnProperty,sk=QT.toString,Qs=fn?fn.toStringTag:void 0;function lk(e){var t=ok.call(e,Qs),r=e[Qs];try{e[Qs]=void 0;var n=!0}catch{}var i=sk.call(e);return n&&(t?e[Qs]=r:delete e[Qs]),i}var uk=Object.prototype,fk=uk.toString;function ck(e){return fk.call(e)}var dk="[object Null]",hk="[object Undefined]",cb=fn?fn.toStringTag:void 0;function Mo(e){return e==null?e===void 0?hk:dk:cb&&cb in Object(e)?lk(e):ck(e)}function Xn(e){return e!=null&&typeof e=="object"}var vk="[object Symbol]";function ih(e){return typeof e=="symbol"||Xn(e)&&Mo(e)==vk}function JT(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r0){if(++t>=Vk)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Yk(e){return function(){return e}}var fd=function(){try{var e=Po(Object,"defineProperty");return e({},"",{}),e}catch{}}(),jk=fd?function(e,t){return fd(e,"toString",{configurable:!0,enumerable:!1,value:Yk(t),writable:!0})}:hy;const qk=jk;var rM=Uk(qk);function Kk(e,t){for(var r=-1,n=e==null?0:e.length;++r-1&&e%1==0&&e-1&&e%1==0&&e<=tN}function Fs(e){return e!=null&&my(e.length)&&!vy(e)}function rN(e,t,r){if(!Dr(r))return!1;var n=typeof t;return(n=="number"?Fs(r)&&ah(t,r.length):n=="string"&&t in r)?qu(r[t],e):!1}function nN(e){return eN(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,o&&rN(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n-1}function hB(e,t){var r=this.__data__,n=oh(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function Pi(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(s)?t>1?Ty(s,t-1,r,n,i):Cy(i,s):n||(i[i.length]=s)}return i}function EB(e){var t=e==null?0:e.length;return t?Ty(e,1):[]}function LB(e){return rM(nM(e,void 0,EB),e+"")}var DB=lM(Object.getPrototypeOf,Object);const My=DB;var IB="[object Object]",OB=Function.prototype,RB=Object.prototype,uM=OB.toString,kB=RB.hasOwnProperty,NB=uM.call(Object);function BB(e){if(!Xn(e)||Mo(e)!=IB)return!1;var t=My(e);if(t===null)return!0;var r=kB.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&uM.call(r)==NB}function Jp(){if(!arguments.length)return[];var e=arguments[0];return gr(e)?e:[e]}function FB(){this.__data__=new Pi,this.size=0}function $B(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function HB(e){return this.__data__.get(e)}function zB(e){return this.__data__.has(e)}var VB=200;function WB(e,t){var r=this.__data__;if(r instanceof Pi){var n=r.__data__;if(!mu||n.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,h=!0,d=r&y$?new dd:void 0;for(a.set(e,t),a.set(t,e);++c=t||S<0||c&&C>=a}function g(){var w=rv();if(m(w))return y(w);s=setTimeout(g,p(w))}function y(w){return s=void 0,h&&n?d(w):(n=i=void 0,o)}function _(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function b(){return s===void 0?o:y(rv())}function x(){var w=rv(),S=m(w);if(n=arguments,i=this,l=w,S){if(s===void 0)return v(l);if(c)return clearTimeout(s),s=setTimeout(g,t),d(l)}return s===void 0&&(s=setTimeout(g,t)),o}return x.cancel=_,x.flush=b,x}function ig(e,t,r){(r!==void 0&&!qu(e[t],r)||r===void 0&&!(t in e))&&py(e,t,r)}function u3(e){return Xn(e)&&Fs(e)}function ag(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function f3(e){return Ku(e,Zu(e))}function c3(e,t,r,n,i,a,o){var s=ag(e,r),l=ag(t,r),u=o.get(l);if(u){ig(e,r,u);return}var f=a?a(s,l,r+"",e,t,o):void 0,c=f===void 0;if(c){var h=gr(l),d=!h&&pu(l),v=!h&&!d&&by(l);f=l,h||d||v?gr(s)?f=s:u3(s)?f=tM(s):d?(c=!1,f=cM(l,!0)):v?(c=!1,f=pM(l,!0)):f=[]:BB(l)||vu(l)?(f=s,vu(s)?f=f3(s):(!Dr(s)||vy(s))&&(f=gM(l))):c=!1}c&&(o.set(l,f),i(f,l,n,a,o),o.delete(l)),ig(e,r,f)}function TM(e,t,r,n,i){e!==t&&CM(t,function(a,o){if(i||(i=new An),Dr(a))c3(e,t,o,r,TM,n,i);else{var s=n?n(ag(e,o),a,o+"",e,t,i):void 0;s===void 0&&(s=a),ig(e,o,s)}},Zu)}function d3(e,t){var r=-1,n=Fs(e)?Array(e.length):[];return a3(e,function(i,a,o){n[++r]=t(i,a,o)}),n}function h3(e,t){var r=gr(e)?JT:d3;return r(e,t3(t))}function v3(e,t){return Ty(h3(e,t),1)}function og(e){for(var t=-1,r=e==null?0:e.length,n={};++te===void 0,zr=e=>typeof e=="boolean",kt=e=>typeof e=="number",mo=e=>typeof Element>"u"?!1:e instanceof Element,S3=e=>ze(e)?!Number.isNaN(Number(e)):!1,Vb=e=>Object.keys(e),Ec=(e,t,r)=>({get value(){return yu(e,t,r)},set value(n){w3(e,t,n)}});class x3 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function bi(e,t){throw new x3(`[${e}] ${t}`)}const PM=(e="")=>e.split(" ").filter(t=>!!t.trim()),oo=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Za=(e,t)=>{!e||!t.trim()||e.classList.add(...PM(t))},so=(e,t)=>{!e||!t.trim()||e.classList.remove(...PM(t))},C3=(e,t)=>{var r;if(!At||!e||!t)return"";let n=Pn(t);n==="float"&&(n="cssFloat");try{const i=e.style[n];if(i)return i;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function Zn(e,t="px"){if(!e)return"";if(kt(e)||S3(e))return`${e}${t}`;if(ze(e))return e}let xf;const T3=e=>{var t;if(!At)return 0;if(xf!==void 0)return xf;const r=document.createElement("div");r.className=`${e}-scrollbar__wrap`,r.style.visibility="hidden",r.style.width="100px",r.style.position="absolute",r.style.top="-9999px",document.body.appendChild(r);const n=r.offsetWidth;r.style.overflow="scroll";const i=document.createElement("div");i.style.width="100%",r.appendChild(i);const a=i.offsetWidth;return(t=r.parentNode)==null||t.removeChild(r),xf=n-a,xf};/*! Element Plus Icons Vue v2.3.1 */var M3=ie({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),EM=M3,A3=ie({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),Ey=A3,P3=ie({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),E3=P3,L3=ie({name:"Back",__name:"back",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),te("path",{fill:"currentColor",d:"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z"})]))}}),D3=L3,I3=ie({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),LM=I3,O3=ie({name:"Close",__name:"close",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),vd=O3,R3=ie({name:"InfoFilled",__name:"info-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),DM=R3,k3=ie({name:"Loading",__name:"loading",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),Ly=k3,N3=ie({name:"More",__name:"more",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}}),B3=N3,F3=ie({name:"QuestionFilled",__name:"question-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z"})]))}}),$3=F3,H3=ie({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),IM=H3,z3=ie({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,r)=>(G(),ce("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[te("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),OM=z3;const RM="__epPropKey",Be=e=>e,V3=e=>qe(e)&&!!e[RM],fh=(e,t)=>{if(!qe(e)||V3(e))return e;const{values:r,required:n,default:i,type:a,validator:o}=e,l={type:a,required:!!n,validator:r||o?u=>{let f=!1,c=[];if(r&&(c=Array.from(r),Ue(e,"default")&&c.push(i),f||(f=c.includes(u))),o&&(f||(f=o(u))),!f&&c.length>0){const h=[...new Set(c)].map(d=>JSON.stringify(d)).join(", ");MO(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${h}], got value ${JSON.stringify(u)}.`)}return f}:void 0,[RM]:!0};return Ue(e,"default")&&(l.default=i),l},Je=e=>og(Object.entries(e).map(([t,r])=>[t,fh(r,t)])),vr=Be([String,Object,Function]),W3={Close:vd},G3={Close:vd,SuccessFilled:IM,InfoFilled:DM,WarningFilled:OM,CircleCloseFilled:LM},Wb={success:IM,warning:OM,error:LM,info:DM},Yt=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},U3=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),pa=e=>(e.install=Ft,e),Y3=(...e)=>t=>{e.forEach(r=>{De(r)?r(t):r.value=t})},hr={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},wi="update:modelValue",sg="change",lg="input",$s=["","default","small","large"],j3=e=>["",...$s].includes(e);var Lc=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(Lc||{});const Dc=e=>{const t=_e(e)?e:[e],r=[];return t.forEach(n=>{var i;_e(n)?r.push(...Dc(n)):la(n)&&_e(n.children)?r.push(...Dc(n.children)):(r.push(n),la(n)&&((i=n.component)!=null&&i.subTree)&&r.push(...Dc(n.component.subTree)))}),r},q3=e=>At?window.requestAnimationFrame(e):setTimeout(e,16),ja=e=>e,bu=({from:e,replacement:t,scope:r,version:n,ref:i,type:a="API"},o)=>{be(()=>T(o),s=>{},{immediate:!0})},K3=(e,t,r)=>{let n={offsetX:0,offsetY:0};const i=s=>{const l=s.clientX,u=s.clientY,{offsetX:f,offsetY:c}=n,h=e.value.getBoundingClientRect(),d=h.left,v=h.top,p=h.width,m=h.height,g=document.documentElement.clientWidth,y=document.documentElement.clientHeight,_=-d+f,b=-v+c,x=g-d-p+f,w=y-v-m+c,S=M=>{const A=Math.min(Math.max(f+M.clientX-l,_),x),P=Math.min(Math.max(c+M.clientY-u,b),w);n={offsetX:A,offsetY:P},e.value&&(e.value.style.transform=`translate(${Zn(A)}, ${Zn(P)})`)},C=()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C)};document.addEventListener("mousemove",S),document.addEventListener("mouseup",C)},a=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",i)},o=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",i)};_t(()=>{na(()=>{r.value?a():o()})}),tr(()=>{o()})};var X3={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const Z3=e=>(t,r)=>Q3(t,r,T(e)),Q3=(e,t,r)=>yu(r,e,e).replace(/\{(\w+)\}/g,(n,i)=>{var a;return`${(a=t==null?void 0:t[i])!=null?a:`{${i}}`}`}),J3=e=>{const t=k(()=>T(e).name),r=Pt(e)?e:$(e);return{lang:t,locale:r,t:Z3(e)}},kM=Symbol("localeContextKey"),Hs=e=>{const t=e||Le(kM,$());return J3(k(()=>t.value||X3))},Bl="el",e5="is-",ba=(e,t,r,n,i)=>{let a=`${e}-${t}`;return r&&(a+=`-${r}`),n&&(a+=`__${n}`),i&&(a+=`--${i}`),a},NM=Symbol("namespaceContextKey"),Dy=e=>{const t=e||(it()?Le(NM,$(Bl)):$(Bl));return k(()=>T(t)||Bl)},Oe=(e,t)=>{const r=Dy(t);return{namespace:r,b:(p="")=>ba(r.value,e,p,"",""),e:p=>p?ba(r.value,e,"",p,""):"",m:p=>p?ba(r.value,e,"","",p):"",be:(p,m)=>p&&m?ba(r.value,e,p,m,""):"",em:(p,m)=>p&&m?ba(r.value,e,"",p,m):"",bm:(p,m)=>p&&m?ba(r.value,e,p,"",m):"",bem:(p,m,g)=>p&&m&&g?ba(r.value,e,p,m,g):"",is:(p,...m)=>{const g=m.length>=1?m[0]:!0;return p&&g?`${e5}${p}`:""},cssVar:p=>{const m={};for(const g in p)p[g]&&(m[`--${r.value}-${g}`]=p[g]);return m},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const m={};for(const g in p)p[g]&&(m[`--${r.value}-${e}-${g}`]=p[g]);return m},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},t5=(e,t={})=>{Pt(e)||bi("[useLockscreen]","You need to pass a ref param to this function");const r=t.ns||Oe("popup"),n=QC(()=>r.bm("parent","hidden"));if(!At||oo(document.body,n.value))return;let i=0,a=!1,o="0";const s=()=>{setTimeout(()=>{so(document==null?void 0:document.body,n.value),a&&document&&(document.body.style.width=o)},200)};be(e,l=>{if(!l){s();return}a=!oo(document.body,n.value),a&&(o=document.body.style.width),i=T3(r.namespace.value);const u=document.documentElement.clientHeight0&&(u||f==="scroll")&&a&&(document.body.style.width=`calc(100% - ${i}px)`),Za(document.body,n.value)}),NC(()=>s())},r5=fh({type:Be(Boolean),default:null}),n5=fh({type:Be(Function)}),BM=e=>{const t=`update:${e}`,r=`onUpdate:${e}`,n=[t],i={[e]:r5,[r]:n5};return{useModelToggle:({indicator:o,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:f,onHide:c})=>{const h=it(),{emit:d}=h,v=h.props,p=k(()=>De(v[r])),m=k(()=>v[e]===null),g=S=>{o.value!==!0&&(o.value=!0,s&&(s.value=S),De(f)&&f(S))},y=S=>{o.value!==!1&&(o.value=!1,s&&(s.value=S),De(c)&&c(S))},_=S=>{if(v.disabled===!0||De(u)&&!u())return;const C=p.value&&At;C&&d(t,!0),(m.value||!C)&&g(S)},b=S=>{if(v.disabled===!0||!At)return;const C=p.value&&At;C&&d(t,!1),(m.value||!C)&&y(S)},x=S=>{zr(S)&&(v.disabled&&S?p.value&&d(t,!1):o.value!==S&&(S?g():y()))},w=()=>{o.value?b():_()};return be(()=>v[e],x),l&&h.appContext.config.globalProperties.$route!==void 0&&be(()=>({...h.proxy.$route}),()=>{l.value&&o.value&&b()}),_t(()=>{x(v[e])}),{hide:b,show:_,toggle:w,hasUpdateHandler:p}},useModelToggleProps:i,useModelToggleEmits:n}};BM("modelValue");const FM=e=>{const t=it();return k(()=>{var r,n;return(n=(r=t==null?void 0:t.proxy)==null?void 0:r.$props)==null?void 0:n[e]})};var Ar="top",cn="bottom",dn="right",Pr="left",Iy="auto",Ju=[Ar,cn,dn,Pr],ws="start",wu="end",i5="clippingParents",$M="viewport",Js="popper",a5="reference",Gb=Ju.reduce(function(e,t){return e.concat([t+"-"+ws,t+"-"+wu])},[]),Oy=[].concat(Ju,[Iy]).reduce(function(e,t){return e.concat([t,t+"-"+ws,t+"-"+wu])},[]),o5="beforeRead",s5="read",l5="afterRead",u5="beforeMain",f5="main",c5="afterMain",d5="beforeWrite",h5="write",v5="afterWrite",p5=[o5,s5,l5,u5,f5,c5,d5,h5,v5];function Qn(e){return e?(e.nodeName||"").toLowerCase():null}function In(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ss(e){var t=In(e).Element;return e instanceof t||e instanceof Element}function ln(e){var t=In(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Ry(e){if(typeof ShadowRoot>"u")return!1;var t=In(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function g5(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var n=t.styles[r]||{},i=t.attributes[r]||{},a=t.elements[r];!ln(a)||!Qn(a)||(Object.assign(a.style,n),Object.keys(i).forEach(function(o){var s=i[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function m5(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(n){var i=t.elements[n],a=t.attributes[n]||{},o=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:r[n]),s=o.reduce(function(l,u){return l[u]="",l},{});!ln(i)||!Qn(i)||(Object.assign(i.style,s),Object.keys(a).forEach(function(l){i.removeAttribute(l)}))})}}var HM={name:"applyStyles",enabled:!0,phase:"write",fn:g5,effect:m5,requires:["computeStyles"]};function jn(e){return e.split("-")[0]}var lo=Math.max,pd=Math.min,xs=Math.round;function Cs(e,t){t===void 0&&(t=!1);var r=e.getBoundingClientRect(),n=1,i=1;if(ln(e)&&t){var a=e.offsetHeight,o=e.offsetWidth;o>0&&(n=xs(r.width)/o||1),a>0&&(i=xs(r.height)/a||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function ky(e){var t=Cs(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function zM(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Ry(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Si(e){return In(e).getComputedStyle(e)}function y5(e){return["table","td","th"].indexOf(Qn(e))>=0}function ga(e){return((Ss(e)?e.ownerDocument:e.document)||window.document).documentElement}function ch(e){return Qn(e)==="html"?e:e.assignedSlot||e.parentNode||(Ry(e)?e.host:null)||ga(e)}function Ub(e){return!ln(e)||Si(e).position==="fixed"?null:e.offsetParent}function _5(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&ln(e)){var n=Si(e);if(n.position==="fixed")return null}var i=ch(e);for(Ry(i)&&(i=i.host);ln(i)&&["html","body"].indexOf(Qn(i))<0;){var a=Si(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function ef(e){for(var t=In(e),r=Ub(e);r&&y5(r)&&Si(r).position==="static";)r=Ub(r);return r&&(Qn(r)==="html"||Qn(r)==="body"&&Si(r).position==="static")?t:r||_5(e)||t}function Ny(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Fl(e,t,r){return lo(e,pd(t,r))}function b5(e,t,r){var n=Fl(e,t,r);return n>r?r:n}function VM(){return{top:0,right:0,bottom:0,left:0}}function WM(e){return Object.assign({},VM(),e)}function GM(e,t){return t.reduce(function(r,n){return r[n]=e,r},{})}var w5=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,WM(typeof e!="number"?e:GM(e,Ju))};function S5(e){var t,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,o=r.modifiersData.popperOffsets,s=jn(r.placement),l=Ny(s),u=[Pr,dn].indexOf(s)>=0,f=u?"height":"width";if(!(!a||!o)){var c=w5(i.padding,r),h=ky(a),d=l==="y"?Ar:Pr,v=l==="y"?cn:dn,p=r.rects.reference[f]+r.rects.reference[l]-o[l]-r.rects.popper[f],m=o[l]-r.rects.reference[l],g=ef(a),y=g?l==="y"?g.clientHeight||0:g.clientWidth||0:0,_=p/2-m/2,b=c[d],x=y-h[f]-c[v],w=y/2-h[f]/2+_,S=Fl(b,w,x),C=l;r.modifiersData[n]=(t={},t[C]=S,t.centerOffset=S-w,t)}}function x5(e){var t=e.state,r=e.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!zM(t.elements.popper,i)||(t.elements.arrow=i))}var C5={name:"arrow",enabled:!0,phase:"main",fn:S5,effect:x5,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ts(e){return e.split("-")[1]}var T5={top:"auto",right:"auto",bottom:"auto",left:"auto"};function M5(e){var t=e.x,r=e.y,n=window,i=n.devicePixelRatio||1;return{x:xs(t*i)/i||0,y:xs(r*i)/i||0}}function Yb(e){var t,r=e.popper,n=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,f=e.roundOffsets,c=e.isFixed,h=o.x,d=h===void 0?0:h,v=o.y,p=v===void 0?0:v,m=typeof f=="function"?f({x:d,y:p}):{x:d,y:p};d=m.x,p=m.y;var g=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),_=Pr,b=Ar,x=window;if(u){var w=ef(r),S="clientHeight",C="clientWidth";if(w===In(r)&&(w=ga(r),Si(w).position!=="static"&&s==="absolute"&&(S="scrollHeight",C="scrollWidth")),w=w,i===Ar||(i===Pr||i===dn)&&a===wu){b=cn;var M=c&&w===x&&x.visualViewport?x.visualViewport.height:w[S];p-=M-n.height,p*=l?1:-1}if(i===Pr||(i===Ar||i===cn)&&a===wu){_=dn;var A=c&&w===x&&x.visualViewport?x.visualViewport.width:w[C];d-=A-n.width,d*=l?1:-1}}var P=Object.assign({position:s},u&&T5),E=f===!0?M5({x:d,y:p}):{x:d,y:p};if(d=E.x,p=E.y,l){var L;return Object.assign({},P,(L={},L[b]=y?"0":"",L[_]=g?"0":"",L.transform=(x.devicePixelRatio||1)<=1?"translate("+d+"px, "+p+"px)":"translate3d("+d+"px, "+p+"px, 0)",L))}return Object.assign({},P,(t={},t[b]=y?p+"px":"",t[_]=g?d+"px":"",t.transform="",t))}function A5(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=n===void 0?!0:n,a=r.adaptive,o=a===void 0?!0:a,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:jn(t.placement),variation:Ts(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yb(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yb(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var UM={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:A5,data:{}},Cf={passive:!0};function P5(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,a=i===void 0?!0:i,o=n.resize,s=o===void 0?!0:o,l=In(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(f){f.addEventListener("scroll",r.update,Cf)}),s&&l.addEventListener("resize",r.update,Cf),function(){a&&u.forEach(function(f){f.removeEventListener("scroll",r.update,Cf)}),s&&l.removeEventListener("resize",r.update,Cf)}}var YM={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:P5,data:{}},E5={left:"right",right:"left",bottom:"top",top:"bottom"};function Ic(e){return e.replace(/left|right|bottom|top/g,function(t){return E5[t]})}var L5={start:"end",end:"start"};function jb(e){return e.replace(/start|end/g,function(t){return L5[t]})}function By(e){var t=In(e),r=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Fy(e){return Cs(ga(e)).left+By(e).scrollLeft}function D5(e){var t=In(e),r=ga(e),n=t.visualViewport,i=r.clientWidth,a=r.clientHeight,o=0,s=0;return n&&(i=n.width,a=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,s=n.offsetTop)),{width:i,height:a,x:o+Fy(e),y:s}}function I5(e){var t,r=ga(e),n=By(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=lo(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=lo(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Fy(e),l=-n.scrollTop;return Si(i||r).direction==="rtl"&&(s+=lo(r.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function $y(e){var t=Si(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function jM(e){return["html","body","#document"].indexOf(Qn(e))>=0?e.ownerDocument.body:ln(e)&&$y(e)?e:jM(ch(e))}function $l(e,t){var r;t===void 0&&(t=[]);var n=jM(e),i=n===((r=e.ownerDocument)==null?void 0:r.body),a=In(n),o=i?[a].concat(a.visualViewport||[],$y(n)?n:[]):n,s=t.concat(o);return i?s:s.concat($l(ch(o)))}function ug(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function O5(e){var t=Cs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function qb(e,t){return t===$M?ug(D5(e)):Ss(t)?O5(t):ug(I5(ga(e)))}function R5(e){var t=$l(ch(e)),r=["absolute","fixed"].indexOf(Si(e).position)>=0,n=r&&ln(e)?ef(e):e;return Ss(n)?t.filter(function(i){return Ss(i)&&zM(i,n)&&Qn(i)!=="body"}):[]}function k5(e,t,r){var n=t==="clippingParents"?R5(e):[].concat(t),i=[].concat(n,[r]),a=i[0],o=i.reduce(function(s,l){var u=qb(e,l);return s.top=lo(u.top,s.top),s.right=pd(u.right,s.right),s.bottom=pd(u.bottom,s.bottom),s.left=lo(u.left,s.left),s},qb(e,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function qM(e){var t=e.reference,r=e.element,n=e.placement,i=n?jn(n):null,a=n?Ts(n):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(i){case Ar:l={x:o,y:t.y-r.height};break;case cn:l={x:o,y:t.y+t.height};break;case dn:l={x:t.x+t.width,y:s};break;case Pr:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?Ny(i):null;if(u!=null){var f=u==="y"?"height":"width";switch(a){case ws:l[u]=l[u]-(t[f]/2-r[f]/2);break;case wu:l[u]=l[u]+(t[f]/2-r[f]/2);break}}return l}function Su(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=n===void 0?e.placement:n,a=r.boundary,o=a===void 0?i5:a,s=r.rootBoundary,l=s===void 0?$M:s,u=r.elementContext,f=u===void 0?Js:u,c=r.altBoundary,h=c===void 0?!1:c,d=r.padding,v=d===void 0?0:d,p=WM(typeof v!="number"?v:GM(v,Ju)),m=f===Js?a5:Js,g=e.rects.popper,y=e.elements[h?m:f],_=k5(Ss(y)?y:y.contextElement||ga(e.elements.popper),o,l),b=Cs(e.elements.reference),x=qM({reference:b,element:g,strategy:"absolute",placement:i}),w=ug(Object.assign({},g,x)),S=f===Js?w:b,C={top:_.top-S.top+p.top,bottom:S.bottom-_.bottom+p.bottom,left:_.left-S.left+p.left,right:S.right-_.right+p.right},M=e.modifiersData.offset;if(f===Js&&M){var A=M[i];Object.keys(C).forEach(function(P){var E=[dn,cn].indexOf(P)>=0?1:-1,L=[Ar,cn].indexOf(P)>=0?"y":"x";C[P]+=A[L]*E})}return C}function N5(e,t){t===void 0&&(t={});var r=t,n=r.placement,i=r.boundary,a=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Oy:l,f=Ts(n),c=f?s?Gb:Gb.filter(function(v){return Ts(v)===f}):Ju,h=c.filter(function(v){return u.indexOf(v)>=0});h.length===0&&(h=c);var d=h.reduce(function(v,p){return v[p]=Su(e,{placement:p,boundary:i,rootBoundary:a,padding:o})[jn(p)],v},{});return Object.keys(d).sort(function(v,p){return d[v]-d[p]})}function B5(e){if(jn(e)===Iy)return[];var t=Ic(e);return[jb(e),t,jb(t)]}function F5(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,f=r.boundary,c=r.rootBoundary,h=r.altBoundary,d=r.flipVariations,v=d===void 0?!0:d,p=r.allowedAutoPlacements,m=t.options.placement,g=jn(m),y=g===m,_=l||(y||!v?[Ic(m)]:B5(m)),b=[m].concat(_).reduce(function(we,$e){return we.concat(jn($e)===Iy?N5(t,{placement:$e,boundary:f,rootBoundary:c,padding:u,flipVariations:v,allowedAutoPlacements:p}):$e)},[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,M=b[0],A=0;A=0,N=O?"width":"height",H=Su(t,{placement:P,boundary:f,rootBoundary:c,altBoundary:h,padding:u}),V=O?L?dn:Pr:L?cn:Ar;x[N]>w[N]&&(V=Ic(V));var U=Ic(V),F=[];if(a&&F.push(H[E]<=0),s&&F.push(H[V]<=0,H[U]<=0),F.every(function(we){return we})){M=P,C=!1;break}S.set(P,F)}if(C)for(var z=v?3:1,ee=function(we){var $e=b.find(function(Ie){var B=S.get(Ie);if(B)return B.slice(0,we).every(function(Y){return Y})});if($e)return M=$e,"break"},J=z;J>0;J--){var me=ee(J);if(me==="break")break}t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}}var $5={name:"flip",enabled:!0,phase:"main",fn:F5,requiresIfExists:["offset"],data:{_skip:!1}};function Kb(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Xb(e){return[Ar,dn,cn,Pr].some(function(t){return e[t]>=0})}function H5(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=Su(t,{elementContext:"reference"}),s=Su(t,{altBoundary:!0}),l=Kb(o,n),u=Kb(s,i,a),f=Xb(l),c=Xb(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:f,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":c})}var z5={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:H5};function V5(e,t,r){var n=jn(e),i=[Pr,Ar].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[Pr,dn].indexOf(n)>=0?{x:s,y:o}:{x:o,y:s}}function W5(e){var t=e.state,r=e.options,n=e.name,i=r.offset,a=i===void 0?[0,0]:i,o=Oy.reduce(function(f,c){return f[c]=V5(c,t.rects,a),f},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=o}var G5={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:W5};function U5(e){var t=e.state,r=e.name;t.modifiersData[r]=qM({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var KM={name:"popperOffsets",enabled:!0,phase:"read",fn:U5,data:{}};function Y5(e){return e==="x"?"y":"x"}function j5(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,a=i===void 0?!0:i,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,f=r.altBoundary,c=r.padding,h=r.tether,d=h===void 0?!0:h,v=r.tetherOffset,p=v===void 0?0:v,m=Su(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:f}),g=jn(t.placement),y=Ts(t.placement),_=!y,b=Ny(g),x=Y5(b),w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,M=typeof p=="function"?p(Object.assign({},t.rects,{placement:t.placement})):p,A=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,E={x:0,y:0};if(w){if(a){var L,O=b==="y"?Ar:Pr,N=b==="y"?cn:dn,H=b==="y"?"height":"width",V=w[b],U=V+m[O],F=V-m[N],z=d?-C[H]/2:0,ee=y===ws?S[H]:C[H],J=y===ws?-C[H]:-S[H],me=t.elements.arrow,we=d&&me?ky(me):{width:0,height:0},$e=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:VM(),Ie=$e[O],B=$e[N],Y=Fl(0,S[H],we[H]),K=_?S[H]/2-z-Y-Ie-A.mainAxis:ee-Y-Ie-A.mainAxis,Q=_?-S[H]/2+z+Y+B+A.mainAxis:J+Y+B+A.mainAxis,oe=t.elements.arrow&&ef(t.elements.arrow),pe=oe?b==="y"?oe.clientTop||0:oe.clientLeft||0:0,D=(L=P==null?void 0:P[b])!=null?L:0,I=V+K-D-pe,W=V+Q-D,X=Fl(d?pd(U,I):U,V,d?lo(F,W):F);w[b]=X,E[b]=X-V}if(s){var j,le=b==="x"?Ar:Pr,fe=b==="x"?cn:dn,ae=w[x],se=x==="y"?"height":"width",ne=ae+m[le],de=ae-m[fe],Me=[Ar,Pr].indexOf(g)!==-1,Se=(j=P==null?void 0:P[x])!=null?j:0,ke=Me?ne:ae-S[se]-C[se]-Se+A.altAxis,Ve=Me?ae+S[se]+C[se]-Se-A.altAxis:de,rt=d&&Me?b5(ke,ae,Ve):Fl(d?ke:ne,ae,d?Ve:de);w[x]=rt,E[x]=rt-ae}t.modifiersData[n]=E}}var q5={name:"preventOverflow",enabled:!0,phase:"main",fn:j5,requiresIfExists:["offset"]};function K5(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function X5(e){return e===In(e)||!ln(e)?By(e):K5(e)}function Z5(e){var t=e.getBoundingClientRect(),r=xs(t.width)/e.offsetWidth||1,n=xs(t.height)/e.offsetHeight||1;return r!==1||n!==1}function Q5(e,t,r){r===void 0&&(r=!1);var n=ln(t),i=ln(t)&&Z5(t),a=ga(t),o=Cs(e,i),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((Qn(t)!=="body"||$y(a))&&(s=X5(t)),ln(t)?(l=Cs(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=Fy(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function J5(e){var t=new Map,r=new Set,n=[];e.forEach(function(a){t.set(a.name,a)});function i(a){r.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&i(l)}}),n.push(a)}return e.forEach(function(a){r.has(a.name)||i(a)}),n}function e4(e){var t=J5(e);return p5.reduce(function(r,n){return r.concat(t.filter(function(i){return i.phase===n}))},[])}function t4(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function r4(e){var t=e.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(t).map(function(r){return t[r]})}var Zb={placement:"bottom",modifiers:[],strategy:"absolute"};function Qb(){for(var e=arguments.length,t=new Array(e),r=0;r{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const u=s4(l);Object.assign(o.value,u)},requires:["computeStyles"]},i=k(()=>{const{onFirstUpdate:l,placement:u,strategy:f,modifiers:c}=T(r);return{onFirstUpdate:l,placement:u||"bottom",strategy:f||"absolute",modifiers:[...c||[],n,{name:"applyStyles",enabled:!1}]}}),a=ty(),o=$({styles:{popper:{position:T(i).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return be(i,l=>{const u=T(a);u&&u.setOptions(l)},{deep:!0}),be([e,t],([l,u])=>{s(),!(!l||!u)&&(a.value=a4(l,u,T(i)))}),tr(()=>{s()}),{state:k(()=>{var l;return{...((l=T(a))==null?void 0:l.state)||{}}}),styles:k(()=>T(o).styles),attributes:k(()=>T(o).attributes),update:()=>{var l;return(l=T(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=T(a))==null?void 0:l.forceUpdate()},instanceRef:k(()=>T(a))}};function s4(e){const t=Object.keys(e.elements),r=og(t.map(i=>[i,e.styles[i]||{}])),n=og(t.map(i=>[i,e.attributes[i]]));return{styles:r,attributes:n}}const XM=e=>{if(!e)return{onClick:Ft,onMousedown:Ft,onMouseup:Ft};let t=!1,r=!1;return{onClick:o=>{t&&r&&e(o),t=r=!1},onMousedown:o=>{t=o.target===o.currentTarget},onMouseup:o=>{r=o.target===o.currentTarget}}};function Jb(){let e;const t=(n,i)=>{r(),e=window.setTimeout(n,i)},r=()=>window.clearTimeout(e);return ju(()=>r()),{registerTimeout:t,cancelTimeout:r}}const e1={prefix:Math.floor(Math.random()*1e4),current:0},l4=Symbol("elIdInjection"),ZM=()=>it()?Le(l4,e1):e1,xu=e=>{const t=ZM(),r=Dy();return k(()=>T(e)||`${r.value}-id-${t.prefix}-${t.current++}`)};let Xo=[];const t1=e=>{const t=e;t.key===hr.esc&&Xo.forEach(r=>r(t))},u4=e=>{_t(()=>{Xo.length===0&&document.addEventListener("keydown",t1),At&&Xo.push(e)}),tr(()=>{Xo=Xo.filter(t=>t!==e),Xo.length===0&&At&&document.removeEventListener("keydown",t1)})};let r1;const QM=()=>{const e=Dy(),t=ZM(),r=k(()=>`${e.value}-popper-container-${t.prefix}`),n=k(()=>`#${r.value}`);return{id:r,selector:n}},f4=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},c4=()=>{const{id:e,selector:t}=QM();return eh(()=>{At&&!r1&&!document.body.querySelector(t.value)&&(r1=f4(e.value))}),{id:e,selector:t}},d4=Je({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),h4=({showAfter:e,hideAfter:t,autoClose:r,open:n,close:i})=>{const{registerTimeout:a}=Jb(),{registerTimeout:o,cancelTimeout:s}=Jb();return{onOpen:f=>{a(()=>{n(f);const c=T(r);kt(c)&&c>0&&o(()=>{i(f)},c)},T(e))},onClose:f=>{s(),a(()=>{i(f)},T(t))}}},JM=Symbol("elForwardRef"),v4=e=>{Dt(JM,{setForwardRef:r=>{e.value=r}})},p4=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),n1=$(0),eA=2e3,tA=Symbol("zIndexContextKey"),zy=e=>{const t=e||(it()?Le(tA,void 0):void 0),r=k(()=>{const a=T(t);return kt(a)?a:eA}),n=k(()=>r.value+n1.value);return{initialZIndex:r,currentZIndex:n,nextZIndex:()=>(n1.value++,n.value)}},dh=fh({type:String,values:$s,required:!1}),rA=Symbol("size"),g4=()=>{const e=Le(rA,{});return k(()=>T(e.size)||"")},nA=Symbol(),gd=$();function hh(e,t=void 0){const r=it()?Le(nA,gd):gd;return e?k(()=>{var n,i;return(i=(n=r.value)==null?void 0:n[e])!=null?i:t}):r}function m4(e,t){const r=hh(),n=Oe(e,k(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Bl})),i=Hs(k(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=zy(k(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||eA})),o=k(()=>{var s;return T(t)||((s=r.value)==null?void 0:s.size)||""});return y4(k(()=>T(r)||{})),{ns:n,locale:i,zIndex:a,size:o}}const y4=(e,t,r=!1)=>{var n;const i=!!it(),a=i?hh():void 0,o=(n=t==null?void 0:t.provide)!=null?n:i?Dt:void 0;if(!o)return;const s=k(()=>{const l=T(e);return a!=null&&a.value?_4(a.value,l):l});return o(nA,s),o(kM,k(()=>s.value.locale)),o(NM,k(()=>s.value.namespace)),o(tA,k(()=>s.value.zIndex)),o(rA,{size:k(()=>s.value.size||"")}),(r||!gd.value)&&(gd.value=s.value),s},_4=(e,t)=>{var r;const n=[...new Set([...Vb(e),...Vb(t)])],i={};for(const a of n)i[a]=(r=t[a])!=null?r:e[a];return i},i1={};var Ke=(e,t)=>{const r=e.__vccOpts||e;for(const[n,i]of t)r[n]=i;return r};const b4=Je({size:{type:Be([Number,String])},color:{type:String}}),w4=ie({name:"ElIcon",inheritAttrs:!1}),S4=ie({...w4,props:b4,setup(e){const t=e,r=Oe("icon"),n=k(()=>{const{size:i,color:a}=t;return!i&&!a?{}:{fontSize:bs(i)?void 0:Zn(i),"--color":a}});return(i,a)=>(G(),ce("i",ei({class:T(r).b(),style:T(n)},i.$attrs),[Ce(i.$slots,"default")],16))}});var x4=Ke(S4,[["__file","icon.vue"]]);const Bt=Yt(x4),zs=Symbol("formContextKey"),yo=Symbol("formItemContextKey"),xi=(e,t={})=>{const r=$(void 0),n=t.prop?r:FM("size"),i=t.global?r:g4(),a=t.form?{size:void 0}:Le(zs,void 0),o=t.formItem?{size:void 0}:Le(yo,void 0);return k(()=>n.value||T(e)||(o==null?void 0:o.size)||(a==null?void 0:a.size)||i.value||"")},vh=e=>{const t=FM("disabled"),r=Le(zs,void 0);return k(()=>t.value||T(e)||(r==null?void 0:r.disabled)||!1)},tf=()=>{const e=Le(zs,void 0),t=Le(yo,void 0);return{form:e,formItem:t}},Vy=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:n})=>{r||(r=$(!1)),n||(n=$(!1));const i=$();let a;const o=k(()=>{var s;return!!(!e.label&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return _t(()=>{a=be([wn(e,"id"),r],([s,l])=>{const u=s??(l?void 0:xu().value);u!==i.value&&(t!=null&&t.removeInputId&&(i.value&&t.removeInputId(i.value),!(n!=null&&n.value)&&!l&&u&&t.addInputId(u)),i.value=u)},{immediate:!0})}),ks(()=>{a&&a(),t!=null&&t.removeInputId&&i.value&&t.removeInputId(i.value)}),{isLabeledByFormItem:o,inputId:i}},C4=Je({size:{type:String,values:$s},disabled:Boolean}),T4=Je({...C4,model:Object,rules:{type:Be(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean]}}),M4={validate:(e,t,r)=>(_e(e)||ze(e))&&zr(t)&&ze(r)};function A4(){const e=$([]),t=k(()=>{if(!e.value.length)return"0";const a=Math.max(...e.value);return a?`${a}px`:""});function r(a){const o=e.value.indexOf(a);return o===-1&&t.value,o}function n(a,o){if(a&&o){const s=r(o);e.value.splice(s,1,a)}else a&&e.value.push(a)}function i(a){const o=r(a);o>-1&&e.value.splice(o,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:i}}const Tf=(e,t)=>{const r=Jp(t);return r.length>0?e.filter(n=>n.prop&&r.includes(n.prop)):e},P4="ElForm",E4=ie({name:P4}),L4=ie({...E4,props:T4,emits:M4,setup(e,{expose:t,emit:r}){const n=e,i=[],a=xi(),o=Oe("form"),s=k(()=>{const{labelPosition:_,inline:b}=n;return[o.b(),o.m(a.value||"default"),{[o.m(`label-${_}`)]:_,[o.m("inline")]:b}]}),l=_=>i.find(b=>b.prop===_),u=_=>{i.push(_)},f=_=>{_.prop&&i.splice(i.indexOf(_),1)},c=(_=[])=>{n.model&&Tf(i,_).forEach(b=>b.resetField())},h=(_=[])=>{Tf(i,_).forEach(b=>b.clearValidate())},d=k(()=>!!n.model),v=_=>{if(i.length===0)return[];const b=Tf(i,_);return b.length?b:[]},p=async _=>g(void 0,_),m=async(_=[])=>{if(!d.value)return!1;const b=v(_);if(b.length===0)return!0;let x={};for(const w of b)try{await w.validate("")}catch(S){x={...x,...S}}return Object.keys(x).length===0?!0:Promise.reject(x)},g=async(_=[],b)=>{const x=!De(b);try{const w=await m(_);return w===!0&&(b==null||b(w)),w}catch(w){if(w instanceof Error)throw w;const S=w;return n.scrollToError&&y(Object.keys(S)[0]),b==null||b(!1,S),x&&Promise.reject(S)}},y=_=>{var b;const x=Tf(i,_)[0];x&&((b=x.$el)==null||b.scrollIntoView(n.scrollIntoViewOptions))};return be(()=>n.rules,()=>{n.validateOnRuleChange&&p().catch(_=>void 0)},{deep:!0}),Dt(zs,Ln({...Kd(n),emit:r,resetFields:c,clearValidate:h,validateField:g,getField:l,addField:u,removeField:f,...A4()})),t({validate:p,validateField:g,resetFields:c,clearValidate:h,scrollToField:y}),(_,b)=>(G(),ce("form",{class:re(T(s))},[Ce(_.$slots,"default")],2))}});var D4=Ke(L4,[["__file","form.vue"]]);function Qa(){return Qa=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Oc(e,t,r){return O4()?Oc=Reflect.construct.bind():Oc=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),u=new l;return o&&Cu(u,o.prototype),u},Oc.apply(null,arguments)}function R4(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function cg(e){var t=typeof Map=="function"?new Map:void 0;return cg=function(n){if(n===null||!R4(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return Oc(n,arguments,fg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Cu(i,n)},cg(e)}var k4=/%[sdj%]/g,N4=function(){};function dg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function Fr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=a)return s;switch(s){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch{return"[Circular]"}break;default:return s}});return o}return e}function B4(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Ut(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||B4(t)&&typeof e=="string"&&!e)}function F4(e,t,r){var n=[],i=0,a=e.length;function o(s){n.push.apply(n,s||[]),i++,i===a&&r(n)}e.forEach(function(s){t(s,o)})}function a1(e,t,r){var n=0,i=e.length;function a(o){if(o&&o.length){r(o);return}var s=n;n=n+1,s()\[\]\\.,;:\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},xl={integer:function(t){return xl.number(t)&&parseInt(t,10)===t},float:function(t){return xl.number(t)&&!xl.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 typeof t=="object"&&!xl.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(u1.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(G4())},hex:function(t){return typeof t=="string"&&!!t.match(u1.hex)}},U4=function(t,r,n,i,a){if(t.required&&r===void 0){iA(t,r,n,i,a);return}var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?xl[s](r)||i.push(Fr(a.messages.types[s],t.fullField,t.type)):s&&typeof r!==t.type&&i.push(Fr(a.messages.types[s],t.fullField,t.type))},Y4=function(t,r,n,i,a){var o=typeof t.len=="number",s=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=r,c=null,h=typeof r=="number",d=typeof r=="string",v=Array.isArray(r);if(h?c="number":d?c="string":v&&(c="array"),!c)return!1;v&&(f=r.length),d&&(f=r.replace(u,"_").length),o?f!==t.len&&i.push(Fr(a.messages[c].len,t.fullField,t.len)):s&&!l&&ft.max?i.push(Fr(a.messages[c].max,t.fullField,t.max)):s&&l&&(ft.max)&&i.push(Fr(a.messages[c].range,t.fullField,t.min,t.max))},Ro="enum",j4=function(t,r,n,i,a){t[Ro]=Array.isArray(t[Ro])?t[Ro]:[],t[Ro].indexOf(r)===-1&&i.push(Fr(a.messages[Ro],t.fullField,t[Ro].join(", ")))},q4=function(t,r,n,i,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||i.push(Fr(a.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern=="string"){var o=new RegExp(t.pattern);o.test(r)||i.push(Fr(a.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},Xe={required:iA,whitespace:W4,type:U4,range:Y4,enum:j4,pattern:q4},K4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"string")&&!t.required)return n();Xe.required(t,r,i,o,a,"string"),Ut(r,"string")||(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a),Xe.pattern(t,r,i,o,a),t.whitespace===!0&&Xe.whitespace(t,r,i,o,a))}n(o)},X4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},Z4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r===""&&(r=void 0),Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},Q4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},J4=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),Ut(r)||Xe.type(t,r,i,o,a)}n(o)},eH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},tH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},rH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(r==null&&!t.required)return n();Xe.required(t,r,i,o,a,"array"),r!=null&&(Xe.type(t,r,i,o,a),Xe.range(t,r,i,o,a))}n(o)},nH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe.type(t,r,i,o,a)}n(o)},iH="enum",aH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a),r!==void 0&&Xe[iH](t,r,i,o,a)}n(o)},oH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"string")&&!t.required)return n();Xe.required(t,r,i,o,a),Ut(r,"string")||Xe.pattern(t,r,i,o,a)}n(o)},sH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r,"date")&&!t.required)return n();if(Xe.required(t,r,i,o,a),!Ut(r,"date")){var l;r instanceof Date?l=r:l=new Date(r),Xe.type(t,l,i,o,a),l&&Xe.range(t,l.getTime(),i,o,a)}}n(o)},lH=function(t,r,n,i,a){var o=[],s=Array.isArray(r)?"array":typeof r;Xe.required(t,r,i,o,a,s),n(o)},nv=function(t,r,n,i,a){var o=t.type,s=[],l=t.required||!t.required&&i.hasOwnProperty(t.field);if(l){if(Ut(r,o)&&!t.required)return n();Xe.required(t,r,i,s,a,o),Ut(r,o)||Xe.type(t,r,i,s,a)}n(s)},uH=function(t,r,n,i,a){var o=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(Ut(r)&&!t.required)return n();Xe.required(t,r,i,o,a)}n(o)},Hl={string:K4,method:X4,number:Z4,boolean:Q4,regexp:J4,integer:eH,float:tH,array:rH,object:nH,enum:aH,pattern:oH,date:sH,url:nv,hex:nv,email:nv,required:lH,any:uH};function hg(){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 vg=hg(),rf=function(){function e(r){this.rules=null,this._messages=vg,this.define(r)}var t=e.prototype;return t.define=function(n){var i=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(a){var o=n[a];i.rules[a]=Array.isArray(o)?o:[o]})},t.messages=function(n){return n&&(this._messages=l1(hg(),n)),this._messages},t.validate=function(n,i,a){var o=this;i===void 0&&(i={}),a===void 0&&(a=function(){});var s=n,l=i,u=a;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,s),Promise.resolve(s);function f(p){var m=[],g={};function y(b){if(Array.isArray(b)){var x;m=(x=m).concat.apply(x,b)}else m.push(b)}for(var _=0;_");const i=Oe("form"),a=$(),o=$(0),s=()=>{var f;if((f=a.value)!=null&&f.firstElementChild){const c=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(c))}else return 0},l=(f="update")=>{Nt(()=>{t.default&&e.isAutoWidth&&(f==="update"?o.value=s():f==="remove"&&(r==null||r.deregisterLabelWidth(o.value)))})},u=()=>l("update");return _t(()=>{u()}),tr(()=>{l("remove")}),Uu(()=>u()),be(o,(f,c)=>{e.updateAll&&(r==null||r.registerLabelWidth(f,c))}),ms(k(()=>{var f,c;return(c=(f=a.value)==null?void 0:f.firstElementChild)!=null?c:null}),u),()=>{var f,c;if(!t)return null;const{isAutoWidth:h}=e;if(h){const d=r==null?void 0:r.autoLabelWidth,v=n==null?void 0:n.hasLabel,p={};if(v&&d&&d!=="auto"){const m=Math.max(0,Number.parseInt(d,10)-o.value),g=r.labelPosition==="left"?"marginRight":"marginLeft";m&&(p[g]=`${m}px`)}return Z("div",{ref:a,class:[i.be("item","label-wrap")],style:p},[(f=t.default)==null?void 0:f.call(t)])}else return Z(ft,{ref:a},[(c=t.default)==null?void 0:c.call(t)])}}});const hH=["role","aria-labelledby"],vH=ie({name:"ElFormItem"}),pH=ie({...vH,props:cH,setup(e,{expose:t}){const r=e,n=Ns(),i=Le(zs,void 0),a=Le(yo,void 0),o=xi(void 0,{formItem:!1}),s=Oe("form-item"),l=xu().value,u=$([]),f=$(""),c=pR(f,100),h=$(""),d=$();let v,p=!1;const m=k(()=>{if((i==null?void 0:i.labelPosition)==="top")return{};const B=Zn(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return B?{width:B}:{}}),g=k(()=>{if((i==null?void 0:i.labelPosition)==="top"||i!=null&&i.inline)return{};if(!r.label&&!r.labelWidth&&M)return{};const B=Zn(r.labelWidth||(i==null?void 0:i.labelWidth)||"");return!r.label&&!n.label?{marginLeft:B}:{}}),y=k(()=>[s.b(),s.m(o.value),s.is("error",f.value==="error"),s.is("validating",f.value==="validating"),s.is("success",f.value==="success"),s.is("required",O.value||r.required),s.is("no-asterisk",i==null?void 0:i.hideRequiredAsterisk),(i==null?void 0:i.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[s.m("feedback")]:i==null?void 0:i.statusIcon}]),_=k(()=>zr(r.inlineMessage)?r.inlineMessage:(i==null?void 0:i.inlineMessage)||!1),b=k(()=>[s.e("error"),{[s.em("error","inline")]:_.value}]),x=k(()=>r.prop?ze(r.prop)?r.prop:r.prop.join("."):""),w=k(()=>!!(r.label||n.label)),S=k(()=>r.for||(u.value.length===1?u.value[0]:void 0)),C=k(()=>!S.value&&w.value),M=!!a,A=k(()=>{const B=i==null?void 0:i.model;if(!(!B||!r.prop))return Ec(B,r.prop).value}),P=k(()=>{const{required:B}=r,Y=[];r.rules&&Y.push(...Jp(r.rules));const K=i==null?void 0:i.rules;if(K&&r.prop){const Q=Ec(K,r.prop).value;Q&&Y.push(...Jp(Q))}if(B!==void 0){const Q=Y.map((oe,pe)=>[oe,pe]).filter(([oe])=>Object.keys(oe).includes("required"));if(Q.length>0)for(const[oe,pe]of Q)oe.required!==B&&(Y[pe]={...oe,required:B});else Y.push({required:B})}return Y}),E=k(()=>P.value.length>0),L=B=>P.value.filter(K=>!K.trigger||!B?!0:Array.isArray(K.trigger)?K.trigger.includes(B):K.trigger===B).map(({trigger:K,...Q})=>Q),O=k(()=>P.value.some(B=>B.required)),N=k(()=>{var B;return c.value==="error"&&r.showMessage&&((B=i==null?void 0:i.showMessage)!=null?B:!0)}),H=k(()=>`${r.label||""}${(i==null?void 0:i.labelSuffix)||""}`),V=B=>{f.value=B},U=B=>{var Y,K;const{errors:Q,fields:oe}=B;(!Q||!oe)&&console.error(B),V("error"),h.value=Q?(K=(Y=Q==null?void 0:Q[0])==null?void 0:Y.message)!=null?K:`${r.prop} is required`:"",i==null||i.emit("validate",r.prop,!1,h.value)},F=()=>{V("success"),i==null||i.emit("validate",r.prop,!0,"")},z=async B=>{const Y=x.value;return new rf({[Y]:B}).validate({[Y]:A.value},{firstFields:!0}).then(()=>(F(),!0)).catch(Q=>(U(Q),Promise.reject(Q)))},ee=async(B,Y)=>{if(p||!r.prop)return!1;const K=De(Y);if(!E.value)return Y==null||Y(!1),!1;const Q=L(B);return Q.length===0?(Y==null||Y(!0),!0):(V("validating"),z(Q).then(()=>(Y==null||Y(!0),!0)).catch(oe=>{const{fields:pe}=oe;return Y==null||Y(!1,pe),K?!1:Promise.reject(pe)}))},J=()=>{V(""),h.value="",p=!1},me=async()=>{const B=i==null?void 0:i.model;if(!B||!r.prop)return;const Y=Ec(B,r.prop);p=!0,Y.value=Bb(v),await Nt(),J(),p=!1},we=B=>{u.value.includes(B)||u.value.push(B)},$e=B=>{u.value=u.value.filter(Y=>Y!==B)};be(()=>r.error,B=>{h.value=B||"",V(B?"error":"")},{immediate:!0}),be(()=>r.validateStatus,B=>V(B||""));const Ie=Ln({...Kd(r),$el:d,size:o,validateState:f,labelId:l,inputIds:u,isGroup:C,hasLabel:w,fieldValue:A,addInputId:we,removeInputId:$e,resetField:me,clearValidate:J,validate:ee});return Dt(yo,Ie),_t(()=>{r.prop&&(i==null||i.addField(Ie),v=Bb(A.value))}),tr(()=>{i==null||i.removeField(Ie)}),t({size:o,validateMessage:h,validateState:f,validate:ee,clearValidate:J,resetField:me}),(B,Y)=>{var K;return G(),ce("div",{ref_key:"formItemRef",ref:d,class:re(T(y)),role:T(C)?"group":void 0,"aria-labelledby":T(C)?T(l):void 0},[Z(T(dH),{"is-auto-width":T(m).width==="auto","update-all":((K=T(i))==null?void 0:K.labelWidth)==="auto"},{default:q(()=>[T(w)?(G(),ve(Vt(T(S)?"label":"div"),{key:0,id:T(l),for:T(S),class:re(T(s).e("label")),style:ct(T(m))},{default:q(()=>[Ce(B.$slots,"label",{label:T(H)},()=>[pt(xe(T(H)),1)])]),_:3},8,["id","for","class","style"])):Ae("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),te("div",{class:re(T(s).e("content")),style:ct(T(g))},[Ce(B.$slots,"default"),Z(KO,{name:`${T(s).namespace.value}-zoom-in-top`},{default:q(()=>[T(N)?Ce(B.$slots,"error",{key:0,error:h.value},()=>[te("div",{class:re(T(b))},xe(h.value),3)]):Ae("v-if",!0)]),_:3},8,["name"])],6)],10,hH)}}});var aA=Ke(pH,[["__file","form-item.vue"]]);const oA=Yt(D4,{FormItem:aA}),sA=pa(aA),es=4,gH={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},mH=({move:e,size:t,bar:r})=>({[r.size]:t,transform:`translate${r.axis}(${e}%)`}),lA=Symbol("scrollbarContextKey"),yH=Je({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),_H="Thumb",bH=ie({__name:"thumb",props:yH,setup(e){const t=e,r=Le(lA),n=Oe("scrollbar");r||bi(_H,"can not inject scrollbar context");const i=$(),a=$(),o=$({}),s=$(!1);let l=!1,u=!1,f=At?document.onselectstart:null;const c=k(()=>gH[t.vertical?"vertical":"horizontal"]),h=k(()=>mH({size:t.size,move:t.move,bar:c.value})),d=k(()=>i.value[c.value.offset]**2/r.wrapElement[c.value.scrollSize]/t.ratio/a.value[c.value.offset]),v=w=>{var S;if(w.stopPropagation(),w.ctrlKey||[1,2].includes(w.button))return;(S=window.getSelection())==null||S.removeAllRanges(),m(w);const C=w.currentTarget;C&&(o.value[c.value.axis]=C[c.value.offset]-(w[c.value.client]-C.getBoundingClientRect()[c.value.direction]))},p=w=>{if(!a.value||!i.value||!r.wrapElement)return;const S=Math.abs(w.target.getBoundingClientRect()[c.value.direction]-w[c.value.client]),C=a.value[c.value.offset]/2,M=(S-C)*100*d.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=M*r.wrapElement[c.value.scrollSize]/100},m=w=>{w.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",g),document.addEventListener("mouseup",y),f=document.onselectstart,document.onselectstart=()=>!1},g=w=>{if(!i.value||!a.value||l===!1)return;const S=o.value[c.value.axis];if(!S)return;const C=(i.value.getBoundingClientRect()[c.value.direction]-w[c.value.client])*-1,M=a.value[c.value.offset]-S,A=(C-M)*100*d.value/i.value[c.value.offset];r.wrapElement[c.value.scroll]=A*r.wrapElement[c.value.scrollSize]/100},y=()=>{l=!1,o.value[c.value.axis]=0,document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",y),x(),u&&(s.value=!1)},_=()=>{u=!1,s.value=!!t.size},b=()=>{u=!0,s.value=l};tr(()=>{x(),document.removeEventListener("mouseup",y)});const x=()=>{document.onselectstart!==f&&(document.onselectstart=f)};return xn(wn(r,"scrollbarElement"),"mousemove",_),xn(wn(r,"scrollbarElement"),"mouseleave",b),(w,S)=>(G(),ve(ti,{name:T(n).b("fade"),persisted:""},{default:q(()=>[qt(te("div",{ref_key:"instance",ref:i,class:re([T(n).e("bar"),T(n).is(T(c).key)]),onMousedown:p},[te("div",{ref_key:"thumb",ref:a,class:re(T(n).e("thumb")),style:ct(T(h)),onMousedown:v},null,38)],34),[[Kn,w.always||s.value]])]),_:1},8,["name"]))}});var c1=Ke(bH,[["__file","thumb.vue"]]);const wH=Je({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),SH=ie({__name:"bar",props:wH,setup(e,{expose:t}){const r=e,n=$(0),i=$(0);return t({handleScroll:o=>{if(o){const s=o.offsetHeight-es,l=o.offsetWidth-es;i.value=o.scrollTop*100/s*r.ratioY,n.value=o.scrollLeft*100/l*r.ratioX}}}),(o,s)=>(G(),ce(ft,null,[Z(c1,{move:n.value,ratio:o.ratioX,size:o.width,always:o.always},null,8,["move","ratio","size","always"]),Z(c1,{move:i.value,ratio:o.ratioY,size:o.height,vertical:"",always:o.always},null,8,["move","ratio","size","always"])],64))}});var xH=Ke(SH,[["__file","bar.vue"]]);const CH=Je({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Be([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),TH={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(kt)},MH="ElScrollbar",AH=ie({name:MH}),PH=ie({...AH,props:CH,emits:TH,setup(e,{expose:t,emit:r}){const n=e,i=Oe("scrollbar");let a,o;const s=$(),l=$(),u=$(),f=$("0"),c=$("0"),h=$(),d=$(1),v=$(1),p=k(()=>{const S={};return n.height&&(S.height=Zn(n.height)),n.maxHeight&&(S.maxHeight=Zn(n.maxHeight)),[n.wrapStyle,S]}),m=k(()=>[n.wrapClass,i.e("wrap"),{[i.em("wrap","hidden-default")]:!n.native}]),g=k(()=>[i.e("view"),n.viewClass]),y=()=>{var S;l.value&&((S=h.value)==null||S.handleScroll(l.value),r("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function _(S,C){qe(S)?l.value.scrollTo(S):kt(S)&&kt(C)&&l.value.scrollTo(S,C)}const b=S=>{kt(S)&&(l.value.scrollTop=S)},x=S=>{kt(S)&&(l.value.scrollLeft=S)},w=()=>{if(!l.value)return;const S=l.value.offsetHeight-es,C=l.value.offsetWidth-es,M=S**2/l.value.scrollHeight,A=C**2/l.value.scrollWidth,P=Math.max(M,n.minSize),E=Math.max(A,n.minSize);d.value=M/(S-M)/(P/(S-P)),v.value=A/(C-A)/(E/(C-E)),c.value=P+esn.noresize,S=>{S?(a==null||a(),o==null||o()):({stop:a}=ms(u,w),o=xn("resize",w))},{immediate:!0}),be(()=>[n.maxHeight,n.height],()=>{n.native||Nt(()=>{var S;w(),l.value&&((S=h.value)==null||S.handleScroll(l.value))})}),Dt(lA,Ln({scrollbarElement:s,wrapElement:l})),_t(()=>{n.native||Nt(()=>{w()})}),Uu(()=>w()),t({wrapRef:l,update:w,scrollTo:_,setScrollTop:b,setScrollLeft:x,handleScroll:y}),(S,C)=>(G(),ce("div",{ref_key:"scrollbarRef",ref:s,class:re(T(i).b())},[te("div",{ref_key:"wrapRef",ref:l,class:re(T(m)),style:ct(T(p)),onScroll:y},[(G(),ve(Vt(S.tag),{id:S.id,ref_key:"resizeRef",ref:u,class:re(T(g)),style:ct(S.viewStyle),role:S.role,"aria-label":S.ariaLabel,"aria-orientation":S.ariaOrientation},{default:q(()=>[Ce(S.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),S.native?Ae("v-if",!0):(G(),ve(xH,{key:0,ref_key:"barRef",ref:h,height:c.value,width:f.value,always:S.always,"ratio-x":v.value,"ratio-y":d.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var EH=Ke(PH,[["__file","scrollbar.vue"]]);const uA=Yt(EH),Wy=Symbol("popper"),fA=Symbol("popperContent"),LH=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],cA=Je({role:{type:String,values:LH,default:"tooltip"}}),DH=ie({name:"ElPopper",inheritAttrs:!1}),IH=ie({...DH,props:cA,setup(e,{expose:t}){const r=e,n=$(),i=$(),a=$(),o=$(),s=k(()=>r.role),l={triggerRef:n,popperInstanceRef:i,contentRef:a,referenceRef:o,role:s};return t(l),Dt(Wy,l),(u,f)=>Ce(u.$slots,"default")}});var OH=Ke(IH,[["__file","popper.vue"]]);const dA=Je({arrowOffset:{type:Number,default:5}}),RH=ie({name:"ElPopperArrow",inheritAttrs:!1}),kH=ie({...RH,props:dA,setup(e,{expose:t}){const r=e,n=Oe("popper"),{arrowOffset:i,arrowRef:a,arrowStyle:o}=Le(fA,void 0);return be(()=>r.arrowOffset,s=>{i.value=s}),tr(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(G(),ce("span",{ref_key:"arrowRef",ref:a,class:re(T(n).e("arrow")),style:ct(T(o)),"data-popper-arrow":""},null,6))}});var NH=Ke(kH,[["__file","arrow.vue"]]);const BH="ElOnlyChild",FH=ie({name:BH,setup(e,{slots:t,attrs:r}){var n;const i=Le(JM),a=p4((n=i==null?void 0:i.setForwardRef)!=null?n:Ft);return()=>{var o;const s=(o=t.default)==null?void 0:o.call(t,r);if(!s||s.length>1)return null;const l=hA(s);return l?qt(_i(l,r),[[a]]):null}}});function hA(e){if(!e)return null;const t=e;for(const r of t){if(qe(r))switch(r.type){case Mr:continue;case Bs:case"svg":return d1(r);case ft:return hA(r.children);default:return r}return d1(r)}return null}function d1(e){const t=Oe("only-child");return Z("span",{class:t.e("content")},[e])}const vA=Je({virtualRef:{type:Be(Object)},virtualTriggering:Boolean,onMouseenter:{type:Be(Function)},onMouseleave:{type:Be(Function)},onClick:{type:Be(Function)},onKeydown:{type:Be(Function)},onFocus:{type:Be(Function)},onBlur:{type:Be(Function)},onContextmenu:{type:Be(Function)},id:String,open:Boolean}),$H=ie({name:"ElPopperTrigger",inheritAttrs:!1}),HH=ie({...$H,props:vA,setup(e,{expose:t}){const r=e,{role:n,triggerRef:i}=Le(Wy,void 0);v4(i);const a=k(()=>s.value?r.id:void 0),o=k(()=>{if(n&&n.value==="tooltip")return r.open&&r.id?r.id:void 0}),s=k(()=>{if(n&&n.value!=="tooltip")return n.value}),l=k(()=>s.value?`${r.open}`:void 0);let u;return _t(()=>{be(()=>r.virtualRef,f=>{f&&(i.value=Zi(f))},{immediate:!0}),be(i,(f,c)=>{u==null||u(),u=void 0,mo(f)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(h=>{var d;const v=r[h];v&&(f.addEventListener(h.slice(2).toLowerCase(),v),(d=c==null?void 0:c.removeEventListener)==null||d.call(c,h.slice(2).toLowerCase(),v))}),u=be([a,o,s,l],h=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((d,v)=>{_s(h[v])?f.removeAttribute(d):f.setAttribute(d,h[v])})},{immediate:!0})),mo(c)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(h=>c.removeAttribute(h))},{immediate:!0})}),tr(()=>{u==null||u(),u=void 0}),t({triggerRef:i}),(f,c)=>f.virtualTriggering?Ae("v-if",!0):(G(),ve(T(FH),ei({key:0},f.$attrs,{"aria-controls":T(a),"aria-describedby":T(o),"aria-expanded":T(l),"aria-haspopup":T(s)}),{default:q(()=>[Ce(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var zH=Ke(HH,[["__file","trigger.vue"]]);const iv="focus-trap.focus-after-trapped",av="focus-trap.focus-after-released",VH="focus-trap.focusout-prevented",h1={cancelable:!0,bubbles:!1},WH={cancelable:!0,bubbles:!1},v1="focusAfterTrapped",p1="focusAfterReleased",pA=Symbol("elFocusTrap"),Gy=$(),ph=$(0),Uy=$(0);let Af=0;const gA=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},g1=(e,t)=>{for(const r of e)if(!GH(r,t))return r},GH=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},UH=e=>{const t=gA(e),r=g1(t,e),n=g1(t.reverse(),e);return[r,n]},YH=e=>e instanceof HTMLInputElement&&"select"in e,Vi=(e,t)=>{if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),Uy.value=window.performance.now(),e!==r&&YH(e)&&t&&e.select()}};function m1(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const jH=()=>{let e=[];return{push:n=>{const i=e[0];i&&n!==i&&i.pause(),e=m1(e,n),e.unshift(n)},remove:n=>{var i,a;e=m1(e,n),(a=(i=e[0])==null?void 0:i.resume)==null||a.call(i)}}},qH=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(Vi(n,t),document.activeElement!==r)return},y1=jH(),KH=()=>ph.value>Uy.value,Pf=()=>{Gy.value="pointer",ph.value=window.performance.now()},_1=()=>{Gy.value="keyboard",ph.value=window.performance.now()},XH=()=>(_t(()=>{Af===0&&(document.addEventListener("mousedown",Pf),document.addEventListener("touchstart",Pf),document.addEventListener("keydown",_1)),Af++}),tr(()=>{Af--,Af<=0&&(document.removeEventListener("mousedown",Pf),document.removeEventListener("touchstart",Pf),document.removeEventListener("keydown",_1))}),{focusReason:Gy,lastUserFocusTimestamp:ph,lastAutomatedFocusTimestamp:Uy}),Ef=e=>new CustomEvent(VH,{...WH,detail:e}),ZH=ie({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[v1,p1,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=$();let n,i;const{focusReason:a}=XH();u4(v=>{e.trapped&&!o.paused&&t("release-requested",v)});const o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=v=>{if(!e.loop&&!e.trapped||o.paused)return;const{key:p,altKey:m,ctrlKey:g,metaKey:y,currentTarget:_,shiftKey:b}=v,{loop:x}=e,w=p===hr.tab&&!m&&!g&&!y,S=document.activeElement;if(w&&S){const C=_,[M,A]=UH(C);if(M&&A){if(!b&&S===A){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||(v.preventDefault(),x&&Vi(M,!0))}else if(b&&[M,C].includes(S)){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||(v.preventDefault(),x&&Vi(A,!0))}}else if(S===C){const E=Ef({focusReason:a.value});t("focusout-prevented",E),E.defaultPrevented||v.preventDefault()}}};Dt(pA,{focusTrapRef:r,onKeydown:s}),be(()=>e.focusTrapEl,v=>{v&&(r.value=v)},{immediate:!0}),be([r],([v],[p])=>{v&&(v.addEventListener("keydown",s),v.addEventListener("focusin",f),v.addEventListener("focusout",c)),p&&(p.removeEventListener("keydown",s),p.removeEventListener("focusin",f),p.removeEventListener("focusout",c))});const l=v=>{t(v1,v)},u=v=>t(p1,v),f=v=>{const p=T(r);if(!p)return;const m=v.target,g=v.relatedTarget,y=m&&p.contains(m);e.trapped||g&&p.contains(g)||(n=g),y&&t("focusin",v),!o.paused&&e.trapped&&(y?i=m:Vi(i,!0))},c=v=>{const p=T(r);if(!(o.paused||!p))if(e.trapped){const m=v.relatedTarget;!_s(m)&&!p.contains(m)&&setTimeout(()=>{if(!o.paused&&e.trapped){const g=Ef({focusReason:a.value});t("focusout-prevented",g),g.defaultPrevented||Vi(i,!0)}},0)}else{const m=v.target;m&&p.contains(m)||t("focusout",v)}};async function h(){await Nt();const v=T(r);if(v){y1.push(o);const p=v.contains(document.activeElement)?n:document.activeElement;if(n=p,!v.contains(p)){const g=new Event(iv,h1);v.addEventListener(iv,l),v.dispatchEvent(g),g.defaultPrevented||Nt(()=>{let y=e.focusStartEl;ze(y)||(Vi(y),document.activeElement!==y&&(y="first")),y==="first"&&qH(gA(v),!0),(document.activeElement===p||y==="container")&&Vi(v)})}}}function d(){const v=T(r);if(v){v.removeEventListener(iv,l);const p=new CustomEvent(av,{...h1,detail:{focusReason:a.value}});v.addEventListener(av,u),v.dispatchEvent(p),!p.defaultPrevented&&(a.value=="keyboard"||!KH()||v.contains(document.activeElement))&&Vi(n??document.body),v.removeEventListener(av,u),y1.remove(o)}}return _t(()=>{e.trapped&&h(),be(()=>e.trapped,v=>{v?h():d()})}),tr(()=>{e.trapped&&d()}),{onKeydown:s}}});function QH(e,t,r,n,i,a){return Ce(e.$slots,"default",{handleKeydown:e.onKeydown})}var mA=Ke(ZH,[["render",QH],["__file","focus-trap.vue"]]);const JH=["fixed","absolute"],ez=Je({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Be(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:Oy,default:"bottom"},popperOptions:{type:Be(Object),default:()=>({})},strategy:{type:String,values:JH,default:"absolute"}}),yA=Je({...ez,id:String,style:{type:Be([String,Array,Object])},className:{type:Be([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Be([String,Array,Object])},popperStyle:{type:Be([String,Array,Object])},referenceEl:{type:Be(Object)},triggerTargetEl:{type:Be(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),tz={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},rz=(e,t=[])=>{const{placement:r,strategy:n,popperOptions:i}=e,a={placement:r,strategy:n,...i,modifiers:[...iz(e),...t]};return az(a,i==null?void 0:i.modifiers),a},nz=e=>{if(At)return Zi(e)};function iz(e){const{offset:t,gpuAcceleration:r,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:r}}]}function az(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const oz=0,sz=e=>{const{popperInstanceRef:t,contentRef:r,triggerRef:n,role:i}=Le(Wy,void 0),a=$(),o=$(),s=k(()=>({name:"eventListeners",enabled:!!e.visible})),l=k(()=>{var g;const y=T(a),_=(g=T(o))!=null?g:oz;return{name:"arrow",enabled:!MM(y),options:{element:y,padding:_}}}),u=k(()=>({onFirstUpdate:()=>{v()},...rz(e,[T(l),T(s)])})),f=k(()=>nz(e.referenceEl)||T(n)),{attributes:c,state:h,styles:d,update:v,forceUpdate:p,instanceRef:m}=o4(f,r,u);return be(m,g=>t.value=g),_t(()=>{be(()=>{var g;return(g=T(f))==null?void 0:g.getBoundingClientRect()},()=>{v()})}),{attributes:c,arrowRef:a,contentRef:r,instanceRef:m,state:h,styles:d,role:i,forceUpdate:p,update:v}},lz=(e,{attributes:t,styles:r,role:n})=>{const{nextZIndex:i}=zy(),a=Oe("popper"),o=k(()=>T(t).popper),s=$(kt(e.zIndex)?e.zIndex:i()),l=k(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),u=k(()=>[{zIndex:T(s)},T(r).popper,e.popperStyle||{}]),f=k(()=>n.value==="dialog"?"false":void 0),c=k(()=>T(r).arrow||{});return{ariaModal:f,arrowStyle:c,contentAttrs:o,contentClass:l,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=kt(e.zIndex)?e.zIndex:i()}}},uz=(e,t)=>{const r=$(!1),n=$();return{focusStartRef:n,trapped:r,onFocusAfterReleased:u=>{var f;((f=u.detail)==null?void 0:f.focusReason)!=="pointer"&&(n.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!r.value&&(u.target&&(n.value=u.target),r.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),r.value=!1)},onReleaseRequested:()=>{r.value=!1,t("close")}}},fz=ie({name:"ElPopperContent"}),cz=ie({...fz,props:yA,emits:tz,setup(e,{expose:t,emit:r}){const n=e,{focusStartRef:i,trapped:a,onFocusAfterReleased:o,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:u,onReleaseRequested:f}=uz(n,r),{attributes:c,arrowRef:h,contentRef:d,styles:v,instanceRef:p,role:m,update:g}=sz(n),{ariaModal:y,arrowStyle:_,contentAttrs:b,contentClass:x,contentStyle:w,updateZIndex:S}=lz(n,{styles:v,attributes:c,role:m}),C=Le(yo,void 0),M=$();Dt(fA,{arrowStyle:_,arrowRef:h,arrowOffset:M}),C&&(C.addInputId||C.removeInputId)&&Dt(yo,{...C,addInputId:Ft,removeInputId:Ft});let A;const P=(L=!0)=>{g(),L&&S()},E=()=>{P(!1),n.visible&&n.focusOnShow?a.value=!0:n.visible===!1&&(a.value=!1)};return _t(()=>{be(()=>n.triggerTargetEl,(L,O)=>{A==null||A(),A=void 0;const N=T(L||d.value),H=T(O||d.value);mo(N)&&(A=be([m,()=>n.ariaLabel,y,()=>n.id],V=>{["role","aria-label","aria-modal","id"].forEach((U,F)=>{_s(V[F])?N.removeAttribute(U):N.setAttribute(U,V[F])})},{immediate:!0})),H!==N&&mo(H)&&["role","aria-label","aria-modal","id"].forEach(V=>{H.removeAttribute(V)})},{immediate:!0}),be(()=>n.visible,E,{immediate:!0})}),tr(()=>{A==null||A(),A=void 0}),t({popperContentRef:d,popperInstanceRef:p,updatePopper:P,contentStyle:w}),(L,O)=>(G(),ce("div",ei({ref_key:"contentRef",ref:d},T(b),{style:T(w),class:T(x),tabindex:"-1",onMouseenter:O[0]||(O[0]=N=>L.$emit("mouseenter",N)),onMouseleave:O[1]||(O[1]=N=>L.$emit("mouseleave",N))}),[Z(T(mA),{trapped:T(a),"trap-on-focus-in":!0,"focus-trap-el":T(d),"focus-start-el":T(i),onFocusAfterTrapped:T(s),onFocusAfterReleased:T(o),onFocusin:T(l),onFocusoutPrevented:T(u),onReleaseRequested:T(f)},{default:q(()=>[Ce(L.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var dz=Ke(cz,[["__file","content.vue"]]);const hz=Yt(OH),Yy=Symbol("elTooltip"),md=Je({...d4,...yA,appendTo:{type:Be([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Be(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),_A=Je({...vA,disabled:Boolean,trigger:{type:Be([String,Array]),default:"hover"},triggerKeys:{type:Be(Array),default:()=>[hr.enter,hr.space]}}),{useModelToggleProps:vz,useModelToggleEmits:pz,useModelToggle:gz}=BM("visible"),mz=Je({...cA,...vz,...md,..._A,...dA,showArrow:{type:Boolean,default:!0}}),yz=[...pz,"before-show","before-hide","show","hide","open","close"],_z=(e,t)=>_e(e)?e.includes(t):e===t,ko=(e,t,r)=>n=>{_z(T(e),t)&&r(n)},bz=ie({name:"ElTooltipTrigger"}),wz=ie({...bz,props:_A,setup(e,{expose:t}){const r=e,n=Oe("tooltip"),{controlled:i,id:a,open:o,onOpen:s,onClose:l,onToggle:u}=Le(Yy,void 0),f=$(null),c=()=>{if(T(i)||r.disabled)return!0},h=wn(r,"trigger"),d=di(c,ko(h,"hover",s)),v=di(c,ko(h,"hover",l)),p=di(c,ko(h,"click",b=>{b.button===0&&u(b)})),m=di(c,ko(h,"focus",s)),g=di(c,ko(h,"focus",l)),y=di(c,ko(h,"contextmenu",b=>{b.preventDefault(),u(b)})),_=di(c,b=>{const{code:x}=b;r.triggerKeys.includes(x)&&(b.preventDefault(),u(b))});return t({triggerRef:f}),(b,x)=>(G(),ve(T(zH),{id:T(a),"virtual-ref":b.virtualRef,open:T(o),"virtual-triggering":b.virtualTriggering,class:re(T(n).e("trigger")),onBlur:T(g),onClick:T(p),onContextmenu:T(y),onFocus:T(m),onMouseenter:T(d),onMouseleave:T(v),onKeydown:T(_)},{default:q(()=>[Ce(b.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var Sz=Ke(wz,[["__file","trigger.vue"]]);const xz=ie({name:"ElTooltipContent",inheritAttrs:!1}),Cz=ie({...xz,props:md,setup(e,{expose:t}){const r=e,{selector:n}=QM(),i=Oe("tooltip"),a=$(null),o=$(!1),{controlled:s,id:l,open:u,trigger:f,onClose:c,onOpen:h,onShow:d,onHide:v,onBeforeShow:p,onBeforeHide:m}=Le(Yy,void 0),g=k(()=>r.transition||`${i.namespace.value}-fade-in-linear`),y=k(()=>r.persistent);tr(()=>{o.value=!0});const _=k(()=>T(y)?!0:T(u)),b=k(()=>r.disabled?!1:T(u)),x=k(()=>r.appendTo||n.value),w=k(()=>{var V;return(V=r.style)!=null?V:{}}),S=k(()=>!T(u)),C=()=>{v()},M=()=>{if(T(s))return!0},A=di(M,()=>{r.enterable&&T(f)==="hover"&&h()}),P=di(M,()=>{T(f)==="hover"&&c()}),E=()=>{var V,U;(U=(V=a.value)==null?void 0:V.updatePopper)==null||U.call(V),p==null||p()},L=()=>{m==null||m()},O=()=>{d(),H=ER(k(()=>{var V;return(V=a.value)==null?void 0:V.popperContentRef}),()=>{if(T(s))return;T(f)!=="hover"&&c()})},N=()=>{r.virtualTriggering||c()};let H;return be(()=>T(u),V=>{V||H==null||H()},{flush:"post"}),be(()=>r.content,()=>{var V,U;(U=(V=a.value)==null?void 0:V.updatePopper)==null||U.call(V)}),t({contentRef:a}),(V,U)=>(G(),ve(MT,{disabled:!V.teleported,to:T(x)},[Z(ti,{name:T(g),onAfterLeave:C,onBeforeEnter:E,onAfterEnter:O,onBeforeLeave:L},{default:q(()=>[T(_)?qt((G(),ve(T(dz),ei({key:0,id:T(l),ref_key:"contentRef",ref:a},V.$attrs,{"aria-label":V.ariaLabel,"aria-hidden":T(S),"boundaries-padding":V.boundariesPadding,"fallback-placements":V.fallbackPlacements,"gpu-acceleration":V.gpuAcceleration,offset:V.offset,placement:V.placement,"popper-options":V.popperOptions,strategy:V.strategy,effect:V.effect,enterable:V.enterable,pure:V.pure,"popper-class":V.popperClass,"popper-style":[V.popperStyle,T(w)],"reference-el":V.referenceEl,"trigger-target-el":V.triggerTargetEl,visible:T(b),"z-index":V.zIndex,onMouseenter:T(A),onMouseleave:T(P),onBlur:N,onClose:T(c)}),{default:q(()=>[o.value?Ae("v-if",!0):Ce(V.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Kn,T(b)]]):Ae("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var Tz=Ke(Cz,[["__file","content.vue"]]);const Mz=["innerHTML"],Az={key:1},Pz=ie({name:"ElTooltip"}),Ez=ie({...Pz,props:mz,emits:yz,setup(e,{expose:t,emit:r}){const n=e;c4();const i=xu(),a=$(),o=$(),s=()=>{var g;const y=T(a);y&&((g=y.popperInstanceRef)==null||g.update())},l=$(!1),u=$(),{show:f,hide:c,hasUpdateHandler:h}=gz({indicator:l,toggleReason:u}),{onOpen:d,onClose:v}=h4({showAfter:wn(n,"showAfter"),hideAfter:wn(n,"hideAfter"),autoClose:wn(n,"autoClose"),open:f,close:c}),p=k(()=>zr(n.visible)&&!h.value);Dt(Yy,{controlled:p,id:i,open:Gu(l),trigger:wn(n,"trigger"),onOpen:g=>{d(g)},onClose:g=>{v(g)},onToggle:g=>{T(l)?v(g):d(g)},onShow:()=>{r("show",u.value)},onHide:()=>{r("hide",u.value)},onBeforeShow:()=>{r("before-show",u.value)},onBeforeHide:()=>{r("before-hide",u.value)},updatePopper:s}),be(()=>n.disabled,g=>{g&&l.value&&(l.value=!1)});const m=g=>{var y,_;const b=(_=(y=o.value)==null?void 0:y.contentRef)==null?void 0:_.popperContentRef,x=(g==null?void 0:g.relatedTarget)||document.activeElement;return b&&b.contains(x)};return pT(()=>l.value&&c()),t({popperRef:a,contentRef:o,isFocusInsideContent:m,updatePopper:s,onOpen:d,onClose:v,hide:c}),(g,y)=>(G(),ve(T(hz),{ref_key:"popperRef",ref:a,role:g.role},{default:q(()=>[Z(Sz,{disabled:g.disabled,trigger:g.trigger,"trigger-keys":g.triggerKeys,"virtual-ref":g.virtualRef,"virtual-triggering":g.virtualTriggering},{default:q(()=>[g.$slots.default?Ce(g.$slots,"default",{key:0}):Ae("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),Z(Tz,{ref_key:"contentRef",ref:o,"aria-label":g.ariaLabel,"boundaries-padding":g.boundariesPadding,content:g.content,disabled:g.disabled,effect:g.effect,enterable:g.enterable,"fallback-placements":g.fallbackPlacements,"hide-after":g.hideAfter,"gpu-acceleration":g.gpuAcceleration,offset:g.offset,persistent:g.persistent,"popper-class":g.popperClass,"popper-style":g.popperStyle,placement:g.placement,"popper-options":g.popperOptions,pure:g.pure,"raw-content":g.rawContent,"reference-el":g.referenceEl,"trigger-target-el":g.triggerTargetEl,"show-after":g.showAfter,strategy:g.strategy,teleported:g.teleported,transition:g.transition,"virtual-triggering":g.virtualTriggering,"z-index":g.zIndex,"append-to":g.appendTo},{default:q(()=>[Ce(g.$slots,"content",{},()=>[g.rawContent?(G(),ce("span",{key:0,innerHTML:g.content},null,8,Mz)):(G(),ce("span",Az,xe(g.content),1))]),g.showArrow?(G(),ve(T(NH),{key:0,"arrow-offset":g.arrowOffset},null,8,["arrow-offset"])):Ae("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var Lz=Ke(Ez,[["__file","tooltip.vue"]]);const Vs=Yt(Lz),Dz=Je({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),Iz=["textContent"],Oz=ie({name:"ElBadge"}),Rz=ie({...Oz,props:Dz,setup(e,{expose:t}){const r=e,n=Oe("badge"),i=k(()=>r.isDot?"":kt(r.value)&&kt(r.max)?r.max(G(),ce("div",{class:re(T(n).b())},[Ce(a.$slots,"default"),Z(ti,{name:`${T(n).namespace.value}-zoom-in-center`,persisted:""},{default:q(()=>[qt(te("sup",{class:re([T(n).e("content"),T(n).em("content",a.type),T(n).is("fixed",!!a.$slots.default),T(n).is("dot",a.isDot)]),textContent:xe(T(i))},null,10,Iz),[[Kn,!a.hidden&&(T(i)||a.isDot)]])]),_:1},8,["name"])],2))}});var kz=Ke(Rz,[["__file","badge.vue"]]);const Nz=Yt(kz),bA=Symbol("buttonGroupContextKey"),Bz=(e,t)=>{bu({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},k(()=>e.type==="text"));const r=Le(bA,void 0),n=hh("button"),{form:i}=tf(),a=xi(k(()=>r==null?void 0:r.size)),o=vh(),s=$(),l=Ns(),u=k(()=>e.type||(r==null?void 0:r.type)||""),f=k(()=>{var v,p,m;return(m=(p=e.autoInsertSpace)!=null?p:(v=n.value)==null?void 0:v.autoInsertSpace)!=null?m:!1}),c=k(()=>e.tag==="button"?{ariaDisabled:o.value||e.loading,disabled:o.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=k(()=>{var v;const p=(v=l.default)==null?void 0:v.call(l);if(f.value&&(p==null?void 0:p.length)===1){const m=p[0];if((m==null?void 0:m.type)===Bs){const g=m.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(g.trim())}}return!1});return{_disabled:o,_size:a,_type:u,_ref:s,_props:c,shouldAddSpace:h,handleClick:v=>{e.nativeType==="reset"&&(i==null||i.resetFields()),t("click",v)}}},pg=["default","primary","success","warning","info","danger","text",""],Fz=["button","submit","reset"],gg=Je({size:dh,disabled:Boolean,type:{type:String,values:pg,default:""},icon:{type:vr},nativeType:{type:String,values:Fz,default:"button"},loading:Boolean,loadingIcon:{type:vr,default:()=>Ly},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:Be([String,Object]),default:"button"}}),$z={click:e=>e instanceof MouseEvent};function er(e,t){Hz(e)&&(e="100%");var r=zz(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Lf(e){return Math.min(1,Math.max(0,e))}function Hz(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function zz(e){return typeof e=="string"&&e.indexOf("%")!==-1}function wA(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Df(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ja(e){return e.length===1?"0"+e:String(e)}function Vz(e,t,r){return{r:er(e,255)*255,g:er(t,255)*255,b:er(r,255)*255}}function b1(e,t,r){e=er(e,255),t=er(t,255),r=er(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=0,s=(n+i)/2;if(n===i)o=0,a=0;else{var l=n-i;switch(o=s>.5?l/(2-n-i):l/(n+i),n){case e:a=(t-r)/l+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function Wz(e,t,r){var n,i,a;if(e=er(e,360),t=er(t,100),r=er(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=ov(s,o,e+1/3),i=ov(s,o,e),a=ov(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function w1(e,t,r){e=er(e,255),t=er(t,255),r=er(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,l=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t>16,g:(e&65280)>>8,b:e&255}}var mg={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function qz(e){var t={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;return typeof e=="string"&&(e=Zz(e)),typeof e=="object"&&(si(e.r)&&si(e.g)&&si(e.b)?(t=Vz(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):si(e.h)&&si(e.s)&&si(e.v)?(n=Df(e.s),i=Df(e.v),t=Gz(e.h,n,i),o=!0,s="hsv"):si(e.h)&&si(e.s)&&si(e.l)&&(n=Df(e.s),a=Df(e.l),t=Wz(e.h,n,a),o=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=wA(r),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var Kz="[-\\+]?\\d+%?",Xz="[-\\+]?\\d*\\.\\d+%?",Qi="(?:".concat(Xz,")|(?:").concat(Kz,")"),sv="[\\s|\\(]+(".concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")\\s*\\)?"),lv="[\\s|\\(]+(".concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")[,|\\s]+(").concat(Qi,")\\s*\\)?"),gn={CSS_UNIT:new RegExp(Qi),rgb:new RegExp("rgb"+sv),rgba:new RegExp("rgba"+lv),hsl:new RegExp("hsl"+sv),hsla:new RegExp("hsla"+lv),hsv:new RegExp("hsv"+sv),hsva:new RegExp("hsva"+lv),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Zz(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(mg[e])e=mg[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=gn.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=gn.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=gn.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=gn.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=gn.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=gn.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=gn.hex8.exec(e),r?{r:kr(r[1]),g:kr(r[2]),b:kr(r[3]),a:x1(r[4]),format:t?"name":"hex8"}:(r=gn.hex6.exec(e),r?{r:kr(r[1]),g:kr(r[2]),b:kr(r[3]),format:t?"name":"hex"}:(r=gn.hex4.exec(e),r?{r:kr(r[1]+r[1]),g:kr(r[2]+r[2]),b:kr(r[3]+r[3]),a:x1(r[4]+r[4]),format:t?"name":"hex8"}:(r=gn.hex3.exec(e),r?{r:kr(r[1]+r[1]),g:kr(r[2]+r[2]),b:kr(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function si(e){return!!gn.CSS_UNIT.exec(String(e))}var SA=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var n;if(t instanceof e)return t;typeof t=="number"&&(t=jz(t)),this.originalInput=t;var i=qz(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(n=r.format)!==null&&n!==void 0?n:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,n,i,a=t.r/255,o=t.g/255,s=t.b/255;return a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),.2126*r+.7152*n+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=wA(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=w1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=w1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsva(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=b1(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=b1(this.r,this.g,this.b),r=Math.round(t.h*360),n=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(n,"%, ").concat(i,"%)"):"hsla(".concat(r,", ").concat(n,"%, ").concat(i,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),S1(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),Uz(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),n=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(n,")"):"rgba(".concat(t,", ").concat(r,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(er(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(er(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+S1(this.r,this.g,this.b,!1),r=0,n=Object.entries(mg);r=0,a=!r&&i&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(n=this.toRgbString()),t==="prgb"&&(n=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(n=this.toHexString()),t==="hex3"&&(n=this.toHexString(!0)),t==="hex4"&&(n=this.toHex8String(!0)),t==="hex8"&&(n=this.toHex8String()),t==="name"&&(n=this.toName()),t==="hsl"&&(n=this.toHslString()),t==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=Lf(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=Lf(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=Lf(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=Lf(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var n=this.toRgb(),i=new e(t).toRgb(),a=r/100,o={r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a};return new e(o)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var n=this.toHsl(),i=360/r,a=[this];for(n.h=(n.h-(i*t>>1)+720)%360;--t;)n.h=(n.h+i)%360,a.push(new e(n));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/t;t--;)o.push(new e({h:n,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),n=new e(t).toRgb();return new e({r:n.r+(r.r-n.r)*r.a,g:n.g+(r.g-n.g)*r.a,b:n.b+(r.b-n.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),n=r.h,i=[this],a=360/t,o=1;o{let n={};const i=e.color;if(i){const a=new SA(i),o=e.dark?a.tint(20).toString():Oi(a,20);if(e.plain)n=r.cssVarBlock({"bg-color":e.dark?Oi(a,90):a.tint(90).toString(),"text-color":i,"border-color":e.dark?Oi(a,50):a.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":o,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":o}),t.value&&(n[r.cssVarBlockName("disabled-bg-color")]=e.dark?Oi(a,90):a.tint(90).toString(),n[r.cssVarBlockName("disabled-text-color")]=e.dark?Oi(a,50):a.tint(50).toString(),n[r.cssVarBlockName("disabled-border-color")]=e.dark?Oi(a,80):a.tint(80).toString());else{const s=e.dark?Oi(a,30):a.tint(30).toString(),l=a.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(n=r.cssVarBlock({"bg-color":i,"text-color":l,"border-color":i,"hover-bg-color":s,"hover-text-color":l,"hover-border-color":s,"active-bg-color":o,"active-border-color":o}),t.value){const u=e.dark?Oi(a,50):a.tint(50).toString();n[r.cssVarBlockName("disabled-bg-color")]=u,n[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,n[r.cssVarBlockName("disabled-border-color")]=u}}}return n})}const Jz=ie({name:"ElButton"}),e8=ie({...Jz,props:gg,emits:$z,setup(e,{expose:t,emit:r}){const n=e,i=Qz(n),a=Oe("button"),{_ref:o,_size:s,_type:l,_disabled:u,_props:f,shouldAddSpace:c,handleClick:h}=Bz(n,r);return t({ref:o,size:s,type:l,disabled:u,shouldAddSpace:c}),(d,v)=>(G(),ve(Vt(d.tag),ei({ref_key:"_ref",ref:o},T(f),{class:[T(a).b(),T(a).m(T(l)),T(a).m(T(s)),T(a).is("disabled",T(u)),T(a).is("loading",d.loading),T(a).is("plain",d.plain),T(a).is("round",d.round),T(a).is("circle",d.circle),T(a).is("text",d.text),T(a).is("link",d.link),T(a).is("has-bg",d.bg)],style:T(i),onClick:T(h)}),{default:q(()=>[d.loading?(G(),ce(ft,{key:0},[d.$slots.loading?Ce(d.$slots,"loading",{key:0}):(G(),ve(T(Bt),{key:1,class:re(T(a).is("loading"))},{default:q(()=>[(G(),ve(Vt(d.loadingIcon)))]),_:1},8,["class"]))],64)):d.icon||d.$slots.icon?(G(),ve(T(Bt),{key:1},{default:q(()=>[d.icon?(G(),ve(Vt(d.icon),{key:0})):Ce(d.$slots,"icon",{key:1})]),_:3})):Ae("v-if",!0),d.$slots.default?(G(),ce("span",{key:2,class:re({[T(a).em("text","expand")]:T(c)})},[Ce(d.$slots,"default")],2)):Ae("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var t8=Ke(e8,[["__file","button.vue"]]);const r8={size:gg.size,type:gg.type},n8=ie({name:"ElButtonGroup"}),i8=ie({...n8,props:r8,setup(e){const t=e;Dt(bA,Ln({size:wn(t,"size"),type:wn(t,"type")}));const r=Oe("button");return(n,i)=>(G(),ce("div",{class:re(`${T(r).b("group")}`)},[Ce(n.$slots,"default")],2))}});var xA=Ke(i8,[["__file","button-group.vue"]]);const yg=Yt(t8,{ButtonGroup:xA});pa(xA);var a8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};const Wi=new Map;let C1;At&&(document.addEventListener("mousedown",e=>C1=e),document.addEventListener("mouseup",e=>{for(const t of Wi.values())for(const{documentHandler:r}of t)r(e,C1)}));function T1(e,t){let r=[];return Array.isArray(t.arg)?r=t.arg:mo(t.arg)&&r.push(t.arg),function(n,i){const a=t.instance.popperRef,o=n.target,s=i==null?void 0:i.target,l=!t||!t.instance,u=!o||!s,f=e.contains(o)||e.contains(s),c=e===o,h=r.length&&r.some(v=>v==null?void 0:v.contains(o))||r.length&&r.includes(s),d=a&&(a.contains(o)||a.contains(s));l||u||f||c||h||d||t.value(n,i)}}const CA={beforeMount(e,t){Wi.has(e)||Wi.set(e,[]),Wi.get(e).push({documentHandler:T1(e,t),bindingFn:t.value})},updated(e,t){Wi.has(e)||Wi.set(e,[]);const r=Wi.get(e),n=r.findIndex(a=>a.bindingFn===t.oldValue),i={documentHandler:T1(e,t),bindingFn:t.value};n>=0?r.splice(n,1,i):r.push(i)},unmounted(e){Wi.delete(e)}};var M1=!1,qa,_g,bg,Rc,kc,TA,Nc,wg,Sg,xg,MA,Cg,Tg,AA,PA;function yr(){if(!M1){M1=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),r=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Cg=/\b(iPhone|iP[ao]d)/.exec(e),Tg=/\b(iP[ao]d)/.exec(e),xg=/Android/i.exec(e),AA=/FBAN\/\w+;/i.exec(e),PA=/Mobile/i.exec(e),MA=!!/Win64/.exec(e),t){qa=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qa&&document&&document.documentMode&&(qa=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);TA=n?parseFloat(n[1])+4:qa,_g=t[2]?parseFloat(t[2]):NaN,bg=t[3]?parseFloat(t[3]):NaN,Rc=t[4]?parseFloat(t[4]):NaN,Rc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),kc=t&&t[1]?parseFloat(t[1]):NaN):kc=NaN}else qa=_g=bg=kc=Rc=NaN;if(r){if(r[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Nc=i?parseFloat(i[1].replace("_",".")):!0}else Nc=!1;wg=!!r[2],Sg=!!r[3]}else Nc=wg=Sg=!1}}var Mg={ie:function(){return yr()||qa},ieCompatibilityMode:function(){return yr()||TA>qa},ie64:function(){return Mg.ie()&&MA},firefox:function(){return yr()||_g},opera:function(){return yr()||bg},webkit:function(){return yr()||Rc},safari:function(){return Mg.webkit()},chrome:function(){return yr()||kc},windows:function(){return yr()||wg},osx:function(){return yr()||Nc},linux:function(){return yr()||Sg},iphone:function(){return yr()||Cg},mobile:function(){return yr()||Cg||Tg||xg||PA},nativeApp:function(){return yr()||AA},android:function(){return yr()||xg},ipad:function(){return yr()||Tg}},o8=Mg,If=!!(typeof window<"u"&&window.document&&window.document.createElement),s8={canUseDOM:If,canUseWorkers:typeof Worker<"u",canUseEventListeners:If&&!!(window.addEventListener||window.attachEvent),canUseViewport:If&&!!window.screen,isInWorker:!If},EA=s8,LA;EA.canUseDOM&&(LA=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function l8(e,t){if(!EA.canUseDOM||t&&!("addEventListener"in document))return!1;var r="on"+e,n=r in document;if(!n){var i=document.createElement("div");i.setAttribute(r,"return;"),n=typeof i[r]=="function"}return!n&&LA&&e==="wheel"&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}var u8=l8,A1=10,P1=40,E1=800;function DA(e){var t=0,r=0,n=0,i=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=t*A1,i=r*A1,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||i)&&e.deltaMode&&(e.deltaMode==1?(n*=P1,i*=P1):(n*=E1,i*=E1)),n&&!t&&(t=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:i}}DA.getEventType=function(){return o8.firefox()?"DOMMouseScroll":u8("wheel")?"wheel":"mousewheel"};var f8=DA;/** -* Checks if an event is supported in the current execution environment. -* -* NOTE: This will not work correctly for non-generic events such as `change`, -* `reset`, `load`, `error`, and `select`. -* -* Borrows from Modernizr. -* -* @param {string} eventNameSuffix Event name, e.g. "click". -* @param {?boolean} capture Check if the capture phase is supported. -* @return {boolean} True if the event is supported. -* @internal -* @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const c8=function(e,t){if(e&&e.addEventListener){const r=function(n){const i=f8(n);t&&Reflect.apply(t,this,[n,i])};e.addEventListener("wheel",r,{passive:!0})}},d8={beforeMount(e,t){c8(e,t.value)}},IA={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:dh,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},OA={[wi]:e=>ze(e)||kt(e)||zr(e),change:e=>ze(e)||kt(e)||zr(e)},Ws=Symbol("checkboxGroupContextKey"),h8=({model:e,isChecked:t})=>{const r=Le(Ws,void 0),n=k(()=>{var a,o;const s=(a=r==null?void 0:r.max)==null?void 0:a.value,l=(o=r==null?void 0:r.min)==null?void 0:o.value;return!bs(s)&&e.value.length>=s&&!t.value||!bs(l)&&e.value.length<=l&&t.value});return{isDisabled:vh(k(()=>(r==null?void 0:r.disabled.value)||n.value)),isLimitDisabled:n}},v8=(e,{model:t,isLimitExceeded:r,hasOwnLabel:n,isDisabled:i,isLabeledByFormItem:a})=>{const o=Le(Ws,void 0),{formItem:s}=tf(),{emit:l}=it();function u(v){var p,m;return v===e.trueLabel||v===!0?(p=e.trueLabel)!=null?p:!0:(m=e.falseLabel)!=null?m:!1}function f(v,p){l("change",u(v),p)}function c(v){if(r.value)return;const p=v.target;l("change",u(p.checked),v)}async function h(v){r.value||!n.value&&!i.value&&a.value&&(v.composedPath().some(g=>g.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Nt(),f(t.value,v)))}const d=k(()=>(o==null?void 0:o.validateEvent)||e.validateEvent);return be(()=>e.modelValue,()=>{d.value&&(s==null||s.validate("change").catch(v=>void 0))}),{handleChange:c,onClickRoot:h}},p8=e=>{const t=$(!1),{emit:r}=it(),n=Le(Ws,void 0),i=k(()=>bs(n)===!1),a=$(!1),o=k({get(){var s,l;return i.value?(s=n==null?void 0:n.modelValue)==null?void 0:s.value:(l=e.modelValue)!=null?l:t.value},set(s){var l,u;i.value&&_e(s)?(a.value=((l=n==null?void 0:n.max)==null?void 0:l.value)!==void 0&&s.length>(n==null?void 0:n.max.value)&&s.length>o.value.length,a.value===!1&&((u=n==null?void 0:n.changeEvent)==null||u.call(n,s))):(r(wi,s),t.value=s)}});return{model:o,isGroup:i,isLimitExceeded:a}},g8=(e,t,{model:r})=>{const n=Le(Ws,void 0),i=$(!1),a=k(()=>{const u=r.value;return zr(u)?u:_e(u)?qe(e.label)?u.map(Qe).some(f=>p3(f,e.label)):u.map(Qe).includes(e.label):u!=null?u===e.trueLabel:!!u}),o=xi(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value}),{prop:!0}),s=xi(k(()=>{var u;return(u=n==null?void 0:n.size)==null?void 0:u.value})),l=k(()=>!!t.default||!_s(e.label));return{checkboxButtonSize:o,isChecked:a,isFocused:i,checkboxSize:s,hasOwnLabel:l}},m8=(e,{model:t})=>{function r(){_e(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&r()},RA=(e,t)=>{const{formItem:r}=tf(),{model:n,isGroup:i,isLimitExceeded:a}=p8(e),{isFocused:o,isChecked:s,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f}=g8(e,t,{model:n}),{isDisabled:c}=h8({model:n,isChecked:s}),{inputId:h,isLabeledByFormItem:d}=Vy(e,{formItemContext:r,disableIdGeneration:f,disableIdManagement:i}),{handleChange:v,onClickRoot:p}=v8(e,{model:n,isLimitExceeded:a,hasOwnLabel:f,isDisabled:c,isLabeledByFormItem:d});return m8(e,{model:n}),{inputId:h,isLabeledByFormItem:d,isChecked:s,isDisabled:c,isFocused:o,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:f,model:n,handleChange:v,onClickRoot:p}},y8=["id","indeterminate","name","tabindex","disabled","true-value","false-value"],_8=["id","indeterminate","disabled","value","name","tabindex"],b8=ie({name:"ElCheckbox"}),w8=ie({...b8,props:IA,emits:OA,setup(e){const t=e,r=Ns(),{inputId:n,isLabeledByFormItem:i,isChecked:a,isDisabled:o,isFocused:s,checkboxSize:l,hasOwnLabel:u,model:f,handleChange:c,onClickRoot:h}=RA(t,r),d=Oe("checkbox"),v=k(()=>[d.b(),d.m(l.value),d.is("disabled",o.value),d.is("bordered",t.border),d.is("checked",a.value)]),p=k(()=>[d.e("input"),d.is("disabled",o.value),d.is("checked",a.value),d.is("indeterminate",t.indeterminate),d.is("focus",s.value)]);return(m,g)=>(G(),ve(Vt(!T(u)&&T(i)?"span":"label"),{class:re(T(v)),"aria-controls":m.indeterminate?m.controls:null,onClick:T(h)},{default:q(()=>[te("span",{class:re(T(p))},[m.trueLabel||m.falseLabel?qt((G(),ce("input",{key:0,id:T(n),"onUpdate:modelValue":g[0]||(g[0]=y=>Pt(f)?f.value=y:null),class:re(T(d).e("original")),type:"checkbox",indeterminate:m.indeterminate,name:m.name,tabindex:m.tabindex,disabled:T(o),"true-value":m.trueLabel,"false-value":m.falseLabel,onChange:g[1]||(g[1]=(...y)=>T(c)&&T(c)(...y)),onFocus:g[2]||(g[2]=y=>s.value=!0),onBlur:g[3]||(g[3]=y=>s.value=!1),onClick:g[4]||(g[4]=ua(()=>{},["stop"]))},null,42,y8)),[[sd,T(f)]]):qt((G(),ce("input",{key:1,id:T(n),"onUpdate:modelValue":g[5]||(g[5]=y=>Pt(f)?f.value=y:null),class:re(T(d).e("original")),type:"checkbox",indeterminate:m.indeterminate,disabled:T(o),value:m.label,name:m.name,tabindex:m.tabindex,onChange:g[6]||(g[6]=(...y)=>T(c)&&T(c)(...y)),onFocus:g[7]||(g[7]=y=>s.value=!0),onBlur:g[8]||(g[8]=y=>s.value=!1),onClick:g[9]||(g[9]=ua(()=>{},["stop"]))},null,42,_8)),[[sd,T(f)]]),te("span",{class:re(T(d).e("inner"))},null,2)],2),T(u)?(G(),ce("span",{key:0,class:re(T(d).e("label"))},[Ce(m.$slots,"default"),m.$slots.default?Ae("v-if",!0):(G(),ce(ft,{key:0},[pt(xe(m.label),1)],64))],2)):Ae("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var S8=Ke(w8,[["__file","checkbox.vue"]]);const x8=["name","tabindex","disabled","true-value","false-value"],C8=["name","tabindex","disabled","value"],T8=ie({name:"ElCheckboxButton"}),M8=ie({...T8,props:IA,emits:OA,setup(e){const t=e,r=Ns(),{isFocused:n,isChecked:i,isDisabled:a,checkboxButtonSize:o,model:s,handleChange:l}=RA(t,r),u=Le(Ws,void 0),f=Oe("checkbox"),c=k(()=>{var d,v,p,m;const g=(v=(d=u==null?void 0:u.fill)==null?void 0:d.value)!=null?v:"";return{backgroundColor:g,borderColor:g,color:(m=(p=u==null?void 0:u.textColor)==null?void 0:p.value)!=null?m:"",boxShadow:g?`-1px 0 0 0 ${g}`:void 0}}),h=k(()=>[f.b("button"),f.bm("button",o.value),f.is("disabled",a.value),f.is("checked",i.value),f.is("focus",n.value)]);return(d,v)=>(G(),ce("label",{class:re(T(h))},[d.trueLabel||d.falseLabel?qt((G(),ce("input",{key:0,"onUpdate:modelValue":v[0]||(v[0]=p=>Pt(s)?s.value=p:null),class:re(T(f).be("button","original")),type:"checkbox",name:d.name,tabindex:d.tabindex,disabled:T(a),"true-value":d.trueLabel,"false-value":d.falseLabel,onChange:v[1]||(v[1]=(...p)=>T(l)&&T(l)(...p)),onFocus:v[2]||(v[2]=p=>n.value=!0),onBlur:v[3]||(v[3]=p=>n.value=!1),onClick:v[4]||(v[4]=ua(()=>{},["stop"]))},null,42,x8)),[[sd,T(s)]]):qt((G(),ce("input",{key:1,"onUpdate:modelValue":v[5]||(v[5]=p=>Pt(s)?s.value=p:null),class:re(T(f).be("button","original")),type:"checkbox",name:d.name,tabindex:d.tabindex,disabled:T(a),value:d.label,onChange:v[6]||(v[6]=(...p)=>T(l)&&T(l)(...p)),onFocus:v[7]||(v[7]=p=>n.value=!0),onBlur:v[8]||(v[8]=p=>n.value=!1),onClick:v[9]||(v[9]=ua(()=>{},["stop"]))},null,42,C8)),[[sd,T(s)]]),d.$slots.default||d.label?(G(),ce("span",{key:2,class:re(T(f).be("button","inner")),style:ct(T(i)?T(c):void 0)},[Ce(d.$slots,"default",{},()=>[pt(xe(d.label),1)])],6)):Ae("v-if",!0)],2))}});var kA=Ke(M8,[["__file","checkbox-button.vue"]]);const A8=Je({modelValue:{type:Be(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:dh,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),P8={[wi]:e=>_e(e),change:e=>_e(e)},E8=ie({name:"ElCheckboxGroup"}),L8=ie({...E8,props:A8,emits:P8,setup(e,{emit:t}){const r=e,n=Oe("checkbox"),{formItem:i}=tf(),{inputId:a,isLabeledByFormItem:o}=Vy(r,{formItemContext:i}),s=async u=>{t(wi,u),await Nt(),t("change",u)},l=k({get(){return r.modelValue},set(u){s(u)}});return Dt(Ws,{...b3(Kd(r),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:s}),be(()=>r.modelValue,()=>{r.validateEvent&&(i==null||i.validate("change").catch(u=>void 0))}),(u,f)=>{var c;return G(),ve(Vt(u.tag),{id:T(a),class:re(T(n).b("group")),role:"group","aria-label":T(o)?void 0:u.label||"checkbox-group","aria-labelledby":T(o)?(c=T(i))==null?void 0:c.labelId:void 0},{default:q(()=>[Ce(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var NA=Ke(L8,[["__file","checkbox-group.vue"]]);const Ms=Yt(S8,{CheckboxButton:kA,CheckboxGroup:NA});pa(kA);pa(NA);const D8=Je({type:{type:String,values:["success","info","warning","danger",""],default:""},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:{type:String,default:""},size:{type:String,values:$s,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),I8={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},O8=ie({name:"ElTag"}),R8=ie({...O8,props:D8,emits:I8,setup(e,{emit:t}){const r=e,n=xi(),i=Oe("tag"),a=k(()=>{const{type:l,hit:u,effect:f,closable:c,round:h}=r;return[i.b(),i.is("closable",c),i.m(l),i.m(n.value),i.m(f),i.is("hit",u),i.is("round",h)]}),o=l=>{t("close",l)},s=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(G(),ce("span",{key:0,class:re(T(a)),style:ct({backgroundColor:l.color}),onClick:s},[te("span",{class:re(T(i).e("content"))},[Ce(l.$slots,"default")],2),l.closable?(G(),ve(T(Bt),{key:0,class:re(T(i).e("close")),onClick:ua(o,["stop"])},{default:q(()=>[Z(T(vd))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)):(G(),ve(ti,{key:1,name:`${T(i).namespace.value}-zoom-in-center`,appear:""},{default:q(()=>[te("span",{class:re(T(a)),style:ct({backgroundColor:l.color}),onClick:s},[te("span",{class:re(T(i).e("content"))},[Ce(l.$slots,"default")],2),l.closable?(G(),ve(T(Bt),{key:0,class:re(T(i).e("close")),onClick:ua(o,["stop"])},{default:q(()=>[Z(T(vd))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)]),_:3},8,["name"]))}});var k8=Ke(R8,[["__file","tag.vue"]]);const N8=Yt(k8),BA=Symbol("rowContextKey"),B8=["start","center","end","space-around","space-between","space-evenly"],F8=["top","middle","bottom"],$8=Je({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:B8,default:"start"},align:{type:String,values:F8}}),H8=ie({name:"ElRow"}),z8=ie({...H8,props:$8,setup(e){const t=e,r=Oe("row"),n=k(()=>t.gutter);Dt(BA,{gutter:n});const i=k(()=>{const o={};return t.gutter&&(o.marginRight=o.marginLeft=`-${t.gutter/2}px`),o}),a=k(()=>[r.b(),r.is(`justify-${t.justify}`,t.justify!=="start"),r.is(`align-${t.align}`,!!t.align)]);return(o,s)=>(G(),ve(Vt(o.tag),{class:re(T(a)),style:ct(T(i))},{default:q(()=>[Ce(o.$slots,"default")]),_:3},8,["class","style"]))}});var V8=Ke(z8,[["__file","row.vue"]]);const FA=Yt(V8),W8=Je({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Be([Number,Object]),default:()=>ja({})},sm:{type:Be([Number,Object]),default:()=>ja({})},md:{type:Be([Number,Object]),default:()=>ja({})},lg:{type:Be([Number,Object]),default:()=>ja({})},xl:{type:Be([Number,Object]),default:()=>ja({})}}),G8=ie({name:"ElCol"}),U8=ie({...G8,props:W8,setup(e){const t=e,{gutter:r}=Le(BA,{gutter:k(()=>0)}),n=Oe("col"),i=k(()=>{const o={};return r.value&&(o.paddingLeft=o.paddingRight=`${r.value/2}px`),o}),a=k(()=>{const o=[];return["span","offset","pull","push"].forEach(u=>{const f=t[u];kt(f)&&(u==="span"?o.push(n.b(`${t[u]}`)):f>0&&o.push(n.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{kt(t[u])?o.push(n.b(`${u}-${t[u]}`)):qe(t[u])&&Object.entries(t[u]).forEach(([f,c])=>{o.push(f!=="span"?n.b(`${u}-${f}-${c}`):n.b(`${u}-${c}`))})}),r.value&&o.push(n.is("guttered")),[n.b(),o]});return(o,s)=>(G(),ve(Vt(o.tag),{class:re(T(a)),style:ct(T(i))},{default:q(()=>[Ce(o.$slots,"default")]),_:3},8,["class","style"]))}});var Y8=Ke(U8,[["__file","col.vue"]]);const $A=Yt(Y8),j8=ie({name:"ElCollapseTransition"}),q8=ie({...j8,setup(e){const t=Oe("collapse-transition"),r=i=>{i.style.maxHeight="",i.style.overflow=i.dataset.oldOverflow,i.style.paddingTop=i.dataset.oldPaddingTop,i.style.paddingBottom=i.dataset.oldPaddingBottom},n={beforeEnter(i){i.dataset||(i.dataset={}),i.dataset.oldPaddingTop=i.style.paddingTop,i.dataset.oldPaddingBottom=i.style.paddingBottom,i.style.height&&(i.dataset.elExistsHeight=i.style.height),i.style.maxHeight=0,i.style.paddingTop=0,i.style.paddingBottom=0},enter(i){requestAnimationFrame(()=>{i.dataset.oldOverflow=i.style.overflow,i.dataset.elExistsHeight?i.style.maxHeight=i.dataset.elExistsHeight:i.scrollHeight!==0?i.style.maxHeight=`${i.scrollHeight}px`:i.style.maxHeight=0,i.style.paddingTop=i.dataset.oldPaddingTop,i.style.paddingBottom=i.dataset.oldPaddingBottom,i.style.overflow="hidden"})},afterEnter(i){i.style.maxHeight="",i.style.overflow=i.dataset.oldOverflow},enterCancelled(i){r(i)},beforeLeave(i){i.dataset||(i.dataset={}),i.dataset.oldPaddingTop=i.style.paddingTop,i.dataset.oldPaddingBottom=i.style.paddingBottom,i.dataset.oldOverflow=i.style.overflow,i.style.maxHeight=`${i.scrollHeight}px`,i.style.overflow="hidden"},leave(i){i.scrollHeight!==0&&(i.style.maxHeight=0,i.style.paddingTop=0,i.style.paddingBottom=0)},afterLeave(i){r(i)},leaveCancelled(i){r(i)}};return(i,a)=>(G(),ve(ti,ei({name:T(t).b()},YI(n)),{default:q(()=>[Ce(i.$slots,"default")]),_:3},16,["name"]))}});var Bc=Ke(q8,[["__file","collapse-transition.vue"]]);Bc.install=e=>{e.component(Bc.name,Bc)};const K8=Bc,X8=Je({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Be([String,Array,Object])},zIndex:{type:Be([String,Number])}}),Z8={click:e=>e instanceof MouseEvent},Q8="overlay";var J8=ie({name:"ElOverlay",props:X8,emits:Z8,setup(e,{slots:t,emit:r}){const n=Oe(Q8),i=l=>{r("click",l)},{onClick:a,onMousedown:o,onMouseup:s}=XM(e.customMaskEvent?void 0:i);return()=>e.mask?Z("div",{class:[n.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:a,onMousedown:o,onMouseup:s},[Ce(t,"default")],Lc.STYLE|Lc.CLASS|Lc.PROPS,["onClick","onMouseup","onMousedown"]):Te("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ce(t,"default")])}});const e6=J8,HA=Symbol("dialogInjectionKey"),zA=Je({center:Boolean,alignCenter:Boolean,closeIcon:{type:vr},customClass:{type:String,default:""},draggable:Boolean,fullscreen:Boolean,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),t6={close:()=>!0},r6=["aria-level"],n6=["aria-label"],i6=["id"],a6=ie({name:"ElDialogContent"}),o6=ie({...a6,props:zA,emits:t6,setup(e){const t=e,{t:r}=Hs(),{Close:n}=W3,{dialogRef:i,headerRef:a,bodyId:o,ns:s,style:l}=Le(HA),{focusTrapRef:u}=Le(pA),f=k(()=>[s.b(),s.is("fullscreen",t.fullscreen),s.is("draggable",t.draggable),s.is("align-center",t.alignCenter),{[s.m("center")]:t.center},t.customClass]),c=Y3(u,i),h=k(()=>t.draggable);return K3(i,a,h),(d,v)=>(G(),ce("div",{ref:T(c),class:re(T(f)),style:ct(T(l)),tabindex:"-1"},[te("header",{ref_key:"headerRef",ref:a,class:re(T(s).e("header"))},[Ce(d.$slots,"header",{},()=>[te("span",{role:"heading","aria-level":d.ariaLevel,class:re(T(s).e("title"))},xe(d.title),11,r6)]),d.showClose?(G(),ce("button",{key:0,"aria-label":T(r)("el.dialog.close"),class:re(T(s).e("headerbtn")),type:"button",onClick:v[0]||(v[0]=p=>d.$emit("close"))},[Z(T(Bt),{class:re(T(s).e("close"))},{default:q(()=>[(G(),ve(Vt(d.closeIcon||T(n))))]),_:1},8,["class"])],10,n6)):Ae("v-if",!0)],2),te("div",{id:T(o),class:re(T(s).e("body"))},[Ce(d.$slots,"default")],10,i6),d.$slots.footer?(G(),ce("footer",{key:0,class:re(T(s).e("footer"))},[Ce(d.$slots,"footer")],2)):Ae("v-if",!0)],6))}});var s6=Ke(o6,[["__file","dialog-content.vue"]]);const l6=Je({...zA,appendToBody:Boolean,appendTo:{type:Be(String),default:"body"},beforeClose:{type:Be(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1},headerAriaLevel:{type:String,default:"2"}}),u6={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[wi]:e=>zr(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},f6=(e,t)=>{var r;const i=it().emit,{nextZIndex:a}=zy();let o="";const s=xu(),l=xu(),u=$(!1),f=$(!1),c=$(!1),h=$((r=e.zIndex)!=null?r:a());let d,v;const p=hh("namespace",Bl),m=k(()=>{const N={},H=`--${p.value}-dialog`;return e.fullscreen||(e.top&&(N[`${H}-margin-top`]=e.top),e.width&&(N[`${H}-width`]=Zn(e.width))),N}),g=k(()=>e.alignCenter?{display:"flex"}:{});function y(){i("opened")}function _(){i("closed"),i(wi,!1),e.destroyOnClose&&(c.value=!1)}function b(){i("close")}function x(){v==null||v(),d==null||d(),e.openDelay&&e.openDelay>0?{stop:d}=hu(()=>M(),e.openDelay):M()}function w(){d==null||d(),v==null||v(),e.closeDelay&&e.closeDelay>0?{stop:v}=hu(()=>A(),e.closeDelay):A()}function S(){function N(H){H||(f.value=!0,u.value=!1)}e.beforeClose?e.beforeClose(N):w()}function C(){e.closeOnClickModal&&S()}function M(){At&&(u.value=!0)}function A(){u.value=!1}function P(){i("openAutoFocus")}function E(){i("closeAutoFocus")}function L(N){var H;((H=N.detail)==null?void 0:H.focusReason)==="pointer"&&N.preventDefault()}e.lockScroll&&t5(u);function O(){e.closeOnPressEscape&&S()}return be(()=>e.modelValue,N=>{N?(f.value=!1,x(),c.value=!0,h.value=MM(e.zIndex)?a():h.value++,Nt(()=>{i("open"),t.value&&(t.value.scrollTop=0)})):u.value&&w()}),be(()=>e.fullscreen,N=>{t.value&&(N?(o=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=o)}),_t(()=>{e.modelValue&&(u.value=!0,c.value=!0,x())}),{afterEnter:y,afterLeave:_,beforeLeave:b,handleClose:S,onModalClick:C,close:w,doClose:A,onOpenAutoFocus:P,onCloseAutoFocus:E,onCloseRequested:O,onFocusoutPrevented:L,titleId:s,bodyId:l,closed:f,style:m,overlayDialogStyle:g,rendered:c,visible:u,zIndex:h}},c6=["aria-label","aria-labelledby","aria-describedby"],d6=ie({name:"ElDialog",inheritAttrs:!1}),h6=ie({...d6,props:l6,emits:u6,setup(e,{expose:t}){const r=e,n=Ns();bu({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},k(()=>!!n.title)),bu({scope:"el-dialog",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/dialog.html#attributes",type:"Attribute"},k(()=>!!r.customClass));const i=Oe("dialog"),a=$(),o=$(),s=$(),{visible:l,titleId:u,bodyId:f,style:c,overlayDialogStyle:h,rendered:d,zIndex:v,afterEnter:p,afterLeave:m,beforeLeave:g,handleClose:y,onModalClick:_,onOpenAutoFocus:b,onCloseAutoFocus:x,onCloseRequested:w,onFocusoutPrevented:S}=f6(r,a);Dt(HA,{dialogRef:a,headerRef:o,bodyId:f,ns:i,rendered:d,style:c});const C=XM(_),M=k(()=>r.draggable&&!r.fullscreen);return t({visible:l,dialogContentRef:s}),(A,P)=>(G(),ve(MT,{to:A.appendTo,disabled:A.appendTo!=="body"?!1:!A.appendToBody},[Z(ti,{name:"dialog-fade",onAfterEnter:T(p),onAfterLeave:T(m),onBeforeLeave:T(g),persisted:""},{default:q(()=>[qt(Z(T(e6),{"custom-mask-event":"",mask:A.modal,"overlay-class":A.modalClass,"z-index":T(v)},{default:q(()=>[te("div",{role:"dialog","aria-modal":"true","aria-label":A.title||void 0,"aria-labelledby":A.title?void 0:T(u),"aria-describedby":T(f),class:re(`${T(i).namespace.value}-overlay-dialog`),style:ct(T(h)),onClick:P[0]||(P[0]=(...E)=>T(C).onClick&&T(C).onClick(...E)),onMousedown:P[1]||(P[1]=(...E)=>T(C).onMousedown&&T(C).onMousedown(...E)),onMouseup:P[2]||(P[2]=(...E)=>T(C).onMouseup&&T(C).onMouseup(...E))},[Z(T(mA),{loop:"",trapped:T(l),"focus-start-el":"container",onFocusAfterTrapped:T(b),onFocusAfterReleased:T(x),onFocusoutPrevented:T(S),onReleaseRequested:T(w)},{default:q(()=>[T(d)?(G(),ve(s6,ei({key:0,ref_key:"dialogContentRef",ref:s},A.$attrs,{"custom-class":A.customClass,center:A.center,"align-center":A.alignCenter,"close-icon":A.closeIcon,draggable:T(M),fullscreen:A.fullscreen,"show-close":A.showClose,title:A.title,"aria-level":A.headerAriaLevel,onClose:T(y)}),UI({header:q(()=>[A.$slots.title?Ce(A.$slots,"title",{key:1}):Ce(A.$slots,"header",{key:0,close:T(y),titleId:T(u),titleClass:T(i).e("title")})]),default:q(()=>[Ce(A.$slots,"default")]),_:2},[A.$slots.footer?{name:"footer",fn:q(()=>[Ce(A.$slots,"footer")])}:void 0]),1040,["custom-class","center","align-center","close-icon","draggable","fullscreen","show-close","title","aria-level","onClose"])):Ae("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,c6)]),_:3},8,["mask","overlay-class","z-index"]),[[Kn,T(l)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["to","disabled"]))}});var v6=Ke(h6,[["__file","dialog.vue"]]);const p6=Yt(v6),g6=Je({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:Be(String),default:"solid"}}),m6=ie({name:"ElDivider"}),y6=ie({...m6,props:g6,setup(e){const t=e,r=Oe("divider"),n=k(()=>r.cssVar({"border-style":t.borderStyle}));return(i,a)=>(G(),ce("div",{class:re([T(r).b(),T(r).m(i.direction)]),style:ct(T(n)),role:"separator"},[i.$slots.default&&i.direction!=="vertical"?(G(),ce("div",{key:0,class:re([T(r).e("text"),T(r).is(i.contentPosition)])},[Ce(i.$slots,"default")],2)):Ae("v-if",!0)],6))}});var _6=Ke(y6,[["__file","divider.vue"]]);const VA=Yt(_6);let b6=class{constructor(t,r){this.parent=t,this.domNode=r,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,r=>{r.addEventListener("keydown",n=>{let i=!1;switch(n.code){case hr.down:{this.gotoSubIndex(this.subIndex+1),i=!0;break}case hr.up:{this.gotoSubIndex(this.subIndex-1),i=!0;break}case hr.tab:{Ac(t,"mouseleave");break}case hr.enter:case hr.space:{i=!0,n.currentTarget.click();break}}return i&&(n.preventDefault(),n.stopPropagation()),!1})})}},w6=class{constructor(t,r){this.domNode=t,this.submenu=null,this.submenu=null,this.init(r)}init(t){this.domNode.setAttribute("tabindex","0");const r=this.domNode.querySelector(`.${t}-menu`);r&&(this.submenu=new b6(this,r)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let r=!1;switch(t.code){case hr.down:{Ac(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),r=!0;break}case hr.up:{Ac(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),r=!0;break}case hr.tab:{Ac(t.currentTarget,"mouseleave");break}case hr.enter:case hr.space:{r=!0,t.currentTarget.click();break}}r&&t.preventDefault()})}},S6=class{constructor(t,r){this.domNode=t,this.init(r)}init(t){const r=this.domNode.childNodes;Array.from(r).forEach(n=>{n.nodeType===1&&new w6(n,t)})}};const x6=ie({name:"ElMenuCollapseTransition",setup(){const e=Oe("menu");return{listeners:{onBeforeEnter:r=>r.style.opacity="0.2",onEnter(r,n){Za(r,`${e.namespace.value}-opacity-transition`),r.style.opacity="1",n()},onAfterEnter(r){so(r,`${e.namespace.value}-opacity-transition`),r.style.opacity=""},onBeforeLeave(r){r.dataset||(r.dataset={}),oo(r,e.m("collapse"))?(so(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),Za(r,e.m("collapse"))):(Za(r,e.m("collapse")),r.dataset.oldOverflow=r.style.overflow,r.dataset.scrollWidth=r.clientWidth.toString(),so(r,e.m("collapse"))),r.style.width=`${r.scrollWidth}px`,r.style.overflow="hidden"},onLeave(r){Za(r,"horizontal-collapse-transition"),r.style.width=`${r.dataset.scrollWidth}px`}}}}});function C6(e,t,r,n,i,a){return G(),ve(ti,ei({mode:"out-in"},e.listeners),{default:q(()=>[Ce(e.$slots,"default")]),_:3},16)}var T6=Ke(x6,[["render",C6],["__file","menu-collapse-transition.vue"]]);function WA(e,t){const r=k(()=>{let i=e.parent;const a=[t.value];for(;i.type.name!=="ElMenu";)i.props.index&&a.unshift(i.props.index),i=i.parent;return a});return{parentMenu:k(()=>{let i=e.parent;for(;i&&!["ElMenu","ElSubMenu"].includes(i.type.name);)i=i.parent;return i}),indexPath:r}}function M6(e){return k(()=>{const r=e.backgroundColor;return r?new SA(r).shade(20).toString():""})}const GA=(e,t)=>{const r=Oe("menu");return k(()=>r.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":M6(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},A6=Je({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:vr},expandOpenIcon:{type:vr},collapseCloseIcon:{type:vr},collapseOpenIcon:{type:vr}}),Of="ElSubMenu";var jy=ie({name:Of,props:A6,setup(e,{slots:t,expose:r}){bu({from:"popper-append-to-body",replacement:"teleported",scope:Of,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},k(()=>e.popperAppendToBody!==void 0));const n=it(),{indexPath:i,parentMenu:a}=WA(n,k(()=>e.index)),o=Oe("menu"),s=Oe("sub-menu"),l=Le("rootMenu");l||bi(Of,"can not inject root menu");const u=Le(`subMenu:${a.value.uid}`);u||bi(Of,"can not inject sub menu");const f=$({}),c=$({});let h;const d=$(!1),v=$(),p=$(null),m=k(()=>C.value==="horizontal"&&y.value?"bottom-start":"right-start"),g=k(()=>C.value==="horizontal"&&y.value||C.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:EM:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:Ey),y=k(()=>u.level===0),_=k(()=>{var z;const ee=(z=e.teleported)!=null?z:e.popperAppendToBody;return ee===void 0?y.value:ee}),b=k(()=>l.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),x=k(()=>C.value==="horizontal"&&y.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),w=k(()=>l.openedMenus.includes(e.index)),S=k(()=>{let z=!1;return Object.values(f.value).forEach(ee=>{ee.active&&(z=!0)}),Object.values(c.value).forEach(ee=>{ee.active&&(z=!0)}),z}),C=k(()=>l.props.mode),M=Ln({index:e.index,indexPath:i,active:S}),A=GA(l.props,u.level+1),P=k(()=>{var z;return(z=e.popperOffset)!=null?z:l.props.popperOffset}),E=k(()=>{var z;return(z=e.popperClass)!=null?z:l.props.popperClass}),L=k(()=>{var z;return(z=e.showTimeout)!=null?z:l.props.showTimeout}),O=k(()=>{var z;return(z=e.hideTimeout)!=null?z:l.props.hideTimeout}),N=()=>{var z,ee,J;return(J=(ee=(z=p.value)==null?void 0:z.popperRef)==null?void 0:ee.popperInstanceRef)==null?void 0:J.destroy()},H=z=>{z||N()},V=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:i.value,active:S.value})},U=(z,ee=L.value)=>{var J;if(z.type!=="focus"){if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled){u.mouseInChild.value=!0;return}u.mouseInChild.value=!0,h==null||h(),{stop:h}=hu(()=>{l.openMenu(e.index,i.value)},ee),_.value&&((J=a.value.vnode.el)==null||J.dispatchEvent(new MouseEvent("mouseenter")))}},F=(z=!1)=>{var ee;if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"){u.mouseInChild.value=!1;return}h==null||h(),u.mouseInChild.value=!1,{stop:h}=hu(()=>!d.value&&l.closeMenu(e.index,i.value),O.value),_.value&&z&&((ee=u.handleMouseleave)==null||ee.call(u,!0))};be(()=>l.props.collapse,z=>H(!!z));{const z=J=>{c.value[J.index]=J},ee=J=>{delete c.value[J.index]};Dt(`subMenu:${n.uid}`,{addSubMenu:z,removeSubMenu:ee,handleMouseleave:F,mouseInChild:d,level:u.level+1})}return r({opened:w}),_t(()=>{l.addSubMenu(M),u.addSubMenu(M)}),tr(()=>{u.removeSubMenu(M),l.removeSubMenu(M)}),()=>{var z;const ee=[(z=t.title)==null?void 0:z.call(t),Te(Bt,{class:s.e("icon-arrow"),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>ze(g.value)?Te(n.appContext.components[g.value]):Te(g.value)})],J=l.isMenuPopup?Te(Vs,{ref:p,visible:w.value,effect:"light",pure:!0,offset:P.value,showArrow:!1,persistent:!0,popperClass:E.value,placement:m.value,teleported:_.value,fallbackPlacements:x.value,transition:b.value,gpuAcceleration:!1},{content:()=>{var me;return Te("div",{class:[o.m(C.value),o.m("popup-container"),E.value],onMouseenter:we=>U(we,100),onMouseleave:()=>F(!0),onFocus:we=>U(we,100)},[Te("ul",{class:[o.b(),o.m("popup"),o.m(`popup-${m.value}`)],style:A.value},[(me=t.default)==null?void 0:me.call(t)])])},default:()=>Te("div",{class:s.e("title"),onClick:V},ee)}):Te(ft,{},[Te("div",{class:s.e("title"),ref:v,onClick:V},ee),Te(K8,{},{default:()=>{var me;return qt(Te("ul",{role:"menu",class:[o.b(),o.m("inline")],style:A.value},[(me=t.default)==null?void 0:me.call(t)]),[[Kn,w.value]])}})]);return Te("li",{class:[s.b(),s.is("active",S.value),s.is("opened",w.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:U,onMouseleave:()=>F(),onFocus:U},[J])}}});const P6=Je({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Be(Array),default:()=>ja([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:vr,default:()=>B3},popperEffect:{type:String,values:["dark","light"],default:"dark"},popperClass:String,showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300}}),uv=e=>Array.isArray(e)&&e.every(t=>ze(t)),E6={close:(e,t)=>ze(e)&&uv(t),open:(e,t)=>ze(e)&&uv(t),select:(e,t,r,n)=>ze(e)&&uv(t)&&qe(r)&&(n===void 0||n instanceof Promise)};var L6=ie({name:"ElMenu",props:P6,emits:E6,setup(e,{emit:t,slots:r,expose:n}){const i=it(),a=i.appContext.config.globalProperties.$router,o=$(),s=Oe("menu"),l=Oe("sub-menu"),u=$(-1),f=$(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),c=$(e.defaultActive),h=$({}),d=$({}),v=k(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),p=()=>{const L=c.value&&h.value[c.value];if(!L||e.mode==="horizontal"||e.collapse)return;L.indexPath.forEach(N=>{const H=d.value[N];H&&m(N,H.indexPath)})},m=(L,O)=>{f.value.includes(L)||(e.uniqueOpened&&(f.value=f.value.filter(N=>O.includes(N))),f.value.push(L),t("open",L,O))},g=L=>{const O=f.value.indexOf(L);O!==-1&&f.value.splice(O,1)},y=(L,O)=>{g(L),t("close",L,O)},_=({index:L,indexPath:O})=>{f.value.includes(L)?y(L,O):m(L,O)},b=L=>{(e.mode==="horizontal"||e.collapse)&&(f.value=[]);const{index:O,indexPath:N}=L;if(!(_s(O)||_s(N)))if(e.router&&a){const H=L.route||O,V=a.push(H).then(U=>(U||(c.value=O),U));t("select",O,N,{index:O,indexPath:N,route:H},V)}else c.value=O,t("select",O,N,{index:O,indexPath:N})},x=L=>{const O=h.value,N=O[L]||c.value&&O[c.value]||O[e.defaultActive];N?c.value=N.index:c.value=L},w=()=>{var L,O;if(!o.value)return-1;const N=Array.from((O=(L=o.value)==null?void 0:L.childNodes)!=null?O:[]).filter(J=>J.nodeName!=="#comment"&&(J.nodeName!=="#text"||J.nodeValue)),H=64,V=Number.parseInt(getComputedStyle(o.value).paddingLeft,10),U=Number.parseInt(getComputedStyle(o.value).paddingRight,10),F=o.value.clientWidth-V-U;let z=0,ee=0;return N.forEach((J,me)=>{z+=J.offsetWidth||0,z<=F-H&&(ee=me+1)}),ee===N.length?-1:ee},S=L=>d.value[L].indexPath,C=(L,O=33.34)=>{let N;return()=>{N&&clearTimeout(N),N=setTimeout(()=>{L()},O)}};let M=!0;const A=()=>{const L=()=>{u.value=-1,Nt(()=>{u.value=w()})};M?L():C(L)(),M=!1};be(()=>e.defaultActive,L=>{h.value[L]||(c.value=""),x(L)}),be(()=>e.collapse,L=>{L&&(f.value=[])}),be(h.value,p);let P;na(()=>{e.mode==="horizontal"&&e.ellipsis?P=ms(o,A).stop:P==null||P()});const E=$(!1);{const L=V=>{d.value[V.index]=V},O=V=>{delete d.value[V.index]};Dt("rootMenu",Ln({props:e,openedMenus:f,items:h,subMenus:d,activeIndex:c,isMenuPopup:v,addMenuItem:V=>{h.value[V.index]=V},removeMenuItem:V=>{delete h.value[V.index]},addSubMenu:L,removeSubMenu:O,openMenu:m,closeMenu:y,handleMenuItemClick:b,handleSubMenuClick:_})),Dt(`subMenu:${i.uid}`,{addSubMenu:L,removeSubMenu:O,mouseInChild:E,level:0})}return _t(()=>{e.mode==="horizontal"&&new S6(i.vnode.el,s.namespace.value)}),n({open:O=>{const{indexPath:N}=d.value[O];N.forEach(H=>m(H,N))},close:g,handleResize:A}),()=>{var L,O;let N=(O=(L=r.default)==null?void 0:L.call(r))!=null?O:[];const H=[];if(e.mode==="horizontal"&&o.value){const z=Dc(N),ee=u.value===-1?z:z.slice(0,u.value),J=u.value===-1?[]:z.slice(u.value);J!=null&&J.length&&e.ellipsis&&(N=ee,H.push(Te(jy,{index:"sub-menu-more",class:l.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>Te(Bt,{class:l.e("icon-more")},{default:()=>Te(e.ellipsisIcon)}),default:()=>J})))}const V=GA(e,0),U=e.closeOnClickOutside?[[CA,()=>{f.value.length&&(E.value||(f.value.forEach(z=>t("close",z,S(z))),f.value=[]))}]]:[],F=qt(Te("ul",{key:String(e.collapse),role:"menubar",ref:o,style:V.value,class:{[s.b()]:!0,[s.m(e.mode)]:!0,[s.m("collapse")]:e.collapse}},[...N,...H]),U);return e.collapseTransition&&e.mode==="vertical"?Te(T6,()=>F):F}}});const D6=Je({index:{type:Be([String,null]),default:null},route:{type:Be([String,Object])},disabled:Boolean}),I6={click:e=>ze(e.index)&&Array.isArray(e.indexPath)},fv="ElMenuItem",O6=ie({name:fv,components:{ElTooltip:Vs},props:D6,emits:I6,setup(e,{emit:t}){const r=it(),n=Le("rootMenu"),i=Oe("menu"),a=Oe("menu-item");n||bi(fv,"can not inject root menu");const{parentMenu:o,indexPath:s}=WA(r,wn(e,"index")),l=Le(`subMenu:${o.value.uid}`);l||bi(fv,"can not inject sub menu");const u=k(()=>e.index===n.activeIndex),f=Ln({index:e.index,indexPath:s,active:u}),c=()=>{e.disabled||(n.handleMenuItemClick({index:e.index,indexPath:s.value,route:e.route}),t("click",f))};return _t(()=>{l.addSubMenu(f),n.addMenuItem(f)}),tr(()=>{l.removeSubMenu(f),n.removeMenuItem(f)}),{parentMenu:o,rootMenu:n,active:u,nsMenu:i,nsMenuItem:a,handleClick:c}}});function R6(e,t,r,n,i,a){const o=xr("el-tooltip");return G(),ce("li",{class:re([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(G(),ve(o,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:q(()=>[Ce(e.$slots,"title")]),default:q(()=>[te("div",{class:re(e.nsMenu.be("tooltip","trigger"))},[Ce(e.$slots,"default")],2)]),_:3},8,["effect"])):(G(),ce(ft,{key:1},[Ce(e.$slots,"default"),Ce(e.$slots,"title")],64))],2)}var UA=Ke(O6,[["render",R6],["__file","menu-item.vue"]]);const k6={title:String},N6="ElMenuItemGroup",B6=ie({name:N6,props:k6,setup(){return{ns:Oe("menu-item-group")}}});function F6(e,t,r,n,i,a){return G(),ce("li",{class:re(e.ns.b())},[te("div",{class:re(e.ns.e("title"))},[e.$slots.title?Ce(e.$slots,"title",{key:1}):(G(),ce(ft,{key:0},[pt(xe(e.title),1)],64))],2),te("ul",null,[Ce(e.$slots,"default")])],2)}var YA=Ke(B6,[["render",F6],["__file","menu-item-group.vue"]]);const $6=Yt(L6,{MenuItem:UA,MenuItemGroup:YA,SubMenu:jy}),H6=pa(UA);pa(YA);const z6=pa(jy),V6=Je({icon:{type:vr,default:()=>D3},title:String,content:{type:String,default:""}}),W6={back:()=>!0},G6=["aria-label"],U6=ie({name:"ElPageHeader"}),Y6=ie({...U6,props:V6,emits:W6,setup(e,{emit:t}){const r=Ns(),{t:n}=Hs(),i=Oe("page-header"),a=k(()=>[i.b(),{[i.m("has-breadcrumb")]:!!r.breadcrumb,[i.m("has-extra")]:!!r.extra,[i.is("contentful")]:!!r.default}]);function o(){t("back")}return(s,l)=>(G(),ce("div",{class:re(T(a))},[s.$slots.breadcrumb?(G(),ce("div",{key:0,class:re(T(i).e("breadcrumb"))},[Ce(s.$slots,"breadcrumb")],2)):Ae("v-if",!0),te("div",{class:re(T(i).e("header"))},[te("div",{class:re(T(i).e("left"))},[te("div",{class:re(T(i).e("back")),role:"button",tabindex:"0",onClick:o},[s.icon||s.$slots.icon?(G(),ce("div",{key:0,"aria-label":s.title||T(n)("el.pageHeader.title"),class:re(T(i).e("icon"))},[Ce(s.$slots,"icon",{},()=>[s.icon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(s.icon)))]),_:1})):Ae("v-if",!0)])],10,G6)):Ae("v-if",!0),te("div",{class:re(T(i).e("title"))},[Ce(s.$slots,"title",{},()=>[pt(xe(s.title||T(n)("el.pageHeader.title")),1)])],2)],2),Z(T(VA),{direction:"vertical"}),te("div",{class:re(T(i).e("content"))},[Ce(s.$slots,"content",{},()=>[pt(xe(s.content),1)])],2)],2),s.$slots.extra?(G(),ce("div",{key:0,class:re(T(i).e("extra"))},[Ce(s.$slots,"extra")],2)):Ae("v-if",!0)],2),s.$slots.default?(G(),ce("div",{key:1,class:re(T(i).e("main"))},[Ce(s.$slots,"default")],2)):Ae("v-if",!0)],2))}});var j6=Ke(Y6,[["__file","page-header.vue"]]);const q6=Yt(j6),K6=Je({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:pg,default:"primary"},cancelButtonType:{type:String,values:pg,default:"text"},icon:{type:vr,default:()=>$3},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1},hideAfter:{type:Number,default:200},teleported:md.teleported,persistent:md.persistent,width:{type:[String,Number],default:150}}),X6={confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},Z6=ie({name:"ElPopconfirm"}),Q6=ie({...Z6,props:K6,emits:X6,setup(e,{emit:t}){const r=e,{t:n}=Hs(),i=Oe("popconfirm"),a=$(),o=()=>{var h,d;(d=(h=a.value)==null?void 0:h.onClose)==null||d.call(h)},s=k(()=>({width:Zn(r.width)})),l=h=>{t("confirm",h),o()},u=h=>{t("cancel",h),o()},f=k(()=>r.confirmButtonText||n("el.popconfirm.confirmButtonText")),c=k(()=>r.cancelButtonText||n("el.popconfirm.cancelButtonText"));return(h,d)=>(G(),ve(T(Vs),ei({ref_key:"tooltipRef",ref:a,trigger:"click",effect:"light"},h.$attrs,{"popper-class":`${T(i).namespace.value}-popover`,"popper-style":T(s),teleported:h.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":h.hideAfter,persistent:h.persistent}),{content:q(()=>[te("div",{class:re(T(i).b())},[te("div",{class:re(T(i).e("main"))},[!h.hideIcon&&h.icon?(G(),ve(T(Bt),{key:0,class:re(T(i).e("icon")),style:ct({color:h.iconColor})},{default:q(()=>[(G(),ve(Vt(h.icon)))]),_:1},8,["class","style"])):Ae("v-if",!0),pt(" "+xe(h.title),1)],2),te("div",{class:re(T(i).e("action"))},[Z(T(yg),{size:"small",type:h.cancelButtonType==="text"?"":h.cancelButtonType,text:h.cancelButtonType==="text",onClick:u},{default:q(()=>[pt(xe(T(c)),1)]),_:1},8,["type","text"]),Z(T(yg),{size:"small",type:h.confirmButtonType==="text"?"":h.confirmButtonType,text:h.confirmButtonType==="text",onClick:l},{default:q(()=>[pt(xe(T(f)),1)]),_:1},8,["type","text"])],2)],2)]),default:q(()=>[h.$slots.reference?Ce(h.$slots,"reference",{key:0}):Ae("v-if",!0)]),_:3},16,["popper-class","popper-style","teleported","hide-after","persistent"]))}});var J6=Ke(Q6,[["__file","popconfirm.vue"]]);const eV=Yt(J6),tV=Je({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},size:{type:String,validator:j3},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},inactiveActionIcon:{type:vr},activeActionIcon:{type:vr},activeIcon:{type:vr},inactiveIcon:{type:vr},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Be(Function)},id:String,tabindex:{type:[String,Number]},value:{type:[Boolean,String,Number],default:!1},label:{type:String,default:void 0}}),rV={[wi]:e=>zr(e)||ze(e)||kt(e),[sg]:e=>zr(e)||ze(e)||kt(e),[lg]:e=>zr(e)||ze(e)||kt(e)},nV=["onClick"],iV=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"],aV=["aria-hidden"],oV=["aria-hidden"],sV=["aria-hidden"],Ag="ElSwitch",lV=ie({name:Ag}),uV=ie({...lV,props:tV,emits:rV,setup(e,{expose:t,emit:r}){const n=e,i=it(),{formItem:a}=tf(),o=xi(),s=Oe("switch");(C=>{C.forEach(M=>{bu({from:M[0],replacement:M[1],scope:Ag,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},k(()=>{var A;return!!((A=i.vnode.props)!=null&&A[M[2]])}))})})([['"value"','"model-value" or "v-model"',"value"],['"active-color"',"CSS var `--el-switch-on-color`","activeColor"],['"inactive-color"',"CSS var `--el-switch-off-color`","inactiveColor"],['"border-color"',"CSS var `--el-switch-border-color`","borderColor"]]);const{inputId:u}=Vy(n,{formItemContext:a}),f=vh(k(()=>n.loading)),c=$(n.modelValue!==!1),h=$(),d=$(),v=k(()=>[s.b(),s.m(o.value),s.is("disabled",f.value),s.is("checked",_.value)]),p=k(()=>[s.e("label"),s.em("label","left"),s.is("active",!_.value)]),m=k(()=>[s.e("label"),s.em("label","right"),s.is("active",_.value)]),g=k(()=>({width:Zn(n.width)}));be(()=>n.modelValue,()=>{c.value=!0}),be(()=>n.value,()=>{c.value=!1});const y=k(()=>c.value?n.modelValue:n.value),_=k(()=>y.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(y.value)||(r(wi,n.inactiveValue),r(sg,n.inactiveValue),r(lg,n.inactiveValue)),be(_,C=>{var M;h.value.checked=C,n.validateEvent&&((M=a==null?void 0:a.validate)==null||M.call(a,"change").catch(A=>void 0))});const b=()=>{const C=_.value?n.inactiveValue:n.activeValue;r(wi,C),r(sg,C),r(lg,C),Nt(()=>{h.value.checked=_.value})},x=()=>{if(f.value)return;const{beforeChange:C}=n;if(!C){b();return}const M=C();[Qc(M),zr(M)].includes(!0)||bi(Ag,"beforeChange must return type `Promise` or `boolean`"),Qc(M)?M.then(P=>{P&&b()}).catch(P=>{}):M&&b()},w=k(()=>s.cssVarBlock({...n.activeColor?{"on-color":n.activeColor}:null,...n.inactiveColor?{"off-color":n.inactiveColor}:null,...n.borderColor?{"border-color":n.borderColor}:null})),S=()=>{var C,M;(M=(C=h.value)==null?void 0:C.focus)==null||M.call(C)};return _t(()=>{h.value.checked=_.value}),t({focus:S,checked:_}),(C,M)=>(G(),ce("div",{class:re(T(v)),style:ct(T(w)),onClick:ua(x,["prevent"])},[te("input",{id:T(u),ref_key:"input",ref:h,class:re(T(s).e("input")),type:"checkbox",role:"switch","aria-checked":T(_),"aria-disabled":T(f),"aria-label":C.label,name:C.name,"true-value":C.activeValue,"false-value":C.inactiveValue,disabled:T(f),tabindex:C.tabindex,onChange:b,onKeydown:iR(x,["enter"])},null,42,iV),!C.inlinePrompt&&(C.inactiveIcon||C.inactiveText)?(G(),ce("span",{key:0,class:re(T(p))},[C.inactiveIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.inactiveIcon)))]),_:1})):Ae("v-if",!0),!C.inactiveIcon&&C.inactiveText?(G(),ce("span",{key:1,"aria-hidden":T(_)},xe(C.inactiveText),9,aV)):Ae("v-if",!0)],2)):Ae("v-if",!0),te("span",{ref_key:"core",ref:d,class:re(T(s).e("core")),style:ct(T(g))},[C.inlinePrompt?(G(),ce("div",{key:0,class:re(T(s).e("inner"))},[C.activeIcon||C.inactiveIcon?(G(),ve(T(Bt),{key:0,class:re(T(s).is("icon"))},{default:q(()=>[(G(),ve(Vt(T(_)?C.activeIcon:C.inactiveIcon)))]),_:1},8,["class"])):C.activeText||C.inactiveText?(G(),ce("span",{key:1,class:re(T(s).is("text")),"aria-hidden":!T(_)},xe(T(_)?C.activeText:C.inactiveText),11,oV)):Ae("v-if",!0)],2)):Ae("v-if",!0),te("div",{class:re(T(s).e("action"))},[C.loading?(G(),ve(T(Bt),{key:0,class:re(T(s).is("loading"))},{default:q(()=>[Z(T(Ly))]),_:1},8,["class"])):T(_)?Ce(C.$slots,"active-action",{key:1},()=>[C.activeActionIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.activeActionIcon)))]),_:1})):Ae("v-if",!0)]):T(_)?Ae("v-if",!0):Ce(C.$slots,"inactive-action",{key:2},()=>[C.inactiveActionIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.inactiveActionIcon)))]),_:1})):Ae("v-if",!0)])],2)],6),!C.inlinePrompt&&(C.activeIcon||C.activeText)?(G(),ce("span",{key:1,class:re(T(m))},[C.activeIcon?(G(),ve(T(Bt),{key:0},{default:q(()=>[(G(),ve(Vt(C.activeIcon)))]),_:1})):Ae("v-if",!0),!C.activeIcon&&C.activeText?(G(),ce("span",{key:1,"aria-hidden":!T(_)},xe(C.activeText),9,sV)):Ae("v-if",!0)],2)):Ae("v-if",!0)],14,nV))}});var fV=Ke(uV,[["__file","switch.vue"]]);const cV=Yt(fV),cv=function(e){var t;return(t=e.target)==null?void 0:t.closest("td")},dV=function(e,t,r,n,i){if(!t&&!n&&(!i||Array.isArray(i)&&!i.length))return e;typeof r=="string"?r=r==="descending"?-1:1:r=r&&r<0?-1:1;const a=n?null:function(s,l){return i?(Array.isArray(i)||(i=[i]),i.map(u=>typeof u=="string"?yu(s,u):u(s,l,e))):(t!=="$key"&&qe(s)&&"$value"in s&&(s=s.$value),[qe(s)?yu(s,t):s])},o=function(s,l){if(n)return n(s.value,l.value);for(let u=0,f=s.key.length;ul.key[u])return 1}return 0};return e.map((s,l)=>({value:s,index:l,key:a?a(s,l):null})).sort((s,l)=>{let u=o(s,l);return u||(u=s.index-l.index),u*+r}).map(s=>s.value)},jA=function(e,t){let r=null;return e.columns.forEach(n=>{n.id===t&&(r=n)}),r},hV=function(e,t){let r=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const r=t.split(".");let n=e;for(const i of r)n=n[i];return`${n}`}else if(typeof t=="function")return t.call(null,e)},eo=function(e,t){const r={};return(e||[]).forEach((n,i)=>{r[Jt(n,t)]={row:n,index:i}}),r};function vV(e,t){const r={};let n;for(n in e)r[n]=e[n];for(n in t)if(Ue(t,n)){const i=t[n];typeof i<"u"&&(r[n]=i)}return r}function qy(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function qA(e){return e===""||e!==void 0&&(e=qy(e),Number.isNaN(e)&&(e=80)),e}function pV(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function gV(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function zl(e,t,r){let n=!1;const i=e.indexOf(t),a=i!==-1,o=s=>{s==="add"?e.push(t):e.splice(i,1),n=!0,_e(t.children)&&t.children.forEach(l=>{zl(e,l,r??!a)})};return zr(r)?r&&!a?o("add"):!r&&a&&o("remove"):o(a?"remove":"add"),n}function mV(e,t,r="children",n="hasChildren"){const i=o=>!(Array.isArray(o)&&o.length);function a(o,s,l){t(o,s,l),s.forEach(u=>{if(u[n]){t(u,null,l+1);return}const f=u[r];i(f)||a(u,f,l+1)})}e.forEach(o=>{if(o[n]){t(o,null,0);return}const s=o[r];i(s)||a(o,s,0)})}let Xr=null;function yV(e,t,r,n){if((Xr==null?void 0:Xr.trigger)===r)return;Xr==null||Xr();const i=n==null?void 0:n.refs.tableWrapper,a=i==null?void 0:i.dataset.prefix,o={strategy:"fixed",...e.popperOptions},s=Z(Vs,{content:t,virtualTriggering:!0,virtualRef:r,appendTo:i,placement:"top",transition:"none",offset:0,hideAfter:0,...e,popperOptions:o,onHide:()=>{Xr==null||Xr()}});s.appContext=n.appContext;const l=document.createElement("div");ld(s,l),s.component.exposed.onOpen();const u=i==null?void 0:i.querySelector(`.${a}-scrollbar__wrap`);Xr=()=>{ld(null,l),u==null||u.removeEventListener("scroll",Xr),Xr=null},Xr.trigger=r,u==null||u.addEventListener("scroll",Xr)}function KA(e){return e.children?v3(e.children,KA):[e]}function D1(e,t){return e+t.colSpan}const XA=(e,t,r,n)=>{let i=0,a=e;const o=r.states.columns.value;if(n){const l=KA(n[e]);i=o.slice(0,o.indexOf(l[0])).reduce(D1,0),a=i+l.reduce(D1,0)-1}else i=e;let s;switch(t){case"left":a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:a=o.length-r.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:i,after:a}:{}},Ky=(e,t,r,n,i,a=0)=>{const o=[],{direction:s,start:l,after:u}=XA(t,r,n,i);if(s){const f=s==="left";o.push(`${e}-fixed-column--${s}`),f&&u+a===n.states.fixedLeafColumnsLength.value-1?o.push("is-last-column"):!f&&l-a===n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value&&o.push("is-first-column")}return o};function I1(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Xy=(e,t,r,n)=>{const{direction:i,start:a=0,after:o=0}=XA(e,t,r,n);if(!i)return;const s={},l=i==="left",u=r.states.columns.value;return l?s.left=u.slice(0,a).reduce(I1,0):s.right=u.slice(o+1).reverse().reduce(I1,0),s},As=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function _V(e){const t=it(),r=$(!1),n=$([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(r.value)n.value=l.slice();else if(u){const f=eo(n.value,u);n.value=l.reduce((c,h)=>{const d=Jt(h,u);return f[d]&&c.push(h),c},[])}else n.value=[]},toggleRowExpansion:(l,u)=>{zl(n.value,l,u)&&t.emit("expand-change",l,n.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],f=e.rowKey.value,c=eo(u,f);n.value=l.reduce((h,d)=>{const v=c[d];return v&&h.push(v.row),h},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!eo(n.value,u)[Jt(l,u)]:n.value.includes(l)},states:{expandRows:n,defaultExpandAll:r}}}function bV(e){const t=it(),r=$(null),n=$(null),i=u=>{t.store.assertRowKey(),r.value=u,o(u)},a=()=>{r.value=null},o=u=>{const{data:f,rowKey:c}=e;let h=null;c.value&&(h=(T(f)||[]).find(d=>Jt(d,c.value)===u)),n.value=h,t.emit("current-change",n.value,null)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:u=>{const f=n.value;if(u&&u!==f){n.value=u,t.emit("current-change",n.value,f);return}!u&&f&&(n.value=null,t.emit("current-change",null,f))},updateCurrentRowData:()=>{const u=e.rowKey.value,f=e.data.value||[],c=n.value;if(!f.includes(c)&&c){if(u){const h=Jt(c,u);o(h)}else n.value=null;n.value===null&&t.emit("current-change",null,c)}else r.value&&(o(r.value),a())},states:{_currentRowKey:r,currentRow:n}}}function wV(e){const t=$([]),r=$({}),n=$(16),i=$(!1),a=$({}),o=$("hasChildren"),s=$("children"),l=it(),u=k(()=>{if(!e.rowKey.value)return{};const g=e.data.value||[];return c(g)}),f=k(()=>{const g=e.rowKey.value,y=Object.keys(a.value),_={};return y.length&&y.forEach(b=>{if(a.value[b].length){const x={children:[]};a.value[b].forEach(w=>{const S=Jt(w,g);x.children.push(S),w[o.value]&&!_[S]&&(_[S]={children:[]})}),_[b]=x}}),_}),c=g=>{const y=e.rowKey.value,_={};return mV(g,(b,x,w)=>{const S=Jt(b,y);Array.isArray(x)?_[S]={children:x.map(C=>Jt(C,y)),level:w}:i.value&&(_[S]={children:[],lazy:!0,level:w})},s.value,o.value),_},h=(g=!1,y=(_=>(_=l.store)==null?void 0:_.states.defaultExpandAll.value)())=>{var _;const b=u.value,x=f.value,w=Object.keys(b),S={};if(w.length){const C=T(r),M=[],A=(E,L)=>{if(g)return t.value?y||t.value.includes(L):!!(y||E!=null&&E.expanded);{const O=y||t.value&&t.value.includes(L);return!!(E!=null&&E.expanded||O)}};w.forEach(E=>{const L=C[E],O={...b[E]};if(O.expanded=A(L,E),O.lazy){const{loaded:N=!1,loading:H=!1}=L||{};O.loaded=!!N,O.loading=!!H,M.push(E)}S[E]=O});const P=Object.keys(x);i.value&&P.length&&M.length&&P.forEach(E=>{const L=C[E],O=x[E].children;if(M.includes(E)){if(S[E].children.length!==0)throw new Error("[ElTable]children must be an empty array.");S[E].children=O}else{const{loaded:N=!1,loading:H=!1}=L||{};S[E]={lazy:!0,loaded:!!N,loading:!!H,expanded:A(L,E),children:O,level:""}}})}r.value=S,(_=l.store)==null||_.updateTableScrollY()};be(()=>t.value,()=>{h(!0)}),be(()=>u.value,()=>{h()}),be(()=>f.value,()=>{h()});const d=g=>{t.value=g,h()},v=(g,y)=>{l.store.assertRowKey();const _=e.rowKey.value,b=Jt(g,_),x=b&&r.value[b];if(b&&x&&"expanded"in x){const w=x.expanded;y=typeof y>"u"?!x.expanded:y,r.value[b].expanded=y,w!==y&&l.emit("expand-change",g,y),l.store.updateTableScrollY()}},p=g=>{l.store.assertRowKey();const y=e.rowKey.value,_=Jt(g,y),b=r.value[_];i.value&&b&&"loaded"in b&&!b.loaded?m(g,_,b):v(g,void 0)},m=(g,y,_)=>{const{load:b}=l.props;b&&!r.value[y].loaded&&(r.value[y].loading=!0,b(g,_,x=>{if(!Array.isArray(x))throw new TypeError("[ElTable] data must be an array");r.value[y].loading=!1,r.value[y].loaded=!0,r.value[y].expanded=!0,x.length&&(a.value[y]=x),l.emit("expand-change",g,!0)}))};return{loadData:m,loadOrToggle:p,toggleTreeExpansion:v,updateTreeExpandKeys:d,updateTreeData:h,normalize:c,states:{expandRowKeys:t,treeData:r,indent:n,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s}}}const SV=(e,t)=>{const r=t.sortingColumn;return!r||typeof r.sortable=="string"?e:dV(e,t.sortProp,t.sortOrder,r.sortMethod,r.sortBy)},Fc=e=>{const t=[];return e.forEach(r=>{r.children&&r.children.length>0?t.push.apply(t,Fc(r.children)):t.push(r)}),t};function xV(){var e;const t=it(),{size:r}=Kd((e=t.proxy)==null?void 0:e.$props),n=$(null),i=$([]),a=$([]),o=$(!1),s=$([]),l=$([]),u=$([]),f=$([]),c=$([]),h=$([]),d=$([]),v=$([]),p=[],m=$(0),g=$(0),y=$(0),_=$(!1),b=$([]),x=$(!1),w=$(!1),S=$(null),C=$({}),M=$(null),A=$(null),P=$(null),E=$(null),L=$(null);be(i,()=>t.state&&V(!1),{deep:!0});const O=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},N=he=>{var Pe;(Pe=he.children)==null||Pe.forEach(We=>{We.fixed=he.fixed,N(We)})},H=()=>{s.value.forEach(et=>{N(et)}),f.value=s.value.filter(et=>et.fixed===!0||et.fixed==="left"),c.value=s.value.filter(et=>et.fixed==="right"),f.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,f.value.unshift(s.value[0]));const he=s.value.filter(et=>!et.fixed);l.value=[].concat(f.value).concat(he).concat(c.value);const Pe=Fc(he),We=Fc(f.value),Ge=Fc(c.value);m.value=Pe.length,g.value=We.length,y.value=Ge.length,u.value=[].concat(We).concat(Pe).concat(Ge),o.value=f.value.length>0||c.value.length>0},V=(he,Pe=!1)=>{he&&H(),Pe?t.state.doLayout():t.state.debouncedUpdateLayout()},U=he=>b.value.includes(he),F=()=>{_.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},z=()=>{let he;if(n.value){he=[];const Pe=eo(b.value,n.value),We=eo(i.value,n.value);for(const Ge in Pe)Ue(Pe,Ge)&&!We[Ge]&&he.push(Pe[Ge].row)}else he=b.value.filter(Pe=>!i.value.includes(Pe));if(he.length){const Pe=b.value.filter(We=>!he.includes(We));b.value=Pe,t.emit("selection-change",Pe.slice())}},ee=()=>(b.value||[]).slice(),J=(he,Pe=void 0,We=!0)=>{if(zl(b.value,he,Pe)){const et=(b.value||[]).slice();We&&t.emit("select",et,he),t.emit("selection-change",et)}},me=()=>{var he,Pe;const We=w.value?!_.value:!(_.value||b.value.length);_.value=We;let Ge=!1,et=0;const zt=(Pe=(he=t==null?void 0:t.store)==null?void 0:he.states)==null?void 0:Pe.rowKey.value;i.value.forEach((gt,Kt)=>{const Yr=Kt+et;S.value?S.value.call(null,gt,Yr)&&zl(b.value,gt,We)&&(Ge=!0):zl(b.value,gt,We)&&(Ge=!0),et+=Ie(Jt(gt,zt))}),Ge&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},we=()=>{const he=eo(b.value,n.value);i.value.forEach(Pe=>{const We=Jt(Pe,n.value),Ge=he[We];Ge&&(b.value[Ge.index]=Pe)})},$e=()=>{var he,Pe,We;if(((he=i.value)==null?void 0:he.length)===0){_.value=!1;return}let Ge;n.value&&(Ge=eo(b.value,n.value));const et=function(Yr){return Ge?!!Ge[Jt(Yr,n.value)]:b.value.includes(Yr)};let zt=!0,gt=0,Kt=0;for(let Yr=0,AD=(i.value||[]).length;Yr{var Pe;if(!t||!t.store)return 0;const{treeData:We}=t.store.states;let Ge=0;const et=(Pe=We.value[he])==null?void 0:Pe.children;return et&&(Ge+=et.length,et.forEach(zt=>{Ge+=Ie(zt)})),Ge},B=(he,Pe)=>{Array.isArray(he)||(he=[he]);const We={};return he.forEach(Ge=>{C.value[Ge.id]=Pe,We[Ge.columnKey||Ge.id]=Pe}),We},Y=(he,Pe,We)=>{A.value&&A.value!==he&&(A.value.order=null),A.value=he,P.value=Pe,E.value=We},K=()=>{let he=T(a);Object.keys(C.value).forEach(Pe=>{const We=C.value[Pe];if(!We||We.length===0)return;const Ge=jA({columns:u.value},Pe);Ge&&Ge.filterMethod&&(he=he.filter(et=>We.some(zt=>Ge.filterMethod.call(null,zt,et,Ge))))}),M.value=he},Q=()=>{i.value=SV(M.value,{sortingColumn:A.value,sortProp:P.value,sortOrder:E.value})},oe=(he=void 0)=>{he&&he.filter||K(),Q()},pe=he=>{const{tableHeaderRef:Pe}=t.refs;if(!Pe)return;const We=Object.assign({},Pe.filterPanels),Ge=Object.keys(We);if(Ge.length)if(typeof he=="string"&&(he=[he]),Array.isArray(he)){const et=he.map(zt=>hV({columns:u.value},zt));Ge.forEach(zt=>{const gt=et.find(Kt=>Kt.id===zt);gt&&(gt.filteredValue=[])}),t.store.commit("filterChange",{column:et,values:[],silent:!0,multi:!0})}else Ge.forEach(et=>{const zt=u.value.find(gt=>gt.id===et);zt&&(zt.filteredValue=[])}),C.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},D=()=>{A.value&&(Y(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:I,toggleRowExpansion:W,updateExpandRows:X,states:j,isRowExpanded:le}=_V({data:i,rowKey:n}),{updateTreeExpandKeys:fe,toggleTreeExpansion:ae,updateTreeData:se,loadOrToggle:ne,states:de}=wV({data:i,rowKey:n}),{updateCurrentRowData:Me,updateCurrentRow:Se,setCurrentRowKey:ke,states:Ve}=bV({data:i,rowKey:n});return{assertRowKey:O,updateColumns:H,scheduleLayout:V,isSelected:U,clearSelection:F,cleanSelection:z,getSelectionRows:ee,toggleRowSelection:J,_toggleAllSelection:me,toggleAllSelection:null,updateSelectionByRowKey:we,updateAllSelected:$e,updateFilters:B,updateCurrentRow:Se,updateSort:Y,execFilter:K,execSort:Q,execQuery:oe,clearFilter:pe,clearSort:D,toggleRowExpansion:W,setExpandRowKeysAdapter:he=>{I(he),fe(he)},setCurrentRowKey:ke,toggleRowExpansionAdapter:(he,Pe)=>{u.value.some(({type:Ge})=>Ge==="expand")?W(he,Pe):ae(he,Pe)},isRowExpanded:le,updateExpandRows:X,updateCurrentRowData:Me,loadOrToggle:ne,updateTreeData:se,states:{tableSize:r,rowKey:n,data:i,_data:a,isComplex:o,_columns:s,originColumns:l,columns:u,fixedColumns:f,rightFixedColumns:c,leafColumns:h,fixedLeafColumns:d,rightFixedLeafColumns:v,updateOrderFns:p,leafColumnsLength:m,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:y,isAllSelected:_,selection:b,reserveSelection:x,selectOnIndeterminate:w,selectable:S,filters:C,filteredData:M,sortingColumn:A,sortProp:P,sortOrder:E,hoverRow:L,...j,...de,...Ve}}}function Pg(e,t){return e.map(r=>{var n;return r.id===t.id?t:((n=r.children)!=null&&n.length&&(r.children=Pg(r.children,t)),r)})}function Eg(e){e.forEach(t=>{var r,n;t.no=(r=t.getColumnIndex)==null?void 0:r.call(t),(n=t.children)!=null&&n.length&&Eg(t.children)}),e.sort((t,r)=>t.no-r.no)}function CV(){const e=it(),t=xV();return{ns:Oe("table"),...t,mutations:{setData(o,s){const l=T(o._data)!==s;o.data.value=s,o._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),T(o.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(o,s,l,u){const f=T(o._columns);let c=[];l?(l&&!l.children&&(l.children=[]),l.children.push(s),c=Pg(f,l)):(f.push(s),c=f),Eg(c),o._columns.value=c,o.updateOrderFns.push(u),s.type==="selection"&&(o.selectable.value=s.selectable,o.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(o,s){var l;((l=s.getColumnIndex)==null?void 0:l.call(s))!==s.no&&(Eg(o._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(o,s,l,u){const f=T(o._columns)||[];if(l)l.children.splice(l.children.findIndex(h=>h.id===s.id),1),Nt(()=>{var h;((h=l.children)==null?void 0:h.length)===0&&delete l.children}),o._columns.value=Pg(f,l);else{const h=f.indexOf(s);h>-1&&(f.splice(h,1),o._columns.value=f)}const c=o.updateOrderFns.indexOf(u);c>-1&&o.updateOrderFns.splice(c,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(o,s){const{prop:l,order:u,init:f}=s;if(l){const c=T(o.columns).find(h=>h.property===l);c&&(c.order=u,e.store.updateSort(c,l,u),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(o,s){const{sortingColumn:l,sortProp:u,sortOrder:f}=o,c=T(l),h=T(u),d=T(f);d===null&&(o.sortingColumn.value=null,o.sortProp.value=null);const v={filter:!0};e.store.execQuery(v),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:c,prop:h,order:d}),e.store.updateTableScrollY()},filterChange(o,s){const{column:l,values:u,silent:f}=s,c=e.store.updateFilters(l,u);e.store.execQuery(),f||e.emit("filter-change",c),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(o,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(o,s){o.hoverRow.value=s},setCurrentRow(o,s){e.store.updateCurrentRow(s)}},commit:function(o,...s){const l=e.store.mutations;if(l[o])l[o].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${o}`)},updateTableScrollY:function(){Nt(()=>e.layout.updateScrollY.apply(e.layout))}}}const Vl={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"}};function TV(e,t){if(!e)throw new Error("Table is required.");const r=CV();return r.toggleAllSelection=hd(r._toggleAllSelection,10),Object.keys(Vl).forEach(n=>{ZA(QA(t,n),n,r)}),MV(r,t),r}function MV(e,t){Object.keys(Vl).forEach(r=>{be(()=>QA(t,r),n=>{ZA(n,r,e)})})}function ZA(e,t,r){let n=e,i=Vl[t];typeof Vl[t]=="object"&&(i=i.key,n=n||Vl[t].default),r.states[i].value=n}function QA(e,t){if(t.includes(".")){const r=t.split(".");let n=e;return r.forEach(i=>{n=n[i]}),n}else return e[t]}class AV{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=$(null),this.scrollX=$(!1),this.scrollY=$(!1),this.bodyWidth=$(null),this.fixedWidth=$(null),this.rightFixedWidth=$(null),this.gutterWidth=0;for(const r in t)Ue(t,r)&&(Pt(this[r])?this[r].value=t[r]:this[r]=t[r]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const r=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(r!=null&&r.wrapRef)){let n=!0;const i=this.scrollY.value;return n=r.wrapRef.scrollHeight>r.wrapRef.clientHeight,this.scrollY.value=n,i!==n}return!1}setHeight(t,r="height"){if(!At)return;const n=this.table.vnode.el;if(t=pV(t),this.height.value=Number(t),!n&&(t||t===0))return Nt(()=>this.setHeight(t,r));typeof t=="number"?(n.style[r]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(n.style[r]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(n=>{n.isColumnGroup?t.push.apply(t,n.columns):t.push(n)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let r=t;for(;r.tagName!=="DIV";){if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}updateColumnsWidth(){if(!At)return;const t=this.fit,r=this.table.vnode.el.clientWidth;let n=0;const i=this.getFlattenColumns(),a=i.filter(l=>typeof l.width!="number");if(i.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),a.length>0&&t){if(i.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=r){this.scrollX.value=!1;const l=r-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+l;else{const u=a.reduce((h,d)=>h+Number(d.minWidth||80),0),f=l/u;let c=0;a.forEach((h,d)=>{if(d===0)return;const v=Math.floor(Number(h.minWidth||80)*f);c+=v,h.realWidth=Number(h.minWidth||80)+v}),a[0].realWidth=Number(a[0].minWidth||80)+l-c}}else this.scrollX.value=!0,a.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,r),this.table.state.resizeState.value.width=this.bodyWidth.value}else i.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>r,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let l=0;o.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const r=this.observers.indexOf(t);r!==-1&&this.observers.splice(r,1)}notifyObservers(t){this.observers.forEach(n=>{var i,a;switch(t){case"columns":(i=n.state)==null||i.onColumnsChange(this);break;case"scrollable":(a=n.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:PV}=Ms,EV=ie({name:"ElTableFilterPanel",components:{ElCheckbox:Ms,ElCheckboxGroup:PV,ElScrollbar:uA,ElTooltip:Vs,ElIcon:Bt,ArrowDown:EM,ArrowUp:E3},directives:{ClickOutside:CA},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=it(),{t:r}=Hs(),n=Oe("table-filter"),i=t==null?void 0:t.parent;i.filterPanels.value[e.column.id]||(i.filterPanels.value[e.column.id]=t);const a=$(!1),o=$(null),s=k(()=>e.column&&e.column.filters),l=k(()=>e.column.filterClassName?`${n.b()} ${e.column.filterClassName}`:n.b()),u=k({get:()=>{var x;return(((x=e.column)==null?void 0:x.filteredValue)||[])[0]},set:x=>{f.value&&(typeof x<"u"&&x!==null?f.value.splice(0,1,x):f.value.splice(0,1))}}),f=k({get(){return e.column?e.column.filteredValue||[]:[]},set(x){e.column&&e.upDataColumn("filteredValue",x)}}),c=k(()=>e.column?e.column.filterMultiple:!0),h=x=>x.value===u.value,d=()=>{a.value=!1},v=x=>{x.stopPropagation(),a.value=!a.value},p=()=>{a.value=!1},m=()=>{_(f.value),d()},g=()=>{f.value=[],_(f.value),d()},y=x=>{u.value=x,_(typeof x<"u"&&x!==null?f.value:[]),d()},_=x=>{e.store.commit("filterChange",{column:e.column,values:x}),e.store.updateAllSelected()};be(a,x=>{e.column&&e.upDataColumn("filterOpened",x)},{immediate:!0});const b=k(()=>{var x,w;return(w=(x=o.value)==null?void 0:x.popperRef)==null?void 0:w.contentRef});return{tooltipVisible:a,multiple:c,filterClassName:l,filteredValue:f,filterValue:u,filters:s,handleConfirm:m,handleReset:g,handleSelect:y,isActive:h,t:r,ns:n,showFilterPanel:v,hideFilterPanel:p,popperPaneRef:b,tooltip:o}}}),LV={key:0},DV=["disabled"],IV=["label","onClick"];function OV(e,t,r,n,i,a){const o=xr("el-checkbox"),s=xr("el-checkbox-group"),l=xr("el-scrollbar"),u=xr("arrow-up"),f=xr("arrow-down"),c=xr("el-icon"),h=xr("el-tooltip"),d=fT("click-outside");return G(),ve(h,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.filterClassName,persistent:""},{content:q(()=>[e.multiple?(G(),ce("div",LV,[te("div",{class:re(e.ns.e("content"))},[Z(l,{"wrap-class":e.ns.e("wrap")},{default:q(()=>[Z(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.filteredValue=v),class:re(e.ns.e("checkbox-group"))},{default:q(()=>[(G(!0),ce(ft,null,Hp(e.filters,v=>(G(),ve(o,{key:v.value,label:v.value},{default:q(()=>[pt(xe(v.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),te("div",{class:re(e.ns.e("bottom"))},[te("button",{class:re({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...v)=>e.handleConfirm&&e.handleConfirm(...v))},xe(e.t("el.table.confirmFilter")),11,DV),te("button",{type:"button",onClick:t[2]||(t[2]=(...v)=>e.handleReset&&e.handleReset(...v))},xe(e.t("el.table.resetFilter")),1)],2)])):(G(),ce("ul",{key:1,class:re(e.ns.e("list"))},[te("li",{class:re([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=v=>e.handleSelect(null))},xe(e.t("el.table.clearFilter")),3),(G(!0),ce(ft,null,Hp(e.filters,v=>(G(),ce("li",{key:v.value,class:re([e.ns.e("list-item"),e.ns.is("active",e.isActive(v))]),label:v.value,onClick:p=>e.handleSelect(v.value)},xe(v.text),11,IV))),128))],2))]),default:q(()=>[qt((G(),ce("span",{class:re([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...v)=>e.showFilterPanel&&e.showFilterPanel(...v))},[Z(c,null,{default:q(()=>[e.column.filterOpened?(G(),ve(u,{key:0})):(G(),ve(f,{key:1}))]),_:1})],2)),[[d,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var RV=Ke(EV,[["render",OV],["__file","filter-panel.vue"]]);function JA(e){const t=it();eh(()=>{r.value.addObserver(t)}),_t(()=>{n(r.value),i(r.value)}),Uu(()=>{n(r.value),i(r.value)}),ks(()=>{r.value.removeObserver(t)});const r=k(()=>{const a=e.layout;if(!a)throw new Error("Can not find table layout.");return a}),n=a=>{var o;const s=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const l=a.getFlattenColumns(),u={};l.forEach(f=>{u[f.id]=f});for(let f=0,c=s.length;f{var o,s;const l=((o=e.vnode.el)==null?void 0:o.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let f=0,c=l.length;f{p.stopPropagation()},a=(p,m)=>{!m.filters&&m.sortable?v(p,m,!1):m.filterable&&!m.sortable&&i(p),n==null||n.emit("header-click",m,p)},o=(p,m)=>{n==null||n.emit("header-contextmenu",m,p)},s=$(null),l=$(!1),u=$({}),f=(p,m)=>{if(At&&!(m.children&&m.children.length>0)&&s.value&&e.border){l.value=!0;const g=n;t("set-drag-visible",!0);const _=(g==null?void 0:g.vnode.el).getBoundingClientRect().left,b=r.vnode.el.querySelector(`th.${m.id}`),x=b.getBoundingClientRect(),w=x.left-_+30;Za(b,"noclick"),u.value={startMouseLeft:p.clientX,startLeft:x.right-_,startColumnLeft:x.left-_,tableLeft:_};const S=g==null?void 0:g.refs.resizeProxy;S.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=A=>{const P=A.clientX-u.value.startMouseLeft,E=u.value.startLeft+P;S.style.left=`${Math.max(w,E)}px`},M=()=>{if(l.value){const{startColumnLeft:A,startLeft:P}=u.value,L=Number.parseInt(S.style.left,10)-A;m.width=m.realWidth=L,g==null||g.emit("header-dragend",m.width,P-A,m,p),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,s.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{so(b,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",M)}},c=(p,m)=>{if(m.children&&m.children.length>0)return;const g=p.target;if(!mo(g))return;const y=g==null?void 0:g.closest("th");if(!(!m||!m.resizable)&&!l.value&&e.border){const _=y.getBoundingClientRect(),b=document.body.style;_.width>12&&_.right-p.pageX<8?(b.cursor="col-resize",oo(y,"is-sortable")&&(y.style.cursor="col-resize"),s.value=m):l.value||(b.cursor="",oo(y,"is-sortable")&&(y.style.cursor="pointer"),s.value=null)}},h=()=>{At&&(document.body.style.cursor="")},d=({order:p,sortOrders:m})=>{if(p==="")return m[0];const g=m.indexOf(p||null);return m[g>m.length-2?0:g+1]},v=(p,m,g)=>{var y;p.stopPropagation();const _=m.order===g?null:g||d(m),b=(y=p.target)==null?void 0:y.closest("th");if(b&&oo(b,"noclick")){so(b,"noclick");return}if(!m.sortable)return;const x=e.store.states;let w=x.sortProp.value,S;const C=x.sortingColumn.value;(C!==m||C===m&&C.order===null)&&(C&&(C.order=null),x.sortingColumn.value=m,w=m.property),_?S=m.order=_:S=m.order=null,x.sortProp.value=w,x.sortOrder.value=S,n==null||n.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:v,handleFilterClick:i}}function NV(e){const t=Le(ri),r=Oe("table");return{getHeaderRowStyle:s=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:s}):l},getHeaderRowClass:s=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:s})),l.join(" ")},getHeaderCellStyle:(s,l,u,f)=>{var c;let h=(c=t==null?void 0:t.props.headerCellStyle)!=null?c:{};typeof h=="function"&&(h=h.call(null,{rowIndex:s,columnIndex:l,row:u,column:f}));const d=Xy(l,f.fixed,e.store,u);return As(d,"left"),As(d,"right"),Object.assign({},h,d)},getHeaderCellClass:(s,l,u,f)=>{const c=Ky(r.b(),l,f.fixed,e.store,u),h=[f.id,f.order,f.headerAlign,f.className,f.labelClassName,...c];f.children||h.push("is-leaf"),f.sortable&&h.push("is-sortable");const d=t==null?void 0:t.props.headerCellClassName;return typeof d=="string"?h.push(d):typeof d=="function"&&h.push(d.call(null,{rowIndex:s,columnIndex:l,row:u,column:f})),h.push(r.e("cell")),h.filter(v=>!!v).join(" ")}}}const e2=e=>{const t=[];return e.forEach(r=>{r.children?(t.push(r),t.push.apply(t,e2(r.children))):t.push(r)}),t},BV=e=>{let t=1;const r=(a,o)=>{if(o&&(a.level=o.level+1,t{r(l,a),s+=l.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,r(a,void 0)});const n=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(o=>o.isSubColumn=!0)):a.rowSpan=t-a.level+1,n[a.level-1].push(a)}),n};function FV(e){const t=Le(ri),r=k(()=>BV(e.store.states.originColumns.value));return{isGroup:k(()=>{const a=r.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:r}}var $V=ie({name:"ElTableHeader",components:{ElCheckbox:Ms},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const r=it(),n=Le(ri),i=Oe("table"),a=$({}),{onColumnsChange:o,onScrollableChange:s}=JA(n);_t(async()=>{await Nt(),await Nt();const{prop:w,order:S}=e.defaultSort;n==null||n.store.commit("sort",{prop:w,order:S,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:d,handleFilterClick:v}=kV(e,t),{getHeaderRowStyle:p,getHeaderRowClass:m,getHeaderCellStyle:g,getHeaderCellClass:y}=NV(e),{isGroup:_,toggleAllSelection:b,columnRows:x}=FV(e);return r.state={onColumnsChange:o,onScrollableChange:s},r.filterPanels=a,{ns:i,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:x,getHeaderRowClass:m,getHeaderRowStyle:p,getHeaderCellClass:y,getHeaderCellStyle:g,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:f,handleMouseMove:c,handleMouseOut:h,handleSortClick:d,handleFilterClick:v,isGroup:_,toggleAllSelection:b}},render(){const{ns:e,isGroup:t,columnRows:r,getHeaderCellStyle:n,getHeaderCellClass:i,getHeaderRowClass:a,getHeaderRowStyle:o,handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:f,handleSortClick:c,handleMouseOut:h,store:d,$parent:v}=this;let p=1;return Te("thead",{class:{[e.is("group")]:t}},r.map((m,g)=>Te("tr",{class:a(g),key:g,style:o(g)},m.map((y,_)=>(y.rowSpan>p&&(p=y.rowSpan),Te("th",{class:i(g,_,m,y),colspan:y.colSpan,key:`${y.id}-thead`,rowspan:y.rowSpan,style:n(g,_,m,y),onClick:b=>s(b,y),onContextmenu:b=>l(b,y),onMousedown:b=>u(b,y),onMousemove:b=>f(b,y),onMouseout:h},[Te("div",{class:["cell",y.filteredValue&&y.filteredValue.length>0?"highlight":""]},[y.renderHeader?y.renderHeader({column:y,$index:_,store:d,_self:v}):y.label,y.sortable&&Te("span",{onClick:b=>c(b,y),class:"caret-wrapper"},[Te("i",{onClick:b=>c(b,y,"ascending"),class:"sort-caret ascending"}),Te("i",{onClick:b=>c(b,y,"descending"),class:"sort-caret descending"})]),y.filterable&&Te(RV,{store:d,placement:y.filterPlacement||"bottom-start",column:y,upDataColumn:(b,x)=>{y[b]=x}})])]))))))}});function HV(e){const t=Le(ri),r=$(""),n=$(Te("div")),i=(d,v,p)=>{var m;const g=t,y=cv(d);let _;const b=(m=g==null?void 0:g.vnode.el)==null?void 0:m.dataset.prefix;y&&(_=L1({columns:e.store.states.columns.value},y,b),_&&(g==null||g.emit(`cell-${p}`,v,_,y,d))),g==null||g.emit(`row-${p}`,v,_,d)},a=(d,v)=>{i(d,v,"dblclick")},o=(d,v)=>{e.store.commit("setCurrentRow",v),i(d,v,"click")},s=(d,v)=>{i(d,v,"contextmenu")},l=hd(d=>{e.store.commit("setHoverRow",d)},30),u=hd(()=>{e.store.commit("setHoverRow",null)},30),f=d=>{const v=window.getComputedStyle(d,null),p=Number.parseInt(v.paddingLeft,10)||0,m=Number.parseInt(v.paddingRight,10)||0,g=Number.parseInt(v.paddingTop,10)||0,y=Number.parseInt(v.paddingBottom,10)||0;return{left:p,right:m,top:g,bottom:y}};return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(d,v,p)=>{var m;const g=t,y=cv(d),_=(m=g==null?void 0:g.vnode.el)==null?void 0:m.dataset.prefix;if(y){const H=L1({columns:e.store.states.columns.value},y,_),V=g.hoverState={cell:y,column:H,row:v};g==null||g.emit("cell-mouse-enter",V.row,V.column,V.cell,d)}if(!p)return;const b=d.target.querySelector(".cell");if(!(oo(b,`${_}-tooltip`)&&b.childNodes.length))return;const x=document.createRange();x.setStart(b,0),x.setEnd(b,b.childNodes.length);let w=x.getBoundingClientRect().width,S=x.getBoundingClientRect().height;w-Math.floor(w)<.001&&(w=Math.floor(w)),S-Math.floor(S)<.001&&(S=Math.floor(S));const{top:A,left:P,right:E,bottom:L}=f(b),O=P+E,N=A+L;(w+O>b.offsetWidth||S+N>b.offsetHeight||b.scrollWidth>b.offsetWidth)&&yV(p,y.innerText||y.textContent,y,g)},handleCellMouseLeave:d=>{if(!cv(d))return;const p=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",p==null?void 0:p.row,p==null?void 0:p.column,p==null?void 0:p.cell,d)},tooltipContent:r,tooltipTrigger:n}}function zV(e){const t=Le(ri),r=Oe("table");return{getRowStyle:(u,f)=>{const c=t==null?void 0:t.props.rowStyle;return typeof c=="function"?c.call(null,{row:u,rowIndex:f}):c||null},getRowClass:(u,f)=>{const c=[r.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&c.push("current-row"),e.stripe&&f%2===1&&c.push(r.em("row","striped"));const h=t==null?void 0:t.props.rowClassName;return typeof h=="string"?c.push(h):typeof h=="function"&&c.push(h.call(null,{row:u,rowIndex:f})),c},getCellStyle:(u,f,c,h)=>{const d=t==null?void 0:t.props.cellStyle;let v=d??{};typeof d=="function"&&(v=d.call(null,{rowIndex:u,columnIndex:f,row:c,column:h}));const p=Xy(f,e==null?void 0:e.fixed,e.store);return As(p,"left"),As(p,"right"),Object.assign({},v,p)},getCellClass:(u,f,c,h,d)=>{const v=Ky(r.b(),f,e==null?void 0:e.fixed,e.store,void 0,d),p=[h.id,h.align,h.className,...v],m=t==null?void 0:t.props.cellClassName;return typeof m=="string"?p.push(m):typeof m=="function"&&p.push(m.call(null,{rowIndex:u,columnIndex:f,row:c,column:h})),p.push(r.e("cell")),p.filter(g=>!!g).join(" ")},getSpan:(u,f,c,h)=>{let d=1,v=1;const p=t==null?void 0:t.props.spanMethod;if(typeof p=="function"){const m=p({row:u,column:f,rowIndex:c,columnIndex:h});Array.isArray(m)?(d=m[0],v=m[1]):typeof m=="object"&&(d=m.rowspan,v=m.colspan)}return{rowspan:d,colspan:v}},getColspanRealWidth:(u,f,c)=>{if(f<1)return u[c].realWidth;const h=u.map(({realWidth:d,width:v})=>d||v).slice(c,c+f);return Number(h.reduce((d,v)=>Number(d)+Number(v),-1))}}}function VV(e){const t=Le(ri),r=Oe("table"),{handleDoubleClick:n,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:f,tooltipTrigger:c}=HV(e),{getRowStyle:h,getRowClass:d,getCellStyle:v,getCellClass:p,getSpan:m,getColspanRealWidth:g}=zV(e),y=k(()=>e.store.states.columns.value.findIndex(({type:S})=>S==="default")),_=(S,C)=>{const M=t.props.rowKey;return M?Jt(S,M):C},b=(S,C,M,A=!1)=>{const{tooltipEffect:P,tooltipOptions:E,store:L}=e,{indent:O,columns:N}=L.states,H=d(S,C);let V=!0;return M&&(H.push(r.em("row",`level-${M.level}`)),V=M.display),Te("tr",{style:[V?null:{display:"none"},h(S,C)],class:H,key:_(S,C),onDblclick:F=>n(F,S),onClick:F=>i(F,S),onContextmenu:F=>a(F,S),onMouseenter:()=>o(C),onMouseleave:s},N.value.map((F,z)=>{const{rowspan:ee,colspan:J}=m(S,F,C,z);if(!ee||!J)return null;const me=Object.assign({},F);me.realWidth=g(N.value,J,z);const we={store:e.store,_self:e.context||t,column:me,row:S,$index:C,cellIndex:z,expanded:A};z===y.value&&M&&(we.treeNode={indent:M.level*O.value,level:M.level},typeof M.expanded=="boolean"&&(we.treeNode.expanded=M.expanded,"loading"in M&&(we.treeNode.loading=M.loading),"noLazyChildren"in M&&(we.treeNode.noLazyChildren=M.noLazyChildren)));const $e=`${C},${z}`,Ie=me.columnKey||me.rawColumnKey||"",B=x(z,F,we),Y=F.showOverflowTooltip&&m3({effect:P},E,F.showOverflowTooltip);return Te("td",{style:v(C,z,S,F),class:p(C,z,S,F,J-1),key:`${Ie}${$e}`,rowspan:ee,colspan:J,onMouseenter:K=>l(K,S,Y),onMouseleave:u},[B])}))},x=(S,C,M)=>C.renderCell(M);return{wrappedRowRender:(S,C)=>{const M=e.store,{isRowExpanded:A,assertRowKey:P}=M,{treeData:E,lazyTreeNodeMap:L,childrenColumnName:O,rowKey:N}=M.states,H=M.states.columns.value;if(H.some(({type:U})=>U==="expand")){const U=A(S),F=b(S,C,void 0,U),z=t.renderExpanded;return U?z?[[F,Te("tr",{key:`expanded-row__${F.key}`},[Te("td",{colspan:H.length,class:`${r.e("cell")} ${r.e("expanded-cell")}`},[z({row:S,$index:C,store:M,expanded:U})])])]]:(console.error("[Element Error]renderExpanded is required."),F):[[F]]}else if(Object.keys(E.value).length){P();const U=Jt(S,N.value);let F=E.value[U],z=null;F&&(z={expanded:F.expanded,level:F.level,display:!0},typeof F.lazy=="boolean"&&(typeof F.loaded=="boolean"&&F.loaded&&(z.noLazyChildren=!(F.children&&F.children.length)),z.loading=F.loading));const ee=[b(S,C,z)];if(F){let J=0;const me=($e,Ie)=>{$e&&$e.length&&Ie&&$e.forEach(B=>{const Y={display:Ie.display&&Ie.expanded,level:Ie.level+1,expanded:!1,noLazyChildren:!1,loading:!1},K=Jt(B,N.value);if(K==null)throw new Error("For nested data item, row-key is required.");if(F={...E.value[K]},F&&(Y.expanded=F.expanded,F.level=F.level||Y.level,F.display=!!(F.expanded&&Y.display),typeof F.lazy=="boolean"&&(typeof F.loaded=="boolean"&&F.loaded&&(Y.noLazyChildren=!(F.children&&F.children.length)),Y.loading=F.loading)),J++,ee.push(b(B,C+J,Y)),F){const Q=L.value[K]||B[O.value];me(Q,F)}})};F.display=!0;const we=L.value[U]||S[O.value];me(we,F)}return ee}else return b(S,C,void 0)},tooltipContent:f,tooltipTrigger:c}}const WV={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var GV=ie({name:"ElTableBody",props:WV,setup(e){const t=it(),r=Le(ri),n=Oe("table"),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=VV(e),{onColumnsChange:s,onScrollableChange:l}=JA(r);return be(e.store.states.hoverRow,(u,f)=>{!e.store.states.isComplex.value||!At||q3(()=>{const c=t==null?void 0:t.vnode.el,h=Array.from((c==null?void 0:c.children)||[]).filter(p=>p==null?void 0:p.classList.contains(`${n.e("row")}`)),d=h[f],v=h[u];d&&so(d,"hover-row"),v&&Za(v,"hover-row")})}),ks(()=>{var u;(u=Xr)==null||u()}),{ns:n,onColumnsChange:s,onScrollableChange:l,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){const{wrappedRowRender:e,store:t}=this,r=t.states.data.value||[];return Te("tbody",{tabIndex:-1},[r.reduce((n,i)=>n.concat(e(i,n.length)),[])])}});function UV(){const e=Le(ri),t=e==null?void 0:e.store,r=k(()=>t.states.fixedLeafColumnsLength.value),n=k(()=>t.states.rightFixedColumns.value.length),i=k(()=>t.states.columns.value.length),a=k(()=>t.states.fixedColumns.value.length),o=k(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:r,rightFixedLeafCount:n,columnsCount:i,leftFixedCount:a,rightFixedCount:o,columns:t.states.columns}}function YV(e){const{columns:t}=UV(),r=Oe("table");return{getCellClasses:(a,o)=>{const s=a[o],l=[r.e("cell"),s.id,s.align,s.labelClassName,...Ky(r.b(),o,s.fixed,e.store)];return s.className&&l.push(s.className),s.children||l.push(r.is("leaf")),l},getCellStyles:(a,o)=>{const s=Xy(o,a.fixed,e.store);return As(s,"left"),As(s,"right"),s},columns:t}}var jV=ie({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:r,columns:n}=YV(e);return{ns:Oe("table"),getCellClasses:t,getCellStyles:r,columns:n}},render(){const{columns:e,getCellStyles:t,getCellClasses:r,summaryMethod:n,sumText:i}=this,a=this.store.states.data.value;let o=[];return n?o=n({columns:e,data:a}):e.forEach((s,l)=>{if(l===0){o[l]=i;return}const u=a.map(d=>Number(d[s.property])),f=[];let c=!0;u.forEach(d=>{if(!Number.isNaN(+d)){c=!1;const v=`${d}`.split(".")[1];f.push(v?v.length:0)}});const h=Math.max.apply(null,f);c?o[l]="":o[l]=u.reduce((d,v)=>{const p=Number(v);return Number.isNaN(+p)?d:Number.parseFloat((d+v).toFixed(Math.min(h,20)))},0)}),Te(Te("tfoot",[Te("tr",{},[...e.map((s,l)=>Te("td",{key:l,colspan:s.colSpan,rowspan:s.rowSpan,class:r(e,l),style:t(s,l)},[Te("div",{class:["cell",s.labelClassName]},[o[l]])]))])]))}});function qV(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,c)=>{e.toggleRowSelection(f,c,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,c)=>{e.toggleRowExpansionAdapter(f,c)},clearSort:()=>{e.clearSort()},sort:(f,c)=>{e.commit("sort",{prop:f,order:c})}}}function KV(e,t,r,n){const i=$(!1),a=$(null),o=$(!1),s=F=>{o.value=F},l=$({width:null,height:null,headerHeight:null}),u=$(!1),f={display:"inline-block",verticalAlign:"middle"},c=$(),h=$(0),d=$(0),v=$(0),p=$(0),m=$(0);na(()=>{t.setHeight(e.height)}),na(()=>{t.setMaxHeight(e.maxHeight)}),be(()=>[e.currentRowKey,r.states.rowKey],([F,z])=>{!T(z)||!T(F)||r.setCurrentRowKey(`${F}`)},{immediate:!0}),be(()=>e.data,F=>{n.store.commit("setData",F)},{immediate:!0,deep:!0}),na(()=>{e.expandRowKeys&&r.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},y=(F,z)=>{const{pixelX:ee,pixelY:J}=z;Math.abs(ee)>=Math.abs(J)&&(n.refs.bodyWrapper.scrollLeft+=z.pixelX/5)},_=k(()=>e.height||e.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),b=k(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),x=()=>{_.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(M)};_t(async()=>{await Nt(),r.updateColumns(),A(),requestAnimationFrame(x);const F=n.vnode.el,z=n.refs.headerWrapper;e.flexible&&F&&F.parentElement&&(F.parentElement.style.minWidth="0"),l.value={width:c.value=F.offsetWidth,height:F.offsetHeight,headerHeight:e.showHeader&&z?z.offsetHeight:null},r.states.columns.value.forEach(ee=>{ee.filteredValue&&ee.filteredValue.length&&n.store.commit("filterChange",{column:ee,values:ee.filteredValue,silent:!0})}),n.$ready=!0});const w=(F,z)=>{if(!F)return;const ee=Array.from(F.classList).filter(J=>!J.startsWith("is-scrolling-"));ee.push(t.scrollX.value?z:"is-scrolling-none"),F.className=ee.join(" ")},S=F=>{const{tableWrapper:z}=n.refs;w(z,F)},C=F=>{const{tableWrapper:z}=n.refs;return!!(z&&z.classList.contains(F))},M=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const Ie="is-scrolling-none";C(Ie)||S(Ie);return}const F=n.refs.scrollBarRef.wrapRef;if(!F)return;const{scrollLeft:z,offsetWidth:ee,scrollWidth:J}=F,{headerWrapper:me,footerWrapper:we}=n.refs;me&&(me.scrollLeft=z),we&&(we.scrollLeft=z);const $e=J-ee-1;z>=$e?S("is-scrolling-right"):S(z===0?"is-scrolling-left":"is-scrolling-middle")},A=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&xn(n.refs.scrollBarRef.wrapRef,"scroll",M,{passive:!0}),e.fit?ms(n.vnode.el,P):xn(window,"resize",P),ms(n.refs.bodyWrapper,()=>{var F,z;P(),(z=(F=n.refs)==null?void 0:F.scrollBarRef)==null||z.update()}))},P=()=>{var F,z,ee,J;const me=n.vnode.el;if(!n.$ready||!me)return;let we=!1;const{width:$e,height:Ie,headerHeight:B}=l.value,Y=c.value=me.offsetWidth;$e!==Y&&(we=!0);const K=me.offsetHeight;(e.height||_.value)&&Ie!==K&&(we=!0);const Q=e.tableLayout==="fixed"?n.refs.headerWrapper:(F=n.refs.tableHeaderRef)==null?void 0:F.$el;e.showHeader&&(Q==null?void 0:Q.offsetHeight)!==B&&(we=!0),h.value=((z=n.refs.tableWrapper)==null?void 0:z.scrollHeight)||0,v.value=(Q==null?void 0:Q.scrollHeight)||0,p.value=((ee=n.refs.footerWrapper)==null?void 0:ee.offsetHeight)||0,m.value=((J=n.refs.appendWrapper)==null?void 0:J.offsetHeight)||0,d.value=h.value-v.value-p.value-m.value,we&&(l.value={width:Y,height:K,headerHeight:e.showHeader&&(Q==null?void 0:Q.offsetHeight)||0},x())},E=xi(),L=k(()=>{const{bodyWidth:F,scrollY:z,gutterWidth:ee}=t;return F.value?`${F.value-(z.value?ee:0)}px`:""}),O=k(()=>e.maxHeight?"fixed":e.tableLayout),N=k(()=>{if(e.data&&e.data.length)return null;let F="100%";e.height&&d.value&&(F=`${d.value}px`);const z=c.value;return{width:z?`${z}px`:"",height:F}}),H=k(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),V=k(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${v.value+p.value}px)`}:{maxHeight:`${e.maxHeight-v.value-p.value}px`}:{});return{isHidden:i,renderExpanded:a,setDragVisible:s,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:y,tableSize:E,emptyBlockStyle:N,handleFixedMousewheel:(F,z)=>{const ee=n.refs.bodyWrapper;if(Math.abs(z.spinY)>0){const J=ee.scrollTop;z.pixelY<0&&J!==0&&F.preventDefault(),z.pixelY>0&&ee.scrollHeight-ee.clientHeight>J&&F.preventDefault(),ee.scrollTop+=Math.ceil(z.pixelY/5)}else ee.scrollLeft+=Math.ceil(z.pixelX/5)},resizeProxyVisible:o,bodyWidth:L,resizeState:l,doLayout:x,tableBodyStyles:b,tableLayout:O,scrollbarViewStyle:f,tableInnerStyle:H,scrollbarStyle:V}}function XV(e){const t=$(),r=()=>{const i=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(s=>s())}),t.value.observe(i,a)};_t(()=>{r()}),ks(()=>{var n;(n=t.value)==null||n.disconnect()})}var ZV={data:{type:Array,default:()=>[]},size:dh,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean,showOverflowTooltip:[Boolean,Object]};function t2(e){const t=e.tableLayout==="auto";let r=e.columns||[];t&&r.every(i=>i.width===void 0)&&(r=[]);const n=i=>{const a={key:`${e.tableLayout}_${i.id}`,style:{},name:void 0};return t?a.style={width:`${i.width}px`}:a.name=i.id,a};return Te("colgroup",{},r.map(i=>Te("col",n(i))))}t2.props=["columns","tableLayout"];const QV=()=>{const e=$(),t=(a,o)=>{const s=e.value;s&&s.scrollTo(a,o)},r=(a,o)=>{const s=e.value;s&&kt(o)&&["Top","Left"].includes(a)&&s[`setScroll${a}`](o)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>r("Top",a),setScrollLeft:a=>r("Left",a)}};let JV=1;const eW=ie({name:"ElTable",directives:{Mousewheel:d8},components:{TableHeader:$V,TableBody:GV,TableFooter:jV,ElScrollbar:uA,hColgroup:t2},props:ZV,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=Hs(),r=Oe("table"),n=it();Dt(ri,n);const i=TV(n,e);n.store=i;const a=new AV({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const o=k(()=>(i.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:h,toggleRowExpansion:d,clearSort:v,sort:p}=qV(i),{isHidden:m,renderExpanded:g,setDragVisible:y,isGroup:_,handleMouseLeave:b,handleHeaderFooterMousewheel:x,tableSize:w,emptyBlockStyle:S,handleFixedMousewheel:C,resizeProxyVisible:M,bodyWidth:A,resizeState:P,doLayout:E,tableBodyStyles:L,tableLayout:O,scrollbarViewStyle:N,tableInnerStyle:H,scrollbarStyle:V}=KV(e,a,i,n),{scrollBarRef:U,scrollTo:F,setScrollLeft:z,setScrollTop:ee}=QV(),J=hd(E,50),me=`${r.namespace.value}-table_${JV++}`;n.tableId=me,n.state={isGroup:_,resizeState:P,doLayout:E,debouncedUpdateLayout:J};const we=k(()=>e.sumText||t("el.table.sumText")),$e=k(()=>e.emptyText||t("el.table.emptyText"));return XV(n),{ns:r,layout:a,store:i,handleHeaderFooterMousewheel:x,handleMouseLeave:b,tableId:me,tableSize:w,isHidden:m,isEmpty:o,renderExpanded:g,resizeProxyVisible:M,resizeState:P,isGroup:_,bodyWidth:A,tableBodyStyles:L,emptyBlockStyle:S,debouncedUpdateLayout:J,handleFixedMousewheel:C,setCurrentRow:s,getSelectionRows:l,toggleRowSelection:u,clearSelection:f,clearFilter:c,toggleAllSelection:h,toggleRowExpansion:d,clearSort:v,doLayout:E,sort:p,t,setDragVisible:y,context:n,computedSumText:we,computedEmptyText:$e,tableLayout:O,scrollbarViewStyle:N,tableInnerStyle:H,scrollbarStyle:V,scrollBarRef:U,scrollTo:F,setScrollLeft:z,setScrollTop:ee}}}),tW=["data-prefix"],rW={ref:"hiddenColumns",class:"hidden-columns"};function nW(e,t,r,n,i,a){const o=xr("hColgroup"),s=xr("table-header"),l=xr("table-body"),u=xr("table-footer"),f=xr("el-scrollbar"),c=fT("mousewheel");return G(),ce("div",{ref:"tableWrapper",class:re([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:ct(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...h)=>e.handleMouseLeave&&e.handleMouseLeave(...h))},[te("div",{class:re(e.ns.e("inner-wrapper")),style:ct(e.tableInnerStyle)},[te("div",rW,[Ce(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?qt((G(),ce("div",{key:0,ref:"headerWrapper",class:re(e.ns.e("header-wrapper"))},[te("table",{ref:"tableHeader",class:re(e.ns.e("header")),style:ct(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Z(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[c,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),te("div",{ref:"bodyWrapper",class:re(e.ns.e("body-wrapper"))},[Z(f,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:q(()=>[te("table",{ref:"tableBody",class:re(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:ct({width:e.bodyWidth,tableLayout:e.tableLayout})},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(G(),ve(s,{key:0,ref:"tableHeaderRef",class:re(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","onSetDragVisible"])):Ae("v-if",!0),Z(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&e.tableLayout==="auto"?(G(),ve(u,{key:1,class:re(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Ae("v-if",!0)],6),e.isEmpty?(G(),ce("div",{key:0,ref:"emptyBlock",style:ct(e.emptyBlockStyle),class:re(e.ns.e("empty-block"))},[te("span",{class:re(e.ns.e("empty-text"))},[Ce(e.$slots,"empty",{},()=>[pt(xe(e.computedEmptyText),1)])],2)],6)):Ae("v-if",!0),e.$slots.append?(G(),ce("div",{key:1,ref:"appendWrapper",class:re(e.ns.e("append-wrapper"))},[Ce(e.$slots,"append")],2)):Ae("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary&&e.tableLayout==="fixed"?qt((G(),ce("div",{key:1,ref:"footerWrapper",class:re(e.ns.e("footer-wrapper"))},[te("table",{class:re(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:ct(e.tableBodyStyles)},[Z(o,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Z(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Kn,!e.isEmpty],[c,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),e.border||e.isGroup?(G(),ce("div",{key:2,class:re(e.ns.e("border-left-patch"))},null,2)):Ae("v-if",!0)],6),qt(te("div",{ref:"resizeProxy",class:re(e.ns.e("column-resize-proxy"))},null,2),[[Kn,e.resizeProxyVisible]])],46,tW)}var iW=Ke(eW,[["render",nW],["__file","table.vue"]]);const aW={selection:"table-column--selection",expand:"table__expand-column"},oW={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},sW=e=>aW[e]||"",lW={selection:{renderHeader({store:e,column:t}){function r(){return e.states.data.value&&e.states.data.value.length===0}return Te(Ms,{disabled:r(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value,ariaLabel:t.label})},renderCell({row:e,column:t,store:r,$index:n}){return Te(Ms,{disabled:t.selectable?!t.selectable.call(null,e,n):!1,size:r.states.tableSize.value,onChange:()=>{r.commit("rowSelectedChanged",e)},onClick:i=>i.stopPropagation(),modelValue:r.isSelected(e),ariaLabel:t.label})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let r=t+1;const n=e.index;return typeof n=="number"?r=t+n:typeof n=="function"&&(r=n(t)),Te("div",{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:r}){const{ns:n}=t,i=[n.e("expand-icon")];return r&&i.push(n.em("expand-icon","expanded")),Te("div",{class:i,onClick:function(o){o.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Te(Bt,null,{default:()=>[Te(Ey)]})]})},sortable:!1,resizable:!1}};function uW({row:e,column:t,$index:r}){var n;const i=t.property,a=i&&Ec(e,i).value;return t&&t.formatter?t.formatter(e,t,a,r):((n=a==null?void 0:a.toString)==null?void 0:n.call(a))||""}function fW({row:e,treeNode:t,store:r},n=!1){const{ns:i}=r;if(!t)return n?[Te("span",{class:i.e("placeholder")})]:null;const a=[],o=function(s){s.stopPropagation(),!t.loading&&r.loadOrToggle(e)};if(t.indent&&a.push(Te("span",{class:i.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[i.e("expand-icon"),t.expanded?i.em("expand-icon","expanded"):""];let l=Ey;t.loading&&(l=Ly),a.push(Te("div",{class:s,onClick:o},{default:()=>[Te(Bt,{class:{[i.is("loading")]:t.loading}},{default:()=>[Te(l)]})]}))}else a.push(Te("span",{class:i.e("placeholder")}));return a}function O1(e,t){return e.reduce((r,n)=>(r[n]=n,r),t)}function cW(e,t){const r=it();return{registerComplexWatchers:()=>{const a=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},s=O1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ue(t,u)&&be(()=>t[u],f=>{let c=f;u==="width"&&l==="realWidth"&&(c=qy(f)),u==="minWidth"&&l==="realMinWidth"&&(c=qA(f)),r.columnConfig.value[u]=c,r.columnConfig.value[l]=c;const h=u==="fixed";e.value.store.scheduleLayout(h)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip"],o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=O1(a,o);Object.keys(s).forEach(l=>{const u=o[l];Ue(t,u)&&be(()=>t[u],f=>{r.columnConfig.value[l]=f})})}}}function dW(e,t,r){const n=it(),i=$(""),a=$(!1),o=$(),s=$(),l=Oe("table");na(()=>{o.value=e.align?`is-${e.align}`:null,o.value}),na(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:o.value,s.value});const u=k(()=>{let b=n.vnode.vParent||n.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),f=k(()=>{const{store:b}=n.parent;if(!b)return!1;const{treeData:x}=b.states,w=x.value;return w&&Object.keys(w).length>0}),c=$(qy(e.width)),h=$(qA(e.minWidth)),d=b=>(c.value&&(b.width=c.value),h.value&&(b.minWidth=h.value),!c.value&&h.value&&(b.width=void 0),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),v=b=>{const x=b.type,w=lW[x]||{};Object.keys(w).forEach(C=>{const M=w[C];C!=="className"&&M!==void 0&&(b[C]=M)});const S=sW(x);if(S){const C=`${T(l.namespace)}-${S}`;b.className=b.className?`${b.className} ${C}`:C}return b},p=b=>{Array.isArray(b)?b.forEach(w=>x(w)):x(b);function x(w){var S;((S=w==null?void 0:w.type)==null?void 0:S.name)==="ElTableColumn"&&(w.vParent=n)}};return{columnId:i,realAlign:o,isSubColumn:a,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:d,setColumnForcedProps:v,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=w=>(n.columnConfig.value.label,Ce(t,"header",w,()=>[b.label])));let x=b.renderCell;return b.type==="expand"?(b.renderCell=w=>Te("div",{class:"cell"},[x(w)]),r.value.renderExpanded=w=>t.default?t.default(w):t.default):(x=x||uW,b.renderCell=w=>{let S=null;if(t.default){const L=t.default(w);S=L.some(O=>O.type!==Mr)?L:x(w)}else S=x(w);const{columns:C}=r.value.store.states,M=C.value.findIndex(L=>L.type==="default"),A=f.value&&w.cellIndex===M,P=fW(w,A),E={class:"cell",style:{}};return b.showOverflowTooltip&&(E.class=`${E.class} ${T(l.namespace)}-tooltip`,E.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),p(S),Te("div",E,[P,S])}),b},getPropsData:(...b)=>b.reduce((x,w)=>(Array.isArray(w)&&w.forEach(S=>{x[S]=e[S]}),x),{}),getColumnElIndex:(b,x)=>Array.prototype.indexOf.call(b,x),updateColumnOrder:()=>{r.value.store.commit("updateColumnOrder",n.columnConfig.value)}}}var hW={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let vW=1;var r2=ie({name:"ElTableColumn",components:{ElCheckbox:Ms},props:hW,setup(e,{slots:t}){const r=it(),n=$({}),i=k(()=>{let _=r.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:a,registerComplexWatchers:o}=cW(i,e),{columnId:s,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:f,setColumnWidth:c,setColumnForcedProps:h,setColumnRenders:d,getPropsData:v,getColumnElIndex:p,realAlign:m,updateColumnOrder:g}=dW(e,t,i),y=f.value;s.value=`${y.tableId||y.columnId}_column_${vW++}`,eh(()=>{l.value=i.value!==y;const _=e.type||"default",b=e.sortable===""?!0:e.sortable,x=bs(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip,w={...oW[_],id:s.value,type:_,property:e.prop||e.property,align:m,headerAlign:u,showOverflowTooltip:x,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:r.vnode.key};let P=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);P=vV(w,P),P=gV(d,c,h)(P),n.value=P,a(),o()}),_t(()=>{var _;const b=f.value,x=l.value?b.vnode.el.children:(_=b.refs.hiddenColumns)==null?void 0:_.children,w=()=>p(x||[],r.vnode.el);n.value.getColumnIndex=w,w()>-1&&i.value.store.commit("insertColumn",n.value,l.value?b.columnConfig.value:null,g)}),tr(()=>{i.value.store.commit("removeColumn",n.value,l.value?y.columnConfig.value:null,g)}),r.columnId=s.value,r.columnConfig=n},render(){var e,t,r;try{const n=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),i=[];if(Array.isArray(n))for(const o of n)((r=o.type)==null?void 0:r.name)==="ElTableColumn"||o.shapeFlag&2?i.push(o):o.type===ft&&Array.isArray(o.children)&&o.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!ze(s==null?void 0:s.children)&&i.push(s)});return Te("div",i)}catch{return Te("div",[])}}});const pW=Yt(iW,{TableColumn:r2}),gW=pa(r2),mW=Je({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:$s,default:""},truncated:{type:Boolean},lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),yW=ie({name:"ElText"}),_W=ie({...yW,props:mW,setup(e){const t=e,r=xi(),n=Oe("text"),i=k(()=>[n.b(),n.m(t.type),n.m(r.value),n.is("truncated",t.truncated),n.is("line-clamp",!bs(t.lineClamp))]);return(a,o)=>(G(),ve(Vt(a.tag),{class:re(T(i)),style:ct({"-webkit-line-clamp":a.lineClamp})},{default:q(()=>[Ce(a.$slots,"default")]),_:3},8,["class","style"]))}});var bW=Ke(_W,[["__file","text.vue"]]);const wW=Yt(bW),n2=["success","info","warning","error"],wr=ja({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:At?document.body:void 0}),SW=Je({customClass:{type:String,default:wr.customClass},center:{type:Boolean,default:wr.center},dangerouslyUseHTMLString:{type:Boolean,default:wr.dangerouslyUseHTMLString},duration:{type:Number,default:wr.duration},icon:{type:vr,default:wr.icon},id:{type:String,default:wr.id},message:{type:Be([String,Object,Function]),default:wr.message},onClose:{type:Be(Function),required:!1},showClose:{type:Boolean,default:wr.showClose},type:{type:String,values:n2,default:wr.type},offset:{type:Number,default:wr.offset},zIndex:{type:Number,default:wr.zIndex},grouping:{type:Boolean,default:wr.grouping},repeatNum:{type:Number,default:wr.repeatNum}}),xW={destroy:()=>!0},Cn=Qm([]),CW=e=>{const t=Cn.findIndex(i=>i.id===e),r=Cn[t];let n;return t>0&&(n=Cn[t-1]),{current:r,prev:n}},TW=e=>{const{prev:t}=CW(e);return t?t.vm.exposed.bottom.value:0},MW=(e,t)=>Cn.findIndex(n=>n.id===e)>0?20:t,AW=["id"],PW=["innerHTML"],EW=ie({name:"ElMessage"}),LW=ie({...EW,props:SW,emits:xW,setup(e,{expose:t}){const r=e,{Close:n}=G3,{ns:i,zIndex:a}=m4("message"),{currentZIndex:o,nextZIndex:s}=a,l=$(),u=$(!1),f=$(0);let c;const h=k(()=>r.type?r.type==="error"?"danger":r.type:"info"),d=k(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Wb[S]}}),v=k(()=>r.icon||Wb[r.type]||""),p=k(()=>TW(r.id)),m=k(()=>MW(r.id,r.offset)+p.value),g=k(()=>f.value+m.value),y=k(()=>({top:`${m.value}px`,zIndex:o.value}));function _(){r.duration!==0&&({stop:c}=hu(()=>{x()},r.duration))}function b(){c==null||c()}function x(){u.value=!1}function w({code:S}){S===hr.esc&&x()}return _t(()=>{_(),s(),u.value=!0}),be(()=>r.repeatNum,()=>{b(),_()}),xn(document,"keydown",w),ms(l,()=>{f.value=l.value.getBoundingClientRect().height}),t({visible:u,bottom:g,close:x}),(S,C)=>(G(),ve(ti,{name:T(i).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:C[0]||(C[0]=M=>S.$emit("destroy")),persisted:""},{default:q(()=>[qt(te("div",{id:S.id,ref_key:"messageRef",ref:l,class:re([T(i).b(),{[T(i).m(S.type)]:S.type},T(i).is("center",S.center),T(i).is("closable",S.showClose),S.customClass]),style:ct(T(y)),role:"alert",onMouseenter:b,onMouseleave:_},[S.repeatNum>1?(G(),ve(T(Nz),{key:0,value:S.repeatNum,type:T(h),class:re(T(i).e("badge"))},null,8,["value","type","class"])):Ae("v-if",!0),T(v)?(G(),ve(T(Bt),{key:1,class:re([T(i).e("icon"),T(d)])},{default:q(()=>[(G(),ve(Vt(T(v))))]),_:1},8,["class"])):Ae("v-if",!0),Ce(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(G(),ce(ft,{key:1},[Ae(" Caution here, message could've been compromised, never use user's input as message "),te("p",{class:re(T(i).e("content")),innerHTML:S.message},null,10,PW)],2112)):(G(),ce("p",{key:0,class:re(T(i).e("content"))},xe(S.message),3))]),S.showClose?(G(),ve(T(Bt),{key:2,class:re(T(i).e("closeBtn")),onClick:ua(x,["stop"])},{default:q(()=>[Z(T(n))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],46,AW),[[Kn,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var DW=Ke(LW,[["__file","message.vue"]]);let IW=1;const i2=e=>{const t=!e||ze(e)||la(e)||De(e)?{message:e}:e,r={...wr,...t};if(!r.appendTo)r.appendTo=document.body;else if(ze(r.appendTo)){let n=document.querySelector(r.appendTo);mo(n)||(n=document.body),r.appendTo=n}return r},OW=e=>{const t=Cn.indexOf(e);if(t===-1)return;Cn.splice(t,1);const{handler:r}=e;r.close()},RW=({appendTo:e,...t},r)=>{const n=`message_${IW++}`,i=t.onClose,a=document.createElement("div"),o={...t,id:n,onClose:()=>{i==null||i(),OW(f)},onDestroy:()=>{ld(null,a)}},s=Z(DW,o,De(o.message)||la(o.message)?{default:De(o.message)?o.message:()=>o.message}:null);s.appContext=r||Ps._context,ld(s,a),e.appendChild(a.firstElementChild);const l=s.component,f={id:n,vnode:s,vm:l,handler:{close:()=>{l.exposed.visible.value=!1}},props:s.component.props};return f},Ps=(e={},t)=>{if(!At)return{close:()=>{}};if(kt(i1.max)&&Cn.length>=i1.max)return{close:()=>{}};const r=i2(e);if(r.grouping&&Cn.length){const i=Cn.find(({vnode:a})=>{var o;return((o=a.props)==null?void 0:o.message)===r.message});if(i)return i.props.repeatNum+=1,i.props.type=r.type,i.handler}const n=RW(r,t);return Cn.push(n),n.handler};n2.forEach(e=>{Ps[e]=(t={},r)=>{const n=i2(t);return Ps({...n,type:e},r)}});function kW(e){for(const t of Cn)(!e||e===t.props.type)&&t.handler.close()}Ps.closeAll=kW;Ps._context=null;const Wl=U3(Ps,"$message"),NW={id:"app"},BW={class:"grid-content header-color"},FW={class:"header-content"},$W=te("div",{class:"brand"},[te("a",{href:"#"},"frp")],-1),HW={class:"dark-switch"},zW=te("span",null,"Proxies",-1),VW={id:"content"},WW=te("footer",null,null,-1),GW=ie({__name:"App",setup(e){const t=XR(),r=$(t),n=mR(t),i=a=>{a==""&&window.open("https://github.com/fatedier/frp")};return(a,o)=>{const s=cV,l=H6,u=z6,f=$6,c=$A,h=xr("router-view"),d=FA;return G(),ce("div",NW,[te("header",BW,[te("div",FW,[$W,te("div",HW,[Z(s,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=v=>r.value=v),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:T(n),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),te("section",null,[Z(d,null,{default:q(()=>[Z(c,{id:"side-nav",xs:24,md:4},{default:q(()=>[Z(f,{"default-active":"/",mode:"vertical",theme:"light",router:"false",onSelect:i},{default:q(()=>[Z(l,{index:"/"},{default:q(()=>[pt("Overview")]),_:1}),Z(u,{index:"/proxies"},{title:q(()=>[zW]),default:q(()=>[Z(l,{index:"/proxies/tcp"},{default:q(()=>[pt("TCP")]),_:1}),Z(l,{index:"/proxies/udp"},{default:q(()=>[pt("UDP")]),_:1}),Z(l,{index:"/proxies/http"},{default:q(()=>[pt("HTTP")]),_:1}),Z(l,{index:"/proxies/https"},{default:q(()=>[pt("HTTPS")]),_:1}),Z(l,{index:"/proxies/tcpmux"},{default:q(()=>[pt("TCPMUX")]),_:1}),Z(l,{index:"/proxies/stcp"},{default:q(()=>[pt("STCP")]),_:1}),Z(l,{index:"/proxies/sudp"},{default:q(()=>[pt("SUDP")]),_:1})]),_:1}),Z(l,{index:""},{default:q(()=>[pt("Help")]),_:1})]),_:1})]),_:1}),Z(c,{xs:24,md:20},{default:q(()=>[te("div",VW,[Z(h)])]),_:1})]),_:1})]),WW])}}});/*! - * vue-router v4.2.5 - * (c) 2023 Eduardo San Martin Morote - * @license MIT - */const Zo=typeof window<"u";function UW(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const lt=Object.assign;function dv(e,t){const r={};for(const n in t){const i=t[n];r[n]=En(i)?i.map(e):e(i)}return r}const Gl=()=>{},En=Array.isArray,YW=/\/$/,jW=e=>e.replace(YW,"");function hv(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(n=t.slice(0,l),a=t.slice(l+1,s>-1?s:t.length),i=e(a)),s>-1&&(n=n||t.slice(0,s),o=t.slice(s,t.length)),n=ZW(n??t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function qW(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function R1(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function KW(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&Es(t.matched[n],r.matched[i])&&a2(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Es(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function a2(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!XW(e[r],t[r]))return!1;return!0}function XW(e,t){return En(e)?k1(e,t):En(t)?k1(t,e):e===t}function k1(e,t){return En(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function ZW(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),n=e.split("/"),i=n[n.length-1];(i===".."||i===".")&&n.push("");let a=r.length-1,o,s;for(o=0;o1&&a--;else break;return r.slice(0,a).join("/")+"/"+n.slice(o-(o===n.length?1:0)).join("/")}var Tu;(function(e){e.pop="pop",e.push="push"})(Tu||(Tu={}));var Ul;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ul||(Ul={}));function QW(e){if(!e)if(Zo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),jW(e)}const JW=/^[^#]+#/;function eG(e,t){return e.replace(JW,"#")+t}function tG(e,t){const r=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-r.left-(t.left||0),top:n.top-r.top-(t.top||0)}}const gh=()=>({left:window.pageXOffset,top:window.pageYOffset});function rG(e){let t;if("el"in e){const r=e.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;t=tG(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function N1(e,t){return(history.state?history.state.position-t:-1)+e}const Lg=new Map;function nG(e,t){Lg.set(e,t)}function iG(e){const t=Lg.get(e);return Lg.delete(e),t}let aG=()=>location.protocol+"//"+location.host;function o2(e,t){const{pathname:r,search:n,hash:i}=t,a=e.indexOf("#");if(a>-1){let s=i.includes(e.slice(a))?e.slice(a).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),R1(l,"")}return R1(r,e)+n+i}function oG(e,t,r,n){let i=[],a=[],o=null;const s=({state:h})=>{const d=o2(e,location),v=r.value,p=t.value;let m=0;if(h){if(r.value=d,t.value=h,o&&o===v){o=null;return}m=p?h.position-p.position:0}else n(d);i.forEach(g=>{g(r.value,v,{delta:m,type:Tu.pop,direction:m?m>0?Ul.forward:Ul.back:Ul.unknown})})};function l(){o=r.value}function u(h){i.push(h);const d=()=>{const v=i.indexOf(h);v>-1&&i.splice(v,1)};return a.push(d),d}function f(){const{history:h}=window;h.state&&h.replaceState(lt({},h.state,{scroll:gh()}),"")}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:l,listen:u,destroy:c}}function B1(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?gh():null}}function sG(e){const{history:t,location:r}=window,n={value:o2(e,r)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=e.indexOf("#"),h=c>-1?(r.host&&document.querySelector("base")?e:e.slice(c))+l:aG()+e+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(d){console.error(d),r[f?"replace":"assign"](h)}}function o(l,u){const f=lt({},t.state,B1(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});a(l,f,!0),n.value=l}function s(l,u){const f=lt({},i.value,t.state,{forward:l,scroll:gh()});a(f.current,f,!0);const c=lt({},B1(n.value,l,null),{position:f.position+1},u);a(l,c,!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function lG(e){e=QW(e);const t=sG(e),r=oG(e,t.state,t.location,t.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=lt({location:"",base:e,go:n,createHref:eG.bind(null,e)},t,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function uG(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),lG(e)}function fG(e){return typeof e=="string"||e&&typeof e=="object"}function s2(e){return typeof e=="string"||typeof e=="symbol"}const Ri={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},l2=Symbol("");var F1;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(F1||(F1={}));function Ls(e,t){return lt(new Error,{type:e,[l2]:!0},t)}function li(e,t){return e instanceof Error&&l2 in e&&(t==null||!!(e.type&t))}const $1="[^/]+?",cG={sensitive:!1,strict:!1,start:!0,end:!0},dG=/[.+*?^${}()[\]/\\]/g;function hG(e,t){const r=lt({},cG,t),n=[];let i=r.start?"^":"";const a=[];for(const u of e){const f=u.length?[]:[90];r.strict&&!u.length&&(i+="/");for(let c=0;ct.length?t.length===1&&t[0]===80?1:-1:0}function pG(e,t){let r=0;const n=e.score,i=t.score;for(;r0&&t[t.length-1]<0}const gG={type:0,value:""},mG=/[a-zA-Z0-9_]/;function yG(e){if(!e)return[[]];if(e==="/")return[[gG]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${r})/"${u}": ${d}`)}let r=0,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(r===0?a.push({type:0,value:u}):r===1||r===2||r===3?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;s{o(y)}:Gl}function o(f){if(s2(f)){const c=n.get(f);c&&(n.delete(f),r.splice(r.indexOf(c),1),c.children.forEach(o),c.alias.forEach(o))}else{const c=r.indexOf(f);c>-1&&(r.splice(c,1),f.record.name&&n.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return r}function l(f){let c=0;for(;c=0&&(f.record.path!==r[c].record.path||!u2(f,r[c]));)c++;r.splice(c,0,f),f.record.name&&!V1(f)&&n.set(f.record.name,f)}function u(f,c){let h,d={},v,p;if("name"in f&&f.name){if(h=n.get(f.name),!h)throw Ls(1,{location:f});p=h.record.name,d=lt(z1(c.params,h.keys.filter(y=>!y.optional).map(y=>y.name)),f.params&&z1(f.params,h.keys.map(y=>y.name))),v=h.stringify(d)}else if("path"in f)v=f.path,h=r.find(y=>y.re.test(v)),h&&(d=h.parse(v),p=h.record.name);else{if(h=c.name?n.get(c.name):r.find(y=>y.re.test(c.path)),!h)throw Ls(1,{location:f,currentLocation:c});p=h.record.name,d=lt({},c.params,f.params),v=h.stringify(d)}const m=[];let g=h;for(;g;)m.unshift(g.record),g=g.parent;return{name:p,path:v,params:d,matched:m,meta:xG(m)}}return e.forEach(f=>a(f)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function z1(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function wG(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:SG(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function SG(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const n in e.components)t[n]=typeof r=="object"?r[n]:r;return t}function V1(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function xG(e){return e.reduce((t,r)=>lt(t,r.meta),{})}function W1(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function u2(e,t){return t.children.some(r=>r===e||u2(e,r))}const f2=/#/g,CG=/&/g,TG=/\//g,MG=/=/g,AG=/\?/g,c2=/\+/g,PG=/%5B/g,EG=/%5D/g,d2=/%5E/g,LG=/%60/g,h2=/%7B/g,DG=/%7C/g,v2=/%7D/g,IG=/%20/g;function Zy(e){return encodeURI(""+e).replace(DG,"|").replace(PG,"[").replace(EG,"]")}function OG(e){return Zy(e).replace(h2,"{").replace(v2,"}").replace(d2,"^")}function Dg(e){return Zy(e).replace(c2,"%2B").replace(IG,"+").replace(f2,"%23").replace(CG,"%26").replace(LG,"`").replace(h2,"{").replace(v2,"}").replace(d2,"^")}function RG(e){return Dg(e).replace(MG,"%3D")}function kG(e){return Zy(e).replace(f2,"%23").replace(AG,"%3F")}function NG(e){return e==null?"":kG(e).replace(TG,"%2F")}function yd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function BG(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&Dg(a)):[n&&Dg(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function FG(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=En(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}const $G=Symbol(""),U1=Symbol(""),Qy=Symbol(""),p2=Symbol(""),Ig=Symbol("");function el(){let e=[];function t(n){return e.push(n),()=>{const i=e.indexOf(n);i>-1&&e.splice(i,1)}}function r(){e=[]}return{add:t,list:()=>e.slice(),reset:r}}function Xi(e,t,r,n,i){const a=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((o,s)=>{const l=c=>{c===!1?s(Ls(4,{from:r,to:t})):c instanceof Error?s(c):fG(c)?s(Ls(2,{from:t,to:c})):(a&&n.enterCallbacks[i]===a&&typeof c=="function"&&a.push(c),o())},u=e.call(n&&n.instances[i],t,r,l);let f=Promise.resolve(u);e.length<3&&(f=f.then(l)),f.catch(c=>s(c))})}function vv(e,t,r,n){const i=[];for(const a of e)for(const o in a.components){let s=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(HG(s)){const u=(s.__vccOpts||s)[t];u&&i.push(Xi(u,r,n,a,o))}else{let l=s();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${a.path}"`));const f=UW(u)?u.default:u;a.components[o]=f;const h=(f.__vccOpts||f)[t];return h&&Xi(h,r,n,a,o)()}))}}return i}function HG(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Y1(e){const t=Le(Qy),r=Le(p2),n=k(()=>t.resolve(T(e.to))),i=k(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const h=c.findIndex(Es.bind(null,f));if(h>-1)return h;const d=j1(l[u-2]);return u>1&&j1(f)===d&&c[c.length-1].path!==d?c.findIndex(Es.bind(null,l[u-2])):h}),a=k(()=>i.value>-1&&GG(r.params,n.value.params)),o=k(()=>i.value>-1&&i.value===r.matched.length-1&&a2(r.params,n.value.params));function s(l={}){return WG(l)?t[T(e.replace)?"replace":"push"](T(e.to)).catch(Gl):Promise.resolve()}return{route:n,href:k(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const zG=ie({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Y1,setup(e,{slots:t}){const r=Ln(Y1(e)),{options:n}=Le(Qy),i=k(()=>({[q1(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[q1(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:Te("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),VG=zG;function WG(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function GG(e,t){for(const r in t){const n=t[r],i=e[r];if(typeof n=="string"){if(n!==i)return!1}else if(!En(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function j1(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const q1=(e,t,r)=>e??t??r,UG=ie({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const n=Le(Ig),i=k(()=>e.route||n.value),a=Le(U1,0),o=k(()=>{let u=T(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=k(()=>i.value.matched[o.value]);Dt(U1,k(()=>o.value+1)),Dt($G,s),Dt(Ig,i);const l=$();return be(()=>[l.value,s.value,e.name],([u,f,c],[h,d,v])=>{f&&(f.instances[c]=u,d&&d!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=d.leaveGuards),f.updateGuards.size||(f.updateGuards=d.updateGuards))),u&&f&&(!d||!Es(f,d)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=e.name,c=s.value,h=c&&c.components[f];if(!h)return K1(r.default,{Component:h,route:u});const d=c.props[f],v=d?d===!0?u.params:typeof d=="function"?d(u):d:null,m=Te(h,lt({},v,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return K1(r.default,{Component:m,route:u})||m}}});function K1(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const YG=UG;function jG(e){const t=bG(e.routes,e),r=e.parseQuery||BG,n=e.stringifyQuery||G1,i=e.history,a=el(),o=el(),s=el(),l=ty(Ri);let u=Ri;Zo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=dv.bind(null,B=>""+B),c=dv.bind(null,NG),h=dv.bind(null,yd);function d(B,Y){let K,Q;return s2(B)?(K=t.getRecordMatcher(B),Q=Y):Q=B,t.addRoute(Q,K)}function v(B){const Y=t.getRecordMatcher(B);Y&&t.removeRoute(Y)}function p(){return t.getRoutes().map(B=>B.record)}function m(B){return!!t.getRecordMatcher(B)}function g(B,Y){if(Y=lt({},Y||l.value),typeof B=="string"){const I=hv(r,B,Y.path),W=t.resolve({path:I.path},Y),X=i.createHref(I.fullPath);return lt(I,W,{params:h(W.params),hash:yd(I.hash),redirectedFrom:void 0,href:X})}let K;if("path"in B)K=lt({},B,{path:hv(r,B.path,Y.path).path});else{const I=lt({},B.params);for(const W in I)I[W]==null&&delete I[W];K=lt({},B,{params:c(I)}),Y.params=c(Y.params)}const Q=t.resolve(K,Y),oe=B.hash||"";Q.params=f(h(Q.params));const pe=qW(n,lt({},B,{hash:OG(oe),path:Q.path})),D=i.createHref(pe);return lt({fullPath:pe,hash:oe,query:n===G1?FG(B.query):B.query||{}},Q,{redirectedFrom:void 0,href:D})}function y(B){return typeof B=="string"?hv(r,B,l.value.path):lt({},B)}function _(B,Y){if(u!==B)return Ls(8,{from:Y,to:B})}function b(B){return S(B)}function x(B){return b(lt(y(B),{replace:!0}))}function w(B){const Y=B.matched[B.matched.length-1];if(Y&&Y.redirect){const{redirect:K}=Y;let Q=typeof K=="function"?K(B):K;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=y(Q):{path:Q},Q.params={}),lt({query:B.query,hash:B.hash,params:"path"in Q?{}:B.params},Q)}}function S(B,Y){const K=u=g(B),Q=l.value,oe=B.state,pe=B.force,D=B.replace===!0,I=w(K);if(I)return S(lt(y(I),{state:typeof I=="object"?lt({},oe,I.state):oe,force:pe,replace:D}),Y||K);const W=K;W.redirectedFrom=Y;let X;return!pe&&KW(n,Q,K)&&(X=Ls(16,{to:W,from:Q}),ee(Q,Q,!0,!1)),(X?Promise.resolve(X):A(W,Q)).catch(j=>li(j)?li(j,2)?j:z(j):U(j,W,Q)).then(j=>{if(j){if(li(j,2))return S(lt({replace:D},y(j.to),{state:typeof j.to=="object"?lt({},oe,j.to.state):oe,force:pe}),Y||W)}else j=E(W,Q,!0,D,oe);return P(W,Q,j),j})}function C(B,Y){const K=_(B,Y);return K?Promise.reject(K):Promise.resolve()}function M(B){const Y=we.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(B):B()}function A(B,Y){let K;const[Q,oe,pe]=qG(B,Y);K=vv(Q.reverse(),"beforeRouteLeave",B,Y);for(const I of Q)I.leaveGuards.forEach(W=>{K.push(Xi(W,B,Y))});const D=C.bind(null,B,Y);return K.push(D),Ie(K).then(()=>{K=[];for(const I of a.list())K.push(Xi(I,B,Y));return K.push(D),Ie(K)}).then(()=>{K=vv(oe,"beforeRouteUpdate",B,Y);for(const I of oe)I.updateGuards.forEach(W=>{K.push(Xi(W,B,Y))});return K.push(D),Ie(K)}).then(()=>{K=[];for(const I of pe)if(I.beforeEnter)if(En(I.beforeEnter))for(const W of I.beforeEnter)K.push(Xi(W,B,Y));else K.push(Xi(I.beforeEnter,B,Y));return K.push(D),Ie(K)}).then(()=>(B.matched.forEach(I=>I.enterCallbacks={}),K=vv(pe,"beforeRouteEnter",B,Y),K.push(D),Ie(K))).then(()=>{K=[];for(const I of o.list())K.push(Xi(I,B,Y));return K.push(D),Ie(K)}).catch(I=>li(I,8)?I:Promise.reject(I))}function P(B,Y,K){s.list().forEach(Q=>M(()=>Q(B,Y,K)))}function E(B,Y,K,Q,oe){const pe=_(B,Y);if(pe)return pe;const D=Y===Ri,I=Zo?history.state:{};K&&(Q||D?i.replace(B.fullPath,lt({scroll:D&&I&&I.scroll},oe)):i.push(B.fullPath,oe)),l.value=B,ee(B,Y,K,D),z()}let L;function O(){L||(L=i.listen((B,Y,K)=>{if(!$e.listening)return;const Q=g(B),oe=w(Q);if(oe){S(lt(oe,{replace:!0}),Q).catch(Gl);return}u=Q;const pe=l.value;Zo&&nG(N1(pe.fullPath,K.delta),gh()),A(Q,pe).catch(D=>li(D,12)?D:li(D,2)?(S(D.to,Q).then(I=>{li(I,20)&&!K.delta&&K.type===Tu.pop&&i.go(-1,!1)}).catch(Gl),Promise.reject()):(K.delta&&i.go(-K.delta,!1),U(D,Q,pe))).then(D=>{D=D||E(Q,pe,!1),D&&(K.delta&&!li(D,8)?i.go(-K.delta,!1):K.type===Tu.pop&&li(D,20)&&i.go(-1,!1)),P(Q,pe,D)}).catch(Gl)}))}let N=el(),H=el(),V;function U(B,Y,K){z(B);const Q=H.list();return Q.length?Q.forEach(oe=>oe(B,Y,K)):console.error(B),Promise.reject(B)}function F(){return V&&l.value!==Ri?Promise.resolve():new Promise((B,Y)=>{N.add([B,Y])})}function z(B){return V||(V=!B,O(),N.list().forEach(([Y,K])=>B?K(B):Y()),N.reset()),B}function ee(B,Y,K,Q){const{scrollBehavior:oe}=e;if(!Zo||!oe)return Promise.resolve();const pe=!K&&iG(N1(B.fullPath,0))||(Q||!K)&&history.state&&history.state.scroll||null;return Nt().then(()=>oe(B,Y,pe)).then(D=>D&&rG(D)).catch(D=>U(D,B,Y))}const J=B=>i.go(B);let me;const we=new Set,$e={currentRoute:l,listening:!0,addRoute:d,removeRoute:v,hasRoute:m,getRoutes:p,resolve:g,options:e,push:b,replace:x,go:J,back:()=>J(-1),forward:()=>J(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:H.add,isReady:F,install(B){const Y=this;B.component("RouterLink",VG),B.component("RouterView",YG),B.config.globalProperties.$router=Y,Object.defineProperty(B.config.globalProperties,"$route",{enumerable:!0,get:()=>T(l)}),Zo&&!me&&l.value===Ri&&(me=!0,b(i.location).catch(oe=>{}));const K={};for(const oe in Ri)Object.defineProperty(K,oe,{get:()=>l.value[oe],enumerable:!0});B.provide(Qy,Y),B.provide(p2,Qm(K)),B.provide(Ig,l);const Q=B.unmount;we.add(B),B.unmount=function(){we.delete(B),we.size<1&&(u=Ri,L&&L(),L=null,l.value=Ri,me=!1,V=!1),Q()}}};function Ie(B){return B.reduce((Y,K)=>Y.then(()=>M(K)),Promise.resolve())}return $e}function qG(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oEs(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>Es(u,l))||i.push(l))}return[r,n,i]}var Og={exports:{}};(function(e,t){var r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol?"symbol":typeof n};(function(n,i){r(t)==="object"?e.exports=i():n.Humanize=i()})(a8,function(){var n=[{name:"second",value:1e3},{name:"minute",value:6e4},{name:"hour",value:36e5},{name:"day",value:864e5},{name:"week",value:6048e5}],i={P:Math.pow(2,50),T:Math.pow(2,40),G:Math.pow(2,30),M:Math.pow(2,20)},a=function(c){return typeof c<"u"&&c!==null},o=function(c){return c!==c},s=function(c){return isFinite(c)&&!o(parseFloat(c))},l=function(c){var h=Object.prototype.toString.call(c);return h==="[object Array]"},u={intword:function(c,h){var d=arguments.length<=2||arguments[2]===void 0?2:arguments[2];return u.compactInteger(c,d)},compactInteger:function(c){var h=arguments.length<=1||arguments[1]===void 0?0:arguments[1];h=Math.max(h,0);var d=parseInt(c,10),v=d<0?"-":"",p=Math.abs(d),m=String(p),g=m.length,y=[13,10,7,4],_=["T","B","M","k"];if(p<1e3)return""+v+m;if(g>y[0]+3)return d.toExponential(h).replace("e+","x10^");for(var b=void 0,x=0;x=w){b=w;break}}var S=g-b+1,C=m.split(""),M=C.slice(0,S),A=C.slice(S,S+h+1),P=M.join(""),E=A.join("");E.length=v)return u.formatNumber(c/v,h,"")+" "+d+"B"}return c>=1024?u.formatNumber(c/1024,0)+" KB":u.formatNumber(c,0)+u.pluralize(c," byte")},filesize:function(){return u.fileSize.apply(u,arguments)},formatNumber:function(c){var h=arguments.length<=1||arguments[1]===void 0?0:arguments[1],d=arguments.length<=2||arguments[2]===void 0?",":arguments[2],v=arguments.length<=3||arguments[3]===void 0?".":arguments[3],p=function(S,C,M){return M?S.substr(0,M)+C:""},m=function(S,C,M){return S.substr(M).replace(/(\d{3})(?=\d)/g,"$1"+C)},g=function(S,C,M){return M?C+u.toFixed(Math.abs(S),M).split(".")[1]:""},y=u.normalizePrecision(h),_=c<0&&"-"||"",b=String(parseInt(u.toFixed(Math.abs(c||0),y),10)),x=b.length>3?b.length%3:0;return _+p(b,d,x)+m(b,d,x)+g(c,v,y)},toFixed:function(c,h){h=a(h)?h:u.normalizePrecision(h,0);var d=Math.pow(10,h);return(Math.round(c*d)/d).toFixed(h)},normalizePrecision:function(c,h){return c=Math.round(Math.abs(c)),o(c)?h:c},ordinal:function(c){var h=parseInt(c,10);if(h===0)return c;var d=h%100;if([11,12,13].indexOf(d)>=0)return h+"th";var v=h%10,p=void 0;switch(v){case 1:p="st";break;case 2:p="nd";break;case 3:p="rd";break;default:p="th"}return""+h+p},times:function(c){var h=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];if(s(c)&&c>=0){var d=parseFloat(c),v=["never","once","twice"];if(a(h[d]))return String(h[d]);var p=a(v[d])&&v[d].toString();return p||d.toString()+" times"}return null},pluralize:function(c,h,d){return a(c)&&a(h)?(d=a(d)?d:h+"s",parseInt(c,10)===1?h:d):null},truncate:function(c){var h=arguments.length<=1||arguments[1]===void 0?100:arguments[1],d=arguments.length<=2||arguments[2]===void 0?"...":arguments[2];return c.length>h?c.substring(0,h-d.length)+d:c},truncateWords:function(c,h){for(var d=c.split(" "),v="",p=0;ph?v+"...":null},truncatewords:function(){return u.truncateWords.apply(u,arguments)},boundedNumber:function(c){var h=arguments.length<=1||arguments[1]===void 0?100:arguments[1],d=arguments.length<=2||arguments[2]===void 0?"+":arguments[2],v=void 0;return s(c)&&s(h)&&c>h&&(v=h+d),(v||c).toString()},truncatenumber:function(){return u.boundedNumber.apply(u,arguments)},oxford:function(c,h,d){var v=c.length,p=void 0;if(v<2)return String(c);if(v===2)return c.join(" and ");if(a(h)&&v>h){var m=v-h;p=h,d=a(d)?d:", and "+m+" "+u.pluralize(m,"other")}else p=-1,d=", and "+c[v-1];return c.slice(0,p).join(", ")+d},dictionary:function(c){var h=arguments.length<=1||arguments[1]===void 0?" is ":arguments[1],d=arguments.length<=2||arguments[2]===void 0?", ":arguments[2],v="";if(a(c)&&(typeof c>"u"?"undefined":r(c))==="object"&&!l(c)){var p=[];for(var m in c)if(c.hasOwnProperty(m)){var g=c[m];p.push(""+m+h+g)}return p.join(d)}return v},frequency:function(c,h){if(!l(c))return null;var d=c.length,v=u.times(d);return d===0?v+" "+h:h+" "+v},pace:function(c,h){var d=arguments.length<=2||arguments[2]===void 0?"time":arguments[2];if(c===0||h===0)return"No "+u.pluralize(0,d);for(var v="Approximately",p=void 0,m=void 0,g=c/h,y=0;y1){p=_.name;break}}p||(v="Less than",m=1,p=n[n.length-1].name);var b=Math.round(m);return d=u.pluralize(b,d),v+" "+b+" "+d+" per "+p},nl2br:function(c){var h=arguments.length<=1||arguments[1]===void 0?"
":arguments[1];return c.replace(/\n/g,h)},br2nl:function(c){var h=arguments.length<=1||arguments[1]===void 0?`\r -`:arguments[1];return c.replace(/\/g,h)},capitalize:function(c){var h=arguments.length<=1||arguments[1]===void 0?!1:arguments[1];return""+c.charAt(0).toUpperCase()+(h?c.slice(1).toLowerCase():c.slice(1))},capitalizeAll:function(c){return c.replace(/(?:^|\s)\S/g,function(h){return h.toUpperCase()})},titleCase:function(c){var h=/\b(a|an|and|at|but|by|de|en|for|if|in|of|on|or|the|to|via|vs?\.?)\b/i,d=/\S+[A-Z]+\S*/,v=/\s+/,p=/-/,m=void 0;return m=function(y){for(var _=arguments.length<=1||arguments[1]===void 0?!1:arguments[1],b=arguments.length<=2||arguments[2]===void 0?!0:arguments[2],x=[],w=y.split(_?p:v),S=0;S"u"&&typeof self<"u"?He.worker=!0:typeof navigator>"u"?(He.node=!0,He.svgSupported=!0):ZG(navigator.userAgent,He);function ZG(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),i&&(r.ie=!0,r.version=i[1]),a&&(r.edge=!0,r.version=a[1],r.newEdge=+a[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in s||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}var Jy=12,QG="sans-serif",_o=Jy+"px "+QG,JG=20,eU=100,tU="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function rU(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return r}function AU(e,t,r){for(var n=r?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=e[u].getBoundingClientRect(),c=2*u,h=f.left,d=f.top;o.push(h,d),l=l&&a&&h===a[c]&&d===a[c+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?J1(s,o):J1(o,s))}function x2(e){return e.nodeName.toUpperCase()==="CANVAS"}var PU=/([&<>"'])/g,EU={"&":"&","<":"<",">":">",'"':""","'":"'"};function tn(e){return e==null?"":(e+"").replace(PU,function(t,r){return EU[r]})}var LU=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,yv=[],DU=He.browser.firefox&&+He.browser.version.split(".")[0]<39;function zg(e,t,r,n){return r=r||{},n?tw(e,t,r):DU&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):tw(e,t,r),r}function tw(e,t,r){if(He.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(x2(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Hg(yv,e,n,i)){r.zrX=yv[0],r.zrY=yv[1];return}}r.zrX=r.zrY=0}function i0(e){return e||window.event}function Qr(e,t,r){if(t=i0(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&zg(e,o,t,r)}else{zg(e,t,t,r);var a=IU(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&LU.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function IU(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function OU(e,t,r,n){e.addEventListener(t,r,n)}function RU(e,t,r,n){e.removeEventListener(t,r,n)}var C2=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},kU=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:r,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=rw(n)/rw(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=NU(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function Pu(){return[1,0,0,1,0,0]}function a0(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function BU(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function fs(e,t,r){var n=t[0]*r[0]+t[2]*r[1],i=t[1]*r[0]+t[3]*r[1],a=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e}function Vg(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function o0(e,t,r){var n=t[0],i=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(r),f=Math.cos(r);return e[0]=n*f+o*u,e[1]=-n*u+o*f,e[2]=i*f+s*u,e[3]=-i*u+f*s,e[4]=f*a+u*l,e[5]=f*l-u*a,e}function FU(e,t,r){var n=r[0],i=r[1];return e[0]=t[0]*n,e[1]=t[1]*i,e[2]=t[2]*n,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*i,e}function bh(e,t){var r=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=r*o-a*n;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*i)*l,e[5]=(a*i-r*s)*l,e):null}var $U=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,i){t.x=r.x+n.x*i,t.y=r.y+n.y*i},e.lerp=function(t,r,n,i){var a=1-i;t.x=a*r.x+i*n.x,t.y=a*r.y+i*n.y},e}();const Fe=$U;var kf=Math.min,Nf=Math.max,wa=new Fe,Sa=new Fe,xa=new Fe,Ca=new Fe,tl=new Fe,rl=new Fe,nt=function(){function e(t,r,n,i){n<0&&(t=t+n,n=-n),i<0&&(r=r+i,i=-i),this.x=t,this.y=r,this.width=n,this.height=i}return e.prototype.union=function(t){var r=kf(t.x,this.x),n=kf(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Nf(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Nf(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,i=t.height/r.height,a=Pu();return Vg(a,a,[-r.x,-r.y]),FU(a,a,[n,i]),Vg(a,a,[t.x,t.y]),a},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,f=t.y,c=t.y+t.height,h=!(av&&(v=_,pv&&(v=b,g=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=r.x*i+o,t.y=r.y*a+s,t.width=r.width*i,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}wa.x=xa.x=r.x,wa.y=Ca.y=r.y,Sa.x=Ca.x=r.x+r.width,Sa.y=xa.y=r.y+r.height,wa.transform(n),Ca.transform(n),Sa.transform(n),xa.transform(n),t.x=kf(wa.x,Sa.x,xa.x,Ca.x),t.y=kf(wa.y,Sa.y,xa.y,Ca.y);var l=Nf(wa.x,Sa.x,xa.x,Ca.x),u=Nf(wa.y,Sa.y,xa.y,Ca.y);t.width=l-t.x,t.height=u-t.y},e}(),T2="silent";function HU(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:zU}}function zU(){C2(this.event)}var VU=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ii),nl=function(){function e(t,r){this.x=t,this.y=r}return e}(),WU=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],bv=new nt(0,0,0,0),M2=function(e){ge(t,e);function t(r,n,i,a,o){var s=e.call(this)||this;return s._hovered=new nl(0,0),s.storage=r,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new VU,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new SU(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(R(WU,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,i=r.zrY,a=A2(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new nl(n,i):this.findHover(n,i),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(l,"mousemove",r),u&&u!==s&&this.dispatchToElement(l,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new nl(0,0)},t.prototype.dispatch=function(r,n){var i=this[r];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,i){r=r||{};var a=r.target;if(!(a&&a.silent)){for(var o="on"+n,s=HU(n,r,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(r,n,i){var a=this.storage.getDisplayList(),o=new nl(r,n);if(nw(a,o,r,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new nt(r-u,n-u,l,l),c=a.length-1;c>=0;c--){var h=a[c];h!==i&&!h.ignore&&!h.ignoreCoarsePointer&&(!h.parent||!h.parent.ignoreCoarsePointer)&&(bv.copy(h.getBoundingRect()),h.transform&&bv.applyTransform(h.transform),bv.intersect(f)&&s.push(h))}if(s.length)for(var d=4,v=Math.PI/12,p=Math.PI*2,m=0;m4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function GU(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(i=!0)}var s=n.__hostTarget;n=s||n.parent}return i?T2:!0}return!1}function nw(e,t,r,n,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=GU(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==T2)){t.target=o;break}}}function A2(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const UU=M2;var P2=32,il=7;function YU(e){for(var t=0;e>=P2;)t|=e&1,e>>=1;return e+t}function iw(e,t,r,n){var i=t+1;if(i===r)return 1;if(n(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function jU(e,t,r){for(r--;t>>1,i(a,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=a}}function wv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(e,t[r+f])>0?o=f+1:l=f}return l}function Sv(e,t,r,n,i,a){var o=0,s=0,l=1;if(a(e,t[r+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(e,t[r+f])<0?l=f:o=f+1}return l}function qU(e,t){var r=il,n,i,a=0;e.length;var o=[];n=[],i=[];function s(d,v){n[a]=d,i[a]=v,a+=1}function l(){for(;a>1;){var d=a-2;if(d>=1&&i[d-1]<=i[d]+i[d+1]||d>=2&&i[d-2]<=i[d]+i[d-1])i[d-1]i[d+1])break;f(d)}}function u(){for(;a>1;){var d=a-2;d>0&&i[d-1]=il||S>=il);if(C)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),v===1){for(g=0;g=0;g--)e[w+g]=e[x+g];e[b]=o[_];return}for(var S=r;;){var C=0,M=0,A=!1;do if(t(o[_],e[y])<0){if(e[b--]=e[y--],C++,M=0,--v===0){A=!0;break}}else if(e[b--]=o[_--],M++,C=0,--m===1){A=!0;break}while((C|M)=0;g--)e[w+g]=e[x+g];if(v===0){A=!0;break}}if(e[b--]=o[_--],--m===1){A=!0;break}if(M=m-wv(e[y],o,0,m,m-1,t),M!==0){for(b-=M,_-=M,m-=M,w=b+1,x=_+1,g=0;g=il||M>=il);if(A)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),m===1){for(b-=v,y-=v,w=b+1,x=y+1,g=v-1;g>=0;g--)e[w+g]=e[x+g];e[b]=o[_]}else{if(m===0)throw new Error;for(x=b-(m-1),g=0;gs&&(l=s),aw(e,r,r+l,r+a,t),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Br=1,Cl=2,Qo=4,ow=!1;function xv(){ow||(ow=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function sw(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var KU=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=sw}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(xv(),f.z=0),isNaN(f.z2)&&(xv(),f.z2=0),isNaN(f.zlevel)&&(xv(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var h=t.getTextGuideLine();h&&this._updateAndAddDisplayable(h,r,n);var d=t.getTextContent();d&&this._updateAndAddDisplayable(d,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),E2;E2=He.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};const Wg=E2;var ql={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-ql.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?ql.bounceIn(e*2)*.5:ql.bounceOut(e*2-1)*.5+.5}},Bf=Math.pow,ia=Math.sqrt,wd=1e-8,L2=1e-4,lw=ia(3),Ff=1/3,Vn=Us(),rn=Us(),cs=Us();function Ji(e){return e>-wd&&ewd||e<-wd}function Zt(e,t,r,n,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*n+3*a*r)}function uw(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function I2(e,t,r,n,i,a){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-i,f=s*s-3*o*l,c=s*l-9*o*u,h=l*l-3*s*u,d=0;if(Ji(f)&&Ji(c))if(Ji(s))a[0]=0;else{var v=-l/s;v>=0&&v<=1&&(a[d++]=v)}else{var p=c*c-4*f*h;if(Ji(p)){var m=c/f,v=-s/o+m,g=-m/2;v>=0&&v<=1&&(a[d++]=v),g>=0&&g<=1&&(a[d++]=g)}else if(p>0){var y=ia(p),_=f*s+1.5*o*(-c+y),b=f*s+1.5*o*(-c-y);_<0?_=-Bf(-_,Ff):_=Bf(_,Ff),b<0?b=-Bf(-b,Ff):b=Bf(b,Ff);var v=(-s-(_+b))/(3*o);v>=0&&v<=1&&(a[d++]=v)}else{var x=(2*f*s-3*o*c)/(2*ia(f*f*f)),w=Math.acos(x)/3,S=ia(f),C=Math.cos(w),v=(-s-2*S*C)/(3*o),g=(-s+S*(C+lw*Math.sin(w)))/(3*o),M=(-s+S*(C-lw*Math.sin(w)))/(3*o);v>=0&&v<=1&&(a[d++]=v),g>=0&&g<=1&&(a[d++]=g),M>=0&&M<=1&&(a[d++]=M)}}return d}function O2(e,t,r,n,i){var a=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(Ji(o)){if(D2(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Ji(f))i[0]=-a/(2*o);else if(f>0){var c=ia(f),u=(-a+c)/(2*o),h=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),h>=0&&h<=1&&(i[l++]=h)}}return l}function Sd(e,t,r,n,i,a){var o=(t-e)*i+e,s=(r-t)*i+t,l=(n-r)*i+r,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=e,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function R2(e,t,r,n,i,a,o,s,l,u,f){var c,h=.005,d=1/0,v,p,m,g;Vn[0]=l,Vn[1]=u;for(var y=0;y<1;y+=.05)rn[0]=Zt(e,r,i,o,y),rn[1]=Zt(t,n,a,s,y),m=us(Vn,rn),m=0&&m=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Ji(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=ia(f),u=(-o+c)/(2*a),h=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),h>=0&&h<=1&&(i[l++]=h)}}return l}function k2(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function xd(e,t,r,n,i){var a=(t-e)*n+e,o=(r-t)*n+t,s=(o-a)*n+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function N2(e,t,r,n,i,a,o,s,l){var u,f=.005,c=1/0;Vn[0]=o,Vn[1]=s;for(var h=0;h<1;h+=.05){rn[0]=ir(e,r,i,h),rn[1]=ir(t,n,a,h);var d=us(Vn,rn);d=0&&d=1?1:I2(0,n,a,1,l,s)&&Zt(0,i,o,1,s[0])}}}var e9=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Er,this.ondestroy=t.ondestroy||Er,this.onrestart=t.onrestart||Er,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Ye(t)?t:ql[t]||B2(t)},e}();const t9=e9;var F2=function(){function e(t){this.value=t}return e}(),r9=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new F2(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),af=function(){function e(t){this._list=new r9,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new F2(r),s.key=t,n.insertEntry(s),i[t]=s}return a},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),cw={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Kl(e){return e=Math.round(e),e<0?0:e>255?255:e}function dw(e){return e<0?0:e>1?1:e}function Cv(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Kl(parseFloat(t)/100*255):Kl(parseInt(t,10))}function Xl(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?dw(parseFloat(t)/100):dw(parseFloat(t))}function Tv(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function Zr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function Gg(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var $2=new af(20),$f=null;function Bo(e,t){$f&&Gg($f,t),$f=$2.put(e,$f||t.slice())}function uo(e,t){if(e){t=t||[];var r=$2.get(e);if(r)return Gg(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in cw)return Gg(t,cw[n]),Bo(e,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){Zr(t,0,0,0,1);return}return Zr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),Bo(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Zr(t,0,0,0,1);return}return Zr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Bo(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Zr(t,+u[0],+u[1],+u[2],1):Zr(t,0,0,0,1);f=Xl(u.pop());case"rgb":if(u.length>=3)return Zr(t,Cv(u[0]),Cv(u[1]),Cv(u[2]),u.length===3?f:Xl(u[3])),Bo(e,t),t;Zr(t,0,0,0,1);return;case"hsla":if(u.length!==4){Zr(t,0,0,0,1);return}return u[3]=Xl(u[3]),hw(u,t),Bo(e,t),t;case"hsl":if(u.length!==3){Zr(t,0,0,0,1);return}return hw(u,t),Bo(e,t),t;default:return}}Zr(t,0,0,0,1)}}function hw(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Xl(e[1]),i=Xl(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Zr(t,Kl(Tv(o,a,r+1/3)*255),Kl(Tv(o,a,r)*255),Kl(Tv(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function vw(e,t){var r=uo(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return s0(r,r.length===4?"rgba":"rgb")}}function s0(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function Cd(e,t){var r=uo(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function n9(e){return e.type==="linear"}function i9(e){return e.type==="radial"}(function(){return He.hasGlobalWindow&&Ye(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Ug=Array.prototype.slice;function hi(e,t,r){return(t-e)*r+e}function Mv(e,t,r,n){for(var i=t.length,a=0;an?t:e,a=Math.min(r,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=gw,l=r;if(Ir(r)){var u=l9(r);s=u,(u===1&&!Tt(r[0])||u===2&&!Tt(r[0][0]))&&(o=!0)}else if(Tt(r)&&!bd(r))s=zf;else if(Ee(r))if(!isNaN(+r))s=zf;else{var f=uo(r);f&&(l=f,s=Tl)}else if(yh(r)){var c=ue({},l);c.colorStops=Ne(r.colorStops,function(d){return{offset:d.offset,color:uo(d.color)}}),n9(r)?s=Yg:i9(r)&&(s=jg),l=c}a===0?this.valType=s:(s!==this.valType||s===gw)&&(o=!0),this.discrete=this.discrete||o;var h={time:t,value:l,rawValue:r,percent:0};return n&&(h.easing=n,h.easingFunc=Ye(n)?n:ql[n]||B2(n)),i.push(h),h},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(p,m){return p.time-m.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=Vf(i),u=mw(i),f=0;f=0&&!(o[f].percent<=r);f--);f=h(f,s-2)}else{for(f=c;fr);f++);f=h(f-1,s-2)}v=o[f+1],d=o[f]}if(d&&v){this._lastFr=f,this._lastFrP=r;var m=v.percent-d.percent,g=m===0?1:h((r-d.percent)/m,1);v.easingFunc&&(g=v.easingFunc(g));var y=n?this._additiveValue:u?al:t[l];if((Vf(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=g<1?d.rawValue:v.rawValue;else if(Vf(a))a===Vc?Mv(y,d[i],v[i],g):a9(y,d[i],v[i],g);else if(mw(a)){var _=d[i],b=v[i],x=a===Yg;t[l]={type:x?"linear":"radial",x:hi(_.x,b.x,g),y:hi(_.y,b.y,g),colorStops:Ne(_.colorStops,function(S,C){var M=b.colorStops[C];return{offset:hi(S.offset,M.offset,g),color:zc(Mv([],S.color,M.color,g))}}),global:b.global},x?(t[l].x2=hi(_.x2,b.x2,g),t[l].y2=hi(_.y2,b.y2,g)):t[l].r=hi(_.r,b.r,g)}else if(u)Mv(y,d[i],v[i],g),n||(t[l]=zc(y));else{var w=hi(d[i],v[i],g);n?this._additiveValue=w:t[l]=w}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===zf?t[n]=t[n]+i:r===Tl?(uo(t[n],al),Hf(al,al,i,1),t[n]=zc(al)):r===Vc?Hf(t[n],t[n],i,1):r===H2&&pw(t[n],t[n],i,1)},e}(),l0=function(){function e(t,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&i){r0("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Ct(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Hc(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Hc(r[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},e}();function ns(){return new Date().getTime()}var f9=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,i=r.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=ns()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,r||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Wg(n),!r._paused&&r.update())}Wg(n)},t.prototype.start=function(){this._running||(this._time=ns(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=ns(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=ns()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var i=new l0(r,n.loop);return this.addAnimator(i),i},t}(ii),c9=300,Av=He.domSupported,Pv=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=Ne(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),yw={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},_w=!1;function qg(e){var t=e.pointerType;return t==="pen"||t==="touch"}function d9(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function Ev(e){e&&(e.zrByTouch=!0)}function h9(e,t){return Qr(e.dom,new v9(e,t),!0)}function z2(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var v9=function(){function e(t,r){this.stopPropagation=Er,this.stopImmediatePropagation=Er,this.preventDefault=Er,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),yn={mousedown:function(e){e=Qr(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Qr(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Qr(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Qr(this.dom,e);var t=e.toElement||e.relatedTarget;z2(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){_w=!0,e=Qr(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){_w||(e=Qr(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Qr(this.dom,e),Ev(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),yn.mousemove.call(this,e),yn.mousedown.call(this,e)},touchmove:function(e){e=Qr(this.dom,e),Ev(e),this.handler.processGesture(e,"change"),yn.mousemove.call(this,e)},touchend:function(e){e=Qr(this.dom,e),Ev(e),this.handler.processGesture(e,"end"),yn.mouseup.call(this,e),+new Date-+this.__lastTouchMomentSw||e<-Sw}var Ma=[],Fo=[],Dv=Pu(),Iv=Math.abs,wh=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return Ta(this.rotation)||Ta(this.x)||Ta(this.y)||Ta(this.scaleX-1)||Ta(this.scaleY-1)||Ta(this.skewX)||Ta(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&(ww(n),this.invTransform=null);return}n=n||Pu(),r?this.getLocalTransform(n):ww(n),t&&(r?fs(n,t,n):BU(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Ma);var n=Ma[0]<0?-1:1,i=Ma[1]<0?-1:1,a=((Ma[0]-n)*r+n)/Ma[0]||0,o=((Ma[1]-i)*r+i)/Ma[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Pu(),bh(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(fs(Fo,t.invTransform,r),r=Fo);var n=this.originX,i=this.originY;(n||i)&&(Dv[4]=n,Dv[5]=i,fs(Fo,r,Dv),Fo[4]-=n,Fo[5]-=i,r=Fo),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],i=this.invTransform;return i&&un(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&un(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&Iv(t[0]-1)>1e-10&&Iv(t[3]-1)>1e-10?Math.sqrt(Iv(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){b9(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,f=t.x,c=t.y,h=t.skewX?Math.tan(t.skewX):0,d=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var v=n+s,p=i+l;r[4]=-v*a-h*p*o,r[5]=-p*o-d*v*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=d*a,r[2]=h*o,u&&o0(r,r,u),r[4]+=n+f,r[5]+=i+c,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Eu=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function b9(e,t){for(var r=0;r=0?parseFloat(e)/100*t:parseFloat(e):e}function Md(e,t,r){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=r.height,o=r.width,s=a/2,l=r.x,u=r.y,f="left",c="top";if(n instanceof Array)l+=da(n[0],r.width),u+=da(n[1],r.height),f=null,c=null;else switch(n){case"left":l-=i,u+=s,f="right",c="middle";break;case"right":l+=i+o,u+=s,c="middle";break;case"top":l+=o/2,u-=i,f="center",c="bottom";break;case"bottom":l+=o/2,u+=a+i,f="center";break;case"inside":l+=o/2,u+=s,f="center",c="middle";break;case"insideLeft":l+=i,u+=s,c="middle";break;case"insideRight":l+=o-i,u+=s,f="right",c="middle";break;case"insideTop":l+=o/2,u+=i,f="center";break;case"insideBottom":l+=o/2,u+=a-i,f="center",c="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,f="right";break;case"insideBottomLeft":l+=i,u+=a-i,c="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,f="right",c="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=f,e.verticalAlign=c,e}var Ov="__zr_normal__",Rv=Eu.concat(["ignore"]),w9=ca(Eu,function(e,t){return e[t]=!0,e},{ignore:!1}),$o={},S9=new nt(0,0,0,0),c0=function(){function e(t){this.id=y2(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=r.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(r),n.position!=null){var f=S9;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition($o,n,f):Md($o,n,f),a.x=$o.x,a.y=$o.y,o=$o.align,s=$o.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var h=void 0,d=void 0;c==="center"?(h=f.width*.5,d=f.height*.5):(h=da(c[0],f.width),d=da(c[1],f.height)),u=!0,a.originX=-a.x+h+(i?0:f.x),a.originY=-a.y+d+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var v=n.offset;v&&(a.x+=v[0],a.y+=v[1],u||(a.originX=-v[0],a.originY=-v[1]));var p=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,m=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),g=void 0,y=void 0,_=void 0;p&&this.canBeInsideText()?(g=n.insideFill,y=n.insideStroke,(g==null||g==="auto")&&(g=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(g),_=!0)):(g=n.outsideFill,y=n.outsideStroke,(g==null||g==="auto")&&(g=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(g),_=!0)),g=g||"#000",(g!==m.fill||y!==m.stroke||_!==m.autoStroke||o!==m.align||s!==m.verticalAlign)&&(l=!0,m.fill=g,m.stroke=y,m.autoStroke=_,m.align=o,m.verticalAlign=s,r.setDefaultTextStyle(m)),r.__dirty|=Br,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Qg:Zg},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&uo(r);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,s0(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},ue(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Re(t))for(var n=t,i=Ct(n),a=0;a0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(Ov,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===Ov,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ot(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){r0("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||i);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,h=this._textGuide;return c&&c.useState(t,r,n,f),h&&h.useState(t,r,n,f),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Br),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,v);var p=this._textContent,m=this._textGuide;p&&p.useStates(t,r,h),m&&m.useStates(t,r,h),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Br)}},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var i=this.currentStates.slice(),a=ot(i,t),o=ot(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(v,p){r.during(p)});for(var h=0;h0||i.force&&!o.length){var C=void 0,M=void 0,A=void 0;if(s){M={},h&&(C={});for(var b=0;b<_;b++){var g=p[b];M[g]=r[g],h?C[g]=n[g]:r[g]=n[g]}}else if(h){A={};for(var b=0;b<_;b++){var g=p[b];A[g]=Hc(r[g]),C9(r,n,g)}}var x=new l0(r,!1,!1,c?jt(v,function(E){return E.targetName===t}):null);x.targetName=t,i.scope&&(x.scope=i.scope),h&&C&&x.whenWithKeys(0,C,p),A&&x.whenWithKeys(0,A,p),x.whenWithKeys(u??500,s?M:n,p).delay(f||0),e.addAnimator(x,t),o.push(x)}}const G2=c0;var Ur=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var i=ot(this._children,r);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(r,n){var i=this._children,a=i[n];if(r&&r!==this&&r.parent!==this&&r!==a){i[n]=r,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ot(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=i)return o;if(e>=a)return s}else{if(e>=i)return o;if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/l*u+o}function yt(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return Ee(e)?D9(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function $t(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),Y2),e=(+e).toFixed(t),r?e:+e}function vi(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return I9(e)}function I9(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,i=r>0?r:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function O9(e,t){var r=Math.log,n=Math.LN10,i=Math.floor(r(e[1]-e[0])/n),a=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function R9(e,t){var r=ca(e,function(d,v){return d+(isNaN(v)?0:v)},0);if(r===0)return[];for(var n=Math.pow(10,t),i=Ne(e,function(d){return(isNaN(d)?0:d)/r*n*100}),a=n*100,o=Ne(i,function(d){return Math.floor(d)}),s=ca(o,function(d,v){return d+v},0),l=Ne(i,function(d,v){return d-o[v]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return Ne(o,function(d){return d/n})}function k9(e,t){var r=Math.max(vi(e),vi(t)),n=e+t;return r>Y2?n:$t(n,r)}function j2(e){var t=Math.PI*2;return(e%t+t)%t}function Ad(e){return e>-Mw&&e=10&&t++,t}function q2(e,t){var r=d0(e),n=Math.pow(10,r),i=e/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,e=a*n,r>=-20?+e.toFixed(r<0?-r:0):e}function Pd(e){var t=parseFloat(e);return t==e&&(t!==0||!Ee(e)||e.indexOf("x")<=0)?t:NaN}function F9(e){return!isNaN(Pd(e))}function K2(){return Math.round(Math.random()*9)}function X2(e,t){return t===0?e:X2(t,e%t)}function Aw(e,t){return e==null?t:t==null?e:e*t/X2(e,t)}function Cr(e){throw new Error(e)}function Pw(e,t,r){return(t-e)*r+e}var Z2="series\0",$9="\0_ec_\0";function pr(e){return e instanceof Array?e:e==null?[]:[e]}function em(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,i=r.length;n=0||a&&ot(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var l7=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],u7=Du(l7),f7=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return u7(this,t,r)},e}(),tm=new af(50);function c7(e){if(typeof e=="string"){var t=tm.get(e);return t&&t.image}else return e}function rP(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=tm.get(e),o={hostEl:r,cb:n,cbPayload:i};return a?(t=a.image,!xh(t)&&a.pending.push(o)):(t=Gs.loadImage(e,Lw,Lw),t.__zrImageSrc=e,tm.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function Lw(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=Vr(r,t);return u>s&&(r="",u=0),s=e-u,i.ellipsis=r,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function iP(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=Vr(e,n);if(a<=r)return e;for(var o=0;;o++){if(a<=i||o>=t.maxIterations){e+=t.ellipsis;break}var s=o===0?h7(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=Vr(e,n)}return e===""&&(e=t.placeholder),e}function h7(e,t,r,n){for(var i=0,a=0,o=e.length;ad&&u){var v=Math.floor(d/s);c=c.slice(0,v)}if(e&&a&&f!=null)for(var p=nP(f,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),m=0;ms&&$v(r,e.substring(s,u),t,o),$v(r,l[2],t,o,l[1]),s=Fv.lastIndex}si){x>0?(y.tokens=y.tokens.slice(0,x),m(y,b,_),r.lines=r.lines.slice(0,g+1)):r.lines=r.lines.slice(0,g);break e}var E=S.width,L=E==null||E==="auto";if(typeof E=="string"&&E.charAt(E.length-1)==="%")w.percentWidth=E,f.push(w),w.contentWidth=Vr(w.text,A);else{if(L){var O=S.backgroundColor,N=O&&O.image;N&&(N=c7(N),xh(N)&&(w.width=Math.max(w.width,N.width*P/N.height)))}var H=v&&n!=null?n-b:null;H!=null&&H0&&v+n.accumWidth>n.width&&(f=t.split(` -`),u=!0),n.accumWidth=v}else{var p=aP(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+d,c=p.linesWidths,f=p.lines}}else f=t.split(` -`);for(var m=0;m=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var _7=ca(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function b7(e){return y7(e)?!!_7[e]:!0}function aP(e,t,r,n,i){for(var a=[],o=[],s="",l="",u=0,f=0,c=0;cr:i+f+d>r){f?(s||l)&&(v?(s||(s=l,l="",u=0,f=u),a.push(s),o.push(f-u),l+=h,u+=d,s="",f=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(f),s=h,f=d)):v?(a.push(l),o.push(u),l=h,u=d):(a.push(h),o.push(d));continue}f+=d,v?(l+=h,u+=d):(l&&(s+=l,l="",u=0),s+=h)}return!a.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(f)),a.length===1&&(f+=i),{accumWidth:f,lines:a,linesWidths:o}}var rm="__zr_style_"+Math.round(Math.random()*10),fo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},Ch={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};fo[rm]=!0;var Iw=["z","z2","invisible"],w7=["invisible"],S7=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Ct(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Wf[0]=Wv(i)*r+e,Wf[1]=Vv(i)*n+t,Gf[0]=Wv(a)*r+e,Gf[1]=Vv(a)*n+t,u(s,Wf,Gf),f(l,Wf,Gf),i=i%Pa,i<0&&(i=i+Pa),a=a%Pa,a<0&&(a=a+Pa),i>a&&!o?a+=Pa:ii&&(Uf[0]=Wv(d)*r+e,Uf[1]=Vv(d)*n+t,u(s,Uf,s),f(l,Uf,l))}var at={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ea=[],La=[],Nn=[],ki=[],Bn=[],Fn=[],Gv=Math.min,Uv=Math.max,Da=Math.cos,Ia=Math.sin,ui=Math.abs,nm=Math.PI,Gi=nm*2,Yv=typeof Float32Array<"u",ol=[];function jv(e){var t=Math.round(e/nm*1e8)/1e8;return t%2*nm}function A7(e,t){var r=jv(e[0]);r<0&&(r+=Gi);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=Gi?i=r+Gi:t&&r-i>=Gi?i=r-Gi:!t&&r>i?i=r+(Gi-jv(r-i)):t&&r0&&(this._ux=ui(n/Td/t)||0,this._uy=ui(n/Td/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(at.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=ui(t-this._xi),i=ui(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(at.L,t,r),this._ctx&&a&&this._ctx.lineTo(t,r),a)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,i,a,o){return this._drawPendingPt(),this.addData(at.C,t,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,i,a,o),this._xi=a,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,i){return this._drawPendingPt(),this.addData(at.Q,t,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,i),this._xi=n,this._yi=i,this},e.prototype.arc=function(t,r,n,i,a,o){this._drawPendingPt(),ol[0]=i,ol[1]=a,A7(ol,o),i=ol[0],a=ol[1];var s=a-i;return this.addData(at.A,t,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,i,a,o),this._xi=Da(a)*n+t,this._yi=Ia(a)*n+r,this},e.prototype.arcTo=function(t,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,i,a),this},e.prototype.rect=function(t,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,i),this.addData(at.R,t,r,n,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(at.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&Yv&&(this.data=new Float32Array(r));for(var n=0;nf.length&&(this._expandData(),f=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){Nn[0]=Nn[1]=Bn[0]=Bn[1]=Number.MAX_VALUE,ki[0]=ki[1]=Fn[0]=Fn[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||ui(_)>i||h===r-1)&&(p=Math.sqrt(y*y+_*_),a=m,o=g);break}case at.C:{var b=t[h++],x=t[h++],m=t[h++],g=t[h++],w=t[h++],S=t[h++];p=XU(a,o,b,x,m,g,w,S,10),a=w,o=S;break}case at.Q:{var b=t[h++],x=t[h++],m=t[h++],g=t[h++];p=QU(a,o,b,x,m,g,10),a=m,o=g;break}case at.A:var C=t[h++],M=t[h++],A=t[h++],P=t[h++],E=t[h++],L=t[h++],O=L+E;h+=1,t[h++],v&&(s=Da(E)*A+C,l=Ia(E)*P+M),p=Uv(A,P)*Gv(Gi,Math.abs(L)),a=Da(O)*A+C,o=Ia(O)*P+M;break;case at.R:{s=a=t[h++],l=o=t[h++];var N=t[h++],H=t[h++];p=N*2+H*2;break}case at.Z:{var y=s-a,_=l-o;p=Math.sqrt(y*y+_*_),a=s,o=l;break}}p>=0&&(u[c++]=p,f+=p)}return this._pathLen=f,f},e.prototype.rebuildPath=function(t,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,f,c,h,d=r<1,v,p,m=0,g=0,y,_=0,b,x;if(!(d&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,p=this._pathLen,y=r*p,!y)))e:for(var w=0;w0&&(t.lineTo(b,x),_=0),S){case at.M:s=u=n[w++],l=f=n[w++],t.moveTo(u,f);break;case at.L:{c=n[w++],h=n[w++];var M=ui(c-u),A=ui(h-f);if(M>i||A>a){if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;t.lineTo(u*(1-E)+c*E,f*(1-E)+h*E);break e}m+=P}t.lineTo(c,h),u=c,f=h,_=0}else{var L=M*M+A*A;L>_&&(b=c,x=h,_=L)}break}case at.C:{var O=n[w++],N=n[w++],H=n[w++],V=n[w++],U=n[w++],F=n[w++];if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;Sd(u,O,H,U,E,Ea),Sd(f,N,V,F,E,La),t.bezierCurveTo(Ea[1],La[1],Ea[2],La[2],Ea[3],La[3]);break e}m+=P}t.bezierCurveTo(O,N,H,V,U,F),u=U,f=F;break}case at.Q:{var O=n[w++],N=n[w++],H=n[w++],V=n[w++];if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;xd(u,O,H,E,Ea),xd(f,N,V,E,La),t.quadraticCurveTo(Ea[1],La[1],Ea[2],La[2]);break e}m+=P}t.quadraticCurveTo(O,N,H,V),u=H,f=V;break}case at.A:var z=n[w++],ee=n[w++],J=n[w++],me=n[w++],we=n[w++],$e=n[w++],Ie=n[w++],B=!n[w++],Y=J>me?J:me,K=ui(J-me)>.001,Q=we+$e,oe=!1;if(d){var P=v[g++];m+P>y&&(Q=we+$e*(y-m)/P,oe=!0),m+=P}if(K&&t.ellipse?t.ellipse(z,ee,J,me,Ie,we,Q,B):t.arc(z,ee,Y,we,Q,B),oe)break e;C&&(s=Da(we)*J+z,l=Ia(we)*me+ee),u=Da(Q)*J+z,f=Ia(Q)*me+ee;break;case at.R:s=u=n[w],l=f=n[w+1],c=n[w++],h=n[w++];var pe=n[w++],D=n[w++];if(d){var P=v[g++];if(m+P>y){var I=y-m;t.moveTo(c,h),t.lineTo(c+Gv(I,pe),h),I-=pe,I>0&&t.lineTo(c+pe,h+Gv(I,D)),I-=D,I>0&&t.lineTo(c+Uv(pe-I,0),h+D),I-=pe,I>0&&t.lineTo(c,h+Uv(D-I,0));break e}m+=P}t.rect(c,h,pe,D);break;case at.Z:if(d){var P=v[g++];if(m+P>y){var E=(y-m)/P;t.lineTo(u*(1-E)+s*E,f*(1-E)+l*E);break e}m+=P}t.closePath(),u=s,f=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=at,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();function Ho(e,t,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&a>r+s||at+c&&f>n+c&&f>a+c&&f>s+c||fe+c&&u>r+c&&u>i+c&&u>o+c||ut+u&&l>n+u&&l>a+u||le+u&&s>r+u&&s>i+u||sr||f+ui&&(i+=sl);var h=Math.atan2(l,s);return h<0&&(h+=sl),h>=n&&h<=i||h+sl>=n&&h+sl<=i}function Oa(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var Ni=bo.CMD,Ra=Math.PI*2,D7=1e-4;function I7(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&O7(),d=Zt(t,n,a,s,en[0]),h>1&&(v=Zt(t,n,a,s,en[1]))),h===2?mt&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=ir(t,n,a,u),h=0;hr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);cr[0]=-l,cr[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Ra-1e-4){n=0,i=Ra;var f=a?1:-1;return o>=cr[0]+e&&o<=cr[1]+e?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=Ra,i+=Ra);for(var h=0,d=0;d<2;d++){var v=cr[d];if(v+e>o){var p=Math.atan2(s,v),f=a?1:-1;p<0&&(p=Ra+p),(p>=n&&p<=i||p+Ra>=n&&p+Ra<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Oa(l,u,f,c,n,i))),m&&(l=a[v],u=a[v+1],f=l,c=u),p){case Ni.M:f=a[v++],c=a[v++],l=f,u=c;break;case Ni.L:if(r){if(Ho(l,u,a[v],a[v+1],t,n,i))return!0}else s+=Oa(l,u,a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.C:if(r){if(P7(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=R7(l,u,a[v++],a[v++],a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.Q:if(r){if(E7(l,u,a[v++],a[v++],a[v],a[v+1],t,n,i))return!0}else s+=k7(l,u,a[v++],a[v++],a[v],a[v+1],n,i)||0;l=a[v++],u=a[v++];break;case Ni.A:var g=a[v++],y=a[v++],_=a[v++],b=a[v++],x=a[v++],w=a[v++];v+=1;var S=!!(1-a[v++]);h=Math.cos(x)*_+g,d=Math.sin(x)*b+y,m?(f=h,c=d):s+=Oa(l,u,h,d,n,i);var C=(n-g)*b/_+g;if(r){if(L7(g,y,b,x,x+w,S,t,C,i))return!0}else s+=N7(g,y,b,x,x+w,S,C,i);l=Math.cos(x+w)*_+g,u=Math.sin(x+w)*b+y;break;case Ni.R:f=l=a[v++],c=u=a[v++];var M=a[v++],A=a[v++];if(h=f+M,d=c+A,r){if(Ho(f,c,h,c,t,n,i)||Ho(h,c,h,d,t,n,i)||Ho(h,d,f,d,t,n,i)||Ho(f,d,f,c,t,n,i))return!0}else s+=Oa(h,c,h,d,n,i),s+=Oa(f,d,f,c,n,i);break;case Ni.Z:if(r){if(Ho(l,u,f,c,t,n,i))return!0}else s+=Oa(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!I7(u,c)&&(s+=Oa(l,u,f,c,n,i)||0),s!==0}function B7(e,t,r){return oP(e,0,!1,t,r)}function F7(e,t,r,n){return oP(e,t,!0,r,n)}var sP=ht({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},fo),$7={style:ht({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},Ch.style)},qv=Eu.concat(["invisible","culling","z","z2","zlevel","parent"]),H7=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){r.buildPath(l,r.shape)}),i.silent=!0;var a=i.style;for(var o in n)a[o]!==n[o]&&(a[o]=n[o]);a.fill=n.fill?n.decal:null,a.decal=null,a.shadowColor=null,n.strokeFirst&&(a.stroke=null);for(var s=0;s.5?Zg:n>.2?_9:Qg}else if(r)return Qg}return Zg},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(Ee(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Cd(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,i=!r;if(i){var a=!1;this.path||(a=!0,this.createPathProxy());var o=this.path;(a||this.__dirty&Qo)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||i){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var i=this.transformCoordToLocal(r,n),a=this.getBoundingRect(),o=this.style;if(r=i[0],n=i[1],a.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),F7(s,l/u,r,n)))return!0}if(this.hasFill())return B7(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Qo,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:ue(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Qo)},t.prototype.createStyle=function(r){return _h(sP,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=ue({},this.shape))},t.prototype._applyStateObj=function(r,n,i,a,o,s){e.prototype._applyStateObj.call(this,r,n,i,a,o,s);var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=ue({},i.shape),ue(u,n.shape)):(u=ue({},a?this.shape:i.shape),ue(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=ue({},this.shape);for(var f={},c=Ct(u),h=0;h0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return _h(z7,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+="":n="";var i=u0(n,r.font,r.textAlign,r.textBaseline);if(i.x+=r.x||0,i.y+=r.y||0,this.hasStroke()){var a=r.lineWidth;i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a}this._rect=i}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(uf);lP.prototype.type="tspan";const im=lP;var V7=ht({x:0,y:0},fo),W7={style:ht({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},Ch.style)};function G7(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var uP=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return _h(V7,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=G7(n.image)?n.image:this.__image;if(!a)return 0;var o=r==="width"?"height":"width",s=n[o];return s==null?a[r]:a[r]/a[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return W7},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new nt(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(uf);uP.prototype.type="image";const Ys=uP;function U7(e,t){var r=t.x,n=t.y,i=t.width,a=t.height,o=t.r,s,l,u,f;i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var c;s+l>i&&(c=s+l,s*=i/c,l*=i/c),u+f>i&&(c=u+f,u*=i/c,f*=i/c),l+u>a&&(c=l+u,l*=a/c,u*=a/c),s+f>a&&(c=s+f,s*=a/c,f*=a/c),e.moveTo(r+s,n),e.lineTo(r+i-l,n),l!==0&&e.arc(r+i-l,n+l,l,-Math.PI/2,0),e.lineTo(r+i,n+a-u),u!==0&&e.arc(r+i-u,n+a-u,u,0,Math.PI/2),e.lineTo(r+f,n+a),f!==0&&e.arc(r+f,n+a-f,f,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5)}var is=Math.round;function fP(e,t,r){if(t){var n=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=n,e.x2=i,e.y1=a,e.y2=o;var s=r&&r.lineWidth;return s&&(is(n*2)===is(i*2)&&(e.x1=e.x2=to(n,s,!0)),is(a*2)===is(o*2)&&(e.y1=e.y2=to(a,s,!0))),e}}function cP(e,t,r){if(t){var n=t.x,i=t.y,a=t.width,o=t.height;e.x=n,e.y=i,e.width=a,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=to(n,s,!0),e.y=to(i,s,!0),e.width=Math.max(to(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(to(i+o,s,!1)-e.y,o===0?0:1)),e}}function to(e,t,r){if(!t)return e;var n=is(e*2);return(n+is(t))%2===0?n/2:(n+(r?1:-1))/2}var Y7=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),j7={},dP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Y7},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=cP(j7,n,this.style);i=l.x,a=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else i=n.x,a=n.y,o=n.width,s=n.height;n.r?U7(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(vt);dP.prototype.type="rect";const Gt=dP;var Bw={fill:"#000"},Fw=2,q7={style:ht({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},Ch.style)},hP=function(e){ge(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Bw,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,E=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),L=o.calculatedLineHeight,O=0;O=0&&(O=w[L],O.align==="right");)this._placeToken(O,r,C,g,E,"right",_),M-=O.width,E-=O.width,L--;for(P+=(a-(P-m)-(y-E)-M)/2;A<=L;)O=w[A],this._placeToken(O,r,C,g,P+O.width/2,"center",_),P+=O.width,A++;g+=C}},t.prototype._placeToken=function(r,n,i,a,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var f=r.verticalAlign,c=a+i/2;f==="top"?c=a+r.height/2:f==="bottom"&&(c=a+i-r.height/2);var h=!r.isLineHolder&&Kv(u);h&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,c-r.height/2,r.width,r.height);var d=!!u.backgroundColor,v=r.textPadding;v&&(o=Gw(o,s,v),c-=r.height/2-v[0]-r.innerHeight/2);var p=this._getOrCreateChild(im),m=p.createStyle();p.useStyle(m);var g=this._defaultStyle,y=!1,_=0,b=Ww("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,g.fill)),x=Vw("stroke"in u?u.stroke:"stroke"in n?n.stroke:!d&&!l&&(!g.autoStroke||y)?(_=Fw,g.stroke):null),w=u.textShadowBlur>0||n.textShadowBlur>0;m.text=r.text,m.x=o,m.y=c,w&&(m.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,m.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",m.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,m.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),m.textAlign=s,m.textBaseline="middle",m.font=r.font||_o,m.opacity=Yl(u.opacity,n.opacity,1),Hw(m,u),x&&(m.lineWidth=Yl(u.lineWidth,n.lineWidth,_),m.lineDash=Ze(u.lineDash,n.lineDash),m.lineDashOffset=n.lineDashOffset||0,m.stroke=x),b&&(m.fill=b);var S=r.contentWidth,C=r.contentHeight;p.setBoundingRect(new nt(Ml(m.x,S,m.textAlign),Jo(m.y,C,m.textBaseline),S,C))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,h=l&&!c,d=r.borderRadius,v=this,p,m;if(h||r.lineHeight||u&&f){p=this._getOrCreateChild(Gt),p.useStyle(p.createStyle()),p.style.fill=null;var g=p.shape;g.x=i,g.y=a,g.width=o,g.height=s,g.r=d,p.dirtyShape()}if(h){var y=p.style;y.fill=l||null,y.fillOpacity=Ze(r.fillOpacity,1)}else if(c){m=this._getOrCreateChild(Ys),m.onload=function(){v.dirtyStyle()};var _=m.style;_.image=l.image,_.x=i,_.y=a,_.width=o,_.height=s}if(u&&f){var y=p.style;y.lineWidth=u,y.stroke=f,y.strokeOpacity=Ze(r.strokeOpacity,1),y.lineDash=r.borderDash,y.lineDashOffset=r.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(p||m).style;b.shadowBlur=r.shadowBlur||0,b.shadowColor=r.shadowColor||"transparent",b.shadowOffsetX=r.shadowOffsetX||0,b.shadowOffsetY=r.shadowOffsetY||0,b.opacity=Yl(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return Q7(r)&&(n=[r.fontStyle,r.fontWeight,Z7(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Gn(n)||r.textFont||r.font},t}(uf),K7={left:!0,right:1,center:1},X7={top:1,bottom:1,middle:1},$w=["fontStyle","fontWeight","fontSize","fontFamily"];function Z7(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?Jy+"px":e+"px"}function Hw(e,t){for(var r=0;r<$w.length;r++){var n=$w[r],i=t[n];i!=null&&(e[n]=i)}}function Q7(e){return e.fontSize!=null||e.fontFamily||e.fontWeight}function J7(e){return zw(e),R(e.rich,zw),e}function zw(e){if(e){e.font=hP.makeFont(e);var t=e.align;t==="middle"&&(t="center"),e.align=t==null||K7[t]?t:"left";var r=e.verticalAlign;r==="center"&&(r="middle"),e.verticalAlign=r==null||X7[r]?r:"top";var n=e.padding;n&&(e.padding=_2(e.padding))}}function Vw(e,t){return e==null||t<=0||e==="transparent"||e==="none"?null:e.image||e.colorStops?"#000":e}function Ww(e){return e==null||e==="none"?null:e.image||e.colorStops?"#000":e}function Gw(e,t,r){return t==="right"?e-r[1]:t==="center"?e+r[3]/2-r[1]/2:e+r[3]}function Uw(e){var t=e.text;return t!=null&&(t+=""),t}function Kv(e){return!!(e.backgroundColor||e.lineHeight||e.borderWidth&&e.borderColor)}const mr=hP;var dt=Et(),eY=function(e,t,r,n){if(n){var i=dt(n);i.dataIndex=r,i.dataType=t,i.seriesIndex=e,n.type==="group"&&n.traverse(function(a){var o=dt(a);o.seriesIndex=e,o.dataIndex=r,o.dataType=t})}},Yw=1,jw={},vP=Et(),g0=Et(),pP=0,m0=1,y0=2,Jn=["emphasis","blur","select"],Ed=["normal","emphasis","blur","select"],tY=10,rY=9,co="highlight",Uc="downplay",Ql="select",Yc="unselect",Jl="toggleSelect";function zo(e){return e!=null&&e!=="none"}var qw=new af(100);function Kw(e){if(Ee(e)){var t=qw.get(e);return t||(t=vw(e,-.1),qw.put(e,t)),t}else if(yh(e)){var r=ue({},e);return r.colorStops=Ne(e.colorStops,function(n){return{offset:n.offset,color:vw(n.color,-.1)}}),r}return e}function Th(e,t,r){e.onHoverStateChange&&(e.hoverState||0)!==r&&e.onHoverStateChange(t),e.hoverState=r}function gP(e){Th(e,"emphasis",y0)}function mP(e){e.hoverState===y0&&Th(e,"normal",pP)}function _0(e){Th(e,"blur",m0)}function yP(e){e.hoverState===m0&&Th(e,"normal",pP)}function nY(e){e.selected=!0}function iY(e){e.selected=!1}function Xw(e,t,r){t(e,r)}function Li(e,t,r){Xw(e,t,r),e.isGroup&&e.traverse(function(n){Xw(n,t,r)})}function aY(e,t,r,n){for(var i=e.style,a={},o=0;o=0,a=!1;if(e instanceof vt){var o=vP(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(zo(s)||zo(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=ue({},n),u=ue({},u),u.fill=s):!zo(u.fill)&&zo(s)?(a=!0,n=ue({},n),u=ue({},u),u.fill=Kw(s)):!zo(u.stroke)&&zo(l)&&(a||(n=ue({},n),u=ue({},u)),u.stroke=Kw(l)),n.style=u}}if(n&&n.z2==null){a||(n=ue({},n));var f=e.z2EmphasisLift;n.z2=e.z2+(f??tY)}return n}function sY(e,t,r){if(r&&r.z2==null){r=ue({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??rY)}return r}function lY(e,t,r){var n=ot(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:aY(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=ue({},r),o=ue({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Xv(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return oY(this,e,t,r);if(e==="blur")return lY(this,e,r);if(e==="select")return sY(this,e,r)}return r}function uY(e){e.stateProxy=Xv;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=Xv),r&&(r.stateProxy=Xv)}function Zw(e,t){!SP(e,t)&&!e.__highByOuter&&Li(e,gP)}function Qw(e,t){!SP(e,t)&&!e.__highByOuter&&Li(e,mP)}function am(e,t){e.__highByOuter|=1<<(t||0),Li(e,gP)}function om(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Li(e,mP)}function fY(e){Li(e,_0)}function _P(e){Li(e,yP)}function bP(e){Li(e,nY)}function wP(e){Li(e,iY)}function SP(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function xP(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(i,a){var o=g0(a),s=i==="series",l=s?e.getViewOfSeriesModel(a):e.getViewOfComponentModel(a);!s&&n.push(l),o.isBlured&&(l.group.traverse(function(u){yP(u)}),s&&r.push(a)),o.isBlured=!1}),R(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,t)})}function sm(e,t,r,n){var i=n.getModel();r=r||"coordinateSystem";function a(u,f){for(var c=0;c0){var s={dataIndex:o,seriesIndex:r.seriesIndex};a!=null&&(s.dataType=a),t.push(s)}})}),t}function um(e,t,r){MP(e,!0),Li(e,uY),mY(e,t,r)}function gY(e){MP(e,!1)}function CP(e,t,r,n){n?gY(e):um(e,t,r)}function mY(e,t,r){var n=dt(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var eS=["emphasis","blur","select"],yY={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function TP(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=Zv(v),s*=Zv(v));var p=(i===a?-1:1)*Zv((o*o*(s*s)-o*o*(d*d)-s*s*(h*h))/(o*o*(d*d)+s*s*(h*h)))||0,m=p*o*d/s,g=p*-s*h/o,y=(e+r)/2+jf(c)*m-Yf(c)*g,_=(t+n)/2+Yf(c)*m+jf(c)*g,b=iS([1,0],[(h-m)/o,(d-g)/s]),x=[(h-m)/o,(d-g)/s],w=[(-1*h-m)/o,(-1*d-g)/s],S=iS(x,w);if(dm(x,w)<=-1&&(S=ll),dm(x,w)>=1&&(S=0),S<0){var C=Math.round(S/ll*1e6)/1e6;S=ll*2+C%2*ll}f.addData(u,y,_,o,s,b,S,c,a)}var CY=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,TY=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function MY(e){var t=new bo;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=bo.CMD,l=e.match(CY);if(!l)return t;for(var u=0;uO*O+N*N&&(C=A,M=P),{cx:C,cy:M,x0:-f,y0:-c,x1:C*(i/x-1),y1:M*(i/x-1)}}function RY(e){var t;if(ye(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function kY(e,t){var r,n=Al(t.r,0),i=Al(t.r0||0,0),a=n>0,o=i>0;if(!(!a&&!o)){if(a||(n=i,i=0),i>n){var s=n;n=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var f=t.cx,c=t.cy,h=!!t.clockwise,d=oS(u-l),v=d>Qv&&d%Qv;if(v>mn&&(d=v),!(n>mn))e.moveTo(f,c);else if(d>Qv-mn)e.moveTo(f+n*Wo(l),c+n*ka(l)),e.arc(f,c,n,l,u,!h),i>mn&&(e.moveTo(f+i*Wo(u),c+i*ka(u)),e.arc(f,c,i,u,l,h));else{var p=void 0,m=void 0,g=void 0,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0,S=void 0,C=void 0,M=void 0,A=void 0,P=void 0,E=void 0,L=void 0,O=void 0,N=n*Wo(l),H=n*ka(l),V=i*Wo(u),U=i*ka(u),F=d>mn;if(F){var z=t.cornerRadius;z&&(r=RY(z),p=r[0],m=r[1],g=r[2],y=r[3]);var ee=oS(n-i)/2;if(_=$n(ee,g),b=$n(ee,y),x=$n(ee,p),w=$n(ee,m),M=S=Al(_,b),A=C=Al(x,w),(S>mn||C>mn)&&(P=n*Wo(u),E=n*ka(u),L=i*Wo(l),O=i*ka(l),dmn){var K=$n(g,M),Q=$n(y,M),oe=qf(L,O,N,H,n,K,h),pe=qf(P,E,V,U,n,Q,h);e.moveTo(f+oe.cx+oe.x0,c+oe.cy+oe.y0),M0&&e.arc(f+oe.cx,c+oe.cy,K,rr(oe.y0,oe.x0),rr(oe.y1,oe.x1),!h),e.arc(f,c,n,rr(oe.cy+oe.y1,oe.cx+oe.x1),rr(pe.cy+pe.y1,pe.cx+pe.x1),!h),Q>0&&e.arc(f+pe.cx,c+pe.cy,Q,rr(pe.y1,pe.x1),rr(pe.y0,pe.x0),!h))}else e.moveTo(f+N,c+H),e.arc(f,c,n,l,u,!h);if(!(i>mn)||!F)e.lineTo(f+V,c+U);else if(A>mn){var K=$n(p,A),Q=$n(m,A),oe=qf(V,U,P,E,i,-Q,h),pe=qf(N,H,L,O,i,-K,h);e.lineTo(f+oe.cx+oe.x0,c+oe.cy+oe.y0),A0&&e.arc(f+oe.cx,c+oe.cy,Q,rr(oe.y0,oe.x0),rr(oe.y1,oe.x1),!h),e.arc(f,c,i,rr(oe.cy+oe.y1,oe.cx+oe.x1),rr(pe.cy+pe.y1,pe.cx+pe.x1),h),K>0&&e.arc(f+pe.cx,c+pe.cy,K,rr(pe.y1,pe.x1),rr(pe.y0,pe.x0),!h))}else e.lineTo(f+V,c+U),e.arc(f,c,i,u,l,h)}e.closePath()}}}var NY=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),RP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new NY},t.prototype.buildPath=function(r,n){kY(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(vt);RP.prototype.type="sector";const Eo=RP;var BY=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),kP=function(e){ge(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new BY},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.PI*2;r.moveTo(i+n.r,a),r.arc(i,a,n.r,0,o,!1),r.moveTo(i+n.r0,a),r.arc(i,a,n.r0,0,o,!0)},t}(vt);kP.prototype.type="ring";const NP=kP;function FY(e,t,r,n){var i=[],a=[],o=[],s=[],l,u,f,c;if(n){f=[1/0,1/0],c=[-1/0,-1/0];for(var h=0,d=e.length;h=2){if(n){var a=FY(i,n,r,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(r?o:o-1);s++){var l=a[s*2],u=a[s*2+1],f=i[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;sBa[1]){if(s=!1,a)return s;var f=Math.abs(Ba[0]-Na[1]),c=Math.abs(Na[0]-Ba[1]);Math.min(f,c)>i.len()&&(f0){var c=f.duration,h=f.delay,d=f.easing,v={duration:c,delay:h||0,easing:d,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,v):t.animateTo(r,v)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Or(e,t,r,n,i,a){x0("update",e,t,r,n,i,a)}function Wr(e,t,r,n,i,a){x0("enter",e,t,r,n,i,a)}function ds(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function uS(e){return!e.isGroup}function dj(e){return e.shape!=null}function XP(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){uS(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return dj(o)&&(s.shape=ue({},o.shape)),s}var a=n(e);t.traverse(function(o){if(uS(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Or(o,l,r,dt(o).dataIndex)}}})}function hj(e,t){return Ne(e,function(r){var n=r[0];n=Id(n,t.x),n=Od(n,t.x+t.width);var i=r[1];return i=Id(i,t.y),i=Od(i,t.y+t.height),[n,i]})}function vj(e,t){var r=Id(e.x,t.x),n=Od(e.x+e.width,t.x+t.width),i=Id(e.y,t.y),a=Od(e.y+e.height,t.y+t.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function M0(e,t,r){var n=ue({rectHover:!0},t),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),ht(i,r),new Ys(n)):C0(e.replace("path://",""),n,r,"center")}function pj(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var m=Jv(d,v,f,c)/h;return!(m<0||m>1)}function Jv(e,t,r,n){return e*n-r*t}function gj(e){return e<=1e-6&&e>=-1e-6}function A0(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=Ee(t)?{formatter:t}:t,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=e.formatterParamsExtra;l&&R(Ct(l),function(f){Ds(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=dt(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:ht({content:n,formatterParams:s},i)}}function fS(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function P0(e,t){if(e)if(ye(e))for(var r=0;r=0&&s.push(l)}),s}}function rE(e,t){return st(st({},e,!0),t,!0)}const Oj={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},Rj={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Rd="ZH",L0="EN",Ou=L0,jc={},D0={},nE=He.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(Rd)>-1?Rd:Ou}():Ou;function iE(e,t){e=e.toUpperCase(),D0[e]=new sr(t),jc[e]=t}function kj(e){if(Ee(e)){var t=jc[e.toUpperCase()]||{};return e===Rd||e===L0?tt(t):st(tt(t),tt(jc[Ou]),!1)}else return st(tt(e),tt(jc[Ou]),!1)}function Nj(e){return D0[e]}function Bj(){return D0[Ou]}iE(L0,Oj);iE(Rd,Rj);var I0=1e3,O0=I0*60,tu=O0*60,on=tu*24,gS=on*365,Pl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Zf="{yyyy}-{MM}-{dd}",mS={year:"{yyyy}",month:"{yyyy}-{MM}",day:Zf,hour:Zf+" "+Pl.hour,minute:Zf+" "+Pl.minute,second:Zf+" "+Pl.second,millisecond:Pl.none},rp=["year","month","day","hour","minute","second","millisecond"],aE=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Bi(e,t){return e+="","0000".substr(0,t-e.length)+e}function hs(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Fj(e){return e===hs(e)}function $j(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Ph(e,t,r,n){var i=Ti(e),a=i[R0(r)](),o=i[vs(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[Eh(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[Ru(r)](),c=(f-1)%12+1,h=i[Lh(r)](),d=i[Dh(r)](),v=i[Ih(r)](),p=n instanceof sr?n:Nj(n||nE)||Bj(),m=p.getModel("time"),g=m.get("month"),y=m.get("monthAbbr"),_=m.get("dayOfWeek"),b=m.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,Bi(a%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,g[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,Bi(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Bi(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,b[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Bi(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,Bi(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Bi(h,2)).replace(/{m}/g,h+"").replace(/{ss}/g,Bi(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Bi(v,3)).replace(/{S}/g,v+"")}function Hj(e,t,r,n,i){var a=null;if(Ee(r))a=r;else if(Ye(r))a=r(e.value,t,{level:e.level});else{var o=ue({},Pl);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(ye(a)){var c=e.level==null?0:e.level>=0?e.level:a.length+e.level;c=Math.min(c,a.length-1),a=a[c]}}return Ph(new Date(e.value),a,i,n)}function oE(e,t){var r=Ti(e),n=r[vs(t)]()+1,i=r[Eh(t)](),a=r[Ru(t)](),o=r[Lh(t)](),s=r[Dh(t)](),l=r[Ih(t)](),u=l===0,f=u&&s===0,c=f&&o===0,h=c&&a===0,d=h&&i===1,v=d&&n===1;return v?"year":d?"month":h?"day":c?"hour":f?"minute":u?"second":"millisecond"}function yS(e,t,r){var n=Tt(e)?Ti(e):e;switch(t=t||oE(e,r),t){case"year":return n[R0(r)]();case"half-year":return n[vs(r)]()>=6?1:0;case"quarter":return Math.floor((n[vs(r)]()+1)/4);case"month":return n[vs(r)]();case"day":return n[Eh(r)]();case"half-day":return n[Ru(r)]()/24;case"hour":return n[Ru(r)]();case"minute":return n[Lh(r)]();case"second":return n[Dh(r)]();case"millisecond":return n[Ih(r)]()}}function R0(e){return e?"getUTCFullYear":"getFullYear"}function vs(e){return e?"getUTCMonth":"getMonth"}function Eh(e){return e?"getUTCDate":"getDate"}function Ru(e){return e?"getUTCHours":"getHours"}function Lh(e){return e?"getUTCMinutes":"getMinutes"}function Dh(e){return e?"getUTCSeconds":"getSeconds"}function Ih(e){return e?"getUTCMilliseconds":"getMilliseconds"}function zj(e){return e?"setUTCFullYear":"setFullYear"}function sE(e){return e?"setUTCMonth":"setMonth"}function lE(e){return e?"setUTCDate":"setDate"}function uE(e){return e?"setUTCHours":"setHours"}function fE(e){return e?"setUTCMinutes":"setMinutes"}function cE(e){return e?"setUTCSeconds":"setSeconds"}function dE(e){return e?"setUTCMilliseconds":"setMilliseconds"}function hE(e){if(!F9(e))return Ee(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function vE(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var Oh=_2;function pm(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&Gn(f)?f:"-"}function a(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?Ti(e):e;if(isNaN(+l)){if(s)return"-"}else return Ph(l,n,r)}if(t==="ordinal")return kg(e)?i(e):Tt(e)&&a(e)?e+"":"-";var u=Pd(e);return a(u)?hE(u):kg(e)?i(e):typeof e=="boolean"?e+"":"-"}var _S=["a","b","c","d","e","f","g"],np=function(e,t){return"{"+e+(t??"")+"}"};function pE(e,t,r){ye(t)||(t=[t]);var n=t.length;if(!n)return"";for(var i=t[0].$vars||[],a=0;a':'';var o=r.markerId||"markerX";return{renderMode:a,content:"{"+o+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function ku(e,t){return t=t||"transparent",Ee(e)?e:Re(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function bS(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var qc=R,Wj=["left","right","top","bottom","width","height"],Qf=[["width","left","right"],["height","top","bottom"]];function k0(e,t,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var f=l.getBoundingRect(),c=t.childAt(u+1),h=c&&c.getBoundingRect(),d,v;if(e==="horizontal"){var p=f.width+(h?-h.x+f.x:0);d=a+p,d>n||l.newline?(a=0,d=p,o+=s+r,s=f.height):s=Math.max(s,f.height)}else{var m=f.height+(h?-h.y+f.y:0);v=o+m,v>i||l.newline?(a+=s+r,o=0,v=m,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),e==="horizontal"?a=d+r:o=v+r)})}var ru=k0;Rt(k0,"vertical");Rt(k0,"horizontal");function Is(e,t,r){r=Oh(r||0);var n=t.width,i=t.height,a=yt(e.left,n),o=yt(e.top,i),s=yt(e.right,n),l=yt(e.bottom,i),u=yt(e.width,n),f=yt(e.height,i),c=r[2]+r[0],h=r[1]+r[3],d=e.aspect;switch(isNaN(u)&&(u=n-s-h-a),isNaN(f)&&(f=i-l-c-o),d!=null&&(isNaN(u)&&isNaN(f)&&(d>n/i?u=n*.8:f=i*.8),isNaN(u)&&(u=d*f),isNaN(f)&&(f=u/d)),isNaN(a)&&(a=n-s-u-h),isNaN(o)&&(o=i-l-f-c),e.left||e.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-h;break}switch(e.top||e.bottom){case"middle":case"center":o=i/2-f/2-r[0];break;case"bottom":o=i-f-c;break}a=a||0,o=o||0,isNaN(u)&&(u=n-h-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var v=new nt(a+r[3],o+r[0],u,f);return v.margin=r,v}function Nu(e){var t=e.layoutMode||e.constructor.layoutMode;return Re(t)?t:t?{type:t}:null}function Os(e,t,r){var n=r&&r.ignoreSize;!ye(n)&&(n=[n,n]);var i=o(Qf[0],0),a=o(Qf[1],1);u(Qf[0],e,i),u(Qf[1],e,a);function o(f,c){var h={},d=0,v={},p=0,m=2;if(qc(f,function(_){v[_]=e[_]}),qc(f,function(_){s(t,_)&&(h[_]=v[_]=t[_]),l(h,_)&&d++,l(v,_)&&p++}),n[c])return l(t,f[1])?v[f[2]]=null:l(t,f[2])&&(v[f[1]]=null),v;if(p===m||!d)return v;if(d>=m)return h;for(var g=0;g=0;l--)s=st(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return lf(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(sr);tP(js,sr);Sh(js);Dj(js);Ij(js,Yj);function Yj(e){var t=[];return R(js.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=Ne(t,function(r){return Un(r).main}),e!=="dataset"&&ot(t,"dataset")<=0&&t.unshift("dataset"),t}const Mt=js;var gE="";typeof navigator<"u"&&(gE=navigator.platform||"");var Go="rgba(0, 0, 0, 0.2)";const jj={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Go,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Go,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Go,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Go,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Go,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Go,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:gE.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var mE=je(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),hn="original",Rr="arrayRows",Rn="objectRows",ai="keyedColumns",aa="typedArray",yE="unknown",yi="column",qs="row",Xt={Must:1,Might:2,Not:3},_E=Et();function qj(e){_E(e).datasetMap=je()}function Kj(e,t,r){var n={},i=N0(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=_E(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;e=e.slice(),R(e,function(p,m){var g=Re(p)?p:e[m]={name:p};g.type==="ordinal"&&f==null&&(f=m,c=v(g)),n[g.name]=[]});var h=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});R(e,function(p,m){var g=p.name,y=v(p);if(f==null){var _=h.valueWayDim;d(n[g],_,y),d(o,_,y),h.valueWayDim+=y}else if(f===m)d(n[g],0,y),d(a,0,y);else{var _=h.categoryWayDim;d(n[g],_,y),d(o,_,y),h.categoryWayDim+=y}});function d(p,m,g){for(var y=0;yt)return e[n];return e[r-1]}function tq(e,t,r,n,i,a,o){a=a||e;var s=t(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var f=o==null||!n?r:eq(n,o);if(f=f||r,!(!f||!f.length)){var c=f[l];return i&&(u[i]=c),s.paletteIdx=(l+1)%f.length,c}}function rq(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Jf,ul,SS,xS="\0_ec_inner",nq=1,F0=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new sr(a),this._locale=new sr(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=MS(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,MS(n))},t.prototype._resetOption=function(r,n){var i=!1,a=this._optionManager;if(!r||r==="recreate"){var o=a.mountOption(r==="recreate");!this.option||r==="recreate"?SS(this,o):(this.restoreData(),this._mergeOption(o,n)),i=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=a.getTimelineOption(this);s&&(i=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=a.getMediaOption(this);l.length&&R(l,function(u){i=!0,this._mergeOption(u,n)},this)}return i},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=je(),u=n&&n.replaceMergeMainTypeMap;qj(this),R(r,function(c,h){c!=null&&(Mt.hasClass(h)?h&&(s.push(h),l.set(h,!0)):i[h]=i[h]==null?tt(c):st(i[h],c,!0))}),u&&u.each(function(c,h){Mt.hasClass(h)&&!l.get(h)&&(s.push(h),l.set(h,!0))}),Mt.topologicalTravel(s,Mt.getAllClassMainTypes(),f,this);function f(c){var h=Jj(this,c,pr(r[c])),d=a.get(c),v=d?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=z9(d,h,v);q9(p,c,Mt),i[c]=null,a.set(c,null),o.set(c,0);var m=[],g=[],y=0,_;R(p,function(b,x){var w=b.existing,S=b.newOption;if(!S)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=c==="series",M=Mt.getClass(c,b.keyInfo.subType,!C);if(!M)return;if(c==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===M)w.name=b.keyInfo.name,w.mergeOption(S,this),w.optionUpdated(S,!1);else{var A=ue({componentIndex:x},b.keyInfo);w=new M(S,this,this,A),ue(w,A),b.brandNew&&(w.__requireNewView=!0),w.init(S,this,this),w.optionUpdated(null,!0)}}w?(m.push(w.option),g.push(w),y++):(m.push(void 0),g.push(void 0))},this),i[c]=m,a.set(c,g),o.set(c,y),c==="series"&&Jf(this)}this._seriesIndices||Jf(this)},t.prototype.getOption=function(){var r=tt(this.option);return R(r,function(n,i){if(Mt.hasClass(i)){for(var a=pr(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Lu(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[xS],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var i=this._componentsMap.get(r);if(i){var a=i[n||0];if(a)return a;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function hq(e,t){return e.join(",")===t.join(",")}const vq=uq;var vn=R,Bu=Re,AS=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function ap(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=AS.length;r=0;m--){var g=e[m];if(s||(v=g.data.rawIndexOf(g.stackedByDimension,d)),v>=0){var y=g.data.getByRawIndex(g.stackResultDimension,v);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&h>=0&&y>0||l==="samesign"&&h<=0&&y<0){h=k9(h,y),p=y;break}}}return n[0]=h,n[1]=p,n})})}var kh=function(){function e(t){this.data=t.data||(t.sourceFormat===ai?{}:[]),this.sourceFormat=t.sourceFormat||yE,this.seriesLayoutBy=t.seriesLayoutBy||yi,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}d[0]=v,d[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};RS=(t={},t[Rr+"_"+yi]={pure:!0,appendData:a},t[Rr+"_"+qs]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Rn]={pure:!0,appendData:a},t[ai]={pure:!0,appendData:function(o){var s=this._data;R(o,function(l,u){for(var f=s[u]||(s[u]=[]),c=0;c<(l||[]).length;c++)f.push(l[c])})}},t[hn]={appendData:a},t[aa]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[m])}return p!=null?p+"":""})}},e.prototype.getRawValue=function(t,r){return Rs(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function FS(e){var t,r;return Re(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function nu(e){return new Iq(e)}var Iq=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var i=this.context;i.data=i.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(a="reset");function f(y){return!(y>=1)&&(y=1),y}var c;(this._dirty||a==="reset")&&(this._dirty=!1,c=this._doReset(n)),this._modBy=l,this._modDataCount=u;var h=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,v=Math.min(h!=null?this._dueIndex+h:1/0,this._dueEnd);if(!n&&(c||d1&&n>0?s:o}};return a;function o(){return t=e?null:li?-this._resultLT:0},e}(),Rq=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Kc(t,r)},e}();function kq(e,t){var r=new Rq,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==yi&&Cr(o);var s=[],l={},u=e.dimensionsDefine;if(u)R(u,function(p,m){var g=p.name,y={index:m,name:g,displayName:p.displayName};if(s.push(y),g!=null){var _="";Ds(l,g)&&Cr(_),l[g]=y}});else for(var f=0;f65535?Wq:Gq}function Uo(){return[1/0,-1/0]}function Uq(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function zS(e,t,r,n,i){var a=OE[r||"float"];if(i){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new a(n),u=0;um[1]&&(m[1]=p)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var i=this._provider,a=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=Ne(o,function(y){return y.property}),f=0;fg[1]&&(g[1]=m)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)a=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var i=this._chunks,a=i[t],o=[];if(!a)return o;n==null&&(n=1/0);for(var s=1/0,l=-1,u=0,f=0,c=this.count();f=0&&l<0)&&(s=v,l=d,u=0),d===l&&(o[u++]=f))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){t=new n(i);for(var a=0;a=c&&y<=h||isNaN(y))&&(l[u++]=p),p++}v=!0}else if(a===2){for(var m=d[i[0]],_=d[i[1]],b=t[i[1]][0],x=t[i[1]][1],g=0;g=c&&y<=h||isNaN(y))&&(w>=b&&w<=x||isNaN(w))&&(l[u++]=p),p++}v=!0}}if(!v)if(a===1)for(var g=0;g=c&&y<=h||isNaN(y))&&(l[u++]=S)}else for(var g=0;gt[A][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(g))}return ug[1]&&(g[1]=m)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),i=n._chunks,a=i[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),f,c,h,d=new(cl(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));d[s++]=u;for(var v=1;vf&&(f=c,h=b)}P>0&&Pf-v&&(l=f-v,s.length=l);for(var p=0;pc[1]&&(c[1]=g),h[d++]=y}return a._count=d,a._indices=h,a._updateGetRawIdx(),a},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,i=this._chunks,a=0,o=this.count();al&&(l=c)}return o=[s,l],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,i,a){return Kc(r[a],this._dimensions[a])}lp={arrayRows:t,objectRows:function(r,n,i,a){return Kc(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Kc(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),Yq=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(ec(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var f=r[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,a=[f._getVersionSign()]}else s=o.get("data",!0),l=Gr(s)?aa:hn,a=[];var c=this._getSourceMetaRawOption()||{},h=u&&u.metaRawOption||{},d=Ze(c.seriesLayoutBy,h.seriesLayoutBy)||null,v=Ze(c.sourceHeader,h.sourceHeader),p=Ze(c.dimensions,h.dimensions),m=d!==h.seriesLayoutBy||!!v!=!!h.sourceHeader||p;i=m?[gm(s,{seriesLayoutBy:d,sourceHeader:v,dimensions:p},l)]:[]}else{var g=t;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=g.get("source",!0);i=[gm(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";t.length!==1&&VS(a)}var o,s=[],l=[];return R(t,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&VS(c),s.push(f),l.push(u._getVersionSign())}),n?o=zq(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[Cq(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return R(e.blocks,function(i){var a=BE(i);a>=t&&(t=a+ +(n&&(!a||ym(i)&&!i.noHeader)))}),t}return 0}function Kq(e,t,r,n){var i=t.noHeader,a=Zq(BE(t)),o=[],s=t.blocks||[];Ci(!s||ye(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ds(u,l)){var f=new Oq(u[l],null);s.sort(function(v,p){return f.evaluate(v.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(v,p){var m=t.valueFormatter,g=NE(v)(m?ue(ue({},e),{valueFormatter:m}):e,v,p>0?a.html:0,n);g!=null&&o.push(g)});var c=e.renderMode==="richText"?o.join(a.richText):_m(o.join(""),i?r:a.html);if(i)return c;var h=pm(t.header,"ordinal",e.useUTC),d=kE(n,e.renderMode).nameStyle;return e.renderMode==="richText"?FE(e,h,d)+a.richText+c:_m('
'+tn(h)+"
"+c,r)}function Xq(e,t,r,n){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,f=t.valueFormatter||e.valueFormatter||function(b){return b=ye(b)?b:[b],Ne(b,function(x,w){return pm(x,ye(d)?d[w]:d,u)})};if(!(a&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),h=a?"":pm(l,"ordinal",u),d=t.valueType,v=o?[]:f(t.value),p=!s||!a,m=!s&&a,g=kE(n,i),y=g.nameStyle,_=g.valueStyle;return i==="richText"?(s?"":c)+(a?"":FE(e,h,y))+(o?"":eK(e,v,p,m,_)):_m((s?"":c)+(a?"":Qq(h,!s,y))+(o?"":Jq(v,p,m,_)),r)}}function WS(e,t,r,n,i,a){if(e){var o=NE(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function Zq(e){return{html:jq[e],richText:qq[e]}}function _m(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function Qq(e,t,r){var n=t?"margin-left:2px":"";return''+tn(e)+""}function Jq(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=ye(e)?e:[e],''+Ne(e,function(o){return tn(o)}).join("  ")+""}function FE(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function eK(e,t,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ye(t)?t.join(" "):t,a)}function tK(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return ku(n)}function $E(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var up=function(){function e(){this.richTextStyles={},this._nextStyleNameId=K2()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var i=n==="richText"?this._generateStyleName():null,a=Vj({color:r,type:t,renderMode:n,markerId:i});return Ee(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ye(r)?R(r,function(a){return ue(n,a)}):ue(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function rK(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=t.getRawValue(r),l=ye(s),u=tK(t,r),f,c,h,d;if(o>1||l&&!o){var v=nK(s,t,r,a,u);f=v.inlineValues,c=v.inlineValueTypes,h=v.blocks,d=v.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);d=f=Rs(i,r,a[0]),c=p.type}else d=f=l?s[0]:s;var m=h0(t),g=m&&t.name||"",y=i.getName(r),_=n?g:y;return Fu("section",{header:g,noHeader:n||!m,sortParam:d,blocks:[Fu("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Gn(_),value:f,valueType:c})].concat(h||[])})}function nK(e,t,r,n,i){var a=t.getData(),o=ca(e,function(c,h,d){var v=a.getDimensionInfo(d);return c=c||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(c){f(Rs(a,r,c),c)}):R(e,f);function f(c,h){var d=a.getDimensionInfo(h);!d||d.otherDims.tooltip===!1||(o?u.push(Fu("nameValue",{markerType:"subItem",markerColor:i,name:d.displayName,value:c,valueType:d.type})):(s.push(c),l.push(d.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Fi=Et();function tc(e,t){return e.getName(t)||e.getId(t)}var iK="__universalTransitionEnabled",Bh=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=nu({count:oK,reset:sK}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=Fi(this).sourceManager=new Yq(this);a.prepareSource();var o=this.getInitialData(r,i);US(o,this),this.dataTask.context.data=o,Fi(this).dataBeforeProcessed=o,GS(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=Nu(this),a=i?Rh(r):{},o=this.subType;Mt.hasClass(o)&&(o+="Series"),st(r,n.getTheme().get(this.subType)),st(r,this.getDefaultOption()),em(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Os(r,a,i)},t.prototype.mergeOption=function(r,n){r=st(this.option,r,!0),this.fillDataTextStyle(r.data);var i=Nu(this);i&&Os(this.option,r,i);var a=Fi(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);US(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Fi(this).dataBeforeProcessed=o,GS(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!Gr(r))for(var n=["show"],i=0;ithis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=B0.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var i=this.option.selectedMap;if(i){var a=this.option.selectedMode,o=this.getData(n);if(a==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(o)}return i},t.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[tc(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[iK])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var i,a,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Re(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(r,n)}},t.registerClass=function(r){return Mt.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(Mt);ni(Bh,Dq);ni(Bh,B0);tP(Bh,Mt);function GS(e){var t=e.name;h0(e)||(e.name=aK(e)||t)}function aK(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return R(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function oK(e){return e.model.getRawData().count()}function sK(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),lK}function lK(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function US(e,t){R(vU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Rt(uK,t))})}function uK(e,t){var r=bm(e);return r&&r.setOutputEnd((t||this).count()),t}function bm(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(e.uid))}return n}}const So=Bh;var G0=function(){function e(){this.group=new Ur,this.uid=Ah("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){},e.prototype.updateLayout=function(t,r,n,i){},e.prototype.updateVisual=function(t,r,n,i){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();p0(G0);Sh(G0);const Mi=G0;function HE(){var e=Et();return function(t){var r=e(t),n=t.pipelineContext,i=!!r.large,a=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(i!==o||a!==s)&&"reset"}}var zE=Et(),fK=HE(),U0=function(){function e(){this.group=new Ur,this.uid=Ah("viewChart"),this.renderTask=nu({plan:cK,reset:dK}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,i){},e.prototype.highlight=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&jS(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);a&&jS(a,i,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateLayout=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.updateVisual=function(t,r,n,i){this.render(t,r,n,i)},e.prototype.eachRendered=function(t){P0(this.group,t)},e.markUpdateMethod=function(t,r){zE(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function YS(e,t,r){e&&fm(e)&&(t==="emphasis"?am:om)(e,r)}function jS(e,t,r){var n=sf(e,t),i=t&&t.highlightKey!=null?_Y(t.highlightKey):null;n!=null?R(pr(n),function(a){YS(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){YS(a,r,i)})}p0(U0);Sh(U0);function cK(e){return fK(e.model)}function dK(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&zE(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),hK[l]}var hK={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const ho=U0;var kd="\0__throttleOriginMethod",qS="\0__throttleRate",KS="\0__throttleType";function Y0(e,t,r){var n,i=0,a=0,o=null,s,l,u,f;t=t||0;function c(){a=new Date().getTime(),o=null,e.apply(l,u||[])}var h=function(){for(var d=[],v=0;v=0?c():o=setTimeout(c,-s),i=n};return h.clear=function(){o&&(clearTimeout(o),o=null)},h.debounceNextCall=function(d){f=d},h}function VE(e,t,r,n){var i=e[t];if(i){var a=i[kd]||i,o=i[KS],s=i[qS];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=Y0(a,r,n==="debounce"),i[kd]=a,i[KS]=n,i[qS]=r}return i}}function wm(e,t){var r=e[t];r&&r[kd]&&(r.clear&&r.clear(),e[t]=r[kd])}var XS=Et(),ZS={itemStyle:Du(tE,!0),lineStyle:Du(eE,!0)},vK={lineStyle:"stroke",itemStyle:"fill"};function WE(e,t){var r=e.visualStyleMapper||ZS[t];return r||(console.warn("Unknown style type '"+t+"'."),ZS.itemStyle)}function GE(e,t){var r=e.visualDrawType||vK[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var pK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=WE(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=GE(e,n),u=o[l],f=Ye(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var h=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=h,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Ye(o.fill)?h:o.fill,o.stroke=o.stroke==="auto"||Ye(o.stroke)?h:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(d,v){var p=e.getDataParams(v),m=ue({},o);m[l]=f(p),d.setItemVisual(v,"style",m)}}}},dl=new sr,gK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=WE(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){dl.option=l[n];var u=i(dl),f=o.ensureUniqueItemVisual(s,"style");ue(f,u),dl.option.decal&&(o.setItemVisual(s,"decal",dl.option.decal),dl.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},mK={performRawSeries:!0,overallReset:function(e){var t=je();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var i=r.type+"-"+n,a=t.get(i);a||(a={},t.set(i,a)),XS(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=XS(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=GE(r,s);a.each(function(u){var f=a.getRawIndex(u);i[f]=u}),n.each(function(u){var f=i[u],c=a.getItemVisual(f,"colorFromPalette");if(c){var h=a.ensureUniqueItemVisual(f,"style"),d=n.getName(u)||u+"",v=n.count();h[l]=r.getColorFromPalette(d,o,v)}})}})}},rc=Math.PI;function yK(e,t){t=t||{},ht(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new Ur,n=new Gt({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new mr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new Gt({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(a);var o;return t.showSpinner&&(o=new S0({shape:{startAngle:-rc/2,endAngle:-rc/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:rc*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:rc*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),f=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:f}),a.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var UE=function(){function e(t,r,n,i){this._stageTaskMap=je(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=a?n.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&a>=n.threshold,s=t.get("large")&&a>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=je();t.eachSeries(function(i){var a=i.getProgressive(),o=i.uid;n.set(o,{id:o,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:a&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(a||700),count:0}),r._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;R(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";Ci(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},e.prototype.prepareView=function(t,r,n,i){var a=t.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,this._pipe(r,a)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,i){i=i||{};var a=!1,o=this;R(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,h=f.overallTask;if(h){var d,v=h.agentStubMap;v.each(function(m){s(i,m)&&(m.dirty(),d=!0)}),d&&h.dirty(),o.updatePayload(h,n);var p=o.getPerformArgs(h,i.block);v.each(function(m){m.perform(p)}),h.perform(p)&&(a=!0)}else c&&c.each(function(m,g){s(i,m)&&m.dirty();var y=o.getPerformArgs(m,i.block);y.skip=!l.performRawSeries&&r.isSeriesFiltered(m.context.model),o.updatePayload(m,n),m.perform(y)&&(a=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=a||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=je(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(f):l?n.eachRawSeriesByType(l,f):u&&u(n,i).each(f);function f(c){var h=c.uid,d=s.set(h,o&&o.get(h)||nu({plan:xK,reset:CK,count:MK}));d.context={model:c,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:a},a._pipe(c,d)}},e.prototype._createOverallStageTask=function(t,r,n,i){var a=this,o=r.overallTask=r.overallTask||nu({reset:_K});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=je(),u=t.seriesType,f=t.getTargetSeries,c=!0,h=!1,d="";Ci(!t.createOnAllSeries,d),u?n.eachRawSeriesByType(u,v):f?f(n,i).each(v):(c=!1,R(n.getSeries(),v));function v(p){var m=p.uid,g=l.set(m,s&&s.get(m)||(h=!0,nu({reset:bK,onDirty:SK})));g.context={model:p,overallProgress:c},g.agent=o,g.__block=c,a._pipe(p,g)}h&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=r),i.tail&&i.tail.pipe(r),i.tail=r,r.__idxInPipeline=i.count++,r.__pipeline=i},e.wrapStageHandler=function(t,r){return Ye(t)&&(t={overallReset:t,seriesType:AK(t)}),t.uid=Ah("stageHandler"),r&&(t.visualType=r),t},e}();function _K(e){e.overallReset(e.ecModel,e.api,e.payload)}function bK(e){return e.overallProgress&&wK}function wK(){this.agent.dirty(),this.getDownstream().dirty()}function SK(){this.agent&&this.agent.dirty()}function xK(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function CK(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=pr(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Ne(t,function(r,n){return YE(n)}):TK}var TK=YE(0);function YE(e){return function(t,r){var n=r.data,i=r.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&d===u.length-h.length){var v=u.slice(0,d);v!=="data"&&(r.mainType=v,r[h.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(n[u]=l,f=!0),f||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,a,"name")&&f(u,a,"dataIndex")&&f(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,i,a));function f(c,h,d,v){return c[d]==null||h[v||d]===c[d]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),Sm=["symbol","symbolSize","symbolRotate","symbolOffset"],tx=Sm.concat(["symbolKeepAspect"]),DK={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&ro(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function Cm(e,t,r){for(var n=t.type==="radial"?XK(e,t,r):KK(e,t,r),i=t.colorStops,a=0;a0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:Tt(e)?[e]:ye(e)?e:null}function XE(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&QK(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=Ne(r,function(a){return a/i}),n/=i)}return[r,n]}var JK=new bo(!0);function Bd(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function rx(e){return typeof e=="string"&&e!=="none"}function Fd(e){var t=e.fill;return t!=null&&t!=="none"}function nx(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function ix(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function Tm(e,t,r){var n=rP(t.image,t.__image,r);if(xh(n)){var i=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*pU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function eX(e,t,r,n){var i,a=Bd(r),o=Fd(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var f=t.path||JK,c=t.__dirty;if(!n){var h=r.fill,d=r.stroke,v=o&&!!h.colorStops,p=a&&!!d.colorStops,m=o&&!!h.image,g=a&&!!d.image,y=void 0,_=void 0,b=void 0,x=void 0,w=void 0;(v||p)&&(w=t.getBoundingRect()),v&&(y=c?Cm(e,h,w):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=c?Cm(e,d,w):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),m&&(b=c||!t.__canvasFillPattern?Tm(e,h,t):t.__canvasFillPattern,t.__canvasFillPattern=b),g&&(x=c||!t.__canvasStrokePattern?Tm(e,d,t):t.__canvasStrokePattern,t.__canvasStrokePattern=b),v?e.fillStyle=y:m&&(b?e.fillStyle=b:o=!1),p?e.strokeStyle=_:g&&(x?e.strokeStyle=x:a=!1)}var S=t.getGlobalScale();f.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,M;e.setLineDash&&r.lineDash&&(i=XE(t),C=i[0],M=i[1]);var A=!0;(u||c&Qo)&&(f.setDPR(e.dpr),l?f.setContext(null):(f.setContext(e),A=!1),f.reset(),t.buildPath(f,t.shape,n),f.toStatic(),t.pathUpdated()),A&&f.rebuildPath(e,l?s:1),C&&(e.setLineDash(C),e.lineDashOffset=M),n||(r.strokeFirst?(a&&ix(e,r),o&&nx(e,r)):(o&&nx(e,r),a&&ix(e,r))),C&&e.setLineDash([])}function tX(e,t,r){var n=t.__image=rP(r.image,t.__image,t,t.onload);if(!(!n||!xh(n))){var i=r.x||0,a=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,f=r.sy||0;e.drawImage(n,u,f,r.sWidth,r.sHeight,i,a,o,s)}else if(r.sx&&r.sy){var u=r.sx,f=r.sy,c=o-u,h=s-f;e.drawImage(n,u,f,c,h,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function rX(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||_o,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=XE(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(Bd(r)&&e.strokeText(i,r.x,r.y),Fd(r)&&e.fillText(i,r.x,r.y)):(Fd(r)&&e.fillText(i,r.x,r.y),Bd(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var ax=["shadowBlur","shadowOffsetX","shadowOffsetY"],ox=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function ZE(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){Tr(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?fo.opacity:o}(n||t.blend!==r.blend)&&(a||(Tr(e,i),a=!0),e.globalCompositeOperation=t.blend||fo.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,i){if(!this[nr]){if(this._disposed){this.id;return}var a,o,s;if(Re(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[nr]=!0,!this._model||n){var l=new vq(this._api),u=this._theme,f=this._model=new F0;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},Pm);var c={seriesTransition:s,optionChanged:!0};if(i)this[br]={silent:a,updateParams:c},this[nr]=!1,this.getZr().wakeUp();else{try{jo(this),$i.update.call(this,null,c)}catch(h){throw this[br]=null,this[nr]=!1,h}this._ssr||this._zr.flush(),this[br]=null,this[nr]=!1,hl.call(this,a),vl.call(this,a)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||He.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(He.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return R(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,i=this._model,a=[],o=this;R(n,function(l){i.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(a.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return R(a,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",i=this.group,a=Math.min,o=Math.max,s=1/0;if(Sx[i]){var l=s,u=s,f=-s,c=-s,h=[],d=r&&r.pixelRatio||this.getDevicePixelRatio();R(au,function(_,b){if(_.group===i){var x=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(tt(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),f=o(w.right,f),c=o(w.bottom,c),h.push({dom:x,left:w.left,top:w.top})}}),l*=d,u*=d,f*=d,c*=d;var v=f-l,p=c-u,m=Gs.createCanvas(),g=Tw(m,{renderer:n?"svg":"canvas"});if(g.resize({width:v,height:p}),n){var y="";return R(h,function(_){var b=_.left-l,x=_.top-u;y+=''+_.dom+""}),g.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&g.painter.setBackgroundColor(r.connectedBackgroundColor),g.refreshImmediately(),g.painter.toDataURL()}else return r.connectedBackgroundColor&&g.add(new Gt({shape:{x:0,y:0,width:v,height:p},style:{fill:r.connectedBackgroundColor}})),R(h,function(_){var b=new Ys({style:{x:_.left*d-l,y:_.top*d-u,image:_.dom}});g.add(b)}),g.refreshImmediately(),m.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return vp(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return vp(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Bv(i,r);return R(o,function(s,l){l.indexOf("Models")>=0&&R(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)a=a||!!f.containPoint(n);else if(l==="seriesModels"){var c=this._chartsMap[u.__viewId];c&&c.containPoint&&(a=a||c.containPoint(n,u))}},this)},this),!!a},t.prototype.getVisual=function(r,n){var i=this._model,a=Bv(i,r,{defaultMainType:"series"}),o=a.seriesModel,s=o.getData(),l=a.hasOwnProperty("dataIndexInside")?a.dataIndexInside:a.hasOwnProperty("dataIndex")?s.indexOfRawIndex(a.dataIndex):null;return l!=null?OK(s,l,n):RK(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;R(PX,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&Ll(s,function(v){var p=dt(v);if(p&&p.dataIndex!=null){var m=p.dataModel||o.getSeriesByIndex(p.seriesIndex);return l=m&&m.getDataParams(p.dataIndex,p.dataType,s)||{},!0}else if(p.eventData)return l=ue({},p.eventData),!0},!0),l){var f=l.componentType,c=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",c=l.seriesIndex);var h=f&&c!=null&&o.getComponent(f,c),d=h&&r[h.mainType==="series"?"_chartsMap":"_componentsMap"][h.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:h,view:d},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),R(iu,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),R(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),NK(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&J2(this.getDom(),X0,"");var n=this,i=n._api,a=n._model;R(n._componentsViews,function(o){o.dispose(a,i)}),R(n._chartsViews,function(o){o.dispose(a,i)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete au[n.id]},t.prototype.resize=function(r){if(!this[nr]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var i=n.resetOption("media"),a=r&&r.silent;this[br]&&(a==null&&(a=this[br].silent),i=!0,this[br]=null),this[nr]=!0;try{i&&jo(this),$i.update.call(this,{type:"resize",animation:ue({duration:0},r&&r.animation)})}catch(o){throw this[nr]=!1,o}this[nr]=!1,hl.call(this,a),vl.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Re(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!Em[r]){var i=Em[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=ue({},r);return n.type=iu[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Re(n)||(n={silent:!!n}),!!$d[r.type]&&this._model){if(this[nr]){this._pendingActions.push(r);return}var i=n.silent;gp.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&He.browser.weChat&&this._throttledZrFlush(),hl.call(this,i),vl.call(this,i)}},t.prototype.updateLabelLayout=function(){_n.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,i=this.getModel(),a=i.getSeriesByIndex(n);a.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){jo=function(c){var h=c._scheduler;h.restorePipelines(c._model),h.prepareStageTasks(),hp(c,!0),hp(c,!1),h.plan()},hp=function(c,h){for(var d=c._model,v=c._scheduler,p=h?c._componentsViews:c._chartsViews,m=h?c._componentsMap:c._chartsMap,g=c._zr,y=c._api,_=0;_h.get("hoverLayerThreshold")&&!He.node&&!He.worker&&h.eachSeries(function(m){if(!m.preventUsingHoverLayer){var g=c._chartsMap[m.__viewId];g.__alive&&g.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(c,h){var d=c.get("blendMode")||null;h.eachRendered(function(v){v.isGroup||(v.style.blend=d)})}function s(c,h){if(!c.preventAutoZ){var d=c.get("z")||0,v=c.get("zlevel")||0;h.eachRendered(function(p){return l(p,d,v,-1/0),!0})}}function l(c,h,d,v){var p=c.getTextContent(),m=c.getTextGuideLine(),g=c.isGroup;if(g)for(var y=c.childrenRef(),_=0;_0?{duration:p,delay:d.get("delay"),easing:d.get("easing")}:null;h.eachRendered(function(g){if(g.states&&g.states.emphasis){if(ds(g))return;if(g instanceof vt&&bY(g),g.__dirty){var y=g.prevStates;y&&g.useStates(y)}if(v){g.stateTransition=m;var _=g.getTextContent(),b=g.getTextGuideLine();_&&(_.stateTransition=m),b&&(b.stateTransition=m)}g.__dirty&&i(g)}})}_x=function(c){return new(function(h){ge(d,h);function d(){return h!==null&&h.apply(this,arguments)||this}return d.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},d.prototype.getComponentByElement=function(v){for(;v;){var p=v.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);v=v.parent}},d.prototype.enterEmphasis=function(v,p){am(v,p),qr(c)},d.prototype.leaveEmphasis=function(v,p){om(v,p),qr(c)},d.prototype.enterBlur=function(v){fY(v),qr(c)},d.prototype.leaveBlur=function(v){_P(v),qr(c)},d.prototype.enterSelect=function(v){bP(v),qr(c)},d.prototype.leaveSelect=function(v){wP(v),qr(c)},d.prototype.getModel=function(){return c.getModel()},d.prototype.getViewOfComponentModel=function(v){return c.getViewOfComponentModel(v)},d.prototype.getViewOfSeriesModel=function(v){return c.getViewOfSeriesModel(v)},d}(SE))(c)},dL=function(c){function h(d,v){for(var p=0;p=0)){xx.push(r);var a=UE.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function yL(e,t){Em[e]=t}function kX(e,t,r){var n=hX("registerMap");n&&n(e,t,r)}var NX=Hq;Do(q0,pK);Do(Fh,gK);Do(Fh,mK);Do(q0,DK);Do(Fh,IK);Do(oL,fX);gL(CE);mL(gX,Sq);yL("default",yK);Ks({type:co,event:co,update:co},Er);Ks({type:Uc,event:Uc,update:Uc},Er);Ks({type:Ql,event:Ql,update:Ql},Er);Ks({type:Yc,event:Yc,update:Yc},Er);Ks({type:Jl,event:Jl,update:Jl},Er);pL("light",PK);pL("dark",EK);function pl(e){return e==null?0:e.length||1}function Cx(e){return e}var BX=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||Cx,this._newKeyGetter=i||Cx,this.context=a,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},i=new Array(t.length),a=new Array(r.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(r,n,a,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(f,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(a,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(t,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&h===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&h>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&h===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&h>1)this._updateManyToMany&&this._updateManyToMany(f,u),i[l]=null;else if(c>1)for(var d=0;d1)for(var s=0;s30}var gl=Re,Hi=Ne,UX=typeof Int32Array>"u"?Array:Int32Array,YX="e\0\0",Tx=-1,jX=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],qX=["_approximateExtent"],Mx,lc,ml,yl,_p,uc,bp,CL=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,i=!1;bL(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var a={},o=[],s={},l=!1,u={},f=0;f=r)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var a=this._nameList,o=this._idList,s=i.getSource().sourceFormat,l=s===hn;if(l&&!i.pure)for(var u=[],f=t;f0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var a=i[r];return a==null&&(a=this.getVisual(r),ye(a)?a=a.slice():gl(a)&&(a=ue({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,gl(r)?ue(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){gl(t)?ue(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?ue(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;eY(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){R(this._graphicEls,function(n,i){n&&t&&t.call(r,n,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Hi(this.dimensions,this._getDimInfo,this),this.hostModel)),_p(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Ye(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(n0(arguments)))})},e.internalField=function(){Mx=function(t){var r=t._invertedIndicesMap;R(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new UX(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}}(),e}();function TL(e,t){H0(e)||(e=z0(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=je(),a=[],o=XX(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&xL(o),l=n===e.dimensionsDefine,u=l?SL(e):wL(n),f=t.encodeDefine;!f&&t.encodeDefaulter&&(f=t.encodeDefaulter(e,o));for(var c=je(f),h=new IE(o),d=0;d0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function XX(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return R(t,function(a){var o;Re(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function ZX(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var QX=function(){function e(t){this.coordSysDims=[],this.axisMap=je(),this.categoryAxisMap=je(),this.coordSysName=t}return e}();function JX(e){var t=e.get("coordinateSystem"),r=new QX(t),n=eZ[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var eZ={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",Tn).models[0],a=e.getReferringComponents("yAxis",Tn).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),qo(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),qo(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",Tn).models[0];t.coordSysDims=["single"],r.set("single",i),qo(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",Tn).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),qo(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),qo(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var i=e.ecModel,a=i.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=a.dimensions.slice();R(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),qo(u)&&(n.set(f,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function qo(e){return e.get("type")==="category"}function tZ(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;rZ(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,f,c,h;if(R(a,function(y,_){Ee(y)&&(a[_]=y={name:y}),l&&!y.isExtraCoord&&(!n&&!u&&y.ordinalMeta&&(u=y),!f&&y.type!=="ordinal"&&y.type!=="time"&&(!i||i===y.coordDim)&&(f=y))}),f&&!n&&!u&&(n=!0),f){c="__\0ecstackresult_"+e.id,h="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var d=f.coordDim,v=f.type,p=0;R(a,function(y){y.coordDim===d&&p++});var m={name:c,coordDim:d,coordDimIndex:p,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},g={name:h,coordDim:h,coordDimIndex:p+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(m.storeDimIndex=s.ensureCalculationDimension(h,v),g.storeDimIndex=s.ensureCalculationDimension(c,v)),o.appendCalculationDimension(m),o.appendCalculationDimension(g)):(a.push(m),a.push(g))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:h,stackResultDimension:c}}function rZ(e){return!bL(e.schema)}function ML(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function nZ(e,t){return ML(e,t)?e.getCalculationInfo("stackResultDimension"):t}function iZ(e,t){var r=e.get("coordinateSystem"),n=$0.get(r),i;return t&&t.coordSysDims&&(i=Ne(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=zX(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function aZ(e,t,r){var n,i;return r&&R(e,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),t&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(e[n].otherDims.itemName=0),n}function AL(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=z0(e)):(i=n.getSource(),a=i.sourceFormat===hn);var o=JX(t),s=iZ(t,o),l=r.useEncodeDefaulter,u=Ye(l)?l:l?Rt(Kj,s,t):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=TL(i,f),h=aZ(c.dimensions,r.createInvertedIndices,o),d=a?null:n.getSharedDataStore(c),v=tZ(t,{schema:c,store:d}),p=new CL(c,t);p.setCalculationInfo(v);var m=h!=null&&oZ(i)?function(g,y,_,b){return b===h?_:this.defaultDimValueGetter(g,y,_,b)}:null;return p.hasItemOption=!1,p.initData(a?i:d,null,m),p}function oZ(e){if(e.sourceFormat===hn){var t=sZ(e.data||[]);return!ye(of(t))}}function sZ(e){for(var t=0;tr[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();Sh(oi);var lZ=0,Lm=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++lZ}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&Ne(n,uZ);return new e({categories:i,needCollect:!i,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!Ee(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var i=this._getOrCreateMap();return r=i.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,i.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=je(this.categories))},e}();function uZ(e){return Re(e)&&e.value!=null?e.value:e+""}function Dm(e){return e.type==="interval"||e.type==="log"}function fZ(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=q2(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=PL(o),l=i.niceTickExtent=[$t(Math.ceil(e[0]/o)*o,s),$t(Math.floor(e[1]/o)*o,s)];return cZ(l,e),i}function wp(e){var t=Math.pow(10,d0(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,$t(r*t)}function PL(e){return vi(e)+2}function Ax(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function cZ(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Ax(e,0,t),Ax(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function $h(e,t){return e>=t[0]&&e<=t[1]}function Hh(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function zh(e,t){return e*(t[1]-t[0])+t[0]}var EL=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new Lm({})),ye(i)&&(i=new Lm({categories:Ne(i,function(a){return Re(a)?a.value:a})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:Ee(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),$h(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Hh(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(zh(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,i=n[0];i<=n[1];)r.push({value:i}),i++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,i=this._ordinalNumbersByTick=[],a=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(oi);oi.registerClass(EL);const LL=EL;var za=$t,DL=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return $h(r,this._extent)},t.prototype.normalize=function(r){return Hh(r,this._extent)},t.prototype.scale=function(r){return zh(r,this._extent)},t.prototype.setExtent=function(r,n){var i=this._extent;isNaN(r)||(i[0]=parseFloat(r)),isNaN(n)||(i[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=PL(r)},t.prototype.getTicks=function(r){var n=this._interval,i=this._extent,a=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var l=1e4;i[0]l)return[];var f=s.length?s[s.length-1].value:a[1];return i[1]>f&&(r?s.push({value:za(f+n,o)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),i=[],a=this.getExtent(),o=1;oa[0]&&d0&&(a=a===null?s:Math.min(a,s))}r[n]=a}}return r}function RL(e){var t=vZ(e),r=[];return R(e,function(n){var i=n.coordinateSystem,a=i.getBaseAxis(),o=a.getExtent(),s;if(a.type==="category")s=a.getBandWidth();else if(a.type==="value"||a.type==="time"){var l=a.dim+"_"+a.index,u=t[l],f=Math.abs(o[1]-o[0]),c=a.scale.getExtent(),h=Math.abs(c[1]-c[0]);s=u?f/h*u:f}else{var d=n.getData();s=Math.abs(o[1]-o[0])/d.count()}var v=yt(n.get("barWidth"),s),p=yt(n.get("barMaxWidth"),s),m=yt(n.get("barMinWidth")||(NL(n)?.5:1),s),g=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:v,barMaxWidth:p,barMinWidth:m,barGap:g,barCategoryGap:y,axisKey:t_(a),stackId:e_(n)})}),pZ(r)}function pZ(e){var t={};R(e,function(n,i){var a=n.axisKey,o=n.bandWidth,s=t[a]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[a]=s;var u=n.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=n.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var c=n.barMaxWidth;c&&(l[u].maxWidth=c);var h=n.barMinWidth;h&&(l[u].minWidth=h);var d=n.barGap;d!=null&&(s.gap=d);var v=n.barCategoryGap;v!=null&&(s.categoryGap=v)});var r={};return R(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Ct(a).length;s=Math.max(35-l*4,15)+"%"}var u=yt(s,o),f=yt(n.gap,1),c=n.remainedWidth,h=n.autoWidthCount,d=(c-u)/(h+(h-1)*f);d=Math.max(d,0),R(a,function(g){var y=g.maxWidth,_=g.minWidth;if(g.width){var b=g.width;y&&(b=Math.min(b,y)),_&&(b=Math.max(b,_)),g.width=b,c-=b+f*b,h--}else{var b=d;y&&yb&&(b=_),b!==d&&(g.width=b,c-=b+f*b,h--)}}),d=(c-u)/(h+(h-1)*f),d=Math.max(d,0);var v=0,p;R(a,function(g,y){g.width||(g.width=d),p=g,v+=g.width*(1+f)}),p&&(v-=p.width*f);var m=-v/2;R(a,function(g,y){r[i][y]=r[i][y]||{bandWidth:o,offset:m,width:g.width},m+=g.width*(1+f)})}),r}function gZ(e,t,r){if(e&&t){var n=e[t_(t)];return n!=null&&r!=null?n[e_(r)]:n}}function mZ(e,t){var r=OL(e,t),n=RL(r);R(r,function(i){var a=i.getData(),o=i.coordinateSystem,s=o.getBaseAxis(),l=e_(i),u=n[t_(s)][l],f=u.offset,c=u.width;a.setLayout({bandWidth:u.bandWidth,offset:f,size:c})})}function yZ(e){return{seriesType:e,plan:HE(),reset:function(t){if(kL(t)){var r=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),a=n.getOtherAxis(i),o=r.getDimensionIndex(r.mapDimension(a.dim)),s=r.getDimensionIndex(r.mapDimension(i.dim)),l=t.get("showBackground",!0),u=r.mapDimension(a.dim),f=r.getCalculationInfo("stackResultDimension"),c=ML(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),h=a.isHorizontal(),d=_Z(i,a),v=NL(t),p=t.get("barMinHeight")||0,m=f&&r.getDimensionIndex(f),g=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,b){for(var x=_.count,w=v&&Sp(x*3),S=v&&l&&Sp(x*3),C=v&&Sp(x),M=n.master.getRect(),A=h?M.width:M.height,P,E=b.getStore(),L=0;(P=_.next())!=null;){var O=E.get(c?m:o,P),N=E.get(s,P),H=d,V=void 0;c&&(V=+O-E.get(o,P));var U=void 0,F=void 0,z=void 0,ee=void 0;if(h){var J=n.dataToPoint([O,N]);if(c){var me=n.dataToPoint([V,N]);H=me[0]}U=H,F=J[1]+y,z=J[0]-H,ee=g,Math.abs(z)>>1;e[i][1]i&&(this._approxInterval=i);var s=fc.length,l=Math.min(bZ(fc,this._approxInterval,0,s),s-1);this._interval=fc[l][1],this._minLevelUnit=fc[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return Tt(r)?r:+Ti(r)},t.prototype.contain=function(r){return $h(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Hh(this.parse(r),this._extent)},t.prototype.scale=function(r){return zh(r,this._extent)},t.type="time",t}(df),fc=[["second",I0],["minute",O0],["hour",tu],["quarter-day",tu*6],["half-day",tu*12],["day",on*1.2],["half-week",on*3.5],["week",on*7],["month",on*31],["quarter",on*95],["half-year",gS/2],["year",gS]];function wZ(e,t,r,n){var i=Ti(t),a=Ti(r),o=function(v){return yS(i,v,n)===yS(a,v,n)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},c=function(){return f()&&o("minute")},h=function(){return c()&&o("second")},d=function(){return h()&&o("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return c();case"second":return h();case"millisecond":return d()}}function SZ(e,t){return e/=on,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function xZ(e){var t=30*on;return e/=t,e>6?6:e>3?3:e>2?2:1}function CZ(e){return e/=tu,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Px(e,t){return e/=t?O0:I0,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function TZ(e){return q2(e,!0)}function MZ(e,t,r){var n=new Date(e);switch(hs(t)){case"year":case"month":n[sE(r)](0);case"day":n[lE(r)](1);case"hour":n[uE(r)](0);case"minute":n[fE(r)](0);case"second":n[cE(r)](0),n[dE(r)](0)}return n.getTime()}function AZ(e,t,r,n){var i=1e4,a=aE,o=0;function s(A,P,E,L,O,N,H){for(var V=new Date(P),U=P,F=V[L]();U1&&N===0&&E.unshift({value:E[0].value-U})}}for(var N=0;N=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&h>_/1.5||(u.push(m),c>_||e===a[d]))break}f=[]}}}for(var b=jt(Ne(u,function(A){return jt(A,function(P){return P.value>=n[0]&&P.value<=n[1]&&!P.notAdd})}),function(A){return A.length>0}),x=[],w=b.length-1,d=0;d0;)a*=10;var s=[$t(DZ(n[0]/a)*a),$t(LZ(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){ou.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=pn(r)/pn(this.base),$h(r,this._extent)},t.prototype.normalize=function(r){return r=pn(r)/pn(this.base),Hh(r,this._extent)},t.prototype.scale=function(r){return r=zh(r,this._extent),cc(this.base,r)},t.type="log",t}(oi),FL=r_.prototype;FL.getMinorTicks=ou.getMinorTicks;FL.getLabel=ou.getLabel;function dc(e,t){return EZ(e,vi(t))}oi.registerClass(r_);const IZ=r_;var OZ=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var h=this._determinedMin,d=this._determinedMax;return h!=null&&(s=h,u=!0),d!=null&&(l=d,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:c}},e.prototype.modifyDataMinMax=function(t,r){this[kZ[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=RZ[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),RZ={min:"_determinedMin",max:"_determinedMax"},kZ={min:"_dataMin",max:"_dataMax"};function NZ(e,t,r){var n=e.rawExtentInfo;return n||(n=new OZ(e,t,r),e.rawExtentInfo=n,n)}function hc(e,t){return t==null?null:bd(t)?NaN:e.parse(t)}function $L(e,t){var r=e.type,n=NZ(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var i=n.min,a=n.max,o=t.ecModel;if(o&&r==="time"){var s=OL("bar",o),l=!1;if(R(s,function(c){l=l||c.getBaseAxis()===t.axis}),l){var u=RL(s),f=BZ(i,a,t,u);i=f.min,a=f.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function BZ(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=gZ(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;R(o,function(d){s=Math.min(d.offset,s)});var l=-1/0;R(o,function(d){l=Math.max(d.offset+d.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=t-e,c=1-(s+l)/a,h=f/c-f;return t+=h*(l/u),e-=h*(s/u),{min:e,max:t}}function Lx(e,t){var r=t,n=$L(e,r),i=n.extent,a=r.get("splitNumber");e instanceof IZ&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),l=o==="interval"||o==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:a,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:l?r.get("minInterval"):null,maxInterval:l?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function FZ(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new LL({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new PZ({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(oi.getClass(t)||df)}}function $Z(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function hf(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(i,a){return e.scale.getFormattedLabel(i,a,n)}}(t):Ee(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a??"");return o}}(t):Ye(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(n_(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function n_(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function HZ(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof LL?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=hf(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var f=0;f=0||(Dx.push(e),Ye(e)&&(e={install:e}),e.install(GZ))}var zu=Et();function UZ(e){return e.type==="category"?jZ(e):KZ(e)}function YZ(e,t){return e.type==="category"?qZ(e,t):{ticks:Ne(e.scale.getTicks(),function(r){return r.value})}}function jZ(e){var t=e.getLabelModel(),r=zL(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function zL(e,t){var r=VL(e,"labels"),n=i_(t),i=WL(r,n);if(i)return i;var a,o;return Ye(n)?a=YL(e,n):(o=n==="auto"?XZ(e):n,a=UL(e,o)),GL(r,n,{labels:a,labelCategoryInterval:o})}function qZ(e,t){var r=VL(e,"ticks"),n=i_(t),i=WL(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),Ye(n))a=YL(e,n,!0);else if(n==="auto"){var s=zL(e,e.getLabelModel());o=s.labelCategoryInterval,a=Ne(s.labels,function(l){return l.tickValue})}else o=n,a=UL(e,o,!0);return GL(r,n,{ticks:a,tickCategoryInterval:o})}function KZ(e){var t=e.scale.getTicks(),r=hf(e);return{labels:Ne(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function VL(e,t){return zu(e)[t]||(zu(e)[t]=[])}function WL(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),f=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),h=0,d=0;l<=a[1];l+=s){var v=0,p=0,m=u0(r({value:l}),t.font,"center","top");v=m.width*1.3,p=m.height*1.3,h=Math.max(h,v,7),d=Math.max(d,p,7)}var g=h/f,y=d/c;isNaN(g)&&(g=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(g,y))),b=zu(e.model),x=e.getExtent(),w=b.lastAutoInterval,S=b.lastTickCount;return w!=null&&S!=null&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&b.axisExtent0===x[0]&&b.axisExtent1===x[1]?_=w:(b.lastTickCount=o,b.lastAutoInterval=_,b.axisExtent0=x[0],b.axisExtent1=x[1]),_}function QZ(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function UL(e,t,r){var n=hf(e),i=e.scale,a=i.getExtent(),o=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=a[0],f=i.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=HL(e),h=o.get("showMinLabel")||c,d=o.get("showMaxLabel")||c;h&&u!==a[0]&&p(a[0]);for(var v=u;v<=a[1];v+=l)p(v);d&&v-l!==a[1]&&p(a[1]);function p(m){var g={value:m};s.push(r?m:{formattedLabel:n(g),rawLabel:i.getLabel(g),tickValue:m})}return s}function YL(e,t,r){var n=e.scale,i=hf(e),a=[];return R(n.getTicks(),function(o){var s=n.getLabel(o),l=o.value;t(o.value,s)&&a.push(r?l:{formattedLabel:i(o),rawLabel:s,tickValue:l})}),a}var Ix=[0,1],JZ=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return t>=n&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return O9(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(n=n.slice(),Ox(n,i.count())),Jg(t,Ix,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),Ox(n,i.count()));var a=Jg(t,n,Ix,r);return this.scale.scale(a)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=YZ(this,r),i=n.ticks,a=Ne(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return eQ(this,a,o,t.clamp),a},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),i=Ne(n,function(a){return Ne(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return UZ(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},e.prototype.calculateCategoryInterval=function(){return ZZ(this)},e}();function Ox(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function eQ(e,t,r,n){var i=t.length;if(!e.onBand||r||!i)return;var a=e.getExtent(),o,s;if(i===1)t[0].coord=a[0],o=t[1]={coord:a[1]};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;R(t,function(d){d.coord-=u/2});var f=e.scale.getExtent();s=1+f[1]-t[i-1].tickValue,o={coord:t[i-1].coord+u*s},t.push(o)}var c=a[0]>a[1];h(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&h(a[0],t[0].coord)&&t.unshift({coord:a[0]}),h(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&h(o.coord,a[1])&&t.push({coord:a[1]});function h(d,v){return d=$t(d),v=$t(v),c?d>v:di&&(i+=_l);var d=Math.atan2(s,o);if(d<0&&(d+=_l),d>=n&&d<=i||d+_l>=n&&d+_l<=i)return l[0]=f,l[1]=c,u-r;var v=r*Math.cos(n)+e,p=r*Math.sin(n)+t,m=r*Math.cos(i)+e,g=r*Math.sin(i)+t,y=(v-o)*(v-o)+(p-s)*(p-s),_=(m-o)*(m-o)+(g-s)*(g-s);return y<_?(l[0]=v,l[1]=p,Math.sqrt(y)):(l[0]=m,l[1]=g,Math.sqrt(_))}function zd(e,t,r,n,i,a,o,s){var l=i-e,u=a-t,f=r-e,c=n-t,h=Math.sqrt(f*f+c*c);f/=h,c/=h;var d=l*f+u*c,v=d/h;s&&(v=Math.min(Math.max(v,0),1)),v*=h;var p=o[0]=e+v*f,m=o[1]=t+v*c;return Math.sqrt((p-i)*(p-i)+(m-a)*(m-a))}function jL(e,t,r,n,i,a,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var s=e+r,l=t+n,u=o[0]=Math.min(Math.max(i,e),s),f=o[1]=Math.min(Math.max(a,t),l);return Math.sqrt((u-i)*(u-i)+(f-a)*(f-a))}var bn=[];function aQ(e,t,r){var n=jL(t.x,t.y,t.width,t.height,e.x,e.y,bn);return r.set(bn[0],bn[1]),n}function oQ(e,t,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,f=t.data,c=e.x,h=e.y,d=0;d0){t=t/180*Math.PI,Mn.fromArray(e[0]),ut.fromArray(e[1]),Lt.fromArray(e[2]),Fe.sub(Yn,Mn,ut),Fe.sub(Wn,Lt,ut);var r=Yn.len(),n=Wn.len();if(!(r<.001||n<.001)){Yn.scale(1/r),Wn.scale(1/n);var i=Yn.dot(Wn),a=Math.cos(t);if(a1&&Fe.copy(dr,Lt),dr.toArray(e[1])}}}}function sQ(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Mn.fromArray(e[0]),ut.fromArray(e[1]),Lt.fromArray(e[2]),Fe.sub(Yn,ut,Mn),Fe.sub(Wn,Lt,ut);var n=Yn.len(),i=Wn.len();if(!(n<.001||i<.001)){Yn.scale(1/n),Wn.scale(1/i);var a=Yn.dot(t),o=Math.cos(r);if(a=l)Fe.copy(dr,Lt);else{dr.scaleAndAdd(Wn,s/Math.tan(Math.PI/2-f));var c=Lt.x!==ut.x?(dr.x-ut.x)/(Lt.x-ut.x):(dr.y-ut.y)/(Lt.y-ut.y);if(isNaN(c))return;c<0?Fe.copy(dr,ut):c>1&&Fe.copy(dr,Lt)}dr.toArray(e[1])}}}}function kx(e,t,r,n){var i=r==="normal",a=i?e:e.ensureState(r);a.ignore=t;var o=n.get("smooth");o&&o===!0&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=n.getModel("lineStyle").getLineStyle();i?e.useStyle(s):a.style=s}function lQ(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=Fg(n[0],n[1]),a=Fg(n[1],n[2]);if(!i||!a){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=gv([],n[1],n[0],o/i),l=gv([],n[1],n[2],o/a),u=gv([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var f=1;f0&&a&&x(-f/o,0,o);var p=e[0],m=e[o-1],g,y;_(),g<0&&w(-g,.8),y<0&&w(y,.8),_(),b(g,y,1),b(y,g,-1),_(),g<0&&S(-g),y<0&&S(y);function _(){g=p.rect[t]-n,y=i-m.rect[t]-m.rect[r]}function b(C,M,A){if(C<0){var P=Math.min(M,-C);if(P>0){x(P*A,0,o);var E=P+C;E<0&&w(-E*A,1)}else w(-C*A,1)}}function x(C,M,A){C!==0&&(u=!0);for(var P=M;P0)for(var E=0;E0;E--){var H=A[E-1]*N;x(-H,E,o)}}}function S(C){var M=C<0?-1:1;C=Math.abs(C);for(var A=Math.ceil(C/(o-1)),P=0;P0?x(A,0,P+1):x(-A,o-P-1,o),C-=A,C<=0)return}return u}function uQ(e,t,r,n){return QL(e,"x","width",t,r,n)}function JL(e,t,r,n){return QL(e,"y","height",t,r,n)}function eD(e){var t=[];e.sort(function(p,m){return m.priority-p.priority});var r=new nt(0,0,0,0);function n(p){if(!p.ignore){var m=p.ensureState("emphasis");m.ignore==null&&(m.ignore=!1)}p.ignore=!0}for(var i=0;i=0&&n.attr(a.oldLayoutSelect),ot(h,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Or(n,u,r,l)}else if(n.attr(u),!cf(n).valueAnimation){var c=Ze(n.style.opacity,1);n.style.opacity=0,Wr(n,{style:{opacity:c}},r,l)}if(a.oldLayout=u,n.states.select){var d=a.oldLayoutSelect={};vc(d,u,pc),vc(d,n.states.select,pc)}if(n.states.emphasis){var v=a.oldLayoutEmphasis={};vc(v,u,pc),vc(v,n.states.emphasis,pc)}Sj(n,l,f,r,r)}if(i&&!i.ignore&&!i.invisible){var a=dQ(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Or(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,Wr(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},e}(),Cp=Et();function vQ(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var i=Cp(r).labelManager;i||(i=Cp(r).labelManager=new hQ),i.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var i=Cp(r).labelManager;n.updatedSeries.forEach(function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function pQ(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Rs(e,t,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(t[a])}return n.join(" ")}function mQ(e,t,r,n,i){var a=e.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,f=r.get(["lineStyle","width"])||2;o-=f/2,s-=f/2,l+=f,u+=f,o=Math.floor(o),l=Math.round(l);var c=new Gt({shape:{x:o,y:s,width:l,height:u}});if(t){var h=e.getBaseAxis(),d=h.isHorizontal(),v=h.inverse;d?(v&&(c.shape.x+=l),c.shape.width=0):(v||(c.shape.y+=u),c.shape.height=0);var p=Ye(i)?function(m){i(m,c)}:null;Wr(c,{shape:{width:l,height:u,x:o,y:s}},r,null,n,p)}return c}function yQ(e,t,r){var n=e.getArea(),i=$t(n.r0,1),a=$t(n.r,1),o=new Eo({shape:{cx:$t(e.cx,1),cy:$t(e.cy,1),r0:i,r:a,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var s=e.getBaseAxis().dim==="angle";s?o.shape.endAngle=n.startAngle:o.shape.r=i,Wr(o,{shape:{endAngle:n.endAngle,r:a}},r)}return o}function _Q(e,t,r,n,i){if(e){if(e.type==="polar")return yQ(e,t,r);if(e.type==="cartesian2d")return mQ(e,t,r,n,i)}else return null;return null}function tD(e,t){return e.type===t}var bQ={average:function(e){for(var t=0,r=0,n=0;nt&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),c=n.getDevicePixelRatio(),h=Math.abs(f[1]-f[0])*(c||1),d=Math.round(s/h);if(isFinite(d)&&d>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/d));var v=void 0;Ee(a)?v=bQ[a]:Ye(a)&&(v=a),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/d,v,wQ))}}}}}var Im=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return AL(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,i){var a=this.coordinateSystem;if(a&&a.clampData){var o=a.clampData(r),s=a.dataToPoint(o);if(i)R(a.getAxes(),function(h,d){if(h.type==="category"&&n!=null){var v=h.getTicksCoords(),p=o[d],m=n[d]==="x1"||n[d]==="y1";if(m&&(p+=1),v.length<2)return;if(v.length===2){s[d]=h.toGlobalCoord(h.getExtent()[m?1:0]);return}for(var g=void 0,y=void 0,_=1,b=0;bp){y=(x+g)/2;break}b===1&&(_=w-v[0].tickValue)}y==null&&(g?g&&(y=v[v.length-1].coord):y=v[0].coord),s[d]=h.toGlobalCoord(y)}});else{var l=this.getData(),u=l.getLayout("offset"),f=l.getLayout("size"),c=a.getBaseAxis().isHorizontal()?0:1;s[c]+=u+f/2}return s}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(So);So.registerClass(Im);var xQ=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return AL(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get("progressiveThreshold"),n=this.get("largeThreshold");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,i){return i.rect(n.getItemLayout(r))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=rE(Im.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(Im);const CQ=xQ;var TQ=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),Bx=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new TQ},t.prototype.buildPath=function(r,n){var i=n.cx,a=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,f=n.startAngle,c=n.endAngle,h=n.clockwise,d=Math.PI*2,v=h?c-fMath.PI/2&&fs)return!0;s=c}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var i=n.scale,a=i.getExtent(),o=Math.max(0,a[0]),s=Math.min(a[1],i.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==i.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,i,a){if(this._isOrderChangedWithinSameData(r,n,i)){var o=this._dataSort(r,i,n);this._isOrderDifferentInView(o,i)&&(this._removeOnRenderedListener(a),a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",axisId:i.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,i){var a=n.baseAxis,o=this._dataSort(r,a,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",isInitSort:!0,axisId:a.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,i=this._data;r&&r.isAnimationEnabled()&&i&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],i.eachItemGraphicEl(function(a){Dd(a,r,dt(a).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(ho),Fx={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=Tp(t.x,e.x),s=Mp(t.x+t.width,i),l=Tp(t.y,e.y),u=Mp(t.y+t.height,a),f=si?s:o,t.y=c&&l>a?u:l,t.width=f?0:s-o,t.height=c?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),f||c},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var i=Mp(t.r,e.r),a=Tp(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},$x={cartesian2d:function(e,t,r,n,i,a,o,s,l){var u=new Gt({shape:ue({},n),z2:1});if(u.__dataIndex=r,u.name="item",a){var f=u.shape,c=i?"height":"width";f[c]=0}return u},polar:function(e,t,r,n,i,a,o,s,l){var u=!i&&l?Bx:Eo,f=new u({shape:n,z2:1});f.name="item";var c=rD(i);if(f.calculateTextPosition=MQ(c,{isRoundCap:u===Bx}),a){var h=f.shape,d=i?"r":"endAngle",v={};h[d]=i?n.r0:n.startAngle,v[d]=n[d],(s?Or:Wr)(f,{shape:v},a)}return f}};function LQ(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function Hx(e,t,r,n,i,a,o,s){var l,u;a?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?Or:Wr)(r,{shape:l},t,i,null);var f=t?e.baseAxis.model:null;(o?Or:Wr)(r,{shape:u},f,i)}function zx(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*i/2,y:n.y+o*i/2,width:n.width-a*i,height:n.height-o*i}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function OQ(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function rD(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function Wx(e,t,r,n,i,a,o,s){var l=t.getItemVisual(r,"style");if(s){if(!a.get("roundCap")){var f=e.shape,c=Dl(n.getModel("itemStyle"),f,!0);ue(f,c),e.setShape(f)}}else{var u=n.get(["itemStyle","borderRadius"])||0;e.setShape("r",u)}e.useStyle(l);var h=n.getShallow("cursor");h&&e.attr("cursor",h);var d=s?o?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":o?i.height>=0?"bottom":"top":i.width>=0?"right":"left",v=JP(n);E0(e,v,{labelFetcher:a,labelDataIndex:r,defaultText:pQ(a.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:d});var p=e.getTextContent();if(s&&p){var m=n.get(["label","position"]);e.textConfig.inside=m==="middle"?!0:null,AQ(e,m==="outside"?d:m,rD(o),n.get(["label","rotate"]))}wj(p,v,a.getRawValue(r),function(y){return gQ(t,y)});var g=n.getModel(["emphasis"]);CP(e,g.get("focus"),g.get("blurScope"),g.get("disabled")),TP(e,n),OQ(i)&&(e.style.fill="none",e.style.stroke="none",R(e.states,function(y){y.style&&(y.style.fill=y.style.stroke="none")}))}function RQ(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,i,a)}var kQ=function(){function e(){}return e}(),Gx=function(e){ge(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new kQ},t.prototype.buildPath=function(r,n){for(var i=n.points,a=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?r:null},30,!1);function NQ(e,t,r){for(var n=e.baseDimIdx,i=1-n,a=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,f=0,c=a.length/3;f=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[f]}return-1}function nD(e,t,r){if(tD(r,"cartesian2d")){var n=t,i=r.getArea();return{x:e?n.x:i.x,y:e?i.y:n.y,width:e?n.width:i.width,height:e?i.height:n.height}}else{var i=r.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function BQ(e,t,r){var n=e.type==="polar"?Eo:Gt;return new n({shape:nD(t,r,e),silent:!0,z2:0})}const FQ=EQ;function $Q(e){e.registerChartView(FQ),e.registerSeriesModel(CQ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,Rt(mZ,"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,yZ("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,SQ("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(i){t.sortInfo&&i.axis.setCategorySortInfo(t.sortInfo)})})}var _c=Math.PI*2,jx=Math.PI/180;function iD(e,t){return Is(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function aD(e,t){var r=iD(e,t),n=e.get("center"),i=e.get("radius");ye(i)||(i=[0,i]);var a=yt(r.width,t.getWidth()),o=yt(r.height,t.getHeight()),s=Math.min(a,o),l=yt(i[0],s/2),u=yt(i[1],s/2),f,c,h=e.coordinateSystem;if(h){var d=h.dataToPoint(n);f=d[0]||0,c=d[1]||0}else ye(n)||(n=[n,n]),f=yt(n[0],a)+r.x,c=yt(n[1],o)+r.y;return{cx:f,cy:c,r0:l,r:u}}function HQ(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=iD(n,r),s=aD(n,r),l=s.cx,u=s.cy,f=s.r,c=s.r0,h=-n.get("startAngle")*jx,d=n.get("minAngle")*jx,v=0;i.each(a,function(A){!isNaN(A)&&v++});var p=i.getSum(a),m=Math.PI/(p||v)*2,g=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),b=i.getDataExtent(a);b[0]=0;var x=_c,w=0,S=h,C=g?1:-1;if(i.setLayout({viewRect:o,r:f}),i.each(a,function(A,P){var E;if(isNaN(A)){i.setItemLayout(P,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:g,cx:l,cy:u,r0:c,r:y?NaN:f});return}y!=="area"?E=p===0&&_?m:A*m:E=_c/v,Er?g:m,x=Math.abs(_.label.y-r);if(x>=b.maxY){var w=_.label.x-t-_.len2*i,S=n+_.len,C=Math.abs(w)e.unconstrainedWidth?null:d:null;n.setStyle("width",v)}var p=n.getBoundingRect();a.width=p.width;var m=(n.style.margin||0)+2.1;a.height=p.height+m,a.y-=(a.height-c)/2}}}function Ap(e){return e.position==="center"}function GQ(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*VQ,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,f=s.x,c=s.y,h=s.height;function d(w){w.ignore=!0}function v(w){if(!w.ignore)return!0;for(var S in w.states)if(w.states[S].ignore===!1)return!0;return!1}t.each(function(w){var S=t.getItemGraphicEl(w),C=S.shape,M=S.getTextContent(),A=S.getTextGuideLine(),P=t.getItemModel(w),E=P.getModel("label"),L=E.get("position")||P.get(["emphasis","label","position"]),O=E.get("distanceToLabelLine"),N=E.get("alignTo"),H=yt(E.get("edgeDistance"),u),V=E.get("bleedMargin"),U=P.getModel("labelLine"),F=U.get("length");F=yt(F,u);var z=U.get("length2");if(z=yt(z,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":J>0?"left":"right"}var W=Math.PI,X=0,j=E.get("rotate");if(Tt(j))X=j*(W/180);else if(L==="center")X=0;else if(j==="radial"||j===!0){var le=J<0?-ee+W:-ee;X=le}else if(j==="tangential"&&L!=="outside"&&L!=="outer"){var fe=Math.atan2(J,me);fe<0&&(fe=W*2+fe);var ae=me>0;ae&&(fe=W+fe),X=fe-W}if(a=!!X,M.x=we,M.y=$e,M.rotation=X,M.setStyle({verticalAlign:"middle"}),Y){M.setStyle({align:B});var de=M.states.select;de&&(de.x+=M.x,de.y+=M.y)}else{var se=M.getBoundingRect().clone();se.applyTransform(M.getComputedTransform());var ne=(M.style.margin||0)+2.1;se.y-=ne/2,se.height+=ne,r.push({label:M,labelLine:A,position:L,len:F,len2:z,minTurnAngle:U.get("minTurnAngle"),maxSurfaceAngle:U.get("maxSurfaceAngle"),surfaceNormal:new Fe(J,me),linePoints:Ie,textAlign:B,labelDistance:O,labelAlignTo:N,edgeDistance:H,bleedMargin:V,rect:se,unconstrainedWidth:se.width,labelStyleWidth:M.style.width})}S.setTextConfig({inside:Y})}}),!a&&e.get("avoidLabelOverlap")&&WQ(r,n,i,l,u,h,f,c);for(var p=0;p0){for(var f=o.getItemLayout(0),c=1;isNaN(f&&f.startAngle)&&c=a.r0}},t.type="pie",t}(ho);const jQ=YQ;function qQ(e,t,r){t=ye(t)&&{coordDimensions:t}||ue({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=TL(n,t).dimensions,a=new CL(i,e);return a.initData(n,r),a}var KQ=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}();const XQ=KQ;var ZQ=Et(),QQ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new XQ(xt(this.getData,this),xt(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return qQ(this,{coordDimensions:["value"],encodeDefaulter:Rt(Xj,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=ZQ(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=R9(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){em(r,"labelLine",["show"]);var n=r.labelLine,i=r.emphasis.labelLine;n.show=n.show&&r.label.show,i.show=i.show&&r.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(So);const JQ=QQ;function eJ(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(Tt(o)&&!isNaN(o)&&o<0)})}}}function tJ(e){e.registerChartView(jQ),e.registerSeriesModel(JQ),kK("pie",e.registerAction),e.registerLayout(Rt(HQ,"pie")),e.registerProcessor(zQ("pie")),e.registerProcessor(eJ("pie"))}var rJ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(Mt);const nJ=rJ;var Om=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Tn).models[0]},t.type="cartesian2dAxis",t}(Mt);ni(Om,WZ);var sD={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},iJ=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},sD),a_=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},sD),aJ=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},a_),oJ=ht({logBase:10},a_);const sJ={category:iJ,value:a_,time:aJ,log:oJ};var lJ={value:1,category:1,time:1,log:1};function Kx(e,t,r,n){R(lJ,function(i,a){var o=st(st({},sJ[a],!0),n,!0),s=function(l){ge(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=t+"Axis."+a,f}return u.prototype.mergeDefaultAndTheme=function(f,c){var h=Nu(this),d=h?Rh(f):{},v=c.getTheme();st(f,v.get(a+"Axis")),st(f,this.getDefaultOption()),f.type=Xx(f),h&&Os(f,d,h)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=Lm.createByAxisModel(this))},u.prototype.getCategories=function(f){var c=this.option;if(c.type==="category")return f?c.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+a,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",Xx)}function Xx(e){return e.type||(e.data?"category":"value")}var uJ=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return Ne(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),jt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}();const fJ=uJ;var Rm=["x","y"];function Zx(e){return e.type==="interval"||e.type==="time"}var cJ=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="cartesian2d",r.dimensions=Rm,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!Zx(r)||!Zx(n))){var i=r.getExtent(),a=n.getExtent(),o=this.dataToPoint([i[0],a[0]]),s=this.dataToPoint([i[1],a[1]]),l=i[1]-i[0],u=a[1]-a[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,c=(s[1]-o[1])/u,h=o[0]-i[0]*f,d=o[1]-a[0]*c,v=this._transform=[f,0,0,c,h,d];this._invTransform=bh([],v)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),i=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&i.contain(i.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new nt(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,i){i=i||[];var a=r[0],o=r[1];if(this._transform&&a!=null&&isFinite(a)&&o!=null&&isFinite(o))return un(i,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return i[0]=s.toGlobalCoord(s.dataToCoord(a,n)),i[1]=l.toGlobalCoord(l.dataToCoord(o,n)),i},t.prototype.clampData=function(r,n){var i=this.getAxis("x").scale,a=this.getAxis("y").scale,o=i.getExtent(),s=a.getExtent(),l=i.parse(r[0]),u=a.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n){var i=[];if(this._invTransform)return un(i,r,this._invTransform);var a=this.getAxis("x"),o=this.getAxis("y");return i[0]=a.coordToData(a.toLocalCoord(r[0]),n),i[1]=o.coordToData(o.toLocalCoord(r[1]),n),i},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(){var r=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(r[0],r[1]),a=Math.min(n[0],n[1]),o=Math.max(r[0],r[1])-i,s=Math.max(n[0],n[1])-a;return new nt(i,a,o,s)},t}(fJ),dJ=function(e){ge(t,e);function t(r,n,i,a,o){var s=e.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(tQ);const hJ=dJ;function km(e,t,r){r=r||{};var n=e.coordinateSystem,i=t.axis,a={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,f=n.getRect(),c=[f.x,f.x+f.width,f.y,f.y+f.height],h={left:0,right:1,top:0,bottom:1,onZero:2},d=t.get("offset")||0,v=u==="x"?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));v[h.onZero]=Math.max(Math.min(p,v[1]),v[0])}a.position=[u==="y"?v[h[l]]:c[0],u==="x"?v[h[l]]:c[3]],a.rotation=Math.PI/2*(u==="x"?0:1);var m={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=m[s],a.labelOffset=o?v[h[s]]-v[h.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),Au(r.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var g=t.get(["axisLabel","rotate"]);return a.labelRotate=l==="top"?-g:g,a.z2=1,a}function Qx(e){return e.get("coordinateSystem")==="cartesian2d"}function Jx(e){var t={xAxisModel:null,yAxisModel:null};return R(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,Tn).models[0];t[n]=a}),t}var Pp=Math.log;function vJ(e,t,r){var n=df.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=$L(e,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(e.type==="log"){var h=Pp(e.base);u=[Pp(u[0])/h,Pp(u[1])/h]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:c});var d=n.getExtent.call(e);f&&(u[0]=d[0]),c&&(u[1]=d[1]);var v=n.getInterval.call(e),p=u[0],m=u[1];if(f&&c)v=(m-p)/o;else if(f)for(m=u[0]+v*o;mu[0]&&isFinite(p)&&isFinite(u[0]);)v=wp(v),p=u[1]-v*o;else{var g=e.getTicks().length-1;g>o&&(v=wp(v));var y=v*o;m=Math.ceil(u[1]/v)*v,p=$t(m-y),p<0&&u[0]>=0?(p=0,m=$t(y)):m>0&&u[1]<=0&&(m=0,p=-$t(y))}var _=(i[0].value-a[0].value)/s,b=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+v*_,m+v*b),n.setInterval.call(e,v),(_||b)&&n.setNiceExtent.call(e,p+v,m-v)}var pJ=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Rm,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=Ct(o),u=l.length;if(u){for(var f=[],c=u-1;c>=0;c--){var h=+l[c],d=o[h],v=d.model,p=d.scale;Dm(p)&&v.get("alignTicks")&&v.get("interval")==null?f.push(d):(Lx(p,v),Dm(p)&&(s=d))}f.length&&(s||(s=f.pop(),Lx(s.scale,s.model)),R(f,function(m){vJ(m.scale,m.model,s.scale)}))}}i(n.x),i(n.y);var a={};R(n.x,function(o){eC(n,"y",o,a)}),R(n.y,function(o){eC(n,"x",o,a)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var i=t.getBoxLayoutParams(),a=!n&&t.get("containLabel"),o=Is(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(R(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=HZ(u);if(f){var c=u.isHorizontal()?"height":"width",h=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+h,u.position==="top"?o.y+=f.height+h:u.position==="left"&&(o.x+=f.width+h)}}}),l()),R(this._coordsList,function(u){u.calcAffineTransform()});function l(){R(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],h=u.inverse?1:0;u.setExtent(c[h],c[1-h]),gJ(u,f?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Re(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):Ad(i-ea)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i0?"right":"left":a=n>0?"left":"right"),{rotation:i,textAlign:a,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),rC={axisLine:function(e,t,r,n){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var a=t.axis.getExtent(),o=n.transform,s=[a[0],0],l=[a[1],0],u=s[0]>l[0];o&&(un(s,s,o),un(l,l,o));var f=ue({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new wo({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});Iu(c.shape,c.style.lineWidth),c.anid="line",r.add(c);var h=t.get(["axisLine","symbol"]);if(h!=null){var d=t.get(["axisLine","symbolSize"]);Ee(h)&&(h=[h,h]),(Ee(d)||Tt(d))&&(d=[d,d]);var v=qK(t.get(["axisLine","symbolOffset"])||0,d),p=d[0],m=d[1];R([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(g,y){if(h[y]!=="none"&&h[y]!=null){var _=j0(h[y],-p/2,-m/2,p,m,f.stroke,!0),b=g.r+g.offset,x=u?l:s;_.attr({rotation:g.rotate,x:x[0]+b*Math.cos(e.rotation),y:x[1]-b*Math.sin(e.rotation),silent:!0,z2:11}),r.add(_)}})}}},axisTickLabel:function(e,t,r,n){var i=bJ(r,n,t,e),a=SJ(r,n,t,e);if(_J(t,a,i),wJ(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=ZL(Ne(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));eD(o)}},axisName:function(e,t,r,n){var i=Au(e.axisName,t.get("name"));if(i){var a=t.get("nameLocation"),o=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),f=u[0]>u[1]?-1:1,c=[a==="start"?u[0]-f*l:a==="end"?u[1]+f*l:(u[0]+u[1])/2,iC(a)?e.labelOffset+o*l:0],h,d=t.get("nameRotate");d!=null&&(d=d*ea/180);var v;iC(a)?h=vo.innerTextLayout(e.rotation,d??e.rotation,o):(h=yJ(e.rotation,a,d||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(h.rotation)),!isFinite(v)&&(v=null)));var p=s.getFont(),m=t.get("nameTruncate",!0)||{},g=m.ellipsis,y=Au(e.nameTruncateMaxWidth,m.maxWidth,v),_=new mr({x:c[0],y:c[1],rotation:h.rotation,silent:vo.isLabelSilent(t),style:ha(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:g,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||h.textAlign,verticalAlign:s.get("verticalAlign")||h.textVerticalAlign}),z2:1});if(A0({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var b=vo.makeAxisEventDataBase(t);b.targetType="axisName",b.name=i,dt(_).eventData=b}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function yJ(e,t,r,n){var i=j2(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return Ad(i-ea/2)?(o=l?"bottom":"top",a="center"):Ad(i-ea*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iea/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function _J(e,t,r){if(!HL(e.axis)){var n=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],r=r||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=r[0],f=r[1],c=r[r.length-1],h=r[r.length-2];n===!1?(Kr(a),Kr(u)):nC(a,o)&&(n?(Kr(o),Kr(f)):(Kr(a),Kr(u))),i===!1?(Kr(s),Kr(c)):nC(l,s)&&(i?(Kr(l),Kr(h)):(Kr(s),Kr(c)))}}function Kr(e){e&&(e.ignore=!0)}function nC(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=a0([]);return o0(i,i,-e.rotation),r.applyTransform(fs([],i,e.getLocalTransform())),n.applyTransform(fs([],i,t.getLocalTransform())),r.intersect(n)}}function iC(e){return e==="middle"||e==="center"}function lD(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function PJ(e){var t=o_(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=Nm(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o=s)}}for(var c=this.__startIndex;c15)break}}O.prevElClipPaths&&g.restore()};if(y)if(y.length===0)C=m.__endIndex;else for(var A=d.dpr,P=0;P0&&t>i[0]){for(l=0;lt);l++);s=n[i[l]]}if(i.splice(l+1,0,t),n[t]=r,!r.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.__painter=this}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,i=0;i0?bc:0),this._needsManuallyCompositing),f.__builtin__||r0("ZLevel "+u+" has been used by unkown layer "+f.id),f!==a&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,r(l),a=f),i.__dirty&Br&&!i.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(c,h){!c.__used&&c.getElementCount()>0&&(c.__dirty=!0,c.__startIndex=c.__endIndex=c.__drawIndex=0),c.__dirty&&c.__drawIndex<0&&(c.__drawIndex=c.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,R(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?st(n[t],r,!0):n[t]=r;for(var i=0;is)return!0;if(o){var l=o_(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,i,a){},e.prototype.createPointerEl=function(t,r,n,i){var a=r.pointer;if(a){var o=Ka(t).pointerEl=new mj[a.type](uC(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=Ka(t).labelEl=new mr(uC(r.label));t.add(a),cC(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=Ka(t).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,i){var a=Ka(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),cC(a,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=r.getModel("handle"),o=r.get("status");if(!a.get("show")||!o||o==="hide"){i&&n.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=M0(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){C2(u.event)},onmousedown:Ip(this._onHandleDragMove,this,0,0),drift:Ip(this._onHandleDragMove,this),ondragend:Ip(this._onHandleDragEnd,this)}),n.add(i)),dC(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");ye(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,VE(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){fC(this._axisPointerModel,!r&&this._moveAnimation,this._handle,Op(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(Op(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(Op(i)),Ka(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,i=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),i&&r.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),wm(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function fC(e,t,r,n){hD(Ka(r).lastProp,n)||(Ka(r).lastProp=n,t?Or(r,n,e):(r.stopAnimation(),r.attr(n)))}function hD(e,t){if(Re(e)&&Re(t)){var r=!0;return R(t,function(n,i){r=r&&hD(e[i],n)}),!!r}else return e===t}function cC(e,t){e[t.get(["label","show"])?"show":"hide"]()}function Op(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function dC(e,t,r){var n=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}const YJ=UJ;function jJ(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function qJ(e,t,r,n,i){var a=r.get("value"),o=vD(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=Oh(s.get("padding")||0),u=s.getFont(),f=u0(o,u),c=i.position,h=f.width+l[1]+l[3],d=f.height+l[0]+l[2],v=i.align;v==="right"&&(c[0]-=h),v==="center"&&(c[0]-=h/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=d),p==="middle"&&(c[1]-=d/2),KJ(c,h,d,n);var m=s.get("backgroundColor");(!m||m==="auto")&&(m=t.get(["axisLine","lineStyle","color"])),e.label={x:c[0],y:c[1],style:ha(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:m}),z2:10}}function KJ(e,t,r,n){var i=n.getWidth(),a=n.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+r,a)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function vD(e,t,r,n,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:n_(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};R(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,c=u&&u.getDataParams(f);c&&s.seriesData.push(c)}),Ee(o)?a=o.replace("{value}",a):Ye(o)&&(a=o(s))}return a}function pD(e,t,r){var n=Pu();return o0(n,n,r.rotation),Vg(n,n,r.position),T0([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function XJ(e,t,r,n,i,a){var o=uD.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),qJ(t,n,i,a,{position:pD(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function ZJ(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function QJ(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var JJ=function(e){ge(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),f=hC(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var h=jJ(a),d=eee[u](s,c,f);d.style=h,r.graphicKey=d.type,r.pointer=d}var v=km(l.model,i);XJ(n,r,v,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=km(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=pD(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=hC(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,c=[r.x,r.y];c[f]+=n[f],c[f]=Math.min(l[1],c[f]),c[f]=Math.max(l[0],c[f]);var h=(u[1]+u[0])/2,d=[h,h];d[f]=c[f];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:d,tooltipOption:v[f]}},t}(YJ);function hC(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var eee={line:function(e,t,r){var n=ZJ([t,r[0]],[t,r[1]],vC(e));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),i=r[1]-r[0];return{type:"Rect",shape:QJ([t-n/2,r[0]],[n,i],vC(e))}}};function vC(e){return e.dim==="x"?0:1}const tee=JJ;var ree=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(Mt);const nee=ree;var gi=Et(),iee=R;function gD(e,t,r){if(!He.node){var n=t.getZr();gi(n).records||(gi(n).records={}),aee(n,t);var i=gi(n).records[e]||(gi(n).records[e]={});i.handler=r}}function aee(e,t){if(gi(e).initialized)return;gi(e).initialized=!0,r("click",Rt(pC,"click")),r("mousemove",Rt(pC,"mousemove")),r("globalout",see);function r(n,i){e.on(n,function(a){var o=lee(t);iee(gi(e).records,function(s){s&&i(s,a,o.dispatchAction)}),oee(o.pendings,t)})}}function oee(e,t){var r=e.showTip.length,n=e.hideTip.length,i;r?i=e.showTip[r-1]:n&&(i=e.hideTip[n-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function see(e,t,r){e.handler("leave",null,r)}function pC(e,t,r,n){t.handler(e,r,n)}function lee(e){var t={showTip:[],hideTip:[]},r=function(n){var i=t[n.type];i?i.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function Fm(e,t){if(!He.node){var r=t.getZr(),n=(gi(r).records||{})[e];n&&(gi(r).records[e]=null)}}var uee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click";gD("axisPointer",i,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){Fm("axisPointer",n)},t.prototype.dispose=function(r,n){Fm("axisPointer",n)},t.type="axisPointer",t}(Mi);const fee=uee;function mD(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=sf(a,e);if(o==null||o<0||ye(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),c=f.dim,h=u.dim,d=c==="x"||c==="radius"?1:0,v=a.mapDimension(h),p=[];p[d]=a.get(v,o),p[1-d]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(Ne(l.dimensions,function(g){return a.mapDimension(g)}),o))||[];else if(s){var m=s.getBoundingRect().clone();m.applyTransform(s.transform),r=[m.x+m.width/2,m.y+m.height/2]}return{point:r,el:s}}var gC=Et();function cee(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||xt(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Zc(i)&&(i=mD({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Zc(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Zc(i),h={},d={},v={list:[],map:{}},p={showPointer:Rt(hee,d),showTooltip:Rt(vee,v)};R(s.coordSysMap,function(g,y){var _=l||g.containPoint(i);R(s.coordSysAxesInfo[y],function(b,x){var w=b.axis,S=yee(u,b);if(!c&&_&&(!u||S)){var C=S&&S.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&mC(b,C,p,!1,h)}})});var m={};return R(f,function(g,y){var _=g.linkGroup;_&&!d[y]&&R(_.axesInfo,function(b,x){var w=d[x];if(b!==g&&w){var S=w.value;_.mapper&&(S=g.axis.scale.parse(_.mapper(S,yC(b),yC(g)))),m[g.key]=S}})}),R(m,function(g,y){mC(f[y],g,p,!0,h)}),pee(d,f,h),gee(v,i,e,o),mee(f,o,r),h}}function mC(e,t,r,n,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=dee(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&ue(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function dee(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return R(t.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,h;if(l.getAxisTooltipData){var d=l.getAxisTooltipData(f,e,r);h=d.dataIndices,c=d.nestestValue}else{if(h=l.getData().indicesOfNearest(f[0],e,r.type==="category"?.5:null),!h.length)return;c=l.getData().get(f[0],h[0])}if(!(c==null||!isFinite(c))){var v=e-c,p=Math.abs(v);p<=o&&((p=0&&s<0)&&(o=p,s=v,i=c,a.length=0),R(h,function(m){a.push({seriesIndex:l.seriesIndex,dataIndexInside:m,dataIndex:l.getData().getRawIndex(m)})}))}}),{payloadBatch:a,snapToValue:i}}function hee(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function vee(e,t,r,n){var i=r.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Vu(l),f=e.map[u];f||(f=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(f)),f.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function pee(e,t,r){var n=r.axesInfo=[];R(t,function(i,a){var o=i.axisPointerModel.option,s=e[a];s?(!i.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:o.value})})}function gee(e,t,r,n){if(Zc(t)||!e.list.length){n({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function mee(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=gC(n)[i]||{},o=gC(n)[i]={};R(e,function(u,f){var c=u.axisPointerModel.option;c.status==="show"&&u.triggerEmphasis&&R(c.seriesDataIndices,function(h){var d=h.seriesIndex+" | "+h.dataIndex;o[d]=h})});var s=[],l=[];R(a,function(u,f){!o[f]&&l.push(u)}),R(o,function(u,f){!a[f]&&s.push(u)}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function yee(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function yC(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Zc(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function yD(e){fD.registerAxisPointerClass("CartesianAxisPointer",tee),e.registerComponentModel(nee),e.registerComponentView(fee),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ye(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=xJ(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},cee)}function _ee(e){va(BJ),va(yD)}function bee(e,t){var r=Oh(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new Gt({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1}),e}var wee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(Mt);const See=wee;function _D(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function bD(e){if(He.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=a==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=a==="top"?225:45)+"deg)");var f=u*Math.PI/180,c=o+i,h=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),d=Math.round(((h-Math.SQRT2*i)/2+Math.SQRT2*i-(h-c)/2)*100)/100;s+=";"+a+":-"+d+"px";var v=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+n+";"];return'
'}function Eee(e,t){var r="cubic-bezier(0.23,1,0.32,1)",n=" "+e/2+"s "+r,i="opacity"+n+",visibility"+n;return t||(n=" "+e+"s "+r,i+=He.transformSupported?","+s_+n:",left"+n+",top"+n),Tee+":"+i}function _C(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!He.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=He.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+s_+":"+o+";":[["top",0],["left",0],[wD,o]]}function Lee(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont()),r&&t.push("line-height:"+Math.round(r*3/2)+"px");var i=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,o=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&a&&t.push("text-shadow:"+o+"px "+s+"px "+a+"px "+i),R(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function Dee(e,t,r){var n=[],i=e.get("transitionDuration"),a=e.get("backgroundColor"),o=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),f=e.getModel("textStyle"),c=$E(e,"html"),h=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+h),t&&i&&n.push(Eee(i,r)),a&&n.push("background-color:"+a),R(["width","color","radius"],function(d){var v="border-"+d,p=vE(v),m=e.get(p);m!=null&&n.push(v+":"+m+(d==="color"?"":"px"))}),n.push(Lee(f)),c!=null&&n.push("padding:"+Oh(c).join("px ")+"px"),n.join(";")+";"}function bC(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&TU(e,o,document.body,n,i)}else{e[0]=n,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Iee=function(){function e(t,r,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,He.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var a=this._zr=r.getZr(),o=this._appendToBody=n&&n.appendToBody;bC(this._styleCoord,a,o,r.getWidth()/2,r.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,f=a.painter.getViewportRoot();Qr(f,l,!0),u.dispatch("mousemove",l)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){var r=this._container,n=Cee(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative");var a=t.get("alwaysShowContent");a&&this._moveIfResized(),this._alwaysShowContent=a,this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=Mee+Dee(t,!this._firstShow,this._longHide)+_C(a[0],a[1],!0)+("border-color:"+ku(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,i,a){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(Ee(a)&&n.get("trigger")==="item"&&!_D(n)&&(s=Pee(n,i,a)),Ee(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ye(t)||(t=[t]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&a!=="none"&&a!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&o.manuallyShowTip(r,n,i,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||He.node||!i.getDom())){var o=xC(a,i);this._ticket="";var s=a.dataByCoordSys,l=Hee(a,n,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:a.position,positionDefault:"bottom"},o)}else if(a.tooltip&&a.x!=null&&a.y!=null){var f=kee;f.x=a.x,f.y=a.y,f.update(),dt(f).tooltipConfig={name:null,option:a.tooltip},this._tryShow({offsetX:a.x,offsetY:a.y,target:f},o)}else if(s)this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,dataByCoordSys:s,tooltipOption:a.tooltipOption},o);else if(a.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,i,a))return;var c=mD(a,n),h=c.point[0],d=c.point[1];h!=null&&d!=null&&this._tryShow({offsetX:h,offsetY:d,target:c.el,position:a.position,positionDefault:"bottom"},o)}else a.x!=null&&a.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:a.x,y:a.y}),this._tryShow({offsetX:a.x,offsetY:a.y,position:a.position,target:i.getZr().findHover(a.x,a.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,i,a){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,a.from!==this.uid&&this._hide(xC(a,i))},t.prototype._manuallyAxisShowTip=function(r,n,i,a){var o=a.seriesIndex,s=a.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var f=u.getData(),c=bl([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(c.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:a.position}),!0}}},t.prototype._tryShow=function(r,n){var i=r.target,a=this._tooltipModel;if(a){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(i){this._lastDataByCoordSys=null;var s,l;Ll(i,function(u){if(dt(u).dataIndex!=null)return s=u,!0;if(dt(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(r,s,n):l?this._showComponentItemTooltip(r,l,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=xt(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},t.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=bl([n.tooltipOption],a),l=this._renderMode,u=[],f=Fu("section",{blocks:[],noHeader:!0}),c=[],h=new up;R(r,function(y){R(y.dataByAxis,function(_){var b=i.getComponent(_.axisDim+"Axis",_.axisIndex),x=_.value;if(!(!b||x==null)){var w=vD(x,b.axis,i,_.seriesDataIndices,_.valueLabelOpt),S=Fu("section",{header:w,noHeader:!Gn(w),sortBlocks:!0,blocks:[]});f.blocks.push(S),R(_.seriesDataIndices,function(C){var M=i.getSeriesByIndex(C.seriesIndex),A=C.dataIndexInside,P=M.getDataParams(A);if(!(P.dataIndex<0)){P.axisDim=_.axisDim,P.axisIndex=_.axisIndex,P.axisType=_.axisType,P.axisId=_.axisId,P.axisValue=n_(b.axis,{value:x}),P.axisValueLabel=w,P.marker=h.makeTooltipMarker("item",ku(P.color),l);var E=FS(M.formatTooltip(A,!0,null)),L=E.frag;if(L){var O=bl([M],a).get("valueFormatter");S.blocks.push(O?ue({valueFormatter:O},L):L)}E.text&&c.push(E.text),u.push(P)}})}})}),f.blocks.reverse(),c.reverse();var d=n.position,v=s.get("order"),p=WS(f,h,l,v,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var m=l==="richText"?` - -`:"
",g=c.join(m);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,d,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,g,u,Math.random()+"",o[0],o[1],d,null,h)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=dt(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,h=u.getData(c),d=this._renderMode,v=r.positionDefault,p=bl([h.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),m=p.get("trigger");if(!(m!=null&&m!=="item")){var g=u.getDataParams(f,c),y=new up;g.marker=y.makeTooltipMarker("item",ku(g.color),d);var _=FS(u.formatTooltip(f,!1,c)),b=p.get("order"),x=p.get("valueFormatter"),w=_.frag,S=w?WS(x?ue({valueFormatter:x},w):w,y,d,b,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,S,g,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:h.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=dt(n),o=a.tooltipConfig,s=o.option||{};if(Ee(s)){var l=s;s={content:l,formatter:l}}var u=[s],f=this._ecModel.getComponent(a.componentMainType,a.componentIndex);f&&u.push(f),u.push({formatter:s.content});var c=r.positionDefault,h=bl(u,this._tooltipModel,c?{position:c}:null),d=h.get("content"),v=Math.random()+"",p=new up;this._showOrMove(h,function(){var m=tt(h.get("formatterParams")||{});this._showTooltipContent(h,d,m,v,r.offsetX,r.offsetY,r.position,n,p)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,i,a,o,s,l,u,f){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var c=this._tooltipContent;c.setEnterable(r.get("enterable"));var h=r.get("formatter");l=l||r.get("position");var d=n,v=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=v.color;if(h)if(Ee(h)){var m=r.ecModel.get("useUTC"),g=ye(i)?i[0]:i,y=g&&g.axisType&&g.axisType.indexOf("time")>=0;d=h,y&&(d=Ph(g.axisValue,d,m)),d=pE(d,i,!0)}else if(Ye(h)){var _=xt(function(b,x){b===this._ticket&&(c.setContent(x,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,d=h(i,a,_)}else d=h;c.setContent(d,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(r,n,i,a){if(i==="axis"||ye(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!ye(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||r.get("position");var c=o.getSize(),h=r.get("align"),d=r.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Ye(n)&&(n=n([i,a],s,o.el,v,{viewSize:[u,f],contentSize:c.slice()})),ye(n))i=yt(n[0],u),a=yt(n[1],f);else if(Re(n)){var p=n;p.width=c[0],p.height=c[1];var m=Is(p,{width:u,height:f});i=m.x,a=m.y,h=null,d=null}else if(Ee(n)&&l){var g=$ee(n,v,c,r.get("borderWidth"));i=g[0],a=g[1]}else{var g=Bee(i,a,o,u,f,h?null:20,d?null:20);i=g[0],a=g[1]}if(h&&(i-=CC(h)?c[0]/2:h==="right"?c[0]:0),d&&(a-=CC(d)?c[1]/2:d==="bottom"?c[1]:0),_D(r)){var g=Fee(i,a,o,u,f);i=g[0],a=g[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===r.length;return o&&R(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&R(u,function(h,d){var v=c[d]||{},p=h.seriesDataIndices||[],m=v.seriesDataIndices||[];o=o&&h.value===v.value&&h.axisType===v.axisType&&h.axisId===v.axisId&&p.length===m.length,o&&R(p,function(g,y){var _=m[y];o=o&&g.seriesIndex===_.seriesIndex&&g.dataIndex===_.dataIndex}),a&&R(h.seriesDataIndices,function(g){var y=g.seriesIndex,_=n[y],b=a[y];_&&b&&b.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){He.node||!n.getDom()||(wm(this,"_updatePosition"),this._tooltipContent.dispose(),Fm("itemTooltip",n))},t.type="tooltip",t}(Mi);function bl(e,t,r){var n=t.ecModel,i;r?(i=new sr(r,n,n),i=new sr(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof sr&&(o=o.get("tooltip",!0)),Ee(o)&&(o={formatter:o}),o&&(i=new sr(o,i,n)))}return i}function xC(e,t){return e.dispatchAction||xt(t.dispatchAction,t)}function Bee(e,t,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(e+l+a+2>n?e-=l+a:e+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[e,t]}function Fee(e,t,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function $ee(e,t,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function CC(e){return e==="center"||e==="middle"}function Hee(e,t,r){var n=v0(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=lf(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=dt(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const zee=Nee;function Vee(e){va(yD),e.registerComponentModel(See),e.registerComponentView(zee),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Er),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Er)}var Wee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(Mt),Gee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,i){if(this.group.removeAll(),!!r.get("show")){var a=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=Ze(r.get("textBaseline"),r.get("textVerticalAlign")),f=new mr({style:ha(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),h=r.get("subtext"),d=new mr({style:ha(s,{text:h,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),v=r.get("link"),p=r.get("sublink"),m=r.get("triggerEvent",!0);f.silent=!v&&!m,d.silent=!p&&!m,v&&f.on("click",function(){bS(v,"_"+r.get("target"))}),p&&d.on("click",function(){bS(p,"_"+r.get("subtarget"))}),dt(f).eventData=dt(d).eventData=m?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),h&&a.add(d);var g=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=g.width,y.height=g.height;var _=Is(y,{width:i.getWidth(),height:i.getHeight()},r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),d.setStyle(b),g=a.getBoundingRect();var x=_.margin,w=r.getItemStyle(["color","opacity"]);w.fill=r.get("backgroundColor");var S=new Gt({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:r.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});a.add(S)}},t.type="title",t}(Mi);function Uee(e){e.registerComponentModel(Wee),e.registerComponentView(Gee)}var Yee=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},jee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.prototype.init=function(r,n,i){this.mergeDefaultAndTheme(r,i),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,i=this.ecModel;n===!0&&(n=r.selector=["all","inverse"]),ye(n)&&R(n,function(a,o){Ee(a)&&(a={type:a}),n[o]=st(a,Yee(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(Mt);const $m=jee;var Ko=Rt,Hm=R,wc=Ur,qee=function(e){ge(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new wc),this.group.add(this._selectorGroup=new wc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,i,l,s,u);var f=r.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},h=r.get("padding"),d=Is(f,c,h),v=this.layoutInner(r,o,d,a,l,u),p=Is(ht({width:v.width,height:v.height},f),c,h);this.group.x=p.x-v.x,this.group.y=p.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=bee(v,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=je(),c=n.get("selectedMode"),h=[];i.eachRawSeries(function(d){!d.get("legendHoverLink")&&h.push(d.id)}),Hm(n.getData(),function(d,v){var p=d.get("name");if(!this.newlineDisabled&&(p===""||p===` -`)){var m=new wc;m.newline=!0,u.add(m);return}var g=i.getSeriesByName(p)[0];if(!f.get(p))if(g){var y=g.getData(),_=y.getVisual("legendLineStyle")||{},b=y.getVisual("legendIcon"),x=y.getVisual("style"),w=this._createItem(g,p,v,d,n,r,_,x,b,c,a);w.on("click",Ko(TC,p,null,a,h)).on("mouseover",Ko(zm,g.name,null,a,h)).on("mouseout",Ko(Vm,g.name,null,a,h)),f.set(p,!0)}else i.eachRawSeries(function(S){if(!f.get(p)&&S.legendVisualProvider){var C=S.legendVisualProvider;if(!C.containName(p))return;var M=C.indexOfName(p),A=C.getItemVisual(M,"style"),P=C.getItemVisual(M,"legendIcon"),E=uo(A.fill);E&&E[3]===0&&(E[3]=.2,A=ue(ue({},A),{fill:s0(E,"rgba")}));var L=this._createItem(S,p,v,d,n,r,{},A,P,c,a);L.on("click",Ko(TC,null,p,a,h)).on("mouseover",Ko(zm,null,p,a,h)).on("mouseout",Ko(Vm,null,p,a,h)),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();Hm(r,function(u){var f=u.type,c=new mr({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var h=n.getModel("selectorLabel"),d=n.getModel(["emphasis","selectorLabel"]);E0(c,{normal:h,emphasis:d},{defaultText:u.title}),um(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,h){var d=r.visualDrawType,v=o.get("itemWidth"),p=o.get("itemHeight"),m=o.isSelected(n),g=a.get("symbolRotate"),y=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var b=Kee(f,a,l,u,d,m,h),x=new wc,w=a.getModel("textStyle");if(Ye(r.getLegendIcon)&&(!_||_==="inherit"))x.add(r.getLegendIcon({itemWidth:v,itemHeight:p,icon:f,iconRotate:g,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));else{var S=_==="inherit"&&r.getData().getVisual("symbol")?g==="inherit"?r.getData().getVisual("symbolRotate"):g:0;x.add(Xee({itemWidth:v,itemHeight:p,icon:f,iconRotate:S,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}var C=s==="left"?v+5:-5,M=s,A=o.get("formatter"),P=n;Ee(A)&&A?P=A.replace("{name}",n??""):Ye(A)&&(P=A(n));var E=m?w.getTextColor():a.get("inactiveColor");x.add(new mr({style:ha(w,{text:P,x:C,y:p/2,fill:E,align:M,verticalAlign:"middle"},{inheritColor:E})}));var L=new Gt({shape:x.getBoundingRect(),invisible:!0}),O=a.getModel("tooltip");return O.get("show")&&A0({el:L,componentModel:o,itemName:n,itemTooltipOption:O.option}),x.add(L),x.eachChild(function(N){N.silent=!0}),L.silent=!c,this.getContentGroup().add(x),um(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();ru(r.get("orient"),l,r.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){ru("horizontal",u,r.get("selectorItemGap",!0));var h=u.getBoundingRect(),d=[-h.x,-h.y],v=r.get("selectorButtonGap",!0),p=r.getOrient().index,m=p===0?"width":"height",g=p===0?"height":"width",y=p===0?"y":"x";s==="end"?d[p]+=f[m]+v:c[p]+=h[m]+v,d[1-p]+=f[g]/2-h[g]/2,u.x=d[0],u.y=d[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[m]=f[m]+v+h[m],_[g]=Math.max(f[g],h[g]),_[y]=Math.min(0,h[y]+d[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(Mi);function Kee(e,t,r,n,i,a,o){function s(m,g){m.lineWidth==="auto"&&(m.lineWidth=g.lineWidth>0?2:0),Hm(m,function(y,_){m[_]==="inherit"&&(m[_]=g[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=e.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:Mm(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:r).opacity),s(u,n);var h=t.getModel("lineStyle"),d=h.getLineStyle();if(s(d,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),d.stroke==="auto"&&(d.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=v==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),d.stroke=h.get("inactiveColor"),d.lineWidth=h.get("inactiveWidth")}return{itemStyle:u,lineStyle:d}}function Xee(e){var t=e.icon||"roundRect",r=j0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill="#fff",r.style.lineWidth=2),r}function TC(e,t,r,n){Vm(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),zm(e,t,r,n)}function xD(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,i=t.length;ni[o],m=[-d.x,-d.y];n||(m[a]=f[u]);var g=[0,0],y=[-v.x,-v.y],_=Ze(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var b=r.get("pageButtonPosition",!0);b==="end"?y[a]+=i[o]-v[o]:g[a]+=v[o]+_}y[1-a]+=d[s]/2-v[s]/2,f.setPosition(m),c.setPosition(g),h.setPosition(y);var x={x:0,y:0};if(x[o]=p?i[o]:d[o],x[s]=Math.max(d[s],v[s]),x[l]=Math.min(0,v[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-v[o]-_,0),w[s]=x[s],c.setClipPath(new Gt({shape:w})),c.__rectSize=w[o]}else h.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(r);return S.pageIndex!=null&&Or(f,{x:S.contentPosition[0],y:S.contentPosition[1]},p?r:null),this._updatePageInfoView(r,S),x},t.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",h=n[c]!=null,d=i.childOfName(f);d&&(d.setStyle("fill",h?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),d.cursor=h?"pointer":"default")});var a=i.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",Ee(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=Rp[o],l=kp[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],h=f.length,d=h?1:0,v={contentPosition:[i.x,i.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return v;var p=b(c);v.contentPosition[o]=-p.s;for(var m=u+1,g=p,y=p,_=null;m<=h;++m)_=b(f[m]),(!_&&y.e>g.s+a||_&&!x(_,g.s))&&(y.i>g.i?g=y:g=_,g&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=g.i),++v.pageCount)),y=_;for(var m=u-1,g=p,y=p,_=null;m>=-1;--m)_=b(f[m]),(!_||!x(y,_.s))&&g.i=S&&w.s<=S+a}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===r&&(n=s)}),n??a},t.type="legend.scroll",t}(CD);const rte=tte;function nte(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function ite(e){va(TD),e.registerComponentModel(ete),e.registerComponentView(rte),nte(e)}function ate(e){va(TD),va(ite)}va([tJ,$Q,GJ,vQ,Uee,Vee,ate,_ee]);function ote(e,t,r){const n=Z0(document.getElementById(e),"macarons");n.showLoading();const i={title:{text:"Network Traffic",subtext:"today",left:"center"},tooltip:{trigger:"item",formatter:function(a){return Mu.fileSize(a.data.value)+" ("+a.percent+"%)"}},legend:{orient:"vertical",left:"left",data:["Traffic In","Traffic Out"]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[{value:t,name:"Traffic In"},{value:r,name:"Traffic Out"}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};n.setOption(i),n.hideLoading()}function ste(e,t){const r=Z0(document.getElementById(e),"macarons");r.showLoading();const n={title:{text:"Proxies",subtext:"now",left:"center"},tooltip:{trigger:"item",formatter:function(i){return String(i.data.value)}},legend:{orient:"vertical",left:"left",data:[]},series:[{type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};t.proxyTypeCount.tcp!=null&&t.proxyTypeCount.tcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.tcp,name:"TCP"}),n.legend.data.push("TCP")),t.proxyTypeCount.udp!=null&&t.proxyTypeCount.udp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.udp,name:"UDP"}),n.legend.data.push("UDP")),t.proxyTypeCount.http!=null&&t.proxyTypeCount.http!=0&&(n.series[0].data.push({value:t.proxyTypeCount.http,name:"HTTP"}),n.legend.data.push("HTTP")),t.proxyTypeCount.https!=null&&t.proxyTypeCount.https!=0&&(n.series[0].data.push({value:t.proxyTypeCount.https,name:"HTTPS"}),n.legend.data.push("HTTPS")),t.proxyTypeCount.stcp!=null&&t.proxyTypeCount.stcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.stcp,name:"STCP"}),n.legend.data.push("STCP")),t.proxyTypeCount.sudp!=null&&t.proxyTypeCount.sudp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.sudp,name:"SUDP"}),n.legend.data.push("SUDP")),t.proxyTypeCount.xtcp!=null&&t.proxyTypeCount.xtcp!=0&&(n.series[0].data.push({value:t.proxyTypeCount.xtcp,name:"XTCP"}),n.legend.data.push("XTCP")),r.setOption(n),r.hideLoading()}function lte(e,t,r){const n={width:"600px",height:"400px"},i=Z0(document.getElementById(e),"macarons",n);i.showLoading(),t=t.reverse(),r=r.reverse();let a=new Date;a=new Date(a.getFullYear(),a.getMonth(),a.getDate()-6);const o=[];for(let l=0;l<7;l++)o.push(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()),a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);const s={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(l){let u="";l.length>0&&(u+=l[0].name+"
");for(const f of l){const c='';u+=c+f.seriesName+": "+Mu.fileSize(f.value)+"
"}return u}},legend:{data:["Traffic In","Traffic Out"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:o}],yAxis:[{type:"value",axisLabel:{formatter:function(l){return Mu.fileSize(l)}}}],series:[{name:"Traffic In",type:"bar",data:t},{name:"Traffic Out",type:"bar",data:r}]};i.setOption(s),i.hideLoading()}const PC=ie({__name:"LongSpan",props:{content:{},length:{}},setup(e){return(t,r)=>{const n=Vs;return G(),ce(ft,null,[Z(n,{content:t.content,placement:"top"},{default:q(()=>[qt(te("span",null,xe(t.content.slice(0,t.length))+"...",513),[[Kn,t.content.length>t.length]])]),_:1},8,["content"]),qt(te("span",null,xe(t.content),513),[[Kn,t.content.length<30]])],64)}}}),ute={class:"source"},fte=te("div",{id:"traffic",style:{width:"400px",height:"250px","margin-bottom":"30px"}},null,-1),cte=te("div",{id:"proxies",style:{width:"400px",height:"250px"}},null,-1),dte=ie({__name:"ServerOverview",setup(e){let t=$({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0});return(()=>{fetch("../api/serverinfo",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value.version=n.version,t.value.bindPort=n.bindPort,t.value.kcpBindPort=n.kcpBindPort,t.value.quicBindPort=n.quicBindPort,t.value.vhostHTTPPort=n.vhostHTTPPort,t.value.vhostHTTPSPort=n.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=n.tcpmuxHTTPConnectPort,t.value.subdomainHost=n.subdomainHost,t.value.maxPoolCount=n.maxPoolCount,t.value.maxPortsPerClient=n.maxPortsPerClient,t.value.maxPortsPerClient=="0"&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=n.allowPortsStr,t.value.tlsForce=n.tlsForce,t.value.heartbeatTimeout=n.heartbeatTimeout,t.value.clientCounts=n.clientCounts,t.value.curConns=n.curConns,t.value.proxyCounts=0,n.proxyTypeCount!=null&&(n.proxyTypeCount.tcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.tcp),n.proxyTypeCount.udp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.udp),n.proxyTypeCount.http!=null&&(t.value.proxyCounts+=n.proxyTypeCount.http),n.proxyTypeCount.https!=null&&(t.value.proxyCounts+=n.proxyTypeCount.https),n.proxyTypeCount.stcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.stcp),n.proxyTypeCount.sudp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.sudp),n.proxyTypeCount.xtcp!=null&&(t.value.proxyCounts+=n.proxyTypeCount.xtcp)),ote("traffic",n.totalTrafficIn,n.totalTrafficOut),ste("proxies",n)}).catch(()=>{Wl({showClose:!0,message:"Get server info from frps failed!",type:"warning"})})})(),(n,i)=>{const a=sA,o=oA,s=$A,l=FA;return G(),ce("div",null,[Z(l,null,{default:q(()=>[Z(s,{md:12},{default:q(()=>[te("div",ute,[Z(o,{"label-position":"left","label-width":"220px",class:"server_info"},{default:q(()=>[Z(a,{label:"Version"},{default:q(()=>[te("span",null,xe(T(t).version),1)]),_:1}),Z(a,{label:"BindPort"},{default:q(()=>[te("span",null,xe(T(t).bindPort),1)]),_:1}),T(t).kcpBindPort!=0?(G(),ve(a,{key:0,label:"KCP Bind Port"},{default:q(()=>[te("span",null,xe(T(t).kcpBindPort),1)]),_:1})):Ae("",!0),T(t).quicBindPort!=0?(G(),ve(a,{key:1,label:"QUIC Bind Port"},{default:q(()=>[te("span",null,xe(T(t).quicBindPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPPort!=0?(G(),ve(a,{key:2,label:"HTTP Port"},{default:q(()=>[te("span",null,xe(T(t).vhostHTTPPort),1)]),_:1})):Ae("",!0),T(t).vhostHTTPSPort!=0?(G(),ve(a,{key:3,label:"HTTPS Port"},{default:q(()=>[te("span",null,xe(T(t).vhostHTTPSPort),1)]),_:1})):Ae("",!0),T(t).tcpmuxHTTPConnectPort!=0?(G(),ve(a,{key:4,label:"TCPMux HTTPConnect Port"},{default:q(()=>[te("span",null,xe(T(t).tcpmuxHTTPConnectPort),1)]),_:1})):Ae("",!0),T(t).subdomainHost!=""?(G(),ve(a,{key:5,label:"Subdomain Host"},{default:q(()=>[Z(PC,{content:T(t).subdomainHost,length:30},null,8,["content"])]),_:1})):Ae("",!0),Z(a,{label:"Max PoolCount"},{default:q(()=>[te("span",null,xe(T(t).maxPoolCount),1)]),_:1}),Z(a,{label:"Max Ports Per Client"},{default:q(()=>[te("span",null,xe(T(t).maxPortsPerClient),1)]),_:1}),T(t).allowPortsStr!=""?(G(),ve(a,{key:6,label:"Allow Ports"},{default:q(()=>[Z(PC,{content:T(t).allowPortsStr,length:30},null,8,["content"])]),_:1})):Ae("",!0),T(t).tlsForce===!0?(G(),ve(a,{key:7,label:"TLS Force"},{default:q(()=>[te("span",null,xe(T(t).tlsForce),1)]),_:1})):Ae("",!0),Z(a,{label:"HeartBeat Timeout"},{default:q(()=>[te("span",null,xe(T(t).heartbeatTimeout),1)]),_:1}),Z(a,{label:"Client Counts"},{default:q(()=>[te("span",null,xe(T(t).clientCounts),1)]),_:1}),Z(a,{label:"Current Connections"},{default:q(()=>[te("span",null,xe(T(t).curConns),1)]),_:1}),Z(a,{label:"Proxy Counts"},{default:q(()=>[te("span",null,xe(T(t).proxyCounts),1)]),_:1})]),_:1})])]),_:1}),Z(s,{md:12},{default:q(()=>[fte,cte]),_:1})]),_:1})])}}});class Io{constructor(t){It(this,"name");It(this,"type");It(this,"annotations");It(this,"encryption");It(this,"compression");It(this,"conns");It(this,"trafficIn");It(this,"trafficOut");It(this,"lastStartTime");It(this,"lastCloseTime");It(this,"status");It(this,"clientVersion");It(this,"addr");It(this,"port");It(this,"customDomains");It(this,"hostHeaderRewrite");It(this,"locations");It(this,"subdomain");var r,n,i,a,o;if(this.name=t.name,this.type="",this.annotations=new Map,(r=t.conf)!=null&&r.annotations)for(const s in t.conf.annotations)this.annotations.set(s,t.conf.annotations[s]);this.encryption=!1,this.compression=!1,this.encryption=((i=(n=t.conf)==null?void 0:n.transport)==null?void 0:i.useEncryption)||this.encryption,this.compression=((o=(a=t.conf)==null?void 0:a.transport)==null?void 0:o.useCompression)||this.compression,this.conns=t.curConns,this.trafficIn=t.todayTrafficIn,this.trafficOut=t.todayTrafficOut,this.lastStartTime=t.lastStartTime,this.lastCloseTime=t.lastCloseTime,this.status=t.status,this.clientVersion=t.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class hte extends Io{constructor(t){super(t),this.type="tcp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class vte extends Io{constructor(t){super(t),this.type="udp",t.conf!=null?(this.addr=":"+t.conf.remotePort,this.port=t.conf.remotePort):(this.addr="",this.port=0)}}class pte extends Io{constructor(t,r,n){super(t),this.type="http",this.port=r,t.conf&&(this.customDomains=t.conf.customDomains||this.customDomains,this.hostHeaderRewrite=t.conf.hostHeaderRewrite,this.locations=t.conf.locations,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class gte extends Io{constructor(t,r,n){super(t),this.type="https",this.port=r,t.conf!=null&&(this.customDomains=t.conf.customDomains||this.customDomains,t.conf.subdomain&&(this.subdomain=`${t.conf.subdomain}.${n}`))}}class mte extends Io{constructor(r,n,i){super(r);It(this,"multiplexer");It(this,"routeByHTTPUser");this.type="tcpmux",this.port=n,this.multiplexer="",this.routeByHTTPUser="",r.conf&&(this.customDomains=r.conf.customDomains||this.customDomains,this.multiplexer=r.conf.multiplexer,this.routeByHTTPUser=r.conf.routeByHTTPUser,r.conf.subdomain&&(this.subdomain=`${r.conf.subdomain}.${i}`))}}class yte extends Io{constructor(t){super(t),this.type="stcp"}}class _te extends Io{constructor(t){super(t),this.type="sudp"}}const bte=["id"],wte=ie({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e;return(()=>{let n="../api/traffic/"+t.proxyName;fetch(n,{credentials:"include"}).then(i=>i.json()).then(i=>{lte(t.proxyName,i.trafficIn,i.trafficOut)}).catch(i=>{Wl({showClose:!0,message:"Get traffic info failed!"+i,type:"warning"})})})(),(n,i)=>(G(),ce("div",{id:n.proxyName,style:{width:"600px",height:"400px"}},null,8,bte))}}),Ste={key:0},xte={key:1},Cte={key:2},Tte={key:0},Mte={class:"annotation-key"},Ate=ie({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,r=()=>{const n=[];return t.row.annotations&&t.row.annotations.forEach((i,a)=>{n.push({key:a,value:i})}),n};return(n,i)=>{const a=sA,o=oA,s=VA,l=wW;return G(),ce(ft,null,[Z(o,{"label-position":"left","label-width":"auto",inline:"",class:"proxy-table-expand"},{default:q(()=>[Z(a,{label:"Name"},{default:q(()=>[te("span",null,xe(n.row.name),1)]),_:1}),Z(a,{label:"Type"},{default:q(()=>[te("span",null,xe(n.row.type),1)]),_:1}),Z(a,{label:"Encryption"},{default:q(()=>[te("span",null,xe(n.row.encryption),1)]),_:1}),Z(a,{label:"Compression"},{default:q(()=>[te("span",null,xe(n.row.compression),1)]),_:1}),Z(a,{label:"Last Start"},{default:q(()=>[te("span",null,xe(n.row.lastStartTime),1)]),_:1}),Z(a,{label:"Last Close"},{default:q(()=>[te("span",null,xe(n.row.lastCloseTime),1)]),_:1}),n.proxyType==="http"||n.proxyType==="https"?(G(),ce("div",Ste,[Z(a,{label:"Domains"},{default:q(()=>[te("span",null,xe(n.row.customDomains),1)]),_:1}),Z(a,{label:"SubDomain"},{default:q(()=>[te("span",null,xe(n.row.subdomain),1)]),_:1}),Z(a,{label:"locations"},{default:q(()=>[te("span",null,xe(n.row.locations),1)]),_:1}),Z(a,{label:"HostRewrite"},{default:q(()=>[te("span",null,xe(n.row.hostHeaderRewrite),1)]),_:1})])):n.proxyType==="tcpmux"?(G(),ce("div",xte,[Z(a,{label:"Multiplexer"},{default:q(()=>[te("span",null,xe(n.row.multiplexer),1)]),_:1}),Z(a,{label:"RouteByHTTPUser"},{default:q(()=>[te("span",null,xe(n.row.routeByHTTPUser),1)]),_:1}),Z(a,{label:"Domains"},{default:q(()=>[te("span",null,xe(n.row.customDomains),1)]),_:1}),Z(a,{label:"SubDomain"},{default:q(()=>[te("span",null,xe(n.row.subdomain),1)]),_:1})])):(G(),ce("div",Cte,[Z(a,{label:"Addr"},{default:q(()=>[te("span",null,xe(n.row.addr),1)]),_:1})]))]),_:1}),n.row.annotations&&n.row.annotations.size>0?(G(),ce("div",Tte,[Z(s),Z(l,{class:"title-text",size:"large"},{default:q(()=>[pt("Annotations")]),_:1}),te("ul",null,[(G(!0),ce(ft,null,Hp(r(),u=>(G(),ce("li",null,[te("span",Mte,xe(u.key),1),te("span",null,xe(u.value),1)]))),256))])])):Ae("",!0)],64)}}}),Pte={class:"flex items-center",style:{"margin-right":"30px"}},Oo=ie({__name:"ProxyView",props:{proxies:{},proxyType:{}},emits:["refresh"],setup(e,{emit:t}){const r=t,n=$(!1),i=$(""),a=(l,u)=>Mu.fileSize(l.trafficIn),o=(l,u)=>Mu.fileSize(l.trafficOut),s=()=>{fetch("../api/proxies?status=offline",{method:"DELETE",credentials:"include"}).then(l=>{l.ok?(Wl({message:"Successfully cleared offline proxies",type:"success"}),r("refresh")):Wl({message:"Failed to clear offline proxies: "+l.status+" "+l.statusText,type:"warning"})}).catch(l=>{Wl({message:"Failed to clear offline proxies: "+l.message,type:"warning"})})};return(l,u)=>{const f=yg,c=eV,h=q6,d=gW,v=N8,p=pW,m=wte,g=p6;return G(),ce(ft,null,[te("div",null,[Z(h,{icon:null,style:{width:"100%","margin-left":"30px","margin-bottom":"20px"}},{title:q(()=>[te("span",null,xe(l.proxyType),1)]),content:q(()=>[]),extra:q(()=>[te("div",Pte,[Z(c,{title:"Are you sure to clear all data of offline proxies?",onConfirm:s},{reference:q(()=>[Z(f,null,{default:q(()=>[pt("ClearOfflineProxies")]),_:1})]),_:1}),Z(f,{onClick:u[0]||(u[0]=y=>l.$emit("refresh"))},{default:q(()=>[pt("Refresh")]),_:1})])]),_:1}),Z(p,{data:l.proxies,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:q(()=>[Z(d,{type:"expand"},{default:q(y=>[Z(Ate,{row:y.row,proxyType:l.proxyType},null,8,["row","proxyType"])]),_:1}),Z(d,{label:"Name",prop:"name",sortable:""}),Z(d,{label:"Port",prop:"port",sortable:""}),Z(d,{label:"Connections",prop:"conns",sortable:""}),Z(d,{label:"Traffic In",prop:"trafficIn",formatter:a,sortable:""}),Z(d,{label:"Traffic Out",prop:"trafficOut",formatter:o,sortable:""}),Z(d,{label:"ClientVersion",prop:"clientVersion",sortable:""}),Z(d,{label:"Status",prop:"status",sortable:""},{default:q(y=>[y.row.status==="online"?(G(),ve(v,{key:0,type:"success"},{default:q(()=>[pt(xe(y.row.status),1)]),_:2},1024)):(G(),ve(v,{key:1,type:"danger"},{default:q(()=>[pt(xe(y.row.status),1)]),_:2},1024))]),_:1}),Z(d,{label:"Operations"},{default:q(y=>[Z(f,{type:"primary",name:y.row.name,style:{"margin-bottom":"10px"},onClick:_=>{i.value=y.row.name,n.value=!0}},{default:q(()=>[pt("Traffic ")]),_:2},1032,["name","onClick"])]),_:1})]),_:1},8,["data"])]),Z(g,{modelValue:n.value,"onUpdate:modelValue":u[1]||(u[1]=y=>n.value=y),"destroy-on-close":"true",title:i.value,width:"700px"},{default:q(()=>[Z(m,{proxyName:i.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])],64)}}}),Ete=ie({__name:"ProxiesTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/tcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new hte(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"tcp",onRefresh:r},null,8,["proxies"]))}}),Lte=ie({__name:"ProxiesUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/udp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new vte(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"udp",onRefresh:r},null,8,["proxies"]))}}),Dte=ie({__name:"ProxiesHTTP",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/http",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new pte(s,n,i))})})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"http",onRefresh:r},null,8,["proxies"]))}}),Ite=ie({__name:"ProxiesHTTPS",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.vhostHTTPSPort,i=a.subdomainHost,!(n==null||n==0)&&fetch("../api/proxy/https",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new gte(s,n,i))})})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"https",onRefresh:r},null,8,["proxies"]))}}),Ote=ie({__name:"ProxiesTCPMux",setup(e){let t=$([]);const r=()=>{let n,i;fetch("../api/serverinfo",{credentials:"include"}).then(a=>a.json()).then(a=>{n=a.tcpmuxHTTPConnectPort,i=a.subdomainHost,fetch("../api/proxy/tcpmux",{credentials:"include"}).then(o=>o.json()).then(o=>{t.value=[];for(let s of o.proxies)t.value.push(new mte(s,n,i))})})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"tcpmux",onRefresh:r},null,8,["proxies"]))}}),Rte=ie({__name:"ProxiesSTCP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/stcp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new yte(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"stcp",onRefresh:r},null,8,["proxies"]))}}),kte=ie({__name:"ProxiesSUDP",setup(e){let t=$([]);const r=()=>{fetch("../api/proxy/sudp",{credentials:"include"}).then(n=>n.json()).then(n=>{t.value=[];for(let i of n.proxies)t.value.push(new _te(i))})};return r(),(n,i)=>(G(),ve(Oo,{proxies:T(t),proxyType:"sudp",onRefresh:r},null,8,["proxies"]))}}),Nte=jG({history:uG(),routes:[{path:"/",name:"ServerOverview",component:dte},{path:"/proxies/tcp",name:"ProxiesTCP",component:Ete},{path:"/proxies/udp",name:"ProxiesUDP",component:Lte},{path:"/proxies/http",name:"ProxiesHTTP",component:Dte},{path:"/proxies/https",name:"ProxiesHTTPS",component:Ite},{path:"/proxies/tcpmux",name:"ProxiesTCPMux",component:Ote},{path:"/proxies/stcp",name:"ProxiesSTCP",component:Rte},{path:"/proxies/sudp",name:"ProxiesSUDP",component:kte}]}),MD=oR(GW);MD.use(Nte);MD.mount("#app")});export default Bte(); diff --git a/assets/frps/static/index-BUrDiw1t.js b/assets/frps/static/index-BUrDiw1t.js new file mode 100644 index 00000000000..6cc354fdb20 --- /dev/null +++ b/assets/frps/static/index-BUrDiw1t.js @@ -0,0 +1 @@ +var e,t,n=Object.getOwnPropertyNames,o=(e={"index-BUrDiw1t.js"(e,t){function n(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const o={},l=[],r=()=>{},a=()=>!1,s=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),i=e=>e.startsWith("onUpdate:"),u=Object.assign,c=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,p=(e,t)=>d.call(e,t),f=Array.isArray,v=e=>"[object Map]"===_(e),h=e=>"[object Set]"===_(e),m=e=>"[object Date]"===_(e),g=e=>"function"==typeof e,b=e=>"string"==typeof e,y=e=>"symbol"==typeof e,w=e=>null!==e&&"object"==typeof e,x=e=>(w(e)||g(e))&&g(e.then)&&g(e.catch),C=Object.prototype.toString,_=e=>C.call(e),S=e=>"[object Object]"===_(e),k=e=>b(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,E=n(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),T=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},A=/-\w/g,O=T(e=>e.replace(A,e=>e.slice(1).toUpperCase())),M=/\B([A-Z])/g,R=T(e=>e.replace(M,"-$1").toLowerCase()),L=T(e=>e.charAt(0).toUpperCase()+e.slice(1)),P=T(e=>e?`on${L(e)}`:""),N=(e,t)=>!Object.is(e,t),I=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},F=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let $;const j=()=>$||($="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function V(e){if(f(e)){const t={};for(let n=0;n{if(e){const n=e.split(z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function q(e){let t="";if(b(e))t=e;else if(f(e))for(let n=0;nG(e,t))}const X=e=>!(!e||!0!==e.__v_isRef),Z=e=>b(e)?e:null==e?"":f(e)||w(e)&&(e.toString===C||!g(e.toString))?X(e)?Z(e.value):JSON.stringify(e,J,2):String(e),J=(e,t)=>X(t)?J(e,t.value):v(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],o)=>(e[Q(t,o)+" =>"]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Q(e))}:y(t)?Q(t):!w(t)||f(t)||S(t)?t:String(t),Q=(e,t="")=>{var n;return y(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};let ee,te;class ne{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ee,!e&&ee&&(this.index=(ee.scopes||(ee.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0===--this._on&&(ee=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(this._active=!1,t=0,n=this.effects.length;t0)return;if(ie){let e=ie;for(ie=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;se;){let n=se;for(se=void 0;n;){const o=n.next;if(n.next=void 0,n.flags&=-9,1&n.flags)try{n.trigger()}catch(t){e||(e=t)}n=o}}if(e)throw e}function fe(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ve(e){let t,n=e.depsTail,o=n;for(;o;){const e=o.prevDep;-1===o.version?(o===n&&(n=e),ge(o),be(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=e}e.deps=t,e.depsTail=n}function he(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(me(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function me(e){if(4&e.flags&&!(16&e.flags))return;if(e.flags&=-17,e.globalVersion===Se)return;if(e.globalVersion=Se,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!he(e)))return;e.flags|=2;const t=e.dep,n=te,o=ye;te=e,ye=!0;try{fe(e);const n=e.fn(e._value);(0===t.version||N(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(l){throw t.version++,l}finally{te=n,ye=o,ve(e),e.flags&=-3}}function ge(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ge(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function be(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ye=!0;const we=[];function xe(){we.push(ye),ye=!1}function Ce(){const e=we.pop();ye=void 0===e||e}function _e(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const e=te;te=void 0;try{t()}finally{te=e}}}let Se=0;class ke{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ee{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!te||!ye||te===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==te)t=this.activeLink=new ke(te,this),te.deps?(t.prevDep=te.depsTail,te.depsTail.nextDep=t,te.depsTail=t):te.deps=te.depsTail=t,Te(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){const e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=te.depsTail,t.nextDep=void 0,te.depsTail.nextDep=t,te.depsTail=t,te.deps===t&&(te.deps=e)}return t}trigger(e){this.version++,Se++,this.notify(e)}notify(e){de();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{pe()}}}function Te(e){if(e.dep.sc++,4&e.sub.flags){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Te(e)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ae=new WeakMap,Oe=Symbol(""),Me=Symbol(""),Re=Symbol("");function Le(e,t,n){if(ye&&te){let t=Ae.get(e);t||Ae.set(e,t=new Map);let o=t.get(n);o||(t.set(n,o=new Ee),o.map=t,o.key=n),o.track()}}function Pe(e,t,n,o,l,r){const a=Ae.get(e);if(!a)return void Se++;const s=e=>{e&&e.trigger()};if(de(),"clear"===t)a.forEach(s);else{const l=f(e),r=l&&k(n);if(l&&"length"===n){const e=Number(o);a.forEach((t,n)=>{("length"===n||n===Re||!y(n)&&n>=e)&&s(t)})}else switch((void 0!==n||a.has(void 0))&&s(a.get(n)),r&&s(a.get(Re)),t){case"add":l?r&&s(a.get("length")):(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"delete":l||(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"set":v(e)&&s(a.get(Oe))}}pe()}function Ne(e){const t=wt(e);return t===e?t:(Le(t,0,Re),bt(e)?t:t.map(xt))}function Ie(e){return Le(e=wt(e),0,Re),e}function Be(e,t){return gt(e)?mt(e)?Ct(xt(t)):Ct(t):xt(t)}const Fe={__proto__:null,[Symbol.iterator](){return $e(this,Symbol.iterator,e=>Be(this,e))},concat(...e){return Ne(this).concat(...e.map(e=>f(e)?Ne(e):e))},entries(){return $e(this,"entries",e=>(e[1]=Be(this,e[1]),e))},every(e,t){return Ve(this,"every",e,t,void 0,arguments)},filter(e,t){return Ve(this,"filter",e,t,e=>e.map(e=>Be(this,e)),arguments)},find(e,t){return Ve(this,"find",e,t,e=>Be(this,e),arguments)},findIndex(e,t){return Ve(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ve(this,"findLast",e,t,e=>Be(this,e),arguments)},findLastIndex(e,t){return Ve(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ve(this,"forEach",e,t,void 0,arguments)},includes(...e){return ze(this,"includes",e)},indexOf(...e){return ze(this,"indexOf",e)},join(e){return Ne(this).join(e)},lastIndexOf(...e){return ze(this,"lastIndexOf",e)},map(e,t){return Ve(this,"map",e,t,void 0,arguments)},pop(){return He(this,"pop")},push(...e){return He(this,"push",e)},reduce(e,...t){return De(this,"reduce",e,t)},reduceRight(e,...t){return De(this,"reduceRight",e,t)},shift(){return He(this,"shift")},some(e,t){return Ve(this,"some",e,t,void 0,arguments)},splice(...e){return He(this,"splice",e)},toReversed(){return Ne(this).toReversed()},toSorted(e){return Ne(this).toSorted(e)},toSpliced(...e){return Ne(this).toSpliced(...e)},unshift(...e){return He(this,"unshift",e)},values(){return $e(this,"values",e=>Be(this,e))}};function $e(e,t,n){const o=Ie(e),l=o[t]();return o===e||bt(e)||(l._next=l.next,l.next=()=>{const e=l._next();return e.done||(e.value=n(e.value)),e}),l}const je=Array.prototype;function Ve(e,t,n,o,l,r){const a=Ie(e),s=a!==e&&!bt(e),i=a[t];if(i!==je[t]){const t=i.apply(e,r);return s?xt(t):t}let u=n;a!==e&&(s?u=function(t,o){return n.call(this,Be(e,t),o,e)}:n.length>2&&(u=function(t,o){return n.call(this,t,o,e)}));const c=i.call(a,u,o);return s&&l?l(c):c}function De(e,t,n,o){const l=Ie(e);let r=n;return l!==e&&(bt(e)?n.length>3&&(r=function(t,o,l){return n.call(this,t,o,l,e)}):r=function(t,o,l){return n.call(this,t,Be(e,o),l,e)}),l[t](r,...o)}function ze(e,t,n){const o=wt(e);Le(o,0,Re);const l=o[t](...n);return-1!==l&&!1!==l||!yt(n[0])?l:(n[0]=wt(n[0]),o[t](...n))}function He(e,t,n=[]){xe(),de();const o=wt(e)[t].apply(e,n);return pe(),Ce(),o}const We=n("__proto__,__v_isRef,__isVue"),qe=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(y));function Ue(e){y(e)||(e=String(e));const t=wt(this);return Le(t,0,e),t.hasOwnProperty(e)}class Ke{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;const o=this._isReadonly,l=this._isShallow;if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return l;if("__v_raw"===t)return n===(o?l?ct:ut:l?it:st).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const r=f(e);if(!o){let e;if(r&&(e=Fe[t]))return e;if("hasOwnProperty"===t)return Ue}const a=Reflect.get(e,t,_t(e)?e:n);if(y(t)?qe.has(t):We(t))return a;if(o||Le(e,0,t),l)return a;if(_t(a)){const e=r&&k(t)?a:a.value;return o&&w(e)?vt(e):e}return w(a)?o?vt(a):pt(a):a}}class Ge extends Ke{constructor(e=!1){super(!1,e)}set(e,t,n,o){let l=e[t];const r=f(e)&&k(t);if(!this._isShallow){const e=gt(l);if(bt(n)||gt(n)||(l=wt(l),n=wt(n)),!r&&_t(l)&&!_t(n))return e||(l.value=n),!0}const a=r?Number(t)e,et=e=>Reflect.getPrototypeOf(e);function tt(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function nt(e,t){const n={get(n){const o=this.__v_raw,l=wt(o),r=wt(n);e||(N(n,r)&&Le(l,0,n),Le(l,0,r));const{has:a}=et(l),s=t?Qe:e?Ct:xt;return a.call(l,n)?s(o.get(n)):a.call(l,r)?s(o.get(r)):void(o!==l&&o.get(n))},get size(){const t=this.__v_raw;return!e&&Le(wt(t),0,Oe),t.size},has(t){const n=this.__v_raw,o=wt(n),l=wt(t);return e||(N(t,l)&&Le(o,0,t),Le(o,0,l)),t===l?n.has(t):n.has(t)||n.has(l)},forEach(n,o){const l=this,r=l.__v_raw,a=wt(r),s=t?Qe:e?Ct:xt;return!e&&Le(a,0,Oe),r.forEach((e,t)=>n.call(o,s(e),s(t),l))}};return u(n,e?{add:tt("add"),set:tt("set"),delete:tt("delete"),clear:tt("clear")}:{add(e){t||bt(e)||gt(e)||(e=wt(e));const n=wt(this);return et(n).has.call(n,e)||(n.add(e),Pe(n,"add",e,e)),this},set(e,n){t||bt(n)||gt(n)||(n=wt(n));const o=wt(this),{has:l,get:r}=et(o);let a=l.call(o,e);a||(e=wt(e),a=l.call(o,e));const s=r.call(o,e);return o.set(e,n),a?N(n,s)&&Pe(o,"set",e,n):Pe(o,"add",e,n),this},delete(e){const t=wt(this),{has:n,get:o}=et(t);let l=n.call(t,e);l||(e=wt(e),l=n.call(t,e)),o&&o.call(t,e);const r=t.delete(e);return l&&Pe(t,"delete",e,void 0),r},clear(){const e=wt(this),t=0!==e.size,n=e.clear();return t&&Pe(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=function(e,t,n){return function(...o){const l=this.__v_raw,r=wt(l),a=v(r),s="entries"===e||e===Symbol.iterator&&a,i="keys"===e&&a,u=l[e](...o),c=n?Qe:t?Ct:xt;return!t&&Le(r,0,i?Me:Oe),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}(o,e,t)}),n}function ot(e,t){const n=nt(e,t);return(t,o,l)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(p(n,o)&&o in t?n:t,o,l)}const lt={get:ot(!1,!1)},rt={get:ot(!1,!0)},at={get:ot(!0,!1)},st=new WeakMap,it=new WeakMap,ut=new WeakMap,ct=new WeakMap;function dt(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>_(e).slice(8,-1))(e))}function pt(e){return gt(e)?e:ht(e,!1,Xe,lt,st)}function ft(e){return ht(e,!1,Je,rt,it)}function vt(e){return ht(e,!0,Ze,at,ut)}function ht(e,t,n,o,l){if(!w(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const r=dt(e);if(0===r)return e;const a=l.get(e);if(a)return a;const s=new Proxy(e,2===r?o:n);return l.set(e,s),s}function mt(e){return gt(e)?mt(e.__v_raw):!(!e||!e.__v_isReactive)}function gt(e){return!(!e||!e.__v_isReadonly)}function bt(e){return!(!e||!e.__v_isShallow)}function yt(e){return!!e&&!!e.__v_raw}function wt(e){const t=e&&e.__v_raw;return t?wt(t):e}const xt=e=>w(e)?pt(e):e,Ct=e=>w(e)?vt(e):e;function _t(e){return!!e&&!0===e.__v_isRef}function St(e){return Et(e,!1)}function kt(e){return Et(e,!0)}function Et(e,t){return _t(e)?e:new Tt(e,t)}class Tt{constructor(e,t){this.dep=new Ee,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:wt(e),this._value=t?e:xt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,n=this.__v_isShallow||bt(e)||gt(e);e=n?e:wt(e),N(e,t)&&(this._rawValue=e,this._value=n?e:xt(e),this.dep.trigger())}}function At(e){e.dep&&e.dep.trigger()}function Ot(e){return _t(e)?e.value:e}function Mt(e){return g(e)?e():Ot(e)}const Rt={get:(e,t,n)=>"__v_raw"===t?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return _t(l)&&!_t(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function Lt(e){return mt(e)?e:new Proxy(e,Rt)}class Pt{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new Ee,{get:n,set:o}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Nt(e){const t=f(e)?new Array(e.length):{};for(const n in e)t[n]=$t(e,n);return t}class It{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=wt(e);let o=!0,l=e;if(!f(e)||!k(String(t)))do{o=!yt(l)||bt(l)}while(o&&(l=l.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=Ot(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&_t(this._raw[this._key])){const t=this._object[this._key];if(_t(t))return void(t.value=e)}this._object[this._key]=e}get dep(){return function(e,t){const n=Ae.get(e);return n&&n.get(t)}(this._raw,this._key)}}class Bt{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ft(e,t,n){return _t(e)?e:g(e)?new Bt(e):w(e)&&arguments.length>1?$t(e,t,n):St(e)}function $t(e,t,n){return new It(e,t,n)}class jt{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ee(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Se-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&te!==this)return ce(this,!0),!0}get value(){const e=this.dep.track();return me(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}const Vt={},Dt=new WeakMap;let zt;function Ht(e,t,n=o){const{immediate:l,deep:a,once:s,scheduler:i,augmentJob:u,call:d}=n,p=e=>a?e:bt(e)||!1===a||0===a?Wt(e,1):Wt(e);let v,h,m,b,y=!1,w=!1;if(_t(e)?(h=()=>e.value,y=bt(e)):mt(e)?(h=()=>p(e),y=!0):f(e)?(w=!0,y=e.some(e=>mt(e)||bt(e)),h=()=>e.map(e=>_t(e)?e.value:mt(e)?p(e):g(e)?d?d(e,2):e():void 0)):h=g(e)?t?d?()=>d(e,2):e:()=>{if(m){xe();try{m()}finally{Ce()}}const t=zt;zt=v;try{return d?d(e,3,[b]):e(b)}finally{zt=t}}:r,t&&a){const e=h,t=!0===a?1/0:a;h=()=>Wt(e(),t)}const x=oe(),C=()=>{v.stop(),x&&x.active&&c(x.effects,v)};if(s&&t){const e=t;t=(...t)=>{e(...t),C()}}let _=w?new Array(e.length).fill(Vt):Vt;const S=e=>{if(1&v.flags&&(v.dirty||e))if(t){const e=v.run();if(a||y||(w?e.some((e,t)=>N(e,_[t])):N(e,_))){m&&m();const n=zt;zt=v;try{const n=[e,_===Vt?void 0:w&&_[0]===Vt?[]:_,b];_=e,d?d(t,3,n):t(...n)}finally{zt=n}}}else v.run()};return u&&u(S),v=new ae(h),v.scheduler=i?()=>i(S,!1):S,b=e=>function(e,t=!1,n=zt){if(n){let t=Dt.get(n);t||Dt.set(n,t=[]),t.push(e)}}(e,!1,v),m=v.onStop=()=>{const e=Dt.get(v);if(e){if(d)d(e,4);else for(const t of e)t();Dt.delete(v)}},t?l?S(!0):_=v.run():i?i(S.bind(null,!0),!0):v.run(),C.pause=v.pause.bind(v),C.resume=v.resume.bind(v),C.stop=C,C}function Wt(e,t=1/0,n){if(t<=0||!w(e)||e.__v_skip)return e;if(((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,_t(e))Wt(e.value,t,n);else if(f(e))for(let o=0;o{Wt(e,t,n)});else if(S(e)){for(const o in e)Wt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Wt(e[o],t,n)}return e}function qt(e,t,n,o){try{return o?e(...o):e()}catch(l){Kt(l,t,n)}}function Ut(e,t,n,o){if(g(e)){const l=qt(e,t,n,o);return l&&x(l)&&l.catch(e=>{Kt(e,t,n)}),l}if(f(e)){const l=[];for(let r=0;r=an(n)?Gt.push(e):Gt.splice(function(e){let t=Yt+1,n=Gt.length;for(;t>>1,l=Gt[o],r=an(l);ran(e)-an(t));if(Xt.length=0,Zt)return void Zt.push(...e);for(Zt=e,Jt=0;Jtnull==e.id?2&e.flags?-1:1/0:e.id;function sn(e){try{for(Yt=0;Yt{o._d&&jl(-1);const l=dn(t);let r;try{r=e(...n)}finally{dn(l),o._d&&jl(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function fn(e,t){if(null===un)return e;const n=gr(un),l=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&g(t)?t.call(o&&o.proxy):t}}function gn(){return!(!ar()&&!Qo)}const bn=Symbol.for("v-scx");function yn(e,t){return xn(e,null,t)}function wn(e,t,n){return xn(e,t,n)}function xn(e,t,n=o){const{immediate:l,deep:a,flush:s,once:i}=n,c=u({},n),d=t&&l||!t&&"post"!==s;let p;if(pr)if("sync"===s){const e=mn(bn);p=e.__watcherHandles||(e.__watcherHandles=[])}else if(!d){const e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}const f=rr;c.call=(e,t,n)=>Ut(e,f,t,n);let v=!1;"post"===s?c.scheduler=e=>{Cl(e,f&&f.suspense)}:"sync"!==s&&(v=!0,c.scheduler=(e,t)=>{t?e():nn(e)}),c.augmentJob=e=>{t&&(e.flags|=4),v&&(e.flags|=2,f&&(e.id=f.uid,e.i=f))};const h=Ht(e,t,c);return pr&&(p?p.push(h):d&&h()),h}function Cn(e,t,n){const o=this.proxy,l=b(e)?e.includes(".")?_n(o,e):()=>o[e]:e.bind(o,o);let r;g(t)?r=t:(r=t.handler,n=t);const a=ur(this),s=xn(l,r.bind(o),n);return a(),s}function _n(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;ee.__isTeleport,En=e=>e&&(e.disabled||""===e.disabled),Tn=e=>e&&(e.defer||""===e.defer),An=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,On=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,Mn=(e,t)=>{const n=e&&e.to;return b(n)?t?t(n):null:n},Rn={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,r,a,s,i,u){const{mc:c,pc:d,pbc:p,o:{insert:f,querySelector:v,createText:h,createComment:m}}=u,g=En(t.props);let{shapeFlag:b,children:y,dynamicChildren:w}=t;if(null==e){const e=t.el=h(""),u=t.anchor=h("");f(e,n,o),f(u,n,o);const d=(e,t)=>{16&b&&c(y,e,t,l,r,a,s,i)},p=()=>{const e=t.target=Mn(t.props,v),n=In(e,t,h,f);e&&("svg"!==a&&An(e)?a="svg":"mathml"!==a&&On(e)&&(a="mathml"),l&&l.isCE&&(l.ce._teleportTargets||(l.ce._teleportTargets=new Set)).add(e),g||(d(e,n),Nn(t,!1)))};g&&(d(n,u),Nn(t,!0)),Tn(t.props)?(t.el.__isMounted=!1,Cl(()=>{p(),delete t.el.__isMounted},r)):p()}else{if(Tn(t.props)&&!1===e.el.__isMounted)return void Cl(()=>{Rn.process(e,t,n,o,l,r,a,s,i,u)},r);t.el=e.el,t.targetStart=e.targetStart;const c=t.anchor=e.anchor,f=t.target=e.target,h=t.targetAnchor=e.targetAnchor,m=En(e.props),b=m?n:f,y=m?c:h;if("svg"===a||An(f)?a="svg":("mathml"===a||On(f))&&(a="mathml"),w?(p(e.dynamicChildren,w,b,l,r,a,s),El(e,t,!0)):i||d(e,t,b,y,l,r,a,s,!1),g)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ln(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=Mn(t.props,v);e&&Ln(t,e,null,u,0)}else m&&Ln(t,f,h,u,1);Nn(t,g)}},remove(e,t,n,{um:o,o:{remove:l}},r){const{shapeFlag:a,children:s,anchor:i,targetStart:u,targetAnchor:c,target:d,props:p}=e;if(d&&(l(u),l(c)),r&&l(i),16&a){const e=r||!En(p);for(let l=0;l{e.isMounted=!0}),vo(()=>{e.isUnmounting=!0}),e}const jn=[Function,Array],Vn={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jn,onEnter:jn,onAfterEnter:jn,onEnterCancelled:jn,onBeforeLeave:jn,onLeave:jn,onAfterLeave:jn,onLeaveCancelled:jn,onBeforeAppear:jn,onAppear:jn,onAfterAppear:jn,onAppearCancelled:jn},Dn=e=>{const t=e.subTree;return t.component?Dn(t.component):t};function zn(e){let t=e[0];if(e.length>1)for(const n of e)if(n.type!==Pl){t=n;break}return t}const Hn={name:"BaseTransition",props:Vn,setup(e,{slots:t}){const n=ar(),o=$n();return()=>{const l=t.default&&Yn(t.default(),!0);if(!l||!l.length)return;const r=zn(l),a=wt(e),{mode:s}=a;if(o.isLeaving)return Un(r);const i=Kn(r);if(!i)return Un(r);let u=qn(i,a,o,n,e=>u=e);i.type!==Pl&&Gn(i,u);let c=n.subTree&&Kn(n.subTree);if(c&&c.type!==Pl&&!Wl(c,i)&&Dn(n).type!==Pl){let e=qn(c,a,o,n);if(Gn(c,e),"out-in"===s&&i.type!==Pl)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},Un(r);"in-out"===s&&i.type!==Pl?e.delayLeave=(e,t,n)=>{Wn(o,c)[String(c.key)]=c,e[Bn]=()=>{t(),e[Bn]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return r}}};function Wn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function qn(e,t,n,o,l){const{appear:r,mode:a,persisted:s=!1,onBeforeEnter:i,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:p,onLeave:v,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:b,onAfterAppear:y,onAppearCancelled:w}=t,x=String(e.key),C=Wn(n,e),_=(e,t)=>{e&&Ut(e,o,9,t)},S=(e,t)=>{const n=t[1];_(e,t),f(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:a,persisted:s,beforeEnter(t){let o=i;if(!n.isMounted){if(!r)return;o=g||i}t[Bn]&&t[Bn](!0);const l=C[x];l&&Wl(e,l)&&l.el[Bn]&&l.el[Bn](),_(o,[t])},enter(e){let t=u,o=c,l=d;if(!n.isMounted){if(!r)return;t=b||u,o=y||c,l=w||d}let a=!1;const s=e[Fn]=t=>{a||(a=!0,_(t?l:o,[e]),k.delayedLeave&&k.delayedLeave(),e[Fn]=void 0)};t?S(t,[e,s]):s()},leave(t,o){const l=String(e.key);if(t[Fn]&&t[Fn](!0),n.isUnmounting)return o();_(p,[t]);let r=!1;const a=t[Bn]=n=>{r||(r=!0,o(),_(n?m:h,[t]),t[Bn]=void 0,C[l]===e&&delete C[l])};C[l]=e,v?S(v,[t,a]):a()},clone(e){const r=qn(e,t,n,o,l);return l&&l(r),r}};return k}function Un(e){if(no(e))return(e=Yl(e)).children=null,e}function Kn(e){if(!no(e))return kn(e.type)&&e.children?zn(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&g(n.default))return n.default()}}function Gn(e,t){6&e.shapeFlag&&e.component?(e.transition=t,Gn(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yn(e,t=!1,n){let o=[],l=0;for(let r=0;r1)for(let r=0;ru({name:e.name},t,{setup:e}))():e}function Zn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Jn=new WeakMap;function Qn(e,t,n,l,r=!1){if(f(e))return void e.forEach((e,o)=>Qn(e,t&&(f(t)?t[o]:t),n,l,r));if(to(l)&&!r)return void(512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&Qn(e,t,n,l.component.subTree));const s=4&l.shapeFlag?gr(l.component):l.el,i=r?null:s,{i:u,r:d}=e,v=t&&t.r,h=u.refs===o?u.refs={}:u.refs,m=u.setupState,y=wt(m),w=m===o?a:e=>p(y,e);if(null!=v&&v!==d)if(eo(t),b(v))h[v]=null,w(v)&&(m[v]=null);else if(_t(v)){v.value=null;const e=t;e.k&&(h[e.k]=null)}if(g(d))qt(d,u,12,[i,h]);else{const t=b(d),o=_t(d);if(t||o){const l=()=>{if(e.f){const n=t?w(d)?m[d]:h[d]:d.value;if(r)f(n)&&c(n,s);else if(f(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],w(d)&&(m[d]=h[d]);else{const t=[s];d.value=t,e.k&&(h[e.k]=t)}}else t?(h[d]=i,w(d)&&(m[d]=i)):o&&(d.value=i,e.k&&(h[e.k]=i))};if(i){const t=()=>{l(),Jn.delete(e)};t.id=-1,Jn.set(e,t),Cl(t,n)}else eo(e),l()}}}function eo(e){const t=Jn.get(e);t&&(t.flags|=8,Jn.delete(e))}j().requestIdleCallback,j().cancelIdleCallback;const to=e=>!!e.type.__asyncLoader,no=e=>e.type.__isKeepAlive;function oo(e,t){ro(e,"a",t)}function lo(e,t){ro(e,"da",t)}function ro(e,t,n=rr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(so(t,o,n),n){let e=n.parent;for(;e&&e.parent;)no(e.parent.vnode)&&ao(o,t,n,e),e=e.parent}}function ao(e,t,n,o){const l=so(t,e,o,!0);ho(()=>{c(o[t],l)},n)}function so(e,t,n=rr,o=!1){if(n){const l=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{xe();const l=ur(n),r=Ut(t,n,e,o);return l(),Ce(),r});return o?l.unshift(r):l.push(r),r}}const io=e=>(t,n=rr)=>{pr&&"sp"!==e||so(e,(...e)=>t(...e),n)},uo=io("bm"),co=io("m"),po=io("bu"),fo=io("u"),vo=io("bum"),ho=io("um"),mo=io("sp"),go=io("rtg"),bo=io("rtc");function yo(e,t=rr){so("ec",e,t)}const wo="components";function xo(e,t){return So(wo,e,!0,t)||e}const Co=Symbol.for("v-ndc");function _o(e){return b(e)?So(wo,e,!1)||e:e||Co}function So(e,t,n=!0,o=!1){const l=un||rr;if(l){const n=l.type;if(e===wo){const e=br(n,!1);if(e&&(e===t||e===O(t)||e===L(O(t))))return n}const r=ko(l[e]||n[e],t)||ko(l.appContext[e],t);return!r&&o?n:r}}function ko(e,t){return e&&(e[t]||e[O(t)]||e[L(O(t))])}function Eo(e,t,n,o){let l;const r=n,a=f(e);if(a||b(e)){let n=!1,o=!1;a&&mt(e)&&(n=!bt(e),o=gt(e),e=Ie(e)),l=new Array(e.length);for(let a=0,s=e.length;at(e,n,void 0,r));else{const n=Object.keys(e);l=new Array(n.length);for(let o=0,a=n.length;o{const t=o.fn(...e);return t&&(t.key=o.key),t}:o.fn)}return e}function Ao(e,t,n={},o,l){if(un.ce||un.parent&&to(un.parent)&&un.parent.ce){const e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),Fl(),zl(Rl,null,[Gl("slot",n,o&&o())],e?-2:64)}let r=e[t];r&&r._c&&(r._d=!1),Fl();const a=r&&Oo(r(n)),s=n.key||a&&a.key,i=zl(Rl,{key:(s&&!y(s)?s:`_${t}`)+(!a&&o?"_fb":"")},a||(o?o():[]),a&&1===e._?64:-2);return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),r&&r._c&&(r._d=!0),i}function Oo(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!Oo(e.children)))?e:null}const Mo=e=>e?dr(e)?gr(e):Mo(e.parent):null,Ro=u(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mo(e.parent),$root:e=>Mo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>zo(e),$forceUpdate:e=>e.f||(e.f=()=>{nn(e.update)}),$nextTick:e=>e.n||(e.n=tn.bind(e.proxy)),$watch:e=>Cn.bind(e)}),Lo=(e,t)=>e!==o&&!e.__isScriptSetup&&p(e,t),Po={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:l,data:r,props:a,accessCache:s,type:i,appContext:u}=e;if("$"!==t[0]){const e=s[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return r[t];case 4:return n[t];case 3:return a[t]}else{if(Lo(l,t))return s[t]=1,l[t];if(r!==o&&p(r,t))return s[t]=2,r[t];if(p(a,t))return s[t]=3,a[t];if(n!==o&&p(n,t))return s[t]=4,n[t];$o&&(s[t]=0)}}const c=Ro[t];let d,f;return c?("$attrs"===t&&Le(e.attrs,0,""),c(e)):(d=i.__cssModules)&&(d=d[t])?d:n!==o&&p(n,t)?(s[t]=4,n[t]):(f=u.config.globalProperties,p(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:l,setupState:r,ctx:a}=e;return Lo(r,t)?(r[t]=n,!0):l!==o&&p(l,t)?(l[t]=n,!0):!(p(e.props,t)||"$"===t[0]&&t.slice(1)in e||(a[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:a,type:s}},i){let u;return!!(n[i]||e!==o&&"$"!==i[0]&&p(e,i)||Lo(t,i)||p(a,i)||p(l,i)||p(Ro,i)||p(r.config.globalProperties,i)||(u=s.__cssModules)&&u[i])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:p(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function No(){return Bo().slots}function Io(){return Bo().attrs}function Bo(e){const t=ar();return t.setupContext||(t.setupContext=mr(t))}function Fo(e){return f(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let $o=!0;function jo(e){const t=zo(e),n=e.proxy,o=e.ctx;$o=!1,t.beforeCreate&&Vo(t.beforeCreate,e,"bc");const{data:l,computed:a,methods:s,watch:i,provide:u,inject:c,created:d,beforeMount:p,mounted:v,beforeUpdate:h,updated:m,activated:b,deactivated:y,beforeDestroy:x,beforeUnmount:C,destroyed:_,unmounted:S,render:k,renderTracked:E,renderTriggered:T,errorCaptured:A,serverPrefetch:O,expose:M,inheritAttrs:R,components:L,directives:P,filters:N}=t;if(c&&function(e,t){f(e)&&(e=Uo(e));for(const n in e){const o=e[n];let l;l=w(o)?"default"in o?mn(o.from||n,o.default,!0):mn(o.from||n):mn(o),_t(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(c,o),s)for(const r in s){const e=s[r];g(e)&&(o[r]=e.bind(n))}if(l){const t=l.call(n,n);w(t)&&(e.data=pt(t))}if($o=!0,a)for(const f in a){const e=a[f],t=g(e)?e.bind(n,n):g(e.get)?e.get.bind(n,n):r,l=!g(e)&&g(e.set)?e.set.bind(n):r,s=yr({get:t,set:l});Object.defineProperty(o,f,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(i)for(const r in i)Do(i[r],o,n,r);if(u){const e=g(u)?u.call(n):u;Reflect.ownKeys(e).forEach(t=>{hn(t,e[t])})}function I(e,t){f(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(d&&Vo(d,e,"c"),I(uo,p),I(co,v),I(po,h),I(fo,m),I(oo,b),I(lo,y),I(yo,A),I(bo,E),I(go,T),I(vo,C),I(ho,S),I(mo,O),f(M))if(M.length){const t=e.exposed||(e.exposed={});M.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===r&&(e.render=k),null!=R&&(e.inheritAttrs=R),L&&(e.components=L),P&&(e.directives=P),O&&Zn(e)}function Vo(e,t,n){Ut(f(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Do(e,t,n,o){let l=o.includes(".")?_n(n,o):()=>n[o];if(b(e)){const n=t[e];g(n)&&wn(l,n)}else if(g(e))wn(l,e.bind(n));else if(w(e))if(f(e))e.forEach(e=>Do(e,t,n,o));else{const o=g(e.handler)?e.handler.bind(n):t[e.handler];g(o)&&wn(l,o,e)}}function zo(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:l,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,s=r.get(t);let i;return s?i=s:l.length||n||o?(i={},l.length&&l.forEach(e=>Ho(i,e,a,!0)),Ho(i,t,a)):i=t,w(t)&&r.set(t,i),i}function Ho(e,t,n,o=!1){const{mixins:l,extends:r}=t;r&&Ho(e,r,n,!0),l&&l.forEach(t=>Ho(e,t,n,!0));for(const a in t)if(o&&"expose"===a);else{const o=Wo[a]||n&&n[a];e[a]=o?o(e[a],t[a]):t[a]}return e}const Wo={data:qo,props:Yo,emits:Yo,methods:Go,computed:Go,beforeCreate:Ko,created:Ko,beforeMount:Ko,mounted:Ko,beforeUpdate:Ko,updated:Ko,beforeDestroy:Ko,beforeUnmount:Ko,destroyed:Ko,unmounted:Ko,activated:Ko,deactivated:Ko,errorCaptured:Ko,serverPrefetch:Ko,components:Go,directives:Go,watch:function(e,t){if(!e)return t;if(!t)return e;const n=u(Object.create(null),e);for(const o in t)n[o]=Ko(e[o],t[o]);return n},provide:qo,inject:function(e,t){return Go(Uo(e),Uo(t))}};function qo(e,t){return t?e?function(){return u(g(e)?e.call(this,this):e,g(t)?t.call(this,this):t)}:t:e}function Uo(e){if(f(e)){const t={};for(let n=0;n(l.has(e)||(e&&g(e.install)?(l.add(e),e.install(s,...t)):g(e)&&(l.add(e),e(s,...t))),s),mixin:e=>(o.mixins.includes(e)||o.mixins.push(e),s),component:(e,t)=>t?(o.components[e]=t,s):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,s):o.directives[e],mount(l,r,i){if(!a){const r=s._ceVNode||Gl(t,n);return r.appContext=o,!0===i?i="svg":!1===i&&(i=void 0),e(r,l,i),a=!0,s._container=l,l.__vue_app__=s,gr(r.component)}},onUnmount(e){r.push(e)},unmount(){a&&(Ut(r,s._instance,16),e(null,s._container),delete s._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,s),runWithContext(e){const t=Qo;Qo=s;try{return e()}finally{Qo=t}}};return s}}let Qo=null;function el(e,t,...n){if(e.isUnmounted)return;const l=e.vnode.props||o;let r=n;const a=t.startsWith("update:"),s=a&&((e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${O(t)}Modifiers`]||e[`${R(t)}Modifiers`])(l,t.slice(7));let i;s&&(s.trim&&(r=n.map(e=>b(e)?e.trim():e)),s.number&&(r=n.map(F)));let u=l[i=P(t)]||l[i=P(O(t))];!u&&a&&(u=l[i=P(R(t))]),u&&Ut(u,e,6,r);const c=l[i+"Once"];if(c){if(e.emitted){if(e.emitted[i])return}else e.emitted={};e.emitted[i]=!0,Ut(c,e,6,r)}}const tl=new WeakMap;function nl(e,t,n=!1){const o=n?tl:t.emitsCache,l=o.get(e);if(void 0!==l)return l;const r=e.emits;let a={},s=!1;if(!g(e)){const o=e=>{const n=nl(e,t,!0);n&&(s=!0,u(a,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return r||s?(f(r)?r.forEach(e=>a[e]=null):u(a,r),w(e)&&o.set(e,a),a):(w(e)&&o.set(e,null),null)}function ol(e,t){return!(!e||!s(t))&&(t=t.slice(2).replace(/Once$/,""),p(e,t[0].toLowerCase()+t.slice(1))||p(e,R(t))||p(e,t))}function ll(e){const{type:t,vnode:n,proxy:o,withProxy:l,propsOptions:[r],slots:a,attrs:s,emit:u,render:c,renderCache:d,props:p,data:f,setupState:v,ctx:h,inheritAttrs:m}=e,g=dn(e);let b,y;try{if(4&n.shapeFlag){const e=l||o,t=e;b=Jl(c.call(t,e,d,p,v,f,h)),y=s}else{const e=t;b=Jl(e.length>1?e(p,{attrs:s,slots:a,emit:u}):e(p,null)),y=t.props?s:rl(s)}}catch(x){Il.length=0,Kt(x,e,1),b=Gl(Pl)}let w=b;if(y&&!1!==m){const e=Object.keys(y),{shapeFlag:t}=w;e.length&&7&t&&(r&&e.some(i)&&(y=al(y,r)),w=Yl(w,y,!1,!0))}return n.dirs&&(w=Yl(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&Gn(w,n.transition),b=w,dn(g),b}const rl=e=>{let t;for(const n in e)("class"===n||"style"===n||s(n))&&((t||(t={}))[n]=e[n]);return t},al=(e,t)=>{const n={};for(const o in e)i(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function sl(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let l=0;lObject.create(il),cl=e=>Object.getPrototypeOf(e)===il;function dl(e,t,n,l){const[r,a]=e.propsOptions;let s,i=!1;if(t)for(let o in t){if(E(o))continue;const u=t[o];let c;r&&p(r,c=O(o))?a&&a.includes(c)?(s||(s={}))[c]=u:n[c]=u:ol(e.emitsOptions,o)||o in l&&u===l[o]||(l[o]=u,i=!0)}if(a){const t=wt(n),l=s||o;for(let o=0;o{d=!0;const[n,o]=vl(e,t,!0);u(i,n),o&&c.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!d)return w(e)&&r.set(e,l),l;if(f(s))for(let l=0;l"_"===e||"_ctx"===e||"$stable"===e,gl=e=>f(e)?e.map(Jl):[Jl(e)],bl=(e,t,n)=>{if(t._n)return t;const o=pn((...e)=>gl(t(...e)),n);return o._c=!1,o},yl=(e,t,n)=>{const o=e._ctx;for(const l in e){if(ml(l))continue;const n=e[l];if(g(n))t[l]=bl(0,n,o);else if(null!=n){const e=gl(n);t[l]=()=>e}}},wl=(e,t)=>{const n=gl(t);e.slots.default=()=>n},xl=(e,t,n)=>{for(const o in t)!n&&ml(o)||(e[o]=t[o])},Cl=function(e,t){var n;t&&t.pendingBranch?f(e)?t.effects.push(...e):t.effects.push(e):(f(n=e)?Xt.push(...n):Zt&&-1===n.id?Zt.splice(Jt+1,0,n):1&n.flags||(Xt.push(n),n.flags|=1),on())};function _l(e){return function(e){j().__VUE__=!0;const{insert:t,remove:n,patchProp:a,createElement:s,createText:i,createComment:u,setText:c,setElementText:d,parentNode:f,nextSibling:v,setScopeId:h=r,insertStaticContent:m}=e,g=(e,t,n,o=null,l=null,r=null,a=void 0,s=null,i=!!t.dynamicChildren)=>{if(e===t)return;e&&!Wl(e,t)&&(o=J(e),K(e,l,r,!0),e=null),-2===t.patchFlag&&(i=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:d}=t;switch(u){case Ll:b(e,t,n,o);break;case Pl:y(e,t,n,o);break;case Nl:null==e&&w(t,n,o,a);break;case Rl:N(e,t,n,o,l,r,a,s,i);break;default:1&d?S(e,t,n,o,l,r,a,s,i):6&d?F(e,t,n,o,l,r,a,s,i):(64&d||128&d)&&u.process(e,t,n,o,l,r,a,s,i,te)}null!=c&&l?Qn(c,e&&e.ref,r,t||e,!t):null==c&&e&&null!=e.ref&&Qn(e.ref,null,r,e,!0)},b=(e,n,o,l)=>{if(null==e)t(n.el=i(n.children),o,l);else{const t=n.el=e.el;n.children!==e.children&&c(t,n.children)}},y=(e,n,o,l)=>{null==e?t(n.el=u(n.children||""),o,l):n.el=e.el},w=(e,t,n,o)=>{[e.el,e.anchor]=m(e.children,t,n,o,e.el,e.anchor)},C=({el:e,anchor:n},o,l)=>{let r;for(;e&&e!==n;)r=v(e),t(e,o,l),e=r;t(n,o,l)},_=({el:e,anchor:t})=>{let o;for(;e&&e!==t;)o=v(e),n(e),e=o;n(t)},S=(e,t,n,o,l,r,a,s,i)=>{if("svg"===t.type?a="svg":"math"===t.type&&(a="mathml"),null==e)k(t,n,o,l,r,a,s,i);else{const n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),M(e,t,l,r,a,s,i)}finally{n&&n._endPatch()}}},k=(e,n,o,l,r,i,u,c)=>{let p,f;const{props:v,shapeFlag:h,transition:m,dirs:g}=e;if(p=e.el=s(e.type,i,v&&v.is,v),8&h?d(p,e.children):16&h&&A(e.children,p,null,l,r,Sl(e,i),u,c),g&&vn(e,null,l,"created"),T(p,e,e.scopeId,u,l),v){for(const e in v)"value"===e||E(e)||a(p,e,null,v[e],i,l);"value"in v&&a(p,"value",null,v.value,i),(f=v.onVnodeBeforeMount)&&nr(f,l,e)}g&&vn(e,null,l,"beforeMount");const b=function(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}(r,m);b&&m.beforeEnter(p),t(p,n,o),((f=v&&v.onVnodeMounted)||b||g)&&Cl(()=>{f&&nr(f,l,e),b&&m.enter(p),g&&vn(e,null,l,"mounted")},r)},T=(e,t,n,o,l)=>{if(n&&h(e,n),o)for(let r=0;r{for(let u=i;u{const u=t.el=e.el;let{patchFlag:c,dynamicChildren:p,dirs:f}=t;c|=16&e.patchFlag;const v=e.props||o,h=t.props||o;let m;if(n&&kl(n,!1),(m=h.onVnodeBeforeUpdate)&&nr(m,n,t,e),f&&vn(t,e,n,"beforeUpdate"),n&&kl(n,!0),(v.innerHTML&&null==h.innerHTML||v.textContent&&null==h.textContent)&&d(u,""),p?L(e.dynamicChildren,p,u,n,l,Sl(t,r),s):i||H(e,t,u,null,n,l,Sl(t,r),s,!1),c>0){if(16&c)P(u,v,h,n,r);else if(2&c&&v.class!==h.class&&a(u,"class",null,h.class,r),4&c&&a(u,"style",v.style,h.style,r),8&c){const e=t.dynamicProps;for(let t=0;t{m&&nr(m,n,t,e),f&&vn(t,e,n,"updated")},l)},L=(e,t,n,o,l,r,a)=>{for(let s=0;s{if(t!==n){if(t!==o)for(const o in t)E(o)||o in n||a(e,o,t[o],null,r,l);for(const o in n){if(E(o))continue;const s=n[o],i=t[o];s!==i&&"value"!==o&&a(e,o,i,s,r,l)}"value"in n&&a(e,"value",t.value,n.value,r)}},N=(e,n,o,l,r,a,s,u,c)=>{const d=n.el=e?e.el:i(""),p=n.anchor=e?e.anchor:i("");let{patchFlag:f,dynamicChildren:v,slotScopeIds:h}=n;h&&(u=u?u.concat(h):h),null==e?(t(d,o,l),t(p,o,l),A(n.children||[],o,p,r,a,s,u,c)):f>0&&64&f&&v&&e.dynamicChildren&&e.dynamicChildren.length===v.length?(L(e.dynamicChildren,v,o,r,a,s,u),(null!=n.key||r&&n===r.subTree)&&El(e,n,!0)):H(e,n,o,p,r,a,s,u,c)},F=(e,t,n,o,l,r,a,s,i)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?l.ctx.activate(t,n,o,a,i):$(t,n,o,l,r,a,i):V(e,t,i)},$=(e,t,n,l,r,a,s)=>{const i=e.component=function(e,t,n){const l=e.type,r=(t?t.appContext:e.appContext)||or,a={uid:lr++,vnode:e,type:l,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ne(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vl(l,r),emitsOptions:nl(l,r),emit:null,emitted:null,propsDefaults:o,inheritAttrs:l.inheritAttrs,ctx:o,data:o,props:o,attrs:o,slots:o,refs:o,setupState:o,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=t?t.root:a,a.emit=el.bind(null,a),e.ce&&e.ce(a),a}(e,l,r);if(no(e)&&(i.ctx.renderer=te),function(e,t=!1,n=!1){t&&ir(t);const{props:o,children:l}=e.vnode,r=dr(e);(function(e,t,n,o=!1){const l={},r=ul();e.propsDefaults=Object.create(null),dl(e,t,l,r);for(const a in e.propsOptions[0])a in l||(l[a]=void 0);n?e.props=o?l:ft(l):e.type.props?e.props=l:e.props=r,e.attrs=r})(e,o,r,t),((e,t,n)=>{const o=e.slots=ul();if(32&e.vnode.shapeFlag){const e=t._;e?(xl(o,t,n),n&&B(o,"_",e,!0)):yl(t,o)}else t&&wl(e,t)})(e,l,n||t);r&&function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Po);const{setup:o}=n;if(o){xe();const n=e.setupContext=o.length>1?mr(e):null,l=ur(e),r=qt(o,e,0,[e.props,n]),a=x(r);if(Ce(),l(),!a&&!e.sp||to(e)||Zn(e),a){if(r.then(cr,cr),t)return r.then(t=>{fr(e,t)}).catch(t=>{Kt(t,e,0)});e.asyncDep=r}else fr(e,r)}else vr(e)}(e,t);t&&ir(!1)}(i,!1,s),i.asyncDep){if(r&&r.registerDep(i,D,s),!e.el){const o=i.subTree=Gl(Pl);y(null,o,t,n),e.placeholder=o.el}}else D(i,e,t,n,r,a,s)},V=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:l,component:r}=e,{props:a,children:s,patchFlag:i}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&i>=0))return!(!l&&!s||s&&s.$stable)||o!==a&&(o?!a||sl(o,a,u):!!a);if(1024&i)return!0;if(16&i)return o?sl(o,a,u):!!a;if(8&i){const e=t.dynamicProps;for(let t=0;t{const s=()=>{if(e.isMounted){let{next:t,bu:n,u:o,parent:i,vnode:u}=e;{const n=Tl(e);if(n)return t&&(t.el=u.el,z(e,t,a)),void n.asyncDep.then(()=>{e.isUnmounted||s()})}let c,d=t;kl(e,!1),t?(t.el=u.el,z(e,t,a)):t=u,n&&I(n),(c=t.props&&t.props.onVnodeBeforeUpdate)&&nr(c,i,t,u),kl(e,!0);const p=ll(e),v=e.subTree;e.subTree=p,g(v,p,f(v.el),J(v),e,l,r),t.el=p.el,null===d&&function({vnode:e,parent:t},n){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.el=e.el),o!==e)break;(e=t.vnode).el=n,t=t.parent}}(e,p.el),o&&Cl(o,l),(c=t.props&&t.props.onVnodeUpdated)&&Cl(()=>nr(c,i,t,u),l)}else{let a;const{el:s,props:i}=t,{bm:u,m:c,parent:d,root:p,type:f}=e,v=to(t);kl(e,!1),u&&I(u),!v&&(a=i&&i.onVnodeBeforeMount)&&nr(a,d,t),kl(e,!0);{p.ce&&!1!==p.ce._def.shadowRoot&&p.ce._injectChildStyle(f);const a=e.subTree=ll(e);g(null,a,n,o,e,l,r),t.el=a.el}if(c&&Cl(c,l),!v&&(a=i&&i.onVnodeMounted)){const e=t;Cl(()=>nr(a,d,e),l)}(256&t.shapeFlag||d&&to(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&Cl(e.a,l),e.isMounted=!0,t=n=o=null}};e.scope.on();const i=e.effect=new ae(s);e.scope.off();const u=e.update=i.run.bind(i),c=e.job=i.runIfDirty.bind(i);c.i=e,c.id=e.uid,i.scheduler=()=>nn(c),kl(e,!0),u()},z=(e,t,n)=>{t.component=e;const l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:l,attrs:r,vnode:{patchFlag:a}}=e,s=wt(l),[i]=e.propsOptions;let u=!1;if(!(o||a>0)||16&a){let o;dl(e,t,l,r)&&(u=!0);for(const r in s)t&&(p(t,r)||(o=R(r))!==r&&p(t,o))||(i?!n||void 0===n[r]&&void 0===n[o]||(l[r]=pl(i,s,r,void 0,e,!0)):delete l[r]);if(r!==s)for(const e in r)t&&p(t,e)||(delete r[e],u=!0)}else if(8&a){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:l,slots:r}=e;let a=!0,s=o;if(32&l.shapeFlag){const e=t._;e?n&&1===e?a=!1:xl(r,t,n):(a=!t.$stable,yl(t,r)),s=t}else t&&(wl(e,t),s={default:1});if(a)for(const o in r)ml(o)||null!=s[o]||delete r[o]})(e,t.children,n),xe(),ln(e),Ce()},H=(e,t,n,o,l,r,a,s,i=!1)=>{const u=e&&e.children,c=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:v}=t;if(f>0){if(128&f)return void q(u,p,n,o,l,r,a,s,i);if(256&f)return void W(u,p,n,o,l,r,a,s,i)}8&v?(16&c&&Z(u,l,r),p!==u&&d(n,p)):16&c?16&v?q(u,p,n,o,l,r,a,s,i):Z(u,l,r,!0):(8&c&&d(n,""),16&v&&A(p,n,o,l,r,a,s,i))},W=(e,t,n,o,r,a,s,i,u)=>{t=t||l;const c=(e=e||l).length,d=t.length,p=Math.min(c,d);let f;for(f=0;fd?Z(e,r,a,!0,!1,p):A(t,n,o,r,a,s,i,u,p)},q=(e,t,n,o,r,a,s,i,u)=>{let c=0;const d=t.length;let p=e.length-1,f=d-1;for(;c<=p&&c<=f;){const o=e[c],l=t[c]=u?Ql(t[c]):Jl(t[c]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),c++}for(;c<=p&&c<=f;){const o=e[p],l=t[f]=u?Ql(t[f]):Jl(t[f]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),p--,f--}if(c>p){if(c<=f){const e=f+1,l=ef)for(;c<=p;)K(e[c],r,a,!0),c++;else{const v=c,h=c,m=new Map;for(c=h;c<=f;c++){const e=t[c]=u?Ql(t[c]):Jl(t[c]);null!=e.key&&m.set(e.key,c)}let b,y=0;const w=f-h+1;let x=!1,C=0;const _=new Array(w);for(c=0;c=w){K(o,r,a,!0);continue}let l;if(null!=o.key)l=m.get(o.key);else for(b=h;b<=f;b++)if(0===_[b-h]&&Wl(o,t[b])){l=b;break}void 0===l?K(o,r,a,!0):(_[l-h]=c+1,l>=C?C=l:x=!0,g(o,t[l],n,null,r,a,s,i,u),y++)}const S=x?function(e){const t=e.slice(),n=[0];let o,l,r,a,s;const i=e.length;for(o=0;o>1,e[n[s]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,a=n[r-1];r-- >0;)n[r]=a,a=t[a];return n}(_):l;for(b=S.length-1,c=w-1;c>=0;c--){const e=h+c,l=t[e],p=t[e+1],f=e+1{const{el:s,type:i,transition:u,children:c,shapeFlag:d}=e;if(6&d)U(e.component.subTree,o,l,r);else if(128&d)e.suspense.move(o,l,r);else if(64&d)i.move(e,o,l,te);else if(i!==Rl)if(i!==Nl)if(2!==r&&1&d&&u)if(0===r)u.beforeEnter(s),t(s,o,l),Cl(()=>u.enter(s),a);else{const{leave:r,delayLeave:a,afterLeave:i}=u,c=()=>{e.ctx.isUnmounted?n(s):t(s,o,l)},d=()=>{s._isLeaving&&s[Bn](!0),r(s,()=>{c(),i&&i()})};a?a(s,c,d):d()}else t(s,o,l);else C(e,o,l);else{t(s,o,l);for(let e=0;e{const{type:r,props:a,ref:s,children:i,dynamicChildren:u,shapeFlag:c,patchFlag:d,dirs:p,cacheIndex:f}=e;if(-2===d&&(l=!1),null!=s&&(xe(),Qn(s,null,n,e,!0),Ce()),null!=f&&(t.renderCache[f]=void 0),256&c)return void t.ctx.deactivate(e);const v=1&c&&p,h=!to(e);let m;if(h&&(m=a&&a.onVnodeBeforeUnmount)&&nr(m,t,e),6&c)X(e.component,n,o);else{if(128&c)return void e.suspense.unmount(n,o);v&&vn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,te,o):u&&!u.hasOnce&&(r!==Rl||d>0&&64&d)?Z(u,t,n,!1,!0):(r===Rl&&384&d||!l&&16&c)&&Z(i,t,n),o&&G(e)}(h&&(m=a&&a.onVnodeUnmounted)||v)&&Cl(()=>{m&&nr(m,t,e),v&&vn(e,null,t,"unmounted")},n)},G=e=>{const{type:t,el:o,anchor:l,transition:r}=e;if(t===Rl)return void Y(o,l);if(t===Nl)return void _(e);const a=()=>{n(o),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:n}=r,l=()=>t(o,a);n?n(e.el,a,l):l()}else a()},Y=(e,t)=>{let o;for(;e!==t;)o=v(e),n(e),e=o;n(t)},X=(e,t,n)=>{const{bum:o,scope:l,job:r,subTree:a,um:s,m:i,a:u}=e;Al(i),Al(u),o&&I(o),l.stop(),r&&(r.flags|=8,K(a,e,t,n)),s&&Cl(s,t),Cl(()=>{e.isUnmounted=!0},t)},Z=(e,t,n,o=!1,l=!1,r=0)=>{for(let a=r;a{if(6&e.shapeFlag)return J(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();const t=v(e.anchor||e.el),n=t&&t[Sn];return n?v(n):t};let Q=!1;const ee=(e,t,n)=>{let o;null==e?t._vnode&&(K(t._vnode,null,null,!0),o=t._vnode.component):g(t._vnode||null,e,t,null,null,null,n),t._vnode=e,Q||(Q=!0,ln(o),rn(),Q=!1)},te={p:g,um:K,m:U,r:G,mt:$,mc:A,pc:H,pbc:L,n:J,o:e};let oe;return{render:ee,hydrate:oe,createApp:Jo(ee)}}(e)}function Sl({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function kl({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function El(e,t,n=!1){const o=e.children,l=t.children;if(f(o)&&f(l))for(let r=0;re.__isSuspense,Rl=Symbol.for("v-fgt"),Ll=Symbol.for("v-txt"),Pl=Symbol.for("v-cmt"),Nl=Symbol.for("v-stc"),Il=[];let Bl=null;function Fl(e=!1){Il.push(Bl=e?null:[])}let $l=1;function jl(e,t=!1){$l+=e,e<0&&Bl&&t&&(Bl.hasOnce=!0)}function Vl(e){return e.dynamicChildren=$l>0?Bl||l:null,Il.pop(),Bl=Il[Il.length-1]||null,$l>0&&Bl&&Bl.push(e),e}function Dl(e,t,n,o,l,r){return Vl(Kl(e,t,n,o,l,r,!0))}function zl(e,t,n,o,l){return Vl(Gl(e,t,n,o,l,!0))}function Hl(e){return!!e&&!0===e.__v_isVNode}function Wl(e,t){return e.type===t.type&&e.key===t.key}const ql=({key:e})=>null!=e?e:null,Ul=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?b(e)||_t(e)||g(e)?{i:un,r:e,k:t,f:!!n}:e:null);function Kl(e,t=null,n=null,o=0,l=null,r=(e===Rl?0:1),a=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ql(t),ref:t&&Ul(t),scopeId:cn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:un};return s?(er(i,n),128&r&&e.normalize(i)):n&&(i.shapeFlag|=b(n)?8:16),$l>0&&!a&&Bl&&(i.patchFlag>0||6&r)&&32!==i.patchFlag&&Bl.push(i),i}const Gl=function(e,t=null,n=null,o=0,l=null,r=!1){if(e&&e!==Co||(e=Pl),Hl(e)){const o=Yl(e,t,!0);return n&&er(o,n),$l>0&&!r&&Bl&&(6&o.shapeFlag?Bl[Bl.indexOf(e)]=o:Bl.push(o)),o.patchFlag=-2,o}var a;if(g(a=e)&&"__vccOpts"in a&&(e=e.__vccOpts),t){t=function(e){return e?yt(e)||cl(e)?u({},e):e:null}(t);let{class:e,style:n}=t;e&&!b(e)&&(t.class=q(e)),w(n)&&(yt(n)&&!f(n)&&(n=u({},n)),t.style=V(n))}const s=b(e)?1:Ml(e)?128:kn(e)?64:w(e)?4:g(e)?2:0;return Kl(e,t,n,o,l,s,r,!0)};function Yl(e,t,n=!1,o=!1){const{props:l,ref:r,patchFlag:a,children:s,transition:i}=e,u=t?tr(l||{},t):l,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ql(u),ref:t&&t.ref?n&&r?f(r)?r.concat(Ul(t)):[r,Ul(t)]:Ul(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Rl?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Yl(e.ssContent),ssFallback:e.ssFallback&&Yl(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&o&&Gn(c,i.clone(c)),c}function Xl(e=" ",t=0){return Gl(Ll,null,e,t)}function Zl(e="",t=!1){return t?(Fl(),zl(Pl,null,e)):Gl(Pl,null,e)}function Jl(e){return null==e||"boolean"==typeof e?Gl(Pl):f(e)?Gl(Rl,null,e.slice()):Hl(e)?Ql(e):Gl(Ll,null,String(e))}function Ql(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Yl(e)}function er(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(f(t))n=16;else if("object"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),er(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||cl(t)?3===o&&un&&(1===un.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=un}}else g(t)?(t={default:t,_ctx:un},n=32):(t=String(t),64&o?(n=16,t=[Xl(t)]):n=8);e.children=t,e.shapeFlag|=n}function tr(...e){const t={};for(let n=0;nrr||un;let sr,ir;{const e=j(),t=(t,n)=>{let o;return(o=e[t])||(o=e[t]=[]),o.push(n),e=>{o.length>1?o.forEach(t=>t(e)):o[0](e)}};sr=t("__VUE_INSTANCE_SETTERS__",e=>rr=e),ir=t("__VUE_SSR_SETTERS__",e=>pr=e)}const ur=e=>{const t=rr;return sr(e),e.scope.on(),()=>{e.scope.off(),sr(t)}},cr=()=>{rr&&rr.scope.off(),sr(null)};function dr(e){return 4&e.vnode.shapeFlag}let pr=!1;function fr(e,t,n){g(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:w(t)&&(e.setupState=Lt(t)),vr(e)}function vr(e,t,n){const o=e.type;e.render||(e.render=o.render||r);{const t=ur(e);xe();try{jo(e)}finally{Ce(),t()}}}const hr={get:(e,t)=>(Le(e,0,""),e[t])};function mr(e){const t=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,hr),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Lt((t=e.exposed,!p(t,"__v_skip")&&Object.isExtensible(t)&&B(t,"__v_skip",!0),t)),{get:(t,n)=>n in t?t[n]:n in Ro?Ro[n](e):void 0,has:(e,t)=>t in e||t in Ro})):e.proxy;var t}function br(e,t=!0){return g(e)?e.displayName||e.name:e.name||t&&e.__name}const yr=(e,t)=>{const n=function(e,t,n=!1){let o,l;return g(e)?o=e:(o=e.get,l=e.set),new jt(o,l,n)}(e,0,pr);return n};function wr(e,t,n){try{jl(-1);const o=arguments.length;return 2===o?w(t)&&!f(t)?Hl(t)?Gl(e,null,[t]):Gl(e,t):Gl(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Hl(n)&&(n=[n]),Gl(e,t,n))}finally{jl(1)}}const xr="3.5.26",Cr=r;let _r;const Sr="undefined"!=typeof window&&window.trustedTypes;if(Sr)try{_r=Sr.createPolicy("vue",{createHTML:e=>e})}catch(tT){}const kr=_r?e=>_r.createHTML(e):e=>e,Er="undefined"!=typeof document?document:null,Tr=Er&&Er.createElement("template"),Ar={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const l="svg"===t?Er.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?Er.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?Er.createElement(e,{is:n}):Er.createElement(e);return"select"===e&&o&&null!=o.multiple&&l.setAttribute("multiple",o.multiple),l},createText:e=>Er.createTextNode(e),createComment:e=>Er.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Er.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,l,r){const a=n?n.previousSibling:t.lastChild;if(l&&(l===r||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),l!==r&&(l=l.nextSibling););else{Tr.innerHTML=kr("svg"===o?`${e}`:"mathml"===o?`${e}`:e);const l=Tr.content;if("svg"===o||"mathml"===o){const e=l.firstChild;for(;e.firstChild;)l.appendChild(e.firstChild);l.removeChild(e)}t.insertBefore(l,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Or="transition",Mr="animation",Rr=Symbol("_vtc"),Lr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Pr=u({},Vn,Lr),Nr=(e=>(e.displayName="Transition",e.props=Pr,e))((e,{slots:t})=>wr(Hn,Fr(e),t)),Ir=(e,t=[])=>{f(e)?e.forEach(e=>e(...t)):e&&e(...t)},Br=e=>!!e&&(f(e)?e.some(e=>e.length>1):e.length>1);function Fr(e){const t={};for(const u in e)u in Lr||(t[u]=e[u]);if(!1===e.css)return t;const{name:n="v",type:o,duration:l,enterFromClass:r=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:i=r,appearActiveClass:c=a,appearToClass:d=s,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(w(e))return[$r(e.enter),$r(e.leave)];{const t=$r(e);return[t,t]}}(l),m=h&&h[0],g=h&&h[1],{onBeforeEnter:b,onEnter:y,onEnterCancelled:x,onLeave:C,onLeaveCancelled:_,onBeforeAppear:S=b,onAppear:k=y,onAppearCancelled:E=x}=t,T=(e,t,n,o)=>{e._enterCancelled=o,Vr(e,t?d:s),Vr(e,t?c:a),n&&n()},A=(e,t)=>{e._isLeaving=!1,Vr(e,p),Vr(e,v),Vr(e,f),t&&t()},O=e=>(t,n)=>{const l=e?k:y,a=()=>T(t,e,n);Ir(l,[t,a]),Dr(()=>{Vr(t,e?i:r),jr(t,e?d:s),Br(l)||Hr(t,o,m,a)})};return u(t,{onBeforeEnter(e){Ir(b,[e]),jr(e,r),jr(e,a)},onBeforeAppear(e){Ir(S,[e]),jr(e,i),jr(e,c)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>A(e,t);jr(e,p),e._enterCancelled?(jr(e,f),Kr(e)):(Kr(e),jr(e,f)),Dr(()=>{e._isLeaving&&(Vr(e,p),jr(e,v),Br(C)||Hr(e,o,g,n))}),Ir(C,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),Ir(x,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),Ir(E,[e])},onLeaveCancelled(e){A(e),Ir(_,[e])}})}function $r(e){const t=(e=>{const t=b(e)?Number(e):NaN;return isNaN(t)?e:t})(e);return t}function jr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Rr]||(e[Rr]=new Set)).add(t)}function Vr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));const n=e[Rr];n&&(n.delete(t),n.size||(e[Rr]=void 0))}function Dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let zr=0;function Hr(e,t,n,o){const l=e._endId=++zr,r=()=>{l===e._endId&&o()};if(null!=n)return setTimeout(r,n);const{type:a,timeout:s,propCount:i}=Wr(e,t);if(!a)return o();const u=a+"end";let c=0;const d=()=>{e.removeEventListener(u,p),r()},p=t=>{t.target===e&&++c>=i&&d()};setTimeout(()=>{c(n[e]||"").split(", "),l=o(`${Or}Delay`),r=o(`${Or}Duration`),a=qr(l,r),s=o(`${Mr}Delay`),i=o(`${Mr}Duration`),u=qr(s,i);let c=null,d=0,p=0;return t===Or?a>0&&(c=Or,d=a,p=r.length):t===Mr?u>0&&(c=Mr,d=u,p=i.length):(d=Math.max(a,u),c=d>0?a>u?Or:Mr:null,p=c?c===Or?r.length:i.length:0),{type:c,timeout:d,propCount:p,hasTransform:c===Or&&/\b(?:transform|all)(?:,|$)/.test(o(`${Or}Property`).toString())}}function qr(e,t){for(;e.lengthUr(t)+Ur(e[n])))}function Ur(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function Kr(e){return(e?e.ownerDocument:document).body.offsetHeight}const Gr=Symbol("_vod"),Yr=Symbol("_vsh"),Xr={name:"show",beforeMount(e,{value:t},{transition:n}){e[Gr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Zr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Zr(e,!0),o.enter(e)):o.leave(e,()=>{Zr(e,!1)}):Zr(e,t))},beforeUnmount(e,{value:t}){Zr(e,t)}};function Zr(e,t){e.style.display=t?e[Gr]:"none",e[Yr]=!t}const Jr=Symbol(""),Qr=/(?:^|;)\s*display\s*:/,ea=/\s*!important$/;function ta(e,t,n){if(f(n))n.forEach(n=>ta(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=oa[t];if(n)return n;let o=O(t);if("filter"!==o&&o in e)return oa[t]=o;o=L(o);for(let l=0;l{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();Ut(function(e,t){if(f(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=da||(pa.then(()=>da=0),da=Date.now()),n}(o,l);sa(e,n,a,s)}else a&&(function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,a,s),r[t]=void 0)}}const ca=/(?:Once|Passive|Capture)$/;let da=0;const pa=Promise.resolve(),fa=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,va=new WeakMap,ha=new WeakMap,ma=Symbol("_moveCb"),ga=Symbol("_enterCb"),ba=(e=>(delete e.props.mode,e))({name:"TransitionGroup",props:u({},Pr,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ar(),o=$n();let l,r;return fo(()=>{if(!l.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const o=e.cloneNode(),l=e[Rr];l&&l.forEach(e=>{e.split(/\s+/).forEach(e=>e&&o.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&o.classList.add(e)),o.style.display="none";const r=1===t.nodeType?t:t.parentNode;r.appendChild(o);const{hasTransform:a}=Wr(o);return r.removeChild(o),a}(l[0].el,n.vnode.el,t))return void(l=[]);l.forEach(ya),l.forEach(wa);const o=l.filter(xa);Kr(n.vnode.el),o.forEach(e=>{const n=e.el,o=n.style;jr(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const l=n[ma]=e=>{e&&e.target!==n||e&&!e.propertyName.endsWith("transform")||(n.removeEventListener("transitionend",l),n[ma]=null,Vr(n,t))};n.addEventListener("transitionend",l)}),l=[]}),()=>{const a=wt(e),s=Fr(a);let i=a.tag||Rl;if(l=[],r)for(let e=0;e{const t=e.props["onUpdate:modelValue"]||!1;return f(t)?e=>I(t,e):t},_a=Symbol("_assign"),Sa={deep:!0,created(e,t,n){e[_a]=Ca(n),sa(e,"change",()=>{const t=e._modelValue,n=Ta(e),o=e.checked,l=e[_a];if(f(t)){const e=Y(t,n),r=-1!==e;if(o&&!r)l(t.concat(n));else if(!o&&r){const n=[...t];n.splice(e,1),l(n)}}else if(h(t)){const e=new Set(t);o?e.add(n):e.delete(n),l(e)}else l(Aa(e,o))})},mounted:ka,beforeUpdate(e,t,n){e[_a]=Ca(n),ka(e,t,n)}};function ka(e,{value:t,oldValue:n},o){let l;if(e._modelValue=t,f(t))l=Y(t,o.props.value)>-1;else if(h(t))l=t.has(o.props.value);else{if(t===n)return;l=G(t,Aa(e,!0))}e.checked!==l&&(e.checked=l)}const Ea={created(e,{value:t},n){e.checked=G(t,n.props.value),e[_a]=Ca(n),sa(e,"change",()=>{e[_a](Ta(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[_a]=Ca(o),t!==n&&(e.checked=G(t,o.props.value))}};function Ta(e){return"_value"in e?e._value:e.value}function Aa(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Oa=["ctrl","shift","alt","meta"],Ma={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Oa.some(n=>e[`${n}Key`]&&!t.includes(n))},Ra=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(n,...o)=>{for(let e=0;e{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=n=>{if(!("key"in n))return;const o=R(n.key);return t.some(e=>e===o||La[e]===o)?e(n):void 0})},Na=u({patchProp:(e,t,n,o,l,r)=>{const a="svg"===l;"class"===t?function(e,t,n){const o=e[Rr];o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,a):"style"===t?function(e,t,n){const o=e.style,l=b(n);let r=!1;if(n&&!l){if(t)if(b(t))for(const e of t.split(";")){const t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&ta(o,t,"")}else for(const e in t)null==n[e]&&ta(o,e,"");for(const e in n)"display"===e&&(r=!0),ta(o,e,n[e])}else if(l){if(t!==n){const e=o[Jr];e&&(n+=";"+e),o.cssText=n,r=Qr.test(n)}}else t&&e.removeAttribute("style");Gr in e&&(e[Gr]=r?o.display:"",e[Yr]&&(o.display="none"))}(e,n,o):s(t)?i(t)||ua(e,t,0,o,r):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&fa(t)&&g(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t)return!1;if("sandbox"===t&&"IFRAME"===e.tagName)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!fa(t)||!b(n))&&t in e}(e,t,o,a))?(aa(e,t,o),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ra(e,t,o,a,0,"value"!==t)):!e._isVueCE||!/[A-Z]/.test(t)&&b(o)?("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),ra(e,t,o,a)):aa(e,O(t),o,0,t)}},Ar);let Ia;function Ba(){return Ia||(Ia=_l(Na))}const Fa=(...e)=>{Ba().render(...e)},$a=(...e)=>{const t=Ba().createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){return b(e)?document.querySelector(e):e}(e);if(!o)return;const l=t._component;g(l)||l.render||l.template||(l.template=o.innerHTML),1===o.nodeType&&(o.textContent="");const r=n(o,!1,function(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t},ja=Symbol(),Va="el",Da=(e,t,n,o,l)=>{let r=`${e}-${t}`;return n&&(r+=`-${n}`),o&&(r+=`__${o}`),l&&(r+=`--${l}`),r},za=Symbol("namespaceContextKey"),Ha=e=>{const t=e||(ar()?mn(za,St(Va)):St(Va));return yr(()=>Ot(t)||Va)},Wa=(e,t)=>{const n=Ha(t);return{namespace:n,b:(t="")=>Da(n.value,e,t,"",""),e:t=>t?Da(n.value,e,"",t,""):"",m:t=>t?Da(n.value,e,"","",t):"",be:(t,o)=>t&&o?Da(n.value,e,t,o,""):"",em:(t,o)=>t&&o?Da(n.value,e,"",t,o):"",bm:(t,o)=>t&&o?Da(n.value,e,t,"",o):"",bem:(t,o,l)=>t&&o&&l?Da(n.value,e,t,o,l):"",is:(e,...t)=>{const n=!(t.length>=1)||t[0];return e&&n?`is-${e}`:""},cssVar:e=>{const t={};for(const o in e)e[o]&&(t[`--${n.value}-${o}`]=e[o]);return t},cssVarName:e=>`--${n.value}-${e}`,cssVarBlock:t=>{const o={};for(const l in t)t[l]&&(o[`--${n.value}-${e}-${l}`]=t[l]);return o},cssVarBlockName:t=>`--${n.value}-${e}-${t}`}};var qa="object"==typeof global&&global&&global.Object===Object&&global,Ua="object"==typeof self&&self&&self.Object===Object&&self,Ka=qa||Ua||Function("return this")(),Ga=Ka.Symbol,Ya=Object.prototype,Xa=Ya.hasOwnProperty,Za=Ya.toString,Ja=Ga?Ga.toStringTag:void 0,Qa=Object.prototype.toString,es=Ga?Ga.toStringTag:void 0;function ts(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":es&&es in Object(e)?function(e){var t=Xa.call(e,Ja),n=e[Ja];try{e[Ja]=void 0;var o=!0}catch(tT){}var l=Za.call(e);return o&&(t?e[Ja]=n:delete e[Ja]),l}(e):function(e){return Qa.call(e)}(e)}function ns(e){return null!=e&&"object"==typeof e}function os(e){return"symbol"==typeof e||ns(e)&&"[object Symbol]"==ts(e)}function ls(e,t){for(var n=-1,o=null==e?0:e.length,l=Array(o);++n0){if(++$s>=800)return arguments[0]}else $s=0;return Fs.apply(void 0,arguments)}),Ws=/^(?:0|[1-9]\d*)$/;function qs(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Ws.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function ei(e){return null!=e&&Qs(e.length)&&!ys(e)}var ti=Object.prototype;function ni(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ti)}function oi(e){return ns(e)&&"[object Arguments]"==ts(e)}var li=Object.prototype,ri=li.hasOwnProperty,ai=li.propertyIsEnumerable,si=oi(function(){return arguments}())?oi:function(e){return ns(e)&&ri.call(e,"callee")&&!ai.call(e,"callee")},ii="object"==typeof e&&e&&!e.nodeType&&e,ui=ii&&"object"==typeof t&&t&&!t.nodeType&&t,ci=ui&&ui.exports===ii?Ka.Buffer:void 0,di=(ci?ci.isBuffer:void 0)||function(){return!1},pi={};function fi(e){return function(t){return e(t)}}pi["[object Float32Array]"]=pi["[object Float64Array]"]=pi["[object Int8Array]"]=pi["[object Int16Array]"]=pi["[object Int32Array]"]=pi["[object Uint8Array]"]=pi["[object Uint8ClampedArray]"]=pi["[object Uint16Array]"]=pi["[object Uint32Array]"]=!0,pi["[object Arguments]"]=pi["[object Array]"]=pi["[object ArrayBuffer]"]=pi["[object Boolean]"]=pi["[object DataView]"]=pi["[object Date]"]=pi["[object Error]"]=pi["[object Function]"]=pi["[object Map]"]=pi["[object Number]"]=pi["[object Object]"]=pi["[object RegExp]"]=pi["[object Set]"]=pi["[object String]"]=pi["[object WeakMap]"]=!1;var vi="object"==typeof e&&e&&!e.nodeType&&e,hi=vi&&"object"==typeof t&&t&&!t.nodeType&&t,mi=hi&&hi.exports===vi&&qa.process,gi=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||mi&&mi.binding&&mi.binding("util")}catch(tT){}}(),bi=gi&&gi.isTypedArray,yi=bi?fi(bi):function(e){return ns(e)&&Qs(e.length)&&!!pi[ts(e)]},wi=Object.prototype.hasOwnProperty;function xi(e,t){var n=rs(e),o=!n&&si(e),l=!n&&!o&&di(e),r=!n&&!o&&!l&&yi(e),a=n||o||l||r,s=a?function(e,t){for(var n=-1,o=Array(e);++n-1},$i.prototype.set=function(e,t){var n=this.__data__,o=Bi(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this};var ji=Ls(Ka,"Map");function Vi(e,t){var n,o,l=e.__data__;return("string"==(o=typeof(n=t))||"number"==o||"symbol"==o||"boolean"==o?"__proto__"!==n:null===n)?l["string"==typeof t?"string":"hash"]:l.map}function Di(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var u=r.get(e),c=r.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&n?new oc:void 0;for(r.set(e,t),r.set(t,e);++d=t||n<0||d&&e-u>=r}function h(){var e=Tc();if(v(e))return m(e);s=setTimeout(h,function(e){var n=t-(e-i);return d?Oc(n,r-(e-u)):n}(e))}function m(e){return s=void 0,p&&o?f(e):(o=l=void 0,a)}function g(){var e=Tc(),n=v(e);if(o=arguments,l=this,i=e,n){if(void 0===s)return function(e){return u=e,s=setTimeout(h,t),c?f(e):a}(i);if(d)return clearTimeout(s),s=setTimeout(h,t),f(i)}return void 0===s&&(s=setTimeout(h,t)),a}return t=gs(t)||0,ps(n)&&(c=!!n.leading,r=(d="maxWait"in n)?Ac(gs(n.maxWait)||0,t):r,p="trailing"in n?!!n.trailing:p),g.cancel=function(){void 0!==s&&clearTimeout(s),u=0,o=i=l=s=void 0},g.flush=function(){return void 0===s?a:m(Tc())},g}function Rc(e,t,n){(void 0!==n&&!Ks(e[t],n)||void 0===n&&!(t in e))&&Us(e,t,n)}function Lc(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function Pc(e,t,n,o,l,r,a){var s=Lc(e,n),i=Lc(t,n),u=a.get(i);if(u)Rc(e,n,u);else{var c,d=r?r(s,i,n+"",e,t,a):void 0,p=void 0===d;if(p){var f=rs(i),v=!f&&di(i),h=!f&&!v&&yi(i);d=i,f||v||h?rs(s)?d=s:ns(c=s)&&ei(c)?d=Bs(s):v?(p=!1,d=hu(i,!0)):h?(p=!1,d=Wu(i,!0)):d=[]:iu(i)||si(i)?(d=s,si(s)?d=function(e){return Xs(e,Ai(e))}(s):ps(s)&&!ys(s)||(d=Uu(i))):p=!1}p&&(a.set(i,d),l(d,i,o,r,a),a.delete(i)),Rc(e,n,d)}}function Nc(e,t,n,o,l){e!==t&&kc(t,function(r,a){if(l||(l=new cu),ps(r))Pc(e,t,a,n,Nc,o,l);else{var s=o?o(Lc(e,a),r,a+"",e,t,l):void 0;void 0===s&&(s=r),Rc(e,a,s)}},Ai)}function Ic(e,t){var n=-1,o=ei(e)?Array(e.length):[];return Ec(e,function(e,l,r){o[++n]=t(e,l,r)}),o}function Bc(e,t){return Qi(function(e,t){return(rs(e)?ls:Ic)(e,_c(t))}(e,t))}function Fc(e){for(var t=-1,n=null==e?0:e.length,o={};++tl?0:l+t),(n=n>l?l:n)<0&&(n+=l),l=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(l);++o1?t[o-1]:void 0,r=o>2?t[2]:void 0;for(l=zc.length>3&&"function"==typeof l?(o--,l):void 0,r&&function(e,t,n){if(!ps(n))return!1;var o=typeof t;return!!("number"==o?ei(n)&&qs(t,n.length):"string"==o&&t in n)&&Ks(n[t],e)}(t[0],t[1],r)&&(l=o<3?void 0:l,o=1),e=Object(e);++n1),t}),Xs(e,_u(e),n),o&&(n=tc(n,7,qc));for(var l=t.length;l--;)Wc(n,t[l]);return n});function Kc(e,t,n,o){if(!ps(e))return e;for(var l=-1,r=(t=Ui(t,e)).length,a=r-1,s=e;null!=s&&++lvoid 0===e,Zc=e=>"boolean"==typeof e,Jc=e=>"number"==typeof e,Qc=e=>"undefined"!=typeof Element&&e instanceof Element,ed=e=>Vc(e);function td(e,t){const n=kt();return yn(()=>{n.value=e()},{...t,flush:"sync"}),vt(n)}function nd(e){return!!oe()&&(le(e),!0)}function od(e){return"function"==typeof e?e():Ot(e)}const ld="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const rd=Object.prototype.toString,ad=()=>{},sd=id();function id(){var e,t;return ld&&(null==(e=null==window?void 0:window.navigator)?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||(null==(t=null==window?void 0:window.navigator)?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(null==window?void 0:window.navigator.userAgent))}function ud(e,t=200,n={}){return function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(function(e,t={}){let n,o,l=ad;const r=e=>{clearTimeout(e),l(),l=ad};return a=>{const s=od(e),i=od(t.maxWait);return n&&r(n),s<=0||void 0!==i&&i<=0?(o&&(r(o),o=null),Promise.resolve(a())):new Promise((e,u)=>{l=t.rejectOnCancel?u:e,i&&!o&&(o=setTimeout(()=>{n&&r(n),o=null,e(a())},i)),n=setTimeout(()=>{o&&r(o),o=null,e(a())},s)})}}(t,n),e)}function cd(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function dd(e,t,n={}){const{immediate:o=!0}=n,l=St(!1);let r=null;function a(){r&&(clearTimeout(r),r=null)}function s(){l.value=!1,a()}function i(...n){a(),l.value=!0,r=setTimeout(()=>{l.value=!1,r=null,e(...n)},od(t))}return o&&(l.value=!0,ld&&i()),nd(s),{isPending:vt(l),start:i,stop:s}}function pd(e){var t;const n=od(e);return null!=(t=null==n?void 0:n.$el)?t:n}const fd=ld?window:void 0,vd=ld?window.document:void 0;function hd(...e){let t,n,o,l;if("string"==typeof e[0]||Array.isArray(e[0])?([n,o,l]=e,t=fd):[t,n,o,l]=e,!t)return ad;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const r=[],a=()=>{r.forEach(e=>e()),r.length=0},s=wn(()=>[pd(t),od(l)],([e,t])=>{if(a(),!e)return;const l=(s=t,"[object Object]"===rd.call(s)?{...t}:t);var s;r.push(...n.flatMap(t=>o.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,l))))},{immediate:!0,flush:"post"}),i=()=>{s(),a()};return nd(i),i}let md=!1;function gd(e){const t=function(){const e=St(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}();return yr(()=>(t.value,Boolean(e())))}function bd(e,t,n={}){const{window:o=fd,...l}=n;let r;const a=gd(()=>o&&"ResizeObserver"in o),s=()=>{r&&(r.disconnect(),r=void 0)},i=wn(yr(()=>Array.isArray(e)?e.map(e=>pd(e)):[pd(e)]),e=>{if(s(),a.value&&o){r=new ResizeObserver(t);for(const t of e)t&&r.observe(t,l)}},{immediate:!0,flush:"post"}),u=()=>{s(),i()};return nd(u),{isSupported:a,stop:u}}function yd(e,t={width:0,height:0},n={}){const{window:o=fd,box:l="content-box"}=n,r=yr(()=>{var t,n;return null==(n=null==(t=pd(e))?void 0:t.namespaceURI)?void 0:n.includes("svg")}),a=St(t.width),s=St(t.height),{stop:i}=bd(e,([t])=>{const n="border-box"===l?t.borderBoxSize:"content-box"===l?t.contentBoxSize:t.devicePixelContentBoxSize;if(o&&r.value){const t=pd(e);if(t){const e=t.getBoundingClientRect();a.value=e.width,s.value=e.height}}else if(n){const e=Array.isArray(n)?n:[n];a.value=e.reduce((e,{inlineSize:t})=>e+t,0),s.value=e.reduce((e,{blockSize:t})=>e+t,0)}else a.value=t.contentRect.width,s.value=t.contentRect.height},n);cd(()=>{const n=pd(e);n&&(a.value="offsetWidth"in n?n.offsetWidth:t.width,s.value="offsetHeight"in n?n.offsetHeight:t.height)});const u=wn(()=>pd(e),e=>{a.value=e?t.width:0,s.value=e?t.height:0});return{width:a,height:s,stop:function(){i(),u()}}}class wd extends Error{constructor(e){super(e),this.name="ElementPlusError"}}function xd(e,t){throw new wd(`[${e}] ${t}`)}const Cd={current:0},_d=St(0),Sd=Symbol("elZIndexContextKey"),kd=Symbol("zIndexContextKey"),Ed=e=>{const t=ar()?mn(Sd,Cd):Cd,n=e||(ar()?mn(kd,void 0):void 0),o=yr(()=>{const e=Ot(n);return Jc(e)?e:2e3}),l=yr(()=>o.value+_d.value);return!ld&&mn(Sd),{initialZIndex:o,currentZIndex:l,nextZIndex:()=>(t.current++,_d.value=t.current,l.value)}};var Td={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value",alphaDescription:"alpha {alpha}, current color is {color}",hueLabel:"pick hue value",hueDescription:"hue {hue}, current color is {color}",svLabel:"pick saturation and brightness value",svDescription:"saturation {saturation}, brightness {brightness}, current color is {color}",predefineDescription:"select {value} as the color"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum",selectAllLabel:"Select all rows",selectRowLabel:"Select this row",expandRowLabel:"Expand this row",collapseRowLabel:"Collapse this row",sortLabel:"Sort by {column}",filterLabel:"Filter by {column}"},tag:{close:"Close this tag"},tour:{next:"Next",previous:"Previous",finish:"Finish",close:"Close this dialog"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const Ad=e=>(t,n)=>Od(t,n,Ot(e)),Od=(e,t,n)=>Yi(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>{var o;return`${null!=(o=null==t?void 0:t[n])?o:`{${n}}`}`}),Md=Symbol("localeContextKey"),Rd=e=>{const t=e||mn(Md,St());return(e=>({lang:yr(()=>Ot(e).name),locale:_t(e)?e:St(e),t:Ad(e)}))(yr(()=>t.value||Td))},Ld="__epPropKey",Pd=(e,t)=>{if(!w(e)||w(n=e)&&n[Ld])return e;var n;const{values:o,required:l,default:r,type:a,validator:s}=e,i=o||s?n=>{let l=!1,a=[];if(o&&(a=Array.from(o),p(e,"default")&&a.push(r),l||(l=a.includes(n))),s&&(l||(l=s(n))),!l&&a.length>0){const e=[...new Set(a)].map(e=>JSON.stringify(e)).join(", ");Cr(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${e}], got value ${JSON.stringify(n)}.`)}return l}:void 0,u={type:a,required:!!l,validator:i,[Ld]:!0};return p(e,"default")&&(u.default=r),u},Nd=e=>Fc(Object.entries(e).map(([e,t])=>[e,Pd(t,e)])),Id=["","default","small","large"],Bd=Pd({type:String,values:Id,required:!1}),Fd=Symbol("size"),$d=Symbol("emptyValuesContextKey"),jd=(Nd({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>(e=g(e)?e():e,f(e)?e.every(e=>!e):!e)}}),e=>Object.keys(e)),Vd=(e,t,n)=>({get value(){return Yi(e,t,n)},set value(n){!function(e,t,n){null==e||Kc(e,t,n)}(e,t,n)}}),Dd=St();function zd(e,t=void 0){const n=ar()?mn(ja,Dd):Dd;return e?yr(()=>{var o,l;return null!=(l=null==(o=n.value)?void 0:o[e])?l:t}):n}function Hd(e,t){const n=zd(),o=Wa(e,yr(()=>{var e;return(null==(e=n.value)?void 0:e.namespace)||Va})),l=Rd(yr(()=>{var e;return null==(e=n.value)?void 0:e.locale})),r=Ed(yr(()=>{var e;return(null==(e=n.value)?void 0:e.zIndex)||2e3})),a=yr(()=>{var e;return Ot(t)||(null==(e=n.value)?void 0:e.size)||""});return Wd(yr(()=>Ot(n)||{})),{ns:o,locale:l,zIndex:r,size:a}}const Wd=(e,t,n=!1)=>{const o=!!ar(),l=o?zd():void 0,r=o?hn:void 0;if(!r)return;const a=yr(()=>{const t=Ot(e);return(null==l?void 0:l.value)?qd(l.value,t):t});return r(ja,a),r(Md,yr(()=>a.value.locale)),r(za,yr(()=>a.value.namespace)),r(kd,yr(()=>a.value.zIndex)),r(Fd,{size:yr(()=>a.value.size||"")}),r($d,yr(()=>({emptyValues:a.value.emptyValues,valueOnClear:a.value.valueOnClear}))),!n&&Dd.value||(Dd.value=a.value),a},qd=(e,t)=>{const n=[...new Set([...jd(e),...jd(t)])],o={};for(const l of n)o[l]=void 0!==t[l]?t[l]:e[l];return o},Ud=Nd({to:{type:[String,Object],required:!0},disabled:Boolean});var Kd=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const Gd=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(null!=t?t:{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Yd=e=>(e.install=r,e),Xd=Gd(Kd(Xn({__name:"teleport",props:Ud,setup:e=>(e,t)=>e.disabled?Ao(e.$slots,"default",{key:0}):(Fl(),zl(Pn,{key:1,to:e.to},[Ao(e.$slots,"default")],8,["to"]))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/teleport/src/teleport.vue"]])),Zd="update:modelValue",Jd="change",Qd="input",ep=e=>ld?window.requestAnimationFrame(e):setTimeout(e,16),tp=(e="")=>e.split(" ").filter(e=>!!e.trim()),np=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},op=(e,t)=>{e&&t.trim()&&e.classList.add(...tp(t))},lp=(e,t)=>{e&&t.trim()&&e.classList.remove(...tp(t))},rp=(e,t)=>{var n;if(!ld||!e||!t)return"";let o=O(t);"float"===o&&(o="cssFloat");try{const t=e.style[o];if(t)return t;const l=null==(n=document.defaultView)?void 0:n.getComputedStyle(e,"");return l?l[o]:""}catch(tT){return e.style[o]}};function ap(e,t="px"){return e||0===e?Jc(e)||b(n=e)&&!Number.isNaN(Number(n))?`${e}${t}`:b(e)?e:void 0:"";var n}let sp;const ip=Gd(Kd(Xn({name:"ElIcon",inheritAttrs:!1,__name:"icon",props:Nd({size:{type:[Number,String]},color:{type:String}}),setup(e){const t=e,n=Wa("icon"),o=yr(()=>{const{size:e,color:n}=t,o=ap(e);return o||n?{fontSize:o,"--color":n}:{}});return(e,t)=>(Fl(),Dl("i",tr({class:Ot(n).b(),style:o.value},e.$attrs),[Ao(e.$slots,"default")],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]));var up=Xn({name:"ArrowDown",__name:"arrow-down",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}),cp=Xn({name:"ArrowLeft",__name:"arrow-left",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0"})]))}),dp=Xn({name:"ArrowRight",__name:"arrow-right",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}),pp=Xn({name:"ArrowUp",__name:"arrow-up",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}),fp=Xn({name:"Bottom",__name:"bottom",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}),vp=Xn({name:"CircleCheck",__name:"circle-check",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}),hp=Xn({name:"CircleCloseFilled",__name:"circle-close-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}),mp=Xn({name:"CircleClose",__name:"circle-close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}),gp=Xn({name:"Clock",__name:"clock",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),Kl("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}),bp=Xn({name:"Close",__name:"close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}),yp=Xn({name:"Connection",__name:"connection",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192z"}),Kl("path",{fill:"currentColor",d:"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.06 192.06 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192z"})]))}),wp=Xn({name:"DataAnalysis",__name:"data-analysis",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32zM832 192H192v512h640zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32"})]))}),xp=Xn({name:"Delete",__name:"delete",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}),Cp=Xn({name:"Download",__name:"download",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}),_p=Xn({name:"Hide",__name:"hide",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),Kl("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}),Sp=Xn({name:"InfoFilled",__name:"info-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}),kp=Xn({name:"Key",__name:"key",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064M512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384"})]))}),Ep=Xn({name:"Loading",__name:"loading",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}),Tp=Xn({name:"Monitor",__name:"monitor",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 768v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768H192A128 128 0 0 1 64 640V256a128 128 0 0 1 128-128h640a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128zM192 192a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64z"})]))}),Ap=Xn({name:"Moon",__name:"moon",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 391 391 0 0 0-17.408 16.384m181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696"})]))}),Op=Xn({name:"More",__name:"more",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}),Mp=Xn({name:"Plus",__name:"plus",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}),Rp=Xn({name:"Promotion",__name:"promotion",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472zm256 512V657.024L512 768z"})]))}),Lp=Xn({name:"QuestionFilled",__name:"question-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"})]))}),Pp=Xn({name:"Refresh",__name:"refresh",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}),Np=Xn({name:"Search",__name:"search",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}),Ip=Xn({name:"SuccessFilled",__name:"success-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}),Bp=Xn({name:"Sunny",__name:"sunny",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32M195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248M64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32m768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32M195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0m543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0"})]))}),Fp=Xn({name:"Top",__name:"top",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}),$p=Xn({name:"Upload",__name:"upload",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}),jp=Xn({name:"User",__name:"user",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0"})]))}),Vp=Xn({name:"View",__name:"view",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))});const Dp=[String,Object,Function],zp={Close:bp},Hp={Close:bp},Wp={primary:Sp,success:Ip,warning:Xn({name:"WarningFilled",__name:"warning-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}),error:hp,info:Sp},qp={validating:Ep,success:vp,error:mp},Up=()=>ld&&/firefox/i.test(window.navigator.userAgent);let Kp;const Gp={height:"0",visibility:"hidden",overflow:Up()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},Yp=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"],Xp=e=>{const t=Number.parseFloat(e);return Number.isNaN(t)?e:t};function Zp(e,t=1,n){var o,l;Kp||(Kp=document.createElement("textarea"),(null!=(o=e.parentNode)?o:document.body).appendChild(Kp));const{paddingSize:r,borderSize:a,boxSizing:s,contextStyle:i}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),l=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Yp.map(e=>[e,t.getPropertyValue(e)]),paddingSize:o,borderSize:l,boxSizing:n}}(e);i.forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t)),Object.entries(Gp).forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t,"important")),Kp.value=e.value||e.placeholder||"";let u=Kp.scrollHeight;const c={};"border-box"===s?u+=a:"content-box"===s&&(u-=r),Kp.value="";const d=Kp.scrollHeight-r;if(Jc(t)){let e=d*t;"border-box"===s&&(e=e+r+a),u=Math.max(e,u),c.minHeight=`${e}px`}if(Jc(n)){let e=d*n;"border-box"===s&&(e=e+r+a),u=Math.min(e,u)}return c.height=`${u}px`,null==(l=Kp.parentNode)||l.removeChild(Kp),Kp=void 0,c}const Jp=Nd({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Qp=e=>Yc(Jp,e),ef=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Object],default:""},modelModifiers:{type:Object,default:()=>({})},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:Dp,default:mp},showPassword:Boolean,showWordLimit:Boolean,wordLimitPosition:{type:String,values:["inside","outside"],default:"inside"},suffixIcon:{type:Dp},prefixIcon:{type:Dp},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Object,Array,String],default:()=>({})},autofocus:Boolean,rows:{type:Number,default:2},...Qp(["ariaLabel"]),inputmode:{type:String,default:void 0},name:String}),tf={[Zd]:e=>b(e),input:e=>b(e),change:(e,t)=>b(e)&&(t instanceof Event||void 0===t),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},nf=["class","style"],of=/^on[A-Z]/,lf={prefix:Math.floor(1e4*Math.random()),current:0},rf=Symbol("elIdInjection"),af=()=>ar()?mn(rf,lf):lf,sf=e=>{const t=af(),n=Ha();return td(()=>Ot(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},uf=Symbol("formContextKey"),cf=Symbol("formItemContextKey"),df=()=>({form:mn(uf,void 0),formItem:mn(cf,void 0)}),pf=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=St(!1)),o||(o=St(!1));const l=ar(),r=St();let a;const s=yr(()=>{var n;return!!(!e.label&&!e.ariaLabel&&t&&t.inputIds&&(null==(n=t.inputIds)?void 0:n.length)<=1)});return co(()=>{a=wn([Ft(e,"id"),n],([e,n])=>{const a=null!=e?e:n?void 0:sf().value;a!==r.value&&((null==t?void 0:t.removeInputId)&&!(()=>{let e=null==l?void 0:l.parent;for(;e;){if("ElFormItem"===e.type.name)return!1;if("ElLabelWrap"===e.type.name)return!0;e=e.parent}return!1})()&&(r.value&&t.removeInputId(r.value),(null==o?void 0:o.value)||n||!a||t.addInputId(a)),r.value=a)},{immediate:!0})}),ho(()=>{a&&a(),(null==t?void 0:t.removeInputId)&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:s,inputId:r}},ff=e=>{const t=ar();return yr(()=>{var n,o;return null==(o=null==(n=null==t?void 0:t.proxy)?void 0:n.$props)?void 0:o[e]})},vf=(e,t={})=>{const n=St(void 0),o=t.prop?n:ff("size"),l=t.global?n:(()=>{const e=mn(Fd,{});return yr(()=>Ot(e.size)||"")})(),r=t.form?{size:void 0}:mn(uf,void 0),a=t.formItem?{size:void 0}:mn(cf,void 0);return yr(()=>o.value||Ot(e)||(null==a?void 0:a.size)||(null==r?void 0:r.size)||l.value||"")},hf=e=>{const t=ff("disabled"),n=mn(uf,void 0);return yr(()=>{var o,l,r;return null!=(r=null!=(l=null!=(o=t.value)?o:Ot(e))?l:null==n?void 0:n.disabled)&&r})},mf=e=>"undefined"!=typeof Element&&e instanceof Element,gf=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},bf=function(e,t,...n){let o;o=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const l=document.createEvent(o);return l.initEvent(t,...n),e.dispatchEvent(l),e},yf=(e,t)=>{if(!e||!e.focus)return;let n=!1;!mf(e)||gf(e)||e.getAttribute("tabindex")||(e.setAttribute("tabindex","-1"),n=!0),e.focus(t),mf(e)&&n&&e.removeAttribute("tabindex")},wf=["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode"],xf=["id","name","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role"],Cf=Gd(Kd(Xn({name:"ElInput",inheritAttrs:!1,__name:"input",props:ef,emits:tf,setup(e,{expose:t,emit:n}){const o=e,l=n,a=Io(),s=((e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=yr(()=>((null==n?void 0:n.value)||[]).concat(nf)),l=ar();return yr(l?()=>{var e;return Fc(Object.entries(null==(e=l.proxy)?void 0:e.$attrs).filter(([e])=>!(o.value.includes(e)||t&&of.test(e))))}:()=>({}))})(),i=No(),u=yr(()=>["textarea"===o.type?b.b():m.b(),m.m(v.value),m.is("disabled",h.value),m.is("exceed",H.value),{[m.b("group")]:i.prepend||i.append,[m.m("prefix")]:i.prefix||o.prefixIcon,[m.m("suffix")]:i.suffix||o.suffixIcon||o.clearable||o.showPassword,[m.bm("suffix","password-clear")]:$.value&&j.value,[m.b("hidden")]:"hidden"===o.type},a.class]),c=yr(()=>[m.e("wrapper"),m.is("focus",A.value)]),{form:d,formItem:p}=df(),{inputId:f}=pf(o,{formItemContext:p}),v=vf(),h=hf(),m=Wa("input"),b=Wa("textarea"),y=kt(),x=kt(),C=St(!1),_=St(!1),S=St(),k=kt(o.inputStyle),E=yr(()=>y.value||x.value),{wrapperRef:T,isFocused:A,handleFocus:O,handleBlur:M}=function(e,{disabled:t,beforeFocus:n,afterFocus:o,beforeBlur:l,afterBlur:r}={}){const a=ar(),{emit:s}=a,i=kt(),u=St(!1),c=e=>{const l=!!g(n)&&n(e);Ot(t)||u.value||l||(u.value=!0,s("focus",e),null==o||o())},d=e=>{var n;const o=!!g(l)&&l(e);Ot(t)||e.relatedTarget&&(null==(n=i.value)?void 0:n.contains(e.relatedTarget))||o||(u.value=!1,s("blur",e),null==r||r())};return wn([i,()=>Ot(t)],([e,t])=>{e&&(t?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1"))}),hd(i,"focus",c,!0),hd(i,"blur",d,!0),hd(i,"click",n=>{var o,l;Ot(t)||gf(n.target)||(null==(o=i.value)?void 0:o.contains(document.activeElement))&&i.value!==document.activeElement||null==(l=e.value)||l.focus()},!0),{isFocused:u,wrapperRef:i,handleFocus:c,handleBlur:d}}(E,{disabled:h,afterBlur(){var e;o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"blur").catch(e=>{}))}}),R=yr(()=>{var e;return null!=(e=null==d?void 0:d.statusIcon)&&e}),L=yr(()=>(null==p?void 0:p.validateState)||""),P=yr(()=>L.value&&qp[L.value]),N=yr(()=>_.value?Vp:_p),I=yr(()=>[a.style]),B=yr(()=>[o.inputStyle,k.value,{resize:o.resize}]),F=yr(()=>Vc(o.modelValue)?"":String(o.modelValue)),$=yr(()=>o.clearable&&!h.value&&!o.readonly&&!!F.value&&(A.value||C.value)),j=yr(()=>o.showPassword&&!h.value&&!!F.value),D=yr(()=>o.showWordLimit&&!!o.maxlength&&("text"===o.type||"textarea"===o.type)&&!h.value&&!o.readonly&&!o.showPassword),z=yr(()=>F.value.length),H=yr(()=>!!D.value&&z.value>Number(o.maxlength)),W=yr(()=>!!i.suffix||!!o.suffixIcon||$.value||o.showPassword||D.value||!!L.value&&R.value),U=yr(()=>!!Object.keys(o.modelModifiers).length),[K,G]=function(e){let t;return[function(){if(null==e.value)return;const{selectionStart:n,selectionEnd:o,value:l}=e.value;if(null==n||null==o)return;const r=l.slice(0,Math.max(0,n)),a=l.slice(Math.max(0,o));t={selectionStart:n,selectionEnd:o,value:l,beforeTxt:r,afterTxt:a}},function(){if(null==e.value||null==t)return;const{value:n}=e.value,{beforeTxt:o,afterTxt:l,selectionStart:r}=t;if(null==o||null==l||null==r)return;let a=n.length;if(n.endsWith(l))a=n.length-l.length;else if(n.startsWith(o))a=o.length;else{const e=o[r-1],t=n.indexOf(e,r-1);-1!==t&&(a=t+1)}e.value.setSelectionRange(a,a)}]}(y);bd(x,e=>{if(X(),!D.value||"both"!==o.resize&&"horizontal"!==o.resize)return;const t=e[0],{width:n}=t.contentRect;S.value={right:`calc(100% - ${n+22-10}px)`}});const Y=()=>{const{type:e,autosize:t}=o;if(ld&&"textarea"===e&&x.value)if(t){const e=w(t)?t.minRows:void 0,n=w(t)?t.maxRows:void 0,o=Zp(x.value,e,n);k.value={overflowY:"hidden",...o},tn(()=>{x.value.offsetHeight,k.value=o})}else k.value={minHeight:Zp(x.value).minHeight}},X=(e=>{let t=!1;return()=>{var n;!t&&o.autosize&&(null===(null==(n=x.value)?void 0:n.offsetParent)||(setTimeout(e),t=!0))}})(Y),J=()=>{const e=E.value,t=o.formatter?o.formatter(F.value):F.value;e&&e.value!==t&&"file"!==o.type&&(e.value=t)},Q=e=>{const{trim:t,number:n}=o.modelModifiers;return t&&(e=e.trim()),n&&(e=`${Xp(e)}`),o.formatter&&o.parser&&(e=o.parser(e)),e},ee=async e=>{if(ne.value)return;const{lazy:t}=o.modelModifiers;let{value:n}=e.target;t?l(Qd,n):(n=Q(n),String(n)!==F.value?(K(),l(Zd,n),l(Qd,n),await tn(),(o.formatter&&o.parser||!U.value)&&J(),G()):o.formatter&&J())},te=async e=>{let{value:t}=e.target;t=Q(t),o.modelModifiers.lazy&&l(Zd,t),l(Jd,t,e),await tn(),J()},{isComposing:ne,handleCompositionStart:oe,handleCompositionUpdate:le,handleCompositionEnd:re}=function({afterComposition:e,emit:t}){const n=St(!1),o=e=>{var o;null==t||t("compositionupdate",e);const l=null==(o=e.target)?void 0:o.value,r=l[l.length-1]||"";n.value=!(e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e))(r)},l=o=>{null==t||t("compositionend",o),n.value&&(n.value=!1,tn(()=>e(o)))};return{isComposing:n,handleComposition:e=>{"compositionend"===e.type?l(e):o(e)},handleCompositionStart:e=>{null==t||t("compositionstart",e),n.value=!0},handleCompositionUpdate:o,handleCompositionEnd:l}}({emit:l,afterComposition:ee}),ae=()=>{_.value=!_.value},se=e=>{C.value=!1,l("mouseleave",e)},ie=e=>{C.value=!0,l("mouseenter",e)},ue=e=>{l("keydown",e)},ce=()=>{l(Zd,""),l(Jd,""),l("clear"),l(Qd,"")};return wn(()=>o.modelValue,()=>{var e;tn(()=>Y()),o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"change").catch(e=>{}))}),wn(F,e=>{if(!E.value)return;const{trim:t,number:n}=o.modelModifiers,l=E.value.value,r=!n&&"number"!==o.type||/^0\d/.test(l)?l:`${Xp(l)}`;r!==e&&(document.activeElement===E.value&&"range"!==E.value.type&&t&&r.trim()===e||J())}),wn(()=>o.type,async()=>{await tn(),J(),Y()}),co(()=>{!o.formatter&&o.parser,J(),tn(Y)}),t({input:y,textarea:x,ref:E,textareaStyle:B,autosize:Ft(o,"autosize"),isComposing:ne,focus:()=>{var e;return null==(e=E.value)?void 0:e.focus()},blur:()=>{var e;return null==(e=E.value)?void 0:e.blur()},select:()=>{var e;null==(e=E.value)||e.select()},clear:ce,resizeTextarea:Y}),(e,t)=>(Fl(),Dl("div",{class:q([u.value,{[Ot(m).bm("group","append")]:e.$slots.append,[Ot(m).bm("group","prepend")]:e.$slots.prepend}]),style:V(I.value),onMouseenter:ie,onMouseleave:se},[Zl(" input "),"textarea"!==e.type?(Fl(),Dl(Rl,{key:0},[Zl(" prepend slot "),e.$slots.prepend?(Fl(),Dl("div",{key:0,class:q(Ot(m).be("group","prepend"))},[Ao(e.$slots,"prepend")],2)):Zl("v-if",!0),Kl("div",{ref_key:"wrapperRef",ref:T,class:q(c.value)},[Zl(" prefix slot "),e.$slots.prefix||e.prefixIcon?(Fl(),Dl("span",{key:0,class:q(Ot(m).e("prefix"))},[Kl("span",{class:q(Ot(m).e("prefix-inner"))},[Ao(e.$slots,"prefix"),e.prefixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.prefixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0),Kl("input",tr({id:Ot(f),ref_key:"input",ref:y,class:Ot(m).e("inner")},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,type:e.showPassword?_.value?"text":"password":e.type,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.ariaLabel,placeholder:e.placeholder,style:e.inputStyle,form:e.form,autofocus:e.autofocus,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:t[0]||(t[0]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[1]||(t[1]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[2]||(t[2]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onChange:te,onKeydown:ue}),null,16,wf),Zl(" suffix slot "),W.value?(Fl(),Dl("span",{key:1,class:q(Ot(m).e("suffix"))},[Kl("span",{class:q(Ot(m).e("suffix-inner"))},[$.value&&j.value&&D.value?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Ao(e.$slots,"suffix"),e.suffixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.suffixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],64)),$.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(m).e("icon"),Ot(m).e("clear")]),onMousedown:Ra(Ot(r),["prevent"]),onClick:ce},{default:pn(()=>[(Fl(),zl(_o(e.clearIcon)))]),_:1},8,["class","onMousedown"])):Zl("v-if",!0),j.value?(Fl(),zl(Ot(ip),{key:2,class:q([Ot(m).e("icon"),Ot(m).e("password")]),onClick:ae,onMousedown:Ra(Ot(r),["prevent"]),onMouseup:Ra(Ot(r),["prevent"])},{default:pn(()=>[(Fl(),zl(_o(N.value)))]),_:1},8,["class","onMousedown","onMouseup"])):Zl("v-if",!0),D.value?(Fl(),Dl("span",{key:3,class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},[Kl("span",{class:q(Ot(m).e("count-inner"))},Z(z.value)+" / "+Z(e.maxlength),3)],2)):Zl("v-if",!0),L.value&&P.value&&R.value?(Fl(),zl(Ot(ip),{key:4,class:q([Ot(m).e("icon"),Ot(m).e("validateIcon"),Ot(m).is("loading","validating"===L.value)])},{default:pn(()=>[(Fl(),zl(_o(P.value)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0)],2),Zl(" append slot "),e.$slots.append?(Fl(),Dl("div",{key:1,class:q(Ot(m).be("group","append"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)],64)):(Fl(),Dl(Rl,{key:1},[Zl(" textarea "),Kl("textarea",tr({id:Ot(f),ref_key:"textarea",ref:x,class:[Ot(b).e("inner"),Ot(m).is("focus",Ot(A))]},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,tabindex:e.tabindex,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,style:B.value,"aria-label":e.ariaLabel,placeholder:e.placeholder,form:e.form,autofocus:e.autofocus,rows:e.rows,role:e.containerRole,onCompositionstart:t[3]||(t[3]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[4]||(t[4]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[5]||(t[5]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onFocus:t[6]||(t[6]=(...e)=>Ot(O)&&Ot(O)(...e)),onBlur:t[7]||(t[7]=(...e)=>Ot(M)&&Ot(M)(...e)),onChange:te,onKeydown:ue}),null,16,xf),D.value?(Fl(),Dl("span",{key:0,style:V(S.value),class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},Z(z.value)+" / "+Z(e.maxlength),7)):Zl("v-if",!0)],64))],38))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]])),_f={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Sf=Symbol("scrollbarContextKey"),kf=Nd({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean});var Ef=Kd(Xn({__name:"thumb",props:kf,setup(e){const t=e,n=mn(Sf),o=Wa("scrollbar");n||xd("Thumb","can not inject scrollbar context");const l=St(),r=St(),a=St({}),s=St(!1);let i=!1,u=!1,c=0,d=0,p=ld?document.onselectstart:null;const f=yr(()=>_f[t.vertical?"vertical":"horizontal"]),v=yr(()=>(({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}))({size:t.size,move:t.move,bar:f.value})),h=yr(()=>l.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/r.value[f.value.offset]),m=e=>{var t;if(e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button))return;null==(t=window.getSelection())||t.removeAllRanges(),b(e);const n=e.currentTarget;n&&(a.value[f.value.axis]=n[f.value.offset]-(e[f.value.client]-n.getBoundingClientRect()[f.value.direction]))},g=e=>{if(!r.value||!l.value||!n.wrapElement)return;const t=100*(Math.abs(e.target.getBoundingClientRect()[f.value.direction]-e[f.value.client])-r.value[f.value.offset]/2)*h.value/l.value[f.value.offset];n.wrapElement[f.value.scroll]=t*n.wrapElement[f.value.scrollSize]/100},b=e=>{e.stopImmediatePropagation(),i=!0,c=n.wrapElement.scrollHeight,d=n.wrapElement.scrollWidth,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),p=document.onselectstart,document.onselectstart=()=>!1},y=e=>{if(!l.value||!r.value)return;if(!1===i)return;const t=a.value[f.value.axis];if(!t)return;const o=100*(-1*(l.value.getBoundingClientRect()[f.value.direction]-e[f.value.client])-(r.value[f.value.offset]-t))*h.value/l.value[f.value.offset];"scrollLeft"===f.value.scroll?n.wrapElement[f.value.scroll]=o*d/100:n.wrapElement[f.value.scroll]=o*c/100},w=()=>{i=!1,a.value[f.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),x(),u&&(s.value=!1)};vo(()=>{x(),document.removeEventListener("mouseup",w)});const x=()=>{document.onselectstart!==p&&(document.onselectstart=p)};return hd(Ft(n,"scrollbarElement"),"mousemove",()=>{u=!1,s.value=!!t.size}),hd(Ft(n,"scrollbarElement"),"mouseleave",()=>{u=!0,s.value=i}),(e,t)=>(Fl(),zl(Nr,{name:Ot(o).b("fade"),persisted:""},{default:pn(()=>[fn(Kl("div",{ref_key:"instance",ref:l,class:q([Ot(o).e("bar"),Ot(o).is(f.value.key)]),onMousedown:g,onClick:t[0]||(t[0]=Ra(()=>{},["stop"]))},[Kl("div",{ref_key:"thumb",ref:r,class:q(Ot(o).e("thumb")),style:V(v.value),onMousedown:m},null,38)],34),[[Xr,e.always||s.value]])]),_:1},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]),Tf=Kd(Xn({__name:"bar",props:Nd({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),setup(e,{expose:t}){const n=e,o=mn(Sf),l=St(0),r=St(0),a=St(""),s=St(""),i=St(1),u=St(1);return t({handleScroll:e=>{if(e){const t=e.offsetHeight-4,n=e.offsetWidth-4;r.value=100*e.scrollTop/t*i.value,l.value=100*e.scrollLeft/n*u.value}},update:()=>{const e=null==o?void 0:o.wrapElement;if(!e)return;const t=e.offsetHeight-4,l=e.offsetWidth-4,r=t**2/e.scrollHeight,c=l**2/e.scrollWidth,d=Math.max(r,n.minSize),p=Math.max(c,n.minSize);i.value=r/(t-r)/(d/(t-d)),u.value=c/(l-c)/(p/(l-p)),s.value=d+4(Fl(),Dl(Rl,null,[Gl(Ef,{move:l.value,ratio:u.value,size:a.value,always:e.always},null,8,["move","ratio","size","always"]),Gl(Ef,{move:r.value,ratio:i.value,size:s.value,vertical:"",always:e.always},null,8,["move","ratio","size","always"])],64))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const Af=Nd({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:[String,Object,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Qp(["ariaLabel","ariaOrientation"])}),Of=["tabindex"],Mf=Gd(Kd(Xn({name:"ElScrollbar",__name:"scrollbar",props:Af,emits:{"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Jc)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=Wa("scrollbar");let a,s,i,u=0,c=0,d="";const p={bottom:!1,top:!1,right:!1,left:!1},f=St(),v=St(),h=St(),m=St(),g=yr(()=>{const e={},t=ap(o.height),n=ap(o.maxHeight);return t&&(e.height=t),n&&(e.maxHeight=n),[o.wrapStyle,e]}),b=yr(()=>[o.wrapClass,r.e("wrap"),{[r.em("wrap","hidden-default")]:!o.native}]),y=yr(()=>[r.e("view"),o.viewClass]),x={top:"bottom",bottom:"top",left:"right",right:"left"},C=()=>{var e;if(v.value){null==(e=m.value)||e.handleScroll(v.value);const t=u,n=c;u=v.value.scrollTop,c=v.value.scrollLeft;const r={bottom:u+v.value.clientHeight>=v.value.scrollHeight-o.distance,top:u<=o.distance&&0!==t,right:c+v.value.clientWidth>=v.value.scrollWidth-o.distance&&n!==c,left:c<=o.distance&&0!==n};if(l("scroll",{scrollTop:u,scrollLeft:c}),t!==u&&(d=u>t?"bottom":"top"),n!==c&&(d=c>n?"right":"left"),o.distance>0){if((e=>{var t;return null!=(t=p[e])&&t})(d))return;(e=>{const t=x[d];if(!t)return;const n=e[d],o=e[t];n&&!p[d]&&(p[d]=!0),!o&&p[t]&&(p[t]=!1)})(r)}r[d]&&l("end-reached",d)}},_=()=>{var e;null==(e=m.value)||e.update(),p[d]=!1};return wn(()=>o.noresize,e=>{e?(null==a||a(),null==s||s(),null==i||i()):(({stop:a}=bd(h,_)),({stop:s}=bd(v,_)),i=hd("resize",_))},{immediate:!0}),wn(()=>[o.maxHeight,o.height],()=>{o.native||tn(()=>{var e;_(),v.value&&(null==(e=m.value)||e.handleScroll(v.value))})}),hn(Sf,pt({scrollbarElement:f,wrapElement:v})),oo(()=>{v.value&&(v.value.scrollTop=u,v.value.scrollLeft=c)}),co(()=>{o.native||tn(()=>{_()})}),fo(()=>_()),t({wrapRef:v,update:_,scrollTo:function(e,t){w(e)?v.value.scrollTo(e):Jc(e)&&Jc(t)&&v.value.scrollTo(e,t)},setScrollTop:e=>{Jc(e)&&(v.value.scrollTop=e)},setScrollLeft:e=>{Jc(e)&&(v.value.scrollLeft=e)},handleScroll:C}),(e,t)=>(Fl(),Dl("div",{ref_key:"scrollbarRef",ref:f,class:q(Ot(r).b())},[Kl("div",{ref_key:"wrapRef",ref:v,class:q(b.value),style:V(g.value),tabindex:e.tabindex,onScroll:C},[(Fl(),zl(_o(e.tag),{id:e.id,ref_key:"resizeRef",ref:h,class:q(y.value),style:V(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,Of),e.native?Zl("v-if",!0):(Fl(),zl(Tf,{key:0,ref_key:"barRef",ref:m,always:e.always,"min-size":e.minSize},null,8,["always","min-size"]))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]])),Rf=Symbol("popper"),Lf=Symbol("popperContent"),Pf=Nd({role:{type:String,values:["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],default:"tooltip"}});var Nf=Kd(Xn({name:"ElPopper",inheritAttrs:!1,__name:"popper",props:Pf,setup(e,{expose:t}){const n=e,o={triggerRef:St(),popperInstanceRef:St(),contentRef:St(),referenceRef:St(),role:yr(()=>n.role)};return t(o),hn(Rf,o),(e,t)=>Ao(e.$slots,"default")}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]),If=Kd(Xn({name:"ElPopperArrow",inheritAttrs:!1,__name:"arrow",setup(e,{expose:t}){const n=Wa("popper"),{arrowRef:o,arrowStyle:l}=mn(Lf,void 0);return vo(()=>{o.value=void 0}),t({arrowRef:o}),(e,t)=>(Fl(),Dl("span",{ref_key:"arrowRef",ref:o,class:q(Ot(n).e("arrow")),style:V(Ot(l)),"data-popper-arrow":""},null,6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Bf=Nd({virtualRef:{type:Object},virtualTriggering:Boolean,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},onBlur:{type:Function},onContextmenu:{type:Function},id:String,open:Boolean}),Ff=Symbol("elForwardRef"),$f=Xn({name:"ElOnlyChild",setup(e,{slots:t,attrs:n}){var o;const l=mn(Ff),a=(s=null!=(o=null==l?void 0:l.setForwardRef)?o:r,{mounted(e){s(e)},updated(e){s(e)},unmounted(){s(null)}});var s;return()=>{var e;const o=null==(e=t.default)?void 0:e.call(t,n);if(!o)return null;const[l,r]=jf(o);return l?fn(Yl(l,n),[[a]]):null}}});function jf(e){if(!e)return[null,0];const t=e,n=t.filter(e=>e.type!==Pl).length;for(const o of t){if(w(o))switch(o.type){case Pl:continue;case Ll:case"svg":return[Vf(o),n];case Rl:return jf(o.children);default:return[o,n]}return[Vf(o),n]}return[null,0]}function Vf(e){const t=Wa("only-child");return Gl("span",{class:t.e("content")},[e])}var Df=Kd(Xn({name:"ElPopperTrigger",inheritAttrs:!1,__name:"trigger",props:Bf,setup(e,{expose:t}){const n=e,{role:o,triggerRef:l}=mn(Rf,void 0);var r;r=l,hn(Ff,{setForwardRef:e=>{r.value=e}});const a=yr(()=>i.value?n.id:void 0),s=yr(()=>{if(o&&"tooltip"===o.value)return n.open&&n.id?n.id:void 0}),i=yr(()=>{if(o&&"tooltip"!==o.value)return o.value}),u=yr(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return co(()=>{wn(()=>n.virtualRef,e=>{e&&(l.value=pd(e))},{immediate:!0}),wn(l,(e,t)=>{null==c||c(),c=void 0,Qc(t)&&d.forEach(e=>{const o=n[e];o&&t.removeEventListener(e.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(e))}),Qc(e)&&(d.forEach(t=>{const o=n[t];o&&e.addEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),gf(e)&&(c=wn([a,s,i,u],t=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((n,o)=>{Vc(t[o])?e.removeAttribute(n):e.setAttribute(n,t[o])})},{immediate:!0}))),Qc(t)&&gf(t)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(e=>t.removeAttribute(e))},{immediate:!0})}),vo(()=>{if(null==c||c(),c=void 0,l.value&&Qc(l.value)){const e=l.value;d.forEach(t=>{const o=n[t];o&&e.removeEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),l.value=void 0}}),t({triggerRef:l}),(e,t)=>e.virtualTriggering?Zl("v-if",!0):(Fl(),zl(Ot($f),tr({key:0},e.$attrs,{"aria-controls":a.value,"aria-describedby":s.value,"aria-expanded":u.value,"aria-haspopup":i.value}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const zf="focus-trap.focus-after-trapped",Hf="focus-trap.focus-after-released",Wf={cancelable:!0,bubbles:!1},qf={cancelable:!0,bubbles:!1},Uf="focusAfterTrapped",Kf="focusAfterReleased",Gf=Symbol("elFocusTrap"),Yf=St(),Xf=St(0),Zf=St(0);let Jf=0;const Qf=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0||e===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},ev=(e,t)=>{for(const n of e)if(!tv(n,t))return n},tv=(e,t)=>{if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1},nv=(e,t)=>{if(e){const n=document.activeElement;yf(e,{preventScroll:!0}),Zf.value=window.performance.now(),e!==n&&(e=>e instanceof HTMLInputElement&&"select"in e)(e)&&t&&e.select()}};function ov(e,t){const n=[...e],o=e.indexOf(t);return-1!==o&&n.splice(o,1),n}const lv=(()=>{let e=[];return{push:t=>{const n=e[0];n&&t!==n&&n.pause(),e=ov(e,t),e.unshift(t)},remove:t=>{var n,o;e=ov(e,t),null==(o=null==(n=e[0])?void 0:n.resume)||o.call(n)}}})(),rv=()=>{Yf.value="pointer",Xf.value=window.performance.now()},av=()=>{Yf.value="keyboard",Xf.value=window.performance.now()},sv=e=>new CustomEvent("focus-trap.focusout-prevented",{...qf,detail:e}),iv={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},uv=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const l=null==e?void 0:e(o);if(!1===n||!l)return null==t?void 0:t(o)},cv=e=>{if(e.code&&"Unidentified"!==e.code)return e.code;const t=dv(e);return t?Object.values(iv).includes(t)?t:" "===t?iv.space:"":""},dv=e=>{let t=e.key&&"Unidentified"!==e.key?e.key:"";if(!t&&"keyup"===e.type&&ld&&/android/i.test(window.navigator.userAgent)){const n=e.target;t=n.value.charAt(n.selectionStart-1)}return t};let pv=[];const fv=e=>{cv(e)===iv.esc&&pv.forEach(t=>t(e))};var vv=Kd(Xn({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Uf,Kf,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=St();let o,l;const{focusReason:r}=(co(()=>{0===Jf&&(document.addEventListener("mousedown",rv),document.addEventListener("touchstart",rv),document.addEventListener("keydown",av)),Jf++}),vo(()=>{Jf--,Jf<=0&&(document.removeEventListener("mousedown",rv),document.removeEventListener("touchstart",rv),document.removeEventListener("keydown",av))}),{focusReason:Yf,lastUserFocusTimestamp:Xf,lastAutomatedFocusTimestamp:Zf});var a;a=n=>{e.trapped&&!s.paused&&t("release-requested",n)},co(()=>{0===pv.length&&document.addEventListener("keydown",fv),ld&&pv.push(a)}),vo(()=>{pv=pv.filter(e=>e!==a),0===pv.length&&ld&&document.removeEventListener("keydown",fv)});const s={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=n=>{if(!e.loop&&!e.trapped)return;if(s.paused)return;const{altKey:o,ctrlKey:l,metaKey:a,currentTarget:i,shiftKey:u}=n,{loop:c}=e,d=cv(n)===iv.tab&&!o&&!l&&!a,p=document.activeElement;if(d&&p){const e=i,[o,l]=(e=>{const t=Qf(e);return[ev(t,e),ev(t.reverse(),e)]})(e);if(o&&l)if(u||p!==l){if(u&&[o,e].includes(p)){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(l,!0))}}else{const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(o,!0))}else if(p===e){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||n.preventDefault()}}};hn(Gf,{focusTrapRef:n,onKeydown:i}),wn(()=>e.focusTrapEl,e=>{e&&(n.value=e)},{immediate:!0}),wn([n],([e],[t])=>{e&&(e.addEventListener("keydown",i),e.addEventListener("focusin",d),e.addEventListener("focusout",p)),t&&(t.removeEventListener("keydown",i),t.removeEventListener("focusin",d),t.removeEventListener("focusout",p))});const u=e=>{t(Uf,e)},c=e=>t(Kf,e),d=r=>{const a=Ot(n);if(!a)return;const i=r.target,u=r.relatedTarget,c=i&&a.contains(i);e.trapped||u&&a.contains(u)||(o=u),c&&t("focusin",r),s.paused||e.trapped&&(c?l=i:nv(l,!0))},p=o=>{const a=Ot(n);if(!s.paused&&a)if(e.trapped){const n=o.relatedTarget;Vc(n)||a.contains(n)||setTimeout(()=>{if(!s.paused&&e.trapped){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||nv(l,!0)}},0)}else{const e=o.target;e&&a.contains(e)||t("focusout",o)}};async function f(){await tn();const t=Ot(n);if(t){lv.push(s);const n=t.contains(document.activeElement)?o:document.activeElement;if(o=n,!t.contains(n)){const o=new Event(zf,Wf);t.addEventListener(zf,u),t.dispatchEvent(o),o.defaultPrevented||tn(()=>{let o=e.focusStartEl;b(o)||(nv(o),document.activeElement!==o&&(o="first")),"first"===o&&((e,t=!1)=>{const n=document.activeElement;for(const o of e)if(nv(o,t),document.activeElement!==n)return})(Qf(t),!0),document.activeElement!==n&&"container"!==o||nv(t)})}}}function v(){const e=Ot(n);if(e){e.removeEventListener(zf,u);const t=new CustomEvent(Hf,{...Wf,detail:{focusReason:r.value}});e.addEventListener(Hf,c),e.dispatchEvent(t),t.defaultPrevented||"keyboard"!=r.value&&Xf.value>Zf.value&&!e.contains(document.activeElement)||nv(null!=o?o:document.body),e.removeEventListener(Hf,c),lv.remove(s),o=null,l=null}}return co(()=>{e.trapped&&f(),wn(()=>e.trapped,e=>{e?f():v()})}),vo(()=>{e.trapped&&v(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",p),n.value=void 0),o=null,l=null}),{onKeydown:i}}}),[["render",function(e,t,n,o,l,r){return Ao(e.$slots,"default",{handleKeydown:e.onKeydown})}],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]),hv="top",mv="bottom",gv="right",bv="left",yv="auto",wv=[hv,mv,gv,bv],xv="start",Cv="end",_v="viewport",Sv="popper",kv=wv.reduce(function(e,t){return e.concat([t+"-"+xv,t+"-"+Cv])},[]),Ev=[].concat(wv,[yv]).reduce(function(e,t){return e.concat([t,t+"-"+xv,t+"-"+Cv])},[]),Tv=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Av(e){return e?(e.nodeName||"").toLowerCase():null}function Ov(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Mv(e){return e instanceof Ov(e).Element||e instanceof Element}function Rv(e){return e instanceof Ov(e).HTMLElement||e instanceof HTMLElement}function Lv(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Ov(e).ShadowRoot||e instanceof ShadowRoot)}var Pv={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},l=t.elements[e];!Rv(l)||!Av(l)||(Object.assign(l.style,n),Object.keys(o).forEach(function(e){var t=o[e];!1===t?l.removeAttribute(e):l.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var o=t.elements[e],l=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});!Rv(o)||!Av(o)||(Object.assign(o.style,r),Object.keys(l).forEach(function(e){o.removeAttribute(e)}))})}},requires:["computeStyles"]};function Nv(e){return e.split("-")[0]}var Iv=Math.max,Bv=Math.min,Fv=Math.round;function $v(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,l=1;if(Rv(e)&&t){var r=e.offsetHeight,a=e.offsetWidth;a>0&&(o=Fv(n.width)/a||1),r>0&&(l=Fv(n.height)/r||1)}return{width:n.width/o,height:n.height/l,top:n.top/l,right:n.right/o,bottom:n.bottom/l,left:n.left/o,x:n.left/o,y:n.top/l}}function jv(e){var t=$v(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function Vv(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Lv(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Dv(e){return Ov(e).getComputedStyle(e)}function zv(e){return["table","td","th"].indexOf(Av(e))>=0}function Hv(e){return((Mv(e)?e.ownerDocument:e.document)||window.document).documentElement}function Wv(e){return"html"===Av(e)?e:e.assignedSlot||e.parentNode||(Lv(e)?e.host:null)||Hv(e)}function qv(e){return Rv(e)&&"fixed"!==Dv(e).position?e.offsetParent:null}function Uv(e){for(var t=Ov(e),n=qv(e);n&&zv(n)&&"static"===Dv(n).position;)n=qv(n);return n&&("html"===Av(n)||"body"===Av(n)&&"static"===Dv(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Rv(e)&&"fixed"===Dv(e).position)return null;var n=Wv(e);for(Lv(n)&&(n=n.host);Rv(n)&&["html","body"].indexOf(Av(n))<0;){var o=Dv(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function Kv(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Gv(e,t,n){return Iv(e,Bv(t,n))}function Yv(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Xv(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Zv={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,l=e.options,r=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Nv(n.placement),i=Kv(s),u=[bv,gv].indexOf(s)>=0?"height":"width";if(r&&a){var c=function(e,t){return Yv("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Xv(e,wv))}(l.padding,n),d=jv(r),p="y"===i?hv:bv,f="y"===i?mv:gv,v=n.rects.reference[u]+n.rects.reference[i]-a[i]-n.rects.popper[u],h=a[i]-n.rects.reference[i],m=Uv(r),g=m?"y"===i?m.clientHeight||0:m.clientWidth||0:0,b=v/2-h/2,y=c[p],w=g-d[u]-c[f],x=g/2-d[u]/2+b,C=Gv(y,x,w),_=i;n.modifiersData[o]=((t={})[_]=C,t.centerOffset=C-x,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"==typeof o&&!(o=t.elements.popper.querySelector(o))||!Vv(t.elements.popper,o)||(t.elements.arrow=o))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Jv(e){return e.split("-")[1]}var Qv={top:"auto",right:"auto",bottom:"auto",left:"auto"};function eh(e){var t,n=e.popper,o=e.popperRect,l=e.placement,r=e.variation,a=e.offsets,s=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=a.x,f=void 0===p?0:p,v=a.y,h=void 0===v?0:v,m="function"==typeof c?c({x:f,y:h}):{x:f,y:h};f=m.x,h=m.y;var g=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=bv,w=hv,x=window;if(u){var C=Uv(n),_="clientHeight",S="clientWidth";C===Ov(n)&&"static"!==Dv(C=Hv(n)).position&&"absolute"===s&&(_="scrollHeight",S="scrollWidth"),(l===hv||(l===bv||l===gv)&&r===Cv)&&(w=mv,h-=(d&&C===x&&x.visualViewport?x.visualViewport.height:C[_])-o.height,h*=i?1:-1),l!==bv&&(l!==hv&&l!==mv||r!==Cv)||(y=gv,f-=(d&&C===x&&x.visualViewport?x.visualViewport.width:C[S])-o.width,f*=i?1:-1)}var k,E=Object.assign({position:s},u&&Qv),T=!0===c?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:Fv(t*o)/o||0,y:Fv(n*o)/o||0}}({x:f,y:h}):{x:f,y:h};return f=T.x,h=T.y,i?Object.assign({},E,((k={})[w]=b?"0":"",k[y]=g?"0":"",k.transform=(x.devicePixelRatio||1)<=1?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",k)):Object.assign({},E,((t={})[w]=b?h+"px":"",t[y]=g?f+"px":"",t.transform="",t))}var th={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,l=void 0===o||o,r=n.adaptive,a=void 0===r||r,s=n.roundOffsets,i=void 0===s||s,u={placement:Nv(t.placement),variation:Jv(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:l,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,eh(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:i})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,eh(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},nh={passive:!0},oh={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,l=o.scroll,r=void 0===l||l,a=o.resize,s=void 0===a||a,i=Ov(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&u.forEach(function(e){e.addEventListener("scroll",n.update,nh)}),s&&i.addEventListener("resize",n.update,nh),function(){r&&u.forEach(function(e){e.removeEventListener("scroll",n.update,nh)}),s&&i.removeEventListener("resize",n.update,nh)}},data:{}},lh={left:"right",right:"left",bottom:"top",top:"bottom"};function rh(e){return e.replace(/left|right|bottom|top/g,function(e){return lh[e]})}var ah={start:"end",end:"start"};function sh(e){return e.replace(/start|end/g,function(e){return ah[e]})}function ih(e){var t=Ov(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function uh(e){return $v(Hv(e)).left+ih(e).scrollLeft}function ch(e){var t=Dv(e),n=t.overflow,o=t.overflowX,l=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+l+o)}function dh(e){return["html","body","#document"].indexOf(Av(e))>=0?e.ownerDocument.body:Rv(e)&&ch(e)?e:dh(Wv(e))}function ph(e,t){var n;void 0===t&&(t=[]);var o=dh(e),l=o===(null==(n=e.ownerDocument)?void 0:n.body),r=Ov(o),a=l?[r].concat(r.visualViewport||[],ch(o)?o:[]):o,s=t.concat(a);return l?s:s.concat(ph(Wv(a)))}function fh(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function vh(e,t){return t===_v?fh(function(e){var t=Ov(e),n=Hv(e),o=t.visualViewport,l=n.clientWidth,r=n.clientHeight,a=0,s=0;return o&&(l=o.width,r=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=o.offsetLeft,s=o.offsetTop)),{width:l,height:r,x:a+uh(e),y:s}}(e)):Mv(t)?function(e){var t=$v(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):fh(function(e){var t,n=Hv(e),o=ih(e),l=null==(t=e.ownerDocument)?void 0:t.body,r=Iv(n.scrollWidth,n.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),a=Iv(n.scrollHeight,n.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),s=-o.scrollLeft+uh(e),i=-o.scrollTop;return"rtl"===Dv(l||n).direction&&(s+=Iv(n.clientWidth,l?l.clientWidth:0)-r),{width:r,height:a,x:s,y:i}}(Hv(e)))}function hh(e,t,n){var o="clippingParents"===t?function(e){var t=ph(Wv(e)),n=["absolute","fixed"].indexOf(Dv(e).position)>=0&&Rv(e)?Uv(e):e;return Mv(n)?t.filter(function(e){return Mv(e)&&Vv(e,n)&&"body"!==Av(e)}):[]}(e):[].concat(t),l=[].concat(o,[n]),r=l[0],a=l.reduce(function(t,n){var o=vh(e,n);return t.top=Iv(o.top,t.top),t.right=Bv(o.right,t.right),t.bottom=Bv(o.bottom,t.bottom),t.left=Iv(o.left,t.left),t},vh(e,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mh(e){var t,n=e.reference,o=e.element,l=e.placement,r=l?Nv(l):null,a=l?Jv(l):null,s=n.x+n.width/2-o.width/2,i=n.y+n.height/2-o.height/2;switch(r){case hv:t={x:s,y:n.y-o.height};break;case mv:t={x:s,y:n.y+n.height};break;case gv:t={x:n.x+n.width,y:i};break;case bv:t={x:n.x-o.width,y:i};break;default:t={x:n.x,y:n.y}}var u=r?Kv(r):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case xv:t[u]=t[u]-(n[c]/2-o[c]/2);break;case Cv:t[u]=t[u]+(n[c]/2-o[c]/2)}}return t}function gh(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=void 0===o?e.placement:o,r=n.boundary,a=void 0===r?"clippingParents":r,s=n.rootBoundary,i=void 0===s?_v:s,u=n.elementContext,c=void 0===u?Sv:u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,v=void 0===f?0:f,h=Yv("number"!=typeof v?v:Xv(v,wv)),m=c===Sv?"reference":Sv,g=e.rects.popper,b=e.elements[p?m:c],y=hh(Mv(b)?b:b.contextElement||Hv(e.elements.popper),a,i),w=$v(e.elements.reference),x=mh({reference:w,element:g,placement:l}),C=fh(Object.assign({},g,x)),_=c===Sv?C:w,S={top:y.top-_.top+h.top,bottom:_.bottom-y.bottom+h.bottom,left:y.left-_.left+h.left,right:_.right-y.right+h.right},k=e.modifiersData.offset;if(c===Sv&&k){var E=k[l];Object.keys(S).forEach(function(e){var t=[gv,mv].indexOf(e)>=0?1:-1,n=[hv,mv].indexOf(e)>=0?"y":"x";S[e]+=E[n]*t})}return S}var bh={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0===a||a,i=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,v=void 0===f||f,h=n.allowedAutoPlacements,m=t.options.placement,g=Nv(m),b=i||(g!==m&&v?function(e){if(Nv(e)===yv)return[];var t=rh(e);return[sh(e),t,sh(t)]}(m):[rh(m)]),y=[m].concat(b).reduce(function(e,n){return e.concat(Nv(n)===yv?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=n.boundary,r=n.rootBoundary,a=n.padding,s=n.flipVariations,i=n.allowedAutoPlacements,u=void 0===i?Ev:i,c=Jv(o),d=c?s?kv:kv.filter(function(e){return Jv(e)===c}):wv,p=d.filter(function(e){return u.indexOf(e)>=0});0===p.length&&(p=d);var f=p.reduce(function(t,n){return t[n]=gh(e,{placement:n,boundary:l,rootBoundary:r,padding:a})[Nv(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:h}):n)},[]),w=t.rects.reference,x=t.rects.popper,C=new Map,_=!0,S=y[0],k=0;k=0,M=O?"width":"height",R=gh(t,{placement:E,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),L=O?A?gv:bv:A?mv:hv;w[M]>x[M]&&(L=rh(L));var P=rh(L),N=[];if(r&&N.push(R[T]<=0),s&&N.push(R[L]<=0,R[P]<=0),N.every(function(e){return e})){S=E,_=!1;break}C.set(E,N)}if(_)for(var I=function(e){var t=y.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return S=t,"break"},B=v?3:1;B>0&&"break"!==I(B);B--);t.placement!==S&&(t.modifiersData[o]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function yh(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function wh(e){return[hv,gv,mv,bv].some(function(t){return e[t]>=0})}var xh={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,l=t.rects.popper,r=t.modifiersData.preventOverflow,a=gh(t,{elementContext:"reference"}),s=gh(t,{altBoundary:!0}),i=yh(a,o),u=yh(s,l,r),c=wh(i),d=wh(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}},Ch={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.offset,r=void 0===l?[0,0]:l,a=Ev.reduce(function(e,n){return e[n]=function(e,t,n){var o=Nv(e),l=[bv,hv].indexOf(o)>=0?-1:1,r="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=r[0],s=r[1];return a=a||0,s=(s||0)*l,[bv,gv].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,r),e},{}),s=a[t.placement],i=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=a}},_h={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=mh({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}},Sh={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0!==a&&a,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,v=n.tetherOffset,h=void 0===v?0:v,m=gh(t,{boundary:i,rootBoundary:u,padding:d,altBoundary:c}),g=Nv(t.placement),b=Jv(t.placement),y=!b,w=Kv(g),x=function(e){return"x"===e?"y":"x"}(w),C=t.modifiersData.popperOffsets,_=t.rects.reference,S=t.rects.popper,k="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,E="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(C){if(r){var O,M="y"===w?hv:bv,R="y"===w?mv:gv,L="y"===w?"height":"width",P=C[w],N=P+m[M],I=P-m[R],B=f?-S[L]/2:0,F=b===xv?_[L]:S[L],$=b===xv?-S[L]:-_[L],j=t.elements.arrow,V=f&&j?jv(j):{width:0,height:0},D=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=D[M],H=D[R],W=Gv(0,_[L],V[L]),q=y?_[L]/2-B-W-z-E.mainAxis:F-W-z-E.mainAxis,U=y?-_[L]/2+B+W+H+E.mainAxis:$+W+H+E.mainAxis,K=t.elements.arrow&&Uv(t.elements.arrow),G=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Y=null!=(O=null==T?void 0:T[w])?O:0,X=P+U-Y,Z=Gv(f?Bv(N,P+q-Y-G):N,P,f?Iv(I,X):I);C[w]=Z,A[w]=Z-P}if(s){var J,Q="x"===w?hv:bv,ee="x"===w?mv:gv,te=C[x],ne="y"===x?"height":"width",oe=te+m[Q],le=te-m[ee],re=-1!==[hv,bv].indexOf(g),ae=null!=(J=null==T?void 0:T[x])?J:0,se=re?oe:te-_[ne]-S[ne]-ae+E.altAxis,ie=re?te+_[ne]+S[ne]-ae-E.altAxis:le,ue=f&&re?function(e,t,n){var o=Gv(e,t,n);return o>n?n:o}(se,te,ie):Gv(f?se:oe,te,f?ie:le);C[x]=ue,A[x]=ue-te}t.modifiersData[o]=A}},requiresIfExists:["offset"]};function kh(e,t,n){void 0===n&&(n=!1);var o=Rv(t),l=Rv(t)&&function(e){var t=e.getBoundingClientRect(),n=Fv(t.width)/e.offsetWidth||1,o=Fv(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),r=Hv(t),a=$v(e,l),s={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(o||!o&&!n)&&(("body"!==Av(t)||ch(r))&&(s=function(e){return e!==Ov(e)&&Rv(e)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(e):ih(e)}(t)),Rv(t)?((i=$v(t,!0)).x+=t.clientLeft,i.y+=t.clientTop):r&&(i.x=uh(r))),{x:a.left+s.scrollLeft-i.x,y:a.top+s.scrollTop-i.y,width:a.width,height:a.height}}function Eh(e){var t=new Map,n=new Set,o=[];function l(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var o=t.get(e);o&&l(o)}}),o.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||l(e)}),o}function Th(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}var Ah={placement:"bottom",modifiers:[],strategy:"absolute"};function Oh(){for(var e=arguments.length,t=new Array(e),n=0;n({})},strategy:{type:String,values:["fixed","absolute"],default:"absolute"}}),Nh=Nd({...Ph,...Lh,id:String,style:{type:[String,Array,Object]},className:{type:[String,Array,Object]},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:[String,Array,Object]},popperStyle:{type:[String,Array,Object]},referenceEl:{type:Object},triggerTargetEl:{type:Object},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Qp(["ariaLabel"]),loop:Boolean}),Ih=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:l}=e,r={placement:n,strategy:o,...l,modifiers:[...Bh(e),...t]};return function(e,t){t&&(e.modifiers=[...e.modifiers,...null!=t?t:[]])}(r,null==l?void 0:l.modifiers),r};function Bh(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,null!=t?t:12]}},{name:"preventOverflow",options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}const Fh=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:e})=>{const t=function(e){const t=Object.keys(e.elements),n=Fc(t.map(t=>[t,e.styles[t]||{}])),o=Fc(t.map(t=>[t,e.attributes[t]]));return{styles:n,attributes:o}}(e);Object.assign(a.value,t)},requires:["computeStyles"]},l=yr(()=>{const{onFirstUpdate:e,placement:t,strategy:l,modifiers:r}=Ot(n);return{onFirstUpdate:e,placement:t||"bottom",strategy:l||"absolute",modifiers:[...r||[],o,{name:"applyStyles",enabled:!1}]}}),r=kt(),a=St({styles:{popper:{position:Ot(l).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{r.value&&(r.value.destroy(),r.value=void 0)};return wn(l,e=>{const t=Ot(r);t&&t.setOptions(e)},{deep:!0}),wn([e,t],([e,t])=>{s(),e&&t&&(r.value=Rh(e,t,Ot(l)))}),vo(()=>{s()}),{state:yr(()=>{var e;return{...(null==(e=Ot(r))?void 0:e.state)||{}}}),styles:yr(()=>Ot(a).styles),attributes:yr(()=>Ot(a).attributes),update:()=>{var e;return null==(e=Ot(r))?void 0:e.update()},forceUpdate:()=>{var e;return null==(e=Ot(r))?void 0:e.forceUpdate()},instanceRef:yr(()=>Ot(r))}},$h=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:l}=mn(Rf,void 0),r=St(),a=yr(()=>e.arrowOffset),s=yr(()=>({name:"eventListeners",enabled:!!e.visible})),i=yr(()=>{var e;const t=Ot(r),n=null!=(e=Ot(a))?e:0;return{name:"arrow",enabled:(o=t,!(void 0===o)),options:{element:t,padding:n}};var o}),u=yr(()=>({onFirstUpdate:()=>{v()},...Ih(e,[Ot(i),Ot(s)])})),c=yr(()=>(e=>{if(ld)return pd(e)})(e.referenceEl)||Ot(o)),{attributes:d,state:p,styles:f,update:v,forceUpdate:h,instanceRef:m}=Fh(c,n,u);return wn(m,e=>t.value=e,{flush:"sync"}),co(()=>{wn(()=>{var e,t;return null==(t=null==(e=Ot(c))?void 0:e.getBoundingClientRect)?void 0:t.call(e)},()=>{v()})}),vo(()=>{t.value=void 0}),{attributes:d,arrowRef:r,contentRef:n,instanceRef:m,state:p,styles:f,role:l,forceUpdate:h,update:v}};var jh=Kd(Xn({name:"ElPopperContent",__name:"content",props:Nh,emits:{mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},setup(e,{expose:t,emit:n}){const o=n,l=e,{focusStartRef:a,trapped:s,onFocusAfterReleased:i,onFocusAfterTrapped:u,onFocusInTrap:c,onFocusoutPrevented:d,onReleaseRequested:p}=((e,t)=>{const n=St(!1),o=St();return vo(()=>{o.value=void 0}),{focusStartRef:o,trapped:n,onFocusAfterReleased:e=>{var n;"pointer"!==(null==(n=e.detail)?void 0:n.focusReason)&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:t=>{e.visible&&!n.value&&(t.target&&(o.value=t.target),n.value=!0)},onFocusoutPrevented:t=>{e.trapping||("pointer"===t.detail.focusReason&&t.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}})(l,o),{attributes:f,arrowRef:v,contentRef:h,styles:m,instanceRef:g,role:b,update:y}=$h(l),{ariaModal:w,arrowStyle:x,contentAttrs:C,contentClass:_,contentStyle:S,updateZIndex:k}=((e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:l}=Ed(),r=Wa("popper"),a=yr(()=>Ot(t).popper),s=St(Jc(e.zIndex)?e.zIndex:l()),i=yr(()=>[r.b(),r.is("pure",e.pure),r.is(e.effect),e.popperClass]),u=yr(()=>[{zIndex:Ot(s)},Ot(n).popper,e.popperStyle||{}]);return{ariaModal:yr(()=>"dialog"===o.value?"false":void 0),arrowStyle:yr(()=>Ot(n).arrow||{}),contentAttrs:a,contentClass:i,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=Jc(e.zIndex)?e.zIndex:l()}}})(l,{styles:m,attributes:f,role:b}),E=mn(cf,void 0);let T;hn(Lf,{arrowStyle:x,arrowRef:v}),E&&hn(cf,{...E,addInputId:r,removeInputId:r});const A=(e=!0)=>{y(),e&&k()},O=()=>{A(!1),l.visible&&l.focusOnShow?s.value=!0:!1===l.visible&&(s.value=!1)};return co(()=>{wn(()=>l.triggerTargetEl,(e,t)=>{null==T||T(),T=void 0;const n=Ot(e||h.value),o=Ot(t||h.value);Qc(n)&&(T=wn([b,()=>l.ariaLabel,w,()=>l.id],e=>{["role","aria-label","aria-modal","id"].forEach((t,o)=>{Vc(e[o])?n.removeAttribute(t):n.setAttribute(t,e[o])})},{immediate:!0})),o!==n&&Qc(o)&&["role","aria-label","aria-modal","id"].forEach(e=>{o.removeAttribute(e)})},{immediate:!0}),wn(()=>l.visible,O,{immediate:!0})}),vo(()=>{null==T||T(),T=void 0,h.value=void 0}),t({popperContentRef:h,popperInstanceRef:g,updatePopper:A,contentStyle:S}),(e,t)=>(Fl(),Dl("div",tr({ref_key:"contentRef",ref:h},Ot(C),{style:Ot(S),class:Ot(_),tabindex:"-1",onMouseenter:t[0]||(t[0]=t=>e.$emit("mouseenter",t)),onMouseleave:t[1]||(t[1]=t=>e.$emit("mouseleave",t))}),[Gl(Ot(vv),{loop:e.loop,trapped:Ot(s),"trap-on-focus-in":!0,"focus-trap-el":Ot(h),"focus-start-el":Ot(a),onFocusAfterTrapped:Ot(u),onFocusAfterReleased:Ot(i),onFocusin:Ot(c),onFocusoutPrevented:Ot(d),onReleaseRequested:Ot(p)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["loop","trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const Vh=Gd(Nf),Dh=Symbol("elTooltip");function zh(){let e;const t=()=>window.clearTimeout(e);return nd(()=>t()),{registerTimeout:(n,o)=>{t(),e=window.setTimeout(n,o)},cancelTimeout:t}}const Hh=Nd({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),Wh=Nd({...Hh,...Nh,appendTo:{type:Ud.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:Boolean,default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Qp(["ariaLabel"])}),qh=Nd({...Bf,disabled:Boolean,trigger:{type:[String,Array],default:"hover"},triggerKeys:{type:Array,default:()=>[iv.enter,iv.numpadEnter,iv.space]},focusOnTarget:Boolean}),Uh=Pd({type:Boolean,default:null}),Kh=Pd({type:Function}),{useModelToggleProps:Gh,useModelToggleEmits:Yh,useModelToggle:Xh}=(e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t];return{useModelToggle:({indicator:o,toggleReason:l,shouldHideWhenRouteChanges:r,shouldProceed:a,onShow:s,onHide:i})=>{const u=ar(),{emit:c}=u,d=u.props,p=yr(()=>g(d[n])),f=yr(()=>null===d[e]),v=e=>{!0!==o.value&&(o.value=!0,l&&(l.value=e),g(s)&&s(e))},h=e=>{!1!==o.value&&(o.value=!1,l&&(l.value=e),g(i)&&i(e))},m=e=>{if(!0===d.disabled||g(a)&&!a())return;const n=p.value&&ld;n&&c(t,!0),!f.value&&n||v(e)},b=e=>{if(!0===d.disabled||!ld)return;const n=p.value&&ld;n&&c(t,!1),!f.value&&n||h(e)},y=e=>{Zc(e)&&(d.disabled&&e?p.value&&c(t,!1):o.value!==e&&(e?v():h()))};return wn(()=>d[e],y),r&&void 0!==u.appContext.config.globalProperties.$route&&wn(()=>({...u.proxy.$route}),()=>{r.value&&o.value&&b()}),co(()=>{y(d[e])}),{hide:b,show:m,toggle:()=>{o.value?b():m()},hasUpdateHandler:p}},useModelToggleProps:{[e]:Uh,[n]:Kh},useModelToggleEmits:o}})("visible"),Zh=Nd({...Pf,...Gh,...Wh,...qh,...Lh,showArrow:{type:Boolean,default:!0}}),Jh=[...Yh,"before-show","before-hide","show","hide","open","close"],Qh=(e,t)=>f(e)?e.includes(t):e===t,em=(e,t,n)=>o=>{Qh(Ot(e),t)&&n(o)};var tm=Kd(Xn({name:"ElTooltipTrigger",__name:"trigger",props:qh,setup(e,{expose:t}){const n=e,o=Wa("tooltip"),{controlled:l,id:r,open:a,onOpen:s,onClose:i,onToggle:u}=mn(Dh,void 0),c=St(null),d=()=>{if(Ot(l)||n.disabled)return!0},p=Ft(n,"trigger"),f=uv(d,em(p,"hover",e=>{s(e),n.focusOnTarget&&e.target&&tn(()=>{yf(e.target,{preventScroll:!0})})})),v=uv(d,em(p,"hover",i)),h=uv(d,em(p,"click",e=>{0===e.button&&u(e)})),m=uv(d,em(p,"focus",s)),g=uv(d,em(p,"focus",i)),b=uv(d,em(p,"contextmenu",e=>{e.preventDefault(),u(e)})),y=uv(d,e=>{const t=cv(e);n.triggerKeys.includes(t)&&(e.preventDefault(),u(e))});return t({triggerRef:c}),(e,t)=>(Fl(),zl(Ot(Df),{id:Ot(r),"virtual-ref":e.virtualRef,open:Ot(a),"virtual-triggering":e.virtualTriggering,class:q(Ot(o).e("trigger")),onBlur:Ot(g),onClick:Ot(h),onContextmenu:Ot(b),onFocus:Ot(m),onMouseenter:Ot(f),onMouseleave:Ot(v),onKeydown:Ot(y)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const nm=()=>{const e=Ha(),t=af(),n=yr(()=>`${e.value}-popper-container-${t.prefix}`),o=yr(()=>`#${n.value}`);return{id:n,selector:o}},om=()=>{const{id:e,selector:t}=nm();return uo(()=>{ld&&(document.body.querySelector(t.value)||(e=>{const t=document.createElement("div");t.id=e,document.body.appendChild(t)})(e.value))}),{id:e,selector:t}},lm=Xn({name:"ElTooltipContent",inheritAttrs:!1,__name:"content",props:Wh,setup(e,{expose:t}){const n=e,{selector:o}=nm(),l=Wa("tooltip"),r=St(),a=td(()=>{var e;return null==(e=r.value)?void 0:e.popperContentRef});let s;const{controlled:i,id:u,open:c,trigger:d,onClose:p,onOpen:v,onShow:h,onHide:m,onBeforeShow:g,onBeforeHide:b}=mn(Dh,void 0),y=yr(()=>n.transition||`${l.namespace.value}-fade-in-linear`),w=yr(()=>n.persistent);vo(()=>{null==s||s()});const x=yr(()=>!!Ot(w)||Ot(c)),C=yr(()=>!n.disabled&&Ot(c)),_=yr(()=>n.appendTo||o.value),S=yr(()=>{var e;return null!=(e=n.style)?e:{}}),k=St(!0),E=()=>{m(),N()&&yf(document.body,{preventScroll:!0}),k.value=!0},T=()=>{if(Ot(i))return!0},A=uv(T,()=>{n.enterable&&Qh(Ot(d),"hover")&&v()}),O=uv(T,()=>{Qh(Ot(d),"hover")&&p()}),M=()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e),null==g||g()},R=()=>{null==b||b()},L=()=>{h()},P=()=>{n.virtualTriggering||p()},N=e=>{var t;const n=null==(t=r.value)?void 0:t.popperContentRef,o=(null==e?void 0:e.relatedTarget)||document.activeElement;return null==n?void 0:n.contains(o)};return wn(()=>Ot(c),e=>{e?(k.value=!1,s=function(e,t,n={}){const{window:o=fd,ignore:l=[],capture:r=!0,detectIframe:a=!1}=n;if(!o)return ad;sd&&!md&&(md=!0,Array.from(o.document.body.children).forEach(e=>e.addEventListener("click",ad)),o.document.documentElement.addEventListener("click",ad));let s=!0;const i=e=>l.some(t=>{if("string"==typeof t)return Array.from(o.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{const n=pd(t);return n&&(e.target===n||e.composedPath().includes(n))}}),u=[hd(o,"click",n=>{const o=pd(e);o&&o!==n.target&&!n.composedPath().includes(o)&&(0===n.detail&&(s=!i(n)),s?t(n):s=!0)},{passive:!0,capture:r}),hd(o,"pointerdown",t=>{const n=pd(e);s=!i(t)&&!(!n||t.composedPath().includes(n))},{passive:!0}),a&&hd(o,"blur",n=>{setTimeout(()=>{var l;const r=pd(e);"IFRAME"!==(null==(l=o.document.activeElement)?void 0:l.tagName)||(null==r?void 0:r.contains(o.document.activeElement))||t(n)},0)})].filter(Boolean);return()=>u.forEach(e=>e())}(a,()=>{var e;Ot(i)||(e=Ot(d),e||0===e?f(e)?e:[e]:[]).every(e=>"hover"!==e&&"focus"!==e)&&p()},{detectIframe:!0})):null==s||s()},{flush:"post"}),wn(()=>n.content,()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e)}),t({contentRef:r,isFocusInsideContent:N}),(e,t)=>(Fl(),zl(Ot(Xd),{disabled:!e.teleported,to:_.value},{default:pn(()=>[x.value||!k.value?(Fl(),zl(Nr,{key:0,name:y.value,appear:!w.value,onAfterLeave:E,onBeforeEnter:M,onAfterEnter:L,onBeforeLeave:R,persisted:""},{default:pn(()=>[fn(Gl(Ot(jh),tr({id:Ot(u),ref_key:"contentRef",ref:r},e.$attrs,{"aria-label":e.ariaLabel,"aria-hidden":k.value,"boundaries-padding":e.boundariesPadding,"fallback-placements":e.fallbackPlacements,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,"popper-class":e.popperClass,"popper-style":[e.popperStyle,S.value],"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,visible:C.value,"z-index":e.zIndex,loop:e.loop,onMouseenter:Ot(A),onMouseleave:Ot(O),onBlur:P,onClose:Ot(p)}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","loop","onMouseenter","onMouseleave","onClose"]),[[Xr,C.value]])]),_:3},8,["name","appear"])):Zl("v-if",!0)]),_:3},8,["disabled","to"]))}});var rm=Kd(lm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const am=["innerHTML"],sm={key:1},im=Gd(Kd(Xn({name:"ElTooltip",__name:"tooltip",props:Zh,emits:Jh,setup(e,{expose:t,emit:n}){const o=e,l=n;om();const r=Wa("tooltip"),a=sf(),s=St(),i=St(),u=()=>{var e;const t=Ot(s);t&&(null==(e=t.popperInstanceRef)||e.update())},c=St(!1),d=St(),{show:p,hide:f,hasUpdateHandler:v}=Xh({indicator:c,toggleReason:d}),{onOpen:h,onClose:m}=(({showAfter:e,hideAfter:t,autoClose:n,open:o,close:l})=>{const{registerTimeout:r}=zh(),{registerTimeout:a,cancelTimeout:s}=zh();return{onOpen:(t,s=Ot(e))=>{r(()=>{o(t);const e=Ot(n);Jc(e)&&e>0&&a(()=>{l(t)},e)},s)},onClose:(e,n=Ot(t))=>{s(),r(()=>{l(e)},n)}}})({showAfter:Ft(o,"showAfter"),hideAfter:Ft(o,"hideAfter"),autoClose:Ft(o,"autoClose"),open:p,close:f}),g=yr(()=>Zc(o.visible)&&!v.value),b=yr(()=>[r.b(),o.popperClass]);return hn(Dh,{controlled:g,id:a,open:vt(c),trigger:Ft(o,"trigger"),onOpen:h,onClose:m,onToggle:e=>{Ot(c)?m(e):h(e)},onShow:()=>{l("show",d.value)},onHide:()=>{l("hide",d.value)},onBeforeShow:()=>{l("before-show",d.value)},onBeforeHide:()=>{l("before-hide",d.value)},updatePopper:u}),wn(()=>o.disabled,e=>{e&&c.value&&(c.value=!1)}),lo(()=>c.value&&f()),vo(()=>{d.value=void 0}),t({popperRef:s,contentRef:i,isFocusInsideContent:e=>{var t;return null==(t=i.value)?void 0:t.isFocusInsideContent(e)},updatePopper:u,onOpen:h,onClose:m,hide:f}),(e,t)=>(Fl(),zl(Ot(Vh),{ref_key:"popperRef",ref:s,role:e.role},{default:pn(()=>[Gl(tm,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering,"focus-on-target":e.focusOnTarget},{default:pn(()=>[e.$slots.default?Ao(e.$slots,"default",{key:0}):Zl("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering","focus-on-target"]),Gl(rm,{ref_key:"contentRef",ref:i,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":b.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo,loop:e.loop},{default:pn(()=>[Ao(e.$slots,"content",{},()=>[e.rawContent?(Fl(),Dl("span",{key:0,innerHTML:e.content},null,8,am)):(Fl(),Dl("span",sm,Z(e.content),1))]),e.showArrow?(Fl(),zl(Ot(If),{key:0})):Zl("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to","loop"])]),_:3},8,["role"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]])),um=Gd(Kd(Xn({name:"ElBadge",__name:"badge",props:Nd({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:[String,Object,Array]},offset:{type:Array,default:[0,0]},badgeClass:{type:String}}),setup(e,{expose:t}){const n=e,o=Wa("badge"),l=yr(()=>n.isDot?"":Jc(n.value)&&Jc(n.max)&&n.max{var e;return[{backgroundColor:n.color,marginRight:ap(-n.offset[0]),marginTop:ap(n.offset[1])},null!=(e=n.badgeStyle)?e:{}]});return t({content:l}),(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Ao(e.$slots,"default"),Gl(Nr,{name:`${Ot(o).namespace.value}-zoom-in-center`,persisted:""},{default:pn(()=>[fn(Kl("sup",{class:q([Ot(o).e("content"),Ot(o).em("content",e.type),Ot(o).is("fixed",!!e.$slots.default),Ot(o).is("dot",e.isDot),Ot(o).is("hide-zero",!e.showZero&&0===e.value),e.badgeClass]),style:V(r.value)},[Ao(e.$slots,"content",{value:l.value},()=>[Xl(Z(l.value),1)])],6),[[Xr,!e.hidden&&(l.value||e.isDot||e.$slots.content)]])]),_:3},8,["name"])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]])),cm=Symbol("buttonGroupContextKey"),dm=({from:e,replacement:t,scope:n,version:o,ref:l,type:r="API"},a)=>{wn(()=>Ot(a),e=>{},{immediate:!0})},pm=["default","primary","success","warning","info","danger","text",""],fm=Nd({size:Bd,disabled:{type:Boolean,default:void 0},type:{type:String,values:pm,default:""},icon:{type:Dp},nativeType:{type:String,values:["button","submit","reset"],default:"button"},loading:Boolean,loadingIcon:{type:Dp,default:()=>Ep},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:[String,Object],default:"button"}}),vm={click:e=>e instanceof MouseEvent};function hm(e,t){(function(e){return"string"==typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function mm(e){return Math.min(1,Math.max(0,e))}function gm(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function bm(e){return e<=1?"".concat(100*Number(e),"%"):e}function ym(e){return 1===e.length?"0"+e:String(e)}function wm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=0,s=(o+l)/2;if(o===l)a=0,r=0;else{var i=o-l;switch(a=s>.5?i/(2-o-l):i/(o+l),o){case e:r=(t-n)/i+(t1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Cm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=o,s=o-l,i=0===o?0:s/o;if(o===l)r=0;else{switch(o){case e:r=(t-n)/s+(t>16,g:(65280&e)>>8,b:255&e}}(t)),this.originalInput=t;var l=Tm(t);this.originalInput=t,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(o=n.format)&&void 0!==o?o:l.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=l.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,o=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=gm(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return 0===this.toHsl().s},e.prototype.toHsv=function(){var e=Cm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=Cm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.v);return 1===this.a?"hsv(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsva(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var e=wm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=wm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.l);return 1===this.a?"hsl(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsla(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(e){return void 0===e&&(e=!1),_m(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return void 0===e&&(e=!1),"#"+this.toHex(e)},e.prototype.toHex8=function(e){return void 0===e&&(e=!1),function(e,t,n,o,l){var r,a=[ym(Math.round(e).toString(16)),ym(Math.round(t).toString(16)),ym(Math.round(n).toString(16)),ym((r=o,Math.round(255*parseFloat(r)).toString(16)))];return l&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return void 0===e&&(e=!1),"#"+this.toHex8(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return 1===this.a?"rgb(".concat(e,", ").concat(t,", ").concat(n,")"):"rgba(".concat(e,", ").concat(t,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var e=function(e){return"".concat(Math.round(100*hm(e,255)),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(100*hm(e,255))};return 1===this.a?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+_m(this.r,this.g,this.b,!1),t=0,n=Object.entries(Em);t=0;return t||!o||!e.startsWith("hex")&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this.a?this.toName():this.toRgbString()},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=mm(n.l),new e(n)},e.prototype.brighten=function(t){void 0===t&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-t/100*255))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-t/100*255))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-t/100*255))),new e(n)},e.prototype.darken=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=mm(n.l),new e(n)},e.prototype.tint=function(e){return void 0===e&&(e=10),this.mix("white",e)},e.prototype.shade=function(e){return void 0===e&&(e=10),this.mix("black",e)},e.prototype.desaturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=mm(n.s),new e(n)},e.prototype.saturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=mm(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){void 0===n&&(n=50);var o=this.toRgb(),l=new e(t).toRgb(),r=n/100;return new e({r:(l.r-o.r)*r+o.r,g:(l.g-o.g)*r+o.g,b:(l.b-o.b)*r+o.b,a:(l.a-o.a)*r+o.a})},e.prototype.analogous=function(t,n){void 0===t&&(t=6),void 0===n&&(n=30);var o=this.toHsl(),l=360/n,r=[this];for(o.h=(o.h-(l*t>>1)+720)%360;--t;)o.h=(o.h+l)%360,r.push(new e(o));return r},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var n=this.toHsv(),o=n.h,l=n.s,r=n.v,a=[],s=1/t;t--;)a.push(new e({h:o,s:l,v:r})),r=(r+s)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb();return new e({r:o.r+(n.r-o.r)*n.a,g:o.g+(n.g-o.g)*n.a,b:o.b+(n.b-o.b)*n.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,l=[this],r=360/t,a=1;a{let o={},l=e.color;if(l){const r=l.match(/var\((.*?)\)/);r&&(l=window.getComputedStyle(window.document.documentElement).getPropertyValue(r[1]));const a=new Pm(l),s=e.dark?a.tint(20).toString():Nm(a,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?Nm(a,90):a.tint(90).toString(),"text-color":l,"border-color":e.dark?Nm(a,50):a.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":l,"hover-border-color":l,"active-bg-color":s,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":s}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?Nm(a,90):a.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?Nm(a,50):a.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?Nm(a,80):a.tint(80).toString());else{const r=e.dark?Nm(a,30):a.tint(30).toString(),i=a.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":l,"text-color":i,"border-color":l,"hover-bg-color":r,"hover-text-color":i,"hover-border-color":r,"active-bg-color":s,"active-border-color":s}),t.value){const t=e.dark?Nm(a,50):a.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=t,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=t}}}return o})}(o),a=Wa("button"),{_ref:s,_size:i,_type:u,_disabled:c,_props:d,_plain:p,_round:f,_text:v,shouldAddSpace:h,handleClick:m}=((e,t)=>{dm({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},yr(()=>"text"===e.type));const n=mn(cm,void 0),o=zd("button"),{form:l}=df(),r=vf(yr(()=>null==n?void 0:n.size)),a=hf(),s=St(),i=No(),u=yr(()=>{var t;return e.type||(null==n?void 0:n.type)||(null==(t=o.value)?void 0:t.type)||""}),c=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.autoInsertSpace)?n:null==(t=o.value)?void 0:t.autoInsertSpace)&&l}),d=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.plain)?n:null==(t=o.value)?void 0:t.plain)&&l}),p=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.round)?n:null==(t=o.value)?void 0:t.round)&&l}),f=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.text)?n:null==(t=o.value)?void 0:t.text)&&l}),v=yr(()=>"button"===e.tag?{ariaDisabled:a.value||e.loading,disabled:a.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=yr(()=>{var e;const t=null==(e=i.default)?void 0:e.call(i);if(c.value&&1===(null==t?void 0:t.length)){const e=t[0];if((null==e?void 0:e.type)===Ll){const t=e.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(t.trim())}}return!1});return{_disabled:a,_size:r,_type:u,_ref:s,_props:v,_plain:d,_round:p,_text:f,shouldAddSpace:h,handleClick:n=>{a.value||e.loading?n.stopPropagation():("reset"===e.nativeType&&(null==l||l.resetFields()),t("click",n))}}})(o,l),g=yr(()=>[a.b(),a.m(u.value),a.m(i.value),a.is("disabled",c.value),a.is("loading",o.loading),a.is("plain",p.value),a.is("round",f.value),a.is("circle",o.circle),a.is("text",v.value),a.is("link",o.link),a.is("has-bg",o.bg)]);return t({ref:s,size:i,type:u,disabled:c,shouldAddSpace:h}),(e,t)=>(Fl(),zl(_o(e.tag),tr({ref_key:"_ref",ref:s},Ot(d),{class:g.value,style:Ot(r),onClick:Ot(m)}),{default:pn(()=>[e.loading?(Fl(),Dl(Rl,{key:0},[e.$slots.loading?Ao(e.$slots,"loading",{key:0}):(Fl(),zl(Ot(ip),{key:1,class:q(Ot(a).is("loading"))},{default:pn(()=>[(Fl(),zl(_o(e.loadingIcon)))]),_:1},8,["class"]))],64)):e.icon||e.$slots.icon?(Fl(),zl(Ot(ip),{key:1},{default:pn(()=>[e.icon?(Fl(),zl(_o(e.icon),{key:0})):Ao(e.$slots,"icon",{key:1})]),_:3})):Zl("v-if",!0),e.$slots.default?(Fl(),Dl("span",{key:2,class:q({[Ot(a).em("text","expand")]:Ot(h)})},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)]),_:3},16,["class","style","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]),Bm=Kd(Xn({name:"ElButtonGroup",__name:"button-group",props:{size:fm.size,type:fm.type,direction:{type:String,values:["horizontal","vertical"],default:"horizontal"}},setup(e){const t=e;hn(cm,pt({size:Ft(t,"size"),type:Ft(t,"type")}));const n=Wa("button");return(e,o)=>(Fl(),Dl("div",{class:q([Ot(n).b("group"),Ot(n).bm("group",t.direction)])},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Fm=Gd(Im,{ButtonGroup:Bm});Yd(Bm);const $m=Gd(Kd(Xn({name:"ElCard",__name:"card",props:Nd({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:[String,Object,Array],default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),setup(e){const t=zd("card"),n=Wa("card");return(e,o)=>{var l;return Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).is(`${e.shadow||(null==(l=Ot(t))?void 0:l.shadow)||"always"}-shadow`)])},[e.$slots.header||e.header?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("header"),e.headerClass])},[Ao(e.$slots,"header",{},()=>[Xl(Z(e.header),1)])],2)):Zl("v-if",!0),Kl("div",{class:q([Ot(n).e("body"),e.bodyClass]),style:V(e.bodyStyle)},[Ao(e.$slots,"default")],6),e.$slots.footer||e.footer?(Fl(),Dl("div",{key:1,class:q([Ot(n).e("footer"),e.footerClass])},[Ao(e.$slots,"footer",{},()=>[Xl(Z(e.footer),1)])],2)):Zl("v-if",!0)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]));var jm=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(jm||{});const Vm=e=>{const t=f(e)?e:[e],n=[];return t.forEach(e=>{var t;f(e)?n.push(...Vm(e)):Hl(e)&&(null==(t=e.component)?void 0:t.subTree)?n.push(e,...Vm(e.component.subTree)):Hl(e)&&f(e.children)?n.push(...Vm(e.children)):Hl(e)&&2===e.shapeFlag?n.push(...Vm(e.type())):n.push(e)}),n},Dm=(e,t)=>{const n=kt({}),o=kt([]),l=new WeakMap,r=()=>{o.value=((e,t,n)=>Vm(e.subTree).filter(e=>{var n;return Hl(e)&&(null==(n=e.type)?void 0:n.name)===t&&!!e.component}).map(e=>e.component.uid).map(e=>n[e]).filter(e=>!!e))(e,t,n.value)},a=e=>e.render();return{children:o,addChild:e=>{n.value[e.uid]=e,At(n),co(()=>{const t=e.getVnode().el,o=t.parentNode;if(!l.has(o)){l.set(o,[]);const e=o.insertBefore.bind(o);o.insertBefore=(t,r)=>(l.get(o).some(e=>t===e||r===e)&&At(n),e(t,r))}l.get(o).push(t)})},removeChild:e=>{delete n.value[e.uid],At(n);const t=e.getVnode().el,o=t.parentNode,r=l.get(o),a=r.indexOf(t);r.splice(a,1)},ChildrenSorter:Xn({setup:(e,{slots:t})=>()=>(r(),t.default?wr(a,{render:t.default}):null)})}},zm={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:{type:Boolean,default:void 0},checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:Bd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},ariaLabel:String,...Qp(["ariaControls"])},Hm={[Zd]:e=>b(e)||Jc(e)||Zc(e),change:e=>b(e)||Jc(e)||Zc(e)},Wm=Symbol("checkboxGroupContextKey"),qm=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:l,isLabeledByFormItem:r})=>{const a=mn(Wm,void 0),{formItem:s}=df(),{emit:i}=ar();function u(t){var n,o,l,r;return[!0,e.trueValue,e.trueLabel].includes(t)?null==(o=null!=(n=e.trueValue)?n:e.trueLabel)||o:null!=(r=null!=(l=e.falseValue)?l:e.falseLabel)&&r}const c=yr(()=>(null==a?void 0:a.validateEvent)||e.validateEvent);return wn(()=>e.modelValue,()=>{c.value&&(null==s||s.validate("change").catch(e=>{}))}),{handleChange:function(e){if(n.value)return;const t=e.target;i(Jd,u(t.checked),e)},onClickRoot:async function(a){n.value||o.value||l.value||!r.value||a.composedPath().some(e=>"LABEL"===e.tagName)||(t.value=u([!1,e.falseValue,e.falseLabel].includes(t.value)),await tn(),function(e,t){i(Jd,u(e),t)}(t.value,a))}}},Um=(e,t)=>{const{formItem:n}=df(),{model:o,isGroup:l,isLimitExceeded:r}=(e=>{const t=St(!1),{emit:n}=ar(),o=mn(Wm,void 0),l=yr(()=>!1===Xc(o)),r=St(!1),a=yr({get(){var n,r;return l.value?null==(n=null==o?void 0:o.modelValue)?void 0:n.value:null!=(r=e.modelValue)?r:t.value},set(e){var s,i;l.value&&f(e)?(r.value=void 0!==(null==(s=null==o?void 0:o.max)?void 0:s.value)&&e.length>(null==o?void 0:o.max.value)&&e.length>a.value.length,!1===r.value&&(null==(i=null==o?void 0:o.changeEvent)||i.call(o,e))):(n(Zd,e),t.value=e)}});return{model:a,isGroup:l,isLimitExceeded:r}})(e),{isFocused:a,isChecked:s,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,actualValue:d}=((e,t,{model:n})=>{const o=mn(Wm,void 0),l=St(!1),r=yr(()=>ed(e.value)?e.label:e.value),a=yr(()=>{const t=n.value;return Zc(t)?t:f(t)?w(r.value)?t.map(wt).some(e=>jc(e,r.value)):t.map(wt).includes(r.value):null!=t?t===e.trueValue||t===e.trueLabel:!!t});return{checkboxButtonSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value}),{prop:!0}),isChecked:a,isFocused:l,checkboxSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value})),hasOwnLabel:yr(()=>!!t.default||!ed(r.value)),actualValue:r}})(e,t,{model:o}),{isDisabled:p}=(({model:e,isChecked:t})=>{const n=mn(Wm,void 0),o=mn(uf,void 0),l=yr(()=>{var o,l;const r=null==(o=null==n?void 0:n.max)?void 0:o.value,a=null==(l=null==n?void 0:n.min)?void 0:l.value;return!Xc(r)&&e.value.length>=r&&!t.value||!Xc(a)&&e.value.length<=a&&t.value});return{isDisabled:hf(yr(()=>{var e,t;return void 0===n?null!=(e=null==o?void 0:o.disabled)?e:l.value:(null==(t=n.disabled)?void 0:t.value)||l.value})),isLimitDisabled:l}})({model:o,isChecked:s}),{inputId:v,isLabeledByFormItem:h}=pf(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:l}),{handleChange:m,onClickRoot:g}=qm(e,{model:o,isLimitExceeded:r,hasOwnLabel:c,isDisabled:p,isLabeledByFormItem:h});var b,y;return e.checked&&(f(o.value)&&!o.value.includes(d.value)?o.value.push(d.value):o.value=null==(y=null!=(b=e.trueValue)?b:e.trueLabel)||y),dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>l.value&&ed(e.value))),dm({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.trueLabel)),dm({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.falseLabel)),{inputId:v,isLabeledByFormItem:h,isChecked:s,isDisabled:p,isFocused:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:o,actualValue:d,handleChange:m,onClickRoot:g}},Km=["id","indeterminate","name","tabindex","disabled"];var Gm=Kd(Xn({name:"ElCheckbox",__name:"checkbox",props:zm,emits:Hm,setup(e){const t=e,n=No(),{inputId:o,isLabeledByFormItem:l,isChecked:r,isDisabled:a,isFocused:s,checkboxSize:i,hasOwnLabel:u,model:c,actualValue:d,handleChange:p,onClickRoot:f}=Um(t,n),v=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:d.value}}),h=Wa("checkbox"),m=yr(()=>[h.b(),h.m(i.value),h.is("disabled",a.value),h.is("bordered",t.border),h.is("checked",r.value)]),g=yr(()=>[h.e("input"),h.is("disabled",a.value),h.is("checked",r.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(e,t)=>(Fl(),zl(_o(!Ot(u)&&Ot(l)?"span":"label"),{for:!Ot(u)&&Ot(l)?null:Ot(o),class:q(m.value),"aria-controls":e.indeterminate?e.ariaControls:null,"aria-checked":e.indeterminate?"mixed":void 0,"aria-label":e.ariaLabel,onClick:Ot(f)},{default:pn(()=>[Kl("span",{class:q(g.value)},[fn(Kl("input",tr({id:Ot(o),"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:Ot(h).e("original"),type:"checkbox",indeterminate:e.indeterminate,name:e.name,tabindex:e.tabindex,disabled:Ot(a)},v.value,{onChange:t[1]||(t[1]=(...e)=>Ot(p)&&Ot(p)(...e)),onFocus:t[2]||(t[2]=e=>s.value=!0),onBlur:t[3]||(t[3]=e=>s.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Km),[[Sa,Ot(c)]]),Kl("span",{class:q(Ot(h).e("inner"))},null,2)],2),Ot(u)?(Fl(),Dl("span",{key:0,class:q(Ot(h).e("label"))},[Ao(e.$slots,"default"),e.$slots.default?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.label),1)],64))],2)):Zl("v-if",!0)]),_:3},8,["for","class","aria-controls","aria-checked","aria-label","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const Ym=["name","tabindex","disabled"];var Xm=Kd(Xn({name:"ElCheckboxButton",__name:"checkbox-button",props:zm,emits:Hm,setup(e){const t=e,n=No(),{isFocused:o,isChecked:l,isDisabled:r,checkboxButtonSize:a,model:s,actualValue:i,handleChange:u}=Um(t,n),c=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:i.value}}),d=mn(Wm,void 0),p=Wa("checkbox"),f=yr(()=>{var e,t,n,o;const l=null!=(t=null==(e=null==d?void 0:d.fill)?void 0:e.value)?t:"";return{backgroundColor:l,borderColor:l,color:null!=(o=null==(n=null==d?void 0:d.textColor)?void 0:n.value)?o:"",boxShadow:l?`-1px 0 0 0 ${l}`:void 0}}),v=yr(()=>[p.b("button"),p.bm("button",a.value),p.is("disabled",r.value),p.is("checked",l.value),p.is("focus",o.value)]);return(e,t)=>(Fl(),Dl("label",{class:q(v.value)},[fn(Kl("input",tr({"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:Ot(p).be("button","original"),type:"checkbox",name:e.name,tabindex:e.tabindex,disabled:Ot(r)},c.value,{onChange:t[1]||(t[1]=(...e)=>Ot(u)&&Ot(u)(...e)),onFocus:t[2]||(t[2]=e=>o.value=!0),onBlur:t[3]||(t[3]=e=>o.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Ym),[[Sa,Ot(s)]]),e.$slots.default||e.label?(Fl(),Dl("span",{key:0,class:q(Ot(p).be("button","inner")),style:V(Ot(l)?f.value:void 0)},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],6)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const Zm=Nd({modelValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:void 0},min:Number,max:Number,size:Bd,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>Jm},type:{type:String,values:["checkbox","button"],default:"checkbox"},...Qp(["ariaLabel"])}),Jm={label:"label",value:"value",disabled:"disabled"},Qm=Xn({name:"ElCheckboxGroup",__name:"checkbox-group",props:Zm,emits:{[Zd]:e=>f(e),change:e=>f(e)},setup(e,{emit:t}){const n=e,o=t,l=Wa("checkbox"),r=hf(),{formItem:a}=df(),{inputId:s,isLabeledByFormItem:i}=pf(n,{formItemContext:a}),u=async e=>{o(Zd,e),await tn(),o(Jd,e)},c=yr({get:()=>n.modelValue,set(e){u(e)}}),d=yr(()=>({...Jm,...n.props})),p=yr(()=>"button"===n.type?Xm:Gm);return hn(Wm,{...Yc(Nt(n),["size","min","max","validateEvent","fill","textColor"]),disabled:r,modelValue:c,changeEvent:u}),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==a||a.validate("change").catch(e=>{}))}),(e,t)=>{var n;return Fl(),zl(_o(e.tag),{id:Ot(s),class:q(Ot(l).b("group")),role:"group","aria-label":Ot(i)?void 0:e.ariaLabel||"checkbox-group","aria-labelledby":Ot(i)?null==(n=Ot(a))?void 0:n.labelId:void 0},{default:pn(()=>[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var eg=Kd(Qm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const tg=Gd(Gm,{CheckboxButton:Xm,CheckboxGroup:eg});Yd(Xm);const ng=Yd(eg),og=Nd({modelValue:{type:[String,Number,Boolean],default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},label:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],default:void 0},name:{type:String,default:void 0}}),lg=Nd({...og,border:Boolean}),rg={[Zd]:e=>b(e)||Jc(e)||Zc(e),[Jd]:e=>b(e)||Jc(e)||Zc(e)},ag=Symbol("radioGroupKey"),sg=(e,t)=>{const n=St(),o=mn(ag,void 0),l=yr(()=>!!o),r=yr(()=>ed(e.value)?e.label:e.value),a=yr({get:()=>l.value?o.modelValue:e.modelValue,set(a){l.value?o.changeEvent(a):t&&t(Zd,a),n.value.checked=e.modelValue===r.value}}),s=vf(yr(()=>null==o?void 0:o.size)),i=hf(yr(()=>null==o?void 0:o.disabled)),u=St(!1),c=yr(()=>i.value||l.value&&a.value!==r.value?-1:0);return dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-radio",ref:"https://element-plus.org/en-US/component/radio.html"},yr(()=>l.value&&ed(e.value))),{radioRef:n,isGroup:l,radioGroup:o,focus:u,size:s,disabled:i,tabIndex:c,modelValue:a,actualValue:r}},ig=["value","name","disabled","checked"];var ug=Kd(Xn({name:"ElRadio",__name:"radio",props:lg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),{radioRef:r,radioGroup:a,focus:s,size:i,disabled:u,modelValue:c,actualValue:d}=sg(n,o);function p(){tn(()=>o(Jd,c.value))}return(e,t)=>{var n;return Fl(),Dl("label",{class:q([Ot(l).b(),Ot(l).is("disabled",Ot(u)),Ot(l).is("focus",Ot(s)),Ot(l).is("bordered",e.border),Ot(l).is("checked",Ot(c)===Ot(d)),Ot(l).m(Ot(i))])},[Kl("span",{class:q([Ot(l).e("input"),Ot(l).is("disabled",Ot(u)),Ot(l).is("checked",Ot(c)===Ot(d))])},[fn(Kl("input",{ref_key:"radioRef",ref:r,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:q(Ot(l).e("original")),value:Ot(d),name:e.name||(null==(n=Ot(a))?void 0:n.name),disabled:Ot(u),checked:Ot(c)===Ot(d),type:"radio",onFocus:t[1]||(t[1]=e=>s.value=!0),onBlur:t[2]||(t[2]=e=>s.value=!1),onChange:p,onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,ig),[[Ea,Ot(c)]]),Kl("span",{class:q(Ot(l).e("inner"))},null,2)],2),Kl("span",{class:q(Ot(l).e("label")),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],34)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);const cg=Nd({...og}),dg=["value","name","disabled"];var pg=Kd(Xn({name:"ElRadioButton",__name:"radio-button",props:cg,setup(e){const t=e,n=Wa("radio"),{radioRef:o,focus:l,size:r,disabled:a,modelValue:s,radioGroup:i,actualValue:u}=sg(t),c=yr(()=>({backgroundColor:(null==i?void 0:i.fill)||"",borderColor:(null==i?void 0:i.fill)||"",boxShadow:(null==i?void 0:i.fill)?`-1px 0 0 0 ${i.fill}`:"",color:(null==i?void 0:i.textColor)||""}));return(e,t)=>{var d;return Fl(),Dl("label",{class:q([Ot(n).b("button"),Ot(n).is("active",Ot(s)===Ot(u)),Ot(n).is("disabled",Ot(a)),Ot(n).is("focus",Ot(l)),Ot(n).bm("button",Ot(r))])},[fn(Kl("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:q(Ot(n).be("button","original-radio")),value:Ot(u),type:"radio",name:e.name||(null==(d=Ot(i))?void 0:d.name),disabled:Ot(a),onFocus:t[1]||(t[1]=e=>l.value=!0),onBlur:t[2]||(t[2]=e=>l.value=!1),onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,dg),[[Ea,Ot(s)]]),Kl("span",{class:q(Ot(n).be("button","inner")),style:V(Ot(s)===Ot(u)?c.value:{}),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],38)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue"]]);const fg=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},fill:{type:String,default:""},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>vg},type:{type:String,values:["radio","button"],default:"radio"},...Qp(["ariaLabel"])}),vg={label:"label",value:"value",disabled:"disabled"},hg=["id","aria-label","aria-labelledby"],mg=Xn({name:"ElRadioGroup",__name:"radio-group",props:fg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),r=sf(),a=St(),{formItem:s}=df(),{inputId:i,isLabeledByFormItem:u}=pf(n,{formItemContext:s});co(()=>{const e=a.value.querySelectorAll("[type=radio]"),t=e[0];!Array.from(e).some(e=>e.checked)&&t&&(t.tabIndex=0)});const c=yr(()=>n.name||r.value),d=yr(()=>({...vg,...n.props})),p=yr(()=>"button"===n.type?pg:ug);return hn(ag,pt({...Nt(n),changeEvent:e=>{o(Zd,e),tn(()=>o(Jd,e))},name:c})),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==s||s.validate("change").catch(e=>{}))}),(e,t)=>(Fl(),Dl("div",{id:Ot(i),ref_key:"radioGroupRef",ref:a,class:q(Ot(l).b("group")),role:"radiogroup","aria-label":Ot(u)?void 0:e.ariaLabel||"radio-group","aria-labelledby":Ot(u)?Ot(s).labelId:void 0},[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])],10,hg))}});var gg=Kd(mg,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue"]]);Gd(ug,{RadioButton:pg,RadioGroup:gg});const bg=Yd(gg),yg=Yd(pg),wg=Nd({type:{type:String,values:["primary","success","info","warning","danger"],default:"primary"},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:Id},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),xg=["aria-label"],Cg=["aria-label"],_g=Gd(Kd(Xn({name:"ElTag",__name:"tag",props:wg,emits:{close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},setup(e,{emit:t}){const n=e,o=t,l=vf(),{t:r}=Rd(),a=Wa("tag"),s=yr(()=>{const{type:e,hit:t,effect:o,closable:r,round:s}=n;return[a.b(),a.is("closable",r),a.m(e||"primary"),a.m(l.value),a.m(o),a.is("hit",t),a.is("round",s)]}),i=e=>{o("close",e)},u=e=>{o("click",e)},c=e=>{var t,n,o;(null==(o=null==(n=null==(t=null==e?void 0:e.component)?void 0:t.subTree)?void 0:n.component)?void 0:o.bum)&&(e.component.subTree.component.bum=null)};return(e,t)=>e.disableTransitions?(Fl(),Dl("span",{key:0,class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,xg)):Zl("v-if",!0)],6)):(Fl(),zl(Nr,{key:1,name:`${Ot(a).namespace.value}-zoom-in-center`,appear:"",onVnodeMounted:c},{default:pn(()=>[Kl("span",{class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,Cg)):Zl("v-if",!0)],6)]),_:3},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]])),Sg=new Map;if(ld){let e;document.addEventListener("mousedown",t=>e=t),document.addEventListener("mouseup",t=>{if(e){for(const n of Sg.values())for(const{documentHandler:o}of n)o(t,e);e=void 0}})}function kg(e,t){let n=[];return f(t.arg)?n=t.arg:Qc(t.arg)&&n.push(t.arg),function(o,l){const r=t.instance.popperRef,a=o.target,s=null==l?void 0:l.target,i=!t||!t.instance,u=!a||!s,c=e.contains(a)||e.contains(s),d=e===a,p=n.length&&n.some(e=>null==e?void 0:e.contains(a))||n.length&&n.includes(s),f=r&&(r.contains(a)||r.contains(s));i||u||c||d||p||f||t.value(o,l)}}const Eg={beforeMount(e,t){Sg.has(e)||Sg.set(e,[]),Sg.get(e).push({documentHandler:kg(e,t),bindingFn:t.value})},updated(e,t){Sg.has(e)||Sg.set(e,[]);const n=Sg.get(e),o=n.findIndex(e=>e.bindingFn===t.oldValue),l={documentHandler:kg(e,t),bindingFn:t.value};o>=0?n.splice(o,1,l):n.push(l)},unmounted(e){Sg.delete(e)}},Tg=Nd({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:[Number,Object],default:()=>({})},sm:{type:[Number,Object],default:()=>({})},md:{type:[Number,Object],default:()=>({})},lg:{type:[Number,Object],default:()=>({})},xl:{type:[Number,Object],default:()=>({})}}),Ag=Symbol("rowContextKey"),Og=Gd(Kd(Xn({name:"ElCol",__name:"col",props:Tg,setup(e){const t=e,{gutter:n}=mn(Ag,{gutter:yr(()=>0)}),o=Wa("col"),l=yr(()=>{const e={};return n.value&&(e.paddingLeft=e.paddingRight=n.value/2+"px"),e}),r=yr(()=>{const e=[];return["span","offset","pull","push"].forEach(n=>{const l=t[n];Jc(l)&&("span"===n?e.push(o.b(`${t[n]}`)):l>0&&e.push(o.b(`${n}-${t[n]}`)))}),["xs","sm","md","lg","xl"].forEach(n=>{Jc(t[n])?e.push(o.b(`${n}-${t[n]}`)):w(t[n])&&Object.entries(t[n]).forEach(([t,l])=>{e.push("span"!==t?o.b(`${n}-${t}-${l}`):o.b(`${n}-${l}`))})}),n.value&&e.push(o.is("guttered")),[o.b(),e]});return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]])),Mg=Gd(Kd(Xn({name:"ElCollapseTransition",__name:"collapse-transition",setup(e){const t=Wa("collapse-transition"),n=e=>{e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},o={beforeEnter(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height&&(e.dataset.elExistsHeight=e.style.height),e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){requestAnimationFrame(()=>{e.dataset.oldOverflow=e.style.overflow,e.dataset.elExistsHeight?e.style.maxHeight=e.dataset.elExistsHeight:0!==e.scrollHeight?e.style.maxHeight=`${e.scrollHeight}px`:e.style.maxHeight=0,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"})},afterEnter(e){e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow},enterCancelled(e){n(e)},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.maxHeight=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){n(e)},leaveCancelled(e){n(e)}};return(e,n)=>(Fl(),zl(Nr,tr({name:Ot(t).b()},function(e){const t={};for(const n in e)t[P(n)]=e[n];return t}(o)),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]])),Rg={placement:"top"},Lg=e=>{if(!e)return{onClick:r,onMousedown:r,onMouseup:r};let t=!1,n=!1;return{onClick:o=>{t&&n&&e(o),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}},Pg=Nd({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:[String,Array,Object]},zIndex:{type:[String,Number]}}),Ng=Xn({name:"ElOverlay",props:Pg,emits:{click:e=>e instanceof MouseEvent},setup(e,{slots:t,emit:n}){const o=Wa("overlay"),{onClick:l,onMousedown:r,onMouseup:a}=Lg(e.customMaskEvent?void 0:e=>{n("click",e)});return()=>e.mask?Gl("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:l,onMousedown:r,onMouseup:a},[Ao(t,"default")],jm.STYLE|jm.CLASS|jm.PROPS,["onClick","onMouseup","onMousedown"]):wr("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ao(t,"default")])}}),Ig=Symbol("dialogInjectionKey"),Bg="dialog-fade",Fg=Nd({center:Boolean,alignCenter:{type:Boolean,default:void 0},closeIcon:{type:Dp},draggable:{type:Boolean,default:void 0},overflow:{type:Boolean,default:void 0},fullscreen:Boolean,headerClass:String,bodyClass:String,footerClass:String,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),$g=(e,t,n,o)=>{const l={offsetX:0,offsetY:0},r=St(!1),a=(t,n)=>{if(e.value){const{offsetX:r,offsetY:a}=l,s=e.value.getBoundingClientRect(),i=s.left,u=s.top,c=s.width,d=s.height,p=document.documentElement.clientWidth,f=document.documentElement.clientHeight,v=-i+r,h=-u+a,m=p-i-c+r,g=f-u-(d{const t=e.clientX,n=e.clientY,{offsetX:o,offsetY:s}=l,i=e=>{r.value||(r.value=!0);const l=o+e.clientX-t,i=s+e.clientY-n;a(l,i)},u=()=>{r.value=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},i=()=>{t.value&&e.value&&(t.value.removeEventListener("mousedown",s),window.removeEventListener("resize",u))},u=()=>{const{offsetX:e,offsetY:t}=l;a(e,t)};return co(()=>{yn(()=>{n.value?t.value&&e.value&&(t.value.addEventListener("mousedown",s),window.addEventListener("resize",u)):i()})}),vo(()=>{i()}),{isDragging:r,resetPosition:()=>{l.offsetX=0,l.offsetY=0,e.value&&(e.value.style.transform="")},updatePosition:u}},jg=["aria-level"],Vg=["aria-label"],Dg=["id"];var zg=Kd(Xn({name:"ElDialogContent",__name:"dialog-content",props:Fg,emits:{close:()=>!0},setup(e,{expose:t}){const{t:n}=Rd(),{Close:o}=zp,l=e,{dialogRef:r,headerRef:a,bodyId:s,ns:i,style:u}=mn(Ig),{focusTrapRef:c}=mn(Gf),d=((...e)=>t=>{e.forEach(e=>{e.value=t})})(c,r),p=yr(()=>!!l.draggable),f=yr(()=>!!l.overflow),{resetPosition:v,updatePosition:h,isDragging:m}=$g(r,a,p,f),g=yr(()=>[i.b(),i.is("fullscreen",l.fullscreen),i.is("draggable",p.value),i.is("dragging",m.value),i.is("align-center",!!l.alignCenter),{[i.m("center")]:l.center}]);return t({resetPosition:v,updatePosition:h}),(e,t)=>(Fl(),Dl("div",{ref:Ot(d),class:q(g.value),style:V(Ot(u)),tabindex:"-1"},[Kl("header",{ref_key:"headerRef",ref:a,class:q([Ot(i).e("header"),e.headerClass,{"show-close":e.showClose}])},[Ao(e.$slots,"header",{},()=>[Kl("span",{role:"heading","aria-level":e.ariaLevel,class:q(Ot(i).e("title"))},Z(e.title),11,jg)]),e.showClose?(Fl(),Dl("button",{key:0,"aria-label":Ot(n)("el.dialog.close"),class:q(Ot(i).e("headerbtn")),type:"button",onClick:t[0]||(t[0]=t=>e.$emit("close"))},[Gl(Ot(ip),{class:q(Ot(i).e("close"))},{default:pn(()=>[(Fl(),zl(_o(e.closeIcon||Ot(o))))]),_:1},8,["class"])],10,Vg)):Zl("v-if",!0)],2),Kl("div",{id:Ot(s),class:q([Ot(i).e("body"),e.bodyClass])},[Ao(e.$slots,"default")],10,Dg),e.$slots.footer?(Fl(),Dl("footer",{key:0,class:q([Ot(i).e("footer"),e.footerClass])},[Ao(e.$slots,"footer")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);const Hg=Nd({...Fg,appendToBody:Boolean,appendTo:{type:Ud.to.type,default:"body"},beforeClose:{type:Function},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalPenetrable:Boolean,openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,headerClass:String,bodyClass:String,footerClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:Boolean,headerAriaLevel:{type:String,default:"2"},transition:{type:[String,Object],default:void 0}}),Wg=(e,t={})=>{_t(e)||xd("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||Wa("popup"),o=yr(()=>n.bm("parent","hidden"));let l=0,r=!1,a="0";const s=()=>{setTimeout(()=>{"undefined"!=typeof document&&r&&document&&(document.body.style.width=a,lp(document.body,o.value))},200)};wn(e,e=>{if(!e)return void s();r=!np(document.body,o.value),r&&(a=document.body.style.width,op(document.body,o.value)),l=(e=>{var t;if(!ld)return 0;if(void 0!==sp)return sp;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const l=document.createElement("div");l.style.width="100%",n.appendChild(l);const r=l.offsetWidth;return null==(t=n.parentNode)||t.removeChild(n),sp=o-r,sp})(n.namespace.value);const t=document.documentElement.clientHeight0&&(t||"scroll"===i)&&r&&(document.body.style.width=`calc(100% - ${l}px)`)}),le(()=>s())},qg=["aria-label","aria-labelledby","aria-describedby"],Ug=Xn({name:"ElDialog",inheritAttrs:!1,__name:"dialog",props:Hg,emits:{open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Zd]:e=>Zc(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},setup(e,{expose:t}){const n=e,o=No();dm({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},yr(()=>!!o.title));const l=Wa("dialog"),r=St(),a=St(),s=St(),{visible:i,titleId:u,bodyId:c,style:d,overlayDialogStyle:p,rendered:v,transitionConfig:h,zIndex:m,_draggable:b,_alignCenter:y,_overflow:x,handleClose:C,onModalClick:_,onOpenAutoFocus:S,onCloseAutoFocus:k,onCloseRequested:E,onFocusoutPrevented:T,closing:A}=((e,t)=>{var n;const o=ar().emit,{nextZIndex:l}=Ed();let r="";const a=sf(),s=sf(),i=St(!1),u=St(!1),c=St(!1),d=St(null!=(n=e.zIndex)?n:l()),p=St(!1);let v,h;const m=zd(),b=yr(()=>{var e,t;return null!=(t=null==(e=m.value)?void 0:e.namespace)?t:Va}),y=yr(()=>{var e;return null==(e=m.value)?void 0:e.dialog}),x=yr(()=>{const t={},n=`--${b.value}-dialog`;if(!e.fullscreen){e.top&&(t[`${n}-margin-top`]=e.top);const o=ap(e.width);o&&(t[`${n}-width`]=o)}return t}),C=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.draggable)?n:null==(t=y.value)?void 0:t.draggable)&&o&&!e.fullscreen}),_=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.alignCenter)?n:null==(t=y.value)?void 0:t.alignCenter)&&o}),S=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.overflow)?n:null==(t=y.value)?void 0:t.overflow)&&o}),k=yr(()=>_.value?{display:"flex"}:{}),E=yr(()=>{var t,n,o;const l=null!=(o=null!=(n=e.transition)?n:null==(t=y.value)?void 0:t.transition)?o:Bg,r={name:l,onAfterEnter:T,onBeforeLeave:O,onAfterLeave:A};if(w(l)){const e={...l},t=(e,t)=>n=>{f(e)?e.forEach(e=>{g(e)&&e(n)}):g(e)&&e(n),t()};return e.onAfterEnter=t(e.onAfterEnter,T),e.onBeforeLeave=t(e.onBeforeLeave,O),e.onAfterLeave=t(e.onAfterLeave,A),e.name||(e.name=Bg),e}return r});function T(){o("opened")}function A(){o("closed"),o(Zd,!1),e.destroyOnClose&&(c.value=!1),p.value=!1}function O(){p.value=!0,o("close")}function M(){null==h||h(),null==v||v(),e.openDelay&&e.openDelay>0?({stop:v}=dd(()=>P(),e.openDelay)):P()}function R(){null==v||v(),null==h||h(),e.closeDelay&&e.closeDelay>0?({stop:h}=dd(()=>N(),e.closeDelay)):N()}function L(){e.beforeClose?e.beforeClose(function(e){e||(u.value=!0,i.value=!1)}):R()}function P(){ld&&(i.value=!0)}function N(){i.value=!1}return e.lockScroll&&Wg(i),wn(()=>e.zIndex,()=>{var t;d.value=null!=(t=e.zIndex)?t:l()}),wn(()=>e.modelValue,n=>{var r;n?(u.value=!1,M(),c.value=!0,d.value=null!=(r=e.zIndex)?r:l(),tn(()=>{o("open"),t.value&&(t.value.parentElement.scrollTop=0,t.value.parentElement.scrollLeft=0,t.value.scrollTop=0)})):i.value&&R()}),wn(()=>e.fullscreen,e=>{t.value&&(e?(r=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=r)}),co(()=>{e.modelValue&&(i.value=!0,c.value=!0,M())}),{afterEnter:T,afterLeave:A,beforeLeave:O,handleClose:L,onModalClick:function(){e.closeOnClickModal&&L()},close:R,doClose:N,onOpenAutoFocus:function(){o("openAutoFocus")},onCloseAutoFocus:function(){o("closeAutoFocus")},onCloseRequested:function(){e.closeOnPressEscape&&L()},onFocusoutPrevented:function(e){var t;"pointer"===(null==(t=e.detail)?void 0:t.focusReason)&&e.preventDefault()},titleId:a,bodyId:s,closed:u,style:x,overlayDialogStyle:k,rendered:c,visible:i,zIndex:d,transitionConfig:E,_draggable:C,_alignCenter:_,_overflow:S,closing:p}})(n,r);hn(Ig,{dialogRef:r,headerRef:a,bodyId:c,ns:l,rendered:v,style:d});const O=Lg(_),M=yr(()=>n.modalPenetrable&&!n.modal&&!n.fullscreen);return t({visible:i,dialogContentRef:s,resetPosition:()=>{var e;null==(e=s.value)||e.resetPosition()},handleClose:C}),(e,t)=>(Fl(),zl(Ot(Xd),{to:e.appendTo,disabled:"body"===e.appendTo&&!e.appendToBody},{default:pn(()=>[Gl(Nr,tr(Ot(h),{persisted:""}),{default:pn(()=>{var n;return[fn(Gl(Ot(Ng),{"custom-mask-event":"",mask:e.modal,"overlay-class":[null!=(n=e.modalClass)?n:"",`${Ot(l).namespace.value}-modal-dialog`,Ot(l).is("penetrable",M.value)],"z-index":Ot(m)},{default:pn(()=>[Kl("div",{role:"dialog","aria-modal":"true","aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:Ot(u),"aria-describedby":Ot(c),class:q([`${Ot(l).namespace.value}-overlay-dialog`,Ot(l).is("closing",Ot(A))]),style:V(Ot(p)),onClick:t[0]||(t[0]=(...e)=>Ot(O).onClick&&Ot(O).onClick(...e)),onMousedown:t[1]||(t[1]=(...e)=>Ot(O).onMousedown&&Ot(O).onMousedown(...e)),onMouseup:t[2]||(t[2]=(...e)=>Ot(O).onMouseup&&Ot(O).onMouseup(...e))},[Gl(Ot(vv),{loop:"",trapped:Ot(i),"focus-start-el":"container",onFocusAfterTrapped:Ot(S),onFocusAfterReleased:Ot(k),onFocusoutPrevented:Ot(T),onReleaseRequested:Ot(E)},{default:pn(()=>[Ot(v)?(Fl(),zl(zg,tr({key:0,ref_key:"dialogContentRef",ref:s},e.$attrs,{center:e.center,"align-center":Ot(y),"close-icon":e.closeIcon,draggable:Ot(b),overflow:Ot(x),fullscreen:e.fullscreen,"header-class":e.headerClass,"body-class":e.bodyClass,"footer-class":e.footerClass,"show-close":e.showClose,title:e.title,"aria-level":e.headerAriaLevel,onClose:Ot(C)}),To({header:pn(()=>[e.$slots.title?Ao(e.$slots,"title",{key:1}):Ao(e.$slots,"header",{key:0,close:Ot(C),titleId:Ot(u),titleClass:Ot(l).e("title")})]),default:pn(()=>[Ao(e.$slots,"default")]),_:2},[e.$slots.footer?{name:"footer",fn:pn(()=>[Ao(e.$slots,"footer")]),key:"0"}:void 0]),1040,["center","align-center","close-icon","draggable","overflow","fullscreen","header-class","body-class","footer-class","show-close","title","aria-level","onClose"])):Zl("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,qg)]),_:3},8,["mask","overlay-class","z-index"]),[[Xr,Ot(i)]])]}),_:3},16)]),_:3},8,["to","disabled"]))}}),Kg=Gd(Kd(Ug,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]])),Gg=Gd(Kd(Xn({name:"ElDivider",__name:"divider",props:Nd({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:String,default:"solid"}}),setup(e){const t=e,n=Wa("divider"),o=yr(()=>n.cssVar({"border-style":t.borderStyle}));return(e,t)=>(Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).m(e.direction)]),style:V(o.value),role:"separator"},[e.$slots.default&&"vertical"!==e.direction?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("text"),Ot(n).is(e.contentPosition)])},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/divider/src/divider.vue"]])),Yg={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Xg=["id"],Zg=["stop-color"],Jg=["stop-color"],Qg=["id"],eb=["stop-color"],tb=["stop-color"],nb=["id"],ob={stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},lb={transform:"translate(-1268.000000, -535.000000)"},rb={transform:"translate(1268.000000, 535.000000)"},ab=["fill"],sb=["fill"],ib={transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},ub=["fill"],cb=["fill"],db=["fill"],pb=["fill"],fb=["fill"],vb={transform:"translate(53.000000, 45.000000)"},hb=["fill","xlink:href"],mb=["fill","mask"],gb=["fill"];var bb=Kd(Xn({name:"ImgEmpty",__name:"img-empty",setup(e){const t=Wa("empty"),n=sf();return(e,o)=>(Fl(),Dl("svg",Yg,[Kl("defs",null,[Kl("linearGradient",{id:`linearGradient-1-${Ot(n)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,Zg),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,Jg)],8,Xg),Kl("linearGradient",{id:`linearGradient-2-${Ot(n)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,eb),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,tb)],8,Qg),Kl("rect",{id:`path-3-${Ot(n)}`,x:"0",y:"0",width:"17",height:"36"},null,8,nb)]),Kl("g",ob,[Kl("g",lb,[Kl("g",rb,[Kl("path",{d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${Ot(t).cssVarBlockName("fill-color-3")})`},null,8,ab),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,sb),Kl("g",ib,[Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,ub),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,cb),Kl("rect",{fill:`url(#linearGradient-1-${Ot(n)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,db),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,pb)]),Kl("rect",{fill:`url(#linearGradient-2-${Ot(n)})`,x:"13",y:"45",width:"40",height:"36"},null,8,fb),Kl("g",vb,[Kl("use",{fill:`var(${Ot(t).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${Ot(n)}`},null,8,hb),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${Ot(n)})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,mb)]),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,gb)])])])]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/img-empty.vue"]]);const yb=Nd({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),wb=["src"],xb={key:1},Cb=Gd(Kd(Xn({name:"ElEmpty",__name:"empty",props:yb,setup(e){const t=e,{t:n}=Rd(),o=Wa("empty"),l=yr(()=>t.description||n("el.table.emptyText")),r=yr(()=>({width:ap(t.imageSize)}));return(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Kl("div",{class:q(Ot(o).e("image")),style:V(r.value)},[e.image?(Fl(),Dl("img",{key:0,src:e.image,ondragstart:"return false"},null,8,wb)):Ao(e.$slots,"image",{key:1},()=>[Gl(bb)])],6),Kl("div",{class:q(Ot(o).e("description"))},[e.$slots.description?Ao(e.$slots,"description",{key:0}):(Fl(),Dl("p",xb,Z(l.value),1))],2),e.$slots.default?(Fl(),Dl("div",{key:0,class:q(Ot(o).e("bottom"))},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/empty.vue"]])),_b=Nd({size:{type:String,values:Id},disabled:Boolean}),Sb=Nd({..._b,model:Object,rules:{type:Object},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean],default:!0}});function kb(){const e=St([]),t=yr(()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?`${t}px`:""});function n(n){const o=e.value.indexOf(n);return-1===o&&t.value,o}return{autoLabelWidth:t,registerLabelWidth:function(t,o){if(t&&o){const l=n(o);e.value.splice(l,1,t)}else t&&e.value.push(t)},deregisterLabelWidth:function(t){const o=n(t);o>-1&&e.value.splice(o,1)}}}const Eb=(e,t)=>{const n=uu(t).map(e=>f(e)?e.join("."):e);return n.length>0?e.filter(e=>e.propString&&n.includes(e.propString)):e};var Tb=Kd(Xn({name:"ElForm",__name:"form",props:Sb,emits:{validate:(e,t,n)=>(f(e)||b(e))&&Zc(t)&&b(n)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=St(),a=pt([]),s=vf(),i=Wa("form"),u=yr(()=>{const{labelPosition:e,inline:t}=o;return[i.b(),i.m(s.value||"default"),{[i.m(`label-${e}`)]:e,[i.m("inline")]:t}]}),c=e=>Eb(a,[e])[0],d=(e=[])=>{o.model&&Eb(a,e).forEach(e=>e.resetField())},p=(e=[])=>{Eb(a,e).forEach(e=>e.clearValidate())},f=yr(()=>!!o.model),v=async e=>m(void 0,e),h=async(e=[])=>{if(!f.value)return!1;const t=(e=>{if(0===a.length)return[];const t=Eb(a,e);return t.length?t:[]})(e);if(0===t.length)return!0;let n={};for(const l of t)try{await l.validate(""),"error"!==l.validateState||l.error||l.resetField()}catch(o){n={...n,...o}}return 0===Object.keys(n).length||Promise.reject(n)},m=async(e=[],t)=>{let n=!1;const l=!g(t);try{return n=await h(e),!0===n&&await(null==t?void 0:t(n)),n}catch(tT){if(tT instanceof Error)throw tT;const a=tT;if(o.scrollToError&&r.value){const e=r.value.querySelector(`.${i.b()}-item.is-error`);null==e||e.scrollIntoView(o.scrollIntoViewOptions)}return!n&&await(null==t?void 0:t(!1,a)),l&&Promise.reject(a)}};return wn(()=>o.rules,()=>{o.validateOnRuleChange&&v().catch(e=>{})},{deep:!0,flush:"post"}),hn(uf,pt({...Nt(o),emit:l,resetFields:d,clearValidate:p,validateField:m,getField:c,addField:e=>{a.push(e)},removeField:e=>{e.prop&&a.splice(a.indexOf(e),1)},...kb()})),t({validate:v,validateField:m,resetFields:d,clearValidate:p,scrollToField:e=>{var t;const n=c(e);n&&(null==(t=n.$el)||t.scrollIntoView(o.scrollIntoViewOptions))},getField:c,fields:a}),(e,t)=>(Fl(),Dl("form",{ref_key:"formRef",ref:r,class:q(u.value)},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Ab(){return Ab=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),o=1;o=r)return e;switch(e){case"%s":return String(n[l++]);case"%d":return Number(n[l++]);case"%j":try{return JSON.stringify(n[l++])}catch(t){return"[Circular]"}break;default:return e}}):e}function Bb(e,t){return null==e||!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e)}function Fb(e,t,n){var o=0,l=e.length;!function r(a){if(a&&a.length)n(a);else{var s=o;o+=1,s()\[\]\\.,;:\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,}))$/,qb=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Ub={integer:function(e){return Ub.number(e)&&parseInt(e,10)===e},float:function(e){return Ub.number(e)&&!Ub.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(tT){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!Ub.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(Wb)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(function(){if(zb)return zb;var e="[a-fA-F\\d:]",t=function(t){return t&&t.includeBoundaries?"(?:(?<=\\s|^)(?="+e+")|(?<="+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}",o="[a-fA-F\\d]{1,4}",l=("\n(?:\n(?:"+o+":){7}(?:"+o+"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:"+o+":){6}(?:"+n+"|:"+o+"|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:"+o+":){5}(?::"+n+"|(?::"+o+"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:"+o+":){4}(?:(?::"+o+"){0,1}:"+n+"|(?::"+o+"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:"+o+":){3}(?:(?::"+o+"){0,2}:"+n+"|(?::"+o+"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:"+o+":){2}(?:(?::"+o+"){0,3}:"+n+"|(?::"+o+"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:"+o+":){1}(?:(?::"+o+"){0,4}:"+n+"|(?::"+o+"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::"+o+"){0,5}:"+n+"|(?::"+o+"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),r=new RegExp("(?:^"+n+"$)|(?:^"+l+"$)"),a=new RegExp("^"+n+"$"),s=new RegExp("^"+l+"$"),i=function(e){return e&&e.exact?r:new RegExp("(?:"+t(e)+n+t(e)+")|(?:"+t(e)+l+t(e)+")","g")};i.v4=function(e){return e&&e.exact?a:new RegExp(""+t(e)+n+t(e),"g")},i.v6=function(e){return e&&e.exact?s:new RegExp(""+t(e)+l+t(e),"g")};var u=i.v4().source,c=i.v6().source;return zb=new RegExp("(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|"+u+"|"+c+'|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)',"i")}())},hex:function(e){return"string"==typeof e&&!!e.match(qb)}},Kb="enum",Gb={required:Hb,whitespace:function(e,t,n,o,l){(/^\s+$/.test(t)||""===t)&&o.push(Ib(l.messages.whitespace,e.fullField))},type:function(e,t,n,o,l){if(e.required&&void 0===t)Hb(e,t,n,o,l);else{var r=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(r)>-1?Ub[r](t)||o.push(Ib(l.messages.types[r],e.fullField,e.type)):r&&typeof t!==e.type&&o.push(Ib(l.messages.types[r],e.fullField,e.type))}},range:function(e,t,n,o,l){var r="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,i=t,u=null,c="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(c?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(i=t.length),d&&(i=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),r?i!==e.len&&o.push(Ib(l.messages[u].len,e.fullField,e.len)):a&&!s&&ie.max?o.push(Ib(l.messages[u].max,e.fullField,e.max)):a&&s&&(ie.max)&&o.push(Ib(l.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,n,o,l){e[Kb]=Array.isArray(e[Kb])?e[Kb]:[],-1===e[Kb].indexOf(t)&&o.push(Ib(l.messages[Kb],e.fullField,e[Kb].join(", ")))},pattern:function(e,t,n,o,l){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},Yb=function(e,t,n,o,l){var r=e.type,a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,r)&&!e.required)return n();Gb.required(e,t,o,a,l,r),Bb(t,r)||Gb.type(e,t,o,a,l)}n(a)},Xb={string:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l,"string"),Bb(t,"string")||(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l),Gb.pattern(e,t,o,r,l),!0===e.whitespace&&Gb.whitespace(e,t,o,r,l))}n(r)},method:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},number:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},boolean:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},regexp:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t)||Gb.type(e,t,o,r,l)}n(r)},integer:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},float:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},array:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();Gb.required(e,t,o,r,l,"array"),null!=t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},object:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},enum:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.enum(e,t,o,r,l)}n(r)},pattern:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t,"string")||Gb.pattern(e,t,o,r,l)}n(r)},date:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"date")&&!e.required)return n();var a;Gb.required(e,t,o,r,l),Bb(t,"date")||(a=t instanceof Date?t:new Date(t),Gb.type(e,a,o,r,l),a&&Gb.range(e,a.getTime(),o,r,l))}n(r)},url:Yb,hex:Yb,email:Yb,required:function(e,t,n,o,l){var r=[],a=Array.isArray(t)?"array":typeof t;Gb.required(e,t,o,r,l,a),n(r)},any:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l)}n(r)}};function Zb(){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 e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var Jb=Zb(),Qb=function(){function e(e){this.rules=null,this._messages=Jb,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(n){var o=e[n];t.rules[n]=Array.isArray(o)?o:[o]})},t.messages=function(e){return e&&(this._messages=Db(Zb(),e)),this._messages},t.validate=function(t,n,o){var l=this;void 0===n&&(n={}),void 0===o&&(o=function(){});var r=t,a=n,s=o;if("function"==typeof a&&(s=a,a={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,r),Promise.resolve(r);if(a.messages){var i=this.messages();i===Jb&&(i=Zb()),Db(i,a.messages),a.messages=i}else a.messages=this.messages();var u={};(a.keys||Object.keys(this.rules)).forEach(function(e){var n=l.rules[e],o=r[e];n.forEach(function(n){var a=n;"function"==typeof a.transform&&(r===t&&(r=Ab({},r)),o=r[e]=a.transform(o)),(a="function"==typeof a?{validator:a}:Ab({},a)).validator=l.getValidationMethod(a),a.validator&&(a.field=e,a.fullField=a.fullField||e,a.type=l.getType(a),u[e]=u[e]||[],u[e].push({rule:a,value:o,source:r,field:e}))})});var c={};return jb(u,a,function(t,n){var o,l=t.rule,s=!("object"!==l.type&&"array"!==l.type||"object"!=typeof l.fields&&"object"!=typeof l.defaultField);function i(e,t){return Ab({},t,{fullField:l.fullField+"."+e,fullFields:l.fullFields?[].concat(l.fullFields,[e]):[e]})}function u(o){void 0===o&&(o=[]);var u=Array.isArray(o)?o:[o];!a.suppressWarning&&u.length&&e.warning("async-validator:",u),u.length&&void 0!==l.message&&(u=[].concat(l.message));var d=u.map(Vb(l,r));if(a.first&&d.length)return c[l.field]=1,n(d);if(s){if(l.required&&!t.value)return void 0!==l.message?d=[].concat(l.message).map(Vb(l,r)):a.error&&(d=[a.error(l,Ib(a.messages.required,l.field))]),n(d);var p={};l.defaultField&&Object.keys(t.value).map(function(e){p[e]=l.defaultField}),p=Ab({},p,t.rule.fields);var f={};Object.keys(p).forEach(function(e){var t=p[e],n=Array.isArray(t)?t:[t];f[e]=n.map(i.bind(null,e))});var v=new e(f);v.messages(a.messages),t.rule.options&&(t.rule.options.messages=a.messages,t.rule.options.error=a.error),v.validate(t.value,t.rule.options||a,function(e){var t=[];d&&d.length&&t.push.apply(t,d),e&&e.length&&t.push.apply(t,e),n(t.length?t:null)})}else n(d)}if(s=s&&(l.required||!l.required&&t.value),l.field=t.field,l.asyncValidator)o=l.asyncValidator(l,t.value,u,t.source,a);else if(l.validator){try{o=l.validator(l,t.value,u,t.source,a)}catch(d){console.error,a.suppressValidatorError||setTimeout(function(){throw d},0),u(d.message)}!0===o?u():!1===o?u("function"==typeof l.message?l.message(l.fullField||l.field):l.message||(l.fullField||l.field)+" fails"):o instanceof Array?u(o):o instanceof Error&&u(o.message)}o&&o.then&&o.then(function(){return u()},function(e){return u(e)})},function(e){!function(e){var t=[],n={};function o(e){var n;Array.isArray(e)?t=(n=t).concat.apply(n,e):t.push(e)}for(var l=0;l");const l=Wa("form"),r=St(),a=St(0),s=(o="update")=>{tn(()=>{t.default&&e.isAutoWidth&&("update"===o?a.value=(()=>{var e;if(null==(e=r.value)?void 0:e.firstElementChild){const e=window.getComputedStyle(r.value.firstElementChild).width;return Math.ceil(Number.parseFloat(e))}return 0})():"remove"===o&&(null==n||n.deregisterLabelWidth(a.value)))})},i=()=>s("update");return co(()=>{i()}),vo(()=>{s("remove")}),fo(()=>i()),wn(a,(t,o)=>{e.updateAll&&(null==n||n.registerLabelWidth(t,o))}),bd(yr(()=>{var e,t;return null!=(t=null==(e=r.value)?void 0:e.firstElementChild)?t:null}),i),()=>{var s,i;if(!t)return null;const{isAutoWidth:u}=e;if(u){const e=null==n?void 0:n.autoLabelWidth,i={};if((null==o?void 0:o.hasLabel)&&e&&"auto"!==e){const t=Math.max(0,Number.parseInt(e,10)-a.value),l=o.labelPosition||n.labelPosition;t&&(i["left"===l?"marginRight":"marginLeft"]=`${t}px`)}return Gl("div",{ref:r,class:[l.be("item","label-wrap")],style:i},[null==(s=t.default)?void 0:s.call(t)])}return Gl(Rl,{ref:r},[null==(i=t.default)?void 0:i.call(t)])}}});const oy=["role","aria-labelledby"];var ly=Kd(Xn({name:"ElFormItem",__name:"form-item",props:ey,setup(e,{expose:t}){const n=e,o=No(),l=mn(uf,void 0),r=mn(cf,void 0),a=vf(void 0,{formItem:!1}),s=Wa("form-item"),i=sf().value,u=St([]),c=St(""),d=function(e,t=200,n={}){const o=St(e.value),l=ud(()=>{o.value=e.value},t,n);return wn(e,()=>l()),o}(c,100),p=St(""),v=St();let h,m=!1;const b=yr(()=>n.labelPosition||(null==l?void 0:l.labelPosition)),y=yr(()=>{var e;return"top"===b.value?{}:{width:ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth)}}),w=yr(()=>{var e;if("top"===b.value||(null==l?void 0:l.inline))return{};if(!n.label&&!n.labelWidth&&A)return{};const t=ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth);return n.label||o.label?{}:{marginLeft:t}}),x=yr(()=>[s.b(),s.m(a.value),s.is("error","error"===c.value),s.is("validating","validating"===c.value),s.is("success","success"===c.value),s.is("required",L.value||n.required),s.is("no-asterisk",null==l?void 0:l.hideRequiredAsterisk),"right"===(null==l?void 0:l.requireAsteriskPosition)?"asterisk-right":"asterisk-left",{[s.m("feedback")]:null==l?void 0:l.statusIcon,[s.m(`label-${b.value}`)]:b.value}]),C=yr(()=>Zc(n.inlineMessage)?n.inlineMessage:(null==l?void 0:l.inlineMessage)||!1),_=yr(()=>[s.e("error"),{[s.em("error","inline")]:C.value}]),S=yr(()=>n.prop?f(n.prop)?n.prop.join("."):n.prop:""),k=yr(()=>!(!n.label&&!o.label)),E=yr(()=>{var e;return null!=(e=n.for)?e:1===u.value.length?u.value[0]:void 0}),T=yr(()=>!E.value&&k.value),A=!!r,O=yr(()=>{const e=null==l?void 0:l.model;if(e&&n.prop)return Vd(e,n.prop).value}),M=yr(()=>{const{required:e}=n,t=[];n.rules&&t.push(...uu(n.rules));const o=null==l?void 0:l.rules;if(o&&n.prop){const e=Vd(o,n.prop).value;e&&t.push(...uu(e))}if(void 0!==e){const n=t.map((e,t)=>[e,t]).filter(([e])=>"required"in e);if(n.length>0)for(const[o,l]of n)o.required!==e&&(t[l]={...o,required:e});else t.push({required:e})}return t}),R=yr(()=>M.value.length>0),L=yr(()=>M.value.some(e=>e.required)),P=yr(()=>{var e;return"error"===d.value&&n.showMessage&&(null==(e=null==l?void 0:l.showMessage)||e)}),N=yr(()=>`${n.label||""}${(null==l?void 0:l.labelSuffix)||""}`),I=e=>{c.value=e},B=async e=>{const t=S.value;return new Qb({[t]:e}).validate({[t]:O.value},{firstFields:!0}).then(()=>(I("success"),null==l||l.emit("validate",n.prop,!0,""),!0)).catch(e=>((e=>{var t,o;const{errors:r,fields:a}=e;I("error"),p.value=r?null!=(o=null==(t=null==r?void 0:r[0])?void 0:t.message)?o:`${n.prop} is required`:"",null==l||l.emit("validate",n.prop,!1,p.value)})(e),Promise.reject(e)))},F=async(e,t)=>{if(m||!n.prop)return!1;const o=g(t);if(!R.value)return null==t||t(!1),!1;const l=(e=>M.value.filter(t=>!t.trigger||!e||(f(t.trigger)?t.trigger.includes(e):t.trigger===e)).map(({trigger:e,...t})=>t))(e);return 0===l.length?(null==t||t(!0),!0):(I("validating"),B(l).then(()=>(null==t||t(!0),!0)).catch(e=>{const{fields:n}=e;return null==t||t(!1,n),!o&&Promise.reject(n)}))},$=()=>{I(""),p.value="",m=!1},j=async()=>{const e=null==l?void 0:l.model;if(!e||!n.prop)return;const t=Vd(e,n.prop);m=!0,t.value=nc(h),await tn(),$(),m=!1};wn(()=>n.error,e=>{p.value=e||"",I(e?"error":"")},{immediate:!0}),wn(()=>n.validateStatus,e=>I(e||""));const D=pt({...Nt(n),$el:v,size:a,validateMessage:p,validateState:c,labelId:i,inputIds:u,isGroup:T,hasLabel:k,fieldValue:O,addInputId:e=>{u.value.includes(e)||u.value.push(e)},removeInputId:e=>{u.value=u.value.filter(t=>t!==e)},resetField:j,clearValidate:$,validate:F,propString:S});return hn(cf,D),co(()=>{n.prop&&(null==l||l.addField(D),h=nc(O.value))}),vo(()=>{null==l||l.removeField(D)}),t({size:a,validateMessage:p,validateState:c,validate:F,clearValidate:$,resetField:j}),(e,t)=>{var n;return Fl(),Dl("div",{ref_key:"formItemRef",ref:v,class:q(x.value),role:T.value?"group":void 0,"aria-labelledby":T.value?Ot(i):void 0},[Gl(Ot(ny),{"is-auto-width":"auto"===y.value.width,"update-all":"auto"===(null==(n=Ot(l))?void 0:n.labelWidth)},{default:pn(()=>[e.label||e.$slots.label?(Fl(),zl(_o(E.value?"label":"div"),{key:0,id:Ot(i),for:E.value,class:q(Ot(s).e("label")),style:V(y.value)},{default:pn(()=>[Ao(e.$slots,"label",{label:N.value},()=>[Xl(Z(N.value),1)])]),_:3},8,["id","for","class","style"])):Zl("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),Kl("div",{class:q(Ot(s).e("content")),style:V(w.value)},[Ao(e.$slots,"default"),Gl(ba,{name:`${Ot(s).namespace.value}-zoom-in-top`},{default:pn(()=>[P.value?Ao(e.$slots,"error",{key:0,error:p.value},()=>[Kl("div",{class:q(_.value)},Z(p.value),3)]):Zl("v-if",!0)]),_:3},8,["name"])],6)],10,oy)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const ry=Gd(Tb,{FormItem:ly}),ay=Yd(ly);let sy=class{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,t=>{t.addEventListener("keydown",t=>{let n=!1;switch(cv(t)){case iv.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case iv.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case iv.tab:bf(e,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:n=!0,t.currentTarget.click()}return n&&(t.preventDefault(),t.stopPropagation()),!1})})}},iy=class{constructor(e,t){this.domNode=e,this.submenu=null,this.submenu=null,this.init(t)}init(e){this.domNode.setAttribute("tabindex","0");const t=this.domNode.querySelector(`.${e}-menu`);t&&(this.submenu=new sy(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",e=>{let t=!1;switch(cv(e)){case iv.down:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case iv.up:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case iv.tab:bf(e.currentTarget,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:t=!0,e.currentTarget.click()}t&&e.preventDefault()})}},uy=class{constructor(e,t){this.domNode=e,this.init(t)}init(e){const t=this.domNode.childNodes;Array.from(t).forEach(t=>{1===t.nodeType&&new iy(t,e)})}};var cy=Kd(Xn({name:"ElMenuCollapseTransition",__name:"menu-collapse-transition",setup(e){const t=Wa("menu"),n={onBeforeEnter:e=>e.style.opacity="0.2",onEnter(e,n){op(e,`${t.namespace.value}-opacity-transition`),e.style.opacity="1",n()},onAfterEnter(e){lp(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=""},onBeforeLeave(e){e.dataset||(e.dataset={}),np(e,t.m("collapse"))?(lp(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),op(e,t.m("collapse"))):(op(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),lp(e,t.m("collapse"))),e.style.width=`${e.scrollWidth}px`,e.style.overflow="hidden"},onLeave(e){op(e,"horizontal-collapse-transition"),e.style.width=`${e.dataset.scrollWidth}px`}};return(e,t)=>(Fl(),zl(Nr,tr({mode:"out-in"},n),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function dy(e,t){const n=yr(()=>{let n=e.parent;const o=[t.value];for(;"ElMenu"!==n.type.name;)n.props.index&&o.unshift(n.props.index),n=n.parent;return o});return{parentMenu:yr(()=>{let t=e.parent;for(;t&&!["ElMenu","ElSubMenu"].includes(t.type.name);)t=t.parent;return t}),indexPath:n}}function py(e){return yr(()=>{const t=e.backgroundColor;return t?new Pm(t).shade(20).toString():""})}const fy=(e,t)=>{const n=Wa("menu");return yr(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":py(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},vy="rootMenu",hy="subMenu:",my=Nd({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,popperStyle:{type:[String,Object]},disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:Dp},expandOpenIcon:{type:Dp},collapseCloseIcon:{type:Dp},collapseOpenIcon:{type:Dp}}),gy="ElSubMenu";var by=Xn({name:gy,props:my,setup(e,{slots:t,expose:n}){const o=ar(),{indexPath:l,parentMenu:r}=dy(o,yr(()=>e.index)),a=Wa("menu"),s=Wa("sub-menu"),i=mn(vy);i||xd(gy,"can not inject root menu");const u=mn(`${hy}${r.value.uid}`);u||xd(gy,"can not inject sub menu");const c=St({}),d=St({});let p;const f=St(!1),v=St(),h=St(),m=yr(()=>0===u.level),g=yr(()=>"horizontal"===k.value&&m.value?"bottom-start":"right-start"),y=yr(()=>"horizontal"===k.value&&m.value||"vertical"===k.value&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?_.value?e.expandOpenIcon:e.expandCloseIcon:up:e.collapseCloseIcon&&e.collapseOpenIcon?_.value?e.collapseOpenIcon:e.collapseCloseIcon:dp),w=yr(()=>{const t=e.teleported;return Xc(t)?m.value:t}),x=yr(()=>i.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),C=yr(()=>"horizontal"===k.value&&m.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),_=yr(()=>i.openedMenus.includes(e.index)),S=yr(()=>[...Object.values(c.value),...Object.values(d.value)].some(({active:e})=>e)),k=yr(()=>i.props.mode),E=yr(()=>i.props.persistent),T=pt({index:e.index,indexPath:l,active:S}),A=fy(i.props,u.level+1),O=yr(()=>{var t;return null!=(t=e.popperOffset)?t:i.props.popperOffset}),M=yr(()=>{var t;return null!=(t=e.popperClass)?t:i.props.popperClass}),R=yr(()=>{var t;return null!=(t=e.popperStyle)?t:i.props.popperStyle}),L=yr(()=>{var t;return null!=(t=e.showTimeout)?t:i.props.showTimeout}),P=yr(()=>{var t;return null!=(t=e.hideTimeout)?t:i.props.hideTimeout}),N=e=>{var t,n,o;e||null==(o=null==(n=null==(t=h.value)?void 0:t.popperRef)?void 0:n.popperInstanceRef)||o.destroy()},I=()=>{"hover"===i.props.menuTrigger&&"horizontal"===i.props.mode||i.props.collapse&&"vertical"===i.props.mode||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:l.value,active:S.value})},B=(t,n=L.value)=>{var o;"focus"!==t.type&&("click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode||e.disabled?u.mouseInChild.value=!0:(u.mouseInChild.value=!0,null==p||p(),({stop:p}=dd(()=>{i.openMenu(e.index,l.value)},n)),w.value&&(null==(o=r.value.vnode.el)||o.dispatchEvent(new MouseEvent("mouseenter"))),"mouseenter"===t.type&&t.target&&tn(()=>{yf(t.target,{preventScroll:!0})})))},F=(t=!1)=>{var n;"click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode?u.mouseInChild.value=!1:(null==p||p(),u.mouseInChild.value=!1,({stop:p}=dd(()=>!f.value&&i.closeMenu(e.index,l.value),P.value)),w.value&&t&&(null==(n=u.handleMouseleave)||n.call(u,!0)))};wn(()=>i.props.collapse,e=>N(Boolean(e)));{const e=e=>{d.value[e.index]=e},t=e=>{delete d.value[e.index]};hn(`${hy}${o.uid}`,{addSubMenu:e,removeSubMenu:t,handleMouseleave:F,mouseInChild:f,level:u.level+1})}return n({opened:_}),co(()=>{i.addSubMenu(T),u.addSubMenu(T)}),vo(()=>{u.removeSubMenu(T),i.removeSubMenu(T)}),()=>{var n;const l=[null==(n=t.title)?void 0:n.call(t),wr(ip,{class:s.e("icon-arrow"),style:{transform:_.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>b(y.value)?wr(o.appContext.components[y.value]):wr(y.value)})],r=i.isMenuPopup?wr(im,{ref:h,visible:_.value,effect:"light",pure:!0,offset:O.value,showArrow:!1,persistent:E.value,popperClass:M.value,popperStyle:R.value,placement:g.value,teleported:w.value,fallbackPlacements:C.value,transition:x.value,gpuAcceleration:!1},{content:()=>{var e;return wr("div",{class:[a.m(k.value),a.m("popup-container"),M.value],onMouseenter:e=>B(e,100),onMouseleave:()=>F(!0),onFocus:e=>B(e,100)},[wr("ul",{class:[a.b(),a.m("popup"),a.m(`popup-${g.value}`)],style:A.value},[null==(e=t.default)?void 0:e.call(t)])])},default:()=>wr("div",{class:s.e("title"),onClick:I},l)}):wr(Rl,{},[wr("div",{class:s.e("title"),ref:v,onClick:I},l),wr(Mg,{},{default:()=>{var e;return fn(wr("ul",{role:"menu",class:[a.b(),a.m("inline")],style:A.value},[null==(e=t.default)?void 0:e.call(t)]),[[Xr,_.value]])}})]);return wr("li",{class:[s.b(),s.is("active",S.value),s.is("opened",_.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:_.value,onMouseenter:B,onMouseleave:()=>F(),onFocus:B},[r])}}});const yy=Nd({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Array,default:()=>[]},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:Dp,default:()=>Op},popperEffect:{type:String,default:"dark"},popperClass:String,popperStyle:{type:[String,Object]},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),wy=e=>f(e)&&e.every(e=>b(e));var xy=Xn({name:"ElMenu",props:yy,emits:{close:(e,t)=>b(e)&&wy(t),open:(e,t)=>b(e)&&wy(t),select:(e,t,n,o)=>b(e)&&wy(t)&&w(n)&&(Xc(o)||o instanceof Promise)},setup(e,{emit:t,slots:n,expose:o}){const l=ar(),r=l.appContext.config.globalProperties.$router,a=St(),s=St(),i=Wa("menu"),u=Wa("sub-menu");let c=64;const d=St(-1),p=St(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=St(e.defaultActive),v=St({}),h=St({}),m=yr(()=>"horizontal"===e.mode||"vertical"===e.mode&&e.collapse),g=(n,o)=>{p.value.includes(n)||(e.uniqueOpened&&(p.value=p.value.filter(e=>o.includes(e))),p.value.push(n),t("open",n,o))},b=e=>{const t=p.value.indexOf(e);-1!==t&&p.value.splice(t,1)},y=(e,n)=>{b(e),t("close",e,n)},w=({index:e,indexPath:t})=>{p.value.includes(e)?y(e,t):g(e,t)},x=n=>{("horizontal"===e.mode||e.collapse)&&(p.value=[]);const{index:o,indexPath:l}=n;if(!Vc(o)&&!Vc(l))if(e.router&&r){const e=n.route||o,a=r.push(e).then(e=>(e||(f.value=o),e));t("select",o,l,{index:o,indexPath:l,route:e},a)}else f.value=o,t("select",o,l,{index:o,indexPath:l})},C=t=>{var n;const o=v.value,l=o[t]||f.value&&o[f.value]||o[e.defaultActive];f.value=null!=(n=null==l?void 0:l.index)?n:t},_=e=>{const t=getComputedStyle(e),n=Number.parseInt(t.marginLeft,10),o=Number.parseInt(t.marginRight,10);return e.offsetWidth+n+o||0},S=()=>{if(!a.value)return-1;const e=Array.from(a.value.childNodes).filter(e=>"#comment"!==e.nodeName&&("#text"!==e.nodeName||e.nodeValue)),t=getComputedStyle(a.value),n=Number.parseInt(t.paddingLeft,10),o=Number.parseInt(t.paddingRight,10),l=a.value.clientWidth-n-o;let r=0,s=0;return e.forEach((e,t)=>{r+=_(e),r<=l-c&&(s=t+1)}),s===e.length?-1:s};let k=!0;const E=()=>{const e=pd(s);if(e&&(c=_(e)||64),d.value===S())return;const t=()=>{d.value=-1,tn(()=>{d.value=S()})};k?t():((e,t=33.34)=>{let n;return()=>{n&&clearTimeout(n),n=setTimeout(()=>{e()},t)}})(t)(),k=!1};let T;wn(()=>e.defaultActive,e=>{v.value[e]||(f.value=""),C(e)}),wn(()=>e.collapse,e=>{e&&(p.value=[])}),wn(v.value,()=>{const t=f.value&&v.value[f.value];t&&"horizontal"!==e.mode&&!e.collapse&&t.indexPath.forEach(e=>{const t=h.value[e];t&&g(e,t.indexPath)})}),yn(()=>{"horizontal"===e.mode&&e.ellipsis?T=bd(a,E).stop:null==T||T()});const A=St(!1);{const t=e=>{h.value[e.index]=e},n=e=>{delete h.value[e.index]},o=e=>{v.value[e.index]=e},r=e=>{delete v.value[e.index]};hn(vy,pt({props:e,openedMenus:p,items:v,subMenus:h,activeIndex:f,isMenuPopup:m,addMenuItem:o,removeMenuItem:r,addSubMenu:t,removeSubMenu:n,openMenu:g,closeMenu:y,handleMenuItemClick:x,handleSubMenuClick:w})),hn(`${hy}${l.uid}`,{addSubMenu:t,removeSubMenu:n,mouseInChild:A,level:0})}co(()=>{"horizontal"===e.mode&&new uy(l.vnode.el,i.namespace.value)}),o({open:e=>{const{indexPath:t}=h.value[e];t.forEach(e=>g(e,t))},close:b,updateActiveIndex:C,handleResize:E});const O=fy(e,0);return()=>{var o,l;let r=null!=(l=null==(o=n.default)?void 0:o.call(n))?l:[];const c=[];if("horizontal"===e.mode&&a.value){const t=Vm(r).filter(e=>8!==(null==e?void 0:e.shapeFlag)),n=-1===d.value?t:t.slice(0,d.value),o=-1===d.value?[]:t.slice(d.value);(null==o?void 0:o.length)&&e.ellipsis&&(r=n,c.push(wr(by,{ref:s,index:"sub-menu-more",class:u.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>wr(ip,{class:u.e("icon-more")},{default:()=>wr(e.ellipsisIcon)}),default:()=>o})))}const f=e.closeOnClickOutside?[[Eg,()=>{p.value.length&&(A.value||(p.value.forEach(e=>{return t("close",e,(n=e,h.value[n].indexPath));var n}),p.value=[]))}]]:[],v=fn(wr("ul",{key:String(e.collapse),role:"menubar",ref:a,style:O.value,class:{[i.b()]:!0,[i.m(e.mode)]:!0,[i.m("collapse")]:e.collapse}},[...r,...c]),f);return e.collapseTransition&&"vertical"===e.mode?wr(cy,()=>v):v}}});const Cy=Nd({index:{type:[String,null],default:null},route:{type:[String,Object]},disabled:Boolean}),_y="ElMenuItem";var Sy=Kd(Xn({name:_y,__name:"menu-item",props:Cy,emits:{click:e=>b(e.index)&&f(e.indexPath)},setup(e,{expose:t,emit:n}){const o=e,l=n;ed(o.index);const r=ar(),a=mn(vy),s=Wa("menu"),i=Wa("menu-item");a||xd(_y,"can not inject root menu");const{parentMenu:u,indexPath:c}=dy(r,Ft(o,"index")),d=mn(`${hy}${u.value.uid}`);d||xd(_y,"can not inject sub menu");const p=yr(()=>o.index===a.activeIndex),f=pt({index:o.index,indexPath:c,active:p}),v=()=>{o.disabled||(a.handleMenuItemClick({index:o.index,indexPath:c.value,route:o.route}),l("click",f))};return co(()=>{d.addSubMenu(f),a.addMenuItem(f)}),vo(()=>{d.removeSubMenu(f),a.removeMenuItem(f)}),t({parentMenu:u,rootMenu:a,active:p,nsMenu:s,nsMenuItem:i,handleClick:v}),(e,t)=>(Fl(),Dl("li",{class:q([Ot(i).b(),Ot(i).is("active",p.value),Ot(i).is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:v},["ElMenu"===Ot(u).type.name&&Ot(a).props.collapse&&e.$slots.title?(Fl(),zl(Ot(im),{key:0,effect:Ot(a).props.popperEffect,placement:"right","fallback-placements":["left"],"popper-class":Ot(a).props.popperClass,"popper-style":Ot(a).props.popperStyle,persistent:Ot(a).props.persistent,"focus-on-target":""},{content:pn(()=>[Ao(e.$slots,"title")]),default:pn(()=>[Kl("div",{class:q(Ot(s).be("tooltip","trigger"))},[Ao(e.$slots,"default")],2)]),_:3},8,["effect","popper-class","popper-style","persistent"])):(Fl(),Dl(Rl,{key:1},[Ao(e.$slots,"default"),Ao(e.$slots,"title")],64))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]),ky=Kd(Xn({name:"ElMenuItemGroup",__name:"menu-item-group",props:{title:String},setup(e){const t=Wa("menu-item-group");return(e,n)=>(Fl(),Dl("li",{class:q(Ot(t).b())},[Kl("div",{class:q(Ot(t).e("title"))},[e.$slots.title?Ao(e.$slots,"title",{key:1}):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.title),1)],64))],2),Kl("ul",null,[Ao(e.$slots,"default")])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const Ey=Gd(xy,{MenuItem:Sy,MenuItemGroup:ky,SubMenu:by}),Ty=Yd(Sy);Yd(ky),Yd(by);const Ay=e=>L(e),Oy=Gd(Kd(Xn({name:"ElPopconfirm",__name:"popconfirm",props:Nd({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:pm,default:"primary"},cancelButtonType:{type:String,values:pm,default:"text"},icon:{type:Dp,default:()=>Lp},iconColor:{type:String,default:"#f90"},hideIcon:Boolean,hideAfter:{type:Number,default:200},effect:{...Wh.effect,default:"light"},teleported:Wh.teleported,persistent:Wh.persistent,width:{type:[String,Number],default:150},virtualTriggering:qh.virtualTriggering,virtualRef:qh.virtualRef}),emits:{confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},setup(e,{expose:t,emit:n}){const o=e,l=n,{t:r}=Rd(),a=Wa("popconfirm"),s=St(),i=St(),u=yr(()=>{var e;return null==(e=Ot(s))?void 0:e.popperRef}),c=()=>{var e,t;null==(t=null==(e=i.value)?void 0:e.focus)||t.call(e)},d=()=>{var e,t;null==(t=null==(e=s.value)?void 0:e.onClose)||t.call(e)},p=yr(()=>({width:ap(o.width)})),f=e=>{l("confirm",e),d()},v=e=>{l("cancel",e),d()},h=yr(()=>o.confirmButtonText||r("el.popconfirm.confirmButtonText")),m=yr(()=>o.cancelButtonText||r("el.popconfirm.cancelButtonText"));return t({popperRef:u,hide:d}),(e,t)=>(Fl(),zl(Ot(im),tr({ref_key:"tooltipRef",ref:s,trigger:"click",effect:e.effect},e.$attrs,{"virtual-triggering":e.virtualTriggering,"virtual-ref":e.virtualRef,"popper-class":`${Ot(a).namespace.value}-popover`,"popper-style":p.value,teleported:e.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":e.hideAfter,persistent:e.persistent,loop:"",onShow:c}),{content:pn(()=>[Kl("div",{ref_key:"rootRef",ref:i,tabindex:"-1",class:q(Ot(a).b())},[Kl("div",{class:q(Ot(a).e("main"))},[!e.hideIcon&&e.icon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(a).e("icon")),style:V({color:e.iconColor})},{default:pn(()=>[(Fl(),zl(_o(e.icon)))]),_:1},8,["class","style"])):Zl("v-if",!0),Xl(" "+Z(e.title),1)],2),Kl("div",{class:q(Ot(a).e("action"))},[Ao(e.$slots,"actions",{confirm:f,cancel:v},()=>[Gl(Ot(Fm),{size:"small",type:"text"===e.cancelButtonType?"":e.cancelButtonType,text:"text"===e.cancelButtonType,onClick:v},{default:pn(()=>[Xl(Z(m.value),1)]),_:1},8,["type","text"]),Gl(Ot(Fm),{size:"small",type:"text"===e.confirmButtonType?"":e.confirmButtonType,text:"text"===e.confirmButtonType,onClick:f},{default:pn(()=>[Xl(Z(h.value),1)]),_:1},8,["type","text"])])],2)],2)]),default:pn(()=>[e.$slots.reference?Ao(e.$slots,"reference",{key:0}):Zl("v-if",!0)]),_:3},16,["effect","virtual-triggering","virtual-ref","popper-class","popper-style","teleported","hide-after","persistent"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popconfirm/src/popconfirm.vue"]])),My=Gd(Kd(Xn({name:"ElRow",__name:"row",props:Nd({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:["start","center","end","space-around","space-between","space-evenly"],default:"start"},align:{type:String,values:["top","middle","bottom"]}}),setup(e){const t=e,n=Wa("row"),o=yr(()=>t.gutter);hn(Ag,{gutter:o});const l=yr(()=>{const e={};return t.gutter?(e.marginRight=e.marginLeft=`-${t.gutter/2}px`,e):e}),r=yr(()=>[n.b(),n.is(`justify-${t.justify}`,"start"!==t.justify),n.is(`align-${t.align}`,!!t.align)]);return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]])),Ry="horizontal",Ly="vertical",Py={[Ry]:"deltaX",[Ly]:"deltaY"},Ny=({atEndEdge:e,atStartEdge:t,layout:n},o)=>{let l,r=0;const a=n=>n<0&&t.value||n>0&&e.value;return{hasReachedEdge:a,onWheel:e=>{var t;t=l,ld?window.cancelAnimationFrame(t):clearTimeout(t);const s=e[Py[n.value]];a(r)&&a(r+s)||(r+=s,Up()||e.preventDefault(),l=ep(()=>{o(r),r=0}))}}},Iy=Nd({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:e=>["",...Id].includes(e)},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:Dp},activeActionIcon:{type:Dp},activeIcon:{type:Dp},inactiveIcon:{type:Dp},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Function},id:String,tabindex:{type:[String,Number]},...Qp(["ariaLabel"])}),By=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],Fy=["aria-hidden"],$y={key:1},jy={key:1},Vy=["aria-hidden"],Dy="ElSwitch",zy=Gd(Kd(Xn({name:Dy,__name:"switch",props:Iy,emits:{[Zd]:e=>Zc(e)||b(e)||Jc(e),[Jd]:e=>Zc(e)||b(e)||Jc(e),[Qd]:e=>Zc(e)||b(e)||Jc(e)},setup(e,{expose:t,emit:n}){const o=e,l=n,{formItem:r}=df(),a=vf(),s=Wa("switch"),{inputId:i}=pf(o,{formItemContext:r}),u=hf(yr(()=>{if(o.loading)return!0})),c=St(!1!==o.modelValue),d=kt(),p=yr(()=>[s.b(),s.m(a.value),s.is("disabled",u.value),s.is("checked",g.value)]),f=yr(()=>[s.e("label"),s.em("label","left"),s.is("active",!g.value)]),v=yr(()=>[s.e("label"),s.em("label","right"),s.is("active",g.value)]),h=yr(()=>({width:ap(o.width)}));wn(()=>o.modelValue,()=>{c.value=!0});const m=yr(()=>!!c.value&&o.modelValue),g=yr(()=>m.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(m.value)||(l(Zd,o.inactiveValue),l(Jd,o.inactiveValue),l(Qd,o.inactiveValue)),wn(g,e=>{var t;d.value.checked=e,o.validateEvent&&(null==(t=null==r?void 0:r.validate)||t.call(r,"change").catch(e=>{}))});const b=()=>{const e=g.value?o.inactiveValue:o.activeValue;l(Zd,e),l(Jd,e),l(Qd,e),tn(()=>{d.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:e}=o;if(!e)return void b();const t=e();[x(t),Zc(t)].includes(!0)||xd(Dy,"beforeChange must return type `Promise` or `boolean`"),x(t)?t.then(e=>{e&&b()}).catch(e=>{}):t&&b()};return co(()=>{d.value.checked=g.value}),t({focus:()=>{var e,t;null==(t=null==(e=d.value)?void 0:e.focus)||t.call(e)},checked:g}),(e,t)=>(Fl(),Dl("div",{class:q(p.value),onClick:Ra(y,["prevent"])},[Kl("input",{id:Ot(i),ref_key:"input",ref:d,class:q(Ot(s).e("input")),type:"checkbox",role:"switch","aria-checked":g.value,"aria-disabled":Ot(u),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:Ot(u),tabindex:e.tabindex,onChange:b,onKeydown:Pa(y,["enter"])},null,42,By),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||e.$slots.inactive)?(Fl(),Dl("span",{key:0,class:q(f.value)},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",{key:1,"aria-hidden":g.value},Z(e.inactiveText),9,Fy)):Zl("v-if",!0)])],2)):Zl("v-if",!0),Kl("span",{class:q(Ot(s).e("core")),style:V(h.value)},[e.inlinePrompt?(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner"))},[g.value?(Fl(),Dl("div",{key:1,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",jy,Z(e.activeText),1)):Zl("v-if",!0)])],2)):(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",$y,Z(e.inactiveText),1)):Zl("v-if",!0)])],2))],2)):Zl("v-if",!0),Kl("div",{class:q(Ot(s).e("action"))},[e.loading?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(s).is("loading"))},{default:pn(()=>[Gl(Ot(Ep))]),_:1},8,["class"])):g.value?Ao(e.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeActionIcon)))]),_:1})):Zl("v-if",!0)]):g.value?Zl("v-if",!0):Ao(e.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveActionIcon)))]),_:1})):Zl("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||e.$slots.active)?(Fl(),Dl("span",{key:1,class:q(v.value)},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",{key:1,"aria-hidden":!g.value},Z(e.activeText),9,Vy)):Zl("v-if",!0)])],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]])),Hy=function(e){var t;return null==(t=e.target)?void 0:t.closest("td")},Wy=function(e,t,n,o,l){if(!t&&!o&&(!l||f(l)&&!l.length))return e;n=b(n)?"descending"===n?-1:1:n&&n<0?-1:1;const r=o?null:function(n,o){return l?Bc(uu(l),t=>b(t)?Yi(n,t):t(n,o,e)):("$key"!==t&&w(n)&&"$value"in n&&(n=n.$value),[w(n)?t?Yi(n,t):null:n])};return e.map((e,t)=>({value:e,index:t,key:r?r(e,t):null})).sort((e,t)=>{let l=function(e,t){var n,l,r,a,s,i;if(o)return o(e.value,t.value);for(let o=0,u=null!=(l=null==(n=e.key)?void 0:n.length)?l:0;o(null==(i=t.key)?void 0:i[o]))return 1}return 0}(e,t);return l||(l=e.index-t.index),l*+n}).map(e=>e.value)},qy=function(e,t){let n=null;return e.columns.forEach(e=>{e.id===t&&(n=e)}),n},Uy=function(e,t,n){const o=(t.className||"").match(new RegExp(`${n}-table_[^\\s]+`,"gm"));return o?qy(e,o[0]):null},Ky=(e,t)=>{if(!e)throw new Error("Row is required when get row identity");if(b(t)){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let o=e;for(const e of n)o=o[e];return`${o}`}return g(t)?t.call(null,e):""},Gy=function(e,t,n=!1,o="children"){const l={};return(e||[]).forEach((e,r)=>{if(l[Ky(e,t)]={row:e,index:r},n){const n=e[o];f(n)&&Object.assign(l,Gy(n,t,!0,o))}}),l};function Yy(e){return""===e||Xc(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Xy(e){return""===e||Xc(e)||(e=Yy(e),Number.isNaN(e)&&(e=80)),e}function Zy(e,t,n,o,l,r,a){let s=null!=r?r:0,i=!1;const u=(()=>{if(!a)return e.indexOf(t);const n=Ky(t,a);return e.findIndex(e=>Ky(e,a)===n)})(),c=-1!==u,d=null==l?void 0:l.call(null,t,s),p=n=>{"add"===n?e.push(t):e.splice(u,1),i=!0},v=e=>{let t=0;const n=(null==o?void 0:o.children)&&e[o.children];return n&&f(n)&&(t+=n.length,n.forEach(e=>{t+=v(e)})),t};return l&&!d||(Zc(n)?n&&!c?p("add"):!n&&c&&p("remove"):p(c?"remove":"add")),!(null==o?void 0:o.checkStrictly)&&(null==o?void 0:o.children)&&f(t[o.children])&&t[o.children].forEach(t=>{const r=Zy(e,t,null!=n?n:!c,o,l,s+1,a);s+=v(t)+1,r&&(i=r)}),i}function Jy(e,t,n="children",o="hasChildren",l=!1){const r=e=>!(f(e)&&e.length);function a(e,s,i){t(e,s,i),s.forEach(e=>{if(e[o]&&l)return void t(e,null,i+1);const s=e[n];r(s)||a(e,s,i+1)})}e.forEach(e=>{if(e[o]&&l)return void t(e,null,0);const s=e[n];r(s)||a(e,s,0)})}let Qy=null;function ew(e,t,n,o,l,r){var a;const s=((e,t,n,o)=>{const l={strategy:"fixed",...e.popperOptions},r=g(null==o?void 0:o.tooltipFormatter)?o.tooltipFormatter({row:n,column:o,cellValue:Vd(n,o.property).value}):void 0;return Hl(r)?{slotContent:r,content:null,...e,popperOptions:l}:{slotContent:null,content:null!=r?r:t,...e,popperOptions:l}})(e,t,n,o),i={...s,slotContent:void 0};if((null==Qy?void 0:Qy.trigger)===l){const e=null==(a=Qy.vm)?void 0:a.component;return Hc(null==e?void 0:e.props,i),void(e&&s.slotContent&&(e.slots.content=()=>[s.slotContent]))}null==Qy||Qy();const u=null==r?void 0:r.refs.tableWrapper,c=null==u?void 0:u.dataset.prefix,d=Gl(im,{virtualTriggering:!0,virtualRef:l,appendTo:u,placement:"top",transition:"none",offset:0,hideAfter:0,...i},s.slotContent?{content:()=>s.slotContent}:void 0);d.appContext={...r.appContext,...r};const p=document.createElement("div");Fa(d,p),d.component.exposed.onOpen();const f=null==u?void 0:u.querySelector(`.${c}-scrollbar__wrap`);Qy=()=>{var e,t;(null==(t=null==(e=d.component)?void 0:e.exposed)?void 0:t.onClose)&&d.component.exposed.onClose(),Fa(null,p);const n=Qy;null==f||f.removeEventListener("scroll",n),n.trigger=void 0,n.vm=void 0,Qy=null},Qy.trigger=null!=l?l:void 0,Qy.vm=d,null==f||f.addEventListener("scroll",Qy)}function tw(e){return e.children?Bc(e.children,tw):[e]}function nw(e,t){return e+t.colSpan}const ow=(e,t,n,o)=>{let l=0,r=e;const a=n.states.columns.value;if(o){const t=tw(o[e]);l=a.slice(0,a.indexOf(t[0])).reduce(nw,0),r=l+t.reduce(nw,0)-1}else l=e;let s;switch(t){case"left":r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:l,after:r}:{}},lw=(e,t,n,o,l,r=0)=>{const a=[],{direction:s,start:i,after:u}=ow(t,n,o,l);if(s){const t="left"===s;a.push(`${e}-fixed-column--${s}`),t&&u+r===o.states.fixedLeafColumnsLength.value-1?a.push("is-last-column"):t||i-r!==o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value||a.push("is-first-column")}return a};function rw(e,t){return e+(Dc(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const aw=(e,t,n,o)=>{const{direction:l,start:r=0,after:a=0}=ow(e,t,n,o);if(!l)return;const s={},i="left"===l,u=n.states.columns.value;return i?s.left=u.slice(0,r).reduce(rw,0):s.right=u.slice(a+1).reverse().reduce(rw,0),s},sw=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function iw(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!iw(e.children)))?e:null}const uw=e=>{const t=[];return e.forEach(e=>{e.children&&e.children.length>0?t.push.apply(t,uw(e.children)):t.push(e)}),t};function cw(){var e;const t=ar(),{size:n}=Nt(null==(e=t.proxy)?void 0:e.$props),o=St(null),l=St([]),r=St([]),a=St(!1),s=St([]),i=St([]),u=St([]),c=St([]),d=St([]),v=St([]),h=St([]),m=St([]),g=St(0),y=St(0),w=St(0),x=St(!1),C=St([]),_=St(!1),S=St(!1),k=St(null),E=St({}),T=St(null),A=St(null),O=St(null),M=St(null),R=St(null),L=yr(()=>o.value?Gy(C.value,o.value):void 0);wn(l,()=>{var e;t.state&&(I(!1),"auto"===t.props.tableLayout&&(null==(e=t.refs.tableHeaderRef)||e.updateFixedColumnStyle()))},{deep:!0});const P=e=>{var t;null==(t=e.children)||t.forEach(t=>{t.fixed=e.fixed,P(t)})},N=()=>{s.value.forEach(e=>{P(e)}),c.value=s.value.filter(e=>[!0,"left"].includes(e.fixed));const e=s.value.find(e=>"selection"===e.type);let t;e&&"right"!==e.fixed&&!c.value.includes(e)&&0===s.value.indexOf(e)&&c.value.length&&(c.value.unshift(e),t=!0),d.value=s.value.filter(e=>"right"===e.fixed);const n=s.value.filter(e=>!(t&&"selection"===e.type||e.fixed));i.value=Array.from(c.value).concat(n).concat(d.value);const o=uw(n),l=uw(c.value),r=uw(d.value);g.value=o.length,y.value=l.length,w.value=r.length,u.value=Array.from(l).concat(o).concat(r),a.value=c.value.length>0||d.value.length>0},I=(e,n=!1)=>{e&&N(),n?t.state.doLayout():t.state.debouncedUpdateLayout()},B=e=>L.value?!!L.value[Ky(e,o.value)]:C.value.includes(e),F=e=>{var n;if(!t||!t.store)return 0;const{treeData:o}=t.store.states;let l=0;const r=null==(n=o.value[e])?void 0:n.children;return r&&(l+=r.length,r.forEach(e=>{l+=F(e)})),l},$=(e,t,n)=>{A.value&&A.value!==e&&(A.value.order=null),A.value=e,O.value=t,M.value=n},j=()=>{let e=Ot(r);Object.keys(E.value).forEach(t=>{const n=E.value[t];if(!n||0===n.length)return;const o=qy({columns:u.value},t);o&&o.filterMethod&&(e=e.filter(e=>n.some(t=>o.filterMethod.call(null,t,e,o))))}),T.value=e},V=()=>{var e;l.value=((e,t)=>{const n=t.sortingColumn;return!n||b(n.sortable)?e:Wy(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)})(null!=(e=T.value)?e:[],{sortingColumn:A.value,sortProp:O.value,sortOrder:M.value})},{setExpandRowKeys:D,toggleRowExpansion:z,updateExpandRows:H,states:W,isRowExpanded:q}=function(e){const t=ar(),n=St(!1),o=St([]);return{updateExpandRows:()=>{const t=e.data.value||[],l=e.rowKey.value;if(n.value)o.value=t.slice();else if(l){const e=Gy(o.value,l);o.value=t.reduce((t,n)=>{const o=Ky(n,l);return e[o]&&t.push(n),t},[])}else o.value=[]},toggleRowExpansion:(n,l)=>{Zy(o.value,n,l,void 0,void 0,void 0,e.rowKey.value)&&t.emit("expand-change",n,o.value.slice())},setExpandRowKeys:n=>{t.store.assertRowKey();const l=e.data.value||[],r=e.rowKey.value,a=Gy(l,r);o.value=n.reduce((e,t)=>{const n=a[t];return n&&e.push(n.row),e},[])},isRowExpanded:t=>{const n=e.rowKey.value;return n?!!Gy(o.value,n)[Ky(t,n)]:o.value.includes(t)},states:{expandRows:o,defaultExpandAll:n}}}({data:l,rowKey:o}),{updateTreeExpandKeys:U,toggleTreeExpansion:K,updateTreeData:G,updateKeyChildren:Y,loadOrToggle:X,states:Z}=function(e){const t=St([]),n=St({}),o=St(16),l=St(!1),r=St({}),a=St("hasChildren"),s=St("children"),i=St(!1),u=ar(),c=yr(()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return p(t)}),d=yr(()=>{const t=e.rowKey.value,n=Object.keys(r.value),o={};return n.length?(n.forEach(e=>{if(r.value[e].length){const n={children:[]};r.value[e].forEach(e=>{const l=Ky(e,t);n.children.push(l),e[a.value]&&!o[l]&&(o[l]={children:[]})}),o[e]=n}}),o):o}),p=t=>{const n=e.rowKey.value,o={};return Jy(t,(e,t,r)=>{const a=Ky(e,n);f(t)?o[a]={children:t.map(e=>Ky(e,n)),level:r}:l.value&&(o[a]={children:[],lazy:!0,level:r})},s.value,a.value,l.value),o},v=(e=!1,o)=>{var r,a;o||(o=null==(r=u.store)?void 0:r.states.defaultExpandAll.value);const s=c.value,i=d.value,p=Object.keys(s),f={};if(p.length){const r=Ot(n),a=[],u=(n,l)=>{if(e)return t.value?o||t.value.includes(l):!(!o&&!(null==n?void 0:n.expanded));{const e=o||t.value&&t.value.includes(l);return!(!(null==n?void 0:n.expanded)&&!e)}};p.forEach(e=>{const t=r[e],n={...s[e]};if(n.expanded=u(t,e),n.lazy){const{loaded:o=!1,loading:l=!1}=t||{};n.loaded=!!o,n.loading=!!l,a.push(e)}f[e]=n});const c=Object.keys(i);l.value&&c.length&&a.length&&c.forEach(e=>{var t;const n=r[e],o=i[e].children;if(a.includes(e)){if(0!==(null==(t=f[e].children)?void 0:t.length))throw new Error("[ElTable]children must be an empty array.");f[e].children=o}else{const{loaded:t=!1,loading:l=!1}=n||{};f[e]={lazy:!0,loaded:!!t,loading:!!l,expanded:u(n,e),children:o,level:void 0}}})}n.value=f,null==(a=u.store)||a.updateTableScrollY()};wn(()=>t.value,()=>{v(!0)}),wn(()=>c.value,()=>{v()}),wn(()=>d.value,()=>{v()});const h=e=>l.value&&e&&"loaded"in e&&!e.loaded,m=(t,o)=>{u.store.assertRowKey();const l=e.rowKey.value,r=Ky(t,l),a=r&&n.value[r];if(r&&a&&"expanded"in a){const e=a.expanded;o=Xc(o)?!a.expanded:o,n.value[r].expanded=o,e!==o&&u.emit("expand-change",t,o),o&&h(a)&&g(t,r,a),u.store.updateTableScrollY()}},g=(e,t,o)=>{const{load:l}=u.props;l&&!n.value[t].loaded&&(n.value[t].loading=!0,l(e,o,o=>{if(!f(o))throw new TypeError("[ElTable] data must be an array");n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,o.length&&(r.value[t]=o),u.emit("expand-change",e,!0)}))};return{loadData:g,loadOrToggle:t=>{u.store.assertRowKey();const o=e.rowKey.value,l=Ky(t,o),r=n.value[l];h(r)?g(t,l,r):m(t,void 0)},toggleTreeExpansion:m,updateTreeExpandKeys:e=>{t.value=e,v()},updateTreeData:v,updateKeyChildren:(e,t)=>{const{lazy:n,rowKey:o}=u.props;if(n){if(!o)throw new Error("[Table] rowKey is required in updateKeyChild");r.value[e]&&(r.value[e]=t)}},normalize:p,states:{expandRowKeys:t,treeData:n,indent:o,lazy:l,lazyTreeNodeMap:r,lazyColumnIdentifier:a,childrenColumnName:s,checkStrictly:i}}}({data:l,rowKey:o}),{updateCurrentRowData:J,updateCurrentRow:Q,setCurrentRowKey:ee,states:te}=function(e){const t=ar(),n=St(null),o=St(null),l=()=>{n.value=null},r=n=>{var l;const{data:r,rowKey:a}=e;let s=null;a.value&&(s=null!=(l=(Ot(r)||[]).find(e=>Ky(e,a.value)===n))?l:null),o.value=null!=s?s:null,t.emit("current-change",o.value,null)};return{setCurrentRowKey:e=>{t.store.assertRowKey(),n.value=e,r(e)},restoreCurrentRowKey:l,setCurrentRowByKey:r,updateCurrentRow:e=>{const n=o.value;if(e&&e!==n)return o.value=e,void t.emit("current-change",o.value,n);!e&&n&&(o.value=null,t.emit("current-change",null,n))},updateCurrentRowData:()=>{const a=e.rowKey.value,s=e.data.value||[],i=o.value;if(i&&!s.includes(i)){if(a){const e=Ky(i,a);r(e)}else o.value=null;Dc(o.value)&&t.emit("current-change",null,i)}else n.value&&(r(n.value),l())},states:{_currentRowKey:n,currentRow:o}}}({data:l,rowKey:o});return{assertRowKey:()=>{if(!o.value)throw new Error("[ElTable] prop row-key is required")},updateColumns:N,scheduleLayout:I,isSelected:B,clearSelection:()=>{x.value=!1;const e=C.value;C.value=[],e.length&&t.emit("selection-change",[])},cleanSelection:()=>{var e,n;let r;if(o.value){r=[];const a=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.childrenColumnName.value,s=Gy(l.value,o.value,!0,a);for(const e in L.value)p(L.value,e)&&!s[e]&&r.push(L.value[e].row)}else r=C.value.filter(e=>!l.value.includes(e));if(r.length){const e=C.value.filter(e=>!r.includes(e));C.value=e,t.emit("selection-change",e.slice())}},getSelectionRows:()=>(C.value||[]).slice(),toggleRowSelection:(e,n,r=!0,a=!1)=>{var s,i,u,c;const d={children:null==(i=null==(s=null==t?void 0:t.store)?void 0:s.states)?void 0:i.childrenColumnName.value,checkStrictly:null==(c=null==(u=null==t?void 0:t.store)?void 0:u.states)?void 0:c.checkStrictly.value};if(Zy(C.value,e,n,d,a?void 0:k.value,l.value.indexOf(e),o.value)){const n=(C.value||[]).slice();r&&t.emit("select",n,e),t.emit("selection-change",n)}},_toggleAllSelection:()=>{var e,n;const o=S.value?!x.value:!(x.value||C.value.length);x.value=o;let r=!1,a=0;const s=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.rowKey.value,{childrenColumnName:i}=t.store.states,u={children:i.value,checkStrictly:!1};l.value.forEach((e,t)=>{const n=t+a;Zy(C.value,e,o,u,k.value,n,s)&&(r=!0),a+=F(Ky(e,s))}),r&&t.emit("selection-change",C.value?C.value.slice():[]),t.emit("select-all",(C.value||[]).slice())},toggleAllSelection:null,updateAllSelected:()=>{var e;if(0===(null==(e=l.value)?void 0:e.length))return void(x.value=!1);const{childrenColumnName:n}=t.store.states;let o=0,r=0;const a=e=>{var t;for(const l of e){const e=k.value&&k.value.call(null,l,o);if(B(l))r++;else if(!k.value||e)return!1;if(o++,(null==(t=l[n.value])?void 0:t.length)&&!a(l[n.value]))return!1}return!0},s=a(l.value||[]);x.value=0!==r&&s},updateFilters:(e,t)=>{const n={};return uu(e).forEach(e=>{E.value[e.id]=t,n[e.columnKey||e.id]=t}),n},updateCurrentRow:Q,updateSort:$,execFilter:j,execSort:V,execQuery:(e=void 0)=>{(null==e?void 0:e.filter)||j(),V()},clearFilter:e=>{const{tableHeaderRef:n}=t.refs;if(!n)return;const o=Object.assign({},n.filterPanels),l=Object.keys(o);if(l.length)if(b(e)&&(e=[e]),f(e)){const n=e.map(e=>function(e,t){let n=null;for(let o=0;o{const t=n.find(t=>t.id===e);t&&(t.filteredValue=[])}),t.store.commit("filterChange",{column:n,values:[],silent:!0,multi:!0})}else l.forEach(e=>{const t=u.value.find(t=>t.id===e);t&&(t.filteredValue=[])}),E.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:()=>{A.value&&($(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},toggleRowExpansion:z,setExpandRowKeysAdapter:e=>{D(e),U(e)},setCurrentRowKey:ee,toggleRowExpansionAdapter:(e,t)=>{u.value.some(({type:e})=>"expand"===e)?z(e,t):K(e,t)},isRowExpanded:q,updateExpandRows:H,updateCurrentRowData:J,loadOrToggle:X,updateTreeData:G,updateKeyChildren:Y,states:{tableSize:n,rowKey:o,data:l,_data:r,isComplex:a,_columns:s,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:v,fixedLeafColumns:h,rightFixedLeafColumns:m,updateOrderFns:[],leafColumnsLength:g,fixedLeafColumnsLength:y,rightFixedLeafColumnsLength:w,isAllSelected:x,selection:C,reserveSelection:_,selectOnIndeterminate:S,selectable:k,filters:E,filteredData:T,sortingColumn:A,sortProp:O,sortOrder:M,hoverRow:R,...W,...Z,...te}}}function dw(e,t){return e.map(e=>{var n;return e.id===t.id?t:((null==(n=e.children)?void 0:n.length)&&(e.children=dw(e.children,t)),e)})}function pw(e){e.forEach(e=>{var t,n;e.no=null==(t=e.getColumnIndex)?void 0:t.call(e),(null==(n=e.children)?void 0:n.length)&&pw(e.children)}),e.sort((e,t)=>e.no-t.no)}const fw={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"},"treeProps.checkStrictly":{key:"checkStrictly",default:!1}};function vw(e,t){if(!e)throw new Error("Table is required.");const n=function(){const e=ar(),t=cw(),n=Wa("table"),{t:o}=Rd();return{ns:n,t:o,...t,mutations:{setData(t,n){const o=Ot(t._data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),Ot(t.reserveSelection)?e.store.assertRowKey():o?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,o,l){var r;const a=Ot(t._columns);let s=[];o?(o&&!o.children&&(o.children=[]),null==(r=o.children)||r.push(n),s=dw(a,o)):(a.push(n),s=a),pw(s),t._columns.value=s,t.updateOrderFns.push(l),"selection"===n.type&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(t,n){var o;(null==(o=n.getColumnIndex)?void 0:o.call(n))!==n.no&&(pw(t._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(t,n,o,l){var r;const a=Ot(t._columns)||[];if(o)null==(r=o.children)||r.splice(o.children.findIndex(e=>e.id===n.id),1),tn(()=>{var e;0===(null==(e=o.children)?void 0:e.length)&&delete o.children}),t._columns.value=dw(a,o);else{const e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}const s=t.updateOrderFns.indexOf(l);s>-1&&t.updateOrderFns.splice(s,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){const{prop:o,order:l,init:r}=n;if(o){const n=Ot(t.columns).find(e=>e.property===o);n&&(n.order=l,e.store.updateSort(n,o,l),e.store.commit("changeSortCondition",{init:r}))}},changeSortCondition(t,n){const{sortingColumn:o,sortProp:l,sortOrder:r}=t,a=Ot(o),s=Ot(l),i=Ot(r);Dc(i)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),n&&(n.silent||n.init)||e.emit("sort-change",{column:a,prop:s,order:i}),e.store.updateTableScrollY()},filterChange(t,n){const{column:o,values:l,silent:r}=n,a=e.store.updateFilters(o,l);e.store.execQuery(),r||e.emit("filter-change",a),e.store.updateTableScrollY()},toggleAllSelection(){var t,n;null==(n=(t=e.store).toggleAllSelection)||n.call(t)},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},commit:function(t,...n){const o=e.store.mutations;if(!o[t])throw new Error(`Action not found: ${t}`);o[t].apply(e,[e.store.states,...n])},updateTableScrollY:function(){tn(()=>e.layout.updateScrollY.apply(e.layout))}}}();return n.toggleAllSelection=Mc(n._toggleAllSelection,10),Object.keys(fw).forEach(e=>{hw(mw(t,e),e,n)}),function(e,t){Object.keys(fw).forEach(n=>{wn(()=>mw(t,n),t=>{hw(t,n,e)})})}(n,t),n}function hw(e,t,n){let o=e,l=fw[t];w(l)&&(o=o||l.default,l=l.key),n.states[l].value=o}function mw(e,t){if(t.includes(".")){const n=t.split(".");let o=e;return n.forEach(e=>{o=o[e]}),o}return e[t]}class gw{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=St(null),this.scrollX=St(!1),this.scrollY=St(!1),this.bodyWidth=St(null),this.fixedWidth=St(null),this.rightFixedWidth=St(null),this.gutterWidth=0;for(const t in e)p(e,t)&&(_t(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(Dc(this.height.value))return!1;const e=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(null==e?void 0:e.wrapRef)){let t=!0;const n=this.scrollY.value;return t=e.wrapRef.scrollHeight>e.wrapRef.clientHeight,this.scrollY.value=t,n!==t}return!1}setHeight(e,t="height"){if(!ld)return;const n=this.table.vnode.el;var o;e=Jc(o=e)?o:b(o)?/^\d+(?:px)?$/.test(o)?Number.parseInt(o,10):o:null,this.height.value=Number(e),n||!e&&0!==e?n&&Jc(e)?(n.style[t]=`${e}px`,this.updateElsHeight()):n&&b(e)&&(n.style[t]=e,this.updateElsHeight()):tn(()=>this.setHeight(e,t))}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){var e;if(!ld)return;const t=this.fit,n=null==(e=this.table.vnode.el)?void 0:e.clientWidth;let o=0;const l=this.getFlattenColumns(),r=l.filter(e=>!Jc(e.width));if(l.forEach(e=>{Jc(e.width)&&e.realWidth&&(e.realWidth=null)}),r.length>0&&t){if(l.forEach(e=>{o+=Number(e.width||e.minWidth||80)}),o<=n){this.scrollX.value=!1;const e=n-o;if(1===r.length)r[0].realWidth=Number(r[0].minWidth||80)+e;else{const t=e/r.reduce((e,t)=>e+Number(t.minWidth||80),0);let n=0;r.forEach((e,o)=>{if(0===o)return;const l=Math.floor(Number(e.minWidth||80)*t);n+=l,e.realWidth=Number(e.minWidth||80)+l}),r[0].realWidth=Number(r[0].minWidth||80)+e-n}}else this.scrollX.value=!0,r.forEach(e=>{e.realWidth=Number(e.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(e=>{e.width||e.minWidth?e.realWidth=Number(e.width||e.minWidth):e.realWidth=80,o+=e.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const a=this.store.states.fixedColumns.value;if(a.length>0){let e=0;a.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.fixedWidth.value=e}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let e=0;s.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach(t=>{var n,o;switch(e){case"columns":null==(n=t.state)||n.onColumnsChange(this);break;case"scrollable":null==(o=t.state)||o.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}})}}const bw=Xn({name:"ElTableFilterPanel",components:{ElCheckbox:tg,ElCheckboxGroup:ng,ElScrollbar:Mf,ElTooltip:im,ElIcon:ip,ArrowDown:up,ArrowUp:pp},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:Wh.appendTo},setup(e){const t=ar(),{t:n}=Rd(),o=Wa("table-filter"),l=null==t?void 0:t.parent;e.column&&!l.filterPanels.value[e.column.id]&&(l.filterPanels.value[e.column.id]=t);const r=St(null),a=St(null),s=St(0),i=yr(()=>e.column&&e.column.filters),u=yr(()=>e.column&&e.column.filterClassName?`${o.b()} ${e.column.filterClassName}`:o.b()),c=yr({get:()=>{var t;return((null==(t=e.column)?void 0:t.filteredValue)||[])[0]},set:e=>{d.value&&(ed(e)?d.value.splice(0,1):d.value.splice(0,1,e))}}),d=yr({get:()=>e.column&&e.column.filteredValue||[],set(t){var n;e.column&&(null==(n=e.upDataColumn)||n.call(e,"filteredValue",t))}}),p=yr(()=>!e.column||e.column.filterMultiple),f=()=>{var e;null==(e=r.value)||e.onClose()},v=(e,t)=>{c.value=e,s.value=t,ed(e)?h([]):h(d.value),f()},h=t=>{var n,o;null==(n=e.store)||n.commit("filterChange",{column:e.column,values:t}),null==(o=e.store)||o.updateAllSelected()},m=()=>{if(ed(c))return void(s.value=0);const e=(i.value||[]).findIndex(e=>e.value===c.value);s.value=e>=0?e+1:0};return{multiple:p,filterClassName:u,filteredValue:d,filterValue:c,filters:i,handleConfirm:()=>{h(d.value),f()},handleReset:()=>{d.value=[],h(d.value),f()},handleSelect:v,isPropAbsent:ed,isActive:e=>e.value===c.value,t:n,ns:o,tooltipRef:r,rootRef:a,checkedIndex:s,handleShowTooltip:()=>{var t,n;null==(t=a.value)||t.focus(),!p.value&&m(),e.column&&(null==(n=e.upDataColumn)||n.call(e,"filterOpened",!0))},handleHideTooltip:()=>{var t;e.column&&(null==(t=e.upDataColumn)||t.call(e,"filterOpened",!1))},handleKeydown:e=>{var t,n;const l=cv(e),r=(i.value?i.value.length:0)+1;let u=s.value,c=!0;switch(l){case iv.down:case iv.right:u=(u+1)%r;break;case iv.up:case iv.left:u=(u-1+r)%r;break;case iv.tab:f(),c=!1;break;case iv.enter:case iv.space:if(0===u)v(null,0);else{const e=(i.value||[])[u-1];e.value&&v(e.value,u)}break;default:c=!1}c&&e.preventDefault(),s.value=u,null==(n=null==(t=a.value)?void 0:t.querySelector(`.${o.e("list-item")}:nth-child(${u+1})`))||n.focus()}}}}),yw=["disabled"],ww=["tabindex","aria-checked"],xw=["tabindex","aria-checked","onClick"],Cw=["aria-label"];var _w=Kd(bw,[["render",function(e,t,n,o,l,r){const a=xo("el-checkbox"),s=xo("el-checkbox-group"),i=xo("el-scrollbar"),u=xo("arrow-up"),c=xo("arrow-down"),d=xo("el-icon"),p=xo("el-tooltip");return Fl(),zl(p,{ref:"tooltipRef",offset:0,placement:e.placement,"show-arrow":!1,trigger:"click",role:"dialog",teleported:"",effect:"light",pure:"",loop:"","popper-class":e.filterClassName,persistent:"","append-to":e.appendTo,onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},{content:pn(()=>[e.multiple?(Fl(),Dl("div",{key:0,ref:"rootRef",tabindex:"-1",class:q(e.ns.e("multiple"))},[Kl("div",{class:q(e.ns.e("content"))},[Gl(i,{"wrap-class":e.ns.e("wrap")},{default:pn(()=>[Gl(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.filteredValue=t),class:q(e.ns.e("checkbox-group"))},{default:pn(()=>[(Fl(!0),Dl(Rl,null,Eo(e.filters,e=>(Fl(),zl(a,{key:e.value,value:e.value},{default:pn(()=>[Xl(Z(e.text),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),Kl("div",{class:q(e.ns.e("bottom"))},[Kl("button",{class:q(e.ns.is("disabled",0===e.filteredValue.length)),disabled:0===e.filteredValue.length,type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleConfirm&&e.handleConfirm(...t))},Z(e.t("el.table.confirmFilter")),11,yw),Kl("button",{type:"button",onClick:t[2]||(t[2]=(...t)=>e.handleReset&&e.handleReset(...t))},Z(e.t("el.table.resetFilter")),1)],2)],2)):(Fl(),Dl("ul",{key:1,ref:"rootRef",tabindex:"-1",role:"radiogroup",class:q(e.ns.e("list")),onKeydown:t[4]||(t[4]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Kl("li",{role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isPropAbsent(e.filterValue))]),tabindex:0===e.checkedIndex?0:-1,"aria-checked":e.isPropAbsent(e.filterValue),onClick:t[3]||(t[3]=t=>e.handleSelect(null,0))},Z(e.t("el.table.clearFilter")),11,ww),(Fl(!0),Dl(Rl,null,Eo(e.filters,(t,n)=>(Fl(),Dl("li",{key:t.value,role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isActive(t))]),tabindex:e.checkedIndex===n+1?0:-1,"aria-checked":e.isActive(t),onClick:o=>e.handleSelect(t.value,n+1)},Z(t.text),11,xw))),128))],34))]),default:pn(()=>{var t;return[Kl("button",{type:"button",class:q(`${e.ns.namespace.value}-table__column-filter-trigger`),"aria-label":e.t("el.table.filterLabel",{column:(null==(t=e.column)?void 0:t.label)||""})},[Gl(d,null,{default:pn(()=>[Ao(e.$slots,"filter-icon",{},()=>{var t;return[(null==(t=e.column)?void 0:t.filterOpened)?(Fl(),zl(u,{key:0})):(Fl(),zl(c,{key:1}))]})]),_:3})],10,Cw)]}),_:3},8,["placement","popper-class","append-to","onShow","onHide"])}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function Sw(e){const t=ar();uo(()=>{n.value.addObserver(t)}),co(()=>{o(n.value),l(n.value)}),fo(()=>{o(n.value),l(n.value)}),ho(()=>{n.value.removeObserver(t)});const n=yr(()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t}),o=t=>{var n;const o=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col"))||[];if(!o.length)return;const l=t.getFlattenColumns(),r={};l.forEach(e=>{r[e.id]=e});for(let e=0,a=o.length;e{var n,o;const l=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let e=0,a=l.length;e{const t=[];return e.forEach(e=>{e.children?(t.push(e),t.push.apply(t,Ew(e.children))):t.push(e)}),t},Tw=e=>{let t=1;const n=(e,o)=>{if(o&&(e.level=o.level+1,t{n(o,e),t+=o.colSpan}),e.colSpan=t}else e.colSpan=1};e.forEach(e=>{e.level=1,n(e,void 0)});const o=[];for(let l=0;l{e.children?(e.rowSpan=1,e.children.forEach(e=>e.isSubColumn=!0)):e.rowSpan=t-e.level+1,o[e.level-1].push(e)}),o};var Aw=Xn({name:"ElTableHeader",components:{ElCheckbox:tg},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){const n=ar(),o=mn(kw),l=Wa("table"),r=St({}),{onColumnsChange:a,onScrollableChange:s}=Sw(o),i="auto"===(null==o?void 0:o.props.tableLayout),u=pt(new Map),c=St();let d;const p=()=>{d=setTimeout(()=>{u.size>0&&(u.forEach((e,t)=>{const n=c.value.querySelector(`.${t.replace(/\s/g,".")}`);if(n){const t=n.getBoundingClientRect().width;e.width=t||e.width}}),u.clear())})};wn(u,p),vo(()=>{d&&(clearTimeout(d),d=void 0)}),co(async()=>{await tn(),await tn();const{prop:t,order:n}=e.defaultSort;null==o||o.store.commit("sort",{prop:t,order:n,init:!0}),p()});const{handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x}=function(e,t){const n=ar(),o=mn(kw),l=e=>{e.stopPropagation()},r=St(null),a=St(!1),s=St(),i=(t,n,l)=>{var r;t.stopPropagation();const a=n.order===l?null:l||(({order:e,sortOrders:t})=>{if(""===e)return t[0];const n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]})(n),s=null==(r=t.target)?void 0:r.closest("th");if(s&&np(s,"noclick"))return void lp(s,"noclick");if(!n.sortable)return;const i=t.currentTarget;if(["ascending","descending"].some(e=>np(i,e)&&!n.sortOrders.includes(e)))return;const u=e.store.states;let c,d=u.sortProp.value;const p=u.sortingColumn.value;(p!==n||p===n&&Dc(p.order))&&(p&&(p.order=null),u.sortingColumn.value=n,d=n.property),c=n.order=a||null,u.sortProp.value=d,u.sortOrder.value=c,null==o||o.store.commit("changeSortCondition")};return{handleHeaderClick:(e,t)=>{!t.filters&&t.sortable?i(e,t,!1):t.filterable&&!t.sortable&&l(e),null==o||o.emit("header-click",t,e)},handleHeaderContextMenu:(e,t)=>{null==o||o.emit("header-contextmenu",t,e)},handleMouseDown:(l,i)=>{var u,c;if(ld&&!(i.children&&i.children.length>0)&&r.value&&e.border&&r.value.id===i.id){a.value=!0;const d=o;t("set-drag-visible",!0);const p=null==d?void 0:d.vnode.el,f=null==p?void 0:p.getBoundingClientRect().left,v=null==(c=null==(u=null==n?void 0:n.vnode)?void 0:u.el)?void 0:c.querySelector(`th.${i.id}`),h=v.getBoundingClientRect(),m=h.left-f+30;op(v,"noclick"),s.value={startMouseLeft:l.clientX,startLeft:h.right-f,startColumnLeft:h.left-f,tableLeft:f};const g=null==d?void 0:d.refs.resizeProxy;g.style.left=`${s.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const b=e=>{const t=e.clientX-s.value.startMouseLeft,n=s.value.startLeft+t;g.style.left=`${Math.max(m,n)}px`},y=()=>{if(a.value){const{startColumnLeft:n,startLeft:o}=s.value,u=Number.parseInt(g.style.left,10)-n;i.width=i.realWidth=u,null==d||d.emit("header-dragend",i.width,o-n,i,l),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",a.value=!1,r.value=null,s.value=void 0,t("set-drag-visible",!1)}document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",y),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{lp(v,"noclick")},0)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",y)}},handleMouseMove:(t,n)=>{var o;if(!e.border||n.children&&n.children.length>0)return;const l=t.target,s=Qc(l)?l.closest("th"):null;if(!s)return;const i=np(s,"is-sortable");if(i){const e=a.value?"col-resize":"";s.style.cursor=e;const t=s.querySelector(".caret-wrapper");t&&(t.style.cursor=e)}if(!n.resizable||a.value)return void(r.value=null);const u=s.getBoundingClientRect(),c=(null==(o=s.parentNode)?void 0:o.lastElementChild)===s,d=e.allowDragLastColumn||!c,p=u.width>12&&u.right-t.clientX<8&&d,f=p?"col-resize":"";document.body.style.cursor=f,r.value=p?n:null,i&&(s.style.cursor=f)},handleMouseOut:()=>{ld&&!a.value&&(document.body.style.cursor="")},handleSortClick:i,handleFilterClick:l}}(e,t),{getHeaderRowStyle:C,getHeaderRowClass:_,getHeaderCellStyle:S,getHeaderCellClass:k}=function(e){const t=mn(kw),n=Wa("table");return{getHeaderRowStyle:e=>{const n=null==t?void 0:t.props.headerRowStyle;return g(n)?n.call(null,{rowIndex:e}):n},getHeaderRowClass:e=>{const n=[],o=null==t?void 0:t.props.headerRowClassName;return b(o)?n.push(o):g(o)&&n.push(o.call(null,{rowIndex:e})),n.join(" ")},getHeaderCellStyle:(n,o,l,r)=>{var a;let s=null!=(a=null==t?void 0:t.props.headerCellStyle)?a:{};g(s)&&(s=s.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,r.fixed,e.store,l);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getHeaderCellClass:(o,l,r,a)=>{const s=lw(n.b(),l,a.fixed,e.store,r),i=[a.id,a.order,a.headerAlign,a.className,a.labelClassName,...s];a.children||i.push("is-leaf"),a.sortable&&i.push("is-sortable");const u=null==t?void 0:t.props.headerCellClassName;return b(u)?i.push(u):g(u)&&i.push(u.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),i.push(n.e("cell")),i.filter(e=>Boolean(e)).join(" ")}}}(e),{isGroup:E,toggleAllSelection:T,columnRows:A}=function(e){const t=mn(kw),n=yr(()=>Tw(e.store.states.originColumns.value));return{isGroup:yr(()=>{const e=n.value.length>1;return e&&t&&(t.state.isGroup.value=!0),e}),toggleAllSelection:e=>{e.stopPropagation(),null==t||t.store.commit("toggleAllSelection")},columnRows:n}}(e),{t:O}=Rd();return n.state={onColumnsChange:a,onScrollableChange:s},n.filterPanels=r,{ns:l,t:O,filterPanels:r,onColumnsChange:a,onScrollableChange:s,columnRows:A,getHeaderRowClass:_,getHeaderRowStyle:C,getHeaderCellClass:k,getHeaderCellStyle:S,handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x,isGroup:E,toggleAllSelection:T,saveIndexSelection:u,isTableLayoutAuto:i,theadRef:c,updateFixedColumnStyle:p}},render(){const{ns:e,t:t,isGroup:n,columnRows:o,getHeaderCellStyle:l,getHeaderCellClass:r,getHeaderRowClass:a,getHeaderRowStyle:s,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:d,handleSortClick:p,handleMouseOut:f,store:v,$parent:h,saveIndexSelection:m,isTableLayoutAuto:g}=this;let b=1;return wr("thead",{ref:"theadRef",class:e.is("group",n)},o.map((e,n)=>wr("tr",{class:a(n),key:n,style:s(n)},e.map((o,a)=>{o.rowSpan>b&&(b=o.rowSpan);const s=r(n,a,e,o);return g&&o.fixed&&m.set(s,o),wr("th",{class:s,colspan:o.colSpan,key:`${o.id}-thead`,rowspan:o.rowSpan,scope:o.colSpan>1?"colgroup":"col",ariaSort:o.sortable?o.order:void 0,style:l(n,a,e,o),onClick:e=>{var t;(null==(t=e.currentTarget)?void 0:t.classList.contains("noclick"))||i(e,o)},onContextmenu:e=>u(e,o),onMousedown:e=>c(e,o),onMousemove:e=>d(e,o),onMouseout:f},[wr("div",{class:["cell",o.filteredValue&&o.filteredValue.length>0?"highlight":""]},[o.renderHeader?o.renderHeader({column:o,$index:a,store:v,_self:h}):o.label,o.sortable&&wr("button",{type:"button",class:"caret-wrapper","aria-label":t("el.table.sortLabel",{column:o.label||""}),onClick:e=>p(e,o)},[wr("i",{onClick:e=>p(e,o,"ascending"),class:"sort-caret ascending"}),wr("i",{onClick:e=>p(e,o,"descending"),class:"sort-caret descending"})]),o.filterable&&wr(_w,{store:v,placement:o.filterPlacement||"bottom-start",appendTo:null==h?void 0:h.appendFilterPanelTo,column:o,upDataColumn:(e,t)=>{o[e]=t}},{"filter-icon":()=>o.renderFilterIcon?o.renderFilterIcon({filterOpened:o.filterOpened}):null})])])}))))}});function Ow(e,t,n=.03){return e-t>n}function Mw(e){const t=mn(kw),n=St(""),o=St(wr("div")),l=(n,o,l)=>{var r,a,s;const i=t,u=Hy(n);let c=null;const d=null==(r=null==i?void 0:i.vnode.el)?void 0:r.dataset.prefix;u&&(c=Uy({columns:null!=(s=null==(a=e.store)?void 0:a.states.columns.value)?s:[]},u,d),c&&(null==i||i.emit(`cell-${l}`,o,c,u,n))),null==i||i.emit(`row-${l}`,o,c,n)},r=Mc(t=>{var n;null==(n=e.store)||n.commit("setHoverRow",t)},30),a=Mc(()=>{var t;null==(t=e.store)||t.commit("setHoverRow",null)},30),s=(e,t,n)=>{var o;let l=null==(o=null==t?void 0:t.target)?void 0:o.parentNode;for(;e>1&&(l=null==l?void 0:l.nextSibling,l&&"TR"===l.nodeName);)n(l,"hover-row hover-fixed-row"),e--};return{handleDoubleClick:(e,t)=>{l(e,t,"dblclick")},handleClick:(t,n)=>{var o;null==(o=e.store)||o.commit("setCurrentRow",n),l(t,n,"click")},handleContextMenu:(e,t)=>{l(e,t,"contextmenu")},handleMouseEnter:r,handleMouseLeave:a,handleCellMouseEnter:(n,o,l)=>{var r,a,i,u,c,d,p,f,v;if(!t)return;const h=t,m=Hy(n),g=null==(r=null==h?void 0:h.vnode.el)?void 0:r.dataset.prefix;let b=null;if(m){if(b=Uy({columns:null!=(i=null==(a=e.store)?void 0:a.states.columns.value)?i:[]},m,g),!b)return;m.rowSpan>1&&s(m.rowSpan,n,op);const t=h.hoverState={cell:m,column:b,row:o};null==h||h.emit("cell-mouse-enter",t.row,t.column,t.cell,n)}if(!l)return void((null==(u=Qy)?void 0:u.trigger)===m&&(null==(c=Qy)||c()));const y=n.target.querySelector(".cell");if(!(np(y,`${g}-tooltip`)&&y.childNodes.length&&(null==(d=y.textContent)?void 0:d.trim())))return;const w=document.createRange();w.setStart(y,0),w.setEnd(y,y.childNodes.length);const{width:x,height:C}=w.getBoundingClientRect(),{width:_,height:S}=y.getBoundingClientRect(),{top:k,left:E,right:T,bottom:A}=(e=>{const t=window.getComputedStyle(e,null);return{left:Number.parseInt(t.paddingLeft,10)||0,right:Number.parseInt(t.paddingRight,10)||0,top:Number.parseInt(t.paddingTop,10)||0,bottom:Number.parseInt(t.paddingBottom,10)||0}})(y),O=k+A;Ow(x+(E+T),_)||Ow(C+O,S)||Ow(y.scrollWidth,_)?ew(l,null!=(p=(null==m?void 0:m.innerText)||(null==m?void 0:m.textContent))?p:"",o,b,m,h):(null==(f=Qy)?void 0:f.trigger)===m&&(null==(v=Qy)||v())},handleCellMouseLeave:e=>{const n=Hy(e);if(!n)return;n.rowSpan>1&&s(n.rowSpan,e,lp);const o=null==t?void 0:t.hoverState;null==t||t.emit("cell-mouse-leave",null==o?void 0:o.row,null==o?void 0:o.column,null==o?void 0:o.cell,e)},tooltipContent:n,tooltipTrigger:o}}const Rw=["colspan","rowspan"];var Lw=Kd(Xn({name:"TableTdWrapper",__name:"td-wrapper",props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup:e=>(t,n)=>(Fl(),Dl("td",{colspan:e.colspan,rowspan:e.rowspan},[Ao(t.$slots,"default")],8,Rw))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table-body/td-wrapper.vue"]]);function Pw(e){const t=mn(kw),n=Wa("table"),{handleDoubleClick:o,handleClick:l,handleContextMenu:r,handleMouseEnter:a,handleMouseLeave:s,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:d}=Mw(e),{getRowStyle:p,getRowClass:v,getCellStyle:h,getCellClass:m,getSpan:y,getColspanRealWidth:x}=function(e){const t=mn(kw),n=Wa("table");return{getRowStyle:(e,n)=>{const o=null==t?void 0:t.props.rowStyle;return g(o)?o.call(null,{row:e,rowIndex:n}):o||null},getRowClass:(o,l,r)=>{var a;const s=[n.e("row")];(null==t?void 0:t.props.highlightCurrentRow)&&o===(null==(a=e.store)?void 0:a.states.currentRow.value)&&s.push("current-row"),e.stripe&&r%2==1&&s.push(n.em("row","striped"));const i=null==t?void 0:t.props.rowClassName;return b(i)?s.push(i):g(i)&&s.push(i.call(null,{row:o,rowIndex:l})),s},getCellStyle:(n,o,l,r)=>{const a=null==t?void 0:t.props.cellStyle;let s=null!=a?a:{};g(a)&&(s=a.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,null==e?void 0:e.fixed,e.store);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getCellClass:(o,l,r,a,s)=>{const i=lw(n.b(),l,null==e?void 0:e.fixed,e.store,void 0,s),u=[a.id,a.align,a.className,...i],c=null==t?void 0:t.props.cellClassName;return b(c)?u.push(c):g(c)&&u.push(c.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),u.push(n.e("cell")),u.filter(e=>Boolean(e)).join(" ")},getSpan:(e,n,o,l)=>{let r=1,a=1;const s=null==t?void 0:t.props.spanMethod;if(g(s)){const t=s({row:e,column:n,rowIndex:o,columnIndex:l});f(t)?(r=t[0],a=t[1]):w(t)&&(r=t.rowspan,a=t.colspan)}return{rowspan:r,colspan:a}},getColspanRealWidth:(e,t,n)=>{if(t<1)return e[n].realWidth;const o=e.map(({realWidth:e,width:t})=>e||t).slice(n,n+t);return Number(o.reduce((e,t)=>Number(e)+Number(t),-1))}}}(e);let C=-1;const _=yr(()=>{var t;return null==(t=e.store)?void 0:t.states.columns.value.findIndex(({type:e})=>"default"===e)}),S=(e,n)=>{var o;const l=null==(o=null==t?void 0:t.props)?void 0:o.rowKey;return l?Ky(e,l):n},k=(c,d,f,g=!1)=>{const{tooltipEffect:b,tooltipOptions:w,store:k}=e,{indent:T,columns:A}=k.states,O=[];let M=!0;return f&&(O.push(n.em("row",`level-${f.level}`)),M=!!f.display),0===d&&(C=-1),e.stripe&&M&&C++,O.push(...v(c,d,C)),wr("tr",{style:[M?null:{display:"none"},p(c,d)],class:O,key:S(c,d),onDblclick:e=>o(e,c),onClick:e=>l(e,c),onContextmenu:e=>r(e,c),onMouseenter:()=>a(d),onMouseleave:s},A.value.map((n,o)=>{const{rowspan:l,colspan:r}=y(c,n,d,o);if(!l||!r)return null;const a=Object.assign({},n);a.realWidth=x(A.value,r,o);const s={store:k,_self:e.context||t,column:a,row:c,$index:d,cellIndex:o,expanded:g};o===_.value&&f&&(s.treeNode={indent:f.level&&f.level*T.value,level:f.level},Zc(f.expanded)&&(s.treeNode.expanded=f.expanded,"loading"in f&&(s.treeNode.loading=f.loading),"noLazyChildren"in f&&(s.treeNode.noLazyChildren=f.noLazyChildren)));const p=`${S(c,d)},${o}`,v=a.columnKey||a.rawColumnKey||"",C=n.showOverflowTooltip&&Hc({effect:b},w,n.showOverflowTooltip);return wr(Lw,{style:h(d,o,c,n),class:m(d,o,c,n,r-1),key:`${v}${p}`,rowspan:l,colspan:r,onMouseenter:e=>i(e,c,C),onMouseleave:u},{default:()=>E(o,n,s)})}))},E=(e,t,n)=>t.renderCell(n);return{wrappedRowRender:(o,l)=>{const r=e.store,{isRowExpanded:a,assertRowKey:s}=r,{treeData:i,lazyTreeNodeMap:u,childrenColumnName:c,rowKey:d}=r.states,p=r.states.columns.value;if(p.some(({type:e})=>"expand"===e)){const e=a(o),s=k(o,l,void 0,e),i=null==t?void 0:t.renderExpanded;if(!i)return s;const u=[[s]];return(t.props.preserveExpandedContent||e)&&u[0].push(wr("tr",{key:`expanded-row__${s.key}`,style:{display:e?"":"none"}},[wr("td",{colspan:p.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[i({row:o,$index:l,store:r,expanded:e})])])),u}if(Object.keys(i.value).length){s();const e=Ky(o,d.value);let t=i.value[e],n=null;t&&(n={expanded:t.expanded,level:t.level,display:!0,noLazyChildren:void 0,loading:void 0},Zc(t.lazy)&&(n&&Zc(t.loaded)&&t.loaded&&(n.noLazyChildren=!(t.children&&t.children.length)),n.loading=t.loading));const r=[k(o,l,null!=n?n:void 0)];if(t){let n=0;const a=(e,o)=>{e&&e.length&&o&&e.forEach(e=>{const s={display:o.display&&o.expanded,level:o.level+1,expanded:!1,noLazyChildren:!1,loading:!1},p=Ky(e,d.value);if(ed(p))throw new Error("For nested data item, row-key is required.");if(t={...i.value[p]},t&&(s.expanded=t.expanded,t.level=t.level||s.level,t.display=!(!t.expanded||!s.display),Zc(t.lazy)&&(Zc(t.loaded)&&t.loaded&&(s.noLazyChildren=!(t.children&&t.children.length)),s.loading=t.loading)),n++,r.push(k(e,l+n,s)),t){const n=u.value[p]||e[c.value];a(n,t)}})};t.display=!0;const s=u.value[e]||o[c.value];a(s,t)}return r}return k(o,l,void 0)},tooltipContent:c,tooltipTrigger:d}}var Nw=Xn({name:"ElTableBody",props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},setup(e){var t;const n=ar(),o=mn(kw),l=Wa("table"),{wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}=Pw(e),{onColumnsChange:i,onScrollableChange:u}=Sw(o),c=[];return wn(null==(t=e.store)?void 0:t.states.hoverRow,(t,o)=>{var r,a;const s=null==n?void 0:n.vnode.el,i=Array.from((null==s?void 0:s.children)||[]).filter(e=>null==e?void 0:e.classList.contains(`${l.e("row")}`));let u=t;const d=null==(r=i[u])?void 0:r.childNodes;if(null==d?void 0:d.length){let e=0;Array.from(d).reduce((t,n,o)=>{var l,r;return(null==(l=d[o])?void 0:l.colSpan)>1&&(e=null==(r=d[o])?void 0:r.colSpan),"TD"!==n.nodeName&&0===e&&t.push(o),e>0&&e--,t},[]).forEach(e=>{var n;for(u=t;u>0;){const t=null==(n=i[u-1])?void 0:n.childNodes;if(t[e]&&"TD"===t[e].nodeName&&t[e].rowSpan>1){op(t[e],"hover-cell"),c.push(t[e]);break}u--}})}else c.forEach(e=>lp(e,"hover-cell")),c.length=0;(null==(a=e.store)?void 0:a.states.isComplex.value)&&ld&&ep(()=>{const e=i[o],n=i[t];e&&!e.classList.contains("hover-fixed-row")&&lp(e,"hover-row"),n&&op(n,"hover-row")})}),ho(()=>{var e;null==(e=Qy)||e()}),{ns:l,onColumnsChange:i,onScrollableChange:u,wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this;return wr("tbody",{tabIndex:-1},[((null==t?void 0:t.states.data.value)||[]).reduce((t,n)=>t.concat(e(n,t.length)),[])])}});function Iw(e){const{columns:t}=function(){const e=mn(kw),t=null==e?void 0:e.store;return{leftFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedLeafColumnsLength.value)?e:0}),rightFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columnsCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value.length)?e:0}),leftFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedColumns.value.length)?e:0}),rightFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columns:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value)?e:[]})}}(),n=Wa("table");return{getCellClasses:(t,o)=>{const l=t[o],r=[n.e("cell"),l.id,l.align,l.labelClassName,...lw(n.b(),o,l.fixed,e.store)];return l.className&&r.push(l.className),l.children||r.push(n.is("leaf")),r},getCellStyles:(t,n)=>{const o=aw(n,t.fixed,e.store);return sw(o,"left"),sw(o,"right"),o},columns:t}}var Bw=Xn({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const t=mn(kw),n=Wa("table"),{getCellClasses:o,getCellStyles:l,columns:r}=Iw(e),{onScrollableChange:a,onColumnsChange:s}=Sw(t);return{ns:n,onScrollableChange:a,onColumnsChange:s,getCellClasses:o,getCellStyles:l,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:l}=this,r=this.store.states.data.value;let a=[];return o?a=o({columns:e,data:r}):e.forEach((e,t)=>{if(0===t)return void(a[t]=l);const n=r.map(t=>Number(t[e.property])),o=[];let s=!0;n.forEach(e=>{if(!Number.isNaN(+e)){s=!1;const t=`${e}`.split(".")[1];o.push(t?t.length:0)}});const i=Math.max.apply(null,o);a[t]=s?"":n.reduce((e,t)=>{const n=Number(t);return Number.isNaN(+n)?e:Number.parseFloat((e+t).toFixed(Math.min(i,20)))},0)}),wr(wr("tfoot",[wr("tr",{},[...e.map((o,l)=>wr("td",{key:l,colspan:o.colSpan,rowspan:o.rowSpan,class:n(e,l),style:t(o,l)},[wr("div",{class:["cell",o.labelClassName]},[a[l]])]))])]))}});function Fw(e,t,n,o){const l=St(!1),r=St(null),a=St(!1),s=St({width:null,height:null,headerHeight:null}),i=St(!1),u=St(),c=St(0),d=St(0),p=St(0),f=St(0),v=St(0);wn(()=>e.height,e=>{t.setHeight(null!=e?e:null)},{immediate:!0}),wn(()=>e.maxHeight,e=>{t.setMaxHeight(null!=e?e:null)},{immediate:!0}),wn(()=>[e.currentRowKey,n.states.rowKey],([e,t])=>{Ot(t)&&Ot(e)&&n.setCurrentRowKey(`${e}`)},{immediate:!0}),wn(()=>e.data,e=>{o.store.commit("setData",e)},{immediate:!0,deep:!0}),yn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const h=yr(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),m=yr(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),g=()=>{h.value&&t.updateElsHeight(),t.updateColumnsWidth(),"undefined"!=typeof window&&requestAnimationFrame(y)};co(async()=>{await tn(),n.updateColumns(),w(),requestAnimationFrame(g);const t=o.vnode.el,l=o.refs.headerWrapper;e.flexible&&t&&t.parentElement&&(t.parentElement.style.minWidth="0"),s.value={width:u.value=t.offsetWidth,height:t.offsetHeight,headerHeight:e.showHeader&&l?l.offsetHeight:null},n.states.columns.value.forEach(e=>{e.filteredValue&&e.filteredValue.length&&o.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})}),o.$ready=!0});const b=e=>{const{tableWrapper:n}=o.refs;((e,n)=>{if(!e)return;const o=Array.from(e.classList).filter(e=>!e.startsWith("is-scrolling-"));o.push(t.scrollX.value?n:"is-scrolling-none"),e.className=o.join(" ")})(n,e)},y=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const e="is-scrolling-none";return void((e=>{const{tableWrapper:t}=o.refs;return!(!t||!t.classList.contains(e))})(e)||b(e))}const e=o.refs.scrollBarRef.wrapRef;if(!e)return;const{scrollLeft:n,offsetWidth:l,scrollWidth:r}=e,{headerWrapper:a,footerWrapper:s}=o.refs;a&&(a.scrollLeft=n),s&&(s.scrollLeft=n),b(n>=r-l-1?"is-scrolling-right":0===n?"is-scrolling-left":"is-scrolling-middle")},w=()=>{o.refs.scrollBarRef&&(o.refs.scrollBarRef.wrapRef&&hd(o.refs.scrollBarRef.wrapRef,"scroll",y,{passive:!0}),e.fit?bd(o.vnode.el,x):hd(window,"resize",x),bd(o.refs.tableInnerWrapper,()=>{var e,t;x(),null==(t=null==(e=o.refs)?void 0:e.scrollBarRef)||t.update()}))},x=()=>{var t,n,l,r;const a=o.vnode.el;if(!o.$ready||!a)return;let i=!1;const{width:m,height:b,headerHeight:y}=s.value,w=u.value=a.offsetWidth;m!==w&&(i=!0);const x=a.offsetHeight;(e.height||h.value)&&b!==x&&(i=!0);const C="fixed"===e.tableLayout?o.refs.headerWrapper:null==(t=o.refs.tableHeaderRef)?void 0:t.$el;e.showHeader&&(null==C?void 0:C.offsetHeight)!==y&&(i=!0),c.value=(null==(n=o.refs.tableWrapper)?void 0:n.scrollHeight)||0,p.value=(null==C?void 0:C.scrollHeight)||0,f.value=(null==(l=o.refs.footerWrapper)?void 0:l.offsetHeight)||0,v.value=(null==(r=o.refs.appendWrapper)?void 0:r.offsetHeight)||0,d.value=c.value-p.value-f.value-v.value,i&&(s.value={width:w,height:x,headerHeight:e.showHeader&&(null==C?void 0:C.offsetHeight)||0},g())},C=vf(),_=yr(()=>{const{bodyWidth:e,scrollY:n,gutterWidth:o}=t;return e.value?e.value-(n.value?o:0)+"px":""}),S=yr(()=>e.maxHeight?"fixed":e.tableLayout),k=yr(()=>{if(e.data&&e.data.length)return;let t="100%";e.height&&d.value&&(t=`${d.value}px`);const n=u.value;return{width:n?`${n}px`:"",height:t}}),E=yr(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${p.value+f.value}px)`}:{maxHeight:+e.maxHeight-p.value-f.value+"px"}:{});return{isHidden:l,renderExpanded:r,setDragVisible:e=>{a.value=e},isGroup:i,handleMouseLeave:()=>{o.store.commit("setHoverRow",null),o.hoverState&&(o.hoverState=null)},handleHeaderFooterMousewheel:(e,t)=>{const{pixelX:n,pixelY:l}=t;Math.abs(n)>=Math.abs(l)&&(o.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},tableSize:C,emptyBlockStyle:k,resizeProxyVisible:a,bodyWidth:_,resizeState:s,doLayout:g,tableBodyStyles:m,tableLayout:S,scrollbarViewStyle:{display:"inline-block",verticalAlign:"middle"},scrollbarStyle:E}}function $w(e){const t=St();co(()=>{(()=>{const n=e.vnode.el.querySelector(".hidden-columns"),o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(e=>e())}),t.value.observe(n,{childList:!0,subtree:!0})})()}),ho(()=>{var e;null==(e=t.value)||e.disconnect()})}var jw={data:{type:Array,default:()=>[]},size:Bd,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:[String,Object,Array],default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean};function Vw(e){const t="auto"===e.tableLayout;let n=e.columns||[];return t&&n.every(({width:e})=>Xc(e))&&(n=[]),wr("colgroup",{},n.map(n=>wr("col",(n=>{const o={key:`${e.tableLayout}_${n.id}`,style:{},name:void 0};return t?o.style={width:`${n.width}px`}:o.name=n.id,o})(n))))}Vw.props=["columns","tableLayout"];var Dw,zw,Hw,Ww,qw,Uw,Kw,Gw,Yw,Xw,Zw,Jw,Qw,ex,tx,nx=!1;function ox(){if(!nx){nx=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Jw=/\b(iPhone|iP[ao]d)/.exec(e),Qw=/\b(iP[ao]d)/.exec(e),Xw=/Android/i.exec(e),ex=/FBAN\/\w+;/i.exec(e),tx=/Mobile/i.exec(e),Zw=!!/Win64/.exec(e),t){(Dw=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(Dw=document.documentMode);var o=/(?:Trident\/(\d+.\d+))/.exec(e);Uw=o?parseFloat(o[1])+4:Dw,zw=t[2]?parseFloat(t[2]):NaN,Hw=t[3]?parseFloat(t[3]):NaN,(Ww=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),qw=t&&t[1]?parseFloat(t[1]):NaN):qw=NaN}else Dw=zw=Hw=qw=Ww=NaN;if(n){if(n[1]){var l=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Kw=!l||parseFloat(l[1].replace("_","."))}else Kw=!1;Gw=!!n[2],Yw=!!n[3]}else Kw=Gw=Yw=!1}}var lx,rx={ie:function(){return ox()||Dw},ieCompatibilityMode:function(){return ox()||Uw>Dw},ie64:function(){return rx.ie()&&Zw},firefox:function(){return ox()||zw},opera:function(){return ox()||Hw},webkit:function(){return ox()||Ww},safari:function(){return rx.webkit()},chrome:function(){return ox()||qw},windows:function(){return ox()||Gw},osx:function(){return ox()||Kw},linux:function(){return ox()||Yw},iphone:function(){return ox()||Jw},mobile:function(){return ox()||Jw||Qw||Xw||tx},nativeApp:function(){return ox()||ex},android:function(){return ox()||Xw},ipad:function(){return ox()||Qw}},ax=rx,sx={canUseDOM:!!(typeof window<"u"&&window.document&&window.document.createElement)};sx.canUseDOM&&(lx=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var ix=function(e,t){if(!sx.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var l=document.createElement("div");l.setAttribute(n,"return;"),o="function"==typeof l[n]}return!o&&lx&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o};function ux(e){var t=0,n=0,o=0,l=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=10*t,l=10*n,"deltaY"in e&&(l=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||l)&&e.deltaMode&&(1==e.deltaMode?(o*=40,l*=40):(o*=800,l*=800)),o&&!t&&(t=o<1?-1:1),l&&!n&&(n=l<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:l}}ux.getEventType=function(){return ax.firefox()?"DOMMouseScroll":ix("wheel")?"wheel":"mousewheel"};var cx=ux;const dx="_Mousewheel",px=function(e,t){if(e&&e.addEventListener){fx(e);const n=function(e){const n=cx(e);t&&Reflect.apply(t,this,[e,n])};e[dx]={wheelHandler:n},e.addEventListener("wheel",n,{passive:!0})}},fx=e=>{var t;(null==(t=e[dx])?void 0:t.wheelHandler)&&(e.removeEventListener("wheel",e[dx].wheelHandler),e[dx]=null)};let vx=1;const hx=["data-prefix"],mx={ref:"hiddenColumns",class:"hidden-columns"};var gx=Kd(Xn({name:"ElTable",directives:{Mousewheel:{beforeMount(e,t){px(e,t.value)},unmounted(e){fx(e)},updated(e,t){t.value!==t.oldValue&&px(e,t.value)}}},components:{TableHeader:Aw,TableBody:Nw,TableFooter:Bw,ElScrollbar:Mf,hColgroup:Vw},props:jw,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t:t}=Rd(),n=Wa("table"),o=ar();hn(kw,o);const l=vw(o,e);o.store=l;const r=new gw({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=r;const a=yr(()=>0===(l.states.data.value||[]).length),{setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,sort:h,updateKeyChildren:m}=function(e){return{setCurrentRow:t=>{e.commit("setCurrentRow",t)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(t,n,o=!0)=>{e.toggleRowSelection(t,n,!1,o),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit("sort",{prop:t,order:n})},updateKeyChildren:(t,n)=>{e.updateKeyChildren(t,n)}}}(l),{isHidden:g,renderExpanded:b,setDragVisible:y,isGroup:w,handleMouseLeave:x,handleHeaderFooterMousewheel:C,tableSize:_,emptyBlockStyle:S,resizeProxyVisible:k,bodyWidth:E,resizeState:T,doLayout:A,tableBodyStyles:O,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L}=Fw(e,r,l,o),{scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B}=(()=>{const e=St(),t=(t,n)=>{const o=e.value;o&&Jc(n)&&["Top","Left"].includes(t)&&o[`setScroll${t}`](n)};return{scrollBarRef:e,scrollTo:(t,n)=>{const o=e.value;o&&o.scrollTo(t,n)},setScrollTop:e=>t("Top",e),setScrollLeft:e=>t("Left",e)}})(),F=Mc(A,50),$=`${n.namespace.value}-table_${vx++}`;o.tableId=$,o.state={isGroup:w,resizeState:T,doLayout:A,debouncedUpdateLayout:F};const j=yr(()=>{var n;return null!=(n=e.sumText)?n:t("el.table.sumText")}),V=yr(()=>{var n;return null!=(n=e.emptyText)?n:t("el.table.emptyText")}),D=yr(()=>Tw(l.states.originColumns.value)[0]);return $w(o),vo(()=>{F.cancel()}),{ns:n,layout:r,store:l,columns:D,handleHeaderFooterMousewheel:C,handleMouseLeave:x,tableId:$,tableSize:_,isHidden:g,isEmpty:a,renderExpanded:b,resizeProxyVisible:k,resizeState:T,isGroup:w,bodyWidth:E,tableBodyStyles:O,emptyBlockStyle:S,debouncedUpdateLayout:F,setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,doLayout:A,sort:h,updateKeyChildren:m,t:t,setDragVisible:y,context:o,computedSumText:j,computedEmptyText:V,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L,scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B,allowDragLastColumn:e.allowDragLastColumn}}}),[["render",function(e,t,n,o,l,r){const a=xo("hColgroup"),s=xo("table-header"),i=xo("table-body"),u=xo("table-footer"),c=xo("el-scrollbar"),d=So("directives","mousewheel");return Fl(),Dl("div",{ref:"tableWrapper",class:q([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:V(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[1]||(t[1]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t))},[Kl("div",{ref:"tableInnerWrapper",class:q(e.ns.e("inner-wrapper"))},[Kl("div",mx,[Ao(e.$slots,"default")],512),e.showHeader&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:0,ref:"headerWrapper",class:q(e.ns.e("header-wrapper"))},[Kl("table",{ref:"tableHeader",class:q(e.ns.e("header")),style:V(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","append-filter-panel-to","allow-drag-last-column","onSetDragVisible"])],6)],2)),[[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),Kl("div",{ref:"bodyWrapper",class:q(e.ns.e("body-wrapper"))},[Gl(c,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:t[0]||(t[0]=t=>e.$emit("scroll",t))},{default:pn(()=>[Kl("table",{ref:"tableBody",class:q(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:V({width:e.bodyWidth,tableLayout:e.tableLayout})},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&"auto"===e.tableLayout?(Fl(),zl(s,{key:0,ref:"tableHeaderRef",class:q(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","append-filter-panel-to","onSetDragVisible"])):Zl("v-if",!0),Gl(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&"auto"===e.tableLayout?(Fl(),zl(u,{key:1,class:q(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Zl("v-if",!0)],6),e.isEmpty?(Fl(),Dl("div",{key:0,ref:"emptyBlock",style:V(e.emptyBlockStyle),class:q(e.ns.e("empty-block"))},[Kl("span",{class:q(e.ns.e("empty-text"))},[Ao(e.$slots,"empty",{},()=>[Xl(Z(e.computedEmptyText),1)])],2)],6)):Zl("v-if",!0),e.$slots.append?(Fl(),Dl("div",{key:1,ref:"appendWrapper",class:q(e.ns.e("append-wrapper"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)]),_:3},8,["view-style","wrap-style","always","tabindex","native"])],2),e.showSummary&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:1,ref:"footerWrapper",class:q(e.ns.e("footer-wrapper"))},[Kl("table",{class:q(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:V(e.tableBodyStyles)},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Xr,!e.isEmpty],[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),e.border||e.isGroup?(Fl(),Dl("div",{key:2,class:q(e.ns.e("border-left-patch"))},null,2)):Zl("v-if",!0)],2),fn(Kl("div",{ref:"resizeProxy",class:q(e.ns.e("column-resize-proxy"))},null,2),[[Xr,e.resizeProxyVisible]])],46,hx)}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const bx={selection:"table-column--selection",expand:"table__expand-column"},yx={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},wx={selection:{renderHeader({store:e}){var t;return wr(tg,{disabled:e.states.data.value&&0===e.states.data.value.length,size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":null!=(t=e.toggleAllSelection)?t:void 0,modelValue:e.states.isAllSelected.value,ariaLabel:e.t("el.table.selectAllLabel")})},renderCell:({row:e,column:t,store:n,$index:o})=>wr(tg,{disabled:!!t.selectable&&!t.selectable.call(null,e,o),size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e),ariaLabel:n.t("el.table.selectRowLabel")}),sortable:!1,resizable:!1},index:{renderHeader:({column:e})=>e.label||"#",renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return Jc(o)?n=t+o:g(o)&&(n=o(t)),wr("div",{},[n])},sortable:!1},expand:{renderHeader:({column:e})=>e.label||"",renderCell({column:e,row:t,store:n,expanded:o}){const{ns:l}=n,r=[l.e("expand-icon")];return!e.renderExpand&&o&&r.push(l.em("expand-icon","expanded")),wr("button",{type:"button","aria-label":n.t(o?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":o,class:r,onClick:function(e){e.stopPropagation(),n.toggleRowExpansion(t)}},{default:()=>e.renderExpand?[e.renderExpand({expanded:o})]:[wr(ip,null,{default:()=>[wr(dp)]})]})},sortable:!1,resizable:!1}};function xx({row:e,column:t,$index:n}){var o;const l=t.property,r=l&&Vd(e,l).value;return t&&t.formatter?t.formatter(e,t,r,n):(null==(o=null==r?void 0:r.toString)?void 0:o.call(r))||""}function Cx(e,t){return e.reduce((e,t)=>(e[t]=t,e),t)}function _x(e,t,n){const o=ar(),l=St(""),r=St(!1),a=St(),s=St(),i=Wa("table");yn(()=>{a.value=e.align?`is-${e.align}`:null,a.value}),yn(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:a.value,s.value});const u=yr(()=>{let e=o.vnode.vParent||o.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e}),c=yr(()=>{const{store:e}=o.parent;if(!e)return!1;const{treeData:t}=e.states,n=t.value;return n&&Object.keys(n).length>0}),d=St(Yy(e.width)),p=St(Xy(e.minWidth));return{columnId:l,realAlign:a,isSubColumn:r,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:e=>(d.value&&(e.width=d.value),p.value&&(e.minWidth=p.value),!d.value&&p.value&&(e.width=void 0),e.minWidth||(e.minWidth=80),e.realWidth=Number(Xc(e.width)?e.minWidth:e.width),e),setColumnForcedProps:e=>{const t=e.type,n=wx[t]||{};Object.keys(n).forEach(t=>{const o=n[t];"className"===t||Xc(o)||(e[t]=o)});const o=(e=>bx[e]||"")(t);if(o){const t=`${Ot(i.namespace)}-${o}`;e.className=e.className?`${e.className} ${t}`:t}return e},setColumnRenders:l=>{e.renderHeader||"selection"!==l.type&&(l.renderHeader=e=>{if(o.columnConfig.value.label,t.header){const n=t.header(e);if(iw(n))return wr(Rl,n)}return Xl(l.label)}),t["filter-icon"]&&(l.renderFilterIcon=e=>Ao(t,"filter-icon",e)),t.expand&&(l.renderExpand=e=>Ao(t,"expand",e));let r=l.renderCell;return"expand"===l.type?(l.renderCell=e=>wr("div",{class:"cell"},[r(e)]),n.value.renderExpanded=e=>t.default?t.default(e):t.default):(r=r||xx,l.renderCell=e=>{let a=null;if(t.default){const n=t.default(e);a=n.some(e=>e.type!==Pl)?n:r(e)}else a=r(e);const{columns:s}=n.value.store.states,u=s.value.findIndex(e=>"default"===e.type),d=function({row:e,treeNode:t,store:n},o=!1){const{ns:l}=n;if(!t)return o?[wr("span",{class:l.e("placeholder")})]:null;const r=[],a=function(o){o.stopPropagation(),t.loading||n.loadOrToggle(e)};if(t.indent&&r.push(wr("span",{class:l.e("indent"),style:{"padding-left":`${t.indent}px`}})),Zc(t.expanded)&&!t.noLazyChildren){const e=[l.e("expand-icon"),t.expanded?l.em("expand-icon","expanded"):""];let o=dp;t.loading&&(o=Ep),r.push(wr("button",{type:"button","aria-label":n.t(t.expanded?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":t.expanded,class:e,onClick:a},{default:()=>[wr(ip,{class:l.is("loading",t.loading)},{default:()=>[wr(o)]})]}))}else r.push(wr("span",{class:l.e("placeholder")}));return r}(e,c.value&&e.cellIndex===u),p={class:"cell",style:{}};return l.showOverflowTooltip&&(p.class=`${p.class} ${Ot(i.namespace)}-tooltip`,p.style={width:(e.column.realWidth||Number(e.column.width))-1+"px"}),(e=>{function t(e){var t;"ElTableColumn"===(null==(t=null==e?void 0:e.type)?void 0:t.name)&&(e.vParent=o)}f(e)?e.forEach(e=>t(e)):t(e)})(a),wr("div",p,[d,a])}),l},getPropsData:(...t)=>t.reduce((t,n)=>(f(n)&&n.forEach(n=>{t[n]=e[n]}),t),{}),getColumnElIndex:(e,t)=>Array.prototype.indexOf.call(e,t),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",o.columnConfig.value)}}}var Sx={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}};let kx=1;var Ex=Xn({name:"ElTableColumn",components:{ElCheckbox:tg},props:Sx,setup(e,{slots:t}){const n=ar(),o=St({}),l=yr(()=>{let e=n.parent;for(;e&&!e.tableId;)e=e.parent;return e}),{registerNormalWatchers:r,registerComplexWatchers:a}=function(e,t){const n=ar();return{registerComplexWatchers:()=>{const o={realWidth:"width",realMinWidth:"minWidth"},l=Cx(["fixed"],o);Object.keys(l).forEach(l=>{const r=o[l];p(t,r)&&wn(()=>t[r],t=>{let o=t;"width"===r&&"realWidth"===l&&(o=Yy(t)),"minWidth"===r&&"realMinWidth"===l&&(o=Xy(t)),n.columnConfig.value[r]=o,n.columnConfig.value[l]=o;const a="fixed"===r;e.value.store.scheduleLayout(a)})})},registerNormalWatchers:()=>{const o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},l=Cx(["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter","resizable"],o);Object.keys(l).forEach(e=>{const l=o[e];p(t,l)&&wn(()=>t[l],t=>{n.columnConfig.value[e]=t,"filters"!==e&&"filterMethod"!==e||(n.columnConfig.value.filterable=!(!n.columnConfig.value.filters&&!n.columnConfig.value.filterMethod))})}),["showOverflowTooltip"].forEach(t=>{p(e.value.props,t)&&wn(()=>e.value.props[t],e=>{n.columnConfig.value[t]=e})})}}}(l,e),{columnId:s,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:d,setColumnForcedProps:f,setColumnRenders:v,getPropsData:h,getColumnElIndex:m,realAlign:g,updateColumnOrder:b}=_x(e,t,l),y=c.value;s.value=`${"tableId"in y&&y.tableId||"columnId"in y&&y.columnId}_column_${kx++}`,uo(()=>{i.value=l.value!==y;const t=e.type||"default",c=""===e.sortable||e.sortable,m="selection"!==t&&(Xc(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip),b=Xc(e.tooltipFormatter)?y.props.tooltipFormatter:e.tooltipFormatter,w={...yx[t],id:s.value,type:t,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:m,tooltipFormatter:b,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:c,index:e.index,rawColumnKey:n.vnode.key};let x=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);x=function(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(p(t,o)){const e=t[o];Xc(e)||(n[o]=e)}return n}(w,x),x=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}(v,d,f)(x),o.value=x,r(),a()}),co(()=>{var e,t;const r=c.value,a=i.value?null==(e=r.vnode.el)?void 0:e.children:null==(t=r.refs.hiddenColumns)?void 0:t.children,s=()=>m(a||[],n.vnode.el);o.value.getColumnIndex=s,s()>-1&&l.value.store.commit("insertColumn",o.value,i.value?"columnConfig"in r&&r.columnConfig.value:null,b)}),vo(()=>{const e=o.value.getColumnIndex;(e?e():-1)>-1&&l.value.store.commit("removeColumn",o.value,i.value?"columnConfig"in y&&y.columnConfig.value:null,b)}),n.columnId=s.value,n.columnConfig=o},render(){var e,t,n;try{const o=null==(t=(e=this.$slots).default)?void 0:t.call(e,{row:{},column:{},$index:-1}),l=[];if(f(o))for(const e of o)"ElTableColumn"===(null==(n=e.type)?void 0:n.name)||2&e.shapeFlag?l.push(e):e.type===Rl&&f(e.children)&&e.children.forEach(e=>{1024===(null==e?void 0:e.patchFlag)||b(null==e?void 0:e.children)||l.push(e)});return wr("div",l)}catch(tT){return wr("div",[])}}});const Tx=Gd(gx,{TableColumn:Ex}),Ax=Yd(Ex),Ox=Symbol("tabsRootContextKey"),Mx=Nd({tabs:{type:Array,default:()=>[]},tabRefs:{type:Object,default:()=>({})}}),Rx="ElTabBar";var Lx=Kd(Xn({name:Rx,__name:"tab-bar",props:Mx,setup(e,{expose:t}){const n=e,o=mn(Ox);o||xd(Rx,"");const l=Wa("tabs"),r=St(),a=St(),s=yr(()=>{var e;return Xc(o.props.defaultValue)||Boolean(null==(e=a.value)?void 0:e.transform)}),i=()=>a.value=(()=>{let e=0,t=0;const l=["top","bottom"].includes(o.props.tabPosition)?"width":"height",r="width"===l?"x":"y",a="x"===r?"left":"top";return n.tabs.every(o=>{if(Xc(o.paneName))return!1;const r=n.tabRefs[o.paneName];if(!r)return!1;if(!o.active)return!0;e=r[`offset${Ay(a)}`],t=r[`client${Ay(l)}`];const s=window.getComputedStyle(r);return"width"===l&&(t-=Number.parseFloat(s.paddingLeft)+Number.parseFloat(s.paddingRight),e+=Number.parseFloat(s.paddingLeft)),!1}),{[l]:`${t}px`,transform:`translate${Ay(r)}(${e}px)`}})(),u=[];wn(()=>n.tabs,async()=>{await tn(),i(),u.forEach(e=>e.stop()),u.length=0,Object.values(n.tabRefs).forEach(e=>{u.push(bd(e,i))})},{immediate:!0});const c=bd(r,()=>i());return vo(()=>{u.forEach(e=>e.stop()),u.length=0,c.stop()}),t({ref:r,update:i}),(e,t)=>s.value?(Fl(),Dl("div",{key:0,ref_key:"barRef",ref:r,class:q([Ot(l).e("active-bar"),Ot(l).is(Ot(o).props.tabPosition)]),style:V(a.value)},null,6)):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-bar.vue"]]);const Px=Nd({panes:{type:Array,default:()=>[]},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean,tabindex:{type:[String,Number],default:void 0}}),Nx="ElTabNav",Ix=Xn({name:Nx,props:Px,emits:{tabClick:(e,t,n)=>n instanceof Event,tabRemove:(e,t)=>t instanceof Event},setup(e,{expose:t,emit:n}){const o=mn(Ox);o||xd(Nx,"");const l=Wa("tabs"),r=function(e={}){const{document:t=vd}=e;if(!t)return St("visible");const n=St(t.visibilityState);return hd(t,"visibilitychange",()=>{n.value=t.visibilityState}),n}(),a=function(e={}){const{window:t=fd}=e;if(!t)return St(!1);const n=St(t.document.hasFocus());return hd(t,"blur",()=>{n.value=!1}),hd(t,"focus",()=>{n.value=!0}),n}(),s=St(),i=St(),u=St(),c=St({}),d=St(),p=St(!1),f=St(0),v=St(!1),h=St(!0),m=kt(),g=yr(()=>["top","bottom"].includes(o.props.tabPosition)),b=yr(()=>g.value?"width":"height"),y=yr(()=>({transform:`translate${"width"===b.value?"X":"Y"}(-${f.value}px)`})),{width:w,height:x}=yd(s),{width:C,height:_}=yd(i,{width:0,height:0},{box:"border-box"}),S=yr(()=>g.value?w.value:x.value),k=yr(()=>g.value?C.value:_.value),{onWheel:E}=Ny({atStartEdge:yr(()=>f.value<=0),atEndEdge:yr(()=>k.value-f.value<=S.value),layout:yr(()=>g.value?"horizontal":"vertical")},e=>{var t,n,o;f.value=(t=f.value+e,n=0,void 0===(o=k.value-S.value)&&(o=n,n=void 0),void 0!==o&&(o=(o=gs(o))==o?o:0),void 0!==n&&(n=(n=gs(n))==n?n:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(gs(t),n,o))}),T=()=>{if(!s.value)return;const e=s.value[`offset${Ay(b.value)}`],t=f.value;if(!t)return;const n=t>e?t-e:0;f.value=n},A=()=>{if(!s.value||!i.value)return;const e=i.value[`offset${Ay(b.value)}`],t=s.value[`offset${Ay(b.value)}`],n=f.value;if(e-n<=t)return;const o=e-n>2*t?n+t:e-t;f.value=o},O=async()=>{const t=i.value;if(!(p.value&&u.value&&s.value&&t))return;await tn();const n=c.value[e.currentName];if(!n)return;const o=s.value,l=n.getBoundingClientRect(),r=o.getBoundingClientRect(),a=g.value?t.offsetWidth-r.width:t.offsetHeight-r.height,d=f.value;let v=d;g.value?(l.leftr.right&&(v=d+l.right-r.right)):(l.topr.bottom&&(v=d+(l.bottom-r.bottom))),v=Math.max(v,0),f.value=Math.min(v,a)},M=()=>{var t;if(!i.value||!s.value)return;e.stretch&&(null==(t=d.value)||t.update());const n=i.value[`offset${Ay(b.value)}`],o=s.value[`offset${Ay(b.value)}`],l=f.value;o0&&(f.value=0))},R=e=>{let t=0;switch(cv(e)){case iv.left:case iv.up:t=-1;break;case iv.right:case iv.down:t=1;break;default:return}const n=Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));let o=n.indexOf(e.target)+t;o<0?o=n.length-1:o>=n.length&&(o=0),n[o].focus({preventScroll:!0}),n[o].click(),L()},L=()=>{h.value&&(v.value=!0)},P=()=>v.value=!1;return wn(r,e=>{"hidden"===e?h.value=!1:"visible"===e&&setTimeout(()=>h.value=!0,50)}),wn(a,e=>{e?setTimeout(()=>h.value=!0,50):h.value=!1}),bd(u,()=>{ep(M)}),co(()=>setTimeout(()=>O(),0)),fo(()=>M()),t({scrollToActiveTab:O,removeFocus:P,focusActiveTab:async()=>{await tn();const t=c.value[e.currentName];null==t||t.focus({preventScroll:!0})},tabListRef:i,tabBarRef:d,scheduleRender:()=>At(m)}),()=>{const t=p.value?[Gl("span",{class:[l.e("nav-prev"),l.is("disabled",!p.value.prev)],onClick:T},[Gl(ip,null,{default:()=>[Gl(cp,null,null)]})]),Gl("span",{class:[l.e("nav-next"),l.is("disabled",!p.value.next)],onClick:A},[Gl(ip,null,{default:()=>[Gl(dp,null,null)]})])]:null,r=e.panes.map((t,r)=>{var a,s,i,u,d;const p=t.uid,f=t.props.disabled,h=null!=(s=null!=(a=t.props.name)?a:t.index)?s:`${r}`,m=!f&&(t.isClosable||!1!==t.props.closable&&e.editable);t.index=`${r}`;const g=m?Gl(ip,{class:"is-icon-close",onClick:e=>n("tabRemove",t,e)},{default:()=>[Gl(bp,null,null)]}):null,b=(null==(u=(i=t.slots).label)?void 0:u.call(i))||t.props.label,y=!f&&t.active?null!=(d=e.tabindex)?d:o.props.tabindex:-1;return Gl("div",{ref:e=>((e,t)=>{c.value[t]=e})(e,h),class:[l.e("item"),l.is(o.props.tabPosition),l.is("active",t.active),l.is("disabled",f),l.is("closable",m),l.is("focus",v.value)],id:`tab-${h}`,key:`tab-${p}`,"aria-controls":`pane-${h}`,role:"tab","aria-selected":t.active,tabindex:y,onFocus:()=>L(),onBlur:()=>P(),onClick:e=>{P(),n("tabClick",t,h,e)},onKeydown:e=>{const o=cv(e);!m||o!==iv.delete&&o!==iv.backspace||n("tabRemove",t,e)}},[b,g])});return m.value,Gl("div",{ref:u,class:[l.e("nav-wrap"),l.is("scrollable",!!p.value),l.is(o.props.tabPosition)]},[t,Gl("div",{class:l.e("nav-scroll"),ref:s},[e.panes.length>0?Gl("div",{class:[l.e("nav"),l.is(o.props.tabPosition),l.is("stretch",e.stretch&&["top","bottom"].includes(o.props.tabPosition))],ref:i,style:y.value,role:"tablist",onKeydown:R,onWheel:E},[e.type?null:Gl(Lx,{ref:d,tabs:[...e.panes],tabRefs:c.value},null),r]):null])])}}}),Bx=Nd({type:{type:String,values:["card","border-card",""],default:""},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},defaultValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:Function,default:()=>!0},stretch:Boolean,tabindex:{type:[String,Number],default:0}}),Fx=e=>b(e)||Jc(e),$x={[Zd]:e=>Fx(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>Fx(e),edit:(e,t)=>["remove","add"].includes(t),tabRemove:e=>Fx(e),tabAdd:()=>!0},jx=Xn({name:"ElTabs",props:Bx,emits:$x,setup(e,{emit:t,slots:n,expose:o}){var l;const r=Wa("tabs"),a=yr(()=>["left","right"].includes(e.tabPosition)),{children:s,addChild:i,removeChild:u,ChildrenSorter:c}=Dm(ar(),"ElTabPane"),d=St(),p=St(null!=(l=Xc(e.modelValue)?e.defaultValue:e.modelValue)?l:"0"),f=async(n,o=!1)=>{var l,r,a,i;if(p.value!==n&&!Xc(n))try{let u;if(e.beforeLeave){const t=e.beforeLeave(n,p.value);u=t instanceof Promise?await t:t}else u=!0;if(!1!==u){const e=null==(l=s.value.find(e=>e.paneName===p.value))?void 0:l.isFocusInsidePane();p.value=n,o&&(t(Zd,n),t("tabChange",n)),null==(a=null==(r=d.value)?void 0:r.removeFocus)||a.call(r),e&&(null==(i=d.value)||i.focusActiveTab())}}catch(tT){}},v=(e,n,o)=>{e.props.disabled||(t("tabClick",e,o),f(n,!0))},h=(e,n)=>{e.props.disabled||Xc(e.props.name)||(n.stopPropagation(),t("edit",e.props.name,"remove"),t("tabRemove",e.props.name))},m=()=>{t("edit",void 0,"add"),t("tabAdd")},g=e=>{const t=cv(e);[iv.enter,iv.numpadEnter].includes(t)&&m()},b=t=>{const n=t.el.firstChild,o=["bottom","right"].includes(e.tabPosition)?t.children[0].el:t.children[1].el;n!==o&&n.before(o)};return wn(()=>e.modelValue,e=>f(e)),wn(p,async()=>{var e;await tn(),null==(e=d.value)||e.scrollToActiveTab()}),hn(Ox,{props:e,currentName:p,registerPane:i,unregisterPane:u,nav$:d}),o({currentName:p,get tabNavRef(){return Uc(d.value,["scheduleRender"])}}),()=>{const t=n["add-icon"],o=e.editable||e.addable?Gl("div",{class:[r.e("new-tab"),a.value&&r.e("new-tab-vertical")],tabindex:e.tabindex,onClick:m,onKeydown:g},[t?Ao(n,"add-icon"):Gl(ip,{class:r.is("icon-plus")},{default:()=>[Gl(Mp,null,null)]})]):null,l=Gl("div",{class:[r.e("header"),a.value&&r.e("header-vertical"),r.is(e.tabPosition)]},[Gl(c,null,{default:()=>Gl(Ix,{ref:d,currentName:p.value,editable:e.editable,type:e.type,panes:s.value,stretch:e.stretch,onTabClick:v,onTabRemove:h},null),$stable:!0}),o]),i=Gl("div",{class:r.e("content")},[Ao(n,"default")]);return Gl("div",{class:[r.b(),r.m(e.tabPosition),{[r.m("card")]:"card"===e.type,[r.m("border-card")]:"border-card"===e.type}],onVnodeMounted:b,onVnodeUpdated:b},[i,l])}}}),Vx=Nd({label:{type:String,default:""},name:{type:[String,Number]},closable:{type:Boolean,default:void 0},disabled:Boolean,lazy:Boolean}),Dx=["id","aria-hidden","aria-labelledby"],zx="ElTabPane";var Hx=Kd(Xn({name:zx,__name:"tab-pane",props:Vx,setup(e){const t=e,n=ar(),o=No(),l=mn(Ox);l||xd(zx,"usage: ");const r=Wa("tab-pane"),a=St(),s=St(),i=yr(()=>{var e;return null!=(e=t.closable)?e:l.props.closable}),u=yr(()=>{var e;return l.currentName.value===(null!=(e=t.name)?e:s.value)}),c=St(u.value),d=yr(()=>{var e;return null!=(e=t.name)?e:s.value}),p=yr(()=>!t.lazy||c.value||u.value);wn(u,e=>{e&&(c.value=!0)});const f=pt({uid:n.uid,getVnode:()=>n.vnode,slots:o,props:t,paneName:d,active:u,index:s,isClosable:i,isFocusInsidePane:()=>{var e;return null==(e=a.value)?void 0:e.contains(document.activeElement)}});return l.registerPane(f),vo(()=>{l.unregisterPane(f)}),po(()=>{var e;o.label&&(null==(e=l.nav$.value)||e.scheduleRender())}),(e,t)=>p.value?fn((Fl(),Dl("div",{key:0,id:`pane-${d.value}`,ref_key:"paneRef",ref:a,class:q(Ot(r).b()),role:"tabpanel","aria-hidden":!u.value,"aria-labelledby":`tab-${d.value}`},[Ao(e.$slots,"default")],10,Dx)),[[Xr,u.value]]):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-pane.vue"]]);const Wx=Gd(jx,{TabPane:Hx}),qx=Yd(Hx),Ux=Gd(Kd(Xn({name:"ElText",__name:"text",props:Nd({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:Id,default:""},truncated:Boolean,lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),setup(e){const t=e,n=St(),o=vf(),l=Wa("text"),r=yr(()=>[l.b(),l.m(t.type),l.m(o.value),l.is("truncated",t.truncated),l.is("line-clamp",!Xc(t.lineClamp))]),a=()=>{var e,o,l,r,a,s,i;if(Io().title)return;let u=!1;const c=(null==(e=n.value)?void 0:e.textContent)||"";if(t.truncated){const e=null==(o=n.value)?void 0:o.offsetWidth,t=null==(l=n.value)?void 0:l.scrollWidth;e&&t&&t>e&&(u=!0)}else if(!Xc(t.lineClamp)){const e=null==(r=n.value)?void 0:r.offsetHeight,t=null==(a=n.value)?void 0:a.scrollHeight;e&&t&&t>e&&(u=!0)}u?null==(s=n.value)||s.setAttribute("title",c):null==(i=n.value)||i.removeAttribute("title")};return co(a),fo(a),(e,t)=>(Fl(),zl(_o(e.tag),{ref_key:"textRef",ref:n,class:q(r.value),style:V({"-webkit-line-clamp":e.lineClamp})},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/text/src/text.vue"]]));function Kx(e,t){let n;const o=St(!1),l=pt({...e,originalPosition:"",originalOverflow:"",visible:!1});function r(){var e,t;null==(t=null==(e=i.$el)?void 0:e.parentNode)||t.removeChild(i.$el)}function a(){if(!o.value)return;const e=l.parent;o.value=!1,e.vLoadingAddClassList=void 0,function(){const e=l.parent,t=i.ns;if(!e.vLoadingAddClassList){let n=e.getAttribute("loading-number");n=Number.parseInt(n)-1,n?e.setAttribute("loading-number",n.toString()):(lp(e,t.bm("parent","relative")),e.removeAttribute("loading-number")),lp(e,t.bm("parent","hidden"))}r(),s.unmount()}()}const s=$a(Xn({name:"ElLoading",setup(e,{expose:t}){const{ns:n,zIndex:o}=Hd("loading");return t({ns:n,zIndex:o}),()=>{const e=l.spinner||l.svg,t=wr("svg",{class:"circular",viewBox:l.svgViewBox?l.svgViewBox:"0 0 50 50",...e?{innerHTML:e}:{}},[wr("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),o=l.text?wr("p",{class:n.b("text")},[l.text]):void 0;return wr(Nr,{name:n.b("fade"),onAfterLeave:a},{default:pn(()=>[fn(Gl("div",{style:{backgroundColor:l.background||""},class:[n.b("mask"),l.customClass,n.is("fullscreen",l.fullscreen)]},[wr("div",{class:n.b("spinner")},[t,o])]),[[Xr,l.visible]])])})}}}));Object.assign(s._context,null!=t?t:{});const i=s.mount(document.createElement("div"));return{...Nt(l),setText:function(e){l.text=e},removeElLoadingChild:r,close:function(){var t;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(n),n=setTimeout(a,400),l.visible=!1,null==(t=e.closed)||t.call(e))},handleAfterLeave:a,vm:i,get $el(){return i.$el}}}let Gx;const Yx=function(e={},t){if(!ld)return;const n=Xx(e);if(n.fullscreen&&Gx)return Gx;const o=Kx({...n,closed:()=>{var e;null==(e=n.closed)||e.call(n),n.fullscreen&&(Gx=void 0)}},null!=t?t:Yx._context);Zx(n,n.parent,o),Jx(n,n.parent,o),n.parent.vLoadingAddClassList=()=>Jx(n,n.parent,o);let l=n.parent.getAttribute("loading-number");return l=l?`${Number.parseInt(l)+1}`:"1",n.parent.setAttribute("loading-number",l),n.parent.appendChild(o.$el),tn(()=>o.visible.value=n.visible),n.fullscreen&&(Gx=o),o},Xx=e=>{var t,n,o,l;let r;return r=b(e.target)?null!=(t=document.querySelector(e.target))?t:document.body:e.target||document.body,{parent:r===document.body||e.body?document.body:r,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:r===document.body&&(null==(n=e.fullscreen)||n),lock:null!=(o=e.lock)&&o,customClass:e.customClass||"",visible:null==(l=e.visible)||l,beforeClose:e.beforeClose,closed:e.closed,target:r}},Zx=async(e,t,n)=>{const{nextZIndex:o}=n.vm.zIndex||n.vm._.exposed.zIndex,l={};if(e.fullscreen)n.originalPosition.value=rp(document.body,"position"),n.originalOverflow.value=rp(document.body,"overflow"),l.zIndex=o();else if(e.parent===document.body){n.originalPosition.value=rp(document.body,"position"),await tn();for(const t of["top","left"]){const n="top"===t?"scrollTop":"scrollLeft";l[t]=e.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-Number.parseInt(rp(document.body,`margin-${t}`),10)+"px"}for(const t of["height","width"])l[t]=`${e.target.getBoundingClientRect()[t]}px`}else n.originalPosition.value=rp(t,"position");for(const[r,a]of Object.entries(l))n.$el.style[r]=a},Jx=(e,t,n)=>{const o=n.vm.ns||n.vm._.exposed.ns;["absolute","fixed","sticky"].includes(n.originalPosition.value)?lp(t,o.bm("parent","relative")):op(t,o.bm("parent","relative")),e.fullscreen&&e.lock?op(t,o.bm("parent","hidden")):lp(t,o.bm("parent","hidden"))};Yx._context=null;const Qx=Symbol("ElLoading"),eC=e=>`element-loading-${R(e)}`,tC=(e,t)=>{var n,o,l,r;const a=t.instance,s=e=>w(t.value)?t.value[e]:void 0,i=t=>{return n=s(t)||e.getAttribute(eC(t)),St(b(n)&&(null==a?void 0:a[n])||n);var n},u=null!=(n=s("fullscreen"))?n:t.modifiers.fullscreen,c={text:i("text"),svg:i("svg"),svgViewBox:i("svgViewBox"),spinner:i("spinner"),background:i("background"),customClass:i("customClass"),fullscreen:u,target:null!=(o=s("target"))?o:u?void 0:e,body:null!=(l=s("body"))?l:t.modifiers.body,lock:null!=(r=s("lock"))?r:t.modifiers.lock},d=Yx(c);d._context=nC._context,e[Qx]={options:c,instance:d}},nC={mounted(e,t){t.value&&tC(e,t)},updated(e,t){const n=e[Qx];if(!t.value)return null==n||n.instance.close(),void(e[Qx]=null);n?((e,t)=>{for(const n of Object.keys(e))_t(e[n])&&(e[n].value=t[n])})(n.options,w(t.value)?t.value:{text:e.getAttribute(eC("text")),svg:e.getAttribute(eC("svg")),svgViewBox:e.getAttribute(eC("svgViewBox")),spinner:e.getAttribute(eC("spinner")),background:e.getAttribute(eC("background")),customClass:e.getAttribute(eC("customClass"))}):tC(e,t)},unmounted(e){var t;null==(t=e[Qx])||t.instance.close(),e[Qx]=null},_context:null},oC=["primary","success","info","warning","error"],lC=["top","top-left","top-right","bottom","bottom-left","bottom-right"],rC="top",aC={customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,placement:void 0,zIndex:0,grouping:!1,repeatNum:1,appendTo:ld?document.body:void 0},sC=Nd({customClass:{type:String,default:aC.customClass},dangerouslyUseHTMLString:{type:Boolean,default:aC.dangerouslyUseHTMLString},duration:{type:Number,default:aC.duration},icon:{type:Dp,default:aC.icon},id:{type:String,default:aC.id},message:{type:[String,Object,Function],default:aC.message},onClose:{type:Function,default:aC.onClose},showClose:{type:Boolean,default:aC.showClose},type:{type:String,values:oC,default:aC.type},plain:{type:Boolean,default:aC.plain},offset:{type:Number,default:aC.offset},placement:{type:String,values:lC,default:aC.placement},zIndex:{type:Number,default:aC.zIndex},grouping:{type:Boolean,default:aC.grouping},repeatNum:{type:Number,default:aC.repeatNum}}),iC=ft({}),uC=(e,t)=>{const{prev:n}=((e,t)=>{const n=iC[t]||[],o=n.findIndex(t=>t.id===e),l=n[o];let r;return o>0&&(r=n[o-1]),{current:l,prev:r}})(e,t);return n?n.vm.exposed.bottom.value:0},cC=["id"],dC=["innerHTML"];var pC=Kd(Xn({name:"ElMessage",__name:"message",props:sC,emits:{destroy:()=>!0},setup(e,{expose:t,emit:n}){const{Close:o}=Hp,l=e,r=n,a=St(!1),{ns:s,zIndex:i}=Hd("message"),{currentZIndex:u,nextZIndex:c}=i,d=St(),p=St(!1),f=St(0);let v;const h=yr(()=>l.type?"error"===l.type?"danger":l.type:"info"),m=yr(()=>{const e=l.type;return{[s.bm("icon",e)]:e&&Wp[e]}}),g=yr(()=>l.icon||Wp[l.type]||""),b=yr(()=>l.placement||rC),y=yr(()=>uC(l.id,b.value)),w=yr(()=>((e,t,n)=>(iC[n]||[]).findIndex(t=>t.id===e)>0?16:t)(l.id,l.offset,b.value)+y.value),x=yr(()=>f.value+w.value),C=yr(()=>b.value.includes("left")?s.is("left"):b.value.includes("right")?s.is("right"):s.is("center")),_=yr(()=>b.value.startsWith("top")?"top":"bottom"),S=yr(()=>({[_.value]:`${w.value}px`,zIndex:u.value}));function k(){0!==l.duration&&({stop:v}=dd(()=>{T()},l.duration))}function E(){null==v||v()}function T(){p.value=!1,tn(()=>{var e;a.value||(null==(e=l.onClose)||e.call(l),r("destroy"))})}return co(()=>{k(),c(),p.value=!0}),wn(()=>l.repeatNum,()=>{E(),k()}),hd(document,"keydown",function(e){cv(e)===iv.esc&&T()}),bd(d,()=>{f.value=d.value.getBoundingClientRect().height}),t({visible:p,bottom:x,close:T}),(e,t)=>(Fl(),zl(Nr,{name:Ot(s).b("fade"),onBeforeEnter:t[0]||(t[0]=e=>a.value=!0),onBeforeLeave:e.onClose,onAfterLeave:t[1]||(t[1]=t=>e.$emit("destroy")),persisted:""},{default:pn(()=>[fn(Kl("div",{id:e.id,ref_key:"messageRef",ref:d,class:q([Ot(s).b(),{[Ot(s).m(e.type)]:e.type},Ot(s).is("closable",e.showClose),Ot(s).is("plain",e.plain),Ot(s).is("bottom","bottom"===_.value),C.value,e.customClass]),style:V(S.value),role:"alert",onMouseenter:E,onMouseleave:k},[e.repeatNum>1?(Fl(),zl(Ot(um),{key:0,value:e.repeatNum,type:h.value,class:q(Ot(s).e("badge"))},null,8,["value","type","class"])):Zl("v-if",!0),g.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(s).e("icon"),m.value])},{default:pn(()=>[(Fl(),zl(_o(g.value)))]),_:1},8,["class"])):Zl("v-if",!0),Ao(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(Fl(),Dl(Rl,{key:1},[Zl(" Caution here, message could've been compromised, never use user's input as message "),Kl("p",{class:q(Ot(s).e("content")),innerHTML:e.message},null,10,dC)],2112)):(Fl(),Dl("p",{key:0,class:q(Ot(s).e("content"))},Z(e.message),3))]),e.showClose?(Fl(),zl(Ot(ip),{key:2,class:q(Ot(s).e("closeBtn")),onClick:Ra(T,["stop"])},{default:pn(()=>[Gl(Ot(o))]),_:1},8,["class"])):Zl("v-if",!0)],46,cC),[[Xr,p.value]])]),_:3},8,["name","onBeforeLeave"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let fC=1;const vC=e=>{const t=!e||b(e)||Hl(e)||g(e)?{message:e}:e,n={...aC,...t};return(e=>{if(e.appendTo){if(b(e.appendTo)){let t=document.querySelector(e.appendTo);Qc(t)||(t=document.body),e.appendTo=t}}else e.appendTo=document.body})(n),(e=>{!e.placement&&b(Rg.placement)&&Rg.placement&&(e.placement=Rg.placement),e.placement||(e.placement=rC),lC.includes(e.placement)||(e.placement=rC)})(n),Zc(Rg.grouping)&&!n.grouping&&(n.grouping=Rg.grouping),Jc(Rg.duration)&&3e3===n.duration&&(n.duration=Rg.duration),Jc(Rg.offset)&&16===n.offset&&(n.offset=Rg.offset),Zc(Rg.showClose)&&!n.showClose&&(n.showClose=Rg.showClose),Zc(Rg.plain)&&!n.plain&&(n.plain=Rg.plain),n},hC=({appendTo:e,...t},n)=>{const o="message_"+fC++,l=t.onClose,r=document.createElement("div"),a={...t,id:o,onClose:()=>{null==l||l(),(e=>{const t=e.props.placement||rC,n=iC[t],o=n.indexOf(e);if(-1===o)return;n.splice(o,1);const{handler:l}=e;l.close()})(c)},onDestroy:()=>{Fa(null,r)}},s=Gl(pC,a,g(a.message)||Hl(a.message)?{default:g(a.message)?a.message:()=>a.message}:null);s.appContext=n||mC._context,Fa(s,r),e.appendChild(r.firstElementChild);const i=s.component,u={close:()=>{i.exposed.close()}},c={id:o,vnode:s,vm:i,handler:u,props:s.component.props};return c},mC=(e={},t)=>{if(!ld)return{close:()=>{}};const n=vC(e),o=(l=n.placement||rC,iC[l]||(iC[l]=ft([])),iC[l]);var l;if(n.grouping&&o.length){const e=o.find(({vnode:e})=>{var t;return(null==(t=e.props)?void 0:t.message)===n.message});if(e)return e.props.repeatNum+=1,e.props.type=n.type,e.handler}if(Jc(Rg.max)&&o.length>=Rg.max)return{close:()=>{}};const r=hC(n,t);return o.push(r),r.handler};oC.forEach(e=>{mC[e]=(t={},n)=>{const o=vC(t);return mC({...o,type:e},n)}}),mC.closeAll=function(e){for(const t in iC)if(p(iC,t)){const n=[...iC[t]];for(const t of n)e&&e!==t.props.type||t.handler.close()}},mC.closeAllByPlacement=function(e){iC[e]&&[...iC[e]].forEach(e=>e.handler.close())},mC._context=null;const gC=(yC="$message",(bC=mC).install=e=>{bC._context=e._context,e.config.globalProperties[yC]=bC},bC);var bC,yC;const wC="undefined"!=typeof document;function xC(e){return"object"==typeof e||"displayName"in e||"props"in e||"__vccOpts"in e}const CC=Object.assign;function _C(e,t){const n={};for(const o in t){const l=t[o];n[o]=kC(l)?l.map(e):e(l)}return n}const SC=()=>{},kC=Array.isArray;function EC(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const TC=/#/g,AC=/&/g,OC=/\//g,MC=/=/g,RC=/\?/g,LC=/\+/g,PC=/%5B/g,NC=/%5D/g,IC=/%5E/g,BC=/%60/g,FC=/%7B/g,$C=/%7C/g,jC=/%7D/g,VC=/%20/g;function DC(e){return null==e?"":encodeURI(""+e).replace($C,"|").replace(PC,"[").replace(NC,"]")}function zC(e){return DC(e).replace(LC,"%2B").replace(VC,"+").replace(TC,"%23").replace(AC,"%26").replace(BC,"`").replace(FC,"{").replace(jC,"}").replace(IC,"^")}function HC(e){return zC(e).replace(MC,"%3D")}function WC(e){return function(e){return DC(e).replace(TC,"%23").replace(RC,"%3F")}(e).replace(OC,"%2F")}function qC(e){if(null==e)return null;try{return decodeURIComponent(""+e)}catch(t){}return""+e}const UC=/\/$/;function KC(e,t,n="/"){let o,l={},r="",a="";const s=t.indexOf("#");let i=t.indexOf("?");return i=s>=0&&i>s?-1:i,i>=0&&(o=t.slice(0,i),r=t.slice(i,s>0?s:t.length),l=e(r.slice(1))),s>=0&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=function(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),l=o[o.length-1];".."!==l&&"."!==l||o.push("");let r,a,s=n.length-1;for(r=0;r1&&s--}return n.slice(0,s).join("/")+"/"+o.slice(r).join("/")}(null!=o?o:t,n),{fullPath:o+r+a,path:o,query:l,hash:qC(a)}}function GC(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function YC(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function XC(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!ZC(e[n],t[n]))return!1;return!0}function ZC(e,t){return kC(e)?JC(e,t):kC(t)?JC(t,e):e?.valueOf()===t?.valueOf()}function JC(e,t){return kC(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):1===e.length&&e[0]===t}const QC={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let e_=function(e){return e.pop="pop",e.push="push",e}({}),t_=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function n_(e){if(!e)if(wC){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),e.replace(UC,"")}const o_=/^[^#]+#/;function l_(e,t){return e.replace(o_,"#")+t}const r_=()=>({left:window.scrollX,top:window.scrollY});function a_(e){let t;if("el"in e){const n=e.el,o="string"==typeof n&&n.startsWith("#"),l="string"==typeof n?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!l)return;t=function(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}(l,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.scrollX,null!=t.top?t.top:window.scrollY)}function s_(e,t){return(history.state?history.state.position-t:-1)+e}const i_=new Map;function u_(e){return"string"==typeof e||"symbol"==typeof e}let c_=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const d_=Symbol("");function p_(e,t){return CC(new Error,{type:e,[d_]:!0},t)}function f_(e,t){return e instanceof Error&&d_ in e&&(null==t||!!(e.type&t))}function v_(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let o=0;oe&&zC(e)):[o&&zC(o)]).forEach(e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))}):void 0!==o&&(t+=(t.length?"&":"")+n)}return t}function m_(e){const t={};for(const n in e){const o=e[n];void 0!==o&&(t[n]=kC(o)?o.map(e=>null==e?null:""+e):null==o?o:""+o)}return t}c_.MATCHER_NOT_FOUND,c_.NAVIGATION_GUARD_REDIRECT,c_.NAVIGATION_ABORTED,c_.NAVIGATION_CANCELLED,c_.NAVIGATION_DUPLICATED;const g_=Symbol(""),b_=Symbol(""),y_=Symbol(""),w_=Symbol(""),x_=Symbol("");function C_(){let e=[];return{add:function(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}},list:()=>e.slice(),reset:function(){e=[]}}}function __(e,t,n,o,l,r=e=>e()){const a=o&&(o.enterCallbacks[l]=o.enterCallbacks[l]||[]);return()=>new Promise((s,i)=>{const u=e=>{var r;!1===e?i(p_(c_.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?i(e):"string"==typeof(r=e)||r&&"object"==typeof r?i(p_(c_.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(a&&o.enterCallbacks[l]===a&&"function"==typeof e&&a.push(e),s())},c=r(()=>e.call(o&&o.instances[l],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(e=>i(e))})}function S_(e,t,n,o,l=e=>e()){const r=[];for(const a of e)for(const e in a.components){let s=a.components[e];if("beforeRouteEnter"===t||a.instances[e])if(xC(s)){const i=(s.__vccOpts||s)[t];i&&r.push(__(i,n,o,a,e,l))}else{let i=s();r.push(()=>i.then(r=>{if(!r)throw new Error(`Couldn't resolve component "${e}" at "${a.path}"`);const s=(i=r).__esModule||"Module"===i[Symbol.toStringTag]||i.default&&xC(i.default)?r.default:r;var i;a.mods[e]=r,a.components[e]=s;const u=(s.__vccOpts||s)[t];return u&&__(u,n,o,a,e,l)()}))}}return r}function k_(e,t){const{pathname:n,search:o,hash:l}=t,r=e.indexOf("#");if(r>-1){let t=l.includes(e.slice(r))?e.slice(r).length:1,n=l.slice(t);return"/"!==n[0]&&(n="/"+n),GC(n,"")}return GC(n,e)+o+l}function E_(e,t,n,o=!1,l=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:l?r_():null}}function T_(e){const{history:t,location:n}=window,o={value:k_(e,n)},l={value:t.state};function r(o,r,a){const s=e.indexOf("#"),i=s>-1?(n.host&&document.querySelector("base")?e:e.slice(s))+o:location.protocol+"//"+location.host+e+o;try{t[a?"replaceState":"pushState"](r,"",i),l.value=r}catch(u){n[a?"replace":"assign"](i)}}return l.value||r(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:o,state:l,push:function(e,n){const a=CC({},l.value,t.state,{forward:e,scroll:r_()});r(a.current,a,!0),r(e,CC({},E_(o.value,e,null),{position:a.position+1},n),!1),o.value=e},replace:function(e,n){r(e,CC({},t.state,E_(l.value.back,e,l.value.forward,!0),n,{position:l.value.position}),!0),o.value=e}}}function A_(e){const t=T_(e=n_(e)),n=function(e,t,n,o){let l=[],r=[],a=null;const s=({state:r})=>{const s=k_(e,location),i=n.value,u=t.value;let c=0;if(r){if(n.value=s,t.value=r,a&&a===i)return void(a=null);c=u?r.position-u.position:0}else o(s);l.forEach(e=>{e(n.value,i,{delta:c,type:e_.pop,direction:c?c>0?t_.forward:t_.back:t_.unknown})})};function i(){if("hidden"===document.visibilityState){const{history:e}=window;if(!e.state)return;e.replaceState(CC({},e.state,{scroll:r_()}),"")}}return window.addEventListener("popstate",s),window.addEventListener("pagehide",i),document.addEventListener("visibilitychange",i),{pauseListeners:function(){a=n.value},listen:function(e){l.push(e);const t=()=>{const t=l.indexOf(e);t>-1&&l.splice(t,1)};return r.push(t),t},destroy:function(){for(const e of r)e();r=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",i),document.removeEventListener("visibilitychange",i)}}}(e,t.state,t.location,t.replace),o=CC({location:"",base:e,go:function(e,t=!0){t||n.pauseListeners(),history.go(e)},createHref:l_.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let O_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var M_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(M_||{});const R_={type:O_.Static,value:""},L_=/[a-zA-Z0-9_]/,P_="[^/]+?",N_={sensitive:!1,strict:!1,start:!0,end:!0};var I_=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(I_||{});const B_=/[.+*?^${}()[\]/\\]/g;function F_(e,t){let n=0;for(;nt.length?1===t.length&&t[0]===I_.Static+I_.Segment?1:-1:0}function $_(e,t){let n=0;const o=e.score,l=t.score;for(;n0&&t[t.length-1]<0}const V_={strict:!1,end:!0,sensitive:!1};function D_(e,t,n){const o=function(e,t){const n=CC({},N_,t),o=[];let l=n.start?"^":"";const r=[];for(const s of e){const e=s.length?[]:[I_.Root];n.strict&&!s.length&&(l+="/");for(let t=0;t1&&("*"===s||"+"===s)&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),r.push({type:O_.Param,value:u,regexp:c,repeatable:"*"===s||"+"===s,optional:"*"===s||"?"===s})):t("Invalid state to consume buffer"),u="")}function p(){u+=s}for(;i{r(p)}:SC}function r(e){if(u_(e)){const t=o.get(e);t&&(o.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(r),t.alias.forEach(r))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&o.delete(e.record.name),e.children.forEach(r),e.alias.forEach(r))}}function a(e){const t=function(e,t){let n=0,o=t.length;for(;n!==o;){const l=n+o>>1;$_(e,t[l])<0?o=l:n=l+1}const l=function(e){let t=e;for(;t=t.parent;)if(G_(t)&&0===$_(e,t))return t}(e);return l&&(o=t.lastIndexOf(l,o-1)),o}(e,n);n.splice(t,0,e),e.record.name&&!U_(e)&&o.set(e.record.name,e)}return t=EC(V_,t),e.forEach(e=>l(e)),{addRoute:l,resolve:function(e,t){let l,r,a,s={};if("name"in e&&e.name){if(l=o.get(e.name),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e});a=l.record.name,s=CC(H_(t.params,l.keys.filter(e=>!e.optional).concat(l.parent?l.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&H_(e.params,l.keys.map(e=>e.name))),r=l.stringify(s)}else if(null!=e.path)r=e.path,l=n.find(e=>e.re.test(r)),l&&(s=l.parse(r),a=l.record.name);else{if(l=t.name?o.get(t.name):n.find(e=>e.re.test(t.path)),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e,currentLocation:t});a=l.record.name,s=CC({},t.params,e.params),r=l.stringify(s)}const i=[];let u=l;for(;u;)i.unshift(u.record),u=u.parent;return{name:a,path:r,params:s,matched:i,meta:K_(i)}},removeRoute:r,clearRoutes:function(){n.length=0,o.clear()},getRoutes:function(){return n},getRecordMatcher:function(e){return o.get(e)}}}function H_(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function W_(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:q_(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function q_(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]="object"==typeof n?n[o]:n;return t}function U_(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function K_(e){return e.reduce((e,t)=>CC(e,t.meta),{})}function G_({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Y_(e){const t=mn(y_),n=mn(w_),o=yr(()=>{const n=Ot(e.to);return t.resolve(n)}),l=yr(()=>{const{matched:e}=o.value,{length:t}=e,l=e[t-1],r=n.matched;if(!l||!r.length)return-1;const a=r.findIndex(YC.bind(null,l));if(a>-1)return a;const s=Z_(e[t-2]);return t>1&&Z_(l)===s&&r[r.length-1].path!==s?r.findIndex(YC.bind(null,e[t-2])):a}),r=yr(()=>l.value>-1&&function(e,t){for(const n in t){const o=t[n],l=e[n];if("string"==typeof o){if(o!==l)return!1}else if(!kC(l)||l.length!==o.length||o.some((e,t)=>e.valueOf()!==l[t].valueOf()))return!1}return!0}(n.params,o.value.params)),a=yr(()=>l.value>-1&&l.value===n.matched.length-1&&XC(n.params,o.value.params));return{route:o,href:yr(()=>o.value.href),isActive:r,isExactActive:a,navigate:function(n={}){if(function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}(n)){const n=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(SC);return e.viewTransition&&"undefined"!=typeof document&&"startViewTransition"in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}}}const X_=Xn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Y_,setup(e,{slots:t}){const n=pt(Y_(e)),{options:o}=mn(y_),l=yr(()=>({[J_(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[J_(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&(1===(r=t.default(n)).length?r[0]:r);var r;return e.custom?o:wr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:l.value},o)}}});function Z_(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const J_=(e,t,n)=>null!=e?e:null!=t?t:n,Q_=Xn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=mn(x_),l=yr(()=>e.route||o.value),r=mn(b_,0),a=yr(()=>{let e=Ot(r);const{matched:t}=l.value;let n;for(;(n=t[e])&&!n.components;)e++;return e}),s=yr(()=>l.value.matched[a.value]);hn(b_,yr(()=>a.value+1)),hn(g_,s),hn(x_,l);const i=St();return wn(()=>[i.value,s.value,e.name],([e,t,n],[o,l,r])=>{t&&(t.instances[n]=e,l&&l!==t&&e&&e===o&&(t.leaveGuards.size||(t.leaveGuards=l.leaveGuards),t.updateGuards.size||(t.updateGuards=l.updateGuards))),!e||!t||l&&YC(t,l)&&o||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:"post"}),()=>{const o=l.value,r=e.name,a=s.value,u=a&&a.components[r];if(!u)return eS(n.default,{Component:u,route:o});const c=a.props[r],d=c?!0===c?o.params:"function"==typeof c?c(o):c:null,p=wr(u,CC({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[r]=null)},ref:i}));return eS(n.default,{Component:p,route:o})||p}}});function eS(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const tS=Q_;function nS(){return mn(y_)}function oS(e){return mn(w_)}const lS=new WeakMap,rS=(...e)=>{var t;const n=e[0],o=null===(t=ar())||void 0===t?void 0:t.proxy,l=null!=o?o:oe();if(null==l&&!gn())throw new Error("injectLocal must be called in setup");return l&&lS.has(l)&&n in lS.get(l)?lS.get(l)[n]:mn(...e)},aS="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const sS=Object.prototype.toString,iS=()=>{};function uS(...e){if(1!==e.length)return Ft(...e);const t=e[0];return"function"==typeof t?vt(new Pt(()=>({get:t,set:iS}))):St(t)}const cS=e=>e();function dS(e){return e.endsWith("rem")?16*Number.parseFloat(e):Number.parseFloat(e)}function pS(e){return Array.isArray(e)?e:[e]}function fS(e,t,n={}){const{eventFilter:o=cS,...l}=n;return wn(e,function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(o,t),l)}const vS=function(e,t,n={}){const{eventFilter:o,initialState:l="active",...r}=n,{eventFilter:a,pause:s,resume:i,isActive:u}=function(e=cS,t={}){const{initialState:n="active"}=t,o=uS("active"===n);return{isActive:vt(o),pause:function(){o.value=!1},resume:function(){o.value=!0},eventFilter:(...t)=>{o.value&&e(...t)}}}(o,{initialState:l});return{stop:fS(e,t,{...r,eventFilter:a}),pause:s,resume:i,isActive:u}};function hS(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function mS(e=!1,t={}){const{truthyValue:n=!0,falsyValue:o=!1}=t,l=_t(e),r=kt(e);function a(e){if(arguments.length)return r.value=e,r.value;{const e=Mt(n);return r.value=r.value===e?Mt(o):e,r.value}}return l?a:[r,a]}const gS=aS?window:void 0;function bS(e){var t;const n=Mt(e);return null!==(t=null==n?void 0:n.$el)&&void 0!==t?t:n}function yS(...e){const t=yr(()=>{const t=pS(Mt(e[0])).filter(e=>null!=e);return t.every(e=>"string"!=typeof e)?t:void 0});return n=([e,t,n,o],l,r)=>{if(!(null==e?void 0:e.length)||!(null==t?void 0:t.length)||!(null==n?void 0:n.length))return;const a=(s=o,"[object Object]"===sS.call(s)?{...o}:o);var s;const i=e.flatMap(e=>t.flatMap(t=>n.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,a))));r(()=>{i.forEach(e=>e())})},o={flush:"post"},wn(()=>{var n,o;return[null!==(n=null===(o=t.value)||void 0===o?void 0:o.map(e=>bS(e)))&&void 0!==n?n:[gS].filter(e=>null!=e),pS(Mt(t.value?e[1]:e[0])),pS(Ot(t.value?e[2]:e[1])),Mt(t.value?e[3]:e[2])]},n,{...o,immediate:!0});var n,o}function wS(){const e=kt(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}function xS(e){const t=wS();return yr(()=>(t.value,Boolean(e())))}const CS=Symbol("vueuse-ssr-width");function _S(){const e=gn()?rS(CS,null):null;return"number"==typeof e?e:void 0}const SS="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},kS="__vueuse_ssr_handlers__",ES=TS();function TS(){return kS in SS||(SS[kS]=SS[kS]||{}),SS[kS]}function AS(e,t){return ES[e]||t}function OS(e){return function(e,t={}){const{window:n=gS,ssrWidth:o=_S()}=t,l=xS(()=>n&&"matchMedia"in n&&"function"==typeof n.matchMedia),r=kt("number"==typeof o),a=kt(),s=kt(!1);return yn(()=>{if(r.value)return r.value=!l.value,void(s.value=Mt(e).split(",").some(e=>{const t=e.includes("not all"),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),l=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let r=Boolean(n||l);return n&&r&&(r=o>=dS(n[1])),l&&r&&(r=o<=dS(l[1])),t?!r:r}));l.value&&(a.value=n.matchMedia(Mt(e)),s.value=a.value.matches)}),yS(a,"change",e=>{s.value=e.matches},{passive:!0}),yr(()=>s.value)}("(prefers-color-scheme: dark)",e)}const MS={boolean:{read:e=>"true"===e,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},RS="vueuse-storage";function LS(e,t,n,o={}){var l;const{flush:r="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:d=gS,eventFilter:p,onError:f=e=>{},initOnMounted:v}=o,h=(c?kt:St)("function"==typeof t?t():t),m=yr(()=>Mt(e));if(!n)try{n=AS("getDefaultStorage",()=>null==gS?void 0:gS.localStorage)()}catch(tT){f(tT)}if(!n)return h;const g=Mt(t),b=function(e){return null==e?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":"boolean"==typeof e?"boolean":"string"==typeof e?"string":"object"==typeof e?"object":Number.isNaN(e)?"any":"number"}(g),y=null!==(l=o.serializer)&&void 0!==l?l:MS[b],{pause:w,resume:x}=vS(h,e=>function(e){try{const t=n.getItem(m.value);if(null==e)_(t,null),n.removeItem(m.value);else{const o=y.write(e);t!==o&&(n.setItem(m.value,o),_(t,o))}}catch(tT){f(tT)}}(e),{flush:r,deep:a,eventFilter:p});wn(m,()=>S(),{flush:r});let C=!1;function _(e,t){if(d){const o={key:m.value,oldValue:e,newValue:t,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",o):new CustomEvent(RS,{detail:o}))}}function S(e){if(!e||e.storageArea===n)if(e&&null==e.key)h.value=g;else if(!e||e.key===m.value){w();try{const t=y.write(h.value);void 0!==e&&(null==e?void 0:e.newValue)===t||(h.value=function(e){const t=e?e.newValue:n.getItem(m.value);if(null==t)return i&&null!=g&&n.setItem(m.value,y.write(g)),g;if(!e&&u){const e=y.read(t);return"function"==typeof u?u(e,g):"object"!==b||Array.isArray(e)?e:{...g,...e}}return"string"!=typeof t?t:y.read(t)}(e))}catch(tT){f(tT)}finally{e?tn(x):x()}}}return d&&s&&(n instanceof Storage?yS(d,"storage",e=>{v&&!C||S(e)},{passive:!0}):yS(d,RS,e=>{v&&!C||S(e.detail)})),v?hS(()=>{C=!0,S()}):S(),h}function PS(e={}){const{valueDark:t="dark",valueLight:n=""}=e,o=function(e={}){const{selector:t="html",attribute:n="class",initialValue:o="auto",window:l=gS,storage:r,storageKey:a="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:i,emitAuto:u,disableTransition:c=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},p=OS({window:l}),f=yr(()=>p.value?"dark":"light"),v=i||(null==a?uS(o):LS(a,o,r,{window:l,listenToStorageChanges:s})),h=yr(()=>"auto"===v.value?f.value:v.value),m=AS("updateHTMLAttrs",(e,t,n)=>{const o="string"==typeof e?null==l?void 0:l.document.querySelector(e):bS(e);if(!o)return;const r=new Set,a=new Set;let s,i=null;if("class"===t){const e=n.split(/\s/g);Object.values(d).flatMap(e=>(e||"").split(/\s/g)).filter(Boolean).forEach(t=>{e.includes(t)?r.add(t):a.add(t)})}else i={key:t,value:n};if(0!==r.size||0!==a.size||null!==i){c&&(s=l.document.createElement("style"),s.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),l.document.head.appendChild(s));for(const e of r)o.classList.add(e);for(const e of a)o.classList.remove(e);i&&o.setAttribute(i.key,i.value),c&&(l.getComputedStyle(s).opacity,document.head.removeChild(s))}});function g(e){var o;m(t,n,null!==(o=d[e])&&void 0!==o?o:e)}function b(t){e.onChanged?e.onChanged(t,g):g(t)}wn(h,b,{flush:"post",immediate:!0}),hS(()=>b(h.value));const y=yr({get:()=>u?v.value:h.value,set(e){v.value=e}});return Object.assign(y,{store:v,system:f,state:h})}({...e,onChanged:(t,n)=>{var o;e.onChanged?null===(o=e.onChanged)||void 0===o||o.call(e,"dark"===t,n,t):n(t)},modes:{dark:t,light:n}}),l=yr(()=>o.system.value);return yr({get:()=>"dark"===o.value,set(e){const t=e?"dark":"light";l.value===t?o.value="auto":o.value=t}})}const NS={xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},IS={render:function(e,t){return Fl(),Dl("svg",NS,[...t[0]||(t[0]=[Kl("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"},null,-1)])])}},BS={id:"app"},FS={class:"header"},$S={class:"header-top"},jS={class:"brand"},VS={class:"header-actions"},DS={class:"github-link",href:"https://github.com/fatedier/frp",target:"_blank","aria-label":"GitHub"},zS={class:"header-nav"},HS={id:"content"},WS=Xn({__name:"App",setup(e){const t=nS(),n=oS(),o=PS(),l=St(o),r=mS(o),a=yr(()=>n.path.startsWith("/proxies")?"/proxies":n.path),s=e=>{t.push(e)};return(e,n)=>{const o=zy,i=Ty,u=Ey,c=xo("router-view");return Fl(),Dl("div",BS,[Kl("header",FS,[Kl("div",$S,[Kl("div",jS,[Kl("a",{href:"#",onClick:n[0]||(n[0]=Ra(e=>Ot(t).push("/"),["prevent"]))},"frp")]),Kl("div",VS,[Kl("a",DS,[Gl(Ot(IS),{class:"github-icon"})]),Gl(o,{modelValue:l.value,"onUpdate:modelValue":n[1]||(n[1]=e=>l.value=e),"inline-prompt":"","active-icon":Ot(Ap),"inactive-icon":Ot(Bp),onChange:Ot(r),class:"theme-switch"},null,8,["modelValue","active-icon","inactive-icon","onChange"])])]),Kl("nav",zS,[Gl(u,{"default-active":a.value,mode:"horizontal",ellipsis:!1,onSelect:s,class:"nav-menu"},{default:pn(()=>[Gl(i,{index:"/"},{default:pn(()=>[...n[2]||(n[2]=[Xl("Overview",-1)])]),_:1}),Gl(i,{index:"/clients"},{default:pn(()=>[...n[3]||(n[3]=[Xl("Clients",-1)])]),_:1}),Gl(i,{index:"/proxies"},{default:pn(()=>[...n[4]||(n[4]=[Xl("Proxies",-1)])]),_:1})]),_:1},8,["default-active"])])]),Kl("main",HS,[Gl(c)])])}}});function qS(e){const t=Math.floor(((new Date).getTime()-e.getTime())/1e3);let n=t/31536e3;return n>1?Math.floor(n)+" years ago":(n=t/2592e3,n>1?Math.floor(n)+" months ago":(n=t/86400,n>1?Math.floor(n)+" days ago":(n=t/3600,n>1?Math.floor(n)+" hours ago":(n=t/60,n>1?Math.floor(n)+" minutes ago":Math.floor(t)+" seconds ago"))))}function US(e){if(!Number.isFinite(e)||e<0)return"0 B";if(0===e)return"0 B";const t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],n=Math.floor(Math.log(e)/Math.log(1024)),o=t[n]||t[t.length-1],l=e/Math.pow(1024,n);return parseFloat(l.toFixed(2))+" "+o}const KS={class:"stat-card-content"},GS={class:"stat-info"},YS={class:"stat-value"},XS={class:"stat-label"},ZS={key:0,class:"stat-subtitle"},JS=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n},QS=JS(Xn({__name:"StatCard",props:{label:{},value:{},type:{default:"clients"},subtitle:{},to:{}},setup(e){const t=e,n=nS(),o=yr(()=>{switch(t.type){case"clients":default:return jp;case"proxies":return yp;case"connections":return wp;case"traffic":return Rp}}),l=()=>{t.to&&n.push(t.to)};return(t,n)=>{const r=ip,a=$m;return Fl(),zl(a,{class:q(["stat-card",{clickable:!!e.to}]),"body-style":{padding:"20px"},shadow:"hover",onClick:l},{default:pn(()=>[Kl("div",KS,[Kl("div",{class:q(["stat-icon",`icon-${e.type}`])},[(Fl(),zl(_o(o.value),{class:"icon"}))],2),Kl("div",GS,[Kl("div",YS,Z(e.value),1),Kl("div",XS,Z(e.label),1)]),e.to?(Fl(),zl(r,{key:0,class:"arrow-icon"},{default:pn(()=>[Gl(Ot(dp))]),_:1})):Zl("",!0)]),e.subtitle?(Fl(),Dl("div",ZS,Z(e.subtitle),1)):Zl("",!0)]),_:1},8,["class"])}}}),[["__scopeId","data-v-c9ca9441"]]);class ek extends Error{status;statusText;constructor(e,t,n){super(n||t),this.status=e,this.statusText=t}}async function tk(e,t={}){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new ek(n.status,n.statusText,`HTTP ${n.status}`);return 204===n.status?{}:n.json()}const nk=(e,t)=>tk(e,{...t,method:"GET"}),ok=(e,t)=>tk(e,{...t,method:"DELETE"}),lk=()=>nk("../api/serverinfo"),rk={class:"server-overview"},ak={class:"card-header"},sk={class:"traffic-summary"},ik={class:"traffic-item in"},uk={class:"traffic-icon"},ck={class:"traffic-info"},dk={class:"value"},pk={class:"traffic-item out"},fk={class:"traffic-icon"},vk={class:"traffic-info"},hk={class:"value"},mk={class:"card-header"},gk={class:"proxy-types-grid"},bk={class:"proxy-type-name"},yk={class:"proxy-type-count"},wk={key:0,class:"no-data"},xk={class:"card-header"},Ck={class:"config-grid"},_k={class:"config-item"},Sk={class:"config-value"},kk={key:0,class:"config-item"},Ek={class:"config-value"},Tk={key:1,class:"config-item"},Ak={class:"config-value"},Ok={key:2,class:"config-item"},Mk={class:"config-value"},Rk={key:3,class:"config-item"},Lk={class:"config-value"},Pk={key:4,class:"config-item"},Nk={class:"config-value"},Ik={key:5,class:"config-item"},Bk={class:"config-value"},Fk={class:"config-item"},$k={class:"config-value"},jk={class:"config-item"},Vk={class:"config-value"},Dk={key:6,class:"config-item"},zk={class:"config-value"},Hk={key:7,class:"config-item"},Wk={class:"config-item"},qk={class:"config-value"},Uk=Xn({__name:"ServerOverview",setup(e){const t=St({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0,totalTrafficIn:0,totalTrafficOut:0,proxyTypeCounts:{}}),n=yr(()=>Object.values(t.value.proxyTypeCounts).some(e=>e>0));return co(()=>{(async()=>{try{const e=await lk();t.value.version=e.version,t.value.bindPort=e.bindPort,t.value.kcpBindPort=e.kcpBindPort,t.value.quicBindPort=e.quicBindPort,t.value.vhostHTTPPort=e.vhostHTTPPort,t.value.vhostHTTPSPort=e.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=e.tcpmuxHTTPConnectPort,t.value.subdomainHost=e.subdomainHost,t.value.maxPoolCount=e.maxPoolCount,t.value.maxPortsPerClient=String(e.maxPortsPerClient),"0"==t.value.maxPortsPerClient&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=e.allowPortsStr,t.value.tlsForce=e.tlsForce,t.value.heartbeatTimeout=e.heartbeatTimeout,t.value.clientCounts=e.clientCounts,t.value.curConns=e.curConns,t.value.totalTrafficIn=e.totalTrafficIn,t.value.totalTrafficOut=e.totalTrafficOut,t.value.proxyTypeCounts=e.proxyTypeCount||{},t.value.proxyCounts=0,null!=e.proxyTypeCount&&Object.values(e.proxyTypeCount).forEach(e=>{t.value.proxyCounts+=e||0})}catch(e){gC({showClose:!0,message:"Get server info from frps failed!",type:"error"})}})()}),(e,o)=>{const l=Og,r=My,a=_g,s=ip,i=$m;return Fl(),Dl("div",rk,[Gl(r,{gutter:20,class:"stats-row"},{default:pn(()=>[Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Clients",value:t.value.clientCounts,type:"clients",subtitle:"Connected clients",to:"/clients"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Proxies",value:t.value.proxyCounts,type:"proxies",subtitle:"Active proxies",to:"/proxies/tcp"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Connections",value:t.value.curConns,type:"connections",subtitle:"Current connections"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Traffic",value:US(t.value.totalTrafficIn+t.value.totalTrafficOut),type:"traffic",subtitle:"Total today"},null,8,["value"])]),_:1})]),_:1}),Gl(r,{gutter:20,class:"charts-row"},{default:pn(()=>[Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",ak,[o[1]||(o[1]=Kl("span",{class:"card-title"},"Network Traffic",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Today",-1)])]),_:1})])]),default:pn(()=>[Kl("div",sk,[Kl("div",ik,[Kl("div",uk,[Gl(s,null,{default:pn(()=>[Gl(Ot(Cp))]),_:1})]),Kl("div",ck,[o[2]||(o[2]=Kl("div",{class:"label"},"Inbound",-1)),Kl("div",dk,Z(Ot(US)(t.value.totalTrafficIn)),1)])]),o[4]||(o[4]=Kl("div",{class:"traffic-divider"},null,-1)),Kl("div",pk,[Kl("div",fk,[Gl(s,null,{default:pn(()=>[Gl(Ot($p))]),_:1})]),Kl("div",vk,[o[3]||(o[3]=Kl("div",{class:"label"},"Outbound",-1)),Kl("div",hk,Z(Ot(US)(t.value.totalTrafficOut)),1)])])])]),_:1})]),_:1}),Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",mk,[o[6]||(o[6]=Kl("span",{class:"card-title"},"Proxy Types",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[5]||(o[5]=[Xl("Now",-1)])]),_:1})])]),default:pn(()=>[Kl("div",gk,[(Fl(!0),Dl(Rl,null,Eo(t.value.proxyTypeCounts,(e,t)=>fn((Fl(),Dl("div",{key:t,class:"proxy-type-item"},[Kl("div",bk,Z(t.toUpperCase()),1),Kl("div",yk,Z(e),1)])),[[Xr,e>0]])),128)),n.value?Zl("",!0):(Fl(),Dl("div",wk," No active proxies "))])]),_:1})]),_:1})]),_:1}),Gl(i,{class:"config-card",shadow:"hover"},{header:pn(()=>[Kl("div",xk,[o[7]||(o[7]=Kl("span",{class:"card-title"},"Server Configuration",-1)),Gl(a,{size:"small",type:"success"},{default:pn(()=>[Xl("v"+Z(t.value.version),1)]),_:1})])]),default:pn(()=>[Kl("div",Ck,[Kl("div",_k,[o[8]||(o[8]=Kl("span",{class:"config-label"},"Bind Port",-1)),Kl("span",Sk,Z(t.value.bindPort),1)]),0!=t.value.kcpBindPort?(Fl(),Dl("div",kk,[o[9]||(o[9]=Kl("span",{class:"config-label"},"KCP Port",-1)),Kl("span",Ek,Z(t.value.kcpBindPort),1)])):Zl("",!0),0!=t.value.quicBindPort?(Fl(),Dl("div",Tk,[o[10]||(o[10]=Kl("span",{class:"config-label"},"QUIC Port",-1)),Kl("span",Ak,Z(t.value.quicBindPort),1)])):Zl("",!0),0!=t.value.vhostHTTPPort?(Fl(),Dl("div",Ok,[o[11]||(o[11]=Kl("span",{class:"config-label"},"HTTP Port",-1)),Kl("span",Mk,Z(t.value.vhostHTTPPort),1)])):Zl("",!0),0!=t.value.vhostHTTPSPort?(Fl(),Dl("div",Rk,[o[12]||(o[12]=Kl("span",{class:"config-label"},"HTTPS Port",-1)),Kl("span",Lk,Z(t.value.vhostHTTPSPort),1)])):Zl("",!0),0!=t.value.tcpmuxHTTPConnectPort?(Fl(),Dl("div",Pk,[o[13]||(o[13]=Kl("span",{class:"config-label"},"TCPMux Port",-1)),Kl("span",Nk,Z(t.value.tcpmuxHTTPConnectPort),1)])):Zl("",!0),""!=t.value.subdomainHost?(Fl(),Dl("div",Ik,[o[14]||(o[14]=Kl("span",{class:"config-label"},"Subdomain Host",-1)),Kl("span",Bk,Z(t.value.subdomainHost),1)])):Zl("",!0),Kl("div",Fk,[o[15]||(o[15]=Kl("span",{class:"config-label"},"Max Pool Count",-1)),Kl("span",$k,Z(t.value.maxPoolCount),1)]),Kl("div",jk,[o[16]||(o[16]=Kl("span",{class:"config-label"},"Max Ports/Client",-1)),Kl("span",Vk,Z(t.value.maxPortsPerClient),1)]),""!=t.value.allowPortsStr?(Fl(),Dl("div",Dk,[o[17]||(o[17]=Kl("span",{class:"config-label"},"Allow Ports",-1)),Kl("span",zk,Z(t.value.allowPortsStr),1)])):Zl("",!0),t.value.tlsForce?(Fl(),Dl("div",Hk,[o[19]||(o[19]=Kl("span",{class:"config-label"},"TLS Force",-1)),Gl(a,{size:"small",type:"warning"},{default:pn(()=>[...o[18]||(o[18]=[Xl("Enabled",-1)])]),_:1})])):Zl("",!0),Kl("div",Wk,[o[20]||(o[20]=Kl("span",{class:"config-label"},"Heartbeat Timeout",-1)),Kl("span",qk,Z(t.value.heartbeatTimeout)+"s",1)])])]),_:1})])}}}),Kk=JS(Uk,[["__scopeId","data-v-10087479"]]);class Gk{key;user;clientId;runId;hostname;metas;firstConnectedAt;lastConnectedAt;disconnectedAt;online;constructor(e){if(this.key=e.key,this.user=e.user,this.clientId=e.clientId,this.runId=e.runId,this.hostname=e.hostname,this.metas=new Map,e.metas)for(const[t,n]of Object.entries(e.metas))this.metas.set(t,n);this.firstConnectedAt=new Date(1e3*e.firstConnectedAt),this.lastConnectedAt=new Date(1e3*e.lastConnectedAt),e.disconnectedAt&&e.disconnectedAt>0&&(this.disconnectedAt=new Date(1e3*e.disconnectedAt)),this.online=e.online}get displayName(){return this.clientId?this.user?`${this.user}.${this.clientId}`:this.clientId:this.runId}get shortRunId(){return this.runId.substring(0,8)}get firstConnectedAgo(){return qS(this.firstConnectedAt)}get lastConnectedAgo(){return qS(this.lastConnectedAt)}get disconnectedAgo(){return this.disconnectedAt?qS(this.disconnectedAt):""}get statusColor(){return this.online?"success":"danger"}get metasArray(){const e=[];return this.metas.forEach((t,n)=>{e.push({key:n,value:t})}),e}matchesFilter(e){const t=e.toLowerCase();return this.key.toLowerCase().includes(t)||this.user.toLowerCase().includes(t)||this.clientId.toLowerCase().includes(t)||this.runId.toLowerCase().includes(t)||this.hostname.toLowerCase().includes(t)}}const Yk={class:"client-header"},Xk={class:"client-status"},Zk={class:"client-name"},Jk={class:"client-info"},Qk={class:"info-row"},eE={class:"info-value"},tE={key:0,class:"info-row"},nE={class:"info-value"},oE={class:"info-row"},lE={class:"info-value monospace"},rE={key:1,class:"info-row"},aE={class:"info-value"},sE={key:2,class:"info-row"},iE={class:"info-value"},uE={key:3,class:"info-row"},cE={class:"info-value"},dE={key:0,class:"client-metas"},pE={class:"metas-tags"},fE=JS(Xn({__name:"ClientCard",props:{client:{}},setup(e){const t=e,n=yr(()=>`status-${t.client.statusColor}`);return(t,o)=>{const l=_g,r=ip,a=$m;return Fl(),zl(a,{class:"client-card",shadow:"hover","body-style":{padding:"20px"}},{default:pn(()=>[Kl("div",Yk,[Kl("div",Xk,[Kl("span",{class:q(["status-dot",n.value])},null,2),Kl("span",Zk,Z(e.client.displayName),1)]),Gl(l,{type:e.client.statusColor,size:"small"},{default:pn(()=>[Xl(Z(e.client.online?"Online":"Offline"),1)]),_:1},8,["type"])]),Kl("div",Jk,[Kl("div",Qk,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(Tp))]),_:1}),o[0]||(o[0]=Kl("span",{class:"info-label"},"Hostname:",-1)),Kl("span",eE,Z(e.client.hostname||"N/A"),1)]),e.client.user?(Fl(),Dl("div",tE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(jp))]),_:1}),o[1]||(o[1]=Kl("span",{class:"info-label"},"User:",-1)),Kl("span",nE,Z(e.client.user),1)])):Zl("",!0),Kl("div",oE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(kp))]),_:1}),o[2]||(o[2]=Kl("span",{class:"info-label"},"Run ID:",-1)),Kl("span",lE,Z(e.client.runId),1)]),e.client.firstConnectedAt?(Fl(),Dl("div",rE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[3]||(o[3]=Kl("span",{class:"info-label"},"First Connected:",-1)),Kl("span",aE,Z(e.client.firstConnectedAgo),1)])):Zl("",!0),e.client.online?(Fl(),Dl("div",sE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[4]||(o[4]=Kl("span",{class:"info-label"},"Last Connected:",-1)),Kl("span",iE,Z(e.client.lastConnectedAgo),1)])):Zl("",!0),!e.client.online&&e.client.disconnectedAt?(Fl(),Dl("div",uE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(mp))]),_:1}),o[5]||(o[5]=Kl("span",{class:"info-label"},"Disconnected:",-1)),Kl("span",cE,Z(e.client.disconnectedAgo),1)])):Zl("",!0)]),e.client.metasArray.length>0?(Fl(),Dl("div",dE,[o[6]||(o[6]=Kl("div",{class:"metas-label"},"Metadata:",-1)),Kl("div",pE,[(Fl(!0),Dl(Rl,null,Eo(e.client.metasArray,e=>(Fl(),zl(l,{key:e.key,size:"small",type:"info",class:"meta-tag"},{default:pn(()=>[Xl(Z(e.key)+": "+Z(e.value),1)]),_:2},1024))),128))])])):Zl("",!0)]),_:1})}}}),[["__scopeId","data-v-f3abd62a"]]),vE={class:"clients-page"},hE={class:"filter-bar"},mE={class:"clients-grid"},gE=JS(Xn({__name:"Clients",setup(e){const t=St([]),n=St(!1),o=St(""),l=St("all");let r=null;const a=yr(()=>{const e=t.value.length,n=t.value.filter(e=>e.online).length;return{total:e,online:n,offline:e-n}}),s=yr(()=>{let e=t.value;return"online"===l.value?e=e.filter(e=>e.online):"offline"===l.value&&(e=e.filter(e=>!e.online)),o.value&&(e=e.filter(e=>e.matchesFilter(o.value))),e.sort((e,t)=>e.online!==t.online?e.online?-1:1:e.displayName.localeCompare(t.displayName)),e}),i=async()=>{n.value=!0;try{const e=await nk("../api/clients");t.value=e.map(e=>new Gk(e))}catch(e){gC({showClose:!0,message:"Failed to fetch clients: "+e.message,type:"error"})}finally{n.value=!1}};return co(()=>{i(),r=window.setInterval(()=>{i()},5e3)}),ho(()=>{null!==r&&(window.clearInterval(r),r=null)}),(e,t)=>{const r=Cf,i=yg,u=bg,c=Cb,d=nC;return Fl(),Dl("div",vE,[Kl("div",hE,[Gl(r,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=e=>o.value=e),placeholder:"Search by hostname, user, client ID, run ID...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(u,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=e=>l.value=e),class:"status-filter"},{default:pn(()=>[Gl(i,{label:"all"},{default:pn(()=>[Xl("All ("+Z(a.value.total)+")",1)]),_:1}),Gl(i,{label:"online"},{default:pn(()=>[Xl(" Online ("+Z(a.value.online)+") ",1)]),_:1}),Gl(i,{label:"offline"},{default:pn(()=>[Xl(" Offline ("+Z(a.value.offline)+") ",1)]),_:1})]),_:1},8,["modelValue"])]),fn((Fl(),Dl("div",mE,[0!==s.value.length||n.value?Zl("",!0):(Fl(),zl(c,{key:0,description:"No clients found"})),(Fl(!0),Dl(Rl,null,Eo(s.value,e=>(Fl(),zl(fE,{key:e.key,client:e},null,8,["client"]))),128))])),[[d,n.value]])])}}}),[["__scopeId","data-v-14cf389c"]]);class bE{name;type;annotations;encryption;compression;conns;trafficIn;trafficOut;lastStartTime;lastCloseTime;status;clientVersion;addr;port;customDomains;hostHeaderRewrite;locations;subdomain;constructor(e){if(this.name=e.name,this.type="",this.annotations=new Map,e.conf?.annotations)for(const t in e.conf.annotations)this.annotations.set(t,e.conf.annotations[t]);this.encryption=!1,this.compression=!1,this.encryption=e.conf?.transport?.useEncryption||this.encryption,this.compression=e.conf?.transport?.useCompression||this.compression,this.conns=e.curConns,this.trafficIn=e.todayTrafficIn,this.trafficOut=e.todayTrafficOut,this.lastStartTime=e.lastStartTime,this.lastCloseTime=e.lastCloseTime,this.status=e.status,this.clientVersion=e.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class yE extends bE{constructor(e){super(e),this.type="tcp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class wE extends bE{constructor(e){super(e),this.type="udp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class xE extends bE{constructor(e,t,n){super(e),this.type="http",this.port=t,e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.hostHeaderRewrite=e.conf.hostHeaderRewrite,this.locations=e.conf.locations,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class CE extends bE{constructor(e,t,n){super(e),this.type="https",this.port=t,null!=e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class _E extends bE{multiplexer;routeByHTTPUser;constructor(e,t,n){super(e),this.type="tcpmux",this.port=t,this.multiplexer="",this.routeByHTTPUser="",e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.multiplexer=e.conf.multiplexer,this.routeByHTTPUser=e.conf.routeByHTTPUser,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class SE extends bE{constructor(e){super(e),this.type="stcp"}}class kE extends bE{constructor(e){super(e),this.type="sudp"}}const EE={key:0},TE={key:1},AE={key:2},OE={key:0},ME={class:"annotation-key"},RE=Xn({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,n=()=>{const e=[];return t.row.annotations&&t.row.annotations.forEach((t,n)=>{e.push({key:n,value:t})}),e};return(t,o)=>{const l=ay,r=ry,a=Gg,s=Ux;return Fl(),Dl(Rl,null,[Gl(r,{"label-position":"left","label-width":"auto",inline:"",class:"proxy-table-expand"},{default:pn(()=>[Gl(l,{label:"Name"},{default:pn(()=>[Kl("span",null,Z(e.row.name),1)]),_:1}),Gl(l,{label:"Type"},{default:pn(()=>[Kl("span",null,Z(e.row.type),1)]),_:1}),Gl(l,{label:"Encryption"},{default:pn(()=>[Kl("span",null,Z(e.row.encryption),1)]),_:1}),Gl(l,{label:"Compression"},{default:pn(()=>[Kl("span",null,Z(e.row.compression),1)]),_:1}),Gl(l,{label:"Last Start"},{default:pn(()=>[Kl("span",null,Z(e.row.lastStartTime),1)]),_:1}),Gl(l,{label:"Last Close"},{default:pn(()=>[Kl("span",null,Z(e.row.lastCloseTime),1)]),_:1}),"http"===e.proxyType||"https"===e.proxyType?(Fl(),Dl("div",EE,[Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1}),Gl(l,{label:"locations"},{default:pn(()=>[Kl("span",null,Z(e.row.locations),1)]),_:1}),Gl(l,{label:"HostRewrite"},{default:pn(()=>[Kl("span",null,Z(e.row.hostHeaderRewrite),1)]),_:1})])):"tcpmux"===e.proxyType?(Fl(),Dl("div",TE,[Gl(l,{label:"Multiplexer"},{default:pn(()=>[Kl("span",null,Z(e.row.multiplexer),1)]),_:1}),Gl(l,{label:"RouteByHTTPUser"},{default:pn(()=>[Kl("span",null,Z(e.row.routeByHTTPUser),1)]),_:1}),Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1})])):(Fl(),Dl("div",AE,[Gl(l,{label:"Addr"},{default:pn(()=>[Kl("span",null,Z(e.row.addr),1)]),_:1})]))]),_:1}),e.row.annotations&&e.row.annotations.size>0?(Fl(),Dl("div",OE,[Gl(a),Gl(s,{class:"title-text",size:"large"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Annotations",-1)])]),_:1}),Kl("ul",null,[(Fl(!0),Dl(Rl,null,Eo(n(),e=>(Fl(),Dl("li",{key:e.key},[Kl("span",ME,Z(e.key),1),Kl("span",null,Z(e.value),1)]))),128))])])):Zl("",!0)],64)}}}),LE={class:"traffic-chart-container"},PE={key:0,class:"chart-wrapper"},NE={class:"y-axis"},IE={class:"y-label"},BE={class:"y-label"},FE={class:"bars-area"},$E={class:"bars-group"},jE={class:"date-label"},VE={key:1,class:"legend"},DE=Xn({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e,n=St(!1),o=St([]),l=St(0),r=()=>{n.value=!0,(e=>nk(`../api/traffic/${e}`))(t.proxyName).then(e=>{((e,t)=>{const n=[...e||[]].reverse(),r=[...t||[]].reverse();for(;n.length<7;)n.unshift(0);for(;r.length<7;)r.unshift(0);const a=n.slice(-7),s=r.slice(-7),i=[];let u=new Date;u.setDate(u.getDate()-6);for(let o=0;o<7;o++)i.push(`${u.getMonth()+1}-${u.getDate()}`),u.setDate(u.getDate()+1);const c=Math.max(...a),d=Math.max(...s);l.value=Math.max(c,d,100),o.value=i.map((e,t)=>({date:e,in:a[t],out:s[t],inPercent:a[t]/l.value*100,outPercent:s[t]/l.value*100}))})(e.trafficIn,e.trafficOut)}).catch(e=>{gC({showClose:!0,message:"Get traffic info failed! "+e,type:"warning"})}).finally(()=>{n.value=!1})};return co(()=>{r()}),(e,t)=>{const r=im,a=Cb,s=nC;return fn((Fl(),Dl("div",LE,[!n.value&&o.value.length>0?(Fl(),Dl("div",PE,[Kl("div",NE,[Kl("div",IE,Z(Ot(US)(l.value)),1),Kl("div",BE,Z(Ot(US)(l.value/2)),1),t[0]||(t[0]=Kl("div",{class:"y-label"},"0",-1))]),Kl("div",FE,[t[1]||(t[1]=Kl("div",{class:"grid-line top"},null,-1)),t[2]||(t[2]=Kl("div",{class:"grid-line middle"},null,-1)),t[3]||(t[3]=Kl("div",{class:"grid-line bottom"},null,-1)),(Fl(!0),Dl(Rl,null,Eo(o.value,(e,t)=>(Fl(),Dl("div",{key:t,class:"day-column"},[Kl("div",$E,[Gl(r,{content:`In: ${Ot(US)(e.in)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-in",style:V({height:Math.max(e.inPercent,1)+"%"})},null,4)]),_:2},1032,["content"]),Gl(r,{content:`Out: ${Ot(US)(e.out)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-out",style:V({height:Math.max(e.outPercent,1)+"%"})},null,4)]),_:2},1032,["content"])]),Kl("div",jE,Z(e.date),1)]))),128))])])):Zl("",!0),!n.value&&o.value.length>0?(Fl(),Dl("div",VE,[...t[4]||(t[4]=[Kl("div",{class:"legend-item"},[Kl("span",{class:"dot in"}),Xl(" Traffic In ")],-1),Kl("div",{class:"legend-item"},[Kl("span",{class:"dot out"}),Xl(" Traffic Out ")],-1)])])):n.value?Zl("",!0):(Fl(),zl(a,{key:2,description:"No traffic data"}))])),[[s,n.value]])}}}),zE=JS(DE,[["__scopeId","data-v-3f425b60"]]),HE={class:"proxies-page"},WE={class:"toolbar-header"},qE={class:"toolbar-actions"},UE={class:"expand-wrapper"},KE={class:"traffic-cell"},GE={class:"traffic-item up",title:"Traffic Out"},YE={class:"traffic-item down",title:"Traffic In"},XE=Xn({__name:"Proxies",setup(e){const t=oS(),n=nS(),o=[{label:"TCP",value:"tcp"},{label:"UDP",value:"udp"},{label:"HTTP",value:"http"},{label:"HTTPS",value:"https"},{label:"TCPMUX",value:"tcpmux"},{label:"STCP",value:"stcp"},{label:"SUDP",value:"sudp"}],l=St(t.params.type||"tcp"),r=St([]),a=St(!1),s=St(""),i=St(!1),u=St(""),c=yr(()=>{if(!s.value)return r.value;const e=s.value.toLowerCase();return r.value.filter(t=>t.name.toLowerCase().includes(e))});let d=null;const p=async()=>{if(d)return d;const e=await lk();return d=e,d},f=async()=>{a.value=!0,r.value=[];try{const e=l.value,t=await(e=>nk(`../api/proxy/${e}`))(e);if("tcp"===e)r.value=t.proxies.map(e=>new yE(e));else if("udp"===e)r.value=t.proxies.map(e=>new wE(e));else if("http"===e){const e=await p();e&&e.vhostHTTPPort&&(r.value=t.proxies.map(t=>new xE(t,e.vhostHTTPPort,e.subdomainHost)))}else if("https"===e){const e=await p();e&&e.vhostHTTPSPort&&(r.value=t.proxies.map(t=>new CE(t,e.vhostHTTPSPort,e.subdomainHost)))}else if("tcpmux"===e){const e=await p();e&&e.tcpmuxHTTPConnectPort&&(r.value=t.proxies.map(t=>new _E(t,e.tcpmuxHTTPConnectPort,e.subdomainHost)))}else"stcp"===e?r.value=t.proxies.map(e=>new SE(e)):"sudp"===e&&(r.value=t.proxies.map(e=>new kE(e)))}catch(e){gC({showClose:!0,message:"Failed to fetch proxies: "+e.message,type:"error"})}finally{a.value=!1}},v=async()=>{try{await ok("../api/proxies?status=offline"),gC({message:"Successfully cleared offline proxies",type:"success"}),f()}catch(e){gC({message:"Failed to clear offline proxies: "+e.message,type:"warning"})}};return wn(l,e=>{n.replace({params:{type:e}}),f()}),f(),(e,t)=>{const n=qx,r=Wx,d=Cf,p=Fm,h=im,m=Oy,g=Ax,b=ip,y=_g,w=Tx,x=$m,C=Kg,_=nC;return Fl(),Dl("div",HE,[Gl(x,{class:"main-card",shadow:"never"},{default:pn(()=>[Kl("div",WE,[Gl(r,{modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),class:"proxy-tabs"},{default:pn(()=>[(Fl(),Dl(Rl,null,Eo(o,e=>Gl(n,{key:e.value,label:e.label,name:e.value},null,8,["label","name"])),64))]),_:1},8,["modelValue"]),Kl("div",qE,[Gl(d,{modelValue:s.value,"onUpdate:modelValue":t[1]||(t[1]=e=>s.value=e),placeholder:"Search by name...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(h,{content:"Refresh",placement:"top"},{default:pn(()=>[Gl(p,{icon:Ot(Pp),circle:"",onClick:f},null,8,["icon"])]),_:1}),Gl(m,{title:"Are you sure to clear all data of offline proxies?",onConfirm:v},{reference:pn(()=>[Gl(p,{type:"danger",plain:"",icon:Ot(xp)},{default:pn(()=>[...t[3]||(t[3]=[Xl("Clear Offline",-1)])]),_:1},8,["icon"])]),_:1})])]),fn((Fl(),zl(w,{data:c.value,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:pn(()=>[Gl(g,{type:"expand"},{default:pn(e=>[Kl("div",UE,[Gl(RE,{row:e.row,proxyType:l.value},null,8,["row","proxyType"])])]),_:1}),Gl(g,{label:"Name",prop:"name",sortable:"","min-width":"150","show-overflow-tooltip":""}),Gl(g,{label:"Port",prop:"port",sortable:"",width:"100"}),Gl(g,{label:"Conns",prop:"conns",sortable:"",width:"100",align:"center"}),Gl(g,{label:"Traffic",width:"220"},{default:pn(e=>[Kl("div",KE,[Kl("span",GE,[Gl(b,null,{default:pn(()=>[Gl(Ot(Fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficOut)),1)]),Kl("span",YE,[Gl(b,null,{default:pn(()=>[Gl(Ot(fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficIn)),1)])])]),_:1}),Gl(g,{label:"Version",prop:"clientVersion",sortable:"",width:"140","show-overflow-tooltip":""}),Gl(g,{label:"Status",prop:"status",sortable:"",width:"120",align:"center"},{default:pn(e=>[Gl(y,{type:"online"===e.row.status?"success":"danger",effect:"light",round:""},{default:pn(()=>[Xl(Z(e.row.status),1)]),_:2},1032,["type"])]),_:1}),Gl(g,{label:"Action",width:"120",align:"center",fixed:"right"},{default:pn(e=>[Gl(p,{type:"primary",link:"",icon:Ot(wp),onClick:t=>(e=>{u.value=e,i.value=!0})(e.row.name)},{default:pn(()=>[...t[4]||(t[4]=[Xl(" Traffic ",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[_,a.value]])]),_:1}),Gl(C,{modelValue:i.value,"onUpdate:modelValue":t[2]||(t[2]=e=>i.value=e),"destroy-on-close":"",title:`Traffic Statistics - ${u.value}`,width:"700px","align-center":"",class:"traffic-dialog"},{default:pn(()=>[Gl(zE,{proxyName:u.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])])}}}),ZE=JS(XE,[["__scopeId","data-v-0da05f6a"]]),JE=function(e){const t=z_(e.routes,e),n=e.parseQuery||v_,o=e.stringifyQuery||h_,l=e.history,r=C_(),a=C_(),s=C_(),i=kt(QC);let u=QC;wC&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=_C.bind(null,e=>""+e),d=_C.bind(null,WC),p=_C.bind(null,qC);function f(e,r){if(r=CC({},r||i.value),"string"==typeof e){const o=KC(n,e,r.path),a=t.resolve({path:o.path},r),s=l.createHref(o.fullPath);return CC(o,a,{params:p(a.params),hash:qC(o.hash),redirectedFrom:void 0,href:s})}let a;if(null!=e.path)a=CC({},e,{path:KC(n,e.path,r.path).path});else{const t=CC({},e.params);for(const e in t)null==t[e]&&delete t[e];a=CC({},e,{params:d(t)}),r.params=d(r.params)}const s=t.resolve(a,r),u=e.hash||"";s.params=c(p(s.params));const f=function(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}(o,CC({},e,{hash:(v=u,DC(v).replace(FC,"{").replace(jC,"}").replace(IC,"^")),path:s.path}));var v;const h=l.createHref(f);return CC({fullPath:f,hash:u,query:o===h_?m_(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function v(e){return"string"==typeof e?KC(n,e,i.value.path):CC({},e)}function h(e,t){if(u!==e)return p_(c_.NAVIGATION_CANCELLED,{from:t,to:e})}function m(e){return b(e)}function g(e,t){const n=e.matched[e.matched.length-1];if(n&&n.redirect){const{redirect:o}=n;let l="function"==typeof o?o(e,t):o;return"string"==typeof l&&(l=l.includes("?")||l.includes("#")?l=v(l):{path:l},l.params={}),CC({query:e.query,hash:e.hash,params:null!=l.path?{}:e.params},l)}}function b(e,t){const n=u=f(e),l=i.value,r=e.state,a=e.force,s=!0===e.replace,c=g(n,l);if(c)return b(CC(v(c),{state:"object"==typeof c?CC({},r,c.state):r,force:a,replace:s}),t||n);const d=n;let p;return d.redirectedFrom=t,!a&&function(e,t,n){const o=t.matched.length-1,l=n.matched.length-1;return o>-1&&o===l&&YC(t.matched[o],n.matched[l])&&XC(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}(o,l,n)&&(p=p_(c_.NAVIGATION_DUPLICATED,{to:d,from:l}),R(l,l,!0,!1)),(p?Promise.resolve(p):x(d,l)).catch(e=>f_(e)?f_(e,c_.NAVIGATION_GUARD_REDIRECT)?e:M(e):O(e,d,l)).then(e=>{if(e){if(f_(e,c_.NAVIGATION_GUARD_REDIRECT))return b(CC({replace:s},v(e.to),{state:"object"==typeof e.to?CC({},r,e.to.state):r,force:a}),t||d)}else e=_(d,l,!0,s,r);return C(d,l,e),e})}function y(e,t){const n=h(e,t);return n?Promise.reject(n):Promise.resolve()}function w(e){const t=N.values().next().value;return t&&"function"==typeof t.runWithContext?t.runWithContext(e):e()}function x(e,t){let n;const[o,l,s]=function(e,t){const n=[],o=[],l=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;aYC(e,r))?o.push(r):n.push(r));const s=e.matched[a];s&&(t.matched.find(e=>YC(e,s))||l.push(s))}return[n,o,l]}(e,t);n=S_(o.reverse(),"beforeRouteLeave",e,t);for(const r of o)r.leaveGuards.forEach(o=>{n.push(__(o,e,t))});const i=y.bind(null,e,t);return n.push(i),B(n).then(()=>{n=[];for(const o of r.list())n.push(__(o,e,t));return n.push(i),B(n)}).then(()=>{n=S_(l,"beforeRouteUpdate",e,t);for(const o of l)o.updateGuards.forEach(o=>{n.push(__(o,e,t))});return n.push(i),B(n)}).then(()=>{n=[];for(const o of s)if(o.beforeEnter)if(kC(o.beforeEnter))for(const l of o.beforeEnter)n.push(__(l,e,t));else n.push(__(o.beforeEnter,e,t));return n.push(i),B(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=S_(s,"beforeRouteEnter",e,t,w),n.push(i),B(n))).then(()=>{n=[];for(const o of a.list())n.push(__(o,e,t));return n.push(i),B(n)}).catch(e=>f_(e,c_.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function C(e,t,n){s.list().forEach(o=>w(()=>o(e,t,n)))}function _(e,t,n,o,r){const a=h(e,t);if(a)return a;const s=t===QC,u=wC?history.state:{};n&&(o||s?l.replace(e.fullPath,CC({scroll:s&&u&&u.scroll},r)):l.push(e.fullPath,r)),i.value=e,R(e,t,n,s),M()}let S;function k(){S||(S=l.listen((e,t,n)=>{if(!I.listening)return;const o=f(e),r=g(o,I.currentRoute.value);if(r)return void b(CC(r,{replace:!0,force:!0}),o).catch(SC);u=o;const a=i.value;var s,c;wC&&(s=s_(a.fullPath,n.delta),c=r_(),i_.set(s,c)),x(o,a).catch(e=>f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_CANCELLED)?e:f_(e,c_.NAVIGATION_GUARD_REDIRECT)?(b(CC(v(e.to),{force:!0}),o).then(e=>{f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===e_.pop&&l.go(-1,!1)}).catch(SC),Promise.reject()):(n.delta&&l.go(-n.delta,!1),O(e,o,a))).then(e=>{(e=e||_(o,a,!1))&&(n.delta&&!f_(e,c_.NAVIGATION_CANCELLED)?l.go(-n.delta,!1):n.type===e_.pop&&f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&l.go(-1,!1)),C(o,a,e)}).catch(SC)}))}let E,T=C_(),A=C_();function O(e,t,n){M(e);const o=A.list();return o.length&&o.forEach(o=>o(e,t,n)),Promise.reject(e)}function M(e){return E||(E=!e,k(),T.list().forEach(([t,n])=>e?n(e):t()),T.reset()),e}function R(t,n,o,l){const{scrollBehavior:r}=e;if(!wC||!r)return Promise.resolve();const a=!o&&function(e){const t=i_.get(e);return i_.delete(e),t}(s_(t.fullPath,0))||(l||!o)&&history.state&&history.state.scroll||null;return tn().then(()=>r(t,n,a)).then(e=>e&&a_(e)).catch(e=>O(e,t,n))}const L=e=>l.go(e);let P;const N=new Set,I={currentRoute:i,listening:!0,addRoute:function(e,n){let o,l;return u_(e)?(o=t.getRecordMatcher(e),l=n):l=e,t.addRoute(l,o)},removeRoute:function(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)},clearRoutes:t.clearRoutes,hasRoute:function(e){return!!t.getRecordMatcher(e)},getRoutes:function(){return t.getRoutes().map(e=>e.record)},resolve:f,options:e,push:m,replace:function(e){return m(CC(v(e),{replace:!0}))},go:L,back:()=>L(-1),forward:()=>L(1),beforeEach:r.add,beforeResolve:a.add,afterEach:s.add,onError:A.add,isReady:function(){return E&&i.value!==QC?Promise.resolve():new Promise((e,t)=>{T.add([e,t])})},install(e){e.component("RouterLink",X_),e.component("RouterView",tS),e.config.globalProperties.$router=I,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(i)}),wC&&!P&&i.value===QC&&(P=!0,m(l.location).catch(e=>{}));const t={};for(const o in QC)Object.defineProperty(t,o,{get:()=>i.value[o],enumerable:!0});e.provide(y_,I),e.provide(w_,ft(t)),e.provide(x_,i);const n=e.unmount;N.add(e),e.unmount=function(){N.delete(e),N.size<1&&(u=QC,S&&S(),S=null,i.value=QC,P=!1,E=!1),n()}}};function B(e){return e.reduce((e,t)=>e.then(()=>w(t)),Promise.resolve())}return I}({history:((QE=location.host?QE||location.pathname+location.search:"").includes("#")||(QE+="#"),A_(QE)),routes:[{path:"/",name:"ServerOverview",component:Kk},{path:"/clients",name:"Clients",component:gE},{path:"/proxies/:type?",name:"Proxies",component:ZE}]});var QE;const eT=$a(WS);eT.use(JE),eT.mount("#app")}},function(){return t||(0,e[n(e)[0]])((t={exports:{}}).exports,t),t.exports});export default o(); diff --git a/assets/frps/static/index-D4KRVvIu.css b/assets/frps/static/index-D4KRVvIu.css new file mode 100644 index 00000000000..3ff648d204e --- /dev/null +++ b/assets/frps/static/index-D4KRVvIu.css @@ -0,0 +1 @@ +@charset "UTF-8";html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(51,117,185);--el-color-primary-light-5:rgb(42,89,138);--el-color-primary-light-7:rgb(33,61,91);--el-color-primary-light-8:rgb(29,48,67);--el-color-primary-light-9:rgb(24,34,43);--el-color-primary-dark-2:rgb(102,177,255);--el-color-success:#67c23a;--el-color-success-light-3:rgb(78,142,47);--el-color-success-light-5:rgb(62,107,39);--el-color-success-light-7:rgb(45,72,31);--el-color-success-light-8:rgb(37,55,28);--el-color-success-light-9:rgb(28,37,24);--el-color-success-dark-2:rgb(133,206,97);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(167,119,48);--el-color-warning-light-5:rgb(125,91,40);--el-color-warning-light-7:rgb(83,63,32);--el-color-warning-light-8:rgb(62,48,28);--el-color-warning-light-9:rgb(41,34,24);--el-color-warning-dark-2:rgb(235,181,99);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(178,82,82);--el-color-danger-light-5:rgb(133,64,64);--el-color-danger-light-7:rgb(88,46,46);--el-color-danger-light-8:rgb(65,38,38);--el-color-danger-light-9:rgb(42,29,29);--el-color-danger-dark-2:rgb(247,137,137);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(178,82,82);--el-color-error-light-5:rgb(133,64,64);--el-color-error-light-7:rgb(88,46,46);--el-color-error-light-8:rgb(65,38,38);--el-color-error-light-9:rgb(42,29,29);--el-color-error-dark-2:rgb(247,137,137);--el-color-info:#909399;--el-color-info-light-3:rgb(107,109,113);--el-color-info-light-5:rgb(82,84,87);--el-color-info-light-7:rgb(57,58,60);--el-color-info-light-8:rgb(45,45,47);--el-color-info-light-9:rgb(32,33,33);--el-color-info-dark-2:rgb(166,169,173);--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.36),0px 8px 20px rgba(0,0,0,.72);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.72);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:#141414;--el-mask-color:rgba(0,0,0,.8);--el-mask-color-extra-light:rgba(0,0,0,.3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255,255,255,.5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{background-color:var(--el-menu-bg-color);border-right:1px solid var(--el-menu-border-color);box-sizing:border-box;list-style:none;margin:0;padding-left:0;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level)*var(--el-menu-level-padding));white-space:nowrap}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{border-right:none;display:flex;flex-wrap:nowrap;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:1px solid var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-menu,.el-menu--popup-container,.el-popper{outline:none}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner-wrapper{align-items:center;color:var(--el-color-white);display:flex;font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}#app{min-height:100vh;display:flex;flex-direction:column;background:#f2f2f2}html.dark #app{background:#1a1a2e}.header{position:sticky;top:0;z-index:100;background:#fff}html.dark .header{background:#1e1e2d}.header-top{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 32px}.brand a{color:#303133;font-size:20px;font-weight:700;text-decoration:none;letter-spacing:-.5px}html.dark .brand a{color:#e5e7eb}.brand a:hover{color:#409eff}.header-actions{display:flex;align-items:center;gap:16px}.github-link{display:flex;align-items:center;padding:6px;border-radius:6px;transition:all .2s}.github-link:hover{background:#f2f3f5}html.dark .github-link:hover{background:#2a2a3c}.github-icon{width:20px;height:20px;color:#606266;transition:color .2s}.github-link:hover .github-icon{color:#303133}html.dark .github-icon{color:#a0a3ad}html.dark .github-link:hover .github-icon{color:#e5e7eb}.theme-switch{--el-switch-on-color: #2c2c3a;--el-switch-off-color: #f2f2f2;--el-switch-border-color: #dcdfe6}.theme-switch .el-switch__core .el-switch__inner .el-icon{color:#909399!important}.header-nav{position:relative;padding:0 32px;border-bottom:1px solid #e4e7ed}html.dark .header-nav{border-bottom-color:#3a3d5c}.nav-menu{background:transparent!important;border-bottom:none!important;height:46px}.nav-menu .el-menu-item,.nav-menu .el-sub-menu__title{position:relative;height:32px!important;line-height:32px!important;border-bottom:none!important;border-radius:6px!important;color:#666!important;font-weight:400;font-size:14px;padding:0 12px!important;margin:7px 0;transition:background .15s ease,color .15s ease}.nav-menu>.el-menu-item,.nav-menu>.el-sub-menu{margin-right:4px}.nav-menu>.el-sub-menu{padding:0!important}html.dark .nav-menu .el-menu-item,html.dark .nav-menu .el-sub-menu__title{color:#888!important}.nav-menu .el-menu-item:hover,.nav-menu .el-sub-menu__title:hover{background:#f2f2f2!important;color:#171717!important}html.dark .nav-menu .el-menu-item:hover,html.dark .nav-menu .el-sub-menu__title:hover{background:#2a2a3c!important;color:#e5e7eb!important}.nav-menu .el-menu-item.is-active{background:transparent!important;color:#171717!important;font-weight:500}.nav-menu .el-menu-item.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:#171717;border-radius:1px}.nav-menu .el-menu-item.is-active:hover{background:#f2f2f2!important}html.dark .nav-menu .el-menu-item.is-active{background:transparent!important;color:#e5e7eb!important;font-weight:500}html.dark .nav-menu .el-menu-item.is-active:after{background:#e5e7eb}html.dark .nav-menu .el-menu-item.is-active:hover{background:#2a2a3c!important}#content{flex:1;padding:24px 40px;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}@media(max-width:768px){.header-top,.header-nav{padding:0 16px}#content{padding:16px}.brand a{font-size:18px}}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);display:flex;flex-direction:column;overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{flex:1;overflow:auto;padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;display:flex;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{background-color:transparent;border:none;border-radius:50%;margin-left:6px;outline:none;overflow:hidden;padding:0}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.stat-card[data-v-c9ca9441]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.stat-card.clickable[data-v-c9ca9441]{cursor:pointer}.stat-card.clickable[data-v-c9ca9441]:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.stat-card.clickable:hover .arrow-icon[data-v-c9ca9441]{transform:translate(4px)}html.dark .stat-card[data-v-c9ca9441]{border-color:#3a3d5c;background:#27293d}.stat-card-content[data-v-c9ca9441]{display:flex;align-items:center;gap:16px}.arrow-icon[data-v-c9ca9441]{color:#909399;font-size:18px;transition:transform .2s ease;flex-shrink:0}html.dark .arrow-icon[data-v-c9ca9441]{color:#9ca3af}.stat-icon[data-v-c9ca9441]{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon .icon[data-v-c9ca9441]{width:28px;height:28px}.icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}html.dark .icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#818cf8,#a78bfa)}html.dark .icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#fb7185,#f43f5e)}html.dark .icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#60a5fa,#3b82f6)}html.dark .icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#34d399,#10b981)}.stat-info[data-v-c9ca9441]{flex:1;min-width:0}.stat-value[data-v-c9ca9441]{font-size:28px;font-weight:600;line-height:1.2;color:#303133;margin-bottom:4px}html.dark .stat-value[data-v-c9ca9441]{color:#e5e7eb}.stat-label[data-v-c9ca9441]{font-size:14px;color:#909399;font-weight:500}html.dark .stat-label[data-v-c9ca9441]{color:#9ca3af}.stat-subtitle[data-v-c9ca9441]{margin-top:12px;padding-top:12px;border-top:1px solid #e4e7ed;font-size:12px;color:#909399}html.dark .stat-subtitle[data-v-c9ca9441]{border-top-color:#3a3d5c;color:#9ca3af}.server-overview[data-v-10087479]{padding:0}.stats-row[data-v-10087479],.charts-row[data-v-10087479]{margin-bottom:20px}.chart-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;height:100%}html.dark .chart-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.config-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;margin-bottom:20px}html.dark .config-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.card-header[data-v-10087479]{display:flex;justify-content:space-between;align-items:center}.card-title[data-v-10087479]{font-size:16px;font-weight:600;color:#303133}html.dark .card-title[data-v-10087479]{color:#e5e7eb}.traffic-summary[data-v-10087479]{display:flex;align-items:center;justify-content:space-around;min-height:120px;padding:10px 0}.traffic-item[data-v-10087479]{display:flex;align-items:center;gap:16px}.traffic-icon[data-v-10087479]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px}.traffic-item.in .traffic-icon[data-v-10087479]{background:#5470c61a;color:#5470c6}.traffic-item.out .traffic-icon[data-v-10087479]{background:#91cc751a;color:#91cc75}.traffic-info[data-v-10087479]{display:flex;flex-direction:column}.traffic-info .label[data-v-10087479]{font-size:14px;color:#909399}.traffic-info .value[data-v-10087479]{font-size:24px;font-weight:600;color:#303133}html.dark .traffic-info .value[data-v-10087479]{color:#e5e7eb}.traffic-divider[data-v-10087479]{width:1px;height:60px;background:#e4e7ed}html.dark .traffic-divider[data-v-10087479]{background:#3a3d5c}.proxy-types-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px;min-height:120px;align-content:center;padding:10px 0}.proxy-type-item[data-v-10087479]{display:flex;flex-direction:column;align-items:center;padding:12px;background:#f8f9fa;border-radius:8px}html.dark .proxy-type-item[data-v-10087479]{background:#1e1e2d}.proxy-type-name[data-v-10087479]{font-size:12px;color:#909399;font-weight:500;margin-bottom:4px}.proxy-type-count[data-v-10087479]{font-size:20px;font-weight:600;color:#303133}html.dark .proxy-type-count[data-v-10087479]{color:#e5e7eb}.no-data[data-v-10087479]{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;height:100%;color:#909399;font-size:14px}.config-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.config-item[data-v-10087479]{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f8f9fa;border-radius:8px;transition:background .2s}html.dark .config-item[data-v-10087479]{background:#1e1e2d}.config-label[data-v-10087479]{font-size:12px;color:#909399;font-weight:500}html.dark .config-label[data-v-10087479]{color:#9ca3af}.config-value[data-v-10087479]{font-size:14px;color:#303133;font-weight:600;word-break:break-all}html.dark .config-value[data-v-10087479]{color:#e5e7eb}@media(max-width:768px){.chart-container[data-v-10087479]{height:250px}.config-grid[data-v-10087479]{grid-template-columns:repeat(2,1fr)}}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);inset:0;margin:0;position:absolute;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke:var(--el-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;transition:all .3s;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{inset:0;margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea .el-input__count.is-outside{background:transparent;bottom:unset;line-height:1;padding-top:2px;position:absolute;right:0;top:100%}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;right:0;top:100%}.el-input .el-input__count.is-outside .el-input__count-inner{background:transparent;line-height:1;padding-left:0}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.client-card[data-v-f3abd62a]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.client-card[data-v-f3abd62a]:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000001a}html.dark .client-card[data-v-f3abd62a]{border-color:#3a3d5c;background:#27293d}.client-header[data-v-f3abd62a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e4e7ed}html.dark .client-header[data-v-f3abd62a]{border-bottom-color:#3a3d5c}.client-status[data-v-f3abd62a]{display:flex;align-items:center;gap:8px}.status-dot[data-v-f3abd62a]{width:10px;height:10px;border-radius:50%}.status-success[data-v-f3abd62a]{background-color:#67c23a;box-shadow:0 0 #67c23ab3}.status-warning[data-v-f3abd62a]{background-color:#e6a23c;box-shadow:0 0 #e6a23cb3}.status-danger[data-v-f3abd62a]{background-color:#f56c6c;box-shadow:0 0 #f56c6cb3}.client-name[data-v-f3abd62a]{font-size:16px;font-weight:600;color:#303133}html.dark .client-name[data-v-f3abd62a]{color:#e5e7eb}.client-info[data-v-f3abd62a]{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.info-row[data-v-f3abd62a]{display:flex;align-items:center;gap:8px;font-size:13px}.info-icon[data-v-f3abd62a]{color:#909399;font-size:16px}html.dark .info-icon[data-v-f3abd62a]{color:#9ca3af}.info-label[data-v-f3abd62a]{color:#909399;font-weight:500;min-width:100px}html.dark .info-label[data-v-f3abd62a]{color:#9ca3af}.info-value[data-v-f3abd62a]{color:#606266;flex:1}html.dark .info-value[data-v-f3abd62a]{color:#d1d5db}.client-metas[data-v-f3abd62a]{margin-bottom:16px;padding-top:12px;border-top:1px solid #e4e7ed}html.dark .client-metas[data-v-f3abd62a]{border-top-color:#3a3d5c}.metas-label[data-v-f3abd62a]{font-size:13px;color:#909399;font-weight:500;margin-bottom:8px}html.dark .metas-label[data-v-f3abd62a]{color:#9ca3af}.metas-tags[data-v-f3abd62a]{display:flex;flex-wrap:wrap;gap:6px}.meta-tag[data-v-f3abd62a]{font-size:12px}.monospace[data-v-f3abd62a]{font-family:Courier New,Courier,monospace;font-size:12px;word-break:break-all}.clients-page[data-v-14cf389c]{padding:0 20px 20px}.filter-bar[data-v-14cf389c]{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-input[data-v-14cf389c]{flex:1;min-width:300px;max-width:500px}.status-filter[data-v-14cf389c]{flex-shrink:0}.clients-grid[data-v-14cf389c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;min-height:200px}@media(max-width:768px){.clients-grid[data-v-14cf389c]{grid-template-columns:1fr}.filter-bar[data-v-14cf389c]{flex-direction:column;align-items:stretch}.search-input[data-v-14cf389c]{max-width:none}}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{inset:0;margin:0;overflow:auto;position:fixed}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{inset:0;overflow:auto;position:fixed}.el-overlay-dialog.is-closing .el-dialog{pointer-events:none}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{background-color:var(--el-overlay-color-lighter);height:100%;inset:0;overflow:auto;position:fixed;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:-moz-fit-content;height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table__expand-icon{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);font-size:12px;height:23px;line-height:12px;width:min(23px,100%)}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:0;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{align-items:center;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;text-align:center;width:20px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed;will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;outline:none;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;outline:none;padding:0 10px}.el-table-filter__list-item:focus,.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin-top:8px;text-align:right}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255,255,255,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;content:"";inset:-1px;pointer-events:none;position:absolute;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-bottom:after{bottom:auto;top:0}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translate(100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translate(-100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(-100%);transform-origin:0 0}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:-moz-fit-content;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}ul{list-style-type:none;padding:5px}ul li{justify-content:space-between;padding:5px}ul .annotation-key{width:300px;display:inline-block;vertical-align:middle}.title-text{color:#99a9bf}.traffic-chart-container[data-v-3f425b60]{width:100%;height:400px;display:flex;flex-direction:column;padding:20px}.chart-wrapper[data-v-3f425b60]{flex:1;display:flex;gap:10px;position:relative;margin-bottom:20px}.y-axis[data-v-3f425b60]{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:12px;color:#909399;padding-bottom:24px;height:calc(100% - 24px)}.bars-area[data-v-3f425b60]{flex:1;display:flex;justify-content:space-between;align-items:flex-end;position:relative;height:100%;padding-bottom:24px}.grid-line[data-v-3f425b60]{position:absolute;left:0;right:0;height:1px;background-color:#e4e7ed;z-index:0}html.dark .grid-line[data-v-3f425b60]{background-color:#3a3d5c}.grid-line.top[data-v-3f425b60]{top:0}.grid-line.middle[data-v-3f425b60]{top:50%;transform:translateY(-50%)}.grid-line.bottom[data-v-3f425b60]{bottom:24px}.day-column[data-v-3f425b60]{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;z-index:1}.bars-group[data-v-3f425b60]{height:100%;display:flex;align-items:flex-end;gap:4px;width:60%}.bar[data-v-3f425b60]{flex:1;border-radius:4px 4px 0 0;transition:height .3s ease;min-height:1px}.bar-in[data-v-3f425b60]{background-color:#5470c6}.bar-out[data-v-3f425b60]{background-color:#91cc75}.bar[data-v-3f425b60]:hover{opacity:.8}.date-label[data-v-3f425b60]{position:absolute;bottom:-24px;font-size:12px;color:#909399;width:100%;text-align:center}.legend[data-v-3f425b60]{display:flex;justify-content:center;gap:24px;margin-top:10px}.legend-item[data-v-3f425b60]{display:flex;align-items:center;gap:8px;font-size:14px;color:#606266}html.dark .legend-item[data-v-3f425b60]{color:#e5e7eb}.dot[data-v-3f425b60]{width:12px;height:12px;border-radius:50%}.dot.in[data-v-3f425b60]{background-color:#5470c6}.dot.out[data-v-3f425b60]{background-color:#91cc75}.proxies-page[data-v-0da05f6a]{padding:24px;max-width:1600px;margin:0 auto}.main-card[data-v-0da05f6a]{border-radius:12px;border:none}.toolbar-header[data-v-0da05f6a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--el-border-color-lighter);padding-bottom:16px}.proxy-tabs[data-v-0da05f6a] .el-tabs__header{margin-bottom:0}.proxy-tabs[data-v-0da05f6a] .el-tabs__nav-wrap:after{height:0}.toolbar-actions[data-v-0da05f6a]{display:flex;gap:12px;align-items:center}.search-input[data-v-0da05f6a]{width:240px}.traffic-cell[data-v-0da05f6a]{display:flex;flex-direction:column;gap:4px;font-size:13px}.traffic-item[data-v-0da05f6a]{display:flex;align-items:center;gap:4px}.traffic-item.up[data-v-0da05f6a]{color:#67c23a}.traffic-item.down[data-v-0da05f6a]{color:#409eff}.expand-wrapper[data-v-0da05f6a]{padding:16px 24px;background-color:transparent}@media(max-width:768px){.toolbar-header[data-v-0da05f6a]{flex-direction:column;align-items:stretch}.toolbar-actions[data-v-0da05f6a]{justify-content:space-between}.search-input[data-v-0da05f6a]{flex:1}}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}*{box-sizing:border-box}.el-button,.el-card,.el-input,.el-select,.el-tag{transition:all .3s ease}.el-card:hover{box-shadow:0 8px 16px #0000001a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.el-page-header{padding:16px 0}.el-page-header__title{font-size:20px;font-weight:600}.el-form-item{margin-bottom:18px}@media(max-width:768px){.el-row{margin-left:0!important;margin-right:0!important}.el-col{padding-left:10px!important;padding-right:10px!important}}html.dark{--el-bg-color: #1e1e2e;--el-fill-color-blank: #1e1e2e;background-color:#1e1e2e}html.dark body{background-color:#1e1e2e;color:#e5e7eb}html.dark ::-webkit-scrollbar-track{background:#27293d}html.dark ::-webkit-scrollbar-thumb{background:#3a3d5c}html.dark ::-webkit-scrollbar-thumb:hover{background:#4a4d6c}html.dark .el-card,html.dark .el-input__wrapper{background-color:#27293d;border-color:#3a3d5c}html.dark .el-input__inner{color:#e5e7eb}html.dark .el-table{background-color:#27293d;color:#e5e7eb}html.dark .el-table th{background-color:#1e1e2e;color:#e5e7eb}html.dark .el-table tr{background-color:#27293d}html.dark .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:#1e1e2e} diff --git a/assets/frps/static/index-rzPDshRD.css b/assets/frps/static/index-rzPDshRD.css deleted file mode 100644 index 865ea6428ba..00000000000 --- a/assets/frps/static/index-rzPDshRD.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;width:100%;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:inline-flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-card__footer{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-top:1px solid var(--el-card-border-color);box-sizing:border-box}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{width:100%;height:50%}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left-color:transparent;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{width:100%;padding:0;border:none;display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,#fff0)}.el-color-svpanel__black{background:linear-gradient(to top,#000,#0000)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,#fff0 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled,.is-focused) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;text-align:left;vertical-align:middle}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;overflow-wrap:break-word;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;overflow-wrap:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:break-word;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color)}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{-webkit-animation:striped-flow 3s linear infinite;animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@-webkit-keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__decimal--box{position:absolute;top:0;left:0}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__loading,.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{padding:10px;border-bottom:1px solid var(--el-border-color-light)}.el-select-dropdown__footer{padding:10px;border-top:1px solid var(--el-border-color-light)}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed;background-color:unset}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%}.el-select{display:inline-block;position:relative;vertical-align:middle;width:var(--el-select-width)}.el-select__wrapper{display:flex;align-items:center;position:relative;box-sizing:border-box;cursor:pointer;text-align:left;font-size:14px;padding:4px 12px;gap:6px;min-height:32px;line-height:24px;border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset}.el-select__wrapper:hover{box-shadow:0 0 0 1px var(--el-text-color) inset}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag{cursor:not-allowed}.el-select__prefix,.el-select__suffix{display:flex;align-items:center;flex-shrink:0;gap:6px;color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__selection{position:relative;display:flex;flex-wrap:wrap;align-items:center;flex:1;min-width:0;gap:6px}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{cursor:pointer;border-color:transparent}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select__tags-text{display:block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select__placeholder{position:absolute;display:block;top:50%;transform:translateY(-50%);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select__placeholder.is-transparent{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--el-text-color-placeholder)}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select__input-wrapper{max-width:100%}.el-select__input-wrapper.is-hidden{position:absolute;opacity:0}.el-select__input{border:none;outline:0;padding:0;color:var(--el-select-multiple-input-color);font-size:inherit;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:24px;max-width:100%;background-color:transparent}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input-calculator{position:absolute;left:0;top:0;max-width:100%;visibility:hidden;white-space:pre;overflow:hidden}.el-select--large .el-select__wrapper{gap:6px;padding:8px 16px;min-height:40px;line-height:24px;font-size:14px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{gap:4px;padding:2px 8px;min-height:24px;line-height:20px;font-size:12px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;overflow-wrap:break-word}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-index:var(--el-index-normal)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:center;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;overflow:hidden;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover{padding-left:13px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover{padding-right:13px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;padding:15px;box-sizing:border-box}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);display:flex;align-items:center;height:var(--el-tree-node-content-height);cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card>i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:16px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px;--el-tour-border-color:var(--el-border-color-lighter)}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{padding:0;border-radius:var(--el-tour-border-radius);border:1px solid var(--el-tour-border-color);width:var(--el-tour-width);background:var(--el-tour-bg-color);box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-tour__arrow{position:absolute;background:var(--el-tour-bg-color);border:1px solid var(--el-tour-border-color);width:10px;height:10px;pointer-events:none;transform:rotate(45deg);box-sizing:border-box}.el-tour__content[data-side^=top] .el-tour__arrow{border-top-color:transparent;border-left-color:transparent}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:transparent;border-right-color:transparent}.el-tour__content[data-side^=left] .el-tour__arrow{border-left-color:transparent;border-bottom-color:transparent}.el-tour__content[data-side^=right] .el-tour__arrow{border-right-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{position:absolute;top:6px;right:0;padding:0;width:44px;height:44px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-tour__closebtn .el-tour__close{color:var(--el-tour-title-text-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding:var(--el-tour-padding-primary);padding-bottom:10px;margin-right:16px}.el-tour__title{line-height:var(--el-tour-font-line-height);font-size:var(--el-tour-title-font-size);color:var(--el-tour-title-text-color);font-weight:var(--el-tour-title-font-weight)}.el-tour__body{padding:0 var(--el-tour-padding-primary);color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{padding:var(--el-tour-padding-primary);padding-top:10px;box-sizing:border-box;display:flex;justify-content:space-between}.el-tour__content .el-tour-indicators{display:inline-block;flex:1}.el-tour__content .el-tour-indicator{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--el-color-info-light-9);margin-right:6px}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary)}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{color:var(--el-color-primary);border-color:var(--el-color-primary);background:#fff}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:#ffffff26}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .36),0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0, 0, 0, .8);--el-mask-color-extra-light:rgba(0, 0, 0, .3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, .5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-right:none;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:solid 1px var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}html.dark .header-color{background:#395c74}.header-content{display:flex;align-items:center}#content{margin-top:20px;padding-right:40px}.brand{display:flex;justify-content:flex-start}.brand a{color:#fff;background-color:transparent;margin-left:20px;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.dark-switch{display:flex;justify-content:flex-end;flex-grow:1;padding-right:40px}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-input__wrapper,.el-form-item.is-error .el-input__wrapper.is-focus,.el-form-item.is-error .el-input__wrapper:focus,.el-form-item.is-error .el-input__wrapper:hover,.el-form-item.is-error .el-select__wrapper,.el-form-item.is-error .el-select__wrapper.is-focus,.el-form-item.is-error .el-select__wrapper:focus,.el-form-item.is-error .el-select__wrapper:hover,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner.is-focus,.el-form-item.is-error .el-textarea__inner:focus,.el-form-item.is-error .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.source{border-radius:4px;transition:.2s;padding-left:24px;padding-right:24px}.server_info{margin-left:40px;font-size:0px}.server_info .el-form-item__label{color:#99a9bf;height:40px;line-height:40px}.server_info .el-form-item__content{height:40px;line-height:40px}.server_info .el-form-item{margin-right:0;margin-bottom:0;width:100%}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-index:var(--el-index-normal)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table tbody:focus-visible{outline:0}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:break-word;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;background:inherit;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:calc(var(--el-table-index) + 1);background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{overflow:hidden;flex-shrink:0}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:-webkit-sticky;position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:var(--el-checkbox-height,32px)}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1);border-color:var(--el-checkbox-checked-icon-color)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid transparent;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{flex-shrink:0;color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);overflow-wrap:break-word;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular)}.el-text{align-self:center;margin:0;padding:0;font-size:var(--el-text-font-size);color:var(--el-text-color);overflow-wrap:break-word}.el-text.is-truncated{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}ul{list-style-type:none;padding:5px}ul li{justify-content:space-between;padding:5px}ul .annotation-key{width:300px;display:inline-block;vertical-align:middle}.title-text{color:#99a9bf}.el-page-header__title{font-size:20px}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}html.dark{--el-bg-color: #343432;--el-fill-color-blank: #343432;background-color:#343432} diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index 075604a5dab..88490373043 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -3,9 +3,9 @@ - frps dashboard - - + frp server + + diff --git a/client/service.go b/client/service.go index b282163e220..8d639698771 100644 --- a/client/service.go +++ b/client/service.go @@ -281,11 +281,15 @@ func (svr *Service) login() (conn net.Conn, connector Connector, err error) { return } + hostname, _ := os.Hostname() + loginMsg := &msg.Login{ Arch: runtime.GOARCH, Os: runtime.GOOS, + Hostname: hostname, PoolCount: svr.common.Transport.PoolCount, User: svr.common.User, + ClientID: svr.common.ClientID, Version: version.Full(), Timestamp: time.Now().Unix(), RunID: svr.runID, diff --git a/conf/frpc_full_example.toml b/conf/frpc_full_example.toml index ad7953beb56..5a4141377fa 100644 --- a/conf/frpc_full_example.toml +++ b/conf/frpc_full_example.toml @@ -1,5 +1,7 @@ # This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues. +# Optional unique identifier for this frpc instance. +clientID = "your_client_id" # your proxy name will be changed to {user}.{proxy} user = "your_name" diff --git a/pkg/config/flags.go b/pkg/config/flags.go index 6027b622411..e1f2251d4e0 100644 --- a/pkg/config/flags.go +++ b/pkg/config/flags.go @@ -167,6 +167,7 @@ func RegisterClientCommonConfigFlags(cmd *cobra.Command, c *v1.ClientCommonConfi c.Transport.TLS.Enable = cmd.PersistentFlags().BoolP("tls_enable", "", true, "enable frpc tls") } cmd.PersistentFlags().StringVarP(&c.User, "user", "u", "", "user") + cmd.PersistentFlags().StringVar(&c.ClientID, "client-id", "", "unique identifier for this frpc instance") cmd.PersistentFlags().StringVarP(&c.Auth.Token, "token", "t", "", "auth token") } diff --git a/pkg/config/v1/client.go b/pkg/config/v1/client.go index 2c5ccc6f1f9..bb95b6cd800 100644 --- a/pkg/config/v1/client.go +++ b/pkg/config/v1/client.go @@ -37,6 +37,8 @@ type ClientCommonConfig struct { // clients. If this value is not "", proxy names will automatically be // changed to "{user}.{proxy_name}". User string `json:"user,omitempty"` + // ClientID uniquely identifies this frpc instance. + ClientID string `json:"clientID,omitempty"` // ServerAddr specifies the address of the server to connect to. By // default, this value is "0.0.0.0". diff --git a/pkg/msg/msg.go b/pkg/msg/msg.go index d466f231404..7b36c2aa92c 100644 --- a/pkg/msg/msg.go +++ b/pkg/msg/msg.go @@ -82,6 +82,7 @@ type Login struct { PrivilegeKey string `json:"privilege_key,omitempty"` Timestamp int64 `json:"timestamp,omitempty"` RunID string `json:"run_id,omitempty"` + ClientID string `json:"client_id,omitempty"` Metas map[string]string `json:"metas,omitempty"` // Currently only effective for VirtualClient. diff --git a/server/client_registry.go b/server/client_registry.go new file mode 100644 index 00000000000..423861d16e9 --- /dev/null +++ b/server/client_registry.go @@ -0,0 +1,146 @@ +package server + +import ( + "fmt" + "maps" + "sync" + "time" +) + +// ClientInfo captures metadata about a connected frpc instance. +type ClientInfo struct { + Key string + User string + ClientID string + RunID string + Hostname string + Metas map[string]string + FirstConnectedAt time.Time + LastConnectedAt time.Time + DisconnectedAt time.Time + Online bool +} + +// ClientRegistry keeps track of active clients keyed by "{user}.{clientID}" (or runID if clientID is empty). +// Entries without an explicit clientID are removed on disconnect to avoid stale offline records. +type ClientRegistry struct { + mu sync.RWMutex + clients map[string]*ClientInfo + runIndex map[string]string +} + +func NewClientRegistry() *ClientRegistry { + return &ClientRegistry{ + clients: make(map[string]*ClientInfo), + runIndex: make(map[string]string), + } +} + +// Register stores/updates metadata for a client and returns the registry key plus whether it conflicts with an online client. +func (cr *ClientRegistry) Register(user, clientID, runID, hostname string, metas map[string]string) (key string, conflict bool) { + if runID == "" { + return "", false + } + + effectiveID := clientID + if effectiveID == "" { + effectiveID = runID + } + key = cr.composeClientKey(user, effectiveID) + enforceUnique := clientID != "" + + now := time.Now() + cr.mu.Lock() + defer cr.mu.Unlock() + + info, exists := cr.clients[key] + if enforceUnique && exists && info.Online && info.RunID != "" && info.RunID != runID { + return key, true + } + + if !exists { + info = &ClientInfo{ + Key: key, + User: user, + ClientID: clientID, + FirstConnectedAt: now, + } + cr.clients[key] = info + } else if info.RunID != "" { + delete(cr.runIndex, info.RunID) + } + + info.RunID = runID + info.Hostname = hostname + info.Metas = metas + if info.FirstConnectedAt.IsZero() { + info.FirstConnectedAt = now + } + info.LastConnectedAt = now + info.DisconnectedAt = time.Time{} + info.Online = true + + cr.runIndex[runID] = key + return key, false +} + +// MarkOfflineByRunID marks the client as offline when the corresponding control disconnects. +func (cr *ClientRegistry) MarkOfflineByRunID(runID string) { + cr.mu.Lock() + defer cr.mu.Unlock() + + key, ok := cr.runIndex[runID] + if !ok { + return + } + if info, ok := cr.clients[key]; ok && info.RunID == runID { + if info.ClientID == "" { + delete(cr.clients, key) + } else { + info.RunID = "" + info.Online = false + now := time.Now() + info.DisconnectedAt = now + } + } + delete(cr.runIndex, runID) +} + +// List returns a snapshot of all known clients. +func (cr *ClientRegistry) List() []ClientInfo { + cr.mu.RLock() + defer cr.mu.RUnlock() + + result := make([]ClientInfo, 0, len(cr.clients)) + for _, info := range cr.clients { + cp := *info + cp.Metas = maps.Clone(info.Metas) + result = append(result, cp) + } + return result +} + +// GetByKey retrieves a client by its composite key ({user}.{clientID} or runID fallback). +func (cr *ClientRegistry) GetByKey(key string) (ClientInfo, bool) { + cr.mu.RLock() + defer cr.mu.RUnlock() + + info, ok := cr.clients[key] + if !ok { + return ClientInfo{}, false + } + cp := *info + cp.Metas = maps.Clone(info.Metas) + return cp, true +} + +func (cr *ClientRegistry) composeClientKey(user, id string) string { + switch { + case user == "": + return id + case id == "": + return user + default: + return fmt.Sprintf("%s.%s", user, id) + } +} diff --git a/server/control.go b/server/control.go index af9c9de36a6..d9f8293b10e 100644 --- a/server/control.go +++ b/server/control.go @@ -147,6 +147,8 @@ type Control struct { // Server configuration information serverCfg *v1.ServerConfig + clientRegistry *ClientRegistry + xl *xlog.Logger ctx context.Context doneCh chan struct{} @@ -358,6 +360,7 @@ func (ctl *Control) worker() { } metrics.Server.CloseClient() + ctl.clientRegistry.MarkOfflineByRunID(ctl.runID) xl.Infof("client exit success") close(ctl.doneCh) } diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 54e5d9e97a8..82363cf6061 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -17,8 +17,11 @@ package server import ( "cmp" "encoding/json" + "fmt" "net/http" "slices" + "strings" + "time" "github.com/gorilla/mux" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -53,6 +56,8 @@ func (svr *Service) registerRouteHandlers(helper *httppkg.RouterRegisterHelper) subRouter.HandleFunc("/api/proxy/{type}", svr.apiProxyByType).Methods("GET") subRouter.HandleFunc("/api/proxy/{type}/{name}", svr.apiProxyByTypeAndName).Methods("GET") subRouter.HandleFunc("/api/traffic/{name}", svr.apiProxyTraffic).Methods("GET") + subRouter.HandleFunc("/api/clients", svr.apiClientList).Methods("GET") + subRouter.HandleFunc("/api/clients/{key}", svr.apiClientDetail).Methods("GET") subRouter.HandleFunc("/api/proxies", svr.deleteProxies).Methods("DELETE") // view @@ -88,6 +93,19 @@ type serverInfoResp struct { ProxyTypeCounts map[string]int64 `json:"proxyTypeCount"` } +type clientInfoResp struct { + Key string `json:"key"` + User string `json:"user"` + ClientID string `json:"clientId"` + RunID string `json:"runId"` + Hostname string `json:"hostname"` + Metas map[string]string `json:"metas,omitempty"` + FirstConnectedAt int64 `json:"firstConnectedAt"` + LastConnectedAt int64 `json:"lastConnectedAt"` + DisconnectedAt int64 `json:"disconnectedAt,omitempty"` + Online bool `json:"online"` +} + // /healthz func (svr *Service) healthz(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(200) @@ -132,6 +150,101 @@ func (svr *Service) apiServerInfo(w http.ResponseWriter, r *http.Request) { res.Msg = string(buf) } +// /api/clients +func (svr *Service) apiClientList(w http.ResponseWriter, r *http.Request) { + res := GeneralResponse{Code: 200} + defer func() { + log.Infof("http response [%s]: code [%d]", r.URL.RequestURI(), res.Code) + w.WriteHeader(res.Code) + if len(res.Msg) > 0 { + _, _ = w.Write([]byte(res.Msg)) + } + }() + + log.Infof("http request: [%s]", r.URL.RequestURI()) + + if svr.clientRegistry == nil { + res.Code = http.StatusInternalServerError + res.Msg = "client registry unavailable" + return + } + + query := r.URL.Query() + userFilter := query.Get("user") + clientIDFilter := query.Get("clientId") + runIDFilter := query.Get("runId") + statusFilter := strings.ToLower(query.Get("status")) + + records := svr.clientRegistry.List() + items := make([]clientInfoResp, 0, len(records)) + for _, info := range records { + if userFilter != "" && info.User != userFilter { + continue + } + if clientIDFilter != "" && info.ClientID != clientIDFilter { + continue + } + if runIDFilter != "" && info.RunID != runIDFilter { + continue + } + if !matchStatusFilter(info.Online, statusFilter) { + continue + } + items = append(items, buildClientInfoResp(info)) + } + + slices.SortFunc(items, func(a, b clientInfoResp) int { + if v := cmp.Compare(a.User, b.User); v != 0 { + return v + } + if v := cmp.Compare(a.ClientID, b.ClientID); v != 0 { + return v + } + return cmp.Compare(a.Key, b.Key) + }) + + buf, _ := json.Marshal(items) + res.Msg = string(buf) +} + +// /api/clients/{key} +func (svr *Service) apiClientDetail(w http.ResponseWriter, r *http.Request) { + res := GeneralResponse{Code: 200} + defer func() { + log.Infof("http response [%s]: code [%d]", r.URL.RequestURI(), res.Code) + w.WriteHeader(res.Code) + if len(res.Msg) > 0 { + _, _ = w.Write([]byte(res.Msg)) + } + }() + + log.Infof("http request: [%s]", r.URL.RequestURI()) + + vars := mux.Vars(r) + key := vars["key"] + if key == "" { + res.Code = http.StatusBadRequest + res.Msg = "missing client key" + return + } + + if svr.clientRegistry == nil { + res.Code = http.StatusInternalServerError + res.Msg = "client registry unavailable" + return + } + + info, ok := svr.clientRegistry.GetByKey(key) + if !ok { + res.Code = http.StatusNotFound + res.Msg = fmt.Sprintf("client %s not found", key) + return + } + + buf, _ := json.Marshal(buildClientInfoResp(info)) + res.Msg = string(buf) +} + type BaseOutConf struct { v1.ProxyBaseConfig } @@ -404,3 +517,41 @@ func (svr *Service) deleteProxies(w http.ResponseWriter, r *http.Request) { cleared, total := mem.StatsCollector.ClearOfflineProxies() log.Infof("cleared [%d] offline proxies, total [%d] proxies", cleared, total) } + +func buildClientInfoResp(info ClientInfo) clientInfoResp { + resp := clientInfoResp{ + Key: info.Key, + User: info.User, + ClientID: info.ClientID, + RunID: info.RunID, + Hostname: info.Hostname, + Metas: info.Metas, + FirstConnectedAt: toUnix(info.FirstConnectedAt), + LastConnectedAt: toUnix(info.LastConnectedAt), + Online: info.Online, + } + if !info.DisconnectedAt.IsZero() { + resp.DisconnectedAt = info.DisconnectedAt.Unix() + } + return resp +} + +func toUnix(t time.Time) int64 { + if t.IsZero() { + return 0 + } + return t.Unix() +} + +func matchStatusFilter(online bool, filter string) bool { + switch strings.ToLower(filter) { + case "", "all": + return true + case "online": + return online + case "offline": + return !online + default: + return true + } +} diff --git a/server/service.go b/server/service.go index de3af837610..19cab4a27e9 100644 --- a/server/service.go +++ b/server/service.go @@ -96,6 +96,9 @@ type Service struct { // Manage all controllers ctlManager *ControlManager + // Track logical clients keyed by user.clientID. + clientRegistry *ClientRegistry + // Manage all proxies pxyManager *proxy.Manager @@ -155,9 +158,10 @@ func NewService(cfg *v1.ServerConfig) (*Service, error) { } svr := &Service{ - ctlManager: NewControlManager(), - pxyManager: proxy.NewManager(), - pluginManager: plugin.NewManager(), + ctlManager: NewControlManager(), + clientRegistry: NewClientRegistry(), + pxyManager: proxy.NewManager(), + pluginManager: plugin.NewManager(), rc: &controller.ResourceController{ VisitorManager: visitor.NewManager(), TCPPortManager: ports.NewManager("tcp", cfg.ProxyBindAddr, cfg.AllowPorts), @@ -606,10 +610,19 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login, inter // don't return detailed errors to client return fmt.Errorf("unexpected error when creating new controller") } + if oldCtl := svr.ctlManager.Add(loginMsg.RunID, ctl); oldCtl != nil { oldCtl.WaitClosed() } + _, conflict := svr.clientRegistry.Register(loginMsg.User, loginMsg.ClientID, loginMsg.RunID, loginMsg.Hostname, loginMsg.Metas) + if conflict { + svr.ctlManager.Del(loginMsg.RunID, ctl) + ctl.Close() + return fmt.Errorf("client_id [%s] for user [%s] is already online", loginMsg.ClientID, loginMsg.User) + } + ctl.clientRegistry = svr.clientRegistry + ctl.Start() // for statistics diff --git a/web/frps/.eslintrc.cjs b/web/frps/.eslintrc.cjs index c4da8f84877..7046378222a 100644 --- a/web/frps/.eslintrc.cjs +++ b/web/frps/.eslintrc.cjs @@ -23,7 +23,7 @@ module.exports = { 'vue/multi-word-component-names': [ 'error', { - ignores: ['Traffic'], + ignores: ['Traffic', 'Proxies', 'Clients'], }, ], }, diff --git a/web/frps/components.d.ts b/web/frps/components.d.ts index 188e961b99d..eacf7e56bde 100644 --- a/web/frps/components.d.ts +++ b/web/frps/components.d.ts @@ -7,37 +7,38 @@ export {} declare module 'vue' { export interface GlobalComponents { + ClientCard: typeof import('./src/components/ClientCard.vue')['default'] ElButton: typeof import('element-plus/es')['ElButton'] + ElCard: typeof import('element-plus/es')['ElCard'] ElCol: typeof import('element-plus/es')['ElCol'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElDivider: typeof import('element-plus/es')['ElDivider'] + ElEmpty: typeof import('element-plus/es')['ElEmpty'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] + ElIcon: typeof import('element-plus/es')['ElIcon'] + ElInput: typeof import('element-plus/es')['ElInput'] ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] - ElPageHeader: typeof import('element-plus/es')['ElPageHeader'] ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm'] + ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] + ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] - ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTabPane: typeof import('element-plus/es')['ElTabPane'] + ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] ElText: typeof import('element-plus/es')['ElText'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] - LongSpan: typeof import('./src/components/LongSpan.vue')['default'] - ProxiesHTTP: typeof import('./src/components/ProxiesHTTP.vue')['default'] - ProxiesHTTPS: typeof import('./src/components/ProxiesHTTPS.vue')['default'] - ProxiesSTCP: typeof import('./src/components/ProxiesSTCP.vue')['default'] - ProxiesSUDP: typeof import('./src/components/ProxiesSUDP.vue')['default'] - ProxiesTCP: typeof import('./src/components/ProxiesTCP.vue')['default'] - ProxiesTCPMux: typeof import('./src/components/ProxiesTCPMux.vue')['default'] - ProxiesUDP: typeof import('./src/components/ProxiesUDP.vue')['default'] - ProxyView: typeof import('./src/components/ProxyView.vue')['default'] ProxyViewExpand: typeof import('./src/components/ProxyViewExpand.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - ServerOverview: typeof import('./src/components/ServerOverview.vue')['default'] + StatCard: typeof import('./src/components/StatCard.vue')['default'] Traffic: typeof import('./src/components/Traffic.vue')['default'] } + export interface ComponentCustomProperties { + vLoading: typeof import('element-plus/es')['ElLoadingDirective'] + } } diff --git a/web/frps/index.html b/web/frps/index.html index 93039b93acf..c43e45b44e9 100644 --- a/web/frps/index.html +++ b/web/frps/index.html @@ -3,7 +3,7 @@ - frps dashboard + frp server diff --git a/web/frps/package.json b/web/frps/package.json index 75e7be9258e..cbb0f57835a 100644 --- a/web/frps/package.json +++ b/web/frps/package.json @@ -11,28 +11,30 @@ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { - "@types/humanize-plus": "^1.8.0", - "echarts": "^5.4.3", - "element-plus": "^2.5.3", - "humanize-plus": "^1.8.2", - "vue": "^3.4.15", - "vue-router": "^4.2.5" + "element-plus": "^2.13.0", + "vue": "^3.5.26", + "vue-router": "^4.6.4" }, "devDependencies": { - "@rushstack/eslint-patch": "^1.7.2", - "@types/node": "^18.11.12", - "@vitejs/plugin-vue": "^5.0.3", + "@rushstack/eslint-patch": "^1.15.0", + "@types/node": "24", + "@vitejs/plugin-vue": "^6.0.3", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^12.0.0", - "@vue/tsconfig": "^0.5.1", + "@vue/tsconfig": "^0.8.1", + "@vueuse/core": "^14.1.0", "eslint": "^8.56.0", - "eslint-plugin-vue": "^9.21.0", + "eslint-plugin-vue": "^9.33.0", "npm-run-all": "^4.1.5", - "prettier": "^3.2.4", - "typescript": "~5.3.3", + "prettier": "^3.7.4", + "sass": "^1.97.2", + "terser": "^5.44.1", + "typescript": "^5.9.3", "unplugin-auto-import": "^0.17.5", + "unplugin-element-plus": "^0.11.2", "unplugin-vue-components": "^0.26.0", - "vite": "^5.0.12", - "vue-tsc": "^1.8.27" + "vite": "^7.3.0", + "vite-svg-loader": "^5.1.0", + "vue-tsc": "^3.2.2" } } diff --git a/web/frps/src/App.vue b/web/frps/src/App.vue index ad15e3a14d1..b478b58d224 100644 --- a/web/frps/src/App.vue +++ b/web/frps/src/App.vue @@ -1,127 +1,300 @@ diff --git a/web/frps/src/api/client.ts b/web/frps/src/api/client.ts new file mode 100644 index 00000000000..41d382cce4d --- /dev/null +++ b/web/frps/src/api/client.ts @@ -0,0 +1,10 @@ +import { http } from './http' +import type { ClientInfoData } from '../types/client' + +export const getClients = () => { + return http.get('../api/clients') +} + +export const getClient = (key: string) => { + return http.get(`../api/clients/${key}`) +} diff --git a/web/frps/src/api/http.ts b/web/frps/src/api/http.ts new file mode 100644 index 00000000000..4d4e41bd9fd --- /dev/null +++ b/web/frps/src/api/http.ts @@ -0,0 +1,50 @@ +// http.ts - Base HTTP client + +class HTTPError extends Error { + status: number + statusText: string + + constructor(status: number, statusText: string, message?: string) { + super(message || statusText) + this.status = status + this.statusText = statusText + } +} + +async function request(url: string, options: RequestInit = {}): Promise { + const defaultOptions: RequestInit = { + credentials: 'include', + } + + const response = await fetch(url, { ...defaultOptions, ...options }) + + if (!response.ok) { + throw new HTTPError(response.status, response.statusText, `HTTP ${response.status}`) + } + + // Handle empty response (e.g. 204 No Content) + if (response.status === 204) { + return {} as T + } + + return response.json() +} + +export const http = { + get: (url: string, options?: RequestInit) => request(url, { ...options, method: 'GET' }), + post: (url: string, body?: any, options?: RequestInit) => + request(url, { + ...options, + method: 'POST', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify(body) + }), + put: (url: string, body?: any, options?: RequestInit) => + request(url, { + ...options, + method: 'PUT', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify(body) + }), + delete: (url: string, options?: RequestInit) => request(url, { ...options, method: 'DELETE' }), +} diff --git a/web/frps/src/api/proxy.ts b/web/frps/src/api/proxy.ts new file mode 100644 index 00000000000..4a70f0a0913 --- /dev/null +++ b/web/frps/src/api/proxy.ts @@ -0,0 +1,18 @@ +import { http } from './http' +import type { GetProxyResponse, ProxyStatsInfo, TrafficResponse } from '../types/proxy' + +export const getProxiesByType = (type: string) => { + return http.get(`../api/proxy/${type}`) +} + +export const getProxy = (type: string, name: string) => { + return http.get(`../api/proxy/${type}/${name}`) +} + +export const getProxyTraffic = (name: string) => { + return http.get(`../api/traffic/${name}`) +} + +export const clearOfflineProxies = () => { + return http.delete('../api/proxies?status=offline') +} diff --git a/web/frps/src/api/server.ts b/web/frps/src/api/server.ts new file mode 100644 index 00000000000..f46f21d37eb --- /dev/null +++ b/web/frps/src/api/server.ts @@ -0,0 +1,6 @@ +import { http } from './http' +import type { ServerInfo } from '../types/server' + +export const getServerInfo = () => { + return http.get('../api/serverinfo') +} diff --git a/web/frps/src/assets/css/custom.css b/web/frps/src/assets/css/custom.css new file mode 100644 index 00000000000..6ff997a5528 --- /dev/null +++ b/web/frps/src/assets/css/custom.css @@ -0,0 +1,89 @@ +.el-form-item span { + margin-left: 15px; +} + +.proxy-table-expand { + font-size: 0; +} + +.proxy-table-expand .el-form-item__label{ + width: 90px; + color: #99a9bf; +} + +.proxy-table-expand .el-form-item { + margin-right: 0; + margin-bottom: 0; + width: 50%; +} + +.el-table .el-table__expanded-cell { + padding: 20px 50px; +} + +/* Modern styles */ +* { + box-sizing: border-box; +} + +/* Smooth transitions */ +.el-button, +.el-card, +.el-input, +.el-select, +.el-tag { + transition: all 0.3s ease; +} + +/* Card hover effects */ +.el-card:hover { + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); +} + +/* Better scrollbar */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb { + background: #c1c1c1; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #a8a8a8; +} + +/* Page headers */ +.el-page-header { + padding: 16px 0; +} + +.el-page-header__title { + font-size: 20px; + font-weight: 600; +} + +/* Better form layouts */ +.el-form-item { + margin-bottom: 18px; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .el-row { + margin-left: 0 !important; + margin-right: 0 !important; + } + + .el-col { + padding-left: 10px !important; + padding-right: 10px !important; + } +} diff --git a/web/frps/src/assets/css/dark.css b/web/frps/src/assets/css/dark.css new file mode 100644 index 00000000000..557e7829cf0 --- /dev/null +++ b/web/frps/src/assets/css/dark.css @@ -0,0 +1,58 @@ +html.dark { + --el-bg-color: #1e1e2e; + --el-fill-color-blank: #1e1e2e; + background-color: #1e1e2e; +} + +html.dark body { + background-color: #1e1e2e; + color: #e5e7eb; +} + +/* Dark mode scrollbar */ +html.dark ::-webkit-scrollbar-track { + background: #27293d; +} + +html.dark ::-webkit-scrollbar-thumb { + background: #3a3d5c; +} + +html.dark ::-webkit-scrollbar-thumb:hover { + background: #4a4d6c; +} + +/* Dark mode cards */ +html.dark .el-card { + background-color: #27293d; + border-color: #3a3d5c; +} + +/* Dark mode inputs */ +html.dark .el-input__wrapper { + background-color: #27293d; + border-color: #3a3d5c; +} + +html.dark .el-input__inner { + color: #e5e7eb; +} + +/* Dark mode table */ +html.dark .el-table { + background-color: #27293d; + color: #e5e7eb; +} + +html.dark .el-table th { + background-color: #1e1e2e; + color: #e5e7eb; +} + +html.dark .el-table tr { + background-color: #27293d; +} + +html.dark .el-table--striped .el-table__body tr.el-table__row--striped td { + background-color: #1e1e2e; +} diff --git a/web/frps/src/assets/custom.css b/web/frps/src/assets/custom.css deleted file mode 100644 index 107ddc5a280..00000000000 --- a/web/frps/src/assets/custom.css +++ /dev/null @@ -1,22 +0,0 @@ -.el-form-item span { - margin-left: 15px; -} - -.proxy-table-expand { - font-size: 0; -} - -.proxy-table-expand .el-form-item__label{ - width: 90px; - color: #99a9bf; -} - -.proxy-table-expand .el-form-item { - margin-right: 0; - margin-bottom: 0; - width: 50%; -} - -.el-table .el-table__expanded-cell { - padding: 20px 50px; -} diff --git a/web/frps/src/assets/dark.css b/web/frps/src/assets/dark.css deleted file mode 100644 index 06942990495..00000000000 --- a/web/frps/src/assets/dark.css +++ /dev/null @@ -1,5 +0,0 @@ -html.dark { - --el-bg-color: #343432; - --el-fill-color-blank: #343432; - background-color: #343432; -} diff --git a/web/frps/src/assets/icons/github.svg b/web/frps/src/assets/icons/github.svg new file mode 100644 index 00000000000..160a7939320 --- /dev/null +++ b/web/frps/src/assets/icons/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/frps/src/components/ClientCard.vue b/web/frps/src/components/ClientCard.vue new file mode 100644 index 00000000000..d432e8725e3 --- /dev/null +++ b/web/frps/src/components/ClientCard.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/web/frps/src/components/LongSpan.vue b/web/frps/src/components/LongSpan.vue deleted file mode 100644 index f0df3b242ac..00000000000 --- a/web/frps/src/components/LongSpan.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/web/frps/src/components/ProxiesHTTP.vue b/web/frps/src/components/ProxiesHTTP.vue deleted file mode 100644 index 8418b88d66a..00000000000 --- a/web/frps/src/components/ProxiesHTTP.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxiesHTTPS.vue b/web/frps/src/components/ProxiesHTTPS.vue deleted file mode 100644 index ddaa54cb1b2..00000000000 --- a/web/frps/src/components/ProxiesHTTPS.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxiesSTCP.vue b/web/frps/src/components/ProxiesSTCP.vue deleted file mode 100644 index a38b3e35b8c..00000000000 --- a/web/frps/src/components/ProxiesSTCP.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxiesSUDP.vue b/web/frps/src/components/ProxiesSUDP.vue deleted file mode 100644 index c88fc48bbed..00000000000 --- a/web/frps/src/components/ProxiesSUDP.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxiesTCP.vue b/web/frps/src/components/ProxiesTCP.vue deleted file mode 100644 index 7a0297f1b18..00000000000 --- a/web/frps/src/components/ProxiesTCP.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxiesTCPMux.vue b/web/frps/src/components/ProxiesTCPMux.vue deleted file mode 100644 index 9e39e278683..00000000000 --- a/web/frps/src/components/ProxiesTCPMux.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxiesUDP.vue b/web/frps/src/components/ProxiesUDP.vue deleted file mode 100644 index f6b5cd6e447..00000000000 --- a/web/frps/src/components/ProxiesUDP.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxyView.vue b/web/frps/src/components/ProxyView.vue deleted file mode 100644 index 97a6e071f51..00000000000 --- a/web/frps/src/components/ProxyView.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - - - diff --git a/web/frps/src/components/ProxyViewExpand.vue b/web/frps/src/components/ProxyViewExpand.vue index f0e7d8992c6..7efd5948b78 100644 --- a/web/frps/src/components/ProxyViewExpand.vue +++ b/web/frps/src/components/ProxyViewExpand.vue @@ -60,19 +60,18 @@
- - Annotations -
    -
  • - {{ item.key }} - {{ item.value }} -
  • -
+ + Annotations +
    +
  • + {{ item.key }} + {{ item.value }} +
  • +
diff --git a/web/frps/src/components/ServerOverview.vue b/web/frps/src/components/ServerOverview.vue deleted file mode 100644 index 5df2cb4963c..00000000000 --- a/web/frps/src/components/ServerOverview.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - - - diff --git a/web/frps/src/components/StatCard.vue b/web/frps/src/components/StatCard.vue new file mode 100644 index 00000000000..8ed5afd56e7 --- /dev/null +++ b/web/frps/src/components/StatCard.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/web/frps/src/components/Traffic.vue b/web/frps/src/components/Traffic.vue index ba07d4b9c48..b4a0e368abc 100644 --- a/web/frps/src/components/Traffic.vue +++ b/web/frps/src/components/Traffic.vue @@ -1,32 +1,260 @@ - + + \ No newline at end of file diff --git a/web/frps/src/main.ts b/web/frps/src/main.ts index 6e0ae286c1d..e8ef7195c60 100644 --- a/web/frps/src/main.ts +++ b/web/frps/src/main.ts @@ -1,11 +1,10 @@ import { createApp } from 'vue' -import 'element-plus/dist/index.css' import 'element-plus/theme-chalk/dark/css-vars.css' import App from './App.vue' import router from './router' -import './assets/custom.css' -import './assets/dark.css' +import './assets/css/custom.css' +import './assets/css/dark.css' const app = createApp(App) diff --git a/web/frps/src/router/index.ts b/web/frps/src/router/index.ts index d3729a4c4d7..b42a4630543 100644 --- a/web/frps/src/router/index.ts +++ b/web/frps/src/router/index.ts @@ -1,12 +1,7 @@ import { createRouter, createWebHashHistory } from 'vue-router' -import ServerOverview from '../components/ServerOverview.vue' -import ProxiesTCP from '../components/ProxiesTCP.vue' -import ProxiesUDP from '../components/ProxiesUDP.vue' -import ProxiesHTTP from '../components/ProxiesHTTP.vue' -import ProxiesHTTPS from '../components/ProxiesHTTPS.vue' -import ProxiesTCPMux from '../components/ProxiesTCPMux.vue' -import ProxiesSTCP from '../components/ProxiesSTCP.vue' -import ProxiesSUDP from '../components/ProxiesSUDP.vue' +import ServerOverview from '../views/ServerOverview.vue' +import Clients from '../views/Clients.vue' +import Proxies from '../views/Proxies.vue' const router = createRouter({ history: createWebHashHistory(), @@ -17,39 +12,14 @@ const router = createRouter({ component: ServerOverview, }, { - path: '/proxies/tcp', - name: 'ProxiesTCP', - component: ProxiesTCP, + path: '/clients', + name: 'Clients', + component: Clients, }, { - path: '/proxies/udp', - name: 'ProxiesUDP', - component: ProxiesUDP, - }, - { - path: '/proxies/http', - name: 'ProxiesHTTP', - component: ProxiesHTTP, - }, - { - path: '/proxies/https', - name: 'ProxiesHTTPS', - component: ProxiesHTTPS, - }, - { - path: '/proxies/tcpmux', - name: 'ProxiesTCPMux', - component: ProxiesTCPMux, - }, - { - path: '/proxies/stcp', - name: 'ProxiesSTCP', - component: ProxiesSTCP, - }, - { - path: '/proxies/sudp', - name: 'ProxiesSUDP', - component: ProxiesSUDP, + path: '/proxies/:type?', + name: 'Proxies', + component: Proxies, }, ], }) diff --git a/web/frps/src/svg.d.ts b/web/frps/src/svg.d.ts new file mode 100644 index 00000000000..2f7dabe59c1 --- /dev/null +++ b/web/frps/src/svg.d.ts @@ -0,0 +1,5 @@ +declare module '*.svg?component' { + import type { DefineComponent } from 'vue' + const component: DefineComponent + export default component +} diff --git a/web/frps/src/types/client.ts b/web/frps/src/types/client.ts new file mode 100644 index 00000000000..bdc4ea9d087 --- /dev/null +++ b/web/frps/src/types/client.ts @@ -0,0 +1,12 @@ +export interface ClientInfoData { + key: string + user: string + clientId: string + runId: string + hostname: string + metas?: Record + firstConnectedAt: number + lastConnectedAt: number + disconnectedAt?: number + online: boolean +} diff --git a/web/frps/src/types/proxy.ts b/web/frps/src/types/proxy.ts new file mode 100644 index 00000000000..b2204a22dbf --- /dev/null +++ b/web/frps/src/types/proxy.ts @@ -0,0 +1,21 @@ +export interface ProxyStatsInfo { + name: string + conf: any + clientVersion: string + todayTrafficIn: number + todayTrafficOut: number + curConns: number + lastStartTime: string + lastCloseTime: string + status: string +} + +export interface GetProxyResponse { + proxies: ProxyStatsInfo[] +} + +export interface TrafficResponse { + name: string + trafficIn: number[] + trafficOut: number[] +} diff --git a/web/frps/src/types/server.ts b/web/frps/src/types/server.ts new file mode 100644 index 00000000000..837cb4f8cde --- /dev/null +++ b/web/frps/src/types/server.ts @@ -0,0 +1,22 @@ +export interface ServerInfo { + version: string + bindPort: number + vhostHTTPPort: number + vhostHTTPSPort: number + tcpmuxHTTPConnectPort: number + kcpBindPort: number + quicBindPort: number + subdomainHost: string + maxPoolCount: number + maxPortsPerClient: number + heartbeatTimeout: number + allowPortsStr: string + tlsForce: boolean + + // Stats + totalTrafficIn: number + totalTrafficOut: number + curConns: number + clientCounts: number + proxyTypeCount: Record +} diff --git a/web/frps/src/utils/chart.ts b/web/frps/src/utils/chart.ts deleted file mode 100644 index 8ef557ca579..00000000000 --- a/web/frps/src/utils/chart.ts +++ /dev/null @@ -1,293 +0,0 @@ -import * as Humanize from 'humanize-plus' -import * as echarts from 'echarts/core' -import { PieChart, BarChart } from 'echarts/charts' -import { CanvasRenderer } from 'echarts/renderers' -import { LabelLayout } from 'echarts/features' - -import { - TitleComponent, - TooltipComponent, - LegendComponent, - GridComponent, -} from 'echarts/components' - -echarts.use([ - PieChart, - BarChart, - CanvasRenderer, - LabelLayout, - TitleComponent, - TooltipComponent, - LegendComponent, - GridComponent, -]) - -function DrawTrafficChart( - elementId: string, - trafficIn: number, - trafficOut: number -) { - const myChart = echarts.init( - document.getElementById(elementId) as HTMLElement, - 'macarons' - ) - myChart.showLoading() - - const option = { - title: { - text: 'Network Traffic', - subtext: 'today', - left: 'center', - }, - tooltip: { - trigger: 'item', - formatter: function (v: any) { - return Humanize.fileSize(v.data.value) + ' (' + v.percent + '%)' - }, - }, - legend: { - orient: 'vertical', - left: 'left', - data: ['Traffic In', 'Traffic Out'], - }, - series: [ - { - type: 'pie', - radius: '55%', - center: ['50%', '60%'], - data: [ - { - value: trafficIn, - name: 'Traffic In', - }, - { - value: trafficOut, - name: 'Traffic Out', - }, - ], - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)', - }, - }, - }, - ], - } - myChart.setOption(option) - myChart.hideLoading() -} - -function DrawProxyChart(elementId: string, serverInfo: any) { - const myChart = echarts.init( - document.getElementById(elementId) as HTMLElement, - 'macarons' - ) - myChart.showLoading() - - const option = { - title: { - text: 'Proxies', - subtext: 'now', - left: 'center', - }, - tooltip: { - trigger: 'item', - formatter: function (v: any) { - return String(v.data.value) - }, - }, - legend: { - orient: 'vertical', - left: 'left', - data: [], - }, - series: [ - { - type: 'pie', - radius: '55%', - center: ['50%', '60%'], - data: [], - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)', - }, - }, - }, - ], - } - - if ( - serverInfo.proxyTypeCount.tcp != null && - serverInfo.proxyTypeCount.tcp != 0 - ) { - option.series[0].data.push({ - value: serverInfo.proxyTypeCount.tcp, - name: 'TCP', - }) - option.legend.data.push('TCP') - } - if ( - serverInfo.proxyTypeCount.udp != null && - serverInfo.proxyTypeCount.udp != 0 - ) { - option.series[0].data.push({ - value: serverInfo.proxyTypeCount.udp, - name: 'UDP', - }) - option.legend.data.push('UDP') - } - if ( - serverInfo.proxyTypeCount.http != null && - serverInfo.proxyTypeCount.http != 0 - ) { - option.series[0].data.push({ - value: serverInfo.proxyTypeCount.http, - name: 'HTTP', - }) - option.legend.data.push('HTTP') - } - if ( - serverInfo.proxyTypeCount.https != null && - serverInfo.proxyTypeCount.https != 0 - ) { - option.series[0].data.push({ - value: serverInfo.proxyTypeCount.https, - name: 'HTTPS', - }) - option.legend.data.push('HTTPS') - } - if ( - serverInfo.proxyTypeCount.stcp != null && - serverInfo.proxyTypeCount.stcp != 0 - ) { - option.series[0].data.push({ - value: serverInfo.proxyTypeCount.stcp, - name: 'STCP', - }) - option.legend.data.push('STCP') - } - if ( - serverInfo.proxyTypeCount.sudp != null && - serverInfo.proxyTypeCount.sudp != 0 - ) { - option.series[0].data.push({ - value: serverInfo.proxyTypeCount.sudp, - name: 'SUDP', - }) - option.legend.data.push('SUDP') - } - if ( - serverInfo.proxyTypeCount.xtcp != null && - serverInfo.proxyTypeCount.xtcp != 0 - ) { - option.series[0].data.push({ - value: serverInfo.proxyTypeCount.xtcp, - name: 'XTCP', - }) - option.legend.data.push('XTCP') - } - - myChart.setOption(option) - myChart.hideLoading() -} - -// 7 days -function DrawProxyTrafficChart( - elementId: string, - trafficInArr: number[], - trafficOutArr: number[] -) { - const params = { - width: '600px', - height: '400px', - } - - const myChart = echarts.init( - document.getElementById(elementId) as HTMLElement, - 'macarons', - params - ) - myChart.showLoading() - - trafficInArr = trafficInArr.reverse() - trafficOutArr = trafficOutArr.reverse() - let now = new Date() - now = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 6) - const dates: Array = [] - for (let i = 0; i < 7; i++) { - dates.push( - now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() - ) - now = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1) - } - - const option = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'shadow', - }, - formatter: function (data: any) { - let html = '' - if (data.length > 0) { - html += data[0].name + '
' - } - for (const v of data) { - const colorEl = - '' - html += - colorEl + v.seriesName + ': ' + Humanize.fileSize(v.value) + '
' - } - return html - }, - }, - legend: { - data: ['Traffic In', 'Traffic Out'], - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true, - }, - xAxis: [ - { - type: 'category', - data: dates, - }, - ], - yAxis: [ - { - type: 'value', - axisLabel: { - formatter: function (value: number) { - return Humanize.fileSize(value) - }, - }, - }, - ], - series: [ - { - name: 'Traffic In', - type: 'bar', - data: trafficInArr, - }, - { - name: 'Traffic Out', - type: 'bar', - data: trafficOutArr, - }, - ], - } - myChart.setOption(option) - myChart.hideLoading() -} - -export { DrawTrafficChart, DrawProxyChart, DrawProxyTrafficChart } diff --git a/web/frps/src/utils/client.ts b/web/frps/src/utils/client.ts new file mode 100644 index 00000000000..393b327d826 --- /dev/null +++ b/web/frps/src/utils/client.ts @@ -0,0 +1,82 @@ +import { formatDistanceToNow } from './format' +import type { ClientInfoData } from '../types/client' + +export class Client { + key: string + user: string + clientId: string + runId: string + hostname: string + metas: Map + firstConnectedAt: Date + lastConnectedAt: Date + disconnectedAt?: Date + online: boolean + + constructor(data: ClientInfoData) { + this.key = data.key + this.user = data.user + this.clientId = data.clientId + this.runId = data.runId + this.hostname = data.hostname + this.metas = new Map() + if (data.metas) { + for (const [key, value] of Object.entries(data.metas)) { + this.metas.set(key, value) + } + } + this.firstConnectedAt = new Date(data.firstConnectedAt * 1000) + this.lastConnectedAt = new Date(data.lastConnectedAt * 1000) + if (data.disconnectedAt && data.disconnectedAt > 0) { + this.disconnectedAt = new Date(data.disconnectedAt * 1000) + } + this.online = data.online + } + + get displayName(): string { + if (this.clientId) { + return this.user ? `${this.user}.${this.clientId}` : this.clientId + } + return this.runId + } + + get shortRunId(): string { + return this.runId.substring(0, 8) + } + + get firstConnectedAgo(): string { + return formatDistanceToNow(this.firstConnectedAt) + } + + get lastConnectedAgo(): string { + return formatDistanceToNow(this.lastConnectedAt) + } + + get disconnectedAgo(): string { + if (!this.disconnectedAt) return '' + return formatDistanceToNow(this.disconnectedAt) + } + + get statusColor(): string { + return this.online ? 'success' : 'danger' + } + + get metasArray(): Array<{ key: string; value: string }> { + const arr: Array<{ key: string; value: string }> = [] + this.metas.forEach((value, key) => { + arr.push({ key, value }) + }) + return arr + } + + matchesFilter(searchText: string): boolean { + const search = searchText.toLowerCase() + return ( + this.key.toLowerCase().includes(search) || + this.user.toLowerCase().includes(search) || + this.clientId.toLowerCase().includes(search) || + this.runId.toLowerCase().includes(search) || + this.hostname.toLowerCase().includes(search) + ) + } +} diff --git a/web/frps/src/utils/format.ts b/web/frps/src/utils/format.ts new file mode 100644 index 00000000000..e7e72fcf3f9 --- /dev/null +++ b/web/frps/src/utils/format.ts @@ -0,0 +1,33 @@ +export function formatDistanceToNow(date: Date): string { + const seconds = Math.floor((new Date().getTime() - date.getTime()) / 1000) + + let interval = seconds / 31536000 + if (interval > 1) return Math.floor(interval) + ' years ago' + + interval = seconds / 2592000 + if (interval > 1) return Math.floor(interval) + ' months ago' + + interval = seconds / 86400 + if (interval > 1) return Math.floor(interval) + ' days ago' + + interval = seconds / 3600 + if (interval > 1) return Math.floor(interval) + ' hours ago' + + interval = seconds / 60 + if (interval > 1) return Math.floor(interval) + ' minutes ago' + + return Math.floor(seconds) + ' seconds ago' +} + +export function formatFileSize(bytes: number): string { + if (!Number.isFinite(bytes) || bytes < 0) return '0 B' + if (bytes === 0) return '0 B' + const k = 1024 + const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + // Prevent index out of bounds for extremely large numbers + const unit = sizes[i] || sizes[sizes.length - 1] + const val = bytes / Math.pow(k, i) + + return parseFloat(val.toFixed(2)) + ' ' + unit +} diff --git a/web/frps/src/utils/proxy.ts b/web/frps/src/utils/proxy.ts index 3baf927427a..7e1a02aef09 100644 --- a/web/frps/src/utils/proxy.ts +++ b/web/frps/src/utils/proxy.ts @@ -128,7 +128,7 @@ class TCPMuxProxy extends BaseProxy { if (proxyStats.conf.subdomain) { this.subdomain = `${proxyStats.conf.subdomain}.${subdomainHost}` } - } + } } } diff --git a/web/frps/src/views/Clients.vue b/web/frps/src/views/Clients.vue new file mode 100644 index 00000000000..a9ccd5a1914 --- /dev/null +++ b/web/frps/src/views/Clients.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/web/frps/src/views/Proxies.vue b/web/frps/src/views/Proxies.vue new file mode 100644 index 00000000000..4a0ba1f0d57 --- /dev/null +++ b/web/frps/src/views/Proxies.vue @@ -0,0 +1,375 @@ + + + + + diff --git a/web/frps/src/views/ServerOverview.vue b/web/frps/src/views/ServerOverview.vue new file mode 100644 index 00000000000..47baa9ddeea --- /dev/null +++ b/web/frps/src/views/ServerOverview.vue @@ -0,0 +1,457 @@ + + + + + diff --git a/web/frps/vite.config.mts b/web/frps/vite.config.mts index 656ab9ebf61..fc2925fd30b 100644 --- a/web/frps/vite.config.mts +++ b/web/frps/vite.config.mts @@ -2,15 +2,19 @@ import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' +import svgLoader from 'vite-svg-loader' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' +import ElementPlus from 'unplugin-element-plus/vite' // https://vitejs.dev/config/ export default defineConfig({ base: '', plugins: [ vue(), + svgLoader(), + ElementPlus({}), AutoImport({ resolvers: [ElementPlusResolver()], }), @@ -25,5 +29,21 @@ export default defineConfig({ }, build: { assetsDir: '', + chunkSizeWarningLimit: 1000, + minify: 'terser', + terserOptions: { + compress: { + drop_console: true, + drop_debugger: true, + }, + }, + }, + server: { + proxy: { + '/api': { + target: process.env.VITE_API_URL || 'http://127.0.0.1:7500', + changeOrigin: true, + }, + }, }, }) diff --git a/web/frps/yarn.lock b/web/frps/yarn.lock index 33f9a1ed0cf..5418abc6c8e 100644 --- a/web/frps/yarn.lock +++ b/web/frps/yarn.lock @@ -7,140 +7,175 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@antfu/utils@^0.7.6", "@antfu/utils@^0.7.7": - version "0.7.7" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.7.tgz#26ea493a831b4f3a85475e7157be02fb4eab51fb" - integrity sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg== +"@antfu/utils@^0.7.10", "@antfu/utils@^0.7.6": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" + integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== -"@babel/parser@^7.23.6": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" - integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/parser@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" + integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== + dependencies: + "@babel/types" "^7.28.5" + +"@babel/types@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" "@ctrl/tinycolor@^3.4.1": version "3.5.0" resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz" integrity sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg== -"@element-plus/icons-vue@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz#1f635ad5fdd5c85ed936481525570e82b5a8307a" - integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg== - -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== - -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== - -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== - -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== - -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== - -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== - -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== - -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== - -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== - -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== - -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== - -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== - -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== - -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== - -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== - -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== - -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== - -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== - -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== - -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== - -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== - -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== - -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@element-plus/icons-vue@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz#7e9cb231fb738b2056f33e22c3a29e214b538dcf" + integrity sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A== + +"@esbuild/aix-ppc64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz#521cbd968dcf362094034947f76fa1b18d2d403c" + integrity sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw== + +"@esbuild/android-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz#61ea550962d8aa12a9b33194394e007657a6df57" + integrity sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA== + +"@esbuild/android-arm@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.2.tgz#554887821e009dd6d853f972fde6c5143f1de142" + integrity sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA== + +"@esbuild/android-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.2.tgz#a7ce9d0721825fc578f9292a76d9e53334480ba2" + integrity sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A== + +"@esbuild/darwin-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz#2cb7659bd5d109803c593cfc414450d5430c8256" + integrity sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg== + +"@esbuild/darwin-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz#e741fa6b1abb0cd0364126ba34ca17fd5e7bf509" + integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== + +"@esbuild/freebsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz#2b64e7116865ca172d4ce034114c21f3c93e397c" + integrity sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g== + +"@esbuild/freebsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz#e5252551e66f499e4934efb611812f3820e990bb" + integrity sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA== + +"@esbuild/linux-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz#dc4acf235531cd6984f5d6c3b13dbfb7ddb303cb" + integrity sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw== + +"@esbuild/linux-arm@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz#56a900e39240d7d5d1d273bc053daa295c92e322" + integrity sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw== + +"@esbuild/linux-ia32@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz#d4a36d473360f6870efcd19d52bbfff59a2ed1cc" + integrity sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w== + +"@esbuild/linux-loong64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz#fcf0ab8c3eaaf45891d0195d4961cb18b579716a" + integrity sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg== + +"@esbuild/linux-mips64el@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz#598b67d34048bb7ee1901cb12e2a0a434c381c10" + integrity sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw== + +"@esbuild/linux-ppc64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz#3846c5df6b2016dab9bc95dde26c40f11e43b4c0" + integrity sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ== + +"@esbuild/linux-riscv64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz#173d4475b37c8d2c3e1707e068c174bb3f53d07d" + integrity sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA== + +"@esbuild/linux-s390x@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz#f7a4790105edcab8a5a31df26fbfac1aa3dacfab" + integrity sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w== + +"@esbuild/linux-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz#2ecc1284b1904aeb41e54c9ddc7fcd349b18f650" + integrity sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA== + +"@esbuild/netbsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz#e2863c2cd1501845995cb11adf26f7fe4be527b0" + integrity sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw== + +"@esbuild/netbsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz#93f7609e2885d1c0b5a1417885fba8d1fcc41272" + integrity sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA== + +"@esbuild/openbsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz#a1985604a203cdc325fd47542e106fafd698f02e" + integrity sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA== + +"@esbuild/openbsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz#8209e46c42f1ffbe6e4ef77a32e1f47d404ad42a" + integrity sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg== + +"@esbuild/openharmony-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz#8fade4441893d9cc44cbd7dcf3776f508ab6fb2f" + integrity sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag== + +"@esbuild/sunos-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz#980d4b9703a16f0f07016632424fc6d9a789dfc2" + integrity sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg== + +"@esbuild/win32-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz#1c09a3633c949ead3d808ba37276883e71f6111a" + integrity sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg== + +"@esbuild/win32-ia32@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz#1b1e3a63ad4bef82200fef4e369e0fff7009eee5" + integrity sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ== + +"@esbuild/win32-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz#9e585ab6086bef994c6e8a5b3a0481219ada862b" + integrity sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -205,14 +240,56 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== -"@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.11" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@kurkle/color@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.4.tgz#4d4ff677e1609214fc71c580125ddddd86abcabf" + integrity sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -220,17 +297,132 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nuxt/kit@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-4.2.2.tgz#f3f900a59e8c8f71313e31366c9319806ac9c9e7" + integrity sha512-ZAgYBrPz/yhVgDznBNdQj2vhmOp31haJbO0I0iah/P9atw+OHH7NJLUZ3PK+LOz/0fblKTN1XJVSi8YQ1TQ0KA== + dependencies: + c12 "^3.3.2" + consola "^3.4.2" + defu "^6.1.4" + destr "^2.0.5" + errx "^0.1.0" + exsolve "^1.0.8" + ignore "^7.0.5" + jiti "^2.6.1" + klona "^2.0.6" + mlly "^1.8.0" + ohash "^2.0.11" + pathe "^2.0.3" + pkg-types "^2.3.0" + rc9 "^2.1.2" + scule "^1.3.0" + semver "^7.7.3" + tinyglobby "^0.2.15" + ufo "^1.6.1" + unctx "^2.4.1" + untyped "^2.0.0" + +"@parcel/watcher-android-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz#507f836d7e2042f798c7d07ad19c3546f9848ac1" + integrity sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== + +"@parcel/watcher-darwin-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz#3d26dce38de6590ef79c47ec2c55793c06ad4f67" + integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== + +"@parcel/watcher-darwin-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz#99f3af3869069ccf774e4ddfccf7e64fd2311ef8" + integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== + +"@parcel/watcher-freebsd-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz#14d6857741a9f51dfe51d5b08b7c8afdbc73ad9b" + integrity sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== + +"@parcel/watcher-linux-arm-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz#43c3246d6892381db473bb4f663229ad20b609a1" + integrity sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== + +"@parcel/watcher-linux-arm-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz#663750f7090bb6278d2210de643eb8a3f780d08e" + integrity sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== + +"@parcel/watcher-linux-arm64-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz#ba60e1f56977f7e47cd7e31ad65d15fdcbd07e30" + integrity sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== + +"@parcel/watcher-linux-arm64-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz#f7fbcdff2f04c526f96eac01f97419a6a99855d2" + integrity sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== + +"@parcel/watcher-linux-x64-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" + integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== + +"@parcel/watcher-linux-x64-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" + integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== + +"@parcel/watcher-win32-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz#7e9e02a26784d47503de1d10e8eab6cceb524243" + integrity sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== + +"@parcel/watcher-win32-ia32@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz#2d0f94fa59a873cdc584bf7f6b1dc628ddf976e6" + integrity sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== + +"@parcel/watcher-win32-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz#ae52693259664ba6f2228fa61d7ee44b64ea0947" + integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== + +"@parcel/watcher@^2.4.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" + integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.1" + "@parcel/watcher-darwin-arm64" "2.5.1" + "@parcel/watcher-darwin-x64" "2.5.1" + "@parcel/watcher-freebsd-x64" "2.5.1" + "@parcel/watcher-linux-arm-glibc" "2.5.1" + "@parcel/watcher-linux-arm-musl" "2.5.1" + "@parcel/watcher-linux-arm64-glibc" "2.5.1" + "@parcel/watcher-linux-arm64-musl" "2.5.1" + "@parcel/watcher-linux-x64-glibc" "2.5.1" + "@parcel/watcher-linux-x64-musl" "2.5.1" + "@parcel/watcher-win32-arm64" "2.5.1" + "@parcel/watcher-win32-ia32" "2.5.1" + "@parcel/watcher-win32-x64" "2.5.1" + "@pkgr/core@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" @@ -241,131 +433,208 @@ resolved "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== -"@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" - integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== +"@rolldown/pluginutils@1.0.0-beta.53": + version "1.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz#c57a5234ae122671aff6fe72e673a7ed90f03f87" + integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ== + +"@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0", "@rollup/pluginutils@^5.1.4": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.3.0.tgz#57ba1b0cbda8e7a3c597a4853c807b156e21a7b4" + integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" - picomatch "^2.3.1" + picomatch "^4.0.2" + +"@rollup/rollup-android-arm-eabi@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz#76e0fef6533b3ce313f969879e61e8f21f0eeb28" + integrity sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg== + +"@rollup/rollup-android-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz#d3cfc675a40bbdec97bda6d7fe3b3b05f0e1cd93" + integrity sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg== + +"@rollup/rollup-darwin-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz#eb912b8f59dd47c77b3c50a78489013b1d6772b4" + integrity sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg== + +"@rollup/rollup-darwin-x64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz#e7d0839fdfd1276a1d34bc5ebbbd0dfd7d0b81a0" + integrity sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ== + +"@rollup/rollup-freebsd-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz#7ff8118760f7351e48fd0cd3717ff80543d6aac8" + integrity sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg== + +"@rollup/rollup-freebsd-x64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz#49d330dadbda1d4e9b86b4a3951b59928a9489a9" + integrity sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw== + +"@rollup/rollup-linux-arm-gnueabihf@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz#98c5f1f8b9776b4a36e466e2a1c9ed1ba52ef1b6" + integrity sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ== + +"@rollup/rollup-linux-arm-musleabihf@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz#b9acecd3672e742f70b0c8a94075c816a91ff040" + integrity sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg== + +"@rollup/rollup-linux-arm64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz#7a6ab06651bc29e18b09a50ed1a02bc972977c9b" + integrity sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ== + +"@rollup/rollup-linux-arm64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz#3c8c9072ba4a4d4ef1156b85ab9a2cbb57c1fad0" + integrity sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA== + +"@rollup/rollup-linux-loong64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz#17a7af13530f4e4a7b12cd26276c54307a84a8b0" + integrity sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g== + +"@rollup/rollup-linux-loong64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz#5cd7a900fd7b077ecd753e34a9b7ff1157fe70c1" + integrity sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw== + +"@rollup/rollup-linux-ppc64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz#03a097e70243ddf1c07b59d3c20f38e6f6800539" + integrity sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw== + +"@rollup/rollup-linux-ppc64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz#a5389873039d4650f35b4fa060d286392eb21a94" + integrity sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw== + +"@rollup/rollup-linux-riscv64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz#789e60e7d6e2b76132d001ffb24ba80007fb17d0" + integrity sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw== + +"@rollup/rollup-linux-riscv64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz#3556fa88d139282e9a73c337c9a170f3c5fe7aa4" + integrity sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg== + +"@rollup/rollup-linux-s390x-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz#c085995b10143c16747a67f1a5487512b2ff04b2" + integrity sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg== + +"@rollup/rollup-linux-x64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz#9563a5419dd2604841bad31a39ccfdd2891690fb" + integrity sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg== + +"@rollup/rollup-linux-x64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz#691bb06e6269a8959c13476b0cd2aa7458facb31" + integrity sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w== + +"@rollup/rollup-openbsd-x64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz#223e71224746a59ce6d955bbc403577bb5a8be9d" + integrity sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg== + +"@rollup/rollup-openharmony-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz#0817e5d8ecbfeb8b7939bf58f8ce3c9dd67fce77" + integrity sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw== + +"@rollup/rollup-win32-arm64-msvc@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz#de56d8f2013c84570ef5fb917aae034abda93e4a" + integrity sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g== + +"@rollup/rollup-win32-ia32-msvc@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz#659aff5244312475aeea2c9479a6c7d397b517bf" + integrity sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA== + +"@rollup/rollup-win32-x64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz#2cb09549cbb66c1b979f9238db6dd454cac14a88" + integrity sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg== + +"@rollup/rollup-win32-x64-msvc@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz#f79437939020b83057faf07e98365b1fa51c458b" + integrity sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw== + +"@rushstack/eslint-patch@^1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz#8184bcb37791e6d3c3c13a9bfbe4af263f66665f" + integrity sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw== -"@rollup/rollup-android-arm-eabi@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" - integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== - -"@rollup/rollup-android-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" - integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== - -"@rollup/rollup-darwin-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" - integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== - -"@rollup/rollup-darwin-x64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" - integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== - -"@rollup/rollup-linux-arm-gnueabihf@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" - integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== - -"@rollup/rollup-linux-arm64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" - integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== - -"@rollup/rollup-linux-arm64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" - integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== - -"@rollup/rollup-linux-riscv64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" - integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== - -"@rollup/rollup-linux-x64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" - integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== - -"@rollup/rollup-linux-x64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" - integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== - -"@rollup/rollup-win32-arm64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" - integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== - -"@rollup/rollup-win32-ia32-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" - integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== - -"@rollup/rollup-win32-x64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" - integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== - -"@rushstack/eslint-patch@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz#2d4260033e199b3032a08b41348ac10de21c47e9" - integrity sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA== - -"@types/estree@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@types/estree@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== +"@types/estree@1.0.8", "@types/estree@^1.0.0": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/humanize-plus@^1.8.0": - version "1.8.0" - resolved "https://registry.npmjs.org/@types/humanize-plus/-/humanize-plus-1.8.0.tgz" - integrity sha512-c7QNInYzgvbrNZvbwI/iYvHDTik/GqONxAvRUqwYF0AjgycoiyELrRR3RrILGXdZcaLt6Y+ds0+gSRQFzc71IQ== +"@types/humanize-plus@^1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@types/humanize-plus/-/humanize-plus-1.8.2.tgz#ce40ad11f4eeb0364f52c0ec5ef21b989369dd9b" + integrity sha512-uyFFCGYuqU/Cpr8h+iE2k0shDAnXltV0Pd/r6bmxFAvXVss2cvEiQqeZpwuX8BsAtWN0JTipeXrDxdHk4EEhPg== "@types/json-schema@^7.0.12": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/lodash-es@^4.17.6": - version "4.17.6" - resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz" - integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== +"@types/lodash-es@^4.17.12": + version "4.17.12" + resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b" + integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== dependencies: "@types/lodash" "*" -"@types/lodash@*", "@types/lodash@^4.14.182": +"@types/lodash@*": version "4.14.191" resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== -"@types/node@^18.11.12": - version "18.11.18" - resolved "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== +"@types/lodash@^4.17.20": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.21.tgz#b806831543d696b14f8112db600ea9d3a1df6ea4" + integrity sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ== + +"@types/node@24": + version "24.10.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.4.tgz#9d27c032a1b2c42a4eab8fb65c5856a8b8e098c4" + integrity sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg== + dependencies: + undici-types "~7.16.0" "@types/semver@^7.5.0": version "7.5.6" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== -"@types/web-bluetooth@^0.0.16": - version "0.0.16" - resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz" - integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@types/web-bluetooth@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz#525433c784aed9b457aaa0ee3d92aeb71f346b63" + integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== "@typescript-eslint/eslint-plugin@^6.7.0": version "6.20.0" @@ -458,79 +727,80 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@vitejs/plugin-vue@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz#164b36653910d27c130cf6c945b4bd9bde5bcbee" - integrity sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA== - -"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" - integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== +"@vitejs/plugin-vue@^6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz#b857c5dcbc5cfb30bf5d7f9d6e274afcca2d46d1" + integrity sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w== dependencies: - "@volar/source-map" "1.11.1" + "@rolldown/pluginutils" "1.0.0-beta.53" -"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" - integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== +"@volar/language-core@2.4.27": + version "2.4.27" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.27.tgz#c66d44cd22a914384d238bbcd0f621ecc57e3618" + integrity sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ== dependencies: - muggle-string "^0.3.1" + "@volar/source-map" "2.4.27" -"@volar/typescript@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" - integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== +"@volar/source-map@2.4.27": + version "2.4.27" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.27.tgz#8ce6f16e207987078fd866e2faf65c35c4d15987" + integrity sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg== + +"@volar/typescript@2.4.27": + version "2.4.27" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.27.tgz#8950318a33d5dfcdc4b0e5bbe5a38c1b8383eae6" + integrity sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg== dependencies: - "@volar/language-core" "1.11.1" + "@volar/language-core" "2.4.27" path-browserify "^1.0.1" + vscode-uri "^3.0.8" -"@vue/compiler-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e" - integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== +"@vue/compiler-core@3.5.26": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.26.tgz#1a91ea90980528bedff7b1c292690bfb30612485" + integrity sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w== dependencies: - "@babel/parser" "^7.23.6" - "@vue/shared" "3.4.15" - entities "^4.5.0" + "@babel/parser" "^7.28.5" + "@vue/shared" "3.5.26" + entities "^7.0.0" estree-walker "^2.0.2" - source-map-js "^1.0.2" - -"@vue/compiler-dom@3.4.15", "@vue/compiler-dom@^3.3.0": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5" - integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== - dependencies: - "@vue/compiler-core" "3.4.15" - "@vue/shared" "3.4.15" - -"@vue/compiler-sfc@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b" - integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== - dependencies: - "@babel/parser" "^7.23.6" - "@vue/compiler-core" "3.4.15" - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + source-map-js "^1.2.1" + +"@vue/compiler-dom@3.5.26", "@vue/compiler-dom@^3.5.0": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz#66c36b6ed8bdf43236d7188ea332bc9d078eb286" + integrity sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A== + dependencies: + "@vue/compiler-core" "3.5.26" + "@vue/shared" "3.5.26" + +"@vue/compiler-sfc@3.5.26": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz#fb1c6c4bf9a9e22bb169e039e19437cb6995917a" + integrity sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA== + dependencies: + "@babel/parser" "^7.28.5" + "@vue/compiler-core" "3.5.26" + "@vue/compiler-dom" "3.5.26" + "@vue/compiler-ssr" "3.5.26" + "@vue/shared" "3.5.26" estree-walker "^2.0.2" - magic-string "^0.30.5" - postcss "^8.4.33" - source-map-js "^1.0.2" + magic-string "^0.30.21" + postcss "^8.5.6" + source-map-js "^1.2.1" -"@vue/compiler-ssr@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf" - integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== +"@vue/compiler-ssr@3.5.26": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz#f6e94bccbb5339180779036ddfb614f998a197ea" + integrity sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.5.26" + "@vue/shared" "3.5.26" -"@vue/devtools-api@^6.5.0": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" - integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== +"@vue/devtools-api@^6.6.4": + version "6.6.4" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== "@vue/eslint-config-prettier@^9.0.0": version "9.0.0" @@ -549,100 +819,123 @@ "@typescript-eslint/parser" "^6.7.0" vue-eslint-parser "^9.3.1" -"@vue/language-core@1.8.27": - version "1.8.27" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" - integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== +"@vue/language-core@3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-3.2.2.tgz#00af7f3ba584f2d4cbf17c564a00e0437c19823e" + integrity sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ== dependencies: - "@volar/language-core" "~1.11.1" - "@volar/source-map" "~1.11.1" - "@vue/compiler-dom" "^3.3.0" - "@vue/shared" "^3.3.0" - computeds "^0.0.1" - minimatch "^9.0.3" - muggle-string "^0.3.1" + "@volar/language-core" "2.4.27" + "@vue/compiler-dom" "^3.5.0" + "@vue/shared" "^3.5.0" + alien-signals "^3.0.0" + muggle-string "^0.4.1" path-browserify "^1.0.1" - vue-template-compiler "^2.7.14" - -"@vue/reactivity@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1" - integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== - dependencies: - "@vue/shared" "3.4.15" - -"@vue/runtime-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0" - integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== - dependencies: - "@vue/reactivity" "3.4.15" - "@vue/shared" "3.4.15" - -"@vue/runtime-dom@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406" - integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== - dependencies: - "@vue/runtime-core" "3.4.15" - "@vue/shared" "3.4.15" - csstype "^3.1.3" - -"@vue/server-renderer@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f" - integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== - dependencies: - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" - -"@vue/shared@3.4.15", "@vue/shared@^3.3.0": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30" - integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== - -"@vue/tsconfig@^0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.5.1.tgz#3124ec16cc0c7e04165b88dc091e6b97782fffa9" - integrity sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ== - -"@vueuse/core@^9.1.0": - version "9.12.0" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.12.0.tgz" - integrity sha512-h/Di8Bvf6xRcvS/PvUVheiMYYz3U0tH3X25YxONSaAUBa841ayMwxkuzx/DGUMCW/wHWzD8tRy2zYmOC36r4sg== - dependencies: - "@types/web-bluetooth" "^0.0.16" - "@vueuse/metadata" "9.12.0" - "@vueuse/shared" "9.12.0" - vue-demi "*" - -"@vueuse/metadata@9.12.0": - version "9.12.0" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.12.0.tgz" - integrity sha512-9oJ9MM9lFLlmvxXUqsR1wLt1uF7EVbP5iYaHJYqk+G2PbMjY6EXvZeTjbdO89HgoF5cI6z49o2zT/jD9SVoNpQ== - -"@vueuse/shared@9.12.0": - version "9.12.0" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.12.0.tgz" - integrity sha512-TWuJLACQ0BVithVTRbex4Wf1a1VaRuSpVeyEd4vMUWl54PzlE0ciFUshKCXnlLuD0lxIaLK4Ypj3NXYzZh4+SQ== - dependencies: - vue-demi "*" + picomatch "^4.0.2" + +"@vue/reactivity@3.5.26": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.26.tgz#59a1edf566dc80133c1c26c93711c877e8602c48" + integrity sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ== + dependencies: + "@vue/shared" "3.5.26" + +"@vue/runtime-core@3.5.26": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.26.tgz#3f2c040bcf8018c03a1ab5adb0d788c13c986f0e" + integrity sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q== + dependencies: + "@vue/reactivity" "3.5.26" + "@vue/shared" "3.5.26" + +"@vue/runtime-dom@3.5.26": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz#5954848614883948ecc1f631a67b32cc32f81936" + integrity sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ== + dependencies: + "@vue/reactivity" "3.5.26" + "@vue/runtime-core" "3.5.26" + "@vue/shared" "3.5.26" + csstype "^3.2.3" + +"@vue/server-renderer@3.5.26": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.26.tgz#269055497fcc75b3984063f866f17c748b565ef4" + integrity sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA== + dependencies: + "@vue/compiler-ssr" "3.5.26" + "@vue/shared" "3.5.26" + +"@vue/shared@3.5.26", "@vue/shared@^3.5.0": + version "3.5.26" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.26.tgz#1e02ef2d64aced818cd31d81ce5175711dc90a9f" + integrity sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A== + +"@vue/tsconfig@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.8.1.tgz#4732251fa58945024424385cf3be0b1708fad5fe" + integrity sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g== + +"@vueuse/core@^10.11.0": + version "10.11.1" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.11.1.tgz#15d2c0b6448d2212235b23a7ba29c27173e0c2c6" + integrity sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.11.1" + "@vueuse/shared" "10.11.1" + vue-demi ">=0.14.8" + +"@vueuse/core@^14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-14.1.0.tgz#274e98e591a505333b7dfb2bcaf7b4530a10b9c9" + integrity sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw== + dependencies: + "@types/web-bluetooth" "^0.0.21" + "@vueuse/metadata" "14.1.0" + "@vueuse/shared" "14.1.0" + +"@vueuse/metadata@10.11.1": + version "10.11.1" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.11.1.tgz#209db7bb5915aa172a87510b6de2ca01cadbd2a7" + integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw== + +"@vueuse/metadata@14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-14.1.0.tgz#70fc2e94775e4a07369f11f86f6f0a465b04a381" + integrity sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA== + +"@vueuse/shared@10.11.1": + version "10.11.1" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.11.1.tgz#62b84e3118ae6e1f3ff38f4fbe71b0c5d0f10938" + integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA== + dependencies: + vue-demi ">=0.14.8" + +"@vueuse/shared@14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-14.1.0.tgz#49b2face86a9c0c52e20eaf4c732a0223276c11f" + integrity sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw== acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.10.0, acorn@^8.11.2, acorn@^8.11.3, acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.14.0, acorn@^8.15.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== acorn@^8.8.0: version "8.8.2" resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" @@ -653,6 +946,11 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +alien-signals@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/alien-signals/-/alien-signals-3.1.2.tgz#26e623e3ed81e401df1a7c503f726e2288a4fa02" + integrity sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -674,7 +972,7 @@ ansi-styles@^4.1.0: anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -702,13 +1000,13 @@ available-typed-arrays@^1.0.5: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== boolbase@^1.0.0: version "1.0.0" @@ -724,18 +1022,41 @@ brace-expansion@^1.1.7: concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +c12@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/c12/-/c12-3.3.3.tgz#cab6604e6e6117fc9e62439a8e8144bbbe5edcd6" + integrity sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q== + dependencies: + chokidar "^5.0.0" + confbox "^0.2.2" + defu "^6.1.4" + dotenv "^17.2.3" + exsolve "^1.0.8" + giget "^2.0.0" + jiti "^2.6.1" + ohash "^2.0.11" + pathe "^2.0.3" + perfect-debounce "^2.0.0" + pkg-types "^2.3.0" + rc9 "^2.1.2" call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -767,10 +1088,17 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chart.js@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.5.1.tgz#19dd1a9a386a3f6397691672231cb5fc9c052c35" + integrity sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw== + dependencies: + "@kurkle/color" "^0.3.0" + chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -782,6 +1110,27 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" +chokidar@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" + +chokidar@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-5.0.0.tgz#949c126a9238a80792be9a0265934f098af369a5" + integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== + dependencies: + readdirp "^5.0.0" + +citty@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" + integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== + dependencies: + consola "^3.2.3" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -806,16 +1155,36 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -computeds@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" - integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +confbox@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== + +confbox@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.2.tgz#8652f53961c74d9e081784beed78555974a9c110" + integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== + +consola@^3.2.3, consola@^3.4.0, consola@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" @@ -836,33 +1205,79 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +css-select@^5.1.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" -dayjs@^1.11.3: - version "1.11.7" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz" - integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== +csstype@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== +date-fns@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.1.0.tgz#64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14" + integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== -debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +dayjs@^1.11.19: + version "1.11.19" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938" + integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== + +debug@^4.3.1, debug@^4.3.2: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.3.4: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" @@ -876,6 +1291,21 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + +destr@^2.0.3, destr@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.5.tgz#7d112ff1b925fb8d2079fac5bdb4a90973b51fdb" + integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" @@ -890,40 +1320,71 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -echarts@^5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.4.3.tgz#f5522ef24419164903eedcfd2b506c6fc91fb20c" - integrity sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== dependencies: - tslib "2.3.0" - zrender "5.4.4" + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" -element-plus@^2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.5.3.tgz#d4f8988ea199ad28ef15a6b0b8f94b7639d262fb" - integrity sha512-wmtstxaMkD6UinIgD+45CjrhbRh4u0vt+/GgxfPeMLt5pDpIVwZFjkUaVcWqqxcxd5a80HP3XlDF74fW7wim9A== +dotenv@^17.2.3: + version "17.2.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-17.2.3.tgz#ad995d6997f639b11065f419a22fabf567cdb9a2" + integrity sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w== + +element-plus@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.13.0.tgz#e2ae817c1ed4fa9e94456af69a0f88cd824ee0c7" + integrity sha512-qjxS+SBChvqCl6lU6ShiliLMN6WqFHiXQENYbAY3GKNflG+FS3jqn8JmQq0CBZq4koFqsi95NT1M6SL4whZfrA== dependencies: "@ctrl/tinycolor" "^3.4.1" - "@element-plus/icons-vue" "^2.3.1" + "@element-plus/icons-vue" "^2.3.2" "@floating-ui/dom" "^1.0.1" "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" - "@types/lodash" "^4.14.182" - "@types/lodash-es" "^4.17.6" - "@vueuse/core" "^9.1.0" + "@types/lodash" "^4.17.20" + "@types/lodash-es" "^4.17.12" + "@vueuse/core" "^10.11.0" async-validator "^4.2.5" - dayjs "^1.11.3" - escape-html "^1.0.3" + dayjs "^1.11.19" lodash "^4.17.21" lodash-es "^4.17.21" - lodash-unified "^1.0.2" + lodash-unified "^1.0.3" memoize-one "^6.0.0" normalize-wheel-es "^1.2.0" -entities@^4.5.0: +entities@^4.2.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-7.0.0.tgz#2ae4e443f3f17d152d3f5b0f79b932c1e59deb7a" + integrity sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" @@ -931,6 +1392,11 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +errx@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/errx/-/errx-0.1.0.tgz#4881e411d90a3b1e1620a07604f50081dd59f3aa" + integrity sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q== + es-abstract@^1.19.0, es-abstract@^1.20.4: version "1.21.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" @@ -970,6 +1436,11 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" +es-module-lexer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" + integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== + es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" @@ -988,39 +1459,37 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.19.3: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== +esbuild@^0.27.0: + version "0.27.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.2.tgz#d83ed2154d5813a5367376bb2292a9296fc83717" + integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" - -escape-html@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + "@esbuild/aix-ppc64" "0.27.2" + "@esbuild/android-arm" "0.27.2" + "@esbuild/android-arm64" "0.27.2" + "@esbuild/android-x64" "0.27.2" + "@esbuild/darwin-arm64" "0.27.2" + "@esbuild/darwin-x64" "0.27.2" + "@esbuild/freebsd-arm64" "0.27.2" + "@esbuild/freebsd-x64" "0.27.2" + "@esbuild/linux-arm" "0.27.2" + "@esbuild/linux-arm64" "0.27.2" + "@esbuild/linux-ia32" "0.27.2" + "@esbuild/linux-loong64" "0.27.2" + "@esbuild/linux-mips64el" "0.27.2" + "@esbuild/linux-ppc64" "0.27.2" + "@esbuild/linux-riscv64" "0.27.2" + "@esbuild/linux-s390x" "0.27.2" + "@esbuild/linux-x64" "0.27.2" + "@esbuild/netbsd-arm64" "0.27.2" + "@esbuild/netbsd-x64" "0.27.2" + "@esbuild/openbsd-arm64" "0.27.2" + "@esbuild/openbsd-x64" "0.27.2" + "@esbuild/openharmony-arm64" "0.27.2" + "@esbuild/sunos-x64" "0.27.2" + "@esbuild/win32-arm64" "0.27.2" + "@esbuild/win32-ia32" "0.27.2" + "@esbuild/win32-x64" "0.27.2" escape-string-regexp@^1.0.5: version "1.0.5" @@ -1034,7 +1503,7 @@ escape-string-regexp@^4.0.0: escape-string-regexp@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== eslint-config-prettier@^9.0.0: @@ -1050,17 +1519,18 @@ eslint-plugin-prettier@^5.0.0: prettier-linter-helpers "^1.0.0" synckit "^0.8.6" -eslint-plugin-vue@^9.21.0: - version "9.21.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.21.0.tgz#5f2325279e0ce1e47105664dd6a6dd3ece84aa10" - integrity sha512-B3NgZRtbi9kSl7M0x/PqhSMk7ULJUwWxQpTvM8b2Z6gNTORK0YSt5v1vzwY84oMs/2+3BWH5XmTepaQebcJwfA== +eslint-plugin-vue@^9.33.0: + version "9.33.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz#de33eba8f78e1d172c59c8ec7fbfd60c6ca35c39" + integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^6.0.13" - semver "^7.5.4" - vue-eslint-parser "^9.4.2" + postcss-selector-parser "^6.0.15" + semver "^7.6.3" + vue-eslint-parser "^9.4.3" xml-name-validator "^4.0.0" eslint-scope@^7.1.1: @@ -1179,7 +1649,7 @@ estraverse@^5.1.0, estraverse@^5.2.0: estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== estree-walker@^3.0.3: @@ -1194,6 +1664,11 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +exsolve@^1.0.7, exsolve@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.8.tgz#7f5e34da61cd1116deda5136e62292c096f50613" + integrity sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" @@ -1215,16 +1690,16 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.1, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.3.1, fast-glob@^3.3.2, fast-glob@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.8" fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -1237,12 +1712,17 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.20.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" + integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" @@ -1250,10 +1730,10 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -1290,12 +1770,7 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.3: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -1342,9 +1817,21 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +giget@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/giget/-/giget-2.0.0.tgz#395fc934a43f9a7a29a29d55b99f23e30c14f195" + integrity sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA== + dependencies: + citty "^0.1.6" + consola "^3.4.0" + defu "^6.1.4" + node-fetch-native "^1.6.6" + nypm "^0.6.0" + pathe "^2.0.3" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -1375,6 +1862,13 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" +globals@^13.24.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + globalthis@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" @@ -1457,18 +1951,13 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" -he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" @@ -1484,6 +1973,16 @@ ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" + integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== + +immutable@^5.0.2: + version "5.1.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f" + integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== + import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" @@ -1542,7 +2041,7 @@ is-bigint@^1.0.1: is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" @@ -1560,12 +2059,12 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== +is-core-module@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: - hasown "^2.0.0" + hasown "^2.0.2" is-core-module@^2.9.0: version "2.11.0" @@ -1583,7 +2082,7 @@ is-date-object@^1.0.1: is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: @@ -1607,7 +2106,7 @@ is-number-object@^1.0.4: is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: @@ -1667,6 +2166,16 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +jiti@^2.4.2, jiti@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" + integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== + +js-tokens@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" + integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" @@ -1689,10 +2198,15 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -jsonc-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== +klona@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +knitwork@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-1.3.0.tgz#4a0d0b0d45378cac909ee1117481392522bd08a4" + integrity sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw== levn@^0.4.1: version "0.4.1" @@ -1714,16 +2228,25 @@ load-json-file@^4.0.0: local-pkg@^0.4.3: version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== local-pkg@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" - integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== + version "0.5.1" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" + integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== + dependencies: + mlly "^1.7.3" + pkg-types "^1.2.1" + +local-pkg@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.2.tgz#c03d208787126445303f8161619dc701afa4abb5" + integrity sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A== dependencies: - mlly "^1.4.2" - pkg-types "^1.0.3" + mlly "^1.7.4" + pkg-types "^2.3.0" + quansync "^0.2.11" locate-path@^6.0.0: version "6.0.0" @@ -1737,9 +2260,9 @@ lodash-es@^4.17.21: resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -lodash-unified@^1.0.2: +lodash-unified@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894" integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== lodash.merge@^4.6.2: @@ -1759,12 +2282,22 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.30.3, magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== +magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.21, magic-string@^0.30.3: + version "0.30.21" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.5" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== memoize-one@^6.0.0: version "6.0.0" @@ -1781,15 +2314,15 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== +micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" -minimatch@9.0.3, minimatch@^9.0.3: +minimatch@9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== @@ -1803,30 +2336,42 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -mlly@^1.2.0, mlly@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.5.0.tgz#8428a4617d54cc083d3009030ac79739a0e5447a" - integrity sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ== +minimatch@^9.0.3, minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +mlly@^1.7.3, mlly@^1.7.4, mlly@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.8.0.tgz#e074612b938af8eba1eaf43299cbc89cb72d824e" + integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== dependencies: - acorn "^8.11.3" - pathe "^1.1.2" - pkg-types "^1.0.3" - ufo "^1.3.2" + acorn "^8.15.0" + pathe "^2.0.3" + pkg-types "^1.3.1" + ufo "^1.6.1" ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -muggle-string@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" - integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +muggle-string@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328" + integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== natural-compare@^1.4.0: version "1.4.0" @@ -1838,6 +2383,16 @@ nice-try@^1.0.4: resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + +node-fetch-native@^1.6.6: + version "1.6.7" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.7.tgz#9d09ca63066cc48423211ed4caf5d70075d76a71" + integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" @@ -1850,7 +2405,7 @@ normalize-package-data@^2.3.2: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-wheel-es@^1.2.0: @@ -1873,13 +2428,24 @@ npm-run-all@^4.1.5: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" -nth-check@^2.1.1: +nth-check@^2.0.1, nth-check@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" +nypm@^0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.6.2.tgz#467512024948398fafa73cea30a3ed9efc5af071" + integrity sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g== + dependencies: + citty "^0.1.6" + consola "^3.4.2" + pathe "^2.0.3" + pkg-types "^2.3.0" + tinyexec "^1.0.1" + object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" @@ -1900,6 +2466,11 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" +ohash@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-2.0.11.tgz#60b11e8cff62ca9dee88d13747a5baa145f5900b" + integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== + once@^1.3.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -1975,7 +2546,7 @@ path-key@^3.1.0: path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^3.0.0: @@ -1990,26 +2561,36 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz" - integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== +pathe@^2.0.1, pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== -pathe@^1.1.1, pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== +perfect-debounce@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-2.0.0.tgz#0ff94f1ecbe0a6bca4b1703a2ed08bbe43739aa7" + integrity sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow== picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2, picomatch@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + pidtree@^0.3.0: version "0.3.1" resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" @@ -2020,31 +2601,40 @@ pify@^3.0.0: resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -pkg-types@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" - integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== +pkg-types@^1.2.1, pkg-types@^1.3.0, pkg-types@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== + dependencies: + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" + +pkg-types@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.3.0.tgz#037f2c19bd5402966ff6810e32706558cb5b5726" + integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== dependencies: - jsonc-parser "^3.2.0" - mlly "^1.2.0" - pathe "^1.1.0" + confbox "^0.2.2" + exsolve "^1.0.7" + pathe "^2.0.3" -postcss-selector-parser@^6.0.13: - version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== +postcss-selector-parser@^6.0.15: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss@^8.4.32, postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== +postcss@^8.5.6: + version "8.5.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" prelude-ls@^1.2.1: version "1.2.1" @@ -2058,21 +2648,34 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== +prettier@^3.7.4: + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== punycode@^2.1.0: version "2.3.0" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +quansync@^0.2.11: + version "0.2.11" + resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.11.tgz#f9c3adda2e1272e4f8cf3f1457b04cbdb4ee692a" + integrity sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== + queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +rc9@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.2.tgz#6282ff638a50caa0a91a31d76af4a0b9cbd1080d" + integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== + dependencies: + defu "^6.1.4" + destr "^2.0.3" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" @@ -2082,9 +2685,19 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + +readdirp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-5.0.0.tgz#fbf1f71a727891d685bb1786f9ba74084f6e2f91" + integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ== + readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -2113,18 +2726,18 @@ resolve@^1.10.0: supports-preserve-symlinks-flag "^1.0.0" resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + version "1.22.11" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rimraf@^3.0.2: version "3.0.2" @@ -2133,31 +2746,50 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^4.2.0: - version "4.9.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" - integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== +rolldown-string@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/rolldown-string/-/rolldown-string-0.2.1.tgz#331034f391e9a0e509251b22bbccf7816885a5ea" + integrity sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg== + dependencies: + magic-string "^0.30.21" + +rollup@^4.43.0: + version "4.55.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.55.1.tgz#4ec182828be440648e7ee6520dc35e9f20e05144" + integrity sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A== dependencies: - "@types/estree" "1.0.5" + "@types/estree" "1.0.8" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.6" - "@rollup/rollup-android-arm64" "4.9.6" - "@rollup/rollup-darwin-arm64" "4.9.6" - "@rollup/rollup-darwin-x64" "4.9.6" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" - "@rollup/rollup-linux-arm64-gnu" "4.9.6" - "@rollup/rollup-linux-arm64-musl" "4.9.6" - "@rollup/rollup-linux-riscv64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-musl" "4.9.6" - "@rollup/rollup-win32-arm64-msvc" "4.9.6" - "@rollup/rollup-win32-ia32-msvc" "4.9.6" - "@rollup/rollup-win32-x64-msvc" "4.9.6" + "@rollup/rollup-android-arm-eabi" "4.55.1" + "@rollup/rollup-android-arm64" "4.55.1" + "@rollup/rollup-darwin-arm64" "4.55.1" + "@rollup/rollup-darwin-x64" "4.55.1" + "@rollup/rollup-freebsd-arm64" "4.55.1" + "@rollup/rollup-freebsd-x64" "4.55.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.55.1" + "@rollup/rollup-linux-arm-musleabihf" "4.55.1" + "@rollup/rollup-linux-arm64-gnu" "4.55.1" + "@rollup/rollup-linux-arm64-musl" "4.55.1" + "@rollup/rollup-linux-loong64-gnu" "4.55.1" + "@rollup/rollup-linux-loong64-musl" "4.55.1" + "@rollup/rollup-linux-ppc64-gnu" "4.55.1" + "@rollup/rollup-linux-ppc64-musl" "4.55.1" + "@rollup/rollup-linux-riscv64-gnu" "4.55.1" + "@rollup/rollup-linux-riscv64-musl" "4.55.1" + "@rollup/rollup-linux-s390x-gnu" "4.55.1" + "@rollup/rollup-linux-x64-gnu" "4.55.1" + "@rollup/rollup-linux-x64-musl" "4.55.1" + "@rollup/rollup-openbsd-x64" "4.55.1" + "@rollup/rollup-openharmony-arm64" "4.55.1" + "@rollup/rollup-win32-arm64-msvc" "4.55.1" + "@rollup/rollup-win32-ia32-msvc" "4.55.1" + "@rollup/rollup-win32-x64-gnu" "4.55.1" + "@rollup/rollup-win32-x64-msvc" "4.55.1" fsevents "~2.3.2" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" @@ -2171,10 +2803,21 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -scule@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/scule/-/scule-1.2.0.tgz#b46d444d6a8c92e73eb80d2d8d00b94ab065cc3e" - integrity sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw== +sass@^1.97.2: + version "1.97.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.2.tgz#e515a319092fd2c3b015228e3094b40198bff0da" + integrity sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw== + dependencies: + chokidar "^4.0.0" + immutable "^5.0.2" + source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" + +scule@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" + integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== "semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" @@ -2195,6 +2838,11 @@ semver@^7.5.4: dependencies: lru-cache "^6.0.0" +semver@^7.6.3, semver@^7.7.3: + version "7.7.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" @@ -2238,10 +2886,23 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spdx-correct@^3.0.0: version "3.1.1" @@ -2313,12 +2974,12 @@ strip-json-comments@^3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-literal@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" - integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== +strip-literal@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.1.1.tgz#26906e65f606d49f748454a08084e94190c2e5ad" + integrity sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q== dependencies: - acorn "^8.10.0" + js-tokens "^9.0.1" supports-color@^5.3.0: version "5.5.0" @@ -2336,9 +2997,22 @@ supports-color@^7.1.0: supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svgo@^3.0.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + synckit@^0.8.6: version "0.8.8" resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" @@ -2347,14 +3021,37 @@ synckit@^0.8.6: "@pkgr/core" "^0.1.0" tslib "^2.6.2" +terser@^5.44.1: + version "5.44.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" + integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.15.0" + commander "^2.20.0" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +tinyexec@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.0.2.tgz#bdd2737fe2ba40bd6f918ae26642f264b99ca251" + integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg== + +tinyglobby@^0.2.15: + version "0.2.15" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" + integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.3" + to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" @@ -2364,11 +3061,6 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== -tslib@2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -2395,15 +3087,15 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@~5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@^5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== -ufo@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" - integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== +ufo@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.6.2.tgz#aaf4d46b98425b2fb5031abe8d65ca069e93e755" + integrity sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q== unbox-primitive@^1.0.2: version "1.0.2" @@ -2415,38 +3107,65 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unimport@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.7.1.tgz#37250d0f3f2dcf1e1b66ed13728db0e9f50ba0c3" - integrity sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ== +unctx@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/unctx/-/unctx-2.5.0.tgz#a0c3ba03838856d336e815a71403ce1a848e4108" + integrity sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg== dependencies: - "@rollup/pluginutils" "^5.1.0" - acorn "^8.11.2" + acorn "^8.15.0" + estree-walker "^3.0.3" + magic-string "^0.30.21" + unplugin "^2.3.11" + +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== + +unimport@^3.7.2: + version "3.14.6" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.14.6.tgz#f01170aa2fb94c4f97b22c0ac2822ef7e8e0726d" + integrity sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g== + dependencies: + "@rollup/pluginutils" "^5.1.4" + acorn "^8.14.0" escape-string-regexp "^5.0.0" estree-walker "^3.0.3" - fast-glob "^3.3.2" - local-pkg "^0.5.0" - magic-string "^0.30.5" - mlly "^1.4.2" - pathe "^1.1.1" - pkg-types "^1.0.3" - scule "^1.1.1" - strip-literal "^1.3.0" - unplugin "^1.5.1" + fast-glob "^3.3.3" + local-pkg "^1.0.0" + magic-string "^0.30.17" + mlly "^1.7.4" + pathe "^2.0.1" + picomatch "^4.0.2" + pkg-types "^1.3.0" + scule "^1.3.0" + strip-literal "^2.1.1" + unplugin "^1.16.1" unplugin-auto-import@^0.17.5: - version "0.17.5" - resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.17.5.tgz#5ae7164fddd1560e96bf9be23b2f5ef46c808ca6" - integrity sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w== + version "0.17.8" + resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz#8dd5d1f21700171242553f1a476bd43ffad74af6" + integrity sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw== dependencies: - "@antfu/utils" "^0.7.7" + "@antfu/utils" "^0.7.10" "@rollup/pluginutils" "^5.1.0" fast-glob "^3.3.2" local-pkg "^0.5.0" - magic-string "^0.30.5" - minimatch "^9.0.3" - unimport "^3.7.1" - unplugin "^1.6.0" + magic-string "^0.30.10" + minimatch "^9.0.4" + unimport "^3.7.2" + unplugin "^1.11.0" + +unplugin-element-plus@^0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/unplugin-element-plus/-/unplugin-element-plus-0.11.2.tgz#a5946f374788623e2be4a76f99a4a6c9c1f94135" + integrity sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg== + dependencies: + "@nuxt/kit" "^4.2.2" + es-module-lexer "^2.0.0" + escape-string-regexp "^5.0.0" + rolldown-string "^0.2.1" + unplugin "^2.3.11" unplugin-vue-components@^0.26.0: version "0.26.0" @@ -2464,15 +3183,34 @@ unplugin-vue-components@^0.26.0: resolve "^1.22.4" unplugin "^1.4.0" -unplugin@^1.4.0, unplugin@^1.5.1, unplugin@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.6.0.tgz#0bd7c344182c73e685c864f4f7161531f024b942" - integrity sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ== +unplugin@^1.11.0, unplugin@^1.16.1, unplugin@^1.4.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.16.1.tgz#a844d2e3c3b14a4ac2945c42be80409321b61199" + integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w== dependencies: - acorn "^8.11.2" - chokidar "^3.5.3" - webpack-sources "^3.2.3" - webpack-virtual-modules "^0.6.1" + acorn "^8.14.0" + webpack-virtual-modules "^0.6.2" + +unplugin@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-2.3.11.tgz#411e020dd2ba90e2fbe1e7bd63a5a399e6ee3b54" + integrity sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww== + dependencies: + "@jridgewell/remapping" "^2.3.5" + acorn "^8.15.0" + picomatch "^4.0.3" + webpack-virtual-modules "^0.6.2" + +untyped@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/untyped/-/untyped-2.0.0.tgz#86bc205a4ec4b0137282285866b8278557aeee97" + integrity sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g== + dependencies: + citty "^0.1.6" + defu "^6.1.4" + jiti "^2.4.2" + knitwork "^1.2.0" + scule "^1.3.0" uri-js@^4.2.2: version "4.4.1" @@ -2494,23 +3232,38 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vite@^5.0.12: - version "5.0.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" - integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== - dependencies: - esbuild "^0.19.3" - postcss "^8.4.32" - rollup "^4.2.0" +vite-svg-loader@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz#b0b89bd8024bc0f707d0e8d7422446ac01576d94" + integrity sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw== + dependencies: + svgo "^3.0.2" + +vite@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.0.tgz#066c7a835993a66e82004eac3e185d0d157fd658" + integrity sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg== + dependencies: + esbuild "^0.27.0" + fdir "^6.5.0" + picomatch "^4.0.3" + postcss "^8.5.6" + rollup "^4.43.0" + tinyglobby "^0.2.15" optionalDependencies: fsevents "~2.3.3" -vue-demi@*: - version "0.13.11" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" - integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== +vscode-uri@^3.0.8: + version "3.1.0" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.1.0.tgz#dd09ec5a66a38b5c3fffc774015713496d14e09c" + integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== + +vue-demi@>=0.14.8: + version "0.14.10" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== -vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.2: +vue-eslint-parser@^9.3.1: version "9.4.2" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz#02ffcce82042b082292f2d1672514615f0d95b6d" integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== @@ -2523,50 +3276,49 @@ vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.2: lodash "^4.17.21" semver "^7.3.6" -vue-router@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" - integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== +vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== dependencies: - "@vue/devtools-api" "^6.5.0" + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" -vue-template-compiler@^2.7.14: - version "2.7.14" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz" - integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== +vue-router@^4.6.4: + version "4.6.4" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.6.4.tgz#a0a9cb9ef811a106d249e4bb9313d286718020d8" + integrity sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== dependencies: - de-indent "^1.0.2" - he "^1.2.0" + "@vue/devtools-api" "^6.6.4" -vue-tsc@^1.8.27: - version "1.8.27" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" - integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== +vue-tsc@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-3.2.2.tgz#ccee54f2c2490713de75a66d9965bd9e33fe7066" + integrity sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ== dependencies: - "@volar/typescript" "~1.11.1" - "@vue/language-core" "1.8.27" - semver "^7.5.4" + "@volar/typescript" "2.4.27" + "@vue/language-core" "3.2.2" -vue@^3.4.15: - version "3.4.15" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c" - integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== +vue@^3.5.26: + version "3.5.26" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.26.tgz#03a0b17311e0e593d34b9358fa249b85e3a6d9fb" + integrity sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-sfc" "3.4.15" - "@vue/runtime-dom" "3.4.15" - "@vue/server-renderer" "3.4.15" - "@vue/shared" "3.4.15" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + "@vue/compiler-dom" "3.5.26" + "@vue/compiler-sfc" "3.5.26" + "@vue/runtime-dom" "3.5.26" + "@vue/server-renderer" "3.5.26" + "@vue/shared" "3.5.26" -webpack-virtual-modules@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" - integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== +webpack-virtual-modules@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8" + integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== which-boxed-primitive@^1.0.2: version "1.0.2" @@ -2624,10 +3376,3 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zrender@5.4.4: - version "5.4.4" - resolved "https://registry.yarnpkg.com/zrender/-/zrender-5.4.4.tgz#8854f1d95ecc82cf8912f5a11f86657cb8c9e261" - integrity sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw== - dependencies: - tslib "2.3.0" From a4175a259592bbca549117b2d020f3e66144f953 Mon Sep 17 00:00:00 2001 From: fatedier Date: Thu, 8 Jan 2026 20:25:03 +0800 Subject: [PATCH 303/444] update release notes (#5116) --- Release.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Release.md b/Release.md index c1861c58839..a0ce59b53ae 100644 --- a/Release.md +++ b/Release.md @@ -1,13 +1,4 @@ ## Features -* HTTPS proxies now support load balancing groups. Multiple HTTPS proxies can be configured with the same `loadBalancer.group` and `loadBalancer.groupKey` to share the same custom domain and distribute traffic across multiple backend services, similar to the existing TCP and HTTP load balancing capabilities. -* Individual frpc proxies and visitors now accept an `enabled` flag (defaults to true), letting you disable specific entries without relying on the global `start` list—disabled blocks are skipped when client configs load. -* OIDC authentication now supports a `tokenSource` field to dynamically obtain tokens from external sources. You can use `type = "file"` to read a token from a file, or `type = "exec"` to run an external command (e.g., a cloud CLI or secrets manager) and capture its stdout as the token. The `exec` type requires the `--allow-unsafe=TokenSourceExec` CLI flag for security reasons. - -## Improvements - -* **VirtualNet**: Implemented intelligent reconnection with exponential backoff. When connection errors occur repeatedly, the reconnect interval increases from 60s to 300s (max), reducing unnecessary reconnection attempts. Normal disconnections still reconnect quickly at 10s intervals. - -## Fixes - -* Fix deadlock issue when TCP connection is closed. Previously, sending messages could block forever if the connection handler had already stopped. +* frpc now supports a `clientID` option to uniquely identify client instances. The server dashboard displays all connected clients with their online/offline status, connection history, and metadata, making it easier to monitor and manage multiple frpc deployments. +* Redesigned the frps web dashboard with a modern UI, dark mode support, and improved navigation. From 479e9f50c2f7c94d2a7c875c4bdf2cac4ba2cec0 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 9 Jan 2026 00:40:51 +0800 Subject: [PATCH 304/444] web/frpc: refactor dashboard with improved structure and API layer (#5117) --- assets/frpc/static/index-BAsh6RH1.js | 1 + assets/frpc/static/index-HyKZ_pht.js | 42 - assets/frpc/static/index-JCcyRUo1.css | 1 + assets/frpc/static/index-iuf46MlF.css | 1 - assets/frpc/static/index.html | 6 +- client/admin_api.go | 1 + server/dashboard_api.go | 6 + web/frpc/components.d.ts | 10 +- web/frpc/index.html | 2 +- web/frpc/package.json | 31 +- web/frpc/src/App.vue | 315 +++- web/frpc/src/api/frpc.ts | 18 + web/frpc/src/api/http.ts | 76 + web/frpc/src/assets/css/custom.css | 89 + web/frpc/src/assets/css/dark.css | 58 + web/frpc/src/assets/dark.css | 5 - web/frpc/src/assets/icons/github.svg | 3 + web/frpc/src/components/ClientConfigure.vue | 102 -- web/frpc/src/components/Overview.vue | 85 - web/frpc/src/main.ts | 6 +- web/frpc/src/router/index.ts | 6 +- web/frpc/src/svg.d.ts | 5 + web/frpc/src/types/proxy.ts | 12 + web/frpc/src/utils/format.ts | 33 + web/frpc/src/views/ClientConfigure.vue | 115 ++ web/frpc/src/views/Overview.vue | 215 +++ web/frpc/vite.config.mts | 23 +- web/frpc/yarn.lock | 1748 +++++++++++-------- web/frps/vite.config.mts | 1 + web/frps/yarn.lock | 1023 ++++------- 30 files changed, 2327 insertions(+), 1712 deletions(-) create mode 100644 assets/frpc/static/index-BAsh6RH1.js delete mode 100644 assets/frpc/static/index-HyKZ_pht.js create mode 100644 assets/frpc/static/index-JCcyRUo1.css delete mode 100644 assets/frpc/static/index-iuf46MlF.css create mode 100644 web/frpc/src/api/frpc.ts create mode 100644 web/frpc/src/api/http.ts create mode 100644 web/frpc/src/assets/css/custom.css create mode 100644 web/frpc/src/assets/css/dark.css delete mode 100644 web/frpc/src/assets/dark.css create mode 100644 web/frpc/src/assets/icons/github.svg delete mode 100644 web/frpc/src/components/ClientConfigure.vue delete mode 100644 web/frpc/src/components/Overview.vue create mode 100644 web/frpc/src/svg.d.ts create mode 100644 web/frpc/src/types/proxy.ts create mode 100644 web/frpc/src/utils/format.ts create mode 100644 web/frpc/src/views/ClientConfigure.vue create mode 100644 web/frpc/src/views/Overview.vue diff --git a/assets/frpc/static/index-BAsh6RH1.js b/assets/frpc/static/index-BAsh6RH1.js new file mode 100644 index 00000000000..37ee6ea8432 --- /dev/null +++ b/assets/frpc/static/index-BAsh6RH1.js @@ -0,0 +1 @@ +var e,t,n=Object.getOwnPropertyNames,o=(e={"index-BAsh6RH1.js"(e,t){function n(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const o={},r=[],l=()=>{},a=()=>!1,s=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),i=e=>e.startsWith("onUpdate:"),u=Object.assign,c=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,p=(e,t)=>d.call(e,t),f=Array.isArray,v=e=>"[object Map]"===S(e),h=e=>"[object Set]"===S(e),m=e=>"[object Date]"===S(e),g=e=>"function"==typeof e,b=e=>"string"==typeof e,y=e=>"symbol"==typeof e,w=e=>null!==e&&"object"==typeof e,x=e=>(w(e)||g(e))&&g(e.then)&&g(e.catch),C=Object.prototype.toString,S=e=>C.call(e),_=e=>"[object Object]"===S(e),k=e=>b(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,E=n(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),A=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},O=/-\w/g,T=A(e=>e.replace(O,e=>e.slice(1).toUpperCase())),M=/\B([A-Z])/g,L=A(e=>e.replace(M,"-$1").toLowerCase()),R=A(e=>e.charAt(0).toUpperCase()+e.slice(1)),I=A(e=>e?`on${R(e)}`:""),N=(e,t)=>!Object.is(e,t),B=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},P=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let F;const $=()=>F||(F="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function D(e){if(f(e)){const t={};for(let n=0;n{if(e){const n=e.split(V);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function U(e){let t="";if(b(e))t=e;else if(f(e))for(let n=0;nG(e,t))}const X=e=>!(!e||!0!==e.__v_isRef),Z=e=>b(e)?e:null==e?"":f(e)||w(e)&&(e.toString===C||!g(e.toString))?X(e)?Z(e.value):JSON.stringify(e,J,2):String(e),J=(e,t)=>X(t)?J(e,t.value):v(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],o)=>(e[Q(t,o)+" =>"]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Q(e))}:y(t)?Q(t):!w(t)||f(t)||_(t)?t:String(t),Q=(e,t="")=>{var n;return y(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};let ee,te;class ne{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ee,!e&&ee&&(this.index=(ee.scopes||(ee.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0===--this._on&&(ee=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(this._active=!1,t=0,n=this.effects.length;t0)return;if(ie){let e=ie;for(ie=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;se;){let n=se;for(se=void 0;n;){const o=n.next;if(n.next=void 0,n.flags&=-9,1&n.flags)try{n.trigger()}catch(t){e||(e=t)}n=o}}if(e)throw e}function fe(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ve(e){let t,n=e.depsTail,o=n;for(;o;){const e=o.prevDep;-1===o.version?(o===n&&(n=e),ge(o),be(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=e}e.deps=t,e.depsTail=n}function he(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(me(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function me(e){if(4&e.flags&&!(16&e.flags))return;if(e.flags&=-17,e.globalVersion===_e)return;if(e.globalVersion=_e,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!he(e)))return;e.flags|=2;const t=e.dep,n=te,o=ye;te=e,ye=!0;try{fe(e);const n=e.fn(e._value);(0===t.version||N(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(r){throw t.version++,r}finally{te=n,ye=o,ve(e),e.flags&=-3}}function ge(e,t=!1){const{dep:n,prevSub:o,nextSub:r}=e;if(o&&(o.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ge(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function be(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ye=!0;const we=[];function xe(){we.push(ye),ye=!1}function Ce(){const e=we.pop();ye=void 0===e||e}function Se(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const e=te;te=void 0;try{t()}finally{te=e}}}let _e=0;class ke{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ee{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!te||!ye||te===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==te)t=this.activeLink=new ke(te,this),te.deps?(t.prevDep=te.depsTail,te.depsTail.nextDep=t,te.depsTail=t):te.deps=te.depsTail=t,Ae(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){const e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=te.depsTail,t.nextDep=void 0,te.depsTail.nextDep=t,te.depsTail=t,te.deps===t&&(te.deps=e)}return t}trigger(e){this.version++,_e++,this.notify(e)}notify(e){de();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{pe()}}}function Ae(e){if(e.dep.sc++,4&e.sub.flags){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Ae(e)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Oe=new WeakMap,Te=Symbol(""),Me=Symbol(""),Le=Symbol("");function Re(e,t,n){if(ye&&te){let t=Oe.get(e);t||Oe.set(e,t=new Map);let o=t.get(n);o||(t.set(n,o=new Ee),o.map=t,o.key=n),o.track()}}function Ie(e,t,n,o,r,l){const a=Oe.get(e);if(!a)return void _e++;const s=e=>{e&&e.trigger()};if(de(),"clear"===t)a.forEach(s);else{const r=f(e),l=r&&k(n);if(r&&"length"===n){const e=Number(o);a.forEach((t,n)=>{("length"===n||n===Le||!y(n)&&n>=e)&&s(t)})}else switch((void 0!==n||a.has(void 0))&&s(a.get(n)),l&&s(a.get(Le)),t){case"add":r?l&&s(a.get("length")):(s(a.get(Te)),v(e)&&s(a.get(Me)));break;case"delete":r||(s(a.get(Te)),v(e)&&s(a.get(Me)));break;case"set":v(e)&&s(a.get(Te))}}pe()}function Ne(e){const t=wt(e);return t===e?t:(Re(t,0,Le),bt(e)?t:t.map(Ct))}function Be(e){return Re(e=wt(e),0,Le),e}function je(e,t){return gt(e)?mt(e)?St(Ct(t)):St(t):Ct(t)}const Pe={__proto__:null,[Symbol.iterator](){return Fe(this,Symbol.iterator,e=>je(this,e))},concat(...e){return Ne(this).concat(...e.map(e=>f(e)?Ne(e):e))},entries(){return Fe(this,"entries",e=>(e[1]=je(this,e[1]),e))},every(e,t){return De(this,"every",e,t,void 0,arguments)},filter(e,t){return De(this,"filter",e,t,e=>e.map(e=>je(this,e)),arguments)},find(e,t){return De(this,"find",e,t,e=>je(this,e),arguments)},findIndex(e,t){return De(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return De(this,"findLast",e,t,e=>je(this,e),arguments)},findLastIndex(e,t){return De(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return De(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ve(this,"includes",e)},indexOf(...e){return Ve(this,"indexOf",e)},join(e){return Ne(this).join(e)},lastIndexOf(...e){return Ve(this,"lastIndexOf",e)},map(e,t){return De(this,"map",e,t,void 0,arguments)},pop(){return He(this,"pop")},push(...e){return He(this,"push",e)},reduce(e,...t){return ze(this,"reduce",e,t)},reduceRight(e,...t){return ze(this,"reduceRight",e,t)},shift(){return He(this,"shift")},some(e,t){return De(this,"some",e,t,void 0,arguments)},splice(...e){return He(this,"splice",e)},toReversed(){return Ne(this).toReversed()},toSorted(e){return Ne(this).toSorted(e)},toSpliced(...e){return Ne(this).toSpliced(...e)},unshift(...e){return He(this,"unshift",e)},values(){return Fe(this,"values",e=>je(this,e))}};function Fe(e,t,n){const o=Be(e),r=o[t]();return o===e||bt(e)||(r._next=r.next,r.next=()=>{const e=r._next();return e.done||(e.value=n(e.value)),e}),r}const $e=Array.prototype;function De(e,t,n,o,r,l){const a=Be(e),s=a!==e&&!bt(e),i=a[t];if(i!==$e[t]){const t=i.apply(e,l);return s?Ct(t):t}let u=n;a!==e&&(s?u=function(t,o){return n.call(this,je(e,t),o,e)}:n.length>2&&(u=function(t,o){return n.call(this,t,o,e)}));const c=i.call(a,u,o);return s&&r?r(c):c}function ze(e,t,n,o){const r=Be(e);let l=n;return r!==e&&(bt(e)?n.length>3&&(l=function(t,o,r){return n.call(this,t,o,r,e)}):l=function(t,o,r){return n.call(this,t,je(e,o),r,e)}),r[t](l,...o)}function Ve(e,t,n){const o=wt(e);Re(o,0,Le);const r=o[t](...n);return-1!==r&&!1!==r||!yt(n[0])?r:(n[0]=wt(n[0]),o[t](...n))}function He(e,t,n=[]){xe(),de();const o=wt(e)[t].apply(e,n);return pe(),Ce(),o}const We=n("__proto__,__v_isRef,__isVue"),Ue=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(y));function Ke(e){y(e)||(e=String(e));const t=wt(this);return Re(t,0,e),t.hasOwnProperty(e)}class qe{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;const o=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(o?r?ct:ut:r?it:st).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const l=f(e);if(!o){let e;if(l&&(e=Pe[t]))return e;if("hasOwnProperty"===t)return Ke}const a=Reflect.get(e,t,_t(e)?e:n);if(y(t)?Ue.has(t):We(t))return a;if(o||Re(e,0,t),r)return a;if(_t(a)){const e=l&&k(t)?a:a.value;return o&&w(e)?vt(e):e}return w(a)?o?vt(a):pt(a):a}}class Ge extends qe{constructor(e=!1){super(!1,e)}set(e,t,n,o){let r=e[t];const l=f(e)&&k(t);if(!this._isShallow){const e=gt(r);if(bt(n)||gt(n)||(r=wt(r),n=wt(n)),!l&&_t(r)&&!_t(n))return e||(r.value=n),!0}const a=l?Number(t)e,et=e=>Reflect.getPrototypeOf(e);function tt(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function nt(e,t){const n={get(n){const o=this.__v_raw,r=wt(o),l=wt(n);e||(N(n,l)&&Re(r,0,n),Re(r,0,l));const{has:a}=et(r),s=t?Qe:e?St:Ct;return a.call(r,n)?s(o.get(n)):a.call(r,l)?s(o.get(l)):void(o!==r&&o.get(n))},get size(){const t=this.__v_raw;return!e&&Re(wt(t),0,Te),t.size},has(t){const n=this.__v_raw,o=wt(n),r=wt(t);return e||(N(t,r)&&Re(o,0,t),Re(o,0,r)),t===r?n.has(t):n.has(t)||n.has(r)},forEach(n,o){const r=this,l=r.__v_raw,a=wt(l),s=t?Qe:e?St:Ct;return!e&&Re(a,0,Te),l.forEach((e,t)=>n.call(o,s(e),s(t),r))}};return u(n,e?{add:tt("add"),set:tt("set"),delete:tt("delete"),clear:tt("clear")}:{add(e){t||bt(e)||gt(e)||(e=wt(e));const n=wt(this);return et(n).has.call(n,e)||(n.add(e),Ie(n,"add",e,e)),this},set(e,n){t||bt(n)||gt(n)||(n=wt(n));const o=wt(this),{has:r,get:l}=et(o);let a=r.call(o,e);a||(e=wt(e),a=r.call(o,e));const s=l.call(o,e);return o.set(e,n),a?N(n,s)&&Ie(o,"set",e,n):Ie(o,"add",e,n),this},delete(e){const t=wt(this),{has:n,get:o}=et(t);let r=n.call(t,e);r||(e=wt(e),r=n.call(t,e)),o&&o.call(t,e);const l=t.delete(e);return r&&Ie(t,"delete",e,void 0),l},clear(){const e=wt(this),t=0!==e.size,n=e.clear();return t&&Ie(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=function(e,t,n){return function(...o){const r=this.__v_raw,l=wt(r),a=v(l),s="entries"===e||e===Symbol.iterator&&a,i="keys"===e&&a,u=r[e](...o),c=n?Qe:t?St:Ct;return!t&&Re(l,0,i?Me:Te),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}(o,e,t)}),n}function ot(e,t){const n=nt(e,t);return(t,o,r)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(p(n,o)&&o in t?n:t,o,r)}const rt={get:ot(!1,!1)},lt={get:ot(!1,!0)},at={get:ot(!0,!1)},st=new WeakMap,it=new WeakMap,ut=new WeakMap,ct=new WeakMap;function dt(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>S(e).slice(8,-1))(e))}function pt(e){return gt(e)?e:ht(e,!1,Xe,rt,st)}function ft(e){return ht(e,!1,Je,lt,it)}function vt(e){return ht(e,!0,Ze,at,ut)}function ht(e,t,n,o,r){if(!w(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const l=dt(e);if(0===l)return e;const a=r.get(e);if(a)return a;const s=new Proxy(e,2===l?o:n);return r.set(e,s),s}function mt(e){return gt(e)?mt(e.__v_raw):!(!e||!e.__v_isReactive)}function gt(e){return!(!e||!e.__v_isReadonly)}function bt(e){return!(!e||!e.__v_isShallow)}function yt(e){return!!e&&!!e.__v_raw}function wt(e){const t=e&&e.__v_raw;return t?wt(t):e}function xt(e){return!p(e,"__v_skip")&&Object.isExtensible(e)&&j(e,"__v_skip",!0),e}const Ct=e=>w(e)?pt(e):e,St=e=>w(e)?vt(e):e;function _t(e){return!!e&&!0===e.__v_isRef}function kt(e){return At(e,!1)}function Et(e){return At(e,!0)}function At(e,t){return _t(e)?e:new Ot(e,t)}class Ot{constructor(e,t){this.dep=new Ee,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:wt(e),this._value=t?e:Ct(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,n=this.__v_isShallow||bt(e)||gt(e);e=n?e:wt(e),N(e,t)&&(this._rawValue=e,this._value=n?e:Ct(e),this.dep.trigger())}}function Tt(e){return _t(e)?e.value:e}function Mt(e){return g(e)?e():Tt(e)}const Lt={get:(e,t,n)=>"__v_raw"===t?e:Tt(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return _t(r)&&!_t(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function Rt(e){return mt(e)?e:new Proxy(e,Lt)}class It{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new Ee,{get:n,set:o}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Nt(e){const t=f(e)?new Array(e.length):{};for(const n in e)t[n]=Ft(e,n);return t}class Bt{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=wt(e);let o=!0,r=e;if(!f(e)||!k(String(t)))do{o=!yt(r)||bt(r)}while(o&&(r=r.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=Tt(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&_t(this._raw[this._key])){const t=this._object[this._key];if(_t(t))return void(t.value=e)}this._object[this._key]=e}get dep(){return function(e,t){const n=Oe.get(e);return n&&n.get(t)}(this._raw,this._key)}}class jt{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Pt(e,t,n){return _t(e)?e:g(e)?new jt(e):w(e)&&arguments.length>1?Ft(e,t,n):kt(e)}function Ft(e,t,n){return new Bt(e,t,n)}class $t{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ee(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=_e-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&te!==this)return ce(this,!0),!0}get value(){const e=this.dep.track();return me(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}const Dt={},zt=new WeakMap;let Vt;function Ht(e,t,n=o){const{immediate:r,deep:a,once:s,scheduler:i,augmentJob:u,call:d}=n,p=e=>a?e:bt(e)||!1===a||0===a?Wt(e,1):Wt(e);let v,h,m,b,y=!1,w=!1;if(_t(e)?(h=()=>e.value,y=bt(e)):mt(e)?(h=()=>p(e),y=!0):f(e)?(w=!0,y=e.some(e=>mt(e)||bt(e)),h=()=>e.map(e=>_t(e)?e.value:mt(e)?p(e):g(e)?d?d(e,2):e():void 0)):h=g(e)?t?d?()=>d(e,2):e:()=>{if(m){xe();try{m()}finally{Ce()}}const t=Vt;Vt=v;try{return d?d(e,3,[b]):e(b)}finally{Vt=t}}:l,t&&a){const e=h,t=!0===a?1/0:a;h=()=>Wt(e(),t)}const x=oe(),C=()=>{v.stop(),x&&x.active&&c(x.effects,v)};if(s&&t){const e=t;t=(...t)=>{e(...t),C()}}let S=w?new Array(e.length).fill(Dt):Dt;const _=e=>{if(1&v.flags&&(v.dirty||e))if(t){const e=v.run();if(a||y||(w?e.some((e,t)=>N(e,S[t])):N(e,S))){m&&m();const n=Vt;Vt=v;try{const n=[e,S===Dt?void 0:w&&S[0]===Dt?[]:S,b];S=e,d?d(t,3,n):t(...n)}finally{Vt=n}}}else v.run()};return u&&u(_),v=new ae(h),v.scheduler=i?()=>i(_,!1):_,b=e=>function(e,t=!1,n=Vt){if(n){let t=zt.get(n);t||zt.set(n,t=[]),t.push(e)}}(e,!1,v),m=v.onStop=()=>{const e=zt.get(v);if(e){if(d)d(e,4);else for(const t of e)t();zt.delete(v)}},t?r?_(!0):S=v.run():i?i(_.bind(null,!0),!0):v.run(),C.pause=v.pause.bind(v),C.resume=v.resume.bind(v),C.stop=C,C}function Wt(e,t=1/0,n){if(t<=0||!w(e)||e.__v_skip)return e;if(((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,_t(e))Wt(e.value,t,n);else if(f(e))for(let o=0;o{Wt(e,t,n)});else if(_(e)){for(const o in e)Wt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Wt(e[o],t,n)}return e}function Ut(e,t,n,o){try{return o?e(...o):e()}catch(r){qt(r,t,n)}}function Kt(e,t,n,o){if(g(e)){const r=Ut(e,t,n,o);return r&&x(r)&&r.catch(e=>{qt(e,t,n)}),r}if(f(e)){const r=[];for(let l=0;l=an(n)?Gt.push(e):Gt.splice(function(e){let t=Yt+1,n=Gt.length;for(;t>>1,r=Gt[o],l=an(r);lan(e)-an(t));if(Xt.length=0,Zt)return void Zt.push(...e);for(Zt=e,Jt=0;Jtnull==e.id?2&e.flags?-1:1/0:e.id;function sn(e){try{for(Yt=0;Yt{o._d&&jr(-1);const r=dn(t);let l;try{l=e(...n)}finally{dn(r),o._d&&jr(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function fn(e,t){if(null===un)return e;const n=vl(un),r=e.dirs||(e.dirs=[]);for(let l=0;l1)return n&&g(t)?t.call(o&&o.proxy):t}}function gn(){return!(!ol()&&!Xo)}const bn=Symbol.for("v-scx");function yn(e,t){return xn(e,null,t)}function wn(e,t,n){return xn(e,t,n)}function xn(e,t,n=o){const{immediate:r,deep:a,flush:s,once:i}=n,c=u({},n),d=t&&r||!t&&"post"!==s;let p;if(ul)if("sync"===s){const e=mn(bn);p=e.__watcherHandles||(e.__watcherHandles=[])}else if(!d){const e=()=>{};return e.stop=l,e.resume=l,e.pause=l,e}const f=nl;c.call=(e,t,n)=>Kt(e,f,t,n);let v=!1;"post"===s?c.scheduler=e=>{yr(e,f&&f.suspense)}:"sync"!==s&&(v=!0,c.scheduler=(e,t)=>{t?e():nn(e)}),c.augmentJob=e=>{t&&(e.flags|=4),v&&(e.flags|=2,f&&(e.id=f.uid,e.i=f))};const h=Ht(e,t,c);return ul&&(p?p.push(h):d&&h()),h}function Cn(e,t,n){const o=this.proxy,r=b(e)?e.includes(".")?Sn(o,e):()=>o[e]:e.bind(o,o);let l;g(t)?l=t:(l=t.handler,n=t);const a=al(this),s=xn(r,l.bind(o),n);return a(),s}function Sn(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;ee.__isTeleport,En=e=>e&&(e.disabled||""===e.disabled),An=e=>e&&(e.defer||""===e.defer),On=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,Tn=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,Mn=(e,t)=>{const n=e&&e.to;return b(n)?t?t(n):null:n},Ln={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,l,a,s,i,u){const{mc:c,pc:d,pbc:p,o:{insert:f,querySelector:v,createText:h,createComment:m}}=u,g=En(t.props);let{shapeFlag:b,children:y,dynamicChildren:w}=t;if(null==e){const e=t.el=h(""),u=t.anchor=h("");f(e,n,o),f(u,n,o);const d=(e,t)=>{16&b&&c(y,e,t,r,l,a,s,i)},p=()=>{const e=t.target=Mn(t.props,v),n=Bn(e,t,h,f);e&&("svg"!==a&&On(e)?a="svg":"mathml"!==a&&Tn(e)&&(a="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(e),g||(d(e,n),Nn(t,!1)))};g&&(d(n,u),Nn(t,!0)),An(t.props)?(t.el.__isMounted=!1,yr(()=>{p(),delete t.el.__isMounted},l)):p()}else{if(An(t.props)&&!1===e.el.__isMounted)return void yr(()=>{Ln.process(e,t,n,o,r,l,a,s,i,u)},l);t.el=e.el,t.targetStart=e.targetStart;const c=t.anchor=e.anchor,f=t.target=e.target,h=t.targetAnchor=e.targetAnchor,m=En(e.props),b=m?n:f,y=m?c:h;if("svg"===a||On(f)?a="svg":("mathml"===a||Tn(f))&&(a="mathml"),w?(p(e.dynamicChildren,w,b,r,l,a,s),Sr(e,t,!0)):i||d(e,t,b,y,r,l,a,s,!1),g)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Rn(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=Mn(t.props,v);e&&Rn(t,e,null,u,0)}else m&&Rn(t,f,h,u,1);Nn(t,g)}},remove(e,t,n,{um:o,o:{remove:r}},l){const{shapeFlag:a,children:s,anchor:i,targetStart:u,targetAnchor:c,target:d,props:p}=e;if(d&&(r(u),r(c)),l&&r(i),16&a){const e=l||!En(p);for(let r=0;r{const t=e.subTree;return t.component?Dn(t.component):t};function zn(e){let t=e[0];if(e.length>1)for(const n of e)if(n.type!==Mr){t=n;break}return t}const Vn={name:"BaseTransition",props:$n,setup(e,{slots:t}){const n=ol(),o=function(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return uo(()=>{e.isMounted=!0}),fo(()=>{e.isUnmounting=!0}),e}();return()=>{const r=t.default&&Gn(t.default(),!0);if(!r||!r.length)return;const l=zn(r),a=wt(e),{mode:s}=a;if(o.isLeaving)return Un(l);const i=Kn(l);if(!i)return Un(l);let u=Wn(i,a,o,n,e=>u=e);i.type!==Mr&&qn(i,u);let c=n.subTree&&Kn(n.subTree);if(c&&c.type!==Mr&&!zr(c,i)&&Dn(n).type!==Mr){let e=Wn(c,a,o,n);if(qn(c,e),"out-in"===s&&i.type!==Mr)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},Un(l);"in-out"===s&&i.type!==Mr?e.delayLeave=(e,t,n)=>{Hn(o,c)[String(c.key)]=c,e[jn]=()=>{t(),e[jn]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return l}}};function Hn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Wn(e,t,n,o,r){const{appear:l,mode:a,persisted:s=!1,onBeforeEnter:i,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:p,onLeave:v,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:b,onAfterAppear:y,onAppearCancelled:w}=t,x=String(e.key),C=Hn(n,e),S=(e,t)=>{e&&Kt(e,o,9,t)},_=(e,t)=>{const n=t[1];S(e,t),f(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:a,persisted:s,beforeEnter(t){let o=i;if(!n.isMounted){if(!l)return;o=g||i}t[jn]&&t[jn](!0);const r=C[x];r&&zr(e,r)&&r.el[jn]&&r.el[jn](),S(o,[t])},enter(e){let t=u,o=c,r=d;if(!n.isMounted){if(!l)return;t=b||u,o=y||c,r=w||d}let a=!1;const s=e[Pn]=t=>{a||(a=!0,S(t?r:o,[e]),k.delayedLeave&&k.delayedLeave(),e[Pn]=void 0)};t?_(t,[e,s]):s()},leave(t,o){const r=String(e.key);if(t[Pn]&&t[Pn](!0),n.isUnmounting)return o();S(p,[t]);let l=!1;const a=t[jn]=n=>{l||(l=!0,o(),S(n?m:h,[t]),t[jn]=void 0,C[r]===e&&delete C[r])};C[r]=e,v?_(v,[t,a]):a()},clone(e){const l=Wn(e,t,n,o,r);return r&&r(l),l}};return k}function Un(e){if(to(e))return(e=Kr(e)).children=null,e}function Kn(e){if(!to(e))return kn(e.type)&&e.children?zn(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&g(n.default))return n.default()}}function qn(e,t){6&e.shapeFlag&&e.component?(e.transition=t,qn(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Gn(e,t=!1,n){let o=[],r=0;for(let l=0;l1)for(let l=0;lu({name:e.name},t,{setup:e}))():e}function Xn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Zn=new WeakMap;function Jn(e,t,n,r,l=!1){if(f(e))return void e.forEach((e,o)=>Jn(e,t&&(f(t)?t[o]:t),n,r,l));if(eo(r)&&!l)return void(512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&Jn(e,t,n,r.component.subTree));const s=4&r.shapeFlag?vl(r.component):r.el,i=l?null:s,{i:u,r:d}=e,v=t&&t.r,h=u.refs===o?u.refs={}:u.refs,m=u.setupState,y=wt(m),w=m===o?a:e=>p(y,e);if(null!=v&&v!==d)if(Qn(t),b(v))h[v]=null,w(v)&&(m[v]=null);else if(_t(v)){v.value=null;const e=t;e.k&&(h[e.k]=null)}if(g(d))Ut(d,u,12,[i,h]);else{const t=b(d),o=_t(d);if(t||o){const r=()=>{if(e.f){const n=t?w(d)?m[d]:h[d]:d.value;if(l)f(n)&&c(n,s);else if(f(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],w(d)&&(m[d]=h[d]);else{const t=[s];d.value=t,e.k&&(h[e.k]=t)}}else t?(h[d]=i,w(d)&&(m[d]=i)):o&&(d.value=i,e.k&&(h[e.k]=i))};if(i){const t=()=>{r(),Zn.delete(e)};t.id=-1,Zn.set(e,t),yr(t,n)}else Qn(e),r()}}}function Qn(e){const t=Zn.get(e);t&&(t.flags|=8,Zn.delete(e))}$().requestIdleCallback,$().cancelIdleCallback;const eo=e=>!!e.type.__asyncLoader,to=e=>e.type.__isKeepAlive;function no(e,t){ro(e,"a",t)}function oo(e,t){ro(e,"da",t)}function ro(e,t,n=nl){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(ao(t,o,n),n){let e=n.parent;for(;e&&e.parent;)to(e.parent.vnode)&&lo(o,t,n,e),e=e.parent}}function lo(e,t,n,o){const r=ao(t,e,o,!0);vo(()=>{c(o[t],r)},n)}function ao(e,t,n=nl,o=!1){if(n){const r=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...o)=>{xe();const r=al(n),l=Kt(t,n,e,o);return r(),Ce(),l});return o?r.unshift(l):r.push(l),l}}const so=e=>(t,n=nl)=>{ul&&"sp"!==e||ao(e,(...e)=>t(...e),n)},io=so("bm"),uo=so("m"),co=so("bu"),po=so("u"),fo=so("bum"),vo=so("um"),ho=so("sp"),mo=so("rtg"),go=so("rtc");function bo(e,t=nl){ao("ec",e,t)}const yo="components";function wo(e,t){return So(yo,e,!0,t)||e}const xo=Symbol.for("v-ndc");function Co(e){return b(e)?So(yo,e,!1)||e:e||xo}function So(e,t,n=!0,o=!1){const r=un||nl;if(r){const n=r.type;if(e===yo){const e=hl(n,!1);if(e&&(e===t||e===T(t)||e===R(T(t))))return n}const l=_o(r[e]||n[e],t)||_o(r.appContext[e],t);return!l&&o?n:l}}function _o(e,t){return e&&(e[t]||e[T(t)]||e[R(T(t))])}function ko(e,t,n,o){let r;const l=n,a=f(e);if(a||b(e)){let n=!1,o=!1;a&&mt(e)&&(n=!bt(e),o=gt(e),e=Be(e)),r=new Array(e.length);for(let a=0,s=e.length;at(e,n,void 0,l));else{const n=Object.keys(e);r=new Array(n.length);for(let o=0,a=n.length;o0;return"default"!==t&&(n.name=t),Nr(),$r(Or,null,[Ur("slot",n,o&&o())],e?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),Nr();const a=l&&Ao(l(n)),s=n.key||a&&a.key,i=$r(Or,{key:(s&&!y(s)?s:`_${t}`)+(!a&&o?"_fb":"")},a||(o?o():[]),a&&1===e._?64:-2);return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),l&&l._c&&(l._d=!0),i}function Ao(e){return e.some(e=>!Dr(e)||e.type!==Mr&&!(e.type===Or&&!Ao(e.children)))?e:null}const Oo=e=>e?il(e)?vl(e):Oo(e.parent):null,To=u(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Oo(e.parent),$root:e=>Oo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>$o(e),$forceUpdate:e=>e.f||(e.f=()=>{nn(e.update)}),$nextTick:e=>e.n||(e.n=tn.bind(e.proxy)),$watch:e=>Cn.bind(e)}),Mo=(e,t)=>e!==o&&!e.__isScriptSetup&&p(e,t),Lo={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:r,data:l,props:a,accessCache:s,type:i,appContext:u}=e;if("$"!==t[0]){const e=s[t];if(void 0!==e)switch(e){case 1:return r[t];case 2:return l[t];case 4:return n[t];case 3:return a[t]}else{if(Mo(r,t))return s[t]=1,r[t];if(l!==o&&p(l,t))return s[t]=2,l[t];if(p(a,t))return s[t]=3,a[t];if(n!==o&&p(n,t))return s[t]=4,n[t];Bo&&(s[t]=0)}}const c=To[t];let d,f;return c?("$attrs"===t&&Re(e.attrs,0,""),c(e)):(d=i.__cssModules)&&(d=d[t])?d:n!==o&&p(n,t)?(s[t]=4,n[t]):(f=u.config.globalProperties,p(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:r,setupState:l,ctx:a}=e;return Mo(l,t)?(l[t]=n,!0):r!==o&&p(r,t)?(r[t]=n,!0):!(p(e.props,t)||"$"===t[0]&&t.slice(1)in e||(a[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:l,props:a,type:s}},i){let u;return!!(n[i]||e!==o&&"$"!==i[0]&&p(e,i)||Mo(t,i)||p(a,i)||p(r,i)||p(To,i)||p(l.config.globalProperties,i)||(u=s.__cssModules)&&u[i])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:p(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ro(){return Io().slots}function Io(e){const t=ol();return t.setupContext||(t.setupContext=fl(t))}function No(e){return f(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let Bo=!0;function jo(e){const t=$o(e),n=e.proxy,o=e.ctx;Bo=!1,t.beforeCreate&&Po(t.beforeCreate,e,"bc");const{data:r,computed:a,methods:s,watch:i,provide:u,inject:c,created:d,beforeMount:p,mounted:v,beforeUpdate:h,updated:m,activated:b,deactivated:y,beforeDestroy:x,beforeUnmount:C,destroyed:S,unmounted:_,render:k,renderTracked:E,renderTriggered:A,errorCaptured:O,serverPrefetch:T,expose:M,inheritAttrs:L,components:R,directives:I,filters:N}=t;if(c&&function(e,t){f(e)&&(e=Ho(e));for(const n in e){const o=e[n];let r;r=w(o)?"default"in o?mn(o.from||n,o.default,!0):mn(o.from||n):mn(o),_t(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,o),s)for(const l in s){const e=s[l];g(e)&&(o[l]=e.bind(n))}if(r){const t=r.call(n,n);w(t)&&(e.data=pt(t))}if(Bo=!0,a)for(const f in a){const e=a[f],t=g(e)?e.bind(n,n):g(e.get)?e.get.bind(n,n):l,r=!g(e)&&g(e.set)?e.set.bind(n):l,s=ml({get:t,set:r});Object.defineProperty(o,f,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(i)for(const l in i)Fo(i[l],o,n,l);if(u){const e=g(u)?u.call(n):u;Reflect.ownKeys(e).forEach(t=>{hn(t,e[t])})}function B(e,t){f(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(d&&Po(d,e,"c"),B(io,p),B(uo,v),B(co,h),B(po,m),B(no,b),B(oo,y),B(bo,O),B(go,E),B(mo,A),B(fo,C),B(vo,_),B(ho,T),f(M))if(M.length){const t=e.exposed||(e.exposed={});M.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===l&&(e.render=k),null!=L&&(e.inheritAttrs=L),R&&(e.components=R),I&&(e.directives=I),T&&Xn(e)}function Po(e,t,n){Kt(f(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Fo(e,t,n,o){let r=o.includes(".")?Sn(n,o):()=>n[o];if(b(e)){const n=t[e];g(n)&&wn(r,n)}else if(g(e))wn(r,e.bind(n));else if(w(e))if(f(e))e.forEach(e=>Fo(e,t,n,o));else{const o=g(e.handler)?e.handler.bind(n):t[e.handler];g(o)&&wn(r,o,e)}}function $o(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:l,config:{optionMergeStrategies:a}}=e.appContext,s=l.get(t);let i;return s?i=s:r.length||n||o?(i={},r.length&&r.forEach(e=>Do(i,e,a,!0)),Do(i,t,a)):i=t,w(t)&&l.set(t,i),i}function Do(e,t,n,o=!1){const{mixins:r,extends:l}=t;l&&Do(e,l,n,!0),r&&r.forEach(t=>Do(e,t,n,!0));for(const a in t)if(o&&"expose"===a);else{const o=zo[a]||n&&n[a];e[a]=o?o(e[a],t[a]):t[a]}return e}const zo={data:Vo,props:Ko,emits:Ko,methods:Uo,computed:Uo,beforeCreate:Wo,created:Wo,beforeMount:Wo,mounted:Wo,beforeUpdate:Wo,updated:Wo,beforeDestroy:Wo,beforeUnmount:Wo,destroyed:Wo,unmounted:Wo,activated:Wo,deactivated:Wo,errorCaptured:Wo,serverPrefetch:Wo,components:Uo,directives:Uo,watch:function(e,t){if(!e)return t;if(!t)return e;const n=u(Object.create(null),e);for(const o in t)n[o]=Wo(e[o],t[o]);return n},provide:Vo,inject:function(e,t){return Uo(Ho(e),Ho(t))}};function Vo(e,t){return t?e?function(){return u(g(e)?e.call(this,this):e,g(t)?t.call(this,this):t)}:t:e}function Ho(e){if(f(e)){const t={};for(let n=0;n(r.has(e)||(e&&g(e.install)?(r.add(e),e.install(s,...t)):g(e)&&(r.add(e),e(s,...t))),s),mixin:e=>(o.mixins.includes(e)||o.mixins.push(e),s),component:(e,t)=>t?(o.components[e]=t,s):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,s):o.directives[e],mount(r,l,i){if(!a){const l=s._ceVNode||Ur(t,n);return l.appContext=o,!0===i?i="svg":!1===i&&(i=void 0),e(l,r,i),a=!0,s._container=r,r.__vue_app__=s,vl(l.component)}},onUnmount(e){l.push(e)},unmount(){a&&(Kt(l,s._instance,16),e(null,s._container),delete s._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,s),runWithContext(e){const t=Xo;Xo=s;try{return e()}finally{Xo=t}}};return s}}let Xo=null;function Zo(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||o;let l=n;const a=t.startsWith("update:"),s=a&&((e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${T(t)}Modifiers`]||e[`${L(t)}Modifiers`])(r,t.slice(7));let i;s&&(s.trim&&(l=n.map(e=>b(e)?e.trim():e)),s.number&&(l=n.map(P)));let u=r[i=I(t)]||r[i=I(T(t))];!u&&a&&(u=r[i=I(L(t))]),u&&Kt(u,e,6,l);const c=r[i+"Once"];if(c){if(e.emitted){if(e.emitted[i])return}else e.emitted={};e.emitted[i]=!0,Kt(c,e,6,l)}}const Jo=new WeakMap;function Qo(e,t,n=!1){const o=n?Jo:t.emitsCache,r=o.get(e);if(void 0!==r)return r;const l=e.emits;let a={},s=!1;if(!g(e)){const o=e=>{const n=Qo(e,t,!0);n&&(s=!0,u(a,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return l||s?(f(l)?l.forEach(e=>a[e]=null):u(a,l),w(e)&&o.set(e,a),a):(w(e)&&o.set(e,null),null)}function er(e,t){return!(!e||!s(t))&&(t=t.slice(2).replace(/Once$/,""),p(e,t[0].toLowerCase()+t.slice(1))||p(e,L(t))||p(e,t))}function tr(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[l],slots:a,attrs:s,emit:u,render:c,renderCache:d,props:p,data:f,setupState:v,ctx:h,inheritAttrs:m}=e,g=dn(e);let b,y;try{if(4&n.shapeFlag){const e=r||o,t=e;b=Yr(c.call(t,e,d,p,v,f,h)),y=s}else{const e=t;b=Yr(e.length>1?e(p,{attrs:s,slots:a,emit:u}):e(p,null)),y=t.props?s:nr(s)}}catch(x){Rr.length=0,qt(x,e,1),b=Ur(Mr)}let w=b;if(y&&!1!==m){const e=Object.keys(y),{shapeFlag:t}=w;e.length&&7&t&&(l&&e.some(i)&&(y=or(y,l)),w=Kr(w,y,!1,!0))}return n.dirs&&(w=Kr(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&qn(w,n.transition),b=w,dn(g),b}const nr=e=>{let t;for(const n in e)("class"===n||"style"===n||s(n))&&((t||(t={}))[n]=e[n]);return t},or=(e,t)=>{const n={};for(const o in e)i(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function rr(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;rObject.create(lr),sr=e=>Object.getPrototypeOf(e)===lr;function ir(e,t,n,r){const[l,a]=e.propsOptions;let s,i=!1;if(t)for(let o in t){if(E(o))continue;const u=t[o];let c;l&&p(l,c=T(o))?a&&a.includes(c)?(s||(s={}))[c]=u:n[c]=u:er(e.emitsOptions,o)||o in r&&u===r[o]||(r[o]=u,i=!0)}if(a){const t=wt(n),r=s||o;for(let o=0;o{d=!0;const[n,o]=dr(e,t,!0);u(i,n),o&&c.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!d)return w(e)&&l.set(e,r),r;if(f(s))for(let r=0;r"_"===e||"_ctx"===e||"$stable"===e,vr=e=>f(e)?e.map(Yr):[Yr(e)],hr=(e,t,n)=>{if(t._n)return t;const o=pn((...e)=>vr(t(...e)),n);return o._c=!1,o},mr=(e,t,n)=>{const o=e._ctx;for(const r in e){if(fr(r))continue;const n=e[r];if(g(n))t[r]=hr(0,n,o);else if(null!=n){const e=vr(n);t[r]=()=>e}}},gr=(e,t)=>{const n=vr(t);e.slots.default=()=>n},br=(e,t,n)=>{for(const o in t)!n&&fr(o)||(e[o]=t[o])},yr=function(e,t){var n;t&&t.pendingBranch?f(e)?t.effects.push(...e):t.effects.push(e):(f(n=e)?Xt.push(...n):Zt&&-1===n.id?Zt.splice(Jt+1,0,n):1&n.flags||(Xt.push(n),n.flags|=1),on())};function wr(e){return function(e){$().__VUE__=!0;const{insert:t,remove:n,patchProp:a,createElement:s,createText:i,createComment:u,setText:c,setElementText:d,parentNode:f,nextSibling:v,setScopeId:h=l,insertStaticContent:m}=e,g=(e,t,n,o=null,r=null,l=null,a=void 0,s=null,i=!!t.dynamicChildren)=>{if(e===t)return;e&&!zr(e,t)&&(o=J(e),q(e,r,l,!0),e=null),-2===t.patchFlag&&(i=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:d}=t;switch(u){case Tr:b(e,t,n,o);break;case Mr:y(e,t,n,o);break;case Lr:null==e&&w(t,n,o,a);break;case Or:N(e,t,n,o,r,l,a,s,i);break;default:1&d?_(e,t,n,o,r,l,a,s,i):6&d?P(e,t,n,o,r,l,a,s,i):(64&d||128&d)&&u.process(e,t,n,o,r,l,a,s,i,te)}null!=c&&r?Jn(c,e&&e.ref,l,t||e,!t):null==c&&e&&null!=e.ref&&Jn(e.ref,null,l,e,!0)},b=(e,n,o,r)=>{if(null==e)t(n.el=i(n.children),o,r);else{const t=n.el=e.el;n.children!==e.children&&c(t,n.children)}},y=(e,n,o,r)=>{null==e?t(n.el=u(n.children||""),o,r):n.el=e.el},w=(e,t,n,o)=>{[e.el,e.anchor]=m(e.children,t,n,o,e.el,e.anchor)},C=({el:e,anchor:n},o,r)=>{let l;for(;e&&e!==n;)l=v(e),t(e,o,r),e=l;t(n,o,r)},S=({el:e,anchor:t})=>{let o;for(;e&&e!==t;)o=v(e),n(e),e=o;n(t)},_=(e,t,n,o,r,l,a,s,i)=>{if("svg"===t.type?a="svg":"math"===t.type&&(a="mathml"),null==e)k(t,n,o,r,l,a,s,i);else{const n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),M(e,t,r,l,a,s,i)}finally{n&&n._endPatch()}}},k=(e,n,o,r,l,i,u,c)=>{let p,f;const{props:v,shapeFlag:h,transition:m,dirs:g}=e;if(p=e.el=s(e.type,i,v&&v.is,v),8&h?d(p,e.children):16&h&&O(e.children,p,null,r,l,xr(e,i),u,c),g&&vn(e,null,r,"created"),A(p,e,e.scopeId,u,r),v){for(const e in v)"value"===e||E(e)||a(p,e,null,v[e],i,r);"value"in v&&a(p,"value",null,v.value,i),(f=v.onVnodeBeforeMount)&&Qr(f,r,e)}g&&vn(e,null,r,"beforeMount");const b=function(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}(l,m);b&&m.beforeEnter(p),t(p,n,o),((f=v&&v.onVnodeMounted)||b||g)&&yr(()=>{f&&Qr(f,r,e),b&&m.enter(p),g&&vn(e,null,r,"mounted")},l)},A=(e,t,n,o,r)=>{if(n&&h(e,n),o)for(let l=0;l{for(let u=i;u{const u=t.el=e.el;let{patchFlag:c,dynamicChildren:p,dirs:f}=t;c|=16&e.patchFlag;const v=e.props||o,h=t.props||o;let m;if(n&&Cr(n,!1),(m=h.onVnodeBeforeUpdate)&&Qr(m,n,t,e),f&&vn(t,e,n,"beforeUpdate"),n&&Cr(n,!0),(v.innerHTML&&null==h.innerHTML||v.textContent&&null==h.textContent)&&d(u,""),p?R(e.dynamicChildren,p,u,n,r,xr(t,l),s):i||H(e,t,u,null,n,r,xr(t,l),s,!1),c>0){if(16&c)I(u,v,h,n,l);else if(2&c&&v.class!==h.class&&a(u,"class",null,h.class,l),4&c&&a(u,"style",v.style,h.style,l),8&c){const e=t.dynamicProps;for(let t=0;t{m&&Qr(m,n,t,e),f&&vn(t,e,n,"updated")},r)},R=(e,t,n,o,r,l,a)=>{for(let s=0;s{if(t!==n){if(t!==o)for(const o in t)E(o)||o in n||a(e,o,t[o],null,l,r);for(const o in n){if(E(o))continue;const s=n[o],i=t[o];s!==i&&"value"!==o&&a(e,o,i,s,l,r)}"value"in n&&a(e,"value",t.value,n.value,l)}},N=(e,n,o,r,l,a,s,u,c)=>{const d=n.el=e?e.el:i(""),p=n.anchor=e?e.anchor:i("");let{patchFlag:f,dynamicChildren:v,slotScopeIds:h}=n;h&&(u=u?u.concat(h):h),null==e?(t(d,o,r),t(p,o,r),O(n.children||[],o,p,l,a,s,u,c)):f>0&&64&f&&v&&e.dynamicChildren&&e.dynamicChildren.length===v.length?(R(e.dynamicChildren,v,o,l,a,s,u),(null!=n.key||l&&n===l.subTree)&&Sr(e,n,!0)):H(e,n,o,p,l,a,s,u,c)},P=(e,t,n,o,r,l,a,s,i)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?r.ctx.activate(t,n,o,a,i):F(t,n,o,r,l,a,i):D(e,t,i)},F=(e,t,n,r,l,a,s)=>{const i=e.component=function(e,t,n){const r=e.type,l=(t?t.appContext:e.appContext)||el,a={uid:tl++,vnode:e,type:r,parent:t,appContext:l,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ne(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(l.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:dr(r,l),emitsOptions:Qo(r,l),emit:null,emitted:null,propsDefaults:o,inheritAttrs:r.inheritAttrs,ctx:o,data:o,props:o,attrs:o,slots:o,refs:o,setupState:o,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=t?t.root:a,a.emit=Zo.bind(null,a),e.ce&&e.ce(a),a}(e,r,l);if(to(e)&&(i.ctx.renderer=te),function(e,t=!1,n=!1){t&&ll(t);const{props:o,children:r}=e.vnode,l=il(e);(function(e,t,n,o=!1){const r={},l=ar();e.propsDefaults=Object.create(null),ir(e,t,r,l);for(const a in e.propsOptions[0])a in r||(r[a]=void 0);n?e.props=o?r:ft(r):e.type.props?e.props=r:e.props=l,e.attrs=l})(e,o,l,t),((e,t,n)=>{const o=e.slots=ar();if(32&e.vnode.shapeFlag){const e=t._;e?(br(o,t,n),n&&j(o,"_",e,!0)):mr(t,o)}else t&&gr(e,t)})(e,r,n||t);l&&function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Lo);const{setup:o}=n;if(o){xe();const n=e.setupContext=o.length>1?fl(e):null,r=al(e),l=Ut(o,e,0,[e.props,n]),a=x(l);if(Ce(),r(),!a&&!e.sp||eo(e)||Xn(e),a){if(l.then(sl,sl),t)return l.then(t=>{cl(e,t)}).catch(t=>{qt(t,e,0)});e.asyncDep=l}else cl(e,l)}else dl(e)}(e,t);t&&ll(!1)}(i,!1,s),i.asyncDep){if(l&&l.registerDep(i,z,s),!e.el){const o=i.subTree=Ur(Mr);y(null,o,t,n),e.placeholder=o.el}}else z(i,e,t,n,l,a,s)},D=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:r,component:l}=e,{props:a,children:s,patchFlag:i}=t,u=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&i>=0))return!(!r&&!s||s&&s.$stable)||o!==a&&(o?!a||rr(o,a,u):!!a);if(1024&i)return!0;if(16&i)return o?rr(o,a,u):!!a;if(8&i){const e=t.dynamicProps;for(let t=0;t{const s=()=>{if(e.isMounted){let{next:t,bu:n,u:o,parent:i,vnode:u}=e;{const n=_r(e);if(n)return t&&(t.el=u.el,V(e,t,a)),void n.asyncDep.then(()=>{e.isUnmounted||s()})}let c,d=t;Cr(e,!1),t?(t.el=u.el,V(e,t,a)):t=u,n&&B(n),(c=t.props&&t.props.onVnodeBeforeUpdate)&&Qr(c,i,t,u),Cr(e,!0);const p=tr(e),v=e.subTree;e.subTree=p,g(v,p,f(v.el),J(v),e,r,l),t.el=p.el,null===d&&function({vnode:e,parent:t},n){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.el=e.el),o!==e)break;(e=t.vnode).el=n,t=t.parent}}(e,p.el),o&&yr(o,r),(c=t.props&&t.props.onVnodeUpdated)&&yr(()=>Qr(c,i,t,u),r)}else{let a;const{el:s,props:i}=t,{bm:u,m:c,parent:d,root:p,type:f}=e,v=eo(t);Cr(e,!1),u&&B(u),!v&&(a=i&&i.onVnodeBeforeMount)&&Qr(a,d,t),Cr(e,!0);{p.ce&&!1!==p.ce._def.shadowRoot&&p.ce._injectChildStyle(f);const a=e.subTree=tr(e);g(null,a,n,o,e,r,l),t.el=a.el}if(c&&yr(c,r),!v&&(a=i&&i.onVnodeMounted)){const e=t;yr(()=>Qr(a,d,e),r)}(256&t.shapeFlag||d&&eo(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&yr(e.a,r),e.isMounted=!0,t=n=o=null}};e.scope.on();const i=e.effect=new ae(s);e.scope.off();const u=e.update=i.run.bind(i),c=e.job=i.runIfDirty.bind(i);c.i=e,c.id=e.uid,i.scheduler=()=>nn(c),Cr(e,!0),u()},V=(e,t,n)=>{t.component=e;const r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:r,attrs:l,vnode:{patchFlag:a}}=e,s=wt(r),[i]=e.propsOptions;let u=!1;if(!(o||a>0)||16&a){let o;ir(e,t,r,l)&&(u=!0);for(const l in s)t&&(p(t,l)||(o=L(l))!==l&&p(t,o))||(i?!n||void 0===n[l]&&void 0===n[o]||(r[l]=ur(i,s,l,void 0,e,!0)):delete r[l]);if(l!==s)for(const e in l)t&&p(t,e)||(delete l[e],u=!0)}else if(8&a){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:r,slots:l}=e;let a=!0,s=o;if(32&r.shapeFlag){const e=t._;e?n&&1===e?a=!1:br(l,t,n):(a=!t.$stable,mr(t,l)),s=t}else t&&(gr(e,t),s={default:1});if(a)for(const o in l)fr(o)||null!=s[o]||delete l[o]})(e,t.children,n),xe(),rn(e),Ce()},H=(e,t,n,o,r,l,a,s,i=!1)=>{const u=e&&e.children,c=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:v}=t;if(f>0){if(128&f)return void U(u,p,n,o,r,l,a,s,i);if(256&f)return void W(u,p,n,o,r,l,a,s,i)}8&v?(16&c&&Z(u,r,l),p!==u&&d(n,p)):16&c?16&v?U(u,p,n,o,r,l,a,s,i):Z(u,r,l,!0):(8&c&&d(n,""),16&v&&O(p,n,o,r,l,a,s,i))},W=(e,t,n,o,l,a,s,i,u)=>{t=t||r;const c=(e=e||r).length,d=t.length,p=Math.min(c,d);let f;for(f=0;fd?Z(e,l,a,!0,!1,p):O(t,n,o,l,a,s,i,u,p)},U=(e,t,n,o,l,a,s,i,u)=>{let c=0;const d=t.length;let p=e.length-1,f=d-1;for(;c<=p&&c<=f;){const o=e[c],r=t[c]=u?Xr(t[c]):Yr(t[c]);if(!zr(o,r))break;g(o,r,n,null,l,a,s,i,u),c++}for(;c<=p&&c<=f;){const o=e[p],r=t[f]=u?Xr(t[f]):Yr(t[f]);if(!zr(o,r))break;g(o,r,n,null,l,a,s,i,u),p--,f--}if(c>p){if(c<=f){const e=f+1,r=ef)for(;c<=p;)q(e[c],l,a,!0),c++;else{const v=c,h=c,m=new Map;for(c=h;c<=f;c++){const e=t[c]=u?Xr(t[c]):Yr(t[c]);null!=e.key&&m.set(e.key,c)}let b,y=0;const w=f-h+1;let x=!1,C=0;const S=new Array(w);for(c=0;c=w){q(o,l,a,!0);continue}let r;if(null!=o.key)r=m.get(o.key);else for(b=h;b<=f;b++)if(0===S[b-h]&&zr(o,t[b])){r=b;break}void 0===r?q(o,l,a,!0):(S[r-h]=c+1,r>=C?C=r:x=!0,g(o,t[r],n,null,l,a,s,i,u),y++)}const _=x?function(e){const t=e.slice(),n=[0];let o,r,l,a,s;const i=e.length;for(o=0;o>1,e[n[s]]0&&(t[o]=n[l-1]),n[l]=o)}}for(l=n.length,a=n[l-1];l-- >0;)n[l]=a,a=t[a];return n}(S):r;for(b=_.length-1,c=w-1;c>=0;c--){const e=h+c,r=t[e],p=t[e+1],f=e+1{const{el:s,type:i,transition:u,children:c,shapeFlag:d}=e;if(6&d)K(e.component.subTree,o,r,l);else if(128&d)e.suspense.move(o,r,l);else if(64&d)i.move(e,o,r,te);else if(i!==Or)if(i!==Lr)if(2!==l&&1&d&&u)if(0===l)u.beforeEnter(s),t(s,o,r),yr(()=>u.enter(s),a);else{const{leave:l,delayLeave:a,afterLeave:i}=u,c=()=>{e.ctx.isUnmounted?n(s):t(s,o,r)},d=()=>{s._isLeaving&&s[jn](!0),l(s,()=>{c(),i&&i()})};a?a(s,c,d):d()}else t(s,o,r);else C(e,o,r);else{t(s,o,r);for(let e=0;e{const{type:l,props:a,ref:s,children:i,dynamicChildren:u,shapeFlag:c,patchFlag:d,dirs:p,cacheIndex:f}=e;if(-2===d&&(r=!1),null!=s&&(xe(),Jn(s,null,n,e,!0),Ce()),null!=f&&(t.renderCache[f]=void 0),256&c)return void t.ctx.deactivate(e);const v=1&c&&p,h=!eo(e);let m;if(h&&(m=a&&a.onVnodeBeforeUnmount)&&Qr(m,t,e),6&c)X(e.component,n,o);else{if(128&c)return void e.suspense.unmount(n,o);v&&vn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,te,o):u&&!u.hasOnce&&(l!==Or||d>0&&64&d)?Z(u,t,n,!1,!0):(l===Or&&384&d||!r&&16&c)&&Z(i,t,n),o&&G(e)}(h&&(m=a&&a.onVnodeUnmounted)||v)&&yr(()=>{m&&Qr(m,t,e),v&&vn(e,null,t,"unmounted")},n)},G=e=>{const{type:t,el:o,anchor:r,transition:l}=e;if(t===Or)return void Y(o,r);if(t===Lr)return void S(e);const a=()=>{n(o),l&&!l.persisted&&l.afterLeave&&l.afterLeave()};if(1&e.shapeFlag&&l&&!l.persisted){const{leave:t,delayLeave:n}=l,r=()=>t(o,a);n?n(e.el,a,r):r()}else a()},Y=(e,t)=>{let o;for(;e!==t;)o=v(e),n(e),e=o;n(t)},X=(e,t,n)=>{const{bum:o,scope:r,job:l,subTree:a,um:s,m:i,a:u}=e;kr(i),kr(u),o&&B(o),r.stop(),l&&(l.flags|=8,q(a,e,t,n)),s&&yr(s,t),yr(()=>{e.isUnmounted=!0},t)},Z=(e,t,n,o=!1,r=!1,l=0)=>{for(let a=l;a{if(6&e.shapeFlag)return J(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();const t=v(e.anchor||e.el),n=t&&t[_n];return n?v(n):t};let Q=!1;const ee=(e,t,n)=>{let o;null==e?t._vnode&&(q(t._vnode,null,null,!0),o=t._vnode.component):g(t._vnode||null,e,t,null,null,null,n),t._vnode=e,Q||(Q=!0,rn(o),ln(),Q=!1)},te={p:g,um:q,m:K,r:G,mt:F,mc:O,pc:H,pbc:R,n:J,o:e};let oe;return{render:ee,hydrate:oe,createApp:Yo(ee)}}(e)}function xr({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Cr({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Sr(e,t,n=!1){const o=e.children,r=t.children;if(f(o)&&f(r))for(let l=0;le.__isSuspense,Or=Symbol.for("v-fgt"),Tr=Symbol.for("v-txt"),Mr=Symbol.for("v-cmt"),Lr=Symbol.for("v-stc"),Rr=[];let Ir=null;function Nr(e=!1){Rr.push(Ir=e?null:[])}let Br=1;function jr(e,t=!1){Br+=e,e<0&&Ir&&t&&(Ir.hasOnce=!0)}function Pr(e){return e.dynamicChildren=Br>0?Ir||r:null,Rr.pop(),Ir=Rr[Rr.length-1]||null,Br>0&&Ir&&Ir.push(e),e}function Fr(e,t,n,o,r,l){return Pr(Wr(e,t,n,o,r,l,!0))}function $r(e,t,n,o,r){return Pr(Ur(e,t,n,o,r,!0))}function Dr(e){return!!e&&!0===e.__v_isVNode}function zr(e,t){return e.type===t.type&&e.key===t.key}const Vr=({key:e})=>null!=e?e:null,Hr=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?b(e)||_t(e)||g(e)?{i:un,r:e,k:t,f:!!n}:e:null);function Wr(e,t=null,n=null,o=0,r=null,l=(e===Or?0:1),a=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Vr(t),ref:t&&Hr(t),scopeId:cn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:un};return s?(Zr(i,n),128&l&&e.normalize(i)):n&&(i.shapeFlag|=b(n)?8:16),Br>0&&!a&&Ir&&(i.patchFlag>0||6&l)&&32!==i.patchFlag&&Ir.push(i),i}const Ur=function(e,t=null,n=null,o=0,r=null,l=!1){if(e&&e!==xo||(e=Mr),Dr(e)){const o=Kr(e,t,!0);return n&&Zr(o,n),Br>0&&!l&&Ir&&(6&o.shapeFlag?Ir[Ir.indexOf(e)]=o:Ir.push(o)),o.patchFlag=-2,o}var a;if(g(a=e)&&"__vccOpts"in a&&(e=e.__vccOpts),t){t=function(e){return e?yt(e)||sr(e)?u({},e):e:null}(t);let{class:e,style:n}=t;e&&!b(e)&&(t.class=U(e)),w(n)&&(yt(n)&&!f(n)&&(n=u({},n)),t.style=D(n))}const s=b(e)?1:Ar(e)?128:kn(e)?64:w(e)?4:g(e)?2:0;return Wr(e,t,n,o,r,s,l,!0)};function Kr(e,t,n=!1,o=!1){const{props:r,ref:l,patchFlag:a,children:s,transition:i}=e,u=t?Jr(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Vr(u),ref:t&&t.ref?n&&l?f(l)?l.concat(Hr(t)):[l,Hr(t)]:Hr(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Or?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Kr(e.ssContent),ssFallback:e.ssFallback&&Kr(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&o&&qn(c,i.clone(c)),c}function qr(e=" ",t=0){return Ur(Tr,null,e,t)}function Gr(e="",t=!1){return t?(Nr(),$r(Mr,null,e)):Ur(Mr,null,e)}function Yr(e){return null==e||"boolean"==typeof e?Ur(Mr):f(e)?Ur(Or,null,e.slice()):Dr(e)?Xr(e):Ur(Tr,null,String(e))}function Xr(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Kr(e)}function Zr(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(f(t))n=16;else if("object"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),Zr(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||sr(t)?3===o&&un&&(1===un.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=un}}else g(t)?(t={default:t,_ctx:un},n=32):(t=String(t),64&o?(n=16,t=[qr(t)]):n=8);e.children=t,e.shapeFlag|=n}function Jr(...e){const t={};for(let n=0;nnl||un;let rl,ll;{const e=$(),t=(t,n)=>{let o;return(o=e[t])||(o=e[t]=[]),o.push(n),e=>{o.length>1?o.forEach(t=>t(e)):o[0](e)}};rl=t("__VUE_INSTANCE_SETTERS__",e=>nl=e),ll=t("__VUE_SSR_SETTERS__",e=>ul=e)}const al=e=>{const t=nl;return rl(e),e.scope.on(),()=>{e.scope.off(),rl(t)}},sl=()=>{nl&&nl.scope.off(),rl(null)};function il(e){return 4&e.vnode.shapeFlag}let ul=!1;function cl(e,t,n){g(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:w(t)&&(e.setupState=Rt(t)),dl(e)}function dl(e,t,n){const o=e.type;e.render||(e.render=o.render||l);{const t=al(e);xe();try{jo(e)}finally{Ce(),t()}}}const pl={get:(e,t)=>(Re(e,0,""),e[t])};function fl(e){const t=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,pl),slots:e.slots,emit:e.emit,expose:t}}function vl(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Rt(xt(e.exposed)),{get:(t,n)=>n in t?t[n]:n in To?To[n](e):void 0,has:(e,t)=>t in e||t in To})):e.proxy}function hl(e,t=!0){return g(e)?e.displayName||e.name:e.name||t&&e.__name}const ml=(e,t)=>{const n=function(e,t,n=!1){let o,r;return g(e)?o=e:(o=e.get,r=e.set),new $t(o,r,n)}(e,0,ul);return n};function gl(e,t,n){try{jr(-1);const o=arguments.length;return 2===o?w(t)&&!f(t)?Dr(t)?Ur(e,null,[t]):Ur(e,t):Ur(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Dr(n)&&(n=[n]),Ur(e,t,n))}finally{jr(1)}}const bl="3.5.26",yl=l;let wl;const xl="undefined"!=typeof window&&window.trustedTypes;if(xl)try{wl=xl.createPolicy("vue",{createHTML:e=>e})}catch(kC){}const Cl=wl?e=>wl.createHTML(e):e=>e,Sl="undefined"!=typeof document?document:null,_l=Sl&&Sl.createElement("template"),kl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r="svg"===t?Sl.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?Sl.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?Sl.createElement(e,{is:n}):Sl.createElement(e);return"select"===e&&o&&null!=o.multiple&&r.setAttribute("multiple",o.multiple),r},createText:e=>Sl.createTextNode(e),createComment:e=>Sl.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Sl.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,l){const a=n?n.previousSibling:t.lastChild;if(r&&(r===l||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==l&&(r=r.nextSibling););else{_l.innerHTML=Cl("svg"===o?`${e}`:"mathml"===o?`${e}`:e);const r=_l.content;if("svg"===o||"mathml"===o){const e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},El="transition",Al="animation",Ol=Symbol("_vtc"),Tl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Ml=u({},$n,Tl),Ll=(e=>(e.displayName="Transition",e.props=Ml,e))((e,{slots:t})=>gl(Vn,function(e){const t={};for(const u in e)u in Tl||(t[u]=e[u]);if(!1===e.css)return t;const{name:n="v",type:o,duration:r,enterFromClass:l=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:i=l,appearActiveClass:c=a,appearToClass:d=s,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(w(e))return[Nl(e.enter),Nl(e.leave)];{const t=Nl(e);return[t,t]}}(r),m=h&&h[0],g=h&&h[1],{onBeforeEnter:b,onEnter:y,onEnterCancelled:x,onLeave:C,onLeaveCancelled:S,onBeforeAppear:_=b,onAppear:k=y,onAppearCancelled:E=x}=t,A=(e,t,n,o)=>{e._enterCancelled=o,jl(e,t?d:s),jl(e,t?c:a),n&&n()},O=(e,t)=>{e._isLeaving=!1,jl(e,p),jl(e,v),jl(e,f),t&&t()},T=e=>(t,n)=>{const r=e?k:y,a=()=>A(t,e,n);Rl(r,[t,a]),Pl(()=>{jl(t,e?i:l),Bl(t,e?d:s),Il(r)||$l(t,o,m,a)})};return u(t,{onBeforeEnter(e){Rl(b,[e]),Bl(e,l),Bl(e,a)},onBeforeAppear(e){Rl(_,[e]),Bl(e,i),Bl(e,c)},onEnter:T(!1),onAppear:T(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>O(e,t);Bl(e,p),e._enterCancelled?(Bl(e,f),Vl(e)):(Vl(e),Bl(e,f)),Pl(()=>{e._isLeaving&&(jl(e,p),Bl(e,v),Il(C)||$l(e,o,g,n))}),Rl(C,[e,n])},onEnterCancelled(e){A(e,!1,void 0,!0),Rl(x,[e])},onAppearCancelled(e){A(e,!0,void 0,!0),Rl(E,[e])},onLeaveCancelled(e){O(e),Rl(S,[e])}})}(e),t)),Rl=(e,t=[])=>{f(e)?e.forEach(e=>e(...t)):e&&e(...t)},Il=e=>!!e&&(f(e)?e.some(e=>e.length>1):e.length>1);function Nl(e){const t=(e=>{const t=b(e)?Number(e):NaN;return isNaN(t)?e:t})(e);return t}function Bl(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Ol]||(e[Ol]=new Set)).add(t)}function jl(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));const n=e[Ol];n&&(n.delete(t),n.size||(e[Ol]=void 0))}function Pl(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Fl=0;function $l(e,t,n,o){const r=e._endId=++Fl,l=()=>{r===e._endId&&o()};if(null!=n)return setTimeout(l,n);const{type:a,timeout:s,propCount:i}=function(e,t){const n=window.getComputedStyle(e),o=e=>(n[e]||"").split(", "),r=o(`${El}Delay`),l=o(`${El}Duration`),a=Dl(r,l),s=o(`${Al}Delay`),i=o(`${Al}Duration`),u=Dl(s,i);let c=null,d=0,p=0;t===El?a>0&&(c=El,d=a,p=l.length):t===Al?u>0&&(c=Al,d=u,p=i.length):(d=Math.max(a,u),c=d>0?a>u?El:Al:null,p=c?c===El?l.length:i.length:0);const f=c===El&&/\b(?:transform|all)(?:,|$)/.test(o(`${El}Property`).toString());return{type:c,timeout:d,propCount:p,hasTransform:f}}(e,t);if(!a)return o();const u=a+"end";let c=0;const d=()=>{e.removeEventListener(u,p),l()},p=t=>{t.target===e&&++c>=i&&d()};setTimeout(()=>{czl(t)+zl(e[n])))}function zl(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function Vl(e){return(e?e.ownerDocument:document).body.offsetHeight}const Hl=Symbol("_vod"),Wl=Symbol("_vsh"),Ul={name:"show",beforeMount(e,{value:t},{transition:n}){e[Hl]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Kl(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Kl(e,!0),o.enter(e)):o.leave(e,()=>{Kl(e,!1)}):Kl(e,t))},beforeUnmount(e,{value:t}){Kl(e,t)}};function Kl(e,t){e.style.display=t?e[Hl]:"none",e[Wl]=!t}const ql=Symbol(""),Gl=/(?:^|;)\s*display\s*:/,Yl=/\s*!important$/;function Xl(e,t,n){if(f(n))n.forEach(n=>Xl(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=Jl[t];if(n)return n;let o=T(t);if("filter"!==o&&o in e)return Jl[t]=o;o=R(o);for(let r=0;r{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();Kt(function(e,t){if(f(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=aa||(sa.then(()=>aa=0),aa=Date.now()),n}(o,r);na(e,n,a,s)}else a&&(function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,a,s),l[t]=void 0)}}const la=/(?:Once|Passive|Capture)$/;let aa=0;const sa=Promise.resolve(),ia=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ua=e=>{const t=e.props["onUpdate:modelValue"]||!1;return f(t)?e=>B(t,e):t},ca=Symbol("_assign"),da={deep:!0,created(e,t,n){e[ca]=ua(n),na(e,"change",()=>{const t=e._modelValue,n=function(e){return"_value"in e?e._value:e.value}(e),o=e.checked,r=e[ca];if(f(t)){const e=Y(t,n),l=-1!==e;if(o&&!l)r(t.concat(n));else if(!o&&l){const n=[...t];n.splice(e,1),r(n)}}else if(h(t)){const e=new Set(t);o?e.add(n):e.delete(n),r(e)}else r(fa(e,o))})},mounted:pa,beforeUpdate(e,t,n){e[ca]=ua(n),pa(e,t,n)}};function pa(e,{value:t,oldValue:n},o){let r;if(e._modelValue=t,f(t))r=Y(t,o.props.value)>-1;else if(h(t))r=t.has(o.props.value);else{if(t===n)return;r=G(t,fa(e,!0))}e.checked!==r&&(e.checked=r)}function fa(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const va=["ctrl","shift","alt","meta"],ha={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>va.some(n=>e[`${n}Key`]&&!t.includes(n))},ma=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(n,...o)=>{for(let e=0;e{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=n=>{if(!("key"in n))return;const o=L(n.key);return t.some(e=>e===o||ga[e]===o)?e(n):void 0})},ya=u({patchProp:(e,t,n,o,r,l)=>{const a="svg"===r;"class"===t?function(e,t,n){const o=e[Ol];o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,a):"style"===t?function(e,t,n){const o=e.style,r=b(n);let l=!1;if(n&&!r){if(t)if(b(t))for(const e of t.split(";")){const t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&Xl(o,t,"")}else for(const e in t)null==n[e]&&Xl(o,e,"");for(const e in n)"display"===e&&(l=!0),Xl(o,e,n[e])}else if(r){if(t!==n){const e=o[ql];e&&(n+=";"+e),o.cssText=n,l=Gl.test(n)}}else t&&e.removeAttribute("style");Hl in e&&(e[Hl]=l?o.display:"",e[Wl]&&(o.display="none"))}(e,n,o):s(t)?i(t)||ra(e,t,0,o,l):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&ia(t)&&g(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t)return!1;if("sandbox"===t&&"IFRAME"===e.tagName)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!ia(t)||!b(n))&&t in e}(e,t,o,a))?(ta(e,t,o),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ea(e,t,o,a,0,"value"!==t)):!e._isVueCE||!/[A-Z]/.test(t)&&b(o)?("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),ea(e,t,o,a)):ta(e,T(t),o,0,t)}},kl);let wa;function xa(){return wa||(wa=wr(ya))}const Ca=(...e)=>{xa().render(...e)},Sa=(...e)=>{const t=xa().createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){return b(e)?document.querySelector(e):e}(e);if(!o)return;const r=t._component;g(r)||r.render||r.template||(r.template=o.innerHTML),1===o.nodeType&&(o.textContent="");const l=n(o,!1,function(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t},_a=Symbol(),ka="el",Ea=(e,t,n,o,r)=>{let l=`${e}-${t}`;return n&&(l+=`-${n}`),o&&(l+=`__${o}`),r&&(l+=`--${r}`),l},Aa=Symbol("namespaceContextKey"),Oa=e=>{const t=e||(ol()?mn(Aa,kt(ka)):kt(ka));return ml(()=>Tt(t)||ka)},Ta=(e,t)=>{const n=Oa(t);return{namespace:n,b:(t="")=>Ea(n.value,e,t,"",""),e:t=>t?Ea(n.value,e,"",t,""):"",m:t=>t?Ea(n.value,e,"","",t):"",be:(t,o)=>t&&o?Ea(n.value,e,t,o,""):"",em:(t,o)=>t&&o?Ea(n.value,e,"",t,o):"",bm:(t,o)=>t&&o?Ea(n.value,e,t,"",o):"",bem:(t,o,r)=>t&&o&&r?Ea(n.value,e,t,o,r):"",is:(e,...t)=>{const n=!(t.length>=1)||t[0];return e&&n?`is-${e}`:""},cssVar:e=>{const t={};for(const o in e)e[o]&&(t[`--${n.value}-${o}`]=e[o]);return t},cssVarName:e=>`--${n.value}-${e}`,cssVarBlock:t=>{const o={};for(const r in t)t[r]&&(o[`--${n.value}-${e}-${r}`]=t[r]);return o},cssVarBlockName:t=>`--${n.value}-${e}-${t}`}};var Ma="object"==typeof global&&global&&global.Object===Object&&global,La="object"==typeof self&&self&&self.Object===Object&&self,Ra=Ma||La||Function("return this")(),Ia=Ra.Symbol,Na=Object.prototype,Ba=Na.hasOwnProperty,ja=Na.toString,Pa=Ia?Ia.toStringTag:void 0,Fa=Object.prototype.toString,$a=Ia?Ia.toStringTag:void 0;function Da(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":$a&&$a in Object(e)?function(e){var t=Ba.call(e,Pa),n=e[Pa];try{e[Pa]=void 0;var o=!0}catch(kC){}var r=ja.call(e);return o&&(t?e[Pa]=n:delete e[Pa]),r}(e):function(e){return Fa.call(e)}(e)}function za(e){return null!=e&&"object"==typeof e}function Va(e){return"symbol"==typeof e||za(e)&&"[object Symbol]"==Da(e)}function Ha(e,t){for(var n=-1,o=null==e?0:e.length,r=Array(o);++n0){if(++ys>=800)return arguments[0]}else ys=0;return bs.apply(void 0,arguments)}),Os=/^(?:0|[1-9]\d*)$/;function Ts(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Os.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function Fs(e){return null!=e&&Ps(e.length)&&!rs(e)}var $s=Object.prototype;function Ds(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||$s)}function zs(e){return za(e)&&"[object Arguments]"==Da(e)}var Vs=Object.prototype,Hs=Vs.hasOwnProperty,Ws=Vs.propertyIsEnumerable,Us=zs(function(){return arguments}())?zs:function(e){return za(e)&&Hs.call(e,"callee")&&!Ws.call(e,"callee")},Ks="object"==typeof e&&e&&!e.nodeType&&e,qs=Ks&&"object"==typeof t&&t&&!t.nodeType&&t,Gs=qs&&qs.exports===Ks?Ra.Buffer:void 0,Ys=(Gs?Gs.isBuffer:void 0)||function(){return!1},Xs={};function Zs(e){return function(t){return e(t)}}Xs["[object Float32Array]"]=Xs["[object Float64Array]"]=Xs["[object Int8Array]"]=Xs["[object Int16Array]"]=Xs["[object Int32Array]"]=Xs["[object Uint8Array]"]=Xs["[object Uint8ClampedArray]"]=Xs["[object Uint16Array]"]=Xs["[object Uint32Array]"]=!0,Xs["[object Arguments]"]=Xs["[object Array]"]=Xs["[object ArrayBuffer]"]=Xs["[object Boolean]"]=Xs["[object DataView]"]=Xs["[object Date]"]=Xs["[object Error]"]=Xs["[object Function]"]=Xs["[object Map]"]=Xs["[object Number]"]=Xs["[object Object]"]=Xs["[object RegExp]"]=Xs["[object Set]"]=Xs["[object String]"]=Xs["[object WeakMap]"]=!1;var Js="object"==typeof e&&e&&!e.nodeType&&e,Qs=Js&&"object"==typeof t&&t&&!t.nodeType&&t,ei=Qs&&Qs.exports===Js&&Ma.process,ti=function(){try{var e=Qs&&Qs.require&&Qs.require("util").types;return e||ei&&ei.binding&&ei.binding("util")}catch(kC){}}(),ni=ti&&ti.isTypedArray,oi=ni?Zs(ni):function(e){return za(e)&&Ps(e.length)&&!!Xs[Da(e)]},ri=Object.prototype.hasOwnProperty;function li(e,t){var n=Wa(e),o=!n&&Us(e),r=!n&&!o&&Ys(e),l=!n&&!o&&!r&&oi(e),a=n||o||r||l,s=a?function(e,t){for(var n=-1,o=Array(e);++n-1},Ci.prototype.set=function(e,t){var n=this.__data__,o=wi(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this};var Si=gs(Ra,"Map");function _i(e,t){var n,o,r=e.__data__;return("string"==(o=typeof(n=t))||"number"==o||"symbol"==o||"boolean"==o?"__proto__"!==n:null===n)?r["string"==typeof t?"string":"hash"]:r.map}function ki(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var u=l.get(e),c=l.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&n?new $u:void 0;for(l.set(e,t),l.set(t,e);++d=t||n<0||d&&e-u>=l}function h(){var e=uc();if(v(e))return m(e);s=setTimeout(h,function(e){var n=t-(e-i);return d?dc(n,l-(e-u)):n}(e))}function m(e){return s=void 0,p&&o?f(e):(o=r=void 0,a)}function g(){var e=uc(),n=v(e);if(o=arguments,r=this,i=e,n){if(void 0===s)return function(e){return u=e,s=setTimeout(h,t),c?f(e):a}(i);if(d)return clearTimeout(s),s=setTimeout(h,t),f(i)}return void 0===s&&(s=setTimeout(h,t)),a}return t=ns(t)||0,Za(n)&&(c=!!n.leading,l=(d="maxWait"in n)?cc(ns(n.maxWait)||0,t):l,p="trailing"in n?!!n.trailing:p),g.cancel=function(){void 0!==s&&clearTimeout(s),u=0,o=i=r=s=void 0},g.flush=function(){return void 0===s?a:m(uc())},g}function fc(e,t,n){(void 0!==n&&!Ls(e[t],n)||void 0===n&&!(t in e))&&Ms(e,t,n)}function vc(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function hc(e,t,n,o,r,l,a){var s=vc(e,n),i=vc(t,n),u=a.get(i);if(u)fc(e,n,u);else{var c,d=l?l(s,i,n+"",e,t,a):void 0,p=void 0===d;if(p){var f=Wa(i),v=!f&&Ys(i),h=!f&&!v&&oi(i);d=i,f||v||h?Wa(s)?d=s:za(c=s)&&Fs(c)?d=function(e,t){var n=-1,o=e.length;for(t||(t=Array(o));++nr?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var l=Array(r);++o1?t[o-1]:void 0,l=o>2?t[2]:void 0;for(r=_c.length>3&&"function"==typeof r?(o--,r):void 0,l&&function(e,t,n){if(!Za(n))return!1;var o=typeof t;return!!("number"==o?Fs(n)&&Ts(t,n.length):"string"==o&&t in n)&&Ls(n[t],e)}(t[0],t[1],l)&&(r=o<3?void 0:r,o=1),e=Object(e);++n1),t}),Ns(e,su(e),n),o&&(n=Fu(n,7,Ac));for(var r=t.length;r--;)Ec(n,t[r]);return n});function Tc(e,t,n,o){if(!Za(e))return e;for(var r=-1,l=(t=Mi(t,e)).length,a=l-1,s=e;null!=s&&++rvoid 0===e,Ic=e=>"boolean"==typeof e,Nc=e=>"number"==typeof e,Bc=e=>"undefined"!=typeof Element&&e instanceof Element,jc=e=>Cc(e);function Pc(e,t){const n=Et();return yn(()=>{n.value=e()},{...t,flush:"sync"}),vt(n)}function Fc(e){return!!oe()&&(re(e),!0)}function $c(e){return"function"==typeof e?e():Tt(e)}const Dc="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const zc=Object.prototype.toString,Vc=()=>{},Hc=Wc();function Wc(){var e,t;return Dc&&(null==(e=null==window?void 0:window.navigator)?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||(null==(t=null==window?void 0:window.navigator)?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(null==window?void 0:window.navigator.userAgent))}function Uc(e,t,n={}){const{immediate:o=!0}=n,r=kt(!1);let l=null;function a(){l&&(clearTimeout(l),l=null)}function s(){r.value=!1,a()}function i(...n){a(),r.value=!0,l=setTimeout(()=>{r.value=!1,l=null,e(...n)},$c(t))}return o&&(r.value=!0,Dc&&i()),Fc(s),{isPending:vt(r),start:i,stop:s}}function Kc(e){var t;const n=$c(e);return null!=(t=null==n?void 0:n.$el)?t:n}const qc=Dc?window:void 0;function Gc(...e){let t,n,o,r;if("string"==typeof e[0]||Array.isArray(e[0])?([n,o,r]=e,t=qc):[t,n,o,r]=e,!t)return Vc;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const l=[],a=()=>{l.forEach(e=>e()),l.length=0},s=wn(()=>[Kc(t),$c(r)],([e,t])=>{if(a(),!e)return;const r=(s=t,"[object Object]"===zc.call(s)?{...t}:t);var s;l.push(...n.flatMap(t=>o.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,r))))},{immediate:!0,flush:"post"}),i=()=>{s(),a()};return Fc(i),i}let Yc=!1;function Xc(e){const t=function(){const e=kt(!1),t=ol();return t&&uo(()=>{e.value=!0},t),e}();return ml(()=>(t.value,Boolean(e())))}function Zc(e,t,n={}){const{window:o=qc,...r}=n;let l;const a=Xc(()=>o&&"ResizeObserver"in o),s=()=>{l&&(l.disconnect(),l=void 0)},i=wn(ml(()=>Array.isArray(e)?e.map(e=>Kc(e)):[Kc(e)]),e=>{if(s(),a.value&&o){l=new ResizeObserver(t);for(const t of e)t&&l.observe(t,r)}},{immediate:!0,flush:"post"}),u=()=>{s(),i()};return Fc(u),{isSupported:a,stop:u}}class Jc extends Error{constructor(e){super(e),this.name="ElementPlusError"}}function Qc(e,t){throw new Jc(`[${e}] ${t}`)}const ed={current:0},td=kt(0),nd=Symbol("elZIndexContextKey"),od=Symbol("zIndexContextKey"),rd=e=>{const t=ol()?mn(nd,ed):ed,n=e||(ol()?mn(od,void 0):void 0),o=ml(()=>{const e=Tt(n);return Nc(e)?e:2e3}),r=ml(()=>o.value+td.value);return!Dc&&mn(nd),{initialZIndex:o,currentZIndex:r,nextZIndex:()=>(t.current++,td.value=t.current,r.value)}};var ld={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value",alphaDescription:"alpha {alpha}, current color is {color}",hueLabel:"pick hue value",hueDescription:"hue {hue}, current color is {color}",svLabel:"pick saturation and brightness value",svDescription:"saturation {saturation}, brightness {brightness}, current color is {color}",predefineDescription:"select {value} as the color"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum",selectAllLabel:"Select all rows",selectRowLabel:"Select this row",expandRowLabel:"Expand this row",collapseRowLabel:"Collapse this row",sortLabel:"Sort by {column}",filterLabel:"Filter by {column}"},tag:{close:"Close this tag"},tour:{next:"Next",previous:"Previous",finish:"Finish",close:"Close this dialog"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const ad=e=>(t,n)=>sd(t,n,Tt(e)),sd=(e,t,n)=>Ii(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>{var o;return`${null!=(o=null==t?void 0:t[n])?o:`{${n}}`}`}),id=Symbol("localeContextKey"),ud=e=>{const t=e||mn(id,kt());return(e=>({lang:ml(()=>Tt(e).name),locale:_t(e)?e:kt(e),t:ad(e)}))(ml(()=>t.value||ld))},cd="__epPropKey",dd=(e,t)=>{if(!w(e)||w(n=e)&&n[cd])return e;var n;const{values:o,required:r,default:l,type:a,validator:s}=e,i=o||s?n=>{let r=!1,a=[];if(o&&(a=Array.from(o),p(e,"default")&&a.push(l),r||(r=a.includes(n))),s&&(r||(r=s(n))),!r&&a.length>0){const e=[...new Set(a)].map(e=>JSON.stringify(e)).join(", ");yl(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${e}], got value ${JSON.stringify(n)}.`)}return r}:void 0,u={type:a,required:!!r,validator:i,[cd]:!0};return p(e,"default")&&(u.default=l),u},pd=e=>yc(Object.entries(e).map(([e,t])=>[e,dd(t,e)])),fd=["","default","small","large"],vd=dd({type:String,values:fd,required:!1}),hd=Symbol("size"),md=Symbol("emptyValuesContextKey"),gd=(pd({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>(e=g(e)?e():e,f(e)?e.every(e=>!e):!e)}}),e=>Object.keys(e)),bd=(e,t,n)=>({get value(){return Ii(e,t,n)},set value(n){!function(e,t,n){null==e||Tc(e,t,n)}(e,t,n)}}),yd=kt();function wd(e,t=void 0){const n=ol()?mn(_a,yd):yd;return e?ml(()=>{var o,r;return null!=(r=null==(o=n.value)?void 0:o[e])?r:t}):n}function xd(e,t){const n=wd(),o=Ta(e,ml(()=>{var e;return(null==(e=n.value)?void 0:e.namespace)||ka})),r=ud(ml(()=>{var e;return null==(e=n.value)?void 0:e.locale})),l=rd(ml(()=>{var e;return(null==(e=n.value)?void 0:e.zIndex)||2e3})),a=ml(()=>{var e;return Tt(t)||(null==(e=n.value)?void 0:e.size)||""});return Cd(ml(()=>Tt(n)||{})),{ns:o,locale:r,zIndex:l,size:a}}const Cd=(e,t,n=!1)=>{const o=!!ol(),r=o?wd():void 0,l=o?hn:void 0;if(!l)return;const a=ml(()=>{const t=Tt(e);return(null==r?void 0:r.value)?Sd(r.value,t):t});return l(_a,a),l(id,ml(()=>a.value.locale)),l(Aa,ml(()=>a.value.namespace)),l(od,ml(()=>a.value.zIndex)),l(hd,{size:ml(()=>a.value.size||"")}),l(md,ml(()=>({emptyValues:a.value.emptyValues,valueOnClear:a.value.valueOnClear}))),!n&&yd.value||(yd.value=a.value),a},Sd=(e,t)=>{const n=[...new Set([...gd(e),...gd(t)])],o={};for(const r of n)o[r]=void 0!==t[r]?t[r]:e[r];return o},_d=pd({to:{type:[String,Object],required:!0},disabled:Boolean});var kd=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};const Ed=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(null!=t?t:{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Ad=e=>(e.install=l,e),Od=Ed(kd(Yn({__name:"teleport",props:_d,setup:e=>(e,t)=>e.disabled?Eo(e.$slots,"default",{key:0}):(Nr(),$r(In,{key:1,to:e.to},[Eo(e.$slots,"default")],8,["to"]))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/teleport/src/teleport.vue"]])),Td="update:modelValue",Md="change",Ld="input",Rd=(e="")=>e.split(" ").filter(e=>!!e.trim()),Id=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Nd=(e,t)=>{e&&t.trim()&&e.classList.add(...Rd(t))},Bd=(e,t)=>{e&&t.trim()&&e.classList.remove(...Rd(t))},jd=(e,t)=>{var n;if(!Dc||!e||!t)return"";let o=T(t);"float"===o&&(o="cssFloat");try{const t=e.style[o];if(t)return t;const r=null==(n=document.defaultView)?void 0:n.getComputedStyle(e,"");return r?r[o]:""}catch(kC){return e.style[o]}};function Pd(e,t="px"){return e||0===e?Nc(e)||b(n=e)&&!Number.isNaN(Number(n))?`${e}${t}`:b(e)?e:void 0:"";var n}let Fd;const $d=Ed(kd(Yn({name:"ElIcon",inheritAttrs:!1,__name:"icon",props:pd({size:{type:[Number,String]},color:{type:String}}),setup(e){const t=e,n=Ta("icon"),o=ml(()=>{const{size:e,color:n}=t,o=Pd(e);return o||n?{fontSize:o,"--color":n}:{}});return(e,t)=>(Nr(),Fr("i",Jr({class:Tt(n).b(),style:o.value},e.$attrs),[Eo(e.$slots,"default")],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]));var Dd=Yn({name:"ArrowDown",__name:"arrow-down",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}),zd=Yn({name:"ArrowRight",__name:"arrow-right",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}),Vd=Yn({name:"ArrowUp",__name:"arrow-up",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}),Hd=Yn({name:"CircleCheck",__name:"circle-check",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Wr("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}),Wd=Yn({name:"CircleCloseFilled",__name:"circle-close-filled",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}),Ud=Yn({name:"CircleClose",__name:"circle-close",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),Wr("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}),Kd=Yn({name:"Close",__name:"close",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}),qd=Yn({name:"Hide",__name:"hide",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),Wr("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}),Gd=Yn({name:"InfoFilled",__name:"info-filled",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}),Yd=Yn({name:"Loading",__name:"loading",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}),Xd=Yn({name:"Moon",__name:"moon",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 391 391 0 0 0-17.408 16.384m181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696"})]))}),Zd=Yn({name:"More",__name:"more",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}),Jd=Yn({name:"Refresh",__name:"refresh",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}),Qd=Yn({name:"Search",__name:"search",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}),ep=Yn({name:"SuccessFilled",__name:"success-filled",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}),tp=Yn({name:"Sunny",__name:"sunny",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32M195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248M64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32m768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32M195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0m543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0"})]))}),np=Yn({name:"Upload",__name:"upload",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}),op=Yn({name:"View",__name:"view",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}),rp=Yn({name:"WarningFilled",__name:"warning-filled",setup:e=>(e,t)=>(Nr(),Fr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Wr("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))});const lp=[String,Object,Function],ap={Close:Kd,SuccessFilled:ep,InfoFilled:Gd,WarningFilled:rp,CircleCloseFilled:Wd},sp={primary:Gd,success:ep,warning:rp,error:Wd,info:Gd},ip={validating:Yd,success:Hd,error:Ud};let up;const cp={height:"0",visibility:"hidden",overflow:Dc&&/firefox/i.test(window.navigator.userAgent)?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},dp=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"],pp=e=>{const t=Number.parseFloat(e);return Number.isNaN(t)?e:t};function fp(e,t=1,n){var o,r;up||(up=document.createElement("textarea"),(null!=(o=e.parentNode)?o:document.body).appendChild(up));const{paddingSize:l,borderSize:a,boxSizing:s,contextStyle:i}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),r=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:dp.map(e=>[e,t.getPropertyValue(e)]),paddingSize:o,borderSize:r,boxSizing:n}}(e);i.forEach(([e,t])=>null==up?void 0:up.style.setProperty(e,t)),Object.entries(cp).forEach(([e,t])=>null==up?void 0:up.style.setProperty(e,t,"important")),up.value=e.value||e.placeholder||"";let u=up.scrollHeight;const c={};"border-box"===s?u+=a:"content-box"===s&&(u-=l),up.value="";const d=up.scrollHeight-l;if(Nc(t)){let e=d*t;"border-box"===s&&(e=e+l+a),u=Math.max(e,u),c.minHeight=`${e}px`}if(Nc(n)){let e=d*n;"border-box"===s&&(e=e+l+a),u=Math.min(e,u)}return c.height=`${u}px`,null==(r=up.parentNode)||r.removeChild(up),up=void 0,c}const vp=pd({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),hp=e=>Lc(vp,e),mp=pd({id:{type:String,default:void 0},size:vd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Object],default:""},modelModifiers:{type:Object,default:()=>({})},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:lp,default:Ud},showPassword:Boolean,showWordLimit:Boolean,wordLimitPosition:{type:String,values:["inside","outside"],default:"inside"},suffixIcon:{type:lp},prefixIcon:{type:lp},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Object,Array,String],default:()=>({})},autofocus:Boolean,rows:{type:Number,default:2},...hp(["ariaLabel"]),inputmode:{type:String,default:void 0},name:String}),gp={[Td]:e=>b(e),input:e=>b(e),change:(e,t)=>b(e)&&(t instanceof Event||void 0===t),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},bp=["class","style"],yp=/^on[A-Z]/,wp={prefix:Math.floor(1e4*Math.random()),current:0},xp=Symbol("elIdInjection"),Cp=()=>ol()?mn(xp,wp):wp,Sp=e=>{const t=Cp(),n=Oa();return Pc(()=>Tt(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},_p=Symbol("formContextKey"),kp=Symbol("formItemContextKey"),Ep=()=>({form:mn(_p,void 0),formItem:mn(kp,void 0)}),Ap=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=kt(!1)),o||(o=kt(!1));const r=ol(),l=kt();let a;const s=ml(()=>{var n;return!!(!e.label&&!e.ariaLabel&&t&&t.inputIds&&(null==(n=t.inputIds)?void 0:n.length)<=1)});return uo(()=>{a=wn([Pt(e,"id"),n],([e,n])=>{const a=null!=e?e:n?void 0:Sp().value;a!==l.value&&((null==t?void 0:t.removeInputId)&&!(()=>{let e=null==r?void 0:r.parent;for(;e;){if("ElFormItem"===e.type.name)return!1;if("ElLabelWrap"===e.type.name)return!0;e=e.parent}return!1})()&&(l.value&&t.removeInputId(l.value),(null==o?void 0:o.value)||n||!a||t.addInputId(a)),l.value=a)},{immediate:!0})}),vo(()=>{a&&a(),(null==t?void 0:t.removeInputId)&&l.value&&t.removeInputId(l.value)}),{isLabeledByFormItem:s,inputId:l}},Op=e=>{const t=ol();return ml(()=>{var n,o;return null==(o=null==(n=null==t?void 0:t.proxy)?void 0:n.$props)?void 0:o[e]})},Tp=(e,t={})=>{const n=kt(void 0),o=t.prop?n:Op("size"),r=t.global?n:(()=>{const e=mn(hd,{});return ml(()=>Tt(e.size)||"")})(),l=t.form?{size:void 0}:mn(_p,void 0),a=t.formItem?{size:void 0}:mn(kp,void 0);return ml(()=>o.value||Tt(e)||(null==a?void 0:a.size)||(null==l?void 0:l.size)||r.value||"")},Mp=e=>{const t=Op("disabled"),n=mn(_p,void 0);return ml(()=>{var o,r,l;return null!=(l=null!=(r=null!=(o=t.value)?o:Tt(e))?r:null==n?void 0:n.disabled)&&l})},Lp=e=>"undefined"!=typeof Element&&e instanceof Element,Rp=e=>Array.from(e.querySelectorAll('a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])')).filter(e=>Ip(e)&&(e=>"fixed"!==getComputedStyle(e).position&&null!==e.offsetParent)(e)),Ip=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},Np=function(e,t,...n){let o;o=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const r=document.createEvent(o);return r.initEvent(t,...n),e.dispatchEvent(r),e},Bp=(e,t)=>{if(!e||!e.focus)return;let n=!1;!Lp(e)||Ip(e)||e.getAttribute("tabindex")||(e.setAttribute("tabindex","-1"),n=!0),e.focus(t),Lp(e)&&n&&e.removeAttribute("tabindex")},jp=["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode"],Pp=["id","name","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role"],Fp=Ed(kd(Yn({name:"ElInput",inheritAttrs:!1,__name:"input",props:mp,emits:gp,setup(e,{expose:t,emit:n}){const o=e,r=n,a=Io().attrs,s=((e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=ml(()=>((null==n?void 0:n.value)||[]).concat(bp)),r=ol();return ml(r?()=>{var e;return yc(Object.entries(null==(e=r.proxy)?void 0:e.$attrs).filter(([e])=>!(o.value.includes(e)||t&&yp.test(e))))}:()=>({}))})(),i=Ro(),u=ml(()=>["textarea"===o.type?b.b():m.b(),m.m(v.value),m.is("disabled",h.value),m.is("exceed",H.value),{[m.b("group")]:i.prepend||i.append,[m.m("prefix")]:i.prefix||o.prefixIcon,[m.m("suffix")]:i.suffix||o.suffixIcon||o.clearable||o.showPassword,[m.bm("suffix","password-clear")]:F.value&&$.value,[m.b("hidden")]:"hidden"===o.type},a.class]),c=ml(()=>[m.e("wrapper"),m.is("focus",O.value)]),{form:d,formItem:p}=Ep(),{inputId:f}=Ap(o,{formItemContext:p}),v=Tp(),h=Mp(),m=Ta("input"),b=Ta("textarea"),y=Et(),x=Et(),C=kt(!1),S=kt(!1),_=kt(),k=Et(o.inputStyle),E=ml(()=>y.value||x.value),{wrapperRef:A,isFocused:O,handleFocus:T,handleBlur:M}=function(e,{disabled:t,beforeFocus:n,afterFocus:o,beforeBlur:r,afterBlur:l}={}){const a=ol(),{emit:s}=a,i=Et(),u=kt(!1),c=e=>{const r=!!g(n)&&n(e);Tt(t)||u.value||r||(u.value=!0,s("focus",e),null==o||o())},d=e=>{var n;const o=!!g(r)&&r(e);Tt(t)||e.relatedTarget&&(null==(n=i.value)?void 0:n.contains(e.relatedTarget))||o||(u.value=!1,s("blur",e),null==l||l())};return wn([i,()=>Tt(t)],([e,t])=>{e&&(t?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1"))}),Gc(i,"focus",c,!0),Gc(i,"blur",d,!0),Gc(i,"click",n=>{var o,r;Tt(t)||Ip(n.target)||(null==(o=i.value)?void 0:o.contains(document.activeElement))&&i.value!==document.activeElement||null==(r=e.value)||r.focus()},!0),{isFocused:u,wrapperRef:i,handleFocus:c,handleBlur:d}}(E,{disabled:h,afterBlur(){var e;o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"blur").catch(e=>{}))}}),L=ml(()=>{var e;return null!=(e=null==d?void 0:d.statusIcon)&&e}),R=ml(()=>(null==p?void 0:p.validateState)||""),I=ml(()=>R.value&&ip[R.value]),N=ml(()=>S.value?op:qd),B=ml(()=>[a.style]),j=ml(()=>[o.inputStyle,k.value,{resize:o.resize}]),P=ml(()=>Cc(o.modelValue)?"":String(o.modelValue)),F=ml(()=>o.clearable&&!h.value&&!o.readonly&&!!P.value&&(O.value||C.value)),$=ml(()=>o.showPassword&&!h.value&&!!P.value),z=ml(()=>o.showWordLimit&&!!o.maxlength&&("text"===o.type||"textarea"===o.type)&&!h.value&&!o.readonly&&!o.showPassword),V=ml(()=>P.value.length),H=ml(()=>!!z.value&&V.value>Number(o.maxlength)),W=ml(()=>!!i.suffix||!!o.suffixIcon||F.value||o.showPassword||z.value||!!R.value&&L.value),K=ml(()=>!!Object.keys(o.modelModifiers).length),[q,G]=function(e){let t;return[function(){if(null==e.value)return;const{selectionStart:n,selectionEnd:o,value:r}=e.value;if(null==n||null==o)return;const l=r.slice(0,Math.max(0,n)),a=r.slice(Math.max(0,o));t={selectionStart:n,selectionEnd:o,value:r,beforeTxt:l,afterTxt:a}},function(){if(null==e.value||null==t)return;const{value:n}=e.value,{beforeTxt:o,afterTxt:r,selectionStart:l}=t;if(null==o||null==r||null==l)return;let a=n.length;if(n.endsWith(r))a=n.length-r.length;else if(n.startsWith(o))a=o.length;else{const e=o[l-1],t=n.indexOf(e,l-1);-1!==t&&(a=t+1)}e.value.setSelectionRange(a,a)}]}(y);Zc(x,e=>{if(X(),!z.value||"both"!==o.resize&&"horizontal"!==o.resize)return;const t=e[0],{width:n}=t.contentRect;_.value={right:`calc(100% - ${n+22-10}px)`}});const Y=()=>{const{type:e,autosize:t}=o;if(Dc&&"textarea"===e&&x.value)if(t){const e=w(t)?t.minRows:void 0,n=w(t)?t.maxRows:void 0,o=fp(x.value,e,n);k.value={overflowY:"hidden",...o},tn(()=>{x.value.offsetHeight,k.value=o})}else k.value={minHeight:fp(x.value).minHeight}},X=(e=>{let t=!1;return()=>{var n;!t&&o.autosize&&(null===(null==(n=x.value)?void 0:n.offsetParent)||(setTimeout(e),t=!0))}})(Y),J=()=>{const e=E.value,t=o.formatter?o.formatter(P.value):P.value;e&&e.value!==t&&"file"!==o.type&&(e.value=t)},Q=e=>{const{trim:t,number:n}=o.modelModifiers;return t&&(e=e.trim()),n&&(e=`${pp(e)}`),o.formatter&&o.parser&&(e=o.parser(e)),e},ee=async e=>{if(ne.value)return;const{lazy:t}=o.modelModifiers;let{value:n}=e.target;t?r(Ld,n):(n=Q(n),String(n)!==P.value?(q(),r(Td,n),r(Ld,n),await tn(),(o.formatter&&o.parser||!K.value)&&J(),G()):o.formatter&&J())},te=async e=>{let{value:t}=e.target;t=Q(t),o.modelModifiers.lazy&&r(Td,t),r(Md,t,e),await tn(),J()},{isComposing:ne,handleCompositionStart:oe,handleCompositionUpdate:re,handleCompositionEnd:le}=function({afterComposition:e,emit:t}){const n=kt(!1),o=e=>{var o;null==t||t("compositionupdate",e);const r=null==(o=e.target)?void 0:o.value,l=r[r.length-1]||"";n.value=!(e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e))(l)},r=o=>{null==t||t("compositionend",o),n.value&&(n.value=!1,tn(()=>e(o)))};return{isComposing:n,handleComposition:e=>{"compositionend"===e.type?r(e):o(e)},handleCompositionStart:e=>{null==t||t("compositionstart",e),n.value=!0},handleCompositionUpdate:o,handleCompositionEnd:r}}({emit:r,afterComposition:ee}),ae=()=>{S.value=!S.value},se=e=>{C.value=!1,r("mouseleave",e)},ie=e=>{C.value=!0,r("mouseenter",e)},ue=e=>{r("keydown",e)},ce=()=>{r(Td,""),r(Md,""),r("clear"),r(Ld,"")};return wn(()=>o.modelValue,()=>{var e;tn(()=>Y()),o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"change").catch(e=>{}))}),wn(P,e=>{if(!E.value)return;const{trim:t,number:n}=o.modelModifiers,r=E.value.value,l=!n&&"number"!==o.type||/^0\d/.test(r)?r:`${pp(r)}`;l!==e&&(document.activeElement===E.value&&"range"!==E.value.type&&t&&l.trim()===e||J())}),wn(()=>o.type,async()=>{await tn(),J(),Y()}),uo(()=>{!o.formatter&&o.parser,J(),tn(Y)}),t({input:y,textarea:x,ref:E,textareaStyle:j,autosize:Pt(o,"autosize"),isComposing:ne,focus:()=>{var e;return null==(e=E.value)?void 0:e.focus()},blur:()=>{var e;return null==(e=E.value)?void 0:e.blur()},select:()=>{var e;null==(e=E.value)||e.select()},clear:ce,resizeTextarea:Y}),(e,t)=>(Nr(),Fr("div",{class:U([u.value,{[Tt(m).bm("group","append")]:e.$slots.append,[Tt(m).bm("group","prepend")]:e.$slots.prepend}]),style:D(B.value),onMouseenter:ie,onMouseleave:se},[Gr(" input "),"textarea"!==e.type?(Nr(),Fr(Or,{key:0},[Gr(" prepend slot "),e.$slots.prepend?(Nr(),Fr("div",{key:0,class:U(Tt(m).be("group","prepend"))},[Eo(e.$slots,"prepend")],2)):Gr("v-if",!0),Wr("div",{ref_key:"wrapperRef",ref:A,class:U(c.value)},[Gr(" prefix slot "),e.$slots.prefix||e.prefixIcon?(Nr(),Fr("span",{key:0,class:U(Tt(m).e("prefix"))},[Wr("span",{class:U(Tt(m).e("prefix-inner"))},[Eo(e.$slots,"prefix"),e.prefixIcon?(Nr(),$r(Tt($d),{key:0,class:U(Tt(m).e("icon"))},{default:pn(()=>[(Nr(),$r(Co(e.prefixIcon)))]),_:1},8,["class"])):Gr("v-if",!0)],2)],2)):Gr("v-if",!0),Wr("input",Jr({id:Tt(f),ref_key:"input",ref:y,class:Tt(m).e("inner")},Tt(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,type:e.showPassword?S.value?"text":"password":e.type,disabled:Tt(h),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.ariaLabel,placeholder:e.placeholder,style:e.inputStyle,form:e.form,autofocus:e.autofocus,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:t[0]||(t[0]=(...e)=>Tt(oe)&&Tt(oe)(...e)),onCompositionupdate:t[1]||(t[1]=(...e)=>Tt(re)&&Tt(re)(...e)),onCompositionend:t[2]||(t[2]=(...e)=>Tt(le)&&Tt(le)(...e)),onInput:ee,onChange:te,onKeydown:ue}),null,16,jp),Gr(" suffix slot "),W.value?(Nr(),Fr("span",{key:1,class:U(Tt(m).e("suffix"))},[Wr("span",{class:U(Tt(m).e("suffix-inner"))},[F.value&&$.value&&z.value?Gr("v-if",!0):(Nr(),Fr(Or,{key:0},[Eo(e.$slots,"suffix"),e.suffixIcon?(Nr(),$r(Tt($d),{key:0,class:U(Tt(m).e("icon"))},{default:pn(()=>[(Nr(),$r(Co(e.suffixIcon)))]),_:1},8,["class"])):Gr("v-if",!0)],64)),F.value?(Nr(),$r(Tt($d),{key:1,class:U([Tt(m).e("icon"),Tt(m).e("clear")]),onMousedown:ma(Tt(l),["prevent"]),onClick:ce},{default:pn(()=>[(Nr(),$r(Co(e.clearIcon)))]),_:1},8,["class","onMousedown"])):Gr("v-if",!0),$.value?(Nr(),$r(Tt($d),{key:2,class:U([Tt(m).e("icon"),Tt(m).e("password")]),onClick:ae,onMousedown:ma(Tt(l),["prevent"]),onMouseup:ma(Tt(l),["prevent"])},{default:pn(()=>[(Nr(),$r(Co(N.value)))]),_:1},8,["class","onMousedown","onMouseup"])):Gr("v-if",!0),z.value?(Nr(),Fr("span",{key:3,class:U([Tt(m).e("count"),Tt(m).is("outside","outside"===e.wordLimitPosition)])},[Wr("span",{class:U(Tt(m).e("count-inner"))},Z(V.value)+" / "+Z(e.maxlength),3)],2)):Gr("v-if",!0),R.value&&I.value&&L.value?(Nr(),$r(Tt($d),{key:4,class:U([Tt(m).e("icon"),Tt(m).e("validateIcon"),Tt(m).is("loading","validating"===R.value)])},{default:pn(()=>[(Nr(),$r(Co(I.value)))]),_:1},8,["class"])):Gr("v-if",!0)],2)],2)):Gr("v-if",!0)],2),Gr(" append slot "),e.$slots.append?(Nr(),Fr("div",{key:1,class:U(Tt(m).be("group","append"))},[Eo(e.$slots,"append")],2)):Gr("v-if",!0)],64)):(Nr(),Fr(Or,{key:1},[Gr(" textarea "),Wr("textarea",Jr({id:Tt(f),ref_key:"textarea",ref:x,class:[Tt(b).e("inner"),Tt(m).is("focus",Tt(O))]},Tt(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,tabindex:e.tabindex,disabled:Tt(h),readonly:e.readonly,autocomplete:e.autocomplete,style:j.value,"aria-label":e.ariaLabel,placeholder:e.placeholder,form:e.form,autofocus:e.autofocus,rows:e.rows,role:e.containerRole,onCompositionstart:t[3]||(t[3]=(...e)=>Tt(oe)&&Tt(oe)(...e)),onCompositionupdate:t[4]||(t[4]=(...e)=>Tt(re)&&Tt(re)(...e)),onCompositionend:t[5]||(t[5]=(...e)=>Tt(le)&&Tt(le)(...e)),onInput:ee,onFocus:t[6]||(t[6]=(...e)=>Tt(T)&&Tt(T)(...e)),onBlur:t[7]||(t[7]=(...e)=>Tt(M)&&Tt(M)(...e)),onChange:te,onKeydown:ue}),null,16,Pp),z.value?(Nr(),Fr("span",{key:0,style:D(_.value),class:U([Tt(m).e("count"),Tt(m).is("outside","outside"===e.wordLimitPosition)])},Z(V.value)+" / "+Z(e.maxlength),7)):Gr("v-if",!0)],64))],38))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]])),$p={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Dp=Symbol("scrollbarContextKey"),zp=pd({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean});var Vp=kd(Yn({__name:"thumb",props:zp,setup(e){const t=e,n=mn(Dp),o=Ta("scrollbar");n||Qc("Thumb","can not inject scrollbar context");const r=kt(),l=kt(),a=kt({}),s=kt(!1);let i=!1,u=!1,c=0,d=0,p=Dc?document.onselectstart:null;const f=ml(()=>$p[t.vertical?"vertical":"horizontal"]),v=ml(()=>(({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}))({size:t.size,move:t.move,bar:f.value})),h=ml(()=>r.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/l.value[f.value.offset]),m=e=>{var t;if(e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button))return;null==(t=window.getSelection())||t.removeAllRanges(),b(e);const n=e.currentTarget;n&&(a.value[f.value.axis]=n[f.value.offset]-(e[f.value.client]-n.getBoundingClientRect()[f.value.direction]))},g=e=>{if(!l.value||!r.value||!n.wrapElement)return;const t=100*(Math.abs(e.target.getBoundingClientRect()[f.value.direction]-e[f.value.client])-l.value[f.value.offset]/2)*h.value/r.value[f.value.offset];n.wrapElement[f.value.scroll]=t*n.wrapElement[f.value.scrollSize]/100},b=e=>{e.stopImmediatePropagation(),i=!0,c=n.wrapElement.scrollHeight,d=n.wrapElement.scrollWidth,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),p=document.onselectstart,document.onselectstart=()=>!1},y=e=>{if(!r.value||!l.value)return;if(!1===i)return;const t=a.value[f.value.axis];if(!t)return;const o=100*(-1*(r.value.getBoundingClientRect()[f.value.direction]-e[f.value.client])-(l.value[f.value.offset]-t))*h.value/r.value[f.value.offset];"scrollLeft"===f.value.scroll?n.wrapElement[f.value.scroll]=o*d/100:n.wrapElement[f.value.scroll]=o*c/100},w=()=>{i=!1,a.value[f.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),x(),u&&(s.value=!1)};fo(()=>{x(),document.removeEventListener("mouseup",w)});const x=()=>{document.onselectstart!==p&&(document.onselectstart=p)};return Gc(Pt(n,"scrollbarElement"),"mousemove",()=>{u=!1,s.value=!!t.size}),Gc(Pt(n,"scrollbarElement"),"mouseleave",()=>{u=!0,s.value=i}),(e,t)=>(Nr(),$r(Ll,{name:Tt(o).b("fade"),persisted:""},{default:pn(()=>[fn(Wr("div",{ref_key:"instance",ref:r,class:U([Tt(o).e("bar"),Tt(o).is(f.value.key)]),onMousedown:g,onClick:t[0]||(t[0]=ma(()=>{},["stop"]))},[Wr("div",{ref_key:"thumb",ref:l,class:U(Tt(o).e("thumb")),style:D(v.value),onMousedown:m},null,38)],34),[[Ul,e.always||s.value]])]),_:1},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]),Hp=kd(Yn({__name:"bar",props:pd({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),setup(e,{expose:t}){const n=e,o=mn(Dp),r=kt(0),l=kt(0),a=kt(""),s=kt(""),i=kt(1),u=kt(1);return t({handleScroll:e=>{if(e){const t=e.offsetHeight-4,n=e.offsetWidth-4;l.value=100*e.scrollTop/t*i.value,r.value=100*e.scrollLeft/n*u.value}},update:()=>{const e=null==o?void 0:o.wrapElement;if(!e)return;const t=e.offsetHeight-4,r=e.offsetWidth-4,l=t**2/e.scrollHeight,c=r**2/e.scrollWidth,d=Math.max(l,n.minSize),p=Math.max(c,n.minSize);i.value=l/(t-l)/(d/(t-d)),u.value=c/(r-c)/(p/(r-p)),s.value=d+4(Nr(),Fr(Or,null,[Ur(Vp,{move:r.value,ratio:u.value,size:a.value,always:e.always},null,8,["move","ratio","size","always"]),Ur(Vp,{move:l.value,ratio:i.value,size:s.value,vertical:"",always:e.always},null,8,["move","ratio","size","always"])],64))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const Wp=pd({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:[String,Object,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...hp(["ariaLabel","ariaOrientation"])}),Up=["tabindex"],Kp=Ed(kd(Yn({name:"ElScrollbar",__name:"scrollbar",props:Wp,emits:{"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Nc)},setup(e,{expose:t,emit:n}){const o=e,r=n,l=Ta("scrollbar");let a,s,i,u=0,c=0,d="";const p={bottom:!1,top:!1,right:!1,left:!1},f=kt(),v=kt(),h=kt(),m=kt(),g=ml(()=>{const e={},t=Pd(o.height),n=Pd(o.maxHeight);return t&&(e.height=t),n&&(e.maxHeight=n),[o.wrapStyle,e]}),b=ml(()=>[o.wrapClass,l.e("wrap"),{[l.em("wrap","hidden-default")]:!o.native}]),y=ml(()=>[l.e("view"),o.viewClass]),x={top:"bottom",bottom:"top",left:"right",right:"left"},C=()=>{var e;if(v.value){null==(e=m.value)||e.handleScroll(v.value);const t=u,n=c;u=v.value.scrollTop,c=v.value.scrollLeft;const l={bottom:u+v.value.clientHeight>=v.value.scrollHeight-o.distance,top:u<=o.distance&&0!==t,right:c+v.value.clientWidth>=v.value.scrollWidth-o.distance&&n!==c,left:c<=o.distance&&0!==n};if(r("scroll",{scrollTop:u,scrollLeft:c}),t!==u&&(d=u>t?"bottom":"top"),n!==c&&(d=c>n?"right":"left"),o.distance>0){if((e=>{var t;return null!=(t=p[e])&&t})(d))return;(e=>{const t=x[d];if(!t)return;const n=e[d],o=e[t];n&&!p[d]&&(p[d]=!0),!o&&p[t]&&(p[t]=!1)})(l)}l[d]&&r("end-reached",d)}},S=()=>{var e;null==(e=m.value)||e.update(),p[d]=!1};return wn(()=>o.noresize,e=>{e?(null==a||a(),null==s||s(),null==i||i()):(({stop:a}=Zc(h,S)),({stop:s}=Zc(v,S)),i=Gc("resize",S))},{immediate:!0}),wn(()=>[o.maxHeight,o.height],()=>{o.native||tn(()=>{var e;S(),v.value&&(null==(e=m.value)||e.handleScroll(v.value))})}),hn(Dp,pt({scrollbarElement:f,wrapElement:v})),no(()=>{v.value&&(v.value.scrollTop=u,v.value.scrollLeft=c)}),uo(()=>{o.native||tn(()=>{S()})}),po(()=>S()),t({wrapRef:v,update:S,scrollTo:function(e,t){w(e)?v.value.scrollTo(e):Nc(e)&&Nc(t)&&v.value.scrollTo(e,t)},setScrollTop:e=>{Nc(e)&&(v.value.scrollTop=e)},setScrollLeft:e=>{Nc(e)&&(v.value.scrollLeft=e)},handleScroll:C}),(e,t)=>(Nr(),Fr("div",{ref_key:"scrollbarRef",ref:f,class:U(Tt(l).b())},[Wr("div",{ref_key:"wrapRef",ref:v,class:U(b.value),style:D(g.value),tabindex:e.tabindex,onScroll:C},[(Nr(),$r(Co(e.tag),{id:e.id,ref_key:"resizeRef",ref:h,class:U(y.value),style:D(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:pn(()=>[Eo(e.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,Up),e.native?Gr("v-if",!0):(Nr(),$r(Hp,{key:0,ref_key:"barRef",ref:m,always:e.always,"min-size":e.minSize},null,8,["always","min-size"]))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]])),qp=Symbol("popper"),Gp=Symbol("popperContent"),Yp=pd({role:{type:String,values:["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],default:"tooltip"}});var Xp=kd(Yn({name:"ElPopper",inheritAttrs:!1,__name:"popper",props:Yp,setup(e,{expose:t}){const n=e,o={triggerRef:kt(),popperInstanceRef:kt(),contentRef:kt(),referenceRef:kt(),role:ml(()=>n.role)};return t(o),hn(qp,o),(e,t)=>Eo(e.$slots,"default")}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]),Zp=kd(Yn({name:"ElPopperArrow",inheritAttrs:!1,__name:"arrow",setup(e,{expose:t}){const n=Ta("popper"),{arrowRef:o,arrowStyle:r}=mn(Gp,void 0);return fo(()=>{o.value=void 0}),t({arrowRef:o}),(e,t)=>(Nr(),Fr("span",{ref_key:"arrowRef",ref:o,class:U(Tt(n).e("arrow")),style:D(Tt(r)),"data-popper-arrow":""},null,6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Jp=pd({virtualRef:{type:Object},virtualTriggering:Boolean,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},onBlur:{type:Function},onContextmenu:{type:Function},id:String,open:Boolean}),Qp=Symbol("elForwardRef"),ef=Yn({name:"ElOnlyChild",setup(e,{slots:t,attrs:n}){var o;const r=mn(Qp),a=(s=null!=(o=null==r?void 0:r.setForwardRef)?o:l,{mounted(e){s(e)},updated(e){s(e)},unmounted(){s(null)}});var s;return()=>{var e;const o=null==(e=t.default)?void 0:e.call(t,n);if(!o)return null;const[r,l]=tf(o);return r?fn(Kr(r,n),[[a]]):null}}});function tf(e){if(!e)return[null,0];const t=e,n=t.filter(e=>e.type!==Mr).length;for(const o of t){if(w(o))switch(o.type){case Mr:continue;case Tr:case"svg":return[nf(o),n];case Or:return tf(o.children);default:return[o,n]}return[nf(o),n]}return[null,0]}function nf(e){const t=Ta("only-child");return Ur("span",{class:t.e("content")},[e])}var of=kd(Yn({name:"ElPopperTrigger",inheritAttrs:!1,__name:"trigger",props:Jp,setup(e,{expose:t}){const n=e,{role:o,triggerRef:r}=mn(qp,void 0);var l;l=r,hn(Qp,{setForwardRef:e=>{l.value=e}});const a=ml(()=>i.value?n.id:void 0),s=ml(()=>{if(o&&"tooltip"===o.value)return n.open&&n.id?n.id:void 0}),i=ml(()=>{if(o&&"tooltip"!==o.value)return o.value}),u=ml(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return uo(()=>{wn(()=>n.virtualRef,e=>{e&&(r.value=Kc(e))},{immediate:!0}),wn(r,(e,t)=>{null==c||c(),c=void 0,Bc(t)&&d.forEach(e=>{const o=n[e];o&&t.removeEventListener(e.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(e))}),Bc(e)&&(d.forEach(t=>{const o=n[t];o&&e.addEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),Ip(e)&&(c=wn([a,s,i,u],t=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((n,o)=>{Cc(t[o])?e.removeAttribute(n):e.setAttribute(n,t[o])})},{immediate:!0}))),Bc(t)&&Ip(t)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(e=>t.removeAttribute(e))},{immediate:!0})}),fo(()=>{if(null==c||c(),c=void 0,r.value&&Bc(r.value)){const e=r.value;d.forEach(t=>{const o=n[t];o&&e.removeEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),r.value=void 0}}),t({triggerRef:r}),(e,t)=>e.virtualTriggering?Gr("v-if",!0):(Nr(),$r(Tt(ef),Jr({key:0},e.$attrs,{"aria-controls":a.value,"aria-describedby":s.value,"aria-expanded":u.value,"aria-haspopup":i.value}),{default:pn(()=>[Eo(e.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const rf="focus-trap.focus-after-trapped",lf="focus-trap.focus-after-released",af={cancelable:!0,bubbles:!1},sf={cancelable:!0,bubbles:!1},uf="focusAfterTrapped",cf="focusAfterReleased",df=Symbol("elFocusTrap"),pf=kt(),ff=kt(0),vf=kt(0);let hf=0;const mf=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0||e===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},gf=(e,t)=>{for(const n of e)if(!bf(n,t))return n},bf=(e,t)=>{if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1},yf=(e,t)=>{if(e){const n=document.activeElement;Bp(e,{preventScroll:!0}),vf.value=window.performance.now(),e!==n&&(e=>e instanceof HTMLInputElement&&"select"in e)(e)&&t&&e.select()}};function wf(e,t){const n=[...e],o=e.indexOf(t);return-1!==o&&n.splice(o,1),n}const xf=(()=>{let e=[];return{push:t=>{const n=e[0];n&&t!==n&&n.pause(),e=wf(e,t),e.unshift(t)},remove:t=>{var n,o;e=wf(e,t),null==(o=null==(n=e[0])?void 0:n.resume)||o.call(n)}}})(),Cf=()=>{pf.value="pointer",ff.value=window.performance.now()},Sf=()=>{pf.value="keyboard",ff.value=window.performance.now()},_f=e=>new CustomEvent("focus-trap.focusout-prevented",{...sf,detail:e}),kf={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},Ef=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const r=null==e?void 0:e(o);if(!1===n||!r)return null==t?void 0:t(o)},Af=e=>{if(e.code&&"Unidentified"!==e.code)return e.code;const t=Of(e);return t?Object.values(kf).includes(t)?t:" "===t?kf.space:"":""},Of=e=>{let t=e.key&&"Unidentified"!==e.key?e.key:"";if(!t&&"keyup"===e.type&&Dc&&/android/i.test(window.navigator.userAgent)){const n=e.target;t=n.value.charAt(n.selectionStart-1)}return t};let Tf=[];const Mf=e=>{Af(e)===kf.esc&&Tf.forEach(t=>t(e))};var Lf=kd(Yn({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[uf,cf,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=kt();let o,r;const{focusReason:l}=(uo(()=>{0===hf&&(document.addEventListener("mousedown",Cf),document.addEventListener("touchstart",Cf),document.addEventListener("keydown",Sf)),hf++}),fo(()=>{hf--,hf<=0&&(document.removeEventListener("mousedown",Cf),document.removeEventListener("touchstart",Cf),document.removeEventListener("keydown",Sf))}),{focusReason:pf,lastUserFocusTimestamp:ff,lastAutomatedFocusTimestamp:vf});var a;a=n=>{e.trapped&&!s.paused&&t("release-requested",n)},uo(()=>{0===Tf.length&&document.addEventListener("keydown",Mf),Dc&&Tf.push(a)}),fo(()=>{Tf=Tf.filter(e=>e!==a),0===Tf.length&&Dc&&document.removeEventListener("keydown",Mf)});const s={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=n=>{if(!e.loop&&!e.trapped)return;if(s.paused)return;const{altKey:o,ctrlKey:r,metaKey:a,currentTarget:i,shiftKey:u}=n,{loop:c}=e,d=Af(n)===kf.tab&&!o&&!r&&!a,p=document.activeElement;if(d&&p){const e=i,[o,r]=(e=>{const t=mf(e);return[gf(t,e),gf(t.reverse(),e)]})(e);if(o&&r)if(u||p!==r){if(u&&[o,e].includes(p)){const e=_f({focusReason:l.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&yf(r,!0))}}else{const e=_f({focusReason:l.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&yf(o,!0))}else if(p===e){const e=_f({focusReason:l.value});t("focusout-prevented",e),e.defaultPrevented||n.preventDefault()}}};hn(df,{focusTrapRef:n,onKeydown:i}),wn(()=>e.focusTrapEl,e=>{e&&(n.value=e)},{immediate:!0}),wn([n],([e],[t])=>{e&&(e.addEventListener("keydown",i),e.addEventListener("focusin",d),e.addEventListener("focusout",p)),t&&(t.removeEventListener("keydown",i),t.removeEventListener("focusin",d),t.removeEventListener("focusout",p))});const u=e=>{t(uf,e)},c=e=>t(cf,e),d=l=>{const a=Tt(n);if(!a)return;const i=l.target,u=l.relatedTarget,c=i&&a.contains(i);e.trapped||u&&a.contains(u)||(o=u),c&&t("focusin",l),s.paused||e.trapped&&(c?r=i:yf(r,!0))},p=o=>{const a=Tt(n);if(!s.paused&&a)if(e.trapped){const n=o.relatedTarget;Cc(n)||a.contains(n)||setTimeout(()=>{if(!s.paused&&e.trapped){const e=_f({focusReason:l.value});t("focusout-prevented",e),e.defaultPrevented||yf(r,!0)}},0)}else{const e=o.target;e&&a.contains(e)||t("focusout",o)}};async function f(){await tn();const t=Tt(n);if(t){xf.push(s);const n=t.contains(document.activeElement)?o:document.activeElement;if(o=n,!t.contains(n)){const o=new Event(rf,af);t.addEventListener(rf,u),t.dispatchEvent(o),o.defaultPrevented||tn(()=>{let o=e.focusStartEl;b(o)||(yf(o),document.activeElement!==o&&(o="first")),"first"===o&&((e,t=!1)=>{const n=document.activeElement;for(const o of e)if(yf(o,t),document.activeElement!==n)return})(mf(t),!0),document.activeElement!==n&&"container"!==o||yf(t)})}}}function v(){const e=Tt(n);if(e){e.removeEventListener(rf,u);const t=new CustomEvent(lf,{...af,detail:{focusReason:l.value}});e.addEventListener(lf,c),e.dispatchEvent(t),t.defaultPrevented||"keyboard"!=l.value&&ff.value>vf.value&&!e.contains(document.activeElement)||yf(null!=o?o:document.body),e.removeEventListener(lf,c),xf.remove(s),o=null,r=null}}return uo(()=>{e.trapped&&f(),wn(()=>e.trapped,e=>{e?f():v()})}),fo(()=>{e.trapped&&v(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",p),n.value=void 0),o=null,r=null}),{onKeydown:i}}}),[["render",function(e,t,n,o,r,l){return Eo(e.$slots,"default",{handleKeydown:e.onKeydown})}],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]),Rf="top",If="bottom",Nf="right",Bf="left",jf="auto",Pf=[Rf,If,Nf,Bf],Ff="start",$f="end",Df="viewport",zf="popper",Vf=Pf.reduce(function(e,t){return e.concat([t+"-"+Ff,t+"-"+$f])},[]),Hf=[].concat(Pf,[jf]).reduce(function(e,t){return e.concat([t,t+"-"+Ff,t+"-"+$f])},[]),Wf=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Uf(e){return e?(e.nodeName||"").toLowerCase():null}function Kf(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function qf(e){return e instanceof Kf(e).Element||e instanceof Element}function Gf(e){return e instanceof Kf(e).HTMLElement||e instanceof HTMLElement}function Yf(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Kf(e).ShadowRoot||e instanceof ShadowRoot)}var Xf={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},r=t.elements[e];!Gf(r)||!Uf(r)||(Object.assign(r.style,n),Object.keys(o).forEach(function(e){var t=o[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var o=t.elements[e],r=t.attributes[e]||{},l=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});!Gf(o)||!Uf(o)||(Object.assign(o.style,l),Object.keys(r).forEach(function(e){o.removeAttribute(e)}))})}},requires:["computeStyles"]};function Zf(e){return e.split("-")[0]}var Jf=Math.max,Qf=Math.min,ev=Math.round;function tv(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,r=1;if(Gf(e)&&t){var l=e.offsetHeight,a=e.offsetWidth;a>0&&(o=ev(n.width)/a||1),l>0&&(r=ev(n.height)/l||1)}return{width:n.width/o,height:n.height/r,top:n.top/r,right:n.right/o,bottom:n.bottom/r,left:n.left/o,x:n.left/o,y:n.top/r}}function nv(e){var t=tv(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ov(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Yf(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function rv(e){return Kf(e).getComputedStyle(e)}function lv(e){return["table","td","th"].indexOf(Uf(e))>=0}function av(e){return((qf(e)?e.ownerDocument:e.document)||window.document).documentElement}function sv(e){return"html"===Uf(e)?e:e.assignedSlot||e.parentNode||(Yf(e)?e.host:null)||av(e)}function iv(e){return Gf(e)&&"fixed"!==rv(e).position?e.offsetParent:null}function uv(e){for(var t=Kf(e),n=iv(e);n&&lv(n)&&"static"===rv(n).position;)n=iv(n);return n&&("html"===Uf(n)||"body"===Uf(n)&&"static"===rv(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Gf(e)&&"fixed"===rv(e).position)return null;var n=sv(e);for(Yf(n)&&(n=n.host);Gf(n)&&["html","body"].indexOf(Uf(n))<0;){var o=rv(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function cv(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function dv(e,t,n){return Jf(e,Qf(t,n))}function pv(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fv(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var vv={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,r=e.options,l=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Zf(n.placement),i=cv(s),u=[Bf,Nf].indexOf(s)>=0?"height":"width";if(l&&a){var c=function(e,t){return pv("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fv(e,Pf))}(r.padding,n),d=nv(l),p="y"===i?Rf:Bf,f="y"===i?If:Nf,v=n.rects.reference[u]+n.rects.reference[i]-a[i]-n.rects.popper[u],h=a[i]-n.rects.reference[i],m=uv(l),g=m?"y"===i?m.clientHeight||0:m.clientWidth||0:0,b=v/2-h/2,y=c[p],w=g-d[u]-c[f],x=g/2-d[u]/2+b,C=dv(y,x,w),S=i;n.modifiersData[o]=((t={})[S]=C,t.centerOffset=C-x,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"==typeof o&&!(o=t.elements.popper.querySelector(o))||!ov(t.elements.popper,o)||(t.elements.arrow=o))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function hv(e){return e.split("-")[1]}var mv={top:"auto",right:"auto",bottom:"auto",left:"auto"};function gv(e){var t,n=e.popper,o=e.popperRect,r=e.placement,l=e.variation,a=e.offsets,s=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=a.x,f=void 0===p?0:p,v=a.y,h=void 0===v?0:v,m="function"==typeof c?c({x:f,y:h}):{x:f,y:h};f=m.x,h=m.y;var g=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=Bf,w=Rf,x=window;if(u){var C=uv(n),S="clientHeight",_="clientWidth";C===Kf(n)&&"static"!==rv(C=av(n)).position&&"absolute"===s&&(S="scrollHeight",_="scrollWidth"),(r===Rf||(r===Bf||r===Nf)&&l===$f)&&(w=If,h-=(d&&C===x&&x.visualViewport?x.visualViewport.height:C[S])-o.height,h*=i?1:-1),r!==Bf&&(r!==Rf&&r!==If||l!==$f)||(y=Nf,f-=(d&&C===x&&x.visualViewport?x.visualViewport.width:C[_])-o.width,f*=i?1:-1)}var k,E=Object.assign({position:s},u&&mv),A=!0===c?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:ev(t*o)/o||0,y:ev(n*o)/o||0}}({x:f,y:h}):{x:f,y:h};return f=A.x,h=A.y,i?Object.assign({},E,((k={})[w]=b?"0":"",k[y]=g?"0":"",k.transform=(x.devicePixelRatio||1)<=1?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",k)):Object.assign({},E,((t={})[w]=b?h+"px":"",t[y]=g?f+"px":"",t.transform="",t))}var bv={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,l=n.adaptive,a=void 0===l||l,s=n.roundOffsets,i=void 0===s||s,u={placement:Zf(t.placement),variation:hv(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,gv(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:i})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,gv(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},yv={passive:!0},wv={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,r=o.scroll,l=void 0===r||r,a=o.resize,s=void 0===a||a,i=Kf(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return l&&u.forEach(function(e){e.addEventListener("scroll",n.update,yv)}),s&&i.addEventListener("resize",n.update,yv),function(){l&&u.forEach(function(e){e.removeEventListener("scroll",n.update,yv)}),s&&i.removeEventListener("resize",n.update,yv)}},data:{}},xv={left:"right",right:"left",bottom:"top",top:"bottom"};function Cv(e){return e.replace(/left|right|bottom|top/g,function(e){return xv[e]})}var Sv={start:"end",end:"start"};function _v(e){return e.replace(/start|end/g,function(e){return Sv[e]})}function kv(e){var t=Kf(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Ev(e){return tv(av(e)).left+kv(e).scrollLeft}function Av(e){var t=rv(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function Ov(e){return["html","body","#document"].indexOf(Uf(e))>=0?e.ownerDocument.body:Gf(e)&&Av(e)?e:Ov(sv(e))}function Tv(e,t){var n;void 0===t&&(t=[]);var o=Ov(e),r=o===(null==(n=e.ownerDocument)?void 0:n.body),l=Kf(o),a=r?[l].concat(l.visualViewport||[],Av(o)?o:[]):o,s=t.concat(a);return r?s:s.concat(Tv(sv(a)))}function Mv(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lv(e,t){return t===Df?Mv(function(e){var t=Kf(e),n=av(e),o=t.visualViewport,r=n.clientWidth,l=n.clientHeight,a=0,s=0;return o&&(r=o.width,l=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=o.offsetLeft,s=o.offsetTop)),{width:r,height:l,x:a+Ev(e),y:s}}(e)):qf(t)?function(e){var t=tv(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):Mv(function(e){var t,n=av(e),o=kv(e),r=null==(t=e.ownerDocument)?void 0:t.body,l=Jf(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=Jf(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-o.scrollLeft+Ev(e),i=-o.scrollTop;return"rtl"===rv(r||n).direction&&(s+=Jf(n.clientWidth,r?r.clientWidth:0)-l),{width:l,height:a,x:s,y:i}}(av(e)))}function Rv(e,t,n){var o="clippingParents"===t?function(e){var t=Tv(sv(e)),n=["absolute","fixed"].indexOf(rv(e).position)>=0&&Gf(e)?uv(e):e;return qf(n)?t.filter(function(e){return qf(e)&&ov(e,n)&&"body"!==Uf(e)}):[]}(e):[].concat(t),r=[].concat(o,[n]),l=r[0],a=r.reduce(function(t,n){var o=Lv(e,n);return t.top=Jf(o.top,t.top),t.right=Qf(o.right,t.right),t.bottom=Qf(o.bottom,t.bottom),t.left=Jf(o.left,t.left),t},Lv(e,l));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Iv(e){var t,n=e.reference,o=e.element,r=e.placement,l=r?Zf(r):null,a=r?hv(r):null,s=n.x+n.width/2-o.width/2,i=n.y+n.height/2-o.height/2;switch(l){case Rf:t={x:s,y:n.y-o.height};break;case If:t={x:s,y:n.y+n.height};break;case Nf:t={x:n.x+n.width,y:i};break;case Bf:t={x:n.x-o.width,y:i};break;default:t={x:n.x,y:n.y}}var u=l?cv(l):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case Ff:t[u]=t[u]-(n[c]/2-o[c]/2);break;case $f:t[u]=t[u]+(n[c]/2-o[c]/2)}}return t}function Nv(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=void 0===o?e.placement:o,l=n.boundary,a=void 0===l?"clippingParents":l,s=n.rootBoundary,i=void 0===s?Df:s,u=n.elementContext,c=void 0===u?zf:u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,v=void 0===f?0:f,h=pv("number"!=typeof v?v:fv(v,Pf)),m=c===zf?"reference":zf,g=e.rects.popper,b=e.elements[p?m:c],y=Rv(qf(b)?b:b.contextElement||av(e.elements.popper),a,i),w=tv(e.elements.reference),x=Iv({reference:w,element:g,placement:r}),C=Mv(Object.assign({},g,x)),S=c===zf?C:w,_={top:y.top-S.top+h.top,bottom:S.bottom-y.bottom+h.bottom,left:y.left-S.left+h.left,right:S.right-y.right+h.right},k=e.modifiersData.offset;if(c===zf&&k){var E=k[r];Object.keys(_).forEach(function(e){var t=[Nf,If].indexOf(e)>=0?1:-1,n=[Rf,If].indexOf(e)>=0?"y":"x";_[e]+=E[n]*t})}return _}var Bv={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,l=void 0===r||r,a=n.altAxis,s=void 0===a||a,i=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,v=void 0===f||f,h=n.allowedAutoPlacements,m=t.options.placement,g=Zf(m),b=i||(g!==m&&v?function(e){if(Zf(e)===jf)return[];var t=Cv(e);return[_v(e),t,_v(t)]}(m):[Cv(m)]),y=[m].concat(b).reduce(function(e,n){return e.concat(Zf(n)===jf?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=n.boundary,l=n.rootBoundary,a=n.padding,s=n.flipVariations,i=n.allowedAutoPlacements,u=void 0===i?Hf:i,c=hv(o),d=c?s?Vf:Vf.filter(function(e){return hv(e)===c}):Pf,p=d.filter(function(e){return u.indexOf(e)>=0});0===p.length&&(p=d);var f=p.reduce(function(t,n){return t[n]=Nv(e,{placement:n,boundary:r,rootBoundary:l,padding:a})[Zf(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:h}):n)},[]),w=t.rects.reference,x=t.rects.popper,C=new Map,S=!0,_=y[0],k=0;k=0,M=T?"width":"height",L=Nv(t,{placement:E,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),R=T?O?Nf:Bf:O?If:Rf;w[M]>x[M]&&(R=Cv(R));var I=Cv(R),N=[];if(l&&N.push(L[A]<=0),s&&N.push(L[R]<=0,L[I]<=0),N.every(function(e){return e})){_=E,S=!1;break}C.set(E,N)}if(S)for(var B=function(e){var t=y.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return _=t,"break"},j=v?3:1;j>0&&"break"!==B(j);j--);t.placement!==_&&(t.modifiersData[o]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function jv(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Pv(e){return[Rf,Nf,If,Bf].some(function(t){return e[t]>=0})}var Fv={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,l=t.modifiersData.preventOverflow,a=Nv(t,{elementContext:"reference"}),s=Nv(t,{altBoundary:!0}),i=jv(a,o),u=jv(s,r,l),c=Pv(i),d=Pv(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}},$v={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.offset,l=void 0===r?[0,0]:r,a=Hf.reduce(function(e,n){return e[n]=function(e,t,n){var o=Zf(e),r=[Bf,Rf].indexOf(o)>=0?-1:1,l="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=l[0],s=l[1];return a=a||0,s=(s||0)*r,[Bf,Nf].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,l),e},{}),s=a[t.placement],i=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=a}},Dv={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=Iv({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}},zv={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,l=void 0===r||r,a=n.altAxis,s=void 0!==a&&a,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,v=n.tetherOffset,h=void 0===v?0:v,m=Nv(t,{boundary:i,rootBoundary:u,padding:d,altBoundary:c}),g=Zf(t.placement),b=hv(t.placement),y=!b,w=cv(g),x=function(e){return"x"===e?"y":"x"}(w),C=t.modifiersData.popperOffsets,S=t.rects.reference,_=t.rects.popper,k="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,E="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(C){if(l){var T,M="y"===w?Rf:Bf,L="y"===w?If:Nf,R="y"===w?"height":"width",I=C[w],N=I+m[M],B=I-m[L],j=f?-_[R]/2:0,P=b===Ff?S[R]:_[R],F=b===Ff?-_[R]:-S[R],$=t.elements.arrow,D=f&&$?nv($):{width:0,height:0},z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},V=z[M],H=z[L],W=dv(0,S[R],D[R]),U=y?S[R]/2-j-W-V-E.mainAxis:P-W-V-E.mainAxis,K=y?-S[R]/2+j+W+H+E.mainAxis:F+W+H+E.mainAxis,q=t.elements.arrow&&uv(t.elements.arrow),G=q?"y"===w?q.clientTop||0:q.clientLeft||0:0,Y=null!=(T=null==A?void 0:A[w])?T:0,X=I+K-Y,Z=dv(f?Qf(N,I+U-Y-G):N,I,f?Jf(B,X):B);C[w]=Z,O[w]=Z-I}if(s){var J,Q="x"===w?Rf:Bf,ee="x"===w?If:Nf,te=C[x],ne="y"===x?"height":"width",oe=te+m[Q],re=te-m[ee],le=-1!==[Rf,Bf].indexOf(g),ae=null!=(J=null==A?void 0:A[x])?J:0,se=le?oe:te-S[ne]-_[ne]-ae+E.altAxis,ie=le?te+S[ne]+_[ne]-ae-E.altAxis:re,ue=f&&le?function(e,t,n){var o=dv(e,t,n);return o>n?n:o}(se,te,ie):dv(f?se:oe,te,f?ie:re);C[x]=ue,O[x]=ue-te}t.modifiersData[o]=O}},requiresIfExists:["offset"]};function Vv(e,t,n){void 0===n&&(n=!1);var o=Gf(t),r=Gf(t)&&function(e){var t=e.getBoundingClientRect(),n=ev(t.width)/e.offsetWidth||1,o=ev(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),l=av(t),a=tv(e,r),s={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(o||!o&&!n)&&(("body"!==Uf(t)||Av(l))&&(s=function(e){return e!==Kf(e)&&Gf(e)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(e):kv(e)}(t)),Gf(t)?((i=tv(t,!0)).x+=t.clientLeft,i.y+=t.clientTop):l&&(i.x=Ev(l))),{x:a.left+s.scrollLeft-i.x,y:a.top+s.scrollTop-i.y,width:a.width,height:a.height}}function Hv(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}}),o.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||r(e)}),o}function Wv(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}var Uv={placement:"bottom",modifiers:[],strategy:"absolute"};function Kv(){for(var e=arguments.length,t=new Array(e),n=0;n({})},strategy:{type:String,values:["fixed","absolute"],default:"absolute"}}),Zv=pd({...Xv,...Yv,id:String,style:{type:[String,Array,Object]},className:{type:[String,Array,Object]},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:[String,Array,Object]},popperStyle:{type:[String,Array,Object]},referenceEl:{type:Object},triggerTargetEl:{type:Object},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...hp(["ariaLabel"]),loop:Boolean}),Jv=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:r}=e,l={placement:n,strategy:o,...r,modifiers:[...Qv(e),...t]};return function(e,t){t&&(e.modifiers=[...e.modifiers,...null!=t?t:[]])}(l,null==r?void 0:r.modifiers),l};function Qv(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,null!=t?t:12]}},{name:"preventOverflow",options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}const eh=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:e})=>{const t=function(e){const t=Object.keys(e.elements),n=yc(t.map(t=>[t,e.styles[t]||{}])),o=yc(t.map(t=>[t,e.attributes[t]]));return{styles:n,attributes:o}}(e);Object.assign(a.value,t)},requires:["computeStyles"]},r=ml(()=>{const{onFirstUpdate:e,placement:t,strategy:r,modifiers:l}=Tt(n);return{onFirstUpdate:e,placement:t||"bottom",strategy:r||"absolute",modifiers:[...l||[],o,{name:"applyStyles",enabled:!1}]}}),l=Et(),a=kt({styles:{popper:{position:Tt(r).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{l.value&&(l.value.destroy(),l.value=void 0)};return wn(r,e=>{const t=Tt(l);t&&t.setOptions(e)},{deep:!0}),wn([e,t],([e,t])=>{s(),e&&t&&(l.value=Gv(e,t,Tt(r)))}),fo(()=>{s()}),{state:ml(()=>{var e;return{...(null==(e=Tt(l))?void 0:e.state)||{}}}),styles:ml(()=>Tt(a).styles),attributes:ml(()=>Tt(a).attributes),update:()=>{var e;return null==(e=Tt(l))?void 0:e.update()},forceUpdate:()=>{var e;return null==(e=Tt(l))?void 0:e.forceUpdate()},instanceRef:ml(()=>Tt(l))}},th=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:r}=mn(qp,void 0),l=kt(),a=ml(()=>e.arrowOffset),s=ml(()=>({name:"eventListeners",enabled:!!e.visible})),i=ml(()=>{var e;const t=Tt(l),n=null!=(e=Tt(a))?e:0;return{name:"arrow",enabled:(o=t,!(void 0===o)),options:{element:t,padding:n}};var o}),u=ml(()=>({onFirstUpdate:()=>{v()},...Jv(e,[Tt(i),Tt(s)])})),c=ml(()=>(e=>{if(Dc)return Kc(e)})(e.referenceEl)||Tt(o)),{attributes:d,state:p,styles:f,update:v,forceUpdate:h,instanceRef:m}=eh(c,n,u);return wn(m,e=>t.value=e,{flush:"sync"}),uo(()=>{wn(()=>{var e,t;return null==(t=null==(e=Tt(c))?void 0:e.getBoundingClientRect)?void 0:t.call(e)},()=>{v()})}),fo(()=>{t.value=void 0}),{attributes:d,arrowRef:l,contentRef:n,instanceRef:m,state:p,styles:f,role:r,forceUpdate:h,update:v}};var nh=kd(Yn({name:"ElPopperContent",__name:"content",props:Zv,emits:{mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},setup(e,{expose:t,emit:n}){const o=n,r=e,{focusStartRef:a,trapped:s,onFocusAfterReleased:i,onFocusAfterTrapped:u,onFocusInTrap:c,onFocusoutPrevented:d,onReleaseRequested:p}=((e,t)=>{const n=kt(!1),o=kt();return fo(()=>{o.value=void 0}),{focusStartRef:o,trapped:n,onFocusAfterReleased:e=>{var n;"pointer"!==(null==(n=e.detail)?void 0:n.focusReason)&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:t=>{e.visible&&!n.value&&(t.target&&(o.value=t.target),n.value=!0)},onFocusoutPrevented:t=>{e.trapping||("pointer"===t.detail.focusReason&&t.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}})(r,o),{attributes:f,arrowRef:v,contentRef:h,styles:m,instanceRef:g,role:b,update:y}=th(r),{ariaModal:w,arrowStyle:x,contentAttrs:C,contentClass:S,contentStyle:_,updateZIndex:k}=((e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:r}=rd(),l=Ta("popper"),a=ml(()=>Tt(t).popper),s=kt(Nc(e.zIndex)?e.zIndex:r()),i=ml(()=>[l.b(),l.is("pure",e.pure),l.is(e.effect),e.popperClass]),u=ml(()=>[{zIndex:Tt(s)},Tt(n).popper,e.popperStyle||{}]);return{ariaModal:ml(()=>"dialog"===o.value?"false":void 0),arrowStyle:ml(()=>Tt(n).arrow||{}),contentAttrs:a,contentClass:i,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=Nc(e.zIndex)?e.zIndex:r()}}})(r,{styles:m,attributes:f,role:b}),E=mn(kp,void 0);let A;hn(Gp,{arrowStyle:x,arrowRef:v}),E&&hn(kp,{...E,addInputId:l,removeInputId:l});const O=(e=!0)=>{y(),e&&k()},T=()=>{O(!1),r.visible&&r.focusOnShow?s.value=!0:!1===r.visible&&(s.value=!1)};return uo(()=>{wn(()=>r.triggerTargetEl,(e,t)=>{null==A||A(),A=void 0;const n=Tt(e||h.value),o=Tt(t||h.value);Bc(n)&&(A=wn([b,()=>r.ariaLabel,w,()=>r.id],e=>{["role","aria-label","aria-modal","id"].forEach((t,o)=>{Cc(e[o])?n.removeAttribute(t):n.setAttribute(t,e[o])})},{immediate:!0})),o!==n&&Bc(o)&&["role","aria-label","aria-modal","id"].forEach(e=>{o.removeAttribute(e)})},{immediate:!0}),wn(()=>r.visible,T,{immediate:!0})}),fo(()=>{null==A||A(),A=void 0,h.value=void 0}),t({popperContentRef:h,popperInstanceRef:g,updatePopper:O,contentStyle:_}),(e,t)=>(Nr(),Fr("div",Jr({ref_key:"contentRef",ref:h},Tt(C),{style:Tt(_),class:Tt(S),tabindex:"-1",onMouseenter:t[0]||(t[0]=t=>e.$emit("mouseenter",t)),onMouseleave:t[1]||(t[1]=t=>e.$emit("mouseleave",t))}),[Ur(Tt(Lf),{loop:e.loop,trapped:Tt(s),"trap-on-focus-in":!0,"focus-trap-el":Tt(h),"focus-start-el":Tt(a),onFocusAfterTrapped:Tt(u),onFocusAfterReleased:Tt(i),onFocusin:Tt(c),onFocusoutPrevented:Tt(d),onReleaseRequested:Tt(p)},{default:pn(()=>[Eo(e.$slots,"default")]),_:3},8,["loop","trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const oh=Ed(Xp),rh=Symbol("elTooltip");function lh(){let e;const t=()=>window.clearTimeout(e);return Fc(()=>t()),{registerTimeout:(n,o)=>{t(),e=window.setTimeout(n,o)},cancelTimeout:t}}const ah=pd({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),sh=pd({...ah,...Zv,appendTo:{type:_d.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:Boolean,default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...hp(["ariaLabel"])}),ih=pd({...Jp,disabled:Boolean,trigger:{type:[String,Array],default:"hover"},triggerKeys:{type:Array,default:()=>[kf.enter,kf.numpadEnter,kf.space]},focusOnTarget:Boolean}),uh=dd({type:Boolean,default:null}),ch=dd({type:Function}),{useModelToggleProps:dh,useModelToggleEmits:ph,useModelToggle:fh}=(e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t];return{useModelToggle:({indicator:o,toggleReason:r,shouldHideWhenRouteChanges:l,shouldProceed:a,onShow:s,onHide:i})=>{const u=ol(),{emit:c}=u,d=u.props,p=ml(()=>g(d[n])),f=ml(()=>null===d[e]),v=e=>{!0!==o.value&&(o.value=!0,r&&(r.value=e),g(s)&&s(e))},h=e=>{!1!==o.value&&(o.value=!1,r&&(r.value=e),g(i)&&i(e))},m=e=>{if(!0===d.disabled||g(a)&&!a())return;const n=p.value&&Dc;n&&c(t,!0),!f.value&&n||v(e)},b=e=>{if(!0===d.disabled||!Dc)return;const n=p.value&&Dc;n&&c(t,!1),!f.value&&n||h(e)},y=e=>{Ic(e)&&(d.disabled&&e?p.value&&c(t,!1):o.value!==e&&(e?v():h()))};return wn(()=>d[e],y),l&&void 0!==u.appContext.config.globalProperties.$route&&wn(()=>({...u.proxy.$route}),()=>{l.value&&o.value&&b()}),uo(()=>{y(d[e])}),{hide:b,show:m,toggle:()=>{o.value?b():m()},hasUpdateHandler:p}},useModelToggleProps:{[e]:uh,[n]:ch},useModelToggleEmits:o}})("visible"),vh=pd({...Yp,...dh,...sh,...ih,...Yv,showArrow:{type:Boolean,default:!0}}),hh=[...ph,"before-show","before-hide","show","hide","open","close"],mh=(e,t)=>f(e)?e.includes(t):e===t,gh=(e,t,n)=>o=>{mh(Tt(e),t)&&n(o)};var bh=kd(Yn({name:"ElTooltipTrigger",__name:"trigger",props:ih,setup(e,{expose:t}){const n=e,o=Ta("tooltip"),{controlled:r,id:l,open:a,onOpen:s,onClose:i,onToggle:u}=mn(rh,void 0),c=kt(null),d=()=>{if(Tt(r)||n.disabled)return!0},p=Pt(n,"trigger"),f=Ef(d,gh(p,"hover",e=>{s(e),n.focusOnTarget&&e.target&&tn(()=>{Bp(e.target,{preventScroll:!0})})})),v=Ef(d,gh(p,"hover",i)),h=Ef(d,gh(p,"click",e=>{0===e.button&&u(e)})),m=Ef(d,gh(p,"focus",s)),g=Ef(d,gh(p,"focus",i)),b=Ef(d,gh(p,"contextmenu",e=>{e.preventDefault(),u(e)})),y=Ef(d,e=>{const t=Af(e);n.triggerKeys.includes(t)&&(e.preventDefault(),u(e))});return t({triggerRef:c}),(e,t)=>(Nr(),$r(Tt(of),{id:Tt(l),"virtual-ref":e.virtualRef,open:Tt(a),"virtual-triggering":e.virtualTriggering,class:U(Tt(o).e("trigger")),onBlur:Tt(g),onClick:Tt(h),onContextmenu:Tt(b),onFocus:Tt(m),onMouseenter:Tt(f),onMouseleave:Tt(v),onKeydown:Tt(y)},{default:pn(()=>[Eo(e.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const yh=()=>{const e=Oa(),t=Cp(),n=ml(()=>`${e.value}-popper-container-${t.prefix}`),o=ml(()=>`#${n.value}`);return{id:n,selector:o}},wh=()=>{const{id:e,selector:t}=yh();return io(()=>{Dc&&(document.body.querySelector(t.value)||(e=>{const t=document.createElement("div");t.id=e,document.body.appendChild(t)})(e.value))}),{id:e,selector:t}},xh=Yn({name:"ElTooltipContent",inheritAttrs:!1,__name:"content",props:sh,setup(e,{expose:t}){const n=e,{selector:o}=yh(),r=Ta("tooltip"),l=kt(),a=Pc(()=>{var e;return null==(e=l.value)?void 0:e.popperContentRef});let s;const{controlled:i,id:u,open:c,trigger:d,onClose:p,onOpen:v,onShow:h,onHide:m,onBeforeShow:g,onBeforeHide:b}=mn(rh,void 0),y=ml(()=>n.transition||`${r.namespace.value}-fade-in-linear`),w=ml(()=>n.persistent);fo(()=>{null==s||s()});const x=ml(()=>!!Tt(w)||Tt(c)),C=ml(()=>!n.disabled&&Tt(c)),S=ml(()=>n.appendTo||o.value),_=ml(()=>{var e;return null!=(e=n.style)?e:{}}),k=kt(!0),E=()=>{m(),N()&&Bp(document.body,{preventScroll:!0}),k.value=!0},A=()=>{if(Tt(i))return!0},O=Ef(A,()=>{n.enterable&&mh(Tt(d),"hover")&&v()}),T=Ef(A,()=>{mh(Tt(d),"hover")&&p()}),M=()=>{var e,t;null==(t=null==(e=l.value)?void 0:e.updatePopper)||t.call(e),null==g||g()},L=()=>{null==b||b()},R=()=>{h()},I=()=>{n.virtualTriggering||p()},N=e=>{var t;const n=null==(t=l.value)?void 0:t.popperContentRef,o=(null==e?void 0:e.relatedTarget)||document.activeElement;return null==n?void 0:n.contains(o)};return wn(()=>Tt(c),e=>{e?(k.value=!1,s=function(e,t,n={}){const{window:o=qc,ignore:r=[],capture:l=!0,detectIframe:a=!1}=n;if(!o)return Vc;Hc&&!Yc&&(Yc=!0,Array.from(o.document.body.children).forEach(e=>e.addEventListener("click",Vc)),o.document.documentElement.addEventListener("click",Vc));let s=!0;const i=e=>r.some(t=>{if("string"==typeof t)return Array.from(o.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{const n=Kc(t);return n&&(e.target===n||e.composedPath().includes(n))}}),u=[Gc(o,"click",n=>{const o=Kc(e);o&&o!==n.target&&!n.composedPath().includes(o)&&(0===n.detail&&(s=!i(n)),s?t(n):s=!0)},{passive:!0,capture:l}),Gc(o,"pointerdown",t=>{const n=Kc(e);s=!i(t)&&!(!n||t.composedPath().includes(n))},{passive:!0}),a&&Gc(o,"blur",n=>{setTimeout(()=>{var r;const l=Kc(e);"IFRAME"!==(null==(r=o.document.activeElement)?void 0:r.tagName)||(null==l?void 0:l.contains(o.document.activeElement))||t(n)},0)})].filter(Boolean);return()=>u.forEach(e=>e())}(a,()=>{var e;Tt(i)||(e=Tt(d),e||0===e?f(e)?e:[e]:[]).every(e=>"hover"!==e&&"focus"!==e)&&p()},{detectIframe:!0})):null==s||s()},{flush:"post"}),wn(()=>n.content,()=>{var e,t;null==(t=null==(e=l.value)?void 0:e.updatePopper)||t.call(e)}),t({contentRef:l,isFocusInsideContent:N}),(e,t)=>(Nr(),$r(Tt(Od),{disabled:!e.teleported,to:S.value},{default:pn(()=>[x.value||!k.value?(Nr(),$r(Ll,{key:0,name:y.value,appear:!w.value,onAfterLeave:E,onBeforeEnter:M,onAfterEnter:R,onBeforeLeave:L,persisted:""},{default:pn(()=>[fn(Ur(Tt(nh),Jr({id:Tt(u),ref_key:"contentRef",ref:l},e.$attrs,{"aria-label":e.ariaLabel,"aria-hidden":k.value,"boundaries-padding":e.boundariesPadding,"fallback-placements":e.fallbackPlacements,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,"popper-class":e.popperClass,"popper-style":[e.popperStyle,_.value],"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,visible:C.value,"z-index":e.zIndex,loop:e.loop,onMouseenter:Tt(O),onMouseleave:Tt(T),onBlur:I,onClose:Tt(p)}),{default:pn(()=>[Eo(e.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","loop","onMouseenter","onMouseleave","onClose"]),[[Ul,C.value]])]),_:3},8,["name","appear"])):Gr("v-if",!0)]),_:3},8,["disabled","to"]))}});var Ch=kd(xh,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const Sh=["innerHTML"],_h={key:1},kh=Ed(kd(Yn({name:"ElTooltip",__name:"tooltip",props:vh,emits:hh,setup(e,{expose:t,emit:n}){const o=e,r=n;wh();const l=Ta("tooltip"),a=Sp(),s=kt(),i=kt(),u=()=>{var e;const t=Tt(s);t&&(null==(e=t.popperInstanceRef)||e.update())},c=kt(!1),d=kt(),{show:p,hide:f,hasUpdateHandler:v}=fh({indicator:c,toggleReason:d}),{onOpen:h,onClose:m}=(({showAfter:e,hideAfter:t,autoClose:n,open:o,close:r})=>{const{registerTimeout:l}=lh(),{registerTimeout:a,cancelTimeout:s}=lh();return{onOpen:(t,s=Tt(e))=>{l(()=>{o(t);const e=Tt(n);Nc(e)&&e>0&&a(()=>{r(t)},e)},s)},onClose:(e,n=Tt(t))=>{s(),l(()=>{r(e)},n)}}})({showAfter:Pt(o,"showAfter"),hideAfter:Pt(o,"hideAfter"),autoClose:Pt(o,"autoClose"),open:p,close:f}),g=ml(()=>Ic(o.visible)&&!v.value),b=ml(()=>[l.b(),o.popperClass]);return hn(rh,{controlled:g,id:a,open:vt(c),trigger:Pt(o,"trigger"),onOpen:h,onClose:m,onToggle:e=>{Tt(c)?m(e):h(e)},onShow:()=>{r("show",d.value)},onHide:()=>{r("hide",d.value)},onBeforeShow:()=>{r("before-show",d.value)},onBeforeHide:()=>{r("before-hide",d.value)},updatePopper:u}),wn(()=>o.disabled,e=>{e&&c.value&&(c.value=!1)}),oo(()=>c.value&&f()),fo(()=>{d.value=void 0}),t({popperRef:s,contentRef:i,isFocusInsideContent:e=>{var t;return null==(t=i.value)?void 0:t.isFocusInsideContent(e)},updatePopper:u,onOpen:h,onClose:m,hide:f}),(e,t)=>(Nr(),$r(Tt(oh),{ref_key:"popperRef",ref:s,role:e.role},{default:pn(()=>[Ur(bh,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering,"focus-on-target":e.focusOnTarget},{default:pn(()=>[e.$slots.default?Eo(e.$slots,"default",{key:0}):Gr("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering","focus-on-target"]),Ur(Ch,{ref_key:"contentRef",ref:i,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":b.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo,loop:e.loop},{default:pn(()=>[Eo(e.$slots,"content",{},()=>[e.rawContent?(Nr(),Fr("span",{key:0,innerHTML:e.content},null,8,Sh)):(Nr(),Fr("span",_h,Z(e.content),1))]),e.showArrow?(Nr(),$r(Tt(Zp),{key:0})):Gr("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to","loop"])]),_:3},8,["role"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]])),Eh=Ed(kd(Yn({name:"ElBadge",__name:"badge",props:pd({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:[String,Object,Array]},offset:{type:Array,default:[0,0]},badgeClass:{type:String}}),setup(e,{expose:t}){const n=e,o=Ta("badge"),r=ml(()=>n.isDot?"":Nc(n.value)&&Nc(n.max)&&n.max{var e;return[{backgroundColor:n.color,marginRight:Pd(-n.offset[0]),marginTop:Pd(n.offset[1])},null!=(e=n.badgeStyle)?e:{}]});return t({content:r}),(e,t)=>(Nr(),Fr("div",{class:U(Tt(o).b())},[Eo(e.$slots,"default"),Ur(Ll,{name:`${Tt(o).namespace.value}-zoom-in-center`,persisted:""},{default:pn(()=>[fn(Wr("sup",{class:U([Tt(o).e("content"),Tt(o).em("content",e.type),Tt(o).is("fixed",!!e.$slots.default),Tt(o).is("dot",e.isDot),Tt(o).is("hide-zero",!e.showZero&&0===e.value),e.badgeClass]),style:D(l.value)},[Eo(e.$slots,"content",{value:r.value},()=>[qr(Z(r.value),1)])],6),[[Ul,!e.hidden&&(r.value||e.isDot||e.$slots.content)]])]),_:3},8,["name"])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]])),Ah=Symbol("buttonGroupContextKey"),Oh=({from:e,replacement:t,scope:n,version:o,ref:r,type:l="API"},a)=>{wn(()=>Tt(a),e=>{},{immediate:!0})},Th=pd({size:vd,disabled:{type:Boolean,default:void 0},type:{type:String,values:["default","primary","success","warning","info","danger","text",""],default:""},icon:{type:lp},nativeType:{type:String,values:["button","submit","reset"],default:"button"},loading:Boolean,loadingIcon:{type:lp,default:()=>Yd},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:[String,Object],default:"button"}}),Mh={click:e=>e instanceof MouseEvent};function Lh(e,t){(function(e){return"string"==typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function Rh(e){return Math.min(1,Math.max(0,e))}function Ih(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Nh(e){return e<=1?"".concat(100*Number(e),"%"):e}function Bh(e){return 1===e.length?"0"+e:String(e)}function jh(e,t,n){e=Lh(e,255),t=Lh(t,255),n=Lh(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),l=0,a=0,s=(o+r)/2;if(o===r)a=0,l=0;else{var i=o-r;switch(a=s>.5?i/(2-o-r):i/(o+r),o){case e:l=(t-n)/i+(t1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Fh(e,t,n){e=Lh(e,255),t=Lh(t,255),n=Lh(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),l=0,a=o,s=o-r,i=0===o?0:s/o;if(o===r)l=0;else{switch(o){case e:l=(t-n)/s+(t>16,g:(65280&e)>>8,b:255&e}}(t)),this.originalInput=t;var r=Hh(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(o=n.format)&&void 0!==o?o:r.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,o=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=Ih(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return 0===this.toHsl().s},e.prototype.toHsv=function(){var e=Fh(this.r,this.g,this.b);return{h:360*e.h,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=Fh(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.v);return 1===this.a?"hsv(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsva(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var e=jh(this.r,this.g,this.b);return{h:360*e.h,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=jh(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.l);return 1===this.a?"hsl(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsla(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(e){return void 0===e&&(e=!1),$h(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return void 0===e&&(e=!1),"#"+this.toHex(e)},e.prototype.toHex8=function(e){return void 0===e&&(e=!1),function(e,t,n,o,r){var l,a=[Bh(Math.round(e).toString(16)),Bh(Math.round(t).toString(16)),Bh(Math.round(n).toString(16)),Bh((l=o,Math.round(255*parseFloat(l)).toString(16)))];return r&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return void 0===e&&(e=!1),"#"+this.toHex8(e)},e.prototype.toHexShortString=function(e){return void 0===e&&(e=!1),1===this.a?this.toHexString(e):this.toHex8String(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return 1===this.a?"rgb(".concat(e,", ").concat(t,", ").concat(n,")"):"rgba(".concat(e,", ").concat(t,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var e=function(e){return"".concat(Math.round(100*Lh(e,255)),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(100*Lh(e,255))};return 1===this.a?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+$h(this.r,this.g,this.b,!1),t=0,n=Object.entries(Vh);t=0;return t||!o||!e.startsWith("hex")&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this.a?this.toName():this.toRgbString()},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Rh(n.l),new e(n)},e.prototype.brighten=function(t){void 0===t&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-t/100*255))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-t/100*255))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-t/100*255))),new e(n)},e.prototype.darken=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Rh(n.l),new e(n)},e.prototype.tint=function(e){return void 0===e&&(e=10),this.mix("white",e)},e.prototype.shade=function(e){return void 0===e&&(e=10),this.mix("black",e)},e.prototype.desaturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Rh(n.s),new e(n)},e.prototype.saturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Rh(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){void 0===n&&(n=50);var o=this.toRgb(),r=new e(t).toRgb(),l=n/100;return new e({r:(r.r-o.r)*l+o.r,g:(r.g-o.g)*l+o.g,b:(r.b-o.b)*l+o.b,a:(r.a-o.a)*l+o.a})},e.prototype.analogous=function(t,n){void 0===t&&(t=6),void 0===n&&(n=30);var o=this.toHsl(),r=360/n,l=[this];for(o.h=(o.h-(r*t>>1)+720)%360;--t;)o.h=(o.h+r)%360,l.push(new e(o));return l},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var n=this.toHsv(),o=n.h,r=n.s,l=n.v,a=[],s=1/t;t--;)a.push(new e({h:o,s:r,v:l})),l=(l+s)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),r=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/r,g:(n.g*n.a+o.g*o.a*(1-n.a))/r,b:(n.b*n.a+o.b*o.a*(1-n.a))/r,a:r})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,r=[this],l=360/t,a=1;a{let o={},r=e.color;if(r){const l=r.match(/var\((.*?)\)/);l&&(r=window.getComputedStyle(window.document.documentElement).getPropertyValue(l[1]));const a=new Yh(r),s=e.dark?a.tint(20).toString():Xh(a,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?Xh(a,90):a.tint(90).toString(),"text-color":r,"border-color":e.dark?Xh(a,50):a.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":r,"hover-border-color":r,"active-bg-color":s,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":s}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?Xh(a,90):a.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?Xh(a,50):a.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?Xh(a,80):a.tint(80).toString());else{const l=e.dark?Xh(a,30):a.tint(30).toString(),i=a.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":r,"text-color":i,"border-color":r,"hover-bg-color":l,"hover-text-color":i,"hover-border-color":l,"active-bg-color":s,"active-border-color":s}),t.value){const t=e.dark?Xh(a,50):a.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=t,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=t}}}return o})}(o),a=Ta("button"),{_ref:s,_size:i,_type:u,_disabled:c,_props:d,_plain:p,_round:f,_text:v,shouldAddSpace:h,handleClick:m}=((e,t)=>{Oh({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},ml(()=>"text"===e.type));const n=mn(Ah,void 0),o=wd("button"),{form:r}=Ep(),l=Tp(ml(()=>null==n?void 0:n.size)),a=Mp(),s=kt(),i=Ro(),u=ml(()=>{var t;return e.type||(null==n?void 0:n.type)||(null==(t=o.value)?void 0:t.type)||""}),c=ml(()=>{var t,n,r;return null!=(r=null!=(n=e.autoInsertSpace)?n:null==(t=o.value)?void 0:t.autoInsertSpace)&&r}),d=ml(()=>{var t,n,r;return null!=(r=null!=(n=e.plain)?n:null==(t=o.value)?void 0:t.plain)&&r}),p=ml(()=>{var t,n,r;return null!=(r=null!=(n=e.round)?n:null==(t=o.value)?void 0:t.round)&&r}),f=ml(()=>{var t,n,r;return null!=(r=null!=(n=e.text)?n:null==(t=o.value)?void 0:t.text)&&r}),v=ml(()=>"button"===e.tag?{ariaDisabled:a.value||e.loading,disabled:a.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=ml(()=>{var e;const t=null==(e=i.default)?void 0:e.call(i);if(c.value&&1===(null==t?void 0:t.length)){const e=t[0];if((null==e?void 0:e.type)===Tr){const t=e.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(t.trim())}}return!1});return{_disabled:a,_size:l,_type:u,_ref:s,_props:v,_plain:d,_round:p,_text:f,shouldAddSpace:h,handleClick:n=>{a.value||e.loading?n.stopPropagation():("reset"===e.nativeType&&(null==r||r.resetFields()),t("click",n))}}})(o,r),g=ml(()=>[a.b(),a.m(u.value),a.m(i.value),a.is("disabled",c.value),a.is("loading",o.loading),a.is("plain",p.value),a.is("round",f.value),a.is("circle",o.circle),a.is("text",v.value),a.is("link",o.link),a.is("has-bg",o.bg)]);return t({ref:s,size:i,type:u,disabled:c,shouldAddSpace:h}),(e,t)=>(Nr(),$r(Co(e.tag),Jr({ref_key:"_ref",ref:s},Tt(d),{class:g.value,style:Tt(l),onClick:Tt(m)}),{default:pn(()=>[e.loading?(Nr(),Fr(Or,{key:0},[e.$slots.loading?Eo(e.$slots,"loading",{key:0}):(Nr(),$r(Tt($d),{key:1,class:U(Tt(a).is("loading"))},{default:pn(()=>[(Nr(),$r(Co(e.loadingIcon)))]),_:1},8,["class"]))],64)):e.icon||e.$slots.icon?(Nr(),$r(Tt($d),{key:1},{default:pn(()=>[e.icon?(Nr(),$r(Co(e.icon),{key:0})):Eo(e.$slots,"icon",{key:1})]),_:3})):Gr("v-if",!0),e.$slots.default?(Nr(),Fr("span",{key:2,class:U({[Tt(a).em("text","expand")]:Tt(h)})},[Eo(e.$slots,"default")],2)):Gr("v-if",!0)]),_:3},16,["class","style","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]),Jh=kd(Yn({name:"ElButtonGroup",__name:"button-group",props:{size:Th.size,type:Th.type,direction:{type:String,values:["horizontal","vertical"],default:"horizontal"}},setup(e){const t=e;hn(Ah,pt({size:Pt(t,"size"),type:Pt(t,"type")}));const n=Ta("button");return(e,o)=>(Nr(),Fr("div",{class:U([Tt(n).b("group"),Tt(n).bm("group",t.direction)])},[Eo(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Qh=Ed(Zh,{ButtonGroup:Jh});Ad(Jh);const em=Ed(kd(Yn({name:"ElCard",__name:"card",props:pd({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:[String,Object,Array],default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),setup(e){const t=wd("card"),n=Ta("card");return(e,o)=>{var r;return Nr(),Fr("div",{class:U([Tt(n).b(),Tt(n).is(`${e.shadow||(null==(r=Tt(t))?void 0:r.shadow)||"always"}-shadow`)])},[e.$slots.header||e.header?(Nr(),Fr("div",{key:0,class:U([Tt(n).e("header"),e.headerClass])},[Eo(e.$slots,"header",{},()=>[qr(Z(e.header),1)])],2)):Gr("v-if",!0),Wr("div",{class:U([Tt(n).e("body"),e.bodyClass]),style:D(e.bodyStyle)},[Eo(e.$slots,"default")],6),e.$slots.footer||e.footer?(Nr(),Fr("div",{key:1,class:U([Tt(n).e("footer"),e.footerClass])},[Eo(e.$slots,"footer",{},()=>[qr(Z(e.footer),1)])],2)):Gr("v-if",!0)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]));var tm=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(tm||{});const nm=e=>{const t=f(e)?e:[e],n=[];return t.forEach(e=>{var t;f(e)?n.push(...nm(e)):Dr(e)&&(null==(t=e.component)?void 0:t.subTree)?n.push(e,...nm(e.component.subTree)):Dr(e)&&f(e.children)?n.push(...nm(e.children)):Dr(e)&&2===e.shapeFlag?n.push(...nm(e.type())):n.push(e)}),n},om={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:{type:Boolean,default:void 0},checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:vd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},ariaLabel:String,...hp(["ariaControls"])},rm={[Td]:e=>b(e)||Nc(e)||Ic(e),change:e=>b(e)||Nc(e)||Ic(e)},lm=Symbol("checkboxGroupContextKey"),am=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:r,isLabeledByFormItem:l})=>{const a=mn(lm,void 0),{formItem:s}=Ep(),{emit:i}=ol();function u(t){var n,o,r,l;return[!0,e.trueValue,e.trueLabel].includes(t)?null==(o=null!=(n=e.trueValue)?n:e.trueLabel)||o:null!=(l=null!=(r=e.falseValue)?r:e.falseLabel)&&l}const c=ml(()=>(null==a?void 0:a.validateEvent)||e.validateEvent);return wn(()=>e.modelValue,()=>{c.value&&(null==s||s.validate("change").catch(e=>{}))}),{handleChange:function(e){if(n.value)return;const t=e.target;i(Md,u(t.checked),e)},onClickRoot:async function(a){n.value||o.value||r.value||!l.value||a.composedPath().some(e=>"LABEL"===e.tagName)||(t.value=u([!1,e.falseValue,e.falseLabel].includes(t.value)),await tn(),function(e,t){i(Md,u(e),t)}(t.value,a))}}},sm=(e,t)=>{const{formItem:n}=Ep(),{model:o,isGroup:r,isLimitExceeded:l}=(e=>{const t=kt(!1),{emit:n}=ol(),o=mn(lm,void 0),r=ml(()=>!1===Rc(o)),l=kt(!1),a=ml({get(){var n,l;return r.value?null==(n=null==o?void 0:o.modelValue)?void 0:n.value:null!=(l=e.modelValue)?l:t.value},set(e){var s,i;r.value&&f(e)?(l.value=void 0!==(null==(s=null==o?void 0:o.max)?void 0:s.value)&&e.length>(null==o?void 0:o.max.value)&&e.length>a.value.length,!1===l.value&&(null==(i=null==o?void 0:o.changeEvent)||i.call(o,e))):(n(Td,e),t.value=e)}});return{model:a,isGroup:r,isLimitExceeded:l}})(e),{isFocused:a,isChecked:s,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,actualValue:d}=((e,t,{model:n})=>{const o=mn(lm,void 0),r=kt(!1),l=ml(()=>jc(e.value)?e.label:e.value),a=ml(()=>{const t=n.value;return Ic(t)?t:f(t)?w(l.value)?t.map(wt).some(e=>xc(e,l.value)):t.map(wt).includes(l.value):null!=t?t===e.trueValue||t===e.trueLabel:!!t});return{checkboxButtonSize:Tp(ml(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value}),{prop:!0}),isChecked:a,isFocused:r,checkboxSize:Tp(ml(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value})),hasOwnLabel:ml(()=>!!t.default||!jc(l.value)),actualValue:l}})(e,t,{model:o}),{isDisabled:p}=(({model:e,isChecked:t})=>{const n=mn(lm,void 0),o=mn(_p,void 0),r=ml(()=>{var o,r;const l=null==(o=null==n?void 0:n.max)?void 0:o.value,a=null==(r=null==n?void 0:n.min)?void 0:r.value;return!Rc(l)&&e.value.length>=l&&!t.value||!Rc(a)&&e.value.length<=a&&t.value});return{isDisabled:Mp(ml(()=>{var e,t;return void 0===n?null!=(e=null==o?void 0:o.disabled)?e:r.value:(null==(t=n.disabled)?void 0:t.value)||r.value})),isLimitDisabled:r}})({model:o,isChecked:s}),{inputId:v,isLabeledByFormItem:h}=Ap(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:r}),{handleChange:m,onClickRoot:g}=am(e,{model:o,isLimitExceeded:l,hasOwnLabel:c,isDisabled:p,isLabeledByFormItem:h});var b,y;return e.checked&&(f(o.value)&&!o.value.includes(d.value)?o.value.push(d.value):o.value=null==(y=null!=(b=e.trueValue)?b:e.trueLabel)||y),Oh({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},ml(()=>r.value&&jc(e.value))),Oh({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},ml(()=>!!e.trueLabel)),Oh({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},ml(()=>!!e.falseLabel)),{inputId:v,isLabeledByFormItem:h,isChecked:s,isDisabled:p,isFocused:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:o,actualValue:d,handleChange:m,onClickRoot:g}},im=["id","indeterminate","name","tabindex","disabled"];var um=kd(Yn({name:"ElCheckbox",__name:"checkbox",props:om,emits:rm,setup(e){const t=e,n=Ro(),{inputId:o,isLabeledByFormItem:r,isChecked:l,isDisabled:a,isFocused:s,checkboxSize:i,hasOwnLabel:u,model:c,actualValue:d,handleChange:p,onClickRoot:f}=sm(t,n),v=ml(()=>{var e,n,o,r;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(r=null!=(o=t.falseValue)?o:t.falseLabel)&&r}:{value:d.value}}),h=Ta("checkbox"),m=ml(()=>[h.b(),h.m(i.value),h.is("disabled",a.value),h.is("bordered",t.border),h.is("checked",l.value)]),g=ml(()=>[h.e("input"),h.is("disabled",a.value),h.is("checked",l.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(e,t)=>(Nr(),$r(Co(!Tt(u)&&Tt(r)?"span":"label"),{for:!Tt(u)&&Tt(r)?null:Tt(o),class:U(m.value),"aria-controls":e.indeterminate?e.ariaControls:null,"aria-checked":e.indeterminate?"mixed":void 0,"aria-label":e.ariaLabel,onClick:Tt(f)},{default:pn(()=>[Wr("span",{class:U(g.value)},[fn(Wr("input",Jr({id:Tt(o),"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:Tt(h).e("original"),type:"checkbox",indeterminate:e.indeterminate,name:e.name,tabindex:e.tabindex,disabled:Tt(a)},v.value,{onChange:t[1]||(t[1]=(...e)=>Tt(p)&&Tt(p)(...e)),onFocus:t[2]||(t[2]=e=>s.value=!0),onBlur:t[3]||(t[3]=e=>s.value=!1),onClick:t[4]||(t[4]=ma(()=>{},["stop"]))}),null,16,im),[[da,Tt(c)]]),Wr("span",{class:U(Tt(h).e("inner"))},null,2)],2),Tt(u)?(Nr(),Fr("span",{key:0,class:U(Tt(h).e("label"))},[Eo(e.$slots,"default"),e.$slots.default?Gr("v-if",!0):(Nr(),Fr(Or,{key:0},[qr(Z(e.label),1)],64))],2)):Gr("v-if",!0)]),_:3},8,["for","class","aria-controls","aria-checked","aria-label","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const cm=["name","tabindex","disabled"];var dm=kd(Yn({name:"ElCheckboxButton",__name:"checkbox-button",props:om,emits:rm,setup(e){const t=e,n=Ro(),{isFocused:o,isChecked:r,isDisabled:l,checkboxButtonSize:a,model:s,actualValue:i,handleChange:u}=sm(t,n),c=ml(()=>{var e,n,o,r;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(r=null!=(o=t.falseValue)?o:t.falseLabel)&&r}:{value:i.value}}),d=mn(lm,void 0),p=Ta("checkbox"),f=ml(()=>{var e,t,n,o;const r=null!=(t=null==(e=null==d?void 0:d.fill)?void 0:e.value)?t:"";return{backgroundColor:r,borderColor:r,color:null!=(o=null==(n=null==d?void 0:d.textColor)?void 0:n.value)?o:"",boxShadow:r?`-1px 0 0 0 ${r}`:void 0}}),v=ml(()=>[p.b("button"),p.bm("button",a.value),p.is("disabled",l.value),p.is("checked",r.value),p.is("focus",o.value)]);return(e,t)=>(Nr(),Fr("label",{class:U(v.value)},[fn(Wr("input",Jr({"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:Tt(p).be("button","original"),type:"checkbox",name:e.name,tabindex:e.tabindex,disabled:Tt(l)},c.value,{onChange:t[1]||(t[1]=(...e)=>Tt(u)&&Tt(u)(...e)),onFocus:t[2]||(t[2]=e=>o.value=!0),onBlur:t[3]||(t[3]=e=>o.value=!1),onClick:t[4]||(t[4]=ma(()=>{},["stop"]))}),null,16,cm),[[da,Tt(s)]]),e.$slots.default||e.label?(Nr(),Fr("span",{key:0,class:U(Tt(p).be("button","inner")),style:D(Tt(r)?f.value:void 0)},[Eo(e.$slots,"default",{},()=>[qr(Z(e.label),1)])],6)):Gr("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const pm=pd({modelValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:void 0},min:Number,max:Number,size:vd,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>fm},type:{type:String,values:["checkbox","button"],default:"checkbox"},...hp(["ariaLabel"])}),fm={label:"label",value:"value",disabled:"disabled"},vm=Yn({name:"ElCheckboxGroup",__name:"checkbox-group",props:pm,emits:{[Td]:e=>f(e),change:e=>f(e)},setup(e,{emit:t}){const n=e,o=t,r=Ta("checkbox"),l=Mp(),{formItem:a}=Ep(),{inputId:s,isLabeledByFormItem:i}=Ap(n,{formItemContext:a}),u=async e=>{o(Td,e),await tn(),o(Md,e)},c=ml({get:()=>n.modelValue,set(e){u(e)}}),d=ml(()=>({...fm,...n.props})),p=ml(()=>"button"===n.type?dm:um);return hn(lm,{...Lc(Nt(n),["size","min","max","validateEvent","fill","textColor"]),disabled:l,modelValue:c,changeEvent:u}),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!xc(e,t)&&(null==a||a.validate("change").catch(e=>{}))}),(e,t)=>{var n;return Nr(),$r(Co(e.tag),{id:Tt(s),class:U(Tt(r).b("group")),role:"group","aria-label":Tt(i)?void 0:e.ariaLabel||"checkbox-group","aria-labelledby":Tt(i)?null==(n=Tt(a))?void 0:n.labelId:void 0},{default:pn(()=>[Eo(e.$slots,"default",{},()=>[(Nr(!0),Fr(Or,null,ko(e.options,(e,t)=>(Nr(),$r(Co(p.value),Jr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,r={label:e[t],value:e[n],disabled:e[o]};return{...Oc(e,[t,n,o]),...r}})(e)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var hm=kd(vm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const mm=Ed(um,{CheckboxButton:dm,CheckboxGroup:hm});Ad(dm);const gm=Ad(hm),bm=pd({type:{type:String,values:["primary","success","info","warning","danger"],default:"primary"},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:fd},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),ym=["aria-label"],wm=["aria-label"],xm=Ed(kd(Yn({name:"ElTag",__name:"tag",props:bm,emits:{close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},setup(e,{emit:t}){const n=e,o=t,r=Tp(),{t:l}=ud(),a=Ta("tag"),s=ml(()=>{const{type:e,hit:t,effect:o,closable:l,round:s}=n;return[a.b(),a.is("closable",l),a.m(e||"primary"),a.m(r.value),a.m(o),a.is("hit",t),a.is("round",s)]}),i=e=>{o("close",e)},u=e=>{o("click",e)},c=e=>{var t,n,o;(null==(o=null==(n=null==(t=null==e?void 0:e.component)?void 0:t.subTree)?void 0:n.component)?void 0:o.bum)&&(e.component.subTree.component.bum=null)};return(e,t)=>e.disableTransitions?(Nr(),Fr("span",{key:0,class:U(s.value),style:D({backgroundColor:e.color}),onClick:u},[Wr("span",{class:U(Tt(a).e("content"))},[Eo(e.$slots,"default")],2),e.closable?(Nr(),Fr("button",{key:0,"aria-label":Tt(l)("el.tag.close"),class:U(Tt(a).e("close")),type:"button",onClick:ma(i,["stop"])},[Ur(Tt($d),null,{default:pn(()=>[Ur(Tt(Kd))]),_:1})],10,ym)):Gr("v-if",!0)],6)):(Nr(),$r(Ll,{key:1,name:`${Tt(a).namespace.value}-zoom-in-center`,appear:"",onVnodeMounted:c},{default:pn(()=>[Wr("span",{class:U(s.value),style:D({backgroundColor:e.color}),onClick:u},[Wr("span",{class:U(Tt(a).e("content"))},[Eo(e.$slots,"default")],2),e.closable?(Nr(),Fr("button",{key:0,"aria-label":Tt(l)("el.tag.close"),class:U(Tt(a).e("close")),type:"button",onClick:ma(i,["stop"])},[Ur(Tt($d),null,{default:pn(()=>[Ur(Tt(Kd))]),_:1})],10,wm)):Gr("v-if",!0)],6)]),_:3},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]])),Cm=new Map;if(Dc){let e;document.addEventListener("mousedown",t=>e=t),document.addEventListener("mouseup",t=>{if(e){for(const n of Cm.values())for(const{documentHandler:o}of n)o(t,e);e=void 0}})}function Sm(e,t){let n=[];return f(t.arg)?n=t.arg:Bc(t.arg)&&n.push(t.arg),function(o,r){const l=t.instance.popperRef,a=o.target,s=null==r?void 0:r.target,i=!t||!t.instance,u=!a||!s,c=e.contains(a)||e.contains(s),d=e===a,p=n.length&&n.some(e=>null==e?void 0:e.contains(a))||n.length&&n.includes(s),f=l&&(l.contains(a)||l.contains(s));i||u||c||d||p||f||t.value(o,r)}}const _m={beforeMount(e,t){Cm.has(e)||Cm.set(e,[]),Cm.get(e).push({documentHandler:Sm(e,t),bindingFn:t.value})},updated(e,t){Cm.has(e)||Cm.set(e,[]);const n=Cm.get(e),o=n.findIndex(e=>e.bindingFn===t.oldValue),r={documentHandler:Sm(e,t),bindingFn:t.value};o>=0?n.splice(o,1,r):n.push(r)},unmounted(e){Cm.delete(e)}},km=Ed(kd(Yn({name:"ElCollapseTransition",__name:"collapse-transition",setup(e){const t=Ta("collapse-transition"),n=e=>{e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},o={beforeEnter(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height&&(e.dataset.elExistsHeight=e.style.height),e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){requestAnimationFrame(()=>{e.dataset.oldOverflow=e.style.overflow,e.dataset.elExistsHeight?e.style.maxHeight=e.dataset.elExistsHeight:0!==e.scrollHeight?e.style.maxHeight=`${e.scrollHeight}px`:e.style.maxHeight=0,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"})},afterEnter(e){e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow},enterCancelled(e){n(e)},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.maxHeight=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){n(e)},leaveCancelled(e){n(e)}};return(e,n)=>(Nr(),$r(Ll,Jr({name:Tt(t).b()},function(e){const t={};for(const n in e)t[I(n)]=e[n];return t}(o)),{default:pn(()=>[Eo(e.$slots,"default")]),_:3},16,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]])),Em={placement:"top"},Am=e=>{if(!e)return{onClick:l,onMousedown:l,onMouseup:l};let t=!1,n=!1;return{onClick:o=>{t&&n&&e(o),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}},Om=pd({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:[String,Array,Object]},zIndex:{type:[String,Number]}}),Tm=Yn({name:"ElOverlay",props:Om,emits:{click:e=>e instanceof MouseEvent},setup(e,{slots:t,emit:n}){const o=Ta("overlay"),{onClick:r,onMousedown:l,onMouseup:a}=Am(e.customMaskEvent?void 0:e=>{n("click",e)});return()=>e.mask?Ur("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:r,onMousedown:l,onMouseup:a},[Eo(t,"default")],tm.STYLE|tm.CLASS|tm.PROPS,["onClick","onMouseup","onMousedown"]):gl("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Eo(t,"default")])}}),Mm=(e,t,n,o)=>{const r={offsetX:0,offsetY:0},l=kt(!1),a=(t,n)=>{if(e.value){const{offsetX:l,offsetY:a}=r,s=e.value.getBoundingClientRect(),i=s.left,u=s.top,c=s.width,d=s.height,p=document.documentElement.clientWidth,f=document.documentElement.clientHeight,v=-i+l,h=-u+a,m=p-i-c+l,g=f-u-(d{const t=e.clientX,n=e.clientY,{offsetX:o,offsetY:s}=r,i=e=>{l.value||(l.value=!0);const r=o+e.clientX-t,i=s+e.clientY-n;a(r,i)},u=()=>{l.value=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},i=()=>{t.value&&e.value&&(t.value.removeEventListener("mousedown",s),window.removeEventListener("resize",u))},u=()=>{const{offsetX:e,offsetY:t}=r;a(e,t)};return uo(()=>{yn(()=>{n.value?t.value&&e.value&&(t.value.addEventListener("mousedown",s),window.addEventListener("resize",u)):i()})}),fo(()=>{i()}),{isDragging:l,resetPosition:()=>{r.offsetX=0,r.offsetY=0,e.value&&(e.value.style.transform="")},updatePosition:u}},Lm=(e,t={})=>{_t(e)||Qc("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||Ta("popup"),o=ml(()=>n.bm("parent","hidden"));let r=0,l=!1,a="0";const s=()=>{setTimeout(()=>{"undefined"!=typeof document&&l&&document&&(document.body.style.width=a,Bd(document.body,o.value))},200)};wn(e,e=>{if(!e)return void s();l=!Id(document.body,o.value),l&&(a=document.body.style.width,Nd(document.body,o.value)),r=(e=>{var t;if(!Dc)return 0;if(void 0!==Fd)return Fd;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const r=document.createElement("div");r.style.width="100%",n.appendChild(r);const l=r.offsetWidth;return null==(t=n.parentNode)||t.removeChild(n),Fd=o-l,Fd})(n.namespace.value);const t=document.documentElement.clientHeight0&&(t||"scroll"===i)&&l&&(document.body.style.width=`calc(100% - ${r}px)`)}),re(()=>s())};let Rm=class{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,t=>{t.addEventListener("keydown",t=>{let n=!1;switch(Af(t)){case kf.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case kf.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case kf.tab:Np(e,"mouseleave");break;case kf.enter:case kf.numpadEnter:case kf.space:n=!0,t.currentTarget.click()}return n&&(t.preventDefault(),t.stopPropagation()),!1})})}},Im=class{constructor(e,t){this.domNode=e,this.submenu=null,this.submenu=null,this.init(t)}init(e){this.domNode.setAttribute("tabindex","0");const t=this.domNode.querySelector(`.${e}-menu`);t&&(this.submenu=new Rm(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",e=>{let t=!1;switch(Af(e)){case kf.down:Np(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case kf.up:Np(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case kf.tab:Np(e.currentTarget,"mouseleave");break;case kf.enter:case kf.numpadEnter:case kf.space:t=!0,e.currentTarget.click()}t&&e.preventDefault()})}},Nm=class{constructor(e,t){this.domNode=e,this.init(t)}init(e){const t=this.domNode.childNodes;Array.from(t).forEach(t=>{1===t.nodeType&&new Im(t,e)})}};var Bm=kd(Yn({name:"ElMenuCollapseTransition",__name:"menu-collapse-transition",setup(e){const t=Ta("menu"),n={onBeforeEnter:e=>e.style.opacity="0.2",onEnter(e,n){Nd(e,`${t.namespace.value}-opacity-transition`),e.style.opacity="1",n()},onAfterEnter(e){Bd(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=""},onBeforeLeave(e){e.dataset||(e.dataset={}),Id(e,t.m("collapse"))?(Bd(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),Nd(e,t.m("collapse"))):(Nd(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),Bd(e,t.m("collapse"))),e.style.width=`${e.scrollWidth}px`,e.style.overflow="hidden"},onLeave(e){Nd(e,"horizontal-collapse-transition"),e.style.width=`${e.dataset.scrollWidth}px`}};return(e,t)=>(Nr(),$r(Ll,Jr({mode:"out-in"},n),{default:pn(()=>[Eo(e.$slots,"default")]),_:3},16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function jm(e,t){const n=ml(()=>{let n=e.parent;const o=[t.value];for(;"ElMenu"!==n.type.name;)n.props.index&&o.unshift(n.props.index),n=n.parent;return o});return{parentMenu:ml(()=>{let t=e.parent;for(;t&&!["ElMenu","ElSubMenu"].includes(t.type.name);)t=t.parent;return t}),indexPath:n}}function Pm(e){return ml(()=>{const t=e.backgroundColor;return t?new Yh(t).shade(20).toString():""})}const Fm=(e,t)=>{const n=Ta("menu");return ml(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":Pm(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},$m="rootMenu",Dm="subMenu:",zm=pd({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,popperStyle:{type:[String,Object]},disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:lp},expandOpenIcon:{type:lp},collapseCloseIcon:{type:lp},collapseOpenIcon:{type:lp}}),Vm="ElSubMenu";var Hm=Yn({name:Vm,props:zm,setup(e,{slots:t,expose:n}){const o=ol(),{indexPath:r,parentMenu:l}=jm(o,ml(()=>e.index)),a=Ta("menu"),s=Ta("sub-menu"),i=mn($m);i||Qc(Vm,"can not inject root menu");const u=mn(`${Dm}${l.value.uid}`);u||Qc(Vm,"can not inject sub menu");const c=kt({}),d=kt({});let p;const f=kt(!1),v=kt(),h=kt(),m=ml(()=>0===u.level),g=ml(()=>"horizontal"===k.value&&m.value?"bottom-start":"right-start"),y=ml(()=>"horizontal"===k.value&&m.value||"vertical"===k.value&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?S.value?e.expandOpenIcon:e.expandCloseIcon:Dd:e.collapseCloseIcon&&e.collapseOpenIcon?S.value?e.collapseOpenIcon:e.collapseCloseIcon:zd),w=ml(()=>{const t=e.teleported;return Rc(t)?m.value:t}),x=ml(()=>i.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),C=ml(()=>"horizontal"===k.value&&m.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),S=ml(()=>i.openedMenus.includes(e.index)),_=ml(()=>[...Object.values(c.value),...Object.values(d.value)].some(({active:e})=>e)),k=ml(()=>i.props.mode),E=ml(()=>i.props.persistent),A=pt({index:e.index,indexPath:r,active:_}),O=Fm(i.props,u.level+1),T=ml(()=>{var t;return null!=(t=e.popperOffset)?t:i.props.popperOffset}),M=ml(()=>{var t;return null!=(t=e.popperClass)?t:i.props.popperClass}),L=ml(()=>{var t;return null!=(t=e.popperStyle)?t:i.props.popperStyle}),R=ml(()=>{var t;return null!=(t=e.showTimeout)?t:i.props.showTimeout}),I=ml(()=>{var t;return null!=(t=e.hideTimeout)?t:i.props.hideTimeout}),N=e=>{var t,n,o;e||null==(o=null==(n=null==(t=h.value)?void 0:t.popperRef)?void 0:n.popperInstanceRef)||o.destroy()},B=()=>{"hover"===i.props.menuTrigger&&"horizontal"===i.props.mode||i.props.collapse&&"vertical"===i.props.mode||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:r.value,active:_.value})},j=(t,n=R.value)=>{var o;"focus"!==t.type&&("click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode||e.disabled?u.mouseInChild.value=!0:(u.mouseInChild.value=!0,null==p||p(),({stop:p}=Uc(()=>{i.openMenu(e.index,r.value)},n)),w.value&&(null==(o=l.value.vnode.el)||o.dispatchEvent(new MouseEvent("mouseenter"))),"mouseenter"===t.type&&t.target&&tn(()=>{Bp(t.target,{preventScroll:!0})})))},P=(t=!1)=>{var n;"click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode?u.mouseInChild.value=!1:(null==p||p(),u.mouseInChild.value=!1,({stop:p}=Uc(()=>!f.value&&i.closeMenu(e.index,r.value),I.value)),w.value&&t&&(null==(n=u.handleMouseleave)||n.call(u,!0)))};wn(()=>i.props.collapse,e=>N(Boolean(e)));{const e=e=>{d.value[e.index]=e},t=e=>{delete d.value[e.index]};hn(`${Dm}${o.uid}`,{addSubMenu:e,removeSubMenu:t,handleMouseleave:P,mouseInChild:f,level:u.level+1})}return n({opened:S}),uo(()=>{i.addSubMenu(A),u.addSubMenu(A)}),fo(()=>{u.removeSubMenu(A),i.removeSubMenu(A)}),()=>{var n;const r=[null==(n=t.title)?void 0:n.call(t),gl($d,{class:s.e("icon-arrow"),style:{transform:S.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>b(y.value)?gl(o.appContext.components[y.value]):gl(y.value)})],l=i.isMenuPopup?gl(kh,{ref:h,visible:S.value,effect:"light",pure:!0,offset:T.value,showArrow:!1,persistent:E.value,popperClass:M.value,popperStyle:L.value,placement:g.value,teleported:w.value,fallbackPlacements:C.value,transition:x.value,gpuAcceleration:!1},{content:()=>{var e;return gl("div",{class:[a.m(k.value),a.m("popup-container"),M.value],onMouseenter:e=>j(e,100),onMouseleave:()=>P(!0),onFocus:e=>j(e,100)},[gl("ul",{class:[a.b(),a.m("popup"),a.m(`popup-${g.value}`)],style:O.value},[null==(e=t.default)?void 0:e.call(t)])])},default:()=>gl("div",{class:s.e("title"),onClick:B},r)}):gl(Or,{},[gl("div",{class:s.e("title"),ref:v,onClick:B},r),gl(km,{},{default:()=>{var e;return fn(gl("ul",{role:"menu",class:[a.b(),a.m("inline")],style:O.value},[null==(e=t.default)?void 0:e.call(t)]),[[Ul,S.value]])}})]);return gl("li",{class:[s.b(),s.is("active",_.value),s.is("opened",S.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:S.value,onMouseenter:j,onMouseleave:()=>P(),onFocus:j},[l])}}});const Wm=pd({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Array,default:()=>[]},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:lp,default:()=>Zd},popperEffect:{type:String,default:"dark"},popperClass:String,popperStyle:{type:[String,Object]},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),Um=e=>f(e)&&e.every(e=>b(e));var Km=Yn({name:"ElMenu",props:Wm,emits:{close:(e,t)=>b(e)&&Um(t),open:(e,t)=>b(e)&&Um(t),select:(e,t,n,o)=>b(e)&&Um(t)&&w(n)&&(Rc(o)||o instanceof Promise)},setup(e,{emit:t,slots:n,expose:o}){const r=ol(),l=r.appContext.config.globalProperties.$router,a=kt(),s=kt(),i=Ta("menu"),u=Ta("sub-menu");let c=64;const d=kt(-1),p=kt(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=kt(e.defaultActive),v=kt({}),h=kt({}),m=ml(()=>"horizontal"===e.mode||"vertical"===e.mode&&e.collapse),g=(n,o)=>{p.value.includes(n)||(e.uniqueOpened&&(p.value=p.value.filter(e=>o.includes(e))),p.value.push(n),t("open",n,o))},b=e=>{const t=p.value.indexOf(e);-1!==t&&p.value.splice(t,1)},y=(e,n)=>{b(e),t("close",e,n)},w=({index:e,indexPath:t})=>{p.value.includes(e)?y(e,t):g(e,t)},x=n=>{("horizontal"===e.mode||e.collapse)&&(p.value=[]);const{index:o,indexPath:r}=n;if(!Cc(o)&&!Cc(r))if(e.router&&l){const e=n.route||o,a=l.push(e).then(e=>(e||(f.value=o),e));t("select",o,r,{index:o,indexPath:r,route:e},a)}else f.value=o,t("select",o,r,{index:o,indexPath:r})},C=t=>{var n;const o=v.value,r=o[t]||f.value&&o[f.value]||o[e.defaultActive];f.value=null!=(n=null==r?void 0:r.index)?n:t},S=e=>{const t=getComputedStyle(e),n=Number.parseInt(t.marginLeft,10),o=Number.parseInt(t.marginRight,10);return e.offsetWidth+n+o||0},_=()=>{if(!a.value)return-1;const e=Array.from(a.value.childNodes).filter(e=>"#comment"!==e.nodeName&&("#text"!==e.nodeName||e.nodeValue)),t=getComputedStyle(a.value),n=Number.parseInt(t.paddingLeft,10),o=Number.parseInt(t.paddingRight,10),r=a.value.clientWidth-n-o;let l=0,s=0;return e.forEach((e,t)=>{l+=S(e),l<=r-c&&(s=t+1)}),s===e.length?-1:s};let k=!0;const E=()=>{const e=Kc(s);if(e&&(c=S(e)||64),d.value===_())return;const t=()=>{d.value=-1,tn(()=>{d.value=_()})};k?t():((e,t=33.34)=>{let n;return()=>{n&&clearTimeout(n),n=setTimeout(()=>{e()},t)}})(t)(),k=!1};let A;wn(()=>e.defaultActive,e=>{v.value[e]||(f.value=""),C(e)}),wn(()=>e.collapse,e=>{e&&(p.value=[])}),wn(v.value,()=>{const t=f.value&&v.value[f.value];t&&"horizontal"!==e.mode&&!e.collapse&&t.indexPath.forEach(e=>{const t=h.value[e];t&&g(e,t.indexPath)})}),yn(()=>{"horizontal"===e.mode&&e.ellipsis?A=Zc(a,E).stop:null==A||A()});const O=kt(!1);{const t=e=>{h.value[e.index]=e},n=e=>{delete h.value[e.index]},o=e=>{v.value[e.index]=e},l=e=>{delete v.value[e.index]};hn($m,pt({props:e,openedMenus:p,items:v,subMenus:h,activeIndex:f,isMenuPopup:m,addMenuItem:o,removeMenuItem:l,addSubMenu:t,removeSubMenu:n,openMenu:g,closeMenu:y,handleMenuItemClick:x,handleSubMenuClick:w})),hn(`${Dm}${r.uid}`,{addSubMenu:t,removeSubMenu:n,mouseInChild:O,level:0})}uo(()=>{"horizontal"===e.mode&&new Nm(r.vnode.el,i.namespace.value)}),o({open:e=>{const{indexPath:t}=h.value[e];t.forEach(e=>g(e,t))},close:b,updateActiveIndex:C,handleResize:E});const T=Fm(e,0);return()=>{var o,r;let l=null!=(r=null==(o=n.default)?void 0:o.call(n))?r:[];const c=[];if("horizontal"===e.mode&&a.value){const t=nm(l).filter(e=>8!==(null==e?void 0:e.shapeFlag)),n=-1===d.value?t:t.slice(0,d.value),o=-1===d.value?[]:t.slice(d.value);(null==o?void 0:o.length)&&e.ellipsis&&(l=n,c.push(gl(Hm,{ref:s,index:"sub-menu-more",class:u.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>gl($d,{class:u.e("icon-more")},{default:()=>gl(e.ellipsisIcon)}),default:()=>o})))}const f=e.closeOnClickOutside?[[_m,()=>{p.value.length&&(O.value||(p.value.forEach(e=>{return t("close",e,(n=e,h.value[n].indexPath));var n}),p.value=[]))}]]:[],v=fn(gl("ul",{key:String(e.collapse),role:"menubar",ref:a,style:T.value,class:{[i.b()]:!0,[i.m(e.mode)]:!0,[i.m("collapse")]:e.collapse}},[...l,...c]),f);return e.collapseTransition&&"vertical"===e.mode?gl(Bm,()=>v):v}}});const qm=pd({index:{type:[String,null],default:null},route:{type:[String,Object]},disabled:Boolean}),Gm="ElMenuItem";var Ym=kd(Yn({name:Gm,__name:"menu-item",props:qm,emits:{click:e=>b(e.index)&&f(e.indexPath)},setup(e,{expose:t,emit:n}){const o=e,r=n;jc(o.index);const l=ol(),a=mn($m),s=Ta("menu"),i=Ta("menu-item");a||Qc(Gm,"can not inject root menu");const{parentMenu:u,indexPath:c}=jm(l,Pt(o,"index")),d=mn(`${Dm}${u.value.uid}`);d||Qc(Gm,"can not inject sub menu");const p=ml(()=>o.index===a.activeIndex),f=pt({index:o.index,indexPath:c,active:p}),v=()=>{o.disabled||(a.handleMenuItemClick({index:o.index,indexPath:c.value,route:o.route}),r("click",f))};return uo(()=>{d.addSubMenu(f),a.addMenuItem(f)}),fo(()=>{d.removeSubMenu(f),a.removeMenuItem(f)}),t({parentMenu:u,rootMenu:a,active:p,nsMenu:s,nsMenuItem:i,handleClick:v}),(e,t)=>(Nr(),Fr("li",{class:U([Tt(i).b(),Tt(i).is("active",p.value),Tt(i).is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:v},["ElMenu"===Tt(u).type.name&&Tt(a).props.collapse&&e.$slots.title?(Nr(),$r(Tt(kh),{key:0,effect:Tt(a).props.popperEffect,placement:"right","fallback-placements":["left"],"popper-class":Tt(a).props.popperClass,"popper-style":Tt(a).props.popperStyle,persistent:Tt(a).props.persistent,"focus-on-target":""},{content:pn(()=>[Eo(e.$slots,"title")]),default:pn(()=>[Wr("div",{class:U(Tt(s).be("tooltip","trigger"))},[Eo(e.$slots,"default")],2)]),_:3},8,["effect","popper-class","popper-style","persistent"])):(Nr(),Fr(Or,{key:1},[Eo(e.$slots,"default"),Eo(e.$slots,"title")],64))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]),Xm=kd(Yn({name:"ElMenuItemGroup",__name:"menu-item-group",props:{title:String},setup(e){const t=Ta("menu-item-group");return(e,n)=>(Nr(),Fr("li",{class:U(Tt(t).b())},[Wr("div",{class:U(Tt(t).e("title"))},[e.$slots.title?Eo(e.$slots,"title",{key:1}):(Nr(),Fr(Or,{key:0},[qr(Z(e.title),1)],64))],2),Wr("ul",null,[Eo(e.$slots,"default")])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const Zm=Ed(Km,{MenuItem:Ym,MenuItemGroup:Xm,SubMenu:Hm}),Jm=Ad(Ym);Ad(Xm),Ad(Hm);const Qm=e=>["",...fd].includes(e),eg=pd({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:Qm},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:lp},activeActionIcon:{type:lp},activeIcon:{type:lp},inactiveIcon:{type:lp},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Function},id:String,tabindex:{type:[String,Number]},...hp(["ariaLabel"])}),tg=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],ng=["aria-hidden"],og={key:1},rg={key:1},lg=["aria-hidden"],ag="ElSwitch",sg=Ed(kd(Yn({name:ag,__name:"switch",props:eg,emits:{[Td]:e=>Ic(e)||b(e)||Nc(e),[Md]:e=>Ic(e)||b(e)||Nc(e),[Ld]:e=>Ic(e)||b(e)||Nc(e)},setup(e,{expose:t,emit:n}){const o=e,r=n,{formItem:l}=Ep(),a=Tp(),s=Ta("switch"),{inputId:i}=Ap(o,{formItemContext:l}),u=Mp(ml(()=>{if(o.loading)return!0})),c=kt(!1!==o.modelValue),d=Et(),p=ml(()=>[s.b(),s.m(a.value),s.is("disabled",u.value),s.is("checked",g.value)]),f=ml(()=>[s.e("label"),s.em("label","left"),s.is("active",!g.value)]),v=ml(()=>[s.e("label"),s.em("label","right"),s.is("active",g.value)]),h=ml(()=>({width:Pd(o.width)}));wn(()=>o.modelValue,()=>{c.value=!0});const m=ml(()=>!!c.value&&o.modelValue),g=ml(()=>m.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(m.value)||(r(Td,o.inactiveValue),r(Md,o.inactiveValue),r(Ld,o.inactiveValue)),wn(g,e=>{var t;d.value.checked=e,o.validateEvent&&(null==(t=null==l?void 0:l.validate)||t.call(l,"change").catch(e=>{}))});const b=()=>{const e=g.value?o.inactiveValue:o.activeValue;r(Td,e),r(Md,e),r(Ld,e),tn(()=>{d.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:e}=o;if(!e)return void b();const t=e();[x(t),Ic(t)].includes(!0)||Qc(ag,"beforeChange must return type `Promise` or `boolean`"),x(t)?t.then(e=>{e&&b()}).catch(e=>{}):t&&b()};return uo(()=>{d.value.checked=g.value}),t({focus:()=>{var e,t;null==(t=null==(e=d.value)?void 0:e.focus)||t.call(e)},checked:g}),(e,t)=>(Nr(),Fr("div",{class:U(p.value),onClick:ma(y,["prevent"])},[Wr("input",{id:Tt(i),ref_key:"input",ref:d,class:U(Tt(s).e("input")),type:"checkbox",role:"switch","aria-checked":g.value,"aria-disabled":Tt(u),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:Tt(u),tabindex:e.tabindex,onChange:b,onKeydown:ba(y,["enter"])},null,42,tg),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||e.$slots.inactive)?(Nr(),Fr("span",{key:0,class:U(f.value)},[Eo(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Nr(),$r(Tt($d),{key:0},{default:pn(()=>[(Nr(),$r(Co(e.inactiveIcon)))]),_:1})):Gr("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Nr(),Fr("span",{key:1,"aria-hidden":g.value},Z(e.inactiveText),9,ng)):Gr("v-if",!0)])],2)):Gr("v-if",!0),Wr("span",{class:U(Tt(s).e("core")),style:D(h.value)},[e.inlinePrompt?(Nr(),Fr("div",{key:0,class:U(Tt(s).e("inner"))},[g.value?(Nr(),Fr("div",{key:1,class:U(Tt(s).e("inner-wrapper"))},[Eo(e.$slots,"active",{},()=>[e.activeIcon?(Nr(),$r(Tt($d),{key:0},{default:pn(()=>[(Nr(),$r(Co(e.activeIcon)))]),_:1})):Gr("v-if",!0),!e.activeIcon&&e.activeText?(Nr(),Fr("span",rg,Z(e.activeText),1)):Gr("v-if",!0)])],2)):(Nr(),Fr("div",{key:0,class:U(Tt(s).e("inner-wrapper"))},[Eo(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Nr(),$r(Tt($d),{key:0},{default:pn(()=>[(Nr(),$r(Co(e.inactiveIcon)))]),_:1})):Gr("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Nr(),Fr("span",og,Z(e.inactiveText),1)):Gr("v-if",!0)])],2))],2)):Gr("v-if",!0),Wr("div",{class:U(Tt(s).e("action"))},[e.loading?(Nr(),$r(Tt($d),{key:0,class:U(Tt(s).is("loading"))},{default:pn(()=>[Ur(Tt(Yd))]),_:1},8,["class"])):g.value?Eo(e.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(Nr(),$r(Tt($d),{key:0},{default:pn(()=>[(Nr(),$r(Co(e.activeActionIcon)))]),_:1})):Gr("v-if",!0)]):g.value?Gr("v-if",!0):Eo(e.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(Nr(),$r(Tt($d),{key:0},{default:pn(()=>[(Nr(),$r(Co(e.inactiveActionIcon)))]),_:1})):Gr("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||e.$slots.active)?(Nr(),Fr("span",{key:1,class:U(v.value)},[Eo(e.$slots,"active",{},()=>[e.activeIcon?(Nr(),$r(Tt($d),{key:0},{default:pn(()=>[(Nr(),$r(Co(e.activeIcon)))]),_:1})):Gr("v-if",!0),!e.activeIcon&&e.activeText?(Nr(),Fr("span",{key:1,"aria-hidden":!g.value},Z(e.activeText),9,lg)):Gr("v-if",!0)])],2)):Gr("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]])),ig=function(e){var t;return null==(t=e.target)?void 0:t.closest("td")},ug=function(e,t,n,o,r){if(!t&&!o&&(!r||f(r)&&!r.length))return e;n=b(n)?"descending"===n?-1:1:n&&n<0?-1:1;const l=o?null:function(n,o){return r?bc(qi(r),t=>b(t)?Ii(n,t):t(n,o,e)):("$key"!==t&&w(n)&&"$value"in n&&(n=n.$value),[w(n)?t?Ii(n,t):null:n])};return e.map((e,t)=>({value:e,index:t,key:l?l(e,t):null})).sort((e,t)=>{let r=function(e,t){var n,r,l,a,s,i;if(o)return o(e.value,t.value);for(let o=0,u=null!=(r=null==(n=e.key)?void 0:n.length)?r:0;o(null==(i=t.key)?void 0:i[o]))return 1}return 0}(e,t);return r||(r=e.index-t.index),r*+n}).map(e=>e.value)},cg=function(e,t){let n=null;return e.columns.forEach(e=>{e.id===t&&(n=e)}),n},dg=function(e,t,n){const o=(t.className||"").match(new RegExp(`${n}-table_[^\\s]+`,"gm"));return o?cg(e,o[0]):null},pg=(e,t)=>{if(!e)throw new Error("Row is required when get row identity");if(b(t)){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let o=e;for(const e of n)o=o[e];return`${o}`}return g(t)?t.call(null,e):""},fg=function(e,t,n=!1,o="children"){const r={};return(e||[]).forEach((e,l)=>{if(r[pg(e,t)]={row:e,index:l},n){const n=e[o];f(n)&&Object.assign(r,fg(n,t,!0,o))}}),r};function vg(e){return""===e||Rc(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function hg(e){return""===e||Rc(e)||(e=vg(e),Number.isNaN(e)&&(e=80)),e}function mg(e,t,n,o,r,l,a){let s=null!=l?l:0,i=!1;const u=(()=>{if(!a)return e.indexOf(t);const n=pg(t,a);return e.findIndex(e=>pg(e,a)===n)})(),c=-1!==u,d=null==r?void 0:r.call(null,t,s),p=n=>{"add"===n?e.push(t):e.splice(u,1),i=!0},v=e=>{let t=0;const n=(null==o?void 0:o.children)&&e[o.children];return n&&f(n)&&(t+=n.length,n.forEach(e=>{t+=v(e)})),t};return r&&!d||(Ic(n)?n&&!c?p("add"):!n&&c&&p("remove"):p(c?"remove":"add")),!(null==o?void 0:o.checkStrictly)&&(null==o?void 0:o.children)&&f(t[o.children])&&t[o.children].forEach(t=>{const l=mg(e,t,null!=n?n:!c,o,r,s+1,a);s+=v(t)+1,l&&(i=l)}),i}function gg(e,t,n="children",o="hasChildren",r=!1){const l=e=>!(f(e)&&e.length);function a(e,s,i){t(e,s,i),s.forEach(e=>{if(e[o]&&r)return void t(e,null,i+1);const s=e[n];l(s)||a(e,s,i+1)})}e.forEach(e=>{if(e[o]&&r)return void t(e,null,0);const s=e[n];l(s)||a(e,s,0)})}let bg=null;function yg(e,t,n,o,r,l){var a;const s=((e,t,n,o)=>{const r={strategy:"fixed",...e.popperOptions},l=g(null==o?void 0:o.tooltipFormatter)?o.tooltipFormatter({row:n,column:o,cellValue:bd(n,o.property).value}):void 0;return Dr(l)?{slotContent:l,content:null,...e,popperOptions:r}:{slotContent:null,content:null!=l?l:t,...e,popperOptions:r}})(e,t,n,o),i={...s,slotContent:void 0};if((null==bg?void 0:bg.trigger)===r){const e=null==(a=bg.vm)?void 0:a.component;return kc(null==e?void 0:e.props,i),void(e&&s.slotContent&&(e.slots.content=()=>[s.slotContent]))}null==bg||bg();const u=null==l?void 0:l.refs.tableWrapper,c=null==u?void 0:u.dataset.prefix,d=Ur(kh,{virtualTriggering:!0,virtualRef:r,appendTo:u,placement:"top",transition:"none",offset:0,hideAfter:0,...i},s.slotContent?{content:()=>s.slotContent}:void 0);d.appContext={...l.appContext,...l};const p=document.createElement("div");Ca(d,p),d.component.exposed.onOpen();const f=null==u?void 0:u.querySelector(`.${c}-scrollbar__wrap`);bg=()=>{var e,t;(null==(t=null==(e=d.component)?void 0:e.exposed)?void 0:t.onClose)&&d.component.exposed.onClose(),Ca(null,p);const n=bg;null==f||f.removeEventListener("scroll",n),n.trigger=void 0,n.vm=void 0,bg=null},bg.trigger=null!=r?r:void 0,bg.vm=d,null==f||f.addEventListener("scroll",bg)}function wg(e){return e.children?bc(e.children,wg):[e]}function xg(e,t){return e+t.colSpan}const Cg=(e,t,n,o)=>{let r=0,l=e;const a=n.states.columns.value;if(o){const t=wg(o[e]);r=a.slice(0,a.indexOf(t[0])).reduce(xg,0),l=r+t.reduce(xg,0)-1}else r=e;let s;switch(t){case"left":l=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:l=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:r,after:l}:{}},Sg=(e,t,n,o,r,l=0)=>{const a=[],{direction:s,start:i,after:u}=Cg(t,n,o,r);if(s){const t="left"===s;a.push(`${e}-fixed-column--${s}`),t&&u+l===o.states.fixedLeafColumnsLength.value-1?a.push("is-last-column"):t||i-l!==o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value||a.push("is-first-column")}return a};function _g(e,t){return e+(Sc(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const kg=(e,t,n,o)=>{const{direction:r,start:l=0,after:a=0}=Cg(e,t,n,o);if(!r)return;const s={},i="left"===r,u=n.states.columns.value;return i?s.left=u.slice(0,l).reduce(_g,0):s.right=u.slice(a+1).reverse().reduce(_g,0),s},Eg=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function Ag(e){return e.some(e=>!Dr(e)||e.type!==Mr&&!(e.type===Or&&!Ag(e.children)))?e:null}const Og=e=>{const t=[];return e.forEach(e=>{e.children&&e.children.length>0?t.push.apply(t,Og(e.children)):t.push(e)}),t};function Tg(){var e;const t=ol(),{size:n}=Nt(null==(e=t.proxy)?void 0:e.$props),o=kt(null),r=kt([]),l=kt([]),a=kt(!1),s=kt([]),i=kt([]),u=kt([]),c=kt([]),d=kt([]),v=kt([]),h=kt([]),m=kt([]),g=kt(0),y=kt(0),w=kt(0),x=kt(!1),C=kt([]),S=kt(!1),_=kt(!1),k=kt(null),E=kt({}),A=kt(null),O=kt(null),T=kt(null),M=kt(null),L=kt(null),R=ml(()=>o.value?fg(C.value,o.value):void 0);wn(r,()=>{var e;t.state&&(B(!1),"auto"===t.props.tableLayout&&(null==(e=t.refs.tableHeaderRef)||e.updateFixedColumnStyle()))},{deep:!0});const I=e=>{var t;null==(t=e.children)||t.forEach(t=>{t.fixed=e.fixed,I(t)})},N=()=>{s.value.forEach(e=>{I(e)}),c.value=s.value.filter(e=>[!0,"left"].includes(e.fixed));const e=s.value.find(e=>"selection"===e.type);let t;e&&"right"!==e.fixed&&!c.value.includes(e)&&0===s.value.indexOf(e)&&c.value.length&&(c.value.unshift(e),t=!0),d.value=s.value.filter(e=>"right"===e.fixed);const n=s.value.filter(e=>!(t&&"selection"===e.type||e.fixed));i.value=Array.from(c.value).concat(n).concat(d.value);const o=Og(n),r=Og(c.value),l=Og(d.value);g.value=o.length,y.value=r.length,w.value=l.length,u.value=Array.from(r).concat(o).concat(l),a.value=c.value.length>0||d.value.length>0},B=(e,n=!1)=>{e&&N(),n?t.state.doLayout():t.state.debouncedUpdateLayout()},j=e=>R.value?!!R.value[pg(e,o.value)]:C.value.includes(e),P=e=>{var n;if(!t||!t.store)return 0;const{treeData:o}=t.store.states;let r=0;const l=null==(n=o.value[e])?void 0:n.children;return l&&(r+=l.length,l.forEach(e=>{r+=P(e)})),r},F=(e,t,n)=>{O.value&&O.value!==e&&(O.value.order=null),O.value=e,T.value=t,M.value=n},$=()=>{let e=Tt(l);Object.keys(E.value).forEach(t=>{const n=E.value[t];if(!n||0===n.length)return;const o=cg({columns:u.value},t);o&&o.filterMethod&&(e=e.filter(e=>n.some(t=>o.filterMethod.call(null,t,e,o))))}),A.value=e},D=()=>{var e;r.value=((e,t)=>{const n=t.sortingColumn;return!n||b(n.sortable)?e:ug(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)})(null!=(e=A.value)?e:[],{sortingColumn:O.value,sortProp:T.value,sortOrder:M.value})},{setExpandRowKeys:z,toggleRowExpansion:V,updateExpandRows:H,states:W,isRowExpanded:U}=function(e){const t=ol(),n=kt(!1),o=kt([]);return{updateExpandRows:()=>{const t=e.data.value||[],r=e.rowKey.value;if(n.value)o.value=t.slice();else if(r){const e=fg(o.value,r);o.value=t.reduce((t,n)=>{const o=pg(n,r);return e[o]&&t.push(n),t},[])}else o.value=[]},toggleRowExpansion:(n,r)=>{mg(o.value,n,r,void 0,void 0,void 0,e.rowKey.value)&&t.emit("expand-change",n,o.value.slice())},setExpandRowKeys:n=>{t.store.assertRowKey();const r=e.data.value||[],l=e.rowKey.value,a=fg(r,l);o.value=n.reduce((e,t)=>{const n=a[t];return n&&e.push(n.row),e},[])},isRowExpanded:t=>{const n=e.rowKey.value;return n?!!fg(o.value,n)[pg(t,n)]:o.value.includes(t)},states:{expandRows:o,defaultExpandAll:n}}}({data:r,rowKey:o}),{updateTreeExpandKeys:K,toggleTreeExpansion:q,updateTreeData:G,updateKeyChildren:Y,loadOrToggle:X,states:Z}=function(e){const t=kt([]),n=kt({}),o=kt(16),r=kt(!1),l=kt({}),a=kt("hasChildren"),s=kt("children"),i=kt(!1),u=ol(),c=ml(()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return p(t)}),d=ml(()=>{const t=e.rowKey.value,n=Object.keys(l.value),o={};return n.length?(n.forEach(e=>{if(l.value[e].length){const n={children:[]};l.value[e].forEach(e=>{const r=pg(e,t);n.children.push(r),e[a.value]&&!o[r]&&(o[r]={children:[]})}),o[e]=n}}),o):o}),p=t=>{const n=e.rowKey.value,o={};return gg(t,(e,t,l)=>{const a=pg(e,n);f(t)?o[a]={children:t.map(e=>pg(e,n)),level:l}:r.value&&(o[a]={children:[],lazy:!0,level:l})},s.value,a.value,r.value),o},v=(e=!1,o)=>{var l,a;o||(o=null==(l=u.store)?void 0:l.states.defaultExpandAll.value);const s=c.value,i=d.value,p=Object.keys(s),f={};if(p.length){const l=Tt(n),a=[],u=(n,r)=>{if(e)return t.value?o||t.value.includes(r):!(!o&&!(null==n?void 0:n.expanded));{const e=o||t.value&&t.value.includes(r);return!(!(null==n?void 0:n.expanded)&&!e)}};p.forEach(e=>{const t=l[e],n={...s[e]};if(n.expanded=u(t,e),n.lazy){const{loaded:o=!1,loading:r=!1}=t||{};n.loaded=!!o,n.loading=!!r,a.push(e)}f[e]=n});const c=Object.keys(i);r.value&&c.length&&a.length&&c.forEach(e=>{var t;const n=l[e],o=i[e].children;if(a.includes(e)){if(0!==(null==(t=f[e].children)?void 0:t.length))throw new Error("[ElTable]children must be an empty array.");f[e].children=o}else{const{loaded:t=!1,loading:r=!1}=n||{};f[e]={lazy:!0,loaded:!!t,loading:!!r,expanded:u(n,e),children:o,level:void 0}}})}n.value=f,null==(a=u.store)||a.updateTableScrollY()};wn(()=>t.value,()=>{v(!0)}),wn(()=>c.value,()=>{v()}),wn(()=>d.value,()=>{v()});const h=e=>r.value&&e&&"loaded"in e&&!e.loaded,m=(t,o)=>{u.store.assertRowKey();const r=e.rowKey.value,l=pg(t,r),a=l&&n.value[l];if(l&&a&&"expanded"in a){const e=a.expanded;o=Rc(o)?!a.expanded:o,n.value[l].expanded=o,e!==o&&u.emit("expand-change",t,o),o&&h(a)&&g(t,l,a),u.store.updateTableScrollY()}},g=(e,t,o)=>{const{load:r}=u.props;r&&!n.value[t].loaded&&(n.value[t].loading=!0,r(e,o,o=>{if(!f(o))throw new TypeError("[ElTable] data must be an array");n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,o.length&&(l.value[t]=o),u.emit("expand-change",e,!0)}))};return{loadData:g,loadOrToggle:t=>{u.store.assertRowKey();const o=e.rowKey.value,r=pg(t,o),l=n.value[r];h(l)?g(t,r,l):m(t,void 0)},toggleTreeExpansion:m,updateTreeExpandKeys:e=>{t.value=e,v()},updateTreeData:v,updateKeyChildren:(e,t)=>{const{lazy:n,rowKey:o}=u.props;if(n){if(!o)throw new Error("[Table] rowKey is required in updateKeyChild");l.value[e]&&(l.value[e]=t)}},normalize:p,states:{expandRowKeys:t,treeData:n,indent:o,lazy:r,lazyTreeNodeMap:l,lazyColumnIdentifier:a,childrenColumnName:s,checkStrictly:i}}}({data:r,rowKey:o}),{updateCurrentRowData:J,updateCurrentRow:Q,setCurrentRowKey:ee,states:te}=function(e){const t=ol(),n=kt(null),o=kt(null),r=()=>{n.value=null},l=n=>{var r;const{data:l,rowKey:a}=e;let s=null;a.value&&(s=null!=(r=(Tt(l)||[]).find(e=>pg(e,a.value)===n))?r:null),o.value=null!=s?s:null,t.emit("current-change",o.value,null)};return{setCurrentRowKey:e=>{t.store.assertRowKey(),n.value=e,l(e)},restoreCurrentRowKey:r,setCurrentRowByKey:l,updateCurrentRow:e=>{const n=o.value;if(e&&e!==n)return o.value=e,void t.emit("current-change",o.value,n);!e&&n&&(o.value=null,t.emit("current-change",null,n))},updateCurrentRowData:()=>{const a=e.rowKey.value,s=e.data.value||[],i=o.value;if(i&&!s.includes(i)){if(a){const e=pg(i,a);l(e)}else o.value=null;Sc(o.value)&&t.emit("current-change",null,i)}else n.value&&(l(n.value),r())},states:{_currentRowKey:n,currentRow:o}}}({data:r,rowKey:o});return{assertRowKey:()=>{if(!o.value)throw new Error("[ElTable] prop row-key is required")},updateColumns:N,scheduleLayout:B,isSelected:j,clearSelection:()=>{x.value=!1;const e=C.value;C.value=[],e.length&&t.emit("selection-change",[])},cleanSelection:()=>{var e,n;let l;if(o.value){l=[];const a=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.childrenColumnName.value,s=fg(r.value,o.value,!0,a);for(const e in R.value)p(R.value,e)&&!s[e]&&l.push(R.value[e].row)}else l=C.value.filter(e=>!r.value.includes(e));if(l.length){const e=C.value.filter(e=>!l.includes(e));C.value=e,t.emit("selection-change",e.slice())}},getSelectionRows:()=>(C.value||[]).slice(),toggleRowSelection:(e,n,l=!0,a=!1)=>{var s,i,u,c;const d={children:null==(i=null==(s=null==t?void 0:t.store)?void 0:s.states)?void 0:i.childrenColumnName.value,checkStrictly:null==(c=null==(u=null==t?void 0:t.store)?void 0:u.states)?void 0:c.checkStrictly.value};if(mg(C.value,e,n,d,a?void 0:k.value,r.value.indexOf(e),o.value)){const n=(C.value||[]).slice();l&&t.emit("select",n,e),t.emit("selection-change",n)}},_toggleAllSelection:()=>{var e,n;const o=_.value?!x.value:!(x.value||C.value.length);x.value=o;let l=!1,a=0;const s=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.rowKey.value,{childrenColumnName:i}=t.store.states,u={children:i.value,checkStrictly:!1};r.value.forEach((e,t)=>{const n=t+a;mg(C.value,e,o,u,k.value,n,s)&&(l=!0),a+=P(pg(e,s))}),l&&t.emit("selection-change",C.value?C.value.slice():[]),t.emit("select-all",(C.value||[]).slice())},toggleAllSelection:null,updateAllSelected:()=>{var e;if(0===(null==(e=r.value)?void 0:e.length))return void(x.value=!1);const{childrenColumnName:n}=t.store.states;let o=0,l=0;const a=e=>{var t;for(const r of e){const e=k.value&&k.value.call(null,r,o);if(j(r))l++;else if(!k.value||e)return!1;if(o++,(null==(t=r[n.value])?void 0:t.length)&&!a(r[n.value]))return!1}return!0},s=a(r.value||[]);x.value=0!==l&&s},updateFilters:(e,t)=>{const n={};return qi(e).forEach(e=>{E.value[e.id]=t,n[e.columnKey||e.id]=t}),n},updateCurrentRow:Q,updateSort:F,execFilter:$,execSort:D,execQuery:(e=void 0)=>{(null==e?void 0:e.filter)||$(),D()},clearFilter:e=>{const{tableHeaderRef:n}=t.refs;if(!n)return;const o=Object.assign({},n.filterPanels),r=Object.keys(o);if(r.length)if(b(e)&&(e=[e]),f(e)){const n=e.map(e=>function(e,t){let n=null;for(let o=0;o{const t=n.find(t=>t.id===e);t&&(t.filteredValue=[])}),t.store.commit("filterChange",{column:n,values:[],silent:!0,multi:!0})}else r.forEach(e=>{const t=u.value.find(t=>t.id===e);t&&(t.filteredValue=[])}),E.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:()=>{O.value&&(F(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},toggleRowExpansion:V,setExpandRowKeysAdapter:e=>{z(e),K(e)},setCurrentRowKey:ee,toggleRowExpansionAdapter:(e,t)=>{u.value.some(({type:e})=>"expand"===e)?V(e,t):q(e,t)},isRowExpanded:U,updateExpandRows:H,updateCurrentRowData:J,loadOrToggle:X,updateTreeData:G,updateKeyChildren:Y,states:{tableSize:n,rowKey:o,data:r,_data:l,isComplex:a,_columns:s,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:v,fixedLeafColumns:h,rightFixedLeafColumns:m,updateOrderFns:[],leafColumnsLength:g,fixedLeafColumnsLength:y,rightFixedLeafColumnsLength:w,isAllSelected:x,selection:C,reserveSelection:S,selectOnIndeterminate:_,selectable:k,filters:E,filteredData:A,sortingColumn:O,sortProp:T,sortOrder:M,hoverRow:L,...W,...Z,...te}}}function Mg(e,t){return e.map(e=>{var n;return e.id===t.id?t:((null==(n=e.children)?void 0:n.length)&&(e.children=Mg(e.children,t)),e)})}function Lg(e){e.forEach(e=>{var t,n;e.no=null==(t=e.getColumnIndex)?void 0:t.call(e),(null==(n=e.children)?void 0:n.length)&&Lg(e.children)}),e.sort((e,t)=>e.no-t.no)}const Rg={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"},"treeProps.checkStrictly":{key:"checkStrictly",default:!1}};function Ig(e,t){if(!e)throw new Error("Table is required.");const n=function(){const e=ol(),t=Tg(),n=Ta("table"),{t:o}=ud();return{ns:n,t:o,...t,mutations:{setData(t,n){const o=Tt(t._data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),Tt(t.reserveSelection)?e.store.assertRowKey():o?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,o,r){var l;const a=Tt(t._columns);let s=[];o?(o&&!o.children&&(o.children=[]),null==(l=o.children)||l.push(n),s=Mg(a,o)):(a.push(n),s=a),Lg(s),t._columns.value=s,t.updateOrderFns.push(r),"selection"===n.type&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(t,n){var o;(null==(o=n.getColumnIndex)?void 0:o.call(n))!==n.no&&(Lg(t._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(t,n,o,r){var l;const a=Tt(t._columns)||[];if(o)null==(l=o.children)||l.splice(o.children.findIndex(e=>e.id===n.id),1),tn(()=>{var e;0===(null==(e=o.children)?void 0:e.length)&&delete o.children}),t._columns.value=Mg(a,o);else{const e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}const s=t.updateOrderFns.indexOf(r);s>-1&&t.updateOrderFns.splice(s,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){const{prop:o,order:r,init:l}=n;if(o){const n=Tt(t.columns).find(e=>e.property===o);n&&(n.order=r,e.store.updateSort(n,o,r),e.store.commit("changeSortCondition",{init:l}))}},changeSortCondition(t,n){const{sortingColumn:o,sortProp:r,sortOrder:l}=t,a=Tt(o),s=Tt(r),i=Tt(l);Sc(i)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),n&&(n.silent||n.init)||e.emit("sort-change",{column:a,prop:s,order:i}),e.store.updateTableScrollY()},filterChange(t,n){const{column:o,values:r,silent:l}=n,a=e.store.updateFilters(o,r);e.store.execQuery(),l||e.emit("filter-change",a),e.store.updateTableScrollY()},toggleAllSelection(){var t,n;null==(n=(t=e.store).toggleAllSelection)||n.call(t)},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},commit:function(t,...n){const o=e.store.mutations;if(!o[t])throw new Error(`Action not found: ${t}`);o[t].apply(e,[e.store.states,...n])},updateTableScrollY:function(){tn(()=>e.layout.updateScrollY.apply(e.layout))}}}();return n.toggleAllSelection=pc(n._toggleAllSelection,10),Object.keys(Rg).forEach(e=>{Ng(Bg(t,e),e,n)}),function(e,t){Object.keys(Rg).forEach(n=>{wn(()=>Bg(t,n),t=>{Ng(t,n,e)})})}(n,t),n}function Ng(e,t,n){let o=e,r=Rg[t];w(r)&&(o=o||r.default,r=r.key),n.states[r].value=o}function Bg(e,t){if(t.includes(".")){const n=t.split(".");let o=e;return n.forEach(e=>{o=o[e]}),o}return e[t]}class jg{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=kt(null),this.scrollX=kt(!1),this.scrollY=kt(!1),this.bodyWidth=kt(null),this.fixedWidth=kt(null),this.rightFixedWidth=kt(null),this.gutterWidth=0;for(const t in e)p(e,t)&&(_t(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(Sc(this.height.value))return!1;const e=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(null==e?void 0:e.wrapRef)){let t=!0;const n=this.scrollY.value;return t=e.wrapRef.scrollHeight>e.wrapRef.clientHeight,this.scrollY.value=t,n!==t}return!1}setHeight(e,t="height"){if(!Dc)return;const n=this.table.vnode.el;var o;e=Nc(o=e)?o:b(o)?/^\d+(?:px)?$/.test(o)?Number.parseInt(o,10):o:null,this.height.value=Number(e),n||!e&&0!==e?n&&Nc(e)?(n.style[t]=`${e}px`,this.updateElsHeight()):n&&b(e)&&(n.style[t]=e,this.updateElsHeight()):tn(()=>this.setHeight(e,t))}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){var e;if(!Dc)return;const t=this.fit,n=null==(e=this.table.vnode.el)?void 0:e.clientWidth;let o=0;const r=this.getFlattenColumns(),l=r.filter(e=>!Nc(e.width));if(r.forEach(e=>{Nc(e.width)&&e.realWidth&&(e.realWidth=null)}),l.length>0&&t){if(r.forEach(e=>{o+=Number(e.width||e.minWidth||80)}),o<=n){this.scrollX.value=!1;const e=n-o;if(1===l.length)l[0].realWidth=Number(l[0].minWidth||80)+e;else{const t=e/l.reduce((e,t)=>e+Number(t.minWidth||80),0);let n=0;l.forEach((e,o)=>{if(0===o)return;const r=Math.floor(Number(e.minWidth||80)*t);n+=r,e.realWidth=Number(e.minWidth||80)+r}),l[0].realWidth=Number(l[0].minWidth||80)+e-n}}else this.scrollX.value=!0,l.forEach(e=>{e.realWidth=Number(e.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else r.forEach(e=>{e.width||e.minWidth?e.realWidth=Number(e.width||e.minWidth):e.realWidth=80,o+=e.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const a=this.store.states.fixedColumns.value;if(a.length>0){let e=0;a.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.fixedWidth.value=e}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let e=0;s.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach(t=>{var n,o;switch(e){case"columns":null==(n=t.state)||n.onColumnsChange(this);break;case"scrollable":null==(o=t.state)||o.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}})}}const Pg=Yn({name:"ElTableFilterPanel",components:{ElCheckbox:mm,ElCheckboxGroup:gm,ElScrollbar:Kp,ElTooltip:kh,ElIcon:$d,ArrowDown:Dd,ArrowUp:Vd},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:sh.appendTo},setup(e){const t=ol(),{t:n}=ud(),o=Ta("table-filter"),r=null==t?void 0:t.parent;e.column&&!r.filterPanels.value[e.column.id]&&(r.filterPanels.value[e.column.id]=t);const l=kt(null),a=kt(null),s=kt(0),i=ml(()=>e.column&&e.column.filters),u=ml(()=>e.column&&e.column.filterClassName?`${o.b()} ${e.column.filterClassName}`:o.b()),c=ml({get:()=>{var t;return((null==(t=e.column)?void 0:t.filteredValue)||[])[0]},set:e=>{d.value&&(jc(e)?d.value.splice(0,1):d.value.splice(0,1,e))}}),d=ml({get:()=>e.column&&e.column.filteredValue||[],set(t){var n;e.column&&(null==(n=e.upDataColumn)||n.call(e,"filteredValue",t))}}),p=ml(()=>!e.column||e.column.filterMultiple),f=()=>{var e;null==(e=l.value)||e.onClose()},v=(e,t)=>{c.value=e,s.value=t,jc(e)?h([]):h(d.value),f()},h=t=>{var n,o;null==(n=e.store)||n.commit("filterChange",{column:e.column,values:t}),null==(o=e.store)||o.updateAllSelected()},m=()=>{if(jc(c))return void(s.value=0);const e=(i.value||[]).findIndex(e=>e.value===c.value);s.value=e>=0?e+1:0};return{multiple:p,filterClassName:u,filteredValue:d,filterValue:c,filters:i,handleConfirm:()=>{h(d.value),f()},handleReset:()=>{d.value=[],h(d.value),f()},handleSelect:v,isPropAbsent:jc,isActive:e=>e.value===c.value,t:n,ns:o,tooltipRef:l,rootRef:a,checkedIndex:s,handleShowTooltip:()=>{var t,n;null==(t=a.value)||t.focus(),!p.value&&m(),e.column&&(null==(n=e.upDataColumn)||n.call(e,"filterOpened",!0))},handleHideTooltip:()=>{var t;e.column&&(null==(t=e.upDataColumn)||t.call(e,"filterOpened",!1))},handleKeydown:e=>{var t,n;const r=Af(e),l=(i.value?i.value.length:0)+1;let u=s.value,c=!0;switch(r){case kf.down:case kf.right:u=(u+1)%l;break;case kf.up:case kf.left:u=(u-1+l)%l;break;case kf.tab:f(),c=!1;break;case kf.enter:case kf.space:if(0===u)v(null,0);else{const e=(i.value||[])[u-1];e.value&&v(e.value,u)}break;default:c=!1}c&&e.preventDefault(),s.value=u,null==(n=null==(t=a.value)?void 0:t.querySelector(`.${o.e("list-item")}:nth-child(${u+1})`))||n.focus()}}}}),Fg=["disabled"],$g=["tabindex","aria-checked"],Dg=["tabindex","aria-checked","onClick"],zg=["aria-label"];var Vg=kd(Pg,[["render",function(e,t,n,o,r,l){const a=wo("el-checkbox"),s=wo("el-checkbox-group"),i=wo("el-scrollbar"),u=wo("arrow-up"),c=wo("arrow-down"),d=wo("el-icon"),p=wo("el-tooltip");return Nr(),$r(p,{ref:"tooltipRef",offset:0,placement:e.placement,"show-arrow":!1,trigger:"click",role:"dialog",teleported:"",effect:"light",pure:"",loop:"","popper-class":e.filterClassName,persistent:"","append-to":e.appendTo,onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},{content:pn(()=>[e.multiple?(Nr(),Fr("div",{key:0,ref:"rootRef",tabindex:"-1",class:U(e.ns.e("multiple"))},[Wr("div",{class:U(e.ns.e("content"))},[Ur(i,{"wrap-class":e.ns.e("wrap")},{default:pn(()=>[Ur(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.filteredValue=t),class:U(e.ns.e("checkbox-group"))},{default:pn(()=>[(Nr(!0),Fr(Or,null,ko(e.filters,e=>(Nr(),$r(a,{key:e.value,value:e.value},{default:pn(()=>[qr(Z(e.text),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),Wr("div",{class:U(e.ns.e("bottom"))},[Wr("button",{class:U(e.ns.is("disabled",0===e.filteredValue.length)),disabled:0===e.filteredValue.length,type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleConfirm&&e.handleConfirm(...t))},Z(e.t("el.table.confirmFilter")),11,Fg),Wr("button",{type:"button",onClick:t[2]||(t[2]=(...t)=>e.handleReset&&e.handleReset(...t))},Z(e.t("el.table.resetFilter")),1)],2)],2)):(Nr(),Fr("ul",{key:1,ref:"rootRef",tabindex:"-1",role:"radiogroup",class:U(e.ns.e("list")),onKeydown:t[4]||(t[4]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Wr("li",{role:"radio",class:U([e.ns.e("list-item"),e.ns.is("active",e.isPropAbsent(e.filterValue))]),tabindex:0===e.checkedIndex?0:-1,"aria-checked":e.isPropAbsent(e.filterValue),onClick:t[3]||(t[3]=t=>e.handleSelect(null,0))},Z(e.t("el.table.clearFilter")),11,$g),(Nr(!0),Fr(Or,null,ko(e.filters,(t,n)=>(Nr(),Fr("li",{key:t.value,role:"radio",class:U([e.ns.e("list-item"),e.ns.is("active",e.isActive(t))]),tabindex:e.checkedIndex===n+1?0:-1,"aria-checked":e.isActive(t),onClick:o=>e.handleSelect(t.value,n+1)},Z(t.text),11,Dg))),128))],34))]),default:pn(()=>{var t;return[Wr("button",{type:"button",class:U(`${e.ns.namespace.value}-table__column-filter-trigger`),"aria-label":e.t("el.table.filterLabel",{column:(null==(t=e.column)?void 0:t.label)||""})},[Ur(d,null,{default:pn(()=>[Eo(e.$slots,"filter-icon",{},()=>{var t;return[(null==(t=e.column)?void 0:t.filterOpened)?(Nr(),$r(u,{key:0})):(Nr(),$r(c,{key:1}))]})]),_:3})],10,zg)]}),_:3},8,["placement","popper-class","append-to","onShow","onHide"])}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function Hg(e){const t=ol();io(()=>{n.value.addObserver(t)}),uo(()=>{o(n.value),r(n.value)}),po(()=>{o(n.value),r(n.value)}),vo(()=>{n.value.removeObserver(t)});const n=ml(()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t}),o=t=>{var n;const o=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col"))||[];if(!o.length)return;const r=t.getFlattenColumns(),l={};r.forEach(e=>{l[e.id]=e});for(let e=0,a=o.length;e{var n,o;const r=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let e=0,a=r.length;e{const t=[];return e.forEach(e=>{e.children?(t.push(e),t.push.apply(t,Ug(e.children))):t.push(e)}),t},Kg=e=>{let t=1;const n=(e,o)=>{if(o&&(e.level=o.level+1,t{n(o,e),t+=o.colSpan}),e.colSpan=t}else e.colSpan=1};e.forEach(e=>{e.level=1,n(e,void 0)});const o=[];for(let r=0;r{e.children?(e.rowSpan=1,e.children.forEach(e=>e.isSubColumn=!0)):e.rowSpan=t-e.level+1,o[e.level-1].push(e)}),o};var qg=Yn({name:"ElTableHeader",components:{ElCheckbox:mm},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){const n=ol(),o=mn(Wg),r=Ta("table"),l=kt({}),{onColumnsChange:a,onScrollableChange:s}=Hg(o),i="auto"===(null==o?void 0:o.props.tableLayout),u=pt(new Map),c=kt();let d;const p=()=>{d=setTimeout(()=>{u.size>0&&(u.forEach((e,t)=>{const n=c.value.querySelector(`.${t.replace(/\s/g,".")}`);if(n){const t=n.getBoundingClientRect().width;e.width=t||e.width}}),u.clear())})};wn(u,p),fo(()=>{d&&(clearTimeout(d),d=void 0)}),uo(async()=>{await tn(),await tn();const{prop:t,order:n}=e.defaultSort;null==o||o.store.commit("sort",{prop:t,order:n,init:!0}),p()});const{handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x}=function(e,t){const n=ol(),o=mn(Wg),r=e=>{e.stopPropagation()},l=kt(null),a=kt(!1),s=kt(),i=(t,n,r)=>{var l;t.stopPropagation();const a=n.order===r?null:r||(({order:e,sortOrders:t})=>{if(""===e)return t[0];const n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]})(n),s=null==(l=t.target)?void 0:l.closest("th");if(s&&Id(s,"noclick"))return void Bd(s,"noclick");if(!n.sortable)return;const i=t.currentTarget;if(["ascending","descending"].some(e=>Id(i,e)&&!n.sortOrders.includes(e)))return;const u=e.store.states;let c,d=u.sortProp.value;const p=u.sortingColumn.value;(p!==n||p===n&&Sc(p.order))&&(p&&(p.order=null),u.sortingColumn.value=n,d=n.property),c=n.order=a||null,u.sortProp.value=d,u.sortOrder.value=c,null==o||o.store.commit("changeSortCondition")};return{handleHeaderClick:(e,t)=>{!t.filters&&t.sortable?i(e,t,!1):t.filterable&&!t.sortable&&r(e),null==o||o.emit("header-click",t,e)},handleHeaderContextMenu:(e,t)=>{null==o||o.emit("header-contextmenu",t,e)},handleMouseDown:(r,i)=>{var u,c;if(Dc&&!(i.children&&i.children.length>0)&&l.value&&e.border&&l.value.id===i.id){a.value=!0;const d=o;t("set-drag-visible",!0);const p=null==d?void 0:d.vnode.el,f=null==p?void 0:p.getBoundingClientRect().left,v=null==(c=null==(u=null==n?void 0:n.vnode)?void 0:u.el)?void 0:c.querySelector(`th.${i.id}`),h=v.getBoundingClientRect(),m=h.left-f+30;Nd(v,"noclick"),s.value={startMouseLeft:r.clientX,startLeft:h.right-f,startColumnLeft:h.left-f,tableLeft:f};const g=null==d?void 0:d.refs.resizeProxy;g.style.left=`${s.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const b=e=>{const t=e.clientX-s.value.startMouseLeft,n=s.value.startLeft+t;g.style.left=`${Math.max(m,n)}px`},y=()=>{if(a.value){const{startColumnLeft:n,startLeft:o}=s.value,u=Number.parseInt(g.style.left,10)-n;i.width=i.realWidth=u,null==d||d.emit("header-dragend",i.width,o-n,i,r),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",a.value=!1,l.value=null,s.value=void 0,t("set-drag-visible",!1)}document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",y),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{Bd(v,"noclick")},0)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",y)}},handleMouseMove:(t,n)=>{var o;if(!e.border||n.children&&n.children.length>0)return;const r=t.target,s=Bc(r)?r.closest("th"):null;if(!s)return;const i=Id(s,"is-sortable");if(i){const e=a.value?"col-resize":"";s.style.cursor=e;const t=s.querySelector(".caret-wrapper");t&&(t.style.cursor=e)}if(!n.resizable||a.value)return void(l.value=null);const u=s.getBoundingClientRect(),c=(null==(o=s.parentNode)?void 0:o.lastElementChild)===s,d=e.allowDragLastColumn||!c,p=u.width>12&&u.right-t.clientX<8&&d,f=p?"col-resize":"";document.body.style.cursor=f,l.value=p?n:null,i&&(s.style.cursor=f)},handleMouseOut:()=>{Dc&&!a.value&&(document.body.style.cursor="")},handleSortClick:i,handleFilterClick:r}}(e,t),{getHeaderRowStyle:C,getHeaderRowClass:S,getHeaderCellStyle:_,getHeaderCellClass:k}=function(e){const t=mn(Wg),n=Ta("table");return{getHeaderRowStyle:e=>{const n=null==t?void 0:t.props.headerRowStyle;return g(n)?n.call(null,{rowIndex:e}):n},getHeaderRowClass:e=>{const n=[],o=null==t?void 0:t.props.headerRowClassName;return b(o)?n.push(o):g(o)&&n.push(o.call(null,{rowIndex:e})),n.join(" ")},getHeaderCellStyle:(n,o,r,l)=>{var a;let s=null!=(a=null==t?void 0:t.props.headerCellStyle)?a:{};g(s)&&(s=s.call(null,{rowIndex:n,columnIndex:o,row:r,column:l}));const i=kg(o,l.fixed,e.store,r);return Eg(i,"left"),Eg(i,"right"),Object.assign({},s,i)},getHeaderCellClass:(o,r,l,a)=>{const s=Sg(n.b(),r,a.fixed,e.store,l),i=[a.id,a.order,a.headerAlign,a.className,a.labelClassName,...s];a.children||i.push("is-leaf"),a.sortable&&i.push("is-sortable");const u=null==t?void 0:t.props.headerCellClassName;return b(u)?i.push(u):g(u)&&i.push(u.call(null,{rowIndex:o,columnIndex:r,row:l,column:a})),i.push(n.e("cell")),i.filter(e=>Boolean(e)).join(" ")}}}(e),{isGroup:E,toggleAllSelection:A,columnRows:O}=function(e){const t=mn(Wg),n=ml(()=>Kg(e.store.states.originColumns.value));return{isGroup:ml(()=>{const e=n.value.length>1;return e&&t&&(t.state.isGroup.value=!0),e}),toggleAllSelection:e=>{e.stopPropagation(),null==t||t.store.commit("toggleAllSelection")},columnRows:n}}(e),{t:T}=ud();return n.state={onColumnsChange:a,onScrollableChange:s},n.filterPanels=l,{ns:r,t:T,filterPanels:l,onColumnsChange:a,onScrollableChange:s,columnRows:O,getHeaderRowClass:S,getHeaderRowStyle:C,getHeaderCellClass:k,getHeaderCellStyle:_,handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x,isGroup:E,toggleAllSelection:A,saveIndexSelection:u,isTableLayoutAuto:i,theadRef:c,updateFixedColumnStyle:p}},render(){const{ns:e,t:t,isGroup:n,columnRows:o,getHeaderCellStyle:r,getHeaderCellClass:l,getHeaderRowClass:a,getHeaderRowStyle:s,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:d,handleSortClick:p,handleMouseOut:f,store:v,$parent:h,saveIndexSelection:m,isTableLayoutAuto:g}=this;let b=1;return gl("thead",{ref:"theadRef",class:e.is("group",n)},o.map((e,n)=>gl("tr",{class:a(n),key:n,style:s(n)},e.map((o,a)=>{o.rowSpan>b&&(b=o.rowSpan);const s=l(n,a,e,o);return g&&o.fixed&&m.set(s,o),gl("th",{class:s,colspan:o.colSpan,key:`${o.id}-thead`,rowspan:o.rowSpan,scope:o.colSpan>1?"colgroup":"col",ariaSort:o.sortable?o.order:void 0,style:r(n,a,e,o),onClick:e=>{var t;(null==(t=e.currentTarget)?void 0:t.classList.contains("noclick"))||i(e,o)},onContextmenu:e=>u(e,o),onMousedown:e=>c(e,o),onMousemove:e=>d(e,o),onMouseout:f},[gl("div",{class:["cell",o.filteredValue&&o.filteredValue.length>0?"highlight":""]},[o.renderHeader?o.renderHeader({column:o,$index:a,store:v,_self:h}):o.label,o.sortable&&gl("button",{type:"button",class:"caret-wrapper","aria-label":t("el.table.sortLabel",{column:o.label||""}),onClick:e=>p(e,o)},[gl("i",{onClick:e=>p(e,o,"ascending"),class:"sort-caret ascending"}),gl("i",{onClick:e=>p(e,o,"descending"),class:"sort-caret descending"})]),o.filterable&&gl(Vg,{store:v,placement:o.filterPlacement||"bottom-start",appendTo:null==h?void 0:h.appendFilterPanelTo,column:o,upDataColumn:(e,t)=>{o[e]=t}},{"filter-icon":()=>o.renderFilterIcon?o.renderFilterIcon({filterOpened:o.filterOpened}):null})])])}))))}});function Gg(e,t,n=.03){return e-t>n}function Yg(e){const t=mn(Wg),n=kt(""),o=kt(gl("div")),r=(n,o,r)=>{var l,a,s;const i=t,u=ig(n);let c=null;const d=null==(l=null==i?void 0:i.vnode.el)?void 0:l.dataset.prefix;u&&(c=dg({columns:null!=(s=null==(a=e.store)?void 0:a.states.columns.value)?s:[]},u,d),c&&(null==i||i.emit(`cell-${r}`,o,c,u,n))),null==i||i.emit(`row-${r}`,o,c,n)},l=pc(t=>{var n;null==(n=e.store)||n.commit("setHoverRow",t)},30),a=pc(()=>{var t;null==(t=e.store)||t.commit("setHoverRow",null)},30),s=(e,t,n)=>{var o;let r=null==(o=null==t?void 0:t.target)?void 0:o.parentNode;for(;e>1&&(r=null==r?void 0:r.nextSibling,r&&"TR"===r.nodeName);)n(r,"hover-row hover-fixed-row"),e--};return{handleDoubleClick:(e,t)=>{r(e,t,"dblclick")},handleClick:(t,n)=>{var o;null==(o=e.store)||o.commit("setCurrentRow",n),r(t,n,"click")},handleContextMenu:(e,t)=>{r(e,t,"contextmenu")},handleMouseEnter:l,handleMouseLeave:a,handleCellMouseEnter:(n,o,r)=>{var l,a,i,u,c,d,p,f,v;if(!t)return;const h=t,m=ig(n),g=null==(l=null==h?void 0:h.vnode.el)?void 0:l.dataset.prefix;let b=null;if(m){if(b=dg({columns:null!=(i=null==(a=e.store)?void 0:a.states.columns.value)?i:[]},m,g),!b)return;m.rowSpan>1&&s(m.rowSpan,n,Nd);const t=h.hoverState={cell:m,column:b,row:o};null==h||h.emit("cell-mouse-enter",t.row,t.column,t.cell,n)}if(!r)return void((null==(u=bg)?void 0:u.trigger)===m&&(null==(c=bg)||c()));const y=n.target.querySelector(".cell");if(!(Id(y,`${g}-tooltip`)&&y.childNodes.length&&(null==(d=y.textContent)?void 0:d.trim())))return;const w=document.createRange();w.setStart(y,0),w.setEnd(y,y.childNodes.length);const{width:x,height:C}=w.getBoundingClientRect(),{width:S,height:_}=y.getBoundingClientRect(),{top:k,left:E,right:A,bottom:O}=(e=>{const t=window.getComputedStyle(e,null);return{left:Number.parseInt(t.paddingLeft,10)||0,right:Number.parseInt(t.paddingRight,10)||0,top:Number.parseInt(t.paddingTop,10)||0,bottom:Number.parseInt(t.paddingBottom,10)||0}})(y),T=k+O;Gg(x+(E+A),S)||Gg(C+T,_)||Gg(y.scrollWidth,S)?yg(r,null!=(p=(null==m?void 0:m.innerText)||(null==m?void 0:m.textContent))?p:"",o,b,m,h):(null==(f=bg)?void 0:f.trigger)===m&&(null==(v=bg)||v())},handleCellMouseLeave:e=>{const n=ig(e);if(!n)return;n.rowSpan>1&&s(n.rowSpan,e,Bd);const o=null==t?void 0:t.hoverState;null==t||t.emit("cell-mouse-leave",null==o?void 0:o.row,null==o?void 0:o.column,null==o?void 0:o.cell,e)},tooltipContent:n,tooltipTrigger:o}}const Xg=["colspan","rowspan"];var Zg=kd(Yn({name:"TableTdWrapper",__name:"td-wrapper",props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup:e=>(t,n)=>(Nr(),Fr("td",{colspan:e.colspan,rowspan:e.rowspan},[Eo(t.$slots,"default")],8,Xg))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table-body/td-wrapper.vue"]]);function Jg(e){const t=mn(Wg),n=Ta("table"),{handleDoubleClick:o,handleClick:r,handleContextMenu:l,handleMouseEnter:a,handleMouseLeave:s,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:d}=Yg(e),{getRowStyle:p,getRowClass:v,getCellStyle:h,getCellClass:m,getSpan:y,getColspanRealWidth:x}=function(e){const t=mn(Wg),n=Ta("table");return{getRowStyle:(e,n)=>{const o=null==t?void 0:t.props.rowStyle;return g(o)?o.call(null,{row:e,rowIndex:n}):o||null},getRowClass:(o,r,l)=>{var a;const s=[n.e("row")];(null==t?void 0:t.props.highlightCurrentRow)&&o===(null==(a=e.store)?void 0:a.states.currentRow.value)&&s.push("current-row"),e.stripe&&l%2==1&&s.push(n.em("row","striped"));const i=null==t?void 0:t.props.rowClassName;return b(i)?s.push(i):g(i)&&s.push(i.call(null,{row:o,rowIndex:r})),s},getCellStyle:(n,o,r,l)=>{const a=null==t?void 0:t.props.cellStyle;let s=null!=a?a:{};g(a)&&(s=a.call(null,{rowIndex:n,columnIndex:o,row:r,column:l}));const i=kg(o,null==e?void 0:e.fixed,e.store);return Eg(i,"left"),Eg(i,"right"),Object.assign({},s,i)},getCellClass:(o,r,l,a,s)=>{const i=Sg(n.b(),r,null==e?void 0:e.fixed,e.store,void 0,s),u=[a.id,a.align,a.className,...i],c=null==t?void 0:t.props.cellClassName;return b(c)?u.push(c):g(c)&&u.push(c.call(null,{rowIndex:o,columnIndex:r,row:l,column:a})),u.push(n.e("cell")),u.filter(e=>Boolean(e)).join(" ")},getSpan:(e,n,o,r)=>{let l=1,a=1;const s=null==t?void 0:t.props.spanMethod;if(g(s)){const t=s({row:e,column:n,rowIndex:o,columnIndex:r});f(t)?(l=t[0],a=t[1]):w(t)&&(l=t.rowspan,a=t.colspan)}return{rowspan:l,colspan:a}},getColspanRealWidth:(e,t,n)=>{if(t<1)return e[n].realWidth;const o=e.map(({realWidth:e,width:t})=>e||t).slice(n,n+t);return Number(o.reduce((e,t)=>Number(e)+Number(t),-1))}}}(e);let C=-1;const S=ml(()=>{var t;return null==(t=e.store)?void 0:t.states.columns.value.findIndex(({type:e})=>"default"===e)}),_=(e,n)=>{var o;const r=null==(o=null==t?void 0:t.props)?void 0:o.rowKey;return r?pg(e,r):n},k=(c,d,f,g=!1)=>{const{tooltipEffect:b,tooltipOptions:w,store:k}=e,{indent:A,columns:O}=k.states,T=[];let M=!0;return f&&(T.push(n.em("row",`level-${f.level}`)),M=!!f.display),0===d&&(C=-1),e.stripe&&M&&C++,T.push(...v(c,d,C)),gl("tr",{style:[M?null:{display:"none"},p(c,d)],class:T,key:_(c,d),onDblclick:e=>o(e,c),onClick:e=>r(e,c),onContextmenu:e=>l(e,c),onMouseenter:()=>a(d),onMouseleave:s},O.value.map((n,o)=>{const{rowspan:r,colspan:l}=y(c,n,d,o);if(!r||!l)return null;const a=Object.assign({},n);a.realWidth=x(O.value,l,o);const s={store:k,_self:e.context||t,column:a,row:c,$index:d,cellIndex:o,expanded:g};o===S.value&&f&&(s.treeNode={indent:f.level&&f.level*A.value,level:f.level},Ic(f.expanded)&&(s.treeNode.expanded=f.expanded,"loading"in f&&(s.treeNode.loading=f.loading),"noLazyChildren"in f&&(s.treeNode.noLazyChildren=f.noLazyChildren)));const p=`${_(c,d)},${o}`,v=a.columnKey||a.rawColumnKey||"",C=n.showOverflowTooltip&&kc({effect:b},w,n.showOverflowTooltip);return gl(Zg,{style:h(d,o,c,n),class:m(d,o,c,n,l-1),key:`${v}${p}`,rowspan:r,colspan:l,onMouseenter:e=>i(e,c,C),onMouseleave:u},{default:()=>E(o,n,s)})}))},E=(e,t,n)=>t.renderCell(n);return{wrappedRowRender:(o,r)=>{const l=e.store,{isRowExpanded:a,assertRowKey:s}=l,{treeData:i,lazyTreeNodeMap:u,childrenColumnName:c,rowKey:d}=l.states,p=l.states.columns.value;if(p.some(({type:e})=>"expand"===e)){const e=a(o),s=k(o,r,void 0,e),i=null==t?void 0:t.renderExpanded;if(!i)return s;const u=[[s]];return(t.props.preserveExpandedContent||e)&&u[0].push(gl("tr",{key:`expanded-row__${s.key}`,style:{display:e?"":"none"}},[gl("td",{colspan:p.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[i({row:o,$index:r,store:l,expanded:e})])])),u}if(Object.keys(i.value).length){s();const e=pg(o,d.value);let t=i.value[e],n=null;t&&(n={expanded:t.expanded,level:t.level,display:!0,noLazyChildren:void 0,loading:void 0},Ic(t.lazy)&&(n&&Ic(t.loaded)&&t.loaded&&(n.noLazyChildren=!(t.children&&t.children.length)),n.loading=t.loading));const l=[k(o,r,null!=n?n:void 0)];if(t){let n=0;const a=(e,o)=>{e&&e.length&&o&&e.forEach(e=>{const s={display:o.display&&o.expanded,level:o.level+1,expanded:!1,noLazyChildren:!1,loading:!1},p=pg(e,d.value);if(jc(p))throw new Error("For nested data item, row-key is required.");if(t={...i.value[p]},t&&(s.expanded=t.expanded,t.level=t.level||s.level,t.display=!(!t.expanded||!s.display),Ic(t.lazy)&&(Ic(t.loaded)&&t.loaded&&(s.noLazyChildren=!(t.children&&t.children.length)),s.loading=t.loading)),n++,l.push(k(e,r+n,s)),t){const n=u.value[p]||e[c.value];a(n,t)}})};t.display=!0;const s=u.value[e]||o[c.value];a(s,t)}return l}return k(o,r,void 0)},tooltipContent:c,tooltipTrigger:d}}var Qg=Yn({name:"ElTableBody",props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},setup(e){var t;const n=ol(),o=mn(Wg),r=Ta("table"),{wrappedRowRender:l,tooltipContent:a,tooltipTrigger:s}=Jg(e),{onColumnsChange:i,onScrollableChange:u}=Hg(o),c=[];return wn(null==(t=e.store)?void 0:t.states.hoverRow,(t,o)=>{var l,a;const s=null==n?void 0:n.vnode.el,i=Array.from((null==s?void 0:s.children)||[]).filter(e=>null==e?void 0:e.classList.contains(`${r.e("row")}`));let u=t;const d=null==(l=i[u])?void 0:l.childNodes;if(null==d?void 0:d.length){let e=0;Array.from(d).reduce((t,n,o)=>{var r,l;return(null==(r=d[o])?void 0:r.colSpan)>1&&(e=null==(l=d[o])?void 0:l.colSpan),"TD"!==n.nodeName&&0===e&&t.push(o),e>0&&e--,t},[]).forEach(e=>{var n;for(u=t;u>0;){const t=null==(n=i[u-1])?void 0:n.childNodes;if(t[e]&&"TD"===t[e].nodeName&&t[e].rowSpan>1){Nd(t[e],"hover-cell"),c.push(t[e]);break}u--}})}else c.forEach(e=>Bd(e,"hover-cell")),c.length=0;var p;(null==(a=e.store)?void 0:a.states.isComplex.value)&&Dc&&(p=()=>{const e=i[o],n=i[t];e&&!e.classList.contains("hover-fixed-row")&&Bd(e,"hover-row"),n&&Nd(n,"hover-row")},Dc?window.requestAnimationFrame(p):setTimeout(p,16))}),vo(()=>{var e;null==(e=bg)||e()}),{ns:r,onColumnsChange:i,onScrollableChange:u,wrappedRowRender:l,tooltipContent:a,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this;return gl("tbody",{tabIndex:-1},[((null==t?void 0:t.states.data.value)||[]).reduce((t,n)=>t.concat(e(n,t.length)),[])])}});function eb(e){const{columns:t}=function(){const e=mn(Wg),t=null==e?void 0:e.store;return{leftFixedLeafCount:ml(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedLeafColumnsLength.value)?e:0}),rightFixedLeafCount:ml(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columnsCount:ml(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value.length)?e:0}),leftFixedCount:ml(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedColumns.value.length)?e:0}),rightFixedCount:ml(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columns:ml(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value)?e:[]})}}(),n=Ta("table");return{getCellClasses:(t,o)=>{const r=t[o],l=[n.e("cell"),r.id,r.align,r.labelClassName,...Sg(n.b(),o,r.fixed,e.store)];return r.className&&l.push(r.className),r.children||l.push(n.is("leaf")),l},getCellStyles:(t,n)=>{const o=kg(n,t.fixed,e.store);return Eg(o,"left"),Eg(o,"right"),o},columns:t}}var tb=Yn({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const t=mn(Wg),n=Ta("table"),{getCellClasses:o,getCellStyles:r,columns:l}=eb(e),{onScrollableChange:a,onColumnsChange:s}=Hg(t);return{ns:n,onScrollableChange:a,onColumnsChange:s,getCellClasses:o,getCellStyles:r,columns:l}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:r}=this,l=this.store.states.data.value;let a=[];return o?a=o({columns:e,data:l}):e.forEach((e,t)=>{if(0===t)return void(a[t]=r);const n=l.map(t=>Number(t[e.property])),o=[];let s=!0;n.forEach(e=>{if(!Number.isNaN(+e)){s=!1;const t=`${e}`.split(".")[1];o.push(t?t.length:0)}});const i=Math.max.apply(null,o);a[t]=s?"":n.reduce((e,t)=>{const n=Number(t);return Number.isNaN(+n)?e:Number.parseFloat((e+t).toFixed(Math.min(i,20)))},0)}),gl(gl("tfoot",[gl("tr",{},[...e.map((o,r)=>gl("td",{key:r,colspan:o.colSpan,rowspan:o.rowSpan,class:n(e,r),style:t(o,r)},[gl("div",{class:["cell",o.labelClassName]},[a[r]])]))])]))}});function nb(e,t,n,o){const r=kt(!1),l=kt(null),a=kt(!1),s=kt({width:null,height:null,headerHeight:null}),i=kt(!1),u=kt(),c=kt(0),d=kt(0),p=kt(0),f=kt(0),v=kt(0);wn(()=>e.height,e=>{t.setHeight(null!=e?e:null)},{immediate:!0}),wn(()=>e.maxHeight,e=>{t.setMaxHeight(null!=e?e:null)},{immediate:!0}),wn(()=>[e.currentRowKey,n.states.rowKey],([e,t])=>{Tt(t)&&Tt(e)&&n.setCurrentRowKey(`${e}`)},{immediate:!0}),wn(()=>e.data,e=>{o.store.commit("setData",e)},{immediate:!0,deep:!0}),yn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const h=ml(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),m=ml(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),g=()=>{h.value&&t.updateElsHeight(),t.updateColumnsWidth(),"undefined"!=typeof window&&requestAnimationFrame(y)};uo(async()=>{await tn(),n.updateColumns(),w(),requestAnimationFrame(g);const t=o.vnode.el,r=o.refs.headerWrapper;e.flexible&&t&&t.parentElement&&(t.parentElement.style.minWidth="0"),s.value={width:u.value=t.offsetWidth,height:t.offsetHeight,headerHeight:e.showHeader&&r?r.offsetHeight:null},n.states.columns.value.forEach(e=>{e.filteredValue&&e.filteredValue.length&&o.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})}),o.$ready=!0});const b=e=>{const{tableWrapper:n}=o.refs;((e,n)=>{if(!e)return;const o=Array.from(e.classList).filter(e=>!e.startsWith("is-scrolling-"));o.push(t.scrollX.value?n:"is-scrolling-none"),e.className=o.join(" ")})(n,e)},y=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const e="is-scrolling-none";return void((e=>{const{tableWrapper:t}=o.refs;return!(!t||!t.classList.contains(e))})(e)||b(e))}const e=o.refs.scrollBarRef.wrapRef;if(!e)return;const{scrollLeft:n,offsetWidth:r,scrollWidth:l}=e,{headerWrapper:a,footerWrapper:s}=o.refs;a&&(a.scrollLeft=n),s&&(s.scrollLeft=n),b(n>=l-r-1?"is-scrolling-right":0===n?"is-scrolling-left":"is-scrolling-middle")},w=()=>{o.refs.scrollBarRef&&(o.refs.scrollBarRef.wrapRef&&Gc(o.refs.scrollBarRef.wrapRef,"scroll",y,{passive:!0}),e.fit?Zc(o.vnode.el,x):Gc(window,"resize",x),Zc(o.refs.tableInnerWrapper,()=>{var e,t;x(),null==(t=null==(e=o.refs)?void 0:e.scrollBarRef)||t.update()}))},x=()=>{var t,n,r,l;const a=o.vnode.el;if(!o.$ready||!a)return;let i=!1;const{width:m,height:b,headerHeight:y}=s.value,w=u.value=a.offsetWidth;m!==w&&(i=!0);const x=a.offsetHeight;(e.height||h.value)&&b!==x&&(i=!0);const C="fixed"===e.tableLayout?o.refs.headerWrapper:null==(t=o.refs.tableHeaderRef)?void 0:t.$el;e.showHeader&&(null==C?void 0:C.offsetHeight)!==y&&(i=!0),c.value=(null==(n=o.refs.tableWrapper)?void 0:n.scrollHeight)||0,p.value=(null==C?void 0:C.scrollHeight)||0,f.value=(null==(r=o.refs.footerWrapper)?void 0:r.offsetHeight)||0,v.value=(null==(l=o.refs.appendWrapper)?void 0:l.offsetHeight)||0,d.value=c.value-p.value-f.value-v.value,i&&(s.value={width:w,height:x,headerHeight:e.showHeader&&(null==C?void 0:C.offsetHeight)||0},g())},C=Tp(),S=ml(()=>{const{bodyWidth:e,scrollY:n,gutterWidth:o}=t;return e.value?e.value-(n.value?o:0)+"px":""}),_=ml(()=>e.maxHeight?"fixed":e.tableLayout),k=ml(()=>{if(e.data&&e.data.length)return;let t="100%";e.height&&d.value&&(t=`${d.value}px`);const n=u.value;return{width:n?`${n}px`:"",height:t}}),E=ml(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${p.value+f.value}px)`}:{maxHeight:+e.maxHeight-p.value-f.value+"px"}:{});return{isHidden:r,renderExpanded:l,setDragVisible:e=>{a.value=e},isGroup:i,handleMouseLeave:()=>{o.store.commit("setHoverRow",null),o.hoverState&&(o.hoverState=null)},handleHeaderFooterMousewheel:(e,t)=>{const{pixelX:n,pixelY:r}=t;Math.abs(n)>=Math.abs(r)&&(o.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},tableSize:C,emptyBlockStyle:k,resizeProxyVisible:a,bodyWidth:S,resizeState:s,doLayout:g,tableBodyStyles:m,tableLayout:_,scrollbarViewStyle:{display:"inline-block",verticalAlign:"middle"},scrollbarStyle:E}}function ob(e){const t=kt();uo(()=>{(()=>{const n=e.vnode.el.querySelector(".hidden-columns"),o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(e=>e())}),t.value.observe(n,{childList:!0,subtree:!0})})()}),vo(()=>{var e;null==(e=t.value)||e.disconnect()})}var rb={data:{type:Array,default:()=>[]},size:vd,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:[String,Object,Array],default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean};function lb(e){const t="auto"===e.tableLayout;let n=e.columns||[];return t&&n.every(({width:e})=>Rc(e))&&(n=[]),gl("colgroup",{},n.map(n=>gl("col",(n=>{const o={key:`${e.tableLayout}_${n.id}`,style:{},name:void 0};return t?o.style={width:`${n.width}px`}:o.name=n.id,o})(n))))}lb.props=["columns","tableLayout"];var ab,sb,ib,ub,cb,db,pb,fb,vb,hb,mb,gb,bb,yb,wb,xb=!1;function Cb(){if(!xb){xb=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(gb=/\b(iPhone|iP[ao]d)/.exec(e),bb=/\b(iP[ao]d)/.exec(e),hb=/Android/i.exec(e),yb=/FBAN\/\w+;/i.exec(e),wb=/Mobile/i.exec(e),mb=!!/Win64/.exec(e),t){(ab=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(ab=document.documentMode);var o=/(?:Trident\/(\d+.\d+))/.exec(e);db=o?parseFloat(o[1])+4:ab,sb=t[2]?parseFloat(t[2]):NaN,ib=t[3]?parseFloat(t[3]):NaN,(ub=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),cb=t&&t[1]?parseFloat(t[1]):NaN):cb=NaN}else ab=sb=ib=cb=ub=NaN;if(n){if(n[1]){var r=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);pb=!r||parseFloat(r[1].replace("_","."))}else pb=!1;fb=!!n[2],vb=!!n[3]}else pb=fb=vb=!1}}var Sb,_b={ie:function(){return Cb()||ab},ieCompatibilityMode:function(){return Cb()||db>ab},ie64:function(){return _b.ie()&&mb},firefox:function(){return Cb()||sb},opera:function(){return Cb()||ib},webkit:function(){return Cb()||ub},safari:function(){return _b.webkit()},chrome:function(){return Cb()||cb},windows:function(){return Cb()||fb},osx:function(){return Cb()||pb},linux:function(){return Cb()||vb},iphone:function(){return Cb()||gb},mobile:function(){return Cb()||gb||bb||hb||wb},nativeApp:function(){return Cb()||yb},android:function(){return Cb()||hb},ipad:function(){return Cb()||bb}},kb=_b,Eb={canUseDOM:!!(typeof window<"u"&&window.document&&window.document.createElement)};Eb.canUseDOM&&(Sb=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var Ab=function(e,t){if(!Eb.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var r=document.createElement("div");r.setAttribute(n,"return;"),o="function"==typeof r[n]}return!o&&Sb&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o};function Ob(e){var t=0,n=0,o=0,r=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=10*t,r=10*n,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||r)&&e.deltaMode&&(1==e.deltaMode?(o*=40,r*=40):(o*=800,r*=800)),o&&!t&&(t=o<1?-1:1),r&&!n&&(n=r<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:r}}Ob.getEventType=function(){return kb.firefox()?"DOMMouseScroll":Ab("wheel")?"wheel":"mousewheel"};var Tb=Ob;const Mb="_Mousewheel",Lb=function(e,t){if(e&&e.addEventListener){Rb(e);const n=function(e){const n=Tb(e);t&&Reflect.apply(t,this,[e,n])};e[Mb]={wheelHandler:n},e.addEventListener("wheel",n,{passive:!0})}},Rb=e=>{var t;(null==(t=e[Mb])?void 0:t.wheelHandler)&&(e.removeEventListener("wheel",e[Mb].wheelHandler),e[Mb]=null)};let Ib=1;const Nb=["data-prefix"],Bb={ref:"hiddenColumns",class:"hidden-columns"};var jb=kd(Yn({name:"ElTable",directives:{Mousewheel:{beforeMount(e,t){Lb(e,t.value)},unmounted(e){Rb(e)},updated(e,t){t.value!==t.oldValue&&Lb(e,t.value)}}},components:{TableHeader:qg,TableBody:Qg,TableFooter:tb,ElScrollbar:Kp,hColgroup:lb},props:rb,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t:t}=ud(),n=Ta("table"),o=ol();hn(Wg,o);const r=Ig(o,e);o.store=r;const l=new jg({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=l;const a=ml(()=>0===(r.states.data.value||[]).length),{setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,sort:h,updateKeyChildren:m}=function(e){return{setCurrentRow:t=>{e.commit("setCurrentRow",t)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(t,n,o=!0)=>{e.toggleRowSelection(t,n,!1,o),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit("sort",{prop:t,order:n})},updateKeyChildren:(t,n)=>{e.updateKeyChildren(t,n)}}}(r),{isHidden:g,renderExpanded:b,setDragVisible:y,isGroup:w,handleMouseLeave:x,handleHeaderFooterMousewheel:C,tableSize:S,emptyBlockStyle:_,resizeProxyVisible:k,bodyWidth:E,resizeState:A,doLayout:O,tableBodyStyles:T,tableLayout:M,scrollbarViewStyle:L,scrollbarStyle:R}=nb(e,l,r,o),{scrollBarRef:I,scrollTo:N,setScrollLeft:B,setScrollTop:j}=(()=>{const e=kt(),t=(t,n)=>{const o=e.value;o&&Nc(n)&&["Top","Left"].includes(t)&&o[`setScroll${t}`](n)};return{scrollBarRef:e,scrollTo:(t,n)=>{const o=e.value;o&&o.scrollTo(t,n)},setScrollTop:e=>t("Top",e),setScrollLeft:e=>t("Left",e)}})(),P=pc(O,50),F=`${n.namespace.value}-table_${Ib++}`;o.tableId=F,o.state={isGroup:w,resizeState:A,doLayout:O,debouncedUpdateLayout:P};const $=ml(()=>{var n;return null!=(n=e.sumText)?n:t("el.table.sumText")}),D=ml(()=>{var n;return null!=(n=e.emptyText)?n:t("el.table.emptyText")}),z=ml(()=>Kg(r.states.originColumns.value)[0]);return ob(o),fo(()=>{P.cancel()}),{ns:n,layout:l,store:r,columns:z,handleHeaderFooterMousewheel:C,handleMouseLeave:x,tableId:F,tableSize:S,isHidden:g,isEmpty:a,renderExpanded:b,resizeProxyVisible:k,resizeState:A,isGroup:w,bodyWidth:E,tableBodyStyles:T,emptyBlockStyle:_,debouncedUpdateLayout:P,setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,doLayout:O,sort:h,updateKeyChildren:m,t:t,setDragVisible:y,context:o,computedSumText:$,computedEmptyText:D,tableLayout:M,scrollbarViewStyle:L,scrollbarStyle:R,scrollBarRef:I,scrollTo:N,setScrollLeft:B,setScrollTop:j,allowDragLastColumn:e.allowDragLastColumn}}}),[["render",function(e,t,n,o,r,l){const a=wo("hColgroup"),s=wo("table-header"),i=wo("table-body"),u=wo("table-footer"),c=wo("el-scrollbar"),d=So("directives","mousewheel");return Nr(),Fr("div",{ref:"tableWrapper",class:U([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:D(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[1]||(t[1]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t))},[Wr("div",{ref:"tableInnerWrapper",class:U(e.ns.e("inner-wrapper"))},[Wr("div",Bb,[Eo(e.$slots,"default")],512),e.showHeader&&"fixed"===e.tableLayout?fn((Nr(),Fr("div",{key:0,ref:"headerWrapper",class:U(e.ns.e("header-wrapper"))},[Wr("table",{ref:"tableHeader",class:U(e.ns.e("header")),style:D(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Ur(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Ur(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","append-filter-panel-to","allow-drag-last-column","onSetDragVisible"])],6)],2)),[[d,e.handleHeaderFooterMousewheel]]):Gr("v-if",!0),Wr("div",{ref:"bodyWrapper",class:U(e.ns.e("body-wrapper"))},[Ur(c,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:t[0]||(t[0]=t=>e.$emit("scroll",t))},{default:pn(()=>[Wr("table",{ref:"tableBody",class:U(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:D({width:e.bodyWidth,tableLayout:e.tableLayout})},[Ur(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&"auto"===e.tableLayout?(Nr(),$r(s,{key:0,ref:"tableHeaderRef",class:U(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","append-filter-panel-to","onSetDragVisible"])):Gr("v-if",!0),Ur(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&"auto"===e.tableLayout?(Nr(),$r(u,{key:1,class:U(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Gr("v-if",!0)],6),e.isEmpty?(Nr(),Fr("div",{key:0,ref:"emptyBlock",style:D(e.emptyBlockStyle),class:U(e.ns.e("empty-block"))},[Wr("span",{class:U(e.ns.e("empty-text"))},[Eo(e.$slots,"empty",{},()=>[qr(Z(e.computedEmptyText),1)])],2)],6)):Gr("v-if",!0),e.$slots.append?(Nr(),Fr("div",{key:1,ref:"appendWrapper",class:U(e.ns.e("append-wrapper"))},[Eo(e.$slots,"append")],2)):Gr("v-if",!0)]),_:3},8,["view-style","wrap-style","always","tabindex","native"])],2),e.showSummary&&"fixed"===e.tableLayout?fn((Nr(),Fr("div",{key:1,ref:"footerWrapper",class:U(e.ns.e("footer-wrapper"))},[Wr("table",{class:U(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:D(e.tableBodyStyles)},[Ur(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Ur(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Ul,!e.isEmpty],[d,e.handleHeaderFooterMousewheel]]):Gr("v-if",!0),e.border||e.isGroup?(Nr(),Fr("div",{key:2,class:U(e.ns.e("border-left-patch"))},null,2)):Gr("v-if",!0)],2),fn(Wr("div",{ref:"resizeProxy",class:U(e.ns.e("column-resize-proxy"))},null,2),[[Ul,e.resizeProxyVisible]])],46,Nb)}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const Pb={selection:"table-column--selection",expand:"table__expand-column"},Fb={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},$b={selection:{renderHeader({store:e}){var t;return gl(mm,{disabled:e.states.data.value&&0===e.states.data.value.length,size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":null!=(t=e.toggleAllSelection)?t:void 0,modelValue:e.states.isAllSelected.value,ariaLabel:e.t("el.table.selectAllLabel")})},renderCell:({row:e,column:t,store:n,$index:o})=>gl(mm,{disabled:!!t.selectable&&!t.selectable.call(null,e,o),size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e),ariaLabel:n.t("el.table.selectRowLabel")}),sortable:!1,resizable:!1},index:{renderHeader:({column:e})=>e.label||"#",renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return Nc(o)?n=t+o:g(o)&&(n=o(t)),gl("div",{},[n])},sortable:!1},expand:{renderHeader:({column:e})=>e.label||"",renderCell({column:e,row:t,store:n,expanded:o}){const{ns:r}=n,l=[r.e("expand-icon")];return!e.renderExpand&&o&&l.push(r.em("expand-icon","expanded")),gl("button",{type:"button","aria-label":n.t(o?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":o,class:l,onClick:function(e){e.stopPropagation(),n.toggleRowExpansion(t)}},{default:()=>e.renderExpand?[e.renderExpand({expanded:o})]:[gl($d,null,{default:()=>[gl(zd)]})]})},sortable:!1,resizable:!1}};function Db({row:e,column:t,$index:n}){var o;const r=t.property,l=r&&bd(e,r).value;return t&&t.formatter?t.formatter(e,t,l,n):(null==(o=null==l?void 0:l.toString)?void 0:o.call(l))||""}function zb(e,t){return e.reduce((e,t)=>(e[t]=t,e),t)}function Vb(e,t,n){const o=ol(),r=kt(""),l=kt(!1),a=kt(),s=kt(),i=Ta("table");yn(()=>{a.value=e.align?`is-${e.align}`:null,a.value}),yn(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:a.value,s.value});const u=ml(()=>{let e=o.vnode.vParent||o.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e}),c=ml(()=>{const{store:e}=o.parent;if(!e)return!1;const{treeData:t}=e.states,n=t.value;return n&&Object.keys(n).length>0}),d=kt(vg(e.width)),p=kt(hg(e.minWidth));return{columnId:r,realAlign:a,isSubColumn:l,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:e=>(d.value&&(e.width=d.value),p.value&&(e.minWidth=p.value),!d.value&&p.value&&(e.width=void 0),e.minWidth||(e.minWidth=80),e.realWidth=Number(Rc(e.width)?e.minWidth:e.width),e),setColumnForcedProps:e=>{const t=e.type,n=$b[t]||{};Object.keys(n).forEach(t=>{const o=n[t];"className"===t||Rc(o)||(e[t]=o)});const o=(e=>Pb[e]||"")(t);if(o){const t=`${Tt(i.namespace)}-${o}`;e.className=e.className?`${e.className} ${t}`:t}return e},setColumnRenders:r=>{e.renderHeader||"selection"!==r.type&&(r.renderHeader=e=>{if(o.columnConfig.value.label,t.header){const n=t.header(e);if(Ag(n))return gl(Or,n)}return qr(r.label)}),t["filter-icon"]&&(r.renderFilterIcon=e=>Eo(t,"filter-icon",e)),t.expand&&(r.renderExpand=e=>Eo(t,"expand",e));let l=r.renderCell;return"expand"===r.type?(r.renderCell=e=>gl("div",{class:"cell"},[l(e)]),n.value.renderExpanded=e=>t.default?t.default(e):t.default):(l=l||Db,r.renderCell=e=>{let a=null;if(t.default){const n=t.default(e);a=n.some(e=>e.type!==Mr)?n:l(e)}else a=l(e);const{columns:s}=n.value.store.states,u=s.value.findIndex(e=>"default"===e.type),d=function({row:e,treeNode:t,store:n},o=!1){const{ns:r}=n;if(!t)return o?[gl("span",{class:r.e("placeholder")})]:null;const l=[],a=function(o){o.stopPropagation(),t.loading||n.loadOrToggle(e)};if(t.indent&&l.push(gl("span",{class:r.e("indent"),style:{"padding-left":`${t.indent}px`}})),Ic(t.expanded)&&!t.noLazyChildren){const e=[r.e("expand-icon"),t.expanded?r.em("expand-icon","expanded"):""];let o=zd;t.loading&&(o=Yd),l.push(gl("button",{type:"button","aria-label":n.t(t.expanded?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":t.expanded,class:e,onClick:a},{default:()=>[gl($d,{class:r.is("loading",t.loading)},{default:()=>[gl(o)]})]}))}else l.push(gl("span",{class:r.e("placeholder")}));return l}(e,c.value&&e.cellIndex===u),p={class:"cell",style:{}};return r.showOverflowTooltip&&(p.class=`${p.class} ${Tt(i.namespace)}-tooltip`,p.style={width:(e.column.realWidth||Number(e.column.width))-1+"px"}),(e=>{function t(e){var t;"ElTableColumn"===(null==(t=null==e?void 0:e.type)?void 0:t.name)&&(e.vParent=o)}f(e)?e.forEach(e=>t(e)):t(e)})(a),gl("div",p,[d,a])}),r},getPropsData:(...t)=>t.reduce((t,n)=>(f(n)&&n.forEach(n=>{t[n]=e[n]}),t),{}),getColumnElIndex:(e,t)=>Array.prototype.indexOf.call(e,t),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",o.columnConfig.value)}}}var Hb={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}};let Wb=1;var Ub=Yn({name:"ElTableColumn",components:{ElCheckbox:mm},props:Hb,setup(e,{slots:t}){const n=ol(),o=kt({}),r=ml(()=>{let e=n.parent;for(;e&&!e.tableId;)e=e.parent;return e}),{registerNormalWatchers:l,registerComplexWatchers:a}=function(e,t){const n=ol();return{registerComplexWatchers:()=>{const o={realWidth:"width",realMinWidth:"minWidth"},r=zb(["fixed"],o);Object.keys(r).forEach(r=>{const l=o[r];p(t,l)&&wn(()=>t[l],t=>{let o=t;"width"===l&&"realWidth"===r&&(o=vg(t)),"minWidth"===l&&"realMinWidth"===r&&(o=hg(t)),n.columnConfig.value[l]=o,n.columnConfig.value[r]=o;const a="fixed"===l;e.value.store.scheduleLayout(a)})})},registerNormalWatchers:()=>{const o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},r=zb(["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter","resizable"],o);Object.keys(r).forEach(e=>{const r=o[e];p(t,r)&&wn(()=>t[r],t=>{n.columnConfig.value[e]=t,"filters"!==e&&"filterMethod"!==e||(n.columnConfig.value.filterable=!(!n.columnConfig.value.filters&&!n.columnConfig.value.filterMethod))})}),["showOverflowTooltip"].forEach(t=>{p(e.value.props,t)&&wn(()=>e.value.props[t],e=>{n.columnConfig.value[t]=e})})}}}(r,e),{columnId:s,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:d,setColumnForcedProps:f,setColumnRenders:v,getPropsData:h,getColumnElIndex:m,realAlign:g,updateColumnOrder:b}=Vb(e,t,r),y=c.value;s.value=`${"tableId"in y&&y.tableId||"columnId"in y&&y.columnId}_column_${Wb++}`,io(()=>{i.value=r.value!==y;const t=e.type||"default",c=""===e.sortable||e.sortable,m="selection"!==t&&(Rc(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip),b=Rc(e.tooltipFormatter)?y.props.tooltipFormatter:e.tooltipFormatter,w={...Fb[t],id:s.value,type:t,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:m,tooltipFormatter:b,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:c,index:e.index,rawColumnKey:n.vnode.key};let x=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);x=function(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(p(t,o)){const e=t[o];Rc(e)||(n[o]=e)}return n}(w,x),x=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}(v,d,f)(x),o.value=x,l(),a()}),uo(()=>{var e,t;const l=c.value,a=i.value?null==(e=l.vnode.el)?void 0:e.children:null==(t=l.refs.hiddenColumns)?void 0:t.children,s=()=>m(a||[],n.vnode.el);o.value.getColumnIndex=s,s()>-1&&r.value.store.commit("insertColumn",o.value,i.value?"columnConfig"in l&&l.columnConfig.value:null,b)}),fo(()=>{const e=o.value.getColumnIndex;(e?e():-1)>-1&&r.value.store.commit("removeColumn",o.value,i.value?"columnConfig"in y&&y.columnConfig.value:null,b)}),n.columnId=s.value,n.columnConfig=o},render(){var e,t,n;try{const o=null==(t=(e=this.$slots).default)?void 0:t.call(e,{row:{},column:{},$index:-1}),r=[];if(f(o))for(const e of o)"ElTableColumn"===(null==(n=e.type)?void 0:n.name)||2&e.shapeFlag?r.push(e):e.type===Or&&f(e.children)&&e.children.forEach(e=>{1024===(null==e?void 0:e.patchFlag)||b(null==e?void 0:e.children)||r.push(e)});return gl("div",r)}catch(kC){return gl("div",[])}}});const Kb=Ed(jb,{TableColumn:Ub}),qb=Ad(Ub);function Gb(e,t){let n;const o=kt(!1),r=pt({...e,originalPosition:"",originalOverflow:"",visible:!1});function l(){var e,t;null==(t=null==(e=i.$el)?void 0:e.parentNode)||t.removeChild(i.$el)}function a(){if(!o.value)return;const e=r.parent;o.value=!1,e.vLoadingAddClassList=void 0,function(){const e=r.parent,t=i.ns;if(!e.vLoadingAddClassList){let n=e.getAttribute("loading-number");n=Number.parseInt(n)-1,n?e.setAttribute("loading-number",n.toString()):(Bd(e,t.bm("parent","relative")),e.removeAttribute("loading-number")),Bd(e,t.bm("parent","hidden"))}l(),s.unmount()}()}const s=Sa(Yn({name:"ElLoading",setup(e,{expose:t}){const{ns:n,zIndex:o}=xd("loading");return t({ns:n,zIndex:o}),()=>{const e=r.spinner||r.svg,t=gl("svg",{class:"circular",viewBox:r.svgViewBox?r.svgViewBox:"0 0 50 50",...e?{innerHTML:e}:{}},[gl("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),o=r.text?gl("p",{class:n.b("text")},[r.text]):void 0;return gl(Ll,{name:n.b("fade"),onAfterLeave:a},{default:pn(()=>[fn(Ur("div",{style:{backgroundColor:r.background||""},class:[n.b("mask"),r.customClass,n.is("fullscreen",r.fullscreen)]},[gl("div",{class:n.b("spinner")},[t,o])]),[[Ul,r.visible]])])})}}}));Object.assign(s._context,null!=t?t:{});const i=s.mount(document.createElement("div"));return{...Nt(r),setText:function(e){r.text=e},removeElLoadingChild:l,close:function(){var t;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(n),n=setTimeout(a,400),r.visible=!1,null==(t=e.closed)||t.call(e))},handleAfterLeave:a,vm:i,get $el(){return i.$el}}}let Yb;const Xb=function(e={},t){if(!Dc)return;const n=Zb(e);if(n.fullscreen&&Yb)return Yb;const o=Gb({...n,closed:()=>{var e;null==(e=n.closed)||e.call(n),n.fullscreen&&(Yb=void 0)}},null!=t?t:Xb._context);Jb(n,n.parent,o),Qb(n,n.parent,o),n.parent.vLoadingAddClassList=()=>Qb(n,n.parent,o);let r=n.parent.getAttribute("loading-number");return r=r?`${Number.parseInt(r)+1}`:"1",n.parent.setAttribute("loading-number",r),n.parent.appendChild(o.$el),tn(()=>o.visible.value=n.visible),n.fullscreen&&(Yb=o),o},Zb=e=>{var t,n,o,r;let l;return l=b(e.target)?null!=(t=document.querySelector(e.target))?t:document.body:e.target||document.body,{parent:l===document.body||e.body?document.body:l,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:l===document.body&&(null==(n=e.fullscreen)||n),lock:null!=(o=e.lock)&&o,customClass:e.customClass||"",visible:null==(r=e.visible)||r,beforeClose:e.beforeClose,closed:e.closed,target:l}},Jb=async(e,t,n)=>{const{nextZIndex:o}=n.vm.zIndex||n.vm._.exposed.zIndex,r={};if(e.fullscreen)n.originalPosition.value=jd(document.body,"position"),n.originalOverflow.value=jd(document.body,"overflow"),r.zIndex=o();else if(e.parent===document.body){n.originalPosition.value=jd(document.body,"position"),await tn();for(const t of["top","left"]){const n="top"===t?"scrollTop":"scrollLeft";r[t]=e.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-Number.parseInt(jd(document.body,`margin-${t}`),10)+"px"}for(const t of["height","width"])r[t]=`${e.target.getBoundingClientRect()[t]}px`}else n.originalPosition.value=jd(t,"position");for(const[l,a]of Object.entries(r))n.$el.style[l]=a},Qb=(e,t,n)=>{const o=n.vm.ns||n.vm._.exposed.ns;["absolute","fixed","sticky"].includes(n.originalPosition.value)?Bd(t,o.bm("parent","relative")):Nd(t,o.bm("parent","relative")),e.fullscreen&&e.lock?Nd(t,o.bm("parent","hidden")):Bd(t,o.bm("parent","hidden"))};Xb._context=null;const ey=Symbol("ElLoading"),ty=e=>`element-loading-${L(e)}`,ny=(e,t)=>{var n,o,r,l;const a=t.instance,s=e=>w(t.value)?t.value[e]:void 0,i=t=>{return n=s(t)||e.getAttribute(ty(t)),kt(b(n)&&(null==a?void 0:a[n])||n);var n},u=null!=(n=s("fullscreen"))?n:t.modifiers.fullscreen,c={text:i("text"),svg:i("svg"),svgViewBox:i("svgViewBox"),spinner:i("spinner"),background:i("background"),customClass:i("customClass"),fullscreen:u,target:null!=(o=s("target"))?o:u?void 0:e,body:null!=(r=s("body"))?r:t.modifiers.body,lock:null!=(l=s("lock"))?l:t.modifiers.lock},d=Xb(c);d._context=oy._context,e[ey]={options:c,instance:d}},oy={mounted(e,t){t.value&&ny(e,t)},updated(e,t){const n=e[ey];if(!t.value)return null==n||n.instance.close(),void(e[ey]=null);n?((e,t)=>{for(const n of Object.keys(e))_t(e[n])&&(e[n].value=t[n])})(n.options,w(t.value)?t.value:{text:e.getAttribute(ty("text")),svg:e.getAttribute(ty("svg")),svgViewBox:e.getAttribute(ty("svgViewBox")),spinner:e.getAttribute(ty("spinner")),background:e.getAttribute(ty("background")),customClass:e.getAttribute(ty("customClass"))}):ny(e,t)},unmounted(e){var t;null==(t=e[ey])||t.instance.close(),e[ey]=null},_context:null},ry=["primary","success","info","warning","error"],ly=["top","top-left","top-right","bottom","bottom-left","bottom-right"],ay="top",sy={customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,placement:void 0,zIndex:0,grouping:!1,repeatNum:1,appendTo:Dc?document.body:void 0},iy=pd({customClass:{type:String,default:sy.customClass},dangerouslyUseHTMLString:{type:Boolean,default:sy.dangerouslyUseHTMLString},duration:{type:Number,default:sy.duration},icon:{type:lp,default:sy.icon},id:{type:String,default:sy.id},message:{type:[String,Object,Function],default:sy.message},onClose:{type:Function,default:sy.onClose},showClose:{type:Boolean,default:sy.showClose},type:{type:String,values:ry,default:sy.type},plain:{type:Boolean,default:sy.plain},offset:{type:Number,default:sy.offset},placement:{type:String,values:ly,default:sy.placement},zIndex:{type:Number,default:sy.zIndex},grouping:{type:Boolean,default:sy.grouping},repeatNum:{type:Number,default:sy.repeatNum}}),uy=ft({}),cy=(e,t)=>{const{prev:n}=((e,t)=>{const n=uy[t]||[],o=n.findIndex(t=>t.id===e),r=n[o];let l;return o>0&&(l=n[o-1]),{current:r,prev:l}})(e,t);return n?n.vm.exposed.bottom.value:0},dy=["id"],py=["innerHTML"];var fy=kd(Yn({name:"ElMessage",__name:"message",props:iy,emits:{destroy:()=>!0},setup(e,{expose:t,emit:n}){const{Close:o}=ap,r=e,l=n,a=kt(!1),{ns:s,zIndex:i}=xd("message"),{currentZIndex:u,nextZIndex:c}=i,d=kt(),p=kt(!1),f=kt(0);let v;const h=ml(()=>r.type?"error"===r.type?"danger":r.type:"info"),m=ml(()=>{const e=r.type;return{[s.bm("icon",e)]:e&&sp[e]}}),g=ml(()=>r.icon||sp[r.type]||""),b=ml(()=>r.placement||ay),y=ml(()=>cy(r.id,b.value)),w=ml(()=>((e,t,n)=>(uy[n]||[]).findIndex(t=>t.id===e)>0?16:t)(r.id,r.offset,b.value)+y.value),x=ml(()=>f.value+w.value),C=ml(()=>b.value.includes("left")?s.is("left"):b.value.includes("right")?s.is("right"):s.is("center")),S=ml(()=>b.value.startsWith("top")?"top":"bottom"),_=ml(()=>({[S.value]:`${w.value}px`,zIndex:u.value}));function k(){0!==r.duration&&({stop:v}=Uc(()=>{A()},r.duration))}function E(){null==v||v()}function A(){p.value=!1,tn(()=>{var e;a.value||(null==(e=r.onClose)||e.call(r),l("destroy"))})}return uo(()=>{k(),c(),p.value=!0}),wn(()=>r.repeatNum,()=>{E(),k()}),Gc(document,"keydown",function(e){Af(e)===kf.esc&&A()}),Zc(d,()=>{f.value=d.value.getBoundingClientRect().height}),t({visible:p,bottom:x,close:A}),(e,t)=>(Nr(),$r(Ll,{name:Tt(s).b("fade"),onBeforeEnter:t[0]||(t[0]=e=>a.value=!0),onBeforeLeave:e.onClose,onAfterLeave:t[1]||(t[1]=t=>e.$emit("destroy")),persisted:""},{default:pn(()=>[fn(Wr("div",{id:e.id,ref_key:"messageRef",ref:d,class:U([Tt(s).b(),{[Tt(s).m(e.type)]:e.type},Tt(s).is("closable",e.showClose),Tt(s).is("plain",e.plain),Tt(s).is("bottom","bottom"===S.value),C.value,e.customClass]),style:D(_.value),role:"alert",onMouseenter:E,onMouseleave:k},[e.repeatNum>1?(Nr(),$r(Tt(Eh),{key:0,value:e.repeatNum,type:h.value,class:U(Tt(s).e("badge"))},null,8,["value","type","class"])):Gr("v-if",!0),g.value?(Nr(),$r(Tt($d),{key:1,class:U([Tt(s).e("icon"),m.value])},{default:pn(()=>[(Nr(),$r(Co(g.value)))]),_:1},8,["class"])):Gr("v-if",!0),Eo(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(Nr(),Fr(Or,{key:1},[Gr(" Caution here, message could've been compromised, never use user's input as message "),Wr("p",{class:U(Tt(s).e("content")),innerHTML:e.message},null,10,py)],2112)):(Nr(),Fr("p",{key:0,class:U(Tt(s).e("content"))},Z(e.message),3))]),e.showClose?(Nr(),$r(Tt($d),{key:2,class:U(Tt(s).e("closeBtn")),onClick:ma(A,["stop"])},{default:pn(()=>[Ur(Tt(o))]),_:1},8,["class"])):Gr("v-if",!0)],46,dy),[[Ul,p.value]])]),_:3},8,["name","onBeforeLeave"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let vy=1;const hy=e=>{const t=!e||b(e)||Dr(e)||g(e)?{message:e}:e,n={...sy,...t};return(e=>{if(e.appendTo){if(b(e.appendTo)){let t=document.querySelector(e.appendTo);Bc(t)||(t=document.body),e.appendTo=t}}else e.appendTo=document.body})(n),(e=>{!e.placement&&b(Em.placement)&&Em.placement&&(e.placement=Em.placement),e.placement||(e.placement=ay),ly.includes(e.placement)||(e.placement=ay)})(n),Ic(Em.grouping)&&!n.grouping&&(n.grouping=Em.grouping),Nc(Em.duration)&&3e3===n.duration&&(n.duration=Em.duration),Nc(Em.offset)&&16===n.offset&&(n.offset=Em.offset),Ic(Em.showClose)&&!n.showClose&&(n.showClose=Em.showClose),Ic(Em.plain)&&!n.plain&&(n.plain=Em.plain),n},my=({appendTo:e,...t},n)=>{const o="message_"+vy++,r=t.onClose,l=document.createElement("div"),a={...t,id:o,onClose:()=>{null==r||r(),(e=>{const t=e.props.placement||ay,n=uy[t],o=n.indexOf(e);if(-1===o)return;n.splice(o,1);const{handler:r}=e;r.close()})(c)},onDestroy:()=>{Ca(null,l)}},s=Ur(fy,a,g(a.message)||Dr(a.message)?{default:g(a.message)?a.message:()=>a.message}:null);s.appContext=n||gy._context,Ca(s,l),e.appendChild(l.firstElementChild);const i=s.component,u={close:()=>{i.exposed.close()}},c={id:o,vnode:s,vm:i,handler:u,props:s.component.props};return c},gy=(e={},t)=>{if(!Dc)return{close:()=>{}};const n=hy(e),o=(r=n.placement||ay,uy[r]||(uy[r]=ft([])),uy[r]);var r;if(n.grouping&&o.length){const e=o.find(({vnode:e})=>{var t;return(null==(t=e.props)?void 0:t.message)===n.message});if(e)return e.props.repeatNum+=1,e.props.type=n.type,e.handler}if(Nc(Em.max)&&o.length>=Em.max)return{close:()=>{}};const l=my(n,t);return o.push(l),l.handler};ry.forEach(e=>{gy[e]=(t={},n)=>{const o=hy(t);return gy({...o,type:e},n)}}),gy.closeAll=function(e){for(const t in uy)if(p(uy,t)){const n=[...uy[t]];for(const t of n)e&&e!==t.props.type||t.handler.close()}},gy.closeAllByPlacement=function(e){uy[e]&&[...uy[e]].forEach(e=>e.handler.close())},gy._context=null;const by=(wy="$message",(yy=gy).install=e=>{yy._context=e._context,e.config.globalProperties[wy]=yy},yy);var yy,wy;const xy="_trap-focus-children",Cy=[],Sy=e=>{if(0===Cy.length)return;const t=Af(e),n=Cy[Cy.length-1][xy];if(n.length>0&&t===kf.tab){if(1===n.length)return e.preventDefault(),void(document.activeElement!==n[0]&&n[0].focus());const t=e.shiftKey,o=e.target===n[0],r=e.target===n[n.length-1];o&&t&&(e.preventDefault(),n[n.length-1].focus()),r&&!t&&(e.preventDefault(),n[0].focus())}},_y=Yn({name:"ElMessageBox",directives:{TrapFocus:{beforeMount(e){e[xy]=Rp(e),Cy.push(e),Cy.length<=1&&document.addEventListener("keydown",Sy)},updated(e){tn(()=>{e[xy]=Rp(e)})},unmounted(){Cy.shift(),0===Cy.length&&document.removeEventListener("keydown",Sy)}}},components:{ElButton:Qh,ElFocusTrap:Lf,ElInput:Fp,ElOverlay:Tm,ElIcon:$d,...ap},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Qm},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,overflow:Boolean,roundButton:Boolean,container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{locale:n,zIndex:o,ns:r,size:l}=xd("message-box",ml(()=>e.buttonSize)),{t:a}=n,{nextZIndex:s}=o,i=kt(!1),u=pt({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",closeIcon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:"",inputValidator:void 0,inputErrorMessage:"",message:"",modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonLoadingIcon:xt(Yd),cancelButtonLoadingIcon:xt(Yd),confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:s()}),c=ml(()=>{const e=u.type;return{[r.bm("icon",e)]:e&&sp[e]}}),d=Sp(),p=Sp(),f=ml(()=>{const e=u.type;return u.icon||e&&sp[e]||""}),v=ml(()=>!!u.message),h=kt(),m=kt(),y=kt(),w=kt(),x=kt(),C=ml(()=>u.confirmButtonClass);wn(()=>u.inputValue,async t=>{await tn(),"prompt"===e.boxType&&t&&M()},{immediate:!0}),wn(()=>i.value,t=>{var n,o;t&&("prompt"!==e.boxType&&(u.autofocus?y.value=null!=(o=null==(n=x.value)?void 0:n.$el)?o:h.value:y.value=h.value),u.zIndex=s()),"prompt"===e.boxType&&(t?tn().then(()=>{var e;w.value&&w.value.$el&&(u.autofocus?y.value=null!=(e=L())?e:h.value:y.value=h.value)}):(u.editorErrorMessage="",u.validateError=!1))});const S=ml(()=>e.draggable),_=ml(()=>e.overflow),{isDragging:k}=Mm(h,m,S,_);function E(){i.value&&(i.value=!1,tn(()=>{u.action&&t("action",u.action)}))}uo(async()=>{await tn(),e.closeOnHashChange&&window.addEventListener("hashchange",E)}),fo(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",E)});const A=()=>{e.closeOnClickModal&&T(u.distinguishCancelAndClose?"close":"cancel")},O=Am(A),T=t=>{var n;("prompt"!==e.boxType||"confirm"!==t||M())&&(u.action=t,u.beforeClose?null==(n=u.beforeClose)||n.call(u,t,u,E):E())},M=()=>{if("prompt"===e.boxType){const e=u.inputPattern;if(e&&!e.test(u.inputValue||""))return u.editorErrorMessage=u.inputErrorMessage||a("el.messagebox.error"),u.validateError=!0,!1;const t=u.inputValidator;if(g(t)){const e=t(u.inputValue);if(!1===e)return u.editorErrorMessage=u.inputErrorMessage||a("el.messagebox.error"),u.validateError=!0,!1;if(b(e))return u.editorErrorMessage=e,u.validateError=!0,!1}}return u.editorErrorMessage="",u.validateError=!1,!0},L=()=>{var e,t;const n=null==(e=w.value)?void 0:e.$refs;return null!=(t=null==n?void 0:n.input)?t:null==n?void 0:n.textarea},R=()=>{T("close")};return e.lockScroll&&Lm(i,{ns:r}),{...Nt(u),ns:r,overlayEvent:O,visible:i,hasMessage:v,typeClass:c,contentId:d,inputId:p,btnSize:l,iconComponent:f,confirmButtonClasses:C,rootRef:h,focusStartRef:y,headerRef:m,inputRef:w,isDragging:k,confirmRef:x,doClose:E,handleClose:R,onCloseRequested:()=>{e.closeOnPressEscape&&R()},handleWrapperClick:A,handleInputEnter:e=>{if("textarea"!==u.inputType)return e.preventDefault(),T("confirm")},handleAction:T,t:a}}}),ky=["aria-label","aria-describedby"],Ey=["aria-label"],Ay=["id"];var Oy=kd(_y,[["render",function(e,t,n,o,r,l){const a=wo("el-icon"),s=wo("el-input"),i=wo("el-button"),u=wo("el-focus-trap"),c=wo("el-overlay");return Nr(),$r(Ll,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=t=>e.$emit("vanish")),persisted:""},{default:pn(()=>[fn(Ur(c,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:pn(()=>[Wr("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:U(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...t)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...t)),onMousedown:t[9]||(t[9]=(...t)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...t)),onMouseup:t[10]||(t[10]=(...t)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...t))},[Ur(u,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:pn(()=>[Wr("div",{ref:"rootRef",class:U([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),e.ns.is("dragging",e.isDragging),{[e.ns.m("center")]:e.center}]),style:D(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=ma(()=>{},["stop"]))},[null!==e.title&&void 0!==e.title?(Nr(),Fr("div",{key:0,ref:"headerRef",class:U([e.ns.e("header"),{"show-close":e.showClose}])},[Wr("div",{class:U(e.ns.e("title"))},[e.iconComponent&&e.center?(Nr(),$r(a,{key:0,class:U([e.ns.e("status"),e.typeClass])},{default:pn(()=>[(Nr(),$r(Co(e.iconComponent)))]),_:1},8,["class"])):Gr("v-if",!0),Wr("span",null,Z(e.title),1)],2),e.showClose?(Nr(),Fr("button",{key:0,type:"button",class:U(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=t=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=ba(ma(t=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[Ur(a,{class:U(e.ns.e("close"))},{default:pn(()=>[(Nr(),$r(Co(e.closeIcon||"close")))]),_:1},8,["class"])],42,Ey)):Gr("v-if",!0)],2)):Gr("v-if",!0),Wr("div",{id:e.contentId,class:U(e.ns.e("content"))},[Wr("div",{class:U(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(Nr(),$r(a,{key:0,class:U([e.ns.e("status"),e.typeClass])},{default:pn(()=>[(Nr(),$r(Co(e.iconComponent)))]),_:1},8,["class"])):Gr("v-if",!0),e.hasMessage?(Nr(),Fr("div",{key:1,class:U(e.ns.e("message"))},[Eo(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(Nr(),$r(Co(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(Nr(),$r(Co(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0,textContent:Z(e.message)},null,8,["for","textContent"]))])],2)):Gr("v-if",!0)],2),fn(Wr("div",{class:U(e.ns.e("input"))},[Ur(s,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=t=>e.inputValue=t),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:U({invalid:e.validateError}),onKeydown:ba(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),Wr("div",{class:U(e.ns.e("errormsg")),style:D({visibility:e.editorErrorMessage?"visible":"hidden"})},Z(e.editorErrorMessage),7)],2),[[Ul,e.showInput]])],10,Ay),Wr("div",{class:U(e.ns.e("btns"))},[e.showCancelButton?(Nr(),$r(i,{key:0,loading:e.cancelButtonLoading,"loading-icon":e.cancelButtonLoadingIcon,class:U([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=t=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=ba(ma(t=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:pn(()=>[qr(Z(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","loading-icon","class","round","size"])):Gr("v-if",!0),fn(Ur(i,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,"loading-icon":e.confirmButtonLoadingIcon,class:U([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=t=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=ba(ma(t=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:pn(()=>[qr(Z(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","loading-icon","class","round","disabled","size"]),[[Ul,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,ky)]),_:3},8,["z-index","overlay-class","mask"]),[[Ul,e.visible]])]),_:3})}],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const Ty=new Map,My=(e,t,n=null)=>{const o=Ur(Oy,e,g(e.message)||Dr(e.message)?{default:g(e.message)?e.message:()=>e.message}:null);return o.appContext=n,Ca(o,t),(e=>{let t=document.body;return e.appendTo&&(b(e.appendTo)&&(t=document.querySelector(e.appendTo)),Bc(e.appendTo)&&(t=e.appendTo),Bc(t)||(t=document.body)),t})(e).appendChild(t.firstElementChild),o.component},Ly=(e,t)=>{const n=document.createElement("div");e.onVanish=()=>{Ca(null,n),Ty.delete(r)},e.onAction=t=>{const n=Ty.get(r);let l;l=e.showInput?{value:r.inputValue,action:t}:t,e.callback?e.callback(l,o.proxy):"cancel"===t||"close"===t?e.distinguishCancelAndClose&&"cancel"!==t?n.reject("close"):n.reject("cancel"):n.resolve(l)};const o=My(e,n,t),r=o.proxy;for(const l in e)p(e,l)&&!p(r.$props,l)&&("closeIcon"===l&&w(e[l])?r[l]=xt(e[l]):r[l]=e[l]);return r.visible=!0,r};function Ry(e,t=null){if(!Dc)return Promise.reject();let n;return b(e)||Dr(e)?e={message:e}:n=e.callback,new Promise((o,r)=>{const l=Ly(e,null!=t?t:Ry._context);Ty.set(l,{options:e,callback:n,resolve:o,reject:r})})}const Iy={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};["alert","confirm","prompt"].forEach(e=>{Ry[e]=function(e){return(t,n,o,r)=>{let l="";return w(n)?(o=n,l=""):l=Rc(n)?"":n,Ry(Object.assign({title:l,message:t,type:"",...Iy[e]},o,{boxType:e}),r)}}(e)}),Ry.close=()=>{Ty.forEach((e,t)=>{t.doClose()}),Ty.clear()},Ry._context=null;const Ny=Ry;Ny.install=e=>{Ny._context=e._context,e.config.globalProperties.$msgbox=Ny,e.config.globalProperties.$messageBox=Ny,e.config.globalProperties.$alert=Ny.alert,e.config.globalProperties.$confirm=Ny.confirm,e.config.globalProperties.$prompt=Ny.prompt};const By=Ny,jy="undefined"!=typeof document;function Py(e){return"object"==typeof e||"displayName"in e||"props"in e||"__vccOpts"in e}const Fy=Object.assign;function $y(e,t){const n={};for(const o in t){const r=t[o];n[o]=zy(r)?r.map(e):e(r)}return n}const Dy=()=>{},zy=Array.isArray;function Vy(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const Hy=/#/g,Wy=/&/g,Uy=/\//g,Ky=/=/g,qy=/\?/g,Gy=/\+/g,Yy=/%5B/g,Xy=/%5D/g,Zy=/%5E/g,Jy=/%60/g,Qy=/%7B/g,ew=/%7C/g,tw=/%7D/g,nw=/%20/g;function ow(e){return null==e?"":encodeURI(""+e).replace(ew,"|").replace(Yy,"[").replace(Xy,"]")}function rw(e){return ow(e).replace(Gy,"%2B").replace(nw,"+").replace(Hy,"%23").replace(Wy,"%26").replace(Jy,"`").replace(Qy,"{").replace(tw,"}").replace(Zy,"^")}function lw(e){return rw(e).replace(Ky,"%3D")}function aw(e){return function(e){return ow(e).replace(Hy,"%23").replace(qy,"%3F")}(e).replace(Uy,"%2F")}function sw(e){if(null==e)return null;try{return decodeURIComponent(""+e)}catch(t){}return""+e}const iw=/\/$/;function uw(e,t,n="/"){let o,r={},l="",a="";const s=t.indexOf("#");let i=t.indexOf("?");return i=s>=0&&i>s?-1:i,i>=0&&(o=t.slice(0,i),l=t.slice(i,s>0?s:t.length),r=e(l.slice(1))),s>=0&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=function(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];".."!==r&&"."!==r||o.push("");let l,a,s=n.length-1;for(l=0;l1&&s--}return n.slice(0,s).join("/")+"/"+o.slice(l).join("/")}(null!=o?o:t,n),{fullPath:o+l+a,path:o,query:r,hash:sw(a)}}function cw(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function dw(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function pw(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!fw(e[n],t[n]))return!1;return!0}function fw(e,t){return zy(e)?vw(e,t):zy(t)?vw(t,e):e?.valueOf()===t?.valueOf()}function vw(e,t){return zy(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):1===e.length&&e[0]===t}const hw={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let mw=function(e){return e.pop="pop",e.push="push",e}({}),gw=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function bw(e){if(!e)if(jy){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),e.replace(iw,"")}const yw=/^[^#]+#/;function ww(e,t){return e.replace(yw,"#")+t}const xw=()=>({left:window.scrollX,top:window.scrollY});function Cw(e){let t;if("el"in e){const n=e.el,o="string"==typeof n&&n.startsWith("#"),r="string"==typeof n?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=function(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.scrollX,null!=t.top?t.top:window.scrollY)}function Sw(e,t){return(history.state?history.state.position-t:-1)+e}const _w=new Map;function kw(e){return"string"==typeof e||"symbol"==typeof e}let Ew=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const Aw=Symbol("");function Ow(e,t){return Fy(new Error,{type:e,[Aw]:!0},t)}function Tw(e,t){return e instanceof Error&&Aw in e&&(null==t||!!(e.type&t))}function Mw(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let o=0;oe&&rw(e)):[o&&rw(o)]).forEach(e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))}):void 0!==o&&(t+=(t.length?"&":"")+n)}return t}function Rw(e){const t={};for(const n in e){const o=e[n];void 0!==o&&(t[n]=zy(o)?o.map(e=>null==e?null:""+e):null==o?o:""+o)}return t}Ew.MATCHER_NOT_FOUND,Ew.NAVIGATION_GUARD_REDIRECT,Ew.NAVIGATION_ABORTED,Ew.NAVIGATION_CANCELLED,Ew.NAVIGATION_DUPLICATED;const Iw=Symbol(""),Nw=Symbol(""),Bw=Symbol(""),jw=Symbol(""),Pw=Symbol("");function Fw(){let e=[];return{add:function(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}},list:()=>e.slice(),reset:function(){e=[]}}}function $w(e,t,n,o,r,l=e=>e()){const a=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((s,i)=>{const u=e=>{var l;!1===e?i(Ow(Ew.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?i(e):"string"==typeof(l=e)||l&&"object"==typeof l?i(Ow(Ew.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(a&&o.enterCallbacks[r]===a&&"function"==typeof e&&a.push(e),s())},c=l(()=>e.call(o&&o.instances[r],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(e=>i(e))})}function Dw(e,t,n,o,r=e=>e()){const l=[];for(const a of e)for(const e in a.components){let s=a.components[e];if("beforeRouteEnter"===t||a.instances[e])if(Py(s)){const i=(s.__vccOpts||s)[t];i&&l.push($w(i,n,o,a,e,r))}else{let i=s();l.push(()=>i.then(l=>{if(!l)throw new Error(`Couldn't resolve component "${e}" at "${a.path}"`);const s=(i=l).__esModule||"Module"===i[Symbol.toStringTag]||i.default&&Py(i.default)?l.default:l;var i;a.mods[e]=l,a.components[e]=s;const u=(s.__vccOpts||s)[t];return u&&$w(u,n,o,a,e,r)()}))}}return l}function zw(e,t){const{pathname:n,search:o,hash:r}=t,l=e.indexOf("#");if(l>-1){let t=r.includes(e.slice(l))?e.slice(l).length:1,n=r.slice(t);return"/"!==n[0]&&(n="/"+n),cw(n,"")}return cw(n,e)+o+r}function Vw(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?xw():null}}function Hw(e){const{history:t,location:n}=window,o={value:zw(e,n)},r={value:t.state};function l(o,l,a){const s=e.indexOf("#"),i=s>-1?(n.host&&document.querySelector("base")?e:e.slice(s))+o:location.protocol+"//"+location.host+e+o;try{t[a?"replaceState":"pushState"](l,"",i),r.value=l}catch(u){n[a?"replace":"assign"](i)}}return r.value||l(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:o,state:r,push:function(e,n){const a=Fy({},r.value,t.state,{forward:e,scroll:xw()});l(a.current,a,!0),l(e,Fy({},Vw(o.value,e,null),{position:a.position+1},n),!1),o.value=e},replace:function(e,n){l(e,Fy({},t.state,Vw(r.value.back,e,r.value.forward,!0),n,{position:r.value.position}),!0),o.value=e}}}function Ww(e){const t=Hw(e=bw(e)),n=function(e,t,n,o){let r=[],l=[],a=null;const s=({state:l})=>{const s=zw(e,location),i=n.value,u=t.value;let c=0;if(l){if(n.value=s,t.value=l,a&&a===i)return void(a=null);c=u?l.position-u.position:0}else o(s);r.forEach(e=>{e(n.value,i,{delta:c,type:mw.pop,direction:c?c>0?gw.forward:gw.back:gw.unknown})})};function i(){if("hidden"===document.visibilityState){const{history:e}=window;if(!e.state)return;e.replaceState(Fy({},e.state,{scroll:xw()}),"")}}return window.addEventListener("popstate",s),window.addEventListener("pagehide",i),document.addEventListener("visibilitychange",i),{pauseListeners:function(){a=n.value},listen:function(e){r.push(e);const t=()=>{const t=r.indexOf(e);t>-1&&r.splice(t,1)};return l.push(t),t},destroy:function(){for(const e of l)e();l=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",i),document.removeEventListener("visibilitychange",i)}}}(e,t.state,t.location,t.replace),o=Fy({location:"",base:e,go:function(e,t=!0){t||n.pauseListeners(),history.go(e)},createHref:ww.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let Uw=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var Kw=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(Kw||{});const qw={type:Uw.Static,value:""},Gw=/[a-zA-Z0-9_]/,Yw="[^/]+?",Xw={sensitive:!1,strict:!1,start:!0,end:!0};var Zw=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(Zw||{});const Jw=/[.+*?^${}()[\]/\\]/g;function Qw(e,t){let n=0;for(;nt.length?1===t.length&&t[0]===Zw.Static+Zw.Segment?1:-1:0}function ex(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const nx={strict:!1,end:!0,sensitive:!1};function ox(e,t,n){const o=function(e,t){const n=Fy({},Xw,t),o=[];let r=n.start?"^":"";const l=[];for(const s of e){const e=s.length?[]:[Zw.Root];n.strict&&!s.length&&(r+="/");for(let t=0;t1&&("*"===s||"+"===s)&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),l.push({type:Uw.Param,value:u,regexp:c,repeatable:"*"===s||"+"===s,optional:"*"===s||"?"===s})):t("Invalid state to consume buffer"),u="")}function p(){u+=s}for(;i{l(p)}:Dy}function l(e){if(kw(e)){const t=o.get(e);t&&(o.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(l),t.alias.forEach(l))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&o.delete(e.record.name),e.children.forEach(l),e.alias.forEach(l))}}function a(e){const t=function(e,t){let n=0,o=t.length;for(;n!==o;){const r=n+o>>1;ex(e,t[r])<0?o=r:n=r+1}const r=function(e){let t=e;for(;t=t.parent;)if(cx(t)&&0===ex(e,t))return t}(e);return r&&(o=t.lastIndexOf(r,o-1)),o}(e,n);n.splice(t,0,e),e.record.name&&!ix(e)&&o.set(e.record.name,e)}return t=Vy(nx,t),e.forEach(e=>r(e)),{addRoute:r,resolve:function(e,t){let r,l,a,s={};if("name"in e&&e.name){if(r=o.get(e.name),!r)throw Ow(Ew.MATCHER_NOT_FOUND,{location:e});a=r.record.name,s=Fy(lx(t.params,r.keys.filter(e=>!e.optional).concat(r.parent?r.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&lx(e.params,r.keys.map(e=>e.name))),l=r.stringify(s)}else if(null!=e.path)l=e.path,r=n.find(e=>e.re.test(l)),r&&(s=r.parse(l),a=r.record.name);else{if(r=t.name?o.get(t.name):n.find(e=>e.re.test(t.path)),!r)throw Ow(Ew.MATCHER_NOT_FOUND,{location:e,currentLocation:t});a=r.record.name,s=Fy({},t.params,e.params),l=r.stringify(s)}const i=[];let u=r;for(;u;)i.unshift(u.record),u=u.parent;return{name:a,path:l,params:s,matched:i,meta:ux(i)}},removeRoute:l,clearRoutes:function(){n.length=0,o.clear()},getRoutes:function(){return n},getRecordMatcher:function(e){return o.get(e)}}}function lx(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function ax(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:sx(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function sx(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]="object"==typeof n?n[o]:n;return t}function ix(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function ux(e){return e.reduce((e,t)=>Fy(e,t.meta),{})}function cx({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function dx(e){const t=mn(Bw),n=mn(jw),o=ml(()=>{const n=Tt(e.to);return t.resolve(n)}),r=ml(()=>{const{matched:e}=o.value,{length:t}=e,r=e[t-1],l=n.matched;if(!r||!l.length)return-1;const a=l.findIndex(dw.bind(null,r));if(a>-1)return a;const s=fx(e[t-2]);return t>1&&fx(r)===s&&l[l.length-1].path!==s?l.findIndex(dw.bind(null,e[t-2])):a}),l=ml(()=>r.value>-1&&function(e,t){for(const n in t){const o=t[n],r=e[n];if("string"==typeof o){if(o!==r)return!1}else if(!zy(r)||r.length!==o.length||o.some((e,t)=>e.valueOf()!==r[t].valueOf()))return!1}return!0}(n.params,o.value.params)),a=ml(()=>r.value>-1&&r.value===n.matched.length-1&&pw(n.params,o.value.params));return{route:o,href:ml(()=>o.value.href),isActive:l,isExactActive:a,navigate:function(n={}){if(function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}(n)){const n=t[Tt(e.replace)?"replace":"push"](Tt(e.to)).catch(Dy);return e.viewTransition&&"undefined"!=typeof document&&"startViewTransition"in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}}}const px=Yn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:dx,setup(e,{slots:t}){const n=pt(dx(e)),{options:o}=mn(Bw),r=ml(()=>({[vx(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[vx(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&(1===(l=t.default(n)).length?l[0]:l);var l;return e.custom?o:gl("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}});function fx(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const vx=(e,t,n)=>null!=e?e:null!=t?t:n,hx=Yn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=mn(Pw),r=ml(()=>e.route||o.value),l=mn(Nw,0),a=ml(()=>{let e=Tt(l);const{matched:t}=r.value;let n;for(;(n=t[e])&&!n.components;)e++;return e}),s=ml(()=>r.value.matched[a.value]);hn(Nw,ml(()=>a.value+1)),hn(Iw,s),hn(Pw,r);const i=kt();return wn(()=>[i.value,s.value,e.name],([e,t,n],[o,r,l])=>{t&&(t.instances[n]=e,r&&r!==t&&e&&e===o&&(t.leaveGuards.size||(t.leaveGuards=r.leaveGuards),t.updateGuards.size||(t.updateGuards=r.updateGuards))),!e||!t||r&&dw(t,r)&&o||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:"post"}),()=>{const o=r.value,l=e.name,a=s.value,u=a&&a.components[l];if(!u)return mx(n.default,{Component:u,route:o});const c=a.props[l],d=c?!0===c?o.params:"function"==typeof c?c(o):c:null,p=gl(u,Fy({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[l]=null)},ref:i}));return mx(n.default,{Component:p,route:o})||p}}});function mx(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const gx=hx,bx=new WeakMap,yx=(...e)=>{var t;const n=e[0],o=null===(t=ol())||void 0===t?void 0:t.proxy,r=null!=o?o:oe();if(null==r&&!gn())throw new Error("injectLocal must be called in setup");return r&&bx.has(r)&&n in bx.get(r)?bx.get(r)[n]:mn(...e)},wx="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const xx=Object.prototype.toString,Cx=()=>{};function Sx(...e){if(1!==e.length)return Pt(...e);const t=e[0];return"function"==typeof t?vt(new It(()=>({get:t,set:Cx}))):kt(t)}const _x=e=>e();function kx(e){return e.endsWith("rem")?16*Number.parseFloat(e):Number.parseFloat(e)}function Ex(e){return Array.isArray(e)?e:[e]}function Ax(e,t,n={}){const{eventFilter:o=_x,...r}=n;return wn(e,function(e,t){return function(...n){return new Promise((o,r)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(r)})}}(o,t),r)}const Ox=function(e,t,n={}){const{eventFilter:o,initialState:r="active",...l}=n,{eventFilter:a,pause:s,resume:i,isActive:u}=function(e=_x,t={}){const{initialState:n="active"}=t,o=Sx("active"===n);return{isActive:vt(o),pause:function(){o.value=!1},resume:function(){o.value=!0},eventFilter:(...t)=>{o.value&&e(...t)}}}(o,{initialState:r});return{stop:Ax(e,t,{...l,eventFilter:a}),pause:s,resume:i,isActive:u}};function Tx(e,t=!0,n){ol()?uo(e,n):t?e():tn(e)}function Mx(e=!1,t={}){const{truthyValue:n=!0,falsyValue:o=!1}=t,r=_t(e),l=Et(e);function a(e){if(arguments.length)return l.value=e,l.value;{const e=Mt(n);return l.value=l.value===e?Mt(o):e,l.value}}return r?a:[l,a]}const Lx=wx?window:void 0;function Rx(e){var t;const n=Mt(e);return null!==(t=null==n?void 0:n.$el)&&void 0!==t?t:n}function Ix(...e){const t=ml(()=>{const t=Ex(Mt(e[0])).filter(e=>null!=e);return t.every(e=>"string"!=typeof e)?t:void 0});return n=([e,t,n,o],r,l)=>{if(!(null==e?void 0:e.length)||!(null==t?void 0:t.length)||!(null==n?void 0:n.length))return;const a=(s=o,"[object Object]"===xx.call(s)?{...o}:o);var s;const i=e.flatMap(e=>t.flatMap(t=>n.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,a))));l(()=>{i.forEach(e=>e())})},o={flush:"post"},wn(()=>{var n,o;return[null!==(n=null===(o=t.value)||void 0===o?void 0:o.map(e=>Rx(e)))&&void 0!==n?n:[Lx].filter(e=>null!=e),Ex(Mt(t.value?e[1]:e[0])),Ex(Tt(t.value?e[2]:e[1])),Mt(t.value?e[3]:e[2])]},n,{...o,immediate:!0});var n,o}function Nx(){const e=Et(!1),t=ol();return t&&uo(()=>{e.value=!0},t),e}function Bx(e){const t=Nx();return ml(()=>(t.value,Boolean(e())))}const jx=Symbol("vueuse-ssr-width");function Px(){const e=gn()?yx(jx,null):null;return"number"==typeof e?e:void 0}const Fx="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},$x="__vueuse_ssr_handlers__",Dx=zx();function zx(){return $x in Fx||(Fx[$x]=Fx[$x]||{}),Fx[$x]}function Vx(e,t){return Dx[e]||t}function Hx(e){return function(e,t={}){const{window:n=Lx,ssrWidth:o=Px()}=t,r=Bx(()=>n&&"matchMedia"in n&&"function"==typeof n.matchMedia),l=Et("number"==typeof o),a=Et(),s=Et(!1);return yn(()=>{if(l.value)return l.value=!r.value,void(s.value=Mt(e).split(",").some(e=>{const t=e.includes("not all"),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let l=Boolean(n||r);return n&&l&&(l=o>=kx(n[1])),r&&l&&(l=o<=kx(r[1])),t?!l:l}));r.value&&(a.value=n.matchMedia(Mt(e)),s.value=a.value.matches)}),Ix(a,"change",e=>{s.value=e.matches},{passive:!0}),ml(()=>s.value)}("(prefers-color-scheme: dark)",e)}const Wx={boolean:{read:e=>"true"===e,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ux="vueuse-storage";function Kx(e,t,n,o={}){var r;const{flush:l="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:d=Lx,eventFilter:p,onError:f=e=>{},initOnMounted:v}=o,h=(c?Et:kt)("function"==typeof t?t():t),m=ml(()=>Mt(e));if(!n)try{n=Vx("getDefaultStorage",()=>null==Lx?void 0:Lx.localStorage)()}catch(kC){f(kC)}if(!n)return h;const g=Mt(t),b=function(e){return null==e?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":"boolean"==typeof e?"boolean":"string"==typeof e?"string":"object"==typeof e?"object":Number.isNaN(e)?"any":"number"}(g),y=null!==(r=o.serializer)&&void 0!==r?r:Wx[b],{pause:w,resume:x}=Ox(h,e=>function(e){try{const t=n.getItem(m.value);if(null==e)S(t,null),n.removeItem(m.value);else{const o=y.write(e);t!==o&&(n.setItem(m.value,o),S(t,o))}}catch(kC){f(kC)}}(e),{flush:l,deep:a,eventFilter:p});wn(m,()=>_(),{flush:l});let C=!1;function S(e,t){if(d){const o={key:m.value,oldValue:e,newValue:t,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",o):new CustomEvent(Ux,{detail:o}))}}function _(e){if(!e||e.storageArea===n)if(e&&null==e.key)h.value=g;else if(!e||e.key===m.value){w();try{const t=y.write(h.value);void 0!==e&&(null==e?void 0:e.newValue)===t||(h.value=function(e){const t=e?e.newValue:n.getItem(m.value);if(null==t)return i&&null!=g&&n.setItem(m.value,y.write(g)),g;if(!e&&u){const e=y.read(t);return"function"==typeof u?u(e,g):"object"!==b||Array.isArray(e)?e:{...g,...e}}return"string"!=typeof t?t:y.read(t)}(e))}catch(kC){f(kC)}finally{e?tn(x):x()}}}return d&&s&&(n instanceof Storage?Ix(d,"storage",e=>{v&&!C||_(e)},{passive:!0}):Ix(d,Ux,e=>{v&&!C||_(e.detail)})),v?Tx(()=>{C=!0,_()}):_(),h}function qx(e={}){const{valueDark:t="dark",valueLight:n=""}=e,o=function(e={}){const{selector:t="html",attribute:n="class",initialValue:o="auto",window:r=Lx,storage:l,storageKey:a="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:i,emitAuto:u,disableTransition:c=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},p=Hx({window:r}),f=ml(()=>p.value?"dark":"light"),v=i||(null==a?Sx(o):Kx(a,o,l,{window:r,listenToStorageChanges:s})),h=ml(()=>"auto"===v.value?f.value:v.value),m=Vx("updateHTMLAttrs",(e,t,n)=>{const o="string"==typeof e?null==r?void 0:r.document.querySelector(e):Rx(e);if(!o)return;const l=new Set,a=new Set;let s,i=null;if("class"===t){const e=n.split(/\s/g);Object.values(d).flatMap(e=>(e||"").split(/\s/g)).filter(Boolean).forEach(t=>{e.includes(t)?l.add(t):a.add(t)})}else i={key:t,value:n};if(0!==l.size||0!==a.size||null!==i){c&&(s=r.document.createElement("style"),s.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),r.document.head.appendChild(s));for(const e of l)o.classList.add(e);for(const e of a)o.classList.remove(e);i&&o.setAttribute(i.key,i.value),c&&(r.getComputedStyle(s).opacity,document.head.removeChild(s))}});function g(e){var o;m(t,n,null!==(o=d[e])&&void 0!==o?o:e)}function b(t){e.onChanged?e.onChanged(t,g):g(t)}wn(h,b,{flush:"post",immediate:!0}),Tx(()=>b(h.value));const y=ml({get:()=>u?v.value:h.value,set(e){v.value=e}});return Object.assign(y,{store:v,system:f,state:h})}({...e,onChanged:(t,n)=>{var o;e.onChanged?null===(o=e.onChanged)||void 0===o||o.call(e,"dark"===t,n,t):n(t)},modes:{dark:t,light:n}}),r=ml(()=>o.system.value);return ml({get:()=>"dark"===o.value,set(e){const t=e?"dark":"light";r.value===t?o.value="auto":o.value=t}})}const Gx={xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},Yx={render:function(e,t){return Nr(),Fr("svg",Gx,[...t[0]||(t[0]=[Wr("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"},null,-1)])])}},Xx={id:"app"},Zx={class:"header"},Jx={class:"header-top"},Qx={class:"brand"},eC={class:"header-actions"},tC={class:"github-link",href:"https://github.com/fatedier/frp",target:"_blank","aria-label":"GitHub"},nC={class:"header-nav"},oC={id:"content"},rC=Yn({__name:"App",setup(e){const t=mn(Bw),n=mn(jw),o=qx(),r=kt(o),l=Mx(o),a=ml(()=>n.path),s=e=>{t.push(e)};return(e,n)=>{const o=sg,i=Jm,u=Zm,c=wo("router-view");return Nr(),Fr("div",Xx,[Wr("header",Zx,[Wr("div",Jx,[Wr("div",Qx,[Wr("a",{href:"#",onClick:n[0]||(n[0]=ma(e=>Tt(t).push("/"),["prevent"]))},"frpc")]),Wr("div",eC,[Wr("a",tC,[Ur(Tt(Yx),{class:"github-icon"})]),Ur(o,{modelValue:r.value,"onUpdate:modelValue":n[1]||(n[1]=e=>r.value=e),"inline-prompt":"","active-icon":Tt(Xd),"inactive-icon":Tt(tp),onChange:Tt(l),class:"theme-switch"},null,8,["modelValue","active-icon","inactive-icon","onChange"])])]),Wr("nav",nC,[Ur(u,{"default-active":a.value,mode:"horizontal",ellipsis:!1,onSelect:s,class:"nav-menu"},{default:pn(()=>[Ur(i,{index:"/"},{default:pn(()=>[...n[2]||(n[2]=[qr("Overview",-1)])]),_:1}),Ur(i,{index:"/configure"},{default:pn(()=>[...n[3]||(n[3]=[qr("Configure",-1)])]),_:1})]),_:1},8,["default-active"])])]),Wr("main",oC,[Ur(c)])])}}});class lC extends Error{status;statusText;constructor(e,t,n){super(n||t),this.status=e,this.statusText=t}}async function aC(e,t={}){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new lC(n.status,n.statusText,`HTTP ${n.status}`);if(204===n.status)return{};const o=n.headers.get("content-type");return o&&o.includes("application/json")?n.json():n.text()}const sC=(e,t)=>aC(e,{...t,method:"GET"}),iC=(e,t,n)=>{const o={...n?.headers};let r=t;return!t||"object"!=typeof t||t instanceof FormData||t instanceof Blob||("Content-Type"in o||(o["Content-Type"]="application/json"),r=JSON.stringify(t)),aC(e,{...n,method:"PUT",headers:o,body:r})},uC={class:"overview-page"},cC={class:"toolbar-header"},dC={class:"toolbar-actions"},pC={class:"type-text"},fC={key:0,class:"error-text"},vC={key:1},hC=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},mC=hC(Yn({__name:"Overview",setup(e){const t=kt([]),n=kt(!1),o=kt(""),r=ml(()=>{if(!o.value)return t.value;const e=o.value.toLowerCase();return t.value.filter(t=>t.name.toLowerCase().includes(e)||t.type.toLowerCase().includes(e)||t.local_addr.toLowerCase().includes(e)||t.remote_addr.toLowerCase().includes(e))}),l=e=>{switch(e){case"running":return"success";case"error":return"danger";default:return"warning"}},a=async()=>{n.value=!0;try{const e=await sC("/api/status");t.value=[];for(const n in e)for(const o of e[n])t.value.push(o)}catch(e){by({showClose:!0,message:"Get status info from frpc failed! "+e.message,type:"warning"})}finally{n.value=!1}};return a(),(e,t)=>{const s=Fp,i=Qh,u=kh,c=qb,d=xm,p=Kb,f=em,v=oy;return Nr(),Fr("div",uC,[Ur(f,{class:"main-card",shadow:"never"},{default:pn(()=>[Wr("div",cC,[t[1]||(t[1]=Wr("h2",{class:"card-title"},"Proxy Status",-1)),Wr("div",dC,[Ur(s,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=e=>o.value=e),placeholder:"Search...","prefix-icon":Tt(Qd),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Ur(u,{content:"Refresh",placement:"top"},{default:pn(()=>[Ur(i,{icon:Tt(Jd),circle:"",onClick:a},null,8,["icon"])]),_:1})])]),fn((Nr(),$r(p,{data:r.value,"default-sort":{prop:"name",order:"ascending"},stripe:"",style:{width:"100%"},class:"proxy-table"},{default:pn(()=>[Ur(c,{prop:"name",label:"Name",sortable:"","min-width":"120"}),Ur(c,{prop:"type",label:"Type",width:"100",sortable:""},{default:pn(e=>[Wr("span",pC,Z(e.row.type),1)]),_:1}),Ur(c,{prop:"local_addr",label:"Local Address","min-width":"150",sortable:"","show-overflow-tooltip":""}),Ur(c,{prop:"plugin",label:"Plugin",width:"120",sortable:"","show-overflow-tooltip":""}),Ur(c,{prop:"remote_addr",label:"Remote Address","min-width":"150",sortable:"","show-overflow-tooltip":""}),Ur(c,{prop:"status",label:"Status",width:"120",sortable:"",align:"center"},{default:pn(e=>[Ur(d,{type:l(e.row.status),effect:"light",round:""},{default:pn(()=>[qr(Z(e.row.status),1)]),_:2},1032,["type"])]),_:1}),Ur(c,{prop:"err",label:"Info","min-width":"150","show-overflow-tooltip":""},{default:pn(e=>[e.row.err?(Nr(),Fr("span",fC,Z(e.row.err),1)):(Nr(),Fr("span",vC,"-"))]),_:1})]),_:1},8,["data"])),[[v,n.value]])]),_:1})])}}}),[["__scopeId","data-v-21313b98"]]),gC={class:"configure-page"},bC={class:"toolbar-header"},yC={class:"toolbar-actions"},wC={class:"config-editor"},xC=hC(Yn({__name:"ClientConfigure",setup(e){const t=kt(""),n=async()=>{try{const e=await sC("/api/config");t.value=e}catch(e){by({showClose:!0,message:"Get configuration failed: "+e.message,type:"warning"})}},o=()=>{By.confirm("This operation will update your frpc configuration and reload it. Do you want to continue?","Confirm Update",{confirmButtonText:"Update",cancelButtonText:"Cancel",type:"warning"}).then(async()=>{var e;if(t.value.trim())try{await(e=t.value,iC("/api/config",e)),await sC("/api/reload"),by({type:"success",message:"Configuration updated and reloaded successfully"})}catch(n){by({showClose:!0,message:"Update failed: "+n.message,type:"error"})}else by({message:"Configuration content cannot be empty!",type:"warning"})}).catch(()=>{})};return n(),(e,r)=>{const l=Qh,a=kh,s=Fp,i=em;return Nr(),Fr("div",gC,[Ur(i,{class:"main-card",shadow:"never"},{default:pn(()=>[Wr("div",bC,[r[2]||(r[2]=Wr("h2",{class:"card-title"},"Client Configuration",-1)),Wr("div",yC,[Ur(a,{content:"Refresh",placement:"top"},{default:pn(()=>[Ur(l,{icon:Tt(Jd),circle:"",onClick:n},null,8,["icon"])]),_:1}),Ur(l,{type:"primary",icon:Tt(np),onClick:o},{default:pn(()=>[...r[1]||(r[1]=[qr("Update",-1)])]),_:1},8,["icon"])])]),Wr("div",wC,[Ur(s,{type:"textarea",autosize:{minRows:10,maxRows:30},modelValue:t.value,"onUpdate:modelValue":r[0]||(r[0]=e=>t.value=e),placeholder:"frpc configuration file content...",class:"code-input"},null,8,["modelValue"])])]),_:1})])}}}),[["__scopeId","data-v-ba60554b"]]),CC=function(e){const t=rx(e.routes,e),n=e.parseQuery||Mw,o=e.stringifyQuery||Lw,r=e.history,l=Fw(),a=Fw(),s=Fw(),i=Et(hw);let u=hw;jy&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=$y.bind(null,e=>""+e),d=$y.bind(null,aw),p=$y.bind(null,sw);function f(e,l){if(l=Fy({},l||i.value),"string"==typeof e){const o=uw(n,e,l.path),a=t.resolve({path:o.path},l),s=r.createHref(o.fullPath);return Fy(o,a,{params:p(a.params),hash:sw(o.hash),redirectedFrom:void 0,href:s})}let a;if(null!=e.path)a=Fy({},e,{path:uw(n,e.path,l.path).path});else{const t=Fy({},e.params);for(const e in t)null==t[e]&&delete t[e];a=Fy({},e,{params:d(t)}),l.params=d(l.params)}const s=t.resolve(a,l),u=e.hash||"";s.params=c(p(s.params));const f=function(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}(o,Fy({},e,{hash:(v=u,ow(v).replace(Qy,"{").replace(tw,"}").replace(Zy,"^")),path:s.path}));var v;const h=r.createHref(f);return Fy({fullPath:f,hash:u,query:o===Lw?Rw(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function v(e){return"string"==typeof e?uw(n,e,i.value.path):Fy({},e)}function h(e,t){if(u!==e)return Ow(Ew.NAVIGATION_CANCELLED,{from:t,to:e})}function m(e){return b(e)}function g(e,t){const n=e.matched[e.matched.length-1];if(n&&n.redirect){const{redirect:o}=n;let r="function"==typeof o?o(e,t):o;return"string"==typeof r&&(r=r.includes("?")||r.includes("#")?r=v(r):{path:r},r.params={}),Fy({query:e.query,hash:e.hash,params:null!=r.path?{}:e.params},r)}}function b(e,t){const n=u=f(e),r=i.value,l=e.state,a=e.force,s=!0===e.replace,c=g(n,r);if(c)return b(Fy(v(c),{state:"object"==typeof c?Fy({},l,c.state):l,force:a,replace:s}),t||n);const d=n;let p;return d.redirectedFrom=t,!a&&function(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&dw(t.matched[o],n.matched[r])&&pw(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}(o,r,n)&&(p=Ow(Ew.NAVIGATION_DUPLICATED,{to:d,from:r}),L(r,r,!0,!1)),(p?Promise.resolve(p):x(d,r)).catch(e=>Tw(e)?Tw(e,Ew.NAVIGATION_GUARD_REDIRECT)?e:M(e):T(e,d,r)).then(e=>{if(e){if(Tw(e,Ew.NAVIGATION_GUARD_REDIRECT))return b(Fy({replace:s},v(e.to),{state:"object"==typeof e.to?Fy({},l,e.to.state):l,force:a}),t||d)}else e=S(d,r,!0,s,l);return C(d,r,e),e})}function y(e,t){const n=h(e,t);return n?Promise.reject(n):Promise.resolve()}function w(e){const t=N.values().next().value;return t&&"function"==typeof t.runWithContext?t.runWithContext(e):e()}function x(e,t){let n;const[o,r,s]=function(e,t){const n=[],o=[],r=[],l=Math.max(t.matched.length,e.matched.length);for(let a=0;adw(e,l))?o.push(l):n.push(l));const s=e.matched[a];s&&(t.matched.find(e=>dw(e,s))||r.push(s))}return[n,o,r]}(e,t);n=Dw(o.reverse(),"beforeRouteLeave",e,t);for(const l of o)l.leaveGuards.forEach(o=>{n.push($w(o,e,t))});const i=y.bind(null,e,t);return n.push(i),j(n).then(()=>{n=[];for(const o of l.list())n.push($w(o,e,t));return n.push(i),j(n)}).then(()=>{n=Dw(r,"beforeRouteUpdate",e,t);for(const o of r)o.updateGuards.forEach(o=>{n.push($w(o,e,t))});return n.push(i),j(n)}).then(()=>{n=[];for(const o of s)if(o.beforeEnter)if(zy(o.beforeEnter))for(const r of o.beforeEnter)n.push($w(r,e,t));else n.push($w(o.beforeEnter,e,t));return n.push(i),j(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Dw(s,"beforeRouteEnter",e,t,w),n.push(i),j(n))).then(()=>{n=[];for(const o of a.list())n.push($w(o,e,t));return n.push(i),j(n)}).catch(e=>Tw(e,Ew.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function C(e,t,n){s.list().forEach(o=>w(()=>o(e,t,n)))}function S(e,t,n,o,l){const a=h(e,t);if(a)return a;const s=t===hw,u=jy?history.state:{};n&&(o||s?r.replace(e.fullPath,Fy({scroll:s&&u&&u.scroll},l)):r.push(e.fullPath,l)),i.value=e,L(e,t,n,s),M()}let _;function k(){_||(_=r.listen((e,t,n)=>{if(!B.listening)return;const o=f(e),l=g(o,B.currentRoute.value);if(l)return void b(Fy(l,{replace:!0,force:!0}),o).catch(Dy);u=o;const a=i.value;var s,c;jy&&(s=Sw(a.fullPath,n.delta),c=xw(),_w.set(s,c)),x(o,a).catch(e=>Tw(e,Ew.NAVIGATION_ABORTED|Ew.NAVIGATION_CANCELLED)?e:Tw(e,Ew.NAVIGATION_GUARD_REDIRECT)?(b(Fy(v(e.to),{force:!0}),o).then(e=>{Tw(e,Ew.NAVIGATION_ABORTED|Ew.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===mw.pop&&r.go(-1,!1)}).catch(Dy),Promise.reject()):(n.delta&&r.go(-n.delta,!1),T(e,o,a))).then(e=>{(e=e||S(o,a,!1))&&(n.delta&&!Tw(e,Ew.NAVIGATION_CANCELLED)?r.go(-n.delta,!1):n.type===mw.pop&&Tw(e,Ew.NAVIGATION_ABORTED|Ew.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),C(o,a,e)}).catch(Dy)}))}let E,A=Fw(),O=Fw();function T(e,t,n){M(e);const o=O.list();return o.length&&o.forEach(o=>o(e,t,n)),Promise.reject(e)}function M(e){return E||(E=!e,k(),A.list().forEach(([t,n])=>e?n(e):t()),A.reset()),e}function L(t,n,o,r){const{scrollBehavior:l}=e;if(!jy||!l)return Promise.resolve();const a=!o&&function(e){const t=_w.get(e);return _w.delete(e),t}(Sw(t.fullPath,0))||(r||!o)&&history.state&&history.state.scroll||null;return tn().then(()=>l(t,n,a)).then(e=>e&&Cw(e)).catch(e=>T(e,t,n))}const R=e=>r.go(e);let I;const N=new Set,B={currentRoute:i,listening:!0,addRoute:function(e,n){let o,r;return kw(e)?(o=t.getRecordMatcher(e),r=n):r=e,t.addRoute(r,o)},removeRoute:function(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)},clearRoutes:t.clearRoutes,hasRoute:function(e){return!!t.getRecordMatcher(e)},getRoutes:function(){return t.getRoutes().map(e=>e.record)},resolve:f,options:e,push:m,replace:function(e){return m(Fy(v(e),{replace:!0}))},go:R,back:()=>R(-1),forward:()=>R(1),beforeEach:l.add,beforeResolve:a.add,afterEach:s.add,onError:O.add,isReady:function(){return E&&i.value!==hw?Promise.resolve():new Promise((e,t)=>{A.add([e,t])})},install(e){e.component("RouterLink",px),e.component("RouterView",gx),e.config.globalProperties.$router=B,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>Tt(i)}),jy&&!I&&i.value===hw&&(I=!0,m(r.location).catch(e=>{}));const t={};for(const o in hw)Object.defineProperty(t,o,{get:()=>i.value[o],enumerable:!0});e.provide(Bw,B),e.provide(jw,ft(t)),e.provide(Pw,i);const n=e.unmount;N.add(e),e.unmount=function(){N.delete(e),N.size<1&&(u=hw,_&&_(),_=null,i.value=hw,I=!1,E=!1),n()}}};function j(e){return e.reduce((e,t)=>e.then(()=>w(t)),Promise.resolve())}return B}({history:((SC=location.host?SC||location.pathname+location.search:"").includes("#")||(SC+="#"),Ww(SC)),routes:[{path:"/",name:"Overview",component:mC},{path:"/configure",name:"ClientConfigure",component:xC}]});var SC;const _C=Sa(rC);_C.use(CC),_C.mount("#app")}},function(){return t||(0,e[n(e)[0]])((t={exports:{}}).exports,t),t.exports});export default o(); diff --git a/assets/frpc/static/index-HyKZ_pht.js b/assets/frpc/static/index-HyKZ_pht.js deleted file mode 100644 index 5439f282cb5..00000000000 --- a/assets/frpc/static/index-HyKZ_pht.js +++ /dev/null @@ -1,42 +0,0 @@ -var lv=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var wA=lv((Pt,Rt)=>{(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 s of o)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();/** -* @vue/shared v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function La(e,t){const n=new Set(e.split(","));return t?r=>n.has(r.toLowerCase()):r=>n.has(r)}const Ye={},Pr=[],ot=()=>{},av=()=>!1,Us=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ka=e=>e.startsWith("onUpdate:"),ct=Object.assign,Fa=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},iv=Object.prototype.hasOwnProperty,Ae=(e,t)=>iv.call(e,t),pe=Array.isArray,Rr=e=>Lo(e)==="[object Map]",Gs=e=>Lo(e)==="[object Set]",ji=e=>Lo(e)==="[object Date]",Ce=e=>typeof e=="function",Se=e=>typeof e=="string",Vn=e=>typeof e=="symbol",Ie=e=>e!==null&&typeof e=="object",Es=e=>(Ie(e)||Ce(e))&&Ce(e.then)&&Ce(e.catch),Of=Object.prototype.toString,Lo=e=>Of.call(e),uv=e=>Lo(e).slice(8,-1),Af=e=>Lo(e)==="[object Object]",Ba=e=>Se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,us=La(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),qs=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},cv=/-(\w)/g,Jt=qs(e=>e.replace(cv,(t,n)=>n?n.toUpperCase():"")),fv=/\B([A-Z])/g,br=qs(e=>e.replace(fv,"-$1").toLowerCase()),Ys=qs(e=>e.charAt(0).toUpperCase()+e.slice(1)),cs=qs(e=>e?`on${Ys(e)}`:""),Kn=(e,t)=>!Object.is(e,t),fs=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},dv=e=>{const t=parseFloat(e);return isNaN(t)?e:t},pv=e=>{const t=Se(e)?Number(e):NaN;return isNaN(t)?e:t};let Wi;const Mf=()=>Wi||(Wi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function tt(e){if(pe(e)){const t={};for(let n=0;n{if(n){const r=n.split(vv);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function K(e){let t="";if(Se(e))t=e;else if(pe(e))for(let n=0;nXs(n,t))}const Qe=e=>Se(e)?e:e==null?"":pe(e)||Ie(e)&&(e.toString===Of||!Ce(e.toString))?JSON.stringify(e,$f,2):String(e),$f=(e,t)=>t&&t.__v_isRef?$f(e,t.value):Rr(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o],s)=>(n[Cl(r,s)+" =>"]=o,n),{})}:Gs(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Cl(n))}:Vn(t)?Cl(t):Ie(t)&&!pe(t)&&!Af(t)?String(t):t,Cl=(e,t="")=>{var n;return Vn(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Mt;class Cv{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Mt,!t&&Mt&&(this.index=(Mt.scopes||(Mt.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Mt;try{return Mt=this,t()}finally{Mt=n}}}on(){Mt=this}off(){Mt=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=2))break}this._dirtyLevel<2&&(this._dirtyLevel=0),Cr()}return this._dirtyLevel>=2}set dirty(t){this._dirtyLevel=t?2:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=zn,n=fr;try{return zn=!0,fr=this,this._runnings++,Vi(this),this.fn()}finally{Ki(this),this._runnings--,fr=n,zn=t}}stop(){var t;this.active&&(Vi(this),Ki(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function Sv(e){return e.value}function Vi(e){e._trackId++,e._depsLength=0}function Ki(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},Ts=new WeakMap,dr=Symbol(""),ql=Symbol("");function Ot(e,t,n){if(zn&&fr){let r=Ts.get(e);r||Ts.set(e,r=new Map);let o=r.get(n);o||r.set(n,o=Df(()=>r.delete(n))),Ff(fr,o)}}function mn(e,t,n,r,o,s){const l=Ts.get(e);if(!l)return;let a=[];if(t==="clear")a=[...l.values()];else if(n==="length"&&pe(e)){const i=Number(r);l.forEach((u,c)=>{(c==="length"||!Vn(c)&&c>=i)&&a.push(u)})}else switch(n!==void 0&&a.push(l.get(n)),t){case"add":pe(e)?Ba(n)&&a.push(l.get("length")):(a.push(l.get(dr)),Rr(e)&&a.push(l.get(ql)));break;case"delete":pe(e)||(a.push(l.get(dr)),Rr(e)&&a.push(l.get(ql)));break;case"set":Rr(e)&&a.push(l.get(dr));break}Da();for(const i of a)i&&Bf(i,2);za()}function Ev(e,t){var n;return(n=Ts.get(e))==null?void 0:n.get(t)}const xv=La("__proto__,__v_isRef,__isVue"),zf=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Vn)),Ui=Tv();function Tv(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ke(this);for(let s=0,l=this.length;s{e[t]=function(...n){wr(),Da();const r=ke(this)[t].apply(this,n);return za(),Cr(),r}}),e}function Ov(e){const t=ke(this);return Ot(t,"has",e),t.hasOwnProperty(e)}class jf{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,r){const o=this._isReadonly,s=this._shallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(o?s?Dv:Uf:s?Kf:Vf).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const l=pe(t);if(!o){if(l&&Ae(Ui,n))return Reflect.get(Ui,n,r);if(n==="hasOwnProperty")return Ov}const a=Reflect.get(t,n,r);return(Vn(n)?zf.has(n):xv(n))||(o||Ot(t,"get",n),s)?a:Xe(a)?l&&Ba(n)?a:a.value:Ie(a)?o?ko(a):dn(a):a}}class Wf extends jf{constructor(t=!1){super(!1,t)}set(t,n,r,o){let s=t[n];if(!this._shallow){const i=Nr(s);if(!Os(r)&&!Nr(r)&&(s=ke(s),r=ke(r)),!pe(t)&&Xe(s)&&!Xe(r))return i?!1:(s.value=r,!0)}const l=pe(t)&&Ba(n)?Number(n)e,Js=e=>Reflect.getPrototypeOf(e);function Ko(e,t,n=!1,r=!1){e=e.__v_raw;const o=ke(e),s=ke(t);n||(Kn(t,s)&&Ot(o,"get",t),Ot(o,"get",s));const{has:l}=Js(o),a=r?ja:n?Ua:_o;if(l.call(o,t))return a(e.get(t));if(l.call(o,s))return a(e.get(s));e!==o&&e.get(t)}function Uo(e,t=!1){const n=this.__v_raw,r=ke(n),o=ke(e);return t||(Kn(e,o)&&Ot(r,"has",e),Ot(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function Go(e,t=!1){return e=e.__v_raw,!t&&Ot(ke(e),"iterate",dr),Reflect.get(e,"size",e)}function Gi(e){e=ke(e);const t=ke(this);return Js(t).has.call(t,e)||(t.add(e),mn(t,"add",e,e)),this}function qi(e,t){t=ke(t);const n=ke(this),{has:r,get:o}=Js(n);let s=r.call(n,e);s||(e=ke(e),s=r.call(n,e));const l=o.call(n,e);return n.set(e,t),s?Kn(t,l)&&mn(n,"set",e,t):mn(n,"add",e,t),this}function Yi(e){const t=ke(this),{has:n,get:r}=Js(t);let o=n.call(t,e);o||(e=ke(e),o=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return o&&mn(t,"delete",e,void 0),s}function Xi(){const e=ke(this),t=e.size!==0,n=e.clear();return t&&mn(e,"clear",void 0,void 0),n}function qo(e,t){return function(r,o){const s=this,l=s.__v_raw,a=ke(l),i=t?ja:e?Ua:_o;return!e&&Ot(a,"iterate",dr),l.forEach((u,c)=>r.call(o,i(u),i(c),s))}}function Yo(e,t,n){return function(...r){const o=this.__v_raw,s=ke(o),l=Rr(s),a=e==="entries"||e===Symbol.iterator&&l,i=e==="keys"&&l,u=o[e](...r),c=n?ja:t?Ua:_o;return!t&&Ot(s,"iterate",i?ql:dr),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:a?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function xn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function $v(){const e={get(s){return Ko(this,s)},get size(){return Go(this)},has:Uo,add:Gi,set:qi,delete:Yi,clear:Xi,forEach:qo(!1,!1)},t={get(s){return Ko(this,s,!1,!0)},get size(){return Go(this)},has:Uo,add:Gi,set:qi,delete:Yi,clear:Xi,forEach:qo(!1,!0)},n={get(s){return Ko(this,s,!0)},get size(){return Go(this,!0)},has(s){return Uo.call(this,s,!0)},add:xn("add"),set:xn("set"),delete:xn("delete"),clear:xn("clear"),forEach:qo(!0,!1)},r={get(s){return Ko(this,s,!0,!0)},get size(){return Go(this,!0)},has(s){return Uo.call(this,s,!0)},add:xn("add"),set:xn("set"),delete:xn("delete"),clear:xn("clear"),forEach:qo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Yo(s,!1,!1),n[s]=Yo(s,!0,!1),t[s]=Yo(s,!1,!0),r[s]=Yo(s,!0,!0)}),[e,n,t,r]}const[Iv,Nv,Lv,kv]=$v();function Wa(e,t){const n=t?e?kv:Lv:e?Nv:Iv;return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(Ae(n,o)&&o in r?n:r,o,s)}const Fv={get:Wa(!1,!1)},Bv={get:Wa(!1,!0)},Hv={get:Wa(!0,!1)},Vf=new WeakMap,Kf=new WeakMap,Uf=new WeakMap,Dv=new WeakMap;function zv(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function jv(e){return e.__v_skip||!Object.isExtensible(e)?0:zv(uv(e))}function dn(e){return Nr(e)?e:Ka(e,!1,Mv,Fv,Vf)}function Va(e){return Ka(e,!1,Rv,Bv,Kf)}function ko(e){return Ka(e,!0,Pv,Hv,Uf)}function Ka(e,t,n,r,o){if(!Ie(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const l=jv(e);if(l===0)return e;const a=new Proxy(e,l===2?r:n);return o.set(e,a),a}function $r(e){return Nr(e)?$r(e.__v_raw):!!(e&&e.__v_isReactive)}function Nr(e){return!!(e&&e.__v_isReadonly)}function Os(e){return!!(e&&e.__v_isShallow)}function Gf(e){return $r(e)||Nr(e)}function ke(e){const t=e&&e.__v_raw;return t?ke(t):e}function qf(e){return xs(e,"__v_skip",!0),e}const _o=e=>Ie(e)?dn(e):e,Ua=e=>Ie(e)?ko(e):e;class Yf{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ha(()=>t(this._value),()=>ds(this,1),()=>this.dep&&Hf(this.dep)),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=ke(this);return(!t._cacheable||t.effect.dirty)&&Kn(t._value,t._value=t.effect.run())&&ds(t,2),Jf(t),t.effect._dirtyLevel>=1&&ds(t,1),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function Xf(e,t,n=!1){let r,o;const s=Ce(e);return s?(r=e,o=ot):(r=e.get,o=e.set),new Yf(r,o,s||!o,n)}function Jf(e){zn&&fr&&(e=ke(e),Ff(fr,e.dep||(e.dep=Df(()=>e.dep=void 0,e instanceof Yf?e:void 0))))}function ds(e,t=2,n){e=ke(e);const r=e.dep;r&&Bf(r,t)}function Xe(e){return!!(e&&e.__v_isRef===!0)}function M(e){return Zf(e,!1)}function pr(e){return Zf(e,!0)}function Zf(e,t){return Xe(e)?e:new Wv(e,t)}class Wv{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ke(t),this._value=n?t:_o(t)}get value(){return Jf(this),this._value}set value(t){const n=this.__v_isShallow||Os(t)||Nr(t);t=n?t:ke(t),Kn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:_o(t),ds(this,2))}}function m(e){return Xe(e)?e.value:e}const Vv={get:(e,t,n)=>m(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Xe(o)&&!Xe(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Qf(e){return $r(e)?e:new Proxy(e,Vv)}function Ga(e){const t=pe(e)?new Array(e.length):{};for(const n in e)t[n]=ed(e,n);return t}class Kv{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ev(ke(this._object),this._key)}}class Uv{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Bt(e,t,n){return Xe(e)?e:Ce(e)?new Uv(e):Ie(e)&&arguments.length>1?ed(e,t,n):M(e)}function ed(e,t,n){const r=e[t];return Xe(r)?r:new Kv(e,t,n)}/** -* @vue/runtime-core v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function jn(e,t,n,r){let o;try{o=r?e(...r):e()}catch(s){Zs(s,t,n)}return o}function Ht(e,t,n,r){if(Ce(e)){const s=jn(e,t,n,r);return s&&Es(s)&&s.catch(l=>{Zs(l,t,n)}),s}const o=[];for(let s=0;s>>1,o=vt[r],s=Eo(o);srn&&vt.splice(t,1)}function Xv(e){pe(e)?Ir.push(...e):(!In||!In.includes(e,e.allowRecurse?rr+1:rr))&&Ir.push(e),nd()}function Ji(e,t,n=So?rn+1:0){for(;nEo(n)-Eo(r));if(Ir.length=0,In){In.push(...t);return}for(In=t,rr=0;rre.id==null?1/0:e.id,Jv=(e,t)=>{const n=Eo(e)-Eo(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function od(e){Yl=!1,So=!0,vt.sort(Jv);try{for(rn=0;rnSe(p)?p.trim():p)),f&&(o=n.map(dv))}let a,i=r[a=cs(t)]||r[a=cs(Jt(t))];!i&&s&&(i=r[a=cs(br(t))]),i&&Ht(i,e,6,o);const u=r[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Ht(u,e,6,o)}}function sd(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let l={},a=!1;if(!Ce(e)){const i=u=>{const c=sd(u,t,!0);c&&(a=!0,ct(l,c))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!s&&!a?(Ie(e)&&r.set(e,null),null):(pe(s)?s.forEach(i=>l[i]=null):ct(l,s),Ie(e)&&r.set(e,l),l)}function Qs(e,t){return!e||!Us(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ae(e,t[0].toLowerCase()+t.slice(1))||Ae(e,br(t))||Ae(e,t))}let at=null,ld=null;function As(e){const t=at;return at=e,ld=e&&e.type.__scopeId||null,t}function de(e,t=at,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&du(-1);const s=As(t);let l;try{l=e(...o)}finally{As(s),r._d&&du(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function _l(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:s,propsOptions:[l],slots:a,attrs:i,emit:u,render:c,renderCache:f,data:d,setupState:p,ctx:h,inheritAttrs:v}=e;let b,g;const w=As(e);try{if(n.shapeFlag&4){const y=o||r,O=y;b=nn(c.call(O,y,f,s,p,d,h)),g=i}else{const y=t;b=nn(y.length>1?y(s,{attrs:i,slots:a,emit:u}):y(s,null)),g=t.props?i:Qv(i)}}catch(y){ho.length=0,Zs(y,e,1),b=fe(St)}let T=b;if(g&&v!==!1){const y=Object.keys(g),{shapeFlag:O}=T;y.length&&O&7&&(l&&y.some(ka)&&(g=eg(g,l)),T=yn(T,g))}return n.dirs&&(T=yn(T),T.dirs=T.dirs?T.dirs.concat(n.dirs):n.dirs),n.transition&&(T.transition=n.transition),b=T,As(w),b}const Qv=e=>{let t;for(const n in e)(n==="class"||n==="style"||Us(n))&&((t||(t={}))[n]=e[n]);return t},eg=(e,t)=>{const n={};for(const r in e)(!ka(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function tg(e,t,n){const{props:r,children:o,component:s}=e,{props:l,children:a,patchFlag:i}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return r?Zi(r,l,u):!!l;if(i&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function sg(e,t){t&&t.pendingBranch?pe(e)?t.effects.push(...e):t.effects.push(e):Xv(e)}const lg=Symbol.for("v-scx"),ag=()=>_e(lg);function Wn(e,t){return Za(e,null,t)}const Xo={};function ge(e,t,n){return Za(e,t,n)}function Za(e,t,{immediate:n,deep:r,flush:o,once:s,onTrack:l,onTrigger:a}=Ye){if(t&&s){const E=t;t=(...C)=>{E(...C),O()}}const i=dt,u=E=>r===!0?E:lr(E,r===!1?1:void 0);let c,f=!1,d=!1;if(Xe(e)?(c=()=>e.value,f=Os(e)):$r(e)?(c=()=>u(e),f=!0):pe(e)?(d=!0,f=e.some(E=>$r(E)||Os(E)),c=()=>e.map(E=>{if(Xe(E))return E.value;if($r(E))return u(E);if(Ce(E))return jn(E,i,2)})):Ce(e)?t?c=()=>jn(e,i,2):c=()=>(p&&p(),Ht(e,i,3,[h])):c=ot,t&&r){const E=c;c=()=>lr(E())}let p,h=E=>{p=T.onStop=()=>{jn(E,i,4),p=T.onStop=void 0}},v;if(sl)if(h=ot,t?n&&Ht(t,i,3,[c(),d?[]:void 0,h]):c(),o==="sync"){const E=ag();v=E.__watcherHandles||(E.__watcherHandles=[])}else return ot;let b=d?new Array(e.length).fill(Xo):Xo;const g=()=>{if(!(!T.active||!T.dirty))if(t){const E=T.run();(r||f||(d?E.some((C,_)=>Kn(C,b[_])):Kn(E,b)))&&(p&&p(),Ht(t,i,3,[E,b===Xo?void 0:d&&b[0]===Xo?[]:b,h]),b=E)}else T.run()};g.allowRecurse=!!t;let w;o==="sync"?w=g:o==="post"?w=()=>Ct(g,i&&i.suspense):(g.pre=!0,i&&(g.id=i.uid),w=()=>Ya(g));const T=new Ha(c,ot,w),y=If(),O=()=>{T.stop(),y&&Fa(y.effects,T)};return t?n?g():b=T.run():o==="post"?Ct(T.run.bind(T),i&&i.suspense):T.run(),v&&v.push(O),O}function ig(e,t,n){const r=this.proxy,o=Se(e)?e.includes(".")?ud(r,e):()=>r[e]:e.bind(r,r);let s;Ce(t)?s=t:(s=t.handler,n=t);const l=Fo(this),a=Za(o,s.bind(r),n);return l(),a}function ud(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o0){if(n>=t)return e;n++}if(r=r||new Set,r.has(e))return e;if(r.add(e),Xe(e))lr(e.value,t,n,r);else if(pe(e))for(let o=0;o{lr(o,t,n,r)});else if(Af(e))for(const o in e)lr(e[o],t,n,r);return e}function it(e,t){if(at===null)return e;const n=ll(at)||at.proxy,r=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),mt(()=>{e.isUnmounting=!0}),e}const kt=[Function,Array],cd={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:kt,onEnter:kt,onAfterEnter:kt,onEnterCancelled:kt,onBeforeLeave:kt,onLeave:kt,onAfterLeave:kt,onLeaveCancelled:kt,onBeforeAppear:kt,onAppear:kt,onAfterAppear:kt,onAppearCancelled:kt},cg={name:"BaseTransition",props:cd,setup(e,{slots:t}){const n=He(),r=ug();let o;return()=>{const s=t.default&&dd(t.default(),!0);if(!s||!s.length)return;let l=s[0];if(s.length>1){for(const v of s)if(v.type!==St){l=v;break}}const a=ke(e),{mode:i}=a;if(r.isLeaving)return Sl(l);const u=eu(l);if(!u)return Sl(l);const c=Xl(u,a,r,n);Jl(u,c);const f=n.subTree,d=f&&eu(f);let p=!1;const{getTransitionKey:h}=u.type;if(h){const v=h();o===void 0?o=v:v!==o&&(o=v,p=!0)}if(d&&d.type!==St&&(!or(u,d)||p)){const v=Xl(d,a,r,n);if(Jl(d,v),i==="out-in")return r.isLeaving=!0,v.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Sl(l);i==="in-out"&&u.type!==St&&(v.delayLeave=(b,g,w)=>{const T=fd(r,d);T[String(d.key)]=d,b[Nn]=()=>{g(),b[Nn]=void 0,delete c.delayedLeave},c.delayedLeave=w})}return l}}},fg=cg;function fd(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Xl(e,t,n,r){const{appear:o,mode:s,persisted:l=!1,onBeforeEnter:a,onEnter:i,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:p,onLeaveCancelled:h,onBeforeAppear:v,onAppear:b,onAfterAppear:g,onAppearCancelled:w}=t,T=String(e.key),y=fd(n,e),O=(_,P)=>{_&&Ht(_,r,9,P)},E=(_,P)=>{const B=P[1];O(_,P),pe(_)?_.every(W=>W.length<=1)&&B():_.length<=1&&B()},C={mode:s,persisted:l,beforeEnter(_){let P=a;if(!n.isMounted)if(o)P=v||a;else return;_[Nn]&&_[Nn](!0);const B=y[T];B&&or(e,B)&&B.el[Nn]&&B.el[Nn](),O(P,[_])},enter(_){let P=i,B=u,W=c;if(!n.isMounted)if(o)P=b||i,B=g||u,W=w||c;else return;let I=!1;const L=_[Jo]=V=>{I||(I=!0,V?O(W,[_]):O(B,[_]),C.delayedLeave&&C.delayedLeave(),_[Jo]=void 0)};P?E(P,[_,L]):L()},leave(_,P){const B=String(e.key);if(_[Jo]&&_[Jo](!0),n.isUnmounting)return P();O(f,[_]);let W=!1;const I=_[Nn]=L=>{W||(W=!0,P(),L?O(h,[_]):O(p,[_]),_[Nn]=void 0,y[B]===e&&delete y[B])};y[B]=e,d?E(d,[_,I]):I()},clone(_){return Xl(_,t,n,r)}};return C}function Sl(e){if(el(e))return e=yn(e),e.children=null,e}function eu(e){return el(e)?e.children?e.children[0]:void 0:e}function Jl(e,t){e.shapeFlag&6&&e.component?Jl(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function dd(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader,el=e=>e.type.__isKeepAlive;function dg(e,t){hd(e,"a",t)}function pd(e,t){hd(e,"da",t)}function hd(e,t,n=dt){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(tl(t,r,n),n){let o=n.parent;for(;o&&o.parent;)el(o.parent.vnode)&&pg(r,t,n,o),o=o.parent}}function pg(e,t,n,r){const o=tl(t,e,r,!0);Jr(()=>{Fa(r[t],o)},n)}function tl(e,t,n=dt,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;wr();const a=Fo(n),i=Ht(t,n,e,l);return a(),Cr(),i});return r?o.unshift(s):o.push(s),s}}const Cn=e=>(t,n=dt)=>(!sl||e==="sp")&&tl(e,(...r)=>t(...r),n),nl=Cn("bm"),Je=Cn("m"),hg=Cn("bu"),Qa=Cn("u"),mt=Cn("bum"),Jr=Cn("um"),vg=Cn("sp"),gg=Cn("rtg"),mg=Cn("rtc");function yg(e,t=dt){tl("ec",e,t)}function tu(e,t,n,r){let o;const s=n&&n[r];if(pe(e)||Se(e)){o=new Array(e.length);for(let l=0,a=e.length;lt(l,a,void 0,s&&s[a]));else{const l=Object.keys(e);o=new Array(l.length);for(let a=0,i=l.length;aan(t)?!(t.type===St||t.type===Ue&&!vd(t.children)):!0)?e:null}function bg(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:cs(r)]=e[r];return n}const Zl=e=>e?Ad(e)?ll(e)||e.proxy:Zl(e.parent):null,fo=ct(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Zl(e.parent),$root:e=>Zl(e.root),$emit:e=>e.emit,$options:e=>ei(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ya(e.update)}),$nextTick:e=>e.n||(e.n=We.bind(e.proxy)),$watch:e=>ig.bind(e)}),El=(e,t)=>e!==Ye&&!e.__isScriptSetup&&Ae(e,t),wg={get({_:e},t){const{ctx:n,setupState:r,data:o,props:s,accessCache:l,type:a,appContext:i}=e;let u;if(t[0]!=="$"){const p=l[t];if(p!==void 0)switch(p){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(El(r,t))return l[t]=1,r[t];if(o!==Ye&&Ae(o,t))return l[t]=2,o[t];if((u=e.propsOptions[0])&&Ae(u,t))return l[t]=3,s[t];if(n!==Ye&&Ae(n,t))return l[t]=4,n[t];Ql&&(l[t]=0)}}const c=fo[t];let f,d;if(c)return t==="$attrs"&&Ot(e,"get",t),c(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==Ye&&Ae(n,t))return l[t]=4,n[t];if(d=i.config.globalProperties,Ae(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return El(o,t)?(o[t]=n,!0):r!==Ye&&Ae(r,t)?(r[t]=n,!0):Ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},l){let a;return!!n[l]||e!==Ye&&Ae(e,l)||El(t,l)||(a=s[0])&&Ae(a,l)||Ae(r,l)||Ae(fo,l)||Ae(o.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ae(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function rl(){return gd().slots}function Cg(){return gd().attrs}function gd(){const e=He();return e.setupContext||(e.setupContext=Pd(e))}function nu(e){return pe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ql=!0;function _g(e){const t=ei(e),n=e.proxy,r=e.ctx;Ql=!1,t.beforeCreate&&ru(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:l,watch:a,provide:i,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:p,updated:h,activated:v,deactivated:b,beforeDestroy:g,beforeUnmount:w,destroyed:T,unmounted:y,render:O,renderTracked:E,renderTriggered:C,errorCaptured:_,serverPrefetch:P,expose:B,inheritAttrs:W,components:I,directives:L,filters:V}=t;if(u&&Sg(u,r,null),l)for(const H in l){const te=l[H];Ce(te)&&(r[H]=te.bind(n))}if(o){const H=o.call(n,n);Ie(H)&&(e.data=dn(H))}if(Ql=!0,s)for(const H in s){const te=s[H],k=Ce(te)?te.bind(n,n):Ce(te.get)?te.get.bind(n,n):ot,z=!Ce(te)&&Ce(te.set)?te.set.bind(n):ot,oe=A({get:k,set:z});Object.defineProperty(r,H,{enumerable:!0,configurable:!0,get:()=>oe.value,set:se=>oe.value=se})}if(a)for(const H in a)md(a[H],r,n,H);if(i){const H=Ce(i)?i.call(n):i;Reflect.ownKeys(H).forEach(te=>{ut(te,H[te])})}c&&ru(c,e,"c");function J(H,te){pe(te)?te.forEach(k=>H(k.bind(n))):te&&H(te.bind(n))}if(J(nl,f),J(Je,d),J(hg,p),J(Qa,h),J(dg,v),J(pd,b),J(yg,_),J(mg,E),J(gg,C),J(mt,w),J(Jr,y),J(vg,P),pe(B))if(B.length){const H=e.exposed||(e.exposed={});B.forEach(te=>{Object.defineProperty(H,te,{get:()=>n[te],set:k=>n[te]=k})})}else e.exposed||(e.exposed={});O&&e.render===ot&&(e.render=O),W!=null&&(e.inheritAttrs=W),I&&(e.components=I),L&&(e.directives=L)}function Sg(e,t,n=ot){pe(e)&&(e=ea(e));for(const r in e){const o=e[r];let s;Ie(o)?"default"in o?s=_e(o.from||r,o.default,!0):s=_e(o.from||r):s=_e(o),Xe(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:l=>s.value=l}):t[r]=s}}function ru(e,t,n){Ht(pe(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function md(e,t,n,r){const o=r.includes(".")?ud(n,r):()=>n[r];if(Se(e)){const s=t[e];Ce(s)&&ge(o,s)}else if(Ce(e))ge(o,e.bind(n));else if(Ie(e))if(pe(e))e.forEach(s=>md(s,t,n,r));else{const s=Ce(e.handler)?e.handler.bind(n):t[e.handler];Ce(s)&&ge(o,s,e)}}function ei(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:l}}=e.appContext,a=s.get(t);let i;return a?i=a:!o.length&&!n&&!r?i=t:(i={},o.length&&o.forEach(u=>Ms(i,u,l,!0)),Ms(i,t,l)),Ie(t)&&s.set(t,i),i}function Ms(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&Ms(e,s,n,!0),o&&o.forEach(l=>Ms(e,l,n,!0));for(const l in t)if(!(r&&l==="expose")){const a=Eg[l]||n&&n[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const Eg={data:ou,props:su,emits:su,methods:io,computed:io,beforeCreate:yt,created:yt,beforeMount:yt,mounted:yt,beforeUpdate:yt,updated:yt,beforeDestroy:yt,beforeUnmount:yt,destroyed:yt,unmounted:yt,activated:yt,deactivated:yt,errorCaptured:yt,serverPrefetch:yt,components:io,directives:io,watch:Tg,provide:ou,inject:xg};function ou(e,t){return t?e?function(){return ct(Ce(e)?e.call(this,this):e,Ce(t)?t.call(this,this):t)}:t:e}function xg(e,t){return io(ea(e),ea(t))}function ea(e){if(pe(e)){const t={};for(let n=0;n1)return n&&Ce(t)?t.call(r&&r.proxy):t}}function Mg(e,t,n,r=!1){const o={},s={};xs(s,ol,1),e.propsDefaults=Object.create(null),bd(e,t,o,s);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=r?o:Va(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function Pg(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:l}}=e,a=ke(o),[i]=e.propsOptions;let u=!1;if((r||l>0)&&!(l&16)){if(l&8){const c=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[d,p]=wd(f,t,!0);ct(l,d),p&&a.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!i)return Ie(e)&&r.set(e,Pr),Pr;if(pe(s))for(let c=0;c-1,p[1]=v<0||h-1||Ae(p,"default"))&&a.push(f)}}}const u=[l,a];return Ie(e)&&r.set(e,u),u}function lu(e){return e[0]!=="$"}function au(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function iu(e,t){return au(e)===au(t)}function uu(e,t){return pe(t)?t.findIndex(n=>iu(n,e)):Ce(t)&&iu(t,e)?0:-1}const Cd=e=>e[0]==="_"||e==="$stable",ti=e=>pe(e)?e.map(nn):[nn(e)],Rg=(e,t,n)=>{if(t._n)return t;const r=de((...o)=>ti(t(...o)),n);return r._c=!1,r},_d=(e,t,n)=>{const r=e._ctx;for(const o in e){if(Cd(o))continue;const s=e[o];if(Ce(s))t[o]=Rg(o,s,r);else if(s!=null){const l=ti(s);t[o]=()=>l}}},Sd=(e,t)=>{const n=ti(t);e.slots.default=()=>n},$g=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ke(t),xs(t,"_",n)):_d(t,e.slots={})}else e.slots={},t&&Sd(e,t);xs(e.slots,ol,1)},Ig=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,l=Ye;if(r.shapeFlag&32){const a=t._;a?n&&a===1?s=!1:(ct(o,t),!n&&a===1&&delete o._):(s=!t.$stable,_d(t,o)),l=t}else t&&(Sd(e,t),l={default:1});if(s)for(const a in o)!Cd(a)&&l[a]==null&&delete o[a]};function na(e,t,n,r,o=!1){if(pe(e)){e.forEach((d,p)=>na(d,t&&(pe(t)?t[p]:t),n,r,o));return}if(co(r)&&!o)return;const s=r.shapeFlag&4?ll(r.component)||r.component.proxy:r.el,l=o?null:s,{i:a,r:i}=e,u=t&&t.r,c=a.refs===Ye?a.refs={}:a.refs,f=a.setupState;if(u!=null&&u!==i&&(Se(u)?(c[u]=null,Ae(f,u)&&(f[u]=null)):Xe(u)&&(u.value=null)),Ce(i))jn(i,a,12,[l,c]);else{const d=Se(i),p=Xe(i),h=e.f;if(d||p){const v=()=>{if(h){const b=d?Ae(f,i)?f[i]:c[i]:i.value;o?pe(b)&&Fa(b,s):pe(b)?b.includes(s)||b.push(s):d?(c[i]=[s],Ae(f,i)&&(f[i]=c[i])):(i.value=[s],e.k&&(c[e.k]=i.value))}else d?(c[i]=l,Ae(f,i)&&(f[i]=l)):p&&(i.value=l,e.k&&(c[e.k]=l))};o||h?v():(v.id=-1,Ct(v,n))}}}const Ct=sg;function Ng(e){return Lg(e)}function Lg(e,t){const n=Mf();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:l,createText:a,createComment:i,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:p=ot,insertStaticContent:h}=e,v=(S,x,R,j=null,D=null,X=null,ne=void 0,q=null,Q=!!x.dynamicChildren)=>{if(S===x)return;S&&!or(S,x)&&(j=F(S),se(S,D,X,!0),S=null),x.patchFlag===-2&&(Q=!1,x.dynamicChildren=null);const{type:U,ref:ue,shapeFlag:ve}=x;switch(U){case Zr:b(S,x,R,j);break;case St:g(S,x,R,j);break;case Tl:S==null&&w(x,R,j,ne);break;case Ue:I(S,x,R,j,D,X,ne,q,Q);break;default:ve&1?O(S,x,R,j,D,X,ne,q,Q):ve&6?L(S,x,R,j,D,X,ne,q,Q):(ve&64||ve&128)&&U.process(S,x,R,j,D,X,ne,q,Q,ae)}ue!=null&&D&&na(ue,S&&S.ref,X,x||S,!x)},b=(S,x,R,j)=>{if(S==null)r(x.el=a(x.children),R,j);else{const D=x.el=S.el;x.children!==S.children&&u(D,x.children)}},g=(S,x,R,j)=>{S==null?r(x.el=i(x.children||""),R,j):x.el=S.el},w=(S,x,R,j)=>{[S.el,S.anchor]=h(S.children,x,R,j,S.el,S.anchor)},T=({el:S,anchor:x},R,j)=>{let D;for(;S&&S!==x;)D=d(S),r(S,R,j),S=D;r(x,R,j)},y=({el:S,anchor:x})=>{let R;for(;S&&S!==x;)R=d(S),o(S),S=R;o(x)},O=(S,x,R,j,D,X,ne,q,Q)=>{x.type==="svg"?ne="svg":x.type==="math"&&(ne="mathml"),S==null?E(x,R,j,D,X,ne,q,Q):P(S,x,D,X,ne,q,Q)},E=(S,x,R,j,D,X,ne,q)=>{let Q,U;const{props:ue,shapeFlag:ve,transition:$,dirs:ee}=S;if(Q=S.el=l(S.type,X,ue&&ue.is,ue),ve&8?c(Q,S.children):ve&16&&_(S.children,Q,null,j,D,xl(S,X),ne,q),ee&&Xn(S,null,j,"created"),C(Q,S,S.scopeId,ne,j),ue){for(const Le in ue)Le!=="value"&&!us(Le)&&s(Q,Le,null,ue[Le],X,S.children,j,D,Ne);"value"in ue&&s(Q,"value",null,ue.value,X),(U=ue.onVnodeBeforeMount)&&tn(U,j,S)}ee&&Xn(S,null,j,"beforeMount");const me=kg(D,$);me&&$.beforeEnter(Q),r(Q,x,R),((U=ue&&ue.onVnodeMounted)||me||ee)&&Ct(()=>{U&&tn(U,j,S),me&&$.enter(Q),ee&&Xn(S,null,j,"mounted")},D)},C=(S,x,R,j,D)=>{if(R&&p(S,R),j)for(let X=0;X{for(let U=Q;U{const q=x.el=S.el;let{patchFlag:Q,dynamicChildren:U,dirs:ue}=x;Q|=S.patchFlag&16;const ve=S.props||Ye,$=x.props||Ye;let ee;if(R&&Jn(R,!1),(ee=$.onVnodeBeforeUpdate)&&tn(ee,R,x,S),ue&&Xn(x,S,R,"beforeUpdate"),R&&Jn(R,!0),U?B(S.dynamicChildren,U,q,R,j,xl(x,D),X):ne||te(S,x,q,null,R,j,xl(x,D),X,!1),Q>0){if(Q&16)W(q,x,ve,$,R,j,D);else if(Q&2&&ve.class!==$.class&&s(q,"class",null,$.class,D),Q&4&&s(q,"style",ve.style,$.style,D),Q&8){const me=x.dynamicProps;for(let Le=0;Le{ee&&tn(ee,R,x,S),ue&&Xn(x,S,R,"updated")},j)},B=(S,x,R,j,D,X,ne)=>{for(let q=0;q{if(R!==j){if(R!==Ye)for(const q in R)!us(q)&&!(q in j)&&s(S,q,R[q],null,ne,x.children,D,X,Ne);for(const q in j){if(us(q))continue;const Q=j[q],U=R[q];Q!==U&&q!=="value"&&s(S,q,U,Q,ne,x.children,D,X,Ne)}"value"in j&&s(S,"value",R.value,j.value,ne)}},I=(S,x,R,j,D,X,ne,q,Q)=>{const U=x.el=S?S.el:a(""),ue=x.anchor=S?S.anchor:a("");let{patchFlag:ve,dynamicChildren:$,slotScopeIds:ee}=x;ee&&(q=q?q.concat(ee):ee),S==null?(r(U,R,j),r(ue,R,j),_(x.children||[],R,ue,D,X,ne,q,Q)):ve>0&&ve&64&&$&&S.dynamicChildren?(B(S.dynamicChildren,$,R,D,X,ne,q),(x.key!=null||D&&x===D.subTree)&&ni(S,x,!0)):te(S,x,R,ue,D,X,ne,q,Q)},L=(S,x,R,j,D,X,ne,q,Q)=>{x.slotScopeIds=q,S==null?x.shapeFlag&512?D.ctx.activate(x,R,j,ne,Q):V(x,R,j,D,X,ne,Q):G(S,x,Q)},V=(S,x,R,j,D,X,ne)=>{const q=S.component=Gg(S,j,D);if(el(S)&&(q.ctx.renderer=ae),qg(q),q.asyncDep){if(D&&D.registerDep(q,J),!S.el){const Q=q.subTree=fe(St);g(null,Q,x,R)}}else J(q,S,x,R,D,X,ne)},G=(S,x,R)=>{const j=x.component=S.component;if(tg(S,x,R))if(j.asyncDep&&!j.asyncResolved){H(j,x,R);return}else j.next=x,Yv(j.update),j.effect.dirty=!0,j.update();else x.el=S.el,j.vnode=x},J=(S,x,R,j,D,X,ne)=>{const q=()=>{if(S.isMounted){let{next:ue,bu:ve,u:$,parent:ee,vnode:me}=S;{const Pe=Ed(S);if(Pe){ue&&(ue.el=me.el,H(S,ue,ne)),Pe.asyncDep.then(()=>{S.isUnmounted||q()});return}}let Le=ue,Ve;Jn(S,!1),ue?(ue.el=me.el,H(S,ue,ne)):ue=me,ve&&fs(ve),(Ve=ue.props&&ue.props.onVnodeBeforeUpdate)&&tn(Ve,ee,ue,me),Jn(S,!0);const le=_l(S),we=S.subTree;S.subTree=le,v(we,le,f(we.el),F(we),S,D,X),ue.el=le.el,Le===null&&ng(S,le.el),$&&Ct($,D),(Ve=ue.props&&ue.props.onVnodeUpdated)&&Ct(()=>tn(Ve,ee,ue,me),D)}else{let ue;const{el:ve,props:$}=x,{bm:ee,m:me,parent:Le}=S,Ve=co(x);if(Jn(S,!1),ee&&fs(ee),!Ve&&(ue=$&&$.onVnodeBeforeMount)&&tn(ue,Le,x),Jn(S,!0),ve&&Be){const le=()=>{S.subTree=_l(S),Be(ve,S.subTree,S,D,null)};Ve?x.type.__asyncLoader().then(()=>!S.isUnmounted&&le()):le()}else{const le=S.subTree=_l(S);v(null,le,R,j,S,D,X),x.el=le.el}if(me&&Ct(me,D),!Ve&&(ue=$&&$.onVnodeMounted)){const le=x;Ct(()=>tn(ue,Le,le),D)}(x.shapeFlag&256||Le&&co(Le.vnode)&&Le.vnode.shapeFlag&256)&&S.a&&Ct(S.a,D),S.isMounted=!0,x=R=j=null}},Q=S.effect=new Ha(q,ot,()=>Ya(U),S.scope),U=S.update=()=>{Q.dirty&&Q.run()};U.id=S.uid,Jn(S,!0),U()},H=(S,x,R)=>{x.component=S;const j=S.vnode.props;S.vnode=x,S.next=null,Pg(S,x.props,j,R),Ig(S,x.children,R),wr(),Ji(S),Cr()},te=(S,x,R,j,D,X,ne,q,Q=!1)=>{const U=S&&S.children,ue=S?S.shapeFlag:0,ve=x.children,{patchFlag:$,shapeFlag:ee}=x;if($>0){if($&128){z(U,ve,R,j,D,X,ne,q,Q);return}else if($&256){k(U,ve,R,j,D,X,ne,q,Q);return}}ee&8?(ue&16&&Ne(U,D,X),ve!==U&&c(R,ve)):ue&16?ee&16?z(U,ve,R,j,D,X,ne,q,Q):Ne(U,D,X,!0):(ue&8&&c(R,""),ee&16&&_(ve,R,j,D,X,ne,q,Q))},k=(S,x,R,j,D,X,ne,q,Q)=>{S=S||Pr,x=x||Pr;const U=S.length,ue=x.length,ve=Math.min(U,ue);let $;for($=0;$ue?Ne(S,D,X,!0,!1,ve):_(x,R,j,D,X,ne,q,Q,ve)},z=(S,x,R,j,D,X,ne,q,Q)=>{let U=0;const ue=x.length;let ve=S.length-1,$=ue-1;for(;U<=ve&&U<=$;){const ee=S[U],me=x[U]=Q?Ln(x[U]):nn(x[U]);if(or(ee,me))v(ee,me,R,null,D,X,ne,q,Q);else break;U++}for(;U<=ve&&U<=$;){const ee=S[ve],me=x[$]=Q?Ln(x[$]):nn(x[$]);if(or(ee,me))v(ee,me,R,null,D,X,ne,q,Q);else break;ve--,$--}if(U>ve){if(U<=$){const ee=$+1,me=ee$)for(;U<=ve;)se(S[U],D,X,!0),U++;else{const ee=U,me=U,Le=new Map;for(U=me;U<=$;U++){const Ke=x[U]=Q?Ln(x[U]):nn(x[U]);Ke.key!=null&&Le.set(Ke.key,U)}let Ve,le=0;const we=$-me+1;let Pe=!1,$e=0;const Fe=new Array(we);for(U=0;U=we){se(Ke,D,X,!0);continue}let ft;if(Ke.key!=null)ft=Le.get(Ke.key);else for(Ve=me;Ve<=$;Ve++)if(Fe[Ve-me]===0&&or(Ke,x[Ve])){ft=Ve;break}ft===void 0?se(Ke,D,X,!0):(Fe[ft-me]=U+1,ft>=$e?$e=ft:Pe=!0,v(Ke,x[ft],R,null,D,X,ne,q,Q),le++)}const lt=Pe?Fg(Fe):Pr;for(Ve=lt.length-1,U=we-1;U>=0;U--){const Ke=me+U,ft=x[Ke],Lt=Ke+1{const{el:X,type:ne,transition:q,children:Q,shapeFlag:U}=S;if(U&6){oe(S.component.subTree,x,R,j);return}if(U&128){S.suspense.move(x,R,j);return}if(U&64){ne.move(S,x,R,ae);return}if(ne===Ue){r(X,x,R);for(let ve=0;veq.enter(X),D);else{const{leave:ve,delayLeave:$,afterLeave:ee}=q,me=()=>r(X,x,R),Le=()=>{ve(X,()=>{me(),ee&&ee()})};$?$(X,me,Le):Le()}else r(X,x,R)},se=(S,x,R,j=!1,D=!1)=>{const{type:X,props:ne,ref:q,children:Q,dynamicChildren:U,shapeFlag:ue,patchFlag:ve,dirs:$}=S;if(q!=null&&na(q,null,R,S,!0),ue&256){x.ctx.deactivate(S);return}const ee=ue&1&&$,me=!co(S);let Le;if(me&&(Le=ne&&ne.onVnodeBeforeUnmount)&&tn(Le,x,S),ue&6)De(S.component,R,j);else{if(ue&128){S.suspense.unmount(R,j);return}ee&&Xn(S,null,x,"beforeUnmount"),ue&64?S.type.remove(S,x,R,D,ae,j):U&&(X!==Ue||ve>0&&ve&64)?Ne(U,x,R,!1,!0):(X===Ue&&ve&384||!D&&ue&16)&&Ne(Q,x,R),j&&xe(S)}(me&&(Le=ne&&ne.onVnodeUnmounted)||ee)&&Ct(()=>{Le&&tn(Le,x,S),ee&&Xn(S,null,x,"unmounted")},R)},xe=S=>{const{type:x,el:R,anchor:j,transition:D}=S;if(x===Ue){Re(R,j);return}if(x===Tl){y(S);return}const X=()=>{o(R),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(S.shapeFlag&1&&D&&!D.persisted){const{leave:ne,delayLeave:q}=D,Q=()=>ne(R,X);q?q(S.el,X,Q):Q()}else X()},Re=(S,x)=>{let R;for(;S!==x;)R=d(S),o(S),S=R;o(x)},De=(S,x,R)=>{const{bum:j,scope:D,update:X,subTree:ne,um:q}=S;j&&fs(j),D.stop(),X&&(X.active=!1,se(ne,S,x,R)),q&&Ct(q,x),Ct(()=>{S.isUnmounted=!0},x),x&&x.pendingBranch&&!x.isUnmounted&&S.asyncDep&&!S.asyncResolved&&S.suspenseId===x.pendingId&&(x.deps--,x.deps===0&&x.resolve())},Ne=(S,x,R,j=!1,D=!1,X=0)=>{for(let ne=X;neS.shapeFlag&6?F(S.component.subTree):S.shapeFlag&128?S.suspense.next():d(S.anchor||S.el);let Y=!1;const Z=(S,x,R)=>{S==null?x._vnode&&se(x._vnode,null,null,!0):v(x._vnode||null,S,x,null,null,null,R),Y||(Y=!0,Ji(),rd(),Y=!1),x._vnode=S},ae={p:v,um:se,m:oe,r:xe,mt:V,mc:_,pc:te,pbc:B,n:F,o:e};let Oe,Be;return t&&([Oe,Be]=t(ae)),{render:Z,hydrate:Oe,createApp:Ag(Z,Oe)}}function xl({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Jn({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function kg(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ni(e,t,n=!1){const r=e.children,o=t.children;if(pe(r)&&pe(o))for(let s=0;s>1,e[n[a]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,l=n[s-1];s-- >0;)n[s]=l,l=t[l];return n}function Ed(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ed(t)}const Bg=e=>e.__isTeleport,po=e=>e&&(e.disabled||e.disabled===""),cu=e=>typeof SVGElement<"u"&&e instanceof SVGElement,fu=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ra=(e,t)=>{const n=e&&e.to;return Se(n)?t?t(n):null:n},Hg={name:"Teleport",__isTeleport:!0,process(e,t,n,r,o,s,l,a,i,u){const{mc:c,pc:f,pbc:d,o:{insert:p,querySelector:h,createText:v,createComment:b}}=u,g=po(t.props);let{shapeFlag:w,children:T,dynamicChildren:y}=t;if(e==null){const O=t.el=v(""),E=t.anchor=v("");p(O,n,r),p(E,n,r);const C=t.target=ra(t.props,h),_=t.targetAnchor=v("");C&&(p(_,C),l==="svg"||cu(C)?l="svg":(l==="mathml"||fu(C))&&(l="mathml"));const P=(B,W)=>{w&16&&c(T,B,W,o,s,l,a,i)};g?P(n,E):C&&P(C,_)}else{t.el=e.el;const O=t.anchor=e.anchor,E=t.target=e.target,C=t.targetAnchor=e.targetAnchor,_=po(e.props),P=_?n:E,B=_?O:C;if(l==="svg"||cu(E)?l="svg":(l==="mathml"||fu(E))&&(l="mathml"),y?(d(e.dynamicChildren,y,P,o,s,l,a),ni(e,t,!0)):i||f(e,t,P,B,o,s,l,a,!1),g)_?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Zo(t,n,O,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const W=t.target=ra(t.props,h);W&&Zo(t,W,null,u,0)}else _&&Zo(t,E,C,u,1)}xd(t)},remove(e,t,n,r,{um:o,o:{remove:s}},l){const{shapeFlag:a,children:i,anchor:u,targetAnchor:c,target:f,props:d}=e;if(f&&s(c),l&&s(u),a&16){const p=l||!po(d);for(let h=0;h0?Ut||Pr:null,jg(),xo>0&&Ut&&Ut.push(e),e}function ie(e,t,n,r,o,s){return Td(ce(e,t,n,r,o,s,!0))}function he(e,t,n,r,o){return Td(fe(e,t,n,r,o,!0))}function an(e){return e?e.__v_isVNode===!0:!1}function or(e,t){return e.type===t.type&&e.key===t.key}const ol="__vInternal",Od=({key:e})=>e??null,ps=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Se(e)||Xe(e)||Ce(e)?{i:at,r:e,k:t,f:!!n}:e:null);function ce(e,t=null,n=null,r=0,o=null,s=e===Ue?0:1,l=!1,a=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Od(t),ref:t&&ps(t),scopeId:ld,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:at};return a?(ri(i,n),s&128&&e.normalize(i)):n&&(i.shapeFlag|=Se(n)?8:16),xo>0&&!l&&Ut&&(i.patchFlag>0||s&6)&&i.patchFlag!==32&&Ut.push(i),i}const fe=Wg;function Wg(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===ad)&&(e=St),an(e)){const a=yn(e,t,!0);return n&&ri(a,n),xo>0&&!s&&Ut&&(a.shapeFlag&6?Ut[Ut.indexOf(e)]=a:Ut.push(a)),a.patchFlag|=-2,a}if(Zg(e)&&(e=e.__vccOpts),t){t=Vg(t);let{class:a,style:i}=t;a&&!Se(a)&&(t.class=K(a)),Ie(i)&&(Gf(i)&&!pe(i)&&(i=ct({},i)),t.style=tt(i))}const l=Se(e)?1:og(e)?128:Bg(e)?64:Ie(e)?4:Ce(e)?2:0;return ce(e,t,n,r,o,l,s,!0)}function Vg(e){return e?Gf(e)||ol in e?ct({},e):e:null}function yn(e,t,n=!1){const{props:r,ref:o,patchFlag:s,children:l}=e,a=t?Yt(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&Od(a),ref:t&&t.ref?n&&o?pe(o)?o.concat(ps(t)):[o,ps(t)]:ps(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ue?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&yn(e.ssContent),ssFallback:e.ssFallback&&yn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Et(e=" ",t=0){return fe(Zr,null,e,t)}function be(e="",t=!1){return t?(N(),he(St,null,e)):fe(St,null,e)}function nn(e){return e==null||typeof e=="boolean"?fe(St):pe(e)?fe(Ue,null,e.slice()):typeof e=="object"?Ln(e):fe(Zr,null,String(e))}function Ln(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:yn(e)}function ri(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(pe(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),ri(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(ol in t)?t._ctx=at:o===3&&at&&(at.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ce(t)?(t={default:t,_ctx:at},n=32):(t=String(t),r&64?(n=16,t=[Et(t)]):n=8);e.children=t,e.shapeFlag|=n}function Yt(...e){const t={};for(let n=0;ndt||at;let Rs,oa;{const e=Mf(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),s=>{o.length>1?o.forEach(l=>l(s)):o[0](s)}};Rs=t("__VUE_INSTANCE_SETTERS__",n=>dt=n),oa=t("__VUE_SSR_SETTERS__",n=>sl=n)}const Fo=e=>{const t=dt;return Rs(e),e.scope.on(),()=>{e.scope.off(),Rs(t)}},pu=()=>{dt&&dt.scope.off(),Rs(null)};function Ad(e){return e.vnode.shapeFlag&4}let sl=!1;function qg(e,t=!1){t&&oa(t);const{props:n,children:r}=e.vnode,o=Ad(e);Mg(e,n,o,t),$g(e,r);const s=o?Yg(e,t):void 0;return t&&oa(!1),s}function Yg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=qf(new Proxy(e.ctx,wg));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?Pd(e):null,s=Fo(e);wr();const l=jn(r,e,0,[e.props,o]);if(Cr(),s(),Es(l)){if(l.then(pu,pu),t)return l.then(a=>{hu(e,a,t)}).catch(a=>{Zs(a,e,0)});e.asyncDep=l}else hu(e,l,t)}else Md(e,t)}function hu(e,t,n){Ce(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ie(t)&&(e.setupState=Qf(t)),Md(e,n)}let vu;function Md(e,t,n){const r=e.type;if(!e.render){if(!t&&vu&&!r.render){const o=r.template||ei(e).template;if(o){const{isCustomElement:s,compilerOptions:l}=e.appContext.config,{delimiters:a,compilerOptions:i}=r,u=ct(ct({isCustomElement:s,delimiters:a},l),i);r.render=vu(o,u)}}e.render=r.render||ot}{const o=Fo(e);wr();try{_g(e)}finally{Cr(),o()}}}function Xg(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return Ot(e,"get","$attrs"),t[n]}}))}function Pd(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return Xg(e)},slots:e.slots,emit:e.emit,expose:t}}function ll(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Qf(qf(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in fo)return fo[n](e)},has(t,n){return n in t||n in fo}}))}function Jg(e,t=!0){return Ce(e)?e.displayName||e.name:e.name||t&&e.__name}function Zg(e){return Ce(e)&&"__vccOpts"in e}const A=(e,t)=>Xf(e,t,sl);function ye(e,t,n){const r=arguments.length;return r===2?Ie(t)&&!pe(t)?an(t)?fe(e,null,[t]):fe(e,t):fe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&an(n)&&(n=[n]),fe(e,t,n))}const Qg="3.4.15",em=ot;/** -* @vue/runtime-dom v3.4.15 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const tm="http://www.w3.org/2000/svg",nm="http://www.w3.org/1998/Math/MathML",kn=typeof document<"u"?document:null,gu=kn&&kn.createElement("template"),rm={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?kn.createElementNS(tm,e):t==="mathml"?kn.createElementNS(nm,e):kn.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>kn.createTextNode(e),createComment:e=>kn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>kn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const l=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{gu.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const a=gu.content;if(r==="svg"||r==="mathml"){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Tn="transition",ro="animation",To=Symbol("_vtc"),_n=(e,{slots:t})=>ye(fg,om(e),t);_n.displayName="Transition";const Rd={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};_n.props=ct({},cd,Rd);const Zn=(e,t=[])=>{pe(e)?e.forEach(n=>n(...t)):e&&e(...t)},mu=e=>e?pe(e)?e.some(t=>t.length>1):e.length>1:!1;function om(e){const t={};for(const I in e)I in Rd||(t[I]=e[I]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=s,appearActiveClass:u=l,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,h=sm(o),v=h&&h[0],b=h&&h[1],{onBeforeEnter:g,onEnter:w,onEnterCancelled:T,onLeave:y,onLeaveCancelled:O,onBeforeAppear:E=g,onAppear:C=w,onAppearCancelled:_=T}=t,P=(I,L,V)=>{Qn(I,L?c:a),Qn(I,L?u:l),V&&V()},B=(I,L)=>{I._isLeaving=!1,Qn(I,f),Qn(I,p),Qn(I,d),L&&L()},W=I=>(L,V)=>{const G=I?C:w,J=()=>P(L,I,V);Zn(G,[L,J]),yu(()=>{Qn(L,I?i:s),On(L,I?c:a),mu(G)||bu(L,r,v,J)})};return ct(t,{onBeforeEnter(I){Zn(g,[I]),On(I,s),On(I,l)},onBeforeAppear(I){Zn(E,[I]),On(I,i),On(I,u)},onEnter:W(!1),onAppear:W(!0),onLeave(I,L){I._isLeaving=!0;const V=()=>B(I,L);On(I,f),im(),On(I,d),yu(()=>{I._isLeaving&&(Qn(I,f),On(I,p),mu(y)||bu(I,r,b,V))}),Zn(y,[I,V])},onEnterCancelled(I){P(I,!1),Zn(T,[I])},onAppearCancelled(I){P(I,!0),Zn(_,[I])},onLeaveCancelled(I){B(I),Zn(O,[I])}})}function sm(e){if(e==null)return null;if(Ie(e))return[Ol(e.enter),Ol(e.leave)];{const t=Ol(e);return[t,t]}}function Ol(e){return pv(e)}function On(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[To]||(e[To]=new Set)).add(t)}function Qn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[To];n&&(n.delete(t),n.size||(e[To]=void 0))}function yu(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let lm=0;function bu(e,t,n,r){const o=e._endId=++lm,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:l,timeout:a,propCount:i}=am(e,t);if(!l)return r();const u=l+"end";let c=0;const f=()=>{e.removeEventListener(u,d),s()},d=p=>{p.target===e&&++c>=i&&f()};setTimeout(()=>{c(n[h]||"").split(", "),o=r(`${Tn}Delay`),s=r(`${Tn}Duration`),l=wu(o,s),a=r(`${ro}Delay`),i=r(`${ro}Duration`),u=wu(a,i);let c=null,f=0,d=0;t===Tn?l>0&&(c=Tn,f=l,d=s.length):t===ro?u>0&&(c=ro,f=u,d=i.length):(f=Math.max(l,u),c=f>0?l>u?Tn:ro:null,d=c?c===Tn?s.length:i.length:0);const p=c===Tn&&/\b(transform|all)(,|$)/.test(r(`${Tn}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:p}}function wu(e,t){for(;e.lengthCu(n)+Cu(e[r])))}function Cu(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function im(){return document.body.offsetHeight}function um(e,t,n){const r=e[To];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const oi=Symbol("_vod"),Xt={beforeMount(e,{value:t},{transition:n}){e[oi]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):oo(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),oo(e,!0),r.enter(e)):r.leave(e,()=>{oo(e,!1)}):oo(e,t))},beforeUnmount(e,{value:t}){oo(e,t)}};function oo(e,t){e.style.display=t?e[oi]:"none"}const cm=Symbol("");function fm(e,t,n){const r=e.style,o=r.display,s=Se(n);if(n&&!s){if(t&&!Se(t))for(const l in t)n[l]==null&&sa(r,l,"");for(const l in n)sa(r,l,n[l])}else if(s){if(t!==n){const l=r[cm];l&&(n+=";"+l),r.cssText=n}}else t&&e.removeAttribute("style");oi in e&&(r.display=o)}const _u=/\s*!important$/;function sa(e,t,n){if(pe(n))n.forEach(r=>sa(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=dm(e,t);_u.test(n)?e.setProperty(br(r),n.replace(_u,""),"important"):e[r]=n}}const Su=["Webkit","Moz","ms"],Al={};function dm(e,t){const n=Al[t];if(n)return n;let r=Jt(t);if(r!=="filter"&&r in e)return Al[t]=r;r=Ys(r);for(let o=0;oMl||(ym.then(()=>Ml=0),Ml=Date.now());function wm(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Ht(Cm(r,n.value),t,5,[r])};return n.value=e,n.attached=bm(),n}function Cm(e,t){if(pe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Ou=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,_m=(e,t,n,r,o,s,l,a,i)=>{const u=o==="svg";t==="class"?um(e,r,u):t==="style"?fm(e,n,r):Us(t)?ka(t)||gm(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Sm(e,t,r,u))?hm(e,t,r,s,l,a,i):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),pm(e,t,r,u))};function Sm(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ou(t)&&Ce(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Ou(t)&&Se(n)?!1:t in e}const Au=e=>{const t=e.props["onUpdate:modelValue"]||!1;return pe(t)?n=>fs(t,n):t},Pl=Symbol("_assign"),$s={deep:!0,created(e,t,n){e[Pl]=Au(n),$d(e,"change",()=>{const r=e._modelValue,o=Em(e),s=e.checked,l=e[Pl];if(pe(r)){const a=Rf(r,o),i=a!==-1;if(s&&!i)l(r.concat(o));else if(!s&&i){const u=[...r];u.splice(a,1),l(u)}}else if(Gs(r)){const a=new Set(r);s?a.add(o):a.delete(o),l(a)}else l(Id(e,s))})},mounted:Mu,beforeUpdate(e,t,n){e[Pl]=Au(n),Mu(e,t,n)}};function Mu(e,{value:t,oldValue:n},r){e._modelValue=t,pe(t)?e.checked=Rf(t,r.props.value)>-1:Gs(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=Xs(t,Id(e,!0)))}function Em(e){return"_value"in e?e._value:e.value}function Id(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const xm=["ctrl","shift","alt","meta"],Tm={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>xm.some(n=>e[`${n}Key`]&&!t.includes(n))},Gt=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(o,...s)=>{for(let l=0;l{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=br(o.key);if(t.some(l=>l===s||Om[l]===s))return e(o)})},Am=ct({patchProp:_m},rm);let Pu;function Nd(){return Pu||(Pu=Ng(Am))}const Lr=(...e)=>{Nd().render(...e)},Mm=(...e)=>{const t=Nd().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Rm(r);if(!o)return;const s=t._component;!Ce(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.innerHTML="";const l=n(o,!1,Pm(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t};function Pm(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Rm(e){return Se(e)?document.querySelector(e):e}const $m='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',Im=e=>getComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,Ru=e=>Array.from(e.querySelectorAll($m)).filter(t=>Nm(t)&&Im(t)),Nm=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},hs=function(e,t,...n){let r;t.includes("mouse")||t.includes("click")?r="MouseEvents":t.includes("key")?r="KeyboardEvent":r="HTMLEvents";const o=document.createEvent(r);return o.initEvent(t,...n),e.dispatchEvent(o),e},gn=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const s=e==null?void 0:e(o);if(n===!1||!s)return t==null?void 0:t(o)};var $u;const Ge=typeof window<"u",Lm=e=>typeof e=="function",km=e=>typeof e=="string",Ld=()=>{},Fm=Ge&&(($u=window==null?void 0:window.navigator)==null?void 0:$u.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function kr(e){return typeof e=="function"?e():m(e)}function Bm(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const kd=e=>e();function Hm(e=kd){const t=M(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:ko(t),pause:n,resume:r,eventFilter:o}}function Dm(e){return e}function Bo(e){return If()?(Nf(e),!0):!1}function zm(e){return typeof e=="function"?A(e):M(e)}function Fd(e,t=!0){He()?Je(e):t?e():We(e)}function la(e,t,n={}){const{immediate:r=!0}=n,o=M(!1);let s=null;function l(){s&&(clearTimeout(s),s=null)}function a(){o.value=!1,l()}function i(...u){l(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...u)},kr(t))}return r&&(o.value=!0,Ge&&i()),Bo(a),{isPending:ko(o),start:i,stop:a}}function jm(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=Xe(e),s=M(e);function l(a){if(arguments.length)return s.value=a,s.value;{const i=kr(n);return s.value=s.value===i?kr(r):i,s.value}}return o?l:[s,l]}var Iu=Object.getOwnPropertySymbols,Wm=Object.prototype.hasOwnProperty,Vm=Object.prototype.propertyIsEnumerable,Km=(e,t)=>{var n={};for(var r in e)Wm.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Iu)for(var r of Iu(e))t.indexOf(r)<0&&Vm.call(e,r)&&(n[r]=e[r]);return n};function Um(e,t,n={}){const r=n,{eventFilter:o=kd}=r,s=Km(r,["eventFilter"]);return ge(e,Bm(o,t),s)}var Gm=Object.defineProperty,qm=Object.defineProperties,Ym=Object.getOwnPropertyDescriptors,Is=Object.getOwnPropertySymbols,Bd=Object.prototype.hasOwnProperty,Hd=Object.prototype.propertyIsEnumerable,Nu=(e,t,n)=>t in e?Gm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xm=(e,t)=>{for(var n in t||(t={}))Bd.call(t,n)&&Nu(e,n,t[n]);if(Is)for(var n of Is(t))Hd.call(t,n)&&Nu(e,n,t[n]);return e},Jm=(e,t)=>qm(e,Ym(t)),Zm=(e,t)=>{var n={};for(var r in e)Bd.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Is)for(var r of Is(e))t.indexOf(r)<0&&Hd.call(e,r)&&(n[r]=e[r]);return n};function Qm(e,t,n={}){const r=n,{eventFilter:o}=r,s=Zm(r,["eventFilter"]),{eventFilter:l,pause:a,resume:i,isActive:u}=Hm(o);return{stop:Um(e,t,Jm(Xm({},s),{eventFilter:l})),pause:a,resume:i,isActive:u}}function Hn(e){var t;const n=kr(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Un=Ge?window:void 0;function Dt(...e){let t,n,r,o;if(km(e[0])||Array.isArray(e[0])?([n,r,o]=e,t=Un):[t,n,r,o]=e,!t)return Ld;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],l=()=>{s.forEach(c=>c()),s.length=0},a=(c,f,d,p)=>(c.addEventListener(f,d,p),()=>c.removeEventListener(f,d,p)),i=ge(()=>[Hn(t),kr(o)],([c,f])=>{l(),c&&s.push(...n.flatMap(d=>r.map(p=>a(c,d,p,f))))},{immediate:!0,flush:"post"}),u=()=>{i(),l()};return Bo(u),u}let Lu=!1;function ey(e,t,n={}){const{window:r=Un,ignore:o=[],capture:s=!0,detectIframe:l=!1}=n;if(!r)return;Fm&&!Lu&&(Lu=!0,Array.from(r.document.body.children).forEach(d=>d.addEventListener("click",Ld)));let a=!0;const i=d=>o.some(p=>{if(typeof p=="string")return Array.from(r.document.querySelectorAll(p)).some(h=>h===d.target||d.composedPath().includes(h));{const h=Hn(p);return h&&(d.target===h||d.composedPath().includes(h))}}),c=[Dt(r,"click",d=>{const p=Hn(e);if(!(!p||p===d.target||d.composedPath().includes(p))){if(d.detail===0&&(a=!i(d)),!a){a=!0;return}t(d)}},{passive:!0,capture:s}),Dt(r,"pointerdown",d=>{const p=Hn(e);p&&(a=!d.composedPath().includes(p)&&!i(d))},{passive:!0}),l&&Dt(r,"blur",d=>{var p;const h=Hn(e);((p=r.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!(h!=null&&h.contains(r.document.activeElement))&&t(d)})].filter(Boolean);return()=>c.forEach(d=>d())}function Dd(e,t=!1){const n=M(),r=()=>n.value=!!e();return r(),Fd(r,t),n}function ty(e,t={}){const{window:n=Un}=t,r=Dd(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=M(!1),l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",a):o.removeListener(a))},a=()=>{r.value&&(l(),o=n.matchMedia(zm(e).value),s.value=o.matches,"addEventListener"in o?o.addEventListener("change",a):o.addListener(a))};return Wn(a),Bo(()=>l()),s}const aa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ia="__vueuse_ssr_handlers__";aa[ia]=aa[ia]||{};const ny=aa[ia];function zd(e,t){return ny[e]||t}function ry(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var oy=Object.defineProperty,ku=Object.getOwnPropertySymbols,sy=Object.prototype.hasOwnProperty,ly=Object.prototype.propertyIsEnumerable,Fu=(e,t,n)=>t in e?oy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bu=(e,t)=>{for(var n in t||(t={}))sy.call(t,n)&&Fu(e,n,t[n]);if(ku)for(var n of ku(t))ly.call(t,n)&&Fu(e,n,t[n]);return e};const ay={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Hu="vueuse-storage";function iy(e,t,n,r={}){var o;const{flush:s="pre",deep:l=!0,listenToStorageChanges:a=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:f=Un,eventFilter:d,onError:p=_=>{console.error(_)}}=r,h=(c?pr:M)(t);if(!n)try{n=zd("getDefaultStorage",()=>{var _;return(_=Un)==null?void 0:_.localStorage})()}catch(_){p(_)}if(!n)return h;const v=kr(t),b=ry(v),g=(o=r.serializer)!=null?o:ay[b],{pause:w,resume:T}=Qm(h,()=>y(h.value),{flush:s,deep:l,eventFilter:d});return f&&a&&(Dt(f,"storage",C),Dt(f,Hu,E)),C(),h;function y(_){try{if(_==null)n.removeItem(e);else{const P=g.write(_),B=n.getItem(e);B!==P&&(n.setItem(e,P),f&&f.dispatchEvent(new CustomEvent(Hu,{detail:{key:e,oldValue:B,newValue:P,storageArea:n}})))}}catch(P){p(P)}}function O(_){const P=_?_.newValue:n.getItem(e);if(P==null)return i&&v!==null&&n.setItem(e,g.write(v)),v;if(!_&&u){const B=g.read(P);return Lm(u)?u(B,v):b==="object"&&!Array.isArray(B)?Bu(Bu({},v),B):B}else return typeof P!="string"?P:g.read(P)}function E(_){C(_.detail)}function C(_){if(!(_&&_.storageArea!==n)){if(_&&_.key==null){h.value=v;return}if(!(_&&_.key!==e)){w();try{h.value=O(_)}catch(P){p(P)}finally{_?We(T):T()}}}}}function jd(e){return ty("(prefers-color-scheme: dark)",e)}var uy=Object.defineProperty,Du=Object.getOwnPropertySymbols,cy=Object.prototype.hasOwnProperty,fy=Object.prototype.propertyIsEnumerable,zu=(e,t,n)=>t in e?uy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dy=(e,t)=>{for(var n in t||(t={}))cy.call(t,n)&&zu(e,n,t[n]);if(Du)for(var n of Du(t))fy.call(t,n)&&zu(e,n,t[n]);return e};function py(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:o=Un,storage:s,storageKey:l="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:i,emitAuto:u}=e,c=dy({auto:"",light:"light",dark:"dark"},e.modes||{}),f=jd({window:o}),d=A(()=>f.value?"dark":"light"),p=i||(l==null?M(r):iy(l,r,s,{window:o,listenToStorageChanges:a})),h=A({get(){return p.value==="auto"&&!u?d.value:p.value},set(w){p.value=w}}),v=zd("updateHTMLAttrs",(w,T,y)=>{const O=o==null?void 0:o.document.querySelector(w);if(O)if(T==="class"){const E=y.split(/\s/g);Object.values(c).flatMap(C=>(C||"").split(/\s/g)).filter(Boolean).forEach(C=>{E.includes(C)?O.classList.add(C):O.classList.remove(C)})}else O.setAttribute(T,y)});function b(w){var T;const y=w==="auto"?d.value:w;v(t,n,(T=c[y])!=null?T:y)}function g(w){e.onChanged?e.onChanged(w,b):b(w)}return ge(h,g,{flush:"post",immediate:!0}),u&&ge(d,()=>g(h.value),{flush:"post"}),Fd(()=>g(h.value)),h}var hy=Object.defineProperty,vy=Object.defineProperties,gy=Object.getOwnPropertyDescriptors,ju=Object.getOwnPropertySymbols,my=Object.prototype.hasOwnProperty,yy=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?hy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,by=(e,t)=>{for(var n in t||(t={}))my.call(t,n)&&Wu(e,n,t[n]);if(ju)for(var n of ju(t))yy.call(t,n)&&Wu(e,n,t[n]);return e},wy=(e,t)=>vy(e,gy(t));function Cy(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Un}=e,o=py(wy(by({},e),{onChanged:(a,i)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,a==="dark"):i(a)},modes:{dark:t,light:n}})),s=jd({window:r});return A({get(){return o.value==="dark"},set(a){a===s.value?o.value="auto":o.value=a?"dark":"light"}})}var Vu=Object.getOwnPropertySymbols,_y=Object.prototype.hasOwnProperty,Sy=Object.prototype.propertyIsEnumerable,Ey=(e,t)=>{var n={};for(var r in e)_y.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Vu)for(var r of Vu(e))t.indexOf(r)<0&&Sy.call(e,r)&&(n[r]=e[r]);return n};function Fr(e,t,n={}){const r=n,{window:o=Un}=r,s=Ey(r,["window"]);let l;const a=Dd(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},u=ge(()=>Hn(e),f=>{i(),a.value&&o&&f&&(l=new ResizeObserver(t),l.observe(f,s))},{immediate:!0,flush:"post"}),c=()=>{i(),u()};return Bo(c),{isSupported:a,stop:c}}var Ku;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Ku||(Ku={}));var xy=Object.defineProperty,Uu=Object.getOwnPropertySymbols,Ty=Object.prototype.hasOwnProperty,Oy=Object.prototype.propertyIsEnumerable,Gu=(e,t,n)=>t in e?xy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ay=(e,t)=>{for(var n in t||(t={}))Ty.call(t,n)&&Gu(e,n,t[n]);if(Uu)for(var n of Uu(t))Oy.call(t,n)&&Gu(e,n,t[n]);return e};const My={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Ay({linear:Dm},My);const Py=()=>Ge&&/firefox/i.test(window.navigator.userAgent);var Wd=typeof global=="object"&&global&&global.Object===Object&&global,Ry=typeof self=="object"&&self&&self.Object===Object&&self,Qt=Wd||Ry||Function("return this")(),un=Qt.Symbol,Vd=Object.prototype,$y=Vd.hasOwnProperty,Iy=Vd.toString,so=un?un.toStringTag:void 0;function Ny(e){var t=$y.call(e,so),n=e[so];try{e[so]=void 0;var r=!0}catch{}var o=Iy.call(e);return r&&(t?e[so]=n:delete e[so]),o}var Ly=Object.prototype,ky=Ly.toString;function Fy(e){return ky.call(e)}var By="[object Null]",Hy="[object Undefined]",qu=un?un.toStringTag:void 0;function _r(e){return e==null?e===void 0?Hy:By:qu&&qu in Object(e)?Ny(e):Fy(e)}function Gn(e){return e!=null&&typeof e=="object"}var Dy="[object Symbol]";function al(e){return typeof e=="symbol"||Gn(e)&&_r(e)==Dy}function Kd(e,t){for(var n=-1,r=e==null?0:e.length,o=Array(r);++n0){if(++t>=v0)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function b0(e){return function(){return e}}var Ns=function(){try{var e=Er(Object,"defineProperty");return e({},"",{}),e}catch{}}(),w0=Ns?function(e,t){return Ns(e,"toString",{configurable:!0,enumerable:!1,value:b0(t),writable:!0})}:si;const C0=w0;var Gd=y0(C0),_0=9007199254740991,S0=/^(?:0|[1-9]\d*)$/;function il(e,t){var n=typeof e;return t=t??_0,!!t&&(n=="number"||n!="symbol"&&S0.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=A0}function Qr(e){return e!=null&&ii(e.length)&&!li(e)}function M0(e,t,n){if(!It(n))return!1;var r=typeof t;return(r=="number"?Qr(n)&&il(t,n.length):r=="string"&&t in n)?Ho(n[t],e):!1}function P0(e){return O0(function(t,n){var r=-1,o=n.length,s=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(s=e.length>3&&typeof s=="function"?(o--,s):void 0,l&&M0(n[0],n[1],l)&&(s=o<3?void 0:s,o=1),t=Object(t);++r-1}function zb(e,t){var n=this.__data__,r=ul(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Sn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(a)?t>1?vi(a,t-1,n,r,o):np(o,a):r||(o[o.length]=a)}return o}function rw(e){var t=e==null?0:e.length;return t?vi(e,1):[]}function ow(e){return Gd(Yd(e,void 0,rw),e+"")}var rp=ep(Object.getPrototypeOf,Object),sw="[object Object]",lw=Function.prototype,aw=Object.prototype,op=lw.toString,iw=aw.hasOwnProperty,uw=op.call(Object);function cw(e){if(!Gn(e)||_r(e)!=sw)return!1;var t=rp(e);if(t===null)return!0;var n=iw.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&op.call(n)==uw}function fw(){this.__data__=new Sn,this.size=0}function dw(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function pw(e){return this.__data__.get(e)}function hw(e){return this.__data__.has(e)}var vw=200;function gw(e,t){var n=this.__data__;if(n instanceof Sn){var r=n.__data__;if(!Mo||r.lengtha))return!1;var u=s.get(e),c=s.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,p=n&jw?new Fs:void 0;for(s.set(e,t),s.set(t,e);++f=t||C<0||f&&_>=s}function g(){var E=Nl();if(b(E))return w(E);a=setTimeout(g,v(E))}function w(E){return a=void 0,d&&r?p(E):(r=o=void 0,l)}function T(){a!==void 0&&clearTimeout(a),u=0,r=i=o=a=void 0}function y(){return a===void 0?l:w(Nl())}function O(){var E=Nl(),C=b(E);if(r=arguments,o=this,i=E,C){if(a===void 0)return h(i);if(f)return clearTimeout(a),a=setTimeout(g,t),p(i)}return a===void 0&&(a=setTimeout(g,t)),l}return O.cancel=T,O.flush=y,O}function pa(e,t,n){(n!==void 0&&!Ho(e[t],n)||n===void 0&&!(t in e))&&ai(e,t,n)}function I1(e){return Gn(e)&&Qr(e)}function ha(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function N1(e){return T0(e,tp(e))}function L1(e,t,n,r,o,s,l){var a=ha(e,n),i=ha(t,n),u=l.get(i);if(u){pa(e,n,u);return}var c=s?s(a,i,n+"",e,t,l):void 0,f=c===void 0;if(f){var d=$t(i),p=!d&&Ls(i),h=!d&&!p&&ci(i);c=i,d||p||h?$t(a)?c=a:I1(a)?c=h0(a):p?(f=!1,c=yw(i,!0)):h?(f=!1,c=Nw(i,!0)):c=[]:cw(i)||Oo(i)?(c=a,Oo(a)?c=N1(a):(!It(a)||li(a))&&(c=Lw(i))):f=!1}f&&(l.set(i,c),o(c,i,r,s,l),l.delete(i)),pa(e,n,c)}function fp(e,t,n,r,o){e!==t&&cp(t,function(s,l){if(o||(o=new on),It(s))L1(e,t,l,n,fp,r,o);else{var a=r?r(ha(e,l),s,l+"",e,t,o):void 0;a===void 0&&(a=s),pa(e,l,a)}},tp)}function k1(e,t){var n=-1,r=Qr(e)?Array(e.length):[];return M1(e,function(o,s,l){r[++n]=t(o,s,l)}),r}function F1(e,t){var n=$t(e)?Kd:k1;return n(e,x1(t))}function B1(e,t){return vi(F1(e,t),1)}function Hs(e){for(var t=-1,n=e==null?0:e.length,r={};++te===void 0,sn=e=>typeof e=="boolean",et=e=>typeof e=="number",bn=e=>typeof Element>"u"?!1:e instanceof Element,G1=e=>Se(e)?!Number.isNaN(Number(e)):!1,Sc=e=>Object.keys(e),q1=(e,t,n)=>({get value(){return Po(e,t,n)},set value(r){U1(e,t,r)}});class Y1 extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function qn(e,t){throw new Y1(`[${e}] ${t}`)}const pp=(e="")=>e.split(" ").filter(t=>!!t.trim()),hr=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},ar=(e,t)=>{!e||!t.trim()||e.classList.add(...pp(t))},vr=(e,t)=>{!e||!t.trim()||e.classList.remove(...pp(t))},X1=(e,t)=>{var n;if(!Ge||!e||!t)return"";let r=Jt(t);r==="float"&&(r="cssFloat");try{const o=e.style[r];if(o)return o;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[r]:""}catch{return e.style[r]}};function Hr(e,t="px"){if(!e)return"";if(et(e)||G1(e))return`${e}${t}`;if(Se(e))return e}let es;const J1=e=>{var t;if(!Ge)return 0;if(es!==void 0)return es;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const r=n.offsetWidth;n.style.overflow="scroll";const o=document.createElement("div");o.style.width="100%",n.appendChild(o);const s=o.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),es=r-s,es};/*! Element Plus Icons Vue v2.3.1 */var Z1=re({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),hp=Z1,Q1=re({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),gi=Q1,eC=re({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),tC=eC,nC=re({name:"CircleCheck",__name:"circle-check",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),ce("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"})]))}}),rC=nC,oC=re({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),vp=oC,sC=re({name:"CircleClose",__name:"circle-close",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),ce("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),gp=sC,lC=re({name:"Close",__name:"close",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),aC=lC,iC=re({name:"Hide",__name:"hide",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"}),ce("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z"})]))}}),uC=iC,cC=re({name:"InfoFilled",__name:"info-filled",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),mp=cC,fC=re({name:"Loading",__name:"loading",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),pl=fC,dC=re({name:"More",__name:"more",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}}),pC=dC,hC=re({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),yp=hC,vC=re({name:"View",__name:"view",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),gC=vC,mC=re({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,n)=>(N(),ie("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[ce("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),bp=mC;const wp="__epPropKey",Te=e=>e,yC=e=>Ie(e)&&!!e[wp],hl=(e,t)=>{if(!Ie(e)||yC(e))return e;const{values:n,required:r,default:o,type:s,validator:l}=e,i={type:s,required:!!r,validator:n||l?u=>{let c=!1,f=[];if(n&&(f=Array.from(n),Ae(e,"default")&&f.push(o),c||(c=f.includes(u))),l&&(c||(c=l(u))),!c&&f.length>0){const d=[...new Set(f)].map(p=>JSON.stringify(p)).join(", ");em(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${d}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[wp]:!0};return Ae(e,"default")&&(i.default=o),i},Ze=e=>Hs(Object.entries(e).map(([t,n])=>[t,hl(n,t)])),_t=Te([String,Object,Function]),Cp={Close:aC,SuccessFilled:yp,InfoFilled:mp,WarningFilled:bp,CircleCloseFilled:vp},Ds={success:yp,warning:bp,error:vp,info:mp},bC={validating:pl,success:rC,error:gp},Nt=(e,t)=>{if(e.install=n=>{for(const r of[e,...Object.values(t??{})])n.component(r.name,r)},t)for(const[n,r]of Object.entries(t))e[n]=r;return e},wC=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),xr=e=>(e.install=ot,e),gt={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},cn="update:modelValue",va="change",ga="input",_p=["","default","small","large"],Sp=e=>["",..._p].includes(e);var vs=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(vs||{});const gs=e=>{const t=pe(e)?e:[e],n=[];return t.forEach(r=>{var o;pe(r)?n.push(...gs(r)):an(r)&&pe(r.children)?n.push(...gs(r.children)):(n.push(r),an(r)&&((o=r.component)!=null&&o.subTree)&&n.push(...gs(r.component.subTree)))}),n},CC=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e),_C=e=>Ge?window.requestAnimationFrame(e):setTimeout(e,16),Bn=e=>e,SC=["class","style"],EC=/^on[A-Z]/,xC=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,r=A(()=>((n==null?void 0:n.value)||[]).concat(SC)),o=He();return A(o?()=>{var s;return Hs(Object.entries((s=o.proxy)==null?void 0:s.$attrs).filter(([l])=>!r.value.includes(l)&&!(t&&EC.test(l))))}:()=>({}))},mi=({from:e,replacement:t,scope:n,version:r,ref:o,type:s="API"},l)=>{ge(()=>m(l),a=>{},{immediate:!0})},TC=(e,t,n)=>{let r={offsetX:0,offsetY:0};const o=a=>{const i=a.clientX,u=a.clientY,{offsetX:c,offsetY:f}=r,d=e.value.getBoundingClientRect(),p=d.left,h=d.top,v=d.width,b=d.height,g=document.documentElement.clientWidth,w=document.documentElement.clientHeight,T=-p+c,y=-h+f,O=g-p-v+c,E=w-h-b+f,C=P=>{const B=Math.min(Math.max(c+P.clientX-i,T),O),W=Math.min(Math.max(f+P.clientY-u,y),E);r={offsetX:B,offsetY:W},e.value&&(e.value.style.transform=`translate(${Hr(B)}, ${Hr(W)})`)},_=()=>{document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",_)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",_)},s=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",o)},l=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",o)};Je(()=>{Wn(()=>{n.value?s():l()})}),mt(()=>{l()})};var OC={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const AC=e=>(t,n)=>MC(t,n,m(e)),MC=(e,t,n)=>Po(n,e,e).replace(/\{(\w+)\}/g,(r,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),PC=e=>{const t=A(()=>m(e).name),n=Xe(e)?e:M(e);return{lang:t,locale:n,t:AC(e)}},Ep=Symbol("localeContextKey"),yi=e=>{const t=e||_e(Ep,M());return PC(A(()=>t.value||OC))},ms="el",RC="is-",er=(e,t,n,r,o)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),r&&(s+=`__${r}`),o&&(s+=`--${o}`),s},xp=Symbol("namespaceContextKey"),bi=e=>{const t=e||(He()?_e(xp,M(ms)):M(ms));return A(()=>m(t)||ms)},Ee=(e,t)=>{const n=bi(t);return{namespace:n,b:(v="")=>er(n.value,e,v,"",""),e:v=>v?er(n.value,e,"",v,""):"",m:v=>v?er(n.value,e,"","",v):"",be:(v,b)=>v&&b?er(n.value,e,v,b,""):"",em:(v,b)=>v&&b?er(n.value,e,"",v,b):"",bm:(v,b)=>v&&b?er(n.value,e,v,"",b):"",bem:(v,b,g)=>v&&b&&g?er(n.value,e,v,b,g):"",is:(v,...b)=>{const g=b.length>=1?b[0]:!0;return v&&g?`${RC}${v}`:""},cssVar:v=>{const b={};for(const g in v)v[g]&&(b[`--${n.value}-${g}`]=v[g]);return b},cssVarName:v=>`--${n.value}-${v}`,cssVarBlock:v=>{const b={};for(const g in v)v[g]&&(b[`--${n.value}-${e}-${g}`]=v[g]);return b},cssVarBlockName:v=>`--${n.value}-${e}-${v}`}},$C=(e,t={})=>{Xe(e)||qn("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||Ee("popup"),r=Xf(()=>n.bm("parent","hidden"));if(!Ge||hr(document.body,r.value))return;let o=0,s=!1,l="0";const a=()=>{setTimeout(()=>{vr(document==null?void 0:document.body,r.value),s&&document&&(document.body.style.width=l)},200)};ge(e,i=>{if(!i){a();return}s=!hr(document.body,r.value),s&&(l=document.body.style.width),o=J1(n.namespace.value);const u=document.documentElement.clientHeight0&&(u||c==="scroll")&&s&&(document.body.style.width=`calc(100% - ${o}px)`),ar(document.body,r.value)}),Nf(()=>a())},IC=hl({type:Te(Boolean),default:null}),NC=hl({type:Te(Function)}),Tp=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,r=[t],o={[e]:IC,[n]:NC};return{useModelToggle:({indicator:l,toggleReason:a,shouldHideWhenRouteChanges:i,shouldProceed:u,onShow:c,onHide:f})=>{const d=He(),{emit:p}=d,h=d.props,v=A(()=>Ce(h[n])),b=A(()=>h[e]===null),g=C=>{l.value!==!0&&(l.value=!0,a&&(a.value=C),Ce(c)&&c(C))},w=C=>{l.value!==!1&&(l.value=!1,a&&(a.value=C),Ce(f)&&f(C))},T=C=>{if(h.disabled===!0||Ce(u)&&!u())return;const _=v.value&&Ge;_&&p(t,!0),(b.value||!_)&&g(C)},y=C=>{if(h.disabled===!0||!Ge)return;const _=v.value&&Ge;_&&p(t,!1),(b.value||!_)&&w(C)},O=C=>{sn(C)&&(h.disabled&&C?v.value&&p(t,!1):l.value!==C&&(C?g():w()))},E=()=>{l.value?y():T()};return ge(()=>h[e],O),i&&d.appContext.config.globalProperties.$route!==void 0&&ge(()=>({...d.proxy.$route}),()=>{i.value&&l.value&&y()}),Je(()=>{O(h[e])}),{hide:y,show:T,toggle:E,hasUpdateHandler:v}},useModelToggleProps:o,useModelToggleEmits:r}};Tp("modelValue");const Op=e=>{const t=He();return A(()=>{var n,r;return(r=(n=t==null?void 0:t.proxy)==null?void 0:n.$props)==null?void 0:r[e]})};var xt="top",jt="bottom",Wt="right",Tt="left",wi="auto",zo=[xt,jt,Wt,Tt],Dr="start",Ro="end",LC="clippingParents",Ap="viewport",lo="popper",kC="reference",Ec=zo.reduce(function(e,t){return e.concat([t+"-"+Dr,t+"-"+Ro])},[]),Ci=[].concat(zo,[wi]).reduce(function(e,t){return e.concat([t,t+"-"+Dr,t+"-"+Ro])},[]),FC="beforeRead",BC="read",HC="afterRead",DC="beforeMain",zC="main",jC="afterMain",WC="beforeWrite",VC="write",KC="afterWrite",UC=[FC,BC,HC,DC,zC,jC,WC,VC,KC];function fn(e){return e?(e.nodeName||"").toLowerCase():null}function en(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function zr(e){var t=en(e).Element;return e instanceof t||e instanceof Element}function zt(e){var t=en(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function _i(e){if(typeof ShadowRoot>"u")return!1;var t=en(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function GC(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},s=t.elements[n];!zt(s)||!fn(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(l){var a=o[l];a===!1?s.removeAttribute(l):s.setAttribute(l,a===!0?"":a)}))})}function qC(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],s=t.attributes[r]||{},l=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),a=l.reduce(function(i,u){return i[u]="",i},{});!zt(o)||!fn(o)||(Object.assign(o.style,a),Object.keys(s).forEach(function(i){o.removeAttribute(i)}))})}}var Mp={name:"applyStyles",enabled:!0,phase:"write",fn:GC,effect:qC,requires:["computeStyles"]};function ln(e){return e.split("-")[0]}var gr=Math.max,zs=Math.min,jr=Math.round;function Wr(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),r=1,o=1;if(zt(e)&&t){var s=e.offsetHeight,l=e.offsetWidth;l>0&&(r=jr(n.width)/l||1),s>0&&(o=jr(n.height)/s||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function Si(e){var t=Wr(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Pp(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&_i(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function wn(e){return en(e).getComputedStyle(e)}function YC(e){return["table","td","th"].indexOf(fn(e))>=0}function Yn(e){return((zr(e)?e.ownerDocument:e.document)||window.document).documentElement}function vl(e){return fn(e)==="html"?e:e.assignedSlot||e.parentNode||(_i(e)?e.host:null)||Yn(e)}function xc(e){return!zt(e)||wn(e).position==="fixed"?null:e.offsetParent}function XC(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&zt(e)){var r=wn(e);if(r.position==="fixed")return null}var o=vl(e);for(_i(o)&&(o=o.host);zt(o)&&["html","body"].indexOf(fn(o))<0;){var s=wn(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function jo(e){for(var t=en(e),n=xc(e);n&&YC(n)&&wn(n).position==="static";)n=xc(n);return n&&(fn(n)==="html"||fn(n)==="body"&&wn(n).position==="static")?t:n||XC(e)||t}function Ei(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function go(e,t,n){return gr(e,zs(t,n))}function JC(e,t,n){var r=go(e,t,n);return r>n?n:r}function Rp(){return{top:0,right:0,bottom:0,left:0}}function $p(e){return Object.assign({},Rp(),e)}function Ip(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var ZC=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,$p(typeof e!="number"?e:Ip(e,zo))};function QC(e){var t,n=e.state,r=e.name,o=e.options,s=n.elements.arrow,l=n.modifiersData.popperOffsets,a=ln(n.placement),i=Ei(a),u=[Tt,Wt].indexOf(a)>=0,c=u?"height":"width";if(!(!s||!l)){var f=ZC(o.padding,n),d=Si(s),p=i==="y"?xt:Tt,h=i==="y"?jt:Wt,v=n.rects.reference[c]+n.rects.reference[i]-l[i]-n.rects.popper[c],b=l[i]-n.rects.reference[i],g=jo(s),w=g?i==="y"?g.clientHeight||0:g.clientWidth||0:0,T=v/2-b/2,y=f[p],O=w-d[c]-f[h],E=w/2-d[c]/2+T,C=go(y,E,O),_=i;n.modifiersData[r]=(t={},t[_]=C,t.centerOffset=C-E,t)}}function e_(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||!Pp(t.elements.popper,o)||(t.elements.arrow=o))}var t_={name:"arrow",enabled:!0,phase:"main",fn:QC,effect:e_,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Vr(e){return e.split("-")[1]}var n_={top:"auto",right:"auto",bottom:"auto",left:"auto"};function r_(e){var t=e.x,n=e.y,r=window,o=r.devicePixelRatio||1;return{x:jr(t*o)/o||0,y:jr(n*o)/o||0}}function Tc(e){var t,n=e.popper,r=e.popperRect,o=e.placement,s=e.variation,l=e.offsets,a=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=l.x,p=d===void 0?0:d,h=l.y,v=h===void 0?0:h,b=typeof c=="function"?c({x:p,y:v}):{x:p,y:v};p=b.x,v=b.y;var g=l.hasOwnProperty("x"),w=l.hasOwnProperty("y"),T=Tt,y=xt,O=window;if(u){var E=jo(n),C="clientHeight",_="clientWidth";if(E===en(n)&&(E=Yn(n),wn(E).position!=="static"&&a==="absolute"&&(C="scrollHeight",_="scrollWidth")),E=E,o===xt||(o===Tt||o===Wt)&&s===Ro){y=jt;var P=f&&E===O&&O.visualViewport?O.visualViewport.height:E[C];v-=P-r.height,v*=i?1:-1}if(o===Tt||(o===xt||o===jt)&&s===Ro){T=Wt;var B=f&&E===O&&O.visualViewport?O.visualViewport.width:E[_];p-=B-r.width,p*=i?1:-1}}var W=Object.assign({position:a},u&&n_),I=c===!0?r_({x:p,y:v}):{x:p,y:v};if(p=I.x,v=I.y,i){var L;return Object.assign({},W,(L={},L[y]=w?"0":"",L[T]=g?"0":"",L.transform=(O.devicePixelRatio||1)<=1?"translate("+p+"px, "+v+"px)":"translate3d("+p+"px, "+v+"px, 0)",L))}return Object.assign({},W,(t={},t[y]=w?v+"px":"",t[T]=g?p+"px":"",t.transform="",t))}function o_(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,l=s===void 0?!0:s,a=n.roundOffsets,i=a===void 0?!0:a,u={placement:ln(t.placement),variation:Vr(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Tc(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:l,roundOffsets:i})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Tc(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Np={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:o_,data:{}},ts={passive:!0};function s_(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,s=o===void 0?!0:o,l=r.resize,a=l===void 0?!0:l,i=en(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,ts)}),a&&i.addEventListener("resize",n.update,ts),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,ts)}),a&&i.removeEventListener("resize",n.update,ts)}}var Lp={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:s_,data:{}},l_={left:"right",right:"left",bottom:"top",top:"bottom"};function ys(e){return e.replace(/left|right|bottom|top/g,function(t){return l_[t]})}var a_={start:"end",end:"start"};function Oc(e){return e.replace(/start|end/g,function(t){return a_[t]})}function xi(e){var t=en(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Ti(e){return Wr(Yn(e)).left+xi(e).scrollLeft}function i_(e){var t=en(e),n=Yn(e),r=t.visualViewport,o=n.clientWidth,s=n.clientHeight,l=0,a=0;return r&&(o=r.width,s=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(l=r.offsetLeft,a=r.offsetTop)),{width:o,height:s,x:l+Ti(e),y:a}}function u_(e){var t,n=Yn(e),r=xi(e),o=(t=e.ownerDocument)==null?void 0:t.body,s=gr(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=gr(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-r.scrollLeft+Ti(e),i=-r.scrollTop;return wn(o||n).direction==="rtl"&&(a+=gr(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:l,x:a,y:i}}function Oi(e){var t=wn(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function kp(e){return["html","body","#document"].indexOf(fn(e))>=0?e.ownerDocument.body:zt(e)&&Oi(e)?e:kp(vl(e))}function mo(e,t){var n;t===void 0&&(t=[]);var r=kp(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),s=en(r),l=o?[s].concat(s.visualViewport||[],Oi(r)?r:[]):r,a=t.concat(l);return o?a:a.concat(mo(vl(l)))}function ma(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function c_(e){var t=Wr(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ac(e,t){return t===Ap?ma(i_(e)):zr(t)?c_(t):ma(u_(Yn(e)))}function f_(e){var t=mo(vl(e)),n=["absolute","fixed"].indexOf(wn(e).position)>=0,r=n&&zt(e)?jo(e):e;return zr(r)?t.filter(function(o){return zr(o)&&Pp(o,r)&&fn(o)!=="body"}):[]}function d_(e,t,n){var r=t==="clippingParents"?f_(e):[].concat(t),o=[].concat(r,[n]),s=o[0],l=o.reduce(function(a,i){var u=Ac(e,i);return a.top=gr(u.top,a.top),a.right=zs(u.right,a.right),a.bottom=zs(u.bottom,a.bottom),a.left=gr(u.left,a.left),a},Ac(e,s));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function Fp(e){var t=e.reference,n=e.element,r=e.placement,o=r?ln(r):null,s=r?Vr(r):null,l=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,i;switch(o){case xt:i={x:l,y:t.y-n.height};break;case jt:i={x:l,y:t.y+t.height};break;case Wt:i={x:t.x+t.width,y:a};break;case Tt:i={x:t.x-n.width,y:a};break;default:i={x:t.x,y:t.y}}var u=o?Ei(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Dr:i[u]=i[u]-(t[c]/2-n[c]/2);break;case Ro:i[u]=i[u]+(t[c]/2-n[c]/2);break}}return i}function $o(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,s=n.boundary,l=s===void 0?LC:s,a=n.rootBoundary,i=a===void 0?Ap:a,u=n.elementContext,c=u===void 0?lo:u,f=n.altBoundary,d=f===void 0?!1:f,p=n.padding,h=p===void 0?0:p,v=$p(typeof h!="number"?h:Ip(h,zo)),b=c===lo?kC:lo,g=e.rects.popper,w=e.elements[d?b:c],T=d_(zr(w)?w:w.contextElement||Yn(e.elements.popper),l,i),y=Wr(e.elements.reference),O=Fp({reference:y,element:g,strategy:"absolute",placement:o}),E=ma(Object.assign({},g,O)),C=c===lo?E:y,_={top:T.top-C.top+v.top,bottom:C.bottom-T.bottom+v.bottom,left:T.left-C.left+v.left,right:C.right-T.right+v.right},P=e.modifiersData.offset;if(c===lo&&P){var B=P[o];Object.keys(_).forEach(function(W){var I=[Wt,jt].indexOf(W)>=0?1:-1,L=[xt,jt].indexOf(W)>=0?"y":"x";_[W]+=B[L]*I})}return _}function p_(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,s=n.rootBoundary,l=n.padding,a=n.flipVariations,i=n.allowedAutoPlacements,u=i===void 0?Ci:i,c=Vr(r),f=c?a?Ec:Ec.filter(function(h){return Vr(h)===c}):zo,d=f.filter(function(h){return u.indexOf(h)>=0});d.length===0&&(d=f);var p=d.reduce(function(h,v){return h[v]=$o(e,{placement:v,boundary:o,rootBoundary:s,padding:l})[ln(v)],h},{});return Object.keys(p).sort(function(h,v){return p[h]-p[v]})}function h_(e){if(ln(e)===wi)return[];var t=ys(e);return[Oc(e),t,Oc(t)]}function v_(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,a=l===void 0?!0:l,i=n.fallbackPlacements,u=n.padding,c=n.boundary,f=n.rootBoundary,d=n.altBoundary,p=n.flipVariations,h=p===void 0?!0:p,v=n.allowedAutoPlacements,b=t.options.placement,g=ln(b),w=g===b,T=i||(w||!h?[ys(b)]:h_(b)),y=[b].concat(T).reduce(function(Re,De){return Re.concat(ln(De)===wi?p_(t,{placement:De,boundary:c,rootBoundary:f,padding:u,flipVariations:h,allowedAutoPlacements:v}):De)},[]),O=t.rects.reference,E=t.rects.popper,C=new Map,_=!0,P=y[0],B=0;B=0,G=V?"width":"height",J=$o(t,{placement:W,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),H=V?L?Wt:Tt:L?jt:xt;O[G]>E[G]&&(H=ys(H));var te=ys(H),k=[];if(s&&k.push(J[I]<=0),a&&k.push(J[H]<=0,J[te]<=0),k.every(function(Re){return Re})){P=W,_=!1;break}C.set(W,k)}if(_)for(var z=h?3:1,oe=function(Re){var De=y.find(function(Ne){var F=C.get(Ne);if(F)return F.slice(0,Re).every(function(Y){return Y})});if(De)return P=De,"break"},se=z;se>0;se--){var xe=oe(se);if(xe==="break")break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}}var g_={name:"flip",enabled:!0,phase:"main",fn:v_,requiresIfExists:["offset"],data:{_skip:!1}};function Mc(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Pc(e){return[xt,Wt,jt,Tt].some(function(t){return e[t]>=0})}function m_(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,s=t.modifiersData.preventOverflow,l=$o(t,{elementContext:"reference"}),a=$o(t,{altBoundary:!0}),i=Mc(l,r),u=Mc(a,o,s),c=Pc(i),f=Pc(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}var y_={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:m_};function b_(e,t,n){var r=ln(e),o=[Tt,xt].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,l=s[0],a=s[1];return l=l||0,a=(a||0)*o,[Tt,Wt].indexOf(r)>=0?{x:a,y:l}:{x:l,y:a}}function w_(e){var t=e.state,n=e.options,r=e.name,o=n.offset,s=o===void 0?[0,0]:o,l=Ci.reduce(function(c,f){return c[f]=b_(f,t.rects,s),c},{}),a=l[t.placement],i=a.x,u=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=l}var C_={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:w_};function __(e){var t=e.state,n=e.name;t.modifiersData[n]=Fp({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var Bp={name:"popperOffsets",enabled:!0,phase:"read",fn:__,data:{}};function S_(e){return e==="x"?"y":"x"}function E_(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,a=l===void 0?!1:l,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,f=n.padding,d=n.tether,p=d===void 0?!0:d,h=n.tetherOffset,v=h===void 0?0:h,b=$o(t,{boundary:i,rootBoundary:u,padding:f,altBoundary:c}),g=ln(t.placement),w=Vr(t.placement),T=!w,y=Ei(g),O=S_(y),E=t.modifiersData.popperOffsets,C=t.rects.reference,_=t.rects.popper,P=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,B=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),W=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(E){if(s){var L,V=y==="y"?xt:Tt,G=y==="y"?jt:Wt,J=y==="y"?"height":"width",H=E[y],te=H+b[V],k=H-b[G],z=p?-_[J]/2:0,oe=w===Dr?C[J]:_[J],se=w===Dr?-_[J]:-C[J],xe=t.elements.arrow,Re=p&&xe?Si(xe):{width:0,height:0},De=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Rp(),Ne=De[V],F=De[G],Y=go(0,C[J],Re[J]),Z=T?C[J]/2-z-Y-Ne-B.mainAxis:oe-Y-Ne-B.mainAxis,ae=T?-C[J]/2+z+Y+F+B.mainAxis:se+Y+F+B.mainAxis,Oe=t.elements.arrow&&jo(t.elements.arrow),Be=Oe?y==="y"?Oe.clientTop||0:Oe.clientLeft||0:0,S=(L=W==null?void 0:W[y])!=null?L:0,x=H+Z-S-Be,R=H+ae-S,j=go(p?zs(te,x):te,H,p?gr(k,R):k);E[y]=j,I[y]=j-H}if(a){var D,X=y==="x"?xt:Tt,ne=y==="x"?jt:Wt,q=E[O],Q=O==="y"?"height":"width",U=q+b[X],ue=q-b[ne],ve=[xt,Tt].indexOf(g)!==-1,$=(D=W==null?void 0:W[O])!=null?D:0,ee=ve?U:q-C[Q]-_[Q]-$+B.altAxis,me=ve?q+C[Q]+_[Q]-$-B.altAxis:ue,Le=p&&ve?JC(ee,q,me):go(p?ee:U,q,p?me:ue);E[O]=Le,I[O]=Le-q}t.modifiersData[r]=I}}var x_={name:"preventOverflow",enabled:!0,phase:"main",fn:E_,requiresIfExists:["offset"]};function T_(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function O_(e){return e===en(e)||!zt(e)?xi(e):T_(e)}function A_(e){var t=e.getBoundingClientRect(),n=jr(t.width)/e.offsetWidth||1,r=jr(t.height)/e.offsetHeight||1;return n!==1||r!==1}function M_(e,t,n){n===void 0&&(n=!1);var r=zt(t),o=zt(t)&&A_(t),s=Yn(t),l=Wr(e,o),a={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(r||!r&&!n)&&((fn(t)!=="body"||Oi(s))&&(a=O_(t)),zt(t)?(i=Wr(t,!0),i.x+=t.clientLeft,i.y+=t.clientTop):s&&(i.x=Ti(s))),{x:l.left+a.scrollLeft-i.x,y:l.top+a.scrollTop-i.y,width:l.width,height:l.height}}function P_(e){var t=new Map,n=new Set,r=[];e.forEach(function(s){t.set(s.name,s)});function o(s){n.add(s.name);var l=[].concat(s.requires||[],s.requiresIfExists||[]);l.forEach(function(a){if(!n.has(a)){var i=t.get(a);i&&o(i)}}),r.push(s)}return e.forEach(function(s){n.has(s.name)||o(s)}),r}function R_(e){var t=P_(e);return UC.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function $_(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function I_(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Rc={placement:"bottom",modifiers:[],strategy:"absolute"};function $c(){for(var e=arguments.length,t=new Array(e),n=0;n{const r={name:"updateState",enabled:!0,phase:"write",fn:({state:i})=>{const u=B_(i);Object.assign(l.value,u)},requires:["computeStyles"]},o=A(()=>{const{onFirstUpdate:i,placement:u,strategy:c,modifiers:f}=m(n);return{onFirstUpdate:i,placement:u||"bottom",strategy:c||"absolute",modifiers:[...f||[],r,{name:"applyStyles",enabled:!1}]}}),s=pr(),l=M({styles:{popper:{position:m(o).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),a=()=>{s.value&&(s.value.destroy(),s.value=void 0)};return ge(o,i=>{const u=m(s);u&&u.setOptions(i)},{deep:!0}),ge([e,t],([i,u])=>{a(),!(!i||!u)&&(s.value=k_(i,u,m(o)))}),mt(()=>{a()}),{state:A(()=>{var i;return{...((i=m(s))==null?void 0:i.state)||{}}}),styles:A(()=>m(l).styles),attributes:A(()=>m(l).attributes),update:()=>{var i;return(i=m(s))==null?void 0:i.update()},forceUpdate:()=>{var i;return(i=m(s))==null?void 0:i.forceUpdate()},instanceRef:A(()=>m(s))}};function B_(e){const t=Object.keys(e.elements),n=Hs(t.map(o=>[o,e.styles[o]||{}])),r=Hs(t.map(o=>[o,e.attributes[o]]));return{styles:n,attributes:r}}const Hp=e=>{if(!e)return{onClick:ot,onMousedown:ot,onMouseup:ot};let t=!1,n=!1;return{onClick:l=>{t&&n&&e(l),t=n=!1},onMousedown:l=>{t=l.target===l.currentTarget},onMouseup:l=>{n=l.target===l.currentTarget}}};function Ic(){let e;const t=(r,o)=>{n(),e=window.setTimeout(r,o)},n=()=>window.clearTimeout(e);return Bo(()=>n()),{registerTimeout:t,cancelTimeout:n}}const Nc={prefix:Math.floor(Math.random()*1e4),current:0},H_=Symbol("elIdInjection"),Dp=()=>He()?_e(H_,Nc):Nc,js=e=>{const t=Dp(),n=bi();return A(()=>m(e)||`${n.value}-id-${t.prefix}-${t.current++}`)};let Or=[];const Lc=e=>{const t=e;t.key===gt.esc&&Or.forEach(n=>n(t))},D_=e=>{Je(()=>{Or.length===0&&document.addEventListener("keydown",Lc),Ge&&Or.push(e)}),mt(()=>{Or=Or.filter(t=>t!==e),Or.length===0&&Ge&&document.removeEventListener("keydown",Lc)})};let kc;const zp=()=>{const e=bi(),t=Dp(),n=A(()=>`${e.value}-popper-container-${t.prefix}`),r=A(()=>`#${n.value}`);return{id:n,selector:r}},z_=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},j_=()=>{const{id:e,selector:t}=zp();return nl(()=>{Ge&&!kc&&!document.body.querySelector(t.value)&&(kc=z_(e.value))}),{id:e,selector:t}},W_=Ze({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),V_=({showAfter:e,hideAfter:t,autoClose:n,open:r,close:o})=>{const{registerTimeout:s}=Ic(),{registerTimeout:l,cancelTimeout:a}=Ic();return{onOpen:c=>{s(()=>{r(c);const f=m(n);et(f)&&f>0&&l(()=>{o(c)},f)},m(e))},onClose:c=>{a(),s(()=>{o(c)},m(t))}}},jp=Symbol("elForwardRef"),K_=e=>{ut(jp,{setForwardRef:n=>{e.value=n}})},U_=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),Fc=M(0),Wp=2e3,Vp=Symbol("zIndexContextKey"),Kp=e=>{const t=e||(He()?_e(Vp,void 0):void 0),n=A(()=>{const s=m(t);return et(s)?s:Wp}),r=A(()=>n.value+Fc.value);return{initialZIndex:n,currentZIndex:r,nextZIndex:()=>(Fc.value++,r.value)}};function G_(e){const t=M();function n(){if(e.value==null)return;const{selectionStart:o,selectionEnd:s,value:l}=e.value;if(o==null||s==null)return;const a=l.slice(0,Math.max(0,o)),i=l.slice(Math.max(0,s));t.value={selectionStart:o,selectionEnd:s,value:l,beforeTxt:a,afterTxt:i}}function r(){if(e.value==null||t.value==null)return;const{value:o}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:a}=t.value;if(s==null||l==null||a==null)return;let i=o.length;if(o.endsWith(l))i=o.length-l.length;else if(o.startsWith(s))i=s.length;else{const u=s[a-1],c=o.indexOf(u,a-1);c!==-1&&(i=c+1)}e.value.setSelectionRange(i,i)}return[n,r]}const Wo=hl({type:String,values:_p,required:!1}),Up=Symbol("size"),q_=()=>{const e=_e(Up,{});return A(()=>m(e.size)||"")};function Y_(e,{afterFocus:t,beforeBlur:n,afterBlur:r}={}){const o=He(),{emit:s}=o,l=pr(),a=M(!1),i=f=>{a.value||(a.value=!0,s("focus",f),t==null||t())},u=f=>{var d;Ce(n)&&n(f)||f.relatedTarget&&((d=l.value)!=null&&d.contains(f.relatedTarget))||(a.value=!1,s("blur",f),r==null||r())},c=()=>{var f;(f=e.value)==null||f.focus()};return ge(l,f=>{f&&f.setAttribute("tabindex","-1")}),Dt(l,"click",c),{wrapperRef:l,isFocused:a,handleFocus:i,handleBlur:u}}const Gp=Symbol(),Ws=M();function Mi(e,t=void 0){const n=He()?_e(Gp,Ws):Ws;return e?A(()=>{var r,o;return(o=(r=n.value)==null?void 0:r[e])!=null?o:t}):n}function qp(e,t){const n=Mi(),r=Ee(e,A(()=>{var a;return((a=n.value)==null?void 0:a.namespace)||ms})),o=yi(A(()=>{var a;return(a=n.value)==null?void 0:a.locale})),s=Kp(A(()=>{var a;return((a=n.value)==null?void 0:a.zIndex)||Wp})),l=A(()=>{var a;return m(t)||((a=n.value)==null?void 0:a.size)||""});return X_(A(()=>m(n)||{})),{ns:r,locale:o,zIndex:s,size:l}}const X_=(e,t,n=!1)=>{var r;const o=!!He(),s=o?Mi():void 0,l=(r=t==null?void 0:t.provide)!=null?r:o?ut:void 0;if(!l)return;const a=A(()=>{const i=m(e);return s!=null&&s.value?J_(s.value,i):i});return l(Gp,a),l(Ep,A(()=>a.value.locale)),l(xp,A(()=>a.value.namespace)),l(Vp,A(()=>a.value.zIndex)),l(Up,{size:A(()=>a.value.size||"")}),(n||!Ws.value)&&(Ws.value=a.value),a},J_=(e,t)=>{var n;const r=[...new Set([...Sc(e),...Sc(t)])],o={};for(const s of r)o[s]=(n=t[s])!=null?n:e[s];return o},Bc={};var ze=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};const Z_=Ze({size:{type:Te([Number,String])},color:{type:String}}),Q_=re({name:"ElIcon",inheritAttrs:!1}),eS=re({...Q_,props:Z_,setup(e){const t=e,n=Ee("icon"),r=A(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:Br(o)?void 0:Hr(o),"--color":s}});return(o,s)=>(N(),ie("i",Yt({class:m(n).b(),style:m(r)},o.$attrs),[Me(o.$slots,"default")],16))}});var tS=ze(eS,[["__file","icon.vue"]]);const rt=Nt(tS),Pi=Symbol("formContextKey"),Vs=Symbol("formItemContextKey"),Kr=(e,t={})=>{const n=M(void 0),r=t.prop?n:Op("size"),o=t.global?n:q_(),s=t.form?{size:void 0}:_e(Pi,void 0),l=t.formItem?{size:void 0}:_e(Vs,void 0);return A(()=>r.value||m(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||o.value||"")},Vo=e=>{const t=Op("disabled"),n=_e(Pi,void 0);return A(()=>t.value||m(e)||(n==null?void 0:n.disabled)||!1)},eo=()=>{const e=_e(Pi,void 0),t=_e(Vs,void 0);return{form:e,formItem:t}},gl=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:r})=>{n||(n=M(!1)),r||(r=M(!1));const o=M();let s;const l=A(()=>{var a;return!!(!e.label&&t&&t.inputIds&&((a=t.inputIds)==null?void 0:a.length)<=1)});return Je(()=>{s=ge([Bt(e,"id"),n],([a,i])=>{const u=a??(i?void 0:js().value);u!==o.value&&(t!=null&&t.removeInputId&&(o.value&&t.removeInputId(o.value),!(r!=null&&r.value)&&!i&&u&&t.addInputId(u)),o.value=u)},{immediate:!0})}),Jr(()=>{s&&s(),t!=null&&t.removeInputId&&o.value&&t.removeInputId(o.value)}),{isLabeledByFormItem:l,inputId:o}};let Vt;const nS=` - height:0 !important; - visibility:hidden !important; - ${Py()?"":"overflow:hidden !important;"} - position:absolute !important; - z-index:-1000 !important; - top:0 !important; - right:0 !important; -`,rS=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function oS(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),r=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),o=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:rS.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:r,borderSize:o,boxSizing:n}}function Hc(e,t=1,n){var r;Vt||(Vt=document.createElement("textarea"),document.body.appendChild(Vt));const{paddingSize:o,borderSize:s,boxSizing:l,contextStyle:a}=oS(e);Vt.setAttribute("style",`${a};${nS}`),Vt.value=e.value||e.placeholder||"";let i=Vt.scrollHeight;const u={};l==="border-box"?i=i+s:l==="content-box"&&(i=i-o),Vt.value="";const c=Vt.scrollHeight-o;if(et(t)){let f=c*t;l==="border-box"&&(f=f+o+s),i=Math.max(f,i),u.minHeight=`${f}px`}if(et(n)){let f=c*n;l==="border-box"&&(f=f+o+s),i=Math.min(f,i)}return u.height=`${i}px`,(r=Vt.parentNode)==null||r.removeChild(Vt),Vt=void 0,u}const sS=Ze({id:{type:String,default:void 0},size:Wo,disabled:Boolean,modelValue:{type:Te([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:Te([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:_t},prefixIcon:{type:_t},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Te([Object,Array,String]),default:()=>Bn({})},autofocus:{type:Boolean,default:!1}}),lS={[cn]:e=>Se(e),input:e=>Se(e),change:e=>Se(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},aS=["role"],iS=["id","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus"],uS=["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus"],cS=re({name:"ElInput",inheritAttrs:!1}),fS=re({...cS,props:sS,emits:lS,setup(e,{expose:t,emit:n}){const r=e,o=Cg(),s=rl(),l=A(()=>{const $={};return r.containerRole==="combobox"&&($["aria-haspopup"]=o["aria-haspopup"],$["aria-owns"]=o["aria-owns"],$["aria-expanded"]=o["aria-expanded"]),$}),a=A(()=>[r.type==="textarea"?b.b():v.b(),v.m(p.value),v.is("disabled",h.value),v.is("exceed",Re.value),{[v.b("group")]:s.prepend||s.append,[v.bm("group","append")]:s.append,[v.bm("group","prepend")]:s.prepend,[v.m("prefix")]:s.prefix||r.prefixIcon,[v.m("suffix")]:s.suffix||r.suffixIcon||r.clearable||r.showPassword,[v.bm("suffix","password-clear")]:z.value&&oe.value},o.class]),i=A(()=>[v.e("wrapper"),v.is("focus",B.value)]),u=xC({excludeKeys:A(()=>Object.keys(l.value))}),{form:c,formItem:f}=eo(),{inputId:d}=gl(r,{formItemContext:f}),p=Kr(),h=Vo(),v=Ee("input"),b=Ee("textarea"),g=pr(),w=pr(),T=M(!1),y=M(!1),O=M(!1),E=M(),C=pr(r.inputStyle),_=A(()=>g.value||w.value),{wrapperRef:P,isFocused:B,handleFocus:W,handleBlur:I}=Y_(_,{afterBlur(){var $;r.validateEvent&&(($=f==null?void 0:f.validate)==null||$.call(f,"blur").catch(ee=>void 0))}}),L=A(()=>{var $;return($=c==null?void 0:c.statusIcon)!=null?$:!1}),V=A(()=>(f==null?void 0:f.validateState)||""),G=A(()=>V.value&&bC[V.value]),J=A(()=>O.value?gC:uC),H=A(()=>[o.style]),te=A(()=>[r.inputStyle,C.value,{resize:r.resize}]),k=A(()=>yr(r.modelValue)?"":String(r.modelValue)),z=A(()=>r.clearable&&!h.value&&!r.readonly&&!!k.value&&(B.value||T.value)),oe=A(()=>r.showPassword&&!h.value&&!r.readonly&&!!k.value&&(!!k.value||B.value)),se=A(()=>r.showWordLimit&&!!r.maxlength&&(r.type==="text"||r.type==="textarea")&&!h.value&&!r.readonly&&!r.showPassword),xe=A(()=>k.value.length),Re=A(()=>!!se.value&&xe.value>Number(r.maxlength)),De=A(()=>!!s.suffix||!!r.suffixIcon||z.value||r.showPassword||se.value||!!V.value&&L.value),[Ne,F]=G_(g);Fr(w,$=>{if(ae(),!se.value||r.resize!=="both")return;const ee=$[0],{width:me}=ee.contentRect;E.value={right:`calc(100% - ${me+15+6}px)`}});const Y=()=>{const{type:$,autosize:ee}=r;if(!(!Ge||$!=="textarea"||!w.value))if(ee){const me=Ie(ee)?ee.minRows:void 0,Le=Ie(ee)?ee.maxRows:void 0,Ve=Hc(w.value,me,Le);C.value={overflowY:"hidden",...Ve},We(()=>{w.value.offsetHeight,C.value=Ve})}else C.value={minHeight:Hc(w.value).minHeight}},ae=($=>{let ee=!1;return()=>{var me;if(ee||!r.autosize)return;((me=w.value)==null?void 0:me.offsetParent)===null||($(),ee=!0)}})(Y),Oe=()=>{const $=_.value,ee=r.formatter?r.formatter(k.value):k.value;!$||$.value===ee||($.value=ee)},Be=async $=>{Ne();let{value:ee}=$.target;if(r.formatter&&(ee=r.parser?r.parser(ee):ee),!y.value){if(ee===k.value){Oe();return}n(cn,ee),n("input",ee),await We(),Oe(),F()}},S=$=>{n("change",$.target.value)},x=$=>{n("compositionstart",$),y.value=!0},R=$=>{var ee;n("compositionupdate",$);const me=(ee=$.target)==null?void 0:ee.value,Le=me[me.length-1]||"";y.value=!CC(Le)},j=$=>{n("compositionend",$),y.value&&(y.value=!1,Be($))},D=()=>{O.value=!O.value,X()},X=async()=>{var $;await We(),($=_.value)==null||$.focus()},ne=()=>{var $;return($=_.value)==null?void 0:$.blur()},q=$=>{T.value=!1,n("mouseleave",$)},Q=$=>{T.value=!0,n("mouseenter",$)},U=$=>{n("keydown",$)},ue=()=>{var $;($=_.value)==null||$.select()},ve=()=>{n(cn,""),n("change",""),n("clear"),n("input","")};return ge(()=>r.modelValue,()=>{var $;We(()=>Y()),r.validateEvent&&(($=f==null?void 0:f.validate)==null||$.call(f,"change").catch(ee=>void 0))}),ge(k,()=>Oe()),ge(()=>r.type,async()=>{await We(),Oe(),Y()}),Je(()=>{!r.formatter&&r.parser,Oe(),We(Y)}),t({input:g,textarea:w,ref:_,textareaStyle:te,autosize:Bt(r,"autosize"),focus:X,blur:ne,select:ue,clear:ve,resizeTextarea:Y}),($,ee)=>it((N(),ie("div",Yt(m(l),{class:m(a),style:m(H),role:$.containerRole,onMouseenter:Q,onMouseleave:q}),[be(" input "),$.type!=="textarea"?(N(),ie(Ue,{key:0},[be(" prepend slot "),$.$slots.prepend?(N(),ie("div",{key:0,class:K(m(v).be("group","prepend"))},[Me($.$slots,"prepend")],2)):be("v-if",!0),ce("div",{ref_key:"wrapperRef",ref:P,class:K(m(i))},[be(" prefix slot "),$.$slots.prefix||$.prefixIcon?(N(),ie("span",{key:0,class:K(m(v).e("prefix"))},[ce("span",{class:K(m(v).e("prefix-inner"))},[Me($.$slots,"prefix"),$.prefixIcon?(N(),he(m(rt),{key:0,class:K(m(v).e("icon"))},{default:de(()=>[(N(),he(nt($.prefixIcon)))]),_:1},8,["class"])):be("v-if",!0)],2)],2)):be("v-if",!0),ce("input",Yt({id:m(d),ref_key:"input",ref:g,class:m(v).e("inner")},m(u),{minlength:$.minlength,maxlength:$.maxlength,type:$.showPassword?O.value?"text":"password":$.type,disabled:m(h),readonly:$.readonly,autocomplete:$.autocomplete,tabindex:$.tabindex,"aria-label":$.label,placeholder:$.placeholder,style:$.inputStyle,form:$.form,autofocus:$.autofocus,onCompositionstart:x,onCompositionupdate:R,onCompositionend:j,onInput:Be,onFocus:ee[0]||(ee[0]=(...me)=>m(W)&&m(W)(...me)),onBlur:ee[1]||(ee[1]=(...me)=>m(I)&&m(I)(...me)),onChange:S,onKeydown:U}),null,16,iS),be(" suffix slot "),m(De)?(N(),ie("span",{key:1,class:K(m(v).e("suffix"))},[ce("span",{class:K(m(v).e("suffix-inner"))},[!m(z)||!m(oe)||!m(se)?(N(),ie(Ue,{key:0},[Me($.$slots,"suffix"),$.suffixIcon?(N(),he(m(rt),{key:0,class:K(m(v).e("icon"))},{default:de(()=>[(N(),he(nt($.suffixIcon)))]),_:1},8,["class"])):be("v-if",!0)],64)):be("v-if",!0),m(z)?(N(),he(m(rt),{key:1,class:K([m(v).e("icon"),m(v).e("clear")]),onMousedown:Gt(m(ot),["prevent"]),onClick:ve},{default:de(()=>[fe(m(gp))]),_:1},8,["class","onMousedown"])):be("v-if",!0),m(oe)?(N(),he(m(rt),{key:2,class:K([m(v).e("icon"),m(v).e("password")]),onClick:D},{default:de(()=>[(N(),he(nt(m(J))))]),_:1},8,["class"])):be("v-if",!0),m(se)?(N(),ie("span",{key:3,class:K(m(v).e("count"))},[ce("span",{class:K(m(v).e("count-inner"))},Qe(m(xe))+" / "+Qe($.maxlength),3)],2)):be("v-if",!0),m(V)&&m(G)&&m(L)?(N(),he(m(rt),{key:4,class:K([m(v).e("icon"),m(v).e("validateIcon"),m(v).is("loading",m(V)==="validating")])},{default:de(()=>[(N(),he(nt(m(G))))]),_:1},8,["class"])):be("v-if",!0)],2)],2)):be("v-if",!0)],2),be(" append slot "),$.$slots.append?(N(),ie("div",{key:1,class:K(m(v).be("group","append"))},[Me($.$slots,"append")],2)):be("v-if",!0)],64)):(N(),ie(Ue,{key:1},[be(" textarea "),ce("textarea",Yt({id:m(d),ref_key:"textarea",ref:w,class:m(b).e("inner")},m(u),{minlength:$.minlength,maxlength:$.maxlength,tabindex:$.tabindex,disabled:m(h),readonly:$.readonly,autocomplete:$.autocomplete,style:m(te),"aria-label":$.label,placeholder:$.placeholder,form:$.form,autofocus:$.autofocus,onCompositionstart:x,onCompositionupdate:R,onCompositionend:j,onInput:Be,onFocus:ee[2]||(ee[2]=(...me)=>m(W)&&m(W)(...me)),onBlur:ee[3]||(ee[3]=(...me)=>m(I)&&m(I)(...me)),onChange:S,onKeydown:U}),null,16,uS),m(se)?(N(),ie("span",{key:0,style:tt(E.value),class:K(m(v).e("count"))},Qe(m(xe))+" / "+Qe($.maxlength),7)):be("v-if",!0)],64))],16,aS)),[[Xt,$.type!=="hidden"]])}});var dS=ze(fS,[["__file","input.vue"]]);const Yp=Nt(dS),Mr=4,pS={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},hS=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),Xp=Symbol("scrollbarContextKey"),vS=Ze({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),gS="Thumb",mS=re({__name:"thumb",props:vS,setup(e){const t=e,n=_e(Xp),r=Ee("scrollbar");n||qn(gS,"can not inject scrollbar context");const o=M(),s=M(),l=M({}),a=M(!1);let i=!1,u=!1,c=Ge?document.onselectstart:null;const f=A(()=>pS[t.vertical?"vertical":"horizontal"]),d=A(()=>hS({size:t.size,move:t.move,bar:f.value})),p=A(()=>o.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/s.value[f.value.offset]),h=E=>{var C;if(E.stopPropagation(),E.ctrlKey||[1,2].includes(E.button))return;(C=window.getSelection())==null||C.removeAllRanges(),b(E);const _=E.currentTarget;_&&(l.value[f.value.axis]=_[f.value.offset]-(E[f.value.client]-_.getBoundingClientRect()[f.value.direction]))},v=E=>{if(!s.value||!o.value||!n.wrapElement)return;const C=Math.abs(E.target.getBoundingClientRect()[f.value.direction]-E[f.value.client]),_=s.value[f.value.offset]/2,P=(C-_)*100*p.value/o.value[f.value.offset];n.wrapElement[f.value.scroll]=P*n.wrapElement[f.value.scrollSize]/100},b=E=>{E.stopImmediatePropagation(),i=!0,document.addEventListener("mousemove",g),document.addEventListener("mouseup",w),c=document.onselectstart,document.onselectstart=()=>!1},g=E=>{if(!o.value||!s.value||i===!1)return;const C=l.value[f.value.axis];if(!C)return;const _=(o.value.getBoundingClientRect()[f.value.direction]-E[f.value.client])*-1,P=s.value[f.value.offset]-C,B=(_-P)*100*p.value/o.value[f.value.offset];n.wrapElement[f.value.scroll]=B*n.wrapElement[f.value.scrollSize]/100},w=()=>{i=!1,l.value[f.value.axis]=0,document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",w),O(),u&&(a.value=!1)},T=()=>{u=!1,a.value=!!t.size},y=()=>{u=!0,a.value=i};mt(()=>{O(),document.removeEventListener("mouseup",w)});const O=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return Dt(Bt(n,"scrollbarElement"),"mousemove",T),Dt(Bt(n,"scrollbarElement"),"mouseleave",y),(E,C)=>(N(),he(_n,{name:m(r).b("fade"),persisted:""},{default:de(()=>[it(ce("div",{ref_key:"instance",ref:o,class:K([m(r).e("bar"),m(r).is(m(f).key)]),onMousedown:v},[ce("div",{ref_key:"thumb",ref:s,class:K(m(r).e("thumb")),style:tt(m(d)),onMousedown:h},null,38)],34),[[Xt,E.always||a.value]])]),_:1},8,["name"]))}});var Dc=ze(mS,[["__file","thumb.vue"]]);const yS=Ze({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),bS=re({__name:"bar",props:yS,setup(e,{expose:t}){const n=e,r=M(0),o=M(0);return t({handleScroll:l=>{if(l){const a=l.offsetHeight-Mr,i=l.offsetWidth-Mr;o.value=l.scrollTop*100/a*n.ratioY,r.value=l.scrollLeft*100/i*n.ratioX}}}),(l,a)=>(N(),ie(Ue,null,[fe(Dc,{move:r.value,ratio:l.ratioX,size:l.width,always:l.always},null,8,["move","ratio","size","always"]),fe(Dc,{move:o.value,ratio:l.ratioY,size:l.height,vertical:"",always:l.always},null,8,["move","ratio","size","always"])],64))}});var wS=ze(bS,[["__file","bar.vue"]]);const CS=Ze({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Te([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),_S={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(et)},SS="ElScrollbar",ES=re({name:SS}),xS=re({...ES,props:CS,emits:_S,setup(e,{expose:t,emit:n}){const r=e,o=Ee("scrollbar");let s,l;const a=M(),i=M(),u=M(),c=M("0"),f=M("0"),d=M(),p=M(1),h=M(1),v=A(()=>{const C={};return r.height&&(C.height=Hr(r.height)),r.maxHeight&&(C.maxHeight=Hr(r.maxHeight)),[r.wrapStyle,C]}),b=A(()=>[r.wrapClass,o.e("wrap"),{[o.em("wrap","hidden-default")]:!r.native}]),g=A(()=>[o.e("view"),r.viewClass]),w=()=>{var C;i.value&&((C=d.value)==null||C.handleScroll(i.value),n("scroll",{scrollTop:i.value.scrollTop,scrollLeft:i.value.scrollLeft}))};function T(C,_){Ie(C)?i.value.scrollTo(C):et(C)&&et(_)&&i.value.scrollTo(C,_)}const y=C=>{et(C)&&(i.value.scrollTop=C)},O=C=>{et(C)&&(i.value.scrollLeft=C)},E=()=>{if(!i.value)return;const C=i.value.offsetHeight-Mr,_=i.value.offsetWidth-Mr,P=C**2/i.value.scrollHeight,B=_**2/i.value.scrollWidth,W=Math.max(P,r.minSize),I=Math.max(B,r.minSize);p.value=P/(C-P)/(W/(C-W)),h.value=B/(_-B)/(I/(_-I)),f.value=W+Mrr.noresize,C=>{C?(s==null||s(),l==null||l()):({stop:s}=Fr(u,E),l=Dt("resize",E))},{immediate:!0}),ge(()=>[r.maxHeight,r.height],()=>{r.native||We(()=>{var C;E(),i.value&&((C=d.value)==null||C.handleScroll(i.value))})}),ut(Xp,dn({scrollbarElement:a,wrapElement:i})),Je(()=>{r.native||We(()=>{E()})}),Qa(()=>E()),t({wrapRef:i,update:E,scrollTo:T,setScrollTop:y,setScrollLeft:O,handleScroll:w}),(C,_)=>(N(),ie("div",{ref_key:"scrollbarRef",ref:a,class:K(m(o).b())},[ce("div",{ref_key:"wrapRef",ref:i,class:K(m(b)),style:tt(m(v)),onScroll:w},[(N(),he(nt(C.tag),{id:C.id,ref_key:"resizeRef",ref:u,class:K(m(g)),style:tt(C.viewStyle),role:C.role,"aria-label":C.ariaLabel,"aria-orientation":C.ariaOrientation},{default:de(()=>[Me(C.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),C.native?be("v-if",!0):(N(),he(wS,{key:0,ref_key:"barRef",ref:d,height:f.value,width:c.value,always:C.always,"ratio-x":h.value,"ratio-y":p.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var TS=ze(xS,[["__file","scrollbar.vue"]]);const Jp=Nt(TS),Ri=Symbol("popper"),Zp=Symbol("popperContent"),OS=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],Qp=Ze({role:{type:String,values:OS,default:"tooltip"}}),AS=re({name:"ElPopper",inheritAttrs:!1}),MS=re({...AS,props:Qp,setup(e,{expose:t}){const n=e,r=M(),o=M(),s=M(),l=M(),a=A(()=>n.role),i={triggerRef:r,popperInstanceRef:o,contentRef:s,referenceRef:l,role:a};return t(i),ut(Ri,i),(u,c)=>Me(u.$slots,"default")}});var PS=ze(MS,[["__file","popper.vue"]]);const eh=Ze({arrowOffset:{type:Number,default:5}}),RS=re({name:"ElPopperArrow",inheritAttrs:!1}),$S=re({...RS,props:eh,setup(e,{expose:t}){const n=e,r=Ee("popper"),{arrowOffset:o,arrowRef:s,arrowStyle:l}=_e(Zp,void 0);return ge(()=>n.arrowOffset,a=>{o.value=a}),mt(()=>{s.value=void 0}),t({arrowRef:s}),(a,i)=>(N(),ie("span",{ref_key:"arrowRef",ref:s,class:K(m(r).e("arrow")),style:tt(m(l)),"data-popper-arrow":""},null,6))}});var IS=ze($S,[["__file","arrow.vue"]]);const NS="ElOnlyChild",LS=re({name:NS,setup(e,{slots:t,attrs:n}){var r;const o=_e(jp),s=U_((r=o==null?void 0:o.setForwardRef)!=null?r:ot);return()=>{var l;const a=(l=t.default)==null?void 0:l.call(t,n);if(!a||a.length>1)return null;const i=th(a);return i?it(yn(i,n),[[s]]):null}}});function th(e){if(!e)return null;const t=e;for(const n of t){if(Ie(n))switch(n.type){case St:continue;case Zr:case"svg":return zc(n);case Ue:return th(n.children);default:return n}return zc(n)}return null}function zc(e){const t=Ee("only-child");return fe("span",{class:t.e("content")},[e])}const nh=Ze({virtualRef:{type:Te(Object)},virtualTriggering:Boolean,onMouseenter:{type:Te(Function)},onMouseleave:{type:Te(Function)},onClick:{type:Te(Function)},onKeydown:{type:Te(Function)},onFocus:{type:Te(Function)},onBlur:{type:Te(Function)},onContextmenu:{type:Te(Function)},id:String,open:Boolean}),kS=re({name:"ElPopperTrigger",inheritAttrs:!1}),FS=re({...kS,props:nh,setup(e,{expose:t}){const n=e,{role:r,triggerRef:o}=_e(Ri,void 0);K_(o);const s=A(()=>a.value?n.id:void 0),l=A(()=>{if(r&&r.value==="tooltip")return n.open&&n.id?n.id:void 0}),a=A(()=>{if(r&&r.value!=="tooltip")return r.value}),i=A(()=>a.value?`${n.open}`:void 0);let u;return Je(()=>{ge(()=>n.virtualRef,c=>{c&&(o.value=Hn(c))},{immediate:!0}),ge(o,(c,f)=>{u==null||u(),u=void 0,bn(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(d=>{var p;const h=n[d];h&&(c.addEventListener(d.slice(2).toLowerCase(),h),(p=f==null?void 0:f.removeEventListener)==null||p.call(f,d.slice(2).toLowerCase(),h))}),u=ge([s,l,a,i],d=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((p,h)=>{yr(d[h])?c.removeAttribute(p):c.setAttribute(p,d[h])})},{immediate:!0})),bn(f)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(d=>f.removeAttribute(d))},{immediate:!0})}),mt(()=>{u==null||u(),u=void 0}),t({triggerRef:o}),(c,f)=>c.virtualTriggering?be("v-if",!0):(N(),he(m(LS),Yt({key:0},c.$attrs,{"aria-controls":m(s),"aria-describedby":m(l),"aria-expanded":m(i),"aria-haspopup":m(a)}),{default:de(()=>[Me(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var BS=ze(FS,[["__file","trigger.vue"]]);const Ll="focus-trap.focus-after-trapped",kl="focus-trap.focus-after-released",HS="focus-trap.focusout-prevented",jc={cancelable:!0,bubbles:!1},DS={cancelable:!0,bubbles:!1},Wc="focusAfterTrapped",Vc="focusAfterReleased",zS=Symbol("elFocusTrap"),$i=M(),ml=M(0),Ii=M(0);let ns=0;const rh=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0||r===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},Kc=(e,t)=>{for(const n of e)if(!jS(n,t))return n},jS=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},WS=e=>{const t=rh(e),n=Kc(t,e),r=Kc(t.reverse(),e);return[n,r]},VS=e=>e instanceof HTMLInputElement&&"select"in e,Pn=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),Ii.value=window.performance.now(),e!==n&&VS(e)&&t&&e.select()}};function Uc(e,t){const n=[...e],r=e.indexOf(t);return r!==-1&&n.splice(r,1),n}const KS=()=>{let e=[];return{push:r=>{const o=e[0];o&&r!==o&&o.pause(),e=Uc(e,r),e.unshift(r)},remove:r=>{var o,s;e=Uc(e,r),(s=(o=e[0])==null?void 0:o.resume)==null||s.call(o)}}},US=(e,t=!1)=>{const n=document.activeElement;for(const r of e)if(Pn(r,t),document.activeElement!==n)return},Gc=KS(),GS=()=>ml.value>Ii.value,rs=()=>{$i.value="pointer",ml.value=window.performance.now()},qc=()=>{$i.value="keyboard",ml.value=window.performance.now()},qS=()=>(Je(()=>{ns===0&&(document.addEventListener("mousedown",rs),document.addEventListener("touchstart",rs),document.addEventListener("keydown",qc)),ns++}),mt(()=>{ns--,ns<=0&&(document.removeEventListener("mousedown",rs),document.removeEventListener("touchstart",rs),document.removeEventListener("keydown",qc))}),{focusReason:$i,lastUserFocusTimestamp:ml,lastAutomatedFocusTimestamp:Ii}),os=e=>new CustomEvent(HS,{...DS,detail:e}),YS=re({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Wc,Vc,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=M();let r,o;const{focusReason:s}=qS();D_(h=>{e.trapped&&!l.paused&&t("release-requested",h)});const l={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},a=h=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:v,altKey:b,ctrlKey:g,metaKey:w,currentTarget:T,shiftKey:y}=h,{loop:O}=e,E=v===gt.tab&&!b&&!g&&!w,C=document.activeElement;if(E&&C){const _=T,[P,B]=WS(_);if(P&&B){if(!y&&C===B){const I=os({focusReason:s.value});t("focusout-prevented",I),I.defaultPrevented||(h.preventDefault(),O&&Pn(P,!0))}else if(y&&[P,_].includes(C)){const I=os({focusReason:s.value});t("focusout-prevented",I),I.defaultPrevented||(h.preventDefault(),O&&Pn(B,!0))}}else if(C===_){const I=os({focusReason:s.value});t("focusout-prevented",I),I.defaultPrevented||h.preventDefault()}}};ut(zS,{focusTrapRef:n,onKeydown:a}),ge(()=>e.focusTrapEl,h=>{h&&(n.value=h)},{immediate:!0}),ge([n],([h],[v])=>{h&&(h.addEventListener("keydown",a),h.addEventListener("focusin",c),h.addEventListener("focusout",f)),v&&(v.removeEventListener("keydown",a),v.removeEventListener("focusin",c),v.removeEventListener("focusout",f))});const i=h=>{t(Wc,h)},u=h=>t(Vc,h),c=h=>{const v=m(n);if(!v)return;const b=h.target,g=h.relatedTarget,w=b&&v.contains(b);e.trapped||g&&v.contains(g)||(r=g),w&&t("focusin",h),!l.paused&&e.trapped&&(w?o=b:Pn(o,!0))},f=h=>{const v=m(n);if(!(l.paused||!v))if(e.trapped){const b=h.relatedTarget;!yr(b)&&!v.contains(b)&&setTimeout(()=>{if(!l.paused&&e.trapped){const g=os({focusReason:s.value});t("focusout-prevented",g),g.defaultPrevented||Pn(o,!0)}},0)}else{const b=h.target;b&&v.contains(b)||t("focusout",h)}};async function d(){await We();const h=m(n);if(h){Gc.push(l);const v=h.contains(document.activeElement)?r:document.activeElement;if(r=v,!h.contains(v)){const g=new Event(Ll,jc);h.addEventListener(Ll,i),h.dispatchEvent(g),g.defaultPrevented||We(()=>{let w=e.focusStartEl;Se(w)||(Pn(w),document.activeElement!==w&&(w="first")),w==="first"&&US(rh(h),!0),(document.activeElement===v||w==="container")&&Pn(h)})}}}function p(){const h=m(n);if(h){h.removeEventListener(Ll,i);const v=new CustomEvent(kl,{...jc,detail:{focusReason:s.value}});h.addEventListener(kl,u),h.dispatchEvent(v),!v.defaultPrevented&&(s.value=="keyboard"||!GS()||h.contains(document.activeElement))&&Pn(r??document.body),h.removeEventListener(kl,u),Gc.remove(l)}}return Je(()=>{e.trapped&&d(),ge(()=>e.trapped,h=>{h?d():p()})}),mt(()=>{e.trapped&&p()}),{onKeydown:a}}});function XS(e,t,n,r,o,s){return Me(e.$slots,"default",{handleKeydown:e.onKeydown})}var oh=ze(YS,[["render",XS],["__file","focus-trap.vue"]]);const JS=["fixed","absolute"],ZS=Ze({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Te(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:Ci,default:"bottom"},popperOptions:{type:Te(Object),default:()=>({})},strategy:{type:String,values:JS,default:"absolute"}}),sh=Ze({...ZS,id:String,style:{type:Te([String,Array,Object])},className:{type:Te([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Te([String,Array,Object])},popperStyle:{type:Te([String,Array,Object])},referenceEl:{type:Te(Object)},triggerTargetEl:{type:Te(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),QS={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},eE=(e,t=[])=>{const{placement:n,strategy:r,popperOptions:o}=e,s={placement:n,strategy:r,...o,modifiers:[...nE(e),...t]};return rE(s,o==null?void 0:o.modifiers),s},tE=e=>{if(Ge)return Hn(e)};function nE(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:r}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:r}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function rE(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const oE=0,sE=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:r,role:o}=_e(Ri,void 0),s=M(),l=M(),a=A(()=>({name:"eventListeners",enabled:!!e.visible})),i=A(()=>{var g;const w=m(s),T=(g=m(l))!=null?g:oE;return{name:"arrow",enabled:!D1(w),options:{element:w,padding:T}}}),u=A(()=>({onFirstUpdate:()=>{h()},...eE(e,[m(i),m(a)])})),c=A(()=>tE(e.referenceEl)||m(r)),{attributes:f,state:d,styles:p,update:h,forceUpdate:v,instanceRef:b}=F_(c,n,u);return ge(b,g=>t.value=g),Je(()=>{ge(()=>{var g;return(g=m(c))==null?void 0:g.getBoundingClientRect()},()=>{h()})}),{attributes:f,arrowRef:s,contentRef:n,instanceRef:b,state:d,styles:p,role:o,forceUpdate:v,update:h}},lE=(e,{attributes:t,styles:n,role:r})=>{const{nextZIndex:o}=Kp(),s=Ee("popper"),l=A(()=>m(t).popper),a=M(et(e.zIndex)?e.zIndex:o()),i=A(()=>[s.b(),s.is("pure",e.pure),s.is(e.effect),e.popperClass]),u=A(()=>[{zIndex:m(a)},m(n).popper,e.popperStyle||{}]),c=A(()=>r.value==="dialog"?"false":void 0),f=A(()=>m(n).arrow||{});return{ariaModal:c,arrowStyle:f,contentAttrs:l,contentClass:i,contentStyle:u,contentZIndex:a,updateZIndex:()=>{a.value=et(e.zIndex)?e.zIndex:o()}}},aE=(e,t)=>{const n=M(!1),r=M();return{focusStartRef:r,trapped:n,onFocusAfterReleased:u=>{var c;((c=u.detail)==null?void 0:c.focusReason)!=="pointer"&&(r.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:u=>{e.visible&&!n.value&&(u.target&&(r.value=u.target),n.value=!0)},onFocusoutPrevented:u=>{e.trapping||(u.detail.focusReason==="pointer"&&u.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},iE=re({name:"ElPopperContent"}),uE=re({...iE,props:sh,emits:QS,setup(e,{expose:t,emit:n}){const r=e,{focusStartRef:o,trapped:s,onFocusAfterReleased:l,onFocusAfterTrapped:a,onFocusInTrap:i,onFocusoutPrevented:u,onReleaseRequested:c}=aE(r,n),{attributes:f,arrowRef:d,contentRef:p,styles:h,instanceRef:v,role:b,update:g}=sE(r),{ariaModal:w,arrowStyle:T,contentAttrs:y,contentClass:O,contentStyle:E,updateZIndex:C}=lE(r,{styles:h,attributes:f,role:b}),_=_e(Vs,void 0),P=M();ut(Zp,{arrowStyle:T,arrowRef:d,arrowOffset:P}),_&&(_.addInputId||_.removeInputId)&&ut(Vs,{..._,addInputId:ot,removeInputId:ot});let B;const W=(L=!0)=>{g(),L&&C()},I=()=>{W(!1),r.visible&&r.focusOnShow?s.value=!0:r.visible===!1&&(s.value=!1)};return Je(()=>{ge(()=>r.triggerTargetEl,(L,V)=>{B==null||B(),B=void 0;const G=m(L||p.value),J=m(V||p.value);bn(G)&&(B=ge([b,()=>r.ariaLabel,w,()=>r.id],H=>{["role","aria-label","aria-modal","id"].forEach((te,k)=>{yr(H[k])?G.removeAttribute(te):G.setAttribute(te,H[k])})},{immediate:!0})),J!==G&&bn(J)&&["role","aria-label","aria-modal","id"].forEach(H=>{J.removeAttribute(H)})},{immediate:!0}),ge(()=>r.visible,I,{immediate:!0})}),mt(()=>{B==null||B(),B=void 0}),t({popperContentRef:p,popperInstanceRef:v,updatePopper:W,contentStyle:E}),(L,V)=>(N(),ie("div",Yt({ref_key:"contentRef",ref:p},m(y),{style:m(E),class:m(O),tabindex:"-1",onMouseenter:V[0]||(V[0]=G=>L.$emit("mouseenter",G)),onMouseleave:V[1]||(V[1]=G=>L.$emit("mouseleave",G))}),[fe(m(oh),{trapped:m(s),"trap-on-focus-in":!0,"focus-trap-el":m(p),"focus-start-el":m(o),onFocusAfterTrapped:m(a),onFocusAfterReleased:m(l),onFocusin:m(i),onFocusoutPrevented:m(u),onReleaseRequested:m(c)},{default:de(()=>[Me(L.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var cE=ze(uE,[["__file","content.vue"]]);const fE=Nt(PS),Ni=Symbol("elTooltip"),lh=Ze({...W_,...sh,appendTo:{type:Te([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Te(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),ah=Ze({...nh,disabled:Boolean,trigger:{type:Te([String,Array]),default:"hover"},triggerKeys:{type:Te(Array),default:()=>[gt.enter,gt.space]}}),{useModelToggleProps:dE,useModelToggleEmits:pE,useModelToggle:hE}=Tp("visible"),vE=Ze({...Qp,...dE,...lh,...ah,...eh,showArrow:{type:Boolean,default:!0}}),gE=[...pE,"before-show","before-hide","show","hide","open","close"],mE=(e,t)=>pe(e)?e.includes(t):e===t,Tr=(e,t,n)=>r=>{mE(m(e),t)&&n(r)},yE=re({name:"ElTooltipTrigger"}),bE=re({...yE,props:ah,setup(e,{expose:t}){const n=e,r=Ee("tooltip"),{controlled:o,id:s,open:l,onOpen:a,onClose:i,onToggle:u}=_e(Ni,void 0),c=M(null),f=()=>{if(m(o)||n.disabled)return!0},d=Bt(n,"trigger"),p=gn(f,Tr(d,"hover",a)),h=gn(f,Tr(d,"hover",i)),v=gn(f,Tr(d,"click",y=>{y.button===0&&u(y)})),b=gn(f,Tr(d,"focus",a)),g=gn(f,Tr(d,"focus",i)),w=gn(f,Tr(d,"contextmenu",y=>{y.preventDefault(),u(y)})),T=gn(f,y=>{const{code:O}=y;n.triggerKeys.includes(O)&&(y.preventDefault(),u(y))});return t({triggerRef:c}),(y,O)=>(N(),he(m(BS),{id:m(s),"virtual-ref":y.virtualRef,open:m(l),"virtual-triggering":y.virtualTriggering,class:K(m(r).e("trigger")),onBlur:m(g),onClick:m(v),onContextmenu:m(w),onFocus:m(b),onMouseenter:m(p),onMouseleave:m(h),onKeydown:m(T)},{default:de(()=>[Me(y.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var wE=ze(bE,[["__file","trigger.vue"]]);const CE=re({name:"ElTooltipContent",inheritAttrs:!1}),_E=re({...CE,props:lh,setup(e,{expose:t}){const n=e,{selector:r}=zp(),o=Ee("tooltip"),s=M(null),l=M(!1),{controlled:a,id:i,open:u,trigger:c,onClose:f,onOpen:d,onShow:p,onHide:h,onBeforeShow:v,onBeforeHide:b}=_e(Ni,void 0),g=A(()=>n.transition||`${o.namespace.value}-fade-in-linear`),w=A(()=>n.persistent);mt(()=>{l.value=!0});const T=A(()=>m(w)?!0:m(u)),y=A(()=>n.disabled?!1:m(u)),O=A(()=>n.appendTo||r.value),E=A(()=>{var H;return(H=n.style)!=null?H:{}}),C=A(()=>!m(u)),_=()=>{h()},P=()=>{if(m(a))return!0},B=gn(P,()=>{n.enterable&&m(c)==="hover"&&d()}),W=gn(P,()=>{m(c)==="hover"&&f()}),I=()=>{var H,te;(te=(H=s.value)==null?void 0:H.updatePopper)==null||te.call(H),v==null||v()},L=()=>{b==null||b()},V=()=>{p(),J=ey(A(()=>{var H;return(H=s.value)==null?void 0:H.popperContentRef}),()=>{if(m(a))return;m(c)!=="hover"&&f()})},G=()=>{n.virtualTriggering||f()};let J;return ge(()=>m(u),H=>{H||J==null||J()},{flush:"post"}),ge(()=>n.content,()=>{var H,te;(te=(H=s.value)==null?void 0:H.updatePopper)==null||te.call(H)}),t({contentRef:s}),(H,te)=>(N(),he(zg,{disabled:!H.teleported,to:m(O)},[fe(_n,{name:m(g),onAfterLeave:_,onBeforeEnter:I,onAfterEnter:V,onBeforeLeave:L},{default:de(()=>[m(T)?it((N(),he(m(cE),Yt({key:0,id:m(i),ref_key:"contentRef",ref:s},H.$attrs,{"aria-label":H.ariaLabel,"aria-hidden":m(C),"boundaries-padding":H.boundariesPadding,"fallback-placements":H.fallbackPlacements,"gpu-acceleration":H.gpuAcceleration,offset:H.offset,placement:H.placement,"popper-options":H.popperOptions,strategy:H.strategy,effect:H.effect,enterable:H.enterable,pure:H.pure,"popper-class":H.popperClass,"popper-style":[H.popperStyle,m(E)],"reference-el":H.referenceEl,"trigger-target-el":H.triggerTargetEl,visible:m(y),"z-index":H.zIndex,onMouseenter:m(B),onMouseleave:m(W),onBlur:G,onClose:m(f)}),{default:de(()=>[l.value?be("v-if",!0):Me(H.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Xt,m(y)]]):be("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var SE=ze(_E,[["__file","content.vue"]]);const EE=["innerHTML"],xE={key:1},TE=re({name:"ElTooltip"}),OE=re({...TE,props:vE,emits:gE,setup(e,{expose:t,emit:n}){const r=e;j_();const o=js(),s=M(),l=M(),a=()=>{var g;const w=m(s);w&&((g=w.popperInstanceRef)==null||g.update())},i=M(!1),u=M(),{show:c,hide:f,hasUpdateHandler:d}=hE({indicator:i,toggleReason:u}),{onOpen:p,onClose:h}=V_({showAfter:Bt(r,"showAfter"),hideAfter:Bt(r,"hideAfter"),autoClose:Bt(r,"autoClose"),open:c,close:f}),v=A(()=>sn(r.visible)&&!d.value);ut(Ni,{controlled:v,id:o,open:ko(i),trigger:Bt(r,"trigger"),onOpen:g=>{p(g)},onClose:g=>{h(g)},onToggle:g=>{m(i)?h(g):p(g)},onShow:()=>{n("show",u.value)},onHide:()=>{n("hide",u.value)},onBeforeShow:()=>{n("before-show",u.value)},onBeforeHide:()=>{n("before-hide",u.value)},updatePopper:a}),ge(()=>r.disabled,g=>{g&&i.value&&(i.value=!1)});const b=g=>{var w,T;const y=(T=(w=l.value)==null?void 0:w.contentRef)==null?void 0:T.popperContentRef,O=(g==null?void 0:g.relatedTarget)||document.activeElement;return y&&y.contains(O)};return pd(()=>i.value&&f()),t({popperRef:s,contentRef:l,isFocusInsideContent:b,updatePopper:a,onOpen:p,onClose:h,hide:f}),(g,w)=>(N(),he(m(fE),{ref_key:"popperRef",ref:s,role:g.role},{default:de(()=>[fe(wE,{disabled:g.disabled,trigger:g.trigger,"trigger-keys":g.triggerKeys,"virtual-ref":g.virtualRef,"virtual-triggering":g.virtualTriggering},{default:de(()=>[g.$slots.default?Me(g.$slots,"default",{key:0}):be("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),fe(SE,{ref_key:"contentRef",ref:l,"aria-label":g.ariaLabel,"boundaries-padding":g.boundariesPadding,content:g.content,disabled:g.disabled,effect:g.effect,enterable:g.enterable,"fallback-placements":g.fallbackPlacements,"hide-after":g.hideAfter,"gpu-acceleration":g.gpuAcceleration,offset:g.offset,persistent:g.persistent,"popper-class":g.popperClass,"popper-style":g.popperStyle,placement:g.placement,"popper-options":g.popperOptions,pure:g.pure,"raw-content":g.rawContent,"reference-el":g.referenceEl,"trigger-target-el":g.triggerTargetEl,"show-after":g.showAfter,strategy:g.strategy,teleported:g.teleported,transition:g.transition,"virtual-triggering":g.virtualTriggering,"z-index":g.zIndex,"append-to":g.appendTo},{default:de(()=>[Me(g.$slots,"content",{},()=>[g.rawContent?(N(),ie("span",{key:0,innerHTML:g.content},null,8,EE)):(N(),ie("span",xE,Qe(g.content),1))]),g.showArrow?(N(),he(m(IS),{key:0,"arrow-offset":g.arrowOffset},null,8,["arrow-offset"])):be("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var AE=ze(OE,[["__file","tooltip.vue"]]);const yl=Nt(AE),ME=Ze({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),PE=["textContent"],RE=re({name:"ElBadge"}),$E=re({...RE,props:ME,setup(e,{expose:t}){const n=e,r=Ee("badge"),o=A(()=>n.isDot?"":et(n.value)&&et(n.max)?n.max(N(),ie("div",{class:K(m(r).b())},[Me(s.$slots,"default"),fe(_n,{name:`${m(r).namespace.value}-zoom-in-center`,persisted:""},{default:de(()=>[it(ce("sup",{class:K([m(r).e("content"),m(r).em("content",s.type),m(r).is("fixed",!!s.$slots.default),m(r).is("dot",s.isDot)]),textContent:Qe(m(o))},null,10,PE),[[Xt,!s.hidden&&(m(o)||s.isDot)]])]),_:1},8,["name"])],2))}});var IE=ze($E,[["__file","badge.vue"]]);const NE=Nt(IE),ih=Symbol("buttonGroupContextKey"),LE=(e,t)=>{mi({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},A(()=>e.type==="text"));const n=_e(ih,void 0),r=Mi("button"),{form:o}=eo(),s=Kr(A(()=>n==null?void 0:n.size)),l=Vo(),a=M(),i=rl(),u=A(()=>e.type||(n==null?void 0:n.type)||""),c=A(()=>{var h,v,b;return(b=(v=e.autoInsertSpace)!=null?v:(h=r.value)==null?void 0:h.autoInsertSpace)!=null?b:!1}),f=A(()=>e.tag==="button"?{ariaDisabled:l.value||e.loading,disabled:l.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),d=A(()=>{var h;const v=(h=i.default)==null?void 0:h.call(i);if(c.value&&(v==null?void 0:v.length)===1){const b=v[0];if((b==null?void 0:b.type)===Zr){const g=b.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(g.trim())}}return!1});return{_disabled:l,_size:s,_type:u,_ref:a,_props:f,shouldAddSpace:d,handleClick:h=>{e.nativeType==="reset"&&(o==null||o.resetFields()),t("click",h)}}},kE=["default","primary","success","warning","info","danger","text",""],FE=["button","submit","reset"],ya=Ze({size:Wo,disabled:Boolean,type:{type:String,values:kE,default:""},icon:{type:_t},nativeType:{type:String,values:FE,default:"button"},loading:Boolean,loadingIcon:{type:_t,default:()=>pl},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:Te([String,Object]),default:"button"}}),BE={click:e=>e instanceof MouseEvent};function ht(e,t){HE(e)&&(e="100%");var n=DE(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function ss(e){return Math.min(1,Math.max(0,e))}function HE(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function DE(e){return typeof e=="string"&&e.indexOf("%")!==-1}function uh(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ls(e){return e<=1?"".concat(Number(e)*100,"%"):e}function ir(e){return e.length===1?"0"+e:String(e)}function zE(e,t,n){return{r:ht(e,255)*255,g:ht(t,255)*255,b:ht(n,255)*255}}function Yc(e,t,n){e=ht(e,255),t=ht(t,255),n=ht(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=0,a=(r+o)/2;if(r===o)l=0,s=0;else{var i=r-o;switch(l=a>.5?i/(2-r-o):i/(r+o),r){case e:s=(t-n)/i+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function jE(e,t,n){var r,o,s;if(e=ht(e,360),t=ht(t,100),n=ht(n,100),t===0)o=n,s=n,r=n;else{var l=n<.5?n*(1+t):n+t-n*t,a=2*n-l;r=Fl(a,l,e+1/3),o=Fl(a,l,e),s=Fl(a,l,e-1/3)}return{r:r*255,g:o*255,b:s*255}}function Xc(e,t,n){e=ht(e,255),t=ht(t,255),n=ht(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=r,a=r-o,i=r===0?0:a/r;if(r===o)s=0;else{switch(r){case e:s=(t-n)/a+(t>16,g:(e&65280)>>8,b:e&255}}var ba={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function GE(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,s=null,l=!1,a=!1;return typeof e=="string"&&(e=XE(e)),typeof e=="object"&&(hn(e.r)&&hn(e.g)&&hn(e.b)?(t=zE(e.r,e.g,e.b),l=!0,a=String(e.r).substr(-1)==="%"?"prgb":"rgb"):hn(e.h)&&hn(e.s)&&hn(e.v)?(r=ls(e.s),o=ls(e.v),t=WE(e.h,r,o),l=!0,a="hsv"):hn(e.h)&&hn(e.s)&&hn(e.l)&&(r=ls(e.s),s=ls(e.l),t=jE(e.h,r,s),l=!0,a="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=uh(n),{ok:l,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var qE="[-\\+]?\\d+%?",YE="[-\\+]?\\d*\\.\\d+%?",Dn="(?:".concat(YE,")|(?:").concat(qE,")"),Bl="[\\s|\\(]+(".concat(Dn,")[,|\\s]+(").concat(Dn,")[,|\\s]+(").concat(Dn,")\\s*\\)?"),Hl="[\\s|\\(]+(".concat(Dn,")[,|\\s]+(").concat(Dn,")[,|\\s]+(").concat(Dn,")[,|\\s]+(").concat(Dn,")\\s*\\)?"),Kt={CSS_UNIT:new RegExp(Dn),rgb:new RegExp("rgb"+Bl),rgba:new RegExp("rgba"+Hl),hsl:new RegExp("hsl"+Bl),hsla:new RegExp("hsla"+Hl),hsv:new RegExp("hsv"+Bl),hsva:new RegExp("hsva"+Hl),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function XE(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ba[e])e=ba[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=Kt.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=Kt.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Kt.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=Kt.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Kt.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=Kt.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Kt.hex8.exec(e),n?{r:At(n[1]),g:At(n[2]),b:At(n[3]),a:Zc(n[4]),format:t?"name":"hex8"}:(n=Kt.hex6.exec(e),n?{r:At(n[1]),g:At(n[2]),b:At(n[3]),format:t?"name":"hex"}:(n=Kt.hex4.exec(e),n?{r:At(n[1]+n[1]),g:At(n[2]+n[2]),b:At(n[3]+n[3]),a:Zc(n[4]+n[4]),format:t?"name":"hex8"}:(n=Kt.hex3.exec(e),n?{r:At(n[1]+n[1]),g:At(n[2]+n[2]),b:At(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function hn(e){return!!Kt.CSS_UNIT.exec(String(e))}var ch=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var r;if(t instanceof e)return t;typeof t=="number"&&(t=UE(t)),this.originalInput=t;var o=GE(t);this.originalInput=t,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=n.format)!==null&&r!==void 0?r:o.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,r,o,s=t.r/255,l=t.g/255,a=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?r=l/12.92:r=Math.pow((l+.055)/1.055,2.4),a<=.03928?o=a/12.92:o=Math.pow((a+.055)/1.055,2.4),.2126*n+.7152*r+.0722*o},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=uh(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Xc(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Xc(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsva(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Yc(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Yc(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsla(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Jc(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),VE(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(r,")"):"rgba(".concat(t,", ").concat(n,", ").concat(r,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(ht(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(ht(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Jc(this.r,this.g,this.b,!1),n=0,r=Object.entries(ba);n=0,s=!n&&o&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=ss(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=ss(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=ss(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=ss(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var r=this.toRgb(),o=new e(t).toRgb(),s=n/100,l={r:(o.r-r.r)*s+r.r,g:(o.g-r.g)*s+r.g,b:(o.b-r.b)*s+r.b,a:(o.a-r.a)*s+r.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var r=this.toHsl(),o=360/n,s=[this];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,s.push(new e(r));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),r=n.h,o=n.s,s=n.v,l=[],a=1/t;t--;)l.push(new e({h:r,s:o,v:s})),s=(s+a)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb(),o=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/o,g:(n.g*n.a+r.g*r.a*(1-n.a))/o,b:(n.b*n.a+r.b*r.a*(1-n.a))/o,a:o})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,o=[this],s=360/t,l=1;l{let r={};const o=e.color;if(o){const s=new ch(o),l=e.dark?s.tint(20).toString():An(s,20);if(e.plain)r=n.cssVarBlock({"bg-color":e.dark?An(s,90):s.tint(90).toString(),"text-color":o,"border-color":e.dark?An(s,50):s.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":o,"hover-border-color":o,"active-bg-color":l,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":l}),t.value&&(r[n.cssVarBlockName("disabled-bg-color")]=e.dark?An(s,90):s.tint(90).toString(),r[n.cssVarBlockName("disabled-text-color")]=e.dark?An(s,50):s.tint(50).toString(),r[n.cssVarBlockName("disabled-border-color")]=e.dark?An(s,80):s.tint(80).toString());else{const a=e.dark?An(s,30):s.tint(30).toString(),i=s.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(r=n.cssVarBlock({"bg-color":o,"text-color":i,"border-color":o,"hover-bg-color":a,"hover-text-color":i,"hover-border-color":a,"active-bg-color":l,"active-border-color":l}),t.value){const u=e.dark?An(s,50):s.tint(50).toString();r[n.cssVarBlockName("disabled-bg-color")]=u,r[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,r[n.cssVarBlockName("disabled-border-color")]=u}}}return r})}const ZE=re({name:"ElButton"}),QE=re({...ZE,props:ya,emits:BE,setup(e,{expose:t,emit:n}){const r=e,o=JE(r),s=Ee("button"),{_ref:l,_size:a,_type:i,_disabled:u,_props:c,shouldAddSpace:f,handleClick:d}=LE(r,n);return t({ref:l,size:a,type:i,disabled:u,shouldAddSpace:f}),(p,h)=>(N(),he(nt(p.tag),Yt({ref_key:"_ref",ref:l},m(c),{class:[m(s).b(),m(s).m(m(i)),m(s).m(m(a)),m(s).is("disabled",m(u)),m(s).is("loading",p.loading),m(s).is("plain",p.plain),m(s).is("round",p.round),m(s).is("circle",p.circle),m(s).is("text",p.text),m(s).is("link",p.link),m(s).is("has-bg",p.bg)],style:m(o),onClick:m(d)}),{default:de(()=>[p.loading?(N(),ie(Ue,{key:0},[p.$slots.loading?Me(p.$slots,"loading",{key:0}):(N(),he(m(rt),{key:1,class:K(m(s).is("loading"))},{default:de(()=>[(N(),he(nt(p.loadingIcon)))]),_:1},8,["class"]))],64)):p.icon||p.$slots.icon?(N(),he(m(rt),{key:1},{default:de(()=>[p.icon?(N(),he(nt(p.icon),{key:0})):Me(p.$slots,"icon",{key:1})]),_:3})):be("v-if",!0),p.$slots.default?(N(),ie("span",{key:2,class:K({[m(s).em("text","expand")]:m(f)})},[Me(p.$slots,"default")],2)):be("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var ex=ze(QE,[["__file","button.vue"]]);const tx={size:ya.size,type:ya.type},nx=re({name:"ElButtonGroup"}),rx=re({...nx,props:tx,setup(e){const t=e;ut(ih,dn({size:Bt(t,"size"),type:Bt(t,"type")}));const n=Ee("button");return(r,o)=>(N(),ie("div",{class:K(`${m(n).b("group")}`)},[Me(r.$slots,"default")],2))}});var fh=ze(rx,[["__file","button-group.vue"]]);const dh=Nt(ex,{ButtonGroup:fh});xr(fh);const Rn=new Map;let Qc;Ge&&(document.addEventListener("mousedown",e=>Qc=e),document.addEventListener("mouseup",e=>{for(const t of Rn.values())for(const{documentHandler:n}of t)n(e,Qc)}));function ef(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:bn(t.arg)&&n.push(t.arg),function(r,o){const s=t.instance.popperRef,l=r.target,a=o==null?void 0:o.target,i=!t||!t.instance,u=!l||!a,c=e.contains(l)||e.contains(a),f=e===l,d=n.length&&n.some(h=>h==null?void 0:h.contains(l))||n.length&&n.includes(a),p=s&&(s.contains(l)||s.contains(a));i||u||c||f||d||p||t.value(r,o)}}const ph={beforeMount(e,t){Rn.has(e)||Rn.set(e,[]),Rn.get(e).push({documentHandler:ef(e,t),bindingFn:t.value})},updated(e,t){Rn.has(e)||Rn.set(e,[]);const n=Rn.get(e),r=n.findIndex(s=>s.bindingFn===t.oldValue),o={documentHandler:ef(e,t),bindingFn:t.value};r>=0?n.splice(r,1,o):n.push(o)},unmounted(e){Rn.delete(e)}},wa="_trap-focus-children",ur=[],tf=e=>{if(ur.length===0)return;const t=ur[ur.length-1][wa];if(t.length>0&&e.code===gt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,r=e.target===t[0],o=e.target===t[t.length-1];r&&n&&(e.preventDefault(),t[t.length-1].focus()),o&&!n&&(e.preventDefault(),t[0].focus())}},ox={beforeMount(e){e[wa]=Ru(e),ur.push(e),ur.length<=1&&document.addEventListener("keydown",tf)},updated(e){We(()=>{e[wa]=Ru(e)})},unmounted(){ur.shift(),ur.length===0&&document.removeEventListener("keydown",tf)}};var nf=!1,sr,Ca,_a,bs,ws,hh,Cs,Sa,Ea,xa,vh,Ta,Oa,gh,mh;function bt(){if(!nf){nf=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Ta=/\b(iPhone|iP[ao]d)/.exec(e),Oa=/\b(iP[ao]d)/.exec(e),xa=/Android/i.exec(e),gh=/FBAN\/\w+;/i.exec(e),mh=/Mobile/i.exec(e),vh=!!/Win64/.exec(e),t){sr=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,sr&&document&&document.documentMode&&(sr=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(e);hh=r?parseFloat(r[1])+4:sr,Ca=t[2]?parseFloat(t[2]):NaN,_a=t[3]?parseFloat(t[3]):NaN,bs=t[4]?parseFloat(t[4]):NaN,bs?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),ws=t&&t[1]?parseFloat(t[1]):NaN):ws=NaN}else sr=Ca=_a=ws=bs=NaN;if(n){if(n[1]){var o=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Cs=o?parseFloat(o[1].replace("_",".")):!0}else Cs=!1;Sa=!!n[2],Ea=!!n[3]}else Cs=Sa=Ea=!1}}var Aa={ie:function(){return bt()||sr},ieCompatibilityMode:function(){return bt()||hh>sr},ie64:function(){return Aa.ie()&&vh},firefox:function(){return bt()||Ca},opera:function(){return bt()||_a},webkit:function(){return bt()||bs},safari:function(){return Aa.webkit()},chrome:function(){return bt()||ws},windows:function(){return bt()||Sa},osx:function(){return bt()||Cs},linux:function(){return bt()||Ea},iphone:function(){return bt()||Ta},mobile:function(){return bt()||Ta||Oa||xa||mh},nativeApp:function(){return bt()||gh},android:function(){return bt()||xa},ipad:function(){return bt()||Oa}},sx=Aa,as=!!(typeof window<"u"&&window.document&&window.document.createElement),lx={canUseDOM:as,canUseWorkers:typeof Worker<"u",canUseEventListeners:as&&!!(window.addEventListener||window.attachEvent),canUseViewport:as&&!!window.screen,isInWorker:!as},yh=lx,bh;yh.canUseDOM&&(bh=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function ax(e,t){if(!yh.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var o=document.createElement("div");o.setAttribute(n,"return;"),r=typeof o[n]=="function"}return!r&&bh&&e==="wheel"&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var ix=ax,rf=10,of=40,sf=800;function wh(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*rf,o=n*rf,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(e.deltaMode==1?(r*=of,o*=of):(r*=sf,o*=sf)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}wh.getEventType=function(){return sx.firefox()?"DOMMouseScroll":ix("wheel")?"wheel":"mousewheel"};var ux=wh;/** -* Checks if an event is supported in the current execution environment. -* -* NOTE: This will not work correctly for non-generic events such as `change`, -* `reset`, `load`, `error`, and `select`. -* -* Borrows from Modernizr. -* -* @param {string} eventNameSuffix Event name, e.g. "click". -* @param {?boolean} capture Check if the capture phase is supported. -* @return {boolean} True if the event is supported. -* @internal -* @license Modernizr 3.0.0pre (Custom Build) | MIT -*/const cx=function(e,t){if(e&&e.addEventListener){const n=function(r){const o=ux(r);t&&Reflect.apply(t,this,[r,o])};e.addEventListener("wheel",n,{passive:!0})}},fx={beforeMount(e,t){cx(e,t.value)}},Ch={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Wo,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},_h={[cn]:e=>Se(e)||et(e)||sn(e),change:e=>Se(e)||et(e)||sn(e)},to=Symbol("checkboxGroupContextKey"),dx=({model:e,isChecked:t})=>{const n=_e(to,void 0),r=A(()=>{var s,l;const a=(s=n==null?void 0:n.max)==null?void 0:s.value,i=(l=n==null?void 0:n.min)==null?void 0:l.value;return!Br(a)&&e.value.length>=a&&!t.value||!Br(i)&&e.value.length<=i&&t.value});return{isDisabled:Vo(A(()=>(n==null?void 0:n.disabled.value)||r.value)),isLimitDisabled:r}},px=(e,{model:t,isLimitExceeded:n,hasOwnLabel:r,isDisabled:o,isLabeledByFormItem:s})=>{const l=_e(to,void 0),{formItem:a}=eo(),{emit:i}=He();function u(h){var v,b;return h===e.trueLabel||h===!0?(v=e.trueLabel)!=null?v:!0:(b=e.falseLabel)!=null?b:!1}function c(h,v){i("change",u(h),v)}function f(h){if(n.value)return;const v=h.target;i("change",u(v.checked),h)}async function d(h){n.value||!r.value&&!o.value&&s.value&&(h.composedPath().some(g=>g.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await We(),c(t.value,h)))}const p=A(()=>(l==null?void 0:l.validateEvent)||e.validateEvent);return ge(()=>e.modelValue,()=>{p.value&&(a==null||a.validate("change").catch(h=>void 0))}),{handleChange:f,onClickRoot:d}},hx=e=>{const t=M(!1),{emit:n}=He(),r=_e(to,void 0),o=A(()=>Br(r)===!1),s=M(!1),l=A({get(){var a,i;return o.value?(a=r==null?void 0:r.modelValue)==null?void 0:a.value:(i=e.modelValue)!=null?i:t.value},set(a){var i,u;o.value&&pe(a)?(s.value=((i=r==null?void 0:r.max)==null?void 0:i.value)!==void 0&&a.length>(r==null?void 0:r.max.value)&&a.length>l.value.length,s.value===!1&&((u=r==null?void 0:r.changeEvent)==null||u.call(r,a))):(n(cn,a),t.value=a)}});return{model:l,isGroup:o,isLimitExceeded:s}},vx=(e,t,{model:n})=>{const r=_e(to,void 0),o=M(!1),s=A(()=>{const u=n.value;return sn(u)?u:pe(u)?Ie(e.label)?u.map(ke).some(c=>H1(c,e.label)):u.map(ke).includes(e.label):u!=null?u===e.trueLabel:!!u}),l=Kr(A(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value}),{prop:!0}),a=Kr(A(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value})),i=A(()=>!!t.default||!yr(e.label));return{checkboxButtonSize:l,isChecked:s,isFocused:o,checkboxSize:a,hasOwnLabel:i}},gx=(e,{model:t})=>{function n(){pe(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&n()},Sh=(e,t)=>{const{formItem:n}=eo(),{model:r,isGroup:o,isLimitExceeded:s}=hx(e),{isFocused:l,isChecked:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c}=vx(e,t,{model:r}),{isDisabled:f}=dx({model:r,isChecked:a}),{inputId:d,isLabeledByFormItem:p}=gl(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:o}),{handleChange:h,onClickRoot:v}=px(e,{model:r,isLimitExceeded:s,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:p});return gx(e,{model:r}),{inputId:d,isLabeledByFormItem:p,isChecked:a,isDisabled:f,isFocused:l,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:r,handleChange:h,onClickRoot:v}},mx=["id","indeterminate","name","tabindex","disabled","true-value","false-value"],yx=["id","indeterminate","disabled","value","name","tabindex"],bx=re({name:"ElCheckbox"}),wx=re({...bx,props:Ch,emits:_h,setup(e){const t=e,n=rl(),{inputId:r,isLabeledByFormItem:o,isChecked:s,isDisabled:l,isFocused:a,checkboxSize:i,hasOwnLabel:u,model:c,handleChange:f,onClickRoot:d}=Sh(t,n),p=Ee("checkbox"),h=A(()=>[p.b(),p.m(i.value),p.is("disabled",l.value),p.is("bordered",t.border),p.is("checked",s.value)]),v=A(()=>[p.e("input"),p.is("disabled",l.value),p.is("checked",s.value),p.is("indeterminate",t.indeterminate),p.is("focus",a.value)]);return(b,g)=>(N(),he(nt(!m(u)&&m(o)?"span":"label"),{class:K(m(h)),"aria-controls":b.indeterminate?b.controls:null,onClick:m(d)},{default:de(()=>[ce("span",{class:K(m(v))},[b.trueLabel||b.falseLabel?it((N(),ie("input",{key:0,id:m(r),"onUpdate:modelValue":g[0]||(g[0]=w=>Xe(c)?c.value=w:null),class:K(m(p).e("original")),type:"checkbox",indeterminate:b.indeterminate,name:b.name,tabindex:b.tabindex,disabled:m(l),"true-value":b.trueLabel,"false-value":b.falseLabel,onChange:g[1]||(g[1]=(...w)=>m(f)&&m(f)(...w)),onFocus:g[2]||(g[2]=w=>a.value=!0),onBlur:g[3]||(g[3]=w=>a.value=!1),onClick:g[4]||(g[4]=Gt(()=>{},["stop"]))},null,42,mx)),[[$s,m(c)]]):it((N(),ie("input",{key:1,id:m(r),"onUpdate:modelValue":g[5]||(g[5]=w=>Xe(c)?c.value=w:null),class:K(m(p).e("original")),type:"checkbox",indeterminate:b.indeterminate,disabled:m(l),value:b.label,name:b.name,tabindex:b.tabindex,onChange:g[6]||(g[6]=(...w)=>m(f)&&m(f)(...w)),onFocus:g[7]||(g[7]=w=>a.value=!0),onBlur:g[8]||(g[8]=w=>a.value=!1),onClick:g[9]||(g[9]=Gt(()=>{},["stop"]))},null,42,yx)),[[$s,m(c)]]),ce("span",{class:K(m(p).e("inner"))},null,2)],2),m(u)?(N(),ie("span",{key:0,class:K(m(p).e("label"))},[Me(b.$slots,"default"),b.$slots.default?be("v-if",!0):(N(),ie(Ue,{key:0},[Et(Qe(b.label),1)],64))],2)):be("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var Cx=ze(wx,[["__file","checkbox.vue"]]);const _x=["name","tabindex","disabled","true-value","false-value"],Sx=["name","tabindex","disabled","value"],Ex=re({name:"ElCheckboxButton"}),xx=re({...Ex,props:Ch,emits:_h,setup(e){const t=e,n=rl(),{isFocused:r,isChecked:o,isDisabled:s,checkboxButtonSize:l,model:a,handleChange:i}=Sh(t,n),u=_e(to,void 0),c=Ee("checkbox"),f=A(()=>{var p,h,v,b;const g=(h=(p=u==null?void 0:u.fill)==null?void 0:p.value)!=null?h:"";return{backgroundColor:g,borderColor:g,color:(b=(v=u==null?void 0:u.textColor)==null?void 0:v.value)!=null?b:"",boxShadow:g?`-1px 0 0 0 ${g}`:void 0}}),d=A(()=>[c.b("button"),c.bm("button",l.value),c.is("disabled",s.value),c.is("checked",o.value),c.is("focus",r.value)]);return(p,h)=>(N(),ie("label",{class:K(m(d))},[p.trueLabel||p.falseLabel?it((N(),ie("input",{key:0,"onUpdate:modelValue":h[0]||(h[0]=v=>Xe(a)?a.value=v:null),class:K(m(c).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:m(s),"true-value":p.trueLabel,"false-value":p.falseLabel,onChange:h[1]||(h[1]=(...v)=>m(i)&&m(i)(...v)),onFocus:h[2]||(h[2]=v=>r.value=!0),onBlur:h[3]||(h[3]=v=>r.value=!1),onClick:h[4]||(h[4]=Gt(()=>{},["stop"]))},null,42,_x)),[[$s,m(a)]]):it((N(),ie("input",{key:1,"onUpdate:modelValue":h[5]||(h[5]=v=>Xe(a)?a.value=v:null),class:K(m(c).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:m(s),value:p.label,onChange:h[6]||(h[6]=(...v)=>m(i)&&m(i)(...v)),onFocus:h[7]||(h[7]=v=>r.value=!0),onBlur:h[8]||(h[8]=v=>r.value=!1),onClick:h[9]||(h[9]=Gt(()=>{},["stop"]))},null,42,Sx)),[[$s,m(a)]]),p.$slots.default||p.label?(N(),ie("span",{key:2,class:K(m(c).be("button","inner")),style:tt(m(o)?m(f):void 0)},[Me(p.$slots,"default",{},()=>[Et(Qe(p.label),1)])],6)):be("v-if",!0)],2))}});var Eh=ze(xx,[["__file","checkbox-button.vue"]]);const Tx=Ze({modelValue:{type:Te(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Wo,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),Ox={[cn]:e=>pe(e),change:e=>pe(e)},Ax=re({name:"ElCheckboxGroup"}),Mx=re({...Ax,props:Tx,emits:Ox,setup(e,{emit:t}){const n=e,r=Ee("checkbox"),{formItem:o}=eo(),{inputId:s,isLabeledByFormItem:l}=gl(n,{formItemContext:o}),a=async u=>{t(cn,u),await We(),t("change",u)},i=A({get(){return n.modelValue},set(u){a(u)}});return ut(to,{...K1(Ga(n),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:i,changeEvent:a}),ge(()=>n.modelValue,()=>{n.validateEvent&&(o==null||o.validate("change").catch(u=>void 0))}),(u,c)=>{var f;return N(),he(nt(u.tag),{id:m(s),class:K(m(r).b("group")),role:"group","aria-label":m(l)?void 0:u.label||"checkbox-group","aria-labelledby":m(l)?(f=m(o))==null?void 0:f.labelId:void 0},{default:de(()=>[Me(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var xh=ze(Mx,[["__file","checkbox-group.vue"]]);const Ur=Nt(Cx,{CheckboxButton:Eh,CheckboxGroup:xh});xr(Eh);xr(xh);const Th=Symbol("rowContextKey"),Px=["start","center","end","space-around","space-between","space-evenly"],Rx=["top","middle","bottom"],$x=Ze({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:Px,default:"start"},align:{type:String,values:Rx}}),Ix=re({name:"ElRow"}),Nx=re({...Ix,props:$x,setup(e){const t=e,n=Ee("row"),r=A(()=>t.gutter);ut(Th,{gutter:r});const o=A(()=>{const l={};return t.gutter&&(l.marginRight=l.marginLeft=`-${t.gutter/2}px`),l}),s=A(()=>[n.b(),n.is(`justify-${t.justify}`,t.justify!=="start"),n.is(`align-${t.align}`,!!t.align)]);return(l,a)=>(N(),he(nt(l.tag),{class:K(m(s)),style:tt(m(o))},{default:de(()=>[Me(l.$slots,"default")]),_:3},8,["class","style"]))}});var Lx=ze(Nx,[["__file","row.vue"]]);const Li=Nt(Lx),kx=Ze({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Te([Number,Object]),default:()=>Bn({})},sm:{type:Te([Number,Object]),default:()=>Bn({})},md:{type:Te([Number,Object]),default:()=>Bn({})},lg:{type:Te([Number,Object]),default:()=>Bn({})},xl:{type:Te([Number,Object]),default:()=>Bn({})}}),Fx=re({name:"ElCol"}),Bx=re({...Fx,props:kx,setup(e){const t=e,{gutter:n}=_e(Th,{gutter:A(()=>0)}),r=Ee("col"),o=A(()=>{const l={};return n.value&&(l.paddingLeft=l.paddingRight=`${n.value/2}px`),l}),s=A(()=>{const l=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];et(c)&&(u==="span"?l.push(r.b(`${t[u]}`)):c>0&&l.push(r.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{et(t[u])?l.push(r.b(`${u}-${t[u]}`)):Ie(t[u])&&Object.entries(t[u]).forEach(([c,f])=>{l.push(c!=="span"?r.b(`${u}-${c}-${f}`):r.b(`${u}-${f}`))})}),n.value&&l.push(r.is("guttered")),[r.b(),l]});return(l,a)=>(N(),he(nt(l.tag),{class:K(m(s)),style:tt(m(o))},{default:de(()=>[Me(l.$slots,"default")]),_:3},8,["class","style"]))}});var Hx=ze(Bx,[["__file","col.vue"]]);const Oh=Nt(Hx),Dx=re({name:"ElCollapseTransition"}),zx=re({...Dx,setup(e){const t=Ee("collapse-transition"),n=o=>{o.style.maxHeight="",o.style.overflow=o.dataset.oldOverflow,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom},r={beforeEnter(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.style.height&&(o.dataset.elExistsHeight=o.style.height),o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0},enter(o){requestAnimationFrame(()=>{o.dataset.oldOverflow=o.style.overflow,o.dataset.elExistsHeight?o.style.maxHeight=o.dataset.elExistsHeight:o.scrollHeight!==0?o.style.maxHeight=`${o.scrollHeight}px`:o.style.maxHeight=0,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom,o.style.overflow="hidden"})},afterEnter(o){o.style.maxHeight="",o.style.overflow=o.dataset.oldOverflow},enterCancelled(o){n(o)},beforeLeave(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.dataset.oldOverflow=o.style.overflow,o.style.maxHeight=`${o.scrollHeight}px`,o.style.overflow="hidden"},leave(o){o.scrollHeight!==0&&(o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0)},afterLeave(o){n(o)},leaveCancelled(o){n(o)}};return(o,s)=>(N(),he(_n,Yt({name:m(t).b()},bg(r)),{default:de(()=>[Me(o.$slots,"default")]),_:3},16,["name"]))}});var _s=ze(zx,[["__file","collapse-transition.vue"]]);_s.install=e=>{e.component(_s.name,_s)};const jx=_s,Wx=Ze({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Te([String,Array,Object])},zIndex:{type:Te([String,Number])}}),Vx={click:e=>e instanceof MouseEvent},Kx="overlay";var Ux=re({name:"ElOverlay",props:Wx,emits:Vx,setup(e,{slots:t,emit:n}){const r=Ee(Kx),o=i=>{n("click",i)},{onClick:s,onMousedown:l,onMouseup:a}=Hp(e.customMaskEvent?void 0:o);return()=>e.mask?fe("div",{class:[r.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:l,onMouseup:a},[Me(t,"default")],vs.STYLE|vs.CLASS|vs.PROPS,["onClick","onMouseup","onMousedown"]):ye("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Me(t,"default")])}});const Gx=Ux;let qx=class{constructor(t,n){this.parent=t,this.domNode=n,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,n=>{n.addEventListener("keydown",r=>{let o=!1;switch(r.code){case gt.down:{this.gotoSubIndex(this.subIndex+1),o=!0;break}case gt.up:{this.gotoSubIndex(this.subIndex-1),o=!0;break}case gt.tab:{hs(t,"mouseleave");break}case gt.enter:case gt.space:{o=!0,r.currentTarget.click();break}}return o&&(r.preventDefault(),r.stopPropagation()),!1})})}},Yx=class{constructor(t,n){this.domNode=t,this.submenu=null,this.submenu=null,this.init(n)}init(t){this.domNode.setAttribute("tabindex","0");const n=this.domNode.querySelector(`.${t}-menu`);n&&(this.submenu=new qx(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let n=!1;switch(t.code){case gt.down:{hs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),n=!0;break}case gt.up:{hs(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break}case gt.tab:{hs(t.currentTarget,"mouseleave");break}case gt.enter:case gt.space:{n=!0,t.currentTarget.click();break}}n&&t.preventDefault()})}},Xx=class{constructor(t,n){this.domNode=t,this.init(n)}init(t){const n=this.domNode.childNodes;Array.from(n).forEach(r=>{r.nodeType===1&&new Yx(r,t)})}};const Jx=re({name:"ElMenuCollapseTransition",setup(){const e=Ee("menu");return{listeners:{onBeforeEnter:n=>n.style.opacity="0.2",onEnter(n,r){ar(n,`${e.namespace.value}-opacity-transition`),n.style.opacity="1",r()},onAfterEnter(n){vr(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=""},onBeforeLeave(n){n.dataset||(n.dataset={}),hr(n,e.m("collapse"))?(vr(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),ar(n,e.m("collapse"))):(ar(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),vr(n,e.m("collapse"))),n.style.width=`${n.scrollWidth}px`,n.style.overflow="hidden"},onLeave(n){ar(n,"horizontal-collapse-transition"),n.style.width=`${n.dataset.scrollWidth}px`}}}}});function Zx(e,t,n,r,o,s){return N(),he(_n,Yt({mode:"out-in"},e.listeners),{default:de(()=>[Me(e.$slots,"default")]),_:3},16)}var Qx=ze(Jx,[["render",Zx],["__file","menu-collapse-transition.vue"]]);function Ah(e,t){const n=A(()=>{let o=e.parent;const s=[t.value];for(;o.type.name!=="ElMenu";)o.props.index&&s.unshift(o.props.index),o=o.parent;return s});return{parentMenu:A(()=>{let o=e.parent;for(;o&&!["ElMenu","ElSubMenu"].includes(o.type.name);)o=o.parent;return o}),indexPath:n}}function e2(e){return A(()=>{const n=e.backgroundColor;return n?new ch(n).shade(20).toString():""})}const Mh=(e,t)=>{const n=Ee("menu");return A(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":e2(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},t2=Ze({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:_t},expandOpenIcon:{type:_t},collapseCloseIcon:{type:_t},collapseOpenIcon:{type:_t}}),is="ElSubMenu";var ki=re({name:is,props:t2,setup(e,{slots:t,expose:n}){mi({from:"popper-append-to-body",replacement:"teleported",scope:is,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},A(()=>e.popperAppendToBody!==void 0));const r=He(),{indexPath:o,parentMenu:s}=Ah(r,A(()=>e.index)),l=Ee("menu"),a=Ee("sub-menu"),i=_e("rootMenu");i||qn(is,"can not inject root menu");const u=_e(`subMenu:${s.value.uid}`);u||qn(is,"can not inject sub menu");const c=M({}),f=M({});let d;const p=M(!1),h=M(),v=M(null),b=A(()=>_.value==="horizontal"&&w.value?"bottom-start":"right-start"),g=A(()=>_.value==="horizontal"&&w.value||_.value==="vertical"&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?E.value?e.expandOpenIcon:e.expandCloseIcon:hp:e.collapseCloseIcon&&e.collapseOpenIcon?E.value?e.collapseOpenIcon:e.collapseCloseIcon:gi),w=A(()=>u.level===0),T=A(()=>{var z;const oe=(z=e.teleported)!=null?z:e.popperAppendToBody;return oe===void 0?w.value:oe}),y=A(()=>i.props.collapse?`${l.namespace.value}-zoom-in-left`:`${l.namespace.value}-zoom-in-top`),O=A(()=>_.value==="horizontal"&&w.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),E=A(()=>i.openedMenus.includes(e.index)),C=A(()=>{let z=!1;return Object.values(c.value).forEach(oe=>{oe.active&&(z=!0)}),Object.values(f.value).forEach(oe=>{oe.active&&(z=!0)}),z}),_=A(()=>i.props.mode),P=dn({index:e.index,indexPath:o,active:C}),B=Mh(i.props,u.level+1),W=A(()=>{var z;return(z=e.popperOffset)!=null?z:i.props.popperOffset}),I=A(()=>{var z;return(z=e.popperClass)!=null?z:i.props.popperClass}),L=A(()=>{var z;return(z=e.showTimeout)!=null?z:i.props.showTimeout}),V=A(()=>{var z;return(z=e.hideTimeout)!=null?z:i.props.hideTimeout}),G=()=>{var z,oe,se;return(se=(oe=(z=v.value)==null?void 0:z.popperRef)==null?void 0:oe.popperInstanceRef)==null?void 0:se.destroy()},J=z=>{z||G()},H=()=>{i.props.menuTrigger==="hover"&&i.props.mode==="horizontal"||i.props.collapse&&i.props.mode==="vertical"||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:o.value,active:C.value})},te=(z,oe=L.value)=>{var se;if(z.type!=="focus"){if(i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"||e.disabled){u.mouseInChild.value=!0;return}u.mouseInChild.value=!0,d==null||d(),{stop:d}=la(()=>{i.openMenu(e.index,o.value)},oe),T.value&&((se=s.value.vnode.el)==null||se.dispatchEvent(new MouseEvent("mouseenter")))}},k=(z=!1)=>{var oe;if(i.props.menuTrigger==="click"&&i.props.mode==="horizontal"||!i.props.collapse&&i.props.mode==="vertical"){u.mouseInChild.value=!1;return}d==null||d(),u.mouseInChild.value=!1,{stop:d}=la(()=>!p.value&&i.closeMenu(e.index,o.value),V.value),T.value&&z&&((oe=u.handleMouseleave)==null||oe.call(u,!0))};ge(()=>i.props.collapse,z=>J(!!z));{const z=se=>{f.value[se.index]=se},oe=se=>{delete f.value[se.index]};ut(`subMenu:${r.uid}`,{addSubMenu:z,removeSubMenu:oe,handleMouseleave:k,mouseInChild:p,level:u.level+1})}return n({opened:E}),Je(()=>{i.addSubMenu(P),u.addSubMenu(P)}),mt(()=>{u.removeSubMenu(P),i.removeSubMenu(P)}),()=>{var z;const oe=[(z=t.title)==null?void 0:z.call(t),ye(rt,{class:a.e("icon-arrow"),style:{transform:E.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>Se(g.value)?ye(r.appContext.components[g.value]):ye(g.value)})],se=i.isMenuPopup?ye(yl,{ref:v,visible:E.value,effect:"light",pure:!0,offset:W.value,showArrow:!1,persistent:!0,popperClass:I.value,placement:b.value,teleported:T.value,fallbackPlacements:O.value,transition:y.value,gpuAcceleration:!1},{content:()=>{var xe;return ye("div",{class:[l.m(_.value),l.m("popup-container"),I.value],onMouseenter:Re=>te(Re,100),onMouseleave:()=>k(!0),onFocus:Re=>te(Re,100)},[ye("ul",{class:[l.b(),l.m("popup"),l.m(`popup-${b.value}`)],style:B.value},[(xe=t.default)==null?void 0:xe.call(t)])])},default:()=>ye("div",{class:a.e("title"),onClick:H},oe)}):ye(Ue,{},[ye("div",{class:a.e("title"),ref:h,onClick:H},oe),ye(jx,{},{default:()=>{var xe;return it(ye("ul",{role:"menu",class:[l.b(),l.m("inline")],style:B.value},[(xe=t.default)==null?void 0:xe.call(t)]),[[Xt,E.value]])}})]);return ye("li",{class:[a.b(),a.is("active",C.value),a.is("opened",E.value),a.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:E.value,onMouseenter:te,onMouseleave:()=>k(),onFocus:te},[se])}}});const n2=Ze({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Te(Array),default:()=>Bn([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:_t,default:()=>pC},popperEffect:{type:String,values:["dark","light"],default:"dark"},popperClass:String,showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300}}),Dl=e=>Array.isArray(e)&&e.every(t=>Se(t)),r2={close:(e,t)=>Se(e)&&Dl(t),open:(e,t)=>Se(e)&&Dl(t),select:(e,t,n,r)=>Se(e)&&Dl(t)&&Ie(n)&&(r===void 0||r instanceof Promise)};var o2=re({name:"ElMenu",props:n2,emits:r2,setup(e,{emit:t,slots:n,expose:r}){const o=He(),s=o.appContext.config.globalProperties.$router,l=M(),a=Ee("menu"),i=Ee("sub-menu"),u=M(-1),c=M(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=M(e.defaultActive),d=M({}),p=M({}),h=A(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),v=()=>{const L=f.value&&d.value[f.value];if(!L||e.mode==="horizontal"||e.collapse)return;L.indexPath.forEach(G=>{const J=p.value[G];J&&b(G,J.indexPath)})},b=(L,V)=>{c.value.includes(L)||(e.uniqueOpened&&(c.value=c.value.filter(G=>V.includes(G))),c.value.push(L),t("open",L,V))},g=L=>{const V=c.value.indexOf(L);V!==-1&&c.value.splice(V,1)},w=(L,V)=>{g(L),t("close",L,V)},T=({index:L,indexPath:V})=>{c.value.includes(L)?w(L,V):b(L,V)},y=L=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:V,indexPath:G}=L;if(!(yr(V)||yr(G)))if(e.router&&s){const J=L.route||V,H=s.push(J).then(te=>(te||(f.value=V),te));t("select",V,G,{index:V,indexPath:G,route:J},H)}else f.value=V,t("select",V,G,{index:V,indexPath:G})},O=L=>{const V=d.value,G=V[L]||f.value&&V[f.value]||V[e.defaultActive];G?f.value=G.index:f.value=L},E=()=>{var L,V;if(!l.value)return-1;const G=Array.from((V=(L=l.value)==null?void 0:L.childNodes)!=null?V:[]).filter(se=>se.nodeName!=="#comment"&&(se.nodeName!=="#text"||se.nodeValue)),J=64,H=Number.parseInt(getComputedStyle(l.value).paddingLeft,10),te=Number.parseInt(getComputedStyle(l.value).paddingRight,10),k=l.value.clientWidth-H-te;let z=0,oe=0;return G.forEach((se,xe)=>{z+=se.offsetWidth||0,z<=k-J&&(oe=xe+1)}),oe===G.length?-1:oe},C=L=>p.value[L].indexPath,_=(L,V=33.34)=>{let G;return()=>{G&&clearTimeout(G),G=setTimeout(()=>{L()},V)}};let P=!0;const B=()=>{const L=()=>{u.value=-1,We(()=>{u.value=E()})};P?L():_(L)(),P=!1};ge(()=>e.defaultActive,L=>{d.value[L]||(f.value=""),O(L)}),ge(()=>e.collapse,L=>{L&&(c.value=[])}),ge(d.value,v);let W;Wn(()=>{e.mode==="horizontal"&&e.ellipsis?W=Fr(l,B).stop:W==null||W()});const I=M(!1);{const L=H=>{p.value[H.index]=H},V=H=>{delete p.value[H.index]};ut("rootMenu",dn({props:e,openedMenus:c,items:d,subMenus:p,activeIndex:f,isMenuPopup:h,addMenuItem:H=>{d.value[H.index]=H},removeMenuItem:H=>{delete d.value[H.index]},addSubMenu:L,removeSubMenu:V,openMenu:b,closeMenu:w,handleMenuItemClick:y,handleSubMenuClick:T})),ut(`subMenu:${o.uid}`,{addSubMenu:L,removeSubMenu:V,mouseInChild:I,level:0})}return Je(()=>{e.mode==="horizontal"&&new Xx(o.vnode.el,a.namespace.value)}),r({open:V=>{const{indexPath:G}=p.value[V];G.forEach(J=>b(J,G))},close:g,handleResize:B}),()=>{var L,V;let G=(V=(L=n.default)==null?void 0:L.call(n))!=null?V:[];const J=[];if(e.mode==="horizontal"&&l.value){const z=gs(G),oe=u.value===-1?z:z.slice(0,u.value),se=u.value===-1?[]:z.slice(u.value);se!=null&&se.length&&e.ellipsis&&(G=oe,J.push(ye(ki,{index:"sub-menu-more",class:i.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>ye(rt,{class:i.e("icon-more")},{default:()=>ye(e.ellipsisIcon)}),default:()=>se})))}const H=Mh(e,0),te=e.closeOnClickOutside?[[ph,()=>{c.value.length&&(I.value||(c.value.forEach(z=>t("close",z,C(z))),c.value=[]))}]]:[],k=it(ye("ul",{key:String(e.collapse),role:"menubar",ref:l,style:H.value,class:{[a.b()]:!0,[a.m(e.mode)]:!0,[a.m("collapse")]:e.collapse}},[...G,...J]),te);return e.collapseTransition&&e.mode==="vertical"?ye(Qx,()=>k):k}}});const s2=Ze({index:{type:Te([String,null]),default:null},route:{type:Te([String,Object])},disabled:Boolean}),l2={click:e=>Se(e.index)&&Array.isArray(e.indexPath)},zl="ElMenuItem",a2=re({name:zl,components:{ElTooltip:yl},props:s2,emits:l2,setup(e,{emit:t}){const n=He(),r=_e("rootMenu"),o=Ee("menu"),s=Ee("menu-item");r||qn(zl,"can not inject root menu");const{parentMenu:l,indexPath:a}=Ah(n,Bt(e,"index")),i=_e(`subMenu:${l.value.uid}`);i||qn(zl,"can not inject sub menu");const u=A(()=>e.index===r.activeIndex),c=dn({index:e.index,indexPath:a,active:u}),f=()=>{e.disabled||(r.handleMenuItemClick({index:e.index,indexPath:a.value,route:e.route}),t("click",c))};return Je(()=>{i.addSubMenu(c),r.addMenuItem(c)}),mt(()=>{i.removeSubMenu(c),r.removeMenuItem(c)}),{parentMenu:l,rootMenu:r,active:u,nsMenu:o,nsMenuItem:s,handleClick:f}}});function i2(e,t,n,r,o,s){const l=st("el-tooltip");return N(),ie("li",{class:K([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...a)=>e.handleClick&&e.handleClick(...a))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(N(),he(l,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:de(()=>[Me(e.$slots,"title")]),default:de(()=>[ce("div",{class:K(e.nsMenu.be("tooltip","trigger"))},[Me(e.$slots,"default")],2)]),_:3},8,["effect"])):(N(),ie(Ue,{key:1},[Me(e.$slots,"default"),Me(e.$slots,"title")],64))],2)}var Ph=ze(a2,[["render",i2],["__file","menu-item.vue"]]);const u2={title:String},c2="ElMenuItemGroup",f2=re({name:c2,props:u2,setup(){return{ns:Ee("menu-item-group")}}});function d2(e,t,n,r,o,s){return N(),ie("li",{class:K(e.ns.b())},[ce("div",{class:K(e.ns.e("title"))},[e.$slots.title?Me(e.$slots,"title",{key:1}):(N(),ie(Ue,{key:0},[Et(Qe(e.title),1)],64))],2),ce("ul",null,[Me(e.$slots,"default")])],2)}var Rh=ze(f2,[["render",d2],["__file","menu-item-group.vue"]]);const p2=Nt(o2,{MenuItem:Ph,MenuItemGroup:Rh,SubMenu:ki}),h2=xr(Ph);xr(Rh);xr(ki);const v2=Ze({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},size:{type:String,validator:Sp},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},inactiveActionIcon:{type:_t},activeActionIcon:{type:_t},activeIcon:{type:_t},inactiveIcon:{type:_t},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Te(Function)},id:String,tabindex:{type:[String,Number]},value:{type:[Boolean,String,Number],default:!1},label:{type:String,default:void 0}}),g2={[cn]:e=>sn(e)||Se(e)||et(e),[va]:e=>sn(e)||Se(e)||et(e),[ga]:e=>sn(e)||Se(e)||et(e)},m2=["onClick"],y2=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"],b2=["aria-hidden"],w2=["aria-hidden"],C2=["aria-hidden"],Ma="ElSwitch",_2=re({name:Ma}),S2=re({..._2,props:v2,emits:g2,setup(e,{expose:t,emit:n}){const r=e,o=He(),{formItem:s}=eo(),l=Kr(),a=Ee("switch");(_=>{_.forEach(P=>{mi({from:P[0],replacement:P[1],scope:Ma,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},A(()=>{var B;return!!((B=o.vnode.props)!=null&&B[P[2]])}))})})([['"value"','"model-value" or "v-model"',"value"],['"active-color"',"CSS var `--el-switch-on-color`","activeColor"],['"inactive-color"',"CSS var `--el-switch-off-color`","inactiveColor"],['"border-color"',"CSS var `--el-switch-border-color`","borderColor"]]);const{inputId:u}=gl(r,{formItemContext:s}),c=Vo(A(()=>r.loading)),f=M(r.modelValue!==!1),d=M(),p=M(),h=A(()=>[a.b(),a.m(l.value),a.is("disabled",c.value),a.is("checked",T.value)]),v=A(()=>[a.e("label"),a.em("label","left"),a.is("active",!T.value)]),b=A(()=>[a.e("label"),a.em("label","right"),a.is("active",T.value)]),g=A(()=>({width:Hr(r.width)}));ge(()=>r.modelValue,()=>{f.value=!0}),ge(()=>r.value,()=>{f.value=!1});const w=A(()=>f.value?r.modelValue:r.value),T=A(()=>w.value===r.activeValue);[r.activeValue,r.inactiveValue].includes(w.value)||(n(cn,r.inactiveValue),n(va,r.inactiveValue),n(ga,r.inactiveValue)),ge(T,_=>{var P;d.value.checked=_,r.validateEvent&&((P=s==null?void 0:s.validate)==null||P.call(s,"change").catch(B=>void 0))});const y=()=>{const _=T.value?r.inactiveValue:r.activeValue;n(cn,_),n(va,_),n(ga,_),We(()=>{d.value.checked=T.value})},O=()=>{if(c.value)return;const{beforeChange:_}=r;if(!_){y();return}const P=_();[Es(P),sn(P)].includes(!0)||qn(Ma,"beforeChange must return type `Promise` or `boolean`"),Es(P)?P.then(W=>{W&&y()}).catch(W=>{}):P&&y()},E=A(()=>a.cssVarBlock({...r.activeColor?{"on-color":r.activeColor}:null,...r.inactiveColor?{"off-color":r.inactiveColor}:null,...r.borderColor?{"border-color":r.borderColor}:null})),C=()=>{var _,P;(P=(_=d.value)==null?void 0:_.focus)==null||P.call(_)};return Je(()=>{d.value.checked=T.value}),t({focus:C,checked:T}),(_,P)=>(N(),ie("div",{class:K(m(h)),style:tt(m(E)),onClick:Gt(O,["prevent"])},[ce("input",{id:m(u),ref_key:"input",ref:d,class:K(m(a).e("input")),type:"checkbox",role:"switch","aria-checked":m(T),"aria-disabled":m(c),"aria-label":_.label,name:_.name,"true-value":_.activeValue,"false-value":_.inactiveValue,disabled:m(c),tabindex:_.tabindex,onChange:y,onKeydown:uo(O,["enter"])},null,42,y2),!_.inlinePrompt&&(_.inactiveIcon||_.inactiveText)?(N(),ie("span",{key:0,class:K(m(v))},[_.inactiveIcon?(N(),he(m(rt),{key:0},{default:de(()=>[(N(),he(nt(_.inactiveIcon)))]),_:1})):be("v-if",!0),!_.inactiveIcon&&_.inactiveText?(N(),ie("span",{key:1,"aria-hidden":m(T)},Qe(_.inactiveText),9,b2)):be("v-if",!0)],2)):be("v-if",!0),ce("span",{ref_key:"core",ref:p,class:K(m(a).e("core")),style:tt(m(g))},[_.inlinePrompt?(N(),ie("div",{key:0,class:K(m(a).e("inner"))},[_.activeIcon||_.inactiveIcon?(N(),he(m(rt),{key:0,class:K(m(a).is("icon"))},{default:de(()=>[(N(),he(nt(m(T)?_.activeIcon:_.inactiveIcon)))]),_:1},8,["class"])):_.activeText||_.inactiveText?(N(),ie("span",{key:1,class:K(m(a).is("text")),"aria-hidden":!m(T)},Qe(m(T)?_.activeText:_.inactiveText),11,w2)):be("v-if",!0)],2)):be("v-if",!0),ce("div",{class:K(m(a).e("action"))},[_.loading?(N(),he(m(rt),{key:0,class:K(m(a).is("loading"))},{default:de(()=>[fe(m(pl))]),_:1},8,["class"])):m(T)?Me(_.$slots,"active-action",{key:1},()=>[_.activeActionIcon?(N(),he(m(rt),{key:0},{default:de(()=>[(N(),he(nt(_.activeActionIcon)))]),_:1})):be("v-if",!0)]):m(T)?be("v-if",!0):Me(_.$slots,"inactive-action",{key:2},()=>[_.inactiveActionIcon?(N(),he(m(rt),{key:0},{default:de(()=>[(N(),he(nt(_.inactiveActionIcon)))]),_:1})):be("v-if",!0)])],2)],6),!_.inlinePrompt&&(_.activeIcon||_.activeText)?(N(),ie("span",{key:1,class:K(m(b))},[_.activeIcon?(N(),he(m(rt),{key:0},{default:de(()=>[(N(),he(nt(_.activeIcon)))]),_:1})):be("v-if",!0),!_.activeIcon&&_.activeText?(N(),ie("span",{key:1,"aria-hidden":!m(T)},Qe(_.activeText),9,C2)):be("v-if",!0)],2)):be("v-if",!0)],14,m2))}});var E2=ze(S2,[["__file","switch.vue"]]);const x2=Nt(E2),jl=function(e){var t;return(t=e.target)==null?void 0:t.closest("td")},T2=function(e,t,n,r,o){if(!t&&!r&&(!o||Array.isArray(o)&&!o.length))return e;typeof n=="string"?n=n==="descending"?-1:1:n=n&&n<0?-1:1;const s=r?null:function(a,i){return o?(Array.isArray(o)||(o=[o]),o.map(u=>typeof u=="string"?Po(a,u):u(a,i,e))):(t!=="$key"&&Ie(a)&&"$value"in a&&(a=a.$value),[Ie(a)?Po(a,t):a])},l=function(a,i){if(r)return r(a.value,i.value);for(let u=0,c=a.key.length;ui.key[u])return 1}return 0};return e.map((a,i)=>({value:a,index:i,key:s?s(a,i):null})).sort((a,i)=>{let u=l(a,i);return u||(u=a.index-i.index),u*+n}).map(a=>a.value)},$h=function(e,t){let n=null;return e.columns.forEach(r=>{r.id===t&&(n=r)}),n},O2=function(e,t){let n=null;for(let r=0;r{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let r=e;for(const o of n)r=r[o];return`${r}`}else if(typeof t=="function")return t.call(null,e)},cr=function(e,t){const n={};return(e||[]).forEach((r,o)=>{n[pt(r,t)]={row:r,index:o}}),n};function A2(e,t){const n={};let r;for(r in e)n[r]=e[r];for(r in t)if(Ae(t,r)){const o=t[r];typeof o<"u"&&(n[r]=o)}return n}function Fi(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Ih(e){return e===""||e!==void 0&&(e=Fi(e),Number.isNaN(e)&&(e=80)),e}function M2(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function P2(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function yo(e,t,n){let r=!1;const o=e.indexOf(t),s=o!==-1,l=a=>{a==="add"?e.push(t):e.splice(o,1),r=!0,pe(t.children)&&t.children.forEach(i=>{yo(e,i,n??!s)})};return sn(n)?n&&!s?l("add"):!n&&s&&l("remove"):l(s?"remove":"add"),r}function R2(e,t,n="children",r="hasChildren"){const o=l=>!(Array.isArray(l)&&l.length);function s(l,a,i){t(l,a,i),a.forEach(u=>{if(u[r]){t(u,null,i+1);return}const c=u[n];o(c)||s(u,c,i+1)})}e.forEach(l=>{if(l[r]){t(l,null,0);return}const a=l[n];o(a)||s(l,a,0)})}let Ft=null;function $2(e,t,n,r){if((Ft==null?void 0:Ft.trigger)===n)return;Ft==null||Ft();const o=r==null?void 0:r.refs.tableWrapper,s=o==null?void 0:o.dataset.prefix,l={strategy:"fixed",...e.popperOptions},a=fe(yl,{content:t,virtualTriggering:!0,virtualRef:n,appendTo:o,placement:"top",transition:"none",offset:0,hideAfter:0,...e,popperOptions:l,onHide:()=>{Ft==null||Ft()}});a.appContext=r.appContext;const i=document.createElement("div");Lr(a,i),a.component.exposed.onOpen();const u=o==null?void 0:o.querySelector(`.${s}-scrollbar__wrap`);Ft=()=>{Lr(null,i),u==null||u.removeEventListener("scroll",Ft),Ft=null},Ft.trigger=n,u==null||u.addEventListener("scroll",Ft)}function Nh(e){return e.children?B1(e.children,Nh):[e]}function af(e,t){return e+t.colSpan}const Lh=(e,t,n,r)=>{let o=0,s=e;const l=n.states.columns.value;if(r){const i=Nh(r[e]);o=l.slice(0,l.indexOf(i[0])).reduce(af,0),s=o+i.reduce(af,0)-1}else o=e;let a;switch(t){case"left":s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right");break;default:s=l.length-n.states.rightFixedLeafColumnsLength.value&&(a="right")}return a?{direction:a,start:o,after:s}:{}},Bi=(e,t,n,r,o,s=0)=>{const l=[],{direction:a,start:i,after:u}=Lh(t,n,r,o);if(a){const c=a==="left";l.push(`${e}-fixed-column--${a}`),c&&u+s===r.states.fixedLeafColumnsLength.value-1?l.push("is-last-column"):!c&&i-s===r.states.columns.value.length-r.states.rightFixedLeafColumnsLength.value&&l.push("is-first-column")}return l};function uf(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Hi=(e,t,n,r)=>{const{direction:o,start:s=0,after:l=0}=Lh(e,t,n,r);if(!o)return;const a={},i=o==="left",u=n.states.columns.value;return i?a.left=u.slice(0,s).reduce(uf,0):a.right=u.slice(l+1).reverse().reduce(uf,0),a},Gr=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function I2(e){const t=He(),n=M(!1),r=M([]);return{updateExpandRows:()=>{const i=e.data.value||[],u=e.rowKey.value;if(n.value)r.value=i.slice();else if(u){const c=cr(r.value,u);r.value=i.reduce((f,d)=>{const p=pt(d,u);return c[p]&&f.push(d),f},[])}else r.value=[]},toggleRowExpansion:(i,u)=>{yo(r.value,i,u)&&t.emit("expand-change",i,r.value.slice())},setExpandRowKeys:i=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,f=cr(u,c);r.value=i.reduce((d,p)=>{const h=f[p];return h&&d.push(h.row),d},[])},isRowExpanded:i=>{const u=e.rowKey.value;return u?!!cr(r.value,u)[pt(i,u)]:r.value.includes(i)},states:{expandRows:r,defaultExpandAll:n}}}function N2(e){const t=He(),n=M(null),r=M(null),o=u=>{t.store.assertRowKey(),n.value=u,l(u)},s=()=>{n.value=null},l=u=>{const{data:c,rowKey:f}=e;let d=null;f.value&&(d=(m(c)||[]).find(p=>pt(p,f.value)===u)),r.value=d,t.emit("current-change",r.value,null)};return{setCurrentRowKey:o,restoreCurrentRowKey:s,setCurrentRowByKey:l,updateCurrentRow:u=>{const c=r.value;if(u&&u!==c){r.value=u,t.emit("current-change",r.value,c);return}!u&&c&&(r.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],f=r.value;if(!c.includes(f)&&f){if(u){const d=pt(f,u);l(d)}else r.value=null;r.value===null&&t.emit("current-change",null,f)}else n.value&&(l(n.value),s())},states:{_currentRowKey:n,currentRow:r}}}function L2(e){const t=M([]),n=M({}),r=M(16),o=M(!1),s=M({}),l=M("hasChildren"),a=M("children"),i=He(),u=A(()=>{if(!e.rowKey.value)return{};const g=e.data.value||[];return f(g)}),c=A(()=>{const g=e.rowKey.value,w=Object.keys(s.value),T={};return w.length&&w.forEach(y=>{if(s.value[y].length){const O={children:[]};s.value[y].forEach(E=>{const C=pt(E,g);O.children.push(C),E[l.value]&&!T[C]&&(T[C]={children:[]})}),T[y]=O}}),T}),f=g=>{const w=e.rowKey.value,T={};return R2(g,(y,O,E)=>{const C=pt(y,w);Array.isArray(O)?T[C]={children:O.map(_=>pt(_,w)),level:E}:o.value&&(T[C]={children:[],lazy:!0,level:E})},a.value,l.value),T},d=(g=!1,w=(T=>(T=i.store)==null?void 0:T.states.defaultExpandAll.value)())=>{var T;const y=u.value,O=c.value,E=Object.keys(y),C={};if(E.length){const _=m(n),P=[],B=(I,L)=>{if(g)return t.value?w||t.value.includes(L):!!(w||I!=null&&I.expanded);{const V=w||t.value&&t.value.includes(L);return!!(I!=null&&I.expanded||V)}};E.forEach(I=>{const L=_[I],V={...y[I]};if(V.expanded=B(L,I),V.lazy){const{loaded:G=!1,loading:J=!1}=L||{};V.loaded=!!G,V.loading=!!J,P.push(I)}C[I]=V});const W=Object.keys(O);o.value&&W.length&&P.length&&W.forEach(I=>{const L=_[I],V=O[I].children;if(P.includes(I)){if(C[I].children.length!==0)throw new Error("[ElTable]children must be an empty array.");C[I].children=V}else{const{loaded:G=!1,loading:J=!1}=L||{};C[I]={lazy:!0,loaded:!!G,loading:!!J,expanded:B(L,I),children:V,level:""}}})}n.value=C,(T=i.store)==null||T.updateTableScrollY()};ge(()=>t.value,()=>{d(!0)}),ge(()=>u.value,()=>{d()}),ge(()=>c.value,()=>{d()});const p=g=>{t.value=g,d()},h=(g,w)=>{i.store.assertRowKey();const T=e.rowKey.value,y=pt(g,T),O=y&&n.value[y];if(y&&O&&"expanded"in O){const E=O.expanded;w=typeof w>"u"?!O.expanded:w,n.value[y].expanded=w,E!==w&&i.emit("expand-change",g,w),i.store.updateTableScrollY()}},v=g=>{i.store.assertRowKey();const w=e.rowKey.value,T=pt(g,w),y=n.value[T];o.value&&y&&"loaded"in y&&!y.loaded?b(g,T,y):h(g,void 0)},b=(g,w,T)=>{const{load:y}=i.props;y&&!n.value[w].loaded&&(n.value[w].loading=!0,y(g,T,O=>{if(!Array.isArray(O))throw new TypeError("[ElTable] data must be an array");n.value[w].loading=!1,n.value[w].loaded=!0,n.value[w].expanded=!0,O.length&&(s.value[w]=O),i.emit("expand-change",g,!0)}))};return{loadData:b,loadOrToggle:v,toggleTreeExpansion:h,updateTreeExpandKeys:p,updateTreeData:d,normalize:f,states:{expandRowKeys:t,treeData:n,indent:r,lazy:o,lazyTreeNodeMap:s,lazyColumnIdentifier:l,childrenColumnName:a}}}const k2=(e,t)=>{const n=t.sortingColumn;return!n||typeof n.sortable=="string"?e:T2(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Ss=e=>{const t=[];return e.forEach(n=>{n.children&&n.children.length>0?t.push.apply(t,Ss(n.children)):t.push(n)}),t};function F2(){var e;const t=He(),{size:n}=Ga((e=t.proxy)==null?void 0:e.$props),r=M(null),o=M([]),s=M([]),l=M(!1),a=M([]),i=M([]),u=M([]),c=M([]),f=M([]),d=M([]),p=M([]),h=M([]),v=[],b=M(0),g=M(0),w=M(0),T=M(!1),y=M([]),O=M(!1),E=M(!1),C=M(null),_=M({}),P=M(null),B=M(null),W=M(null),I=M(null),L=M(null);ge(o,()=>t.state&&H(!1),{deep:!0});const V=()=>{if(!r.value)throw new Error("[ElTable] prop row-key is required")},G=le=>{var we;(we=le.children)==null||we.forEach(Pe=>{Pe.fixed=le.fixed,G(Pe)})},J=()=>{a.value.forEach(Fe=>{G(Fe)}),c.value=a.value.filter(Fe=>Fe.fixed===!0||Fe.fixed==="left"),f.value=a.value.filter(Fe=>Fe.fixed==="right"),c.value.length>0&&a.value[0]&&a.value[0].type==="selection"&&!a.value[0].fixed&&(a.value[0].fixed=!0,c.value.unshift(a.value[0]));const le=a.value.filter(Fe=>!Fe.fixed);i.value=[].concat(c.value).concat(le).concat(f.value);const we=Ss(le),Pe=Ss(c.value),$e=Ss(f.value);b.value=we.length,g.value=Pe.length,w.value=$e.length,u.value=[].concat(Pe).concat(we).concat($e),l.value=c.value.length>0||f.value.length>0},H=(le,we=!1)=>{le&&J(),we?t.state.doLayout():t.state.debouncedUpdateLayout()},te=le=>y.value.includes(le),k=()=>{T.value=!1,y.value.length&&(y.value=[],t.emit("selection-change",[]))},z=()=>{let le;if(r.value){le=[];const we=cr(y.value,r.value),Pe=cr(o.value,r.value);for(const $e in we)Ae(we,$e)&&!Pe[$e]&&le.push(we[$e].row)}else le=y.value.filter(we=>!o.value.includes(we));if(le.length){const we=y.value.filter(Pe=>!le.includes(Pe));y.value=we,t.emit("selection-change",we.slice())}},oe=()=>(y.value||[]).slice(),se=(le,we=void 0,Pe=!0)=>{if(yo(y.value,le,we)){const Fe=(y.value||[]).slice();Pe&&t.emit("select",Fe,le),t.emit("selection-change",Fe)}},xe=()=>{var le,we;const Pe=E.value?!T.value:!(T.value||y.value.length);T.value=Pe;let $e=!1,Fe=0;const lt=(we=(le=t==null?void 0:t.store)==null?void 0:le.states)==null?void 0:we.rowKey.value;o.value.forEach((Ke,ft)=>{const Lt=ft+Fe;C.value?C.value.call(null,Ke,Lt)&&yo(y.value,Ke,Pe)&&($e=!0):yo(y.value,Ke,Pe)&&($e=!0),Fe+=Ne(pt(Ke,lt))}),$e&&t.emit("selection-change",y.value?y.value.slice():[]),t.emit("select-all",y.value)},Re=()=>{const le=cr(y.value,r.value);o.value.forEach(we=>{const Pe=pt(we,r.value),$e=le[Pe];$e&&(y.value[$e.index]=we)})},De=()=>{var le,we,Pe;if(((le=o.value)==null?void 0:le.length)===0){T.value=!1;return}let $e;r.value&&($e=cr(y.value,r.value));const Fe=function(Lt){return $e?!!$e[pt(Lt,r.value)]:y.value.includes(Lt)};let lt=!0,Ke=0,ft=0;for(let Lt=0,nv=(o.value||[]).length;Lt{var we;if(!t||!t.store)return 0;const{treeData:Pe}=t.store.states;let $e=0;const Fe=(we=Pe.value[le])==null?void 0:we.children;return Fe&&($e+=Fe.length,Fe.forEach(lt=>{$e+=Ne(lt)})),$e},F=(le,we)=>{Array.isArray(le)||(le=[le]);const Pe={};return le.forEach($e=>{_.value[$e.id]=we,Pe[$e.columnKey||$e.id]=we}),Pe},Y=(le,we,Pe)=>{B.value&&B.value!==le&&(B.value.order=null),B.value=le,W.value=we,I.value=Pe},Z=()=>{let le=m(s);Object.keys(_.value).forEach(we=>{const Pe=_.value[we];if(!Pe||Pe.length===0)return;const $e=$h({columns:u.value},we);$e&&$e.filterMethod&&(le=le.filter(Fe=>Pe.some(lt=>$e.filterMethod.call(null,lt,Fe,$e))))}),P.value=le},ae=()=>{o.value=k2(P.value,{sortingColumn:B.value,sortProp:W.value,sortOrder:I.value})},Oe=(le=void 0)=>{le&&le.filter||Z(),ae()},Be=le=>{const{tableHeaderRef:we}=t.refs;if(!we)return;const Pe=Object.assign({},we.filterPanels),$e=Object.keys(Pe);if($e.length)if(typeof le=="string"&&(le=[le]),Array.isArray(le)){const Fe=le.map(lt=>O2({columns:u.value},lt));$e.forEach(lt=>{const Ke=Fe.find(ft=>ft.id===lt);Ke&&(Ke.filteredValue=[])}),t.store.commit("filterChange",{column:Fe,values:[],silent:!0,multi:!0})}else $e.forEach(Fe=>{const lt=u.value.find(Ke=>Ke.id===Fe);lt&&(lt.filteredValue=[])}),_.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},S=()=>{B.value&&(Y(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:x,toggleRowExpansion:R,updateExpandRows:j,states:D,isRowExpanded:X}=I2({data:o,rowKey:r}),{updateTreeExpandKeys:ne,toggleTreeExpansion:q,updateTreeData:Q,loadOrToggle:U,states:ue}=L2({data:o,rowKey:r}),{updateCurrentRowData:ve,updateCurrentRow:$,setCurrentRowKey:ee,states:me}=N2({data:o,rowKey:r});return{assertRowKey:V,updateColumns:J,scheduleLayout:H,isSelected:te,clearSelection:k,cleanSelection:z,getSelectionRows:oe,toggleRowSelection:se,_toggleAllSelection:xe,toggleAllSelection:null,updateSelectionByRowKey:Re,updateAllSelected:De,updateFilters:F,updateCurrentRow:$,updateSort:Y,execFilter:Z,execSort:ae,execQuery:Oe,clearFilter:Be,clearSort:S,toggleRowExpansion:R,setExpandRowKeysAdapter:le=>{x(le),ne(le)},setCurrentRowKey:ee,toggleRowExpansionAdapter:(le,we)=>{u.value.some(({type:$e})=>$e==="expand")?R(le,we):q(le,we)},isRowExpanded:X,updateExpandRows:j,updateCurrentRowData:ve,loadOrToggle:U,updateTreeData:Q,states:{tableSize:n,rowKey:r,data:o,_data:s,isComplex:l,_columns:a,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:f,leafColumns:d,fixedLeafColumns:p,rightFixedLeafColumns:h,updateOrderFns:v,leafColumnsLength:b,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:w,isAllSelected:T,selection:y,reserveSelection:O,selectOnIndeterminate:E,selectable:C,filters:_,filteredData:P,sortingColumn:B,sortProp:W,sortOrder:I,hoverRow:L,...D,...ue,...me}}}function Pa(e,t){return e.map(n=>{var r;return n.id===t.id?t:((r=n.children)!=null&&r.length&&(n.children=Pa(n.children,t)),n)})}function Ra(e){e.forEach(t=>{var n,r;t.no=(n=t.getColumnIndex)==null?void 0:n.call(t),(r=t.children)!=null&&r.length&&Ra(t.children)}),e.sort((t,n)=>t.no-n.no)}function B2(){const e=He(),t=F2();return{ns:Ee("table"),...t,mutations:{setData(l,a){const i=m(l._data)!==a;l.data.value=a,l._data.value=a,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),m(l.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):i?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(l,a,i,u){const c=m(l._columns);let f=[];i?(i&&!i.children&&(i.children=[]),i.children.push(a),f=Pa(c,i)):(c.push(a),f=c),Ra(f),l._columns.value=f,l.updateOrderFns.push(u),a.type==="selection"&&(l.selectable.value=a.selectable,l.reserveSelection.value=a.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(l,a){var i;((i=a.getColumnIndex)==null?void 0:i.call(a))!==a.no&&(Ra(l._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(l,a,i,u){const c=m(l._columns)||[];if(i)i.children.splice(i.children.findIndex(d=>d.id===a.id),1),We(()=>{var d;((d=i.children)==null?void 0:d.length)===0&&delete i.children}),l._columns.value=Pa(c,i);else{const d=c.indexOf(a);d>-1&&(c.splice(d,1),l._columns.value=c)}const f=l.updateOrderFns.indexOf(u);f>-1&&l.updateOrderFns.splice(f,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(l,a){const{prop:i,order:u,init:c}=a;if(i){const f=m(l.columns).find(d=>d.property===i);f&&(f.order=u,e.store.updateSort(f,i,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(l,a){const{sortingColumn:i,sortProp:u,sortOrder:c}=l,f=m(i),d=m(u),p=m(c);p===null&&(l.sortingColumn.value=null,l.sortProp.value=null);const h={filter:!0};e.store.execQuery(h),(!a||!(a.silent||a.init))&&e.emit("sort-change",{column:f,prop:d,order:p}),e.store.updateTableScrollY()},filterChange(l,a){const{column:i,values:u,silent:c}=a,f=e.store.updateFilters(i,u);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(l,a){e.store.toggleRowSelection(a),e.store.updateAllSelected()},setHoverRow(l,a){l.hoverRow.value=a},setCurrentRow(l,a){e.store.updateCurrentRow(a)}},commit:function(l,...a){const i=e.store.mutations;if(i[l])i[l].apply(e,[e.store.states].concat(a));else throw new Error(`Action not found: ${l}`)},updateTableScrollY:function(){We(()=>e.layout.updateScrollY.apply(e.layout))}}}const bo={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"}};function H2(e,t){if(!e)throw new Error("Table is required.");const n=B2();return n.toggleAllSelection=Bs(n._toggleAllSelection,10),Object.keys(bo).forEach(r=>{kh(Fh(t,r),r,n)}),D2(n,t),n}function D2(e,t){Object.keys(bo).forEach(n=>{ge(()=>Fh(t,n),r=>{kh(r,n,e)})})}function kh(e,t,n){let r=e,o=bo[t];typeof bo[t]=="object"&&(o=o.key,r=r||bo[t].default),n.states[o].value=r}function Fh(e,t){if(t.includes(".")){const n=t.split(".");let r=e;return n.forEach(o=>{r=r[o]}),r}else return e[t]}class z2{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=M(null),this.scrollX=M(!1),this.scrollY=M(!1),this.bodyWidth=M(null),this.fixedWidth=M(null),this.rightFixedWidth=M(null),this.gutterWidth=0;for(const n in t)Ae(t,n)&&(Xe(this[n])?this[n].value=t[n]:this[n]=t[n]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const n=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(n!=null&&n.wrapRef)){let r=!0;const o=this.scrollY.value;return r=n.wrapRef.scrollHeight>n.wrapRef.clientHeight,this.scrollY.value=r,o!==r}return!1}setHeight(t,n="height"){if(!Ge)return;const r=this.table.vnode.el;if(t=M2(t),this.height.value=Number(t),!r&&(t||t===0))return We(()=>this.setHeight(t,n));typeof t=="number"?(r.style[n]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(r.style[n]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(r=>{r.isColumnGroup?t.push.apply(t,r.columns):t.push(r)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let n=t;for(;n.tagName!=="DIV";){if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}updateColumnsWidth(){if(!Ge)return;const t=this.fit,n=this.table.vnode.el.clientWidth;let r=0;const o=this.getFlattenColumns(),s=o.filter(i=>typeof i.width!="number");if(o.forEach(i=>{typeof i.width=="number"&&i.realWidth&&(i.realWidth=null)}),s.length>0&&t){if(o.forEach(i=>{r+=Number(i.width||i.minWidth||80)}),r<=n){this.scrollX.value=!1;const i=n-r;if(s.length===1)s[0].realWidth=Number(s[0].minWidth||80)+i;else{const u=s.reduce((d,p)=>d+Number(p.minWidth||80),0),c=i/u;let f=0;s.forEach((d,p)=>{if(p===0)return;const h=Math.floor(Number(d.minWidth||80)*c);f+=h,d.realWidth=Number(d.minWidth||80)+h}),s[0].realWidth=Number(s[0].minWidth||80)+i-f}}else this.scrollX.value=!0,s.forEach(i=>{i.realWidth=Number(i.minWidth)});this.bodyWidth.value=Math.max(r,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else o.forEach(i=>{!i.width&&!i.minWidth?i.realWidth=80:i.realWidth=Number(i.width||i.minWidth),r+=i.realWidth}),this.scrollX.value=r>n,this.bodyWidth.value=r;const l=this.store.states.fixedColumns.value;if(l.length>0){let i=0;l.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.fixedWidth.value=i}const a=this.store.states.rightFixedColumns.value;if(a.length>0){let i=0;a.forEach(u=>{i+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=i}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&this.observers.splice(n,1)}notifyObservers(t){this.observers.forEach(r=>{var o,s;switch(t){case"columns":(o=r.state)==null||o.onColumnsChange(this);break;case"scrollable":(s=r.state)==null||s.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:j2}=Ur,W2=re({name:"ElTableFilterPanel",components:{ElCheckbox:Ur,ElCheckboxGroup:j2,ElScrollbar:Jp,ElTooltip:yl,ElIcon:rt,ArrowDown:hp,ArrowUp:tC},directives:{ClickOutside:ph},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=He(),{t:n}=yi(),r=Ee("table-filter"),o=t==null?void 0:t.parent;o.filterPanels.value[e.column.id]||(o.filterPanels.value[e.column.id]=t);const s=M(!1),l=M(null),a=A(()=>e.column&&e.column.filters),i=A(()=>e.column.filterClassName?`${r.b()} ${e.column.filterClassName}`:r.b()),u=A({get:()=>{var O;return(((O=e.column)==null?void 0:O.filteredValue)||[])[0]},set:O=>{c.value&&(typeof O<"u"&&O!==null?c.value.splice(0,1,O):c.value.splice(0,1))}}),c=A({get(){return e.column?e.column.filteredValue||[]:[]},set(O){e.column&&e.upDataColumn("filteredValue",O)}}),f=A(()=>e.column?e.column.filterMultiple:!0),d=O=>O.value===u.value,p=()=>{s.value=!1},h=O=>{O.stopPropagation(),s.value=!s.value},v=()=>{s.value=!1},b=()=>{T(c.value),p()},g=()=>{c.value=[],T(c.value),p()},w=O=>{u.value=O,T(typeof O<"u"&&O!==null?c.value:[]),p()},T=O=>{e.store.commit("filterChange",{column:e.column,values:O}),e.store.updateAllSelected()};ge(s,O=>{e.column&&e.upDataColumn("filterOpened",O)},{immediate:!0});const y=A(()=>{var O,E;return(E=(O=l.value)==null?void 0:O.popperRef)==null?void 0:E.contentRef});return{tooltipVisible:s,multiple:f,filterClassName:i,filteredValue:c,filterValue:u,filters:a,handleConfirm:b,handleReset:g,handleSelect:w,isActive:d,t:n,ns:r,showFilterPanel:h,hideFilterPanel:v,popperPaneRef:y,tooltip:l}}}),V2={key:0},K2=["disabled"],U2=["label","onClick"];function G2(e,t,n,r,o,s){const l=st("el-checkbox"),a=st("el-checkbox-group"),i=st("el-scrollbar"),u=st("arrow-up"),c=st("arrow-down"),f=st("el-icon"),d=st("el-tooltip"),p=id("click-outside");return N(),he(d,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.filterClassName,persistent:""},{content:de(()=>[e.multiple?(N(),ie("div",V2,[ce("div",{class:K(e.ns.e("content"))},[fe(i,{"wrap-class":e.ns.e("wrap")},{default:de(()=>[fe(a,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=h=>e.filteredValue=h),class:K(e.ns.e("checkbox-group"))},{default:de(()=>[(N(!0),ie(Ue,null,tu(e.filters,h=>(N(),he(l,{key:h.value,label:h.value},{default:de(()=>[Et(Qe(h.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),ce("div",{class:K(e.ns.e("bottom"))},[ce("button",{class:K({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...h)=>e.handleConfirm&&e.handleConfirm(...h))},Qe(e.t("el.table.confirmFilter")),11,K2),ce("button",{type:"button",onClick:t[2]||(t[2]=(...h)=>e.handleReset&&e.handleReset(...h))},Qe(e.t("el.table.resetFilter")),1)],2)])):(N(),ie("ul",{key:1,class:K(e.ns.e("list"))},[ce("li",{class:K([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=h=>e.handleSelect(null))},Qe(e.t("el.table.clearFilter")),3),(N(!0),ie(Ue,null,tu(e.filters,h=>(N(),ie("li",{key:h.value,class:K([e.ns.e("list-item"),e.ns.is("active",e.isActive(h))]),label:h.value,onClick:v=>e.handleSelect(h.value)},Qe(h.text),11,U2))),128))],2))]),default:de(()=>[it((N(),ie("span",{class:K([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...h)=>e.showFilterPanel&&e.showFilterPanel(...h))},[fe(f,null,{default:de(()=>[e.column.filterOpened?(N(),he(u,{key:0})):(N(),he(c,{key:1}))]),_:1})],2)),[[p,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var q2=ze(W2,[["render",G2],["__file","filter-panel.vue"]]);function Bh(e){const t=He();nl(()=>{n.value.addObserver(t)}),Je(()=>{r(n.value),o(n.value)}),Qa(()=>{r(n.value),o(n.value)}),Jr(()=>{n.value.removeObserver(t)});const n=A(()=>{const s=e.layout;if(!s)throw new Error("Can not find table layout.");return s}),r=s=>{var l;const a=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col"))||[];if(!a.length)return;const i=s.getFlattenColumns(),u={};i.forEach(c=>{u[c.id]=c});for(let c=0,f=a.length;c{var l,a;const i=((l=e.vnode.el)==null?void 0:l.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=i.length;c{v.stopPropagation()},s=(v,b)=>{!b.filters&&b.sortable?h(v,b,!1):b.filterable&&!b.sortable&&o(v),r==null||r.emit("header-click",b,v)},l=(v,b)=>{r==null||r.emit("header-contextmenu",b,v)},a=M(null),i=M(!1),u=M({}),c=(v,b)=>{if(Ge&&!(b.children&&b.children.length>0)&&a.value&&e.border){i.value=!0;const g=r;t("set-drag-visible",!0);const T=(g==null?void 0:g.vnode.el).getBoundingClientRect().left,y=n.vnode.el.querySelector(`th.${b.id}`),O=y.getBoundingClientRect(),E=O.left-T+30;ar(y,"noclick"),u.value={startMouseLeft:v.clientX,startLeft:O.right-T,startColumnLeft:O.left-T,tableLeft:T};const C=g==null?void 0:g.refs.resizeProxy;C.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const _=B=>{const W=B.clientX-u.value.startMouseLeft,I=u.value.startLeft+W;C.style.left=`${Math.max(E,I)}px`},P=()=>{if(i.value){const{startColumnLeft:B,startLeft:W}=u.value,L=Number.parseInt(C.style.left,10)-B;b.width=b.realWidth=L,g==null||g.emit("header-dragend",b.width,W-B,b,v),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",i.value=!1,a.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",P),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{vr(y,"noclick")},0)};document.addEventListener("mousemove",_),document.addEventListener("mouseup",P)}},f=(v,b)=>{if(b.children&&b.children.length>0)return;const g=v.target;if(!bn(g))return;const w=g==null?void 0:g.closest("th");if(!(!b||!b.resizable)&&!i.value&&e.border){const T=w.getBoundingClientRect(),y=document.body.style;T.width>12&&T.right-v.pageX<8?(y.cursor="col-resize",hr(w,"is-sortable")&&(w.style.cursor="col-resize"),a.value=b):i.value||(y.cursor="",hr(w,"is-sortable")&&(w.style.cursor="pointer"),a.value=null)}},d=()=>{Ge&&(document.body.style.cursor="")},p=({order:v,sortOrders:b})=>{if(v==="")return b[0];const g=b.indexOf(v||null);return b[g>b.length-2?0:g+1]},h=(v,b,g)=>{var w;v.stopPropagation();const T=b.order===g?null:g||p(b),y=(w=v.target)==null?void 0:w.closest("th");if(y&&hr(y,"noclick")){vr(y,"noclick");return}if(!b.sortable)return;const O=e.store.states;let E=O.sortProp.value,C;const _=O.sortingColumn.value;(_!==b||_===b&&_.order===null)&&(_&&(_.order=null),O.sortingColumn.value=b,E=b.property),T?C=b.order=T:C=b.order=null,O.sortProp.value=E,O.sortOrder.value=C,r==null||r.store.commit("changeSortCondition")};return{handleHeaderClick:s,handleHeaderContextMenu:l,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:h,handleFilterClick:o}}function X2(e){const t=_e(pn),n=Ee("table");return{getHeaderRowStyle:a=>{const i=t==null?void 0:t.props.headerRowStyle;return typeof i=="function"?i.call(null,{rowIndex:a}):i},getHeaderRowClass:a=>{const i=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?i.push(u):typeof u=="function"&&i.push(u.call(null,{rowIndex:a})),i.join(" ")},getHeaderCellStyle:(a,i,u,c)=>{var f;let d=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof d=="function"&&(d=d.call(null,{rowIndex:a,columnIndex:i,row:u,column:c}));const p=Hi(i,c.fixed,e.store,u);return Gr(p,"left"),Gr(p,"right"),Object.assign({},d,p)},getHeaderCellClass:(a,i,u,c)=>{const f=Bi(n.b(),i,c.fixed,e.store,u),d=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||d.push("is-leaf"),c.sortable&&d.push("is-sortable");const p=t==null?void 0:t.props.headerCellClassName;return typeof p=="string"?d.push(p):typeof p=="function"&&d.push(p.call(null,{rowIndex:a,columnIndex:i,row:u,column:c})),d.push(n.e("cell")),d.filter(h=>!!h).join(" ")}}}const Hh=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,Hh(n.children))):t.push(n)}),t},J2=e=>{let t=1;const n=(s,l)=>{if(l&&(s.level=l.level+1,t{n(i,s),a+=i.colSpan}),s.colSpan=a}else s.colSpan=1};e.forEach(s=>{s.level=1,n(s,void 0)});const r=[];for(let s=0;s{s.children?(s.rowSpan=1,s.children.forEach(l=>l.isSubColumn=!0)):s.rowSpan=t-s.level+1,r[s.level-1].push(s)}),r};function Z2(e){const t=_e(pn),n=A(()=>J2(e.store.states.originColumns.value));return{isGroup:A(()=>{const s=n.value.length>1;return s&&t&&(t.state.isGroup.value=!0),s}),toggleAllSelection:s=>{s.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:n}}var Q2=re({name:"ElTableHeader",components:{ElCheckbox:Ur},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const n=He(),r=_e(pn),o=Ee("table"),s=M({}),{onColumnsChange:l,onScrollableChange:a}=Bh(r);Je(async()=>{await We(),await We();const{prop:E,order:C}=e.defaultSort;r==null||r.store.commit("sort",{prop:E,order:C,init:!0})});const{handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:p,handleFilterClick:h}=Y2(e,t),{getHeaderRowStyle:v,getHeaderRowClass:b,getHeaderCellStyle:g,getHeaderCellClass:w}=X2(e),{isGroup:T,toggleAllSelection:y,columnRows:O}=Z2(e);return n.state={onColumnsChange:l,onScrollableChange:a},n.filterPanels=s,{ns:o,filterPanels:s,onColumnsChange:l,onScrollableChange:a,columnRows:O,getHeaderRowClass:b,getHeaderRowStyle:v,getHeaderCellClass:w,getHeaderCellStyle:g,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:f,handleMouseOut:d,handleSortClick:p,handleFilterClick:h,isGroup:T,toggleAllSelection:y}},render(){const{ns:e,isGroup:t,columnRows:n,getHeaderCellStyle:r,getHeaderCellClass:o,getHeaderRowClass:s,getHeaderRowStyle:l,handleHeaderClick:a,handleHeaderContextMenu:i,handleMouseDown:u,handleMouseMove:c,handleSortClick:f,handleMouseOut:d,store:p,$parent:h}=this;let v=1;return ye("thead",{class:{[e.is("group")]:t}},n.map((b,g)=>ye("tr",{class:s(g),key:g,style:l(g)},b.map((w,T)=>(w.rowSpan>v&&(v=w.rowSpan),ye("th",{class:o(g,T,b,w),colspan:w.colSpan,key:`${w.id}-thead`,rowspan:w.rowSpan,style:r(g,T,b,w),onClick:y=>a(y,w),onContextmenu:y=>i(y,w),onMousedown:y=>u(y,w),onMousemove:y=>c(y,w),onMouseout:d},[ye("div",{class:["cell",w.filteredValue&&w.filteredValue.length>0?"highlight":""]},[w.renderHeader?w.renderHeader({column:w,$index:T,store:p,_self:h}):w.label,w.sortable&&ye("span",{onClick:y=>f(y,w),class:"caret-wrapper"},[ye("i",{onClick:y=>f(y,w,"ascending"),class:"sort-caret ascending"}),ye("i",{onClick:y=>f(y,w,"descending"),class:"sort-caret descending"})]),w.filterable&&ye(q2,{store:p,placement:w.filterPlacement||"bottom-start",column:w,upDataColumn:(y,O)=>{w[y]=O}})])]))))))}});function eT(e){const t=_e(pn),n=M(""),r=M(ye("div")),o=(p,h,v)=>{var b;const g=t,w=jl(p);let T;const y=(b=g==null?void 0:g.vnode.el)==null?void 0:b.dataset.prefix;w&&(T=lf({columns:e.store.states.columns.value},w,y),T&&(g==null||g.emit(`cell-${v}`,h,T,w,p))),g==null||g.emit(`row-${v}`,h,T,p)},s=(p,h)=>{o(p,h,"dblclick")},l=(p,h)=>{e.store.commit("setCurrentRow",h),o(p,h,"click")},a=(p,h)=>{o(p,h,"contextmenu")},i=Bs(p=>{e.store.commit("setHoverRow",p)},30),u=Bs(()=>{e.store.commit("setHoverRow",null)},30),c=p=>{const h=window.getComputedStyle(p,null),v=Number.parseInt(h.paddingLeft,10)||0,b=Number.parseInt(h.paddingRight,10)||0,g=Number.parseInt(h.paddingTop,10)||0,w=Number.parseInt(h.paddingBottom,10)||0;return{left:v,right:b,top:g,bottom:w}};return{handleDoubleClick:s,handleClick:l,handleContextMenu:a,handleMouseEnter:i,handleMouseLeave:u,handleCellMouseEnter:(p,h,v)=>{var b;const g=t,w=jl(p),T=(b=g==null?void 0:g.vnode.el)==null?void 0:b.dataset.prefix;if(w){const J=lf({columns:e.store.states.columns.value},w,T),H=g.hoverState={cell:w,column:J,row:h};g==null||g.emit("cell-mouse-enter",H.row,H.column,H.cell,p)}if(!v)return;const y=p.target.querySelector(".cell");if(!(hr(y,`${T}-tooltip`)&&y.childNodes.length))return;const O=document.createRange();O.setStart(y,0),O.setEnd(y,y.childNodes.length);let E=O.getBoundingClientRect().width,C=O.getBoundingClientRect().height;E-Math.floor(E)<.001&&(E=Math.floor(E)),C-Math.floor(C)<.001&&(C=Math.floor(C));const{top:B,left:W,right:I,bottom:L}=c(y),V=W+I,G=B+L;(E+V>y.offsetWidth||C+G>y.offsetHeight||y.scrollWidth>y.offsetWidth)&&$2(v,w.innerText||w.textContent,w,g)},handleCellMouseLeave:p=>{if(!jl(p))return;const v=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",v==null?void 0:v.row,v==null?void 0:v.column,v==null?void 0:v.cell,p)},tooltipContent:n,tooltipTrigger:r}}function tT(e){const t=_e(pn),n=Ee("table");return{getRowStyle:(u,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:u,rowIndex:c}):f||null},getRowClass:(u,c)=>{const f=[n.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(n.em("row","striped"));const d=t==null?void 0:t.props.rowClassName;return typeof d=="string"?f.push(d):typeof d=="function"&&f.push(d.call(null,{row:u,rowIndex:c})),f},getCellStyle:(u,c,f,d)=>{const p=t==null?void 0:t.props.cellStyle;let h=p??{};typeof p=="function"&&(h=p.call(null,{rowIndex:u,columnIndex:c,row:f,column:d}));const v=Hi(c,e==null?void 0:e.fixed,e.store);return Gr(v,"left"),Gr(v,"right"),Object.assign({},h,v)},getCellClass:(u,c,f,d,p)=>{const h=Bi(n.b(),c,e==null?void 0:e.fixed,e.store,void 0,p),v=[d.id,d.align,d.className,...h],b=t==null?void 0:t.props.cellClassName;return typeof b=="string"?v.push(b):typeof b=="function"&&v.push(b.call(null,{rowIndex:u,columnIndex:c,row:f,column:d})),v.push(n.e("cell")),v.filter(g=>!!g).join(" ")},getSpan:(u,c,f,d)=>{let p=1,h=1;const v=t==null?void 0:t.props.spanMethod;if(typeof v=="function"){const b=v({row:u,column:c,rowIndex:f,columnIndex:d});Array.isArray(b)?(p=b[0],h=b[1]):typeof b=="object"&&(p=b.rowspan,h=b.colspan)}return{rowspan:p,colspan:h}},getColspanRealWidth:(u,c,f)=>{if(c<1)return u[f].realWidth;const d=u.map(({realWidth:p,width:h})=>p||h).slice(f,f+c);return Number(d.reduce((p,h)=>Number(p)+Number(h),-1))}}}function nT(e){const t=_e(pn),n=Ee("table"),{handleDoubleClick:r,handleClick:o,handleContextMenu:s,handleMouseEnter:l,handleMouseLeave:a,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:f}=eT(e),{getRowStyle:d,getRowClass:p,getCellStyle:h,getCellClass:v,getSpan:b,getColspanRealWidth:g}=tT(e),w=A(()=>e.store.states.columns.value.findIndex(({type:C})=>C==="default")),T=(C,_)=>{const P=t.props.rowKey;return P?pt(C,P):_},y=(C,_,P,B=!1)=>{const{tooltipEffect:W,tooltipOptions:I,store:L}=e,{indent:V,columns:G}=L.states,J=p(C,_);let H=!0;return P&&(J.push(n.em("row",`level-${P.level}`)),H=P.display),ye("tr",{style:[H?null:{display:"none"},d(C,_)],class:J,key:T(C,_),onDblclick:k=>r(k,C),onClick:k=>o(k,C),onContextmenu:k=>s(k,C),onMouseenter:()=>l(_),onMouseleave:a},G.value.map((k,z)=>{const{rowspan:oe,colspan:se}=b(C,k,_,z);if(!oe||!se)return null;const xe=Object.assign({},k);xe.realWidth=g(G.value,se,z);const Re={store:e.store,_self:e.context||t,column:xe,row:C,$index:_,cellIndex:z,expanded:B};z===w.value&&P&&(Re.treeNode={indent:P.level*V.value,level:P.level},typeof P.expanded=="boolean"&&(Re.treeNode.expanded=P.expanded,"loading"in P&&(Re.treeNode.loading=P.loading),"noLazyChildren"in P&&(Re.treeNode.noLazyChildren=P.noLazyChildren)));const De=`${_},${z}`,Ne=xe.columnKey||xe.rawColumnKey||"",F=O(z,k,Re),Y=k.showOverflowTooltip&&j1({effect:W},I,k.showOverflowTooltip);return ye("td",{style:h(_,z,C,k),class:v(_,z,C,k,se-1),key:`${Ne}${De}`,rowspan:oe,colspan:se,onMouseenter:Z=>i(Z,C,Y),onMouseleave:u},[F])}))},O=(C,_,P)=>_.renderCell(P);return{wrappedRowRender:(C,_)=>{const P=e.store,{isRowExpanded:B,assertRowKey:W}=P,{treeData:I,lazyTreeNodeMap:L,childrenColumnName:V,rowKey:G}=P.states,J=P.states.columns.value;if(J.some(({type:te})=>te==="expand")){const te=B(C),k=y(C,_,void 0,te),z=t.renderExpanded;return te?z?[[k,ye("tr",{key:`expanded-row__${k.key}`},[ye("td",{colspan:J.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[z({row:C,$index:_,store:P,expanded:te})])])]]:(console.error("[Element Error]renderExpanded is required."),k):[[k]]}else if(Object.keys(I.value).length){W();const te=pt(C,G.value);let k=I.value[te],z=null;k&&(z={expanded:k.expanded,level:k.level,display:!0},typeof k.lazy=="boolean"&&(typeof k.loaded=="boolean"&&k.loaded&&(z.noLazyChildren=!(k.children&&k.children.length)),z.loading=k.loading));const oe=[y(C,_,z)];if(k){let se=0;const xe=(De,Ne)=>{De&&De.length&&Ne&&De.forEach(F=>{const Y={display:Ne.display&&Ne.expanded,level:Ne.level+1,expanded:!1,noLazyChildren:!1,loading:!1},Z=pt(F,G.value);if(Z==null)throw new Error("For nested data item, row-key is required.");if(k={...I.value[Z]},k&&(Y.expanded=k.expanded,k.level=k.level||Y.level,k.display=!!(k.expanded&&Y.display),typeof k.lazy=="boolean"&&(typeof k.loaded=="boolean"&&k.loaded&&(Y.noLazyChildren=!(k.children&&k.children.length)),Y.loading=k.loading)),se++,oe.push(y(F,_+se,Y)),k){const ae=L.value[Z]||F[V.value];xe(ae,k)}})};k.display=!0;const Re=L.value[te]||C[V.value];xe(Re,k)}return oe}else return y(C,_,void 0)},tooltipContent:c,tooltipTrigger:f}}const rT={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var oT=re({name:"ElTableBody",props:rT,setup(e){const t=He(),n=_e(pn),r=Ee("table"),{wrappedRowRender:o,tooltipContent:s,tooltipTrigger:l}=nT(e),{onColumnsChange:a,onScrollableChange:i}=Bh(n);return ge(e.store.states.hoverRow,(u,c)=>{!e.store.states.isComplex.value||!Ge||_C(()=>{const f=t==null?void 0:t.vnode.el,d=Array.from((f==null?void 0:f.children)||[]).filter(v=>v==null?void 0:v.classList.contains(`${r.e("row")}`)),p=d[c],h=d[u];p&&vr(p,"hover-row"),h&&ar(h,"hover-row")})}),Jr(()=>{var u;(u=Ft)==null||u()}),{ns:r,onColumnsChange:a,onScrollableChange:i,wrappedRowRender:o,tooltipContent:s,tooltipTrigger:l}},render(){const{wrappedRowRender:e,store:t}=this,n=t.states.data.value||[];return ye("tbody",{tabIndex:-1},[n.reduce((r,o)=>r.concat(e(o,r.length)),[])])}});function sT(){const e=_e(pn),t=e==null?void 0:e.store,n=A(()=>t.states.fixedLeafColumnsLength.value),r=A(()=>t.states.rightFixedColumns.value.length),o=A(()=>t.states.columns.value.length),s=A(()=>t.states.fixedColumns.value.length),l=A(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:n,rightFixedLeafCount:r,columnsCount:o,leftFixedCount:s,rightFixedCount:l,columns:t.states.columns}}function lT(e){const{columns:t}=sT(),n=Ee("table");return{getCellClasses:(s,l)=>{const a=s[l],i=[n.e("cell"),a.id,a.align,a.labelClassName,...Bi(n.b(),l,a.fixed,e.store)];return a.className&&i.push(a.className),a.children||i.push(n.is("leaf")),i},getCellStyles:(s,l)=>{const a=Hi(l,s.fixed,e.store);return Gr(a,"left"),Gr(a,"right"),a},columns:t}}var aT=re({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:n,columns:r}=lT(e);return{ns:Ee("table"),getCellClasses:t,getCellStyles:n,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:r,sumText:o}=this,s=this.store.states.data.value;let l=[];return r?l=r({columns:e,data:s}):e.forEach((a,i)=>{if(i===0){l[i]=o;return}const u=s.map(p=>Number(p[a.property])),c=[];let f=!0;u.forEach(p=>{if(!Number.isNaN(+p)){f=!1;const h=`${p}`.split(".")[1];c.push(h?h.length:0)}});const d=Math.max.apply(null,c);f?l[i]="":l[i]=u.reduce((p,h)=>{const v=Number(h);return Number.isNaN(+v)?p:Number.parseFloat((p+h).toFixed(Math.min(d,20)))},0)}),ye(ye("tfoot",[ye("tr",{},[...e.map((a,i)=>ye("td",{key:i,colspan:a.colSpan,rowspan:a.rowSpan,class:n(e,i),style:t(a,i)},[ye("div",{class:["cell",a.labelClassName]},[l[i]])]))])]))}});function iT(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function uT(e,t,n,r){const o=M(!1),s=M(null),l=M(!1),a=k=>{l.value=k},i=M({width:null,height:null,headerHeight:null}),u=M(!1),c={display:"inline-block",verticalAlign:"middle"},f=M(),d=M(0),p=M(0),h=M(0),v=M(0),b=M(0);Wn(()=>{t.setHeight(e.height)}),Wn(()=>{t.setMaxHeight(e.maxHeight)}),ge(()=>[e.currentRowKey,n.states.rowKey],([k,z])=>{!m(z)||!m(k)||n.setCurrentRowKey(`${k}`)},{immediate:!0}),ge(()=>e.data,k=>{r.store.commit("setData",k)},{immediate:!0,deep:!0}),Wn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{r.store.commit("setHoverRow",null),r.hoverState&&(r.hoverState=null)},w=(k,z)=>{const{pixelX:oe,pixelY:se}=z;Math.abs(oe)>=Math.abs(se)&&(r.refs.bodyWrapper.scrollLeft+=z.pixelX/5)},T=A(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),y=A(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),O=()=>{T.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(P)};Je(async()=>{await We(),n.updateColumns(),B(),requestAnimationFrame(O);const k=r.vnode.el,z=r.refs.headerWrapper;e.flexible&&k&&k.parentElement&&(k.parentElement.style.minWidth="0"),i.value={width:f.value=k.offsetWidth,height:k.offsetHeight,headerHeight:e.showHeader&&z?z.offsetHeight:null},n.states.columns.value.forEach(oe=>{oe.filteredValue&&oe.filteredValue.length&&r.store.commit("filterChange",{column:oe,values:oe.filteredValue,silent:!0})}),r.$ready=!0});const E=(k,z)=>{if(!k)return;const oe=Array.from(k.classList).filter(se=>!se.startsWith("is-scrolling-"));oe.push(t.scrollX.value?z:"is-scrolling-none"),k.className=oe.join(" ")},C=k=>{const{tableWrapper:z}=r.refs;E(z,k)},_=k=>{const{tableWrapper:z}=r.refs;return!!(z&&z.classList.contains(k))},P=function(){if(!r.refs.scrollBarRef)return;if(!t.scrollX.value){const Ne="is-scrolling-none";_(Ne)||C(Ne);return}const k=r.refs.scrollBarRef.wrapRef;if(!k)return;const{scrollLeft:z,offsetWidth:oe,scrollWidth:se}=k,{headerWrapper:xe,footerWrapper:Re}=r.refs;xe&&(xe.scrollLeft=z),Re&&(Re.scrollLeft=z);const De=se-oe-1;z>=De?C("is-scrolling-right"):C(z===0?"is-scrolling-left":"is-scrolling-middle")},B=()=>{r.refs.scrollBarRef&&(r.refs.scrollBarRef.wrapRef&&Dt(r.refs.scrollBarRef.wrapRef,"scroll",P,{passive:!0}),e.fit?Fr(r.vnode.el,W):Dt(window,"resize",W),Fr(r.refs.bodyWrapper,()=>{var k,z;W(),(z=(k=r.refs)==null?void 0:k.scrollBarRef)==null||z.update()}))},W=()=>{var k,z,oe,se;const xe=r.vnode.el;if(!r.$ready||!xe)return;let Re=!1;const{width:De,height:Ne,headerHeight:F}=i.value,Y=f.value=xe.offsetWidth;De!==Y&&(Re=!0);const Z=xe.offsetHeight;(e.height||T.value)&&Ne!==Z&&(Re=!0);const ae=e.tableLayout==="fixed"?r.refs.headerWrapper:(k=r.refs.tableHeaderRef)==null?void 0:k.$el;e.showHeader&&(ae==null?void 0:ae.offsetHeight)!==F&&(Re=!0),d.value=((z=r.refs.tableWrapper)==null?void 0:z.scrollHeight)||0,h.value=(ae==null?void 0:ae.scrollHeight)||0,v.value=((oe=r.refs.footerWrapper)==null?void 0:oe.offsetHeight)||0,b.value=((se=r.refs.appendWrapper)==null?void 0:se.offsetHeight)||0,p.value=d.value-h.value-v.value-b.value,Re&&(i.value={width:Y,height:Z,headerHeight:e.showHeader&&(ae==null?void 0:ae.offsetHeight)||0},O())},I=Kr(),L=A(()=>{const{bodyWidth:k,scrollY:z,gutterWidth:oe}=t;return k.value?`${k.value-(z.value?oe:0)}px`:""}),V=A(()=>e.maxHeight?"fixed":e.tableLayout),G=A(()=>{if(e.data&&e.data.length)return null;let k="100%";e.height&&p.value&&(k=`${p.value}px`);const z=f.value;return{width:z?`${z}px`:"",height:k}}),J=A(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),H=A(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${h.value+v.value}px)`}:{maxHeight:`${e.maxHeight-h.value-v.value}px`}:{});return{isHidden:o,renderExpanded:s,setDragVisible:a,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:w,tableSize:I,emptyBlockStyle:G,handleFixedMousewheel:(k,z)=>{const oe=r.refs.bodyWrapper;if(Math.abs(z.spinY)>0){const se=oe.scrollTop;z.pixelY<0&&se!==0&&k.preventDefault(),z.pixelY>0&&oe.scrollHeight-oe.clientHeight>se&&k.preventDefault(),oe.scrollTop+=Math.ceil(z.pixelY/5)}else oe.scrollLeft+=Math.ceil(z.pixelX/5)},resizeProxyVisible:l,bodyWidth:L,resizeState:i,doLayout:O,tableBodyStyles:y,tableLayout:V,scrollbarViewStyle:c,tableInnerStyle:J,scrollbarStyle:H}}function cT(e){const t=M(),n=()=>{const o=e.vnode.el.querySelector(".hidden-columns"),s={childList:!0,subtree:!0},l=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{l.forEach(a=>a())}),t.value.observe(o,s)};Je(()=>{n()}),Jr(()=>{var r;(r=t.value)==null||r.disconnect()})}var fT={data:{type:Array,default:()=>[]},size:Wo,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean,showOverflowTooltip:[Boolean,Object]};function Dh(e){const t=e.tableLayout==="auto";let n=e.columns||[];t&&n.every(o=>o.width===void 0)&&(n=[]);const r=o=>{const s={key:`${e.tableLayout}_${o.id}`,style:{},name:void 0};return t?s.style={width:`${o.width}px`}:s.name=o.id,s};return ye("colgroup",{},n.map(o=>ye("col",r(o))))}Dh.props=["columns","tableLayout"];const dT=()=>{const e=M(),t=(s,l)=>{const a=e.value;a&&a.scrollTo(s,l)},n=(s,l)=>{const a=e.value;a&&et(l)&&["Top","Left"].includes(s)&&a[`setScroll${s}`](l)};return{scrollBarRef:e,scrollTo:t,setScrollTop:s=>n("Top",s),setScrollLeft:s=>n("Left",s)}};let pT=1;const hT=re({name:"ElTable",directives:{Mousewheel:fx},components:{TableHeader:Q2,TableBody:oT,TableFooter:aT,ElScrollbar:Jp,hColgroup:Dh},props:fT,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=yi(),n=Ee("table"),r=He();ut(pn,r);const o=H2(r,e);r.store=o;const s=new z2({store:r.store,table:r,fit:e.fit,showHeader:e.showHeader});r.layout=s;const l=A(()=>(o.states.data.value||[]).length===0),{setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:p,clearSort:h,sort:v}=iT(o),{isHidden:b,renderExpanded:g,setDragVisible:w,isGroup:T,handleMouseLeave:y,handleHeaderFooterMousewheel:O,tableSize:E,emptyBlockStyle:C,handleFixedMousewheel:_,resizeProxyVisible:P,bodyWidth:B,resizeState:W,doLayout:I,tableBodyStyles:L,tableLayout:V,scrollbarViewStyle:G,tableInnerStyle:J,scrollbarStyle:H}=uT(e,s,o,r),{scrollBarRef:te,scrollTo:k,setScrollLeft:z,setScrollTop:oe}=dT(),se=Bs(I,50),xe=`${n.namespace.value}-table_${pT++}`;r.tableId=xe,r.state={isGroup:T,resizeState:W,doLayout:I,debouncedUpdateLayout:se};const Re=A(()=>e.sumText||t("el.table.sumText")),De=A(()=>e.emptyText||t("el.table.emptyText"));return cT(r),{ns:n,layout:s,store:o,handleHeaderFooterMousewheel:O,handleMouseLeave:y,tableId:xe,tableSize:E,isHidden:b,isEmpty:l,renderExpanded:g,resizeProxyVisible:P,resizeState:W,isGroup:T,bodyWidth:B,tableBodyStyles:L,emptyBlockStyle:C,debouncedUpdateLayout:se,handleFixedMousewheel:_,setCurrentRow:a,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:f,toggleAllSelection:d,toggleRowExpansion:p,clearSort:h,doLayout:I,sort:v,t,setDragVisible:w,context:r,computedSumText:Re,computedEmptyText:De,tableLayout:V,scrollbarViewStyle:G,tableInnerStyle:J,scrollbarStyle:H,scrollBarRef:te,scrollTo:k,setScrollLeft:z,setScrollTop:oe}}}),vT=["data-prefix"],gT={ref:"hiddenColumns",class:"hidden-columns"};function mT(e,t,n,r,o,s){const l=st("hColgroup"),a=st("table-header"),i=st("table-body"),u=st("table-footer"),c=st("el-scrollbar"),f=id("mousewheel");return N(),ie("div",{ref:"tableWrapper",class:K([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:tt(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=(...d)=>e.handleMouseLeave&&e.handleMouseLeave(...d))},[ce("div",{class:K(e.ns.e("inner-wrapper")),style:tt(e.tableInnerStyle)},[ce("div",gT,[Me(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?it((N(),ie("div",{key:0,ref:"headerWrapper",class:K(e.ns.e("header-wrapper"))},[ce("table",{ref:"tableHeader",class:K(e.ns.e("header")),style:tt(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[fe(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),fe(a,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):be("v-if",!0),ce("div",{ref:"bodyWrapper",class:K(e.ns.e("body-wrapper"))},[fe(c,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:de(()=>[ce("table",{ref:"tableBody",class:K(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:tt({width:e.bodyWidth,tableLayout:e.tableLayout})},[fe(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(N(),he(a,{key:0,ref:"tableHeaderRef",class:K(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","onSetDragVisible"])):be("v-if",!0),fe(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&e.tableLayout==="auto"?(N(),he(u,{key:1,class:K(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):be("v-if",!0)],6),e.isEmpty?(N(),ie("div",{key:0,ref:"emptyBlock",style:tt(e.emptyBlockStyle),class:K(e.ns.e("empty-block"))},[ce("span",{class:K(e.ns.e("empty-text"))},[Me(e.$slots,"empty",{},()=>[Et(Qe(e.computedEmptyText),1)])],2)],6)):be("v-if",!0),e.$slots.append?(N(),ie("div",{key:1,ref:"appendWrapper",class:K(e.ns.e("append-wrapper"))},[Me(e.$slots,"append")],2)):be("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary&&e.tableLayout==="fixed"?it((N(),ie("div",{key:1,ref:"footerWrapper",class:K(e.ns.e("footer-wrapper"))},[ce("table",{class:K(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:tt(e.tableBodyStyles)},[fe(l,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),fe(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Xt,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):be("v-if",!0),e.border||e.isGroup?(N(),ie("div",{key:2,class:K(e.ns.e("border-left-patch"))},null,2)):be("v-if",!0)],6),it(ce("div",{ref:"resizeProxy",class:K(e.ns.e("column-resize-proxy"))},null,2),[[Xt,e.resizeProxyVisible]])],46,vT)}var yT=ze(hT,[["render",mT],["__file","table.vue"]]);const bT={selection:"table-column--selection",expand:"table__expand-column"},wT={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},CT=e=>bT[e]||"",_T={selection:{renderHeader({store:e,column:t}){function n(){return e.states.data.value&&e.states.data.value.length===0}return ye(Ur,{disabled:n(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value,ariaLabel:t.label})},renderCell({row:e,column:t,store:n,$index:r}){return ye(Ur,{disabled:t.selectable?!t.selectable.call(null,e,r):!1,size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:o=>o.stopPropagation(),modelValue:n.isSelected(e),ariaLabel:t.label})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let n=t+1;const r=e.index;return typeof r=="number"?n=t+r:typeof r=="function"&&(n=r(t)),ye("div",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:n}){const{ns:r}=t,o=[r.e("expand-icon")];return n&&o.push(r.em("expand-icon","expanded")),ye("div",{class:o,onClick:function(l){l.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[ye(rt,null,{default:()=>[ye(gi)]})]})},sortable:!1,resizable:!1}};function ST({row:e,column:t,$index:n}){var r;const o=t.property,s=o&&q1(e,o).value;return t&&t.formatter?t.formatter(e,t,s,n):((r=s==null?void 0:s.toString)==null?void 0:r.call(s))||""}function ET({row:e,treeNode:t,store:n},r=!1){const{ns:o}=n;if(!t)return r?[ye("span",{class:o.e("placeholder")})]:null;const s=[],l=function(a){a.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&s.push(ye("span",{class:o.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const a=[o.e("expand-icon"),t.expanded?o.em("expand-icon","expanded"):""];let i=gi;t.loading&&(i=pl),s.push(ye("div",{class:a,onClick:l},{default:()=>[ye(rt,{class:{[o.is("loading")]:t.loading}},{default:()=>[ye(i)]})]}))}else s.push(ye("span",{class:o.e("placeholder")}));return s}function cf(e,t){return e.reduce((n,r)=>(n[r]=r,n),t)}function xT(e,t){const n=He();return{registerComplexWatchers:()=>{const s=["fixed"],l={realWidth:"width",realMinWidth:"minWidth"},a=cf(s,l);Object.keys(a).forEach(i=>{const u=l[i];Ae(t,u)&&ge(()=>t[u],c=>{let f=c;u==="width"&&i==="realWidth"&&(f=Fi(c)),u==="minWidth"&&i==="realMinWidth"&&(f=Ih(c)),n.columnConfig.value[u]=f,n.columnConfig.value[i]=f;const d=u==="fixed";e.value.store.scheduleLayout(d)})})},registerNormalWatchers:()=>{const s=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip"],l={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},a=cf(s,l);Object.keys(a).forEach(i=>{const u=l[i];Ae(t,u)&&ge(()=>t[u],c=>{n.columnConfig.value[i]=c})})}}}function TT(e,t,n){const r=He(),o=M(""),s=M(!1),l=M(),a=M(),i=Ee("table");Wn(()=>{l.value=e.align?`is-${e.align}`:null,l.value}),Wn(()=>{a.value=e.headerAlign?`is-${e.headerAlign}`:l.value,a.value});const u=A(()=>{let y=r.vnode.vParent||r.parent;for(;y&&!y.tableId&&!y.columnId;)y=y.vnode.vParent||y.parent;return y}),c=A(()=>{const{store:y}=r.parent;if(!y)return!1;const{treeData:O}=y.states,E=O.value;return E&&Object.keys(E).length>0}),f=M(Fi(e.width)),d=M(Ih(e.minWidth)),p=y=>(f.value&&(y.width=f.value),d.value&&(y.minWidth=d.value),!f.value&&d.value&&(y.width=void 0),y.minWidth||(y.minWidth=80),y.realWidth=Number(y.width===void 0?y.minWidth:y.width),y),h=y=>{const O=y.type,E=_T[O]||{};Object.keys(E).forEach(_=>{const P=E[_];_!=="className"&&P!==void 0&&(y[_]=P)});const C=CT(O);if(C){const _=`${m(i.namespace)}-${C}`;y.className=y.className?`${y.className} ${_}`:_}return y},v=y=>{Array.isArray(y)?y.forEach(E=>O(E)):O(y);function O(E){var C;((C=E==null?void 0:E.type)==null?void 0:C.name)==="ElTableColumn"&&(E.vParent=r)}};return{columnId:o,realAlign:l,isSubColumn:s,realHeaderAlign:a,columnOrTableParent:u,setColumnWidth:p,setColumnForcedProps:h,setColumnRenders:y=>{e.renderHeader||y.type!=="selection"&&(y.renderHeader=E=>(r.columnConfig.value.label,Me(t,"header",E,()=>[y.label])));let O=y.renderCell;return y.type==="expand"?(y.renderCell=E=>ye("div",{class:"cell"},[O(E)]),n.value.renderExpanded=E=>t.default?t.default(E):t.default):(O=O||ST,y.renderCell=E=>{let C=null;if(t.default){const L=t.default(E);C=L.some(V=>V.type!==St)?L:O(E)}else C=O(E);const{columns:_}=n.value.store.states,P=_.value.findIndex(L=>L.type==="default"),B=c.value&&E.cellIndex===P,W=ET(E,B),I={class:"cell",style:{}};return y.showOverflowTooltip&&(I.class=`${I.class} ${m(i.namespace)}-tooltip`,I.style={width:`${(E.column.realWidth||Number(E.column.width))-1}px`}),v(C),ye("div",I,[W,C])}),y},getPropsData:(...y)=>y.reduce((O,E)=>(Array.isArray(E)&&E.forEach(C=>{O[C]=e[C]}),O),{}),getColumnElIndex:(y,O)=>Array.prototype.indexOf.call(y,O),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",r.columnConfig.value)}}}var OT={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let AT=1;var zh=re({name:"ElTableColumn",components:{ElCheckbox:Ur},props:OT,setup(e,{slots:t}){const n=He(),r=M({}),o=A(()=>{let T=n.parent;for(;T&&!T.tableId;)T=T.parent;return T}),{registerNormalWatchers:s,registerComplexWatchers:l}=xT(o,e),{columnId:a,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:d,setColumnRenders:p,getPropsData:h,getColumnElIndex:v,realAlign:b,updateColumnOrder:g}=TT(e,t,o),w=c.value;a.value=`${w.tableId||w.columnId}_column_${AT++}`,nl(()=>{i.value=o.value!==w;const T=e.type||"default",y=e.sortable===""?!0:e.sortable,O=Br(e.showOverflowTooltip)?w.props.showOverflowTooltip:e.showOverflowTooltip,E={...wT[T],id:a.value,type:T,property:e.prop||e.property,align:b,headerAlign:u,showOverflowTooltip:O,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:y,index:e.index,rawColumnKey:n.vnode.key};let W=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);W=A2(E,W),W=P2(p,f,d)(W),r.value=W,s(),l()}),Je(()=>{var T;const y=c.value,O=i.value?y.vnode.el.children:(T=y.refs.hiddenColumns)==null?void 0:T.children,E=()=>v(O||[],n.vnode.el);r.value.getColumnIndex=E,E()>-1&&o.value.store.commit("insertColumn",r.value,i.value?y.columnConfig.value:null,g)}),mt(()=>{o.value.store.commit("removeColumn",r.value,i.value?w.columnConfig.value:null,g)}),n.columnId=a.value,n.columnConfig=r},render(){var e,t,n;try{const r=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),o=[];if(Array.isArray(r))for(const l of r)((n=l.type)==null?void 0:n.name)==="ElTableColumn"||l.shapeFlag&2?o.push(l):l.type===Ue&&Array.isArray(l.children)&&l.children.forEach(a=>{(a==null?void 0:a.patchFlag)!==1024&&!Se(a==null?void 0:a.children)&&o.push(a)});return ye("div",o)}catch{return ye("div",[])}}});const MT=Nt(yT,{TableColumn:zh}),PT=xr(zh),jh=["success","info","warning","error"],wt=Bn({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Ge?document.body:void 0}),RT=Ze({customClass:{type:String,default:wt.customClass},center:{type:Boolean,default:wt.center},dangerouslyUseHTMLString:{type:Boolean,default:wt.dangerouslyUseHTMLString},duration:{type:Number,default:wt.duration},icon:{type:_t,default:wt.icon},id:{type:String,default:wt.id},message:{type:Te([String,Object,Function]),default:wt.message},onClose:{type:Te(Function),required:!1},showClose:{type:Boolean,default:wt.showClose},type:{type:String,values:jh,default:wt.type},offset:{type:Number,default:wt.offset},zIndex:{type:Number,default:wt.zIndex},grouping:{type:Boolean,default:wt.grouping},repeatNum:{type:Number,default:wt.repeatNum}}),$T={destroy:()=>!0},qt=Va([]),IT=e=>{const t=qt.findIndex(o=>o.id===e),n=qt[t];let r;return t>0&&(r=qt[t-1]),{current:n,prev:r}},NT=e=>{const{prev:t}=IT(e);return t?t.vm.exposed.bottom.value:0},LT=(e,t)=>qt.findIndex(r=>r.id===e)>0?20:t,kT=["id"],FT=["innerHTML"],BT=re({name:"ElMessage"}),HT=re({...BT,props:RT,emits:$T,setup(e,{expose:t}){const n=e,{Close:r}=Cp,{ns:o,zIndex:s}=qp("message"),{currentZIndex:l,nextZIndex:a}=s,i=M(),u=M(!1),c=M(0);let f;const d=A(()=>n.type?n.type==="error"?"danger":n.type:"info"),p=A(()=>{const C=n.type;return{[o.bm("icon",C)]:C&&Ds[C]}}),h=A(()=>n.icon||Ds[n.type]||""),v=A(()=>NT(n.id)),b=A(()=>LT(n.id,n.offset)+v.value),g=A(()=>c.value+b.value),w=A(()=>({top:`${b.value}px`,zIndex:l.value}));function T(){n.duration!==0&&({stop:f}=la(()=>{O()},n.duration))}function y(){f==null||f()}function O(){u.value=!1}function E({code:C}){C===gt.esc&&O()}return Je(()=>{T(),a(),u.value=!0}),ge(()=>n.repeatNum,()=>{y(),T()}),Dt(document,"keydown",E),Fr(i,()=>{c.value=i.value.getBoundingClientRect().height}),t({visible:u,bottom:g,close:O}),(C,_)=>(N(),he(_n,{name:m(o).b("fade"),onBeforeLeave:C.onClose,onAfterLeave:_[0]||(_[0]=P=>C.$emit("destroy")),persisted:""},{default:de(()=>[it(ce("div",{id:C.id,ref_key:"messageRef",ref:i,class:K([m(o).b(),{[m(o).m(C.type)]:C.type},m(o).is("center",C.center),m(o).is("closable",C.showClose),C.customClass]),style:tt(m(w)),role:"alert",onMouseenter:y,onMouseleave:T},[C.repeatNum>1?(N(),he(m(NE),{key:0,value:C.repeatNum,type:m(d),class:K(m(o).e("badge"))},null,8,["value","type","class"])):be("v-if",!0),m(h)?(N(),he(m(rt),{key:1,class:K([m(o).e("icon"),m(p)])},{default:de(()=>[(N(),he(nt(m(h))))]),_:1},8,["class"])):be("v-if",!0),Me(C.$slots,"default",{},()=>[C.dangerouslyUseHTMLString?(N(),ie(Ue,{key:1},[be(" Caution here, message could've been compromised, never use user's input as message "),ce("p",{class:K(m(o).e("content")),innerHTML:C.message},null,10,FT)],2112)):(N(),ie("p",{key:0,class:K(m(o).e("content"))},Qe(C.message),3))]),C.showClose?(N(),he(m(rt),{key:2,class:K(m(o).e("closeBtn")),onClick:Gt(O,["stop"])},{default:de(()=>[fe(m(r))]),_:1},8,["class","onClick"])):be("v-if",!0)],46,kT),[[Xt,u.value]])]),_:3},8,["name","onBeforeLeave"]))}});var DT=ze(HT,[["__file","message.vue"]]);let zT=1;const Wh=e=>{const t=!e||Se(e)||an(e)||Ce(e)?{message:e}:e,n={...wt,...t};if(!n.appendTo)n.appendTo=document.body;else if(Se(n.appendTo)){let r=document.querySelector(n.appendTo);bn(r)||(r=document.body),n.appendTo=r}return n},jT=e=>{const t=qt.indexOf(e);if(t===-1)return;qt.splice(t,1);const{handler:n}=e;n.close()},WT=({appendTo:e,...t},n)=>{const r=`message_${zT++}`,o=t.onClose,s=document.createElement("div"),l={...t,id:r,onClose:()=>{o==null||o(),jT(c)},onDestroy:()=>{Lr(null,s)}},a=fe(DT,l,Ce(l.message)||an(l.message)?{default:Ce(l.message)?l.message:()=>l.message}:null);a.appContext=n||qr._context,Lr(a,s),e.appendChild(s.firstElementChild);const i=a.component,c={id:r,vnode:a,vm:i,handler:{close:()=>{i.exposed.visible.value=!1}},props:a.component.props};return c},qr=(e={},t)=>{if(!Ge)return{close:()=>{}};if(et(Bc.max)&&qt.length>=Bc.max)return{close:()=>{}};const n=Wh(e);if(n.grouping&&qt.length){const o=qt.find(({vnode:s})=>{var l;return((l=s.props)==null?void 0:l.message)===n.message});if(o)return o.props.repeatNum+=1,o.props.type=n.type,o.handler}const r=WT(n,t);return qt.push(r),r.handler};jh.forEach(e=>{qr[e]=(t={},n)=>{const r=Wh(t);return qr({...r,type:e},n)}});function VT(e){for(const t of qt)(!e||e===t.props.type)&&t.handler.close()}qr.closeAll=VT;qr._context=null;const nr=wC(qr,"$message"),KT=re({name:"ElMessageBox",directives:{TrapFocus:ox},components:{ElButton:dh,ElFocusTrap:oh,ElInput:Yp,ElOverlay:Gx,ElIcon:rt,...Cp},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Sp},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{locale:n,zIndex:r,ns:o,size:s}=qp("message-box",A(()=>e.buttonSize)),{t:l}=n,{nextZIndex:a}=r,i=M(!1),u=dn({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:a()}),c=A(()=>{const G=u.type;return{[o.bm("icon",G)]:G&&Ds[G]}}),f=js(),d=js(),p=A(()=>u.icon||Ds[u.type]||""),h=A(()=>!!u.message),v=M(),b=M(),g=M(),w=M(),T=M(),y=A(()=>u.confirmButtonClass);ge(()=>u.inputValue,async G=>{await We(),e.boxType==="prompt"&&G!==null&&W()},{immediate:!0}),ge(()=>i.value,G=>{var J,H;G&&(e.boxType!=="prompt"&&(u.autofocus?g.value=(H=(J=T.value)==null?void 0:J.$el)!=null?H:v.value:g.value=v.value),u.zIndex=a()),e.boxType==="prompt"&&(G?We().then(()=>{var te;w.value&&w.value.$el&&(u.autofocus?g.value=(te=I())!=null?te:v.value:g.value=v.value)}):(u.editorErrorMessage="",u.validateError=!1))});const O=A(()=>e.draggable);TC(v,b,O),Je(async()=>{await We(),e.closeOnHashChange&&window.addEventListener("hashchange",E)}),mt(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",E)});function E(){i.value&&(i.value=!1,We(()=>{u.action&&t("action",u.action)}))}const C=()=>{e.closeOnClickModal&&B(u.distinguishCancelAndClose?"close":"cancel")},_=Hp(C),P=G=>{if(u.inputType!=="textarea")return G.preventDefault(),B("confirm")},B=G=>{var J;e.boxType==="prompt"&&G==="confirm"&&!W()||(u.action=G,u.beforeClose?(J=u.beforeClose)==null||J.call(u,G,u,E):E())},W=()=>{if(e.boxType==="prompt"){const G=u.inputPattern;if(G&&!G.test(u.inputValue||""))return u.editorErrorMessage=u.inputErrorMessage||l("el.messagebox.error"),u.validateError=!0,!1;const J=u.inputValidator;if(typeof J=="function"){const H=J(u.inputValue);if(H===!1)return u.editorErrorMessage=u.inputErrorMessage||l("el.messagebox.error"),u.validateError=!0,!1;if(typeof H=="string")return u.editorErrorMessage=H,u.validateError=!0,!1}}return u.editorErrorMessage="",u.validateError=!1,!0},I=()=>{const G=w.value.$refs;return G.input||G.textarea},L=()=>{B("close")},V=()=>{e.closeOnPressEscape&&L()};return e.lockScroll&&$C(i),{...Ga(u),ns:o,overlayEvent:_,visible:i,hasMessage:h,typeClass:c,contentId:f,inputId:d,btnSize:s,iconComponent:p,confirmButtonClasses:y,rootRef:v,focusStartRef:g,headerRef:b,inputRef:w,confirmRef:T,doClose:E,handleClose:L,onCloseRequested:V,handleWrapperClick:C,handleInputEnter:P,handleAction:B,t:l}}}),UT=["aria-label","aria-describedby"],GT=["aria-label"],qT=["id"];function YT(e,t,n,r,o,s){const l=st("el-icon"),a=st("close"),i=st("el-input"),u=st("el-button"),c=st("el-focus-trap"),f=st("el-overlay");return N(),he(_n,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=d=>e.$emit("vanish")),persisted:""},{default:de(()=>[it(fe(f,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:de(()=>[ce("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:K(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...d)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...d)),onMousedown:t[9]||(t[9]=(...d)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...d)),onMouseup:t[10]||(t[10]=(...d)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...d))},[fe(c,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:de(()=>[ce("div",{ref:"rootRef",class:K([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:tt(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=Gt(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(N(),ie("div",{key:0,ref:"headerRef",class:K(e.ns.e("header"))},[ce("div",{class:K(e.ns.e("title"))},[e.iconComponent&&e.center?(N(),he(l,{key:0,class:K([e.ns.e("status"),e.typeClass])},{default:de(()=>[(N(),he(nt(e.iconComponent)))]),_:1},8,["class"])):be("v-if",!0),ce("span",null,Qe(e.title),1)],2),e.showClose?(N(),ie("button",{key:0,type:"button",class:K(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=uo(Gt(d=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[fe(l,{class:K(e.ns.e("close"))},{default:de(()=>[fe(a)]),_:1},8,["class"])],42,GT)):be("v-if",!0)],2)):be("v-if",!0),ce("div",{id:e.contentId,class:K(e.ns.e("content"))},[ce("div",{class:K(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(N(),he(l,{key:0,class:K([e.ns.e("status"),e.typeClass])},{default:de(()=>[(N(),he(nt(e.iconComponent)))]),_:1},8,["class"])):be("v-if",!0),e.hasMessage?(N(),ie("div",{key:1,class:K(e.ns.e("message"))},[Me(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(N(),he(nt(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(N(),he(nt(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:de(()=>[Et(Qe(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):be("v-if",!0)],2),it(ce("div",{class:K(e.ns.e("input"))},[fe(i,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=d=>e.inputValue=d),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:K({invalid:e.validateError}),onKeydown:uo(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),ce("div",{class:K(e.ns.e("errormsg")),style:tt({visibility:e.editorErrorMessage?"visible":"hidden"})},Qe(e.editorErrorMessage),7)],2),[[Xt,e.showInput]])],10,qT),ce("div",{class:K(e.ns.e("btns"))},[e.showCancelButton?(N(),he(u,{key:0,loading:e.cancelButtonLoading,class:K([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=d=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=uo(Gt(d=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:de(()=>[Et(Qe(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):be("v-if",!0),it(fe(u,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:K([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=d=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=uo(Gt(d=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:de(()=>[Et(Qe(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[Xt,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,UT)]),_:3},8,["z-index","overlay-class","mask"]),[[Xt,e.visible]])]),_:3})}var XT=ze(KT,[["render",YT],["__file","index.vue"]]);const Io=new Map,JT=e=>{let t=document.body;return e.appendTo&&(Se(e.appendTo)&&(t=document.querySelector(e.appendTo)),bn(e.appendTo)&&(t=e.appendTo),bn(t)||(t=document.body)),t},ZT=(e,t,n=null)=>{const r=fe(XT,e,Ce(e.message)||an(e.message)?{default:Ce(e.message)?e.message:()=>e.message}:null);return r.appContext=n,Lr(r,t),JT(e).appendChild(t.firstElementChild),r.component},QT=()=>document.createElement("div"),eO=(e,t)=>{const n=QT();e.onVanish=()=>{Lr(null,n),Io.delete(o)},e.onAction=s=>{const l=Io.get(o);let a;e.showInput?a={value:o.inputValue,action:s}:a=s,e.callback?e.callback(a,r.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?l.reject("close"):l.reject("cancel"):l.resolve(a)};const r=ZT(e,n,t),o=r.proxy;for(const s in e)Ae(e,s)&&!Ae(o.$props,s)&&(o[s]=e[s]);return o.visible=!0,o};function no(e,t=null){if(!Ge)return Promise.reject();let n;return Se(e)||an(e)?e={message:e}:n=e.callback,new Promise((r,o)=>{const s=eO(e,t??no._context);Io.set(s,{options:e,callback:n,resolve:r,reject:o})})}const tO=["alert","confirm","prompt"],nO={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};tO.forEach(e=>{no[e]=rO(e)});function rO(e){return(t,n,r,o)=>{let s="";return Ie(n)?(r=n,s=""):Br(n)?s="":s=n,no(Object.assign({title:s,message:t,type:"",...nO[e]},r,{boxType:e}),o)}}no.close=()=>{Io.forEach((e,t)=>{t.doClose()}),Io.clear()};no._context=null;const $n=no;$n.install=e=>{$n._context=e._context,e.config.globalProperties.$msgbox=$n,e.config.globalProperties.$messageBox=$n,e.config.globalProperties.$alert=$n.alert,e.config.globalProperties.$confirm=$n.confirm,e.config.globalProperties.$prompt=$n.prompt};const oO=$n,sO={id:"app"},lO={class:"grid-content header-color"},aO={class:"header-content"},iO=ce("div",{class:"brand"},[ce("a",{href:"#"},"frp client")],-1),uO={class:"dark-switch"},cO={id:"content"},fO=ce("footer",null,null,-1),dO=re({__name:"App",setup(e){const t=Cy(),n=M(t),r=jm(t),o=s=>{s==""&&window.open("https://github.com/fatedier/frp")};return(s,l)=>{const a=x2,i=h2,u=p2,c=Oh,f=st("router-view"),d=Li;return N(),ie("div",sO,[ce("header",lO,[ce("div",aO,[iO,ce("div",uO,[fe(a,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=p=>n.value=p),"inline-prompt":"","active-text":"Dark","inactive-text":"Light",onChange:m(r),style:{"--el-switch-on-color":"#444452","--el-switch-off-color":"#589ef8"}},null,8,["modelValue","onChange"])])])]),ce("section",null,[fe(d,null,{default:de(()=>[fe(c,{id:"side-nav",xs:24,md:4},{default:de(()=>[fe(u,{"default-active":"1",mode:"vertical",theme:"light",router:"false",onSelect:o},{default:de(()=>[fe(i,{index:"/"},{default:de(()=>[Et("Overview")]),_:1}),fe(i,{index:"/configure"},{default:de(()=>[Et("Configure")]),_:1}),fe(i,{index:""},{default:de(()=>[Et("Help")]),_:1})]),_:1})]),_:1}),fe(c,{xs:24,md:20},{default:de(()=>[ce("div",cO,[fe(f)])]),_:1})]),_:1})]),fO])}}});/*! - * vue-router v4.2.5 - * (c) 2023 Eduardo San Martin Morote - * @license MIT - */const Ar=typeof window<"u";function pO(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const je=Object.assign;function Wl(e,t){const n={};for(const r in t){const o=t[r];n[r]=Zt(o)?o.map(e):e(o)}return n}const wo=()=>{},Zt=Array.isArray,hO=/\/$/,vO=e=>e.replace(hO,"");function Vl(e,t,n="/"){let r,o={},s="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(r=t.slice(0,i),s=t.slice(i+1,a>-1?a:t.length),o=e(s)),a>-1&&(r=r||t.slice(0,a),l=t.slice(a,t.length)),r=bO(r??t,n),{fullPath:r+(s&&"?")+s+l,path:r,query:o,hash:l}}function gO(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ff(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function mO(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Yr(t.matched[r],n.matched[o])&&Vh(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Yr(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Vh(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!yO(e[n],t[n]))return!1;return!0}function yO(e,t){return Zt(e)?df(e,t):Zt(t)?df(t,e):e===t}function df(e,t){return Zt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function bO(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,l,a;for(l=0;l1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(l-(l===r.length?1:0)).join("/")}var No;(function(e){e.pop="pop",e.push="push"})(No||(No={}));var Co;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Co||(Co={}));function wO(e){if(!e)if(Ar){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),vO(e)}const CO=/^[^#]+#/;function _O(e,t){return e.replace(CO,"#")+t}function SO(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const bl=()=>({left:window.pageXOffset,top:window.pageYOffset});function EO(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=SO(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function pf(e,t){return(history.state?history.state.position-t:-1)+e}const $a=new Map;function xO(e,t){$a.set(e,t)}function TO(e){const t=$a.get(e);return $a.delete(e),t}let OO=()=>location.protocol+"//"+location.host;function Kh(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let a=o.includes(e.slice(s))?e.slice(s).length:1,i=o.slice(a);return i[0]!=="/"&&(i="/"+i),ff(i,"")}return ff(n,e)+r+o}function AO(e,t,n,r){let o=[],s=[],l=null;const a=({state:d})=>{const p=Kh(e,location),h=n.value,v=t.value;let b=0;if(d){if(n.value=p,t.value=d,l&&l===h){l=null;return}b=v?d.position-v.position:0}else r(p);o.forEach(g=>{g(n.value,h,{delta:b,type:No.pop,direction:b?b>0?Co.forward:Co.back:Co.unknown})})};function i(){l=n.value}function u(d){o.push(d);const p=()=>{const h=o.indexOf(d);h>-1&&o.splice(h,1)};return s.push(p),p}function c(){const{history:d}=window;d.state&&d.replaceState(je({},d.state,{scroll:bl()}),"")}function f(){for(const d of s)d();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:i,listen:u,destroy:f}}function hf(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?bl():null}}function MO(e){const{history:t,location:n}=window,r={value:Kh(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(i,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:OO()+e+i;try{t[c?"replaceState":"pushState"](u,"",d),o.value=u}catch(p){console.error(p),n[c?"replace":"assign"](d)}}function l(i,u){const c=je({},t.state,hf(o.value.back,i,o.value.forward,!0),u,{position:o.value.position});s(i,c,!0),r.value=i}function a(i,u){const c=je({},o.value,t.state,{forward:i,scroll:bl()});s(c.current,c,!0);const f=je({},hf(r.value,i,null),{position:c.position+1},u);s(i,f,!1),r.value=i}return{location:r,state:o,push:a,replace:l}}function PO(e){e=wO(e);const t=MO(e),n=AO(e,t.state,t.location,t.replace);function r(s,l=!0){l||n.pauseListeners(),history.go(s)}const o=je({location:"",base:e,go:r,createHref:_O.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function RO(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),PO(e)}function $O(e){return typeof e=="string"||e&&typeof e=="object"}function Uh(e){return typeof e=="string"||typeof e=="symbol"}const Mn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Gh=Symbol("");var vf;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(vf||(vf={}));function Xr(e,t){return je(new Error,{type:e,[Gh]:!0},t)}function vn(e,t){return e instanceof Error&&Gh in e&&(t==null||!!(e.type&t))}const gf="[^/]+?",IO={sensitive:!1,strict:!1,start:!0,end:!0},NO=/[.+*?^${}()[\]/\\]/g;function LO(e,t){const n=je({},IO,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function FO(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const BO={type:0,value:""},HO=/[a-zA-Z0-9_]/;function DO(e){if(!e)return[[]];if(e==="/")return[[BO]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const o=[];let s;function l(){s&&o.push(s),s=[]}let a=0,i,u="",c="";function f(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=i}for(;a{l(w)}:wo}function l(c){if(Uh(c)){const f=r.get(c);f&&(r.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(l),f.alias.forEach(l))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&r.delete(c.record.name),c.children.forEach(l),c.alias.forEach(l))}}function a(){return n}function i(c){let f=0;for(;f=0&&(c.record.path!==n[f].record.path||!qh(c,n[f]));)f++;n.splice(f,0,c),c.record.name&&!bf(c)&&r.set(c.record.name,c)}function u(c,f){let d,p={},h,v;if("name"in c&&c.name){if(d=r.get(c.name),!d)throw Xr(1,{location:c});v=d.record.name,p=je(yf(f.params,d.keys.filter(w=>!w.optional).map(w=>w.name)),c.params&&yf(c.params,d.keys.map(w=>w.name))),h=d.stringify(p)}else if("path"in c)h=c.path,d=n.find(w=>w.re.test(h)),d&&(p=d.parse(h),v=d.record.name);else{if(d=f.name?r.get(f.name):n.find(w=>w.re.test(f.path)),!d)throw Xr(1,{location:c,currentLocation:f});v=d.record.name,p=je({},f.params,c.params),h=d.stringify(p)}const b=[];let g=d;for(;g;)b.unshift(g.record),g=g.parent;return{name:v,path:h,params:p,matched:b,meta:KO(b)}}return e.forEach(c=>s(c)),{addRoute:s,resolve:u,removeRoute:l,getRoutes:a,getRecordMatcher:o}}function yf(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function WO(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:VO(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function VO(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function bf(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function KO(e){return e.reduce((t,n)=>je(t,n.meta),{})}function wf(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function qh(e,t){return t.children.some(n=>n===e||qh(e,n))}const Yh=/#/g,UO=/&/g,GO=/\//g,qO=/=/g,YO=/\?/g,Xh=/\+/g,XO=/%5B/g,JO=/%5D/g,Jh=/%5E/g,ZO=/%60/g,Zh=/%7B/g,QO=/%7C/g,Qh=/%7D/g,eA=/%20/g;function Di(e){return encodeURI(""+e).replace(QO,"|").replace(XO,"[").replace(JO,"]")}function tA(e){return Di(e).replace(Zh,"{").replace(Qh,"}").replace(Jh,"^")}function Ia(e){return Di(e).replace(Xh,"%2B").replace(eA,"+").replace(Yh,"%23").replace(UO,"%26").replace(ZO,"`").replace(Zh,"{").replace(Qh,"}").replace(Jh,"^")}function nA(e){return Ia(e).replace(qO,"%3D")}function rA(e){return Di(e).replace(Yh,"%23").replace(YO,"%3F")}function oA(e){return e==null?"":rA(e).replace(GO,"%2F")}function Ks(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function sA(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Ia(s)):[r&&Ia(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function lA(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Zt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const aA=Symbol(""),_f=Symbol(""),zi=Symbol(""),ev=Symbol(""),Na=Symbol("");function ao(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Fn(e,t,n,r,o){const s=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const i=f=>{f===!1?a(Xr(4,{from:n,to:t})):f instanceof Error?a(f):$O(f)?a(Xr(2,{from:t,to:f})):(s&&r.enterCallbacks[o]===s&&typeof f=="function"&&s.push(f),l())},u=e.call(r&&r.instances[o],t,n,i);let c=Promise.resolve(u);e.length<3&&(c=c.then(i)),c.catch(f=>a(f))})}function Kl(e,t,n,r){const o=[];for(const s of e)for(const l in s.components){let a=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(iA(a)){const u=(a.__vccOpts||a)[t];u&&o.push(Fn(u,n,r,s,l))}else{let i=a();o.push(()=>i.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${s.path}"`));const c=pO(u)?u.default:u;s.components[l]=c;const d=(c.__vccOpts||c)[t];return d&&Fn(d,n,r,s,l)()}))}}return o}function iA(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Sf(e){const t=_e(zi),n=_e(ev),r=A(()=>t.resolve(m(e.to))),o=A(()=>{const{matched:i}=r.value,{length:u}=i,c=i[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(Yr.bind(null,c));if(d>-1)return d;const p=Ef(i[u-2]);return u>1&&Ef(c)===p&&f[f.length-1].path!==p?f.findIndex(Yr.bind(null,i[u-2])):d}),s=A(()=>o.value>-1&&dA(n.params,r.value.params)),l=A(()=>o.value>-1&&o.value===n.matched.length-1&&Vh(n.params,r.value.params));function a(i={}){return fA(i)?t[m(e.replace)?"replace":"push"](m(e.to)).catch(wo):Promise.resolve()}return{route:r,href:A(()=>r.value.href),isActive:s,isExactActive:l,navigate:a}}const uA=re({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Sf,setup(e,{slots:t}){const n=dn(Sf(e)),{options:r}=_e(zi),o=A(()=>({[xf(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[xf(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:ye("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),cA=uA;function fA(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function dA(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!Zt(o)||o.length!==r.length||r.some((s,l)=>s!==o[l]))return!1}return!0}function Ef(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const xf=(e,t,n)=>e??t??n,pA=re({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=_e(Na),o=A(()=>e.route||r.value),s=_e(_f,0),l=A(()=>{let u=m(s);const{matched:c}=o.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=A(()=>o.value.matched[l.value]);ut(_f,A(()=>l.value+1)),ut(aA,a),ut(Na,o);const i=M();return ge(()=>[i.value,a.value,e.name],([u,c,f],[d,p,h])=>{c&&(c.instances[f]=u,p&&p!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!Yr(c,p)||!d)&&(c.enterCallbacks[f]||[]).forEach(v=>v(u))},{flush:"post"}),()=>{const u=o.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return Tf(n.default,{Component:d,route:u});const p=f.props[c],h=p?p===!0?u.params:typeof p=="function"?p(u):p:null,b=ye(d,je({},h,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[c]=null)},ref:i}));return Tf(n.default,{Component:b,route:u})||b}}});function Tf(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const hA=pA;function vA(e){const t=jO(e.routes,e),n=e.parseQuery||sA,r=e.stringifyQuery||Cf,o=e.history,s=ao(),l=ao(),a=ao(),i=pr(Mn);let u=Mn;Ar&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Wl.bind(null,F=>""+F),f=Wl.bind(null,oA),d=Wl.bind(null,Ks);function p(F,Y){let Z,ae;return Uh(F)?(Z=t.getRecordMatcher(F),ae=Y):ae=F,t.addRoute(ae,Z)}function h(F){const Y=t.getRecordMatcher(F);Y&&t.removeRoute(Y)}function v(){return t.getRoutes().map(F=>F.record)}function b(F){return!!t.getRecordMatcher(F)}function g(F,Y){if(Y=je({},Y||i.value),typeof F=="string"){const x=Vl(n,F,Y.path),R=t.resolve({path:x.path},Y),j=o.createHref(x.fullPath);return je(x,R,{params:d(R.params),hash:Ks(x.hash),redirectedFrom:void 0,href:j})}let Z;if("path"in F)Z=je({},F,{path:Vl(n,F.path,Y.path).path});else{const x=je({},F.params);for(const R in x)x[R]==null&&delete x[R];Z=je({},F,{params:f(x)}),Y.params=f(Y.params)}const ae=t.resolve(Z,Y),Oe=F.hash||"";ae.params=c(d(ae.params));const Be=gO(r,je({},F,{hash:tA(Oe),path:ae.path})),S=o.createHref(Be);return je({fullPath:Be,hash:Oe,query:r===Cf?lA(F.query):F.query||{}},ae,{redirectedFrom:void 0,href:S})}function w(F){return typeof F=="string"?Vl(n,F,i.value.path):je({},F)}function T(F,Y){if(u!==F)return Xr(8,{from:Y,to:F})}function y(F){return C(F)}function O(F){return y(je(w(F),{replace:!0}))}function E(F){const Y=F.matched[F.matched.length-1];if(Y&&Y.redirect){const{redirect:Z}=Y;let ae=typeof Z=="function"?Z(F):Z;return typeof ae=="string"&&(ae=ae.includes("?")||ae.includes("#")?ae=w(ae):{path:ae},ae.params={}),je({query:F.query,hash:F.hash,params:"path"in ae?{}:F.params},ae)}}function C(F,Y){const Z=u=g(F),ae=i.value,Oe=F.state,Be=F.force,S=F.replace===!0,x=E(Z);if(x)return C(je(w(x),{state:typeof x=="object"?je({},Oe,x.state):Oe,force:Be,replace:S}),Y||Z);const R=Z;R.redirectedFrom=Y;let j;return!Be&&mO(r,ae,Z)&&(j=Xr(16,{to:R,from:ae}),oe(ae,ae,!0,!1)),(j?Promise.resolve(j):B(R,ae)).catch(D=>vn(D)?vn(D,2)?D:z(D):te(D,R,ae)).then(D=>{if(D){if(vn(D,2))return C(je({replace:S},w(D.to),{state:typeof D.to=="object"?je({},Oe,D.to.state):Oe,force:Be}),Y||R)}else D=I(R,ae,!0,S,Oe);return W(R,ae,D),D})}function _(F,Y){const Z=T(F,Y);return Z?Promise.reject(Z):Promise.resolve()}function P(F){const Y=Re.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(F):F()}function B(F,Y){let Z;const[ae,Oe,Be]=gA(F,Y);Z=Kl(ae.reverse(),"beforeRouteLeave",F,Y);for(const x of ae)x.leaveGuards.forEach(R=>{Z.push(Fn(R,F,Y))});const S=_.bind(null,F,Y);return Z.push(S),Ne(Z).then(()=>{Z=[];for(const x of s.list())Z.push(Fn(x,F,Y));return Z.push(S),Ne(Z)}).then(()=>{Z=Kl(Oe,"beforeRouteUpdate",F,Y);for(const x of Oe)x.updateGuards.forEach(R=>{Z.push(Fn(R,F,Y))});return Z.push(S),Ne(Z)}).then(()=>{Z=[];for(const x of Be)if(x.beforeEnter)if(Zt(x.beforeEnter))for(const R of x.beforeEnter)Z.push(Fn(R,F,Y));else Z.push(Fn(x.beforeEnter,F,Y));return Z.push(S),Ne(Z)}).then(()=>(F.matched.forEach(x=>x.enterCallbacks={}),Z=Kl(Be,"beforeRouteEnter",F,Y),Z.push(S),Ne(Z))).then(()=>{Z=[];for(const x of l.list())Z.push(Fn(x,F,Y));return Z.push(S),Ne(Z)}).catch(x=>vn(x,8)?x:Promise.reject(x))}function W(F,Y,Z){a.list().forEach(ae=>P(()=>ae(F,Y,Z)))}function I(F,Y,Z,ae,Oe){const Be=T(F,Y);if(Be)return Be;const S=Y===Mn,x=Ar?history.state:{};Z&&(ae||S?o.replace(F.fullPath,je({scroll:S&&x&&x.scroll},Oe)):o.push(F.fullPath,Oe)),i.value=F,oe(F,Y,Z,S),z()}let L;function V(){L||(L=o.listen((F,Y,Z)=>{if(!De.listening)return;const ae=g(F),Oe=E(ae);if(Oe){C(je(Oe,{replace:!0}),ae).catch(wo);return}u=ae;const Be=i.value;Ar&&xO(pf(Be.fullPath,Z.delta),bl()),B(ae,Be).catch(S=>vn(S,12)?S:vn(S,2)?(C(S.to,ae).then(x=>{vn(x,20)&&!Z.delta&&Z.type===No.pop&&o.go(-1,!1)}).catch(wo),Promise.reject()):(Z.delta&&o.go(-Z.delta,!1),te(S,ae,Be))).then(S=>{S=S||I(ae,Be,!1),S&&(Z.delta&&!vn(S,8)?o.go(-Z.delta,!1):Z.type===No.pop&&vn(S,20)&&o.go(-1,!1)),W(ae,Be,S)}).catch(wo)}))}let G=ao(),J=ao(),H;function te(F,Y,Z){z(F);const ae=J.list();return ae.length?ae.forEach(Oe=>Oe(F,Y,Z)):console.error(F),Promise.reject(F)}function k(){return H&&i.value!==Mn?Promise.resolve():new Promise((F,Y)=>{G.add([F,Y])})}function z(F){return H||(H=!F,V(),G.list().forEach(([Y,Z])=>F?Z(F):Y()),G.reset()),F}function oe(F,Y,Z,ae){const{scrollBehavior:Oe}=e;if(!Ar||!Oe)return Promise.resolve();const Be=!Z&&TO(pf(F.fullPath,0))||(ae||!Z)&&history.state&&history.state.scroll||null;return We().then(()=>Oe(F,Y,Be)).then(S=>S&&EO(S)).catch(S=>te(S,F,Y))}const se=F=>o.go(F);let xe;const Re=new Set,De={currentRoute:i,listening:!0,addRoute:p,removeRoute:h,hasRoute:b,getRoutes:v,resolve:g,options:e,push:y,replace:O,go:se,back:()=>se(-1),forward:()=>se(1),beforeEach:s.add,beforeResolve:l.add,afterEach:a.add,onError:J.add,isReady:k,install(F){const Y=this;F.component("RouterLink",cA),F.component("RouterView",hA),F.config.globalProperties.$router=Y,Object.defineProperty(F.config.globalProperties,"$route",{enumerable:!0,get:()=>m(i)}),Ar&&!xe&&i.value===Mn&&(xe=!0,y(o.location).catch(Oe=>{}));const Z={};for(const Oe in Mn)Object.defineProperty(Z,Oe,{get:()=>i.value[Oe],enumerable:!0});F.provide(zi,Y),F.provide(ev,Va(Z)),F.provide(Na,i);const ae=F.unmount;Re.add(F),F.unmount=function(){Re.delete(F),Re.size<1&&(u=Mn,L&&L(),L=null,i.value=Mn,xe=!1,H=!1),ae()}}};function Ne(F){return F.reduce((Y,Z)=>Y.then(()=>P(Z)),Promise.resolve())}return De}function gA(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let l=0;lYr(u,a))?r.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(u=>Yr(u,i))||o.push(i))}return[n,r,o]}const mA=re({__name:"Overview",setup(e){let t=M([]);return(()=>{fetch("/api/status",{credentials:"include"}).then(r=>r.json()).then(r=>{t.value=new Array;for(let o in r)for(let s of r[o])console.log(s),t.value.push(s)}).catch(r=>{nr({showClose:!0,message:"Get status info from frpc failed!"+r,type:"warning"})})})(),(r,o)=>{const s=PT,l=MT,a=Oh,i=Li;return N(),ie("div",null,[fe(i,null,{default:de(()=>[fe(a,{md:24},{default:de(()=>[ce("div",null,[fe(l,{data:m(t),stripe:"",style:{width:"100%"},"default-sort":{prop:"type",order:"ascending"}},{default:de(()=>[fe(s,{prop:"name",label:"name",sortable:""}),fe(s,{prop:"type",label:"type",width:"150",sortable:""}),fe(s,{prop:"local_addr",label:"local address",width:"200",sortable:""}),fe(s,{prop:"plugin",label:"plugin",width:"200",sortable:""}),fe(s,{prop:"remote_addr",label:"remote address",sortable:""}),fe(s,{prop:"status",label:"status",width:"150",sortable:""}),fe(s,{prop:"err",label:"info"})]),_:1},8,["data"])])]),_:1})]),_:1})])}}}),yA=re({__name:"ClientConfigure",setup(e){let t=M("");const n=()=>{fetch("/api/config",{credentials:"include"}).then(o=>o.text()).then(o=>{t.value=o}).catch(()=>{nr({showClose:!0,message:"Get configure content from frpc failed!",type:"warning"})})},r=()=>{oO.confirm("This operation will upload your frpc configure file content and hot reload it, do you want to continue?","Notice",{confirmButtonText:"Yes",cancelButtonText:"No",type:"warning"}).then(()=>{if(t.value==""){nr({message:"Configure content can not be empty!",type:"warning"});return}fetch("/api/config",{credentials:"include",method:"PUT",body:t.value}).then(()=>{fetch("/api/reload",{credentials:"include"}).then(()=>{nr({type:"success",message:"Success"})}).catch(o=>{nr({showClose:!0,message:"Reload frpc configure file error, "+o,type:"warning"})})}).catch(()=>{nr({showClose:!0,message:"Put config to frpc and hot reload failed!",type:"warning"})})}).catch(()=>{nr({message:"Canceled",type:"info"})})};return n(),(o,s)=>{const l=dh,a=Li,i=Yp;return N(),ie("div",null,[fe(a,{id:"head"},{default:de(()=>[fe(l,{type:"primary",onClick:n},{default:de(()=>[Et("Refresh")]),_:1}),fe(l,{type:"primary",onClick:r},{default:de(()=>[Et("Upload")]),_:1})]),_:1}),fe(i,{type:"textarea",autosize:"",modelValue:m(t),"onUpdate:modelValue":s[0]||(s[0]=u=>Xe(t)?t.value=u:t=u),placeholder:"frpc configure file, can not be empty..."},null,8,["modelValue"])])}}}),bA=vA({history:RO(),routes:[{path:"/",name:"Overview",component:mA},{path:"/configure",name:"ClientConfigure",component:yA}]}),tv=Mm(dO);tv.use(bA);tv.mount("#app")});export default wA(); diff --git a/assets/frpc/static/index-JCcyRUo1.css b/assets/frpc/static/index-JCcyRUo1.css new file mode 100644 index 00000000000..d3804e1e224 --- /dev/null +++ b/assets/frpc/static/index-JCcyRUo1.css @@ -0,0 +1 @@ +@charset "UTF-8";html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(51,117,185);--el-color-primary-light-5:rgb(42,89,138);--el-color-primary-light-7:rgb(33,61,91);--el-color-primary-light-8:rgb(29,48,67);--el-color-primary-light-9:rgb(24,34,43);--el-color-primary-dark-2:rgb(102,177,255);--el-color-success:#67c23a;--el-color-success-light-3:rgb(78,142,47);--el-color-success-light-5:rgb(62,107,39);--el-color-success-light-7:rgb(45,72,31);--el-color-success-light-8:rgb(37,55,28);--el-color-success-light-9:rgb(28,37,24);--el-color-success-dark-2:rgb(133,206,97);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(167,119,48);--el-color-warning-light-5:rgb(125,91,40);--el-color-warning-light-7:rgb(83,63,32);--el-color-warning-light-8:rgb(62,48,28);--el-color-warning-light-9:rgb(41,34,24);--el-color-warning-dark-2:rgb(235,181,99);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(178,82,82);--el-color-danger-light-5:rgb(133,64,64);--el-color-danger-light-7:rgb(88,46,46);--el-color-danger-light-8:rgb(65,38,38);--el-color-danger-light-9:rgb(42,29,29);--el-color-danger-dark-2:rgb(247,137,137);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(178,82,82);--el-color-error-light-5:rgb(133,64,64);--el-color-error-light-7:rgb(88,46,46);--el-color-error-light-8:rgb(65,38,38);--el-color-error-light-9:rgb(42,29,29);--el-color-error-dark-2:rgb(247,137,137);--el-color-info:#909399;--el-color-info-light-3:rgb(107,109,113);--el-color-info-light-5:rgb(82,84,87);--el-color-info-light-7:rgb(57,58,60);--el-color-info-light-8:rgb(45,45,47);--el-color-info-light-9:rgb(32,33,33);--el-color-info-dark-2:rgb(166,169,173);--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.36),0px 8px 20px rgba(0,0,0,.72);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.72);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:#141414;--el-mask-color:rgba(0,0,0,.8);--el-mask-color-extra-light:rgba(0,0,0,.3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255,255,255,.5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{background-color:var(--el-menu-bg-color);border-right:1px solid var(--el-menu-border-color);box-sizing:border-box;list-style:none;margin:0;padding-left:0;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level)*var(--el-menu-level-padding));white-space:nowrap}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{border-right:none;display:flex;flex-wrap:nowrap;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:1px solid var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-menu,.el-menu--popup-container,.el-popper{outline:none}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner-wrapper{align-items:center;color:var(--el-color-white);display:flex;font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}#app{min-height:100vh;display:flex;flex-direction:column;background:#f2f2f2}html.dark #app{background:#1a1a2e}.header{position:sticky;top:0;z-index:100;background:#fff}html.dark .header{background:#1e1e2d}.header-top{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 32px}.brand a{color:#303133;font-size:20px;font-weight:700;text-decoration:none;letter-spacing:-.5px}html.dark .brand a{color:#e5e7eb}.brand a:hover{color:#409eff}.header-actions{display:flex;align-items:center;gap:16px}.github-link{display:flex;align-items:center;padding:6px;border-radius:6px;transition:all .2s}.github-link:hover{background:#f2f3f5}html.dark .github-link:hover{background:#2a2a3c}.github-icon{width:20px;height:20px;color:#606266;transition:color .2s}.github-link:hover .github-icon{color:#303133}html.dark .github-icon{color:#a0a3ad}html.dark .github-link:hover .github-icon{color:#e5e7eb}.theme-switch{--el-switch-on-color: #2c2c3a;--el-switch-off-color: #f2f2f2;--el-switch-border-color: #dcdfe6}.theme-switch .el-switch__core .el-switch__inner .el-icon{color:#909399!important}.header-nav{position:relative;padding:0 32px;border-bottom:1px solid #e4e7ed}html.dark .header-nav{border-bottom-color:#3a3d5c}.nav-menu{background:transparent!important;border-bottom:none!important;height:46px}.nav-menu .el-menu-item,.nav-menu .el-sub-menu__title{position:relative;height:32px!important;line-height:32px!important;border-bottom:none!important;border-radius:6px!important;color:#666!important;font-weight:400;font-size:14px;padding:0 12px!important;margin:7px 0;transition:background .15s ease,color .15s ease}.nav-menu>.el-menu-item,.nav-menu>.el-sub-menu{margin-right:4px}.nav-menu>.el-sub-menu{padding:0!important}html.dark .nav-menu .el-menu-item,html.dark .nav-menu .el-sub-menu__title{color:#888!important}.nav-menu .el-menu-item:hover,.nav-menu .el-sub-menu__title:hover{background:#f2f2f2!important;color:#171717!important}html.dark .nav-menu .el-menu-item:hover,html.dark .nav-menu .el-sub-menu__title:hover{background:#2a2a3c!important;color:#e5e7eb!important}.nav-menu .el-menu-item.is-active{background:transparent!important;color:#171717!important;font-weight:500}.nav-menu .el-menu-item.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:#171717;border-radius:1px}.nav-menu .el-menu-item.is-active:hover{background:#f2f2f2!important}html.dark .nav-menu .el-menu-item.is-active{background:transparent!important;color:#e5e7eb!important;font-weight:500}html.dark .nav-menu .el-menu-item.is-active:after{background:#e5e7eb}html.dark .nav-menu .el-menu-item.is-active:hover{background:#2a2a3c!important}#content{flex:1;padding:24px 40px;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}@media(max-width:768px){.header-top,.header-nav{padding:0 16px}#content{padding:16px}.brand a{font-size:18px}}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);inset:0;margin:0;position:absolute;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke:var(--el-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);display:flex;flex-direction:column;overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{flex:1;overflow:auto;padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:-moz-fit-content;height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table__expand-icon{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);font-size:12px;height:23px;line-height:12px;width:min(23px,100%)}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:0;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{align-items:center;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;text-align:center;width:20px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed;will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;display:flex;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{background-color:transparent;border:none;border-radius:50%;margin-left:6px;outline:none;overflow:hidden;padding:0}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;outline:none;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;outline:none;padding:0 10px}.el-table-filter__list-item:focus,.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255,255,255,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;content:"";inset:-1px;pointer-events:none;position:absolute;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea .el-input__count.is-outside{background:transparent;bottom:unset;line-height:1;padding-top:2px;position:absolute;right:0;top:100%}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;right:0;top:100%}.el-input .el-input__count.is-outside .el-input__count-inner{background:transparent;line-height:1;padding-left:0}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.main-card[data-v-21313b98]{border-radius:12px;border:none}.card-title[data-v-21313b98]{margin:0;font-size:18px;font-weight:600}.toolbar-header[data-v-21313b98]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--el-border-color-lighter);padding-bottom:16px}.toolbar-actions[data-v-21313b98]{display:flex;gap:12px;align-items:center}.search-input[data-v-21313b98]{width:240px}.error-text[data-v-21313b98]{color:var(--el-color-danger)}.type-text[data-v-21313b98]{display:inline-block;padding:2px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,monospace;background:var(--el-fill-color-light);border-radius:4px;color:var(--el-text-color-regular)}@media(max-width:768px){.toolbar-header[data-v-21313b98]{flex-direction:column;align-items:stretch}.search-input[data-v-21313b98]{width:100%}}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);backface-visibility:hidden;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);box-shadow:var(--el-messagebox-box-shadow);box-sizing:border-box;display:inline-block;font-size:var(--el-messagebox-font-size);max-width:var(--el-messagebox-width);overflow:hidden;overflow-wrap:break-word;padding:var(--el-messagebox-padding-primary);position:relative;text-align:left;vertical-align:middle;width:100%}.el-message-box:focus{outline:none!important}.is-message-box .el-overlay-message-box{inset:0;overflow:auto;padding:16px;position:fixed;text-align:center}.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size, 16px))}.el-message-box__title{color:var(--el-messagebox-title-color);font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;display:flex;gap:12px}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0;min-width:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-end;padding-top:var(--el-messagebox-padding-primary)}.el-message-box--center .el-message-box__title{align-items:center;display:flex;gap:6px;justify-content:center}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.el-message-box-parent--hidden{overflow:hidden}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.el-overlay{background-color:var(--el-overlay-color-lighter);height:100%;inset:0;overflow:auto;position:fixed;z-index:2000}.el-overlay .el-overlay-root{height:0}.main-card[data-v-ba60554b]{border-radius:12px;border:none}.toolbar-header[data-v-ba60554b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:1px solid var(--el-border-color-lighter);padding-bottom:16px}.card-title[data-v-ba60554b]{margin:0;font-size:18px;font-weight:600}.code-input[data-v-ba60554b]{font-family:Menlo,Monaco,Courier New,monospace;font-size:14px}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}*{box-sizing:border-box}.el-button,.el-card,.el-input,.el-select,.el-tag{transition:all .3s ease}.el-card:hover{box-shadow:0 8px 16px #0000001a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.el-page-header{padding:16px 0}.el-page-header__title{font-size:20px;font-weight:600}.el-form-item{margin-bottom:18px}@media(max-width:768px){.el-row{margin-left:0!important;margin-right:0!important}.el-col{padding-left:10px!important;padding-right:10px!important}}html.dark{--el-bg-color: #1e1e2e;--el-fill-color-blank: #1e1e2e;background-color:#1e1e2e}html.dark body{background-color:#1e1e2e;color:#e5e7eb}html.dark ::-webkit-scrollbar-track{background:#27293d}html.dark ::-webkit-scrollbar-thumb{background:#3a3d5c}html.dark ::-webkit-scrollbar-thumb:hover{background:#4a4d6c}html.dark .el-card,html.dark .el-input__wrapper{background-color:#27293d;border-color:#3a3d5c}html.dark .el-input__inner{color:#e5e7eb}html.dark .el-table{background-color:#27293d;color:#e5e7eb}html.dark .el-table th{background-color:#1e1e2e;color:#e5e7eb}html.dark .el-table tr{background-color:#27293d}html.dark .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:#1e1e2e} diff --git a/assets/frpc/static/index-iuf46MlF.css b/assets/frpc/static/index-iuf46MlF.css deleted file mode 100644 index 34d483b8293..00000000000 --- a/assets/frpc/static/index-iuf46MlF.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;width:100%;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:inline-flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-card__footer{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-top:1px solid var(--el-card-border-color);box-sizing:border-box}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{width:100%;height:50%}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color)}.el-cascader__dropdown{font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary)}.el-checkbox-button{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left-color:transparent;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{width:100%;padding:0;border:none;display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,#fff0)}.el-color-svpanel__black{background:linear-gradient(to top,#000,#0000)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,#fff0 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled,.is-focused) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;text-align:left;vertical-align:middle}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;overflow-wrap:break-word;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-input__wrapper,.el-form-item.is-error .el-input__wrapper.is-focus,.el-form-item.is-error .el-input__wrapper:focus,.el-form-item.is-error .el-input__wrapper:hover,.el-form-item.is-error .el-select__wrapper,.el-form-item.is-error .el-select__wrapper.is-focus,.el-form-item.is-error .el-select__wrapper:focus,.el-form-item.is-error .el-select__wrapper:hover,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner.is-focus,.el-form-item.is-error .el-textarea__inner:focus,.el-form-item.is-error .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;overflow-wrap:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:break-word;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color)}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);overflow-wrap:break-word;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{-webkit-animation:striped-flow 3s linear infinite;animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@-webkit-keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary)}.el-rate{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__decimal--box{position:absolute;top:0;left:0}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__loading,.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{padding:10px;border-bottom:1px solid var(--el-border-color-light)}.el-select-dropdown__footer{padding:10px;border-top:1px solid var(--el-border-color-light)}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed;background-color:unset}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%}.el-select{display:inline-block;position:relative;vertical-align:middle;width:var(--el-select-width)}.el-select__wrapper{display:flex;align-items:center;position:relative;box-sizing:border-box;cursor:pointer;text-align:left;font-size:14px;padding:4px 12px;gap:6px;min-height:32px;line-height:24px;border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset}.el-select__wrapper:hover{box-shadow:0 0 0 1px var(--el-text-color) inset}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag{cursor:not-allowed}.el-select__prefix,.el-select__suffix{display:flex;align-items:center;flex-shrink:0;gap:6px;color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__selection{position:relative;display:flex;flex-wrap:wrap;align-items:center;flex:1;min-width:0;gap:6px}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{cursor:pointer;border-color:transparent}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select__tags-text{display:block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select__placeholder{position:absolute;display:block;top:50%;transform:translateY(-50%);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select__placeholder.is-transparent{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--el-text-color-placeholder)}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select__input-wrapper{max-width:100%}.el-select__input-wrapper.is-hidden{position:absolute;opacity:0}.el-select__input{border:none;outline:0;padding:0;color:var(--el-select-multiple-input-color);font-size:inherit;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:24px;max-width:100%;background-color:transparent}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input-calculator{position:absolute;left:0;top:0;max-width:100%;visibility:hidden;white-space:pre;overflow:hidden}.el-select--large .el-select__wrapper{gap:6px;padding:8px 16px;min-height:40px;line-height:24px;font-size:14px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{gap:4px;padding:2px 8px;min-height:24px;line-height:20px;font-size:12px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;overflow-wrap:break-word}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-index:var(--el-index-normal)}.el-table-v2{font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:center;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;overflow:hidden;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover{padding-left:13px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover{padding-right:13px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular)}.el-text{align-self:center;margin:0;padding:0;font-size:var(--el-text-font-size);color:var(--el-text-color);overflow-wrap:break-word}.el-text.is-truncated{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;padding:15px;box-sizing:border-box}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);display:flex;align-items:center;height:var(--el-tree-node-content-height);cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card>i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:16px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px;--el-tour-border-color:var(--el-border-color-lighter)}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{padding:0;border-radius:var(--el-tour-border-radius);border:1px solid var(--el-tour-border-color);width:var(--el-tour-width);background:var(--el-tour-bg-color);box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-tour__arrow{position:absolute;background:var(--el-tour-bg-color);border:1px solid var(--el-tour-border-color);width:10px;height:10px;pointer-events:none;transform:rotate(45deg);box-sizing:border-box}.el-tour__content[data-side^=top] .el-tour__arrow{border-top-color:transparent;border-left-color:transparent}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:transparent;border-right-color:transparent}.el-tour__content[data-side^=left] .el-tour__arrow{border-left-color:transparent;border-bottom-color:transparent}.el-tour__content[data-side^=right] .el-tour__arrow{border-right-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{position:absolute;top:6px;right:0;padding:0;width:44px;height:44px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-tour__closebtn .el-tour__close{color:var(--el-tour-title-text-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding:var(--el-tour-padding-primary);padding-bottom:10px;margin-right:16px}.el-tour__title{line-height:var(--el-tour-font-line-height);font-size:var(--el-tour-title-font-size);color:var(--el-tour-title-text-color);font-weight:var(--el-tour-title-font-weight)}.el-tour__body{padding:0 var(--el-tour-padding-primary);color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{padding:var(--el-tour-padding-primary);padding-top:10px;box-sizing:border-box;display:flex;justify-content:space-between}.el-tour__content .el-tour-indicators{display:inline-block;flex:1}.el-tour__content .el-tour-indicator{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--el-color-info-light-9);margin-right:6px}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary)}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{color:var(--el-color-primary);border-color:var(--el-color-primary);background:#fff}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:#ffffff26}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .36),0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0, 0, 0, .8);--el-mask-color-extra-light:rgba(0, 0, 0, .3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, .5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-right:none;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:solid 1px var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}header{width:100%;height:60px}.header-color{background:#58b7ff}html.dark .header-color{background:#395c74}.header-content{display:flex;align-items:center}#content{margin-top:20px;padding-right:40px}.brand{display:flex;justify-content:flex-start}.brand a{color:#fff;background-color:transparent;margin-left:20px;line-height:25px;font-size:25px;padding:15px;height:30px;text-decoration:none}.dark-switch{display:flex;justify-content:flex-end;flex-grow:1;padding-right:40px}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-index:var(--el-index-normal)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table tbody:focus-visible{outline:0}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:break-word;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;background:inherit;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:calc(var(--el-table-index) + 1);background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{overflow:hidden;flex-shrink:0}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:-webkit-sticky;position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:var(--el-checkbox-height,32px)}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1);border-color:var(--el-checkbox-checked-icon-color)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid transparent;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{flex-shrink:0;color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}#head{margin-bottom:30px}html.dark{--el-bg-color: #343432;--el-fill-color-blank: #343432;background-color:#343432} diff --git a/assets/frpc/static/index.html b/assets/frpc/static/index.html index 85cbf1c47b6..52526eb36f3 100644 --- a/assets/frpc/static/index.html +++ b/assets/frpc/static/index.html @@ -3,9 +3,9 @@ - frp client admin UI - - + frp client + + diff --git a/client/admin_api.go b/client/admin_api.go index b726dc33b43..983574649fe 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -168,6 +168,7 @@ func (svr *Service) apiStatus(w http.ResponseWriter, _ *http.Request) { log.Infof("http request [/api/status]") defer func() { log.Infof("http response [/api/status]") + w.Header().Set("Content-Type", "application/json") buf, _ = json.Marshal(&res) _, _ = w.Write(buf) }() diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 82363cf6061..6f862691507 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -123,6 +123,7 @@ func (svr *Service) apiServerInfo(w http.ResponseWriter, r *http.Request) { }() log.Infof("http request: [%s]", r.URL.Path) + w.Header().Set("Content-Type", "application/json") serverStats := mem.StatsCollector.GetServer() svrResp := serverInfoResp{ Version: version.Full(), @@ -155,6 +156,7 @@ func (svr *Service) apiClientList(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} defer func() { log.Infof("http response [%s]: code [%d]", r.URL.RequestURI(), res.Code) + w.Header().Set("Content-Type", "application/json") w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -212,6 +214,7 @@ func (svr *Service) apiClientDetail(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} defer func() { log.Infof("http response [%s]: code [%d]", r.URL.RequestURI(), res.Code) + w.Header().Set("Content-Type", "application/json") w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -332,6 +335,7 @@ func (svr *Service) apiProxyByType(w http.ResponseWriter, r *http.Request) { defer func() { log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) + w.Header().Set("Content-Type", "application/json") w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -404,6 +408,7 @@ func (svr *Service) apiProxyByTypeAndName(w http.ResponseWriter, r *http.Request defer func() { log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) + w.Header().Set("Content-Type", "application/json") w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) @@ -472,6 +477,7 @@ func (svr *Service) apiProxyTraffic(w http.ResponseWriter, r *http.Request) { defer func() { log.Infof("http response [%s]: code [%d]", r.URL.Path, res.Code) + w.Header().Set("Content-Type", "application/json") w.WriteHeader(res.Code) if len(res.Msg) > 0 { _, _ = w.Write([]byte(res.Msg)) diff --git a/web/frpc/components.d.ts b/web/frpc/components.d.ts index 383fce6b210..08d9bce2f08 100644 --- a/web/frpc/components.d.ts +++ b/web/frpc/components.d.ts @@ -7,18 +7,20 @@ export {} declare module 'vue' { export interface GlobalComponents { - ClientConfigure: typeof import('./src/components/ClientConfigure.vue')['default'] ElButton: typeof import('element-plus/es')['ElButton'] - ElCol: typeof import('element-plus/es')['ElCol'] + ElCard: typeof import('element-plus/es')['ElCard'] ElInput: typeof import('element-plus/es')['ElInput'] ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] - ElRow: typeof import('element-plus/es')['ElRow'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] - Overview: typeof import('./src/components/Overview.vue')['default'] + ElTag: typeof import('element-plus/es')['ElTag'] + ElTooltip: typeof import('element-plus/es')['ElTooltip'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] } + export interface ComponentCustomProperties { + vLoading: typeof import('element-plus/es')['ElLoadingDirective'] + } } diff --git a/web/frpc/index.html b/web/frpc/index.html index 79837f73c48..0c7caa7bc17 100644 --- a/web/frpc/index.html +++ b/web/frpc/index.html @@ -3,7 +3,7 @@ - frp client admin UI + frp client diff --git a/web/frpc/package.json b/web/frpc/package.json index efdc3a9cc88..b41d048ade8 100644 --- a/web/frpc/package.json +++ b/web/frpc/package.json @@ -11,25 +11,30 @@ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { - "element-plus": "^2.5.3", - "vue": "^3.4.15", - "vue-router": "^4.2.5" + "element-plus": "^2.13.0", + "vue": "^3.5.26", + "vue-router": "^4.6.4" }, "devDependencies": { - "@rushstack/eslint-patch": "^1.7.2", - "@types/node": "^18.11.12", - "@vitejs/plugin-vue": "^5.0.3", + "@rushstack/eslint-patch": "^1.15.0", + "@types/node": "24", + "@vitejs/plugin-vue": "^6.0.3", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^12.0.0", - "@vue/tsconfig": "^0.5.1", + "@vue/tsconfig": "^0.8.1", + "@vueuse/core": "^14.1.0", "eslint": "^8.56.0", - "eslint-plugin-vue": "^9.21.0", + "eslint-plugin-vue": "^9.33.0", "npm-run-all": "^4.1.5", - "prettier": "^3.2.4", - "typescript": "~5.3.3", + "prettier": "^3.7.4", + "sass": "^1.97.2", + "terser": "^5.44.1", + "typescript": "^5.9.3", "unplugin-auto-import": "^0.17.5", + "unplugin-element-plus": "^0.11.2", "unplugin-vue-components": "^0.26.0", - "vite": "^5.0.12", - "vue-tsc": "^1.8.27" + "vite": "^7.3.0", + "vite-svg-loader": "^5.1.0", + "vue-tsc": "^3.2.2" } -} +} \ No newline at end of file diff --git a/web/frpc/src/App.vue b/web/frpc/src/App.vue index 7addad61f28..0746c980fc8 100644 --- a/web/frpc/src/App.vue +++ b/web/frpc/src/App.vue @@ -1,116 +1,295 @@ + \ No newline at end of file diff --git a/web/frpc/src/api/frpc.ts b/web/frpc/src/api/frpc.ts new file mode 100644 index 00000000000..63aeeb31b49 --- /dev/null +++ b/web/frpc/src/api/frpc.ts @@ -0,0 +1,18 @@ +import { http } from './http' +import type { StatusResponse } from '../types/proxy' + +export const getStatus = () => { + return http.get('/api/status') +} + +export const getConfig = () => { + return http.get('/api/config') +} + +export const putConfig = (content: string) => { + return http.put('/api/config', content) +} + +export const reloadConfig = () => { + return http.get('/api/reload') +} diff --git a/web/frpc/src/api/http.ts b/web/frpc/src/api/http.ts new file mode 100644 index 00000000000..e9a22f8dfd0 --- /dev/null +++ b/web/frpc/src/api/http.ts @@ -0,0 +1,76 @@ +// http.ts - Base HTTP client + +class HTTPError extends Error { + status: number + statusText: string + + constructor(status: number, statusText: string, message?: string) { + super(message || statusText) + this.status = status + this.statusText = statusText + } +} + +async function request(url: string, options: RequestInit = {}): Promise { + const defaultOptions: RequestInit = { + credentials: 'include', + } + + const response = await fetch(url, { ...defaultOptions, ...options }) + + if (!response.ok) { + throw new HTTPError(response.status, response.statusText, `HTTP ${response.status}`) + } + + // Handle empty response (e.g. 204 No Content) + if (response.status === 204) { + return {} as T + } + + const contentType = response.headers.get('content-type') + if (contentType && contentType.includes('application/json')) { + return response.json() + } + return response.text() as unknown as T +} + +export const http = { + get: (url: string, options?: RequestInit) => request(url, { ...options, method: 'GET' }), + post: (url: string, body?: any, options?: RequestInit) => { + const headers: HeadersInit = { ...options?.headers } + let requestBody = body + + if (body && typeof body === 'object' && !(body instanceof FormData) && !(body instanceof Blob)) { + if (!('Content-Type' in headers)) { + (headers as any)['Content-Type'] = 'application/json' + } + requestBody = JSON.stringify(body) + } + + return request(url, { + ...options, + method: 'POST', + headers, + body: requestBody + }) + }, + put: (url: string, body?: any, options?: RequestInit) => { + const headers: HeadersInit = { ...options?.headers } + let requestBody = body + + if (body && typeof body === 'object' && !(body instanceof FormData) && !(body instanceof Blob)) { + if (!('Content-Type' in headers)) { + (headers as any)['Content-Type'] = 'application/json' + } + requestBody = JSON.stringify(body) + } + + return request(url, { + ...options, + method: 'PUT', + headers, + body: requestBody + }) + }, + delete: (url: string, options?: RequestInit) => request(url, { ...options, method: 'DELETE' }), +} \ No newline at end of file diff --git a/web/frpc/src/assets/css/custom.css b/web/frpc/src/assets/css/custom.css new file mode 100644 index 00000000000..6ff997a5528 --- /dev/null +++ b/web/frpc/src/assets/css/custom.css @@ -0,0 +1,89 @@ +.el-form-item span { + margin-left: 15px; +} + +.proxy-table-expand { + font-size: 0; +} + +.proxy-table-expand .el-form-item__label{ + width: 90px; + color: #99a9bf; +} + +.proxy-table-expand .el-form-item { + margin-right: 0; + margin-bottom: 0; + width: 50%; +} + +.el-table .el-table__expanded-cell { + padding: 20px 50px; +} + +/* Modern styles */ +* { + box-sizing: border-box; +} + +/* Smooth transitions */ +.el-button, +.el-card, +.el-input, +.el-select, +.el-tag { + transition: all 0.3s ease; +} + +/* Card hover effects */ +.el-card:hover { + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); +} + +/* Better scrollbar */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb { + background: #c1c1c1; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #a8a8a8; +} + +/* Page headers */ +.el-page-header { + padding: 16px 0; +} + +.el-page-header__title { + font-size: 20px; + font-weight: 600; +} + +/* Better form layouts */ +.el-form-item { + margin-bottom: 18px; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .el-row { + margin-left: 0 !important; + margin-right: 0 !important; + } + + .el-col { + padding-left: 10px !important; + padding-right: 10px !important; + } +} diff --git a/web/frpc/src/assets/css/dark.css b/web/frpc/src/assets/css/dark.css new file mode 100644 index 00000000000..557e7829cf0 --- /dev/null +++ b/web/frpc/src/assets/css/dark.css @@ -0,0 +1,58 @@ +html.dark { + --el-bg-color: #1e1e2e; + --el-fill-color-blank: #1e1e2e; + background-color: #1e1e2e; +} + +html.dark body { + background-color: #1e1e2e; + color: #e5e7eb; +} + +/* Dark mode scrollbar */ +html.dark ::-webkit-scrollbar-track { + background: #27293d; +} + +html.dark ::-webkit-scrollbar-thumb { + background: #3a3d5c; +} + +html.dark ::-webkit-scrollbar-thumb:hover { + background: #4a4d6c; +} + +/* Dark mode cards */ +html.dark .el-card { + background-color: #27293d; + border-color: #3a3d5c; +} + +/* Dark mode inputs */ +html.dark .el-input__wrapper { + background-color: #27293d; + border-color: #3a3d5c; +} + +html.dark .el-input__inner { + color: #e5e7eb; +} + +/* Dark mode table */ +html.dark .el-table { + background-color: #27293d; + color: #e5e7eb; +} + +html.dark .el-table th { + background-color: #1e1e2e; + color: #e5e7eb; +} + +html.dark .el-table tr { + background-color: #27293d; +} + +html.dark .el-table--striped .el-table__body tr.el-table__row--striped td { + background-color: #1e1e2e; +} diff --git a/web/frpc/src/assets/dark.css b/web/frpc/src/assets/dark.css deleted file mode 100644 index 06942990495..00000000000 --- a/web/frpc/src/assets/dark.css +++ /dev/null @@ -1,5 +0,0 @@ -html.dark { - --el-bg-color: #343432; - --el-fill-color-blank: #343432; - background-color: #343432; -} diff --git a/web/frpc/src/assets/icons/github.svg b/web/frpc/src/assets/icons/github.svg new file mode 100644 index 00000000000..160a7939320 --- /dev/null +++ b/web/frpc/src/assets/icons/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/frpc/src/components/ClientConfigure.vue b/web/frpc/src/components/ClientConfigure.vue deleted file mode 100644 index d22d092640c..00000000000 --- a/web/frpc/src/components/ClientConfigure.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - - - diff --git a/web/frpc/src/components/Overview.vue b/web/frpc/src/components/Overview.vue deleted file mode 100644 index ff6696f3f21..00000000000 --- a/web/frpc/src/components/Overview.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/web/frpc/src/main.ts b/web/frpc/src/main.ts index 636b05a6314..4eb32bff722 100644 --- a/web/frpc/src/main.ts +++ b/web/frpc/src/main.ts @@ -1,13 +1,13 @@ import { createApp } from 'vue' -import 'element-plus/dist/index.css' import 'element-plus/theme-chalk/dark/css-vars.css' import App from './App.vue' import router from './router' -import './assets/dark.css' +import './assets/css/custom.css' +import './assets/css/dark.css' const app = createApp(App) app.use(router) -app.mount('#app') +app.mount('#app') \ No newline at end of file diff --git a/web/frpc/src/router/index.ts b/web/frpc/src/router/index.ts index 7c42c258da2..426d555e97c 100644 --- a/web/frpc/src/router/index.ts +++ b/web/frpc/src/router/index.ts @@ -1,6 +1,6 @@ import { createRouter, createWebHashHistory } from 'vue-router' -import Overview from '../components/Overview.vue' -import ClientConfigure from '../components/ClientConfigure.vue' +import Overview from '../views/Overview.vue' +import ClientConfigure from '../views/ClientConfigure.vue' const router = createRouter({ history: createWebHashHistory(), @@ -18,4 +18,4 @@ const router = createRouter({ ], }) -export default router +export default router \ No newline at end of file diff --git a/web/frpc/src/svg.d.ts b/web/frpc/src/svg.d.ts new file mode 100644 index 00000000000..2f7dabe59c1 --- /dev/null +++ b/web/frpc/src/svg.d.ts @@ -0,0 +1,5 @@ +declare module '*.svg?component' { + import type { DefineComponent } from 'vue' + const component: DefineComponent + export default component +} diff --git a/web/frpc/src/types/proxy.ts b/web/frpc/src/types/proxy.ts new file mode 100644 index 00000000000..d7e2d4bf66b --- /dev/null +++ b/web/frpc/src/types/proxy.ts @@ -0,0 +1,12 @@ +export interface ProxyStatus { + name: string + type: string + status: string + err: string + local_addr: string + plugin: string + remote_addr: string + [key: string]: any +} + +export type StatusResponse = Record diff --git a/web/frpc/src/utils/format.ts b/web/frpc/src/utils/format.ts new file mode 100644 index 00000000000..e7e72fcf3f9 --- /dev/null +++ b/web/frpc/src/utils/format.ts @@ -0,0 +1,33 @@ +export function formatDistanceToNow(date: Date): string { + const seconds = Math.floor((new Date().getTime() - date.getTime()) / 1000) + + let interval = seconds / 31536000 + if (interval > 1) return Math.floor(interval) + ' years ago' + + interval = seconds / 2592000 + if (interval > 1) return Math.floor(interval) + ' months ago' + + interval = seconds / 86400 + if (interval > 1) return Math.floor(interval) + ' days ago' + + interval = seconds / 3600 + if (interval > 1) return Math.floor(interval) + ' hours ago' + + interval = seconds / 60 + if (interval > 1) return Math.floor(interval) + ' minutes ago' + + return Math.floor(seconds) + ' seconds ago' +} + +export function formatFileSize(bytes: number): string { + if (!Number.isFinite(bytes) || bytes < 0) return '0 B' + if (bytes === 0) return '0 B' + const k = 1024 + const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + // Prevent index out of bounds for extremely large numbers + const unit = sizes[i] || sizes[sizes.length - 1] + const val = bytes / Math.pow(k, i) + + return parseFloat(val.toFixed(2)) + ' ' + unit +} diff --git a/web/frpc/src/views/ClientConfigure.vue b/web/frpc/src/views/ClientConfigure.vue new file mode 100644 index 00000000000..9972e1a3c3f --- /dev/null +++ b/web/frpc/src/views/ClientConfigure.vue @@ -0,0 +1,115 @@ + + + + + \ No newline at end of file diff --git a/web/frpc/src/views/Overview.vue b/web/frpc/src/views/Overview.vue new file mode 100644 index 00000000000..1d7cef1f94f --- /dev/null +++ b/web/frpc/src/views/Overview.vue @@ -0,0 +1,215 @@ + + + + + \ No newline at end of file diff --git a/web/frpc/vite.config.mts b/web/frpc/vite.config.mts index 656ab9ebf61..c634156dbf4 100644 --- a/web/frpc/vite.config.mts +++ b/web/frpc/vite.config.mts @@ -2,15 +2,19 @@ import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' +import svgLoader from 'vite-svg-loader' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' +import ElementPlus from 'unplugin-element-plus/vite' // https://vitejs.dev/config/ export default defineConfig({ base: '', plugins: [ vue(), + svgLoader(), + ElementPlus({}), AutoImport({ resolvers: [ElementPlusResolver()], }), @@ -25,5 +29,22 @@ export default defineConfig({ }, build: { assetsDir: '', + chunkSizeWarningLimit: 1000, + minify: 'terser', + terserOptions: { + compress: { + drop_console: true, + drop_debugger: true, + }, + }, + }, + server: { + allowedHosts: process.env.ALLOWED_HOSTS ? process.env.ALLOWED_HOSTS.split(',') : [], + proxy: { + '/api': { + target: process.env.VITE_API_URL || 'http://127.0.0.1:7400', + changeOrigin: true, + }, + }, }, -}) +}) \ No newline at end of file diff --git a/web/frpc/yarn.lock b/web/frpc/yarn.lock index 7d9db6e533d..9aef1d2dac4 100644 --- a/web/frpc/yarn.lock +++ b/web/frpc/yarn.lock @@ -4,159 +4,69 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@antfu/utils@^0.7.6", "@antfu/utils@^0.7.7": version "0.7.7" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.7.tgz#26ea493a831b4f3a85475e7157be02fb4eab51fb" + resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz" integrity sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg== -"@babel/parser@^7.23.6": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" - integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/parser@^7.15.8", "@babel/parser@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz" + integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== + dependencies: + "@babel/types" "^7.28.5" + +"@babel/types@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz" + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" "@ctrl/tinycolor@^3.4.1": version "3.6.0" resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz" integrity sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ== -"@element-plus/icons-vue@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz#1f635ad5fdd5c85ed936481525570e82b5a8307a" - integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg== - -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== - -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== - -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== - -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== - -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== - -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== - -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== - -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== - -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== - -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== - -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== - -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== - -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== - -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== - -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== - -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== - -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== - -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== - -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== - -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== - -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== - -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== - -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@element-plus/icons-vue@^2.3.2": + version "2.3.2" + resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz" + integrity sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A== + +"@esbuild/darwin-x64@0.27.2": + version "0.27.2" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz" + integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -171,7 +81,7 @@ "@eslint/js@8.56.0": version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@floating-ui/core@^1.2.1": @@ -188,7 +98,7 @@ "@humanwhocodes/config-array@^0.11.13": version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: "@humanwhocodes/object-schema" "^2.0.2" @@ -202,13 +112,50 @@ "@humanwhocodes/object-schema@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== -"@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.11" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz" + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.31" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -218,7 +165,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -231,9 +178,64 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nuxt/kit@^4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-4.2.2.tgz" + integrity sha512-ZAgYBrPz/yhVgDznBNdQj2vhmOp31haJbO0I0iah/P9atw+OHH7NJLUZ3PK+LOz/0fblKTN1XJVSi8YQ1TQ0KA== + dependencies: + c12 "^3.3.2" + consola "^3.4.2" + defu "^6.1.4" + destr "^2.0.5" + errx "^0.1.0" + exsolve "^1.0.8" + ignore "^7.0.5" + jiti "^2.6.1" + klona "^2.0.6" + mlly "^1.8.0" + ohash "^2.0.11" + pathe "^2.0.3" + pkg-types "^2.3.0" + rc9 "^2.1.2" + scule "^1.3.0" + semver "^7.7.3" + tinyglobby "^0.2.15" + ufo "^1.6.1" + unctx "^2.4.1" + untyped "^2.0.0" + +"@parcel/watcher-darwin-x64@2.5.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz" + integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== + +"@parcel/watcher@^2.4.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz" + integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.1" + "@parcel/watcher-darwin-arm64" "2.5.1" + "@parcel/watcher-darwin-x64" "2.5.1" + "@parcel/watcher-freebsd-x64" "2.5.1" + "@parcel/watcher-linux-arm-glibc" "2.5.1" + "@parcel/watcher-linux-arm-musl" "2.5.1" + "@parcel/watcher-linux-arm64-glibc" "2.5.1" + "@parcel/watcher-linux-arm64-musl" "2.5.1" + "@parcel/watcher-linux-x64-glibc" "2.5.1" + "@parcel/watcher-linux-x64-musl" "2.5.1" + "@parcel/watcher-win32-arm64" "2.5.1" + "@parcel/watcher-win32-ia32" "2.5.1" + "@parcel/watcher-win32-x64" "2.5.1" + "@pkgr/core@^0.1.0": version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== "@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": @@ -241,130 +243,82 @@ resolved "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== +"@rolldown/pluginutils@1.0.0-beta.53": + version "1.0.0-beta.53" + resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz" + integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ== + "@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0": version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz" integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" - integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== - -"@rollup/rollup-android-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" - integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== - -"@rollup/rollup-darwin-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" - integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== - -"@rollup/rollup-darwin-x64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" - integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== - -"@rollup/rollup-linux-arm-gnueabihf@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" - integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== - -"@rollup/rollup-linux-arm64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" - integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== - -"@rollup/rollup-linux-arm64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" - integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== - -"@rollup/rollup-linux-riscv64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" - integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== - -"@rollup/rollup-linux-x64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" - integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== - -"@rollup/rollup-linux-x64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" - integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== - -"@rollup/rollup-win32-arm64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" - integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== - -"@rollup/rollup-win32-ia32-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" - integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== - -"@rollup/rollup-win32-x64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" - integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== - -"@rushstack/eslint-patch@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz#2d4260033e199b3032a08b41348ac10de21c47e9" - integrity sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA== - -"@types/estree@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@rollup/rollup-darwin-x64@4.55.1": + version "4.55.1" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz" + integrity sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ== -"@types/estree@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== +"@rushstack/eslint-patch@^1.15.0": + version "1.15.0" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz" + integrity sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/estree@^1.0.0", "@types/estree@1.0.8": + version "1.0.8" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/json-schema@^7.0.12": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/lodash-es@^4.17.6": - version "4.17.6" - resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz" - integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== +"@types/lodash-es@*", "@types/lodash-es@^4.17.12": + version "4.17.12" + resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz" + integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== dependencies: "@types/lodash" "*" -"@types/lodash@*", "@types/lodash@^4.14.182": - version "4.14.191" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== +"@types/lodash@*", "@types/lodash@^4.17.20": + version "4.17.21" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz" + integrity sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ== -"@types/node@^18.11.12": - version "18.14.0" - resolved "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz" - integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A== +"@types/node@^20.19.0 || >=22.12.0", "@types/node@24": + version "24.10.4" + resolved "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz" + integrity sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg== + dependencies: + undici-types "~7.16.0" "@types/semver@^7.5.0": version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== -"@types/web-bluetooth@^0.0.16": - version "0.0.16" - resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz" - integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@types/web-bluetooth@^0.0.21": + version "0.0.21" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz" + integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== "@typescript-eslint/eslint-plugin@^6.7.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz#9cf31546d2d5e884602626d89b0e0d2168ac25ed" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz" integrity sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg== dependencies: "@eslint-community/regexpp" "^4.5.1" @@ -379,9 +333,9 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.7.0": +"@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.7.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.20.0.tgz#17e314177304bdf498527e3c4b112e41287b7416" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz" integrity sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w== dependencies: "@typescript-eslint/scope-manager" "6.20.0" @@ -392,7 +346,7 @@ "@typescript-eslint/scope-manager@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz#8a926e60f6c47feb5bab878246dc2ae465730151" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz" integrity sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA== dependencies: "@typescript-eslint/types" "6.20.0" @@ -400,7 +354,7 @@ "@typescript-eslint/type-utils@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz#d395475cd0f3610dd80c7d8716fa0db767da3831" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz" integrity sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g== dependencies: "@typescript-eslint/typescript-estree" "6.20.0" @@ -410,12 +364,12 @@ "@typescript-eslint/types@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.20.0.tgz#5ccd74c29011ae7714ae6973e4ec0c634708b448" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz" integrity sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ== "@typescript-eslint/typescript-estree@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz#5b2d0975949e6bdd8d45ee1471461ef5fadc5542" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz" integrity sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g== dependencies: "@typescript-eslint/types" "6.20.0" @@ -429,7 +383,7 @@ "@typescript-eslint/utils@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.20.0.tgz#0e52afcfaa51af5656490ba4b7437cc3aa28633d" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz" integrity sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -442,7 +396,7 @@ "@typescript-eslint/visitor-keys@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz#f7ada27f2803de89df0edd9fd7be22c05ce6a498" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz" integrity sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw== dependencies: "@typescript-eslint/types" "6.20.0" @@ -450,86 +404,87 @@ "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@vitejs/plugin-vue@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz#164b36653910d27c130cf6c945b4bd9bde5bcbee" - integrity sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA== - -"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" - integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== +"@vitejs/plugin-vue@^6.0.3": + version "6.0.3" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz" + integrity sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w== dependencies: - "@volar/source-map" "1.11.1" + "@rolldown/pluginutils" "1.0.0-beta.53" -"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" - integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== +"@volar/language-core@2.4.27": + version "2.4.27" + resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz" + integrity sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ== dependencies: - muggle-string "^0.3.1" + "@volar/source-map" "2.4.27" + +"@volar/source-map@2.4.27": + version "2.4.27" + resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz" + integrity sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg== -"@volar/typescript@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" - integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== +"@volar/typescript@2.4.27": + version "2.4.27" + resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz" + integrity sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg== dependencies: - "@volar/language-core" "1.11.1" + "@volar/language-core" "2.4.27" path-browserify "^1.0.1" + vscode-uri "^3.0.8" -"@vue/compiler-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e" - integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== +"@vue/compiler-core@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz" + integrity sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w== dependencies: - "@babel/parser" "^7.23.6" - "@vue/shared" "3.4.15" - entities "^4.5.0" + "@babel/parser" "^7.28.5" + "@vue/shared" "3.5.26" + entities "^7.0.0" estree-walker "^2.0.2" - source-map-js "^1.0.2" - -"@vue/compiler-dom@3.4.15", "@vue/compiler-dom@^3.3.0": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5" - integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== - dependencies: - "@vue/compiler-core" "3.4.15" - "@vue/shared" "3.4.15" - -"@vue/compiler-sfc@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b" - integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== - dependencies: - "@babel/parser" "^7.23.6" - "@vue/compiler-core" "3.4.15" - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + source-map-js "^1.2.1" + +"@vue/compiler-dom@^3.5.0", "@vue/compiler-dom@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz" + integrity sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A== + dependencies: + "@vue/compiler-core" "3.5.26" + "@vue/shared" "3.5.26" + +"@vue/compiler-sfc@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz" + integrity sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA== + dependencies: + "@babel/parser" "^7.28.5" + "@vue/compiler-core" "3.5.26" + "@vue/compiler-dom" "3.5.26" + "@vue/compiler-ssr" "3.5.26" + "@vue/shared" "3.5.26" estree-walker "^2.0.2" - magic-string "^0.30.5" - postcss "^8.4.33" - source-map-js "^1.0.2" + magic-string "^0.30.21" + postcss "^8.5.6" + source-map-js "^1.2.1" -"@vue/compiler-ssr@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf" - integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== +"@vue/compiler-ssr@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz" + integrity sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.5.26" + "@vue/shared" "3.5.26" -"@vue/devtools-api@^6.5.0": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" - integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== +"@vue/devtools-api@^6.6.4": + version "6.6.4" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz" + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== "@vue/eslint-config-prettier@^9.0.0": version "9.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#f63394f8f7759d92b6ef3f3e1d30ff6b0c0b97c1" + resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz" integrity sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg== dependencies: eslint-config-prettier "^9.0.0" @@ -537,106 +492,119 @@ "@vue/eslint-config-typescript@^12.0.0": version "12.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#0ce22d97af5e4155f3f2e7b21a48cfde8a6f3365" + resolved "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz" integrity sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg== dependencies: "@typescript-eslint/eslint-plugin" "^6.7.0" "@typescript-eslint/parser" "^6.7.0" vue-eslint-parser "^9.3.1" -"@vue/language-core@1.8.27": - version "1.8.27" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" - integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== +"@vue/language-core@3.2.2": + version "3.2.2" + resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.2.tgz" + integrity sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ== dependencies: - "@volar/language-core" "~1.11.1" - "@volar/source-map" "~1.11.1" - "@vue/compiler-dom" "^3.3.0" - "@vue/shared" "^3.3.0" - computeds "^0.0.1" - minimatch "^9.0.3" - muggle-string "^0.3.1" + "@volar/language-core" "2.4.27" + "@vue/compiler-dom" "^3.5.0" + "@vue/shared" "^3.5.0" + alien-signals "^3.0.0" + muggle-string "^0.4.1" path-browserify "^1.0.1" - vue-template-compiler "^2.7.14" - -"@vue/reactivity@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1" - integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== - dependencies: - "@vue/shared" "3.4.15" - -"@vue/runtime-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0" - integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== - dependencies: - "@vue/reactivity" "3.4.15" - "@vue/shared" "3.4.15" - -"@vue/runtime-dom@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406" - integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== - dependencies: - "@vue/runtime-core" "3.4.15" - "@vue/shared" "3.4.15" - csstype "^3.1.3" - -"@vue/server-renderer@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f" - integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== - dependencies: - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" - -"@vue/shared@3.4.15", "@vue/shared@^3.3.0": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30" - integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== - -"@vue/tsconfig@^0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.5.1.tgz#3124ec16cc0c7e04165b88dc091e6b97782fffa9" - integrity sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ== - -"@vueuse/core@^9.1.0": - version "9.13.0" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz" - integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw== - dependencies: - "@types/web-bluetooth" "^0.0.16" - "@vueuse/metadata" "9.13.0" - "@vueuse/shared" "9.13.0" - vue-demi "*" - -"@vueuse/metadata@9.13.0": - version "9.13.0" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz" - integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ== - -"@vueuse/shared@9.13.0": - version "9.13.0" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz" - integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw== - dependencies: - vue-demi "*" + picomatch "^4.0.2" + +"@vue/reactivity@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz" + integrity sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ== + dependencies: + "@vue/shared" "3.5.26" + +"@vue/runtime-core@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz" + integrity sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q== + dependencies: + "@vue/reactivity" "3.5.26" + "@vue/shared" "3.5.26" + +"@vue/runtime-dom@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz" + integrity sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ== + dependencies: + "@vue/reactivity" "3.5.26" + "@vue/runtime-core" "3.5.26" + "@vue/shared" "3.5.26" + csstype "^3.2.3" + +"@vue/server-renderer@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz" + integrity sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA== + dependencies: + "@vue/compiler-ssr" "3.5.26" + "@vue/shared" "3.5.26" + +"@vue/shared@^3.5.0", "@vue/shared@3.5.26": + version "3.5.26" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz" + integrity sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A== + +"@vue/tsconfig@^0.8.1": + version "0.8.1" + resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz" + integrity sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g== + +"@vueuse/core@*", "@vueuse/core@^14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-14.1.0.tgz" + integrity sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw== + dependencies: + "@types/web-bluetooth" "^0.0.21" + "@vueuse/metadata" "14.1.0" + "@vueuse/shared" "14.1.0" + +"@vueuse/core@^10.11.0": + version "10.11.1" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz" + integrity sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.11.1" + "@vueuse/shared" "10.11.1" + vue-demi ">=0.14.8" + +"@vueuse/metadata@10.11.1": + version "10.11.1" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz" + integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw== + +"@vueuse/metadata@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.1.0.tgz" + integrity sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA== + +"@vueuse/shared@10.11.1": + version "10.11.1" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz" + integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA== + dependencies: + vue-demi ">=0.14.8" + +"@vueuse/shared@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-14.1.0.tgz" + integrity sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw== acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.10.0, acorn@^8.11.2, acorn@^8.11.3, acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.10.0, acorn@^8.11.2, acorn@^8.15.0, acorn@^8.9.0: + version "8.15.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== ajv@^6.12.4: version "6.12.6" @@ -648,6 +616,11 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +alien-signals@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz" + integrity sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -732,6 +705,29 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +c12@^3.3.2: + version "3.3.3" + resolved "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz" + integrity sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q== + dependencies: + chokidar "^5.0.0" + confbox "^0.2.2" + defu "^6.1.4" + dotenv "^17.2.3" + exsolve "^1.0.8" + giget "^2.0.0" + jiti "^2.6.1" + ohash "^2.0.11" + pathe "^2.0.3" + perfect-debounce "^2.0.0" + pkg-types "^2.3.0" + rc9 "^2.1.2" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" @@ -777,6 +773,27 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" +chokidar@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" + +chokidar@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz" + integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== + dependencies: + readdirp "^5.0.0" + +citty@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz" + integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== + dependencies: + consola "^3.2.3" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -791,26 +808,46 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -computeds@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" - integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +confbox@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz" + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== + +confbox@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz" + integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== + +consola@^3.2.3, consola@^3.4.0, consola@^3.4.2: + version "3.4.2" + resolved "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" @@ -831,25 +868,59 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +css-select@^5.1.0: + version "5.2.2" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.2.2" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" -dayjs@^1.11.3: - version "1.11.7" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz" - integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== +csstype@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== +dayjs@^1.11.19: + version "1.11.19" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz" + integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" @@ -871,6 +942,21 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +defu@^6.1.4: + version "6.1.4" + resolved "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + +destr@^2.0.3, destr@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz" + integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" @@ -885,32 +971,71 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -element-plus@^2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.5.3.tgz#d4f8988ea199ad28ef15a6b0b8f94b7639d262fb" - integrity sha512-wmtstxaMkD6UinIgD+45CjrhbRh4u0vt+/GgxfPeMLt5pDpIVwZFjkUaVcWqqxcxd5a80HP3XlDF74fW7wim9A== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dotenv@^17.2.3: + version "17.2.3" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz" + integrity sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w== + +element-plus@^2.13.0: + version "2.13.0" + resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.13.0.tgz" + integrity sha512-qjxS+SBChvqCl6lU6ShiliLMN6WqFHiXQENYbAY3GKNflG+FS3jqn8JmQq0CBZq4koFqsi95NT1M6SL4whZfrA== dependencies: "@ctrl/tinycolor" "^3.4.1" - "@element-plus/icons-vue" "^2.3.1" + "@element-plus/icons-vue" "^2.3.2" "@floating-ui/dom" "^1.0.1" "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" - "@types/lodash" "^4.14.182" - "@types/lodash-es" "^4.17.6" - "@vueuse/core" "^9.1.0" + "@types/lodash" "^4.17.20" + "@types/lodash-es" "^4.17.12" + "@vueuse/core" "^10.11.0" async-validator "^4.2.5" - dayjs "^1.11.3" - escape-html "^1.0.3" + dayjs "^1.11.19" lodash "^4.17.21" lodash-es "^4.17.21" - lodash-unified "^1.0.2" + lodash-unified "^1.0.3" memoize-one "^6.0.0" normalize-wheel-es "^1.2.0" -entities@^4.5.0: +entities@^4.2.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz" + integrity sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" @@ -918,6 +1043,11 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +errx@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz" + integrity sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q== + es-abstract@^1.19.0, es-abstract@^1.20.4: version "1.21.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" @@ -957,6 +1087,11 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" +es-module-lexer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz" + integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== + es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" @@ -975,39 +1110,37 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.19.3: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== +esbuild@^0.27.0: + version "0.27.2" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz" + integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" - -escape-html@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + "@esbuild/aix-ppc64" "0.27.2" + "@esbuild/android-arm" "0.27.2" + "@esbuild/android-arm64" "0.27.2" + "@esbuild/android-x64" "0.27.2" + "@esbuild/darwin-arm64" "0.27.2" + "@esbuild/darwin-x64" "0.27.2" + "@esbuild/freebsd-arm64" "0.27.2" + "@esbuild/freebsd-x64" "0.27.2" + "@esbuild/linux-arm" "0.27.2" + "@esbuild/linux-arm64" "0.27.2" + "@esbuild/linux-ia32" "0.27.2" + "@esbuild/linux-loong64" "0.27.2" + "@esbuild/linux-mips64el" "0.27.2" + "@esbuild/linux-ppc64" "0.27.2" + "@esbuild/linux-riscv64" "0.27.2" + "@esbuild/linux-s390x" "0.27.2" + "@esbuild/linux-x64" "0.27.2" + "@esbuild/netbsd-arm64" "0.27.2" + "@esbuild/netbsd-x64" "0.27.2" + "@esbuild/openbsd-arm64" "0.27.2" + "@esbuild/openbsd-x64" "0.27.2" + "@esbuild/openharmony-arm64" "0.27.2" + "@esbuild/sunos-x64" "0.27.2" + "@esbuild/win32-arm64" "0.27.2" + "@esbuild/win32-ia32" "0.27.2" + "@esbuild/win32-x64" "0.27.2" escape-string-regexp@^1.0.5: version "1.0.5" @@ -1024,43 +1157,36 @@ escape-string-regexp@^5.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -eslint-config-prettier@^9.0.0: +eslint-config-prettier@*, eslint-config-prettier@^9.0.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-prettier@^5.0.0: version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz" integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" synckit "^0.8.6" -eslint-plugin-vue@^9.21.0: - version "9.21.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.21.0.tgz#5f2325279e0ce1e47105664dd6a6dd3ece84aa10" - integrity sha512-B3NgZRtbi9kSl7M0x/PqhSMk7ULJUwWxQpTvM8b2Z6gNTORK0YSt5v1vzwY84oMs/2+3BWH5XmTepaQebcJwfA== +eslint-plugin-vue@^9.0.0, eslint-plugin-vue@^9.33.0: + version "9.33.0" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz" + integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^6.0.13" - semver "^7.5.4" - vue-eslint-parser "^9.4.2" + postcss-selector-parser "^6.0.15" + semver "^7.6.3" + vue-eslint-parser "^9.4.3" xml-name-validator "^4.0.0" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-scope@^7.2.2: +eslint-scope@^7.1.1, eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -1071,14 +1197,19 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.4.1: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.56.0: +eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.56.0, "eslint@>= 8.0.0", eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=8.0.0: version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -1120,34 +1251,18 @@ eslint@^8.56.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.3.1: - version "9.4.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -espree@^9.6.0, espree@^9.6.1: +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esquery@^1.4.0: - version "1.4.2" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz" - integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== - dependencies: - estraverse "^5.1.0" - -esquery@^1.4.2: +esquery@^1.4.0, esquery@^1.4.2: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -1181,6 +1296,11 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +exsolve@^1.0.7, exsolve@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz" + integrity sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" @@ -1204,7 +1324,7 @@ fast-glob@^3.2.9: fast-glob@^3.3.1, fast-glob@^3.3.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -1230,6 +1350,11 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" @@ -1284,7 +1409,7 @@ fsevents@~2.3.2: fsevents@~2.3.3: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: @@ -1294,7 +1419,7 @@ function-bind@^1.1.1: function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.5: @@ -1329,6 +1454,18 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +giget@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz" + integrity sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA== + dependencies: + citty "^0.1.6" + consola "^3.4.0" + defu "^6.1.4" + node-fetch-native "^1.6.6" + nypm "^0.6.0" + pathe "^2.0.3" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" @@ -1355,10 +1492,10 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== +globals@^13.19.0, globals@^13.24.0: + version "13.24.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -1395,7 +1532,7 @@ graceful-fs@^4.1.2: graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== has-bigints@^1.0.1, has-bigints@^1.0.2: @@ -1446,16 +1583,11 @@ has@^1.0.3: hasown@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== dependencies: function-bind "^1.1.2" -he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" @@ -1466,6 +1598,16 @@ ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^7.0.5: + version "7.0.5" + resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz" + integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== + +immutable@^5.0.2: + version "5.1.4" + resolved "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz" + integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== + import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" @@ -1544,7 +1686,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: is-core-module@^2.13.0: version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" @@ -1649,6 +1791,11 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +jiti@^2.4.2, jiti@^2.6.1, jiti@>=1.21.0: + version "2.6.1" + resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" + integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" @@ -1676,6 +1823,16 @@ jsonc-parser@^3.2.0: resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== +klona@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +knitwork@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz" + integrity sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw== + levn@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" @@ -1701,7 +1858,7 @@ local-pkg@^0.4.3: local-pkg@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz" integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== dependencies: mlly "^1.4.2" @@ -1714,12 +1871,12 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash-es@^4.17.21: +lodash-es@*, lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -lodash-unified@^1.0.2: +lodash-unified@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== @@ -1729,24 +1886,27 @@ lodash.merge@^4.6.2: resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.21: +lodash@*, lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +magic-string@^0.30.21, magic-string@^0.30.3, magic-string@^0.30.5: + version "0.30.21" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== dependencies: - yallist "^4.0.0" + "@jridgewell/sourcemap-codec" "^1.5.5" -magic-string@^0.30.3, magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== memoize-one@^6.0.0: version "6.0.0" @@ -1763,7 +1923,7 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: +micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -1771,13 +1931,6 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -minimatch@9.0.3, minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" @@ -1785,30 +1938,44 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -mlly@^1.2.0, mlly@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.5.0.tgz#8428a4617d54cc083d3009030ac79739a0e5447a" - integrity sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ== +minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: - acorn "^8.11.3" - pathe "^1.1.2" - pkg-types "^1.0.3" - ufo "^1.3.2" + brace-expansion "^2.0.1" + +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +mlly@^1.2.0, mlly@^1.4.2, mlly@^1.7.4, mlly@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz" + integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== + dependencies: + acorn "^8.15.0" + pathe "^2.0.3" + pkg-types "^1.3.1" + ufo "^1.6.1" ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -muggle-string@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" - integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== +muggle-string@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz" + integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== natural-compare@^1.4.0: version "1.4.0" @@ -1820,6 +1987,16 @@ nice-try@^1.0.4: resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + +node-fetch-native@^1.6.6: + version "1.6.7" + resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz" + integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" @@ -1855,13 +2032,24 @@ npm-run-all@^4.1.5: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" -nth-check@^2.1.1: +nth-check@^2.0.1, nth-check@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" +nypm@^0.6.0: + version "0.6.2" + resolved "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz" + integrity sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g== + dependencies: + citty "^0.1.6" + consola "^3.4.2" + pathe "^2.0.3" + pkg-types "^2.3.0" + tinyexec "^1.0.1" + object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" @@ -1882,6 +2070,11 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" +ohash@^2.0.11: + version "2.0.11" + resolved "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz" + integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== + once@^1.3.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -1891,7 +2084,7 @@ once@^1.3.0: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -1932,7 +2125,7 @@ parse-json@^4.0.0: path-browserify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-exists@^4.0.0: @@ -1977,21 +2170,41 @@ pathe@^1.1.0: resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz" integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== -pathe@^1.1.1, pathe@^1.1.2: +pathe@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +pathe@^2.0.1, pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + +perfect-debounce@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz" + integrity sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow== + +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +"picomatch@^3 || ^4", picomatch@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + +picomatch@^4.0.2: + version "4.0.3" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + pidtree@^0.3.0: version "0.3.1" resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" @@ -2004,29 +2217,47 @@ pify@^3.0.0: pkg-types@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz" integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== dependencies: jsonc-parser "^3.2.0" mlly "^1.2.0" pathe "^1.1.0" -postcss-selector-parser@^6.0.13: +pkg-types@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== + dependencies: + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" + +pkg-types@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz" + integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== + dependencies: + confbox "^0.2.2" + exsolve "^1.0.7" + pathe "^2.0.3" + +postcss-selector-parser@^6.0.15: version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss@^8.4.32, postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== +postcss@^8.5.6: + version "8.5.6" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" prelude-ls@^1.2.1: version "1.2.1" @@ -2040,10 +2271,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== +prettier@^3.7.4, "prettier@>= 3.0.0", prettier@>=3.0.0: + version "3.7.4" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== punycode@^2.1.0: version "2.3.0" @@ -2055,6 +2286,14 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +rc9@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz" + integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== + dependencies: + defu "^6.1.4" + destr "^2.0.3" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" @@ -2064,6 +2303,16 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + +readdirp@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz" + integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ== + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -2096,7 +2345,7 @@ resolve@^1.10.0: resolve@^1.22.4: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" @@ -2115,26 +2364,45 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^4.2.0: - version "4.9.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" - integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== +rolldown-string@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/rolldown-string/-/rolldown-string-0.2.1.tgz" + integrity sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg== + dependencies: + magic-string "^0.30.21" + +rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^4.43.0: + version "4.55.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz" + integrity sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A== dependencies: - "@types/estree" "1.0.5" + "@types/estree" "1.0.8" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.6" - "@rollup/rollup-android-arm64" "4.9.6" - "@rollup/rollup-darwin-arm64" "4.9.6" - "@rollup/rollup-darwin-x64" "4.9.6" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" - "@rollup/rollup-linux-arm64-gnu" "4.9.6" - "@rollup/rollup-linux-arm64-musl" "4.9.6" - "@rollup/rollup-linux-riscv64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-musl" "4.9.6" - "@rollup/rollup-win32-arm64-msvc" "4.9.6" - "@rollup/rollup-win32-ia32-msvc" "4.9.6" - "@rollup/rollup-win32-x64-msvc" "4.9.6" + "@rollup/rollup-android-arm-eabi" "4.55.1" + "@rollup/rollup-android-arm64" "4.55.1" + "@rollup/rollup-darwin-arm64" "4.55.1" + "@rollup/rollup-darwin-x64" "4.55.1" + "@rollup/rollup-freebsd-arm64" "4.55.1" + "@rollup/rollup-freebsd-x64" "4.55.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.55.1" + "@rollup/rollup-linux-arm-musleabihf" "4.55.1" + "@rollup/rollup-linux-arm64-gnu" "4.55.1" + "@rollup/rollup-linux-arm64-musl" "4.55.1" + "@rollup/rollup-linux-loong64-gnu" "4.55.1" + "@rollup/rollup-linux-loong64-musl" "4.55.1" + "@rollup/rollup-linux-ppc64-gnu" "4.55.1" + "@rollup/rollup-linux-ppc64-musl" "4.55.1" + "@rollup/rollup-linux-riscv64-gnu" "4.55.1" + "@rollup/rollup-linux-riscv64-musl" "4.55.1" + "@rollup/rollup-linux-s390x-gnu" "4.55.1" + "@rollup/rollup-linux-x64-gnu" "4.55.1" + "@rollup/rollup-linux-x64-musl" "4.55.1" + "@rollup/rollup-openbsd-x64" "4.55.1" + "@rollup/rollup-openharmony-arm64" "4.55.1" + "@rollup/rollup-win32-arm64-msvc" "4.55.1" + "@rollup/rollup-win32-ia32-msvc" "4.55.1" + "@rollup/rollup-win32-x64-gnu" "4.55.1" + "@rollup/rollup-win32-x64-msvc" "4.55.1" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -2153,29 +2421,36 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -scule@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/scule/-/scule-1.2.0.tgz#b46d444d6a8c92e73eb80d2d8d00b94ab065cc3e" - integrity sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw== +sass@^1.70.0, sass@^1.97.2: + version "1.97.2" + resolved "https://registry.npmjs.org/sass/-/sass-1.97.2.tgz" + integrity sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw== + dependencies: + chokidar "^4.0.0" + immutable "^5.0.2" + source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" -"semver@2 || 3 || 4 || 5", semver@^5.5.0: +scule@^1.1.1, scule@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz" + integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== + +semver@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^7.3.6: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.6, semver@^7.5.4, semver@^7.6.3, semver@^7.7.3: + version "7.7.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== -semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== shebang-command@^1.2.0: version "1.2.0" @@ -2220,10 +2495,23 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.0.1, source-map-js@^1.2.1, "source-map-js@>=0.6.2 <2.0.0": + version "1.2.1" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spdx-correct@^3.0.0: version "3.1.1" @@ -2297,7 +2585,7 @@ strip-json-comments@^3.1.1: strip-literal@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz" integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== dependencies: acorn "^8.10.0" @@ -2321,19 +2609,55 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svgo@^3.0.2: + version "3.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + synckit@^0.8.6: version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz" integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== dependencies: "@pkgr/core" "^0.1.0" tslib "^2.6.2" +terser@^5.16.0, terser@^5.44.1: + version "5.44.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz" + integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.15.0" + commander "^2.20.0" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +tinyexec@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz" + integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg== + +tinyglobby@^0.2.15: + version "0.2.15" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" + integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.3" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -2343,12 +2667,12 @@ to-regex-range@^5.0.1: ts-api-utils@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== tslib@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== type-check@^0.4.0, type-check@~0.4.0: @@ -2372,15 +2696,15 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@~5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@*, typescript@^5.9.3, typescript@>=4.2.0, typescript@>=5.0.0, typescript@5.x: + version "5.9.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== -ufo@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" - integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== +ufo@^1.6.1: + version "1.6.2" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz" + integrity sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q== unbox-primitive@^1.0.2: version "1.0.2" @@ -2392,9 +2716,24 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unctx@^2.4.1: + version "2.5.0" + resolved "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz" + integrity sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg== + dependencies: + acorn "^8.15.0" + estree-walker "^3.0.3" + magic-string "^0.30.21" + unplugin "^2.3.11" + +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== + unimport@^3.7.1: version "3.7.1" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.7.1.tgz#37250d0f3f2dcf1e1b66ed13728db0e9f50ba0c3" + resolved "https://registry.npmjs.org/unimport/-/unimport-3.7.1.tgz" integrity sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ== dependencies: "@rollup/pluginutils" "^5.1.0" @@ -2413,7 +2752,7 @@ unimport@^3.7.1: unplugin-auto-import@^0.17.5: version "0.17.5" - resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.17.5.tgz#5ae7164fddd1560e96bf9be23b2f5ef46c808ca6" + resolved "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.5.tgz" integrity sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w== dependencies: "@antfu/utils" "^0.7.7" @@ -2425,9 +2764,20 @@ unplugin-auto-import@^0.17.5: unimport "^3.7.1" unplugin "^1.6.0" +unplugin-element-plus@^0.11.2: + version "0.11.2" + resolved "https://registry.npmjs.org/unplugin-element-plus/-/unplugin-element-plus-0.11.2.tgz" + integrity sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg== + dependencies: + "@nuxt/kit" "^4.2.2" + es-module-lexer "^2.0.0" + escape-string-regexp "^5.0.0" + rolldown-string "^0.2.1" + unplugin "^2.3.11" + unplugin-vue-components@^0.26.0: version "0.26.0" - resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz#6d79caa770039a1eb3d7c09fdd28778ea20afef3" + resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz" integrity sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ== dependencies: "@antfu/utils" "^0.7.6" @@ -2443,7 +2793,7 @@ unplugin-vue-components@^0.26.0: unplugin@^1.4.0, unplugin@^1.5.1, unplugin@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.6.0.tgz#0bd7c344182c73e685c864f4f7161531f024b942" + resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz" integrity sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ== dependencies: acorn "^8.11.2" @@ -2451,6 +2801,27 @@ unplugin@^1.4.0, unplugin@^1.5.1, unplugin@^1.6.0: webpack-sources "^3.2.3" webpack-virtual-modules "^0.6.1" +unplugin@^2.3.11: + version "2.3.11" + resolved "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz" + integrity sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww== + dependencies: + "@jridgewell/remapping" "^2.3.5" + acorn "^8.15.0" + picomatch "^4.0.3" + webpack-virtual-modules "^0.6.2" + +untyped@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz" + integrity sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g== + dependencies: + citty "^0.1.6" + defu "^6.1.4" + jiti "^2.4.2" + knitwork "^1.2.0" + scule "^1.3.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" @@ -2471,26 +2842,41 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vite@^5.0.12: - version "5.0.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" - integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== - dependencies: - esbuild "^0.19.3" - postcss "^8.4.32" - rollup "^4.2.0" +vite-svg-loader@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz" + integrity sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw== + dependencies: + svgo "^3.0.2" + +"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", vite@^7.3.0: + version "7.3.1" + resolved "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz" + integrity sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA== + dependencies: + esbuild "^0.27.0" + fdir "^6.5.0" + picomatch "^4.0.3" + postcss "^8.5.6" + rollup "^4.43.0" + tinyglobby "^0.2.15" optionalDependencies: fsevents "~2.3.3" -vue-demi@*: - version "0.13.11" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" - integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== +vscode-uri@^3.0.8: + version "3.1.0" + resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz" + integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== + +vue-demi@>=0.14.8: + version "0.14.10" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== -vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.2: - version "9.4.2" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz#02ffcce82042b082292f2d1672514615f0d95b6d" - integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== +vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== dependencies: debug "^4.3.4" eslint-scope "^7.1.1" @@ -2500,50 +2886,41 @@ vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.2: lodash "^4.17.21" semver "^7.3.6" -vue-router@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" - integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== - dependencies: - "@vue/devtools-api" "^6.5.0" - -vue-template-compiler@^2.7.14: - version "2.7.14" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz" - integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== +vue-router@^4.6.4: + version "4.6.4" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz" + integrity sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== dependencies: - de-indent "^1.0.2" - he "^1.2.0" + "@vue/devtools-api" "^6.6.4" -vue-tsc@^1.8.27: - version "1.8.27" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" - integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== +vue-tsc@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.2.tgz" + integrity sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ== dependencies: - "@volar/typescript" "~1.11.1" - "@vue/language-core" "1.8.27" - semver "^7.5.4" + "@volar/typescript" "2.4.27" + "@vue/language-core" "3.2.2" -vue@^3.4.15: - version "3.4.15" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c" - integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== +"vue@^3.0.0-0 || ^2.6.0", vue@^3.2.0, vue@^3.2.25, vue@^3.3.0, vue@^3.4.0, vue@^3.5.0, vue@^3.5.26, vue@>=3.2.13, "vue@2 || 3", vue@3.5.26: + version "3.5.26" + resolved "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz" + integrity sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-sfc" "3.4.15" - "@vue/runtime-dom" "3.4.15" - "@vue/server-renderer" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.5.26" + "@vue/compiler-sfc" "3.5.26" + "@vue/runtime-dom" "3.5.26" + "@vue/server-renderer" "3.5.26" + "@vue/shared" "3.5.26" webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack-virtual-modules@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" - integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== +webpack-virtual-modules@^0.6.1, webpack-virtual-modules@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" + integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== which-boxed-primitive@^1.0.2: version "1.0.2" @@ -2592,11 +2969,6 @@ xml-name-validator@^4.0.0: resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" diff --git a/web/frps/vite.config.mts b/web/frps/vite.config.mts index fc2925fd30b..eb1761efa80 100644 --- a/web/frps/vite.config.mts +++ b/web/frps/vite.config.mts @@ -39,6 +39,7 @@ export default defineConfig({ }, }, server: { + allowedHosts: process.env.ALLOWED_HOSTS ? process.env.ALLOWED_HOSTS.split(',') : [], proxy: { '/api': { target: process.env.VITE_API_URL || 'http://127.0.0.1:7500', diff --git a/web/frps/yarn.lock b/web/frps/yarn.lock index 5418abc6c8e..b221419b2dd 100644 --- a/web/frps/yarn.lock +++ b/web/frps/yarn.lock @@ -4,34 +4,34 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@antfu/utils@^0.7.10", "@antfu/utils@^0.7.6": version "0.7.10" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" + resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz" integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== "@babel/helper-string-parser@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== "@babel/helper-validator-identifier@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== -"@babel/parser@^7.28.5": +"@babel/parser@^7.15.8", "@babel/parser@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz" integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== dependencies: "@babel/types" "^7.28.5" "@babel/types@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz" integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== dependencies: "@babel/helper-string-parser" "^7.27.1" @@ -44,154 +44,29 @@ "@element-plus/icons-vue@^2.3.2": version "2.3.2" - resolved "https://registry.yarnpkg.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz#7e9cb231fb738b2056f33e22c3a29e214b538dcf" + resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz" integrity sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A== -"@esbuild/aix-ppc64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz#521cbd968dcf362094034947f76fa1b18d2d403c" - integrity sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw== - -"@esbuild/android-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz#61ea550962d8aa12a9b33194394e007657a6df57" - integrity sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA== - -"@esbuild/android-arm@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.2.tgz#554887821e009dd6d853f972fde6c5143f1de142" - integrity sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA== - -"@esbuild/android-x64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.2.tgz#a7ce9d0721825fc578f9292a76d9e53334480ba2" - integrity sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A== - -"@esbuild/darwin-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz#2cb7659bd5d109803c593cfc414450d5430c8256" - integrity sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg== - "@esbuild/darwin-x64@0.27.2": version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz#e741fa6b1abb0cd0364126ba34ca17fd5e7bf509" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz" integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== -"@esbuild/freebsd-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz#2b64e7116865ca172d4ce034114c21f3c93e397c" - integrity sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g== - -"@esbuild/freebsd-x64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz#e5252551e66f499e4934efb611812f3820e990bb" - integrity sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA== - -"@esbuild/linux-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz#dc4acf235531cd6984f5d6c3b13dbfb7ddb303cb" - integrity sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw== - -"@esbuild/linux-arm@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz#56a900e39240d7d5d1d273bc053daa295c92e322" - integrity sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw== - -"@esbuild/linux-ia32@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz#d4a36d473360f6870efcd19d52bbfff59a2ed1cc" - integrity sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w== - -"@esbuild/linux-loong64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz#fcf0ab8c3eaaf45891d0195d4961cb18b579716a" - integrity sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg== - -"@esbuild/linux-mips64el@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz#598b67d34048bb7ee1901cb12e2a0a434c381c10" - integrity sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw== - -"@esbuild/linux-ppc64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz#3846c5df6b2016dab9bc95dde26c40f11e43b4c0" - integrity sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ== - -"@esbuild/linux-riscv64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz#173d4475b37c8d2c3e1707e068c174bb3f53d07d" - integrity sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA== - -"@esbuild/linux-s390x@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz#f7a4790105edcab8a5a31df26fbfac1aa3dacfab" - integrity sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w== - -"@esbuild/linux-x64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz#2ecc1284b1904aeb41e54c9ddc7fcd349b18f650" - integrity sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA== - -"@esbuild/netbsd-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz#e2863c2cd1501845995cb11adf26f7fe4be527b0" - integrity sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw== - -"@esbuild/netbsd-x64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz#93f7609e2885d1c0b5a1417885fba8d1fcc41272" - integrity sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA== - -"@esbuild/openbsd-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz#a1985604a203cdc325fd47542e106fafd698f02e" - integrity sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA== - -"@esbuild/openbsd-x64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz#8209e46c42f1ffbe6e4ef77a32e1f47d404ad42a" - integrity sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg== - -"@esbuild/openharmony-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz#8fade4441893d9cc44cbd7dcf3776f508ab6fb2f" - integrity sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag== - -"@esbuild/sunos-x64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz#980d4b9703a16f0f07016632424fc6d9a789dfc2" - integrity sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg== - -"@esbuild/win32-arm64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz#1c09a3633c949ead3d808ba37276883e71f6111a" - integrity sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg== - -"@esbuild/win32-ia32@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz#1b1e3a63ad4bef82200fef4e369e0fff7009eee5" - integrity sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ== - -"@esbuild/win32-x64@0.27.2": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz#9e585ab6086bef994c6e8a5b3a0481219ada862b" - integrity sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ== - "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -206,7 +81,7 @@ "@eslint/js@8.56.0": version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@floating-ui/core@^1.1.0": @@ -223,7 +98,7 @@ "@humanwhocodes/config-array@^0.11.13": version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: "@humanwhocodes/object-schema" "^2.0.2" @@ -237,12 +112,12 @@ "@humanwhocodes/object-schema@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -250,7 +125,7 @@ "@jridgewell/remapping@^2.3.5": version "2.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -258,12 +133,12 @@ "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/source-map@^0.3.3": version "0.3.11" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz" integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -271,38 +146,33 @@ "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.31" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@kurkle/color@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.4.tgz#4d4ff677e1609214fc71c580125ddddd86abcabf" - integrity sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -310,7 +180,7 @@ "@nuxt/kit@^4.2.2": version "4.2.2" - resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-4.2.2.tgz#f3f900a59e8c8f71313e31366c9319806ac9c9e7" + resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-4.2.2.tgz" integrity sha512-ZAgYBrPz/yhVgDznBNdQj2vhmOp31haJbO0I0iah/P9atw+OHH7NJLUZ3PK+LOz/0fblKTN1XJVSi8YQ1TQ0KA== dependencies: c12 "^3.3.2" @@ -334,74 +204,14 @@ unctx "^2.4.1" untyped "^2.0.0" -"@parcel/watcher-android-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz#507f836d7e2042f798c7d07ad19c3546f9848ac1" - integrity sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== - -"@parcel/watcher-darwin-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz#3d26dce38de6590ef79c47ec2c55793c06ad4f67" - integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== - "@parcel/watcher-darwin-x64@2.5.1": version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz#99f3af3869069ccf774e4ddfccf7e64fd2311ef8" + resolved "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz" integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== -"@parcel/watcher-freebsd-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz#14d6857741a9f51dfe51d5b08b7c8afdbc73ad9b" - integrity sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== - -"@parcel/watcher-linux-arm-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz#43c3246d6892381db473bb4f663229ad20b609a1" - integrity sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== - -"@parcel/watcher-linux-arm-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz#663750f7090bb6278d2210de643eb8a3f780d08e" - integrity sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== - -"@parcel/watcher-linux-arm64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz#ba60e1f56977f7e47cd7e31ad65d15fdcbd07e30" - integrity sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== - -"@parcel/watcher-linux-arm64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz#f7fbcdff2f04c526f96eac01f97419a6a99855d2" - integrity sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== - -"@parcel/watcher-linux-x64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" - integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== - -"@parcel/watcher-linux-x64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" - integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== - -"@parcel/watcher-win32-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz#7e9e02a26784d47503de1d10e8eab6cceb524243" - integrity sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== - -"@parcel/watcher-win32-ia32@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz#2d0f94fa59a873cdc584bf7f6b1dc628ddf976e6" - integrity sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== - -"@parcel/watcher-win32-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz#ae52693259664ba6f2228fa61d7ee44b64ea0947" - integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== - "@parcel/watcher@^2.4.1": version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" + resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz" integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== dependencies: detect-libc "^1.0.3" @@ -425,7 +235,7 @@ "@pkgr/core@^0.1.0": version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== "@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": @@ -435,210 +245,80 @@ "@rolldown/pluginutils@1.0.0-beta.53": version "1.0.0-beta.53" - resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz#c57a5234ae122671aff6fe72e673a7ed90f03f87" + resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz" integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ== "@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0", "@rollup/pluginutils@^5.1.4": version "5.3.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.3.0.tgz#57ba1b0cbda8e7a3c597a4853c807b156e21a7b4" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz" integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^4.0.2" -"@rollup/rollup-android-arm-eabi@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz#76e0fef6533b3ce313f969879e61e8f21f0eeb28" - integrity sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg== - -"@rollup/rollup-android-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz#d3cfc675a40bbdec97bda6d7fe3b3b05f0e1cd93" - integrity sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg== - -"@rollup/rollup-darwin-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz#eb912b8f59dd47c77b3c50a78489013b1d6772b4" - integrity sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg== - "@rollup/rollup-darwin-x64@4.55.1": version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz#e7d0839fdfd1276a1d34bc5ebbbd0dfd7d0b81a0" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz" integrity sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ== -"@rollup/rollup-freebsd-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz#7ff8118760f7351e48fd0cd3717ff80543d6aac8" - integrity sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg== - -"@rollup/rollup-freebsd-x64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz#49d330dadbda1d4e9b86b4a3951b59928a9489a9" - integrity sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw== - -"@rollup/rollup-linux-arm-gnueabihf@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz#98c5f1f8b9776b4a36e466e2a1c9ed1ba52ef1b6" - integrity sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ== - -"@rollup/rollup-linux-arm-musleabihf@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz#b9acecd3672e742f70b0c8a94075c816a91ff040" - integrity sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg== - -"@rollup/rollup-linux-arm64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz#7a6ab06651bc29e18b09a50ed1a02bc972977c9b" - integrity sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ== - -"@rollup/rollup-linux-arm64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz#3c8c9072ba4a4d4ef1156b85ab9a2cbb57c1fad0" - integrity sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA== - -"@rollup/rollup-linux-loong64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz#17a7af13530f4e4a7b12cd26276c54307a84a8b0" - integrity sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g== - -"@rollup/rollup-linux-loong64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz#5cd7a900fd7b077ecd753e34a9b7ff1157fe70c1" - integrity sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw== - -"@rollup/rollup-linux-ppc64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz#03a097e70243ddf1c07b59d3c20f38e6f6800539" - integrity sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw== - -"@rollup/rollup-linux-ppc64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz#a5389873039d4650f35b4fa060d286392eb21a94" - integrity sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw== - -"@rollup/rollup-linux-riscv64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz#789e60e7d6e2b76132d001ffb24ba80007fb17d0" - integrity sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw== - -"@rollup/rollup-linux-riscv64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz#3556fa88d139282e9a73c337c9a170f3c5fe7aa4" - integrity sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg== - -"@rollup/rollup-linux-s390x-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz#c085995b10143c16747a67f1a5487512b2ff04b2" - integrity sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg== - -"@rollup/rollup-linux-x64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz#9563a5419dd2604841bad31a39ccfdd2891690fb" - integrity sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg== - -"@rollup/rollup-linux-x64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz#691bb06e6269a8959c13476b0cd2aa7458facb31" - integrity sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w== - -"@rollup/rollup-openbsd-x64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz#223e71224746a59ce6d955bbc403577bb5a8be9d" - integrity sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg== - -"@rollup/rollup-openharmony-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz#0817e5d8ecbfeb8b7939bf58f8ce3c9dd67fce77" - integrity sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw== - -"@rollup/rollup-win32-arm64-msvc@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz#de56d8f2013c84570ef5fb917aae034abda93e4a" - integrity sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g== - -"@rollup/rollup-win32-ia32-msvc@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz#659aff5244312475aeea2c9479a6c7d397b517bf" - integrity sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA== - -"@rollup/rollup-win32-x64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz#2cb09549cbb66c1b979f9238db6dd454cac14a88" - integrity sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg== - -"@rollup/rollup-win32-x64-msvc@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz#f79437939020b83057faf07e98365b1fa51c458b" - integrity sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw== - "@rushstack/eslint-patch@^1.15.0": version "1.15.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz#8184bcb37791e6d3c3c13a9bfbe4af263f66665f" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz" integrity sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw== "@trysound/sax@0.2.0": version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@types/estree@1.0.8", "@types/estree@^1.0.0": +"@types/estree@^1.0.0", "@types/estree@1.0.8": version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/humanize-plus@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@types/humanize-plus/-/humanize-plus-1.8.2.tgz#ce40ad11f4eeb0364f52c0ec5ef21b989369dd9b" - integrity sha512-uyFFCGYuqU/Cpr8h+iE2k0shDAnXltV0Pd/r6bmxFAvXVss2cvEiQqeZpwuX8BsAtWN0JTipeXrDxdHk4EEhPg== - "@types/json-schema@^7.0.12": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/lodash-es@^4.17.12": +"@types/lodash-es@*", "@types/lodash-es@^4.17.12": version "4.17.12" - resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b" + resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz" integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== dependencies: "@types/lodash" "*" -"@types/lodash@*": - version "4.14.191" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== - -"@types/lodash@^4.17.20": +"@types/lodash@*", "@types/lodash@^4.17.20": version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.21.tgz#b806831543d696b14f8112db600ea9d3a1df6ea4" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz" integrity sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ== -"@types/node@24": +"@types/node@^20.19.0 || >=22.12.0", "@types/node@24": version "24.10.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.4.tgz#9d27c032a1b2c42a4eab8fb65c5856a8b8e098c4" + resolved "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz" integrity sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg== dependencies: undici-types "~7.16.0" "@types/semver@^7.5.0": version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@types/web-bluetooth@^0.0.20": version "0.0.20" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== "@types/web-bluetooth@^0.0.21": version "0.0.21" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz#525433c784aed9b457aaa0ee3d92aeb71f346b63" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz" integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== "@typescript-eslint/eslint-plugin@^6.7.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz#9cf31546d2d5e884602626d89b0e0d2168ac25ed" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz" integrity sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg== dependencies: "@eslint-community/regexpp" "^4.5.1" @@ -653,9 +333,9 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.7.0": +"@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.7.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.20.0.tgz#17e314177304bdf498527e3c4b112e41287b7416" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz" integrity sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w== dependencies: "@typescript-eslint/scope-manager" "6.20.0" @@ -666,7 +346,7 @@ "@typescript-eslint/scope-manager@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz#8a926e60f6c47feb5bab878246dc2ae465730151" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz" integrity sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA== dependencies: "@typescript-eslint/types" "6.20.0" @@ -674,7 +354,7 @@ "@typescript-eslint/type-utils@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz#d395475cd0f3610dd80c7d8716fa0db767da3831" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz" integrity sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g== dependencies: "@typescript-eslint/typescript-estree" "6.20.0" @@ -684,12 +364,12 @@ "@typescript-eslint/types@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.20.0.tgz#5ccd74c29011ae7714ae6973e4ec0c634708b448" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz" integrity sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ== "@typescript-eslint/typescript-estree@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz#5b2d0975949e6bdd8d45ee1471461ef5fadc5542" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz" integrity sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g== dependencies: "@typescript-eslint/types" "6.20.0" @@ -703,7 +383,7 @@ "@typescript-eslint/utils@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.20.0.tgz#0e52afcfaa51af5656490ba4b7437cc3aa28633d" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz" integrity sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -716,7 +396,7 @@ "@typescript-eslint/visitor-keys@6.20.0": version "6.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz#f7ada27f2803de89df0edd9fd7be22c05ce6a498" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz" integrity sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw== dependencies: "@typescript-eslint/types" "6.20.0" @@ -724,31 +404,31 @@ "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== "@vitejs/plugin-vue@^6.0.3": version "6.0.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz#b857c5dcbc5cfb30bf5d7f9d6e274afcca2d46d1" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz" integrity sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w== dependencies: "@rolldown/pluginutils" "1.0.0-beta.53" "@volar/language-core@2.4.27": version "2.4.27" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.27.tgz#c66d44cd22a914384d238bbcd0f621ecc57e3618" + resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz" integrity sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ== dependencies: "@volar/source-map" "2.4.27" "@volar/source-map@2.4.27": version "2.4.27" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.27.tgz#8ce6f16e207987078fd866e2faf65c35c4d15987" + resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz" integrity sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg== "@volar/typescript@2.4.27": version "2.4.27" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.27.tgz#8950318a33d5dfcdc4b0e5bbe5a38c1b8383eae6" + resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz" integrity sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg== dependencies: "@volar/language-core" "2.4.27" @@ -757,7 +437,7 @@ "@vue/compiler-core@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.26.tgz#1a91ea90980528bedff7b1c292690bfb30612485" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz" integrity sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w== dependencies: "@babel/parser" "^7.28.5" @@ -766,9 +446,9 @@ estree-walker "^2.0.2" source-map-js "^1.2.1" -"@vue/compiler-dom@3.5.26", "@vue/compiler-dom@^3.5.0": +"@vue/compiler-dom@^3.5.0", "@vue/compiler-dom@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz#66c36b6ed8bdf43236d7188ea332bc9d078eb286" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz" integrity sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A== dependencies: "@vue/compiler-core" "3.5.26" @@ -776,7 +456,7 @@ "@vue/compiler-sfc@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz#fb1c6c4bf9a9e22bb169e039e19437cb6995917a" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz" integrity sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA== dependencies: "@babel/parser" "^7.28.5" @@ -791,7 +471,7 @@ "@vue/compiler-ssr@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz#f6e94bccbb5339180779036ddfb614f998a197ea" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz" integrity sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw== dependencies: "@vue/compiler-dom" "3.5.26" @@ -799,12 +479,12 @@ "@vue/devtools-api@^6.6.4": version "6.6.4" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz" integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== "@vue/eslint-config-prettier@^9.0.0": version "9.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#f63394f8f7759d92b6ef3f3e1d30ff6b0c0b97c1" + resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz" integrity sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg== dependencies: eslint-config-prettier "^9.0.0" @@ -812,7 +492,7 @@ "@vue/eslint-config-typescript@^12.0.0": version "12.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#0ce22d97af5e4155f3f2e7b21a48cfde8a6f3365" + resolved "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz" integrity sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg== dependencies: "@typescript-eslint/eslint-plugin" "^6.7.0" @@ -821,7 +501,7 @@ "@vue/language-core@3.2.2": version "3.2.2" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-3.2.2.tgz#00af7f3ba584f2d4cbf17c564a00e0437c19823e" + resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.2.tgz" integrity sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ== dependencies: "@volar/language-core" "2.4.27" @@ -834,14 +514,14 @@ "@vue/reactivity@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.26.tgz#59a1edf566dc80133c1c26c93711c877e8602c48" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz" integrity sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ== dependencies: "@vue/shared" "3.5.26" "@vue/runtime-core@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.26.tgz#3f2c040bcf8018c03a1ab5adb0d788c13c986f0e" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz" integrity sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q== dependencies: "@vue/reactivity" "3.5.26" @@ -849,7 +529,7 @@ "@vue/runtime-dom@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz#5954848614883948ecc1f631a67b32cc32f81936" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz" integrity sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ== dependencies: "@vue/reactivity" "3.5.26" @@ -859,25 +539,34 @@ "@vue/server-renderer@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.26.tgz#269055497fcc75b3984063f866f17c748b565ef4" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz" integrity sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA== dependencies: "@vue/compiler-ssr" "3.5.26" "@vue/shared" "3.5.26" -"@vue/shared@3.5.26", "@vue/shared@^3.5.0": +"@vue/shared@^3.5.0", "@vue/shared@3.5.26": version "3.5.26" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.26.tgz#1e02ef2d64aced818cd31d81ce5175711dc90a9f" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz" integrity sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A== "@vue/tsconfig@^0.8.1": version "0.8.1" - resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.8.1.tgz#4732251fa58945024424385cf3be0b1708fad5fe" + resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz" integrity sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g== +"@vueuse/core@*", "@vueuse/core@^14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-14.1.0.tgz" + integrity sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw== + dependencies: + "@types/web-bluetooth" "^0.0.21" + "@vueuse/metadata" "14.1.0" + "@vueuse/shared" "14.1.0" + "@vueuse/core@^10.11.0": version "10.11.1" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.11.1.tgz#15d2c0b6448d2212235b23a7ba29c27173e0c2c6" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz" integrity sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww== dependencies: "@types/web-bluetooth" "^0.0.20" @@ -885,35 +574,26 @@ "@vueuse/shared" "10.11.1" vue-demi ">=0.14.8" -"@vueuse/core@^14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-14.1.0.tgz#274e98e591a505333b7dfb2bcaf7b4530a10b9c9" - integrity sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw== - dependencies: - "@types/web-bluetooth" "^0.0.21" - "@vueuse/metadata" "14.1.0" - "@vueuse/shared" "14.1.0" - "@vueuse/metadata@10.11.1": version "10.11.1" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.11.1.tgz#209db7bb5915aa172a87510b6de2ca01cadbd2a7" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz" integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw== "@vueuse/metadata@14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-14.1.0.tgz#70fc2e94775e4a07369f11f86f6f0a465b04a381" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.1.0.tgz" integrity sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA== "@vueuse/shared@10.11.1": version "10.11.1" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.11.1.tgz#62b84e3118ae6e1f3ff38f4fbe71b0c5d0f10938" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz" integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA== dependencies: vue-demi ">=0.14.8" "@vueuse/shared@14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-14.1.0.tgz#49b2face86a9c0c52e20eaf4c732a0223276c11f" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-14.1.0.tgz" integrity sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw== acorn-jsx@^5.3.2: @@ -921,21 +601,11 @@ acorn-jsx@^5.3.2: resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.14.0, acorn@^8.15.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.14.0, acorn@^8.15.0, acorn@^8.8.0, acorn@^8.9.0: version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" @@ -948,7 +618,7 @@ ajv@^6.12.4: alien-signals@^3.0.0: version "3.1.2" - resolved "https://registry.yarnpkg.com/alien-signals/-/alien-signals-3.1.2.tgz#26e623e3ed81e401df1a7c503f726e2288a4fa02" + resolved "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz" integrity sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw== ansi-regex@^5.0.1: @@ -972,7 +642,7 @@ ansi-styles@^4.1.0: anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -1000,12 +670,12 @@ available-typed-arrays@^1.0.5: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== boolbase@^1.0.0: @@ -1023,26 +693,26 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz" integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" braces@^3.0.3, braces@~3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== c12@^3.3.2: version "3.3.3" - resolved "https://registry.yarnpkg.com/c12/-/c12-3.3.3.tgz#cab6604e6e6117fc9e62439a8e8144bbbe5edcd6" + resolved "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz" integrity sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q== dependencies: chokidar "^5.0.0" @@ -1088,16 +758,9 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chart.js@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.5.1.tgz#19dd1a9a386a3f6397691672231cb5fc9c052c35" - integrity sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw== - dependencies: - "@kurkle/color" "^0.3.0" - chokidar@^3.5.3: version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -1112,21 +775,21 @@ chokidar@^3.5.3: chokidar@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: readdirp "^4.0.1" chokidar@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-5.0.0.tgz#949c126a9238a80792be9a0265934f098af369a5" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz" integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== dependencies: readdirp "^5.0.0" citty@^0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" + resolved "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz" integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== dependencies: consola "^3.2.3" @@ -1145,24 +808,24 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + commander@^2.20.0: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== concat-map@0.0.1: @@ -1172,17 +835,17 @@ concat-map@0.0.1: confbox@^0.1.8: version "0.1.8" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" + resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz" integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== confbox@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.2.tgz#8652f53961c74d9e081784beed78555974a9c110" + resolved "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz" integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== consola@^3.2.3, consola@^3.4.0, consola@^3.4.2: version "3.4.2" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + resolved "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz" integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== cross-spawn@^6.0.5: @@ -1207,7 +870,7 @@ cross-spawn@^7.0.2: css-select@^5.1.0: version "5.2.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== dependencies: boolbase "^1.0.0" @@ -1218,7 +881,7 @@ css-select@^5.1.0: css-tree@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== dependencies: mdn-data "2.0.30" @@ -1226,7 +889,7 @@ css-tree@^2.3.1: css-tree@~2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== dependencies: mdn-data "2.0.28" @@ -1234,7 +897,7 @@ css-tree@~2.2.0: css-what@^6.1.0: version "6.2.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== cssesc@^3.0.0: @@ -1244,36 +907,24 @@ cssesc@^3.0.0: csso@^5.0.5: version "5.0.5" - resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== dependencies: css-tree "~2.2.0" csstype@^3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== -date-fns@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.1.0.tgz#64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14" - integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== - dayjs@^1.11.19: version "1.11.19" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz" integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== -debug@^4.3.1, debug@^4.3.2: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^4.3.4: +debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" @@ -1293,17 +944,17 @@ define-properties@^1.1.3, define-properties@^1.1.4: defu@^6.1.4: version "6.1.4" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + resolved "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz" integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== destr@^2.0.3, destr@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.5.tgz#7d112ff1b925fb8d2079fac5bdb4a90973b51fdb" + resolved "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz" integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== detect-libc@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== dir-glob@^3.0.1: @@ -1322,7 +973,7 @@ doctrine@^3.0.0: dom-serializer@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: domelementtype "^2.3.0" @@ -1331,19 +982,19 @@ dom-serializer@^2.0.0: domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" domutils@^3.0.1: version "3.2.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== dependencies: dom-serializer "^2.0.0" @@ -1352,12 +1003,12 @@ domutils@^3.0.1: dotenv@^17.2.3: version "17.2.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-17.2.3.tgz#ad995d6997f639b11065f419a22fabf567cdb9a2" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz" integrity sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w== element-plus@^2.13.0: version "2.13.0" - resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.13.0.tgz#e2ae817c1ed4fa9e94456af69a0f88cd824ee0c7" + resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.13.0.tgz" integrity sha512-qjxS+SBChvqCl6lU6ShiliLMN6WqFHiXQENYbAY3GKNflG+FS3jqn8JmQq0CBZq4koFqsi95NT1M6SL4whZfrA== dependencies: "@ctrl/tinycolor" "^3.4.1" @@ -1377,12 +1028,12 @@ element-plus@^2.13.0: entities@^4.2.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== entities@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-7.0.0.tgz#2ae4e443f3f17d152d3f5b0f79b932c1e59deb7a" + resolved "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz" integrity sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ== error-ex@^1.3.1: @@ -1394,7 +1045,7 @@ error-ex@^1.3.1: errx@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/errx/-/errx-0.1.0.tgz#4881e411d90a3b1e1620a07604f50081dd59f3aa" + resolved "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz" integrity sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q== es-abstract@^1.19.0, es-abstract@^1.20.4: @@ -1438,7 +1089,7 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: es-module-lexer@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz" integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== es-set-tostringtag@^2.0.1: @@ -1461,7 +1112,7 @@ es-to-primitive@^1.2.1: esbuild@^0.27.0: version "0.27.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.2.tgz#d83ed2154d5813a5367376bb2292a9296fc83717" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz" integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== optionalDependencies: "@esbuild/aix-ppc64" "0.27.2" @@ -1503,25 +1154,25 @@ escape-string-regexp@^4.0.0: escape-string-regexp@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -eslint-config-prettier@^9.0.0: +eslint-config-prettier@*, eslint-config-prettier@^9.0.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-prettier@^5.0.0: version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz" integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" synckit "^0.8.6" -eslint-plugin-vue@^9.33.0: +eslint-plugin-vue@^9.0.0, eslint-plugin-vue@^9.33.0: version "9.33.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz#de33eba8f78e1d172c59c8ec7fbfd60c6ca35c39" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz" integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -1543,7 +1194,7 @@ eslint-scope@^7.1.1: eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -1556,12 +1207,12 @@ eslint-visitor-keys@^3.3.0: eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.56.0: +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.56.0, "eslint@>= 8.0.0", eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=8.0.0: version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -1612,9 +1263,18 @@ espree@^9.3.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" -espree@^9.6.0, espree@^9.6.1: +espree@^9.6.0: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +espree@^9.6.1: + version "9.6.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" @@ -1630,7 +1290,7 @@ esquery@^1.4.0: esquery@^1.4.2: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -1649,12 +1309,12 @@ estraverse@^5.1.0, estraverse@^5.2.0: estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== estree-walker@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== dependencies: "@types/estree" "^1.0.0" @@ -1666,7 +1326,7 @@ esutils@^2.0.2: exsolve@^1.0.7, exsolve@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.8.tgz#7f5e34da61cd1116deda5136e62292c096f50613" + resolved "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz" integrity sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: @@ -1679,20 +1339,9 @@ fast-diff@^1.1.2: resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-glob@^3.3.1, fast-glob@^3.3.2, fast-glob@^3.3.3: +fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2, fast-glob@^3.3.3: version "3.3.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -1713,14 +1362,14 @@ fast-levenshtein@^2.0.6: fastq@^1.6.0: version "1.20.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz" integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" fdir@^6.5.0: version "6.5.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== file-entry-cache@^6.0.1: @@ -1732,7 +1381,7 @@ file-entry-cache@^6.0.1: fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -1772,7 +1421,7 @@ fs.realpath@^1.0.0: fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: @@ -1782,7 +1431,7 @@ function-bind@^1.1.1: function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.5: @@ -1819,7 +1468,7 @@ get-symbol-description@^1.0.0: giget@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/giget/-/giget-2.0.0.tgz#395fc934a43f9a7a29a29d55b99f23e30c14f195" + resolved "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz" integrity sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA== dependencies: citty "^0.1.6" @@ -1831,7 +1480,7 @@ giget@^2.0.0: glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -1864,7 +1513,7 @@ globals@^13.19.0: globals@^13.24.0: version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -1902,7 +1551,7 @@ graceful-fs@^4.1.2: graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== has-bigints@^1.0.1, has-bigints@^1.0.2: @@ -1953,7 +1602,7 @@ has@^1.0.3: hasown@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" @@ -1963,11 +1612,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -humanize-plus@^1.8.2: - version "1.8.2" - resolved "https://registry.npmjs.org/humanize-plus/-/humanize-plus-1.8.2.tgz" - integrity sha512-jaLeQyyzjjINGv7O9JJegjsaUcWjSj/1dcXvLEgU3pGdqCdP1PiC/uwr+saJXhTNBHZtmKnmpXyazgh+eceRxA== - ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" @@ -1975,12 +1619,12 @@ ignore@^5.2.0, ignore@^5.2.4: ignore@^7.0.5: version "7.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" + resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz" integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== immutable@^5.0.2: version "5.1.4" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f" + resolved "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz" integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== import-fresh@^3.2.1: @@ -2041,7 +1685,7 @@ is-bigint@^1.0.1: is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" @@ -2061,18 +1705,11 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: is-core-module@^2.16.1: version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" @@ -2082,7 +1719,7 @@ is-date-object@^1.0.1: is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: @@ -2106,7 +1743,7 @@ is-number-object@^1.0.4: is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: @@ -2166,14 +1803,14 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jiti@^2.4.2, jiti@^2.6.1: +jiti@^2.4.2, jiti@^2.6.1, jiti@>=1.21.0: version "2.6.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" + resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== js-tokens@^9.0.1: version "9.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz" integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== js-yaml@^4.1.0: @@ -2200,12 +1837,12 @@ json-stable-stringify-without-jsonify@^1.0.1: klona@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== knitwork@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-1.3.0.tgz#4a0d0b0d45378cac909ee1117481392522bd08a4" + resolved "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz" integrity sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw== levn@^0.4.1: @@ -2228,12 +1865,12 @@ load-json-file@^4.0.0: local-pkg@^0.4.3: version "0.4.3" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== local-pkg@^0.5.0: version "0.5.1" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz" integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== dependencies: mlly "^1.7.3" @@ -2241,7 +1878,7 @@ local-pkg@^0.5.0: local-pkg@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.2.tgz#c03d208787126445303f8161619dc701afa4abb5" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz" integrity sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A== dependencies: mlly "^1.7.4" @@ -2255,14 +1892,14 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash-es@^4.17.21: +lodash-es@*, lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== lodash-unified@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894" + resolved "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== lodash.merge@^4.6.2: @@ -2270,33 +1907,26 @@ lodash.merge@^4.6.2: resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.21: +lodash@*, lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.21, magic-string@^0.30.3: version "0.30.21" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== dependencies: "@jridgewell/sourcemap-codec" "^1.5.5" mdn-data@2.0.28: version "2.0.28" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== mdn-data@2.0.30: version "2.0.30" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== memoize-one@^6.0.0: @@ -2314,21 +1944,14 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: +micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" picomatch "^2.3.1" -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" @@ -2336,16 +1959,30 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.3, minimatch@^9.0.4: +minimatch@^9.0.3: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.4: version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + mlly@^1.7.3, mlly@^1.7.4, mlly@^1.8.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.8.0.tgz#e074612b938af8eba1eaf43299cbc89cb72d824e" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz" integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== dependencies: acorn "^8.15.0" @@ -2353,24 +1990,19 @@ mlly@^1.7.3, mlly@^1.7.4, mlly@^1.8.0: pkg-types "^1.3.1" ufo "^1.6.1" -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== muggle-string@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328" + resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz" integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== nanoid@^3.3.11: version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== natural-compare@^1.4.0: @@ -2385,12 +2017,12 @@ nice-try@^1.0.4: node-addon-api@^7.0.0: version "7.1.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== node-fetch-native@^1.6.6: version "1.6.7" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.7.tgz#9d09ca63066cc48423211ed4caf5d70075d76a71" + resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz" integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== normalize-package-data@^2.3.2: @@ -2405,7 +2037,7 @@ normalize-package-data@^2.3.2: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-wheel-es@^1.2.0: @@ -2430,14 +2062,14 @@ npm-run-all@^4.1.5: nth-check@^2.0.1, nth-check@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" nypm@^0.6.0: version "0.6.2" - resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.6.2.tgz#467512024948398fafa73cea30a3ed9efc5af071" + resolved "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz" integrity sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g== dependencies: citty "^0.1.6" @@ -2468,7 +2100,7 @@ object.assign@^4.1.4: ohash@^2.0.11: version "2.0.11" - resolved "https://registry.yarnpkg.com/ohash/-/ohash-2.0.11.tgz#60b11e8cff62ca9dee88d13747a5baa145f5900b" + resolved "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz" integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== once@^1.3.0: @@ -2480,7 +2112,7 @@ once@^1.3.0: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -2521,7 +2153,7 @@ parse-json@^4.0.0: path-browserify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-exists@^4.0.0: @@ -2546,7 +2178,7 @@ path-key@^3.1.0: path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^3.0.0: @@ -2563,12 +2195,12 @@ path-type@^4.0.0: pathe@^2.0.1, pathe@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== perfect-debounce@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-2.0.0.tgz#0ff94f1ecbe0a6bca4b1703a2ed08bbe43739aa7" + resolved "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz" integrity sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow== picocolors@^1.0.0: @@ -2578,17 +2210,27 @@ picocolors@^1.0.0: picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.0.4: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2, picomatch@^4.0.3: +"picomatch@^3 || ^4", picomatch@^4.0.2, picomatch@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== pidtree@^0.3.0: @@ -2601,9 +2243,27 @@ pify@^3.0.0: resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -pkg-types@^1.2.1, pkg-types@^1.3.0, pkg-types@^1.3.1: +pkg-types@^1.2.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== + dependencies: + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" + +pkg-types@^1.3.0: + version "1.3.1" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== + dependencies: + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" + +pkg-types@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== dependencies: confbox "^0.1.8" @@ -2612,7 +2272,7 @@ pkg-types@^1.2.1, pkg-types@^1.3.0, pkg-types@^1.3.1: pkg-types@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.3.0.tgz#037f2c19bd5402966ff6810e32706558cb5b5726" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz" integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== dependencies: confbox "^0.2.2" @@ -2621,7 +2281,7 @@ pkg-types@^2.3.0: postcss-selector-parser@^6.0.15: version "6.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== dependencies: cssesc "^3.0.0" @@ -2629,7 +2289,7 @@ postcss-selector-parser@^6.0.15: postcss@^8.5.6: version "8.5.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: nanoid "^3.3.11" @@ -2648,9 +2308,9 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.7.4: +prettier@^3.7.4, "prettier@>= 3.0.0", prettier@>=3.0.0: version "3.7.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz" integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== punycode@^2.1.0: @@ -2660,17 +2320,17 @@ punycode@^2.1.0: quansync@^0.2.11: version "0.2.11" - resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.11.tgz#f9c3adda2e1272e4f8cf3f1457b04cbdb4ee692a" + resolved "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz" integrity sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== rc9@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.2.tgz#6282ff638a50caa0a91a31d76af4a0b9cbd1080d" + resolved "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz" integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== dependencies: defu "^6.1.4" @@ -2687,17 +2347,17 @@ read-pkg@^3.0.0: readdirp@^4.0.1: version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== readdirp@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-5.0.0.tgz#fbf1f71a727891d685bb1786f9ba74084f6e2f91" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz" integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ== readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -2716,18 +2376,9 @@ resolve-from@^4.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.10.0: - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.22.4: +resolve@^1.10.0, resolve@^1.22.4: version "1.22.11" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz" integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== dependencies: is-core-module "^2.16.1" @@ -2736,7 +2387,7 @@ resolve@^1.22.4: reusify@^1.0.4: version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rimraf@^3.0.2: @@ -2748,14 +2399,14 @@ rimraf@^3.0.2: rolldown-string@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/rolldown-string/-/rolldown-string-0.2.1.tgz#331034f391e9a0e509251b22bbccf7816885a5ea" + resolved "https://registry.npmjs.org/rolldown-string/-/rolldown-string-0.2.1.tgz" integrity sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg== dependencies: magic-string "^0.30.21" -rollup@^4.43.0: +rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^4.43.0: version "4.55.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.55.1.tgz#4ec182828be440648e7ee6520dc35e9f20e05144" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz" integrity sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A== dependencies: "@types/estree" "1.0.8" @@ -2789,7 +2440,7 @@ rollup@^4.43.0: run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" @@ -2803,9 +2454,9 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.97.2: +sass@^1.70.0, sass@^1.97.2: version "1.97.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.2.tgz#e515a319092fd2c3b015228e3094b40198bff0da" + resolved "https://registry.npmjs.org/sass/-/sass-1.97.2.tgz" integrity sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw== dependencies: chokidar "^4.0.0" @@ -2816,33 +2467,24 @@ sass@^1.97.2: scule@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" + resolved "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz" integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== -"semver@2 || 3 || 4 || 5", semver@^5.5.0: +semver@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^7.3.6: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.6.3, semver@^7.7.3: +semver@^7.3.6, semver@^7.5.4, semver@^7.6.3, semver@^7.7.3: version "7.7.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" @@ -2886,14 +2528,14 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.1: +source-map-js@^1.0.1, source-map-js@^1.2.1, "source-map-js@>=0.6.2 <2.0.0": version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -2901,7 +2543,7 @@ source-map-support@~0.5.20: source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spdx-correct@^3.0.0: @@ -2976,7 +2618,7 @@ strip-json-comments@^3.1.1: strip-literal@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.1.1.tgz#26906e65f606d49f748454a08084e94190c2e5ad" + resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz" integrity sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q== dependencies: js-tokens "^9.0.1" @@ -2997,12 +2639,12 @@ supports-color@^7.1.0: supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svgo@^3.0.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz" integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== dependencies: "@trysound/sax" "0.2.0" @@ -3015,15 +2657,15 @@ svgo@^3.0.2: synckit@^0.8.6: version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz" integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== dependencies: "@pkgr/core" "^0.1.0" tslib "^2.6.2" -terser@^5.44.1: +terser@^5.16.0, terser@^5.44.1: version "5.44.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" + resolved "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz" integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== dependencies: "@jridgewell/source-map" "^0.3.3" @@ -3038,12 +2680,12 @@ text-table@^0.2.0: tinyexec@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.0.2.tgz#bdd2737fe2ba40bd6f918ae26642f264b99ca251" + resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz" integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg== tinyglobby@^0.2.15: version "0.2.15" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== dependencies: fdir "^6.5.0" @@ -3051,19 +2693,19 @@ tinyglobby@^0.2.15: to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" ts-api-utils@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== tslib@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== type-check@^0.4.0, type-check@~0.4.0: @@ -3087,14 +2729,14 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@^5.9.3: +typescript@*, typescript@^5.9.3, typescript@>=4.2.0, typescript@>=5.0.0, typescript@5.x: version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== ufo@^1.6.1: version "1.6.2" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.6.2.tgz#aaf4d46b98425b2fb5031abe8d65ca069e93e755" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz" integrity sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q== unbox-primitive@^1.0.2: @@ -3109,7 +2751,7 @@ unbox-primitive@^1.0.2: unctx@^2.4.1: version "2.5.0" - resolved "https://registry.yarnpkg.com/unctx/-/unctx-2.5.0.tgz#a0c3ba03838856d336e815a71403ce1a848e4108" + resolved "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz" integrity sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg== dependencies: acorn "^8.15.0" @@ -3119,12 +2761,12 @@ unctx@^2.4.1: undici-types@~7.16.0: version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== unimport@^3.7.2: version "3.14.6" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.14.6.tgz#f01170aa2fb94c4f97b22c0ac2822ef7e8e0726d" + resolved "https://registry.npmjs.org/unimport/-/unimport-3.14.6.tgz" integrity sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g== dependencies: "@rollup/pluginutils" "^5.1.4" @@ -3144,7 +2786,7 @@ unimport@^3.7.2: unplugin-auto-import@^0.17.5: version "0.17.8" - resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz#8dd5d1f21700171242553f1a476bd43ffad74af6" + resolved "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz" integrity sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw== dependencies: "@antfu/utils" "^0.7.10" @@ -3158,7 +2800,7 @@ unplugin-auto-import@^0.17.5: unplugin-element-plus@^0.11.2: version "0.11.2" - resolved "https://registry.yarnpkg.com/unplugin-element-plus/-/unplugin-element-plus-0.11.2.tgz#a5946f374788623e2be4a76f99a4a6c9c1f94135" + resolved "https://registry.npmjs.org/unplugin-element-plus/-/unplugin-element-plus-0.11.2.tgz" integrity sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg== dependencies: "@nuxt/kit" "^4.2.2" @@ -3169,7 +2811,7 @@ unplugin-element-plus@^0.11.2: unplugin-vue-components@^0.26.0: version "0.26.0" - resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz#6d79caa770039a1eb3d7c09fdd28778ea20afef3" + resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz" integrity sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ== dependencies: "@antfu/utils" "^0.7.6" @@ -3185,7 +2827,7 @@ unplugin-vue-components@^0.26.0: unplugin@^1.11.0, unplugin@^1.16.1, unplugin@^1.4.0: version "1.16.1" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.16.1.tgz#a844d2e3c3b14a4ac2945c42be80409321b61199" + resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz" integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w== dependencies: acorn "^8.14.0" @@ -3193,7 +2835,7 @@ unplugin@^1.11.0, unplugin@^1.16.1, unplugin@^1.4.0: unplugin@^2.3.11: version "2.3.11" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-2.3.11.tgz#411e020dd2ba90e2fbe1e7bd63a5a399e6ee3b54" + resolved "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz" integrity sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww== dependencies: "@jridgewell/remapping" "^2.3.5" @@ -3203,7 +2845,7 @@ unplugin@^2.3.11: untyped@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/untyped/-/untyped-2.0.0.tgz#86bc205a4ec4b0137282285866b8278557aeee97" + resolved "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz" integrity sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g== dependencies: citty "^0.1.6" @@ -3234,14 +2876,14 @@ validate-npm-package-license@^3.0.1: vite-svg-loader@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz#b0b89bd8024bc0f707d0e8d7422446ac01576d94" + resolved "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz" integrity sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw== dependencies: svgo "^3.0.2" -vite@^7.3.0: +"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", vite@^7.3.0: version "7.3.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.0.tgz#066c7a835993a66e82004eac3e185d0d157fd658" + resolved "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz" integrity sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg== dependencies: esbuild "^0.27.0" @@ -3255,17 +2897,17 @@ vite@^7.3.0: vscode-uri@^3.0.8: version "3.1.0" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.1.0.tgz#dd09ec5a66a38b5c3fffc774015713496d14e09c" + resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz" integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== vue-demi@>=0.14.8: version "0.14.10" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== vue-eslint-parser@^9.3.1: version "9.4.2" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz#02ffcce82042b082292f2d1672514615f0d95b6d" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz" integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== dependencies: debug "^4.3.4" @@ -3278,7 +2920,7 @@ vue-eslint-parser@^9.3.1: vue-eslint-parser@^9.4.3: version "9.4.3" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== dependencies: debug "^4.3.4" @@ -3291,22 +2933,22 @@ vue-eslint-parser@^9.4.3: vue-router@^4.6.4: version "4.6.4" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.6.4.tgz#a0a9cb9ef811a106d249e4bb9313d286718020d8" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz" integrity sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== dependencies: "@vue/devtools-api" "^6.6.4" vue-tsc@^3.2.2: version "3.2.2" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-3.2.2.tgz#ccee54f2c2490713de75a66d9965bd9e33fe7066" + resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.2.tgz" integrity sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ== dependencies: "@volar/typescript" "2.4.27" "@vue/language-core" "3.2.2" -vue@^3.5.26: +"vue@^3.0.0-0 || ^2.6.0", vue@^3.2.0, vue@^3.2.25, vue@^3.3.0, vue@^3.4.0, vue@^3.5.0, vue@^3.5.26, vue@>=3.2.13, "vue@2 || 3", vue@3.5.26: version "3.5.26" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.26.tgz#03a0b17311e0e593d34b9358fa249b85e3a6d9fb" + resolved "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz" integrity sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA== dependencies: "@vue/compiler-dom" "3.5.26" @@ -3317,7 +2959,7 @@ vue@^3.5.26: webpack-virtual-modules@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== which-boxed-primitive@^1.0.2: @@ -3367,11 +3009,6 @@ xml-name-validator@^4.0.0: resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" From 1245f8804e6e48277d6a5dec701c45b7c76c185b Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 9 Jan 2026 11:07:19 +0800 Subject: [PATCH 305/444] server: replace client metadata with IP address in registry (#5118) --- ...{index-D4KRVvIu.css => index-Cl4R6mJh.css} | 2 +- .../{index-BUrDiw1t.js => index-r9B2t7lx.js} | 2 +- assets/frps/static/index.html | 4 +- server/client_registry.go | 15 ++--- server/dashboard_api.go | 22 ++++---- server/service.go | 6 +- web/frps/src/components/ClientCard.vue | 55 +++---------------- web/frps/src/types/client.ts | 5 +- web/frps/src/utils/client.ts | 22 ++++---- 9 files changed, 48 insertions(+), 85 deletions(-) rename assets/frps/static/{index-D4KRVvIu.css => index-Cl4R6mJh.css} (58%) rename assets/frps/static/{index-BUrDiw1t.js => index-r9B2t7lx.js} (94%) diff --git a/assets/frps/static/index-D4KRVvIu.css b/assets/frps/static/index-Cl4R6mJh.css similarity index 58% rename from assets/frps/static/index-D4KRVvIu.css rename to assets/frps/static/index-Cl4R6mJh.css index 3ff648d204e..5528427f4e2 100644 --- a/assets/frps/static/index-D4KRVvIu.css +++ b/assets/frps/static/index-Cl4R6mJh.css @@ -1 +1 @@ -@charset "UTF-8";html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(51,117,185);--el-color-primary-light-5:rgb(42,89,138);--el-color-primary-light-7:rgb(33,61,91);--el-color-primary-light-8:rgb(29,48,67);--el-color-primary-light-9:rgb(24,34,43);--el-color-primary-dark-2:rgb(102,177,255);--el-color-success:#67c23a;--el-color-success-light-3:rgb(78,142,47);--el-color-success-light-5:rgb(62,107,39);--el-color-success-light-7:rgb(45,72,31);--el-color-success-light-8:rgb(37,55,28);--el-color-success-light-9:rgb(28,37,24);--el-color-success-dark-2:rgb(133,206,97);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(167,119,48);--el-color-warning-light-5:rgb(125,91,40);--el-color-warning-light-7:rgb(83,63,32);--el-color-warning-light-8:rgb(62,48,28);--el-color-warning-light-9:rgb(41,34,24);--el-color-warning-dark-2:rgb(235,181,99);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(178,82,82);--el-color-danger-light-5:rgb(133,64,64);--el-color-danger-light-7:rgb(88,46,46);--el-color-danger-light-8:rgb(65,38,38);--el-color-danger-light-9:rgb(42,29,29);--el-color-danger-dark-2:rgb(247,137,137);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(178,82,82);--el-color-error-light-5:rgb(133,64,64);--el-color-error-light-7:rgb(88,46,46);--el-color-error-light-8:rgb(65,38,38);--el-color-error-light-9:rgb(42,29,29);--el-color-error-dark-2:rgb(247,137,137);--el-color-info:#909399;--el-color-info-light-3:rgb(107,109,113);--el-color-info-light-5:rgb(82,84,87);--el-color-info-light-7:rgb(57,58,60);--el-color-info-light-8:rgb(45,45,47);--el-color-info-light-9:rgb(32,33,33);--el-color-info-dark-2:rgb(166,169,173);--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.36),0px 8px 20px rgba(0,0,0,.72);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.72);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:#141414;--el-mask-color:rgba(0,0,0,.8);--el-mask-color-extra-light:rgba(0,0,0,.3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255,255,255,.5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{background-color:var(--el-menu-bg-color);border-right:1px solid var(--el-menu-border-color);box-sizing:border-box;list-style:none;margin:0;padding-left:0;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level)*var(--el-menu-level-padding));white-space:nowrap}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{border-right:none;display:flex;flex-wrap:nowrap;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:1px solid var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-menu,.el-menu--popup-container,.el-popper{outline:none}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner-wrapper{align-items:center;color:var(--el-color-white);display:flex;font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}#app{min-height:100vh;display:flex;flex-direction:column;background:#f2f2f2}html.dark #app{background:#1a1a2e}.header{position:sticky;top:0;z-index:100;background:#fff}html.dark .header{background:#1e1e2d}.header-top{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 32px}.brand a{color:#303133;font-size:20px;font-weight:700;text-decoration:none;letter-spacing:-.5px}html.dark .brand a{color:#e5e7eb}.brand a:hover{color:#409eff}.header-actions{display:flex;align-items:center;gap:16px}.github-link{display:flex;align-items:center;padding:6px;border-radius:6px;transition:all .2s}.github-link:hover{background:#f2f3f5}html.dark .github-link:hover{background:#2a2a3c}.github-icon{width:20px;height:20px;color:#606266;transition:color .2s}.github-link:hover .github-icon{color:#303133}html.dark .github-icon{color:#a0a3ad}html.dark .github-link:hover .github-icon{color:#e5e7eb}.theme-switch{--el-switch-on-color: #2c2c3a;--el-switch-off-color: #f2f2f2;--el-switch-border-color: #dcdfe6}.theme-switch .el-switch__core .el-switch__inner .el-icon{color:#909399!important}.header-nav{position:relative;padding:0 32px;border-bottom:1px solid #e4e7ed}html.dark .header-nav{border-bottom-color:#3a3d5c}.nav-menu{background:transparent!important;border-bottom:none!important;height:46px}.nav-menu .el-menu-item,.nav-menu .el-sub-menu__title{position:relative;height:32px!important;line-height:32px!important;border-bottom:none!important;border-radius:6px!important;color:#666!important;font-weight:400;font-size:14px;padding:0 12px!important;margin:7px 0;transition:background .15s ease,color .15s ease}.nav-menu>.el-menu-item,.nav-menu>.el-sub-menu{margin-right:4px}.nav-menu>.el-sub-menu{padding:0!important}html.dark .nav-menu .el-menu-item,html.dark .nav-menu .el-sub-menu__title{color:#888!important}.nav-menu .el-menu-item:hover,.nav-menu .el-sub-menu__title:hover{background:#f2f2f2!important;color:#171717!important}html.dark .nav-menu .el-menu-item:hover,html.dark .nav-menu .el-sub-menu__title:hover{background:#2a2a3c!important;color:#e5e7eb!important}.nav-menu .el-menu-item.is-active{background:transparent!important;color:#171717!important;font-weight:500}.nav-menu .el-menu-item.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:#171717;border-radius:1px}.nav-menu .el-menu-item.is-active:hover{background:#f2f2f2!important}html.dark .nav-menu .el-menu-item.is-active{background:transparent!important;color:#e5e7eb!important;font-weight:500}html.dark .nav-menu .el-menu-item.is-active:after{background:#e5e7eb}html.dark .nav-menu .el-menu-item.is-active:hover{background:#2a2a3c!important}#content{flex:1;padding:24px 40px;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}@media(max-width:768px){.header-top,.header-nav{padding:0 16px}#content{padding:16px}.brand a{font-size:18px}}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);display:flex;flex-direction:column;overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{flex:1;overflow:auto;padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;display:flex;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{background-color:transparent;border:none;border-radius:50%;margin-left:6px;outline:none;overflow:hidden;padding:0}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.stat-card[data-v-c9ca9441]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.stat-card.clickable[data-v-c9ca9441]{cursor:pointer}.stat-card.clickable[data-v-c9ca9441]:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.stat-card.clickable:hover .arrow-icon[data-v-c9ca9441]{transform:translate(4px)}html.dark .stat-card[data-v-c9ca9441]{border-color:#3a3d5c;background:#27293d}.stat-card-content[data-v-c9ca9441]{display:flex;align-items:center;gap:16px}.arrow-icon[data-v-c9ca9441]{color:#909399;font-size:18px;transition:transform .2s ease;flex-shrink:0}html.dark .arrow-icon[data-v-c9ca9441]{color:#9ca3af}.stat-icon[data-v-c9ca9441]{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon .icon[data-v-c9ca9441]{width:28px;height:28px}.icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}html.dark .icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#818cf8,#a78bfa)}html.dark .icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#fb7185,#f43f5e)}html.dark .icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#60a5fa,#3b82f6)}html.dark .icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#34d399,#10b981)}.stat-info[data-v-c9ca9441]{flex:1;min-width:0}.stat-value[data-v-c9ca9441]{font-size:28px;font-weight:600;line-height:1.2;color:#303133;margin-bottom:4px}html.dark .stat-value[data-v-c9ca9441]{color:#e5e7eb}.stat-label[data-v-c9ca9441]{font-size:14px;color:#909399;font-weight:500}html.dark .stat-label[data-v-c9ca9441]{color:#9ca3af}.stat-subtitle[data-v-c9ca9441]{margin-top:12px;padding-top:12px;border-top:1px solid #e4e7ed;font-size:12px;color:#909399}html.dark .stat-subtitle[data-v-c9ca9441]{border-top-color:#3a3d5c;color:#9ca3af}.server-overview[data-v-10087479]{padding:0}.stats-row[data-v-10087479],.charts-row[data-v-10087479]{margin-bottom:20px}.chart-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;height:100%}html.dark .chart-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.config-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;margin-bottom:20px}html.dark .config-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.card-header[data-v-10087479]{display:flex;justify-content:space-between;align-items:center}.card-title[data-v-10087479]{font-size:16px;font-weight:600;color:#303133}html.dark .card-title[data-v-10087479]{color:#e5e7eb}.traffic-summary[data-v-10087479]{display:flex;align-items:center;justify-content:space-around;min-height:120px;padding:10px 0}.traffic-item[data-v-10087479]{display:flex;align-items:center;gap:16px}.traffic-icon[data-v-10087479]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px}.traffic-item.in .traffic-icon[data-v-10087479]{background:#5470c61a;color:#5470c6}.traffic-item.out .traffic-icon[data-v-10087479]{background:#91cc751a;color:#91cc75}.traffic-info[data-v-10087479]{display:flex;flex-direction:column}.traffic-info .label[data-v-10087479]{font-size:14px;color:#909399}.traffic-info .value[data-v-10087479]{font-size:24px;font-weight:600;color:#303133}html.dark .traffic-info .value[data-v-10087479]{color:#e5e7eb}.traffic-divider[data-v-10087479]{width:1px;height:60px;background:#e4e7ed}html.dark .traffic-divider[data-v-10087479]{background:#3a3d5c}.proxy-types-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px;min-height:120px;align-content:center;padding:10px 0}.proxy-type-item[data-v-10087479]{display:flex;flex-direction:column;align-items:center;padding:12px;background:#f8f9fa;border-radius:8px}html.dark .proxy-type-item[data-v-10087479]{background:#1e1e2d}.proxy-type-name[data-v-10087479]{font-size:12px;color:#909399;font-weight:500;margin-bottom:4px}.proxy-type-count[data-v-10087479]{font-size:20px;font-weight:600;color:#303133}html.dark .proxy-type-count[data-v-10087479]{color:#e5e7eb}.no-data[data-v-10087479]{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;height:100%;color:#909399;font-size:14px}.config-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.config-item[data-v-10087479]{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f8f9fa;border-radius:8px;transition:background .2s}html.dark .config-item[data-v-10087479]{background:#1e1e2d}.config-label[data-v-10087479]{font-size:12px;color:#909399;font-weight:500}html.dark .config-label[data-v-10087479]{color:#9ca3af}.config-value[data-v-10087479]{font-size:14px;color:#303133;font-weight:600;word-break:break-all}html.dark .config-value[data-v-10087479]{color:#e5e7eb}@media(max-width:768px){.chart-container[data-v-10087479]{height:250px}.config-grid[data-v-10087479]{grid-template-columns:repeat(2,1fr)}}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);inset:0;margin:0;position:absolute;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke:var(--el-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;transition:all .3s;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{inset:0;margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea .el-input__count.is-outside{background:transparent;bottom:unset;line-height:1;padding-top:2px;position:absolute;right:0;top:100%}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;right:0;top:100%}.el-input .el-input__count.is-outside .el-input__count-inner{background:transparent;line-height:1;padding-left:0}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.client-card[data-v-f3abd62a]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.client-card[data-v-f3abd62a]:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000001a}html.dark .client-card[data-v-f3abd62a]{border-color:#3a3d5c;background:#27293d}.client-header[data-v-f3abd62a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e4e7ed}html.dark .client-header[data-v-f3abd62a]{border-bottom-color:#3a3d5c}.client-status[data-v-f3abd62a]{display:flex;align-items:center;gap:8px}.status-dot[data-v-f3abd62a]{width:10px;height:10px;border-radius:50%}.status-success[data-v-f3abd62a]{background-color:#67c23a;box-shadow:0 0 #67c23ab3}.status-warning[data-v-f3abd62a]{background-color:#e6a23c;box-shadow:0 0 #e6a23cb3}.status-danger[data-v-f3abd62a]{background-color:#f56c6c;box-shadow:0 0 #f56c6cb3}.client-name[data-v-f3abd62a]{font-size:16px;font-weight:600;color:#303133}html.dark .client-name[data-v-f3abd62a]{color:#e5e7eb}.client-info[data-v-f3abd62a]{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.info-row[data-v-f3abd62a]{display:flex;align-items:center;gap:8px;font-size:13px}.info-icon[data-v-f3abd62a]{color:#909399;font-size:16px}html.dark .info-icon[data-v-f3abd62a]{color:#9ca3af}.info-label[data-v-f3abd62a]{color:#909399;font-weight:500;min-width:100px}html.dark .info-label[data-v-f3abd62a]{color:#9ca3af}.info-value[data-v-f3abd62a]{color:#606266;flex:1}html.dark .info-value[data-v-f3abd62a]{color:#d1d5db}.client-metas[data-v-f3abd62a]{margin-bottom:16px;padding-top:12px;border-top:1px solid #e4e7ed}html.dark .client-metas[data-v-f3abd62a]{border-top-color:#3a3d5c}.metas-label[data-v-f3abd62a]{font-size:13px;color:#909399;font-weight:500;margin-bottom:8px}html.dark .metas-label[data-v-f3abd62a]{color:#9ca3af}.metas-tags[data-v-f3abd62a]{display:flex;flex-wrap:wrap;gap:6px}.meta-tag[data-v-f3abd62a]{font-size:12px}.monospace[data-v-f3abd62a]{font-family:Courier New,Courier,monospace;font-size:12px;word-break:break-all}.clients-page[data-v-14cf389c]{padding:0 20px 20px}.filter-bar[data-v-14cf389c]{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-input[data-v-14cf389c]{flex:1;min-width:300px;max-width:500px}.status-filter[data-v-14cf389c]{flex-shrink:0}.clients-grid[data-v-14cf389c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;min-height:200px}@media(max-width:768px){.clients-grid[data-v-14cf389c]{grid-template-columns:1fr}.filter-bar[data-v-14cf389c]{flex-direction:column;align-items:stretch}.search-input[data-v-14cf389c]{max-width:none}}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{inset:0;margin:0;overflow:auto;position:fixed}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{inset:0;overflow:auto;position:fixed}.el-overlay-dialog.is-closing .el-dialog{pointer-events:none}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{background-color:var(--el-overlay-color-lighter);height:100%;inset:0;overflow:auto;position:fixed;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:-moz-fit-content;height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table__expand-icon{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);font-size:12px;height:23px;line-height:12px;width:min(23px,100%)}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:0;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{align-items:center;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;text-align:center;width:20px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed;will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;outline:none;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;outline:none;padding:0 10px}.el-table-filter__list-item:focus,.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin-top:8px;text-align:right}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255,255,255,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;content:"";inset:-1px;pointer-events:none;position:absolute;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-bottom:after{bottom:auto;top:0}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translate(100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translate(-100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(-100%);transform-origin:0 0}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:-moz-fit-content;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}ul{list-style-type:none;padding:5px}ul li{justify-content:space-between;padding:5px}ul .annotation-key{width:300px;display:inline-block;vertical-align:middle}.title-text{color:#99a9bf}.traffic-chart-container[data-v-3f425b60]{width:100%;height:400px;display:flex;flex-direction:column;padding:20px}.chart-wrapper[data-v-3f425b60]{flex:1;display:flex;gap:10px;position:relative;margin-bottom:20px}.y-axis[data-v-3f425b60]{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:12px;color:#909399;padding-bottom:24px;height:calc(100% - 24px)}.bars-area[data-v-3f425b60]{flex:1;display:flex;justify-content:space-between;align-items:flex-end;position:relative;height:100%;padding-bottom:24px}.grid-line[data-v-3f425b60]{position:absolute;left:0;right:0;height:1px;background-color:#e4e7ed;z-index:0}html.dark .grid-line[data-v-3f425b60]{background-color:#3a3d5c}.grid-line.top[data-v-3f425b60]{top:0}.grid-line.middle[data-v-3f425b60]{top:50%;transform:translateY(-50%)}.grid-line.bottom[data-v-3f425b60]{bottom:24px}.day-column[data-v-3f425b60]{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;z-index:1}.bars-group[data-v-3f425b60]{height:100%;display:flex;align-items:flex-end;gap:4px;width:60%}.bar[data-v-3f425b60]{flex:1;border-radius:4px 4px 0 0;transition:height .3s ease;min-height:1px}.bar-in[data-v-3f425b60]{background-color:#5470c6}.bar-out[data-v-3f425b60]{background-color:#91cc75}.bar[data-v-3f425b60]:hover{opacity:.8}.date-label[data-v-3f425b60]{position:absolute;bottom:-24px;font-size:12px;color:#909399;width:100%;text-align:center}.legend[data-v-3f425b60]{display:flex;justify-content:center;gap:24px;margin-top:10px}.legend-item[data-v-3f425b60]{display:flex;align-items:center;gap:8px;font-size:14px;color:#606266}html.dark .legend-item[data-v-3f425b60]{color:#e5e7eb}.dot[data-v-3f425b60]{width:12px;height:12px;border-radius:50%}.dot.in[data-v-3f425b60]{background-color:#5470c6}.dot.out[data-v-3f425b60]{background-color:#91cc75}.proxies-page[data-v-0da05f6a]{padding:24px;max-width:1600px;margin:0 auto}.main-card[data-v-0da05f6a]{border-radius:12px;border:none}.toolbar-header[data-v-0da05f6a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--el-border-color-lighter);padding-bottom:16px}.proxy-tabs[data-v-0da05f6a] .el-tabs__header{margin-bottom:0}.proxy-tabs[data-v-0da05f6a] .el-tabs__nav-wrap:after{height:0}.toolbar-actions[data-v-0da05f6a]{display:flex;gap:12px;align-items:center}.search-input[data-v-0da05f6a]{width:240px}.traffic-cell[data-v-0da05f6a]{display:flex;flex-direction:column;gap:4px;font-size:13px}.traffic-item[data-v-0da05f6a]{display:flex;align-items:center;gap:4px}.traffic-item.up[data-v-0da05f6a]{color:#67c23a}.traffic-item.down[data-v-0da05f6a]{color:#409eff}.expand-wrapper[data-v-0da05f6a]{padding:16px 24px;background-color:transparent}@media(max-width:768px){.toolbar-header[data-v-0da05f6a]{flex-direction:column;align-items:stretch}.toolbar-actions[data-v-0da05f6a]{justify-content:space-between}.search-input[data-v-0da05f6a]{flex:1}}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}*{box-sizing:border-box}.el-button,.el-card,.el-input,.el-select,.el-tag{transition:all .3s ease}.el-card:hover{box-shadow:0 8px 16px #0000001a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.el-page-header{padding:16px 0}.el-page-header__title{font-size:20px;font-weight:600}.el-form-item{margin-bottom:18px}@media(max-width:768px){.el-row{margin-left:0!important;margin-right:0!important}.el-col{padding-left:10px!important;padding-right:10px!important}}html.dark{--el-bg-color: #1e1e2e;--el-fill-color-blank: #1e1e2e;background-color:#1e1e2e}html.dark body{background-color:#1e1e2e;color:#e5e7eb}html.dark ::-webkit-scrollbar-track{background:#27293d}html.dark ::-webkit-scrollbar-thumb{background:#3a3d5c}html.dark ::-webkit-scrollbar-thumb:hover{background:#4a4d6c}html.dark .el-card,html.dark .el-input__wrapper{background-color:#27293d;border-color:#3a3d5c}html.dark .el-input__inner{color:#e5e7eb}html.dark .el-table{background-color:#27293d;color:#e5e7eb}html.dark .el-table th{background-color:#1e1e2e;color:#e5e7eb}html.dark .el-table tr{background-color:#27293d}html.dark .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:#1e1e2e} +@charset "UTF-8";html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(51,117,185);--el-color-primary-light-5:rgb(42,89,138);--el-color-primary-light-7:rgb(33,61,91);--el-color-primary-light-8:rgb(29,48,67);--el-color-primary-light-9:rgb(24,34,43);--el-color-primary-dark-2:rgb(102,177,255);--el-color-success:#67c23a;--el-color-success-light-3:rgb(78,142,47);--el-color-success-light-5:rgb(62,107,39);--el-color-success-light-7:rgb(45,72,31);--el-color-success-light-8:rgb(37,55,28);--el-color-success-light-9:rgb(28,37,24);--el-color-success-dark-2:rgb(133,206,97);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(167,119,48);--el-color-warning-light-5:rgb(125,91,40);--el-color-warning-light-7:rgb(83,63,32);--el-color-warning-light-8:rgb(62,48,28);--el-color-warning-light-9:rgb(41,34,24);--el-color-warning-dark-2:rgb(235,181,99);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(178,82,82);--el-color-danger-light-5:rgb(133,64,64);--el-color-danger-light-7:rgb(88,46,46);--el-color-danger-light-8:rgb(65,38,38);--el-color-danger-light-9:rgb(42,29,29);--el-color-danger-dark-2:rgb(247,137,137);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(178,82,82);--el-color-error-light-5:rgb(133,64,64);--el-color-error-light-7:rgb(88,46,46);--el-color-error-light-8:rgb(65,38,38);--el-color-error-light-9:rgb(42,29,29);--el-color-error-dark-2:rgb(247,137,137);--el-color-info:#909399;--el-color-info-light-3:rgb(107,109,113);--el-color-info-light-5:rgb(82,84,87);--el-color-info-light-7:rgb(57,58,60);--el-color-info-light-8:rgb(45,45,47);--el-color-info-light-9:rgb(32,33,33);--el-color-info-dark-2:rgb(166,169,173);--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.36),0px 8px 20px rgba(0,0,0,.72);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.72);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:#141414;--el-mask-color:rgba(0,0,0,.8);--el-mask-color-extra-light:rgba(0,0,0,.3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255,255,255,.5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{background-color:var(--el-menu-bg-color);border-right:1px solid var(--el-menu-border-color);box-sizing:border-box;list-style:none;margin:0;padding-left:0;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level)*var(--el-menu-level-padding));white-space:nowrap}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{border-right:none;display:flex;flex-wrap:nowrap;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:1px solid var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-menu,.el-menu--popup-container,.el-popper{outline:none}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner-wrapper{align-items:center;color:var(--el-color-white);display:flex;font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}#app{min-height:100vh;display:flex;flex-direction:column;background:#f2f2f2}html.dark #app{background:#1a1a2e}.header{position:sticky;top:0;z-index:100;background:#fff}html.dark .header{background:#1e1e2d}.header-top{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 32px}.brand a{color:#303133;font-size:20px;font-weight:700;text-decoration:none;letter-spacing:-.5px}html.dark .brand a{color:#e5e7eb}.brand a:hover{color:#409eff}.header-actions{display:flex;align-items:center;gap:16px}.github-link{display:flex;align-items:center;padding:6px;border-radius:6px;transition:all .2s}.github-link:hover{background:#f2f3f5}html.dark .github-link:hover{background:#2a2a3c}.github-icon{width:20px;height:20px;color:#606266;transition:color .2s}.github-link:hover .github-icon{color:#303133}html.dark .github-icon{color:#a0a3ad}html.dark .github-link:hover .github-icon{color:#e5e7eb}.theme-switch{--el-switch-on-color: #2c2c3a;--el-switch-off-color: #f2f2f2;--el-switch-border-color: #dcdfe6}.theme-switch .el-switch__core .el-switch__inner .el-icon{color:#909399!important}.header-nav{position:relative;padding:0 32px;border-bottom:1px solid #e4e7ed}html.dark .header-nav{border-bottom-color:#3a3d5c}.nav-menu{background:transparent!important;border-bottom:none!important;height:46px}.nav-menu .el-menu-item,.nav-menu .el-sub-menu__title{position:relative;height:32px!important;line-height:32px!important;border-bottom:none!important;border-radius:6px!important;color:#666!important;font-weight:400;font-size:14px;padding:0 12px!important;margin:7px 0;transition:background .15s ease,color .15s ease}.nav-menu>.el-menu-item,.nav-menu>.el-sub-menu{margin-right:4px}.nav-menu>.el-sub-menu{padding:0!important}html.dark .nav-menu .el-menu-item,html.dark .nav-menu .el-sub-menu__title{color:#888!important}.nav-menu .el-menu-item:hover,.nav-menu .el-sub-menu__title:hover{background:#f2f2f2!important;color:#171717!important}html.dark .nav-menu .el-menu-item:hover,html.dark .nav-menu .el-sub-menu__title:hover{background:#2a2a3c!important;color:#e5e7eb!important}.nav-menu .el-menu-item.is-active{background:transparent!important;color:#171717!important;font-weight:500}.nav-menu .el-menu-item.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:#171717;border-radius:1px}.nav-menu .el-menu-item.is-active:hover{background:#f2f2f2!important}html.dark .nav-menu .el-menu-item.is-active{background:transparent!important;color:#e5e7eb!important;font-weight:500}html.dark .nav-menu .el-menu-item.is-active:after{background:#e5e7eb}html.dark .nav-menu .el-menu-item.is-active:hover{background:#2a2a3c!important}#content{flex:1;padding:24px 40px;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}@media(max-width:768px){.header-top,.header-nav{padding:0 16px}#content{padding:16px}.brand a{font-size:18px}}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);display:flex;flex-direction:column;overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{flex:1;overflow:auto;padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;display:flex;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{background-color:transparent;border:none;border-radius:50%;margin-left:6px;outline:none;overflow:hidden;padding:0}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.stat-card[data-v-c9ca9441]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.stat-card.clickable[data-v-c9ca9441]{cursor:pointer}.stat-card.clickable[data-v-c9ca9441]:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.stat-card.clickable:hover .arrow-icon[data-v-c9ca9441]{transform:translate(4px)}html.dark .stat-card[data-v-c9ca9441]{border-color:#3a3d5c;background:#27293d}.stat-card-content[data-v-c9ca9441]{display:flex;align-items:center;gap:16px}.arrow-icon[data-v-c9ca9441]{color:#909399;font-size:18px;transition:transform .2s ease;flex-shrink:0}html.dark .arrow-icon[data-v-c9ca9441]{color:#9ca3af}.stat-icon[data-v-c9ca9441]{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon .icon[data-v-c9ca9441]{width:28px;height:28px}.icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}html.dark .icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#818cf8,#a78bfa)}html.dark .icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#fb7185,#f43f5e)}html.dark .icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#60a5fa,#3b82f6)}html.dark .icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#34d399,#10b981)}.stat-info[data-v-c9ca9441]{flex:1;min-width:0}.stat-value[data-v-c9ca9441]{font-size:28px;font-weight:600;line-height:1.2;color:#303133;margin-bottom:4px}html.dark .stat-value[data-v-c9ca9441]{color:#e5e7eb}.stat-label[data-v-c9ca9441]{font-size:14px;color:#909399;font-weight:500}html.dark .stat-label[data-v-c9ca9441]{color:#9ca3af}.stat-subtitle[data-v-c9ca9441]{margin-top:12px;padding-top:12px;border-top:1px solid #e4e7ed;font-size:12px;color:#909399}html.dark .stat-subtitle[data-v-c9ca9441]{border-top-color:#3a3d5c;color:#9ca3af}.server-overview[data-v-10087479]{padding:0}.stats-row[data-v-10087479],.charts-row[data-v-10087479]{margin-bottom:20px}.chart-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;height:100%}html.dark .chart-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.config-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;margin-bottom:20px}html.dark .config-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.card-header[data-v-10087479]{display:flex;justify-content:space-between;align-items:center}.card-title[data-v-10087479]{font-size:16px;font-weight:600;color:#303133}html.dark .card-title[data-v-10087479]{color:#e5e7eb}.traffic-summary[data-v-10087479]{display:flex;align-items:center;justify-content:space-around;min-height:120px;padding:10px 0}.traffic-item[data-v-10087479]{display:flex;align-items:center;gap:16px}.traffic-icon[data-v-10087479]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px}.traffic-item.in .traffic-icon[data-v-10087479]{background:#5470c61a;color:#5470c6}.traffic-item.out .traffic-icon[data-v-10087479]{background:#91cc751a;color:#91cc75}.traffic-info[data-v-10087479]{display:flex;flex-direction:column}.traffic-info .label[data-v-10087479]{font-size:14px;color:#909399}.traffic-info .value[data-v-10087479]{font-size:24px;font-weight:600;color:#303133}html.dark .traffic-info .value[data-v-10087479]{color:#e5e7eb}.traffic-divider[data-v-10087479]{width:1px;height:60px;background:#e4e7ed}html.dark .traffic-divider[data-v-10087479]{background:#3a3d5c}.proxy-types-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px;min-height:120px;align-content:center;padding:10px 0}.proxy-type-item[data-v-10087479]{display:flex;flex-direction:column;align-items:center;padding:12px;background:#f8f9fa;border-radius:8px}html.dark .proxy-type-item[data-v-10087479]{background:#1e1e2d}.proxy-type-name[data-v-10087479]{font-size:12px;color:#909399;font-weight:500;margin-bottom:4px}.proxy-type-count[data-v-10087479]{font-size:20px;font-weight:600;color:#303133}html.dark .proxy-type-count[data-v-10087479]{color:#e5e7eb}.no-data[data-v-10087479]{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;height:100%;color:#909399;font-size:14px}.config-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.config-item[data-v-10087479]{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f8f9fa;border-radius:8px;transition:background .2s}html.dark .config-item[data-v-10087479]{background:#1e1e2d}.config-label[data-v-10087479]{font-size:12px;color:#909399;font-weight:500}html.dark .config-label[data-v-10087479]{color:#9ca3af}.config-value[data-v-10087479]{font-size:14px;color:#303133;font-weight:600;word-break:break-all}html.dark .config-value[data-v-10087479]{color:#e5e7eb}@media(max-width:768px){.chart-container[data-v-10087479]{height:250px}.config-grid[data-v-10087479]{grid-template-columns:repeat(2,1fr)}}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);inset:0;margin:0;position:absolute;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke:var(--el-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;transition:all .3s;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{inset:0;margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea .el-input__count.is-outside{background:transparent;bottom:unset;line-height:1;padding-top:2px;position:absolute;right:0;top:100%}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;right:0;top:100%}.el-input .el-input__count.is-outside .el-input__count-inner{background:transparent;line-height:1;padding-left:0}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.client-card[data-v-4bd4753c]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.client-card[data-v-4bd4753c]:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000001a}html.dark .client-card[data-v-4bd4753c]{border-color:#3a3d5c;background:#27293d}.client-header[data-v-4bd4753c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e4e7ed}html.dark .client-header[data-v-4bd4753c]{border-bottom-color:#3a3d5c}.client-status[data-v-4bd4753c]{display:flex;align-items:center;gap:8px}.status-dot[data-v-4bd4753c]{width:10px;height:10px;border-radius:50%}.status-success[data-v-4bd4753c]{background-color:#67c23a;box-shadow:0 0 #67c23ab3}.status-warning[data-v-4bd4753c]{background-color:#e6a23c;box-shadow:0 0 #e6a23cb3}.status-danger[data-v-4bd4753c]{background-color:#f56c6c;box-shadow:0 0 #f56c6cb3}.client-name[data-v-4bd4753c]{font-size:16px;font-weight:600;color:#303133}html.dark .client-name[data-v-4bd4753c]{color:#e5e7eb}.client-info[data-v-4bd4753c]{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.info-row[data-v-4bd4753c]{display:flex;align-items:center;gap:8px;font-size:13px}.info-icon[data-v-4bd4753c]{color:#909399;font-size:16px}html.dark .info-icon[data-v-4bd4753c]{color:#9ca3af}.info-label[data-v-4bd4753c]{color:#909399;font-weight:500;min-width:100px}html.dark .info-label[data-v-4bd4753c]{color:#9ca3af}.info-value[data-v-4bd4753c]{color:#606266;flex:1}html.dark .info-value[data-v-4bd4753c]{color:#d1d5db}.monospace[data-v-4bd4753c]{font-family:Courier New,Courier,monospace;font-size:12px;word-break:break-all}.clients-page[data-v-14cf389c]{padding:0 20px 20px}.filter-bar[data-v-14cf389c]{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-input[data-v-14cf389c]{flex:1;min-width:300px;max-width:500px}.status-filter[data-v-14cf389c]{flex-shrink:0}.clients-grid[data-v-14cf389c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;min-height:200px}@media(max-width:768px){.clients-grid[data-v-14cf389c]{grid-template-columns:1fr}.filter-bar[data-v-14cf389c]{flex-direction:column;align-items:stretch}.search-input[data-v-14cf389c]{max-width:none}}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{inset:0;margin:0;overflow:auto;position:fixed}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{inset:0;overflow:auto;position:fixed}.el-overlay-dialog.is-closing .el-dialog{pointer-events:none}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{background-color:var(--el-overlay-color-lighter);height:100%;inset:0;overflow:auto;position:fixed;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:-moz-fit-content;height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table__expand-icon{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);font-size:12px;height:23px;line-height:12px;width:min(23px,100%)}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:0;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{align-items:center;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;text-align:center;width:20px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed;will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;outline:none;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;outline:none;padding:0 10px}.el-table-filter__list-item:focus,.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin-top:8px;text-align:right}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255,255,255,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;content:"";inset:-1px;pointer-events:none;position:absolute;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-bottom:after{bottom:auto;top:0}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translate(100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translate(-100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(-100%);transform-origin:0 0}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:-moz-fit-content;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}ul{list-style-type:none;padding:5px}ul li{justify-content:space-between;padding:5px}ul .annotation-key{width:300px;display:inline-block;vertical-align:middle}.title-text{color:#99a9bf}.traffic-chart-container[data-v-3f425b60]{width:100%;height:400px;display:flex;flex-direction:column;padding:20px}.chart-wrapper[data-v-3f425b60]{flex:1;display:flex;gap:10px;position:relative;margin-bottom:20px}.y-axis[data-v-3f425b60]{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:12px;color:#909399;padding-bottom:24px;height:calc(100% - 24px)}.bars-area[data-v-3f425b60]{flex:1;display:flex;justify-content:space-between;align-items:flex-end;position:relative;height:100%;padding-bottom:24px}.grid-line[data-v-3f425b60]{position:absolute;left:0;right:0;height:1px;background-color:#e4e7ed;z-index:0}html.dark .grid-line[data-v-3f425b60]{background-color:#3a3d5c}.grid-line.top[data-v-3f425b60]{top:0}.grid-line.middle[data-v-3f425b60]{top:50%;transform:translateY(-50%)}.grid-line.bottom[data-v-3f425b60]{bottom:24px}.day-column[data-v-3f425b60]{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;z-index:1}.bars-group[data-v-3f425b60]{height:100%;display:flex;align-items:flex-end;gap:4px;width:60%}.bar[data-v-3f425b60]{flex:1;border-radius:4px 4px 0 0;transition:height .3s ease;min-height:1px}.bar-in[data-v-3f425b60]{background-color:#5470c6}.bar-out[data-v-3f425b60]{background-color:#91cc75}.bar[data-v-3f425b60]:hover{opacity:.8}.date-label[data-v-3f425b60]{position:absolute;bottom:-24px;font-size:12px;color:#909399;width:100%;text-align:center}.legend[data-v-3f425b60]{display:flex;justify-content:center;gap:24px;margin-top:10px}.legend-item[data-v-3f425b60]{display:flex;align-items:center;gap:8px;font-size:14px;color:#606266}html.dark .legend-item[data-v-3f425b60]{color:#e5e7eb}.dot[data-v-3f425b60]{width:12px;height:12px;border-radius:50%}.dot.in[data-v-3f425b60]{background-color:#5470c6}.dot.out[data-v-3f425b60]{background-color:#91cc75}.proxies-page[data-v-0da05f6a]{padding:24px;max-width:1600px;margin:0 auto}.main-card[data-v-0da05f6a]{border-radius:12px;border:none}.toolbar-header[data-v-0da05f6a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--el-border-color-lighter);padding-bottom:16px}.proxy-tabs[data-v-0da05f6a] .el-tabs__header{margin-bottom:0}.proxy-tabs[data-v-0da05f6a] .el-tabs__nav-wrap:after{height:0}.toolbar-actions[data-v-0da05f6a]{display:flex;gap:12px;align-items:center}.search-input[data-v-0da05f6a]{width:240px}.traffic-cell[data-v-0da05f6a]{display:flex;flex-direction:column;gap:4px;font-size:13px}.traffic-item[data-v-0da05f6a]{display:flex;align-items:center;gap:4px}.traffic-item.up[data-v-0da05f6a]{color:#67c23a}.traffic-item.down[data-v-0da05f6a]{color:#409eff}.expand-wrapper[data-v-0da05f6a]{padding:16px 24px;background-color:transparent}@media(max-width:768px){.toolbar-header[data-v-0da05f6a]{flex-direction:column;align-items:stretch}.toolbar-actions[data-v-0da05f6a]{justify-content:space-between}.search-input[data-v-0da05f6a]{flex:1}}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}*{box-sizing:border-box}.el-button,.el-card,.el-input,.el-select,.el-tag{transition:all .3s ease}.el-card:hover{box-shadow:0 8px 16px #0000001a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.el-page-header{padding:16px 0}.el-page-header__title{font-size:20px;font-weight:600}.el-form-item{margin-bottom:18px}@media(max-width:768px){.el-row{margin-left:0!important;margin-right:0!important}.el-col{padding-left:10px!important;padding-right:10px!important}}html.dark{--el-bg-color: #1e1e2e;--el-fill-color-blank: #1e1e2e;background-color:#1e1e2e}html.dark body{background-color:#1e1e2e;color:#e5e7eb}html.dark ::-webkit-scrollbar-track{background:#27293d}html.dark ::-webkit-scrollbar-thumb{background:#3a3d5c}html.dark ::-webkit-scrollbar-thumb:hover{background:#4a4d6c}html.dark .el-card,html.dark .el-input__wrapper{background-color:#27293d;border-color:#3a3d5c}html.dark .el-input__inner{color:#e5e7eb}html.dark .el-table{background-color:#27293d;color:#e5e7eb}html.dark .el-table th{background-color:#1e1e2e;color:#e5e7eb}html.dark .el-table tr{background-color:#27293d}html.dark .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:#1e1e2e} diff --git a/assets/frps/static/index-BUrDiw1t.js b/assets/frps/static/index-r9B2t7lx.js similarity index 94% rename from assets/frps/static/index-BUrDiw1t.js rename to assets/frps/static/index-r9B2t7lx.js index 6cc354fdb20..d08d32a8248 100644 --- a/assets/frps/static/index-BUrDiw1t.js +++ b/assets/frps/static/index-r9B2t7lx.js @@ -1 +1 @@ -var e,t,n=Object.getOwnPropertyNames,o=(e={"index-BUrDiw1t.js"(e,t){function n(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const o={},l=[],r=()=>{},a=()=>!1,s=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),i=e=>e.startsWith("onUpdate:"),u=Object.assign,c=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,p=(e,t)=>d.call(e,t),f=Array.isArray,v=e=>"[object Map]"===_(e),h=e=>"[object Set]"===_(e),m=e=>"[object Date]"===_(e),g=e=>"function"==typeof e,b=e=>"string"==typeof e,y=e=>"symbol"==typeof e,w=e=>null!==e&&"object"==typeof e,x=e=>(w(e)||g(e))&&g(e.then)&&g(e.catch),C=Object.prototype.toString,_=e=>C.call(e),S=e=>"[object Object]"===_(e),k=e=>b(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,E=n(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),T=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},A=/-\w/g,O=T(e=>e.replace(A,e=>e.slice(1).toUpperCase())),M=/\B([A-Z])/g,R=T(e=>e.replace(M,"-$1").toLowerCase()),L=T(e=>e.charAt(0).toUpperCase()+e.slice(1)),P=T(e=>e?`on${L(e)}`:""),N=(e,t)=>!Object.is(e,t),I=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},F=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let $;const j=()=>$||($="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function V(e){if(f(e)){const t={};for(let n=0;n{if(e){const n=e.split(z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function q(e){let t="";if(b(e))t=e;else if(f(e))for(let n=0;nG(e,t))}const X=e=>!(!e||!0!==e.__v_isRef),Z=e=>b(e)?e:null==e?"":f(e)||w(e)&&(e.toString===C||!g(e.toString))?X(e)?Z(e.value):JSON.stringify(e,J,2):String(e),J=(e,t)=>X(t)?J(e,t.value):v(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],o)=>(e[Q(t,o)+" =>"]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Q(e))}:y(t)?Q(t):!w(t)||f(t)||S(t)?t:String(t),Q=(e,t="")=>{var n;return y(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};let ee,te;class ne{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ee,!e&&ee&&(this.index=(ee.scopes||(ee.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0===--this._on&&(ee=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(this._active=!1,t=0,n=this.effects.length;t0)return;if(ie){let e=ie;for(ie=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;se;){let n=se;for(se=void 0;n;){const o=n.next;if(n.next=void 0,n.flags&=-9,1&n.flags)try{n.trigger()}catch(t){e||(e=t)}n=o}}if(e)throw e}function fe(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ve(e){let t,n=e.depsTail,o=n;for(;o;){const e=o.prevDep;-1===o.version?(o===n&&(n=e),ge(o),be(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=e}e.deps=t,e.depsTail=n}function he(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(me(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function me(e){if(4&e.flags&&!(16&e.flags))return;if(e.flags&=-17,e.globalVersion===Se)return;if(e.globalVersion=Se,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!he(e)))return;e.flags|=2;const t=e.dep,n=te,o=ye;te=e,ye=!0;try{fe(e);const n=e.fn(e._value);(0===t.version||N(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(l){throw t.version++,l}finally{te=n,ye=o,ve(e),e.flags&=-3}}function ge(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ge(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function be(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ye=!0;const we=[];function xe(){we.push(ye),ye=!1}function Ce(){const e=we.pop();ye=void 0===e||e}function _e(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const e=te;te=void 0;try{t()}finally{te=e}}}let Se=0;class ke{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ee{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!te||!ye||te===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==te)t=this.activeLink=new ke(te,this),te.deps?(t.prevDep=te.depsTail,te.depsTail.nextDep=t,te.depsTail=t):te.deps=te.depsTail=t,Te(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){const e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=te.depsTail,t.nextDep=void 0,te.depsTail.nextDep=t,te.depsTail=t,te.deps===t&&(te.deps=e)}return t}trigger(e){this.version++,Se++,this.notify(e)}notify(e){de();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{pe()}}}function Te(e){if(e.dep.sc++,4&e.sub.flags){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Te(e)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ae=new WeakMap,Oe=Symbol(""),Me=Symbol(""),Re=Symbol("");function Le(e,t,n){if(ye&&te){let t=Ae.get(e);t||Ae.set(e,t=new Map);let o=t.get(n);o||(t.set(n,o=new Ee),o.map=t,o.key=n),o.track()}}function Pe(e,t,n,o,l,r){const a=Ae.get(e);if(!a)return void Se++;const s=e=>{e&&e.trigger()};if(de(),"clear"===t)a.forEach(s);else{const l=f(e),r=l&&k(n);if(l&&"length"===n){const e=Number(o);a.forEach((t,n)=>{("length"===n||n===Re||!y(n)&&n>=e)&&s(t)})}else switch((void 0!==n||a.has(void 0))&&s(a.get(n)),r&&s(a.get(Re)),t){case"add":l?r&&s(a.get("length")):(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"delete":l||(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"set":v(e)&&s(a.get(Oe))}}pe()}function Ne(e){const t=wt(e);return t===e?t:(Le(t,0,Re),bt(e)?t:t.map(xt))}function Ie(e){return Le(e=wt(e),0,Re),e}function Be(e,t){return gt(e)?mt(e)?Ct(xt(t)):Ct(t):xt(t)}const Fe={__proto__:null,[Symbol.iterator](){return $e(this,Symbol.iterator,e=>Be(this,e))},concat(...e){return Ne(this).concat(...e.map(e=>f(e)?Ne(e):e))},entries(){return $e(this,"entries",e=>(e[1]=Be(this,e[1]),e))},every(e,t){return Ve(this,"every",e,t,void 0,arguments)},filter(e,t){return Ve(this,"filter",e,t,e=>e.map(e=>Be(this,e)),arguments)},find(e,t){return Ve(this,"find",e,t,e=>Be(this,e),arguments)},findIndex(e,t){return Ve(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ve(this,"findLast",e,t,e=>Be(this,e),arguments)},findLastIndex(e,t){return Ve(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ve(this,"forEach",e,t,void 0,arguments)},includes(...e){return ze(this,"includes",e)},indexOf(...e){return ze(this,"indexOf",e)},join(e){return Ne(this).join(e)},lastIndexOf(...e){return ze(this,"lastIndexOf",e)},map(e,t){return Ve(this,"map",e,t,void 0,arguments)},pop(){return He(this,"pop")},push(...e){return He(this,"push",e)},reduce(e,...t){return De(this,"reduce",e,t)},reduceRight(e,...t){return De(this,"reduceRight",e,t)},shift(){return He(this,"shift")},some(e,t){return Ve(this,"some",e,t,void 0,arguments)},splice(...e){return He(this,"splice",e)},toReversed(){return Ne(this).toReversed()},toSorted(e){return Ne(this).toSorted(e)},toSpliced(...e){return Ne(this).toSpliced(...e)},unshift(...e){return He(this,"unshift",e)},values(){return $e(this,"values",e=>Be(this,e))}};function $e(e,t,n){const o=Ie(e),l=o[t]();return o===e||bt(e)||(l._next=l.next,l.next=()=>{const e=l._next();return e.done||(e.value=n(e.value)),e}),l}const je=Array.prototype;function Ve(e,t,n,o,l,r){const a=Ie(e),s=a!==e&&!bt(e),i=a[t];if(i!==je[t]){const t=i.apply(e,r);return s?xt(t):t}let u=n;a!==e&&(s?u=function(t,o){return n.call(this,Be(e,t),o,e)}:n.length>2&&(u=function(t,o){return n.call(this,t,o,e)}));const c=i.call(a,u,o);return s&&l?l(c):c}function De(e,t,n,o){const l=Ie(e);let r=n;return l!==e&&(bt(e)?n.length>3&&(r=function(t,o,l){return n.call(this,t,o,l,e)}):r=function(t,o,l){return n.call(this,t,Be(e,o),l,e)}),l[t](r,...o)}function ze(e,t,n){const o=wt(e);Le(o,0,Re);const l=o[t](...n);return-1!==l&&!1!==l||!yt(n[0])?l:(n[0]=wt(n[0]),o[t](...n))}function He(e,t,n=[]){xe(),de();const o=wt(e)[t].apply(e,n);return pe(),Ce(),o}const We=n("__proto__,__v_isRef,__isVue"),qe=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(y));function Ue(e){y(e)||(e=String(e));const t=wt(this);return Le(t,0,e),t.hasOwnProperty(e)}class Ke{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;const o=this._isReadonly,l=this._isShallow;if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return l;if("__v_raw"===t)return n===(o?l?ct:ut:l?it:st).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const r=f(e);if(!o){let e;if(r&&(e=Fe[t]))return e;if("hasOwnProperty"===t)return Ue}const a=Reflect.get(e,t,_t(e)?e:n);if(y(t)?qe.has(t):We(t))return a;if(o||Le(e,0,t),l)return a;if(_t(a)){const e=r&&k(t)?a:a.value;return o&&w(e)?vt(e):e}return w(a)?o?vt(a):pt(a):a}}class Ge extends Ke{constructor(e=!1){super(!1,e)}set(e,t,n,o){let l=e[t];const r=f(e)&&k(t);if(!this._isShallow){const e=gt(l);if(bt(n)||gt(n)||(l=wt(l),n=wt(n)),!r&&_t(l)&&!_t(n))return e||(l.value=n),!0}const a=r?Number(t)e,et=e=>Reflect.getPrototypeOf(e);function tt(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function nt(e,t){const n={get(n){const o=this.__v_raw,l=wt(o),r=wt(n);e||(N(n,r)&&Le(l,0,n),Le(l,0,r));const{has:a}=et(l),s=t?Qe:e?Ct:xt;return a.call(l,n)?s(o.get(n)):a.call(l,r)?s(o.get(r)):void(o!==l&&o.get(n))},get size(){const t=this.__v_raw;return!e&&Le(wt(t),0,Oe),t.size},has(t){const n=this.__v_raw,o=wt(n),l=wt(t);return e||(N(t,l)&&Le(o,0,t),Le(o,0,l)),t===l?n.has(t):n.has(t)||n.has(l)},forEach(n,o){const l=this,r=l.__v_raw,a=wt(r),s=t?Qe:e?Ct:xt;return!e&&Le(a,0,Oe),r.forEach((e,t)=>n.call(o,s(e),s(t),l))}};return u(n,e?{add:tt("add"),set:tt("set"),delete:tt("delete"),clear:tt("clear")}:{add(e){t||bt(e)||gt(e)||(e=wt(e));const n=wt(this);return et(n).has.call(n,e)||(n.add(e),Pe(n,"add",e,e)),this},set(e,n){t||bt(n)||gt(n)||(n=wt(n));const o=wt(this),{has:l,get:r}=et(o);let a=l.call(o,e);a||(e=wt(e),a=l.call(o,e));const s=r.call(o,e);return o.set(e,n),a?N(n,s)&&Pe(o,"set",e,n):Pe(o,"add",e,n),this},delete(e){const t=wt(this),{has:n,get:o}=et(t);let l=n.call(t,e);l||(e=wt(e),l=n.call(t,e)),o&&o.call(t,e);const r=t.delete(e);return l&&Pe(t,"delete",e,void 0),r},clear(){const e=wt(this),t=0!==e.size,n=e.clear();return t&&Pe(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=function(e,t,n){return function(...o){const l=this.__v_raw,r=wt(l),a=v(r),s="entries"===e||e===Symbol.iterator&&a,i="keys"===e&&a,u=l[e](...o),c=n?Qe:t?Ct:xt;return!t&&Le(r,0,i?Me:Oe),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}(o,e,t)}),n}function ot(e,t){const n=nt(e,t);return(t,o,l)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(p(n,o)&&o in t?n:t,o,l)}const lt={get:ot(!1,!1)},rt={get:ot(!1,!0)},at={get:ot(!0,!1)},st=new WeakMap,it=new WeakMap,ut=new WeakMap,ct=new WeakMap;function dt(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>_(e).slice(8,-1))(e))}function pt(e){return gt(e)?e:ht(e,!1,Xe,lt,st)}function ft(e){return ht(e,!1,Je,rt,it)}function vt(e){return ht(e,!0,Ze,at,ut)}function ht(e,t,n,o,l){if(!w(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const r=dt(e);if(0===r)return e;const a=l.get(e);if(a)return a;const s=new Proxy(e,2===r?o:n);return l.set(e,s),s}function mt(e){return gt(e)?mt(e.__v_raw):!(!e||!e.__v_isReactive)}function gt(e){return!(!e||!e.__v_isReadonly)}function bt(e){return!(!e||!e.__v_isShallow)}function yt(e){return!!e&&!!e.__v_raw}function wt(e){const t=e&&e.__v_raw;return t?wt(t):e}const xt=e=>w(e)?pt(e):e,Ct=e=>w(e)?vt(e):e;function _t(e){return!!e&&!0===e.__v_isRef}function St(e){return Et(e,!1)}function kt(e){return Et(e,!0)}function Et(e,t){return _t(e)?e:new Tt(e,t)}class Tt{constructor(e,t){this.dep=new Ee,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:wt(e),this._value=t?e:xt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,n=this.__v_isShallow||bt(e)||gt(e);e=n?e:wt(e),N(e,t)&&(this._rawValue=e,this._value=n?e:xt(e),this.dep.trigger())}}function At(e){e.dep&&e.dep.trigger()}function Ot(e){return _t(e)?e.value:e}function Mt(e){return g(e)?e():Ot(e)}const Rt={get:(e,t,n)=>"__v_raw"===t?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return _t(l)&&!_t(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function Lt(e){return mt(e)?e:new Proxy(e,Rt)}class Pt{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new Ee,{get:n,set:o}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Nt(e){const t=f(e)?new Array(e.length):{};for(const n in e)t[n]=$t(e,n);return t}class It{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=wt(e);let o=!0,l=e;if(!f(e)||!k(String(t)))do{o=!yt(l)||bt(l)}while(o&&(l=l.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=Ot(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&_t(this._raw[this._key])){const t=this._object[this._key];if(_t(t))return void(t.value=e)}this._object[this._key]=e}get dep(){return function(e,t){const n=Ae.get(e);return n&&n.get(t)}(this._raw,this._key)}}class Bt{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ft(e,t,n){return _t(e)?e:g(e)?new Bt(e):w(e)&&arguments.length>1?$t(e,t,n):St(e)}function $t(e,t,n){return new It(e,t,n)}class jt{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ee(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Se-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&te!==this)return ce(this,!0),!0}get value(){const e=this.dep.track();return me(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}const Vt={},Dt=new WeakMap;let zt;function Ht(e,t,n=o){const{immediate:l,deep:a,once:s,scheduler:i,augmentJob:u,call:d}=n,p=e=>a?e:bt(e)||!1===a||0===a?Wt(e,1):Wt(e);let v,h,m,b,y=!1,w=!1;if(_t(e)?(h=()=>e.value,y=bt(e)):mt(e)?(h=()=>p(e),y=!0):f(e)?(w=!0,y=e.some(e=>mt(e)||bt(e)),h=()=>e.map(e=>_t(e)?e.value:mt(e)?p(e):g(e)?d?d(e,2):e():void 0)):h=g(e)?t?d?()=>d(e,2):e:()=>{if(m){xe();try{m()}finally{Ce()}}const t=zt;zt=v;try{return d?d(e,3,[b]):e(b)}finally{zt=t}}:r,t&&a){const e=h,t=!0===a?1/0:a;h=()=>Wt(e(),t)}const x=oe(),C=()=>{v.stop(),x&&x.active&&c(x.effects,v)};if(s&&t){const e=t;t=(...t)=>{e(...t),C()}}let _=w?new Array(e.length).fill(Vt):Vt;const S=e=>{if(1&v.flags&&(v.dirty||e))if(t){const e=v.run();if(a||y||(w?e.some((e,t)=>N(e,_[t])):N(e,_))){m&&m();const n=zt;zt=v;try{const n=[e,_===Vt?void 0:w&&_[0]===Vt?[]:_,b];_=e,d?d(t,3,n):t(...n)}finally{zt=n}}}else v.run()};return u&&u(S),v=new ae(h),v.scheduler=i?()=>i(S,!1):S,b=e=>function(e,t=!1,n=zt){if(n){let t=Dt.get(n);t||Dt.set(n,t=[]),t.push(e)}}(e,!1,v),m=v.onStop=()=>{const e=Dt.get(v);if(e){if(d)d(e,4);else for(const t of e)t();Dt.delete(v)}},t?l?S(!0):_=v.run():i?i(S.bind(null,!0),!0):v.run(),C.pause=v.pause.bind(v),C.resume=v.resume.bind(v),C.stop=C,C}function Wt(e,t=1/0,n){if(t<=0||!w(e)||e.__v_skip)return e;if(((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,_t(e))Wt(e.value,t,n);else if(f(e))for(let o=0;o{Wt(e,t,n)});else if(S(e)){for(const o in e)Wt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Wt(e[o],t,n)}return e}function qt(e,t,n,o){try{return o?e(...o):e()}catch(l){Kt(l,t,n)}}function Ut(e,t,n,o){if(g(e)){const l=qt(e,t,n,o);return l&&x(l)&&l.catch(e=>{Kt(e,t,n)}),l}if(f(e)){const l=[];for(let r=0;r=an(n)?Gt.push(e):Gt.splice(function(e){let t=Yt+1,n=Gt.length;for(;t>>1,l=Gt[o],r=an(l);ran(e)-an(t));if(Xt.length=0,Zt)return void Zt.push(...e);for(Zt=e,Jt=0;Jtnull==e.id?2&e.flags?-1:1/0:e.id;function sn(e){try{for(Yt=0;Yt{o._d&&jl(-1);const l=dn(t);let r;try{r=e(...n)}finally{dn(l),o._d&&jl(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function fn(e,t){if(null===un)return e;const n=gr(un),l=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&g(t)?t.call(o&&o.proxy):t}}function gn(){return!(!ar()&&!Qo)}const bn=Symbol.for("v-scx");function yn(e,t){return xn(e,null,t)}function wn(e,t,n){return xn(e,t,n)}function xn(e,t,n=o){const{immediate:l,deep:a,flush:s,once:i}=n,c=u({},n),d=t&&l||!t&&"post"!==s;let p;if(pr)if("sync"===s){const e=mn(bn);p=e.__watcherHandles||(e.__watcherHandles=[])}else if(!d){const e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}const f=rr;c.call=(e,t,n)=>Ut(e,f,t,n);let v=!1;"post"===s?c.scheduler=e=>{Cl(e,f&&f.suspense)}:"sync"!==s&&(v=!0,c.scheduler=(e,t)=>{t?e():nn(e)}),c.augmentJob=e=>{t&&(e.flags|=4),v&&(e.flags|=2,f&&(e.id=f.uid,e.i=f))};const h=Ht(e,t,c);return pr&&(p?p.push(h):d&&h()),h}function Cn(e,t,n){const o=this.proxy,l=b(e)?e.includes(".")?_n(o,e):()=>o[e]:e.bind(o,o);let r;g(t)?r=t:(r=t.handler,n=t);const a=ur(this),s=xn(l,r.bind(o),n);return a(),s}function _n(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;ee.__isTeleport,En=e=>e&&(e.disabled||""===e.disabled),Tn=e=>e&&(e.defer||""===e.defer),An=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,On=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,Mn=(e,t)=>{const n=e&&e.to;return b(n)?t?t(n):null:n},Rn={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,r,a,s,i,u){const{mc:c,pc:d,pbc:p,o:{insert:f,querySelector:v,createText:h,createComment:m}}=u,g=En(t.props);let{shapeFlag:b,children:y,dynamicChildren:w}=t;if(null==e){const e=t.el=h(""),u=t.anchor=h("");f(e,n,o),f(u,n,o);const d=(e,t)=>{16&b&&c(y,e,t,l,r,a,s,i)},p=()=>{const e=t.target=Mn(t.props,v),n=In(e,t,h,f);e&&("svg"!==a&&An(e)?a="svg":"mathml"!==a&&On(e)&&(a="mathml"),l&&l.isCE&&(l.ce._teleportTargets||(l.ce._teleportTargets=new Set)).add(e),g||(d(e,n),Nn(t,!1)))};g&&(d(n,u),Nn(t,!0)),Tn(t.props)?(t.el.__isMounted=!1,Cl(()=>{p(),delete t.el.__isMounted},r)):p()}else{if(Tn(t.props)&&!1===e.el.__isMounted)return void Cl(()=>{Rn.process(e,t,n,o,l,r,a,s,i,u)},r);t.el=e.el,t.targetStart=e.targetStart;const c=t.anchor=e.anchor,f=t.target=e.target,h=t.targetAnchor=e.targetAnchor,m=En(e.props),b=m?n:f,y=m?c:h;if("svg"===a||An(f)?a="svg":("mathml"===a||On(f))&&(a="mathml"),w?(p(e.dynamicChildren,w,b,l,r,a,s),El(e,t,!0)):i||d(e,t,b,y,l,r,a,s,!1),g)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ln(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=Mn(t.props,v);e&&Ln(t,e,null,u,0)}else m&&Ln(t,f,h,u,1);Nn(t,g)}},remove(e,t,n,{um:o,o:{remove:l}},r){const{shapeFlag:a,children:s,anchor:i,targetStart:u,targetAnchor:c,target:d,props:p}=e;if(d&&(l(u),l(c)),r&&l(i),16&a){const e=r||!En(p);for(let l=0;l{e.isMounted=!0}),vo(()=>{e.isUnmounting=!0}),e}const jn=[Function,Array],Vn={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jn,onEnter:jn,onAfterEnter:jn,onEnterCancelled:jn,onBeforeLeave:jn,onLeave:jn,onAfterLeave:jn,onLeaveCancelled:jn,onBeforeAppear:jn,onAppear:jn,onAfterAppear:jn,onAppearCancelled:jn},Dn=e=>{const t=e.subTree;return t.component?Dn(t.component):t};function zn(e){let t=e[0];if(e.length>1)for(const n of e)if(n.type!==Pl){t=n;break}return t}const Hn={name:"BaseTransition",props:Vn,setup(e,{slots:t}){const n=ar(),o=$n();return()=>{const l=t.default&&Yn(t.default(),!0);if(!l||!l.length)return;const r=zn(l),a=wt(e),{mode:s}=a;if(o.isLeaving)return Un(r);const i=Kn(r);if(!i)return Un(r);let u=qn(i,a,o,n,e=>u=e);i.type!==Pl&&Gn(i,u);let c=n.subTree&&Kn(n.subTree);if(c&&c.type!==Pl&&!Wl(c,i)&&Dn(n).type!==Pl){let e=qn(c,a,o,n);if(Gn(c,e),"out-in"===s&&i.type!==Pl)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},Un(r);"in-out"===s&&i.type!==Pl?e.delayLeave=(e,t,n)=>{Wn(o,c)[String(c.key)]=c,e[Bn]=()=>{t(),e[Bn]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return r}}};function Wn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function qn(e,t,n,o,l){const{appear:r,mode:a,persisted:s=!1,onBeforeEnter:i,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:p,onLeave:v,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:b,onAfterAppear:y,onAppearCancelled:w}=t,x=String(e.key),C=Wn(n,e),_=(e,t)=>{e&&Ut(e,o,9,t)},S=(e,t)=>{const n=t[1];_(e,t),f(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:a,persisted:s,beforeEnter(t){let o=i;if(!n.isMounted){if(!r)return;o=g||i}t[Bn]&&t[Bn](!0);const l=C[x];l&&Wl(e,l)&&l.el[Bn]&&l.el[Bn](),_(o,[t])},enter(e){let t=u,o=c,l=d;if(!n.isMounted){if(!r)return;t=b||u,o=y||c,l=w||d}let a=!1;const s=e[Fn]=t=>{a||(a=!0,_(t?l:o,[e]),k.delayedLeave&&k.delayedLeave(),e[Fn]=void 0)};t?S(t,[e,s]):s()},leave(t,o){const l=String(e.key);if(t[Fn]&&t[Fn](!0),n.isUnmounting)return o();_(p,[t]);let r=!1;const a=t[Bn]=n=>{r||(r=!0,o(),_(n?m:h,[t]),t[Bn]=void 0,C[l]===e&&delete C[l])};C[l]=e,v?S(v,[t,a]):a()},clone(e){const r=qn(e,t,n,o,l);return l&&l(r),r}};return k}function Un(e){if(no(e))return(e=Yl(e)).children=null,e}function Kn(e){if(!no(e))return kn(e.type)&&e.children?zn(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&g(n.default))return n.default()}}function Gn(e,t){6&e.shapeFlag&&e.component?(e.transition=t,Gn(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yn(e,t=!1,n){let o=[],l=0;for(let r=0;r1)for(let r=0;ru({name:e.name},t,{setup:e}))():e}function Zn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Jn=new WeakMap;function Qn(e,t,n,l,r=!1){if(f(e))return void e.forEach((e,o)=>Qn(e,t&&(f(t)?t[o]:t),n,l,r));if(to(l)&&!r)return void(512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&Qn(e,t,n,l.component.subTree));const s=4&l.shapeFlag?gr(l.component):l.el,i=r?null:s,{i:u,r:d}=e,v=t&&t.r,h=u.refs===o?u.refs={}:u.refs,m=u.setupState,y=wt(m),w=m===o?a:e=>p(y,e);if(null!=v&&v!==d)if(eo(t),b(v))h[v]=null,w(v)&&(m[v]=null);else if(_t(v)){v.value=null;const e=t;e.k&&(h[e.k]=null)}if(g(d))qt(d,u,12,[i,h]);else{const t=b(d),o=_t(d);if(t||o){const l=()=>{if(e.f){const n=t?w(d)?m[d]:h[d]:d.value;if(r)f(n)&&c(n,s);else if(f(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],w(d)&&(m[d]=h[d]);else{const t=[s];d.value=t,e.k&&(h[e.k]=t)}}else t?(h[d]=i,w(d)&&(m[d]=i)):o&&(d.value=i,e.k&&(h[e.k]=i))};if(i){const t=()=>{l(),Jn.delete(e)};t.id=-1,Jn.set(e,t),Cl(t,n)}else eo(e),l()}}}function eo(e){const t=Jn.get(e);t&&(t.flags|=8,Jn.delete(e))}j().requestIdleCallback,j().cancelIdleCallback;const to=e=>!!e.type.__asyncLoader,no=e=>e.type.__isKeepAlive;function oo(e,t){ro(e,"a",t)}function lo(e,t){ro(e,"da",t)}function ro(e,t,n=rr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(so(t,o,n),n){let e=n.parent;for(;e&&e.parent;)no(e.parent.vnode)&&ao(o,t,n,e),e=e.parent}}function ao(e,t,n,o){const l=so(t,e,o,!0);ho(()=>{c(o[t],l)},n)}function so(e,t,n=rr,o=!1){if(n){const l=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{xe();const l=ur(n),r=Ut(t,n,e,o);return l(),Ce(),r});return o?l.unshift(r):l.push(r),r}}const io=e=>(t,n=rr)=>{pr&&"sp"!==e||so(e,(...e)=>t(...e),n)},uo=io("bm"),co=io("m"),po=io("bu"),fo=io("u"),vo=io("bum"),ho=io("um"),mo=io("sp"),go=io("rtg"),bo=io("rtc");function yo(e,t=rr){so("ec",e,t)}const wo="components";function xo(e,t){return So(wo,e,!0,t)||e}const Co=Symbol.for("v-ndc");function _o(e){return b(e)?So(wo,e,!1)||e:e||Co}function So(e,t,n=!0,o=!1){const l=un||rr;if(l){const n=l.type;if(e===wo){const e=br(n,!1);if(e&&(e===t||e===O(t)||e===L(O(t))))return n}const r=ko(l[e]||n[e],t)||ko(l.appContext[e],t);return!r&&o?n:r}}function ko(e,t){return e&&(e[t]||e[O(t)]||e[L(O(t))])}function Eo(e,t,n,o){let l;const r=n,a=f(e);if(a||b(e)){let n=!1,o=!1;a&&mt(e)&&(n=!bt(e),o=gt(e),e=Ie(e)),l=new Array(e.length);for(let a=0,s=e.length;at(e,n,void 0,r));else{const n=Object.keys(e);l=new Array(n.length);for(let o=0,a=n.length;o{const t=o.fn(...e);return t&&(t.key=o.key),t}:o.fn)}return e}function Ao(e,t,n={},o,l){if(un.ce||un.parent&&to(un.parent)&&un.parent.ce){const e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),Fl(),zl(Rl,null,[Gl("slot",n,o&&o())],e?-2:64)}let r=e[t];r&&r._c&&(r._d=!1),Fl();const a=r&&Oo(r(n)),s=n.key||a&&a.key,i=zl(Rl,{key:(s&&!y(s)?s:`_${t}`)+(!a&&o?"_fb":"")},a||(o?o():[]),a&&1===e._?64:-2);return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),r&&r._c&&(r._d=!0),i}function Oo(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!Oo(e.children)))?e:null}const Mo=e=>e?dr(e)?gr(e):Mo(e.parent):null,Ro=u(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mo(e.parent),$root:e=>Mo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>zo(e),$forceUpdate:e=>e.f||(e.f=()=>{nn(e.update)}),$nextTick:e=>e.n||(e.n=tn.bind(e.proxy)),$watch:e=>Cn.bind(e)}),Lo=(e,t)=>e!==o&&!e.__isScriptSetup&&p(e,t),Po={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:l,data:r,props:a,accessCache:s,type:i,appContext:u}=e;if("$"!==t[0]){const e=s[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return r[t];case 4:return n[t];case 3:return a[t]}else{if(Lo(l,t))return s[t]=1,l[t];if(r!==o&&p(r,t))return s[t]=2,r[t];if(p(a,t))return s[t]=3,a[t];if(n!==o&&p(n,t))return s[t]=4,n[t];$o&&(s[t]=0)}}const c=Ro[t];let d,f;return c?("$attrs"===t&&Le(e.attrs,0,""),c(e)):(d=i.__cssModules)&&(d=d[t])?d:n!==o&&p(n,t)?(s[t]=4,n[t]):(f=u.config.globalProperties,p(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:l,setupState:r,ctx:a}=e;return Lo(r,t)?(r[t]=n,!0):l!==o&&p(l,t)?(l[t]=n,!0):!(p(e.props,t)||"$"===t[0]&&t.slice(1)in e||(a[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:a,type:s}},i){let u;return!!(n[i]||e!==o&&"$"!==i[0]&&p(e,i)||Lo(t,i)||p(a,i)||p(l,i)||p(Ro,i)||p(r.config.globalProperties,i)||(u=s.__cssModules)&&u[i])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:p(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function No(){return Bo().slots}function Io(){return Bo().attrs}function Bo(e){const t=ar();return t.setupContext||(t.setupContext=mr(t))}function Fo(e){return f(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let $o=!0;function jo(e){const t=zo(e),n=e.proxy,o=e.ctx;$o=!1,t.beforeCreate&&Vo(t.beforeCreate,e,"bc");const{data:l,computed:a,methods:s,watch:i,provide:u,inject:c,created:d,beforeMount:p,mounted:v,beforeUpdate:h,updated:m,activated:b,deactivated:y,beforeDestroy:x,beforeUnmount:C,destroyed:_,unmounted:S,render:k,renderTracked:E,renderTriggered:T,errorCaptured:A,serverPrefetch:O,expose:M,inheritAttrs:R,components:L,directives:P,filters:N}=t;if(c&&function(e,t){f(e)&&(e=Uo(e));for(const n in e){const o=e[n];let l;l=w(o)?"default"in o?mn(o.from||n,o.default,!0):mn(o.from||n):mn(o),_t(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(c,o),s)for(const r in s){const e=s[r];g(e)&&(o[r]=e.bind(n))}if(l){const t=l.call(n,n);w(t)&&(e.data=pt(t))}if($o=!0,a)for(const f in a){const e=a[f],t=g(e)?e.bind(n,n):g(e.get)?e.get.bind(n,n):r,l=!g(e)&&g(e.set)?e.set.bind(n):r,s=yr({get:t,set:l});Object.defineProperty(o,f,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(i)for(const r in i)Do(i[r],o,n,r);if(u){const e=g(u)?u.call(n):u;Reflect.ownKeys(e).forEach(t=>{hn(t,e[t])})}function I(e,t){f(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(d&&Vo(d,e,"c"),I(uo,p),I(co,v),I(po,h),I(fo,m),I(oo,b),I(lo,y),I(yo,A),I(bo,E),I(go,T),I(vo,C),I(ho,S),I(mo,O),f(M))if(M.length){const t=e.exposed||(e.exposed={});M.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===r&&(e.render=k),null!=R&&(e.inheritAttrs=R),L&&(e.components=L),P&&(e.directives=P),O&&Zn(e)}function Vo(e,t,n){Ut(f(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Do(e,t,n,o){let l=o.includes(".")?_n(n,o):()=>n[o];if(b(e)){const n=t[e];g(n)&&wn(l,n)}else if(g(e))wn(l,e.bind(n));else if(w(e))if(f(e))e.forEach(e=>Do(e,t,n,o));else{const o=g(e.handler)?e.handler.bind(n):t[e.handler];g(o)&&wn(l,o,e)}}function zo(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:l,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,s=r.get(t);let i;return s?i=s:l.length||n||o?(i={},l.length&&l.forEach(e=>Ho(i,e,a,!0)),Ho(i,t,a)):i=t,w(t)&&r.set(t,i),i}function Ho(e,t,n,o=!1){const{mixins:l,extends:r}=t;r&&Ho(e,r,n,!0),l&&l.forEach(t=>Ho(e,t,n,!0));for(const a in t)if(o&&"expose"===a);else{const o=Wo[a]||n&&n[a];e[a]=o?o(e[a],t[a]):t[a]}return e}const Wo={data:qo,props:Yo,emits:Yo,methods:Go,computed:Go,beforeCreate:Ko,created:Ko,beforeMount:Ko,mounted:Ko,beforeUpdate:Ko,updated:Ko,beforeDestroy:Ko,beforeUnmount:Ko,destroyed:Ko,unmounted:Ko,activated:Ko,deactivated:Ko,errorCaptured:Ko,serverPrefetch:Ko,components:Go,directives:Go,watch:function(e,t){if(!e)return t;if(!t)return e;const n=u(Object.create(null),e);for(const o in t)n[o]=Ko(e[o],t[o]);return n},provide:qo,inject:function(e,t){return Go(Uo(e),Uo(t))}};function qo(e,t){return t?e?function(){return u(g(e)?e.call(this,this):e,g(t)?t.call(this,this):t)}:t:e}function Uo(e){if(f(e)){const t={};for(let n=0;n(l.has(e)||(e&&g(e.install)?(l.add(e),e.install(s,...t)):g(e)&&(l.add(e),e(s,...t))),s),mixin:e=>(o.mixins.includes(e)||o.mixins.push(e),s),component:(e,t)=>t?(o.components[e]=t,s):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,s):o.directives[e],mount(l,r,i){if(!a){const r=s._ceVNode||Gl(t,n);return r.appContext=o,!0===i?i="svg":!1===i&&(i=void 0),e(r,l,i),a=!0,s._container=l,l.__vue_app__=s,gr(r.component)}},onUnmount(e){r.push(e)},unmount(){a&&(Ut(r,s._instance,16),e(null,s._container),delete s._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,s),runWithContext(e){const t=Qo;Qo=s;try{return e()}finally{Qo=t}}};return s}}let Qo=null;function el(e,t,...n){if(e.isUnmounted)return;const l=e.vnode.props||o;let r=n;const a=t.startsWith("update:"),s=a&&((e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${O(t)}Modifiers`]||e[`${R(t)}Modifiers`])(l,t.slice(7));let i;s&&(s.trim&&(r=n.map(e=>b(e)?e.trim():e)),s.number&&(r=n.map(F)));let u=l[i=P(t)]||l[i=P(O(t))];!u&&a&&(u=l[i=P(R(t))]),u&&Ut(u,e,6,r);const c=l[i+"Once"];if(c){if(e.emitted){if(e.emitted[i])return}else e.emitted={};e.emitted[i]=!0,Ut(c,e,6,r)}}const tl=new WeakMap;function nl(e,t,n=!1){const o=n?tl:t.emitsCache,l=o.get(e);if(void 0!==l)return l;const r=e.emits;let a={},s=!1;if(!g(e)){const o=e=>{const n=nl(e,t,!0);n&&(s=!0,u(a,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return r||s?(f(r)?r.forEach(e=>a[e]=null):u(a,r),w(e)&&o.set(e,a),a):(w(e)&&o.set(e,null),null)}function ol(e,t){return!(!e||!s(t))&&(t=t.slice(2).replace(/Once$/,""),p(e,t[0].toLowerCase()+t.slice(1))||p(e,R(t))||p(e,t))}function ll(e){const{type:t,vnode:n,proxy:o,withProxy:l,propsOptions:[r],slots:a,attrs:s,emit:u,render:c,renderCache:d,props:p,data:f,setupState:v,ctx:h,inheritAttrs:m}=e,g=dn(e);let b,y;try{if(4&n.shapeFlag){const e=l||o,t=e;b=Jl(c.call(t,e,d,p,v,f,h)),y=s}else{const e=t;b=Jl(e.length>1?e(p,{attrs:s,slots:a,emit:u}):e(p,null)),y=t.props?s:rl(s)}}catch(x){Il.length=0,Kt(x,e,1),b=Gl(Pl)}let w=b;if(y&&!1!==m){const e=Object.keys(y),{shapeFlag:t}=w;e.length&&7&t&&(r&&e.some(i)&&(y=al(y,r)),w=Yl(w,y,!1,!0))}return n.dirs&&(w=Yl(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&Gn(w,n.transition),b=w,dn(g),b}const rl=e=>{let t;for(const n in e)("class"===n||"style"===n||s(n))&&((t||(t={}))[n]=e[n]);return t},al=(e,t)=>{const n={};for(const o in e)i(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function sl(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let l=0;lObject.create(il),cl=e=>Object.getPrototypeOf(e)===il;function dl(e,t,n,l){const[r,a]=e.propsOptions;let s,i=!1;if(t)for(let o in t){if(E(o))continue;const u=t[o];let c;r&&p(r,c=O(o))?a&&a.includes(c)?(s||(s={}))[c]=u:n[c]=u:ol(e.emitsOptions,o)||o in l&&u===l[o]||(l[o]=u,i=!0)}if(a){const t=wt(n),l=s||o;for(let o=0;o{d=!0;const[n,o]=vl(e,t,!0);u(i,n),o&&c.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!d)return w(e)&&r.set(e,l),l;if(f(s))for(let l=0;l"_"===e||"_ctx"===e||"$stable"===e,gl=e=>f(e)?e.map(Jl):[Jl(e)],bl=(e,t,n)=>{if(t._n)return t;const o=pn((...e)=>gl(t(...e)),n);return o._c=!1,o},yl=(e,t,n)=>{const o=e._ctx;for(const l in e){if(ml(l))continue;const n=e[l];if(g(n))t[l]=bl(0,n,o);else if(null!=n){const e=gl(n);t[l]=()=>e}}},wl=(e,t)=>{const n=gl(t);e.slots.default=()=>n},xl=(e,t,n)=>{for(const o in t)!n&&ml(o)||(e[o]=t[o])},Cl=function(e,t){var n;t&&t.pendingBranch?f(e)?t.effects.push(...e):t.effects.push(e):(f(n=e)?Xt.push(...n):Zt&&-1===n.id?Zt.splice(Jt+1,0,n):1&n.flags||(Xt.push(n),n.flags|=1),on())};function _l(e){return function(e){j().__VUE__=!0;const{insert:t,remove:n,patchProp:a,createElement:s,createText:i,createComment:u,setText:c,setElementText:d,parentNode:f,nextSibling:v,setScopeId:h=r,insertStaticContent:m}=e,g=(e,t,n,o=null,l=null,r=null,a=void 0,s=null,i=!!t.dynamicChildren)=>{if(e===t)return;e&&!Wl(e,t)&&(o=J(e),K(e,l,r,!0),e=null),-2===t.patchFlag&&(i=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:d}=t;switch(u){case Ll:b(e,t,n,o);break;case Pl:y(e,t,n,o);break;case Nl:null==e&&w(t,n,o,a);break;case Rl:N(e,t,n,o,l,r,a,s,i);break;default:1&d?S(e,t,n,o,l,r,a,s,i):6&d?F(e,t,n,o,l,r,a,s,i):(64&d||128&d)&&u.process(e,t,n,o,l,r,a,s,i,te)}null!=c&&l?Qn(c,e&&e.ref,r,t||e,!t):null==c&&e&&null!=e.ref&&Qn(e.ref,null,r,e,!0)},b=(e,n,o,l)=>{if(null==e)t(n.el=i(n.children),o,l);else{const t=n.el=e.el;n.children!==e.children&&c(t,n.children)}},y=(e,n,o,l)=>{null==e?t(n.el=u(n.children||""),o,l):n.el=e.el},w=(e,t,n,o)=>{[e.el,e.anchor]=m(e.children,t,n,o,e.el,e.anchor)},C=({el:e,anchor:n},o,l)=>{let r;for(;e&&e!==n;)r=v(e),t(e,o,l),e=r;t(n,o,l)},_=({el:e,anchor:t})=>{let o;for(;e&&e!==t;)o=v(e),n(e),e=o;n(t)},S=(e,t,n,o,l,r,a,s,i)=>{if("svg"===t.type?a="svg":"math"===t.type&&(a="mathml"),null==e)k(t,n,o,l,r,a,s,i);else{const n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),M(e,t,l,r,a,s,i)}finally{n&&n._endPatch()}}},k=(e,n,o,l,r,i,u,c)=>{let p,f;const{props:v,shapeFlag:h,transition:m,dirs:g}=e;if(p=e.el=s(e.type,i,v&&v.is,v),8&h?d(p,e.children):16&h&&A(e.children,p,null,l,r,Sl(e,i),u,c),g&&vn(e,null,l,"created"),T(p,e,e.scopeId,u,l),v){for(const e in v)"value"===e||E(e)||a(p,e,null,v[e],i,l);"value"in v&&a(p,"value",null,v.value,i),(f=v.onVnodeBeforeMount)&&nr(f,l,e)}g&&vn(e,null,l,"beforeMount");const b=function(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}(r,m);b&&m.beforeEnter(p),t(p,n,o),((f=v&&v.onVnodeMounted)||b||g)&&Cl(()=>{f&&nr(f,l,e),b&&m.enter(p),g&&vn(e,null,l,"mounted")},r)},T=(e,t,n,o,l)=>{if(n&&h(e,n),o)for(let r=0;r{for(let u=i;u{const u=t.el=e.el;let{patchFlag:c,dynamicChildren:p,dirs:f}=t;c|=16&e.patchFlag;const v=e.props||o,h=t.props||o;let m;if(n&&kl(n,!1),(m=h.onVnodeBeforeUpdate)&&nr(m,n,t,e),f&&vn(t,e,n,"beforeUpdate"),n&&kl(n,!0),(v.innerHTML&&null==h.innerHTML||v.textContent&&null==h.textContent)&&d(u,""),p?L(e.dynamicChildren,p,u,n,l,Sl(t,r),s):i||H(e,t,u,null,n,l,Sl(t,r),s,!1),c>0){if(16&c)P(u,v,h,n,r);else if(2&c&&v.class!==h.class&&a(u,"class",null,h.class,r),4&c&&a(u,"style",v.style,h.style,r),8&c){const e=t.dynamicProps;for(let t=0;t{m&&nr(m,n,t,e),f&&vn(t,e,n,"updated")},l)},L=(e,t,n,o,l,r,a)=>{for(let s=0;s{if(t!==n){if(t!==o)for(const o in t)E(o)||o in n||a(e,o,t[o],null,r,l);for(const o in n){if(E(o))continue;const s=n[o],i=t[o];s!==i&&"value"!==o&&a(e,o,i,s,r,l)}"value"in n&&a(e,"value",t.value,n.value,r)}},N=(e,n,o,l,r,a,s,u,c)=>{const d=n.el=e?e.el:i(""),p=n.anchor=e?e.anchor:i("");let{patchFlag:f,dynamicChildren:v,slotScopeIds:h}=n;h&&(u=u?u.concat(h):h),null==e?(t(d,o,l),t(p,o,l),A(n.children||[],o,p,r,a,s,u,c)):f>0&&64&f&&v&&e.dynamicChildren&&e.dynamicChildren.length===v.length?(L(e.dynamicChildren,v,o,r,a,s,u),(null!=n.key||r&&n===r.subTree)&&El(e,n,!0)):H(e,n,o,p,r,a,s,u,c)},F=(e,t,n,o,l,r,a,s,i)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?l.ctx.activate(t,n,o,a,i):$(t,n,o,l,r,a,i):V(e,t,i)},$=(e,t,n,l,r,a,s)=>{const i=e.component=function(e,t,n){const l=e.type,r=(t?t.appContext:e.appContext)||or,a={uid:lr++,vnode:e,type:l,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ne(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vl(l,r),emitsOptions:nl(l,r),emit:null,emitted:null,propsDefaults:o,inheritAttrs:l.inheritAttrs,ctx:o,data:o,props:o,attrs:o,slots:o,refs:o,setupState:o,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=t?t.root:a,a.emit=el.bind(null,a),e.ce&&e.ce(a),a}(e,l,r);if(no(e)&&(i.ctx.renderer=te),function(e,t=!1,n=!1){t&&ir(t);const{props:o,children:l}=e.vnode,r=dr(e);(function(e,t,n,o=!1){const l={},r=ul();e.propsDefaults=Object.create(null),dl(e,t,l,r);for(const a in e.propsOptions[0])a in l||(l[a]=void 0);n?e.props=o?l:ft(l):e.type.props?e.props=l:e.props=r,e.attrs=r})(e,o,r,t),((e,t,n)=>{const o=e.slots=ul();if(32&e.vnode.shapeFlag){const e=t._;e?(xl(o,t,n),n&&B(o,"_",e,!0)):yl(t,o)}else t&&wl(e,t)})(e,l,n||t);r&&function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Po);const{setup:o}=n;if(o){xe();const n=e.setupContext=o.length>1?mr(e):null,l=ur(e),r=qt(o,e,0,[e.props,n]),a=x(r);if(Ce(),l(),!a&&!e.sp||to(e)||Zn(e),a){if(r.then(cr,cr),t)return r.then(t=>{fr(e,t)}).catch(t=>{Kt(t,e,0)});e.asyncDep=r}else fr(e,r)}else vr(e)}(e,t);t&&ir(!1)}(i,!1,s),i.asyncDep){if(r&&r.registerDep(i,D,s),!e.el){const o=i.subTree=Gl(Pl);y(null,o,t,n),e.placeholder=o.el}}else D(i,e,t,n,r,a,s)},V=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:l,component:r}=e,{props:a,children:s,patchFlag:i}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&i>=0))return!(!l&&!s||s&&s.$stable)||o!==a&&(o?!a||sl(o,a,u):!!a);if(1024&i)return!0;if(16&i)return o?sl(o,a,u):!!a;if(8&i){const e=t.dynamicProps;for(let t=0;t{const s=()=>{if(e.isMounted){let{next:t,bu:n,u:o,parent:i,vnode:u}=e;{const n=Tl(e);if(n)return t&&(t.el=u.el,z(e,t,a)),void n.asyncDep.then(()=>{e.isUnmounted||s()})}let c,d=t;kl(e,!1),t?(t.el=u.el,z(e,t,a)):t=u,n&&I(n),(c=t.props&&t.props.onVnodeBeforeUpdate)&&nr(c,i,t,u),kl(e,!0);const p=ll(e),v=e.subTree;e.subTree=p,g(v,p,f(v.el),J(v),e,l,r),t.el=p.el,null===d&&function({vnode:e,parent:t},n){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.el=e.el),o!==e)break;(e=t.vnode).el=n,t=t.parent}}(e,p.el),o&&Cl(o,l),(c=t.props&&t.props.onVnodeUpdated)&&Cl(()=>nr(c,i,t,u),l)}else{let a;const{el:s,props:i}=t,{bm:u,m:c,parent:d,root:p,type:f}=e,v=to(t);kl(e,!1),u&&I(u),!v&&(a=i&&i.onVnodeBeforeMount)&&nr(a,d,t),kl(e,!0);{p.ce&&!1!==p.ce._def.shadowRoot&&p.ce._injectChildStyle(f);const a=e.subTree=ll(e);g(null,a,n,o,e,l,r),t.el=a.el}if(c&&Cl(c,l),!v&&(a=i&&i.onVnodeMounted)){const e=t;Cl(()=>nr(a,d,e),l)}(256&t.shapeFlag||d&&to(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&Cl(e.a,l),e.isMounted=!0,t=n=o=null}};e.scope.on();const i=e.effect=new ae(s);e.scope.off();const u=e.update=i.run.bind(i),c=e.job=i.runIfDirty.bind(i);c.i=e,c.id=e.uid,i.scheduler=()=>nn(c),kl(e,!0),u()},z=(e,t,n)=>{t.component=e;const l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:l,attrs:r,vnode:{patchFlag:a}}=e,s=wt(l),[i]=e.propsOptions;let u=!1;if(!(o||a>0)||16&a){let o;dl(e,t,l,r)&&(u=!0);for(const r in s)t&&(p(t,r)||(o=R(r))!==r&&p(t,o))||(i?!n||void 0===n[r]&&void 0===n[o]||(l[r]=pl(i,s,r,void 0,e,!0)):delete l[r]);if(r!==s)for(const e in r)t&&p(t,e)||(delete r[e],u=!0)}else if(8&a){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:l,slots:r}=e;let a=!0,s=o;if(32&l.shapeFlag){const e=t._;e?n&&1===e?a=!1:xl(r,t,n):(a=!t.$stable,yl(t,r)),s=t}else t&&(wl(e,t),s={default:1});if(a)for(const o in r)ml(o)||null!=s[o]||delete r[o]})(e,t.children,n),xe(),ln(e),Ce()},H=(e,t,n,o,l,r,a,s,i=!1)=>{const u=e&&e.children,c=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:v}=t;if(f>0){if(128&f)return void q(u,p,n,o,l,r,a,s,i);if(256&f)return void W(u,p,n,o,l,r,a,s,i)}8&v?(16&c&&Z(u,l,r),p!==u&&d(n,p)):16&c?16&v?q(u,p,n,o,l,r,a,s,i):Z(u,l,r,!0):(8&c&&d(n,""),16&v&&A(p,n,o,l,r,a,s,i))},W=(e,t,n,o,r,a,s,i,u)=>{t=t||l;const c=(e=e||l).length,d=t.length,p=Math.min(c,d);let f;for(f=0;fd?Z(e,r,a,!0,!1,p):A(t,n,o,r,a,s,i,u,p)},q=(e,t,n,o,r,a,s,i,u)=>{let c=0;const d=t.length;let p=e.length-1,f=d-1;for(;c<=p&&c<=f;){const o=e[c],l=t[c]=u?Ql(t[c]):Jl(t[c]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),c++}for(;c<=p&&c<=f;){const o=e[p],l=t[f]=u?Ql(t[f]):Jl(t[f]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),p--,f--}if(c>p){if(c<=f){const e=f+1,l=ef)for(;c<=p;)K(e[c],r,a,!0),c++;else{const v=c,h=c,m=new Map;for(c=h;c<=f;c++){const e=t[c]=u?Ql(t[c]):Jl(t[c]);null!=e.key&&m.set(e.key,c)}let b,y=0;const w=f-h+1;let x=!1,C=0;const _=new Array(w);for(c=0;c=w){K(o,r,a,!0);continue}let l;if(null!=o.key)l=m.get(o.key);else for(b=h;b<=f;b++)if(0===_[b-h]&&Wl(o,t[b])){l=b;break}void 0===l?K(o,r,a,!0):(_[l-h]=c+1,l>=C?C=l:x=!0,g(o,t[l],n,null,r,a,s,i,u),y++)}const S=x?function(e){const t=e.slice(),n=[0];let o,l,r,a,s;const i=e.length;for(o=0;o>1,e[n[s]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,a=n[r-1];r-- >0;)n[r]=a,a=t[a];return n}(_):l;for(b=S.length-1,c=w-1;c>=0;c--){const e=h+c,l=t[e],p=t[e+1],f=e+1{const{el:s,type:i,transition:u,children:c,shapeFlag:d}=e;if(6&d)U(e.component.subTree,o,l,r);else if(128&d)e.suspense.move(o,l,r);else if(64&d)i.move(e,o,l,te);else if(i!==Rl)if(i!==Nl)if(2!==r&&1&d&&u)if(0===r)u.beforeEnter(s),t(s,o,l),Cl(()=>u.enter(s),a);else{const{leave:r,delayLeave:a,afterLeave:i}=u,c=()=>{e.ctx.isUnmounted?n(s):t(s,o,l)},d=()=>{s._isLeaving&&s[Bn](!0),r(s,()=>{c(),i&&i()})};a?a(s,c,d):d()}else t(s,o,l);else C(e,o,l);else{t(s,o,l);for(let e=0;e{const{type:r,props:a,ref:s,children:i,dynamicChildren:u,shapeFlag:c,patchFlag:d,dirs:p,cacheIndex:f}=e;if(-2===d&&(l=!1),null!=s&&(xe(),Qn(s,null,n,e,!0),Ce()),null!=f&&(t.renderCache[f]=void 0),256&c)return void t.ctx.deactivate(e);const v=1&c&&p,h=!to(e);let m;if(h&&(m=a&&a.onVnodeBeforeUnmount)&&nr(m,t,e),6&c)X(e.component,n,o);else{if(128&c)return void e.suspense.unmount(n,o);v&&vn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,te,o):u&&!u.hasOnce&&(r!==Rl||d>0&&64&d)?Z(u,t,n,!1,!0):(r===Rl&&384&d||!l&&16&c)&&Z(i,t,n),o&&G(e)}(h&&(m=a&&a.onVnodeUnmounted)||v)&&Cl(()=>{m&&nr(m,t,e),v&&vn(e,null,t,"unmounted")},n)},G=e=>{const{type:t,el:o,anchor:l,transition:r}=e;if(t===Rl)return void Y(o,l);if(t===Nl)return void _(e);const a=()=>{n(o),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:n}=r,l=()=>t(o,a);n?n(e.el,a,l):l()}else a()},Y=(e,t)=>{let o;for(;e!==t;)o=v(e),n(e),e=o;n(t)},X=(e,t,n)=>{const{bum:o,scope:l,job:r,subTree:a,um:s,m:i,a:u}=e;Al(i),Al(u),o&&I(o),l.stop(),r&&(r.flags|=8,K(a,e,t,n)),s&&Cl(s,t),Cl(()=>{e.isUnmounted=!0},t)},Z=(e,t,n,o=!1,l=!1,r=0)=>{for(let a=r;a{if(6&e.shapeFlag)return J(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();const t=v(e.anchor||e.el),n=t&&t[Sn];return n?v(n):t};let Q=!1;const ee=(e,t,n)=>{let o;null==e?t._vnode&&(K(t._vnode,null,null,!0),o=t._vnode.component):g(t._vnode||null,e,t,null,null,null,n),t._vnode=e,Q||(Q=!0,ln(o),rn(),Q=!1)},te={p:g,um:K,m:U,r:G,mt:$,mc:A,pc:H,pbc:L,n:J,o:e};let oe;return{render:ee,hydrate:oe,createApp:Jo(ee)}}(e)}function Sl({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function kl({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function El(e,t,n=!1){const o=e.children,l=t.children;if(f(o)&&f(l))for(let r=0;re.__isSuspense,Rl=Symbol.for("v-fgt"),Ll=Symbol.for("v-txt"),Pl=Symbol.for("v-cmt"),Nl=Symbol.for("v-stc"),Il=[];let Bl=null;function Fl(e=!1){Il.push(Bl=e?null:[])}let $l=1;function jl(e,t=!1){$l+=e,e<0&&Bl&&t&&(Bl.hasOnce=!0)}function Vl(e){return e.dynamicChildren=$l>0?Bl||l:null,Il.pop(),Bl=Il[Il.length-1]||null,$l>0&&Bl&&Bl.push(e),e}function Dl(e,t,n,o,l,r){return Vl(Kl(e,t,n,o,l,r,!0))}function zl(e,t,n,o,l){return Vl(Gl(e,t,n,o,l,!0))}function Hl(e){return!!e&&!0===e.__v_isVNode}function Wl(e,t){return e.type===t.type&&e.key===t.key}const ql=({key:e})=>null!=e?e:null,Ul=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?b(e)||_t(e)||g(e)?{i:un,r:e,k:t,f:!!n}:e:null);function Kl(e,t=null,n=null,o=0,l=null,r=(e===Rl?0:1),a=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ql(t),ref:t&&Ul(t),scopeId:cn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:un};return s?(er(i,n),128&r&&e.normalize(i)):n&&(i.shapeFlag|=b(n)?8:16),$l>0&&!a&&Bl&&(i.patchFlag>0||6&r)&&32!==i.patchFlag&&Bl.push(i),i}const Gl=function(e,t=null,n=null,o=0,l=null,r=!1){if(e&&e!==Co||(e=Pl),Hl(e)){const o=Yl(e,t,!0);return n&&er(o,n),$l>0&&!r&&Bl&&(6&o.shapeFlag?Bl[Bl.indexOf(e)]=o:Bl.push(o)),o.patchFlag=-2,o}var a;if(g(a=e)&&"__vccOpts"in a&&(e=e.__vccOpts),t){t=function(e){return e?yt(e)||cl(e)?u({},e):e:null}(t);let{class:e,style:n}=t;e&&!b(e)&&(t.class=q(e)),w(n)&&(yt(n)&&!f(n)&&(n=u({},n)),t.style=V(n))}const s=b(e)?1:Ml(e)?128:kn(e)?64:w(e)?4:g(e)?2:0;return Kl(e,t,n,o,l,s,r,!0)};function Yl(e,t,n=!1,o=!1){const{props:l,ref:r,patchFlag:a,children:s,transition:i}=e,u=t?tr(l||{},t):l,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ql(u),ref:t&&t.ref?n&&r?f(r)?r.concat(Ul(t)):[r,Ul(t)]:Ul(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Rl?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Yl(e.ssContent),ssFallback:e.ssFallback&&Yl(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&o&&Gn(c,i.clone(c)),c}function Xl(e=" ",t=0){return Gl(Ll,null,e,t)}function Zl(e="",t=!1){return t?(Fl(),zl(Pl,null,e)):Gl(Pl,null,e)}function Jl(e){return null==e||"boolean"==typeof e?Gl(Pl):f(e)?Gl(Rl,null,e.slice()):Hl(e)?Ql(e):Gl(Ll,null,String(e))}function Ql(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Yl(e)}function er(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(f(t))n=16;else if("object"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),er(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||cl(t)?3===o&&un&&(1===un.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=un}}else g(t)?(t={default:t,_ctx:un},n=32):(t=String(t),64&o?(n=16,t=[Xl(t)]):n=8);e.children=t,e.shapeFlag|=n}function tr(...e){const t={};for(let n=0;nrr||un;let sr,ir;{const e=j(),t=(t,n)=>{let o;return(o=e[t])||(o=e[t]=[]),o.push(n),e=>{o.length>1?o.forEach(t=>t(e)):o[0](e)}};sr=t("__VUE_INSTANCE_SETTERS__",e=>rr=e),ir=t("__VUE_SSR_SETTERS__",e=>pr=e)}const ur=e=>{const t=rr;return sr(e),e.scope.on(),()=>{e.scope.off(),sr(t)}},cr=()=>{rr&&rr.scope.off(),sr(null)};function dr(e){return 4&e.vnode.shapeFlag}let pr=!1;function fr(e,t,n){g(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:w(t)&&(e.setupState=Lt(t)),vr(e)}function vr(e,t,n){const o=e.type;e.render||(e.render=o.render||r);{const t=ur(e);xe();try{jo(e)}finally{Ce(),t()}}}const hr={get:(e,t)=>(Le(e,0,""),e[t])};function mr(e){const t=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,hr),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Lt((t=e.exposed,!p(t,"__v_skip")&&Object.isExtensible(t)&&B(t,"__v_skip",!0),t)),{get:(t,n)=>n in t?t[n]:n in Ro?Ro[n](e):void 0,has:(e,t)=>t in e||t in Ro})):e.proxy;var t}function br(e,t=!0){return g(e)?e.displayName||e.name:e.name||t&&e.__name}const yr=(e,t)=>{const n=function(e,t,n=!1){let o,l;return g(e)?o=e:(o=e.get,l=e.set),new jt(o,l,n)}(e,0,pr);return n};function wr(e,t,n){try{jl(-1);const o=arguments.length;return 2===o?w(t)&&!f(t)?Hl(t)?Gl(e,null,[t]):Gl(e,t):Gl(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Hl(n)&&(n=[n]),Gl(e,t,n))}finally{jl(1)}}const xr="3.5.26",Cr=r;let _r;const Sr="undefined"!=typeof window&&window.trustedTypes;if(Sr)try{_r=Sr.createPolicy("vue",{createHTML:e=>e})}catch(tT){}const kr=_r?e=>_r.createHTML(e):e=>e,Er="undefined"!=typeof document?document:null,Tr=Er&&Er.createElement("template"),Ar={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const l="svg"===t?Er.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?Er.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?Er.createElement(e,{is:n}):Er.createElement(e);return"select"===e&&o&&null!=o.multiple&&l.setAttribute("multiple",o.multiple),l},createText:e=>Er.createTextNode(e),createComment:e=>Er.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Er.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,l,r){const a=n?n.previousSibling:t.lastChild;if(l&&(l===r||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),l!==r&&(l=l.nextSibling););else{Tr.innerHTML=kr("svg"===o?`${e}`:"mathml"===o?`${e}`:e);const l=Tr.content;if("svg"===o||"mathml"===o){const e=l.firstChild;for(;e.firstChild;)l.appendChild(e.firstChild);l.removeChild(e)}t.insertBefore(l,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Or="transition",Mr="animation",Rr=Symbol("_vtc"),Lr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Pr=u({},Vn,Lr),Nr=(e=>(e.displayName="Transition",e.props=Pr,e))((e,{slots:t})=>wr(Hn,Fr(e),t)),Ir=(e,t=[])=>{f(e)?e.forEach(e=>e(...t)):e&&e(...t)},Br=e=>!!e&&(f(e)?e.some(e=>e.length>1):e.length>1);function Fr(e){const t={};for(const u in e)u in Lr||(t[u]=e[u]);if(!1===e.css)return t;const{name:n="v",type:o,duration:l,enterFromClass:r=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:i=r,appearActiveClass:c=a,appearToClass:d=s,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(w(e))return[$r(e.enter),$r(e.leave)];{const t=$r(e);return[t,t]}}(l),m=h&&h[0],g=h&&h[1],{onBeforeEnter:b,onEnter:y,onEnterCancelled:x,onLeave:C,onLeaveCancelled:_,onBeforeAppear:S=b,onAppear:k=y,onAppearCancelled:E=x}=t,T=(e,t,n,o)=>{e._enterCancelled=o,Vr(e,t?d:s),Vr(e,t?c:a),n&&n()},A=(e,t)=>{e._isLeaving=!1,Vr(e,p),Vr(e,v),Vr(e,f),t&&t()},O=e=>(t,n)=>{const l=e?k:y,a=()=>T(t,e,n);Ir(l,[t,a]),Dr(()=>{Vr(t,e?i:r),jr(t,e?d:s),Br(l)||Hr(t,o,m,a)})};return u(t,{onBeforeEnter(e){Ir(b,[e]),jr(e,r),jr(e,a)},onBeforeAppear(e){Ir(S,[e]),jr(e,i),jr(e,c)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>A(e,t);jr(e,p),e._enterCancelled?(jr(e,f),Kr(e)):(Kr(e),jr(e,f)),Dr(()=>{e._isLeaving&&(Vr(e,p),jr(e,v),Br(C)||Hr(e,o,g,n))}),Ir(C,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),Ir(x,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),Ir(E,[e])},onLeaveCancelled(e){A(e),Ir(_,[e])}})}function $r(e){const t=(e=>{const t=b(e)?Number(e):NaN;return isNaN(t)?e:t})(e);return t}function jr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Rr]||(e[Rr]=new Set)).add(t)}function Vr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));const n=e[Rr];n&&(n.delete(t),n.size||(e[Rr]=void 0))}function Dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let zr=0;function Hr(e,t,n,o){const l=e._endId=++zr,r=()=>{l===e._endId&&o()};if(null!=n)return setTimeout(r,n);const{type:a,timeout:s,propCount:i}=Wr(e,t);if(!a)return o();const u=a+"end";let c=0;const d=()=>{e.removeEventListener(u,p),r()},p=t=>{t.target===e&&++c>=i&&d()};setTimeout(()=>{c(n[e]||"").split(", "),l=o(`${Or}Delay`),r=o(`${Or}Duration`),a=qr(l,r),s=o(`${Mr}Delay`),i=o(`${Mr}Duration`),u=qr(s,i);let c=null,d=0,p=0;return t===Or?a>0&&(c=Or,d=a,p=r.length):t===Mr?u>0&&(c=Mr,d=u,p=i.length):(d=Math.max(a,u),c=d>0?a>u?Or:Mr:null,p=c?c===Or?r.length:i.length:0),{type:c,timeout:d,propCount:p,hasTransform:c===Or&&/\b(?:transform|all)(?:,|$)/.test(o(`${Or}Property`).toString())}}function qr(e,t){for(;e.lengthUr(t)+Ur(e[n])))}function Ur(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function Kr(e){return(e?e.ownerDocument:document).body.offsetHeight}const Gr=Symbol("_vod"),Yr=Symbol("_vsh"),Xr={name:"show",beforeMount(e,{value:t},{transition:n}){e[Gr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Zr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Zr(e,!0),o.enter(e)):o.leave(e,()=>{Zr(e,!1)}):Zr(e,t))},beforeUnmount(e,{value:t}){Zr(e,t)}};function Zr(e,t){e.style.display=t?e[Gr]:"none",e[Yr]=!t}const Jr=Symbol(""),Qr=/(?:^|;)\s*display\s*:/,ea=/\s*!important$/;function ta(e,t,n){if(f(n))n.forEach(n=>ta(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=oa[t];if(n)return n;let o=O(t);if("filter"!==o&&o in e)return oa[t]=o;o=L(o);for(let l=0;l{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();Ut(function(e,t){if(f(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=da||(pa.then(()=>da=0),da=Date.now()),n}(o,l);sa(e,n,a,s)}else a&&(function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,a,s),r[t]=void 0)}}const ca=/(?:Once|Passive|Capture)$/;let da=0;const pa=Promise.resolve(),fa=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,va=new WeakMap,ha=new WeakMap,ma=Symbol("_moveCb"),ga=Symbol("_enterCb"),ba=(e=>(delete e.props.mode,e))({name:"TransitionGroup",props:u({},Pr,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ar(),o=$n();let l,r;return fo(()=>{if(!l.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const o=e.cloneNode(),l=e[Rr];l&&l.forEach(e=>{e.split(/\s+/).forEach(e=>e&&o.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&o.classList.add(e)),o.style.display="none";const r=1===t.nodeType?t:t.parentNode;r.appendChild(o);const{hasTransform:a}=Wr(o);return r.removeChild(o),a}(l[0].el,n.vnode.el,t))return void(l=[]);l.forEach(ya),l.forEach(wa);const o=l.filter(xa);Kr(n.vnode.el),o.forEach(e=>{const n=e.el,o=n.style;jr(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const l=n[ma]=e=>{e&&e.target!==n||e&&!e.propertyName.endsWith("transform")||(n.removeEventListener("transitionend",l),n[ma]=null,Vr(n,t))};n.addEventListener("transitionend",l)}),l=[]}),()=>{const a=wt(e),s=Fr(a);let i=a.tag||Rl;if(l=[],r)for(let e=0;e{const t=e.props["onUpdate:modelValue"]||!1;return f(t)?e=>I(t,e):t},_a=Symbol("_assign"),Sa={deep:!0,created(e,t,n){e[_a]=Ca(n),sa(e,"change",()=>{const t=e._modelValue,n=Ta(e),o=e.checked,l=e[_a];if(f(t)){const e=Y(t,n),r=-1!==e;if(o&&!r)l(t.concat(n));else if(!o&&r){const n=[...t];n.splice(e,1),l(n)}}else if(h(t)){const e=new Set(t);o?e.add(n):e.delete(n),l(e)}else l(Aa(e,o))})},mounted:ka,beforeUpdate(e,t,n){e[_a]=Ca(n),ka(e,t,n)}};function ka(e,{value:t,oldValue:n},o){let l;if(e._modelValue=t,f(t))l=Y(t,o.props.value)>-1;else if(h(t))l=t.has(o.props.value);else{if(t===n)return;l=G(t,Aa(e,!0))}e.checked!==l&&(e.checked=l)}const Ea={created(e,{value:t},n){e.checked=G(t,n.props.value),e[_a]=Ca(n),sa(e,"change",()=>{e[_a](Ta(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[_a]=Ca(o),t!==n&&(e.checked=G(t,o.props.value))}};function Ta(e){return"_value"in e?e._value:e.value}function Aa(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Oa=["ctrl","shift","alt","meta"],Ma={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Oa.some(n=>e[`${n}Key`]&&!t.includes(n))},Ra=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(n,...o)=>{for(let e=0;e{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=n=>{if(!("key"in n))return;const o=R(n.key);return t.some(e=>e===o||La[e]===o)?e(n):void 0})},Na=u({patchProp:(e,t,n,o,l,r)=>{const a="svg"===l;"class"===t?function(e,t,n){const o=e[Rr];o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,a):"style"===t?function(e,t,n){const o=e.style,l=b(n);let r=!1;if(n&&!l){if(t)if(b(t))for(const e of t.split(";")){const t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&ta(o,t,"")}else for(const e in t)null==n[e]&&ta(o,e,"");for(const e in n)"display"===e&&(r=!0),ta(o,e,n[e])}else if(l){if(t!==n){const e=o[Jr];e&&(n+=";"+e),o.cssText=n,r=Qr.test(n)}}else t&&e.removeAttribute("style");Gr in e&&(e[Gr]=r?o.display:"",e[Yr]&&(o.display="none"))}(e,n,o):s(t)?i(t)||ua(e,t,0,o,r):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&fa(t)&&g(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t)return!1;if("sandbox"===t&&"IFRAME"===e.tagName)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!fa(t)||!b(n))&&t in e}(e,t,o,a))?(aa(e,t,o),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ra(e,t,o,a,0,"value"!==t)):!e._isVueCE||!/[A-Z]/.test(t)&&b(o)?("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),ra(e,t,o,a)):aa(e,O(t),o,0,t)}},Ar);let Ia;function Ba(){return Ia||(Ia=_l(Na))}const Fa=(...e)=>{Ba().render(...e)},$a=(...e)=>{const t=Ba().createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){return b(e)?document.querySelector(e):e}(e);if(!o)return;const l=t._component;g(l)||l.render||l.template||(l.template=o.innerHTML),1===o.nodeType&&(o.textContent="");const r=n(o,!1,function(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t},ja=Symbol(),Va="el",Da=(e,t,n,o,l)=>{let r=`${e}-${t}`;return n&&(r+=`-${n}`),o&&(r+=`__${o}`),l&&(r+=`--${l}`),r},za=Symbol("namespaceContextKey"),Ha=e=>{const t=e||(ar()?mn(za,St(Va)):St(Va));return yr(()=>Ot(t)||Va)},Wa=(e,t)=>{const n=Ha(t);return{namespace:n,b:(t="")=>Da(n.value,e,t,"",""),e:t=>t?Da(n.value,e,"",t,""):"",m:t=>t?Da(n.value,e,"","",t):"",be:(t,o)=>t&&o?Da(n.value,e,t,o,""):"",em:(t,o)=>t&&o?Da(n.value,e,"",t,o):"",bm:(t,o)=>t&&o?Da(n.value,e,t,"",o):"",bem:(t,o,l)=>t&&o&&l?Da(n.value,e,t,o,l):"",is:(e,...t)=>{const n=!(t.length>=1)||t[0];return e&&n?`is-${e}`:""},cssVar:e=>{const t={};for(const o in e)e[o]&&(t[`--${n.value}-${o}`]=e[o]);return t},cssVarName:e=>`--${n.value}-${e}`,cssVarBlock:t=>{const o={};for(const l in t)t[l]&&(o[`--${n.value}-${e}-${l}`]=t[l]);return o},cssVarBlockName:t=>`--${n.value}-${e}-${t}`}};var qa="object"==typeof global&&global&&global.Object===Object&&global,Ua="object"==typeof self&&self&&self.Object===Object&&self,Ka=qa||Ua||Function("return this")(),Ga=Ka.Symbol,Ya=Object.prototype,Xa=Ya.hasOwnProperty,Za=Ya.toString,Ja=Ga?Ga.toStringTag:void 0,Qa=Object.prototype.toString,es=Ga?Ga.toStringTag:void 0;function ts(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":es&&es in Object(e)?function(e){var t=Xa.call(e,Ja),n=e[Ja];try{e[Ja]=void 0;var o=!0}catch(tT){}var l=Za.call(e);return o&&(t?e[Ja]=n:delete e[Ja]),l}(e):function(e){return Qa.call(e)}(e)}function ns(e){return null!=e&&"object"==typeof e}function os(e){return"symbol"==typeof e||ns(e)&&"[object Symbol]"==ts(e)}function ls(e,t){for(var n=-1,o=null==e?0:e.length,l=Array(o);++n0){if(++$s>=800)return arguments[0]}else $s=0;return Fs.apply(void 0,arguments)}),Ws=/^(?:0|[1-9]\d*)$/;function qs(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Ws.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function ei(e){return null!=e&&Qs(e.length)&&!ys(e)}var ti=Object.prototype;function ni(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ti)}function oi(e){return ns(e)&&"[object Arguments]"==ts(e)}var li=Object.prototype,ri=li.hasOwnProperty,ai=li.propertyIsEnumerable,si=oi(function(){return arguments}())?oi:function(e){return ns(e)&&ri.call(e,"callee")&&!ai.call(e,"callee")},ii="object"==typeof e&&e&&!e.nodeType&&e,ui=ii&&"object"==typeof t&&t&&!t.nodeType&&t,ci=ui&&ui.exports===ii?Ka.Buffer:void 0,di=(ci?ci.isBuffer:void 0)||function(){return!1},pi={};function fi(e){return function(t){return e(t)}}pi["[object Float32Array]"]=pi["[object Float64Array]"]=pi["[object Int8Array]"]=pi["[object Int16Array]"]=pi["[object Int32Array]"]=pi["[object Uint8Array]"]=pi["[object Uint8ClampedArray]"]=pi["[object Uint16Array]"]=pi["[object Uint32Array]"]=!0,pi["[object Arguments]"]=pi["[object Array]"]=pi["[object ArrayBuffer]"]=pi["[object Boolean]"]=pi["[object DataView]"]=pi["[object Date]"]=pi["[object Error]"]=pi["[object Function]"]=pi["[object Map]"]=pi["[object Number]"]=pi["[object Object]"]=pi["[object RegExp]"]=pi["[object Set]"]=pi["[object String]"]=pi["[object WeakMap]"]=!1;var vi="object"==typeof e&&e&&!e.nodeType&&e,hi=vi&&"object"==typeof t&&t&&!t.nodeType&&t,mi=hi&&hi.exports===vi&&qa.process,gi=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||mi&&mi.binding&&mi.binding("util")}catch(tT){}}(),bi=gi&&gi.isTypedArray,yi=bi?fi(bi):function(e){return ns(e)&&Qs(e.length)&&!!pi[ts(e)]},wi=Object.prototype.hasOwnProperty;function xi(e,t){var n=rs(e),o=!n&&si(e),l=!n&&!o&&di(e),r=!n&&!o&&!l&&yi(e),a=n||o||l||r,s=a?function(e,t){for(var n=-1,o=Array(e);++n-1},$i.prototype.set=function(e,t){var n=this.__data__,o=Bi(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this};var ji=Ls(Ka,"Map");function Vi(e,t){var n,o,l=e.__data__;return("string"==(o=typeof(n=t))||"number"==o||"symbol"==o||"boolean"==o?"__proto__"!==n:null===n)?l["string"==typeof t?"string":"hash"]:l.map}function Di(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var u=r.get(e),c=r.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&n?new oc:void 0;for(r.set(e,t),r.set(t,e);++d=t||n<0||d&&e-u>=r}function h(){var e=Tc();if(v(e))return m(e);s=setTimeout(h,function(e){var n=t-(e-i);return d?Oc(n,r-(e-u)):n}(e))}function m(e){return s=void 0,p&&o?f(e):(o=l=void 0,a)}function g(){var e=Tc(),n=v(e);if(o=arguments,l=this,i=e,n){if(void 0===s)return function(e){return u=e,s=setTimeout(h,t),c?f(e):a}(i);if(d)return clearTimeout(s),s=setTimeout(h,t),f(i)}return void 0===s&&(s=setTimeout(h,t)),a}return t=gs(t)||0,ps(n)&&(c=!!n.leading,r=(d="maxWait"in n)?Ac(gs(n.maxWait)||0,t):r,p="trailing"in n?!!n.trailing:p),g.cancel=function(){void 0!==s&&clearTimeout(s),u=0,o=i=l=s=void 0},g.flush=function(){return void 0===s?a:m(Tc())},g}function Rc(e,t,n){(void 0!==n&&!Ks(e[t],n)||void 0===n&&!(t in e))&&Us(e,t,n)}function Lc(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function Pc(e,t,n,o,l,r,a){var s=Lc(e,n),i=Lc(t,n),u=a.get(i);if(u)Rc(e,n,u);else{var c,d=r?r(s,i,n+"",e,t,a):void 0,p=void 0===d;if(p){var f=rs(i),v=!f&&di(i),h=!f&&!v&&yi(i);d=i,f||v||h?rs(s)?d=s:ns(c=s)&&ei(c)?d=Bs(s):v?(p=!1,d=hu(i,!0)):h?(p=!1,d=Wu(i,!0)):d=[]:iu(i)||si(i)?(d=s,si(s)?d=function(e){return Xs(e,Ai(e))}(s):ps(s)&&!ys(s)||(d=Uu(i))):p=!1}p&&(a.set(i,d),l(d,i,o,r,a),a.delete(i)),Rc(e,n,d)}}function Nc(e,t,n,o,l){e!==t&&kc(t,function(r,a){if(l||(l=new cu),ps(r))Pc(e,t,a,n,Nc,o,l);else{var s=o?o(Lc(e,a),r,a+"",e,t,l):void 0;void 0===s&&(s=r),Rc(e,a,s)}},Ai)}function Ic(e,t){var n=-1,o=ei(e)?Array(e.length):[];return Ec(e,function(e,l,r){o[++n]=t(e,l,r)}),o}function Bc(e,t){return Qi(function(e,t){return(rs(e)?ls:Ic)(e,_c(t))}(e,t))}function Fc(e){for(var t=-1,n=null==e?0:e.length,o={};++tl?0:l+t),(n=n>l?l:n)<0&&(n+=l),l=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(l);++o1?t[o-1]:void 0,r=o>2?t[2]:void 0;for(l=zc.length>3&&"function"==typeof l?(o--,l):void 0,r&&function(e,t,n){if(!ps(n))return!1;var o=typeof t;return!!("number"==o?ei(n)&&qs(t,n.length):"string"==o&&t in n)&&Ks(n[t],e)}(t[0],t[1],r)&&(l=o<3?void 0:l,o=1),e=Object(e);++n1),t}),Xs(e,_u(e),n),o&&(n=tc(n,7,qc));for(var l=t.length;l--;)Wc(n,t[l]);return n});function Kc(e,t,n,o){if(!ps(e))return e;for(var l=-1,r=(t=Ui(t,e)).length,a=r-1,s=e;null!=s&&++lvoid 0===e,Zc=e=>"boolean"==typeof e,Jc=e=>"number"==typeof e,Qc=e=>"undefined"!=typeof Element&&e instanceof Element,ed=e=>Vc(e);function td(e,t){const n=kt();return yn(()=>{n.value=e()},{...t,flush:"sync"}),vt(n)}function nd(e){return!!oe()&&(le(e),!0)}function od(e){return"function"==typeof e?e():Ot(e)}const ld="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const rd=Object.prototype.toString,ad=()=>{},sd=id();function id(){var e,t;return ld&&(null==(e=null==window?void 0:window.navigator)?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||(null==(t=null==window?void 0:window.navigator)?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(null==window?void 0:window.navigator.userAgent))}function ud(e,t=200,n={}){return function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(function(e,t={}){let n,o,l=ad;const r=e=>{clearTimeout(e),l(),l=ad};return a=>{const s=od(e),i=od(t.maxWait);return n&&r(n),s<=0||void 0!==i&&i<=0?(o&&(r(o),o=null),Promise.resolve(a())):new Promise((e,u)=>{l=t.rejectOnCancel?u:e,i&&!o&&(o=setTimeout(()=>{n&&r(n),o=null,e(a())},i)),n=setTimeout(()=>{o&&r(o),o=null,e(a())},s)})}}(t,n),e)}function cd(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function dd(e,t,n={}){const{immediate:o=!0}=n,l=St(!1);let r=null;function a(){r&&(clearTimeout(r),r=null)}function s(){l.value=!1,a()}function i(...n){a(),l.value=!0,r=setTimeout(()=>{l.value=!1,r=null,e(...n)},od(t))}return o&&(l.value=!0,ld&&i()),nd(s),{isPending:vt(l),start:i,stop:s}}function pd(e){var t;const n=od(e);return null!=(t=null==n?void 0:n.$el)?t:n}const fd=ld?window:void 0,vd=ld?window.document:void 0;function hd(...e){let t,n,o,l;if("string"==typeof e[0]||Array.isArray(e[0])?([n,o,l]=e,t=fd):[t,n,o,l]=e,!t)return ad;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const r=[],a=()=>{r.forEach(e=>e()),r.length=0},s=wn(()=>[pd(t),od(l)],([e,t])=>{if(a(),!e)return;const l=(s=t,"[object Object]"===rd.call(s)?{...t}:t);var s;r.push(...n.flatMap(t=>o.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,l))))},{immediate:!0,flush:"post"}),i=()=>{s(),a()};return nd(i),i}let md=!1;function gd(e){const t=function(){const e=St(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}();return yr(()=>(t.value,Boolean(e())))}function bd(e,t,n={}){const{window:o=fd,...l}=n;let r;const a=gd(()=>o&&"ResizeObserver"in o),s=()=>{r&&(r.disconnect(),r=void 0)},i=wn(yr(()=>Array.isArray(e)?e.map(e=>pd(e)):[pd(e)]),e=>{if(s(),a.value&&o){r=new ResizeObserver(t);for(const t of e)t&&r.observe(t,l)}},{immediate:!0,flush:"post"}),u=()=>{s(),i()};return nd(u),{isSupported:a,stop:u}}function yd(e,t={width:0,height:0},n={}){const{window:o=fd,box:l="content-box"}=n,r=yr(()=>{var t,n;return null==(n=null==(t=pd(e))?void 0:t.namespaceURI)?void 0:n.includes("svg")}),a=St(t.width),s=St(t.height),{stop:i}=bd(e,([t])=>{const n="border-box"===l?t.borderBoxSize:"content-box"===l?t.contentBoxSize:t.devicePixelContentBoxSize;if(o&&r.value){const t=pd(e);if(t){const e=t.getBoundingClientRect();a.value=e.width,s.value=e.height}}else if(n){const e=Array.isArray(n)?n:[n];a.value=e.reduce((e,{inlineSize:t})=>e+t,0),s.value=e.reduce((e,{blockSize:t})=>e+t,0)}else a.value=t.contentRect.width,s.value=t.contentRect.height},n);cd(()=>{const n=pd(e);n&&(a.value="offsetWidth"in n?n.offsetWidth:t.width,s.value="offsetHeight"in n?n.offsetHeight:t.height)});const u=wn(()=>pd(e),e=>{a.value=e?t.width:0,s.value=e?t.height:0});return{width:a,height:s,stop:function(){i(),u()}}}class wd extends Error{constructor(e){super(e),this.name="ElementPlusError"}}function xd(e,t){throw new wd(`[${e}] ${t}`)}const Cd={current:0},_d=St(0),Sd=Symbol("elZIndexContextKey"),kd=Symbol("zIndexContextKey"),Ed=e=>{const t=ar()?mn(Sd,Cd):Cd,n=e||(ar()?mn(kd,void 0):void 0),o=yr(()=>{const e=Ot(n);return Jc(e)?e:2e3}),l=yr(()=>o.value+_d.value);return!ld&&mn(Sd),{initialZIndex:o,currentZIndex:l,nextZIndex:()=>(t.current++,_d.value=t.current,l.value)}};var Td={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value",alphaDescription:"alpha {alpha}, current color is {color}",hueLabel:"pick hue value",hueDescription:"hue {hue}, current color is {color}",svLabel:"pick saturation and brightness value",svDescription:"saturation {saturation}, brightness {brightness}, current color is {color}",predefineDescription:"select {value} as the color"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum",selectAllLabel:"Select all rows",selectRowLabel:"Select this row",expandRowLabel:"Expand this row",collapseRowLabel:"Collapse this row",sortLabel:"Sort by {column}",filterLabel:"Filter by {column}"},tag:{close:"Close this tag"},tour:{next:"Next",previous:"Previous",finish:"Finish",close:"Close this dialog"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const Ad=e=>(t,n)=>Od(t,n,Ot(e)),Od=(e,t,n)=>Yi(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>{var o;return`${null!=(o=null==t?void 0:t[n])?o:`{${n}}`}`}),Md=Symbol("localeContextKey"),Rd=e=>{const t=e||mn(Md,St());return(e=>({lang:yr(()=>Ot(e).name),locale:_t(e)?e:St(e),t:Ad(e)}))(yr(()=>t.value||Td))},Ld="__epPropKey",Pd=(e,t)=>{if(!w(e)||w(n=e)&&n[Ld])return e;var n;const{values:o,required:l,default:r,type:a,validator:s}=e,i=o||s?n=>{let l=!1,a=[];if(o&&(a=Array.from(o),p(e,"default")&&a.push(r),l||(l=a.includes(n))),s&&(l||(l=s(n))),!l&&a.length>0){const e=[...new Set(a)].map(e=>JSON.stringify(e)).join(", ");Cr(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${e}], got value ${JSON.stringify(n)}.`)}return l}:void 0,u={type:a,required:!!l,validator:i,[Ld]:!0};return p(e,"default")&&(u.default=r),u},Nd=e=>Fc(Object.entries(e).map(([e,t])=>[e,Pd(t,e)])),Id=["","default","small","large"],Bd=Pd({type:String,values:Id,required:!1}),Fd=Symbol("size"),$d=Symbol("emptyValuesContextKey"),jd=(Nd({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>(e=g(e)?e():e,f(e)?e.every(e=>!e):!e)}}),e=>Object.keys(e)),Vd=(e,t,n)=>({get value(){return Yi(e,t,n)},set value(n){!function(e,t,n){null==e||Kc(e,t,n)}(e,t,n)}}),Dd=St();function zd(e,t=void 0){const n=ar()?mn(ja,Dd):Dd;return e?yr(()=>{var o,l;return null!=(l=null==(o=n.value)?void 0:o[e])?l:t}):n}function Hd(e,t){const n=zd(),o=Wa(e,yr(()=>{var e;return(null==(e=n.value)?void 0:e.namespace)||Va})),l=Rd(yr(()=>{var e;return null==(e=n.value)?void 0:e.locale})),r=Ed(yr(()=>{var e;return(null==(e=n.value)?void 0:e.zIndex)||2e3})),a=yr(()=>{var e;return Ot(t)||(null==(e=n.value)?void 0:e.size)||""});return Wd(yr(()=>Ot(n)||{})),{ns:o,locale:l,zIndex:r,size:a}}const Wd=(e,t,n=!1)=>{const o=!!ar(),l=o?zd():void 0,r=o?hn:void 0;if(!r)return;const a=yr(()=>{const t=Ot(e);return(null==l?void 0:l.value)?qd(l.value,t):t});return r(ja,a),r(Md,yr(()=>a.value.locale)),r(za,yr(()=>a.value.namespace)),r(kd,yr(()=>a.value.zIndex)),r(Fd,{size:yr(()=>a.value.size||"")}),r($d,yr(()=>({emptyValues:a.value.emptyValues,valueOnClear:a.value.valueOnClear}))),!n&&Dd.value||(Dd.value=a.value),a},qd=(e,t)=>{const n=[...new Set([...jd(e),...jd(t)])],o={};for(const l of n)o[l]=void 0!==t[l]?t[l]:e[l];return o},Ud=Nd({to:{type:[String,Object],required:!0},disabled:Boolean});var Kd=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const Gd=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(null!=t?t:{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Yd=e=>(e.install=r,e),Xd=Gd(Kd(Xn({__name:"teleport",props:Ud,setup:e=>(e,t)=>e.disabled?Ao(e.$slots,"default",{key:0}):(Fl(),zl(Pn,{key:1,to:e.to},[Ao(e.$slots,"default")],8,["to"]))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/teleport/src/teleport.vue"]])),Zd="update:modelValue",Jd="change",Qd="input",ep=e=>ld?window.requestAnimationFrame(e):setTimeout(e,16),tp=(e="")=>e.split(" ").filter(e=>!!e.trim()),np=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},op=(e,t)=>{e&&t.trim()&&e.classList.add(...tp(t))},lp=(e,t)=>{e&&t.trim()&&e.classList.remove(...tp(t))},rp=(e,t)=>{var n;if(!ld||!e||!t)return"";let o=O(t);"float"===o&&(o="cssFloat");try{const t=e.style[o];if(t)return t;const l=null==(n=document.defaultView)?void 0:n.getComputedStyle(e,"");return l?l[o]:""}catch(tT){return e.style[o]}};function ap(e,t="px"){return e||0===e?Jc(e)||b(n=e)&&!Number.isNaN(Number(n))?`${e}${t}`:b(e)?e:void 0:"";var n}let sp;const ip=Gd(Kd(Xn({name:"ElIcon",inheritAttrs:!1,__name:"icon",props:Nd({size:{type:[Number,String]},color:{type:String}}),setup(e){const t=e,n=Wa("icon"),o=yr(()=>{const{size:e,color:n}=t,o=ap(e);return o||n?{fontSize:o,"--color":n}:{}});return(e,t)=>(Fl(),Dl("i",tr({class:Ot(n).b(),style:o.value},e.$attrs),[Ao(e.$slots,"default")],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]));var up=Xn({name:"ArrowDown",__name:"arrow-down",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}),cp=Xn({name:"ArrowLeft",__name:"arrow-left",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0"})]))}),dp=Xn({name:"ArrowRight",__name:"arrow-right",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}),pp=Xn({name:"ArrowUp",__name:"arrow-up",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}),fp=Xn({name:"Bottom",__name:"bottom",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}),vp=Xn({name:"CircleCheck",__name:"circle-check",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}),hp=Xn({name:"CircleCloseFilled",__name:"circle-close-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}),mp=Xn({name:"CircleClose",__name:"circle-close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}),gp=Xn({name:"Clock",__name:"clock",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),Kl("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}),bp=Xn({name:"Close",__name:"close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}),yp=Xn({name:"Connection",__name:"connection",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192z"}),Kl("path",{fill:"currentColor",d:"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.06 192.06 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192z"})]))}),wp=Xn({name:"DataAnalysis",__name:"data-analysis",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32zM832 192H192v512h640zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32"})]))}),xp=Xn({name:"Delete",__name:"delete",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}),Cp=Xn({name:"Download",__name:"download",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}),_p=Xn({name:"Hide",__name:"hide",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),Kl("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}),Sp=Xn({name:"InfoFilled",__name:"info-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}),kp=Xn({name:"Key",__name:"key",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064M512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384"})]))}),Ep=Xn({name:"Loading",__name:"loading",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}),Tp=Xn({name:"Monitor",__name:"monitor",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 768v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768H192A128 128 0 0 1 64 640V256a128 128 0 0 1 128-128h640a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128zM192 192a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64z"})]))}),Ap=Xn({name:"Moon",__name:"moon",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 391 391 0 0 0-17.408 16.384m181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696"})]))}),Op=Xn({name:"More",__name:"more",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}),Mp=Xn({name:"Plus",__name:"plus",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}),Rp=Xn({name:"Promotion",__name:"promotion",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472zm256 512V657.024L512 768z"})]))}),Lp=Xn({name:"QuestionFilled",__name:"question-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"})]))}),Pp=Xn({name:"Refresh",__name:"refresh",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}),Np=Xn({name:"Search",__name:"search",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}),Ip=Xn({name:"SuccessFilled",__name:"success-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}),Bp=Xn({name:"Sunny",__name:"sunny",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32M195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248M64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32m768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32M195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0m543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0"})]))}),Fp=Xn({name:"Top",__name:"top",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}),$p=Xn({name:"Upload",__name:"upload",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}),jp=Xn({name:"User",__name:"user",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0"})]))}),Vp=Xn({name:"View",__name:"view",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))});const Dp=[String,Object,Function],zp={Close:bp},Hp={Close:bp},Wp={primary:Sp,success:Ip,warning:Xn({name:"WarningFilled",__name:"warning-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}),error:hp,info:Sp},qp={validating:Ep,success:vp,error:mp},Up=()=>ld&&/firefox/i.test(window.navigator.userAgent);let Kp;const Gp={height:"0",visibility:"hidden",overflow:Up()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},Yp=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"],Xp=e=>{const t=Number.parseFloat(e);return Number.isNaN(t)?e:t};function Zp(e,t=1,n){var o,l;Kp||(Kp=document.createElement("textarea"),(null!=(o=e.parentNode)?o:document.body).appendChild(Kp));const{paddingSize:r,borderSize:a,boxSizing:s,contextStyle:i}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),l=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Yp.map(e=>[e,t.getPropertyValue(e)]),paddingSize:o,borderSize:l,boxSizing:n}}(e);i.forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t)),Object.entries(Gp).forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t,"important")),Kp.value=e.value||e.placeholder||"";let u=Kp.scrollHeight;const c={};"border-box"===s?u+=a:"content-box"===s&&(u-=r),Kp.value="";const d=Kp.scrollHeight-r;if(Jc(t)){let e=d*t;"border-box"===s&&(e=e+r+a),u=Math.max(e,u),c.minHeight=`${e}px`}if(Jc(n)){let e=d*n;"border-box"===s&&(e=e+r+a),u=Math.min(e,u)}return c.height=`${u}px`,null==(l=Kp.parentNode)||l.removeChild(Kp),Kp=void 0,c}const Jp=Nd({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Qp=e=>Yc(Jp,e),ef=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Object],default:""},modelModifiers:{type:Object,default:()=>({})},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:Dp,default:mp},showPassword:Boolean,showWordLimit:Boolean,wordLimitPosition:{type:String,values:["inside","outside"],default:"inside"},suffixIcon:{type:Dp},prefixIcon:{type:Dp},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Object,Array,String],default:()=>({})},autofocus:Boolean,rows:{type:Number,default:2},...Qp(["ariaLabel"]),inputmode:{type:String,default:void 0},name:String}),tf={[Zd]:e=>b(e),input:e=>b(e),change:(e,t)=>b(e)&&(t instanceof Event||void 0===t),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},nf=["class","style"],of=/^on[A-Z]/,lf={prefix:Math.floor(1e4*Math.random()),current:0},rf=Symbol("elIdInjection"),af=()=>ar()?mn(rf,lf):lf,sf=e=>{const t=af(),n=Ha();return td(()=>Ot(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},uf=Symbol("formContextKey"),cf=Symbol("formItemContextKey"),df=()=>({form:mn(uf,void 0),formItem:mn(cf,void 0)}),pf=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=St(!1)),o||(o=St(!1));const l=ar(),r=St();let a;const s=yr(()=>{var n;return!!(!e.label&&!e.ariaLabel&&t&&t.inputIds&&(null==(n=t.inputIds)?void 0:n.length)<=1)});return co(()=>{a=wn([Ft(e,"id"),n],([e,n])=>{const a=null!=e?e:n?void 0:sf().value;a!==r.value&&((null==t?void 0:t.removeInputId)&&!(()=>{let e=null==l?void 0:l.parent;for(;e;){if("ElFormItem"===e.type.name)return!1;if("ElLabelWrap"===e.type.name)return!0;e=e.parent}return!1})()&&(r.value&&t.removeInputId(r.value),(null==o?void 0:o.value)||n||!a||t.addInputId(a)),r.value=a)},{immediate:!0})}),ho(()=>{a&&a(),(null==t?void 0:t.removeInputId)&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:s,inputId:r}},ff=e=>{const t=ar();return yr(()=>{var n,o;return null==(o=null==(n=null==t?void 0:t.proxy)?void 0:n.$props)?void 0:o[e]})},vf=(e,t={})=>{const n=St(void 0),o=t.prop?n:ff("size"),l=t.global?n:(()=>{const e=mn(Fd,{});return yr(()=>Ot(e.size)||"")})(),r=t.form?{size:void 0}:mn(uf,void 0),a=t.formItem?{size:void 0}:mn(cf,void 0);return yr(()=>o.value||Ot(e)||(null==a?void 0:a.size)||(null==r?void 0:r.size)||l.value||"")},hf=e=>{const t=ff("disabled"),n=mn(uf,void 0);return yr(()=>{var o,l,r;return null!=(r=null!=(l=null!=(o=t.value)?o:Ot(e))?l:null==n?void 0:n.disabled)&&r})},mf=e=>"undefined"!=typeof Element&&e instanceof Element,gf=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},bf=function(e,t,...n){let o;o=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const l=document.createEvent(o);return l.initEvent(t,...n),e.dispatchEvent(l),e},yf=(e,t)=>{if(!e||!e.focus)return;let n=!1;!mf(e)||gf(e)||e.getAttribute("tabindex")||(e.setAttribute("tabindex","-1"),n=!0),e.focus(t),mf(e)&&n&&e.removeAttribute("tabindex")},wf=["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode"],xf=["id","name","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role"],Cf=Gd(Kd(Xn({name:"ElInput",inheritAttrs:!1,__name:"input",props:ef,emits:tf,setup(e,{expose:t,emit:n}){const o=e,l=n,a=Io(),s=((e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=yr(()=>((null==n?void 0:n.value)||[]).concat(nf)),l=ar();return yr(l?()=>{var e;return Fc(Object.entries(null==(e=l.proxy)?void 0:e.$attrs).filter(([e])=>!(o.value.includes(e)||t&&of.test(e))))}:()=>({}))})(),i=No(),u=yr(()=>["textarea"===o.type?b.b():m.b(),m.m(v.value),m.is("disabled",h.value),m.is("exceed",H.value),{[m.b("group")]:i.prepend||i.append,[m.m("prefix")]:i.prefix||o.prefixIcon,[m.m("suffix")]:i.suffix||o.suffixIcon||o.clearable||o.showPassword,[m.bm("suffix","password-clear")]:$.value&&j.value,[m.b("hidden")]:"hidden"===o.type},a.class]),c=yr(()=>[m.e("wrapper"),m.is("focus",A.value)]),{form:d,formItem:p}=df(),{inputId:f}=pf(o,{formItemContext:p}),v=vf(),h=hf(),m=Wa("input"),b=Wa("textarea"),y=kt(),x=kt(),C=St(!1),_=St(!1),S=St(),k=kt(o.inputStyle),E=yr(()=>y.value||x.value),{wrapperRef:T,isFocused:A,handleFocus:O,handleBlur:M}=function(e,{disabled:t,beforeFocus:n,afterFocus:o,beforeBlur:l,afterBlur:r}={}){const a=ar(),{emit:s}=a,i=kt(),u=St(!1),c=e=>{const l=!!g(n)&&n(e);Ot(t)||u.value||l||(u.value=!0,s("focus",e),null==o||o())},d=e=>{var n;const o=!!g(l)&&l(e);Ot(t)||e.relatedTarget&&(null==(n=i.value)?void 0:n.contains(e.relatedTarget))||o||(u.value=!1,s("blur",e),null==r||r())};return wn([i,()=>Ot(t)],([e,t])=>{e&&(t?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1"))}),hd(i,"focus",c,!0),hd(i,"blur",d,!0),hd(i,"click",n=>{var o,l;Ot(t)||gf(n.target)||(null==(o=i.value)?void 0:o.contains(document.activeElement))&&i.value!==document.activeElement||null==(l=e.value)||l.focus()},!0),{isFocused:u,wrapperRef:i,handleFocus:c,handleBlur:d}}(E,{disabled:h,afterBlur(){var e;o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"blur").catch(e=>{}))}}),R=yr(()=>{var e;return null!=(e=null==d?void 0:d.statusIcon)&&e}),L=yr(()=>(null==p?void 0:p.validateState)||""),P=yr(()=>L.value&&qp[L.value]),N=yr(()=>_.value?Vp:_p),I=yr(()=>[a.style]),B=yr(()=>[o.inputStyle,k.value,{resize:o.resize}]),F=yr(()=>Vc(o.modelValue)?"":String(o.modelValue)),$=yr(()=>o.clearable&&!h.value&&!o.readonly&&!!F.value&&(A.value||C.value)),j=yr(()=>o.showPassword&&!h.value&&!!F.value),D=yr(()=>o.showWordLimit&&!!o.maxlength&&("text"===o.type||"textarea"===o.type)&&!h.value&&!o.readonly&&!o.showPassword),z=yr(()=>F.value.length),H=yr(()=>!!D.value&&z.value>Number(o.maxlength)),W=yr(()=>!!i.suffix||!!o.suffixIcon||$.value||o.showPassword||D.value||!!L.value&&R.value),U=yr(()=>!!Object.keys(o.modelModifiers).length),[K,G]=function(e){let t;return[function(){if(null==e.value)return;const{selectionStart:n,selectionEnd:o,value:l}=e.value;if(null==n||null==o)return;const r=l.slice(0,Math.max(0,n)),a=l.slice(Math.max(0,o));t={selectionStart:n,selectionEnd:o,value:l,beforeTxt:r,afterTxt:a}},function(){if(null==e.value||null==t)return;const{value:n}=e.value,{beforeTxt:o,afterTxt:l,selectionStart:r}=t;if(null==o||null==l||null==r)return;let a=n.length;if(n.endsWith(l))a=n.length-l.length;else if(n.startsWith(o))a=o.length;else{const e=o[r-1],t=n.indexOf(e,r-1);-1!==t&&(a=t+1)}e.value.setSelectionRange(a,a)}]}(y);bd(x,e=>{if(X(),!D.value||"both"!==o.resize&&"horizontal"!==o.resize)return;const t=e[0],{width:n}=t.contentRect;S.value={right:`calc(100% - ${n+22-10}px)`}});const Y=()=>{const{type:e,autosize:t}=o;if(ld&&"textarea"===e&&x.value)if(t){const e=w(t)?t.minRows:void 0,n=w(t)?t.maxRows:void 0,o=Zp(x.value,e,n);k.value={overflowY:"hidden",...o},tn(()=>{x.value.offsetHeight,k.value=o})}else k.value={minHeight:Zp(x.value).minHeight}},X=(e=>{let t=!1;return()=>{var n;!t&&o.autosize&&(null===(null==(n=x.value)?void 0:n.offsetParent)||(setTimeout(e),t=!0))}})(Y),J=()=>{const e=E.value,t=o.formatter?o.formatter(F.value):F.value;e&&e.value!==t&&"file"!==o.type&&(e.value=t)},Q=e=>{const{trim:t,number:n}=o.modelModifiers;return t&&(e=e.trim()),n&&(e=`${Xp(e)}`),o.formatter&&o.parser&&(e=o.parser(e)),e},ee=async e=>{if(ne.value)return;const{lazy:t}=o.modelModifiers;let{value:n}=e.target;t?l(Qd,n):(n=Q(n),String(n)!==F.value?(K(),l(Zd,n),l(Qd,n),await tn(),(o.formatter&&o.parser||!U.value)&&J(),G()):o.formatter&&J())},te=async e=>{let{value:t}=e.target;t=Q(t),o.modelModifiers.lazy&&l(Zd,t),l(Jd,t,e),await tn(),J()},{isComposing:ne,handleCompositionStart:oe,handleCompositionUpdate:le,handleCompositionEnd:re}=function({afterComposition:e,emit:t}){const n=St(!1),o=e=>{var o;null==t||t("compositionupdate",e);const l=null==(o=e.target)?void 0:o.value,r=l[l.length-1]||"";n.value=!(e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e))(r)},l=o=>{null==t||t("compositionend",o),n.value&&(n.value=!1,tn(()=>e(o)))};return{isComposing:n,handleComposition:e=>{"compositionend"===e.type?l(e):o(e)},handleCompositionStart:e=>{null==t||t("compositionstart",e),n.value=!0},handleCompositionUpdate:o,handleCompositionEnd:l}}({emit:l,afterComposition:ee}),ae=()=>{_.value=!_.value},se=e=>{C.value=!1,l("mouseleave",e)},ie=e=>{C.value=!0,l("mouseenter",e)},ue=e=>{l("keydown",e)},ce=()=>{l(Zd,""),l(Jd,""),l("clear"),l(Qd,"")};return wn(()=>o.modelValue,()=>{var e;tn(()=>Y()),o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"change").catch(e=>{}))}),wn(F,e=>{if(!E.value)return;const{trim:t,number:n}=o.modelModifiers,l=E.value.value,r=!n&&"number"!==o.type||/^0\d/.test(l)?l:`${Xp(l)}`;r!==e&&(document.activeElement===E.value&&"range"!==E.value.type&&t&&r.trim()===e||J())}),wn(()=>o.type,async()=>{await tn(),J(),Y()}),co(()=>{!o.formatter&&o.parser,J(),tn(Y)}),t({input:y,textarea:x,ref:E,textareaStyle:B,autosize:Ft(o,"autosize"),isComposing:ne,focus:()=>{var e;return null==(e=E.value)?void 0:e.focus()},blur:()=>{var e;return null==(e=E.value)?void 0:e.blur()},select:()=>{var e;null==(e=E.value)||e.select()},clear:ce,resizeTextarea:Y}),(e,t)=>(Fl(),Dl("div",{class:q([u.value,{[Ot(m).bm("group","append")]:e.$slots.append,[Ot(m).bm("group","prepend")]:e.$slots.prepend}]),style:V(I.value),onMouseenter:ie,onMouseleave:se},[Zl(" input "),"textarea"!==e.type?(Fl(),Dl(Rl,{key:0},[Zl(" prepend slot "),e.$slots.prepend?(Fl(),Dl("div",{key:0,class:q(Ot(m).be("group","prepend"))},[Ao(e.$slots,"prepend")],2)):Zl("v-if",!0),Kl("div",{ref_key:"wrapperRef",ref:T,class:q(c.value)},[Zl(" prefix slot "),e.$slots.prefix||e.prefixIcon?(Fl(),Dl("span",{key:0,class:q(Ot(m).e("prefix"))},[Kl("span",{class:q(Ot(m).e("prefix-inner"))},[Ao(e.$slots,"prefix"),e.prefixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.prefixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0),Kl("input",tr({id:Ot(f),ref_key:"input",ref:y,class:Ot(m).e("inner")},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,type:e.showPassword?_.value?"text":"password":e.type,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.ariaLabel,placeholder:e.placeholder,style:e.inputStyle,form:e.form,autofocus:e.autofocus,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:t[0]||(t[0]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[1]||(t[1]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[2]||(t[2]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onChange:te,onKeydown:ue}),null,16,wf),Zl(" suffix slot "),W.value?(Fl(),Dl("span",{key:1,class:q(Ot(m).e("suffix"))},[Kl("span",{class:q(Ot(m).e("suffix-inner"))},[$.value&&j.value&&D.value?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Ao(e.$slots,"suffix"),e.suffixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.suffixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],64)),$.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(m).e("icon"),Ot(m).e("clear")]),onMousedown:Ra(Ot(r),["prevent"]),onClick:ce},{default:pn(()=>[(Fl(),zl(_o(e.clearIcon)))]),_:1},8,["class","onMousedown"])):Zl("v-if",!0),j.value?(Fl(),zl(Ot(ip),{key:2,class:q([Ot(m).e("icon"),Ot(m).e("password")]),onClick:ae,onMousedown:Ra(Ot(r),["prevent"]),onMouseup:Ra(Ot(r),["prevent"])},{default:pn(()=>[(Fl(),zl(_o(N.value)))]),_:1},8,["class","onMousedown","onMouseup"])):Zl("v-if",!0),D.value?(Fl(),Dl("span",{key:3,class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},[Kl("span",{class:q(Ot(m).e("count-inner"))},Z(z.value)+" / "+Z(e.maxlength),3)],2)):Zl("v-if",!0),L.value&&P.value&&R.value?(Fl(),zl(Ot(ip),{key:4,class:q([Ot(m).e("icon"),Ot(m).e("validateIcon"),Ot(m).is("loading","validating"===L.value)])},{default:pn(()=>[(Fl(),zl(_o(P.value)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0)],2),Zl(" append slot "),e.$slots.append?(Fl(),Dl("div",{key:1,class:q(Ot(m).be("group","append"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)],64)):(Fl(),Dl(Rl,{key:1},[Zl(" textarea "),Kl("textarea",tr({id:Ot(f),ref_key:"textarea",ref:x,class:[Ot(b).e("inner"),Ot(m).is("focus",Ot(A))]},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,tabindex:e.tabindex,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,style:B.value,"aria-label":e.ariaLabel,placeholder:e.placeholder,form:e.form,autofocus:e.autofocus,rows:e.rows,role:e.containerRole,onCompositionstart:t[3]||(t[3]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[4]||(t[4]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[5]||(t[5]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onFocus:t[6]||(t[6]=(...e)=>Ot(O)&&Ot(O)(...e)),onBlur:t[7]||(t[7]=(...e)=>Ot(M)&&Ot(M)(...e)),onChange:te,onKeydown:ue}),null,16,xf),D.value?(Fl(),Dl("span",{key:0,style:V(S.value),class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},Z(z.value)+" / "+Z(e.maxlength),7)):Zl("v-if",!0)],64))],38))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]])),_f={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Sf=Symbol("scrollbarContextKey"),kf=Nd({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean});var Ef=Kd(Xn({__name:"thumb",props:kf,setup(e){const t=e,n=mn(Sf),o=Wa("scrollbar");n||xd("Thumb","can not inject scrollbar context");const l=St(),r=St(),a=St({}),s=St(!1);let i=!1,u=!1,c=0,d=0,p=ld?document.onselectstart:null;const f=yr(()=>_f[t.vertical?"vertical":"horizontal"]),v=yr(()=>(({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}))({size:t.size,move:t.move,bar:f.value})),h=yr(()=>l.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/r.value[f.value.offset]),m=e=>{var t;if(e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button))return;null==(t=window.getSelection())||t.removeAllRanges(),b(e);const n=e.currentTarget;n&&(a.value[f.value.axis]=n[f.value.offset]-(e[f.value.client]-n.getBoundingClientRect()[f.value.direction]))},g=e=>{if(!r.value||!l.value||!n.wrapElement)return;const t=100*(Math.abs(e.target.getBoundingClientRect()[f.value.direction]-e[f.value.client])-r.value[f.value.offset]/2)*h.value/l.value[f.value.offset];n.wrapElement[f.value.scroll]=t*n.wrapElement[f.value.scrollSize]/100},b=e=>{e.stopImmediatePropagation(),i=!0,c=n.wrapElement.scrollHeight,d=n.wrapElement.scrollWidth,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),p=document.onselectstart,document.onselectstart=()=>!1},y=e=>{if(!l.value||!r.value)return;if(!1===i)return;const t=a.value[f.value.axis];if(!t)return;const o=100*(-1*(l.value.getBoundingClientRect()[f.value.direction]-e[f.value.client])-(r.value[f.value.offset]-t))*h.value/l.value[f.value.offset];"scrollLeft"===f.value.scroll?n.wrapElement[f.value.scroll]=o*d/100:n.wrapElement[f.value.scroll]=o*c/100},w=()=>{i=!1,a.value[f.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),x(),u&&(s.value=!1)};vo(()=>{x(),document.removeEventListener("mouseup",w)});const x=()=>{document.onselectstart!==p&&(document.onselectstart=p)};return hd(Ft(n,"scrollbarElement"),"mousemove",()=>{u=!1,s.value=!!t.size}),hd(Ft(n,"scrollbarElement"),"mouseleave",()=>{u=!0,s.value=i}),(e,t)=>(Fl(),zl(Nr,{name:Ot(o).b("fade"),persisted:""},{default:pn(()=>[fn(Kl("div",{ref_key:"instance",ref:l,class:q([Ot(o).e("bar"),Ot(o).is(f.value.key)]),onMousedown:g,onClick:t[0]||(t[0]=Ra(()=>{},["stop"]))},[Kl("div",{ref_key:"thumb",ref:r,class:q(Ot(o).e("thumb")),style:V(v.value),onMousedown:m},null,38)],34),[[Xr,e.always||s.value]])]),_:1},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]),Tf=Kd(Xn({__name:"bar",props:Nd({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),setup(e,{expose:t}){const n=e,o=mn(Sf),l=St(0),r=St(0),a=St(""),s=St(""),i=St(1),u=St(1);return t({handleScroll:e=>{if(e){const t=e.offsetHeight-4,n=e.offsetWidth-4;r.value=100*e.scrollTop/t*i.value,l.value=100*e.scrollLeft/n*u.value}},update:()=>{const e=null==o?void 0:o.wrapElement;if(!e)return;const t=e.offsetHeight-4,l=e.offsetWidth-4,r=t**2/e.scrollHeight,c=l**2/e.scrollWidth,d=Math.max(r,n.minSize),p=Math.max(c,n.minSize);i.value=r/(t-r)/(d/(t-d)),u.value=c/(l-c)/(p/(l-p)),s.value=d+4(Fl(),Dl(Rl,null,[Gl(Ef,{move:l.value,ratio:u.value,size:a.value,always:e.always},null,8,["move","ratio","size","always"]),Gl(Ef,{move:r.value,ratio:i.value,size:s.value,vertical:"",always:e.always},null,8,["move","ratio","size","always"])],64))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const Af=Nd({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:[String,Object,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Qp(["ariaLabel","ariaOrientation"])}),Of=["tabindex"],Mf=Gd(Kd(Xn({name:"ElScrollbar",__name:"scrollbar",props:Af,emits:{"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Jc)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=Wa("scrollbar");let a,s,i,u=0,c=0,d="";const p={bottom:!1,top:!1,right:!1,left:!1},f=St(),v=St(),h=St(),m=St(),g=yr(()=>{const e={},t=ap(o.height),n=ap(o.maxHeight);return t&&(e.height=t),n&&(e.maxHeight=n),[o.wrapStyle,e]}),b=yr(()=>[o.wrapClass,r.e("wrap"),{[r.em("wrap","hidden-default")]:!o.native}]),y=yr(()=>[r.e("view"),o.viewClass]),x={top:"bottom",bottom:"top",left:"right",right:"left"},C=()=>{var e;if(v.value){null==(e=m.value)||e.handleScroll(v.value);const t=u,n=c;u=v.value.scrollTop,c=v.value.scrollLeft;const r={bottom:u+v.value.clientHeight>=v.value.scrollHeight-o.distance,top:u<=o.distance&&0!==t,right:c+v.value.clientWidth>=v.value.scrollWidth-o.distance&&n!==c,left:c<=o.distance&&0!==n};if(l("scroll",{scrollTop:u,scrollLeft:c}),t!==u&&(d=u>t?"bottom":"top"),n!==c&&(d=c>n?"right":"left"),o.distance>0){if((e=>{var t;return null!=(t=p[e])&&t})(d))return;(e=>{const t=x[d];if(!t)return;const n=e[d],o=e[t];n&&!p[d]&&(p[d]=!0),!o&&p[t]&&(p[t]=!1)})(r)}r[d]&&l("end-reached",d)}},_=()=>{var e;null==(e=m.value)||e.update(),p[d]=!1};return wn(()=>o.noresize,e=>{e?(null==a||a(),null==s||s(),null==i||i()):(({stop:a}=bd(h,_)),({stop:s}=bd(v,_)),i=hd("resize",_))},{immediate:!0}),wn(()=>[o.maxHeight,o.height],()=>{o.native||tn(()=>{var e;_(),v.value&&(null==(e=m.value)||e.handleScroll(v.value))})}),hn(Sf,pt({scrollbarElement:f,wrapElement:v})),oo(()=>{v.value&&(v.value.scrollTop=u,v.value.scrollLeft=c)}),co(()=>{o.native||tn(()=>{_()})}),fo(()=>_()),t({wrapRef:v,update:_,scrollTo:function(e,t){w(e)?v.value.scrollTo(e):Jc(e)&&Jc(t)&&v.value.scrollTo(e,t)},setScrollTop:e=>{Jc(e)&&(v.value.scrollTop=e)},setScrollLeft:e=>{Jc(e)&&(v.value.scrollLeft=e)},handleScroll:C}),(e,t)=>(Fl(),Dl("div",{ref_key:"scrollbarRef",ref:f,class:q(Ot(r).b())},[Kl("div",{ref_key:"wrapRef",ref:v,class:q(b.value),style:V(g.value),tabindex:e.tabindex,onScroll:C},[(Fl(),zl(_o(e.tag),{id:e.id,ref_key:"resizeRef",ref:h,class:q(y.value),style:V(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,Of),e.native?Zl("v-if",!0):(Fl(),zl(Tf,{key:0,ref_key:"barRef",ref:m,always:e.always,"min-size":e.minSize},null,8,["always","min-size"]))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]])),Rf=Symbol("popper"),Lf=Symbol("popperContent"),Pf=Nd({role:{type:String,values:["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],default:"tooltip"}});var Nf=Kd(Xn({name:"ElPopper",inheritAttrs:!1,__name:"popper",props:Pf,setup(e,{expose:t}){const n=e,o={triggerRef:St(),popperInstanceRef:St(),contentRef:St(),referenceRef:St(),role:yr(()=>n.role)};return t(o),hn(Rf,o),(e,t)=>Ao(e.$slots,"default")}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]),If=Kd(Xn({name:"ElPopperArrow",inheritAttrs:!1,__name:"arrow",setup(e,{expose:t}){const n=Wa("popper"),{arrowRef:o,arrowStyle:l}=mn(Lf,void 0);return vo(()=>{o.value=void 0}),t({arrowRef:o}),(e,t)=>(Fl(),Dl("span",{ref_key:"arrowRef",ref:o,class:q(Ot(n).e("arrow")),style:V(Ot(l)),"data-popper-arrow":""},null,6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Bf=Nd({virtualRef:{type:Object},virtualTriggering:Boolean,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},onBlur:{type:Function},onContextmenu:{type:Function},id:String,open:Boolean}),Ff=Symbol("elForwardRef"),$f=Xn({name:"ElOnlyChild",setup(e,{slots:t,attrs:n}){var o;const l=mn(Ff),a=(s=null!=(o=null==l?void 0:l.setForwardRef)?o:r,{mounted(e){s(e)},updated(e){s(e)},unmounted(){s(null)}});var s;return()=>{var e;const o=null==(e=t.default)?void 0:e.call(t,n);if(!o)return null;const[l,r]=jf(o);return l?fn(Yl(l,n),[[a]]):null}}});function jf(e){if(!e)return[null,0];const t=e,n=t.filter(e=>e.type!==Pl).length;for(const o of t){if(w(o))switch(o.type){case Pl:continue;case Ll:case"svg":return[Vf(o),n];case Rl:return jf(o.children);default:return[o,n]}return[Vf(o),n]}return[null,0]}function Vf(e){const t=Wa("only-child");return Gl("span",{class:t.e("content")},[e])}var Df=Kd(Xn({name:"ElPopperTrigger",inheritAttrs:!1,__name:"trigger",props:Bf,setup(e,{expose:t}){const n=e,{role:o,triggerRef:l}=mn(Rf,void 0);var r;r=l,hn(Ff,{setForwardRef:e=>{r.value=e}});const a=yr(()=>i.value?n.id:void 0),s=yr(()=>{if(o&&"tooltip"===o.value)return n.open&&n.id?n.id:void 0}),i=yr(()=>{if(o&&"tooltip"!==o.value)return o.value}),u=yr(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return co(()=>{wn(()=>n.virtualRef,e=>{e&&(l.value=pd(e))},{immediate:!0}),wn(l,(e,t)=>{null==c||c(),c=void 0,Qc(t)&&d.forEach(e=>{const o=n[e];o&&t.removeEventListener(e.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(e))}),Qc(e)&&(d.forEach(t=>{const o=n[t];o&&e.addEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),gf(e)&&(c=wn([a,s,i,u],t=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((n,o)=>{Vc(t[o])?e.removeAttribute(n):e.setAttribute(n,t[o])})},{immediate:!0}))),Qc(t)&&gf(t)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(e=>t.removeAttribute(e))},{immediate:!0})}),vo(()=>{if(null==c||c(),c=void 0,l.value&&Qc(l.value)){const e=l.value;d.forEach(t=>{const o=n[t];o&&e.removeEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),l.value=void 0}}),t({triggerRef:l}),(e,t)=>e.virtualTriggering?Zl("v-if",!0):(Fl(),zl(Ot($f),tr({key:0},e.$attrs,{"aria-controls":a.value,"aria-describedby":s.value,"aria-expanded":u.value,"aria-haspopup":i.value}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const zf="focus-trap.focus-after-trapped",Hf="focus-trap.focus-after-released",Wf={cancelable:!0,bubbles:!1},qf={cancelable:!0,bubbles:!1},Uf="focusAfterTrapped",Kf="focusAfterReleased",Gf=Symbol("elFocusTrap"),Yf=St(),Xf=St(0),Zf=St(0);let Jf=0;const Qf=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0||e===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},ev=(e,t)=>{for(const n of e)if(!tv(n,t))return n},tv=(e,t)=>{if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1},nv=(e,t)=>{if(e){const n=document.activeElement;yf(e,{preventScroll:!0}),Zf.value=window.performance.now(),e!==n&&(e=>e instanceof HTMLInputElement&&"select"in e)(e)&&t&&e.select()}};function ov(e,t){const n=[...e],o=e.indexOf(t);return-1!==o&&n.splice(o,1),n}const lv=(()=>{let e=[];return{push:t=>{const n=e[0];n&&t!==n&&n.pause(),e=ov(e,t),e.unshift(t)},remove:t=>{var n,o;e=ov(e,t),null==(o=null==(n=e[0])?void 0:n.resume)||o.call(n)}}})(),rv=()=>{Yf.value="pointer",Xf.value=window.performance.now()},av=()=>{Yf.value="keyboard",Xf.value=window.performance.now()},sv=e=>new CustomEvent("focus-trap.focusout-prevented",{...qf,detail:e}),iv={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},uv=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const l=null==e?void 0:e(o);if(!1===n||!l)return null==t?void 0:t(o)},cv=e=>{if(e.code&&"Unidentified"!==e.code)return e.code;const t=dv(e);return t?Object.values(iv).includes(t)?t:" "===t?iv.space:"":""},dv=e=>{let t=e.key&&"Unidentified"!==e.key?e.key:"";if(!t&&"keyup"===e.type&&ld&&/android/i.test(window.navigator.userAgent)){const n=e.target;t=n.value.charAt(n.selectionStart-1)}return t};let pv=[];const fv=e=>{cv(e)===iv.esc&&pv.forEach(t=>t(e))};var vv=Kd(Xn({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Uf,Kf,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=St();let o,l;const{focusReason:r}=(co(()=>{0===Jf&&(document.addEventListener("mousedown",rv),document.addEventListener("touchstart",rv),document.addEventListener("keydown",av)),Jf++}),vo(()=>{Jf--,Jf<=0&&(document.removeEventListener("mousedown",rv),document.removeEventListener("touchstart",rv),document.removeEventListener("keydown",av))}),{focusReason:Yf,lastUserFocusTimestamp:Xf,lastAutomatedFocusTimestamp:Zf});var a;a=n=>{e.trapped&&!s.paused&&t("release-requested",n)},co(()=>{0===pv.length&&document.addEventListener("keydown",fv),ld&&pv.push(a)}),vo(()=>{pv=pv.filter(e=>e!==a),0===pv.length&&ld&&document.removeEventListener("keydown",fv)});const s={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=n=>{if(!e.loop&&!e.trapped)return;if(s.paused)return;const{altKey:o,ctrlKey:l,metaKey:a,currentTarget:i,shiftKey:u}=n,{loop:c}=e,d=cv(n)===iv.tab&&!o&&!l&&!a,p=document.activeElement;if(d&&p){const e=i,[o,l]=(e=>{const t=Qf(e);return[ev(t,e),ev(t.reverse(),e)]})(e);if(o&&l)if(u||p!==l){if(u&&[o,e].includes(p)){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(l,!0))}}else{const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(o,!0))}else if(p===e){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||n.preventDefault()}}};hn(Gf,{focusTrapRef:n,onKeydown:i}),wn(()=>e.focusTrapEl,e=>{e&&(n.value=e)},{immediate:!0}),wn([n],([e],[t])=>{e&&(e.addEventListener("keydown",i),e.addEventListener("focusin",d),e.addEventListener("focusout",p)),t&&(t.removeEventListener("keydown",i),t.removeEventListener("focusin",d),t.removeEventListener("focusout",p))});const u=e=>{t(Uf,e)},c=e=>t(Kf,e),d=r=>{const a=Ot(n);if(!a)return;const i=r.target,u=r.relatedTarget,c=i&&a.contains(i);e.trapped||u&&a.contains(u)||(o=u),c&&t("focusin",r),s.paused||e.trapped&&(c?l=i:nv(l,!0))},p=o=>{const a=Ot(n);if(!s.paused&&a)if(e.trapped){const n=o.relatedTarget;Vc(n)||a.contains(n)||setTimeout(()=>{if(!s.paused&&e.trapped){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||nv(l,!0)}},0)}else{const e=o.target;e&&a.contains(e)||t("focusout",o)}};async function f(){await tn();const t=Ot(n);if(t){lv.push(s);const n=t.contains(document.activeElement)?o:document.activeElement;if(o=n,!t.contains(n)){const o=new Event(zf,Wf);t.addEventListener(zf,u),t.dispatchEvent(o),o.defaultPrevented||tn(()=>{let o=e.focusStartEl;b(o)||(nv(o),document.activeElement!==o&&(o="first")),"first"===o&&((e,t=!1)=>{const n=document.activeElement;for(const o of e)if(nv(o,t),document.activeElement!==n)return})(Qf(t),!0),document.activeElement!==n&&"container"!==o||nv(t)})}}}function v(){const e=Ot(n);if(e){e.removeEventListener(zf,u);const t=new CustomEvent(Hf,{...Wf,detail:{focusReason:r.value}});e.addEventListener(Hf,c),e.dispatchEvent(t),t.defaultPrevented||"keyboard"!=r.value&&Xf.value>Zf.value&&!e.contains(document.activeElement)||nv(null!=o?o:document.body),e.removeEventListener(Hf,c),lv.remove(s),o=null,l=null}}return co(()=>{e.trapped&&f(),wn(()=>e.trapped,e=>{e?f():v()})}),vo(()=>{e.trapped&&v(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",p),n.value=void 0),o=null,l=null}),{onKeydown:i}}}),[["render",function(e,t,n,o,l,r){return Ao(e.$slots,"default",{handleKeydown:e.onKeydown})}],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]),hv="top",mv="bottom",gv="right",bv="left",yv="auto",wv=[hv,mv,gv,bv],xv="start",Cv="end",_v="viewport",Sv="popper",kv=wv.reduce(function(e,t){return e.concat([t+"-"+xv,t+"-"+Cv])},[]),Ev=[].concat(wv,[yv]).reduce(function(e,t){return e.concat([t,t+"-"+xv,t+"-"+Cv])},[]),Tv=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Av(e){return e?(e.nodeName||"").toLowerCase():null}function Ov(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Mv(e){return e instanceof Ov(e).Element||e instanceof Element}function Rv(e){return e instanceof Ov(e).HTMLElement||e instanceof HTMLElement}function Lv(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Ov(e).ShadowRoot||e instanceof ShadowRoot)}var Pv={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},l=t.elements[e];!Rv(l)||!Av(l)||(Object.assign(l.style,n),Object.keys(o).forEach(function(e){var t=o[e];!1===t?l.removeAttribute(e):l.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var o=t.elements[e],l=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});!Rv(o)||!Av(o)||(Object.assign(o.style,r),Object.keys(l).forEach(function(e){o.removeAttribute(e)}))})}},requires:["computeStyles"]};function Nv(e){return e.split("-")[0]}var Iv=Math.max,Bv=Math.min,Fv=Math.round;function $v(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,l=1;if(Rv(e)&&t){var r=e.offsetHeight,a=e.offsetWidth;a>0&&(o=Fv(n.width)/a||1),r>0&&(l=Fv(n.height)/r||1)}return{width:n.width/o,height:n.height/l,top:n.top/l,right:n.right/o,bottom:n.bottom/l,left:n.left/o,x:n.left/o,y:n.top/l}}function jv(e){var t=$v(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function Vv(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Lv(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Dv(e){return Ov(e).getComputedStyle(e)}function zv(e){return["table","td","th"].indexOf(Av(e))>=0}function Hv(e){return((Mv(e)?e.ownerDocument:e.document)||window.document).documentElement}function Wv(e){return"html"===Av(e)?e:e.assignedSlot||e.parentNode||(Lv(e)?e.host:null)||Hv(e)}function qv(e){return Rv(e)&&"fixed"!==Dv(e).position?e.offsetParent:null}function Uv(e){for(var t=Ov(e),n=qv(e);n&&zv(n)&&"static"===Dv(n).position;)n=qv(n);return n&&("html"===Av(n)||"body"===Av(n)&&"static"===Dv(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Rv(e)&&"fixed"===Dv(e).position)return null;var n=Wv(e);for(Lv(n)&&(n=n.host);Rv(n)&&["html","body"].indexOf(Av(n))<0;){var o=Dv(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function Kv(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Gv(e,t,n){return Iv(e,Bv(t,n))}function Yv(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Xv(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Zv={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,l=e.options,r=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Nv(n.placement),i=Kv(s),u=[bv,gv].indexOf(s)>=0?"height":"width";if(r&&a){var c=function(e,t){return Yv("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Xv(e,wv))}(l.padding,n),d=jv(r),p="y"===i?hv:bv,f="y"===i?mv:gv,v=n.rects.reference[u]+n.rects.reference[i]-a[i]-n.rects.popper[u],h=a[i]-n.rects.reference[i],m=Uv(r),g=m?"y"===i?m.clientHeight||0:m.clientWidth||0:0,b=v/2-h/2,y=c[p],w=g-d[u]-c[f],x=g/2-d[u]/2+b,C=Gv(y,x,w),_=i;n.modifiersData[o]=((t={})[_]=C,t.centerOffset=C-x,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"==typeof o&&!(o=t.elements.popper.querySelector(o))||!Vv(t.elements.popper,o)||(t.elements.arrow=o))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Jv(e){return e.split("-")[1]}var Qv={top:"auto",right:"auto",bottom:"auto",left:"auto"};function eh(e){var t,n=e.popper,o=e.popperRect,l=e.placement,r=e.variation,a=e.offsets,s=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=a.x,f=void 0===p?0:p,v=a.y,h=void 0===v?0:v,m="function"==typeof c?c({x:f,y:h}):{x:f,y:h};f=m.x,h=m.y;var g=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=bv,w=hv,x=window;if(u){var C=Uv(n),_="clientHeight",S="clientWidth";C===Ov(n)&&"static"!==Dv(C=Hv(n)).position&&"absolute"===s&&(_="scrollHeight",S="scrollWidth"),(l===hv||(l===bv||l===gv)&&r===Cv)&&(w=mv,h-=(d&&C===x&&x.visualViewport?x.visualViewport.height:C[_])-o.height,h*=i?1:-1),l!==bv&&(l!==hv&&l!==mv||r!==Cv)||(y=gv,f-=(d&&C===x&&x.visualViewport?x.visualViewport.width:C[S])-o.width,f*=i?1:-1)}var k,E=Object.assign({position:s},u&&Qv),T=!0===c?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:Fv(t*o)/o||0,y:Fv(n*o)/o||0}}({x:f,y:h}):{x:f,y:h};return f=T.x,h=T.y,i?Object.assign({},E,((k={})[w]=b?"0":"",k[y]=g?"0":"",k.transform=(x.devicePixelRatio||1)<=1?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",k)):Object.assign({},E,((t={})[w]=b?h+"px":"",t[y]=g?f+"px":"",t.transform="",t))}var th={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,l=void 0===o||o,r=n.adaptive,a=void 0===r||r,s=n.roundOffsets,i=void 0===s||s,u={placement:Nv(t.placement),variation:Jv(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:l,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,eh(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:i})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,eh(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},nh={passive:!0},oh={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,l=o.scroll,r=void 0===l||l,a=o.resize,s=void 0===a||a,i=Ov(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&u.forEach(function(e){e.addEventListener("scroll",n.update,nh)}),s&&i.addEventListener("resize",n.update,nh),function(){r&&u.forEach(function(e){e.removeEventListener("scroll",n.update,nh)}),s&&i.removeEventListener("resize",n.update,nh)}},data:{}},lh={left:"right",right:"left",bottom:"top",top:"bottom"};function rh(e){return e.replace(/left|right|bottom|top/g,function(e){return lh[e]})}var ah={start:"end",end:"start"};function sh(e){return e.replace(/start|end/g,function(e){return ah[e]})}function ih(e){var t=Ov(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function uh(e){return $v(Hv(e)).left+ih(e).scrollLeft}function ch(e){var t=Dv(e),n=t.overflow,o=t.overflowX,l=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+l+o)}function dh(e){return["html","body","#document"].indexOf(Av(e))>=0?e.ownerDocument.body:Rv(e)&&ch(e)?e:dh(Wv(e))}function ph(e,t){var n;void 0===t&&(t=[]);var o=dh(e),l=o===(null==(n=e.ownerDocument)?void 0:n.body),r=Ov(o),a=l?[r].concat(r.visualViewport||[],ch(o)?o:[]):o,s=t.concat(a);return l?s:s.concat(ph(Wv(a)))}function fh(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function vh(e,t){return t===_v?fh(function(e){var t=Ov(e),n=Hv(e),o=t.visualViewport,l=n.clientWidth,r=n.clientHeight,a=0,s=0;return o&&(l=o.width,r=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=o.offsetLeft,s=o.offsetTop)),{width:l,height:r,x:a+uh(e),y:s}}(e)):Mv(t)?function(e){var t=$v(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):fh(function(e){var t,n=Hv(e),o=ih(e),l=null==(t=e.ownerDocument)?void 0:t.body,r=Iv(n.scrollWidth,n.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),a=Iv(n.scrollHeight,n.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),s=-o.scrollLeft+uh(e),i=-o.scrollTop;return"rtl"===Dv(l||n).direction&&(s+=Iv(n.clientWidth,l?l.clientWidth:0)-r),{width:r,height:a,x:s,y:i}}(Hv(e)))}function hh(e,t,n){var o="clippingParents"===t?function(e){var t=ph(Wv(e)),n=["absolute","fixed"].indexOf(Dv(e).position)>=0&&Rv(e)?Uv(e):e;return Mv(n)?t.filter(function(e){return Mv(e)&&Vv(e,n)&&"body"!==Av(e)}):[]}(e):[].concat(t),l=[].concat(o,[n]),r=l[0],a=l.reduce(function(t,n){var o=vh(e,n);return t.top=Iv(o.top,t.top),t.right=Bv(o.right,t.right),t.bottom=Bv(o.bottom,t.bottom),t.left=Iv(o.left,t.left),t},vh(e,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mh(e){var t,n=e.reference,o=e.element,l=e.placement,r=l?Nv(l):null,a=l?Jv(l):null,s=n.x+n.width/2-o.width/2,i=n.y+n.height/2-o.height/2;switch(r){case hv:t={x:s,y:n.y-o.height};break;case mv:t={x:s,y:n.y+n.height};break;case gv:t={x:n.x+n.width,y:i};break;case bv:t={x:n.x-o.width,y:i};break;default:t={x:n.x,y:n.y}}var u=r?Kv(r):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case xv:t[u]=t[u]-(n[c]/2-o[c]/2);break;case Cv:t[u]=t[u]+(n[c]/2-o[c]/2)}}return t}function gh(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=void 0===o?e.placement:o,r=n.boundary,a=void 0===r?"clippingParents":r,s=n.rootBoundary,i=void 0===s?_v:s,u=n.elementContext,c=void 0===u?Sv:u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,v=void 0===f?0:f,h=Yv("number"!=typeof v?v:Xv(v,wv)),m=c===Sv?"reference":Sv,g=e.rects.popper,b=e.elements[p?m:c],y=hh(Mv(b)?b:b.contextElement||Hv(e.elements.popper),a,i),w=$v(e.elements.reference),x=mh({reference:w,element:g,placement:l}),C=fh(Object.assign({},g,x)),_=c===Sv?C:w,S={top:y.top-_.top+h.top,bottom:_.bottom-y.bottom+h.bottom,left:y.left-_.left+h.left,right:_.right-y.right+h.right},k=e.modifiersData.offset;if(c===Sv&&k){var E=k[l];Object.keys(S).forEach(function(e){var t=[gv,mv].indexOf(e)>=0?1:-1,n=[hv,mv].indexOf(e)>=0?"y":"x";S[e]+=E[n]*t})}return S}var bh={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0===a||a,i=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,v=void 0===f||f,h=n.allowedAutoPlacements,m=t.options.placement,g=Nv(m),b=i||(g!==m&&v?function(e){if(Nv(e)===yv)return[];var t=rh(e);return[sh(e),t,sh(t)]}(m):[rh(m)]),y=[m].concat(b).reduce(function(e,n){return e.concat(Nv(n)===yv?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=n.boundary,r=n.rootBoundary,a=n.padding,s=n.flipVariations,i=n.allowedAutoPlacements,u=void 0===i?Ev:i,c=Jv(o),d=c?s?kv:kv.filter(function(e){return Jv(e)===c}):wv,p=d.filter(function(e){return u.indexOf(e)>=0});0===p.length&&(p=d);var f=p.reduce(function(t,n){return t[n]=gh(e,{placement:n,boundary:l,rootBoundary:r,padding:a})[Nv(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:h}):n)},[]),w=t.rects.reference,x=t.rects.popper,C=new Map,_=!0,S=y[0],k=0;k=0,M=O?"width":"height",R=gh(t,{placement:E,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),L=O?A?gv:bv:A?mv:hv;w[M]>x[M]&&(L=rh(L));var P=rh(L),N=[];if(r&&N.push(R[T]<=0),s&&N.push(R[L]<=0,R[P]<=0),N.every(function(e){return e})){S=E,_=!1;break}C.set(E,N)}if(_)for(var I=function(e){var t=y.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return S=t,"break"},B=v?3:1;B>0&&"break"!==I(B);B--);t.placement!==S&&(t.modifiersData[o]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function yh(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function wh(e){return[hv,gv,mv,bv].some(function(t){return e[t]>=0})}var xh={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,l=t.rects.popper,r=t.modifiersData.preventOverflow,a=gh(t,{elementContext:"reference"}),s=gh(t,{altBoundary:!0}),i=yh(a,o),u=yh(s,l,r),c=wh(i),d=wh(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}},Ch={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.offset,r=void 0===l?[0,0]:l,a=Ev.reduce(function(e,n){return e[n]=function(e,t,n){var o=Nv(e),l=[bv,hv].indexOf(o)>=0?-1:1,r="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=r[0],s=r[1];return a=a||0,s=(s||0)*l,[bv,gv].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,r),e},{}),s=a[t.placement],i=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=a}},_h={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=mh({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}},Sh={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0!==a&&a,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,v=n.tetherOffset,h=void 0===v?0:v,m=gh(t,{boundary:i,rootBoundary:u,padding:d,altBoundary:c}),g=Nv(t.placement),b=Jv(t.placement),y=!b,w=Kv(g),x=function(e){return"x"===e?"y":"x"}(w),C=t.modifiersData.popperOffsets,_=t.rects.reference,S=t.rects.popper,k="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,E="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(C){if(r){var O,M="y"===w?hv:bv,R="y"===w?mv:gv,L="y"===w?"height":"width",P=C[w],N=P+m[M],I=P-m[R],B=f?-S[L]/2:0,F=b===xv?_[L]:S[L],$=b===xv?-S[L]:-_[L],j=t.elements.arrow,V=f&&j?jv(j):{width:0,height:0},D=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=D[M],H=D[R],W=Gv(0,_[L],V[L]),q=y?_[L]/2-B-W-z-E.mainAxis:F-W-z-E.mainAxis,U=y?-_[L]/2+B+W+H+E.mainAxis:$+W+H+E.mainAxis,K=t.elements.arrow&&Uv(t.elements.arrow),G=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Y=null!=(O=null==T?void 0:T[w])?O:0,X=P+U-Y,Z=Gv(f?Bv(N,P+q-Y-G):N,P,f?Iv(I,X):I);C[w]=Z,A[w]=Z-P}if(s){var J,Q="x"===w?hv:bv,ee="x"===w?mv:gv,te=C[x],ne="y"===x?"height":"width",oe=te+m[Q],le=te-m[ee],re=-1!==[hv,bv].indexOf(g),ae=null!=(J=null==T?void 0:T[x])?J:0,se=re?oe:te-_[ne]-S[ne]-ae+E.altAxis,ie=re?te+_[ne]+S[ne]-ae-E.altAxis:le,ue=f&&re?function(e,t,n){var o=Gv(e,t,n);return o>n?n:o}(se,te,ie):Gv(f?se:oe,te,f?ie:le);C[x]=ue,A[x]=ue-te}t.modifiersData[o]=A}},requiresIfExists:["offset"]};function kh(e,t,n){void 0===n&&(n=!1);var o=Rv(t),l=Rv(t)&&function(e){var t=e.getBoundingClientRect(),n=Fv(t.width)/e.offsetWidth||1,o=Fv(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),r=Hv(t),a=$v(e,l),s={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(o||!o&&!n)&&(("body"!==Av(t)||ch(r))&&(s=function(e){return e!==Ov(e)&&Rv(e)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(e):ih(e)}(t)),Rv(t)?((i=$v(t,!0)).x+=t.clientLeft,i.y+=t.clientTop):r&&(i.x=uh(r))),{x:a.left+s.scrollLeft-i.x,y:a.top+s.scrollTop-i.y,width:a.width,height:a.height}}function Eh(e){var t=new Map,n=new Set,o=[];function l(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var o=t.get(e);o&&l(o)}}),o.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||l(e)}),o}function Th(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}var Ah={placement:"bottom",modifiers:[],strategy:"absolute"};function Oh(){for(var e=arguments.length,t=new Array(e),n=0;n({})},strategy:{type:String,values:["fixed","absolute"],default:"absolute"}}),Nh=Nd({...Ph,...Lh,id:String,style:{type:[String,Array,Object]},className:{type:[String,Array,Object]},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:[String,Array,Object]},popperStyle:{type:[String,Array,Object]},referenceEl:{type:Object},triggerTargetEl:{type:Object},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Qp(["ariaLabel"]),loop:Boolean}),Ih=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:l}=e,r={placement:n,strategy:o,...l,modifiers:[...Bh(e),...t]};return function(e,t){t&&(e.modifiers=[...e.modifiers,...null!=t?t:[]])}(r,null==l?void 0:l.modifiers),r};function Bh(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,null!=t?t:12]}},{name:"preventOverflow",options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}const Fh=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:e})=>{const t=function(e){const t=Object.keys(e.elements),n=Fc(t.map(t=>[t,e.styles[t]||{}])),o=Fc(t.map(t=>[t,e.attributes[t]]));return{styles:n,attributes:o}}(e);Object.assign(a.value,t)},requires:["computeStyles"]},l=yr(()=>{const{onFirstUpdate:e,placement:t,strategy:l,modifiers:r}=Ot(n);return{onFirstUpdate:e,placement:t||"bottom",strategy:l||"absolute",modifiers:[...r||[],o,{name:"applyStyles",enabled:!1}]}}),r=kt(),a=St({styles:{popper:{position:Ot(l).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{r.value&&(r.value.destroy(),r.value=void 0)};return wn(l,e=>{const t=Ot(r);t&&t.setOptions(e)},{deep:!0}),wn([e,t],([e,t])=>{s(),e&&t&&(r.value=Rh(e,t,Ot(l)))}),vo(()=>{s()}),{state:yr(()=>{var e;return{...(null==(e=Ot(r))?void 0:e.state)||{}}}),styles:yr(()=>Ot(a).styles),attributes:yr(()=>Ot(a).attributes),update:()=>{var e;return null==(e=Ot(r))?void 0:e.update()},forceUpdate:()=>{var e;return null==(e=Ot(r))?void 0:e.forceUpdate()},instanceRef:yr(()=>Ot(r))}},$h=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:l}=mn(Rf,void 0),r=St(),a=yr(()=>e.arrowOffset),s=yr(()=>({name:"eventListeners",enabled:!!e.visible})),i=yr(()=>{var e;const t=Ot(r),n=null!=(e=Ot(a))?e:0;return{name:"arrow",enabled:(o=t,!(void 0===o)),options:{element:t,padding:n}};var o}),u=yr(()=>({onFirstUpdate:()=>{v()},...Ih(e,[Ot(i),Ot(s)])})),c=yr(()=>(e=>{if(ld)return pd(e)})(e.referenceEl)||Ot(o)),{attributes:d,state:p,styles:f,update:v,forceUpdate:h,instanceRef:m}=Fh(c,n,u);return wn(m,e=>t.value=e,{flush:"sync"}),co(()=>{wn(()=>{var e,t;return null==(t=null==(e=Ot(c))?void 0:e.getBoundingClientRect)?void 0:t.call(e)},()=>{v()})}),vo(()=>{t.value=void 0}),{attributes:d,arrowRef:r,contentRef:n,instanceRef:m,state:p,styles:f,role:l,forceUpdate:h,update:v}};var jh=Kd(Xn({name:"ElPopperContent",__name:"content",props:Nh,emits:{mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},setup(e,{expose:t,emit:n}){const o=n,l=e,{focusStartRef:a,trapped:s,onFocusAfterReleased:i,onFocusAfterTrapped:u,onFocusInTrap:c,onFocusoutPrevented:d,onReleaseRequested:p}=((e,t)=>{const n=St(!1),o=St();return vo(()=>{o.value=void 0}),{focusStartRef:o,trapped:n,onFocusAfterReleased:e=>{var n;"pointer"!==(null==(n=e.detail)?void 0:n.focusReason)&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:t=>{e.visible&&!n.value&&(t.target&&(o.value=t.target),n.value=!0)},onFocusoutPrevented:t=>{e.trapping||("pointer"===t.detail.focusReason&&t.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}})(l,o),{attributes:f,arrowRef:v,contentRef:h,styles:m,instanceRef:g,role:b,update:y}=$h(l),{ariaModal:w,arrowStyle:x,contentAttrs:C,contentClass:_,contentStyle:S,updateZIndex:k}=((e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:l}=Ed(),r=Wa("popper"),a=yr(()=>Ot(t).popper),s=St(Jc(e.zIndex)?e.zIndex:l()),i=yr(()=>[r.b(),r.is("pure",e.pure),r.is(e.effect),e.popperClass]),u=yr(()=>[{zIndex:Ot(s)},Ot(n).popper,e.popperStyle||{}]);return{ariaModal:yr(()=>"dialog"===o.value?"false":void 0),arrowStyle:yr(()=>Ot(n).arrow||{}),contentAttrs:a,contentClass:i,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=Jc(e.zIndex)?e.zIndex:l()}}})(l,{styles:m,attributes:f,role:b}),E=mn(cf,void 0);let T;hn(Lf,{arrowStyle:x,arrowRef:v}),E&&hn(cf,{...E,addInputId:r,removeInputId:r});const A=(e=!0)=>{y(),e&&k()},O=()=>{A(!1),l.visible&&l.focusOnShow?s.value=!0:!1===l.visible&&(s.value=!1)};return co(()=>{wn(()=>l.triggerTargetEl,(e,t)=>{null==T||T(),T=void 0;const n=Ot(e||h.value),o=Ot(t||h.value);Qc(n)&&(T=wn([b,()=>l.ariaLabel,w,()=>l.id],e=>{["role","aria-label","aria-modal","id"].forEach((t,o)=>{Vc(e[o])?n.removeAttribute(t):n.setAttribute(t,e[o])})},{immediate:!0})),o!==n&&Qc(o)&&["role","aria-label","aria-modal","id"].forEach(e=>{o.removeAttribute(e)})},{immediate:!0}),wn(()=>l.visible,O,{immediate:!0})}),vo(()=>{null==T||T(),T=void 0,h.value=void 0}),t({popperContentRef:h,popperInstanceRef:g,updatePopper:A,contentStyle:S}),(e,t)=>(Fl(),Dl("div",tr({ref_key:"contentRef",ref:h},Ot(C),{style:Ot(S),class:Ot(_),tabindex:"-1",onMouseenter:t[0]||(t[0]=t=>e.$emit("mouseenter",t)),onMouseleave:t[1]||(t[1]=t=>e.$emit("mouseleave",t))}),[Gl(Ot(vv),{loop:e.loop,trapped:Ot(s),"trap-on-focus-in":!0,"focus-trap-el":Ot(h),"focus-start-el":Ot(a),onFocusAfterTrapped:Ot(u),onFocusAfterReleased:Ot(i),onFocusin:Ot(c),onFocusoutPrevented:Ot(d),onReleaseRequested:Ot(p)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["loop","trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const Vh=Gd(Nf),Dh=Symbol("elTooltip");function zh(){let e;const t=()=>window.clearTimeout(e);return nd(()=>t()),{registerTimeout:(n,o)=>{t(),e=window.setTimeout(n,o)},cancelTimeout:t}}const Hh=Nd({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),Wh=Nd({...Hh,...Nh,appendTo:{type:Ud.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:Boolean,default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Qp(["ariaLabel"])}),qh=Nd({...Bf,disabled:Boolean,trigger:{type:[String,Array],default:"hover"},triggerKeys:{type:Array,default:()=>[iv.enter,iv.numpadEnter,iv.space]},focusOnTarget:Boolean}),Uh=Pd({type:Boolean,default:null}),Kh=Pd({type:Function}),{useModelToggleProps:Gh,useModelToggleEmits:Yh,useModelToggle:Xh}=(e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t];return{useModelToggle:({indicator:o,toggleReason:l,shouldHideWhenRouteChanges:r,shouldProceed:a,onShow:s,onHide:i})=>{const u=ar(),{emit:c}=u,d=u.props,p=yr(()=>g(d[n])),f=yr(()=>null===d[e]),v=e=>{!0!==o.value&&(o.value=!0,l&&(l.value=e),g(s)&&s(e))},h=e=>{!1!==o.value&&(o.value=!1,l&&(l.value=e),g(i)&&i(e))},m=e=>{if(!0===d.disabled||g(a)&&!a())return;const n=p.value&&ld;n&&c(t,!0),!f.value&&n||v(e)},b=e=>{if(!0===d.disabled||!ld)return;const n=p.value&&ld;n&&c(t,!1),!f.value&&n||h(e)},y=e=>{Zc(e)&&(d.disabled&&e?p.value&&c(t,!1):o.value!==e&&(e?v():h()))};return wn(()=>d[e],y),r&&void 0!==u.appContext.config.globalProperties.$route&&wn(()=>({...u.proxy.$route}),()=>{r.value&&o.value&&b()}),co(()=>{y(d[e])}),{hide:b,show:m,toggle:()=>{o.value?b():m()},hasUpdateHandler:p}},useModelToggleProps:{[e]:Uh,[n]:Kh},useModelToggleEmits:o}})("visible"),Zh=Nd({...Pf,...Gh,...Wh,...qh,...Lh,showArrow:{type:Boolean,default:!0}}),Jh=[...Yh,"before-show","before-hide","show","hide","open","close"],Qh=(e,t)=>f(e)?e.includes(t):e===t,em=(e,t,n)=>o=>{Qh(Ot(e),t)&&n(o)};var tm=Kd(Xn({name:"ElTooltipTrigger",__name:"trigger",props:qh,setup(e,{expose:t}){const n=e,o=Wa("tooltip"),{controlled:l,id:r,open:a,onOpen:s,onClose:i,onToggle:u}=mn(Dh,void 0),c=St(null),d=()=>{if(Ot(l)||n.disabled)return!0},p=Ft(n,"trigger"),f=uv(d,em(p,"hover",e=>{s(e),n.focusOnTarget&&e.target&&tn(()=>{yf(e.target,{preventScroll:!0})})})),v=uv(d,em(p,"hover",i)),h=uv(d,em(p,"click",e=>{0===e.button&&u(e)})),m=uv(d,em(p,"focus",s)),g=uv(d,em(p,"focus",i)),b=uv(d,em(p,"contextmenu",e=>{e.preventDefault(),u(e)})),y=uv(d,e=>{const t=cv(e);n.triggerKeys.includes(t)&&(e.preventDefault(),u(e))});return t({triggerRef:c}),(e,t)=>(Fl(),zl(Ot(Df),{id:Ot(r),"virtual-ref":e.virtualRef,open:Ot(a),"virtual-triggering":e.virtualTriggering,class:q(Ot(o).e("trigger")),onBlur:Ot(g),onClick:Ot(h),onContextmenu:Ot(b),onFocus:Ot(m),onMouseenter:Ot(f),onMouseleave:Ot(v),onKeydown:Ot(y)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const nm=()=>{const e=Ha(),t=af(),n=yr(()=>`${e.value}-popper-container-${t.prefix}`),o=yr(()=>`#${n.value}`);return{id:n,selector:o}},om=()=>{const{id:e,selector:t}=nm();return uo(()=>{ld&&(document.body.querySelector(t.value)||(e=>{const t=document.createElement("div");t.id=e,document.body.appendChild(t)})(e.value))}),{id:e,selector:t}},lm=Xn({name:"ElTooltipContent",inheritAttrs:!1,__name:"content",props:Wh,setup(e,{expose:t}){const n=e,{selector:o}=nm(),l=Wa("tooltip"),r=St(),a=td(()=>{var e;return null==(e=r.value)?void 0:e.popperContentRef});let s;const{controlled:i,id:u,open:c,trigger:d,onClose:p,onOpen:v,onShow:h,onHide:m,onBeforeShow:g,onBeforeHide:b}=mn(Dh,void 0),y=yr(()=>n.transition||`${l.namespace.value}-fade-in-linear`),w=yr(()=>n.persistent);vo(()=>{null==s||s()});const x=yr(()=>!!Ot(w)||Ot(c)),C=yr(()=>!n.disabled&&Ot(c)),_=yr(()=>n.appendTo||o.value),S=yr(()=>{var e;return null!=(e=n.style)?e:{}}),k=St(!0),E=()=>{m(),N()&&yf(document.body,{preventScroll:!0}),k.value=!0},T=()=>{if(Ot(i))return!0},A=uv(T,()=>{n.enterable&&Qh(Ot(d),"hover")&&v()}),O=uv(T,()=>{Qh(Ot(d),"hover")&&p()}),M=()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e),null==g||g()},R=()=>{null==b||b()},L=()=>{h()},P=()=>{n.virtualTriggering||p()},N=e=>{var t;const n=null==(t=r.value)?void 0:t.popperContentRef,o=(null==e?void 0:e.relatedTarget)||document.activeElement;return null==n?void 0:n.contains(o)};return wn(()=>Ot(c),e=>{e?(k.value=!1,s=function(e,t,n={}){const{window:o=fd,ignore:l=[],capture:r=!0,detectIframe:a=!1}=n;if(!o)return ad;sd&&!md&&(md=!0,Array.from(o.document.body.children).forEach(e=>e.addEventListener("click",ad)),o.document.documentElement.addEventListener("click",ad));let s=!0;const i=e=>l.some(t=>{if("string"==typeof t)return Array.from(o.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{const n=pd(t);return n&&(e.target===n||e.composedPath().includes(n))}}),u=[hd(o,"click",n=>{const o=pd(e);o&&o!==n.target&&!n.composedPath().includes(o)&&(0===n.detail&&(s=!i(n)),s?t(n):s=!0)},{passive:!0,capture:r}),hd(o,"pointerdown",t=>{const n=pd(e);s=!i(t)&&!(!n||t.composedPath().includes(n))},{passive:!0}),a&&hd(o,"blur",n=>{setTimeout(()=>{var l;const r=pd(e);"IFRAME"!==(null==(l=o.document.activeElement)?void 0:l.tagName)||(null==r?void 0:r.contains(o.document.activeElement))||t(n)},0)})].filter(Boolean);return()=>u.forEach(e=>e())}(a,()=>{var e;Ot(i)||(e=Ot(d),e||0===e?f(e)?e:[e]:[]).every(e=>"hover"!==e&&"focus"!==e)&&p()},{detectIframe:!0})):null==s||s()},{flush:"post"}),wn(()=>n.content,()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e)}),t({contentRef:r,isFocusInsideContent:N}),(e,t)=>(Fl(),zl(Ot(Xd),{disabled:!e.teleported,to:_.value},{default:pn(()=>[x.value||!k.value?(Fl(),zl(Nr,{key:0,name:y.value,appear:!w.value,onAfterLeave:E,onBeforeEnter:M,onAfterEnter:L,onBeforeLeave:R,persisted:""},{default:pn(()=>[fn(Gl(Ot(jh),tr({id:Ot(u),ref_key:"contentRef",ref:r},e.$attrs,{"aria-label":e.ariaLabel,"aria-hidden":k.value,"boundaries-padding":e.boundariesPadding,"fallback-placements":e.fallbackPlacements,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,"popper-class":e.popperClass,"popper-style":[e.popperStyle,S.value],"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,visible:C.value,"z-index":e.zIndex,loop:e.loop,onMouseenter:Ot(A),onMouseleave:Ot(O),onBlur:P,onClose:Ot(p)}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","loop","onMouseenter","onMouseleave","onClose"]),[[Xr,C.value]])]),_:3},8,["name","appear"])):Zl("v-if",!0)]),_:3},8,["disabled","to"]))}});var rm=Kd(lm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const am=["innerHTML"],sm={key:1},im=Gd(Kd(Xn({name:"ElTooltip",__name:"tooltip",props:Zh,emits:Jh,setup(e,{expose:t,emit:n}){const o=e,l=n;om();const r=Wa("tooltip"),a=sf(),s=St(),i=St(),u=()=>{var e;const t=Ot(s);t&&(null==(e=t.popperInstanceRef)||e.update())},c=St(!1),d=St(),{show:p,hide:f,hasUpdateHandler:v}=Xh({indicator:c,toggleReason:d}),{onOpen:h,onClose:m}=(({showAfter:e,hideAfter:t,autoClose:n,open:o,close:l})=>{const{registerTimeout:r}=zh(),{registerTimeout:a,cancelTimeout:s}=zh();return{onOpen:(t,s=Ot(e))=>{r(()=>{o(t);const e=Ot(n);Jc(e)&&e>0&&a(()=>{l(t)},e)},s)},onClose:(e,n=Ot(t))=>{s(),r(()=>{l(e)},n)}}})({showAfter:Ft(o,"showAfter"),hideAfter:Ft(o,"hideAfter"),autoClose:Ft(o,"autoClose"),open:p,close:f}),g=yr(()=>Zc(o.visible)&&!v.value),b=yr(()=>[r.b(),o.popperClass]);return hn(Dh,{controlled:g,id:a,open:vt(c),trigger:Ft(o,"trigger"),onOpen:h,onClose:m,onToggle:e=>{Ot(c)?m(e):h(e)},onShow:()=>{l("show",d.value)},onHide:()=>{l("hide",d.value)},onBeforeShow:()=>{l("before-show",d.value)},onBeforeHide:()=>{l("before-hide",d.value)},updatePopper:u}),wn(()=>o.disabled,e=>{e&&c.value&&(c.value=!1)}),lo(()=>c.value&&f()),vo(()=>{d.value=void 0}),t({popperRef:s,contentRef:i,isFocusInsideContent:e=>{var t;return null==(t=i.value)?void 0:t.isFocusInsideContent(e)},updatePopper:u,onOpen:h,onClose:m,hide:f}),(e,t)=>(Fl(),zl(Ot(Vh),{ref_key:"popperRef",ref:s,role:e.role},{default:pn(()=>[Gl(tm,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering,"focus-on-target":e.focusOnTarget},{default:pn(()=>[e.$slots.default?Ao(e.$slots,"default",{key:0}):Zl("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering","focus-on-target"]),Gl(rm,{ref_key:"contentRef",ref:i,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":b.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo,loop:e.loop},{default:pn(()=>[Ao(e.$slots,"content",{},()=>[e.rawContent?(Fl(),Dl("span",{key:0,innerHTML:e.content},null,8,am)):(Fl(),Dl("span",sm,Z(e.content),1))]),e.showArrow?(Fl(),zl(Ot(If),{key:0})):Zl("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to","loop"])]),_:3},8,["role"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]])),um=Gd(Kd(Xn({name:"ElBadge",__name:"badge",props:Nd({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:[String,Object,Array]},offset:{type:Array,default:[0,0]},badgeClass:{type:String}}),setup(e,{expose:t}){const n=e,o=Wa("badge"),l=yr(()=>n.isDot?"":Jc(n.value)&&Jc(n.max)&&n.max{var e;return[{backgroundColor:n.color,marginRight:ap(-n.offset[0]),marginTop:ap(n.offset[1])},null!=(e=n.badgeStyle)?e:{}]});return t({content:l}),(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Ao(e.$slots,"default"),Gl(Nr,{name:`${Ot(o).namespace.value}-zoom-in-center`,persisted:""},{default:pn(()=>[fn(Kl("sup",{class:q([Ot(o).e("content"),Ot(o).em("content",e.type),Ot(o).is("fixed",!!e.$slots.default),Ot(o).is("dot",e.isDot),Ot(o).is("hide-zero",!e.showZero&&0===e.value),e.badgeClass]),style:V(r.value)},[Ao(e.$slots,"content",{value:l.value},()=>[Xl(Z(l.value),1)])],6),[[Xr,!e.hidden&&(l.value||e.isDot||e.$slots.content)]])]),_:3},8,["name"])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]])),cm=Symbol("buttonGroupContextKey"),dm=({from:e,replacement:t,scope:n,version:o,ref:l,type:r="API"},a)=>{wn(()=>Ot(a),e=>{},{immediate:!0})},pm=["default","primary","success","warning","info","danger","text",""],fm=Nd({size:Bd,disabled:{type:Boolean,default:void 0},type:{type:String,values:pm,default:""},icon:{type:Dp},nativeType:{type:String,values:["button","submit","reset"],default:"button"},loading:Boolean,loadingIcon:{type:Dp,default:()=>Ep},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:[String,Object],default:"button"}}),vm={click:e=>e instanceof MouseEvent};function hm(e,t){(function(e){return"string"==typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function mm(e){return Math.min(1,Math.max(0,e))}function gm(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function bm(e){return e<=1?"".concat(100*Number(e),"%"):e}function ym(e){return 1===e.length?"0"+e:String(e)}function wm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=0,s=(o+l)/2;if(o===l)a=0,r=0;else{var i=o-l;switch(a=s>.5?i/(2-o-l):i/(o+l),o){case e:r=(t-n)/i+(t1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Cm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=o,s=o-l,i=0===o?0:s/o;if(o===l)r=0;else{switch(o){case e:r=(t-n)/s+(t>16,g:(65280&e)>>8,b:255&e}}(t)),this.originalInput=t;var l=Tm(t);this.originalInput=t,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(o=n.format)&&void 0!==o?o:l.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=l.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,o=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=gm(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return 0===this.toHsl().s},e.prototype.toHsv=function(){var e=Cm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=Cm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.v);return 1===this.a?"hsv(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsva(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var e=wm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=wm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.l);return 1===this.a?"hsl(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsla(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(e){return void 0===e&&(e=!1),_m(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return void 0===e&&(e=!1),"#"+this.toHex(e)},e.prototype.toHex8=function(e){return void 0===e&&(e=!1),function(e,t,n,o,l){var r,a=[ym(Math.round(e).toString(16)),ym(Math.round(t).toString(16)),ym(Math.round(n).toString(16)),ym((r=o,Math.round(255*parseFloat(r)).toString(16)))];return l&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return void 0===e&&(e=!1),"#"+this.toHex8(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return 1===this.a?"rgb(".concat(e,", ").concat(t,", ").concat(n,")"):"rgba(".concat(e,", ").concat(t,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var e=function(e){return"".concat(Math.round(100*hm(e,255)),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(100*hm(e,255))};return 1===this.a?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+_m(this.r,this.g,this.b,!1),t=0,n=Object.entries(Em);t=0;return t||!o||!e.startsWith("hex")&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this.a?this.toName():this.toRgbString()},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=mm(n.l),new e(n)},e.prototype.brighten=function(t){void 0===t&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-t/100*255))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-t/100*255))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-t/100*255))),new e(n)},e.prototype.darken=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=mm(n.l),new e(n)},e.prototype.tint=function(e){return void 0===e&&(e=10),this.mix("white",e)},e.prototype.shade=function(e){return void 0===e&&(e=10),this.mix("black",e)},e.prototype.desaturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=mm(n.s),new e(n)},e.prototype.saturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=mm(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){void 0===n&&(n=50);var o=this.toRgb(),l=new e(t).toRgb(),r=n/100;return new e({r:(l.r-o.r)*r+o.r,g:(l.g-o.g)*r+o.g,b:(l.b-o.b)*r+o.b,a:(l.a-o.a)*r+o.a})},e.prototype.analogous=function(t,n){void 0===t&&(t=6),void 0===n&&(n=30);var o=this.toHsl(),l=360/n,r=[this];for(o.h=(o.h-(l*t>>1)+720)%360;--t;)o.h=(o.h+l)%360,r.push(new e(o));return r},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var n=this.toHsv(),o=n.h,l=n.s,r=n.v,a=[],s=1/t;t--;)a.push(new e({h:o,s:l,v:r})),r=(r+s)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb();return new e({r:o.r+(n.r-o.r)*n.a,g:o.g+(n.g-o.g)*n.a,b:o.b+(n.b-o.b)*n.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,l=[this],r=360/t,a=1;a{let o={},l=e.color;if(l){const r=l.match(/var\((.*?)\)/);r&&(l=window.getComputedStyle(window.document.documentElement).getPropertyValue(r[1]));const a=new Pm(l),s=e.dark?a.tint(20).toString():Nm(a,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?Nm(a,90):a.tint(90).toString(),"text-color":l,"border-color":e.dark?Nm(a,50):a.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":l,"hover-border-color":l,"active-bg-color":s,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":s}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?Nm(a,90):a.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?Nm(a,50):a.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?Nm(a,80):a.tint(80).toString());else{const r=e.dark?Nm(a,30):a.tint(30).toString(),i=a.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":l,"text-color":i,"border-color":l,"hover-bg-color":r,"hover-text-color":i,"hover-border-color":r,"active-bg-color":s,"active-border-color":s}),t.value){const t=e.dark?Nm(a,50):a.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=t,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=t}}}return o})}(o),a=Wa("button"),{_ref:s,_size:i,_type:u,_disabled:c,_props:d,_plain:p,_round:f,_text:v,shouldAddSpace:h,handleClick:m}=((e,t)=>{dm({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},yr(()=>"text"===e.type));const n=mn(cm,void 0),o=zd("button"),{form:l}=df(),r=vf(yr(()=>null==n?void 0:n.size)),a=hf(),s=St(),i=No(),u=yr(()=>{var t;return e.type||(null==n?void 0:n.type)||(null==(t=o.value)?void 0:t.type)||""}),c=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.autoInsertSpace)?n:null==(t=o.value)?void 0:t.autoInsertSpace)&&l}),d=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.plain)?n:null==(t=o.value)?void 0:t.plain)&&l}),p=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.round)?n:null==(t=o.value)?void 0:t.round)&&l}),f=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.text)?n:null==(t=o.value)?void 0:t.text)&&l}),v=yr(()=>"button"===e.tag?{ariaDisabled:a.value||e.loading,disabled:a.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=yr(()=>{var e;const t=null==(e=i.default)?void 0:e.call(i);if(c.value&&1===(null==t?void 0:t.length)){const e=t[0];if((null==e?void 0:e.type)===Ll){const t=e.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(t.trim())}}return!1});return{_disabled:a,_size:r,_type:u,_ref:s,_props:v,_plain:d,_round:p,_text:f,shouldAddSpace:h,handleClick:n=>{a.value||e.loading?n.stopPropagation():("reset"===e.nativeType&&(null==l||l.resetFields()),t("click",n))}}})(o,l),g=yr(()=>[a.b(),a.m(u.value),a.m(i.value),a.is("disabled",c.value),a.is("loading",o.loading),a.is("plain",p.value),a.is("round",f.value),a.is("circle",o.circle),a.is("text",v.value),a.is("link",o.link),a.is("has-bg",o.bg)]);return t({ref:s,size:i,type:u,disabled:c,shouldAddSpace:h}),(e,t)=>(Fl(),zl(_o(e.tag),tr({ref_key:"_ref",ref:s},Ot(d),{class:g.value,style:Ot(r),onClick:Ot(m)}),{default:pn(()=>[e.loading?(Fl(),Dl(Rl,{key:0},[e.$slots.loading?Ao(e.$slots,"loading",{key:0}):(Fl(),zl(Ot(ip),{key:1,class:q(Ot(a).is("loading"))},{default:pn(()=>[(Fl(),zl(_o(e.loadingIcon)))]),_:1},8,["class"]))],64)):e.icon||e.$slots.icon?(Fl(),zl(Ot(ip),{key:1},{default:pn(()=>[e.icon?(Fl(),zl(_o(e.icon),{key:0})):Ao(e.$slots,"icon",{key:1})]),_:3})):Zl("v-if",!0),e.$slots.default?(Fl(),Dl("span",{key:2,class:q({[Ot(a).em("text","expand")]:Ot(h)})},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)]),_:3},16,["class","style","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]),Bm=Kd(Xn({name:"ElButtonGroup",__name:"button-group",props:{size:fm.size,type:fm.type,direction:{type:String,values:["horizontal","vertical"],default:"horizontal"}},setup(e){const t=e;hn(cm,pt({size:Ft(t,"size"),type:Ft(t,"type")}));const n=Wa("button");return(e,o)=>(Fl(),Dl("div",{class:q([Ot(n).b("group"),Ot(n).bm("group",t.direction)])},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Fm=Gd(Im,{ButtonGroup:Bm});Yd(Bm);const $m=Gd(Kd(Xn({name:"ElCard",__name:"card",props:Nd({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:[String,Object,Array],default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),setup(e){const t=zd("card"),n=Wa("card");return(e,o)=>{var l;return Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).is(`${e.shadow||(null==(l=Ot(t))?void 0:l.shadow)||"always"}-shadow`)])},[e.$slots.header||e.header?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("header"),e.headerClass])},[Ao(e.$slots,"header",{},()=>[Xl(Z(e.header),1)])],2)):Zl("v-if",!0),Kl("div",{class:q([Ot(n).e("body"),e.bodyClass]),style:V(e.bodyStyle)},[Ao(e.$slots,"default")],6),e.$slots.footer||e.footer?(Fl(),Dl("div",{key:1,class:q([Ot(n).e("footer"),e.footerClass])},[Ao(e.$slots,"footer",{},()=>[Xl(Z(e.footer),1)])],2)):Zl("v-if",!0)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]));var jm=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(jm||{});const Vm=e=>{const t=f(e)?e:[e],n=[];return t.forEach(e=>{var t;f(e)?n.push(...Vm(e)):Hl(e)&&(null==(t=e.component)?void 0:t.subTree)?n.push(e,...Vm(e.component.subTree)):Hl(e)&&f(e.children)?n.push(...Vm(e.children)):Hl(e)&&2===e.shapeFlag?n.push(...Vm(e.type())):n.push(e)}),n},Dm=(e,t)=>{const n=kt({}),o=kt([]),l=new WeakMap,r=()=>{o.value=((e,t,n)=>Vm(e.subTree).filter(e=>{var n;return Hl(e)&&(null==(n=e.type)?void 0:n.name)===t&&!!e.component}).map(e=>e.component.uid).map(e=>n[e]).filter(e=>!!e))(e,t,n.value)},a=e=>e.render();return{children:o,addChild:e=>{n.value[e.uid]=e,At(n),co(()=>{const t=e.getVnode().el,o=t.parentNode;if(!l.has(o)){l.set(o,[]);const e=o.insertBefore.bind(o);o.insertBefore=(t,r)=>(l.get(o).some(e=>t===e||r===e)&&At(n),e(t,r))}l.get(o).push(t)})},removeChild:e=>{delete n.value[e.uid],At(n);const t=e.getVnode().el,o=t.parentNode,r=l.get(o),a=r.indexOf(t);r.splice(a,1)},ChildrenSorter:Xn({setup:(e,{slots:t})=>()=>(r(),t.default?wr(a,{render:t.default}):null)})}},zm={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:{type:Boolean,default:void 0},checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:Bd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},ariaLabel:String,...Qp(["ariaControls"])},Hm={[Zd]:e=>b(e)||Jc(e)||Zc(e),change:e=>b(e)||Jc(e)||Zc(e)},Wm=Symbol("checkboxGroupContextKey"),qm=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:l,isLabeledByFormItem:r})=>{const a=mn(Wm,void 0),{formItem:s}=df(),{emit:i}=ar();function u(t){var n,o,l,r;return[!0,e.trueValue,e.trueLabel].includes(t)?null==(o=null!=(n=e.trueValue)?n:e.trueLabel)||o:null!=(r=null!=(l=e.falseValue)?l:e.falseLabel)&&r}const c=yr(()=>(null==a?void 0:a.validateEvent)||e.validateEvent);return wn(()=>e.modelValue,()=>{c.value&&(null==s||s.validate("change").catch(e=>{}))}),{handleChange:function(e){if(n.value)return;const t=e.target;i(Jd,u(t.checked),e)},onClickRoot:async function(a){n.value||o.value||l.value||!r.value||a.composedPath().some(e=>"LABEL"===e.tagName)||(t.value=u([!1,e.falseValue,e.falseLabel].includes(t.value)),await tn(),function(e,t){i(Jd,u(e),t)}(t.value,a))}}},Um=(e,t)=>{const{formItem:n}=df(),{model:o,isGroup:l,isLimitExceeded:r}=(e=>{const t=St(!1),{emit:n}=ar(),o=mn(Wm,void 0),l=yr(()=>!1===Xc(o)),r=St(!1),a=yr({get(){var n,r;return l.value?null==(n=null==o?void 0:o.modelValue)?void 0:n.value:null!=(r=e.modelValue)?r:t.value},set(e){var s,i;l.value&&f(e)?(r.value=void 0!==(null==(s=null==o?void 0:o.max)?void 0:s.value)&&e.length>(null==o?void 0:o.max.value)&&e.length>a.value.length,!1===r.value&&(null==(i=null==o?void 0:o.changeEvent)||i.call(o,e))):(n(Zd,e),t.value=e)}});return{model:a,isGroup:l,isLimitExceeded:r}})(e),{isFocused:a,isChecked:s,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,actualValue:d}=((e,t,{model:n})=>{const o=mn(Wm,void 0),l=St(!1),r=yr(()=>ed(e.value)?e.label:e.value),a=yr(()=>{const t=n.value;return Zc(t)?t:f(t)?w(r.value)?t.map(wt).some(e=>jc(e,r.value)):t.map(wt).includes(r.value):null!=t?t===e.trueValue||t===e.trueLabel:!!t});return{checkboxButtonSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value}),{prop:!0}),isChecked:a,isFocused:l,checkboxSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value})),hasOwnLabel:yr(()=>!!t.default||!ed(r.value)),actualValue:r}})(e,t,{model:o}),{isDisabled:p}=(({model:e,isChecked:t})=>{const n=mn(Wm,void 0),o=mn(uf,void 0),l=yr(()=>{var o,l;const r=null==(o=null==n?void 0:n.max)?void 0:o.value,a=null==(l=null==n?void 0:n.min)?void 0:l.value;return!Xc(r)&&e.value.length>=r&&!t.value||!Xc(a)&&e.value.length<=a&&t.value});return{isDisabled:hf(yr(()=>{var e,t;return void 0===n?null!=(e=null==o?void 0:o.disabled)?e:l.value:(null==(t=n.disabled)?void 0:t.value)||l.value})),isLimitDisabled:l}})({model:o,isChecked:s}),{inputId:v,isLabeledByFormItem:h}=pf(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:l}),{handleChange:m,onClickRoot:g}=qm(e,{model:o,isLimitExceeded:r,hasOwnLabel:c,isDisabled:p,isLabeledByFormItem:h});var b,y;return e.checked&&(f(o.value)&&!o.value.includes(d.value)?o.value.push(d.value):o.value=null==(y=null!=(b=e.trueValue)?b:e.trueLabel)||y),dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>l.value&&ed(e.value))),dm({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.trueLabel)),dm({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.falseLabel)),{inputId:v,isLabeledByFormItem:h,isChecked:s,isDisabled:p,isFocused:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:o,actualValue:d,handleChange:m,onClickRoot:g}},Km=["id","indeterminate","name","tabindex","disabled"];var Gm=Kd(Xn({name:"ElCheckbox",__name:"checkbox",props:zm,emits:Hm,setup(e){const t=e,n=No(),{inputId:o,isLabeledByFormItem:l,isChecked:r,isDisabled:a,isFocused:s,checkboxSize:i,hasOwnLabel:u,model:c,actualValue:d,handleChange:p,onClickRoot:f}=Um(t,n),v=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:d.value}}),h=Wa("checkbox"),m=yr(()=>[h.b(),h.m(i.value),h.is("disabled",a.value),h.is("bordered",t.border),h.is("checked",r.value)]),g=yr(()=>[h.e("input"),h.is("disabled",a.value),h.is("checked",r.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(e,t)=>(Fl(),zl(_o(!Ot(u)&&Ot(l)?"span":"label"),{for:!Ot(u)&&Ot(l)?null:Ot(o),class:q(m.value),"aria-controls":e.indeterminate?e.ariaControls:null,"aria-checked":e.indeterminate?"mixed":void 0,"aria-label":e.ariaLabel,onClick:Ot(f)},{default:pn(()=>[Kl("span",{class:q(g.value)},[fn(Kl("input",tr({id:Ot(o),"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:Ot(h).e("original"),type:"checkbox",indeterminate:e.indeterminate,name:e.name,tabindex:e.tabindex,disabled:Ot(a)},v.value,{onChange:t[1]||(t[1]=(...e)=>Ot(p)&&Ot(p)(...e)),onFocus:t[2]||(t[2]=e=>s.value=!0),onBlur:t[3]||(t[3]=e=>s.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Km),[[Sa,Ot(c)]]),Kl("span",{class:q(Ot(h).e("inner"))},null,2)],2),Ot(u)?(Fl(),Dl("span",{key:0,class:q(Ot(h).e("label"))},[Ao(e.$slots,"default"),e.$slots.default?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.label),1)],64))],2)):Zl("v-if",!0)]),_:3},8,["for","class","aria-controls","aria-checked","aria-label","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const Ym=["name","tabindex","disabled"];var Xm=Kd(Xn({name:"ElCheckboxButton",__name:"checkbox-button",props:zm,emits:Hm,setup(e){const t=e,n=No(),{isFocused:o,isChecked:l,isDisabled:r,checkboxButtonSize:a,model:s,actualValue:i,handleChange:u}=Um(t,n),c=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:i.value}}),d=mn(Wm,void 0),p=Wa("checkbox"),f=yr(()=>{var e,t,n,o;const l=null!=(t=null==(e=null==d?void 0:d.fill)?void 0:e.value)?t:"";return{backgroundColor:l,borderColor:l,color:null!=(o=null==(n=null==d?void 0:d.textColor)?void 0:n.value)?o:"",boxShadow:l?`-1px 0 0 0 ${l}`:void 0}}),v=yr(()=>[p.b("button"),p.bm("button",a.value),p.is("disabled",r.value),p.is("checked",l.value),p.is("focus",o.value)]);return(e,t)=>(Fl(),Dl("label",{class:q(v.value)},[fn(Kl("input",tr({"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:Ot(p).be("button","original"),type:"checkbox",name:e.name,tabindex:e.tabindex,disabled:Ot(r)},c.value,{onChange:t[1]||(t[1]=(...e)=>Ot(u)&&Ot(u)(...e)),onFocus:t[2]||(t[2]=e=>o.value=!0),onBlur:t[3]||(t[3]=e=>o.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Ym),[[Sa,Ot(s)]]),e.$slots.default||e.label?(Fl(),Dl("span",{key:0,class:q(Ot(p).be("button","inner")),style:V(Ot(l)?f.value:void 0)},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],6)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const Zm=Nd({modelValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:void 0},min:Number,max:Number,size:Bd,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>Jm},type:{type:String,values:["checkbox","button"],default:"checkbox"},...Qp(["ariaLabel"])}),Jm={label:"label",value:"value",disabled:"disabled"},Qm=Xn({name:"ElCheckboxGroup",__name:"checkbox-group",props:Zm,emits:{[Zd]:e=>f(e),change:e=>f(e)},setup(e,{emit:t}){const n=e,o=t,l=Wa("checkbox"),r=hf(),{formItem:a}=df(),{inputId:s,isLabeledByFormItem:i}=pf(n,{formItemContext:a}),u=async e=>{o(Zd,e),await tn(),o(Jd,e)},c=yr({get:()=>n.modelValue,set(e){u(e)}}),d=yr(()=>({...Jm,...n.props})),p=yr(()=>"button"===n.type?Xm:Gm);return hn(Wm,{...Yc(Nt(n),["size","min","max","validateEvent","fill","textColor"]),disabled:r,modelValue:c,changeEvent:u}),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==a||a.validate("change").catch(e=>{}))}),(e,t)=>{var n;return Fl(),zl(_o(e.tag),{id:Ot(s),class:q(Ot(l).b("group")),role:"group","aria-label":Ot(i)?void 0:e.ariaLabel||"checkbox-group","aria-labelledby":Ot(i)?null==(n=Ot(a))?void 0:n.labelId:void 0},{default:pn(()=>[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var eg=Kd(Qm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const tg=Gd(Gm,{CheckboxButton:Xm,CheckboxGroup:eg});Yd(Xm);const ng=Yd(eg),og=Nd({modelValue:{type:[String,Number,Boolean],default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},label:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],default:void 0},name:{type:String,default:void 0}}),lg=Nd({...og,border:Boolean}),rg={[Zd]:e=>b(e)||Jc(e)||Zc(e),[Jd]:e=>b(e)||Jc(e)||Zc(e)},ag=Symbol("radioGroupKey"),sg=(e,t)=>{const n=St(),o=mn(ag,void 0),l=yr(()=>!!o),r=yr(()=>ed(e.value)?e.label:e.value),a=yr({get:()=>l.value?o.modelValue:e.modelValue,set(a){l.value?o.changeEvent(a):t&&t(Zd,a),n.value.checked=e.modelValue===r.value}}),s=vf(yr(()=>null==o?void 0:o.size)),i=hf(yr(()=>null==o?void 0:o.disabled)),u=St(!1),c=yr(()=>i.value||l.value&&a.value!==r.value?-1:0);return dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-radio",ref:"https://element-plus.org/en-US/component/radio.html"},yr(()=>l.value&&ed(e.value))),{radioRef:n,isGroup:l,radioGroup:o,focus:u,size:s,disabled:i,tabIndex:c,modelValue:a,actualValue:r}},ig=["value","name","disabled","checked"];var ug=Kd(Xn({name:"ElRadio",__name:"radio",props:lg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),{radioRef:r,radioGroup:a,focus:s,size:i,disabled:u,modelValue:c,actualValue:d}=sg(n,o);function p(){tn(()=>o(Jd,c.value))}return(e,t)=>{var n;return Fl(),Dl("label",{class:q([Ot(l).b(),Ot(l).is("disabled",Ot(u)),Ot(l).is("focus",Ot(s)),Ot(l).is("bordered",e.border),Ot(l).is("checked",Ot(c)===Ot(d)),Ot(l).m(Ot(i))])},[Kl("span",{class:q([Ot(l).e("input"),Ot(l).is("disabled",Ot(u)),Ot(l).is("checked",Ot(c)===Ot(d))])},[fn(Kl("input",{ref_key:"radioRef",ref:r,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:q(Ot(l).e("original")),value:Ot(d),name:e.name||(null==(n=Ot(a))?void 0:n.name),disabled:Ot(u),checked:Ot(c)===Ot(d),type:"radio",onFocus:t[1]||(t[1]=e=>s.value=!0),onBlur:t[2]||(t[2]=e=>s.value=!1),onChange:p,onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,ig),[[Ea,Ot(c)]]),Kl("span",{class:q(Ot(l).e("inner"))},null,2)],2),Kl("span",{class:q(Ot(l).e("label")),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],34)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);const cg=Nd({...og}),dg=["value","name","disabled"];var pg=Kd(Xn({name:"ElRadioButton",__name:"radio-button",props:cg,setup(e){const t=e,n=Wa("radio"),{radioRef:o,focus:l,size:r,disabled:a,modelValue:s,radioGroup:i,actualValue:u}=sg(t),c=yr(()=>({backgroundColor:(null==i?void 0:i.fill)||"",borderColor:(null==i?void 0:i.fill)||"",boxShadow:(null==i?void 0:i.fill)?`-1px 0 0 0 ${i.fill}`:"",color:(null==i?void 0:i.textColor)||""}));return(e,t)=>{var d;return Fl(),Dl("label",{class:q([Ot(n).b("button"),Ot(n).is("active",Ot(s)===Ot(u)),Ot(n).is("disabled",Ot(a)),Ot(n).is("focus",Ot(l)),Ot(n).bm("button",Ot(r))])},[fn(Kl("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:q(Ot(n).be("button","original-radio")),value:Ot(u),type:"radio",name:e.name||(null==(d=Ot(i))?void 0:d.name),disabled:Ot(a),onFocus:t[1]||(t[1]=e=>l.value=!0),onBlur:t[2]||(t[2]=e=>l.value=!1),onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,dg),[[Ea,Ot(s)]]),Kl("span",{class:q(Ot(n).be("button","inner")),style:V(Ot(s)===Ot(u)?c.value:{}),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],38)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue"]]);const fg=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},fill:{type:String,default:""},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>vg},type:{type:String,values:["radio","button"],default:"radio"},...Qp(["ariaLabel"])}),vg={label:"label",value:"value",disabled:"disabled"},hg=["id","aria-label","aria-labelledby"],mg=Xn({name:"ElRadioGroup",__name:"radio-group",props:fg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),r=sf(),a=St(),{formItem:s}=df(),{inputId:i,isLabeledByFormItem:u}=pf(n,{formItemContext:s});co(()=>{const e=a.value.querySelectorAll("[type=radio]"),t=e[0];!Array.from(e).some(e=>e.checked)&&t&&(t.tabIndex=0)});const c=yr(()=>n.name||r.value),d=yr(()=>({...vg,...n.props})),p=yr(()=>"button"===n.type?pg:ug);return hn(ag,pt({...Nt(n),changeEvent:e=>{o(Zd,e),tn(()=>o(Jd,e))},name:c})),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==s||s.validate("change").catch(e=>{}))}),(e,t)=>(Fl(),Dl("div",{id:Ot(i),ref_key:"radioGroupRef",ref:a,class:q(Ot(l).b("group")),role:"radiogroup","aria-label":Ot(u)?void 0:e.ariaLabel||"radio-group","aria-labelledby":Ot(u)?Ot(s).labelId:void 0},[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])],10,hg))}});var gg=Kd(mg,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue"]]);Gd(ug,{RadioButton:pg,RadioGroup:gg});const bg=Yd(gg),yg=Yd(pg),wg=Nd({type:{type:String,values:["primary","success","info","warning","danger"],default:"primary"},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:Id},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),xg=["aria-label"],Cg=["aria-label"],_g=Gd(Kd(Xn({name:"ElTag",__name:"tag",props:wg,emits:{close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},setup(e,{emit:t}){const n=e,o=t,l=vf(),{t:r}=Rd(),a=Wa("tag"),s=yr(()=>{const{type:e,hit:t,effect:o,closable:r,round:s}=n;return[a.b(),a.is("closable",r),a.m(e||"primary"),a.m(l.value),a.m(o),a.is("hit",t),a.is("round",s)]}),i=e=>{o("close",e)},u=e=>{o("click",e)},c=e=>{var t,n,o;(null==(o=null==(n=null==(t=null==e?void 0:e.component)?void 0:t.subTree)?void 0:n.component)?void 0:o.bum)&&(e.component.subTree.component.bum=null)};return(e,t)=>e.disableTransitions?(Fl(),Dl("span",{key:0,class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,xg)):Zl("v-if",!0)],6)):(Fl(),zl(Nr,{key:1,name:`${Ot(a).namespace.value}-zoom-in-center`,appear:"",onVnodeMounted:c},{default:pn(()=>[Kl("span",{class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,Cg)):Zl("v-if",!0)],6)]),_:3},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]])),Sg=new Map;if(ld){let e;document.addEventListener("mousedown",t=>e=t),document.addEventListener("mouseup",t=>{if(e){for(const n of Sg.values())for(const{documentHandler:o}of n)o(t,e);e=void 0}})}function kg(e,t){let n=[];return f(t.arg)?n=t.arg:Qc(t.arg)&&n.push(t.arg),function(o,l){const r=t.instance.popperRef,a=o.target,s=null==l?void 0:l.target,i=!t||!t.instance,u=!a||!s,c=e.contains(a)||e.contains(s),d=e===a,p=n.length&&n.some(e=>null==e?void 0:e.contains(a))||n.length&&n.includes(s),f=r&&(r.contains(a)||r.contains(s));i||u||c||d||p||f||t.value(o,l)}}const Eg={beforeMount(e,t){Sg.has(e)||Sg.set(e,[]),Sg.get(e).push({documentHandler:kg(e,t),bindingFn:t.value})},updated(e,t){Sg.has(e)||Sg.set(e,[]);const n=Sg.get(e),o=n.findIndex(e=>e.bindingFn===t.oldValue),l={documentHandler:kg(e,t),bindingFn:t.value};o>=0?n.splice(o,1,l):n.push(l)},unmounted(e){Sg.delete(e)}},Tg=Nd({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:[Number,Object],default:()=>({})},sm:{type:[Number,Object],default:()=>({})},md:{type:[Number,Object],default:()=>({})},lg:{type:[Number,Object],default:()=>({})},xl:{type:[Number,Object],default:()=>({})}}),Ag=Symbol("rowContextKey"),Og=Gd(Kd(Xn({name:"ElCol",__name:"col",props:Tg,setup(e){const t=e,{gutter:n}=mn(Ag,{gutter:yr(()=>0)}),o=Wa("col"),l=yr(()=>{const e={};return n.value&&(e.paddingLeft=e.paddingRight=n.value/2+"px"),e}),r=yr(()=>{const e=[];return["span","offset","pull","push"].forEach(n=>{const l=t[n];Jc(l)&&("span"===n?e.push(o.b(`${t[n]}`)):l>0&&e.push(o.b(`${n}-${t[n]}`)))}),["xs","sm","md","lg","xl"].forEach(n=>{Jc(t[n])?e.push(o.b(`${n}-${t[n]}`)):w(t[n])&&Object.entries(t[n]).forEach(([t,l])=>{e.push("span"!==t?o.b(`${n}-${t}-${l}`):o.b(`${n}-${l}`))})}),n.value&&e.push(o.is("guttered")),[o.b(),e]});return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]])),Mg=Gd(Kd(Xn({name:"ElCollapseTransition",__name:"collapse-transition",setup(e){const t=Wa("collapse-transition"),n=e=>{e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},o={beforeEnter(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height&&(e.dataset.elExistsHeight=e.style.height),e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){requestAnimationFrame(()=>{e.dataset.oldOverflow=e.style.overflow,e.dataset.elExistsHeight?e.style.maxHeight=e.dataset.elExistsHeight:0!==e.scrollHeight?e.style.maxHeight=`${e.scrollHeight}px`:e.style.maxHeight=0,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"})},afterEnter(e){e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow},enterCancelled(e){n(e)},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.maxHeight=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){n(e)},leaveCancelled(e){n(e)}};return(e,n)=>(Fl(),zl(Nr,tr({name:Ot(t).b()},function(e){const t={};for(const n in e)t[P(n)]=e[n];return t}(o)),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]])),Rg={placement:"top"},Lg=e=>{if(!e)return{onClick:r,onMousedown:r,onMouseup:r};let t=!1,n=!1;return{onClick:o=>{t&&n&&e(o),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}},Pg=Nd({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:[String,Array,Object]},zIndex:{type:[String,Number]}}),Ng=Xn({name:"ElOverlay",props:Pg,emits:{click:e=>e instanceof MouseEvent},setup(e,{slots:t,emit:n}){const o=Wa("overlay"),{onClick:l,onMousedown:r,onMouseup:a}=Lg(e.customMaskEvent?void 0:e=>{n("click",e)});return()=>e.mask?Gl("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:l,onMousedown:r,onMouseup:a},[Ao(t,"default")],jm.STYLE|jm.CLASS|jm.PROPS,["onClick","onMouseup","onMousedown"]):wr("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ao(t,"default")])}}),Ig=Symbol("dialogInjectionKey"),Bg="dialog-fade",Fg=Nd({center:Boolean,alignCenter:{type:Boolean,default:void 0},closeIcon:{type:Dp},draggable:{type:Boolean,default:void 0},overflow:{type:Boolean,default:void 0},fullscreen:Boolean,headerClass:String,bodyClass:String,footerClass:String,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),$g=(e,t,n,o)=>{const l={offsetX:0,offsetY:0},r=St(!1),a=(t,n)=>{if(e.value){const{offsetX:r,offsetY:a}=l,s=e.value.getBoundingClientRect(),i=s.left,u=s.top,c=s.width,d=s.height,p=document.documentElement.clientWidth,f=document.documentElement.clientHeight,v=-i+r,h=-u+a,m=p-i-c+r,g=f-u-(d{const t=e.clientX,n=e.clientY,{offsetX:o,offsetY:s}=l,i=e=>{r.value||(r.value=!0);const l=o+e.clientX-t,i=s+e.clientY-n;a(l,i)},u=()=>{r.value=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},i=()=>{t.value&&e.value&&(t.value.removeEventListener("mousedown",s),window.removeEventListener("resize",u))},u=()=>{const{offsetX:e,offsetY:t}=l;a(e,t)};return co(()=>{yn(()=>{n.value?t.value&&e.value&&(t.value.addEventListener("mousedown",s),window.addEventListener("resize",u)):i()})}),vo(()=>{i()}),{isDragging:r,resetPosition:()=>{l.offsetX=0,l.offsetY=0,e.value&&(e.value.style.transform="")},updatePosition:u}},jg=["aria-level"],Vg=["aria-label"],Dg=["id"];var zg=Kd(Xn({name:"ElDialogContent",__name:"dialog-content",props:Fg,emits:{close:()=>!0},setup(e,{expose:t}){const{t:n}=Rd(),{Close:o}=zp,l=e,{dialogRef:r,headerRef:a,bodyId:s,ns:i,style:u}=mn(Ig),{focusTrapRef:c}=mn(Gf),d=((...e)=>t=>{e.forEach(e=>{e.value=t})})(c,r),p=yr(()=>!!l.draggable),f=yr(()=>!!l.overflow),{resetPosition:v,updatePosition:h,isDragging:m}=$g(r,a,p,f),g=yr(()=>[i.b(),i.is("fullscreen",l.fullscreen),i.is("draggable",p.value),i.is("dragging",m.value),i.is("align-center",!!l.alignCenter),{[i.m("center")]:l.center}]);return t({resetPosition:v,updatePosition:h}),(e,t)=>(Fl(),Dl("div",{ref:Ot(d),class:q(g.value),style:V(Ot(u)),tabindex:"-1"},[Kl("header",{ref_key:"headerRef",ref:a,class:q([Ot(i).e("header"),e.headerClass,{"show-close":e.showClose}])},[Ao(e.$slots,"header",{},()=>[Kl("span",{role:"heading","aria-level":e.ariaLevel,class:q(Ot(i).e("title"))},Z(e.title),11,jg)]),e.showClose?(Fl(),Dl("button",{key:0,"aria-label":Ot(n)("el.dialog.close"),class:q(Ot(i).e("headerbtn")),type:"button",onClick:t[0]||(t[0]=t=>e.$emit("close"))},[Gl(Ot(ip),{class:q(Ot(i).e("close"))},{default:pn(()=>[(Fl(),zl(_o(e.closeIcon||Ot(o))))]),_:1},8,["class"])],10,Vg)):Zl("v-if",!0)],2),Kl("div",{id:Ot(s),class:q([Ot(i).e("body"),e.bodyClass])},[Ao(e.$slots,"default")],10,Dg),e.$slots.footer?(Fl(),Dl("footer",{key:0,class:q([Ot(i).e("footer"),e.footerClass])},[Ao(e.$slots,"footer")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);const Hg=Nd({...Fg,appendToBody:Boolean,appendTo:{type:Ud.to.type,default:"body"},beforeClose:{type:Function},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalPenetrable:Boolean,openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,headerClass:String,bodyClass:String,footerClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:Boolean,headerAriaLevel:{type:String,default:"2"},transition:{type:[String,Object],default:void 0}}),Wg=(e,t={})=>{_t(e)||xd("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||Wa("popup"),o=yr(()=>n.bm("parent","hidden"));let l=0,r=!1,a="0";const s=()=>{setTimeout(()=>{"undefined"!=typeof document&&r&&document&&(document.body.style.width=a,lp(document.body,o.value))},200)};wn(e,e=>{if(!e)return void s();r=!np(document.body,o.value),r&&(a=document.body.style.width,op(document.body,o.value)),l=(e=>{var t;if(!ld)return 0;if(void 0!==sp)return sp;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const l=document.createElement("div");l.style.width="100%",n.appendChild(l);const r=l.offsetWidth;return null==(t=n.parentNode)||t.removeChild(n),sp=o-r,sp})(n.namespace.value);const t=document.documentElement.clientHeight0&&(t||"scroll"===i)&&r&&(document.body.style.width=`calc(100% - ${l}px)`)}),le(()=>s())},qg=["aria-label","aria-labelledby","aria-describedby"],Ug=Xn({name:"ElDialog",inheritAttrs:!1,__name:"dialog",props:Hg,emits:{open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Zd]:e=>Zc(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},setup(e,{expose:t}){const n=e,o=No();dm({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},yr(()=>!!o.title));const l=Wa("dialog"),r=St(),a=St(),s=St(),{visible:i,titleId:u,bodyId:c,style:d,overlayDialogStyle:p,rendered:v,transitionConfig:h,zIndex:m,_draggable:b,_alignCenter:y,_overflow:x,handleClose:C,onModalClick:_,onOpenAutoFocus:S,onCloseAutoFocus:k,onCloseRequested:E,onFocusoutPrevented:T,closing:A}=((e,t)=>{var n;const o=ar().emit,{nextZIndex:l}=Ed();let r="";const a=sf(),s=sf(),i=St(!1),u=St(!1),c=St(!1),d=St(null!=(n=e.zIndex)?n:l()),p=St(!1);let v,h;const m=zd(),b=yr(()=>{var e,t;return null!=(t=null==(e=m.value)?void 0:e.namespace)?t:Va}),y=yr(()=>{var e;return null==(e=m.value)?void 0:e.dialog}),x=yr(()=>{const t={},n=`--${b.value}-dialog`;if(!e.fullscreen){e.top&&(t[`${n}-margin-top`]=e.top);const o=ap(e.width);o&&(t[`${n}-width`]=o)}return t}),C=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.draggable)?n:null==(t=y.value)?void 0:t.draggable)&&o&&!e.fullscreen}),_=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.alignCenter)?n:null==(t=y.value)?void 0:t.alignCenter)&&o}),S=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.overflow)?n:null==(t=y.value)?void 0:t.overflow)&&o}),k=yr(()=>_.value?{display:"flex"}:{}),E=yr(()=>{var t,n,o;const l=null!=(o=null!=(n=e.transition)?n:null==(t=y.value)?void 0:t.transition)?o:Bg,r={name:l,onAfterEnter:T,onBeforeLeave:O,onAfterLeave:A};if(w(l)){const e={...l},t=(e,t)=>n=>{f(e)?e.forEach(e=>{g(e)&&e(n)}):g(e)&&e(n),t()};return e.onAfterEnter=t(e.onAfterEnter,T),e.onBeforeLeave=t(e.onBeforeLeave,O),e.onAfterLeave=t(e.onAfterLeave,A),e.name||(e.name=Bg),e}return r});function T(){o("opened")}function A(){o("closed"),o(Zd,!1),e.destroyOnClose&&(c.value=!1),p.value=!1}function O(){p.value=!0,o("close")}function M(){null==h||h(),null==v||v(),e.openDelay&&e.openDelay>0?({stop:v}=dd(()=>P(),e.openDelay)):P()}function R(){null==v||v(),null==h||h(),e.closeDelay&&e.closeDelay>0?({stop:h}=dd(()=>N(),e.closeDelay)):N()}function L(){e.beforeClose?e.beforeClose(function(e){e||(u.value=!0,i.value=!1)}):R()}function P(){ld&&(i.value=!0)}function N(){i.value=!1}return e.lockScroll&&Wg(i),wn(()=>e.zIndex,()=>{var t;d.value=null!=(t=e.zIndex)?t:l()}),wn(()=>e.modelValue,n=>{var r;n?(u.value=!1,M(),c.value=!0,d.value=null!=(r=e.zIndex)?r:l(),tn(()=>{o("open"),t.value&&(t.value.parentElement.scrollTop=0,t.value.parentElement.scrollLeft=0,t.value.scrollTop=0)})):i.value&&R()}),wn(()=>e.fullscreen,e=>{t.value&&(e?(r=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=r)}),co(()=>{e.modelValue&&(i.value=!0,c.value=!0,M())}),{afterEnter:T,afterLeave:A,beforeLeave:O,handleClose:L,onModalClick:function(){e.closeOnClickModal&&L()},close:R,doClose:N,onOpenAutoFocus:function(){o("openAutoFocus")},onCloseAutoFocus:function(){o("closeAutoFocus")},onCloseRequested:function(){e.closeOnPressEscape&&L()},onFocusoutPrevented:function(e){var t;"pointer"===(null==(t=e.detail)?void 0:t.focusReason)&&e.preventDefault()},titleId:a,bodyId:s,closed:u,style:x,overlayDialogStyle:k,rendered:c,visible:i,zIndex:d,transitionConfig:E,_draggable:C,_alignCenter:_,_overflow:S,closing:p}})(n,r);hn(Ig,{dialogRef:r,headerRef:a,bodyId:c,ns:l,rendered:v,style:d});const O=Lg(_),M=yr(()=>n.modalPenetrable&&!n.modal&&!n.fullscreen);return t({visible:i,dialogContentRef:s,resetPosition:()=>{var e;null==(e=s.value)||e.resetPosition()},handleClose:C}),(e,t)=>(Fl(),zl(Ot(Xd),{to:e.appendTo,disabled:"body"===e.appendTo&&!e.appendToBody},{default:pn(()=>[Gl(Nr,tr(Ot(h),{persisted:""}),{default:pn(()=>{var n;return[fn(Gl(Ot(Ng),{"custom-mask-event":"",mask:e.modal,"overlay-class":[null!=(n=e.modalClass)?n:"",`${Ot(l).namespace.value}-modal-dialog`,Ot(l).is("penetrable",M.value)],"z-index":Ot(m)},{default:pn(()=>[Kl("div",{role:"dialog","aria-modal":"true","aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:Ot(u),"aria-describedby":Ot(c),class:q([`${Ot(l).namespace.value}-overlay-dialog`,Ot(l).is("closing",Ot(A))]),style:V(Ot(p)),onClick:t[0]||(t[0]=(...e)=>Ot(O).onClick&&Ot(O).onClick(...e)),onMousedown:t[1]||(t[1]=(...e)=>Ot(O).onMousedown&&Ot(O).onMousedown(...e)),onMouseup:t[2]||(t[2]=(...e)=>Ot(O).onMouseup&&Ot(O).onMouseup(...e))},[Gl(Ot(vv),{loop:"",trapped:Ot(i),"focus-start-el":"container",onFocusAfterTrapped:Ot(S),onFocusAfterReleased:Ot(k),onFocusoutPrevented:Ot(T),onReleaseRequested:Ot(E)},{default:pn(()=>[Ot(v)?(Fl(),zl(zg,tr({key:0,ref_key:"dialogContentRef",ref:s},e.$attrs,{center:e.center,"align-center":Ot(y),"close-icon":e.closeIcon,draggable:Ot(b),overflow:Ot(x),fullscreen:e.fullscreen,"header-class":e.headerClass,"body-class":e.bodyClass,"footer-class":e.footerClass,"show-close":e.showClose,title:e.title,"aria-level":e.headerAriaLevel,onClose:Ot(C)}),To({header:pn(()=>[e.$slots.title?Ao(e.$slots,"title",{key:1}):Ao(e.$slots,"header",{key:0,close:Ot(C),titleId:Ot(u),titleClass:Ot(l).e("title")})]),default:pn(()=>[Ao(e.$slots,"default")]),_:2},[e.$slots.footer?{name:"footer",fn:pn(()=>[Ao(e.$slots,"footer")]),key:"0"}:void 0]),1040,["center","align-center","close-icon","draggable","overflow","fullscreen","header-class","body-class","footer-class","show-close","title","aria-level","onClose"])):Zl("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,qg)]),_:3},8,["mask","overlay-class","z-index"]),[[Xr,Ot(i)]])]}),_:3},16)]),_:3},8,["to","disabled"]))}}),Kg=Gd(Kd(Ug,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]])),Gg=Gd(Kd(Xn({name:"ElDivider",__name:"divider",props:Nd({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:String,default:"solid"}}),setup(e){const t=e,n=Wa("divider"),o=yr(()=>n.cssVar({"border-style":t.borderStyle}));return(e,t)=>(Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).m(e.direction)]),style:V(o.value),role:"separator"},[e.$slots.default&&"vertical"!==e.direction?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("text"),Ot(n).is(e.contentPosition)])},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/divider/src/divider.vue"]])),Yg={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Xg=["id"],Zg=["stop-color"],Jg=["stop-color"],Qg=["id"],eb=["stop-color"],tb=["stop-color"],nb=["id"],ob={stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},lb={transform:"translate(-1268.000000, -535.000000)"},rb={transform:"translate(1268.000000, 535.000000)"},ab=["fill"],sb=["fill"],ib={transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},ub=["fill"],cb=["fill"],db=["fill"],pb=["fill"],fb=["fill"],vb={transform:"translate(53.000000, 45.000000)"},hb=["fill","xlink:href"],mb=["fill","mask"],gb=["fill"];var bb=Kd(Xn({name:"ImgEmpty",__name:"img-empty",setup(e){const t=Wa("empty"),n=sf();return(e,o)=>(Fl(),Dl("svg",Yg,[Kl("defs",null,[Kl("linearGradient",{id:`linearGradient-1-${Ot(n)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,Zg),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,Jg)],8,Xg),Kl("linearGradient",{id:`linearGradient-2-${Ot(n)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,eb),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,tb)],8,Qg),Kl("rect",{id:`path-3-${Ot(n)}`,x:"0",y:"0",width:"17",height:"36"},null,8,nb)]),Kl("g",ob,[Kl("g",lb,[Kl("g",rb,[Kl("path",{d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${Ot(t).cssVarBlockName("fill-color-3")})`},null,8,ab),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,sb),Kl("g",ib,[Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,ub),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,cb),Kl("rect",{fill:`url(#linearGradient-1-${Ot(n)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,db),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,pb)]),Kl("rect",{fill:`url(#linearGradient-2-${Ot(n)})`,x:"13",y:"45",width:"40",height:"36"},null,8,fb),Kl("g",vb,[Kl("use",{fill:`var(${Ot(t).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${Ot(n)}`},null,8,hb),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${Ot(n)})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,mb)]),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,gb)])])])]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/img-empty.vue"]]);const yb=Nd({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),wb=["src"],xb={key:1},Cb=Gd(Kd(Xn({name:"ElEmpty",__name:"empty",props:yb,setup(e){const t=e,{t:n}=Rd(),o=Wa("empty"),l=yr(()=>t.description||n("el.table.emptyText")),r=yr(()=>({width:ap(t.imageSize)}));return(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Kl("div",{class:q(Ot(o).e("image")),style:V(r.value)},[e.image?(Fl(),Dl("img",{key:0,src:e.image,ondragstart:"return false"},null,8,wb)):Ao(e.$slots,"image",{key:1},()=>[Gl(bb)])],6),Kl("div",{class:q(Ot(o).e("description"))},[e.$slots.description?Ao(e.$slots,"description",{key:0}):(Fl(),Dl("p",xb,Z(l.value),1))],2),e.$slots.default?(Fl(),Dl("div",{key:0,class:q(Ot(o).e("bottom"))},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/empty.vue"]])),_b=Nd({size:{type:String,values:Id},disabled:Boolean}),Sb=Nd({..._b,model:Object,rules:{type:Object},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean],default:!0}});function kb(){const e=St([]),t=yr(()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?`${t}px`:""});function n(n){const o=e.value.indexOf(n);return-1===o&&t.value,o}return{autoLabelWidth:t,registerLabelWidth:function(t,o){if(t&&o){const l=n(o);e.value.splice(l,1,t)}else t&&e.value.push(t)},deregisterLabelWidth:function(t){const o=n(t);o>-1&&e.value.splice(o,1)}}}const Eb=(e,t)=>{const n=uu(t).map(e=>f(e)?e.join("."):e);return n.length>0?e.filter(e=>e.propString&&n.includes(e.propString)):e};var Tb=Kd(Xn({name:"ElForm",__name:"form",props:Sb,emits:{validate:(e,t,n)=>(f(e)||b(e))&&Zc(t)&&b(n)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=St(),a=pt([]),s=vf(),i=Wa("form"),u=yr(()=>{const{labelPosition:e,inline:t}=o;return[i.b(),i.m(s.value||"default"),{[i.m(`label-${e}`)]:e,[i.m("inline")]:t}]}),c=e=>Eb(a,[e])[0],d=(e=[])=>{o.model&&Eb(a,e).forEach(e=>e.resetField())},p=(e=[])=>{Eb(a,e).forEach(e=>e.clearValidate())},f=yr(()=>!!o.model),v=async e=>m(void 0,e),h=async(e=[])=>{if(!f.value)return!1;const t=(e=>{if(0===a.length)return[];const t=Eb(a,e);return t.length?t:[]})(e);if(0===t.length)return!0;let n={};for(const l of t)try{await l.validate(""),"error"!==l.validateState||l.error||l.resetField()}catch(o){n={...n,...o}}return 0===Object.keys(n).length||Promise.reject(n)},m=async(e=[],t)=>{let n=!1;const l=!g(t);try{return n=await h(e),!0===n&&await(null==t?void 0:t(n)),n}catch(tT){if(tT instanceof Error)throw tT;const a=tT;if(o.scrollToError&&r.value){const e=r.value.querySelector(`.${i.b()}-item.is-error`);null==e||e.scrollIntoView(o.scrollIntoViewOptions)}return!n&&await(null==t?void 0:t(!1,a)),l&&Promise.reject(a)}};return wn(()=>o.rules,()=>{o.validateOnRuleChange&&v().catch(e=>{})},{deep:!0,flush:"post"}),hn(uf,pt({...Nt(o),emit:l,resetFields:d,clearValidate:p,validateField:m,getField:c,addField:e=>{a.push(e)},removeField:e=>{e.prop&&a.splice(a.indexOf(e),1)},...kb()})),t({validate:v,validateField:m,resetFields:d,clearValidate:p,scrollToField:e=>{var t;const n=c(e);n&&(null==(t=n.$el)||t.scrollIntoView(o.scrollIntoViewOptions))},getField:c,fields:a}),(e,t)=>(Fl(),Dl("form",{ref_key:"formRef",ref:r,class:q(u.value)},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Ab(){return Ab=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),o=1;o=r)return e;switch(e){case"%s":return String(n[l++]);case"%d":return Number(n[l++]);case"%j":try{return JSON.stringify(n[l++])}catch(t){return"[Circular]"}break;default:return e}}):e}function Bb(e,t){return null==e||!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e)}function Fb(e,t,n){var o=0,l=e.length;!function r(a){if(a&&a.length)n(a);else{var s=o;o+=1,s()\[\]\\.,;:\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,}))$/,qb=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Ub={integer:function(e){return Ub.number(e)&&parseInt(e,10)===e},float:function(e){return Ub.number(e)&&!Ub.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(tT){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!Ub.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(Wb)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(function(){if(zb)return zb;var e="[a-fA-F\\d:]",t=function(t){return t&&t.includeBoundaries?"(?:(?<=\\s|^)(?="+e+")|(?<="+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}",o="[a-fA-F\\d]{1,4}",l=("\n(?:\n(?:"+o+":){7}(?:"+o+"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:"+o+":){6}(?:"+n+"|:"+o+"|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:"+o+":){5}(?::"+n+"|(?::"+o+"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:"+o+":){4}(?:(?::"+o+"){0,1}:"+n+"|(?::"+o+"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:"+o+":){3}(?:(?::"+o+"){0,2}:"+n+"|(?::"+o+"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:"+o+":){2}(?:(?::"+o+"){0,3}:"+n+"|(?::"+o+"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:"+o+":){1}(?:(?::"+o+"){0,4}:"+n+"|(?::"+o+"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::"+o+"){0,5}:"+n+"|(?::"+o+"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),r=new RegExp("(?:^"+n+"$)|(?:^"+l+"$)"),a=new RegExp("^"+n+"$"),s=new RegExp("^"+l+"$"),i=function(e){return e&&e.exact?r:new RegExp("(?:"+t(e)+n+t(e)+")|(?:"+t(e)+l+t(e)+")","g")};i.v4=function(e){return e&&e.exact?a:new RegExp(""+t(e)+n+t(e),"g")},i.v6=function(e){return e&&e.exact?s:new RegExp(""+t(e)+l+t(e),"g")};var u=i.v4().source,c=i.v6().source;return zb=new RegExp("(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|"+u+"|"+c+'|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)',"i")}())},hex:function(e){return"string"==typeof e&&!!e.match(qb)}},Kb="enum",Gb={required:Hb,whitespace:function(e,t,n,o,l){(/^\s+$/.test(t)||""===t)&&o.push(Ib(l.messages.whitespace,e.fullField))},type:function(e,t,n,o,l){if(e.required&&void 0===t)Hb(e,t,n,o,l);else{var r=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(r)>-1?Ub[r](t)||o.push(Ib(l.messages.types[r],e.fullField,e.type)):r&&typeof t!==e.type&&o.push(Ib(l.messages.types[r],e.fullField,e.type))}},range:function(e,t,n,o,l){var r="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,i=t,u=null,c="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(c?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(i=t.length),d&&(i=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),r?i!==e.len&&o.push(Ib(l.messages[u].len,e.fullField,e.len)):a&&!s&&ie.max?o.push(Ib(l.messages[u].max,e.fullField,e.max)):a&&s&&(ie.max)&&o.push(Ib(l.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,n,o,l){e[Kb]=Array.isArray(e[Kb])?e[Kb]:[],-1===e[Kb].indexOf(t)&&o.push(Ib(l.messages[Kb],e.fullField,e[Kb].join(", ")))},pattern:function(e,t,n,o,l){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},Yb=function(e,t,n,o,l){var r=e.type,a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,r)&&!e.required)return n();Gb.required(e,t,o,a,l,r),Bb(t,r)||Gb.type(e,t,o,a,l)}n(a)},Xb={string:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l,"string"),Bb(t,"string")||(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l),Gb.pattern(e,t,o,r,l),!0===e.whitespace&&Gb.whitespace(e,t,o,r,l))}n(r)},method:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},number:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},boolean:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},regexp:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t)||Gb.type(e,t,o,r,l)}n(r)},integer:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},float:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},array:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();Gb.required(e,t,o,r,l,"array"),null!=t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},object:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},enum:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.enum(e,t,o,r,l)}n(r)},pattern:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t,"string")||Gb.pattern(e,t,o,r,l)}n(r)},date:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"date")&&!e.required)return n();var a;Gb.required(e,t,o,r,l),Bb(t,"date")||(a=t instanceof Date?t:new Date(t),Gb.type(e,a,o,r,l),a&&Gb.range(e,a.getTime(),o,r,l))}n(r)},url:Yb,hex:Yb,email:Yb,required:function(e,t,n,o,l){var r=[],a=Array.isArray(t)?"array":typeof t;Gb.required(e,t,o,r,l,a),n(r)},any:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l)}n(r)}};function Zb(){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 e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var Jb=Zb(),Qb=function(){function e(e){this.rules=null,this._messages=Jb,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(n){var o=e[n];t.rules[n]=Array.isArray(o)?o:[o]})},t.messages=function(e){return e&&(this._messages=Db(Zb(),e)),this._messages},t.validate=function(t,n,o){var l=this;void 0===n&&(n={}),void 0===o&&(o=function(){});var r=t,a=n,s=o;if("function"==typeof a&&(s=a,a={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,r),Promise.resolve(r);if(a.messages){var i=this.messages();i===Jb&&(i=Zb()),Db(i,a.messages),a.messages=i}else a.messages=this.messages();var u={};(a.keys||Object.keys(this.rules)).forEach(function(e){var n=l.rules[e],o=r[e];n.forEach(function(n){var a=n;"function"==typeof a.transform&&(r===t&&(r=Ab({},r)),o=r[e]=a.transform(o)),(a="function"==typeof a?{validator:a}:Ab({},a)).validator=l.getValidationMethod(a),a.validator&&(a.field=e,a.fullField=a.fullField||e,a.type=l.getType(a),u[e]=u[e]||[],u[e].push({rule:a,value:o,source:r,field:e}))})});var c={};return jb(u,a,function(t,n){var o,l=t.rule,s=!("object"!==l.type&&"array"!==l.type||"object"!=typeof l.fields&&"object"!=typeof l.defaultField);function i(e,t){return Ab({},t,{fullField:l.fullField+"."+e,fullFields:l.fullFields?[].concat(l.fullFields,[e]):[e]})}function u(o){void 0===o&&(o=[]);var u=Array.isArray(o)?o:[o];!a.suppressWarning&&u.length&&e.warning("async-validator:",u),u.length&&void 0!==l.message&&(u=[].concat(l.message));var d=u.map(Vb(l,r));if(a.first&&d.length)return c[l.field]=1,n(d);if(s){if(l.required&&!t.value)return void 0!==l.message?d=[].concat(l.message).map(Vb(l,r)):a.error&&(d=[a.error(l,Ib(a.messages.required,l.field))]),n(d);var p={};l.defaultField&&Object.keys(t.value).map(function(e){p[e]=l.defaultField}),p=Ab({},p,t.rule.fields);var f={};Object.keys(p).forEach(function(e){var t=p[e],n=Array.isArray(t)?t:[t];f[e]=n.map(i.bind(null,e))});var v=new e(f);v.messages(a.messages),t.rule.options&&(t.rule.options.messages=a.messages,t.rule.options.error=a.error),v.validate(t.value,t.rule.options||a,function(e){var t=[];d&&d.length&&t.push.apply(t,d),e&&e.length&&t.push.apply(t,e),n(t.length?t:null)})}else n(d)}if(s=s&&(l.required||!l.required&&t.value),l.field=t.field,l.asyncValidator)o=l.asyncValidator(l,t.value,u,t.source,a);else if(l.validator){try{o=l.validator(l,t.value,u,t.source,a)}catch(d){console.error,a.suppressValidatorError||setTimeout(function(){throw d},0),u(d.message)}!0===o?u():!1===o?u("function"==typeof l.message?l.message(l.fullField||l.field):l.message||(l.fullField||l.field)+" fails"):o instanceof Array?u(o):o instanceof Error&&u(o.message)}o&&o.then&&o.then(function(){return u()},function(e){return u(e)})},function(e){!function(e){var t=[],n={};function o(e){var n;Array.isArray(e)?t=(n=t).concat.apply(n,e):t.push(e)}for(var l=0;l");const l=Wa("form"),r=St(),a=St(0),s=(o="update")=>{tn(()=>{t.default&&e.isAutoWidth&&("update"===o?a.value=(()=>{var e;if(null==(e=r.value)?void 0:e.firstElementChild){const e=window.getComputedStyle(r.value.firstElementChild).width;return Math.ceil(Number.parseFloat(e))}return 0})():"remove"===o&&(null==n||n.deregisterLabelWidth(a.value)))})},i=()=>s("update");return co(()=>{i()}),vo(()=>{s("remove")}),fo(()=>i()),wn(a,(t,o)=>{e.updateAll&&(null==n||n.registerLabelWidth(t,o))}),bd(yr(()=>{var e,t;return null!=(t=null==(e=r.value)?void 0:e.firstElementChild)?t:null}),i),()=>{var s,i;if(!t)return null;const{isAutoWidth:u}=e;if(u){const e=null==n?void 0:n.autoLabelWidth,i={};if((null==o?void 0:o.hasLabel)&&e&&"auto"!==e){const t=Math.max(0,Number.parseInt(e,10)-a.value),l=o.labelPosition||n.labelPosition;t&&(i["left"===l?"marginRight":"marginLeft"]=`${t}px`)}return Gl("div",{ref:r,class:[l.be("item","label-wrap")],style:i},[null==(s=t.default)?void 0:s.call(t)])}return Gl(Rl,{ref:r},[null==(i=t.default)?void 0:i.call(t)])}}});const oy=["role","aria-labelledby"];var ly=Kd(Xn({name:"ElFormItem",__name:"form-item",props:ey,setup(e,{expose:t}){const n=e,o=No(),l=mn(uf,void 0),r=mn(cf,void 0),a=vf(void 0,{formItem:!1}),s=Wa("form-item"),i=sf().value,u=St([]),c=St(""),d=function(e,t=200,n={}){const o=St(e.value),l=ud(()=>{o.value=e.value},t,n);return wn(e,()=>l()),o}(c,100),p=St(""),v=St();let h,m=!1;const b=yr(()=>n.labelPosition||(null==l?void 0:l.labelPosition)),y=yr(()=>{var e;return"top"===b.value?{}:{width:ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth)}}),w=yr(()=>{var e;if("top"===b.value||(null==l?void 0:l.inline))return{};if(!n.label&&!n.labelWidth&&A)return{};const t=ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth);return n.label||o.label?{}:{marginLeft:t}}),x=yr(()=>[s.b(),s.m(a.value),s.is("error","error"===c.value),s.is("validating","validating"===c.value),s.is("success","success"===c.value),s.is("required",L.value||n.required),s.is("no-asterisk",null==l?void 0:l.hideRequiredAsterisk),"right"===(null==l?void 0:l.requireAsteriskPosition)?"asterisk-right":"asterisk-left",{[s.m("feedback")]:null==l?void 0:l.statusIcon,[s.m(`label-${b.value}`)]:b.value}]),C=yr(()=>Zc(n.inlineMessage)?n.inlineMessage:(null==l?void 0:l.inlineMessage)||!1),_=yr(()=>[s.e("error"),{[s.em("error","inline")]:C.value}]),S=yr(()=>n.prop?f(n.prop)?n.prop.join("."):n.prop:""),k=yr(()=>!(!n.label&&!o.label)),E=yr(()=>{var e;return null!=(e=n.for)?e:1===u.value.length?u.value[0]:void 0}),T=yr(()=>!E.value&&k.value),A=!!r,O=yr(()=>{const e=null==l?void 0:l.model;if(e&&n.prop)return Vd(e,n.prop).value}),M=yr(()=>{const{required:e}=n,t=[];n.rules&&t.push(...uu(n.rules));const o=null==l?void 0:l.rules;if(o&&n.prop){const e=Vd(o,n.prop).value;e&&t.push(...uu(e))}if(void 0!==e){const n=t.map((e,t)=>[e,t]).filter(([e])=>"required"in e);if(n.length>0)for(const[o,l]of n)o.required!==e&&(t[l]={...o,required:e});else t.push({required:e})}return t}),R=yr(()=>M.value.length>0),L=yr(()=>M.value.some(e=>e.required)),P=yr(()=>{var e;return"error"===d.value&&n.showMessage&&(null==(e=null==l?void 0:l.showMessage)||e)}),N=yr(()=>`${n.label||""}${(null==l?void 0:l.labelSuffix)||""}`),I=e=>{c.value=e},B=async e=>{const t=S.value;return new Qb({[t]:e}).validate({[t]:O.value},{firstFields:!0}).then(()=>(I("success"),null==l||l.emit("validate",n.prop,!0,""),!0)).catch(e=>((e=>{var t,o;const{errors:r,fields:a}=e;I("error"),p.value=r?null!=(o=null==(t=null==r?void 0:r[0])?void 0:t.message)?o:`${n.prop} is required`:"",null==l||l.emit("validate",n.prop,!1,p.value)})(e),Promise.reject(e)))},F=async(e,t)=>{if(m||!n.prop)return!1;const o=g(t);if(!R.value)return null==t||t(!1),!1;const l=(e=>M.value.filter(t=>!t.trigger||!e||(f(t.trigger)?t.trigger.includes(e):t.trigger===e)).map(({trigger:e,...t})=>t))(e);return 0===l.length?(null==t||t(!0),!0):(I("validating"),B(l).then(()=>(null==t||t(!0),!0)).catch(e=>{const{fields:n}=e;return null==t||t(!1,n),!o&&Promise.reject(n)}))},$=()=>{I(""),p.value="",m=!1},j=async()=>{const e=null==l?void 0:l.model;if(!e||!n.prop)return;const t=Vd(e,n.prop);m=!0,t.value=nc(h),await tn(),$(),m=!1};wn(()=>n.error,e=>{p.value=e||"",I(e?"error":"")},{immediate:!0}),wn(()=>n.validateStatus,e=>I(e||""));const D=pt({...Nt(n),$el:v,size:a,validateMessage:p,validateState:c,labelId:i,inputIds:u,isGroup:T,hasLabel:k,fieldValue:O,addInputId:e=>{u.value.includes(e)||u.value.push(e)},removeInputId:e=>{u.value=u.value.filter(t=>t!==e)},resetField:j,clearValidate:$,validate:F,propString:S});return hn(cf,D),co(()=>{n.prop&&(null==l||l.addField(D),h=nc(O.value))}),vo(()=>{null==l||l.removeField(D)}),t({size:a,validateMessage:p,validateState:c,validate:F,clearValidate:$,resetField:j}),(e,t)=>{var n;return Fl(),Dl("div",{ref_key:"formItemRef",ref:v,class:q(x.value),role:T.value?"group":void 0,"aria-labelledby":T.value?Ot(i):void 0},[Gl(Ot(ny),{"is-auto-width":"auto"===y.value.width,"update-all":"auto"===(null==(n=Ot(l))?void 0:n.labelWidth)},{default:pn(()=>[e.label||e.$slots.label?(Fl(),zl(_o(E.value?"label":"div"),{key:0,id:Ot(i),for:E.value,class:q(Ot(s).e("label")),style:V(y.value)},{default:pn(()=>[Ao(e.$slots,"label",{label:N.value},()=>[Xl(Z(N.value),1)])]),_:3},8,["id","for","class","style"])):Zl("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),Kl("div",{class:q(Ot(s).e("content")),style:V(w.value)},[Ao(e.$slots,"default"),Gl(ba,{name:`${Ot(s).namespace.value}-zoom-in-top`},{default:pn(()=>[P.value?Ao(e.$slots,"error",{key:0,error:p.value},()=>[Kl("div",{class:q(_.value)},Z(p.value),3)]):Zl("v-if",!0)]),_:3},8,["name"])],6)],10,oy)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const ry=Gd(Tb,{FormItem:ly}),ay=Yd(ly);let sy=class{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,t=>{t.addEventListener("keydown",t=>{let n=!1;switch(cv(t)){case iv.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case iv.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case iv.tab:bf(e,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:n=!0,t.currentTarget.click()}return n&&(t.preventDefault(),t.stopPropagation()),!1})})}},iy=class{constructor(e,t){this.domNode=e,this.submenu=null,this.submenu=null,this.init(t)}init(e){this.domNode.setAttribute("tabindex","0");const t=this.domNode.querySelector(`.${e}-menu`);t&&(this.submenu=new sy(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",e=>{let t=!1;switch(cv(e)){case iv.down:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case iv.up:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case iv.tab:bf(e.currentTarget,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:t=!0,e.currentTarget.click()}t&&e.preventDefault()})}},uy=class{constructor(e,t){this.domNode=e,this.init(t)}init(e){const t=this.domNode.childNodes;Array.from(t).forEach(t=>{1===t.nodeType&&new iy(t,e)})}};var cy=Kd(Xn({name:"ElMenuCollapseTransition",__name:"menu-collapse-transition",setup(e){const t=Wa("menu"),n={onBeforeEnter:e=>e.style.opacity="0.2",onEnter(e,n){op(e,`${t.namespace.value}-opacity-transition`),e.style.opacity="1",n()},onAfterEnter(e){lp(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=""},onBeforeLeave(e){e.dataset||(e.dataset={}),np(e,t.m("collapse"))?(lp(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),op(e,t.m("collapse"))):(op(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),lp(e,t.m("collapse"))),e.style.width=`${e.scrollWidth}px`,e.style.overflow="hidden"},onLeave(e){op(e,"horizontal-collapse-transition"),e.style.width=`${e.dataset.scrollWidth}px`}};return(e,t)=>(Fl(),zl(Nr,tr({mode:"out-in"},n),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function dy(e,t){const n=yr(()=>{let n=e.parent;const o=[t.value];for(;"ElMenu"!==n.type.name;)n.props.index&&o.unshift(n.props.index),n=n.parent;return o});return{parentMenu:yr(()=>{let t=e.parent;for(;t&&!["ElMenu","ElSubMenu"].includes(t.type.name);)t=t.parent;return t}),indexPath:n}}function py(e){return yr(()=>{const t=e.backgroundColor;return t?new Pm(t).shade(20).toString():""})}const fy=(e,t)=>{const n=Wa("menu");return yr(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":py(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},vy="rootMenu",hy="subMenu:",my=Nd({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,popperStyle:{type:[String,Object]},disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:Dp},expandOpenIcon:{type:Dp},collapseCloseIcon:{type:Dp},collapseOpenIcon:{type:Dp}}),gy="ElSubMenu";var by=Xn({name:gy,props:my,setup(e,{slots:t,expose:n}){const o=ar(),{indexPath:l,parentMenu:r}=dy(o,yr(()=>e.index)),a=Wa("menu"),s=Wa("sub-menu"),i=mn(vy);i||xd(gy,"can not inject root menu");const u=mn(`${hy}${r.value.uid}`);u||xd(gy,"can not inject sub menu");const c=St({}),d=St({});let p;const f=St(!1),v=St(),h=St(),m=yr(()=>0===u.level),g=yr(()=>"horizontal"===k.value&&m.value?"bottom-start":"right-start"),y=yr(()=>"horizontal"===k.value&&m.value||"vertical"===k.value&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?_.value?e.expandOpenIcon:e.expandCloseIcon:up:e.collapseCloseIcon&&e.collapseOpenIcon?_.value?e.collapseOpenIcon:e.collapseCloseIcon:dp),w=yr(()=>{const t=e.teleported;return Xc(t)?m.value:t}),x=yr(()=>i.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),C=yr(()=>"horizontal"===k.value&&m.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),_=yr(()=>i.openedMenus.includes(e.index)),S=yr(()=>[...Object.values(c.value),...Object.values(d.value)].some(({active:e})=>e)),k=yr(()=>i.props.mode),E=yr(()=>i.props.persistent),T=pt({index:e.index,indexPath:l,active:S}),A=fy(i.props,u.level+1),O=yr(()=>{var t;return null!=(t=e.popperOffset)?t:i.props.popperOffset}),M=yr(()=>{var t;return null!=(t=e.popperClass)?t:i.props.popperClass}),R=yr(()=>{var t;return null!=(t=e.popperStyle)?t:i.props.popperStyle}),L=yr(()=>{var t;return null!=(t=e.showTimeout)?t:i.props.showTimeout}),P=yr(()=>{var t;return null!=(t=e.hideTimeout)?t:i.props.hideTimeout}),N=e=>{var t,n,o;e||null==(o=null==(n=null==(t=h.value)?void 0:t.popperRef)?void 0:n.popperInstanceRef)||o.destroy()},I=()=>{"hover"===i.props.menuTrigger&&"horizontal"===i.props.mode||i.props.collapse&&"vertical"===i.props.mode||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:l.value,active:S.value})},B=(t,n=L.value)=>{var o;"focus"!==t.type&&("click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode||e.disabled?u.mouseInChild.value=!0:(u.mouseInChild.value=!0,null==p||p(),({stop:p}=dd(()=>{i.openMenu(e.index,l.value)},n)),w.value&&(null==(o=r.value.vnode.el)||o.dispatchEvent(new MouseEvent("mouseenter"))),"mouseenter"===t.type&&t.target&&tn(()=>{yf(t.target,{preventScroll:!0})})))},F=(t=!1)=>{var n;"click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode?u.mouseInChild.value=!1:(null==p||p(),u.mouseInChild.value=!1,({stop:p}=dd(()=>!f.value&&i.closeMenu(e.index,l.value),P.value)),w.value&&t&&(null==(n=u.handleMouseleave)||n.call(u,!0)))};wn(()=>i.props.collapse,e=>N(Boolean(e)));{const e=e=>{d.value[e.index]=e},t=e=>{delete d.value[e.index]};hn(`${hy}${o.uid}`,{addSubMenu:e,removeSubMenu:t,handleMouseleave:F,mouseInChild:f,level:u.level+1})}return n({opened:_}),co(()=>{i.addSubMenu(T),u.addSubMenu(T)}),vo(()=>{u.removeSubMenu(T),i.removeSubMenu(T)}),()=>{var n;const l=[null==(n=t.title)?void 0:n.call(t),wr(ip,{class:s.e("icon-arrow"),style:{transform:_.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>b(y.value)?wr(o.appContext.components[y.value]):wr(y.value)})],r=i.isMenuPopup?wr(im,{ref:h,visible:_.value,effect:"light",pure:!0,offset:O.value,showArrow:!1,persistent:E.value,popperClass:M.value,popperStyle:R.value,placement:g.value,teleported:w.value,fallbackPlacements:C.value,transition:x.value,gpuAcceleration:!1},{content:()=>{var e;return wr("div",{class:[a.m(k.value),a.m("popup-container"),M.value],onMouseenter:e=>B(e,100),onMouseleave:()=>F(!0),onFocus:e=>B(e,100)},[wr("ul",{class:[a.b(),a.m("popup"),a.m(`popup-${g.value}`)],style:A.value},[null==(e=t.default)?void 0:e.call(t)])])},default:()=>wr("div",{class:s.e("title"),onClick:I},l)}):wr(Rl,{},[wr("div",{class:s.e("title"),ref:v,onClick:I},l),wr(Mg,{},{default:()=>{var e;return fn(wr("ul",{role:"menu",class:[a.b(),a.m("inline")],style:A.value},[null==(e=t.default)?void 0:e.call(t)]),[[Xr,_.value]])}})]);return wr("li",{class:[s.b(),s.is("active",S.value),s.is("opened",_.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:_.value,onMouseenter:B,onMouseleave:()=>F(),onFocus:B},[r])}}});const yy=Nd({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Array,default:()=>[]},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:Dp,default:()=>Op},popperEffect:{type:String,default:"dark"},popperClass:String,popperStyle:{type:[String,Object]},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),wy=e=>f(e)&&e.every(e=>b(e));var xy=Xn({name:"ElMenu",props:yy,emits:{close:(e,t)=>b(e)&&wy(t),open:(e,t)=>b(e)&&wy(t),select:(e,t,n,o)=>b(e)&&wy(t)&&w(n)&&(Xc(o)||o instanceof Promise)},setup(e,{emit:t,slots:n,expose:o}){const l=ar(),r=l.appContext.config.globalProperties.$router,a=St(),s=St(),i=Wa("menu"),u=Wa("sub-menu");let c=64;const d=St(-1),p=St(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=St(e.defaultActive),v=St({}),h=St({}),m=yr(()=>"horizontal"===e.mode||"vertical"===e.mode&&e.collapse),g=(n,o)=>{p.value.includes(n)||(e.uniqueOpened&&(p.value=p.value.filter(e=>o.includes(e))),p.value.push(n),t("open",n,o))},b=e=>{const t=p.value.indexOf(e);-1!==t&&p.value.splice(t,1)},y=(e,n)=>{b(e),t("close",e,n)},w=({index:e,indexPath:t})=>{p.value.includes(e)?y(e,t):g(e,t)},x=n=>{("horizontal"===e.mode||e.collapse)&&(p.value=[]);const{index:o,indexPath:l}=n;if(!Vc(o)&&!Vc(l))if(e.router&&r){const e=n.route||o,a=r.push(e).then(e=>(e||(f.value=o),e));t("select",o,l,{index:o,indexPath:l,route:e},a)}else f.value=o,t("select",o,l,{index:o,indexPath:l})},C=t=>{var n;const o=v.value,l=o[t]||f.value&&o[f.value]||o[e.defaultActive];f.value=null!=(n=null==l?void 0:l.index)?n:t},_=e=>{const t=getComputedStyle(e),n=Number.parseInt(t.marginLeft,10),o=Number.parseInt(t.marginRight,10);return e.offsetWidth+n+o||0},S=()=>{if(!a.value)return-1;const e=Array.from(a.value.childNodes).filter(e=>"#comment"!==e.nodeName&&("#text"!==e.nodeName||e.nodeValue)),t=getComputedStyle(a.value),n=Number.parseInt(t.paddingLeft,10),o=Number.parseInt(t.paddingRight,10),l=a.value.clientWidth-n-o;let r=0,s=0;return e.forEach((e,t)=>{r+=_(e),r<=l-c&&(s=t+1)}),s===e.length?-1:s};let k=!0;const E=()=>{const e=pd(s);if(e&&(c=_(e)||64),d.value===S())return;const t=()=>{d.value=-1,tn(()=>{d.value=S()})};k?t():((e,t=33.34)=>{let n;return()=>{n&&clearTimeout(n),n=setTimeout(()=>{e()},t)}})(t)(),k=!1};let T;wn(()=>e.defaultActive,e=>{v.value[e]||(f.value=""),C(e)}),wn(()=>e.collapse,e=>{e&&(p.value=[])}),wn(v.value,()=>{const t=f.value&&v.value[f.value];t&&"horizontal"!==e.mode&&!e.collapse&&t.indexPath.forEach(e=>{const t=h.value[e];t&&g(e,t.indexPath)})}),yn(()=>{"horizontal"===e.mode&&e.ellipsis?T=bd(a,E).stop:null==T||T()});const A=St(!1);{const t=e=>{h.value[e.index]=e},n=e=>{delete h.value[e.index]},o=e=>{v.value[e.index]=e},r=e=>{delete v.value[e.index]};hn(vy,pt({props:e,openedMenus:p,items:v,subMenus:h,activeIndex:f,isMenuPopup:m,addMenuItem:o,removeMenuItem:r,addSubMenu:t,removeSubMenu:n,openMenu:g,closeMenu:y,handleMenuItemClick:x,handleSubMenuClick:w})),hn(`${hy}${l.uid}`,{addSubMenu:t,removeSubMenu:n,mouseInChild:A,level:0})}co(()=>{"horizontal"===e.mode&&new uy(l.vnode.el,i.namespace.value)}),o({open:e=>{const{indexPath:t}=h.value[e];t.forEach(e=>g(e,t))},close:b,updateActiveIndex:C,handleResize:E});const O=fy(e,0);return()=>{var o,l;let r=null!=(l=null==(o=n.default)?void 0:o.call(n))?l:[];const c=[];if("horizontal"===e.mode&&a.value){const t=Vm(r).filter(e=>8!==(null==e?void 0:e.shapeFlag)),n=-1===d.value?t:t.slice(0,d.value),o=-1===d.value?[]:t.slice(d.value);(null==o?void 0:o.length)&&e.ellipsis&&(r=n,c.push(wr(by,{ref:s,index:"sub-menu-more",class:u.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>wr(ip,{class:u.e("icon-more")},{default:()=>wr(e.ellipsisIcon)}),default:()=>o})))}const f=e.closeOnClickOutside?[[Eg,()=>{p.value.length&&(A.value||(p.value.forEach(e=>{return t("close",e,(n=e,h.value[n].indexPath));var n}),p.value=[]))}]]:[],v=fn(wr("ul",{key:String(e.collapse),role:"menubar",ref:a,style:O.value,class:{[i.b()]:!0,[i.m(e.mode)]:!0,[i.m("collapse")]:e.collapse}},[...r,...c]),f);return e.collapseTransition&&"vertical"===e.mode?wr(cy,()=>v):v}}});const Cy=Nd({index:{type:[String,null],default:null},route:{type:[String,Object]},disabled:Boolean}),_y="ElMenuItem";var Sy=Kd(Xn({name:_y,__name:"menu-item",props:Cy,emits:{click:e=>b(e.index)&&f(e.indexPath)},setup(e,{expose:t,emit:n}){const o=e,l=n;ed(o.index);const r=ar(),a=mn(vy),s=Wa("menu"),i=Wa("menu-item");a||xd(_y,"can not inject root menu");const{parentMenu:u,indexPath:c}=dy(r,Ft(o,"index")),d=mn(`${hy}${u.value.uid}`);d||xd(_y,"can not inject sub menu");const p=yr(()=>o.index===a.activeIndex),f=pt({index:o.index,indexPath:c,active:p}),v=()=>{o.disabled||(a.handleMenuItemClick({index:o.index,indexPath:c.value,route:o.route}),l("click",f))};return co(()=>{d.addSubMenu(f),a.addMenuItem(f)}),vo(()=>{d.removeSubMenu(f),a.removeMenuItem(f)}),t({parentMenu:u,rootMenu:a,active:p,nsMenu:s,nsMenuItem:i,handleClick:v}),(e,t)=>(Fl(),Dl("li",{class:q([Ot(i).b(),Ot(i).is("active",p.value),Ot(i).is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:v},["ElMenu"===Ot(u).type.name&&Ot(a).props.collapse&&e.$slots.title?(Fl(),zl(Ot(im),{key:0,effect:Ot(a).props.popperEffect,placement:"right","fallback-placements":["left"],"popper-class":Ot(a).props.popperClass,"popper-style":Ot(a).props.popperStyle,persistent:Ot(a).props.persistent,"focus-on-target":""},{content:pn(()=>[Ao(e.$slots,"title")]),default:pn(()=>[Kl("div",{class:q(Ot(s).be("tooltip","trigger"))},[Ao(e.$slots,"default")],2)]),_:3},8,["effect","popper-class","popper-style","persistent"])):(Fl(),Dl(Rl,{key:1},[Ao(e.$slots,"default"),Ao(e.$slots,"title")],64))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]),ky=Kd(Xn({name:"ElMenuItemGroup",__name:"menu-item-group",props:{title:String},setup(e){const t=Wa("menu-item-group");return(e,n)=>(Fl(),Dl("li",{class:q(Ot(t).b())},[Kl("div",{class:q(Ot(t).e("title"))},[e.$slots.title?Ao(e.$slots,"title",{key:1}):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.title),1)],64))],2),Kl("ul",null,[Ao(e.$slots,"default")])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const Ey=Gd(xy,{MenuItem:Sy,MenuItemGroup:ky,SubMenu:by}),Ty=Yd(Sy);Yd(ky),Yd(by);const Ay=e=>L(e),Oy=Gd(Kd(Xn({name:"ElPopconfirm",__name:"popconfirm",props:Nd({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:pm,default:"primary"},cancelButtonType:{type:String,values:pm,default:"text"},icon:{type:Dp,default:()=>Lp},iconColor:{type:String,default:"#f90"},hideIcon:Boolean,hideAfter:{type:Number,default:200},effect:{...Wh.effect,default:"light"},teleported:Wh.teleported,persistent:Wh.persistent,width:{type:[String,Number],default:150},virtualTriggering:qh.virtualTriggering,virtualRef:qh.virtualRef}),emits:{confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},setup(e,{expose:t,emit:n}){const o=e,l=n,{t:r}=Rd(),a=Wa("popconfirm"),s=St(),i=St(),u=yr(()=>{var e;return null==(e=Ot(s))?void 0:e.popperRef}),c=()=>{var e,t;null==(t=null==(e=i.value)?void 0:e.focus)||t.call(e)},d=()=>{var e,t;null==(t=null==(e=s.value)?void 0:e.onClose)||t.call(e)},p=yr(()=>({width:ap(o.width)})),f=e=>{l("confirm",e),d()},v=e=>{l("cancel",e),d()},h=yr(()=>o.confirmButtonText||r("el.popconfirm.confirmButtonText")),m=yr(()=>o.cancelButtonText||r("el.popconfirm.cancelButtonText"));return t({popperRef:u,hide:d}),(e,t)=>(Fl(),zl(Ot(im),tr({ref_key:"tooltipRef",ref:s,trigger:"click",effect:e.effect},e.$attrs,{"virtual-triggering":e.virtualTriggering,"virtual-ref":e.virtualRef,"popper-class":`${Ot(a).namespace.value}-popover`,"popper-style":p.value,teleported:e.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":e.hideAfter,persistent:e.persistent,loop:"",onShow:c}),{content:pn(()=>[Kl("div",{ref_key:"rootRef",ref:i,tabindex:"-1",class:q(Ot(a).b())},[Kl("div",{class:q(Ot(a).e("main"))},[!e.hideIcon&&e.icon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(a).e("icon")),style:V({color:e.iconColor})},{default:pn(()=>[(Fl(),zl(_o(e.icon)))]),_:1},8,["class","style"])):Zl("v-if",!0),Xl(" "+Z(e.title),1)],2),Kl("div",{class:q(Ot(a).e("action"))},[Ao(e.$slots,"actions",{confirm:f,cancel:v},()=>[Gl(Ot(Fm),{size:"small",type:"text"===e.cancelButtonType?"":e.cancelButtonType,text:"text"===e.cancelButtonType,onClick:v},{default:pn(()=>[Xl(Z(m.value),1)]),_:1},8,["type","text"]),Gl(Ot(Fm),{size:"small",type:"text"===e.confirmButtonType?"":e.confirmButtonType,text:"text"===e.confirmButtonType,onClick:f},{default:pn(()=>[Xl(Z(h.value),1)]),_:1},8,["type","text"])])],2)],2)]),default:pn(()=>[e.$slots.reference?Ao(e.$slots,"reference",{key:0}):Zl("v-if",!0)]),_:3},16,["effect","virtual-triggering","virtual-ref","popper-class","popper-style","teleported","hide-after","persistent"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popconfirm/src/popconfirm.vue"]])),My=Gd(Kd(Xn({name:"ElRow",__name:"row",props:Nd({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:["start","center","end","space-around","space-between","space-evenly"],default:"start"},align:{type:String,values:["top","middle","bottom"]}}),setup(e){const t=e,n=Wa("row"),o=yr(()=>t.gutter);hn(Ag,{gutter:o});const l=yr(()=>{const e={};return t.gutter?(e.marginRight=e.marginLeft=`-${t.gutter/2}px`,e):e}),r=yr(()=>[n.b(),n.is(`justify-${t.justify}`,"start"!==t.justify),n.is(`align-${t.align}`,!!t.align)]);return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]])),Ry="horizontal",Ly="vertical",Py={[Ry]:"deltaX",[Ly]:"deltaY"},Ny=({atEndEdge:e,atStartEdge:t,layout:n},o)=>{let l,r=0;const a=n=>n<0&&t.value||n>0&&e.value;return{hasReachedEdge:a,onWheel:e=>{var t;t=l,ld?window.cancelAnimationFrame(t):clearTimeout(t);const s=e[Py[n.value]];a(r)&&a(r+s)||(r+=s,Up()||e.preventDefault(),l=ep(()=>{o(r),r=0}))}}},Iy=Nd({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:e=>["",...Id].includes(e)},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:Dp},activeActionIcon:{type:Dp},activeIcon:{type:Dp},inactiveIcon:{type:Dp},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Function},id:String,tabindex:{type:[String,Number]},...Qp(["ariaLabel"])}),By=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],Fy=["aria-hidden"],$y={key:1},jy={key:1},Vy=["aria-hidden"],Dy="ElSwitch",zy=Gd(Kd(Xn({name:Dy,__name:"switch",props:Iy,emits:{[Zd]:e=>Zc(e)||b(e)||Jc(e),[Jd]:e=>Zc(e)||b(e)||Jc(e),[Qd]:e=>Zc(e)||b(e)||Jc(e)},setup(e,{expose:t,emit:n}){const o=e,l=n,{formItem:r}=df(),a=vf(),s=Wa("switch"),{inputId:i}=pf(o,{formItemContext:r}),u=hf(yr(()=>{if(o.loading)return!0})),c=St(!1!==o.modelValue),d=kt(),p=yr(()=>[s.b(),s.m(a.value),s.is("disabled",u.value),s.is("checked",g.value)]),f=yr(()=>[s.e("label"),s.em("label","left"),s.is("active",!g.value)]),v=yr(()=>[s.e("label"),s.em("label","right"),s.is("active",g.value)]),h=yr(()=>({width:ap(o.width)}));wn(()=>o.modelValue,()=>{c.value=!0});const m=yr(()=>!!c.value&&o.modelValue),g=yr(()=>m.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(m.value)||(l(Zd,o.inactiveValue),l(Jd,o.inactiveValue),l(Qd,o.inactiveValue)),wn(g,e=>{var t;d.value.checked=e,o.validateEvent&&(null==(t=null==r?void 0:r.validate)||t.call(r,"change").catch(e=>{}))});const b=()=>{const e=g.value?o.inactiveValue:o.activeValue;l(Zd,e),l(Jd,e),l(Qd,e),tn(()=>{d.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:e}=o;if(!e)return void b();const t=e();[x(t),Zc(t)].includes(!0)||xd(Dy,"beforeChange must return type `Promise` or `boolean`"),x(t)?t.then(e=>{e&&b()}).catch(e=>{}):t&&b()};return co(()=>{d.value.checked=g.value}),t({focus:()=>{var e,t;null==(t=null==(e=d.value)?void 0:e.focus)||t.call(e)},checked:g}),(e,t)=>(Fl(),Dl("div",{class:q(p.value),onClick:Ra(y,["prevent"])},[Kl("input",{id:Ot(i),ref_key:"input",ref:d,class:q(Ot(s).e("input")),type:"checkbox",role:"switch","aria-checked":g.value,"aria-disabled":Ot(u),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:Ot(u),tabindex:e.tabindex,onChange:b,onKeydown:Pa(y,["enter"])},null,42,By),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||e.$slots.inactive)?(Fl(),Dl("span",{key:0,class:q(f.value)},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",{key:1,"aria-hidden":g.value},Z(e.inactiveText),9,Fy)):Zl("v-if",!0)])],2)):Zl("v-if",!0),Kl("span",{class:q(Ot(s).e("core")),style:V(h.value)},[e.inlinePrompt?(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner"))},[g.value?(Fl(),Dl("div",{key:1,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",jy,Z(e.activeText),1)):Zl("v-if",!0)])],2)):(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",$y,Z(e.inactiveText),1)):Zl("v-if",!0)])],2))],2)):Zl("v-if",!0),Kl("div",{class:q(Ot(s).e("action"))},[e.loading?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(s).is("loading"))},{default:pn(()=>[Gl(Ot(Ep))]),_:1},8,["class"])):g.value?Ao(e.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeActionIcon)))]),_:1})):Zl("v-if",!0)]):g.value?Zl("v-if",!0):Ao(e.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveActionIcon)))]),_:1})):Zl("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||e.$slots.active)?(Fl(),Dl("span",{key:1,class:q(v.value)},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",{key:1,"aria-hidden":!g.value},Z(e.activeText),9,Vy)):Zl("v-if",!0)])],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]])),Hy=function(e){var t;return null==(t=e.target)?void 0:t.closest("td")},Wy=function(e,t,n,o,l){if(!t&&!o&&(!l||f(l)&&!l.length))return e;n=b(n)?"descending"===n?-1:1:n&&n<0?-1:1;const r=o?null:function(n,o){return l?Bc(uu(l),t=>b(t)?Yi(n,t):t(n,o,e)):("$key"!==t&&w(n)&&"$value"in n&&(n=n.$value),[w(n)?t?Yi(n,t):null:n])};return e.map((e,t)=>({value:e,index:t,key:r?r(e,t):null})).sort((e,t)=>{let l=function(e,t){var n,l,r,a,s,i;if(o)return o(e.value,t.value);for(let o=0,u=null!=(l=null==(n=e.key)?void 0:n.length)?l:0;o(null==(i=t.key)?void 0:i[o]))return 1}return 0}(e,t);return l||(l=e.index-t.index),l*+n}).map(e=>e.value)},qy=function(e,t){let n=null;return e.columns.forEach(e=>{e.id===t&&(n=e)}),n},Uy=function(e,t,n){const o=(t.className||"").match(new RegExp(`${n}-table_[^\\s]+`,"gm"));return o?qy(e,o[0]):null},Ky=(e,t)=>{if(!e)throw new Error("Row is required when get row identity");if(b(t)){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let o=e;for(const e of n)o=o[e];return`${o}`}return g(t)?t.call(null,e):""},Gy=function(e,t,n=!1,o="children"){const l={};return(e||[]).forEach((e,r)=>{if(l[Ky(e,t)]={row:e,index:r},n){const n=e[o];f(n)&&Object.assign(l,Gy(n,t,!0,o))}}),l};function Yy(e){return""===e||Xc(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Xy(e){return""===e||Xc(e)||(e=Yy(e),Number.isNaN(e)&&(e=80)),e}function Zy(e,t,n,o,l,r,a){let s=null!=r?r:0,i=!1;const u=(()=>{if(!a)return e.indexOf(t);const n=Ky(t,a);return e.findIndex(e=>Ky(e,a)===n)})(),c=-1!==u,d=null==l?void 0:l.call(null,t,s),p=n=>{"add"===n?e.push(t):e.splice(u,1),i=!0},v=e=>{let t=0;const n=(null==o?void 0:o.children)&&e[o.children];return n&&f(n)&&(t+=n.length,n.forEach(e=>{t+=v(e)})),t};return l&&!d||(Zc(n)?n&&!c?p("add"):!n&&c&&p("remove"):p(c?"remove":"add")),!(null==o?void 0:o.checkStrictly)&&(null==o?void 0:o.children)&&f(t[o.children])&&t[o.children].forEach(t=>{const r=Zy(e,t,null!=n?n:!c,o,l,s+1,a);s+=v(t)+1,r&&(i=r)}),i}function Jy(e,t,n="children",o="hasChildren",l=!1){const r=e=>!(f(e)&&e.length);function a(e,s,i){t(e,s,i),s.forEach(e=>{if(e[o]&&l)return void t(e,null,i+1);const s=e[n];r(s)||a(e,s,i+1)})}e.forEach(e=>{if(e[o]&&l)return void t(e,null,0);const s=e[n];r(s)||a(e,s,0)})}let Qy=null;function ew(e,t,n,o,l,r){var a;const s=((e,t,n,o)=>{const l={strategy:"fixed",...e.popperOptions},r=g(null==o?void 0:o.tooltipFormatter)?o.tooltipFormatter({row:n,column:o,cellValue:Vd(n,o.property).value}):void 0;return Hl(r)?{slotContent:r,content:null,...e,popperOptions:l}:{slotContent:null,content:null!=r?r:t,...e,popperOptions:l}})(e,t,n,o),i={...s,slotContent:void 0};if((null==Qy?void 0:Qy.trigger)===l){const e=null==(a=Qy.vm)?void 0:a.component;return Hc(null==e?void 0:e.props,i),void(e&&s.slotContent&&(e.slots.content=()=>[s.slotContent]))}null==Qy||Qy();const u=null==r?void 0:r.refs.tableWrapper,c=null==u?void 0:u.dataset.prefix,d=Gl(im,{virtualTriggering:!0,virtualRef:l,appendTo:u,placement:"top",transition:"none",offset:0,hideAfter:0,...i},s.slotContent?{content:()=>s.slotContent}:void 0);d.appContext={...r.appContext,...r};const p=document.createElement("div");Fa(d,p),d.component.exposed.onOpen();const f=null==u?void 0:u.querySelector(`.${c}-scrollbar__wrap`);Qy=()=>{var e,t;(null==(t=null==(e=d.component)?void 0:e.exposed)?void 0:t.onClose)&&d.component.exposed.onClose(),Fa(null,p);const n=Qy;null==f||f.removeEventListener("scroll",n),n.trigger=void 0,n.vm=void 0,Qy=null},Qy.trigger=null!=l?l:void 0,Qy.vm=d,null==f||f.addEventListener("scroll",Qy)}function tw(e){return e.children?Bc(e.children,tw):[e]}function nw(e,t){return e+t.colSpan}const ow=(e,t,n,o)=>{let l=0,r=e;const a=n.states.columns.value;if(o){const t=tw(o[e]);l=a.slice(0,a.indexOf(t[0])).reduce(nw,0),r=l+t.reduce(nw,0)-1}else l=e;let s;switch(t){case"left":r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:l,after:r}:{}},lw=(e,t,n,o,l,r=0)=>{const a=[],{direction:s,start:i,after:u}=ow(t,n,o,l);if(s){const t="left"===s;a.push(`${e}-fixed-column--${s}`),t&&u+r===o.states.fixedLeafColumnsLength.value-1?a.push("is-last-column"):t||i-r!==o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value||a.push("is-first-column")}return a};function rw(e,t){return e+(Dc(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const aw=(e,t,n,o)=>{const{direction:l,start:r=0,after:a=0}=ow(e,t,n,o);if(!l)return;const s={},i="left"===l,u=n.states.columns.value;return i?s.left=u.slice(0,r).reduce(rw,0):s.right=u.slice(a+1).reverse().reduce(rw,0),s},sw=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function iw(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!iw(e.children)))?e:null}const uw=e=>{const t=[];return e.forEach(e=>{e.children&&e.children.length>0?t.push.apply(t,uw(e.children)):t.push(e)}),t};function cw(){var e;const t=ar(),{size:n}=Nt(null==(e=t.proxy)?void 0:e.$props),o=St(null),l=St([]),r=St([]),a=St(!1),s=St([]),i=St([]),u=St([]),c=St([]),d=St([]),v=St([]),h=St([]),m=St([]),g=St(0),y=St(0),w=St(0),x=St(!1),C=St([]),_=St(!1),S=St(!1),k=St(null),E=St({}),T=St(null),A=St(null),O=St(null),M=St(null),R=St(null),L=yr(()=>o.value?Gy(C.value,o.value):void 0);wn(l,()=>{var e;t.state&&(I(!1),"auto"===t.props.tableLayout&&(null==(e=t.refs.tableHeaderRef)||e.updateFixedColumnStyle()))},{deep:!0});const P=e=>{var t;null==(t=e.children)||t.forEach(t=>{t.fixed=e.fixed,P(t)})},N=()=>{s.value.forEach(e=>{P(e)}),c.value=s.value.filter(e=>[!0,"left"].includes(e.fixed));const e=s.value.find(e=>"selection"===e.type);let t;e&&"right"!==e.fixed&&!c.value.includes(e)&&0===s.value.indexOf(e)&&c.value.length&&(c.value.unshift(e),t=!0),d.value=s.value.filter(e=>"right"===e.fixed);const n=s.value.filter(e=>!(t&&"selection"===e.type||e.fixed));i.value=Array.from(c.value).concat(n).concat(d.value);const o=uw(n),l=uw(c.value),r=uw(d.value);g.value=o.length,y.value=l.length,w.value=r.length,u.value=Array.from(l).concat(o).concat(r),a.value=c.value.length>0||d.value.length>0},I=(e,n=!1)=>{e&&N(),n?t.state.doLayout():t.state.debouncedUpdateLayout()},B=e=>L.value?!!L.value[Ky(e,o.value)]:C.value.includes(e),F=e=>{var n;if(!t||!t.store)return 0;const{treeData:o}=t.store.states;let l=0;const r=null==(n=o.value[e])?void 0:n.children;return r&&(l+=r.length,r.forEach(e=>{l+=F(e)})),l},$=(e,t,n)=>{A.value&&A.value!==e&&(A.value.order=null),A.value=e,O.value=t,M.value=n},j=()=>{let e=Ot(r);Object.keys(E.value).forEach(t=>{const n=E.value[t];if(!n||0===n.length)return;const o=qy({columns:u.value},t);o&&o.filterMethod&&(e=e.filter(e=>n.some(t=>o.filterMethod.call(null,t,e,o))))}),T.value=e},V=()=>{var e;l.value=((e,t)=>{const n=t.sortingColumn;return!n||b(n.sortable)?e:Wy(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)})(null!=(e=T.value)?e:[],{sortingColumn:A.value,sortProp:O.value,sortOrder:M.value})},{setExpandRowKeys:D,toggleRowExpansion:z,updateExpandRows:H,states:W,isRowExpanded:q}=function(e){const t=ar(),n=St(!1),o=St([]);return{updateExpandRows:()=>{const t=e.data.value||[],l=e.rowKey.value;if(n.value)o.value=t.slice();else if(l){const e=Gy(o.value,l);o.value=t.reduce((t,n)=>{const o=Ky(n,l);return e[o]&&t.push(n),t},[])}else o.value=[]},toggleRowExpansion:(n,l)=>{Zy(o.value,n,l,void 0,void 0,void 0,e.rowKey.value)&&t.emit("expand-change",n,o.value.slice())},setExpandRowKeys:n=>{t.store.assertRowKey();const l=e.data.value||[],r=e.rowKey.value,a=Gy(l,r);o.value=n.reduce((e,t)=>{const n=a[t];return n&&e.push(n.row),e},[])},isRowExpanded:t=>{const n=e.rowKey.value;return n?!!Gy(o.value,n)[Ky(t,n)]:o.value.includes(t)},states:{expandRows:o,defaultExpandAll:n}}}({data:l,rowKey:o}),{updateTreeExpandKeys:U,toggleTreeExpansion:K,updateTreeData:G,updateKeyChildren:Y,loadOrToggle:X,states:Z}=function(e){const t=St([]),n=St({}),o=St(16),l=St(!1),r=St({}),a=St("hasChildren"),s=St("children"),i=St(!1),u=ar(),c=yr(()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return p(t)}),d=yr(()=>{const t=e.rowKey.value,n=Object.keys(r.value),o={};return n.length?(n.forEach(e=>{if(r.value[e].length){const n={children:[]};r.value[e].forEach(e=>{const l=Ky(e,t);n.children.push(l),e[a.value]&&!o[l]&&(o[l]={children:[]})}),o[e]=n}}),o):o}),p=t=>{const n=e.rowKey.value,o={};return Jy(t,(e,t,r)=>{const a=Ky(e,n);f(t)?o[a]={children:t.map(e=>Ky(e,n)),level:r}:l.value&&(o[a]={children:[],lazy:!0,level:r})},s.value,a.value,l.value),o},v=(e=!1,o)=>{var r,a;o||(o=null==(r=u.store)?void 0:r.states.defaultExpandAll.value);const s=c.value,i=d.value,p=Object.keys(s),f={};if(p.length){const r=Ot(n),a=[],u=(n,l)=>{if(e)return t.value?o||t.value.includes(l):!(!o&&!(null==n?void 0:n.expanded));{const e=o||t.value&&t.value.includes(l);return!(!(null==n?void 0:n.expanded)&&!e)}};p.forEach(e=>{const t=r[e],n={...s[e]};if(n.expanded=u(t,e),n.lazy){const{loaded:o=!1,loading:l=!1}=t||{};n.loaded=!!o,n.loading=!!l,a.push(e)}f[e]=n});const c=Object.keys(i);l.value&&c.length&&a.length&&c.forEach(e=>{var t;const n=r[e],o=i[e].children;if(a.includes(e)){if(0!==(null==(t=f[e].children)?void 0:t.length))throw new Error("[ElTable]children must be an empty array.");f[e].children=o}else{const{loaded:t=!1,loading:l=!1}=n||{};f[e]={lazy:!0,loaded:!!t,loading:!!l,expanded:u(n,e),children:o,level:void 0}}})}n.value=f,null==(a=u.store)||a.updateTableScrollY()};wn(()=>t.value,()=>{v(!0)}),wn(()=>c.value,()=>{v()}),wn(()=>d.value,()=>{v()});const h=e=>l.value&&e&&"loaded"in e&&!e.loaded,m=(t,o)=>{u.store.assertRowKey();const l=e.rowKey.value,r=Ky(t,l),a=r&&n.value[r];if(r&&a&&"expanded"in a){const e=a.expanded;o=Xc(o)?!a.expanded:o,n.value[r].expanded=o,e!==o&&u.emit("expand-change",t,o),o&&h(a)&&g(t,r,a),u.store.updateTableScrollY()}},g=(e,t,o)=>{const{load:l}=u.props;l&&!n.value[t].loaded&&(n.value[t].loading=!0,l(e,o,o=>{if(!f(o))throw new TypeError("[ElTable] data must be an array");n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,o.length&&(r.value[t]=o),u.emit("expand-change",e,!0)}))};return{loadData:g,loadOrToggle:t=>{u.store.assertRowKey();const o=e.rowKey.value,l=Ky(t,o),r=n.value[l];h(r)?g(t,l,r):m(t,void 0)},toggleTreeExpansion:m,updateTreeExpandKeys:e=>{t.value=e,v()},updateTreeData:v,updateKeyChildren:(e,t)=>{const{lazy:n,rowKey:o}=u.props;if(n){if(!o)throw new Error("[Table] rowKey is required in updateKeyChild");r.value[e]&&(r.value[e]=t)}},normalize:p,states:{expandRowKeys:t,treeData:n,indent:o,lazy:l,lazyTreeNodeMap:r,lazyColumnIdentifier:a,childrenColumnName:s,checkStrictly:i}}}({data:l,rowKey:o}),{updateCurrentRowData:J,updateCurrentRow:Q,setCurrentRowKey:ee,states:te}=function(e){const t=ar(),n=St(null),o=St(null),l=()=>{n.value=null},r=n=>{var l;const{data:r,rowKey:a}=e;let s=null;a.value&&(s=null!=(l=(Ot(r)||[]).find(e=>Ky(e,a.value)===n))?l:null),o.value=null!=s?s:null,t.emit("current-change",o.value,null)};return{setCurrentRowKey:e=>{t.store.assertRowKey(),n.value=e,r(e)},restoreCurrentRowKey:l,setCurrentRowByKey:r,updateCurrentRow:e=>{const n=o.value;if(e&&e!==n)return o.value=e,void t.emit("current-change",o.value,n);!e&&n&&(o.value=null,t.emit("current-change",null,n))},updateCurrentRowData:()=>{const a=e.rowKey.value,s=e.data.value||[],i=o.value;if(i&&!s.includes(i)){if(a){const e=Ky(i,a);r(e)}else o.value=null;Dc(o.value)&&t.emit("current-change",null,i)}else n.value&&(r(n.value),l())},states:{_currentRowKey:n,currentRow:o}}}({data:l,rowKey:o});return{assertRowKey:()=>{if(!o.value)throw new Error("[ElTable] prop row-key is required")},updateColumns:N,scheduleLayout:I,isSelected:B,clearSelection:()=>{x.value=!1;const e=C.value;C.value=[],e.length&&t.emit("selection-change",[])},cleanSelection:()=>{var e,n;let r;if(o.value){r=[];const a=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.childrenColumnName.value,s=Gy(l.value,o.value,!0,a);for(const e in L.value)p(L.value,e)&&!s[e]&&r.push(L.value[e].row)}else r=C.value.filter(e=>!l.value.includes(e));if(r.length){const e=C.value.filter(e=>!r.includes(e));C.value=e,t.emit("selection-change",e.slice())}},getSelectionRows:()=>(C.value||[]).slice(),toggleRowSelection:(e,n,r=!0,a=!1)=>{var s,i,u,c;const d={children:null==(i=null==(s=null==t?void 0:t.store)?void 0:s.states)?void 0:i.childrenColumnName.value,checkStrictly:null==(c=null==(u=null==t?void 0:t.store)?void 0:u.states)?void 0:c.checkStrictly.value};if(Zy(C.value,e,n,d,a?void 0:k.value,l.value.indexOf(e),o.value)){const n=(C.value||[]).slice();r&&t.emit("select",n,e),t.emit("selection-change",n)}},_toggleAllSelection:()=>{var e,n;const o=S.value?!x.value:!(x.value||C.value.length);x.value=o;let r=!1,a=0;const s=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.rowKey.value,{childrenColumnName:i}=t.store.states,u={children:i.value,checkStrictly:!1};l.value.forEach((e,t)=>{const n=t+a;Zy(C.value,e,o,u,k.value,n,s)&&(r=!0),a+=F(Ky(e,s))}),r&&t.emit("selection-change",C.value?C.value.slice():[]),t.emit("select-all",(C.value||[]).slice())},toggleAllSelection:null,updateAllSelected:()=>{var e;if(0===(null==(e=l.value)?void 0:e.length))return void(x.value=!1);const{childrenColumnName:n}=t.store.states;let o=0,r=0;const a=e=>{var t;for(const l of e){const e=k.value&&k.value.call(null,l,o);if(B(l))r++;else if(!k.value||e)return!1;if(o++,(null==(t=l[n.value])?void 0:t.length)&&!a(l[n.value]))return!1}return!0},s=a(l.value||[]);x.value=0!==r&&s},updateFilters:(e,t)=>{const n={};return uu(e).forEach(e=>{E.value[e.id]=t,n[e.columnKey||e.id]=t}),n},updateCurrentRow:Q,updateSort:$,execFilter:j,execSort:V,execQuery:(e=void 0)=>{(null==e?void 0:e.filter)||j(),V()},clearFilter:e=>{const{tableHeaderRef:n}=t.refs;if(!n)return;const o=Object.assign({},n.filterPanels),l=Object.keys(o);if(l.length)if(b(e)&&(e=[e]),f(e)){const n=e.map(e=>function(e,t){let n=null;for(let o=0;o{const t=n.find(t=>t.id===e);t&&(t.filteredValue=[])}),t.store.commit("filterChange",{column:n,values:[],silent:!0,multi:!0})}else l.forEach(e=>{const t=u.value.find(t=>t.id===e);t&&(t.filteredValue=[])}),E.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:()=>{A.value&&($(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},toggleRowExpansion:z,setExpandRowKeysAdapter:e=>{D(e),U(e)},setCurrentRowKey:ee,toggleRowExpansionAdapter:(e,t)=>{u.value.some(({type:e})=>"expand"===e)?z(e,t):K(e,t)},isRowExpanded:q,updateExpandRows:H,updateCurrentRowData:J,loadOrToggle:X,updateTreeData:G,updateKeyChildren:Y,states:{tableSize:n,rowKey:o,data:l,_data:r,isComplex:a,_columns:s,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:v,fixedLeafColumns:h,rightFixedLeafColumns:m,updateOrderFns:[],leafColumnsLength:g,fixedLeafColumnsLength:y,rightFixedLeafColumnsLength:w,isAllSelected:x,selection:C,reserveSelection:_,selectOnIndeterminate:S,selectable:k,filters:E,filteredData:T,sortingColumn:A,sortProp:O,sortOrder:M,hoverRow:R,...W,...Z,...te}}}function dw(e,t){return e.map(e=>{var n;return e.id===t.id?t:((null==(n=e.children)?void 0:n.length)&&(e.children=dw(e.children,t)),e)})}function pw(e){e.forEach(e=>{var t,n;e.no=null==(t=e.getColumnIndex)?void 0:t.call(e),(null==(n=e.children)?void 0:n.length)&&pw(e.children)}),e.sort((e,t)=>e.no-t.no)}const fw={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"},"treeProps.checkStrictly":{key:"checkStrictly",default:!1}};function vw(e,t){if(!e)throw new Error("Table is required.");const n=function(){const e=ar(),t=cw(),n=Wa("table"),{t:o}=Rd();return{ns:n,t:o,...t,mutations:{setData(t,n){const o=Ot(t._data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),Ot(t.reserveSelection)?e.store.assertRowKey():o?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,o,l){var r;const a=Ot(t._columns);let s=[];o?(o&&!o.children&&(o.children=[]),null==(r=o.children)||r.push(n),s=dw(a,o)):(a.push(n),s=a),pw(s),t._columns.value=s,t.updateOrderFns.push(l),"selection"===n.type&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(t,n){var o;(null==(o=n.getColumnIndex)?void 0:o.call(n))!==n.no&&(pw(t._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(t,n,o,l){var r;const a=Ot(t._columns)||[];if(o)null==(r=o.children)||r.splice(o.children.findIndex(e=>e.id===n.id),1),tn(()=>{var e;0===(null==(e=o.children)?void 0:e.length)&&delete o.children}),t._columns.value=dw(a,o);else{const e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}const s=t.updateOrderFns.indexOf(l);s>-1&&t.updateOrderFns.splice(s,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){const{prop:o,order:l,init:r}=n;if(o){const n=Ot(t.columns).find(e=>e.property===o);n&&(n.order=l,e.store.updateSort(n,o,l),e.store.commit("changeSortCondition",{init:r}))}},changeSortCondition(t,n){const{sortingColumn:o,sortProp:l,sortOrder:r}=t,a=Ot(o),s=Ot(l),i=Ot(r);Dc(i)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),n&&(n.silent||n.init)||e.emit("sort-change",{column:a,prop:s,order:i}),e.store.updateTableScrollY()},filterChange(t,n){const{column:o,values:l,silent:r}=n,a=e.store.updateFilters(o,l);e.store.execQuery(),r||e.emit("filter-change",a),e.store.updateTableScrollY()},toggleAllSelection(){var t,n;null==(n=(t=e.store).toggleAllSelection)||n.call(t)},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},commit:function(t,...n){const o=e.store.mutations;if(!o[t])throw new Error(`Action not found: ${t}`);o[t].apply(e,[e.store.states,...n])},updateTableScrollY:function(){tn(()=>e.layout.updateScrollY.apply(e.layout))}}}();return n.toggleAllSelection=Mc(n._toggleAllSelection,10),Object.keys(fw).forEach(e=>{hw(mw(t,e),e,n)}),function(e,t){Object.keys(fw).forEach(n=>{wn(()=>mw(t,n),t=>{hw(t,n,e)})})}(n,t),n}function hw(e,t,n){let o=e,l=fw[t];w(l)&&(o=o||l.default,l=l.key),n.states[l].value=o}function mw(e,t){if(t.includes(".")){const n=t.split(".");let o=e;return n.forEach(e=>{o=o[e]}),o}return e[t]}class gw{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=St(null),this.scrollX=St(!1),this.scrollY=St(!1),this.bodyWidth=St(null),this.fixedWidth=St(null),this.rightFixedWidth=St(null),this.gutterWidth=0;for(const t in e)p(e,t)&&(_t(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(Dc(this.height.value))return!1;const e=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(null==e?void 0:e.wrapRef)){let t=!0;const n=this.scrollY.value;return t=e.wrapRef.scrollHeight>e.wrapRef.clientHeight,this.scrollY.value=t,n!==t}return!1}setHeight(e,t="height"){if(!ld)return;const n=this.table.vnode.el;var o;e=Jc(o=e)?o:b(o)?/^\d+(?:px)?$/.test(o)?Number.parseInt(o,10):o:null,this.height.value=Number(e),n||!e&&0!==e?n&&Jc(e)?(n.style[t]=`${e}px`,this.updateElsHeight()):n&&b(e)&&(n.style[t]=e,this.updateElsHeight()):tn(()=>this.setHeight(e,t))}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){var e;if(!ld)return;const t=this.fit,n=null==(e=this.table.vnode.el)?void 0:e.clientWidth;let o=0;const l=this.getFlattenColumns(),r=l.filter(e=>!Jc(e.width));if(l.forEach(e=>{Jc(e.width)&&e.realWidth&&(e.realWidth=null)}),r.length>0&&t){if(l.forEach(e=>{o+=Number(e.width||e.minWidth||80)}),o<=n){this.scrollX.value=!1;const e=n-o;if(1===r.length)r[0].realWidth=Number(r[0].minWidth||80)+e;else{const t=e/r.reduce((e,t)=>e+Number(t.minWidth||80),0);let n=0;r.forEach((e,o)=>{if(0===o)return;const l=Math.floor(Number(e.minWidth||80)*t);n+=l,e.realWidth=Number(e.minWidth||80)+l}),r[0].realWidth=Number(r[0].minWidth||80)+e-n}}else this.scrollX.value=!0,r.forEach(e=>{e.realWidth=Number(e.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(e=>{e.width||e.minWidth?e.realWidth=Number(e.width||e.minWidth):e.realWidth=80,o+=e.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const a=this.store.states.fixedColumns.value;if(a.length>0){let e=0;a.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.fixedWidth.value=e}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let e=0;s.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach(t=>{var n,o;switch(e){case"columns":null==(n=t.state)||n.onColumnsChange(this);break;case"scrollable":null==(o=t.state)||o.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}})}}const bw=Xn({name:"ElTableFilterPanel",components:{ElCheckbox:tg,ElCheckboxGroup:ng,ElScrollbar:Mf,ElTooltip:im,ElIcon:ip,ArrowDown:up,ArrowUp:pp},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:Wh.appendTo},setup(e){const t=ar(),{t:n}=Rd(),o=Wa("table-filter"),l=null==t?void 0:t.parent;e.column&&!l.filterPanels.value[e.column.id]&&(l.filterPanels.value[e.column.id]=t);const r=St(null),a=St(null),s=St(0),i=yr(()=>e.column&&e.column.filters),u=yr(()=>e.column&&e.column.filterClassName?`${o.b()} ${e.column.filterClassName}`:o.b()),c=yr({get:()=>{var t;return((null==(t=e.column)?void 0:t.filteredValue)||[])[0]},set:e=>{d.value&&(ed(e)?d.value.splice(0,1):d.value.splice(0,1,e))}}),d=yr({get:()=>e.column&&e.column.filteredValue||[],set(t){var n;e.column&&(null==(n=e.upDataColumn)||n.call(e,"filteredValue",t))}}),p=yr(()=>!e.column||e.column.filterMultiple),f=()=>{var e;null==(e=r.value)||e.onClose()},v=(e,t)=>{c.value=e,s.value=t,ed(e)?h([]):h(d.value),f()},h=t=>{var n,o;null==(n=e.store)||n.commit("filterChange",{column:e.column,values:t}),null==(o=e.store)||o.updateAllSelected()},m=()=>{if(ed(c))return void(s.value=0);const e=(i.value||[]).findIndex(e=>e.value===c.value);s.value=e>=0?e+1:0};return{multiple:p,filterClassName:u,filteredValue:d,filterValue:c,filters:i,handleConfirm:()=>{h(d.value),f()},handleReset:()=>{d.value=[],h(d.value),f()},handleSelect:v,isPropAbsent:ed,isActive:e=>e.value===c.value,t:n,ns:o,tooltipRef:r,rootRef:a,checkedIndex:s,handleShowTooltip:()=>{var t,n;null==(t=a.value)||t.focus(),!p.value&&m(),e.column&&(null==(n=e.upDataColumn)||n.call(e,"filterOpened",!0))},handleHideTooltip:()=>{var t;e.column&&(null==(t=e.upDataColumn)||t.call(e,"filterOpened",!1))},handleKeydown:e=>{var t,n;const l=cv(e),r=(i.value?i.value.length:0)+1;let u=s.value,c=!0;switch(l){case iv.down:case iv.right:u=(u+1)%r;break;case iv.up:case iv.left:u=(u-1+r)%r;break;case iv.tab:f(),c=!1;break;case iv.enter:case iv.space:if(0===u)v(null,0);else{const e=(i.value||[])[u-1];e.value&&v(e.value,u)}break;default:c=!1}c&&e.preventDefault(),s.value=u,null==(n=null==(t=a.value)?void 0:t.querySelector(`.${o.e("list-item")}:nth-child(${u+1})`))||n.focus()}}}}),yw=["disabled"],ww=["tabindex","aria-checked"],xw=["tabindex","aria-checked","onClick"],Cw=["aria-label"];var _w=Kd(bw,[["render",function(e,t,n,o,l,r){const a=xo("el-checkbox"),s=xo("el-checkbox-group"),i=xo("el-scrollbar"),u=xo("arrow-up"),c=xo("arrow-down"),d=xo("el-icon"),p=xo("el-tooltip");return Fl(),zl(p,{ref:"tooltipRef",offset:0,placement:e.placement,"show-arrow":!1,trigger:"click",role:"dialog",teleported:"",effect:"light",pure:"",loop:"","popper-class":e.filterClassName,persistent:"","append-to":e.appendTo,onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},{content:pn(()=>[e.multiple?(Fl(),Dl("div",{key:0,ref:"rootRef",tabindex:"-1",class:q(e.ns.e("multiple"))},[Kl("div",{class:q(e.ns.e("content"))},[Gl(i,{"wrap-class":e.ns.e("wrap")},{default:pn(()=>[Gl(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.filteredValue=t),class:q(e.ns.e("checkbox-group"))},{default:pn(()=>[(Fl(!0),Dl(Rl,null,Eo(e.filters,e=>(Fl(),zl(a,{key:e.value,value:e.value},{default:pn(()=>[Xl(Z(e.text),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),Kl("div",{class:q(e.ns.e("bottom"))},[Kl("button",{class:q(e.ns.is("disabled",0===e.filteredValue.length)),disabled:0===e.filteredValue.length,type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleConfirm&&e.handleConfirm(...t))},Z(e.t("el.table.confirmFilter")),11,yw),Kl("button",{type:"button",onClick:t[2]||(t[2]=(...t)=>e.handleReset&&e.handleReset(...t))},Z(e.t("el.table.resetFilter")),1)],2)],2)):(Fl(),Dl("ul",{key:1,ref:"rootRef",tabindex:"-1",role:"radiogroup",class:q(e.ns.e("list")),onKeydown:t[4]||(t[4]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Kl("li",{role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isPropAbsent(e.filterValue))]),tabindex:0===e.checkedIndex?0:-1,"aria-checked":e.isPropAbsent(e.filterValue),onClick:t[3]||(t[3]=t=>e.handleSelect(null,0))},Z(e.t("el.table.clearFilter")),11,ww),(Fl(!0),Dl(Rl,null,Eo(e.filters,(t,n)=>(Fl(),Dl("li",{key:t.value,role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isActive(t))]),tabindex:e.checkedIndex===n+1?0:-1,"aria-checked":e.isActive(t),onClick:o=>e.handleSelect(t.value,n+1)},Z(t.text),11,xw))),128))],34))]),default:pn(()=>{var t;return[Kl("button",{type:"button",class:q(`${e.ns.namespace.value}-table__column-filter-trigger`),"aria-label":e.t("el.table.filterLabel",{column:(null==(t=e.column)?void 0:t.label)||""})},[Gl(d,null,{default:pn(()=>[Ao(e.$slots,"filter-icon",{},()=>{var t;return[(null==(t=e.column)?void 0:t.filterOpened)?(Fl(),zl(u,{key:0})):(Fl(),zl(c,{key:1}))]})]),_:3})],10,Cw)]}),_:3},8,["placement","popper-class","append-to","onShow","onHide"])}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function Sw(e){const t=ar();uo(()=>{n.value.addObserver(t)}),co(()=>{o(n.value),l(n.value)}),fo(()=>{o(n.value),l(n.value)}),ho(()=>{n.value.removeObserver(t)});const n=yr(()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t}),o=t=>{var n;const o=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col"))||[];if(!o.length)return;const l=t.getFlattenColumns(),r={};l.forEach(e=>{r[e.id]=e});for(let e=0,a=o.length;e{var n,o;const l=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let e=0,a=l.length;e{const t=[];return e.forEach(e=>{e.children?(t.push(e),t.push.apply(t,Ew(e.children))):t.push(e)}),t},Tw=e=>{let t=1;const n=(e,o)=>{if(o&&(e.level=o.level+1,t{n(o,e),t+=o.colSpan}),e.colSpan=t}else e.colSpan=1};e.forEach(e=>{e.level=1,n(e,void 0)});const o=[];for(let l=0;l{e.children?(e.rowSpan=1,e.children.forEach(e=>e.isSubColumn=!0)):e.rowSpan=t-e.level+1,o[e.level-1].push(e)}),o};var Aw=Xn({name:"ElTableHeader",components:{ElCheckbox:tg},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){const n=ar(),o=mn(kw),l=Wa("table"),r=St({}),{onColumnsChange:a,onScrollableChange:s}=Sw(o),i="auto"===(null==o?void 0:o.props.tableLayout),u=pt(new Map),c=St();let d;const p=()=>{d=setTimeout(()=>{u.size>0&&(u.forEach((e,t)=>{const n=c.value.querySelector(`.${t.replace(/\s/g,".")}`);if(n){const t=n.getBoundingClientRect().width;e.width=t||e.width}}),u.clear())})};wn(u,p),vo(()=>{d&&(clearTimeout(d),d=void 0)}),co(async()=>{await tn(),await tn();const{prop:t,order:n}=e.defaultSort;null==o||o.store.commit("sort",{prop:t,order:n,init:!0}),p()});const{handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x}=function(e,t){const n=ar(),o=mn(kw),l=e=>{e.stopPropagation()},r=St(null),a=St(!1),s=St(),i=(t,n,l)=>{var r;t.stopPropagation();const a=n.order===l?null:l||(({order:e,sortOrders:t})=>{if(""===e)return t[0];const n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]})(n),s=null==(r=t.target)?void 0:r.closest("th");if(s&&np(s,"noclick"))return void lp(s,"noclick");if(!n.sortable)return;const i=t.currentTarget;if(["ascending","descending"].some(e=>np(i,e)&&!n.sortOrders.includes(e)))return;const u=e.store.states;let c,d=u.sortProp.value;const p=u.sortingColumn.value;(p!==n||p===n&&Dc(p.order))&&(p&&(p.order=null),u.sortingColumn.value=n,d=n.property),c=n.order=a||null,u.sortProp.value=d,u.sortOrder.value=c,null==o||o.store.commit("changeSortCondition")};return{handleHeaderClick:(e,t)=>{!t.filters&&t.sortable?i(e,t,!1):t.filterable&&!t.sortable&&l(e),null==o||o.emit("header-click",t,e)},handleHeaderContextMenu:(e,t)=>{null==o||o.emit("header-contextmenu",t,e)},handleMouseDown:(l,i)=>{var u,c;if(ld&&!(i.children&&i.children.length>0)&&r.value&&e.border&&r.value.id===i.id){a.value=!0;const d=o;t("set-drag-visible",!0);const p=null==d?void 0:d.vnode.el,f=null==p?void 0:p.getBoundingClientRect().left,v=null==(c=null==(u=null==n?void 0:n.vnode)?void 0:u.el)?void 0:c.querySelector(`th.${i.id}`),h=v.getBoundingClientRect(),m=h.left-f+30;op(v,"noclick"),s.value={startMouseLeft:l.clientX,startLeft:h.right-f,startColumnLeft:h.left-f,tableLeft:f};const g=null==d?void 0:d.refs.resizeProxy;g.style.left=`${s.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const b=e=>{const t=e.clientX-s.value.startMouseLeft,n=s.value.startLeft+t;g.style.left=`${Math.max(m,n)}px`},y=()=>{if(a.value){const{startColumnLeft:n,startLeft:o}=s.value,u=Number.parseInt(g.style.left,10)-n;i.width=i.realWidth=u,null==d||d.emit("header-dragend",i.width,o-n,i,l),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",a.value=!1,r.value=null,s.value=void 0,t("set-drag-visible",!1)}document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",y),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{lp(v,"noclick")},0)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",y)}},handleMouseMove:(t,n)=>{var o;if(!e.border||n.children&&n.children.length>0)return;const l=t.target,s=Qc(l)?l.closest("th"):null;if(!s)return;const i=np(s,"is-sortable");if(i){const e=a.value?"col-resize":"";s.style.cursor=e;const t=s.querySelector(".caret-wrapper");t&&(t.style.cursor=e)}if(!n.resizable||a.value)return void(r.value=null);const u=s.getBoundingClientRect(),c=(null==(o=s.parentNode)?void 0:o.lastElementChild)===s,d=e.allowDragLastColumn||!c,p=u.width>12&&u.right-t.clientX<8&&d,f=p?"col-resize":"";document.body.style.cursor=f,r.value=p?n:null,i&&(s.style.cursor=f)},handleMouseOut:()=>{ld&&!a.value&&(document.body.style.cursor="")},handleSortClick:i,handleFilterClick:l}}(e,t),{getHeaderRowStyle:C,getHeaderRowClass:_,getHeaderCellStyle:S,getHeaderCellClass:k}=function(e){const t=mn(kw),n=Wa("table");return{getHeaderRowStyle:e=>{const n=null==t?void 0:t.props.headerRowStyle;return g(n)?n.call(null,{rowIndex:e}):n},getHeaderRowClass:e=>{const n=[],o=null==t?void 0:t.props.headerRowClassName;return b(o)?n.push(o):g(o)&&n.push(o.call(null,{rowIndex:e})),n.join(" ")},getHeaderCellStyle:(n,o,l,r)=>{var a;let s=null!=(a=null==t?void 0:t.props.headerCellStyle)?a:{};g(s)&&(s=s.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,r.fixed,e.store,l);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getHeaderCellClass:(o,l,r,a)=>{const s=lw(n.b(),l,a.fixed,e.store,r),i=[a.id,a.order,a.headerAlign,a.className,a.labelClassName,...s];a.children||i.push("is-leaf"),a.sortable&&i.push("is-sortable");const u=null==t?void 0:t.props.headerCellClassName;return b(u)?i.push(u):g(u)&&i.push(u.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),i.push(n.e("cell")),i.filter(e=>Boolean(e)).join(" ")}}}(e),{isGroup:E,toggleAllSelection:T,columnRows:A}=function(e){const t=mn(kw),n=yr(()=>Tw(e.store.states.originColumns.value));return{isGroup:yr(()=>{const e=n.value.length>1;return e&&t&&(t.state.isGroup.value=!0),e}),toggleAllSelection:e=>{e.stopPropagation(),null==t||t.store.commit("toggleAllSelection")},columnRows:n}}(e),{t:O}=Rd();return n.state={onColumnsChange:a,onScrollableChange:s},n.filterPanels=r,{ns:l,t:O,filterPanels:r,onColumnsChange:a,onScrollableChange:s,columnRows:A,getHeaderRowClass:_,getHeaderRowStyle:C,getHeaderCellClass:k,getHeaderCellStyle:S,handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x,isGroup:E,toggleAllSelection:T,saveIndexSelection:u,isTableLayoutAuto:i,theadRef:c,updateFixedColumnStyle:p}},render(){const{ns:e,t:t,isGroup:n,columnRows:o,getHeaderCellStyle:l,getHeaderCellClass:r,getHeaderRowClass:a,getHeaderRowStyle:s,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:d,handleSortClick:p,handleMouseOut:f,store:v,$parent:h,saveIndexSelection:m,isTableLayoutAuto:g}=this;let b=1;return wr("thead",{ref:"theadRef",class:e.is("group",n)},o.map((e,n)=>wr("tr",{class:a(n),key:n,style:s(n)},e.map((o,a)=>{o.rowSpan>b&&(b=o.rowSpan);const s=r(n,a,e,o);return g&&o.fixed&&m.set(s,o),wr("th",{class:s,colspan:o.colSpan,key:`${o.id}-thead`,rowspan:o.rowSpan,scope:o.colSpan>1?"colgroup":"col",ariaSort:o.sortable?o.order:void 0,style:l(n,a,e,o),onClick:e=>{var t;(null==(t=e.currentTarget)?void 0:t.classList.contains("noclick"))||i(e,o)},onContextmenu:e=>u(e,o),onMousedown:e=>c(e,o),onMousemove:e=>d(e,o),onMouseout:f},[wr("div",{class:["cell",o.filteredValue&&o.filteredValue.length>0?"highlight":""]},[o.renderHeader?o.renderHeader({column:o,$index:a,store:v,_self:h}):o.label,o.sortable&&wr("button",{type:"button",class:"caret-wrapper","aria-label":t("el.table.sortLabel",{column:o.label||""}),onClick:e=>p(e,o)},[wr("i",{onClick:e=>p(e,o,"ascending"),class:"sort-caret ascending"}),wr("i",{onClick:e=>p(e,o,"descending"),class:"sort-caret descending"})]),o.filterable&&wr(_w,{store:v,placement:o.filterPlacement||"bottom-start",appendTo:null==h?void 0:h.appendFilterPanelTo,column:o,upDataColumn:(e,t)=>{o[e]=t}},{"filter-icon":()=>o.renderFilterIcon?o.renderFilterIcon({filterOpened:o.filterOpened}):null})])])}))))}});function Ow(e,t,n=.03){return e-t>n}function Mw(e){const t=mn(kw),n=St(""),o=St(wr("div")),l=(n,o,l)=>{var r,a,s;const i=t,u=Hy(n);let c=null;const d=null==(r=null==i?void 0:i.vnode.el)?void 0:r.dataset.prefix;u&&(c=Uy({columns:null!=(s=null==(a=e.store)?void 0:a.states.columns.value)?s:[]},u,d),c&&(null==i||i.emit(`cell-${l}`,o,c,u,n))),null==i||i.emit(`row-${l}`,o,c,n)},r=Mc(t=>{var n;null==(n=e.store)||n.commit("setHoverRow",t)},30),a=Mc(()=>{var t;null==(t=e.store)||t.commit("setHoverRow",null)},30),s=(e,t,n)=>{var o;let l=null==(o=null==t?void 0:t.target)?void 0:o.parentNode;for(;e>1&&(l=null==l?void 0:l.nextSibling,l&&"TR"===l.nodeName);)n(l,"hover-row hover-fixed-row"),e--};return{handleDoubleClick:(e,t)=>{l(e,t,"dblclick")},handleClick:(t,n)=>{var o;null==(o=e.store)||o.commit("setCurrentRow",n),l(t,n,"click")},handleContextMenu:(e,t)=>{l(e,t,"contextmenu")},handleMouseEnter:r,handleMouseLeave:a,handleCellMouseEnter:(n,o,l)=>{var r,a,i,u,c,d,p,f,v;if(!t)return;const h=t,m=Hy(n),g=null==(r=null==h?void 0:h.vnode.el)?void 0:r.dataset.prefix;let b=null;if(m){if(b=Uy({columns:null!=(i=null==(a=e.store)?void 0:a.states.columns.value)?i:[]},m,g),!b)return;m.rowSpan>1&&s(m.rowSpan,n,op);const t=h.hoverState={cell:m,column:b,row:o};null==h||h.emit("cell-mouse-enter",t.row,t.column,t.cell,n)}if(!l)return void((null==(u=Qy)?void 0:u.trigger)===m&&(null==(c=Qy)||c()));const y=n.target.querySelector(".cell");if(!(np(y,`${g}-tooltip`)&&y.childNodes.length&&(null==(d=y.textContent)?void 0:d.trim())))return;const w=document.createRange();w.setStart(y,0),w.setEnd(y,y.childNodes.length);const{width:x,height:C}=w.getBoundingClientRect(),{width:_,height:S}=y.getBoundingClientRect(),{top:k,left:E,right:T,bottom:A}=(e=>{const t=window.getComputedStyle(e,null);return{left:Number.parseInt(t.paddingLeft,10)||0,right:Number.parseInt(t.paddingRight,10)||0,top:Number.parseInt(t.paddingTop,10)||0,bottom:Number.parseInt(t.paddingBottom,10)||0}})(y),O=k+A;Ow(x+(E+T),_)||Ow(C+O,S)||Ow(y.scrollWidth,_)?ew(l,null!=(p=(null==m?void 0:m.innerText)||(null==m?void 0:m.textContent))?p:"",o,b,m,h):(null==(f=Qy)?void 0:f.trigger)===m&&(null==(v=Qy)||v())},handleCellMouseLeave:e=>{const n=Hy(e);if(!n)return;n.rowSpan>1&&s(n.rowSpan,e,lp);const o=null==t?void 0:t.hoverState;null==t||t.emit("cell-mouse-leave",null==o?void 0:o.row,null==o?void 0:o.column,null==o?void 0:o.cell,e)},tooltipContent:n,tooltipTrigger:o}}const Rw=["colspan","rowspan"];var Lw=Kd(Xn({name:"TableTdWrapper",__name:"td-wrapper",props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup:e=>(t,n)=>(Fl(),Dl("td",{colspan:e.colspan,rowspan:e.rowspan},[Ao(t.$slots,"default")],8,Rw))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table-body/td-wrapper.vue"]]);function Pw(e){const t=mn(kw),n=Wa("table"),{handleDoubleClick:o,handleClick:l,handleContextMenu:r,handleMouseEnter:a,handleMouseLeave:s,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:d}=Mw(e),{getRowStyle:p,getRowClass:v,getCellStyle:h,getCellClass:m,getSpan:y,getColspanRealWidth:x}=function(e){const t=mn(kw),n=Wa("table");return{getRowStyle:(e,n)=>{const o=null==t?void 0:t.props.rowStyle;return g(o)?o.call(null,{row:e,rowIndex:n}):o||null},getRowClass:(o,l,r)=>{var a;const s=[n.e("row")];(null==t?void 0:t.props.highlightCurrentRow)&&o===(null==(a=e.store)?void 0:a.states.currentRow.value)&&s.push("current-row"),e.stripe&&r%2==1&&s.push(n.em("row","striped"));const i=null==t?void 0:t.props.rowClassName;return b(i)?s.push(i):g(i)&&s.push(i.call(null,{row:o,rowIndex:l})),s},getCellStyle:(n,o,l,r)=>{const a=null==t?void 0:t.props.cellStyle;let s=null!=a?a:{};g(a)&&(s=a.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,null==e?void 0:e.fixed,e.store);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getCellClass:(o,l,r,a,s)=>{const i=lw(n.b(),l,null==e?void 0:e.fixed,e.store,void 0,s),u=[a.id,a.align,a.className,...i],c=null==t?void 0:t.props.cellClassName;return b(c)?u.push(c):g(c)&&u.push(c.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),u.push(n.e("cell")),u.filter(e=>Boolean(e)).join(" ")},getSpan:(e,n,o,l)=>{let r=1,a=1;const s=null==t?void 0:t.props.spanMethod;if(g(s)){const t=s({row:e,column:n,rowIndex:o,columnIndex:l});f(t)?(r=t[0],a=t[1]):w(t)&&(r=t.rowspan,a=t.colspan)}return{rowspan:r,colspan:a}},getColspanRealWidth:(e,t,n)=>{if(t<1)return e[n].realWidth;const o=e.map(({realWidth:e,width:t})=>e||t).slice(n,n+t);return Number(o.reduce((e,t)=>Number(e)+Number(t),-1))}}}(e);let C=-1;const _=yr(()=>{var t;return null==(t=e.store)?void 0:t.states.columns.value.findIndex(({type:e})=>"default"===e)}),S=(e,n)=>{var o;const l=null==(o=null==t?void 0:t.props)?void 0:o.rowKey;return l?Ky(e,l):n},k=(c,d,f,g=!1)=>{const{tooltipEffect:b,tooltipOptions:w,store:k}=e,{indent:T,columns:A}=k.states,O=[];let M=!0;return f&&(O.push(n.em("row",`level-${f.level}`)),M=!!f.display),0===d&&(C=-1),e.stripe&&M&&C++,O.push(...v(c,d,C)),wr("tr",{style:[M?null:{display:"none"},p(c,d)],class:O,key:S(c,d),onDblclick:e=>o(e,c),onClick:e=>l(e,c),onContextmenu:e=>r(e,c),onMouseenter:()=>a(d),onMouseleave:s},A.value.map((n,o)=>{const{rowspan:l,colspan:r}=y(c,n,d,o);if(!l||!r)return null;const a=Object.assign({},n);a.realWidth=x(A.value,r,o);const s={store:k,_self:e.context||t,column:a,row:c,$index:d,cellIndex:o,expanded:g};o===_.value&&f&&(s.treeNode={indent:f.level&&f.level*T.value,level:f.level},Zc(f.expanded)&&(s.treeNode.expanded=f.expanded,"loading"in f&&(s.treeNode.loading=f.loading),"noLazyChildren"in f&&(s.treeNode.noLazyChildren=f.noLazyChildren)));const p=`${S(c,d)},${o}`,v=a.columnKey||a.rawColumnKey||"",C=n.showOverflowTooltip&&Hc({effect:b},w,n.showOverflowTooltip);return wr(Lw,{style:h(d,o,c,n),class:m(d,o,c,n,r-1),key:`${v}${p}`,rowspan:l,colspan:r,onMouseenter:e=>i(e,c,C),onMouseleave:u},{default:()=>E(o,n,s)})}))},E=(e,t,n)=>t.renderCell(n);return{wrappedRowRender:(o,l)=>{const r=e.store,{isRowExpanded:a,assertRowKey:s}=r,{treeData:i,lazyTreeNodeMap:u,childrenColumnName:c,rowKey:d}=r.states,p=r.states.columns.value;if(p.some(({type:e})=>"expand"===e)){const e=a(o),s=k(o,l,void 0,e),i=null==t?void 0:t.renderExpanded;if(!i)return s;const u=[[s]];return(t.props.preserveExpandedContent||e)&&u[0].push(wr("tr",{key:`expanded-row__${s.key}`,style:{display:e?"":"none"}},[wr("td",{colspan:p.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[i({row:o,$index:l,store:r,expanded:e})])])),u}if(Object.keys(i.value).length){s();const e=Ky(o,d.value);let t=i.value[e],n=null;t&&(n={expanded:t.expanded,level:t.level,display:!0,noLazyChildren:void 0,loading:void 0},Zc(t.lazy)&&(n&&Zc(t.loaded)&&t.loaded&&(n.noLazyChildren=!(t.children&&t.children.length)),n.loading=t.loading));const r=[k(o,l,null!=n?n:void 0)];if(t){let n=0;const a=(e,o)=>{e&&e.length&&o&&e.forEach(e=>{const s={display:o.display&&o.expanded,level:o.level+1,expanded:!1,noLazyChildren:!1,loading:!1},p=Ky(e,d.value);if(ed(p))throw new Error("For nested data item, row-key is required.");if(t={...i.value[p]},t&&(s.expanded=t.expanded,t.level=t.level||s.level,t.display=!(!t.expanded||!s.display),Zc(t.lazy)&&(Zc(t.loaded)&&t.loaded&&(s.noLazyChildren=!(t.children&&t.children.length)),s.loading=t.loading)),n++,r.push(k(e,l+n,s)),t){const n=u.value[p]||e[c.value];a(n,t)}})};t.display=!0;const s=u.value[e]||o[c.value];a(s,t)}return r}return k(o,l,void 0)},tooltipContent:c,tooltipTrigger:d}}var Nw=Xn({name:"ElTableBody",props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},setup(e){var t;const n=ar(),o=mn(kw),l=Wa("table"),{wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}=Pw(e),{onColumnsChange:i,onScrollableChange:u}=Sw(o),c=[];return wn(null==(t=e.store)?void 0:t.states.hoverRow,(t,o)=>{var r,a;const s=null==n?void 0:n.vnode.el,i=Array.from((null==s?void 0:s.children)||[]).filter(e=>null==e?void 0:e.classList.contains(`${l.e("row")}`));let u=t;const d=null==(r=i[u])?void 0:r.childNodes;if(null==d?void 0:d.length){let e=0;Array.from(d).reduce((t,n,o)=>{var l,r;return(null==(l=d[o])?void 0:l.colSpan)>1&&(e=null==(r=d[o])?void 0:r.colSpan),"TD"!==n.nodeName&&0===e&&t.push(o),e>0&&e--,t},[]).forEach(e=>{var n;for(u=t;u>0;){const t=null==(n=i[u-1])?void 0:n.childNodes;if(t[e]&&"TD"===t[e].nodeName&&t[e].rowSpan>1){op(t[e],"hover-cell"),c.push(t[e]);break}u--}})}else c.forEach(e=>lp(e,"hover-cell")),c.length=0;(null==(a=e.store)?void 0:a.states.isComplex.value)&&ld&&ep(()=>{const e=i[o],n=i[t];e&&!e.classList.contains("hover-fixed-row")&&lp(e,"hover-row"),n&&op(n,"hover-row")})}),ho(()=>{var e;null==(e=Qy)||e()}),{ns:l,onColumnsChange:i,onScrollableChange:u,wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this;return wr("tbody",{tabIndex:-1},[((null==t?void 0:t.states.data.value)||[]).reduce((t,n)=>t.concat(e(n,t.length)),[])])}});function Iw(e){const{columns:t}=function(){const e=mn(kw),t=null==e?void 0:e.store;return{leftFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedLeafColumnsLength.value)?e:0}),rightFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columnsCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value.length)?e:0}),leftFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedColumns.value.length)?e:0}),rightFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columns:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value)?e:[]})}}(),n=Wa("table");return{getCellClasses:(t,o)=>{const l=t[o],r=[n.e("cell"),l.id,l.align,l.labelClassName,...lw(n.b(),o,l.fixed,e.store)];return l.className&&r.push(l.className),l.children||r.push(n.is("leaf")),r},getCellStyles:(t,n)=>{const o=aw(n,t.fixed,e.store);return sw(o,"left"),sw(o,"right"),o},columns:t}}var Bw=Xn({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const t=mn(kw),n=Wa("table"),{getCellClasses:o,getCellStyles:l,columns:r}=Iw(e),{onScrollableChange:a,onColumnsChange:s}=Sw(t);return{ns:n,onScrollableChange:a,onColumnsChange:s,getCellClasses:o,getCellStyles:l,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:l}=this,r=this.store.states.data.value;let a=[];return o?a=o({columns:e,data:r}):e.forEach((e,t)=>{if(0===t)return void(a[t]=l);const n=r.map(t=>Number(t[e.property])),o=[];let s=!0;n.forEach(e=>{if(!Number.isNaN(+e)){s=!1;const t=`${e}`.split(".")[1];o.push(t?t.length:0)}});const i=Math.max.apply(null,o);a[t]=s?"":n.reduce((e,t)=>{const n=Number(t);return Number.isNaN(+n)?e:Number.parseFloat((e+t).toFixed(Math.min(i,20)))},0)}),wr(wr("tfoot",[wr("tr",{},[...e.map((o,l)=>wr("td",{key:l,colspan:o.colSpan,rowspan:o.rowSpan,class:n(e,l),style:t(o,l)},[wr("div",{class:["cell",o.labelClassName]},[a[l]])]))])]))}});function Fw(e,t,n,o){const l=St(!1),r=St(null),a=St(!1),s=St({width:null,height:null,headerHeight:null}),i=St(!1),u=St(),c=St(0),d=St(0),p=St(0),f=St(0),v=St(0);wn(()=>e.height,e=>{t.setHeight(null!=e?e:null)},{immediate:!0}),wn(()=>e.maxHeight,e=>{t.setMaxHeight(null!=e?e:null)},{immediate:!0}),wn(()=>[e.currentRowKey,n.states.rowKey],([e,t])=>{Ot(t)&&Ot(e)&&n.setCurrentRowKey(`${e}`)},{immediate:!0}),wn(()=>e.data,e=>{o.store.commit("setData",e)},{immediate:!0,deep:!0}),yn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const h=yr(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),m=yr(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),g=()=>{h.value&&t.updateElsHeight(),t.updateColumnsWidth(),"undefined"!=typeof window&&requestAnimationFrame(y)};co(async()=>{await tn(),n.updateColumns(),w(),requestAnimationFrame(g);const t=o.vnode.el,l=o.refs.headerWrapper;e.flexible&&t&&t.parentElement&&(t.parentElement.style.minWidth="0"),s.value={width:u.value=t.offsetWidth,height:t.offsetHeight,headerHeight:e.showHeader&&l?l.offsetHeight:null},n.states.columns.value.forEach(e=>{e.filteredValue&&e.filteredValue.length&&o.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})}),o.$ready=!0});const b=e=>{const{tableWrapper:n}=o.refs;((e,n)=>{if(!e)return;const o=Array.from(e.classList).filter(e=>!e.startsWith("is-scrolling-"));o.push(t.scrollX.value?n:"is-scrolling-none"),e.className=o.join(" ")})(n,e)},y=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const e="is-scrolling-none";return void((e=>{const{tableWrapper:t}=o.refs;return!(!t||!t.classList.contains(e))})(e)||b(e))}const e=o.refs.scrollBarRef.wrapRef;if(!e)return;const{scrollLeft:n,offsetWidth:l,scrollWidth:r}=e,{headerWrapper:a,footerWrapper:s}=o.refs;a&&(a.scrollLeft=n),s&&(s.scrollLeft=n),b(n>=r-l-1?"is-scrolling-right":0===n?"is-scrolling-left":"is-scrolling-middle")},w=()=>{o.refs.scrollBarRef&&(o.refs.scrollBarRef.wrapRef&&hd(o.refs.scrollBarRef.wrapRef,"scroll",y,{passive:!0}),e.fit?bd(o.vnode.el,x):hd(window,"resize",x),bd(o.refs.tableInnerWrapper,()=>{var e,t;x(),null==(t=null==(e=o.refs)?void 0:e.scrollBarRef)||t.update()}))},x=()=>{var t,n,l,r;const a=o.vnode.el;if(!o.$ready||!a)return;let i=!1;const{width:m,height:b,headerHeight:y}=s.value,w=u.value=a.offsetWidth;m!==w&&(i=!0);const x=a.offsetHeight;(e.height||h.value)&&b!==x&&(i=!0);const C="fixed"===e.tableLayout?o.refs.headerWrapper:null==(t=o.refs.tableHeaderRef)?void 0:t.$el;e.showHeader&&(null==C?void 0:C.offsetHeight)!==y&&(i=!0),c.value=(null==(n=o.refs.tableWrapper)?void 0:n.scrollHeight)||0,p.value=(null==C?void 0:C.scrollHeight)||0,f.value=(null==(l=o.refs.footerWrapper)?void 0:l.offsetHeight)||0,v.value=(null==(r=o.refs.appendWrapper)?void 0:r.offsetHeight)||0,d.value=c.value-p.value-f.value-v.value,i&&(s.value={width:w,height:x,headerHeight:e.showHeader&&(null==C?void 0:C.offsetHeight)||0},g())},C=vf(),_=yr(()=>{const{bodyWidth:e,scrollY:n,gutterWidth:o}=t;return e.value?e.value-(n.value?o:0)+"px":""}),S=yr(()=>e.maxHeight?"fixed":e.tableLayout),k=yr(()=>{if(e.data&&e.data.length)return;let t="100%";e.height&&d.value&&(t=`${d.value}px`);const n=u.value;return{width:n?`${n}px`:"",height:t}}),E=yr(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${p.value+f.value}px)`}:{maxHeight:+e.maxHeight-p.value-f.value+"px"}:{});return{isHidden:l,renderExpanded:r,setDragVisible:e=>{a.value=e},isGroup:i,handleMouseLeave:()=>{o.store.commit("setHoverRow",null),o.hoverState&&(o.hoverState=null)},handleHeaderFooterMousewheel:(e,t)=>{const{pixelX:n,pixelY:l}=t;Math.abs(n)>=Math.abs(l)&&(o.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},tableSize:C,emptyBlockStyle:k,resizeProxyVisible:a,bodyWidth:_,resizeState:s,doLayout:g,tableBodyStyles:m,tableLayout:S,scrollbarViewStyle:{display:"inline-block",verticalAlign:"middle"},scrollbarStyle:E}}function $w(e){const t=St();co(()=>{(()=>{const n=e.vnode.el.querySelector(".hidden-columns"),o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(e=>e())}),t.value.observe(n,{childList:!0,subtree:!0})})()}),ho(()=>{var e;null==(e=t.value)||e.disconnect()})}var jw={data:{type:Array,default:()=>[]},size:Bd,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:[String,Object,Array],default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean};function Vw(e){const t="auto"===e.tableLayout;let n=e.columns||[];return t&&n.every(({width:e})=>Xc(e))&&(n=[]),wr("colgroup",{},n.map(n=>wr("col",(n=>{const o={key:`${e.tableLayout}_${n.id}`,style:{},name:void 0};return t?o.style={width:`${n.width}px`}:o.name=n.id,o})(n))))}Vw.props=["columns","tableLayout"];var Dw,zw,Hw,Ww,qw,Uw,Kw,Gw,Yw,Xw,Zw,Jw,Qw,ex,tx,nx=!1;function ox(){if(!nx){nx=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Jw=/\b(iPhone|iP[ao]d)/.exec(e),Qw=/\b(iP[ao]d)/.exec(e),Xw=/Android/i.exec(e),ex=/FBAN\/\w+;/i.exec(e),tx=/Mobile/i.exec(e),Zw=!!/Win64/.exec(e),t){(Dw=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(Dw=document.documentMode);var o=/(?:Trident\/(\d+.\d+))/.exec(e);Uw=o?parseFloat(o[1])+4:Dw,zw=t[2]?parseFloat(t[2]):NaN,Hw=t[3]?parseFloat(t[3]):NaN,(Ww=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),qw=t&&t[1]?parseFloat(t[1]):NaN):qw=NaN}else Dw=zw=Hw=qw=Ww=NaN;if(n){if(n[1]){var l=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Kw=!l||parseFloat(l[1].replace("_","."))}else Kw=!1;Gw=!!n[2],Yw=!!n[3]}else Kw=Gw=Yw=!1}}var lx,rx={ie:function(){return ox()||Dw},ieCompatibilityMode:function(){return ox()||Uw>Dw},ie64:function(){return rx.ie()&&Zw},firefox:function(){return ox()||zw},opera:function(){return ox()||Hw},webkit:function(){return ox()||Ww},safari:function(){return rx.webkit()},chrome:function(){return ox()||qw},windows:function(){return ox()||Gw},osx:function(){return ox()||Kw},linux:function(){return ox()||Yw},iphone:function(){return ox()||Jw},mobile:function(){return ox()||Jw||Qw||Xw||tx},nativeApp:function(){return ox()||ex},android:function(){return ox()||Xw},ipad:function(){return ox()||Qw}},ax=rx,sx={canUseDOM:!!(typeof window<"u"&&window.document&&window.document.createElement)};sx.canUseDOM&&(lx=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var ix=function(e,t){if(!sx.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var l=document.createElement("div");l.setAttribute(n,"return;"),o="function"==typeof l[n]}return!o&&lx&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o};function ux(e){var t=0,n=0,o=0,l=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=10*t,l=10*n,"deltaY"in e&&(l=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||l)&&e.deltaMode&&(1==e.deltaMode?(o*=40,l*=40):(o*=800,l*=800)),o&&!t&&(t=o<1?-1:1),l&&!n&&(n=l<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:l}}ux.getEventType=function(){return ax.firefox()?"DOMMouseScroll":ix("wheel")?"wheel":"mousewheel"};var cx=ux;const dx="_Mousewheel",px=function(e,t){if(e&&e.addEventListener){fx(e);const n=function(e){const n=cx(e);t&&Reflect.apply(t,this,[e,n])};e[dx]={wheelHandler:n},e.addEventListener("wheel",n,{passive:!0})}},fx=e=>{var t;(null==(t=e[dx])?void 0:t.wheelHandler)&&(e.removeEventListener("wheel",e[dx].wheelHandler),e[dx]=null)};let vx=1;const hx=["data-prefix"],mx={ref:"hiddenColumns",class:"hidden-columns"};var gx=Kd(Xn({name:"ElTable",directives:{Mousewheel:{beforeMount(e,t){px(e,t.value)},unmounted(e){fx(e)},updated(e,t){t.value!==t.oldValue&&px(e,t.value)}}},components:{TableHeader:Aw,TableBody:Nw,TableFooter:Bw,ElScrollbar:Mf,hColgroup:Vw},props:jw,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t:t}=Rd(),n=Wa("table"),o=ar();hn(kw,o);const l=vw(o,e);o.store=l;const r=new gw({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=r;const a=yr(()=>0===(l.states.data.value||[]).length),{setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,sort:h,updateKeyChildren:m}=function(e){return{setCurrentRow:t=>{e.commit("setCurrentRow",t)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(t,n,o=!0)=>{e.toggleRowSelection(t,n,!1,o),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit("sort",{prop:t,order:n})},updateKeyChildren:(t,n)=>{e.updateKeyChildren(t,n)}}}(l),{isHidden:g,renderExpanded:b,setDragVisible:y,isGroup:w,handleMouseLeave:x,handleHeaderFooterMousewheel:C,tableSize:_,emptyBlockStyle:S,resizeProxyVisible:k,bodyWidth:E,resizeState:T,doLayout:A,tableBodyStyles:O,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L}=Fw(e,r,l,o),{scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B}=(()=>{const e=St(),t=(t,n)=>{const o=e.value;o&&Jc(n)&&["Top","Left"].includes(t)&&o[`setScroll${t}`](n)};return{scrollBarRef:e,scrollTo:(t,n)=>{const o=e.value;o&&o.scrollTo(t,n)},setScrollTop:e=>t("Top",e),setScrollLeft:e=>t("Left",e)}})(),F=Mc(A,50),$=`${n.namespace.value}-table_${vx++}`;o.tableId=$,o.state={isGroup:w,resizeState:T,doLayout:A,debouncedUpdateLayout:F};const j=yr(()=>{var n;return null!=(n=e.sumText)?n:t("el.table.sumText")}),V=yr(()=>{var n;return null!=(n=e.emptyText)?n:t("el.table.emptyText")}),D=yr(()=>Tw(l.states.originColumns.value)[0]);return $w(o),vo(()=>{F.cancel()}),{ns:n,layout:r,store:l,columns:D,handleHeaderFooterMousewheel:C,handleMouseLeave:x,tableId:$,tableSize:_,isHidden:g,isEmpty:a,renderExpanded:b,resizeProxyVisible:k,resizeState:T,isGroup:w,bodyWidth:E,tableBodyStyles:O,emptyBlockStyle:S,debouncedUpdateLayout:F,setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,doLayout:A,sort:h,updateKeyChildren:m,t:t,setDragVisible:y,context:o,computedSumText:j,computedEmptyText:V,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L,scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B,allowDragLastColumn:e.allowDragLastColumn}}}),[["render",function(e,t,n,o,l,r){const a=xo("hColgroup"),s=xo("table-header"),i=xo("table-body"),u=xo("table-footer"),c=xo("el-scrollbar"),d=So("directives","mousewheel");return Fl(),Dl("div",{ref:"tableWrapper",class:q([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:V(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[1]||(t[1]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t))},[Kl("div",{ref:"tableInnerWrapper",class:q(e.ns.e("inner-wrapper"))},[Kl("div",mx,[Ao(e.$slots,"default")],512),e.showHeader&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:0,ref:"headerWrapper",class:q(e.ns.e("header-wrapper"))},[Kl("table",{ref:"tableHeader",class:q(e.ns.e("header")),style:V(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","append-filter-panel-to","allow-drag-last-column","onSetDragVisible"])],6)],2)),[[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),Kl("div",{ref:"bodyWrapper",class:q(e.ns.e("body-wrapper"))},[Gl(c,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:t[0]||(t[0]=t=>e.$emit("scroll",t))},{default:pn(()=>[Kl("table",{ref:"tableBody",class:q(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:V({width:e.bodyWidth,tableLayout:e.tableLayout})},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&"auto"===e.tableLayout?(Fl(),zl(s,{key:0,ref:"tableHeaderRef",class:q(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","append-filter-panel-to","onSetDragVisible"])):Zl("v-if",!0),Gl(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&"auto"===e.tableLayout?(Fl(),zl(u,{key:1,class:q(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Zl("v-if",!0)],6),e.isEmpty?(Fl(),Dl("div",{key:0,ref:"emptyBlock",style:V(e.emptyBlockStyle),class:q(e.ns.e("empty-block"))},[Kl("span",{class:q(e.ns.e("empty-text"))},[Ao(e.$slots,"empty",{},()=>[Xl(Z(e.computedEmptyText),1)])],2)],6)):Zl("v-if",!0),e.$slots.append?(Fl(),Dl("div",{key:1,ref:"appendWrapper",class:q(e.ns.e("append-wrapper"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)]),_:3},8,["view-style","wrap-style","always","tabindex","native"])],2),e.showSummary&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:1,ref:"footerWrapper",class:q(e.ns.e("footer-wrapper"))},[Kl("table",{class:q(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:V(e.tableBodyStyles)},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Xr,!e.isEmpty],[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),e.border||e.isGroup?(Fl(),Dl("div",{key:2,class:q(e.ns.e("border-left-patch"))},null,2)):Zl("v-if",!0)],2),fn(Kl("div",{ref:"resizeProxy",class:q(e.ns.e("column-resize-proxy"))},null,2),[[Xr,e.resizeProxyVisible]])],46,hx)}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const bx={selection:"table-column--selection",expand:"table__expand-column"},yx={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},wx={selection:{renderHeader({store:e}){var t;return wr(tg,{disabled:e.states.data.value&&0===e.states.data.value.length,size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":null!=(t=e.toggleAllSelection)?t:void 0,modelValue:e.states.isAllSelected.value,ariaLabel:e.t("el.table.selectAllLabel")})},renderCell:({row:e,column:t,store:n,$index:o})=>wr(tg,{disabled:!!t.selectable&&!t.selectable.call(null,e,o),size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e),ariaLabel:n.t("el.table.selectRowLabel")}),sortable:!1,resizable:!1},index:{renderHeader:({column:e})=>e.label||"#",renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return Jc(o)?n=t+o:g(o)&&(n=o(t)),wr("div",{},[n])},sortable:!1},expand:{renderHeader:({column:e})=>e.label||"",renderCell({column:e,row:t,store:n,expanded:o}){const{ns:l}=n,r=[l.e("expand-icon")];return!e.renderExpand&&o&&r.push(l.em("expand-icon","expanded")),wr("button",{type:"button","aria-label":n.t(o?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":o,class:r,onClick:function(e){e.stopPropagation(),n.toggleRowExpansion(t)}},{default:()=>e.renderExpand?[e.renderExpand({expanded:o})]:[wr(ip,null,{default:()=>[wr(dp)]})]})},sortable:!1,resizable:!1}};function xx({row:e,column:t,$index:n}){var o;const l=t.property,r=l&&Vd(e,l).value;return t&&t.formatter?t.formatter(e,t,r,n):(null==(o=null==r?void 0:r.toString)?void 0:o.call(r))||""}function Cx(e,t){return e.reduce((e,t)=>(e[t]=t,e),t)}function _x(e,t,n){const o=ar(),l=St(""),r=St(!1),a=St(),s=St(),i=Wa("table");yn(()=>{a.value=e.align?`is-${e.align}`:null,a.value}),yn(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:a.value,s.value});const u=yr(()=>{let e=o.vnode.vParent||o.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e}),c=yr(()=>{const{store:e}=o.parent;if(!e)return!1;const{treeData:t}=e.states,n=t.value;return n&&Object.keys(n).length>0}),d=St(Yy(e.width)),p=St(Xy(e.minWidth));return{columnId:l,realAlign:a,isSubColumn:r,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:e=>(d.value&&(e.width=d.value),p.value&&(e.minWidth=p.value),!d.value&&p.value&&(e.width=void 0),e.minWidth||(e.minWidth=80),e.realWidth=Number(Xc(e.width)?e.minWidth:e.width),e),setColumnForcedProps:e=>{const t=e.type,n=wx[t]||{};Object.keys(n).forEach(t=>{const o=n[t];"className"===t||Xc(o)||(e[t]=o)});const o=(e=>bx[e]||"")(t);if(o){const t=`${Ot(i.namespace)}-${o}`;e.className=e.className?`${e.className} ${t}`:t}return e},setColumnRenders:l=>{e.renderHeader||"selection"!==l.type&&(l.renderHeader=e=>{if(o.columnConfig.value.label,t.header){const n=t.header(e);if(iw(n))return wr(Rl,n)}return Xl(l.label)}),t["filter-icon"]&&(l.renderFilterIcon=e=>Ao(t,"filter-icon",e)),t.expand&&(l.renderExpand=e=>Ao(t,"expand",e));let r=l.renderCell;return"expand"===l.type?(l.renderCell=e=>wr("div",{class:"cell"},[r(e)]),n.value.renderExpanded=e=>t.default?t.default(e):t.default):(r=r||xx,l.renderCell=e=>{let a=null;if(t.default){const n=t.default(e);a=n.some(e=>e.type!==Pl)?n:r(e)}else a=r(e);const{columns:s}=n.value.store.states,u=s.value.findIndex(e=>"default"===e.type),d=function({row:e,treeNode:t,store:n},o=!1){const{ns:l}=n;if(!t)return o?[wr("span",{class:l.e("placeholder")})]:null;const r=[],a=function(o){o.stopPropagation(),t.loading||n.loadOrToggle(e)};if(t.indent&&r.push(wr("span",{class:l.e("indent"),style:{"padding-left":`${t.indent}px`}})),Zc(t.expanded)&&!t.noLazyChildren){const e=[l.e("expand-icon"),t.expanded?l.em("expand-icon","expanded"):""];let o=dp;t.loading&&(o=Ep),r.push(wr("button",{type:"button","aria-label":n.t(t.expanded?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":t.expanded,class:e,onClick:a},{default:()=>[wr(ip,{class:l.is("loading",t.loading)},{default:()=>[wr(o)]})]}))}else r.push(wr("span",{class:l.e("placeholder")}));return r}(e,c.value&&e.cellIndex===u),p={class:"cell",style:{}};return l.showOverflowTooltip&&(p.class=`${p.class} ${Ot(i.namespace)}-tooltip`,p.style={width:(e.column.realWidth||Number(e.column.width))-1+"px"}),(e=>{function t(e){var t;"ElTableColumn"===(null==(t=null==e?void 0:e.type)?void 0:t.name)&&(e.vParent=o)}f(e)?e.forEach(e=>t(e)):t(e)})(a),wr("div",p,[d,a])}),l},getPropsData:(...t)=>t.reduce((t,n)=>(f(n)&&n.forEach(n=>{t[n]=e[n]}),t),{}),getColumnElIndex:(e,t)=>Array.prototype.indexOf.call(e,t),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",o.columnConfig.value)}}}var Sx={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}};let kx=1;var Ex=Xn({name:"ElTableColumn",components:{ElCheckbox:tg},props:Sx,setup(e,{slots:t}){const n=ar(),o=St({}),l=yr(()=>{let e=n.parent;for(;e&&!e.tableId;)e=e.parent;return e}),{registerNormalWatchers:r,registerComplexWatchers:a}=function(e,t){const n=ar();return{registerComplexWatchers:()=>{const o={realWidth:"width",realMinWidth:"minWidth"},l=Cx(["fixed"],o);Object.keys(l).forEach(l=>{const r=o[l];p(t,r)&&wn(()=>t[r],t=>{let o=t;"width"===r&&"realWidth"===l&&(o=Yy(t)),"minWidth"===r&&"realMinWidth"===l&&(o=Xy(t)),n.columnConfig.value[r]=o,n.columnConfig.value[l]=o;const a="fixed"===r;e.value.store.scheduleLayout(a)})})},registerNormalWatchers:()=>{const o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},l=Cx(["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter","resizable"],o);Object.keys(l).forEach(e=>{const l=o[e];p(t,l)&&wn(()=>t[l],t=>{n.columnConfig.value[e]=t,"filters"!==e&&"filterMethod"!==e||(n.columnConfig.value.filterable=!(!n.columnConfig.value.filters&&!n.columnConfig.value.filterMethod))})}),["showOverflowTooltip"].forEach(t=>{p(e.value.props,t)&&wn(()=>e.value.props[t],e=>{n.columnConfig.value[t]=e})})}}}(l,e),{columnId:s,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:d,setColumnForcedProps:f,setColumnRenders:v,getPropsData:h,getColumnElIndex:m,realAlign:g,updateColumnOrder:b}=_x(e,t,l),y=c.value;s.value=`${"tableId"in y&&y.tableId||"columnId"in y&&y.columnId}_column_${kx++}`,uo(()=>{i.value=l.value!==y;const t=e.type||"default",c=""===e.sortable||e.sortable,m="selection"!==t&&(Xc(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip),b=Xc(e.tooltipFormatter)?y.props.tooltipFormatter:e.tooltipFormatter,w={...yx[t],id:s.value,type:t,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:m,tooltipFormatter:b,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:c,index:e.index,rawColumnKey:n.vnode.key};let x=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);x=function(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(p(t,o)){const e=t[o];Xc(e)||(n[o]=e)}return n}(w,x),x=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}(v,d,f)(x),o.value=x,r(),a()}),co(()=>{var e,t;const r=c.value,a=i.value?null==(e=r.vnode.el)?void 0:e.children:null==(t=r.refs.hiddenColumns)?void 0:t.children,s=()=>m(a||[],n.vnode.el);o.value.getColumnIndex=s,s()>-1&&l.value.store.commit("insertColumn",o.value,i.value?"columnConfig"in r&&r.columnConfig.value:null,b)}),vo(()=>{const e=o.value.getColumnIndex;(e?e():-1)>-1&&l.value.store.commit("removeColumn",o.value,i.value?"columnConfig"in y&&y.columnConfig.value:null,b)}),n.columnId=s.value,n.columnConfig=o},render(){var e,t,n;try{const o=null==(t=(e=this.$slots).default)?void 0:t.call(e,{row:{},column:{},$index:-1}),l=[];if(f(o))for(const e of o)"ElTableColumn"===(null==(n=e.type)?void 0:n.name)||2&e.shapeFlag?l.push(e):e.type===Rl&&f(e.children)&&e.children.forEach(e=>{1024===(null==e?void 0:e.patchFlag)||b(null==e?void 0:e.children)||l.push(e)});return wr("div",l)}catch(tT){return wr("div",[])}}});const Tx=Gd(gx,{TableColumn:Ex}),Ax=Yd(Ex),Ox=Symbol("tabsRootContextKey"),Mx=Nd({tabs:{type:Array,default:()=>[]},tabRefs:{type:Object,default:()=>({})}}),Rx="ElTabBar";var Lx=Kd(Xn({name:Rx,__name:"tab-bar",props:Mx,setup(e,{expose:t}){const n=e,o=mn(Ox);o||xd(Rx,"");const l=Wa("tabs"),r=St(),a=St(),s=yr(()=>{var e;return Xc(o.props.defaultValue)||Boolean(null==(e=a.value)?void 0:e.transform)}),i=()=>a.value=(()=>{let e=0,t=0;const l=["top","bottom"].includes(o.props.tabPosition)?"width":"height",r="width"===l?"x":"y",a="x"===r?"left":"top";return n.tabs.every(o=>{if(Xc(o.paneName))return!1;const r=n.tabRefs[o.paneName];if(!r)return!1;if(!o.active)return!0;e=r[`offset${Ay(a)}`],t=r[`client${Ay(l)}`];const s=window.getComputedStyle(r);return"width"===l&&(t-=Number.parseFloat(s.paddingLeft)+Number.parseFloat(s.paddingRight),e+=Number.parseFloat(s.paddingLeft)),!1}),{[l]:`${t}px`,transform:`translate${Ay(r)}(${e}px)`}})(),u=[];wn(()=>n.tabs,async()=>{await tn(),i(),u.forEach(e=>e.stop()),u.length=0,Object.values(n.tabRefs).forEach(e=>{u.push(bd(e,i))})},{immediate:!0});const c=bd(r,()=>i());return vo(()=>{u.forEach(e=>e.stop()),u.length=0,c.stop()}),t({ref:r,update:i}),(e,t)=>s.value?(Fl(),Dl("div",{key:0,ref_key:"barRef",ref:r,class:q([Ot(l).e("active-bar"),Ot(l).is(Ot(o).props.tabPosition)]),style:V(a.value)},null,6)):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-bar.vue"]]);const Px=Nd({panes:{type:Array,default:()=>[]},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean,tabindex:{type:[String,Number],default:void 0}}),Nx="ElTabNav",Ix=Xn({name:Nx,props:Px,emits:{tabClick:(e,t,n)=>n instanceof Event,tabRemove:(e,t)=>t instanceof Event},setup(e,{expose:t,emit:n}){const o=mn(Ox);o||xd(Nx,"");const l=Wa("tabs"),r=function(e={}){const{document:t=vd}=e;if(!t)return St("visible");const n=St(t.visibilityState);return hd(t,"visibilitychange",()=>{n.value=t.visibilityState}),n}(),a=function(e={}){const{window:t=fd}=e;if(!t)return St(!1);const n=St(t.document.hasFocus());return hd(t,"blur",()=>{n.value=!1}),hd(t,"focus",()=>{n.value=!0}),n}(),s=St(),i=St(),u=St(),c=St({}),d=St(),p=St(!1),f=St(0),v=St(!1),h=St(!0),m=kt(),g=yr(()=>["top","bottom"].includes(o.props.tabPosition)),b=yr(()=>g.value?"width":"height"),y=yr(()=>({transform:`translate${"width"===b.value?"X":"Y"}(-${f.value}px)`})),{width:w,height:x}=yd(s),{width:C,height:_}=yd(i,{width:0,height:0},{box:"border-box"}),S=yr(()=>g.value?w.value:x.value),k=yr(()=>g.value?C.value:_.value),{onWheel:E}=Ny({atStartEdge:yr(()=>f.value<=0),atEndEdge:yr(()=>k.value-f.value<=S.value),layout:yr(()=>g.value?"horizontal":"vertical")},e=>{var t,n,o;f.value=(t=f.value+e,n=0,void 0===(o=k.value-S.value)&&(o=n,n=void 0),void 0!==o&&(o=(o=gs(o))==o?o:0),void 0!==n&&(n=(n=gs(n))==n?n:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(gs(t),n,o))}),T=()=>{if(!s.value)return;const e=s.value[`offset${Ay(b.value)}`],t=f.value;if(!t)return;const n=t>e?t-e:0;f.value=n},A=()=>{if(!s.value||!i.value)return;const e=i.value[`offset${Ay(b.value)}`],t=s.value[`offset${Ay(b.value)}`],n=f.value;if(e-n<=t)return;const o=e-n>2*t?n+t:e-t;f.value=o},O=async()=>{const t=i.value;if(!(p.value&&u.value&&s.value&&t))return;await tn();const n=c.value[e.currentName];if(!n)return;const o=s.value,l=n.getBoundingClientRect(),r=o.getBoundingClientRect(),a=g.value?t.offsetWidth-r.width:t.offsetHeight-r.height,d=f.value;let v=d;g.value?(l.leftr.right&&(v=d+l.right-r.right)):(l.topr.bottom&&(v=d+(l.bottom-r.bottom))),v=Math.max(v,0),f.value=Math.min(v,a)},M=()=>{var t;if(!i.value||!s.value)return;e.stretch&&(null==(t=d.value)||t.update());const n=i.value[`offset${Ay(b.value)}`],o=s.value[`offset${Ay(b.value)}`],l=f.value;o0&&(f.value=0))},R=e=>{let t=0;switch(cv(e)){case iv.left:case iv.up:t=-1;break;case iv.right:case iv.down:t=1;break;default:return}const n=Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));let o=n.indexOf(e.target)+t;o<0?o=n.length-1:o>=n.length&&(o=0),n[o].focus({preventScroll:!0}),n[o].click(),L()},L=()=>{h.value&&(v.value=!0)},P=()=>v.value=!1;return wn(r,e=>{"hidden"===e?h.value=!1:"visible"===e&&setTimeout(()=>h.value=!0,50)}),wn(a,e=>{e?setTimeout(()=>h.value=!0,50):h.value=!1}),bd(u,()=>{ep(M)}),co(()=>setTimeout(()=>O(),0)),fo(()=>M()),t({scrollToActiveTab:O,removeFocus:P,focusActiveTab:async()=>{await tn();const t=c.value[e.currentName];null==t||t.focus({preventScroll:!0})},tabListRef:i,tabBarRef:d,scheduleRender:()=>At(m)}),()=>{const t=p.value?[Gl("span",{class:[l.e("nav-prev"),l.is("disabled",!p.value.prev)],onClick:T},[Gl(ip,null,{default:()=>[Gl(cp,null,null)]})]),Gl("span",{class:[l.e("nav-next"),l.is("disabled",!p.value.next)],onClick:A},[Gl(ip,null,{default:()=>[Gl(dp,null,null)]})])]:null,r=e.panes.map((t,r)=>{var a,s,i,u,d;const p=t.uid,f=t.props.disabled,h=null!=(s=null!=(a=t.props.name)?a:t.index)?s:`${r}`,m=!f&&(t.isClosable||!1!==t.props.closable&&e.editable);t.index=`${r}`;const g=m?Gl(ip,{class:"is-icon-close",onClick:e=>n("tabRemove",t,e)},{default:()=>[Gl(bp,null,null)]}):null,b=(null==(u=(i=t.slots).label)?void 0:u.call(i))||t.props.label,y=!f&&t.active?null!=(d=e.tabindex)?d:o.props.tabindex:-1;return Gl("div",{ref:e=>((e,t)=>{c.value[t]=e})(e,h),class:[l.e("item"),l.is(o.props.tabPosition),l.is("active",t.active),l.is("disabled",f),l.is("closable",m),l.is("focus",v.value)],id:`tab-${h}`,key:`tab-${p}`,"aria-controls":`pane-${h}`,role:"tab","aria-selected":t.active,tabindex:y,onFocus:()=>L(),onBlur:()=>P(),onClick:e=>{P(),n("tabClick",t,h,e)},onKeydown:e=>{const o=cv(e);!m||o!==iv.delete&&o!==iv.backspace||n("tabRemove",t,e)}},[b,g])});return m.value,Gl("div",{ref:u,class:[l.e("nav-wrap"),l.is("scrollable",!!p.value),l.is(o.props.tabPosition)]},[t,Gl("div",{class:l.e("nav-scroll"),ref:s},[e.panes.length>0?Gl("div",{class:[l.e("nav"),l.is(o.props.tabPosition),l.is("stretch",e.stretch&&["top","bottom"].includes(o.props.tabPosition))],ref:i,style:y.value,role:"tablist",onKeydown:R,onWheel:E},[e.type?null:Gl(Lx,{ref:d,tabs:[...e.panes],tabRefs:c.value},null),r]):null])])}}}),Bx=Nd({type:{type:String,values:["card","border-card",""],default:""},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},defaultValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:Function,default:()=>!0},stretch:Boolean,tabindex:{type:[String,Number],default:0}}),Fx=e=>b(e)||Jc(e),$x={[Zd]:e=>Fx(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>Fx(e),edit:(e,t)=>["remove","add"].includes(t),tabRemove:e=>Fx(e),tabAdd:()=>!0},jx=Xn({name:"ElTabs",props:Bx,emits:$x,setup(e,{emit:t,slots:n,expose:o}){var l;const r=Wa("tabs"),a=yr(()=>["left","right"].includes(e.tabPosition)),{children:s,addChild:i,removeChild:u,ChildrenSorter:c}=Dm(ar(),"ElTabPane"),d=St(),p=St(null!=(l=Xc(e.modelValue)?e.defaultValue:e.modelValue)?l:"0"),f=async(n,o=!1)=>{var l,r,a,i;if(p.value!==n&&!Xc(n))try{let u;if(e.beforeLeave){const t=e.beforeLeave(n,p.value);u=t instanceof Promise?await t:t}else u=!0;if(!1!==u){const e=null==(l=s.value.find(e=>e.paneName===p.value))?void 0:l.isFocusInsidePane();p.value=n,o&&(t(Zd,n),t("tabChange",n)),null==(a=null==(r=d.value)?void 0:r.removeFocus)||a.call(r),e&&(null==(i=d.value)||i.focusActiveTab())}}catch(tT){}},v=(e,n,o)=>{e.props.disabled||(t("tabClick",e,o),f(n,!0))},h=(e,n)=>{e.props.disabled||Xc(e.props.name)||(n.stopPropagation(),t("edit",e.props.name,"remove"),t("tabRemove",e.props.name))},m=()=>{t("edit",void 0,"add"),t("tabAdd")},g=e=>{const t=cv(e);[iv.enter,iv.numpadEnter].includes(t)&&m()},b=t=>{const n=t.el.firstChild,o=["bottom","right"].includes(e.tabPosition)?t.children[0].el:t.children[1].el;n!==o&&n.before(o)};return wn(()=>e.modelValue,e=>f(e)),wn(p,async()=>{var e;await tn(),null==(e=d.value)||e.scrollToActiveTab()}),hn(Ox,{props:e,currentName:p,registerPane:i,unregisterPane:u,nav$:d}),o({currentName:p,get tabNavRef(){return Uc(d.value,["scheduleRender"])}}),()=>{const t=n["add-icon"],o=e.editable||e.addable?Gl("div",{class:[r.e("new-tab"),a.value&&r.e("new-tab-vertical")],tabindex:e.tabindex,onClick:m,onKeydown:g},[t?Ao(n,"add-icon"):Gl(ip,{class:r.is("icon-plus")},{default:()=>[Gl(Mp,null,null)]})]):null,l=Gl("div",{class:[r.e("header"),a.value&&r.e("header-vertical"),r.is(e.tabPosition)]},[Gl(c,null,{default:()=>Gl(Ix,{ref:d,currentName:p.value,editable:e.editable,type:e.type,panes:s.value,stretch:e.stretch,onTabClick:v,onTabRemove:h},null),$stable:!0}),o]),i=Gl("div",{class:r.e("content")},[Ao(n,"default")]);return Gl("div",{class:[r.b(),r.m(e.tabPosition),{[r.m("card")]:"card"===e.type,[r.m("border-card")]:"border-card"===e.type}],onVnodeMounted:b,onVnodeUpdated:b},[i,l])}}}),Vx=Nd({label:{type:String,default:""},name:{type:[String,Number]},closable:{type:Boolean,default:void 0},disabled:Boolean,lazy:Boolean}),Dx=["id","aria-hidden","aria-labelledby"],zx="ElTabPane";var Hx=Kd(Xn({name:zx,__name:"tab-pane",props:Vx,setup(e){const t=e,n=ar(),o=No(),l=mn(Ox);l||xd(zx,"usage: ");const r=Wa("tab-pane"),a=St(),s=St(),i=yr(()=>{var e;return null!=(e=t.closable)?e:l.props.closable}),u=yr(()=>{var e;return l.currentName.value===(null!=(e=t.name)?e:s.value)}),c=St(u.value),d=yr(()=>{var e;return null!=(e=t.name)?e:s.value}),p=yr(()=>!t.lazy||c.value||u.value);wn(u,e=>{e&&(c.value=!0)});const f=pt({uid:n.uid,getVnode:()=>n.vnode,slots:o,props:t,paneName:d,active:u,index:s,isClosable:i,isFocusInsidePane:()=>{var e;return null==(e=a.value)?void 0:e.contains(document.activeElement)}});return l.registerPane(f),vo(()=>{l.unregisterPane(f)}),po(()=>{var e;o.label&&(null==(e=l.nav$.value)||e.scheduleRender())}),(e,t)=>p.value?fn((Fl(),Dl("div",{key:0,id:`pane-${d.value}`,ref_key:"paneRef",ref:a,class:q(Ot(r).b()),role:"tabpanel","aria-hidden":!u.value,"aria-labelledby":`tab-${d.value}`},[Ao(e.$slots,"default")],10,Dx)),[[Xr,u.value]]):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-pane.vue"]]);const Wx=Gd(jx,{TabPane:Hx}),qx=Yd(Hx),Ux=Gd(Kd(Xn({name:"ElText",__name:"text",props:Nd({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:Id,default:""},truncated:Boolean,lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),setup(e){const t=e,n=St(),o=vf(),l=Wa("text"),r=yr(()=>[l.b(),l.m(t.type),l.m(o.value),l.is("truncated",t.truncated),l.is("line-clamp",!Xc(t.lineClamp))]),a=()=>{var e,o,l,r,a,s,i;if(Io().title)return;let u=!1;const c=(null==(e=n.value)?void 0:e.textContent)||"";if(t.truncated){const e=null==(o=n.value)?void 0:o.offsetWidth,t=null==(l=n.value)?void 0:l.scrollWidth;e&&t&&t>e&&(u=!0)}else if(!Xc(t.lineClamp)){const e=null==(r=n.value)?void 0:r.offsetHeight,t=null==(a=n.value)?void 0:a.scrollHeight;e&&t&&t>e&&(u=!0)}u?null==(s=n.value)||s.setAttribute("title",c):null==(i=n.value)||i.removeAttribute("title")};return co(a),fo(a),(e,t)=>(Fl(),zl(_o(e.tag),{ref_key:"textRef",ref:n,class:q(r.value),style:V({"-webkit-line-clamp":e.lineClamp})},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/text/src/text.vue"]]));function Kx(e,t){let n;const o=St(!1),l=pt({...e,originalPosition:"",originalOverflow:"",visible:!1});function r(){var e,t;null==(t=null==(e=i.$el)?void 0:e.parentNode)||t.removeChild(i.$el)}function a(){if(!o.value)return;const e=l.parent;o.value=!1,e.vLoadingAddClassList=void 0,function(){const e=l.parent,t=i.ns;if(!e.vLoadingAddClassList){let n=e.getAttribute("loading-number");n=Number.parseInt(n)-1,n?e.setAttribute("loading-number",n.toString()):(lp(e,t.bm("parent","relative")),e.removeAttribute("loading-number")),lp(e,t.bm("parent","hidden"))}r(),s.unmount()}()}const s=$a(Xn({name:"ElLoading",setup(e,{expose:t}){const{ns:n,zIndex:o}=Hd("loading");return t({ns:n,zIndex:o}),()=>{const e=l.spinner||l.svg,t=wr("svg",{class:"circular",viewBox:l.svgViewBox?l.svgViewBox:"0 0 50 50",...e?{innerHTML:e}:{}},[wr("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),o=l.text?wr("p",{class:n.b("text")},[l.text]):void 0;return wr(Nr,{name:n.b("fade"),onAfterLeave:a},{default:pn(()=>[fn(Gl("div",{style:{backgroundColor:l.background||""},class:[n.b("mask"),l.customClass,n.is("fullscreen",l.fullscreen)]},[wr("div",{class:n.b("spinner")},[t,o])]),[[Xr,l.visible]])])})}}}));Object.assign(s._context,null!=t?t:{});const i=s.mount(document.createElement("div"));return{...Nt(l),setText:function(e){l.text=e},removeElLoadingChild:r,close:function(){var t;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(n),n=setTimeout(a,400),l.visible=!1,null==(t=e.closed)||t.call(e))},handleAfterLeave:a,vm:i,get $el(){return i.$el}}}let Gx;const Yx=function(e={},t){if(!ld)return;const n=Xx(e);if(n.fullscreen&&Gx)return Gx;const o=Kx({...n,closed:()=>{var e;null==(e=n.closed)||e.call(n),n.fullscreen&&(Gx=void 0)}},null!=t?t:Yx._context);Zx(n,n.parent,o),Jx(n,n.parent,o),n.parent.vLoadingAddClassList=()=>Jx(n,n.parent,o);let l=n.parent.getAttribute("loading-number");return l=l?`${Number.parseInt(l)+1}`:"1",n.parent.setAttribute("loading-number",l),n.parent.appendChild(o.$el),tn(()=>o.visible.value=n.visible),n.fullscreen&&(Gx=o),o},Xx=e=>{var t,n,o,l;let r;return r=b(e.target)?null!=(t=document.querySelector(e.target))?t:document.body:e.target||document.body,{parent:r===document.body||e.body?document.body:r,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:r===document.body&&(null==(n=e.fullscreen)||n),lock:null!=(o=e.lock)&&o,customClass:e.customClass||"",visible:null==(l=e.visible)||l,beforeClose:e.beforeClose,closed:e.closed,target:r}},Zx=async(e,t,n)=>{const{nextZIndex:o}=n.vm.zIndex||n.vm._.exposed.zIndex,l={};if(e.fullscreen)n.originalPosition.value=rp(document.body,"position"),n.originalOverflow.value=rp(document.body,"overflow"),l.zIndex=o();else if(e.parent===document.body){n.originalPosition.value=rp(document.body,"position"),await tn();for(const t of["top","left"]){const n="top"===t?"scrollTop":"scrollLeft";l[t]=e.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-Number.parseInt(rp(document.body,`margin-${t}`),10)+"px"}for(const t of["height","width"])l[t]=`${e.target.getBoundingClientRect()[t]}px`}else n.originalPosition.value=rp(t,"position");for(const[r,a]of Object.entries(l))n.$el.style[r]=a},Jx=(e,t,n)=>{const o=n.vm.ns||n.vm._.exposed.ns;["absolute","fixed","sticky"].includes(n.originalPosition.value)?lp(t,o.bm("parent","relative")):op(t,o.bm("parent","relative")),e.fullscreen&&e.lock?op(t,o.bm("parent","hidden")):lp(t,o.bm("parent","hidden"))};Yx._context=null;const Qx=Symbol("ElLoading"),eC=e=>`element-loading-${R(e)}`,tC=(e,t)=>{var n,o,l,r;const a=t.instance,s=e=>w(t.value)?t.value[e]:void 0,i=t=>{return n=s(t)||e.getAttribute(eC(t)),St(b(n)&&(null==a?void 0:a[n])||n);var n},u=null!=(n=s("fullscreen"))?n:t.modifiers.fullscreen,c={text:i("text"),svg:i("svg"),svgViewBox:i("svgViewBox"),spinner:i("spinner"),background:i("background"),customClass:i("customClass"),fullscreen:u,target:null!=(o=s("target"))?o:u?void 0:e,body:null!=(l=s("body"))?l:t.modifiers.body,lock:null!=(r=s("lock"))?r:t.modifiers.lock},d=Yx(c);d._context=nC._context,e[Qx]={options:c,instance:d}},nC={mounted(e,t){t.value&&tC(e,t)},updated(e,t){const n=e[Qx];if(!t.value)return null==n||n.instance.close(),void(e[Qx]=null);n?((e,t)=>{for(const n of Object.keys(e))_t(e[n])&&(e[n].value=t[n])})(n.options,w(t.value)?t.value:{text:e.getAttribute(eC("text")),svg:e.getAttribute(eC("svg")),svgViewBox:e.getAttribute(eC("svgViewBox")),spinner:e.getAttribute(eC("spinner")),background:e.getAttribute(eC("background")),customClass:e.getAttribute(eC("customClass"))}):tC(e,t)},unmounted(e){var t;null==(t=e[Qx])||t.instance.close(),e[Qx]=null},_context:null},oC=["primary","success","info","warning","error"],lC=["top","top-left","top-right","bottom","bottom-left","bottom-right"],rC="top",aC={customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,placement:void 0,zIndex:0,grouping:!1,repeatNum:1,appendTo:ld?document.body:void 0},sC=Nd({customClass:{type:String,default:aC.customClass},dangerouslyUseHTMLString:{type:Boolean,default:aC.dangerouslyUseHTMLString},duration:{type:Number,default:aC.duration},icon:{type:Dp,default:aC.icon},id:{type:String,default:aC.id},message:{type:[String,Object,Function],default:aC.message},onClose:{type:Function,default:aC.onClose},showClose:{type:Boolean,default:aC.showClose},type:{type:String,values:oC,default:aC.type},plain:{type:Boolean,default:aC.plain},offset:{type:Number,default:aC.offset},placement:{type:String,values:lC,default:aC.placement},zIndex:{type:Number,default:aC.zIndex},grouping:{type:Boolean,default:aC.grouping},repeatNum:{type:Number,default:aC.repeatNum}}),iC=ft({}),uC=(e,t)=>{const{prev:n}=((e,t)=>{const n=iC[t]||[],o=n.findIndex(t=>t.id===e),l=n[o];let r;return o>0&&(r=n[o-1]),{current:l,prev:r}})(e,t);return n?n.vm.exposed.bottom.value:0},cC=["id"],dC=["innerHTML"];var pC=Kd(Xn({name:"ElMessage",__name:"message",props:sC,emits:{destroy:()=>!0},setup(e,{expose:t,emit:n}){const{Close:o}=Hp,l=e,r=n,a=St(!1),{ns:s,zIndex:i}=Hd("message"),{currentZIndex:u,nextZIndex:c}=i,d=St(),p=St(!1),f=St(0);let v;const h=yr(()=>l.type?"error"===l.type?"danger":l.type:"info"),m=yr(()=>{const e=l.type;return{[s.bm("icon",e)]:e&&Wp[e]}}),g=yr(()=>l.icon||Wp[l.type]||""),b=yr(()=>l.placement||rC),y=yr(()=>uC(l.id,b.value)),w=yr(()=>((e,t,n)=>(iC[n]||[]).findIndex(t=>t.id===e)>0?16:t)(l.id,l.offset,b.value)+y.value),x=yr(()=>f.value+w.value),C=yr(()=>b.value.includes("left")?s.is("left"):b.value.includes("right")?s.is("right"):s.is("center")),_=yr(()=>b.value.startsWith("top")?"top":"bottom"),S=yr(()=>({[_.value]:`${w.value}px`,zIndex:u.value}));function k(){0!==l.duration&&({stop:v}=dd(()=>{T()},l.duration))}function E(){null==v||v()}function T(){p.value=!1,tn(()=>{var e;a.value||(null==(e=l.onClose)||e.call(l),r("destroy"))})}return co(()=>{k(),c(),p.value=!0}),wn(()=>l.repeatNum,()=>{E(),k()}),hd(document,"keydown",function(e){cv(e)===iv.esc&&T()}),bd(d,()=>{f.value=d.value.getBoundingClientRect().height}),t({visible:p,bottom:x,close:T}),(e,t)=>(Fl(),zl(Nr,{name:Ot(s).b("fade"),onBeforeEnter:t[0]||(t[0]=e=>a.value=!0),onBeforeLeave:e.onClose,onAfterLeave:t[1]||(t[1]=t=>e.$emit("destroy")),persisted:""},{default:pn(()=>[fn(Kl("div",{id:e.id,ref_key:"messageRef",ref:d,class:q([Ot(s).b(),{[Ot(s).m(e.type)]:e.type},Ot(s).is("closable",e.showClose),Ot(s).is("plain",e.plain),Ot(s).is("bottom","bottom"===_.value),C.value,e.customClass]),style:V(S.value),role:"alert",onMouseenter:E,onMouseleave:k},[e.repeatNum>1?(Fl(),zl(Ot(um),{key:0,value:e.repeatNum,type:h.value,class:q(Ot(s).e("badge"))},null,8,["value","type","class"])):Zl("v-if",!0),g.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(s).e("icon"),m.value])},{default:pn(()=>[(Fl(),zl(_o(g.value)))]),_:1},8,["class"])):Zl("v-if",!0),Ao(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(Fl(),Dl(Rl,{key:1},[Zl(" Caution here, message could've been compromised, never use user's input as message "),Kl("p",{class:q(Ot(s).e("content")),innerHTML:e.message},null,10,dC)],2112)):(Fl(),Dl("p",{key:0,class:q(Ot(s).e("content"))},Z(e.message),3))]),e.showClose?(Fl(),zl(Ot(ip),{key:2,class:q(Ot(s).e("closeBtn")),onClick:Ra(T,["stop"])},{default:pn(()=>[Gl(Ot(o))]),_:1},8,["class"])):Zl("v-if",!0)],46,cC),[[Xr,p.value]])]),_:3},8,["name","onBeforeLeave"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let fC=1;const vC=e=>{const t=!e||b(e)||Hl(e)||g(e)?{message:e}:e,n={...aC,...t};return(e=>{if(e.appendTo){if(b(e.appendTo)){let t=document.querySelector(e.appendTo);Qc(t)||(t=document.body),e.appendTo=t}}else e.appendTo=document.body})(n),(e=>{!e.placement&&b(Rg.placement)&&Rg.placement&&(e.placement=Rg.placement),e.placement||(e.placement=rC),lC.includes(e.placement)||(e.placement=rC)})(n),Zc(Rg.grouping)&&!n.grouping&&(n.grouping=Rg.grouping),Jc(Rg.duration)&&3e3===n.duration&&(n.duration=Rg.duration),Jc(Rg.offset)&&16===n.offset&&(n.offset=Rg.offset),Zc(Rg.showClose)&&!n.showClose&&(n.showClose=Rg.showClose),Zc(Rg.plain)&&!n.plain&&(n.plain=Rg.plain),n},hC=({appendTo:e,...t},n)=>{const o="message_"+fC++,l=t.onClose,r=document.createElement("div"),a={...t,id:o,onClose:()=>{null==l||l(),(e=>{const t=e.props.placement||rC,n=iC[t],o=n.indexOf(e);if(-1===o)return;n.splice(o,1);const{handler:l}=e;l.close()})(c)},onDestroy:()=>{Fa(null,r)}},s=Gl(pC,a,g(a.message)||Hl(a.message)?{default:g(a.message)?a.message:()=>a.message}:null);s.appContext=n||mC._context,Fa(s,r),e.appendChild(r.firstElementChild);const i=s.component,u={close:()=>{i.exposed.close()}},c={id:o,vnode:s,vm:i,handler:u,props:s.component.props};return c},mC=(e={},t)=>{if(!ld)return{close:()=>{}};const n=vC(e),o=(l=n.placement||rC,iC[l]||(iC[l]=ft([])),iC[l]);var l;if(n.grouping&&o.length){const e=o.find(({vnode:e})=>{var t;return(null==(t=e.props)?void 0:t.message)===n.message});if(e)return e.props.repeatNum+=1,e.props.type=n.type,e.handler}if(Jc(Rg.max)&&o.length>=Rg.max)return{close:()=>{}};const r=hC(n,t);return o.push(r),r.handler};oC.forEach(e=>{mC[e]=(t={},n)=>{const o=vC(t);return mC({...o,type:e},n)}}),mC.closeAll=function(e){for(const t in iC)if(p(iC,t)){const n=[...iC[t]];for(const t of n)e&&e!==t.props.type||t.handler.close()}},mC.closeAllByPlacement=function(e){iC[e]&&[...iC[e]].forEach(e=>e.handler.close())},mC._context=null;const gC=(yC="$message",(bC=mC).install=e=>{bC._context=e._context,e.config.globalProperties[yC]=bC},bC);var bC,yC;const wC="undefined"!=typeof document;function xC(e){return"object"==typeof e||"displayName"in e||"props"in e||"__vccOpts"in e}const CC=Object.assign;function _C(e,t){const n={};for(const o in t){const l=t[o];n[o]=kC(l)?l.map(e):e(l)}return n}const SC=()=>{},kC=Array.isArray;function EC(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const TC=/#/g,AC=/&/g,OC=/\//g,MC=/=/g,RC=/\?/g,LC=/\+/g,PC=/%5B/g,NC=/%5D/g,IC=/%5E/g,BC=/%60/g,FC=/%7B/g,$C=/%7C/g,jC=/%7D/g,VC=/%20/g;function DC(e){return null==e?"":encodeURI(""+e).replace($C,"|").replace(PC,"[").replace(NC,"]")}function zC(e){return DC(e).replace(LC,"%2B").replace(VC,"+").replace(TC,"%23").replace(AC,"%26").replace(BC,"`").replace(FC,"{").replace(jC,"}").replace(IC,"^")}function HC(e){return zC(e).replace(MC,"%3D")}function WC(e){return function(e){return DC(e).replace(TC,"%23").replace(RC,"%3F")}(e).replace(OC,"%2F")}function qC(e){if(null==e)return null;try{return decodeURIComponent(""+e)}catch(t){}return""+e}const UC=/\/$/;function KC(e,t,n="/"){let o,l={},r="",a="";const s=t.indexOf("#");let i=t.indexOf("?");return i=s>=0&&i>s?-1:i,i>=0&&(o=t.slice(0,i),r=t.slice(i,s>0?s:t.length),l=e(r.slice(1))),s>=0&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=function(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),l=o[o.length-1];".."!==l&&"."!==l||o.push("");let r,a,s=n.length-1;for(r=0;r1&&s--}return n.slice(0,s).join("/")+"/"+o.slice(r).join("/")}(null!=o?o:t,n),{fullPath:o+r+a,path:o,query:l,hash:qC(a)}}function GC(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function YC(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function XC(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!ZC(e[n],t[n]))return!1;return!0}function ZC(e,t){return kC(e)?JC(e,t):kC(t)?JC(t,e):e?.valueOf()===t?.valueOf()}function JC(e,t){return kC(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):1===e.length&&e[0]===t}const QC={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let e_=function(e){return e.pop="pop",e.push="push",e}({}),t_=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function n_(e){if(!e)if(wC){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),e.replace(UC,"")}const o_=/^[^#]+#/;function l_(e,t){return e.replace(o_,"#")+t}const r_=()=>({left:window.scrollX,top:window.scrollY});function a_(e){let t;if("el"in e){const n=e.el,o="string"==typeof n&&n.startsWith("#"),l="string"==typeof n?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!l)return;t=function(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}(l,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.scrollX,null!=t.top?t.top:window.scrollY)}function s_(e,t){return(history.state?history.state.position-t:-1)+e}const i_=new Map;function u_(e){return"string"==typeof e||"symbol"==typeof e}let c_=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const d_=Symbol("");function p_(e,t){return CC(new Error,{type:e,[d_]:!0},t)}function f_(e,t){return e instanceof Error&&d_ in e&&(null==t||!!(e.type&t))}function v_(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let o=0;oe&&zC(e)):[o&&zC(o)]).forEach(e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))}):void 0!==o&&(t+=(t.length?"&":"")+n)}return t}function m_(e){const t={};for(const n in e){const o=e[n];void 0!==o&&(t[n]=kC(o)?o.map(e=>null==e?null:""+e):null==o?o:""+o)}return t}c_.MATCHER_NOT_FOUND,c_.NAVIGATION_GUARD_REDIRECT,c_.NAVIGATION_ABORTED,c_.NAVIGATION_CANCELLED,c_.NAVIGATION_DUPLICATED;const g_=Symbol(""),b_=Symbol(""),y_=Symbol(""),w_=Symbol(""),x_=Symbol("");function C_(){let e=[];return{add:function(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}},list:()=>e.slice(),reset:function(){e=[]}}}function __(e,t,n,o,l,r=e=>e()){const a=o&&(o.enterCallbacks[l]=o.enterCallbacks[l]||[]);return()=>new Promise((s,i)=>{const u=e=>{var r;!1===e?i(p_(c_.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?i(e):"string"==typeof(r=e)||r&&"object"==typeof r?i(p_(c_.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(a&&o.enterCallbacks[l]===a&&"function"==typeof e&&a.push(e),s())},c=r(()=>e.call(o&&o.instances[l],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(e=>i(e))})}function S_(e,t,n,o,l=e=>e()){const r=[];for(const a of e)for(const e in a.components){let s=a.components[e];if("beforeRouteEnter"===t||a.instances[e])if(xC(s)){const i=(s.__vccOpts||s)[t];i&&r.push(__(i,n,o,a,e,l))}else{let i=s();r.push(()=>i.then(r=>{if(!r)throw new Error(`Couldn't resolve component "${e}" at "${a.path}"`);const s=(i=r).__esModule||"Module"===i[Symbol.toStringTag]||i.default&&xC(i.default)?r.default:r;var i;a.mods[e]=r,a.components[e]=s;const u=(s.__vccOpts||s)[t];return u&&__(u,n,o,a,e,l)()}))}}return r}function k_(e,t){const{pathname:n,search:o,hash:l}=t,r=e.indexOf("#");if(r>-1){let t=l.includes(e.slice(r))?e.slice(r).length:1,n=l.slice(t);return"/"!==n[0]&&(n="/"+n),GC(n,"")}return GC(n,e)+o+l}function E_(e,t,n,o=!1,l=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:l?r_():null}}function T_(e){const{history:t,location:n}=window,o={value:k_(e,n)},l={value:t.state};function r(o,r,a){const s=e.indexOf("#"),i=s>-1?(n.host&&document.querySelector("base")?e:e.slice(s))+o:location.protocol+"//"+location.host+e+o;try{t[a?"replaceState":"pushState"](r,"",i),l.value=r}catch(u){n[a?"replace":"assign"](i)}}return l.value||r(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:o,state:l,push:function(e,n){const a=CC({},l.value,t.state,{forward:e,scroll:r_()});r(a.current,a,!0),r(e,CC({},E_(o.value,e,null),{position:a.position+1},n),!1),o.value=e},replace:function(e,n){r(e,CC({},t.state,E_(l.value.back,e,l.value.forward,!0),n,{position:l.value.position}),!0),o.value=e}}}function A_(e){const t=T_(e=n_(e)),n=function(e,t,n,o){let l=[],r=[],a=null;const s=({state:r})=>{const s=k_(e,location),i=n.value,u=t.value;let c=0;if(r){if(n.value=s,t.value=r,a&&a===i)return void(a=null);c=u?r.position-u.position:0}else o(s);l.forEach(e=>{e(n.value,i,{delta:c,type:e_.pop,direction:c?c>0?t_.forward:t_.back:t_.unknown})})};function i(){if("hidden"===document.visibilityState){const{history:e}=window;if(!e.state)return;e.replaceState(CC({},e.state,{scroll:r_()}),"")}}return window.addEventListener("popstate",s),window.addEventListener("pagehide",i),document.addEventListener("visibilitychange",i),{pauseListeners:function(){a=n.value},listen:function(e){l.push(e);const t=()=>{const t=l.indexOf(e);t>-1&&l.splice(t,1)};return r.push(t),t},destroy:function(){for(const e of r)e();r=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",i),document.removeEventListener("visibilitychange",i)}}}(e,t.state,t.location,t.replace),o=CC({location:"",base:e,go:function(e,t=!0){t||n.pauseListeners(),history.go(e)},createHref:l_.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let O_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var M_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(M_||{});const R_={type:O_.Static,value:""},L_=/[a-zA-Z0-9_]/,P_="[^/]+?",N_={sensitive:!1,strict:!1,start:!0,end:!0};var I_=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(I_||{});const B_=/[.+*?^${}()[\]/\\]/g;function F_(e,t){let n=0;for(;nt.length?1===t.length&&t[0]===I_.Static+I_.Segment?1:-1:0}function $_(e,t){let n=0;const o=e.score,l=t.score;for(;n0&&t[t.length-1]<0}const V_={strict:!1,end:!0,sensitive:!1};function D_(e,t,n){const o=function(e,t){const n=CC({},N_,t),o=[];let l=n.start?"^":"";const r=[];for(const s of e){const e=s.length?[]:[I_.Root];n.strict&&!s.length&&(l+="/");for(let t=0;t1&&("*"===s||"+"===s)&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),r.push({type:O_.Param,value:u,regexp:c,repeatable:"*"===s||"+"===s,optional:"*"===s||"?"===s})):t("Invalid state to consume buffer"),u="")}function p(){u+=s}for(;i{r(p)}:SC}function r(e){if(u_(e)){const t=o.get(e);t&&(o.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(r),t.alias.forEach(r))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&o.delete(e.record.name),e.children.forEach(r),e.alias.forEach(r))}}function a(e){const t=function(e,t){let n=0,o=t.length;for(;n!==o;){const l=n+o>>1;$_(e,t[l])<0?o=l:n=l+1}const l=function(e){let t=e;for(;t=t.parent;)if(G_(t)&&0===$_(e,t))return t}(e);return l&&(o=t.lastIndexOf(l,o-1)),o}(e,n);n.splice(t,0,e),e.record.name&&!U_(e)&&o.set(e.record.name,e)}return t=EC(V_,t),e.forEach(e=>l(e)),{addRoute:l,resolve:function(e,t){let l,r,a,s={};if("name"in e&&e.name){if(l=o.get(e.name),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e});a=l.record.name,s=CC(H_(t.params,l.keys.filter(e=>!e.optional).concat(l.parent?l.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&H_(e.params,l.keys.map(e=>e.name))),r=l.stringify(s)}else if(null!=e.path)r=e.path,l=n.find(e=>e.re.test(r)),l&&(s=l.parse(r),a=l.record.name);else{if(l=t.name?o.get(t.name):n.find(e=>e.re.test(t.path)),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e,currentLocation:t});a=l.record.name,s=CC({},t.params,e.params),r=l.stringify(s)}const i=[];let u=l;for(;u;)i.unshift(u.record),u=u.parent;return{name:a,path:r,params:s,matched:i,meta:K_(i)}},removeRoute:r,clearRoutes:function(){n.length=0,o.clear()},getRoutes:function(){return n},getRecordMatcher:function(e){return o.get(e)}}}function H_(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function W_(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:q_(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function q_(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]="object"==typeof n?n[o]:n;return t}function U_(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function K_(e){return e.reduce((e,t)=>CC(e,t.meta),{})}function G_({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Y_(e){const t=mn(y_),n=mn(w_),o=yr(()=>{const n=Ot(e.to);return t.resolve(n)}),l=yr(()=>{const{matched:e}=o.value,{length:t}=e,l=e[t-1],r=n.matched;if(!l||!r.length)return-1;const a=r.findIndex(YC.bind(null,l));if(a>-1)return a;const s=Z_(e[t-2]);return t>1&&Z_(l)===s&&r[r.length-1].path!==s?r.findIndex(YC.bind(null,e[t-2])):a}),r=yr(()=>l.value>-1&&function(e,t){for(const n in t){const o=t[n],l=e[n];if("string"==typeof o){if(o!==l)return!1}else if(!kC(l)||l.length!==o.length||o.some((e,t)=>e.valueOf()!==l[t].valueOf()))return!1}return!0}(n.params,o.value.params)),a=yr(()=>l.value>-1&&l.value===n.matched.length-1&&XC(n.params,o.value.params));return{route:o,href:yr(()=>o.value.href),isActive:r,isExactActive:a,navigate:function(n={}){if(function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}(n)){const n=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(SC);return e.viewTransition&&"undefined"!=typeof document&&"startViewTransition"in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}}}const X_=Xn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Y_,setup(e,{slots:t}){const n=pt(Y_(e)),{options:o}=mn(y_),l=yr(()=>({[J_(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[J_(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&(1===(r=t.default(n)).length?r[0]:r);var r;return e.custom?o:wr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:l.value},o)}}});function Z_(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const J_=(e,t,n)=>null!=e?e:null!=t?t:n,Q_=Xn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=mn(x_),l=yr(()=>e.route||o.value),r=mn(b_,0),a=yr(()=>{let e=Ot(r);const{matched:t}=l.value;let n;for(;(n=t[e])&&!n.components;)e++;return e}),s=yr(()=>l.value.matched[a.value]);hn(b_,yr(()=>a.value+1)),hn(g_,s),hn(x_,l);const i=St();return wn(()=>[i.value,s.value,e.name],([e,t,n],[o,l,r])=>{t&&(t.instances[n]=e,l&&l!==t&&e&&e===o&&(t.leaveGuards.size||(t.leaveGuards=l.leaveGuards),t.updateGuards.size||(t.updateGuards=l.updateGuards))),!e||!t||l&&YC(t,l)&&o||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:"post"}),()=>{const o=l.value,r=e.name,a=s.value,u=a&&a.components[r];if(!u)return eS(n.default,{Component:u,route:o});const c=a.props[r],d=c?!0===c?o.params:"function"==typeof c?c(o):c:null,p=wr(u,CC({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[r]=null)},ref:i}));return eS(n.default,{Component:p,route:o})||p}}});function eS(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const tS=Q_;function nS(){return mn(y_)}function oS(e){return mn(w_)}const lS=new WeakMap,rS=(...e)=>{var t;const n=e[0],o=null===(t=ar())||void 0===t?void 0:t.proxy,l=null!=o?o:oe();if(null==l&&!gn())throw new Error("injectLocal must be called in setup");return l&&lS.has(l)&&n in lS.get(l)?lS.get(l)[n]:mn(...e)},aS="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const sS=Object.prototype.toString,iS=()=>{};function uS(...e){if(1!==e.length)return Ft(...e);const t=e[0];return"function"==typeof t?vt(new Pt(()=>({get:t,set:iS}))):St(t)}const cS=e=>e();function dS(e){return e.endsWith("rem")?16*Number.parseFloat(e):Number.parseFloat(e)}function pS(e){return Array.isArray(e)?e:[e]}function fS(e,t,n={}){const{eventFilter:o=cS,...l}=n;return wn(e,function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(o,t),l)}const vS=function(e,t,n={}){const{eventFilter:o,initialState:l="active",...r}=n,{eventFilter:a,pause:s,resume:i,isActive:u}=function(e=cS,t={}){const{initialState:n="active"}=t,o=uS("active"===n);return{isActive:vt(o),pause:function(){o.value=!1},resume:function(){o.value=!0},eventFilter:(...t)=>{o.value&&e(...t)}}}(o,{initialState:l});return{stop:fS(e,t,{...r,eventFilter:a}),pause:s,resume:i,isActive:u}};function hS(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function mS(e=!1,t={}){const{truthyValue:n=!0,falsyValue:o=!1}=t,l=_t(e),r=kt(e);function a(e){if(arguments.length)return r.value=e,r.value;{const e=Mt(n);return r.value=r.value===e?Mt(o):e,r.value}}return l?a:[r,a]}const gS=aS?window:void 0;function bS(e){var t;const n=Mt(e);return null!==(t=null==n?void 0:n.$el)&&void 0!==t?t:n}function yS(...e){const t=yr(()=>{const t=pS(Mt(e[0])).filter(e=>null!=e);return t.every(e=>"string"!=typeof e)?t:void 0});return n=([e,t,n,o],l,r)=>{if(!(null==e?void 0:e.length)||!(null==t?void 0:t.length)||!(null==n?void 0:n.length))return;const a=(s=o,"[object Object]"===sS.call(s)?{...o}:o);var s;const i=e.flatMap(e=>t.flatMap(t=>n.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,a))));r(()=>{i.forEach(e=>e())})},o={flush:"post"},wn(()=>{var n,o;return[null!==(n=null===(o=t.value)||void 0===o?void 0:o.map(e=>bS(e)))&&void 0!==n?n:[gS].filter(e=>null!=e),pS(Mt(t.value?e[1]:e[0])),pS(Ot(t.value?e[2]:e[1])),Mt(t.value?e[3]:e[2])]},n,{...o,immediate:!0});var n,o}function wS(){const e=kt(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}function xS(e){const t=wS();return yr(()=>(t.value,Boolean(e())))}const CS=Symbol("vueuse-ssr-width");function _S(){const e=gn()?rS(CS,null):null;return"number"==typeof e?e:void 0}const SS="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},kS="__vueuse_ssr_handlers__",ES=TS();function TS(){return kS in SS||(SS[kS]=SS[kS]||{}),SS[kS]}function AS(e,t){return ES[e]||t}function OS(e){return function(e,t={}){const{window:n=gS,ssrWidth:o=_S()}=t,l=xS(()=>n&&"matchMedia"in n&&"function"==typeof n.matchMedia),r=kt("number"==typeof o),a=kt(),s=kt(!1);return yn(()=>{if(r.value)return r.value=!l.value,void(s.value=Mt(e).split(",").some(e=>{const t=e.includes("not all"),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),l=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let r=Boolean(n||l);return n&&r&&(r=o>=dS(n[1])),l&&r&&(r=o<=dS(l[1])),t?!r:r}));l.value&&(a.value=n.matchMedia(Mt(e)),s.value=a.value.matches)}),yS(a,"change",e=>{s.value=e.matches},{passive:!0}),yr(()=>s.value)}("(prefers-color-scheme: dark)",e)}const MS={boolean:{read:e=>"true"===e,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},RS="vueuse-storage";function LS(e,t,n,o={}){var l;const{flush:r="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:d=gS,eventFilter:p,onError:f=e=>{},initOnMounted:v}=o,h=(c?kt:St)("function"==typeof t?t():t),m=yr(()=>Mt(e));if(!n)try{n=AS("getDefaultStorage",()=>null==gS?void 0:gS.localStorage)()}catch(tT){f(tT)}if(!n)return h;const g=Mt(t),b=function(e){return null==e?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":"boolean"==typeof e?"boolean":"string"==typeof e?"string":"object"==typeof e?"object":Number.isNaN(e)?"any":"number"}(g),y=null!==(l=o.serializer)&&void 0!==l?l:MS[b],{pause:w,resume:x}=vS(h,e=>function(e){try{const t=n.getItem(m.value);if(null==e)_(t,null),n.removeItem(m.value);else{const o=y.write(e);t!==o&&(n.setItem(m.value,o),_(t,o))}}catch(tT){f(tT)}}(e),{flush:r,deep:a,eventFilter:p});wn(m,()=>S(),{flush:r});let C=!1;function _(e,t){if(d){const o={key:m.value,oldValue:e,newValue:t,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",o):new CustomEvent(RS,{detail:o}))}}function S(e){if(!e||e.storageArea===n)if(e&&null==e.key)h.value=g;else if(!e||e.key===m.value){w();try{const t=y.write(h.value);void 0!==e&&(null==e?void 0:e.newValue)===t||(h.value=function(e){const t=e?e.newValue:n.getItem(m.value);if(null==t)return i&&null!=g&&n.setItem(m.value,y.write(g)),g;if(!e&&u){const e=y.read(t);return"function"==typeof u?u(e,g):"object"!==b||Array.isArray(e)?e:{...g,...e}}return"string"!=typeof t?t:y.read(t)}(e))}catch(tT){f(tT)}finally{e?tn(x):x()}}}return d&&s&&(n instanceof Storage?yS(d,"storage",e=>{v&&!C||S(e)},{passive:!0}):yS(d,RS,e=>{v&&!C||S(e.detail)})),v?hS(()=>{C=!0,S()}):S(),h}function PS(e={}){const{valueDark:t="dark",valueLight:n=""}=e,o=function(e={}){const{selector:t="html",attribute:n="class",initialValue:o="auto",window:l=gS,storage:r,storageKey:a="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:i,emitAuto:u,disableTransition:c=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},p=OS({window:l}),f=yr(()=>p.value?"dark":"light"),v=i||(null==a?uS(o):LS(a,o,r,{window:l,listenToStorageChanges:s})),h=yr(()=>"auto"===v.value?f.value:v.value),m=AS("updateHTMLAttrs",(e,t,n)=>{const o="string"==typeof e?null==l?void 0:l.document.querySelector(e):bS(e);if(!o)return;const r=new Set,a=new Set;let s,i=null;if("class"===t){const e=n.split(/\s/g);Object.values(d).flatMap(e=>(e||"").split(/\s/g)).filter(Boolean).forEach(t=>{e.includes(t)?r.add(t):a.add(t)})}else i={key:t,value:n};if(0!==r.size||0!==a.size||null!==i){c&&(s=l.document.createElement("style"),s.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),l.document.head.appendChild(s));for(const e of r)o.classList.add(e);for(const e of a)o.classList.remove(e);i&&o.setAttribute(i.key,i.value),c&&(l.getComputedStyle(s).opacity,document.head.removeChild(s))}});function g(e){var o;m(t,n,null!==(o=d[e])&&void 0!==o?o:e)}function b(t){e.onChanged?e.onChanged(t,g):g(t)}wn(h,b,{flush:"post",immediate:!0}),hS(()=>b(h.value));const y=yr({get:()=>u?v.value:h.value,set(e){v.value=e}});return Object.assign(y,{store:v,system:f,state:h})}({...e,onChanged:(t,n)=>{var o;e.onChanged?null===(o=e.onChanged)||void 0===o||o.call(e,"dark"===t,n,t):n(t)},modes:{dark:t,light:n}}),l=yr(()=>o.system.value);return yr({get:()=>"dark"===o.value,set(e){const t=e?"dark":"light";l.value===t?o.value="auto":o.value=t}})}const NS={xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},IS={render:function(e,t){return Fl(),Dl("svg",NS,[...t[0]||(t[0]=[Kl("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"},null,-1)])])}},BS={id:"app"},FS={class:"header"},$S={class:"header-top"},jS={class:"brand"},VS={class:"header-actions"},DS={class:"github-link",href:"https://github.com/fatedier/frp",target:"_blank","aria-label":"GitHub"},zS={class:"header-nav"},HS={id:"content"},WS=Xn({__name:"App",setup(e){const t=nS(),n=oS(),o=PS(),l=St(o),r=mS(o),a=yr(()=>n.path.startsWith("/proxies")?"/proxies":n.path),s=e=>{t.push(e)};return(e,n)=>{const o=zy,i=Ty,u=Ey,c=xo("router-view");return Fl(),Dl("div",BS,[Kl("header",FS,[Kl("div",$S,[Kl("div",jS,[Kl("a",{href:"#",onClick:n[0]||(n[0]=Ra(e=>Ot(t).push("/"),["prevent"]))},"frp")]),Kl("div",VS,[Kl("a",DS,[Gl(Ot(IS),{class:"github-icon"})]),Gl(o,{modelValue:l.value,"onUpdate:modelValue":n[1]||(n[1]=e=>l.value=e),"inline-prompt":"","active-icon":Ot(Ap),"inactive-icon":Ot(Bp),onChange:Ot(r),class:"theme-switch"},null,8,["modelValue","active-icon","inactive-icon","onChange"])])]),Kl("nav",zS,[Gl(u,{"default-active":a.value,mode:"horizontal",ellipsis:!1,onSelect:s,class:"nav-menu"},{default:pn(()=>[Gl(i,{index:"/"},{default:pn(()=>[...n[2]||(n[2]=[Xl("Overview",-1)])]),_:1}),Gl(i,{index:"/clients"},{default:pn(()=>[...n[3]||(n[3]=[Xl("Clients",-1)])]),_:1}),Gl(i,{index:"/proxies"},{default:pn(()=>[...n[4]||(n[4]=[Xl("Proxies",-1)])]),_:1})]),_:1},8,["default-active"])])]),Kl("main",HS,[Gl(c)])])}}});function qS(e){const t=Math.floor(((new Date).getTime()-e.getTime())/1e3);let n=t/31536e3;return n>1?Math.floor(n)+" years ago":(n=t/2592e3,n>1?Math.floor(n)+" months ago":(n=t/86400,n>1?Math.floor(n)+" days ago":(n=t/3600,n>1?Math.floor(n)+" hours ago":(n=t/60,n>1?Math.floor(n)+" minutes ago":Math.floor(t)+" seconds ago"))))}function US(e){if(!Number.isFinite(e)||e<0)return"0 B";if(0===e)return"0 B";const t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],n=Math.floor(Math.log(e)/Math.log(1024)),o=t[n]||t[t.length-1],l=e/Math.pow(1024,n);return parseFloat(l.toFixed(2))+" "+o}const KS={class:"stat-card-content"},GS={class:"stat-info"},YS={class:"stat-value"},XS={class:"stat-label"},ZS={key:0,class:"stat-subtitle"},JS=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n},QS=JS(Xn({__name:"StatCard",props:{label:{},value:{},type:{default:"clients"},subtitle:{},to:{}},setup(e){const t=e,n=nS(),o=yr(()=>{switch(t.type){case"clients":default:return jp;case"proxies":return yp;case"connections":return wp;case"traffic":return Rp}}),l=()=>{t.to&&n.push(t.to)};return(t,n)=>{const r=ip,a=$m;return Fl(),zl(a,{class:q(["stat-card",{clickable:!!e.to}]),"body-style":{padding:"20px"},shadow:"hover",onClick:l},{default:pn(()=>[Kl("div",KS,[Kl("div",{class:q(["stat-icon",`icon-${e.type}`])},[(Fl(),zl(_o(o.value),{class:"icon"}))],2),Kl("div",GS,[Kl("div",YS,Z(e.value),1),Kl("div",XS,Z(e.label),1)]),e.to?(Fl(),zl(r,{key:0,class:"arrow-icon"},{default:pn(()=>[Gl(Ot(dp))]),_:1})):Zl("",!0)]),e.subtitle?(Fl(),Dl("div",ZS,Z(e.subtitle),1)):Zl("",!0)]),_:1},8,["class"])}}}),[["__scopeId","data-v-c9ca9441"]]);class ek extends Error{status;statusText;constructor(e,t,n){super(n||t),this.status=e,this.statusText=t}}async function tk(e,t={}){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new ek(n.status,n.statusText,`HTTP ${n.status}`);return 204===n.status?{}:n.json()}const nk=(e,t)=>tk(e,{...t,method:"GET"}),ok=(e,t)=>tk(e,{...t,method:"DELETE"}),lk=()=>nk("../api/serverinfo"),rk={class:"server-overview"},ak={class:"card-header"},sk={class:"traffic-summary"},ik={class:"traffic-item in"},uk={class:"traffic-icon"},ck={class:"traffic-info"},dk={class:"value"},pk={class:"traffic-item out"},fk={class:"traffic-icon"},vk={class:"traffic-info"},hk={class:"value"},mk={class:"card-header"},gk={class:"proxy-types-grid"},bk={class:"proxy-type-name"},yk={class:"proxy-type-count"},wk={key:0,class:"no-data"},xk={class:"card-header"},Ck={class:"config-grid"},_k={class:"config-item"},Sk={class:"config-value"},kk={key:0,class:"config-item"},Ek={class:"config-value"},Tk={key:1,class:"config-item"},Ak={class:"config-value"},Ok={key:2,class:"config-item"},Mk={class:"config-value"},Rk={key:3,class:"config-item"},Lk={class:"config-value"},Pk={key:4,class:"config-item"},Nk={class:"config-value"},Ik={key:5,class:"config-item"},Bk={class:"config-value"},Fk={class:"config-item"},$k={class:"config-value"},jk={class:"config-item"},Vk={class:"config-value"},Dk={key:6,class:"config-item"},zk={class:"config-value"},Hk={key:7,class:"config-item"},Wk={class:"config-item"},qk={class:"config-value"},Uk=Xn({__name:"ServerOverview",setup(e){const t=St({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0,totalTrafficIn:0,totalTrafficOut:0,proxyTypeCounts:{}}),n=yr(()=>Object.values(t.value.proxyTypeCounts).some(e=>e>0));return co(()=>{(async()=>{try{const e=await lk();t.value.version=e.version,t.value.bindPort=e.bindPort,t.value.kcpBindPort=e.kcpBindPort,t.value.quicBindPort=e.quicBindPort,t.value.vhostHTTPPort=e.vhostHTTPPort,t.value.vhostHTTPSPort=e.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=e.tcpmuxHTTPConnectPort,t.value.subdomainHost=e.subdomainHost,t.value.maxPoolCount=e.maxPoolCount,t.value.maxPortsPerClient=String(e.maxPortsPerClient),"0"==t.value.maxPortsPerClient&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=e.allowPortsStr,t.value.tlsForce=e.tlsForce,t.value.heartbeatTimeout=e.heartbeatTimeout,t.value.clientCounts=e.clientCounts,t.value.curConns=e.curConns,t.value.totalTrafficIn=e.totalTrafficIn,t.value.totalTrafficOut=e.totalTrafficOut,t.value.proxyTypeCounts=e.proxyTypeCount||{},t.value.proxyCounts=0,null!=e.proxyTypeCount&&Object.values(e.proxyTypeCount).forEach(e=>{t.value.proxyCounts+=e||0})}catch(e){gC({showClose:!0,message:"Get server info from frps failed!",type:"error"})}})()}),(e,o)=>{const l=Og,r=My,a=_g,s=ip,i=$m;return Fl(),Dl("div",rk,[Gl(r,{gutter:20,class:"stats-row"},{default:pn(()=>[Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Clients",value:t.value.clientCounts,type:"clients",subtitle:"Connected clients",to:"/clients"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Proxies",value:t.value.proxyCounts,type:"proxies",subtitle:"Active proxies",to:"/proxies/tcp"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Connections",value:t.value.curConns,type:"connections",subtitle:"Current connections"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Traffic",value:US(t.value.totalTrafficIn+t.value.totalTrafficOut),type:"traffic",subtitle:"Total today"},null,8,["value"])]),_:1})]),_:1}),Gl(r,{gutter:20,class:"charts-row"},{default:pn(()=>[Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",ak,[o[1]||(o[1]=Kl("span",{class:"card-title"},"Network Traffic",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Today",-1)])]),_:1})])]),default:pn(()=>[Kl("div",sk,[Kl("div",ik,[Kl("div",uk,[Gl(s,null,{default:pn(()=>[Gl(Ot(Cp))]),_:1})]),Kl("div",ck,[o[2]||(o[2]=Kl("div",{class:"label"},"Inbound",-1)),Kl("div",dk,Z(Ot(US)(t.value.totalTrafficIn)),1)])]),o[4]||(o[4]=Kl("div",{class:"traffic-divider"},null,-1)),Kl("div",pk,[Kl("div",fk,[Gl(s,null,{default:pn(()=>[Gl(Ot($p))]),_:1})]),Kl("div",vk,[o[3]||(o[3]=Kl("div",{class:"label"},"Outbound",-1)),Kl("div",hk,Z(Ot(US)(t.value.totalTrafficOut)),1)])])])]),_:1})]),_:1}),Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",mk,[o[6]||(o[6]=Kl("span",{class:"card-title"},"Proxy Types",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[5]||(o[5]=[Xl("Now",-1)])]),_:1})])]),default:pn(()=>[Kl("div",gk,[(Fl(!0),Dl(Rl,null,Eo(t.value.proxyTypeCounts,(e,t)=>fn((Fl(),Dl("div",{key:t,class:"proxy-type-item"},[Kl("div",bk,Z(t.toUpperCase()),1),Kl("div",yk,Z(e),1)])),[[Xr,e>0]])),128)),n.value?Zl("",!0):(Fl(),Dl("div",wk," No active proxies "))])]),_:1})]),_:1})]),_:1}),Gl(i,{class:"config-card",shadow:"hover"},{header:pn(()=>[Kl("div",xk,[o[7]||(o[7]=Kl("span",{class:"card-title"},"Server Configuration",-1)),Gl(a,{size:"small",type:"success"},{default:pn(()=>[Xl("v"+Z(t.value.version),1)]),_:1})])]),default:pn(()=>[Kl("div",Ck,[Kl("div",_k,[o[8]||(o[8]=Kl("span",{class:"config-label"},"Bind Port",-1)),Kl("span",Sk,Z(t.value.bindPort),1)]),0!=t.value.kcpBindPort?(Fl(),Dl("div",kk,[o[9]||(o[9]=Kl("span",{class:"config-label"},"KCP Port",-1)),Kl("span",Ek,Z(t.value.kcpBindPort),1)])):Zl("",!0),0!=t.value.quicBindPort?(Fl(),Dl("div",Tk,[o[10]||(o[10]=Kl("span",{class:"config-label"},"QUIC Port",-1)),Kl("span",Ak,Z(t.value.quicBindPort),1)])):Zl("",!0),0!=t.value.vhostHTTPPort?(Fl(),Dl("div",Ok,[o[11]||(o[11]=Kl("span",{class:"config-label"},"HTTP Port",-1)),Kl("span",Mk,Z(t.value.vhostHTTPPort),1)])):Zl("",!0),0!=t.value.vhostHTTPSPort?(Fl(),Dl("div",Rk,[o[12]||(o[12]=Kl("span",{class:"config-label"},"HTTPS Port",-1)),Kl("span",Lk,Z(t.value.vhostHTTPSPort),1)])):Zl("",!0),0!=t.value.tcpmuxHTTPConnectPort?(Fl(),Dl("div",Pk,[o[13]||(o[13]=Kl("span",{class:"config-label"},"TCPMux Port",-1)),Kl("span",Nk,Z(t.value.tcpmuxHTTPConnectPort),1)])):Zl("",!0),""!=t.value.subdomainHost?(Fl(),Dl("div",Ik,[o[14]||(o[14]=Kl("span",{class:"config-label"},"Subdomain Host",-1)),Kl("span",Bk,Z(t.value.subdomainHost),1)])):Zl("",!0),Kl("div",Fk,[o[15]||(o[15]=Kl("span",{class:"config-label"},"Max Pool Count",-1)),Kl("span",$k,Z(t.value.maxPoolCount),1)]),Kl("div",jk,[o[16]||(o[16]=Kl("span",{class:"config-label"},"Max Ports/Client",-1)),Kl("span",Vk,Z(t.value.maxPortsPerClient),1)]),""!=t.value.allowPortsStr?(Fl(),Dl("div",Dk,[o[17]||(o[17]=Kl("span",{class:"config-label"},"Allow Ports",-1)),Kl("span",zk,Z(t.value.allowPortsStr),1)])):Zl("",!0),t.value.tlsForce?(Fl(),Dl("div",Hk,[o[19]||(o[19]=Kl("span",{class:"config-label"},"TLS Force",-1)),Gl(a,{size:"small",type:"warning"},{default:pn(()=>[...o[18]||(o[18]=[Xl("Enabled",-1)])]),_:1})])):Zl("",!0),Kl("div",Wk,[o[20]||(o[20]=Kl("span",{class:"config-label"},"Heartbeat Timeout",-1)),Kl("span",qk,Z(t.value.heartbeatTimeout)+"s",1)])])]),_:1})])}}}),Kk=JS(Uk,[["__scopeId","data-v-10087479"]]);class Gk{key;user;clientId;runId;hostname;metas;firstConnectedAt;lastConnectedAt;disconnectedAt;online;constructor(e){if(this.key=e.key,this.user=e.user,this.clientId=e.clientId,this.runId=e.runId,this.hostname=e.hostname,this.metas=new Map,e.metas)for(const[t,n]of Object.entries(e.metas))this.metas.set(t,n);this.firstConnectedAt=new Date(1e3*e.firstConnectedAt),this.lastConnectedAt=new Date(1e3*e.lastConnectedAt),e.disconnectedAt&&e.disconnectedAt>0&&(this.disconnectedAt=new Date(1e3*e.disconnectedAt)),this.online=e.online}get displayName(){return this.clientId?this.user?`${this.user}.${this.clientId}`:this.clientId:this.runId}get shortRunId(){return this.runId.substring(0,8)}get firstConnectedAgo(){return qS(this.firstConnectedAt)}get lastConnectedAgo(){return qS(this.lastConnectedAt)}get disconnectedAgo(){return this.disconnectedAt?qS(this.disconnectedAt):""}get statusColor(){return this.online?"success":"danger"}get metasArray(){const e=[];return this.metas.forEach((t,n)=>{e.push({key:n,value:t})}),e}matchesFilter(e){const t=e.toLowerCase();return this.key.toLowerCase().includes(t)||this.user.toLowerCase().includes(t)||this.clientId.toLowerCase().includes(t)||this.runId.toLowerCase().includes(t)||this.hostname.toLowerCase().includes(t)}}const Yk={class:"client-header"},Xk={class:"client-status"},Zk={class:"client-name"},Jk={class:"client-info"},Qk={class:"info-row"},eE={class:"info-value"},tE={key:0,class:"info-row"},nE={class:"info-value"},oE={class:"info-row"},lE={class:"info-value monospace"},rE={key:1,class:"info-row"},aE={class:"info-value"},sE={key:2,class:"info-row"},iE={class:"info-value"},uE={key:3,class:"info-row"},cE={class:"info-value"},dE={key:0,class:"client-metas"},pE={class:"metas-tags"},fE=JS(Xn({__name:"ClientCard",props:{client:{}},setup(e){const t=e,n=yr(()=>`status-${t.client.statusColor}`);return(t,o)=>{const l=_g,r=ip,a=$m;return Fl(),zl(a,{class:"client-card",shadow:"hover","body-style":{padding:"20px"}},{default:pn(()=>[Kl("div",Yk,[Kl("div",Xk,[Kl("span",{class:q(["status-dot",n.value])},null,2),Kl("span",Zk,Z(e.client.displayName),1)]),Gl(l,{type:e.client.statusColor,size:"small"},{default:pn(()=>[Xl(Z(e.client.online?"Online":"Offline"),1)]),_:1},8,["type"])]),Kl("div",Jk,[Kl("div",Qk,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(Tp))]),_:1}),o[0]||(o[0]=Kl("span",{class:"info-label"},"Hostname:",-1)),Kl("span",eE,Z(e.client.hostname||"N/A"),1)]),e.client.user?(Fl(),Dl("div",tE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(jp))]),_:1}),o[1]||(o[1]=Kl("span",{class:"info-label"},"User:",-1)),Kl("span",nE,Z(e.client.user),1)])):Zl("",!0),Kl("div",oE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(kp))]),_:1}),o[2]||(o[2]=Kl("span",{class:"info-label"},"Run ID:",-1)),Kl("span",lE,Z(e.client.runId),1)]),e.client.firstConnectedAt?(Fl(),Dl("div",rE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[3]||(o[3]=Kl("span",{class:"info-label"},"First Connected:",-1)),Kl("span",aE,Z(e.client.firstConnectedAgo),1)])):Zl("",!0),e.client.online?(Fl(),Dl("div",sE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[4]||(o[4]=Kl("span",{class:"info-label"},"Last Connected:",-1)),Kl("span",iE,Z(e.client.lastConnectedAgo),1)])):Zl("",!0),!e.client.online&&e.client.disconnectedAt?(Fl(),Dl("div",uE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(mp))]),_:1}),o[5]||(o[5]=Kl("span",{class:"info-label"},"Disconnected:",-1)),Kl("span",cE,Z(e.client.disconnectedAgo),1)])):Zl("",!0)]),e.client.metasArray.length>0?(Fl(),Dl("div",dE,[o[6]||(o[6]=Kl("div",{class:"metas-label"},"Metadata:",-1)),Kl("div",pE,[(Fl(!0),Dl(Rl,null,Eo(e.client.metasArray,e=>(Fl(),zl(l,{key:e.key,size:"small",type:"info",class:"meta-tag"},{default:pn(()=>[Xl(Z(e.key)+": "+Z(e.value),1)]),_:2},1024))),128))])])):Zl("",!0)]),_:1})}}}),[["__scopeId","data-v-f3abd62a"]]),vE={class:"clients-page"},hE={class:"filter-bar"},mE={class:"clients-grid"},gE=JS(Xn({__name:"Clients",setup(e){const t=St([]),n=St(!1),o=St(""),l=St("all");let r=null;const a=yr(()=>{const e=t.value.length,n=t.value.filter(e=>e.online).length;return{total:e,online:n,offline:e-n}}),s=yr(()=>{let e=t.value;return"online"===l.value?e=e.filter(e=>e.online):"offline"===l.value&&(e=e.filter(e=>!e.online)),o.value&&(e=e.filter(e=>e.matchesFilter(o.value))),e.sort((e,t)=>e.online!==t.online?e.online?-1:1:e.displayName.localeCompare(t.displayName)),e}),i=async()=>{n.value=!0;try{const e=await nk("../api/clients");t.value=e.map(e=>new Gk(e))}catch(e){gC({showClose:!0,message:"Failed to fetch clients: "+e.message,type:"error"})}finally{n.value=!1}};return co(()=>{i(),r=window.setInterval(()=>{i()},5e3)}),ho(()=>{null!==r&&(window.clearInterval(r),r=null)}),(e,t)=>{const r=Cf,i=yg,u=bg,c=Cb,d=nC;return Fl(),Dl("div",vE,[Kl("div",hE,[Gl(r,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=e=>o.value=e),placeholder:"Search by hostname, user, client ID, run ID...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(u,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=e=>l.value=e),class:"status-filter"},{default:pn(()=>[Gl(i,{label:"all"},{default:pn(()=>[Xl("All ("+Z(a.value.total)+")",1)]),_:1}),Gl(i,{label:"online"},{default:pn(()=>[Xl(" Online ("+Z(a.value.online)+") ",1)]),_:1}),Gl(i,{label:"offline"},{default:pn(()=>[Xl(" Offline ("+Z(a.value.offline)+") ",1)]),_:1})]),_:1},8,["modelValue"])]),fn((Fl(),Dl("div",mE,[0!==s.value.length||n.value?Zl("",!0):(Fl(),zl(c,{key:0,description:"No clients found"})),(Fl(!0),Dl(Rl,null,Eo(s.value,e=>(Fl(),zl(fE,{key:e.key,client:e},null,8,["client"]))),128))])),[[d,n.value]])])}}}),[["__scopeId","data-v-14cf389c"]]);class bE{name;type;annotations;encryption;compression;conns;trafficIn;trafficOut;lastStartTime;lastCloseTime;status;clientVersion;addr;port;customDomains;hostHeaderRewrite;locations;subdomain;constructor(e){if(this.name=e.name,this.type="",this.annotations=new Map,e.conf?.annotations)for(const t in e.conf.annotations)this.annotations.set(t,e.conf.annotations[t]);this.encryption=!1,this.compression=!1,this.encryption=e.conf?.transport?.useEncryption||this.encryption,this.compression=e.conf?.transport?.useCompression||this.compression,this.conns=e.curConns,this.trafficIn=e.todayTrafficIn,this.trafficOut=e.todayTrafficOut,this.lastStartTime=e.lastStartTime,this.lastCloseTime=e.lastCloseTime,this.status=e.status,this.clientVersion=e.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class yE extends bE{constructor(e){super(e),this.type="tcp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class wE extends bE{constructor(e){super(e),this.type="udp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class xE extends bE{constructor(e,t,n){super(e),this.type="http",this.port=t,e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.hostHeaderRewrite=e.conf.hostHeaderRewrite,this.locations=e.conf.locations,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class CE extends bE{constructor(e,t,n){super(e),this.type="https",this.port=t,null!=e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class _E extends bE{multiplexer;routeByHTTPUser;constructor(e,t,n){super(e),this.type="tcpmux",this.port=t,this.multiplexer="",this.routeByHTTPUser="",e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.multiplexer=e.conf.multiplexer,this.routeByHTTPUser=e.conf.routeByHTTPUser,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class SE extends bE{constructor(e){super(e),this.type="stcp"}}class kE extends bE{constructor(e){super(e),this.type="sudp"}}const EE={key:0},TE={key:1},AE={key:2},OE={key:0},ME={class:"annotation-key"},RE=Xn({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,n=()=>{const e=[];return t.row.annotations&&t.row.annotations.forEach((t,n)=>{e.push({key:n,value:t})}),e};return(t,o)=>{const l=ay,r=ry,a=Gg,s=Ux;return Fl(),Dl(Rl,null,[Gl(r,{"label-position":"left","label-width":"auto",inline:"",class:"proxy-table-expand"},{default:pn(()=>[Gl(l,{label:"Name"},{default:pn(()=>[Kl("span",null,Z(e.row.name),1)]),_:1}),Gl(l,{label:"Type"},{default:pn(()=>[Kl("span",null,Z(e.row.type),1)]),_:1}),Gl(l,{label:"Encryption"},{default:pn(()=>[Kl("span",null,Z(e.row.encryption),1)]),_:1}),Gl(l,{label:"Compression"},{default:pn(()=>[Kl("span",null,Z(e.row.compression),1)]),_:1}),Gl(l,{label:"Last Start"},{default:pn(()=>[Kl("span",null,Z(e.row.lastStartTime),1)]),_:1}),Gl(l,{label:"Last Close"},{default:pn(()=>[Kl("span",null,Z(e.row.lastCloseTime),1)]),_:1}),"http"===e.proxyType||"https"===e.proxyType?(Fl(),Dl("div",EE,[Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1}),Gl(l,{label:"locations"},{default:pn(()=>[Kl("span",null,Z(e.row.locations),1)]),_:1}),Gl(l,{label:"HostRewrite"},{default:pn(()=>[Kl("span",null,Z(e.row.hostHeaderRewrite),1)]),_:1})])):"tcpmux"===e.proxyType?(Fl(),Dl("div",TE,[Gl(l,{label:"Multiplexer"},{default:pn(()=>[Kl("span",null,Z(e.row.multiplexer),1)]),_:1}),Gl(l,{label:"RouteByHTTPUser"},{default:pn(()=>[Kl("span",null,Z(e.row.routeByHTTPUser),1)]),_:1}),Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1})])):(Fl(),Dl("div",AE,[Gl(l,{label:"Addr"},{default:pn(()=>[Kl("span",null,Z(e.row.addr),1)]),_:1})]))]),_:1}),e.row.annotations&&e.row.annotations.size>0?(Fl(),Dl("div",OE,[Gl(a),Gl(s,{class:"title-text",size:"large"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Annotations",-1)])]),_:1}),Kl("ul",null,[(Fl(!0),Dl(Rl,null,Eo(n(),e=>(Fl(),Dl("li",{key:e.key},[Kl("span",ME,Z(e.key),1),Kl("span",null,Z(e.value),1)]))),128))])])):Zl("",!0)],64)}}}),LE={class:"traffic-chart-container"},PE={key:0,class:"chart-wrapper"},NE={class:"y-axis"},IE={class:"y-label"},BE={class:"y-label"},FE={class:"bars-area"},$E={class:"bars-group"},jE={class:"date-label"},VE={key:1,class:"legend"},DE=Xn({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e,n=St(!1),o=St([]),l=St(0),r=()=>{n.value=!0,(e=>nk(`../api/traffic/${e}`))(t.proxyName).then(e=>{((e,t)=>{const n=[...e||[]].reverse(),r=[...t||[]].reverse();for(;n.length<7;)n.unshift(0);for(;r.length<7;)r.unshift(0);const a=n.slice(-7),s=r.slice(-7),i=[];let u=new Date;u.setDate(u.getDate()-6);for(let o=0;o<7;o++)i.push(`${u.getMonth()+1}-${u.getDate()}`),u.setDate(u.getDate()+1);const c=Math.max(...a),d=Math.max(...s);l.value=Math.max(c,d,100),o.value=i.map((e,t)=>({date:e,in:a[t],out:s[t],inPercent:a[t]/l.value*100,outPercent:s[t]/l.value*100}))})(e.trafficIn,e.trafficOut)}).catch(e=>{gC({showClose:!0,message:"Get traffic info failed! "+e,type:"warning"})}).finally(()=>{n.value=!1})};return co(()=>{r()}),(e,t)=>{const r=im,a=Cb,s=nC;return fn((Fl(),Dl("div",LE,[!n.value&&o.value.length>0?(Fl(),Dl("div",PE,[Kl("div",NE,[Kl("div",IE,Z(Ot(US)(l.value)),1),Kl("div",BE,Z(Ot(US)(l.value/2)),1),t[0]||(t[0]=Kl("div",{class:"y-label"},"0",-1))]),Kl("div",FE,[t[1]||(t[1]=Kl("div",{class:"grid-line top"},null,-1)),t[2]||(t[2]=Kl("div",{class:"grid-line middle"},null,-1)),t[3]||(t[3]=Kl("div",{class:"grid-line bottom"},null,-1)),(Fl(!0),Dl(Rl,null,Eo(o.value,(e,t)=>(Fl(),Dl("div",{key:t,class:"day-column"},[Kl("div",$E,[Gl(r,{content:`In: ${Ot(US)(e.in)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-in",style:V({height:Math.max(e.inPercent,1)+"%"})},null,4)]),_:2},1032,["content"]),Gl(r,{content:`Out: ${Ot(US)(e.out)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-out",style:V({height:Math.max(e.outPercent,1)+"%"})},null,4)]),_:2},1032,["content"])]),Kl("div",jE,Z(e.date),1)]))),128))])])):Zl("",!0),!n.value&&o.value.length>0?(Fl(),Dl("div",VE,[...t[4]||(t[4]=[Kl("div",{class:"legend-item"},[Kl("span",{class:"dot in"}),Xl(" Traffic In ")],-1),Kl("div",{class:"legend-item"},[Kl("span",{class:"dot out"}),Xl(" Traffic Out ")],-1)])])):n.value?Zl("",!0):(Fl(),zl(a,{key:2,description:"No traffic data"}))])),[[s,n.value]])}}}),zE=JS(DE,[["__scopeId","data-v-3f425b60"]]),HE={class:"proxies-page"},WE={class:"toolbar-header"},qE={class:"toolbar-actions"},UE={class:"expand-wrapper"},KE={class:"traffic-cell"},GE={class:"traffic-item up",title:"Traffic Out"},YE={class:"traffic-item down",title:"Traffic In"},XE=Xn({__name:"Proxies",setup(e){const t=oS(),n=nS(),o=[{label:"TCP",value:"tcp"},{label:"UDP",value:"udp"},{label:"HTTP",value:"http"},{label:"HTTPS",value:"https"},{label:"TCPMUX",value:"tcpmux"},{label:"STCP",value:"stcp"},{label:"SUDP",value:"sudp"}],l=St(t.params.type||"tcp"),r=St([]),a=St(!1),s=St(""),i=St(!1),u=St(""),c=yr(()=>{if(!s.value)return r.value;const e=s.value.toLowerCase();return r.value.filter(t=>t.name.toLowerCase().includes(e))});let d=null;const p=async()=>{if(d)return d;const e=await lk();return d=e,d},f=async()=>{a.value=!0,r.value=[];try{const e=l.value,t=await(e=>nk(`../api/proxy/${e}`))(e);if("tcp"===e)r.value=t.proxies.map(e=>new yE(e));else if("udp"===e)r.value=t.proxies.map(e=>new wE(e));else if("http"===e){const e=await p();e&&e.vhostHTTPPort&&(r.value=t.proxies.map(t=>new xE(t,e.vhostHTTPPort,e.subdomainHost)))}else if("https"===e){const e=await p();e&&e.vhostHTTPSPort&&(r.value=t.proxies.map(t=>new CE(t,e.vhostHTTPSPort,e.subdomainHost)))}else if("tcpmux"===e){const e=await p();e&&e.tcpmuxHTTPConnectPort&&(r.value=t.proxies.map(t=>new _E(t,e.tcpmuxHTTPConnectPort,e.subdomainHost)))}else"stcp"===e?r.value=t.proxies.map(e=>new SE(e)):"sudp"===e&&(r.value=t.proxies.map(e=>new kE(e)))}catch(e){gC({showClose:!0,message:"Failed to fetch proxies: "+e.message,type:"error"})}finally{a.value=!1}},v=async()=>{try{await ok("../api/proxies?status=offline"),gC({message:"Successfully cleared offline proxies",type:"success"}),f()}catch(e){gC({message:"Failed to clear offline proxies: "+e.message,type:"warning"})}};return wn(l,e=>{n.replace({params:{type:e}}),f()}),f(),(e,t)=>{const n=qx,r=Wx,d=Cf,p=Fm,h=im,m=Oy,g=Ax,b=ip,y=_g,w=Tx,x=$m,C=Kg,_=nC;return Fl(),Dl("div",HE,[Gl(x,{class:"main-card",shadow:"never"},{default:pn(()=>[Kl("div",WE,[Gl(r,{modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),class:"proxy-tabs"},{default:pn(()=>[(Fl(),Dl(Rl,null,Eo(o,e=>Gl(n,{key:e.value,label:e.label,name:e.value},null,8,["label","name"])),64))]),_:1},8,["modelValue"]),Kl("div",qE,[Gl(d,{modelValue:s.value,"onUpdate:modelValue":t[1]||(t[1]=e=>s.value=e),placeholder:"Search by name...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(h,{content:"Refresh",placement:"top"},{default:pn(()=>[Gl(p,{icon:Ot(Pp),circle:"",onClick:f},null,8,["icon"])]),_:1}),Gl(m,{title:"Are you sure to clear all data of offline proxies?",onConfirm:v},{reference:pn(()=>[Gl(p,{type:"danger",plain:"",icon:Ot(xp)},{default:pn(()=>[...t[3]||(t[3]=[Xl("Clear Offline",-1)])]),_:1},8,["icon"])]),_:1})])]),fn((Fl(),zl(w,{data:c.value,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:pn(()=>[Gl(g,{type:"expand"},{default:pn(e=>[Kl("div",UE,[Gl(RE,{row:e.row,proxyType:l.value},null,8,["row","proxyType"])])]),_:1}),Gl(g,{label:"Name",prop:"name",sortable:"","min-width":"150","show-overflow-tooltip":""}),Gl(g,{label:"Port",prop:"port",sortable:"",width:"100"}),Gl(g,{label:"Conns",prop:"conns",sortable:"",width:"100",align:"center"}),Gl(g,{label:"Traffic",width:"220"},{default:pn(e=>[Kl("div",KE,[Kl("span",GE,[Gl(b,null,{default:pn(()=>[Gl(Ot(Fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficOut)),1)]),Kl("span",YE,[Gl(b,null,{default:pn(()=>[Gl(Ot(fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficIn)),1)])])]),_:1}),Gl(g,{label:"Version",prop:"clientVersion",sortable:"",width:"140","show-overflow-tooltip":""}),Gl(g,{label:"Status",prop:"status",sortable:"",width:"120",align:"center"},{default:pn(e=>[Gl(y,{type:"online"===e.row.status?"success":"danger",effect:"light",round:""},{default:pn(()=>[Xl(Z(e.row.status),1)]),_:2},1032,["type"])]),_:1}),Gl(g,{label:"Action",width:"120",align:"center",fixed:"right"},{default:pn(e=>[Gl(p,{type:"primary",link:"",icon:Ot(wp),onClick:t=>(e=>{u.value=e,i.value=!0})(e.row.name)},{default:pn(()=>[...t[4]||(t[4]=[Xl(" Traffic ",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[_,a.value]])]),_:1}),Gl(C,{modelValue:i.value,"onUpdate:modelValue":t[2]||(t[2]=e=>i.value=e),"destroy-on-close":"",title:`Traffic Statistics - ${u.value}`,width:"700px","align-center":"",class:"traffic-dialog"},{default:pn(()=>[Gl(zE,{proxyName:u.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])])}}}),ZE=JS(XE,[["__scopeId","data-v-0da05f6a"]]),JE=function(e){const t=z_(e.routes,e),n=e.parseQuery||v_,o=e.stringifyQuery||h_,l=e.history,r=C_(),a=C_(),s=C_(),i=kt(QC);let u=QC;wC&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=_C.bind(null,e=>""+e),d=_C.bind(null,WC),p=_C.bind(null,qC);function f(e,r){if(r=CC({},r||i.value),"string"==typeof e){const o=KC(n,e,r.path),a=t.resolve({path:o.path},r),s=l.createHref(o.fullPath);return CC(o,a,{params:p(a.params),hash:qC(o.hash),redirectedFrom:void 0,href:s})}let a;if(null!=e.path)a=CC({},e,{path:KC(n,e.path,r.path).path});else{const t=CC({},e.params);for(const e in t)null==t[e]&&delete t[e];a=CC({},e,{params:d(t)}),r.params=d(r.params)}const s=t.resolve(a,r),u=e.hash||"";s.params=c(p(s.params));const f=function(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}(o,CC({},e,{hash:(v=u,DC(v).replace(FC,"{").replace(jC,"}").replace(IC,"^")),path:s.path}));var v;const h=l.createHref(f);return CC({fullPath:f,hash:u,query:o===h_?m_(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function v(e){return"string"==typeof e?KC(n,e,i.value.path):CC({},e)}function h(e,t){if(u!==e)return p_(c_.NAVIGATION_CANCELLED,{from:t,to:e})}function m(e){return b(e)}function g(e,t){const n=e.matched[e.matched.length-1];if(n&&n.redirect){const{redirect:o}=n;let l="function"==typeof o?o(e,t):o;return"string"==typeof l&&(l=l.includes("?")||l.includes("#")?l=v(l):{path:l},l.params={}),CC({query:e.query,hash:e.hash,params:null!=l.path?{}:e.params},l)}}function b(e,t){const n=u=f(e),l=i.value,r=e.state,a=e.force,s=!0===e.replace,c=g(n,l);if(c)return b(CC(v(c),{state:"object"==typeof c?CC({},r,c.state):r,force:a,replace:s}),t||n);const d=n;let p;return d.redirectedFrom=t,!a&&function(e,t,n){const o=t.matched.length-1,l=n.matched.length-1;return o>-1&&o===l&&YC(t.matched[o],n.matched[l])&&XC(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}(o,l,n)&&(p=p_(c_.NAVIGATION_DUPLICATED,{to:d,from:l}),R(l,l,!0,!1)),(p?Promise.resolve(p):x(d,l)).catch(e=>f_(e)?f_(e,c_.NAVIGATION_GUARD_REDIRECT)?e:M(e):O(e,d,l)).then(e=>{if(e){if(f_(e,c_.NAVIGATION_GUARD_REDIRECT))return b(CC({replace:s},v(e.to),{state:"object"==typeof e.to?CC({},r,e.to.state):r,force:a}),t||d)}else e=_(d,l,!0,s,r);return C(d,l,e),e})}function y(e,t){const n=h(e,t);return n?Promise.reject(n):Promise.resolve()}function w(e){const t=N.values().next().value;return t&&"function"==typeof t.runWithContext?t.runWithContext(e):e()}function x(e,t){let n;const[o,l,s]=function(e,t){const n=[],o=[],l=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;aYC(e,r))?o.push(r):n.push(r));const s=e.matched[a];s&&(t.matched.find(e=>YC(e,s))||l.push(s))}return[n,o,l]}(e,t);n=S_(o.reverse(),"beforeRouteLeave",e,t);for(const r of o)r.leaveGuards.forEach(o=>{n.push(__(o,e,t))});const i=y.bind(null,e,t);return n.push(i),B(n).then(()=>{n=[];for(const o of r.list())n.push(__(o,e,t));return n.push(i),B(n)}).then(()=>{n=S_(l,"beforeRouteUpdate",e,t);for(const o of l)o.updateGuards.forEach(o=>{n.push(__(o,e,t))});return n.push(i),B(n)}).then(()=>{n=[];for(const o of s)if(o.beforeEnter)if(kC(o.beforeEnter))for(const l of o.beforeEnter)n.push(__(l,e,t));else n.push(__(o.beforeEnter,e,t));return n.push(i),B(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=S_(s,"beforeRouteEnter",e,t,w),n.push(i),B(n))).then(()=>{n=[];for(const o of a.list())n.push(__(o,e,t));return n.push(i),B(n)}).catch(e=>f_(e,c_.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function C(e,t,n){s.list().forEach(o=>w(()=>o(e,t,n)))}function _(e,t,n,o,r){const a=h(e,t);if(a)return a;const s=t===QC,u=wC?history.state:{};n&&(o||s?l.replace(e.fullPath,CC({scroll:s&&u&&u.scroll},r)):l.push(e.fullPath,r)),i.value=e,R(e,t,n,s),M()}let S;function k(){S||(S=l.listen((e,t,n)=>{if(!I.listening)return;const o=f(e),r=g(o,I.currentRoute.value);if(r)return void b(CC(r,{replace:!0,force:!0}),o).catch(SC);u=o;const a=i.value;var s,c;wC&&(s=s_(a.fullPath,n.delta),c=r_(),i_.set(s,c)),x(o,a).catch(e=>f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_CANCELLED)?e:f_(e,c_.NAVIGATION_GUARD_REDIRECT)?(b(CC(v(e.to),{force:!0}),o).then(e=>{f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===e_.pop&&l.go(-1,!1)}).catch(SC),Promise.reject()):(n.delta&&l.go(-n.delta,!1),O(e,o,a))).then(e=>{(e=e||_(o,a,!1))&&(n.delta&&!f_(e,c_.NAVIGATION_CANCELLED)?l.go(-n.delta,!1):n.type===e_.pop&&f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&l.go(-1,!1)),C(o,a,e)}).catch(SC)}))}let E,T=C_(),A=C_();function O(e,t,n){M(e);const o=A.list();return o.length&&o.forEach(o=>o(e,t,n)),Promise.reject(e)}function M(e){return E||(E=!e,k(),T.list().forEach(([t,n])=>e?n(e):t()),T.reset()),e}function R(t,n,o,l){const{scrollBehavior:r}=e;if(!wC||!r)return Promise.resolve();const a=!o&&function(e){const t=i_.get(e);return i_.delete(e),t}(s_(t.fullPath,0))||(l||!o)&&history.state&&history.state.scroll||null;return tn().then(()=>r(t,n,a)).then(e=>e&&a_(e)).catch(e=>O(e,t,n))}const L=e=>l.go(e);let P;const N=new Set,I={currentRoute:i,listening:!0,addRoute:function(e,n){let o,l;return u_(e)?(o=t.getRecordMatcher(e),l=n):l=e,t.addRoute(l,o)},removeRoute:function(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)},clearRoutes:t.clearRoutes,hasRoute:function(e){return!!t.getRecordMatcher(e)},getRoutes:function(){return t.getRoutes().map(e=>e.record)},resolve:f,options:e,push:m,replace:function(e){return m(CC(v(e),{replace:!0}))},go:L,back:()=>L(-1),forward:()=>L(1),beforeEach:r.add,beforeResolve:a.add,afterEach:s.add,onError:A.add,isReady:function(){return E&&i.value!==QC?Promise.resolve():new Promise((e,t)=>{T.add([e,t])})},install(e){e.component("RouterLink",X_),e.component("RouterView",tS),e.config.globalProperties.$router=I,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(i)}),wC&&!P&&i.value===QC&&(P=!0,m(l.location).catch(e=>{}));const t={};for(const o in QC)Object.defineProperty(t,o,{get:()=>i.value[o],enumerable:!0});e.provide(y_,I),e.provide(w_,ft(t)),e.provide(x_,i);const n=e.unmount;N.add(e),e.unmount=function(){N.delete(e),N.size<1&&(u=QC,S&&S(),S=null,i.value=QC,P=!1,E=!1),n()}}};function B(e){return e.reduce((e,t)=>e.then(()=>w(t)),Promise.resolve())}return I}({history:((QE=location.host?QE||location.pathname+location.search:"").includes("#")||(QE+="#"),A_(QE)),routes:[{path:"/",name:"ServerOverview",component:Kk},{path:"/clients",name:"Clients",component:gE},{path:"/proxies/:type?",name:"Proxies",component:ZE}]});var QE;const eT=$a(WS);eT.use(JE),eT.mount("#app")}},function(){return t||(0,e[n(e)[0]])((t={exports:{}}).exports,t),t.exports});export default o(); +var e,t,n=Object.getOwnPropertyNames,o=(e={"index-r9B2t7lx.js"(e,t){function n(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const o={},l=[],r=()=>{},a=()=>!1,s=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),i=e=>e.startsWith("onUpdate:"),u=Object.assign,c=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,p=(e,t)=>d.call(e,t),f=Array.isArray,v=e=>"[object Map]"===_(e),h=e=>"[object Set]"===_(e),m=e=>"[object Date]"===_(e),g=e=>"function"==typeof e,b=e=>"string"==typeof e,y=e=>"symbol"==typeof e,w=e=>null!==e&&"object"==typeof e,x=e=>(w(e)||g(e))&&g(e.then)&&g(e.catch),C=Object.prototype.toString,_=e=>C.call(e),S=e=>"[object Object]"===_(e),k=e=>b(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,E=n(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),T=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},A=/-\w/g,O=T(e=>e.replace(A,e=>e.slice(1).toUpperCase())),M=/\B([A-Z])/g,R=T(e=>e.replace(M,"-$1").toLowerCase()),L=T(e=>e.charAt(0).toUpperCase()+e.slice(1)),P=T(e=>e?`on${L(e)}`:""),N=(e,t)=>!Object.is(e,t),I=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},F=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let $;const j=()=>$||($="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function V(e){if(f(e)){const t={};for(let n=0;n{if(e){const n=e.split(z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function q(e){let t="";if(b(e))t=e;else if(f(e))for(let n=0;nG(e,t))}const X=e=>!(!e||!0!==e.__v_isRef),Z=e=>b(e)?e:null==e?"":f(e)||w(e)&&(e.toString===C||!g(e.toString))?X(e)?Z(e.value):JSON.stringify(e,J,2):String(e),J=(e,t)=>X(t)?J(e,t.value):v(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],o)=>(e[Q(t,o)+" =>"]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Q(e))}:y(t)?Q(t):!w(t)||f(t)||S(t)?t:String(t),Q=(e,t="")=>{var n;return y(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};let ee,te;class ne{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ee,!e&&ee&&(this.index=(ee.scopes||(ee.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0===--this._on&&(ee=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(this._active=!1,t=0,n=this.effects.length;t0)return;if(ie){let e=ie;for(ie=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;se;){let n=se;for(se=void 0;n;){const o=n.next;if(n.next=void 0,n.flags&=-9,1&n.flags)try{n.trigger()}catch(t){e||(e=t)}n=o}}if(e)throw e}function fe(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ve(e){let t,n=e.depsTail,o=n;for(;o;){const e=o.prevDep;-1===o.version?(o===n&&(n=e),ge(o),be(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=e}e.deps=t,e.depsTail=n}function he(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(me(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function me(e){if(4&e.flags&&!(16&e.flags))return;if(e.flags&=-17,e.globalVersion===Se)return;if(e.globalVersion=Se,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!he(e)))return;e.flags|=2;const t=e.dep,n=te,o=ye;te=e,ye=!0;try{fe(e);const n=e.fn(e._value);(0===t.version||N(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(l){throw t.version++,l}finally{te=n,ye=o,ve(e),e.flags&=-3}}function ge(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ge(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function be(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ye=!0;const we=[];function xe(){we.push(ye),ye=!1}function Ce(){const e=we.pop();ye=void 0===e||e}function _e(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const e=te;te=void 0;try{t()}finally{te=e}}}let Se=0;class ke{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ee{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!te||!ye||te===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==te)t=this.activeLink=new ke(te,this),te.deps?(t.prevDep=te.depsTail,te.depsTail.nextDep=t,te.depsTail=t):te.deps=te.depsTail=t,Te(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){const e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=te.depsTail,t.nextDep=void 0,te.depsTail.nextDep=t,te.depsTail=t,te.deps===t&&(te.deps=e)}return t}trigger(e){this.version++,Se++,this.notify(e)}notify(e){de();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{pe()}}}function Te(e){if(e.dep.sc++,4&e.sub.flags){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Te(e)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ae=new WeakMap,Oe=Symbol(""),Me=Symbol(""),Re=Symbol("");function Le(e,t,n){if(ye&&te){let t=Ae.get(e);t||Ae.set(e,t=new Map);let o=t.get(n);o||(t.set(n,o=new Ee),o.map=t,o.key=n),o.track()}}function Pe(e,t,n,o,l,r){const a=Ae.get(e);if(!a)return void Se++;const s=e=>{e&&e.trigger()};if(de(),"clear"===t)a.forEach(s);else{const l=f(e),r=l&&k(n);if(l&&"length"===n){const e=Number(o);a.forEach((t,n)=>{("length"===n||n===Re||!y(n)&&n>=e)&&s(t)})}else switch((void 0!==n||a.has(void 0))&&s(a.get(n)),r&&s(a.get(Re)),t){case"add":l?r&&s(a.get("length")):(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"delete":l||(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"set":v(e)&&s(a.get(Oe))}}pe()}function Ne(e){const t=wt(e);return t===e?t:(Le(t,0,Re),bt(e)?t:t.map(xt))}function Ie(e){return Le(e=wt(e),0,Re),e}function Be(e,t){return gt(e)?mt(e)?Ct(xt(t)):Ct(t):xt(t)}const Fe={__proto__:null,[Symbol.iterator](){return $e(this,Symbol.iterator,e=>Be(this,e))},concat(...e){return Ne(this).concat(...e.map(e=>f(e)?Ne(e):e))},entries(){return $e(this,"entries",e=>(e[1]=Be(this,e[1]),e))},every(e,t){return Ve(this,"every",e,t,void 0,arguments)},filter(e,t){return Ve(this,"filter",e,t,e=>e.map(e=>Be(this,e)),arguments)},find(e,t){return Ve(this,"find",e,t,e=>Be(this,e),arguments)},findIndex(e,t){return Ve(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ve(this,"findLast",e,t,e=>Be(this,e),arguments)},findLastIndex(e,t){return Ve(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ve(this,"forEach",e,t,void 0,arguments)},includes(...e){return ze(this,"includes",e)},indexOf(...e){return ze(this,"indexOf",e)},join(e){return Ne(this).join(e)},lastIndexOf(...e){return ze(this,"lastIndexOf",e)},map(e,t){return Ve(this,"map",e,t,void 0,arguments)},pop(){return He(this,"pop")},push(...e){return He(this,"push",e)},reduce(e,...t){return De(this,"reduce",e,t)},reduceRight(e,...t){return De(this,"reduceRight",e,t)},shift(){return He(this,"shift")},some(e,t){return Ve(this,"some",e,t,void 0,arguments)},splice(...e){return He(this,"splice",e)},toReversed(){return Ne(this).toReversed()},toSorted(e){return Ne(this).toSorted(e)},toSpliced(...e){return Ne(this).toSpliced(...e)},unshift(...e){return He(this,"unshift",e)},values(){return $e(this,"values",e=>Be(this,e))}};function $e(e,t,n){const o=Ie(e),l=o[t]();return o===e||bt(e)||(l._next=l.next,l.next=()=>{const e=l._next();return e.done||(e.value=n(e.value)),e}),l}const je=Array.prototype;function Ve(e,t,n,o,l,r){const a=Ie(e),s=a!==e&&!bt(e),i=a[t];if(i!==je[t]){const t=i.apply(e,r);return s?xt(t):t}let u=n;a!==e&&(s?u=function(t,o){return n.call(this,Be(e,t),o,e)}:n.length>2&&(u=function(t,o){return n.call(this,t,o,e)}));const c=i.call(a,u,o);return s&&l?l(c):c}function De(e,t,n,o){const l=Ie(e);let r=n;return l!==e&&(bt(e)?n.length>3&&(r=function(t,o,l){return n.call(this,t,o,l,e)}):r=function(t,o,l){return n.call(this,t,Be(e,o),l,e)}),l[t](r,...o)}function ze(e,t,n){const o=wt(e);Le(o,0,Re);const l=o[t](...n);return-1!==l&&!1!==l||!yt(n[0])?l:(n[0]=wt(n[0]),o[t](...n))}function He(e,t,n=[]){xe(),de();const o=wt(e)[t].apply(e,n);return pe(),Ce(),o}const We=n("__proto__,__v_isRef,__isVue"),qe=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(y));function Ue(e){y(e)||(e=String(e));const t=wt(this);return Le(t,0,e),t.hasOwnProperty(e)}class Ke{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;const o=this._isReadonly,l=this._isShallow;if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return l;if("__v_raw"===t)return n===(o?l?ct:ut:l?it:st).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const r=f(e);if(!o){let e;if(r&&(e=Fe[t]))return e;if("hasOwnProperty"===t)return Ue}const a=Reflect.get(e,t,_t(e)?e:n);if(y(t)?qe.has(t):We(t))return a;if(o||Le(e,0,t),l)return a;if(_t(a)){const e=r&&k(t)?a:a.value;return o&&w(e)?vt(e):e}return w(a)?o?vt(a):pt(a):a}}class Ge extends Ke{constructor(e=!1){super(!1,e)}set(e,t,n,o){let l=e[t];const r=f(e)&&k(t);if(!this._isShallow){const e=gt(l);if(bt(n)||gt(n)||(l=wt(l),n=wt(n)),!r&&_t(l)&&!_t(n))return e||(l.value=n),!0}const a=r?Number(t)e,et=e=>Reflect.getPrototypeOf(e);function tt(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function nt(e,t){const n={get(n){const o=this.__v_raw,l=wt(o),r=wt(n);e||(N(n,r)&&Le(l,0,n),Le(l,0,r));const{has:a}=et(l),s=t?Qe:e?Ct:xt;return a.call(l,n)?s(o.get(n)):a.call(l,r)?s(o.get(r)):void(o!==l&&o.get(n))},get size(){const t=this.__v_raw;return!e&&Le(wt(t),0,Oe),t.size},has(t){const n=this.__v_raw,o=wt(n),l=wt(t);return e||(N(t,l)&&Le(o,0,t),Le(o,0,l)),t===l?n.has(t):n.has(t)||n.has(l)},forEach(n,o){const l=this,r=l.__v_raw,a=wt(r),s=t?Qe:e?Ct:xt;return!e&&Le(a,0,Oe),r.forEach((e,t)=>n.call(o,s(e),s(t),l))}};return u(n,e?{add:tt("add"),set:tt("set"),delete:tt("delete"),clear:tt("clear")}:{add(e){t||bt(e)||gt(e)||(e=wt(e));const n=wt(this);return et(n).has.call(n,e)||(n.add(e),Pe(n,"add",e,e)),this},set(e,n){t||bt(n)||gt(n)||(n=wt(n));const o=wt(this),{has:l,get:r}=et(o);let a=l.call(o,e);a||(e=wt(e),a=l.call(o,e));const s=r.call(o,e);return o.set(e,n),a?N(n,s)&&Pe(o,"set",e,n):Pe(o,"add",e,n),this},delete(e){const t=wt(this),{has:n,get:o}=et(t);let l=n.call(t,e);l||(e=wt(e),l=n.call(t,e)),o&&o.call(t,e);const r=t.delete(e);return l&&Pe(t,"delete",e,void 0),r},clear(){const e=wt(this),t=0!==e.size,n=e.clear();return t&&Pe(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=function(e,t,n){return function(...o){const l=this.__v_raw,r=wt(l),a=v(r),s="entries"===e||e===Symbol.iterator&&a,i="keys"===e&&a,u=l[e](...o),c=n?Qe:t?Ct:xt;return!t&&Le(r,0,i?Me:Oe),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}(o,e,t)}),n}function ot(e,t){const n=nt(e,t);return(t,o,l)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(p(n,o)&&o in t?n:t,o,l)}const lt={get:ot(!1,!1)},rt={get:ot(!1,!0)},at={get:ot(!0,!1)},st=new WeakMap,it=new WeakMap,ut=new WeakMap,ct=new WeakMap;function dt(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>_(e).slice(8,-1))(e))}function pt(e){return gt(e)?e:ht(e,!1,Xe,lt,st)}function ft(e){return ht(e,!1,Je,rt,it)}function vt(e){return ht(e,!0,Ze,at,ut)}function ht(e,t,n,o,l){if(!w(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const r=dt(e);if(0===r)return e;const a=l.get(e);if(a)return a;const s=new Proxy(e,2===r?o:n);return l.set(e,s),s}function mt(e){return gt(e)?mt(e.__v_raw):!(!e||!e.__v_isReactive)}function gt(e){return!(!e||!e.__v_isReadonly)}function bt(e){return!(!e||!e.__v_isShallow)}function yt(e){return!!e&&!!e.__v_raw}function wt(e){const t=e&&e.__v_raw;return t?wt(t):e}const xt=e=>w(e)?pt(e):e,Ct=e=>w(e)?vt(e):e;function _t(e){return!!e&&!0===e.__v_isRef}function St(e){return Et(e,!1)}function kt(e){return Et(e,!0)}function Et(e,t){return _t(e)?e:new Tt(e,t)}class Tt{constructor(e,t){this.dep=new Ee,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:wt(e),this._value=t?e:xt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,n=this.__v_isShallow||bt(e)||gt(e);e=n?e:wt(e),N(e,t)&&(this._rawValue=e,this._value=n?e:xt(e),this.dep.trigger())}}function At(e){e.dep&&e.dep.trigger()}function Ot(e){return _t(e)?e.value:e}function Mt(e){return g(e)?e():Ot(e)}const Rt={get:(e,t,n)=>"__v_raw"===t?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return _t(l)&&!_t(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function Lt(e){return mt(e)?e:new Proxy(e,Rt)}class Pt{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new Ee,{get:n,set:o}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Nt(e){const t=f(e)?new Array(e.length):{};for(const n in e)t[n]=$t(e,n);return t}class It{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=wt(e);let o=!0,l=e;if(!f(e)||!k(String(t)))do{o=!yt(l)||bt(l)}while(o&&(l=l.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=Ot(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&_t(this._raw[this._key])){const t=this._object[this._key];if(_t(t))return void(t.value=e)}this._object[this._key]=e}get dep(){return function(e,t){const n=Ae.get(e);return n&&n.get(t)}(this._raw,this._key)}}class Bt{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ft(e,t,n){return _t(e)?e:g(e)?new Bt(e):w(e)&&arguments.length>1?$t(e,t,n):St(e)}function $t(e,t,n){return new It(e,t,n)}class jt{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ee(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Se-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&te!==this)return ce(this,!0),!0}get value(){const e=this.dep.track();return me(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}const Vt={},Dt=new WeakMap;let zt;function Ht(e,t,n=o){const{immediate:l,deep:a,once:s,scheduler:i,augmentJob:u,call:d}=n,p=e=>a?e:bt(e)||!1===a||0===a?Wt(e,1):Wt(e);let v,h,m,b,y=!1,w=!1;if(_t(e)?(h=()=>e.value,y=bt(e)):mt(e)?(h=()=>p(e),y=!0):f(e)?(w=!0,y=e.some(e=>mt(e)||bt(e)),h=()=>e.map(e=>_t(e)?e.value:mt(e)?p(e):g(e)?d?d(e,2):e():void 0)):h=g(e)?t?d?()=>d(e,2):e:()=>{if(m){xe();try{m()}finally{Ce()}}const t=zt;zt=v;try{return d?d(e,3,[b]):e(b)}finally{zt=t}}:r,t&&a){const e=h,t=!0===a?1/0:a;h=()=>Wt(e(),t)}const x=oe(),C=()=>{v.stop(),x&&x.active&&c(x.effects,v)};if(s&&t){const e=t;t=(...t)=>{e(...t),C()}}let _=w?new Array(e.length).fill(Vt):Vt;const S=e=>{if(1&v.flags&&(v.dirty||e))if(t){const e=v.run();if(a||y||(w?e.some((e,t)=>N(e,_[t])):N(e,_))){m&&m();const n=zt;zt=v;try{const n=[e,_===Vt?void 0:w&&_[0]===Vt?[]:_,b];_=e,d?d(t,3,n):t(...n)}finally{zt=n}}}else v.run()};return u&&u(S),v=new ae(h),v.scheduler=i?()=>i(S,!1):S,b=e=>function(e,t=!1,n=zt){if(n){let t=Dt.get(n);t||Dt.set(n,t=[]),t.push(e)}}(e,!1,v),m=v.onStop=()=>{const e=Dt.get(v);if(e){if(d)d(e,4);else for(const t of e)t();Dt.delete(v)}},t?l?S(!0):_=v.run():i?i(S.bind(null,!0),!0):v.run(),C.pause=v.pause.bind(v),C.resume=v.resume.bind(v),C.stop=C,C}function Wt(e,t=1/0,n){if(t<=0||!w(e)||e.__v_skip)return e;if(((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,_t(e))Wt(e.value,t,n);else if(f(e))for(let o=0;o{Wt(e,t,n)});else if(S(e)){for(const o in e)Wt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Wt(e[o],t,n)}return e}function qt(e,t,n,o){try{return o?e(...o):e()}catch(l){Kt(l,t,n)}}function Ut(e,t,n,o){if(g(e)){const l=qt(e,t,n,o);return l&&x(l)&&l.catch(e=>{Kt(e,t,n)}),l}if(f(e)){const l=[];for(let r=0;r=an(n)?Gt.push(e):Gt.splice(function(e){let t=Yt+1,n=Gt.length;for(;t>>1,l=Gt[o],r=an(l);ran(e)-an(t));if(Xt.length=0,Zt)return void Zt.push(...e);for(Zt=e,Jt=0;Jtnull==e.id?2&e.flags?-1:1/0:e.id;function sn(e){try{for(Yt=0;Yt{o._d&&jl(-1);const l=dn(t);let r;try{r=e(...n)}finally{dn(l),o._d&&jl(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function fn(e,t){if(null===un)return e;const n=gr(un),l=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&g(t)?t.call(o&&o.proxy):t}}function gn(){return!(!ar()&&!Qo)}const bn=Symbol.for("v-scx");function yn(e,t){return xn(e,null,t)}function wn(e,t,n){return xn(e,t,n)}function xn(e,t,n=o){const{immediate:l,deep:a,flush:s,once:i}=n,c=u({},n),d=t&&l||!t&&"post"!==s;let p;if(pr)if("sync"===s){const e=mn(bn);p=e.__watcherHandles||(e.__watcherHandles=[])}else if(!d){const e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}const f=rr;c.call=(e,t,n)=>Ut(e,f,t,n);let v=!1;"post"===s?c.scheduler=e=>{Cl(e,f&&f.suspense)}:"sync"!==s&&(v=!0,c.scheduler=(e,t)=>{t?e():nn(e)}),c.augmentJob=e=>{t&&(e.flags|=4),v&&(e.flags|=2,f&&(e.id=f.uid,e.i=f))};const h=Ht(e,t,c);return pr&&(p?p.push(h):d&&h()),h}function Cn(e,t,n){const o=this.proxy,l=b(e)?e.includes(".")?_n(o,e):()=>o[e]:e.bind(o,o);let r;g(t)?r=t:(r=t.handler,n=t);const a=ur(this),s=xn(l,r.bind(o),n);return a(),s}function _n(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;ee.__isTeleport,En=e=>e&&(e.disabled||""===e.disabled),Tn=e=>e&&(e.defer||""===e.defer),An=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,On=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,Mn=(e,t)=>{const n=e&&e.to;return b(n)?t?t(n):null:n},Rn={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,r,a,s,i,u){const{mc:c,pc:d,pbc:p,o:{insert:f,querySelector:v,createText:h,createComment:m}}=u,g=En(t.props);let{shapeFlag:b,children:y,dynamicChildren:w}=t;if(null==e){const e=t.el=h(""),u=t.anchor=h("");f(e,n,o),f(u,n,o);const d=(e,t)=>{16&b&&c(y,e,t,l,r,a,s,i)},p=()=>{const e=t.target=Mn(t.props,v),n=In(e,t,h,f);e&&("svg"!==a&&An(e)?a="svg":"mathml"!==a&&On(e)&&(a="mathml"),l&&l.isCE&&(l.ce._teleportTargets||(l.ce._teleportTargets=new Set)).add(e),g||(d(e,n),Nn(t,!1)))};g&&(d(n,u),Nn(t,!0)),Tn(t.props)?(t.el.__isMounted=!1,Cl(()=>{p(),delete t.el.__isMounted},r)):p()}else{if(Tn(t.props)&&!1===e.el.__isMounted)return void Cl(()=>{Rn.process(e,t,n,o,l,r,a,s,i,u)},r);t.el=e.el,t.targetStart=e.targetStart;const c=t.anchor=e.anchor,f=t.target=e.target,h=t.targetAnchor=e.targetAnchor,m=En(e.props),b=m?n:f,y=m?c:h;if("svg"===a||An(f)?a="svg":("mathml"===a||On(f))&&(a="mathml"),w?(p(e.dynamicChildren,w,b,l,r,a,s),El(e,t,!0)):i||d(e,t,b,y,l,r,a,s,!1),g)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ln(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=Mn(t.props,v);e&&Ln(t,e,null,u,0)}else m&&Ln(t,f,h,u,1);Nn(t,g)}},remove(e,t,n,{um:o,o:{remove:l}},r){const{shapeFlag:a,children:s,anchor:i,targetStart:u,targetAnchor:c,target:d,props:p}=e;if(d&&(l(u),l(c)),r&&l(i),16&a){const e=r||!En(p);for(let l=0;l{e.isMounted=!0}),vo(()=>{e.isUnmounting=!0}),e}const jn=[Function,Array],Vn={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jn,onEnter:jn,onAfterEnter:jn,onEnterCancelled:jn,onBeforeLeave:jn,onLeave:jn,onAfterLeave:jn,onLeaveCancelled:jn,onBeforeAppear:jn,onAppear:jn,onAfterAppear:jn,onAppearCancelled:jn},Dn=e=>{const t=e.subTree;return t.component?Dn(t.component):t};function zn(e){let t=e[0];if(e.length>1)for(const n of e)if(n.type!==Pl){t=n;break}return t}const Hn={name:"BaseTransition",props:Vn,setup(e,{slots:t}){const n=ar(),o=$n();return()=>{const l=t.default&&Yn(t.default(),!0);if(!l||!l.length)return;const r=zn(l),a=wt(e),{mode:s}=a;if(o.isLeaving)return Un(r);const i=Kn(r);if(!i)return Un(r);let u=qn(i,a,o,n,e=>u=e);i.type!==Pl&&Gn(i,u);let c=n.subTree&&Kn(n.subTree);if(c&&c.type!==Pl&&!Wl(c,i)&&Dn(n).type!==Pl){let e=qn(c,a,o,n);if(Gn(c,e),"out-in"===s&&i.type!==Pl)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},Un(r);"in-out"===s&&i.type!==Pl?e.delayLeave=(e,t,n)=>{Wn(o,c)[String(c.key)]=c,e[Bn]=()=>{t(),e[Bn]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return r}}};function Wn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function qn(e,t,n,o,l){const{appear:r,mode:a,persisted:s=!1,onBeforeEnter:i,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:p,onLeave:v,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:b,onAfterAppear:y,onAppearCancelled:w}=t,x=String(e.key),C=Wn(n,e),_=(e,t)=>{e&&Ut(e,o,9,t)},S=(e,t)=>{const n=t[1];_(e,t),f(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:a,persisted:s,beforeEnter(t){let o=i;if(!n.isMounted){if(!r)return;o=g||i}t[Bn]&&t[Bn](!0);const l=C[x];l&&Wl(e,l)&&l.el[Bn]&&l.el[Bn](),_(o,[t])},enter(e){let t=u,o=c,l=d;if(!n.isMounted){if(!r)return;t=b||u,o=y||c,l=w||d}let a=!1;const s=e[Fn]=t=>{a||(a=!0,_(t?l:o,[e]),k.delayedLeave&&k.delayedLeave(),e[Fn]=void 0)};t?S(t,[e,s]):s()},leave(t,o){const l=String(e.key);if(t[Fn]&&t[Fn](!0),n.isUnmounting)return o();_(p,[t]);let r=!1;const a=t[Bn]=n=>{r||(r=!0,o(),_(n?m:h,[t]),t[Bn]=void 0,C[l]===e&&delete C[l])};C[l]=e,v?S(v,[t,a]):a()},clone(e){const r=qn(e,t,n,o,l);return l&&l(r),r}};return k}function Un(e){if(no(e))return(e=Yl(e)).children=null,e}function Kn(e){if(!no(e))return kn(e.type)&&e.children?zn(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&g(n.default))return n.default()}}function Gn(e,t){6&e.shapeFlag&&e.component?(e.transition=t,Gn(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yn(e,t=!1,n){let o=[],l=0;for(let r=0;r1)for(let r=0;ru({name:e.name},t,{setup:e}))():e}function Zn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Jn=new WeakMap;function Qn(e,t,n,l,r=!1){if(f(e))return void e.forEach((e,o)=>Qn(e,t&&(f(t)?t[o]:t),n,l,r));if(to(l)&&!r)return void(512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&Qn(e,t,n,l.component.subTree));const s=4&l.shapeFlag?gr(l.component):l.el,i=r?null:s,{i:u,r:d}=e,v=t&&t.r,h=u.refs===o?u.refs={}:u.refs,m=u.setupState,y=wt(m),w=m===o?a:e=>p(y,e);if(null!=v&&v!==d)if(eo(t),b(v))h[v]=null,w(v)&&(m[v]=null);else if(_t(v)){v.value=null;const e=t;e.k&&(h[e.k]=null)}if(g(d))qt(d,u,12,[i,h]);else{const t=b(d),o=_t(d);if(t||o){const l=()=>{if(e.f){const n=t?w(d)?m[d]:h[d]:d.value;if(r)f(n)&&c(n,s);else if(f(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],w(d)&&(m[d]=h[d]);else{const t=[s];d.value=t,e.k&&(h[e.k]=t)}}else t?(h[d]=i,w(d)&&(m[d]=i)):o&&(d.value=i,e.k&&(h[e.k]=i))};if(i){const t=()=>{l(),Jn.delete(e)};t.id=-1,Jn.set(e,t),Cl(t,n)}else eo(e),l()}}}function eo(e){const t=Jn.get(e);t&&(t.flags|=8,Jn.delete(e))}j().requestIdleCallback,j().cancelIdleCallback;const to=e=>!!e.type.__asyncLoader,no=e=>e.type.__isKeepAlive;function oo(e,t){ro(e,"a",t)}function lo(e,t){ro(e,"da",t)}function ro(e,t,n=rr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(so(t,o,n),n){let e=n.parent;for(;e&&e.parent;)no(e.parent.vnode)&&ao(o,t,n,e),e=e.parent}}function ao(e,t,n,o){const l=so(t,e,o,!0);ho(()=>{c(o[t],l)},n)}function so(e,t,n=rr,o=!1){if(n){const l=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{xe();const l=ur(n),r=Ut(t,n,e,o);return l(),Ce(),r});return o?l.unshift(r):l.push(r),r}}const io=e=>(t,n=rr)=>{pr&&"sp"!==e||so(e,(...e)=>t(...e),n)},uo=io("bm"),co=io("m"),po=io("bu"),fo=io("u"),vo=io("bum"),ho=io("um"),mo=io("sp"),go=io("rtg"),bo=io("rtc");function yo(e,t=rr){so("ec",e,t)}const wo="components";function xo(e,t){return So(wo,e,!0,t)||e}const Co=Symbol.for("v-ndc");function _o(e){return b(e)?So(wo,e,!1)||e:e||Co}function So(e,t,n=!0,o=!1){const l=un||rr;if(l){const n=l.type;if(e===wo){const e=br(n,!1);if(e&&(e===t||e===O(t)||e===L(O(t))))return n}const r=ko(l[e]||n[e],t)||ko(l.appContext[e],t);return!r&&o?n:r}}function ko(e,t){return e&&(e[t]||e[O(t)]||e[L(O(t))])}function Eo(e,t,n,o){let l;const r=n,a=f(e);if(a||b(e)){let n=!1,o=!1;a&&mt(e)&&(n=!bt(e),o=gt(e),e=Ie(e)),l=new Array(e.length);for(let a=0,s=e.length;at(e,n,void 0,r));else{const n=Object.keys(e);l=new Array(n.length);for(let o=0,a=n.length;o{const t=o.fn(...e);return t&&(t.key=o.key),t}:o.fn)}return e}function Ao(e,t,n={},o,l){if(un.ce||un.parent&&to(un.parent)&&un.parent.ce){const e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),Fl(),zl(Rl,null,[Gl("slot",n,o&&o())],e?-2:64)}let r=e[t];r&&r._c&&(r._d=!1),Fl();const a=r&&Oo(r(n)),s=n.key||a&&a.key,i=zl(Rl,{key:(s&&!y(s)?s:`_${t}`)+(!a&&o?"_fb":"")},a||(o?o():[]),a&&1===e._?64:-2);return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),r&&r._c&&(r._d=!0),i}function Oo(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!Oo(e.children)))?e:null}const Mo=e=>e?dr(e)?gr(e):Mo(e.parent):null,Ro=u(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mo(e.parent),$root:e=>Mo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>zo(e),$forceUpdate:e=>e.f||(e.f=()=>{nn(e.update)}),$nextTick:e=>e.n||(e.n=tn.bind(e.proxy)),$watch:e=>Cn.bind(e)}),Lo=(e,t)=>e!==o&&!e.__isScriptSetup&&p(e,t),Po={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:l,data:r,props:a,accessCache:s,type:i,appContext:u}=e;if("$"!==t[0]){const e=s[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return r[t];case 4:return n[t];case 3:return a[t]}else{if(Lo(l,t))return s[t]=1,l[t];if(r!==o&&p(r,t))return s[t]=2,r[t];if(p(a,t))return s[t]=3,a[t];if(n!==o&&p(n,t))return s[t]=4,n[t];$o&&(s[t]=0)}}const c=Ro[t];let d,f;return c?("$attrs"===t&&Le(e.attrs,0,""),c(e)):(d=i.__cssModules)&&(d=d[t])?d:n!==o&&p(n,t)?(s[t]=4,n[t]):(f=u.config.globalProperties,p(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:l,setupState:r,ctx:a}=e;return Lo(r,t)?(r[t]=n,!0):l!==o&&p(l,t)?(l[t]=n,!0):!(p(e.props,t)||"$"===t[0]&&t.slice(1)in e||(a[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:a,type:s}},i){let u;return!!(n[i]||e!==o&&"$"!==i[0]&&p(e,i)||Lo(t,i)||p(a,i)||p(l,i)||p(Ro,i)||p(r.config.globalProperties,i)||(u=s.__cssModules)&&u[i])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:p(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function No(){return Bo().slots}function Io(){return Bo().attrs}function Bo(e){const t=ar();return t.setupContext||(t.setupContext=mr(t))}function Fo(e){return f(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let $o=!0;function jo(e){const t=zo(e),n=e.proxy,o=e.ctx;$o=!1,t.beforeCreate&&Vo(t.beforeCreate,e,"bc");const{data:l,computed:a,methods:s,watch:i,provide:u,inject:c,created:d,beforeMount:p,mounted:v,beforeUpdate:h,updated:m,activated:b,deactivated:y,beforeDestroy:x,beforeUnmount:C,destroyed:_,unmounted:S,render:k,renderTracked:E,renderTriggered:T,errorCaptured:A,serverPrefetch:O,expose:M,inheritAttrs:R,components:L,directives:P,filters:N}=t;if(c&&function(e,t){f(e)&&(e=Uo(e));for(const n in e){const o=e[n];let l;l=w(o)?"default"in o?mn(o.from||n,o.default,!0):mn(o.from||n):mn(o),_t(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(c,o),s)for(const r in s){const e=s[r];g(e)&&(o[r]=e.bind(n))}if(l){const t=l.call(n,n);w(t)&&(e.data=pt(t))}if($o=!0,a)for(const f in a){const e=a[f],t=g(e)?e.bind(n,n):g(e.get)?e.get.bind(n,n):r,l=!g(e)&&g(e.set)?e.set.bind(n):r,s=yr({get:t,set:l});Object.defineProperty(o,f,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(i)for(const r in i)Do(i[r],o,n,r);if(u){const e=g(u)?u.call(n):u;Reflect.ownKeys(e).forEach(t=>{hn(t,e[t])})}function I(e,t){f(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(d&&Vo(d,e,"c"),I(uo,p),I(co,v),I(po,h),I(fo,m),I(oo,b),I(lo,y),I(yo,A),I(bo,E),I(go,T),I(vo,C),I(ho,S),I(mo,O),f(M))if(M.length){const t=e.exposed||(e.exposed={});M.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===r&&(e.render=k),null!=R&&(e.inheritAttrs=R),L&&(e.components=L),P&&(e.directives=P),O&&Zn(e)}function Vo(e,t,n){Ut(f(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Do(e,t,n,o){let l=o.includes(".")?_n(n,o):()=>n[o];if(b(e)){const n=t[e];g(n)&&wn(l,n)}else if(g(e))wn(l,e.bind(n));else if(w(e))if(f(e))e.forEach(e=>Do(e,t,n,o));else{const o=g(e.handler)?e.handler.bind(n):t[e.handler];g(o)&&wn(l,o,e)}}function zo(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:l,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,s=r.get(t);let i;return s?i=s:l.length||n||o?(i={},l.length&&l.forEach(e=>Ho(i,e,a,!0)),Ho(i,t,a)):i=t,w(t)&&r.set(t,i),i}function Ho(e,t,n,o=!1){const{mixins:l,extends:r}=t;r&&Ho(e,r,n,!0),l&&l.forEach(t=>Ho(e,t,n,!0));for(const a in t)if(o&&"expose"===a);else{const o=Wo[a]||n&&n[a];e[a]=o?o(e[a],t[a]):t[a]}return e}const Wo={data:qo,props:Yo,emits:Yo,methods:Go,computed:Go,beforeCreate:Ko,created:Ko,beforeMount:Ko,mounted:Ko,beforeUpdate:Ko,updated:Ko,beforeDestroy:Ko,beforeUnmount:Ko,destroyed:Ko,unmounted:Ko,activated:Ko,deactivated:Ko,errorCaptured:Ko,serverPrefetch:Ko,components:Go,directives:Go,watch:function(e,t){if(!e)return t;if(!t)return e;const n=u(Object.create(null),e);for(const o in t)n[o]=Ko(e[o],t[o]);return n},provide:qo,inject:function(e,t){return Go(Uo(e),Uo(t))}};function qo(e,t){return t?e?function(){return u(g(e)?e.call(this,this):e,g(t)?t.call(this,this):t)}:t:e}function Uo(e){if(f(e)){const t={};for(let n=0;n(l.has(e)||(e&&g(e.install)?(l.add(e),e.install(s,...t)):g(e)&&(l.add(e),e(s,...t))),s),mixin:e=>(o.mixins.includes(e)||o.mixins.push(e),s),component:(e,t)=>t?(o.components[e]=t,s):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,s):o.directives[e],mount(l,r,i){if(!a){const r=s._ceVNode||Gl(t,n);return r.appContext=o,!0===i?i="svg":!1===i&&(i=void 0),e(r,l,i),a=!0,s._container=l,l.__vue_app__=s,gr(r.component)}},onUnmount(e){r.push(e)},unmount(){a&&(Ut(r,s._instance,16),e(null,s._container),delete s._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,s),runWithContext(e){const t=Qo;Qo=s;try{return e()}finally{Qo=t}}};return s}}let Qo=null;function el(e,t,...n){if(e.isUnmounted)return;const l=e.vnode.props||o;let r=n;const a=t.startsWith("update:"),s=a&&((e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${O(t)}Modifiers`]||e[`${R(t)}Modifiers`])(l,t.slice(7));let i;s&&(s.trim&&(r=n.map(e=>b(e)?e.trim():e)),s.number&&(r=n.map(F)));let u=l[i=P(t)]||l[i=P(O(t))];!u&&a&&(u=l[i=P(R(t))]),u&&Ut(u,e,6,r);const c=l[i+"Once"];if(c){if(e.emitted){if(e.emitted[i])return}else e.emitted={};e.emitted[i]=!0,Ut(c,e,6,r)}}const tl=new WeakMap;function nl(e,t,n=!1){const o=n?tl:t.emitsCache,l=o.get(e);if(void 0!==l)return l;const r=e.emits;let a={},s=!1;if(!g(e)){const o=e=>{const n=nl(e,t,!0);n&&(s=!0,u(a,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return r||s?(f(r)?r.forEach(e=>a[e]=null):u(a,r),w(e)&&o.set(e,a),a):(w(e)&&o.set(e,null),null)}function ol(e,t){return!(!e||!s(t))&&(t=t.slice(2).replace(/Once$/,""),p(e,t[0].toLowerCase()+t.slice(1))||p(e,R(t))||p(e,t))}function ll(e){const{type:t,vnode:n,proxy:o,withProxy:l,propsOptions:[r],slots:a,attrs:s,emit:u,render:c,renderCache:d,props:p,data:f,setupState:v,ctx:h,inheritAttrs:m}=e,g=dn(e);let b,y;try{if(4&n.shapeFlag){const e=l||o,t=e;b=Jl(c.call(t,e,d,p,v,f,h)),y=s}else{const e=t;b=Jl(e.length>1?e(p,{attrs:s,slots:a,emit:u}):e(p,null)),y=t.props?s:rl(s)}}catch(x){Il.length=0,Kt(x,e,1),b=Gl(Pl)}let w=b;if(y&&!1!==m){const e=Object.keys(y),{shapeFlag:t}=w;e.length&&7&t&&(r&&e.some(i)&&(y=al(y,r)),w=Yl(w,y,!1,!0))}return n.dirs&&(w=Yl(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&Gn(w,n.transition),b=w,dn(g),b}const rl=e=>{let t;for(const n in e)("class"===n||"style"===n||s(n))&&((t||(t={}))[n]=e[n]);return t},al=(e,t)=>{const n={};for(const o in e)i(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function sl(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let l=0;lObject.create(il),cl=e=>Object.getPrototypeOf(e)===il;function dl(e,t,n,l){const[r,a]=e.propsOptions;let s,i=!1;if(t)for(let o in t){if(E(o))continue;const u=t[o];let c;r&&p(r,c=O(o))?a&&a.includes(c)?(s||(s={}))[c]=u:n[c]=u:ol(e.emitsOptions,o)||o in l&&u===l[o]||(l[o]=u,i=!0)}if(a){const t=wt(n),l=s||o;for(let o=0;o{d=!0;const[n,o]=vl(e,t,!0);u(i,n),o&&c.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!d)return w(e)&&r.set(e,l),l;if(f(s))for(let l=0;l"_"===e||"_ctx"===e||"$stable"===e,gl=e=>f(e)?e.map(Jl):[Jl(e)],bl=(e,t,n)=>{if(t._n)return t;const o=pn((...e)=>gl(t(...e)),n);return o._c=!1,o},yl=(e,t,n)=>{const o=e._ctx;for(const l in e){if(ml(l))continue;const n=e[l];if(g(n))t[l]=bl(0,n,o);else if(null!=n){const e=gl(n);t[l]=()=>e}}},wl=(e,t)=>{const n=gl(t);e.slots.default=()=>n},xl=(e,t,n)=>{for(const o in t)!n&&ml(o)||(e[o]=t[o])},Cl=function(e,t){var n;t&&t.pendingBranch?f(e)?t.effects.push(...e):t.effects.push(e):(f(n=e)?Xt.push(...n):Zt&&-1===n.id?Zt.splice(Jt+1,0,n):1&n.flags||(Xt.push(n),n.flags|=1),on())};function _l(e){return function(e){j().__VUE__=!0;const{insert:t,remove:n,patchProp:a,createElement:s,createText:i,createComment:u,setText:c,setElementText:d,parentNode:f,nextSibling:v,setScopeId:h=r,insertStaticContent:m}=e,g=(e,t,n,o=null,l=null,r=null,a=void 0,s=null,i=!!t.dynamicChildren)=>{if(e===t)return;e&&!Wl(e,t)&&(o=J(e),K(e,l,r,!0),e=null),-2===t.patchFlag&&(i=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:d}=t;switch(u){case Ll:b(e,t,n,o);break;case Pl:y(e,t,n,o);break;case Nl:null==e&&w(t,n,o,a);break;case Rl:N(e,t,n,o,l,r,a,s,i);break;default:1&d?S(e,t,n,o,l,r,a,s,i):6&d?F(e,t,n,o,l,r,a,s,i):(64&d||128&d)&&u.process(e,t,n,o,l,r,a,s,i,te)}null!=c&&l?Qn(c,e&&e.ref,r,t||e,!t):null==c&&e&&null!=e.ref&&Qn(e.ref,null,r,e,!0)},b=(e,n,o,l)=>{if(null==e)t(n.el=i(n.children),o,l);else{const t=n.el=e.el;n.children!==e.children&&c(t,n.children)}},y=(e,n,o,l)=>{null==e?t(n.el=u(n.children||""),o,l):n.el=e.el},w=(e,t,n,o)=>{[e.el,e.anchor]=m(e.children,t,n,o,e.el,e.anchor)},C=({el:e,anchor:n},o,l)=>{let r;for(;e&&e!==n;)r=v(e),t(e,o,l),e=r;t(n,o,l)},_=({el:e,anchor:t})=>{let o;for(;e&&e!==t;)o=v(e),n(e),e=o;n(t)},S=(e,t,n,o,l,r,a,s,i)=>{if("svg"===t.type?a="svg":"math"===t.type&&(a="mathml"),null==e)k(t,n,o,l,r,a,s,i);else{const n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),M(e,t,l,r,a,s,i)}finally{n&&n._endPatch()}}},k=(e,n,o,l,r,i,u,c)=>{let p,f;const{props:v,shapeFlag:h,transition:m,dirs:g}=e;if(p=e.el=s(e.type,i,v&&v.is,v),8&h?d(p,e.children):16&h&&A(e.children,p,null,l,r,Sl(e,i),u,c),g&&vn(e,null,l,"created"),T(p,e,e.scopeId,u,l),v){for(const e in v)"value"===e||E(e)||a(p,e,null,v[e],i,l);"value"in v&&a(p,"value",null,v.value,i),(f=v.onVnodeBeforeMount)&&nr(f,l,e)}g&&vn(e,null,l,"beforeMount");const b=function(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}(r,m);b&&m.beforeEnter(p),t(p,n,o),((f=v&&v.onVnodeMounted)||b||g)&&Cl(()=>{f&&nr(f,l,e),b&&m.enter(p),g&&vn(e,null,l,"mounted")},r)},T=(e,t,n,o,l)=>{if(n&&h(e,n),o)for(let r=0;r{for(let u=i;u{const u=t.el=e.el;let{patchFlag:c,dynamicChildren:p,dirs:f}=t;c|=16&e.patchFlag;const v=e.props||o,h=t.props||o;let m;if(n&&kl(n,!1),(m=h.onVnodeBeforeUpdate)&&nr(m,n,t,e),f&&vn(t,e,n,"beforeUpdate"),n&&kl(n,!0),(v.innerHTML&&null==h.innerHTML||v.textContent&&null==h.textContent)&&d(u,""),p?L(e.dynamicChildren,p,u,n,l,Sl(t,r),s):i||H(e,t,u,null,n,l,Sl(t,r),s,!1),c>0){if(16&c)P(u,v,h,n,r);else if(2&c&&v.class!==h.class&&a(u,"class",null,h.class,r),4&c&&a(u,"style",v.style,h.style,r),8&c){const e=t.dynamicProps;for(let t=0;t{m&&nr(m,n,t,e),f&&vn(t,e,n,"updated")},l)},L=(e,t,n,o,l,r,a)=>{for(let s=0;s{if(t!==n){if(t!==o)for(const o in t)E(o)||o in n||a(e,o,t[o],null,r,l);for(const o in n){if(E(o))continue;const s=n[o],i=t[o];s!==i&&"value"!==o&&a(e,o,i,s,r,l)}"value"in n&&a(e,"value",t.value,n.value,r)}},N=(e,n,o,l,r,a,s,u,c)=>{const d=n.el=e?e.el:i(""),p=n.anchor=e?e.anchor:i("");let{patchFlag:f,dynamicChildren:v,slotScopeIds:h}=n;h&&(u=u?u.concat(h):h),null==e?(t(d,o,l),t(p,o,l),A(n.children||[],o,p,r,a,s,u,c)):f>0&&64&f&&v&&e.dynamicChildren&&e.dynamicChildren.length===v.length?(L(e.dynamicChildren,v,o,r,a,s,u),(null!=n.key||r&&n===r.subTree)&&El(e,n,!0)):H(e,n,o,p,r,a,s,u,c)},F=(e,t,n,o,l,r,a,s,i)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?l.ctx.activate(t,n,o,a,i):$(t,n,o,l,r,a,i):V(e,t,i)},$=(e,t,n,l,r,a,s)=>{const i=e.component=function(e,t,n){const l=e.type,r=(t?t.appContext:e.appContext)||or,a={uid:lr++,vnode:e,type:l,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ne(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vl(l,r),emitsOptions:nl(l,r),emit:null,emitted:null,propsDefaults:o,inheritAttrs:l.inheritAttrs,ctx:o,data:o,props:o,attrs:o,slots:o,refs:o,setupState:o,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=t?t.root:a,a.emit=el.bind(null,a),e.ce&&e.ce(a),a}(e,l,r);if(no(e)&&(i.ctx.renderer=te),function(e,t=!1,n=!1){t&&ir(t);const{props:o,children:l}=e.vnode,r=dr(e);(function(e,t,n,o=!1){const l={},r=ul();e.propsDefaults=Object.create(null),dl(e,t,l,r);for(const a in e.propsOptions[0])a in l||(l[a]=void 0);n?e.props=o?l:ft(l):e.type.props?e.props=l:e.props=r,e.attrs=r})(e,o,r,t),((e,t,n)=>{const o=e.slots=ul();if(32&e.vnode.shapeFlag){const e=t._;e?(xl(o,t,n),n&&B(o,"_",e,!0)):yl(t,o)}else t&&wl(e,t)})(e,l,n||t);r&&function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Po);const{setup:o}=n;if(o){xe();const n=e.setupContext=o.length>1?mr(e):null,l=ur(e),r=qt(o,e,0,[e.props,n]),a=x(r);if(Ce(),l(),!a&&!e.sp||to(e)||Zn(e),a){if(r.then(cr,cr),t)return r.then(t=>{fr(e,t)}).catch(t=>{Kt(t,e,0)});e.asyncDep=r}else fr(e,r)}else vr(e)}(e,t);t&&ir(!1)}(i,!1,s),i.asyncDep){if(r&&r.registerDep(i,D,s),!e.el){const o=i.subTree=Gl(Pl);y(null,o,t,n),e.placeholder=o.el}}else D(i,e,t,n,r,a,s)},V=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:l,component:r}=e,{props:a,children:s,patchFlag:i}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&i>=0))return!(!l&&!s||s&&s.$stable)||o!==a&&(o?!a||sl(o,a,u):!!a);if(1024&i)return!0;if(16&i)return o?sl(o,a,u):!!a;if(8&i){const e=t.dynamicProps;for(let t=0;t{const s=()=>{if(e.isMounted){let{next:t,bu:n,u:o,parent:i,vnode:u}=e;{const n=Tl(e);if(n)return t&&(t.el=u.el,z(e,t,a)),void n.asyncDep.then(()=>{e.isUnmounted||s()})}let c,d=t;kl(e,!1),t?(t.el=u.el,z(e,t,a)):t=u,n&&I(n),(c=t.props&&t.props.onVnodeBeforeUpdate)&&nr(c,i,t,u),kl(e,!0);const p=ll(e),v=e.subTree;e.subTree=p,g(v,p,f(v.el),J(v),e,l,r),t.el=p.el,null===d&&function({vnode:e,parent:t},n){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.el=e.el),o!==e)break;(e=t.vnode).el=n,t=t.parent}}(e,p.el),o&&Cl(o,l),(c=t.props&&t.props.onVnodeUpdated)&&Cl(()=>nr(c,i,t,u),l)}else{let a;const{el:s,props:i}=t,{bm:u,m:c,parent:d,root:p,type:f}=e,v=to(t);kl(e,!1),u&&I(u),!v&&(a=i&&i.onVnodeBeforeMount)&&nr(a,d,t),kl(e,!0);{p.ce&&!1!==p.ce._def.shadowRoot&&p.ce._injectChildStyle(f);const a=e.subTree=ll(e);g(null,a,n,o,e,l,r),t.el=a.el}if(c&&Cl(c,l),!v&&(a=i&&i.onVnodeMounted)){const e=t;Cl(()=>nr(a,d,e),l)}(256&t.shapeFlag||d&&to(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&Cl(e.a,l),e.isMounted=!0,t=n=o=null}};e.scope.on();const i=e.effect=new ae(s);e.scope.off();const u=e.update=i.run.bind(i),c=e.job=i.runIfDirty.bind(i);c.i=e,c.id=e.uid,i.scheduler=()=>nn(c),kl(e,!0),u()},z=(e,t,n)=>{t.component=e;const l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:l,attrs:r,vnode:{patchFlag:a}}=e,s=wt(l),[i]=e.propsOptions;let u=!1;if(!(o||a>0)||16&a){let o;dl(e,t,l,r)&&(u=!0);for(const r in s)t&&(p(t,r)||(o=R(r))!==r&&p(t,o))||(i?!n||void 0===n[r]&&void 0===n[o]||(l[r]=pl(i,s,r,void 0,e,!0)):delete l[r]);if(r!==s)for(const e in r)t&&p(t,e)||(delete r[e],u=!0)}else if(8&a){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:l,slots:r}=e;let a=!0,s=o;if(32&l.shapeFlag){const e=t._;e?n&&1===e?a=!1:xl(r,t,n):(a=!t.$stable,yl(t,r)),s=t}else t&&(wl(e,t),s={default:1});if(a)for(const o in r)ml(o)||null!=s[o]||delete r[o]})(e,t.children,n),xe(),ln(e),Ce()},H=(e,t,n,o,l,r,a,s,i=!1)=>{const u=e&&e.children,c=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:v}=t;if(f>0){if(128&f)return void q(u,p,n,o,l,r,a,s,i);if(256&f)return void W(u,p,n,o,l,r,a,s,i)}8&v?(16&c&&Z(u,l,r),p!==u&&d(n,p)):16&c?16&v?q(u,p,n,o,l,r,a,s,i):Z(u,l,r,!0):(8&c&&d(n,""),16&v&&A(p,n,o,l,r,a,s,i))},W=(e,t,n,o,r,a,s,i,u)=>{t=t||l;const c=(e=e||l).length,d=t.length,p=Math.min(c,d);let f;for(f=0;fd?Z(e,r,a,!0,!1,p):A(t,n,o,r,a,s,i,u,p)},q=(e,t,n,o,r,a,s,i,u)=>{let c=0;const d=t.length;let p=e.length-1,f=d-1;for(;c<=p&&c<=f;){const o=e[c],l=t[c]=u?Ql(t[c]):Jl(t[c]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),c++}for(;c<=p&&c<=f;){const o=e[p],l=t[f]=u?Ql(t[f]):Jl(t[f]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),p--,f--}if(c>p){if(c<=f){const e=f+1,l=ef)for(;c<=p;)K(e[c],r,a,!0),c++;else{const v=c,h=c,m=new Map;for(c=h;c<=f;c++){const e=t[c]=u?Ql(t[c]):Jl(t[c]);null!=e.key&&m.set(e.key,c)}let b,y=0;const w=f-h+1;let x=!1,C=0;const _=new Array(w);for(c=0;c=w){K(o,r,a,!0);continue}let l;if(null!=o.key)l=m.get(o.key);else for(b=h;b<=f;b++)if(0===_[b-h]&&Wl(o,t[b])){l=b;break}void 0===l?K(o,r,a,!0):(_[l-h]=c+1,l>=C?C=l:x=!0,g(o,t[l],n,null,r,a,s,i,u),y++)}const S=x?function(e){const t=e.slice(),n=[0];let o,l,r,a,s;const i=e.length;for(o=0;o>1,e[n[s]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,a=n[r-1];r-- >0;)n[r]=a,a=t[a];return n}(_):l;for(b=S.length-1,c=w-1;c>=0;c--){const e=h+c,l=t[e],p=t[e+1],f=e+1{const{el:s,type:i,transition:u,children:c,shapeFlag:d}=e;if(6&d)U(e.component.subTree,o,l,r);else if(128&d)e.suspense.move(o,l,r);else if(64&d)i.move(e,o,l,te);else if(i!==Rl)if(i!==Nl)if(2!==r&&1&d&&u)if(0===r)u.beforeEnter(s),t(s,o,l),Cl(()=>u.enter(s),a);else{const{leave:r,delayLeave:a,afterLeave:i}=u,c=()=>{e.ctx.isUnmounted?n(s):t(s,o,l)},d=()=>{s._isLeaving&&s[Bn](!0),r(s,()=>{c(),i&&i()})};a?a(s,c,d):d()}else t(s,o,l);else C(e,o,l);else{t(s,o,l);for(let e=0;e{const{type:r,props:a,ref:s,children:i,dynamicChildren:u,shapeFlag:c,patchFlag:d,dirs:p,cacheIndex:f}=e;if(-2===d&&(l=!1),null!=s&&(xe(),Qn(s,null,n,e,!0),Ce()),null!=f&&(t.renderCache[f]=void 0),256&c)return void t.ctx.deactivate(e);const v=1&c&&p,h=!to(e);let m;if(h&&(m=a&&a.onVnodeBeforeUnmount)&&nr(m,t,e),6&c)X(e.component,n,o);else{if(128&c)return void e.suspense.unmount(n,o);v&&vn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,te,o):u&&!u.hasOnce&&(r!==Rl||d>0&&64&d)?Z(u,t,n,!1,!0):(r===Rl&&384&d||!l&&16&c)&&Z(i,t,n),o&&G(e)}(h&&(m=a&&a.onVnodeUnmounted)||v)&&Cl(()=>{m&&nr(m,t,e),v&&vn(e,null,t,"unmounted")},n)},G=e=>{const{type:t,el:o,anchor:l,transition:r}=e;if(t===Rl)return void Y(o,l);if(t===Nl)return void _(e);const a=()=>{n(o),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:n}=r,l=()=>t(o,a);n?n(e.el,a,l):l()}else a()},Y=(e,t)=>{let o;for(;e!==t;)o=v(e),n(e),e=o;n(t)},X=(e,t,n)=>{const{bum:o,scope:l,job:r,subTree:a,um:s,m:i,a:u}=e;Al(i),Al(u),o&&I(o),l.stop(),r&&(r.flags|=8,K(a,e,t,n)),s&&Cl(s,t),Cl(()=>{e.isUnmounted=!0},t)},Z=(e,t,n,o=!1,l=!1,r=0)=>{for(let a=r;a{if(6&e.shapeFlag)return J(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();const t=v(e.anchor||e.el),n=t&&t[Sn];return n?v(n):t};let Q=!1;const ee=(e,t,n)=>{let o;null==e?t._vnode&&(K(t._vnode,null,null,!0),o=t._vnode.component):g(t._vnode||null,e,t,null,null,null,n),t._vnode=e,Q||(Q=!0,ln(o),rn(),Q=!1)},te={p:g,um:K,m:U,r:G,mt:$,mc:A,pc:H,pbc:L,n:J,o:e};let oe;return{render:ee,hydrate:oe,createApp:Jo(ee)}}(e)}function Sl({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function kl({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function El(e,t,n=!1){const o=e.children,l=t.children;if(f(o)&&f(l))for(let r=0;re.__isSuspense,Rl=Symbol.for("v-fgt"),Ll=Symbol.for("v-txt"),Pl=Symbol.for("v-cmt"),Nl=Symbol.for("v-stc"),Il=[];let Bl=null;function Fl(e=!1){Il.push(Bl=e?null:[])}let $l=1;function jl(e,t=!1){$l+=e,e<0&&Bl&&t&&(Bl.hasOnce=!0)}function Vl(e){return e.dynamicChildren=$l>0?Bl||l:null,Il.pop(),Bl=Il[Il.length-1]||null,$l>0&&Bl&&Bl.push(e),e}function Dl(e,t,n,o,l,r){return Vl(Kl(e,t,n,o,l,r,!0))}function zl(e,t,n,o,l){return Vl(Gl(e,t,n,o,l,!0))}function Hl(e){return!!e&&!0===e.__v_isVNode}function Wl(e,t){return e.type===t.type&&e.key===t.key}const ql=({key:e})=>null!=e?e:null,Ul=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?b(e)||_t(e)||g(e)?{i:un,r:e,k:t,f:!!n}:e:null);function Kl(e,t=null,n=null,o=0,l=null,r=(e===Rl?0:1),a=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ql(t),ref:t&&Ul(t),scopeId:cn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:un};return s?(er(i,n),128&r&&e.normalize(i)):n&&(i.shapeFlag|=b(n)?8:16),$l>0&&!a&&Bl&&(i.patchFlag>0||6&r)&&32!==i.patchFlag&&Bl.push(i),i}const Gl=function(e,t=null,n=null,o=0,l=null,r=!1){if(e&&e!==Co||(e=Pl),Hl(e)){const o=Yl(e,t,!0);return n&&er(o,n),$l>0&&!r&&Bl&&(6&o.shapeFlag?Bl[Bl.indexOf(e)]=o:Bl.push(o)),o.patchFlag=-2,o}var a;if(g(a=e)&&"__vccOpts"in a&&(e=e.__vccOpts),t){t=function(e){return e?yt(e)||cl(e)?u({},e):e:null}(t);let{class:e,style:n}=t;e&&!b(e)&&(t.class=q(e)),w(n)&&(yt(n)&&!f(n)&&(n=u({},n)),t.style=V(n))}const s=b(e)?1:Ml(e)?128:kn(e)?64:w(e)?4:g(e)?2:0;return Kl(e,t,n,o,l,s,r,!0)};function Yl(e,t,n=!1,o=!1){const{props:l,ref:r,patchFlag:a,children:s,transition:i}=e,u=t?tr(l||{},t):l,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ql(u),ref:t&&t.ref?n&&r?f(r)?r.concat(Ul(t)):[r,Ul(t)]:Ul(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Rl?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Yl(e.ssContent),ssFallback:e.ssFallback&&Yl(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&o&&Gn(c,i.clone(c)),c}function Xl(e=" ",t=0){return Gl(Ll,null,e,t)}function Zl(e="",t=!1){return t?(Fl(),zl(Pl,null,e)):Gl(Pl,null,e)}function Jl(e){return null==e||"boolean"==typeof e?Gl(Pl):f(e)?Gl(Rl,null,e.slice()):Hl(e)?Ql(e):Gl(Ll,null,String(e))}function Ql(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Yl(e)}function er(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(f(t))n=16;else if("object"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),er(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||cl(t)?3===o&&un&&(1===un.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=un}}else g(t)?(t={default:t,_ctx:un},n=32):(t=String(t),64&o?(n=16,t=[Xl(t)]):n=8);e.children=t,e.shapeFlag|=n}function tr(...e){const t={};for(let n=0;nrr||un;let sr,ir;{const e=j(),t=(t,n)=>{let o;return(o=e[t])||(o=e[t]=[]),o.push(n),e=>{o.length>1?o.forEach(t=>t(e)):o[0](e)}};sr=t("__VUE_INSTANCE_SETTERS__",e=>rr=e),ir=t("__VUE_SSR_SETTERS__",e=>pr=e)}const ur=e=>{const t=rr;return sr(e),e.scope.on(),()=>{e.scope.off(),sr(t)}},cr=()=>{rr&&rr.scope.off(),sr(null)};function dr(e){return 4&e.vnode.shapeFlag}let pr=!1;function fr(e,t,n){g(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:w(t)&&(e.setupState=Lt(t)),vr(e)}function vr(e,t,n){const o=e.type;e.render||(e.render=o.render||r);{const t=ur(e);xe();try{jo(e)}finally{Ce(),t()}}}const hr={get:(e,t)=>(Le(e,0,""),e[t])};function mr(e){const t=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,hr),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Lt((t=e.exposed,!p(t,"__v_skip")&&Object.isExtensible(t)&&B(t,"__v_skip",!0),t)),{get:(t,n)=>n in t?t[n]:n in Ro?Ro[n](e):void 0,has:(e,t)=>t in e||t in Ro})):e.proxy;var t}function br(e,t=!0){return g(e)?e.displayName||e.name:e.name||t&&e.__name}const yr=(e,t)=>{const n=function(e,t,n=!1){let o,l;return g(e)?o=e:(o=e.get,l=e.set),new jt(o,l,n)}(e,0,pr);return n};function wr(e,t,n){try{jl(-1);const o=arguments.length;return 2===o?w(t)&&!f(t)?Hl(t)?Gl(e,null,[t]):Gl(e,t):Gl(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Hl(n)&&(n=[n]),Gl(e,t,n))}finally{jl(1)}}const xr="3.5.26",Cr=r;let _r;const Sr="undefined"!=typeof window&&window.trustedTypes;if(Sr)try{_r=Sr.createPolicy("vue",{createHTML:e=>e})}catch(tT){}const kr=_r?e=>_r.createHTML(e):e=>e,Er="undefined"!=typeof document?document:null,Tr=Er&&Er.createElement("template"),Ar={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const l="svg"===t?Er.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?Er.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?Er.createElement(e,{is:n}):Er.createElement(e);return"select"===e&&o&&null!=o.multiple&&l.setAttribute("multiple",o.multiple),l},createText:e=>Er.createTextNode(e),createComment:e=>Er.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Er.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,l,r){const a=n?n.previousSibling:t.lastChild;if(l&&(l===r||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),l!==r&&(l=l.nextSibling););else{Tr.innerHTML=kr("svg"===o?`${e}`:"mathml"===o?`${e}`:e);const l=Tr.content;if("svg"===o||"mathml"===o){const e=l.firstChild;for(;e.firstChild;)l.appendChild(e.firstChild);l.removeChild(e)}t.insertBefore(l,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Or="transition",Mr="animation",Rr=Symbol("_vtc"),Lr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Pr=u({},Vn,Lr),Nr=(e=>(e.displayName="Transition",e.props=Pr,e))((e,{slots:t})=>wr(Hn,Fr(e),t)),Ir=(e,t=[])=>{f(e)?e.forEach(e=>e(...t)):e&&e(...t)},Br=e=>!!e&&(f(e)?e.some(e=>e.length>1):e.length>1);function Fr(e){const t={};for(const u in e)u in Lr||(t[u]=e[u]);if(!1===e.css)return t;const{name:n="v",type:o,duration:l,enterFromClass:r=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:i=r,appearActiveClass:c=a,appearToClass:d=s,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(w(e))return[$r(e.enter),$r(e.leave)];{const t=$r(e);return[t,t]}}(l),m=h&&h[0],g=h&&h[1],{onBeforeEnter:b,onEnter:y,onEnterCancelled:x,onLeave:C,onLeaveCancelled:_,onBeforeAppear:S=b,onAppear:k=y,onAppearCancelled:E=x}=t,T=(e,t,n,o)=>{e._enterCancelled=o,Vr(e,t?d:s),Vr(e,t?c:a),n&&n()},A=(e,t)=>{e._isLeaving=!1,Vr(e,p),Vr(e,v),Vr(e,f),t&&t()},O=e=>(t,n)=>{const l=e?k:y,a=()=>T(t,e,n);Ir(l,[t,a]),Dr(()=>{Vr(t,e?i:r),jr(t,e?d:s),Br(l)||Hr(t,o,m,a)})};return u(t,{onBeforeEnter(e){Ir(b,[e]),jr(e,r),jr(e,a)},onBeforeAppear(e){Ir(S,[e]),jr(e,i),jr(e,c)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>A(e,t);jr(e,p),e._enterCancelled?(jr(e,f),Kr(e)):(Kr(e),jr(e,f)),Dr(()=>{e._isLeaving&&(Vr(e,p),jr(e,v),Br(C)||Hr(e,o,g,n))}),Ir(C,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),Ir(x,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),Ir(E,[e])},onLeaveCancelled(e){A(e),Ir(_,[e])}})}function $r(e){const t=(e=>{const t=b(e)?Number(e):NaN;return isNaN(t)?e:t})(e);return t}function jr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Rr]||(e[Rr]=new Set)).add(t)}function Vr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));const n=e[Rr];n&&(n.delete(t),n.size||(e[Rr]=void 0))}function Dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let zr=0;function Hr(e,t,n,o){const l=e._endId=++zr,r=()=>{l===e._endId&&o()};if(null!=n)return setTimeout(r,n);const{type:a,timeout:s,propCount:i}=Wr(e,t);if(!a)return o();const u=a+"end";let c=0;const d=()=>{e.removeEventListener(u,p),r()},p=t=>{t.target===e&&++c>=i&&d()};setTimeout(()=>{c(n[e]||"").split(", "),l=o(`${Or}Delay`),r=o(`${Or}Duration`),a=qr(l,r),s=o(`${Mr}Delay`),i=o(`${Mr}Duration`),u=qr(s,i);let c=null,d=0,p=0;return t===Or?a>0&&(c=Or,d=a,p=r.length):t===Mr?u>0&&(c=Mr,d=u,p=i.length):(d=Math.max(a,u),c=d>0?a>u?Or:Mr:null,p=c?c===Or?r.length:i.length:0),{type:c,timeout:d,propCount:p,hasTransform:c===Or&&/\b(?:transform|all)(?:,|$)/.test(o(`${Or}Property`).toString())}}function qr(e,t){for(;e.lengthUr(t)+Ur(e[n])))}function Ur(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function Kr(e){return(e?e.ownerDocument:document).body.offsetHeight}const Gr=Symbol("_vod"),Yr=Symbol("_vsh"),Xr={name:"show",beforeMount(e,{value:t},{transition:n}){e[Gr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Zr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Zr(e,!0),o.enter(e)):o.leave(e,()=>{Zr(e,!1)}):Zr(e,t))},beforeUnmount(e,{value:t}){Zr(e,t)}};function Zr(e,t){e.style.display=t?e[Gr]:"none",e[Yr]=!t}const Jr=Symbol(""),Qr=/(?:^|;)\s*display\s*:/,ea=/\s*!important$/;function ta(e,t,n){if(f(n))n.forEach(n=>ta(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=oa[t];if(n)return n;let o=O(t);if("filter"!==o&&o in e)return oa[t]=o;o=L(o);for(let l=0;l{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();Ut(function(e,t){if(f(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=da||(pa.then(()=>da=0),da=Date.now()),n}(o,l);sa(e,n,a,s)}else a&&(function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,a,s),r[t]=void 0)}}const ca=/(?:Once|Passive|Capture)$/;let da=0;const pa=Promise.resolve(),fa=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,va=new WeakMap,ha=new WeakMap,ma=Symbol("_moveCb"),ga=Symbol("_enterCb"),ba=(e=>(delete e.props.mode,e))({name:"TransitionGroup",props:u({},Pr,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ar(),o=$n();let l,r;return fo(()=>{if(!l.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const o=e.cloneNode(),l=e[Rr];l&&l.forEach(e=>{e.split(/\s+/).forEach(e=>e&&o.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&o.classList.add(e)),o.style.display="none";const r=1===t.nodeType?t:t.parentNode;r.appendChild(o);const{hasTransform:a}=Wr(o);return r.removeChild(o),a}(l[0].el,n.vnode.el,t))return void(l=[]);l.forEach(ya),l.forEach(wa);const o=l.filter(xa);Kr(n.vnode.el),o.forEach(e=>{const n=e.el,o=n.style;jr(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const l=n[ma]=e=>{e&&e.target!==n||e&&!e.propertyName.endsWith("transform")||(n.removeEventListener("transitionend",l),n[ma]=null,Vr(n,t))};n.addEventListener("transitionend",l)}),l=[]}),()=>{const a=wt(e),s=Fr(a);let i=a.tag||Rl;if(l=[],r)for(let e=0;e{const t=e.props["onUpdate:modelValue"]||!1;return f(t)?e=>I(t,e):t},_a=Symbol("_assign"),Sa={deep:!0,created(e,t,n){e[_a]=Ca(n),sa(e,"change",()=>{const t=e._modelValue,n=Ta(e),o=e.checked,l=e[_a];if(f(t)){const e=Y(t,n),r=-1!==e;if(o&&!r)l(t.concat(n));else if(!o&&r){const n=[...t];n.splice(e,1),l(n)}}else if(h(t)){const e=new Set(t);o?e.add(n):e.delete(n),l(e)}else l(Aa(e,o))})},mounted:ka,beforeUpdate(e,t,n){e[_a]=Ca(n),ka(e,t,n)}};function ka(e,{value:t,oldValue:n},o){let l;if(e._modelValue=t,f(t))l=Y(t,o.props.value)>-1;else if(h(t))l=t.has(o.props.value);else{if(t===n)return;l=G(t,Aa(e,!0))}e.checked!==l&&(e.checked=l)}const Ea={created(e,{value:t},n){e.checked=G(t,n.props.value),e[_a]=Ca(n),sa(e,"change",()=>{e[_a](Ta(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[_a]=Ca(o),t!==n&&(e.checked=G(t,o.props.value))}};function Ta(e){return"_value"in e?e._value:e.value}function Aa(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Oa=["ctrl","shift","alt","meta"],Ma={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Oa.some(n=>e[`${n}Key`]&&!t.includes(n))},Ra=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(n,...o)=>{for(let e=0;e{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=n=>{if(!("key"in n))return;const o=R(n.key);return t.some(e=>e===o||La[e]===o)?e(n):void 0})},Na=u({patchProp:(e,t,n,o,l,r)=>{const a="svg"===l;"class"===t?function(e,t,n){const o=e[Rr];o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,a):"style"===t?function(e,t,n){const o=e.style,l=b(n);let r=!1;if(n&&!l){if(t)if(b(t))for(const e of t.split(";")){const t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&ta(o,t,"")}else for(const e in t)null==n[e]&&ta(o,e,"");for(const e in n)"display"===e&&(r=!0),ta(o,e,n[e])}else if(l){if(t!==n){const e=o[Jr];e&&(n+=";"+e),o.cssText=n,r=Qr.test(n)}}else t&&e.removeAttribute("style");Gr in e&&(e[Gr]=r?o.display:"",e[Yr]&&(o.display="none"))}(e,n,o):s(t)?i(t)||ua(e,t,0,o,r):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&fa(t)&&g(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t)return!1;if("sandbox"===t&&"IFRAME"===e.tagName)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!fa(t)||!b(n))&&t in e}(e,t,o,a))?(aa(e,t,o),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ra(e,t,o,a,0,"value"!==t)):!e._isVueCE||!/[A-Z]/.test(t)&&b(o)?("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),ra(e,t,o,a)):aa(e,O(t),o,0,t)}},Ar);let Ia;function Ba(){return Ia||(Ia=_l(Na))}const Fa=(...e)=>{Ba().render(...e)},$a=(...e)=>{const t=Ba().createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){return b(e)?document.querySelector(e):e}(e);if(!o)return;const l=t._component;g(l)||l.render||l.template||(l.template=o.innerHTML),1===o.nodeType&&(o.textContent="");const r=n(o,!1,function(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t},ja=Symbol(),Va="el",Da=(e,t,n,o,l)=>{let r=`${e}-${t}`;return n&&(r+=`-${n}`),o&&(r+=`__${o}`),l&&(r+=`--${l}`),r},za=Symbol("namespaceContextKey"),Ha=e=>{const t=e||(ar()?mn(za,St(Va)):St(Va));return yr(()=>Ot(t)||Va)},Wa=(e,t)=>{const n=Ha(t);return{namespace:n,b:(t="")=>Da(n.value,e,t,"",""),e:t=>t?Da(n.value,e,"",t,""):"",m:t=>t?Da(n.value,e,"","",t):"",be:(t,o)=>t&&o?Da(n.value,e,t,o,""):"",em:(t,o)=>t&&o?Da(n.value,e,"",t,o):"",bm:(t,o)=>t&&o?Da(n.value,e,t,"",o):"",bem:(t,o,l)=>t&&o&&l?Da(n.value,e,t,o,l):"",is:(e,...t)=>{const n=!(t.length>=1)||t[0];return e&&n?`is-${e}`:""},cssVar:e=>{const t={};for(const o in e)e[o]&&(t[`--${n.value}-${o}`]=e[o]);return t},cssVarName:e=>`--${n.value}-${e}`,cssVarBlock:t=>{const o={};for(const l in t)t[l]&&(o[`--${n.value}-${e}-${l}`]=t[l]);return o},cssVarBlockName:t=>`--${n.value}-${e}-${t}`}};var qa="object"==typeof global&&global&&global.Object===Object&&global,Ua="object"==typeof self&&self&&self.Object===Object&&self,Ka=qa||Ua||Function("return this")(),Ga=Ka.Symbol,Ya=Object.prototype,Xa=Ya.hasOwnProperty,Za=Ya.toString,Ja=Ga?Ga.toStringTag:void 0,Qa=Object.prototype.toString,es=Ga?Ga.toStringTag:void 0;function ts(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":es&&es in Object(e)?function(e){var t=Xa.call(e,Ja),n=e[Ja];try{e[Ja]=void 0;var o=!0}catch(tT){}var l=Za.call(e);return o&&(t?e[Ja]=n:delete e[Ja]),l}(e):function(e){return Qa.call(e)}(e)}function ns(e){return null!=e&&"object"==typeof e}function os(e){return"symbol"==typeof e||ns(e)&&"[object Symbol]"==ts(e)}function ls(e,t){for(var n=-1,o=null==e?0:e.length,l=Array(o);++n0){if(++$s>=800)return arguments[0]}else $s=0;return Fs.apply(void 0,arguments)}),Ws=/^(?:0|[1-9]\d*)$/;function qs(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Ws.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function ei(e){return null!=e&&Qs(e.length)&&!ys(e)}var ti=Object.prototype;function ni(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ti)}function oi(e){return ns(e)&&"[object Arguments]"==ts(e)}var li=Object.prototype,ri=li.hasOwnProperty,ai=li.propertyIsEnumerable,si=oi(function(){return arguments}())?oi:function(e){return ns(e)&&ri.call(e,"callee")&&!ai.call(e,"callee")},ii="object"==typeof e&&e&&!e.nodeType&&e,ui=ii&&"object"==typeof t&&t&&!t.nodeType&&t,ci=ui&&ui.exports===ii?Ka.Buffer:void 0,di=(ci?ci.isBuffer:void 0)||function(){return!1},pi={};function fi(e){return function(t){return e(t)}}pi["[object Float32Array]"]=pi["[object Float64Array]"]=pi["[object Int8Array]"]=pi["[object Int16Array]"]=pi["[object Int32Array]"]=pi["[object Uint8Array]"]=pi["[object Uint8ClampedArray]"]=pi["[object Uint16Array]"]=pi["[object Uint32Array]"]=!0,pi["[object Arguments]"]=pi["[object Array]"]=pi["[object ArrayBuffer]"]=pi["[object Boolean]"]=pi["[object DataView]"]=pi["[object Date]"]=pi["[object Error]"]=pi["[object Function]"]=pi["[object Map]"]=pi["[object Number]"]=pi["[object Object]"]=pi["[object RegExp]"]=pi["[object Set]"]=pi["[object String]"]=pi["[object WeakMap]"]=!1;var vi="object"==typeof e&&e&&!e.nodeType&&e,hi=vi&&"object"==typeof t&&t&&!t.nodeType&&t,mi=hi&&hi.exports===vi&&qa.process,gi=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||mi&&mi.binding&&mi.binding("util")}catch(tT){}}(),bi=gi&&gi.isTypedArray,yi=bi?fi(bi):function(e){return ns(e)&&Qs(e.length)&&!!pi[ts(e)]},wi=Object.prototype.hasOwnProperty;function xi(e,t){var n=rs(e),o=!n&&si(e),l=!n&&!o&&di(e),r=!n&&!o&&!l&&yi(e),a=n||o||l||r,s=a?function(e,t){for(var n=-1,o=Array(e);++n-1},$i.prototype.set=function(e,t){var n=this.__data__,o=Bi(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this};var ji=Ls(Ka,"Map");function Vi(e,t){var n,o,l=e.__data__;return("string"==(o=typeof(n=t))||"number"==o||"symbol"==o||"boolean"==o?"__proto__"!==n:null===n)?l["string"==typeof t?"string":"hash"]:l.map}function Di(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var u=r.get(e),c=r.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&n?new oc:void 0;for(r.set(e,t),r.set(t,e);++d=t||n<0||d&&e-u>=r}function h(){var e=Tc();if(v(e))return m(e);s=setTimeout(h,function(e){var n=t-(e-i);return d?Oc(n,r-(e-u)):n}(e))}function m(e){return s=void 0,p&&o?f(e):(o=l=void 0,a)}function g(){var e=Tc(),n=v(e);if(o=arguments,l=this,i=e,n){if(void 0===s)return function(e){return u=e,s=setTimeout(h,t),c?f(e):a}(i);if(d)return clearTimeout(s),s=setTimeout(h,t),f(i)}return void 0===s&&(s=setTimeout(h,t)),a}return t=gs(t)||0,ps(n)&&(c=!!n.leading,r=(d="maxWait"in n)?Ac(gs(n.maxWait)||0,t):r,p="trailing"in n?!!n.trailing:p),g.cancel=function(){void 0!==s&&clearTimeout(s),u=0,o=i=l=s=void 0},g.flush=function(){return void 0===s?a:m(Tc())},g}function Rc(e,t,n){(void 0!==n&&!Ks(e[t],n)||void 0===n&&!(t in e))&&Us(e,t,n)}function Lc(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function Pc(e,t,n,o,l,r,a){var s=Lc(e,n),i=Lc(t,n),u=a.get(i);if(u)Rc(e,n,u);else{var c,d=r?r(s,i,n+"",e,t,a):void 0,p=void 0===d;if(p){var f=rs(i),v=!f&&di(i),h=!f&&!v&&yi(i);d=i,f||v||h?rs(s)?d=s:ns(c=s)&&ei(c)?d=Bs(s):v?(p=!1,d=hu(i,!0)):h?(p=!1,d=Wu(i,!0)):d=[]:iu(i)||si(i)?(d=s,si(s)?d=function(e){return Xs(e,Ai(e))}(s):ps(s)&&!ys(s)||(d=Uu(i))):p=!1}p&&(a.set(i,d),l(d,i,o,r,a),a.delete(i)),Rc(e,n,d)}}function Nc(e,t,n,o,l){e!==t&&kc(t,function(r,a){if(l||(l=new cu),ps(r))Pc(e,t,a,n,Nc,o,l);else{var s=o?o(Lc(e,a),r,a+"",e,t,l):void 0;void 0===s&&(s=r),Rc(e,a,s)}},Ai)}function Ic(e,t){var n=-1,o=ei(e)?Array(e.length):[];return Ec(e,function(e,l,r){o[++n]=t(e,l,r)}),o}function Bc(e,t){return Qi(function(e,t){return(rs(e)?ls:Ic)(e,_c(t))}(e,t))}function Fc(e){for(var t=-1,n=null==e?0:e.length,o={};++tl?0:l+t),(n=n>l?l:n)<0&&(n+=l),l=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(l);++o1?t[o-1]:void 0,r=o>2?t[2]:void 0;for(l=zc.length>3&&"function"==typeof l?(o--,l):void 0,r&&function(e,t,n){if(!ps(n))return!1;var o=typeof t;return!!("number"==o?ei(n)&&qs(t,n.length):"string"==o&&t in n)&&Ks(n[t],e)}(t[0],t[1],r)&&(l=o<3?void 0:l,o=1),e=Object(e);++n1),t}),Xs(e,_u(e),n),o&&(n=tc(n,7,qc));for(var l=t.length;l--;)Wc(n,t[l]);return n});function Kc(e,t,n,o){if(!ps(e))return e;for(var l=-1,r=(t=Ui(t,e)).length,a=r-1,s=e;null!=s&&++lvoid 0===e,Zc=e=>"boolean"==typeof e,Jc=e=>"number"==typeof e,Qc=e=>"undefined"!=typeof Element&&e instanceof Element,ed=e=>Vc(e);function td(e,t){const n=kt();return yn(()=>{n.value=e()},{...t,flush:"sync"}),vt(n)}function nd(e){return!!oe()&&(le(e),!0)}function od(e){return"function"==typeof e?e():Ot(e)}const ld="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const rd=Object.prototype.toString,ad=()=>{},sd=id();function id(){var e,t;return ld&&(null==(e=null==window?void 0:window.navigator)?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||(null==(t=null==window?void 0:window.navigator)?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(null==window?void 0:window.navigator.userAgent))}function ud(e,t=200,n={}){return function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(function(e,t={}){let n,o,l=ad;const r=e=>{clearTimeout(e),l(),l=ad};return a=>{const s=od(e),i=od(t.maxWait);return n&&r(n),s<=0||void 0!==i&&i<=0?(o&&(r(o),o=null),Promise.resolve(a())):new Promise((e,u)=>{l=t.rejectOnCancel?u:e,i&&!o&&(o=setTimeout(()=>{n&&r(n),o=null,e(a())},i)),n=setTimeout(()=>{o&&r(o),o=null,e(a())},s)})}}(t,n),e)}function cd(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function dd(e,t,n={}){const{immediate:o=!0}=n,l=St(!1);let r=null;function a(){r&&(clearTimeout(r),r=null)}function s(){l.value=!1,a()}function i(...n){a(),l.value=!0,r=setTimeout(()=>{l.value=!1,r=null,e(...n)},od(t))}return o&&(l.value=!0,ld&&i()),nd(s),{isPending:vt(l),start:i,stop:s}}function pd(e){var t;const n=od(e);return null!=(t=null==n?void 0:n.$el)?t:n}const fd=ld?window:void 0,vd=ld?window.document:void 0;function hd(...e){let t,n,o,l;if("string"==typeof e[0]||Array.isArray(e[0])?([n,o,l]=e,t=fd):[t,n,o,l]=e,!t)return ad;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const r=[],a=()=>{r.forEach(e=>e()),r.length=0},s=wn(()=>[pd(t),od(l)],([e,t])=>{if(a(),!e)return;const l=(s=t,"[object Object]"===rd.call(s)?{...t}:t);var s;r.push(...n.flatMap(t=>o.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,l))))},{immediate:!0,flush:"post"}),i=()=>{s(),a()};return nd(i),i}let md=!1;function gd(e){const t=function(){const e=St(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}();return yr(()=>(t.value,Boolean(e())))}function bd(e,t,n={}){const{window:o=fd,...l}=n;let r;const a=gd(()=>o&&"ResizeObserver"in o),s=()=>{r&&(r.disconnect(),r=void 0)},i=wn(yr(()=>Array.isArray(e)?e.map(e=>pd(e)):[pd(e)]),e=>{if(s(),a.value&&o){r=new ResizeObserver(t);for(const t of e)t&&r.observe(t,l)}},{immediate:!0,flush:"post"}),u=()=>{s(),i()};return nd(u),{isSupported:a,stop:u}}function yd(e,t={width:0,height:0},n={}){const{window:o=fd,box:l="content-box"}=n,r=yr(()=>{var t,n;return null==(n=null==(t=pd(e))?void 0:t.namespaceURI)?void 0:n.includes("svg")}),a=St(t.width),s=St(t.height),{stop:i}=bd(e,([t])=>{const n="border-box"===l?t.borderBoxSize:"content-box"===l?t.contentBoxSize:t.devicePixelContentBoxSize;if(o&&r.value){const t=pd(e);if(t){const e=t.getBoundingClientRect();a.value=e.width,s.value=e.height}}else if(n){const e=Array.isArray(n)?n:[n];a.value=e.reduce((e,{inlineSize:t})=>e+t,0),s.value=e.reduce((e,{blockSize:t})=>e+t,0)}else a.value=t.contentRect.width,s.value=t.contentRect.height},n);cd(()=>{const n=pd(e);n&&(a.value="offsetWidth"in n?n.offsetWidth:t.width,s.value="offsetHeight"in n?n.offsetHeight:t.height)});const u=wn(()=>pd(e),e=>{a.value=e?t.width:0,s.value=e?t.height:0});return{width:a,height:s,stop:function(){i(),u()}}}class wd extends Error{constructor(e){super(e),this.name="ElementPlusError"}}function xd(e,t){throw new wd(`[${e}] ${t}`)}const Cd={current:0},_d=St(0),Sd=Symbol("elZIndexContextKey"),kd=Symbol("zIndexContextKey"),Ed=e=>{const t=ar()?mn(Sd,Cd):Cd,n=e||(ar()?mn(kd,void 0):void 0),o=yr(()=>{const e=Ot(n);return Jc(e)?e:2e3}),l=yr(()=>o.value+_d.value);return!ld&&mn(Sd),{initialZIndex:o,currentZIndex:l,nextZIndex:()=>(t.current++,_d.value=t.current,l.value)}};var Td={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value",alphaDescription:"alpha {alpha}, current color is {color}",hueLabel:"pick hue value",hueDescription:"hue {hue}, current color is {color}",svLabel:"pick saturation and brightness value",svDescription:"saturation {saturation}, brightness {brightness}, current color is {color}",predefineDescription:"select {value} as the color"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum",selectAllLabel:"Select all rows",selectRowLabel:"Select this row",expandRowLabel:"Expand this row",collapseRowLabel:"Collapse this row",sortLabel:"Sort by {column}",filterLabel:"Filter by {column}"},tag:{close:"Close this tag"},tour:{next:"Next",previous:"Previous",finish:"Finish",close:"Close this dialog"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const Ad=e=>(t,n)=>Od(t,n,Ot(e)),Od=(e,t,n)=>Yi(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>{var o;return`${null!=(o=null==t?void 0:t[n])?o:`{${n}}`}`}),Md=Symbol("localeContextKey"),Rd=e=>{const t=e||mn(Md,St());return(e=>({lang:yr(()=>Ot(e).name),locale:_t(e)?e:St(e),t:Ad(e)}))(yr(()=>t.value||Td))},Ld="__epPropKey",Pd=(e,t)=>{if(!w(e)||w(n=e)&&n[Ld])return e;var n;const{values:o,required:l,default:r,type:a,validator:s}=e,i=o||s?n=>{let l=!1,a=[];if(o&&(a=Array.from(o),p(e,"default")&&a.push(r),l||(l=a.includes(n))),s&&(l||(l=s(n))),!l&&a.length>0){const e=[...new Set(a)].map(e=>JSON.stringify(e)).join(", ");Cr(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${e}], got value ${JSON.stringify(n)}.`)}return l}:void 0,u={type:a,required:!!l,validator:i,[Ld]:!0};return p(e,"default")&&(u.default=r),u},Nd=e=>Fc(Object.entries(e).map(([e,t])=>[e,Pd(t,e)])),Id=["","default","small","large"],Bd=Pd({type:String,values:Id,required:!1}),Fd=Symbol("size"),$d=Symbol("emptyValuesContextKey"),jd=(Nd({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>(e=g(e)?e():e,f(e)?e.every(e=>!e):!e)}}),e=>Object.keys(e)),Vd=(e,t,n)=>({get value(){return Yi(e,t,n)},set value(n){!function(e,t,n){null==e||Kc(e,t,n)}(e,t,n)}}),Dd=St();function zd(e,t=void 0){const n=ar()?mn(ja,Dd):Dd;return e?yr(()=>{var o,l;return null!=(l=null==(o=n.value)?void 0:o[e])?l:t}):n}function Hd(e,t){const n=zd(),o=Wa(e,yr(()=>{var e;return(null==(e=n.value)?void 0:e.namespace)||Va})),l=Rd(yr(()=>{var e;return null==(e=n.value)?void 0:e.locale})),r=Ed(yr(()=>{var e;return(null==(e=n.value)?void 0:e.zIndex)||2e3})),a=yr(()=>{var e;return Ot(t)||(null==(e=n.value)?void 0:e.size)||""});return Wd(yr(()=>Ot(n)||{})),{ns:o,locale:l,zIndex:r,size:a}}const Wd=(e,t,n=!1)=>{const o=!!ar(),l=o?zd():void 0,r=o?hn:void 0;if(!r)return;const a=yr(()=>{const t=Ot(e);return(null==l?void 0:l.value)?qd(l.value,t):t});return r(ja,a),r(Md,yr(()=>a.value.locale)),r(za,yr(()=>a.value.namespace)),r(kd,yr(()=>a.value.zIndex)),r(Fd,{size:yr(()=>a.value.size||"")}),r($d,yr(()=>({emptyValues:a.value.emptyValues,valueOnClear:a.value.valueOnClear}))),!n&&Dd.value||(Dd.value=a.value),a},qd=(e,t)=>{const n=[...new Set([...jd(e),...jd(t)])],o={};for(const l of n)o[l]=void 0!==t[l]?t[l]:e[l];return o},Ud=Nd({to:{type:[String,Object],required:!0},disabled:Boolean});var Kd=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const Gd=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(null!=t?t:{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Yd=e=>(e.install=r,e),Xd=Gd(Kd(Xn({__name:"teleport",props:Ud,setup:e=>(e,t)=>e.disabled?Ao(e.$slots,"default",{key:0}):(Fl(),zl(Pn,{key:1,to:e.to},[Ao(e.$slots,"default")],8,["to"]))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/teleport/src/teleport.vue"]])),Zd="update:modelValue",Jd="change",Qd="input",ep=e=>ld?window.requestAnimationFrame(e):setTimeout(e,16),tp=(e="")=>e.split(" ").filter(e=>!!e.trim()),np=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},op=(e,t)=>{e&&t.trim()&&e.classList.add(...tp(t))},lp=(e,t)=>{e&&t.trim()&&e.classList.remove(...tp(t))},rp=(e,t)=>{var n;if(!ld||!e||!t)return"";let o=O(t);"float"===o&&(o="cssFloat");try{const t=e.style[o];if(t)return t;const l=null==(n=document.defaultView)?void 0:n.getComputedStyle(e,"");return l?l[o]:""}catch(tT){return e.style[o]}};function ap(e,t="px"){return e||0===e?Jc(e)||b(n=e)&&!Number.isNaN(Number(n))?`${e}${t}`:b(e)?e:void 0:"";var n}let sp;const ip=Gd(Kd(Xn({name:"ElIcon",inheritAttrs:!1,__name:"icon",props:Nd({size:{type:[Number,String]},color:{type:String}}),setup(e){const t=e,n=Wa("icon"),o=yr(()=>{const{size:e,color:n}=t,o=ap(e);return o||n?{fontSize:o,"--color":n}:{}});return(e,t)=>(Fl(),Dl("i",tr({class:Ot(n).b(),style:o.value},e.$attrs),[Ao(e.$slots,"default")],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]));var up=Xn({name:"ArrowDown",__name:"arrow-down",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}),cp=Xn({name:"ArrowLeft",__name:"arrow-left",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0"})]))}),dp=Xn({name:"ArrowRight",__name:"arrow-right",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}),pp=Xn({name:"ArrowUp",__name:"arrow-up",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}),fp=Xn({name:"Bottom",__name:"bottom",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}),vp=Xn({name:"CircleCheck",__name:"circle-check",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}),hp=Xn({name:"CircleCloseFilled",__name:"circle-close-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}),mp=Xn({name:"CircleClose",__name:"circle-close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}),gp=Xn({name:"Clock",__name:"clock",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),Kl("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}),bp=Xn({name:"Close",__name:"close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}),yp=Xn({name:"Connection",__name:"connection",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192z"}),Kl("path",{fill:"currentColor",d:"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.06 192.06 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192z"})]))}),wp=Xn({name:"DataAnalysis",__name:"data-analysis",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32zM832 192H192v512h640zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32"})]))}),xp=Xn({name:"Delete",__name:"delete",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}),Cp=Xn({name:"Download",__name:"download",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}),_p=Xn({name:"Hide",__name:"hide",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),Kl("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}),Sp=Xn({name:"InfoFilled",__name:"info-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}),kp=Xn({name:"Key",__name:"key",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064M512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384"})]))}),Ep=Xn({name:"Loading",__name:"loading",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}),Tp=Xn({name:"Monitor",__name:"monitor",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 768v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768H192A128 128 0 0 1 64 640V256a128 128 0 0 1 128-128h640a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128zM192 192a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64z"})]))}),Ap=Xn({name:"Moon",__name:"moon",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 391 391 0 0 0-17.408 16.384m181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696"})]))}),Op=Xn({name:"More",__name:"more",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}),Mp=Xn({name:"Plus",__name:"plus",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}),Rp=Xn({name:"Promotion",__name:"promotion",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472zm256 512V657.024L512 768z"})]))}),Lp=Xn({name:"QuestionFilled",__name:"question-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"})]))}),Pp=Xn({name:"Refresh",__name:"refresh",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}),Np=Xn({name:"Search",__name:"search",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}),Ip=Xn({name:"SuccessFilled",__name:"success-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}),Bp=Xn({name:"Sunny",__name:"sunny",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32M195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248M64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32m768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32M195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0m543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0"})]))}),Fp=Xn({name:"Top",__name:"top",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}),$p=Xn({name:"Upload",__name:"upload",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}),jp=Xn({name:"User",__name:"user",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0"})]))}),Vp=Xn({name:"View",__name:"view",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))});const Dp=[String,Object,Function],zp={Close:bp},Hp={Close:bp},Wp={primary:Sp,success:Ip,warning:Xn({name:"WarningFilled",__name:"warning-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}),error:hp,info:Sp},qp={validating:Ep,success:vp,error:mp},Up=()=>ld&&/firefox/i.test(window.navigator.userAgent);let Kp;const Gp={height:"0",visibility:"hidden",overflow:Up()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},Yp=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"],Xp=e=>{const t=Number.parseFloat(e);return Number.isNaN(t)?e:t};function Zp(e,t=1,n){var o,l;Kp||(Kp=document.createElement("textarea"),(null!=(o=e.parentNode)?o:document.body).appendChild(Kp));const{paddingSize:r,borderSize:a,boxSizing:s,contextStyle:i}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),l=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Yp.map(e=>[e,t.getPropertyValue(e)]),paddingSize:o,borderSize:l,boxSizing:n}}(e);i.forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t)),Object.entries(Gp).forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t,"important")),Kp.value=e.value||e.placeholder||"";let u=Kp.scrollHeight;const c={};"border-box"===s?u+=a:"content-box"===s&&(u-=r),Kp.value="";const d=Kp.scrollHeight-r;if(Jc(t)){let e=d*t;"border-box"===s&&(e=e+r+a),u=Math.max(e,u),c.minHeight=`${e}px`}if(Jc(n)){let e=d*n;"border-box"===s&&(e=e+r+a),u=Math.min(e,u)}return c.height=`${u}px`,null==(l=Kp.parentNode)||l.removeChild(Kp),Kp=void 0,c}const Jp=Nd({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Qp=e=>Yc(Jp,e),ef=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Object],default:""},modelModifiers:{type:Object,default:()=>({})},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:Dp,default:mp},showPassword:Boolean,showWordLimit:Boolean,wordLimitPosition:{type:String,values:["inside","outside"],default:"inside"},suffixIcon:{type:Dp},prefixIcon:{type:Dp},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Object,Array,String],default:()=>({})},autofocus:Boolean,rows:{type:Number,default:2},...Qp(["ariaLabel"]),inputmode:{type:String,default:void 0},name:String}),tf={[Zd]:e=>b(e),input:e=>b(e),change:(e,t)=>b(e)&&(t instanceof Event||void 0===t),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},nf=["class","style"],of=/^on[A-Z]/,lf={prefix:Math.floor(1e4*Math.random()),current:0},rf=Symbol("elIdInjection"),af=()=>ar()?mn(rf,lf):lf,sf=e=>{const t=af(),n=Ha();return td(()=>Ot(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},uf=Symbol("formContextKey"),cf=Symbol("formItemContextKey"),df=()=>({form:mn(uf,void 0),formItem:mn(cf,void 0)}),pf=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=St(!1)),o||(o=St(!1));const l=ar(),r=St();let a;const s=yr(()=>{var n;return!!(!e.label&&!e.ariaLabel&&t&&t.inputIds&&(null==(n=t.inputIds)?void 0:n.length)<=1)});return co(()=>{a=wn([Ft(e,"id"),n],([e,n])=>{const a=null!=e?e:n?void 0:sf().value;a!==r.value&&((null==t?void 0:t.removeInputId)&&!(()=>{let e=null==l?void 0:l.parent;for(;e;){if("ElFormItem"===e.type.name)return!1;if("ElLabelWrap"===e.type.name)return!0;e=e.parent}return!1})()&&(r.value&&t.removeInputId(r.value),(null==o?void 0:o.value)||n||!a||t.addInputId(a)),r.value=a)},{immediate:!0})}),ho(()=>{a&&a(),(null==t?void 0:t.removeInputId)&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:s,inputId:r}},ff=e=>{const t=ar();return yr(()=>{var n,o;return null==(o=null==(n=null==t?void 0:t.proxy)?void 0:n.$props)?void 0:o[e]})},vf=(e,t={})=>{const n=St(void 0),o=t.prop?n:ff("size"),l=t.global?n:(()=>{const e=mn(Fd,{});return yr(()=>Ot(e.size)||"")})(),r=t.form?{size:void 0}:mn(uf,void 0),a=t.formItem?{size:void 0}:mn(cf,void 0);return yr(()=>o.value||Ot(e)||(null==a?void 0:a.size)||(null==r?void 0:r.size)||l.value||"")},hf=e=>{const t=ff("disabled"),n=mn(uf,void 0);return yr(()=>{var o,l,r;return null!=(r=null!=(l=null!=(o=t.value)?o:Ot(e))?l:null==n?void 0:n.disabled)&&r})},mf=e=>"undefined"!=typeof Element&&e instanceof Element,gf=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},bf=function(e,t,...n){let o;o=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const l=document.createEvent(o);return l.initEvent(t,...n),e.dispatchEvent(l),e},yf=(e,t)=>{if(!e||!e.focus)return;let n=!1;!mf(e)||gf(e)||e.getAttribute("tabindex")||(e.setAttribute("tabindex","-1"),n=!0),e.focus(t),mf(e)&&n&&e.removeAttribute("tabindex")},wf=["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode"],xf=["id","name","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role"],Cf=Gd(Kd(Xn({name:"ElInput",inheritAttrs:!1,__name:"input",props:ef,emits:tf,setup(e,{expose:t,emit:n}){const o=e,l=n,a=Io(),s=((e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=yr(()=>((null==n?void 0:n.value)||[]).concat(nf)),l=ar();return yr(l?()=>{var e;return Fc(Object.entries(null==(e=l.proxy)?void 0:e.$attrs).filter(([e])=>!(o.value.includes(e)||t&&of.test(e))))}:()=>({}))})(),i=No(),u=yr(()=>["textarea"===o.type?b.b():m.b(),m.m(v.value),m.is("disabled",h.value),m.is("exceed",H.value),{[m.b("group")]:i.prepend||i.append,[m.m("prefix")]:i.prefix||o.prefixIcon,[m.m("suffix")]:i.suffix||o.suffixIcon||o.clearable||o.showPassword,[m.bm("suffix","password-clear")]:$.value&&j.value,[m.b("hidden")]:"hidden"===o.type},a.class]),c=yr(()=>[m.e("wrapper"),m.is("focus",A.value)]),{form:d,formItem:p}=df(),{inputId:f}=pf(o,{formItemContext:p}),v=vf(),h=hf(),m=Wa("input"),b=Wa("textarea"),y=kt(),x=kt(),C=St(!1),_=St(!1),S=St(),k=kt(o.inputStyle),E=yr(()=>y.value||x.value),{wrapperRef:T,isFocused:A,handleFocus:O,handleBlur:M}=function(e,{disabled:t,beforeFocus:n,afterFocus:o,beforeBlur:l,afterBlur:r}={}){const a=ar(),{emit:s}=a,i=kt(),u=St(!1),c=e=>{const l=!!g(n)&&n(e);Ot(t)||u.value||l||(u.value=!0,s("focus",e),null==o||o())},d=e=>{var n;const o=!!g(l)&&l(e);Ot(t)||e.relatedTarget&&(null==(n=i.value)?void 0:n.contains(e.relatedTarget))||o||(u.value=!1,s("blur",e),null==r||r())};return wn([i,()=>Ot(t)],([e,t])=>{e&&(t?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1"))}),hd(i,"focus",c,!0),hd(i,"blur",d,!0),hd(i,"click",n=>{var o,l;Ot(t)||gf(n.target)||(null==(o=i.value)?void 0:o.contains(document.activeElement))&&i.value!==document.activeElement||null==(l=e.value)||l.focus()},!0),{isFocused:u,wrapperRef:i,handleFocus:c,handleBlur:d}}(E,{disabled:h,afterBlur(){var e;o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"blur").catch(e=>{}))}}),R=yr(()=>{var e;return null!=(e=null==d?void 0:d.statusIcon)&&e}),L=yr(()=>(null==p?void 0:p.validateState)||""),P=yr(()=>L.value&&qp[L.value]),N=yr(()=>_.value?Vp:_p),I=yr(()=>[a.style]),B=yr(()=>[o.inputStyle,k.value,{resize:o.resize}]),F=yr(()=>Vc(o.modelValue)?"":String(o.modelValue)),$=yr(()=>o.clearable&&!h.value&&!o.readonly&&!!F.value&&(A.value||C.value)),j=yr(()=>o.showPassword&&!h.value&&!!F.value),D=yr(()=>o.showWordLimit&&!!o.maxlength&&("text"===o.type||"textarea"===o.type)&&!h.value&&!o.readonly&&!o.showPassword),z=yr(()=>F.value.length),H=yr(()=>!!D.value&&z.value>Number(o.maxlength)),W=yr(()=>!!i.suffix||!!o.suffixIcon||$.value||o.showPassword||D.value||!!L.value&&R.value),U=yr(()=>!!Object.keys(o.modelModifiers).length),[K,G]=function(e){let t;return[function(){if(null==e.value)return;const{selectionStart:n,selectionEnd:o,value:l}=e.value;if(null==n||null==o)return;const r=l.slice(0,Math.max(0,n)),a=l.slice(Math.max(0,o));t={selectionStart:n,selectionEnd:o,value:l,beforeTxt:r,afterTxt:a}},function(){if(null==e.value||null==t)return;const{value:n}=e.value,{beforeTxt:o,afterTxt:l,selectionStart:r}=t;if(null==o||null==l||null==r)return;let a=n.length;if(n.endsWith(l))a=n.length-l.length;else if(n.startsWith(o))a=o.length;else{const e=o[r-1],t=n.indexOf(e,r-1);-1!==t&&(a=t+1)}e.value.setSelectionRange(a,a)}]}(y);bd(x,e=>{if(X(),!D.value||"both"!==o.resize&&"horizontal"!==o.resize)return;const t=e[0],{width:n}=t.contentRect;S.value={right:`calc(100% - ${n+22-10}px)`}});const Y=()=>{const{type:e,autosize:t}=o;if(ld&&"textarea"===e&&x.value)if(t){const e=w(t)?t.minRows:void 0,n=w(t)?t.maxRows:void 0,o=Zp(x.value,e,n);k.value={overflowY:"hidden",...o},tn(()=>{x.value.offsetHeight,k.value=o})}else k.value={minHeight:Zp(x.value).minHeight}},X=(e=>{let t=!1;return()=>{var n;!t&&o.autosize&&(null===(null==(n=x.value)?void 0:n.offsetParent)||(setTimeout(e),t=!0))}})(Y),J=()=>{const e=E.value,t=o.formatter?o.formatter(F.value):F.value;e&&e.value!==t&&"file"!==o.type&&(e.value=t)},Q=e=>{const{trim:t,number:n}=o.modelModifiers;return t&&(e=e.trim()),n&&(e=`${Xp(e)}`),o.formatter&&o.parser&&(e=o.parser(e)),e},ee=async e=>{if(ne.value)return;const{lazy:t}=o.modelModifiers;let{value:n}=e.target;t?l(Qd,n):(n=Q(n),String(n)!==F.value?(K(),l(Zd,n),l(Qd,n),await tn(),(o.formatter&&o.parser||!U.value)&&J(),G()):o.formatter&&J())},te=async e=>{let{value:t}=e.target;t=Q(t),o.modelModifiers.lazy&&l(Zd,t),l(Jd,t,e),await tn(),J()},{isComposing:ne,handleCompositionStart:oe,handleCompositionUpdate:le,handleCompositionEnd:re}=function({afterComposition:e,emit:t}){const n=St(!1),o=e=>{var o;null==t||t("compositionupdate",e);const l=null==(o=e.target)?void 0:o.value,r=l[l.length-1]||"";n.value=!(e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e))(r)},l=o=>{null==t||t("compositionend",o),n.value&&(n.value=!1,tn(()=>e(o)))};return{isComposing:n,handleComposition:e=>{"compositionend"===e.type?l(e):o(e)},handleCompositionStart:e=>{null==t||t("compositionstart",e),n.value=!0},handleCompositionUpdate:o,handleCompositionEnd:l}}({emit:l,afterComposition:ee}),ae=()=>{_.value=!_.value},se=e=>{C.value=!1,l("mouseleave",e)},ie=e=>{C.value=!0,l("mouseenter",e)},ue=e=>{l("keydown",e)},ce=()=>{l(Zd,""),l(Jd,""),l("clear"),l(Qd,"")};return wn(()=>o.modelValue,()=>{var e;tn(()=>Y()),o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"change").catch(e=>{}))}),wn(F,e=>{if(!E.value)return;const{trim:t,number:n}=o.modelModifiers,l=E.value.value,r=!n&&"number"!==o.type||/^0\d/.test(l)?l:`${Xp(l)}`;r!==e&&(document.activeElement===E.value&&"range"!==E.value.type&&t&&r.trim()===e||J())}),wn(()=>o.type,async()=>{await tn(),J(),Y()}),co(()=>{!o.formatter&&o.parser,J(),tn(Y)}),t({input:y,textarea:x,ref:E,textareaStyle:B,autosize:Ft(o,"autosize"),isComposing:ne,focus:()=>{var e;return null==(e=E.value)?void 0:e.focus()},blur:()=>{var e;return null==(e=E.value)?void 0:e.blur()},select:()=>{var e;null==(e=E.value)||e.select()},clear:ce,resizeTextarea:Y}),(e,t)=>(Fl(),Dl("div",{class:q([u.value,{[Ot(m).bm("group","append")]:e.$slots.append,[Ot(m).bm("group","prepend")]:e.$slots.prepend}]),style:V(I.value),onMouseenter:ie,onMouseleave:se},[Zl(" input "),"textarea"!==e.type?(Fl(),Dl(Rl,{key:0},[Zl(" prepend slot "),e.$slots.prepend?(Fl(),Dl("div",{key:0,class:q(Ot(m).be("group","prepend"))},[Ao(e.$slots,"prepend")],2)):Zl("v-if",!0),Kl("div",{ref_key:"wrapperRef",ref:T,class:q(c.value)},[Zl(" prefix slot "),e.$slots.prefix||e.prefixIcon?(Fl(),Dl("span",{key:0,class:q(Ot(m).e("prefix"))},[Kl("span",{class:q(Ot(m).e("prefix-inner"))},[Ao(e.$slots,"prefix"),e.prefixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.prefixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0),Kl("input",tr({id:Ot(f),ref_key:"input",ref:y,class:Ot(m).e("inner")},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,type:e.showPassword?_.value?"text":"password":e.type,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.ariaLabel,placeholder:e.placeholder,style:e.inputStyle,form:e.form,autofocus:e.autofocus,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:t[0]||(t[0]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[1]||(t[1]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[2]||(t[2]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onChange:te,onKeydown:ue}),null,16,wf),Zl(" suffix slot "),W.value?(Fl(),Dl("span",{key:1,class:q(Ot(m).e("suffix"))},[Kl("span",{class:q(Ot(m).e("suffix-inner"))},[$.value&&j.value&&D.value?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Ao(e.$slots,"suffix"),e.suffixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.suffixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],64)),$.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(m).e("icon"),Ot(m).e("clear")]),onMousedown:Ra(Ot(r),["prevent"]),onClick:ce},{default:pn(()=>[(Fl(),zl(_o(e.clearIcon)))]),_:1},8,["class","onMousedown"])):Zl("v-if",!0),j.value?(Fl(),zl(Ot(ip),{key:2,class:q([Ot(m).e("icon"),Ot(m).e("password")]),onClick:ae,onMousedown:Ra(Ot(r),["prevent"]),onMouseup:Ra(Ot(r),["prevent"])},{default:pn(()=>[(Fl(),zl(_o(N.value)))]),_:1},8,["class","onMousedown","onMouseup"])):Zl("v-if",!0),D.value?(Fl(),Dl("span",{key:3,class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},[Kl("span",{class:q(Ot(m).e("count-inner"))},Z(z.value)+" / "+Z(e.maxlength),3)],2)):Zl("v-if",!0),L.value&&P.value&&R.value?(Fl(),zl(Ot(ip),{key:4,class:q([Ot(m).e("icon"),Ot(m).e("validateIcon"),Ot(m).is("loading","validating"===L.value)])},{default:pn(()=>[(Fl(),zl(_o(P.value)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0)],2),Zl(" append slot "),e.$slots.append?(Fl(),Dl("div",{key:1,class:q(Ot(m).be("group","append"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)],64)):(Fl(),Dl(Rl,{key:1},[Zl(" textarea "),Kl("textarea",tr({id:Ot(f),ref_key:"textarea",ref:x,class:[Ot(b).e("inner"),Ot(m).is("focus",Ot(A))]},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,tabindex:e.tabindex,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,style:B.value,"aria-label":e.ariaLabel,placeholder:e.placeholder,form:e.form,autofocus:e.autofocus,rows:e.rows,role:e.containerRole,onCompositionstart:t[3]||(t[3]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[4]||(t[4]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[5]||(t[5]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onFocus:t[6]||(t[6]=(...e)=>Ot(O)&&Ot(O)(...e)),onBlur:t[7]||(t[7]=(...e)=>Ot(M)&&Ot(M)(...e)),onChange:te,onKeydown:ue}),null,16,xf),D.value?(Fl(),Dl("span",{key:0,style:V(S.value),class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},Z(z.value)+" / "+Z(e.maxlength),7)):Zl("v-if",!0)],64))],38))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]])),_f={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Sf=Symbol("scrollbarContextKey"),kf=Nd({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean});var Ef=Kd(Xn({__name:"thumb",props:kf,setup(e){const t=e,n=mn(Sf),o=Wa("scrollbar");n||xd("Thumb","can not inject scrollbar context");const l=St(),r=St(),a=St({}),s=St(!1);let i=!1,u=!1,c=0,d=0,p=ld?document.onselectstart:null;const f=yr(()=>_f[t.vertical?"vertical":"horizontal"]),v=yr(()=>(({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}))({size:t.size,move:t.move,bar:f.value})),h=yr(()=>l.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/r.value[f.value.offset]),m=e=>{var t;if(e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button))return;null==(t=window.getSelection())||t.removeAllRanges(),b(e);const n=e.currentTarget;n&&(a.value[f.value.axis]=n[f.value.offset]-(e[f.value.client]-n.getBoundingClientRect()[f.value.direction]))},g=e=>{if(!r.value||!l.value||!n.wrapElement)return;const t=100*(Math.abs(e.target.getBoundingClientRect()[f.value.direction]-e[f.value.client])-r.value[f.value.offset]/2)*h.value/l.value[f.value.offset];n.wrapElement[f.value.scroll]=t*n.wrapElement[f.value.scrollSize]/100},b=e=>{e.stopImmediatePropagation(),i=!0,c=n.wrapElement.scrollHeight,d=n.wrapElement.scrollWidth,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),p=document.onselectstart,document.onselectstart=()=>!1},y=e=>{if(!l.value||!r.value)return;if(!1===i)return;const t=a.value[f.value.axis];if(!t)return;const o=100*(-1*(l.value.getBoundingClientRect()[f.value.direction]-e[f.value.client])-(r.value[f.value.offset]-t))*h.value/l.value[f.value.offset];"scrollLeft"===f.value.scroll?n.wrapElement[f.value.scroll]=o*d/100:n.wrapElement[f.value.scroll]=o*c/100},w=()=>{i=!1,a.value[f.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),x(),u&&(s.value=!1)};vo(()=>{x(),document.removeEventListener("mouseup",w)});const x=()=>{document.onselectstart!==p&&(document.onselectstart=p)};return hd(Ft(n,"scrollbarElement"),"mousemove",()=>{u=!1,s.value=!!t.size}),hd(Ft(n,"scrollbarElement"),"mouseleave",()=>{u=!0,s.value=i}),(e,t)=>(Fl(),zl(Nr,{name:Ot(o).b("fade"),persisted:""},{default:pn(()=>[fn(Kl("div",{ref_key:"instance",ref:l,class:q([Ot(o).e("bar"),Ot(o).is(f.value.key)]),onMousedown:g,onClick:t[0]||(t[0]=Ra(()=>{},["stop"]))},[Kl("div",{ref_key:"thumb",ref:r,class:q(Ot(o).e("thumb")),style:V(v.value),onMousedown:m},null,38)],34),[[Xr,e.always||s.value]])]),_:1},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]),Tf=Kd(Xn({__name:"bar",props:Nd({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),setup(e,{expose:t}){const n=e,o=mn(Sf),l=St(0),r=St(0),a=St(""),s=St(""),i=St(1),u=St(1);return t({handleScroll:e=>{if(e){const t=e.offsetHeight-4,n=e.offsetWidth-4;r.value=100*e.scrollTop/t*i.value,l.value=100*e.scrollLeft/n*u.value}},update:()=>{const e=null==o?void 0:o.wrapElement;if(!e)return;const t=e.offsetHeight-4,l=e.offsetWidth-4,r=t**2/e.scrollHeight,c=l**2/e.scrollWidth,d=Math.max(r,n.minSize),p=Math.max(c,n.minSize);i.value=r/(t-r)/(d/(t-d)),u.value=c/(l-c)/(p/(l-p)),s.value=d+4(Fl(),Dl(Rl,null,[Gl(Ef,{move:l.value,ratio:u.value,size:a.value,always:e.always},null,8,["move","ratio","size","always"]),Gl(Ef,{move:r.value,ratio:i.value,size:s.value,vertical:"",always:e.always},null,8,["move","ratio","size","always"])],64))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const Af=Nd({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:[String,Object,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Qp(["ariaLabel","ariaOrientation"])}),Of=["tabindex"],Mf=Gd(Kd(Xn({name:"ElScrollbar",__name:"scrollbar",props:Af,emits:{"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Jc)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=Wa("scrollbar");let a,s,i,u=0,c=0,d="";const p={bottom:!1,top:!1,right:!1,left:!1},f=St(),v=St(),h=St(),m=St(),g=yr(()=>{const e={},t=ap(o.height),n=ap(o.maxHeight);return t&&(e.height=t),n&&(e.maxHeight=n),[o.wrapStyle,e]}),b=yr(()=>[o.wrapClass,r.e("wrap"),{[r.em("wrap","hidden-default")]:!o.native}]),y=yr(()=>[r.e("view"),o.viewClass]),x={top:"bottom",bottom:"top",left:"right",right:"left"},C=()=>{var e;if(v.value){null==(e=m.value)||e.handleScroll(v.value);const t=u,n=c;u=v.value.scrollTop,c=v.value.scrollLeft;const r={bottom:u+v.value.clientHeight>=v.value.scrollHeight-o.distance,top:u<=o.distance&&0!==t,right:c+v.value.clientWidth>=v.value.scrollWidth-o.distance&&n!==c,left:c<=o.distance&&0!==n};if(l("scroll",{scrollTop:u,scrollLeft:c}),t!==u&&(d=u>t?"bottom":"top"),n!==c&&(d=c>n?"right":"left"),o.distance>0){if((e=>{var t;return null!=(t=p[e])&&t})(d))return;(e=>{const t=x[d];if(!t)return;const n=e[d],o=e[t];n&&!p[d]&&(p[d]=!0),!o&&p[t]&&(p[t]=!1)})(r)}r[d]&&l("end-reached",d)}},_=()=>{var e;null==(e=m.value)||e.update(),p[d]=!1};return wn(()=>o.noresize,e=>{e?(null==a||a(),null==s||s(),null==i||i()):(({stop:a}=bd(h,_)),({stop:s}=bd(v,_)),i=hd("resize",_))},{immediate:!0}),wn(()=>[o.maxHeight,o.height],()=>{o.native||tn(()=>{var e;_(),v.value&&(null==(e=m.value)||e.handleScroll(v.value))})}),hn(Sf,pt({scrollbarElement:f,wrapElement:v})),oo(()=>{v.value&&(v.value.scrollTop=u,v.value.scrollLeft=c)}),co(()=>{o.native||tn(()=>{_()})}),fo(()=>_()),t({wrapRef:v,update:_,scrollTo:function(e,t){w(e)?v.value.scrollTo(e):Jc(e)&&Jc(t)&&v.value.scrollTo(e,t)},setScrollTop:e=>{Jc(e)&&(v.value.scrollTop=e)},setScrollLeft:e=>{Jc(e)&&(v.value.scrollLeft=e)},handleScroll:C}),(e,t)=>(Fl(),Dl("div",{ref_key:"scrollbarRef",ref:f,class:q(Ot(r).b())},[Kl("div",{ref_key:"wrapRef",ref:v,class:q(b.value),style:V(g.value),tabindex:e.tabindex,onScroll:C},[(Fl(),zl(_o(e.tag),{id:e.id,ref_key:"resizeRef",ref:h,class:q(y.value),style:V(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,Of),e.native?Zl("v-if",!0):(Fl(),zl(Tf,{key:0,ref_key:"barRef",ref:m,always:e.always,"min-size":e.minSize},null,8,["always","min-size"]))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]])),Rf=Symbol("popper"),Lf=Symbol("popperContent"),Pf=Nd({role:{type:String,values:["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],default:"tooltip"}});var Nf=Kd(Xn({name:"ElPopper",inheritAttrs:!1,__name:"popper",props:Pf,setup(e,{expose:t}){const n=e,o={triggerRef:St(),popperInstanceRef:St(),contentRef:St(),referenceRef:St(),role:yr(()=>n.role)};return t(o),hn(Rf,o),(e,t)=>Ao(e.$slots,"default")}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]),If=Kd(Xn({name:"ElPopperArrow",inheritAttrs:!1,__name:"arrow",setup(e,{expose:t}){const n=Wa("popper"),{arrowRef:o,arrowStyle:l}=mn(Lf,void 0);return vo(()=>{o.value=void 0}),t({arrowRef:o}),(e,t)=>(Fl(),Dl("span",{ref_key:"arrowRef",ref:o,class:q(Ot(n).e("arrow")),style:V(Ot(l)),"data-popper-arrow":""},null,6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Bf=Nd({virtualRef:{type:Object},virtualTriggering:Boolean,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},onBlur:{type:Function},onContextmenu:{type:Function},id:String,open:Boolean}),Ff=Symbol("elForwardRef"),$f=Xn({name:"ElOnlyChild",setup(e,{slots:t,attrs:n}){var o;const l=mn(Ff),a=(s=null!=(o=null==l?void 0:l.setForwardRef)?o:r,{mounted(e){s(e)},updated(e){s(e)},unmounted(){s(null)}});var s;return()=>{var e;const o=null==(e=t.default)?void 0:e.call(t,n);if(!o)return null;const[l,r]=jf(o);return l?fn(Yl(l,n),[[a]]):null}}});function jf(e){if(!e)return[null,0];const t=e,n=t.filter(e=>e.type!==Pl).length;for(const o of t){if(w(o))switch(o.type){case Pl:continue;case Ll:case"svg":return[Vf(o),n];case Rl:return jf(o.children);default:return[o,n]}return[Vf(o),n]}return[null,0]}function Vf(e){const t=Wa("only-child");return Gl("span",{class:t.e("content")},[e])}var Df=Kd(Xn({name:"ElPopperTrigger",inheritAttrs:!1,__name:"trigger",props:Bf,setup(e,{expose:t}){const n=e,{role:o,triggerRef:l}=mn(Rf,void 0);var r;r=l,hn(Ff,{setForwardRef:e=>{r.value=e}});const a=yr(()=>i.value?n.id:void 0),s=yr(()=>{if(o&&"tooltip"===o.value)return n.open&&n.id?n.id:void 0}),i=yr(()=>{if(o&&"tooltip"!==o.value)return o.value}),u=yr(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return co(()=>{wn(()=>n.virtualRef,e=>{e&&(l.value=pd(e))},{immediate:!0}),wn(l,(e,t)=>{null==c||c(),c=void 0,Qc(t)&&d.forEach(e=>{const o=n[e];o&&t.removeEventListener(e.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(e))}),Qc(e)&&(d.forEach(t=>{const o=n[t];o&&e.addEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),gf(e)&&(c=wn([a,s,i,u],t=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((n,o)=>{Vc(t[o])?e.removeAttribute(n):e.setAttribute(n,t[o])})},{immediate:!0}))),Qc(t)&&gf(t)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(e=>t.removeAttribute(e))},{immediate:!0})}),vo(()=>{if(null==c||c(),c=void 0,l.value&&Qc(l.value)){const e=l.value;d.forEach(t=>{const o=n[t];o&&e.removeEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),l.value=void 0}}),t({triggerRef:l}),(e,t)=>e.virtualTriggering?Zl("v-if",!0):(Fl(),zl(Ot($f),tr({key:0},e.$attrs,{"aria-controls":a.value,"aria-describedby":s.value,"aria-expanded":u.value,"aria-haspopup":i.value}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const zf="focus-trap.focus-after-trapped",Hf="focus-trap.focus-after-released",Wf={cancelable:!0,bubbles:!1},qf={cancelable:!0,bubbles:!1},Uf="focusAfterTrapped",Kf="focusAfterReleased",Gf=Symbol("elFocusTrap"),Yf=St(),Xf=St(0),Zf=St(0);let Jf=0;const Qf=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0||e===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},ev=(e,t)=>{for(const n of e)if(!tv(n,t))return n},tv=(e,t)=>{if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1},nv=(e,t)=>{if(e){const n=document.activeElement;yf(e,{preventScroll:!0}),Zf.value=window.performance.now(),e!==n&&(e=>e instanceof HTMLInputElement&&"select"in e)(e)&&t&&e.select()}};function ov(e,t){const n=[...e],o=e.indexOf(t);return-1!==o&&n.splice(o,1),n}const lv=(()=>{let e=[];return{push:t=>{const n=e[0];n&&t!==n&&n.pause(),e=ov(e,t),e.unshift(t)},remove:t=>{var n,o;e=ov(e,t),null==(o=null==(n=e[0])?void 0:n.resume)||o.call(n)}}})(),rv=()=>{Yf.value="pointer",Xf.value=window.performance.now()},av=()=>{Yf.value="keyboard",Xf.value=window.performance.now()},sv=e=>new CustomEvent("focus-trap.focusout-prevented",{...qf,detail:e}),iv={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},uv=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const l=null==e?void 0:e(o);if(!1===n||!l)return null==t?void 0:t(o)},cv=e=>{if(e.code&&"Unidentified"!==e.code)return e.code;const t=dv(e);return t?Object.values(iv).includes(t)?t:" "===t?iv.space:"":""},dv=e=>{let t=e.key&&"Unidentified"!==e.key?e.key:"";if(!t&&"keyup"===e.type&&ld&&/android/i.test(window.navigator.userAgent)){const n=e.target;t=n.value.charAt(n.selectionStart-1)}return t};let pv=[];const fv=e=>{cv(e)===iv.esc&&pv.forEach(t=>t(e))};var vv=Kd(Xn({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Uf,Kf,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=St();let o,l;const{focusReason:r}=(co(()=>{0===Jf&&(document.addEventListener("mousedown",rv),document.addEventListener("touchstart",rv),document.addEventListener("keydown",av)),Jf++}),vo(()=>{Jf--,Jf<=0&&(document.removeEventListener("mousedown",rv),document.removeEventListener("touchstart",rv),document.removeEventListener("keydown",av))}),{focusReason:Yf,lastUserFocusTimestamp:Xf,lastAutomatedFocusTimestamp:Zf});var a;a=n=>{e.trapped&&!s.paused&&t("release-requested",n)},co(()=>{0===pv.length&&document.addEventListener("keydown",fv),ld&&pv.push(a)}),vo(()=>{pv=pv.filter(e=>e!==a),0===pv.length&&ld&&document.removeEventListener("keydown",fv)});const s={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=n=>{if(!e.loop&&!e.trapped)return;if(s.paused)return;const{altKey:o,ctrlKey:l,metaKey:a,currentTarget:i,shiftKey:u}=n,{loop:c}=e,d=cv(n)===iv.tab&&!o&&!l&&!a,p=document.activeElement;if(d&&p){const e=i,[o,l]=(e=>{const t=Qf(e);return[ev(t,e),ev(t.reverse(),e)]})(e);if(o&&l)if(u||p!==l){if(u&&[o,e].includes(p)){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(l,!0))}}else{const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(o,!0))}else if(p===e){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||n.preventDefault()}}};hn(Gf,{focusTrapRef:n,onKeydown:i}),wn(()=>e.focusTrapEl,e=>{e&&(n.value=e)},{immediate:!0}),wn([n],([e],[t])=>{e&&(e.addEventListener("keydown",i),e.addEventListener("focusin",d),e.addEventListener("focusout",p)),t&&(t.removeEventListener("keydown",i),t.removeEventListener("focusin",d),t.removeEventListener("focusout",p))});const u=e=>{t(Uf,e)},c=e=>t(Kf,e),d=r=>{const a=Ot(n);if(!a)return;const i=r.target,u=r.relatedTarget,c=i&&a.contains(i);e.trapped||u&&a.contains(u)||(o=u),c&&t("focusin",r),s.paused||e.trapped&&(c?l=i:nv(l,!0))},p=o=>{const a=Ot(n);if(!s.paused&&a)if(e.trapped){const n=o.relatedTarget;Vc(n)||a.contains(n)||setTimeout(()=>{if(!s.paused&&e.trapped){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||nv(l,!0)}},0)}else{const e=o.target;e&&a.contains(e)||t("focusout",o)}};async function f(){await tn();const t=Ot(n);if(t){lv.push(s);const n=t.contains(document.activeElement)?o:document.activeElement;if(o=n,!t.contains(n)){const o=new Event(zf,Wf);t.addEventListener(zf,u),t.dispatchEvent(o),o.defaultPrevented||tn(()=>{let o=e.focusStartEl;b(o)||(nv(o),document.activeElement!==o&&(o="first")),"first"===o&&((e,t=!1)=>{const n=document.activeElement;for(const o of e)if(nv(o,t),document.activeElement!==n)return})(Qf(t),!0),document.activeElement!==n&&"container"!==o||nv(t)})}}}function v(){const e=Ot(n);if(e){e.removeEventListener(zf,u);const t=new CustomEvent(Hf,{...Wf,detail:{focusReason:r.value}});e.addEventListener(Hf,c),e.dispatchEvent(t),t.defaultPrevented||"keyboard"!=r.value&&Xf.value>Zf.value&&!e.contains(document.activeElement)||nv(null!=o?o:document.body),e.removeEventListener(Hf,c),lv.remove(s),o=null,l=null}}return co(()=>{e.trapped&&f(),wn(()=>e.trapped,e=>{e?f():v()})}),vo(()=>{e.trapped&&v(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",p),n.value=void 0),o=null,l=null}),{onKeydown:i}}}),[["render",function(e,t,n,o,l,r){return Ao(e.$slots,"default",{handleKeydown:e.onKeydown})}],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]),hv="top",mv="bottom",gv="right",bv="left",yv="auto",wv=[hv,mv,gv,bv],xv="start",Cv="end",_v="viewport",Sv="popper",kv=wv.reduce(function(e,t){return e.concat([t+"-"+xv,t+"-"+Cv])},[]),Ev=[].concat(wv,[yv]).reduce(function(e,t){return e.concat([t,t+"-"+xv,t+"-"+Cv])},[]),Tv=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Av(e){return e?(e.nodeName||"").toLowerCase():null}function Ov(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Mv(e){return e instanceof Ov(e).Element||e instanceof Element}function Rv(e){return e instanceof Ov(e).HTMLElement||e instanceof HTMLElement}function Lv(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Ov(e).ShadowRoot||e instanceof ShadowRoot)}var Pv={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},l=t.elements[e];!Rv(l)||!Av(l)||(Object.assign(l.style,n),Object.keys(o).forEach(function(e){var t=o[e];!1===t?l.removeAttribute(e):l.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var o=t.elements[e],l=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});!Rv(o)||!Av(o)||(Object.assign(o.style,r),Object.keys(l).forEach(function(e){o.removeAttribute(e)}))})}},requires:["computeStyles"]};function Nv(e){return e.split("-")[0]}var Iv=Math.max,Bv=Math.min,Fv=Math.round;function $v(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,l=1;if(Rv(e)&&t){var r=e.offsetHeight,a=e.offsetWidth;a>0&&(o=Fv(n.width)/a||1),r>0&&(l=Fv(n.height)/r||1)}return{width:n.width/o,height:n.height/l,top:n.top/l,right:n.right/o,bottom:n.bottom/l,left:n.left/o,x:n.left/o,y:n.top/l}}function jv(e){var t=$v(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function Vv(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Lv(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Dv(e){return Ov(e).getComputedStyle(e)}function zv(e){return["table","td","th"].indexOf(Av(e))>=0}function Hv(e){return((Mv(e)?e.ownerDocument:e.document)||window.document).documentElement}function Wv(e){return"html"===Av(e)?e:e.assignedSlot||e.parentNode||(Lv(e)?e.host:null)||Hv(e)}function qv(e){return Rv(e)&&"fixed"!==Dv(e).position?e.offsetParent:null}function Uv(e){for(var t=Ov(e),n=qv(e);n&&zv(n)&&"static"===Dv(n).position;)n=qv(n);return n&&("html"===Av(n)||"body"===Av(n)&&"static"===Dv(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Rv(e)&&"fixed"===Dv(e).position)return null;var n=Wv(e);for(Lv(n)&&(n=n.host);Rv(n)&&["html","body"].indexOf(Av(n))<0;){var o=Dv(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function Kv(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Gv(e,t,n){return Iv(e,Bv(t,n))}function Yv(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Xv(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Zv={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,l=e.options,r=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Nv(n.placement),i=Kv(s),u=[bv,gv].indexOf(s)>=0?"height":"width";if(r&&a){var c=function(e,t){return Yv("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Xv(e,wv))}(l.padding,n),d=jv(r),p="y"===i?hv:bv,f="y"===i?mv:gv,v=n.rects.reference[u]+n.rects.reference[i]-a[i]-n.rects.popper[u],h=a[i]-n.rects.reference[i],m=Uv(r),g=m?"y"===i?m.clientHeight||0:m.clientWidth||0:0,b=v/2-h/2,y=c[p],w=g-d[u]-c[f],x=g/2-d[u]/2+b,C=Gv(y,x,w),_=i;n.modifiersData[o]=((t={})[_]=C,t.centerOffset=C-x,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"==typeof o&&!(o=t.elements.popper.querySelector(o))||!Vv(t.elements.popper,o)||(t.elements.arrow=o))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Jv(e){return e.split("-")[1]}var Qv={top:"auto",right:"auto",bottom:"auto",left:"auto"};function eh(e){var t,n=e.popper,o=e.popperRect,l=e.placement,r=e.variation,a=e.offsets,s=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=a.x,f=void 0===p?0:p,v=a.y,h=void 0===v?0:v,m="function"==typeof c?c({x:f,y:h}):{x:f,y:h};f=m.x,h=m.y;var g=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=bv,w=hv,x=window;if(u){var C=Uv(n),_="clientHeight",S="clientWidth";C===Ov(n)&&"static"!==Dv(C=Hv(n)).position&&"absolute"===s&&(_="scrollHeight",S="scrollWidth"),(l===hv||(l===bv||l===gv)&&r===Cv)&&(w=mv,h-=(d&&C===x&&x.visualViewport?x.visualViewport.height:C[_])-o.height,h*=i?1:-1),l!==bv&&(l!==hv&&l!==mv||r!==Cv)||(y=gv,f-=(d&&C===x&&x.visualViewport?x.visualViewport.width:C[S])-o.width,f*=i?1:-1)}var k,E=Object.assign({position:s},u&&Qv),T=!0===c?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:Fv(t*o)/o||0,y:Fv(n*o)/o||0}}({x:f,y:h}):{x:f,y:h};return f=T.x,h=T.y,i?Object.assign({},E,((k={})[w]=b?"0":"",k[y]=g?"0":"",k.transform=(x.devicePixelRatio||1)<=1?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",k)):Object.assign({},E,((t={})[w]=b?h+"px":"",t[y]=g?f+"px":"",t.transform="",t))}var th={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,l=void 0===o||o,r=n.adaptive,a=void 0===r||r,s=n.roundOffsets,i=void 0===s||s,u={placement:Nv(t.placement),variation:Jv(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:l,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,eh(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:i})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,eh(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},nh={passive:!0},oh={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,l=o.scroll,r=void 0===l||l,a=o.resize,s=void 0===a||a,i=Ov(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&u.forEach(function(e){e.addEventListener("scroll",n.update,nh)}),s&&i.addEventListener("resize",n.update,nh),function(){r&&u.forEach(function(e){e.removeEventListener("scroll",n.update,nh)}),s&&i.removeEventListener("resize",n.update,nh)}},data:{}},lh={left:"right",right:"left",bottom:"top",top:"bottom"};function rh(e){return e.replace(/left|right|bottom|top/g,function(e){return lh[e]})}var ah={start:"end",end:"start"};function sh(e){return e.replace(/start|end/g,function(e){return ah[e]})}function ih(e){var t=Ov(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function uh(e){return $v(Hv(e)).left+ih(e).scrollLeft}function ch(e){var t=Dv(e),n=t.overflow,o=t.overflowX,l=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+l+o)}function dh(e){return["html","body","#document"].indexOf(Av(e))>=0?e.ownerDocument.body:Rv(e)&&ch(e)?e:dh(Wv(e))}function ph(e,t){var n;void 0===t&&(t=[]);var o=dh(e),l=o===(null==(n=e.ownerDocument)?void 0:n.body),r=Ov(o),a=l?[r].concat(r.visualViewport||[],ch(o)?o:[]):o,s=t.concat(a);return l?s:s.concat(ph(Wv(a)))}function fh(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function vh(e,t){return t===_v?fh(function(e){var t=Ov(e),n=Hv(e),o=t.visualViewport,l=n.clientWidth,r=n.clientHeight,a=0,s=0;return o&&(l=o.width,r=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=o.offsetLeft,s=o.offsetTop)),{width:l,height:r,x:a+uh(e),y:s}}(e)):Mv(t)?function(e){var t=$v(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):fh(function(e){var t,n=Hv(e),o=ih(e),l=null==(t=e.ownerDocument)?void 0:t.body,r=Iv(n.scrollWidth,n.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),a=Iv(n.scrollHeight,n.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),s=-o.scrollLeft+uh(e),i=-o.scrollTop;return"rtl"===Dv(l||n).direction&&(s+=Iv(n.clientWidth,l?l.clientWidth:0)-r),{width:r,height:a,x:s,y:i}}(Hv(e)))}function hh(e,t,n){var o="clippingParents"===t?function(e){var t=ph(Wv(e)),n=["absolute","fixed"].indexOf(Dv(e).position)>=0&&Rv(e)?Uv(e):e;return Mv(n)?t.filter(function(e){return Mv(e)&&Vv(e,n)&&"body"!==Av(e)}):[]}(e):[].concat(t),l=[].concat(o,[n]),r=l[0],a=l.reduce(function(t,n){var o=vh(e,n);return t.top=Iv(o.top,t.top),t.right=Bv(o.right,t.right),t.bottom=Bv(o.bottom,t.bottom),t.left=Iv(o.left,t.left),t},vh(e,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mh(e){var t,n=e.reference,o=e.element,l=e.placement,r=l?Nv(l):null,a=l?Jv(l):null,s=n.x+n.width/2-o.width/2,i=n.y+n.height/2-o.height/2;switch(r){case hv:t={x:s,y:n.y-o.height};break;case mv:t={x:s,y:n.y+n.height};break;case gv:t={x:n.x+n.width,y:i};break;case bv:t={x:n.x-o.width,y:i};break;default:t={x:n.x,y:n.y}}var u=r?Kv(r):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case xv:t[u]=t[u]-(n[c]/2-o[c]/2);break;case Cv:t[u]=t[u]+(n[c]/2-o[c]/2)}}return t}function gh(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=void 0===o?e.placement:o,r=n.boundary,a=void 0===r?"clippingParents":r,s=n.rootBoundary,i=void 0===s?_v:s,u=n.elementContext,c=void 0===u?Sv:u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,v=void 0===f?0:f,h=Yv("number"!=typeof v?v:Xv(v,wv)),m=c===Sv?"reference":Sv,g=e.rects.popper,b=e.elements[p?m:c],y=hh(Mv(b)?b:b.contextElement||Hv(e.elements.popper),a,i),w=$v(e.elements.reference),x=mh({reference:w,element:g,placement:l}),C=fh(Object.assign({},g,x)),_=c===Sv?C:w,S={top:y.top-_.top+h.top,bottom:_.bottom-y.bottom+h.bottom,left:y.left-_.left+h.left,right:_.right-y.right+h.right},k=e.modifiersData.offset;if(c===Sv&&k){var E=k[l];Object.keys(S).forEach(function(e){var t=[gv,mv].indexOf(e)>=0?1:-1,n=[hv,mv].indexOf(e)>=0?"y":"x";S[e]+=E[n]*t})}return S}var bh={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0===a||a,i=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,v=void 0===f||f,h=n.allowedAutoPlacements,m=t.options.placement,g=Nv(m),b=i||(g!==m&&v?function(e){if(Nv(e)===yv)return[];var t=rh(e);return[sh(e),t,sh(t)]}(m):[rh(m)]),y=[m].concat(b).reduce(function(e,n){return e.concat(Nv(n)===yv?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=n.boundary,r=n.rootBoundary,a=n.padding,s=n.flipVariations,i=n.allowedAutoPlacements,u=void 0===i?Ev:i,c=Jv(o),d=c?s?kv:kv.filter(function(e){return Jv(e)===c}):wv,p=d.filter(function(e){return u.indexOf(e)>=0});0===p.length&&(p=d);var f=p.reduce(function(t,n){return t[n]=gh(e,{placement:n,boundary:l,rootBoundary:r,padding:a})[Nv(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:h}):n)},[]),w=t.rects.reference,x=t.rects.popper,C=new Map,_=!0,S=y[0],k=0;k=0,M=O?"width":"height",R=gh(t,{placement:E,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),L=O?A?gv:bv:A?mv:hv;w[M]>x[M]&&(L=rh(L));var P=rh(L),N=[];if(r&&N.push(R[T]<=0),s&&N.push(R[L]<=0,R[P]<=0),N.every(function(e){return e})){S=E,_=!1;break}C.set(E,N)}if(_)for(var I=function(e){var t=y.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return S=t,"break"},B=v?3:1;B>0&&"break"!==I(B);B--);t.placement!==S&&(t.modifiersData[o]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function yh(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function wh(e){return[hv,gv,mv,bv].some(function(t){return e[t]>=0})}var xh={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,l=t.rects.popper,r=t.modifiersData.preventOverflow,a=gh(t,{elementContext:"reference"}),s=gh(t,{altBoundary:!0}),i=yh(a,o),u=yh(s,l,r),c=wh(i),d=wh(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}},Ch={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.offset,r=void 0===l?[0,0]:l,a=Ev.reduce(function(e,n){return e[n]=function(e,t,n){var o=Nv(e),l=[bv,hv].indexOf(o)>=0?-1:1,r="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=r[0],s=r[1];return a=a||0,s=(s||0)*l,[bv,gv].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,r),e},{}),s=a[t.placement],i=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=a}},_h={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=mh({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}},Sh={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0!==a&&a,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,v=n.tetherOffset,h=void 0===v?0:v,m=gh(t,{boundary:i,rootBoundary:u,padding:d,altBoundary:c}),g=Nv(t.placement),b=Jv(t.placement),y=!b,w=Kv(g),x=function(e){return"x"===e?"y":"x"}(w),C=t.modifiersData.popperOffsets,_=t.rects.reference,S=t.rects.popper,k="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,E="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(C){if(r){var O,M="y"===w?hv:bv,R="y"===w?mv:gv,L="y"===w?"height":"width",P=C[w],N=P+m[M],I=P-m[R],B=f?-S[L]/2:0,F=b===xv?_[L]:S[L],$=b===xv?-S[L]:-_[L],j=t.elements.arrow,V=f&&j?jv(j):{width:0,height:0},D=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=D[M],H=D[R],W=Gv(0,_[L],V[L]),q=y?_[L]/2-B-W-z-E.mainAxis:F-W-z-E.mainAxis,U=y?-_[L]/2+B+W+H+E.mainAxis:$+W+H+E.mainAxis,K=t.elements.arrow&&Uv(t.elements.arrow),G=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Y=null!=(O=null==T?void 0:T[w])?O:0,X=P+U-Y,Z=Gv(f?Bv(N,P+q-Y-G):N,P,f?Iv(I,X):I);C[w]=Z,A[w]=Z-P}if(s){var J,Q="x"===w?hv:bv,ee="x"===w?mv:gv,te=C[x],ne="y"===x?"height":"width",oe=te+m[Q],le=te-m[ee],re=-1!==[hv,bv].indexOf(g),ae=null!=(J=null==T?void 0:T[x])?J:0,se=re?oe:te-_[ne]-S[ne]-ae+E.altAxis,ie=re?te+_[ne]+S[ne]-ae-E.altAxis:le,ue=f&&re?function(e,t,n){var o=Gv(e,t,n);return o>n?n:o}(se,te,ie):Gv(f?se:oe,te,f?ie:le);C[x]=ue,A[x]=ue-te}t.modifiersData[o]=A}},requiresIfExists:["offset"]};function kh(e,t,n){void 0===n&&(n=!1);var o=Rv(t),l=Rv(t)&&function(e){var t=e.getBoundingClientRect(),n=Fv(t.width)/e.offsetWidth||1,o=Fv(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),r=Hv(t),a=$v(e,l),s={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(o||!o&&!n)&&(("body"!==Av(t)||ch(r))&&(s=function(e){return e!==Ov(e)&&Rv(e)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(e):ih(e)}(t)),Rv(t)?((i=$v(t,!0)).x+=t.clientLeft,i.y+=t.clientTop):r&&(i.x=uh(r))),{x:a.left+s.scrollLeft-i.x,y:a.top+s.scrollTop-i.y,width:a.width,height:a.height}}function Eh(e){var t=new Map,n=new Set,o=[];function l(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var o=t.get(e);o&&l(o)}}),o.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||l(e)}),o}function Th(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}var Ah={placement:"bottom",modifiers:[],strategy:"absolute"};function Oh(){for(var e=arguments.length,t=new Array(e),n=0;n({})},strategy:{type:String,values:["fixed","absolute"],default:"absolute"}}),Nh=Nd({...Ph,...Lh,id:String,style:{type:[String,Array,Object]},className:{type:[String,Array,Object]},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:[String,Array,Object]},popperStyle:{type:[String,Array,Object]},referenceEl:{type:Object},triggerTargetEl:{type:Object},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Qp(["ariaLabel"]),loop:Boolean}),Ih=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:l}=e,r={placement:n,strategy:o,...l,modifiers:[...Bh(e),...t]};return function(e,t){t&&(e.modifiers=[...e.modifiers,...null!=t?t:[]])}(r,null==l?void 0:l.modifiers),r};function Bh(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,null!=t?t:12]}},{name:"preventOverflow",options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}const Fh=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:e})=>{const t=function(e){const t=Object.keys(e.elements),n=Fc(t.map(t=>[t,e.styles[t]||{}])),o=Fc(t.map(t=>[t,e.attributes[t]]));return{styles:n,attributes:o}}(e);Object.assign(a.value,t)},requires:["computeStyles"]},l=yr(()=>{const{onFirstUpdate:e,placement:t,strategy:l,modifiers:r}=Ot(n);return{onFirstUpdate:e,placement:t||"bottom",strategy:l||"absolute",modifiers:[...r||[],o,{name:"applyStyles",enabled:!1}]}}),r=kt(),a=St({styles:{popper:{position:Ot(l).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{r.value&&(r.value.destroy(),r.value=void 0)};return wn(l,e=>{const t=Ot(r);t&&t.setOptions(e)},{deep:!0}),wn([e,t],([e,t])=>{s(),e&&t&&(r.value=Rh(e,t,Ot(l)))}),vo(()=>{s()}),{state:yr(()=>{var e;return{...(null==(e=Ot(r))?void 0:e.state)||{}}}),styles:yr(()=>Ot(a).styles),attributes:yr(()=>Ot(a).attributes),update:()=>{var e;return null==(e=Ot(r))?void 0:e.update()},forceUpdate:()=>{var e;return null==(e=Ot(r))?void 0:e.forceUpdate()},instanceRef:yr(()=>Ot(r))}},$h=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:l}=mn(Rf,void 0),r=St(),a=yr(()=>e.arrowOffset),s=yr(()=>({name:"eventListeners",enabled:!!e.visible})),i=yr(()=>{var e;const t=Ot(r),n=null!=(e=Ot(a))?e:0;return{name:"arrow",enabled:(o=t,!(void 0===o)),options:{element:t,padding:n}};var o}),u=yr(()=>({onFirstUpdate:()=>{v()},...Ih(e,[Ot(i),Ot(s)])})),c=yr(()=>(e=>{if(ld)return pd(e)})(e.referenceEl)||Ot(o)),{attributes:d,state:p,styles:f,update:v,forceUpdate:h,instanceRef:m}=Fh(c,n,u);return wn(m,e=>t.value=e,{flush:"sync"}),co(()=>{wn(()=>{var e,t;return null==(t=null==(e=Ot(c))?void 0:e.getBoundingClientRect)?void 0:t.call(e)},()=>{v()})}),vo(()=>{t.value=void 0}),{attributes:d,arrowRef:r,contentRef:n,instanceRef:m,state:p,styles:f,role:l,forceUpdate:h,update:v}};var jh=Kd(Xn({name:"ElPopperContent",__name:"content",props:Nh,emits:{mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},setup(e,{expose:t,emit:n}){const o=n,l=e,{focusStartRef:a,trapped:s,onFocusAfterReleased:i,onFocusAfterTrapped:u,onFocusInTrap:c,onFocusoutPrevented:d,onReleaseRequested:p}=((e,t)=>{const n=St(!1),o=St();return vo(()=>{o.value=void 0}),{focusStartRef:o,trapped:n,onFocusAfterReleased:e=>{var n;"pointer"!==(null==(n=e.detail)?void 0:n.focusReason)&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:t=>{e.visible&&!n.value&&(t.target&&(o.value=t.target),n.value=!0)},onFocusoutPrevented:t=>{e.trapping||("pointer"===t.detail.focusReason&&t.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}})(l,o),{attributes:f,arrowRef:v,contentRef:h,styles:m,instanceRef:g,role:b,update:y}=$h(l),{ariaModal:w,arrowStyle:x,contentAttrs:C,contentClass:_,contentStyle:S,updateZIndex:k}=((e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:l}=Ed(),r=Wa("popper"),a=yr(()=>Ot(t).popper),s=St(Jc(e.zIndex)?e.zIndex:l()),i=yr(()=>[r.b(),r.is("pure",e.pure),r.is(e.effect),e.popperClass]),u=yr(()=>[{zIndex:Ot(s)},Ot(n).popper,e.popperStyle||{}]);return{ariaModal:yr(()=>"dialog"===o.value?"false":void 0),arrowStyle:yr(()=>Ot(n).arrow||{}),contentAttrs:a,contentClass:i,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=Jc(e.zIndex)?e.zIndex:l()}}})(l,{styles:m,attributes:f,role:b}),E=mn(cf,void 0);let T;hn(Lf,{arrowStyle:x,arrowRef:v}),E&&hn(cf,{...E,addInputId:r,removeInputId:r});const A=(e=!0)=>{y(),e&&k()},O=()=>{A(!1),l.visible&&l.focusOnShow?s.value=!0:!1===l.visible&&(s.value=!1)};return co(()=>{wn(()=>l.triggerTargetEl,(e,t)=>{null==T||T(),T=void 0;const n=Ot(e||h.value),o=Ot(t||h.value);Qc(n)&&(T=wn([b,()=>l.ariaLabel,w,()=>l.id],e=>{["role","aria-label","aria-modal","id"].forEach((t,o)=>{Vc(e[o])?n.removeAttribute(t):n.setAttribute(t,e[o])})},{immediate:!0})),o!==n&&Qc(o)&&["role","aria-label","aria-modal","id"].forEach(e=>{o.removeAttribute(e)})},{immediate:!0}),wn(()=>l.visible,O,{immediate:!0})}),vo(()=>{null==T||T(),T=void 0,h.value=void 0}),t({popperContentRef:h,popperInstanceRef:g,updatePopper:A,contentStyle:S}),(e,t)=>(Fl(),Dl("div",tr({ref_key:"contentRef",ref:h},Ot(C),{style:Ot(S),class:Ot(_),tabindex:"-1",onMouseenter:t[0]||(t[0]=t=>e.$emit("mouseenter",t)),onMouseleave:t[1]||(t[1]=t=>e.$emit("mouseleave",t))}),[Gl(Ot(vv),{loop:e.loop,trapped:Ot(s),"trap-on-focus-in":!0,"focus-trap-el":Ot(h),"focus-start-el":Ot(a),onFocusAfterTrapped:Ot(u),onFocusAfterReleased:Ot(i),onFocusin:Ot(c),onFocusoutPrevented:Ot(d),onReleaseRequested:Ot(p)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["loop","trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const Vh=Gd(Nf),Dh=Symbol("elTooltip");function zh(){let e;const t=()=>window.clearTimeout(e);return nd(()=>t()),{registerTimeout:(n,o)=>{t(),e=window.setTimeout(n,o)},cancelTimeout:t}}const Hh=Nd({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),Wh=Nd({...Hh,...Nh,appendTo:{type:Ud.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:Boolean,default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Qp(["ariaLabel"])}),qh=Nd({...Bf,disabled:Boolean,trigger:{type:[String,Array],default:"hover"},triggerKeys:{type:Array,default:()=>[iv.enter,iv.numpadEnter,iv.space]},focusOnTarget:Boolean}),Uh=Pd({type:Boolean,default:null}),Kh=Pd({type:Function}),{useModelToggleProps:Gh,useModelToggleEmits:Yh,useModelToggle:Xh}=(e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t];return{useModelToggle:({indicator:o,toggleReason:l,shouldHideWhenRouteChanges:r,shouldProceed:a,onShow:s,onHide:i})=>{const u=ar(),{emit:c}=u,d=u.props,p=yr(()=>g(d[n])),f=yr(()=>null===d[e]),v=e=>{!0!==o.value&&(o.value=!0,l&&(l.value=e),g(s)&&s(e))},h=e=>{!1!==o.value&&(o.value=!1,l&&(l.value=e),g(i)&&i(e))},m=e=>{if(!0===d.disabled||g(a)&&!a())return;const n=p.value&&ld;n&&c(t,!0),!f.value&&n||v(e)},b=e=>{if(!0===d.disabled||!ld)return;const n=p.value&&ld;n&&c(t,!1),!f.value&&n||h(e)},y=e=>{Zc(e)&&(d.disabled&&e?p.value&&c(t,!1):o.value!==e&&(e?v():h()))};return wn(()=>d[e],y),r&&void 0!==u.appContext.config.globalProperties.$route&&wn(()=>({...u.proxy.$route}),()=>{r.value&&o.value&&b()}),co(()=>{y(d[e])}),{hide:b,show:m,toggle:()=>{o.value?b():m()},hasUpdateHandler:p}},useModelToggleProps:{[e]:Uh,[n]:Kh},useModelToggleEmits:o}})("visible"),Zh=Nd({...Pf,...Gh,...Wh,...qh,...Lh,showArrow:{type:Boolean,default:!0}}),Jh=[...Yh,"before-show","before-hide","show","hide","open","close"],Qh=(e,t)=>f(e)?e.includes(t):e===t,em=(e,t,n)=>o=>{Qh(Ot(e),t)&&n(o)};var tm=Kd(Xn({name:"ElTooltipTrigger",__name:"trigger",props:qh,setup(e,{expose:t}){const n=e,o=Wa("tooltip"),{controlled:l,id:r,open:a,onOpen:s,onClose:i,onToggle:u}=mn(Dh,void 0),c=St(null),d=()=>{if(Ot(l)||n.disabled)return!0},p=Ft(n,"trigger"),f=uv(d,em(p,"hover",e=>{s(e),n.focusOnTarget&&e.target&&tn(()=>{yf(e.target,{preventScroll:!0})})})),v=uv(d,em(p,"hover",i)),h=uv(d,em(p,"click",e=>{0===e.button&&u(e)})),m=uv(d,em(p,"focus",s)),g=uv(d,em(p,"focus",i)),b=uv(d,em(p,"contextmenu",e=>{e.preventDefault(),u(e)})),y=uv(d,e=>{const t=cv(e);n.triggerKeys.includes(t)&&(e.preventDefault(),u(e))});return t({triggerRef:c}),(e,t)=>(Fl(),zl(Ot(Df),{id:Ot(r),"virtual-ref":e.virtualRef,open:Ot(a),"virtual-triggering":e.virtualTriggering,class:q(Ot(o).e("trigger")),onBlur:Ot(g),onClick:Ot(h),onContextmenu:Ot(b),onFocus:Ot(m),onMouseenter:Ot(f),onMouseleave:Ot(v),onKeydown:Ot(y)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const nm=()=>{const e=Ha(),t=af(),n=yr(()=>`${e.value}-popper-container-${t.prefix}`),o=yr(()=>`#${n.value}`);return{id:n,selector:o}},om=()=>{const{id:e,selector:t}=nm();return uo(()=>{ld&&(document.body.querySelector(t.value)||(e=>{const t=document.createElement("div");t.id=e,document.body.appendChild(t)})(e.value))}),{id:e,selector:t}},lm=Xn({name:"ElTooltipContent",inheritAttrs:!1,__name:"content",props:Wh,setup(e,{expose:t}){const n=e,{selector:o}=nm(),l=Wa("tooltip"),r=St(),a=td(()=>{var e;return null==(e=r.value)?void 0:e.popperContentRef});let s;const{controlled:i,id:u,open:c,trigger:d,onClose:p,onOpen:v,onShow:h,onHide:m,onBeforeShow:g,onBeforeHide:b}=mn(Dh,void 0),y=yr(()=>n.transition||`${l.namespace.value}-fade-in-linear`),w=yr(()=>n.persistent);vo(()=>{null==s||s()});const x=yr(()=>!!Ot(w)||Ot(c)),C=yr(()=>!n.disabled&&Ot(c)),_=yr(()=>n.appendTo||o.value),S=yr(()=>{var e;return null!=(e=n.style)?e:{}}),k=St(!0),E=()=>{m(),N()&&yf(document.body,{preventScroll:!0}),k.value=!0},T=()=>{if(Ot(i))return!0},A=uv(T,()=>{n.enterable&&Qh(Ot(d),"hover")&&v()}),O=uv(T,()=>{Qh(Ot(d),"hover")&&p()}),M=()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e),null==g||g()},R=()=>{null==b||b()},L=()=>{h()},P=()=>{n.virtualTriggering||p()},N=e=>{var t;const n=null==(t=r.value)?void 0:t.popperContentRef,o=(null==e?void 0:e.relatedTarget)||document.activeElement;return null==n?void 0:n.contains(o)};return wn(()=>Ot(c),e=>{e?(k.value=!1,s=function(e,t,n={}){const{window:o=fd,ignore:l=[],capture:r=!0,detectIframe:a=!1}=n;if(!o)return ad;sd&&!md&&(md=!0,Array.from(o.document.body.children).forEach(e=>e.addEventListener("click",ad)),o.document.documentElement.addEventListener("click",ad));let s=!0;const i=e=>l.some(t=>{if("string"==typeof t)return Array.from(o.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{const n=pd(t);return n&&(e.target===n||e.composedPath().includes(n))}}),u=[hd(o,"click",n=>{const o=pd(e);o&&o!==n.target&&!n.composedPath().includes(o)&&(0===n.detail&&(s=!i(n)),s?t(n):s=!0)},{passive:!0,capture:r}),hd(o,"pointerdown",t=>{const n=pd(e);s=!i(t)&&!(!n||t.composedPath().includes(n))},{passive:!0}),a&&hd(o,"blur",n=>{setTimeout(()=>{var l;const r=pd(e);"IFRAME"!==(null==(l=o.document.activeElement)?void 0:l.tagName)||(null==r?void 0:r.contains(o.document.activeElement))||t(n)},0)})].filter(Boolean);return()=>u.forEach(e=>e())}(a,()=>{var e;Ot(i)||(e=Ot(d),e||0===e?f(e)?e:[e]:[]).every(e=>"hover"!==e&&"focus"!==e)&&p()},{detectIframe:!0})):null==s||s()},{flush:"post"}),wn(()=>n.content,()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e)}),t({contentRef:r,isFocusInsideContent:N}),(e,t)=>(Fl(),zl(Ot(Xd),{disabled:!e.teleported,to:_.value},{default:pn(()=>[x.value||!k.value?(Fl(),zl(Nr,{key:0,name:y.value,appear:!w.value,onAfterLeave:E,onBeforeEnter:M,onAfterEnter:L,onBeforeLeave:R,persisted:""},{default:pn(()=>[fn(Gl(Ot(jh),tr({id:Ot(u),ref_key:"contentRef",ref:r},e.$attrs,{"aria-label":e.ariaLabel,"aria-hidden":k.value,"boundaries-padding":e.boundariesPadding,"fallback-placements":e.fallbackPlacements,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,"popper-class":e.popperClass,"popper-style":[e.popperStyle,S.value],"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,visible:C.value,"z-index":e.zIndex,loop:e.loop,onMouseenter:Ot(A),onMouseleave:Ot(O),onBlur:P,onClose:Ot(p)}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","loop","onMouseenter","onMouseleave","onClose"]),[[Xr,C.value]])]),_:3},8,["name","appear"])):Zl("v-if",!0)]),_:3},8,["disabled","to"]))}});var rm=Kd(lm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const am=["innerHTML"],sm={key:1},im=Gd(Kd(Xn({name:"ElTooltip",__name:"tooltip",props:Zh,emits:Jh,setup(e,{expose:t,emit:n}){const o=e,l=n;om();const r=Wa("tooltip"),a=sf(),s=St(),i=St(),u=()=>{var e;const t=Ot(s);t&&(null==(e=t.popperInstanceRef)||e.update())},c=St(!1),d=St(),{show:p,hide:f,hasUpdateHandler:v}=Xh({indicator:c,toggleReason:d}),{onOpen:h,onClose:m}=(({showAfter:e,hideAfter:t,autoClose:n,open:o,close:l})=>{const{registerTimeout:r}=zh(),{registerTimeout:a,cancelTimeout:s}=zh();return{onOpen:(t,s=Ot(e))=>{r(()=>{o(t);const e=Ot(n);Jc(e)&&e>0&&a(()=>{l(t)},e)},s)},onClose:(e,n=Ot(t))=>{s(),r(()=>{l(e)},n)}}})({showAfter:Ft(o,"showAfter"),hideAfter:Ft(o,"hideAfter"),autoClose:Ft(o,"autoClose"),open:p,close:f}),g=yr(()=>Zc(o.visible)&&!v.value),b=yr(()=>[r.b(),o.popperClass]);return hn(Dh,{controlled:g,id:a,open:vt(c),trigger:Ft(o,"trigger"),onOpen:h,onClose:m,onToggle:e=>{Ot(c)?m(e):h(e)},onShow:()=>{l("show",d.value)},onHide:()=>{l("hide",d.value)},onBeforeShow:()=>{l("before-show",d.value)},onBeforeHide:()=>{l("before-hide",d.value)},updatePopper:u}),wn(()=>o.disabled,e=>{e&&c.value&&(c.value=!1)}),lo(()=>c.value&&f()),vo(()=>{d.value=void 0}),t({popperRef:s,contentRef:i,isFocusInsideContent:e=>{var t;return null==(t=i.value)?void 0:t.isFocusInsideContent(e)},updatePopper:u,onOpen:h,onClose:m,hide:f}),(e,t)=>(Fl(),zl(Ot(Vh),{ref_key:"popperRef",ref:s,role:e.role},{default:pn(()=>[Gl(tm,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering,"focus-on-target":e.focusOnTarget},{default:pn(()=>[e.$slots.default?Ao(e.$slots,"default",{key:0}):Zl("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering","focus-on-target"]),Gl(rm,{ref_key:"contentRef",ref:i,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":b.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo,loop:e.loop},{default:pn(()=>[Ao(e.$slots,"content",{},()=>[e.rawContent?(Fl(),Dl("span",{key:0,innerHTML:e.content},null,8,am)):(Fl(),Dl("span",sm,Z(e.content),1))]),e.showArrow?(Fl(),zl(Ot(If),{key:0})):Zl("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to","loop"])]),_:3},8,["role"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]])),um=Gd(Kd(Xn({name:"ElBadge",__name:"badge",props:Nd({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:[String,Object,Array]},offset:{type:Array,default:[0,0]},badgeClass:{type:String}}),setup(e,{expose:t}){const n=e,o=Wa("badge"),l=yr(()=>n.isDot?"":Jc(n.value)&&Jc(n.max)&&n.max{var e;return[{backgroundColor:n.color,marginRight:ap(-n.offset[0]),marginTop:ap(n.offset[1])},null!=(e=n.badgeStyle)?e:{}]});return t({content:l}),(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Ao(e.$slots,"default"),Gl(Nr,{name:`${Ot(o).namespace.value}-zoom-in-center`,persisted:""},{default:pn(()=>[fn(Kl("sup",{class:q([Ot(o).e("content"),Ot(o).em("content",e.type),Ot(o).is("fixed",!!e.$slots.default),Ot(o).is("dot",e.isDot),Ot(o).is("hide-zero",!e.showZero&&0===e.value),e.badgeClass]),style:V(r.value)},[Ao(e.$slots,"content",{value:l.value},()=>[Xl(Z(l.value),1)])],6),[[Xr,!e.hidden&&(l.value||e.isDot||e.$slots.content)]])]),_:3},8,["name"])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]])),cm=Symbol("buttonGroupContextKey"),dm=({from:e,replacement:t,scope:n,version:o,ref:l,type:r="API"},a)=>{wn(()=>Ot(a),e=>{},{immediate:!0})},pm=["default","primary","success","warning","info","danger","text",""],fm=Nd({size:Bd,disabled:{type:Boolean,default:void 0},type:{type:String,values:pm,default:""},icon:{type:Dp},nativeType:{type:String,values:["button","submit","reset"],default:"button"},loading:Boolean,loadingIcon:{type:Dp,default:()=>Ep},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:[String,Object],default:"button"}}),vm={click:e=>e instanceof MouseEvent};function hm(e,t){(function(e){return"string"==typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function mm(e){return Math.min(1,Math.max(0,e))}function gm(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function bm(e){return e<=1?"".concat(100*Number(e),"%"):e}function ym(e){return 1===e.length?"0"+e:String(e)}function wm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=0,s=(o+l)/2;if(o===l)a=0,r=0;else{var i=o-l;switch(a=s>.5?i/(2-o-l):i/(o+l),o){case e:r=(t-n)/i+(t1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Cm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=o,s=o-l,i=0===o?0:s/o;if(o===l)r=0;else{switch(o){case e:r=(t-n)/s+(t>16,g:(65280&e)>>8,b:255&e}}(t)),this.originalInput=t;var l=Tm(t);this.originalInput=t,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(o=n.format)&&void 0!==o?o:l.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=l.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,o=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=gm(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return 0===this.toHsl().s},e.prototype.toHsv=function(){var e=Cm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=Cm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.v);return 1===this.a?"hsv(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsva(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var e=wm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=wm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.l);return 1===this.a?"hsl(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsla(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(e){return void 0===e&&(e=!1),_m(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return void 0===e&&(e=!1),"#"+this.toHex(e)},e.prototype.toHex8=function(e){return void 0===e&&(e=!1),function(e,t,n,o,l){var r,a=[ym(Math.round(e).toString(16)),ym(Math.round(t).toString(16)),ym(Math.round(n).toString(16)),ym((r=o,Math.round(255*parseFloat(r)).toString(16)))];return l&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return void 0===e&&(e=!1),"#"+this.toHex8(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return 1===this.a?"rgb(".concat(e,", ").concat(t,", ").concat(n,")"):"rgba(".concat(e,", ").concat(t,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var e=function(e){return"".concat(Math.round(100*hm(e,255)),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(100*hm(e,255))};return 1===this.a?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+_m(this.r,this.g,this.b,!1),t=0,n=Object.entries(Em);t=0;return t||!o||!e.startsWith("hex")&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this.a?this.toName():this.toRgbString()},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=mm(n.l),new e(n)},e.prototype.brighten=function(t){void 0===t&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-t/100*255))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-t/100*255))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-t/100*255))),new e(n)},e.prototype.darken=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=mm(n.l),new e(n)},e.prototype.tint=function(e){return void 0===e&&(e=10),this.mix("white",e)},e.prototype.shade=function(e){return void 0===e&&(e=10),this.mix("black",e)},e.prototype.desaturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=mm(n.s),new e(n)},e.prototype.saturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=mm(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){void 0===n&&(n=50);var o=this.toRgb(),l=new e(t).toRgb(),r=n/100;return new e({r:(l.r-o.r)*r+o.r,g:(l.g-o.g)*r+o.g,b:(l.b-o.b)*r+o.b,a:(l.a-o.a)*r+o.a})},e.prototype.analogous=function(t,n){void 0===t&&(t=6),void 0===n&&(n=30);var o=this.toHsl(),l=360/n,r=[this];for(o.h=(o.h-(l*t>>1)+720)%360;--t;)o.h=(o.h+l)%360,r.push(new e(o));return r},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var n=this.toHsv(),o=n.h,l=n.s,r=n.v,a=[],s=1/t;t--;)a.push(new e({h:o,s:l,v:r})),r=(r+s)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb();return new e({r:o.r+(n.r-o.r)*n.a,g:o.g+(n.g-o.g)*n.a,b:o.b+(n.b-o.b)*n.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,l=[this],r=360/t,a=1;a{let o={},l=e.color;if(l){const r=l.match(/var\((.*?)\)/);r&&(l=window.getComputedStyle(window.document.documentElement).getPropertyValue(r[1]));const a=new Pm(l),s=e.dark?a.tint(20).toString():Nm(a,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?Nm(a,90):a.tint(90).toString(),"text-color":l,"border-color":e.dark?Nm(a,50):a.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":l,"hover-border-color":l,"active-bg-color":s,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":s}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?Nm(a,90):a.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?Nm(a,50):a.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?Nm(a,80):a.tint(80).toString());else{const r=e.dark?Nm(a,30):a.tint(30).toString(),i=a.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":l,"text-color":i,"border-color":l,"hover-bg-color":r,"hover-text-color":i,"hover-border-color":r,"active-bg-color":s,"active-border-color":s}),t.value){const t=e.dark?Nm(a,50):a.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=t,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=t}}}return o})}(o),a=Wa("button"),{_ref:s,_size:i,_type:u,_disabled:c,_props:d,_plain:p,_round:f,_text:v,shouldAddSpace:h,handleClick:m}=((e,t)=>{dm({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},yr(()=>"text"===e.type));const n=mn(cm,void 0),o=zd("button"),{form:l}=df(),r=vf(yr(()=>null==n?void 0:n.size)),a=hf(),s=St(),i=No(),u=yr(()=>{var t;return e.type||(null==n?void 0:n.type)||(null==(t=o.value)?void 0:t.type)||""}),c=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.autoInsertSpace)?n:null==(t=o.value)?void 0:t.autoInsertSpace)&&l}),d=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.plain)?n:null==(t=o.value)?void 0:t.plain)&&l}),p=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.round)?n:null==(t=o.value)?void 0:t.round)&&l}),f=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.text)?n:null==(t=o.value)?void 0:t.text)&&l}),v=yr(()=>"button"===e.tag?{ariaDisabled:a.value||e.loading,disabled:a.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=yr(()=>{var e;const t=null==(e=i.default)?void 0:e.call(i);if(c.value&&1===(null==t?void 0:t.length)){const e=t[0];if((null==e?void 0:e.type)===Ll){const t=e.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(t.trim())}}return!1});return{_disabled:a,_size:r,_type:u,_ref:s,_props:v,_plain:d,_round:p,_text:f,shouldAddSpace:h,handleClick:n=>{a.value||e.loading?n.stopPropagation():("reset"===e.nativeType&&(null==l||l.resetFields()),t("click",n))}}})(o,l),g=yr(()=>[a.b(),a.m(u.value),a.m(i.value),a.is("disabled",c.value),a.is("loading",o.loading),a.is("plain",p.value),a.is("round",f.value),a.is("circle",o.circle),a.is("text",v.value),a.is("link",o.link),a.is("has-bg",o.bg)]);return t({ref:s,size:i,type:u,disabled:c,shouldAddSpace:h}),(e,t)=>(Fl(),zl(_o(e.tag),tr({ref_key:"_ref",ref:s},Ot(d),{class:g.value,style:Ot(r),onClick:Ot(m)}),{default:pn(()=>[e.loading?(Fl(),Dl(Rl,{key:0},[e.$slots.loading?Ao(e.$slots,"loading",{key:0}):(Fl(),zl(Ot(ip),{key:1,class:q(Ot(a).is("loading"))},{default:pn(()=>[(Fl(),zl(_o(e.loadingIcon)))]),_:1},8,["class"]))],64)):e.icon||e.$slots.icon?(Fl(),zl(Ot(ip),{key:1},{default:pn(()=>[e.icon?(Fl(),zl(_o(e.icon),{key:0})):Ao(e.$slots,"icon",{key:1})]),_:3})):Zl("v-if",!0),e.$slots.default?(Fl(),Dl("span",{key:2,class:q({[Ot(a).em("text","expand")]:Ot(h)})},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)]),_:3},16,["class","style","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]),Bm=Kd(Xn({name:"ElButtonGroup",__name:"button-group",props:{size:fm.size,type:fm.type,direction:{type:String,values:["horizontal","vertical"],default:"horizontal"}},setup(e){const t=e;hn(cm,pt({size:Ft(t,"size"),type:Ft(t,"type")}));const n=Wa("button");return(e,o)=>(Fl(),Dl("div",{class:q([Ot(n).b("group"),Ot(n).bm("group",t.direction)])},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Fm=Gd(Im,{ButtonGroup:Bm});Yd(Bm);const $m=Gd(Kd(Xn({name:"ElCard",__name:"card",props:Nd({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:[String,Object,Array],default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),setup(e){const t=zd("card"),n=Wa("card");return(e,o)=>{var l;return Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).is(`${e.shadow||(null==(l=Ot(t))?void 0:l.shadow)||"always"}-shadow`)])},[e.$slots.header||e.header?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("header"),e.headerClass])},[Ao(e.$slots,"header",{},()=>[Xl(Z(e.header),1)])],2)):Zl("v-if",!0),Kl("div",{class:q([Ot(n).e("body"),e.bodyClass]),style:V(e.bodyStyle)},[Ao(e.$slots,"default")],6),e.$slots.footer||e.footer?(Fl(),Dl("div",{key:1,class:q([Ot(n).e("footer"),e.footerClass])},[Ao(e.$slots,"footer",{},()=>[Xl(Z(e.footer),1)])],2)):Zl("v-if",!0)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]));var jm=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(jm||{});const Vm=e=>{const t=f(e)?e:[e],n=[];return t.forEach(e=>{var t;f(e)?n.push(...Vm(e)):Hl(e)&&(null==(t=e.component)?void 0:t.subTree)?n.push(e,...Vm(e.component.subTree)):Hl(e)&&f(e.children)?n.push(...Vm(e.children)):Hl(e)&&2===e.shapeFlag?n.push(...Vm(e.type())):n.push(e)}),n},Dm=(e,t)=>{const n=kt({}),o=kt([]),l=new WeakMap,r=()=>{o.value=((e,t,n)=>Vm(e.subTree).filter(e=>{var n;return Hl(e)&&(null==(n=e.type)?void 0:n.name)===t&&!!e.component}).map(e=>e.component.uid).map(e=>n[e]).filter(e=>!!e))(e,t,n.value)},a=e=>e.render();return{children:o,addChild:e=>{n.value[e.uid]=e,At(n),co(()=>{const t=e.getVnode().el,o=t.parentNode;if(!l.has(o)){l.set(o,[]);const e=o.insertBefore.bind(o);o.insertBefore=(t,r)=>(l.get(o).some(e=>t===e||r===e)&&At(n),e(t,r))}l.get(o).push(t)})},removeChild:e=>{delete n.value[e.uid],At(n);const t=e.getVnode().el,o=t.parentNode,r=l.get(o),a=r.indexOf(t);r.splice(a,1)},ChildrenSorter:Xn({setup:(e,{slots:t})=>()=>(r(),t.default?wr(a,{render:t.default}):null)})}},zm={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:{type:Boolean,default:void 0},checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:Bd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},ariaLabel:String,...Qp(["ariaControls"])},Hm={[Zd]:e=>b(e)||Jc(e)||Zc(e),change:e=>b(e)||Jc(e)||Zc(e)},Wm=Symbol("checkboxGroupContextKey"),qm=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:l,isLabeledByFormItem:r})=>{const a=mn(Wm,void 0),{formItem:s}=df(),{emit:i}=ar();function u(t){var n,o,l,r;return[!0,e.trueValue,e.trueLabel].includes(t)?null==(o=null!=(n=e.trueValue)?n:e.trueLabel)||o:null!=(r=null!=(l=e.falseValue)?l:e.falseLabel)&&r}const c=yr(()=>(null==a?void 0:a.validateEvent)||e.validateEvent);return wn(()=>e.modelValue,()=>{c.value&&(null==s||s.validate("change").catch(e=>{}))}),{handleChange:function(e){if(n.value)return;const t=e.target;i(Jd,u(t.checked),e)},onClickRoot:async function(a){n.value||o.value||l.value||!r.value||a.composedPath().some(e=>"LABEL"===e.tagName)||(t.value=u([!1,e.falseValue,e.falseLabel].includes(t.value)),await tn(),function(e,t){i(Jd,u(e),t)}(t.value,a))}}},Um=(e,t)=>{const{formItem:n}=df(),{model:o,isGroup:l,isLimitExceeded:r}=(e=>{const t=St(!1),{emit:n}=ar(),o=mn(Wm,void 0),l=yr(()=>!1===Xc(o)),r=St(!1),a=yr({get(){var n,r;return l.value?null==(n=null==o?void 0:o.modelValue)?void 0:n.value:null!=(r=e.modelValue)?r:t.value},set(e){var s,i;l.value&&f(e)?(r.value=void 0!==(null==(s=null==o?void 0:o.max)?void 0:s.value)&&e.length>(null==o?void 0:o.max.value)&&e.length>a.value.length,!1===r.value&&(null==(i=null==o?void 0:o.changeEvent)||i.call(o,e))):(n(Zd,e),t.value=e)}});return{model:a,isGroup:l,isLimitExceeded:r}})(e),{isFocused:a,isChecked:s,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,actualValue:d}=((e,t,{model:n})=>{const o=mn(Wm,void 0),l=St(!1),r=yr(()=>ed(e.value)?e.label:e.value),a=yr(()=>{const t=n.value;return Zc(t)?t:f(t)?w(r.value)?t.map(wt).some(e=>jc(e,r.value)):t.map(wt).includes(r.value):null!=t?t===e.trueValue||t===e.trueLabel:!!t});return{checkboxButtonSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value}),{prop:!0}),isChecked:a,isFocused:l,checkboxSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value})),hasOwnLabel:yr(()=>!!t.default||!ed(r.value)),actualValue:r}})(e,t,{model:o}),{isDisabled:p}=(({model:e,isChecked:t})=>{const n=mn(Wm,void 0),o=mn(uf,void 0),l=yr(()=>{var o,l;const r=null==(o=null==n?void 0:n.max)?void 0:o.value,a=null==(l=null==n?void 0:n.min)?void 0:l.value;return!Xc(r)&&e.value.length>=r&&!t.value||!Xc(a)&&e.value.length<=a&&t.value});return{isDisabled:hf(yr(()=>{var e,t;return void 0===n?null!=(e=null==o?void 0:o.disabled)?e:l.value:(null==(t=n.disabled)?void 0:t.value)||l.value})),isLimitDisabled:l}})({model:o,isChecked:s}),{inputId:v,isLabeledByFormItem:h}=pf(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:l}),{handleChange:m,onClickRoot:g}=qm(e,{model:o,isLimitExceeded:r,hasOwnLabel:c,isDisabled:p,isLabeledByFormItem:h});var b,y;return e.checked&&(f(o.value)&&!o.value.includes(d.value)?o.value.push(d.value):o.value=null==(y=null!=(b=e.trueValue)?b:e.trueLabel)||y),dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>l.value&&ed(e.value))),dm({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.trueLabel)),dm({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.falseLabel)),{inputId:v,isLabeledByFormItem:h,isChecked:s,isDisabled:p,isFocused:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:o,actualValue:d,handleChange:m,onClickRoot:g}},Km=["id","indeterminate","name","tabindex","disabled"];var Gm=Kd(Xn({name:"ElCheckbox",__name:"checkbox",props:zm,emits:Hm,setup(e){const t=e,n=No(),{inputId:o,isLabeledByFormItem:l,isChecked:r,isDisabled:a,isFocused:s,checkboxSize:i,hasOwnLabel:u,model:c,actualValue:d,handleChange:p,onClickRoot:f}=Um(t,n),v=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:d.value}}),h=Wa("checkbox"),m=yr(()=>[h.b(),h.m(i.value),h.is("disabled",a.value),h.is("bordered",t.border),h.is("checked",r.value)]),g=yr(()=>[h.e("input"),h.is("disabled",a.value),h.is("checked",r.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(e,t)=>(Fl(),zl(_o(!Ot(u)&&Ot(l)?"span":"label"),{for:!Ot(u)&&Ot(l)?null:Ot(o),class:q(m.value),"aria-controls":e.indeterminate?e.ariaControls:null,"aria-checked":e.indeterminate?"mixed":void 0,"aria-label":e.ariaLabel,onClick:Ot(f)},{default:pn(()=>[Kl("span",{class:q(g.value)},[fn(Kl("input",tr({id:Ot(o),"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:Ot(h).e("original"),type:"checkbox",indeterminate:e.indeterminate,name:e.name,tabindex:e.tabindex,disabled:Ot(a)},v.value,{onChange:t[1]||(t[1]=(...e)=>Ot(p)&&Ot(p)(...e)),onFocus:t[2]||(t[2]=e=>s.value=!0),onBlur:t[3]||(t[3]=e=>s.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Km),[[Sa,Ot(c)]]),Kl("span",{class:q(Ot(h).e("inner"))},null,2)],2),Ot(u)?(Fl(),Dl("span",{key:0,class:q(Ot(h).e("label"))},[Ao(e.$slots,"default"),e.$slots.default?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.label),1)],64))],2)):Zl("v-if",!0)]),_:3},8,["for","class","aria-controls","aria-checked","aria-label","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const Ym=["name","tabindex","disabled"];var Xm=Kd(Xn({name:"ElCheckboxButton",__name:"checkbox-button",props:zm,emits:Hm,setup(e){const t=e,n=No(),{isFocused:o,isChecked:l,isDisabled:r,checkboxButtonSize:a,model:s,actualValue:i,handleChange:u}=Um(t,n),c=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:i.value}}),d=mn(Wm,void 0),p=Wa("checkbox"),f=yr(()=>{var e,t,n,o;const l=null!=(t=null==(e=null==d?void 0:d.fill)?void 0:e.value)?t:"";return{backgroundColor:l,borderColor:l,color:null!=(o=null==(n=null==d?void 0:d.textColor)?void 0:n.value)?o:"",boxShadow:l?`-1px 0 0 0 ${l}`:void 0}}),v=yr(()=>[p.b("button"),p.bm("button",a.value),p.is("disabled",r.value),p.is("checked",l.value),p.is("focus",o.value)]);return(e,t)=>(Fl(),Dl("label",{class:q(v.value)},[fn(Kl("input",tr({"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:Ot(p).be("button","original"),type:"checkbox",name:e.name,tabindex:e.tabindex,disabled:Ot(r)},c.value,{onChange:t[1]||(t[1]=(...e)=>Ot(u)&&Ot(u)(...e)),onFocus:t[2]||(t[2]=e=>o.value=!0),onBlur:t[3]||(t[3]=e=>o.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Ym),[[Sa,Ot(s)]]),e.$slots.default||e.label?(Fl(),Dl("span",{key:0,class:q(Ot(p).be("button","inner")),style:V(Ot(l)?f.value:void 0)},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],6)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const Zm=Nd({modelValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:void 0},min:Number,max:Number,size:Bd,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>Jm},type:{type:String,values:["checkbox","button"],default:"checkbox"},...Qp(["ariaLabel"])}),Jm={label:"label",value:"value",disabled:"disabled"},Qm=Xn({name:"ElCheckboxGroup",__name:"checkbox-group",props:Zm,emits:{[Zd]:e=>f(e),change:e=>f(e)},setup(e,{emit:t}){const n=e,o=t,l=Wa("checkbox"),r=hf(),{formItem:a}=df(),{inputId:s,isLabeledByFormItem:i}=pf(n,{formItemContext:a}),u=async e=>{o(Zd,e),await tn(),o(Jd,e)},c=yr({get:()=>n.modelValue,set(e){u(e)}}),d=yr(()=>({...Jm,...n.props})),p=yr(()=>"button"===n.type?Xm:Gm);return hn(Wm,{...Yc(Nt(n),["size","min","max","validateEvent","fill","textColor"]),disabled:r,modelValue:c,changeEvent:u}),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==a||a.validate("change").catch(e=>{}))}),(e,t)=>{var n;return Fl(),zl(_o(e.tag),{id:Ot(s),class:q(Ot(l).b("group")),role:"group","aria-label":Ot(i)?void 0:e.ariaLabel||"checkbox-group","aria-labelledby":Ot(i)?null==(n=Ot(a))?void 0:n.labelId:void 0},{default:pn(()=>[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var eg=Kd(Qm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const tg=Gd(Gm,{CheckboxButton:Xm,CheckboxGroup:eg});Yd(Xm);const ng=Yd(eg),og=Nd({modelValue:{type:[String,Number,Boolean],default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},label:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],default:void 0},name:{type:String,default:void 0}}),lg=Nd({...og,border:Boolean}),rg={[Zd]:e=>b(e)||Jc(e)||Zc(e),[Jd]:e=>b(e)||Jc(e)||Zc(e)},ag=Symbol("radioGroupKey"),sg=(e,t)=>{const n=St(),o=mn(ag,void 0),l=yr(()=>!!o),r=yr(()=>ed(e.value)?e.label:e.value),a=yr({get:()=>l.value?o.modelValue:e.modelValue,set(a){l.value?o.changeEvent(a):t&&t(Zd,a),n.value.checked=e.modelValue===r.value}}),s=vf(yr(()=>null==o?void 0:o.size)),i=hf(yr(()=>null==o?void 0:o.disabled)),u=St(!1),c=yr(()=>i.value||l.value&&a.value!==r.value?-1:0);return dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-radio",ref:"https://element-plus.org/en-US/component/radio.html"},yr(()=>l.value&&ed(e.value))),{radioRef:n,isGroup:l,radioGroup:o,focus:u,size:s,disabled:i,tabIndex:c,modelValue:a,actualValue:r}},ig=["value","name","disabled","checked"];var ug=Kd(Xn({name:"ElRadio",__name:"radio",props:lg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),{radioRef:r,radioGroup:a,focus:s,size:i,disabled:u,modelValue:c,actualValue:d}=sg(n,o);function p(){tn(()=>o(Jd,c.value))}return(e,t)=>{var n;return Fl(),Dl("label",{class:q([Ot(l).b(),Ot(l).is("disabled",Ot(u)),Ot(l).is("focus",Ot(s)),Ot(l).is("bordered",e.border),Ot(l).is("checked",Ot(c)===Ot(d)),Ot(l).m(Ot(i))])},[Kl("span",{class:q([Ot(l).e("input"),Ot(l).is("disabled",Ot(u)),Ot(l).is("checked",Ot(c)===Ot(d))])},[fn(Kl("input",{ref_key:"radioRef",ref:r,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:q(Ot(l).e("original")),value:Ot(d),name:e.name||(null==(n=Ot(a))?void 0:n.name),disabled:Ot(u),checked:Ot(c)===Ot(d),type:"radio",onFocus:t[1]||(t[1]=e=>s.value=!0),onBlur:t[2]||(t[2]=e=>s.value=!1),onChange:p,onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,ig),[[Ea,Ot(c)]]),Kl("span",{class:q(Ot(l).e("inner"))},null,2)],2),Kl("span",{class:q(Ot(l).e("label")),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],34)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);const cg=Nd({...og}),dg=["value","name","disabled"];var pg=Kd(Xn({name:"ElRadioButton",__name:"radio-button",props:cg,setup(e){const t=e,n=Wa("radio"),{radioRef:o,focus:l,size:r,disabled:a,modelValue:s,radioGroup:i,actualValue:u}=sg(t),c=yr(()=>({backgroundColor:(null==i?void 0:i.fill)||"",borderColor:(null==i?void 0:i.fill)||"",boxShadow:(null==i?void 0:i.fill)?`-1px 0 0 0 ${i.fill}`:"",color:(null==i?void 0:i.textColor)||""}));return(e,t)=>{var d;return Fl(),Dl("label",{class:q([Ot(n).b("button"),Ot(n).is("active",Ot(s)===Ot(u)),Ot(n).is("disabled",Ot(a)),Ot(n).is("focus",Ot(l)),Ot(n).bm("button",Ot(r))])},[fn(Kl("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:q(Ot(n).be("button","original-radio")),value:Ot(u),type:"radio",name:e.name||(null==(d=Ot(i))?void 0:d.name),disabled:Ot(a),onFocus:t[1]||(t[1]=e=>l.value=!0),onBlur:t[2]||(t[2]=e=>l.value=!1),onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,dg),[[Ea,Ot(s)]]),Kl("span",{class:q(Ot(n).be("button","inner")),style:V(Ot(s)===Ot(u)?c.value:{}),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],38)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue"]]);const fg=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},fill:{type:String,default:""},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>vg},type:{type:String,values:["radio","button"],default:"radio"},...Qp(["ariaLabel"])}),vg={label:"label",value:"value",disabled:"disabled"},hg=["id","aria-label","aria-labelledby"],mg=Xn({name:"ElRadioGroup",__name:"radio-group",props:fg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),r=sf(),a=St(),{formItem:s}=df(),{inputId:i,isLabeledByFormItem:u}=pf(n,{formItemContext:s});co(()=>{const e=a.value.querySelectorAll("[type=radio]"),t=e[0];!Array.from(e).some(e=>e.checked)&&t&&(t.tabIndex=0)});const c=yr(()=>n.name||r.value),d=yr(()=>({...vg,...n.props})),p=yr(()=>"button"===n.type?pg:ug);return hn(ag,pt({...Nt(n),changeEvent:e=>{o(Zd,e),tn(()=>o(Jd,e))},name:c})),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==s||s.validate("change").catch(e=>{}))}),(e,t)=>(Fl(),Dl("div",{id:Ot(i),ref_key:"radioGroupRef",ref:a,class:q(Ot(l).b("group")),role:"radiogroup","aria-label":Ot(u)?void 0:e.ariaLabel||"radio-group","aria-labelledby":Ot(u)?Ot(s).labelId:void 0},[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])],10,hg))}});var gg=Kd(mg,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue"]]);Gd(ug,{RadioButton:pg,RadioGroup:gg});const bg=Yd(gg),yg=Yd(pg),wg=Nd({type:{type:String,values:["primary","success","info","warning","danger"],default:"primary"},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:Id},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),xg=["aria-label"],Cg=["aria-label"],_g=Gd(Kd(Xn({name:"ElTag",__name:"tag",props:wg,emits:{close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},setup(e,{emit:t}){const n=e,o=t,l=vf(),{t:r}=Rd(),a=Wa("tag"),s=yr(()=>{const{type:e,hit:t,effect:o,closable:r,round:s}=n;return[a.b(),a.is("closable",r),a.m(e||"primary"),a.m(l.value),a.m(o),a.is("hit",t),a.is("round",s)]}),i=e=>{o("close",e)},u=e=>{o("click",e)},c=e=>{var t,n,o;(null==(o=null==(n=null==(t=null==e?void 0:e.component)?void 0:t.subTree)?void 0:n.component)?void 0:o.bum)&&(e.component.subTree.component.bum=null)};return(e,t)=>e.disableTransitions?(Fl(),Dl("span",{key:0,class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,xg)):Zl("v-if",!0)],6)):(Fl(),zl(Nr,{key:1,name:`${Ot(a).namespace.value}-zoom-in-center`,appear:"",onVnodeMounted:c},{default:pn(()=>[Kl("span",{class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,Cg)):Zl("v-if",!0)],6)]),_:3},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]])),Sg=new Map;if(ld){let e;document.addEventListener("mousedown",t=>e=t),document.addEventListener("mouseup",t=>{if(e){for(const n of Sg.values())for(const{documentHandler:o}of n)o(t,e);e=void 0}})}function kg(e,t){let n=[];return f(t.arg)?n=t.arg:Qc(t.arg)&&n.push(t.arg),function(o,l){const r=t.instance.popperRef,a=o.target,s=null==l?void 0:l.target,i=!t||!t.instance,u=!a||!s,c=e.contains(a)||e.contains(s),d=e===a,p=n.length&&n.some(e=>null==e?void 0:e.contains(a))||n.length&&n.includes(s),f=r&&(r.contains(a)||r.contains(s));i||u||c||d||p||f||t.value(o,l)}}const Eg={beforeMount(e,t){Sg.has(e)||Sg.set(e,[]),Sg.get(e).push({documentHandler:kg(e,t),bindingFn:t.value})},updated(e,t){Sg.has(e)||Sg.set(e,[]);const n=Sg.get(e),o=n.findIndex(e=>e.bindingFn===t.oldValue),l={documentHandler:kg(e,t),bindingFn:t.value};o>=0?n.splice(o,1,l):n.push(l)},unmounted(e){Sg.delete(e)}},Tg=Nd({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:[Number,Object],default:()=>({})},sm:{type:[Number,Object],default:()=>({})},md:{type:[Number,Object],default:()=>({})},lg:{type:[Number,Object],default:()=>({})},xl:{type:[Number,Object],default:()=>({})}}),Ag=Symbol("rowContextKey"),Og=Gd(Kd(Xn({name:"ElCol",__name:"col",props:Tg,setup(e){const t=e,{gutter:n}=mn(Ag,{gutter:yr(()=>0)}),o=Wa("col"),l=yr(()=>{const e={};return n.value&&(e.paddingLeft=e.paddingRight=n.value/2+"px"),e}),r=yr(()=>{const e=[];return["span","offset","pull","push"].forEach(n=>{const l=t[n];Jc(l)&&("span"===n?e.push(o.b(`${t[n]}`)):l>0&&e.push(o.b(`${n}-${t[n]}`)))}),["xs","sm","md","lg","xl"].forEach(n=>{Jc(t[n])?e.push(o.b(`${n}-${t[n]}`)):w(t[n])&&Object.entries(t[n]).forEach(([t,l])=>{e.push("span"!==t?o.b(`${n}-${t}-${l}`):o.b(`${n}-${l}`))})}),n.value&&e.push(o.is("guttered")),[o.b(),e]});return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]])),Mg=Gd(Kd(Xn({name:"ElCollapseTransition",__name:"collapse-transition",setup(e){const t=Wa("collapse-transition"),n=e=>{e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},o={beforeEnter(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height&&(e.dataset.elExistsHeight=e.style.height),e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){requestAnimationFrame(()=>{e.dataset.oldOverflow=e.style.overflow,e.dataset.elExistsHeight?e.style.maxHeight=e.dataset.elExistsHeight:0!==e.scrollHeight?e.style.maxHeight=`${e.scrollHeight}px`:e.style.maxHeight=0,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"})},afterEnter(e){e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow},enterCancelled(e){n(e)},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.maxHeight=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){n(e)},leaveCancelled(e){n(e)}};return(e,n)=>(Fl(),zl(Nr,tr({name:Ot(t).b()},function(e){const t={};for(const n in e)t[P(n)]=e[n];return t}(o)),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]])),Rg={placement:"top"},Lg=e=>{if(!e)return{onClick:r,onMousedown:r,onMouseup:r};let t=!1,n=!1;return{onClick:o=>{t&&n&&e(o),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}},Pg=Nd({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:[String,Array,Object]},zIndex:{type:[String,Number]}}),Ng=Xn({name:"ElOverlay",props:Pg,emits:{click:e=>e instanceof MouseEvent},setup(e,{slots:t,emit:n}){const o=Wa("overlay"),{onClick:l,onMousedown:r,onMouseup:a}=Lg(e.customMaskEvent?void 0:e=>{n("click",e)});return()=>e.mask?Gl("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:l,onMousedown:r,onMouseup:a},[Ao(t,"default")],jm.STYLE|jm.CLASS|jm.PROPS,["onClick","onMouseup","onMousedown"]):wr("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ao(t,"default")])}}),Ig=Symbol("dialogInjectionKey"),Bg="dialog-fade",Fg=Nd({center:Boolean,alignCenter:{type:Boolean,default:void 0},closeIcon:{type:Dp},draggable:{type:Boolean,default:void 0},overflow:{type:Boolean,default:void 0},fullscreen:Boolean,headerClass:String,bodyClass:String,footerClass:String,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),$g=(e,t,n,o)=>{const l={offsetX:0,offsetY:0},r=St(!1),a=(t,n)=>{if(e.value){const{offsetX:r,offsetY:a}=l,s=e.value.getBoundingClientRect(),i=s.left,u=s.top,c=s.width,d=s.height,p=document.documentElement.clientWidth,f=document.documentElement.clientHeight,v=-i+r,h=-u+a,m=p-i-c+r,g=f-u-(d{const t=e.clientX,n=e.clientY,{offsetX:o,offsetY:s}=l,i=e=>{r.value||(r.value=!0);const l=o+e.clientX-t,i=s+e.clientY-n;a(l,i)},u=()=>{r.value=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},i=()=>{t.value&&e.value&&(t.value.removeEventListener("mousedown",s),window.removeEventListener("resize",u))},u=()=>{const{offsetX:e,offsetY:t}=l;a(e,t)};return co(()=>{yn(()=>{n.value?t.value&&e.value&&(t.value.addEventListener("mousedown",s),window.addEventListener("resize",u)):i()})}),vo(()=>{i()}),{isDragging:r,resetPosition:()=>{l.offsetX=0,l.offsetY=0,e.value&&(e.value.style.transform="")},updatePosition:u}},jg=["aria-level"],Vg=["aria-label"],Dg=["id"];var zg=Kd(Xn({name:"ElDialogContent",__name:"dialog-content",props:Fg,emits:{close:()=>!0},setup(e,{expose:t}){const{t:n}=Rd(),{Close:o}=zp,l=e,{dialogRef:r,headerRef:a,bodyId:s,ns:i,style:u}=mn(Ig),{focusTrapRef:c}=mn(Gf),d=((...e)=>t=>{e.forEach(e=>{e.value=t})})(c,r),p=yr(()=>!!l.draggable),f=yr(()=>!!l.overflow),{resetPosition:v,updatePosition:h,isDragging:m}=$g(r,a,p,f),g=yr(()=>[i.b(),i.is("fullscreen",l.fullscreen),i.is("draggable",p.value),i.is("dragging",m.value),i.is("align-center",!!l.alignCenter),{[i.m("center")]:l.center}]);return t({resetPosition:v,updatePosition:h}),(e,t)=>(Fl(),Dl("div",{ref:Ot(d),class:q(g.value),style:V(Ot(u)),tabindex:"-1"},[Kl("header",{ref_key:"headerRef",ref:a,class:q([Ot(i).e("header"),e.headerClass,{"show-close":e.showClose}])},[Ao(e.$slots,"header",{},()=>[Kl("span",{role:"heading","aria-level":e.ariaLevel,class:q(Ot(i).e("title"))},Z(e.title),11,jg)]),e.showClose?(Fl(),Dl("button",{key:0,"aria-label":Ot(n)("el.dialog.close"),class:q(Ot(i).e("headerbtn")),type:"button",onClick:t[0]||(t[0]=t=>e.$emit("close"))},[Gl(Ot(ip),{class:q(Ot(i).e("close"))},{default:pn(()=>[(Fl(),zl(_o(e.closeIcon||Ot(o))))]),_:1},8,["class"])],10,Vg)):Zl("v-if",!0)],2),Kl("div",{id:Ot(s),class:q([Ot(i).e("body"),e.bodyClass])},[Ao(e.$slots,"default")],10,Dg),e.$slots.footer?(Fl(),Dl("footer",{key:0,class:q([Ot(i).e("footer"),e.footerClass])},[Ao(e.$slots,"footer")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);const Hg=Nd({...Fg,appendToBody:Boolean,appendTo:{type:Ud.to.type,default:"body"},beforeClose:{type:Function},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalPenetrable:Boolean,openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,headerClass:String,bodyClass:String,footerClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:Boolean,headerAriaLevel:{type:String,default:"2"},transition:{type:[String,Object],default:void 0}}),Wg=(e,t={})=>{_t(e)||xd("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||Wa("popup"),o=yr(()=>n.bm("parent","hidden"));let l=0,r=!1,a="0";const s=()=>{setTimeout(()=>{"undefined"!=typeof document&&r&&document&&(document.body.style.width=a,lp(document.body,o.value))},200)};wn(e,e=>{if(!e)return void s();r=!np(document.body,o.value),r&&(a=document.body.style.width,op(document.body,o.value)),l=(e=>{var t;if(!ld)return 0;if(void 0!==sp)return sp;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const l=document.createElement("div");l.style.width="100%",n.appendChild(l);const r=l.offsetWidth;return null==(t=n.parentNode)||t.removeChild(n),sp=o-r,sp})(n.namespace.value);const t=document.documentElement.clientHeight0&&(t||"scroll"===i)&&r&&(document.body.style.width=`calc(100% - ${l}px)`)}),le(()=>s())},qg=["aria-label","aria-labelledby","aria-describedby"],Ug=Xn({name:"ElDialog",inheritAttrs:!1,__name:"dialog",props:Hg,emits:{open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Zd]:e=>Zc(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},setup(e,{expose:t}){const n=e,o=No();dm({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},yr(()=>!!o.title));const l=Wa("dialog"),r=St(),a=St(),s=St(),{visible:i,titleId:u,bodyId:c,style:d,overlayDialogStyle:p,rendered:v,transitionConfig:h,zIndex:m,_draggable:b,_alignCenter:y,_overflow:x,handleClose:C,onModalClick:_,onOpenAutoFocus:S,onCloseAutoFocus:k,onCloseRequested:E,onFocusoutPrevented:T,closing:A}=((e,t)=>{var n;const o=ar().emit,{nextZIndex:l}=Ed();let r="";const a=sf(),s=sf(),i=St(!1),u=St(!1),c=St(!1),d=St(null!=(n=e.zIndex)?n:l()),p=St(!1);let v,h;const m=zd(),b=yr(()=>{var e,t;return null!=(t=null==(e=m.value)?void 0:e.namespace)?t:Va}),y=yr(()=>{var e;return null==(e=m.value)?void 0:e.dialog}),x=yr(()=>{const t={},n=`--${b.value}-dialog`;if(!e.fullscreen){e.top&&(t[`${n}-margin-top`]=e.top);const o=ap(e.width);o&&(t[`${n}-width`]=o)}return t}),C=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.draggable)?n:null==(t=y.value)?void 0:t.draggable)&&o&&!e.fullscreen}),_=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.alignCenter)?n:null==(t=y.value)?void 0:t.alignCenter)&&o}),S=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.overflow)?n:null==(t=y.value)?void 0:t.overflow)&&o}),k=yr(()=>_.value?{display:"flex"}:{}),E=yr(()=>{var t,n,o;const l=null!=(o=null!=(n=e.transition)?n:null==(t=y.value)?void 0:t.transition)?o:Bg,r={name:l,onAfterEnter:T,onBeforeLeave:O,onAfterLeave:A};if(w(l)){const e={...l},t=(e,t)=>n=>{f(e)?e.forEach(e=>{g(e)&&e(n)}):g(e)&&e(n),t()};return e.onAfterEnter=t(e.onAfterEnter,T),e.onBeforeLeave=t(e.onBeforeLeave,O),e.onAfterLeave=t(e.onAfterLeave,A),e.name||(e.name=Bg),e}return r});function T(){o("opened")}function A(){o("closed"),o(Zd,!1),e.destroyOnClose&&(c.value=!1),p.value=!1}function O(){p.value=!0,o("close")}function M(){null==h||h(),null==v||v(),e.openDelay&&e.openDelay>0?({stop:v}=dd(()=>P(),e.openDelay)):P()}function R(){null==v||v(),null==h||h(),e.closeDelay&&e.closeDelay>0?({stop:h}=dd(()=>N(),e.closeDelay)):N()}function L(){e.beforeClose?e.beforeClose(function(e){e||(u.value=!0,i.value=!1)}):R()}function P(){ld&&(i.value=!0)}function N(){i.value=!1}return e.lockScroll&&Wg(i),wn(()=>e.zIndex,()=>{var t;d.value=null!=(t=e.zIndex)?t:l()}),wn(()=>e.modelValue,n=>{var r;n?(u.value=!1,M(),c.value=!0,d.value=null!=(r=e.zIndex)?r:l(),tn(()=>{o("open"),t.value&&(t.value.parentElement.scrollTop=0,t.value.parentElement.scrollLeft=0,t.value.scrollTop=0)})):i.value&&R()}),wn(()=>e.fullscreen,e=>{t.value&&(e?(r=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=r)}),co(()=>{e.modelValue&&(i.value=!0,c.value=!0,M())}),{afterEnter:T,afterLeave:A,beforeLeave:O,handleClose:L,onModalClick:function(){e.closeOnClickModal&&L()},close:R,doClose:N,onOpenAutoFocus:function(){o("openAutoFocus")},onCloseAutoFocus:function(){o("closeAutoFocus")},onCloseRequested:function(){e.closeOnPressEscape&&L()},onFocusoutPrevented:function(e){var t;"pointer"===(null==(t=e.detail)?void 0:t.focusReason)&&e.preventDefault()},titleId:a,bodyId:s,closed:u,style:x,overlayDialogStyle:k,rendered:c,visible:i,zIndex:d,transitionConfig:E,_draggable:C,_alignCenter:_,_overflow:S,closing:p}})(n,r);hn(Ig,{dialogRef:r,headerRef:a,bodyId:c,ns:l,rendered:v,style:d});const O=Lg(_),M=yr(()=>n.modalPenetrable&&!n.modal&&!n.fullscreen);return t({visible:i,dialogContentRef:s,resetPosition:()=>{var e;null==(e=s.value)||e.resetPosition()},handleClose:C}),(e,t)=>(Fl(),zl(Ot(Xd),{to:e.appendTo,disabled:"body"===e.appendTo&&!e.appendToBody},{default:pn(()=>[Gl(Nr,tr(Ot(h),{persisted:""}),{default:pn(()=>{var n;return[fn(Gl(Ot(Ng),{"custom-mask-event":"",mask:e.modal,"overlay-class":[null!=(n=e.modalClass)?n:"",`${Ot(l).namespace.value}-modal-dialog`,Ot(l).is("penetrable",M.value)],"z-index":Ot(m)},{default:pn(()=>[Kl("div",{role:"dialog","aria-modal":"true","aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:Ot(u),"aria-describedby":Ot(c),class:q([`${Ot(l).namespace.value}-overlay-dialog`,Ot(l).is("closing",Ot(A))]),style:V(Ot(p)),onClick:t[0]||(t[0]=(...e)=>Ot(O).onClick&&Ot(O).onClick(...e)),onMousedown:t[1]||(t[1]=(...e)=>Ot(O).onMousedown&&Ot(O).onMousedown(...e)),onMouseup:t[2]||(t[2]=(...e)=>Ot(O).onMouseup&&Ot(O).onMouseup(...e))},[Gl(Ot(vv),{loop:"",trapped:Ot(i),"focus-start-el":"container",onFocusAfterTrapped:Ot(S),onFocusAfterReleased:Ot(k),onFocusoutPrevented:Ot(T),onReleaseRequested:Ot(E)},{default:pn(()=>[Ot(v)?(Fl(),zl(zg,tr({key:0,ref_key:"dialogContentRef",ref:s},e.$attrs,{center:e.center,"align-center":Ot(y),"close-icon":e.closeIcon,draggable:Ot(b),overflow:Ot(x),fullscreen:e.fullscreen,"header-class":e.headerClass,"body-class":e.bodyClass,"footer-class":e.footerClass,"show-close":e.showClose,title:e.title,"aria-level":e.headerAriaLevel,onClose:Ot(C)}),To({header:pn(()=>[e.$slots.title?Ao(e.$slots,"title",{key:1}):Ao(e.$slots,"header",{key:0,close:Ot(C),titleId:Ot(u),titleClass:Ot(l).e("title")})]),default:pn(()=>[Ao(e.$slots,"default")]),_:2},[e.$slots.footer?{name:"footer",fn:pn(()=>[Ao(e.$slots,"footer")]),key:"0"}:void 0]),1040,["center","align-center","close-icon","draggable","overflow","fullscreen","header-class","body-class","footer-class","show-close","title","aria-level","onClose"])):Zl("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,qg)]),_:3},8,["mask","overlay-class","z-index"]),[[Xr,Ot(i)]])]}),_:3},16)]),_:3},8,["to","disabled"]))}}),Kg=Gd(Kd(Ug,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]])),Gg=Gd(Kd(Xn({name:"ElDivider",__name:"divider",props:Nd({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:String,default:"solid"}}),setup(e){const t=e,n=Wa("divider"),o=yr(()=>n.cssVar({"border-style":t.borderStyle}));return(e,t)=>(Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).m(e.direction)]),style:V(o.value),role:"separator"},[e.$slots.default&&"vertical"!==e.direction?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("text"),Ot(n).is(e.contentPosition)])},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/divider/src/divider.vue"]])),Yg={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Xg=["id"],Zg=["stop-color"],Jg=["stop-color"],Qg=["id"],eb=["stop-color"],tb=["stop-color"],nb=["id"],ob={stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},lb={transform:"translate(-1268.000000, -535.000000)"},rb={transform:"translate(1268.000000, 535.000000)"},ab=["fill"],sb=["fill"],ib={transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},ub=["fill"],cb=["fill"],db=["fill"],pb=["fill"],fb=["fill"],vb={transform:"translate(53.000000, 45.000000)"},hb=["fill","xlink:href"],mb=["fill","mask"],gb=["fill"];var bb=Kd(Xn({name:"ImgEmpty",__name:"img-empty",setup(e){const t=Wa("empty"),n=sf();return(e,o)=>(Fl(),Dl("svg",Yg,[Kl("defs",null,[Kl("linearGradient",{id:`linearGradient-1-${Ot(n)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,Zg),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,Jg)],8,Xg),Kl("linearGradient",{id:`linearGradient-2-${Ot(n)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,eb),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,tb)],8,Qg),Kl("rect",{id:`path-3-${Ot(n)}`,x:"0",y:"0",width:"17",height:"36"},null,8,nb)]),Kl("g",ob,[Kl("g",lb,[Kl("g",rb,[Kl("path",{d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${Ot(t).cssVarBlockName("fill-color-3")})`},null,8,ab),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,sb),Kl("g",ib,[Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,ub),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,cb),Kl("rect",{fill:`url(#linearGradient-1-${Ot(n)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,db),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,pb)]),Kl("rect",{fill:`url(#linearGradient-2-${Ot(n)})`,x:"13",y:"45",width:"40",height:"36"},null,8,fb),Kl("g",vb,[Kl("use",{fill:`var(${Ot(t).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${Ot(n)}`},null,8,hb),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${Ot(n)})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,mb)]),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,gb)])])])]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/img-empty.vue"]]);const yb=Nd({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),wb=["src"],xb={key:1},Cb=Gd(Kd(Xn({name:"ElEmpty",__name:"empty",props:yb,setup(e){const t=e,{t:n}=Rd(),o=Wa("empty"),l=yr(()=>t.description||n("el.table.emptyText")),r=yr(()=>({width:ap(t.imageSize)}));return(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Kl("div",{class:q(Ot(o).e("image")),style:V(r.value)},[e.image?(Fl(),Dl("img",{key:0,src:e.image,ondragstart:"return false"},null,8,wb)):Ao(e.$slots,"image",{key:1},()=>[Gl(bb)])],6),Kl("div",{class:q(Ot(o).e("description"))},[e.$slots.description?Ao(e.$slots,"description",{key:0}):(Fl(),Dl("p",xb,Z(l.value),1))],2),e.$slots.default?(Fl(),Dl("div",{key:0,class:q(Ot(o).e("bottom"))},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/empty.vue"]])),_b=Nd({size:{type:String,values:Id},disabled:Boolean}),Sb=Nd({..._b,model:Object,rules:{type:Object},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean],default:!0}});function kb(){const e=St([]),t=yr(()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?`${t}px`:""});function n(n){const o=e.value.indexOf(n);return-1===o&&t.value,o}return{autoLabelWidth:t,registerLabelWidth:function(t,o){if(t&&o){const l=n(o);e.value.splice(l,1,t)}else t&&e.value.push(t)},deregisterLabelWidth:function(t){const o=n(t);o>-1&&e.value.splice(o,1)}}}const Eb=(e,t)=>{const n=uu(t).map(e=>f(e)?e.join("."):e);return n.length>0?e.filter(e=>e.propString&&n.includes(e.propString)):e};var Tb=Kd(Xn({name:"ElForm",__name:"form",props:Sb,emits:{validate:(e,t,n)=>(f(e)||b(e))&&Zc(t)&&b(n)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=St(),a=pt([]),s=vf(),i=Wa("form"),u=yr(()=>{const{labelPosition:e,inline:t}=o;return[i.b(),i.m(s.value||"default"),{[i.m(`label-${e}`)]:e,[i.m("inline")]:t}]}),c=e=>Eb(a,[e])[0],d=(e=[])=>{o.model&&Eb(a,e).forEach(e=>e.resetField())},p=(e=[])=>{Eb(a,e).forEach(e=>e.clearValidate())},f=yr(()=>!!o.model),v=async e=>m(void 0,e),h=async(e=[])=>{if(!f.value)return!1;const t=(e=>{if(0===a.length)return[];const t=Eb(a,e);return t.length?t:[]})(e);if(0===t.length)return!0;let n={};for(const l of t)try{await l.validate(""),"error"!==l.validateState||l.error||l.resetField()}catch(o){n={...n,...o}}return 0===Object.keys(n).length||Promise.reject(n)},m=async(e=[],t)=>{let n=!1;const l=!g(t);try{return n=await h(e),!0===n&&await(null==t?void 0:t(n)),n}catch(tT){if(tT instanceof Error)throw tT;const a=tT;if(o.scrollToError&&r.value){const e=r.value.querySelector(`.${i.b()}-item.is-error`);null==e||e.scrollIntoView(o.scrollIntoViewOptions)}return!n&&await(null==t?void 0:t(!1,a)),l&&Promise.reject(a)}};return wn(()=>o.rules,()=>{o.validateOnRuleChange&&v().catch(e=>{})},{deep:!0,flush:"post"}),hn(uf,pt({...Nt(o),emit:l,resetFields:d,clearValidate:p,validateField:m,getField:c,addField:e=>{a.push(e)},removeField:e=>{e.prop&&a.splice(a.indexOf(e),1)},...kb()})),t({validate:v,validateField:m,resetFields:d,clearValidate:p,scrollToField:e=>{var t;const n=c(e);n&&(null==(t=n.$el)||t.scrollIntoView(o.scrollIntoViewOptions))},getField:c,fields:a}),(e,t)=>(Fl(),Dl("form",{ref_key:"formRef",ref:r,class:q(u.value)},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Ab(){return Ab=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),o=1;o=r)return e;switch(e){case"%s":return String(n[l++]);case"%d":return Number(n[l++]);case"%j":try{return JSON.stringify(n[l++])}catch(t){return"[Circular]"}break;default:return e}}):e}function Bb(e,t){return null==e||!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e)}function Fb(e,t,n){var o=0,l=e.length;!function r(a){if(a&&a.length)n(a);else{var s=o;o+=1,s()\[\]\\.,;:\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,}))$/,qb=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Ub={integer:function(e){return Ub.number(e)&&parseInt(e,10)===e},float:function(e){return Ub.number(e)&&!Ub.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(tT){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!Ub.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(Wb)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(function(){if(zb)return zb;var e="[a-fA-F\\d:]",t=function(t){return t&&t.includeBoundaries?"(?:(?<=\\s|^)(?="+e+")|(?<="+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}",o="[a-fA-F\\d]{1,4}",l=("\n(?:\n(?:"+o+":){7}(?:"+o+"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:"+o+":){6}(?:"+n+"|:"+o+"|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:"+o+":){5}(?::"+n+"|(?::"+o+"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:"+o+":){4}(?:(?::"+o+"){0,1}:"+n+"|(?::"+o+"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:"+o+":){3}(?:(?::"+o+"){0,2}:"+n+"|(?::"+o+"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:"+o+":){2}(?:(?::"+o+"){0,3}:"+n+"|(?::"+o+"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:"+o+":){1}(?:(?::"+o+"){0,4}:"+n+"|(?::"+o+"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::"+o+"){0,5}:"+n+"|(?::"+o+"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),r=new RegExp("(?:^"+n+"$)|(?:^"+l+"$)"),a=new RegExp("^"+n+"$"),s=new RegExp("^"+l+"$"),i=function(e){return e&&e.exact?r:new RegExp("(?:"+t(e)+n+t(e)+")|(?:"+t(e)+l+t(e)+")","g")};i.v4=function(e){return e&&e.exact?a:new RegExp(""+t(e)+n+t(e),"g")},i.v6=function(e){return e&&e.exact?s:new RegExp(""+t(e)+l+t(e),"g")};var u=i.v4().source,c=i.v6().source;return zb=new RegExp("(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|"+u+"|"+c+'|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)',"i")}())},hex:function(e){return"string"==typeof e&&!!e.match(qb)}},Kb="enum",Gb={required:Hb,whitespace:function(e,t,n,o,l){(/^\s+$/.test(t)||""===t)&&o.push(Ib(l.messages.whitespace,e.fullField))},type:function(e,t,n,o,l){if(e.required&&void 0===t)Hb(e,t,n,o,l);else{var r=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(r)>-1?Ub[r](t)||o.push(Ib(l.messages.types[r],e.fullField,e.type)):r&&typeof t!==e.type&&o.push(Ib(l.messages.types[r],e.fullField,e.type))}},range:function(e,t,n,o,l){var r="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,i=t,u=null,c="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(c?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(i=t.length),d&&(i=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),r?i!==e.len&&o.push(Ib(l.messages[u].len,e.fullField,e.len)):a&&!s&&ie.max?o.push(Ib(l.messages[u].max,e.fullField,e.max)):a&&s&&(ie.max)&&o.push(Ib(l.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,n,o,l){e[Kb]=Array.isArray(e[Kb])?e[Kb]:[],-1===e[Kb].indexOf(t)&&o.push(Ib(l.messages[Kb],e.fullField,e[Kb].join(", ")))},pattern:function(e,t,n,o,l){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},Yb=function(e,t,n,o,l){var r=e.type,a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,r)&&!e.required)return n();Gb.required(e,t,o,a,l,r),Bb(t,r)||Gb.type(e,t,o,a,l)}n(a)},Xb={string:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l,"string"),Bb(t,"string")||(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l),Gb.pattern(e,t,o,r,l),!0===e.whitespace&&Gb.whitespace(e,t,o,r,l))}n(r)},method:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},number:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},boolean:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},regexp:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t)||Gb.type(e,t,o,r,l)}n(r)},integer:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},float:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},array:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();Gb.required(e,t,o,r,l,"array"),null!=t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},object:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},enum:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.enum(e,t,o,r,l)}n(r)},pattern:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t,"string")||Gb.pattern(e,t,o,r,l)}n(r)},date:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"date")&&!e.required)return n();var a;Gb.required(e,t,o,r,l),Bb(t,"date")||(a=t instanceof Date?t:new Date(t),Gb.type(e,a,o,r,l),a&&Gb.range(e,a.getTime(),o,r,l))}n(r)},url:Yb,hex:Yb,email:Yb,required:function(e,t,n,o,l){var r=[],a=Array.isArray(t)?"array":typeof t;Gb.required(e,t,o,r,l,a),n(r)},any:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l)}n(r)}};function Zb(){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 e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var Jb=Zb(),Qb=function(){function e(e){this.rules=null,this._messages=Jb,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(n){var o=e[n];t.rules[n]=Array.isArray(o)?o:[o]})},t.messages=function(e){return e&&(this._messages=Db(Zb(),e)),this._messages},t.validate=function(t,n,o){var l=this;void 0===n&&(n={}),void 0===o&&(o=function(){});var r=t,a=n,s=o;if("function"==typeof a&&(s=a,a={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,r),Promise.resolve(r);if(a.messages){var i=this.messages();i===Jb&&(i=Zb()),Db(i,a.messages),a.messages=i}else a.messages=this.messages();var u={};(a.keys||Object.keys(this.rules)).forEach(function(e){var n=l.rules[e],o=r[e];n.forEach(function(n){var a=n;"function"==typeof a.transform&&(r===t&&(r=Ab({},r)),o=r[e]=a.transform(o)),(a="function"==typeof a?{validator:a}:Ab({},a)).validator=l.getValidationMethod(a),a.validator&&(a.field=e,a.fullField=a.fullField||e,a.type=l.getType(a),u[e]=u[e]||[],u[e].push({rule:a,value:o,source:r,field:e}))})});var c={};return jb(u,a,function(t,n){var o,l=t.rule,s=!("object"!==l.type&&"array"!==l.type||"object"!=typeof l.fields&&"object"!=typeof l.defaultField);function i(e,t){return Ab({},t,{fullField:l.fullField+"."+e,fullFields:l.fullFields?[].concat(l.fullFields,[e]):[e]})}function u(o){void 0===o&&(o=[]);var u=Array.isArray(o)?o:[o];!a.suppressWarning&&u.length&&e.warning("async-validator:",u),u.length&&void 0!==l.message&&(u=[].concat(l.message));var d=u.map(Vb(l,r));if(a.first&&d.length)return c[l.field]=1,n(d);if(s){if(l.required&&!t.value)return void 0!==l.message?d=[].concat(l.message).map(Vb(l,r)):a.error&&(d=[a.error(l,Ib(a.messages.required,l.field))]),n(d);var p={};l.defaultField&&Object.keys(t.value).map(function(e){p[e]=l.defaultField}),p=Ab({},p,t.rule.fields);var f={};Object.keys(p).forEach(function(e){var t=p[e],n=Array.isArray(t)?t:[t];f[e]=n.map(i.bind(null,e))});var v=new e(f);v.messages(a.messages),t.rule.options&&(t.rule.options.messages=a.messages,t.rule.options.error=a.error),v.validate(t.value,t.rule.options||a,function(e){var t=[];d&&d.length&&t.push.apply(t,d),e&&e.length&&t.push.apply(t,e),n(t.length?t:null)})}else n(d)}if(s=s&&(l.required||!l.required&&t.value),l.field=t.field,l.asyncValidator)o=l.asyncValidator(l,t.value,u,t.source,a);else if(l.validator){try{o=l.validator(l,t.value,u,t.source,a)}catch(d){console.error,a.suppressValidatorError||setTimeout(function(){throw d},0),u(d.message)}!0===o?u():!1===o?u("function"==typeof l.message?l.message(l.fullField||l.field):l.message||(l.fullField||l.field)+" fails"):o instanceof Array?u(o):o instanceof Error&&u(o.message)}o&&o.then&&o.then(function(){return u()},function(e){return u(e)})},function(e){!function(e){var t=[],n={};function o(e){var n;Array.isArray(e)?t=(n=t).concat.apply(n,e):t.push(e)}for(var l=0;l");const l=Wa("form"),r=St(),a=St(0),s=(o="update")=>{tn(()=>{t.default&&e.isAutoWidth&&("update"===o?a.value=(()=>{var e;if(null==(e=r.value)?void 0:e.firstElementChild){const e=window.getComputedStyle(r.value.firstElementChild).width;return Math.ceil(Number.parseFloat(e))}return 0})():"remove"===o&&(null==n||n.deregisterLabelWidth(a.value)))})},i=()=>s("update");return co(()=>{i()}),vo(()=>{s("remove")}),fo(()=>i()),wn(a,(t,o)=>{e.updateAll&&(null==n||n.registerLabelWidth(t,o))}),bd(yr(()=>{var e,t;return null!=(t=null==(e=r.value)?void 0:e.firstElementChild)?t:null}),i),()=>{var s,i;if(!t)return null;const{isAutoWidth:u}=e;if(u){const e=null==n?void 0:n.autoLabelWidth,i={};if((null==o?void 0:o.hasLabel)&&e&&"auto"!==e){const t=Math.max(0,Number.parseInt(e,10)-a.value),l=o.labelPosition||n.labelPosition;t&&(i["left"===l?"marginRight":"marginLeft"]=`${t}px`)}return Gl("div",{ref:r,class:[l.be("item","label-wrap")],style:i},[null==(s=t.default)?void 0:s.call(t)])}return Gl(Rl,{ref:r},[null==(i=t.default)?void 0:i.call(t)])}}});const oy=["role","aria-labelledby"];var ly=Kd(Xn({name:"ElFormItem",__name:"form-item",props:ey,setup(e,{expose:t}){const n=e,o=No(),l=mn(uf,void 0),r=mn(cf,void 0),a=vf(void 0,{formItem:!1}),s=Wa("form-item"),i=sf().value,u=St([]),c=St(""),d=function(e,t=200,n={}){const o=St(e.value),l=ud(()=>{o.value=e.value},t,n);return wn(e,()=>l()),o}(c,100),p=St(""),v=St();let h,m=!1;const b=yr(()=>n.labelPosition||(null==l?void 0:l.labelPosition)),y=yr(()=>{var e;return"top"===b.value?{}:{width:ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth)}}),w=yr(()=>{var e;if("top"===b.value||(null==l?void 0:l.inline))return{};if(!n.label&&!n.labelWidth&&A)return{};const t=ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth);return n.label||o.label?{}:{marginLeft:t}}),x=yr(()=>[s.b(),s.m(a.value),s.is("error","error"===c.value),s.is("validating","validating"===c.value),s.is("success","success"===c.value),s.is("required",L.value||n.required),s.is("no-asterisk",null==l?void 0:l.hideRequiredAsterisk),"right"===(null==l?void 0:l.requireAsteriskPosition)?"asterisk-right":"asterisk-left",{[s.m("feedback")]:null==l?void 0:l.statusIcon,[s.m(`label-${b.value}`)]:b.value}]),C=yr(()=>Zc(n.inlineMessage)?n.inlineMessage:(null==l?void 0:l.inlineMessage)||!1),_=yr(()=>[s.e("error"),{[s.em("error","inline")]:C.value}]),S=yr(()=>n.prop?f(n.prop)?n.prop.join("."):n.prop:""),k=yr(()=>!(!n.label&&!o.label)),E=yr(()=>{var e;return null!=(e=n.for)?e:1===u.value.length?u.value[0]:void 0}),T=yr(()=>!E.value&&k.value),A=!!r,O=yr(()=>{const e=null==l?void 0:l.model;if(e&&n.prop)return Vd(e,n.prop).value}),M=yr(()=>{const{required:e}=n,t=[];n.rules&&t.push(...uu(n.rules));const o=null==l?void 0:l.rules;if(o&&n.prop){const e=Vd(o,n.prop).value;e&&t.push(...uu(e))}if(void 0!==e){const n=t.map((e,t)=>[e,t]).filter(([e])=>"required"in e);if(n.length>0)for(const[o,l]of n)o.required!==e&&(t[l]={...o,required:e});else t.push({required:e})}return t}),R=yr(()=>M.value.length>0),L=yr(()=>M.value.some(e=>e.required)),P=yr(()=>{var e;return"error"===d.value&&n.showMessage&&(null==(e=null==l?void 0:l.showMessage)||e)}),N=yr(()=>`${n.label||""}${(null==l?void 0:l.labelSuffix)||""}`),I=e=>{c.value=e},B=async e=>{const t=S.value;return new Qb({[t]:e}).validate({[t]:O.value},{firstFields:!0}).then(()=>(I("success"),null==l||l.emit("validate",n.prop,!0,""),!0)).catch(e=>((e=>{var t,o;const{errors:r,fields:a}=e;I("error"),p.value=r?null!=(o=null==(t=null==r?void 0:r[0])?void 0:t.message)?o:`${n.prop} is required`:"",null==l||l.emit("validate",n.prop,!1,p.value)})(e),Promise.reject(e)))},F=async(e,t)=>{if(m||!n.prop)return!1;const o=g(t);if(!R.value)return null==t||t(!1),!1;const l=(e=>M.value.filter(t=>!t.trigger||!e||(f(t.trigger)?t.trigger.includes(e):t.trigger===e)).map(({trigger:e,...t})=>t))(e);return 0===l.length?(null==t||t(!0),!0):(I("validating"),B(l).then(()=>(null==t||t(!0),!0)).catch(e=>{const{fields:n}=e;return null==t||t(!1,n),!o&&Promise.reject(n)}))},$=()=>{I(""),p.value="",m=!1},j=async()=>{const e=null==l?void 0:l.model;if(!e||!n.prop)return;const t=Vd(e,n.prop);m=!0,t.value=nc(h),await tn(),$(),m=!1};wn(()=>n.error,e=>{p.value=e||"",I(e?"error":"")},{immediate:!0}),wn(()=>n.validateStatus,e=>I(e||""));const D=pt({...Nt(n),$el:v,size:a,validateMessage:p,validateState:c,labelId:i,inputIds:u,isGroup:T,hasLabel:k,fieldValue:O,addInputId:e=>{u.value.includes(e)||u.value.push(e)},removeInputId:e=>{u.value=u.value.filter(t=>t!==e)},resetField:j,clearValidate:$,validate:F,propString:S});return hn(cf,D),co(()=>{n.prop&&(null==l||l.addField(D),h=nc(O.value))}),vo(()=>{null==l||l.removeField(D)}),t({size:a,validateMessage:p,validateState:c,validate:F,clearValidate:$,resetField:j}),(e,t)=>{var n;return Fl(),Dl("div",{ref_key:"formItemRef",ref:v,class:q(x.value),role:T.value?"group":void 0,"aria-labelledby":T.value?Ot(i):void 0},[Gl(Ot(ny),{"is-auto-width":"auto"===y.value.width,"update-all":"auto"===(null==(n=Ot(l))?void 0:n.labelWidth)},{default:pn(()=>[e.label||e.$slots.label?(Fl(),zl(_o(E.value?"label":"div"),{key:0,id:Ot(i),for:E.value,class:q(Ot(s).e("label")),style:V(y.value)},{default:pn(()=>[Ao(e.$slots,"label",{label:N.value},()=>[Xl(Z(N.value),1)])]),_:3},8,["id","for","class","style"])):Zl("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),Kl("div",{class:q(Ot(s).e("content")),style:V(w.value)},[Ao(e.$slots,"default"),Gl(ba,{name:`${Ot(s).namespace.value}-zoom-in-top`},{default:pn(()=>[P.value?Ao(e.$slots,"error",{key:0,error:p.value},()=>[Kl("div",{class:q(_.value)},Z(p.value),3)]):Zl("v-if",!0)]),_:3},8,["name"])],6)],10,oy)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const ry=Gd(Tb,{FormItem:ly}),ay=Yd(ly);let sy=class{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,t=>{t.addEventListener("keydown",t=>{let n=!1;switch(cv(t)){case iv.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case iv.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case iv.tab:bf(e,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:n=!0,t.currentTarget.click()}return n&&(t.preventDefault(),t.stopPropagation()),!1})})}},iy=class{constructor(e,t){this.domNode=e,this.submenu=null,this.submenu=null,this.init(t)}init(e){this.domNode.setAttribute("tabindex","0");const t=this.domNode.querySelector(`.${e}-menu`);t&&(this.submenu=new sy(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",e=>{let t=!1;switch(cv(e)){case iv.down:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case iv.up:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case iv.tab:bf(e.currentTarget,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:t=!0,e.currentTarget.click()}t&&e.preventDefault()})}},uy=class{constructor(e,t){this.domNode=e,this.init(t)}init(e){const t=this.domNode.childNodes;Array.from(t).forEach(t=>{1===t.nodeType&&new iy(t,e)})}};var cy=Kd(Xn({name:"ElMenuCollapseTransition",__name:"menu-collapse-transition",setup(e){const t=Wa("menu"),n={onBeforeEnter:e=>e.style.opacity="0.2",onEnter(e,n){op(e,`${t.namespace.value}-opacity-transition`),e.style.opacity="1",n()},onAfterEnter(e){lp(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=""},onBeforeLeave(e){e.dataset||(e.dataset={}),np(e,t.m("collapse"))?(lp(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),op(e,t.m("collapse"))):(op(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),lp(e,t.m("collapse"))),e.style.width=`${e.scrollWidth}px`,e.style.overflow="hidden"},onLeave(e){op(e,"horizontal-collapse-transition"),e.style.width=`${e.dataset.scrollWidth}px`}};return(e,t)=>(Fl(),zl(Nr,tr({mode:"out-in"},n),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function dy(e,t){const n=yr(()=>{let n=e.parent;const o=[t.value];for(;"ElMenu"!==n.type.name;)n.props.index&&o.unshift(n.props.index),n=n.parent;return o});return{parentMenu:yr(()=>{let t=e.parent;for(;t&&!["ElMenu","ElSubMenu"].includes(t.type.name);)t=t.parent;return t}),indexPath:n}}function py(e){return yr(()=>{const t=e.backgroundColor;return t?new Pm(t).shade(20).toString():""})}const fy=(e,t)=>{const n=Wa("menu");return yr(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":py(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},vy="rootMenu",hy="subMenu:",my=Nd({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,popperStyle:{type:[String,Object]},disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:Dp},expandOpenIcon:{type:Dp},collapseCloseIcon:{type:Dp},collapseOpenIcon:{type:Dp}}),gy="ElSubMenu";var by=Xn({name:gy,props:my,setup(e,{slots:t,expose:n}){const o=ar(),{indexPath:l,parentMenu:r}=dy(o,yr(()=>e.index)),a=Wa("menu"),s=Wa("sub-menu"),i=mn(vy);i||xd(gy,"can not inject root menu");const u=mn(`${hy}${r.value.uid}`);u||xd(gy,"can not inject sub menu");const c=St({}),d=St({});let p;const f=St(!1),v=St(),h=St(),m=yr(()=>0===u.level),g=yr(()=>"horizontal"===k.value&&m.value?"bottom-start":"right-start"),y=yr(()=>"horizontal"===k.value&&m.value||"vertical"===k.value&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?_.value?e.expandOpenIcon:e.expandCloseIcon:up:e.collapseCloseIcon&&e.collapseOpenIcon?_.value?e.collapseOpenIcon:e.collapseCloseIcon:dp),w=yr(()=>{const t=e.teleported;return Xc(t)?m.value:t}),x=yr(()=>i.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),C=yr(()=>"horizontal"===k.value&&m.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),_=yr(()=>i.openedMenus.includes(e.index)),S=yr(()=>[...Object.values(c.value),...Object.values(d.value)].some(({active:e})=>e)),k=yr(()=>i.props.mode),E=yr(()=>i.props.persistent),T=pt({index:e.index,indexPath:l,active:S}),A=fy(i.props,u.level+1),O=yr(()=>{var t;return null!=(t=e.popperOffset)?t:i.props.popperOffset}),M=yr(()=>{var t;return null!=(t=e.popperClass)?t:i.props.popperClass}),R=yr(()=>{var t;return null!=(t=e.popperStyle)?t:i.props.popperStyle}),L=yr(()=>{var t;return null!=(t=e.showTimeout)?t:i.props.showTimeout}),P=yr(()=>{var t;return null!=(t=e.hideTimeout)?t:i.props.hideTimeout}),N=e=>{var t,n,o;e||null==(o=null==(n=null==(t=h.value)?void 0:t.popperRef)?void 0:n.popperInstanceRef)||o.destroy()},I=()=>{"hover"===i.props.menuTrigger&&"horizontal"===i.props.mode||i.props.collapse&&"vertical"===i.props.mode||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:l.value,active:S.value})},B=(t,n=L.value)=>{var o;"focus"!==t.type&&("click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode||e.disabled?u.mouseInChild.value=!0:(u.mouseInChild.value=!0,null==p||p(),({stop:p}=dd(()=>{i.openMenu(e.index,l.value)},n)),w.value&&(null==(o=r.value.vnode.el)||o.dispatchEvent(new MouseEvent("mouseenter"))),"mouseenter"===t.type&&t.target&&tn(()=>{yf(t.target,{preventScroll:!0})})))},F=(t=!1)=>{var n;"click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode?u.mouseInChild.value=!1:(null==p||p(),u.mouseInChild.value=!1,({stop:p}=dd(()=>!f.value&&i.closeMenu(e.index,l.value),P.value)),w.value&&t&&(null==(n=u.handleMouseleave)||n.call(u,!0)))};wn(()=>i.props.collapse,e=>N(Boolean(e)));{const e=e=>{d.value[e.index]=e},t=e=>{delete d.value[e.index]};hn(`${hy}${o.uid}`,{addSubMenu:e,removeSubMenu:t,handleMouseleave:F,mouseInChild:f,level:u.level+1})}return n({opened:_}),co(()=>{i.addSubMenu(T),u.addSubMenu(T)}),vo(()=>{u.removeSubMenu(T),i.removeSubMenu(T)}),()=>{var n;const l=[null==(n=t.title)?void 0:n.call(t),wr(ip,{class:s.e("icon-arrow"),style:{transform:_.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>b(y.value)?wr(o.appContext.components[y.value]):wr(y.value)})],r=i.isMenuPopup?wr(im,{ref:h,visible:_.value,effect:"light",pure:!0,offset:O.value,showArrow:!1,persistent:E.value,popperClass:M.value,popperStyle:R.value,placement:g.value,teleported:w.value,fallbackPlacements:C.value,transition:x.value,gpuAcceleration:!1},{content:()=>{var e;return wr("div",{class:[a.m(k.value),a.m("popup-container"),M.value],onMouseenter:e=>B(e,100),onMouseleave:()=>F(!0),onFocus:e=>B(e,100)},[wr("ul",{class:[a.b(),a.m("popup"),a.m(`popup-${g.value}`)],style:A.value},[null==(e=t.default)?void 0:e.call(t)])])},default:()=>wr("div",{class:s.e("title"),onClick:I},l)}):wr(Rl,{},[wr("div",{class:s.e("title"),ref:v,onClick:I},l),wr(Mg,{},{default:()=>{var e;return fn(wr("ul",{role:"menu",class:[a.b(),a.m("inline")],style:A.value},[null==(e=t.default)?void 0:e.call(t)]),[[Xr,_.value]])}})]);return wr("li",{class:[s.b(),s.is("active",S.value),s.is("opened",_.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:_.value,onMouseenter:B,onMouseleave:()=>F(),onFocus:B},[r])}}});const yy=Nd({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Array,default:()=>[]},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:Dp,default:()=>Op},popperEffect:{type:String,default:"dark"},popperClass:String,popperStyle:{type:[String,Object]},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),wy=e=>f(e)&&e.every(e=>b(e));var xy=Xn({name:"ElMenu",props:yy,emits:{close:(e,t)=>b(e)&&wy(t),open:(e,t)=>b(e)&&wy(t),select:(e,t,n,o)=>b(e)&&wy(t)&&w(n)&&(Xc(o)||o instanceof Promise)},setup(e,{emit:t,slots:n,expose:o}){const l=ar(),r=l.appContext.config.globalProperties.$router,a=St(),s=St(),i=Wa("menu"),u=Wa("sub-menu");let c=64;const d=St(-1),p=St(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=St(e.defaultActive),v=St({}),h=St({}),m=yr(()=>"horizontal"===e.mode||"vertical"===e.mode&&e.collapse),g=(n,o)=>{p.value.includes(n)||(e.uniqueOpened&&(p.value=p.value.filter(e=>o.includes(e))),p.value.push(n),t("open",n,o))},b=e=>{const t=p.value.indexOf(e);-1!==t&&p.value.splice(t,1)},y=(e,n)=>{b(e),t("close",e,n)},w=({index:e,indexPath:t})=>{p.value.includes(e)?y(e,t):g(e,t)},x=n=>{("horizontal"===e.mode||e.collapse)&&(p.value=[]);const{index:o,indexPath:l}=n;if(!Vc(o)&&!Vc(l))if(e.router&&r){const e=n.route||o,a=r.push(e).then(e=>(e||(f.value=o),e));t("select",o,l,{index:o,indexPath:l,route:e},a)}else f.value=o,t("select",o,l,{index:o,indexPath:l})},C=t=>{var n;const o=v.value,l=o[t]||f.value&&o[f.value]||o[e.defaultActive];f.value=null!=(n=null==l?void 0:l.index)?n:t},_=e=>{const t=getComputedStyle(e),n=Number.parseInt(t.marginLeft,10),o=Number.parseInt(t.marginRight,10);return e.offsetWidth+n+o||0},S=()=>{if(!a.value)return-1;const e=Array.from(a.value.childNodes).filter(e=>"#comment"!==e.nodeName&&("#text"!==e.nodeName||e.nodeValue)),t=getComputedStyle(a.value),n=Number.parseInt(t.paddingLeft,10),o=Number.parseInt(t.paddingRight,10),l=a.value.clientWidth-n-o;let r=0,s=0;return e.forEach((e,t)=>{r+=_(e),r<=l-c&&(s=t+1)}),s===e.length?-1:s};let k=!0;const E=()=>{const e=pd(s);if(e&&(c=_(e)||64),d.value===S())return;const t=()=>{d.value=-1,tn(()=>{d.value=S()})};k?t():((e,t=33.34)=>{let n;return()=>{n&&clearTimeout(n),n=setTimeout(()=>{e()},t)}})(t)(),k=!1};let T;wn(()=>e.defaultActive,e=>{v.value[e]||(f.value=""),C(e)}),wn(()=>e.collapse,e=>{e&&(p.value=[])}),wn(v.value,()=>{const t=f.value&&v.value[f.value];t&&"horizontal"!==e.mode&&!e.collapse&&t.indexPath.forEach(e=>{const t=h.value[e];t&&g(e,t.indexPath)})}),yn(()=>{"horizontal"===e.mode&&e.ellipsis?T=bd(a,E).stop:null==T||T()});const A=St(!1);{const t=e=>{h.value[e.index]=e},n=e=>{delete h.value[e.index]},o=e=>{v.value[e.index]=e},r=e=>{delete v.value[e.index]};hn(vy,pt({props:e,openedMenus:p,items:v,subMenus:h,activeIndex:f,isMenuPopup:m,addMenuItem:o,removeMenuItem:r,addSubMenu:t,removeSubMenu:n,openMenu:g,closeMenu:y,handleMenuItemClick:x,handleSubMenuClick:w})),hn(`${hy}${l.uid}`,{addSubMenu:t,removeSubMenu:n,mouseInChild:A,level:0})}co(()=>{"horizontal"===e.mode&&new uy(l.vnode.el,i.namespace.value)}),o({open:e=>{const{indexPath:t}=h.value[e];t.forEach(e=>g(e,t))},close:b,updateActiveIndex:C,handleResize:E});const O=fy(e,0);return()=>{var o,l;let r=null!=(l=null==(o=n.default)?void 0:o.call(n))?l:[];const c=[];if("horizontal"===e.mode&&a.value){const t=Vm(r).filter(e=>8!==(null==e?void 0:e.shapeFlag)),n=-1===d.value?t:t.slice(0,d.value),o=-1===d.value?[]:t.slice(d.value);(null==o?void 0:o.length)&&e.ellipsis&&(r=n,c.push(wr(by,{ref:s,index:"sub-menu-more",class:u.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>wr(ip,{class:u.e("icon-more")},{default:()=>wr(e.ellipsisIcon)}),default:()=>o})))}const f=e.closeOnClickOutside?[[Eg,()=>{p.value.length&&(A.value||(p.value.forEach(e=>{return t("close",e,(n=e,h.value[n].indexPath));var n}),p.value=[]))}]]:[],v=fn(wr("ul",{key:String(e.collapse),role:"menubar",ref:a,style:O.value,class:{[i.b()]:!0,[i.m(e.mode)]:!0,[i.m("collapse")]:e.collapse}},[...r,...c]),f);return e.collapseTransition&&"vertical"===e.mode?wr(cy,()=>v):v}}});const Cy=Nd({index:{type:[String,null],default:null},route:{type:[String,Object]},disabled:Boolean}),_y="ElMenuItem";var Sy=Kd(Xn({name:_y,__name:"menu-item",props:Cy,emits:{click:e=>b(e.index)&&f(e.indexPath)},setup(e,{expose:t,emit:n}){const o=e,l=n;ed(o.index);const r=ar(),a=mn(vy),s=Wa("menu"),i=Wa("menu-item");a||xd(_y,"can not inject root menu");const{parentMenu:u,indexPath:c}=dy(r,Ft(o,"index")),d=mn(`${hy}${u.value.uid}`);d||xd(_y,"can not inject sub menu");const p=yr(()=>o.index===a.activeIndex),f=pt({index:o.index,indexPath:c,active:p}),v=()=>{o.disabled||(a.handleMenuItemClick({index:o.index,indexPath:c.value,route:o.route}),l("click",f))};return co(()=>{d.addSubMenu(f),a.addMenuItem(f)}),vo(()=>{d.removeSubMenu(f),a.removeMenuItem(f)}),t({parentMenu:u,rootMenu:a,active:p,nsMenu:s,nsMenuItem:i,handleClick:v}),(e,t)=>(Fl(),Dl("li",{class:q([Ot(i).b(),Ot(i).is("active",p.value),Ot(i).is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:v},["ElMenu"===Ot(u).type.name&&Ot(a).props.collapse&&e.$slots.title?(Fl(),zl(Ot(im),{key:0,effect:Ot(a).props.popperEffect,placement:"right","fallback-placements":["left"],"popper-class":Ot(a).props.popperClass,"popper-style":Ot(a).props.popperStyle,persistent:Ot(a).props.persistent,"focus-on-target":""},{content:pn(()=>[Ao(e.$slots,"title")]),default:pn(()=>[Kl("div",{class:q(Ot(s).be("tooltip","trigger"))},[Ao(e.$slots,"default")],2)]),_:3},8,["effect","popper-class","popper-style","persistent"])):(Fl(),Dl(Rl,{key:1},[Ao(e.$slots,"default"),Ao(e.$slots,"title")],64))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]),ky=Kd(Xn({name:"ElMenuItemGroup",__name:"menu-item-group",props:{title:String},setup(e){const t=Wa("menu-item-group");return(e,n)=>(Fl(),Dl("li",{class:q(Ot(t).b())},[Kl("div",{class:q(Ot(t).e("title"))},[e.$slots.title?Ao(e.$slots,"title",{key:1}):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.title),1)],64))],2),Kl("ul",null,[Ao(e.$slots,"default")])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const Ey=Gd(xy,{MenuItem:Sy,MenuItemGroup:ky,SubMenu:by}),Ty=Yd(Sy);Yd(ky),Yd(by);const Ay=e=>L(e),Oy=Gd(Kd(Xn({name:"ElPopconfirm",__name:"popconfirm",props:Nd({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:pm,default:"primary"},cancelButtonType:{type:String,values:pm,default:"text"},icon:{type:Dp,default:()=>Lp},iconColor:{type:String,default:"#f90"},hideIcon:Boolean,hideAfter:{type:Number,default:200},effect:{...Wh.effect,default:"light"},teleported:Wh.teleported,persistent:Wh.persistent,width:{type:[String,Number],default:150},virtualTriggering:qh.virtualTriggering,virtualRef:qh.virtualRef}),emits:{confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},setup(e,{expose:t,emit:n}){const o=e,l=n,{t:r}=Rd(),a=Wa("popconfirm"),s=St(),i=St(),u=yr(()=>{var e;return null==(e=Ot(s))?void 0:e.popperRef}),c=()=>{var e,t;null==(t=null==(e=i.value)?void 0:e.focus)||t.call(e)},d=()=>{var e,t;null==(t=null==(e=s.value)?void 0:e.onClose)||t.call(e)},p=yr(()=>({width:ap(o.width)})),f=e=>{l("confirm",e),d()},v=e=>{l("cancel",e),d()},h=yr(()=>o.confirmButtonText||r("el.popconfirm.confirmButtonText")),m=yr(()=>o.cancelButtonText||r("el.popconfirm.cancelButtonText"));return t({popperRef:u,hide:d}),(e,t)=>(Fl(),zl(Ot(im),tr({ref_key:"tooltipRef",ref:s,trigger:"click",effect:e.effect},e.$attrs,{"virtual-triggering":e.virtualTriggering,"virtual-ref":e.virtualRef,"popper-class":`${Ot(a).namespace.value}-popover`,"popper-style":p.value,teleported:e.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":e.hideAfter,persistent:e.persistent,loop:"",onShow:c}),{content:pn(()=>[Kl("div",{ref_key:"rootRef",ref:i,tabindex:"-1",class:q(Ot(a).b())},[Kl("div",{class:q(Ot(a).e("main"))},[!e.hideIcon&&e.icon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(a).e("icon")),style:V({color:e.iconColor})},{default:pn(()=>[(Fl(),zl(_o(e.icon)))]),_:1},8,["class","style"])):Zl("v-if",!0),Xl(" "+Z(e.title),1)],2),Kl("div",{class:q(Ot(a).e("action"))},[Ao(e.$slots,"actions",{confirm:f,cancel:v},()=>[Gl(Ot(Fm),{size:"small",type:"text"===e.cancelButtonType?"":e.cancelButtonType,text:"text"===e.cancelButtonType,onClick:v},{default:pn(()=>[Xl(Z(m.value),1)]),_:1},8,["type","text"]),Gl(Ot(Fm),{size:"small",type:"text"===e.confirmButtonType?"":e.confirmButtonType,text:"text"===e.confirmButtonType,onClick:f},{default:pn(()=>[Xl(Z(h.value),1)]),_:1},8,["type","text"])])],2)],2)]),default:pn(()=>[e.$slots.reference?Ao(e.$slots,"reference",{key:0}):Zl("v-if",!0)]),_:3},16,["effect","virtual-triggering","virtual-ref","popper-class","popper-style","teleported","hide-after","persistent"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popconfirm/src/popconfirm.vue"]])),My=Gd(Kd(Xn({name:"ElRow",__name:"row",props:Nd({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:["start","center","end","space-around","space-between","space-evenly"],default:"start"},align:{type:String,values:["top","middle","bottom"]}}),setup(e){const t=e,n=Wa("row"),o=yr(()=>t.gutter);hn(Ag,{gutter:o});const l=yr(()=>{const e={};return t.gutter?(e.marginRight=e.marginLeft=`-${t.gutter/2}px`,e):e}),r=yr(()=>[n.b(),n.is(`justify-${t.justify}`,"start"!==t.justify),n.is(`align-${t.align}`,!!t.align)]);return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]])),Ry="horizontal",Ly="vertical",Py={[Ry]:"deltaX",[Ly]:"deltaY"},Ny=({atEndEdge:e,atStartEdge:t,layout:n},o)=>{let l,r=0;const a=n=>n<0&&t.value||n>0&&e.value;return{hasReachedEdge:a,onWheel:e=>{var t;t=l,ld?window.cancelAnimationFrame(t):clearTimeout(t);const s=e[Py[n.value]];a(r)&&a(r+s)||(r+=s,Up()||e.preventDefault(),l=ep(()=>{o(r),r=0}))}}},Iy=Nd({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:e=>["",...Id].includes(e)},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:Dp},activeActionIcon:{type:Dp},activeIcon:{type:Dp},inactiveIcon:{type:Dp},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Function},id:String,tabindex:{type:[String,Number]},...Qp(["ariaLabel"])}),By=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],Fy=["aria-hidden"],$y={key:1},jy={key:1},Vy=["aria-hidden"],Dy="ElSwitch",zy=Gd(Kd(Xn({name:Dy,__name:"switch",props:Iy,emits:{[Zd]:e=>Zc(e)||b(e)||Jc(e),[Jd]:e=>Zc(e)||b(e)||Jc(e),[Qd]:e=>Zc(e)||b(e)||Jc(e)},setup(e,{expose:t,emit:n}){const o=e,l=n,{formItem:r}=df(),a=vf(),s=Wa("switch"),{inputId:i}=pf(o,{formItemContext:r}),u=hf(yr(()=>{if(o.loading)return!0})),c=St(!1!==o.modelValue),d=kt(),p=yr(()=>[s.b(),s.m(a.value),s.is("disabled",u.value),s.is("checked",g.value)]),f=yr(()=>[s.e("label"),s.em("label","left"),s.is("active",!g.value)]),v=yr(()=>[s.e("label"),s.em("label","right"),s.is("active",g.value)]),h=yr(()=>({width:ap(o.width)}));wn(()=>o.modelValue,()=>{c.value=!0});const m=yr(()=>!!c.value&&o.modelValue),g=yr(()=>m.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(m.value)||(l(Zd,o.inactiveValue),l(Jd,o.inactiveValue),l(Qd,o.inactiveValue)),wn(g,e=>{var t;d.value.checked=e,o.validateEvent&&(null==(t=null==r?void 0:r.validate)||t.call(r,"change").catch(e=>{}))});const b=()=>{const e=g.value?o.inactiveValue:o.activeValue;l(Zd,e),l(Jd,e),l(Qd,e),tn(()=>{d.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:e}=o;if(!e)return void b();const t=e();[x(t),Zc(t)].includes(!0)||xd(Dy,"beforeChange must return type `Promise` or `boolean`"),x(t)?t.then(e=>{e&&b()}).catch(e=>{}):t&&b()};return co(()=>{d.value.checked=g.value}),t({focus:()=>{var e,t;null==(t=null==(e=d.value)?void 0:e.focus)||t.call(e)},checked:g}),(e,t)=>(Fl(),Dl("div",{class:q(p.value),onClick:Ra(y,["prevent"])},[Kl("input",{id:Ot(i),ref_key:"input",ref:d,class:q(Ot(s).e("input")),type:"checkbox",role:"switch","aria-checked":g.value,"aria-disabled":Ot(u),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:Ot(u),tabindex:e.tabindex,onChange:b,onKeydown:Pa(y,["enter"])},null,42,By),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||e.$slots.inactive)?(Fl(),Dl("span",{key:0,class:q(f.value)},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",{key:1,"aria-hidden":g.value},Z(e.inactiveText),9,Fy)):Zl("v-if",!0)])],2)):Zl("v-if",!0),Kl("span",{class:q(Ot(s).e("core")),style:V(h.value)},[e.inlinePrompt?(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner"))},[g.value?(Fl(),Dl("div",{key:1,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",jy,Z(e.activeText),1)):Zl("v-if",!0)])],2)):(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",$y,Z(e.inactiveText),1)):Zl("v-if",!0)])],2))],2)):Zl("v-if",!0),Kl("div",{class:q(Ot(s).e("action"))},[e.loading?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(s).is("loading"))},{default:pn(()=>[Gl(Ot(Ep))]),_:1},8,["class"])):g.value?Ao(e.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeActionIcon)))]),_:1})):Zl("v-if",!0)]):g.value?Zl("v-if",!0):Ao(e.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveActionIcon)))]),_:1})):Zl("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||e.$slots.active)?(Fl(),Dl("span",{key:1,class:q(v.value)},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",{key:1,"aria-hidden":!g.value},Z(e.activeText),9,Vy)):Zl("v-if",!0)])],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]])),Hy=function(e){var t;return null==(t=e.target)?void 0:t.closest("td")},Wy=function(e,t,n,o,l){if(!t&&!o&&(!l||f(l)&&!l.length))return e;n=b(n)?"descending"===n?-1:1:n&&n<0?-1:1;const r=o?null:function(n,o){return l?Bc(uu(l),t=>b(t)?Yi(n,t):t(n,o,e)):("$key"!==t&&w(n)&&"$value"in n&&(n=n.$value),[w(n)?t?Yi(n,t):null:n])};return e.map((e,t)=>({value:e,index:t,key:r?r(e,t):null})).sort((e,t)=>{let l=function(e,t){var n,l,r,a,s,i;if(o)return o(e.value,t.value);for(let o=0,u=null!=(l=null==(n=e.key)?void 0:n.length)?l:0;o(null==(i=t.key)?void 0:i[o]))return 1}return 0}(e,t);return l||(l=e.index-t.index),l*+n}).map(e=>e.value)},qy=function(e,t){let n=null;return e.columns.forEach(e=>{e.id===t&&(n=e)}),n},Uy=function(e,t,n){const o=(t.className||"").match(new RegExp(`${n}-table_[^\\s]+`,"gm"));return o?qy(e,o[0]):null},Ky=(e,t)=>{if(!e)throw new Error("Row is required when get row identity");if(b(t)){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let o=e;for(const e of n)o=o[e];return`${o}`}return g(t)?t.call(null,e):""},Gy=function(e,t,n=!1,o="children"){const l={};return(e||[]).forEach((e,r)=>{if(l[Ky(e,t)]={row:e,index:r},n){const n=e[o];f(n)&&Object.assign(l,Gy(n,t,!0,o))}}),l};function Yy(e){return""===e||Xc(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Xy(e){return""===e||Xc(e)||(e=Yy(e),Number.isNaN(e)&&(e=80)),e}function Zy(e,t,n,o,l,r,a){let s=null!=r?r:0,i=!1;const u=(()=>{if(!a)return e.indexOf(t);const n=Ky(t,a);return e.findIndex(e=>Ky(e,a)===n)})(),c=-1!==u,d=null==l?void 0:l.call(null,t,s),p=n=>{"add"===n?e.push(t):e.splice(u,1),i=!0},v=e=>{let t=0;const n=(null==o?void 0:o.children)&&e[o.children];return n&&f(n)&&(t+=n.length,n.forEach(e=>{t+=v(e)})),t};return l&&!d||(Zc(n)?n&&!c?p("add"):!n&&c&&p("remove"):p(c?"remove":"add")),!(null==o?void 0:o.checkStrictly)&&(null==o?void 0:o.children)&&f(t[o.children])&&t[o.children].forEach(t=>{const r=Zy(e,t,null!=n?n:!c,o,l,s+1,a);s+=v(t)+1,r&&(i=r)}),i}function Jy(e,t,n="children",o="hasChildren",l=!1){const r=e=>!(f(e)&&e.length);function a(e,s,i){t(e,s,i),s.forEach(e=>{if(e[o]&&l)return void t(e,null,i+1);const s=e[n];r(s)||a(e,s,i+1)})}e.forEach(e=>{if(e[o]&&l)return void t(e,null,0);const s=e[n];r(s)||a(e,s,0)})}let Qy=null;function ew(e,t,n,o,l,r){var a;const s=((e,t,n,o)=>{const l={strategy:"fixed",...e.popperOptions},r=g(null==o?void 0:o.tooltipFormatter)?o.tooltipFormatter({row:n,column:o,cellValue:Vd(n,o.property).value}):void 0;return Hl(r)?{slotContent:r,content:null,...e,popperOptions:l}:{slotContent:null,content:null!=r?r:t,...e,popperOptions:l}})(e,t,n,o),i={...s,slotContent:void 0};if((null==Qy?void 0:Qy.trigger)===l){const e=null==(a=Qy.vm)?void 0:a.component;return Hc(null==e?void 0:e.props,i),void(e&&s.slotContent&&(e.slots.content=()=>[s.slotContent]))}null==Qy||Qy();const u=null==r?void 0:r.refs.tableWrapper,c=null==u?void 0:u.dataset.prefix,d=Gl(im,{virtualTriggering:!0,virtualRef:l,appendTo:u,placement:"top",transition:"none",offset:0,hideAfter:0,...i},s.slotContent?{content:()=>s.slotContent}:void 0);d.appContext={...r.appContext,...r};const p=document.createElement("div");Fa(d,p),d.component.exposed.onOpen();const f=null==u?void 0:u.querySelector(`.${c}-scrollbar__wrap`);Qy=()=>{var e,t;(null==(t=null==(e=d.component)?void 0:e.exposed)?void 0:t.onClose)&&d.component.exposed.onClose(),Fa(null,p);const n=Qy;null==f||f.removeEventListener("scroll",n),n.trigger=void 0,n.vm=void 0,Qy=null},Qy.trigger=null!=l?l:void 0,Qy.vm=d,null==f||f.addEventListener("scroll",Qy)}function tw(e){return e.children?Bc(e.children,tw):[e]}function nw(e,t){return e+t.colSpan}const ow=(e,t,n,o)=>{let l=0,r=e;const a=n.states.columns.value;if(o){const t=tw(o[e]);l=a.slice(0,a.indexOf(t[0])).reduce(nw,0),r=l+t.reduce(nw,0)-1}else l=e;let s;switch(t){case"left":r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:l,after:r}:{}},lw=(e,t,n,o,l,r=0)=>{const a=[],{direction:s,start:i,after:u}=ow(t,n,o,l);if(s){const t="left"===s;a.push(`${e}-fixed-column--${s}`),t&&u+r===o.states.fixedLeafColumnsLength.value-1?a.push("is-last-column"):t||i-r!==o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value||a.push("is-first-column")}return a};function rw(e,t){return e+(Dc(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const aw=(e,t,n,o)=>{const{direction:l,start:r=0,after:a=0}=ow(e,t,n,o);if(!l)return;const s={},i="left"===l,u=n.states.columns.value;return i?s.left=u.slice(0,r).reduce(rw,0):s.right=u.slice(a+1).reverse().reduce(rw,0),s},sw=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function iw(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!iw(e.children)))?e:null}const uw=e=>{const t=[];return e.forEach(e=>{e.children&&e.children.length>0?t.push.apply(t,uw(e.children)):t.push(e)}),t};function cw(){var e;const t=ar(),{size:n}=Nt(null==(e=t.proxy)?void 0:e.$props),o=St(null),l=St([]),r=St([]),a=St(!1),s=St([]),i=St([]),u=St([]),c=St([]),d=St([]),v=St([]),h=St([]),m=St([]),g=St(0),y=St(0),w=St(0),x=St(!1),C=St([]),_=St(!1),S=St(!1),k=St(null),E=St({}),T=St(null),A=St(null),O=St(null),M=St(null),R=St(null),L=yr(()=>o.value?Gy(C.value,o.value):void 0);wn(l,()=>{var e;t.state&&(I(!1),"auto"===t.props.tableLayout&&(null==(e=t.refs.tableHeaderRef)||e.updateFixedColumnStyle()))},{deep:!0});const P=e=>{var t;null==(t=e.children)||t.forEach(t=>{t.fixed=e.fixed,P(t)})},N=()=>{s.value.forEach(e=>{P(e)}),c.value=s.value.filter(e=>[!0,"left"].includes(e.fixed));const e=s.value.find(e=>"selection"===e.type);let t;e&&"right"!==e.fixed&&!c.value.includes(e)&&0===s.value.indexOf(e)&&c.value.length&&(c.value.unshift(e),t=!0),d.value=s.value.filter(e=>"right"===e.fixed);const n=s.value.filter(e=>!(t&&"selection"===e.type||e.fixed));i.value=Array.from(c.value).concat(n).concat(d.value);const o=uw(n),l=uw(c.value),r=uw(d.value);g.value=o.length,y.value=l.length,w.value=r.length,u.value=Array.from(l).concat(o).concat(r),a.value=c.value.length>0||d.value.length>0},I=(e,n=!1)=>{e&&N(),n?t.state.doLayout():t.state.debouncedUpdateLayout()},B=e=>L.value?!!L.value[Ky(e,o.value)]:C.value.includes(e),F=e=>{var n;if(!t||!t.store)return 0;const{treeData:o}=t.store.states;let l=0;const r=null==(n=o.value[e])?void 0:n.children;return r&&(l+=r.length,r.forEach(e=>{l+=F(e)})),l},$=(e,t,n)=>{A.value&&A.value!==e&&(A.value.order=null),A.value=e,O.value=t,M.value=n},j=()=>{let e=Ot(r);Object.keys(E.value).forEach(t=>{const n=E.value[t];if(!n||0===n.length)return;const o=qy({columns:u.value},t);o&&o.filterMethod&&(e=e.filter(e=>n.some(t=>o.filterMethod.call(null,t,e,o))))}),T.value=e},V=()=>{var e;l.value=((e,t)=>{const n=t.sortingColumn;return!n||b(n.sortable)?e:Wy(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)})(null!=(e=T.value)?e:[],{sortingColumn:A.value,sortProp:O.value,sortOrder:M.value})},{setExpandRowKeys:D,toggleRowExpansion:z,updateExpandRows:H,states:W,isRowExpanded:q}=function(e){const t=ar(),n=St(!1),o=St([]);return{updateExpandRows:()=>{const t=e.data.value||[],l=e.rowKey.value;if(n.value)o.value=t.slice();else if(l){const e=Gy(o.value,l);o.value=t.reduce((t,n)=>{const o=Ky(n,l);return e[o]&&t.push(n),t},[])}else o.value=[]},toggleRowExpansion:(n,l)=>{Zy(o.value,n,l,void 0,void 0,void 0,e.rowKey.value)&&t.emit("expand-change",n,o.value.slice())},setExpandRowKeys:n=>{t.store.assertRowKey();const l=e.data.value||[],r=e.rowKey.value,a=Gy(l,r);o.value=n.reduce((e,t)=>{const n=a[t];return n&&e.push(n.row),e},[])},isRowExpanded:t=>{const n=e.rowKey.value;return n?!!Gy(o.value,n)[Ky(t,n)]:o.value.includes(t)},states:{expandRows:o,defaultExpandAll:n}}}({data:l,rowKey:o}),{updateTreeExpandKeys:U,toggleTreeExpansion:K,updateTreeData:G,updateKeyChildren:Y,loadOrToggle:X,states:Z}=function(e){const t=St([]),n=St({}),o=St(16),l=St(!1),r=St({}),a=St("hasChildren"),s=St("children"),i=St(!1),u=ar(),c=yr(()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return p(t)}),d=yr(()=>{const t=e.rowKey.value,n=Object.keys(r.value),o={};return n.length?(n.forEach(e=>{if(r.value[e].length){const n={children:[]};r.value[e].forEach(e=>{const l=Ky(e,t);n.children.push(l),e[a.value]&&!o[l]&&(o[l]={children:[]})}),o[e]=n}}),o):o}),p=t=>{const n=e.rowKey.value,o={};return Jy(t,(e,t,r)=>{const a=Ky(e,n);f(t)?o[a]={children:t.map(e=>Ky(e,n)),level:r}:l.value&&(o[a]={children:[],lazy:!0,level:r})},s.value,a.value,l.value),o},v=(e=!1,o)=>{var r,a;o||(o=null==(r=u.store)?void 0:r.states.defaultExpandAll.value);const s=c.value,i=d.value,p=Object.keys(s),f={};if(p.length){const r=Ot(n),a=[],u=(n,l)=>{if(e)return t.value?o||t.value.includes(l):!(!o&&!(null==n?void 0:n.expanded));{const e=o||t.value&&t.value.includes(l);return!(!(null==n?void 0:n.expanded)&&!e)}};p.forEach(e=>{const t=r[e],n={...s[e]};if(n.expanded=u(t,e),n.lazy){const{loaded:o=!1,loading:l=!1}=t||{};n.loaded=!!o,n.loading=!!l,a.push(e)}f[e]=n});const c=Object.keys(i);l.value&&c.length&&a.length&&c.forEach(e=>{var t;const n=r[e],o=i[e].children;if(a.includes(e)){if(0!==(null==(t=f[e].children)?void 0:t.length))throw new Error("[ElTable]children must be an empty array.");f[e].children=o}else{const{loaded:t=!1,loading:l=!1}=n||{};f[e]={lazy:!0,loaded:!!t,loading:!!l,expanded:u(n,e),children:o,level:void 0}}})}n.value=f,null==(a=u.store)||a.updateTableScrollY()};wn(()=>t.value,()=>{v(!0)}),wn(()=>c.value,()=>{v()}),wn(()=>d.value,()=>{v()});const h=e=>l.value&&e&&"loaded"in e&&!e.loaded,m=(t,o)=>{u.store.assertRowKey();const l=e.rowKey.value,r=Ky(t,l),a=r&&n.value[r];if(r&&a&&"expanded"in a){const e=a.expanded;o=Xc(o)?!a.expanded:o,n.value[r].expanded=o,e!==o&&u.emit("expand-change",t,o),o&&h(a)&&g(t,r,a),u.store.updateTableScrollY()}},g=(e,t,o)=>{const{load:l}=u.props;l&&!n.value[t].loaded&&(n.value[t].loading=!0,l(e,o,o=>{if(!f(o))throw new TypeError("[ElTable] data must be an array");n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,o.length&&(r.value[t]=o),u.emit("expand-change",e,!0)}))};return{loadData:g,loadOrToggle:t=>{u.store.assertRowKey();const o=e.rowKey.value,l=Ky(t,o),r=n.value[l];h(r)?g(t,l,r):m(t,void 0)},toggleTreeExpansion:m,updateTreeExpandKeys:e=>{t.value=e,v()},updateTreeData:v,updateKeyChildren:(e,t)=>{const{lazy:n,rowKey:o}=u.props;if(n){if(!o)throw new Error("[Table] rowKey is required in updateKeyChild");r.value[e]&&(r.value[e]=t)}},normalize:p,states:{expandRowKeys:t,treeData:n,indent:o,lazy:l,lazyTreeNodeMap:r,lazyColumnIdentifier:a,childrenColumnName:s,checkStrictly:i}}}({data:l,rowKey:o}),{updateCurrentRowData:J,updateCurrentRow:Q,setCurrentRowKey:ee,states:te}=function(e){const t=ar(),n=St(null),o=St(null),l=()=>{n.value=null},r=n=>{var l;const{data:r,rowKey:a}=e;let s=null;a.value&&(s=null!=(l=(Ot(r)||[]).find(e=>Ky(e,a.value)===n))?l:null),o.value=null!=s?s:null,t.emit("current-change",o.value,null)};return{setCurrentRowKey:e=>{t.store.assertRowKey(),n.value=e,r(e)},restoreCurrentRowKey:l,setCurrentRowByKey:r,updateCurrentRow:e=>{const n=o.value;if(e&&e!==n)return o.value=e,void t.emit("current-change",o.value,n);!e&&n&&(o.value=null,t.emit("current-change",null,n))},updateCurrentRowData:()=>{const a=e.rowKey.value,s=e.data.value||[],i=o.value;if(i&&!s.includes(i)){if(a){const e=Ky(i,a);r(e)}else o.value=null;Dc(o.value)&&t.emit("current-change",null,i)}else n.value&&(r(n.value),l())},states:{_currentRowKey:n,currentRow:o}}}({data:l,rowKey:o});return{assertRowKey:()=>{if(!o.value)throw new Error("[ElTable] prop row-key is required")},updateColumns:N,scheduleLayout:I,isSelected:B,clearSelection:()=>{x.value=!1;const e=C.value;C.value=[],e.length&&t.emit("selection-change",[])},cleanSelection:()=>{var e,n;let r;if(o.value){r=[];const a=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.childrenColumnName.value,s=Gy(l.value,o.value,!0,a);for(const e in L.value)p(L.value,e)&&!s[e]&&r.push(L.value[e].row)}else r=C.value.filter(e=>!l.value.includes(e));if(r.length){const e=C.value.filter(e=>!r.includes(e));C.value=e,t.emit("selection-change",e.slice())}},getSelectionRows:()=>(C.value||[]).slice(),toggleRowSelection:(e,n,r=!0,a=!1)=>{var s,i,u,c;const d={children:null==(i=null==(s=null==t?void 0:t.store)?void 0:s.states)?void 0:i.childrenColumnName.value,checkStrictly:null==(c=null==(u=null==t?void 0:t.store)?void 0:u.states)?void 0:c.checkStrictly.value};if(Zy(C.value,e,n,d,a?void 0:k.value,l.value.indexOf(e),o.value)){const n=(C.value||[]).slice();r&&t.emit("select",n,e),t.emit("selection-change",n)}},_toggleAllSelection:()=>{var e,n;const o=S.value?!x.value:!(x.value||C.value.length);x.value=o;let r=!1,a=0;const s=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.rowKey.value,{childrenColumnName:i}=t.store.states,u={children:i.value,checkStrictly:!1};l.value.forEach((e,t)=>{const n=t+a;Zy(C.value,e,o,u,k.value,n,s)&&(r=!0),a+=F(Ky(e,s))}),r&&t.emit("selection-change",C.value?C.value.slice():[]),t.emit("select-all",(C.value||[]).slice())},toggleAllSelection:null,updateAllSelected:()=>{var e;if(0===(null==(e=l.value)?void 0:e.length))return void(x.value=!1);const{childrenColumnName:n}=t.store.states;let o=0,r=0;const a=e=>{var t;for(const l of e){const e=k.value&&k.value.call(null,l,o);if(B(l))r++;else if(!k.value||e)return!1;if(o++,(null==(t=l[n.value])?void 0:t.length)&&!a(l[n.value]))return!1}return!0},s=a(l.value||[]);x.value=0!==r&&s},updateFilters:(e,t)=>{const n={};return uu(e).forEach(e=>{E.value[e.id]=t,n[e.columnKey||e.id]=t}),n},updateCurrentRow:Q,updateSort:$,execFilter:j,execSort:V,execQuery:(e=void 0)=>{(null==e?void 0:e.filter)||j(),V()},clearFilter:e=>{const{tableHeaderRef:n}=t.refs;if(!n)return;const o=Object.assign({},n.filterPanels),l=Object.keys(o);if(l.length)if(b(e)&&(e=[e]),f(e)){const n=e.map(e=>function(e,t){let n=null;for(let o=0;o{const t=n.find(t=>t.id===e);t&&(t.filteredValue=[])}),t.store.commit("filterChange",{column:n,values:[],silent:!0,multi:!0})}else l.forEach(e=>{const t=u.value.find(t=>t.id===e);t&&(t.filteredValue=[])}),E.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:()=>{A.value&&($(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},toggleRowExpansion:z,setExpandRowKeysAdapter:e=>{D(e),U(e)},setCurrentRowKey:ee,toggleRowExpansionAdapter:(e,t)=>{u.value.some(({type:e})=>"expand"===e)?z(e,t):K(e,t)},isRowExpanded:q,updateExpandRows:H,updateCurrentRowData:J,loadOrToggle:X,updateTreeData:G,updateKeyChildren:Y,states:{tableSize:n,rowKey:o,data:l,_data:r,isComplex:a,_columns:s,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:v,fixedLeafColumns:h,rightFixedLeafColumns:m,updateOrderFns:[],leafColumnsLength:g,fixedLeafColumnsLength:y,rightFixedLeafColumnsLength:w,isAllSelected:x,selection:C,reserveSelection:_,selectOnIndeterminate:S,selectable:k,filters:E,filteredData:T,sortingColumn:A,sortProp:O,sortOrder:M,hoverRow:R,...W,...Z,...te}}}function dw(e,t){return e.map(e=>{var n;return e.id===t.id?t:((null==(n=e.children)?void 0:n.length)&&(e.children=dw(e.children,t)),e)})}function pw(e){e.forEach(e=>{var t,n;e.no=null==(t=e.getColumnIndex)?void 0:t.call(e),(null==(n=e.children)?void 0:n.length)&&pw(e.children)}),e.sort((e,t)=>e.no-t.no)}const fw={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"},"treeProps.checkStrictly":{key:"checkStrictly",default:!1}};function vw(e,t){if(!e)throw new Error("Table is required.");const n=function(){const e=ar(),t=cw(),n=Wa("table"),{t:o}=Rd();return{ns:n,t:o,...t,mutations:{setData(t,n){const o=Ot(t._data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),Ot(t.reserveSelection)?e.store.assertRowKey():o?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,o,l){var r;const a=Ot(t._columns);let s=[];o?(o&&!o.children&&(o.children=[]),null==(r=o.children)||r.push(n),s=dw(a,o)):(a.push(n),s=a),pw(s),t._columns.value=s,t.updateOrderFns.push(l),"selection"===n.type&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(t,n){var o;(null==(o=n.getColumnIndex)?void 0:o.call(n))!==n.no&&(pw(t._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(t,n,o,l){var r;const a=Ot(t._columns)||[];if(o)null==(r=o.children)||r.splice(o.children.findIndex(e=>e.id===n.id),1),tn(()=>{var e;0===(null==(e=o.children)?void 0:e.length)&&delete o.children}),t._columns.value=dw(a,o);else{const e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}const s=t.updateOrderFns.indexOf(l);s>-1&&t.updateOrderFns.splice(s,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){const{prop:o,order:l,init:r}=n;if(o){const n=Ot(t.columns).find(e=>e.property===o);n&&(n.order=l,e.store.updateSort(n,o,l),e.store.commit("changeSortCondition",{init:r}))}},changeSortCondition(t,n){const{sortingColumn:o,sortProp:l,sortOrder:r}=t,a=Ot(o),s=Ot(l),i=Ot(r);Dc(i)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),n&&(n.silent||n.init)||e.emit("sort-change",{column:a,prop:s,order:i}),e.store.updateTableScrollY()},filterChange(t,n){const{column:o,values:l,silent:r}=n,a=e.store.updateFilters(o,l);e.store.execQuery(),r||e.emit("filter-change",a),e.store.updateTableScrollY()},toggleAllSelection(){var t,n;null==(n=(t=e.store).toggleAllSelection)||n.call(t)},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},commit:function(t,...n){const o=e.store.mutations;if(!o[t])throw new Error(`Action not found: ${t}`);o[t].apply(e,[e.store.states,...n])},updateTableScrollY:function(){tn(()=>e.layout.updateScrollY.apply(e.layout))}}}();return n.toggleAllSelection=Mc(n._toggleAllSelection,10),Object.keys(fw).forEach(e=>{hw(mw(t,e),e,n)}),function(e,t){Object.keys(fw).forEach(n=>{wn(()=>mw(t,n),t=>{hw(t,n,e)})})}(n,t),n}function hw(e,t,n){let o=e,l=fw[t];w(l)&&(o=o||l.default,l=l.key),n.states[l].value=o}function mw(e,t){if(t.includes(".")){const n=t.split(".");let o=e;return n.forEach(e=>{o=o[e]}),o}return e[t]}class gw{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=St(null),this.scrollX=St(!1),this.scrollY=St(!1),this.bodyWidth=St(null),this.fixedWidth=St(null),this.rightFixedWidth=St(null),this.gutterWidth=0;for(const t in e)p(e,t)&&(_t(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(Dc(this.height.value))return!1;const e=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(null==e?void 0:e.wrapRef)){let t=!0;const n=this.scrollY.value;return t=e.wrapRef.scrollHeight>e.wrapRef.clientHeight,this.scrollY.value=t,n!==t}return!1}setHeight(e,t="height"){if(!ld)return;const n=this.table.vnode.el;var o;e=Jc(o=e)?o:b(o)?/^\d+(?:px)?$/.test(o)?Number.parseInt(o,10):o:null,this.height.value=Number(e),n||!e&&0!==e?n&&Jc(e)?(n.style[t]=`${e}px`,this.updateElsHeight()):n&&b(e)&&(n.style[t]=e,this.updateElsHeight()):tn(()=>this.setHeight(e,t))}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){var e;if(!ld)return;const t=this.fit,n=null==(e=this.table.vnode.el)?void 0:e.clientWidth;let o=0;const l=this.getFlattenColumns(),r=l.filter(e=>!Jc(e.width));if(l.forEach(e=>{Jc(e.width)&&e.realWidth&&(e.realWidth=null)}),r.length>0&&t){if(l.forEach(e=>{o+=Number(e.width||e.minWidth||80)}),o<=n){this.scrollX.value=!1;const e=n-o;if(1===r.length)r[0].realWidth=Number(r[0].minWidth||80)+e;else{const t=e/r.reduce((e,t)=>e+Number(t.minWidth||80),0);let n=0;r.forEach((e,o)=>{if(0===o)return;const l=Math.floor(Number(e.minWidth||80)*t);n+=l,e.realWidth=Number(e.minWidth||80)+l}),r[0].realWidth=Number(r[0].minWidth||80)+e-n}}else this.scrollX.value=!0,r.forEach(e=>{e.realWidth=Number(e.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(e=>{e.width||e.minWidth?e.realWidth=Number(e.width||e.minWidth):e.realWidth=80,o+=e.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const a=this.store.states.fixedColumns.value;if(a.length>0){let e=0;a.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.fixedWidth.value=e}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let e=0;s.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach(t=>{var n,o;switch(e){case"columns":null==(n=t.state)||n.onColumnsChange(this);break;case"scrollable":null==(o=t.state)||o.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}})}}const bw=Xn({name:"ElTableFilterPanel",components:{ElCheckbox:tg,ElCheckboxGroup:ng,ElScrollbar:Mf,ElTooltip:im,ElIcon:ip,ArrowDown:up,ArrowUp:pp},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:Wh.appendTo},setup(e){const t=ar(),{t:n}=Rd(),o=Wa("table-filter"),l=null==t?void 0:t.parent;e.column&&!l.filterPanels.value[e.column.id]&&(l.filterPanels.value[e.column.id]=t);const r=St(null),a=St(null),s=St(0),i=yr(()=>e.column&&e.column.filters),u=yr(()=>e.column&&e.column.filterClassName?`${o.b()} ${e.column.filterClassName}`:o.b()),c=yr({get:()=>{var t;return((null==(t=e.column)?void 0:t.filteredValue)||[])[0]},set:e=>{d.value&&(ed(e)?d.value.splice(0,1):d.value.splice(0,1,e))}}),d=yr({get:()=>e.column&&e.column.filteredValue||[],set(t){var n;e.column&&(null==(n=e.upDataColumn)||n.call(e,"filteredValue",t))}}),p=yr(()=>!e.column||e.column.filterMultiple),f=()=>{var e;null==(e=r.value)||e.onClose()},v=(e,t)=>{c.value=e,s.value=t,ed(e)?h([]):h(d.value),f()},h=t=>{var n,o;null==(n=e.store)||n.commit("filterChange",{column:e.column,values:t}),null==(o=e.store)||o.updateAllSelected()},m=()=>{if(ed(c))return void(s.value=0);const e=(i.value||[]).findIndex(e=>e.value===c.value);s.value=e>=0?e+1:0};return{multiple:p,filterClassName:u,filteredValue:d,filterValue:c,filters:i,handleConfirm:()=>{h(d.value),f()},handleReset:()=>{d.value=[],h(d.value),f()},handleSelect:v,isPropAbsent:ed,isActive:e=>e.value===c.value,t:n,ns:o,tooltipRef:r,rootRef:a,checkedIndex:s,handleShowTooltip:()=>{var t,n;null==(t=a.value)||t.focus(),!p.value&&m(),e.column&&(null==(n=e.upDataColumn)||n.call(e,"filterOpened",!0))},handleHideTooltip:()=>{var t;e.column&&(null==(t=e.upDataColumn)||t.call(e,"filterOpened",!1))},handleKeydown:e=>{var t,n;const l=cv(e),r=(i.value?i.value.length:0)+1;let u=s.value,c=!0;switch(l){case iv.down:case iv.right:u=(u+1)%r;break;case iv.up:case iv.left:u=(u-1+r)%r;break;case iv.tab:f(),c=!1;break;case iv.enter:case iv.space:if(0===u)v(null,0);else{const e=(i.value||[])[u-1];e.value&&v(e.value,u)}break;default:c=!1}c&&e.preventDefault(),s.value=u,null==(n=null==(t=a.value)?void 0:t.querySelector(`.${o.e("list-item")}:nth-child(${u+1})`))||n.focus()}}}}),yw=["disabled"],ww=["tabindex","aria-checked"],xw=["tabindex","aria-checked","onClick"],Cw=["aria-label"];var _w=Kd(bw,[["render",function(e,t,n,o,l,r){const a=xo("el-checkbox"),s=xo("el-checkbox-group"),i=xo("el-scrollbar"),u=xo("arrow-up"),c=xo("arrow-down"),d=xo("el-icon"),p=xo("el-tooltip");return Fl(),zl(p,{ref:"tooltipRef",offset:0,placement:e.placement,"show-arrow":!1,trigger:"click",role:"dialog",teleported:"",effect:"light",pure:"",loop:"","popper-class":e.filterClassName,persistent:"","append-to":e.appendTo,onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},{content:pn(()=>[e.multiple?(Fl(),Dl("div",{key:0,ref:"rootRef",tabindex:"-1",class:q(e.ns.e("multiple"))},[Kl("div",{class:q(e.ns.e("content"))},[Gl(i,{"wrap-class":e.ns.e("wrap")},{default:pn(()=>[Gl(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.filteredValue=t),class:q(e.ns.e("checkbox-group"))},{default:pn(()=>[(Fl(!0),Dl(Rl,null,Eo(e.filters,e=>(Fl(),zl(a,{key:e.value,value:e.value},{default:pn(()=>[Xl(Z(e.text),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),Kl("div",{class:q(e.ns.e("bottom"))},[Kl("button",{class:q(e.ns.is("disabled",0===e.filteredValue.length)),disabled:0===e.filteredValue.length,type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleConfirm&&e.handleConfirm(...t))},Z(e.t("el.table.confirmFilter")),11,yw),Kl("button",{type:"button",onClick:t[2]||(t[2]=(...t)=>e.handleReset&&e.handleReset(...t))},Z(e.t("el.table.resetFilter")),1)],2)],2)):(Fl(),Dl("ul",{key:1,ref:"rootRef",tabindex:"-1",role:"radiogroup",class:q(e.ns.e("list")),onKeydown:t[4]||(t[4]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Kl("li",{role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isPropAbsent(e.filterValue))]),tabindex:0===e.checkedIndex?0:-1,"aria-checked":e.isPropAbsent(e.filterValue),onClick:t[3]||(t[3]=t=>e.handleSelect(null,0))},Z(e.t("el.table.clearFilter")),11,ww),(Fl(!0),Dl(Rl,null,Eo(e.filters,(t,n)=>(Fl(),Dl("li",{key:t.value,role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isActive(t))]),tabindex:e.checkedIndex===n+1?0:-1,"aria-checked":e.isActive(t),onClick:o=>e.handleSelect(t.value,n+1)},Z(t.text),11,xw))),128))],34))]),default:pn(()=>{var t;return[Kl("button",{type:"button",class:q(`${e.ns.namespace.value}-table__column-filter-trigger`),"aria-label":e.t("el.table.filterLabel",{column:(null==(t=e.column)?void 0:t.label)||""})},[Gl(d,null,{default:pn(()=>[Ao(e.$slots,"filter-icon",{},()=>{var t;return[(null==(t=e.column)?void 0:t.filterOpened)?(Fl(),zl(u,{key:0})):(Fl(),zl(c,{key:1}))]})]),_:3})],10,Cw)]}),_:3},8,["placement","popper-class","append-to","onShow","onHide"])}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function Sw(e){const t=ar();uo(()=>{n.value.addObserver(t)}),co(()=>{o(n.value),l(n.value)}),fo(()=>{o(n.value),l(n.value)}),ho(()=>{n.value.removeObserver(t)});const n=yr(()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t}),o=t=>{var n;const o=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col"))||[];if(!o.length)return;const l=t.getFlattenColumns(),r={};l.forEach(e=>{r[e.id]=e});for(let e=0,a=o.length;e{var n,o;const l=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let e=0,a=l.length;e{const t=[];return e.forEach(e=>{e.children?(t.push(e),t.push.apply(t,Ew(e.children))):t.push(e)}),t},Tw=e=>{let t=1;const n=(e,o)=>{if(o&&(e.level=o.level+1,t{n(o,e),t+=o.colSpan}),e.colSpan=t}else e.colSpan=1};e.forEach(e=>{e.level=1,n(e,void 0)});const o=[];for(let l=0;l{e.children?(e.rowSpan=1,e.children.forEach(e=>e.isSubColumn=!0)):e.rowSpan=t-e.level+1,o[e.level-1].push(e)}),o};var Aw=Xn({name:"ElTableHeader",components:{ElCheckbox:tg},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){const n=ar(),o=mn(kw),l=Wa("table"),r=St({}),{onColumnsChange:a,onScrollableChange:s}=Sw(o),i="auto"===(null==o?void 0:o.props.tableLayout),u=pt(new Map),c=St();let d;const p=()=>{d=setTimeout(()=>{u.size>0&&(u.forEach((e,t)=>{const n=c.value.querySelector(`.${t.replace(/\s/g,".")}`);if(n){const t=n.getBoundingClientRect().width;e.width=t||e.width}}),u.clear())})};wn(u,p),vo(()=>{d&&(clearTimeout(d),d=void 0)}),co(async()=>{await tn(),await tn();const{prop:t,order:n}=e.defaultSort;null==o||o.store.commit("sort",{prop:t,order:n,init:!0}),p()});const{handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x}=function(e,t){const n=ar(),o=mn(kw),l=e=>{e.stopPropagation()},r=St(null),a=St(!1),s=St(),i=(t,n,l)=>{var r;t.stopPropagation();const a=n.order===l?null:l||(({order:e,sortOrders:t})=>{if(""===e)return t[0];const n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]})(n),s=null==(r=t.target)?void 0:r.closest("th");if(s&&np(s,"noclick"))return void lp(s,"noclick");if(!n.sortable)return;const i=t.currentTarget;if(["ascending","descending"].some(e=>np(i,e)&&!n.sortOrders.includes(e)))return;const u=e.store.states;let c,d=u.sortProp.value;const p=u.sortingColumn.value;(p!==n||p===n&&Dc(p.order))&&(p&&(p.order=null),u.sortingColumn.value=n,d=n.property),c=n.order=a||null,u.sortProp.value=d,u.sortOrder.value=c,null==o||o.store.commit("changeSortCondition")};return{handleHeaderClick:(e,t)=>{!t.filters&&t.sortable?i(e,t,!1):t.filterable&&!t.sortable&&l(e),null==o||o.emit("header-click",t,e)},handleHeaderContextMenu:(e,t)=>{null==o||o.emit("header-contextmenu",t,e)},handleMouseDown:(l,i)=>{var u,c;if(ld&&!(i.children&&i.children.length>0)&&r.value&&e.border&&r.value.id===i.id){a.value=!0;const d=o;t("set-drag-visible",!0);const p=null==d?void 0:d.vnode.el,f=null==p?void 0:p.getBoundingClientRect().left,v=null==(c=null==(u=null==n?void 0:n.vnode)?void 0:u.el)?void 0:c.querySelector(`th.${i.id}`),h=v.getBoundingClientRect(),m=h.left-f+30;op(v,"noclick"),s.value={startMouseLeft:l.clientX,startLeft:h.right-f,startColumnLeft:h.left-f,tableLeft:f};const g=null==d?void 0:d.refs.resizeProxy;g.style.left=`${s.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const b=e=>{const t=e.clientX-s.value.startMouseLeft,n=s.value.startLeft+t;g.style.left=`${Math.max(m,n)}px`},y=()=>{if(a.value){const{startColumnLeft:n,startLeft:o}=s.value,u=Number.parseInt(g.style.left,10)-n;i.width=i.realWidth=u,null==d||d.emit("header-dragend",i.width,o-n,i,l),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",a.value=!1,r.value=null,s.value=void 0,t("set-drag-visible",!1)}document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",y),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{lp(v,"noclick")},0)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",y)}},handleMouseMove:(t,n)=>{var o;if(!e.border||n.children&&n.children.length>0)return;const l=t.target,s=Qc(l)?l.closest("th"):null;if(!s)return;const i=np(s,"is-sortable");if(i){const e=a.value?"col-resize":"";s.style.cursor=e;const t=s.querySelector(".caret-wrapper");t&&(t.style.cursor=e)}if(!n.resizable||a.value)return void(r.value=null);const u=s.getBoundingClientRect(),c=(null==(o=s.parentNode)?void 0:o.lastElementChild)===s,d=e.allowDragLastColumn||!c,p=u.width>12&&u.right-t.clientX<8&&d,f=p?"col-resize":"";document.body.style.cursor=f,r.value=p?n:null,i&&(s.style.cursor=f)},handleMouseOut:()=>{ld&&!a.value&&(document.body.style.cursor="")},handleSortClick:i,handleFilterClick:l}}(e,t),{getHeaderRowStyle:C,getHeaderRowClass:_,getHeaderCellStyle:S,getHeaderCellClass:k}=function(e){const t=mn(kw),n=Wa("table");return{getHeaderRowStyle:e=>{const n=null==t?void 0:t.props.headerRowStyle;return g(n)?n.call(null,{rowIndex:e}):n},getHeaderRowClass:e=>{const n=[],o=null==t?void 0:t.props.headerRowClassName;return b(o)?n.push(o):g(o)&&n.push(o.call(null,{rowIndex:e})),n.join(" ")},getHeaderCellStyle:(n,o,l,r)=>{var a;let s=null!=(a=null==t?void 0:t.props.headerCellStyle)?a:{};g(s)&&(s=s.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,r.fixed,e.store,l);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getHeaderCellClass:(o,l,r,a)=>{const s=lw(n.b(),l,a.fixed,e.store,r),i=[a.id,a.order,a.headerAlign,a.className,a.labelClassName,...s];a.children||i.push("is-leaf"),a.sortable&&i.push("is-sortable");const u=null==t?void 0:t.props.headerCellClassName;return b(u)?i.push(u):g(u)&&i.push(u.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),i.push(n.e("cell")),i.filter(e=>Boolean(e)).join(" ")}}}(e),{isGroup:E,toggleAllSelection:T,columnRows:A}=function(e){const t=mn(kw),n=yr(()=>Tw(e.store.states.originColumns.value));return{isGroup:yr(()=>{const e=n.value.length>1;return e&&t&&(t.state.isGroup.value=!0),e}),toggleAllSelection:e=>{e.stopPropagation(),null==t||t.store.commit("toggleAllSelection")},columnRows:n}}(e),{t:O}=Rd();return n.state={onColumnsChange:a,onScrollableChange:s},n.filterPanels=r,{ns:l,t:O,filterPanels:r,onColumnsChange:a,onScrollableChange:s,columnRows:A,getHeaderRowClass:_,getHeaderRowStyle:C,getHeaderCellClass:k,getHeaderCellStyle:S,handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x,isGroup:E,toggleAllSelection:T,saveIndexSelection:u,isTableLayoutAuto:i,theadRef:c,updateFixedColumnStyle:p}},render(){const{ns:e,t:t,isGroup:n,columnRows:o,getHeaderCellStyle:l,getHeaderCellClass:r,getHeaderRowClass:a,getHeaderRowStyle:s,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:d,handleSortClick:p,handleMouseOut:f,store:v,$parent:h,saveIndexSelection:m,isTableLayoutAuto:g}=this;let b=1;return wr("thead",{ref:"theadRef",class:e.is("group",n)},o.map((e,n)=>wr("tr",{class:a(n),key:n,style:s(n)},e.map((o,a)=>{o.rowSpan>b&&(b=o.rowSpan);const s=r(n,a,e,o);return g&&o.fixed&&m.set(s,o),wr("th",{class:s,colspan:o.colSpan,key:`${o.id}-thead`,rowspan:o.rowSpan,scope:o.colSpan>1?"colgroup":"col",ariaSort:o.sortable?o.order:void 0,style:l(n,a,e,o),onClick:e=>{var t;(null==(t=e.currentTarget)?void 0:t.classList.contains("noclick"))||i(e,o)},onContextmenu:e=>u(e,o),onMousedown:e=>c(e,o),onMousemove:e=>d(e,o),onMouseout:f},[wr("div",{class:["cell",o.filteredValue&&o.filteredValue.length>0?"highlight":""]},[o.renderHeader?o.renderHeader({column:o,$index:a,store:v,_self:h}):o.label,o.sortable&&wr("button",{type:"button",class:"caret-wrapper","aria-label":t("el.table.sortLabel",{column:o.label||""}),onClick:e=>p(e,o)},[wr("i",{onClick:e=>p(e,o,"ascending"),class:"sort-caret ascending"}),wr("i",{onClick:e=>p(e,o,"descending"),class:"sort-caret descending"})]),o.filterable&&wr(_w,{store:v,placement:o.filterPlacement||"bottom-start",appendTo:null==h?void 0:h.appendFilterPanelTo,column:o,upDataColumn:(e,t)=>{o[e]=t}},{"filter-icon":()=>o.renderFilterIcon?o.renderFilterIcon({filterOpened:o.filterOpened}):null})])])}))))}});function Ow(e,t,n=.03){return e-t>n}function Mw(e){const t=mn(kw),n=St(""),o=St(wr("div")),l=(n,o,l)=>{var r,a,s;const i=t,u=Hy(n);let c=null;const d=null==(r=null==i?void 0:i.vnode.el)?void 0:r.dataset.prefix;u&&(c=Uy({columns:null!=(s=null==(a=e.store)?void 0:a.states.columns.value)?s:[]},u,d),c&&(null==i||i.emit(`cell-${l}`,o,c,u,n))),null==i||i.emit(`row-${l}`,o,c,n)},r=Mc(t=>{var n;null==(n=e.store)||n.commit("setHoverRow",t)},30),a=Mc(()=>{var t;null==(t=e.store)||t.commit("setHoverRow",null)},30),s=(e,t,n)=>{var o;let l=null==(o=null==t?void 0:t.target)?void 0:o.parentNode;for(;e>1&&(l=null==l?void 0:l.nextSibling,l&&"TR"===l.nodeName);)n(l,"hover-row hover-fixed-row"),e--};return{handleDoubleClick:(e,t)=>{l(e,t,"dblclick")},handleClick:(t,n)=>{var o;null==(o=e.store)||o.commit("setCurrentRow",n),l(t,n,"click")},handleContextMenu:(e,t)=>{l(e,t,"contextmenu")},handleMouseEnter:r,handleMouseLeave:a,handleCellMouseEnter:(n,o,l)=>{var r,a,i,u,c,d,p,f,v;if(!t)return;const h=t,m=Hy(n),g=null==(r=null==h?void 0:h.vnode.el)?void 0:r.dataset.prefix;let b=null;if(m){if(b=Uy({columns:null!=(i=null==(a=e.store)?void 0:a.states.columns.value)?i:[]},m,g),!b)return;m.rowSpan>1&&s(m.rowSpan,n,op);const t=h.hoverState={cell:m,column:b,row:o};null==h||h.emit("cell-mouse-enter",t.row,t.column,t.cell,n)}if(!l)return void((null==(u=Qy)?void 0:u.trigger)===m&&(null==(c=Qy)||c()));const y=n.target.querySelector(".cell");if(!(np(y,`${g}-tooltip`)&&y.childNodes.length&&(null==(d=y.textContent)?void 0:d.trim())))return;const w=document.createRange();w.setStart(y,0),w.setEnd(y,y.childNodes.length);const{width:x,height:C}=w.getBoundingClientRect(),{width:_,height:S}=y.getBoundingClientRect(),{top:k,left:E,right:T,bottom:A}=(e=>{const t=window.getComputedStyle(e,null);return{left:Number.parseInt(t.paddingLeft,10)||0,right:Number.parseInt(t.paddingRight,10)||0,top:Number.parseInt(t.paddingTop,10)||0,bottom:Number.parseInt(t.paddingBottom,10)||0}})(y),O=k+A;Ow(x+(E+T),_)||Ow(C+O,S)||Ow(y.scrollWidth,_)?ew(l,null!=(p=(null==m?void 0:m.innerText)||(null==m?void 0:m.textContent))?p:"",o,b,m,h):(null==(f=Qy)?void 0:f.trigger)===m&&(null==(v=Qy)||v())},handleCellMouseLeave:e=>{const n=Hy(e);if(!n)return;n.rowSpan>1&&s(n.rowSpan,e,lp);const o=null==t?void 0:t.hoverState;null==t||t.emit("cell-mouse-leave",null==o?void 0:o.row,null==o?void 0:o.column,null==o?void 0:o.cell,e)},tooltipContent:n,tooltipTrigger:o}}const Rw=["colspan","rowspan"];var Lw=Kd(Xn({name:"TableTdWrapper",__name:"td-wrapper",props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup:e=>(t,n)=>(Fl(),Dl("td",{colspan:e.colspan,rowspan:e.rowspan},[Ao(t.$slots,"default")],8,Rw))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table-body/td-wrapper.vue"]]);function Pw(e){const t=mn(kw),n=Wa("table"),{handleDoubleClick:o,handleClick:l,handleContextMenu:r,handleMouseEnter:a,handleMouseLeave:s,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:d}=Mw(e),{getRowStyle:p,getRowClass:v,getCellStyle:h,getCellClass:m,getSpan:y,getColspanRealWidth:x}=function(e){const t=mn(kw),n=Wa("table");return{getRowStyle:(e,n)=>{const o=null==t?void 0:t.props.rowStyle;return g(o)?o.call(null,{row:e,rowIndex:n}):o||null},getRowClass:(o,l,r)=>{var a;const s=[n.e("row")];(null==t?void 0:t.props.highlightCurrentRow)&&o===(null==(a=e.store)?void 0:a.states.currentRow.value)&&s.push("current-row"),e.stripe&&r%2==1&&s.push(n.em("row","striped"));const i=null==t?void 0:t.props.rowClassName;return b(i)?s.push(i):g(i)&&s.push(i.call(null,{row:o,rowIndex:l})),s},getCellStyle:(n,o,l,r)=>{const a=null==t?void 0:t.props.cellStyle;let s=null!=a?a:{};g(a)&&(s=a.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,null==e?void 0:e.fixed,e.store);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getCellClass:(o,l,r,a,s)=>{const i=lw(n.b(),l,null==e?void 0:e.fixed,e.store,void 0,s),u=[a.id,a.align,a.className,...i],c=null==t?void 0:t.props.cellClassName;return b(c)?u.push(c):g(c)&&u.push(c.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),u.push(n.e("cell")),u.filter(e=>Boolean(e)).join(" ")},getSpan:(e,n,o,l)=>{let r=1,a=1;const s=null==t?void 0:t.props.spanMethod;if(g(s)){const t=s({row:e,column:n,rowIndex:o,columnIndex:l});f(t)?(r=t[0],a=t[1]):w(t)&&(r=t.rowspan,a=t.colspan)}return{rowspan:r,colspan:a}},getColspanRealWidth:(e,t,n)=>{if(t<1)return e[n].realWidth;const o=e.map(({realWidth:e,width:t})=>e||t).slice(n,n+t);return Number(o.reduce((e,t)=>Number(e)+Number(t),-1))}}}(e);let C=-1;const _=yr(()=>{var t;return null==(t=e.store)?void 0:t.states.columns.value.findIndex(({type:e})=>"default"===e)}),S=(e,n)=>{var o;const l=null==(o=null==t?void 0:t.props)?void 0:o.rowKey;return l?Ky(e,l):n},k=(c,d,f,g=!1)=>{const{tooltipEffect:b,tooltipOptions:w,store:k}=e,{indent:T,columns:A}=k.states,O=[];let M=!0;return f&&(O.push(n.em("row",`level-${f.level}`)),M=!!f.display),0===d&&(C=-1),e.stripe&&M&&C++,O.push(...v(c,d,C)),wr("tr",{style:[M?null:{display:"none"},p(c,d)],class:O,key:S(c,d),onDblclick:e=>o(e,c),onClick:e=>l(e,c),onContextmenu:e=>r(e,c),onMouseenter:()=>a(d),onMouseleave:s},A.value.map((n,o)=>{const{rowspan:l,colspan:r}=y(c,n,d,o);if(!l||!r)return null;const a=Object.assign({},n);a.realWidth=x(A.value,r,o);const s={store:k,_self:e.context||t,column:a,row:c,$index:d,cellIndex:o,expanded:g};o===_.value&&f&&(s.treeNode={indent:f.level&&f.level*T.value,level:f.level},Zc(f.expanded)&&(s.treeNode.expanded=f.expanded,"loading"in f&&(s.treeNode.loading=f.loading),"noLazyChildren"in f&&(s.treeNode.noLazyChildren=f.noLazyChildren)));const p=`${S(c,d)},${o}`,v=a.columnKey||a.rawColumnKey||"",C=n.showOverflowTooltip&&Hc({effect:b},w,n.showOverflowTooltip);return wr(Lw,{style:h(d,o,c,n),class:m(d,o,c,n,r-1),key:`${v}${p}`,rowspan:l,colspan:r,onMouseenter:e=>i(e,c,C),onMouseleave:u},{default:()=>E(o,n,s)})}))},E=(e,t,n)=>t.renderCell(n);return{wrappedRowRender:(o,l)=>{const r=e.store,{isRowExpanded:a,assertRowKey:s}=r,{treeData:i,lazyTreeNodeMap:u,childrenColumnName:c,rowKey:d}=r.states,p=r.states.columns.value;if(p.some(({type:e})=>"expand"===e)){const e=a(o),s=k(o,l,void 0,e),i=null==t?void 0:t.renderExpanded;if(!i)return s;const u=[[s]];return(t.props.preserveExpandedContent||e)&&u[0].push(wr("tr",{key:`expanded-row__${s.key}`,style:{display:e?"":"none"}},[wr("td",{colspan:p.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[i({row:o,$index:l,store:r,expanded:e})])])),u}if(Object.keys(i.value).length){s();const e=Ky(o,d.value);let t=i.value[e],n=null;t&&(n={expanded:t.expanded,level:t.level,display:!0,noLazyChildren:void 0,loading:void 0},Zc(t.lazy)&&(n&&Zc(t.loaded)&&t.loaded&&(n.noLazyChildren=!(t.children&&t.children.length)),n.loading=t.loading));const r=[k(o,l,null!=n?n:void 0)];if(t){let n=0;const a=(e,o)=>{e&&e.length&&o&&e.forEach(e=>{const s={display:o.display&&o.expanded,level:o.level+1,expanded:!1,noLazyChildren:!1,loading:!1},p=Ky(e,d.value);if(ed(p))throw new Error("For nested data item, row-key is required.");if(t={...i.value[p]},t&&(s.expanded=t.expanded,t.level=t.level||s.level,t.display=!(!t.expanded||!s.display),Zc(t.lazy)&&(Zc(t.loaded)&&t.loaded&&(s.noLazyChildren=!(t.children&&t.children.length)),s.loading=t.loading)),n++,r.push(k(e,l+n,s)),t){const n=u.value[p]||e[c.value];a(n,t)}})};t.display=!0;const s=u.value[e]||o[c.value];a(s,t)}return r}return k(o,l,void 0)},tooltipContent:c,tooltipTrigger:d}}var Nw=Xn({name:"ElTableBody",props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},setup(e){var t;const n=ar(),o=mn(kw),l=Wa("table"),{wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}=Pw(e),{onColumnsChange:i,onScrollableChange:u}=Sw(o),c=[];return wn(null==(t=e.store)?void 0:t.states.hoverRow,(t,o)=>{var r,a;const s=null==n?void 0:n.vnode.el,i=Array.from((null==s?void 0:s.children)||[]).filter(e=>null==e?void 0:e.classList.contains(`${l.e("row")}`));let u=t;const d=null==(r=i[u])?void 0:r.childNodes;if(null==d?void 0:d.length){let e=0;Array.from(d).reduce((t,n,o)=>{var l,r;return(null==(l=d[o])?void 0:l.colSpan)>1&&(e=null==(r=d[o])?void 0:r.colSpan),"TD"!==n.nodeName&&0===e&&t.push(o),e>0&&e--,t},[]).forEach(e=>{var n;for(u=t;u>0;){const t=null==(n=i[u-1])?void 0:n.childNodes;if(t[e]&&"TD"===t[e].nodeName&&t[e].rowSpan>1){op(t[e],"hover-cell"),c.push(t[e]);break}u--}})}else c.forEach(e=>lp(e,"hover-cell")),c.length=0;(null==(a=e.store)?void 0:a.states.isComplex.value)&&ld&&ep(()=>{const e=i[o],n=i[t];e&&!e.classList.contains("hover-fixed-row")&&lp(e,"hover-row"),n&&op(n,"hover-row")})}),ho(()=>{var e;null==(e=Qy)||e()}),{ns:l,onColumnsChange:i,onScrollableChange:u,wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this;return wr("tbody",{tabIndex:-1},[((null==t?void 0:t.states.data.value)||[]).reduce((t,n)=>t.concat(e(n,t.length)),[])])}});function Iw(e){const{columns:t}=function(){const e=mn(kw),t=null==e?void 0:e.store;return{leftFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedLeafColumnsLength.value)?e:0}),rightFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columnsCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value.length)?e:0}),leftFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedColumns.value.length)?e:0}),rightFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columns:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value)?e:[]})}}(),n=Wa("table");return{getCellClasses:(t,o)=>{const l=t[o],r=[n.e("cell"),l.id,l.align,l.labelClassName,...lw(n.b(),o,l.fixed,e.store)];return l.className&&r.push(l.className),l.children||r.push(n.is("leaf")),r},getCellStyles:(t,n)=>{const o=aw(n,t.fixed,e.store);return sw(o,"left"),sw(o,"right"),o},columns:t}}var Bw=Xn({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const t=mn(kw),n=Wa("table"),{getCellClasses:o,getCellStyles:l,columns:r}=Iw(e),{onScrollableChange:a,onColumnsChange:s}=Sw(t);return{ns:n,onScrollableChange:a,onColumnsChange:s,getCellClasses:o,getCellStyles:l,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:l}=this,r=this.store.states.data.value;let a=[];return o?a=o({columns:e,data:r}):e.forEach((e,t)=>{if(0===t)return void(a[t]=l);const n=r.map(t=>Number(t[e.property])),o=[];let s=!0;n.forEach(e=>{if(!Number.isNaN(+e)){s=!1;const t=`${e}`.split(".")[1];o.push(t?t.length:0)}});const i=Math.max.apply(null,o);a[t]=s?"":n.reduce((e,t)=>{const n=Number(t);return Number.isNaN(+n)?e:Number.parseFloat((e+t).toFixed(Math.min(i,20)))},0)}),wr(wr("tfoot",[wr("tr",{},[...e.map((o,l)=>wr("td",{key:l,colspan:o.colSpan,rowspan:o.rowSpan,class:n(e,l),style:t(o,l)},[wr("div",{class:["cell",o.labelClassName]},[a[l]])]))])]))}});function Fw(e,t,n,o){const l=St(!1),r=St(null),a=St(!1),s=St({width:null,height:null,headerHeight:null}),i=St(!1),u=St(),c=St(0),d=St(0),p=St(0),f=St(0),v=St(0);wn(()=>e.height,e=>{t.setHeight(null!=e?e:null)},{immediate:!0}),wn(()=>e.maxHeight,e=>{t.setMaxHeight(null!=e?e:null)},{immediate:!0}),wn(()=>[e.currentRowKey,n.states.rowKey],([e,t])=>{Ot(t)&&Ot(e)&&n.setCurrentRowKey(`${e}`)},{immediate:!0}),wn(()=>e.data,e=>{o.store.commit("setData",e)},{immediate:!0,deep:!0}),yn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const h=yr(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),m=yr(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),g=()=>{h.value&&t.updateElsHeight(),t.updateColumnsWidth(),"undefined"!=typeof window&&requestAnimationFrame(y)};co(async()=>{await tn(),n.updateColumns(),w(),requestAnimationFrame(g);const t=o.vnode.el,l=o.refs.headerWrapper;e.flexible&&t&&t.parentElement&&(t.parentElement.style.minWidth="0"),s.value={width:u.value=t.offsetWidth,height:t.offsetHeight,headerHeight:e.showHeader&&l?l.offsetHeight:null},n.states.columns.value.forEach(e=>{e.filteredValue&&e.filteredValue.length&&o.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})}),o.$ready=!0});const b=e=>{const{tableWrapper:n}=o.refs;((e,n)=>{if(!e)return;const o=Array.from(e.classList).filter(e=>!e.startsWith("is-scrolling-"));o.push(t.scrollX.value?n:"is-scrolling-none"),e.className=o.join(" ")})(n,e)},y=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const e="is-scrolling-none";return void((e=>{const{tableWrapper:t}=o.refs;return!(!t||!t.classList.contains(e))})(e)||b(e))}const e=o.refs.scrollBarRef.wrapRef;if(!e)return;const{scrollLeft:n,offsetWidth:l,scrollWidth:r}=e,{headerWrapper:a,footerWrapper:s}=o.refs;a&&(a.scrollLeft=n),s&&(s.scrollLeft=n),b(n>=r-l-1?"is-scrolling-right":0===n?"is-scrolling-left":"is-scrolling-middle")},w=()=>{o.refs.scrollBarRef&&(o.refs.scrollBarRef.wrapRef&&hd(o.refs.scrollBarRef.wrapRef,"scroll",y,{passive:!0}),e.fit?bd(o.vnode.el,x):hd(window,"resize",x),bd(o.refs.tableInnerWrapper,()=>{var e,t;x(),null==(t=null==(e=o.refs)?void 0:e.scrollBarRef)||t.update()}))},x=()=>{var t,n,l,r;const a=o.vnode.el;if(!o.$ready||!a)return;let i=!1;const{width:m,height:b,headerHeight:y}=s.value,w=u.value=a.offsetWidth;m!==w&&(i=!0);const x=a.offsetHeight;(e.height||h.value)&&b!==x&&(i=!0);const C="fixed"===e.tableLayout?o.refs.headerWrapper:null==(t=o.refs.tableHeaderRef)?void 0:t.$el;e.showHeader&&(null==C?void 0:C.offsetHeight)!==y&&(i=!0),c.value=(null==(n=o.refs.tableWrapper)?void 0:n.scrollHeight)||0,p.value=(null==C?void 0:C.scrollHeight)||0,f.value=(null==(l=o.refs.footerWrapper)?void 0:l.offsetHeight)||0,v.value=(null==(r=o.refs.appendWrapper)?void 0:r.offsetHeight)||0,d.value=c.value-p.value-f.value-v.value,i&&(s.value={width:w,height:x,headerHeight:e.showHeader&&(null==C?void 0:C.offsetHeight)||0},g())},C=vf(),_=yr(()=>{const{bodyWidth:e,scrollY:n,gutterWidth:o}=t;return e.value?e.value-(n.value?o:0)+"px":""}),S=yr(()=>e.maxHeight?"fixed":e.tableLayout),k=yr(()=>{if(e.data&&e.data.length)return;let t="100%";e.height&&d.value&&(t=`${d.value}px`);const n=u.value;return{width:n?`${n}px`:"",height:t}}),E=yr(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${p.value+f.value}px)`}:{maxHeight:+e.maxHeight-p.value-f.value+"px"}:{});return{isHidden:l,renderExpanded:r,setDragVisible:e=>{a.value=e},isGroup:i,handleMouseLeave:()=>{o.store.commit("setHoverRow",null),o.hoverState&&(o.hoverState=null)},handleHeaderFooterMousewheel:(e,t)=>{const{pixelX:n,pixelY:l}=t;Math.abs(n)>=Math.abs(l)&&(o.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},tableSize:C,emptyBlockStyle:k,resizeProxyVisible:a,bodyWidth:_,resizeState:s,doLayout:g,tableBodyStyles:m,tableLayout:S,scrollbarViewStyle:{display:"inline-block",verticalAlign:"middle"},scrollbarStyle:E}}function $w(e){const t=St();co(()=>{(()=>{const n=e.vnode.el.querySelector(".hidden-columns"),o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(e=>e())}),t.value.observe(n,{childList:!0,subtree:!0})})()}),ho(()=>{var e;null==(e=t.value)||e.disconnect()})}var jw={data:{type:Array,default:()=>[]},size:Bd,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:[String,Object,Array],default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean};function Vw(e){const t="auto"===e.tableLayout;let n=e.columns||[];return t&&n.every(({width:e})=>Xc(e))&&(n=[]),wr("colgroup",{},n.map(n=>wr("col",(n=>{const o={key:`${e.tableLayout}_${n.id}`,style:{},name:void 0};return t?o.style={width:`${n.width}px`}:o.name=n.id,o})(n))))}Vw.props=["columns","tableLayout"];var Dw,zw,Hw,Ww,qw,Uw,Kw,Gw,Yw,Xw,Zw,Jw,Qw,ex,tx,nx=!1;function ox(){if(!nx){nx=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Jw=/\b(iPhone|iP[ao]d)/.exec(e),Qw=/\b(iP[ao]d)/.exec(e),Xw=/Android/i.exec(e),ex=/FBAN\/\w+;/i.exec(e),tx=/Mobile/i.exec(e),Zw=!!/Win64/.exec(e),t){(Dw=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(Dw=document.documentMode);var o=/(?:Trident\/(\d+.\d+))/.exec(e);Uw=o?parseFloat(o[1])+4:Dw,zw=t[2]?parseFloat(t[2]):NaN,Hw=t[3]?parseFloat(t[3]):NaN,(Ww=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),qw=t&&t[1]?parseFloat(t[1]):NaN):qw=NaN}else Dw=zw=Hw=qw=Ww=NaN;if(n){if(n[1]){var l=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Kw=!l||parseFloat(l[1].replace("_","."))}else Kw=!1;Gw=!!n[2],Yw=!!n[3]}else Kw=Gw=Yw=!1}}var lx,rx={ie:function(){return ox()||Dw},ieCompatibilityMode:function(){return ox()||Uw>Dw},ie64:function(){return rx.ie()&&Zw},firefox:function(){return ox()||zw},opera:function(){return ox()||Hw},webkit:function(){return ox()||Ww},safari:function(){return rx.webkit()},chrome:function(){return ox()||qw},windows:function(){return ox()||Gw},osx:function(){return ox()||Kw},linux:function(){return ox()||Yw},iphone:function(){return ox()||Jw},mobile:function(){return ox()||Jw||Qw||Xw||tx},nativeApp:function(){return ox()||ex},android:function(){return ox()||Xw},ipad:function(){return ox()||Qw}},ax=rx,sx={canUseDOM:!!(typeof window<"u"&&window.document&&window.document.createElement)};sx.canUseDOM&&(lx=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var ix=function(e,t){if(!sx.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var l=document.createElement("div");l.setAttribute(n,"return;"),o="function"==typeof l[n]}return!o&&lx&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o};function ux(e){var t=0,n=0,o=0,l=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=10*t,l=10*n,"deltaY"in e&&(l=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||l)&&e.deltaMode&&(1==e.deltaMode?(o*=40,l*=40):(o*=800,l*=800)),o&&!t&&(t=o<1?-1:1),l&&!n&&(n=l<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:l}}ux.getEventType=function(){return ax.firefox()?"DOMMouseScroll":ix("wheel")?"wheel":"mousewheel"};var cx=ux;const dx="_Mousewheel",px=function(e,t){if(e&&e.addEventListener){fx(e);const n=function(e){const n=cx(e);t&&Reflect.apply(t,this,[e,n])};e[dx]={wheelHandler:n},e.addEventListener("wheel",n,{passive:!0})}},fx=e=>{var t;(null==(t=e[dx])?void 0:t.wheelHandler)&&(e.removeEventListener("wheel",e[dx].wheelHandler),e[dx]=null)};let vx=1;const hx=["data-prefix"],mx={ref:"hiddenColumns",class:"hidden-columns"};var gx=Kd(Xn({name:"ElTable",directives:{Mousewheel:{beforeMount(e,t){px(e,t.value)},unmounted(e){fx(e)},updated(e,t){t.value!==t.oldValue&&px(e,t.value)}}},components:{TableHeader:Aw,TableBody:Nw,TableFooter:Bw,ElScrollbar:Mf,hColgroup:Vw},props:jw,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t:t}=Rd(),n=Wa("table"),o=ar();hn(kw,o);const l=vw(o,e);o.store=l;const r=new gw({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=r;const a=yr(()=>0===(l.states.data.value||[]).length),{setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,sort:h,updateKeyChildren:m}=function(e){return{setCurrentRow:t=>{e.commit("setCurrentRow",t)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(t,n,o=!0)=>{e.toggleRowSelection(t,n,!1,o),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit("sort",{prop:t,order:n})},updateKeyChildren:(t,n)=>{e.updateKeyChildren(t,n)}}}(l),{isHidden:g,renderExpanded:b,setDragVisible:y,isGroup:w,handleMouseLeave:x,handleHeaderFooterMousewheel:C,tableSize:_,emptyBlockStyle:S,resizeProxyVisible:k,bodyWidth:E,resizeState:T,doLayout:A,tableBodyStyles:O,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L}=Fw(e,r,l,o),{scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B}=(()=>{const e=St(),t=(t,n)=>{const o=e.value;o&&Jc(n)&&["Top","Left"].includes(t)&&o[`setScroll${t}`](n)};return{scrollBarRef:e,scrollTo:(t,n)=>{const o=e.value;o&&o.scrollTo(t,n)},setScrollTop:e=>t("Top",e),setScrollLeft:e=>t("Left",e)}})(),F=Mc(A,50),$=`${n.namespace.value}-table_${vx++}`;o.tableId=$,o.state={isGroup:w,resizeState:T,doLayout:A,debouncedUpdateLayout:F};const j=yr(()=>{var n;return null!=(n=e.sumText)?n:t("el.table.sumText")}),V=yr(()=>{var n;return null!=(n=e.emptyText)?n:t("el.table.emptyText")}),D=yr(()=>Tw(l.states.originColumns.value)[0]);return $w(o),vo(()=>{F.cancel()}),{ns:n,layout:r,store:l,columns:D,handleHeaderFooterMousewheel:C,handleMouseLeave:x,tableId:$,tableSize:_,isHidden:g,isEmpty:a,renderExpanded:b,resizeProxyVisible:k,resizeState:T,isGroup:w,bodyWidth:E,tableBodyStyles:O,emptyBlockStyle:S,debouncedUpdateLayout:F,setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,doLayout:A,sort:h,updateKeyChildren:m,t:t,setDragVisible:y,context:o,computedSumText:j,computedEmptyText:V,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L,scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B,allowDragLastColumn:e.allowDragLastColumn}}}),[["render",function(e,t,n,o,l,r){const a=xo("hColgroup"),s=xo("table-header"),i=xo("table-body"),u=xo("table-footer"),c=xo("el-scrollbar"),d=So("directives","mousewheel");return Fl(),Dl("div",{ref:"tableWrapper",class:q([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:V(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[1]||(t[1]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t))},[Kl("div",{ref:"tableInnerWrapper",class:q(e.ns.e("inner-wrapper"))},[Kl("div",mx,[Ao(e.$slots,"default")],512),e.showHeader&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:0,ref:"headerWrapper",class:q(e.ns.e("header-wrapper"))},[Kl("table",{ref:"tableHeader",class:q(e.ns.e("header")),style:V(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","append-filter-panel-to","allow-drag-last-column","onSetDragVisible"])],6)],2)),[[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),Kl("div",{ref:"bodyWrapper",class:q(e.ns.e("body-wrapper"))},[Gl(c,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:t[0]||(t[0]=t=>e.$emit("scroll",t))},{default:pn(()=>[Kl("table",{ref:"tableBody",class:q(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:V({width:e.bodyWidth,tableLayout:e.tableLayout})},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&"auto"===e.tableLayout?(Fl(),zl(s,{key:0,ref:"tableHeaderRef",class:q(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","append-filter-panel-to","onSetDragVisible"])):Zl("v-if",!0),Gl(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&"auto"===e.tableLayout?(Fl(),zl(u,{key:1,class:q(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Zl("v-if",!0)],6),e.isEmpty?(Fl(),Dl("div",{key:0,ref:"emptyBlock",style:V(e.emptyBlockStyle),class:q(e.ns.e("empty-block"))},[Kl("span",{class:q(e.ns.e("empty-text"))},[Ao(e.$slots,"empty",{},()=>[Xl(Z(e.computedEmptyText),1)])],2)],6)):Zl("v-if",!0),e.$slots.append?(Fl(),Dl("div",{key:1,ref:"appendWrapper",class:q(e.ns.e("append-wrapper"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)]),_:3},8,["view-style","wrap-style","always","tabindex","native"])],2),e.showSummary&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:1,ref:"footerWrapper",class:q(e.ns.e("footer-wrapper"))},[Kl("table",{class:q(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:V(e.tableBodyStyles)},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Xr,!e.isEmpty],[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),e.border||e.isGroup?(Fl(),Dl("div",{key:2,class:q(e.ns.e("border-left-patch"))},null,2)):Zl("v-if",!0)],2),fn(Kl("div",{ref:"resizeProxy",class:q(e.ns.e("column-resize-proxy"))},null,2),[[Xr,e.resizeProxyVisible]])],46,hx)}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const bx={selection:"table-column--selection",expand:"table__expand-column"},yx={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},wx={selection:{renderHeader({store:e}){var t;return wr(tg,{disabled:e.states.data.value&&0===e.states.data.value.length,size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":null!=(t=e.toggleAllSelection)?t:void 0,modelValue:e.states.isAllSelected.value,ariaLabel:e.t("el.table.selectAllLabel")})},renderCell:({row:e,column:t,store:n,$index:o})=>wr(tg,{disabled:!!t.selectable&&!t.selectable.call(null,e,o),size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e),ariaLabel:n.t("el.table.selectRowLabel")}),sortable:!1,resizable:!1},index:{renderHeader:({column:e})=>e.label||"#",renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return Jc(o)?n=t+o:g(o)&&(n=o(t)),wr("div",{},[n])},sortable:!1},expand:{renderHeader:({column:e})=>e.label||"",renderCell({column:e,row:t,store:n,expanded:o}){const{ns:l}=n,r=[l.e("expand-icon")];return!e.renderExpand&&o&&r.push(l.em("expand-icon","expanded")),wr("button",{type:"button","aria-label":n.t(o?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":o,class:r,onClick:function(e){e.stopPropagation(),n.toggleRowExpansion(t)}},{default:()=>e.renderExpand?[e.renderExpand({expanded:o})]:[wr(ip,null,{default:()=>[wr(dp)]})]})},sortable:!1,resizable:!1}};function xx({row:e,column:t,$index:n}){var o;const l=t.property,r=l&&Vd(e,l).value;return t&&t.formatter?t.formatter(e,t,r,n):(null==(o=null==r?void 0:r.toString)?void 0:o.call(r))||""}function Cx(e,t){return e.reduce((e,t)=>(e[t]=t,e),t)}function _x(e,t,n){const o=ar(),l=St(""),r=St(!1),a=St(),s=St(),i=Wa("table");yn(()=>{a.value=e.align?`is-${e.align}`:null,a.value}),yn(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:a.value,s.value});const u=yr(()=>{let e=o.vnode.vParent||o.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e}),c=yr(()=>{const{store:e}=o.parent;if(!e)return!1;const{treeData:t}=e.states,n=t.value;return n&&Object.keys(n).length>0}),d=St(Yy(e.width)),p=St(Xy(e.minWidth));return{columnId:l,realAlign:a,isSubColumn:r,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:e=>(d.value&&(e.width=d.value),p.value&&(e.minWidth=p.value),!d.value&&p.value&&(e.width=void 0),e.minWidth||(e.minWidth=80),e.realWidth=Number(Xc(e.width)?e.minWidth:e.width),e),setColumnForcedProps:e=>{const t=e.type,n=wx[t]||{};Object.keys(n).forEach(t=>{const o=n[t];"className"===t||Xc(o)||(e[t]=o)});const o=(e=>bx[e]||"")(t);if(o){const t=`${Ot(i.namespace)}-${o}`;e.className=e.className?`${e.className} ${t}`:t}return e},setColumnRenders:l=>{e.renderHeader||"selection"!==l.type&&(l.renderHeader=e=>{if(o.columnConfig.value.label,t.header){const n=t.header(e);if(iw(n))return wr(Rl,n)}return Xl(l.label)}),t["filter-icon"]&&(l.renderFilterIcon=e=>Ao(t,"filter-icon",e)),t.expand&&(l.renderExpand=e=>Ao(t,"expand",e));let r=l.renderCell;return"expand"===l.type?(l.renderCell=e=>wr("div",{class:"cell"},[r(e)]),n.value.renderExpanded=e=>t.default?t.default(e):t.default):(r=r||xx,l.renderCell=e=>{let a=null;if(t.default){const n=t.default(e);a=n.some(e=>e.type!==Pl)?n:r(e)}else a=r(e);const{columns:s}=n.value.store.states,u=s.value.findIndex(e=>"default"===e.type),d=function({row:e,treeNode:t,store:n},o=!1){const{ns:l}=n;if(!t)return o?[wr("span",{class:l.e("placeholder")})]:null;const r=[],a=function(o){o.stopPropagation(),t.loading||n.loadOrToggle(e)};if(t.indent&&r.push(wr("span",{class:l.e("indent"),style:{"padding-left":`${t.indent}px`}})),Zc(t.expanded)&&!t.noLazyChildren){const e=[l.e("expand-icon"),t.expanded?l.em("expand-icon","expanded"):""];let o=dp;t.loading&&(o=Ep),r.push(wr("button",{type:"button","aria-label":n.t(t.expanded?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":t.expanded,class:e,onClick:a},{default:()=>[wr(ip,{class:l.is("loading",t.loading)},{default:()=>[wr(o)]})]}))}else r.push(wr("span",{class:l.e("placeholder")}));return r}(e,c.value&&e.cellIndex===u),p={class:"cell",style:{}};return l.showOverflowTooltip&&(p.class=`${p.class} ${Ot(i.namespace)}-tooltip`,p.style={width:(e.column.realWidth||Number(e.column.width))-1+"px"}),(e=>{function t(e){var t;"ElTableColumn"===(null==(t=null==e?void 0:e.type)?void 0:t.name)&&(e.vParent=o)}f(e)?e.forEach(e=>t(e)):t(e)})(a),wr("div",p,[d,a])}),l},getPropsData:(...t)=>t.reduce((t,n)=>(f(n)&&n.forEach(n=>{t[n]=e[n]}),t),{}),getColumnElIndex:(e,t)=>Array.prototype.indexOf.call(e,t),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",o.columnConfig.value)}}}var Sx={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}};let kx=1;var Ex=Xn({name:"ElTableColumn",components:{ElCheckbox:tg},props:Sx,setup(e,{slots:t}){const n=ar(),o=St({}),l=yr(()=>{let e=n.parent;for(;e&&!e.tableId;)e=e.parent;return e}),{registerNormalWatchers:r,registerComplexWatchers:a}=function(e,t){const n=ar();return{registerComplexWatchers:()=>{const o={realWidth:"width",realMinWidth:"minWidth"},l=Cx(["fixed"],o);Object.keys(l).forEach(l=>{const r=o[l];p(t,r)&&wn(()=>t[r],t=>{let o=t;"width"===r&&"realWidth"===l&&(o=Yy(t)),"minWidth"===r&&"realMinWidth"===l&&(o=Xy(t)),n.columnConfig.value[r]=o,n.columnConfig.value[l]=o;const a="fixed"===r;e.value.store.scheduleLayout(a)})})},registerNormalWatchers:()=>{const o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},l=Cx(["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter","resizable"],o);Object.keys(l).forEach(e=>{const l=o[e];p(t,l)&&wn(()=>t[l],t=>{n.columnConfig.value[e]=t,"filters"!==e&&"filterMethod"!==e||(n.columnConfig.value.filterable=!(!n.columnConfig.value.filters&&!n.columnConfig.value.filterMethod))})}),["showOverflowTooltip"].forEach(t=>{p(e.value.props,t)&&wn(()=>e.value.props[t],e=>{n.columnConfig.value[t]=e})})}}}(l,e),{columnId:s,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:d,setColumnForcedProps:f,setColumnRenders:v,getPropsData:h,getColumnElIndex:m,realAlign:g,updateColumnOrder:b}=_x(e,t,l),y=c.value;s.value=`${"tableId"in y&&y.tableId||"columnId"in y&&y.columnId}_column_${kx++}`,uo(()=>{i.value=l.value!==y;const t=e.type||"default",c=""===e.sortable||e.sortable,m="selection"!==t&&(Xc(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip),b=Xc(e.tooltipFormatter)?y.props.tooltipFormatter:e.tooltipFormatter,w={...yx[t],id:s.value,type:t,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:m,tooltipFormatter:b,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:c,index:e.index,rawColumnKey:n.vnode.key};let x=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);x=function(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(p(t,o)){const e=t[o];Xc(e)||(n[o]=e)}return n}(w,x),x=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}(v,d,f)(x),o.value=x,r(),a()}),co(()=>{var e,t;const r=c.value,a=i.value?null==(e=r.vnode.el)?void 0:e.children:null==(t=r.refs.hiddenColumns)?void 0:t.children,s=()=>m(a||[],n.vnode.el);o.value.getColumnIndex=s,s()>-1&&l.value.store.commit("insertColumn",o.value,i.value?"columnConfig"in r&&r.columnConfig.value:null,b)}),vo(()=>{const e=o.value.getColumnIndex;(e?e():-1)>-1&&l.value.store.commit("removeColumn",o.value,i.value?"columnConfig"in y&&y.columnConfig.value:null,b)}),n.columnId=s.value,n.columnConfig=o},render(){var e,t,n;try{const o=null==(t=(e=this.$slots).default)?void 0:t.call(e,{row:{},column:{},$index:-1}),l=[];if(f(o))for(const e of o)"ElTableColumn"===(null==(n=e.type)?void 0:n.name)||2&e.shapeFlag?l.push(e):e.type===Rl&&f(e.children)&&e.children.forEach(e=>{1024===(null==e?void 0:e.patchFlag)||b(null==e?void 0:e.children)||l.push(e)});return wr("div",l)}catch(tT){return wr("div",[])}}});const Tx=Gd(gx,{TableColumn:Ex}),Ax=Yd(Ex),Ox=Symbol("tabsRootContextKey"),Mx=Nd({tabs:{type:Array,default:()=>[]},tabRefs:{type:Object,default:()=>({})}}),Rx="ElTabBar";var Lx=Kd(Xn({name:Rx,__name:"tab-bar",props:Mx,setup(e,{expose:t}){const n=e,o=mn(Ox);o||xd(Rx,"");const l=Wa("tabs"),r=St(),a=St(),s=yr(()=>{var e;return Xc(o.props.defaultValue)||Boolean(null==(e=a.value)?void 0:e.transform)}),i=()=>a.value=(()=>{let e=0,t=0;const l=["top","bottom"].includes(o.props.tabPosition)?"width":"height",r="width"===l?"x":"y",a="x"===r?"left":"top";return n.tabs.every(o=>{if(Xc(o.paneName))return!1;const r=n.tabRefs[o.paneName];if(!r)return!1;if(!o.active)return!0;e=r[`offset${Ay(a)}`],t=r[`client${Ay(l)}`];const s=window.getComputedStyle(r);return"width"===l&&(t-=Number.parseFloat(s.paddingLeft)+Number.parseFloat(s.paddingRight),e+=Number.parseFloat(s.paddingLeft)),!1}),{[l]:`${t}px`,transform:`translate${Ay(r)}(${e}px)`}})(),u=[];wn(()=>n.tabs,async()=>{await tn(),i(),u.forEach(e=>e.stop()),u.length=0,Object.values(n.tabRefs).forEach(e=>{u.push(bd(e,i))})},{immediate:!0});const c=bd(r,()=>i());return vo(()=>{u.forEach(e=>e.stop()),u.length=0,c.stop()}),t({ref:r,update:i}),(e,t)=>s.value?(Fl(),Dl("div",{key:0,ref_key:"barRef",ref:r,class:q([Ot(l).e("active-bar"),Ot(l).is(Ot(o).props.tabPosition)]),style:V(a.value)},null,6)):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-bar.vue"]]);const Px=Nd({panes:{type:Array,default:()=>[]},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean,tabindex:{type:[String,Number],default:void 0}}),Nx="ElTabNav",Ix=Xn({name:Nx,props:Px,emits:{tabClick:(e,t,n)=>n instanceof Event,tabRemove:(e,t)=>t instanceof Event},setup(e,{expose:t,emit:n}){const o=mn(Ox);o||xd(Nx,"");const l=Wa("tabs"),r=function(e={}){const{document:t=vd}=e;if(!t)return St("visible");const n=St(t.visibilityState);return hd(t,"visibilitychange",()=>{n.value=t.visibilityState}),n}(),a=function(e={}){const{window:t=fd}=e;if(!t)return St(!1);const n=St(t.document.hasFocus());return hd(t,"blur",()=>{n.value=!1}),hd(t,"focus",()=>{n.value=!0}),n}(),s=St(),i=St(),u=St(),c=St({}),d=St(),p=St(!1),f=St(0),v=St(!1),h=St(!0),m=kt(),g=yr(()=>["top","bottom"].includes(o.props.tabPosition)),b=yr(()=>g.value?"width":"height"),y=yr(()=>({transform:`translate${"width"===b.value?"X":"Y"}(-${f.value}px)`})),{width:w,height:x}=yd(s),{width:C,height:_}=yd(i,{width:0,height:0},{box:"border-box"}),S=yr(()=>g.value?w.value:x.value),k=yr(()=>g.value?C.value:_.value),{onWheel:E}=Ny({atStartEdge:yr(()=>f.value<=0),atEndEdge:yr(()=>k.value-f.value<=S.value),layout:yr(()=>g.value?"horizontal":"vertical")},e=>{var t,n,o;f.value=(t=f.value+e,n=0,void 0===(o=k.value-S.value)&&(o=n,n=void 0),void 0!==o&&(o=(o=gs(o))==o?o:0),void 0!==n&&(n=(n=gs(n))==n?n:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(gs(t),n,o))}),T=()=>{if(!s.value)return;const e=s.value[`offset${Ay(b.value)}`],t=f.value;if(!t)return;const n=t>e?t-e:0;f.value=n},A=()=>{if(!s.value||!i.value)return;const e=i.value[`offset${Ay(b.value)}`],t=s.value[`offset${Ay(b.value)}`],n=f.value;if(e-n<=t)return;const o=e-n>2*t?n+t:e-t;f.value=o},O=async()=>{const t=i.value;if(!(p.value&&u.value&&s.value&&t))return;await tn();const n=c.value[e.currentName];if(!n)return;const o=s.value,l=n.getBoundingClientRect(),r=o.getBoundingClientRect(),a=g.value?t.offsetWidth-r.width:t.offsetHeight-r.height,d=f.value;let v=d;g.value?(l.leftr.right&&(v=d+l.right-r.right)):(l.topr.bottom&&(v=d+(l.bottom-r.bottom))),v=Math.max(v,0),f.value=Math.min(v,a)},M=()=>{var t;if(!i.value||!s.value)return;e.stretch&&(null==(t=d.value)||t.update());const n=i.value[`offset${Ay(b.value)}`],o=s.value[`offset${Ay(b.value)}`],l=f.value;o0&&(f.value=0))},R=e=>{let t=0;switch(cv(e)){case iv.left:case iv.up:t=-1;break;case iv.right:case iv.down:t=1;break;default:return}const n=Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));let o=n.indexOf(e.target)+t;o<0?o=n.length-1:o>=n.length&&(o=0),n[o].focus({preventScroll:!0}),n[o].click(),L()},L=()=>{h.value&&(v.value=!0)},P=()=>v.value=!1;return wn(r,e=>{"hidden"===e?h.value=!1:"visible"===e&&setTimeout(()=>h.value=!0,50)}),wn(a,e=>{e?setTimeout(()=>h.value=!0,50):h.value=!1}),bd(u,()=>{ep(M)}),co(()=>setTimeout(()=>O(),0)),fo(()=>M()),t({scrollToActiveTab:O,removeFocus:P,focusActiveTab:async()=>{await tn();const t=c.value[e.currentName];null==t||t.focus({preventScroll:!0})},tabListRef:i,tabBarRef:d,scheduleRender:()=>At(m)}),()=>{const t=p.value?[Gl("span",{class:[l.e("nav-prev"),l.is("disabled",!p.value.prev)],onClick:T},[Gl(ip,null,{default:()=>[Gl(cp,null,null)]})]),Gl("span",{class:[l.e("nav-next"),l.is("disabled",!p.value.next)],onClick:A},[Gl(ip,null,{default:()=>[Gl(dp,null,null)]})])]:null,r=e.panes.map((t,r)=>{var a,s,i,u,d;const p=t.uid,f=t.props.disabled,h=null!=(s=null!=(a=t.props.name)?a:t.index)?s:`${r}`,m=!f&&(t.isClosable||!1!==t.props.closable&&e.editable);t.index=`${r}`;const g=m?Gl(ip,{class:"is-icon-close",onClick:e=>n("tabRemove",t,e)},{default:()=>[Gl(bp,null,null)]}):null,b=(null==(u=(i=t.slots).label)?void 0:u.call(i))||t.props.label,y=!f&&t.active?null!=(d=e.tabindex)?d:o.props.tabindex:-1;return Gl("div",{ref:e=>((e,t)=>{c.value[t]=e})(e,h),class:[l.e("item"),l.is(o.props.tabPosition),l.is("active",t.active),l.is("disabled",f),l.is("closable",m),l.is("focus",v.value)],id:`tab-${h}`,key:`tab-${p}`,"aria-controls":`pane-${h}`,role:"tab","aria-selected":t.active,tabindex:y,onFocus:()=>L(),onBlur:()=>P(),onClick:e=>{P(),n("tabClick",t,h,e)},onKeydown:e=>{const o=cv(e);!m||o!==iv.delete&&o!==iv.backspace||n("tabRemove",t,e)}},[b,g])});return m.value,Gl("div",{ref:u,class:[l.e("nav-wrap"),l.is("scrollable",!!p.value),l.is(o.props.tabPosition)]},[t,Gl("div",{class:l.e("nav-scroll"),ref:s},[e.panes.length>0?Gl("div",{class:[l.e("nav"),l.is(o.props.tabPosition),l.is("stretch",e.stretch&&["top","bottom"].includes(o.props.tabPosition))],ref:i,style:y.value,role:"tablist",onKeydown:R,onWheel:E},[e.type?null:Gl(Lx,{ref:d,tabs:[...e.panes],tabRefs:c.value},null),r]):null])])}}}),Bx=Nd({type:{type:String,values:["card","border-card",""],default:""},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},defaultValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:Function,default:()=>!0},stretch:Boolean,tabindex:{type:[String,Number],default:0}}),Fx=e=>b(e)||Jc(e),$x={[Zd]:e=>Fx(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>Fx(e),edit:(e,t)=>["remove","add"].includes(t),tabRemove:e=>Fx(e),tabAdd:()=>!0},jx=Xn({name:"ElTabs",props:Bx,emits:$x,setup(e,{emit:t,slots:n,expose:o}){var l;const r=Wa("tabs"),a=yr(()=>["left","right"].includes(e.tabPosition)),{children:s,addChild:i,removeChild:u,ChildrenSorter:c}=Dm(ar(),"ElTabPane"),d=St(),p=St(null!=(l=Xc(e.modelValue)?e.defaultValue:e.modelValue)?l:"0"),f=async(n,o=!1)=>{var l,r,a,i;if(p.value!==n&&!Xc(n))try{let u;if(e.beforeLeave){const t=e.beforeLeave(n,p.value);u=t instanceof Promise?await t:t}else u=!0;if(!1!==u){const e=null==(l=s.value.find(e=>e.paneName===p.value))?void 0:l.isFocusInsidePane();p.value=n,o&&(t(Zd,n),t("tabChange",n)),null==(a=null==(r=d.value)?void 0:r.removeFocus)||a.call(r),e&&(null==(i=d.value)||i.focusActiveTab())}}catch(tT){}},v=(e,n,o)=>{e.props.disabled||(t("tabClick",e,o),f(n,!0))},h=(e,n)=>{e.props.disabled||Xc(e.props.name)||(n.stopPropagation(),t("edit",e.props.name,"remove"),t("tabRemove",e.props.name))},m=()=>{t("edit",void 0,"add"),t("tabAdd")},g=e=>{const t=cv(e);[iv.enter,iv.numpadEnter].includes(t)&&m()},b=t=>{const n=t.el.firstChild,o=["bottom","right"].includes(e.tabPosition)?t.children[0].el:t.children[1].el;n!==o&&n.before(o)};return wn(()=>e.modelValue,e=>f(e)),wn(p,async()=>{var e;await tn(),null==(e=d.value)||e.scrollToActiveTab()}),hn(Ox,{props:e,currentName:p,registerPane:i,unregisterPane:u,nav$:d}),o({currentName:p,get tabNavRef(){return Uc(d.value,["scheduleRender"])}}),()=>{const t=n["add-icon"],o=e.editable||e.addable?Gl("div",{class:[r.e("new-tab"),a.value&&r.e("new-tab-vertical")],tabindex:e.tabindex,onClick:m,onKeydown:g},[t?Ao(n,"add-icon"):Gl(ip,{class:r.is("icon-plus")},{default:()=>[Gl(Mp,null,null)]})]):null,l=Gl("div",{class:[r.e("header"),a.value&&r.e("header-vertical"),r.is(e.tabPosition)]},[Gl(c,null,{default:()=>Gl(Ix,{ref:d,currentName:p.value,editable:e.editable,type:e.type,panes:s.value,stretch:e.stretch,onTabClick:v,onTabRemove:h},null),$stable:!0}),o]),i=Gl("div",{class:r.e("content")},[Ao(n,"default")]);return Gl("div",{class:[r.b(),r.m(e.tabPosition),{[r.m("card")]:"card"===e.type,[r.m("border-card")]:"border-card"===e.type}],onVnodeMounted:b,onVnodeUpdated:b},[i,l])}}}),Vx=Nd({label:{type:String,default:""},name:{type:[String,Number]},closable:{type:Boolean,default:void 0},disabled:Boolean,lazy:Boolean}),Dx=["id","aria-hidden","aria-labelledby"],zx="ElTabPane";var Hx=Kd(Xn({name:zx,__name:"tab-pane",props:Vx,setup(e){const t=e,n=ar(),o=No(),l=mn(Ox);l||xd(zx,"usage: ");const r=Wa("tab-pane"),a=St(),s=St(),i=yr(()=>{var e;return null!=(e=t.closable)?e:l.props.closable}),u=yr(()=>{var e;return l.currentName.value===(null!=(e=t.name)?e:s.value)}),c=St(u.value),d=yr(()=>{var e;return null!=(e=t.name)?e:s.value}),p=yr(()=>!t.lazy||c.value||u.value);wn(u,e=>{e&&(c.value=!0)});const f=pt({uid:n.uid,getVnode:()=>n.vnode,slots:o,props:t,paneName:d,active:u,index:s,isClosable:i,isFocusInsidePane:()=>{var e;return null==(e=a.value)?void 0:e.contains(document.activeElement)}});return l.registerPane(f),vo(()=>{l.unregisterPane(f)}),po(()=>{var e;o.label&&(null==(e=l.nav$.value)||e.scheduleRender())}),(e,t)=>p.value?fn((Fl(),Dl("div",{key:0,id:`pane-${d.value}`,ref_key:"paneRef",ref:a,class:q(Ot(r).b()),role:"tabpanel","aria-hidden":!u.value,"aria-labelledby":`tab-${d.value}`},[Ao(e.$slots,"default")],10,Dx)),[[Xr,u.value]]):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-pane.vue"]]);const Wx=Gd(jx,{TabPane:Hx}),qx=Yd(Hx),Ux=Gd(Kd(Xn({name:"ElText",__name:"text",props:Nd({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:Id,default:""},truncated:Boolean,lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),setup(e){const t=e,n=St(),o=vf(),l=Wa("text"),r=yr(()=>[l.b(),l.m(t.type),l.m(o.value),l.is("truncated",t.truncated),l.is("line-clamp",!Xc(t.lineClamp))]),a=()=>{var e,o,l,r,a,s,i;if(Io().title)return;let u=!1;const c=(null==(e=n.value)?void 0:e.textContent)||"";if(t.truncated){const e=null==(o=n.value)?void 0:o.offsetWidth,t=null==(l=n.value)?void 0:l.scrollWidth;e&&t&&t>e&&(u=!0)}else if(!Xc(t.lineClamp)){const e=null==(r=n.value)?void 0:r.offsetHeight,t=null==(a=n.value)?void 0:a.scrollHeight;e&&t&&t>e&&(u=!0)}u?null==(s=n.value)||s.setAttribute("title",c):null==(i=n.value)||i.removeAttribute("title")};return co(a),fo(a),(e,t)=>(Fl(),zl(_o(e.tag),{ref_key:"textRef",ref:n,class:q(r.value),style:V({"-webkit-line-clamp":e.lineClamp})},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/text/src/text.vue"]]));function Kx(e,t){let n;const o=St(!1),l=pt({...e,originalPosition:"",originalOverflow:"",visible:!1});function r(){var e,t;null==(t=null==(e=i.$el)?void 0:e.parentNode)||t.removeChild(i.$el)}function a(){if(!o.value)return;const e=l.parent;o.value=!1,e.vLoadingAddClassList=void 0,function(){const e=l.parent,t=i.ns;if(!e.vLoadingAddClassList){let n=e.getAttribute("loading-number");n=Number.parseInt(n)-1,n?e.setAttribute("loading-number",n.toString()):(lp(e,t.bm("parent","relative")),e.removeAttribute("loading-number")),lp(e,t.bm("parent","hidden"))}r(),s.unmount()}()}const s=$a(Xn({name:"ElLoading",setup(e,{expose:t}){const{ns:n,zIndex:o}=Hd("loading");return t({ns:n,zIndex:o}),()=>{const e=l.spinner||l.svg,t=wr("svg",{class:"circular",viewBox:l.svgViewBox?l.svgViewBox:"0 0 50 50",...e?{innerHTML:e}:{}},[wr("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),o=l.text?wr("p",{class:n.b("text")},[l.text]):void 0;return wr(Nr,{name:n.b("fade"),onAfterLeave:a},{default:pn(()=>[fn(Gl("div",{style:{backgroundColor:l.background||""},class:[n.b("mask"),l.customClass,n.is("fullscreen",l.fullscreen)]},[wr("div",{class:n.b("spinner")},[t,o])]),[[Xr,l.visible]])])})}}}));Object.assign(s._context,null!=t?t:{});const i=s.mount(document.createElement("div"));return{...Nt(l),setText:function(e){l.text=e},removeElLoadingChild:r,close:function(){var t;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(n),n=setTimeout(a,400),l.visible=!1,null==(t=e.closed)||t.call(e))},handleAfterLeave:a,vm:i,get $el(){return i.$el}}}let Gx;const Yx=function(e={},t){if(!ld)return;const n=Xx(e);if(n.fullscreen&&Gx)return Gx;const o=Kx({...n,closed:()=>{var e;null==(e=n.closed)||e.call(n),n.fullscreen&&(Gx=void 0)}},null!=t?t:Yx._context);Zx(n,n.parent,o),Jx(n,n.parent,o),n.parent.vLoadingAddClassList=()=>Jx(n,n.parent,o);let l=n.parent.getAttribute("loading-number");return l=l?`${Number.parseInt(l)+1}`:"1",n.parent.setAttribute("loading-number",l),n.parent.appendChild(o.$el),tn(()=>o.visible.value=n.visible),n.fullscreen&&(Gx=o),o},Xx=e=>{var t,n,o,l;let r;return r=b(e.target)?null!=(t=document.querySelector(e.target))?t:document.body:e.target||document.body,{parent:r===document.body||e.body?document.body:r,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:r===document.body&&(null==(n=e.fullscreen)||n),lock:null!=(o=e.lock)&&o,customClass:e.customClass||"",visible:null==(l=e.visible)||l,beforeClose:e.beforeClose,closed:e.closed,target:r}},Zx=async(e,t,n)=>{const{nextZIndex:o}=n.vm.zIndex||n.vm._.exposed.zIndex,l={};if(e.fullscreen)n.originalPosition.value=rp(document.body,"position"),n.originalOverflow.value=rp(document.body,"overflow"),l.zIndex=o();else if(e.parent===document.body){n.originalPosition.value=rp(document.body,"position"),await tn();for(const t of["top","left"]){const n="top"===t?"scrollTop":"scrollLeft";l[t]=e.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-Number.parseInt(rp(document.body,`margin-${t}`),10)+"px"}for(const t of["height","width"])l[t]=`${e.target.getBoundingClientRect()[t]}px`}else n.originalPosition.value=rp(t,"position");for(const[r,a]of Object.entries(l))n.$el.style[r]=a},Jx=(e,t,n)=>{const o=n.vm.ns||n.vm._.exposed.ns;["absolute","fixed","sticky"].includes(n.originalPosition.value)?lp(t,o.bm("parent","relative")):op(t,o.bm("parent","relative")),e.fullscreen&&e.lock?op(t,o.bm("parent","hidden")):lp(t,o.bm("parent","hidden"))};Yx._context=null;const Qx=Symbol("ElLoading"),eC=e=>`element-loading-${R(e)}`,tC=(e,t)=>{var n,o,l,r;const a=t.instance,s=e=>w(t.value)?t.value[e]:void 0,i=t=>{return n=s(t)||e.getAttribute(eC(t)),St(b(n)&&(null==a?void 0:a[n])||n);var n},u=null!=(n=s("fullscreen"))?n:t.modifiers.fullscreen,c={text:i("text"),svg:i("svg"),svgViewBox:i("svgViewBox"),spinner:i("spinner"),background:i("background"),customClass:i("customClass"),fullscreen:u,target:null!=(o=s("target"))?o:u?void 0:e,body:null!=(l=s("body"))?l:t.modifiers.body,lock:null!=(r=s("lock"))?r:t.modifiers.lock},d=Yx(c);d._context=nC._context,e[Qx]={options:c,instance:d}},nC={mounted(e,t){t.value&&tC(e,t)},updated(e,t){const n=e[Qx];if(!t.value)return null==n||n.instance.close(),void(e[Qx]=null);n?((e,t)=>{for(const n of Object.keys(e))_t(e[n])&&(e[n].value=t[n])})(n.options,w(t.value)?t.value:{text:e.getAttribute(eC("text")),svg:e.getAttribute(eC("svg")),svgViewBox:e.getAttribute(eC("svgViewBox")),spinner:e.getAttribute(eC("spinner")),background:e.getAttribute(eC("background")),customClass:e.getAttribute(eC("customClass"))}):tC(e,t)},unmounted(e){var t;null==(t=e[Qx])||t.instance.close(),e[Qx]=null},_context:null},oC=["primary","success","info","warning","error"],lC=["top","top-left","top-right","bottom","bottom-left","bottom-right"],rC="top",aC={customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,placement:void 0,zIndex:0,grouping:!1,repeatNum:1,appendTo:ld?document.body:void 0},sC=Nd({customClass:{type:String,default:aC.customClass},dangerouslyUseHTMLString:{type:Boolean,default:aC.dangerouslyUseHTMLString},duration:{type:Number,default:aC.duration},icon:{type:Dp,default:aC.icon},id:{type:String,default:aC.id},message:{type:[String,Object,Function],default:aC.message},onClose:{type:Function,default:aC.onClose},showClose:{type:Boolean,default:aC.showClose},type:{type:String,values:oC,default:aC.type},plain:{type:Boolean,default:aC.plain},offset:{type:Number,default:aC.offset},placement:{type:String,values:lC,default:aC.placement},zIndex:{type:Number,default:aC.zIndex},grouping:{type:Boolean,default:aC.grouping},repeatNum:{type:Number,default:aC.repeatNum}}),iC=ft({}),uC=(e,t)=>{const{prev:n}=((e,t)=>{const n=iC[t]||[],o=n.findIndex(t=>t.id===e),l=n[o];let r;return o>0&&(r=n[o-1]),{current:l,prev:r}})(e,t);return n?n.vm.exposed.bottom.value:0},cC=["id"],dC=["innerHTML"];var pC=Kd(Xn({name:"ElMessage",__name:"message",props:sC,emits:{destroy:()=>!0},setup(e,{expose:t,emit:n}){const{Close:o}=Hp,l=e,r=n,a=St(!1),{ns:s,zIndex:i}=Hd("message"),{currentZIndex:u,nextZIndex:c}=i,d=St(),p=St(!1),f=St(0);let v;const h=yr(()=>l.type?"error"===l.type?"danger":l.type:"info"),m=yr(()=>{const e=l.type;return{[s.bm("icon",e)]:e&&Wp[e]}}),g=yr(()=>l.icon||Wp[l.type]||""),b=yr(()=>l.placement||rC),y=yr(()=>uC(l.id,b.value)),w=yr(()=>((e,t,n)=>(iC[n]||[]).findIndex(t=>t.id===e)>0?16:t)(l.id,l.offset,b.value)+y.value),x=yr(()=>f.value+w.value),C=yr(()=>b.value.includes("left")?s.is("left"):b.value.includes("right")?s.is("right"):s.is("center")),_=yr(()=>b.value.startsWith("top")?"top":"bottom"),S=yr(()=>({[_.value]:`${w.value}px`,zIndex:u.value}));function k(){0!==l.duration&&({stop:v}=dd(()=>{T()},l.duration))}function E(){null==v||v()}function T(){p.value=!1,tn(()=>{var e;a.value||(null==(e=l.onClose)||e.call(l),r("destroy"))})}return co(()=>{k(),c(),p.value=!0}),wn(()=>l.repeatNum,()=>{E(),k()}),hd(document,"keydown",function(e){cv(e)===iv.esc&&T()}),bd(d,()=>{f.value=d.value.getBoundingClientRect().height}),t({visible:p,bottom:x,close:T}),(e,t)=>(Fl(),zl(Nr,{name:Ot(s).b("fade"),onBeforeEnter:t[0]||(t[0]=e=>a.value=!0),onBeforeLeave:e.onClose,onAfterLeave:t[1]||(t[1]=t=>e.$emit("destroy")),persisted:""},{default:pn(()=>[fn(Kl("div",{id:e.id,ref_key:"messageRef",ref:d,class:q([Ot(s).b(),{[Ot(s).m(e.type)]:e.type},Ot(s).is("closable",e.showClose),Ot(s).is("plain",e.plain),Ot(s).is("bottom","bottom"===_.value),C.value,e.customClass]),style:V(S.value),role:"alert",onMouseenter:E,onMouseleave:k},[e.repeatNum>1?(Fl(),zl(Ot(um),{key:0,value:e.repeatNum,type:h.value,class:q(Ot(s).e("badge"))},null,8,["value","type","class"])):Zl("v-if",!0),g.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(s).e("icon"),m.value])},{default:pn(()=>[(Fl(),zl(_o(g.value)))]),_:1},8,["class"])):Zl("v-if",!0),Ao(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(Fl(),Dl(Rl,{key:1},[Zl(" Caution here, message could've been compromised, never use user's input as message "),Kl("p",{class:q(Ot(s).e("content")),innerHTML:e.message},null,10,dC)],2112)):(Fl(),Dl("p",{key:0,class:q(Ot(s).e("content"))},Z(e.message),3))]),e.showClose?(Fl(),zl(Ot(ip),{key:2,class:q(Ot(s).e("closeBtn")),onClick:Ra(T,["stop"])},{default:pn(()=>[Gl(Ot(o))]),_:1},8,["class"])):Zl("v-if",!0)],46,cC),[[Xr,p.value]])]),_:3},8,["name","onBeforeLeave"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let fC=1;const vC=e=>{const t=!e||b(e)||Hl(e)||g(e)?{message:e}:e,n={...aC,...t};return(e=>{if(e.appendTo){if(b(e.appendTo)){let t=document.querySelector(e.appendTo);Qc(t)||(t=document.body),e.appendTo=t}}else e.appendTo=document.body})(n),(e=>{!e.placement&&b(Rg.placement)&&Rg.placement&&(e.placement=Rg.placement),e.placement||(e.placement=rC),lC.includes(e.placement)||(e.placement=rC)})(n),Zc(Rg.grouping)&&!n.grouping&&(n.grouping=Rg.grouping),Jc(Rg.duration)&&3e3===n.duration&&(n.duration=Rg.duration),Jc(Rg.offset)&&16===n.offset&&(n.offset=Rg.offset),Zc(Rg.showClose)&&!n.showClose&&(n.showClose=Rg.showClose),Zc(Rg.plain)&&!n.plain&&(n.plain=Rg.plain),n},hC=({appendTo:e,...t},n)=>{const o="message_"+fC++,l=t.onClose,r=document.createElement("div"),a={...t,id:o,onClose:()=>{null==l||l(),(e=>{const t=e.props.placement||rC,n=iC[t],o=n.indexOf(e);if(-1===o)return;n.splice(o,1);const{handler:l}=e;l.close()})(c)},onDestroy:()=>{Fa(null,r)}},s=Gl(pC,a,g(a.message)||Hl(a.message)?{default:g(a.message)?a.message:()=>a.message}:null);s.appContext=n||mC._context,Fa(s,r),e.appendChild(r.firstElementChild);const i=s.component,u={close:()=>{i.exposed.close()}},c={id:o,vnode:s,vm:i,handler:u,props:s.component.props};return c},mC=(e={},t)=>{if(!ld)return{close:()=>{}};const n=vC(e),o=(l=n.placement||rC,iC[l]||(iC[l]=ft([])),iC[l]);var l;if(n.grouping&&o.length){const e=o.find(({vnode:e})=>{var t;return(null==(t=e.props)?void 0:t.message)===n.message});if(e)return e.props.repeatNum+=1,e.props.type=n.type,e.handler}if(Jc(Rg.max)&&o.length>=Rg.max)return{close:()=>{}};const r=hC(n,t);return o.push(r),r.handler};oC.forEach(e=>{mC[e]=(t={},n)=>{const o=vC(t);return mC({...o,type:e},n)}}),mC.closeAll=function(e){for(const t in iC)if(p(iC,t)){const n=[...iC[t]];for(const t of n)e&&e!==t.props.type||t.handler.close()}},mC.closeAllByPlacement=function(e){iC[e]&&[...iC[e]].forEach(e=>e.handler.close())},mC._context=null;const gC=(yC="$message",(bC=mC).install=e=>{bC._context=e._context,e.config.globalProperties[yC]=bC},bC);var bC,yC;const wC="undefined"!=typeof document;function xC(e){return"object"==typeof e||"displayName"in e||"props"in e||"__vccOpts"in e}const CC=Object.assign;function _C(e,t){const n={};for(const o in t){const l=t[o];n[o]=kC(l)?l.map(e):e(l)}return n}const SC=()=>{},kC=Array.isArray;function EC(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const TC=/#/g,AC=/&/g,OC=/\//g,MC=/=/g,RC=/\?/g,LC=/\+/g,PC=/%5B/g,NC=/%5D/g,IC=/%5E/g,BC=/%60/g,FC=/%7B/g,$C=/%7C/g,jC=/%7D/g,VC=/%20/g;function DC(e){return null==e?"":encodeURI(""+e).replace($C,"|").replace(PC,"[").replace(NC,"]")}function zC(e){return DC(e).replace(LC,"%2B").replace(VC,"+").replace(TC,"%23").replace(AC,"%26").replace(BC,"`").replace(FC,"{").replace(jC,"}").replace(IC,"^")}function HC(e){return zC(e).replace(MC,"%3D")}function WC(e){return function(e){return DC(e).replace(TC,"%23").replace(RC,"%3F")}(e).replace(OC,"%2F")}function qC(e){if(null==e)return null;try{return decodeURIComponent(""+e)}catch(t){}return""+e}const UC=/\/$/;function KC(e,t,n="/"){let o,l={},r="",a="";const s=t.indexOf("#");let i=t.indexOf("?");return i=s>=0&&i>s?-1:i,i>=0&&(o=t.slice(0,i),r=t.slice(i,s>0?s:t.length),l=e(r.slice(1))),s>=0&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=function(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),l=o[o.length-1];".."!==l&&"."!==l||o.push("");let r,a,s=n.length-1;for(r=0;r1&&s--}return n.slice(0,s).join("/")+"/"+o.slice(r).join("/")}(null!=o?o:t,n),{fullPath:o+r+a,path:o,query:l,hash:qC(a)}}function GC(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function YC(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function XC(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!ZC(e[n],t[n]))return!1;return!0}function ZC(e,t){return kC(e)?JC(e,t):kC(t)?JC(t,e):e?.valueOf()===t?.valueOf()}function JC(e,t){return kC(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):1===e.length&&e[0]===t}const QC={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let e_=function(e){return e.pop="pop",e.push="push",e}({}),t_=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function n_(e){if(!e)if(wC){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),e.replace(UC,"")}const o_=/^[^#]+#/;function l_(e,t){return e.replace(o_,"#")+t}const r_=()=>({left:window.scrollX,top:window.scrollY});function a_(e){let t;if("el"in e){const n=e.el,o="string"==typeof n&&n.startsWith("#"),l="string"==typeof n?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!l)return;t=function(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}(l,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.scrollX,null!=t.top?t.top:window.scrollY)}function s_(e,t){return(history.state?history.state.position-t:-1)+e}const i_=new Map;function u_(e){return"string"==typeof e||"symbol"==typeof e}let c_=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const d_=Symbol("");function p_(e,t){return CC(new Error,{type:e,[d_]:!0},t)}function f_(e,t){return e instanceof Error&&d_ in e&&(null==t||!!(e.type&t))}function v_(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let o=0;oe&&zC(e)):[o&&zC(o)]).forEach(e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))}):void 0!==o&&(t+=(t.length?"&":"")+n)}return t}function m_(e){const t={};for(const n in e){const o=e[n];void 0!==o&&(t[n]=kC(o)?o.map(e=>null==e?null:""+e):null==o?o:""+o)}return t}c_.MATCHER_NOT_FOUND,c_.NAVIGATION_GUARD_REDIRECT,c_.NAVIGATION_ABORTED,c_.NAVIGATION_CANCELLED,c_.NAVIGATION_DUPLICATED;const g_=Symbol(""),b_=Symbol(""),y_=Symbol(""),w_=Symbol(""),x_=Symbol("");function C_(){let e=[];return{add:function(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}},list:()=>e.slice(),reset:function(){e=[]}}}function __(e,t,n,o,l,r=e=>e()){const a=o&&(o.enterCallbacks[l]=o.enterCallbacks[l]||[]);return()=>new Promise((s,i)=>{const u=e=>{var r;!1===e?i(p_(c_.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?i(e):"string"==typeof(r=e)||r&&"object"==typeof r?i(p_(c_.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(a&&o.enterCallbacks[l]===a&&"function"==typeof e&&a.push(e),s())},c=r(()=>e.call(o&&o.instances[l],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(e=>i(e))})}function S_(e,t,n,o,l=e=>e()){const r=[];for(const a of e)for(const e in a.components){let s=a.components[e];if("beforeRouteEnter"===t||a.instances[e])if(xC(s)){const i=(s.__vccOpts||s)[t];i&&r.push(__(i,n,o,a,e,l))}else{let i=s();r.push(()=>i.then(r=>{if(!r)throw new Error(`Couldn't resolve component "${e}" at "${a.path}"`);const s=(i=r).__esModule||"Module"===i[Symbol.toStringTag]||i.default&&xC(i.default)?r.default:r;var i;a.mods[e]=r,a.components[e]=s;const u=(s.__vccOpts||s)[t];return u&&__(u,n,o,a,e,l)()}))}}return r}function k_(e,t){const{pathname:n,search:o,hash:l}=t,r=e.indexOf("#");if(r>-1){let t=l.includes(e.slice(r))?e.slice(r).length:1,n=l.slice(t);return"/"!==n[0]&&(n="/"+n),GC(n,"")}return GC(n,e)+o+l}function E_(e,t,n,o=!1,l=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:l?r_():null}}function T_(e){const{history:t,location:n}=window,o={value:k_(e,n)},l={value:t.state};function r(o,r,a){const s=e.indexOf("#"),i=s>-1?(n.host&&document.querySelector("base")?e:e.slice(s))+o:location.protocol+"//"+location.host+e+o;try{t[a?"replaceState":"pushState"](r,"",i),l.value=r}catch(u){n[a?"replace":"assign"](i)}}return l.value||r(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:o,state:l,push:function(e,n){const a=CC({},l.value,t.state,{forward:e,scroll:r_()});r(a.current,a,!0),r(e,CC({},E_(o.value,e,null),{position:a.position+1},n),!1),o.value=e},replace:function(e,n){r(e,CC({},t.state,E_(l.value.back,e,l.value.forward,!0),n,{position:l.value.position}),!0),o.value=e}}}function A_(e){const t=T_(e=n_(e)),n=function(e,t,n,o){let l=[],r=[],a=null;const s=({state:r})=>{const s=k_(e,location),i=n.value,u=t.value;let c=0;if(r){if(n.value=s,t.value=r,a&&a===i)return void(a=null);c=u?r.position-u.position:0}else o(s);l.forEach(e=>{e(n.value,i,{delta:c,type:e_.pop,direction:c?c>0?t_.forward:t_.back:t_.unknown})})};function i(){if("hidden"===document.visibilityState){const{history:e}=window;if(!e.state)return;e.replaceState(CC({},e.state,{scroll:r_()}),"")}}return window.addEventListener("popstate",s),window.addEventListener("pagehide",i),document.addEventListener("visibilitychange",i),{pauseListeners:function(){a=n.value},listen:function(e){l.push(e);const t=()=>{const t=l.indexOf(e);t>-1&&l.splice(t,1)};return r.push(t),t},destroy:function(){for(const e of r)e();r=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",i),document.removeEventListener("visibilitychange",i)}}}(e,t.state,t.location,t.replace),o=CC({location:"",base:e,go:function(e,t=!0){t||n.pauseListeners(),history.go(e)},createHref:l_.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let O_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var M_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(M_||{});const R_={type:O_.Static,value:""},L_=/[a-zA-Z0-9_]/,P_="[^/]+?",N_={sensitive:!1,strict:!1,start:!0,end:!0};var I_=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(I_||{});const B_=/[.+*?^${}()[\]/\\]/g;function F_(e,t){let n=0;for(;nt.length?1===t.length&&t[0]===I_.Static+I_.Segment?1:-1:0}function $_(e,t){let n=0;const o=e.score,l=t.score;for(;n0&&t[t.length-1]<0}const V_={strict:!1,end:!0,sensitive:!1};function D_(e,t,n){const o=function(e,t){const n=CC({},N_,t),o=[];let l=n.start?"^":"";const r=[];for(const s of e){const e=s.length?[]:[I_.Root];n.strict&&!s.length&&(l+="/");for(let t=0;t1&&("*"===s||"+"===s)&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),r.push({type:O_.Param,value:u,regexp:c,repeatable:"*"===s||"+"===s,optional:"*"===s||"?"===s})):t("Invalid state to consume buffer"),u="")}function p(){u+=s}for(;i{r(p)}:SC}function r(e){if(u_(e)){const t=o.get(e);t&&(o.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(r),t.alias.forEach(r))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&o.delete(e.record.name),e.children.forEach(r),e.alias.forEach(r))}}function a(e){const t=function(e,t){let n=0,o=t.length;for(;n!==o;){const l=n+o>>1;$_(e,t[l])<0?o=l:n=l+1}const l=function(e){let t=e;for(;t=t.parent;)if(G_(t)&&0===$_(e,t))return t}(e);return l&&(o=t.lastIndexOf(l,o-1)),o}(e,n);n.splice(t,0,e),e.record.name&&!U_(e)&&o.set(e.record.name,e)}return t=EC(V_,t),e.forEach(e=>l(e)),{addRoute:l,resolve:function(e,t){let l,r,a,s={};if("name"in e&&e.name){if(l=o.get(e.name),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e});a=l.record.name,s=CC(H_(t.params,l.keys.filter(e=>!e.optional).concat(l.parent?l.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&H_(e.params,l.keys.map(e=>e.name))),r=l.stringify(s)}else if(null!=e.path)r=e.path,l=n.find(e=>e.re.test(r)),l&&(s=l.parse(r),a=l.record.name);else{if(l=t.name?o.get(t.name):n.find(e=>e.re.test(t.path)),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e,currentLocation:t});a=l.record.name,s=CC({},t.params,e.params),r=l.stringify(s)}const i=[];let u=l;for(;u;)i.unshift(u.record),u=u.parent;return{name:a,path:r,params:s,matched:i,meta:K_(i)}},removeRoute:r,clearRoutes:function(){n.length=0,o.clear()},getRoutes:function(){return n},getRecordMatcher:function(e){return o.get(e)}}}function H_(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function W_(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:q_(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function q_(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]="object"==typeof n?n[o]:n;return t}function U_(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function K_(e){return e.reduce((e,t)=>CC(e,t.meta),{})}function G_({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Y_(e){const t=mn(y_),n=mn(w_),o=yr(()=>{const n=Ot(e.to);return t.resolve(n)}),l=yr(()=>{const{matched:e}=o.value,{length:t}=e,l=e[t-1],r=n.matched;if(!l||!r.length)return-1;const a=r.findIndex(YC.bind(null,l));if(a>-1)return a;const s=Z_(e[t-2]);return t>1&&Z_(l)===s&&r[r.length-1].path!==s?r.findIndex(YC.bind(null,e[t-2])):a}),r=yr(()=>l.value>-1&&function(e,t){for(const n in t){const o=t[n],l=e[n];if("string"==typeof o){if(o!==l)return!1}else if(!kC(l)||l.length!==o.length||o.some((e,t)=>e.valueOf()!==l[t].valueOf()))return!1}return!0}(n.params,o.value.params)),a=yr(()=>l.value>-1&&l.value===n.matched.length-1&&XC(n.params,o.value.params));return{route:o,href:yr(()=>o.value.href),isActive:r,isExactActive:a,navigate:function(n={}){if(function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}(n)){const n=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(SC);return e.viewTransition&&"undefined"!=typeof document&&"startViewTransition"in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}}}const X_=Xn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Y_,setup(e,{slots:t}){const n=pt(Y_(e)),{options:o}=mn(y_),l=yr(()=>({[J_(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[J_(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&(1===(r=t.default(n)).length?r[0]:r);var r;return e.custom?o:wr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:l.value},o)}}});function Z_(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const J_=(e,t,n)=>null!=e?e:null!=t?t:n,Q_=Xn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=mn(x_),l=yr(()=>e.route||o.value),r=mn(b_,0),a=yr(()=>{let e=Ot(r);const{matched:t}=l.value;let n;for(;(n=t[e])&&!n.components;)e++;return e}),s=yr(()=>l.value.matched[a.value]);hn(b_,yr(()=>a.value+1)),hn(g_,s),hn(x_,l);const i=St();return wn(()=>[i.value,s.value,e.name],([e,t,n],[o,l,r])=>{t&&(t.instances[n]=e,l&&l!==t&&e&&e===o&&(t.leaveGuards.size||(t.leaveGuards=l.leaveGuards),t.updateGuards.size||(t.updateGuards=l.updateGuards))),!e||!t||l&&YC(t,l)&&o||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:"post"}),()=>{const o=l.value,r=e.name,a=s.value,u=a&&a.components[r];if(!u)return eS(n.default,{Component:u,route:o});const c=a.props[r],d=c?!0===c?o.params:"function"==typeof c?c(o):c:null,p=wr(u,CC({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[r]=null)},ref:i}));return eS(n.default,{Component:p,route:o})||p}}});function eS(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const tS=Q_;function nS(){return mn(y_)}function oS(e){return mn(w_)}const lS=new WeakMap,rS=(...e)=>{var t;const n=e[0],o=null===(t=ar())||void 0===t?void 0:t.proxy,l=null!=o?o:oe();if(null==l&&!gn())throw new Error("injectLocal must be called in setup");return l&&lS.has(l)&&n in lS.get(l)?lS.get(l)[n]:mn(...e)},aS="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const sS=Object.prototype.toString,iS=()=>{};function uS(...e){if(1!==e.length)return Ft(...e);const t=e[0];return"function"==typeof t?vt(new Pt(()=>({get:t,set:iS}))):St(t)}const cS=e=>e();function dS(e){return e.endsWith("rem")?16*Number.parseFloat(e):Number.parseFloat(e)}function pS(e){return Array.isArray(e)?e:[e]}function fS(e,t,n={}){const{eventFilter:o=cS,...l}=n;return wn(e,function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(o,t),l)}const vS=function(e,t,n={}){const{eventFilter:o,initialState:l="active",...r}=n,{eventFilter:a,pause:s,resume:i,isActive:u}=function(e=cS,t={}){const{initialState:n="active"}=t,o=uS("active"===n);return{isActive:vt(o),pause:function(){o.value=!1},resume:function(){o.value=!0},eventFilter:(...t)=>{o.value&&e(...t)}}}(o,{initialState:l});return{stop:fS(e,t,{...r,eventFilter:a}),pause:s,resume:i,isActive:u}};function hS(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function mS(e=!1,t={}){const{truthyValue:n=!0,falsyValue:o=!1}=t,l=_t(e),r=kt(e);function a(e){if(arguments.length)return r.value=e,r.value;{const e=Mt(n);return r.value=r.value===e?Mt(o):e,r.value}}return l?a:[r,a]}const gS=aS?window:void 0;function bS(e){var t;const n=Mt(e);return null!==(t=null==n?void 0:n.$el)&&void 0!==t?t:n}function yS(...e){const t=yr(()=>{const t=pS(Mt(e[0])).filter(e=>null!=e);return t.every(e=>"string"!=typeof e)?t:void 0});return n=([e,t,n,o],l,r)=>{if(!(null==e?void 0:e.length)||!(null==t?void 0:t.length)||!(null==n?void 0:n.length))return;const a=(s=o,"[object Object]"===sS.call(s)?{...o}:o);var s;const i=e.flatMap(e=>t.flatMap(t=>n.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,a))));r(()=>{i.forEach(e=>e())})},o={flush:"post"},wn(()=>{var n,o;return[null!==(n=null===(o=t.value)||void 0===o?void 0:o.map(e=>bS(e)))&&void 0!==n?n:[gS].filter(e=>null!=e),pS(Mt(t.value?e[1]:e[0])),pS(Ot(t.value?e[2]:e[1])),Mt(t.value?e[3]:e[2])]},n,{...o,immediate:!0});var n,o}function wS(){const e=kt(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}function xS(e){const t=wS();return yr(()=>(t.value,Boolean(e())))}const CS=Symbol("vueuse-ssr-width");function _S(){const e=gn()?rS(CS,null):null;return"number"==typeof e?e:void 0}const SS="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},kS="__vueuse_ssr_handlers__",ES=TS();function TS(){return kS in SS||(SS[kS]=SS[kS]||{}),SS[kS]}function AS(e,t){return ES[e]||t}function OS(e){return function(e,t={}){const{window:n=gS,ssrWidth:o=_S()}=t,l=xS(()=>n&&"matchMedia"in n&&"function"==typeof n.matchMedia),r=kt("number"==typeof o),a=kt(),s=kt(!1);return yn(()=>{if(r.value)return r.value=!l.value,void(s.value=Mt(e).split(",").some(e=>{const t=e.includes("not all"),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),l=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let r=Boolean(n||l);return n&&r&&(r=o>=dS(n[1])),l&&r&&(r=o<=dS(l[1])),t?!r:r}));l.value&&(a.value=n.matchMedia(Mt(e)),s.value=a.value.matches)}),yS(a,"change",e=>{s.value=e.matches},{passive:!0}),yr(()=>s.value)}("(prefers-color-scheme: dark)",e)}const MS={boolean:{read:e=>"true"===e,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},RS="vueuse-storage";function LS(e,t,n,o={}){var l;const{flush:r="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:d=gS,eventFilter:p,onError:f=e=>{},initOnMounted:v}=o,h=(c?kt:St)("function"==typeof t?t():t),m=yr(()=>Mt(e));if(!n)try{n=AS("getDefaultStorage",()=>null==gS?void 0:gS.localStorage)()}catch(tT){f(tT)}if(!n)return h;const g=Mt(t),b=function(e){return null==e?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":"boolean"==typeof e?"boolean":"string"==typeof e?"string":"object"==typeof e?"object":Number.isNaN(e)?"any":"number"}(g),y=null!==(l=o.serializer)&&void 0!==l?l:MS[b],{pause:w,resume:x}=vS(h,e=>function(e){try{const t=n.getItem(m.value);if(null==e)_(t,null),n.removeItem(m.value);else{const o=y.write(e);t!==o&&(n.setItem(m.value,o),_(t,o))}}catch(tT){f(tT)}}(e),{flush:r,deep:a,eventFilter:p});wn(m,()=>S(),{flush:r});let C=!1;function _(e,t){if(d){const o={key:m.value,oldValue:e,newValue:t,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",o):new CustomEvent(RS,{detail:o}))}}function S(e){if(!e||e.storageArea===n)if(e&&null==e.key)h.value=g;else if(!e||e.key===m.value){w();try{const t=y.write(h.value);void 0!==e&&(null==e?void 0:e.newValue)===t||(h.value=function(e){const t=e?e.newValue:n.getItem(m.value);if(null==t)return i&&null!=g&&n.setItem(m.value,y.write(g)),g;if(!e&&u){const e=y.read(t);return"function"==typeof u?u(e,g):"object"!==b||Array.isArray(e)?e:{...g,...e}}return"string"!=typeof t?t:y.read(t)}(e))}catch(tT){f(tT)}finally{e?tn(x):x()}}}return d&&s&&(n instanceof Storage?yS(d,"storage",e=>{v&&!C||S(e)},{passive:!0}):yS(d,RS,e=>{v&&!C||S(e.detail)})),v?hS(()=>{C=!0,S()}):S(),h}function PS(e={}){const{valueDark:t="dark",valueLight:n=""}=e,o=function(e={}){const{selector:t="html",attribute:n="class",initialValue:o="auto",window:l=gS,storage:r,storageKey:a="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:i,emitAuto:u,disableTransition:c=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},p=OS({window:l}),f=yr(()=>p.value?"dark":"light"),v=i||(null==a?uS(o):LS(a,o,r,{window:l,listenToStorageChanges:s})),h=yr(()=>"auto"===v.value?f.value:v.value),m=AS("updateHTMLAttrs",(e,t,n)=>{const o="string"==typeof e?null==l?void 0:l.document.querySelector(e):bS(e);if(!o)return;const r=new Set,a=new Set;let s,i=null;if("class"===t){const e=n.split(/\s/g);Object.values(d).flatMap(e=>(e||"").split(/\s/g)).filter(Boolean).forEach(t=>{e.includes(t)?r.add(t):a.add(t)})}else i={key:t,value:n};if(0!==r.size||0!==a.size||null!==i){c&&(s=l.document.createElement("style"),s.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),l.document.head.appendChild(s));for(const e of r)o.classList.add(e);for(const e of a)o.classList.remove(e);i&&o.setAttribute(i.key,i.value),c&&(l.getComputedStyle(s).opacity,document.head.removeChild(s))}});function g(e){var o;m(t,n,null!==(o=d[e])&&void 0!==o?o:e)}function b(t){e.onChanged?e.onChanged(t,g):g(t)}wn(h,b,{flush:"post",immediate:!0}),hS(()=>b(h.value));const y=yr({get:()=>u?v.value:h.value,set(e){v.value=e}});return Object.assign(y,{store:v,system:f,state:h})}({...e,onChanged:(t,n)=>{var o;e.onChanged?null===(o=e.onChanged)||void 0===o||o.call(e,"dark"===t,n,t):n(t)},modes:{dark:t,light:n}}),l=yr(()=>o.system.value);return yr({get:()=>"dark"===o.value,set(e){const t=e?"dark":"light";l.value===t?o.value="auto":o.value=t}})}const NS={xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},IS={render:function(e,t){return Fl(),Dl("svg",NS,[...t[0]||(t[0]=[Kl("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"},null,-1)])])}},BS={id:"app"},FS={class:"header"},$S={class:"header-top"},jS={class:"brand"},VS={class:"header-actions"},DS={class:"github-link",href:"https://github.com/fatedier/frp",target:"_blank","aria-label":"GitHub"},zS={class:"header-nav"},HS={id:"content"},WS=Xn({__name:"App",setup(e){const t=nS(),n=oS(),o=PS(),l=St(o),r=mS(o),a=yr(()=>n.path.startsWith("/proxies")?"/proxies":n.path),s=e=>{t.push(e)};return(e,n)=>{const o=zy,i=Ty,u=Ey,c=xo("router-view");return Fl(),Dl("div",BS,[Kl("header",FS,[Kl("div",$S,[Kl("div",jS,[Kl("a",{href:"#",onClick:n[0]||(n[0]=Ra(e=>Ot(t).push("/"),["prevent"]))},"frp")]),Kl("div",VS,[Kl("a",DS,[Gl(Ot(IS),{class:"github-icon"})]),Gl(o,{modelValue:l.value,"onUpdate:modelValue":n[1]||(n[1]=e=>l.value=e),"inline-prompt":"","active-icon":Ot(Ap),"inactive-icon":Ot(Bp),onChange:Ot(r),class:"theme-switch"},null,8,["modelValue","active-icon","inactive-icon","onChange"])])]),Kl("nav",zS,[Gl(u,{"default-active":a.value,mode:"horizontal",ellipsis:!1,onSelect:s,class:"nav-menu"},{default:pn(()=>[Gl(i,{index:"/"},{default:pn(()=>[...n[2]||(n[2]=[Xl("Overview",-1)])]),_:1}),Gl(i,{index:"/clients"},{default:pn(()=>[...n[3]||(n[3]=[Xl("Clients",-1)])]),_:1}),Gl(i,{index:"/proxies"},{default:pn(()=>[...n[4]||(n[4]=[Xl("Proxies",-1)])]),_:1})]),_:1},8,["default-active"])])]),Kl("main",HS,[Gl(c)])])}}});function qS(e){const t=Math.floor(((new Date).getTime()-e.getTime())/1e3);let n=t/31536e3;return n>1?Math.floor(n)+" years ago":(n=t/2592e3,n>1?Math.floor(n)+" months ago":(n=t/86400,n>1?Math.floor(n)+" days ago":(n=t/3600,n>1?Math.floor(n)+" hours ago":(n=t/60,n>1?Math.floor(n)+" minutes ago":Math.floor(t)+" seconds ago"))))}function US(e){if(!Number.isFinite(e)||e<0)return"0 B";if(0===e)return"0 B";const t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],n=Math.floor(Math.log(e)/Math.log(1024)),o=t[n]||t[t.length-1],l=e/Math.pow(1024,n);return parseFloat(l.toFixed(2))+" "+o}const KS={class:"stat-card-content"},GS={class:"stat-info"},YS={class:"stat-value"},XS={class:"stat-label"},ZS={key:0,class:"stat-subtitle"},JS=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n},QS=JS(Xn({__name:"StatCard",props:{label:{},value:{},type:{default:"clients"},subtitle:{},to:{}},setup(e){const t=e,n=nS(),o=yr(()=>{switch(t.type){case"clients":default:return jp;case"proxies":return yp;case"connections":return wp;case"traffic":return Rp}}),l=()=>{t.to&&n.push(t.to)};return(t,n)=>{const r=ip,a=$m;return Fl(),zl(a,{class:q(["stat-card",{clickable:!!e.to}]),"body-style":{padding:"20px"},shadow:"hover",onClick:l},{default:pn(()=>[Kl("div",KS,[Kl("div",{class:q(["stat-icon",`icon-${e.type}`])},[(Fl(),zl(_o(o.value),{class:"icon"}))],2),Kl("div",GS,[Kl("div",YS,Z(e.value),1),Kl("div",XS,Z(e.label),1)]),e.to?(Fl(),zl(r,{key:0,class:"arrow-icon"},{default:pn(()=>[Gl(Ot(dp))]),_:1})):Zl("",!0)]),e.subtitle?(Fl(),Dl("div",ZS,Z(e.subtitle),1)):Zl("",!0)]),_:1},8,["class"])}}}),[["__scopeId","data-v-c9ca9441"]]);class ek extends Error{status;statusText;constructor(e,t,n){super(n||t),this.status=e,this.statusText=t}}async function tk(e,t={}){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new ek(n.status,n.statusText,`HTTP ${n.status}`);return 204===n.status?{}:n.json()}const nk=(e,t)=>tk(e,{...t,method:"GET"}),ok=(e,t)=>tk(e,{...t,method:"DELETE"}),lk=()=>nk("../api/serverinfo"),rk={class:"server-overview"},ak={class:"card-header"},sk={class:"traffic-summary"},ik={class:"traffic-item in"},uk={class:"traffic-icon"},ck={class:"traffic-info"},dk={class:"value"},pk={class:"traffic-item out"},fk={class:"traffic-icon"},vk={class:"traffic-info"},hk={class:"value"},mk={class:"card-header"},gk={class:"proxy-types-grid"},bk={class:"proxy-type-name"},yk={class:"proxy-type-count"},wk={key:0,class:"no-data"},xk={class:"card-header"},Ck={class:"config-grid"},_k={class:"config-item"},Sk={class:"config-value"},kk={key:0,class:"config-item"},Ek={class:"config-value"},Tk={key:1,class:"config-item"},Ak={class:"config-value"},Ok={key:2,class:"config-item"},Mk={class:"config-value"},Rk={key:3,class:"config-item"},Lk={class:"config-value"},Pk={key:4,class:"config-item"},Nk={class:"config-value"},Ik={key:5,class:"config-item"},Bk={class:"config-value"},Fk={class:"config-item"},$k={class:"config-value"},jk={class:"config-item"},Vk={class:"config-value"},Dk={key:6,class:"config-item"},zk={class:"config-value"},Hk={key:7,class:"config-item"},Wk={class:"config-item"},qk={class:"config-value"},Uk=Xn({__name:"ServerOverview",setup(e){const t=St({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0,totalTrafficIn:0,totalTrafficOut:0,proxyTypeCounts:{}}),n=yr(()=>Object.values(t.value.proxyTypeCounts).some(e=>e>0));return co(()=>{(async()=>{try{const e=await lk();t.value.version=e.version,t.value.bindPort=e.bindPort,t.value.kcpBindPort=e.kcpBindPort,t.value.quicBindPort=e.quicBindPort,t.value.vhostHTTPPort=e.vhostHTTPPort,t.value.vhostHTTPSPort=e.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=e.tcpmuxHTTPConnectPort,t.value.subdomainHost=e.subdomainHost,t.value.maxPoolCount=e.maxPoolCount,t.value.maxPortsPerClient=String(e.maxPortsPerClient),"0"==t.value.maxPortsPerClient&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=e.allowPortsStr,t.value.tlsForce=e.tlsForce,t.value.heartbeatTimeout=e.heartbeatTimeout,t.value.clientCounts=e.clientCounts,t.value.curConns=e.curConns,t.value.totalTrafficIn=e.totalTrafficIn,t.value.totalTrafficOut=e.totalTrafficOut,t.value.proxyTypeCounts=e.proxyTypeCount||{},t.value.proxyCounts=0,null!=e.proxyTypeCount&&Object.values(e.proxyTypeCount).forEach(e=>{t.value.proxyCounts+=e||0})}catch(e){gC({showClose:!0,message:"Get server info from frps failed!",type:"error"})}})()}),(e,o)=>{const l=Og,r=My,a=_g,s=ip,i=$m;return Fl(),Dl("div",rk,[Gl(r,{gutter:20,class:"stats-row"},{default:pn(()=>[Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Clients",value:t.value.clientCounts,type:"clients",subtitle:"Connected clients",to:"/clients"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Proxies",value:t.value.proxyCounts,type:"proxies",subtitle:"Active proxies",to:"/proxies/tcp"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Connections",value:t.value.curConns,type:"connections",subtitle:"Current connections"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Traffic",value:US(t.value.totalTrafficIn+t.value.totalTrafficOut),type:"traffic",subtitle:"Total today"},null,8,["value"])]),_:1})]),_:1}),Gl(r,{gutter:20,class:"charts-row"},{default:pn(()=>[Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",ak,[o[1]||(o[1]=Kl("span",{class:"card-title"},"Network Traffic",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Today",-1)])]),_:1})])]),default:pn(()=>[Kl("div",sk,[Kl("div",ik,[Kl("div",uk,[Gl(s,null,{default:pn(()=>[Gl(Ot(Cp))]),_:1})]),Kl("div",ck,[o[2]||(o[2]=Kl("div",{class:"label"},"Inbound",-1)),Kl("div",dk,Z(Ot(US)(t.value.totalTrafficIn)),1)])]),o[4]||(o[4]=Kl("div",{class:"traffic-divider"},null,-1)),Kl("div",pk,[Kl("div",fk,[Gl(s,null,{default:pn(()=>[Gl(Ot($p))]),_:1})]),Kl("div",vk,[o[3]||(o[3]=Kl("div",{class:"label"},"Outbound",-1)),Kl("div",hk,Z(Ot(US)(t.value.totalTrafficOut)),1)])])])]),_:1})]),_:1}),Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",mk,[o[6]||(o[6]=Kl("span",{class:"card-title"},"Proxy Types",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[5]||(o[5]=[Xl("Now",-1)])]),_:1})])]),default:pn(()=>[Kl("div",gk,[(Fl(!0),Dl(Rl,null,Eo(t.value.proxyTypeCounts,(e,t)=>fn((Fl(),Dl("div",{key:t,class:"proxy-type-item"},[Kl("div",bk,Z(t.toUpperCase()),1),Kl("div",yk,Z(e),1)])),[[Xr,e>0]])),128)),n.value?Zl("",!0):(Fl(),Dl("div",wk," No active proxies "))])]),_:1})]),_:1})]),_:1}),Gl(i,{class:"config-card",shadow:"hover"},{header:pn(()=>[Kl("div",xk,[o[7]||(o[7]=Kl("span",{class:"card-title"},"Server Configuration",-1)),Gl(a,{size:"small",type:"success"},{default:pn(()=>[Xl("v"+Z(t.value.version),1)]),_:1})])]),default:pn(()=>[Kl("div",Ck,[Kl("div",_k,[o[8]||(o[8]=Kl("span",{class:"config-label"},"Bind Port",-1)),Kl("span",Sk,Z(t.value.bindPort),1)]),0!=t.value.kcpBindPort?(Fl(),Dl("div",kk,[o[9]||(o[9]=Kl("span",{class:"config-label"},"KCP Port",-1)),Kl("span",Ek,Z(t.value.kcpBindPort),1)])):Zl("",!0),0!=t.value.quicBindPort?(Fl(),Dl("div",Tk,[o[10]||(o[10]=Kl("span",{class:"config-label"},"QUIC Port",-1)),Kl("span",Ak,Z(t.value.quicBindPort),1)])):Zl("",!0),0!=t.value.vhostHTTPPort?(Fl(),Dl("div",Ok,[o[11]||(o[11]=Kl("span",{class:"config-label"},"HTTP Port",-1)),Kl("span",Mk,Z(t.value.vhostHTTPPort),1)])):Zl("",!0),0!=t.value.vhostHTTPSPort?(Fl(),Dl("div",Rk,[o[12]||(o[12]=Kl("span",{class:"config-label"},"HTTPS Port",-1)),Kl("span",Lk,Z(t.value.vhostHTTPSPort),1)])):Zl("",!0),0!=t.value.tcpmuxHTTPConnectPort?(Fl(),Dl("div",Pk,[o[13]||(o[13]=Kl("span",{class:"config-label"},"TCPMux Port",-1)),Kl("span",Nk,Z(t.value.tcpmuxHTTPConnectPort),1)])):Zl("",!0),""!=t.value.subdomainHost?(Fl(),Dl("div",Ik,[o[14]||(o[14]=Kl("span",{class:"config-label"},"Subdomain Host",-1)),Kl("span",Bk,Z(t.value.subdomainHost),1)])):Zl("",!0),Kl("div",Fk,[o[15]||(o[15]=Kl("span",{class:"config-label"},"Max Pool Count",-1)),Kl("span",$k,Z(t.value.maxPoolCount),1)]),Kl("div",jk,[o[16]||(o[16]=Kl("span",{class:"config-label"},"Max Ports/Client",-1)),Kl("span",Vk,Z(t.value.maxPortsPerClient),1)]),""!=t.value.allowPortsStr?(Fl(),Dl("div",Dk,[o[17]||(o[17]=Kl("span",{class:"config-label"},"Allow Ports",-1)),Kl("span",zk,Z(t.value.allowPortsStr),1)])):Zl("",!0),t.value.tlsForce?(Fl(),Dl("div",Hk,[o[19]||(o[19]=Kl("span",{class:"config-label"},"TLS Force",-1)),Gl(a,{size:"small",type:"warning"},{default:pn(()=>[...o[18]||(o[18]=[Xl("Enabled",-1)])]),_:1})])):Zl("",!0),Kl("div",Wk,[o[20]||(o[20]=Kl("span",{class:"config-label"},"Heartbeat Timeout",-1)),Kl("span",qk,Z(t.value.heartbeatTimeout)+"s",1)])])]),_:1})])}}}),Kk=JS(Uk,[["__scopeId","data-v-10087479"]]);class Gk{key;user;clientID;runID;hostname;ip;metas;firstConnectedAt;lastConnectedAt;disconnectedAt;online;constructor(e){if(this.key=e.key,this.user=e.user,this.clientID=e.clientID,this.runID=e.runID,this.hostname=e.hostname,this.ip=e.clientIP||"",this.metas=new Map,e.metas)for(const[t,n]of Object.entries(e.metas))this.metas.set(t,n);this.firstConnectedAt=new Date(1e3*e.firstConnectedAt),this.lastConnectedAt=new Date(1e3*e.lastConnectedAt),e.disconnectedAt&&e.disconnectedAt>0&&(this.disconnectedAt=new Date(1e3*e.disconnectedAt)),this.online=e.online}get displayName(){return this.clientID?this.user?`${this.user}.${this.clientID}`:this.clientID:this.runID}get shortRunId(){return this.runID.substring(0,8)}get firstConnectedAgo(){return qS(this.firstConnectedAt)}get lastConnectedAgo(){return qS(this.lastConnectedAt)}get disconnectedAgo(){return this.disconnectedAt?qS(this.disconnectedAt):""}get statusColor(){return this.online?"success":"danger"}get metasArray(){const e=[];return this.metas.forEach((t,n)=>{e.push({key:n,value:t})}),e}matchesFilter(e){const t=e.toLowerCase();return this.key.toLowerCase().includes(t)||this.user.toLowerCase().includes(t)||this.clientID.toLowerCase().includes(t)||this.runID.toLowerCase().includes(t)||this.hostname.toLowerCase().includes(t)}}const Yk={class:"client-header"},Xk={class:"client-status"},Zk={class:"client-name"},Jk={class:"client-info"},Qk={class:"info-row"},eE={class:"info-value"},tE={key:0,class:"info-row"},nE={class:"info-value monospace"},oE={key:1,class:"info-row"},lE={class:"info-value"},rE={class:"info-row"},aE={class:"info-value monospace"},sE={key:2,class:"info-row"},iE={class:"info-value"},uE={key:3,class:"info-row"},cE={class:"info-value"},dE={key:4,class:"info-row"},pE={class:"info-value"},fE=JS(Xn({__name:"ClientCard",props:{client:{}},setup(e){const t=e,n=yr(()=>`status-${t.client.statusColor}`);return(t,o)=>{const l=_g,r=ip,a=$m;return Fl(),zl(a,{class:"client-card",shadow:"hover","body-style":{padding:"20px"}},{default:pn(()=>[Kl("div",Yk,[Kl("div",Xk,[Kl("span",{class:q(["status-dot",n.value])},null,2),Kl("span",Zk,Z(e.client.displayName),1)]),Gl(l,{type:e.client.statusColor,size:"small"},{default:pn(()=>[Xl(Z(e.client.online?"Online":"Offline"),1)]),_:1},8,["type"])]),Kl("div",Jk,[Kl("div",Qk,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(Tp))]),_:1}),o[0]||(o[0]=Kl("span",{class:"info-label"},"Hostname:",-1)),Kl("span",eE,Z(e.client.hostname||"N/A"),1)]),e.client.ip?(Fl(),Dl("div",tE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(yp))]),_:1}),o[1]||(o[1]=Kl("span",{class:"info-label"},"IP:",-1)),Kl("span",nE,Z(e.client.ip),1)])):Zl("",!0),e.client.user?(Fl(),Dl("div",oE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(jp))]),_:1}),o[2]||(o[2]=Kl("span",{class:"info-label"},"User:",-1)),Kl("span",lE,Z(e.client.user),1)])):Zl("",!0),Kl("div",rE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(kp))]),_:1}),o[3]||(o[3]=Kl("span",{class:"info-label"},"Run ID:",-1)),Kl("span",aE,Z(e.client.runID),1)]),e.client.firstConnectedAt?(Fl(),Dl("div",sE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[4]||(o[4]=Kl("span",{class:"info-label"},"First Connected:",-1)),Kl("span",iE,Z(e.client.firstConnectedAgo),1)])):Zl("",!0),e.client.online?(Fl(),Dl("div",uE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[5]||(o[5]=Kl("span",{class:"info-label"},"Last Connected:",-1)),Kl("span",cE,Z(e.client.lastConnectedAgo),1)])):Zl("",!0),!e.client.online&&e.client.disconnectedAt?(Fl(),Dl("div",dE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(mp))]),_:1}),o[6]||(o[6]=Kl("span",{class:"info-label"},"Disconnected:",-1)),Kl("span",pE,Z(e.client.disconnectedAgo),1)])):Zl("",!0)])]),_:1})}}}),[["__scopeId","data-v-4bd4753c"]]),vE={class:"clients-page"},hE={class:"filter-bar"},mE={class:"clients-grid"},gE=JS(Xn({__name:"Clients",setup(e){const t=St([]),n=St(!1),o=St(""),l=St("all");let r=null;const a=yr(()=>{const e=t.value.length,n=t.value.filter(e=>e.online).length;return{total:e,online:n,offline:e-n}}),s=yr(()=>{let e=t.value;return"online"===l.value?e=e.filter(e=>e.online):"offline"===l.value&&(e=e.filter(e=>!e.online)),o.value&&(e=e.filter(e=>e.matchesFilter(o.value))),e.sort((e,t)=>e.online!==t.online?e.online?-1:1:e.displayName.localeCompare(t.displayName)),e}),i=async()=>{n.value=!0;try{const e=await nk("../api/clients");t.value=e.map(e=>new Gk(e))}catch(e){gC({showClose:!0,message:"Failed to fetch clients: "+e.message,type:"error"})}finally{n.value=!1}};return co(()=>{i(),r=window.setInterval(()=>{i()},5e3)}),ho(()=>{null!==r&&(window.clearInterval(r),r=null)}),(e,t)=>{const r=Cf,i=yg,u=bg,c=Cb,d=nC;return Fl(),Dl("div",vE,[Kl("div",hE,[Gl(r,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=e=>o.value=e),placeholder:"Search by hostname, user, client ID, run ID...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(u,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=e=>l.value=e),class:"status-filter"},{default:pn(()=>[Gl(i,{label:"all"},{default:pn(()=>[Xl("All ("+Z(a.value.total)+")",1)]),_:1}),Gl(i,{label:"online"},{default:pn(()=>[Xl(" Online ("+Z(a.value.online)+") ",1)]),_:1}),Gl(i,{label:"offline"},{default:pn(()=>[Xl(" Offline ("+Z(a.value.offline)+") ",1)]),_:1})]),_:1},8,["modelValue"])]),fn((Fl(),Dl("div",mE,[0!==s.value.length||n.value?Zl("",!0):(Fl(),zl(c,{key:0,description:"No clients found"})),(Fl(!0),Dl(Rl,null,Eo(s.value,e=>(Fl(),zl(fE,{key:e.key,client:e},null,8,["client"]))),128))])),[[d,n.value]])])}}}),[["__scopeId","data-v-14cf389c"]]);class bE{name;type;annotations;encryption;compression;conns;trafficIn;trafficOut;lastStartTime;lastCloseTime;status;clientVersion;addr;port;customDomains;hostHeaderRewrite;locations;subdomain;constructor(e){if(this.name=e.name,this.type="",this.annotations=new Map,e.conf?.annotations)for(const t in e.conf.annotations)this.annotations.set(t,e.conf.annotations[t]);this.encryption=!1,this.compression=!1,this.encryption=e.conf?.transport?.useEncryption||this.encryption,this.compression=e.conf?.transport?.useCompression||this.compression,this.conns=e.curConns,this.trafficIn=e.todayTrafficIn,this.trafficOut=e.todayTrafficOut,this.lastStartTime=e.lastStartTime,this.lastCloseTime=e.lastCloseTime,this.status=e.status,this.clientVersion=e.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class yE extends bE{constructor(e){super(e),this.type="tcp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class wE extends bE{constructor(e){super(e),this.type="udp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class xE extends bE{constructor(e,t,n){super(e),this.type="http",this.port=t,e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.hostHeaderRewrite=e.conf.hostHeaderRewrite,this.locations=e.conf.locations,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class CE extends bE{constructor(e,t,n){super(e),this.type="https",this.port=t,null!=e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class _E extends bE{multiplexer;routeByHTTPUser;constructor(e,t,n){super(e),this.type="tcpmux",this.port=t,this.multiplexer="",this.routeByHTTPUser="",e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.multiplexer=e.conf.multiplexer,this.routeByHTTPUser=e.conf.routeByHTTPUser,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class SE extends bE{constructor(e){super(e),this.type="stcp"}}class kE extends bE{constructor(e){super(e),this.type="sudp"}}const EE={key:0},TE={key:1},AE={key:2},OE={key:0},ME={class:"annotation-key"},RE=Xn({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,n=()=>{const e=[];return t.row.annotations&&t.row.annotations.forEach((t,n)=>{e.push({key:n,value:t})}),e};return(t,o)=>{const l=ay,r=ry,a=Gg,s=Ux;return Fl(),Dl(Rl,null,[Gl(r,{"label-position":"left","label-width":"auto",inline:"",class:"proxy-table-expand"},{default:pn(()=>[Gl(l,{label:"Name"},{default:pn(()=>[Kl("span",null,Z(e.row.name),1)]),_:1}),Gl(l,{label:"Type"},{default:pn(()=>[Kl("span",null,Z(e.row.type),1)]),_:1}),Gl(l,{label:"Encryption"},{default:pn(()=>[Kl("span",null,Z(e.row.encryption),1)]),_:1}),Gl(l,{label:"Compression"},{default:pn(()=>[Kl("span",null,Z(e.row.compression),1)]),_:1}),Gl(l,{label:"Last Start"},{default:pn(()=>[Kl("span",null,Z(e.row.lastStartTime),1)]),_:1}),Gl(l,{label:"Last Close"},{default:pn(()=>[Kl("span",null,Z(e.row.lastCloseTime),1)]),_:1}),"http"===e.proxyType||"https"===e.proxyType?(Fl(),Dl("div",EE,[Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1}),Gl(l,{label:"locations"},{default:pn(()=>[Kl("span",null,Z(e.row.locations),1)]),_:1}),Gl(l,{label:"HostRewrite"},{default:pn(()=>[Kl("span",null,Z(e.row.hostHeaderRewrite),1)]),_:1})])):"tcpmux"===e.proxyType?(Fl(),Dl("div",TE,[Gl(l,{label:"Multiplexer"},{default:pn(()=>[Kl("span",null,Z(e.row.multiplexer),1)]),_:1}),Gl(l,{label:"RouteByHTTPUser"},{default:pn(()=>[Kl("span",null,Z(e.row.routeByHTTPUser),1)]),_:1}),Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1})])):(Fl(),Dl("div",AE,[Gl(l,{label:"Addr"},{default:pn(()=>[Kl("span",null,Z(e.row.addr),1)]),_:1})]))]),_:1}),e.row.annotations&&e.row.annotations.size>0?(Fl(),Dl("div",OE,[Gl(a),Gl(s,{class:"title-text",size:"large"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Annotations",-1)])]),_:1}),Kl("ul",null,[(Fl(!0),Dl(Rl,null,Eo(n(),e=>(Fl(),Dl("li",{key:e.key},[Kl("span",ME,Z(e.key),1),Kl("span",null,Z(e.value),1)]))),128))])])):Zl("",!0)],64)}}}),LE={class:"traffic-chart-container"},PE={key:0,class:"chart-wrapper"},NE={class:"y-axis"},IE={class:"y-label"},BE={class:"y-label"},FE={class:"bars-area"},$E={class:"bars-group"},jE={class:"date-label"},VE={key:1,class:"legend"},DE=Xn({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e,n=St(!1),o=St([]),l=St(0),r=()=>{n.value=!0,(e=>nk(`../api/traffic/${e}`))(t.proxyName).then(e=>{((e,t)=>{const n=[...e||[]].reverse(),r=[...t||[]].reverse();for(;n.length<7;)n.unshift(0);for(;r.length<7;)r.unshift(0);const a=n.slice(-7),s=r.slice(-7),i=[];let u=new Date;u.setDate(u.getDate()-6);for(let o=0;o<7;o++)i.push(`${u.getMonth()+1}-${u.getDate()}`),u.setDate(u.getDate()+1);const c=Math.max(...a),d=Math.max(...s);l.value=Math.max(c,d,100),o.value=i.map((e,t)=>({date:e,in:a[t],out:s[t],inPercent:a[t]/l.value*100,outPercent:s[t]/l.value*100}))})(e.trafficIn,e.trafficOut)}).catch(e=>{gC({showClose:!0,message:"Get traffic info failed! "+e,type:"warning"})}).finally(()=>{n.value=!1})};return co(()=>{r()}),(e,t)=>{const r=im,a=Cb,s=nC;return fn((Fl(),Dl("div",LE,[!n.value&&o.value.length>0?(Fl(),Dl("div",PE,[Kl("div",NE,[Kl("div",IE,Z(Ot(US)(l.value)),1),Kl("div",BE,Z(Ot(US)(l.value/2)),1),t[0]||(t[0]=Kl("div",{class:"y-label"},"0",-1))]),Kl("div",FE,[t[1]||(t[1]=Kl("div",{class:"grid-line top"},null,-1)),t[2]||(t[2]=Kl("div",{class:"grid-line middle"},null,-1)),t[3]||(t[3]=Kl("div",{class:"grid-line bottom"},null,-1)),(Fl(!0),Dl(Rl,null,Eo(o.value,(e,t)=>(Fl(),Dl("div",{key:t,class:"day-column"},[Kl("div",$E,[Gl(r,{content:`In: ${Ot(US)(e.in)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-in",style:V({height:Math.max(e.inPercent,1)+"%"})},null,4)]),_:2},1032,["content"]),Gl(r,{content:`Out: ${Ot(US)(e.out)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-out",style:V({height:Math.max(e.outPercent,1)+"%"})},null,4)]),_:2},1032,["content"])]),Kl("div",jE,Z(e.date),1)]))),128))])])):Zl("",!0),!n.value&&o.value.length>0?(Fl(),Dl("div",VE,[...t[4]||(t[4]=[Kl("div",{class:"legend-item"},[Kl("span",{class:"dot in"}),Xl(" Traffic In ")],-1),Kl("div",{class:"legend-item"},[Kl("span",{class:"dot out"}),Xl(" Traffic Out ")],-1)])])):n.value?Zl("",!0):(Fl(),zl(a,{key:2,description:"No traffic data"}))])),[[s,n.value]])}}}),zE=JS(DE,[["__scopeId","data-v-3f425b60"]]),HE={class:"proxies-page"},WE={class:"toolbar-header"},qE={class:"toolbar-actions"},UE={class:"expand-wrapper"},KE={class:"traffic-cell"},GE={class:"traffic-item up",title:"Traffic Out"},YE={class:"traffic-item down",title:"Traffic In"},XE=Xn({__name:"Proxies",setup(e){const t=oS(),n=nS(),o=[{label:"TCP",value:"tcp"},{label:"UDP",value:"udp"},{label:"HTTP",value:"http"},{label:"HTTPS",value:"https"},{label:"TCPMUX",value:"tcpmux"},{label:"STCP",value:"stcp"},{label:"SUDP",value:"sudp"}],l=St(t.params.type||"tcp"),r=St([]),a=St(!1),s=St(""),i=St(!1),u=St(""),c=yr(()=>{if(!s.value)return r.value;const e=s.value.toLowerCase();return r.value.filter(t=>t.name.toLowerCase().includes(e))});let d=null;const p=async()=>{if(d)return d;const e=await lk();return d=e,d},f=async()=>{a.value=!0,r.value=[];try{const e=l.value,t=await(e=>nk(`../api/proxy/${e}`))(e);if("tcp"===e)r.value=t.proxies.map(e=>new yE(e));else if("udp"===e)r.value=t.proxies.map(e=>new wE(e));else if("http"===e){const e=await p();e&&e.vhostHTTPPort&&(r.value=t.proxies.map(t=>new xE(t,e.vhostHTTPPort,e.subdomainHost)))}else if("https"===e){const e=await p();e&&e.vhostHTTPSPort&&(r.value=t.proxies.map(t=>new CE(t,e.vhostHTTPSPort,e.subdomainHost)))}else if("tcpmux"===e){const e=await p();e&&e.tcpmuxHTTPConnectPort&&(r.value=t.proxies.map(t=>new _E(t,e.tcpmuxHTTPConnectPort,e.subdomainHost)))}else"stcp"===e?r.value=t.proxies.map(e=>new SE(e)):"sudp"===e&&(r.value=t.proxies.map(e=>new kE(e)))}catch(e){gC({showClose:!0,message:"Failed to fetch proxies: "+e.message,type:"error"})}finally{a.value=!1}},v=async()=>{try{await ok("../api/proxies?status=offline"),gC({message:"Successfully cleared offline proxies",type:"success"}),f()}catch(e){gC({message:"Failed to clear offline proxies: "+e.message,type:"warning"})}};return wn(l,e=>{n.replace({params:{type:e}}),f()}),f(),(e,t)=>{const n=qx,r=Wx,d=Cf,p=Fm,h=im,m=Oy,g=Ax,b=ip,y=_g,w=Tx,x=$m,C=Kg,_=nC;return Fl(),Dl("div",HE,[Gl(x,{class:"main-card",shadow:"never"},{default:pn(()=>[Kl("div",WE,[Gl(r,{modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),class:"proxy-tabs"},{default:pn(()=>[(Fl(),Dl(Rl,null,Eo(o,e=>Gl(n,{key:e.value,label:e.label,name:e.value},null,8,["label","name"])),64))]),_:1},8,["modelValue"]),Kl("div",qE,[Gl(d,{modelValue:s.value,"onUpdate:modelValue":t[1]||(t[1]=e=>s.value=e),placeholder:"Search by name...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(h,{content:"Refresh",placement:"top"},{default:pn(()=>[Gl(p,{icon:Ot(Pp),circle:"",onClick:f},null,8,["icon"])]),_:1}),Gl(m,{title:"Are you sure to clear all data of offline proxies?",onConfirm:v},{reference:pn(()=>[Gl(p,{type:"danger",plain:"",icon:Ot(xp)},{default:pn(()=>[...t[3]||(t[3]=[Xl("Clear Offline",-1)])]),_:1},8,["icon"])]),_:1})])]),fn((Fl(),zl(w,{data:c.value,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:pn(()=>[Gl(g,{type:"expand"},{default:pn(e=>[Kl("div",UE,[Gl(RE,{row:e.row,proxyType:l.value},null,8,["row","proxyType"])])]),_:1}),Gl(g,{label:"Name",prop:"name",sortable:"","min-width":"150","show-overflow-tooltip":""}),Gl(g,{label:"Port",prop:"port",sortable:"",width:"100"}),Gl(g,{label:"Conns",prop:"conns",sortable:"",width:"100",align:"center"}),Gl(g,{label:"Traffic",width:"220"},{default:pn(e=>[Kl("div",KE,[Kl("span",GE,[Gl(b,null,{default:pn(()=>[Gl(Ot(Fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficOut)),1)]),Kl("span",YE,[Gl(b,null,{default:pn(()=>[Gl(Ot(fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficIn)),1)])])]),_:1}),Gl(g,{label:"Version",prop:"clientVersion",sortable:"",width:"140","show-overflow-tooltip":""}),Gl(g,{label:"Status",prop:"status",sortable:"",width:"120",align:"center"},{default:pn(e=>[Gl(y,{type:"online"===e.row.status?"success":"danger",effect:"light",round:""},{default:pn(()=>[Xl(Z(e.row.status),1)]),_:2},1032,["type"])]),_:1}),Gl(g,{label:"Action",width:"120",align:"center",fixed:"right"},{default:pn(e=>[Gl(p,{type:"primary",link:"",icon:Ot(wp),onClick:t=>(e=>{u.value=e,i.value=!0})(e.row.name)},{default:pn(()=>[...t[4]||(t[4]=[Xl(" Traffic ",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[_,a.value]])]),_:1}),Gl(C,{modelValue:i.value,"onUpdate:modelValue":t[2]||(t[2]=e=>i.value=e),"destroy-on-close":"",title:`Traffic Statistics - ${u.value}`,width:"700px","align-center":"",class:"traffic-dialog"},{default:pn(()=>[Gl(zE,{proxyName:u.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])])}}}),ZE=JS(XE,[["__scopeId","data-v-0da05f6a"]]),JE=function(e){const t=z_(e.routes,e),n=e.parseQuery||v_,o=e.stringifyQuery||h_,l=e.history,r=C_(),a=C_(),s=C_(),i=kt(QC);let u=QC;wC&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=_C.bind(null,e=>""+e),d=_C.bind(null,WC),p=_C.bind(null,qC);function f(e,r){if(r=CC({},r||i.value),"string"==typeof e){const o=KC(n,e,r.path),a=t.resolve({path:o.path},r),s=l.createHref(o.fullPath);return CC(o,a,{params:p(a.params),hash:qC(o.hash),redirectedFrom:void 0,href:s})}let a;if(null!=e.path)a=CC({},e,{path:KC(n,e.path,r.path).path});else{const t=CC({},e.params);for(const e in t)null==t[e]&&delete t[e];a=CC({},e,{params:d(t)}),r.params=d(r.params)}const s=t.resolve(a,r),u=e.hash||"";s.params=c(p(s.params));const f=function(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}(o,CC({},e,{hash:(v=u,DC(v).replace(FC,"{").replace(jC,"}").replace(IC,"^")),path:s.path}));var v;const h=l.createHref(f);return CC({fullPath:f,hash:u,query:o===h_?m_(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function v(e){return"string"==typeof e?KC(n,e,i.value.path):CC({},e)}function h(e,t){if(u!==e)return p_(c_.NAVIGATION_CANCELLED,{from:t,to:e})}function m(e){return b(e)}function g(e,t){const n=e.matched[e.matched.length-1];if(n&&n.redirect){const{redirect:o}=n;let l="function"==typeof o?o(e,t):o;return"string"==typeof l&&(l=l.includes("?")||l.includes("#")?l=v(l):{path:l},l.params={}),CC({query:e.query,hash:e.hash,params:null!=l.path?{}:e.params},l)}}function b(e,t){const n=u=f(e),l=i.value,r=e.state,a=e.force,s=!0===e.replace,c=g(n,l);if(c)return b(CC(v(c),{state:"object"==typeof c?CC({},r,c.state):r,force:a,replace:s}),t||n);const d=n;let p;return d.redirectedFrom=t,!a&&function(e,t,n){const o=t.matched.length-1,l=n.matched.length-1;return o>-1&&o===l&&YC(t.matched[o],n.matched[l])&&XC(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}(o,l,n)&&(p=p_(c_.NAVIGATION_DUPLICATED,{to:d,from:l}),R(l,l,!0,!1)),(p?Promise.resolve(p):x(d,l)).catch(e=>f_(e)?f_(e,c_.NAVIGATION_GUARD_REDIRECT)?e:M(e):O(e,d,l)).then(e=>{if(e){if(f_(e,c_.NAVIGATION_GUARD_REDIRECT))return b(CC({replace:s},v(e.to),{state:"object"==typeof e.to?CC({},r,e.to.state):r,force:a}),t||d)}else e=_(d,l,!0,s,r);return C(d,l,e),e})}function y(e,t){const n=h(e,t);return n?Promise.reject(n):Promise.resolve()}function w(e){const t=N.values().next().value;return t&&"function"==typeof t.runWithContext?t.runWithContext(e):e()}function x(e,t){let n;const[o,l,s]=function(e,t){const n=[],o=[],l=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;aYC(e,r))?o.push(r):n.push(r));const s=e.matched[a];s&&(t.matched.find(e=>YC(e,s))||l.push(s))}return[n,o,l]}(e,t);n=S_(o.reverse(),"beforeRouteLeave",e,t);for(const r of o)r.leaveGuards.forEach(o=>{n.push(__(o,e,t))});const i=y.bind(null,e,t);return n.push(i),B(n).then(()=>{n=[];for(const o of r.list())n.push(__(o,e,t));return n.push(i),B(n)}).then(()=>{n=S_(l,"beforeRouteUpdate",e,t);for(const o of l)o.updateGuards.forEach(o=>{n.push(__(o,e,t))});return n.push(i),B(n)}).then(()=>{n=[];for(const o of s)if(o.beforeEnter)if(kC(o.beforeEnter))for(const l of o.beforeEnter)n.push(__(l,e,t));else n.push(__(o.beforeEnter,e,t));return n.push(i),B(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=S_(s,"beforeRouteEnter",e,t,w),n.push(i),B(n))).then(()=>{n=[];for(const o of a.list())n.push(__(o,e,t));return n.push(i),B(n)}).catch(e=>f_(e,c_.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function C(e,t,n){s.list().forEach(o=>w(()=>o(e,t,n)))}function _(e,t,n,o,r){const a=h(e,t);if(a)return a;const s=t===QC,u=wC?history.state:{};n&&(o||s?l.replace(e.fullPath,CC({scroll:s&&u&&u.scroll},r)):l.push(e.fullPath,r)),i.value=e,R(e,t,n,s),M()}let S;function k(){S||(S=l.listen((e,t,n)=>{if(!I.listening)return;const o=f(e),r=g(o,I.currentRoute.value);if(r)return void b(CC(r,{replace:!0,force:!0}),o).catch(SC);u=o;const a=i.value;var s,c;wC&&(s=s_(a.fullPath,n.delta),c=r_(),i_.set(s,c)),x(o,a).catch(e=>f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_CANCELLED)?e:f_(e,c_.NAVIGATION_GUARD_REDIRECT)?(b(CC(v(e.to),{force:!0}),o).then(e=>{f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===e_.pop&&l.go(-1,!1)}).catch(SC),Promise.reject()):(n.delta&&l.go(-n.delta,!1),O(e,o,a))).then(e=>{(e=e||_(o,a,!1))&&(n.delta&&!f_(e,c_.NAVIGATION_CANCELLED)?l.go(-n.delta,!1):n.type===e_.pop&&f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&l.go(-1,!1)),C(o,a,e)}).catch(SC)}))}let E,T=C_(),A=C_();function O(e,t,n){M(e);const o=A.list();return o.length&&o.forEach(o=>o(e,t,n)),Promise.reject(e)}function M(e){return E||(E=!e,k(),T.list().forEach(([t,n])=>e?n(e):t()),T.reset()),e}function R(t,n,o,l){const{scrollBehavior:r}=e;if(!wC||!r)return Promise.resolve();const a=!o&&function(e){const t=i_.get(e);return i_.delete(e),t}(s_(t.fullPath,0))||(l||!o)&&history.state&&history.state.scroll||null;return tn().then(()=>r(t,n,a)).then(e=>e&&a_(e)).catch(e=>O(e,t,n))}const L=e=>l.go(e);let P;const N=new Set,I={currentRoute:i,listening:!0,addRoute:function(e,n){let o,l;return u_(e)?(o=t.getRecordMatcher(e),l=n):l=e,t.addRoute(l,o)},removeRoute:function(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)},clearRoutes:t.clearRoutes,hasRoute:function(e){return!!t.getRecordMatcher(e)},getRoutes:function(){return t.getRoutes().map(e=>e.record)},resolve:f,options:e,push:m,replace:function(e){return m(CC(v(e),{replace:!0}))},go:L,back:()=>L(-1),forward:()=>L(1),beforeEach:r.add,beforeResolve:a.add,afterEach:s.add,onError:A.add,isReady:function(){return E&&i.value!==QC?Promise.resolve():new Promise((e,t)=>{T.add([e,t])})},install(e){e.component("RouterLink",X_),e.component("RouterView",tS),e.config.globalProperties.$router=I,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(i)}),wC&&!P&&i.value===QC&&(P=!0,m(l.location).catch(e=>{}));const t={};for(const o in QC)Object.defineProperty(t,o,{get:()=>i.value[o],enumerable:!0});e.provide(y_,I),e.provide(w_,ft(t)),e.provide(x_,i);const n=e.unmount;N.add(e),e.unmount=function(){N.delete(e),N.size<1&&(u=QC,S&&S(),S=null,i.value=QC,P=!1,E=!1),n()}}};function B(e){return e.reduce((e,t)=>e.then(()=>w(t)),Promise.resolve())}return I}({history:((QE=location.host?QE||location.pathname+location.search:"").includes("#")||(QE+="#"),A_(QE)),routes:[{path:"/",name:"ServerOverview",component:Kk},{path:"/clients",name:"Clients",component:gE},{path:"/proxies/:type?",name:"Proxies",component:ZE}]});var QE;const eT=$a(WS);eT.use(JE),eT.mount("#app")}},function(){return t||(0,e[n(e)[0]])((t={exports:{}}).exports,t),t.exports});export default o(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html index 88490373043..c952d6311b9 100644 --- a/assets/frps/static/index.html +++ b/assets/frps/static/index.html @@ -4,8 +4,8 @@ frp server - - + + diff --git a/server/client_registry.go b/server/client_registry.go index 423861d16e9..8f51973a0ee 100644 --- a/server/client_registry.go +++ b/server/client_registry.go @@ -2,7 +2,6 @@ package server import ( "fmt" - "maps" "sync" "time" ) @@ -14,7 +13,7 @@ type ClientInfo struct { ClientID string RunID string Hostname string - Metas map[string]string + IP string FirstConnectedAt time.Time LastConnectedAt time.Time DisconnectedAt time.Time @@ -37,7 +36,7 @@ func NewClientRegistry() *ClientRegistry { } // Register stores/updates metadata for a client and returns the registry key plus whether it conflicts with an online client. -func (cr *ClientRegistry) Register(user, clientID, runID, hostname string, metas map[string]string) (key string, conflict bool) { +func (cr *ClientRegistry) Register(user, clientID, runID, hostname, remoteAddr string) (key string, conflict bool) { if runID == "" { return "", false } @@ -72,7 +71,7 @@ func (cr *ClientRegistry) Register(user, clientID, runID, hostname string, metas info.RunID = runID info.Hostname = hostname - info.Metas = metas + info.IP = remoteAddr if info.FirstConnectedAt.IsZero() { info.FirstConnectedAt = now } @@ -113,9 +112,7 @@ func (cr *ClientRegistry) List() []ClientInfo { result := make([]ClientInfo, 0, len(cr.clients)) for _, info := range cr.clients { - cp := *info - cp.Metas = maps.Clone(info.Metas) - result = append(result, cp) + result = append(result, *info) } return result } @@ -129,9 +126,7 @@ func (cr *ClientRegistry) GetByKey(key string) (ClientInfo, bool) { if !ok { return ClientInfo{}, false } - cp := *info - cp.Metas = maps.Clone(info.Metas) - return cp, true + return *info, true } func (cr *ClientRegistry) composeClientKey(user, id string) string { diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 6f862691507..44aa23c9b1e 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -94,16 +94,16 @@ type serverInfoResp struct { } type clientInfoResp struct { - Key string `json:"key"` - User string `json:"user"` - ClientID string `json:"clientId"` - RunID string `json:"runId"` - Hostname string `json:"hostname"` - Metas map[string]string `json:"metas,omitempty"` - FirstConnectedAt int64 `json:"firstConnectedAt"` - LastConnectedAt int64 `json:"lastConnectedAt"` - DisconnectedAt int64 `json:"disconnectedAt,omitempty"` - Online bool `json:"online"` + Key string `json:"key"` + User string `json:"user"` + ClientID string `json:"clientID"` + RunID string `json:"runID"` + Hostname string `json:"hostname"` + ClientIP string `json:"clientIP,omitempty"` + FirstConnectedAt int64 `json:"firstConnectedAt"` + LastConnectedAt int64 `json:"lastConnectedAt"` + DisconnectedAt int64 `json:"disconnectedAt,omitempty"` + Online bool `json:"online"` } // /healthz @@ -531,7 +531,7 @@ func buildClientInfoResp(info ClientInfo) clientInfoResp { ClientID: info.ClientID, RunID: info.RunID, Hostname: info.Hostname, - Metas: info.Metas, + ClientIP: info.IP, FirstConnectedAt: toUnix(info.FirstConnectedAt), LastConnectedAt: toUnix(info.LastConnectedAt), Online: info.Online, diff --git a/server/service.go b/server/service.go index 19cab4a27e9..20688c29641 100644 --- a/server/service.go +++ b/server/service.go @@ -615,7 +615,11 @@ func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login, inter oldCtl.WaitClosed() } - _, conflict := svr.clientRegistry.Register(loginMsg.User, loginMsg.ClientID, loginMsg.RunID, loginMsg.Hostname, loginMsg.Metas) + remoteAddr := ctlConn.RemoteAddr().String() + if host, _, err := net.SplitHostPort(remoteAddr); err == nil { + remoteAddr = host + } + _, conflict := svr.clientRegistry.Register(loginMsg.User, loginMsg.ClientID, loginMsg.RunID, loginMsg.Hostname, remoteAddr) if conflict { svr.ctlManager.Del(loginMsg.RunID, ctl) ctl.Close() diff --git a/web/frps/src/components/ClientCard.vue b/web/frps/src/components/ClientCard.vue index d432e8725e3..fd85d7f90f9 100644 --- a/web/frps/src/components/ClientCard.vue +++ b/web/frps/src/components/ClientCard.vue @@ -17,6 +17,12 @@ {{ client.hostname || 'N/A' }}
+
+ + IP: + {{ client.ip }} +
+
User: @@ -26,7 +32,7 @@
Run ID: - {{ client.runId }} + {{ client.runID }}
@@ -48,26 +54,12 @@
-
-
Metadata:
-
- - {{ meta.key }}: {{ meta.value }} - -
-
- - - - -
- - - diff --git a/assets/frps/embed.go b/assets/frps/embed.go deleted file mode 100644 index 3fc0d3a5524..00000000000 --- a/assets/frps/embed.go +++ /dev/null @@ -1,14 +0,0 @@ -package frpc - -import ( - "embed" - - "github.com/fatedier/frp/assets" -) - -//go:embed static/* -var content embed.FS - -func init() { - assets.Register(content) -} diff --git a/assets/frps/static/favicon.ico b/assets/frps/static/favicon.ico deleted file mode 100644 index 4347765571a827fe6bcc4931a4ff925d07574299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9662 zcmdT~TWDNG7@pb(Auqo9keB8~kPvK=YE@K}K!3-?w{ab9VQfIcGO}X(s$TIdkU! z=ld@+^Uv%mwGDs0y$YXQ>clllU9FV57KA4C5Qy!~ETKT}6`|qYF3=!o2s8njt{}GY z9s6{VrEdjR9kfNH_)rW<8Y)+UbxxSaJk;`x1C)wzKl3TsxOtDK6`}lbYJ-4$J zIuM)V{$TB^j&YNk|58jPyR;yoksDfppJPlr?bB!<06FZdJ0*Jb36Xr>T?M?0zV~#i zd_ar?_BgU^&m6?rhWmC&=HhSe`0*ya@QpLCo6OC%&)9tc+{`20b1}qrY--quKcCCW z%HaoFr310{XdmEz=CS6nM{kmB_%EXl$)7)KRSXg92=RxCdHk#=e)wQ*dfbRVpI(>9 z_@LPiUUu^Te%8XybCY}Q*yM#@x?OVdWup#>Ge=tG17g-^K7TfY4-#J=H{#F5BNBf3 z4uA4&w(<18bKgPm4b{TC{Kmb)I5Cy@sl)KWbwxjLU(@7_VKcfC`$R4Hi6!~dCnork zPsJtk&o5<^I`?@q_Bdj9+;dGjtsHtl^0|yr2d9^-?+-P4ZV-FT_^Dg^&$CVtjcu6= z=On~@uyJuzAAZEp>hWjHIfauZ`J6;29|Qh|<$Cqur~UR_FPVSmoKPCuQojcq8AHTh z+x*qOhYw;?0V7tv%trn$o5$(JA0={dZ=+&}*oW$k$MD!KlEc}+RMx-y0QRm}OSKI) zUlTj`fcoqKAH=_S+XP?o$u)_*Hc%x$a^TK_ALt7wD(-=v^Mu%a=MPSLMqb?uj4`7Q ziPID1F%P{{bEgYyFxO!x$}atZIku}xZySbU{!qL-_Rinje1zCoKYP-MKNky0_=Vdx zumHbjE{J?Q^7=g+Jk{eD^0z_`>L-7$<}bjCBt~&J%%NV*t|+~^3hU%&1cnR=NHfOqbGhJXJmj~J@IUD9w2_! zzn?O~=eibtagQ7Rvh$lFy`YcK%i3!9%69P3)sl#G8BmluN8g z^xa3w=lq5ZtIqGlZ~1`xnVZh$cGxs}^hsHtJt@qe*FHTU(Ibyb_?5fB*C*kzTMN&r zxl>qga+PWpa*^EXQh`4*j(H1tE?6AzPb?o)-Cw!LaF&fRBM0x6<+tvam3JPN*oPyM zI5SyTD>Jww$}V37U65>OQPPV)2y=H@ zYw6I5zVo1Z#%Tr*vG}?_Cw><6?*=Vg209Q!P2XP>H7M!OPCsz$y0F`H=!A^vHu!;K z))X@ub7c)VoYPzK`%}9v&|yn{e{I*n+NYUo%z%8|JEEUyO`;6SYWnX79Q0t`x}|=< zVb?+b-_GC9h$MH2C{?1YQhWHkqSRHagGy~@9l-C1SQ9ip@~nrILU%AIm1Mm`DX@WY zqdw2)E0xl9kk8wd(sh8(+m!OE*{zlmU}qn4gY0L+bDqyOyp{TBJ+.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-menu,.el-menu--popup-container,.el-popper{outline:none}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner-wrapper{align-items:center;color:var(--el-color-white);display:flex;font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}#app{min-height:100vh;display:flex;flex-direction:column;background:#f2f2f2}html.dark #app{background:#1a1a2e}.header{position:sticky;top:0;z-index:100;background:#fff}html.dark .header{background:#1e1e2d}.header-top{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 32px}.brand a{color:#303133;font-size:20px;font-weight:700;text-decoration:none;letter-spacing:-.5px}html.dark .brand a{color:#e5e7eb}.brand a:hover{color:#409eff}.header-actions{display:flex;align-items:center;gap:16px}.github-link{display:flex;align-items:center;padding:6px;border-radius:6px;transition:all .2s}.github-link:hover{background:#f2f3f5}html.dark .github-link:hover{background:#2a2a3c}.github-icon{width:20px;height:20px;color:#606266;transition:color .2s}.github-link:hover .github-icon{color:#303133}html.dark .github-icon{color:#a0a3ad}html.dark .github-link:hover .github-icon{color:#e5e7eb}.theme-switch{--el-switch-on-color: #2c2c3a;--el-switch-off-color: #f2f2f2;--el-switch-border-color: #dcdfe6}.theme-switch .el-switch__core .el-switch__inner .el-icon{color:#909399!important}.header-nav{position:relative;padding:0 32px;border-bottom:1px solid #e4e7ed}html.dark .header-nav{border-bottom-color:#3a3d5c}.nav-menu{background:transparent!important;border-bottom:none!important;height:46px}.nav-menu .el-menu-item,.nav-menu .el-sub-menu__title{position:relative;height:32px!important;line-height:32px!important;border-bottom:none!important;border-radius:6px!important;color:#666!important;font-weight:400;font-size:14px;padding:0 12px!important;margin:7px 0;transition:background .15s ease,color .15s ease}.nav-menu>.el-menu-item,.nav-menu>.el-sub-menu{margin-right:4px}.nav-menu>.el-sub-menu{padding:0!important}html.dark .nav-menu .el-menu-item,html.dark .nav-menu .el-sub-menu__title{color:#888!important}.nav-menu .el-menu-item:hover,.nav-menu .el-sub-menu__title:hover{background:#f2f2f2!important;color:#171717!important}html.dark .nav-menu .el-menu-item:hover,html.dark .nav-menu .el-sub-menu__title:hover{background:#2a2a3c!important;color:#e5e7eb!important}.nav-menu .el-menu-item.is-active{background:transparent!important;color:#171717!important;font-weight:500}.nav-menu .el-menu-item.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:#171717;border-radius:1px}.nav-menu .el-menu-item.is-active:hover{background:#f2f2f2!important}html.dark .nav-menu .el-menu-item.is-active{background:transparent!important;color:#e5e7eb!important;font-weight:500}html.dark .nav-menu .el-menu-item.is-active:after{background:#e5e7eb}html.dark .nav-menu .el-menu-item.is-active:hover{background:#2a2a3c!important}#content{flex:1;padding:24px 40px;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}@media(max-width:768px){.header-top,.header-nav{padding:0 16px}#content{padding:16px}.brand a{font-size:18px}}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);display:flex;flex-direction:column;overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{flex:1;overflow:auto;padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;display:flex;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{background-color:transparent;border:none;border-radius:50%;margin-left:6px;outline:none;overflow:hidden;padding:0}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.stat-card[data-v-c9ca9441]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.stat-card.clickable[data-v-c9ca9441]{cursor:pointer}.stat-card.clickable[data-v-c9ca9441]:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.stat-card.clickable:hover .arrow-icon[data-v-c9ca9441]{transform:translate(4px)}html.dark .stat-card[data-v-c9ca9441]{border-color:#3a3d5c;background:#27293d}.stat-card-content[data-v-c9ca9441]{display:flex;align-items:center;gap:16px}.arrow-icon[data-v-c9ca9441]{color:#909399;font-size:18px;transition:transform .2s ease;flex-shrink:0}html.dark .arrow-icon[data-v-c9ca9441]{color:#9ca3af}.stat-icon[data-v-c9ca9441]{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon .icon[data-v-c9ca9441]{width:28px;height:28px}.icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}html.dark .icon-clients[data-v-c9ca9441]{background:linear-gradient(135deg,#818cf8,#a78bfa)}html.dark .icon-proxies[data-v-c9ca9441]{background:linear-gradient(135deg,#fb7185,#f43f5e)}html.dark .icon-connections[data-v-c9ca9441]{background:linear-gradient(135deg,#60a5fa,#3b82f6)}html.dark .icon-traffic[data-v-c9ca9441]{background:linear-gradient(135deg,#34d399,#10b981)}.stat-info[data-v-c9ca9441]{flex:1;min-width:0}.stat-value[data-v-c9ca9441]{font-size:28px;font-weight:600;line-height:1.2;color:#303133;margin-bottom:4px}html.dark .stat-value[data-v-c9ca9441]{color:#e5e7eb}.stat-label[data-v-c9ca9441]{font-size:14px;color:#909399;font-weight:500}html.dark .stat-label[data-v-c9ca9441]{color:#9ca3af}.stat-subtitle[data-v-c9ca9441]{margin-top:12px;padding-top:12px;border-top:1px solid #e4e7ed;font-size:12px;color:#909399}html.dark .stat-subtitle[data-v-c9ca9441]{border-top-color:#3a3d5c;color:#9ca3af}.server-overview[data-v-10087479]{padding:0}.stats-row[data-v-10087479],.charts-row[data-v-10087479]{margin-bottom:20px}.chart-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;height:100%}html.dark .chart-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.config-card[data-v-10087479]{border-radius:12px;border:1px solid #e4e7ed;margin-bottom:20px}html.dark .config-card[data-v-10087479]{border-color:#3a3d5c;background:#27293d}.card-header[data-v-10087479]{display:flex;justify-content:space-between;align-items:center}.card-title[data-v-10087479]{font-size:16px;font-weight:600;color:#303133}html.dark .card-title[data-v-10087479]{color:#e5e7eb}.traffic-summary[data-v-10087479]{display:flex;align-items:center;justify-content:space-around;min-height:120px;padding:10px 0}.traffic-item[data-v-10087479]{display:flex;align-items:center;gap:16px}.traffic-icon[data-v-10087479]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px}.traffic-item.in .traffic-icon[data-v-10087479]{background:#5470c61a;color:#5470c6}.traffic-item.out .traffic-icon[data-v-10087479]{background:#91cc751a;color:#91cc75}.traffic-info[data-v-10087479]{display:flex;flex-direction:column}.traffic-info .label[data-v-10087479]{font-size:14px;color:#909399}.traffic-info .value[data-v-10087479]{font-size:24px;font-weight:600;color:#303133}html.dark .traffic-info .value[data-v-10087479]{color:#e5e7eb}.traffic-divider[data-v-10087479]{width:1px;height:60px;background:#e4e7ed}html.dark .traffic-divider[data-v-10087479]{background:#3a3d5c}.proxy-types-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px;min-height:120px;align-content:center;padding:10px 0}.proxy-type-item[data-v-10087479]{display:flex;flex-direction:column;align-items:center;padding:12px;background:#f8f9fa;border-radius:8px}html.dark .proxy-type-item[data-v-10087479]{background:#1e1e2d}.proxy-type-name[data-v-10087479]{font-size:12px;color:#909399;font-weight:500;margin-bottom:4px}.proxy-type-count[data-v-10087479]{font-size:20px;font-weight:600;color:#303133}html.dark .proxy-type-count[data-v-10087479]{color:#e5e7eb}.no-data[data-v-10087479]{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;height:100%;color:#909399;font-size:14px}.config-grid[data-v-10087479]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.config-item[data-v-10087479]{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f8f9fa;border-radius:8px;transition:background .2s}html.dark .config-item[data-v-10087479]{background:#1e1e2d}.config-label[data-v-10087479]{font-size:12px;color:#909399;font-weight:500}html.dark .config-label[data-v-10087479]{color:#9ca3af}.config-value[data-v-10087479]{font-size:14px;color:#303133;font-weight:600;word-break:break-all}html.dark .config-value[data-v-10087479]{color:#e5e7eb}@media(max-width:768px){.chart-container[data-v-10087479]{height:250px}.config-grid[data-v-10087479]{grid-template-columns:repeat(2,1fr)}}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);inset:0;margin:0;position:absolute;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke:var(--el-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;transition:all .3s;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{inset:0;margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea .el-input__count.is-outside{background:transparent;bottom:unset;line-height:1;padding-top:2px;position:absolute;right:0;top:100%}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;right:0;top:100%}.el-input .el-input__count.is-outside .el-input__count-inner{background:transparent;line-height:1;padding-left:0}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.client-card[data-v-4bd4753c]{border-radius:12px;transition:all .3s ease;border:1px solid #e4e7ed}.client-card[data-v-4bd4753c]:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000001a}html.dark .client-card[data-v-4bd4753c]{border-color:#3a3d5c;background:#27293d}.client-header[data-v-4bd4753c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e4e7ed}html.dark .client-header[data-v-4bd4753c]{border-bottom-color:#3a3d5c}.client-status[data-v-4bd4753c]{display:flex;align-items:center;gap:8px}.status-dot[data-v-4bd4753c]{width:10px;height:10px;border-radius:50%}.status-success[data-v-4bd4753c]{background-color:#67c23a;box-shadow:0 0 #67c23ab3}.status-warning[data-v-4bd4753c]{background-color:#e6a23c;box-shadow:0 0 #e6a23cb3}.status-danger[data-v-4bd4753c]{background-color:#f56c6c;box-shadow:0 0 #f56c6cb3}.client-name[data-v-4bd4753c]{font-size:16px;font-weight:600;color:#303133}html.dark .client-name[data-v-4bd4753c]{color:#e5e7eb}.client-info[data-v-4bd4753c]{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.info-row[data-v-4bd4753c]{display:flex;align-items:center;gap:8px;font-size:13px}.info-icon[data-v-4bd4753c]{color:#909399;font-size:16px}html.dark .info-icon[data-v-4bd4753c]{color:#9ca3af}.info-label[data-v-4bd4753c]{color:#909399;font-weight:500;min-width:100px}html.dark .info-label[data-v-4bd4753c]{color:#9ca3af}.info-value[data-v-4bd4753c]{color:#606266;flex:1}html.dark .info-value[data-v-4bd4753c]{color:#d1d5db}.monospace[data-v-4bd4753c]{font-family:Courier New,Courier,monospace;font-size:12px;word-break:break-all}.clients-page[data-v-14cf389c]{padding:0 20px 20px}.filter-bar[data-v-14cf389c]{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-input[data-v-14cf389c]{flex:1;min-width:300px;max-width:500px}.status-filter[data-v-14cf389c]{flex-shrink:0}.clients-grid[data-v-14cf389c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;min-height:200px}@media(max-width:768px){.clients-grid[data-v-14cf389c]{grid-template-columns:1fr}.filter-bar[data-v-14cf389c]{flex-direction:column;align-items:stretch}.search-input[data-v-14cf389c]{max-width:none}}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{inset:0;margin:0;overflow:auto;position:fixed}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{inset:0;overflow:auto;position:fixed}.el-overlay-dialog.is-closing .el-dialog{pointer-events:none}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{background-color:var(--el-overlay-color-lighter);height:100%;inset:0;overflow:auto;position:fixed;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:-moz-fit-content;height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table__expand-icon{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);font-size:12px;height:23px;line-height:12px;width:min(23px,100%)}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:0;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{align-items:center;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;text-align:center;width:20px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed;will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;outline:none;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;outline:none;padding:0 10px}.el-table-filter__list-item:focus,.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:var(--el-border-radius-base);cursor:pointer;margin:0;outline:none;padding:0;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin-top:8px;text-align:right}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255,255,255,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;content:"";inset:-1px;pointer-events:none;position:absolute;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-bottom:after{bottom:auto;top:0}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translate(100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translate(-100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(-100%);transform-origin:0 0}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:-moz-fit-content;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}ul{list-style-type:none;padding:5px}ul li{justify-content:space-between;padding:5px}ul .annotation-key{width:300px;display:inline-block;vertical-align:middle}.title-text{color:#99a9bf}.traffic-chart-container[data-v-3f425b60]{width:100%;height:400px;display:flex;flex-direction:column;padding:20px}.chart-wrapper[data-v-3f425b60]{flex:1;display:flex;gap:10px;position:relative;margin-bottom:20px}.y-axis[data-v-3f425b60]{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:12px;color:#909399;padding-bottom:24px;height:calc(100% - 24px)}.bars-area[data-v-3f425b60]{flex:1;display:flex;justify-content:space-between;align-items:flex-end;position:relative;height:100%;padding-bottom:24px}.grid-line[data-v-3f425b60]{position:absolute;left:0;right:0;height:1px;background-color:#e4e7ed;z-index:0}html.dark .grid-line[data-v-3f425b60]{background-color:#3a3d5c}.grid-line.top[data-v-3f425b60]{top:0}.grid-line.middle[data-v-3f425b60]{top:50%;transform:translateY(-50%)}.grid-line.bottom[data-v-3f425b60]{bottom:24px}.day-column[data-v-3f425b60]{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;z-index:1}.bars-group[data-v-3f425b60]{height:100%;display:flex;align-items:flex-end;gap:4px;width:60%}.bar[data-v-3f425b60]{flex:1;border-radius:4px 4px 0 0;transition:height .3s ease;min-height:1px}.bar-in[data-v-3f425b60]{background-color:#5470c6}.bar-out[data-v-3f425b60]{background-color:#91cc75}.bar[data-v-3f425b60]:hover{opacity:.8}.date-label[data-v-3f425b60]{position:absolute;bottom:-24px;font-size:12px;color:#909399;width:100%;text-align:center}.legend[data-v-3f425b60]{display:flex;justify-content:center;gap:24px;margin-top:10px}.legend-item[data-v-3f425b60]{display:flex;align-items:center;gap:8px;font-size:14px;color:#606266}html.dark .legend-item[data-v-3f425b60]{color:#e5e7eb}.dot[data-v-3f425b60]{width:12px;height:12px;border-radius:50%}.dot.in[data-v-3f425b60]{background-color:#5470c6}.dot.out[data-v-3f425b60]{background-color:#91cc75}.proxies-page[data-v-0da05f6a]{padding:24px;max-width:1600px;margin:0 auto}.main-card[data-v-0da05f6a]{border-radius:12px;border:none}.toolbar-header[data-v-0da05f6a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--el-border-color-lighter);padding-bottom:16px}.proxy-tabs[data-v-0da05f6a] .el-tabs__header{margin-bottom:0}.proxy-tabs[data-v-0da05f6a] .el-tabs__nav-wrap:after{height:0}.toolbar-actions[data-v-0da05f6a]{display:flex;gap:12px;align-items:center}.search-input[data-v-0da05f6a]{width:240px}.traffic-cell[data-v-0da05f6a]{display:flex;flex-direction:column;gap:4px;font-size:13px}.traffic-item[data-v-0da05f6a]{display:flex;align-items:center;gap:4px}.traffic-item.up[data-v-0da05f6a]{color:#67c23a}.traffic-item.down[data-v-0da05f6a]{color:#409eff}.expand-wrapper[data-v-0da05f6a]{padding:16px 24px;background-color:transparent}@media(max-width:768px){.toolbar-header[data-v-0da05f6a]{flex-direction:column;align-items:stretch}.toolbar-actions[data-v-0da05f6a]{justify-content:space-between}.search-input[data-v-0da05f6a]{flex:1}}.el-form-item span{margin-left:15px}.proxy-table-expand{font-size:0}.proxy-table-expand .el-form-item__label{width:90px;color:#99a9bf}.proxy-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:50%}.el-table .el-table__expanded-cell{padding:20px 50px}*{box-sizing:border-box}.el-button,.el-card,.el-input,.el-select,.el-tag{transition:all .3s ease}.el-card:hover{box-shadow:0 8px 16px #0000001a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.el-page-header{padding:16px 0}.el-page-header__title{font-size:20px;font-weight:600}.el-form-item{margin-bottom:18px}@media(max-width:768px){.el-row{margin-left:0!important;margin-right:0!important}.el-col{padding-left:10px!important;padding-right:10px!important}}html.dark{--el-bg-color: #1e1e2e;--el-fill-color-blank: #1e1e2e;background-color:#1e1e2e}html.dark body{background-color:#1e1e2e;color:#e5e7eb}html.dark ::-webkit-scrollbar-track{background:#27293d}html.dark ::-webkit-scrollbar-thumb{background:#3a3d5c}html.dark ::-webkit-scrollbar-thumb:hover{background:#4a4d6c}html.dark .el-card,html.dark .el-input__wrapper{background-color:#27293d;border-color:#3a3d5c}html.dark .el-input__inner{color:#e5e7eb}html.dark .el-table{background-color:#27293d;color:#e5e7eb}html.dark .el-table th{background-color:#1e1e2e;color:#e5e7eb}html.dark .el-table tr{background-color:#27293d}html.dark .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:#1e1e2e} diff --git a/assets/frps/static/index-r9B2t7lx.js b/assets/frps/static/index-r9B2t7lx.js deleted file mode 100644 index d08d32a8248..00000000000 --- a/assets/frps/static/index-r9B2t7lx.js +++ /dev/null @@ -1 +0,0 @@ -var e,t,n=Object.getOwnPropertyNames,o=(e={"index-r9B2t7lx.js"(e,t){function n(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const o={},l=[],r=()=>{},a=()=>!1,s=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),i=e=>e.startsWith("onUpdate:"),u=Object.assign,c=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,p=(e,t)=>d.call(e,t),f=Array.isArray,v=e=>"[object Map]"===_(e),h=e=>"[object Set]"===_(e),m=e=>"[object Date]"===_(e),g=e=>"function"==typeof e,b=e=>"string"==typeof e,y=e=>"symbol"==typeof e,w=e=>null!==e&&"object"==typeof e,x=e=>(w(e)||g(e))&&g(e.then)&&g(e.catch),C=Object.prototype.toString,_=e=>C.call(e),S=e=>"[object Object]"===_(e),k=e=>b(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,E=n(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),T=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},A=/-\w/g,O=T(e=>e.replace(A,e=>e.slice(1).toUpperCase())),M=/\B([A-Z])/g,R=T(e=>e.replace(M,"-$1").toLowerCase()),L=T(e=>e.charAt(0).toUpperCase()+e.slice(1)),P=T(e=>e?`on${L(e)}`:""),N=(e,t)=>!Object.is(e,t),I=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},F=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let $;const j=()=>$||($="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function V(e){if(f(e)){const t={};for(let n=0;n{if(e){const n=e.split(z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function q(e){let t="";if(b(e))t=e;else if(f(e))for(let n=0;nG(e,t))}const X=e=>!(!e||!0!==e.__v_isRef),Z=e=>b(e)?e:null==e?"":f(e)||w(e)&&(e.toString===C||!g(e.toString))?X(e)?Z(e.value):JSON.stringify(e,J,2):String(e),J=(e,t)=>X(t)?J(e,t.value):v(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],o)=>(e[Q(t,o)+" =>"]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Q(e))}:y(t)?Q(t):!w(t)||f(t)||S(t)?t:String(t),Q=(e,t="")=>{var n;return y(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};let ee,te;class ne{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ee,!e&&ee&&(this.index=(ee.scopes||(ee.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0===--this._on&&(ee=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(this._active=!1,t=0,n=this.effects.length;t0)return;if(ie){let e=ie;for(ie=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;se;){let n=se;for(se=void 0;n;){const o=n.next;if(n.next=void 0,n.flags&=-9,1&n.flags)try{n.trigger()}catch(t){e||(e=t)}n=o}}if(e)throw e}function fe(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ve(e){let t,n=e.depsTail,o=n;for(;o;){const e=o.prevDep;-1===o.version?(o===n&&(n=e),ge(o),be(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=e}e.deps=t,e.depsTail=n}function he(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(me(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function me(e){if(4&e.flags&&!(16&e.flags))return;if(e.flags&=-17,e.globalVersion===Se)return;if(e.globalVersion=Se,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!he(e)))return;e.flags|=2;const t=e.dep,n=te,o=ye;te=e,ye=!0;try{fe(e);const n=e.fn(e._value);(0===t.version||N(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(l){throw t.version++,l}finally{te=n,ye=o,ve(e),e.flags&=-3}}function ge(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ge(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function be(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ye=!0;const we=[];function xe(){we.push(ye),ye=!1}function Ce(){const e=we.pop();ye=void 0===e||e}function _e(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const e=te;te=void 0;try{t()}finally{te=e}}}let Se=0;class ke{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ee{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!te||!ye||te===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==te)t=this.activeLink=new ke(te,this),te.deps?(t.prevDep=te.depsTail,te.depsTail.nextDep=t,te.depsTail=t):te.deps=te.depsTail=t,Te(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){const e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=te.depsTail,t.nextDep=void 0,te.depsTail.nextDep=t,te.depsTail=t,te.deps===t&&(te.deps=e)}return t}trigger(e){this.version++,Se++,this.notify(e)}notify(e){de();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{pe()}}}function Te(e){if(e.dep.sc++,4&e.sub.flags){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Te(e)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ae=new WeakMap,Oe=Symbol(""),Me=Symbol(""),Re=Symbol("");function Le(e,t,n){if(ye&&te){let t=Ae.get(e);t||Ae.set(e,t=new Map);let o=t.get(n);o||(t.set(n,o=new Ee),o.map=t,o.key=n),o.track()}}function Pe(e,t,n,o,l,r){const a=Ae.get(e);if(!a)return void Se++;const s=e=>{e&&e.trigger()};if(de(),"clear"===t)a.forEach(s);else{const l=f(e),r=l&&k(n);if(l&&"length"===n){const e=Number(o);a.forEach((t,n)=>{("length"===n||n===Re||!y(n)&&n>=e)&&s(t)})}else switch((void 0!==n||a.has(void 0))&&s(a.get(n)),r&&s(a.get(Re)),t){case"add":l?r&&s(a.get("length")):(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"delete":l||(s(a.get(Oe)),v(e)&&s(a.get(Me)));break;case"set":v(e)&&s(a.get(Oe))}}pe()}function Ne(e){const t=wt(e);return t===e?t:(Le(t,0,Re),bt(e)?t:t.map(xt))}function Ie(e){return Le(e=wt(e),0,Re),e}function Be(e,t){return gt(e)?mt(e)?Ct(xt(t)):Ct(t):xt(t)}const Fe={__proto__:null,[Symbol.iterator](){return $e(this,Symbol.iterator,e=>Be(this,e))},concat(...e){return Ne(this).concat(...e.map(e=>f(e)?Ne(e):e))},entries(){return $e(this,"entries",e=>(e[1]=Be(this,e[1]),e))},every(e,t){return Ve(this,"every",e,t,void 0,arguments)},filter(e,t){return Ve(this,"filter",e,t,e=>e.map(e=>Be(this,e)),arguments)},find(e,t){return Ve(this,"find",e,t,e=>Be(this,e),arguments)},findIndex(e,t){return Ve(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ve(this,"findLast",e,t,e=>Be(this,e),arguments)},findLastIndex(e,t){return Ve(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ve(this,"forEach",e,t,void 0,arguments)},includes(...e){return ze(this,"includes",e)},indexOf(...e){return ze(this,"indexOf",e)},join(e){return Ne(this).join(e)},lastIndexOf(...e){return ze(this,"lastIndexOf",e)},map(e,t){return Ve(this,"map",e,t,void 0,arguments)},pop(){return He(this,"pop")},push(...e){return He(this,"push",e)},reduce(e,...t){return De(this,"reduce",e,t)},reduceRight(e,...t){return De(this,"reduceRight",e,t)},shift(){return He(this,"shift")},some(e,t){return Ve(this,"some",e,t,void 0,arguments)},splice(...e){return He(this,"splice",e)},toReversed(){return Ne(this).toReversed()},toSorted(e){return Ne(this).toSorted(e)},toSpliced(...e){return Ne(this).toSpliced(...e)},unshift(...e){return He(this,"unshift",e)},values(){return $e(this,"values",e=>Be(this,e))}};function $e(e,t,n){const o=Ie(e),l=o[t]();return o===e||bt(e)||(l._next=l.next,l.next=()=>{const e=l._next();return e.done||(e.value=n(e.value)),e}),l}const je=Array.prototype;function Ve(e,t,n,o,l,r){const a=Ie(e),s=a!==e&&!bt(e),i=a[t];if(i!==je[t]){const t=i.apply(e,r);return s?xt(t):t}let u=n;a!==e&&(s?u=function(t,o){return n.call(this,Be(e,t),o,e)}:n.length>2&&(u=function(t,o){return n.call(this,t,o,e)}));const c=i.call(a,u,o);return s&&l?l(c):c}function De(e,t,n,o){const l=Ie(e);let r=n;return l!==e&&(bt(e)?n.length>3&&(r=function(t,o,l){return n.call(this,t,o,l,e)}):r=function(t,o,l){return n.call(this,t,Be(e,o),l,e)}),l[t](r,...o)}function ze(e,t,n){const o=wt(e);Le(o,0,Re);const l=o[t](...n);return-1!==l&&!1!==l||!yt(n[0])?l:(n[0]=wt(n[0]),o[t](...n))}function He(e,t,n=[]){xe(),de();const o=wt(e)[t].apply(e,n);return pe(),Ce(),o}const We=n("__proto__,__v_isRef,__isVue"),qe=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(y));function Ue(e){y(e)||(e=String(e));const t=wt(this);return Le(t,0,e),t.hasOwnProperty(e)}class Ke{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;const o=this._isReadonly,l=this._isShallow;if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return l;if("__v_raw"===t)return n===(o?l?ct:ut:l?it:st).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const r=f(e);if(!o){let e;if(r&&(e=Fe[t]))return e;if("hasOwnProperty"===t)return Ue}const a=Reflect.get(e,t,_t(e)?e:n);if(y(t)?qe.has(t):We(t))return a;if(o||Le(e,0,t),l)return a;if(_t(a)){const e=r&&k(t)?a:a.value;return o&&w(e)?vt(e):e}return w(a)?o?vt(a):pt(a):a}}class Ge extends Ke{constructor(e=!1){super(!1,e)}set(e,t,n,o){let l=e[t];const r=f(e)&&k(t);if(!this._isShallow){const e=gt(l);if(bt(n)||gt(n)||(l=wt(l),n=wt(n)),!r&&_t(l)&&!_t(n))return e||(l.value=n),!0}const a=r?Number(t)e,et=e=>Reflect.getPrototypeOf(e);function tt(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function nt(e,t){const n={get(n){const o=this.__v_raw,l=wt(o),r=wt(n);e||(N(n,r)&&Le(l,0,n),Le(l,0,r));const{has:a}=et(l),s=t?Qe:e?Ct:xt;return a.call(l,n)?s(o.get(n)):a.call(l,r)?s(o.get(r)):void(o!==l&&o.get(n))},get size(){const t=this.__v_raw;return!e&&Le(wt(t),0,Oe),t.size},has(t){const n=this.__v_raw,o=wt(n),l=wt(t);return e||(N(t,l)&&Le(o,0,t),Le(o,0,l)),t===l?n.has(t):n.has(t)||n.has(l)},forEach(n,o){const l=this,r=l.__v_raw,a=wt(r),s=t?Qe:e?Ct:xt;return!e&&Le(a,0,Oe),r.forEach((e,t)=>n.call(o,s(e),s(t),l))}};return u(n,e?{add:tt("add"),set:tt("set"),delete:tt("delete"),clear:tt("clear")}:{add(e){t||bt(e)||gt(e)||(e=wt(e));const n=wt(this);return et(n).has.call(n,e)||(n.add(e),Pe(n,"add",e,e)),this},set(e,n){t||bt(n)||gt(n)||(n=wt(n));const o=wt(this),{has:l,get:r}=et(o);let a=l.call(o,e);a||(e=wt(e),a=l.call(o,e));const s=r.call(o,e);return o.set(e,n),a?N(n,s)&&Pe(o,"set",e,n):Pe(o,"add",e,n),this},delete(e){const t=wt(this),{has:n,get:o}=et(t);let l=n.call(t,e);l||(e=wt(e),l=n.call(t,e)),o&&o.call(t,e);const r=t.delete(e);return l&&Pe(t,"delete",e,void 0),r},clear(){const e=wt(this),t=0!==e.size,n=e.clear();return t&&Pe(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=function(e,t,n){return function(...o){const l=this.__v_raw,r=wt(l),a=v(r),s="entries"===e||e===Symbol.iterator&&a,i="keys"===e&&a,u=l[e](...o),c=n?Qe:t?Ct:xt;return!t&&Le(r,0,i?Me:Oe),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}(o,e,t)}),n}function ot(e,t){const n=nt(e,t);return(t,o,l)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(p(n,o)&&o in t?n:t,o,l)}const lt={get:ot(!1,!1)},rt={get:ot(!1,!0)},at={get:ot(!0,!1)},st=new WeakMap,it=new WeakMap,ut=new WeakMap,ct=new WeakMap;function dt(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>_(e).slice(8,-1))(e))}function pt(e){return gt(e)?e:ht(e,!1,Xe,lt,st)}function ft(e){return ht(e,!1,Je,rt,it)}function vt(e){return ht(e,!0,Ze,at,ut)}function ht(e,t,n,o,l){if(!w(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const r=dt(e);if(0===r)return e;const a=l.get(e);if(a)return a;const s=new Proxy(e,2===r?o:n);return l.set(e,s),s}function mt(e){return gt(e)?mt(e.__v_raw):!(!e||!e.__v_isReactive)}function gt(e){return!(!e||!e.__v_isReadonly)}function bt(e){return!(!e||!e.__v_isShallow)}function yt(e){return!!e&&!!e.__v_raw}function wt(e){const t=e&&e.__v_raw;return t?wt(t):e}const xt=e=>w(e)?pt(e):e,Ct=e=>w(e)?vt(e):e;function _t(e){return!!e&&!0===e.__v_isRef}function St(e){return Et(e,!1)}function kt(e){return Et(e,!0)}function Et(e,t){return _t(e)?e:new Tt(e,t)}class Tt{constructor(e,t){this.dep=new Ee,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:wt(e),this._value=t?e:xt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,n=this.__v_isShallow||bt(e)||gt(e);e=n?e:wt(e),N(e,t)&&(this._rawValue=e,this._value=n?e:xt(e),this.dep.trigger())}}function At(e){e.dep&&e.dep.trigger()}function Ot(e){return _t(e)?e.value:e}function Mt(e){return g(e)?e():Ot(e)}const Rt={get:(e,t,n)=>"__v_raw"===t?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return _t(l)&&!_t(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function Lt(e){return mt(e)?e:new Proxy(e,Rt)}class Pt{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new Ee,{get:n,set:o}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Nt(e){const t=f(e)?new Array(e.length):{};for(const n in e)t[n]=$t(e,n);return t}class It{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=wt(e);let o=!0,l=e;if(!f(e)||!k(String(t)))do{o=!yt(l)||bt(l)}while(o&&(l=l.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=Ot(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&_t(this._raw[this._key])){const t=this._object[this._key];if(_t(t))return void(t.value=e)}this._object[this._key]=e}get dep(){return function(e,t){const n=Ae.get(e);return n&&n.get(t)}(this._raw,this._key)}}class Bt{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ft(e,t,n){return _t(e)?e:g(e)?new Bt(e):w(e)&&arguments.length>1?$t(e,t,n):St(e)}function $t(e,t,n){return new It(e,t,n)}class jt{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ee(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Se-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&te!==this)return ce(this,!0),!0}get value(){const e=this.dep.track();return me(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}const Vt={},Dt=new WeakMap;let zt;function Ht(e,t,n=o){const{immediate:l,deep:a,once:s,scheduler:i,augmentJob:u,call:d}=n,p=e=>a?e:bt(e)||!1===a||0===a?Wt(e,1):Wt(e);let v,h,m,b,y=!1,w=!1;if(_t(e)?(h=()=>e.value,y=bt(e)):mt(e)?(h=()=>p(e),y=!0):f(e)?(w=!0,y=e.some(e=>mt(e)||bt(e)),h=()=>e.map(e=>_t(e)?e.value:mt(e)?p(e):g(e)?d?d(e,2):e():void 0)):h=g(e)?t?d?()=>d(e,2):e:()=>{if(m){xe();try{m()}finally{Ce()}}const t=zt;zt=v;try{return d?d(e,3,[b]):e(b)}finally{zt=t}}:r,t&&a){const e=h,t=!0===a?1/0:a;h=()=>Wt(e(),t)}const x=oe(),C=()=>{v.stop(),x&&x.active&&c(x.effects,v)};if(s&&t){const e=t;t=(...t)=>{e(...t),C()}}let _=w?new Array(e.length).fill(Vt):Vt;const S=e=>{if(1&v.flags&&(v.dirty||e))if(t){const e=v.run();if(a||y||(w?e.some((e,t)=>N(e,_[t])):N(e,_))){m&&m();const n=zt;zt=v;try{const n=[e,_===Vt?void 0:w&&_[0]===Vt?[]:_,b];_=e,d?d(t,3,n):t(...n)}finally{zt=n}}}else v.run()};return u&&u(S),v=new ae(h),v.scheduler=i?()=>i(S,!1):S,b=e=>function(e,t=!1,n=zt){if(n){let t=Dt.get(n);t||Dt.set(n,t=[]),t.push(e)}}(e,!1,v),m=v.onStop=()=>{const e=Dt.get(v);if(e){if(d)d(e,4);else for(const t of e)t();Dt.delete(v)}},t?l?S(!0):_=v.run():i?i(S.bind(null,!0),!0):v.run(),C.pause=v.pause.bind(v),C.resume=v.resume.bind(v),C.stop=C,C}function Wt(e,t=1/0,n){if(t<=0||!w(e)||e.__v_skip)return e;if(((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,_t(e))Wt(e.value,t,n);else if(f(e))for(let o=0;o{Wt(e,t,n)});else if(S(e)){for(const o in e)Wt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Wt(e[o],t,n)}return e}function qt(e,t,n,o){try{return o?e(...o):e()}catch(l){Kt(l,t,n)}}function Ut(e,t,n,o){if(g(e)){const l=qt(e,t,n,o);return l&&x(l)&&l.catch(e=>{Kt(e,t,n)}),l}if(f(e)){const l=[];for(let r=0;r=an(n)?Gt.push(e):Gt.splice(function(e){let t=Yt+1,n=Gt.length;for(;t>>1,l=Gt[o],r=an(l);ran(e)-an(t));if(Xt.length=0,Zt)return void Zt.push(...e);for(Zt=e,Jt=0;Jtnull==e.id?2&e.flags?-1:1/0:e.id;function sn(e){try{for(Yt=0;Yt{o._d&&jl(-1);const l=dn(t);let r;try{r=e(...n)}finally{dn(l),o._d&&jl(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function fn(e,t){if(null===un)return e;const n=gr(un),l=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&g(t)?t.call(o&&o.proxy):t}}function gn(){return!(!ar()&&!Qo)}const bn=Symbol.for("v-scx");function yn(e,t){return xn(e,null,t)}function wn(e,t,n){return xn(e,t,n)}function xn(e,t,n=o){const{immediate:l,deep:a,flush:s,once:i}=n,c=u({},n),d=t&&l||!t&&"post"!==s;let p;if(pr)if("sync"===s){const e=mn(bn);p=e.__watcherHandles||(e.__watcherHandles=[])}else if(!d){const e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}const f=rr;c.call=(e,t,n)=>Ut(e,f,t,n);let v=!1;"post"===s?c.scheduler=e=>{Cl(e,f&&f.suspense)}:"sync"!==s&&(v=!0,c.scheduler=(e,t)=>{t?e():nn(e)}),c.augmentJob=e=>{t&&(e.flags|=4),v&&(e.flags|=2,f&&(e.id=f.uid,e.i=f))};const h=Ht(e,t,c);return pr&&(p?p.push(h):d&&h()),h}function Cn(e,t,n){const o=this.proxy,l=b(e)?e.includes(".")?_n(o,e):()=>o[e]:e.bind(o,o);let r;g(t)?r=t:(r=t.handler,n=t);const a=ur(this),s=xn(l,r.bind(o),n);return a(),s}function _n(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;ee.__isTeleport,En=e=>e&&(e.disabled||""===e.disabled),Tn=e=>e&&(e.defer||""===e.defer),An=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,On=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,Mn=(e,t)=>{const n=e&&e.to;return b(n)?t?t(n):null:n},Rn={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,r,a,s,i,u){const{mc:c,pc:d,pbc:p,o:{insert:f,querySelector:v,createText:h,createComment:m}}=u,g=En(t.props);let{shapeFlag:b,children:y,dynamicChildren:w}=t;if(null==e){const e=t.el=h(""),u=t.anchor=h("");f(e,n,o),f(u,n,o);const d=(e,t)=>{16&b&&c(y,e,t,l,r,a,s,i)},p=()=>{const e=t.target=Mn(t.props,v),n=In(e,t,h,f);e&&("svg"!==a&&An(e)?a="svg":"mathml"!==a&&On(e)&&(a="mathml"),l&&l.isCE&&(l.ce._teleportTargets||(l.ce._teleportTargets=new Set)).add(e),g||(d(e,n),Nn(t,!1)))};g&&(d(n,u),Nn(t,!0)),Tn(t.props)?(t.el.__isMounted=!1,Cl(()=>{p(),delete t.el.__isMounted},r)):p()}else{if(Tn(t.props)&&!1===e.el.__isMounted)return void Cl(()=>{Rn.process(e,t,n,o,l,r,a,s,i,u)},r);t.el=e.el,t.targetStart=e.targetStart;const c=t.anchor=e.anchor,f=t.target=e.target,h=t.targetAnchor=e.targetAnchor,m=En(e.props),b=m?n:f,y=m?c:h;if("svg"===a||An(f)?a="svg":("mathml"===a||On(f))&&(a="mathml"),w?(p(e.dynamicChildren,w,b,l,r,a,s),El(e,t,!0)):i||d(e,t,b,y,l,r,a,s,!1),g)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ln(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=Mn(t.props,v);e&&Ln(t,e,null,u,0)}else m&&Ln(t,f,h,u,1);Nn(t,g)}},remove(e,t,n,{um:o,o:{remove:l}},r){const{shapeFlag:a,children:s,anchor:i,targetStart:u,targetAnchor:c,target:d,props:p}=e;if(d&&(l(u),l(c)),r&&l(i),16&a){const e=r||!En(p);for(let l=0;l{e.isMounted=!0}),vo(()=>{e.isUnmounting=!0}),e}const jn=[Function,Array],Vn={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jn,onEnter:jn,onAfterEnter:jn,onEnterCancelled:jn,onBeforeLeave:jn,onLeave:jn,onAfterLeave:jn,onLeaveCancelled:jn,onBeforeAppear:jn,onAppear:jn,onAfterAppear:jn,onAppearCancelled:jn},Dn=e=>{const t=e.subTree;return t.component?Dn(t.component):t};function zn(e){let t=e[0];if(e.length>1)for(const n of e)if(n.type!==Pl){t=n;break}return t}const Hn={name:"BaseTransition",props:Vn,setup(e,{slots:t}){const n=ar(),o=$n();return()=>{const l=t.default&&Yn(t.default(),!0);if(!l||!l.length)return;const r=zn(l),a=wt(e),{mode:s}=a;if(o.isLeaving)return Un(r);const i=Kn(r);if(!i)return Un(r);let u=qn(i,a,o,n,e=>u=e);i.type!==Pl&&Gn(i,u);let c=n.subTree&&Kn(n.subTree);if(c&&c.type!==Pl&&!Wl(c,i)&&Dn(n).type!==Pl){let e=qn(c,a,o,n);if(Gn(c,e),"out-in"===s&&i.type!==Pl)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},Un(r);"in-out"===s&&i.type!==Pl?e.delayLeave=(e,t,n)=>{Wn(o,c)[String(c.key)]=c,e[Bn]=()=>{t(),e[Bn]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return r}}};function Wn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function qn(e,t,n,o,l){const{appear:r,mode:a,persisted:s=!1,onBeforeEnter:i,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:p,onLeave:v,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:b,onAfterAppear:y,onAppearCancelled:w}=t,x=String(e.key),C=Wn(n,e),_=(e,t)=>{e&&Ut(e,o,9,t)},S=(e,t)=>{const n=t[1];_(e,t),f(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:a,persisted:s,beforeEnter(t){let o=i;if(!n.isMounted){if(!r)return;o=g||i}t[Bn]&&t[Bn](!0);const l=C[x];l&&Wl(e,l)&&l.el[Bn]&&l.el[Bn](),_(o,[t])},enter(e){let t=u,o=c,l=d;if(!n.isMounted){if(!r)return;t=b||u,o=y||c,l=w||d}let a=!1;const s=e[Fn]=t=>{a||(a=!0,_(t?l:o,[e]),k.delayedLeave&&k.delayedLeave(),e[Fn]=void 0)};t?S(t,[e,s]):s()},leave(t,o){const l=String(e.key);if(t[Fn]&&t[Fn](!0),n.isUnmounting)return o();_(p,[t]);let r=!1;const a=t[Bn]=n=>{r||(r=!0,o(),_(n?m:h,[t]),t[Bn]=void 0,C[l]===e&&delete C[l])};C[l]=e,v?S(v,[t,a]):a()},clone(e){const r=qn(e,t,n,o,l);return l&&l(r),r}};return k}function Un(e){if(no(e))return(e=Yl(e)).children=null,e}function Kn(e){if(!no(e))return kn(e.type)&&e.children?zn(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&g(n.default))return n.default()}}function Gn(e,t){6&e.shapeFlag&&e.component?(e.transition=t,Gn(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yn(e,t=!1,n){let o=[],l=0;for(let r=0;r1)for(let r=0;ru({name:e.name},t,{setup:e}))():e}function Zn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Jn=new WeakMap;function Qn(e,t,n,l,r=!1){if(f(e))return void e.forEach((e,o)=>Qn(e,t&&(f(t)?t[o]:t),n,l,r));if(to(l)&&!r)return void(512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&Qn(e,t,n,l.component.subTree));const s=4&l.shapeFlag?gr(l.component):l.el,i=r?null:s,{i:u,r:d}=e,v=t&&t.r,h=u.refs===o?u.refs={}:u.refs,m=u.setupState,y=wt(m),w=m===o?a:e=>p(y,e);if(null!=v&&v!==d)if(eo(t),b(v))h[v]=null,w(v)&&(m[v]=null);else if(_t(v)){v.value=null;const e=t;e.k&&(h[e.k]=null)}if(g(d))qt(d,u,12,[i,h]);else{const t=b(d),o=_t(d);if(t||o){const l=()=>{if(e.f){const n=t?w(d)?m[d]:h[d]:d.value;if(r)f(n)&&c(n,s);else if(f(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],w(d)&&(m[d]=h[d]);else{const t=[s];d.value=t,e.k&&(h[e.k]=t)}}else t?(h[d]=i,w(d)&&(m[d]=i)):o&&(d.value=i,e.k&&(h[e.k]=i))};if(i){const t=()=>{l(),Jn.delete(e)};t.id=-1,Jn.set(e,t),Cl(t,n)}else eo(e),l()}}}function eo(e){const t=Jn.get(e);t&&(t.flags|=8,Jn.delete(e))}j().requestIdleCallback,j().cancelIdleCallback;const to=e=>!!e.type.__asyncLoader,no=e=>e.type.__isKeepAlive;function oo(e,t){ro(e,"a",t)}function lo(e,t){ro(e,"da",t)}function ro(e,t,n=rr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(so(t,o,n),n){let e=n.parent;for(;e&&e.parent;)no(e.parent.vnode)&&ao(o,t,n,e),e=e.parent}}function ao(e,t,n,o){const l=so(t,e,o,!0);ho(()=>{c(o[t],l)},n)}function so(e,t,n=rr,o=!1){if(n){const l=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{xe();const l=ur(n),r=Ut(t,n,e,o);return l(),Ce(),r});return o?l.unshift(r):l.push(r),r}}const io=e=>(t,n=rr)=>{pr&&"sp"!==e||so(e,(...e)=>t(...e),n)},uo=io("bm"),co=io("m"),po=io("bu"),fo=io("u"),vo=io("bum"),ho=io("um"),mo=io("sp"),go=io("rtg"),bo=io("rtc");function yo(e,t=rr){so("ec",e,t)}const wo="components";function xo(e,t){return So(wo,e,!0,t)||e}const Co=Symbol.for("v-ndc");function _o(e){return b(e)?So(wo,e,!1)||e:e||Co}function So(e,t,n=!0,o=!1){const l=un||rr;if(l){const n=l.type;if(e===wo){const e=br(n,!1);if(e&&(e===t||e===O(t)||e===L(O(t))))return n}const r=ko(l[e]||n[e],t)||ko(l.appContext[e],t);return!r&&o?n:r}}function ko(e,t){return e&&(e[t]||e[O(t)]||e[L(O(t))])}function Eo(e,t,n,o){let l;const r=n,a=f(e);if(a||b(e)){let n=!1,o=!1;a&&mt(e)&&(n=!bt(e),o=gt(e),e=Ie(e)),l=new Array(e.length);for(let a=0,s=e.length;at(e,n,void 0,r));else{const n=Object.keys(e);l=new Array(n.length);for(let o=0,a=n.length;o{const t=o.fn(...e);return t&&(t.key=o.key),t}:o.fn)}return e}function Ao(e,t,n={},o,l){if(un.ce||un.parent&&to(un.parent)&&un.parent.ce){const e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),Fl(),zl(Rl,null,[Gl("slot",n,o&&o())],e?-2:64)}let r=e[t];r&&r._c&&(r._d=!1),Fl();const a=r&&Oo(r(n)),s=n.key||a&&a.key,i=zl(Rl,{key:(s&&!y(s)?s:`_${t}`)+(!a&&o?"_fb":"")},a||(o?o():[]),a&&1===e._?64:-2);return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),r&&r._c&&(r._d=!0),i}function Oo(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!Oo(e.children)))?e:null}const Mo=e=>e?dr(e)?gr(e):Mo(e.parent):null,Ro=u(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mo(e.parent),$root:e=>Mo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>zo(e),$forceUpdate:e=>e.f||(e.f=()=>{nn(e.update)}),$nextTick:e=>e.n||(e.n=tn.bind(e.proxy)),$watch:e=>Cn.bind(e)}),Lo=(e,t)=>e!==o&&!e.__isScriptSetup&&p(e,t),Po={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:l,data:r,props:a,accessCache:s,type:i,appContext:u}=e;if("$"!==t[0]){const e=s[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return r[t];case 4:return n[t];case 3:return a[t]}else{if(Lo(l,t))return s[t]=1,l[t];if(r!==o&&p(r,t))return s[t]=2,r[t];if(p(a,t))return s[t]=3,a[t];if(n!==o&&p(n,t))return s[t]=4,n[t];$o&&(s[t]=0)}}const c=Ro[t];let d,f;return c?("$attrs"===t&&Le(e.attrs,0,""),c(e)):(d=i.__cssModules)&&(d=d[t])?d:n!==o&&p(n,t)?(s[t]=4,n[t]):(f=u.config.globalProperties,p(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:l,setupState:r,ctx:a}=e;return Lo(r,t)?(r[t]=n,!0):l!==o&&p(l,t)?(l[t]=n,!0):!(p(e.props,t)||"$"===t[0]&&t.slice(1)in e||(a[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:a,type:s}},i){let u;return!!(n[i]||e!==o&&"$"!==i[0]&&p(e,i)||Lo(t,i)||p(a,i)||p(l,i)||p(Ro,i)||p(r.config.globalProperties,i)||(u=s.__cssModules)&&u[i])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:p(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function No(){return Bo().slots}function Io(){return Bo().attrs}function Bo(e){const t=ar();return t.setupContext||(t.setupContext=mr(t))}function Fo(e){return f(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let $o=!0;function jo(e){const t=zo(e),n=e.proxy,o=e.ctx;$o=!1,t.beforeCreate&&Vo(t.beforeCreate,e,"bc");const{data:l,computed:a,methods:s,watch:i,provide:u,inject:c,created:d,beforeMount:p,mounted:v,beforeUpdate:h,updated:m,activated:b,deactivated:y,beforeDestroy:x,beforeUnmount:C,destroyed:_,unmounted:S,render:k,renderTracked:E,renderTriggered:T,errorCaptured:A,serverPrefetch:O,expose:M,inheritAttrs:R,components:L,directives:P,filters:N}=t;if(c&&function(e,t){f(e)&&(e=Uo(e));for(const n in e){const o=e[n];let l;l=w(o)?"default"in o?mn(o.from||n,o.default,!0):mn(o.from||n):mn(o),_t(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(c,o),s)for(const r in s){const e=s[r];g(e)&&(o[r]=e.bind(n))}if(l){const t=l.call(n,n);w(t)&&(e.data=pt(t))}if($o=!0,a)for(const f in a){const e=a[f],t=g(e)?e.bind(n,n):g(e.get)?e.get.bind(n,n):r,l=!g(e)&&g(e.set)?e.set.bind(n):r,s=yr({get:t,set:l});Object.defineProperty(o,f,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(i)for(const r in i)Do(i[r],o,n,r);if(u){const e=g(u)?u.call(n):u;Reflect.ownKeys(e).forEach(t=>{hn(t,e[t])})}function I(e,t){f(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(d&&Vo(d,e,"c"),I(uo,p),I(co,v),I(po,h),I(fo,m),I(oo,b),I(lo,y),I(yo,A),I(bo,E),I(go,T),I(vo,C),I(ho,S),I(mo,O),f(M))if(M.length){const t=e.exposed||(e.exposed={});M.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===r&&(e.render=k),null!=R&&(e.inheritAttrs=R),L&&(e.components=L),P&&(e.directives=P),O&&Zn(e)}function Vo(e,t,n){Ut(f(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Do(e,t,n,o){let l=o.includes(".")?_n(n,o):()=>n[o];if(b(e)){const n=t[e];g(n)&&wn(l,n)}else if(g(e))wn(l,e.bind(n));else if(w(e))if(f(e))e.forEach(e=>Do(e,t,n,o));else{const o=g(e.handler)?e.handler.bind(n):t[e.handler];g(o)&&wn(l,o,e)}}function zo(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:l,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,s=r.get(t);let i;return s?i=s:l.length||n||o?(i={},l.length&&l.forEach(e=>Ho(i,e,a,!0)),Ho(i,t,a)):i=t,w(t)&&r.set(t,i),i}function Ho(e,t,n,o=!1){const{mixins:l,extends:r}=t;r&&Ho(e,r,n,!0),l&&l.forEach(t=>Ho(e,t,n,!0));for(const a in t)if(o&&"expose"===a);else{const o=Wo[a]||n&&n[a];e[a]=o?o(e[a],t[a]):t[a]}return e}const Wo={data:qo,props:Yo,emits:Yo,methods:Go,computed:Go,beforeCreate:Ko,created:Ko,beforeMount:Ko,mounted:Ko,beforeUpdate:Ko,updated:Ko,beforeDestroy:Ko,beforeUnmount:Ko,destroyed:Ko,unmounted:Ko,activated:Ko,deactivated:Ko,errorCaptured:Ko,serverPrefetch:Ko,components:Go,directives:Go,watch:function(e,t){if(!e)return t;if(!t)return e;const n=u(Object.create(null),e);for(const o in t)n[o]=Ko(e[o],t[o]);return n},provide:qo,inject:function(e,t){return Go(Uo(e),Uo(t))}};function qo(e,t){return t?e?function(){return u(g(e)?e.call(this,this):e,g(t)?t.call(this,this):t)}:t:e}function Uo(e){if(f(e)){const t={};for(let n=0;n(l.has(e)||(e&&g(e.install)?(l.add(e),e.install(s,...t)):g(e)&&(l.add(e),e(s,...t))),s),mixin:e=>(o.mixins.includes(e)||o.mixins.push(e),s),component:(e,t)=>t?(o.components[e]=t,s):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,s):o.directives[e],mount(l,r,i){if(!a){const r=s._ceVNode||Gl(t,n);return r.appContext=o,!0===i?i="svg":!1===i&&(i=void 0),e(r,l,i),a=!0,s._container=l,l.__vue_app__=s,gr(r.component)}},onUnmount(e){r.push(e)},unmount(){a&&(Ut(r,s._instance,16),e(null,s._container),delete s._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,s),runWithContext(e){const t=Qo;Qo=s;try{return e()}finally{Qo=t}}};return s}}let Qo=null;function el(e,t,...n){if(e.isUnmounted)return;const l=e.vnode.props||o;let r=n;const a=t.startsWith("update:"),s=a&&((e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${O(t)}Modifiers`]||e[`${R(t)}Modifiers`])(l,t.slice(7));let i;s&&(s.trim&&(r=n.map(e=>b(e)?e.trim():e)),s.number&&(r=n.map(F)));let u=l[i=P(t)]||l[i=P(O(t))];!u&&a&&(u=l[i=P(R(t))]),u&&Ut(u,e,6,r);const c=l[i+"Once"];if(c){if(e.emitted){if(e.emitted[i])return}else e.emitted={};e.emitted[i]=!0,Ut(c,e,6,r)}}const tl=new WeakMap;function nl(e,t,n=!1){const o=n?tl:t.emitsCache,l=o.get(e);if(void 0!==l)return l;const r=e.emits;let a={},s=!1;if(!g(e)){const o=e=>{const n=nl(e,t,!0);n&&(s=!0,u(a,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return r||s?(f(r)?r.forEach(e=>a[e]=null):u(a,r),w(e)&&o.set(e,a),a):(w(e)&&o.set(e,null),null)}function ol(e,t){return!(!e||!s(t))&&(t=t.slice(2).replace(/Once$/,""),p(e,t[0].toLowerCase()+t.slice(1))||p(e,R(t))||p(e,t))}function ll(e){const{type:t,vnode:n,proxy:o,withProxy:l,propsOptions:[r],slots:a,attrs:s,emit:u,render:c,renderCache:d,props:p,data:f,setupState:v,ctx:h,inheritAttrs:m}=e,g=dn(e);let b,y;try{if(4&n.shapeFlag){const e=l||o,t=e;b=Jl(c.call(t,e,d,p,v,f,h)),y=s}else{const e=t;b=Jl(e.length>1?e(p,{attrs:s,slots:a,emit:u}):e(p,null)),y=t.props?s:rl(s)}}catch(x){Il.length=0,Kt(x,e,1),b=Gl(Pl)}let w=b;if(y&&!1!==m){const e=Object.keys(y),{shapeFlag:t}=w;e.length&&7&t&&(r&&e.some(i)&&(y=al(y,r)),w=Yl(w,y,!1,!0))}return n.dirs&&(w=Yl(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&Gn(w,n.transition),b=w,dn(g),b}const rl=e=>{let t;for(const n in e)("class"===n||"style"===n||s(n))&&((t||(t={}))[n]=e[n]);return t},al=(e,t)=>{const n={};for(const o in e)i(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function sl(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let l=0;lObject.create(il),cl=e=>Object.getPrototypeOf(e)===il;function dl(e,t,n,l){const[r,a]=e.propsOptions;let s,i=!1;if(t)for(let o in t){if(E(o))continue;const u=t[o];let c;r&&p(r,c=O(o))?a&&a.includes(c)?(s||(s={}))[c]=u:n[c]=u:ol(e.emitsOptions,o)||o in l&&u===l[o]||(l[o]=u,i=!0)}if(a){const t=wt(n),l=s||o;for(let o=0;o{d=!0;const[n,o]=vl(e,t,!0);u(i,n),o&&c.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!d)return w(e)&&r.set(e,l),l;if(f(s))for(let l=0;l"_"===e||"_ctx"===e||"$stable"===e,gl=e=>f(e)?e.map(Jl):[Jl(e)],bl=(e,t,n)=>{if(t._n)return t;const o=pn((...e)=>gl(t(...e)),n);return o._c=!1,o},yl=(e,t,n)=>{const o=e._ctx;for(const l in e){if(ml(l))continue;const n=e[l];if(g(n))t[l]=bl(0,n,o);else if(null!=n){const e=gl(n);t[l]=()=>e}}},wl=(e,t)=>{const n=gl(t);e.slots.default=()=>n},xl=(e,t,n)=>{for(const o in t)!n&&ml(o)||(e[o]=t[o])},Cl=function(e,t){var n;t&&t.pendingBranch?f(e)?t.effects.push(...e):t.effects.push(e):(f(n=e)?Xt.push(...n):Zt&&-1===n.id?Zt.splice(Jt+1,0,n):1&n.flags||(Xt.push(n),n.flags|=1),on())};function _l(e){return function(e){j().__VUE__=!0;const{insert:t,remove:n,patchProp:a,createElement:s,createText:i,createComment:u,setText:c,setElementText:d,parentNode:f,nextSibling:v,setScopeId:h=r,insertStaticContent:m}=e,g=(e,t,n,o=null,l=null,r=null,a=void 0,s=null,i=!!t.dynamicChildren)=>{if(e===t)return;e&&!Wl(e,t)&&(o=J(e),K(e,l,r,!0),e=null),-2===t.patchFlag&&(i=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:d}=t;switch(u){case Ll:b(e,t,n,o);break;case Pl:y(e,t,n,o);break;case Nl:null==e&&w(t,n,o,a);break;case Rl:N(e,t,n,o,l,r,a,s,i);break;default:1&d?S(e,t,n,o,l,r,a,s,i):6&d?F(e,t,n,o,l,r,a,s,i):(64&d||128&d)&&u.process(e,t,n,o,l,r,a,s,i,te)}null!=c&&l?Qn(c,e&&e.ref,r,t||e,!t):null==c&&e&&null!=e.ref&&Qn(e.ref,null,r,e,!0)},b=(e,n,o,l)=>{if(null==e)t(n.el=i(n.children),o,l);else{const t=n.el=e.el;n.children!==e.children&&c(t,n.children)}},y=(e,n,o,l)=>{null==e?t(n.el=u(n.children||""),o,l):n.el=e.el},w=(e,t,n,o)=>{[e.el,e.anchor]=m(e.children,t,n,o,e.el,e.anchor)},C=({el:e,anchor:n},o,l)=>{let r;for(;e&&e!==n;)r=v(e),t(e,o,l),e=r;t(n,o,l)},_=({el:e,anchor:t})=>{let o;for(;e&&e!==t;)o=v(e),n(e),e=o;n(t)},S=(e,t,n,o,l,r,a,s,i)=>{if("svg"===t.type?a="svg":"math"===t.type&&(a="mathml"),null==e)k(t,n,o,l,r,a,s,i);else{const n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),M(e,t,l,r,a,s,i)}finally{n&&n._endPatch()}}},k=(e,n,o,l,r,i,u,c)=>{let p,f;const{props:v,shapeFlag:h,transition:m,dirs:g}=e;if(p=e.el=s(e.type,i,v&&v.is,v),8&h?d(p,e.children):16&h&&A(e.children,p,null,l,r,Sl(e,i),u,c),g&&vn(e,null,l,"created"),T(p,e,e.scopeId,u,l),v){for(const e in v)"value"===e||E(e)||a(p,e,null,v[e],i,l);"value"in v&&a(p,"value",null,v.value,i),(f=v.onVnodeBeforeMount)&&nr(f,l,e)}g&&vn(e,null,l,"beforeMount");const b=function(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}(r,m);b&&m.beforeEnter(p),t(p,n,o),((f=v&&v.onVnodeMounted)||b||g)&&Cl(()=>{f&&nr(f,l,e),b&&m.enter(p),g&&vn(e,null,l,"mounted")},r)},T=(e,t,n,o,l)=>{if(n&&h(e,n),o)for(let r=0;r{for(let u=i;u{const u=t.el=e.el;let{patchFlag:c,dynamicChildren:p,dirs:f}=t;c|=16&e.patchFlag;const v=e.props||o,h=t.props||o;let m;if(n&&kl(n,!1),(m=h.onVnodeBeforeUpdate)&&nr(m,n,t,e),f&&vn(t,e,n,"beforeUpdate"),n&&kl(n,!0),(v.innerHTML&&null==h.innerHTML||v.textContent&&null==h.textContent)&&d(u,""),p?L(e.dynamicChildren,p,u,n,l,Sl(t,r),s):i||H(e,t,u,null,n,l,Sl(t,r),s,!1),c>0){if(16&c)P(u,v,h,n,r);else if(2&c&&v.class!==h.class&&a(u,"class",null,h.class,r),4&c&&a(u,"style",v.style,h.style,r),8&c){const e=t.dynamicProps;for(let t=0;t{m&&nr(m,n,t,e),f&&vn(t,e,n,"updated")},l)},L=(e,t,n,o,l,r,a)=>{for(let s=0;s{if(t!==n){if(t!==o)for(const o in t)E(o)||o in n||a(e,o,t[o],null,r,l);for(const o in n){if(E(o))continue;const s=n[o],i=t[o];s!==i&&"value"!==o&&a(e,o,i,s,r,l)}"value"in n&&a(e,"value",t.value,n.value,r)}},N=(e,n,o,l,r,a,s,u,c)=>{const d=n.el=e?e.el:i(""),p=n.anchor=e?e.anchor:i("");let{patchFlag:f,dynamicChildren:v,slotScopeIds:h}=n;h&&(u=u?u.concat(h):h),null==e?(t(d,o,l),t(p,o,l),A(n.children||[],o,p,r,a,s,u,c)):f>0&&64&f&&v&&e.dynamicChildren&&e.dynamicChildren.length===v.length?(L(e.dynamicChildren,v,o,r,a,s,u),(null!=n.key||r&&n===r.subTree)&&El(e,n,!0)):H(e,n,o,p,r,a,s,u,c)},F=(e,t,n,o,l,r,a,s,i)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?l.ctx.activate(t,n,o,a,i):$(t,n,o,l,r,a,i):V(e,t,i)},$=(e,t,n,l,r,a,s)=>{const i=e.component=function(e,t,n){const l=e.type,r=(t?t.appContext:e.appContext)||or,a={uid:lr++,vnode:e,type:l,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ne(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vl(l,r),emitsOptions:nl(l,r),emit:null,emitted:null,propsDefaults:o,inheritAttrs:l.inheritAttrs,ctx:o,data:o,props:o,attrs:o,slots:o,refs:o,setupState:o,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=t?t.root:a,a.emit=el.bind(null,a),e.ce&&e.ce(a),a}(e,l,r);if(no(e)&&(i.ctx.renderer=te),function(e,t=!1,n=!1){t&&ir(t);const{props:o,children:l}=e.vnode,r=dr(e);(function(e,t,n,o=!1){const l={},r=ul();e.propsDefaults=Object.create(null),dl(e,t,l,r);for(const a in e.propsOptions[0])a in l||(l[a]=void 0);n?e.props=o?l:ft(l):e.type.props?e.props=l:e.props=r,e.attrs=r})(e,o,r,t),((e,t,n)=>{const o=e.slots=ul();if(32&e.vnode.shapeFlag){const e=t._;e?(xl(o,t,n),n&&B(o,"_",e,!0)):yl(t,o)}else t&&wl(e,t)})(e,l,n||t);r&&function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Po);const{setup:o}=n;if(o){xe();const n=e.setupContext=o.length>1?mr(e):null,l=ur(e),r=qt(o,e,0,[e.props,n]),a=x(r);if(Ce(),l(),!a&&!e.sp||to(e)||Zn(e),a){if(r.then(cr,cr),t)return r.then(t=>{fr(e,t)}).catch(t=>{Kt(t,e,0)});e.asyncDep=r}else fr(e,r)}else vr(e)}(e,t);t&&ir(!1)}(i,!1,s),i.asyncDep){if(r&&r.registerDep(i,D,s),!e.el){const o=i.subTree=Gl(Pl);y(null,o,t,n),e.placeholder=o.el}}else D(i,e,t,n,r,a,s)},V=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:l,component:r}=e,{props:a,children:s,patchFlag:i}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&i>=0))return!(!l&&!s||s&&s.$stable)||o!==a&&(o?!a||sl(o,a,u):!!a);if(1024&i)return!0;if(16&i)return o?sl(o,a,u):!!a;if(8&i){const e=t.dynamicProps;for(let t=0;t{const s=()=>{if(e.isMounted){let{next:t,bu:n,u:o,parent:i,vnode:u}=e;{const n=Tl(e);if(n)return t&&(t.el=u.el,z(e,t,a)),void n.asyncDep.then(()=>{e.isUnmounted||s()})}let c,d=t;kl(e,!1),t?(t.el=u.el,z(e,t,a)):t=u,n&&I(n),(c=t.props&&t.props.onVnodeBeforeUpdate)&&nr(c,i,t,u),kl(e,!0);const p=ll(e),v=e.subTree;e.subTree=p,g(v,p,f(v.el),J(v),e,l,r),t.el=p.el,null===d&&function({vnode:e,parent:t},n){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.el=e.el),o!==e)break;(e=t.vnode).el=n,t=t.parent}}(e,p.el),o&&Cl(o,l),(c=t.props&&t.props.onVnodeUpdated)&&Cl(()=>nr(c,i,t,u),l)}else{let a;const{el:s,props:i}=t,{bm:u,m:c,parent:d,root:p,type:f}=e,v=to(t);kl(e,!1),u&&I(u),!v&&(a=i&&i.onVnodeBeforeMount)&&nr(a,d,t),kl(e,!0);{p.ce&&!1!==p.ce._def.shadowRoot&&p.ce._injectChildStyle(f);const a=e.subTree=ll(e);g(null,a,n,o,e,l,r),t.el=a.el}if(c&&Cl(c,l),!v&&(a=i&&i.onVnodeMounted)){const e=t;Cl(()=>nr(a,d,e),l)}(256&t.shapeFlag||d&&to(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&Cl(e.a,l),e.isMounted=!0,t=n=o=null}};e.scope.on();const i=e.effect=new ae(s);e.scope.off();const u=e.update=i.run.bind(i),c=e.job=i.runIfDirty.bind(i);c.i=e,c.id=e.uid,i.scheduler=()=>nn(c),kl(e,!0),u()},z=(e,t,n)=>{t.component=e;const l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:l,attrs:r,vnode:{patchFlag:a}}=e,s=wt(l),[i]=e.propsOptions;let u=!1;if(!(o||a>0)||16&a){let o;dl(e,t,l,r)&&(u=!0);for(const r in s)t&&(p(t,r)||(o=R(r))!==r&&p(t,o))||(i?!n||void 0===n[r]&&void 0===n[o]||(l[r]=pl(i,s,r,void 0,e,!0)):delete l[r]);if(r!==s)for(const e in r)t&&p(t,e)||(delete r[e],u=!0)}else if(8&a){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:l,slots:r}=e;let a=!0,s=o;if(32&l.shapeFlag){const e=t._;e?n&&1===e?a=!1:xl(r,t,n):(a=!t.$stable,yl(t,r)),s=t}else t&&(wl(e,t),s={default:1});if(a)for(const o in r)ml(o)||null!=s[o]||delete r[o]})(e,t.children,n),xe(),ln(e),Ce()},H=(e,t,n,o,l,r,a,s,i=!1)=>{const u=e&&e.children,c=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:v}=t;if(f>0){if(128&f)return void q(u,p,n,o,l,r,a,s,i);if(256&f)return void W(u,p,n,o,l,r,a,s,i)}8&v?(16&c&&Z(u,l,r),p!==u&&d(n,p)):16&c?16&v?q(u,p,n,o,l,r,a,s,i):Z(u,l,r,!0):(8&c&&d(n,""),16&v&&A(p,n,o,l,r,a,s,i))},W=(e,t,n,o,r,a,s,i,u)=>{t=t||l;const c=(e=e||l).length,d=t.length,p=Math.min(c,d);let f;for(f=0;fd?Z(e,r,a,!0,!1,p):A(t,n,o,r,a,s,i,u,p)},q=(e,t,n,o,r,a,s,i,u)=>{let c=0;const d=t.length;let p=e.length-1,f=d-1;for(;c<=p&&c<=f;){const o=e[c],l=t[c]=u?Ql(t[c]):Jl(t[c]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),c++}for(;c<=p&&c<=f;){const o=e[p],l=t[f]=u?Ql(t[f]):Jl(t[f]);if(!Wl(o,l))break;g(o,l,n,null,r,a,s,i,u),p--,f--}if(c>p){if(c<=f){const e=f+1,l=ef)for(;c<=p;)K(e[c],r,a,!0),c++;else{const v=c,h=c,m=new Map;for(c=h;c<=f;c++){const e=t[c]=u?Ql(t[c]):Jl(t[c]);null!=e.key&&m.set(e.key,c)}let b,y=0;const w=f-h+1;let x=!1,C=0;const _=new Array(w);for(c=0;c=w){K(o,r,a,!0);continue}let l;if(null!=o.key)l=m.get(o.key);else for(b=h;b<=f;b++)if(0===_[b-h]&&Wl(o,t[b])){l=b;break}void 0===l?K(o,r,a,!0):(_[l-h]=c+1,l>=C?C=l:x=!0,g(o,t[l],n,null,r,a,s,i,u),y++)}const S=x?function(e){const t=e.slice(),n=[0];let o,l,r,a,s;const i=e.length;for(o=0;o>1,e[n[s]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,a=n[r-1];r-- >0;)n[r]=a,a=t[a];return n}(_):l;for(b=S.length-1,c=w-1;c>=0;c--){const e=h+c,l=t[e],p=t[e+1],f=e+1{const{el:s,type:i,transition:u,children:c,shapeFlag:d}=e;if(6&d)U(e.component.subTree,o,l,r);else if(128&d)e.suspense.move(o,l,r);else if(64&d)i.move(e,o,l,te);else if(i!==Rl)if(i!==Nl)if(2!==r&&1&d&&u)if(0===r)u.beforeEnter(s),t(s,o,l),Cl(()=>u.enter(s),a);else{const{leave:r,delayLeave:a,afterLeave:i}=u,c=()=>{e.ctx.isUnmounted?n(s):t(s,o,l)},d=()=>{s._isLeaving&&s[Bn](!0),r(s,()=>{c(),i&&i()})};a?a(s,c,d):d()}else t(s,o,l);else C(e,o,l);else{t(s,o,l);for(let e=0;e{const{type:r,props:a,ref:s,children:i,dynamicChildren:u,shapeFlag:c,patchFlag:d,dirs:p,cacheIndex:f}=e;if(-2===d&&(l=!1),null!=s&&(xe(),Qn(s,null,n,e,!0),Ce()),null!=f&&(t.renderCache[f]=void 0),256&c)return void t.ctx.deactivate(e);const v=1&c&&p,h=!to(e);let m;if(h&&(m=a&&a.onVnodeBeforeUnmount)&&nr(m,t,e),6&c)X(e.component,n,o);else{if(128&c)return void e.suspense.unmount(n,o);v&&vn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,te,o):u&&!u.hasOnce&&(r!==Rl||d>0&&64&d)?Z(u,t,n,!1,!0):(r===Rl&&384&d||!l&&16&c)&&Z(i,t,n),o&&G(e)}(h&&(m=a&&a.onVnodeUnmounted)||v)&&Cl(()=>{m&&nr(m,t,e),v&&vn(e,null,t,"unmounted")},n)},G=e=>{const{type:t,el:o,anchor:l,transition:r}=e;if(t===Rl)return void Y(o,l);if(t===Nl)return void _(e);const a=()=>{n(o),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:n}=r,l=()=>t(o,a);n?n(e.el,a,l):l()}else a()},Y=(e,t)=>{let o;for(;e!==t;)o=v(e),n(e),e=o;n(t)},X=(e,t,n)=>{const{bum:o,scope:l,job:r,subTree:a,um:s,m:i,a:u}=e;Al(i),Al(u),o&&I(o),l.stop(),r&&(r.flags|=8,K(a,e,t,n)),s&&Cl(s,t),Cl(()=>{e.isUnmounted=!0},t)},Z=(e,t,n,o=!1,l=!1,r=0)=>{for(let a=r;a{if(6&e.shapeFlag)return J(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();const t=v(e.anchor||e.el),n=t&&t[Sn];return n?v(n):t};let Q=!1;const ee=(e,t,n)=>{let o;null==e?t._vnode&&(K(t._vnode,null,null,!0),o=t._vnode.component):g(t._vnode||null,e,t,null,null,null,n),t._vnode=e,Q||(Q=!0,ln(o),rn(),Q=!1)},te={p:g,um:K,m:U,r:G,mt:$,mc:A,pc:H,pbc:L,n:J,o:e};let oe;return{render:ee,hydrate:oe,createApp:Jo(ee)}}(e)}function Sl({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function kl({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function El(e,t,n=!1){const o=e.children,l=t.children;if(f(o)&&f(l))for(let r=0;re.__isSuspense,Rl=Symbol.for("v-fgt"),Ll=Symbol.for("v-txt"),Pl=Symbol.for("v-cmt"),Nl=Symbol.for("v-stc"),Il=[];let Bl=null;function Fl(e=!1){Il.push(Bl=e?null:[])}let $l=1;function jl(e,t=!1){$l+=e,e<0&&Bl&&t&&(Bl.hasOnce=!0)}function Vl(e){return e.dynamicChildren=$l>0?Bl||l:null,Il.pop(),Bl=Il[Il.length-1]||null,$l>0&&Bl&&Bl.push(e),e}function Dl(e,t,n,o,l,r){return Vl(Kl(e,t,n,o,l,r,!0))}function zl(e,t,n,o,l){return Vl(Gl(e,t,n,o,l,!0))}function Hl(e){return!!e&&!0===e.__v_isVNode}function Wl(e,t){return e.type===t.type&&e.key===t.key}const ql=({key:e})=>null!=e?e:null,Ul=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?b(e)||_t(e)||g(e)?{i:un,r:e,k:t,f:!!n}:e:null);function Kl(e,t=null,n=null,o=0,l=null,r=(e===Rl?0:1),a=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ql(t),ref:t&&Ul(t),scopeId:cn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:un};return s?(er(i,n),128&r&&e.normalize(i)):n&&(i.shapeFlag|=b(n)?8:16),$l>0&&!a&&Bl&&(i.patchFlag>0||6&r)&&32!==i.patchFlag&&Bl.push(i),i}const Gl=function(e,t=null,n=null,o=0,l=null,r=!1){if(e&&e!==Co||(e=Pl),Hl(e)){const o=Yl(e,t,!0);return n&&er(o,n),$l>0&&!r&&Bl&&(6&o.shapeFlag?Bl[Bl.indexOf(e)]=o:Bl.push(o)),o.patchFlag=-2,o}var a;if(g(a=e)&&"__vccOpts"in a&&(e=e.__vccOpts),t){t=function(e){return e?yt(e)||cl(e)?u({},e):e:null}(t);let{class:e,style:n}=t;e&&!b(e)&&(t.class=q(e)),w(n)&&(yt(n)&&!f(n)&&(n=u({},n)),t.style=V(n))}const s=b(e)?1:Ml(e)?128:kn(e)?64:w(e)?4:g(e)?2:0;return Kl(e,t,n,o,l,s,r,!0)};function Yl(e,t,n=!1,o=!1){const{props:l,ref:r,patchFlag:a,children:s,transition:i}=e,u=t?tr(l||{},t):l,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ql(u),ref:t&&t.ref?n&&r?f(r)?r.concat(Ul(t)):[r,Ul(t)]:Ul(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Rl?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Yl(e.ssContent),ssFallback:e.ssFallback&&Yl(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&o&&Gn(c,i.clone(c)),c}function Xl(e=" ",t=0){return Gl(Ll,null,e,t)}function Zl(e="",t=!1){return t?(Fl(),zl(Pl,null,e)):Gl(Pl,null,e)}function Jl(e){return null==e||"boolean"==typeof e?Gl(Pl):f(e)?Gl(Rl,null,e.slice()):Hl(e)?Ql(e):Gl(Ll,null,String(e))}function Ql(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Yl(e)}function er(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(f(t))n=16;else if("object"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),er(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||cl(t)?3===o&&un&&(1===un.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=un}}else g(t)?(t={default:t,_ctx:un},n=32):(t=String(t),64&o?(n=16,t=[Xl(t)]):n=8);e.children=t,e.shapeFlag|=n}function tr(...e){const t={};for(let n=0;nrr||un;let sr,ir;{const e=j(),t=(t,n)=>{let o;return(o=e[t])||(o=e[t]=[]),o.push(n),e=>{o.length>1?o.forEach(t=>t(e)):o[0](e)}};sr=t("__VUE_INSTANCE_SETTERS__",e=>rr=e),ir=t("__VUE_SSR_SETTERS__",e=>pr=e)}const ur=e=>{const t=rr;return sr(e),e.scope.on(),()=>{e.scope.off(),sr(t)}},cr=()=>{rr&&rr.scope.off(),sr(null)};function dr(e){return 4&e.vnode.shapeFlag}let pr=!1;function fr(e,t,n){g(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:w(t)&&(e.setupState=Lt(t)),vr(e)}function vr(e,t,n){const o=e.type;e.render||(e.render=o.render||r);{const t=ur(e);xe();try{jo(e)}finally{Ce(),t()}}}const hr={get:(e,t)=>(Le(e,0,""),e[t])};function mr(e){const t=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,hr),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Lt((t=e.exposed,!p(t,"__v_skip")&&Object.isExtensible(t)&&B(t,"__v_skip",!0),t)),{get:(t,n)=>n in t?t[n]:n in Ro?Ro[n](e):void 0,has:(e,t)=>t in e||t in Ro})):e.proxy;var t}function br(e,t=!0){return g(e)?e.displayName||e.name:e.name||t&&e.__name}const yr=(e,t)=>{const n=function(e,t,n=!1){let o,l;return g(e)?o=e:(o=e.get,l=e.set),new jt(o,l,n)}(e,0,pr);return n};function wr(e,t,n){try{jl(-1);const o=arguments.length;return 2===o?w(t)&&!f(t)?Hl(t)?Gl(e,null,[t]):Gl(e,t):Gl(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Hl(n)&&(n=[n]),Gl(e,t,n))}finally{jl(1)}}const xr="3.5.26",Cr=r;let _r;const Sr="undefined"!=typeof window&&window.trustedTypes;if(Sr)try{_r=Sr.createPolicy("vue",{createHTML:e=>e})}catch(tT){}const kr=_r?e=>_r.createHTML(e):e=>e,Er="undefined"!=typeof document?document:null,Tr=Er&&Er.createElement("template"),Ar={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const l="svg"===t?Er.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?Er.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?Er.createElement(e,{is:n}):Er.createElement(e);return"select"===e&&o&&null!=o.multiple&&l.setAttribute("multiple",o.multiple),l},createText:e=>Er.createTextNode(e),createComment:e=>Er.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Er.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,l,r){const a=n?n.previousSibling:t.lastChild;if(l&&(l===r||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),l!==r&&(l=l.nextSibling););else{Tr.innerHTML=kr("svg"===o?`${e}`:"mathml"===o?`${e}`:e);const l=Tr.content;if("svg"===o||"mathml"===o){const e=l.firstChild;for(;e.firstChild;)l.appendChild(e.firstChild);l.removeChild(e)}t.insertBefore(l,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Or="transition",Mr="animation",Rr=Symbol("_vtc"),Lr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Pr=u({},Vn,Lr),Nr=(e=>(e.displayName="Transition",e.props=Pr,e))((e,{slots:t})=>wr(Hn,Fr(e),t)),Ir=(e,t=[])=>{f(e)?e.forEach(e=>e(...t)):e&&e(...t)},Br=e=>!!e&&(f(e)?e.some(e=>e.length>1):e.length>1);function Fr(e){const t={};for(const u in e)u in Lr||(t[u]=e[u]);if(!1===e.css)return t;const{name:n="v",type:o,duration:l,enterFromClass:r=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:i=r,appearActiveClass:c=a,appearToClass:d=s,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(w(e))return[$r(e.enter),$r(e.leave)];{const t=$r(e);return[t,t]}}(l),m=h&&h[0],g=h&&h[1],{onBeforeEnter:b,onEnter:y,onEnterCancelled:x,onLeave:C,onLeaveCancelled:_,onBeforeAppear:S=b,onAppear:k=y,onAppearCancelled:E=x}=t,T=(e,t,n,o)=>{e._enterCancelled=o,Vr(e,t?d:s),Vr(e,t?c:a),n&&n()},A=(e,t)=>{e._isLeaving=!1,Vr(e,p),Vr(e,v),Vr(e,f),t&&t()},O=e=>(t,n)=>{const l=e?k:y,a=()=>T(t,e,n);Ir(l,[t,a]),Dr(()=>{Vr(t,e?i:r),jr(t,e?d:s),Br(l)||Hr(t,o,m,a)})};return u(t,{onBeforeEnter(e){Ir(b,[e]),jr(e,r),jr(e,a)},onBeforeAppear(e){Ir(S,[e]),jr(e,i),jr(e,c)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>A(e,t);jr(e,p),e._enterCancelled?(jr(e,f),Kr(e)):(Kr(e),jr(e,f)),Dr(()=>{e._isLeaving&&(Vr(e,p),jr(e,v),Br(C)||Hr(e,o,g,n))}),Ir(C,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),Ir(x,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),Ir(E,[e])},onLeaveCancelled(e){A(e),Ir(_,[e])}})}function $r(e){const t=(e=>{const t=b(e)?Number(e):NaN;return isNaN(t)?e:t})(e);return t}function jr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Rr]||(e[Rr]=new Set)).add(t)}function Vr(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));const n=e[Rr];n&&(n.delete(t),n.size||(e[Rr]=void 0))}function Dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let zr=0;function Hr(e,t,n,o){const l=e._endId=++zr,r=()=>{l===e._endId&&o()};if(null!=n)return setTimeout(r,n);const{type:a,timeout:s,propCount:i}=Wr(e,t);if(!a)return o();const u=a+"end";let c=0;const d=()=>{e.removeEventListener(u,p),r()},p=t=>{t.target===e&&++c>=i&&d()};setTimeout(()=>{c(n[e]||"").split(", "),l=o(`${Or}Delay`),r=o(`${Or}Duration`),a=qr(l,r),s=o(`${Mr}Delay`),i=o(`${Mr}Duration`),u=qr(s,i);let c=null,d=0,p=0;return t===Or?a>0&&(c=Or,d=a,p=r.length):t===Mr?u>0&&(c=Mr,d=u,p=i.length):(d=Math.max(a,u),c=d>0?a>u?Or:Mr:null,p=c?c===Or?r.length:i.length:0),{type:c,timeout:d,propCount:p,hasTransform:c===Or&&/\b(?:transform|all)(?:,|$)/.test(o(`${Or}Property`).toString())}}function qr(e,t){for(;e.lengthUr(t)+Ur(e[n])))}function Ur(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function Kr(e){return(e?e.ownerDocument:document).body.offsetHeight}const Gr=Symbol("_vod"),Yr=Symbol("_vsh"),Xr={name:"show",beforeMount(e,{value:t},{transition:n}){e[Gr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Zr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Zr(e,!0),o.enter(e)):o.leave(e,()=>{Zr(e,!1)}):Zr(e,t))},beforeUnmount(e,{value:t}){Zr(e,t)}};function Zr(e,t){e.style.display=t?e[Gr]:"none",e[Yr]=!t}const Jr=Symbol(""),Qr=/(?:^|;)\s*display\s*:/,ea=/\s*!important$/;function ta(e,t,n){if(f(n))n.forEach(n=>ta(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=oa[t];if(n)return n;let o=O(t);if("filter"!==o&&o in e)return oa[t]=o;o=L(o);for(let l=0;l{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();Ut(function(e,t){if(f(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=da||(pa.then(()=>da=0),da=Date.now()),n}(o,l);sa(e,n,a,s)}else a&&(function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,a,s),r[t]=void 0)}}const ca=/(?:Once|Passive|Capture)$/;let da=0;const pa=Promise.resolve(),fa=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,va=new WeakMap,ha=new WeakMap,ma=Symbol("_moveCb"),ga=Symbol("_enterCb"),ba=(e=>(delete e.props.mode,e))({name:"TransitionGroup",props:u({},Pr,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ar(),o=$n();let l,r;return fo(()=>{if(!l.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const o=e.cloneNode(),l=e[Rr];l&&l.forEach(e=>{e.split(/\s+/).forEach(e=>e&&o.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&o.classList.add(e)),o.style.display="none";const r=1===t.nodeType?t:t.parentNode;r.appendChild(o);const{hasTransform:a}=Wr(o);return r.removeChild(o),a}(l[0].el,n.vnode.el,t))return void(l=[]);l.forEach(ya),l.forEach(wa);const o=l.filter(xa);Kr(n.vnode.el),o.forEach(e=>{const n=e.el,o=n.style;jr(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const l=n[ma]=e=>{e&&e.target!==n||e&&!e.propertyName.endsWith("transform")||(n.removeEventListener("transitionend",l),n[ma]=null,Vr(n,t))};n.addEventListener("transitionend",l)}),l=[]}),()=>{const a=wt(e),s=Fr(a);let i=a.tag||Rl;if(l=[],r)for(let e=0;e{const t=e.props["onUpdate:modelValue"]||!1;return f(t)?e=>I(t,e):t},_a=Symbol("_assign"),Sa={deep:!0,created(e,t,n){e[_a]=Ca(n),sa(e,"change",()=>{const t=e._modelValue,n=Ta(e),o=e.checked,l=e[_a];if(f(t)){const e=Y(t,n),r=-1!==e;if(o&&!r)l(t.concat(n));else if(!o&&r){const n=[...t];n.splice(e,1),l(n)}}else if(h(t)){const e=new Set(t);o?e.add(n):e.delete(n),l(e)}else l(Aa(e,o))})},mounted:ka,beforeUpdate(e,t,n){e[_a]=Ca(n),ka(e,t,n)}};function ka(e,{value:t,oldValue:n},o){let l;if(e._modelValue=t,f(t))l=Y(t,o.props.value)>-1;else if(h(t))l=t.has(o.props.value);else{if(t===n)return;l=G(t,Aa(e,!0))}e.checked!==l&&(e.checked=l)}const Ea={created(e,{value:t},n){e.checked=G(t,n.props.value),e[_a]=Ca(n),sa(e,"change",()=>{e[_a](Ta(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[_a]=Ca(o),t!==n&&(e.checked=G(t,o.props.value))}};function Ta(e){return"_value"in e?e._value:e.value}function Aa(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Oa=["ctrl","shift","alt","meta"],Ma={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Oa.some(n=>e[`${n}Key`]&&!t.includes(n))},Ra=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(n,...o)=>{for(let e=0;e{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=n=>{if(!("key"in n))return;const o=R(n.key);return t.some(e=>e===o||La[e]===o)?e(n):void 0})},Na=u({patchProp:(e,t,n,o,l,r)=>{const a="svg"===l;"class"===t?function(e,t,n){const o=e[Rr];o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,a):"style"===t?function(e,t,n){const o=e.style,l=b(n);let r=!1;if(n&&!l){if(t)if(b(t))for(const e of t.split(";")){const t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&ta(o,t,"")}else for(const e in t)null==n[e]&&ta(o,e,"");for(const e in n)"display"===e&&(r=!0),ta(o,e,n[e])}else if(l){if(t!==n){const e=o[Jr];e&&(n+=";"+e),o.cssText=n,r=Qr.test(n)}}else t&&e.removeAttribute("style");Gr in e&&(e[Gr]=r?o.display:"",e[Yr]&&(o.display="none"))}(e,n,o):s(t)?i(t)||ua(e,t,0,o,r):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&fa(t)&&g(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t)return!1;if("sandbox"===t&&"IFRAME"===e.tagName)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!fa(t)||!b(n))&&t in e}(e,t,o,a))?(aa(e,t,o),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ra(e,t,o,a,0,"value"!==t)):!e._isVueCE||!/[A-Z]/.test(t)&&b(o)?("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),ra(e,t,o,a)):aa(e,O(t),o,0,t)}},Ar);let Ia;function Ba(){return Ia||(Ia=_l(Na))}const Fa=(...e)=>{Ba().render(...e)},$a=(...e)=>{const t=Ba().createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){return b(e)?document.querySelector(e):e}(e);if(!o)return;const l=t._component;g(l)||l.render||l.template||(l.template=o.innerHTML),1===o.nodeType&&(o.textContent="");const r=n(o,!1,function(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t},ja=Symbol(),Va="el",Da=(e,t,n,o,l)=>{let r=`${e}-${t}`;return n&&(r+=`-${n}`),o&&(r+=`__${o}`),l&&(r+=`--${l}`),r},za=Symbol("namespaceContextKey"),Ha=e=>{const t=e||(ar()?mn(za,St(Va)):St(Va));return yr(()=>Ot(t)||Va)},Wa=(e,t)=>{const n=Ha(t);return{namespace:n,b:(t="")=>Da(n.value,e,t,"",""),e:t=>t?Da(n.value,e,"",t,""):"",m:t=>t?Da(n.value,e,"","",t):"",be:(t,o)=>t&&o?Da(n.value,e,t,o,""):"",em:(t,o)=>t&&o?Da(n.value,e,"",t,o):"",bm:(t,o)=>t&&o?Da(n.value,e,t,"",o):"",bem:(t,o,l)=>t&&o&&l?Da(n.value,e,t,o,l):"",is:(e,...t)=>{const n=!(t.length>=1)||t[0];return e&&n?`is-${e}`:""},cssVar:e=>{const t={};for(const o in e)e[o]&&(t[`--${n.value}-${o}`]=e[o]);return t},cssVarName:e=>`--${n.value}-${e}`,cssVarBlock:t=>{const o={};for(const l in t)t[l]&&(o[`--${n.value}-${e}-${l}`]=t[l]);return o},cssVarBlockName:t=>`--${n.value}-${e}-${t}`}};var qa="object"==typeof global&&global&&global.Object===Object&&global,Ua="object"==typeof self&&self&&self.Object===Object&&self,Ka=qa||Ua||Function("return this")(),Ga=Ka.Symbol,Ya=Object.prototype,Xa=Ya.hasOwnProperty,Za=Ya.toString,Ja=Ga?Ga.toStringTag:void 0,Qa=Object.prototype.toString,es=Ga?Ga.toStringTag:void 0;function ts(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":es&&es in Object(e)?function(e){var t=Xa.call(e,Ja),n=e[Ja];try{e[Ja]=void 0;var o=!0}catch(tT){}var l=Za.call(e);return o&&(t?e[Ja]=n:delete e[Ja]),l}(e):function(e){return Qa.call(e)}(e)}function ns(e){return null!=e&&"object"==typeof e}function os(e){return"symbol"==typeof e||ns(e)&&"[object Symbol]"==ts(e)}function ls(e,t){for(var n=-1,o=null==e?0:e.length,l=Array(o);++n0){if(++$s>=800)return arguments[0]}else $s=0;return Fs.apply(void 0,arguments)}),Ws=/^(?:0|[1-9]\d*)$/;function qs(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Ws.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function ei(e){return null!=e&&Qs(e.length)&&!ys(e)}var ti=Object.prototype;function ni(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ti)}function oi(e){return ns(e)&&"[object Arguments]"==ts(e)}var li=Object.prototype,ri=li.hasOwnProperty,ai=li.propertyIsEnumerable,si=oi(function(){return arguments}())?oi:function(e){return ns(e)&&ri.call(e,"callee")&&!ai.call(e,"callee")},ii="object"==typeof e&&e&&!e.nodeType&&e,ui=ii&&"object"==typeof t&&t&&!t.nodeType&&t,ci=ui&&ui.exports===ii?Ka.Buffer:void 0,di=(ci?ci.isBuffer:void 0)||function(){return!1},pi={};function fi(e){return function(t){return e(t)}}pi["[object Float32Array]"]=pi["[object Float64Array]"]=pi["[object Int8Array]"]=pi["[object Int16Array]"]=pi["[object Int32Array]"]=pi["[object Uint8Array]"]=pi["[object Uint8ClampedArray]"]=pi["[object Uint16Array]"]=pi["[object Uint32Array]"]=!0,pi["[object Arguments]"]=pi["[object Array]"]=pi["[object ArrayBuffer]"]=pi["[object Boolean]"]=pi["[object DataView]"]=pi["[object Date]"]=pi["[object Error]"]=pi["[object Function]"]=pi["[object Map]"]=pi["[object Number]"]=pi["[object Object]"]=pi["[object RegExp]"]=pi["[object Set]"]=pi["[object String]"]=pi["[object WeakMap]"]=!1;var vi="object"==typeof e&&e&&!e.nodeType&&e,hi=vi&&"object"==typeof t&&t&&!t.nodeType&&t,mi=hi&&hi.exports===vi&&qa.process,gi=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||mi&&mi.binding&&mi.binding("util")}catch(tT){}}(),bi=gi&&gi.isTypedArray,yi=bi?fi(bi):function(e){return ns(e)&&Qs(e.length)&&!!pi[ts(e)]},wi=Object.prototype.hasOwnProperty;function xi(e,t){var n=rs(e),o=!n&&si(e),l=!n&&!o&&di(e),r=!n&&!o&&!l&&yi(e),a=n||o||l||r,s=a?function(e,t){for(var n=-1,o=Array(e);++n-1},$i.prototype.set=function(e,t){var n=this.__data__,o=Bi(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this};var ji=Ls(Ka,"Map");function Vi(e,t){var n,o,l=e.__data__;return("string"==(o=typeof(n=t))||"number"==o||"symbol"==o||"boolean"==o?"__proto__"!==n:null===n)?l["string"==typeof t?"string":"hash"]:l.map}function Di(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var u=r.get(e),c=r.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&n?new oc:void 0;for(r.set(e,t),r.set(t,e);++d=t||n<0||d&&e-u>=r}function h(){var e=Tc();if(v(e))return m(e);s=setTimeout(h,function(e){var n=t-(e-i);return d?Oc(n,r-(e-u)):n}(e))}function m(e){return s=void 0,p&&o?f(e):(o=l=void 0,a)}function g(){var e=Tc(),n=v(e);if(o=arguments,l=this,i=e,n){if(void 0===s)return function(e){return u=e,s=setTimeout(h,t),c?f(e):a}(i);if(d)return clearTimeout(s),s=setTimeout(h,t),f(i)}return void 0===s&&(s=setTimeout(h,t)),a}return t=gs(t)||0,ps(n)&&(c=!!n.leading,r=(d="maxWait"in n)?Ac(gs(n.maxWait)||0,t):r,p="trailing"in n?!!n.trailing:p),g.cancel=function(){void 0!==s&&clearTimeout(s),u=0,o=i=l=s=void 0},g.flush=function(){return void 0===s?a:m(Tc())},g}function Rc(e,t,n){(void 0!==n&&!Ks(e[t],n)||void 0===n&&!(t in e))&&Us(e,t,n)}function Lc(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function Pc(e,t,n,o,l,r,a){var s=Lc(e,n),i=Lc(t,n),u=a.get(i);if(u)Rc(e,n,u);else{var c,d=r?r(s,i,n+"",e,t,a):void 0,p=void 0===d;if(p){var f=rs(i),v=!f&&di(i),h=!f&&!v&&yi(i);d=i,f||v||h?rs(s)?d=s:ns(c=s)&&ei(c)?d=Bs(s):v?(p=!1,d=hu(i,!0)):h?(p=!1,d=Wu(i,!0)):d=[]:iu(i)||si(i)?(d=s,si(s)?d=function(e){return Xs(e,Ai(e))}(s):ps(s)&&!ys(s)||(d=Uu(i))):p=!1}p&&(a.set(i,d),l(d,i,o,r,a),a.delete(i)),Rc(e,n,d)}}function Nc(e,t,n,o,l){e!==t&&kc(t,function(r,a){if(l||(l=new cu),ps(r))Pc(e,t,a,n,Nc,o,l);else{var s=o?o(Lc(e,a),r,a+"",e,t,l):void 0;void 0===s&&(s=r),Rc(e,a,s)}},Ai)}function Ic(e,t){var n=-1,o=ei(e)?Array(e.length):[];return Ec(e,function(e,l,r){o[++n]=t(e,l,r)}),o}function Bc(e,t){return Qi(function(e,t){return(rs(e)?ls:Ic)(e,_c(t))}(e,t))}function Fc(e){for(var t=-1,n=null==e?0:e.length,o={};++tl?0:l+t),(n=n>l?l:n)<0&&(n+=l),l=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(l);++o1?t[o-1]:void 0,r=o>2?t[2]:void 0;for(l=zc.length>3&&"function"==typeof l?(o--,l):void 0,r&&function(e,t,n){if(!ps(n))return!1;var o=typeof t;return!!("number"==o?ei(n)&&qs(t,n.length):"string"==o&&t in n)&&Ks(n[t],e)}(t[0],t[1],r)&&(l=o<3?void 0:l,o=1),e=Object(e);++n1),t}),Xs(e,_u(e),n),o&&(n=tc(n,7,qc));for(var l=t.length;l--;)Wc(n,t[l]);return n});function Kc(e,t,n,o){if(!ps(e))return e;for(var l=-1,r=(t=Ui(t,e)).length,a=r-1,s=e;null!=s&&++lvoid 0===e,Zc=e=>"boolean"==typeof e,Jc=e=>"number"==typeof e,Qc=e=>"undefined"!=typeof Element&&e instanceof Element,ed=e=>Vc(e);function td(e,t){const n=kt();return yn(()=>{n.value=e()},{...t,flush:"sync"}),vt(n)}function nd(e){return!!oe()&&(le(e),!0)}function od(e){return"function"==typeof e?e():Ot(e)}const ld="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const rd=Object.prototype.toString,ad=()=>{},sd=id();function id(){var e,t;return ld&&(null==(e=null==window?void 0:window.navigator)?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||(null==(t=null==window?void 0:window.navigator)?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(null==window?void 0:window.navigator.userAgent))}function ud(e,t=200,n={}){return function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(function(e,t={}){let n,o,l=ad;const r=e=>{clearTimeout(e),l(),l=ad};return a=>{const s=od(e),i=od(t.maxWait);return n&&r(n),s<=0||void 0!==i&&i<=0?(o&&(r(o),o=null),Promise.resolve(a())):new Promise((e,u)=>{l=t.rejectOnCancel?u:e,i&&!o&&(o=setTimeout(()=>{n&&r(n),o=null,e(a())},i)),n=setTimeout(()=>{o&&r(o),o=null,e(a())},s)})}}(t,n),e)}function cd(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function dd(e,t,n={}){const{immediate:o=!0}=n,l=St(!1);let r=null;function a(){r&&(clearTimeout(r),r=null)}function s(){l.value=!1,a()}function i(...n){a(),l.value=!0,r=setTimeout(()=>{l.value=!1,r=null,e(...n)},od(t))}return o&&(l.value=!0,ld&&i()),nd(s),{isPending:vt(l),start:i,stop:s}}function pd(e){var t;const n=od(e);return null!=(t=null==n?void 0:n.$el)?t:n}const fd=ld?window:void 0,vd=ld?window.document:void 0;function hd(...e){let t,n,o,l;if("string"==typeof e[0]||Array.isArray(e[0])?([n,o,l]=e,t=fd):[t,n,o,l]=e,!t)return ad;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const r=[],a=()=>{r.forEach(e=>e()),r.length=0},s=wn(()=>[pd(t),od(l)],([e,t])=>{if(a(),!e)return;const l=(s=t,"[object Object]"===rd.call(s)?{...t}:t);var s;r.push(...n.flatMap(t=>o.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,l))))},{immediate:!0,flush:"post"}),i=()=>{s(),a()};return nd(i),i}let md=!1;function gd(e){const t=function(){const e=St(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}();return yr(()=>(t.value,Boolean(e())))}function bd(e,t,n={}){const{window:o=fd,...l}=n;let r;const a=gd(()=>o&&"ResizeObserver"in o),s=()=>{r&&(r.disconnect(),r=void 0)},i=wn(yr(()=>Array.isArray(e)?e.map(e=>pd(e)):[pd(e)]),e=>{if(s(),a.value&&o){r=new ResizeObserver(t);for(const t of e)t&&r.observe(t,l)}},{immediate:!0,flush:"post"}),u=()=>{s(),i()};return nd(u),{isSupported:a,stop:u}}function yd(e,t={width:0,height:0},n={}){const{window:o=fd,box:l="content-box"}=n,r=yr(()=>{var t,n;return null==(n=null==(t=pd(e))?void 0:t.namespaceURI)?void 0:n.includes("svg")}),a=St(t.width),s=St(t.height),{stop:i}=bd(e,([t])=>{const n="border-box"===l?t.borderBoxSize:"content-box"===l?t.contentBoxSize:t.devicePixelContentBoxSize;if(o&&r.value){const t=pd(e);if(t){const e=t.getBoundingClientRect();a.value=e.width,s.value=e.height}}else if(n){const e=Array.isArray(n)?n:[n];a.value=e.reduce((e,{inlineSize:t})=>e+t,0),s.value=e.reduce((e,{blockSize:t})=>e+t,0)}else a.value=t.contentRect.width,s.value=t.contentRect.height},n);cd(()=>{const n=pd(e);n&&(a.value="offsetWidth"in n?n.offsetWidth:t.width,s.value="offsetHeight"in n?n.offsetHeight:t.height)});const u=wn(()=>pd(e),e=>{a.value=e?t.width:0,s.value=e?t.height:0});return{width:a,height:s,stop:function(){i(),u()}}}class wd extends Error{constructor(e){super(e),this.name="ElementPlusError"}}function xd(e,t){throw new wd(`[${e}] ${t}`)}const Cd={current:0},_d=St(0),Sd=Symbol("elZIndexContextKey"),kd=Symbol("zIndexContextKey"),Ed=e=>{const t=ar()?mn(Sd,Cd):Cd,n=e||(ar()?mn(kd,void 0):void 0),o=yr(()=>{const e=Ot(n);return Jc(e)?e:2e3}),l=yr(()=>o.value+_d.value);return!ld&&mn(Sd),{initialZIndex:o,currentZIndex:l,nextZIndex:()=>(t.current++,_d.value=t.current,l.value)}};var Td={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value",alphaDescription:"alpha {alpha}, current color is {color}",hueLabel:"pick hue value",hueDescription:"hue {hue}, current color is {color}",svLabel:"pick saturation and brightness value",svDescription:"saturation {saturation}, brightness {brightness}, current color is {color}",predefineDescription:"select {value} as the color"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum",selectAllLabel:"Select all rows",selectRowLabel:"Select this row",expandRowLabel:"Expand this row",collapseRowLabel:"Collapse this row",sortLabel:"Sort by {column}",filterLabel:"Filter by {column}"},tag:{close:"Close this tag"},tour:{next:"Next",previous:"Previous",finish:"Finish",close:"Close this dialog"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const Ad=e=>(t,n)=>Od(t,n,Ot(e)),Od=(e,t,n)=>Yi(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>{var o;return`${null!=(o=null==t?void 0:t[n])?o:`{${n}}`}`}),Md=Symbol("localeContextKey"),Rd=e=>{const t=e||mn(Md,St());return(e=>({lang:yr(()=>Ot(e).name),locale:_t(e)?e:St(e),t:Ad(e)}))(yr(()=>t.value||Td))},Ld="__epPropKey",Pd=(e,t)=>{if(!w(e)||w(n=e)&&n[Ld])return e;var n;const{values:o,required:l,default:r,type:a,validator:s}=e,i=o||s?n=>{let l=!1,a=[];if(o&&(a=Array.from(o),p(e,"default")&&a.push(r),l||(l=a.includes(n))),s&&(l||(l=s(n))),!l&&a.length>0){const e=[...new Set(a)].map(e=>JSON.stringify(e)).join(", ");Cr(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${e}], got value ${JSON.stringify(n)}.`)}return l}:void 0,u={type:a,required:!!l,validator:i,[Ld]:!0};return p(e,"default")&&(u.default=r),u},Nd=e=>Fc(Object.entries(e).map(([e,t])=>[e,Pd(t,e)])),Id=["","default","small","large"],Bd=Pd({type:String,values:Id,required:!1}),Fd=Symbol("size"),$d=Symbol("emptyValuesContextKey"),jd=(Nd({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>(e=g(e)?e():e,f(e)?e.every(e=>!e):!e)}}),e=>Object.keys(e)),Vd=(e,t,n)=>({get value(){return Yi(e,t,n)},set value(n){!function(e,t,n){null==e||Kc(e,t,n)}(e,t,n)}}),Dd=St();function zd(e,t=void 0){const n=ar()?mn(ja,Dd):Dd;return e?yr(()=>{var o,l;return null!=(l=null==(o=n.value)?void 0:o[e])?l:t}):n}function Hd(e,t){const n=zd(),o=Wa(e,yr(()=>{var e;return(null==(e=n.value)?void 0:e.namespace)||Va})),l=Rd(yr(()=>{var e;return null==(e=n.value)?void 0:e.locale})),r=Ed(yr(()=>{var e;return(null==(e=n.value)?void 0:e.zIndex)||2e3})),a=yr(()=>{var e;return Ot(t)||(null==(e=n.value)?void 0:e.size)||""});return Wd(yr(()=>Ot(n)||{})),{ns:o,locale:l,zIndex:r,size:a}}const Wd=(e,t,n=!1)=>{const o=!!ar(),l=o?zd():void 0,r=o?hn:void 0;if(!r)return;const a=yr(()=>{const t=Ot(e);return(null==l?void 0:l.value)?qd(l.value,t):t});return r(ja,a),r(Md,yr(()=>a.value.locale)),r(za,yr(()=>a.value.namespace)),r(kd,yr(()=>a.value.zIndex)),r(Fd,{size:yr(()=>a.value.size||"")}),r($d,yr(()=>({emptyValues:a.value.emptyValues,valueOnClear:a.value.valueOnClear}))),!n&&Dd.value||(Dd.value=a.value),a},qd=(e,t)=>{const n=[...new Set([...jd(e),...jd(t)])],o={};for(const l of n)o[l]=void 0!==t[l]?t[l]:e[l];return o},Ud=Nd({to:{type:[String,Object],required:!0},disabled:Boolean});var Kd=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const Gd=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(null!=t?t:{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Yd=e=>(e.install=r,e),Xd=Gd(Kd(Xn({__name:"teleport",props:Ud,setup:e=>(e,t)=>e.disabled?Ao(e.$slots,"default",{key:0}):(Fl(),zl(Pn,{key:1,to:e.to},[Ao(e.$slots,"default")],8,["to"]))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/teleport/src/teleport.vue"]])),Zd="update:modelValue",Jd="change",Qd="input",ep=e=>ld?window.requestAnimationFrame(e):setTimeout(e,16),tp=(e="")=>e.split(" ").filter(e=>!!e.trim()),np=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},op=(e,t)=>{e&&t.trim()&&e.classList.add(...tp(t))},lp=(e,t)=>{e&&t.trim()&&e.classList.remove(...tp(t))},rp=(e,t)=>{var n;if(!ld||!e||!t)return"";let o=O(t);"float"===o&&(o="cssFloat");try{const t=e.style[o];if(t)return t;const l=null==(n=document.defaultView)?void 0:n.getComputedStyle(e,"");return l?l[o]:""}catch(tT){return e.style[o]}};function ap(e,t="px"){return e||0===e?Jc(e)||b(n=e)&&!Number.isNaN(Number(n))?`${e}${t}`:b(e)?e:void 0:"";var n}let sp;const ip=Gd(Kd(Xn({name:"ElIcon",inheritAttrs:!1,__name:"icon",props:Nd({size:{type:[Number,String]},color:{type:String}}),setup(e){const t=e,n=Wa("icon"),o=yr(()=>{const{size:e,color:n}=t,o=ap(e);return o||n?{fontSize:o,"--color":n}:{}});return(e,t)=>(Fl(),Dl("i",tr({class:Ot(n).b(),style:o.value},e.$attrs),[Ao(e.$slots,"default")],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]));var up=Xn({name:"ArrowDown",__name:"arrow-down",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}),cp=Xn({name:"ArrowLeft",__name:"arrow-left",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0"})]))}),dp=Xn({name:"ArrowRight",__name:"arrow-right",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}),pp=Xn({name:"ArrowUp",__name:"arrow-up",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}),fp=Xn({name:"Bottom",__name:"bottom",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}),vp=Xn({name:"CircleCheck",__name:"circle-check",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}),hp=Xn({name:"CircleCloseFilled",__name:"circle-close-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}),mp=Xn({name:"CircleClose",__name:"circle-close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}),gp=Xn({name:"Clock",__name:"clock",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),Kl("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),Kl("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}),bp=Xn({name:"Close",__name:"close",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}),yp=Xn({name:"Connection",__name:"connection",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192z"}),Kl("path",{fill:"currentColor",d:"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.06 192.06 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192z"})]))}),wp=Xn({name:"DataAnalysis",__name:"data-analysis",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32zM832 192H192v512h640zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32"})]))}),xp=Xn({name:"Delete",__name:"delete",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}),Cp=Xn({name:"Download",__name:"download",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}),_p=Xn({name:"Hide",__name:"hide",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),Kl("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}),Sp=Xn({name:"InfoFilled",__name:"info-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}),kp=Xn({name:"Key",__name:"key",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064M512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384"})]))}),Ep=Xn({name:"Loading",__name:"loading",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}),Tp=Xn({name:"Monitor",__name:"monitor",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M544 768v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768H192A128 128 0 0 1 64 640V256a128 128 0 0 1 128-128h640a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128zM192 192a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64z"})]))}),Ap=Xn({name:"Moon",__name:"moon",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 391 391 0 0 0-17.408 16.384m181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696"})]))}),Op=Xn({name:"More",__name:"more",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}),Mp=Xn({name:"Plus",__name:"plus",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}),Rp=Xn({name:"Promotion",__name:"promotion",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472zm256 512V657.024L512 768z"})]))}),Lp=Xn({name:"QuestionFilled",__name:"question-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"})]))}),Pp=Xn({name:"Refresh",__name:"refresh",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}),Np=Xn({name:"Search",__name:"search",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}),Ip=Xn({name:"SuccessFilled",__name:"success-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}),Bp=Xn({name:"Sunny",__name:"sunny",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32M195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248M64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32m768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32M195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0m543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0"})]))}),Fp=Xn({name:"Top",__name:"top",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}),$p=Xn({name:"Upload",__name:"upload",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}),jp=Xn({name:"User",__name:"user",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0"})]))}),Vp=Xn({name:"View",__name:"view",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))});const Dp=[String,Object,Function],zp={Close:bp},Hp={Close:bp},Wp={primary:Sp,success:Ip,warning:Xn({name:"WarningFilled",__name:"warning-filled",setup:e=>(e,t)=>(Fl(),Dl("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[Kl("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}),error:hp,info:Sp},qp={validating:Ep,success:vp,error:mp},Up=()=>ld&&/firefox/i.test(window.navigator.userAgent);let Kp;const Gp={height:"0",visibility:"hidden",overflow:Up()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},Yp=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"],Xp=e=>{const t=Number.parseFloat(e);return Number.isNaN(t)?e:t};function Zp(e,t=1,n){var o,l;Kp||(Kp=document.createElement("textarea"),(null!=(o=e.parentNode)?o:document.body).appendChild(Kp));const{paddingSize:r,borderSize:a,boxSizing:s,contextStyle:i}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),l=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Yp.map(e=>[e,t.getPropertyValue(e)]),paddingSize:o,borderSize:l,boxSizing:n}}(e);i.forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t)),Object.entries(Gp).forEach(([e,t])=>null==Kp?void 0:Kp.style.setProperty(e,t,"important")),Kp.value=e.value||e.placeholder||"";let u=Kp.scrollHeight;const c={};"border-box"===s?u+=a:"content-box"===s&&(u-=r),Kp.value="";const d=Kp.scrollHeight-r;if(Jc(t)){let e=d*t;"border-box"===s&&(e=e+r+a),u=Math.max(e,u),c.minHeight=`${e}px`}if(Jc(n)){let e=d*n;"border-box"===s&&(e=e+r+a),u=Math.min(e,u)}return c.height=`${u}px`,null==(l=Kp.parentNode)||l.removeChild(Kp),Kp=void 0,c}const Jp=Nd({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Qp=e=>Yc(Jp,e),ef=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Object],default:""},modelModifiers:{type:Object,default:()=>({})},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:Dp,default:mp},showPassword:Boolean,showWordLimit:Boolean,wordLimitPosition:{type:String,values:["inside","outside"],default:"inside"},suffixIcon:{type:Dp},prefixIcon:{type:Dp},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Object,Array,String],default:()=>({})},autofocus:Boolean,rows:{type:Number,default:2},...Qp(["ariaLabel"]),inputmode:{type:String,default:void 0},name:String}),tf={[Zd]:e=>b(e),input:e=>b(e),change:(e,t)=>b(e)&&(t instanceof Event||void 0===t),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},nf=["class","style"],of=/^on[A-Z]/,lf={prefix:Math.floor(1e4*Math.random()),current:0},rf=Symbol("elIdInjection"),af=()=>ar()?mn(rf,lf):lf,sf=e=>{const t=af(),n=Ha();return td(()=>Ot(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},uf=Symbol("formContextKey"),cf=Symbol("formItemContextKey"),df=()=>({form:mn(uf,void 0),formItem:mn(cf,void 0)}),pf=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=St(!1)),o||(o=St(!1));const l=ar(),r=St();let a;const s=yr(()=>{var n;return!!(!e.label&&!e.ariaLabel&&t&&t.inputIds&&(null==(n=t.inputIds)?void 0:n.length)<=1)});return co(()=>{a=wn([Ft(e,"id"),n],([e,n])=>{const a=null!=e?e:n?void 0:sf().value;a!==r.value&&((null==t?void 0:t.removeInputId)&&!(()=>{let e=null==l?void 0:l.parent;for(;e;){if("ElFormItem"===e.type.name)return!1;if("ElLabelWrap"===e.type.name)return!0;e=e.parent}return!1})()&&(r.value&&t.removeInputId(r.value),(null==o?void 0:o.value)||n||!a||t.addInputId(a)),r.value=a)},{immediate:!0})}),ho(()=>{a&&a(),(null==t?void 0:t.removeInputId)&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:s,inputId:r}},ff=e=>{const t=ar();return yr(()=>{var n,o;return null==(o=null==(n=null==t?void 0:t.proxy)?void 0:n.$props)?void 0:o[e]})},vf=(e,t={})=>{const n=St(void 0),o=t.prop?n:ff("size"),l=t.global?n:(()=>{const e=mn(Fd,{});return yr(()=>Ot(e.size)||"")})(),r=t.form?{size:void 0}:mn(uf,void 0),a=t.formItem?{size:void 0}:mn(cf,void 0);return yr(()=>o.value||Ot(e)||(null==a?void 0:a.size)||(null==r?void 0:r.size)||l.value||"")},hf=e=>{const t=ff("disabled"),n=mn(uf,void 0);return yr(()=>{var o,l,r;return null!=(r=null!=(l=null!=(o=t.value)?o:Ot(e))?l:null==n?void 0:n.disabled)&&r})},mf=e=>"undefined"!=typeof Element&&e instanceof Element,gf=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},bf=function(e,t,...n){let o;o=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const l=document.createEvent(o);return l.initEvent(t,...n),e.dispatchEvent(l),e},yf=(e,t)=>{if(!e||!e.focus)return;let n=!1;!mf(e)||gf(e)||e.getAttribute("tabindex")||(e.setAttribute("tabindex","-1"),n=!0),e.focus(t),mf(e)&&n&&e.removeAttribute("tabindex")},wf=["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode"],xf=["id","name","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role"],Cf=Gd(Kd(Xn({name:"ElInput",inheritAttrs:!1,__name:"input",props:ef,emits:tf,setup(e,{expose:t,emit:n}){const o=e,l=n,a=Io(),s=((e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=yr(()=>((null==n?void 0:n.value)||[]).concat(nf)),l=ar();return yr(l?()=>{var e;return Fc(Object.entries(null==(e=l.proxy)?void 0:e.$attrs).filter(([e])=>!(o.value.includes(e)||t&&of.test(e))))}:()=>({}))})(),i=No(),u=yr(()=>["textarea"===o.type?b.b():m.b(),m.m(v.value),m.is("disabled",h.value),m.is("exceed",H.value),{[m.b("group")]:i.prepend||i.append,[m.m("prefix")]:i.prefix||o.prefixIcon,[m.m("suffix")]:i.suffix||o.suffixIcon||o.clearable||o.showPassword,[m.bm("suffix","password-clear")]:$.value&&j.value,[m.b("hidden")]:"hidden"===o.type},a.class]),c=yr(()=>[m.e("wrapper"),m.is("focus",A.value)]),{form:d,formItem:p}=df(),{inputId:f}=pf(o,{formItemContext:p}),v=vf(),h=hf(),m=Wa("input"),b=Wa("textarea"),y=kt(),x=kt(),C=St(!1),_=St(!1),S=St(),k=kt(o.inputStyle),E=yr(()=>y.value||x.value),{wrapperRef:T,isFocused:A,handleFocus:O,handleBlur:M}=function(e,{disabled:t,beforeFocus:n,afterFocus:o,beforeBlur:l,afterBlur:r}={}){const a=ar(),{emit:s}=a,i=kt(),u=St(!1),c=e=>{const l=!!g(n)&&n(e);Ot(t)||u.value||l||(u.value=!0,s("focus",e),null==o||o())},d=e=>{var n;const o=!!g(l)&&l(e);Ot(t)||e.relatedTarget&&(null==(n=i.value)?void 0:n.contains(e.relatedTarget))||o||(u.value=!1,s("blur",e),null==r||r())};return wn([i,()=>Ot(t)],([e,t])=>{e&&(t?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1"))}),hd(i,"focus",c,!0),hd(i,"blur",d,!0),hd(i,"click",n=>{var o,l;Ot(t)||gf(n.target)||(null==(o=i.value)?void 0:o.contains(document.activeElement))&&i.value!==document.activeElement||null==(l=e.value)||l.focus()},!0),{isFocused:u,wrapperRef:i,handleFocus:c,handleBlur:d}}(E,{disabled:h,afterBlur(){var e;o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"blur").catch(e=>{}))}}),R=yr(()=>{var e;return null!=(e=null==d?void 0:d.statusIcon)&&e}),L=yr(()=>(null==p?void 0:p.validateState)||""),P=yr(()=>L.value&&qp[L.value]),N=yr(()=>_.value?Vp:_p),I=yr(()=>[a.style]),B=yr(()=>[o.inputStyle,k.value,{resize:o.resize}]),F=yr(()=>Vc(o.modelValue)?"":String(o.modelValue)),$=yr(()=>o.clearable&&!h.value&&!o.readonly&&!!F.value&&(A.value||C.value)),j=yr(()=>o.showPassword&&!h.value&&!!F.value),D=yr(()=>o.showWordLimit&&!!o.maxlength&&("text"===o.type||"textarea"===o.type)&&!h.value&&!o.readonly&&!o.showPassword),z=yr(()=>F.value.length),H=yr(()=>!!D.value&&z.value>Number(o.maxlength)),W=yr(()=>!!i.suffix||!!o.suffixIcon||$.value||o.showPassword||D.value||!!L.value&&R.value),U=yr(()=>!!Object.keys(o.modelModifiers).length),[K,G]=function(e){let t;return[function(){if(null==e.value)return;const{selectionStart:n,selectionEnd:o,value:l}=e.value;if(null==n||null==o)return;const r=l.slice(0,Math.max(0,n)),a=l.slice(Math.max(0,o));t={selectionStart:n,selectionEnd:o,value:l,beforeTxt:r,afterTxt:a}},function(){if(null==e.value||null==t)return;const{value:n}=e.value,{beforeTxt:o,afterTxt:l,selectionStart:r}=t;if(null==o||null==l||null==r)return;let a=n.length;if(n.endsWith(l))a=n.length-l.length;else if(n.startsWith(o))a=o.length;else{const e=o[r-1],t=n.indexOf(e,r-1);-1!==t&&(a=t+1)}e.value.setSelectionRange(a,a)}]}(y);bd(x,e=>{if(X(),!D.value||"both"!==o.resize&&"horizontal"!==o.resize)return;const t=e[0],{width:n}=t.contentRect;S.value={right:`calc(100% - ${n+22-10}px)`}});const Y=()=>{const{type:e,autosize:t}=o;if(ld&&"textarea"===e&&x.value)if(t){const e=w(t)?t.minRows:void 0,n=w(t)?t.maxRows:void 0,o=Zp(x.value,e,n);k.value={overflowY:"hidden",...o},tn(()=>{x.value.offsetHeight,k.value=o})}else k.value={minHeight:Zp(x.value).minHeight}},X=(e=>{let t=!1;return()=>{var n;!t&&o.autosize&&(null===(null==(n=x.value)?void 0:n.offsetParent)||(setTimeout(e),t=!0))}})(Y),J=()=>{const e=E.value,t=o.formatter?o.formatter(F.value):F.value;e&&e.value!==t&&"file"!==o.type&&(e.value=t)},Q=e=>{const{trim:t,number:n}=o.modelModifiers;return t&&(e=e.trim()),n&&(e=`${Xp(e)}`),o.formatter&&o.parser&&(e=o.parser(e)),e},ee=async e=>{if(ne.value)return;const{lazy:t}=o.modelModifiers;let{value:n}=e.target;t?l(Qd,n):(n=Q(n),String(n)!==F.value?(K(),l(Zd,n),l(Qd,n),await tn(),(o.formatter&&o.parser||!U.value)&&J(),G()):o.formatter&&J())},te=async e=>{let{value:t}=e.target;t=Q(t),o.modelModifiers.lazy&&l(Zd,t),l(Jd,t,e),await tn(),J()},{isComposing:ne,handleCompositionStart:oe,handleCompositionUpdate:le,handleCompositionEnd:re}=function({afterComposition:e,emit:t}){const n=St(!1),o=e=>{var o;null==t||t("compositionupdate",e);const l=null==(o=e.target)?void 0:o.value,r=l[l.length-1]||"";n.value=!(e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e))(r)},l=o=>{null==t||t("compositionend",o),n.value&&(n.value=!1,tn(()=>e(o)))};return{isComposing:n,handleComposition:e=>{"compositionend"===e.type?l(e):o(e)},handleCompositionStart:e=>{null==t||t("compositionstart",e),n.value=!0},handleCompositionUpdate:o,handleCompositionEnd:l}}({emit:l,afterComposition:ee}),ae=()=>{_.value=!_.value},se=e=>{C.value=!1,l("mouseleave",e)},ie=e=>{C.value=!0,l("mouseenter",e)},ue=e=>{l("keydown",e)},ce=()=>{l(Zd,""),l(Jd,""),l("clear"),l(Qd,"")};return wn(()=>o.modelValue,()=>{var e;tn(()=>Y()),o.validateEvent&&(null==(e=null==p?void 0:p.validate)||e.call(p,"change").catch(e=>{}))}),wn(F,e=>{if(!E.value)return;const{trim:t,number:n}=o.modelModifiers,l=E.value.value,r=!n&&"number"!==o.type||/^0\d/.test(l)?l:`${Xp(l)}`;r!==e&&(document.activeElement===E.value&&"range"!==E.value.type&&t&&r.trim()===e||J())}),wn(()=>o.type,async()=>{await tn(),J(),Y()}),co(()=>{!o.formatter&&o.parser,J(),tn(Y)}),t({input:y,textarea:x,ref:E,textareaStyle:B,autosize:Ft(o,"autosize"),isComposing:ne,focus:()=>{var e;return null==(e=E.value)?void 0:e.focus()},blur:()=>{var e;return null==(e=E.value)?void 0:e.blur()},select:()=>{var e;null==(e=E.value)||e.select()},clear:ce,resizeTextarea:Y}),(e,t)=>(Fl(),Dl("div",{class:q([u.value,{[Ot(m).bm("group","append")]:e.$slots.append,[Ot(m).bm("group","prepend")]:e.$slots.prepend}]),style:V(I.value),onMouseenter:ie,onMouseleave:se},[Zl(" input "),"textarea"!==e.type?(Fl(),Dl(Rl,{key:0},[Zl(" prepend slot "),e.$slots.prepend?(Fl(),Dl("div",{key:0,class:q(Ot(m).be("group","prepend"))},[Ao(e.$slots,"prepend")],2)):Zl("v-if",!0),Kl("div",{ref_key:"wrapperRef",ref:T,class:q(c.value)},[Zl(" prefix slot "),e.$slots.prefix||e.prefixIcon?(Fl(),Dl("span",{key:0,class:q(Ot(m).e("prefix"))},[Kl("span",{class:q(Ot(m).e("prefix-inner"))},[Ao(e.$slots,"prefix"),e.prefixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.prefixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0),Kl("input",tr({id:Ot(f),ref_key:"input",ref:y,class:Ot(m).e("inner")},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,type:e.showPassword?_.value?"text":"password":e.type,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.ariaLabel,placeholder:e.placeholder,style:e.inputStyle,form:e.form,autofocus:e.autofocus,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:t[0]||(t[0]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[1]||(t[1]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[2]||(t[2]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onChange:te,onKeydown:ue}),null,16,wf),Zl(" suffix slot "),W.value?(Fl(),Dl("span",{key:1,class:q(Ot(m).e("suffix"))},[Kl("span",{class:q(Ot(m).e("suffix-inner"))},[$.value&&j.value&&D.value?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Ao(e.$slots,"suffix"),e.suffixIcon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(m).e("icon"))},{default:pn(()=>[(Fl(),zl(_o(e.suffixIcon)))]),_:1},8,["class"])):Zl("v-if",!0)],64)),$.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(m).e("icon"),Ot(m).e("clear")]),onMousedown:Ra(Ot(r),["prevent"]),onClick:ce},{default:pn(()=>[(Fl(),zl(_o(e.clearIcon)))]),_:1},8,["class","onMousedown"])):Zl("v-if",!0),j.value?(Fl(),zl(Ot(ip),{key:2,class:q([Ot(m).e("icon"),Ot(m).e("password")]),onClick:ae,onMousedown:Ra(Ot(r),["prevent"]),onMouseup:Ra(Ot(r),["prevent"])},{default:pn(()=>[(Fl(),zl(_o(N.value)))]),_:1},8,["class","onMousedown","onMouseup"])):Zl("v-if",!0),D.value?(Fl(),Dl("span",{key:3,class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},[Kl("span",{class:q(Ot(m).e("count-inner"))},Z(z.value)+" / "+Z(e.maxlength),3)],2)):Zl("v-if",!0),L.value&&P.value&&R.value?(Fl(),zl(Ot(ip),{key:4,class:q([Ot(m).e("icon"),Ot(m).e("validateIcon"),Ot(m).is("loading","validating"===L.value)])},{default:pn(()=>[(Fl(),zl(_o(P.value)))]),_:1},8,["class"])):Zl("v-if",!0)],2)],2)):Zl("v-if",!0)],2),Zl(" append slot "),e.$slots.append?(Fl(),Dl("div",{key:1,class:q(Ot(m).be("group","append"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)],64)):(Fl(),Dl(Rl,{key:1},[Zl(" textarea "),Kl("textarea",tr({id:Ot(f),ref_key:"textarea",ref:x,class:[Ot(b).e("inner"),Ot(m).is("focus",Ot(A))]},Ot(s),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,tabindex:e.tabindex,disabled:Ot(h),readonly:e.readonly,autocomplete:e.autocomplete,style:B.value,"aria-label":e.ariaLabel,placeholder:e.placeholder,form:e.form,autofocus:e.autofocus,rows:e.rows,role:e.containerRole,onCompositionstart:t[3]||(t[3]=(...e)=>Ot(oe)&&Ot(oe)(...e)),onCompositionupdate:t[4]||(t[4]=(...e)=>Ot(le)&&Ot(le)(...e)),onCompositionend:t[5]||(t[5]=(...e)=>Ot(re)&&Ot(re)(...e)),onInput:ee,onFocus:t[6]||(t[6]=(...e)=>Ot(O)&&Ot(O)(...e)),onBlur:t[7]||(t[7]=(...e)=>Ot(M)&&Ot(M)(...e)),onChange:te,onKeydown:ue}),null,16,xf),D.value?(Fl(),Dl("span",{key:0,style:V(S.value),class:q([Ot(m).e("count"),Ot(m).is("outside","outside"===e.wordLimitPosition)])},Z(z.value)+" / "+Z(e.maxlength),7)):Zl("v-if",!0)],64))],38))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]])),_f={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Sf=Symbol("scrollbarContextKey"),kf=Nd({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean});var Ef=Kd(Xn({__name:"thumb",props:kf,setup(e){const t=e,n=mn(Sf),o=Wa("scrollbar");n||xd("Thumb","can not inject scrollbar context");const l=St(),r=St(),a=St({}),s=St(!1);let i=!1,u=!1,c=0,d=0,p=ld?document.onselectstart:null;const f=yr(()=>_f[t.vertical?"vertical":"horizontal"]),v=yr(()=>(({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}))({size:t.size,move:t.move,bar:f.value})),h=yr(()=>l.value[f.value.offset]**2/n.wrapElement[f.value.scrollSize]/t.ratio/r.value[f.value.offset]),m=e=>{var t;if(e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button))return;null==(t=window.getSelection())||t.removeAllRanges(),b(e);const n=e.currentTarget;n&&(a.value[f.value.axis]=n[f.value.offset]-(e[f.value.client]-n.getBoundingClientRect()[f.value.direction]))},g=e=>{if(!r.value||!l.value||!n.wrapElement)return;const t=100*(Math.abs(e.target.getBoundingClientRect()[f.value.direction]-e[f.value.client])-r.value[f.value.offset]/2)*h.value/l.value[f.value.offset];n.wrapElement[f.value.scroll]=t*n.wrapElement[f.value.scrollSize]/100},b=e=>{e.stopImmediatePropagation(),i=!0,c=n.wrapElement.scrollHeight,d=n.wrapElement.scrollWidth,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),p=document.onselectstart,document.onselectstart=()=>!1},y=e=>{if(!l.value||!r.value)return;if(!1===i)return;const t=a.value[f.value.axis];if(!t)return;const o=100*(-1*(l.value.getBoundingClientRect()[f.value.direction]-e[f.value.client])-(r.value[f.value.offset]-t))*h.value/l.value[f.value.offset];"scrollLeft"===f.value.scroll?n.wrapElement[f.value.scroll]=o*d/100:n.wrapElement[f.value.scroll]=o*c/100},w=()=>{i=!1,a.value[f.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),x(),u&&(s.value=!1)};vo(()=>{x(),document.removeEventListener("mouseup",w)});const x=()=>{document.onselectstart!==p&&(document.onselectstart=p)};return hd(Ft(n,"scrollbarElement"),"mousemove",()=>{u=!1,s.value=!!t.size}),hd(Ft(n,"scrollbarElement"),"mouseleave",()=>{u=!0,s.value=i}),(e,t)=>(Fl(),zl(Nr,{name:Ot(o).b("fade"),persisted:""},{default:pn(()=>[fn(Kl("div",{ref_key:"instance",ref:l,class:q([Ot(o).e("bar"),Ot(o).is(f.value.key)]),onMousedown:g,onClick:t[0]||(t[0]=Ra(()=>{},["stop"]))},[Kl("div",{ref_key:"thumb",ref:r,class:q(Ot(o).e("thumb")),style:V(v.value),onMousedown:m},null,38)],34),[[Xr,e.always||s.value]])]),_:1},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]),Tf=Kd(Xn({__name:"bar",props:Nd({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),setup(e,{expose:t}){const n=e,o=mn(Sf),l=St(0),r=St(0),a=St(""),s=St(""),i=St(1),u=St(1);return t({handleScroll:e=>{if(e){const t=e.offsetHeight-4,n=e.offsetWidth-4;r.value=100*e.scrollTop/t*i.value,l.value=100*e.scrollLeft/n*u.value}},update:()=>{const e=null==o?void 0:o.wrapElement;if(!e)return;const t=e.offsetHeight-4,l=e.offsetWidth-4,r=t**2/e.scrollHeight,c=l**2/e.scrollWidth,d=Math.max(r,n.minSize),p=Math.max(c,n.minSize);i.value=r/(t-r)/(d/(t-d)),u.value=c/(l-c)/(p/(l-p)),s.value=d+4(Fl(),Dl(Rl,null,[Gl(Ef,{move:l.value,ratio:u.value,size:a.value,always:e.always},null,8,["move","ratio","size","always"]),Gl(Ef,{move:r.value,ratio:i.value,size:s.value,vertical:"",always:e.always},null,8,["move","ratio","size","always"])],64))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const Af=Nd({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:[String,Object,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Qp(["ariaLabel","ariaOrientation"])}),Of=["tabindex"],Mf=Gd(Kd(Xn({name:"ElScrollbar",__name:"scrollbar",props:Af,emits:{"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Jc)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=Wa("scrollbar");let a,s,i,u=0,c=0,d="";const p={bottom:!1,top:!1,right:!1,left:!1},f=St(),v=St(),h=St(),m=St(),g=yr(()=>{const e={},t=ap(o.height),n=ap(o.maxHeight);return t&&(e.height=t),n&&(e.maxHeight=n),[o.wrapStyle,e]}),b=yr(()=>[o.wrapClass,r.e("wrap"),{[r.em("wrap","hidden-default")]:!o.native}]),y=yr(()=>[r.e("view"),o.viewClass]),x={top:"bottom",bottom:"top",left:"right",right:"left"},C=()=>{var e;if(v.value){null==(e=m.value)||e.handleScroll(v.value);const t=u,n=c;u=v.value.scrollTop,c=v.value.scrollLeft;const r={bottom:u+v.value.clientHeight>=v.value.scrollHeight-o.distance,top:u<=o.distance&&0!==t,right:c+v.value.clientWidth>=v.value.scrollWidth-o.distance&&n!==c,left:c<=o.distance&&0!==n};if(l("scroll",{scrollTop:u,scrollLeft:c}),t!==u&&(d=u>t?"bottom":"top"),n!==c&&(d=c>n?"right":"left"),o.distance>0){if((e=>{var t;return null!=(t=p[e])&&t})(d))return;(e=>{const t=x[d];if(!t)return;const n=e[d],o=e[t];n&&!p[d]&&(p[d]=!0),!o&&p[t]&&(p[t]=!1)})(r)}r[d]&&l("end-reached",d)}},_=()=>{var e;null==(e=m.value)||e.update(),p[d]=!1};return wn(()=>o.noresize,e=>{e?(null==a||a(),null==s||s(),null==i||i()):(({stop:a}=bd(h,_)),({stop:s}=bd(v,_)),i=hd("resize",_))},{immediate:!0}),wn(()=>[o.maxHeight,o.height],()=>{o.native||tn(()=>{var e;_(),v.value&&(null==(e=m.value)||e.handleScroll(v.value))})}),hn(Sf,pt({scrollbarElement:f,wrapElement:v})),oo(()=>{v.value&&(v.value.scrollTop=u,v.value.scrollLeft=c)}),co(()=>{o.native||tn(()=>{_()})}),fo(()=>_()),t({wrapRef:v,update:_,scrollTo:function(e,t){w(e)?v.value.scrollTo(e):Jc(e)&&Jc(t)&&v.value.scrollTo(e,t)},setScrollTop:e=>{Jc(e)&&(v.value.scrollTop=e)},setScrollLeft:e=>{Jc(e)&&(v.value.scrollLeft=e)},handleScroll:C}),(e,t)=>(Fl(),Dl("div",{ref_key:"scrollbarRef",ref:f,class:q(Ot(r).b())},[Kl("div",{ref_key:"wrapRef",ref:v,class:q(b.value),style:V(g.value),tabindex:e.tabindex,onScroll:C},[(Fl(),zl(_o(e.tag),{id:e.id,ref_key:"resizeRef",ref:h,class:q(y.value),style:V(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,Of),e.native?Zl("v-if",!0):(Fl(),zl(Tf,{key:0,ref_key:"barRef",ref:m,always:e.always,"min-size":e.minSize},null,8,["always","min-size"]))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]])),Rf=Symbol("popper"),Lf=Symbol("popperContent"),Pf=Nd({role:{type:String,values:["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],default:"tooltip"}});var Nf=Kd(Xn({name:"ElPopper",inheritAttrs:!1,__name:"popper",props:Pf,setup(e,{expose:t}){const n=e,o={triggerRef:St(),popperInstanceRef:St(),contentRef:St(),referenceRef:St(),role:yr(()=>n.role)};return t(o),hn(Rf,o),(e,t)=>Ao(e.$slots,"default")}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]),If=Kd(Xn({name:"ElPopperArrow",inheritAttrs:!1,__name:"arrow",setup(e,{expose:t}){const n=Wa("popper"),{arrowRef:o,arrowStyle:l}=mn(Lf,void 0);return vo(()=>{o.value=void 0}),t({arrowRef:o}),(e,t)=>(Fl(),Dl("span",{ref_key:"arrowRef",ref:o,class:q(Ot(n).e("arrow")),style:V(Ot(l)),"data-popper-arrow":""},null,6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const Bf=Nd({virtualRef:{type:Object},virtualTriggering:Boolean,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},onBlur:{type:Function},onContextmenu:{type:Function},id:String,open:Boolean}),Ff=Symbol("elForwardRef"),$f=Xn({name:"ElOnlyChild",setup(e,{slots:t,attrs:n}){var o;const l=mn(Ff),a=(s=null!=(o=null==l?void 0:l.setForwardRef)?o:r,{mounted(e){s(e)},updated(e){s(e)},unmounted(){s(null)}});var s;return()=>{var e;const o=null==(e=t.default)?void 0:e.call(t,n);if(!o)return null;const[l,r]=jf(o);return l?fn(Yl(l,n),[[a]]):null}}});function jf(e){if(!e)return[null,0];const t=e,n=t.filter(e=>e.type!==Pl).length;for(const o of t){if(w(o))switch(o.type){case Pl:continue;case Ll:case"svg":return[Vf(o),n];case Rl:return jf(o.children);default:return[o,n]}return[Vf(o),n]}return[null,0]}function Vf(e){const t=Wa("only-child");return Gl("span",{class:t.e("content")},[e])}var Df=Kd(Xn({name:"ElPopperTrigger",inheritAttrs:!1,__name:"trigger",props:Bf,setup(e,{expose:t}){const n=e,{role:o,triggerRef:l}=mn(Rf,void 0);var r;r=l,hn(Ff,{setForwardRef:e=>{r.value=e}});const a=yr(()=>i.value?n.id:void 0),s=yr(()=>{if(o&&"tooltip"===o.value)return n.open&&n.id?n.id:void 0}),i=yr(()=>{if(o&&"tooltip"!==o.value)return o.value}),u=yr(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return co(()=>{wn(()=>n.virtualRef,e=>{e&&(l.value=pd(e))},{immediate:!0}),wn(l,(e,t)=>{null==c||c(),c=void 0,Qc(t)&&d.forEach(e=>{const o=n[e];o&&t.removeEventListener(e.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(e))}),Qc(e)&&(d.forEach(t=>{const o=n[t];o&&e.addEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),gf(e)&&(c=wn([a,s,i,u],t=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((n,o)=>{Vc(t[o])?e.removeAttribute(n):e.setAttribute(n,t[o])})},{immediate:!0}))),Qc(t)&&gf(t)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(e=>t.removeAttribute(e))},{immediate:!0})}),vo(()=>{if(null==c||c(),c=void 0,l.value&&Qc(l.value)){const e=l.value;d.forEach(t=>{const o=n[t];o&&e.removeEventListener(t.slice(2).toLowerCase(),o,["onFocus","onBlur"].includes(t))}),l.value=void 0}}),t({triggerRef:l}),(e,t)=>e.virtualTriggering?Zl("v-if",!0):(Fl(),zl(Ot($f),tr({key:0},e.$attrs,{"aria-controls":a.value,"aria-describedby":s.value,"aria-expanded":u.value,"aria-haspopup":i.value}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);const zf="focus-trap.focus-after-trapped",Hf="focus-trap.focus-after-released",Wf={cancelable:!0,bubbles:!1},qf={cancelable:!0,bubbles:!1},Uf="focusAfterTrapped",Kf="focusAfterReleased",Gf=Symbol("elFocusTrap"),Yf=St(),Xf=St(0),Zf=St(0);let Jf=0;const Qf=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0||e===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},ev=(e,t)=>{for(const n of e)if(!tv(n,t))return n},tv=(e,t)=>{if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1},nv=(e,t)=>{if(e){const n=document.activeElement;yf(e,{preventScroll:!0}),Zf.value=window.performance.now(),e!==n&&(e=>e instanceof HTMLInputElement&&"select"in e)(e)&&t&&e.select()}};function ov(e,t){const n=[...e],o=e.indexOf(t);return-1!==o&&n.splice(o,1),n}const lv=(()=>{let e=[];return{push:t=>{const n=e[0];n&&t!==n&&n.pause(),e=ov(e,t),e.unshift(t)},remove:t=>{var n,o;e=ov(e,t),null==(o=null==(n=e[0])?void 0:n.resume)||o.call(n)}}})(),rv=()=>{Yf.value="pointer",Xf.value=window.performance.now()},av=()=>{Yf.value="keyboard",Xf.value=window.performance.now()},sv=e=>new CustomEvent("focus-trap.focusout-prevented",{...qf,detail:e}),iv={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},uv=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const l=null==e?void 0:e(o);if(!1===n||!l)return null==t?void 0:t(o)},cv=e=>{if(e.code&&"Unidentified"!==e.code)return e.code;const t=dv(e);return t?Object.values(iv).includes(t)?t:" "===t?iv.space:"":""},dv=e=>{let t=e.key&&"Unidentified"!==e.key?e.key:"";if(!t&&"keyup"===e.type&&ld&&/android/i.test(window.navigator.userAgent)){const n=e.target;t=n.value.charAt(n.selectionStart-1)}return t};let pv=[];const fv=e=>{cv(e)===iv.esc&&pv.forEach(t=>t(e))};var vv=Kd(Xn({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Uf,Kf,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=St();let o,l;const{focusReason:r}=(co(()=>{0===Jf&&(document.addEventListener("mousedown",rv),document.addEventListener("touchstart",rv),document.addEventListener("keydown",av)),Jf++}),vo(()=>{Jf--,Jf<=0&&(document.removeEventListener("mousedown",rv),document.removeEventListener("touchstart",rv),document.removeEventListener("keydown",av))}),{focusReason:Yf,lastUserFocusTimestamp:Xf,lastAutomatedFocusTimestamp:Zf});var a;a=n=>{e.trapped&&!s.paused&&t("release-requested",n)},co(()=>{0===pv.length&&document.addEventListener("keydown",fv),ld&&pv.push(a)}),vo(()=>{pv=pv.filter(e=>e!==a),0===pv.length&&ld&&document.removeEventListener("keydown",fv)});const s={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=n=>{if(!e.loop&&!e.trapped)return;if(s.paused)return;const{altKey:o,ctrlKey:l,metaKey:a,currentTarget:i,shiftKey:u}=n,{loop:c}=e,d=cv(n)===iv.tab&&!o&&!l&&!a,p=document.activeElement;if(d&&p){const e=i,[o,l]=(e=>{const t=Qf(e);return[ev(t,e),ev(t.reverse(),e)]})(e);if(o&&l)if(u||p!==l){if(u&&[o,e].includes(p)){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(l,!0))}}else{const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||(n.preventDefault(),c&&nv(o,!0))}else if(p===e){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||n.preventDefault()}}};hn(Gf,{focusTrapRef:n,onKeydown:i}),wn(()=>e.focusTrapEl,e=>{e&&(n.value=e)},{immediate:!0}),wn([n],([e],[t])=>{e&&(e.addEventListener("keydown",i),e.addEventListener("focusin",d),e.addEventListener("focusout",p)),t&&(t.removeEventListener("keydown",i),t.removeEventListener("focusin",d),t.removeEventListener("focusout",p))});const u=e=>{t(Uf,e)},c=e=>t(Kf,e),d=r=>{const a=Ot(n);if(!a)return;const i=r.target,u=r.relatedTarget,c=i&&a.contains(i);e.trapped||u&&a.contains(u)||(o=u),c&&t("focusin",r),s.paused||e.trapped&&(c?l=i:nv(l,!0))},p=o=>{const a=Ot(n);if(!s.paused&&a)if(e.trapped){const n=o.relatedTarget;Vc(n)||a.contains(n)||setTimeout(()=>{if(!s.paused&&e.trapped){const e=sv({focusReason:r.value});t("focusout-prevented",e),e.defaultPrevented||nv(l,!0)}},0)}else{const e=o.target;e&&a.contains(e)||t("focusout",o)}};async function f(){await tn();const t=Ot(n);if(t){lv.push(s);const n=t.contains(document.activeElement)?o:document.activeElement;if(o=n,!t.contains(n)){const o=new Event(zf,Wf);t.addEventListener(zf,u),t.dispatchEvent(o),o.defaultPrevented||tn(()=>{let o=e.focusStartEl;b(o)||(nv(o),document.activeElement!==o&&(o="first")),"first"===o&&((e,t=!1)=>{const n=document.activeElement;for(const o of e)if(nv(o,t),document.activeElement!==n)return})(Qf(t),!0),document.activeElement!==n&&"container"!==o||nv(t)})}}}function v(){const e=Ot(n);if(e){e.removeEventListener(zf,u);const t=new CustomEvent(Hf,{...Wf,detail:{focusReason:r.value}});e.addEventListener(Hf,c),e.dispatchEvent(t),t.defaultPrevented||"keyboard"!=r.value&&Xf.value>Zf.value&&!e.contains(document.activeElement)||nv(null!=o?o:document.body),e.removeEventListener(Hf,c),lv.remove(s),o=null,l=null}}return co(()=>{e.trapped&&f(),wn(()=>e.trapped,e=>{e?f():v()})}),vo(()=>{e.trapped&&v(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",p),n.value=void 0),o=null,l=null}),{onKeydown:i}}}),[["render",function(e,t,n,o,l,r){return Ao(e.$slots,"default",{handleKeydown:e.onKeydown})}],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]),hv="top",mv="bottom",gv="right",bv="left",yv="auto",wv=[hv,mv,gv,bv],xv="start",Cv="end",_v="viewport",Sv="popper",kv=wv.reduce(function(e,t){return e.concat([t+"-"+xv,t+"-"+Cv])},[]),Ev=[].concat(wv,[yv]).reduce(function(e,t){return e.concat([t,t+"-"+xv,t+"-"+Cv])},[]),Tv=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Av(e){return e?(e.nodeName||"").toLowerCase():null}function Ov(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Mv(e){return e instanceof Ov(e).Element||e instanceof Element}function Rv(e){return e instanceof Ov(e).HTMLElement||e instanceof HTMLElement}function Lv(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Ov(e).ShadowRoot||e instanceof ShadowRoot)}var Pv={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},l=t.elements[e];!Rv(l)||!Av(l)||(Object.assign(l.style,n),Object.keys(o).forEach(function(e){var t=o[e];!1===t?l.removeAttribute(e):l.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var o=t.elements[e],l=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});!Rv(o)||!Av(o)||(Object.assign(o.style,r),Object.keys(l).forEach(function(e){o.removeAttribute(e)}))})}},requires:["computeStyles"]};function Nv(e){return e.split("-")[0]}var Iv=Math.max,Bv=Math.min,Fv=Math.round;function $v(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,l=1;if(Rv(e)&&t){var r=e.offsetHeight,a=e.offsetWidth;a>0&&(o=Fv(n.width)/a||1),r>0&&(l=Fv(n.height)/r||1)}return{width:n.width/o,height:n.height/l,top:n.top/l,right:n.right/o,bottom:n.bottom/l,left:n.left/o,x:n.left/o,y:n.top/l}}function jv(e){var t=$v(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function Vv(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Lv(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Dv(e){return Ov(e).getComputedStyle(e)}function zv(e){return["table","td","th"].indexOf(Av(e))>=0}function Hv(e){return((Mv(e)?e.ownerDocument:e.document)||window.document).documentElement}function Wv(e){return"html"===Av(e)?e:e.assignedSlot||e.parentNode||(Lv(e)?e.host:null)||Hv(e)}function qv(e){return Rv(e)&&"fixed"!==Dv(e).position?e.offsetParent:null}function Uv(e){for(var t=Ov(e),n=qv(e);n&&zv(n)&&"static"===Dv(n).position;)n=qv(n);return n&&("html"===Av(n)||"body"===Av(n)&&"static"===Dv(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Rv(e)&&"fixed"===Dv(e).position)return null;var n=Wv(e);for(Lv(n)&&(n=n.host);Rv(n)&&["html","body"].indexOf(Av(n))<0;){var o=Dv(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function Kv(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Gv(e,t,n){return Iv(e,Bv(t,n))}function Yv(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Xv(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Zv={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,l=e.options,r=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Nv(n.placement),i=Kv(s),u=[bv,gv].indexOf(s)>=0?"height":"width";if(r&&a){var c=function(e,t){return Yv("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Xv(e,wv))}(l.padding,n),d=jv(r),p="y"===i?hv:bv,f="y"===i?mv:gv,v=n.rects.reference[u]+n.rects.reference[i]-a[i]-n.rects.popper[u],h=a[i]-n.rects.reference[i],m=Uv(r),g=m?"y"===i?m.clientHeight||0:m.clientWidth||0:0,b=v/2-h/2,y=c[p],w=g-d[u]-c[f],x=g/2-d[u]/2+b,C=Gv(y,x,w),_=i;n.modifiersData[o]=((t={})[_]=C,t.centerOffset=C-x,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"==typeof o&&!(o=t.elements.popper.querySelector(o))||!Vv(t.elements.popper,o)||(t.elements.arrow=o))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Jv(e){return e.split("-")[1]}var Qv={top:"auto",right:"auto",bottom:"auto",left:"auto"};function eh(e){var t,n=e.popper,o=e.popperRect,l=e.placement,r=e.variation,a=e.offsets,s=e.position,i=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=a.x,f=void 0===p?0:p,v=a.y,h=void 0===v?0:v,m="function"==typeof c?c({x:f,y:h}):{x:f,y:h};f=m.x,h=m.y;var g=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=bv,w=hv,x=window;if(u){var C=Uv(n),_="clientHeight",S="clientWidth";C===Ov(n)&&"static"!==Dv(C=Hv(n)).position&&"absolute"===s&&(_="scrollHeight",S="scrollWidth"),(l===hv||(l===bv||l===gv)&&r===Cv)&&(w=mv,h-=(d&&C===x&&x.visualViewport?x.visualViewport.height:C[_])-o.height,h*=i?1:-1),l!==bv&&(l!==hv&&l!==mv||r!==Cv)||(y=gv,f-=(d&&C===x&&x.visualViewport?x.visualViewport.width:C[S])-o.width,f*=i?1:-1)}var k,E=Object.assign({position:s},u&&Qv),T=!0===c?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:Fv(t*o)/o||0,y:Fv(n*o)/o||0}}({x:f,y:h}):{x:f,y:h};return f=T.x,h=T.y,i?Object.assign({},E,((k={})[w]=b?"0":"",k[y]=g?"0":"",k.transform=(x.devicePixelRatio||1)<=1?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",k)):Object.assign({},E,((t={})[w]=b?h+"px":"",t[y]=g?f+"px":"",t.transform="",t))}var th={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,l=void 0===o||o,r=n.adaptive,a=void 0===r||r,s=n.roundOffsets,i=void 0===s||s,u={placement:Nv(t.placement),variation:Jv(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:l,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,eh(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:i})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,eh(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},nh={passive:!0},oh={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,l=o.scroll,r=void 0===l||l,a=o.resize,s=void 0===a||a,i=Ov(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&u.forEach(function(e){e.addEventListener("scroll",n.update,nh)}),s&&i.addEventListener("resize",n.update,nh),function(){r&&u.forEach(function(e){e.removeEventListener("scroll",n.update,nh)}),s&&i.removeEventListener("resize",n.update,nh)}},data:{}},lh={left:"right",right:"left",bottom:"top",top:"bottom"};function rh(e){return e.replace(/left|right|bottom|top/g,function(e){return lh[e]})}var ah={start:"end",end:"start"};function sh(e){return e.replace(/start|end/g,function(e){return ah[e]})}function ih(e){var t=Ov(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function uh(e){return $v(Hv(e)).left+ih(e).scrollLeft}function ch(e){var t=Dv(e),n=t.overflow,o=t.overflowX,l=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+l+o)}function dh(e){return["html","body","#document"].indexOf(Av(e))>=0?e.ownerDocument.body:Rv(e)&&ch(e)?e:dh(Wv(e))}function ph(e,t){var n;void 0===t&&(t=[]);var o=dh(e),l=o===(null==(n=e.ownerDocument)?void 0:n.body),r=Ov(o),a=l?[r].concat(r.visualViewport||[],ch(o)?o:[]):o,s=t.concat(a);return l?s:s.concat(ph(Wv(a)))}function fh(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function vh(e,t){return t===_v?fh(function(e){var t=Ov(e),n=Hv(e),o=t.visualViewport,l=n.clientWidth,r=n.clientHeight,a=0,s=0;return o&&(l=o.width,r=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=o.offsetLeft,s=o.offsetTop)),{width:l,height:r,x:a+uh(e),y:s}}(e)):Mv(t)?function(e){var t=$v(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):fh(function(e){var t,n=Hv(e),o=ih(e),l=null==(t=e.ownerDocument)?void 0:t.body,r=Iv(n.scrollWidth,n.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),a=Iv(n.scrollHeight,n.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),s=-o.scrollLeft+uh(e),i=-o.scrollTop;return"rtl"===Dv(l||n).direction&&(s+=Iv(n.clientWidth,l?l.clientWidth:0)-r),{width:r,height:a,x:s,y:i}}(Hv(e)))}function hh(e,t,n){var o="clippingParents"===t?function(e){var t=ph(Wv(e)),n=["absolute","fixed"].indexOf(Dv(e).position)>=0&&Rv(e)?Uv(e):e;return Mv(n)?t.filter(function(e){return Mv(e)&&Vv(e,n)&&"body"!==Av(e)}):[]}(e):[].concat(t),l=[].concat(o,[n]),r=l[0],a=l.reduce(function(t,n){var o=vh(e,n);return t.top=Iv(o.top,t.top),t.right=Bv(o.right,t.right),t.bottom=Bv(o.bottom,t.bottom),t.left=Iv(o.left,t.left),t},vh(e,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mh(e){var t,n=e.reference,o=e.element,l=e.placement,r=l?Nv(l):null,a=l?Jv(l):null,s=n.x+n.width/2-o.width/2,i=n.y+n.height/2-o.height/2;switch(r){case hv:t={x:s,y:n.y-o.height};break;case mv:t={x:s,y:n.y+n.height};break;case gv:t={x:n.x+n.width,y:i};break;case bv:t={x:n.x-o.width,y:i};break;default:t={x:n.x,y:n.y}}var u=r?Kv(r):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case xv:t[u]=t[u]-(n[c]/2-o[c]/2);break;case Cv:t[u]=t[u]+(n[c]/2-o[c]/2)}}return t}function gh(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=void 0===o?e.placement:o,r=n.boundary,a=void 0===r?"clippingParents":r,s=n.rootBoundary,i=void 0===s?_v:s,u=n.elementContext,c=void 0===u?Sv:u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,v=void 0===f?0:f,h=Yv("number"!=typeof v?v:Xv(v,wv)),m=c===Sv?"reference":Sv,g=e.rects.popper,b=e.elements[p?m:c],y=hh(Mv(b)?b:b.contextElement||Hv(e.elements.popper),a,i),w=$v(e.elements.reference),x=mh({reference:w,element:g,placement:l}),C=fh(Object.assign({},g,x)),_=c===Sv?C:w,S={top:y.top-_.top+h.top,bottom:_.bottom-y.bottom+h.bottom,left:y.left-_.left+h.left,right:_.right-y.right+h.right},k=e.modifiersData.offset;if(c===Sv&&k){var E=k[l];Object.keys(S).forEach(function(e){var t=[gv,mv].indexOf(e)>=0?1:-1,n=[hv,mv].indexOf(e)>=0?"y":"x";S[e]+=E[n]*t})}return S}var bh={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0===a||a,i=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,v=void 0===f||f,h=n.allowedAutoPlacements,m=t.options.placement,g=Nv(m),b=i||(g!==m&&v?function(e){if(Nv(e)===yv)return[];var t=rh(e);return[sh(e),t,sh(t)]}(m):[rh(m)]),y=[m].concat(b).reduce(function(e,n){return e.concat(Nv(n)===yv?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,l=n.boundary,r=n.rootBoundary,a=n.padding,s=n.flipVariations,i=n.allowedAutoPlacements,u=void 0===i?Ev:i,c=Jv(o),d=c?s?kv:kv.filter(function(e){return Jv(e)===c}):wv,p=d.filter(function(e){return u.indexOf(e)>=0});0===p.length&&(p=d);var f=p.reduce(function(t,n){return t[n]=gh(e,{placement:n,boundary:l,rootBoundary:r,padding:a})[Nv(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:h}):n)},[]),w=t.rects.reference,x=t.rects.popper,C=new Map,_=!0,S=y[0],k=0;k=0,M=O?"width":"height",R=gh(t,{placement:E,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),L=O?A?gv:bv:A?mv:hv;w[M]>x[M]&&(L=rh(L));var P=rh(L),N=[];if(r&&N.push(R[T]<=0),s&&N.push(R[L]<=0,R[P]<=0),N.every(function(e){return e})){S=E,_=!1;break}C.set(E,N)}if(_)for(var I=function(e){var t=y.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return S=t,"break"},B=v?3:1;B>0&&"break"!==I(B);B--);t.placement!==S&&(t.modifiersData[o]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function yh(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function wh(e){return[hv,gv,mv,bv].some(function(t){return e[t]>=0})}var xh={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,l=t.rects.popper,r=t.modifiersData.preventOverflow,a=gh(t,{elementContext:"reference"}),s=gh(t,{altBoundary:!0}),i=yh(a,o),u=yh(s,l,r),c=wh(i),d=wh(u);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}},Ch={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.offset,r=void 0===l?[0,0]:l,a=Ev.reduce(function(e,n){return e[n]=function(e,t,n){var o=Nv(e),l=[bv,hv].indexOf(o)>=0?-1:1,r="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=r[0],s=r[1];return a=a||0,s=(s||0)*l,[bv,gv].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,r),e},{}),s=a[t.placement],i=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=a}},_h={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=mh({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}},Sh={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,l=n.mainAxis,r=void 0===l||l,a=n.altAxis,s=void 0!==a&&a,i=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,v=n.tetherOffset,h=void 0===v?0:v,m=gh(t,{boundary:i,rootBoundary:u,padding:d,altBoundary:c}),g=Nv(t.placement),b=Jv(t.placement),y=!b,w=Kv(g),x=function(e){return"x"===e?"y":"x"}(w),C=t.modifiersData.popperOffsets,_=t.rects.reference,S=t.rects.popper,k="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,E="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(C){if(r){var O,M="y"===w?hv:bv,R="y"===w?mv:gv,L="y"===w?"height":"width",P=C[w],N=P+m[M],I=P-m[R],B=f?-S[L]/2:0,F=b===xv?_[L]:S[L],$=b===xv?-S[L]:-_[L],j=t.elements.arrow,V=f&&j?jv(j):{width:0,height:0},D=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=D[M],H=D[R],W=Gv(0,_[L],V[L]),q=y?_[L]/2-B-W-z-E.mainAxis:F-W-z-E.mainAxis,U=y?-_[L]/2+B+W+H+E.mainAxis:$+W+H+E.mainAxis,K=t.elements.arrow&&Uv(t.elements.arrow),G=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Y=null!=(O=null==T?void 0:T[w])?O:0,X=P+U-Y,Z=Gv(f?Bv(N,P+q-Y-G):N,P,f?Iv(I,X):I);C[w]=Z,A[w]=Z-P}if(s){var J,Q="x"===w?hv:bv,ee="x"===w?mv:gv,te=C[x],ne="y"===x?"height":"width",oe=te+m[Q],le=te-m[ee],re=-1!==[hv,bv].indexOf(g),ae=null!=(J=null==T?void 0:T[x])?J:0,se=re?oe:te-_[ne]-S[ne]-ae+E.altAxis,ie=re?te+_[ne]+S[ne]-ae-E.altAxis:le,ue=f&&re?function(e,t,n){var o=Gv(e,t,n);return o>n?n:o}(se,te,ie):Gv(f?se:oe,te,f?ie:le);C[x]=ue,A[x]=ue-te}t.modifiersData[o]=A}},requiresIfExists:["offset"]};function kh(e,t,n){void 0===n&&(n=!1);var o=Rv(t),l=Rv(t)&&function(e){var t=e.getBoundingClientRect(),n=Fv(t.width)/e.offsetWidth||1,o=Fv(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),r=Hv(t),a=$v(e,l),s={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(o||!o&&!n)&&(("body"!==Av(t)||ch(r))&&(s=function(e){return e!==Ov(e)&&Rv(e)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(e):ih(e)}(t)),Rv(t)?((i=$v(t,!0)).x+=t.clientLeft,i.y+=t.clientTop):r&&(i.x=uh(r))),{x:a.left+s.scrollLeft-i.x,y:a.top+s.scrollTop-i.y,width:a.width,height:a.height}}function Eh(e){var t=new Map,n=new Set,o=[];function l(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var o=t.get(e);o&&l(o)}}),o.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||l(e)}),o}function Th(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}var Ah={placement:"bottom",modifiers:[],strategy:"absolute"};function Oh(){for(var e=arguments.length,t=new Array(e),n=0;n({})},strategy:{type:String,values:["fixed","absolute"],default:"absolute"}}),Nh=Nd({...Ph,...Lh,id:String,style:{type:[String,Array,Object]},className:{type:[String,Array,Object]},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:[String,Array,Object]},popperStyle:{type:[String,Array,Object]},referenceEl:{type:Object},triggerTargetEl:{type:Object},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Qp(["ariaLabel"]),loop:Boolean}),Ih=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:l}=e,r={placement:n,strategy:o,...l,modifiers:[...Bh(e),...t]};return function(e,t){t&&(e.modifiers=[...e.modifiers,...null!=t?t:[]])}(r,null==l?void 0:l.modifiers),r};function Bh(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,null!=t?t:12]}},{name:"preventOverflow",options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}const Fh=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:e})=>{const t=function(e){const t=Object.keys(e.elements),n=Fc(t.map(t=>[t,e.styles[t]||{}])),o=Fc(t.map(t=>[t,e.attributes[t]]));return{styles:n,attributes:o}}(e);Object.assign(a.value,t)},requires:["computeStyles"]},l=yr(()=>{const{onFirstUpdate:e,placement:t,strategy:l,modifiers:r}=Ot(n);return{onFirstUpdate:e,placement:t||"bottom",strategy:l||"absolute",modifiers:[...r||[],o,{name:"applyStyles",enabled:!1}]}}),r=kt(),a=St({styles:{popper:{position:Ot(l).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{r.value&&(r.value.destroy(),r.value=void 0)};return wn(l,e=>{const t=Ot(r);t&&t.setOptions(e)},{deep:!0}),wn([e,t],([e,t])=>{s(),e&&t&&(r.value=Rh(e,t,Ot(l)))}),vo(()=>{s()}),{state:yr(()=>{var e;return{...(null==(e=Ot(r))?void 0:e.state)||{}}}),styles:yr(()=>Ot(a).styles),attributes:yr(()=>Ot(a).attributes),update:()=>{var e;return null==(e=Ot(r))?void 0:e.update()},forceUpdate:()=>{var e;return null==(e=Ot(r))?void 0:e.forceUpdate()},instanceRef:yr(()=>Ot(r))}},$h=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:l}=mn(Rf,void 0),r=St(),a=yr(()=>e.arrowOffset),s=yr(()=>({name:"eventListeners",enabled:!!e.visible})),i=yr(()=>{var e;const t=Ot(r),n=null!=(e=Ot(a))?e:0;return{name:"arrow",enabled:(o=t,!(void 0===o)),options:{element:t,padding:n}};var o}),u=yr(()=>({onFirstUpdate:()=>{v()},...Ih(e,[Ot(i),Ot(s)])})),c=yr(()=>(e=>{if(ld)return pd(e)})(e.referenceEl)||Ot(o)),{attributes:d,state:p,styles:f,update:v,forceUpdate:h,instanceRef:m}=Fh(c,n,u);return wn(m,e=>t.value=e,{flush:"sync"}),co(()=>{wn(()=>{var e,t;return null==(t=null==(e=Ot(c))?void 0:e.getBoundingClientRect)?void 0:t.call(e)},()=>{v()})}),vo(()=>{t.value=void 0}),{attributes:d,arrowRef:r,contentRef:n,instanceRef:m,state:p,styles:f,role:l,forceUpdate:h,update:v}};var jh=Kd(Xn({name:"ElPopperContent",__name:"content",props:Nh,emits:{mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},setup(e,{expose:t,emit:n}){const o=n,l=e,{focusStartRef:a,trapped:s,onFocusAfterReleased:i,onFocusAfterTrapped:u,onFocusInTrap:c,onFocusoutPrevented:d,onReleaseRequested:p}=((e,t)=>{const n=St(!1),o=St();return vo(()=>{o.value=void 0}),{focusStartRef:o,trapped:n,onFocusAfterReleased:e=>{var n;"pointer"!==(null==(n=e.detail)?void 0:n.focusReason)&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:t=>{e.visible&&!n.value&&(t.target&&(o.value=t.target),n.value=!0)},onFocusoutPrevented:t=>{e.trapping||("pointer"===t.detail.focusReason&&t.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}})(l,o),{attributes:f,arrowRef:v,contentRef:h,styles:m,instanceRef:g,role:b,update:y}=$h(l),{ariaModal:w,arrowStyle:x,contentAttrs:C,contentClass:_,contentStyle:S,updateZIndex:k}=((e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:l}=Ed(),r=Wa("popper"),a=yr(()=>Ot(t).popper),s=St(Jc(e.zIndex)?e.zIndex:l()),i=yr(()=>[r.b(),r.is("pure",e.pure),r.is(e.effect),e.popperClass]),u=yr(()=>[{zIndex:Ot(s)},Ot(n).popper,e.popperStyle||{}]);return{ariaModal:yr(()=>"dialog"===o.value?"false":void 0),arrowStyle:yr(()=>Ot(n).arrow||{}),contentAttrs:a,contentClass:i,contentStyle:u,contentZIndex:s,updateZIndex:()=>{s.value=Jc(e.zIndex)?e.zIndex:l()}}})(l,{styles:m,attributes:f,role:b}),E=mn(cf,void 0);let T;hn(Lf,{arrowStyle:x,arrowRef:v}),E&&hn(cf,{...E,addInputId:r,removeInputId:r});const A=(e=!0)=>{y(),e&&k()},O=()=>{A(!1),l.visible&&l.focusOnShow?s.value=!0:!1===l.visible&&(s.value=!1)};return co(()=>{wn(()=>l.triggerTargetEl,(e,t)=>{null==T||T(),T=void 0;const n=Ot(e||h.value),o=Ot(t||h.value);Qc(n)&&(T=wn([b,()=>l.ariaLabel,w,()=>l.id],e=>{["role","aria-label","aria-modal","id"].forEach((t,o)=>{Vc(e[o])?n.removeAttribute(t):n.setAttribute(t,e[o])})},{immediate:!0})),o!==n&&Qc(o)&&["role","aria-label","aria-modal","id"].forEach(e=>{o.removeAttribute(e)})},{immediate:!0}),wn(()=>l.visible,O,{immediate:!0})}),vo(()=>{null==T||T(),T=void 0,h.value=void 0}),t({popperContentRef:h,popperInstanceRef:g,updatePopper:A,contentStyle:S}),(e,t)=>(Fl(),Dl("div",tr({ref_key:"contentRef",ref:h},Ot(C),{style:Ot(S),class:Ot(_),tabindex:"-1",onMouseenter:t[0]||(t[0]=t=>e.$emit("mouseenter",t)),onMouseleave:t[1]||(t[1]=t=>e.$emit("mouseleave",t))}),[Gl(Ot(vv),{loop:e.loop,trapped:Ot(s),"trap-on-focus-in":!0,"focus-trap-el":Ot(h),"focus-start-el":Ot(a),onFocusAfterTrapped:Ot(u),onFocusAfterReleased:Ot(i),onFocusin:Ot(c),onFocusoutPrevented:Ot(d),onReleaseRequested:Ot(p)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["loop","trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const Vh=Gd(Nf),Dh=Symbol("elTooltip");function zh(){let e;const t=()=>window.clearTimeout(e);return nd(()=>t()),{registerTimeout:(n,o)=>{t(),e=window.setTimeout(n,o)},cancelTimeout:t}}const Hh=Nd({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),Wh=Nd({...Hh,...Nh,appendTo:{type:Ud.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:Boolean,default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Qp(["ariaLabel"])}),qh=Nd({...Bf,disabled:Boolean,trigger:{type:[String,Array],default:"hover"},triggerKeys:{type:Array,default:()=>[iv.enter,iv.numpadEnter,iv.space]},focusOnTarget:Boolean}),Uh=Pd({type:Boolean,default:null}),Kh=Pd({type:Function}),{useModelToggleProps:Gh,useModelToggleEmits:Yh,useModelToggle:Xh}=(e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t];return{useModelToggle:({indicator:o,toggleReason:l,shouldHideWhenRouteChanges:r,shouldProceed:a,onShow:s,onHide:i})=>{const u=ar(),{emit:c}=u,d=u.props,p=yr(()=>g(d[n])),f=yr(()=>null===d[e]),v=e=>{!0!==o.value&&(o.value=!0,l&&(l.value=e),g(s)&&s(e))},h=e=>{!1!==o.value&&(o.value=!1,l&&(l.value=e),g(i)&&i(e))},m=e=>{if(!0===d.disabled||g(a)&&!a())return;const n=p.value&&ld;n&&c(t,!0),!f.value&&n||v(e)},b=e=>{if(!0===d.disabled||!ld)return;const n=p.value&&ld;n&&c(t,!1),!f.value&&n||h(e)},y=e=>{Zc(e)&&(d.disabled&&e?p.value&&c(t,!1):o.value!==e&&(e?v():h()))};return wn(()=>d[e],y),r&&void 0!==u.appContext.config.globalProperties.$route&&wn(()=>({...u.proxy.$route}),()=>{r.value&&o.value&&b()}),co(()=>{y(d[e])}),{hide:b,show:m,toggle:()=>{o.value?b():m()},hasUpdateHandler:p}},useModelToggleProps:{[e]:Uh,[n]:Kh},useModelToggleEmits:o}})("visible"),Zh=Nd({...Pf,...Gh,...Wh,...qh,...Lh,showArrow:{type:Boolean,default:!0}}),Jh=[...Yh,"before-show","before-hide","show","hide","open","close"],Qh=(e,t)=>f(e)?e.includes(t):e===t,em=(e,t,n)=>o=>{Qh(Ot(e),t)&&n(o)};var tm=Kd(Xn({name:"ElTooltipTrigger",__name:"trigger",props:qh,setup(e,{expose:t}){const n=e,o=Wa("tooltip"),{controlled:l,id:r,open:a,onOpen:s,onClose:i,onToggle:u}=mn(Dh,void 0),c=St(null),d=()=>{if(Ot(l)||n.disabled)return!0},p=Ft(n,"trigger"),f=uv(d,em(p,"hover",e=>{s(e),n.focusOnTarget&&e.target&&tn(()=>{yf(e.target,{preventScroll:!0})})})),v=uv(d,em(p,"hover",i)),h=uv(d,em(p,"click",e=>{0===e.button&&u(e)})),m=uv(d,em(p,"focus",s)),g=uv(d,em(p,"focus",i)),b=uv(d,em(p,"contextmenu",e=>{e.preventDefault(),u(e)})),y=uv(d,e=>{const t=cv(e);n.triggerKeys.includes(t)&&(e.preventDefault(),u(e))});return t({triggerRef:c}),(e,t)=>(Fl(),zl(Ot(Df),{id:Ot(r),"virtual-ref":e.virtualRef,open:Ot(a),"virtual-triggering":e.virtualTriggering,class:q(Ot(o).e("trigger")),onBlur:Ot(g),onClick:Ot(h),onContextmenu:Ot(b),onFocus:Ot(m),onMouseenter:Ot(f),onMouseleave:Ot(v),onKeydown:Ot(y)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const nm=()=>{const e=Ha(),t=af(),n=yr(()=>`${e.value}-popper-container-${t.prefix}`),o=yr(()=>`#${n.value}`);return{id:n,selector:o}},om=()=>{const{id:e,selector:t}=nm();return uo(()=>{ld&&(document.body.querySelector(t.value)||(e=>{const t=document.createElement("div");t.id=e,document.body.appendChild(t)})(e.value))}),{id:e,selector:t}},lm=Xn({name:"ElTooltipContent",inheritAttrs:!1,__name:"content",props:Wh,setup(e,{expose:t}){const n=e,{selector:o}=nm(),l=Wa("tooltip"),r=St(),a=td(()=>{var e;return null==(e=r.value)?void 0:e.popperContentRef});let s;const{controlled:i,id:u,open:c,trigger:d,onClose:p,onOpen:v,onShow:h,onHide:m,onBeforeShow:g,onBeforeHide:b}=mn(Dh,void 0),y=yr(()=>n.transition||`${l.namespace.value}-fade-in-linear`),w=yr(()=>n.persistent);vo(()=>{null==s||s()});const x=yr(()=>!!Ot(w)||Ot(c)),C=yr(()=>!n.disabled&&Ot(c)),_=yr(()=>n.appendTo||o.value),S=yr(()=>{var e;return null!=(e=n.style)?e:{}}),k=St(!0),E=()=>{m(),N()&&yf(document.body,{preventScroll:!0}),k.value=!0},T=()=>{if(Ot(i))return!0},A=uv(T,()=>{n.enterable&&Qh(Ot(d),"hover")&&v()}),O=uv(T,()=>{Qh(Ot(d),"hover")&&p()}),M=()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e),null==g||g()},R=()=>{null==b||b()},L=()=>{h()},P=()=>{n.virtualTriggering||p()},N=e=>{var t;const n=null==(t=r.value)?void 0:t.popperContentRef,o=(null==e?void 0:e.relatedTarget)||document.activeElement;return null==n?void 0:n.contains(o)};return wn(()=>Ot(c),e=>{e?(k.value=!1,s=function(e,t,n={}){const{window:o=fd,ignore:l=[],capture:r=!0,detectIframe:a=!1}=n;if(!o)return ad;sd&&!md&&(md=!0,Array.from(o.document.body.children).forEach(e=>e.addEventListener("click",ad)),o.document.documentElement.addEventListener("click",ad));let s=!0;const i=e=>l.some(t=>{if("string"==typeof t)return Array.from(o.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{const n=pd(t);return n&&(e.target===n||e.composedPath().includes(n))}}),u=[hd(o,"click",n=>{const o=pd(e);o&&o!==n.target&&!n.composedPath().includes(o)&&(0===n.detail&&(s=!i(n)),s?t(n):s=!0)},{passive:!0,capture:r}),hd(o,"pointerdown",t=>{const n=pd(e);s=!i(t)&&!(!n||t.composedPath().includes(n))},{passive:!0}),a&&hd(o,"blur",n=>{setTimeout(()=>{var l;const r=pd(e);"IFRAME"!==(null==(l=o.document.activeElement)?void 0:l.tagName)||(null==r?void 0:r.contains(o.document.activeElement))||t(n)},0)})].filter(Boolean);return()=>u.forEach(e=>e())}(a,()=>{var e;Ot(i)||(e=Ot(d),e||0===e?f(e)?e:[e]:[]).every(e=>"hover"!==e&&"focus"!==e)&&p()},{detectIframe:!0})):null==s||s()},{flush:"post"}),wn(()=>n.content,()=>{var e,t;null==(t=null==(e=r.value)?void 0:e.updatePopper)||t.call(e)}),t({contentRef:r,isFocusInsideContent:N}),(e,t)=>(Fl(),zl(Ot(Xd),{disabled:!e.teleported,to:_.value},{default:pn(()=>[x.value||!k.value?(Fl(),zl(Nr,{key:0,name:y.value,appear:!w.value,onAfterLeave:E,onBeforeEnter:M,onAfterEnter:L,onBeforeLeave:R,persisted:""},{default:pn(()=>[fn(Gl(Ot(jh),tr({id:Ot(u),ref_key:"contentRef",ref:r},e.$attrs,{"aria-label":e.ariaLabel,"aria-hidden":k.value,"boundaries-padding":e.boundariesPadding,"fallback-placements":e.fallbackPlacements,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,"popper-class":e.popperClass,"popper-style":[e.popperStyle,S.value],"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,visible:C.value,"z-index":e.zIndex,loop:e.loop,onMouseenter:Ot(A),onMouseleave:Ot(O),onBlur:P,onClose:Ot(p)}),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","loop","onMouseenter","onMouseleave","onClose"]),[[Xr,C.value]])]),_:3},8,["name","appear"])):Zl("v-if",!0)]),_:3},8,["disabled","to"]))}});var rm=Kd(lm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const am=["innerHTML"],sm={key:1},im=Gd(Kd(Xn({name:"ElTooltip",__name:"tooltip",props:Zh,emits:Jh,setup(e,{expose:t,emit:n}){const o=e,l=n;om();const r=Wa("tooltip"),a=sf(),s=St(),i=St(),u=()=>{var e;const t=Ot(s);t&&(null==(e=t.popperInstanceRef)||e.update())},c=St(!1),d=St(),{show:p,hide:f,hasUpdateHandler:v}=Xh({indicator:c,toggleReason:d}),{onOpen:h,onClose:m}=(({showAfter:e,hideAfter:t,autoClose:n,open:o,close:l})=>{const{registerTimeout:r}=zh(),{registerTimeout:a,cancelTimeout:s}=zh();return{onOpen:(t,s=Ot(e))=>{r(()=>{o(t);const e=Ot(n);Jc(e)&&e>0&&a(()=>{l(t)},e)},s)},onClose:(e,n=Ot(t))=>{s(),r(()=>{l(e)},n)}}})({showAfter:Ft(o,"showAfter"),hideAfter:Ft(o,"hideAfter"),autoClose:Ft(o,"autoClose"),open:p,close:f}),g=yr(()=>Zc(o.visible)&&!v.value),b=yr(()=>[r.b(),o.popperClass]);return hn(Dh,{controlled:g,id:a,open:vt(c),trigger:Ft(o,"trigger"),onOpen:h,onClose:m,onToggle:e=>{Ot(c)?m(e):h(e)},onShow:()=>{l("show",d.value)},onHide:()=>{l("hide",d.value)},onBeforeShow:()=>{l("before-show",d.value)},onBeforeHide:()=>{l("before-hide",d.value)},updatePopper:u}),wn(()=>o.disabled,e=>{e&&c.value&&(c.value=!1)}),lo(()=>c.value&&f()),vo(()=>{d.value=void 0}),t({popperRef:s,contentRef:i,isFocusInsideContent:e=>{var t;return null==(t=i.value)?void 0:t.isFocusInsideContent(e)},updatePopper:u,onOpen:h,onClose:m,hide:f}),(e,t)=>(Fl(),zl(Ot(Vh),{ref_key:"popperRef",ref:s,role:e.role},{default:pn(()=>[Gl(tm,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering,"focus-on-target":e.focusOnTarget},{default:pn(()=>[e.$slots.default?Ao(e.$slots,"default",{key:0}):Zl("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering","focus-on-target"]),Gl(rm,{ref_key:"contentRef",ref:i,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":b.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo,loop:e.loop},{default:pn(()=>[Ao(e.$slots,"content",{},()=>[e.rawContent?(Fl(),Dl("span",{key:0,innerHTML:e.content},null,8,am)):(Fl(),Dl("span",sm,Z(e.content),1))]),e.showArrow?(Fl(),zl(Ot(If),{key:0})):Zl("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to","loop"])]),_:3},8,["role"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]])),um=Gd(Kd(Xn({name:"ElBadge",__name:"badge",props:Nd({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:[String,Object,Array]},offset:{type:Array,default:[0,0]},badgeClass:{type:String}}),setup(e,{expose:t}){const n=e,o=Wa("badge"),l=yr(()=>n.isDot?"":Jc(n.value)&&Jc(n.max)&&n.max{var e;return[{backgroundColor:n.color,marginRight:ap(-n.offset[0]),marginTop:ap(n.offset[1])},null!=(e=n.badgeStyle)?e:{}]});return t({content:l}),(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Ao(e.$slots,"default"),Gl(Nr,{name:`${Ot(o).namespace.value}-zoom-in-center`,persisted:""},{default:pn(()=>[fn(Kl("sup",{class:q([Ot(o).e("content"),Ot(o).em("content",e.type),Ot(o).is("fixed",!!e.$slots.default),Ot(o).is("dot",e.isDot),Ot(o).is("hide-zero",!e.showZero&&0===e.value),e.badgeClass]),style:V(r.value)},[Ao(e.$slots,"content",{value:l.value},()=>[Xl(Z(l.value),1)])],6),[[Xr,!e.hidden&&(l.value||e.isDot||e.$slots.content)]])]),_:3},8,["name"])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]])),cm=Symbol("buttonGroupContextKey"),dm=({from:e,replacement:t,scope:n,version:o,ref:l,type:r="API"},a)=>{wn(()=>Ot(a),e=>{},{immediate:!0})},pm=["default","primary","success","warning","info","danger","text",""],fm=Nd({size:Bd,disabled:{type:Boolean,default:void 0},type:{type:String,values:pm,default:""},icon:{type:Dp},nativeType:{type:String,values:["button","submit","reset"],default:"button"},loading:Boolean,loadingIcon:{type:Dp,default:()=>Ep},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:[String,Object],default:"button"}}),vm={click:e=>e instanceof MouseEvent};function hm(e,t){(function(e){return"string"==typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function mm(e){return Math.min(1,Math.max(0,e))}function gm(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function bm(e){return e<=1?"".concat(100*Number(e),"%"):e}function ym(e){return 1===e.length?"0"+e:String(e)}function wm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=0,s=(o+l)/2;if(o===l)a=0,r=0;else{var i=o-l;switch(a=s>.5?i/(2-o-l):i/(o+l),o){case e:r=(t-n)/i+(t1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Cm(e,t,n){e=hm(e,255),t=hm(t,255),n=hm(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),r=0,a=o,s=o-l,i=0===o?0:s/o;if(o===l)r=0;else{switch(o){case e:r=(t-n)/s+(t>16,g:(65280&e)>>8,b:255&e}}(t)),this.originalInput=t;var l=Tm(t);this.originalInput=t,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(o=n.format)&&void 0!==o?o:l.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=l.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,o=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=gm(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return 0===this.toHsl().s},e.prototype.toHsv=function(){var e=Cm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=Cm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.v);return 1===this.a?"hsv(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsva(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var e=wm(this.r,this.g,this.b);return{h:360*e.h,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=wm(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.l);return 1===this.a?"hsl(".concat(t,", ").concat(n,"%, ").concat(o,"%)"):"hsla(".concat(t,", ").concat(n,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(e){return void 0===e&&(e=!1),_m(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return void 0===e&&(e=!1),"#"+this.toHex(e)},e.prototype.toHex8=function(e){return void 0===e&&(e=!1),function(e,t,n,o,l){var r,a=[ym(Math.round(e).toString(16)),ym(Math.round(t).toString(16)),ym(Math.round(n).toString(16)),ym((r=o,Math.round(255*parseFloat(r)).toString(16)))];return l&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return void 0===e&&(e=!1),"#"+this.toHex8(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return 1===this.a?"rgb(".concat(e,", ").concat(t,", ").concat(n,")"):"rgba(".concat(e,", ").concat(t,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var e=function(e){return"".concat(Math.round(100*hm(e,255)),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(100*hm(e,255))};return 1===this.a?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+_m(this.r,this.g,this.b,!1),t=0,n=Object.entries(Em);t=0;return t||!o||!e.startsWith("hex")&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this.a?this.toName():this.toRgbString()},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=mm(n.l),new e(n)},e.prototype.brighten=function(t){void 0===t&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-t/100*255))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-t/100*255))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-t/100*255))),new e(n)},e.prototype.darken=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=mm(n.l),new e(n)},e.prototype.tint=function(e){return void 0===e&&(e=10),this.mix("white",e)},e.prototype.shade=function(e){return void 0===e&&(e=10),this.mix("black",e)},e.prototype.desaturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=mm(n.s),new e(n)},e.prototype.saturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=mm(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){void 0===n&&(n=50);var o=this.toRgb(),l=new e(t).toRgb(),r=n/100;return new e({r:(l.r-o.r)*r+o.r,g:(l.g-o.g)*r+o.g,b:(l.b-o.b)*r+o.b,a:(l.a-o.a)*r+o.a})},e.prototype.analogous=function(t,n){void 0===t&&(t=6),void 0===n&&(n=30);var o=this.toHsl(),l=360/n,r=[this];for(o.h=(o.h-(l*t>>1)+720)%360;--t;)o.h=(o.h+l)%360,r.push(new e(o));return r},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var n=this.toHsv(),o=n.h,l=n.s,r=n.v,a=[],s=1/t;t--;)a.push(new e({h:o,s:l,v:r})),r=(r+s)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb();return new e({r:o.r+(n.r-o.r)*n.a,g:o.g+(n.g-o.g)*n.a,b:o.b+(n.b-o.b)*n.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,l=[this],r=360/t,a=1;a{let o={},l=e.color;if(l){const r=l.match(/var\((.*?)\)/);r&&(l=window.getComputedStyle(window.document.documentElement).getPropertyValue(r[1]));const a=new Pm(l),s=e.dark?a.tint(20).toString():Nm(a,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?Nm(a,90):a.tint(90).toString(),"text-color":l,"border-color":e.dark?Nm(a,50):a.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":l,"hover-border-color":l,"active-bg-color":s,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":s}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?Nm(a,90):a.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?Nm(a,50):a.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?Nm(a,80):a.tint(80).toString());else{const r=e.dark?Nm(a,30):a.tint(30).toString(),i=a.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":l,"text-color":i,"border-color":l,"hover-bg-color":r,"hover-text-color":i,"hover-border-color":r,"active-bg-color":s,"active-border-color":s}),t.value){const t=e.dark?Nm(a,50):a.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=t,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=t}}}return o})}(o),a=Wa("button"),{_ref:s,_size:i,_type:u,_disabled:c,_props:d,_plain:p,_round:f,_text:v,shouldAddSpace:h,handleClick:m}=((e,t)=>{dm({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},yr(()=>"text"===e.type));const n=mn(cm,void 0),o=zd("button"),{form:l}=df(),r=vf(yr(()=>null==n?void 0:n.size)),a=hf(),s=St(),i=No(),u=yr(()=>{var t;return e.type||(null==n?void 0:n.type)||(null==(t=o.value)?void 0:t.type)||""}),c=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.autoInsertSpace)?n:null==(t=o.value)?void 0:t.autoInsertSpace)&&l}),d=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.plain)?n:null==(t=o.value)?void 0:t.plain)&&l}),p=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.round)?n:null==(t=o.value)?void 0:t.round)&&l}),f=yr(()=>{var t,n,l;return null!=(l=null!=(n=e.text)?n:null==(t=o.value)?void 0:t.text)&&l}),v=yr(()=>"button"===e.tag?{ariaDisabled:a.value||e.loading,disabled:a.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=yr(()=>{var e;const t=null==(e=i.default)?void 0:e.call(i);if(c.value&&1===(null==t?void 0:t.length)){const e=t[0];if((null==e?void 0:e.type)===Ll){const t=e.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(t.trim())}}return!1});return{_disabled:a,_size:r,_type:u,_ref:s,_props:v,_plain:d,_round:p,_text:f,shouldAddSpace:h,handleClick:n=>{a.value||e.loading?n.stopPropagation():("reset"===e.nativeType&&(null==l||l.resetFields()),t("click",n))}}})(o,l),g=yr(()=>[a.b(),a.m(u.value),a.m(i.value),a.is("disabled",c.value),a.is("loading",o.loading),a.is("plain",p.value),a.is("round",f.value),a.is("circle",o.circle),a.is("text",v.value),a.is("link",o.link),a.is("has-bg",o.bg)]);return t({ref:s,size:i,type:u,disabled:c,shouldAddSpace:h}),(e,t)=>(Fl(),zl(_o(e.tag),tr({ref_key:"_ref",ref:s},Ot(d),{class:g.value,style:Ot(r),onClick:Ot(m)}),{default:pn(()=>[e.loading?(Fl(),Dl(Rl,{key:0},[e.$slots.loading?Ao(e.$slots,"loading",{key:0}):(Fl(),zl(Ot(ip),{key:1,class:q(Ot(a).is("loading"))},{default:pn(()=>[(Fl(),zl(_o(e.loadingIcon)))]),_:1},8,["class"]))],64)):e.icon||e.$slots.icon?(Fl(),zl(Ot(ip),{key:1},{default:pn(()=>[e.icon?(Fl(),zl(_o(e.icon),{key:0})):Ao(e.$slots,"icon",{key:1})]),_:3})):Zl("v-if",!0),e.$slots.default?(Fl(),Dl("span",{key:2,class:q({[Ot(a).em("text","expand")]:Ot(h)})},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)]),_:3},16,["class","style","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]),Bm=Kd(Xn({name:"ElButtonGroup",__name:"button-group",props:{size:fm.size,type:fm.type,direction:{type:String,values:["horizontal","vertical"],default:"horizontal"}},setup(e){const t=e;hn(cm,pt({size:Ft(t,"size"),type:Ft(t,"type")}));const n=Wa("button");return(e,o)=>(Fl(),Dl("div",{class:q([Ot(n).b("group"),Ot(n).bm("group",t.direction)])},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const Fm=Gd(Im,{ButtonGroup:Bm});Yd(Bm);const $m=Gd(Kd(Xn({name:"ElCard",__name:"card",props:Nd({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:[String,Object,Array],default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),setup(e){const t=zd("card"),n=Wa("card");return(e,o)=>{var l;return Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).is(`${e.shadow||(null==(l=Ot(t))?void 0:l.shadow)||"always"}-shadow`)])},[e.$slots.header||e.header?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("header"),e.headerClass])},[Ao(e.$slots,"header",{},()=>[Xl(Z(e.header),1)])],2)):Zl("v-if",!0),Kl("div",{class:q([Ot(n).e("body"),e.bodyClass]),style:V(e.bodyStyle)},[Ao(e.$slots,"default")],6),e.$slots.footer||e.footer?(Fl(),Dl("div",{key:1,class:q([Ot(n).e("footer"),e.footerClass])},[Ao(e.$slots,"footer",{},()=>[Xl(Z(e.footer),1)])],2)):Zl("v-if",!0)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]));var jm=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(jm||{});const Vm=e=>{const t=f(e)?e:[e],n=[];return t.forEach(e=>{var t;f(e)?n.push(...Vm(e)):Hl(e)&&(null==(t=e.component)?void 0:t.subTree)?n.push(e,...Vm(e.component.subTree)):Hl(e)&&f(e.children)?n.push(...Vm(e.children)):Hl(e)&&2===e.shapeFlag?n.push(...Vm(e.type())):n.push(e)}),n},Dm=(e,t)=>{const n=kt({}),o=kt([]),l=new WeakMap,r=()=>{o.value=((e,t,n)=>Vm(e.subTree).filter(e=>{var n;return Hl(e)&&(null==(n=e.type)?void 0:n.name)===t&&!!e.component}).map(e=>e.component.uid).map(e=>n[e]).filter(e=>!!e))(e,t,n.value)},a=e=>e.render();return{children:o,addChild:e=>{n.value[e.uid]=e,At(n),co(()=>{const t=e.getVnode().el,o=t.parentNode;if(!l.has(o)){l.set(o,[]);const e=o.insertBefore.bind(o);o.insertBefore=(t,r)=>(l.get(o).some(e=>t===e||r===e)&&At(n),e(t,r))}l.get(o).push(t)})},removeChild:e=>{delete n.value[e.uid],At(n);const t=e.getVnode().el,o=t.parentNode,r=l.get(o),a=r.indexOf(t);r.splice(a,1)},ChildrenSorter:Xn({setup:(e,{slots:t})=>()=>(r(),t.default?wr(a,{render:t.default}):null)})}},zm={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:{type:Boolean,default:void 0},checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:Bd,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},ariaLabel:String,...Qp(["ariaControls"])},Hm={[Zd]:e=>b(e)||Jc(e)||Zc(e),change:e=>b(e)||Jc(e)||Zc(e)},Wm=Symbol("checkboxGroupContextKey"),qm=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:l,isLabeledByFormItem:r})=>{const a=mn(Wm,void 0),{formItem:s}=df(),{emit:i}=ar();function u(t){var n,o,l,r;return[!0,e.trueValue,e.trueLabel].includes(t)?null==(o=null!=(n=e.trueValue)?n:e.trueLabel)||o:null!=(r=null!=(l=e.falseValue)?l:e.falseLabel)&&r}const c=yr(()=>(null==a?void 0:a.validateEvent)||e.validateEvent);return wn(()=>e.modelValue,()=>{c.value&&(null==s||s.validate("change").catch(e=>{}))}),{handleChange:function(e){if(n.value)return;const t=e.target;i(Jd,u(t.checked),e)},onClickRoot:async function(a){n.value||o.value||l.value||!r.value||a.composedPath().some(e=>"LABEL"===e.tagName)||(t.value=u([!1,e.falseValue,e.falseLabel].includes(t.value)),await tn(),function(e,t){i(Jd,u(e),t)}(t.value,a))}}},Um=(e,t)=>{const{formItem:n}=df(),{model:o,isGroup:l,isLimitExceeded:r}=(e=>{const t=St(!1),{emit:n}=ar(),o=mn(Wm,void 0),l=yr(()=>!1===Xc(o)),r=St(!1),a=yr({get(){var n,r;return l.value?null==(n=null==o?void 0:o.modelValue)?void 0:n.value:null!=(r=e.modelValue)?r:t.value},set(e){var s,i;l.value&&f(e)?(r.value=void 0!==(null==(s=null==o?void 0:o.max)?void 0:s.value)&&e.length>(null==o?void 0:o.max.value)&&e.length>a.value.length,!1===r.value&&(null==(i=null==o?void 0:o.changeEvent)||i.call(o,e))):(n(Zd,e),t.value=e)}});return{model:a,isGroup:l,isLimitExceeded:r}})(e),{isFocused:a,isChecked:s,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,actualValue:d}=((e,t,{model:n})=>{const o=mn(Wm,void 0),l=St(!1),r=yr(()=>ed(e.value)?e.label:e.value),a=yr(()=>{const t=n.value;return Zc(t)?t:f(t)?w(r.value)?t.map(wt).some(e=>jc(e,r.value)):t.map(wt).includes(r.value):null!=t?t===e.trueValue||t===e.trueLabel:!!t});return{checkboxButtonSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value}),{prop:!0}),isChecked:a,isFocused:l,checkboxSize:vf(yr(()=>{var e;return null==(e=null==o?void 0:o.size)?void 0:e.value})),hasOwnLabel:yr(()=>!!t.default||!ed(r.value)),actualValue:r}})(e,t,{model:o}),{isDisabled:p}=(({model:e,isChecked:t})=>{const n=mn(Wm,void 0),o=mn(uf,void 0),l=yr(()=>{var o,l;const r=null==(o=null==n?void 0:n.max)?void 0:o.value,a=null==(l=null==n?void 0:n.min)?void 0:l.value;return!Xc(r)&&e.value.length>=r&&!t.value||!Xc(a)&&e.value.length<=a&&t.value});return{isDisabled:hf(yr(()=>{var e,t;return void 0===n?null!=(e=null==o?void 0:o.disabled)?e:l.value:(null==(t=n.disabled)?void 0:t.value)||l.value})),isLimitDisabled:l}})({model:o,isChecked:s}),{inputId:v,isLabeledByFormItem:h}=pf(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:l}),{handleChange:m,onClickRoot:g}=qm(e,{model:o,isLimitExceeded:r,hasOwnLabel:c,isDisabled:p,isLabeledByFormItem:h});var b,y;return e.checked&&(f(o.value)&&!o.value.includes(d.value)?o.value.push(d.value):o.value=null==(y=null!=(b=e.trueValue)?b:e.trueLabel)||y),dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>l.value&&ed(e.value))),dm({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.trueLabel)),dm({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},yr(()=>!!e.falseLabel)),{inputId:v,isLabeledByFormItem:h,isChecked:s,isDisabled:p,isFocused:a,checkboxButtonSize:i,checkboxSize:u,hasOwnLabel:c,model:o,actualValue:d,handleChange:m,onClickRoot:g}},Km=["id","indeterminate","name","tabindex","disabled"];var Gm=Kd(Xn({name:"ElCheckbox",__name:"checkbox",props:zm,emits:Hm,setup(e){const t=e,n=No(),{inputId:o,isLabeledByFormItem:l,isChecked:r,isDisabled:a,isFocused:s,checkboxSize:i,hasOwnLabel:u,model:c,actualValue:d,handleChange:p,onClickRoot:f}=Um(t,n),v=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:d.value}}),h=Wa("checkbox"),m=yr(()=>[h.b(),h.m(i.value),h.is("disabled",a.value),h.is("bordered",t.border),h.is("checked",r.value)]),g=yr(()=>[h.e("input"),h.is("disabled",a.value),h.is("checked",r.value),h.is("indeterminate",t.indeterminate),h.is("focus",s.value)]);return(e,t)=>(Fl(),zl(_o(!Ot(u)&&Ot(l)?"span":"label"),{for:!Ot(u)&&Ot(l)?null:Ot(o),class:q(m.value),"aria-controls":e.indeterminate?e.ariaControls:null,"aria-checked":e.indeterminate?"mixed":void 0,"aria-label":e.ariaLabel,onClick:Ot(f)},{default:pn(()=>[Kl("span",{class:q(g.value)},[fn(Kl("input",tr({id:Ot(o),"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:Ot(h).e("original"),type:"checkbox",indeterminate:e.indeterminate,name:e.name,tabindex:e.tabindex,disabled:Ot(a)},v.value,{onChange:t[1]||(t[1]=(...e)=>Ot(p)&&Ot(p)(...e)),onFocus:t[2]||(t[2]=e=>s.value=!0),onBlur:t[3]||(t[3]=e=>s.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Km),[[Sa,Ot(c)]]),Kl("span",{class:q(Ot(h).e("inner"))},null,2)],2),Ot(u)?(Fl(),Dl("span",{key:0,class:q(Ot(h).e("label"))},[Ao(e.$slots,"default"),e.$slots.default?Zl("v-if",!0):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.label),1)],64))],2)):Zl("v-if",!0)]),_:3},8,["for","class","aria-controls","aria-checked","aria-label","onClick"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const Ym=["name","tabindex","disabled"];var Xm=Kd(Xn({name:"ElCheckboxButton",__name:"checkbox-button",props:zm,emits:Hm,setup(e){const t=e,n=No(),{isFocused:o,isChecked:l,isDisabled:r,checkboxButtonSize:a,model:s,actualValue:i,handleChange:u}=Um(t,n),c=yr(()=>{var e,n,o,l;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":null==(n=null!=(e=t.trueValue)?e:t.trueLabel)||n,"false-value":null!=(l=null!=(o=t.falseValue)?o:t.falseLabel)&&l}:{value:i.value}}),d=mn(Wm,void 0),p=Wa("checkbox"),f=yr(()=>{var e,t,n,o;const l=null!=(t=null==(e=null==d?void 0:d.fill)?void 0:e.value)?t:"";return{backgroundColor:l,borderColor:l,color:null!=(o=null==(n=null==d?void 0:d.textColor)?void 0:n.value)?o:"",boxShadow:l?`-1px 0 0 0 ${l}`:void 0}}),v=yr(()=>[p.b("button"),p.bm("button",a.value),p.is("disabled",r.value),p.is("checked",l.value),p.is("focus",o.value)]);return(e,t)=>(Fl(),Dl("label",{class:q(v.value)},[fn(Kl("input",tr({"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:Ot(p).be("button","original"),type:"checkbox",name:e.name,tabindex:e.tabindex,disabled:Ot(r)},c.value,{onChange:t[1]||(t[1]=(...e)=>Ot(u)&&Ot(u)(...e)),onFocus:t[2]||(t[2]=e=>o.value=!0),onBlur:t[3]||(t[3]=e=>o.value=!1),onClick:t[4]||(t[4]=Ra(()=>{},["stop"]))}),null,16,Ym),[[Sa,Ot(s)]]),e.$slots.default||e.label?(Fl(),Dl("span",{key:0,class:q(Ot(p).be("button","inner")),style:V(Ot(l)?f.value:void 0)},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],6)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const Zm=Nd({modelValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:void 0},min:Number,max:Number,size:Bd,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>Jm},type:{type:String,values:["checkbox","button"],default:"checkbox"},...Qp(["ariaLabel"])}),Jm={label:"label",value:"value",disabled:"disabled"},Qm=Xn({name:"ElCheckboxGroup",__name:"checkbox-group",props:Zm,emits:{[Zd]:e=>f(e),change:e=>f(e)},setup(e,{emit:t}){const n=e,o=t,l=Wa("checkbox"),r=hf(),{formItem:a}=df(),{inputId:s,isLabeledByFormItem:i}=pf(n,{formItemContext:a}),u=async e=>{o(Zd,e),await tn(),o(Jd,e)},c=yr({get:()=>n.modelValue,set(e){u(e)}}),d=yr(()=>({...Jm,...n.props})),p=yr(()=>"button"===n.type?Xm:Gm);return hn(Wm,{...Yc(Nt(n),["size","min","max","validateEvent","fill","textColor"]),disabled:r,modelValue:c,changeEvent:u}),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==a||a.validate("change").catch(e=>{}))}),(e,t)=>{var n;return Fl(),zl(_o(e.tag),{id:Ot(s),class:q(Ot(l).b("group")),role:"group","aria-label":Ot(i)?void 0:e.ariaLabel||"checkbox-group","aria-labelledby":Ot(i)?null==(n=Ot(a))?void 0:n.labelId:void 0},{default:pn(()=>[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var eg=Kd(Qm,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const tg=Gd(Gm,{CheckboxButton:Xm,CheckboxGroup:eg});Yd(Xm);const ng=Yd(eg),og=Nd({modelValue:{type:[String,Number,Boolean],default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},label:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],default:void 0},name:{type:String,default:void 0}}),lg=Nd({...og,border:Boolean}),rg={[Zd]:e=>b(e)||Jc(e)||Zc(e),[Jd]:e=>b(e)||Jc(e)||Zc(e)},ag=Symbol("radioGroupKey"),sg=(e,t)=>{const n=St(),o=mn(ag,void 0),l=yr(()=>!!o),r=yr(()=>ed(e.value)?e.label:e.value),a=yr({get:()=>l.value?o.modelValue:e.modelValue,set(a){l.value?o.changeEvent(a):t&&t(Zd,a),n.value.checked=e.modelValue===r.value}}),s=vf(yr(()=>null==o?void 0:o.size)),i=hf(yr(()=>null==o?void 0:o.disabled)),u=St(!1),c=yr(()=>i.value||l.value&&a.value!==r.value?-1:0);return dm({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-radio",ref:"https://element-plus.org/en-US/component/radio.html"},yr(()=>l.value&&ed(e.value))),{radioRef:n,isGroup:l,radioGroup:o,focus:u,size:s,disabled:i,tabIndex:c,modelValue:a,actualValue:r}},ig=["value","name","disabled","checked"];var ug=Kd(Xn({name:"ElRadio",__name:"radio",props:lg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),{radioRef:r,radioGroup:a,focus:s,size:i,disabled:u,modelValue:c,actualValue:d}=sg(n,o);function p(){tn(()=>o(Jd,c.value))}return(e,t)=>{var n;return Fl(),Dl("label",{class:q([Ot(l).b(),Ot(l).is("disabled",Ot(u)),Ot(l).is("focus",Ot(s)),Ot(l).is("bordered",e.border),Ot(l).is("checked",Ot(c)===Ot(d)),Ot(l).m(Ot(i))])},[Kl("span",{class:q([Ot(l).e("input"),Ot(l).is("disabled",Ot(u)),Ot(l).is("checked",Ot(c)===Ot(d))])},[fn(Kl("input",{ref_key:"radioRef",ref:r,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(c)?c.value=e:null),class:q(Ot(l).e("original")),value:Ot(d),name:e.name||(null==(n=Ot(a))?void 0:n.name),disabled:Ot(u),checked:Ot(c)===Ot(d),type:"radio",onFocus:t[1]||(t[1]=e=>s.value=!0),onBlur:t[2]||(t[2]=e=>s.value=!1),onChange:p,onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,ig),[[Ea,Ot(c)]]),Kl("span",{class:q(Ot(l).e("inner"))},null,2)],2),Kl("span",{class:q(Ot(l).e("label")),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],34)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);const cg=Nd({...og}),dg=["value","name","disabled"];var pg=Kd(Xn({name:"ElRadioButton",__name:"radio-button",props:cg,setup(e){const t=e,n=Wa("radio"),{radioRef:o,focus:l,size:r,disabled:a,modelValue:s,radioGroup:i,actualValue:u}=sg(t),c=yr(()=>({backgroundColor:(null==i?void 0:i.fill)||"",borderColor:(null==i?void 0:i.fill)||"",boxShadow:(null==i?void 0:i.fill)?`-1px 0 0 0 ${i.fill}`:"",color:(null==i?void 0:i.textColor)||""}));return(e,t)=>{var d;return Fl(),Dl("label",{class:q([Ot(n).b("button"),Ot(n).is("active",Ot(s)===Ot(u)),Ot(n).is("disabled",Ot(a)),Ot(n).is("focus",Ot(l)),Ot(n).bm("button",Ot(r))])},[fn(Kl("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":t[0]||(t[0]=e=>_t(s)?s.value=e:null),class:q(Ot(n).be("button","original-radio")),value:Ot(u),type:"radio",name:e.name||(null==(d=Ot(i))?void 0:d.name),disabled:Ot(a),onFocus:t[1]||(t[1]=e=>l.value=!0),onBlur:t[2]||(t[2]=e=>l.value=!1),onClick:t[3]||(t[3]=Ra(()=>{},["stop"]))},null,42,dg),[[Ea,Ot(s)]]),Kl("span",{class:q(Ot(n).be("button","inner")),style:V(Ot(s)===Ot(u)?c.value:{}),onKeydown:t[4]||(t[4]=Ra(()=>{},["stop"]))},[Ao(e.$slots,"default",{},()=>[Xl(Z(e.label),1)])],38)],2)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue"]]);const fg=Nd({id:{type:String,default:void 0},size:Bd,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},fill:{type:String,default:""},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0},options:{type:Array},props:{type:Object,default:()=>vg},type:{type:String,values:["radio","button"],default:"radio"},...Qp(["ariaLabel"])}),vg={label:"label",value:"value",disabled:"disabled"},hg=["id","aria-label","aria-labelledby"],mg=Xn({name:"ElRadioGroup",__name:"radio-group",props:fg,emits:rg,setup(e,{emit:t}){const n=e,o=t,l=Wa("radio"),r=sf(),a=St(),{formItem:s}=df(),{inputId:i,isLabeledByFormItem:u}=pf(n,{formItemContext:s});co(()=>{const e=a.value.querySelectorAll("[type=radio]"),t=e[0];!Array.from(e).some(e=>e.checked)&&t&&(t.tabIndex=0)});const c=yr(()=>n.name||r.value),d=yr(()=>({...vg,...n.props})),p=yr(()=>"button"===n.type?pg:ug);return hn(ag,pt({...Nt(n),changeEvent:e=>{o(Zd,e),tn(()=>o(Jd,e))},name:c})),wn(()=>n.modelValue,(e,t)=>{n.validateEvent&&!jc(e,t)&&(null==s||s.validate("change").catch(e=>{}))}),(e,t)=>(Fl(),Dl("div",{id:Ot(i),ref_key:"radioGroupRef",ref:a,class:q(Ot(l).b("group")),role:"radiogroup","aria-label":Ot(u)?void 0:e.ariaLabel||"radio-group","aria-labelledby":Ot(u)?Ot(s).labelId:void 0},[Ao(e.$slots,"default",{},()=>[(Fl(!0),Dl(Rl,null,Eo(e.options,(e,t)=>(Fl(),zl(_o(p.value),tr({key:t},{ref_for:!0},(e=>{const{label:t,value:n,disabled:o}=d.value,l={label:e[t],value:e[n],disabled:e[o]};return{...Uc(e,[t,n,o]),...l}})(e)),null,16))),128))])],10,hg))}});var gg=Kd(mg,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue"]]);Gd(ug,{RadioButton:pg,RadioGroup:gg});const bg=Yd(gg),yg=Yd(pg),wg=Nd({type:{type:String,values:["primary","success","info","warning","danger"],default:"primary"},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:Id},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),xg=["aria-label"],Cg=["aria-label"],_g=Gd(Kd(Xn({name:"ElTag",__name:"tag",props:wg,emits:{close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},setup(e,{emit:t}){const n=e,o=t,l=vf(),{t:r}=Rd(),a=Wa("tag"),s=yr(()=>{const{type:e,hit:t,effect:o,closable:r,round:s}=n;return[a.b(),a.is("closable",r),a.m(e||"primary"),a.m(l.value),a.m(o),a.is("hit",t),a.is("round",s)]}),i=e=>{o("close",e)},u=e=>{o("click",e)},c=e=>{var t,n,o;(null==(o=null==(n=null==(t=null==e?void 0:e.component)?void 0:t.subTree)?void 0:n.component)?void 0:o.bum)&&(e.component.subTree.component.bum=null)};return(e,t)=>e.disableTransitions?(Fl(),Dl("span",{key:0,class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,xg)):Zl("v-if",!0)],6)):(Fl(),zl(Nr,{key:1,name:`${Ot(a).namespace.value}-zoom-in-center`,appear:"",onVnodeMounted:c},{default:pn(()=>[Kl("span",{class:q(s.value),style:V({backgroundColor:e.color}),onClick:u},[Kl("span",{class:q(Ot(a).e("content"))},[Ao(e.$slots,"default")],2),e.closable?(Fl(),Dl("button",{key:0,"aria-label":Ot(r)("el.tag.close"),class:q(Ot(a).e("close")),type:"button",onClick:Ra(i,["stop"])},[Gl(Ot(ip),null,{default:pn(()=>[Gl(Ot(bp))]),_:1})],10,Cg)):Zl("v-if",!0)],6)]),_:3},8,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]])),Sg=new Map;if(ld){let e;document.addEventListener("mousedown",t=>e=t),document.addEventListener("mouseup",t=>{if(e){for(const n of Sg.values())for(const{documentHandler:o}of n)o(t,e);e=void 0}})}function kg(e,t){let n=[];return f(t.arg)?n=t.arg:Qc(t.arg)&&n.push(t.arg),function(o,l){const r=t.instance.popperRef,a=o.target,s=null==l?void 0:l.target,i=!t||!t.instance,u=!a||!s,c=e.contains(a)||e.contains(s),d=e===a,p=n.length&&n.some(e=>null==e?void 0:e.contains(a))||n.length&&n.includes(s),f=r&&(r.contains(a)||r.contains(s));i||u||c||d||p||f||t.value(o,l)}}const Eg={beforeMount(e,t){Sg.has(e)||Sg.set(e,[]),Sg.get(e).push({documentHandler:kg(e,t),bindingFn:t.value})},updated(e,t){Sg.has(e)||Sg.set(e,[]);const n=Sg.get(e),o=n.findIndex(e=>e.bindingFn===t.oldValue),l={documentHandler:kg(e,t),bindingFn:t.value};o>=0?n.splice(o,1,l):n.push(l)},unmounted(e){Sg.delete(e)}},Tg=Nd({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:[Number,Object],default:()=>({})},sm:{type:[Number,Object],default:()=>({})},md:{type:[Number,Object],default:()=>({})},lg:{type:[Number,Object],default:()=>({})},xl:{type:[Number,Object],default:()=>({})}}),Ag=Symbol("rowContextKey"),Og=Gd(Kd(Xn({name:"ElCol",__name:"col",props:Tg,setup(e){const t=e,{gutter:n}=mn(Ag,{gutter:yr(()=>0)}),o=Wa("col"),l=yr(()=>{const e={};return n.value&&(e.paddingLeft=e.paddingRight=n.value/2+"px"),e}),r=yr(()=>{const e=[];return["span","offset","pull","push"].forEach(n=>{const l=t[n];Jc(l)&&("span"===n?e.push(o.b(`${t[n]}`)):l>0&&e.push(o.b(`${n}-${t[n]}`)))}),["xs","sm","md","lg","xl"].forEach(n=>{Jc(t[n])?e.push(o.b(`${n}-${t[n]}`)):w(t[n])&&Object.entries(t[n]).forEach(([t,l])=>{e.push("span"!==t?o.b(`${n}-${t}-${l}`):o.b(`${n}-${l}`))})}),n.value&&e.push(o.is("guttered")),[o.b(),e]});return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]])),Mg=Gd(Kd(Xn({name:"ElCollapseTransition",__name:"collapse-transition",setup(e){const t=Wa("collapse-transition"),n=e=>{e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},o={beforeEnter(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height&&(e.dataset.elExistsHeight=e.style.height),e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){requestAnimationFrame(()=>{e.dataset.oldOverflow=e.style.overflow,e.dataset.elExistsHeight?e.style.maxHeight=e.dataset.elExistsHeight:0!==e.scrollHeight?e.style.maxHeight=`${e.scrollHeight}px`:e.style.maxHeight=0,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"})},afterEnter(e){e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow},enterCancelled(e){n(e)},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.maxHeight=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){n(e)},leaveCancelled(e){n(e)}};return(e,n)=>(Fl(),zl(Nr,tr({name:Ot(t).b()},function(e){const t={};for(const n in e)t[P(n)]=e[n];return t}(o)),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16,["name"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]])),Rg={placement:"top"},Lg=e=>{if(!e)return{onClick:r,onMousedown:r,onMouseup:r};let t=!1,n=!1;return{onClick:o=>{t&&n&&e(o),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}},Pg=Nd({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:[String,Array,Object]},zIndex:{type:[String,Number]}}),Ng=Xn({name:"ElOverlay",props:Pg,emits:{click:e=>e instanceof MouseEvent},setup(e,{slots:t,emit:n}){const o=Wa("overlay"),{onClick:l,onMousedown:r,onMouseup:a}=Lg(e.customMaskEvent?void 0:e=>{n("click",e)});return()=>e.mask?Gl("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:l,onMousedown:r,onMouseup:a},[Ao(t,"default")],jm.STYLE|jm.CLASS|jm.PROPS,["onClick","onMouseup","onMousedown"]):wr("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ao(t,"default")])}}),Ig=Symbol("dialogInjectionKey"),Bg="dialog-fade",Fg=Nd({center:Boolean,alignCenter:{type:Boolean,default:void 0},closeIcon:{type:Dp},draggable:{type:Boolean,default:void 0},overflow:{type:Boolean,default:void 0},fullscreen:Boolean,headerClass:String,bodyClass:String,footerClass:String,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),$g=(e,t,n,o)=>{const l={offsetX:0,offsetY:0},r=St(!1),a=(t,n)=>{if(e.value){const{offsetX:r,offsetY:a}=l,s=e.value.getBoundingClientRect(),i=s.left,u=s.top,c=s.width,d=s.height,p=document.documentElement.clientWidth,f=document.documentElement.clientHeight,v=-i+r,h=-u+a,m=p-i-c+r,g=f-u-(d{const t=e.clientX,n=e.clientY,{offsetX:o,offsetY:s}=l,i=e=>{r.value||(r.value=!0);const l=o+e.clientX-t,i=s+e.clientY-n;a(l,i)},u=()=>{r.value=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},i=()=>{t.value&&e.value&&(t.value.removeEventListener("mousedown",s),window.removeEventListener("resize",u))},u=()=>{const{offsetX:e,offsetY:t}=l;a(e,t)};return co(()=>{yn(()=>{n.value?t.value&&e.value&&(t.value.addEventListener("mousedown",s),window.addEventListener("resize",u)):i()})}),vo(()=>{i()}),{isDragging:r,resetPosition:()=>{l.offsetX=0,l.offsetY=0,e.value&&(e.value.style.transform="")},updatePosition:u}},jg=["aria-level"],Vg=["aria-label"],Dg=["id"];var zg=Kd(Xn({name:"ElDialogContent",__name:"dialog-content",props:Fg,emits:{close:()=>!0},setup(e,{expose:t}){const{t:n}=Rd(),{Close:o}=zp,l=e,{dialogRef:r,headerRef:a,bodyId:s,ns:i,style:u}=mn(Ig),{focusTrapRef:c}=mn(Gf),d=((...e)=>t=>{e.forEach(e=>{e.value=t})})(c,r),p=yr(()=>!!l.draggable),f=yr(()=>!!l.overflow),{resetPosition:v,updatePosition:h,isDragging:m}=$g(r,a,p,f),g=yr(()=>[i.b(),i.is("fullscreen",l.fullscreen),i.is("draggable",p.value),i.is("dragging",m.value),i.is("align-center",!!l.alignCenter),{[i.m("center")]:l.center}]);return t({resetPosition:v,updatePosition:h}),(e,t)=>(Fl(),Dl("div",{ref:Ot(d),class:q(g.value),style:V(Ot(u)),tabindex:"-1"},[Kl("header",{ref_key:"headerRef",ref:a,class:q([Ot(i).e("header"),e.headerClass,{"show-close":e.showClose}])},[Ao(e.$slots,"header",{},()=>[Kl("span",{role:"heading","aria-level":e.ariaLevel,class:q(Ot(i).e("title"))},Z(e.title),11,jg)]),e.showClose?(Fl(),Dl("button",{key:0,"aria-label":Ot(n)("el.dialog.close"),class:q(Ot(i).e("headerbtn")),type:"button",onClick:t[0]||(t[0]=t=>e.$emit("close"))},[Gl(Ot(ip),{class:q(Ot(i).e("close"))},{default:pn(()=>[(Fl(),zl(_o(e.closeIcon||Ot(o))))]),_:1},8,["class"])],10,Vg)):Zl("v-if",!0)],2),Kl("div",{id:Ot(s),class:q([Ot(i).e("body"),e.bodyClass])},[Ao(e.$slots,"default")],10,Dg),e.$slots.footer?(Fl(),Dl("footer",{key:0,class:q([Ot(i).e("footer"),e.footerClass])},[Ao(e.$slots,"footer")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);const Hg=Nd({...Fg,appendToBody:Boolean,appendTo:{type:Ud.to.type,default:"body"},beforeClose:{type:Function},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalPenetrable:Boolean,openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,headerClass:String,bodyClass:String,footerClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:Boolean,headerAriaLevel:{type:String,default:"2"},transition:{type:[String,Object],default:void 0}}),Wg=(e,t={})=>{_t(e)||xd("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||Wa("popup"),o=yr(()=>n.bm("parent","hidden"));let l=0,r=!1,a="0";const s=()=>{setTimeout(()=>{"undefined"!=typeof document&&r&&document&&(document.body.style.width=a,lp(document.body,o.value))},200)};wn(e,e=>{if(!e)return void s();r=!np(document.body,o.value),r&&(a=document.body.style.width,op(document.body,o.value)),l=(e=>{var t;if(!ld)return 0;if(void 0!==sp)return sp;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const l=document.createElement("div");l.style.width="100%",n.appendChild(l);const r=l.offsetWidth;return null==(t=n.parentNode)||t.removeChild(n),sp=o-r,sp})(n.namespace.value);const t=document.documentElement.clientHeight0&&(t||"scroll"===i)&&r&&(document.body.style.width=`calc(100% - ${l}px)`)}),le(()=>s())},qg=["aria-label","aria-labelledby","aria-describedby"],Ug=Xn({name:"ElDialog",inheritAttrs:!1,__name:"dialog",props:Hg,emits:{open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Zd]:e=>Zc(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},setup(e,{expose:t}){const n=e,o=No();dm({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},yr(()=>!!o.title));const l=Wa("dialog"),r=St(),a=St(),s=St(),{visible:i,titleId:u,bodyId:c,style:d,overlayDialogStyle:p,rendered:v,transitionConfig:h,zIndex:m,_draggable:b,_alignCenter:y,_overflow:x,handleClose:C,onModalClick:_,onOpenAutoFocus:S,onCloseAutoFocus:k,onCloseRequested:E,onFocusoutPrevented:T,closing:A}=((e,t)=>{var n;const o=ar().emit,{nextZIndex:l}=Ed();let r="";const a=sf(),s=sf(),i=St(!1),u=St(!1),c=St(!1),d=St(null!=(n=e.zIndex)?n:l()),p=St(!1);let v,h;const m=zd(),b=yr(()=>{var e,t;return null!=(t=null==(e=m.value)?void 0:e.namespace)?t:Va}),y=yr(()=>{var e;return null==(e=m.value)?void 0:e.dialog}),x=yr(()=>{const t={},n=`--${b.value}-dialog`;if(!e.fullscreen){e.top&&(t[`${n}-margin-top`]=e.top);const o=ap(e.width);o&&(t[`${n}-width`]=o)}return t}),C=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.draggable)?n:null==(t=y.value)?void 0:t.draggable)&&o&&!e.fullscreen}),_=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.alignCenter)?n:null==(t=y.value)?void 0:t.alignCenter)&&o}),S=yr(()=>{var t,n,o;return null!=(o=null!=(n=e.overflow)?n:null==(t=y.value)?void 0:t.overflow)&&o}),k=yr(()=>_.value?{display:"flex"}:{}),E=yr(()=>{var t,n,o;const l=null!=(o=null!=(n=e.transition)?n:null==(t=y.value)?void 0:t.transition)?o:Bg,r={name:l,onAfterEnter:T,onBeforeLeave:O,onAfterLeave:A};if(w(l)){const e={...l},t=(e,t)=>n=>{f(e)?e.forEach(e=>{g(e)&&e(n)}):g(e)&&e(n),t()};return e.onAfterEnter=t(e.onAfterEnter,T),e.onBeforeLeave=t(e.onBeforeLeave,O),e.onAfterLeave=t(e.onAfterLeave,A),e.name||(e.name=Bg),e}return r});function T(){o("opened")}function A(){o("closed"),o(Zd,!1),e.destroyOnClose&&(c.value=!1),p.value=!1}function O(){p.value=!0,o("close")}function M(){null==h||h(),null==v||v(),e.openDelay&&e.openDelay>0?({stop:v}=dd(()=>P(),e.openDelay)):P()}function R(){null==v||v(),null==h||h(),e.closeDelay&&e.closeDelay>0?({stop:h}=dd(()=>N(),e.closeDelay)):N()}function L(){e.beforeClose?e.beforeClose(function(e){e||(u.value=!0,i.value=!1)}):R()}function P(){ld&&(i.value=!0)}function N(){i.value=!1}return e.lockScroll&&Wg(i),wn(()=>e.zIndex,()=>{var t;d.value=null!=(t=e.zIndex)?t:l()}),wn(()=>e.modelValue,n=>{var r;n?(u.value=!1,M(),c.value=!0,d.value=null!=(r=e.zIndex)?r:l(),tn(()=>{o("open"),t.value&&(t.value.parentElement.scrollTop=0,t.value.parentElement.scrollLeft=0,t.value.scrollTop=0)})):i.value&&R()}),wn(()=>e.fullscreen,e=>{t.value&&(e?(r=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=r)}),co(()=>{e.modelValue&&(i.value=!0,c.value=!0,M())}),{afterEnter:T,afterLeave:A,beforeLeave:O,handleClose:L,onModalClick:function(){e.closeOnClickModal&&L()},close:R,doClose:N,onOpenAutoFocus:function(){o("openAutoFocus")},onCloseAutoFocus:function(){o("closeAutoFocus")},onCloseRequested:function(){e.closeOnPressEscape&&L()},onFocusoutPrevented:function(e){var t;"pointer"===(null==(t=e.detail)?void 0:t.focusReason)&&e.preventDefault()},titleId:a,bodyId:s,closed:u,style:x,overlayDialogStyle:k,rendered:c,visible:i,zIndex:d,transitionConfig:E,_draggable:C,_alignCenter:_,_overflow:S,closing:p}})(n,r);hn(Ig,{dialogRef:r,headerRef:a,bodyId:c,ns:l,rendered:v,style:d});const O=Lg(_),M=yr(()=>n.modalPenetrable&&!n.modal&&!n.fullscreen);return t({visible:i,dialogContentRef:s,resetPosition:()=>{var e;null==(e=s.value)||e.resetPosition()},handleClose:C}),(e,t)=>(Fl(),zl(Ot(Xd),{to:e.appendTo,disabled:"body"===e.appendTo&&!e.appendToBody},{default:pn(()=>[Gl(Nr,tr(Ot(h),{persisted:""}),{default:pn(()=>{var n;return[fn(Gl(Ot(Ng),{"custom-mask-event":"",mask:e.modal,"overlay-class":[null!=(n=e.modalClass)?n:"",`${Ot(l).namespace.value}-modal-dialog`,Ot(l).is("penetrable",M.value)],"z-index":Ot(m)},{default:pn(()=>[Kl("div",{role:"dialog","aria-modal":"true","aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:Ot(u),"aria-describedby":Ot(c),class:q([`${Ot(l).namespace.value}-overlay-dialog`,Ot(l).is("closing",Ot(A))]),style:V(Ot(p)),onClick:t[0]||(t[0]=(...e)=>Ot(O).onClick&&Ot(O).onClick(...e)),onMousedown:t[1]||(t[1]=(...e)=>Ot(O).onMousedown&&Ot(O).onMousedown(...e)),onMouseup:t[2]||(t[2]=(...e)=>Ot(O).onMouseup&&Ot(O).onMouseup(...e))},[Gl(Ot(vv),{loop:"",trapped:Ot(i),"focus-start-el":"container",onFocusAfterTrapped:Ot(S),onFocusAfterReleased:Ot(k),onFocusoutPrevented:Ot(T),onReleaseRequested:Ot(E)},{default:pn(()=>[Ot(v)?(Fl(),zl(zg,tr({key:0,ref_key:"dialogContentRef",ref:s},e.$attrs,{center:e.center,"align-center":Ot(y),"close-icon":e.closeIcon,draggable:Ot(b),overflow:Ot(x),fullscreen:e.fullscreen,"header-class":e.headerClass,"body-class":e.bodyClass,"footer-class":e.footerClass,"show-close":e.showClose,title:e.title,"aria-level":e.headerAriaLevel,onClose:Ot(C)}),To({header:pn(()=>[e.$slots.title?Ao(e.$slots,"title",{key:1}):Ao(e.$slots,"header",{key:0,close:Ot(C),titleId:Ot(u),titleClass:Ot(l).e("title")})]),default:pn(()=>[Ao(e.$slots,"default")]),_:2},[e.$slots.footer?{name:"footer",fn:pn(()=>[Ao(e.$slots,"footer")]),key:"0"}:void 0]),1040,["center","align-center","close-icon","draggable","overflow","fullscreen","header-class","body-class","footer-class","show-close","title","aria-level","onClose"])):Zl("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,qg)]),_:3},8,["mask","overlay-class","z-index"]),[[Xr,Ot(i)]])]}),_:3},16)]),_:3},8,["to","disabled"]))}}),Kg=Gd(Kd(Ug,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]])),Gg=Gd(Kd(Xn({name:"ElDivider",__name:"divider",props:Nd({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:String,default:"solid"}}),setup(e){const t=e,n=Wa("divider"),o=yr(()=>n.cssVar({"border-style":t.borderStyle}));return(e,t)=>(Fl(),Dl("div",{class:q([Ot(n).b(),Ot(n).m(e.direction)]),style:V(o.value),role:"separator"},[e.$slots.default&&"vertical"!==e.direction?(Fl(),Dl("div",{key:0,class:q([Ot(n).e("text"),Ot(n).is(e.contentPosition)])},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/divider/src/divider.vue"]])),Yg={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Xg=["id"],Zg=["stop-color"],Jg=["stop-color"],Qg=["id"],eb=["stop-color"],tb=["stop-color"],nb=["id"],ob={stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},lb={transform:"translate(-1268.000000, -535.000000)"},rb={transform:"translate(1268.000000, 535.000000)"},ab=["fill"],sb=["fill"],ib={transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},ub=["fill"],cb=["fill"],db=["fill"],pb=["fill"],fb=["fill"],vb={transform:"translate(53.000000, 45.000000)"},hb=["fill","xlink:href"],mb=["fill","mask"],gb=["fill"];var bb=Kd(Xn({name:"ImgEmpty",__name:"img-empty",setup(e){const t=Wa("empty"),n=sf();return(e,o)=>(Fl(),Dl("svg",Yg,[Kl("defs",null,[Kl("linearGradient",{id:`linearGradient-1-${Ot(n)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,Zg),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,Jg)],8,Xg),Kl("linearGradient",{id:`linearGradient-2-${Ot(n)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,eb),Kl("stop",{"stop-color":`var(${Ot(t).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,tb)],8,Qg),Kl("rect",{id:`path-3-${Ot(n)}`,x:"0",y:"0",width:"17",height:"36"},null,8,nb)]),Kl("g",ob,[Kl("g",lb,[Kl("g",rb,[Kl("path",{d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${Ot(t).cssVarBlockName("fill-color-3")})`},null,8,ab),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,sb),Kl("g",ib,[Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,ub),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,cb),Kl("rect",{fill:`url(#linearGradient-1-${Ot(n)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,db),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,pb)]),Kl("rect",{fill:`url(#linearGradient-2-${Ot(n)})`,x:"13",y:"45",width:"40",height:"36"},null,8,fb),Kl("g",vb,[Kl("use",{fill:`var(${Ot(t).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${Ot(n)}`},null,8,hb),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${Ot(n)})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,mb)]),Kl("polygon",{fill:`var(${Ot(t).cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,gb)])])])]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/img-empty.vue"]]);const yb=Nd({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),wb=["src"],xb={key:1},Cb=Gd(Kd(Xn({name:"ElEmpty",__name:"empty",props:yb,setup(e){const t=e,{t:n}=Rd(),o=Wa("empty"),l=yr(()=>t.description||n("el.table.emptyText")),r=yr(()=>({width:ap(t.imageSize)}));return(e,t)=>(Fl(),Dl("div",{class:q(Ot(o).b())},[Kl("div",{class:q(Ot(o).e("image")),style:V(r.value)},[e.image?(Fl(),Dl("img",{key:0,src:e.image,ondragstart:"return false"},null,8,wb)):Ao(e.$slots,"image",{key:1},()=>[Gl(bb)])],6),Kl("div",{class:q(Ot(o).e("description"))},[e.$slots.description?Ao(e.$slots,"description",{key:0}):(Fl(),Dl("p",xb,Z(l.value),1))],2),e.$slots.default?(Fl(),Dl("div",{key:0,class:q(Ot(o).e("bottom"))},[Ao(e.$slots,"default")],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/empty.vue"]])),_b=Nd({size:{type:String,values:Id},disabled:Boolean}),Sb=Nd({..._b,model:Object,rules:{type:Object},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:[Object,Boolean],default:!0}});function kb(){const e=St([]),t=yr(()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?`${t}px`:""});function n(n){const o=e.value.indexOf(n);return-1===o&&t.value,o}return{autoLabelWidth:t,registerLabelWidth:function(t,o){if(t&&o){const l=n(o);e.value.splice(l,1,t)}else t&&e.value.push(t)},deregisterLabelWidth:function(t){const o=n(t);o>-1&&e.value.splice(o,1)}}}const Eb=(e,t)=>{const n=uu(t).map(e=>f(e)?e.join("."):e);return n.length>0?e.filter(e=>e.propString&&n.includes(e.propString)):e};var Tb=Kd(Xn({name:"ElForm",__name:"form",props:Sb,emits:{validate:(e,t,n)=>(f(e)||b(e))&&Zc(t)&&b(n)},setup(e,{expose:t,emit:n}){const o=e,l=n,r=St(),a=pt([]),s=vf(),i=Wa("form"),u=yr(()=>{const{labelPosition:e,inline:t}=o;return[i.b(),i.m(s.value||"default"),{[i.m(`label-${e}`)]:e,[i.m("inline")]:t}]}),c=e=>Eb(a,[e])[0],d=(e=[])=>{o.model&&Eb(a,e).forEach(e=>e.resetField())},p=(e=[])=>{Eb(a,e).forEach(e=>e.clearValidate())},f=yr(()=>!!o.model),v=async e=>m(void 0,e),h=async(e=[])=>{if(!f.value)return!1;const t=(e=>{if(0===a.length)return[];const t=Eb(a,e);return t.length?t:[]})(e);if(0===t.length)return!0;let n={};for(const l of t)try{await l.validate(""),"error"!==l.validateState||l.error||l.resetField()}catch(o){n={...n,...o}}return 0===Object.keys(n).length||Promise.reject(n)},m=async(e=[],t)=>{let n=!1;const l=!g(t);try{return n=await h(e),!0===n&&await(null==t?void 0:t(n)),n}catch(tT){if(tT instanceof Error)throw tT;const a=tT;if(o.scrollToError&&r.value){const e=r.value.querySelector(`.${i.b()}-item.is-error`);null==e||e.scrollIntoView(o.scrollIntoViewOptions)}return!n&&await(null==t?void 0:t(!1,a)),l&&Promise.reject(a)}};return wn(()=>o.rules,()=>{o.validateOnRuleChange&&v().catch(e=>{})},{deep:!0,flush:"post"}),hn(uf,pt({...Nt(o),emit:l,resetFields:d,clearValidate:p,validateField:m,getField:c,addField:e=>{a.push(e)},removeField:e=>{e.prop&&a.splice(a.indexOf(e),1)},...kb()})),t({validate:v,validateField:m,resetFields:d,clearValidate:p,scrollToField:e=>{var t;const n=c(e);n&&(null==(t=n.$el)||t.scrollIntoView(o.scrollIntoViewOptions))},getField:c,fields:a}),(e,t)=>(Fl(),Dl("form",{ref_key:"formRef",ref:r,class:q(u.value)},[Ao(e.$slots,"default")],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Ab(){return Ab=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),o=1;o=r)return e;switch(e){case"%s":return String(n[l++]);case"%d":return Number(n[l++]);case"%j":try{return JSON.stringify(n[l++])}catch(t){return"[Circular]"}break;default:return e}}):e}function Bb(e,t){return null==e||!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e)}function Fb(e,t,n){var o=0,l=e.length;!function r(a){if(a&&a.length)n(a);else{var s=o;o+=1,s()\[\]\\.,;:\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,}))$/,qb=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Ub={integer:function(e){return Ub.number(e)&&parseInt(e,10)===e},float:function(e){return Ub.number(e)&&!Ub.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(tT){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!Ub.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(Wb)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(function(){if(zb)return zb;var e="[a-fA-F\\d:]",t=function(t){return t&&t.includeBoundaries?"(?:(?<=\\s|^)(?="+e+")|(?<="+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}",o="[a-fA-F\\d]{1,4}",l=("\n(?:\n(?:"+o+":){7}(?:"+o+"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:"+o+":){6}(?:"+n+"|:"+o+"|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:"+o+":){5}(?::"+n+"|(?::"+o+"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:"+o+":){4}(?:(?::"+o+"){0,1}:"+n+"|(?::"+o+"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:"+o+":){3}(?:(?::"+o+"){0,2}:"+n+"|(?::"+o+"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:"+o+":){2}(?:(?::"+o+"){0,3}:"+n+"|(?::"+o+"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:"+o+":){1}(?:(?::"+o+"){0,4}:"+n+"|(?::"+o+"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::"+o+"){0,5}:"+n+"|(?::"+o+"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),r=new RegExp("(?:^"+n+"$)|(?:^"+l+"$)"),a=new RegExp("^"+n+"$"),s=new RegExp("^"+l+"$"),i=function(e){return e&&e.exact?r:new RegExp("(?:"+t(e)+n+t(e)+")|(?:"+t(e)+l+t(e)+")","g")};i.v4=function(e){return e&&e.exact?a:new RegExp(""+t(e)+n+t(e),"g")},i.v6=function(e){return e&&e.exact?s:new RegExp(""+t(e)+l+t(e),"g")};var u=i.v4().source,c=i.v6().source;return zb=new RegExp("(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|"+u+"|"+c+'|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)',"i")}())},hex:function(e){return"string"==typeof e&&!!e.match(qb)}},Kb="enum",Gb={required:Hb,whitespace:function(e,t,n,o,l){(/^\s+$/.test(t)||""===t)&&o.push(Ib(l.messages.whitespace,e.fullField))},type:function(e,t,n,o,l){if(e.required&&void 0===t)Hb(e,t,n,o,l);else{var r=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(r)>-1?Ub[r](t)||o.push(Ib(l.messages.types[r],e.fullField,e.type)):r&&typeof t!==e.type&&o.push(Ib(l.messages.types[r],e.fullField,e.type))}},range:function(e,t,n,o,l){var r="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,i=t,u=null,c="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(c?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(i=t.length),d&&(i=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),r?i!==e.len&&o.push(Ib(l.messages[u].len,e.fullField,e.len)):a&&!s&&ie.max?o.push(Ib(l.messages[u].max,e.fullField,e.max)):a&&s&&(ie.max)&&o.push(Ib(l.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,n,o,l){e[Kb]=Array.isArray(e[Kb])?e[Kb]:[],-1===e[Kb].indexOf(t)&&o.push(Ib(l.messages[Kb],e.fullField,e[Kb].join(", ")))},pattern:function(e,t,n,o,l){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(Ib(l.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},Yb=function(e,t,n,o,l){var r=e.type,a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,r)&&!e.required)return n();Gb.required(e,t,o,a,l,r),Bb(t,r)||Gb.type(e,t,o,a,l)}n(a)},Xb={string:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l,"string"),Bb(t,"string")||(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l),Gb.pattern(e,t,o,r,l),!0===e.whitespace&&Gb.whitespace(e,t,o,r,l))}n(r)},method:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},number:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},boolean:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},regexp:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t)||Gb.type(e,t,o,r,l)}n(r)},integer:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},float:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},array:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();Gb.required(e,t,o,r,l,"array"),null!=t&&(Gb.type(e,t,o,r,l),Gb.range(e,t,o,r,l))}n(r)},object:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.type(e,t,o,r,l)}n(r)},enum:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l),void 0!==t&&Gb.enum(e,t,o,r,l)}n(r)},pattern:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"string")&&!e.required)return n();Gb.required(e,t,o,r,l),Bb(t,"string")||Gb.pattern(e,t,o,r,l)}n(r)},date:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t,"date")&&!e.required)return n();var a;Gb.required(e,t,o,r,l),Bb(t,"date")||(a=t instanceof Date?t:new Date(t),Gb.type(e,a,o,r,l),a&&Gb.range(e,a.getTime(),o,r,l))}n(r)},url:Yb,hex:Yb,email:Yb,required:function(e,t,n,o,l){var r=[],a=Array.isArray(t)?"array":typeof t;Gb.required(e,t,o,r,l,a),n(r)},any:function(e,t,n,o,l){var r=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(Bb(t)&&!e.required)return n();Gb.required(e,t,o,r,l)}n(r)}};function Zb(){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 e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var Jb=Zb(),Qb=function(){function e(e){this.rules=null,this._messages=Jb,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(n){var o=e[n];t.rules[n]=Array.isArray(o)?o:[o]})},t.messages=function(e){return e&&(this._messages=Db(Zb(),e)),this._messages},t.validate=function(t,n,o){var l=this;void 0===n&&(n={}),void 0===o&&(o=function(){});var r=t,a=n,s=o;if("function"==typeof a&&(s=a,a={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,r),Promise.resolve(r);if(a.messages){var i=this.messages();i===Jb&&(i=Zb()),Db(i,a.messages),a.messages=i}else a.messages=this.messages();var u={};(a.keys||Object.keys(this.rules)).forEach(function(e){var n=l.rules[e],o=r[e];n.forEach(function(n){var a=n;"function"==typeof a.transform&&(r===t&&(r=Ab({},r)),o=r[e]=a.transform(o)),(a="function"==typeof a?{validator:a}:Ab({},a)).validator=l.getValidationMethod(a),a.validator&&(a.field=e,a.fullField=a.fullField||e,a.type=l.getType(a),u[e]=u[e]||[],u[e].push({rule:a,value:o,source:r,field:e}))})});var c={};return jb(u,a,function(t,n){var o,l=t.rule,s=!("object"!==l.type&&"array"!==l.type||"object"!=typeof l.fields&&"object"!=typeof l.defaultField);function i(e,t){return Ab({},t,{fullField:l.fullField+"."+e,fullFields:l.fullFields?[].concat(l.fullFields,[e]):[e]})}function u(o){void 0===o&&(o=[]);var u=Array.isArray(o)?o:[o];!a.suppressWarning&&u.length&&e.warning("async-validator:",u),u.length&&void 0!==l.message&&(u=[].concat(l.message));var d=u.map(Vb(l,r));if(a.first&&d.length)return c[l.field]=1,n(d);if(s){if(l.required&&!t.value)return void 0!==l.message?d=[].concat(l.message).map(Vb(l,r)):a.error&&(d=[a.error(l,Ib(a.messages.required,l.field))]),n(d);var p={};l.defaultField&&Object.keys(t.value).map(function(e){p[e]=l.defaultField}),p=Ab({},p,t.rule.fields);var f={};Object.keys(p).forEach(function(e){var t=p[e],n=Array.isArray(t)?t:[t];f[e]=n.map(i.bind(null,e))});var v=new e(f);v.messages(a.messages),t.rule.options&&(t.rule.options.messages=a.messages,t.rule.options.error=a.error),v.validate(t.value,t.rule.options||a,function(e){var t=[];d&&d.length&&t.push.apply(t,d),e&&e.length&&t.push.apply(t,e),n(t.length?t:null)})}else n(d)}if(s=s&&(l.required||!l.required&&t.value),l.field=t.field,l.asyncValidator)o=l.asyncValidator(l,t.value,u,t.source,a);else if(l.validator){try{o=l.validator(l,t.value,u,t.source,a)}catch(d){console.error,a.suppressValidatorError||setTimeout(function(){throw d},0),u(d.message)}!0===o?u():!1===o?u("function"==typeof l.message?l.message(l.fullField||l.field):l.message||(l.fullField||l.field)+" fails"):o instanceof Array?u(o):o instanceof Error&&u(o.message)}o&&o.then&&o.then(function(){return u()},function(e){return u(e)})},function(e){!function(e){var t=[],n={};function o(e){var n;Array.isArray(e)?t=(n=t).concat.apply(n,e):t.push(e)}for(var l=0;l");const l=Wa("form"),r=St(),a=St(0),s=(o="update")=>{tn(()=>{t.default&&e.isAutoWidth&&("update"===o?a.value=(()=>{var e;if(null==(e=r.value)?void 0:e.firstElementChild){const e=window.getComputedStyle(r.value.firstElementChild).width;return Math.ceil(Number.parseFloat(e))}return 0})():"remove"===o&&(null==n||n.deregisterLabelWidth(a.value)))})},i=()=>s("update");return co(()=>{i()}),vo(()=>{s("remove")}),fo(()=>i()),wn(a,(t,o)=>{e.updateAll&&(null==n||n.registerLabelWidth(t,o))}),bd(yr(()=>{var e,t;return null!=(t=null==(e=r.value)?void 0:e.firstElementChild)?t:null}),i),()=>{var s,i;if(!t)return null;const{isAutoWidth:u}=e;if(u){const e=null==n?void 0:n.autoLabelWidth,i={};if((null==o?void 0:o.hasLabel)&&e&&"auto"!==e){const t=Math.max(0,Number.parseInt(e,10)-a.value),l=o.labelPosition||n.labelPosition;t&&(i["left"===l?"marginRight":"marginLeft"]=`${t}px`)}return Gl("div",{ref:r,class:[l.be("item","label-wrap")],style:i},[null==(s=t.default)?void 0:s.call(t)])}return Gl(Rl,{ref:r},[null==(i=t.default)?void 0:i.call(t)])}}});const oy=["role","aria-labelledby"];var ly=Kd(Xn({name:"ElFormItem",__name:"form-item",props:ey,setup(e,{expose:t}){const n=e,o=No(),l=mn(uf,void 0),r=mn(cf,void 0),a=vf(void 0,{formItem:!1}),s=Wa("form-item"),i=sf().value,u=St([]),c=St(""),d=function(e,t=200,n={}){const o=St(e.value),l=ud(()=>{o.value=e.value},t,n);return wn(e,()=>l()),o}(c,100),p=St(""),v=St();let h,m=!1;const b=yr(()=>n.labelPosition||(null==l?void 0:l.labelPosition)),y=yr(()=>{var e;return"top"===b.value?{}:{width:ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth)}}),w=yr(()=>{var e;if("top"===b.value||(null==l?void 0:l.inline))return{};if(!n.label&&!n.labelWidth&&A)return{};const t=ap(null!=(e=n.labelWidth)?e:null==l?void 0:l.labelWidth);return n.label||o.label?{}:{marginLeft:t}}),x=yr(()=>[s.b(),s.m(a.value),s.is("error","error"===c.value),s.is("validating","validating"===c.value),s.is("success","success"===c.value),s.is("required",L.value||n.required),s.is("no-asterisk",null==l?void 0:l.hideRequiredAsterisk),"right"===(null==l?void 0:l.requireAsteriskPosition)?"asterisk-right":"asterisk-left",{[s.m("feedback")]:null==l?void 0:l.statusIcon,[s.m(`label-${b.value}`)]:b.value}]),C=yr(()=>Zc(n.inlineMessage)?n.inlineMessage:(null==l?void 0:l.inlineMessage)||!1),_=yr(()=>[s.e("error"),{[s.em("error","inline")]:C.value}]),S=yr(()=>n.prop?f(n.prop)?n.prop.join("."):n.prop:""),k=yr(()=>!(!n.label&&!o.label)),E=yr(()=>{var e;return null!=(e=n.for)?e:1===u.value.length?u.value[0]:void 0}),T=yr(()=>!E.value&&k.value),A=!!r,O=yr(()=>{const e=null==l?void 0:l.model;if(e&&n.prop)return Vd(e,n.prop).value}),M=yr(()=>{const{required:e}=n,t=[];n.rules&&t.push(...uu(n.rules));const o=null==l?void 0:l.rules;if(o&&n.prop){const e=Vd(o,n.prop).value;e&&t.push(...uu(e))}if(void 0!==e){const n=t.map((e,t)=>[e,t]).filter(([e])=>"required"in e);if(n.length>0)for(const[o,l]of n)o.required!==e&&(t[l]={...o,required:e});else t.push({required:e})}return t}),R=yr(()=>M.value.length>0),L=yr(()=>M.value.some(e=>e.required)),P=yr(()=>{var e;return"error"===d.value&&n.showMessage&&(null==(e=null==l?void 0:l.showMessage)||e)}),N=yr(()=>`${n.label||""}${(null==l?void 0:l.labelSuffix)||""}`),I=e=>{c.value=e},B=async e=>{const t=S.value;return new Qb({[t]:e}).validate({[t]:O.value},{firstFields:!0}).then(()=>(I("success"),null==l||l.emit("validate",n.prop,!0,""),!0)).catch(e=>((e=>{var t,o;const{errors:r,fields:a}=e;I("error"),p.value=r?null!=(o=null==(t=null==r?void 0:r[0])?void 0:t.message)?o:`${n.prop} is required`:"",null==l||l.emit("validate",n.prop,!1,p.value)})(e),Promise.reject(e)))},F=async(e,t)=>{if(m||!n.prop)return!1;const o=g(t);if(!R.value)return null==t||t(!1),!1;const l=(e=>M.value.filter(t=>!t.trigger||!e||(f(t.trigger)?t.trigger.includes(e):t.trigger===e)).map(({trigger:e,...t})=>t))(e);return 0===l.length?(null==t||t(!0),!0):(I("validating"),B(l).then(()=>(null==t||t(!0),!0)).catch(e=>{const{fields:n}=e;return null==t||t(!1,n),!o&&Promise.reject(n)}))},$=()=>{I(""),p.value="",m=!1},j=async()=>{const e=null==l?void 0:l.model;if(!e||!n.prop)return;const t=Vd(e,n.prop);m=!0,t.value=nc(h),await tn(),$(),m=!1};wn(()=>n.error,e=>{p.value=e||"",I(e?"error":"")},{immediate:!0}),wn(()=>n.validateStatus,e=>I(e||""));const D=pt({...Nt(n),$el:v,size:a,validateMessage:p,validateState:c,labelId:i,inputIds:u,isGroup:T,hasLabel:k,fieldValue:O,addInputId:e=>{u.value.includes(e)||u.value.push(e)},removeInputId:e=>{u.value=u.value.filter(t=>t!==e)},resetField:j,clearValidate:$,validate:F,propString:S});return hn(cf,D),co(()=>{n.prop&&(null==l||l.addField(D),h=nc(O.value))}),vo(()=>{null==l||l.removeField(D)}),t({size:a,validateMessage:p,validateState:c,validate:F,clearValidate:$,resetField:j}),(e,t)=>{var n;return Fl(),Dl("div",{ref_key:"formItemRef",ref:v,class:q(x.value),role:T.value?"group":void 0,"aria-labelledby":T.value?Ot(i):void 0},[Gl(Ot(ny),{"is-auto-width":"auto"===y.value.width,"update-all":"auto"===(null==(n=Ot(l))?void 0:n.labelWidth)},{default:pn(()=>[e.label||e.$slots.label?(Fl(),zl(_o(E.value?"label":"div"),{key:0,id:Ot(i),for:E.value,class:q(Ot(s).e("label")),style:V(y.value)},{default:pn(()=>[Ao(e.$slots,"label",{label:N.value},()=>[Xl(Z(N.value),1)])]),_:3},8,["id","for","class","style"])):Zl("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),Kl("div",{class:q(Ot(s).e("content")),style:V(w.value)},[Ao(e.$slots,"default"),Gl(ba,{name:`${Ot(s).namespace.value}-zoom-in-top`},{default:pn(()=>[P.value?Ao(e.$slots,"error",{key:0,error:p.value},()=>[Kl("div",{class:q(_.value)},Z(p.value),3)]):Zl("v-if",!0)]),_:3},8,["name"])],6)],10,oy)}}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const ry=Gd(Tb,{FormItem:ly}),ay=Yd(ly);let sy=class{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,t=>{t.addEventListener("keydown",t=>{let n=!1;switch(cv(t)){case iv.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case iv.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case iv.tab:bf(e,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:n=!0,t.currentTarget.click()}return n&&(t.preventDefault(),t.stopPropagation()),!1})})}},iy=class{constructor(e,t){this.domNode=e,this.submenu=null,this.submenu=null,this.init(t)}init(e){this.domNode.setAttribute("tabindex","0");const t=this.domNode.querySelector(`.${e}-menu`);t&&(this.submenu=new sy(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",e=>{let t=!1;switch(cv(e)){case iv.down:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case iv.up:bf(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case iv.tab:bf(e.currentTarget,"mouseleave");break;case iv.enter:case iv.numpadEnter:case iv.space:t=!0,e.currentTarget.click()}t&&e.preventDefault()})}},uy=class{constructor(e,t){this.domNode=e,this.init(t)}init(e){const t=this.domNode.childNodes;Array.from(t).forEach(t=>{1===t.nodeType&&new iy(t,e)})}};var cy=Kd(Xn({name:"ElMenuCollapseTransition",__name:"menu-collapse-transition",setup(e){const t=Wa("menu"),n={onBeforeEnter:e=>e.style.opacity="0.2",onEnter(e,n){op(e,`${t.namespace.value}-opacity-transition`),e.style.opacity="1",n()},onAfterEnter(e){lp(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=""},onBeforeLeave(e){e.dataset||(e.dataset={}),np(e,t.m("collapse"))?(lp(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),op(e,t.m("collapse"))):(op(e,t.m("collapse")),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),lp(e,t.m("collapse"))),e.style.width=`${e.scrollWidth}px`,e.style.overflow="hidden"},onLeave(e){op(e,"horizontal-collapse-transition"),e.style.width=`${e.dataset.scrollWidth}px`}};return(e,t)=>(Fl(),zl(Nr,tr({mode:"out-in"},n),{default:pn(()=>[Ao(e.$slots,"default")]),_:3},16))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function dy(e,t){const n=yr(()=>{let n=e.parent;const o=[t.value];for(;"ElMenu"!==n.type.name;)n.props.index&&o.unshift(n.props.index),n=n.parent;return o});return{parentMenu:yr(()=>{let t=e.parent;for(;t&&!["ElMenu","ElSubMenu"].includes(t.type.name);)t=t.parent;return t}),indexPath:n}}function py(e){return yr(()=>{const t=e.backgroundColor;return t?new Pm(t).shade(20).toString():""})}const fy=(e,t)=>{const n=Wa("menu");return yr(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":py(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},vy="rootMenu",hy="subMenu:",my=Nd({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,popperStyle:{type:[String,Object]},disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:Dp},expandOpenIcon:{type:Dp},collapseCloseIcon:{type:Dp},collapseOpenIcon:{type:Dp}}),gy="ElSubMenu";var by=Xn({name:gy,props:my,setup(e,{slots:t,expose:n}){const o=ar(),{indexPath:l,parentMenu:r}=dy(o,yr(()=>e.index)),a=Wa("menu"),s=Wa("sub-menu"),i=mn(vy);i||xd(gy,"can not inject root menu");const u=mn(`${hy}${r.value.uid}`);u||xd(gy,"can not inject sub menu");const c=St({}),d=St({});let p;const f=St(!1),v=St(),h=St(),m=yr(()=>0===u.level),g=yr(()=>"horizontal"===k.value&&m.value?"bottom-start":"right-start"),y=yr(()=>"horizontal"===k.value&&m.value||"vertical"===k.value&&!i.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?_.value?e.expandOpenIcon:e.expandCloseIcon:up:e.collapseCloseIcon&&e.collapseOpenIcon?_.value?e.collapseOpenIcon:e.collapseCloseIcon:dp),w=yr(()=>{const t=e.teleported;return Xc(t)?m.value:t}),x=yr(()=>i.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),C=yr(()=>"horizontal"===k.value&&m.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),_=yr(()=>i.openedMenus.includes(e.index)),S=yr(()=>[...Object.values(c.value),...Object.values(d.value)].some(({active:e})=>e)),k=yr(()=>i.props.mode),E=yr(()=>i.props.persistent),T=pt({index:e.index,indexPath:l,active:S}),A=fy(i.props,u.level+1),O=yr(()=>{var t;return null!=(t=e.popperOffset)?t:i.props.popperOffset}),M=yr(()=>{var t;return null!=(t=e.popperClass)?t:i.props.popperClass}),R=yr(()=>{var t;return null!=(t=e.popperStyle)?t:i.props.popperStyle}),L=yr(()=>{var t;return null!=(t=e.showTimeout)?t:i.props.showTimeout}),P=yr(()=>{var t;return null!=(t=e.hideTimeout)?t:i.props.hideTimeout}),N=e=>{var t,n,o;e||null==(o=null==(n=null==(t=h.value)?void 0:t.popperRef)?void 0:n.popperInstanceRef)||o.destroy()},I=()=>{"hover"===i.props.menuTrigger&&"horizontal"===i.props.mode||i.props.collapse&&"vertical"===i.props.mode||e.disabled||i.handleSubMenuClick({index:e.index,indexPath:l.value,active:S.value})},B=(t,n=L.value)=>{var o;"focus"!==t.type&&("click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode||e.disabled?u.mouseInChild.value=!0:(u.mouseInChild.value=!0,null==p||p(),({stop:p}=dd(()=>{i.openMenu(e.index,l.value)},n)),w.value&&(null==(o=r.value.vnode.el)||o.dispatchEvent(new MouseEvent("mouseenter"))),"mouseenter"===t.type&&t.target&&tn(()=>{yf(t.target,{preventScroll:!0})})))},F=(t=!1)=>{var n;"click"===i.props.menuTrigger&&"horizontal"===i.props.mode||!i.props.collapse&&"vertical"===i.props.mode?u.mouseInChild.value=!1:(null==p||p(),u.mouseInChild.value=!1,({stop:p}=dd(()=>!f.value&&i.closeMenu(e.index,l.value),P.value)),w.value&&t&&(null==(n=u.handleMouseleave)||n.call(u,!0)))};wn(()=>i.props.collapse,e=>N(Boolean(e)));{const e=e=>{d.value[e.index]=e},t=e=>{delete d.value[e.index]};hn(`${hy}${o.uid}`,{addSubMenu:e,removeSubMenu:t,handleMouseleave:F,mouseInChild:f,level:u.level+1})}return n({opened:_}),co(()=>{i.addSubMenu(T),u.addSubMenu(T)}),vo(()=>{u.removeSubMenu(T),i.removeSubMenu(T)}),()=>{var n;const l=[null==(n=t.title)?void 0:n.call(t),wr(ip,{class:s.e("icon-arrow"),style:{transform:_.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&i.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>b(y.value)?wr(o.appContext.components[y.value]):wr(y.value)})],r=i.isMenuPopup?wr(im,{ref:h,visible:_.value,effect:"light",pure:!0,offset:O.value,showArrow:!1,persistent:E.value,popperClass:M.value,popperStyle:R.value,placement:g.value,teleported:w.value,fallbackPlacements:C.value,transition:x.value,gpuAcceleration:!1},{content:()=>{var e;return wr("div",{class:[a.m(k.value),a.m("popup-container"),M.value],onMouseenter:e=>B(e,100),onMouseleave:()=>F(!0),onFocus:e=>B(e,100)},[wr("ul",{class:[a.b(),a.m("popup"),a.m(`popup-${g.value}`)],style:A.value},[null==(e=t.default)?void 0:e.call(t)])])},default:()=>wr("div",{class:s.e("title"),onClick:I},l)}):wr(Rl,{},[wr("div",{class:s.e("title"),ref:v,onClick:I},l),wr(Mg,{},{default:()=>{var e;return fn(wr("ul",{role:"menu",class:[a.b(),a.m("inline")],style:A.value},[null==(e=t.default)?void 0:e.call(t)]),[[Xr,_.value]])}})]);return wr("li",{class:[s.b(),s.is("active",S.value),s.is("opened",_.value),s.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:_.value,onMouseenter:B,onMouseleave:()=>F(),onFocus:B},[r])}}});const yy=Nd({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Array,default:()=>[]},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:Dp,default:()=>Op},popperEffect:{type:String,default:"dark"},popperClass:String,popperStyle:{type:[String,Object]},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),wy=e=>f(e)&&e.every(e=>b(e));var xy=Xn({name:"ElMenu",props:yy,emits:{close:(e,t)=>b(e)&&wy(t),open:(e,t)=>b(e)&&wy(t),select:(e,t,n,o)=>b(e)&&wy(t)&&w(n)&&(Xc(o)||o instanceof Promise)},setup(e,{emit:t,slots:n,expose:o}){const l=ar(),r=l.appContext.config.globalProperties.$router,a=St(),s=St(),i=Wa("menu"),u=Wa("sub-menu");let c=64;const d=St(-1),p=St(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),f=St(e.defaultActive),v=St({}),h=St({}),m=yr(()=>"horizontal"===e.mode||"vertical"===e.mode&&e.collapse),g=(n,o)=>{p.value.includes(n)||(e.uniqueOpened&&(p.value=p.value.filter(e=>o.includes(e))),p.value.push(n),t("open",n,o))},b=e=>{const t=p.value.indexOf(e);-1!==t&&p.value.splice(t,1)},y=(e,n)=>{b(e),t("close",e,n)},w=({index:e,indexPath:t})=>{p.value.includes(e)?y(e,t):g(e,t)},x=n=>{("horizontal"===e.mode||e.collapse)&&(p.value=[]);const{index:o,indexPath:l}=n;if(!Vc(o)&&!Vc(l))if(e.router&&r){const e=n.route||o,a=r.push(e).then(e=>(e||(f.value=o),e));t("select",o,l,{index:o,indexPath:l,route:e},a)}else f.value=o,t("select",o,l,{index:o,indexPath:l})},C=t=>{var n;const o=v.value,l=o[t]||f.value&&o[f.value]||o[e.defaultActive];f.value=null!=(n=null==l?void 0:l.index)?n:t},_=e=>{const t=getComputedStyle(e),n=Number.parseInt(t.marginLeft,10),o=Number.parseInt(t.marginRight,10);return e.offsetWidth+n+o||0},S=()=>{if(!a.value)return-1;const e=Array.from(a.value.childNodes).filter(e=>"#comment"!==e.nodeName&&("#text"!==e.nodeName||e.nodeValue)),t=getComputedStyle(a.value),n=Number.parseInt(t.paddingLeft,10),o=Number.parseInt(t.paddingRight,10),l=a.value.clientWidth-n-o;let r=0,s=0;return e.forEach((e,t)=>{r+=_(e),r<=l-c&&(s=t+1)}),s===e.length?-1:s};let k=!0;const E=()=>{const e=pd(s);if(e&&(c=_(e)||64),d.value===S())return;const t=()=>{d.value=-1,tn(()=>{d.value=S()})};k?t():((e,t=33.34)=>{let n;return()=>{n&&clearTimeout(n),n=setTimeout(()=>{e()},t)}})(t)(),k=!1};let T;wn(()=>e.defaultActive,e=>{v.value[e]||(f.value=""),C(e)}),wn(()=>e.collapse,e=>{e&&(p.value=[])}),wn(v.value,()=>{const t=f.value&&v.value[f.value];t&&"horizontal"!==e.mode&&!e.collapse&&t.indexPath.forEach(e=>{const t=h.value[e];t&&g(e,t.indexPath)})}),yn(()=>{"horizontal"===e.mode&&e.ellipsis?T=bd(a,E).stop:null==T||T()});const A=St(!1);{const t=e=>{h.value[e.index]=e},n=e=>{delete h.value[e.index]},o=e=>{v.value[e.index]=e},r=e=>{delete v.value[e.index]};hn(vy,pt({props:e,openedMenus:p,items:v,subMenus:h,activeIndex:f,isMenuPopup:m,addMenuItem:o,removeMenuItem:r,addSubMenu:t,removeSubMenu:n,openMenu:g,closeMenu:y,handleMenuItemClick:x,handleSubMenuClick:w})),hn(`${hy}${l.uid}`,{addSubMenu:t,removeSubMenu:n,mouseInChild:A,level:0})}co(()=>{"horizontal"===e.mode&&new uy(l.vnode.el,i.namespace.value)}),o({open:e=>{const{indexPath:t}=h.value[e];t.forEach(e=>g(e,t))},close:b,updateActiveIndex:C,handleResize:E});const O=fy(e,0);return()=>{var o,l;let r=null!=(l=null==(o=n.default)?void 0:o.call(n))?l:[];const c=[];if("horizontal"===e.mode&&a.value){const t=Vm(r).filter(e=>8!==(null==e?void 0:e.shapeFlag)),n=-1===d.value?t:t.slice(0,d.value),o=-1===d.value?[]:t.slice(d.value);(null==o?void 0:o.length)&&e.ellipsis&&(r=n,c.push(wr(by,{ref:s,index:"sub-menu-more",class:u.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>wr(ip,{class:u.e("icon-more")},{default:()=>wr(e.ellipsisIcon)}),default:()=>o})))}const f=e.closeOnClickOutside?[[Eg,()=>{p.value.length&&(A.value||(p.value.forEach(e=>{return t("close",e,(n=e,h.value[n].indexPath));var n}),p.value=[]))}]]:[],v=fn(wr("ul",{key:String(e.collapse),role:"menubar",ref:a,style:O.value,class:{[i.b()]:!0,[i.m(e.mode)]:!0,[i.m("collapse")]:e.collapse}},[...r,...c]),f);return e.collapseTransition&&"vertical"===e.mode?wr(cy,()=>v):v}}});const Cy=Nd({index:{type:[String,null],default:null},route:{type:[String,Object]},disabled:Boolean}),_y="ElMenuItem";var Sy=Kd(Xn({name:_y,__name:"menu-item",props:Cy,emits:{click:e=>b(e.index)&&f(e.indexPath)},setup(e,{expose:t,emit:n}){const o=e,l=n;ed(o.index);const r=ar(),a=mn(vy),s=Wa("menu"),i=Wa("menu-item");a||xd(_y,"can not inject root menu");const{parentMenu:u,indexPath:c}=dy(r,Ft(o,"index")),d=mn(`${hy}${u.value.uid}`);d||xd(_y,"can not inject sub menu");const p=yr(()=>o.index===a.activeIndex),f=pt({index:o.index,indexPath:c,active:p}),v=()=>{o.disabled||(a.handleMenuItemClick({index:o.index,indexPath:c.value,route:o.route}),l("click",f))};return co(()=>{d.addSubMenu(f),a.addMenuItem(f)}),vo(()=>{d.removeSubMenu(f),a.removeMenuItem(f)}),t({parentMenu:u,rootMenu:a,active:p,nsMenu:s,nsMenuItem:i,handleClick:v}),(e,t)=>(Fl(),Dl("li",{class:q([Ot(i).b(),Ot(i).is("active",p.value),Ot(i).is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:v},["ElMenu"===Ot(u).type.name&&Ot(a).props.collapse&&e.$slots.title?(Fl(),zl(Ot(im),{key:0,effect:Ot(a).props.popperEffect,placement:"right","fallback-placements":["left"],"popper-class":Ot(a).props.popperClass,"popper-style":Ot(a).props.popperStyle,persistent:Ot(a).props.persistent,"focus-on-target":""},{content:pn(()=>[Ao(e.$slots,"title")]),default:pn(()=>[Kl("div",{class:q(Ot(s).be("tooltip","trigger"))},[Ao(e.$slots,"default")],2)]),_:3},8,["effect","popper-class","popper-style","persistent"])):(Fl(),Dl(Rl,{key:1},[Ao(e.$slots,"default"),Ao(e.$slots,"title")],64))],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]),ky=Kd(Xn({name:"ElMenuItemGroup",__name:"menu-item-group",props:{title:String},setup(e){const t=Wa("menu-item-group");return(e,n)=>(Fl(),Dl("li",{class:q(Ot(t).b())},[Kl("div",{class:q(Ot(t).e("title"))},[e.$slots.title?Ao(e.$slots,"title",{key:1}):(Fl(),Dl(Rl,{key:0},[Xl(Z(e.title),1)],64))],2),Kl("ul",null,[Ao(e.$slots,"default")])],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const Ey=Gd(xy,{MenuItem:Sy,MenuItemGroup:ky,SubMenu:by}),Ty=Yd(Sy);Yd(ky),Yd(by);const Ay=e=>L(e),Oy=Gd(Kd(Xn({name:"ElPopconfirm",__name:"popconfirm",props:Nd({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:pm,default:"primary"},cancelButtonType:{type:String,values:pm,default:"text"},icon:{type:Dp,default:()=>Lp},iconColor:{type:String,default:"#f90"},hideIcon:Boolean,hideAfter:{type:Number,default:200},effect:{...Wh.effect,default:"light"},teleported:Wh.teleported,persistent:Wh.persistent,width:{type:[String,Number],default:150},virtualTriggering:qh.virtualTriggering,virtualRef:qh.virtualRef}),emits:{confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},setup(e,{expose:t,emit:n}){const o=e,l=n,{t:r}=Rd(),a=Wa("popconfirm"),s=St(),i=St(),u=yr(()=>{var e;return null==(e=Ot(s))?void 0:e.popperRef}),c=()=>{var e,t;null==(t=null==(e=i.value)?void 0:e.focus)||t.call(e)},d=()=>{var e,t;null==(t=null==(e=s.value)?void 0:e.onClose)||t.call(e)},p=yr(()=>({width:ap(o.width)})),f=e=>{l("confirm",e),d()},v=e=>{l("cancel",e),d()},h=yr(()=>o.confirmButtonText||r("el.popconfirm.confirmButtonText")),m=yr(()=>o.cancelButtonText||r("el.popconfirm.cancelButtonText"));return t({popperRef:u,hide:d}),(e,t)=>(Fl(),zl(Ot(im),tr({ref_key:"tooltipRef",ref:s,trigger:"click",effect:e.effect},e.$attrs,{"virtual-triggering":e.virtualTriggering,"virtual-ref":e.virtualRef,"popper-class":`${Ot(a).namespace.value}-popover`,"popper-style":p.value,teleported:e.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":e.hideAfter,persistent:e.persistent,loop:"",onShow:c}),{content:pn(()=>[Kl("div",{ref_key:"rootRef",ref:i,tabindex:"-1",class:q(Ot(a).b())},[Kl("div",{class:q(Ot(a).e("main"))},[!e.hideIcon&&e.icon?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(a).e("icon")),style:V({color:e.iconColor})},{default:pn(()=>[(Fl(),zl(_o(e.icon)))]),_:1},8,["class","style"])):Zl("v-if",!0),Xl(" "+Z(e.title),1)],2),Kl("div",{class:q(Ot(a).e("action"))},[Ao(e.$slots,"actions",{confirm:f,cancel:v},()=>[Gl(Ot(Fm),{size:"small",type:"text"===e.cancelButtonType?"":e.cancelButtonType,text:"text"===e.cancelButtonType,onClick:v},{default:pn(()=>[Xl(Z(m.value),1)]),_:1},8,["type","text"]),Gl(Ot(Fm),{size:"small",type:"text"===e.confirmButtonType?"":e.confirmButtonType,text:"text"===e.confirmButtonType,onClick:f},{default:pn(()=>[Xl(Z(h.value),1)]),_:1},8,["type","text"])])],2)],2)]),default:pn(()=>[e.$slots.reference?Ao(e.$slots,"reference",{key:0}):Zl("v-if",!0)]),_:3},16,["effect","virtual-triggering","virtual-ref","popper-class","popper-style","teleported","hide-after","persistent"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/popconfirm/src/popconfirm.vue"]])),My=Gd(Kd(Xn({name:"ElRow",__name:"row",props:Nd({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:["start","center","end","space-around","space-between","space-evenly"],default:"start"},align:{type:String,values:["top","middle","bottom"]}}),setup(e){const t=e,n=Wa("row"),o=yr(()=>t.gutter);hn(Ag,{gutter:o});const l=yr(()=>{const e={};return t.gutter?(e.marginRight=e.marginLeft=`-${t.gutter/2}px`,e):e}),r=yr(()=>[n.b(),n.is(`justify-${t.justify}`,"start"!==t.justify),n.is(`align-${t.align}`,!!t.align)]);return(e,t)=>(Fl(),zl(_o(e.tag),{class:q(r.value),style:V(l.value)},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]])),Ry="horizontal",Ly="vertical",Py={[Ry]:"deltaX",[Ly]:"deltaY"},Ny=({atEndEdge:e,atStartEdge:t,layout:n},o)=>{let l,r=0;const a=n=>n<0&&t.value||n>0&&e.value;return{hasReachedEdge:a,onWheel:e=>{var t;t=l,ld?window.cancelAnimationFrame(t):clearTimeout(t);const s=e[Py[n.value]];a(r)&&a(r+s)||(r+=s,Up()||e.preventDefault(),l=ep(()=>{o(r),r=0}))}}},Iy=Nd({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:e=>["",...Id].includes(e)},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:Dp},activeActionIcon:{type:Dp},activeIcon:{type:Dp},inactiveIcon:{type:Dp},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Function},id:String,tabindex:{type:[String,Number]},...Qp(["ariaLabel"])}),By=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],Fy=["aria-hidden"],$y={key:1},jy={key:1},Vy=["aria-hidden"],Dy="ElSwitch",zy=Gd(Kd(Xn({name:Dy,__name:"switch",props:Iy,emits:{[Zd]:e=>Zc(e)||b(e)||Jc(e),[Jd]:e=>Zc(e)||b(e)||Jc(e),[Qd]:e=>Zc(e)||b(e)||Jc(e)},setup(e,{expose:t,emit:n}){const o=e,l=n,{formItem:r}=df(),a=vf(),s=Wa("switch"),{inputId:i}=pf(o,{formItemContext:r}),u=hf(yr(()=>{if(o.loading)return!0})),c=St(!1!==o.modelValue),d=kt(),p=yr(()=>[s.b(),s.m(a.value),s.is("disabled",u.value),s.is("checked",g.value)]),f=yr(()=>[s.e("label"),s.em("label","left"),s.is("active",!g.value)]),v=yr(()=>[s.e("label"),s.em("label","right"),s.is("active",g.value)]),h=yr(()=>({width:ap(o.width)}));wn(()=>o.modelValue,()=>{c.value=!0});const m=yr(()=>!!c.value&&o.modelValue),g=yr(()=>m.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(m.value)||(l(Zd,o.inactiveValue),l(Jd,o.inactiveValue),l(Qd,o.inactiveValue)),wn(g,e=>{var t;d.value.checked=e,o.validateEvent&&(null==(t=null==r?void 0:r.validate)||t.call(r,"change").catch(e=>{}))});const b=()=>{const e=g.value?o.inactiveValue:o.activeValue;l(Zd,e),l(Jd,e),l(Qd,e),tn(()=>{d.value.checked=g.value})},y=()=>{if(u.value)return;const{beforeChange:e}=o;if(!e)return void b();const t=e();[x(t),Zc(t)].includes(!0)||xd(Dy,"beforeChange must return type `Promise` or `boolean`"),x(t)?t.then(e=>{e&&b()}).catch(e=>{}):t&&b()};return co(()=>{d.value.checked=g.value}),t({focus:()=>{var e,t;null==(t=null==(e=d.value)?void 0:e.focus)||t.call(e)},checked:g}),(e,t)=>(Fl(),Dl("div",{class:q(p.value),onClick:Ra(y,["prevent"])},[Kl("input",{id:Ot(i),ref_key:"input",ref:d,class:q(Ot(s).e("input")),type:"checkbox",role:"switch","aria-checked":g.value,"aria-disabled":Ot(u),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:Ot(u),tabindex:e.tabindex,onChange:b,onKeydown:Pa(y,["enter"])},null,42,By),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||e.$slots.inactive)?(Fl(),Dl("span",{key:0,class:q(f.value)},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",{key:1,"aria-hidden":g.value},Z(e.inactiveText),9,Fy)):Zl("v-if",!0)])],2)):Zl("v-if",!0),Kl("span",{class:q(Ot(s).e("core")),style:V(h.value)},[e.inlinePrompt?(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner"))},[g.value?(Fl(),Dl("div",{key:1,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",jy,Z(e.activeText),1)):Zl("v-if",!0)])],2)):(Fl(),Dl("div",{key:0,class:q(Ot(s).e("inner-wrapper"))},[Ao(e.$slots,"inactive",{},()=>[e.inactiveIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveIcon)))]),_:1})):Zl("v-if",!0),!e.inactiveIcon&&e.inactiveText?(Fl(),Dl("span",$y,Z(e.inactiveText),1)):Zl("v-if",!0)])],2))],2)):Zl("v-if",!0),Kl("div",{class:q(Ot(s).e("action"))},[e.loading?(Fl(),zl(Ot(ip),{key:0,class:q(Ot(s).is("loading"))},{default:pn(()=>[Gl(Ot(Ep))]),_:1},8,["class"])):g.value?Ao(e.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeActionIcon)))]),_:1})):Zl("v-if",!0)]):g.value?Zl("v-if",!0):Ao(e.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.inactiveActionIcon)))]),_:1})):Zl("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||e.$slots.active)?(Fl(),Dl("span",{key:1,class:q(v.value)},[Ao(e.$slots,"active",{},()=>[e.activeIcon?(Fl(),zl(Ot(ip),{key:0},{default:pn(()=>[(Fl(),zl(_o(e.activeIcon)))]),_:1})):Zl("v-if",!0),!e.activeIcon&&e.activeText?(Fl(),Dl("span",{key:1,"aria-hidden":!g.value},Z(e.activeText),9,Vy)):Zl("v-if",!0)])],2)):Zl("v-if",!0)],2))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]])),Hy=function(e){var t;return null==(t=e.target)?void 0:t.closest("td")},Wy=function(e,t,n,o,l){if(!t&&!o&&(!l||f(l)&&!l.length))return e;n=b(n)?"descending"===n?-1:1:n&&n<0?-1:1;const r=o?null:function(n,o){return l?Bc(uu(l),t=>b(t)?Yi(n,t):t(n,o,e)):("$key"!==t&&w(n)&&"$value"in n&&(n=n.$value),[w(n)?t?Yi(n,t):null:n])};return e.map((e,t)=>({value:e,index:t,key:r?r(e,t):null})).sort((e,t)=>{let l=function(e,t){var n,l,r,a,s,i;if(o)return o(e.value,t.value);for(let o=0,u=null!=(l=null==(n=e.key)?void 0:n.length)?l:0;o(null==(i=t.key)?void 0:i[o]))return 1}return 0}(e,t);return l||(l=e.index-t.index),l*+n}).map(e=>e.value)},qy=function(e,t){let n=null;return e.columns.forEach(e=>{e.id===t&&(n=e)}),n},Uy=function(e,t,n){const o=(t.className||"").match(new RegExp(`${n}-table_[^\\s]+`,"gm"));return o?qy(e,o[0]):null},Ky=(e,t)=>{if(!e)throw new Error("Row is required when get row identity");if(b(t)){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let o=e;for(const e of n)o=o[e];return`${o}`}return g(t)?t.call(null,e):""},Gy=function(e,t,n=!1,o="children"){const l={};return(e||[]).forEach((e,r)=>{if(l[Ky(e,t)]={row:e,index:r},n){const n=e[o];f(n)&&Object.assign(l,Gy(n,t,!0,o))}}),l};function Yy(e){return""===e||Xc(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Xy(e){return""===e||Xc(e)||(e=Yy(e),Number.isNaN(e)&&(e=80)),e}function Zy(e,t,n,o,l,r,a){let s=null!=r?r:0,i=!1;const u=(()=>{if(!a)return e.indexOf(t);const n=Ky(t,a);return e.findIndex(e=>Ky(e,a)===n)})(),c=-1!==u,d=null==l?void 0:l.call(null,t,s),p=n=>{"add"===n?e.push(t):e.splice(u,1),i=!0},v=e=>{let t=0;const n=(null==o?void 0:o.children)&&e[o.children];return n&&f(n)&&(t+=n.length,n.forEach(e=>{t+=v(e)})),t};return l&&!d||(Zc(n)?n&&!c?p("add"):!n&&c&&p("remove"):p(c?"remove":"add")),!(null==o?void 0:o.checkStrictly)&&(null==o?void 0:o.children)&&f(t[o.children])&&t[o.children].forEach(t=>{const r=Zy(e,t,null!=n?n:!c,o,l,s+1,a);s+=v(t)+1,r&&(i=r)}),i}function Jy(e,t,n="children",o="hasChildren",l=!1){const r=e=>!(f(e)&&e.length);function a(e,s,i){t(e,s,i),s.forEach(e=>{if(e[o]&&l)return void t(e,null,i+1);const s=e[n];r(s)||a(e,s,i+1)})}e.forEach(e=>{if(e[o]&&l)return void t(e,null,0);const s=e[n];r(s)||a(e,s,0)})}let Qy=null;function ew(e,t,n,o,l,r){var a;const s=((e,t,n,o)=>{const l={strategy:"fixed",...e.popperOptions},r=g(null==o?void 0:o.tooltipFormatter)?o.tooltipFormatter({row:n,column:o,cellValue:Vd(n,o.property).value}):void 0;return Hl(r)?{slotContent:r,content:null,...e,popperOptions:l}:{slotContent:null,content:null!=r?r:t,...e,popperOptions:l}})(e,t,n,o),i={...s,slotContent:void 0};if((null==Qy?void 0:Qy.trigger)===l){const e=null==(a=Qy.vm)?void 0:a.component;return Hc(null==e?void 0:e.props,i),void(e&&s.slotContent&&(e.slots.content=()=>[s.slotContent]))}null==Qy||Qy();const u=null==r?void 0:r.refs.tableWrapper,c=null==u?void 0:u.dataset.prefix,d=Gl(im,{virtualTriggering:!0,virtualRef:l,appendTo:u,placement:"top",transition:"none",offset:0,hideAfter:0,...i},s.slotContent?{content:()=>s.slotContent}:void 0);d.appContext={...r.appContext,...r};const p=document.createElement("div");Fa(d,p),d.component.exposed.onOpen();const f=null==u?void 0:u.querySelector(`.${c}-scrollbar__wrap`);Qy=()=>{var e,t;(null==(t=null==(e=d.component)?void 0:e.exposed)?void 0:t.onClose)&&d.component.exposed.onClose(),Fa(null,p);const n=Qy;null==f||f.removeEventListener("scroll",n),n.trigger=void 0,n.vm=void 0,Qy=null},Qy.trigger=null!=l?l:void 0,Qy.vm=d,null==f||f.addEventListener("scroll",Qy)}function tw(e){return e.children?Bc(e.children,tw):[e]}function nw(e,t){return e+t.colSpan}const ow=(e,t,n,o)=>{let l=0,r=e;const a=n.states.columns.value;if(o){const t=tw(o[e]);l=a.slice(0,a.indexOf(t[0])).reduce(nw,0),r=l+t.reduce(nw,0)-1}else l=e;let s;switch(t){case"left":r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right");break;default:r=a.length-n.states.rightFixedLeafColumnsLength.value&&(s="right")}return s?{direction:s,start:l,after:r}:{}},lw=(e,t,n,o,l,r=0)=>{const a=[],{direction:s,start:i,after:u}=ow(t,n,o,l);if(s){const t="left"===s;a.push(`${e}-fixed-column--${s}`),t&&u+r===o.states.fixedLeafColumnsLength.value-1?a.push("is-last-column"):t||i-r!==o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value||a.push("is-first-column")}return a};function rw(e,t){return e+(Dc(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const aw=(e,t,n,o)=>{const{direction:l,start:r=0,after:a=0}=ow(e,t,n,o);if(!l)return;const s={},i="left"===l,u=n.states.columns.value;return i?s.left=u.slice(0,r).reduce(rw,0):s.right=u.slice(a+1).reverse().reduce(rw,0),s},sw=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function iw(e){return e.some(e=>!Hl(e)||e.type!==Pl&&!(e.type===Rl&&!iw(e.children)))?e:null}const uw=e=>{const t=[];return e.forEach(e=>{e.children&&e.children.length>0?t.push.apply(t,uw(e.children)):t.push(e)}),t};function cw(){var e;const t=ar(),{size:n}=Nt(null==(e=t.proxy)?void 0:e.$props),o=St(null),l=St([]),r=St([]),a=St(!1),s=St([]),i=St([]),u=St([]),c=St([]),d=St([]),v=St([]),h=St([]),m=St([]),g=St(0),y=St(0),w=St(0),x=St(!1),C=St([]),_=St(!1),S=St(!1),k=St(null),E=St({}),T=St(null),A=St(null),O=St(null),M=St(null),R=St(null),L=yr(()=>o.value?Gy(C.value,o.value):void 0);wn(l,()=>{var e;t.state&&(I(!1),"auto"===t.props.tableLayout&&(null==(e=t.refs.tableHeaderRef)||e.updateFixedColumnStyle()))},{deep:!0});const P=e=>{var t;null==(t=e.children)||t.forEach(t=>{t.fixed=e.fixed,P(t)})},N=()=>{s.value.forEach(e=>{P(e)}),c.value=s.value.filter(e=>[!0,"left"].includes(e.fixed));const e=s.value.find(e=>"selection"===e.type);let t;e&&"right"!==e.fixed&&!c.value.includes(e)&&0===s.value.indexOf(e)&&c.value.length&&(c.value.unshift(e),t=!0),d.value=s.value.filter(e=>"right"===e.fixed);const n=s.value.filter(e=>!(t&&"selection"===e.type||e.fixed));i.value=Array.from(c.value).concat(n).concat(d.value);const o=uw(n),l=uw(c.value),r=uw(d.value);g.value=o.length,y.value=l.length,w.value=r.length,u.value=Array.from(l).concat(o).concat(r),a.value=c.value.length>0||d.value.length>0},I=(e,n=!1)=>{e&&N(),n?t.state.doLayout():t.state.debouncedUpdateLayout()},B=e=>L.value?!!L.value[Ky(e,o.value)]:C.value.includes(e),F=e=>{var n;if(!t||!t.store)return 0;const{treeData:o}=t.store.states;let l=0;const r=null==(n=o.value[e])?void 0:n.children;return r&&(l+=r.length,r.forEach(e=>{l+=F(e)})),l},$=(e,t,n)=>{A.value&&A.value!==e&&(A.value.order=null),A.value=e,O.value=t,M.value=n},j=()=>{let e=Ot(r);Object.keys(E.value).forEach(t=>{const n=E.value[t];if(!n||0===n.length)return;const o=qy({columns:u.value},t);o&&o.filterMethod&&(e=e.filter(e=>n.some(t=>o.filterMethod.call(null,t,e,o))))}),T.value=e},V=()=>{var e;l.value=((e,t)=>{const n=t.sortingColumn;return!n||b(n.sortable)?e:Wy(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)})(null!=(e=T.value)?e:[],{sortingColumn:A.value,sortProp:O.value,sortOrder:M.value})},{setExpandRowKeys:D,toggleRowExpansion:z,updateExpandRows:H,states:W,isRowExpanded:q}=function(e){const t=ar(),n=St(!1),o=St([]);return{updateExpandRows:()=>{const t=e.data.value||[],l=e.rowKey.value;if(n.value)o.value=t.slice();else if(l){const e=Gy(o.value,l);o.value=t.reduce((t,n)=>{const o=Ky(n,l);return e[o]&&t.push(n),t},[])}else o.value=[]},toggleRowExpansion:(n,l)=>{Zy(o.value,n,l,void 0,void 0,void 0,e.rowKey.value)&&t.emit("expand-change",n,o.value.slice())},setExpandRowKeys:n=>{t.store.assertRowKey();const l=e.data.value||[],r=e.rowKey.value,a=Gy(l,r);o.value=n.reduce((e,t)=>{const n=a[t];return n&&e.push(n.row),e},[])},isRowExpanded:t=>{const n=e.rowKey.value;return n?!!Gy(o.value,n)[Ky(t,n)]:o.value.includes(t)},states:{expandRows:o,defaultExpandAll:n}}}({data:l,rowKey:o}),{updateTreeExpandKeys:U,toggleTreeExpansion:K,updateTreeData:G,updateKeyChildren:Y,loadOrToggle:X,states:Z}=function(e){const t=St([]),n=St({}),o=St(16),l=St(!1),r=St({}),a=St("hasChildren"),s=St("children"),i=St(!1),u=ar(),c=yr(()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return p(t)}),d=yr(()=>{const t=e.rowKey.value,n=Object.keys(r.value),o={};return n.length?(n.forEach(e=>{if(r.value[e].length){const n={children:[]};r.value[e].forEach(e=>{const l=Ky(e,t);n.children.push(l),e[a.value]&&!o[l]&&(o[l]={children:[]})}),o[e]=n}}),o):o}),p=t=>{const n=e.rowKey.value,o={};return Jy(t,(e,t,r)=>{const a=Ky(e,n);f(t)?o[a]={children:t.map(e=>Ky(e,n)),level:r}:l.value&&(o[a]={children:[],lazy:!0,level:r})},s.value,a.value,l.value),o},v=(e=!1,o)=>{var r,a;o||(o=null==(r=u.store)?void 0:r.states.defaultExpandAll.value);const s=c.value,i=d.value,p=Object.keys(s),f={};if(p.length){const r=Ot(n),a=[],u=(n,l)=>{if(e)return t.value?o||t.value.includes(l):!(!o&&!(null==n?void 0:n.expanded));{const e=o||t.value&&t.value.includes(l);return!(!(null==n?void 0:n.expanded)&&!e)}};p.forEach(e=>{const t=r[e],n={...s[e]};if(n.expanded=u(t,e),n.lazy){const{loaded:o=!1,loading:l=!1}=t||{};n.loaded=!!o,n.loading=!!l,a.push(e)}f[e]=n});const c=Object.keys(i);l.value&&c.length&&a.length&&c.forEach(e=>{var t;const n=r[e],o=i[e].children;if(a.includes(e)){if(0!==(null==(t=f[e].children)?void 0:t.length))throw new Error("[ElTable]children must be an empty array.");f[e].children=o}else{const{loaded:t=!1,loading:l=!1}=n||{};f[e]={lazy:!0,loaded:!!t,loading:!!l,expanded:u(n,e),children:o,level:void 0}}})}n.value=f,null==(a=u.store)||a.updateTableScrollY()};wn(()=>t.value,()=>{v(!0)}),wn(()=>c.value,()=>{v()}),wn(()=>d.value,()=>{v()});const h=e=>l.value&&e&&"loaded"in e&&!e.loaded,m=(t,o)=>{u.store.assertRowKey();const l=e.rowKey.value,r=Ky(t,l),a=r&&n.value[r];if(r&&a&&"expanded"in a){const e=a.expanded;o=Xc(o)?!a.expanded:o,n.value[r].expanded=o,e!==o&&u.emit("expand-change",t,o),o&&h(a)&&g(t,r,a),u.store.updateTableScrollY()}},g=(e,t,o)=>{const{load:l}=u.props;l&&!n.value[t].loaded&&(n.value[t].loading=!0,l(e,o,o=>{if(!f(o))throw new TypeError("[ElTable] data must be an array");n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,o.length&&(r.value[t]=o),u.emit("expand-change",e,!0)}))};return{loadData:g,loadOrToggle:t=>{u.store.assertRowKey();const o=e.rowKey.value,l=Ky(t,o),r=n.value[l];h(r)?g(t,l,r):m(t,void 0)},toggleTreeExpansion:m,updateTreeExpandKeys:e=>{t.value=e,v()},updateTreeData:v,updateKeyChildren:(e,t)=>{const{lazy:n,rowKey:o}=u.props;if(n){if(!o)throw new Error("[Table] rowKey is required in updateKeyChild");r.value[e]&&(r.value[e]=t)}},normalize:p,states:{expandRowKeys:t,treeData:n,indent:o,lazy:l,lazyTreeNodeMap:r,lazyColumnIdentifier:a,childrenColumnName:s,checkStrictly:i}}}({data:l,rowKey:o}),{updateCurrentRowData:J,updateCurrentRow:Q,setCurrentRowKey:ee,states:te}=function(e){const t=ar(),n=St(null),o=St(null),l=()=>{n.value=null},r=n=>{var l;const{data:r,rowKey:a}=e;let s=null;a.value&&(s=null!=(l=(Ot(r)||[]).find(e=>Ky(e,a.value)===n))?l:null),o.value=null!=s?s:null,t.emit("current-change",o.value,null)};return{setCurrentRowKey:e=>{t.store.assertRowKey(),n.value=e,r(e)},restoreCurrentRowKey:l,setCurrentRowByKey:r,updateCurrentRow:e=>{const n=o.value;if(e&&e!==n)return o.value=e,void t.emit("current-change",o.value,n);!e&&n&&(o.value=null,t.emit("current-change",null,n))},updateCurrentRowData:()=>{const a=e.rowKey.value,s=e.data.value||[],i=o.value;if(i&&!s.includes(i)){if(a){const e=Ky(i,a);r(e)}else o.value=null;Dc(o.value)&&t.emit("current-change",null,i)}else n.value&&(r(n.value),l())},states:{_currentRowKey:n,currentRow:o}}}({data:l,rowKey:o});return{assertRowKey:()=>{if(!o.value)throw new Error("[ElTable] prop row-key is required")},updateColumns:N,scheduleLayout:I,isSelected:B,clearSelection:()=>{x.value=!1;const e=C.value;C.value=[],e.length&&t.emit("selection-change",[])},cleanSelection:()=>{var e,n;let r;if(o.value){r=[];const a=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.childrenColumnName.value,s=Gy(l.value,o.value,!0,a);for(const e in L.value)p(L.value,e)&&!s[e]&&r.push(L.value[e].row)}else r=C.value.filter(e=>!l.value.includes(e));if(r.length){const e=C.value.filter(e=>!r.includes(e));C.value=e,t.emit("selection-change",e.slice())}},getSelectionRows:()=>(C.value||[]).slice(),toggleRowSelection:(e,n,r=!0,a=!1)=>{var s,i,u,c;const d={children:null==(i=null==(s=null==t?void 0:t.store)?void 0:s.states)?void 0:i.childrenColumnName.value,checkStrictly:null==(c=null==(u=null==t?void 0:t.store)?void 0:u.states)?void 0:c.checkStrictly.value};if(Zy(C.value,e,n,d,a?void 0:k.value,l.value.indexOf(e),o.value)){const n=(C.value||[]).slice();r&&t.emit("select",n,e),t.emit("selection-change",n)}},_toggleAllSelection:()=>{var e,n;const o=S.value?!x.value:!(x.value||C.value.length);x.value=o;let r=!1,a=0;const s=null==(n=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:n.rowKey.value,{childrenColumnName:i}=t.store.states,u={children:i.value,checkStrictly:!1};l.value.forEach((e,t)=>{const n=t+a;Zy(C.value,e,o,u,k.value,n,s)&&(r=!0),a+=F(Ky(e,s))}),r&&t.emit("selection-change",C.value?C.value.slice():[]),t.emit("select-all",(C.value||[]).slice())},toggleAllSelection:null,updateAllSelected:()=>{var e;if(0===(null==(e=l.value)?void 0:e.length))return void(x.value=!1);const{childrenColumnName:n}=t.store.states;let o=0,r=0;const a=e=>{var t;for(const l of e){const e=k.value&&k.value.call(null,l,o);if(B(l))r++;else if(!k.value||e)return!1;if(o++,(null==(t=l[n.value])?void 0:t.length)&&!a(l[n.value]))return!1}return!0},s=a(l.value||[]);x.value=0!==r&&s},updateFilters:(e,t)=>{const n={};return uu(e).forEach(e=>{E.value[e.id]=t,n[e.columnKey||e.id]=t}),n},updateCurrentRow:Q,updateSort:$,execFilter:j,execSort:V,execQuery:(e=void 0)=>{(null==e?void 0:e.filter)||j(),V()},clearFilter:e=>{const{tableHeaderRef:n}=t.refs;if(!n)return;const o=Object.assign({},n.filterPanels),l=Object.keys(o);if(l.length)if(b(e)&&(e=[e]),f(e)){const n=e.map(e=>function(e,t){let n=null;for(let o=0;o{const t=n.find(t=>t.id===e);t&&(t.filteredValue=[])}),t.store.commit("filterChange",{column:n,values:[],silent:!0,multi:!0})}else l.forEach(e=>{const t=u.value.find(t=>t.id===e);t&&(t.filteredValue=[])}),E.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:()=>{A.value&&($(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},toggleRowExpansion:z,setExpandRowKeysAdapter:e=>{D(e),U(e)},setCurrentRowKey:ee,toggleRowExpansionAdapter:(e,t)=>{u.value.some(({type:e})=>"expand"===e)?z(e,t):K(e,t)},isRowExpanded:q,updateExpandRows:H,updateCurrentRowData:J,loadOrToggle:X,updateTreeData:G,updateKeyChildren:Y,states:{tableSize:n,rowKey:o,data:l,_data:r,isComplex:a,_columns:s,originColumns:i,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:v,fixedLeafColumns:h,rightFixedLeafColumns:m,updateOrderFns:[],leafColumnsLength:g,fixedLeafColumnsLength:y,rightFixedLeafColumnsLength:w,isAllSelected:x,selection:C,reserveSelection:_,selectOnIndeterminate:S,selectable:k,filters:E,filteredData:T,sortingColumn:A,sortProp:O,sortOrder:M,hoverRow:R,...W,...Z,...te}}}function dw(e,t){return e.map(e=>{var n;return e.id===t.id?t:((null==(n=e.children)?void 0:n.length)&&(e.children=dw(e.children,t)),e)})}function pw(e){e.forEach(e=>{var t,n;e.no=null==(t=e.getColumnIndex)?void 0:t.call(e),(null==(n=e.children)?void 0:n.length)&&pw(e.children)}),e.sort((e,t)=>e.no-t.no)}const fw={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"},"treeProps.checkStrictly":{key:"checkStrictly",default:!1}};function vw(e,t){if(!e)throw new Error("Table is required.");const n=function(){const e=ar(),t=cw(),n=Wa("table"),{t:o}=Rd();return{ns:n,t:o,...t,mutations:{setData(t,n){const o=Ot(t._data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),Ot(t.reserveSelection)?e.store.assertRowKey():o?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,o,l){var r;const a=Ot(t._columns);let s=[];o?(o&&!o.children&&(o.children=[]),null==(r=o.children)||r.push(n),s=dw(a,o)):(a.push(n),s=a),pw(s),t._columns.value=s,t.updateOrderFns.push(l),"selection"===n.type&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(t,n){var o;(null==(o=n.getColumnIndex)?void 0:o.call(n))!==n.no&&(pw(t._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(t,n,o,l){var r;const a=Ot(t._columns)||[];if(o)null==(r=o.children)||r.splice(o.children.findIndex(e=>e.id===n.id),1),tn(()=>{var e;0===(null==(e=o.children)?void 0:e.length)&&delete o.children}),t._columns.value=dw(a,o);else{const e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}const s=t.updateOrderFns.indexOf(l);s>-1&&t.updateOrderFns.splice(s,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){const{prop:o,order:l,init:r}=n;if(o){const n=Ot(t.columns).find(e=>e.property===o);n&&(n.order=l,e.store.updateSort(n,o,l),e.store.commit("changeSortCondition",{init:r}))}},changeSortCondition(t,n){const{sortingColumn:o,sortProp:l,sortOrder:r}=t,a=Ot(o),s=Ot(l),i=Ot(r);Dc(i)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),n&&(n.silent||n.init)||e.emit("sort-change",{column:a,prop:s,order:i}),e.store.updateTableScrollY()},filterChange(t,n){const{column:o,values:l,silent:r}=n,a=e.store.updateFilters(o,l);e.store.execQuery(),r||e.emit("filter-change",a),e.store.updateTableScrollY()},toggleAllSelection(){var t,n;null==(n=(t=e.store).toggleAllSelection)||n.call(t)},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},commit:function(t,...n){const o=e.store.mutations;if(!o[t])throw new Error(`Action not found: ${t}`);o[t].apply(e,[e.store.states,...n])},updateTableScrollY:function(){tn(()=>e.layout.updateScrollY.apply(e.layout))}}}();return n.toggleAllSelection=Mc(n._toggleAllSelection,10),Object.keys(fw).forEach(e=>{hw(mw(t,e),e,n)}),function(e,t){Object.keys(fw).forEach(n=>{wn(()=>mw(t,n),t=>{hw(t,n,e)})})}(n,t),n}function hw(e,t,n){let o=e,l=fw[t];w(l)&&(o=o||l.default,l=l.key),n.states[l].value=o}function mw(e,t){if(t.includes(".")){const n=t.split(".");let o=e;return n.forEach(e=>{o=o[e]}),o}return e[t]}class gw{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=St(null),this.scrollX=St(!1),this.scrollY=St(!1),this.bodyWidth=St(null),this.fixedWidth=St(null),this.rightFixedWidth=St(null),this.gutterWidth=0;for(const t in e)p(e,t)&&(_t(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(Dc(this.height.value))return!1;const e=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(null==e?void 0:e.wrapRef)){let t=!0;const n=this.scrollY.value;return t=e.wrapRef.scrollHeight>e.wrapRef.clientHeight,this.scrollY.value=t,n!==t}return!1}setHeight(e,t="height"){if(!ld)return;const n=this.table.vnode.el;var o;e=Jc(o=e)?o:b(o)?/^\d+(?:px)?$/.test(o)?Number.parseInt(o,10):o:null,this.height.value=Number(e),n||!e&&0!==e?n&&Jc(e)?(n.style[t]=`${e}px`,this.updateElsHeight()):n&&b(e)&&(n.style[t]=e,this.updateElsHeight()):tn(()=>this.setHeight(e,t))}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){var e;if(!ld)return;const t=this.fit,n=null==(e=this.table.vnode.el)?void 0:e.clientWidth;let o=0;const l=this.getFlattenColumns(),r=l.filter(e=>!Jc(e.width));if(l.forEach(e=>{Jc(e.width)&&e.realWidth&&(e.realWidth=null)}),r.length>0&&t){if(l.forEach(e=>{o+=Number(e.width||e.minWidth||80)}),o<=n){this.scrollX.value=!1;const e=n-o;if(1===r.length)r[0].realWidth=Number(r[0].minWidth||80)+e;else{const t=e/r.reduce((e,t)=>e+Number(t.minWidth||80),0);let n=0;r.forEach((e,o)=>{if(0===o)return;const l=Math.floor(Number(e.minWidth||80)*t);n+=l,e.realWidth=Number(e.minWidth||80)+l}),r[0].realWidth=Number(r[0].minWidth||80)+e-n}}else this.scrollX.value=!0,r.forEach(e=>{e.realWidth=Number(e.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(e=>{e.width||e.minWidth?e.realWidth=Number(e.width||e.minWidth):e.realWidth=80,o+=e.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const a=this.store.states.fixedColumns.value;if(a.length>0){let e=0;a.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.fixedWidth.value=e}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let e=0;s.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach(t=>{var n,o;switch(e){case"columns":null==(n=t.state)||n.onColumnsChange(this);break;case"scrollable":null==(o=t.state)||o.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}})}}const bw=Xn({name:"ElTableFilterPanel",components:{ElCheckbox:tg,ElCheckboxGroup:ng,ElScrollbar:Mf,ElTooltip:im,ElIcon:ip,ArrowDown:up,ArrowUp:pp},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:Wh.appendTo},setup(e){const t=ar(),{t:n}=Rd(),o=Wa("table-filter"),l=null==t?void 0:t.parent;e.column&&!l.filterPanels.value[e.column.id]&&(l.filterPanels.value[e.column.id]=t);const r=St(null),a=St(null),s=St(0),i=yr(()=>e.column&&e.column.filters),u=yr(()=>e.column&&e.column.filterClassName?`${o.b()} ${e.column.filterClassName}`:o.b()),c=yr({get:()=>{var t;return((null==(t=e.column)?void 0:t.filteredValue)||[])[0]},set:e=>{d.value&&(ed(e)?d.value.splice(0,1):d.value.splice(0,1,e))}}),d=yr({get:()=>e.column&&e.column.filteredValue||[],set(t){var n;e.column&&(null==(n=e.upDataColumn)||n.call(e,"filteredValue",t))}}),p=yr(()=>!e.column||e.column.filterMultiple),f=()=>{var e;null==(e=r.value)||e.onClose()},v=(e,t)=>{c.value=e,s.value=t,ed(e)?h([]):h(d.value),f()},h=t=>{var n,o;null==(n=e.store)||n.commit("filterChange",{column:e.column,values:t}),null==(o=e.store)||o.updateAllSelected()},m=()=>{if(ed(c))return void(s.value=0);const e=(i.value||[]).findIndex(e=>e.value===c.value);s.value=e>=0?e+1:0};return{multiple:p,filterClassName:u,filteredValue:d,filterValue:c,filters:i,handleConfirm:()=>{h(d.value),f()},handleReset:()=>{d.value=[],h(d.value),f()},handleSelect:v,isPropAbsent:ed,isActive:e=>e.value===c.value,t:n,ns:o,tooltipRef:r,rootRef:a,checkedIndex:s,handleShowTooltip:()=>{var t,n;null==(t=a.value)||t.focus(),!p.value&&m(),e.column&&(null==(n=e.upDataColumn)||n.call(e,"filterOpened",!0))},handleHideTooltip:()=>{var t;e.column&&(null==(t=e.upDataColumn)||t.call(e,"filterOpened",!1))},handleKeydown:e=>{var t,n;const l=cv(e),r=(i.value?i.value.length:0)+1;let u=s.value,c=!0;switch(l){case iv.down:case iv.right:u=(u+1)%r;break;case iv.up:case iv.left:u=(u-1+r)%r;break;case iv.tab:f(),c=!1;break;case iv.enter:case iv.space:if(0===u)v(null,0);else{const e=(i.value||[])[u-1];e.value&&v(e.value,u)}break;default:c=!1}c&&e.preventDefault(),s.value=u,null==(n=null==(t=a.value)?void 0:t.querySelector(`.${o.e("list-item")}:nth-child(${u+1})`))||n.focus()}}}}),yw=["disabled"],ww=["tabindex","aria-checked"],xw=["tabindex","aria-checked","onClick"],Cw=["aria-label"];var _w=Kd(bw,[["render",function(e,t,n,o,l,r){const a=xo("el-checkbox"),s=xo("el-checkbox-group"),i=xo("el-scrollbar"),u=xo("arrow-up"),c=xo("arrow-down"),d=xo("el-icon"),p=xo("el-tooltip");return Fl(),zl(p,{ref:"tooltipRef",offset:0,placement:e.placement,"show-arrow":!1,trigger:"click",role:"dialog",teleported:"",effect:"light",pure:"",loop:"","popper-class":e.filterClassName,persistent:"","append-to":e.appendTo,onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},{content:pn(()=>[e.multiple?(Fl(),Dl("div",{key:0,ref:"rootRef",tabindex:"-1",class:q(e.ns.e("multiple"))},[Kl("div",{class:q(e.ns.e("content"))},[Gl(i,{"wrap-class":e.ns.e("wrap")},{default:pn(()=>[Gl(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.filteredValue=t),class:q(e.ns.e("checkbox-group"))},{default:pn(()=>[(Fl(!0),Dl(Rl,null,Eo(e.filters,e=>(Fl(),zl(a,{key:e.value,value:e.value},{default:pn(()=>[Xl(Z(e.text),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),Kl("div",{class:q(e.ns.e("bottom"))},[Kl("button",{class:q(e.ns.is("disabled",0===e.filteredValue.length)),disabled:0===e.filteredValue.length,type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleConfirm&&e.handleConfirm(...t))},Z(e.t("el.table.confirmFilter")),11,yw),Kl("button",{type:"button",onClick:t[2]||(t[2]=(...t)=>e.handleReset&&e.handleReset(...t))},Z(e.t("el.table.resetFilter")),1)],2)],2)):(Fl(),Dl("ul",{key:1,ref:"rootRef",tabindex:"-1",role:"radiogroup",class:q(e.ns.e("list")),onKeydown:t[4]||(t[4]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Kl("li",{role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isPropAbsent(e.filterValue))]),tabindex:0===e.checkedIndex?0:-1,"aria-checked":e.isPropAbsent(e.filterValue),onClick:t[3]||(t[3]=t=>e.handleSelect(null,0))},Z(e.t("el.table.clearFilter")),11,ww),(Fl(!0),Dl(Rl,null,Eo(e.filters,(t,n)=>(Fl(),Dl("li",{key:t.value,role:"radio",class:q([e.ns.e("list-item"),e.ns.is("active",e.isActive(t))]),tabindex:e.checkedIndex===n+1?0:-1,"aria-checked":e.isActive(t),onClick:o=>e.handleSelect(t.value,n+1)},Z(t.text),11,xw))),128))],34))]),default:pn(()=>{var t;return[Kl("button",{type:"button",class:q(`${e.ns.namespace.value}-table__column-filter-trigger`),"aria-label":e.t("el.table.filterLabel",{column:(null==(t=e.column)?void 0:t.label)||""})},[Gl(d,null,{default:pn(()=>[Ao(e.$slots,"filter-icon",{},()=>{var t;return[(null==(t=e.column)?void 0:t.filterOpened)?(Fl(),zl(u,{key:0})):(Fl(),zl(c,{key:1}))]})]),_:3})],10,Cw)]}),_:3},8,["placement","popper-class","append-to","onShow","onHide"])}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function Sw(e){const t=ar();uo(()=>{n.value.addObserver(t)}),co(()=>{o(n.value),l(n.value)}),fo(()=>{o(n.value),l(n.value)}),ho(()=>{n.value.removeObserver(t)});const n=yr(()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t}),o=t=>{var n;const o=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col"))||[];if(!o.length)return;const l=t.getFlattenColumns(),r={};l.forEach(e=>{r[e.id]=e});for(let e=0,a=o.length;e{var n,o;const l=(null==(n=e.vnode.el)?void 0:n.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let e=0,a=l.length;e{const t=[];return e.forEach(e=>{e.children?(t.push(e),t.push.apply(t,Ew(e.children))):t.push(e)}),t},Tw=e=>{let t=1;const n=(e,o)=>{if(o&&(e.level=o.level+1,t{n(o,e),t+=o.colSpan}),e.colSpan=t}else e.colSpan=1};e.forEach(e=>{e.level=1,n(e,void 0)});const o=[];for(let l=0;l{e.children?(e.rowSpan=1,e.children.forEach(e=>e.isSubColumn=!0)):e.rowSpan=t-e.level+1,o[e.level-1].push(e)}),o};var Aw=Xn({name:"ElTableHeader",components:{ElCheckbox:tg},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){const n=ar(),o=mn(kw),l=Wa("table"),r=St({}),{onColumnsChange:a,onScrollableChange:s}=Sw(o),i="auto"===(null==o?void 0:o.props.tableLayout),u=pt(new Map),c=St();let d;const p=()=>{d=setTimeout(()=>{u.size>0&&(u.forEach((e,t)=>{const n=c.value.querySelector(`.${t.replace(/\s/g,".")}`);if(n){const t=n.getBoundingClientRect().width;e.width=t||e.width}}),u.clear())})};wn(u,p),vo(()=>{d&&(clearTimeout(d),d=void 0)}),co(async()=>{await tn(),await tn();const{prop:t,order:n}=e.defaultSort;null==o||o.store.commit("sort",{prop:t,order:n,init:!0}),p()});const{handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x}=function(e,t){const n=ar(),o=mn(kw),l=e=>{e.stopPropagation()},r=St(null),a=St(!1),s=St(),i=(t,n,l)=>{var r;t.stopPropagation();const a=n.order===l?null:l||(({order:e,sortOrders:t})=>{if(""===e)return t[0];const n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]})(n),s=null==(r=t.target)?void 0:r.closest("th");if(s&&np(s,"noclick"))return void lp(s,"noclick");if(!n.sortable)return;const i=t.currentTarget;if(["ascending","descending"].some(e=>np(i,e)&&!n.sortOrders.includes(e)))return;const u=e.store.states;let c,d=u.sortProp.value;const p=u.sortingColumn.value;(p!==n||p===n&&Dc(p.order))&&(p&&(p.order=null),u.sortingColumn.value=n,d=n.property),c=n.order=a||null,u.sortProp.value=d,u.sortOrder.value=c,null==o||o.store.commit("changeSortCondition")};return{handleHeaderClick:(e,t)=>{!t.filters&&t.sortable?i(e,t,!1):t.filterable&&!t.sortable&&l(e),null==o||o.emit("header-click",t,e)},handleHeaderContextMenu:(e,t)=>{null==o||o.emit("header-contextmenu",t,e)},handleMouseDown:(l,i)=>{var u,c;if(ld&&!(i.children&&i.children.length>0)&&r.value&&e.border&&r.value.id===i.id){a.value=!0;const d=o;t("set-drag-visible",!0);const p=null==d?void 0:d.vnode.el,f=null==p?void 0:p.getBoundingClientRect().left,v=null==(c=null==(u=null==n?void 0:n.vnode)?void 0:u.el)?void 0:c.querySelector(`th.${i.id}`),h=v.getBoundingClientRect(),m=h.left-f+30;op(v,"noclick"),s.value={startMouseLeft:l.clientX,startLeft:h.right-f,startColumnLeft:h.left-f,tableLeft:f};const g=null==d?void 0:d.refs.resizeProxy;g.style.left=`${s.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const b=e=>{const t=e.clientX-s.value.startMouseLeft,n=s.value.startLeft+t;g.style.left=`${Math.max(m,n)}px`},y=()=>{if(a.value){const{startColumnLeft:n,startLeft:o}=s.value,u=Number.parseInt(g.style.left,10)-n;i.width=i.realWidth=u,null==d||d.emit("header-dragend",i.width,o-n,i,l),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",a.value=!1,r.value=null,s.value=void 0,t("set-drag-visible",!1)}document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",y),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{lp(v,"noclick")},0)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",y)}},handleMouseMove:(t,n)=>{var o;if(!e.border||n.children&&n.children.length>0)return;const l=t.target,s=Qc(l)?l.closest("th"):null;if(!s)return;const i=np(s,"is-sortable");if(i){const e=a.value?"col-resize":"";s.style.cursor=e;const t=s.querySelector(".caret-wrapper");t&&(t.style.cursor=e)}if(!n.resizable||a.value)return void(r.value=null);const u=s.getBoundingClientRect(),c=(null==(o=s.parentNode)?void 0:o.lastElementChild)===s,d=e.allowDragLastColumn||!c,p=u.width>12&&u.right-t.clientX<8&&d,f=p?"col-resize":"";document.body.style.cursor=f,r.value=p?n:null,i&&(s.style.cursor=f)},handleMouseOut:()=>{ld&&!a.value&&(document.body.style.cursor="")},handleSortClick:i,handleFilterClick:l}}(e,t),{getHeaderRowStyle:C,getHeaderRowClass:_,getHeaderCellStyle:S,getHeaderCellClass:k}=function(e){const t=mn(kw),n=Wa("table");return{getHeaderRowStyle:e=>{const n=null==t?void 0:t.props.headerRowStyle;return g(n)?n.call(null,{rowIndex:e}):n},getHeaderRowClass:e=>{const n=[],o=null==t?void 0:t.props.headerRowClassName;return b(o)?n.push(o):g(o)&&n.push(o.call(null,{rowIndex:e})),n.join(" ")},getHeaderCellStyle:(n,o,l,r)=>{var a;let s=null!=(a=null==t?void 0:t.props.headerCellStyle)?a:{};g(s)&&(s=s.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,r.fixed,e.store,l);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getHeaderCellClass:(o,l,r,a)=>{const s=lw(n.b(),l,a.fixed,e.store,r),i=[a.id,a.order,a.headerAlign,a.className,a.labelClassName,...s];a.children||i.push("is-leaf"),a.sortable&&i.push("is-sortable");const u=null==t?void 0:t.props.headerCellClassName;return b(u)?i.push(u):g(u)&&i.push(u.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),i.push(n.e("cell")),i.filter(e=>Boolean(e)).join(" ")}}}(e),{isGroup:E,toggleAllSelection:T,columnRows:A}=function(e){const t=mn(kw),n=yr(()=>Tw(e.store.states.originColumns.value));return{isGroup:yr(()=>{const e=n.value.length>1;return e&&t&&(t.state.isGroup.value=!0),e}),toggleAllSelection:e=>{e.stopPropagation(),null==t||t.store.commit("toggleAllSelection")},columnRows:n}}(e),{t:O}=Rd();return n.state={onColumnsChange:a,onScrollableChange:s},n.filterPanels=r,{ns:l,t:O,filterPanels:r,onColumnsChange:a,onScrollableChange:s,columnRows:A,getHeaderRowClass:_,getHeaderRowStyle:C,getHeaderCellClass:k,getHeaderCellStyle:S,handleHeaderClick:f,handleHeaderContextMenu:v,handleMouseDown:h,handleMouseMove:m,handleMouseOut:y,handleSortClick:w,handleFilterClick:x,isGroup:E,toggleAllSelection:T,saveIndexSelection:u,isTableLayoutAuto:i,theadRef:c,updateFixedColumnStyle:p}},render(){const{ns:e,t:t,isGroup:n,columnRows:o,getHeaderCellStyle:l,getHeaderCellClass:r,getHeaderRowClass:a,getHeaderRowStyle:s,handleHeaderClick:i,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:d,handleSortClick:p,handleMouseOut:f,store:v,$parent:h,saveIndexSelection:m,isTableLayoutAuto:g}=this;let b=1;return wr("thead",{ref:"theadRef",class:e.is("group",n)},o.map((e,n)=>wr("tr",{class:a(n),key:n,style:s(n)},e.map((o,a)=>{o.rowSpan>b&&(b=o.rowSpan);const s=r(n,a,e,o);return g&&o.fixed&&m.set(s,o),wr("th",{class:s,colspan:o.colSpan,key:`${o.id}-thead`,rowspan:o.rowSpan,scope:o.colSpan>1?"colgroup":"col",ariaSort:o.sortable?o.order:void 0,style:l(n,a,e,o),onClick:e=>{var t;(null==(t=e.currentTarget)?void 0:t.classList.contains("noclick"))||i(e,o)},onContextmenu:e=>u(e,o),onMousedown:e=>c(e,o),onMousemove:e=>d(e,o),onMouseout:f},[wr("div",{class:["cell",o.filteredValue&&o.filteredValue.length>0?"highlight":""]},[o.renderHeader?o.renderHeader({column:o,$index:a,store:v,_self:h}):o.label,o.sortable&&wr("button",{type:"button",class:"caret-wrapper","aria-label":t("el.table.sortLabel",{column:o.label||""}),onClick:e=>p(e,o)},[wr("i",{onClick:e=>p(e,o,"ascending"),class:"sort-caret ascending"}),wr("i",{onClick:e=>p(e,o,"descending"),class:"sort-caret descending"})]),o.filterable&&wr(_w,{store:v,placement:o.filterPlacement||"bottom-start",appendTo:null==h?void 0:h.appendFilterPanelTo,column:o,upDataColumn:(e,t)=>{o[e]=t}},{"filter-icon":()=>o.renderFilterIcon?o.renderFilterIcon({filterOpened:o.filterOpened}):null})])])}))))}});function Ow(e,t,n=.03){return e-t>n}function Mw(e){const t=mn(kw),n=St(""),o=St(wr("div")),l=(n,o,l)=>{var r,a,s;const i=t,u=Hy(n);let c=null;const d=null==(r=null==i?void 0:i.vnode.el)?void 0:r.dataset.prefix;u&&(c=Uy({columns:null!=(s=null==(a=e.store)?void 0:a.states.columns.value)?s:[]},u,d),c&&(null==i||i.emit(`cell-${l}`,o,c,u,n))),null==i||i.emit(`row-${l}`,o,c,n)},r=Mc(t=>{var n;null==(n=e.store)||n.commit("setHoverRow",t)},30),a=Mc(()=>{var t;null==(t=e.store)||t.commit("setHoverRow",null)},30),s=(e,t,n)=>{var o;let l=null==(o=null==t?void 0:t.target)?void 0:o.parentNode;for(;e>1&&(l=null==l?void 0:l.nextSibling,l&&"TR"===l.nodeName);)n(l,"hover-row hover-fixed-row"),e--};return{handleDoubleClick:(e,t)=>{l(e,t,"dblclick")},handleClick:(t,n)=>{var o;null==(o=e.store)||o.commit("setCurrentRow",n),l(t,n,"click")},handleContextMenu:(e,t)=>{l(e,t,"contextmenu")},handleMouseEnter:r,handleMouseLeave:a,handleCellMouseEnter:(n,o,l)=>{var r,a,i,u,c,d,p,f,v;if(!t)return;const h=t,m=Hy(n),g=null==(r=null==h?void 0:h.vnode.el)?void 0:r.dataset.prefix;let b=null;if(m){if(b=Uy({columns:null!=(i=null==(a=e.store)?void 0:a.states.columns.value)?i:[]},m,g),!b)return;m.rowSpan>1&&s(m.rowSpan,n,op);const t=h.hoverState={cell:m,column:b,row:o};null==h||h.emit("cell-mouse-enter",t.row,t.column,t.cell,n)}if(!l)return void((null==(u=Qy)?void 0:u.trigger)===m&&(null==(c=Qy)||c()));const y=n.target.querySelector(".cell");if(!(np(y,`${g}-tooltip`)&&y.childNodes.length&&(null==(d=y.textContent)?void 0:d.trim())))return;const w=document.createRange();w.setStart(y,0),w.setEnd(y,y.childNodes.length);const{width:x,height:C}=w.getBoundingClientRect(),{width:_,height:S}=y.getBoundingClientRect(),{top:k,left:E,right:T,bottom:A}=(e=>{const t=window.getComputedStyle(e,null);return{left:Number.parseInt(t.paddingLeft,10)||0,right:Number.parseInt(t.paddingRight,10)||0,top:Number.parseInt(t.paddingTop,10)||0,bottom:Number.parseInt(t.paddingBottom,10)||0}})(y),O=k+A;Ow(x+(E+T),_)||Ow(C+O,S)||Ow(y.scrollWidth,_)?ew(l,null!=(p=(null==m?void 0:m.innerText)||(null==m?void 0:m.textContent))?p:"",o,b,m,h):(null==(f=Qy)?void 0:f.trigger)===m&&(null==(v=Qy)||v())},handleCellMouseLeave:e=>{const n=Hy(e);if(!n)return;n.rowSpan>1&&s(n.rowSpan,e,lp);const o=null==t?void 0:t.hoverState;null==t||t.emit("cell-mouse-leave",null==o?void 0:o.row,null==o?void 0:o.column,null==o?void 0:o.cell,e)},tooltipContent:n,tooltipTrigger:o}}const Rw=["colspan","rowspan"];var Lw=Kd(Xn({name:"TableTdWrapper",__name:"td-wrapper",props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup:e=>(t,n)=>(Fl(),Dl("td",{colspan:e.colspan,rowspan:e.rowspan},[Ao(t.$slots,"default")],8,Rw))}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table-body/td-wrapper.vue"]]);function Pw(e){const t=mn(kw),n=Wa("table"),{handleDoubleClick:o,handleClick:l,handleContextMenu:r,handleMouseEnter:a,handleMouseLeave:s,handleCellMouseEnter:i,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:d}=Mw(e),{getRowStyle:p,getRowClass:v,getCellStyle:h,getCellClass:m,getSpan:y,getColspanRealWidth:x}=function(e){const t=mn(kw),n=Wa("table");return{getRowStyle:(e,n)=>{const o=null==t?void 0:t.props.rowStyle;return g(o)?o.call(null,{row:e,rowIndex:n}):o||null},getRowClass:(o,l,r)=>{var a;const s=[n.e("row")];(null==t?void 0:t.props.highlightCurrentRow)&&o===(null==(a=e.store)?void 0:a.states.currentRow.value)&&s.push("current-row"),e.stripe&&r%2==1&&s.push(n.em("row","striped"));const i=null==t?void 0:t.props.rowClassName;return b(i)?s.push(i):g(i)&&s.push(i.call(null,{row:o,rowIndex:l})),s},getCellStyle:(n,o,l,r)=>{const a=null==t?void 0:t.props.cellStyle;let s=null!=a?a:{};g(a)&&(s=a.call(null,{rowIndex:n,columnIndex:o,row:l,column:r}));const i=aw(o,null==e?void 0:e.fixed,e.store);return sw(i,"left"),sw(i,"right"),Object.assign({},s,i)},getCellClass:(o,l,r,a,s)=>{const i=lw(n.b(),l,null==e?void 0:e.fixed,e.store,void 0,s),u=[a.id,a.align,a.className,...i],c=null==t?void 0:t.props.cellClassName;return b(c)?u.push(c):g(c)&&u.push(c.call(null,{rowIndex:o,columnIndex:l,row:r,column:a})),u.push(n.e("cell")),u.filter(e=>Boolean(e)).join(" ")},getSpan:(e,n,o,l)=>{let r=1,a=1;const s=null==t?void 0:t.props.spanMethod;if(g(s)){const t=s({row:e,column:n,rowIndex:o,columnIndex:l});f(t)?(r=t[0],a=t[1]):w(t)&&(r=t.rowspan,a=t.colspan)}return{rowspan:r,colspan:a}},getColspanRealWidth:(e,t,n)=>{if(t<1)return e[n].realWidth;const o=e.map(({realWidth:e,width:t})=>e||t).slice(n,n+t);return Number(o.reduce((e,t)=>Number(e)+Number(t),-1))}}}(e);let C=-1;const _=yr(()=>{var t;return null==(t=e.store)?void 0:t.states.columns.value.findIndex(({type:e})=>"default"===e)}),S=(e,n)=>{var o;const l=null==(o=null==t?void 0:t.props)?void 0:o.rowKey;return l?Ky(e,l):n},k=(c,d,f,g=!1)=>{const{tooltipEffect:b,tooltipOptions:w,store:k}=e,{indent:T,columns:A}=k.states,O=[];let M=!0;return f&&(O.push(n.em("row",`level-${f.level}`)),M=!!f.display),0===d&&(C=-1),e.stripe&&M&&C++,O.push(...v(c,d,C)),wr("tr",{style:[M?null:{display:"none"},p(c,d)],class:O,key:S(c,d),onDblclick:e=>o(e,c),onClick:e=>l(e,c),onContextmenu:e=>r(e,c),onMouseenter:()=>a(d),onMouseleave:s},A.value.map((n,o)=>{const{rowspan:l,colspan:r}=y(c,n,d,o);if(!l||!r)return null;const a=Object.assign({},n);a.realWidth=x(A.value,r,o);const s={store:k,_self:e.context||t,column:a,row:c,$index:d,cellIndex:o,expanded:g};o===_.value&&f&&(s.treeNode={indent:f.level&&f.level*T.value,level:f.level},Zc(f.expanded)&&(s.treeNode.expanded=f.expanded,"loading"in f&&(s.treeNode.loading=f.loading),"noLazyChildren"in f&&(s.treeNode.noLazyChildren=f.noLazyChildren)));const p=`${S(c,d)},${o}`,v=a.columnKey||a.rawColumnKey||"",C=n.showOverflowTooltip&&Hc({effect:b},w,n.showOverflowTooltip);return wr(Lw,{style:h(d,o,c,n),class:m(d,o,c,n,r-1),key:`${v}${p}`,rowspan:l,colspan:r,onMouseenter:e=>i(e,c,C),onMouseleave:u},{default:()=>E(o,n,s)})}))},E=(e,t,n)=>t.renderCell(n);return{wrappedRowRender:(o,l)=>{const r=e.store,{isRowExpanded:a,assertRowKey:s}=r,{treeData:i,lazyTreeNodeMap:u,childrenColumnName:c,rowKey:d}=r.states,p=r.states.columns.value;if(p.some(({type:e})=>"expand"===e)){const e=a(o),s=k(o,l,void 0,e),i=null==t?void 0:t.renderExpanded;if(!i)return s;const u=[[s]];return(t.props.preserveExpandedContent||e)&&u[0].push(wr("tr",{key:`expanded-row__${s.key}`,style:{display:e?"":"none"}},[wr("td",{colspan:p.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[i({row:o,$index:l,store:r,expanded:e})])])),u}if(Object.keys(i.value).length){s();const e=Ky(o,d.value);let t=i.value[e],n=null;t&&(n={expanded:t.expanded,level:t.level,display:!0,noLazyChildren:void 0,loading:void 0},Zc(t.lazy)&&(n&&Zc(t.loaded)&&t.loaded&&(n.noLazyChildren=!(t.children&&t.children.length)),n.loading=t.loading));const r=[k(o,l,null!=n?n:void 0)];if(t){let n=0;const a=(e,o)=>{e&&e.length&&o&&e.forEach(e=>{const s={display:o.display&&o.expanded,level:o.level+1,expanded:!1,noLazyChildren:!1,loading:!1},p=Ky(e,d.value);if(ed(p))throw new Error("For nested data item, row-key is required.");if(t={...i.value[p]},t&&(s.expanded=t.expanded,t.level=t.level||s.level,t.display=!(!t.expanded||!s.display),Zc(t.lazy)&&(Zc(t.loaded)&&t.loaded&&(s.noLazyChildren=!(t.children&&t.children.length)),s.loading=t.loading)),n++,r.push(k(e,l+n,s)),t){const n=u.value[p]||e[c.value];a(n,t)}})};t.display=!0;const s=u.value[e]||o[c.value];a(s,t)}return r}return k(o,l,void 0)},tooltipContent:c,tooltipTrigger:d}}var Nw=Xn({name:"ElTableBody",props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},setup(e){var t;const n=ar(),o=mn(kw),l=Wa("table"),{wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}=Pw(e),{onColumnsChange:i,onScrollableChange:u}=Sw(o),c=[];return wn(null==(t=e.store)?void 0:t.states.hoverRow,(t,o)=>{var r,a;const s=null==n?void 0:n.vnode.el,i=Array.from((null==s?void 0:s.children)||[]).filter(e=>null==e?void 0:e.classList.contains(`${l.e("row")}`));let u=t;const d=null==(r=i[u])?void 0:r.childNodes;if(null==d?void 0:d.length){let e=0;Array.from(d).reduce((t,n,o)=>{var l,r;return(null==(l=d[o])?void 0:l.colSpan)>1&&(e=null==(r=d[o])?void 0:r.colSpan),"TD"!==n.nodeName&&0===e&&t.push(o),e>0&&e--,t},[]).forEach(e=>{var n;for(u=t;u>0;){const t=null==(n=i[u-1])?void 0:n.childNodes;if(t[e]&&"TD"===t[e].nodeName&&t[e].rowSpan>1){op(t[e],"hover-cell"),c.push(t[e]);break}u--}})}else c.forEach(e=>lp(e,"hover-cell")),c.length=0;(null==(a=e.store)?void 0:a.states.isComplex.value)&&ld&&ep(()=>{const e=i[o],n=i[t];e&&!e.classList.contains("hover-fixed-row")&&lp(e,"hover-row"),n&&op(n,"hover-row")})}),ho(()=>{var e;null==(e=Qy)||e()}),{ns:l,onColumnsChange:i,onScrollableChange:u,wrappedRowRender:r,tooltipContent:a,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this;return wr("tbody",{tabIndex:-1},[((null==t?void 0:t.states.data.value)||[]).reduce((t,n)=>t.concat(e(n,t.length)),[])])}});function Iw(e){const{columns:t}=function(){const e=mn(kw),t=null==e?void 0:e.store;return{leftFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedLeafColumnsLength.value)?e:0}),rightFixedLeafCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columnsCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value.length)?e:0}),leftFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedColumns.value.length)?e:0}),rightFixedCount:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),columns:yr(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value)?e:[]})}}(),n=Wa("table");return{getCellClasses:(t,o)=>{const l=t[o],r=[n.e("cell"),l.id,l.align,l.labelClassName,...lw(n.b(),o,l.fixed,e.store)];return l.className&&r.push(l.className),l.children||r.push(n.is("leaf")),r},getCellStyles:(t,n)=>{const o=aw(n,t.fixed,e.store);return sw(o,"left"),sw(o,"right"),o},columns:t}}var Bw=Xn({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const t=mn(kw),n=Wa("table"),{getCellClasses:o,getCellStyles:l,columns:r}=Iw(e),{onScrollableChange:a,onColumnsChange:s}=Sw(t);return{ns:n,onScrollableChange:a,onColumnsChange:s,getCellClasses:o,getCellStyles:l,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:l}=this,r=this.store.states.data.value;let a=[];return o?a=o({columns:e,data:r}):e.forEach((e,t)=>{if(0===t)return void(a[t]=l);const n=r.map(t=>Number(t[e.property])),o=[];let s=!0;n.forEach(e=>{if(!Number.isNaN(+e)){s=!1;const t=`${e}`.split(".")[1];o.push(t?t.length:0)}});const i=Math.max.apply(null,o);a[t]=s?"":n.reduce((e,t)=>{const n=Number(t);return Number.isNaN(+n)?e:Number.parseFloat((e+t).toFixed(Math.min(i,20)))},0)}),wr(wr("tfoot",[wr("tr",{},[...e.map((o,l)=>wr("td",{key:l,colspan:o.colSpan,rowspan:o.rowSpan,class:n(e,l),style:t(o,l)},[wr("div",{class:["cell",o.labelClassName]},[a[l]])]))])]))}});function Fw(e,t,n,o){const l=St(!1),r=St(null),a=St(!1),s=St({width:null,height:null,headerHeight:null}),i=St(!1),u=St(),c=St(0),d=St(0),p=St(0),f=St(0),v=St(0);wn(()=>e.height,e=>{t.setHeight(null!=e?e:null)},{immediate:!0}),wn(()=>e.maxHeight,e=>{t.setMaxHeight(null!=e?e:null)},{immediate:!0}),wn(()=>[e.currentRowKey,n.states.rowKey],([e,t])=>{Ot(t)&&Ot(e)&&n.setCurrentRowKey(`${e}`)},{immediate:!0}),wn(()=>e.data,e=>{o.store.commit("setData",e)},{immediate:!0,deep:!0}),yn(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const h=yr(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),m=yr(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),g=()=>{h.value&&t.updateElsHeight(),t.updateColumnsWidth(),"undefined"!=typeof window&&requestAnimationFrame(y)};co(async()=>{await tn(),n.updateColumns(),w(),requestAnimationFrame(g);const t=o.vnode.el,l=o.refs.headerWrapper;e.flexible&&t&&t.parentElement&&(t.parentElement.style.minWidth="0"),s.value={width:u.value=t.offsetWidth,height:t.offsetHeight,headerHeight:e.showHeader&&l?l.offsetHeight:null},n.states.columns.value.forEach(e=>{e.filteredValue&&e.filteredValue.length&&o.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})}),o.$ready=!0});const b=e=>{const{tableWrapper:n}=o.refs;((e,n)=>{if(!e)return;const o=Array.from(e.classList).filter(e=>!e.startsWith("is-scrolling-"));o.push(t.scrollX.value?n:"is-scrolling-none"),e.className=o.join(" ")})(n,e)},y=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const e="is-scrolling-none";return void((e=>{const{tableWrapper:t}=o.refs;return!(!t||!t.classList.contains(e))})(e)||b(e))}const e=o.refs.scrollBarRef.wrapRef;if(!e)return;const{scrollLeft:n,offsetWidth:l,scrollWidth:r}=e,{headerWrapper:a,footerWrapper:s}=o.refs;a&&(a.scrollLeft=n),s&&(s.scrollLeft=n),b(n>=r-l-1?"is-scrolling-right":0===n?"is-scrolling-left":"is-scrolling-middle")},w=()=>{o.refs.scrollBarRef&&(o.refs.scrollBarRef.wrapRef&&hd(o.refs.scrollBarRef.wrapRef,"scroll",y,{passive:!0}),e.fit?bd(o.vnode.el,x):hd(window,"resize",x),bd(o.refs.tableInnerWrapper,()=>{var e,t;x(),null==(t=null==(e=o.refs)?void 0:e.scrollBarRef)||t.update()}))},x=()=>{var t,n,l,r;const a=o.vnode.el;if(!o.$ready||!a)return;let i=!1;const{width:m,height:b,headerHeight:y}=s.value,w=u.value=a.offsetWidth;m!==w&&(i=!0);const x=a.offsetHeight;(e.height||h.value)&&b!==x&&(i=!0);const C="fixed"===e.tableLayout?o.refs.headerWrapper:null==(t=o.refs.tableHeaderRef)?void 0:t.$el;e.showHeader&&(null==C?void 0:C.offsetHeight)!==y&&(i=!0),c.value=(null==(n=o.refs.tableWrapper)?void 0:n.scrollHeight)||0,p.value=(null==C?void 0:C.scrollHeight)||0,f.value=(null==(l=o.refs.footerWrapper)?void 0:l.offsetHeight)||0,v.value=(null==(r=o.refs.appendWrapper)?void 0:r.offsetHeight)||0,d.value=c.value-p.value-f.value-v.value,i&&(s.value={width:w,height:x,headerHeight:e.showHeader&&(null==C?void 0:C.offsetHeight)||0},g())},C=vf(),_=yr(()=>{const{bodyWidth:e,scrollY:n,gutterWidth:o}=t;return e.value?e.value-(n.value?o:0)+"px":""}),S=yr(()=>e.maxHeight?"fixed":e.tableLayout),k=yr(()=>{if(e.data&&e.data.length)return;let t="100%";e.height&&d.value&&(t=`${d.value}px`);const n=u.value;return{width:n?`${n}px`:"",height:t}}),E=yr(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${p.value+f.value}px)`}:{maxHeight:+e.maxHeight-p.value-f.value+"px"}:{});return{isHidden:l,renderExpanded:r,setDragVisible:e=>{a.value=e},isGroup:i,handleMouseLeave:()=>{o.store.commit("setHoverRow",null),o.hoverState&&(o.hoverState=null)},handleHeaderFooterMousewheel:(e,t)=>{const{pixelX:n,pixelY:l}=t;Math.abs(n)>=Math.abs(l)&&(o.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},tableSize:C,emptyBlockStyle:k,resizeProxyVisible:a,bodyWidth:_,resizeState:s,doLayout:g,tableBodyStyles:m,tableLayout:S,scrollbarViewStyle:{display:"inline-block",verticalAlign:"middle"},scrollbarStyle:E}}function $w(e){const t=St();co(()=>{(()=>{const n=e.vnode.el.querySelector(".hidden-columns"),o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(e=>e())}),t.value.observe(n,{childList:!0,subtree:!0})})()}),ho(()=>{var e;null==(e=t.value)||e.disconnect()})}var jw={data:{type:Array,default:()=>[]},size:Bd,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:[String,Object,Array],default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean};function Vw(e){const t="auto"===e.tableLayout;let n=e.columns||[];return t&&n.every(({width:e})=>Xc(e))&&(n=[]),wr("colgroup",{},n.map(n=>wr("col",(n=>{const o={key:`${e.tableLayout}_${n.id}`,style:{},name:void 0};return t?o.style={width:`${n.width}px`}:o.name=n.id,o})(n))))}Vw.props=["columns","tableLayout"];var Dw,zw,Hw,Ww,qw,Uw,Kw,Gw,Yw,Xw,Zw,Jw,Qw,ex,tx,nx=!1;function ox(){if(!nx){nx=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Jw=/\b(iPhone|iP[ao]d)/.exec(e),Qw=/\b(iP[ao]d)/.exec(e),Xw=/Android/i.exec(e),ex=/FBAN\/\w+;/i.exec(e),tx=/Mobile/i.exec(e),Zw=!!/Win64/.exec(e),t){(Dw=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(Dw=document.documentMode);var o=/(?:Trident\/(\d+.\d+))/.exec(e);Uw=o?parseFloat(o[1])+4:Dw,zw=t[2]?parseFloat(t[2]):NaN,Hw=t[3]?parseFloat(t[3]):NaN,(Ww=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),qw=t&&t[1]?parseFloat(t[1]):NaN):qw=NaN}else Dw=zw=Hw=qw=Ww=NaN;if(n){if(n[1]){var l=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Kw=!l||parseFloat(l[1].replace("_","."))}else Kw=!1;Gw=!!n[2],Yw=!!n[3]}else Kw=Gw=Yw=!1}}var lx,rx={ie:function(){return ox()||Dw},ieCompatibilityMode:function(){return ox()||Uw>Dw},ie64:function(){return rx.ie()&&Zw},firefox:function(){return ox()||zw},opera:function(){return ox()||Hw},webkit:function(){return ox()||Ww},safari:function(){return rx.webkit()},chrome:function(){return ox()||qw},windows:function(){return ox()||Gw},osx:function(){return ox()||Kw},linux:function(){return ox()||Yw},iphone:function(){return ox()||Jw},mobile:function(){return ox()||Jw||Qw||Xw||tx},nativeApp:function(){return ox()||ex},android:function(){return ox()||Xw},ipad:function(){return ox()||Qw}},ax=rx,sx={canUseDOM:!!(typeof window<"u"&&window.document&&window.document.createElement)};sx.canUseDOM&&(lx=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var ix=function(e,t){if(!sx.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var l=document.createElement("div");l.setAttribute(n,"return;"),o="function"==typeof l[n]}return!o&&lx&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o};function ux(e){var t=0,n=0,o=0,l=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=10*t,l=10*n,"deltaY"in e&&(l=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||l)&&e.deltaMode&&(1==e.deltaMode?(o*=40,l*=40):(o*=800,l*=800)),o&&!t&&(t=o<1?-1:1),l&&!n&&(n=l<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:l}}ux.getEventType=function(){return ax.firefox()?"DOMMouseScroll":ix("wheel")?"wheel":"mousewheel"};var cx=ux;const dx="_Mousewheel",px=function(e,t){if(e&&e.addEventListener){fx(e);const n=function(e){const n=cx(e);t&&Reflect.apply(t,this,[e,n])};e[dx]={wheelHandler:n},e.addEventListener("wheel",n,{passive:!0})}},fx=e=>{var t;(null==(t=e[dx])?void 0:t.wheelHandler)&&(e.removeEventListener("wheel",e[dx].wheelHandler),e[dx]=null)};let vx=1;const hx=["data-prefix"],mx={ref:"hiddenColumns",class:"hidden-columns"};var gx=Kd(Xn({name:"ElTable",directives:{Mousewheel:{beforeMount(e,t){px(e,t.value)},unmounted(e){fx(e)},updated(e,t){t.value!==t.oldValue&&px(e,t.value)}}},components:{TableHeader:Aw,TableBody:Nw,TableFooter:Bw,ElScrollbar:Mf,hColgroup:Vw},props:jw,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t:t}=Rd(),n=Wa("table"),o=ar();hn(kw,o);const l=vw(o,e);o.store=l;const r=new gw({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=r;const a=yr(()=>0===(l.states.data.value||[]).length),{setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,sort:h,updateKeyChildren:m}=function(e){return{setCurrentRow:t=>{e.commit("setCurrentRow",t)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(t,n,o=!0)=>{e.toggleRowSelection(t,n,!1,o),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit("sort",{prop:t,order:n})},updateKeyChildren:(t,n)=>{e.updateKeyChildren(t,n)}}}(l),{isHidden:g,renderExpanded:b,setDragVisible:y,isGroup:w,handleMouseLeave:x,handleHeaderFooterMousewheel:C,tableSize:_,emptyBlockStyle:S,resizeProxyVisible:k,bodyWidth:E,resizeState:T,doLayout:A,tableBodyStyles:O,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L}=Fw(e,r,l,o),{scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B}=(()=>{const e=St(),t=(t,n)=>{const o=e.value;o&&Jc(n)&&["Top","Left"].includes(t)&&o[`setScroll${t}`](n)};return{scrollBarRef:e,scrollTo:(t,n)=>{const o=e.value;o&&o.scrollTo(t,n)},setScrollTop:e=>t("Top",e),setScrollLeft:e=>t("Left",e)}})(),F=Mc(A,50),$=`${n.namespace.value}-table_${vx++}`;o.tableId=$,o.state={isGroup:w,resizeState:T,doLayout:A,debouncedUpdateLayout:F};const j=yr(()=>{var n;return null!=(n=e.sumText)?n:t("el.table.sumText")}),V=yr(()=>{var n;return null!=(n=e.emptyText)?n:t("el.table.emptyText")}),D=yr(()=>Tw(l.states.originColumns.value)[0]);return $w(o),vo(()=>{F.cancel()}),{ns:n,layout:r,store:l,columns:D,handleHeaderFooterMousewheel:C,handleMouseLeave:x,tableId:$,tableSize:_,isHidden:g,isEmpty:a,renderExpanded:b,resizeProxyVisible:k,resizeState:T,isGroup:w,bodyWidth:E,tableBodyStyles:O,emptyBlockStyle:S,debouncedUpdateLayout:F,setCurrentRow:s,getSelectionRows:i,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:f,clearSort:v,doLayout:A,sort:h,updateKeyChildren:m,t:t,setDragVisible:y,context:o,computedSumText:j,computedEmptyText:V,tableLayout:M,scrollbarViewStyle:R,scrollbarStyle:L,scrollBarRef:P,scrollTo:N,setScrollLeft:I,setScrollTop:B,allowDragLastColumn:e.allowDragLastColumn}}}),[["render",function(e,t,n,o,l,r){const a=xo("hColgroup"),s=xo("table-header"),i=xo("table-body"),u=xo("table-footer"),c=xo("el-scrollbar"),d=So("directives","mousewheel");return Fl(),Dl("div",{ref:"tableWrapper",class:q([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:V(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[1]||(t[1]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t))},[Kl("div",{ref:"tableInnerWrapper",class:q(e.ns.e("inner-wrapper"))},[Kl("div",mx,[Ao(e.$slots,"default")],512),e.showHeader&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:0,ref:"headerWrapper",class:q(e.ns.e("header-wrapper"))},[Kl("table",{ref:"tableHeader",class:q(e.ns.e("header")),style:V(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","append-filter-panel-to","allow-drag-last-column","onSetDragVisible"])],6)],2)),[[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),Kl("div",{ref:"bodyWrapper",class:q(e.ns.e("body-wrapper"))},[Gl(c,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:t[0]||(t[0]=t=>e.$emit("scroll",t))},{default:pn(()=>[Kl("table",{ref:"tableBody",class:q(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:V({width:e.bodyWidth,tableLayout:e.tableLayout})},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&"auto"===e.tableLayout?(Fl(),zl(s,{key:0,ref:"tableHeaderRef",class:q(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","append-filter-panel-to","onSetDragVisible"])):Zl("v-if",!0),Gl(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&"auto"===e.tableLayout?(Fl(),zl(u,{key:1,class:q(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):Zl("v-if",!0)],6),e.isEmpty?(Fl(),Dl("div",{key:0,ref:"emptyBlock",style:V(e.emptyBlockStyle),class:q(e.ns.e("empty-block"))},[Kl("span",{class:q(e.ns.e("empty-text"))},[Ao(e.$slots,"empty",{},()=>[Xl(Z(e.computedEmptyText),1)])],2)],6)):Zl("v-if",!0),e.$slots.append?(Fl(),Dl("div",{key:1,ref:"appendWrapper",class:q(e.ns.e("append-wrapper"))},[Ao(e.$slots,"append")],2)):Zl("v-if",!0)]),_:3},8,["view-style","wrap-style","always","tabindex","native"])],2),e.showSummary&&"fixed"===e.tableLayout?fn((Fl(),Dl("div",{key:1,ref:"footerWrapper",class:q(e.ns.e("footer-wrapper"))},[Kl("table",{class:q(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:V(e.tableBodyStyles)},[Gl(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Gl(u,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Xr,!e.isEmpty],[d,e.handleHeaderFooterMousewheel]]):Zl("v-if",!0),e.border||e.isGroup?(Fl(),Dl("div",{key:2,class:q(e.ns.e("border-left-patch"))},null,2)):Zl("v-if",!0)],2),fn(Kl("div",{ref:"resizeProxy",class:q(e.ns.e("column-resize-proxy"))},null,2),[[Xr,e.resizeProxyVisible]])],46,hx)}],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const bx={selection:"table-column--selection",expand:"table__expand-column"},yx={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},wx={selection:{renderHeader({store:e}){var t;return wr(tg,{disabled:e.states.data.value&&0===e.states.data.value.length,size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":null!=(t=e.toggleAllSelection)?t:void 0,modelValue:e.states.isAllSelected.value,ariaLabel:e.t("el.table.selectAllLabel")})},renderCell:({row:e,column:t,store:n,$index:o})=>wr(tg,{disabled:!!t.selectable&&!t.selectable.call(null,e,o),size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e),ariaLabel:n.t("el.table.selectRowLabel")}),sortable:!1,resizable:!1},index:{renderHeader:({column:e})=>e.label||"#",renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return Jc(o)?n=t+o:g(o)&&(n=o(t)),wr("div",{},[n])},sortable:!1},expand:{renderHeader:({column:e})=>e.label||"",renderCell({column:e,row:t,store:n,expanded:o}){const{ns:l}=n,r=[l.e("expand-icon")];return!e.renderExpand&&o&&r.push(l.em("expand-icon","expanded")),wr("button",{type:"button","aria-label":n.t(o?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":o,class:r,onClick:function(e){e.stopPropagation(),n.toggleRowExpansion(t)}},{default:()=>e.renderExpand?[e.renderExpand({expanded:o})]:[wr(ip,null,{default:()=>[wr(dp)]})]})},sortable:!1,resizable:!1}};function xx({row:e,column:t,$index:n}){var o;const l=t.property,r=l&&Vd(e,l).value;return t&&t.formatter?t.formatter(e,t,r,n):(null==(o=null==r?void 0:r.toString)?void 0:o.call(r))||""}function Cx(e,t){return e.reduce((e,t)=>(e[t]=t,e),t)}function _x(e,t,n){const o=ar(),l=St(""),r=St(!1),a=St(),s=St(),i=Wa("table");yn(()=>{a.value=e.align?`is-${e.align}`:null,a.value}),yn(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:a.value,s.value});const u=yr(()=>{let e=o.vnode.vParent||o.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e}),c=yr(()=>{const{store:e}=o.parent;if(!e)return!1;const{treeData:t}=e.states,n=t.value;return n&&Object.keys(n).length>0}),d=St(Yy(e.width)),p=St(Xy(e.minWidth));return{columnId:l,realAlign:a,isSubColumn:r,realHeaderAlign:s,columnOrTableParent:u,setColumnWidth:e=>(d.value&&(e.width=d.value),p.value&&(e.minWidth=p.value),!d.value&&p.value&&(e.width=void 0),e.minWidth||(e.minWidth=80),e.realWidth=Number(Xc(e.width)?e.minWidth:e.width),e),setColumnForcedProps:e=>{const t=e.type,n=wx[t]||{};Object.keys(n).forEach(t=>{const o=n[t];"className"===t||Xc(o)||(e[t]=o)});const o=(e=>bx[e]||"")(t);if(o){const t=`${Ot(i.namespace)}-${o}`;e.className=e.className?`${e.className} ${t}`:t}return e},setColumnRenders:l=>{e.renderHeader||"selection"!==l.type&&(l.renderHeader=e=>{if(o.columnConfig.value.label,t.header){const n=t.header(e);if(iw(n))return wr(Rl,n)}return Xl(l.label)}),t["filter-icon"]&&(l.renderFilterIcon=e=>Ao(t,"filter-icon",e)),t.expand&&(l.renderExpand=e=>Ao(t,"expand",e));let r=l.renderCell;return"expand"===l.type?(l.renderCell=e=>wr("div",{class:"cell"},[r(e)]),n.value.renderExpanded=e=>t.default?t.default(e):t.default):(r=r||xx,l.renderCell=e=>{let a=null;if(t.default){const n=t.default(e);a=n.some(e=>e.type!==Pl)?n:r(e)}else a=r(e);const{columns:s}=n.value.store.states,u=s.value.findIndex(e=>"default"===e.type),d=function({row:e,treeNode:t,store:n},o=!1){const{ns:l}=n;if(!t)return o?[wr("span",{class:l.e("placeholder")})]:null;const r=[],a=function(o){o.stopPropagation(),t.loading||n.loadOrToggle(e)};if(t.indent&&r.push(wr("span",{class:l.e("indent"),style:{"padding-left":`${t.indent}px`}})),Zc(t.expanded)&&!t.noLazyChildren){const e=[l.e("expand-icon"),t.expanded?l.em("expand-icon","expanded"):""];let o=dp;t.loading&&(o=Ep),r.push(wr("button",{type:"button","aria-label":n.t(t.expanded?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":t.expanded,class:e,onClick:a},{default:()=>[wr(ip,{class:l.is("loading",t.loading)},{default:()=>[wr(o)]})]}))}else r.push(wr("span",{class:l.e("placeholder")}));return r}(e,c.value&&e.cellIndex===u),p={class:"cell",style:{}};return l.showOverflowTooltip&&(p.class=`${p.class} ${Ot(i.namespace)}-tooltip`,p.style={width:(e.column.realWidth||Number(e.column.width))-1+"px"}),(e=>{function t(e){var t;"ElTableColumn"===(null==(t=null==e?void 0:e.type)?void 0:t.name)&&(e.vParent=o)}f(e)?e.forEach(e=>t(e)):t(e)})(a),wr("div",p,[d,a])}),l},getPropsData:(...t)=>t.reduce((t,n)=>(f(n)&&n.forEach(n=>{t[n]=e[n]}),t),{}),getColumnElIndex:(e,t)=>Array.prototype.indexOf.call(e,t),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",o.columnConfig.value)}}}var Sx={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}};let kx=1;var Ex=Xn({name:"ElTableColumn",components:{ElCheckbox:tg},props:Sx,setup(e,{slots:t}){const n=ar(),o=St({}),l=yr(()=>{let e=n.parent;for(;e&&!e.tableId;)e=e.parent;return e}),{registerNormalWatchers:r,registerComplexWatchers:a}=function(e,t){const n=ar();return{registerComplexWatchers:()=>{const o={realWidth:"width",realMinWidth:"minWidth"},l=Cx(["fixed"],o);Object.keys(l).forEach(l=>{const r=o[l];p(t,r)&&wn(()=>t[r],t=>{let o=t;"width"===r&&"realWidth"===l&&(o=Yy(t)),"minWidth"===r&&"realMinWidth"===l&&(o=Xy(t)),n.columnConfig.value[r]=o,n.columnConfig.value[l]=o;const a="fixed"===r;e.value.store.scheduleLayout(a)})})},registerNormalWatchers:()=>{const o={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},l=Cx(["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter","resizable"],o);Object.keys(l).forEach(e=>{const l=o[e];p(t,l)&&wn(()=>t[l],t=>{n.columnConfig.value[e]=t,"filters"!==e&&"filterMethod"!==e||(n.columnConfig.value.filterable=!(!n.columnConfig.value.filters&&!n.columnConfig.value.filterMethod))})}),["showOverflowTooltip"].forEach(t=>{p(e.value.props,t)&&wn(()=>e.value.props[t],e=>{n.columnConfig.value[t]=e})})}}}(l,e),{columnId:s,isSubColumn:i,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:d,setColumnForcedProps:f,setColumnRenders:v,getPropsData:h,getColumnElIndex:m,realAlign:g,updateColumnOrder:b}=_x(e,t,l),y=c.value;s.value=`${"tableId"in y&&y.tableId||"columnId"in y&&y.columnId}_column_${kx++}`,uo(()=>{i.value=l.value!==y;const t=e.type||"default",c=""===e.sortable||e.sortable,m="selection"!==t&&(Xc(e.showOverflowTooltip)?y.props.showOverflowTooltip:e.showOverflowTooltip),b=Xc(e.tooltipFormatter)?y.props.tooltipFormatter:e.tooltipFormatter,w={...yx[t],id:s.value,type:t,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:m,tooltipFormatter:b,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:c,index:e.index,rawColumnKey:n.vnode.key};let x=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);x=function(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(p(t,o)){const e=t[o];Xc(e)||(n[o]=e)}return n}(w,x),x=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}(v,d,f)(x),o.value=x,r(),a()}),co(()=>{var e,t;const r=c.value,a=i.value?null==(e=r.vnode.el)?void 0:e.children:null==(t=r.refs.hiddenColumns)?void 0:t.children,s=()=>m(a||[],n.vnode.el);o.value.getColumnIndex=s,s()>-1&&l.value.store.commit("insertColumn",o.value,i.value?"columnConfig"in r&&r.columnConfig.value:null,b)}),vo(()=>{const e=o.value.getColumnIndex;(e?e():-1)>-1&&l.value.store.commit("removeColumn",o.value,i.value?"columnConfig"in y&&y.columnConfig.value:null,b)}),n.columnId=s.value,n.columnConfig=o},render(){var e,t,n;try{const o=null==(t=(e=this.$slots).default)?void 0:t.call(e,{row:{},column:{},$index:-1}),l=[];if(f(o))for(const e of o)"ElTableColumn"===(null==(n=e.type)?void 0:n.name)||2&e.shapeFlag?l.push(e):e.type===Rl&&f(e.children)&&e.children.forEach(e=>{1024===(null==e?void 0:e.patchFlag)||b(null==e?void 0:e.children)||l.push(e)});return wr("div",l)}catch(tT){return wr("div",[])}}});const Tx=Gd(gx,{TableColumn:Ex}),Ax=Yd(Ex),Ox=Symbol("tabsRootContextKey"),Mx=Nd({tabs:{type:Array,default:()=>[]},tabRefs:{type:Object,default:()=>({})}}),Rx="ElTabBar";var Lx=Kd(Xn({name:Rx,__name:"tab-bar",props:Mx,setup(e,{expose:t}){const n=e,o=mn(Ox);o||xd(Rx,"");const l=Wa("tabs"),r=St(),a=St(),s=yr(()=>{var e;return Xc(o.props.defaultValue)||Boolean(null==(e=a.value)?void 0:e.transform)}),i=()=>a.value=(()=>{let e=0,t=0;const l=["top","bottom"].includes(o.props.tabPosition)?"width":"height",r="width"===l?"x":"y",a="x"===r?"left":"top";return n.tabs.every(o=>{if(Xc(o.paneName))return!1;const r=n.tabRefs[o.paneName];if(!r)return!1;if(!o.active)return!0;e=r[`offset${Ay(a)}`],t=r[`client${Ay(l)}`];const s=window.getComputedStyle(r);return"width"===l&&(t-=Number.parseFloat(s.paddingLeft)+Number.parseFloat(s.paddingRight),e+=Number.parseFloat(s.paddingLeft)),!1}),{[l]:`${t}px`,transform:`translate${Ay(r)}(${e}px)`}})(),u=[];wn(()=>n.tabs,async()=>{await tn(),i(),u.forEach(e=>e.stop()),u.length=0,Object.values(n.tabRefs).forEach(e=>{u.push(bd(e,i))})},{immediate:!0});const c=bd(r,()=>i());return vo(()=>{u.forEach(e=>e.stop()),u.length=0,c.stop()}),t({ref:r,update:i}),(e,t)=>s.value?(Fl(),Dl("div",{key:0,ref_key:"barRef",ref:r,class:q([Ot(l).e("active-bar"),Ot(l).is(Ot(o).props.tabPosition)]),style:V(a.value)},null,6)):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-bar.vue"]]);const Px=Nd({panes:{type:Array,default:()=>[]},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean,tabindex:{type:[String,Number],default:void 0}}),Nx="ElTabNav",Ix=Xn({name:Nx,props:Px,emits:{tabClick:(e,t,n)=>n instanceof Event,tabRemove:(e,t)=>t instanceof Event},setup(e,{expose:t,emit:n}){const o=mn(Ox);o||xd(Nx,"");const l=Wa("tabs"),r=function(e={}){const{document:t=vd}=e;if(!t)return St("visible");const n=St(t.visibilityState);return hd(t,"visibilitychange",()=>{n.value=t.visibilityState}),n}(),a=function(e={}){const{window:t=fd}=e;if(!t)return St(!1);const n=St(t.document.hasFocus());return hd(t,"blur",()=>{n.value=!1}),hd(t,"focus",()=>{n.value=!0}),n}(),s=St(),i=St(),u=St(),c=St({}),d=St(),p=St(!1),f=St(0),v=St(!1),h=St(!0),m=kt(),g=yr(()=>["top","bottom"].includes(o.props.tabPosition)),b=yr(()=>g.value?"width":"height"),y=yr(()=>({transform:`translate${"width"===b.value?"X":"Y"}(-${f.value}px)`})),{width:w,height:x}=yd(s),{width:C,height:_}=yd(i,{width:0,height:0},{box:"border-box"}),S=yr(()=>g.value?w.value:x.value),k=yr(()=>g.value?C.value:_.value),{onWheel:E}=Ny({atStartEdge:yr(()=>f.value<=0),atEndEdge:yr(()=>k.value-f.value<=S.value),layout:yr(()=>g.value?"horizontal":"vertical")},e=>{var t,n,o;f.value=(t=f.value+e,n=0,void 0===(o=k.value-S.value)&&(o=n,n=void 0),void 0!==o&&(o=(o=gs(o))==o?o:0),void 0!==n&&(n=(n=gs(n))==n?n:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(gs(t),n,o))}),T=()=>{if(!s.value)return;const e=s.value[`offset${Ay(b.value)}`],t=f.value;if(!t)return;const n=t>e?t-e:0;f.value=n},A=()=>{if(!s.value||!i.value)return;const e=i.value[`offset${Ay(b.value)}`],t=s.value[`offset${Ay(b.value)}`],n=f.value;if(e-n<=t)return;const o=e-n>2*t?n+t:e-t;f.value=o},O=async()=>{const t=i.value;if(!(p.value&&u.value&&s.value&&t))return;await tn();const n=c.value[e.currentName];if(!n)return;const o=s.value,l=n.getBoundingClientRect(),r=o.getBoundingClientRect(),a=g.value?t.offsetWidth-r.width:t.offsetHeight-r.height,d=f.value;let v=d;g.value?(l.leftr.right&&(v=d+l.right-r.right)):(l.topr.bottom&&(v=d+(l.bottom-r.bottom))),v=Math.max(v,0),f.value=Math.min(v,a)},M=()=>{var t;if(!i.value||!s.value)return;e.stretch&&(null==(t=d.value)||t.update());const n=i.value[`offset${Ay(b.value)}`],o=s.value[`offset${Ay(b.value)}`],l=f.value;o0&&(f.value=0))},R=e=>{let t=0;switch(cv(e)){case iv.left:case iv.up:t=-1;break;case iv.right:case iv.down:t=1;break;default:return}const n=Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));let o=n.indexOf(e.target)+t;o<0?o=n.length-1:o>=n.length&&(o=0),n[o].focus({preventScroll:!0}),n[o].click(),L()},L=()=>{h.value&&(v.value=!0)},P=()=>v.value=!1;return wn(r,e=>{"hidden"===e?h.value=!1:"visible"===e&&setTimeout(()=>h.value=!0,50)}),wn(a,e=>{e?setTimeout(()=>h.value=!0,50):h.value=!1}),bd(u,()=>{ep(M)}),co(()=>setTimeout(()=>O(),0)),fo(()=>M()),t({scrollToActiveTab:O,removeFocus:P,focusActiveTab:async()=>{await tn();const t=c.value[e.currentName];null==t||t.focus({preventScroll:!0})},tabListRef:i,tabBarRef:d,scheduleRender:()=>At(m)}),()=>{const t=p.value?[Gl("span",{class:[l.e("nav-prev"),l.is("disabled",!p.value.prev)],onClick:T},[Gl(ip,null,{default:()=>[Gl(cp,null,null)]})]),Gl("span",{class:[l.e("nav-next"),l.is("disabled",!p.value.next)],onClick:A},[Gl(ip,null,{default:()=>[Gl(dp,null,null)]})])]:null,r=e.panes.map((t,r)=>{var a,s,i,u,d;const p=t.uid,f=t.props.disabled,h=null!=(s=null!=(a=t.props.name)?a:t.index)?s:`${r}`,m=!f&&(t.isClosable||!1!==t.props.closable&&e.editable);t.index=`${r}`;const g=m?Gl(ip,{class:"is-icon-close",onClick:e=>n("tabRemove",t,e)},{default:()=>[Gl(bp,null,null)]}):null,b=(null==(u=(i=t.slots).label)?void 0:u.call(i))||t.props.label,y=!f&&t.active?null!=(d=e.tabindex)?d:o.props.tabindex:-1;return Gl("div",{ref:e=>((e,t)=>{c.value[t]=e})(e,h),class:[l.e("item"),l.is(o.props.tabPosition),l.is("active",t.active),l.is("disabled",f),l.is("closable",m),l.is("focus",v.value)],id:`tab-${h}`,key:`tab-${p}`,"aria-controls":`pane-${h}`,role:"tab","aria-selected":t.active,tabindex:y,onFocus:()=>L(),onBlur:()=>P(),onClick:e=>{P(),n("tabClick",t,h,e)},onKeydown:e=>{const o=cv(e);!m||o!==iv.delete&&o!==iv.backspace||n("tabRemove",t,e)}},[b,g])});return m.value,Gl("div",{ref:u,class:[l.e("nav-wrap"),l.is("scrollable",!!p.value),l.is(o.props.tabPosition)]},[t,Gl("div",{class:l.e("nav-scroll"),ref:s},[e.panes.length>0?Gl("div",{class:[l.e("nav"),l.is(o.props.tabPosition),l.is("stretch",e.stretch&&["top","bottom"].includes(o.props.tabPosition))],ref:i,style:y.value,role:"tablist",onKeydown:R,onWheel:E},[e.type?null:Gl(Lx,{ref:d,tabs:[...e.panes],tabRefs:c.value},null),r]):null])])}}}),Bx=Nd({type:{type:String,values:["card","border-card",""],default:""},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},defaultValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:Function,default:()=>!0},stretch:Boolean,tabindex:{type:[String,Number],default:0}}),Fx=e=>b(e)||Jc(e),$x={[Zd]:e=>Fx(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>Fx(e),edit:(e,t)=>["remove","add"].includes(t),tabRemove:e=>Fx(e),tabAdd:()=>!0},jx=Xn({name:"ElTabs",props:Bx,emits:$x,setup(e,{emit:t,slots:n,expose:o}){var l;const r=Wa("tabs"),a=yr(()=>["left","right"].includes(e.tabPosition)),{children:s,addChild:i,removeChild:u,ChildrenSorter:c}=Dm(ar(),"ElTabPane"),d=St(),p=St(null!=(l=Xc(e.modelValue)?e.defaultValue:e.modelValue)?l:"0"),f=async(n,o=!1)=>{var l,r,a,i;if(p.value!==n&&!Xc(n))try{let u;if(e.beforeLeave){const t=e.beforeLeave(n,p.value);u=t instanceof Promise?await t:t}else u=!0;if(!1!==u){const e=null==(l=s.value.find(e=>e.paneName===p.value))?void 0:l.isFocusInsidePane();p.value=n,o&&(t(Zd,n),t("tabChange",n)),null==(a=null==(r=d.value)?void 0:r.removeFocus)||a.call(r),e&&(null==(i=d.value)||i.focusActiveTab())}}catch(tT){}},v=(e,n,o)=>{e.props.disabled||(t("tabClick",e,o),f(n,!0))},h=(e,n)=>{e.props.disabled||Xc(e.props.name)||(n.stopPropagation(),t("edit",e.props.name,"remove"),t("tabRemove",e.props.name))},m=()=>{t("edit",void 0,"add"),t("tabAdd")},g=e=>{const t=cv(e);[iv.enter,iv.numpadEnter].includes(t)&&m()},b=t=>{const n=t.el.firstChild,o=["bottom","right"].includes(e.tabPosition)?t.children[0].el:t.children[1].el;n!==o&&n.before(o)};return wn(()=>e.modelValue,e=>f(e)),wn(p,async()=>{var e;await tn(),null==(e=d.value)||e.scrollToActiveTab()}),hn(Ox,{props:e,currentName:p,registerPane:i,unregisterPane:u,nav$:d}),o({currentName:p,get tabNavRef(){return Uc(d.value,["scheduleRender"])}}),()=>{const t=n["add-icon"],o=e.editable||e.addable?Gl("div",{class:[r.e("new-tab"),a.value&&r.e("new-tab-vertical")],tabindex:e.tabindex,onClick:m,onKeydown:g},[t?Ao(n,"add-icon"):Gl(ip,{class:r.is("icon-plus")},{default:()=>[Gl(Mp,null,null)]})]):null,l=Gl("div",{class:[r.e("header"),a.value&&r.e("header-vertical"),r.is(e.tabPosition)]},[Gl(c,null,{default:()=>Gl(Ix,{ref:d,currentName:p.value,editable:e.editable,type:e.type,panes:s.value,stretch:e.stretch,onTabClick:v,onTabRemove:h},null),$stable:!0}),o]),i=Gl("div",{class:r.e("content")},[Ao(n,"default")]);return Gl("div",{class:[r.b(),r.m(e.tabPosition),{[r.m("card")]:"card"===e.type,[r.m("border-card")]:"border-card"===e.type}],onVnodeMounted:b,onVnodeUpdated:b},[i,l])}}}),Vx=Nd({label:{type:String,default:""},name:{type:[String,Number]},closable:{type:Boolean,default:void 0},disabled:Boolean,lazy:Boolean}),Dx=["id","aria-hidden","aria-labelledby"],zx="ElTabPane";var Hx=Kd(Xn({name:zx,__name:"tab-pane",props:Vx,setup(e){const t=e,n=ar(),o=No(),l=mn(Ox);l||xd(zx,"usage: ");const r=Wa("tab-pane"),a=St(),s=St(),i=yr(()=>{var e;return null!=(e=t.closable)?e:l.props.closable}),u=yr(()=>{var e;return l.currentName.value===(null!=(e=t.name)?e:s.value)}),c=St(u.value),d=yr(()=>{var e;return null!=(e=t.name)?e:s.value}),p=yr(()=>!t.lazy||c.value||u.value);wn(u,e=>{e&&(c.value=!0)});const f=pt({uid:n.uid,getVnode:()=>n.vnode,slots:o,props:t,paneName:d,active:u,index:s,isClosable:i,isFocusInsidePane:()=>{var e;return null==(e=a.value)?void 0:e.contains(document.activeElement)}});return l.registerPane(f),vo(()=>{l.unregisterPane(f)}),po(()=>{var e;o.label&&(null==(e=l.nav$.value)||e.scheduleRender())}),(e,t)=>p.value?fn((Fl(),Dl("div",{key:0,id:`pane-${d.value}`,ref_key:"paneRef",ref:a,class:q(Ot(r).b()),role:"tabpanel","aria-hidden":!u.value,"aria-labelledby":`tab-${d.value}`},[Ao(e.$slots,"default")],10,Dx)),[[Xr,u.value]]):Zl("v-if",!0)}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-pane.vue"]]);const Wx=Gd(jx,{TabPane:Hx}),qx=Yd(Hx),Ux=Gd(Kd(Xn({name:"ElText",__name:"text",props:Nd({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:Id,default:""},truncated:Boolean,lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),setup(e){const t=e,n=St(),o=vf(),l=Wa("text"),r=yr(()=>[l.b(),l.m(t.type),l.m(o.value),l.is("truncated",t.truncated),l.is("line-clamp",!Xc(t.lineClamp))]),a=()=>{var e,o,l,r,a,s,i;if(Io().title)return;let u=!1;const c=(null==(e=n.value)?void 0:e.textContent)||"";if(t.truncated){const e=null==(o=n.value)?void 0:o.offsetWidth,t=null==(l=n.value)?void 0:l.scrollWidth;e&&t&&t>e&&(u=!0)}else if(!Xc(t.lineClamp)){const e=null==(r=n.value)?void 0:r.offsetHeight,t=null==(a=n.value)?void 0:a.scrollHeight;e&&t&&t>e&&(u=!0)}u?null==(s=n.value)||s.setAttribute("title",c):null==(i=n.value)||i.removeAttribute("title")};return co(a),fo(a),(e,t)=>(Fl(),zl(_o(e.tag),{ref_key:"textRef",ref:n,class:q(r.value),style:V({"-webkit-line-clamp":e.lineClamp})},{default:pn(()=>[Ao(e.$slots,"default")]),_:3},8,["class","style"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/text/src/text.vue"]]));function Kx(e,t){let n;const o=St(!1),l=pt({...e,originalPosition:"",originalOverflow:"",visible:!1});function r(){var e,t;null==(t=null==(e=i.$el)?void 0:e.parentNode)||t.removeChild(i.$el)}function a(){if(!o.value)return;const e=l.parent;o.value=!1,e.vLoadingAddClassList=void 0,function(){const e=l.parent,t=i.ns;if(!e.vLoadingAddClassList){let n=e.getAttribute("loading-number");n=Number.parseInt(n)-1,n?e.setAttribute("loading-number",n.toString()):(lp(e,t.bm("parent","relative")),e.removeAttribute("loading-number")),lp(e,t.bm("parent","hidden"))}r(),s.unmount()}()}const s=$a(Xn({name:"ElLoading",setup(e,{expose:t}){const{ns:n,zIndex:o}=Hd("loading");return t({ns:n,zIndex:o}),()=>{const e=l.spinner||l.svg,t=wr("svg",{class:"circular",viewBox:l.svgViewBox?l.svgViewBox:"0 0 50 50",...e?{innerHTML:e}:{}},[wr("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),o=l.text?wr("p",{class:n.b("text")},[l.text]):void 0;return wr(Nr,{name:n.b("fade"),onAfterLeave:a},{default:pn(()=>[fn(Gl("div",{style:{backgroundColor:l.background||""},class:[n.b("mask"),l.customClass,n.is("fullscreen",l.fullscreen)]},[wr("div",{class:n.b("spinner")},[t,o])]),[[Xr,l.visible]])])})}}}));Object.assign(s._context,null!=t?t:{});const i=s.mount(document.createElement("div"));return{...Nt(l),setText:function(e){l.text=e},removeElLoadingChild:r,close:function(){var t;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(n),n=setTimeout(a,400),l.visible=!1,null==(t=e.closed)||t.call(e))},handleAfterLeave:a,vm:i,get $el(){return i.$el}}}let Gx;const Yx=function(e={},t){if(!ld)return;const n=Xx(e);if(n.fullscreen&&Gx)return Gx;const o=Kx({...n,closed:()=>{var e;null==(e=n.closed)||e.call(n),n.fullscreen&&(Gx=void 0)}},null!=t?t:Yx._context);Zx(n,n.parent,o),Jx(n,n.parent,o),n.parent.vLoadingAddClassList=()=>Jx(n,n.parent,o);let l=n.parent.getAttribute("loading-number");return l=l?`${Number.parseInt(l)+1}`:"1",n.parent.setAttribute("loading-number",l),n.parent.appendChild(o.$el),tn(()=>o.visible.value=n.visible),n.fullscreen&&(Gx=o),o},Xx=e=>{var t,n,o,l;let r;return r=b(e.target)?null!=(t=document.querySelector(e.target))?t:document.body:e.target||document.body,{parent:r===document.body||e.body?document.body:r,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:r===document.body&&(null==(n=e.fullscreen)||n),lock:null!=(o=e.lock)&&o,customClass:e.customClass||"",visible:null==(l=e.visible)||l,beforeClose:e.beforeClose,closed:e.closed,target:r}},Zx=async(e,t,n)=>{const{nextZIndex:o}=n.vm.zIndex||n.vm._.exposed.zIndex,l={};if(e.fullscreen)n.originalPosition.value=rp(document.body,"position"),n.originalOverflow.value=rp(document.body,"overflow"),l.zIndex=o();else if(e.parent===document.body){n.originalPosition.value=rp(document.body,"position"),await tn();for(const t of["top","left"]){const n="top"===t?"scrollTop":"scrollLeft";l[t]=e.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-Number.parseInt(rp(document.body,`margin-${t}`),10)+"px"}for(const t of["height","width"])l[t]=`${e.target.getBoundingClientRect()[t]}px`}else n.originalPosition.value=rp(t,"position");for(const[r,a]of Object.entries(l))n.$el.style[r]=a},Jx=(e,t,n)=>{const o=n.vm.ns||n.vm._.exposed.ns;["absolute","fixed","sticky"].includes(n.originalPosition.value)?lp(t,o.bm("parent","relative")):op(t,o.bm("parent","relative")),e.fullscreen&&e.lock?op(t,o.bm("parent","hidden")):lp(t,o.bm("parent","hidden"))};Yx._context=null;const Qx=Symbol("ElLoading"),eC=e=>`element-loading-${R(e)}`,tC=(e,t)=>{var n,o,l,r;const a=t.instance,s=e=>w(t.value)?t.value[e]:void 0,i=t=>{return n=s(t)||e.getAttribute(eC(t)),St(b(n)&&(null==a?void 0:a[n])||n);var n},u=null!=(n=s("fullscreen"))?n:t.modifiers.fullscreen,c={text:i("text"),svg:i("svg"),svgViewBox:i("svgViewBox"),spinner:i("spinner"),background:i("background"),customClass:i("customClass"),fullscreen:u,target:null!=(o=s("target"))?o:u?void 0:e,body:null!=(l=s("body"))?l:t.modifiers.body,lock:null!=(r=s("lock"))?r:t.modifiers.lock},d=Yx(c);d._context=nC._context,e[Qx]={options:c,instance:d}},nC={mounted(e,t){t.value&&tC(e,t)},updated(e,t){const n=e[Qx];if(!t.value)return null==n||n.instance.close(),void(e[Qx]=null);n?((e,t)=>{for(const n of Object.keys(e))_t(e[n])&&(e[n].value=t[n])})(n.options,w(t.value)?t.value:{text:e.getAttribute(eC("text")),svg:e.getAttribute(eC("svg")),svgViewBox:e.getAttribute(eC("svgViewBox")),spinner:e.getAttribute(eC("spinner")),background:e.getAttribute(eC("background")),customClass:e.getAttribute(eC("customClass"))}):tC(e,t)},unmounted(e){var t;null==(t=e[Qx])||t.instance.close(),e[Qx]=null},_context:null},oC=["primary","success","info","warning","error"],lC=["top","top-left","top-right","bottom","bottom-left","bottom-right"],rC="top",aC={customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,placement:void 0,zIndex:0,grouping:!1,repeatNum:1,appendTo:ld?document.body:void 0},sC=Nd({customClass:{type:String,default:aC.customClass},dangerouslyUseHTMLString:{type:Boolean,default:aC.dangerouslyUseHTMLString},duration:{type:Number,default:aC.duration},icon:{type:Dp,default:aC.icon},id:{type:String,default:aC.id},message:{type:[String,Object,Function],default:aC.message},onClose:{type:Function,default:aC.onClose},showClose:{type:Boolean,default:aC.showClose},type:{type:String,values:oC,default:aC.type},plain:{type:Boolean,default:aC.plain},offset:{type:Number,default:aC.offset},placement:{type:String,values:lC,default:aC.placement},zIndex:{type:Number,default:aC.zIndex},grouping:{type:Boolean,default:aC.grouping},repeatNum:{type:Number,default:aC.repeatNum}}),iC=ft({}),uC=(e,t)=>{const{prev:n}=((e,t)=>{const n=iC[t]||[],o=n.findIndex(t=>t.id===e),l=n[o];let r;return o>0&&(r=n[o-1]),{current:l,prev:r}})(e,t);return n?n.vm.exposed.bottom.value:0},cC=["id"],dC=["innerHTML"];var pC=Kd(Xn({name:"ElMessage",__name:"message",props:sC,emits:{destroy:()=>!0},setup(e,{expose:t,emit:n}){const{Close:o}=Hp,l=e,r=n,a=St(!1),{ns:s,zIndex:i}=Hd("message"),{currentZIndex:u,nextZIndex:c}=i,d=St(),p=St(!1),f=St(0);let v;const h=yr(()=>l.type?"error"===l.type?"danger":l.type:"info"),m=yr(()=>{const e=l.type;return{[s.bm("icon",e)]:e&&Wp[e]}}),g=yr(()=>l.icon||Wp[l.type]||""),b=yr(()=>l.placement||rC),y=yr(()=>uC(l.id,b.value)),w=yr(()=>((e,t,n)=>(iC[n]||[]).findIndex(t=>t.id===e)>0?16:t)(l.id,l.offset,b.value)+y.value),x=yr(()=>f.value+w.value),C=yr(()=>b.value.includes("left")?s.is("left"):b.value.includes("right")?s.is("right"):s.is("center")),_=yr(()=>b.value.startsWith("top")?"top":"bottom"),S=yr(()=>({[_.value]:`${w.value}px`,zIndex:u.value}));function k(){0!==l.duration&&({stop:v}=dd(()=>{T()},l.duration))}function E(){null==v||v()}function T(){p.value=!1,tn(()=>{var e;a.value||(null==(e=l.onClose)||e.call(l),r("destroy"))})}return co(()=>{k(),c(),p.value=!0}),wn(()=>l.repeatNum,()=>{E(),k()}),hd(document,"keydown",function(e){cv(e)===iv.esc&&T()}),bd(d,()=>{f.value=d.value.getBoundingClientRect().height}),t({visible:p,bottom:x,close:T}),(e,t)=>(Fl(),zl(Nr,{name:Ot(s).b("fade"),onBeforeEnter:t[0]||(t[0]=e=>a.value=!0),onBeforeLeave:e.onClose,onAfterLeave:t[1]||(t[1]=t=>e.$emit("destroy")),persisted:""},{default:pn(()=>[fn(Kl("div",{id:e.id,ref_key:"messageRef",ref:d,class:q([Ot(s).b(),{[Ot(s).m(e.type)]:e.type},Ot(s).is("closable",e.showClose),Ot(s).is("plain",e.plain),Ot(s).is("bottom","bottom"===_.value),C.value,e.customClass]),style:V(S.value),role:"alert",onMouseenter:E,onMouseleave:k},[e.repeatNum>1?(Fl(),zl(Ot(um),{key:0,value:e.repeatNum,type:h.value,class:q(Ot(s).e("badge"))},null,8,["value","type","class"])):Zl("v-if",!0),g.value?(Fl(),zl(Ot(ip),{key:1,class:q([Ot(s).e("icon"),m.value])},{default:pn(()=>[(Fl(),zl(_o(g.value)))]),_:1},8,["class"])):Zl("v-if",!0),Ao(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(Fl(),Dl(Rl,{key:1},[Zl(" Caution here, message could've been compromised, never use user's input as message "),Kl("p",{class:q(Ot(s).e("content")),innerHTML:e.message},null,10,dC)],2112)):(Fl(),Dl("p",{key:0,class:q(Ot(s).e("content"))},Z(e.message),3))]),e.showClose?(Fl(),zl(Ot(ip),{key:2,class:q(Ot(s).e("closeBtn")),onClick:Ra(T,["stop"])},{default:pn(()=>[Gl(Ot(o))]),_:1},8,["class"])):Zl("v-if",!0)],46,cC),[[Xr,p.value]])]),_:3},8,["name","onBeforeLeave"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let fC=1;const vC=e=>{const t=!e||b(e)||Hl(e)||g(e)?{message:e}:e,n={...aC,...t};return(e=>{if(e.appendTo){if(b(e.appendTo)){let t=document.querySelector(e.appendTo);Qc(t)||(t=document.body),e.appendTo=t}}else e.appendTo=document.body})(n),(e=>{!e.placement&&b(Rg.placement)&&Rg.placement&&(e.placement=Rg.placement),e.placement||(e.placement=rC),lC.includes(e.placement)||(e.placement=rC)})(n),Zc(Rg.grouping)&&!n.grouping&&(n.grouping=Rg.grouping),Jc(Rg.duration)&&3e3===n.duration&&(n.duration=Rg.duration),Jc(Rg.offset)&&16===n.offset&&(n.offset=Rg.offset),Zc(Rg.showClose)&&!n.showClose&&(n.showClose=Rg.showClose),Zc(Rg.plain)&&!n.plain&&(n.plain=Rg.plain),n},hC=({appendTo:e,...t},n)=>{const o="message_"+fC++,l=t.onClose,r=document.createElement("div"),a={...t,id:o,onClose:()=>{null==l||l(),(e=>{const t=e.props.placement||rC,n=iC[t],o=n.indexOf(e);if(-1===o)return;n.splice(o,1);const{handler:l}=e;l.close()})(c)},onDestroy:()=>{Fa(null,r)}},s=Gl(pC,a,g(a.message)||Hl(a.message)?{default:g(a.message)?a.message:()=>a.message}:null);s.appContext=n||mC._context,Fa(s,r),e.appendChild(r.firstElementChild);const i=s.component,u={close:()=>{i.exposed.close()}},c={id:o,vnode:s,vm:i,handler:u,props:s.component.props};return c},mC=(e={},t)=>{if(!ld)return{close:()=>{}};const n=vC(e),o=(l=n.placement||rC,iC[l]||(iC[l]=ft([])),iC[l]);var l;if(n.grouping&&o.length){const e=o.find(({vnode:e})=>{var t;return(null==(t=e.props)?void 0:t.message)===n.message});if(e)return e.props.repeatNum+=1,e.props.type=n.type,e.handler}if(Jc(Rg.max)&&o.length>=Rg.max)return{close:()=>{}};const r=hC(n,t);return o.push(r),r.handler};oC.forEach(e=>{mC[e]=(t={},n)=>{const o=vC(t);return mC({...o,type:e},n)}}),mC.closeAll=function(e){for(const t in iC)if(p(iC,t)){const n=[...iC[t]];for(const t of n)e&&e!==t.props.type||t.handler.close()}},mC.closeAllByPlacement=function(e){iC[e]&&[...iC[e]].forEach(e=>e.handler.close())},mC._context=null;const gC=(yC="$message",(bC=mC).install=e=>{bC._context=e._context,e.config.globalProperties[yC]=bC},bC);var bC,yC;const wC="undefined"!=typeof document;function xC(e){return"object"==typeof e||"displayName"in e||"props"in e||"__vccOpts"in e}const CC=Object.assign;function _C(e,t){const n={};for(const o in t){const l=t[o];n[o]=kC(l)?l.map(e):e(l)}return n}const SC=()=>{},kC=Array.isArray;function EC(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const TC=/#/g,AC=/&/g,OC=/\//g,MC=/=/g,RC=/\?/g,LC=/\+/g,PC=/%5B/g,NC=/%5D/g,IC=/%5E/g,BC=/%60/g,FC=/%7B/g,$C=/%7C/g,jC=/%7D/g,VC=/%20/g;function DC(e){return null==e?"":encodeURI(""+e).replace($C,"|").replace(PC,"[").replace(NC,"]")}function zC(e){return DC(e).replace(LC,"%2B").replace(VC,"+").replace(TC,"%23").replace(AC,"%26").replace(BC,"`").replace(FC,"{").replace(jC,"}").replace(IC,"^")}function HC(e){return zC(e).replace(MC,"%3D")}function WC(e){return function(e){return DC(e).replace(TC,"%23").replace(RC,"%3F")}(e).replace(OC,"%2F")}function qC(e){if(null==e)return null;try{return decodeURIComponent(""+e)}catch(t){}return""+e}const UC=/\/$/;function KC(e,t,n="/"){let o,l={},r="",a="";const s=t.indexOf("#");let i=t.indexOf("?");return i=s>=0&&i>s?-1:i,i>=0&&(o=t.slice(0,i),r=t.slice(i,s>0?s:t.length),l=e(r.slice(1))),s>=0&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=function(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),l=o[o.length-1];".."!==l&&"."!==l||o.push("");let r,a,s=n.length-1;for(r=0;r1&&s--}return n.slice(0,s).join("/")+"/"+o.slice(r).join("/")}(null!=o?o:t,n),{fullPath:o+r+a,path:o,query:l,hash:qC(a)}}function GC(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function YC(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function XC(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!ZC(e[n],t[n]))return!1;return!0}function ZC(e,t){return kC(e)?JC(e,t):kC(t)?JC(t,e):e?.valueOf()===t?.valueOf()}function JC(e,t){return kC(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):1===e.length&&e[0]===t}const QC={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let e_=function(e){return e.pop="pop",e.push="push",e}({}),t_=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function n_(e){if(!e)if(wC){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),e.replace(UC,"")}const o_=/^[^#]+#/;function l_(e,t){return e.replace(o_,"#")+t}const r_=()=>({left:window.scrollX,top:window.scrollY});function a_(e){let t;if("el"in e){const n=e.el,o="string"==typeof n&&n.startsWith("#"),l="string"==typeof n?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!l)return;t=function(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}(l,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.scrollX,null!=t.top?t.top:window.scrollY)}function s_(e,t){return(history.state?history.state.position-t:-1)+e}const i_=new Map;function u_(e){return"string"==typeof e||"symbol"==typeof e}let c_=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const d_=Symbol("");function p_(e,t){return CC(new Error,{type:e,[d_]:!0},t)}function f_(e,t){return e instanceof Error&&d_ in e&&(null==t||!!(e.type&t))}function v_(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let o=0;oe&&zC(e)):[o&&zC(o)]).forEach(e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))}):void 0!==o&&(t+=(t.length?"&":"")+n)}return t}function m_(e){const t={};for(const n in e){const o=e[n];void 0!==o&&(t[n]=kC(o)?o.map(e=>null==e?null:""+e):null==o?o:""+o)}return t}c_.MATCHER_NOT_FOUND,c_.NAVIGATION_GUARD_REDIRECT,c_.NAVIGATION_ABORTED,c_.NAVIGATION_CANCELLED,c_.NAVIGATION_DUPLICATED;const g_=Symbol(""),b_=Symbol(""),y_=Symbol(""),w_=Symbol(""),x_=Symbol("");function C_(){let e=[];return{add:function(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}},list:()=>e.slice(),reset:function(){e=[]}}}function __(e,t,n,o,l,r=e=>e()){const a=o&&(o.enterCallbacks[l]=o.enterCallbacks[l]||[]);return()=>new Promise((s,i)=>{const u=e=>{var r;!1===e?i(p_(c_.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?i(e):"string"==typeof(r=e)||r&&"object"==typeof r?i(p_(c_.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(a&&o.enterCallbacks[l]===a&&"function"==typeof e&&a.push(e),s())},c=r(()=>e.call(o&&o.instances[l],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(e=>i(e))})}function S_(e,t,n,o,l=e=>e()){const r=[];for(const a of e)for(const e in a.components){let s=a.components[e];if("beforeRouteEnter"===t||a.instances[e])if(xC(s)){const i=(s.__vccOpts||s)[t];i&&r.push(__(i,n,o,a,e,l))}else{let i=s();r.push(()=>i.then(r=>{if(!r)throw new Error(`Couldn't resolve component "${e}" at "${a.path}"`);const s=(i=r).__esModule||"Module"===i[Symbol.toStringTag]||i.default&&xC(i.default)?r.default:r;var i;a.mods[e]=r,a.components[e]=s;const u=(s.__vccOpts||s)[t];return u&&__(u,n,o,a,e,l)()}))}}return r}function k_(e,t){const{pathname:n,search:o,hash:l}=t,r=e.indexOf("#");if(r>-1){let t=l.includes(e.slice(r))?e.slice(r).length:1,n=l.slice(t);return"/"!==n[0]&&(n="/"+n),GC(n,"")}return GC(n,e)+o+l}function E_(e,t,n,o=!1,l=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:l?r_():null}}function T_(e){const{history:t,location:n}=window,o={value:k_(e,n)},l={value:t.state};function r(o,r,a){const s=e.indexOf("#"),i=s>-1?(n.host&&document.querySelector("base")?e:e.slice(s))+o:location.protocol+"//"+location.host+e+o;try{t[a?"replaceState":"pushState"](r,"",i),l.value=r}catch(u){n[a?"replace":"assign"](i)}}return l.value||r(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:o,state:l,push:function(e,n){const a=CC({},l.value,t.state,{forward:e,scroll:r_()});r(a.current,a,!0),r(e,CC({},E_(o.value,e,null),{position:a.position+1},n),!1),o.value=e},replace:function(e,n){r(e,CC({},t.state,E_(l.value.back,e,l.value.forward,!0),n,{position:l.value.position}),!0),o.value=e}}}function A_(e){const t=T_(e=n_(e)),n=function(e,t,n,o){let l=[],r=[],a=null;const s=({state:r})=>{const s=k_(e,location),i=n.value,u=t.value;let c=0;if(r){if(n.value=s,t.value=r,a&&a===i)return void(a=null);c=u?r.position-u.position:0}else o(s);l.forEach(e=>{e(n.value,i,{delta:c,type:e_.pop,direction:c?c>0?t_.forward:t_.back:t_.unknown})})};function i(){if("hidden"===document.visibilityState){const{history:e}=window;if(!e.state)return;e.replaceState(CC({},e.state,{scroll:r_()}),"")}}return window.addEventListener("popstate",s),window.addEventListener("pagehide",i),document.addEventListener("visibilitychange",i),{pauseListeners:function(){a=n.value},listen:function(e){l.push(e);const t=()=>{const t=l.indexOf(e);t>-1&&l.splice(t,1)};return r.push(t),t},destroy:function(){for(const e of r)e();r=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",i),document.removeEventListener("visibilitychange",i)}}}(e,t.state,t.location,t.replace),o=CC({location:"",base:e,go:function(e,t=!0){t||n.pauseListeners(),history.go(e)},createHref:l_.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let O_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var M_=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(M_||{});const R_={type:O_.Static,value:""},L_=/[a-zA-Z0-9_]/,P_="[^/]+?",N_={sensitive:!1,strict:!1,start:!0,end:!0};var I_=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(I_||{});const B_=/[.+*?^${}()[\]/\\]/g;function F_(e,t){let n=0;for(;nt.length?1===t.length&&t[0]===I_.Static+I_.Segment?1:-1:0}function $_(e,t){let n=0;const o=e.score,l=t.score;for(;n0&&t[t.length-1]<0}const V_={strict:!1,end:!0,sensitive:!1};function D_(e,t,n){const o=function(e,t){const n=CC({},N_,t),o=[];let l=n.start?"^":"";const r=[];for(const s of e){const e=s.length?[]:[I_.Root];n.strict&&!s.length&&(l+="/");for(let t=0;t1&&("*"===s||"+"===s)&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),r.push({type:O_.Param,value:u,regexp:c,repeatable:"*"===s||"+"===s,optional:"*"===s||"?"===s})):t("Invalid state to consume buffer"),u="")}function p(){u+=s}for(;i{r(p)}:SC}function r(e){if(u_(e)){const t=o.get(e);t&&(o.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(r),t.alias.forEach(r))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&o.delete(e.record.name),e.children.forEach(r),e.alias.forEach(r))}}function a(e){const t=function(e,t){let n=0,o=t.length;for(;n!==o;){const l=n+o>>1;$_(e,t[l])<0?o=l:n=l+1}const l=function(e){let t=e;for(;t=t.parent;)if(G_(t)&&0===$_(e,t))return t}(e);return l&&(o=t.lastIndexOf(l,o-1)),o}(e,n);n.splice(t,0,e),e.record.name&&!U_(e)&&o.set(e.record.name,e)}return t=EC(V_,t),e.forEach(e=>l(e)),{addRoute:l,resolve:function(e,t){let l,r,a,s={};if("name"in e&&e.name){if(l=o.get(e.name),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e});a=l.record.name,s=CC(H_(t.params,l.keys.filter(e=>!e.optional).concat(l.parent?l.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&H_(e.params,l.keys.map(e=>e.name))),r=l.stringify(s)}else if(null!=e.path)r=e.path,l=n.find(e=>e.re.test(r)),l&&(s=l.parse(r),a=l.record.name);else{if(l=t.name?o.get(t.name):n.find(e=>e.re.test(t.path)),!l)throw p_(c_.MATCHER_NOT_FOUND,{location:e,currentLocation:t});a=l.record.name,s=CC({},t.params,e.params),r=l.stringify(s)}const i=[];let u=l;for(;u;)i.unshift(u.record),u=u.parent;return{name:a,path:r,params:s,matched:i,meta:K_(i)}},removeRoute:r,clearRoutes:function(){n.length=0,o.clear()},getRoutes:function(){return n},getRecordMatcher:function(e){return o.get(e)}}}function H_(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function W_(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:q_(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function q_(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]="object"==typeof n?n[o]:n;return t}function U_(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function K_(e){return e.reduce((e,t)=>CC(e,t.meta),{})}function G_({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Y_(e){const t=mn(y_),n=mn(w_),o=yr(()=>{const n=Ot(e.to);return t.resolve(n)}),l=yr(()=>{const{matched:e}=o.value,{length:t}=e,l=e[t-1],r=n.matched;if(!l||!r.length)return-1;const a=r.findIndex(YC.bind(null,l));if(a>-1)return a;const s=Z_(e[t-2]);return t>1&&Z_(l)===s&&r[r.length-1].path!==s?r.findIndex(YC.bind(null,e[t-2])):a}),r=yr(()=>l.value>-1&&function(e,t){for(const n in t){const o=t[n],l=e[n];if("string"==typeof o){if(o!==l)return!1}else if(!kC(l)||l.length!==o.length||o.some((e,t)=>e.valueOf()!==l[t].valueOf()))return!1}return!0}(n.params,o.value.params)),a=yr(()=>l.value>-1&&l.value===n.matched.length-1&&XC(n.params,o.value.params));return{route:o,href:yr(()=>o.value.href),isActive:r,isExactActive:a,navigate:function(n={}){if(function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}(n)){const n=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(SC);return e.viewTransition&&"undefined"!=typeof document&&"startViewTransition"in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}}}const X_=Xn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Y_,setup(e,{slots:t}){const n=pt(Y_(e)),{options:o}=mn(y_),l=yr(()=>({[J_(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[J_(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&(1===(r=t.default(n)).length?r[0]:r);var r;return e.custom?o:wr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:l.value},o)}}});function Z_(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const J_=(e,t,n)=>null!=e?e:null!=t?t:n,Q_=Xn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=mn(x_),l=yr(()=>e.route||o.value),r=mn(b_,0),a=yr(()=>{let e=Ot(r);const{matched:t}=l.value;let n;for(;(n=t[e])&&!n.components;)e++;return e}),s=yr(()=>l.value.matched[a.value]);hn(b_,yr(()=>a.value+1)),hn(g_,s),hn(x_,l);const i=St();return wn(()=>[i.value,s.value,e.name],([e,t,n],[o,l,r])=>{t&&(t.instances[n]=e,l&&l!==t&&e&&e===o&&(t.leaveGuards.size||(t.leaveGuards=l.leaveGuards),t.updateGuards.size||(t.updateGuards=l.updateGuards))),!e||!t||l&&YC(t,l)&&o||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:"post"}),()=>{const o=l.value,r=e.name,a=s.value,u=a&&a.components[r];if(!u)return eS(n.default,{Component:u,route:o});const c=a.props[r],d=c?!0===c?o.params:"function"==typeof c?c(o):c:null,p=wr(u,CC({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(a.instances[r]=null)},ref:i}));return eS(n.default,{Component:p,route:o})||p}}});function eS(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const tS=Q_;function nS(){return mn(y_)}function oS(e){return mn(w_)}const lS=new WeakMap,rS=(...e)=>{var t;const n=e[0],o=null===(t=ar())||void 0===t?void 0:t.proxy,l=null!=o?o:oe();if(null==l&&!gn())throw new Error("injectLocal must be called in setup");return l&&lS.has(l)&&n in lS.get(l)?lS.get(l)[n]:mn(...e)},aS="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const sS=Object.prototype.toString,iS=()=>{};function uS(...e){if(1!==e.length)return Ft(...e);const t=e[0];return"function"==typeof t?vt(new Pt(()=>({get:t,set:iS}))):St(t)}const cS=e=>e();function dS(e){return e.endsWith("rem")?16*Number.parseFloat(e):Number.parseFloat(e)}function pS(e){return Array.isArray(e)?e:[e]}function fS(e,t,n={}){const{eventFilter:o=cS,...l}=n;return wn(e,function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(o,t),l)}const vS=function(e,t,n={}){const{eventFilter:o,initialState:l="active",...r}=n,{eventFilter:a,pause:s,resume:i,isActive:u}=function(e=cS,t={}){const{initialState:n="active"}=t,o=uS("active"===n);return{isActive:vt(o),pause:function(){o.value=!1},resume:function(){o.value=!0},eventFilter:(...t)=>{o.value&&e(...t)}}}(o,{initialState:l});return{stop:fS(e,t,{...r,eventFilter:a}),pause:s,resume:i,isActive:u}};function hS(e,t=!0,n){ar()?co(e,n):t?e():tn(e)}function mS(e=!1,t={}){const{truthyValue:n=!0,falsyValue:o=!1}=t,l=_t(e),r=kt(e);function a(e){if(arguments.length)return r.value=e,r.value;{const e=Mt(n);return r.value=r.value===e?Mt(o):e,r.value}}return l?a:[r,a]}const gS=aS?window:void 0;function bS(e){var t;const n=Mt(e);return null!==(t=null==n?void 0:n.$el)&&void 0!==t?t:n}function yS(...e){const t=yr(()=>{const t=pS(Mt(e[0])).filter(e=>null!=e);return t.every(e=>"string"!=typeof e)?t:void 0});return n=([e,t,n,o],l,r)=>{if(!(null==e?void 0:e.length)||!(null==t?void 0:t.length)||!(null==n?void 0:n.length))return;const a=(s=o,"[object Object]"===sS.call(s)?{...o}:o);var s;const i=e.flatMap(e=>t.flatMap(t=>n.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,a))));r(()=>{i.forEach(e=>e())})},o={flush:"post"},wn(()=>{var n,o;return[null!==(n=null===(o=t.value)||void 0===o?void 0:o.map(e=>bS(e)))&&void 0!==n?n:[gS].filter(e=>null!=e),pS(Mt(t.value?e[1]:e[0])),pS(Ot(t.value?e[2]:e[1])),Mt(t.value?e[3]:e[2])]},n,{...o,immediate:!0});var n,o}function wS(){const e=kt(!1),t=ar();return t&&co(()=>{e.value=!0},t),e}function xS(e){const t=wS();return yr(()=>(t.value,Boolean(e())))}const CS=Symbol("vueuse-ssr-width");function _S(){const e=gn()?rS(CS,null):null;return"number"==typeof e?e:void 0}const SS="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},kS="__vueuse_ssr_handlers__",ES=TS();function TS(){return kS in SS||(SS[kS]=SS[kS]||{}),SS[kS]}function AS(e,t){return ES[e]||t}function OS(e){return function(e,t={}){const{window:n=gS,ssrWidth:o=_S()}=t,l=xS(()=>n&&"matchMedia"in n&&"function"==typeof n.matchMedia),r=kt("number"==typeof o),a=kt(),s=kt(!1);return yn(()=>{if(r.value)return r.value=!l.value,void(s.value=Mt(e).split(",").some(e=>{const t=e.includes("not all"),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),l=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let r=Boolean(n||l);return n&&r&&(r=o>=dS(n[1])),l&&r&&(r=o<=dS(l[1])),t?!r:r}));l.value&&(a.value=n.matchMedia(Mt(e)),s.value=a.value.matches)}),yS(a,"change",e=>{s.value=e.matches},{passive:!0}),yr(()=>s.value)}("(prefers-color-scheme: dark)",e)}const MS={boolean:{read:e=>"true"===e,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},RS="vueuse-storage";function LS(e,t,n,o={}){var l;const{flush:r="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:c,window:d=gS,eventFilter:p,onError:f=e=>{},initOnMounted:v}=o,h=(c?kt:St)("function"==typeof t?t():t),m=yr(()=>Mt(e));if(!n)try{n=AS("getDefaultStorage",()=>null==gS?void 0:gS.localStorage)()}catch(tT){f(tT)}if(!n)return h;const g=Mt(t),b=function(e){return null==e?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":"boolean"==typeof e?"boolean":"string"==typeof e?"string":"object"==typeof e?"object":Number.isNaN(e)?"any":"number"}(g),y=null!==(l=o.serializer)&&void 0!==l?l:MS[b],{pause:w,resume:x}=vS(h,e=>function(e){try{const t=n.getItem(m.value);if(null==e)_(t,null),n.removeItem(m.value);else{const o=y.write(e);t!==o&&(n.setItem(m.value,o),_(t,o))}}catch(tT){f(tT)}}(e),{flush:r,deep:a,eventFilter:p});wn(m,()=>S(),{flush:r});let C=!1;function _(e,t){if(d){const o={key:m.value,oldValue:e,newValue:t,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",o):new CustomEvent(RS,{detail:o}))}}function S(e){if(!e||e.storageArea===n)if(e&&null==e.key)h.value=g;else if(!e||e.key===m.value){w();try{const t=y.write(h.value);void 0!==e&&(null==e?void 0:e.newValue)===t||(h.value=function(e){const t=e?e.newValue:n.getItem(m.value);if(null==t)return i&&null!=g&&n.setItem(m.value,y.write(g)),g;if(!e&&u){const e=y.read(t);return"function"==typeof u?u(e,g):"object"!==b||Array.isArray(e)?e:{...g,...e}}return"string"!=typeof t?t:y.read(t)}(e))}catch(tT){f(tT)}finally{e?tn(x):x()}}}return d&&s&&(n instanceof Storage?yS(d,"storage",e=>{v&&!C||S(e)},{passive:!0}):yS(d,RS,e=>{v&&!C||S(e.detail)})),v?hS(()=>{C=!0,S()}):S(),h}function PS(e={}){const{valueDark:t="dark",valueLight:n=""}=e,o=function(e={}){const{selector:t="html",attribute:n="class",initialValue:o="auto",window:l=gS,storage:r,storageKey:a="vueuse-color-scheme",listenToStorageChanges:s=!0,storageRef:i,emitAuto:u,disableTransition:c=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},p=OS({window:l}),f=yr(()=>p.value?"dark":"light"),v=i||(null==a?uS(o):LS(a,o,r,{window:l,listenToStorageChanges:s})),h=yr(()=>"auto"===v.value?f.value:v.value),m=AS("updateHTMLAttrs",(e,t,n)=>{const o="string"==typeof e?null==l?void 0:l.document.querySelector(e):bS(e);if(!o)return;const r=new Set,a=new Set;let s,i=null;if("class"===t){const e=n.split(/\s/g);Object.values(d).flatMap(e=>(e||"").split(/\s/g)).filter(Boolean).forEach(t=>{e.includes(t)?r.add(t):a.add(t)})}else i={key:t,value:n};if(0!==r.size||0!==a.size||null!==i){c&&(s=l.document.createElement("style"),s.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),l.document.head.appendChild(s));for(const e of r)o.classList.add(e);for(const e of a)o.classList.remove(e);i&&o.setAttribute(i.key,i.value),c&&(l.getComputedStyle(s).opacity,document.head.removeChild(s))}});function g(e){var o;m(t,n,null!==(o=d[e])&&void 0!==o?o:e)}function b(t){e.onChanged?e.onChanged(t,g):g(t)}wn(h,b,{flush:"post",immediate:!0}),hS(()=>b(h.value));const y=yr({get:()=>u?v.value:h.value,set(e){v.value=e}});return Object.assign(y,{store:v,system:f,state:h})}({...e,onChanged:(t,n)=>{var o;e.onChanged?null===(o=e.onChanged)||void 0===o||o.call(e,"dark"===t,n,t):n(t)},modes:{dark:t,light:n}}),l=yr(()=>o.system.value);return yr({get:()=>"dark"===o.value,set(e){const t=e?"dark":"light";l.value===t?o.value="auto":o.value=t}})}const NS={xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},IS={render:function(e,t){return Fl(),Dl("svg",NS,[...t[0]||(t[0]=[Kl("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"},null,-1)])])}},BS={id:"app"},FS={class:"header"},$S={class:"header-top"},jS={class:"brand"},VS={class:"header-actions"},DS={class:"github-link",href:"https://github.com/fatedier/frp",target:"_blank","aria-label":"GitHub"},zS={class:"header-nav"},HS={id:"content"},WS=Xn({__name:"App",setup(e){const t=nS(),n=oS(),o=PS(),l=St(o),r=mS(o),a=yr(()=>n.path.startsWith("/proxies")?"/proxies":n.path),s=e=>{t.push(e)};return(e,n)=>{const o=zy,i=Ty,u=Ey,c=xo("router-view");return Fl(),Dl("div",BS,[Kl("header",FS,[Kl("div",$S,[Kl("div",jS,[Kl("a",{href:"#",onClick:n[0]||(n[0]=Ra(e=>Ot(t).push("/"),["prevent"]))},"frp")]),Kl("div",VS,[Kl("a",DS,[Gl(Ot(IS),{class:"github-icon"})]),Gl(o,{modelValue:l.value,"onUpdate:modelValue":n[1]||(n[1]=e=>l.value=e),"inline-prompt":"","active-icon":Ot(Ap),"inactive-icon":Ot(Bp),onChange:Ot(r),class:"theme-switch"},null,8,["modelValue","active-icon","inactive-icon","onChange"])])]),Kl("nav",zS,[Gl(u,{"default-active":a.value,mode:"horizontal",ellipsis:!1,onSelect:s,class:"nav-menu"},{default:pn(()=>[Gl(i,{index:"/"},{default:pn(()=>[...n[2]||(n[2]=[Xl("Overview",-1)])]),_:1}),Gl(i,{index:"/clients"},{default:pn(()=>[...n[3]||(n[3]=[Xl("Clients",-1)])]),_:1}),Gl(i,{index:"/proxies"},{default:pn(()=>[...n[4]||(n[4]=[Xl("Proxies",-1)])]),_:1})]),_:1},8,["default-active"])])]),Kl("main",HS,[Gl(c)])])}}});function qS(e){const t=Math.floor(((new Date).getTime()-e.getTime())/1e3);let n=t/31536e3;return n>1?Math.floor(n)+" years ago":(n=t/2592e3,n>1?Math.floor(n)+" months ago":(n=t/86400,n>1?Math.floor(n)+" days ago":(n=t/3600,n>1?Math.floor(n)+" hours ago":(n=t/60,n>1?Math.floor(n)+" minutes ago":Math.floor(t)+" seconds ago"))))}function US(e){if(!Number.isFinite(e)||e<0)return"0 B";if(0===e)return"0 B";const t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],n=Math.floor(Math.log(e)/Math.log(1024)),o=t[n]||t[t.length-1],l=e/Math.pow(1024,n);return parseFloat(l.toFixed(2))+" "+o}const KS={class:"stat-card-content"},GS={class:"stat-info"},YS={class:"stat-value"},XS={class:"stat-label"},ZS={key:0,class:"stat-subtitle"},JS=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n},QS=JS(Xn({__name:"StatCard",props:{label:{},value:{},type:{default:"clients"},subtitle:{},to:{}},setup(e){const t=e,n=nS(),o=yr(()=>{switch(t.type){case"clients":default:return jp;case"proxies":return yp;case"connections":return wp;case"traffic":return Rp}}),l=()=>{t.to&&n.push(t.to)};return(t,n)=>{const r=ip,a=$m;return Fl(),zl(a,{class:q(["stat-card",{clickable:!!e.to}]),"body-style":{padding:"20px"},shadow:"hover",onClick:l},{default:pn(()=>[Kl("div",KS,[Kl("div",{class:q(["stat-icon",`icon-${e.type}`])},[(Fl(),zl(_o(o.value),{class:"icon"}))],2),Kl("div",GS,[Kl("div",YS,Z(e.value),1),Kl("div",XS,Z(e.label),1)]),e.to?(Fl(),zl(r,{key:0,class:"arrow-icon"},{default:pn(()=>[Gl(Ot(dp))]),_:1})):Zl("",!0)]),e.subtitle?(Fl(),Dl("div",ZS,Z(e.subtitle),1)):Zl("",!0)]),_:1},8,["class"])}}}),[["__scopeId","data-v-c9ca9441"]]);class ek extends Error{status;statusText;constructor(e,t,n){super(n||t),this.status=e,this.statusText=t}}async function tk(e,t={}){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new ek(n.status,n.statusText,`HTTP ${n.status}`);return 204===n.status?{}:n.json()}const nk=(e,t)=>tk(e,{...t,method:"GET"}),ok=(e,t)=>tk(e,{...t,method:"DELETE"}),lk=()=>nk("../api/serverinfo"),rk={class:"server-overview"},ak={class:"card-header"},sk={class:"traffic-summary"},ik={class:"traffic-item in"},uk={class:"traffic-icon"},ck={class:"traffic-info"},dk={class:"value"},pk={class:"traffic-item out"},fk={class:"traffic-icon"},vk={class:"traffic-info"},hk={class:"value"},mk={class:"card-header"},gk={class:"proxy-types-grid"},bk={class:"proxy-type-name"},yk={class:"proxy-type-count"},wk={key:0,class:"no-data"},xk={class:"card-header"},Ck={class:"config-grid"},_k={class:"config-item"},Sk={class:"config-value"},kk={key:0,class:"config-item"},Ek={class:"config-value"},Tk={key:1,class:"config-item"},Ak={class:"config-value"},Ok={key:2,class:"config-item"},Mk={class:"config-value"},Rk={key:3,class:"config-item"},Lk={class:"config-value"},Pk={key:4,class:"config-item"},Nk={class:"config-value"},Ik={key:5,class:"config-item"},Bk={class:"config-value"},Fk={class:"config-item"},$k={class:"config-value"},jk={class:"config-item"},Vk={class:"config-value"},Dk={key:6,class:"config-item"},zk={class:"config-value"},Hk={key:7,class:"config-item"},Wk={class:"config-item"},qk={class:"config-value"},Uk=Xn({__name:"ServerOverview",setup(e){const t=St({version:"",bindPort:0,kcpBindPort:0,quicBindPort:0,vhostHTTPPort:0,vhostHTTPSPort:0,tcpmuxHTTPConnectPort:0,subdomainHost:"",maxPoolCount:0,maxPortsPerClient:"",allowPortsStr:"",tlsForce:!1,heartbeatTimeout:0,clientCounts:0,curConns:0,proxyCounts:0,totalTrafficIn:0,totalTrafficOut:0,proxyTypeCounts:{}}),n=yr(()=>Object.values(t.value.proxyTypeCounts).some(e=>e>0));return co(()=>{(async()=>{try{const e=await lk();t.value.version=e.version,t.value.bindPort=e.bindPort,t.value.kcpBindPort=e.kcpBindPort,t.value.quicBindPort=e.quicBindPort,t.value.vhostHTTPPort=e.vhostHTTPPort,t.value.vhostHTTPSPort=e.vhostHTTPSPort,t.value.tcpmuxHTTPConnectPort=e.tcpmuxHTTPConnectPort,t.value.subdomainHost=e.subdomainHost,t.value.maxPoolCount=e.maxPoolCount,t.value.maxPortsPerClient=String(e.maxPortsPerClient),"0"==t.value.maxPortsPerClient&&(t.value.maxPortsPerClient="no limit"),t.value.allowPortsStr=e.allowPortsStr,t.value.tlsForce=e.tlsForce,t.value.heartbeatTimeout=e.heartbeatTimeout,t.value.clientCounts=e.clientCounts,t.value.curConns=e.curConns,t.value.totalTrafficIn=e.totalTrafficIn,t.value.totalTrafficOut=e.totalTrafficOut,t.value.proxyTypeCounts=e.proxyTypeCount||{},t.value.proxyCounts=0,null!=e.proxyTypeCount&&Object.values(e.proxyTypeCount).forEach(e=>{t.value.proxyCounts+=e||0})}catch(e){gC({showClose:!0,message:"Get server info from frps failed!",type:"error"})}})()}),(e,o)=>{const l=Og,r=My,a=_g,s=ip,i=$m;return Fl(),Dl("div",rk,[Gl(r,{gutter:20,class:"stats-row"},{default:pn(()=>[Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Clients",value:t.value.clientCounts,type:"clients",subtitle:"Connected clients",to:"/clients"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Proxies",value:t.value.proxyCounts,type:"proxies",subtitle:"Active proxies",to:"/proxies/tcp"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Connections",value:t.value.curConns,type:"connections",subtitle:"Current connections"},null,8,["value"])]),_:1}),Gl(l,{xs:24,sm:12,lg:6},{default:pn(()=>[Gl(QS,{label:"Traffic",value:US(t.value.totalTrafficIn+t.value.totalTrafficOut),type:"traffic",subtitle:"Total today"},null,8,["value"])]),_:1})]),_:1}),Gl(r,{gutter:20,class:"charts-row"},{default:pn(()=>[Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",ak,[o[1]||(o[1]=Kl("span",{class:"card-title"},"Network Traffic",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Today",-1)])]),_:1})])]),default:pn(()=>[Kl("div",sk,[Kl("div",ik,[Kl("div",uk,[Gl(s,null,{default:pn(()=>[Gl(Ot(Cp))]),_:1})]),Kl("div",ck,[o[2]||(o[2]=Kl("div",{class:"label"},"Inbound",-1)),Kl("div",dk,Z(Ot(US)(t.value.totalTrafficIn)),1)])]),o[4]||(o[4]=Kl("div",{class:"traffic-divider"},null,-1)),Kl("div",pk,[Kl("div",fk,[Gl(s,null,{default:pn(()=>[Gl(Ot($p))]),_:1})]),Kl("div",vk,[o[3]||(o[3]=Kl("div",{class:"label"},"Outbound",-1)),Kl("div",hk,Z(Ot(US)(t.value.totalTrafficOut)),1)])])])]),_:1})]),_:1}),Gl(l,{xs:24,md:12},{default:pn(()=>[Gl(i,{class:"chart-card",shadow:"hover"},{header:pn(()=>[Kl("div",mk,[o[6]||(o[6]=Kl("span",{class:"card-title"},"Proxy Types",-1)),Gl(a,{size:"small",type:"info"},{default:pn(()=>[...o[5]||(o[5]=[Xl("Now",-1)])]),_:1})])]),default:pn(()=>[Kl("div",gk,[(Fl(!0),Dl(Rl,null,Eo(t.value.proxyTypeCounts,(e,t)=>fn((Fl(),Dl("div",{key:t,class:"proxy-type-item"},[Kl("div",bk,Z(t.toUpperCase()),1),Kl("div",yk,Z(e),1)])),[[Xr,e>0]])),128)),n.value?Zl("",!0):(Fl(),Dl("div",wk," No active proxies "))])]),_:1})]),_:1})]),_:1}),Gl(i,{class:"config-card",shadow:"hover"},{header:pn(()=>[Kl("div",xk,[o[7]||(o[7]=Kl("span",{class:"card-title"},"Server Configuration",-1)),Gl(a,{size:"small",type:"success"},{default:pn(()=>[Xl("v"+Z(t.value.version),1)]),_:1})])]),default:pn(()=>[Kl("div",Ck,[Kl("div",_k,[o[8]||(o[8]=Kl("span",{class:"config-label"},"Bind Port",-1)),Kl("span",Sk,Z(t.value.bindPort),1)]),0!=t.value.kcpBindPort?(Fl(),Dl("div",kk,[o[9]||(o[9]=Kl("span",{class:"config-label"},"KCP Port",-1)),Kl("span",Ek,Z(t.value.kcpBindPort),1)])):Zl("",!0),0!=t.value.quicBindPort?(Fl(),Dl("div",Tk,[o[10]||(o[10]=Kl("span",{class:"config-label"},"QUIC Port",-1)),Kl("span",Ak,Z(t.value.quicBindPort),1)])):Zl("",!0),0!=t.value.vhostHTTPPort?(Fl(),Dl("div",Ok,[o[11]||(o[11]=Kl("span",{class:"config-label"},"HTTP Port",-1)),Kl("span",Mk,Z(t.value.vhostHTTPPort),1)])):Zl("",!0),0!=t.value.vhostHTTPSPort?(Fl(),Dl("div",Rk,[o[12]||(o[12]=Kl("span",{class:"config-label"},"HTTPS Port",-1)),Kl("span",Lk,Z(t.value.vhostHTTPSPort),1)])):Zl("",!0),0!=t.value.tcpmuxHTTPConnectPort?(Fl(),Dl("div",Pk,[o[13]||(o[13]=Kl("span",{class:"config-label"},"TCPMux Port",-1)),Kl("span",Nk,Z(t.value.tcpmuxHTTPConnectPort),1)])):Zl("",!0),""!=t.value.subdomainHost?(Fl(),Dl("div",Ik,[o[14]||(o[14]=Kl("span",{class:"config-label"},"Subdomain Host",-1)),Kl("span",Bk,Z(t.value.subdomainHost),1)])):Zl("",!0),Kl("div",Fk,[o[15]||(o[15]=Kl("span",{class:"config-label"},"Max Pool Count",-1)),Kl("span",$k,Z(t.value.maxPoolCount),1)]),Kl("div",jk,[o[16]||(o[16]=Kl("span",{class:"config-label"},"Max Ports/Client",-1)),Kl("span",Vk,Z(t.value.maxPortsPerClient),1)]),""!=t.value.allowPortsStr?(Fl(),Dl("div",Dk,[o[17]||(o[17]=Kl("span",{class:"config-label"},"Allow Ports",-1)),Kl("span",zk,Z(t.value.allowPortsStr),1)])):Zl("",!0),t.value.tlsForce?(Fl(),Dl("div",Hk,[o[19]||(o[19]=Kl("span",{class:"config-label"},"TLS Force",-1)),Gl(a,{size:"small",type:"warning"},{default:pn(()=>[...o[18]||(o[18]=[Xl("Enabled",-1)])]),_:1})])):Zl("",!0),Kl("div",Wk,[o[20]||(o[20]=Kl("span",{class:"config-label"},"Heartbeat Timeout",-1)),Kl("span",qk,Z(t.value.heartbeatTimeout)+"s",1)])])]),_:1})])}}}),Kk=JS(Uk,[["__scopeId","data-v-10087479"]]);class Gk{key;user;clientID;runID;hostname;ip;metas;firstConnectedAt;lastConnectedAt;disconnectedAt;online;constructor(e){if(this.key=e.key,this.user=e.user,this.clientID=e.clientID,this.runID=e.runID,this.hostname=e.hostname,this.ip=e.clientIP||"",this.metas=new Map,e.metas)for(const[t,n]of Object.entries(e.metas))this.metas.set(t,n);this.firstConnectedAt=new Date(1e3*e.firstConnectedAt),this.lastConnectedAt=new Date(1e3*e.lastConnectedAt),e.disconnectedAt&&e.disconnectedAt>0&&(this.disconnectedAt=new Date(1e3*e.disconnectedAt)),this.online=e.online}get displayName(){return this.clientID?this.user?`${this.user}.${this.clientID}`:this.clientID:this.runID}get shortRunId(){return this.runID.substring(0,8)}get firstConnectedAgo(){return qS(this.firstConnectedAt)}get lastConnectedAgo(){return qS(this.lastConnectedAt)}get disconnectedAgo(){return this.disconnectedAt?qS(this.disconnectedAt):""}get statusColor(){return this.online?"success":"danger"}get metasArray(){const e=[];return this.metas.forEach((t,n)=>{e.push({key:n,value:t})}),e}matchesFilter(e){const t=e.toLowerCase();return this.key.toLowerCase().includes(t)||this.user.toLowerCase().includes(t)||this.clientID.toLowerCase().includes(t)||this.runID.toLowerCase().includes(t)||this.hostname.toLowerCase().includes(t)}}const Yk={class:"client-header"},Xk={class:"client-status"},Zk={class:"client-name"},Jk={class:"client-info"},Qk={class:"info-row"},eE={class:"info-value"},tE={key:0,class:"info-row"},nE={class:"info-value monospace"},oE={key:1,class:"info-row"},lE={class:"info-value"},rE={class:"info-row"},aE={class:"info-value monospace"},sE={key:2,class:"info-row"},iE={class:"info-value"},uE={key:3,class:"info-row"},cE={class:"info-value"},dE={key:4,class:"info-row"},pE={class:"info-value"},fE=JS(Xn({__name:"ClientCard",props:{client:{}},setup(e){const t=e,n=yr(()=>`status-${t.client.statusColor}`);return(t,o)=>{const l=_g,r=ip,a=$m;return Fl(),zl(a,{class:"client-card",shadow:"hover","body-style":{padding:"20px"}},{default:pn(()=>[Kl("div",Yk,[Kl("div",Xk,[Kl("span",{class:q(["status-dot",n.value])},null,2),Kl("span",Zk,Z(e.client.displayName),1)]),Gl(l,{type:e.client.statusColor,size:"small"},{default:pn(()=>[Xl(Z(e.client.online?"Online":"Offline"),1)]),_:1},8,["type"])]),Kl("div",Jk,[Kl("div",Qk,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(Tp))]),_:1}),o[0]||(o[0]=Kl("span",{class:"info-label"},"Hostname:",-1)),Kl("span",eE,Z(e.client.hostname||"N/A"),1)]),e.client.ip?(Fl(),Dl("div",tE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(yp))]),_:1}),o[1]||(o[1]=Kl("span",{class:"info-label"},"IP:",-1)),Kl("span",nE,Z(e.client.ip),1)])):Zl("",!0),e.client.user?(Fl(),Dl("div",oE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(jp))]),_:1}),o[2]||(o[2]=Kl("span",{class:"info-label"},"User:",-1)),Kl("span",lE,Z(e.client.user),1)])):Zl("",!0),Kl("div",rE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(kp))]),_:1}),o[3]||(o[3]=Kl("span",{class:"info-label"},"Run ID:",-1)),Kl("span",aE,Z(e.client.runID),1)]),e.client.firstConnectedAt?(Fl(),Dl("div",sE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[4]||(o[4]=Kl("span",{class:"info-label"},"First Connected:",-1)),Kl("span",iE,Z(e.client.firstConnectedAgo),1)])):Zl("",!0),e.client.online?(Fl(),Dl("div",uE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(gp))]),_:1}),o[5]||(o[5]=Kl("span",{class:"info-label"},"Last Connected:",-1)),Kl("span",cE,Z(e.client.lastConnectedAgo),1)])):Zl("",!0),!e.client.online&&e.client.disconnectedAt?(Fl(),Dl("div",dE,[Gl(r,{class:"info-icon"},{default:pn(()=>[Gl(Ot(mp))]),_:1}),o[6]||(o[6]=Kl("span",{class:"info-label"},"Disconnected:",-1)),Kl("span",pE,Z(e.client.disconnectedAgo),1)])):Zl("",!0)])]),_:1})}}}),[["__scopeId","data-v-4bd4753c"]]),vE={class:"clients-page"},hE={class:"filter-bar"},mE={class:"clients-grid"},gE=JS(Xn({__name:"Clients",setup(e){const t=St([]),n=St(!1),o=St(""),l=St("all");let r=null;const a=yr(()=>{const e=t.value.length,n=t.value.filter(e=>e.online).length;return{total:e,online:n,offline:e-n}}),s=yr(()=>{let e=t.value;return"online"===l.value?e=e.filter(e=>e.online):"offline"===l.value&&(e=e.filter(e=>!e.online)),o.value&&(e=e.filter(e=>e.matchesFilter(o.value))),e.sort((e,t)=>e.online!==t.online?e.online?-1:1:e.displayName.localeCompare(t.displayName)),e}),i=async()=>{n.value=!0;try{const e=await nk("../api/clients");t.value=e.map(e=>new Gk(e))}catch(e){gC({showClose:!0,message:"Failed to fetch clients: "+e.message,type:"error"})}finally{n.value=!1}};return co(()=>{i(),r=window.setInterval(()=>{i()},5e3)}),ho(()=>{null!==r&&(window.clearInterval(r),r=null)}),(e,t)=>{const r=Cf,i=yg,u=bg,c=Cb,d=nC;return Fl(),Dl("div",vE,[Kl("div",hE,[Gl(r,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=e=>o.value=e),placeholder:"Search by hostname, user, client ID, run ID...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(u,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=e=>l.value=e),class:"status-filter"},{default:pn(()=>[Gl(i,{label:"all"},{default:pn(()=>[Xl("All ("+Z(a.value.total)+")",1)]),_:1}),Gl(i,{label:"online"},{default:pn(()=>[Xl(" Online ("+Z(a.value.online)+") ",1)]),_:1}),Gl(i,{label:"offline"},{default:pn(()=>[Xl(" Offline ("+Z(a.value.offline)+") ",1)]),_:1})]),_:1},8,["modelValue"])]),fn((Fl(),Dl("div",mE,[0!==s.value.length||n.value?Zl("",!0):(Fl(),zl(c,{key:0,description:"No clients found"})),(Fl(!0),Dl(Rl,null,Eo(s.value,e=>(Fl(),zl(fE,{key:e.key,client:e},null,8,["client"]))),128))])),[[d,n.value]])])}}}),[["__scopeId","data-v-14cf389c"]]);class bE{name;type;annotations;encryption;compression;conns;trafficIn;trafficOut;lastStartTime;lastCloseTime;status;clientVersion;addr;port;customDomains;hostHeaderRewrite;locations;subdomain;constructor(e){if(this.name=e.name,this.type="",this.annotations=new Map,e.conf?.annotations)for(const t in e.conf.annotations)this.annotations.set(t,e.conf.annotations[t]);this.encryption=!1,this.compression=!1,this.encryption=e.conf?.transport?.useEncryption||this.encryption,this.compression=e.conf?.transport?.useCompression||this.compression,this.conns=e.curConns,this.trafficIn=e.todayTrafficIn,this.trafficOut=e.todayTrafficOut,this.lastStartTime=e.lastStartTime,this.lastCloseTime=e.lastCloseTime,this.status=e.status,this.clientVersion=e.clientVersion,this.addr="",this.port=0,this.customDomains="",this.hostHeaderRewrite="",this.locations="",this.subdomain=""}}class yE extends bE{constructor(e){super(e),this.type="tcp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class wE extends bE{constructor(e){super(e),this.type="udp",null!=e.conf?(this.addr=":"+e.conf.remotePort,this.port=e.conf.remotePort):(this.addr="",this.port=0)}}class xE extends bE{constructor(e,t,n){super(e),this.type="http",this.port=t,e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.hostHeaderRewrite=e.conf.hostHeaderRewrite,this.locations=e.conf.locations,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class CE extends bE{constructor(e,t,n){super(e),this.type="https",this.port=t,null!=e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class _E extends bE{multiplexer;routeByHTTPUser;constructor(e,t,n){super(e),this.type="tcpmux",this.port=t,this.multiplexer="",this.routeByHTTPUser="",e.conf&&(this.customDomains=e.conf.customDomains||this.customDomains,this.multiplexer=e.conf.multiplexer,this.routeByHTTPUser=e.conf.routeByHTTPUser,e.conf.subdomain&&(this.subdomain=`${e.conf.subdomain}.${n}`))}}class SE extends bE{constructor(e){super(e),this.type="stcp"}}class kE extends bE{constructor(e){super(e),this.type="sudp"}}const EE={key:0},TE={key:1},AE={key:2},OE={key:0},ME={class:"annotation-key"},RE=Xn({__name:"ProxyViewExpand",props:{row:{},proxyType:{}},setup(e){const t=e,n=()=>{const e=[];return t.row.annotations&&t.row.annotations.forEach((t,n)=>{e.push({key:n,value:t})}),e};return(t,o)=>{const l=ay,r=ry,a=Gg,s=Ux;return Fl(),Dl(Rl,null,[Gl(r,{"label-position":"left","label-width":"auto",inline:"",class:"proxy-table-expand"},{default:pn(()=>[Gl(l,{label:"Name"},{default:pn(()=>[Kl("span",null,Z(e.row.name),1)]),_:1}),Gl(l,{label:"Type"},{default:pn(()=>[Kl("span",null,Z(e.row.type),1)]),_:1}),Gl(l,{label:"Encryption"},{default:pn(()=>[Kl("span",null,Z(e.row.encryption),1)]),_:1}),Gl(l,{label:"Compression"},{default:pn(()=>[Kl("span",null,Z(e.row.compression),1)]),_:1}),Gl(l,{label:"Last Start"},{default:pn(()=>[Kl("span",null,Z(e.row.lastStartTime),1)]),_:1}),Gl(l,{label:"Last Close"},{default:pn(()=>[Kl("span",null,Z(e.row.lastCloseTime),1)]),_:1}),"http"===e.proxyType||"https"===e.proxyType?(Fl(),Dl("div",EE,[Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1}),Gl(l,{label:"locations"},{default:pn(()=>[Kl("span",null,Z(e.row.locations),1)]),_:1}),Gl(l,{label:"HostRewrite"},{default:pn(()=>[Kl("span",null,Z(e.row.hostHeaderRewrite),1)]),_:1})])):"tcpmux"===e.proxyType?(Fl(),Dl("div",TE,[Gl(l,{label:"Multiplexer"},{default:pn(()=>[Kl("span",null,Z(e.row.multiplexer),1)]),_:1}),Gl(l,{label:"RouteByHTTPUser"},{default:pn(()=>[Kl("span",null,Z(e.row.routeByHTTPUser),1)]),_:1}),Gl(l,{label:"Domains"},{default:pn(()=>[Kl("span",null,Z(e.row.customDomains),1)]),_:1}),Gl(l,{label:"SubDomain"},{default:pn(()=>[Kl("span",null,Z(e.row.subdomain),1)]),_:1})])):(Fl(),Dl("div",AE,[Gl(l,{label:"Addr"},{default:pn(()=>[Kl("span",null,Z(e.row.addr),1)]),_:1})]))]),_:1}),e.row.annotations&&e.row.annotations.size>0?(Fl(),Dl("div",OE,[Gl(a),Gl(s,{class:"title-text",size:"large"},{default:pn(()=>[...o[0]||(o[0]=[Xl("Annotations",-1)])]),_:1}),Kl("ul",null,[(Fl(!0),Dl(Rl,null,Eo(n(),e=>(Fl(),Dl("li",{key:e.key},[Kl("span",ME,Z(e.key),1),Kl("span",null,Z(e.value),1)]))),128))])])):Zl("",!0)],64)}}}),LE={class:"traffic-chart-container"},PE={key:0,class:"chart-wrapper"},NE={class:"y-axis"},IE={class:"y-label"},BE={class:"y-label"},FE={class:"bars-area"},$E={class:"bars-group"},jE={class:"date-label"},VE={key:1,class:"legend"},DE=Xn({__name:"Traffic",props:{proxyName:{}},setup(e){const t=e,n=St(!1),o=St([]),l=St(0),r=()=>{n.value=!0,(e=>nk(`../api/traffic/${e}`))(t.proxyName).then(e=>{((e,t)=>{const n=[...e||[]].reverse(),r=[...t||[]].reverse();for(;n.length<7;)n.unshift(0);for(;r.length<7;)r.unshift(0);const a=n.slice(-7),s=r.slice(-7),i=[];let u=new Date;u.setDate(u.getDate()-6);for(let o=0;o<7;o++)i.push(`${u.getMonth()+1}-${u.getDate()}`),u.setDate(u.getDate()+1);const c=Math.max(...a),d=Math.max(...s);l.value=Math.max(c,d,100),o.value=i.map((e,t)=>({date:e,in:a[t],out:s[t],inPercent:a[t]/l.value*100,outPercent:s[t]/l.value*100}))})(e.trafficIn,e.trafficOut)}).catch(e=>{gC({showClose:!0,message:"Get traffic info failed! "+e,type:"warning"})}).finally(()=>{n.value=!1})};return co(()=>{r()}),(e,t)=>{const r=im,a=Cb,s=nC;return fn((Fl(),Dl("div",LE,[!n.value&&o.value.length>0?(Fl(),Dl("div",PE,[Kl("div",NE,[Kl("div",IE,Z(Ot(US)(l.value)),1),Kl("div",BE,Z(Ot(US)(l.value/2)),1),t[0]||(t[0]=Kl("div",{class:"y-label"},"0",-1))]),Kl("div",FE,[t[1]||(t[1]=Kl("div",{class:"grid-line top"},null,-1)),t[2]||(t[2]=Kl("div",{class:"grid-line middle"},null,-1)),t[3]||(t[3]=Kl("div",{class:"grid-line bottom"},null,-1)),(Fl(!0),Dl(Rl,null,Eo(o.value,(e,t)=>(Fl(),Dl("div",{key:t,class:"day-column"},[Kl("div",$E,[Gl(r,{content:`In: ${Ot(US)(e.in)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-in",style:V({height:Math.max(e.inPercent,1)+"%"})},null,4)]),_:2},1032,["content"]),Gl(r,{content:`Out: ${Ot(US)(e.out)}`,placement:"top"},{default:pn(()=>[Kl("div",{class:"bar bar-out",style:V({height:Math.max(e.outPercent,1)+"%"})},null,4)]),_:2},1032,["content"])]),Kl("div",jE,Z(e.date),1)]))),128))])])):Zl("",!0),!n.value&&o.value.length>0?(Fl(),Dl("div",VE,[...t[4]||(t[4]=[Kl("div",{class:"legend-item"},[Kl("span",{class:"dot in"}),Xl(" Traffic In ")],-1),Kl("div",{class:"legend-item"},[Kl("span",{class:"dot out"}),Xl(" Traffic Out ")],-1)])])):n.value?Zl("",!0):(Fl(),zl(a,{key:2,description:"No traffic data"}))])),[[s,n.value]])}}}),zE=JS(DE,[["__scopeId","data-v-3f425b60"]]),HE={class:"proxies-page"},WE={class:"toolbar-header"},qE={class:"toolbar-actions"},UE={class:"expand-wrapper"},KE={class:"traffic-cell"},GE={class:"traffic-item up",title:"Traffic Out"},YE={class:"traffic-item down",title:"Traffic In"},XE=Xn({__name:"Proxies",setup(e){const t=oS(),n=nS(),o=[{label:"TCP",value:"tcp"},{label:"UDP",value:"udp"},{label:"HTTP",value:"http"},{label:"HTTPS",value:"https"},{label:"TCPMUX",value:"tcpmux"},{label:"STCP",value:"stcp"},{label:"SUDP",value:"sudp"}],l=St(t.params.type||"tcp"),r=St([]),a=St(!1),s=St(""),i=St(!1),u=St(""),c=yr(()=>{if(!s.value)return r.value;const e=s.value.toLowerCase();return r.value.filter(t=>t.name.toLowerCase().includes(e))});let d=null;const p=async()=>{if(d)return d;const e=await lk();return d=e,d},f=async()=>{a.value=!0,r.value=[];try{const e=l.value,t=await(e=>nk(`../api/proxy/${e}`))(e);if("tcp"===e)r.value=t.proxies.map(e=>new yE(e));else if("udp"===e)r.value=t.proxies.map(e=>new wE(e));else if("http"===e){const e=await p();e&&e.vhostHTTPPort&&(r.value=t.proxies.map(t=>new xE(t,e.vhostHTTPPort,e.subdomainHost)))}else if("https"===e){const e=await p();e&&e.vhostHTTPSPort&&(r.value=t.proxies.map(t=>new CE(t,e.vhostHTTPSPort,e.subdomainHost)))}else if("tcpmux"===e){const e=await p();e&&e.tcpmuxHTTPConnectPort&&(r.value=t.proxies.map(t=>new _E(t,e.tcpmuxHTTPConnectPort,e.subdomainHost)))}else"stcp"===e?r.value=t.proxies.map(e=>new SE(e)):"sudp"===e&&(r.value=t.proxies.map(e=>new kE(e)))}catch(e){gC({showClose:!0,message:"Failed to fetch proxies: "+e.message,type:"error"})}finally{a.value=!1}},v=async()=>{try{await ok("../api/proxies?status=offline"),gC({message:"Successfully cleared offline proxies",type:"success"}),f()}catch(e){gC({message:"Failed to clear offline proxies: "+e.message,type:"warning"})}};return wn(l,e=>{n.replace({params:{type:e}}),f()}),f(),(e,t)=>{const n=qx,r=Wx,d=Cf,p=Fm,h=im,m=Oy,g=Ax,b=ip,y=_g,w=Tx,x=$m,C=Kg,_=nC;return Fl(),Dl("div",HE,[Gl(x,{class:"main-card",shadow:"never"},{default:pn(()=>[Kl("div",WE,[Gl(r,{modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),class:"proxy-tabs"},{default:pn(()=>[(Fl(),Dl(Rl,null,Eo(o,e=>Gl(n,{key:e.value,label:e.label,name:e.value},null,8,["label","name"])),64))]),_:1},8,["modelValue"]),Kl("div",qE,[Gl(d,{modelValue:s.value,"onUpdate:modelValue":t[1]||(t[1]=e=>s.value=e),placeholder:"Search by name...","prefix-icon":Ot(Np),clearable:"",class:"search-input"},null,8,["modelValue","prefix-icon"]),Gl(h,{content:"Refresh",placement:"top"},{default:pn(()=>[Gl(p,{icon:Ot(Pp),circle:"",onClick:f},null,8,["icon"])]),_:1}),Gl(m,{title:"Are you sure to clear all data of offline proxies?",onConfirm:v},{reference:pn(()=>[Gl(p,{type:"danger",plain:"",icon:Ot(xp)},{default:pn(()=>[...t[3]||(t[3]=[Xl("Clear Offline",-1)])]),_:1},8,["icon"])]),_:1})])]),fn((Fl(),zl(w,{data:c.value,"default-sort":{prop:"name",order:"ascending"},style:{width:"100%"}},{default:pn(()=>[Gl(g,{type:"expand"},{default:pn(e=>[Kl("div",UE,[Gl(RE,{row:e.row,proxyType:l.value},null,8,["row","proxyType"])])]),_:1}),Gl(g,{label:"Name",prop:"name",sortable:"","min-width":"150","show-overflow-tooltip":""}),Gl(g,{label:"Port",prop:"port",sortable:"",width:"100"}),Gl(g,{label:"Conns",prop:"conns",sortable:"",width:"100",align:"center"}),Gl(g,{label:"Traffic",width:"220"},{default:pn(e=>[Kl("div",KE,[Kl("span",GE,[Gl(b,null,{default:pn(()=>[Gl(Ot(Fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficOut)),1)]),Kl("span",YE,[Gl(b,null,{default:pn(()=>[Gl(Ot(fp))]),_:1}),Xl(" "+Z(Ot(US)(e.row.trafficIn)),1)])])]),_:1}),Gl(g,{label:"Version",prop:"clientVersion",sortable:"",width:"140","show-overflow-tooltip":""}),Gl(g,{label:"Status",prop:"status",sortable:"",width:"120",align:"center"},{default:pn(e=>[Gl(y,{type:"online"===e.row.status?"success":"danger",effect:"light",round:""},{default:pn(()=>[Xl(Z(e.row.status),1)]),_:2},1032,["type"])]),_:1}),Gl(g,{label:"Action",width:"120",align:"center",fixed:"right"},{default:pn(e=>[Gl(p,{type:"primary",link:"",icon:Ot(wp),onClick:t=>(e=>{u.value=e,i.value=!0})(e.row.name)},{default:pn(()=>[...t[4]||(t[4]=[Xl(" Traffic ",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[_,a.value]])]),_:1}),Gl(C,{modelValue:i.value,"onUpdate:modelValue":t[2]||(t[2]=e=>i.value=e),"destroy-on-close":"",title:`Traffic Statistics - ${u.value}`,width:"700px","align-center":"",class:"traffic-dialog"},{default:pn(()=>[Gl(zE,{proxyName:u.value},null,8,["proxyName"])]),_:1},8,["modelValue","title"])])}}}),ZE=JS(XE,[["__scopeId","data-v-0da05f6a"]]),JE=function(e){const t=z_(e.routes,e),n=e.parseQuery||v_,o=e.stringifyQuery||h_,l=e.history,r=C_(),a=C_(),s=C_(),i=kt(QC);let u=QC;wC&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=_C.bind(null,e=>""+e),d=_C.bind(null,WC),p=_C.bind(null,qC);function f(e,r){if(r=CC({},r||i.value),"string"==typeof e){const o=KC(n,e,r.path),a=t.resolve({path:o.path},r),s=l.createHref(o.fullPath);return CC(o,a,{params:p(a.params),hash:qC(o.hash),redirectedFrom:void 0,href:s})}let a;if(null!=e.path)a=CC({},e,{path:KC(n,e.path,r.path).path});else{const t=CC({},e.params);for(const e in t)null==t[e]&&delete t[e];a=CC({},e,{params:d(t)}),r.params=d(r.params)}const s=t.resolve(a,r),u=e.hash||"";s.params=c(p(s.params));const f=function(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}(o,CC({},e,{hash:(v=u,DC(v).replace(FC,"{").replace(jC,"}").replace(IC,"^")),path:s.path}));var v;const h=l.createHref(f);return CC({fullPath:f,hash:u,query:o===h_?m_(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function v(e){return"string"==typeof e?KC(n,e,i.value.path):CC({},e)}function h(e,t){if(u!==e)return p_(c_.NAVIGATION_CANCELLED,{from:t,to:e})}function m(e){return b(e)}function g(e,t){const n=e.matched[e.matched.length-1];if(n&&n.redirect){const{redirect:o}=n;let l="function"==typeof o?o(e,t):o;return"string"==typeof l&&(l=l.includes("?")||l.includes("#")?l=v(l):{path:l},l.params={}),CC({query:e.query,hash:e.hash,params:null!=l.path?{}:e.params},l)}}function b(e,t){const n=u=f(e),l=i.value,r=e.state,a=e.force,s=!0===e.replace,c=g(n,l);if(c)return b(CC(v(c),{state:"object"==typeof c?CC({},r,c.state):r,force:a,replace:s}),t||n);const d=n;let p;return d.redirectedFrom=t,!a&&function(e,t,n){const o=t.matched.length-1,l=n.matched.length-1;return o>-1&&o===l&&YC(t.matched[o],n.matched[l])&&XC(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}(o,l,n)&&(p=p_(c_.NAVIGATION_DUPLICATED,{to:d,from:l}),R(l,l,!0,!1)),(p?Promise.resolve(p):x(d,l)).catch(e=>f_(e)?f_(e,c_.NAVIGATION_GUARD_REDIRECT)?e:M(e):O(e,d,l)).then(e=>{if(e){if(f_(e,c_.NAVIGATION_GUARD_REDIRECT))return b(CC({replace:s},v(e.to),{state:"object"==typeof e.to?CC({},r,e.to.state):r,force:a}),t||d)}else e=_(d,l,!0,s,r);return C(d,l,e),e})}function y(e,t){const n=h(e,t);return n?Promise.reject(n):Promise.resolve()}function w(e){const t=N.values().next().value;return t&&"function"==typeof t.runWithContext?t.runWithContext(e):e()}function x(e,t){let n;const[o,l,s]=function(e,t){const n=[],o=[],l=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;aYC(e,r))?o.push(r):n.push(r));const s=e.matched[a];s&&(t.matched.find(e=>YC(e,s))||l.push(s))}return[n,o,l]}(e,t);n=S_(o.reverse(),"beforeRouteLeave",e,t);for(const r of o)r.leaveGuards.forEach(o=>{n.push(__(o,e,t))});const i=y.bind(null,e,t);return n.push(i),B(n).then(()=>{n=[];for(const o of r.list())n.push(__(o,e,t));return n.push(i),B(n)}).then(()=>{n=S_(l,"beforeRouteUpdate",e,t);for(const o of l)o.updateGuards.forEach(o=>{n.push(__(o,e,t))});return n.push(i),B(n)}).then(()=>{n=[];for(const o of s)if(o.beforeEnter)if(kC(o.beforeEnter))for(const l of o.beforeEnter)n.push(__(l,e,t));else n.push(__(o.beforeEnter,e,t));return n.push(i),B(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=S_(s,"beforeRouteEnter",e,t,w),n.push(i),B(n))).then(()=>{n=[];for(const o of a.list())n.push(__(o,e,t));return n.push(i),B(n)}).catch(e=>f_(e,c_.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function C(e,t,n){s.list().forEach(o=>w(()=>o(e,t,n)))}function _(e,t,n,o,r){const a=h(e,t);if(a)return a;const s=t===QC,u=wC?history.state:{};n&&(o||s?l.replace(e.fullPath,CC({scroll:s&&u&&u.scroll},r)):l.push(e.fullPath,r)),i.value=e,R(e,t,n,s),M()}let S;function k(){S||(S=l.listen((e,t,n)=>{if(!I.listening)return;const o=f(e),r=g(o,I.currentRoute.value);if(r)return void b(CC(r,{replace:!0,force:!0}),o).catch(SC);u=o;const a=i.value;var s,c;wC&&(s=s_(a.fullPath,n.delta),c=r_(),i_.set(s,c)),x(o,a).catch(e=>f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_CANCELLED)?e:f_(e,c_.NAVIGATION_GUARD_REDIRECT)?(b(CC(v(e.to),{force:!0}),o).then(e=>{f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===e_.pop&&l.go(-1,!1)}).catch(SC),Promise.reject()):(n.delta&&l.go(-n.delta,!1),O(e,o,a))).then(e=>{(e=e||_(o,a,!1))&&(n.delta&&!f_(e,c_.NAVIGATION_CANCELLED)?l.go(-n.delta,!1):n.type===e_.pop&&f_(e,c_.NAVIGATION_ABORTED|c_.NAVIGATION_DUPLICATED)&&l.go(-1,!1)),C(o,a,e)}).catch(SC)}))}let E,T=C_(),A=C_();function O(e,t,n){M(e);const o=A.list();return o.length&&o.forEach(o=>o(e,t,n)),Promise.reject(e)}function M(e){return E||(E=!e,k(),T.list().forEach(([t,n])=>e?n(e):t()),T.reset()),e}function R(t,n,o,l){const{scrollBehavior:r}=e;if(!wC||!r)return Promise.resolve();const a=!o&&function(e){const t=i_.get(e);return i_.delete(e),t}(s_(t.fullPath,0))||(l||!o)&&history.state&&history.state.scroll||null;return tn().then(()=>r(t,n,a)).then(e=>e&&a_(e)).catch(e=>O(e,t,n))}const L=e=>l.go(e);let P;const N=new Set,I={currentRoute:i,listening:!0,addRoute:function(e,n){let o,l;return u_(e)?(o=t.getRecordMatcher(e),l=n):l=e,t.addRoute(l,o)},removeRoute:function(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)},clearRoutes:t.clearRoutes,hasRoute:function(e){return!!t.getRecordMatcher(e)},getRoutes:function(){return t.getRoutes().map(e=>e.record)},resolve:f,options:e,push:m,replace:function(e){return m(CC(v(e),{replace:!0}))},go:L,back:()=>L(-1),forward:()=>L(1),beforeEach:r.add,beforeResolve:a.add,afterEach:s.add,onError:A.add,isReady:function(){return E&&i.value!==QC?Promise.resolve():new Promise((e,t)=>{T.add([e,t])})},install(e){e.component("RouterLink",X_),e.component("RouterView",tS),e.config.globalProperties.$router=I,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(i)}),wC&&!P&&i.value===QC&&(P=!0,m(l.location).catch(e=>{}));const t={};for(const o in QC)Object.defineProperty(t,o,{get:()=>i.value[o],enumerable:!0});e.provide(y_,I),e.provide(w_,ft(t)),e.provide(x_,i);const n=e.unmount;N.add(e),e.unmount=function(){N.delete(e),N.size<1&&(u=QC,S&&S(),S=null,i.value=QC,P=!1,E=!1),n()}}};function B(e){return e.reduce((e,t)=>e.then(()=>w(t)),Promise.resolve())}return I}({history:((QE=location.host?QE||location.pathname+location.search:"").includes("#")||(QE+="#"),A_(QE)),routes:[{path:"/",name:"ServerOverview",component:Kk},{path:"/clients",name:"Clients",component:gE},{path:"/proxies/:type?",name:"Proxies",component:ZE}]});var QE;const eT=$a(WS);eT.use(JE),eT.mount("#app")}},function(){return t||(0,e[n(e)[0]])((t={exports:{}}).exports,t),t.exports});export default o(); diff --git a/assets/frps/static/index.html b/assets/frps/static/index.html deleted file mode 100644 index c952d6311b9..00000000000 --- a/assets/frps/static/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - frp server - - - - - -
- - - diff --git a/cmd/frpc/main.go b/cmd/frpc/main.go index f7651bca169..c44216674e8 100644 --- a/cmd/frpc/main.go +++ b/cmd/frpc/main.go @@ -15,9 +15,9 @@ package main import ( - _ "github.com/fatedier/frp/assets/frpc" "github.com/fatedier/frp/cmd/frpc/sub" "github.com/fatedier/frp/pkg/util/system" + _ "github.com/fatedier/frp/web/frpc" ) func main() { diff --git a/cmd/frps/main.go b/cmd/frps/main.go index 3cb398d8290..4eda4f1f3f4 100644 --- a/cmd/frps/main.go +++ b/cmd/frps/main.go @@ -15,9 +15,9 @@ package main import ( - _ "github.com/fatedier/frp/assets/frps" _ "github.com/fatedier/frp/pkg/metrics" "github.com/fatedier/frp/pkg/util/system" + _ "github.com/fatedier/frp/web/frps" ) func main() { diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index 7d77a26de3d..df25542ef8d 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,9 +1,17 @@ +FROM node:22 AS web-builder + +WORKDIR /web/frpc +COPY web/frpc/ ./ +RUN npm install +RUN npm run build + FROM golang:1.24 AS building COPY . /building +COPY --from=web-builder /web/frpc/dist /building/web/frpc/dist WORKDIR /building -RUN make frpc +RUN env CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -tags frpc -o bin/frpc ./cmd/frpc FROM alpine:3 diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps index 489ce0f5282..5a86b2b6185 100644 --- a/dockerfiles/Dockerfile-for-frps +++ b/dockerfiles/Dockerfile-for-frps @@ -1,9 +1,17 @@ +FROM node:22 AS web-builder + +WORKDIR /web/frps +COPY web/frps/ ./ +RUN npm install +RUN npm run build + FROM golang:1.24 AS building COPY . /building +COPY --from=web-builder /web/frps/dist /building/web/frps/dist WORKDIR /building -RUN make frps +RUN env CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -tags frps -o bin/frps ./cmd/frps FROM alpine:3 diff --git a/web/frpc/Makefile b/web/frpc/Makefile index 6e3083e7c8f..57a88918ea2 100644 --- a/web/frpc/Makefile +++ b/web/frpc/Makefile @@ -1,4 +1,7 @@ -.PHONY: dist build preview lint +.PHONY: dist install build preview lint + +install: + @npm install build: @npm run build diff --git a/assets/frpc/embed.go b/web/frpc/embed.go similarity index 56% rename from assets/frpc/embed.go rename to web/frpc/embed.go index 3fc0d3a5524..ce06ff909ad 100644 --- a/assets/frpc/embed.go +++ b/web/frpc/embed.go @@ -6,9 +6,9 @@ import ( "github.com/fatedier/frp/assets" ) -//go:embed static/* -var content embed.FS +//go:embed dist +var EmbedFS embed.FS func init() { - assets.Register(content) + assets.Register(EmbedFS) } diff --git a/web/frpc/package-lock.json b/web/frpc/package-lock.json new file mode 100644 index 00000000000..6b0912eb1db --- /dev/null +++ b/web/frpc/package-lock.json @@ -0,0 +1,5857 @@ +{ + "name": "frpc-dashboard", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frpc-dashboard", + "version": "0.0.1", + "dependencies": { + "element-plus": "^2.13.0", + "vue": "^3.5.26", + "vue-router": "^4.6.4" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.15.0", + "@types/node": "24", + "@vitejs/plugin-vue": "^6.0.3", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^12.0.0", + "@vue/tsconfig": "^0.8.1", + "@vueuse/core": "^14.1.0", + "eslint": "^8.56.0", + "eslint-plugin-vue": "^9.33.0", + "npm-run-all": "^4.1.5", + "prettier": "^3.7.4", + "sass": "^1.97.2", + "terser": "^5.44.1", + "typescript": "^5.9.3", + "unplugin-auto-import": "^0.17.5", + "unplugin-element-plus": "^0.11.2", + "unplugin-vue-components": "^0.26.0", + "vite": "^7.3.0", + "vite-svg-loader": "^5.1.0", + "vue-tsc": "^3.2.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.7", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.0", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.2", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.2.1", + "license": "MIT" + }, + "node_modules/@floating-ui/dom": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.2.1" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.15.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.21", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "24.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.20.0", + "@typescript-eslint/type-utils": "6.20.0", + "@typescript-eslint/utils": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.20.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.20.0", + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/utils": "6.20.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.20.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.20.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.20.0", + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/typescript-estree": "6.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.20.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.53" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.27", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.27" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.27", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.27", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.27", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.26", + "entities": "^7.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "7.0.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.26", + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "license": "MIT" + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "12.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", + "vue-eslint-parser": "^9.3.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.27", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.0.0", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" + } + }, + "node_modules/@vue/language-core/node_modules/picomatch": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/runtime-core": "3.5.26", + "@vue/shared": "3.5.26", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "vue": "3.5.26" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.26", + "license": "MIT" + }, + "node_modules/@vue/tsconfig": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vueuse/core": { + "version": "14.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.1.0", + "@vueuse/shared": "14.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.1.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.1.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alien-signals": { + "version": "3.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/c12": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^17.2.3", + "exsolve": "^1.0.8", + "giget": "^2.0.0", + "jiti": "^2.6.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "*" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/c12/node_modules/chokidar": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/c12/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/c12/node_modules/pkg-types": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/c12/node_modules/readdirp": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.19", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/define-properties": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "17.2.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/element-plus": { + "version": "2.13.0", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.2", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.17.20", + "@types/lodash-es": "^4.17.12", + "@vueuse/core": "^10.11.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.19", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.3", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.3.0" + } + }, + "node_modules/element-plus/node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "license": "MIT" + }, + "node_modules/element-plus/node_modules/@vueuse/core": { + "version": "10.11.1", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.1", + "@vueuse/shared": "10.11.1", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/element-plus/node_modules/@vueuse/metadata": { + "version": "10.11.1", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/shared": { + "version": "10.11.1", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/entities": { + "version": "4.5.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/errx": { + "version": "0.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "dev": 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.1", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/giget": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/giget/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/fast-glob": { + "version": "3.2.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hasown/node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.6.1", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/klona": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "license": "MIT" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "license": "MIT" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mlly": { + "version": "1.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "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/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/is-core-module": { + "version": "2.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.22.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "license": "BSD-3-Clause" + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nypm": { + "version": "0.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.2", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "tinyexec": "^1.0.1" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/nypm/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/nypm/node_modules/pkg-types": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss": { + "version": "8.5.6", + "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/postcss-selector-parser": { + "version": "6.0.15", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.7.4", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc9": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rolldown-string": { + "version": "0.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.21" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/rollup": { + "version": "4.55.1", + "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.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.97.2", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/synckit": { + "version": "0.8.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/terser": { + "version": "5.44.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unctx": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21", + "unplugin": "^2.3.11" + } + }, + "node_modules/unctx/node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unctx/node_modules/picomatch": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/unctx/node_modules/unplugin": { + "version": "2.3.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "dev": true, + "license": "MIT" + }, + "node_modules/unimport": { + "version": "3.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "acorn": "^8.11.2", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "mlly": "^1.4.2", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "scule": "^1.1.1", + "strip-literal": "^1.3.0", + "unplugin": "^1.5.1" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.2", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.17.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.7", + "@rollup/pluginutils": "^5.1.0", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "minimatch": "^9.0.3", + "unimport": "^3.7.1", + "unplugin": "^1.6.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-auto-import/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-auto-import/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/unplugin-element-plus": { + "version": "0.11.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.2.2", + "es-module-lexer": "^2.0.0", + "escape-string-regexp": "^5.0.0", + "rolldown-string": "^0.2.1", + "unplugin": "^2.3.11" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/unplugin-element-plus/node_modules/@nuxt/kit": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.2", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.1", + "unctx": "^2.4.1", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-element-plus/node_modules/escape-string-regexp": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unplugin-element-plus/node_modules/ignore": { + "version": "7.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/unplugin-element-plus/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/unplugin-element-plus/node_modules/picomatch": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/unplugin-element-plus/node_modules/pkg-types": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/unplugin-element-plus/node_modules/unplugin": { + "version": "2.3.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.6", + "@rollup/pluginutils": "^5.0.4", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.3", + "minimatch": "^9.0.3", + "resolve": "^1.22.4", + "unplugin": "^1.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-vue-components/node_modules/local-pkg": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/unplugin-vue-components/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/untyped": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "defu": "^6.1.4", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "scule": "^1.3.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "7.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-svg-loader": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "svgo": "^3.0.2" + }, + "peerDependencies": { + "vue": ">=3.2.13" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.26", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-sfc": "3.5.26", + "@vue/runtime-dom": "3.5.26", + "@vue/server-renderer": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-tsc": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.27", + "@vue/language-core": "3.2.2" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/web/frpc/yarn.lock b/web/frpc/yarn.lock deleted file mode 100644 index 9aef1d2dac4..00000000000 --- a/web/frpc/yarn.lock +++ /dev/null @@ -1,2975 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@antfu/utils@^0.7.6", "@antfu/utils@^0.7.7": - version "0.7.7" - resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz" - integrity sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg== - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - -"@babel/parser@^7.15.8", "@babel/parser@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz" - integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== - dependencies: - "@babel/types" "^7.28.5" - -"@babel/types@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz" - integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - -"@ctrl/tinycolor@^3.4.1": - version "3.6.0" - resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz" - integrity sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ== - -"@element-plus/icons-vue@^2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz" - integrity sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A== - -"@esbuild/darwin-x64@0.27.2": - version "0.27.2" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz" - integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== - -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== - -"@floating-ui/core@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.1.tgz" - integrity sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg== - -"@floating-ui/dom@^1.0.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.1.tgz" - integrity sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA== - dependencies: - "@floating-ui/core" "^1.2.1" - -"@humanwhocodes/config-array@^0.11.13": - version "0.11.14" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/remapping@^2.3.5": - version "2.3.5" - resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" - integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.31" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@nuxt/kit@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-4.2.2.tgz" - integrity sha512-ZAgYBrPz/yhVgDznBNdQj2vhmOp31haJbO0I0iah/P9atw+OHH7NJLUZ3PK+LOz/0fblKTN1XJVSi8YQ1TQ0KA== - dependencies: - c12 "^3.3.2" - consola "^3.4.2" - defu "^6.1.4" - destr "^2.0.5" - errx "^0.1.0" - exsolve "^1.0.8" - ignore "^7.0.5" - jiti "^2.6.1" - klona "^2.0.6" - mlly "^1.8.0" - ohash "^2.0.11" - pathe "^2.0.3" - pkg-types "^2.3.0" - rc9 "^2.1.2" - scule "^1.3.0" - semver "^7.7.3" - tinyglobby "^0.2.15" - ufo "^1.6.1" - unctx "^2.4.1" - untyped "^2.0.0" - -"@parcel/watcher-darwin-x64@2.5.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz" - integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== - -"@parcel/watcher@^2.4.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz" - integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.5.1" - "@parcel/watcher-darwin-arm64" "2.5.1" - "@parcel/watcher-darwin-x64" "2.5.1" - "@parcel/watcher-freebsd-x64" "2.5.1" - "@parcel/watcher-linux-arm-glibc" "2.5.1" - "@parcel/watcher-linux-arm-musl" "2.5.1" - "@parcel/watcher-linux-arm64-glibc" "2.5.1" - "@parcel/watcher-linux-arm64-musl" "2.5.1" - "@parcel/watcher-linux-x64-glibc" "2.5.1" - "@parcel/watcher-linux-x64-musl" "2.5.1" - "@parcel/watcher-win32-arm64" "2.5.1" - "@parcel/watcher-win32-ia32" "2.5.1" - "@parcel/watcher-win32-x64" "2.5.1" - -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - -"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": - version "2.11.7" - resolved "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" - integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== - -"@rolldown/pluginutils@1.0.0-beta.53": - version "1.0.0-beta.53" - resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz" - integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ== - -"@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz" - integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^2.3.1" - -"@rollup/rollup-darwin-x64@4.55.1": - version "4.55.1" - resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz" - integrity sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ== - -"@rushstack/eslint-patch@^1.15.0": - version "1.15.0" - resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz" - integrity sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw== - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/estree@^1.0.0", "@types/estree@1.0.8": - version "1.0.8" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/json-schema@^7.0.12": - version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/lodash-es@*", "@types/lodash-es@^4.17.12": - version "4.17.12" - resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz" - integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*", "@types/lodash@^4.17.20": - version "4.17.21" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz" - integrity sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ== - -"@types/node@^20.19.0 || >=22.12.0", "@types/node@24": - version "24.10.4" - resolved "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz" - integrity sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg== - dependencies: - undici-types "~7.16.0" - -"@types/semver@^7.5.0": - version "7.5.6" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== - -"@types/web-bluetooth@^0.0.20": - version "0.0.20" - resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" - integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== - -"@types/web-bluetooth@^0.0.21": - version "0.0.21" - resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz" - integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== - -"@typescript-eslint/eslint-plugin@^6.7.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz" - integrity sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.20.0" - "@typescript-eslint/type-utils" "6.20.0" - "@typescript-eslint/utils" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.7.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz" - integrity sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w== - dependencies: - "@typescript-eslint/scope-manager" "6.20.0" - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/typescript-estree" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz" - integrity sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA== - dependencies: - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - -"@typescript-eslint/type-utils@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz" - integrity sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g== - dependencies: - "@typescript-eslint/typescript-estree" "6.20.0" - "@typescript-eslint/utils" "6.20.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/types@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz" - integrity sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ== - -"@typescript-eslint/typescript-estree@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz" - integrity sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g== - dependencies: - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz" - integrity sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.20.0" - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/typescript-estree" "6.20.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz" - integrity sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw== - dependencies: - "@typescript-eslint/types" "6.20.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - -"@vitejs/plugin-vue@^6.0.3": - version "6.0.3" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz" - integrity sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w== - dependencies: - "@rolldown/pluginutils" "1.0.0-beta.53" - -"@volar/language-core@2.4.27": - version "2.4.27" - resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz" - integrity sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ== - dependencies: - "@volar/source-map" "2.4.27" - -"@volar/source-map@2.4.27": - version "2.4.27" - resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz" - integrity sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg== - -"@volar/typescript@2.4.27": - version "2.4.27" - resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz" - integrity sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg== - dependencies: - "@volar/language-core" "2.4.27" - path-browserify "^1.0.1" - vscode-uri "^3.0.8" - -"@vue/compiler-core@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz" - integrity sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w== - dependencies: - "@babel/parser" "^7.28.5" - "@vue/shared" "3.5.26" - entities "^7.0.0" - estree-walker "^2.0.2" - source-map-js "^1.2.1" - -"@vue/compiler-dom@^3.5.0", "@vue/compiler-dom@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz" - integrity sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A== - dependencies: - "@vue/compiler-core" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/compiler-sfc@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz" - integrity sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA== - dependencies: - "@babel/parser" "^7.28.5" - "@vue/compiler-core" "3.5.26" - "@vue/compiler-dom" "3.5.26" - "@vue/compiler-ssr" "3.5.26" - "@vue/shared" "3.5.26" - estree-walker "^2.0.2" - magic-string "^0.30.21" - postcss "^8.5.6" - source-map-js "^1.2.1" - -"@vue/compiler-ssr@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz" - integrity sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw== - dependencies: - "@vue/compiler-dom" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/devtools-api@^6.6.4": - version "6.6.4" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz" - integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== - -"@vue/eslint-config-prettier@^9.0.0": - version "9.0.0" - resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz" - integrity sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg== - dependencies: - eslint-config-prettier "^9.0.0" - eslint-plugin-prettier "^5.0.0" - -"@vue/eslint-config-typescript@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz" - integrity sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg== - dependencies: - "@typescript-eslint/eslint-plugin" "^6.7.0" - "@typescript-eslint/parser" "^6.7.0" - vue-eslint-parser "^9.3.1" - -"@vue/language-core@3.2.2": - version "3.2.2" - resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.2.tgz" - integrity sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ== - dependencies: - "@volar/language-core" "2.4.27" - "@vue/compiler-dom" "^3.5.0" - "@vue/shared" "^3.5.0" - alien-signals "^3.0.0" - muggle-string "^0.4.1" - path-browserify "^1.0.1" - picomatch "^4.0.2" - -"@vue/reactivity@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz" - integrity sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ== - dependencies: - "@vue/shared" "3.5.26" - -"@vue/runtime-core@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz" - integrity sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q== - dependencies: - "@vue/reactivity" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/runtime-dom@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz" - integrity sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ== - dependencies: - "@vue/reactivity" "3.5.26" - "@vue/runtime-core" "3.5.26" - "@vue/shared" "3.5.26" - csstype "^3.2.3" - -"@vue/server-renderer@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz" - integrity sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA== - dependencies: - "@vue/compiler-ssr" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/shared@^3.5.0", "@vue/shared@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz" - integrity sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A== - -"@vue/tsconfig@^0.8.1": - version "0.8.1" - resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz" - integrity sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g== - -"@vueuse/core@*", "@vueuse/core@^14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-14.1.0.tgz" - integrity sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw== - dependencies: - "@types/web-bluetooth" "^0.0.21" - "@vueuse/metadata" "14.1.0" - "@vueuse/shared" "14.1.0" - -"@vueuse/core@^10.11.0": - version "10.11.1" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz" - integrity sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww== - dependencies: - "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.11.1" - "@vueuse/shared" "10.11.1" - vue-demi ">=0.14.8" - -"@vueuse/metadata@10.11.1": - version "10.11.1" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz" - integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw== - -"@vueuse/metadata@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.1.0.tgz" - integrity sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA== - -"@vueuse/shared@10.11.1": - version "10.11.1" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz" - integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA== - dependencies: - vue-demi ">=0.14.8" - -"@vueuse/shared@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-14.1.0.tgz" - integrity sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.10.0, acorn@^8.11.2, acorn@^8.15.0, acorn@^8.9.0: - version "8.15.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alien-signals@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz" - integrity sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -async-validator@^4.2.5: - version "4.2.5" - resolved "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz" - integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -c12@^3.3.2: - version "3.3.3" - resolved "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz" - integrity sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q== - dependencies: - chokidar "^5.0.0" - confbox "^0.2.2" - defu "^6.1.4" - dotenv "^17.2.3" - exsolve "^1.0.8" - giget "^2.0.0" - jiti "^2.6.1" - ohash "^2.0.11" - pathe "^2.0.3" - perfect-debounce "^2.0.0" - pkg-types "^2.3.0" - rc9 "^2.1.2" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -chokidar@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz" - integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== - dependencies: - readdirp "^5.0.0" - -citty@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz" - integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== - dependencies: - consola "^3.2.3" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -confbox@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz" - integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== - -confbox@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz" - integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== - -consola@^3.2.3, consola@^3.4.0, consola@^3.4.2: - version "3.4.2" - resolved "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz" - integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-select@^5.1.0: - version "5.2.2" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" - integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-tree@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" - integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== - dependencies: - mdn-data "2.0.30" - source-map-js "^1.0.1" - -css-tree@~2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" - integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== - dependencies: - mdn-data "2.0.28" - source-map-js "^1.0.1" - -css-what@^6.1.0: - version "6.2.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" - integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csso@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" - integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== - dependencies: - css-tree "~2.2.0" - -csstype@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" - integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== - -dayjs@^1.11.19: - version "1.11.19" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz" - integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== - -debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.2.0" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -defu@^6.1.4: - version "6.1.4" - resolved "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz" - integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== - -destr@^2.0.3, destr@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz" - integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^3.0.1: - version "3.2.2" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" - integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - -dotenv@^17.2.3: - version "17.2.3" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz" - integrity sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w== - -element-plus@^2.13.0: - version "2.13.0" - resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.13.0.tgz" - integrity sha512-qjxS+SBChvqCl6lU6ShiliLMN6WqFHiXQENYbAY3GKNflG+FS3jqn8JmQq0CBZq4koFqsi95NT1M6SL4whZfrA== - dependencies: - "@ctrl/tinycolor" "^3.4.1" - "@element-plus/icons-vue" "^2.3.2" - "@floating-ui/dom" "^1.0.1" - "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" - "@types/lodash" "^4.17.20" - "@types/lodash-es" "^4.17.12" - "@vueuse/core" "^10.11.0" - async-validator "^4.2.5" - dayjs "^1.11.19" - lodash "^4.17.21" - lodash-es "^4.17.21" - lodash-unified "^1.0.3" - memoize-one "^6.0.0" - normalize-wheel-es "^1.2.0" - -entities@^4.2.0: - version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -entities@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz" - integrity sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -errx@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz" - integrity sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q== - -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" - integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.4" - is-array-buffer "^3.0.1" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-module-lexer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz" - integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -esbuild@^0.27.0: - version "0.27.2" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz" - integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.27.2" - "@esbuild/android-arm" "0.27.2" - "@esbuild/android-arm64" "0.27.2" - "@esbuild/android-x64" "0.27.2" - "@esbuild/darwin-arm64" "0.27.2" - "@esbuild/darwin-x64" "0.27.2" - "@esbuild/freebsd-arm64" "0.27.2" - "@esbuild/freebsd-x64" "0.27.2" - "@esbuild/linux-arm" "0.27.2" - "@esbuild/linux-arm64" "0.27.2" - "@esbuild/linux-ia32" "0.27.2" - "@esbuild/linux-loong64" "0.27.2" - "@esbuild/linux-mips64el" "0.27.2" - "@esbuild/linux-ppc64" "0.27.2" - "@esbuild/linux-riscv64" "0.27.2" - "@esbuild/linux-s390x" "0.27.2" - "@esbuild/linux-x64" "0.27.2" - "@esbuild/netbsd-arm64" "0.27.2" - "@esbuild/netbsd-x64" "0.27.2" - "@esbuild/openbsd-arm64" "0.27.2" - "@esbuild/openbsd-x64" "0.27.2" - "@esbuild/openharmony-arm64" "0.27.2" - "@esbuild/sunos-x64" "0.27.2" - "@esbuild/win32-arm64" "0.27.2" - "@esbuild/win32-ia32" "0.27.2" - "@esbuild/win32-x64" "0.27.2" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -eslint-config-prettier@*, eslint-config-prettier@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-plugin-prettier@^5.0.0: - version "5.1.3" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" - -eslint-plugin-vue@^9.0.0, eslint-plugin-vue@^9.33.0: - version "9.33.0" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz" - integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - globals "^13.24.0" - natural-compare "^1.4.0" - nth-check "^2.1.1" - postcss-selector-parser "^6.0.15" - semver "^7.6.3" - vue-eslint-parser "^9.4.3" - xml-name-validator "^4.0.0" - -eslint-scope@^7.1.1, eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint-visitor-keys@^3.4.1: - version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.56.0, "eslint@>= 8.0.0", eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=8.0.0: - version "8.56.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.0, esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -exsolve@^1.0.7, exsolve@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz" - integrity sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-glob@^3.3.1, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -giget@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz" - integrity sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA== - dependencies: - citty "^0.1.6" - consola "^3.4.0" - defu "^6.1.4" - node-fetch-native "^1.6.6" - nypm "^0.6.0" - pathe "^2.0.3" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0, globals@^13.24.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.2: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -ignore@^7.0.5: - version "7.0.5" - resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== - -immutable@^5.0.2: - version "5.1.4" - resolved "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz" - integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-array-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz" - integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jiti@^2.4.2, jiti@^2.6.1, jiti@>=1.21.0: - version "2.6.1" - resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" - integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -jsonc-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== - -klona@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" - integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== - -knitwork@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz" - integrity sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -local-pkg@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" - integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== - -local-pkg@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz" - integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== - dependencies: - mlly "^1.4.2" - pkg-types "^1.0.3" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@*, lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash-unified@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" - integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@*, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -magic-string@^0.30.21, magic-string@^0.30.3, magic-string@^0.30.5: - version "0.30.21" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -mdn-data@2.0.28: - version "2.0.28" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" - integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== - -mdn-data@2.0.30: - version "2.0.30" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" - integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== - -memoize-one@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" - integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -mlly@^1.2.0, mlly@^1.4.2, mlly@^1.7.4, mlly@^1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz" - integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== - dependencies: - acorn "^8.15.0" - pathe "^2.0.3" - pkg-types "^1.3.1" - ufo "^1.6.1" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -muggle-string@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz" - integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-addon-api@^7.0.0: - version "7.1.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" - integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== - -node-fetch-native@^1.6.6: - version "1.6.7" - resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz" - integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-wheel-es@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz" - integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw== - -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -nth-check@^2.0.1, nth-check@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -nypm@^0.6.0: - version "0.6.2" - resolved "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz" - integrity sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g== - dependencies: - citty "^0.1.6" - consola "^3.4.2" - pathe "^2.0.3" - pkg-types "^2.3.0" - tinyexec "^1.0.1" - -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -ohash@^2.0.11: - version "2.0.11" - resolved "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz" - integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz" - integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== - -pathe@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== - -pathe@^2.0.1, pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -perfect-debounce@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz" - integrity sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow== - -picocolors@^1.0.0, picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -"picomatch@^3 || ^4", picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - -picomatch@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pkg-types@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz" - integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== - dependencies: - jsonc-parser "^3.2.0" - mlly "^1.2.0" - pathe "^1.1.0" - -pkg-types@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" - integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - dependencies: - confbox "^0.1.8" - mlly "^1.7.4" - pathe "^2.0.1" - -pkg-types@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz" - integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== - dependencies: - confbox "^0.2.2" - exsolve "^1.0.7" - pathe "^2.0.3" - -postcss-selector-parser@^6.0.15: - version "6.0.15" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.7.4, "prettier@>= 3.0.0", prettier@>=3.0.0: - version "3.7.4" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz" - integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== - -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -rc9@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz" - integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== - dependencies: - defu "^6.1.4" - destr "^2.0.3" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -readdirp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz" - integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.10.0: - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rolldown-string@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/rolldown-string/-/rolldown-string-0.2.1.tgz" - integrity sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg== - dependencies: - magic-string "^0.30.21" - -rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^4.43.0: - version "4.55.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz" - integrity sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.55.1" - "@rollup/rollup-android-arm64" "4.55.1" - "@rollup/rollup-darwin-arm64" "4.55.1" - "@rollup/rollup-darwin-x64" "4.55.1" - "@rollup/rollup-freebsd-arm64" "4.55.1" - "@rollup/rollup-freebsd-x64" "4.55.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.55.1" - "@rollup/rollup-linux-arm-musleabihf" "4.55.1" - "@rollup/rollup-linux-arm64-gnu" "4.55.1" - "@rollup/rollup-linux-arm64-musl" "4.55.1" - "@rollup/rollup-linux-loong64-gnu" "4.55.1" - "@rollup/rollup-linux-loong64-musl" "4.55.1" - "@rollup/rollup-linux-ppc64-gnu" "4.55.1" - "@rollup/rollup-linux-ppc64-musl" "4.55.1" - "@rollup/rollup-linux-riscv64-gnu" "4.55.1" - "@rollup/rollup-linux-riscv64-musl" "4.55.1" - "@rollup/rollup-linux-s390x-gnu" "4.55.1" - "@rollup/rollup-linux-x64-gnu" "4.55.1" - "@rollup/rollup-linux-x64-musl" "4.55.1" - "@rollup/rollup-openbsd-x64" "4.55.1" - "@rollup/rollup-openharmony-arm64" "4.55.1" - "@rollup/rollup-win32-arm64-msvc" "4.55.1" - "@rollup/rollup-win32-ia32-msvc" "4.55.1" - "@rollup/rollup-win32-x64-gnu" "4.55.1" - "@rollup/rollup-win32-x64-msvc" "4.55.1" - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -sass@^1.70.0, sass@^1.97.2: - version "1.97.2" - resolved "https://registry.npmjs.org/sass/-/sass-1.97.2.tgz" - integrity sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw== - dependencies: - chokidar "^4.0.0" - immutable "^5.0.2" - source-map-js ">=0.6.2 <2.0.0" - optionalDependencies: - "@parcel/watcher" "^2.4.1" - -scule@^1.1.1, scule@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz" - integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== - -semver@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^7.3.6, semver@^7.5.4, semver@^7.6.3, semver@^7.7.3: - version "7.7.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz" - integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.6.1: - version "1.8.0" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz" - integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.1, source-map-js@^1.2.1, "source-map-js@>=0.6.2 <2.0.0": - version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== - -string.prototype.padend@^3.0.0: - version "3.1.4" - resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz" - integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-literal@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz" - integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== - dependencies: - acorn "^8.10.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svgo@^3.0.2: - version "3.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz" - integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^5.1.0" - css-tree "^2.3.1" - css-what "^6.1.0" - csso "^5.0.5" - picocolors "^1.0.0" - -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - -terser@^5.16.0, terser@^5.44.1: - version "5.44.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz" - integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.15.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -tinyexec@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz" - integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg== - -tinyglobby@^0.2.15: - version "0.2.15" - resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" - integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== - -tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typescript@*, typescript@^5.9.3, typescript@>=4.2.0, typescript@>=5.0.0, typescript@5.x: - version "5.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -ufo@^1.6.1: - version "1.6.2" - resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz" - integrity sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unctx@^2.4.1: - version "2.5.0" - resolved "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz" - integrity sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg== - dependencies: - acorn "^8.15.0" - estree-walker "^3.0.3" - magic-string "^0.30.21" - unplugin "^2.3.11" - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -unimport@^3.7.1: - version "3.7.1" - resolved "https://registry.npmjs.org/unimport/-/unimport-3.7.1.tgz" - integrity sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ== - dependencies: - "@rollup/pluginutils" "^5.1.0" - acorn "^8.11.2" - escape-string-regexp "^5.0.0" - estree-walker "^3.0.3" - fast-glob "^3.3.2" - local-pkg "^0.5.0" - magic-string "^0.30.5" - mlly "^1.4.2" - pathe "^1.1.1" - pkg-types "^1.0.3" - scule "^1.1.1" - strip-literal "^1.3.0" - unplugin "^1.5.1" - -unplugin-auto-import@^0.17.5: - version "0.17.5" - resolved "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.5.tgz" - integrity sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w== - dependencies: - "@antfu/utils" "^0.7.7" - "@rollup/pluginutils" "^5.1.0" - fast-glob "^3.3.2" - local-pkg "^0.5.0" - magic-string "^0.30.5" - minimatch "^9.0.3" - unimport "^3.7.1" - unplugin "^1.6.0" - -unplugin-element-plus@^0.11.2: - version "0.11.2" - resolved "https://registry.npmjs.org/unplugin-element-plus/-/unplugin-element-plus-0.11.2.tgz" - integrity sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg== - dependencies: - "@nuxt/kit" "^4.2.2" - es-module-lexer "^2.0.0" - escape-string-regexp "^5.0.0" - rolldown-string "^0.2.1" - unplugin "^2.3.11" - -unplugin-vue-components@^0.26.0: - version "0.26.0" - resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz" - integrity sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ== - dependencies: - "@antfu/utils" "^0.7.6" - "@rollup/pluginutils" "^5.0.4" - chokidar "^3.5.3" - debug "^4.3.4" - fast-glob "^3.3.1" - local-pkg "^0.4.3" - magic-string "^0.30.3" - minimatch "^9.0.3" - resolve "^1.22.4" - unplugin "^1.4.0" - -unplugin@^1.4.0, unplugin@^1.5.1, unplugin@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz" - integrity sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ== - dependencies: - acorn "^8.11.2" - chokidar "^3.5.3" - webpack-sources "^3.2.3" - webpack-virtual-modules "^0.6.1" - -unplugin@^2.3.11: - version "2.3.11" - resolved "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz" - integrity sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww== - dependencies: - "@jridgewell/remapping" "^2.3.5" - acorn "^8.15.0" - picomatch "^4.0.3" - webpack-virtual-modules "^0.6.2" - -untyped@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz" - integrity sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g== - dependencies: - citty "^0.1.6" - defu "^6.1.4" - jiti "^2.4.2" - knitwork "^1.2.0" - scule "^1.3.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vite-svg-loader@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz" - integrity sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw== - dependencies: - svgo "^3.0.2" - -"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", vite@^7.3.0: - version "7.3.1" - resolved "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz" - integrity sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA== - dependencies: - esbuild "^0.27.0" - fdir "^6.5.0" - picomatch "^4.0.3" - postcss "^8.5.6" - rollup "^4.43.0" - tinyglobby "^0.2.15" - optionalDependencies: - fsevents "~2.3.3" - -vscode-uri@^3.0.8: - version "3.1.0" - resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz" - integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== - -vue-demi@>=0.14.8: - version "0.14.10" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" - integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== - -vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.3: - version "9.4.3" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" - integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -vue-router@^4.6.4: - version "4.6.4" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz" - integrity sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== - dependencies: - "@vue/devtools-api" "^6.6.4" - -vue-tsc@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.2.tgz" - integrity sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ== - dependencies: - "@volar/typescript" "2.4.27" - "@vue/language-core" "3.2.2" - -"vue@^3.0.0-0 || ^2.6.0", vue@^3.2.0, vue@^3.2.25, vue@^3.3.0, vue@^3.4.0, vue@^3.5.0, vue@^3.5.26, vue@>=3.2.13, "vue@2 || 3", vue@3.5.26: - version "3.5.26" - resolved "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz" - integrity sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA== - dependencies: - "@vue/compiler-dom" "3.5.26" - "@vue/compiler-sfc" "3.5.26" - "@vue/runtime-dom" "3.5.26" - "@vue/server-renderer" "3.5.26" - "@vue/shared" "3.5.26" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack-virtual-modules@^0.6.1, webpack-virtual-modules@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" - integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/web/frps/Makefile b/web/frps/Makefile index 6e3083e7c8f..57a88918ea2 100644 --- a/web/frps/Makefile +++ b/web/frps/Makefile @@ -1,4 +1,7 @@ -.PHONY: dist build preview lint +.PHONY: dist install build preview lint + +install: + @npm install build: @npm run build diff --git a/web/frps/embed.go b/web/frps/embed.go new file mode 100644 index 00000000000..6bdc475fd16 --- /dev/null +++ b/web/frps/embed.go @@ -0,0 +1,14 @@ +package frps + +import ( + "embed" + + "github.com/fatedier/frp/assets" +) + +//go:embed dist +var EmbedFS embed.FS + +func init() { + assets.Register(EmbedFS) +} diff --git a/web/frps/package-lock.json b/web/frps/package-lock.json new file mode 100644 index 00000000000..7986c726cc2 --- /dev/null +++ b/web/frps/package-lock.json @@ -0,0 +1,6687 @@ +{ + "name": "frps-dashboard", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frps-dashboard", + "version": "0.0.1", + "dependencies": { + "element-plus": "^2.13.0", + "vue": "^3.5.26", + "vue-router": "^4.6.4" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.15.0", + "@types/node": "24", + "@vitejs/plugin-vue": "^6.0.3", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^12.0.0", + "@vue/tsconfig": "^0.8.1", + "@vueuse/core": "^14.1.0", + "eslint": "^8.56.0", + "eslint-plugin-vue": "^9.33.0", + "npm-run-all": "^4.1.5", + "prettier": "^3.7.4", + "sass": "^1.97.2", + "terser": "^5.44.1", + "typescript": "^5.9.3", + "unplugin-auto-import": "^0.17.5", + "unplugin-element-plus": "^0.11.2", + "unplugin-vue-components": "^0.26.0", + "vite": "^7.3.0", + "vite-svg-loader": "^5.1.0", + "vue-tsc": "^3.2.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz", + "integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz", + "integrity": "sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz", + "integrity": "sha512-PL7g3dhA4dHgZfujkuD8Q+tfJJynEtnNQSPzmucCnxMvkxf4cLBJw/ZYqZUn4HCh33U3WHrAfv2R2tbi9UCSmw==", + "license": "MIT" + }, + "node_modules/@floating-ui/dom": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz", + "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.1.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz", + "integrity": "sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "24.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz", + "integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz", + "integrity": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.20.0", + "@typescript-eslint/type-utils": "6.20.0", + "@typescript-eslint/utils": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz", + "integrity": "sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.20.0", + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz", + "integrity": "sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz", + "integrity": "sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/utils": "6.20.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz", + "integrity": "sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz", + "integrity": "sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/visitor-keys": "6.20.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz", + "integrity": "sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.20.0", + "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/typescript-estree": "6.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz", + "integrity": "sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.20.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz", + "integrity": "sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.53" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz", + "integrity": "sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.27" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz", + "integrity": "sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz", + "integrity": "sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.27", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz", + "integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.26", + "entities": "^7.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz", + "integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz", + "integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.26", + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz", + "integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz", + "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", + "vue-eslint-parser": "^9.3.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.2.tgz", + "integrity": "sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.27", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.0.0", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz", + "integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz", + "integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz", + "integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/runtime-core": "3.5.26", + "@vue/shared": "3.5.26", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz", + "integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "vue": "3.5.26" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz", + "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==", + "license": "MIT" + }, + "node_modules/@vue/tsconfig": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz", + "integrity": "sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vueuse/core": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.1.0.tgz", + "integrity": "sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.1.0", + "@vueuse/shared": "14.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.1.0.tgz", + "integrity": "sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.1.0.tgz", + "integrity": "sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alien-signals": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz", + "integrity": "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/c12": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz", + "integrity": "sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^17.2.3", + "exsolve": "^1.0.8", + "giget": "^2.0.0", + "jiti": "^2.6.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "*" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/c12/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/c12/node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/chokidar/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/element-plus": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.13.0.tgz", + "integrity": "sha512-qjxS+SBChvqCl6lU6ShiliLMN6WqFHiXQENYbAY3GKNflG+FS3jqn8JmQq0CBZq4koFqsi95NT1M6SL4whZfrA==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.2", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.17.20", + "@types/lodash-es": "^4.17.12", + "@vueuse/core": "^10.11.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.19", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.3", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.3.0" + } + }, + "node_modules/element-plus/node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/element-plus/node_modules/@vueuse/core": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz", + "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.1", + "@vueuse/shared": "10.11.1", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/metadata": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz", + "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/shared": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz", + "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/entities": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz", + "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/errx": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz", + "integrity": "sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", + "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-vue/node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": 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.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/giget": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hasown/node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", + "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz", + "integrity": "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==", + "license": "BSD-3-Clause" + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nypm": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz", + "integrity": "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.2", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "tinyexec": "^1.0.1" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", + "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "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/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rolldown-string": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rolldown-string/-/rolldown-string-0.2.1.tgz", + "integrity": "sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.21" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "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.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.97.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.2.tgz", + "integrity": "sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz", + "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz", + "integrity": "sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unctx": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz", + "integrity": "sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21", + "unplugin": "^2.3.11" + } + }, + "node_modules/unctx/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unctx/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unimport": { + "version": "3.14.6", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.14.6.tgz", + "integrity": "sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.4", + "acorn": "^8.14.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.3", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "pathe": "^2.0.1", + "picomatch": "^4.0.2", + "pkg-types": "^1.3.0", + "scule": "^1.3.0", + "strip-literal": "^2.1.1", + "unplugin": "^1.16.1" + } + }, + "node_modules/unimport/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unimport/node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/unimport/node_modules/local-pkg/node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unimport/node_modules/local-pkg/node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/unimport/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz", + "integrity": "sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.0", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.10", + "minimatch": "^9.0.4", + "unimport": "^3.7.2", + "unplugin": "^1.11.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-auto-import/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/unplugin-auto-import/node_modules/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/unplugin-auto-import/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/unplugin-auto-import/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/unplugin-element-plus": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/unplugin-element-plus/-/unplugin-element-plus-0.11.2.tgz", + "integrity": "sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.2.2", + "es-module-lexer": "^2.0.0", + "escape-string-regexp": "^5.0.0", + "rolldown-string": "^0.2.1", + "unplugin": "^2.3.11" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/unplugin-element-plus/node_modules/@nuxt/kit": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.2.2.tgz", + "integrity": "sha512-ZAgYBrPz/yhVgDznBNdQj2vhmOp31haJbO0I0iah/P9atw+OHH7NJLUZ3PK+LOz/0fblKTN1XJVSi8YQ1TQ0KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.2", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.1", + "unctx": "^2.4.1", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-element-plus/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/unplugin-element-plus/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz", + "integrity": "sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.6", + "@rollup/pluginutils": "^5.0.4", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.3", + "minimatch": "^9.0.3", + "resolve": "^1.22.4", + "unplugin": "^1.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/untyped": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz", + "integrity": "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "defu": "^6.1.4", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "scule": "^1.3.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-svg-loader": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz", + "integrity": "sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "svgo": "^3.0.2" + }, + "peerDependencies": { + "vue": ">=3.2.13" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz", + "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-sfc": "3.5.26", + "@vue/runtime-dom": "3.5.26", + "@vue/server-renderer": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz", + "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-tsc": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.2.tgz", + "integrity": "sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.27", + "@vue/language-core": "3.2.2" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/web/frps/yarn.lock b/web/frps/yarn.lock deleted file mode 100644 index b221419b2dd..00000000000 --- a/web/frps/yarn.lock +++ /dev/null @@ -1,3015 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@antfu/utils@^0.7.10", "@antfu/utils@^0.7.6": - version "0.7.10" - resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz" - integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - -"@babel/parser@^7.15.8", "@babel/parser@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz" - integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== - dependencies: - "@babel/types" "^7.28.5" - -"@babel/types@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz" - integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - -"@ctrl/tinycolor@^3.4.1": - version "3.5.0" - resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz" - integrity sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg== - -"@element-plus/icons-vue@^2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz" - integrity sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A== - -"@esbuild/darwin-x64@0.27.2": - version "0.27.2" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz" - integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== - -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== - -"@floating-ui/core@^1.1.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz" - integrity sha512-PL7g3dhA4dHgZfujkuD8Q+tfJJynEtnNQSPzmucCnxMvkxf4cLBJw/ZYqZUn4HCh33U3WHrAfv2R2tbi9UCSmw== - -"@floating-ui/dom@^1.0.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz" - integrity sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw== - dependencies: - "@floating-ui/core" "^1.1.0" - -"@humanwhocodes/config-array@^0.11.13": - version "0.11.14" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/remapping@^2.3.5": - version "2.3.5" - resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" - integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.31" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@nuxt/kit@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-4.2.2.tgz" - integrity sha512-ZAgYBrPz/yhVgDznBNdQj2vhmOp31haJbO0I0iah/P9atw+OHH7NJLUZ3PK+LOz/0fblKTN1XJVSi8YQ1TQ0KA== - dependencies: - c12 "^3.3.2" - consola "^3.4.2" - defu "^6.1.4" - destr "^2.0.5" - errx "^0.1.0" - exsolve "^1.0.8" - ignore "^7.0.5" - jiti "^2.6.1" - klona "^2.0.6" - mlly "^1.8.0" - ohash "^2.0.11" - pathe "^2.0.3" - pkg-types "^2.3.0" - rc9 "^2.1.2" - scule "^1.3.0" - semver "^7.7.3" - tinyglobby "^0.2.15" - ufo "^1.6.1" - unctx "^2.4.1" - untyped "^2.0.0" - -"@parcel/watcher-darwin-x64@2.5.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz" - integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== - -"@parcel/watcher@^2.4.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz" - integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.5.1" - "@parcel/watcher-darwin-arm64" "2.5.1" - "@parcel/watcher-darwin-x64" "2.5.1" - "@parcel/watcher-freebsd-x64" "2.5.1" - "@parcel/watcher-linux-arm-glibc" "2.5.1" - "@parcel/watcher-linux-arm-musl" "2.5.1" - "@parcel/watcher-linux-arm64-glibc" "2.5.1" - "@parcel/watcher-linux-arm64-musl" "2.5.1" - "@parcel/watcher-linux-x64-glibc" "2.5.1" - "@parcel/watcher-linux-x64-musl" "2.5.1" - "@parcel/watcher-win32-arm64" "2.5.1" - "@parcel/watcher-win32-ia32" "2.5.1" - "@parcel/watcher-win32-x64" "2.5.1" - -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - -"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": - version "2.11.7" - resolved "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" - integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== - -"@rolldown/pluginutils@1.0.0-beta.53": - version "1.0.0-beta.53" - resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz" - integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ== - -"@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0", "@rollup/pluginutils@^5.1.4": - version "5.3.0" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz" - integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^4.0.2" - -"@rollup/rollup-darwin-x64@4.55.1": - version "4.55.1" - resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz" - integrity sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ== - -"@rushstack/eslint-patch@^1.15.0": - version "1.15.0" - resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz" - integrity sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw== - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/estree@^1.0.0", "@types/estree@1.0.8": - version "1.0.8" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/json-schema@^7.0.12": - version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/lodash-es@*", "@types/lodash-es@^4.17.12": - version "4.17.12" - resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz" - integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*", "@types/lodash@^4.17.20": - version "4.17.21" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz" - integrity sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ== - -"@types/node@^20.19.0 || >=22.12.0", "@types/node@24": - version "24.10.4" - resolved "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz" - integrity sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg== - dependencies: - undici-types "~7.16.0" - -"@types/semver@^7.5.0": - version "7.5.6" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== - -"@types/web-bluetooth@^0.0.20": - version "0.0.20" - resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" - integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== - -"@types/web-bluetooth@^0.0.21": - version "0.0.21" - resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz" - integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== - -"@typescript-eslint/eslint-plugin@^6.7.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz" - integrity sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.20.0" - "@typescript-eslint/type-utils" "6.20.0" - "@typescript-eslint/utils" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.7.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz" - integrity sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w== - dependencies: - "@typescript-eslint/scope-manager" "6.20.0" - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/typescript-estree" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz" - integrity sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA== - dependencies: - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - -"@typescript-eslint/type-utils@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz" - integrity sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g== - dependencies: - "@typescript-eslint/typescript-estree" "6.20.0" - "@typescript-eslint/utils" "6.20.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/types@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz" - integrity sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ== - -"@typescript-eslint/typescript-estree@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz" - integrity sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g== - dependencies: - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/visitor-keys" "6.20.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz" - integrity sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.20.0" - "@typescript-eslint/types" "6.20.0" - "@typescript-eslint/typescript-estree" "6.20.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@6.20.0": - version "6.20.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz" - integrity sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw== - dependencies: - "@typescript-eslint/types" "6.20.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - -"@vitejs/plugin-vue@^6.0.3": - version "6.0.3" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz" - integrity sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w== - dependencies: - "@rolldown/pluginutils" "1.0.0-beta.53" - -"@volar/language-core@2.4.27": - version "2.4.27" - resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz" - integrity sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ== - dependencies: - "@volar/source-map" "2.4.27" - -"@volar/source-map@2.4.27": - version "2.4.27" - resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz" - integrity sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg== - -"@volar/typescript@2.4.27": - version "2.4.27" - resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz" - integrity sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg== - dependencies: - "@volar/language-core" "2.4.27" - path-browserify "^1.0.1" - vscode-uri "^3.0.8" - -"@vue/compiler-core@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz" - integrity sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w== - dependencies: - "@babel/parser" "^7.28.5" - "@vue/shared" "3.5.26" - entities "^7.0.0" - estree-walker "^2.0.2" - source-map-js "^1.2.1" - -"@vue/compiler-dom@^3.5.0", "@vue/compiler-dom@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz" - integrity sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A== - dependencies: - "@vue/compiler-core" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/compiler-sfc@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz" - integrity sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA== - dependencies: - "@babel/parser" "^7.28.5" - "@vue/compiler-core" "3.5.26" - "@vue/compiler-dom" "3.5.26" - "@vue/compiler-ssr" "3.5.26" - "@vue/shared" "3.5.26" - estree-walker "^2.0.2" - magic-string "^0.30.21" - postcss "^8.5.6" - source-map-js "^1.2.1" - -"@vue/compiler-ssr@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz" - integrity sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw== - dependencies: - "@vue/compiler-dom" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/devtools-api@^6.6.4": - version "6.6.4" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz" - integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== - -"@vue/eslint-config-prettier@^9.0.0": - version "9.0.0" - resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz" - integrity sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg== - dependencies: - eslint-config-prettier "^9.0.0" - eslint-plugin-prettier "^5.0.0" - -"@vue/eslint-config-typescript@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz" - integrity sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg== - dependencies: - "@typescript-eslint/eslint-plugin" "^6.7.0" - "@typescript-eslint/parser" "^6.7.0" - vue-eslint-parser "^9.3.1" - -"@vue/language-core@3.2.2": - version "3.2.2" - resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.2.tgz" - integrity sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ== - dependencies: - "@volar/language-core" "2.4.27" - "@vue/compiler-dom" "^3.5.0" - "@vue/shared" "^3.5.0" - alien-signals "^3.0.0" - muggle-string "^0.4.1" - path-browserify "^1.0.1" - picomatch "^4.0.2" - -"@vue/reactivity@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz" - integrity sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ== - dependencies: - "@vue/shared" "3.5.26" - -"@vue/runtime-core@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz" - integrity sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q== - dependencies: - "@vue/reactivity" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/runtime-dom@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz" - integrity sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ== - dependencies: - "@vue/reactivity" "3.5.26" - "@vue/runtime-core" "3.5.26" - "@vue/shared" "3.5.26" - csstype "^3.2.3" - -"@vue/server-renderer@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz" - integrity sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA== - dependencies: - "@vue/compiler-ssr" "3.5.26" - "@vue/shared" "3.5.26" - -"@vue/shared@^3.5.0", "@vue/shared@3.5.26": - version "3.5.26" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz" - integrity sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A== - -"@vue/tsconfig@^0.8.1": - version "0.8.1" - resolved "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz" - integrity sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g== - -"@vueuse/core@*", "@vueuse/core@^14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-14.1.0.tgz" - integrity sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw== - dependencies: - "@types/web-bluetooth" "^0.0.21" - "@vueuse/metadata" "14.1.0" - "@vueuse/shared" "14.1.0" - -"@vueuse/core@^10.11.0": - version "10.11.1" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz" - integrity sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww== - dependencies: - "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.11.1" - "@vueuse/shared" "10.11.1" - vue-demi ">=0.14.8" - -"@vueuse/metadata@10.11.1": - version "10.11.1" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz" - integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw== - -"@vueuse/metadata@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.1.0.tgz" - integrity sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA== - -"@vueuse/shared@10.11.1": - version "10.11.1" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz" - integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA== - dependencies: - vue-demi ">=0.14.8" - -"@vueuse/shared@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-14.1.0.tgz" - integrity sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.14.0, acorn@^8.15.0, acorn@^8.8.0, acorn@^8.9.0: - version "8.15.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alien-signals@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz" - integrity sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -async-validator@^4.2.5: - version "4.2.5" - resolved "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz" - integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -c12@^3.3.2: - version "3.3.3" - resolved "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz" - integrity sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q== - dependencies: - chokidar "^5.0.0" - confbox "^0.2.2" - defu "^6.1.4" - dotenv "^17.2.3" - exsolve "^1.0.8" - giget "^2.0.0" - jiti "^2.6.1" - ohash "^2.0.11" - pathe "^2.0.3" - perfect-debounce "^2.0.0" - pkg-types "^2.3.0" - rc9 "^2.1.2" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^3.5.3: - version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -chokidar@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz" - integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== - dependencies: - readdirp "^5.0.0" - -citty@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz" - integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== - dependencies: - consola "^3.2.3" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -confbox@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz" - integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== - -confbox@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz" - integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== - -consola@^3.2.3, consola@^3.4.0, consola@^3.4.2: - version "3.4.2" - resolved "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz" - integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-select@^5.1.0: - version "5.2.2" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" - integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-tree@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" - integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== - dependencies: - mdn-data "2.0.30" - source-map-js "^1.0.1" - -css-tree@~2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" - integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== - dependencies: - mdn-data "2.0.28" - source-map-js "^1.0.1" - -css-what@^6.1.0: - version "6.2.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" - integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csso@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" - integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== - dependencies: - css-tree "~2.2.0" - -csstype@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" - integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== - -dayjs@^1.11.19: - version "1.11.19" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz" - integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== - -debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.4.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -defu@^6.1.4: - version "6.1.4" - resolved "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz" - integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== - -destr@^2.0.3, destr@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz" - integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^3.0.1: - version "3.2.2" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" - integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - -dotenv@^17.2.3: - version "17.2.3" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz" - integrity sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w== - -element-plus@^2.13.0: - version "2.13.0" - resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.13.0.tgz" - integrity sha512-qjxS+SBChvqCl6lU6ShiliLMN6WqFHiXQENYbAY3GKNflG+FS3jqn8JmQq0CBZq4koFqsi95NT1M6SL4whZfrA== - dependencies: - "@ctrl/tinycolor" "^3.4.1" - "@element-plus/icons-vue" "^2.3.2" - "@floating-ui/dom" "^1.0.1" - "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" - "@types/lodash" "^4.17.20" - "@types/lodash-es" "^4.17.12" - "@vueuse/core" "^10.11.0" - async-validator "^4.2.5" - dayjs "^1.11.19" - lodash "^4.17.21" - lodash-es "^4.17.21" - lodash-unified "^1.0.3" - memoize-one "^6.0.0" - normalize-wheel-es "^1.2.0" - -entities@^4.2.0: - version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -entities@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz" - integrity sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -errx@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz" - integrity sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q== - -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" - integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.4" - is-array-buffer "^3.0.1" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-module-lexer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz" - integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -esbuild@^0.27.0: - version "0.27.2" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz" - integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.27.2" - "@esbuild/android-arm" "0.27.2" - "@esbuild/android-arm64" "0.27.2" - "@esbuild/android-x64" "0.27.2" - "@esbuild/darwin-arm64" "0.27.2" - "@esbuild/darwin-x64" "0.27.2" - "@esbuild/freebsd-arm64" "0.27.2" - "@esbuild/freebsd-x64" "0.27.2" - "@esbuild/linux-arm" "0.27.2" - "@esbuild/linux-arm64" "0.27.2" - "@esbuild/linux-ia32" "0.27.2" - "@esbuild/linux-loong64" "0.27.2" - "@esbuild/linux-mips64el" "0.27.2" - "@esbuild/linux-ppc64" "0.27.2" - "@esbuild/linux-riscv64" "0.27.2" - "@esbuild/linux-s390x" "0.27.2" - "@esbuild/linux-x64" "0.27.2" - "@esbuild/netbsd-arm64" "0.27.2" - "@esbuild/netbsd-x64" "0.27.2" - "@esbuild/openbsd-arm64" "0.27.2" - "@esbuild/openbsd-x64" "0.27.2" - "@esbuild/openharmony-arm64" "0.27.2" - "@esbuild/sunos-x64" "0.27.2" - "@esbuild/win32-arm64" "0.27.2" - "@esbuild/win32-ia32" "0.27.2" - "@esbuild/win32-x64" "0.27.2" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -eslint-config-prettier@*, eslint-config-prettier@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-plugin-prettier@^5.0.0: - version "5.1.3" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" - -eslint-plugin-vue@^9.0.0, eslint-plugin-vue@^9.33.0: - version "9.33.0" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz" - integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - globals "^13.24.0" - natural-compare "^1.4.0" - nth-check "^2.1.1" - postcss-selector-parser "^6.0.15" - semver "^7.6.3" - vue-eslint-parser "^9.4.3" - xml-name-validator "^4.0.0" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.56.0, "eslint@>= 8.0.0", eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=8.0.0: - version "8.56.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.3.1: - version "9.4.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -espree@^9.6.0: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -espree@^9.6.1: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -exsolve@^1.0.7, exsolve@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz" - integrity sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2, fast-glob@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.20.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz" - integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== - dependencies: - reusify "^1.0.4" - -fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.2.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -giget@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz" - integrity sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA== - dependencies: - citty "^0.1.6" - consola "^3.4.0" - defu "^6.1.4" - node-fetch-native "^1.6.6" - nypm "^0.6.0" - pathe "^2.0.3" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -globals@^13.24.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.2: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -ignore@^7.0.5: - version "7.0.5" - resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== - -immutable@^5.0.2: - version "5.1.4" - resolved "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz" - integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz" - integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - side-channel "^1.0.4" - -is-array-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz" - integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.16.1: - version "2.16.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jiti@^2.4.2, jiti@^2.6.1, jiti@>=1.21.0: - version "2.6.1" - resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" - integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== - -js-tokens@^9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz" - integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -klona@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" - integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== - -knitwork@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz" - integrity sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -local-pkg@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" - integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== - -local-pkg@^0.5.0: - version "0.5.1" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz" - integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== - dependencies: - mlly "^1.7.3" - pkg-types "^1.2.1" - -local-pkg@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz" - integrity sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A== - dependencies: - mlly "^1.7.4" - pkg-types "^2.3.0" - quansync "^0.2.11" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@*, lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash-unified@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" - integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@*, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.21, magic-string@^0.30.3: - version "0.30.21" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -mdn-data@2.0.28: - version "2.0.28" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" - integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== - -mdn-data@2.0.30: - version "2.0.30" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" - integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== - -memoize-one@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" - integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.5, micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.3: - version "9.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -mlly@^1.7.3, mlly@^1.7.4, mlly@^1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz" - integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== - dependencies: - acorn "^8.15.0" - pathe "^2.0.3" - pkg-types "^1.3.1" - ufo "^1.6.1" - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -muggle-string@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz" - integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-addon-api@^7.0.0: - version "7.1.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" - integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== - -node-fetch-native@^1.6.6: - version "1.6.7" - resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz" - integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-wheel-es@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz" - integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw== - -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -nth-check@^2.0.1, nth-check@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -nypm@^0.6.0: - version "0.6.2" - resolved "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz" - integrity sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g== - dependencies: - citty "^0.1.6" - consola "^3.4.2" - pathe "^2.0.3" - pkg-types "^2.3.0" - tinyexec "^1.0.1" - -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -ohash@^2.0.11: - version "2.0.11" - resolved "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz" - integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathe@^2.0.1, pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -perfect-debounce@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz" - integrity sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -"picomatch@^3 || ^4", picomatch@^4.0.2, picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pkg-types@^1.2.1: - version "1.3.1" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" - integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - dependencies: - confbox "^0.1.8" - mlly "^1.7.4" - pathe "^2.0.1" - -pkg-types@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" - integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - dependencies: - confbox "^0.1.8" - mlly "^1.7.4" - pathe "^2.0.1" - -pkg-types@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" - integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - dependencies: - confbox "^0.1.8" - mlly "^1.7.4" - pathe "^2.0.1" - -pkg-types@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz" - integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== - dependencies: - confbox "^0.2.2" - exsolve "^1.0.7" - pathe "^2.0.3" - -postcss-selector-parser@^6.0.15: - version "6.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz" - integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.7.4, "prettier@>= 3.0.0", prettier@>=3.0.0: - version "3.7.4" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz" - integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== - -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -quansync@^0.2.11: - version "0.2.11" - resolved "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz" - integrity sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -rc9@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz" - integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== - dependencies: - defu "^6.1.4" - destr "^2.0.3" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -readdirp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz" - integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.10.0, resolve@^1.22.4: - version "1.22.11" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz" - integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== - dependencies: - is-core-module "^2.16.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rolldown-string@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/rolldown-string/-/rolldown-string-0.2.1.tgz" - integrity sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg== - dependencies: - magic-string "^0.30.21" - -rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^4.43.0: - version "4.55.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz" - integrity sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.55.1" - "@rollup/rollup-android-arm64" "4.55.1" - "@rollup/rollup-darwin-arm64" "4.55.1" - "@rollup/rollup-darwin-x64" "4.55.1" - "@rollup/rollup-freebsd-arm64" "4.55.1" - "@rollup/rollup-freebsd-x64" "4.55.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.55.1" - "@rollup/rollup-linux-arm-musleabihf" "4.55.1" - "@rollup/rollup-linux-arm64-gnu" "4.55.1" - "@rollup/rollup-linux-arm64-musl" "4.55.1" - "@rollup/rollup-linux-loong64-gnu" "4.55.1" - "@rollup/rollup-linux-loong64-musl" "4.55.1" - "@rollup/rollup-linux-ppc64-gnu" "4.55.1" - "@rollup/rollup-linux-ppc64-musl" "4.55.1" - "@rollup/rollup-linux-riscv64-gnu" "4.55.1" - "@rollup/rollup-linux-riscv64-musl" "4.55.1" - "@rollup/rollup-linux-s390x-gnu" "4.55.1" - "@rollup/rollup-linux-x64-gnu" "4.55.1" - "@rollup/rollup-linux-x64-musl" "4.55.1" - "@rollup/rollup-openbsd-x64" "4.55.1" - "@rollup/rollup-openharmony-arm64" "4.55.1" - "@rollup/rollup-win32-arm64-msvc" "4.55.1" - "@rollup/rollup-win32-ia32-msvc" "4.55.1" - "@rollup/rollup-win32-x64-gnu" "4.55.1" - "@rollup/rollup-win32-x64-msvc" "4.55.1" - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -sass@^1.70.0, sass@^1.97.2: - version "1.97.2" - resolved "https://registry.npmjs.org/sass/-/sass-1.97.2.tgz" - integrity sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw== - dependencies: - chokidar "^4.0.0" - immutable "^5.0.2" - source-map-js ">=0.6.2 <2.0.0" - optionalDependencies: - "@parcel/watcher" "^2.4.1" - -scule@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz" - integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== - -semver@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^7.3.6, semver@^7.5.4, semver@^7.6.3, semver@^7.7.3: - version "7.7.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz" - integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.6.1: - version "1.8.0" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz" - integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.1, source-map-js@^1.2.1, "source-map-js@>=0.6.2 <2.0.0": - version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== - -string.prototype.padend@^3.0.0: - version "3.1.4" - resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz" - integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-literal@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz" - integrity sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q== - dependencies: - js-tokens "^9.0.1" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svgo@^3.0.2: - version "3.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz" - integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^5.1.0" - css-tree "^2.3.1" - css-what "^6.1.0" - csso "^5.0.5" - picocolors "^1.0.0" - -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - -terser@^5.16.0, terser@^5.44.1: - version "5.44.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz" - integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.15.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -tinyexec@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz" - integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg== - -tinyglobby@^0.2.15: - version "0.2.15" - resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" - integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== - -tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typescript@*, typescript@^5.9.3, typescript@>=4.2.0, typescript@>=5.0.0, typescript@5.x: - version "5.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -ufo@^1.6.1: - version "1.6.2" - resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz" - integrity sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unctx@^2.4.1: - version "2.5.0" - resolved "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz" - integrity sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg== - dependencies: - acorn "^8.15.0" - estree-walker "^3.0.3" - magic-string "^0.30.21" - unplugin "^2.3.11" - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -unimport@^3.7.2: - version "3.14.6" - resolved "https://registry.npmjs.org/unimport/-/unimport-3.14.6.tgz" - integrity sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g== - dependencies: - "@rollup/pluginutils" "^5.1.4" - acorn "^8.14.0" - escape-string-regexp "^5.0.0" - estree-walker "^3.0.3" - fast-glob "^3.3.3" - local-pkg "^1.0.0" - magic-string "^0.30.17" - mlly "^1.7.4" - pathe "^2.0.1" - picomatch "^4.0.2" - pkg-types "^1.3.0" - scule "^1.3.0" - strip-literal "^2.1.1" - unplugin "^1.16.1" - -unplugin-auto-import@^0.17.5: - version "0.17.8" - resolved "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz" - integrity sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw== - dependencies: - "@antfu/utils" "^0.7.10" - "@rollup/pluginutils" "^5.1.0" - fast-glob "^3.3.2" - local-pkg "^0.5.0" - magic-string "^0.30.10" - minimatch "^9.0.4" - unimport "^3.7.2" - unplugin "^1.11.0" - -unplugin-element-plus@^0.11.2: - version "0.11.2" - resolved "https://registry.npmjs.org/unplugin-element-plus/-/unplugin-element-plus-0.11.2.tgz" - integrity sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg== - dependencies: - "@nuxt/kit" "^4.2.2" - es-module-lexer "^2.0.0" - escape-string-regexp "^5.0.0" - rolldown-string "^0.2.1" - unplugin "^2.3.11" - -unplugin-vue-components@^0.26.0: - version "0.26.0" - resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz" - integrity sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ== - dependencies: - "@antfu/utils" "^0.7.6" - "@rollup/pluginutils" "^5.0.4" - chokidar "^3.5.3" - debug "^4.3.4" - fast-glob "^3.3.1" - local-pkg "^0.4.3" - magic-string "^0.30.3" - minimatch "^9.0.3" - resolve "^1.22.4" - unplugin "^1.4.0" - -unplugin@^1.11.0, unplugin@^1.16.1, unplugin@^1.4.0: - version "1.16.1" - resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz" - integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w== - dependencies: - acorn "^8.14.0" - webpack-virtual-modules "^0.6.2" - -unplugin@^2.3.11: - version "2.3.11" - resolved "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz" - integrity sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww== - dependencies: - "@jridgewell/remapping" "^2.3.5" - acorn "^8.15.0" - picomatch "^4.0.3" - webpack-virtual-modules "^0.6.2" - -untyped@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz" - integrity sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g== - dependencies: - citty "^0.1.6" - defu "^6.1.4" - jiti "^2.4.2" - knitwork "^1.2.0" - scule "^1.3.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vite-svg-loader@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz" - integrity sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw== - dependencies: - svgo "^3.0.2" - -"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", vite@^7.3.0: - version "7.3.0" - resolved "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz" - integrity sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg== - dependencies: - esbuild "^0.27.0" - fdir "^6.5.0" - picomatch "^4.0.3" - postcss "^8.5.6" - rollup "^4.43.0" - tinyglobby "^0.2.15" - optionalDependencies: - fsevents "~2.3.3" - -vscode-uri@^3.0.8: - version "3.1.0" - resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz" - integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== - -vue-demi@>=0.14.8: - version "0.14.10" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" - integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== - -vue-eslint-parser@^9.3.1: - version "9.4.2" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz" - integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -vue-eslint-parser@^9.4.3: - version "9.4.3" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" - integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -vue-router@^4.6.4: - version "4.6.4" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz" - integrity sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== - dependencies: - "@vue/devtools-api" "^6.6.4" - -vue-tsc@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.2.tgz" - integrity sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ== - dependencies: - "@volar/typescript" "2.4.27" - "@vue/language-core" "3.2.2" - -"vue@^3.0.0-0 || ^2.6.0", vue@^3.2.0, vue@^3.2.25, vue@^3.3.0, vue@^3.4.0, vue@^3.5.0, vue@^3.5.26, vue@>=3.2.13, "vue@2 || 3", vue@3.5.26: - version "3.5.26" - resolved "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz" - integrity sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA== - dependencies: - "@vue/compiler-dom" "3.5.26" - "@vue/compiler-sfc" "3.5.26" - "@vue/runtime-dom" "3.5.26" - "@vue/server-renderer" "3.5.26" - "@vue/shared" "3.5.26" - -webpack-virtual-modules@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" - integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 266c492b5d2af900176ea57beff4f1f0c98bafbb Mon Sep 17 00:00:00 2001 From: fatedier Date: Sat, 31 Jan 2026 02:18:35 +0800 Subject: [PATCH 310/444] web/frps: add detailed client and proxy views with enhanced tracking (#5144) --- Release.md | 2 +- pkg/metrics/aggregate/server.go | 4 +- pkg/metrics/mem/server.go | 33 +- pkg/metrics/mem/types.go | 5 + pkg/metrics/prometheus/server.go | 2 +- server/api/controller.go | 90 +- server/api/types.go | 5 + server/control.go | 6 +- server/metrics/metrics.go | 18 +- server/registry/registry.go | 42 +- server/service.go | 3 +- web/frps/components.d.ts | 14 +- web/frps/package-lock.json | 219 ++--- web/frps/src/App.vue | 358 ++++--- web/frps/src/api/http.ts | 32 +- web/frps/src/api/proxy.ts | 10 +- web/frps/src/assets/css/custom.css | 2 +- web/frps/src/assets/icons/logo.svg | 15 + web/frps/src/components/ClientCard.vue | 298 +++--- web/frps/src/components/ProxyCard.vue | 244 +++++ web/frps/src/components/ProxyViewExpand.vue | 112 --- web/frps/src/components/StatCard.vue | 2 +- web/frps/src/components/Traffic.vue | 75 +- web/frps/src/router/index.ts | 15 + web/frps/src/types/proxy.ts | 2 + web/frps/src/types/server.ts | 2 +- web/frps/src/utils/format.ts | 2 +- web/frps/src/utils/proxy.ts | 19 +- web/frps/src/views/ClientDetail.vue | 522 +++++++++++ web/frps/src/views/Clients.vue | 237 +++-- web/frps/src/views/Proxies.vue | 470 ++++++---- web/frps/src/views/ProxyDetail.vue | 985 ++++++++++++++++++++ web/frps/src/views/ServerOverview.vue | 26 +- web/frps/vite.config.mts | 4 +- 34 files changed, 2976 insertions(+), 899 deletions(-) create mode 100644 web/frps/src/assets/icons/logo.svg create mode 100644 web/frps/src/components/ProxyCard.vue delete mode 100644 web/frps/src/components/ProxyViewExpand.vue create mode 100644 web/frps/src/views/ClientDetail.vue create mode 100644 web/frps/src/views/ProxyDetail.vue diff --git a/Release.md b/Release.md index 6cba56456d3..69032dccdce 100644 --- a/Release.md +++ b/Release.md @@ -1,7 +1,7 @@ ## Features * frpc now supports a `clientID` option to uniquely identify client instances. The server dashboard displays all connected clients with their online/offline status, connection history, and metadata, making it easier to monitor and manage multiple frpc deployments. -* Redesigned the frps web dashboard with a modern UI, dark mode support, and improved navigation. +* Redesigned the frp web dashboard with a modern UI, dark mode support, and improved navigation. ## Fixes diff --git a/pkg/metrics/aggregate/server.go b/pkg/metrics/aggregate/server.go index 354d85c2b68..9ef70ebd39c 100644 --- a/pkg/metrics/aggregate/server.go +++ b/pkg/metrics/aggregate/server.go @@ -56,9 +56,9 @@ func (m *serverMetrics) CloseClient() { } } -func (m *serverMetrics) NewProxy(name string, proxyType string) { +func (m *serverMetrics) NewProxy(name string, proxyType string, user string, clientID string) { for _, v := range m.ms { - v.NewProxy(name, proxyType) + v.NewProxy(name, proxyType, user, clientID) } } diff --git a/pkg/metrics/mem/server.go b/pkg/metrics/mem/server.go index 70cfc1c1486..677788d3f66 100644 --- a/pkg/metrics/mem/server.go +++ b/pkg/metrics/mem/server.go @@ -98,7 +98,7 @@ func (m *serverMetrics) CloseClient() { m.info.ClientCounts.Dec(1) } -func (m *serverMetrics) NewProxy(name string, proxyType string) { +func (m *serverMetrics) NewProxy(name string, proxyType string, user string, clientID string) { m.mu.Lock() defer m.mu.Unlock() counter, ok := m.info.ProxyTypeCounts[proxyType] @@ -119,6 +119,8 @@ func (m *serverMetrics) NewProxy(name string, proxyType string) { } m.info.ProxyStatistics[name] = proxyStats } + proxyStats.User = user + proxyStats.ClientID = clientID proxyStats.LastStartTime = time.Now() } @@ -214,6 +216,8 @@ func (m *serverMetrics) GetProxiesByType(proxyType string) []*ProxyStats { ps := &ProxyStats{ Name: name, Type: proxyStats.ProxyType, + User: proxyStats.User, + ClientID: proxyStats.ClientID, TodayTrafficIn: proxyStats.TrafficIn.TodayCount(), TodayTrafficOut: proxyStats.TrafficOut.TodayCount(), CurConns: int64(proxyStats.CurConns.Count()), @@ -245,6 +249,8 @@ func (m *serverMetrics) GetProxiesByTypeAndName(proxyType string, proxyName stri res = &ProxyStats{ Name: name, Type: proxyStats.ProxyType, + User: proxyStats.User, + ClientID: proxyStats.ClientID, TodayTrafficIn: proxyStats.TrafficIn.TodayCount(), TodayTrafficOut: proxyStats.TrafficOut.TodayCount(), CurConns: int64(proxyStats.CurConns.Count()), @@ -260,6 +266,31 @@ func (m *serverMetrics) GetProxiesByTypeAndName(proxyType string, proxyName stri return } +func (m *serverMetrics) GetProxyByName(proxyName string) (res *ProxyStats) { + m.mu.Lock() + defer m.mu.Unlock() + + proxyStats, ok := m.info.ProxyStatistics[proxyName] + if ok { + res = &ProxyStats{ + Name: proxyName, + Type: proxyStats.ProxyType, + User: proxyStats.User, + ClientID: proxyStats.ClientID, + TodayTrafficIn: proxyStats.TrafficIn.TodayCount(), + TodayTrafficOut: proxyStats.TrafficOut.TodayCount(), + CurConns: int64(proxyStats.CurConns.Count()), + } + if !proxyStats.LastStartTime.IsZero() { + res.LastStartTime = proxyStats.LastStartTime.Format("01-02 15:04:05") + } + if !proxyStats.LastCloseTime.IsZero() { + res.LastCloseTime = proxyStats.LastCloseTime.Format("01-02 15:04:05") + } + } + return +} + func (m *serverMetrics) GetProxyTraffic(name string) (res *ProxyTrafficInfo) { m.mu.Lock() defer m.mu.Unlock() diff --git a/pkg/metrics/mem/types.go b/pkg/metrics/mem/types.go index a6f276ce7f8..b7661ba8f2d 100644 --- a/pkg/metrics/mem/types.go +++ b/pkg/metrics/mem/types.go @@ -35,6 +35,8 @@ type ServerStats struct { type ProxyStats struct { Name string Type string + User string + ClientID string TodayTrafficIn int64 TodayTrafficOut int64 LastStartTime string @@ -51,6 +53,8 @@ type ProxyTrafficInfo struct { type ProxyStatistics struct { Name string ProxyType string + User string + ClientID string TrafficIn metric.DateCounter TrafficOut metric.DateCounter CurConns metric.Counter @@ -78,6 +82,7 @@ type Collector interface { GetServer() *ServerStats GetProxiesByType(proxyType string) []*ProxyStats GetProxiesByTypeAndName(proxyType string, proxyName string) *ProxyStats + GetProxyByName(proxyName string) *ProxyStats GetProxyTraffic(name string) *ProxyTrafficInfo ClearOfflineProxies() (int, int) } diff --git a/pkg/metrics/prometheus/server.go b/pkg/metrics/prometheus/server.go index a99bb1d5efe..6a300ffe0f4 100644 --- a/pkg/metrics/prometheus/server.go +++ b/pkg/metrics/prometheus/server.go @@ -30,7 +30,7 @@ func (m *serverMetrics) CloseClient() { m.clientCount.Dec() } -func (m *serverMetrics) NewProxy(name string, proxyType string) { +func (m *serverMetrics) NewProxy(name string, proxyType string, _ string, _ string) { m.proxyCount.WithLabelValues(proxyType).Inc() m.proxyCountDetailed.WithLabelValues(proxyType, name).Inc() } diff --git a/server/api/controller.go b/server/api/controller.go index ead224d4cbc..8c9827d8c3f 100644 --- a/server/api/controller.go +++ b/server/api/controller.go @@ -117,7 +117,7 @@ func (c *Controller) APIClientList(ctx *httppkg.Context) (any, error) { if userFilter != "" && info.User != userFilter { continue } - if clientIDFilter != "" && info.ClientID != clientIDFilter { + if clientIDFilter != "" && info.ClientID() != clientIDFilter { continue } if runIDFilter != "" && info.RunID != runIDFilter { @@ -204,6 +204,48 @@ func (c *Controller) APIProxyTraffic(ctx *httppkg.Context) (any, error) { return trafficResp, nil } +// /api/proxies/:name +func (c *Controller) APIProxyByName(ctx *httppkg.Context) (any, error) { + name := ctx.Param("name") + + ps := mem.StatsCollector.GetProxyByName(name) + if ps == nil { + return nil, httppkg.NewError(http.StatusNotFound, "no proxy info found") + } + + proxyInfo := GetProxyStatsResp{ + Name: ps.Name, + User: ps.User, + ClientID: ps.ClientID, + TodayTrafficIn: ps.TodayTrafficIn, + TodayTrafficOut: ps.TodayTrafficOut, + CurConns: ps.CurConns, + LastStartTime: ps.LastStartTime, + LastCloseTime: ps.LastCloseTime, + } + + if pxy, ok := c.pxyManager.GetByName(name); ok { + content, err := json.Marshal(pxy.GetConfigurer()) + if err != nil { + log.Warnf("marshal proxy [%s] conf info error: %v", name, err) + return nil, httppkg.NewError(http.StatusBadRequest, "parse conf error") + } + proxyInfo.Conf = getConfByType(ps.Type) + if err = json.Unmarshal(content, &proxyInfo.Conf); err != nil { + log.Warnf("unmarshal proxy [%s] conf info error: %v", name, err) + return nil, httppkg.NewError(http.StatusBadRequest, "parse conf error") + } + proxyInfo.Status = "online" + c.fillProxyClientInfo(&proxyClientInfo{ + clientVersion: &proxyInfo.ClientVersion, + }, pxy) + } else { + proxyInfo.Status = "offline" + } + + return proxyInfo, nil +} + // DELETE /api/proxies?status=offline func (c *Controller) DeleteProxies(ctx *httppkg.Context) (any, error) { status := ctx.Query("status") @@ -219,7 +261,10 @@ func (c *Controller) getProxyStatsByType(proxyType string) (proxyInfos []*ProxyS proxyStats := mem.StatsCollector.GetProxiesByType(proxyType) proxyInfos = make([]*ProxyStatsInfo, 0, len(proxyStats)) for _, ps := range proxyStats { - proxyInfo := &ProxyStatsInfo{} + proxyInfo := &ProxyStatsInfo{ + User: ps.User, + ClientID: ps.ClientID, + } if pxy, ok := c.pxyManager.GetByName(ps.Name); ok { content, err := json.Marshal(pxy.GetConfigurer()) if err != nil { @@ -232,9 +277,9 @@ func (c *Controller) getProxyStatsByType(proxyType string) (proxyInfos []*ProxyS continue } proxyInfo.Status = "online" - if pxy.GetLoginMsg() != nil { - proxyInfo.ClientVersion = pxy.GetLoginMsg().Version - } + c.fillProxyClientInfo(&proxyClientInfo{ + clientVersion: &proxyInfo.ClientVersion, + }, pxy) } else { proxyInfo.Status = "offline" } @@ -256,6 +301,8 @@ func (c *Controller) getProxyStatsByTypeAndName(proxyType string, proxyName stri code = 404 msg = "no proxy info found" } else { + proxyInfo.User = ps.User + proxyInfo.ClientID = ps.ClientID if pxy, ok := c.pxyManager.GetByName(proxyName); ok { content, err := json.Marshal(pxy.GetConfigurer()) if err != nil { @@ -290,7 +337,7 @@ func buildClientInfoResp(info registry.ClientInfo) ClientInfoResp { resp := ClientInfoResp{ Key: info.Key, User: info.User, - ClientID: info.ClientID, + ClientID: info.ClientID(), RunID: info.RunID, Hostname: info.Hostname, ClientIP: info.IP, @@ -304,6 +351,37 @@ func buildClientInfoResp(info registry.ClientInfo) ClientInfoResp { return resp } +type proxyClientInfo struct { + user *string + clientID *string + clientVersion *string +} + +func (c *Controller) fillProxyClientInfo(proxyInfo *proxyClientInfo, pxy proxy.Proxy) { + loginMsg := pxy.GetLoginMsg() + if loginMsg == nil { + return + } + if proxyInfo.user != nil { + *proxyInfo.user = loginMsg.User + } + if proxyInfo.clientVersion != nil { + *proxyInfo.clientVersion = loginMsg.Version + } + if info, ok := c.clientRegistry.GetByRunID(loginMsg.RunID); ok { + if proxyInfo.clientID != nil { + *proxyInfo.clientID = info.ClientID() + } + return + } + if proxyInfo.clientID != nil { + *proxyInfo.clientID = loginMsg.ClientID + if *proxyInfo.clientID == "" { + *proxyInfo.clientID = loginMsg.RunID + } + } +} + func toUnix(t time.Time) int64 { if t.IsZero() { return 0 diff --git a/server/api/types.go b/server/api/types.go index 86e68da0514..b91422becca 100644 --- a/server/api/types.go +++ b/server/api/types.go @@ -98,6 +98,8 @@ type XTCPOutConf struct { type ProxyStatsInfo struct { Name string `json:"name"` Conf any `json:"conf"` + User string `json:"user,omitempty"` + ClientID string `json:"clientID,omitempty"` ClientVersion string `json:"clientVersion,omitempty"` TodayTrafficIn int64 `json:"todayTrafficIn"` TodayTrafficOut int64 `json:"todayTrafficOut"` @@ -115,6 +117,9 @@ type GetProxyInfoResp struct { type GetProxyStatsResp struct { Name string `json:"name"` Conf any `json:"conf"` + User string `json:"user,omitempty"` + ClientID string `json:"clientID,omitempty"` + ClientVersion string `json:"clientVersion,omitempty"` TodayTrafficIn int64 `json:"todayTrafficIn"` TodayTrafficOut int64 `json:"todayTrafficOut"` CurConns int64 `json:"curConns"` diff --git a/server/control.go b/server/control.go index 23e98c9eb7d..863104f3507 100644 --- a/server/control.go +++ b/server/control.go @@ -405,7 +405,11 @@ func (ctl *Control) handleNewProxy(m msg.Message) { } else { resp.RemoteAddr = remoteAddr xl.Infof("new proxy [%s] type [%s] success", inMsg.ProxyName, inMsg.ProxyType) - metrics.Server.NewProxy(inMsg.ProxyName, inMsg.ProxyType) + clientID := ctl.loginMsg.ClientID + if clientID == "" { + clientID = ctl.loginMsg.RunID + } + metrics.Server.NewProxy(inMsg.ProxyName, inMsg.ProxyType, ctl.loginMsg.User, clientID) } _ = ctl.msgDispatcher.Send(resp) } diff --git a/server/metrics/metrics.go b/server/metrics/metrics.go index 5064a238a3e..68be2677d35 100644 --- a/server/metrics/metrics.go +++ b/server/metrics/metrics.go @@ -7,7 +7,7 @@ import ( type ServerMetrics interface { NewClient() CloseClient() - NewProxy(name string, proxyType string) + NewProxy(name string, proxyType string, user string, clientID string) CloseProxy(name string, proxyType string) OpenConnection(name string, proxyType string) CloseConnection(name string, proxyType string) @@ -27,11 +27,11 @@ func Register(m ServerMetrics) { type noopServerMetrics struct{} -func (noopServerMetrics) NewClient() {} -func (noopServerMetrics) CloseClient() {} -func (noopServerMetrics) NewProxy(string, string) {} -func (noopServerMetrics) CloseProxy(string, string) {} -func (noopServerMetrics) OpenConnection(string, string) {} -func (noopServerMetrics) CloseConnection(string, string) {} -func (noopServerMetrics) AddTrafficIn(string, string, int64) {} -func (noopServerMetrics) AddTrafficOut(string, string, int64) {} +func (noopServerMetrics) NewClient() {} +func (noopServerMetrics) CloseClient() {} +func (noopServerMetrics) NewProxy(string, string, string, string) {} +func (noopServerMetrics) CloseProxy(string, string) {} +func (noopServerMetrics) OpenConnection(string, string) {} +func (noopServerMetrics) CloseConnection(string, string) {} +func (noopServerMetrics) AddTrafficIn(string, string, int64) {} +func (noopServerMetrics) AddTrafficOut(string, string, int64) {} diff --git a/server/registry/registry.go b/server/registry/registry.go index 88bf90e3213..24751bf646a 100644 --- a/server/registry/registry.go +++ b/server/registry/registry.go @@ -24,7 +24,7 @@ import ( type ClientInfo struct { Key string User string - ClientID string + RawClientID string RunID string Hostname string IP string @@ -34,8 +34,8 @@ type ClientInfo struct { Online bool } -// ClientRegistry keeps track of active clients keyed by "{user}.{clientID}" (or runID if clientID is empty). -// Entries without an explicit clientID are removed on disconnect to avoid stale offline records. +// ClientRegistry keeps track of active clients keyed by "{user}.{clientID}" (runID fallback when raw clientID is empty). +// Entries without an explicit raw clientID are removed on disconnect to avoid stale offline records. type ClientRegistry struct { mu sync.RWMutex clients map[string]*ClientInfo @@ -50,17 +50,17 @@ func NewClientRegistry() *ClientRegistry { } // Register stores/updates metadata for a client and returns the registry key plus whether it conflicts with an online client. -func (cr *ClientRegistry) Register(user, clientID, runID, hostname, remoteAddr string) (key string, conflict bool) { +func (cr *ClientRegistry) Register(user, rawClientID, runID, hostname, remoteAddr string) (key string, conflict bool) { if runID == "" { return "", false } - effectiveID := clientID + effectiveID := rawClientID if effectiveID == "" { effectiveID = runID } key = cr.composeClientKey(user, effectiveID) - enforceUnique := clientID != "" + enforceUnique := rawClientID != "" now := time.Now() cr.mu.Lock() @@ -75,7 +75,6 @@ func (cr *ClientRegistry) Register(user, clientID, runID, hostname, remoteAddr s info = &ClientInfo{ Key: key, User: user, - ClientID: clientID, FirstConnectedAt: now, } cr.clients[key] = info @@ -83,6 +82,7 @@ func (cr *ClientRegistry) Register(user, clientID, runID, hostname, remoteAddr s delete(cr.runIndex, info.RunID) } + info.RawClientID = rawClientID info.RunID = runID info.Hostname = hostname info.IP = remoteAddr @@ -107,7 +107,7 @@ func (cr *ClientRegistry) MarkOfflineByRunID(runID string) { return } if info, ok := cr.clients[key]; ok && info.RunID == runID { - if info.ClientID == "" { + if info.RawClientID == "" { delete(cr.clients, key) } else { info.RunID = "" @@ -131,7 +131,7 @@ func (cr *ClientRegistry) List() []ClientInfo { return result } -// GetByKey retrieves a client by its composite key ({user}.{clientID} or runID fallback). +// GetByKey retrieves a client by its composite key ({user}.{clientID} with runID fallback). func (cr *ClientRegistry) GetByKey(key string) (ClientInfo, bool) { cr.mu.RLock() defer cr.mu.RUnlock() @@ -143,6 +143,30 @@ func (cr *ClientRegistry) GetByKey(key string) (ClientInfo, bool) { return *info, true } +// ClientID returns the resolved client identifier for external use. +func (info ClientInfo) ClientID() string { + if info.RawClientID != "" { + return info.RawClientID + } + return info.RunID +} + +// GetByRunID retrieves a client by its run ID. +func (cr *ClientRegistry) GetByRunID(runID string) (ClientInfo, bool) { + cr.mu.RLock() + defer cr.mu.RUnlock() + + key, ok := cr.runIndex[runID] + if !ok { + return ClientInfo{}, false + } + info, ok := cr.clients[key] + if !ok { + return ClientInfo{}, false + } + return *info, true +} + func (cr *ClientRegistry) composeClientKey(user, id string) string { switch { case user == "": diff --git a/server/service.go b/server/service.go index decf1cefb90..6106dad6d2f 100644 --- a/server/service.go +++ b/server/service.go @@ -99,7 +99,7 @@ type Service struct { // Manage all controllers ctlManager *ControlManager - // Track logical clients keyed by user.clientID. + // Track logical clients keyed by user.clientID (runID fallback when raw clientID is empty). clientRegistry *registry.ClientRegistry // Manage all proxies @@ -709,6 +709,7 @@ func (svr *Service) registerRouteHandlers(helper *httppkg.RouterRegisterHelper) subRouter.HandleFunc("/api/serverinfo", httppkg.MakeHTTPHandlerFunc(apiController.APIServerInfo)).Methods("GET") subRouter.HandleFunc("/api/proxy/{type}", httppkg.MakeHTTPHandlerFunc(apiController.APIProxyByType)).Methods("GET") subRouter.HandleFunc("/api/proxy/{type}/{name}", httppkg.MakeHTTPHandlerFunc(apiController.APIProxyByTypeAndName)).Methods("GET") + subRouter.HandleFunc("/api/proxies/{name}", httppkg.MakeHTTPHandlerFunc(apiController.APIProxyByName)).Methods("GET") subRouter.HandleFunc("/api/traffic/{name}", httppkg.MakeHTTPHandlerFunc(apiController.APIProxyTraffic)).Methods("GET") subRouter.HandleFunc("/api/clients", httppkg.MakeHTTPHandlerFunc(apiController.APIClientList)).Methods("GET") subRouter.HandleFunc("/api/clients/{key}", httppkg.MakeHTTPHandlerFunc(apiController.APIClientDetail)).Methods("GET") diff --git a/web/frps/components.d.ts b/web/frps/components.d.ts index eacf7e56bde..95fe89dd42b 100644 --- a/web/frps/components.d.ts +++ b/web/frps/components.d.ts @@ -11,6 +11,8 @@ declare module 'vue' { ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCol: typeof import('element-plus/es')['ElCol'] + ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] + ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElDivider: typeof import('element-plus/es')['ElDivider'] ElEmpty: typeof import('element-plus/es')['ElEmpty'] @@ -18,21 +20,15 @@ declare module 'vue' { ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] ElInput: typeof import('element-plus/es')['ElInput'] - ElMenu: typeof import('element-plus/es')['ElMenu'] - ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] + ElOption: typeof import('element-plus/es')['ElOption'] ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm'] - ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] - ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] + ElSelect: typeof import('element-plus/es')['ElSelect'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] - ElTable: typeof import('element-plus/es')['ElTable'] - ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] - ElTabPane: typeof import('element-plus/es')['ElTabPane'] - ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] ElText: typeof import('element-plus/es')['ElText'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] - ProxyViewExpand: typeof import('./src/components/ProxyViewExpand.vue')['default'] + ProxyCard: typeof import('./src/components/ProxyCard.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] StatCard: typeof import('./src/components/StatCard.vue')['default'] diff --git a/web/frps/package-lock.json b/web/frps/package-lock.json index 7986c726cc2..07c3ad4853f 100644 --- a/web/frps/package-lock.json +++ b/web/frps/package-lock.json @@ -621,19 +621,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@eslint/eslintrc/node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -653,9 +640,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "license": "MIT", "engines": { @@ -678,13 +665,14 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" }, @@ -707,9 +695,10 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, "license": "BSD-3-Clause" }, @@ -1582,9 +1571,9 @@ } }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", "dev": true, "license": "MIT" }, @@ -1596,17 +1585,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz", - "integrity": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/type-utils": "6.20.0", - "@typescript-eslint/utils": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1632,16 +1621,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz", - "integrity": "sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -1661,14 +1650,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz", - "integrity": "sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1679,14 +1668,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz", - "integrity": "sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/utils": "6.20.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1707,9 +1696,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz", - "integrity": "sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "license": "MIT", "engines": { @@ -1721,14 +1710,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz", - "integrity": "sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1766,18 +1755,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz", - "integrity": "sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", "semver": "^7.5.4" }, "engines": { @@ -1792,13 +1781,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz", - "integrity": "sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1809,19 +1798,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -2495,9 +2471,9 @@ } }, "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dev": true, "license": "MIT", "dependencies": { @@ -2512,9 +2488,9 @@ } }, "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", "bin": { @@ -3057,17 +3033,18 @@ } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -3235,13 +3212,16 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/acorn-jsx": { @@ -3308,9 +3288,9 @@ "license": "MIT" }, "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3352,19 +3332,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint/node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -4433,9 +4400,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -4543,15 +4510,15 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", + "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", "license": "MIT" }, "node_modules/lodash-unified": { @@ -4654,9 +4621,9 @@ } }, "node_modules/minimatch/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -4771,9 +4738,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", "bin": { diff --git a/web/frps/src/App.vue b/web/frps/src/App.vue index b478b58d224..f8dc0a7d07e 100644 --- a/web/frps/src/App.vue +++ b/web/frps/src/App.vue @@ -1,43 +1,55 @@ diff --git a/web/frps/src/api/http.ts b/web/frps/src/api/http.ts index 4d4e41bd9fd..d6291e9e11e 100644 --- a/web/frps/src/api/http.ts +++ b/web/frps/src/api/http.ts @@ -19,7 +19,11 @@ async function request(url: string, options: RequestInit = {}): Promise { const response = await fetch(url, { ...defaultOptions, ...options }) if (!response.ok) { - throw new HTTPError(response.status, response.statusText, `HTTP ${response.status}`) + throw new HTTPError( + response.status, + response.statusText, + `HTTP ${response.status}`, + ) } // Handle empty response (e.g. 204 No Content) @@ -31,20 +35,22 @@ async function request(url: string, options: RequestInit = {}): Promise { } export const http = { - get: (url: string, options?: RequestInit) => request(url, { ...options, method: 'GET' }), - post: (url: string, body?: any, options?: RequestInit) => - request(url, { - ...options, - method: 'POST', + get: (url: string, options?: RequestInit) => + request(url, { ...options, method: 'GET' }), + post: (url: string, body?: any, options?: RequestInit) => + request(url, { + ...options, + method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, - body: JSON.stringify(body) + body: JSON.stringify(body), }), - put: (url: string, body?: any, options?: RequestInit) => - request(url, { - ...options, - method: 'PUT', + put: (url: string, body?: any, options?: RequestInit) => + request(url, { + ...options, + method: 'PUT', headers: { 'Content-Type': 'application/json', ...options?.headers }, - body: JSON.stringify(body) + body: JSON.stringify(body), }), - delete: (url: string, options?: RequestInit) => request(url, { ...options, method: 'DELETE' }), + delete: (url: string, options?: RequestInit) => + request(url, { ...options, method: 'DELETE' }), } diff --git a/web/frps/src/api/proxy.ts b/web/frps/src/api/proxy.ts index 4a70f0a0913..b323a588b69 100644 --- a/web/frps/src/api/proxy.ts +++ b/web/frps/src/api/proxy.ts @@ -1,5 +1,9 @@ import { http } from './http' -import type { GetProxyResponse, ProxyStatsInfo, TrafficResponse } from '../types/proxy' +import type { + GetProxyResponse, + ProxyStatsInfo, + TrafficResponse, +} from '../types/proxy' export const getProxiesByType = (type: string) => { return http.get(`../api/proxy/${type}`) @@ -9,6 +13,10 @@ export const getProxy = (type: string, name: string) => { return http.get(`../api/proxy/${type}/${name}`) } +export const getProxyByName = (name: string) => { + return http.get(`../api/proxies/${name}`) +} + export const getProxyTraffic = (name: string) => { return http.get(`../api/traffic/${name}`) } diff --git a/web/frps/src/assets/css/custom.css b/web/frps/src/assets/css/custom.css index 6ff997a5528..d482e8fd4e9 100644 --- a/web/frps/src/assets/css/custom.css +++ b/web/frps/src/assets/css/custom.css @@ -67,7 +67,7 @@ .el-page-header__title { font-size: 20px; - font-weight: 600; + font-weight: 500; } /* Better form layouts */ diff --git a/web/frps/src/assets/icons/logo.svg b/web/frps/src/assets/icons/logo.svg new file mode 100644 index 00000000000..fee4a82a394 --- /dev/null +++ b/web/frps/src/assets/icons/logo.svg @@ -0,0 +1,15 @@ + + + + + + diff --git a/web/frps/src/components/ClientCard.vue b/web/frps/src/components/ClientCard.vue index fd85d7f90f9..d44ef36a994 100644 --- a/web/frps/src/components/ClientCard.vue +++ b/web/frps/src/components/ClientCard.vue @@ -1,65 +1,48 @@ diff --git a/web/frps/src/components/ProxyCard.vue b/web/frps/src/components/ProxyCard.vue new file mode 100644 index 00000000000..850ebb18950 --- /dev/null +++ b/web/frps/src/components/ProxyCard.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/web/frps/src/components/ProxyViewExpand.vue b/web/frps/src/components/ProxyViewExpand.vue deleted file mode 100644 index 7efd5948b78..00000000000 --- a/web/frps/src/components/ProxyViewExpand.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - - diff --git a/web/frps/src/components/StatCard.vue b/web/frps/src/components/StatCard.vue index 8ed5afd56e7..c62c1235d32 100644 --- a/web/frps/src/components/StatCard.vue +++ b/web/frps/src/components/StatCard.vue @@ -167,7 +167,7 @@ html.dark .icon-traffic { .stat-value { font-size: 28px; - font-weight: 600; + font-weight: 500; line-height: 1.2; color: #303133; margin-bottom: 4px; diff --git a/web/frps/src/components/Traffic.vue b/web/frps/src/components/Traffic.vue index b4a0e368abc..04fffa6ccff 100644 --- a/web/frps/src/components/Traffic.vue +++ b/web/frps/src/components/Traffic.vue @@ -6,7 +6,7 @@
{{ formatFileSize(maxVal / 2) }}
0
- +
@@ -15,15 +15,21 @@
- -
+
- -
+
@@ -32,15 +38,11 @@
- +
-
- Traffic In -
-
- Traffic Out -
+
Traffic In
+
Traffic Out
@@ -58,24 +60,26 @@ const props = defineProps<{ }>() const loading = ref(false) -const chartData = ref>([]) +const chartData = ref< + Array<{ + date: string + in: number + out: number + inPercent: number + outPercent: number + }> +>([]) const maxVal = ref(0) const processData = (trafficIn: number[], trafficOut: number[]) => { // Ensure we have arrays and reverse them (server returns newest first) const inArr = [...(trafficIn || [])].reverse() const outArr = [...(trafficOut || [])].reverse() - + // Pad with zeros if less than 7 days while (inArr.length < 7) inArr.unshift(0) while (outArr.length < 7) outArr.unshift(0) - + // Slice to last 7 entries just in case const finalIn = inArr.slice(-7) const finalOut = outArr.slice(-7) @@ -84,7 +88,7 @@ const processData = (trafficIn: number[], trafficOut: number[]) => { const dates: string[] = [] let d = new Date() d.setDate(d.getDate() - 6) - + for (let i = 0; i < 7; i++) { dates.push(`${d.getMonth() + 1}-${d.getDate()}`) d.setDate(d.getDate() + 1) @@ -179,9 +183,16 @@ html.dark .grid-line { background-color: #3a3d5c; } -.grid-line.top { top: 0; } -.grid-line.middle { top: 50%; transform: translateY(-50%); } -.grid-line.bottom { bottom: 24px; } /* Align with bottom of bars */ +.grid-line.top { + top: 0; +} +.grid-line.middle { + top: 50%; + transform: translateY(-50%); +} +.grid-line.bottom { + bottom: 24px; +} /* Align with bottom of bars */ .day-column { flex: 1; @@ -255,6 +266,10 @@ html.dark .legend-item { border-radius: 50%; } -.dot.in { background-color: #5470c6; } -.dot.out { background-color: #91cc75; } - \ No newline at end of file +.dot.in { + background-color: #5470c6; +} +.dot.out { + background-color: #91cc75; +} + diff --git a/web/frps/src/router/index.ts b/web/frps/src/router/index.ts index b42a4630543..7689e8868be 100644 --- a/web/frps/src/router/index.ts +++ b/web/frps/src/router/index.ts @@ -1,10 +1,15 @@ import { createRouter, createWebHashHistory } from 'vue-router' import ServerOverview from '../views/ServerOverview.vue' import Clients from '../views/Clients.vue' +import ClientDetail from '../views/ClientDetail.vue' import Proxies from '../views/Proxies.vue' +import ProxyDetail from '../views/ProxyDetail.vue' const router = createRouter({ history: createWebHashHistory(), + scrollBehavior() { + return { top: 0 } + }, routes: [ { path: '/', @@ -16,11 +21,21 @@ const router = createRouter({ name: 'Clients', component: Clients, }, + { + path: '/clients/:key', + name: 'ClientDetail', + component: ClientDetail, + }, { path: '/proxies/:type?', name: 'Proxies', component: Proxies, }, + { + path: '/proxy/:name', + name: 'ProxyDetail', + component: ProxyDetail, + }, ], }) diff --git a/web/frps/src/types/proxy.ts b/web/frps/src/types/proxy.ts index b2204a22dbf..eec1cb43ef9 100644 --- a/web/frps/src/types/proxy.ts +++ b/web/frps/src/types/proxy.ts @@ -1,6 +1,8 @@ export interface ProxyStatsInfo { name: string conf: any + user: string + clientID: string clientVersion: string todayTrafficIn: number todayTrafficOut: number diff --git a/web/frps/src/types/server.ts b/web/frps/src/types/server.ts index 837cb4f8cde..ada31cc5676 100644 --- a/web/frps/src/types/server.ts +++ b/web/frps/src/types/server.ts @@ -12,7 +12,7 @@ export interface ServerInfo { heartbeatTimeout: number allowPortsStr: string tlsForce: boolean - + // Stats totalTrafficIn: number totalTrafficOut: number diff --git a/web/frps/src/utils/format.ts b/web/frps/src/utils/format.ts index e7e72fcf3f9..11cd398f142 100644 --- a/web/frps/src/utils/format.ts +++ b/web/frps/src/utils/format.ts @@ -28,6 +28,6 @@ export function formatFileSize(bytes: number): string { // Prevent index out of bounds for extremely large numbers const unit = sizes[i] || sizes[sizes.length - 1] const val = bytes / Math.pow(k, i) - + return parseFloat(val.toFixed(2)) + ' ' + unit } diff --git a/web/frps/src/utils/proxy.ts b/web/frps/src/utils/proxy.ts index 7e1a02aef09..a2285c624f6 100644 --- a/web/frps/src/utils/proxy.ts +++ b/web/frps/src/utils/proxy.ts @@ -10,6 +10,8 @@ class BaseProxy { lastStartTime: string lastCloseTime: string status: string + user: string + clientID: string clientVersion: string addr: string port: number @@ -19,6 +21,10 @@ class BaseProxy { locations: string subdomain: string + // TCPMux specific + multiplexer: string + routeByHTTPUser: string + constructor(proxyStats: any) { this.name = proxyStats.name this.type = '' @@ -41,6 +47,8 @@ class BaseProxy { this.lastStartTime = proxyStats.lastStartTime this.lastCloseTime = proxyStats.lastCloseTime this.status = proxyStats.status + this.user = proxyStats.user || '' + this.clientID = proxyStats.clientID || '' this.clientVersion = proxyStats.clientVersion this.addr = '' @@ -49,6 +57,8 @@ class BaseProxy { this.hostHeaderRewrite = '' this.locations = '' this.subdomain = '' + this.multiplexer = '' + this.routeByHTTPUser = '' } } @@ -111,20 +121,15 @@ class HTTPSProxy extends BaseProxy { } class TCPMuxProxy extends BaseProxy { - multiplexer: string - routeByHTTPUser: string - constructor(proxyStats: any, port: number, subdomainHost: string) { super(proxyStats) this.type = 'tcpmux' this.port = port - this.multiplexer = '' - this.routeByHTTPUser = '' if (proxyStats.conf) { this.customDomains = proxyStats.conf.customDomains || this.customDomains - this.multiplexer = proxyStats.conf.multiplexer - this.routeByHTTPUser = proxyStats.conf.routeByHTTPUser + this.multiplexer = proxyStats.conf.multiplexer || '' + this.routeByHTTPUser = proxyStats.conf.routeByHTTPUser || '' if (proxyStats.conf.subdomain) { this.subdomain = `${proxyStats.conf.subdomain}.${subdomainHost}` } diff --git a/web/frps/src/views/ClientDetail.vue b/web/frps/src/views/ClientDetail.vue new file mode 100644 index 00000000000..aa064579808 --- /dev/null +++ b/web/frps/src/views/ClientDetail.vue @@ -0,0 +1,522 @@ + + + + + diff --git a/web/frps/src/views/Clients.vue b/web/frps/src/views/Clients.vue index a9ccd5a1914..7afaa481d53 100644 --- a/web/frps/src/views/Clients.vue +++ b/web/frps/src/views/Clients.vue @@ -1,34 +1,48 @@ @@ -55,6 +69,12 @@ const stats = computed(() => { return { total, online, offline } }) +const statusTabs = computed(() => [ + { value: 'all' as const, label: 'All', count: stats.value.total }, + { value: 'online' as const, label: 'Online', count: stats.value.online }, + { value: 'offline' as const, label: 'Offline', count: stats.value.offline }, +]) + const filteredClients = computed(() => { let result = clients.value @@ -87,7 +107,6 @@ const fetchData = async () => { const json = await getClients() clients.value = json.map((data) => new Client(data)) } catch (error: any) { - console.error('Failed to fetch clients:', error) ElMessage({ showClose: true, message: 'Failed to fetch clients: ' + error.message, @@ -99,7 +118,6 @@ const fetchData = async () => { } const startAutoRefresh = () => { - // Auto refresh every 5 seconds refreshTimer = window.setInterval(() => { fetchData() }, 5000) @@ -124,46 +142,161 @@ onUnmounted(() => { diff --git a/web/frps/src/views/Proxies.vue b/web/frps/src/views/Proxies.vue index 4a0ba1f0d57..18782bedca2 100644 --- a/web/frps/src/views/Proxies.vue +++ b/web/frps/src/views/Proxies.vue @@ -1,34 +1,26 @@ diff --git a/web/frps/src/views/ProxyDetail.vue b/web/frps/src/views/ProxyDetail.vue new file mode 100644 index 00000000000..f322545f02d --- /dev/null +++ b/web/frps/src/views/ProxyDetail.vue @@ -0,0 +1,985 @@ + + + + + diff --git a/web/frps/src/views/ServerOverview.vue b/web/frps/src/views/ServerOverview.vue index 47baa9ddeea..9d1493adf1f 100644 --- a/web/frps/src/views/ServerOverview.vue +++ b/web/frps/src/views/ServerOverview.vue @@ -53,7 +53,9 @@
Inbound
-
{{ formatFileSize(data.totalTrafficIn) }}
+
+ {{ formatFileSize(data.totalTrafficIn) }} +
@@ -63,7 +65,9 @@
Outbound
-
{{ formatFileSize(data.totalTrafficOut) }}
+
+ {{ formatFileSize(data.totalTrafficOut) }} +
@@ -78,9 +82,9 @@
-
@@ -187,7 +191,7 @@ const data = ref({ }) const hasActiveProxies = computed(() => { - return Object.values(data.value.proxyTypeCounts).some(c => c > 0) + return Object.values(data.value.proxyTypeCounts).some((c) => c > 0) }) const formatTrafficTotal = () => { @@ -223,7 +227,7 @@ const fetchData = async () => { data.value.proxyCounts = 0 if (json.proxyTypeCount != null) { Object.values(json.proxyTypeCount).forEach((count: any) => { - data.value.proxyCounts += (count || 0) + data.value.proxyCounts += count || 0 }) } } catch (err) { @@ -283,7 +287,7 @@ html.dark .config-card { .card-title { font-size: 16px; - font-weight: 600; + font-weight: 500; color: #303133; } @@ -337,7 +341,7 @@ html.dark .card-title { .traffic-info .value { font-size: 24px; - font-weight: 600; + font-weight: 500; color: #303133; } @@ -386,7 +390,7 @@ html.dark .proxy-type-item { .proxy-type-count { font-size: 20px; - font-weight: 600; + font-weight: 500; color: #303133; } @@ -437,7 +441,7 @@ html.dark .config-label { .config-value { font-size: 14px; color: #303133; - font-weight: 600; + font-weight: 500; word-break: break-all; } diff --git a/web/frps/vite.config.mts b/web/frps/vite.config.mts index eb1761efa80..812cd10b894 100644 --- a/web/frps/vite.config.mts +++ b/web/frps/vite.config.mts @@ -39,7 +39,9 @@ export default defineConfig({ }, }, server: { - allowedHosts: process.env.ALLOWED_HOSTS ? process.env.ALLOWED_HOSTS.split(',') : [], + allowedHosts: process.env.ALLOWED_HOSTS + ? process.env.ALLOWED_HOSTS.split(',') + : [], proxy: { '/api': { target: process.env.VITE_API_URL || 'http://127.0.0.1:7500', From 886c9c2fdbbcd8f1d5ba75fe0cb0f12b999a9df1 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sat, 31 Jan 2026 12:43:31 +0800 Subject: [PATCH 311/444] web/frpc: redesign dashboard (#5145) --- web/frpc/components.d.ts | 10 +- web/frpc/src/App.vue | 354 +++++++++--------- web/frpc/src/api/http.ts | 60 ++-- web/frpc/src/assets/css/custom.css | 88 +++-- web/frpc/src/assets/css/dark.css | 132 ++++++- web/frpc/src/assets/icons/logo.svg | 15 + web/frpc/src/components/ProxyCard.vue | 236 ++++++++++++ web/frpc/src/components/StatCard.vue | 202 +++++++++++ web/frpc/src/main.ts | 2 +- web/frpc/src/router/index.ts | 2 +- web/frpc/src/types/proxy.ts | 16 +- web/frpc/src/utils/format.ts | 2 +- web/frpc/src/views/ClientConfigure.vue | 356 ++++++++++++++++-- web/frpc/src/views/Overview.vue | 475 ++++++++++++++++++------- web/frpc/vite.config.mts | 6 +- web/frps/components.d.ts | 7 - web/frps/src/App.vue | 12 + 17 files changed, 1537 insertions(+), 438 deletions(-) create mode 100644 web/frpc/src/assets/icons/logo.svg create mode 100644 web/frpc/src/components/ProxyCard.vue create mode 100644 web/frpc/src/components/StatCard.vue diff --git a/web/frpc/components.d.ts b/web/frpc/components.d.ts index 08d9bce2f08..f9d4522a923 100644 --- a/web/frpc/components.d.ts +++ b/web/frpc/components.d.ts @@ -9,16 +9,18 @@ declare module 'vue' { export interface GlobalComponents { ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] + ElCol: typeof import('element-plus/es')['ElCol'] + ElEmpty: typeof import('element-plus/es')['ElEmpty'] + ElIcon: typeof import('element-plus/es')['ElIcon'] ElInput: typeof import('element-plus/es')['ElInput'] - ElMenu: typeof import('element-plus/es')['ElMenu'] - ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] + ElRow: typeof import('element-plus/es')['ElRow'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] - ElTable: typeof import('element-plus/es')['ElTable'] - ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTag: typeof import('element-plus/es')['ElTag'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] + ProxyCard: typeof import('./src/components/ProxyCard.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + StatCard: typeof import('./src/components/StatCard.vue')['default'] } export interface ComponentCustomProperties { vLoading: typeof import('element-plus/es')['ElLoadingDirective'] diff --git a/web/frpc/src/App.vue b/web/frpc/src/App.vue index 0746c980fc8..2bfded92082 100644 --- a/web/frpc/src/App.vue +++ b/web/frpc/src/App.vue @@ -1,42 +1,50 @@ \ No newline at end of file + diff --git a/web/frpc/src/api/http.ts b/web/frpc/src/api/http.ts index e9a22f8dfd0..5f5b8c64e4f 100644 --- a/web/frpc/src/api/http.ts +++ b/web/frpc/src/api/http.ts @@ -19,7 +19,11 @@ async function request(url: string, options: RequestInit = {}): Promise { const response = await fetch(url, { ...defaultOptions, ...options }) if (!response.ok) { - throw new HTTPError(response.status, response.statusText, `HTTP ${response.status}`) + throw new HTTPError( + response.status, + response.statusText, + `HTTP ${response.status}`, + ) } // Handle empty response (e.g. 204 No Content) @@ -35,42 +39,54 @@ async function request(url: string, options: RequestInit = {}): Promise { } export const http = { - get: (url: string, options?: RequestInit) => request(url, { ...options, method: 'GET' }), + get: (url: string, options?: RequestInit) => + request(url, { ...options, method: 'GET' }), post: (url: string, body?: any, options?: RequestInit) => { const headers: HeadersInit = { ...options?.headers } let requestBody = body - if (body && typeof body === 'object' && !(body instanceof FormData) && !(body instanceof Blob)) { - if (!('Content-Type' in headers)) { - (headers as any)['Content-Type'] = 'application/json' - } - requestBody = JSON.stringify(body) + if ( + body && + typeof body === 'object' && + !(body instanceof FormData) && + !(body instanceof Blob) + ) { + if (!('Content-Type' in headers)) { + ;(headers as any)['Content-Type'] = 'application/json' + } + requestBody = JSON.stringify(body) } - return request(url, { - ...options, - method: 'POST', + return request(url, { + ...options, + method: 'POST', headers, - body: requestBody + body: requestBody, }) }, put: (url: string, body?: any, options?: RequestInit) => { const headers: HeadersInit = { ...options?.headers } let requestBody = body - if (body && typeof body === 'object' && !(body instanceof FormData) && !(body instanceof Blob)) { - if (!('Content-Type' in headers)) { - (headers as any)['Content-Type'] = 'application/json' - } - requestBody = JSON.stringify(body) + if ( + body && + typeof body === 'object' && + !(body instanceof FormData) && + !(body instanceof Blob) + ) { + if (!('Content-Type' in headers)) { + ;(headers as any)['Content-Type'] = 'application/json' + } + requestBody = JSON.stringify(body) } - return request(url, { - ...options, - method: 'PUT', + return request(url, { + ...options, + method: 'PUT', headers, - body: requestBody + body: requestBody, }) }, - delete: (url: string, options?: RequestInit) => request(url, { ...options, method: 'DELETE' }), -} \ No newline at end of file + delete: (url: string, options?: RequestInit) => + request(url, { ...options, method: 'DELETE' }), +} diff --git a/web/frpc/src/assets/css/custom.css b/web/frpc/src/assets/css/custom.css index 6ff997a5528..ed128996942 100644 --- a/web/frpc/src/assets/css/custom.css +++ b/web/frpc/src/assets/css/custom.css @@ -1,32 +1,9 @@ -.el-form-item span { - margin-left: 15px; -} - -.proxy-table-expand { - font-size: 0; -} - -.proxy-table-expand .el-form-item__label{ - width: 90px; - color: #99a9bf; -} - -.proxy-table-expand .el-form-item { - margin-right: 0; - margin-bottom: 0; - width: 50%; -} - -.el-table .el-table__expanded-cell { - padding: 20px 50px; -} - -/* Modern styles */ +/* Modern Base Styles */ * { box-sizing: border-box; } -/* Smooth transitions */ +/* Smooth transitions for Element Plus components */ .el-button, .el-card, .el-input, @@ -37,7 +14,7 @@ /* Card hover effects */ .el-card:hover { - box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08); } /* Better scrollbar */ @@ -60,16 +37,6 @@ background: #a8a8a8; } -/* Page headers */ -.el-page-header { - padding: 16px 0; -} - -.el-page-header__title { - font-size: 20px; - font-weight: 600; -} - /* Better form layouts */ .el-form-item { margin-bottom: 18px; @@ -87,3 +54,52 @@ padding-right: 10px !important; } } + +/* Input enhancements */ +.el-input__wrapper { + transition: all 0.2s ease; +} + +.el-input__wrapper:hover { + box-shadow: 0 0 0 1px var(--el-border-color-hover) inset; +} + +/* Button enhancements */ +.el-button { + font-weight: 500; +} + +/* Tag enhancements */ +.el-tag { + font-weight: 500; +} + +/* Card enhancements */ +.el-card__header { + padding: 16px 20px; + border-bottom: 1px solid var(--el-border-color-lighter); +} + +.el-card__body { + padding: 20px; +} + +/* Table enhancements */ +.el-table { + font-size: 14px; +} + +.el-table th { + font-weight: 600; +} + +/* Empty state */ +.el-empty__description { + margin-top: 16px; + font-size: 14px; +} + +/* Loading state */ +.el-loading-mask { + border-radius: 12px; +} diff --git a/web/frpc/src/assets/css/dark.css b/web/frpc/src/assets/css/dark.css index 557e7829cf0..7c118fc3883 100644 --- a/web/frpc/src/assets/css/dark.css +++ b/web/frpc/src/assets/css/dark.css @@ -1,11 +1,14 @@ +/* Dark Mode Theme */ html.dark { --el-bg-color: #1e1e2e; + --el-bg-color-page: #1a1a2e; + --el-bg-color-overlay: #27293d; --el-fill-color-blank: #1e1e2e; - background-color: #1e1e2e; + background-color: #1a1a2e; } html.dark body { - background-color: #1e1e2e; + background-color: #1a1a2e; color: #e5e7eb; } @@ -28,23 +31,50 @@ html.dark .el-card { border-color: #3a3d5c; } +html.dark .el-card__header { + border-bottom-color: #3a3d5c; +} + /* Dark mode inputs */ html.dark .el-input__wrapper { background-color: #27293d; - border-color: #3a3d5c; + box-shadow: 0 0 0 1px #3a3d5c inset; +} + +html.dark .el-input__wrapper:hover { + box-shadow: 0 0 0 1px #4a4d6c inset; +} + +html.dark .el-input__wrapper.is-focus { + box-shadow: 0 0 0 1px var(--el-color-primary) inset; } html.dark .el-input__inner { color: #e5e7eb; } +html.dark .el-input__inner::placeholder { + color: #6b7280; +} + +/* Dark mode textarea */ +html.dark .el-textarea__inner { + background-color: #1e1e2d; + border-color: #3a3d5c; + color: #e5e7eb; +} + +html.dark .el-textarea__inner::placeholder { + color: #6b7280; +} + /* Dark mode table */ html.dark .el-table { background-color: #27293d; color: #e5e7eb; } -html.dark .el-table th { +html.dark .el-table th.el-table__cell { background-color: #1e1e2e; color: #e5e7eb; } @@ -53,6 +83,98 @@ html.dark .el-table tr { background-color: #27293d; } -html.dark .el-table--striped .el-table__body tr.el-table__row--striped td { +html.dark .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell { background-color: #1e1e2e; } + +html.dark .el-table__row:hover > td.el-table__cell { + background-color: #2a2a3c !important; +} + +/* Dark mode tags */ +html.dark .el-tag--info { + background-color: #3a3d5c; + border-color: #3a3d5c; + color: #e5e7eb; +} + +/* Dark mode buttons */ +html.dark .el-button--default { + background-color: #27293d; + border-color: #3a3d5c; + color: #e5e7eb; +} + +html.dark .el-button--default:hover { + background-color: #2a2a3c; + border-color: #4a4d6c; + color: #fff; +} + +/* Dark mode select */ +html.dark .el-select .el-input__wrapper { + background-color: #27293d; +} + +html.dark .el-select-dropdown { + background-color: #27293d; + border-color: #3a3d5c; +} + +html.dark .el-select-dropdown__item { + color: #e5e7eb; +} + +html.dark .el-select-dropdown__item:hover { + background-color: #2a2a3c; +} + +/* Dark mode dialog */ +html.dark .el-dialog { + background-color: #27293d; +} + +html.dark .el-dialog__header { + border-bottom-color: #3a3d5c; +} + +html.dark .el-dialog__title { + color: #e5e7eb; +} + +html.dark .el-dialog__body { + color: #e5e7eb; +} + +/* Dark mode message box */ +html.dark .el-message-box { + background-color: #27293d; + border-color: #3a3d5c; +} + +html.dark .el-message-box__title { + color: #e5e7eb; +} + +html.dark .el-message-box__message { + color: #e5e7eb; +} + +/* Dark mode empty */ +html.dark .el-empty__description { + color: #9ca3af; +} + +/* Dark mode loading */ +html.dark .el-loading-mask { + background-color: rgba(30, 30, 46, 0.9); +} + +html.dark .el-loading-text { + color: #e5e7eb; +} + +/* Dark mode tooltip */ +html.dark .el-tooltip__trigger { + color: #e5e7eb; +} diff --git a/web/frpc/src/assets/icons/logo.svg b/web/frpc/src/assets/icons/logo.svg new file mode 100644 index 00000000000..fee4a82a394 --- /dev/null +++ b/web/frpc/src/assets/icons/logo.svg @@ -0,0 +1,15 @@ + + + + + + diff --git a/web/frpc/src/components/ProxyCard.vue b/web/frpc/src/components/ProxyCard.vue new file mode 100644 index 00000000000..70246f8c7ee --- /dev/null +++ b/web/frpc/src/components/ProxyCard.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/web/frpc/src/components/StatCard.vue b/web/frpc/src/components/StatCard.vue new file mode 100644 index 00000000000..7ceca5f6271 --- /dev/null +++ b/web/frpc/src/components/StatCard.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/web/frpc/src/main.ts b/web/frpc/src/main.ts index 4eb32bff722..e8ef7195c60 100644 --- a/web/frpc/src/main.ts +++ b/web/frpc/src/main.ts @@ -10,4 +10,4 @@ const app = createApp(App) app.use(router) -app.mount('#app') \ No newline at end of file +app.mount('#app') diff --git a/web/frpc/src/router/index.ts b/web/frpc/src/router/index.ts index 426d555e97c..bf4feb5ff4e 100644 --- a/web/frpc/src/router/index.ts +++ b/web/frpc/src/router/index.ts @@ -18,4 +18,4 @@ const router = createRouter({ ], }) -export default router \ No newline at end of file +export default router diff --git a/web/frpc/src/types/proxy.ts b/web/frpc/src/types/proxy.ts index d7e2d4bf66b..d768c3b8940 100644 --- a/web/frpc/src/types/proxy.ts +++ b/web/frpc/src/types/proxy.ts @@ -1,12 +1,12 @@ export interface ProxyStatus { - name: string - type: string - status: string - err: string - local_addr: string - plugin: string - remote_addr: string - [key: string]: any + name: string + type: string + status: string + err: string + local_addr: string + plugin: string + remote_addr: string + [key: string]: any } export type StatusResponse = Record diff --git a/web/frpc/src/utils/format.ts b/web/frpc/src/utils/format.ts index e7e72fcf3f9..11cd398f142 100644 --- a/web/frpc/src/utils/format.ts +++ b/web/frpc/src/utils/format.ts @@ -28,6 +28,6 @@ export function formatFileSize(bytes: number): string { // Prevent index out of bounds for extremely large numbers const unit = sizes[i] || sizes[sizes.length - 1] const val = bytes / Math.pow(k, i) - + return parseFloat(val.toFixed(2)) + ' ' + unit } diff --git a/web/frpc/src/views/ClientConfigure.vue b/web/frpc/src/views/ClientConfigure.vue index 9972e1a3c3f..c649b5c71bc 100644 --- a/web/frpc/src/views/ClientConfigure.vue +++ b/web/frpc/src/views/ClientConfigure.vue @@ -1,33 +1,120 @@ \ No newline at end of file + diff --git a/web/frpc/src/views/Overview.vue b/web/frpc/src/views/Overview.vue index 1d7cef1f94f..2cdbfd931a0 100644 --- a/web/frpc/src/views/Overview.vue +++ b/web/frpc/src/views/Overview.vue @@ -1,92 +1,132 @@ +const sidebarOpen = ref(false) - diff --git a/web/frpc/src/api/frpc.ts b/web/frpc/src/api/frpc.ts index 213c04fad2f..c7af90c0aa5 100644 --- a/web/frpc/src/api/frpc.ts +++ b/web/frpc/src/api/frpc.ts @@ -5,7 +5,7 @@ import type { ProxyDefinition, VisitorListResp, VisitorDefinition, -} from '../types/proxy' +} from '../types' export const getStatus = () => { return http.get('/api/status') @@ -23,6 +23,19 @@ export const reloadConfig = () => { return http.get('/api/reload') } +// Config lookup API (any source) +export const getProxyConfig = (name: string) => { + return http.get( + `/api/proxy/${encodeURIComponent(name)}/config`, + ) +} + +export const getVisitorConfig = (name: string) => { + return http.get( + `/api/visitor/${encodeURIComponent(name)}/config`, + ) +} + // Store API - Proxies export const listStoreProxies = () => { return http.get('/api/store/proxies') diff --git a/web/frpc/src/assets/css/_form-layout.scss b/web/frpc/src/assets/css/_form-layout.scss new file mode 100644 index 00000000000..a43fab6eff4 --- /dev/null +++ b/web/frpc/src/assets/css/_form-layout.scss @@ -0,0 +1,33 @@ +@use './mixins' as *; + +/* Shared form layout styles for proxy/visitor form sections */ +.field-row { + display: grid; + gap: 16px; + align-items: start; +} + +.field-row.two-col { + grid-template-columns: 1fr 1fr; +} + +.field-row.three-col { + grid-template-columns: 1fr 1fr 1fr; +} + +.field-grow { + min-width: 0; +} + +.switch-field :deep(.el-form-item__content) { + min-height: 32px; + display: flex; + align-items: center; +} + +@include mobile { + .field-row.two-col, + .field-row.three-col { + grid-template-columns: 1fr; + } +} diff --git a/web/frpc/src/assets/css/_index.scss b/web/frpc/src/assets/css/_index.scss new file mode 100644 index 00000000000..b70de87b2eb --- /dev/null +++ b/web/frpc/src/assets/css/_index.scss @@ -0,0 +1,2 @@ +@forward './variables'; +@forward './mixins'; diff --git a/web/frpc/src/assets/css/_mixins.scss b/web/frpc/src/assets/css/_mixins.scss new file mode 100644 index 00000000000..3861971bd05 --- /dev/null +++ b/web/frpc/src/assets/css/_mixins.scss @@ -0,0 +1,49 @@ +@use './variables' as vars; + +@mixin mobile { + @media (max-width: #{vars.$breakpoint-mobile - 1px}) { + @content; + } +} + +@mixin flex-center { + display: flex; + align-items: center; + justify-content: center; +} + +@mixin flex-column { + display: flex; + flex-direction: column; +} + +@mixin page-scroll { + height: 100%; + overflow-y: auto; + padding: vars.$spacing-xl 40px; + + > * { + max-width: 960px; + margin: 0 auto; + } + + @include mobile { + padding: vars.$spacing-xl; + } +} + +@mixin custom-scrollbar { + &::-webkit-scrollbar { + width: 6px; + height: 6px; + } + + &::-webkit-scrollbar-track { + background: transparent; + } + + &::-webkit-scrollbar-thumb { + background: #d1d1d1; + border-radius: 3px; + } +} diff --git a/web/frpc/src/assets/css/_variables.scss b/web/frpc/src/assets/css/_variables.scss new file mode 100644 index 00000000000..3df1ef193f8 --- /dev/null +++ b/web/frpc/src/assets/css/_variables.scss @@ -0,0 +1,61 @@ +// Typography +$font-size-xs: 11px; +$font-size-sm: 13px; +$font-size-md: 14px; +$font-size-lg: 15px; +$font-size-xl: 18px; + +$font-weight-normal: 400; +$font-weight-medium: 500; +$font-weight-semibold: 600; + +// Colors - Text +$color-text-primary: var(--color-text-primary); +$color-text-secondary: var(--color-text-secondary); +$color-text-muted: var(--color-text-muted); +$color-text-light: var(--color-text-light); + +// Colors - Background +$color-bg-primary: var(--color-bg-primary); +$color-bg-secondary: var(--color-bg-secondary); +$color-bg-tertiary: var(--color-bg-tertiary); +$color-bg-muted: var(--color-bg-muted); +$color-bg-hover: var(--color-bg-hover); +$color-bg-active: var(--color-bg-active); + +// Colors - Border +$color-border: var(--color-border); +$color-border-light: var(--color-border-light); +$color-border-lighter: var(--color-border-lighter); + +// Colors - Status +$color-primary: var(--color-primary); +$color-danger: var(--color-danger); +$color-danger-dark: var(--color-danger-dark); +$color-danger-light: var(--color-danger-light); + +// Colors - Button +$color-btn-primary: var(--color-btn-primary); +$color-btn-primary-hover: var(--color-btn-primary-hover); + +// Spacing +$spacing-xs: 4px; +$spacing-sm: 8px; +$spacing-md: 12px; +$spacing-lg: 16px; +$spacing-xl: 20px; + +// Border Radius +$radius-sm: 6px; +$radius-md: 8px; + +// Transitions +$transition-fast: 0.15s ease; +$transition-medium: 0.2s ease; + +// Layout +$header-height: 50px; +$sidebar-width: 200px; + +// Breakpoints +$breakpoint-mobile: 768px; diff --git a/web/frpc/src/assets/css/custom.css b/web/frpc/src/assets/css/custom.css deleted file mode 100644 index ed128996942..00000000000 --- a/web/frpc/src/assets/css/custom.css +++ /dev/null @@ -1,105 +0,0 @@ -/* Modern Base Styles */ -* { - box-sizing: border-box; -} - -/* Smooth transitions for Element Plus components */ -.el-button, -.el-card, -.el-input, -.el-select, -.el-tag { - transition: all 0.3s ease; -} - -/* Card hover effects */ -.el-card:hover { - box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08); -} - -/* Better scrollbar */ -::-webkit-scrollbar { - width: 8px; - height: 8px; -} - -::-webkit-scrollbar-track { - background: #f1f1f1; - border-radius: 4px; -} - -::-webkit-scrollbar-thumb { - background: #c1c1c1; - border-radius: 4px; -} - -::-webkit-scrollbar-thumb:hover { - background: #a8a8a8; -} - -/* Better form layouts */ -.el-form-item { - margin-bottom: 18px; -} - -/* Responsive adjustments */ -@media (max-width: 768px) { - .el-row { - margin-left: 0 !important; - margin-right: 0 !important; - } - - .el-col { - padding-left: 10px !important; - padding-right: 10px !important; - } -} - -/* Input enhancements */ -.el-input__wrapper { - transition: all 0.2s ease; -} - -.el-input__wrapper:hover { - box-shadow: 0 0 0 1px var(--el-border-color-hover) inset; -} - -/* Button enhancements */ -.el-button { - font-weight: 500; -} - -/* Tag enhancements */ -.el-tag { - font-weight: 500; -} - -/* Card enhancements */ -.el-card__header { - padding: 16px 20px; - border-bottom: 1px solid var(--el-border-color-lighter); -} - -.el-card__body { - padding: 20px; -} - -/* Table enhancements */ -.el-table { - font-size: 14px; -} - -.el-table th { - font-weight: 600; -} - -/* Empty state */ -.el-empty__description { - margin-top: 16px; - font-size: 14px; -} - -/* Loading state */ -.el-loading-mask { - border-radius: 12px; -} diff --git a/web/frpc/src/assets/css/dark.css b/web/frpc/src/assets/css/dark.css index 7c118fc3883..1d090aec5b1 100644 --- a/web/frpc/src/assets/css/dark.css +++ b/web/frpc/src/assets/css/dark.css @@ -1,48 +1,51 @@ -/* Dark Mode Theme */ +/* Dark mode styles */ html.dark { - --el-bg-color: #1e1e2e; - --el-bg-color-page: #1a1a2e; - --el-bg-color-overlay: #27293d; - --el-fill-color-blank: #1e1e2e; - background-color: #1a1a2e; + --el-bg-color: #212121; + --el-bg-color-page: #181818; + --el-bg-color-overlay: #303030; + --el-fill-color-blank: #212121; + --el-border-color: #404040; + --el-border-color-light: #353535; + --el-border-color-lighter: #2a2a2a; + --el-text-color-primary: #e5e7eb; + --el-text-color-secondary: #888888; + --el-text-color-placeholder: #afafaf; + background-color: #212121; + color-scheme: dark; +} + +/* Scrollbar */ +html.dark ::-webkit-scrollbar { + width: 6px; + height: 6px; } -html.dark body { - background-color: #1a1a2e; - color: #e5e7eb; -} - -/* Dark mode scrollbar */ html.dark ::-webkit-scrollbar-track { - background: #27293d; + background: #303030; } html.dark ::-webkit-scrollbar-thumb { - background: #3a3d5c; + background: #404040; + border-radius: 3px; } html.dark ::-webkit-scrollbar-thumb:hover { - background: #4a4d6c; -} - -/* Dark mode cards */ -html.dark .el-card { - background-color: #27293d; - border-color: #3a3d5c; + background: #505050; } -html.dark .el-card__header { - border-bottom-color: #3a3d5c; +/* Form */ +html.dark .el-form-item__label { + color: #e5e7eb; } -/* Dark mode inputs */ +/* Input */ html.dark .el-input__wrapper { - background-color: #27293d; - box-shadow: 0 0 0 1px #3a3d5c inset; + background: var(--color-bg-input); + box-shadow: 0 0 0 1px #404040 inset; } html.dark .el-input__wrapper:hover { - box-shadow: 0 0 0 1px #4a4d6c inset; + box-shadow: 0 0 0 1px #505050 inset; } html.dark .el-input__wrapper.is-focus { @@ -54,127 +57,137 @@ html.dark .el-input__inner { } html.dark .el-input__inner::placeholder { - color: #6b7280; + color: #afafaf; } -/* Dark mode textarea */ html.dark .el-textarea__inner { - background-color: #1e1e2d; - border-color: #3a3d5c; + background: var(--color-bg-input); + box-shadow: 0 0 0 1px #404040 inset; color: #e5e7eb; } -html.dark .el-textarea__inner::placeholder { - color: #6b7280; +html.dark .el-textarea__inner:hover { + box-shadow: 0 0 0 1px #505050 inset; } -/* Dark mode table */ -html.dark .el-table { - background-color: #27293d; - color: #e5e7eb; +html.dark .el-textarea__inner:focus { + box-shadow: 0 0 0 1px var(--el-color-primary) inset; } -html.dark .el-table th.el-table__cell { - background-color: #1e1e2e; - color: #e5e7eb; +/* Select */ +html.dark .el-select__wrapper { + background: var(--color-bg-input); + box-shadow: 0 0 0 1px #404040 inset; } -html.dark .el-table tr { - background-color: #27293d; +html.dark .el-select__wrapper:hover { + box-shadow: 0 0 0 1px #505050 inset; } -html.dark .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell { - background-color: #1e1e2e; +html.dark .el-select__selected-item { + color: #e5e7eb; } -html.dark .el-table__row:hover > td.el-table__cell { - background-color: #2a2a3c !important; +html.dark .el-select__placeholder { + color: #afafaf; } -/* Dark mode tags */ -html.dark .el-tag--info { - background-color: #3a3d5c; - border-color: #3a3d5c; - color: #e5e7eb; +html.dark .el-select-dropdown { + background: #303030; + border-color: #404040; } -/* Dark mode buttons */ -html.dark .el-button--default { - background-color: #27293d; - border-color: #3a3d5c; +html.dark .el-select-dropdown__item { color: #e5e7eb; } -html.dark .el-button--default:hover { - background-color: #2a2a3c; - border-color: #4a4d6c; - color: #fff; +html.dark .el-select-dropdown__item:hover { + background: #3a3a3a; } -/* Dark mode select */ -html.dark .el-select .el-input__wrapper { - background-color: #27293d; +html.dark .el-select-dropdown__item.is-selected { + color: var(--el-color-primary); } -html.dark .el-select-dropdown { - background-color: #27293d; - border-color: #3a3d5c; +html.dark .el-select-dropdown__item.is-disabled { + color: #666666; } -html.dark .el-select-dropdown__item { - color: #e5e7eb; +/* Tag */ +html.dark .el-tag--info { + background: #303030; + border-color: #404040; + color: #b0b0b0; } -html.dark .el-select-dropdown__item:hover { - background-color: #2a2a3c; +/* Button */ +html.dark .el-button--default { + background: #303030; + border-color: #404040; + color: #e5e7eb; } -/* Dark mode dialog */ -html.dark .el-dialog { - background-color: #27293d; +html.dark .el-button--default:hover { + background: #3a3a3a; + border-color: #505050; + color: #e5e7eb; } -html.dark .el-dialog__header { - border-bottom-color: #3a3d5c; +/* Card */ +html.dark .el-card { + background: #212121; + border-color: #353535; + color: #b0b0b0; } -html.dark .el-dialog__title { +html.dark .el-card__header { + border-bottom-color: #353535; color: #e5e7eb; } -html.dark .el-dialog__body { +/* Dialog */ +html.dark .el-dialog { + background: #212121; +} + +html.dark .el-dialog__title { color: #e5e7eb; } -/* Dark mode message box */ -html.dark .el-message-box { - background-color: #27293d; - border-color: #3a3d5c; +/* Message */ +html.dark .el-message { + background: #303030; + border-color: #404040; } -html.dark .el-message-box__title { - color: #e5e7eb; +html.dark .el-message--success { + background: #1e3d2e; + border-color: #3d6b4f; } -html.dark .el-message-box__message { - color: #e5e7eb; +html.dark .el-message--warning { + background: #3d3020; + border-color: #6b5020; } -/* Dark mode empty */ -html.dark .el-empty__description { - color: #9ca3af; +html.dark .el-message--error { + background: #3d2027; + border-color: #5c2d2d; } -/* Dark mode loading */ +/* Loading */ html.dark .el-loading-mask { - background-color: rgba(30, 30, 46, 0.9); + background-color: rgba(33, 33, 33, 0.9); } -html.dark .el-loading-text { - color: #e5e7eb; +/* Overlay */ +html.dark .el-overlay { + background-color: rgba(0, 0, 0, 0.6); } -/* Dark mode tooltip */ -html.dark .el-tooltip__trigger { - color: #e5e7eb; +/* Tooltip */ +html.dark .el-tooltip__popper { + background: #303030 !important; + border-color: #404040 !important; + color: #e5e7eb !important; } diff --git a/web/frpc/src/assets/css/var.css b/web/frpc/src/assets/css/var.css new file mode 100644 index 00000000000..388a0521fb2 --- /dev/null +++ b/web/frpc/src/assets/css/var.css @@ -0,0 +1,117 @@ +:root { + /* Text colors */ + --color-text-primary: #303133; + --color-text-secondary: #606266; + --color-text-muted: #909399; + --color-text-light: #c0c4cc; + --color-text-placeholder: #a8abb2; + + /* Background colors */ + --color-bg-primary: #ffffff; + --color-bg-secondary: #f9f9f9; + --color-bg-tertiary: #fafafa; + --color-bg-surface: #ffffff; + --color-bg-muted: #f4f4f5; + --color-bg-input: #ffffff; + --color-bg-hover: #efefef; + --color-bg-active: #eaeaea; + + /* Border colors */ + --color-border: #dcdfe6; + --color-border-light: #e4e7ed; + --color-border-lighter: #ebeef5; + --color-border-extra-light: #f2f6fc; + + /* Status colors */ + --color-primary: #409eff; + --color-primary-light: #ecf5ff; + --color-success: #67c23a; + --color-warning: #e6a23c; + --color-danger: #f56c6c; + --color-danger-dark: #c45656; + --color-danger-light: #fef0f0; + --color-info: #909399; + + /* Button colors */ + --color-btn-primary: #303133; + --color-btn-primary-hover: #4a4d5c; + + /* Element Plus mapping */ + --el-color-primary: var(--color-primary); + --el-color-success: var(--color-success); + --el-color-warning: var(--color-warning); + --el-color-danger: var(--color-danger); + --el-color-info: var(--color-info); + + --el-text-color-primary: var(--color-text-primary); + --el-text-color-regular: var(--color-text-secondary); + --el-text-color-secondary: var(--color-text-muted); + --el-text-color-placeholder: var(--color-text-placeholder); + + --el-bg-color: var(--color-bg-primary); + --el-bg-color-page: var(--color-bg-secondary); + --el-bg-color-overlay: var(--color-bg-primary); + + --el-border-color: var(--color-border); + --el-border-color-light: var(--color-border-light); + --el-border-color-lighter: var(--color-border-lighter); + --el-border-color-extra-light: var(--color-border-extra-light); + + --el-fill-color-blank: var(--color-bg-primary); + --el-fill-color-light: var(--color-bg-tertiary); + --el-fill-color: var(--color-bg-tertiary); + --el-fill-color-dark: var(--color-bg-hover); + --el-fill-color-darker: var(--color-bg-active); + + /* Input */ + --el-input-bg-color: var(--color-bg-input); + --el-input-border-color: var(--color-border); + --el-input-hover-border-color: var(--color-border-light); + + /* Dialog */ + --el-dialog-bg-color: var(--color-bg-primary); + --el-overlay-color: rgba(0, 0, 0, 0.5); +} + +html.dark { + /* Text colors */ + --color-text-primary: #e5e7eb; + --color-text-secondary: #b0b0b0; + --color-text-muted: #888888; + --color-text-light: #666666; + --color-text-placeholder: #afafaf; + + /* Background colors */ + --color-bg-primary: #212121; + --color-bg-secondary: #181818; + --color-bg-tertiary: #303030; + --color-bg-surface: #303030; + --color-bg-muted: #303030; + --color-bg-input: #2f2f2f; + --color-bg-hover: #3a3a3a; + --color-bg-active: #454545; + + /* Border colors */ + --color-border: #404040; + --color-border-light: #353535; + --color-border-lighter: #2a2a2a; + --color-border-extra-light: #222222; + + /* Status colors */ + --color-primary: #409eff; + --color-danger: #f87171; + --color-danger-dark: #f87171; + --color-danger-light: #3d2027; + --color-info: #888888; + + /* Button colors */ + --color-btn-primary: #404040; + --color-btn-primary-hover: #505050; + + /* Dark overrides */ + --el-text-color-regular: var(--color-text-primary); + --el-overlay-color: rgba(0, 0, 0, 0.7); + + background-color: #181818; + color-scheme: dark; +} diff --git a/web/frpc/src/components/ActionButton.vue b/web/frpc/src/components/ActionButton.vue new file mode 100644 index 00000000000..6bbaae828e1 --- /dev/null +++ b/web/frpc/src/components/ActionButton.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/web/frpc/src/components/BaseDialog.vue b/web/frpc/src/components/BaseDialog.vue new file mode 100644 index 00000000000..b1e85b5bf39 --- /dev/null +++ b/web/frpc/src/components/BaseDialog.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/web/frpc/src/components/ConfigField.vue b/web/frpc/src/components/ConfigField.vue new file mode 100644 index 00000000000..a6c2cdd40bc --- /dev/null +++ b/web/frpc/src/components/ConfigField.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/web/frpc/src/components/ConfigSection.vue b/web/frpc/src/components/ConfigSection.vue new file mode 100644 index 00000000000..1a795afb932 --- /dev/null +++ b/web/frpc/src/components/ConfigSection.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/web/frpc/src/components/ConfirmDialog.vue b/web/frpc/src/components/ConfirmDialog.vue new file mode 100644 index 00000000000..cb23900e9db --- /dev/null +++ b/web/frpc/src/components/ConfirmDialog.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/web/frpc/src/components/FilterDropdown.vue b/web/frpc/src/components/FilterDropdown.vue new file mode 100644 index 00000000000..a4db62db7ea --- /dev/null +++ b/web/frpc/src/components/FilterDropdown.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/web/frpc/src/components/KeyValueEditor.vue b/web/frpc/src/components/KeyValueEditor.vue index 3472ebb4c61..9b4676703b8 100644 --- a/web/frpc/src/components/KeyValueEditor.vue +++ b/web/frpc/src/components/KeyValueEditor.vue @@ -1,42 +1,51 @@ @@ -50,11 +59,13 @@ interface Props { modelValue: KVEntry[] keyPlaceholder?: string valuePlaceholder?: string + readonly?: boolean } const props = withDefaults(defineProps(), { keyPlaceholder: 'Key', valuePlaceholder: 'Value', + readonly: false, }) const emit = defineEmits<{ @@ -129,25 +140,45 @@ html.dark .kv-remove-btn:hover { display: inline-flex; align-items: center; gap: 6px; - padding: 6px 14px; - border: 1px dashed var(--el-border-color); - border-radius: 8px; + padding: 5px 12px; + border: 1px solid var(--color-border); + border-radius: 6px; background: transparent; - color: var(--el-text-color-secondary); + color: var(--color-text-secondary); font-size: 13px; cursor: pointer; - transition: all 0.2s; + transition: all 0.15s; align-self: flex-start; } .kv-add-btn svg { - width: 14px; - height: 14px; + width: 13px; + height: 13px; } .kv-add-btn:hover { - color: var(--el-color-primary); - border-color: var(--el-color-primary); - background: var(--el-color-primary-light-9); + background: var(--color-bg-hover); +} + +.kv-empty { + color: var(--el-text-color-secondary); + font-size: 13px; +} + +.kv-readonly-row { + display: flex; + gap: 8px; + padding: 4px 0; + font-size: 13px; +} + +.kv-readonly-key { + color: var(--el-text-color-secondary); + min-width: 100px; +} + +.kv-readonly-value { + color: var(--el-text-color-primary); + font-family: ui-monospace, SFMono-Regular, Menlo, monospace; } diff --git a/web/frpc/src/components/PopoverMenu.vue b/web/frpc/src/components/PopoverMenu.vue new file mode 100644 index 00000000000..8abd91ed78b --- /dev/null +++ b/web/frpc/src/components/PopoverMenu.vue @@ -0,0 +1,303 @@ + + + + + + + + + diff --git a/web/frpc/src/components/PopoverMenuItem.vue b/web/frpc/src/components/PopoverMenuItem.vue new file mode 100644 index 00000000000..8df1e49b9c4 --- /dev/null +++ b/web/frpc/src/components/PopoverMenuItem.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/web/frpc/src/components/ProxyCard.vue b/web/frpc/src/components/ProxyCard.vue index f253ae15b9f..9269c3a14dc 100644 --- a/web/frpc/src/components/ProxyCard.vue +++ b/web/frpc/src/components/ProxyCard.vue @@ -1,104 +1,49 @@ - diff --git a/web/frpc/src/views/Overview.vue b/web/frpc/src/views/Overview.vue deleted file mode 100644 index c8dfcdbab06..00000000000 --- a/web/frpc/src/views/Overview.vue +++ /dev/null @@ -1,1160 +0,0 @@ - - - - - diff --git a/web/frpc/src/views/ProxyDetail.vue b/web/frpc/src/views/ProxyDetail.vue new file mode 100644 index 00000000000..d87b72e85e7 --- /dev/null +++ b/web/frpc/src/views/ProxyDetail.vue @@ -0,0 +1,303 @@ + + + + + diff --git a/web/frpc/src/views/ProxyEdit.vue b/web/frpc/src/views/ProxyEdit.vue index e94dce880de..04183d2ccd0 100644 --- a/web/frpc/src/views/ProxyEdit.vue +++ b/web/frpc/src/views/ProxyEdit.vue @@ -1,772 +1,71 @@ - - - diff --git a/web/frpc/src/views/ProxyList.vue b/web/frpc/src/views/ProxyList.vue new file mode 100644 index 00000000000..5ac0246374f --- /dev/null +++ b/web/frpc/src/views/ProxyList.vue @@ -0,0 +1,439 @@ + + + + + diff --git a/web/frpc/src/views/VisitorDetail.vue b/web/frpc/src/views/VisitorDetail.vue new file mode 100644 index 00000000000..5816a373b05 --- /dev/null +++ b/web/frpc/src/views/VisitorDetail.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/web/frpc/src/views/VisitorEdit.vue b/web/frpc/src/views/VisitorEdit.vue index 429ed4ad190..6a25785d8d0 100644 --- a/web/frpc/src/views/VisitorEdit.vue +++ b/web/frpc/src/views/VisitorEdit.vue @@ -1,16 +1,18 @@ - - - diff --git a/web/frpc/src/views/VisitorList.vue b/web/frpc/src/views/VisitorList.vue new file mode 100644 index 00000000000..b856c59ee96 --- /dev/null +++ b/web/frpc/src/views/VisitorList.vue @@ -0,0 +1,371 @@ + + + + + diff --git a/web/frpc/vite.config.mts b/web/frpc/vite.config.mts index cb8de991f6d..39eb4d17ce9 100644 --- a/web/frpc/vite.config.mts +++ b/web/frpc/vite.config.mts @@ -27,6 +27,14 @@ export default defineConfig({ '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, + css: { + preprocessorOptions: { + scss: { + api: 'modern', + additionalData: `@use "@/assets/css/_index.scss" as *;`, + }, + }, + }, build: { assetsDir: '', chunkSizeWarningLimit: 1000, From 6cdef90113aafd2a85cf5aa885bcb9a2bdcbfa59 Mon Sep 17 00:00:00 2001 From: fatedier Date: Mon, 16 Mar 2026 23:22:42 +0800 Subject: [PATCH 352/444] web: bump dev dependencies in frpc and frps package-lock.json (#5239) --- .golangci.yml | 2 ++ web/frpc/package-lock.json | 42 +++++++++++++++++++------------------- web/frps/package-lock.json | 42 +++++++++++++++++++------------------- 3 files changed, 44 insertions(+), 42 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 4a8c92ec811..892227450b1 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -90,6 +90,7 @@ linters: - third_party$ - builtin$ - examples$ + - node_modules formatters: enable: - gci @@ -112,6 +113,7 @@ formatters: - third_party$ - builtin$ - examples$ + - node_modules issues: max-issues-per-linter: 0 max-same-issues: 0 diff --git a/web/frpc/package-lock.json b/web/frpc/package-lock.json index 3ee94d8b3fd..9e857ee8480 100644 --- a/web/frpc/package-lock.json +++ b/web/frpc/package-lock.json @@ -1660,16 +1660,6 @@ "win32" ] }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -3958,9 +3948,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", + "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", "dev": true, "license": "ISC" }, @@ -4302,9 +4292,9 @@ } }, "node_modules/immutable": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", - "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", + "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==", "dev": true, "license": "MIT" }, @@ -6135,6 +6125,16 @@ "@parcel/watcher": "^2.4.1" } }, + "node_modules/sax": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", + "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", @@ -6558,19 +6558,19 @@ } }, "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", "dev": true, "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", - "picocolors": "^1.0.0" + "picocolors": "^1.0.0", + "sax": "^1.5.0" }, "bin": { "svgo": "bin/svgo" diff --git a/web/frps/package-lock.json b/web/frps/package-lock.json index 287498dd13b..fb8f1e6be26 100644 --- a/web/frps/package-lock.json +++ b/web/frps/package-lock.json @@ -1659,16 +1659,6 @@ "win32" ] }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -3903,9 +3893,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", + "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", "dev": true, "license": "ISC" }, @@ -4241,9 +4231,9 @@ } }, "node_modules/immutable": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", - "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", + "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==", "dev": true, "license": "MIT" }, @@ -6020,6 +6010,16 @@ "@parcel/watcher": "^2.4.1" } }, + "node_modules/sax": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", + "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", @@ -6422,19 +6422,19 @@ } }, "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", "dev": true, "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", - "picocolors": "^1.0.0" + "picocolors": "^1.0.0", + "sax": "^1.5.0" }, "bin": { "svgo": "bin/svgo" From 38a71a6803eec7040891a006f3d7a01bbfda9856 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 20 Mar 2026 03:33:44 +0800 Subject: [PATCH 353/444] web/frps: redesign frps dashboard with sidebar nav, responsive layout, and shared component workspace (#5246) --- .gitignore | 2 + web/frpc/Makefile | 2 +- web/frpc/components.d.ts | 6 - web/frpc/src/components/ConfigField.vue | 4 +- web/frpc/src/components/ProxyCard.vue | 6 +- web/frpc/src/views/ClientConfigure.vue | 7 +- web/frpc/src/views/ProxyDetail.vue | 2 +- web/frpc/src/views/ProxyEdit.vue | 7 +- web/frpc/src/views/ProxyList.vue | 13 +- web/frpc/src/views/VisitorDetail.vue | 2 +- web/frpc/src/views/VisitorEdit.vue | 7 +- web/frpc/src/views/VisitorList.vue | 16 +- web/frpc/tsconfig.json | 8 +- web/frpc/vite.config.mts | 8 +- web/frps/Makefile | 2 +- web/frps/components.d.ts | 5 +- web/frps/package-lock.json | 7646 ----------------- web/frps/src/App.vue | 475 +- web/frps/src/assets/css/dark.css | 184 +- web/frps/src/assets/css/var.css | 109 + web/frps/src/composables/useResponsive.ts | 8 + web/frps/src/main.ts | 2 +- web/frps/src/views/Proxies.vue | 139 +- web/frps/src/views/ProxyDetail.vue | 302 +- web/frps/tsconfig.json | 8 +- web/frps/vite.config.mts | 14 + web/{frpc => }/package-lock.json | 885 +- web/package.json | 5 + .../components/ActionButton.vue | 0 .../src => shared}/components/BaseDialog.vue | 9 +- .../components/ConfirmDialog.vue | 5 +- .../components/FilterDropdown.vue | 4 +- .../src => shared}/components/PopoverMenu.vue | 0 .../components/PopoverMenuItem.vue | 0 web/shared/css/_index.scss | 2 + web/shared/css/_mixins.scss | 49 + web/shared/css/_variables.scss | 61 + web/shared/package.json | 4 + 38 files changed, 1472 insertions(+), 8536 deletions(-) delete mode 100644 web/frps/package-lock.json create mode 100644 web/frps/src/assets/css/var.css create mode 100644 web/frps/src/composables/useResponsive.ts rename web/{frpc => }/package-lock.json (92%) create mode 100644 web/package.json rename web/{frpc/src => shared}/components/ActionButton.vue (100%) rename web/{frpc/src => shared}/components/BaseDialog.vue (93%) rename web/{frpc/src => shared}/components/ConfirmDialog.vue (92%) rename web/{frpc/src => shared}/components/FilterDropdown.vue (95%) rename web/{frpc/src => shared}/components/PopoverMenu.vue (100%) rename web/{frpc/src => shared}/components/PopoverMenuItem.vue (100%) create mode 100644 web/shared/css/_index.scss create mode 100644 web/shared/css/_mixins.scss create mode 100644 web/shared/css/_variables.scss create mode 100644 web/shared/package.json diff --git a/.gitignore b/.gitignore index 161c114ef56..1054d93fe49 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,8 @@ dist/ client.crt client.key +node_modules/ + # Cache *.swp diff --git a/web/frpc/Makefile b/web/frpc/Makefile index 6d2bdcf849f..adf015e50a2 100644 --- a/web/frpc/Makefile +++ b/web/frpc/Makefile @@ -1,7 +1,7 @@ .PHONY: dist install build preview lint install: - @npm install + @cd .. && npm install build: install @npm run build diff --git a/web/frpc/components.d.ts b/web/frpc/components.d.ts index 4236f4602e2..c58d0bcab48 100644 --- a/web/frpc/components.d.ts +++ b/web/frpc/components.d.ts @@ -7,11 +7,8 @@ export {} declare module 'vue' { export interface GlobalComponents { - ActionButton: typeof import('./src/components/ActionButton.vue')['default'] - BaseDialog: typeof import('./src/components/BaseDialog.vue')['default'] ConfigField: typeof import('./src/components/ConfigField.vue')['default'] ConfigSection: typeof import('./src/components/ConfigSection.vue')['default'] - ConfirmDialog: typeof import('./src/components/ConfirmDialog.vue')['default'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] @@ -21,10 +18,7 @@ declare module 'vue' { ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] - FilterDropdown: typeof import('./src/components/FilterDropdown.vue')['default'] KeyValueEditor: typeof import('./src/components/KeyValueEditor.vue')['default'] - PopoverMenu: typeof import('./src/components/PopoverMenu.vue')['default'] - PopoverMenuItem: typeof import('./src/components/PopoverMenuItem.vue')['default'] ProxyAuthSection: typeof import('./src/components/proxy-form/ProxyAuthSection.vue')['default'] ProxyBackendSection: typeof import('./src/components/proxy-form/ProxyBackendSection.vue')['default'] ProxyBaseSection: typeof import('./src/components/proxy-form/ProxyBaseSection.vue')['default'] diff --git a/web/frpc/src/components/ConfigField.vue b/web/frpc/src/components/ConfigField.vue index a6c2cdd40bc..27719847a2b 100644 --- a/web/frpc/src/components/ConfigField.vue +++ b/web/frpc/src/components/ConfigField.vue @@ -115,8 +115,8 @@ import { computed } from 'vue' import KeyValueEditor from './KeyValueEditor.vue' import StringListEditor from './StringListEditor.vue' -import PopoverMenu from './PopoverMenu.vue' -import PopoverMenuItem from './PopoverMenuItem.vue' +import PopoverMenu from '@shared/components/PopoverMenu.vue' +import PopoverMenuItem from '@shared/components/PopoverMenuItem.vue' const props = withDefaults( defineProps<{ diff --git a/web/frpc/src/components/ProxyCard.vue b/web/frpc/src/components/ProxyCard.vue index 9269c3a14dc..93f815a6a65 100644 --- a/web/frpc/src/components/ProxyCard.vue +++ b/web/frpc/src/components/ProxyCard.vue @@ -53,9 +53,9 @@ diff --git a/web/frps/tsconfig.json b/web/frps/tsconfig.json index 9e03e60496f..8795fb5cec2 100644 --- a/web/frps/tsconfig.json +++ b/web/frps/tsconfig.json @@ -18,8 +18,12 @@ "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true + "noFallthroughCasesInSwitch": true, + "paths": { + "@/*": ["./src/*"], + "@shared/*": ["../shared/*"] + } }, - "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"], + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "../shared/**/*.ts", "../shared/**/*.vue"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/web/frps/vite.config.mts b/web/frps/vite.config.mts index 812cd10b894..91f099f83e5 100644 --- a/web/frps/vite.config.mts +++ b/web/frps/vite.config.mts @@ -25,6 +25,20 @@ export default defineConfig({ resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), + '@shared': fileURLToPath(new URL('../shared', import.meta.url)), + }, + dedupe: ['vue', 'element-plus', '@element-plus/icons-vue'], + modules: [ + fileURLToPath(new URL('../node_modules', import.meta.url)), + 'node_modules', + ], + }, + css: { + preprocessorOptions: { + scss: { + api: 'modern', + additionalData: `@use "@shared/css/_index.scss" as *;`, + }, }, }, build: { diff --git a/web/frpc/package-lock.json b/web/package-lock.json similarity index 92% rename from web/frpc/package-lock.json rename to web/package-lock.json index 9e857ee8480..15c6f2d9cce 100644 --- a/web/frpc/package-lock.json +++ b/web/package-lock.json @@ -1,10 +1,17 @@ { - "name": "frpc-dashboard", - "version": "0.0.1", + "name": "frp-web", "lockfileVersion": 3, "requires": true, "packages": { "": { + "name": "frp-web", + "workspaces": [ + "shared", + "frpc", + "frps" + ] + }, + "frpc": { "name": "frpc-dashboard", "version": "0.0.1", "dependencies": { @@ -35,6 +42,36 @@ "vue-tsc": "^3.2.2" } }, + "frps": { + "name": "frps-dashboard", + "version": "0.0.1", + "dependencies": { + "element-plus": "^2.13.0", + "vue": "^3.5.26", + "vue-router": "^4.6.4" + }, + "devDependencies": { + "@types/node": "24", + "@vitejs/plugin-vue": "^6.0.3", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.7.0", + "@vue/tsconfig": "^0.8.1", + "@vueuse/core": "^14.1.0", + "eslint": "^9.39.0", + "eslint-plugin-vue": "^9.33.0", + "npm-run-all": "^4.1.5", + "prettier": "^3.7.4", + "sass": "^1.97.2", + "terser": "^5.44.1", + "typescript": "^5.9.3", + "unplugin-auto-import": "^0.17.5", + "unplugin-element-plus": "^0.11.2", + "unplugin-vue-components": "^0.26.0", + "vite": "^7.3.0", + "vite-svg-loader": "^5.1.0", + "vue-tsc": "^3.2.2" + } + }, "node_modules/@antfu/utils": { "version": "0.7.10", "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", @@ -64,9 +101,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "license": "MIT", "dependencies": { "@babel/types": "^7.29.0" @@ -92,12 +129,12 @@ } }, "node_modules/@ctrl/tinycolor": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", - "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz", + "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/@element-plus/icons-vue": { @@ -110,9 +147,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", - "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", + "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==", "cpu": [ "ppc64" ], @@ -127,9 +164,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", - "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz", + "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==", "cpu": [ "arm" ], @@ -144,9 +181,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", - "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz", + "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==", "cpu": [ "arm64" ], @@ -161,9 +198,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", - "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz", + "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==", "cpu": [ "x64" ], @@ -178,9 +215,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", - "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz", + "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==", "cpu": [ "arm64" ], @@ -195,9 +232,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", - "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz", + "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==", "cpu": [ "x64" ], @@ -212,9 +249,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", - "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz", + "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==", "cpu": [ "arm64" ], @@ -229,9 +266,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", - "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz", + "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==", "cpu": [ "x64" ], @@ -246,9 +283,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", - "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz", + "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==", "cpu": [ "arm" ], @@ -263,9 +300,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", - "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz", + "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==", "cpu": [ "arm64" ], @@ -280,9 +317,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", - "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz", + "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==", "cpu": [ "ia32" ], @@ -297,9 +334,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", - "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz", + "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==", "cpu": [ "loong64" ], @@ -314,9 +351,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", - "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz", + "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==", "cpu": [ "mips64el" ], @@ -331,9 +368,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", - "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz", + "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==", "cpu": [ "ppc64" ], @@ -348,9 +385,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", - "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz", + "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==", "cpu": [ "riscv64" ], @@ -365,9 +402,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", - "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz", + "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==", "cpu": [ "s390x" ], @@ -382,9 +419,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", - "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz", + "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==", "cpu": [ "x64" ], @@ -399,9 +436,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", - "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz", + "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==", "cpu": [ "arm64" ], @@ -416,9 +453,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", - "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz", + "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==", "cpu": [ "x64" ], @@ -433,9 +470,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", - "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz", + "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==", "cpu": [ "arm64" ], @@ -450,9 +487,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", - "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz", + "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==", "cpu": [ "x64" ], @@ -467,9 +504,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", - "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", + "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", "cpu": [ "arm64" ], @@ -484,9 +521,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", - "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", + "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", "cpu": [ "x64" ], @@ -501,9 +538,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", - "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", + "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", "cpu": [ "arm64" ], @@ -518,9 +555,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", - "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", + "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", "cpu": [ "ia32" ], @@ -535,9 +572,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", - "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", + "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", "cpu": [ "x64" ], @@ -581,15 +618,15 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -653,9 +690,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.4.tgz", - "integrity": "sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", "dependencies": { @@ -666,7 +703,7 @@ "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", - "minimatch": "^3.1.3", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { @@ -708,9 +745,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.3", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.3.tgz", - "integrity": "sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, "license": "MIT", "engines": { @@ -745,28 +782,28 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", - "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.10" + "@floating-ui/utils": "^0.2.11" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", - "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.4", - "@floating-ui/utils": "^0.2.10" + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", - "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", "license": "MIT" }, "node_modules/@humanfs/core": { @@ -919,6 +956,76 @@ "node": ">= 8" } }, + "node_modules/@nuxt/kit": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.2.tgz", + "integrity": "sha512-Bd6m6mrDrqpBEbX+g0rc66/ALd1sxlgdx5nfK9MAYO0yKLTOSK7McSYz1KcOYn3LQFCXOWfvXwaqih/b+REI1g==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^3.0.0", + "scule": "^1.3.0", + "semver": "^7.7.4", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/kit/node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@nuxt/kit/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@nuxt/kit/node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, "node_modules/@parcel/watcher": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", @@ -1690,9 +1797,9 @@ } }, "node_modules/@types/node": { - "version": "24.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.11.0.tgz", - "integrity": "sha512-fPxQqz4VTgPI/IQ+lj9r0h+fDR66bzoeMGHp8ASee+32OSGIkeASsoZuJixsQoVef1QJbeubcPBxKk22QVoWdw==", + "version": "24.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz", + "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1707,17 +1814,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz", - "integrity": "sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.1.tgz", + "integrity": "sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/type-utils": "8.56.1", - "@typescript-eslint/utils": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.57.1", + "@typescript-eslint/type-utils": "8.57.1", + "@typescript-eslint/utils": "8.57.1", + "@typescript-eslint/visitor-keys": "8.57.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -1730,7 +1837,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.56.1", + "@typescript-eslint/parser": "^8.57.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -1746,16 +1853,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz", - "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.1.tgz", + "integrity": "sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.57.1", + "@typescript-eslint/types": "8.57.1", + "@typescript-eslint/typescript-estree": "8.57.1", + "@typescript-eslint/visitor-keys": "8.57.1", "debug": "^4.4.3" }, "engines": { @@ -1771,14 +1878,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz", - "integrity": "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.1.tgz", + "integrity": "sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.56.1", - "@typescript-eslint/types": "^8.56.1", + "@typescript-eslint/tsconfig-utils": "^8.57.1", + "@typescript-eslint/types": "^8.57.1", "debug": "^4.4.3" }, "engines": { @@ -1793,14 +1900,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz", - "integrity": "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.1.tgz", + "integrity": "sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1" + "@typescript-eslint/types": "8.57.1", + "@typescript-eslint/visitor-keys": "8.57.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1811,9 +1918,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz", - "integrity": "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.1.tgz", + "integrity": "sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==", "dev": true, "license": "MIT", "engines": { @@ -1828,15 +1935,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz", - "integrity": "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.1.tgz", + "integrity": "sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/utils": "8.56.1", + "@typescript-eslint/types": "8.57.1", + "@typescript-eslint/typescript-estree": "8.57.1", + "@typescript-eslint/utils": "8.57.1", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -1853,9 +1960,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz", - "integrity": "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.1.tgz", + "integrity": "sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==", "dev": true, "license": "MIT", "engines": { @@ -1867,16 +1974,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz", - "integrity": "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.1.tgz", + "integrity": "sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.56.1", - "@typescript-eslint/tsconfig-utils": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/project-service": "8.57.1", + "@typescript-eslint/tsconfig-utils": "8.57.1", + "@typescript-eslint/types": "8.57.1", + "@typescript-eslint/visitor-keys": "8.57.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -1895,16 +2002,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.1.tgz", - "integrity": "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.1.tgz", + "integrity": "sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1" + "@typescript-eslint/scope-manager": "8.57.1", + "@typescript-eslint/types": "8.57.1", + "@typescript-eslint/typescript-estree": "8.57.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1919,13 +2026,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz", - "integrity": "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.1.tgz", + "integrity": "sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/types": "8.57.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -1950,9 +2057,9 @@ } }, "node_modules/@vitejs/plugin-vue": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.4.tgz", - "integrity": "sha512-uM5iXipgYIn13UUQCZNdWkYk+sysBeA97d5mHsAoAt1u/wpN3+zxOmsVJWosuzX+IMGRzeYUNytztrYznboIkQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.5.tgz", + "integrity": "sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==", "dev": true, "license": "MIT", "dependencies": { @@ -1962,7 +2069,7 @@ "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", "vue": "^3.2.25" } }, @@ -1996,13 +2103,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.29.tgz", - "integrity": "sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.30.tgz", + "integrity": "sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==", "license": "MIT", "dependencies": { "@babel/parser": "^7.29.0", - "@vue/shared": "3.5.29", + "@vue/shared": "3.5.30", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" @@ -2021,47 +2128,50 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.29.tgz", - "integrity": "sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.30.tgz", + "integrity": "sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.29", - "@vue/shared": "3.5.29" + "@vue/compiler-core": "3.5.30", + "@vue/shared": "3.5.30" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.29.tgz", - "integrity": "sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.30.tgz", + "integrity": "sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==", "license": "MIT", "dependencies": { "@babel/parser": "^7.29.0", - "@vue/compiler-core": "3.5.29", - "@vue/compiler-dom": "3.5.29", - "@vue/compiler-ssr": "3.5.29", - "@vue/shared": "3.5.29", + "@vue/compiler-core": "3.5.30", + "@vue/compiler-dom": "3.5.30", + "@vue/compiler-ssr": "3.5.30", + "@vue/shared": "3.5.30", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", - "postcss": "^8.5.6", + "postcss": "^8.5.8", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.29.tgz", - "integrity": "sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.30.tgz", + "integrity": "sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.29", - "@vue/shared": "3.5.29" + "@vue/compiler-dom": "3.5.30", + "@vue/shared": "3.5.30" } }, "node_modules/@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "license": "MIT" + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", + "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.9" + } }, "node_modules/@vue/devtools-kit": { "version": "7.7.9", @@ -2078,12 +2188,6 @@ "superjson": "^2.2.2" } }, - "node_modules/@vue/devtools-kit/node_modules/perfect-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", - "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", - "license": "MIT" - }, "node_modules/@vue/devtools-shared": { "version": "7.7.9", "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", @@ -2135,9 +2239,9 @@ } }, "node_modules/@vue/language-core": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.5.tgz", - "integrity": "sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.6.tgz", + "integrity": "sha512-xYYYX3/aVup576tP/23sEUpgiEnujrENaoNRbaozC1/MA9I6EGFQRJb4xrt/MmUCAGlxTKL2RmT8JLTPqagCkg==", "dev": true, "license": "MIT", "dependencies": { @@ -2164,53 +2268,53 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.29.tgz", - "integrity": "sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.30.tgz", + "integrity": "sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.29" + "@vue/shared": "3.5.30" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.29.tgz", - "integrity": "sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.30.tgz", + "integrity": "sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.29", - "@vue/shared": "3.5.29" + "@vue/reactivity": "3.5.30", + "@vue/shared": "3.5.30" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.29.tgz", - "integrity": "sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.30.tgz", + "integrity": "sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.29", - "@vue/runtime-core": "3.5.29", - "@vue/shared": "3.5.29", + "@vue/reactivity": "3.5.30", + "@vue/runtime-core": "3.5.30", + "@vue/shared": "3.5.30", "csstype": "^3.2.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.29.tgz", - "integrity": "sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.30.tgz", + "integrity": "sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.29", - "@vue/shared": "3.5.29" + "@vue/compiler-ssr": "3.5.30", + "@vue/shared": "3.5.30" }, "peerDependencies": { - "vue": "3.5.29" + "vue": "3.5.30" } }, "node_modules/@vue/shared": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.29.tgz", - "integrity": "sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.30.tgz", + "integrity": "sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==", "license": "MIT" }, "node_modules/@vue/tsconfig": { @@ -2552,6 +2656,13 @@ "dev": true, "license": "MIT" }, + "node_modules/c12/node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "dev": true, + "license": "MIT" + }, "node_modules/c12/node_modules/pkg-types": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", @@ -2927,9 +3038,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", "license": "MIT" }, "node_modules/debug": { @@ -3106,18 +3217,18 @@ } }, "node_modules/element-plus": { - "version": "2.13.3", - "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.13.3.tgz", - "integrity": "sha512-RwLVtFpeHjZ4UCtHxVi1/sGR2cr2xOL7hqWa7qJc/+gdO6QavVG8Nw1C647obCb3tIg2ztMhNbIIjZUv+6z1og==", + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.13.5.tgz", + "integrity": "sha512-dmY24fhSREfZN/PuUt0YZigMso7wWzl+B5o+YKNN15kQIn/0hzamsPU+ebj9SES0IbUqsLX1wkrzYmzU8VrVOQ==", "license": "MIT", "dependencies": { - "@ctrl/tinycolor": "^3.4.1", + "@ctrl/tinycolor": "^4.2.0", "@element-plus/icons-vue": "^2.3.2", "@floating-ui/dom": "^1.0.1", "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", "@types/lodash": "^4.17.20", "@types/lodash-es": "^4.17.12", - "@vueuse/core": "^10.11.0", + "@vueuse/core": "12.0.0", "async-validator": "^4.2.5", "dayjs": "^1.11.19", "lodash": "^4.17.23", @@ -3137,91 +3248,39 @@ "license": "MIT" }, "node_modules/element-plus/node_modules/@vueuse/core": { - "version": "10.11.1", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz", - "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.0.0.tgz", + "integrity": "sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==", "license": "MIT", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.11.1", - "@vueuse/shared": "10.11.1", - "vue-demi": ">=0.14.8" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/element-plus/node_modules/@vueuse/core/node_modules/vue-demi": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", - "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" + "@vueuse/metadata": "12.0.0", + "@vueuse/shared": "12.0.0", + "vue": "^3.5.13" }, "funding": { "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } } }, "node_modules/element-plus/node_modules/@vueuse/metadata": { - "version": "10.11.1", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz", - "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.0.0.tgz", + "integrity": "sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/element-plus/node_modules/@vueuse/shared": { - "version": "10.11.1", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz", - "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.0.0.tgz", + "integrity": "sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==", "license": "MIT", "dependencies": { - "vue-demi": ">=0.14.8" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/element-plus/node_modules/@vueuse/shared/node_modules/vue-demi": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", - "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" + "vue": "^3.5.13" }, "funding": { "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } } }, "node_modules/entities": { @@ -3398,9 +3457,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", - "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz", + "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3411,32 +3470,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.3", - "@esbuild/android-arm": "0.27.3", - "@esbuild/android-arm64": "0.27.3", - "@esbuild/android-x64": "0.27.3", - "@esbuild/darwin-arm64": "0.27.3", - "@esbuild/darwin-x64": "0.27.3", - "@esbuild/freebsd-arm64": "0.27.3", - "@esbuild/freebsd-x64": "0.27.3", - "@esbuild/linux-arm": "0.27.3", - "@esbuild/linux-arm64": "0.27.3", - "@esbuild/linux-ia32": "0.27.3", - "@esbuild/linux-loong64": "0.27.3", - "@esbuild/linux-mips64el": "0.27.3", - "@esbuild/linux-ppc64": "0.27.3", - "@esbuild/linux-riscv64": "0.27.3", - "@esbuild/linux-s390x": "0.27.3", - "@esbuild/linux-x64": "0.27.3", - "@esbuild/netbsd-arm64": "0.27.3", - "@esbuild/netbsd-x64": "0.27.3", - "@esbuild/openbsd-arm64": "0.27.3", - "@esbuild/openbsd-x64": "0.27.3", - "@esbuild/openharmony-arm64": "0.27.3", - "@esbuild/sunos-x64": "0.27.3", - "@esbuild/win32-arm64": "0.27.3", - "@esbuild/win32-ia32": "0.27.3", - "@esbuild/win32-x64": "0.27.3" + "@esbuild/aix-ppc64": "0.27.4", + "@esbuild/android-arm": "0.27.4", + "@esbuild/android-arm64": "0.27.4", + "@esbuild/android-x64": "0.27.4", + "@esbuild/darwin-arm64": "0.27.4", + "@esbuild/darwin-x64": "0.27.4", + "@esbuild/freebsd-arm64": "0.27.4", + "@esbuild/freebsd-x64": "0.27.4", + "@esbuild/linux-arm": "0.27.4", + "@esbuild/linux-arm64": "0.27.4", + "@esbuild/linux-ia32": "0.27.4", + "@esbuild/linux-loong64": "0.27.4", + "@esbuild/linux-mips64el": "0.27.4", + "@esbuild/linux-ppc64": "0.27.4", + "@esbuild/linux-riscv64": "0.27.4", + "@esbuild/linux-s390x": "0.27.4", + "@esbuild/linux-x64": "0.27.4", + "@esbuild/netbsd-arm64": "0.27.4", + "@esbuild/netbsd-x64": "0.27.4", + "@esbuild/openbsd-arm64": "0.27.4", + "@esbuild/openbsd-x64": "0.27.4", + "@esbuild/openharmony-arm64": "0.27.4", + "@esbuild/sunos-x64": "0.27.4", + "@esbuild/win32-arm64": "0.27.4", + "@esbuild/win32-ia32": "0.27.4", + "@esbuild/win32-x64": "0.27.4" } }, "node_modules/escape-string-regexp": { @@ -3453,25 +3512,25 @@ } }, "node_modules/eslint": { - "version": "9.39.3", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.3.tgz", - "integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", + "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.3", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", + "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", @@ -3490,7 +3549,7 @@ "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -3948,9 +4007,9 @@ } }, "node_modules/flatted": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", - "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -3970,6 +4029,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/frp-shared": { + "resolved": "shared", + "link": true + }, + "node_modules/frpc-dashboard": { + "resolved": "frpc", + "link": true + }, + "node_modules/frps-dashboard": { + "resolved": "frps", + "link": true + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -5044,16 +5115,16 @@ "license": "MIT" }, "node_modules/mlly": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", - "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.1.tgz", + "integrity": "sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==", "dev": true, "license": "MIT", "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.16.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", - "ufo": "^1.6.1" + "ufo": "^1.6.3" } }, "node_modules/ms": { @@ -5603,10 +5674,9 @@ "license": "MIT" }, "node_modules/perfect-debounce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", - "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", - "dev": true, + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", "license": "MIT" }, "node_modules/picocolors": { @@ -5672,15 +5742,6 @@ } } }, - "node_modules/pinia/node_modules/@vue/devtools-api": { - "version": "7.7.9", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", - "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", - "license": "MIT", - "dependencies": { - "@vue/devtools-kit": "^7.7.9" - } - }, "node_modules/pkg-types": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", @@ -5704,9 +5765,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", "funding": [ { "type": "opencollective", @@ -6105,14 +6166,14 @@ } }, "node_modules/sass": { - "version": "1.97.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", - "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", + "version": "1.98.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.98.0.tgz", + "integrity": "sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==", "dev": true, "license": "MIT", "dependencies": { "chokidar": "^4.0.0", - "immutable": "^5.0.2", + "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -6126,9 +6187,9 @@ } }, "node_modules/sax": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", - "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -6610,9 +6671,9 @@ } }, "node_modules/terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -6629,9 +6690,9 @@ } }, "node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", + "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", "dev": true, "license": "MIT", "engines": { @@ -6700,9 +6761,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -6831,16 +6892,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.56.1.tgz", - "integrity": "sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.1.tgz", + "integrity": "sha512-fLvZWf+cAGw3tqMCYzGIU6yR8K+Y9NT2z23RwOjlNFF2HwSB3KhdEFI5lSBv8tNmFkkBShSjsCjzx1vahZfISA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.56.1", - "@typescript-eslint/parser": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/utils": "8.56.1" + "@typescript-eslint/eslint-plugin": "8.57.1", + "@typescript-eslint/parser": "8.57.1", + "@typescript-eslint/typescript-estree": "8.57.1", + "@typescript-eslint/utils": "8.57.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7135,9 +7196,9 @@ } }, "node_modules/unplugin-element-plus/node_modules/@nuxt/kit": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.3.1.tgz", - "integrity": "sha512-UjBFt72dnpc+83BV3OIbCT0YHLevJtgJCHpxMX0YRKWLDhhbcDdUse87GtsQBrjvOzK7WUNUYLDS/hQLYev5rA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.4.2.tgz", + "integrity": "sha512-5+IPRNX2CjkBhuWUwz0hBuLqiaJPRoKzQ+SvcdrQDbAyE+VDeFt74VpSFr5/R0ujrK4b+XnSHUJWdS72w6hsog==", "dev": true, "license": "MIT", "dependencies": { @@ -7150,7 +7211,7 @@ "ignore": "^7.0.5", "jiti": "^2.6.1", "klona": "^2.0.6", - "mlly": "^1.8.0", + "mlly": "^1.8.1", "ohash": "^2.0.11", "pathe": "^2.0.3", "pkg-types": "^2.3.0", @@ -7493,13 +7554,14 @@ } }, "node_modules/vite-svg-loader": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz", - "integrity": "sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.1.tgz", + "integrity": "sha512-RPzcXA/EpKJA0585x58DBgs7my2VfeJ+j2j1EoHY4Zh82Y7hV4cR1fElgy2aZi85+QSrcLLoTStQ5uZjD68u+Q==", "dev": true, "license": "MIT", "dependencies": { - "svgo": "^3.0.2" + "debug": "^4.3.4", + "svgo": "^3.3.3" }, "peerDependencies": { "vue": ">=3.2.13" @@ -7544,16 +7606,16 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.29.tgz", - "integrity": "sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.30.tgz", + "integrity": "sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.29", - "@vue/compiler-sfc": "3.5.29", - "@vue/runtime-dom": "3.5.29", - "@vue/server-renderer": "3.5.29", - "@vue/shared": "3.5.29" + "@vue/compiler-dom": "3.5.30", + "@vue/compiler-sfc": "3.5.30", + "@vue/runtime-dom": "3.5.30", + "@vue/server-renderer": "3.5.30", + "@vue/shared": "3.5.30" }, "peerDependencies": { "typescript": "*" @@ -7616,15 +7678,21 @@ "vue": "^3.5.0" } }, + "node_modules/vue-router/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, "node_modules/vue-tsc": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.5.tgz", - "integrity": "sha512-/htfTCMluQ+P2FISGAooul8kO4JMheOTCbCy4M6dYnYYjqLe3BExZudAua6MSIKSFYQtFOYAll7XobYwcpokGA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.6.tgz", + "integrity": "sha512-gYW/kWI0XrwGzd0PKc7tVB/qpdeAkIZLNZb10/InizkQjHjnT8weZ/vBarZoj4kHKbUTZT/bAVgoOr8x4NsQ/Q==", "dev": true, "license": "MIT", "dependencies": { "@volar/typescript": "2.4.28", - "@vue/language-core": "3.2.5" + "@vue/language-core": "3.2.6" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -7777,6 +7845,9 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "shared": { + "name": "frp-shared" } } } diff --git a/web/package.json b/web/package.json new file mode 100644 index 00000000000..5df16a5927d --- /dev/null +++ b/web/package.json @@ -0,0 +1,5 @@ +{ + "name": "frp-web", + "private": true, + "workspaces": ["shared", "frpc", "frps"] +} diff --git a/web/frpc/src/components/ActionButton.vue b/web/shared/components/ActionButton.vue similarity index 100% rename from web/frpc/src/components/ActionButton.vue rename to web/shared/components/ActionButton.vue diff --git a/web/frpc/src/components/BaseDialog.vue b/web/shared/components/BaseDialog.vue similarity index 93% rename from web/frpc/src/components/BaseDialog.vue rename to web/shared/components/BaseDialog.vue index b1e85b5bf39..29dc0496506 100644 --- a/web/frpc/src/components/BaseDialog.vue +++ b/web/shared/components/BaseDialog.vue @@ -21,7 +21,6 @@ diff --git a/web/frpc/src/components/ConfirmDialog.vue b/web/shared/components/ConfirmDialog.vue similarity index 92% rename from web/frpc/src/components/ConfirmDialog.vue rename to web/shared/components/ConfirmDialog.vue index cb23900e9db..4de6975a42a 100644 --- a/web/frpc/src/components/ConfirmDialog.vue +++ b/web/shared/components/ConfirmDialog.vue @@ -5,6 +5,7 @@ width="400px" :close-on-click-modal="false" :append-to-body="true" + :is-mobile="isMobile" >

{{ message }}